@skyux/lists 7.0.0-beta.6 → 7.0.0-beta.8

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -681,6 +681,9 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.2.0", ngImpor
681
681
  args: [{ selector: 'sky-repeater-item-title', template: "<ng-content></ng-content>\n" }]
682
682
  }] });
683
683
 
684
+ var _SkyRepeaterService__expandMode;
685
+ let uniqueId = 0;
686
+ const DEFAULT_EXPAND_MODE = 'none';
684
687
  /**
685
688
  * @internal
686
689
  */
@@ -697,6 +700,15 @@ class SkyRepeaterService {
697
700
  title: undefined,
698
701
  });
699
702
  this.orderChange = new BehaviorSubject(undefined);
703
+ this.repeaterGroupId = ++uniqueId;
704
+ _SkyRepeaterService__expandMode.set(this, DEFAULT_EXPAND_MODE);
705
+ }
706
+ // TODO: Remove 'string' as a valid type in a breaking change.
707
+ get expandMode() {
708
+ return __classPrivateFieldGet(this, _SkyRepeaterService__expandMode, "f");
709
+ }
710
+ set expandMode(value) {
711
+ __classPrivateFieldSet(this, _SkyRepeaterService__expandMode, value !== null && value !== void 0 ? value : DEFAULT_EXPAND_MODE, "f");
700
712
  }
701
713
  ngOnDestroy() {
702
714
  this.activeItemChange.complete();
@@ -739,9 +751,6 @@ class SkyRepeaterService {
739
751
  onItemCollapseStateChange(item) {
740
752
  this.itemCollapseStateChange.emit(item);
741
753
  }
742
- getItemIndex(item) {
743
- return this.items.indexOf(item);
744
- }
745
754
  registerOrderChange() {
746
755
  this.orderChange.next();
747
756
  }
@@ -749,35 +758,39 @@ class SkyRepeaterService {
749
758
  this.items.splice(newIndex, 0, this.items.splice(oldIndex, 1)[0]);
750
759
  }
751
760
  }
761
+ _SkyRepeaterService__expandMode = new WeakMap();
752
762
  SkyRepeaterService.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.2.0", ngImport: i0, type: SkyRepeaterService, deps: [], target: i0.ɵɵFactoryTarget.Injectable });
753
763
  SkyRepeaterService.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "14.2.0", ngImport: i0, type: SkyRepeaterService });
754
764
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.2.0", ngImport: i0, type: SkyRepeaterService, decorators: [{
755
765
  type: Injectable
756
766
  }] });
757
767
 
768
+ var _SkyRepeaterAdapterService_instances, _SkyRepeaterAdapterService_repeaterItemGroupSelector_get, _SkyRepeaterAdapterService_host, _SkyRepeaterAdapterService_repeaterService, _SkyRepeaterAdapterService_moveItem, _SkyRepeaterAdapterService_getRepeaterItemArray;
758
769
  /**
759
770
  * @internal
760
771
  */
761
772
  class SkyRepeaterAdapterService {
762
773
  constructor(repeaterService) {
763
- this.repeaterService = repeaterService;
764
- }
765
- get repeaterItemGroupSelector() {
766
- return '.sky-repeater-item-group-' + this.repeaterService.repeaterGroupId;
774
+ _SkyRepeaterAdapterService_instances.add(this);
775
+ _SkyRepeaterAdapterService_host.set(this, void 0);
776
+ _SkyRepeaterAdapterService_repeaterService.set(this, void 0);
777
+ __classPrivateFieldSet(this, _SkyRepeaterAdapterService_repeaterService, repeaterService, "f");
767
778
  }
768
779
  focusElement(element) {
769
- if (element instanceof ElementRef) {
770
- element.nativeElement.focus();
771
- }
772
- else {
773
- element.focus();
780
+ if (element) {
781
+ if (element instanceof ElementRef) {
782
+ element.nativeElement.focus();
783
+ }
784
+ else {
785
+ element.focus();
786
+ }
774
787
  }
775
788
  }
776
789
  setRepeaterHost(hostRef) {
777
- this.host = hostRef;
790
+ __classPrivateFieldSet(this, _SkyRepeaterAdapterService_host, hostRef, "f");
778
791
  }
779
792
  getRepeaterItemIndex(element) {
780
- return this.getRepeaterItemArray().indexOf(element);
793
+ return __classPrivateFieldGet(this, _SkyRepeaterAdapterService_instances, "m", _SkyRepeaterAdapterService_getRepeaterItemArray).call(this).indexOf(element);
781
794
  }
782
795
  moveItemUp(element, top = false, steps = 1) {
783
796
  const index = this.getRepeaterItemIndex(element);
@@ -788,49 +801,48 @@ class SkyRepeaterAdapterService {
788
801
  if (top || newIndex < 0) {
789
802
  newIndex = 0;
790
803
  }
791
- return this.moveItem(element, index, newIndex);
804
+ return __classPrivateFieldGet(this, _SkyRepeaterAdapterService_instances, "m", _SkyRepeaterAdapterService_moveItem).call(this, element, index, newIndex);
792
805
  }
793
806
  moveItemDown(element, steps = 1) {
794
- const itemArray = this.getRepeaterItemArray();
807
+ const itemArray = __classPrivateFieldGet(this, _SkyRepeaterAdapterService_instances, "m", _SkyRepeaterAdapterService_getRepeaterItemArray).call(this);
795
808
  const index = this.getRepeaterItemIndex(element);
796
809
  if (index === itemArray.length - steps) {
797
810
  return;
798
811
  }
799
812
  const newIndex = index + steps;
800
- return this.moveItem(element, index, newIndex);
813
+ return __classPrivateFieldGet(this, _SkyRepeaterAdapterService_instances, "m", _SkyRepeaterAdapterService_moveItem).call(this, element, index, newIndex);
801
814
  }
802
- moveItem(element, oldIndex, newIndex) {
803
- const repeaterDiv = this.host.nativeElement.querySelector('.sky-repeater');
815
+ }
816
+ _SkyRepeaterAdapterService_host = new WeakMap(), _SkyRepeaterAdapterService_repeaterService = new WeakMap(), _SkyRepeaterAdapterService_instances = new WeakSet(), _SkyRepeaterAdapterService_repeaterItemGroupSelector_get = function _SkyRepeaterAdapterService_repeaterItemGroupSelector_get() {
817
+ return '.sky-repeater-item-group-' + __classPrivateFieldGet(this, _SkyRepeaterAdapterService_repeaterService, "f").repeaterGroupId;
818
+ }, _SkyRepeaterAdapterService_moveItem = function _SkyRepeaterAdapterService_moveItem(element, oldIndex, newIndex) {
819
+ /* istanbul ignore else */
820
+ if (__classPrivateFieldGet(this, _SkyRepeaterAdapterService_host, "f")) {
821
+ const repeaterDiv = __classPrivateFieldGet(this, _SkyRepeaterAdapterService_host, "f").nativeElement.querySelector('.sky-repeater');
804
822
  repeaterDiv.removeChild(element);
805
- const nextSibling = repeaterDiv.querySelectorAll(this.repeaterItemGroupSelector)[newIndex];
823
+ const nextSibling = repeaterDiv.querySelectorAll(__classPrivateFieldGet(this, _SkyRepeaterAdapterService_instances, "a", _SkyRepeaterAdapterService_repeaterItemGroupSelector_get))[newIndex];
806
824
  repeaterDiv.insertBefore(element, nextSibling);
807
- this.repeaterService.reorderItem(oldIndex, newIndex);
808
- return newIndex;
825
+ __classPrivateFieldGet(this, _SkyRepeaterAdapterService_repeaterService, "f").reorderItem(oldIndex, newIndex);
809
826
  }
810
- /**
811
- * Returns an array of the immediate repeater item descendants. Excludes nested repeater items.
812
- */
813
- getRepeaterItemArray() {
814
- return Array.from(this.host.nativeElement.querySelectorAll(this.repeaterItemGroupSelector));
815
- }
816
- }
827
+ return newIndex;
828
+ }, _SkyRepeaterAdapterService_getRepeaterItemArray = function _SkyRepeaterAdapterService_getRepeaterItemArray() {
829
+ var _a;
830
+ return Array.from((_a = __classPrivateFieldGet(this, _SkyRepeaterAdapterService_host, "f")) === null || _a === void 0 ? void 0 : _a.nativeElement.querySelectorAll(__classPrivateFieldGet(this, _SkyRepeaterAdapterService_instances, "a", _SkyRepeaterAdapterService_repeaterItemGroupSelector_get)));
831
+ };
817
832
  SkyRepeaterAdapterService.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.2.0", ngImport: i0, type: SkyRepeaterAdapterService, deps: [{ token: SkyRepeaterService }], target: i0.ɵɵFactoryTarget.Injectable });
818
833
  SkyRepeaterAdapterService.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "14.2.0", ngImport: i0, type: SkyRepeaterAdapterService });
819
834
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.2.0", ngImport: i0, type: SkyRepeaterAdapterService, decorators: [{
820
835
  type: Injectable
821
836
  }], ctorParameters: function () { return [{ type: SkyRepeaterService }]; } });
822
837
 
838
+ var _SkyRepeaterItemComponent_instances, _SkyRepeaterItemComponent_adapterService, _SkyRepeaterItemComponent_changeDetector, _SkyRepeaterItemComponent_elementRef, _SkyRepeaterItemComponent_isExpanded, _SkyRepeaterItemComponent_keyboardReorderingEnabled, _SkyRepeaterItemComponent_ngUnsubscribe, _SkyRepeaterItemComponent_reorderCancelText, _SkyRepeaterItemComponent_reorderCurrentIndex, _SkyRepeaterItemComponent_reorderFinishText, _SkyRepeaterItemComponent_reorderInstructions, _SkyRepeaterItemComponent_reorderMovedText, _SkyRepeaterItemComponent_reorderStateDescription, _SkyRepeaterItemComponent_reorderSteps, _SkyRepeaterItemComponent_repeaterService, _SkyRepeaterItemComponent_resourceService, _SkyRepeaterItemComponent__isCollapsible, _SkyRepeaterItemComponent__isDisabled, _SkyRepeaterItemComponent__isSelected, _SkyRepeaterItemComponent_slideForExpanded, _SkyRepeaterItemComponent_keyboardReorderUp, _SkyRepeaterItemComponent_keyboardReorderDown, _SkyRepeaterItemComponent_keyboardToggleReorder, _SkyRepeaterItemComponent_revertReorderSteps, _SkyRepeaterItemComponent_updateExpandOnContentChange;
823
839
  let nextContentId = 0;
824
840
  /**
825
841
  * Creates an individual repeater item.
826
842
  */
827
843
  class SkyRepeaterItemComponent {
828
844
  constructor(repeaterService, changeDetector, adapterService, elementRef, resourceService) {
829
- this.repeaterService = repeaterService;
830
- this.changeDetector = changeDetector;
831
- this.adapterService = adapterService;
832
- this.elementRef = elementRef;
833
- this.resourceService = resourceService;
845
+ _SkyRepeaterItemComponent_instances.add(this);
834
846
  /**
835
847
  * Indicates whether users can change the order of the repeater item.
836
848
  * The repeater component's `reorderable` property must also be set to `true`.
@@ -862,31 +874,51 @@ class SkyRepeaterItemComponent {
862
874
  * Fires when users select or clear the checkbox for the repeater item.
863
875
  */
864
876
  this.isSelectedChange = new EventEmitter();
865
- this.contentId = `sky-repeater-item-content-${++nextContentId}`;
866
877
  this.hasItemContent = false;
867
878
  this.isActive = false;
868
- this.keyboardReorderingEnabled = false;
869
- this.ngUnsubscribe = new Subject();
870
- this._isCollapsible = true;
871
- this._isDisabled = false;
872
- this._isExpanded = true;
873
- this._isSelected = false;
874
- this.slideForExpanded(false);
879
+ this.reorderButtonLabel = '';
880
+ _SkyRepeaterItemComponent_adapterService.set(this, void 0);
881
+ _SkyRepeaterItemComponent_changeDetector.set(this, void 0);
882
+ _SkyRepeaterItemComponent_elementRef.set(this, void 0);
883
+ _SkyRepeaterItemComponent_isExpanded.set(this, true);
884
+ _SkyRepeaterItemComponent_keyboardReorderingEnabled.set(this, false);
885
+ _SkyRepeaterItemComponent_ngUnsubscribe.set(this, new Subject());
886
+ _SkyRepeaterItemComponent_reorderCancelText.set(this, '');
887
+ _SkyRepeaterItemComponent_reorderCurrentIndex.set(this, -1);
888
+ _SkyRepeaterItemComponent_reorderFinishText.set(this, '');
889
+ _SkyRepeaterItemComponent_reorderInstructions.set(this, '');
890
+ _SkyRepeaterItemComponent_reorderMovedText.set(this, '');
891
+ _SkyRepeaterItemComponent_reorderStateDescription.set(this, '');
892
+ _SkyRepeaterItemComponent_reorderSteps.set(this, 0);
893
+ _SkyRepeaterItemComponent_repeaterService.set(this, void 0);
894
+ _SkyRepeaterItemComponent_resourceService.set(this, void 0);
895
+ _SkyRepeaterItemComponent__isCollapsible.set(this, true);
896
+ _SkyRepeaterItemComponent__isDisabled.set(this, false);
897
+ _SkyRepeaterItemComponent__isSelected.set(this, void 0);
898
+ __classPrivateFieldSet(this, _SkyRepeaterItemComponent_repeaterService, repeaterService, "f");
899
+ __classPrivateFieldSet(this, _SkyRepeaterItemComponent_changeDetector, changeDetector, "f");
900
+ __classPrivateFieldSet(this, _SkyRepeaterItemComponent_adapterService, adapterService, "f");
901
+ __classPrivateFieldSet(this, _SkyRepeaterItemComponent_elementRef, elementRef, "f");
902
+ __classPrivateFieldSet(this, _SkyRepeaterItemComponent_resourceService, resourceService, "f");
903
+ __classPrivateFieldGet(this, _SkyRepeaterItemComponent_instances, "m", _SkyRepeaterItemComponent_slideForExpanded).call(this);
875
904
  forkJoin([
876
- this.resourceService.getString('skyux_repeater_item_reorder_cancel'),
877
- this.resourceService.getString('skyux_repeater_item_reorder_finish'),
878
- this.resourceService.getString('skyux_repeater_item_reorder_instructions'),
879
- this.resourceService.getString('skyux_repeater_item_reorder_operation'),
880
- this.resourceService.getString('skyux_repeater_item_reorder_moved'),
881
- ]).subscribe((translatedStrings) => {
882
- this.reorderCancelText = translatedStrings[0];
883
- this.reorderFinishText = translatedStrings[1];
884
- this.reorderStateDescription = translatedStrings[2];
885
- this.reorderInstructions = translatedStrings[3];
886
- this.reorderMovedText = translatedStrings[4];
887
- this.reorderButtonLabel = this.reorderInstructions;
905
+ __classPrivateFieldGet(this, _SkyRepeaterItemComponent_resourceService, "f").getString('skyux_repeater_item_reorder_cancel'),
906
+ __classPrivateFieldGet(this, _SkyRepeaterItemComponent_resourceService, "f").getString('skyux_repeater_item_reorder_finish'),
907
+ __classPrivateFieldGet(this, _SkyRepeaterItemComponent_resourceService, "f").getString('skyux_repeater_item_reorder_instructions'),
908
+ __classPrivateFieldGet(this, _SkyRepeaterItemComponent_resourceService, "f").getString('skyux_repeater_item_reorder_operation'),
909
+ __classPrivateFieldGet(this, _SkyRepeaterItemComponent_resourceService, "f").getString('skyux_repeater_item_reorder_moved'),
910
+ ])
911
+ .pipe(takeUntil(__classPrivateFieldGet(this, _SkyRepeaterItemComponent_ngUnsubscribe, "f")))
912
+ .subscribe(([reorderCancelText, reorderFinishText, reorderInstructionsText, reorderOperationText, reorderMovedText,]) => {
913
+ __classPrivateFieldSet(this, _SkyRepeaterItemComponent_reorderCancelText, reorderCancelText, "f");
914
+ __classPrivateFieldSet(this, _SkyRepeaterItemComponent_reorderFinishText, reorderFinishText, "f");
915
+ __classPrivateFieldSet(this, _SkyRepeaterItemComponent_reorderStateDescription, reorderInstructionsText, "f");
916
+ __classPrivateFieldSet(this, _SkyRepeaterItemComponent_reorderInstructions, reorderOperationText, "f");
917
+ __classPrivateFieldSet(this, _SkyRepeaterItemComponent_reorderMovedText, reorderMovedText, "f");
918
+ this.reorderButtonLabel = __classPrivateFieldGet(this, _SkyRepeaterItemComponent_reorderInstructions, "f");
888
919
  });
889
- this.itemRole$ = this.repeaterService.itemRole.asObservable();
920
+ this.contentId = `sky-repeater-item-content-${++nextContentId}`;
921
+ this.itemRole$ = __classPrivateFieldGet(this, _SkyRepeaterItemComponent_repeaterService, "f").itemRole.asObservable();
890
922
  }
891
923
  /**
892
924
  * Make the first, non-disabled item tab-focusable.
@@ -894,7 +926,7 @@ class SkyRepeaterItemComponent {
894
926
  * - One item per list/grid/listbox should be tab focusable per [W3C](https://www.w3.org/TR/wai-aria-practices-1.1/#grid).
895
927
  */
896
928
  get tabindex() {
897
- return this.repeaterService.items.filter((item) => !item.disabled)[0] ===
929
+ return __classPrivateFieldGet(this, _SkyRepeaterItemComponent_repeaterService, "f").items.filter((item) => !item.disabled)[0] ===
898
930
  this
899
931
  ? 0
900
932
  : -1;
@@ -903,35 +935,35 @@ class SkyRepeaterItemComponent {
903
935
  * Whether to exclude an item when cycling through.
904
936
  */
905
937
  set disabled(value) {
906
- if (this._isDisabled !== value) {
938
+ if (__classPrivateFieldGet(this, _SkyRepeaterItemComponent__isDisabled, "f") !== value) {
907
939
  if (value) {
908
940
  this.isSelected = false;
909
- this._isDisabled = true;
941
+ __classPrivateFieldSet(this, _SkyRepeaterItemComponent__isDisabled, true, "f");
910
942
  }
911
943
  else {
912
- this._isDisabled = false;
944
+ __classPrivateFieldSet(this, _SkyRepeaterItemComponent__isDisabled, false, "f");
913
945
  }
914
946
  if (this.isActive) {
915
- this.repeaterService.activateItemByIndex(undefined);
947
+ __classPrivateFieldGet(this, _SkyRepeaterItemComponent_repeaterService, "f").activateItemByIndex(undefined);
916
948
  }
917
- if (this.elementRef.nativeElement.matches(':focus-within')) {
918
- this.elementRef.nativeElement.ownerDocument.activeElement.blur();
949
+ if (__classPrivateFieldGet(this, _SkyRepeaterItemComponent_elementRef, "f").nativeElement.matches(':focus-within')) {
950
+ __classPrivateFieldGet(this, _SkyRepeaterItemComponent_elementRef, "f").nativeElement.ownerDocument.activeElement.blur();
919
951
  }
920
- this.changeDetector.markForCheck();
952
+ __classPrivateFieldGet(this, _SkyRepeaterItemComponent_changeDetector, "f").markForCheck();
921
953
  }
922
954
  }
923
955
  get disabled() {
924
- return this._isDisabled;
956
+ return __classPrivateFieldGet(this, _SkyRepeaterItemComponent__isDisabled, "f");
925
957
  }
926
958
  /**
927
959
  * Indicates whether the repeater item is expanded.
928
960
  * @default true
929
961
  */
930
962
  set isExpanded(value) {
931
- this.updateForExpanded(value, true);
963
+ this.updateForExpanded(value !== false);
932
964
  }
933
965
  get isExpanded() {
934
- return this._isExpanded;
966
+ return __classPrivateFieldGet(this, _SkyRepeaterItemComponent_isExpanded, "f");
935
967
  }
936
968
  /**
937
969
  * Indicates whether the repeater item's checkbox is selected.
@@ -939,54 +971,55 @@ class SkyRepeaterItemComponent {
939
971
  * @default false
940
972
  */
941
973
  set isSelected(value) {
942
- if (!this.disabled && value !== this._isSelected) {
943
- this._isSelected = value;
944
- this.isSelectedChange.emit(this._isSelected);
974
+ if (!this.disabled && value !== __classPrivateFieldGet(this, _SkyRepeaterItemComponent__isSelected, "f")) {
975
+ __classPrivateFieldSet(this, _SkyRepeaterItemComponent__isSelected, value, "f");
976
+ this.isSelectedChange.emit(__classPrivateFieldGet(this, _SkyRepeaterItemComponent__isSelected, "f"));
945
977
  }
946
978
  }
947
979
  get isSelected() {
948
- return this._isSelected;
980
+ return __classPrivateFieldGet(this, _SkyRepeaterItemComponent__isSelected, "f");
949
981
  }
950
982
  set isCollapsible(value) {
951
983
  if (this.isCollapsible !== value) {
952
- this._isCollapsible = value;
984
+ __classPrivateFieldSet(this, _SkyRepeaterItemComponent__isCollapsible, value !== false, "f");
953
985
  /*istanbul ignore else */
954
- if (!value) {
955
- this.updateForExpanded(true, false);
986
+ if (!__classPrivateFieldGet(this, _SkyRepeaterItemComponent__isCollapsible, "f")) {
987
+ this.updateForExpanded(true);
956
988
  }
957
989
  }
958
- this.changeDetector.markForCheck();
990
+ __classPrivateFieldGet(this, _SkyRepeaterItemComponent_changeDetector, "f").markForCheck();
959
991
  }
960
992
  get isCollapsible() {
961
- return this._isCollapsible;
993
+ return __classPrivateFieldGet(this, _SkyRepeaterItemComponent__isCollapsible, "f");
962
994
  }
963
995
  get repeaterGroupClass() {
964
- return 'sky-repeater-item-group-' + this.repeaterService.repeaterGroupId;
996
+ return 'sky-repeater-item-group-' + __classPrivateFieldGet(this, _SkyRepeaterItemComponent_repeaterService, "f").repeaterGroupId;
965
997
  }
966
998
  ngOnInit() {
967
- this.repeaterService.registerItem(this);
968
- this.repeaterService.activeItemChange
969
- .pipe(takeUntil(this.ngUnsubscribe))
999
+ __classPrivateFieldGet(this, _SkyRepeaterItemComponent_repeaterService, "f").registerItem(this);
1000
+ __classPrivateFieldGet(this, _SkyRepeaterItemComponent_repeaterService, "f").activeItemChange
1001
+ .pipe(takeUntil(__classPrivateFieldGet(this, _SkyRepeaterItemComponent_ngUnsubscribe, "f")))
970
1002
  .subscribe((item) => {
971
1003
  const newIsActiveValue = this === item;
972
1004
  if (newIsActiveValue !== this.isActive) {
973
1005
  this.isActive = newIsActiveValue;
974
- this.changeDetector.markForCheck();
1006
+ __classPrivateFieldGet(this, _SkyRepeaterItemComponent_changeDetector, "f").markForCheck();
975
1007
  }
976
1008
  });
977
1009
  }
978
1010
  ngAfterViewInit() {
979
- this.hasItemContent = this.repeaterItemContentComponents.length > 0;
980
- this.updateExpandOnContentChange();
1011
+ var _b;
1012
+ this.hasItemContent = !!((_b = this.repeaterItemContentComponents) === null || _b === void 0 ? void 0 : _b.length);
1013
+ __classPrivateFieldGet(this, _SkyRepeaterItemComponent_instances, "m", _SkyRepeaterItemComponent_updateExpandOnContentChange).call(this);
981
1014
  }
982
1015
  ngOnDestroy() {
983
1016
  this.collapse.complete();
984
1017
  this.expand.complete();
985
1018
  this.inlineFormClose.complete();
986
1019
  this.isSelectedChange.complete();
987
- this.ngUnsubscribe.next();
988
- this.ngUnsubscribe.complete();
989
- this.repeaterService.unregisterItem(this);
1020
+ __classPrivateFieldGet(this, _SkyRepeaterItemComponent_ngUnsubscribe, "f").next();
1021
+ __classPrivateFieldGet(this, _SkyRepeaterItemComponent_ngUnsubscribe, "f").complete();
1022
+ __classPrivateFieldGet(this, _SkyRepeaterItemComponent_repeaterService, "f").unregisterItem(this);
990
1023
  }
991
1024
  onKeydown($event) {
992
1025
  if ([' ', 'Enter', 'Home', 'End', 'ArrowUp', 'ArrowDown'].includes($event.key)) {
@@ -1006,7 +1039,7 @@ class SkyRepeaterItemComponent {
1006
1039
  }
1007
1040
  /* istanbul ignore else */
1008
1041
  if (['Home', 'End'].includes($event.key)) {
1009
- const items = this.repeaterService.items.filter((item) => !item.disabled);
1042
+ const items = __classPrivateFieldGet(this, _SkyRepeaterItemComponent_repeaterService, "f").items.filter((item) => !item.disabled);
1010
1043
  if ($event.key === 'Home') {
1011
1044
  activateItem = items.shift();
1012
1045
  }
@@ -1016,7 +1049,7 @@ class SkyRepeaterItemComponent {
1016
1049
  }
1017
1050
  /* istanbul ignore else */
1018
1051
  if (['ArrowUp', 'ArrowDown'].includes($event.key)) {
1019
- const currentIndex = this.repeaterService.items.findIndex((item) => item === this);
1052
+ const currentIndex = __classPrivateFieldGet(this, _SkyRepeaterItemComponent_repeaterService, "f").items.findIndex((item) => item === this);
1020
1053
  let sliceFrom;
1021
1054
  let sliceTo;
1022
1055
  if ($event.key === 'ArrowUp') {
@@ -1027,7 +1060,7 @@ class SkyRepeaterItemComponent {
1027
1060
  sliceFrom = currentIndex + 1;
1028
1061
  sliceTo = undefined;
1029
1062
  }
1030
- const items = this.repeaterService.items
1063
+ const items = __classPrivateFieldGet(this, _SkyRepeaterItemComponent_repeaterService, "f").items
1031
1064
  .slice(sliceFrom, sliceTo)
1032
1065
  .filter((item) => !item.disabled);
1033
1066
  activateItem = $event.key === 'ArrowUp' ? items.pop() : items.shift();
@@ -1041,7 +1074,7 @@ class SkyRepeaterItemComponent {
1041
1074
  sliceFrom = currentIndex + 1;
1042
1075
  sliceTo = undefined;
1043
1076
  }
1044
- const items = this.repeaterService.items
1077
+ const items = __classPrivateFieldGet(this, _SkyRepeaterItemComponent_repeaterService, "f").items
1045
1078
  .slice(sliceFrom, sliceTo)
1046
1079
  .filter((item) => !item.disabled);
1047
1080
  activateItem = $event.key === 'ArrowUp' ? items.pop() : items.shift();
@@ -1049,47 +1082,48 @@ class SkyRepeaterItemComponent {
1049
1082
  }
1050
1083
  /* istanbul ignore else */
1051
1084
  if (activateItem && !activateItem.isActive) {
1052
- this.repeaterService.activateItem(activateItem);
1053
- if (!activateItem.elementRef.nativeElement.matches(':focus-within')) {
1054
- activateItem.elementRef.nativeElement.focus();
1085
+ __classPrivateFieldGet(this, _SkyRepeaterItemComponent_repeaterService, "f").activateItem(activateItem);
1086
+ if (!__classPrivateFieldGet(activateItem, _SkyRepeaterItemComponent_elementRef, "f").nativeElement.matches(':focus-within')) {
1087
+ __classPrivateFieldGet(activateItem, _SkyRepeaterItemComponent_elementRef, "f").nativeElement.focus();
1055
1088
  }
1056
1089
  }
1057
1090
  }
1058
1091
  }
1059
1092
  headerClick() {
1060
1093
  if (this.isCollapsible) {
1061
- this.updateForExpanded(!this.isExpanded, true);
1094
+ this.updateForExpanded(!this.isExpanded);
1062
1095
  }
1063
1096
  }
1064
1097
  chevronDirectionChange(direction) {
1065
- this.updateForExpanded(direction === 'up', true);
1098
+ this.updateForExpanded(direction === 'up');
1066
1099
  }
1067
1100
  onRepeaterItemClick(event) {
1101
+ var _b, _c, _d;
1068
1102
  // Only activate item if clicking on the title, content, or parent item div.
1069
1103
  // This will avoid accidental activations when clicking inside interactive elements like
1070
1104
  // the expand/collapse chevron, dropdown, inline-delete, etc...
1071
- if (event.target === this.itemRef.nativeElement ||
1072
- this.itemContentRef.nativeElement.contains(event.target) ||
1073
- this.itemHeaderRef.nativeElement.contains(event.target)) {
1074
- this.repeaterService.activateItem(this);
1105
+ if (event.target === ((_b = this.itemRef) === null || _b === void 0 ? void 0 : _b.nativeElement) ||
1106
+ ((_c = this.itemContentRef) === null || _c === void 0 ? void 0 : _c.nativeElement.contains(event.target)) ||
1107
+ ((_d = this.itemHeaderRef) === null || _d === void 0 ? void 0 : _d.nativeElement.contains(event.target))) {
1108
+ __classPrivateFieldGet(this, _SkyRepeaterItemComponent_repeaterService, "f").activateItem(this);
1075
1109
  }
1076
1110
  }
1077
- updateForExpanded(value, animate) {
1111
+ updateForExpanded(value) {
1078
1112
  if (this.isCollapsible === false && value === false) {
1079
1113
  console.warn(`Setting isExpanded to false when the repeater item is not collapsible
1080
1114
  will have no effect.`);
1081
1115
  }
1082
- else if (this._isExpanded !== value) {
1083
- this._isExpanded = value;
1084
- if (this._isExpanded) {
1116
+ else if (__classPrivateFieldGet(this, _SkyRepeaterItemComponent_isExpanded, "f") !== value) {
1117
+ __classPrivateFieldSet(this, _SkyRepeaterItemComponent_isExpanded, value, "f");
1118
+ if (__classPrivateFieldGet(this, _SkyRepeaterItemComponent_isExpanded, "f")) {
1085
1119
  this.expand.emit();
1086
1120
  }
1087
1121
  else {
1088
1122
  this.collapse.emit();
1089
1123
  }
1090
- this.repeaterService.onItemCollapseStateChange(this);
1091
- this.slideForExpanded(animate);
1092
- this.changeDetector.markForCheck();
1124
+ __classPrivateFieldGet(this, _SkyRepeaterItemComponent_repeaterService, "f").onItemCollapseStateChange(this);
1125
+ __classPrivateFieldGet(this, _SkyRepeaterItemComponent_instances, "m", _SkyRepeaterItemComponent_slideForExpanded).call(this);
1126
+ __classPrivateFieldGet(this, _SkyRepeaterItemComponent_changeDetector, "f").markForCheck();
1093
1127
  }
1094
1128
  }
1095
1129
  onCheckboxChange(value) {
@@ -1100,9 +1134,9 @@ class SkyRepeaterItemComponent {
1100
1134
  }
1101
1135
  moveToTop(event) {
1102
1136
  event.stopPropagation();
1103
- this.adapterService.moveItemUp(this.elementRef.nativeElement, true);
1104
- this.adapterService.focusElement(event.target);
1105
- this.repeaterService.registerOrderChange();
1137
+ __classPrivateFieldGet(this, _SkyRepeaterItemComponent_adapterService, "f").moveItemUp(__classPrivateFieldGet(this, _SkyRepeaterItemComponent_elementRef, "f").nativeElement, true);
1138
+ __classPrivateFieldGet(this, _SkyRepeaterItemComponent_adapterService, "f").focusElement(event.target);
1139
+ __classPrivateFieldGet(this, _SkyRepeaterItemComponent_repeaterService, "f").registerOrderChange();
1106
1140
  }
1107
1141
  onReorderHandleKeyDown(event) {
1108
1142
  /*istanbul ignore else */
@@ -1110,43 +1144,43 @@ class SkyRepeaterItemComponent {
1110
1144
  switch (event.key.toLowerCase()) {
1111
1145
  case ' ':
1112
1146
  case 'enter':
1113
- this.keyboardToggleReorder();
1147
+ __classPrivateFieldGet(this, _SkyRepeaterItemComponent_instances, "m", _SkyRepeaterItemComponent_keyboardToggleReorder).call(this);
1114
1148
  event.preventDefault();
1115
1149
  event.stopPropagation();
1116
1150
  break;
1117
1151
  case 'escape':
1118
1152
  /* istanbul ignore else */
1119
- if (this.keyboardReorderingEnabled) {
1120
- this.keyboardReorderingEnabled = false;
1121
- this.revertReorderSteps();
1153
+ if (__classPrivateFieldGet(this, _SkyRepeaterItemComponent_keyboardReorderingEnabled, "f")) {
1154
+ __classPrivateFieldSet(this, _SkyRepeaterItemComponent_keyboardReorderingEnabled, false, "f");
1155
+ __classPrivateFieldGet(this, _SkyRepeaterItemComponent_instances, "m", _SkyRepeaterItemComponent_revertReorderSteps).call(this);
1122
1156
  this.reorderButtonLabel =
1123
- this.reorderCancelText + ' ' + this.reorderInstructions;
1124
- this.adapterService.focusElement(event.target);
1157
+ __classPrivateFieldGet(this, _SkyRepeaterItemComponent_reorderCancelText, "f") + ' ' + __classPrivateFieldGet(this, _SkyRepeaterItemComponent_reorderInstructions, "f");
1158
+ __classPrivateFieldGet(this, _SkyRepeaterItemComponent_adapterService, "f").focusElement(event.target);
1125
1159
  event.preventDefault();
1126
1160
  event.stopPropagation();
1127
1161
  }
1128
1162
  break;
1129
1163
  case 'arrowup':
1130
- if (this.keyboardReorderingEnabled) {
1131
- this.keyboardReorderUp();
1164
+ if (__classPrivateFieldGet(this, _SkyRepeaterItemComponent_keyboardReorderingEnabled, "f")) {
1165
+ __classPrivateFieldGet(this, _SkyRepeaterItemComponent_instances, "m", _SkyRepeaterItemComponent_keyboardReorderUp).call(this);
1132
1166
  event.preventDefault();
1133
1167
  event.stopPropagation();
1134
- this.repeaterService.registerOrderChange();
1168
+ __classPrivateFieldGet(this, _SkyRepeaterItemComponent_repeaterService, "f").registerOrderChange();
1135
1169
  }
1136
1170
  break;
1137
1171
  case 'arrowdown':
1138
1172
  /* istanbul ignore else */
1139
- if (this.keyboardReorderingEnabled) {
1140
- this.keyboardReorderDown();
1173
+ if (__classPrivateFieldGet(this, _SkyRepeaterItemComponent_keyboardReorderingEnabled, "f")) {
1174
+ __classPrivateFieldGet(this, _SkyRepeaterItemComponent_instances, "m", _SkyRepeaterItemComponent_keyboardReorderDown).call(this);
1141
1175
  event.preventDefault();
1142
1176
  event.stopPropagation();
1143
- this.repeaterService.registerOrderChange();
1177
+ __classPrivateFieldGet(this, _SkyRepeaterItemComponent_repeaterService, "f").registerOrderChange();
1144
1178
  }
1145
1179
  break;
1146
1180
  case 'arrowleft':
1147
1181
  case 'arrowright':
1148
1182
  /* istanbul ignore else */
1149
- if (this.keyboardReorderingEnabled) {
1183
+ if (__classPrivateFieldGet(this, _SkyRepeaterItemComponent_keyboardReorderingEnabled, "f")) {
1150
1184
  event.preventDefault();
1151
1185
  event.stopPropagation();
1152
1186
  }
@@ -1158,67 +1192,72 @@ class SkyRepeaterItemComponent {
1158
1192
  }
1159
1193
  }
1160
1194
  onReorderHandleBlur(event) {
1161
- this.keyboardReorderingEnabled = false;
1162
- this.revertReorderSteps();
1163
- this.reorderButtonLabel = this.reorderInstructions;
1195
+ __classPrivateFieldSet(this, _SkyRepeaterItemComponent_keyboardReorderingEnabled, false, "f");
1196
+ __classPrivateFieldGet(this, _SkyRepeaterItemComponent_instances, "m", _SkyRepeaterItemComponent_revertReorderSteps).call(this);
1197
+ this.reorderButtonLabel = __classPrivateFieldGet(this, _SkyRepeaterItemComponent_reorderInstructions, "f");
1164
1198
  this.reorderState = undefined;
1165
1199
  }
1166
- slideForExpanded(animate) {
1167
- this.slideDirection = this.isExpanded ? 'down' : 'up';
1168
- }
1169
- keyboardReorderUp() {
1170
- this.reorderCurrentIndex = this.adapterService.moveItemUp(this.elementRef.nativeElement);
1171
- this.reorderSteps--;
1172
- this.adapterService.focusElement(this.grabHandle);
1173
- this.keyboardReorderingEnabled = true;
1174
- this.reorderButtonLabel = `${this.reorderMovedText} ${this.reorderCurrentIndex + 1}`;
1175
- }
1176
- keyboardReorderDown() {
1177
- this.reorderCurrentIndex = this.adapterService.moveItemDown(this.elementRef.nativeElement);
1178
- this.reorderSteps++;
1179
- this.adapterService.focusElement(this.grabHandle);
1180
- this.keyboardReorderingEnabled = true;
1181
- this.reorderButtonLabel = `${this.reorderMovedText} ${this.reorderCurrentIndex + 1}`;
1182
- }
1183
- keyboardToggleReorder() {
1184
- this.keyboardReorderingEnabled = !this.keyboardReorderingEnabled;
1185
- this.reorderSteps = 0;
1186
- if (this.keyboardReorderingEnabled) {
1187
- this.reorderState = this.reorderStateDescription;
1188
- }
1189
- else {
1190
- this.reorderState = `${this.reorderFinishText} ${this.reorderCurrentIndex + 1} ${this.reorderInstructions}`;
1191
- }
1200
+ }
1201
+ _SkyRepeaterItemComponent_adapterService = new WeakMap(), _SkyRepeaterItemComponent_changeDetector = new WeakMap(), _SkyRepeaterItemComponent_elementRef = new WeakMap(), _SkyRepeaterItemComponent_isExpanded = new WeakMap(), _SkyRepeaterItemComponent_keyboardReorderingEnabled = new WeakMap(), _SkyRepeaterItemComponent_ngUnsubscribe = new WeakMap(), _SkyRepeaterItemComponent_reorderCancelText = new WeakMap(), _SkyRepeaterItemComponent_reorderCurrentIndex = new WeakMap(), _SkyRepeaterItemComponent_reorderFinishText = new WeakMap(), _SkyRepeaterItemComponent_reorderInstructions = new WeakMap(), _SkyRepeaterItemComponent_reorderMovedText = new WeakMap(), _SkyRepeaterItemComponent_reorderStateDescription = new WeakMap(), _SkyRepeaterItemComponent_reorderSteps = new WeakMap(), _SkyRepeaterItemComponent_repeaterService = new WeakMap(), _SkyRepeaterItemComponent_resourceService = new WeakMap(), _SkyRepeaterItemComponent__isCollapsible = new WeakMap(), _SkyRepeaterItemComponent__isDisabled = new WeakMap(), _SkyRepeaterItemComponent__isSelected = new WeakMap(), _SkyRepeaterItemComponent_instances = new WeakSet(), _SkyRepeaterItemComponent_slideForExpanded = function _SkyRepeaterItemComponent_slideForExpanded() {
1202
+ this.slideDirection = this.isExpanded ? 'down' : 'up';
1203
+ }, _SkyRepeaterItemComponent_keyboardReorderUp = function _SkyRepeaterItemComponent_keyboardReorderUp() {
1204
+ var _a;
1205
+ const newIndex = __classPrivateFieldGet(this, _SkyRepeaterItemComponent_adapterService, "f").moveItemUp(__classPrivateFieldGet(this, _SkyRepeaterItemComponent_elementRef, "f").nativeElement);
1206
+ if (newIndex !== undefined) {
1207
+ __classPrivateFieldSet(this, _SkyRepeaterItemComponent_reorderCurrentIndex, newIndex, "f");
1208
+ __classPrivateFieldSet(this, _SkyRepeaterItemComponent_reorderSteps, (_a = __classPrivateFieldGet(this, _SkyRepeaterItemComponent_reorderSteps, "f"), _a--, _a), "f");
1209
+ __classPrivateFieldGet(this, _SkyRepeaterItemComponent_adapterService, "f").focusElement(this.grabHandle);
1210
+ __classPrivateFieldSet(this, _SkyRepeaterItemComponent_keyboardReorderingEnabled, true, "f");
1211
+ this.reorderButtonLabel = `${__classPrivateFieldGet(this, _SkyRepeaterItemComponent_reorderMovedText, "f")} ${__classPrivateFieldGet(this, _SkyRepeaterItemComponent_reorderCurrentIndex, "f") + 1}`;
1212
+ }
1213
+ }, _SkyRepeaterItemComponent_keyboardReorderDown = function _SkyRepeaterItemComponent_keyboardReorderDown() {
1214
+ var _a;
1215
+ const newIndex = __classPrivateFieldGet(this, _SkyRepeaterItemComponent_adapterService, "f").moveItemDown(__classPrivateFieldGet(this, _SkyRepeaterItemComponent_elementRef, "f").nativeElement);
1216
+ if (newIndex) {
1217
+ __classPrivateFieldSet(this, _SkyRepeaterItemComponent_reorderCurrentIndex, newIndex, "f");
1218
+ __classPrivateFieldSet(this, _SkyRepeaterItemComponent_reorderSteps, (_a = __classPrivateFieldGet(this, _SkyRepeaterItemComponent_reorderSteps, "f"), _a++, _a), "f");
1219
+ __classPrivateFieldGet(this, _SkyRepeaterItemComponent_adapterService, "f").focusElement(this.grabHandle);
1220
+ __classPrivateFieldSet(this, _SkyRepeaterItemComponent_keyboardReorderingEnabled, true, "f");
1221
+ this.reorderButtonLabel = `${__classPrivateFieldGet(this, _SkyRepeaterItemComponent_reorderMovedText, "f")} ${__classPrivateFieldGet(this, _SkyRepeaterItemComponent_reorderCurrentIndex, "f") + 1}`;
1222
+ }
1223
+ }, _SkyRepeaterItemComponent_keyboardToggleReorder = function _SkyRepeaterItemComponent_keyboardToggleReorder() {
1224
+ __classPrivateFieldSet(this, _SkyRepeaterItemComponent_keyboardReorderingEnabled, !__classPrivateFieldGet(this, _SkyRepeaterItemComponent_keyboardReorderingEnabled, "f"), "f");
1225
+ __classPrivateFieldSet(this, _SkyRepeaterItemComponent_reorderSteps, 0, "f");
1226
+ if (__classPrivateFieldGet(this, _SkyRepeaterItemComponent_keyboardReorderingEnabled, "f")) {
1227
+ this.reorderState = __classPrivateFieldGet(this, _SkyRepeaterItemComponent_reorderStateDescription, "f");
1192
1228
  }
1193
- revertReorderSteps() {
1194
- if (this.reorderSteps < 0) {
1195
- this.adapterService.moveItemDown(this.elementRef.nativeElement, Math.abs(this.reorderSteps));
1196
- }
1197
- else if (this.reorderSteps > 0) {
1198
- this.adapterService.moveItemUp(this.elementRef.nativeElement, false, this.reorderSteps);
1229
+ else {
1230
+ // TODO: Needs improvement to be localizable
1231
+ this.reorderState = `${__classPrivateFieldGet(this, _SkyRepeaterItemComponent_reorderFinishText, "f")} ${__classPrivateFieldGet(this, _SkyRepeaterItemComponent_reorderCurrentIndex, "f") + 1} ${__classPrivateFieldGet(this, _SkyRepeaterItemComponent_reorderInstructions, "f")}`;
1232
+ __classPrivateFieldSet(this, _SkyRepeaterItemComponent_reorderCurrentIndex, -1, "f");
1233
+ }
1234
+ }, _SkyRepeaterItemComponent_revertReorderSteps = function _SkyRepeaterItemComponent_revertReorderSteps() {
1235
+ if (__classPrivateFieldGet(this, _SkyRepeaterItemComponent_reorderSteps, "f") < 0) {
1236
+ __classPrivateFieldGet(this, _SkyRepeaterItemComponent_adapterService, "f").moveItemDown(__classPrivateFieldGet(this, _SkyRepeaterItemComponent_elementRef, "f").nativeElement, Math.abs(__classPrivateFieldGet(this, _SkyRepeaterItemComponent_reorderSteps, "f")));
1237
+ }
1238
+ else if (__classPrivateFieldGet(this, _SkyRepeaterItemComponent_reorderSteps, "f") > 0) {
1239
+ __classPrivateFieldGet(this, _SkyRepeaterItemComponent_adapterService, "f").moveItemUp(__classPrivateFieldGet(this, _SkyRepeaterItemComponent_elementRef, "f").nativeElement, false, __classPrivateFieldGet(this, _SkyRepeaterItemComponent_reorderSteps, "f"));
1240
+ }
1241
+ __classPrivateFieldGet(this, _SkyRepeaterItemComponent_repeaterService, "f").registerOrderChange();
1242
+ }, _SkyRepeaterItemComponent_updateExpandOnContentChange = function _SkyRepeaterItemComponent_updateExpandOnContentChange() {
1243
+ var _b;
1244
+ (_b = this.repeaterItemContentComponents) === null || _b === void 0 ? void 0 : _b.changes.pipe(takeUntil(__classPrivateFieldGet(this, _SkyRepeaterItemComponent_ngUnsubscribe, "f"))).subscribe(() => {
1245
+ var _b;
1246
+ this.hasItemContent = !!((_b = this.repeaterItemContentComponents) === null || _b === void 0 ? void 0 : _b.length);
1247
+ /* istanbul ignore next */
1248
+ this.isCollapsible =
1249
+ this.hasItemContent && __classPrivateFieldGet(this, _SkyRepeaterItemComponent_repeaterService, "f").expandMode !== 'none';
1250
+ /* istanbul ignore else */
1251
+ if (__classPrivateFieldGet(this, _SkyRepeaterItemComponent_repeaterService, "f").expandMode === 'single') {
1252
+ __classPrivateFieldGet(this, _SkyRepeaterItemComponent_repeaterService, "f").onItemCollapseStateChange(this);
1199
1253
  }
1200
- this.repeaterService.registerOrderChange();
1201
- }
1202
- updateExpandOnContentChange() {
1203
- this.repeaterItemContentComponents.changes
1204
- .pipe(takeUntil(this.ngUnsubscribe))
1205
- .subscribe(() => {
1206
- this.hasItemContent = this.repeaterItemContentComponents.length > 0;
1207
- /* istanbul ignore next */
1208
- this.isCollapsible =
1209
- this.hasItemContent && this.repeaterService.expandMode !== 'none';
1210
- /* istanbul ignore else */
1211
- if (this.repeaterService.expandMode === 'single') {
1212
- this.repeaterService.onItemCollapseStateChange(this);
1213
- }
1214
- });
1215
- }
1216
- }
1254
+ });
1255
+ };
1217
1256
  SkyRepeaterItemComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.2.0", ngImport: i0, type: SkyRepeaterItemComponent, deps: [{ token: SkyRepeaterService }, { token: i0.ChangeDetectorRef }, { token: SkyRepeaterAdapterService }, { token: i0.ElementRef }, { token: i4.SkyLibResourcesService }], target: i0.ɵɵFactoryTarget.Component });
1218
- SkyRepeaterItemComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "14.2.0", type: SkyRepeaterItemComponent, selector: "sky-repeater-item", inputs: { disabled: "disabled", itemName: "itemName", inlineFormConfig: "inlineFormConfig", inlineFormTemplate: "inlineFormTemplate", isExpanded: "isExpanded", isSelected: "isSelected", reorderable: "reorderable", selectable: "selectable", showInlineForm: "showInlineForm", tag: "tag" }, outputs: { collapse: "collapse", expand: "expand", inlineFormClose: "inlineFormClose", isSelectedChange: "isSelectedChange" }, host: { listeners: { "keydown": "onKeydown($event)" }, properties: { "tabindex": "this.tabindex", "class": "this.repeaterGroupClass" } }, queries: [{ propertyName: "contextMenu", first: true, predicate: SkyRepeaterItemContextMenuComponent, descendants: true, read: ElementRef }, { propertyName: "repeaterItemContentComponents", predicate: SkyRepeaterItemContentComponent }], viewQueries: [{ propertyName: "grabHandle", first: true, predicate: ["grabHandle"], descendants: true, read: ElementRef }, { propertyName: "itemContentRef", first: true, predicate: ["itemContentRef"], descendants: true, read: ElementRef }, { propertyName: "itemHeaderRef", first: true, predicate: ["itemHeaderRef"], descendants: true, read: ElementRef }, { propertyName: "itemRef", first: true, predicate: ["itemRef"], descendants: true, read: ElementRef }], ngImport: i0, template: "<div\n class=\"sky-repeater-item sky-padding-even-default\"\n [attr.aria-label]=\"itemName\"\n [attr.aria-selected]=\"selectable ? isSelected : undefined\"\n [attr.role]=\"showInlineForm ? 'form' : (itemRole$ | async).item\"\n [ngClass]=\"{\n 'sky-repeater-item-active': isActive,\n 'sky-repeater-item-collapsible': isCollapsible,\n 'sky-repeater-item-selected': isSelected\n }\"\n (click)=\"onRepeaterItemClick($event)\"\n #itemRef\n>\n <div #inlineDelete>\n <ng-content select=\"sky-inline-delete\"></ng-content>\n </div>\n\n <ng-container *ngIf=\"inlineFormTemplate\">\n <sky-inline-form\n [config]=\"inlineFormConfig\"\n [showForm]=\"showInlineForm\"\n [template]=\"inlineFormTemplate\"\n (close)=\"onInlineFormClose($event)\"\n >\n <ng-container *ngTemplateOutlet=\"skyRepeaterItemLeft\"></ng-container>\n <ng-container *ngTemplateOutlet=\"skyRepeaterItemRight\"></ng-container>\n </sky-inline-form>\n </ng-container>\n\n <ng-container *ngIf=\"!inlineFormTemplate\">\n <ng-container *ngTemplateOutlet=\"skyRepeaterItemLeft\"></ng-container>\n <ng-container *ngTemplateOutlet=\"skyRepeaterItemRight\"></ng-container>\n </ng-container>\n</div>\n\n<ng-template #skyRepeaterItemLeft>\n <div class=\"sky-repeater-item-left\">\n <ng-container *ngIf=\"reorderable\">\n <span\n aria-live=\"assertive\"\n class=\"sky-screen-reader-only\"\n [id]=\"contentId + '-reorder-state'\"\n >\n {{ reorderState }}\n </span>\n <span\n class=\"sky-screen-reader-only\"\n [id]=\"contentId + '-reorder-instructions'\"\n >{{ reorderButtonLabel }}</span\n >\n <button\n class=\"sky-btn sky-tile-tools-control sky-repeater-item-grab-handle\"\n type=\"button\"\n [attr.aria-describedby]=\"contentId + '-reorder-instructions'\"\n [attr.aria-label]=\"\n itemName\n ? ('skyux_repeater_item_reorder_label' | skyLibResources: itemName)\n : ('skyux_repeater_item_reorder_label_default' | skyLibResources)\n \"\n (blur)=\"onReorderHandleBlur($event)\"\n (keydown)=\"onReorderHandleKeyDown($event)\"\n #grabHandle\n >\n <sky-icon icon=\"arrows-v\"></sky-icon>\n </button>\n </ng-container>\n <sky-checkbox\n *ngIf=\"selectable\"\n class=\"sky-repeater-item-checkbox\"\n [checked]=\"isSelected\"\n [label]=\"\n itemName\n ? ('skyux_repeater_item_checkbox_label' | skyLibResources: itemName)\n : ('skyux_repeater_item_checkbox_label_default' | skyLibResources)\n \"\n (change)=\"onCheckboxChange($event)\"\n >\n </sky-checkbox>\n <div\n class=\"sky-repeater-item-context-menu\"\n [hidden]=\"contextMenuEl.children.length === 0\"\n #contextMenuEl\n >\n <ng-content select=\"sky-repeater-item-context-menu\"></ng-content>\n </div>\n </div>\n</ng-template>\n\n<ng-template #skyRepeaterItemRight>\n <div class=\"sky-repeater-item-right\" #itemHeaderRef>\n <div\n class=\"sky-repeater-item-header\"\n [hidden]=\"titleRef.children.length === 0\"\n (click)=\"headerClick()\"\n >\n <div\n class=\"sky-repeater-item-title sky-emphasized\"\n #titleRef\n [attr.role]=\"(itemRole$ | async).title\"\n >\n <ng-content select=\"sky-repeater-item-title\"></ng-content>\n </div>\n <button\n *ngIf=\"reorderable\"\n class=\"sky-btn sky-btn-link sky-repeater-item-reorder-top\"\n type=\"button\"\n [attr.aria-label]=\"\n itemName\n ? ('skyux_repeater_item_reorder_top_label'\n | skyLibResources: itemName)\n : ('skyux_repeater_item_reorder_top_label_default'\n | skyLibResources)\n \"\n (click)=\"moveToTop($event)\"\n >\n <sky-icon icon=\"arrow-circle-up\"></sky-icon>\n {{ 'skyux_repeater_item_reorder_top' | skyLibResources }}\n </button>\n <div *ngIf=\"isCollapsible\" class=\"sky-repeater-item-chevron\">\n <sky-chevron\n [ariaControls]=\"contentId\"\n [ariaLabel]=\"\n itemName\n ? ('skyux_repeater_item_expand' | skyLibResources: itemName)\n : ('skyux_repeater_item_expand_default' | skyLibResources)\n \"\n [direction]=\"isExpanded ? 'up' : 'down'\"\n (directionChange)=\"chevronDirectionChange($event)\"\n >\n </sky-chevron>\n </div>\n <!-- Used for when the chevron is hidden to ensure that the right side is the same height as the left.-->\n <div\n *ngIf=\"!isCollapsible && !contextMenu\"\n class=\"sky-repeater-item-chevron-placeholder\"\n ></div>\n <!-- Used to ensure that the right side is the same height as the left.-->\n <div\n *ngIf=\"contextMenu\"\n class=\"sky-repeater-item-chevron-placeholder-with-context\"\n ></div>\n </div>\n <div\n class=\"sky-repeater-item-content\"\n [id]=\"contentId\"\n [@skyAnimationSlide]=\"slideDirection\"\n #itemContentRef\n [attr.role]=\"(itemRole$ | async).content\"\n >\n <ng-content select=\"sky-repeater-item-content\"></ng-content>\n </div>\n </div>\n</ng-template>\n", styles: ["sky-repeater-item .sky-repeater-item{display:flex;border-bottom:1px dotted #cdcfd2;padding-top:0;position:relative;transition:box-shadow .15s;align-items:flex-start}sky-repeater-item .sky-repeater-item sky-inline-form{display:block;width:100%}sky-repeater-item .sky-repeater-item sky-inline-form>:first-child,sky-repeater-item .sky-repeater-item sky-inline-form .sky-slide-dissolve-first,sky-repeater-item .sky-repeater-item sky-inline-form .sky-slide-dissolve-last{display:flex;flex:1 0 auto;width:100%}sky-repeater-item .sky-repeater-item sky-inline-form .sky-slide-dissolve-last{padding-top:10px}sky-repeater-item .sky-repeater-item.sky-repeater-item-active{background-color:#eeeeef;color:#212327;padding-left:6px;border-left:4px solid #00b4f1}sky-repeater-item .sky-repeater-item.sky-repeater-item-active .sky-inline-delete{margin-left:-4px;width:calc(100% + 4px)}sky-repeater-item .sky-repeater-item-left{display:flex;padding-top:10px;align-items:center}sky-repeater-item .sky-repeater-item-left sky-checkbox{display:flex}sky-repeater-item .sky-repeater-item-right{max-width:100%;flex-grow:1;align-self:center}sky-repeater-item .sky-repeater-item-header{align-items:center;display:flex;padding-top:10px}sky-repeater-item .sky-repeater-item-chevron{margin-left:10px}sky-repeater-item .sky-repeater-item-chevron-placeholder{height:24px}sky-repeater-item .sky-repeater-item-chevron-placeholder-with-context{height:29px}sky-repeater-item .sky-repeater-item-context-menu{padding:0 10px 0 0}sky-repeater-item .sky-repeater-item-checkbox{padding:0 5px 0 0}sky-repeater-item .sky-repeater-item-selected{background-color:#f1eef6;transition:background-color .15s}sky-repeater-item .sky-repeater-item-title{margin:0;flex-grow:1;line-height:1.1;color:#212327}sky-repeater-item sky-repeater-item-content{display:block;margin:10px 0 0}sky-repeater-item .sky-repeater-item-collapsible .sky-repeater-item-header{cursor:pointer}sky-repeater-item .sky-repeater-item-collapsible .sky-repeater-item-content{padding-right:34px}sky-repeater-item .sky-repeater-item-collapsed .sky-repeater-item-content{display:none}sky-repeater-item .sky-repeater-item-grab-handle{color:#cdcfd2;cursor:pointer;border:0;width:24px;height:24px;cursor:grab;cursor:-moz-grab;padding:0;margin-right:10px}sky-repeater-item .sky-repeater-item-grab-handle:hover{color:#979ba2;transition:color .15s}sky-repeater-item.sky-repeater-item-dragging.gu-mirror{opacity:initial;-ms-filter:initial;filter:initial;background-color:#fff;box-shadow:0 0 5px #0000004d}sky-repeater-item.sky-repeater-item-dragging.gu-transit .sky-repeater-item{background-color:#d8d8d8}sky-repeater-item.sky-repeater-item-dragging.gu-transit .sky-repeater-item .sky-repeater-item-left,sky-repeater-item.sky-repeater-item-dragging.gu-transit .sky-repeater-item .sky-repeater-item-right{visibility:hidden}sky-repeater-item.sky-repeater-item-dragging .sky-repeater-item-grab-handle{cursor:grabbing;cursor:-webkit-grabbing}.sky-theme-modern sky-repeater-item .sky-repeater-item{padding-bottom:20px}.sky-theme-modern sky-repeater-item .sky-repeater-item.sky-repeater-item-active{background-color:transparent;border-left-color:#1870b8}.sky-theme-modern sky-repeater-item .sky-repeater-item:focus,.sky-theme-modern sky-repeater-item .sky-repeater-item:active:focus{outline:solid 2px #1870B8;outline-offset:-2px}.sky-theme-modern sky-repeater-item .sky-repeater-item:focus:not(:active){box-shadow:0 1px 8px #0000004d}.sky-theme-modern sky-repeater-item .sky-repeater-item-header[hidden]+.sky-repeater-item-content sky-repeater-item-content{margin:20px 0 0}.sky-theme-modern sky-repeater-item .sky-repeater-item-header,.sky-theme-modern sky-repeater-item .sky-repeater-item-left{padding-top:20px}.sky-theme-modern sky-repeater-item sky-inline-form .sky-slide-dissolve-last{padding-top:20px}.sky-theme-modern.sky-theme-mode-dark sky-repeater-item .sky-repeater-item{border-bottom-color:#686c73}.sky-theme-modern.sky-theme-mode-dark sky-repeater-item .sky-repeater-item.sky-repeater-item-active{color:#fbfcfe}.sky-theme-modern.sky-theme-mode-dark sky-repeater-item .sky-repeater-item-title{color:#fbfcfe}\n"], dependencies: [{ kind: "directive", type: i1.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i1.NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }, { kind: "component", type: i2.λ2, selector: "sky-chevron", inputs: ["ariaControls", "ariaLabel", "direction", "disabled"], outputs: ["directionChange"] }, { kind: "component", type: i6.λ3, selector: "sky-checkbox", inputs: ["label", "labelledBy", "id", "disabled", "tabindex", "name", "icon", "checkboxType", "checked", "required"], outputs: ["change", "checkedChange", "disabledChange"] }, { kind: "component", type: i2.λ4, selector: "sky-icon", inputs: ["icon", "iconType", "size", "fixedWidth", "variant"] }, { kind: "component", type: i7.λ1, selector: "sky-inline-form", inputs: ["config", "template", "showForm"], outputs: ["close"] }, { kind: "pipe", type: i1.AsyncPipe, name: "async" }, { kind: "pipe", type: i4.SkyLibResourcesPipe, name: "skyLibResources" }], animations: [skyAnimationSlide], encapsulation: i0.ViewEncapsulation.None });
1257
+ SkyRepeaterItemComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "14.2.0", type: SkyRepeaterItemComponent, selector: "sky-repeater-item", inputs: { disabled: "disabled", itemName: "itemName", inlineFormConfig: "inlineFormConfig", inlineFormTemplate: "inlineFormTemplate", isExpanded: "isExpanded", isSelected: "isSelected", reorderable: "reorderable", selectable: "selectable", showInlineForm: "showInlineForm", tag: "tag" }, outputs: { collapse: "collapse", expand: "expand", inlineFormClose: "inlineFormClose", isSelectedChange: "isSelectedChange" }, host: { listeners: { "keydown": "onKeydown($event)" }, properties: { "tabindex": "this.tabindex", "class": "this.repeaterGroupClass" } }, queries: [{ propertyName: "contextMenu", first: true, predicate: SkyRepeaterItemContextMenuComponent, descendants: true, read: ElementRef }, { propertyName: "repeaterItemContentComponents", predicate: SkyRepeaterItemContentComponent }], viewQueries: [{ propertyName: "grabHandle", first: true, predicate: ["grabHandle"], descendants: true, read: ElementRef }, { propertyName: "itemContentRef", first: true, predicate: ["itemContentRef"], descendants: true, read: ElementRef }, { propertyName: "itemHeaderRef", first: true, predicate: ["itemHeaderRef"], descendants: true, read: ElementRef }, { propertyName: "itemRef", first: true, predicate: ["itemRef"], descendants: true, read: ElementRef }], ngImport: i0, template: "<div\n class=\"sky-repeater-item sky-padding-even-default\"\n [attr.aria-label]=\"itemName\"\n [attr.aria-selected]=\"selectable ? !!isSelected : undefined\"\n [attr.role]=\"showInlineForm ? 'form' : (itemRole$ | async)?.item\"\n [ngClass]=\"{\n 'sky-repeater-item-active': isActive,\n 'sky-repeater-item-collapsible': isCollapsible,\n 'sky-repeater-item-selected': isSelected\n }\"\n (click)=\"onRepeaterItemClick($event)\"\n #itemRef\n>\n <div #inlineDelete>\n <ng-content select=\"sky-inline-delete\"></ng-content>\n </div>\n\n <ng-container *ngIf=\"inlineFormTemplate\">\n <sky-inline-form\n [config]=\"inlineFormConfig\"\n [showForm]=\"showInlineForm\"\n [template]=\"inlineFormTemplate\"\n (close)=\"onInlineFormClose($event)\"\n >\n <ng-container *ngTemplateOutlet=\"skyRepeaterItemLeft\"></ng-container>\n <ng-container *ngTemplateOutlet=\"skyRepeaterItemRight\"></ng-container>\n </sky-inline-form>\n </ng-container>\n\n <ng-container *ngIf=\"!inlineFormTemplate\">\n <ng-container *ngTemplateOutlet=\"skyRepeaterItemLeft\"></ng-container>\n <ng-container *ngTemplateOutlet=\"skyRepeaterItemRight\"></ng-container>\n </ng-container>\n</div>\n\n<ng-template #skyRepeaterItemLeft>\n <div class=\"sky-repeater-item-left\">\n <ng-container *ngIf=\"reorderable\">\n <span\n aria-live=\"assertive\"\n class=\"sky-screen-reader-only\"\n [id]=\"contentId + '-reorder-state'\"\n >\n {{ reorderState }}\n </span>\n <span\n class=\"sky-screen-reader-only\"\n [id]=\"contentId + '-reorder-instructions'\"\n >{{ reorderButtonLabel }}</span\n >\n <button\n class=\"sky-btn sky-tile-tools-control sky-repeater-item-grab-handle\"\n type=\"button\"\n [attr.aria-describedby]=\"contentId + '-reorder-instructions'\"\n [attr.aria-label]=\"\n itemName\n ? ('skyux_repeater_item_reorder_label' | skyLibResources: itemName)\n : ('skyux_repeater_item_reorder_label_default' | skyLibResources)\n \"\n (blur)=\"onReorderHandleBlur($event)\"\n (keydown)=\"onReorderHandleKeyDown($event)\"\n #grabHandle\n >\n <sky-icon icon=\"arrows-v\"></sky-icon>\n </button>\n </ng-container>\n <sky-checkbox\n *ngIf=\"selectable\"\n class=\"sky-repeater-item-checkbox\"\n [checked]=\"isSelected\"\n [label]=\"\n itemName\n ? ('skyux_repeater_item_checkbox_label' | skyLibResources: itemName)\n : ('skyux_repeater_item_checkbox_label_default' | skyLibResources)\n \"\n (change)=\"onCheckboxChange($event)\"\n >\n </sky-checkbox>\n <div\n class=\"sky-repeater-item-context-menu\"\n [hidden]=\"contextMenuEl.children.length === 0\"\n #contextMenuEl\n >\n <ng-content select=\"sky-repeater-item-context-menu\"></ng-content>\n </div>\n </div>\n</ng-template>\n\n<ng-template #skyRepeaterItemRight>\n <div class=\"sky-repeater-item-right\" #itemHeaderRef>\n <div\n class=\"sky-repeater-item-header\"\n [hidden]=\"titleRef.children.length === 0\"\n (click)=\"headerClick()\"\n >\n <div\n class=\"sky-repeater-item-title sky-emphasized\"\n #titleRef\n [attr.role]=\"(itemRole$ | async)?.title\"\n >\n <ng-content select=\"sky-repeater-item-title\"></ng-content>\n </div>\n <button\n *ngIf=\"reorderable\"\n class=\"sky-btn sky-btn-link sky-repeater-item-reorder-top\"\n type=\"button\"\n [attr.aria-label]=\"\n itemName\n ? ('skyux_repeater_item_reorder_top_label'\n | skyLibResources: itemName)\n : ('skyux_repeater_item_reorder_top_label_default'\n | skyLibResources)\n \"\n (click)=\"moveToTop($event)\"\n >\n <sky-icon icon=\"arrow-circle-up\"></sky-icon>\n {{ 'skyux_repeater_item_reorder_top' | skyLibResources }}\n </button>\n <div *ngIf=\"isCollapsible\" class=\"sky-repeater-item-chevron\">\n <sky-chevron\n [ariaControls]=\"contentId\"\n [ariaLabel]=\"\n itemName\n ? ('skyux_repeater_item_expand' | skyLibResources: itemName)\n : ('skyux_repeater_item_expand_default' | skyLibResources)\n \"\n [direction]=\"isExpanded ? 'up' : 'down'\"\n (directionChange)=\"chevronDirectionChange($event)\"\n >\n </sky-chevron>\n </div>\n <!-- Used for when the chevron is hidden to ensure that the right side is the same height as the left.-->\n <div\n *ngIf=\"!isCollapsible && !contextMenu\"\n class=\"sky-repeater-item-chevron-placeholder\"\n ></div>\n <!-- Used to ensure that the right side is the same height as the left.-->\n <div\n *ngIf=\"contextMenu\"\n class=\"sky-repeater-item-chevron-placeholder-with-context\"\n ></div>\n </div>\n <div\n class=\"sky-repeater-item-content\"\n [id]=\"contentId\"\n [@skyAnimationSlide]=\"slideDirection\"\n #itemContentRef\n [attr.role]=\"(itemRole$ | async)?.content\"\n >\n <ng-content select=\"sky-repeater-item-content\"></ng-content>\n </div>\n </div>\n</ng-template>\n", styles: ["sky-repeater-item .sky-repeater-item{display:flex;border-bottom:1px dotted #cdcfd2;padding-top:0;position:relative;transition:box-shadow .15s;align-items:flex-start}sky-repeater-item .sky-repeater-item sky-inline-form{display:block;width:100%}sky-repeater-item .sky-repeater-item sky-inline-form>:first-child,sky-repeater-item .sky-repeater-item sky-inline-form .sky-slide-dissolve-first,sky-repeater-item .sky-repeater-item sky-inline-form .sky-slide-dissolve-last{display:flex;flex:1 0 auto;width:100%}sky-repeater-item .sky-repeater-item sky-inline-form .sky-slide-dissolve-last{padding-top:10px}sky-repeater-item .sky-repeater-item.sky-repeater-item-active{background-color:#eeeeef;color:#212327;padding-left:6px;border-left:4px solid #00b4f1}sky-repeater-item .sky-repeater-item.sky-repeater-item-active .sky-inline-delete{margin-left:-4px;width:calc(100% + 4px)}sky-repeater-item .sky-repeater-item-left{display:flex;padding-top:10px;align-items:center}sky-repeater-item .sky-repeater-item-left sky-checkbox{display:flex}sky-repeater-item .sky-repeater-item-right{max-width:100%;flex-grow:1;align-self:center}sky-repeater-item .sky-repeater-item-header{align-items:center;display:flex;padding-top:10px}sky-repeater-item .sky-repeater-item-chevron{margin-left:10px}sky-repeater-item .sky-repeater-item-chevron-placeholder{height:24px}sky-repeater-item .sky-repeater-item-chevron-placeholder-with-context{height:29px}sky-repeater-item .sky-repeater-item-context-menu{padding:0 10px 0 0}sky-repeater-item .sky-repeater-item-checkbox{padding:0 5px 0 0}sky-repeater-item .sky-repeater-item-selected{background-color:#f1eef6;transition:background-color .15s}sky-repeater-item .sky-repeater-item-title{margin:0;flex-grow:1;line-height:1.1;color:#212327}sky-repeater-item sky-repeater-item-content{display:block;margin:10px 0 0}sky-repeater-item .sky-repeater-item-collapsible .sky-repeater-item-header{cursor:pointer}sky-repeater-item .sky-repeater-item-collapsible .sky-repeater-item-content{padding-right:34px}sky-repeater-item .sky-repeater-item-collapsed .sky-repeater-item-content{display:none}sky-repeater-item .sky-repeater-item-grab-handle{color:#cdcfd2;cursor:pointer;border:0;width:24px;height:24px;cursor:grab;cursor:-moz-grab;padding:0;margin-right:10px}sky-repeater-item .sky-repeater-item-grab-handle:hover{color:#979ba2;transition:color .15s}sky-repeater-item.sky-repeater-item-dragging.gu-mirror{opacity:initial;-ms-filter:initial;filter:initial;background-color:#fff;box-shadow:0 0 5px #0000004d}sky-repeater-item.sky-repeater-item-dragging.gu-transit .sky-repeater-item{background-color:#d8d8d8}sky-repeater-item.sky-repeater-item-dragging.gu-transit .sky-repeater-item .sky-repeater-item-left,sky-repeater-item.sky-repeater-item-dragging.gu-transit .sky-repeater-item .sky-repeater-item-right{visibility:hidden}sky-repeater-item.sky-repeater-item-dragging .sky-repeater-item-grab-handle{cursor:grabbing;cursor:-webkit-grabbing}.sky-theme-modern sky-repeater-item .sky-repeater-item{padding-bottom:20px}.sky-theme-modern sky-repeater-item .sky-repeater-item.sky-repeater-item-active{background-color:transparent;border-left-color:#1870b8}.sky-theme-modern sky-repeater-item .sky-repeater-item:focus,.sky-theme-modern sky-repeater-item .sky-repeater-item:active:focus{outline:solid 2px #1870B8;outline-offset:-2px}.sky-theme-modern sky-repeater-item .sky-repeater-item:focus:not(:active){box-shadow:0 1px 8px #0000004d}.sky-theme-modern sky-repeater-item .sky-repeater-item-header[hidden]+.sky-repeater-item-content sky-repeater-item-content{margin:20px 0 0}.sky-theme-modern sky-repeater-item .sky-repeater-item-header,.sky-theme-modern sky-repeater-item .sky-repeater-item-left{padding-top:20px}.sky-theme-modern sky-repeater-item sky-inline-form .sky-slide-dissolve-last{padding-top:20px}.sky-theme-modern.sky-theme-mode-dark sky-repeater-item .sky-repeater-item{border-bottom-color:#686c73}.sky-theme-modern.sky-theme-mode-dark sky-repeater-item .sky-repeater-item.sky-repeater-item-active{color:#fbfcfe}.sky-theme-modern.sky-theme-mode-dark sky-repeater-item .sky-repeater-item-title{color:#fbfcfe}\n"], dependencies: [{ kind: "directive", type: i1.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i1.NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }, { kind: "component", type: i2.λ2, selector: "sky-chevron", inputs: ["ariaControls", "ariaLabel", "direction", "disabled"], outputs: ["directionChange"] }, { kind: "component", type: i6.λ3, selector: "sky-checkbox", inputs: ["label", "labelledBy", "id", "disabled", "tabindex", "name", "icon", "checkboxType", "checked", "required"], outputs: ["change", "checkedChange", "disabledChange"] }, { kind: "component", type: i2.λ4, selector: "sky-icon", inputs: ["icon", "iconType", "size", "fixedWidth", "variant"] }, { kind: "component", type: i7.λ1, selector: "sky-inline-form", inputs: ["config", "template", "showForm"], outputs: ["close"] }, { kind: "pipe", type: i1.AsyncPipe, name: "async" }, { kind: "pipe", type: i4.SkyLibResourcesPipe, name: "skyLibResources" }], animations: [skyAnimationSlide], encapsulation: i0.ViewEncapsulation.None });
1219
1258
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.2.0", ngImport: i0, type: SkyRepeaterItemComponent, decorators: [{
1220
1259
  type: Component,
1221
- args: [{ selector: 'sky-repeater-item', animations: [skyAnimationSlide], encapsulation: ViewEncapsulation.None, template: "<div\n class=\"sky-repeater-item sky-padding-even-default\"\n [attr.aria-label]=\"itemName\"\n [attr.aria-selected]=\"selectable ? isSelected : undefined\"\n [attr.role]=\"showInlineForm ? 'form' : (itemRole$ | async).item\"\n [ngClass]=\"{\n 'sky-repeater-item-active': isActive,\n 'sky-repeater-item-collapsible': isCollapsible,\n 'sky-repeater-item-selected': isSelected\n }\"\n (click)=\"onRepeaterItemClick($event)\"\n #itemRef\n>\n <div #inlineDelete>\n <ng-content select=\"sky-inline-delete\"></ng-content>\n </div>\n\n <ng-container *ngIf=\"inlineFormTemplate\">\n <sky-inline-form\n [config]=\"inlineFormConfig\"\n [showForm]=\"showInlineForm\"\n [template]=\"inlineFormTemplate\"\n (close)=\"onInlineFormClose($event)\"\n >\n <ng-container *ngTemplateOutlet=\"skyRepeaterItemLeft\"></ng-container>\n <ng-container *ngTemplateOutlet=\"skyRepeaterItemRight\"></ng-container>\n </sky-inline-form>\n </ng-container>\n\n <ng-container *ngIf=\"!inlineFormTemplate\">\n <ng-container *ngTemplateOutlet=\"skyRepeaterItemLeft\"></ng-container>\n <ng-container *ngTemplateOutlet=\"skyRepeaterItemRight\"></ng-container>\n </ng-container>\n</div>\n\n<ng-template #skyRepeaterItemLeft>\n <div class=\"sky-repeater-item-left\">\n <ng-container *ngIf=\"reorderable\">\n <span\n aria-live=\"assertive\"\n class=\"sky-screen-reader-only\"\n [id]=\"contentId + '-reorder-state'\"\n >\n {{ reorderState }}\n </span>\n <span\n class=\"sky-screen-reader-only\"\n [id]=\"contentId + '-reorder-instructions'\"\n >{{ reorderButtonLabel }}</span\n >\n <button\n class=\"sky-btn sky-tile-tools-control sky-repeater-item-grab-handle\"\n type=\"button\"\n [attr.aria-describedby]=\"contentId + '-reorder-instructions'\"\n [attr.aria-label]=\"\n itemName\n ? ('skyux_repeater_item_reorder_label' | skyLibResources: itemName)\n : ('skyux_repeater_item_reorder_label_default' | skyLibResources)\n \"\n (blur)=\"onReorderHandleBlur($event)\"\n (keydown)=\"onReorderHandleKeyDown($event)\"\n #grabHandle\n >\n <sky-icon icon=\"arrows-v\"></sky-icon>\n </button>\n </ng-container>\n <sky-checkbox\n *ngIf=\"selectable\"\n class=\"sky-repeater-item-checkbox\"\n [checked]=\"isSelected\"\n [label]=\"\n itemName\n ? ('skyux_repeater_item_checkbox_label' | skyLibResources: itemName)\n : ('skyux_repeater_item_checkbox_label_default' | skyLibResources)\n \"\n (change)=\"onCheckboxChange($event)\"\n >\n </sky-checkbox>\n <div\n class=\"sky-repeater-item-context-menu\"\n [hidden]=\"contextMenuEl.children.length === 0\"\n #contextMenuEl\n >\n <ng-content select=\"sky-repeater-item-context-menu\"></ng-content>\n </div>\n </div>\n</ng-template>\n\n<ng-template #skyRepeaterItemRight>\n <div class=\"sky-repeater-item-right\" #itemHeaderRef>\n <div\n class=\"sky-repeater-item-header\"\n [hidden]=\"titleRef.children.length === 0\"\n (click)=\"headerClick()\"\n >\n <div\n class=\"sky-repeater-item-title sky-emphasized\"\n #titleRef\n [attr.role]=\"(itemRole$ | async).title\"\n >\n <ng-content select=\"sky-repeater-item-title\"></ng-content>\n </div>\n <button\n *ngIf=\"reorderable\"\n class=\"sky-btn sky-btn-link sky-repeater-item-reorder-top\"\n type=\"button\"\n [attr.aria-label]=\"\n itemName\n ? ('skyux_repeater_item_reorder_top_label'\n | skyLibResources: itemName)\n : ('skyux_repeater_item_reorder_top_label_default'\n | skyLibResources)\n \"\n (click)=\"moveToTop($event)\"\n >\n <sky-icon icon=\"arrow-circle-up\"></sky-icon>\n {{ 'skyux_repeater_item_reorder_top' | skyLibResources }}\n </button>\n <div *ngIf=\"isCollapsible\" class=\"sky-repeater-item-chevron\">\n <sky-chevron\n [ariaControls]=\"contentId\"\n [ariaLabel]=\"\n itemName\n ? ('skyux_repeater_item_expand' | skyLibResources: itemName)\n : ('skyux_repeater_item_expand_default' | skyLibResources)\n \"\n [direction]=\"isExpanded ? 'up' : 'down'\"\n (directionChange)=\"chevronDirectionChange($event)\"\n >\n </sky-chevron>\n </div>\n <!-- Used for when the chevron is hidden to ensure that the right side is the same height as the left.-->\n <div\n *ngIf=\"!isCollapsible && !contextMenu\"\n class=\"sky-repeater-item-chevron-placeholder\"\n ></div>\n <!-- Used to ensure that the right side is the same height as the left.-->\n <div\n *ngIf=\"contextMenu\"\n class=\"sky-repeater-item-chevron-placeholder-with-context\"\n ></div>\n </div>\n <div\n class=\"sky-repeater-item-content\"\n [id]=\"contentId\"\n [@skyAnimationSlide]=\"slideDirection\"\n #itemContentRef\n [attr.role]=\"(itemRole$ | async).content\"\n >\n <ng-content select=\"sky-repeater-item-content\"></ng-content>\n </div>\n </div>\n</ng-template>\n", styles: ["sky-repeater-item .sky-repeater-item{display:flex;border-bottom:1px dotted #cdcfd2;padding-top:0;position:relative;transition:box-shadow .15s;align-items:flex-start}sky-repeater-item .sky-repeater-item sky-inline-form{display:block;width:100%}sky-repeater-item .sky-repeater-item sky-inline-form>:first-child,sky-repeater-item .sky-repeater-item sky-inline-form .sky-slide-dissolve-first,sky-repeater-item .sky-repeater-item sky-inline-form .sky-slide-dissolve-last{display:flex;flex:1 0 auto;width:100%}sky-repeater-item .sky-repeater-item sky-inline-form .sky-slide-dissolve-last{padding-top:10px}sky-repeater-item .sky-repeater-item.sky-repeater-item-active{background-color:#eeeeef;color:#212327;padding-left:6px;border-left:4px solid #00b4f1}sky-repeater-item .sky-repeater-item.sky-repeater-item-active .sky-inline-delete{margin-left:-4px;width:calc(100% + 4px)}sky-repeater-item .sky-repeater-item-left{display:flex;padding-top:10px;align-items:center}sky-repeater-item .sky-repeater-item-left sky-checkbox{display:flex}sky-repeater-item .sky-repeater-item-right{max-width:100%;flex-grow:1;align-self:center}sky-repeater-item .sky-repeater-item-header{align-items:center;display:flex;padding-top:10px}sky-repeater-item .sky-repeater-item-chevron{margin-left:10px}sky-repeater-item .sky-repeater-item-chevron-placeholder{height:24px}sky-repeater-item .sky-repeater-item-chevron-placeholder-with-context{height:29px}sky-repeater-item .sky-repeater-item-context-menu{padding:0 10px 0 0}sky-repeater-item .sky-repeater-item-checkbox{padding:0 5px 0 0}sky-repeater-item .sky-repeater-item-selected{background-color:#f1eef6;transition:background-color .15s}sky-repeater-item .sky-repeater-item-title{margin:0;flex-grow:1;line-height:1.1;color:#212327}sky-repeater-item sky-repeater-item-content{display:block;margin:10px 0 0}sky-repeater-item .sky-repeater-item-collapsible .sky-repeater-item-header{cursor:pointer}sky-repeater-item .sky-repeater-item-collapsible .sky-repeater-item-content{padding-right:34px}sky-repeater-item .sky-repeater-item-collapsed .sky-repeater-item-content{display:none}sky-repeater-item .sky-repeater-item-grab-handle{color:#cdcfd2;cursor:pointer;border:0;width:24px;height:24px;cursor:grab;cursor:-moz-grab;padding:0;margin-right:10px}sky-repeater-item .sky-repeater-item-grab-handle:hover{color:#979ba2;transition:color .15s}sky-repeater-item.sky-repeater-item-dragging.gu-mirror{opacity:initial;-ms-filter:initial;filter:initial;background-color:#fff;box-shadow:0 0 5px #0000004d}sky-repeater-item.sky-repeater-item-dragging.gu-transit .sky-repeater-item{background-color:#d8d8d8}sky-repeater-item.sky-repeater-item-dragging.gu-transit .sky-repeater-item .sky-repeater-item-left,sky-repeater-item.sky-repeater-item-dragging.gu-transit .sky-repeater-item .sky-repeater-item-right{visibility:hidden}sky-repeater-item.sky-repeater-item-dragging .sky-repeater-item-grab-handle{cursor:grabbing;cursor:-webkit-grabbing}.sky-theme-modern sky-repeater-item .sky-repeater-item{padding-bottom:20px}.sky-theme-modern sky-repeater-item .sky-repeater-item.sky-repeater-item-active{background-color:transparent;border-left-color:#1870b8}.sky-theme-modern sky-repeater-item .sky-repeater-item:focus,.sky-theme-modern sky-repeater-item .sky-repeater-item:active:focus{outline:solid 2px #1870B8;outline-offset:-2px}.sky-theme-modern sky-repeater-item .sky-repeater-item:focus:not(:active){box-shadow:0 1px 8px #0000004d}.sky-theme-modern sky-repeater-item .sky-repeater-item-header[hidden]+.sky-repeater-item-content sky-repeater-item-content{margin:20px 0 0}.sky-theme-modern sky-repeater-item .sky-repeater-item-header,.sky-theme-modern sky-repeater-item .sky-repeater-item-left{padding-top:20px}.sky-theme-modern sky-repeater-item sky-inline-form .sky-slide-dissolve-last{padding-top:20px}.sky-theme-modern.sky-theme-mode-dark sky-repeater-item .sky-repeater-item{border-bottom-color:#686c73}.sky-theme-modern.sky-theme-mode-dark sky-repeater-item .sky-repeater-item.sky-repeater-item-active{color:#fbfcfe}.sky-theme-modern.sky-theme-mode-dark sky-repeater-item .sky-repeater-item-title{color:#fbfcfe}\n"] }]
1260
+ args: [{ selector: 'sky-repeater-item', animations: [skyAnimationSlide], encapsulation: ViewEncapsulation.None, template: "<div\n class=\"sky-repeater-item sky-padding-even-default\"\n [attr.aria-label]=\"itemName\"\n [attr.aria-selected]=\"selectable ? !!isSelected : undefined\"\n [attr.role]=\"showInlineForm ? 'form' : (itemRole$ | async)?.item\"\n [ngClass]=\"{\n 'sky-repeater-item-active': isActive,\n 'sky-repeater-item-collapsible': isCollapsible,\n 'sky-repeater-item-selected': isSelected\n }\"\n (click)=\"onRepeaterItemClick($event)\"\n #itemRef\n>\n <div #inlineDelete>\n <ng-content select=\"sky-inline-delete\"></ng-content>\n </div>\n\n <ng-container *ngIf=\"inlineFormTemplate\">\n <sky-inline-form\n [config]=\"inlineFormConfig\"\n [showForm]=\"showInlineForm\"\n [template]=\"inlineFormTemplate\"\n (close)=\"onInlineFormClose($event)\"\n >\n <ng-container *ngTemplateOutlet=\"skyRepeaterItemLeft\"></ng-container>\n <ng-container *ngTemplateOutlet=\"skyRepeaterItemRight\"></ng-container>\n </sky-inline-form>\n </ng-container>\n\n <ng-container *ngIf=\"!inlineFormTemplate\">\n <ng-container *ngTemplateOutlet=\"skyRepeaterItemLeft\"></ng-container>\n <ng-container *ngTemplateOutlet=\"skyRepeaterItemRight\"></ng-container>\n </ng-container>\n</div>\n\n<ng-template #skyRepeaterItemLeft>\n <div class=\"sky-repeater-item-left\">\n <ng-container *ngIf=\"reorderable\">\n <span\n aria-live=\"assertive\"\n class=\"sky-screen-reader-only\"\n [id]=\"contentId + '-reorder-state'\"\n >\n {{ reorderState }}\n </span>\n <span\n class=\"sky-screen-reader-only\"\n [id]=\"contentId + '-reorder-instructions'\"\n >{{ reorderButtonLabel }}</span\n >\n <button\n class=\"sky-btn sky-tile-tools-control sky-repeater-item-grab-handle\"\n type=\"button\"\n [attr.aria-describedby]=\"contentId + '-reorder-instructions'\"\n [attr.aria-label]=\"\n itemName\n ? ('skyux_repeater_item_reorder_label' | skyLibResources: itemName)\n : ('skyux_repeater_item_reorder_label_default' | skyLibResources)\n \"\n (blur)=\"onReorderHandleBlur($event)\"\n (keydown)=\"onReorderHandleKeyDown($event)\"\n #grabHandle\n >\n <sky-icon icon=\"arrows-v\"></sky-icon>\n </button>\n </ng-container>\n <sky-checkbox\n *ngIf=\"selectable\"\n class=\"sky-repeater-item-checkbox\"\n [checked]=\"isSelected\"\n [label]=\"\n itemName\n ? ('skyux_repeater_item_checkbox_label' | skyLibResources: itemName)\n : ('skyux_repeater_item_checkbox_label_default' | skyLibResources)\n \"\n (change)=\"onCheckboxChange($event)\"\n >\n </sky-checkbox>\n <div\n class=\"sky-repeater-item-context-menu\"\n [hidden]=\"contextMenuEl.children.length === 0\"\n #contextMenuEl\n >\n <ng-content select=\"sky-repeater-item-context-menu\"></ng-content>\n </div>\n </div>\n</ng-template>\n\n<ng-template #skyRepeaterItemRight>\n <div class=\"sky-repeater-item-right\" #itemHeaderRef>\n <div\n class=\"sky-repeater-item-header\"\n [hidden]=\"titleRef.children.length === 0\"\n (click)=\"headerClick()\"\n >\n <div\n class=\"sky-repeater-item-title sky-emphasized\"\n #titleRef\n [attr.role]=\"(itemRole$ | async)?.title\"\n >\n <ng-content select=\"sky-repeater-item-title\"></ng-content>\n </div>\n <button\n *ngIf=\"reorderable\"\n class=\"sky-btn sky-btn-link sky-repeater-item-reorder-top\"\n type=\"button\"\n [attr.aria-label]=\"\n itemName\n ? ('skyux_repeater_item_reorder_top_label'\n | skyLibResources: itemName)\n : ('skyux_repeater_item_reorder_top_label_default'\n | skyLibResources)\n \"\n (click)=\"moveToTop($event)\"\n >\n <sky-icon icon=\"arrow-circle-up\"></sky-icon>\n {{ 'skyux_repeater_item_reorder_top' | skyLibResources }}\n </button>\n <div *ngIf=\"isCollapsible\" class=\"sky-repeater-item-chevron\">\n <sky-chevron\n [ariaControls]=\"contentId\"\n [ariaLabel]=\"\n itemName\n ? ('skyux_repeater_item_expand' | skyLibResources: itemName)\n : ('skyux_repeater_item_expand_default' | skyLibResources)\n \"\n [direction]=\"isExpanded ? 'up' : 'down'\"\n (directionChange)=\"chevronDirectionChange($event)\"\n >\n </sky-chevron>\n </div>\n <!-- Used for when the chevron is hidden to ensure that the right side is the same height as the left.-->\n <div\n *ngIf=\"!isCollapsible && !contextMenu\"\n class=\"sky-repeater-item-chevron-placeholder\"\n ></div>\n <!-- Used to ensure that the right side is the same height as the left.-->\n <div\n *ngIf=\"contextMenu\"\n class=\"sky-repeater-item-chevron-placeholder-with-context\"\n ></div>\n </div>\n <div\n class=\"sky-repeater-item-content\"\n [id]=\"contentId\"\n [@skyAnimationSlide]=\"slideDirection\"\n #itemContentRef\n [attr.role]=\"(itemRole$ | async)?.content\"\n >\n <ng-content select=\"sky-repeater-item-content\"></ng-content>\n </div>\n </div>\n</ng-template>\n", styles: ["sky-repeater-item .sky-repeater-item{display:flex;border-bottom:1px dotted #cdcfd2;padding-top:0;position:relative;transition:box-shadow .15s;align-items:flex-start}sky-repeater-item .sky-repeater-item sky-inline-form{display:block;width:100%}sky-repeater-item .sky-repeater-item sky-inline-form>:first-child,sky-repeater-item .sky-repeater-item sky-inline-form .sky-slide-dissolve-first,sky-repeater-item .sky-repeater-item sky-inline-form .sky-slide-dissolve-last{display:flex;flex:1 0 auto;width:100%}sky-repeater-item .sky-repeater-item sky-inline-form .sky-slide-dissolve-last{padding-top:10px}sky-repeater-item .sky-repeater-item.sky-repeater-item-active{background-color:#eeeeef;color:#212327;padding-left:6px;border-left:4px solid #00b4f1}sky-repeater-item .sky-repeater-item.sky-repeater-item-active .sky-inline-delete{margin-left:-4px;width:calc(100% + 4px)}sky-repeater-item .sky-repeater-item-left{display:flex;padding-top:10px;align-items:center}sky-repeater-item .sky-repeater-item-left sky-checkbox{display:flex}sky-repeater-item .sky-repeater-item-right{max-width:100%;flex-grow:1;align-self:center}sky-repeater-item .sky-repeater-item-header{align-items:center;display:flex;padding-top:10px}sky-repeater-item .sky-repeater-item-chevron{margin-left:10px}sky-repeater-item .sky-repeater-item-chevron-placeholder{height:24px}sky-repeater-item .sky-repeater-item-chevron-placeholder-with-context{height:29px}sky-repeater-item .sky-repeater-item-context-menu{padding:0 10px 0 0}sky-repeater-item .sky-repeater-item-checkbox{padding:0 5px 0 0}sky-repeater-item .sky-repeater-item-selected{background-color:#f1eef6;transition:background-color .15s}sky-repeater-item .sky-repeater-item-title{margin:0;flex-grow:1;line-height:1.1;color:#212327}sky-repeater-item sky-repeater-item-content{display:block;margin:10px 0 0}sky-repeater-item .sky-repeater-item-collapsible .sky-repeater-item-header{cursor:pointer}sky-repeater-item .sky-repeater-item-collapsible .sky-repeater-item-content{padding-right:34px}sky-repeater-item .sky-repeater-item-collapsed .sky-repeater-item-content{display:none}sky-repeater-item .sky-repeater-item-grab-handle{color:#cdcfd2;cursor:pointer;border:0;width:24px;height:24px;cursor:grab;cursor:-moz-grab;padding:0;margin-right:10px}sky-repeater-item .sky-repeater-item-grab-handle:hover{color:#979ba2;transition:color .15s}sky-repeater-item.sky-repeater-item-dragging.gu-mirror{opacity:initial;-ms-filter:initial;filter:initial;background-color:#fff;box-shadow:0 0 5px #0000004d}sky-repeater-item.sky-repeater-item-dragging.gu-transit .sky-repeater-item{background-color:#d8d8d8}sky-repeater-item.sky-repeater-item-dragging.gu-transit .sky-repeater-item .sky-repeater-item-left,sky-repeater-item.sky-repeater-item-dragging.gu-transit .sky-repeater-item .sky-repeater-item-right{visibility:hidden}sky-repeater-item.sky-repeater-item-dragging .sky-repeater-item-grab-handle{cursor:grabbing;cursor:-webkit-grabbing}.sky-theme-modern sky-repeater-item .sky-repeater-item{padding-bottom:20px}.sky-theme-modern sky-repeater-item .sky-repeater-item.sky-repeater-item-active{background-color:transparent;border-left-color:#1870b8}.sky-theme-modern sky-repeater-item .sky-repeater-item:focus,.sky-theme-modern sky-repeater-item .sky-repeater-item:active:focus{outline:solid 2px #1870B8;outline-offset:-2px}.sky-theme-modern sky-repeater-item .sky-repeater-item:focus:not(:active){box-shadow:0 1px 8px #0000004d}.sky-theme-modern sky-repeater-item .sky-repeater-item-header[hidden]+.sky-repeater-item-content sky-repeater-item-content{margin:20px 0 0}.sky-theme-modern sky-repeater-item .sky-repeater-item-header,.sky-theme-modern sky-repeater-item .sky-repeater-item-left{padding-top:20px}.sky-theme-modern sky-repeater-item sky-inline-form .sky-slide-dissolve-last{padding-top:20px}.sky-theme-modern.sky-theme-mode-dark sky-repeater-item .sky-repeater-item{border-bottom-color:#686c73}.sky-theme-modern.sky-theme-mode-dark sky-repeater-item .sky-repeater-item.sky-repeater-item-active{color:#fbfcfe}.sky-theme-modern.sky-theme-mode-dark sky-repeater-item .sky-repeater-item-title{color:#fbfcfe}\n"] }]
1222
1261
  }], ctorParameters: function () { return [{ type: SkyRepeaterService }, { type: i0.ChangeDetectorRef }, { type: SkyRepeaterAdapterService }, { type: i0.ElementRef }, { type: i4.SkyLibResourcesService }]; }, propDecorators: { tabindex: [{
1223
1262
  type: HostBinding
1224
1263
  }], disabled: [{
@@ -1275,18 +1314,13 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.2.0", ngImpor
1275
1314
  args: ['keydown', ['$event']]
1276
1315
  }] } });
1277
1316
 
1278
- let uniqueId = 0;
1317
+ var _SkyRepeaterComponent_instances, _SkyRepeaterComponent_adapterService, _SkyRepeaterComponent_changeDetector, _SkyRepeaterComponent_dragulaService, _SkyRepeaterComponent_elementRef, _SkyRepeaterComponent_renderer, _SkyRepeaterComponent_repeaterService, _SkyRepeaterComponent_ngUnsubscribe, _SkyRepeaterComponent_updateForExpandMode, _SkyRepeaterComponent_initializeDragAndDrop, _SkyRepeaterComponent_destroyDragAndDrop, _SkyRepeaterComponent_emitTags, _SkyRepeaterComponent_everyItemHasTag, _SkyRepeaterComponent_updateRole;
1279
1318
  /**
1280
1319
  * Creates a container to display repeater items.
1281
1320
  */
1282
1321
  class SkyRepeaterComponent {
1283
1322
  constructor(changeDetector, repeaterService, adapterService, dragulaService, elementRef, renderer) {
1284
- this.changeDetector = changeDetector;
1285
- this.repeaterService = repeaterService;
1286
- this.adapterService = adapterService;
1287
- this.dragulaService = dragulaService;
1288
- this.elementRef = elementRef;
1289
- this.renderer = renderer;
1323
+ _SkyRepeaterComponent_instances.add(this);
1290
1324
  /**
1291
1325
  * Indicates whether users can change the order of items in the repeater list.
1292
1326
  * Each repeater item also has `reorderable` property to indicate whether
@@ -1302,15 +1336,26 @@ class SkyRepeaterComponent {
1302
1336
  * This event emits an ordered array of the `tag` properties that the consumer provides for each repeater item.
1303
1337
  */
1304
1338
  this.orderChange = new EventEmitter();
1305
- this.dragulaUnsubscribe = new Subject();
1306
- this.ngUnsubscribe = new Subject();
1307
- this._expandMode = 'none';
1308
- this.dragulaGroupName = `sky-repeater-dragula-${++uniqueId}`;
1309
- this.repeaterService.itemCollapseStateChange
1310
- .pipe(takeUntil(this.ngUnsubscribe))
1339
+ _SkyRepeaterComponent_adapterService.set(this, void 0);
1340
+ _SkyRepeaterComponent_changeDetector.set(this, void 0);
1341
+ _SkyRepeaterComponent_dragulaService.set(this, void 0);
1342
+ _SkyRepeaterComponent_elementRef.set(this, void 0);
1343
+ _SkyRepeaterComponent_renderer.set(this, void 0);
1344
+ _SkyRepeaterComponent_repeaterService.set(this, void 0);
1345
+ _SkyRepeaterComponent_ngUnsubscribe.set(this, new Subject());
1346
+ __classPrivateFieldSet(this, _SkyRepeaterComponent_changeDetector, changeDetector, "f");
1347
+ __classPrivateFieldSet(this, _SkyRepeaterComponent_repeaterService, repeaterService, "f");
1348
+ __classPrivateFieldSet(this, _SkyRepeaterComponent_adapterService, adapterService, "f");
1349
+ __classPrivateFieldSet(this, _SkyRepeaterComponent_dragulaService, dragulaService, "f");
1350
+ __classPrivateFieldSet(this, _SkyRepeaterComponent_elementRef, elementRef, "f");
1351
+ __classPrivateFieldSet(this, _SkyRepeaterComponent_renderer, renderer, "f");
1352
+ this.dragulaGroupName = `sky-repeater-dragula-${__classPrivateFieldGet(this, _SkyRepeaterComponent_repeaterService, "f").repeaterGroupId}`;
1353
+ __classPrivateFieldGet(this, _SkyRepeaterComponent_repeaterService, "f").itemCollapseStateChange
1354
+ .pipe(takeUntil(__classPrivateFieldGet(this, _SkyRepeaterComponent_ngUnsubscribe, "f")))
1311
1355
  .subscribe((item) => {
1356
+ var _a;
1312
1357
  if (this.expandMode === 'single' && item.isExpanded) {
1313
- this.items.forEach((otherItem) => {
1358
+ (_a = this.items) === null || _a === void 0 ? void 0 : _a.forEach((otherItem) => {
1314
1359
  if (otherItem !== item &&
1315
1360
  otherItem.isExpanded &&
1316
1361
  otherItem.isCollapsible) {
@@ -1319,23 +1364,22 @@ class SkyRepeaterComponent {
1319
1364
  });
1320
1365
  }
1321
1366
  });
1322
- this.repeaterService.activeItemIndexChange
1323
- .pipe(takeUntil(this.ngUnsubscribe))
1367
+ __classPrivateFieldGet(this, _SkyRepeaterComponent_repeaterService, "f").activeItemIndexChange
1368
+ .pipe(takeUntil(__classPrivateFieldGet(this, _SkyRepeaterComponent_ngUnsubscribe, "f")))
1324
1369
  .subscribe((index) => {
1325
1370
  if (index !== this.activeIndex) {
1326
1371
  this.activeIndex = index;
1327
1372
  this.activeIndexChange.emit(index);
1328
1373
  }
1329
1374
  });
1330
- this.repeaterService.orderChange
1331
- .pipe(takeUntil(this.ngUnsubscribe))
1375
+ __classPrivateFieldGet(this, _SkyRepeaterComponent_repeaterService, "f").orderChange
1376
+ .pipe(takeUntil(__classPrivateFieldGet(this, _SkyRepeaterComponent_ngUnsubscribe, "f")))
1332
1377
  .subscribe(() => {
1333
- this.emitTags();
1378
+ __classPrivateFieldGet(this, _SkyRepeaterComponent_instances, "m", _SkyRepeaterComponent_emitTags).call(this);
1334
1379
  });
1335
- this.repeaterService.repeaterGroupId = uniqueId;
1336
- this.updateForExpandMode();
1337
- this.adapterService.setRepeaterHost(this.elementRef);
1338
- this.initializeDragAndDrop();
1380
+ __classPrivateFieldGet(this, _SkyRepeaterComponent_instances, "m", _SkyRepeaterComponent_updateForExpandMode).call(this);
1381
+ __classPrivateFieldGet(this, _SkyRepeaterComponent_adapterService, "f").setRepeaterHost(__classPrivateFieldGet(this, _SkyRepeaterComponent_elementRef, "f"));
1382
+ __classPrivateFieldGet(this, _SkyRepeaterComponent_instances, "m", _SkyRepeaterComponent_initializeDragAndDrop).call(this);
1339
1383
  }
1340
1384
  /**
1341
1385
  * Specifies a layout to determine which repeater items are expanded by default and whether
@@ -1356,209 +1400,204 @@ class SkyRepeaterComponent {
1356
1400
  * and users only occasionally need to view the body content.
1357
1401
  * @default "none"
1358
1402
  */
1403
+ // TODO: Remove 'string' as a valid type in a breaking change.
1359
1404
  set expandMode(value) {
1360
- this.repeaterService.expandMode = value;
1361
- this._expandMode = value;
1362
- this.updateForExpandMode();
1405
+ __classPrivateFieldGet(this, _SkyRepeaterComponent_repeaterService, "f").expandMode = value;
1406
+ __classPrivateFieldGet(this, _SkyRepeaterComponent_instances, "m", _SkyRepeaterComponent_updateForExpandMode).call(this);
1363
1407
  }
1364
1408
  get expandMode() {
1365
- return this._expandMode || 'none';
1409
+ return __classPrivateFieldGet(this, _SkyRepeaterComponent_repeaterService, "f").expandMode;
1366
1410
  }
1367
1411
  ngAfterContentInit() {
1412
+ var _a;
1368
1413
  // If activeIndex has been set on init, call service to activate the appropriate item.
1369
1414
  setTimeout(() => {
1370
1415
  if (this.activeIndex || this.activeIndex === 0) {
1371
- this.repeaterService.activateItemByIndex(this.activeIndex);
1416
+ __classPrivateFieldGet(this, _SkyRepeaterComponent_repeaterService, "f").activateItemByIndex(this.activeIndex);
1372
1417
  }
1373
- if (this.reorderable && !this.everyItemHasTag()) {
1418
+ if (this.reorderable && !__classPrivateFieldGet(this, _SkyRepeaterComponent_instances, "m", _SkyRepeaterComponent_everyItemHasTag).call(this)) {
1374
1419
  console.warn('Please supply tag properties for each repeater item when reordering functionality is enabled.');
1375
1420
  }
1376
1421
  });
1377
1422
  // HACK: Not updating for expand mode in a timeout causes an error.
1378
1423
  // https://github.com/angular/angular/issues/6005
1379
- this.items.changes.pipe(takeUntil(this.ngUnsubscribe)).subscribe(() => {
1424
+ (_a = this.items) === null || _a === void 0 ? void 0 : _a.changes.pipe(takeUntil(__classPrivateFieldGet(this, _SkyRepeaterComponent_ngUnsubscribe, "f"))).subscribe(() => {
1380
1425
  setTimeout(() => {
1381
- if (this.items.last) {
1382
- this.updateForExpandMode(this.items.last);
1426
+ var _a;
1427
+ if ((_a = this.items) === null || _a === void 0 ? void 0 : _a.last) {
1428
+ __classPrivateFieldGet(this, _SkyRepeaterComponent_instances, "m", _SkyRepeaterComponent_updateForExpandMode).call(this, this.items.last);
1383
1429
  this.items.last.reorderable = this.reorderable;
1384
1430
  }
1385
1431
  if (this.activeIndex !== undefined) {
1386
- this.repeaterService.activateItemByIndex(this.activeIndex);
1432
+ __classPrivateFieldGet(this, _SkyRepeaterComponent_repeaterService, "f").activateItemByIndex(this.activeIndex);
1387
1433
  }
1388
- this.updateRole();
1434
+ __classPrivateFieldGet(this, _SkyRepeaterComponent_instances, "m", _SkyRepeaterComponent_updateRole).call(this);
1389
1435
  });
1390
1436
  });
1391
1437
  setTimeout(() => {
1392
- this.updateForExpandMode();
1393
- this.items.forEach((item) => {
1438
+ var _a;
1439
+ __classPrivateFieldGet(this, _SkyRepeaterComponent_instances, "m", _SkyRepeaterComponent_updateForExpandMode).call(this);
1440
+ (_a = this.items) === null || _a === void 0 ? void 0 : _a.forEach((item) => {
1394
1441
  item.reorderable = this.reorderable;
1395
1442
  });
1396
- this.updateRole();
1443
+ __classPrivateFieldGet(this, _SkyRepeaterComponent_instances, "m", _SkyRepeaterComponent_updateRole).call(this);
1397
1444
  }, 0);
1398
1445
  }
1399
1446
  ngOnChanges(changes) {
1400
1447
  if (changes['activeIndex']) {
1401
- this.repeaterService.enableActiveState = true;
1448
+ __classPrivateFieldGet(this, _SkyRepeaterComponent_repeaterService, "f").enableActiveState = true;
1402
1449
  if (changes['activeIndex'].currentValue !==
1403
1450
  changes['activeIndex'].previousValue) {
1404
- this.repeaterService.activateItemByIndex(this.activeIndex);
1451
+ __classPrivateFieldGet(this, _SkyRepeaterComponent_repeaterService, "f").activateItemByIndex(this.activeIndex);
1405
1452
  }
1406
1453
  }
1407
1454
  if (changes.reorderable) {
1408
1455
  if (this.items) {
1409
1456
  this.items.forEach((item) => (item.reorderable = this.reorderable));
1410
1457
  }
1411
- this.updateRole();
1412
- this.changeDetector.markForCheck();
1458
+ __classPrivateFieldGet(this, _SkyRepeaterComponent_instances, "m", _SkyRepeaterComponent_updateRole).call(this);
1459
+ __classPrivateFieldGet(this, _SkyRepeaterComponent_changeDetector, "f").markForCheck();
1413
1460
  }
1414
1461
  }
1415
1462
  ngOnDestroy() {
1416
- this.ngUnsubscribe.next();
1417
- this.ngUnsubscribe.complete();
1418
- this.destroyDragAndDrop();
1463
+ __classPrivateFieldGet(this, _SkyRepeaterComponent_ngUnsubscribe, "f").next();
1464
+ __classPrivateFieldGet(this, _SkyRepeaterComponent_ngUnsubscribe, "f").complete();
1465
+ __classPrivateFieldGet(this, _SkyRepeaterComponent_instances, "m", _SkyRepeaterComponent_destroyDragAndDrop).call(this);
1419
1466
  }
1420
1467
  ngOnInit() {
1421
- this.updateRole();
1468
+ __classPrivateFieldGet(this, _SkyRepeaterComponent_instances, "m", _SkyRepeaterComponent_updateRole).call(this);
1422
1469
  }
1423
1470
  onCdkObserveContent() {
1424
- this.updateRole();
1425
- }
1426
- updateForExpandMode(itemAdded) {
1427
- if (this.items) {
1428
- let foundExpanded = false;
1429
- const isCollapsible = this.expandMode !== 'none';
1430
- const isSingle = this.expandMode === 'single';
1431
- // Keep any newly-added expanded item expanded and collapse the rest.
1432
- if (itemAdded && itemAdded.isExpanded) {
1433
- foundExpanded = true;
1434
- }
1435
- this.items.forEach((item) => {
1436
- item.isCollapsible = isCollapsible && !!item.hasItemContent;
1437
- if (item !== itemAdded && isSingle && item.isExpanded) {
1438
- if (foundExpanded) {
1439
- item.updateForExpanded(false, false);
1440
- }
1441
- foundExpanded = true;
1442
- }
1443
- });
1444
- this.updateRole();
1445
- }
1471
+ __classPrivateFieldGet(this, _SkyRepeaterComponent_instances, "m", _SkyRepeaterComponent_updateRole).call(this);
1446
1472
  }
1447
- initializeDragAndDrop() {
1448
- /* Sanity check that we haven't already set up dragging abilities */
1449
- /* istanbul ignore else */
1450
- if (!this.dragulaService.find(this.dragulaGroupName)) {
1451
- this.dragulaService.createGroup(this.dragulaGroupName, {
1452
- moves: (el, container, handle) => {
1453
- const target = el.querySelector('.sky-repeater-item-grab-handle');
1454
- return this.reorderable && target && target.contains(handle);
1455
- },
1456
- });
1473
+ }
1474
+ _SkyRepeaterComponent_adapterService = new WeakMap(), _SkyRepeaterComponent_changeDetector = new WeakMap(), _SkyRepeaterComponent_dragulaService = new WeakMap(), _SkyRepeaterComponent_elementRef = new WeakMap(), _SkyRepeaterComponent_renderer = new WeakMap(), _SkyRepeaterComponent_repeaterService = new WeakMap(), _SkyRepeaterComponent_ngUnsubscribe = new WeakMap(), _SkyRepeaterComponent_instances = new WeakSet(), _SkyRepeaterComponent_updateForExpandMode = function _SkyRepeaterComponent_updateForExpandMode(itemAdded) {
1475
+ if (this.items) {
1476
+ let foundExpanded = false;
1477
+ const isCollapsible = this.expandMode !== 'none';
1478
+ const isSingle = this.expandMode === 'single';
1479
+ // Keep any newly-added expanded item expanded and collapse the rest.
1480
+ if (itemAdded && itemAdded.isExpanded) {
1481
+ foundExpanded = true;
1457
1482
  }
1458
- let draggedItemIndex;
1459
- this.dragulaService
1460
- .drag(this.dragulaGroupName)
1461
- .pipe(takeUntil(this.dragulaUnsubscribe))
1462
- .subscribe((args) => {
1463
- /* istanbul ignore else */
1464
- if (args.name === this.dragulaGroupName) {
1465
- this.renderer.addClass(args.el, 'sky-repeater-item-dragging');
1466
- draggedItemIndex = this.adapterService.getRepeaterItemIndex(args.el);
1467
- }
1468
- });
1469
- this.dragulaService
1470
- .dragend(this.dragulaGroupName)
1471
- .pipe(takeUntil(this.dragulaUnsubscribe))
1472
- .subscribe((args) => {
1473
- /* istanbul ignore else */
1474
- if (args.name === this.dragulaGroupName) {
1475
- this.renderer.removeClass(args.el, 'sky-repeater-item-dragging');
1476
- const newItemIndex = this.adapterService.getRepeaterItemIndex(args.el);
1477
- /* sanity check */
1478
- /* istanbul ignore else */
1479
- if (draggedItemIndex >= 0) {
1480
- this.repeaterService.reorderItem(draggedItemIndex, newItemIndex);
1481
- draggedItemIndex = undefined;
1483
+ this.items.forEach((item) => {
1484
+ item.isCollapsible = isCollapsible && !!item.hasItemContent;
1485
+ if (item !== itemAdded && isSingle && item.isExpanded) {
1486
+ if (foundExpanded) {
1487
+ item.updateForExpanded(false);
1482
1488
  }
1483
- this.emitTags();
1489
+ foundExpanded = true;
1484
1490
  }
1485
1491
  });
1486
- }
1487
- destroyDragAndDrop() {
1488
- this.dragulaUnsubscribe.next();
1489
- this.dragulaUnsubscribe.complete();
1490
- this.dragulaUnsubscribe = undefined;
1491
- /* Sanity check that we have set up dragging abilities */
1492
- /* istanbul ignore else */
1493
- if (this.dragulaService.find(this.dragulaGroupName)) {
1494
- this.dragulaService.destroy(this.dragulaGroupName);
1495
- }
1496
- }
1497
- emitTags() {
1498
- const tags = this.repeaterService.items.map((item) => item.tag);
1499
- this.orderChange.emit(tags);
1500
- }
1501
- everyItemHasTag() {
1502
- /* sanity check */
1503
- /* istanbul ignore if */
1504
- if (!this.items || this.items.length === 0) {
1505
- return false;
1506
- }
1507
- return this.items.toArray().every((item) => {
1508
- return item.tag !== undefined;
1492
+ __classPrivateFieldGet(this, _SkyRepeaterComponent_instances, "m", _SkyRepeaterComponent_updateRole).call(this);
1493
+ }
1494
+ }, _SkyRepeaterComponent_initializeDragAndDrop = function _SkyRepeaterComponent_initializeDragAndDrop() {
1495
+ /* Sanity check that we haven't already set up dragging abilities */
1496
+ /* istanbul ignore else */
1497
+ if (!__classPrivateFieldGet(this, _SkyRepeaterComponent_dragulaService, "f").find(this.dragulaGroupName)) {
1498
+ __classPrivateFieldGet(this, _SkyRepeaterComponent_dragulaService, "f").createGroup(this.dragulaGroupName, {
1499
+ moves: (el, container, handle) => {
1500
+ const target = el === null || el === void 0 ? void 0 : el.querySelector('.sky-repeater-item-grab-handle');
1501
+ return !!this.reorderable && !!target && target.contains(handle);
1502
+ },
1509
1503
  });
1510
1504
  }
1511
- updateRole() {
1512
- var _a, _b;
1513
- // Determine a role using a hierarchy based on https://www.w3.org/TR/wai-aria-practices-1.1/
1514
- // 1. If there are one or more interactions in the repeater item projected content, use grid.
1515
- // 2. If there are selectable repeater items and no other interactions, use listbox.
1516
- // 3. If there are no interactions, use list.
1517
- // Default to list role.
1518
- let autoRole = 'list';
1519
- const roleMap = {
1520
- list: { item: 'listitem', title: undefined, content: undefined },
1521
- listbox: { item: 'option', title: undefined, content: undefined },
1522
- grid: { item: 'row', title: 'rowheader', content: 'gridcell' },
1523
- };
1524
- // Based on https://html.spec.whatwg.org/multipage/dom.html#interactive-content
1525
- const interactionSelector = [
1526
- 'a[href]',
1527
- 'audio[controls]',
1528
- 'button',
1529
- 'details',
1530
- 'embed',
1531
- 'iframe',
1532
- 'img[usemap]',
1533
- 'input:not([type="hidden"])',
1534
- 'label',
1535
- 'select',
1536
- 'textarea',
1537
- 'video[controls]',
1538
- '[contenteditable]',
1539
- '.sky-repeater[role="grid"]',
1540
- ]
1541
- .map((selector) => `sky-repeater-item-title ${selector}:not([hidden]), sky-repeater-item-content ${selector}:not([hidden])`)
1542
- .concat([`skyux-dropdown`])
1543
- .join(', ');
1544
- const hasInteraction = this.reorderable ||
1545
- ((_a = this.items) === null || _a === void 0 ? void 0 : _a.some((item) => item.isCollapsible)) ||
1546
- !!this.elementRef.nativeElement.querySelector(interactionSelector);
1547
- if (hasInteraction) {
1548
- // If the repeater matches interaction selector https://www.w3.org/TR/wai-aria-practices-1.1/#grid
1549
- autoRole = 'grid';
1550
- }
1551
- else if ((_b = this.items) === null || _b === void 0 ? void 0 : _b.some((item) => item.selectable)) {
1552
- // If the only interaction is select https://www.w3.org/TR/wai-aria-practices-1.1/#Listbox
1553
- autoRole = 'listbox';
1505
+ let draggedItemIndex = -1;
1506
+ __classPrivateFieldGet(this, _SkyRepeaterComponent_dragulaService, "f")
1507
+ .drag(this.dragulaGroupName)
1508
+ .pipe(takeUntil(__classPrivateFieldGet(this, _SkyRepeaterComponent_ngUnsubscribe, "f")))
1509
+ .subscribe((args) => {
1510
+ /* istanbul ignore else */
1511
+ if (args.name === this.dragulaGroupName) {
1512
+ __classPrivateFieldGet(this, _SkyRepeaterComponent_renderer, "f").addClass(args.el, 'sky-repeater-item-dragging');
1513
+ draggedItemIndex = __classPrivateFieldGet(this, _SkyRepeaterComponent_adapterService, "f").getRepeaterItemIndex(args.el);
1554
1514
  }
1555
- if (this.role !== autoRole) {
1556
- this.repeaterService.itemRole.next(Object.assign({}, roleMap[autoRole]));
1557
- this.role = `${autoRole}`;
1558
- this.changeDetector.markForCheck();
1515
+ });
1516
+ __classPrivateFieldGet(this, _SkyRepeaterComponent_dragulaService, "f")
1517
+ .dragend(this.dragulaGroupName)
1518
+ .pipe(takeUntil(__classPrivateFieldGet(this, _SkyRepeaterComponent_ngUnsubscribe, "f")))
1519
+ .subscribe((args) => {
1520
+ /* istanbul ignore else */
1521
+ if (args.name === this.dragulaGroupName) {
1522
+ __classPrivateFieldGet(this, _SkyRepeaterComponent_renderer, "f").removeClass(args.el, 'sky-repeater-item-dragging');
1523
+ const newItemIndex = __classPrivateFieldGet(this, _SkyRepeaterComponent_adapterService, "f").getRepeaterItemIndex(args.el);
1524
+ /* sanity check */
1525
+ /* istanbul ignore else */
1526
+ if (draggedItemIndex >= 0) {
1527
+ __classPrivateFieldGet(this, _SkyRepeaterComponent_repeaterService, "f").reorderItem(draggedItemIndex, newItemIndex);
1528
+ draggedItemIndex = -1;
1529
+ }
1530
+ __classPrivateFieldGet(this, _SkyRepeaterComponent_instances, "m", _SkyRepeaterComponent_emitTags).call(this);
1559
1531
  }
1532
+ });
1533
+ }, _SkyRepeaterComponent_destroyDragAndDrop = function _SkyRepeaterComponent_destroyDragAndDrop() {
1534
+ /* Sanity check that we have set up dragging abilities */
1535
+ /* istanbul ignore else */
1536
+ if (__classPrivateFieldGet(this, _SkyRepeaterComponent_dragulaService, "f").find(this.dragulaGroupName)) {
1537
+ __classPrivateFieldGet(this, _SkyRepeaterComponent_dragulaService, "f").destroy(this.dragulaGroupName);
1538
+ }
1539
+ }, _SkyRepeaterComponent_emitTags = function _SkyRepeaterComponent_emitTags() {
1540
+ const tags = __classPrivateFieldGet(this, _SkyRepeaterComponent_repeaterService, "f").items.map((item) => item.tag);
1541
+ this.orderChange.emit(tags);
1542
+ }, _SkyRepeaterComponent_everyItemHasTag = function _SkyRepeaterComponent_everyItemHasTag() {
1543
+ /* sanity check */
1544
+ /* istanbul ignore if */
1545
+ if (!this.items || this.items.length === 0) {
1546
+ return false;
1547
+ }
1548
+ return this.items.toArray().every((item) => {
1549
+ return item.tag !== undefined;
1550
+ });
1551
+ }, _SkyRepeaterComponent_updateRole = function _SkyRepeaterComponent_updateRole() {
1552
+ var _a, _b;
1553
+ // Determine a role using a hierarchy based on https://www.w3.org/TR/wai-aria-practices-1.1/
1554
+ // 1. If there are one or more interactions in the repeater item projected content, use grid.
1555
+ // 2. If there are selectable repeater items and no other interactions, use listbox.
1556
+ // 3. If there are no interactions, use list.
1557
+ // Default to list role.
1558
+ let autoRole = 'list';
1559
+ const roleMap = {
1560
+ list: { item: 'listitem', title: undefined, content: undefined },
1561
+ listbox: { item: 'option', title: undefined, content: undefined },
1562
+ grid: { item: 'row', title: 'rowheader', content: 'gridcell' },
1563
+ };
1564
+ // Based on https://html.spec.whatwg.org/multipage/dom.html#interactive-content
1565
+ const interactionSelector = [
1566
+ 'a[href]',
1567
+ 'audio[controls]',
1568
+ 'button',
1569
+ 'details',
1570
+ 'embed',
1571
+ 'iframe',
1572
+ 'img[usemap]',
1573
+ 'input:not([type="hidden"])',
1574
+ 'label',
1575
+ 'select',
1576
+ 'textarea',
1577
+ 'video[controls]',
1578
+ '[contenteditable]',
1579
+ '.sky-repeater[role="grid"]',
1580
+ ]
1581
+ .map((selector) => `sky-repeater-item-title ${selector}:not([hidden]), sky-repeater-item-content ${selector}:not([hidden])`)
1582
+ .concat([`skyux-dropdown`])
1583
+ .join(', ');
1584
+ const hasInteraction = this.reorderable ||
1585
+ ((_a = this.items) === null || _a === void 0 ? void 0 : _a.some((item) => item.isCollapsible)) ||
1586
+ !!__classPrivateFieldGet(this, _SkyRepeaterComponent_elementRef, "f").nativeElement.querySelector(interactionSelector);
1587
+ if (hasInteraction) {
1588
+ // If the repeater matches interaction selector https://www.w3.org/TR/wai-aria-practices-1.1/#grid
1589
+ autoRole = 'grid';
1590
+ }
1591
+ else if ((_b = this.items) === null || _b === void 0 ? void 0 : _b.some((item) => !!item.selectable)) {
1592
+ // If the only interaction is select https://www.w3.org/TR/wai-aria-practices-1.1/#Listbox
1593
+ autoRole = 'listbox';
1594
+ }
1595
+ if (this.role !== autoRole) {
1596
+ __classPrivateFieldGet(this, _SkyRepeaterComponent_repeaterService, "f").itemRole.next(Object.assign({}, roleMap[autoRole]));
1597
+ this.role = `${autoRole}`;
1598
+ __classPrivateFieldGet(this, _SkyRepeaterComponent_changeDetector, "f").markForCheck();
1560
1599
  }
1561
- }
1600
+ };
1562
1601
  SkyRepeaterComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.2.0", ngImport: i0, type: SkyRepeaterComponent, deps: [{ token: i0.ChangeDetectorRef }, { token: SkyRepeaterService }, { token: SkyRepeaterAdapterService }, { token: i3$1.DragulaService }, { token: i0.ElementRef }, { token: i0.Renderer2 }], target: i0.ɵɵFactoryTarget.Component });
1563
1602
  SkyRepeaterComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "14.2.0", type: SkyRepeaterComponent, selector: "sky-repeater", inputs: { activeIndex: "activeIndex", ariaLabel: "ariaLabel", reorderable: "reorderable", expandMode: "expandMode" }, outputs: { activeIndexChange: "activeIndexChange", orderChange: "orderChange" }, providers: [SkyRepeaterService, SkyRepeaterAdapterService], queries: [{ propertyName: "items", predicate: SkyRepeaterItemComponent }], usesOnChanges: true, ngImport: i0, template: "<ng-container #repeaterHost>\n <div\n class=\"sky-repeater\"\n [attr.role]=\"role\"\n [attr.aria-label]=\"ariaLabel || ('skyux_repeater_label' | skyLibResources)\"\n [dragula]=\"dragulaGroupName\"\n (cdkObserveContent)=\"onCdkObserveContent()\"\n >\n <ng-content></ng-content>\n </div>\n</ng-container>\n", styles: [".sky-repeater{padding:0}\n"], dependencies: [{ kind: "directive", type: i3$1.DragulaDirective, selector: "[dragula]", inputs: ["dragula", "dragulaModel"], outputs: ["dragulaModelChange"] }, { kind: "directive", type: i4$1.CdkObserveContent, selector: "[cdkObserveContent]", inputs: ["cdkObserveContentDisabled", "debounce"], outputs: ["cdkObserveContent"], exportAs: ["cdkObserveContent"] }, { kind: "pipe", type: i4.SkyLibResourcesPipe, name: "skyLibResources" }], changeDetection: i0.ChangeDetectionStrategy.OnPush });
1564
1603
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.2.0", ngImport: i0, type: SkyRepeaterComponent, decorators: [{