@skyux/layout 7.0.0-beta.1 → 7.0.0-beta.3

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.
Files changed (76) hide show
  1. package/documentation.json +1355 -781
  2. package/esm2020/index.mjs +1 -2
  3. package/esm2020/lib/modules/action-button/action-button-container.component.mjs +2 -2
  4. package/esm2020/lib/modules/card/card.component.mjs +38 -11
  5. package/esm2020/lib/modules/definition-list/definition-list-label.component.mjs +1 -1
  6. package/esm2020/lib/modules/definition-list/definition-list-value.component.mjs +3 -3
  7. package/esm2020/lib/modules/definition-list/definition-list.component.mjs +1 -1
  8. package/esm2020/lib/modules/definition-list/definition-list.service.mjs +1 -1
  9. package/esm2020/lib/modules/description-list/description-list-adapter-service.mjs +26 -22
  10. package/esm2020/lib/modules/description-list/description-list-content.component.mjs +2 -2
  11. package/esm2020/lib/modules/description-list/description-list-description.component.mjs +16 -11
  12. package/esm2020/lib/modules/description-list/description-list-term.component.mjs +1 -1
  13. package/esm2020/lib/modules/description-list/description-list.component.mjs +25 -16
  14. package/esm2020/lib/modules/fluid-grid/column.component.mjs +19 -1
  15. package/esm2020/lib/modules/fluid-grid/fluid-grid.component.mjs +15 -35
  16. package/esm2020/lib/modules/fluid-grid/row.component.mjs +1 -1
  17. package/esm2020/lib/modules/fluid-grid/types/fluid-grid-gutter-size-type.mjs +1 -1
  18. package/esm2020/lib/modules/format/format.component.mjs +34 -26
  19. package/esm2020/lib/modules/inline-delete/inline-delete-adapter.service.mjs +91 -83
  20. package/esm2020/lib/modules/inline-delete/inline-delete.component.mjs +15 -9
  21. package/esm2020/lib/modules/page/page-theme-adapter.service.mjs +14 -8
  22. package/esm2020/lib/modules/page/page.component.mjs +8 -4
  23. package/esm2020/lib/modules/page-summary/page-summary-adapter.service.mjs +1 -1
  24. package/esm2020/lib/modules/page-summary/page-summary.component.mjs +40 -16
  25. package/esm2020/lib/modules/text-expand/text-expand-adapter.service.mjs +8 -10
  26. package/esm2020/lib/modules/text-expand/text-expand-modal-context-token.mjs +6 -0
  27. package/esm2020/lib/modules/text-expand/text-expand-modal-context.mjs +2 -6
  28. package/esm2020/lib/modules/text-expand/text-expand-modal.component.mjs +12 -10
  29. package/esm2020/lib/modules/text-expand/text-expand.component.mjs +188 -127
  30. package/esm2020/lib/modules/text-expand-repeater/text-expand-repeater-adapter.service.mjs +10 -12
  31. package/esm2020/lib/modules/text-expand-repeater/text-expand-repeater.component.mjs +139 -95
  32. package/esm2020/lib/modules/toolbar/toolbar.component.mjs +2 -2
  33. package/esm2020/testing/action-button-fixture.mjs +12 -6
  34. package/esm2020/testing/card-fixture.mjs +19 -16
  35. package/esm2020/testing/page-summary-fixture.mjs +9 -5
  36. package/fesm2015/skyux-layout-testing.mjs +35 -24
  37. package/fesm2015/skyux-layout-testing.mjs.map +1 -1
  38. package/fesm2015/skyux-layout.mjs +675 -506
  39. package/fesm2015/skyux-layout.mjs.map +1 -1
  40. package/fesm2020/skyux-layout-testing.mjs +35 -24
  41. package/fesm2020/skyux-layout-testing.mjs.map +1 -1
  42. package/fesm2020/skyux-layout.mjs +669 -506
  43. package/fesm2020/skyux-layout.mjs.map +1 -1
  44. package/index.d.ts +0 -1
  45. package/lib/modules/card/card.component.d.ts +7 -6
  46. package/lib/modules/definition-list/definition-list-label.component.d.ts +1 -1
  47. package/lib/modules/definition-list/definition-list-value.component.d.ts +1 -1
  48. package/lib/modules/definition-list/definition-list.component.d.ts +2 -2
  49. package/lib/modules/definition-list/definition-list.service.d.ts +2 -2
  50. package/lib/modules/description-list/description-list-adapter-service.d.ts +1 -2
  51. package/lib/modules/description-list/description-list-content.component.d.ts +2 -2
  52. package/lib/modules/description-list/description-list-description.component.d.ts +5 -7
  53. package/lib/modules/description-list/description-list-term.component.d.ts +1 -1
  54. package/lib/modules/description-list/description-list.component.d.ts +6 -7
  55. package/lib/modules/fluid-grid/column.component.d.ts +7 -5
  56. package/lib/modules/fluid-grid/fluid-grid.component.d.ts +3 -9
  57. package/lib/modules/fluid-grid/row.component.d.ts +1 -1
  58. package/lib/modules/fluid-grid/types/fluid-grid-gutter-size-type.d.ts +1 -1
  59. package/lib/modules/format/format.component.d.ts +5 -7
  60. package/lib/modules/inline-delete/inline-delete-adapter.service.d.ts +1 -11
  61. package/lib/modules/inline-delete/inline-delete.component.d.ts +3 -5
  62. package/lib/modules/page/page-theme-adapter.service.d.ts +1 -1
  63. package/lib/modules/page/page.component.d.ts +1 -1
  64. package/lib/modules/page-summary/page-summary.component.d.ts +8 -9
  65. package/lib/modules/text-expand/text-expand-adapter.service.d.ts +3 -4
  66. package/lib/modules/text-expand/text-expand-modal-context-token.d.ts +6 -0
  67. package/lib/modules/text-expand/text-expand-modal-context.d.ts +1 -1
  68. package/lib/modules/text-expand/text-expand.component.d.ts +18 -25
  69. package/lib/modules/text-expand-repeater/text-expand-repeater-adapter.service.d.ts +4 -5
  70. package/lib/modules/text-expand-repeater/text-expand-repeater.component.d.ts +13 -21
  71. package/package.json +9 -9
  72. package/testing/action-button-fixture.d.ts +4 -4
  73. package/testing/card-fixture.d.ts +3 -5
  74. package/testing/page-summary-fixture.d.ts +4 -4
  75. package/esm2020/lib/modules/fluid-grid/fluid-grid-gutter-size.mjs +0 -20
  76. package/lib/modules/fluid-grid/fluid-grid-gutter-size.d.ts +0 -18
@@ -3,7 +3,7 @@ import { ObserversModule } from '@angular/cdk/observers';
3
3
  import * as i1 from '@angular/common';
4
4
  import { CommonModule } from '@angular/common';
5
5
  import * as i0 from '@angular/core';
6
- import { Injectable, EventEmitter, Component, ViewEncapsulation, SkipSelf, HostBinding, Input, Output, ElementRef, Optional, ContentChildren, ViewChild, HostListener, NgModule, ChangeDetectionStrategy, Directive, TemplateRef } from '@angular/core';
6
+ import { Injectable, EventEmitter, Component, ViewEncapsulation, SkipSelf, HostBinding, Input, Output, ElementRef, Optional, ContentChildren, ViewChild, HostListener, NgModule, ChangeDetectionStrategy, Directive, TemplateRef, InjectionToken, Inject } from '@angular/core';
7
7
  import * as i2 from '@angular/router';
8
8
  import { RouterModule } from '@angular/router';
9
9
  import * as i2$1 from '@skyux/indicators';
@@ -23,8 +23,8 @@ import * as i3$1 from '@angular/forms';
23
23
  import { FormsModule } from '@angular/forms';
24
24
  import * as i4 from '@skyux/forms';
25
25
  import { SkyCheckboxModule } from '@skyux/forms';
26
- import { trigger, transition, style, query, group, animate } from '@angular/animations';
27
- import * as i2$2 from '@skyux/modals';
26
+ import { trigger, transition, style, query, group, animate, state } from '@angular/animations';
27
+ import * as i1$4 from '@skyux/modals';
28
28
  import { SkyModalModule } from '@skyux/modals';
29
29
 
30
30
  var _SkyActionButtonAdapterService_instances, _SkyActionButtonAdapterService_renderer, _SkyActionButtonAdapterService_getResponsiveClassName;
@@ -746,111 +746,118 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.2.0", ngImpor
746
746
  }]
747
747
  }] });
748
748
 
749
+ var _SkyInlineDeleteAdapterService_instances, _SkyInlineDeleteAdapterService_element, _SkyInlineDeleteAdapterService_focusableElements, _SkyInlineDeleteAdapterService_parentEl, _SkyInlineDeleteAdapterService_parentElUnlistenFn, _SkyInlineDeleteAdapterService_renderer, _SkyInlineDeleteAdapterService_coreAdapterService, _SkyInlineDeleteAdapterService_focusNextElement, _SkyInlineDeleteAdapterService_getFocusableElements, _SkyInlineDeleteAdapterService_isElementHiddenOrCovered, _SkyInlineDeleteAdapterService_isElementHidden, _SkyInlineDeleteAdapterService_isShift;
749
750
  /**
750
751
  * @internal
751
752
  */
752
753
  class SkyInlineDeleteAdapterService {
753
754
  constructor(coreAdapterService, rendererFactory) {
754
- this.coreAdapterService = coreAdapterService;
755
- this.renderer = rendererFactory.createRenderer(undefined, undefined);
755
+ _SkyInlineDeleteAdapterService_instances.add(this);
756
+ _SkyInlineDeleteAdapterService_element.set(this, void 0);
757
+ _SkyInlineDeleteAdapterService_focusableElements.set(this, void 0);
758
+ _SkyInlineDeleteAdapterService_parentEl.set(this, void 0);
759
+ _SkyInlineDeleteAdapterService_parentElUnlistenFn.set(this, void 0);
760
+ _SkyInlineDeleteAdapterService_renderer.set(this, void 0);
761
+ _SkyInlineDeleteAdapterService_coreAdapterService.set(this, void 0);
762
+ __classPrivateFieldSet(this, _SkyInlineDeleteAdapterService_coreAdapterService, coreAdapterService, "f");
763
+ __classPrivateFieldSet(this, _SkyInlineDeleteAdapterService_renderer, rendererFactory.createRenderer(undefined, null), "f");
756
764
  }
757
765
  clearListeners() {
758
766
  /* istanbul ignore else */
759
- if (this.parentElUnlistenFn) {
760
- this.parentElUnlistenFn();
767
+ if (__classPrivateFieldGet(this, _SkyInlineDeleteAdapterService_parentElUnlistenFn, "f")) {
768
+ __classPrivateFieldGet(this, _SkyInlineDeleteAdapterService_parentElUnlistenFn, "f").call(this);
761
769
  }
762
770
  }
763
771
  setEl(element) {
764
- this.element = element;
765
- this.parentEl = element.parentElement;
772
+ __classPrivateFieldSet(this, _SkyInlineDeleteAdapterService_element, element, "f");
773
+ __classPrivateFieldSet(this, _SkyInlineDeleteAdapterService_parentEl, element.parentElement, "f");
766
774
  /* istanbul ignore else */
767
- if (this.parentEl) {
768
- this.parentElUnlistenFn = this.renderer.listen(this.parentEl, 'focusin', (event) => {
769
- const target = event.target;
770
- if (!this.element.contains(target) && this.parentEl !== target) {
771
- event.preventDefault();
772
- event.stopPropagation();
773
- event.stopImmediatePropagation();
774
- target.blur();
775
- this.focusNextElement(target, this.isShift(event), this.parentEl);
775
+ if (__classPrivateFieldGet(this, _SkyInlineDeleteAdapterService_parentEl, "f")) {
776
+ __classPrivateFieldSet(this, _SkyInlineDeleteAdapterService_parentElUnlistenFn, __classPrivateFieldGet(this, _SkyInlineDeleteAdapterService_renderer, "f").listen(__classPrivateFieldGet(this, _SkyInlineDeleteAdapterService_parentEl, "f"), 'focusin', (event) => {
777
+ if (__classPrivateFieldGet(this, _SkyInlineDeleteAdapterService_element, "f")) {
778
+ const target = event.target;
779
+ if (!__classPrivateFieldGet(this, _SkyInlineDeleteAdapterService_element, "f").contains(target) && __classPrivateFieldGet(this, _SkyInlineDeleteAdapterService_parentEl, "f") !== target) {
780
+ event.preventDefault();
781
+ event.stopPropagation();
782
+ event.stopImmediatePropagation();
783
+ target.blur();
784
+ __classPrivateFieldGet(this, _SkyInlineDeleteAdapterService_instances, "m", _SkyInlineDeleteAdapterService_focusNextElement).call(this, target, __classPrivateFieldGet(this, _SkyInlineDeleteAdapterService_instances, "m", _SkyInlineDeleteAdapterService_isShift).call(this, event));
785
+ }
776
786
  }
777
- });
787
+ }), "f");
778
788
  }
779
789
  }
780
- focusNextElement(targetElement, shiftKey, busyEl) {
781
- const focussable = this.getFocussableElements();
782
- // If shift tab, go in the other direction
783
- const modifier = shiftKey ? -1 : 1;
784
- // Find the next navigable element that isn't waiting
785
- const startingIndex = focussable.indexOf(targetElement);
786
- let curIndex = startingIndex + modifier;
787
- while (focussable[curIndex] &&
788
- this.isElementHiddenOrCovered(focussable[curIndex])) {
790
+ }
791
+ _SkyInlineDeleteAdapterService_element = new WeakMap(), _SkyInlineDeleteAdapterService_focusableElements = new WeakMap(), _SkyInlineDeleteAdapterService_parentEl = new WeakMap(), _SkyInlineDeleteAdapterService_parentElUnlistenFn = new WeakMap(), _SkyInlineDeleteAdapterService_renderer = new WeakMap(), _SkyInlineDeleteAdapterService_coreAdapterService = new WeakMap(), _SkyInlineDeleteAdapterService_instances = new WeakSet(), _SkyInlineDeleteAdapterService_focusNextElement = function _SkyInlineDeleteAdapterService_focusNextElement(targetElement, shiftKey) {
792
+ const focusable = __classPrivateFieldGet(this, _SkyInlineDeleteAdapterService_instances, "m", _SkyInlineDeleteAdapterService_getFocusableElements).call(this);
793
+ // If shift tab, go in the other direction
794
+ const modifier = shiftKey ? -1 : 1;
795
+ // Find the next navigable element that isn't waiting
796
+ const startingIndex = focusable.indexOf(targetElement);
797
+ let curIndex = startingIndex + modifier;
798
+ while (focusable[curIndex] &&
799
+ __classPrivateFieldGet(this, _SkyInlineDeleteAdapterService_instances, "m", _SkyInlineDeleteAdapterService_isElementHiddenOrCovered).call(this, focusable[curIndex])) {
800
+ curIndex += modifier;
801
+ }
802
+ if (focusable[curIndex] &&
803
+ !__classPrivateFieldGet(this, _SkyInlineDeleteAdapterService_instances, "m", _SkyInlineDeleteAdapterService_isElementHiddenOrCovered).call(this, focusable[curIndex])) {
804
+ focusable[curIndex].focus();
805
+ }
806
+ else {
807
+ // Try wrapping the navigation
808
+ /* istanbul ignore next */
809
+ curIndex = modifier > 0 ? 0 : focusable.length - 1;
810
+ /* istanbul ignore next */
811
+ while (curIndex !== startingIndex &&
812
+ focusable[curIndex] &&
813
+ __classPrivateFieldGet(this, _SkyInlineDeleteAdapterService_instances, "m", _SkyInlineDeleteAdapterService_isElementHiddenOrCovered).call(this, focusable[curIndex])) {
789
814
  curIndex += modifier;
790
815
  }
791
- if (focussable[curIndex] &&
792
- !this.isElementHiddenOrCovered(focussable[curIndex])) {
793
- focussable[curIndex].focus();
816
+ /* istanbul ignore else */
817
+ /* sanity check */
818
+ if (focusable[curIndex] &&
819
+ !__classPrivateFieldGet(this, _SkyInlineDeleteAdapterService_instances, "m", _SkyInlineDeleteAdapterService_isElementHiddenOrCovered).call(this, focusable[curIndex])) {
820
+ focusable[curIndex].focus();
794
821
  }
795
822
  else {
796
- // Try wrapping the navigation
797
- /* istanbul ignore next */
798
- curIndex = modifier > 0 ? 0 : focussable.length - 1;
799
- /* istanbul ignore next */
800
- while (curIndex !== startingIndex &&
801
- focussable[curIndex] &&
802
- this.isElementHiddenOrCovered(focussable[curIndex])) {
803
- curIndex += modifier;
804
- }
805
- /* istanbul ignore else */
806
- /* sanity check */
807
- if (focussable[curIndex] &&
808
- !this.isElementHiddenOrCovered(focussable[curIndex])) {
809
- focussable[curIndex].focus();
810
- }
811
- else {
812
- // No valid target, wipe focus
813
- // This should never happen in practice due to the multiple inline delete buttons
814
- if (document.activeElement && document.activeElement.blur) {
815
- document.activeElement.blur();
816
- }
817
- document.body.focus();
823
+ // No valid target, wipe focus
824
+ // This should never happen in practice due to the multiple inline delete buttons
825
+ if (document.activeElement && document.activeElement.blur) {
826
+ document.activeElement.blur();
818
827
  }
819
- }
820
- // clear focussableElements list so that if things change between tabbing we know about it
821
- this.focussableElements = undefined;
822
- }
823
- getFocussableElements() {
824
- // Keep this cached so we can reduce querys
825
- if (this.focussableElements) {
826
- return this.focussableElements;
827
- }
828
- this.focussableElements = this.coreAdapterService.getFocusableChildren(document.body);
829
- return this.focussableElements;
830
- }
831
- isElementHiddenOrCovered(element) {
832
- // Check if the element is hidden by css, not within the inline delete, or a wait is covering it
833
- return (this.isElementHidden(element) ||
834
- (this.parentEl.contains(element) &&
835
- (!this.element.contains(element) ||
836
- this.parentEl.querySelector('.sky-wait-mask') !== null)));
837
- }
838
- isElementHidden(element) {
839
- const style = window.getComputedStyle(element);
840
- return style.display === 'none' || style.visibility === 'hidden';
841
- }
842
- isShift(event) {
843
- // Determine if shift+tab was used based on element order
844
- const elements = this.getFocussableElements().filter((elem) => !this.isElementHidden(elem));
845
- const previousInd = elements.indexOf(event.relatedTarget);
846
- const currentInd = elements.indexOf(event.target);
847
- /* istanbul ignore next */
848
- return (previousInd === currentInd + 1 ||
849
- (previousInd === 0 && currentInd === elements.length - 1) ||
850
- previousInd > currentInd ||
851
- !event.relatedTarget);
852
- }
853
- }
828
+ document.body.focus();
829
+ }
830
+ }
831
+ // clear focusableElements list so that if things change between tabbing we know about it
832
+ __classPrivateFieldSet(this, _SkyInlineDeleteAdapterService_focusableElements, undefined, "f");
833
+ }, _SkyInlineDeleteAdapterService_getFocusableElements = function _SkyInlineDeleteAdapterService_getFocusableElements() {
834
+ // Keep this cached so we can reduce querys
835
+ if (__classPrivateFieldGet(this, _SkyInlineDeleteAdapterService_focusableElements, "f")) {
836
+ return __classPrivateFieldGet(this, _SkyInlineDeleteAdapterService_focusableElements, "f");
837
+ }
838
+ __classPrivateFieldSet(this, _SkyInlineDeleteAdapterService_focusableElements, __classPrivateFieldGet(this, _SkyInlineDeleteAdapterService_coreAdapterService, "f").getFocusableChildren(document.body), "f");
839
+ return __classPrivateFieldGet(this, _SkyInlineDeleteAdapterService_focusableElements, "f");
840
+ }, _SkyInlineDeleteAdapterService_isElementHiddenOrCovered = function _SkyInlineDeleteAdapterService_isElementHiddenOrCovered(element) {
841
+ // Check if the element is hidden by css, not within the inline delete, or a wait is covering it
842
+ return (__classPrivateFieldGet(this, _SkyInlineDeleteAdapterService_instances, "m", _SkyInlineDeleteAdapterService_isElementHidden).call(this, element) ||
843
+ (!!__classPrivateFieldGet(this, _SkyInlineDeleteAdapterService_parentEl, "f") &&
844
+ __classPrivateFieldGet(this, _SkyInlineDeleteAdapterService_parentEl, "f").contains(element) &&
845
+ (!__classPrivateFieldGet(this, _SkyInlineDeleteAdapterService_element, "f")?.contains(element) ||
846
+ __classPrivateFieldGet(this, _SkyInlineDeleteAdapterService_parentEl, "f").querySelector('.sky-wait-mask') !== null)));
847
+ }, _SkyInlineDeleteAdapterService_isElementHidden = function _SkyInlineDeleteAdapterService_isElementHidden(element) {
848
+ const style = window.getComputedStyle(element);
849
+ return style.display === 'none' || style.visibility === 'hidden';
850
+ }, _SkyInlineDeleteAdapterService_isShift = function _SkyInlineDeleteAdapterService_isShift(event) {
851
+ // Determine if shift+tab was used based on element order
852
+ const elements = __classPrivateFieldGet(this, _SkyInlineDeleteAdapterService_instances, "m", _SkyInlineDeleteAdapterService_getFocusableElements).call(this).filter((elem) => !__classPrivateFieldGet(this, _SkyInlineDeleteAdapterService_instances, "m", _SkyInlineDeleteAdapterService_isElementHidden).call(this, elem));
853
+ const previousInd = elements.indexOf(event.relatedTarget);
854
+ const currentInd = elements.indexOf(event.target);
855
+ /* istanbul ignore next */
856
+ return (previousInd === currentInd + 1 ||
857
+ (previousInd === 0 && currentInd === elements.length - 1) ||
858
+ previousInd > currentInd ||
859
+ !event.relatedTarget);
860
+ };
854
861
  SkyInlineDeleteAdapterService.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.2.0", ngImport: i0, type: SkyInlineDeleteAdapterService, deps: [{ token: i1$2.SkyCoreAdapterService }, { token: i0.RendererFactory2 }], target: i0.ɵɵFactoryTarget.Injectable });
855
862
  SkyInlineDeleteAdapterService.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "14.2.0", ngImport: i0, type: SkyInlineDeleteAdapterService });
856
863
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.2.0", ngImport: i0, type: SkyInlineDeleteAdapterService, decorators: [{
@@ -873,15 +880,13 @@ var SkyInlineDeleteType;
873
880
  SkyInlineDeleteType["Card"] = "card";
874
881
  })(SkyInlineDeleteType || (SkyInlineDeleteType = {}));
875
882
 
883
+ var _SkyInlineDeleteComponent_adapterService, _SkyInlineDeleteComponent_changeDetector, _SkyInlineDeleteComponent_elRef;
876
884
  /**
877
885
  * Auto-incrementing integer used to generate unique ids for inline delete components.
878
886
  */
879
887
  let nextId$2 = 0;
880
888
  class SkyInlineDeleteComponent {
881
889
  constructor(adapterService, changeDetector, elRef) {
882
- this.adapterService = adapterService;
883
- this.changeDetector = changeDetector;
884
- this.elRef = elRef;
885
890
  /**
886
891
  * Indicates whether the deletion is pending.
887
892
  * @default false
@@ -898,6 +903,12 @@ class SkyInlineDeleteComponent {
898
903
  this.animationState = 'shown';
899
904
  this.assistiveTextId = `sky-inline-delete-assistive-text-${++nextId$2}`;
900
905
  this.type = SkyInlineDeleteType.Standard;
906
+ _SkyInlineDeleteComponent_adapterService.set(this, void 0);
907
+ _SkyInlineDeleteComponent_changeDetector.set(this, void 0);
908
+ _SkyInlineDeleteComponent_elRef.set(this, void 0);
909
+ __classPrivateFieldSet(this, _SkyInlineDeleteComponent_adapterService, adapterService, "f");
910
+ __classPrivateFieldSet(this, _SkyInlineDeleteComponent_changeDetector, changeDetector, "f");
911
+ __classPrivateFieldSet(this, _SkyInlineDeleteComponent_elRef, elRef, "f");
901
912
  }
902
913
  /**
903
914
  * Initialization lifecycle hook
@@ -911,7 +922,7 @@ class SkyInlineDeleteComponent {
911
922
  * @internal
912
923
  */
913
924
  ngOnDestroy() {
914
- this.adapterService.clearListeners();
925
+ __classPrivateFieldGet(this, _SkyInlineDeleteComponent_adapterService, "f").clearListeners();
915
926
  this.cancelTriggered.complete();
916
927
  this.deleteTriggered.complete();
917
928
  }
@@ -934,7 +945,7 @@ class SkyInlineDeleteComponent {
934
945
  */
935
946
  setType(type) {
936
947
  this.type = type;
937
- this.changeDetector.detectChanges();
948
+ __classPrivateFieldGet(this, _SkyInlineDeleteComponent_changeDetector, "f").detectChanges();
938
949
  }
939
950
  /**
940
951
  * Handles actions that should be taken after the inline delete animates
@@ -946,14 +957,15 @@ class SkyInlineDeleteComponent {
946
957
  this.cancelTriggered.emit();
947
958
  }
948
959
  else {
949
- this.deleteButton.nativeElement.focus();
960
+ this.deleteButton?.nativeElement.focus();
950
961
  /* istanbul ignore else */
951
- if (this.elRef) {
952
- this.adapterService.setEl(this.elRef.nativeElement);
962
+ if (__classPrivateFieldGet(this, _SkyInlineDeleteComponent_elRef, "f")) {
963
+ __classPrivateFieldGet(this, _SkyInlineDeleteComponent_adapterService, "f").setEl(__classPrivateFieldGet(this, _SkyInlineDeleteComponent_elRef, "f").nativeElement);
953
964
  }
954
965
  }
955
966
  }
956
967
  }
968
+ _SkyInlineDeleteComponent_adapterService = new WeakMap(), _SkyInlineDeleteComponent_changeDetector = new WeakMap(), _SkyInlineDeleteComponent_elRef = new WeakMap();
957
969
  SkyInlineDeleteComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.2.0", ngImport: i0, type: SkyInlineDeleteComponent, deps: [{ token: SkyInlineDeleteAdapterService }, { token: i0.ChangeDetectorRef }, { token: i0.ElementRef }], target: i0.ɵɵFactoryTarget.Component });
958
970
  SkyInlineDeleteComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "14.2.0", type: SkyInlineDeleteComponent, selector: "sky-inline-delete", inputs: { pending: "pending" }, outputs: { cancelTriggered: "cancelTriggered", deleteTriggered: "deleteTriggered" }, providers: [SkyCoreAdapterService, SkyInlineDeleteAdapterService], viewQueries: [{ propertyName: "deleteButton", first: true, predicate: ["delete"], descendants: true, read: ElementRef }], ngImport: i0, template: "<div\n class=\"sky-inline-delete sky-inline-delete-{{ type }}\"\n role=\"alertdialog\"\n [@inlineDeleteAnimation]=\"animationState\"\n (@inlineDeleteAnimation.done)=\"onAnimationDone($event)\"\n [attr.aria-describedby]=\"assistiveTextId\"\n [attr.aria-label]=\"'skyux_inline_delete_confirm_deletion' | skyLibResources\"\n>\n <span class=\"sky-inline-delete-assistive-text\" [id]=\"assistiveTextId\">\n {{ 'skyux_inline_delete_assistive_text' | skyLibResources }}\n </span>\n <sky-wait class=\"sky-inline-delete-wait\" [isWaiting]=\"pending\"></sky-wait>\n <div class=\"sky-inline-delete-content\">\n <div class=\"sky-inline-delete-content-animation-container\">\n <button\n class=\"sky-btn sky-btn-danger sky-inline-delete-button\"\n type=\"button\"\n (click)=\"onDeleteClick()\"\n #delete\n >\n {{ 'skyux_inline_delete_delete' | skyLibResources }}\n </button>\n <button\n class=\"sky-btn sky-btn-default\"\n type=\"button\"\n (click)=\"onCancelClick()\"\n >\n {{ 'skyux_inline_delete_cancel' | skyLibResources }}\n </button>\n </div>\n </div>\n</div>\n", styles: [".sky-inline-delete{position:absolute!important;top:0;left:0;width:100%;height:100%;background-color:#00000080;z-index:999;border:2px solid #ef4044}.sky-inline-delete-assistive-text{width:0;height:0;padding:0;opacity:0;position:absolute;margin:-1px;border:0;overflow:hidden;clip:rect(0,0,0,0);outline:none;white-space:nowrap}.sky-inline-delete-button{margin-right:10px}.sky-inline-delete-card .sky-inline-delete-content{position:absolute;bottom:10px;text-align:center;width:100%}.sky-inline-delete-standard .sky-inline-delete-content{position:absolute;top:50%;transform:translateY(-50%);left:20px}.sky-inline-delete-wait{height:100%}\n"], dependencies: [{ kind: "component", type: i2$1.λ14, selector: "sky-wait", inputs: ["ariaLabel", "isWaiting", "isFullPage", "isNonBlocking"] }, { kind: "pipe", type: i1$3.SkyLibResourcesPipe, name: "skyLibResources" }], animations: [
959
971
  trigger('inlineDeleteAnimation', [
@@ -1089,33 +1101,58 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.2.0", ngImpor
1089
1101
  args: [{ selector: 'sky-card-title', template: "<ng-content></ng-content>\n" }]
1090
1102
  }] });
1091
1103
 
1104
+ var _SkyCardComponent_subscription, _SkyCardComponent__size;
1092
1105
  /**
1093
1106
  * Creates a a small container to highlight important information.
1094
1107
  * @deprecated `SkyCardComponent` is deprecated. For other SKY UX components that group and list content, see the content containers guidelines. For more information, see https://developer.blackbaud.com/skyux/design/guidelines/content-containers.
1095
1108
  */
1096
1109
  class SkyCardComponent {
1097
1110
  constructor(logger) {
1111
+ /**
1112
+ * Indicates whether to display a checkbox to the right of the card title.
1113
+ * Users can select multiple checkboxes and perform actions on the selected cards.
1114
+ * @default false
1115
+ */
1116
+ this.selectable = false;
1117
+ /**
1118
+ * Indicates whether the card is selected. This only applies to card where
1119
+ * `selectable` is set to `true`.
1120
+ * @default false
1121
+ */
1122
+ this.selected = false;
1098
1123
  /**
1099
1124
  * Fires when users select or deselect the card.
1100
1125
  */
1101
1126
  this.selectedChange = new EventEmitter();
1102
1127
  this.showTitle = true;
1128
+ _SkyCardComponent_subscription.set(this, void 0);
1129
+ _SkyCardComponent__size.set(this, 'large');
1103
1130
  logger.deprecated('SkyCardComponent', {
1104
1131
  deprecationMajorVersion: 6,
1105
1132
  moreInfoUrl: 'https://developer.blackbaud.com/skyux/design/guidelines/content-containers',
1106
1133
  replacementRecommendation: 'For other SKY UX components that group and list content, see the content containers guidelines.',
1107
1134
  });
1108
1135
  }
1136
+ /**
1137
+ * Specifies the size of the card. The valid options are `"large"` and `"small"`.
1138
+ * @default "large"
1139
+ */
1140
+ set size(value) {
1141
+ __classPrivateFieldSet(this, _SkyCardComponent__size, value ?? 'large', "f");
1142
+ }
1143
+ get size() {
1144
+ return __classPrivateFieldGet(this, _SkyCardComponent__size, "f");
1145
+ }
1109
1146
  ngAfterContentInit() {
1110
- this.showTitle = this.titleComponent.length > 0;
1111
- this.subscription = this.titleComponent.changes.subscribe(() => {
1112
- this.showTitle = this.titleComponent.length > 0;
1113
- });
1114
- this.inlineDeleteComponent.forEach((item) => {
1147
+ this.showTitle = !!this.titleComponent && this.titleComponent.length > 0;
1148
+ __classPrivateFieldSet(this, _SkyCardComponent_subscription, this.titleComponent?.changes.subscribe(() => {
1149
+ this.showTitle = !!this.titleComponent && this.titleComponent.length > 0;
1150
+ }), "f");
1151
+ this.inlineDeleteComponent?.forEach((item) => {
1115
1152
  item.setType(SkyInlineDeleteType.Card);
1116
1153
  });
1117
- this.inlineDeleteComponent.changes.subscribe(() => {
1118
- this.inlineDeleteComponent.forEach((item) => {
1154
+ this.inlineDeleteComponent?.changes.subscribe(() => {
1155
+ this.inlineDeleteComponent?.forEach((item) => {
1119
1156
  item.setType(SkyInlineDeleteType.Card);
1120
1157
  });
1121
1158
  });
@@ -1135,11 +1172,12 @@ class SkyCardComponent {
1135
1172
  ngOnDestroy() {
1136
1173
  /* istanbul ignore else */
1137
1174
  /* sanity check */
1138
- if (this.subscription) {
1139
- this.subscription.unsubscribe();
1175
+ if (__classPrivateFieldGet(this, _SkyCardComponent_subscription, "f")) {
1176
+ __classPrivateFieldGet(this, _SkyCardComponent_subscription, "f").unsubscribe();
1140
1177
  }
1141
1178
  }
1142
1179
  }
1180
+ _SkyCardComponent_subscription = new WeakMap(), _SkyCardComponent__size = new WeakMap();
1143
1181
  SkyCardComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.2.0", ngImport: i0, type: SkyCardComponent, deps: [{ token: i1$2.SkyLogService }], target: i0.ɵɵFactoryTarget.Component });
1144
1182
  SkyCardComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "14.2.0", type: SkyCardComponent, selector: "sky-card", inputs: { size: "size", selectable: "selectable", selected: "selected" }, outputs: { selectedChange: "selectedChange" }, queries: [{ propertyName: "inlineDeleteComponent", predicate: SkyInlineDeleteComponent }, { propertyName: "titleComponent", predicate: SkyCardTitleComponent }], ngImport: i0, template: "<section\n class=\"sky-card sky-shadow\"\n [ngClass]=\"\n {\n 'sky-card-small': size === 'small',\n 'sky-card-selectable': selectable,\n 'sky-card-selected': selectable &amp;&amp; selected\n }\"\n>\n <ng-content select=\"sky-inline-delete\"></ng-content>\n <header>\n <div\n *ngIf=\"selectable || showTitle\"\n class=\"sky-card-header\"\n (click)=\"contentClick()\"\n >\n <div class=\"sky-card-heading-middle\">\n <h1 *ngIf=\"showTitle\" class=\"sky-card-title sky-section-heading\">\n <ng-content select=\"sky-card-title\"></ng-content>\n </h1>\n </div>\n <div *ngIf=\"selectable\" class=\"sky-card-check\">\n <sky-checkbox\n [label]=\"'skyux_card_checkbox_label' | skyLibResources\"\n [ngModel]=\"selected\"\n (click)=\"$event.stopPropagation()\"\n (ngModelChange)=\"onCheckboxChange($event)\"\n ></sky-checkbox>\n </div>\n </div>\n </header>\n <div\n class=\"sky-card-content sky-padding-even-default\"\n (click)=\"contentClick()\"\n >\n <ng-content select=\"sky-card-content\"></ng-content>\n </div>\n <div\n class=\"sky-card-actions\"\n [hidden]=\"actionsEl.children.length === 0\"\n #actionsEl\n >\n <ng-content select=\"sky-card-actions\"></ng-content>\n </div>\n</section>\n", styles: [".sky-card{background-color:#fff;border-top:1px solid #cdcfd2;border-bottom:1px solid #cdcfd2;border-left:1px solid #cdcfd2;border-right:1px solid #cdcfd2;display:inline-flex;flex-direction:column;height:350px;margin:0 10px 10px 0;transition:background-color .15s;vertical-align:top;width:350px;position:relative}.sky-card-small{height:250px;width:225px}.sky-card-selectable .sky-card-header,.sky-card-selectable .sky-card-content{cursor:pointer}.sky-card-selected{background-color:#f1eef6;transition:background-color .15s}.sky-card-header{align-items:center;display:flex;flex-shrink:0;margin:0;padding:10px 0 0}.sky-card-heading-left,.sky-card-heading-right{font-weight:400;max-width:34px}.sky-card-heading-left{padding-left:10px}.sky-card-heading-right{padding-right:10px}.sky-card-heading-middle{flex-grow:1;padding:0 10px;overflow:hidden}.sky-card-title{margin:0;line-height:1.428571429}.sky-card-check{flex-shrink:0;padding-right:10px}.sky-card-check .sky-check-wrapper{margin-bottom:2px}.sky-card-content{flex-grow:1;font-weight:400;margin:0;overflow:hidden}.sky-card-actions{bottom:0;flex-shrink:0;text-align:center}.sky-card-actions .sky-context-menu-btn{height:32px;width:32px}\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: i3$1.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i3$1.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }, { kind: "component", type: i4.λ3, selector: "sky-checkbox", inputs: ["label", "labelledBy", "id", "disabled", "tabindex", "name", "icon", "checkboxType", "checked", "required"], outputs: ["change", "checkedChange", "disabledChange"] }, { kind: "pipe", type: i1$3.SkyLibResourcesPipe, name: "skyLibResources" }] });
1145
1183
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.2.0", ngImport: i0, type: SkyCardComponent, decorators: [{
@@ -1274,10 +1312,10 @@ class SkyDefinitionListValueComponent {
1274
1312
  }
1275
1313
  }
1276
1314
  SkyDefinitionListValueComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.2.0", ngImport: i0, type: SkyDefinitionListValueComponent, deps: [{ token: SkyDefinitionListService }], target: i0.ɵɵFactoryTarget.Component });
1277
- SkyDefinitionListValueComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "14.2.0", type: SkyDefinitionListValueComponent, selector: "sky-definition-list-value", ngImport: i0, template: "<div class=\"sky-definition-list-value\">\n <span #valueEl>\n <ng-content></ng-content>\n </span>\n <span class=\"sky-deemphasized\" *ngIf=\"!valueEl.textContent.trim()\">\n {{\n (service.defaultValue | async) ||\n ('skyux_definition_list_none_found' | skyLibResources)\n }}\n </span>\n</div>\n", styles: [":host{flex:1}\n"], dependencies: [{ kind: "directive", type: i1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "pipe", type: i1.AsyncPipe, name: "async" }, { kind: "pipe", type: i1$3.SkyLibResourcesPipe, name: "skyLibResources" }] });
1315
+ SkyDefinitionListValueComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "14.2.0", type: SkyDefinitionListValueComponent, selector: "sky-definition-list-value", ngImport: i0, template: "<div class=\"sky-definition-list-value\">\n <span #valueEl>\n <ng-content></ng-content>\n </span>\n <span class=\"sky-deemphasized\" *ngIf=\"!valueEl.textContent?.trim()\">\n {{\n (service.defaultValue | async) ||\n ('skyux_definition_list_none_found' | skyLibResources)\n }}\n </span>\n</div>\n", styles: [":host{flex:1}\n"], dependencies: [{ kind: "directive", type: i1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "pipe", type: i1.AsyncPipe, name: "async" }, { kind: "pipe", type: i1$3.SkyLibResourcesPipe, name: "skyLibResources" }] });
1278
1316
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.2.0", ngImport: i0, type: SkyDefinitionListValueComponent, decorators: [{
1279
1317
  type: Component,
1280
- args: [{ selector: 'sky-definition-list-value', template: "<div class=\"sky-definition-list-value\">\n <span #valueEl>\n <ng-content></ng-content>\n </span>\n <span class=\"sky-deemphasized\" *ngIf=\"!valueEl.textContent.trim()\">\n {{\n (service.defaultValue | async) ||\n ('skyux_definition_list_none_found' | skyLibResources)\n }}\n </span>\n</div>\n", styles: [":host{flex:1}\n"] }]
1318
+ args: [{ selector: 'sky-definition-list-value', template: "<div class=\"sky-definition-list-value\">\n <span #valueEl>\n <ng-content></ng-content>\n </span>\n <span class=\"sky-deemphasized\" *ngIf=\"!valueEl.textContent?.trim()\">\n {{\n (service.defaultValue | async) ||\n ('skyux_definition_list_none_found' | skyLibResources)\n }}\n </span>\n</div>\n", styles: [":host{flex:1}\n"] }]
1281
1319
  }], ctorParameters: function () { return [{ type: SkyDefinitionListService }]; } });
1282
1320
 
1283
1321
  /**
@@ -1379,32 +1417,36 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.2.0", ngImpor
1379
1417
  type: Injectable
1380
1418
  }] });
1381
1419
 
1420
+ var _SkyDescriptionListDescriptionComponent_changeDetector, _SkyDescriptionListDescriptionComponent_ngUnsubscribe, _SkyDescriptionListDescriptionComponent_themeSvc;
1382
1421
  /**
1383
1422
  * Specifies the description in a term-description pair.
1384
1423
  */
1385
1424
  class SkyDescriptionListDescriptionComponent {
1386
- constructor(service, changeRef, themeSvc) {
1425
+ constructor(service, changeDetector, themeSvc) {
1387
1426
  this.service = service;
1388
- this.changeRef = changeRef;
1389
- this.themeSvc = themeSvc;
1390
- this.ngUnsubscribe = new Subject();
1427
+ _SkyDescriptionListDescriptionComponent_changeDetector.set(this, void 0);
1428
+ _SkyDescriptionListDescriptionComponent_ngUnsubscribe.set(this, new Subject());
1429
+ _SkyDescriptionListDescriptionComponent_themeSvc.set(this, void 0);
1430
+ __classPrivateFieldSet(this, _SkyDescriptionListDescriptionComponent_changeDetector, changeDetector, "f");
1431
+ __classPrivateFieldSet(this, _SkyDescriptionListDescriptionComponent_themeSvc, themeSvc, "f");
1391
1432
  }
1392
1433
  ngOnInit() {
1393
1434
  /* istanbul ignore else */
1394
- if (this.themeSvc) {
1395
- this.themeSvc.settingsChange
1396
- .pipe(takeUntil(this.ngUnsubscribe))
1435
+ if (__classPrivateFieldGet(this, _SkyDescriptionListDescriptionComponent_themeSvc, "f")) {
1436
+ __classPrivateFieldGet(this, _SkyDescriptionListDescriptionComponent_themeSvc, "f").settingsChange
1437
+ .pipe(takeUntil(__classPrivateFieldGet(this, _SkyDescriptionListDescriptionComponent_ngUnsubscribe, "f")))
1397
1438
  .subscribe((themeSettings) => {
1398
1439
  this.themeName = themeSettings.currentSettings.theme.name;
1399
- this.changeRef.markForCheck();
1440
+ __classPrivateFieldGet(this, _SkyDescriptionListDescriptionComponent_changeDetector, "f").markForCheck();
1400
1441
  });
1401
1442
  }
1402
1443
  }
1403
1444
  ngOnDestroy() {
1404
- this.ngUnsubscribe.next();
1405
- this.ngUnsubscribe.complete();
1445
+ __classPrivateFieldGet(this, _SkyDescriptionListDescriptionComponent_ngUnsubscribe, "f").next();
1446
+ __classPrivateFieldGet(this, _SkyDescriptionListDescriptionComponent_ngUnsubscribe, "f").complete();
1406
1447
  }
1407
1448
  }
1449
+ _SkyDescriptionListDescriptionComponent_changeDetector = new WeakMap(), _SkyDescriptionListDescriptionComponent_ngUnsubscribe = new WeakMap(), _SkyDescriptionListDescriptionComponent_themeSvc = new WeakMap();
1408
1450
  SkyDescriptionListDescriptionComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.2.0", ngImport: i0, type: SkyDescriptionListDescriptionComponent, deps: [{ token: SkyDescriptionListService }, { token: i0.ChangeDetectorRef }, { token: i1$1.SkyThemeService, optional: true }], target: i0.ɵɵFactoryTarget.Component });
1409
1451
  SkyDescriptionListDescriptionComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "14.2.0", type: SkyDescriptionListDescriptionComponent, selector: "sky-description-list-description", viewQueries: [{ propertyName: "templateRef", first: true, predicate: ["descriptionTemplateRef"], descendants: true, read: TemplateRef, static: true }], ngImport: i0, template: "<ng-template #descriptionTemplateRef>\n <span skyTrim class=\"sky-description-list-description\"\n ><ng-content></ng-content\n ></span>\n <span\n class=\"sky-description-list-default-value\"\n data-sky-id=\"sky-description-list-default-value\"\n [skyThemeClass]=\"{\n 'sky-font-deemphasized': 'modern',\n 'sky-deemphasized': 'default'\n }\"\n >\n {{\n (service.defaultDescription | async) ||\n ('skyux_description_list_none_found' | skyLibResources)\n }}\n </span>\n</ng-template>\n", styles: [".sky-description-list-description:not(:empty)+.sky-description-list-default-value{display:none}\n"], dependencies: [{ kind: "directive", type: i1$1.λ2, selector: "[skyThemeClass]", inputs: ["class", "skyThemeClass"] }, { kind: "directive", type: i1$2.λ4, selector: "[skyTrim]" }, { kind: "pipe", type: i1.AsyncPipe, name: "async" }, { kind: "pipe", type: i1$3.SkyLibResourcesPipe, name: "skyLibResources" }], changeDetection: i0.ChangeDetectionStrategy.OnPush });
1410
1452
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.2.0", ngImport: i0, type: SkyDescriptionListDescriptionComponent, decorators: [{
@@ -1458,12 +1500,15 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.2.0", ngImpor
1458
1500
  args: [SkyDescriptionListDescriptionComponent]
1459
1501
  }] } });
1460
1502
 
1503
+ var _SkyDescriptionListAdapterService_instances, _SkyDescriptionListAdapterService_renderer, _SkyDescriptionListAdapterService_getResponsiveClassName;
1461
1504
  /**
1462
1505
  * @internal
1463
1506
  */
1464
1507
  class SkyDescriptionListAdapterService {
1465
1508
  constructor(rendererFactory) {
1466
- this.renderer = rendererFactory.createRenderer(undefined, undefined);
1509
+ _SkyDescriptionListAdapterService_instances.add(this);
1510
+ _SkyDescriptionListAdapterService_renderer.set(this, void 0);
1511
+ __classPrivateFieldSet(this, _SkyDescriptionListAdapterService_renderer, rendererFactory.createRenderer(undefined, null), "f");
1467
1512
  }
1468
1513
  getWidth(elementRef) {
1469
1514
  return elementRef.nativeElement.clientWidth;
@@ -1471,34 +1516,35 @@ class SkyDescriptionListAdapterService {
1471
1516
  setResponsiveClass(element) {
1472
1517
  const nativeEl = element.nativeElement;
1473
1518
  const width = this.getWidth(element);
1474
- const className = this.getResponsiveClassName(width);
1475
- this.renderer.removeClass(nativeEl, 'sky-responsive-container-xs');
1476
- this.renderer.removeClass(nativeEl, 'sky-responsive-container-sm');
1477
- this.renderer.removeClass(nativeEl, 'sky-responsive-container-md');
1478
- this.renderer.addClass(nativeEl, className);
1479
- }
1480
- getResponsiveClassName(width) {
1481
- const xsBreakpointMaxPixels = 479;
1482
- const smBreakpointMinPixels = 480;
1483
- const smBreakpointMaxPixels = 767;
1484
- if (width <= xsBreakpointMaxPixels) {
1485
- return 'sky-responsive-container-xs';
1486
- }
1487
- else if (width >= smBreakpointMinPixels &&
1488
- width <= smBreakpointMaxPixels) {
1489
- return 'sky-responsive-container-sm';
1490
- }
1491
- else {
1492
- return 'sky-responsive-container-md';
1493
- }
1519
+ const className = __classPrivateFieldGet(this, _SkyDescriptionListAdapterService_instances, "m", _SkyDescriptionListAdapterService_getResponsiveClassName).call(this, width);
1520
+ __classPrivateFieldGet(this, _SkyDescriptionListAdapterService_renderer, "f").removeClass(nativeEl, 'sky-responsive-container-xs');
1521
+ __classPrivateFieldGet(this, _SkyDescriptionListAdapterService_renderer, "f").removeClass(nativeEl, 'sky-responsive-container-sm');
1522
+ __classPrivateFieldGet(this, _SkyDescriptionListAdapterService_renderer, "f").removeClass(nativeEl, 'sky-responsive-container-md');
1523
+ __classPrivateFieldGet(this, _SkyDescriptionListAdapterService_renderer, "f").addClass(nativeEl, className);
1494
1524
  }
1495
1525
  }
1526
+ _SkyDescriptionListAdapterService_renderer = new WeakMap(), _SkyDescriptionListAdapterService_instances = new WeakSet(), _SkyDescriptionListAdapterService_getResponsiveClassName = function _SkyDescriptionListAdapterService_getResponsiveClassName(width) {
1527
+ const xsBreakpointMaxPixels = 479;
1528
+ const smBreakpointMinPixels = 480;
1529
+ const smBreakpointMaxPixels = 767;
1530
+ if (width <= xsBreakpointMaxPixels) {
1531
+ return 'sky-responsive-container-xs';
1532
+ }
1533
+ else if (width >= smBreakpointMinPixels &&
1534
+ width <= smBreakpointMaxPixels) {
1535
+ return 'sky-responsive-container-sm';
1536
+ }
1537
+ else {
1538
+ return 'sky-responsive-container-md';
1539
+ }
1540
+ };
1496
1541
  SkyDescriptionListAdapterService.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.2.0", ngImport: i0, type: SkyDescriptionListAdapterService, deps: [{ token: i0.RendererFactory2 }], target: i0.ɵɵFactoryTarget.Injectable });
1497
1542
  SkyDescriptionListAdapterService.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "14.2.0", ngImport: i0, type: SkyDescriptionListAdapterService });
1498
1543
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.2.0", ngImport: i0, type: SkyDescriptionListAdapterService, decorators: [{
1499
1544
  type: Injectable
1500
1545
  }], ctorParameters: function () { return [{ type: i0.RendererFactory2 }]; } });
1501
1546
 
1547
+ var _SkyDescriptionListComponent_ngUnsubscribe, _SkyDescriptionListComponent__mode;
1502
1548
  /**
1503
1549
  * Creates a description list to display term-description pairs.
1504
1550
  */
@@ -1507,7 +1553,8 @@ class SkyDescriptionListComponent {
1507
1553
  this.adapterService = adapterService;
1508
1554
  this.changeDetector = changeDetector;
1509
1555
  this.descriptionListService = descriptionListService;
1510
- this.ngUnsubscribe = new Subject();
1556
+ _SkyDescriptionListComponent_ngUnsubscribe.set(this, new Subject());
1557
+ _SkyDescriptionListComponent__mode.set(this, 'vertical');
1511
1558
  }
1512
1559
  /**
1513
1560
  * Specifies a default description to display when no description is provided
@@ -1523,39 +1570,45 @@ class SkyDescriptionListComponent {
1523
1570
  * @default "vertical"
1524
1571
  */
1525
1572
  set mode(value) {
1526
- this._mode = value;
1573
+ __classPrivateFieldSet(this, _SkyDescriptionListComponent__mode, value || 'vertical', "f");
1527
1574
  }
1528
1575
  get mode() {
1529
- return this._mode || 'vertical';
1576
+ return __classPrivateFieldGet(this, _SkyDescriptionListComponent__mode, "f");
1530
1577
  }
1531
1578
  ngAfterContentInit() {
1532
1579
  // Wait for all content to render before detecting parent width.
1533
1580
  setTimeout(() => {
1534
1581
  this.updateResponsiveClass();
1535
1582
  });
1536
- this.contentComponents.changes
1537
- .pipe(takeUntil(this.ngUnsubscribe))
1538
- .subscribe(() => {
1539
- this.changeDetector.markForCheck();
1540
- });
1583
+ // istanbul ignore else
1584
+ if (this.contentComponents) {
1585
+ this.contentComponents.changes
1586
+ .pipe(takeUntil(__classPrivateFieldGet(this, _SkyDescriptionListComponent_ngUnsubscribe, "f")))
1587
+ .subscribe(() => {
1588
+ this.changeDetector.markForCheck();
1589
+ });
1590
+ }
1541
1591
  }
1542
1592
  ngOnDestroy() {
1543
- this.ngUnsubscribe.next();
1544
- this.ngUnsubscribe.complete();
1593
+ __classPrivateFieldGet(this, _SkyDescriptionListComponent_ngUnsubscribe, "f").next();
1594
+ __classPrivateFieldGet(this, _SkyDescriptionListComponent_ngUnsubscribe, "f").complete();
1545
1595
  }
1546
1596
  onWindowResize() {
1547
1597
  this.updateResponsiveClass();
1548
1598
  }
1549
1599
  updateResponsiveClass() {
1550
- this.adapterService.setResponsiveClass(this.elementRef);
1551
- this.changeDetector.markForCheck();
1600
+ if (this.elementRef) {
1601
+ this.adapterService.setResponsiveClass(this.elementRef);
1602
+ this.changeDetector.markForCheck();
1603
+ }
1552
1604
  }
1553
1605
  }
1606
+ _SkyDescriptionListComponent_ngUnsubscribe = new WeakMap(), _SkyDescriptionListComponent__mode = new WeakMap();
1554
1607
  SkyDescriptionListComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.2.0", ngImport: i0, type: SkyDescriptionListComponent, deps: [{ token: SkyDescriptionListAdapterService }, { token: i0.ChangeDetectorRef }, { token: SkyDescriptionListService }], target: i0.ɵɵFactoryTarget.Component });
1555
- SkyDescriptionListComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "14.2.0", type: SkyDescriptionListComponent, selector: "sky-description-list", inputs: { defaultDescription: "defaultDescription", listItemWidth: "listItemWidth", mode: "mode" }, host: { listeners: { "window:resize": "onWindowResize()" } }, providers: [SkyDescriptionListAdapterService, SkyDescriptionListService], queries: [{ propertyName: "contentComponents", predicate: SkyDescriptionListContentComponent }], viewQueries: [{ propertyName: "elementRef", first: true, predicate: ["descriptionListElement"], descendants: true, read: ElementRef, static: true }], ngImport: i0, template: "<dl\n class=\"sky-description-list\"\n [ngClass]=\"{\n 'sky-description-list-long-description-mode': mode === 'longDescription',\n 'sky-description-list-vertical-mode': mode === 'vertical',\n 'sky-description-list-horizontal-mode': mode === 'horizontal'\n }\"\n #descriptionListElement\n>\n <!--\n Wrapping div is for horizontal flexing. Also injecting children's templateRef directly\n to avoid adding non-semantic HTML tags to DOM\n -->\n <div\n *ngFor=\"let contentComponent of contentComponents\"\n class=\"sky-description-list-content\"\n [style.width]=\"mode === 'horizontal' ? listItemWidth : ''\"\n >\n <dt *ngFor=\"let termComponent of contentComponent?.termComponents\">\n <ng-container\n *ngTemplateOutlet=\"termComponent.templateRef\"\n ></ng-container>\n </dt>\n <dd\n *ngFor=\"\n let descriptionComponent of contentComponent?.descriptionComponents\n \"\n >\n <ng-container\n *ngTemplateOutlet=\"descriptionComponent.templateRef\"\n ></ng-container>\n </dd>\n </div>\n</dl>\n", styles: [".sky-description-list{margin:0;padding:0}.sky-description-list dt{color:#686c73;font-size:14px;font-weight:400;margin:0 0 3px;padding:0}.sky-description-list dd{margin:0;padding:0}.sky-description-list.sky-description-list-vertical-mode .sky-description-list-content{margin:0 0 15px;width:auto}.sky-description-list.sky-description-list-horizontal-mode{display:flex;flex-wrap:wrap}.sky-description-list.sky-description-list-horizontal-mode .sky-description-list-content{margin:0 0 15px;padding:0 60px 0 0;min-width:100px;width:auto}.sky-description-list.sky-description-list-horizontal-mode.sky-responsive-container-xs .sky-description-list-content,.sky-description-list.sky-description-list-horizontal-mode.sky-responsive-container-sm .sky-description-list-content{width:50%}.sky-description-list.sky-description-list-long-description-mode .sky-description-list-content{display:flex}.sky-description-list.sky-description-list-long-description-mode .sky-description-list-content:not(:last-child){margin:0 0 10px}.sky-description-list.sky-description-list-long-description-mode .sky-description-list-content dt{color:#212327;font-size:16px;font-weight:600;margin:0 20px 0 0;width:25%;word-break:break-word}.sky-description-list.sky-description-list-long-description-mode .sky-description-list-content dd{flex:1}.sky-description-list.sky-description-list-long-description-mode.sky-responsive-container-xs .sky-description-list-content{flex-direction:column}.sky-description-list.sky-description-list-long-description-mode.sky-responsive-container-xs .sky-description-list-content dt{margin:0 0 3px;width:100%}.sky-description-list.sky-description-list-long-description-mode.sky-responsive-container-xs .sky-description-list-content dd{margin:0 0 10px}:host-context(.sky-theme-modern) .sky-description-list.sky-description-list-vertical-mode .sky-description-list-content{margin:0 0 20px}:host-context(.sky-theme-modern) .sky-description-list.sky-description-list-vertical-mode dt{color:#686c73;font-size:14px;font-weight:400}:host-context(.sky-theme-modern) .sky-description-list.sky-description-list-vertical-mode dd{font-size:16px;font-weight:400}:host-context(.sky-theme-modern) .sky-description-list.sky-description-list-horizontal-mode{margin:0 0 -20px}:host-context(.sky-theme-modern) .sky-description-list.sky-description-list-horizontal-mode .sky-description-list-content{margin:0 0 20px}:host-context(.sky-theme-modern) .sky-description-list.sky-description-list-long-description-mode dt{color:inherit;font-weight:700;font-size:inherit}:host-context(.sky-theme-modern) .sky-description-list.sky-description-list-long-description-mode dd{font-size:16px;font-weight:400}:host-context(.sky-theme-modern) .sky-description-list.sky-description-list-long-description-mode.sky-responsive-container-xs dt{margin:0 0 5px}:host-context(.sky-theme-modern) .sky-description-list.sky-description-list-long-description-mode.sky-responsive-container-xs dd{margin:0 0 20px}.sky-theme-modern .sky-description-list.sky-description-list-vertical-mode .sky-description-list-content{margin:0 0 20px}.sky-theme-modern .sky-description-list.sky-description-list-vertical-mode dt{color:#686c73;font-size:14px;font-weight:400}.sky-theme-modern .sky-description-list.sky-description-list-vertical-mode dd{font-size:16px;font-weight:400}.sky-theme-modern .sky-description-list.sky-description-list-horizontal-mode{margin:0 0 -20px}.sky-theme-modern .sky-description-list.sky-description-list-horizontal-mode .sky-description-list-content{margin:0 0 20px}.sky-theme-modern .sky-description-list.sky-description-list-long-description-mode dt{color:inherit;font-weight:700;font-size:inherit}.sky-theme-modern .sky-description-list.sky-description-list-long-description-mode dd{font-size:16px;font-weight:400}.sky-theme-modern .sky-description-list.sky-description-list-long-description-mode.sky-responsive-container-xs dt{margin:0 0 5px}.sky-theme-modern .sky-description-list.sky-description-list-long-description-mode.sky-responsive-container-xs dd{margin:0 0 20px}\n"], dependencies: [{ kind: "directive", type: i1.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i1.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i1.NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush });
1608
+ SkyDescriptionListComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "14.2.0", type: SkyDescriptionListComponent, selector: "sky-description-list", inputs: { defaultDescription: "defaultDescription", listItemWidth: "listItemWidth", mode: "mode" }, host: { listeners: { "window:resize": "onWindowResize()" } }, providers: [SkyDescriptionListAdapterService, SkyDescriptionListService], queries: [{ propertyName: "contentComponents", predicate: SkyDescriptionListContentComponent }], viewQueries: [{ propertyName: "elementRef", first: true, predicate: ["descriptionListElement"], descendants: true, read: ElementRef, static: true }], ngImport: i0, template: "<dl\n class=\"sky-description-list\"\n [ngClass]=\"{\n 'sky-description-list-long-description-mode': mode === 'longDescription',\n 'sky-description-list-vertical-mode': mode === 'vertical',\n 'sky-description-list-horizontal-mode': mode === 'horizontal'\n }\"\n #descriptionListElement\n>\n <!--\n Wrapping div is for horizontal flexing. Also injecting children's templateRef directly\n to avoid adding non-semantic HTML tags to DOM\n -->\n <div\n *ngFor=\"let contentComponent of contentComponents\"\n class=\"sky-description-list-content\"\n [style.width]=\"mode === 'horizontal' ? listItemWidth : ''\"\n >\n <dt *ngFor=\"let termComponent of contentComponent?.termComponents\">\n <ng-container *ngIf=\"termComponent.templateRef\">\n <ng-container\n *ngTemplateOutlet=\"termComponent.templateRef\"\n ></ng-container>\n </ng-container>\n </dt>\n <dd\n *ngFor=\"\n let descriptionComponent of contentComponent?.descriptionComponents\n \"\n >\n <ng-container *ngIf=\"descriptionComponent.templateRef\">\n <ng-container\n *ngTemplateOutlet=\"descriptionComponent.templateRef\"\n ></ng-container>\n </ng-container>\n </dd>\n </div>\n</dl>\n", styles: [".sky-description-list{margin:0;padding:0}.sky-description-list dt{color:#686c73;font-size:14px;font-weight:400;margin:0 0 3px;padding:0}.sky-description-list dd{margin:0;padding:0}.sky-description-list.sky-description-list-vertical-mode .sky-description-list-content{margin:0 0 15px;width:auto}.sky-description-list.sky-description-list-horizontal-mode{display:flex;flex-wrap:wrap}.sky-description-list.sky-description-list-horizontal-mode .sky-description-list-content{margin:0 0 15px;padding:0 60px 0 0;min-width:100px;width:auto}.sky-description-list.sky-description-list-horizontal-mode.sky-responsive-container-xs .sky-description-list-content,.sky-description-list.sky-description-list-horizontal-mode.sky-responsive-container-sm .sky-description-list-content{width:50%}.sky-description-list.sky-description-list-long-description-mode .sky-description-list-content{display:flex}.sky-description-list.sky-description-list-long-description-mode .sky-description-list-content:not(:last-child){margin:0 0 10px}.sky-description-list.sky-description-list-long-description-mode .sky-description-list-content dt{color:#212327;font-size:16px;font-weight:600;margin:0 20px 0 0;width:25%;word-break:break-word}.sky-description-list.sky-description-list-long-description-mode .sky-description-list-content dd{flex:1}.sky-description-list.sky-description-list-long-description-mode.sky-responsive-container-xs .sky-description-list-content{flex-direction:column}.sky-description-list.sky-description-list-long-description-mode.sky-responsive-container-xs .sky-description-list-content dt{margin:0 0 3px;width:100%}.sky-description-list.sky-description-list-long-description-mode.sky-responsive-container-xs .sky-description-list-content dd{margin:0 0 10px}:host-context(.sky-theme-modern) .sky-description-list.sky-description-list-vertical-mode .sky-description-list-content{margin:0 0 20px}:host-context(.sky-theme-modern) .sky-description-list.sky-description-list-vertical-mode dt{color:#686c73;font-size:14px;font-weight:400}:host-context(.sky-theme-modern) .sky-description-list.sky-description-list-vertical-mode dd{font-size:16px;font-weight:400}:host-context(.sky-theme-modern) .sky-description-list.sky-description-list-horizontal-mode{margin:0 0 -20px}:host-context(.sky-theme-modern) .sky-description-list.sky-description-list-horizontal-mode .sky-description-list-content{margin:0 0 20px}:host-context(.sky-theme-modern) .sky-description-list.sky-description-list-long-description-mode dt{color:inherit;font-weight:700;font-size:inherit}:host-context(.sky-theme-modern) .sky-description-list.sky-description-list-long-description-mode dd{font-size:16px;font-weight:400}:host-context(.sky-theme-modern) .sky-description-list.sky-description-list-long-description-mode.sky-responsive-container-xs dt{margin:0 0 5px}:host-context(.sky-theme-modern) .sky-description-list.sky-description-list-long-description-mode.sky-responsive-container-xs dd{margin:0 0 20px}.sky-theme-modern .sky-description-list.sky-description-list-vertical-mode .sky-description-list-content{margin:0 0 20px}.sky-theme-modern .sky-description-list.sky-description-list-vertical-mode dt{color:#686c73;font-size:14px;font-weight:400}.sky-theme-modern .sky-description-list.sky-description-list-vertical-mode dd{font-size:16px;font-weight:400}.sky-theme-modern .sky-description-list.sky-description-list-horizontal-mode{margin:0 0 -20px}.sky-theme-modern .sky-description-list.sky-description-list-horizontal-mode .sky-description-list-content{margin:0 0 20px}.sky-theme-modern .sky-description-list.sky-description-list-long-description-mode dt{color:inherit;font-weight:700;font-size:inherit}.sky-theme-modern .sky-description-list.sky-description-list-long-description-mode dd{font-size:16px;font-weight:400}.sky-theme-modern .sky-description-list.sky-description-list-long-description-mode.sky-responsive-container-xs dt{margin:0 0 5px}.sky-theme-modern .sky-description-list.sky-description-list-long-description-mode.sky-responsive-container-xs dd{margin:0 0 20px}\n"], dependencies: [{ kind: "directive", type: i1.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i1.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i1.NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush });
1556
1609
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.2.0", ngImport: i0, type: SkyDescriptionListComponent, decorators: [{
1557
1610
  type: Component,
1558
- args: [{ selector: 'sky-description-list', providers: [SkyDescriptionListAdapterService, SkyDescriptionListService], changeDetection: ChangeDetectionStrategy.OnPush, template: "<dl\n class=\"sky-description-list\"\n [ngClass]=\"{\n 'sky-description-list-long-description-mode': mode === 'longDescription',\n 'sky-description-list-vertical-mode': mode === 'vertical',\n 'sky-description-list-horizontal-mode': mode === 'horizontal'\n }\"\n #descriptionListElement\n>\n <!--\n Wrapping div is for horizontal flexing. Also injecting children's templateRef directly\n to avoid adding non-semantic HTML tags to DOM\n -->\n <div\n *ngFor=\"let contentComponent of contentComponents\"\n class=\"sky-description-list-content\"\n [style.width]=\"mode === 'horizontal' ? listItemWidth : ''\"\n >\n <dt *ngFor=\"let termComponent of contentComponent?.termComponents\">\n <ng-container\n *ngTemplateOutlet=\"termComponent.templateRef\"\n ></ng-container>\n </dt>\n <dd\n *ngFor=\"\n let descriptionComponent of contentComponent?.descriptionComponents\n \"\n >\n <ng-container\n *ngTemplateOutlet=\"descriptionComponent.templateRef\"\n ></ng-container>\n </dd>\n </div>\n</dl>\n", styles: [".sky-description-list{margin:0;padding:0}.sky-description-list dt{color:#686c73;font-size:14px;font-weight:400;margin:0 0 3px;padding:0}.sky-description-list dd{margin:0;padding:0}.sky-description-list.sky-description-list-vertical-mode .sky-description-list-content{margin:0 0 15px;width:auto}.sky-description-list.sky-description-list-horizontal-mode{display:flex;flex-wrap:wrap}.sky-description-list.sky-description-list-horizontal-mode .sky-description-list-content{margin:0 0 15px;padding:0 60px 0 0;min-width:100px;width:auto}.sky-description-list.sky-description-list-horizontal-mode.sky-responsive-container-xs .sky-description-list-content,.sky-description-list.sky-description-list-horizontal-mode.sky-responsive-container-sm .sky-description-list-content{width:50%}.sky-description-list.sky-description-list-long-description-mode .sky-description-list-content{display:flex}.sky-description-list.sky-description-list-long-description-mode .sky-description-list-content:not(:last-child){margin:0 0 10px}.sky-description-list.sky-description-list-long-description-mode .sky-description-list-content dt{color:#212327;font-size:16px;font-weight:600;margin:0 20px 0 0;width:25%;word-break:break-word}.sky-description-list.sky-description-list-long-description-mode .sky-description-list-content dd{flex:1}.sky-description-list.sky-description-list-long-description-mode.sky-responsive-container-xs .sky-description-list-content{flex-direction:column}.sky-description-list.sky-description-list-long-description-mode.sky-responsive-container-xs .sky-description-list-content dt{margin:0 0 3px;width:100%}.sky-description-list.sky-description-list-long-description-mode.sky-responsive-container-xs .sky-description-list-content dd{margin:0 0 10px}:host-context(.sky-theme-modern) .sky-description-list.sky-description-list-vertical-mode .sky-description-list-content{margin:0 0 20px}:host-context(.sky-theme-modern) .sky-description-list.sky-description-list-vertical-mode dt{color:#686c73;font-size:14px;font-weight:400}:host-context(.sky-theme-modern) .sky-description-list.sky-description-list-vertical-mode dd{font-size:16px;font-weight:400}:host-context(.sky-theme-modern) .sky-description-list.sky-description-list-horizontal-mode{margin:0 0 -20px}:host-context(.sky-theme-modern) .sky-description-list.sky-description-list-horizontal-mode .sky-description-list-content{margin:0 0 20px}:host-context(.sky-theme-modern) .sky-description-list.sky-description-list-long-description-mode dt{color:inherit;font-weight:700;font-size:inherit}:host-context(.sky-theme-modern) .sky-description-list.sky-description-list-long-description-mode dd{font-size:16px;font-weight:400}:host-context(.sky-theme-modern) .sky-description-list.sky-description-list-long-description-mode.sky-responsive-container-xs dt{margin:0 0 5px}:host-context(.sky-theme-modern) .sky-description-list.sky-description-list-long-description-mode.sky-responsive-container-xs dd{margin:0 0 20px}.sky-theme-modern .sky-description-list.sky-description-list-vertical-mode .sky-description-list-content{margin:0 0 20px}.sky-theme-modern .sky-description-list.sky-description-list-vertical-mode dt{color:#686c73;font-size:14px;font-weight:400}.sky-theme-modern .sky-description-list.sky-description-list-vertical-mode dd{font-size:16px;font-weight:400}.sky-theme-modern .sky-description-list.sky-description-list-horizontal-mode{margin:0 0 -20px}.sky-theme-modern .sky-description-list.sky-description-list-horizontal-mode .sky-description-list-content{margin:0 0 20px}.sky-theme-modern .sky-description-list.sky-description-list-long-description-mode dt{color:inherit;font-weight:700;font-size:inherit}.sky-theme-modern .sky-description-list.sky-description-list-long-description-mode dd{font-size:16px;font-weight:400}.sky-theme-modern .sky-description-list.sky-description-list-long-description-mode.sky-responsive-container-xs dt{margin:0 0 5px}.sky-theme-modern .sky-description-list.sky-description-list-long-description-mode.sky-responsive-container-xs dd{margin:0 0 20px}\n"] }]
1611
+ args: [{ selector: 'sky-description-list', providers: [SkyDescriptionListAdapterService, SkyDescriptionListService], changeDetection: ChangeDetectionStrategy.OnPush, template: "<dl\n class=\"sky-description-list\"\n [ngClass]=\"{\n 'sky-description-list-long-description-mode': mode === 'longDescription',\n 'sky-description-list-vertical-mode': mode === 'vertical',\n 'sky-description-list-horizontal-mode': mode === 'horizontal'\n }\"\n #descriptionListElement\n>\n <!--\n Wrapping div is for horizontal flexing. Also injecting children's templateRef directly\n to avoid adding non-semantic HTML tags to DOM\n -->\n <div\n *ngFor=\"let contentComponent of contentComponents\"\n class=\"sky-description-list-content\"\n [style.width]=\"mode === 'horizontal' ? listItemWidth : ''\"\n >\n <dt *ngFor=\"let termComponent of contentComponent?.termComponents\">\n <ng-container *ngIf=\"termComponent.templateRef\">\n <ng-container\n *ngTemplateOutlet=\"termComponent.templateRef\"\n ></ng-container>\n </ng-container>\n </dt>\n <dd\n *ngFor=\"\n let descriptionComponent of contentComponent?.descriptionComponents\n \"\n >\n <ng-container *ngIf=\"descriptionComponent.templateRef\">\n <ng-container\n *ngTemplateOutlet=\"descriptionComponent.templateRef\"\n ></ng-container>\n </ng-container>\n </dd>\n </div>\n</dl>\n", styles: [".sky-description-list{margin:0;padding:0}.sky-description-list dt{color:#686c73;font-size:14px;font-weight:400;margin:0 0 3px;padding:0}.sky-description-list dd{margin:0;padding:0}.sky-description-list.sky-description-list-vertical-mode .sky-description-list-content{margin:0 0 15px;width:auto}.sky-description-list.sky-description-list-horizontal-mode{display:flex;flex-wrap:wrap}.sky-description-list.sky-description-list-horizontal-mode .sky-description-list-content{margin:0 0 15px;padding:0 60px 0 0;min-width:100px;width:auto}.sky-description-list.sky-description-list-horizontal-mode.sky-responsive-container-xs .sky-description-list-content,.sky-description-list.sky-description-list-horizontal-mode.sky-responsive-container-sm .sky-description-list-content{width:50%}.sky-description-list.sky-description-list-long-description-mode .sky-description-list-content{display:flex}.sky-description-list.sky-description-list-long-description-mode .sky-description-list-content:not(:last-child){margin:0 0 10px}.sky-description-list.sky-description-list-long-description-mode .sky-description-list-content dt{color:#212327;font-size:16px;font-weight:600;margin:0 20px 0 0;width:25%;word-break:break-word}.sky-description-list.sky-description-list-long-description-mode .sky-description-list-content dd{flex:1}.sky-description-list.sky-description-list-long-description-mode.sky-responsive-container-xs .sky-description-list-content{flex-direction:column}.sky-description-list.sky-description-list-long-description-mode.sky-responsive-container-xs .sky-description-list-content dt{margin:0 0 3px;width:100%}.sky-description-list.sky-description-list-long-description-mode.sky-responsive-container-xs .sky-description-list-content dd{margin:0 0 10px}:host-context(.sky-theme-modern) .sky-description-list.sky-description-list-vertical-mode .sky-description-list-content{margin:0 0 20px}:host-context(.sky-theme-modern) .sky-description-list.sky-description-list-vertical-mode dt{color:#686c73;font-size:14px;font-weight:400}:host-context(.sky-theme-modern) .sky-description-list.sky-description-list-vertical-mode dd{font-size:16px;font-weight:400}:host-context(.sky-theme-modern) .sky-description-list.sky-description-list-horizontal-mode{margin:0 0 -20px}:host-context(.sky-theme-modern) .sky-description-list.sky-description-list-horizontal-mode .sky-description-list-content{margin:0 0 20px}:host-context(.sky-theme-modern) .sky-description-list.sky-description-list-long-description-mode dt{color:inherit;font-weight:700;font-size:inherit}:host-context(.sky-theme-modern) .sky-description-list.sky-description-list-long-description-mode dd{font-size:16px;font-weight:400}:host-context(.sky-theme-modern) .sky-description-list.sky-description-list-long-description-mode.sky-responsive-container-xs dt{margin:0 0 5px}:host-context(.sky-theme-modern) .sky-description-list.sky-description-list-long-description-mode.sky-responsive-container-xs dd{margin:0 0 20px}.sky-theme-modern .sky-description-list.sky-description-list-vertical-mode .sky-description-list-content{margin:0 0 20px}.sky-theme-modern .sky-description-list.sky-description-list-vertical-mode dt{color:#686c73;font-size:14px;font-weight:400}.sky-theme-modern .sky-description-list.sky-description-list-vertical-mode dd{font-size:16px;font-weight:400}.sky-theme-modern .sky-description-list.sky-description-list-horizontal-mode{margin:0 0 -20px}.sky-theme-modern .sky-description-list.sky-description-list-horizontal-mode .sky-description-list-content{margin:0 0 20px}.sky-theme-modern .sky-description-list.sky-description-list-long-description-mode dt{color:inherit;font-weight:700;font-size:inherit}.sky-theme-modern .sky-description-list.sky-description-list-long-description-mode dd{font-size:16px;font-weight:400}.sky-theme-modern .sky-description-list.sky-description-list-long-description-mode.sky-responsive-container-xs dt{margin:0 0 5px}.sky-theme-modern .sky-description-list.sky-description-list-long-description-mode.sky-responsive-container-xs dd{margin:0 0 20px}\n"] }]
1559
1612
  }], ctorParameters: function () { return [{ type: SkyDescriptionListAdapterService }, { type: i0.ChangeDetectorRef }, { type: SkyDescriptionListService }]; }, propDecorators: { defaultDescription: [{
1560
1613
  type: Input
1561
1614
  }], listItemWidth: [{
@@ -1644,30 +1697,26 @@ var SkyDescriptionListMode;
1644
1697
  SkyDescriptionListMode["vertical"] = "vertical";
1645
1698
  })(SkyDescriptionListMode || (SkyDescriptionListMode = {}));
1646
1699
 
1647
- /**
1648
- * @deprecated Use `SkyFluidGridGutterSizeType` instead.
1649
- * @internal
1650
- */
1651
- var SkyFluidGridGutterSize;
1652
- (function (SkyFluidGridGutterSize) {
1653
- /**
1654
- * Specifies a small gutter.
1655
- */
1656
- SkyFluidGridGutterSize[SkyFluidGridGutterSize["Small"] = 0] = "Small";
1657
- /**
1658
- * Specifies a medium gutter.
1659
- */
1660
- SkyFluidGridGutterSize[SkyFluidGridGutterSize["Medium"] = 1] = "Medium";
1661
- /**
1662
- * Specifies a large gutter.
1663
- */
1664
- SkyFluidGridGutterSize[SkyFluidGridGutterSize["Large"] = 2] = "Large";
1665
- })(SkyFluidGridGutterSize || (SkyFluidGridGutterSize = {}));
1666
-
1700
+ var _SkyColumnComponent__screenXSmall;
1667
1701
  /**
1668
1702
  * Displays a column within a row of the fluid grid.
1669
1703
  */
1670
1704
  class SkyColumnComponent {
1705
+ constructor() {
1706
+ _SkyColumnComponent__screenXSmall.set(this, 12);
1707
+ }
1708
+ /**
1709
+ * Specifies the number of columns (1-12) to use on extra-small screens
1710
+ * (less than 768px). If you do not specify a value, the fluid grid displays
1711
+ * the column at the full width of the screen.
1712
+ * @default 12
1713
+ */
1714
+ set screenXSmall(value) {
1715
+ __classPrivateFieldSet(this, _SkyColumnComponent__screenXSmall, value ?? 12, "f");
1716
+ }
1717
+ get screenXSmall() {
1718
+ return __classPrivateFieldGet(this, _SkyColumnComponent__screenXSmall, "f");
1719
+ }
1671
1720
  ngOnChanges(changes) {
1672
1721
  /* istanbul ignore else */
1673
1722
  if (changes.screenXSmall ||
@@ -1697,6 +1746,7 @@ class SkyColumnComponent {
1697
1746
  this.classnames = this.getClassNames();
1698
1747
  }
1699
1748
  }
1749
+ _SkyColumnComponent__screenXSmall = new WeakMap();
1700
1750
  SkyColumnComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.2.0", ngImport: i0, type: SkyColumnComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
1701
1751
  SkyColumnComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "14.2.0", type: SkyColumnComponent, selector: "sky-column", inputs: { screenXSmall: "screenXSmall", screenSmall: "screenSmall", screenMedium: "screenMedium", screenLarge: "screenLarge" }, host: { properties: { "class": "this.classnames" } }, usesOnChanges: true, ngImport: i0, template: "<ng-content></ng-content>\n", styles: ["sky-column.sky-column{padding-right:15px;padding-left:15px;width:100%;min-height:1px}.sky-theme-modern sky-column.sky-column{padding-right:30px;padding-left:30px}.sky-fluid-grid-gutter-size-small sky-column.sky-column{padding-right:5px;padding-left:5px}.sky-fluid-grid-gutter-size-medium sky-column.sky-column{padding-right:10px;padding-left:10px}.sky-theme-modern .sky-fluid-grid-gutter-size-small sky-column.sky-column{padding-right:10px;padding-left:10px}.sky-theme-modern .sky-fluid-grid-gutter-size-medium sky-column.sky-column{padding-right:15px;padding-left:15px}sky-column.sky-column-xs-1{width:calc(1 / 12 * 100%)}sky-column.sky-column-xs-2{width:calc(2 / 12 * 100%)}sky-column.sky-column-xs-3{width:25%}sky-column.sky-column-xs-4{width:calc(4 / 12 * 100%)}sky-column.sky-column-xs-5{width:calc(5 / 12 * 100%)}sky-column.sky-column-xs-6{width:50%}sky-column.sky-column-xs-7{width:calc(7 / 12 * 100%)}sky-column.sky-column-xs-8{width:calc(8 / 12 * 100%)}sky-column.sky-column-xs-9{width:75%}sky-column.sky-column-xs-10{width:calc(10 / 12 * 100%)}sky-column.sky-column-xs-11{width:calc(11 / 12 * 100%)}sky-column.sky-column-xs-12{width:100%}sky-column:not([class*=sky-column-xs-]){width:100%}.sky-responsive-container-xs sky-column.sky-column-xs-1,.sky-responsive-container-sm sky-column.sky-column-xs-1,.sky-responsive-container-md sky-column.sky-column-xs-1,.sky-responsive-container-lg sky-column.sky-column-xs-1{width:calc(1 / 12 * 100%)}.sky-responsive-container-xs sky-column.sky-column-xs-2,.sky-responsive-container-sm sky-column.sky-column-xs-2,.sky-responsive-container-md sky-column.sky-column-xs-2,.sky-responsive-container-lg sky-column.sky-column-xs-2{width:calc(2 / 12 * 100%)}.sky-responsive-container-xs sky-column.sky-column-xs-3,.sky-responsive-container-sm sky-column.sky-column-xs-3,.sky-responsive-container-md sky-column.sky-column-xs-3,.sky-responsive-container-lg sky-column.sky-column-xs-3{width:25%}.sky-responsive-container-xs sky-column.sky-column-xs-4,.sky-responsive-container-sm sky-column.sky-column-xs-4,.sky-responsive-container-md sky-column.sky-column-xs-4,.sky-responsive-container-lg sky-column.sky-column-xs-4{width:calc(4 / 12 * 100%)}.sky-responsive-container-xs sky-column.sky-column-xs-5,.sky-responsive-container-sm sky-column.sky-column-xs-5,.sky-responsive-container-md sky-column.sky-column-xs-5,.sky-responsive-container-lg sky-column.sky-column-xs-5{width:calc(5 / 12 * 100%)}.sky-responsive-container-xs sky-column.sky-column-xs-6,.sky-responsive-container-sm sky-column.sky-column-xs-6,.sky-responsive-container-md sky-column.sky-column-xs-6,.sky-responsive-container-lg sky-column.sky-column-xs-6{width:50%}.sky-responsive-container-xs sky-column.sky-column-xs-7,.sky-responsive-container-sm sky-column.sky-column-xs-7,.sky-responsive-container-md sky-column.sky-column-xs-7,.sky-responsive-container-lg sky-column.sky-column-xs-7{width:calc(7 / 12 * 100%)}.sky-responsive-container-xs sky-column.sky-column-xs-8,.sky-responsive-container-sm sky-column.sky-column-xs-8,.sky-responsive-container-md sky-column.sky-column-xs-8,.sky-responsive-container-lg sky-column.sky-column-xs-8{width:calc(8 / 12 * 100%)}.sky-responsive-container-xs sky-column.sky-column-xs-9,.sky-responsive-container-sm sky-column.sky-column-xs-9,.sky-responsive-container-md sky-column.sky-column-xs-9,.sky-responsive-container-lg sky-column.sky-column-xs-9{width:75%}.sky-responsive-container-xs sky-column.sky-column-xs-10,.sky-responsive-container-sm sky-column.sky-column-xs-10,.sky-responsive-container-md sky-column.sky-column-xs-10,.sky-responsive-container-lg sky-column.sky-column-xs-10{width:calc(10 / 12 * 100%)}.sky-responsive-container-xs sky-column.sky-column-xs-11,.sky-responsive-container-sm sky-column.sky-column-xs-11,.sky-responsive-container-md sky-column.sky-column-xs-11,.sky-responsive-container-lg sky-column.sky-column-xs-11{width:calc(11 / 12 * 100%)}.sky-responsive-container-xs sky-column.sky-column-xs-12,.sky-responsive-container-sm sky-column.sky-column-xs-12,.sky-responsive-container-md sky-column.sky-column-xs-12,.sky-responsive-container-lg sky-column.sky-column-xs-12{width:100%}.sky-responsive-container-xs sky-column:not([class*=sky-column-xs-]),.sky-responsive-container-sm sky-column:not([class*=sky-column-xs-]),.sky-responsive-container-md sky-column:not([class*=sky-column-xs-]),.sky-responsive-container-lg sky-column:not([class*=sky-column-xs-]){width:100%}@media (min-width: 768px){sky-column.sky-column-sm-1{width:calc(1 / 12 * 100%)}sky-column.sky-column-sm-2{width:calc(2 / 12 * 100%)}sky-column.sky-column-sm-3{width:25%}sky-column.sky-column-sm-4{width:calc(4 / 12 * 100%)}sky-column.sky-column-sm-5{width:calc(5 / 12 * 100%)}sky-column.sky-column-sm-6{width:50%}sky-column.sky-column-sm-7{width:calc(7 / 12 * 100%)}sky-column.sky-column-sm-8{width:calc(8 / 12 * 100%)}sky-column.sky-column-sm-9{width:75%}sky-column.sky-column-sm-10{width:calc(10 / 12 * 100%)}sky-column.sky-column-sm-11{width:calc(11 / 12 * 100%)}sky-column.sky-column-sm-12{width:100%}}.sky-responsive-container-sm sky-column.sky-column-sm-1,.sky-responsive-container-md sky-column.sky-column-sm-1,.sky-responsive-container-lg sky-column.sky-column-sm-1{width:calc(1 / 12 * 100%)}.sky-responsive-container-sm sky-column.sky-column-sm-2,.sky-responsive-container-md sky-column.sky-column-sm-2,.sky-responsive-container-lg sky-column.sky-column-sm-2{width:calc(2 / 12 * 100%)}.sky-responsive-container-sm sky-column.sky-column-sm-3,.sky-responsive-container-md sky-column.sky-column-sm-3,.sky-responsive-container-lg sky-column.sky-column-sm-3{width:25%}.sky-responsive-container-sm sky-column.sky-column-sm-4,.sky-responsive-container-md sky-column.sky-column-sm-4,.sky-responsive-container-lg sky-column.sky-column-sm-4{width:calc(4 / 12 * 100%)}.sky-responsive-container-sm sky-column.sky-column-sm-5,.sky-responsive-container-md sky-column.sky-column-sm-5,.sky-responsive-container-lg sky-column.sky-column-sm-5{width:calc(5 / 12 * 100%)}.sky-responsive-container-sm sky-column.sky-column-sm-6,.sky-responsive-container-md sky-column.sky-column-sm-6,.sky-responsive-container-lg sky-column.sky-column-sm-6{width:50%}.sky-responsive-container-sm sky-column.sky-column-sm-7,.sky-responsive-container-md sky-column.sky-column-sm-7,.sky-responsive-container-lg sky-column.sky-column-sm-7{width:calc(7 / 12 * 100%)}.sky-responsive-container-sm sky-column.sky-column-sm-8,.sky-responsive-container-md sky-column.sky-column-sm-8,.sky-responsive-container-lg sky-column.sky-column-sm-8{width:calc(8 / 12 * 100%)}.sky-responsive-container-sm sky-column.sky-column-sm-9,.sky-responsive-container-md sky-column.sky-column-sm-9,.sky-responsive-container-lg sky-column.sky-column-sm-9{width:75%}.sky-responsive-container-sm sky-column.sky-column-sm-10,.sky-responsive-container-md sky-column.sky-column-sm-10,.sky-responsive-container-lg sky-column.sky-column-sm-10{width:calc(10 / 12 * 100%)}.sky-responsive-container-sm sky-column.sky-column-sm-11,.sky-responsive-container-md sky-column.sky-column-sm-11,.sky-responsive-container-lg sky-column.sky-column-sm-11{width:calc(11 / 12 * 100%)}.sky-responsive-container-sm sky-column.sky-column-sm-12,.sky-responsive-container-md sky-column.sky-column-sm-12,.sky-responsive-container-lg sky-column.sky-column-sm-12{width:100%}@media (min-width: 992px){sky-column.sky-column-md-1{width:calc(1 / 12 * 100%)}sky-column.sky-column-md-2{width:calc(2 / 12 * 100%)}sky-column.sky-column-md-3{width:25%}sky-column.sky-column-md-4{width:calc(4 / 12 * 100%)}sky-column.sky-column-md-5{width:calc(5 / 12 * 100%)}sky-column.sky-column-md-6{width:50%}sky-column.sky-column-md-7{width:calc(7 / 12 * 100%)}sky-column.sky-column-md-8{width:calc(8 / 12 * 100%)}sky-column.sky-column-md-9{width:75%}sky-column.sky-column-md-10{width:calc(10 / 12 * 100%)}sky-column.sky-column-md-11{width:calc(11 / 12 * 100%)}sky-column.sky-column-md-12{width:100%}}.sky-responsive-container-md sky-column.sky-column-md-1,.sky-responsive-container-lg sky-column.sky-column-md-1{width:calc(1 / 12 * 100%)}.sky-responsive-container-md sky-column.sky-column-md-2,.sky-responsive-container-lg sky-column.sky-column-md-2{width:calc(2 / 12 * 100%)}.sky-responsive-container-md sky-column.sky-column-md-3,.sky-responsive-container-lg sky-column.sky-column-md-3{width:25%}.sky-responsive-container-md sky-column.sky-column-md-4,.sky-responsive-container-lg sky-column.sky-column-md-4{width:calc(4 / 12 * 100%)}.sky-responsive-container-md sky-column.sky-column-md-5,.sky-responsive-container-lg sky-column.sky-column-md-5{width:calc(5 / 12 * 100%)}.sky-responsive-container-md sky-column.sky-column-md-6,.sky-responsive-container-lg sky-column.sky-column-md-6{width:50%}.sky-responsive-container-md sky-column.sky-column-md-7,.sky-responsive-container-lg sky-column.sky-column-md-7{width:calc(7 / 12 * 100%)}.sky-responsive-container-md sky-column.sky-column-md-8,.sky-responsive-container-lg sky-column.sky-column-md-8{width:calc(8 / 12 * 100%)}.sky-responsive-container-md sky-column.sky-column-md-9,.sky-responsive-container-lg sky-column.sky-column-md-9{width:75%}.sky-responsive-container-md sky-column.sky-column-md-10,.sky-responsive-container-lg sky-column.sky-column-md-10{width:calc(10 / 12 * 100%)}.sky-responsive-container-md sky-column.sky-column-md-11,.sky-responsive-container-lg sky-column.sky-column-md-11{width:calc(11 / 12 * 100%)}.sky-responsive-container-md sky-column.sky-column-md-12,.sky-responsive-container-lg sky-column.sky-column-md-12{width:100%}@media (min-width: 1200px){sky-column.sky-column-lg-1{width:calc(1 / 12 * 100%)}sky-column.sky-column-lg-2{width:calc(2 / 12 * 100%)}sky-column.sky-column-lg-3{width:25%}sky-column.sky-column-lg-4{width:calc(4 / 12 * 100%)}sky-column.sky-column-lg-5{width:calc(5 / 12 * 100%)}sky-column.sky-column-lg-6{width:50%}sky-column.sky-column-lg-7{width:calc(7 / 12 * 100%)}sky-column.sky-column-lg-8{width:calc(8 / 12 * 100%)}sky-column.sky-column-lg-9{width:75%}sky-column.sky-column-lg-10{width:calc(10 / 12 * 100%)}sky-column.sky-column-lg-11{width:calc(11 / 12 * 100%)}sky-column.sky-column-lg-12{width:100%}}.sky-responsive-container-lg sky-column.sky-column-lg-1{width:calc(1 / 12 * 100%)}.sky-responsive-container-lg sky-column.sky-column-lg-2{width:calc(2 / 12 * 100%)}.sky-responsive-container-lg sky-column.sky-column-lg-3{width:25%}.sky-responsive-container-lg sky-column.sky-column-lg-4{width:calc(4 / 12 * 100%)}.sky-responsive-container-lg sky-column.sky-column-lg-5{width:calc(5 / 12 * 100%)}.sky-responsive-container-lg sky-column.sky-column-lg-6{width:50%}.sky-responsive-container-lg sky-column.sky-column-lg-7{width:calc(7 / 12 * 100%)}.sky-responsive-container-lg sky-column.sky-column-lg-8{width:calc(8 / 12 * 100%)}.sky-responsive-container-lg sky-column.sky-column-lg-9{width:75%}.sky-responsive-container-lg sky-column.sky-column-lg-10{width:calc(10 / 12 * 100%)}.sky-responsive-container-lg sky-column.sky-column-lg-11{width:calc(11 / 12 * 100%)}.sky-responsive-container-lg sky-column.sky-column-lg-12{width:100%}\n"], encapsulation: i0.ViewEncapsulation.None });
1702
1752
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.2.0", ngImport: i0, type: SkyColumnComponent, decorators: [{
@@ -1715,20 +1765,19 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.2.0", ngImpor
1715
1765
  args: ['class']
1716
1766
  }] } });
1717
1767
 
1768
+ var _SkyFluidGridComponent__gutterSize;
1718
1769
  /**
1719
1770
  * Wraps the fluid grid to ensure proper spacing. Without the wrapper, the
1720
1771
  * alignment, padding, and margins do not behave as expected.
1721
1772
  */
1722
1773
  class SkyFluidGridComponent {
1723
- /**
1724
- * Disables the outer left and right margin of the fluid grid container.
1725
- * @default false
1726
- */
1727
- set disableMargin(value) {
1728
- this._disableMargin = value;
1729
- }
1730
- get disableMargin() {
1731
- return this._disableMargin || false;
1774
+ constructor() {
1775
+ /**
1776
+ * Disables the outer left and right margin of the fluid grid container.
1777
+ * @default false
1778
+ */
1779
+ this.disableMargin = false;
1780
+ _SkyFluidGridComponent__gutterSize.set(this, 'large');
1732
1781
  }
1733
1782
  /**
1734
1783
  * Specifies a `SkyFluidGridGutterSizeType` to define the size of the padding
@@ -1736,37 +1785,18 @@ class SkyFluidGridComponent {
1736
1785
  * @default "large"
1737
1786
  */
1738
1787
  set gutterSize(value) {
1739
- this._gutterSize = value;
1788
+ __classPrivateFieldSet(this, _SkyFluidGridComponent__gutterSize, value ?? 'large', "f");
1740
1789
  }
1741
1790
  get gutterSize() {
1742
- return this._gutterSize === undefined ? 'large' : this._gutterSize;
1743
- }
1744
- /**
1745
- * @internal
1746
- */
1747
- get gutterSizeResolved() {
1748
- // Before this change, the template did a `==` comparison, implicitly converting numerical
1749
- // string values to their numeric values before comparing them. Checking for the numerical
1750
- // string value in addition to the values allowed by the type maintains this behavior.
1751
- switch (this.gutterSize) {
1752
- case 'medium':
1753
- case SkyFluidGridGutterSize.Medium:
1754
- case SkyFluidGridGutterSize.Medium.toString():
1755
- return 'medium';
1756
- case 'small':
1757
- case SkyFluidGridGutterSize.Small:
1758
- case SkyFluidGridGutterSize.Small.toString():
1759
- return 'small';
1760
- default:
1761
- return 'large';
1762
- }
1791
+ return __classPrivateFieldGet(this, _SkyFluidGridComponent__gutterSize, "f");
1763
1792
  }
1764
1793
  }
1794
+ _SkyFluidGridComponent__gutterSize = new WeakMap();
1765
1795
  SkyFluidGridComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.2.0", ngImport: i0, type: SkyFluidGridComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
1766
- SkyFluidGridComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "14.2.0", type: SkyFluidGridComponent, selector: "sky-fluid-grid", inputs: { disableMargin: "disableMargin", gutterSize: "gutterSize" }, ngImport: i0, template: "<div\n class=\"sky-fluid-grid\"\n [ngClass]=\"{\n 'sky-fluid-grid-gutter-size-small': gutterSizeResolved === 'small',\n 'sky-fluid-grid-gutter-size-medium': gutterSizeResolved === 'medium',\n 'sky-fluid-grid-gutter-size-large': gutterSizeResolved === 'large',\n 'sky-fluid-grid-no-margin': disableMargin\n }\"\n>\n <ng-content></ng-content>\n</div>\n", styles: [".sky-fluid-grid-gutter-size-small{padding-left:5px;padding-right:5px}.sky-fluid-grid-gutter-size-medium{padding-left:10px;padding-right:10px}.sky-fluid-grid-gutter-size-large{padding-left:15px;padding-right:15px}:host-context(.sky-theme-modern) .sky-fluid-grid-gutter-size-small{padding-left:10px;padding-right:10px}:host-context(.sky-theme-modern) .sky-fluid-grid-gutter-size-medium{padding-left:15px;padding-right:15px}:host-context(.sky-theme-modern) .sky-fluid-grid-gutter-size-large{padding-left:30px;padding-right:30px}\n"], dependencies: [{ kind: "directive", type: i1.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }] });
1796
+ SkyFluidGridComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "14.2.0", type: SkyFluidGridComponent, selector: "sky-fluid-grid", inputs: { disableMargin: "disableMargin", gutterSize: "gutterSize" }, ngImport: i0, template: "<div\n class=\"sky-fluid-grid\"\n [ngClass]=\"{\n 'sky-fluid-grid-gutter-size-small': gutterSize === 'small',\n 'sky-fluid-grid-gutter-size-medium': gutterSize === 'medium',\n 'sky-fluid-grid-gutter-size-large': gutterSize === 'large',\n 'sky-fluid-grid-no-margin': disableMargin\n }\"\n>\n <ng-content></ng-content>\n</div>\n", styles: [".sky-fluid-grid-gutter-size-small{padding-left:5px;padding-right:5px}.sky-fluid-grid-gutter-size-medium{padding-left:10px;padding-right:10px}.sky-fluid-grid-gutter-size-large{padding-left:15px;padding-right:15px}:host-context(.sky-theme-modern) .sky-fluid-grid-gutter-size-small{padding-left:10px;padding-right:10px}:host-context(.sky-theme-modern) .sky-fluid-grid-gutter-size-medium{padding-left:15px;padding-right:15px}:host-context(.sky-theme-modern) .sky-fluid-grid-gutter-size-large{padding-left:30px;padding-right:30px}\n"], dependencies: [{ kind: "directive", type: i1.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }] });
1767
1797
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.2.0", ngImport: i0, type: SkyFluidGridComponent, decorators: [{
1768
1798
  type: Component,
1769
- args: [{ selector: 'sky-fluid-grid', template: "<div\n class=\"sky-fluid-grid\"\n [ngClass]=\"{\n 'sky-fluid-grid-gutter-size-small': gutterSizeResolved === 'small',\n 'sky-fluid-grid-gutter-size-medium': gutterSizeResolved === 'medium',\n 'sky-fluid-grid-gutter-size-large': gutterSizeResolved === 'large',\n 'sky-fluid-grid-no-margin': disableMargin\n }\"\n>\n <ng-content></ng-content>\n</div>\n", styles: [".sky-fluid-grid-gutter-size-small{padding-left:5px;padding-right:5px}.sky-fluid-grid-gutter-size-medium{padding-left:10px;padding-right:10px}.sky-fluid-grid-gutter-size-large{padding-left:15px;padding-right:15px}:host-context(.sky-theme-modern) .sky-fluid-grid-gutter-size-small{padding-left:10px;padding-right:10px}:host-context(.sky-theme-modern) .sky-fluid-grid-gutter-size-medium{padding-left:15px;padding-right:15px}:host-context(.sky-theme-modern) .sky-fluid-grid-gutter-size-large{padding-left:30px;padding-right:30px}\n"] }]
1799
+ args: [{ selector: 'sky-fluid-grid', template: "<div\n class=\"sky-fluid-grid\"\n [ngClass]=\"{\n 'sky-fluid-grid-gutter-size-small': gutterSize === 'small',\n 'sky-fluid-grid-gutter-size-medium': gutterSize === 'medium',\n 'sky-fluid-grid-gutter-size-large': gutterSize === 'large',\n 'sky-fluid-grid-no-margin': disableMargin\n }\"\n>\n <ng-content></ng-content>\n</div>\n", styles: [".sky-fluid-grid-gutter-size-small{padding-left:5px;padding-right:5px}.sky-fluid-grid-gutter-size-medium{padding-left:10px;padding-right:10px}.sky-fluid-grid-gutter-size-large{padding-left:15px;padding-right:15px}:host-context(.sky-theme-modern) .sky-fluid-grid-gutter-size-small{padding-left:10px;padding-right:10px}:host-context(.sky-theme-modern) .sky-fluid-grid-gutter-size-medium{padding-left:15px;padding-right:15px}:host-context(.sky-theme-modern) .sky-fluid-grid-gutter-size-large{padding-left:30px;padding-right:30px}\n"] }]
1770
1800
  }], propDecorators: { disableMargin: [{
1771
1801
  type: Input
1772
1802
  }], gutterSize: [{
@@ -1809,56 +1839,63 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.2.0", ngImpor
1809
1839
  }]
1810
1840
  }] });
1811
1841
 
1842
+ var _SkyFormatComponent_instances, _SkyFormatComponent__text, _SkyFormatComponent__args, _SkyFormatComponent_updateItemsForDisplay;
1812
1843
  const tokenRegex = /(\{\d+\})/;
1813
1844
  class SkyFormatComponent {
1845
+ constructor() {
1846
+ _SkyFormatComponent_instances.add(this);
1847
+ this.itemsForDisplay = [];
1848
+ _SkyFormatComponent__text.set(this, void 0);
1849
+ _SkyFormatComponent__args.set(this, void 0);
1850
+ }
1814
1851
  /**
1815
1852
  * The tokenized string that represents the template. Tokens use the `{n}` notation
1816
1853
  * where `n` is the ordinal of the item to replace the token.
1817
1854
  */
1818
1855
  set text(value) {
1819
- this._text = value;
1820
- this.updateItemsForDisplay();
1856
+ __classPrivateFieldSet(this, _SkyFormatComponent__text, value, "f");
1857
+ __classPrivateFieldGet(this, _SkyFormatComponent_instances, "m", _SkyFormatComponent_updateItemsForDisplay).call(this);
1821
1858
  }
1822
1859
  get text() {
1823
- return this._text;
1860
+ return __classPrivateFieldGet(this, _SkyFormatComponent__text, "f");
1824
1861
  }
1825
1862
  /**
1826
1863
  * An array of `TemplateRef` objects to be placed in the template, where the `nth`
1827
1864
  * item is placed at the `{n}` location in the template.
1828
1865
  */
1829
1866
  set args(value) {
1830
- this._args = value;
1831
- this.updateItemsForDisplay();
1867
+ __classPrivateFieldSet(this, _SkyFormatComponent__args, value, "f");
1868
+ __classPrivateFieldGet(this, _SkyFormatComponent_instances, "m", _SkyFormatComponent_updateItemsForDisplay).call(this);
1832
1869
  }
1833
1870
  get args() {
1834
- return this._args;
1835
- }
1836
- updateItemsForDisplay() {
1837
- this.itemsForDisplay = [];
1838
- if (this.text && this.args) {
1839
- const textParts = this.text.split(tokenRegex);
1840
- for (const textPart of textParts) {
1841
- // Disregard empty strings.
1842
- if (textPart) {
1843
- const item = {};
1844
- if (tokenRegex.test(textPart)) {
1845
- const valueIndex = +textPart.substring(1, textPart.length - 1);
1846
- item.templateRef = this.args[valueIndex];
1847
- }
1848
- else {
1849
- item.text = textPart;
1850
- }
1851
- this.itemsForDisplay.push(item);
1871
+ return __classPrivateFieldGet(this, _SkyFormatComponent__args, "f");
1872
+ }
1873
+ }
1874
+ _SkyFormatComponent__text = new WeakMap(), _SkyFormatComponent__args = new WeakMap(), _SkyFormatComponent_instances = new WeakSet(), _SkyFormatComponent_updateItemsForDisplay = function _SkyFormatComponent_updateItemsForDisplay() {
1875
+ this.itemsForDisplay = [];
1876
+ if (this.text && this.args) {
1877
+ const textParts = this.text.split(tokenRegex);
1878
+ for (const textPart of textParts) {
1879
+ // Disregard empty strings.
1880
+ if (textPart) {
1881
+ const item = {};
1882
+ if (tokenRegex.test(textPart)) {
1883
+ const valueIndex = +textPart.substring(1, textPart.length - 1);
1884
+ item.templateRef = this.args[valueIndex];
1885
+ }
1886
+ else {
1887
+ item.text = textPart;
1852
1888
  }
1889
+ this.itemsForDisplay.push(item);
1853
1890
  }
1854
1891
  }
1855
1892
  }
1856
- }
1893
+ };
1857
1894
  SkyFormatComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.2.0", ngImport: i0, type: SkyFormatComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
1858
- SkyFormatComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "14.2.0", type: SkyFormatComponent, selector: "sky-format", inputs: { text: "text", args: "args" }, ngImport: i0, template: "<ng-container *ngFor=\"let item of itemsForDisplay\">\n <!--\n The following ng-container must be on one line so no extra whitespace is introduced.\n -->\n <ng-container *ngIf=\"item.text; else item.templateRef\">{{\n item.text\n }}</ng-container>\n</ng-container>\n", dependencies: [{ kind: "directive", type: i1.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush });
1895
+ SkyFormatComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "14.2.0", type: SkyFormatComponent, selector: "sky-format", inputs: { text: "text", args: "args" }, ngImport: i0, template: "<ng-container *ngFor=\"let item of itemsForDisplay\">\n <ng-container *ngIf=\"item.text\">{{ item.text }}</ng-container>\n <ng-container *ngIf=\"!item.text && item.templateRef\">\n <ng-container *ngTemplateOutlet=\"item.templateRef\"></ng-container>\n </ng-container>\n</ng-container>\n", dependencies: [{ kind: "directive", type: i1.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i1.NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush });
1859
1896
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.2.0", ngImport: i0, type: SkyFormatComponent, decorators: [{
1860
1897
  type: Component,
1861
- args: [{ selector: 'sky-format', changeDetection: ChangeDetectionStrategy.OnPush, template: "<ng-container *ngFor=\"let item of itemsForDisplay\">\n <!--\n The following ng-container must be on one line so no extra whitespace is introduced.\n -->\n <ng-container *ngIf=\"item.text; else item.templateRef\">{{\n item.text\n }}</ng-container>\n</ng-container>\n" }]
1898
+ args: [{ selector: 'sky-format', changeDetection: ChangeDetectionStrategy.OnPush, template: "<ng-container *ngFor=\"let item of itemsForDisplay\">\n <ng-container *ngIf=\"item.text\">{{ item.text }}</ng-container>\n <ng-container *ngIf=\"!item.text && item.templateRef\">\n <ng-container *ngTemplateOutlet=\"item.templateRef\"></ng-container>\n </ng-container>\n</ng-container>\n" }]
1862
1899
  }], propDecorators: { text: [{
1863
1900
  type: Input
1864
1901
  }], args: [{
@@ -1879,49 +1916,57 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.2.0", ngImpor
1879
1916
  }]
1880
1917
  }] });
1881
1918
 
1919
+ var _SkyPageThemeAdapterService_styleEl;
1882
1920
  /**
1883
1921
  * @internal
1884
1922
  */
1885
1923
  class SkyPageThemeAdapterService {
1924
+ constructor() {
1925
+ _SkyPageThemeAdapterService_styleEl.set(this, void 0);
1926
+ }
1886
1927
  /**
1887
1928
  * We can't use ViewEncapsulation.None for this behavior because Angular does
1888
1929
  * not remove `style` tags from the HEAD element after route changes.
1889
1930
  * @see https://github.com/angular/angular/issues/16670
1890
1931
  */
1891
1932
  addTheme() {
1892
- if (!this.styleEl) {
1893
- this.styleEl = document.createElement('style');
1894
- this.styleEl.appendChild(document.createTextNode('body { background-color: #fff; }'));
1895
- document.head.appendChild(this.styleEl);
1933
+ if (!__classPrivateFieldGet(this, _SkyPageThemeAdapterService_styleEl, "f")) {
1934
+ __classPrivateFieldSet(this, _SkyPageThemeAdapterService_styleEl, document.createElement('style'), "f");
1935
+ __classPrivateFieldGet(this, _SkyPageThemeAdapterService_styleEl, "f").appendChild(document.createTextNode('body { background-color: #fff; }'));
1936
+ document.head.appendChild(__classPrivateFieldGet(this, _SkyPageThemeAdapterService_styleEl, "f"));
1896
1937
  }
1897
1938
  }
1898
1939
  removeTheme() {
1899
- if (this.styleEl) {
1900
- document.head.removeChild(this.styleEl);
1901
- this.styleEl = undefined;
1940
+ if (__classPrivateFieldGet(this, _SkyPageThemeAdapterService_styleEl, "f")) {
1941
+ document.head.removeChild(__classPrivateFieldGet(this, _SkyPageThemeAdapterService_styleEl, "f"));
1942
+ __classPrivateFieldSet(this, _SkyPageThemeAdapterService_styleEl, undefined, "f");
1902
1943
  }
1903
1944
  }
1904
1945
  }
1946
+ _SkyPageThemeAdapterService_styleEl = new WeakMap();
1905
1947
  SkyPageThemeAdapterService.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.2.0", ngImport: i0, type: SkyPageThemeAdapterService, deps: [], target: i0.ɵɵFactoryTarget.Injectable });
1906
1948
  SkyPageThemeAdapterService.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "14.2.0", ngImport: i0, type: SkyPageThemeAdapterService });
1907
1949
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.2.0", ngImport: i0, type: SkyPageThemeAdapterService, decorators: [{
1908
1950
  type: Injectable
1909
1951
  }] });
1910
1952
 
1953
+ var _SkyPageComponent_themeAdapter;
1911
1954
  /**
1912
1955
  * Sets the correct background color for a page.
1913
1956
  */
1914
1957
  class SkyPageComponent {
1915
1958
  constructor(themeAdapter) {
1916
- this.themeAdapter = themeAdapter;
1959
+ _SkyPageComponent_themeAdapter.set(this, void 0);
1960
+ __classPrivateFieldSet(this, _SkyPageComponent_themeAdapter, themeAdapter, "f");
1917
1961
  }
1918
1962
  ngOnInit() {
1919
- this.themeAdapter.addTheme();
1963
+ __classPrivateFieldGet(this, _SkyPageComponent_themeAdapter, "f").addTheme();
1920
1964
  }
1921
1965
  ngOnDestroy() {
1922
- this.themeAdapter.removeTheme();
1966
+ __classPrivateFieldGet(this, _SkyPageComponent_themeAdapter, "f").removeTheme();
1923
1967
  }
1924
1968
  }
1969
+ _SkyPageComponent_themeAdapter = new WeakMap();
1925
1970
  SkyPageComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.2.0", ngImport: i0, type: SkyPageComponent, deps: [{ token: SkyPageThemeAdapterService }], target: i0.ɵɵFactoryTarget.Component });
1926
1971
  SkyPageComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "14.2.0", type: SkyPageComponent, selector: "sky-page", providers: [SkyPageThemeAdapterService], ngImport: i0, template: "<div>\n <ng-content></ng-content>\n</div>\n" });
1927
1972
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.2.0", ngImport: i0, type: SkyPageComponent, decorators: [{
@@ -2070,43 +2115,64 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.2.0", ngImpor
2070
2115
  type: Injectable
2071
2116
  }] });
2072
2117
 
2118
+ var _SkyPageSummaryComponent_breakpointSubscription, _SkyPageSummaryComponent_ngUnsubscribe, _SkyPageSummaryComponent_elRef, _SkyPageSummaryComponent_adapter, _SkyPageSummaryComponent_mediaQueryService, _SkyPageSummaryComponent_changeDetectorRef;
2073
2119
  /**
2074
2120
  * Specifies the components to display in the page summary.
2075
2121
  * @deprecated `SkyPageSummaryComponent` is deprecated. For page templates and techniques to summarize page content, see the page design guidelines. For more information, see https://developer.blackbaud.com/skyux/design/guidelines/page-layouts.
2076
2122
  */
2077
2123
  class SkyPageSummaryComponent {
2078
- constructor(elRef, adapter, mediaQueryService, logger) {
2079
- this.elRef = elRef;
2080
- this.adapter = adapter;
2081
- this.mediaQueryService = mediaQueryService;
2124
+ constructor(elRef, adapter, mediaQueryService, logger, changeDetector) {
2125
+ this.hasKeyInfo = false;
2126
+ _SkyPageSummaryComponent_breakpointSubscription.set(this, void 0);
2127
+ _SkyPageSummaryComponent_ngUnsubscribe.set(this, new Subject());
2128
+ _SkyPageSummaryComponent_elRef.set(this, void 0);
2129
+ _SkyPageSummaryComponent_adapter.set(this, void 0);
2130
+ _SkyPageSummaryComponent_mediaQueryService.set(this, void 0);
2131
+ _SkyPageSummaryComponent_changeDetectorRef.set(this, void 0);
2132
+ __classPrivateFieldSet(this, _SkyPageSummaryComponent_elRef, elRef, "f");
2133
+ __classPrivateFieldSet(this, _SkyPageSummaryComponent_adapter, adapter, "f");
2134
+ __classPrivateFieldSet(this, _SkyPageSummaryComponent_mediaQueryService, mediaQueryService, "f");
2135
+ __classPrivateFieldSet(this, _SkyPageSummaryComponent_changeDetectorRef, changeDetector, "f");
2082
2136
  logger.deprecated('SkyPageSummaryComponent', {
2083
2137
  deprecationMajorVersion: 6,
2084
2138
  moreInfoUrl: 'https://developer.blackbaud.com/skyux/design/guidelines/page-layouts',
2085
2139
  replacementRecommendation: 'For page templates and techniques to summarize page content, see the page design guidelines.',
2086
2140
  });
2087
2141
  }
2088
- get hasKeyInfo() {
2089
- return this.keyInfoComponents.length > 0;
2090
- }
2091
2142
  ngAfterViewInit() {
2092
- this.breakpointSubscription = this.mediaQueryService.subscribe((args) => {
2093
- this.adapter.updateKeyInfoLocation(this.elRef, args === SkyMediaBreakpoints.xs);
2094
- });
2143
+ __classPrivateFieldSet(this, _SkyPageSummaryComponent_breakpointSubscription, __classPrivateFieldGet(this, _SkyPageSummaryComponent_mediaQueryService, "f").subscribe((args) => {
2144
+ __classPrivateFieldGet(this, _SkyPageSummaryComponent_adapter, "f").updateKeyInfoLocation(__classPrivateFieldGet(this, _SkyPageSummaryComponent_elRef, "f"), args === SkyMediaBreakpoints.xs);
2145
+ }), "f");
2146
+ }
2147
+ ngAfterContentInit() {
2148
+ if (this.keyInfoComponents) {
2149
+ this.hasKeyInfo = this.keyInfoComponents.length > 0;
2150
+ this.keyInfoComponents.changes
2151
+ .pipe(takeUntil(__classPrivateFieldGet(this, _SkyPageSummaryComponent_ngUnsubscribe, "f")))
2152
+ .subscribe(() => {
2153
+ this.hasKeyInfo =
2154
+ !!this.keyInfoComponents && this.keyInfoComponents.length > 0;
2155
+ __classPrivateFieldGet(this, _SkyPageSummaryComponent_changeDetectorRef, "f").markForCheck();
2156
+ });
2157
+ }
2095
2158
  }
2096
2159
  ngOnDestroy() {
2097
2160
  /* istanbul ignore else */
2098
2161
  /* sanity check */
2099
- if (this.breakpointSubscription) {
2100
- this.breakpointSubscription.unsubscribe();
2162
+ if (__classPrivateFieldGet(this, _SkyPageSummaryComponent_breakpointSubscription, "f")) {
2163
+ __classPrivateFieldGet(this, _SkyPageSummaryComponent_breakpointSubscription, "f").unsubscribe();
2101
2164
  }
2165
+ __classPrivateFieldGet(this, _SkyPageSummaryComponent_ngUnsubscribe, "f").next();
2166
+ __classPrivateFieldGet(this, _SkyPageSummaryComponent_ngUnsubscribe, "f").complete();
2102
2167
  }
2103
2168
  }
2104
- SkyPageSummaryComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.2.0", ngImport: i0, type: SkyPageSummaryComponent, deps: [{ token: i0.ElementRef }, { token: SkyPageSummaryAdapterService }, { token: i1$2.SkyMediaQueryService }, { token: i1$2.SkyLogService }], target: i0.ɵɵFactoryTarget.Component });
2169
+ _SkyPageSummaryComponent_breakpointSubscription = new WeakMap(), _SkyPageSummaryComponent_ngUnsubscribe = new WeakMap(), _SkyPageSummaryComponent_elRef = new WeakMap(), _SkyPageSummaryComponent_adapter = new WeakMap(), _SkyPageSummaryComponent_mediaQueryService = new WeakMap(), _SkyPageSummaryComponent_changeDetectorRef = new WeakMap();
2170
+ SkyPageSummaryComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.2.0", ngImport: i0, type: SkyPageSummaryComponent, deps: [{ token: i0.ElementRef }, { token: SkyPageSummaryAdapterService }, { token: i1$2.SkyMediaQueryService }, { token: i1$2.SkyLogService }, { token: i0.ChangeDetectorRef }], target: i0.ɵɵFactoryTarget.Component });
2105
2171
  SkyPageSummaryComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "14.2.0", type: SkyPageSummaryComponent, selector: "sky-page-summary", providers: [SkyPageSummaryAdapterService], queries: [{ propertyName: "keyInfoComponents", predicate: SkyPageSummaryKeyInfoComponent, read: SkyPageSummaryKeyInfoComponent }], ngImport: i0, template: "<div\n class=\"sky-page-summary\"\n [ngClass]=\"{ 'sky-page-summary-with-key-info': hasKeyInfo }\"\n>\n <ng-content select=\"sky-page-summary-alert\"></ng-content>\n <div class=\"sky-page-summary-row\">\n <div class=\"sky-page-summary-left\">\n <ng-content select=\"sky-page-summary-image\"></ng-content>\n <div class=\"sky-page-summary-data\">\n <ng-content select=\"sky-page-summary-title\"></ng-content>\n <ng-content select=\"sky-page-summary-subtitle\"></ng-content>\n <ng-content select=\"sky-page-summary-status\"></ng-content>\n <div class=\"sky-page-summary-key-info-xs\"></div>\n <ng-content select=\"sky-page-summary-content\"></ng-content>\n </div>\n </div>\n <div class=\"sky-page-summary-key-info-sm\">\n <div class=\"sky-page-summary-key-info-container\">\n <ng-content select=\"sky-page-summary-key-info\"></ng-content>\n </div>\n </div>\n </div>\n</div>\n", styles: [".sky-page-summary{background-color:#fff;padding:20px 15px}.sky-page-summary-row{align-items:stretch;display:flex}:host .sky-page-summary-left{flex-basis:100%;display:initial;align-items:initial}:host .sky-page-summary-with-key-info .sky-page-summary-left{flex-basis:100%;padding-right:initial}:host-context(.sky-responsive-container-xs) .sky-page-summary-left,:host-context(.sky-responsive-container-sm) .sky-page-summary-left,:host-context(.sky-responsive-container-md) .sky-page-summary-left,:host-context(.sky-responsive-container-lg) .sky-page-summary-left{flex-basis:100%;display:initial;align-items:initial}:host-context(.sky-responsive-container-xs) .sky-page-summary-with-key-info .sky-page-summary-left,:host-context(.sky-responsive-container-sm) .sky-page-summary-with-key-info .sky-page-summary-left,:host-context(.sky-responsive-container-md) .sky-page-summary-with-key-info .sky-page-summary-left,:host-context(.sky-responsive-container-lg) .sky-page-summary-with-key-info .sky-page-summary-left{flex-basis:100%;padding-right:initial}@media (min-width: 768px){:host .sky-page-summary-with-key-info .sky-page-summary-left{flex-basis:75%;padding-right:15px}:host .sky-page-summary-with-key-info .sky-page-summary-right{flex-basis:25%}:host .sky-page-summary-left{align-items:stretch;display:flex}:host .sky-page-summary-data{flex-grow:1}}:host-context(.sky-responsive-container-sm) .sky-page-summary-with-key-info .sky-page-summary-left,:host-context(.sky-responsive-container-md) .sky-page-summary-with-key-info .sky-page-summary-left,:host-context(.sky-responsive-container-lg) .sky-page-summary-with-key-info .sky-page-summary-left{flex-basis:75%;padding-right:15px}:host-context(.sky-responsive-container-sm) .sky-page-summary-with-key-info .sky-page-summary-right,:host-context(.sky-responsive-container-md) .sky-page-summary-with-key-info .sky-page-summary-right,:host-context(.sky-responsive-container-lg) .sky-page-summary-with-key-info .sky-page-summary-right{flex-basis:25%}:host-context(.sky-responsive-container-sm) .sky-page-summary-left,:host-context(.sky-responsive-container-md) .sky-page-summary-left,:host-context(.sky-responsive-container-lg) .sky-page-summary-left{align-items:stretch;display:flex}:host-context(.sky-responsive-container-sm) .sky-page-summary-data,:host-context(.sky-responsive-container-md) .sky-page-summary-data,:host-context(.sky-responsive-container-lg) .sky-page-summary-data{flex-grow:1}\n"], dependencies: [{ kind: "directive", type: i1.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }] });
2106
2172
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.2.0", ngImport: i0, type: SkyPageSummaryComponent, decorators: [{
2107
2173
  type: Component,
2108
2174
  args: [{ selector: 'sky-page-summary', providers: [SkyPageSummaryAdapterService], template: "<div\n class=\"sky-page-summary\"\n [ngClass]=\"{ 'sky-page-summary-with-key-info': hasKeyInfo }\"\n>\n <ng-content select=\"sky-page-summary-alert\"></ng-content>\n <div class=\"sky-page-summary-row\">\n <div class=\"sky-page-summary-left\">\n <ng-content select=\"sky-page-summary-image\"></ng-content>\n <div class=\"sky-page-summary-data\">\n <ng-content select=\"sky-page-summary-title\"></ng-content>\n <ng-content select=\"sky-page-summary-subtitle\"></ng-content>\n <ng-content select=\"sky-page-summary-status\"></ng-content>\n <div class=\"sky-page-summary-key-info-xs\"></div>\n <ng-content select=\"sky-page-summary-content\"></ng-content>\n </div>\n </div>\n <div class=\"sky-page-summary-key-info-sm\">\n <div class=\"sky-page-summary-key-info-container\">\n <ng-content select=\"sky-page-summary-key-info\"></ng-content>\n </div>\n </div>\n </div>\n</div>\n", styles: [".sky-page-summary{background-color:#fff;padding:20px 15px}.sky-page-summary-row{align-items:stretch;display:flex}:host .sky-page-summary-left{flex-basis:100%;display:initial;align-items:initial}:host .sky-page-summary-with-key-info .sky-page-summary-left{flex-basis:100%;padding-right:initial}:host-context(.sky-responsive-container-xs) .sky-page-summary-left,:host-context(.sky-responsive-container-sm) .sky-page-summary-left,:host-context(.sky-responsive-container-md) .sky-page-summary-left,:host-context(.sky-responsive-container-lg) .sky-page-summary-left{flex-basis:100%;display:initial;align-items:initial}:host-context(.sky-responsive-container-xs) .sky-page-summary-with-key-info .sky-page-summary-left,:host-context(.sky-responsive-container-sm) .sky-page-summary-with-key-info .sky-page-summary-left,:host-context(.sky-responsive-container-md) .sky-page-summary-with-key-info .sky-page-summary-left,:host-context(.sky-responsive-container-lg) .sky-page-summary-with-key-info .sky-page-summary-left{flex-basis:100%;padding-right:initial}@media (min-width: 768px){:host .sky-page-summary-with-key-info .sky-page-summary-left{flex-basis:75%;padding-right:15px}:host .sky-page-summary-with-key-info .sky-page-summary-right{flex-basis:25%}:host .sky-page-summary-left{align-items:stretch;display:flex}:host .sky-page-summary-data{flex-grow:1}}:host-context(.sky-responsive-container-sm) .sky-page-summary-with-key-info .sky-page-summary-left,:host-context(.sky-responsive-container-md) .sky-page-summary-with-key-info .sky-page-summary-left,:host-context(.sky-responsive-container-lg) .sky-page-summary-with-key-info .sky-page-summary-left{flex-basis:75%;padding-right:15px}:host-context(.sky-responsive-container-sm) .sky-page-summary-with-key-info .sky-page-summary-right,:host-context(.sky-responsive-container-md) .sky-page-summary-with-key-info .sky-page-summary-right,:host-context(.sky-responsive-container-lg) .sky-page-summary-with-key-info .sky-page-summary-right{flex-basis:25%}:host-context(.sky-responsive-container-sm) .sky-page-summary-left,:host-context(.sky-responsive-container-md) .sky-page-summary-left,:host-context(.sky-responsive-container-lg) .sky-page-summary-left{align-items:stretch;display:flex}:host-context(.sky-responsive-container-sm) .sky-page-summary-data,:host-context(.sky-responsive-container-md) .sky-page-summary-data,:host-context(.sky-responsive-container-lg) .sky-page-summary-data{flex-grow:1}\n"] }]
2109
- }], ctorParameters: function () { return [{ type: i0.ElementRef }, { type: SkyPageSummaryAdapterService }, { type: i1$2.SkyMediaQueryService }, { type: i1$2.SkyLogService }]; }, propDecorators: { keyInfoComponents: [{
2175
+ }], ctorParameters: function () { return [{ type: i0.ElementRef }, { type: SkyPageSummaryAdapterService }, { type: i1$2.SkyMediaQueryService }, { type: i1$2.SkyLogService }, { type: i0.ChangeDetectorRef }]; }, propDecorators: { keyInfoComponents: [{
2110
2176
  type: ContentChildren,
2111
2177
  args: [SkyPageSummaryKeyInfoComponent, {
2112
2178
  read: SkyPageSummaryKeyInfoComponent,
@@ -2165,8 +2231,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.2.0", ngImpor
2165
2231
  /**
2166
2232
  * @internal
2167
2233
  */
2168
- class SkyTextExpandModalContext {
2169
- }
2234
+ const SKY_TEXT_EXPAND_MODAL_CONTEXT = new InjectionToken('SkyTextExpandModalContext');
2170
2235
 
2171
2236
  /**
2172
2237
  * @internal
@@ -2180,70 +2245,111 @@ class SkyTextExpandModalComponent {
2180
2245
  this.instance.close();
2181
2246
  }
2182
2247
  }
2183
- SkyTextExpandModalComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.2.0", ngImport: i0, type: SkyTextExpandModalComponent, deps: [{ token: SkyTextExpandModalContext }, { token: i2$2.SkyModalInstance }], target: i0.ɵɵFactoryTarget.Component });
2184
- SkyTextExpandModalComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "14.2.0", type: SkyTextExpandModalComponent, selector: "sky-text-expand-modal", ngImport: i0, template: "<sky-modal>\n <sky-modal-header>{{ context.header }}</sky-modal-header>\n <sky-modal-content class=\"sky-text-expand-modal-content\">{{\n context.text\n }}</sky-modal-content>\n <sky-modal-footer>\n <button class=\"sky-btn sky-btn-link\" (click)=\"close()\">\n {{ 'skyux_text_expand_close_text' | skyLibResources }}\n </button>\n </sky-modal-footer>\n</sky-modal>\n", styles: [".sky-text-expand-ellipsis{letter-spacing:2px;white-space:nowrap}.sky-text-expand-space{white-space:normal}.sky-text-expand-see-more{white-space:nowrap;margin-left:5px}.sky-text-expand-text{margin:0;white-space:pre-wrap}.sky-text-expand-container{word-break:break-word;word-wrap:break-word;overflow:hidden;height:auto;transition:max-height .25s}.sky-text-expand-modal-content{white-space:pre-line;word-wrap:break-word}\n"], dependencies: [{ kind: "component", type: i2$2.λ5, selector: "sky-modal", inputs: ["ariaRole", "tiledBody"] }, { kind: "component", type: i2$2.λ2, selector: "sky-modal-content" }, { kind: "component", type: i2$2.λ3, selector: "sky-modal-footer" }, { kind: "component", type: i2$2.λ4, selector: "sky-modal-header" }, { kind: "pipe", type: i1$3.SkyLibResourcesPipe, name: "skyLibResources" }] });
2248
+ SkyTextExpandModalComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.2.0", ngImport: i0, type: SkyTextExpandModalComponent, deps: [{ token: SKY_TEXT_EXPAND_MODAL_CONTEXT }, { token: i1$4.SkyModalInstance }], target: i0.ɵɵFactoryTarget.Component });
2249
+ SkyTextExpandModalComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "14.2.0", type: SkyTextExpandModalComponent, selector: "sky-text-expand-modal", ngImport: i0, template: "<sky-modal>\n <sky-modal-header>{{ context.header }}</sky-modal-header>\n <sky-modal-content class=\"sky-text-expand-modal-content\">{{\n context.text\n }}</sky-modal-content>\n <sky-modal-footer>\n <button class=\"sky-btn sky-btn-link\" (click)=\"close()\">\n {{ 'skyux_text_expand_close_text' | skyLibResources }}\n </button>\n </sky-modal-footer>\n</sky-modal>\n", styles: [".sky-text-expand-ellipsis{letter-spacing:2px;white-space:nowrap}.sky-text-expand-space{white-space:normal}.sky-text-expand-see-more{white-space:nowrap;margin-left:5px}.sky-text-expand-text{margin:0;white-space:pre-wrap}.sky-text-expand-container{word-break:break-word;word-wrap:break-word;overflow:hidden;height:auto}.sky-text-expand-modal-content{white-space:pre-line;word-wrap:break-word}\n"], dependencies: [{ kind: "component", type: i1$4.λ5, selector: "sky-modal", inputs: ["ariaRole", "tiledBody"] }, { kind: "component", type: i1$4.λ2, selector: "sky-modal-content" }, { kind: "component", type: i1$4.λ3, selector: "sky-modal-footer" }, { kind: "component", type: i1$4.λ4, selector: "sky-modal-header" }, { kind: "pipe", type: i1$3.SkyLibResourcesPipe, name: "skyLibResources" }] });
2185
2250
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.2.0", ngImport: i0, type: SkyTextExpandModalComponent, decorators: [{
2186
2251
  type: Component,
2187
- args: [{ selector: 'sky-text-expand-modal', template: "<sky-modal>\n <sky-modal-header>{{ context.header }}</sky-modal-header>\n <sky-modal-content class=\"sky-text-expand-modal-content\">{{\n context.text\n }}</sky-modal-content>\n <sky-modal-footer>\n <button class=\"sky-btn sky-btn-link\" (click)=\"close()\">\n {{ 'skyux_text_expand_close_text' | skyLibResources }}\n </button>\n </sky-modal-footer>\n</sky-modal>\n", styles: [".sky-text-expand-ellipsis{letter-spacing:2px;white-space:nowrap}.sky-text-expand-space{white-space:normal}.sky-text-expand-see-more{white-space:nowrap;margin-left:5px}.sky-text-expand-text{margin:0;white-space:pre-wrap}.sky-text-expand-container{word-break:break-word;word-wrap:break-word;overflow:hidden;height:auto;transition:max-height .25s}.sky-text-expand-modal-content{white-space:pre-line;word-wrap:break-word}\n"] }]
2188
- }], ctorParameters: function () { return [{ type: SkyTextExpandModalContext }, { type: i2$2.SkyModalInstance }]; } });
2252
+ args: [{ selector: 'sky-text-expand-modal', template: "<sky-modal>\n <sky-modal-header>{{ context.header }}</sky-modal-header>\n <sky-modal-content class=\"sky-text-expand-modal-content\">{{\n context.text\n }}</sky-modal-content>\n <sky-modal-footer>\n <button class=\"sky-btn sky-btn-link\" (click)=\"close()\">\n {{ 'skyux_text_expand_close_text' | skyLibResources }}\n </button>\n </sky-modal-footer>\n</sky-modal>\n", styles: [".sky-text-expand-ellipsis{letter-spacing:2px;white-space:nowrap}.sky-text-expand-space{white-space:normal}.sky-text-expand-see-more{white-space:nowrap;margin-left:5px}.sky-text-expand-text{margin:0;white-space:pre-wrap}.sky-text-expand-container{word-break:break-word;word-wrap:break-word;overflow:hidden;height:auto}.sky-text-expand-modal-content{white-space:pre-line;word-wrap:break-word}\n"] }]
2253
+ }], ctorParameters: function () { return [{ type: undefined, decorators: [{
2254
+ type: Inject,
2255
+ args: [SKY_TEXT_EXPAND_MODAL_CONTEXT]
2256
+ }] }, { type: i1$4.SkyModalInstance }]; } });
2189
2257
 
2258
+ var _SkyTextExpandAdapterService_renderer;
2190
2259
  /**
2191
2260
  * @internal
2192
2261
  */
2193
2262
  class SkyTextExpandAdapterService {
2194
2263
  constructor(rendererFactory) {
2195
- this.rendererFactory = rendererFactory;
2196
- this.renderer = this.rendererFactory.createRenderer(undefined, undefined);
2264
+ _SkyTextExpandAdapterService_renderer.set(this, void 0);
2265
+ __classPrivateFieldSet(this, _SkyTextExpandAdapterService_renderer, rendererFactory.createRenderer(undefined, null), "f");
2197
2266
  }
2198
2267
  getContainerHeight(containerEl) {
2199
2268
  return containerEl.nativeElement.offsetHeight;
2200
2269
  }
2201
- setContainerHeight(containerEl, height) {
2202
- if (height === undefined) {
2203
- this.renderer.removeStyle(containerEl.nativeElement, 'max-height');
2204
- }
2205
- else {
2206
- this.renderer.setStyle(containerEl.nativeElement, 'max-height', height);
2207
- }
2270
+ removeContainerMaxHeight(containerEl) {
2271
+ __classPrivateFieldGet(this, _SkyTextExpandAdapterService_renderer, "f").removeStyle(containerEl.nativeElement, 'max-height');
2208
2272
  }
2209
2273
  setText(textEl, text) {
2210
2274
  textEl.nativeElement.textContent = text;
2211
2275
  }
2212
2276
  }
2277
+ _SkyTextExpandAdapterService_renderer = new WeakMap();
2213
2278
  SkyTextExpandAdapterService.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.2.0", ngImport: i0, type: SkyTextExpandAdapterService, deps: [{ token: i0.RendererFactory2 }], target: i0.ɵɵFactoryTarget.Injectable });
2214
2279
  SkyTextExpandAdapterService.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "14.2.0", ngImport: i0, type: SkyTextExpandAdapterService });
2215
2280
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.2.0", ngImport: i0, type: SkyTextExpandAdapterService, decorators: [{
2216
2281
  type: Injectable
2217
2282
  }], ctorParameters: function () { return [{ type: i0.RendererFactory2 }]; } });
2218
2283
 
2284
+ var _SkyTextExpandComponent_instances, _SkyTextExpandComponent_collapsedText, _SkyTextExpandComponent_newlineCount, _SkyTextExpandComponent_seeMoreText, _SkyTextExpandComponent_seeLessText, _SkyTextExpandComponent_textToShow, _SkyTextExpandComponent__maxExpandedLength, _SkyTextExpandComponent__maxExpandedNewlines, _SkyTextExpandComponent__maxLength, _SkyTextExpandComponent__text, _SkyTextExpandComponent__textEl, _SkyTextExpandComponent_resources, _SkyTextExpandComponent_modalSvc, _SkyTextExpandComponent_textExpandAdapter, _SkyTextExpandComponent_setup, _SkyTextExpandComponent_getNewlineCount, _SkyTextExpandComponent_getTruncatedText, _SkyTextExpandComponent_animateText;
2219
2285
  /**
2220
2286
  * Auto-incrementing integer used to generate unique ids for text expand components.
2221
2287
  */
2222
2288
  let nextId$1 = 0;
2223
2289
  class SkyTextExpandComponent {
2224
- constructor(resources, modalService, textExpandAdapter) {
2225
- this.resources = resources;
2226
- this.modalService = modalService;
2227
- this.textExpandAdapter = textExpandAdapter;
2228
- /**
2229
- * Specifies the maximum number of text characters to display inline when users select the link
2230
- * to expand the full text. If the text exceeds this limit, then the component expands
2231
- * the full text in a modal instead.
2232
- */
2233
- this.maxExpandedLength = 600;
2234
- /**
2235
- * Specifies the maximum number of newline characters to display inline when users select
2236
- * the link to expand the full text. If the text exceeds this limit, then
2237
- * the component expands the full text in a modal view instead.
2238
- */
2239
- this.maxExpandedNewlines = 2;
2290
+ constructor(resources, modalSvc, textExpandAdapter) {
2291
+ _SkyTextExpandComponent_instances.add(this);
2240
2292
  /**
2241
2293
  * Indicates whether to replace newline characters in truncated text with spaces.
2242
2294
  */
2243
2295
  this.truncateNewlines = true;
2296
+ this.buttonText = '';
2244
2297
  this.contentSectionId = `sky-text-expand-content-${++nextId$1}`;
2245
- this.isExpanded = false;
2246
- this._maxLength = 200;
2298
+ this.expandable = false;
2299
+ this.isModal = false;
2300
+ this.transitionHeight = 1;
2301
+ _SkyTextExpandComponent_collapsedText.set(this, '');
2302
+ _SkyTextExpandComponent_newlineCount.set(this, 0);
2303
+ _SkyTextExpandComponent_seeMoreText.set(this, '');
2304
+ _SkyTextExpandComponent_seeLessText.set(this, '');
2305
+ _SkyTextExpandComponent_textToShow.set(this, '');
2306
+ _SkyTextExpandComponent__maxExpandedLength.set(this, 600);
2307
+ _SkyTextExpandComponent__maxExpandedNewlines.set(this, 2);
2308
+ _SkyTextExpandComponent__maxLength.set(this, 200);
2309
+ _SkyTextExpandComponent__text.set(this, '');
2310
+ _SkyTextExpandComponent__textEl.set(this, void 0);
2311
+ _SkyTextExpandComponent_resources.set(this, void 0);
2312
+ _SkyTextExpandComponent_modalSvc.set(this, void 0);
2313
+ _SkyTextExpandComponent_textExpandAdapter.set(this, void 0);
2314
+ __classPrivateFieldSet(this, _SkyTextExpandComponent_resources, resources, "f");
2315
+ __classPrivateFieldSet(this, _SkyTextExpandComponent_modalSvc, modalSvc, "f");
2316
+ __classPrivateFieldSet(this, _SkyTextExpandComponent_textExpandAdapter, textExpandAdapter, "f");
2317
+ }
2318
+ /**
2319
+ * Specifies the maximum number of text characters to display inline when users select the link
2320
+ * to expand the full text. If the text exceeds this limit, then the component expands
2321
+ * the full text in a modal instead.
2322
+ * @default 600
2323
+ */
2324
+ set maxExpandedLength(value) {
2325
+ if (value) {
2326
+ __classPrivateFieldSet(this, _SkyTextExpandComponent__maxExpandedLength, value, "f");
2327
+ }
2328
+ else {
2329
+ __classPrivateFieldSet(this, _SkyTextExpandComponent__maxExpandedLength, 600, "f");
2330
+ }
2331
+ __classPrivateFieldGet(this, _SkyTextExpandComponent_instances, "m", _SkyTextExpandComponent_setup).call(this, this.text);
2332
+ }
2333
+ get maxExpandedLength() {
2334
+ return __classPrivateFieldGet(this, _SkyTextExpandComponent__maxExpandedLength, "f");
2335
+ }
2336
+ /**
2337
+ * Specifies the maximum number of newline characters to display inline when users select
2338
+ * the link to expand the full text. If the text exceeds this limit, then
2339
+ * the component expands the full text in a modal view instead.
2340
+ * @default 2
2341
+ */
2342
+ set maxExpandedNewlines(value) {
2343
+ if (value) {
2344
+ __classPrivateFieldSet(this, _SkyTextExpandComponent__maxExpandedNewlines, value, "f");
2345
+ }
2346
+ else {
2347
+ __classPrivateFieldSet(this, _SkyTextExpandComponent__maxExpandedNewlines, 2, "f");
2348
+ }
2349
+ __classPrivateFieldGet(this, _SkyTextExpandComponent_instances, "m", _SkyTextExpandComponent_setup).call(this, this.text);
2350
+ }
2351
+ get maxExpandedNewlines() {
2352
+ return __classPrivateFieldGet(this, _SkyTextExpandComponent__maxExpandedNewlines, "f");
2247
2353
  }
2248
2354
  /**
2249
2355
  * Specifies the number of text characters to display before truncating the text.
@@ -2252,23 +2358,33 @@ class SkyTextExpandComponent {
2252
2358
  * @default 200
2253
2359
  */
2254
2360
  set maxLength(value) {
2255
- this._maxLength = value;
2256
- /* istanbul ignore else */
2257
- if (this.textEl) {
2258
- this.setup(this.expandedText);
2361
+ if (value) {
2362
+ __classPrivateFieldSet(this, _SkyTextExpandComponent__maxLength, value, "f");
2259
2363
  }
2364
+ else {
2365
+ __classPrivateFieldSet(this, _SkyTextExpandComponent__maxLength, 200, "f");
2366
+ }
2367
+ __classPrivateFieldGet(this, _SkyTextExpandComponent_instances, "m", _SkyTextExpandComponent_setup).call(this, this.text);
2260
2368
  }
2261
2369
  get maxLength() {
2262
- return this._maxLength;
2370
+ return __classPrivateFieldGet(this, _SkyTextExpandComponent__maxLength, "f");
2263
2371
  }
2264
2372
  /**
2265
2373
  * Specifies the text to truncate.
2266
2374
  */
2267
2375
  set text(value) {
2268
- /* istanbul ignore else */
2269
- if (this.textEl) {
2270
- this.setup(value);
2271
- }
2376
+ __classPrivateFieldSet(this, _SkyTextExpandComponent__text, value ?? '', "f");
2377
+ __classPrivateFieldGet(this, _SkyTextExpandComponent_instances, "m", _SkyTextExpandComponent_setup).call(this, __classPrivateFieldGet(this, _SkyTextExpandComponent__text, "f"));
2378
+ }
2379
+ get text() {
2380
+ return __classPrivateFieldGet(this, _SkyTextExpandComponent__text, "f");
2381
+ }
2382
+ set textEl(value) {
2383
+ __classPrivateFieldSet(this, _SkyTextExpandComponent__textEl, value, "f");
2384
+ __classPrivateFieldGet(this, _SkyTextExpandComponent_instances, "m", _SkyTextExpandComponent_setup).call(this, this.text);
2385
+ }
2386
+ get textEl() {
2387
+ return __classPrivateFieldGet(this, _SkyTextExpandComponent__textEl, "f");
2272
2388
  }
2273
2389
  textExpand() {
2274
2390
  if (this.isModal) {
@@ -2276,12 +2392,12 @@ class SkyTextExpandComponent {
2276
2392
  /* istanbul ignore else */
2277
2393
  /* sanity check */
2278
2394
  if (!this.isExpanded) {
2279
- this.modalService.open(SkyTextExpandModalComponent, [
2395
+ __classPrivateFieldGet(this, _SkyTextExpandComponent_modalSvc, "f").open(SkyTextExpandModalComponent, [
2280
2396
  {
2281
- provide: SkyTextExpandModalContext,
2397
+ provide: SKY_TEXT_EXPAND_MODAL_CONTEXT,
2282
2398
  useValue: {
2283
2399
  header: this.expandModalTitle,
2284
- text: this.expandedText,
2400
+ text: this.text,
2285
2401
  },
2286
2402
  },
2287
2403
  ]);
@@ -2290,40 +2406,38 @@ class SkyTextExpandComponent {
2290
2406
  else {
2291
2407
  // Normal View
2292
2408
  if (!this.isExpanded) {
2293
- this.setContainerMaxHeight();
2294
- setTimeout(() => {
2295
- this.isExpanded = true;
2296
- this.animateText(this.collapsedText, this.expandedText, true);
2297
- }, 10);
2409
+ __classPrivateFieldGet(this, _SkyTextExpandComponent_instances, "m", _SkyTextExpandComponent_animateText).call(this, true);
2298
2410
  }
2299
2411
  else {
2300
- this.setContainerMaxHeight();
2301
- setTimeout(() => {
2302
- this.isExpanded = false;
2303
- this.animateText(this.expandedText, this.collapsedText, false);
2304
- }, 10);
2412
+ __classPrivateFieldGet(this, _SkyTextExpandComponent_instances, "m", _SkyTextExpandComponent_animateText).call(this, false);
2305
2413
  }
2306
2414
  }
2307
2415
  }
2308
2416
  animationEnd() {
2309
- // Ensure the correct text is displayed
2310
- this.textExpandAdapter.setText(this.textEl, this.textToShow);
2311
- // Set height back to auto so the browser can change the height as needed with window changes
2312
- this.textExpandAdapter.setContainerHeight(this.containerEl, undefined);
2417
+ if (this.textEl && this.containerEl) {
2418
+ // Ensure the correct text is displayed
2419
+ __classPrivateFieldGet(this, _SkyTextExpandComponent_textExpandAdapter, "f").setText(this.textEl, __classPrivateFieldGet(this, _SkyTextExpandComponent_textToShow, "f"));
2420
+ setTimeout(() => {
2421
+ if (this.containerEl) {
2422
+ // Set height back to auto so the browser can change the height as needed with window changes
2423
+ __classPrivateFieldGet(this, _SkyTextExpandComponent_textExpandAdapter, "f").removeContainerMaxHeight(this.containerEl);
2424
+ }
2425
+ });
2426
+ }
2313
2427
  }
2314
2428
  ngAfterContentInit() {
2315
2429
  forkJoin([
2316
- this.resources.getString('skyux_text_expand_see_more'),
2317
- this.resources.getString('skyux_text_expand_see_less'),
2430
+ __classPrivateFieldGet(this, _SkyTextExpandComponent_resources, "f").getString('skyux_text_expand_see_more'),
2431
+ __classPrivateFieldGet(this, _SkyTextExpandComponent_resources, "f").getString('skyux_text_expand_see_less'),
2318
2432
  ])
2319
2433
  .pipe(take(1))
2320
2434
  .subscribe((resources) => {
2321
- this.seeMoreText = resources[0];
2322
- this.seeLessText = resources[1];
2323
- this.setup(this.expandedText);
2435
+ __classPrivateFieldSet(this, _SkyTextExpandComponent_seeMoreText, resources[0], "f");
2436
+ __classPrivateFieldSet(this, _SkyTextExpandComponent_seeLessText, resources[1], "f");
2437
+ __classPrivateFieldGet(this, _SkyTextExpandComponent_instances, "m", _SkyTextExpandComponent_setup).call(this, this.text);
2324
2438
  /* istanbul ignore else */
2325
2439
  if (!this.expandModalTitle) {
2326
- this.resources
2440
+ __classPrivateFieldGet(this, _SkyTextExpandComponent_resources, "f")
2327
2441
  .getString('skyux_text_expand_modal_title')
2328
2442
  .pipe(take(1))
2329
2443
  .subscribe((resource) => {
@@ -2332,99 +2446,109 @@ class SkyTextExpandComponent {
2332
2446
  }
2333
2447
  });
2334
2448
  }
2335
- setContainerMaxHeight() {
2336
- // ensure everything is reset
2337
- this.animationEnd();
2338
- /* Before animation is kicked off, ensure that a maxHeight exists */
2339
- /* Once we have support for angular v4 animations with parameters we can use that instead */
2340
- const currentHeight = this.textExpandAdapter.getContainerHeight(this.containerEl);
2341
- this.textExpandAdapter.setContainerHeight(this.containerEl, `${currentHeight}px`);
2342
- }
2343
- setup(value) {
2344
- if (value) {
2345
- this.newlineCount = this.getNewlineCount(value);
2346
- this.collapsedText = this.getTruncatedText(value, this.maxLength);
2347
- this.expandedText = value;
2348
- if (this.collapsedText !== value) {
2349
- this.buttonText = this.seeMoreText;
2350
- this.isExpanded = false;
2351
- this.expandable = true;
2352
- this.isModal =
2353
- this.newlineCount > this.maxExpandedNewlines ||
2354
- this.expandedText.length > this.maxExpandedLength;
2355
- }
2356
- else {
2357
- this.expandable = false;
2358
- }
2359
- this.textToShow = this.collapsedText;
2449
+ }
2450
+ _SkyTextExpandComponent_collapsedText = new WeakMap(), _SkyTextExpandComponent_newlineCount = new WeakMap(), _SkyTextExpandComponent_seeMoreText = new WeakMap(), _SkyTextExpandComponent_seeLessText = new WeakMap(), _SkyTextExpandComponent_textToShow = new WeakMap(), _SkyTextExpandComponent__maxExpandedLength = new WeakMap(), _SkyTextExpandComponent__maxExpandedNewlines = new WeakMap(), _SkyTextExpandComponent__maxLength = new WeakMap(), _SkyTextExpandComponent__text = new WeakMap(), _SkyTextExpandComponent__textEl = new WeakMap(), _SkyTextExpandComponent_resources = new WeakMap(), _SkyTextExpandComponent_modalSvc = new WeakMap(), _SkyTextExpandComponent_textExpandAdapter = new WeakMap(), _SkyTextExpandComponent_instances = new WeakSet(), _SkyTextExpandComponent_setup = function _SkyTextExpandComponent_setup(value) {
2451
+ if (value) {
2452
+ __classPrivateFieldSet(this, _SkyTextExpandComponent_newlineCount, __classPrivateFieldGet(this, _SkyTextExpandComponent_instances, "m", _SkyTextExpandComponent_getNewlineCount).call(this, value), "f");
2453
+ __classPrivateFieldSet(this, _SkyTextExpandComponent_collapsedText, __classPrivateFieldGet(this, _SkyTextExpandComponent_instances, "m", _SkyTextExpandComponent_getTruncatedText).call(this, value, this.maxLength), "f");
2454
+ if (__classPrivateFieldGet(this, _SkyTextExpandComponent_collapsedText, "f") !== value) {
2455
+ this.buttonText = __classPrivateFieldGet(this, _SkyTextExpandComponent_seeMoreText, "f");
2456
+ this.isExpanded = false;
2457
+ this.expandable = true;
2458
+ this.isModal =
2459
+ __classPrivateFieldGet(this, _SkyTextExpandComponent_newlineCount, "f") > this.maxExpandedNewlines ||
2460
+ this.text.length > this.maxExpandedLength;
2360
2461
  }
2361
2462
  else {
2362
- this.textToShow = '';
2363
2463
  this.expandable = false;
2364
2464
  }
2365
- this.textExpandAdapter.setText(this.textEl, this.textToShow);
2465
+ __classPrivateFieldSet(this, _SkyTextExpandComponent_textToShow, __classPrivateFieldGet(this, _SkyTextExpandComponent_collapsedText, "f"), "f");
2366
2466
  }
2367
- getNewlineCount(value) {
2368
- const matches = value.match(/\n/gi);
2369
- if (matches) {
2370
- return matches.length;
2371
- }
2372
- return 0;
2373
- }
2374
- getTruncatedText(value, length) {
2375
- let i;
2376
- if (this.truncateNewlines) {
2377
- value = value.replace(/\n+/gi, ' ');
2378
- }
2379
- // Jump ahead one character and see if it's a space, and if it isn't,
2380
- // back up to the first space and break there so a word doesn't get cut
2381
- // in half.
2382
- if (length < value.length) {
2383
- for (i = length; i > length - 10; i--) {
2384
- if (/\s/.test(value.charAt(i))) {
2385
- length = i;
2386
- break;
2387
- }
2467
+ else {
2468
+ __classPrivateFieldSet(this, _SkyTextExpandComponent_textToShow, '', "f");
2469
+ this.expandable = false;
2470
+ }
2471
+ if (this.textEl) {
2472
+ __classPrivateFieldGet(this, _SkyTextExpandComponent_textExpandAdapter, "f").setText(this.textEl, __classPrivateFieldGet(this, _SkyTextExpandComponent_textToShow, "f"));
2473
+ }
2474
+ }, _SkyTextExpandComponent_getNewlineCount = function _SkyTextExpandComponent_getNewlineCount(value) {
2475
+ const matches = value.match(/\n/gi);
2476
+ if (matches) {
2477
+ return matches.length;
2478
+ }
2479
+ return 0;
2480
+ }, _SkyTextExpandComponent_getTruncatedText = function _SkyTextExpandComponent_getTruncatedText(value, length) {
2481
+ let i;
2482
+ if (this.truncateNewlines) {
2483
+ value = value.replace(/\n+/gi, ' ');
2484
+ }
2485
+ // Jump ahead one character and see if it's a space, and if it isn't,
2486
+ // back up to the first space and break there so a word doesn't get cut
2487
+ // in half.
2488
+ if (length < value.length) {
2489
+ for (i = length; i > length - 10; i--) {
2490
+ if (/\s/.test(value.charAt(i))) {
2491
+ length = i;
2492
+ break;
2388
2493
  }
2389
2494
  }
2390
- return value.substr(0, length);
2391
2495
  }
2392
- animateText(previousText, newText, expanding) {
2393
- const adapter = this.textExpandAdapter;
2496
+ return value.substring(0, length);
2497
+ }, _SkyTextExpandComponent_animateText = function _SkyTextExpandComponent_animateText(expanding) {
2498
+ if (this.containerEl && this.textEl) {
2499
+ const adapter = __classPrivateFieldGet(this, _SkyTextExpandComponent_textExpandAdapter, "f");
2394
2500
  const container = this.containerEl;
2395
- // Reset max height
2396
- adapter.setContainerHeight(container, undefined);
2397
- // Measure the current height so we can animate from it.
2398
- const currentHeight = adapter.getContainerHeight(container);
2399
- this.textToShow = newText;
2400
- adapter.setText(this.textEl, this.textToShow);
2401
- this.buttonText = expanding ? this.seeLessText : this.seeMoreText;
2501
+ if (expanding) {
2502
+ adapter.setText(this.textEl, this.text);
2503
+ __classPrivateFieldSet(this, _SkyTextExpandComponent_textToShow, this.text, "f");
2504
+ }
2505
+ else {
2506
+ adapter.setText(this.textEl, __classPrivateFieldGet(this, _SkyTextExpandComponent_collapsedText, "f"));
2507
+ __classPrivateFieldSet(this, _SkyTextExpandComponent_textToShow, __classPrivateFieldGet(this, _SkyTextExpandComponent_collapsedText, "f"), "f");
2508
+ }
2509
+ this.buttonText = expanding ? __classPrivateFieldGet(this, _SkyTextExpandComponent_seeLessText, "f") : __classPrivateFieldGet(this, _SkyTextExpandComponent_seeMoreText, "f");
2402
2510
  // Measure the new height so we can animate to it.
2403
2511
  const newHeight = adapter.getContainerHeight(container);
2404
- /* istanbul ignore if */
2405
- if (newHeight < currentHeight) {
2406
- // The new text is smaller than the old text, so put the old text back before doing
2407
- // the collapse animation to avoid showing a big chunk of whitespace.
2408
- adapter.setText(this.textEl, previousText);
2409
- }
2410
- adapter.setContainerHeight(container, `${currentHeight}px`);
2411
- // This timeout is necessary due to the browser needing to pick up the non-auto height being set
2412
- // in order to do the transtion in height correctly. Without it the transition does not fire.
2413
- setTimeout(() => {
2414
- adapter.setContainerHeight(container, `${newHeight}px`);
2415
- /* This resets values if the transition does not get kicked off */
2416
- setTimeout(() => {
2417
- this.animationEnd();
2418
- }, 500);
2419
- }, 10);
2512
+ this.transitionHeight = newHeight;
2513
+ // Always show all text while animating so that the animation is smooth. The animation callback will set this back if needed.
2514
+ if (!expanding) {
2515
+ adapter.setText(this.textEl, this.text);
2516
+ }
2517
+ this.isExpanded = expanding;
2420
2518
  }
2421
- }
2422
- SkyTextExpandComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.2.0", ngImport: i0, type: SkyTextExpandComponent, deps: [{ token: i1$3.SkyLibResourcesService }, { token: i2$2.SkyModalService }, { token: SkyTextExpandAdapterService }], target: i0.ɵɵFactoryTarget.Component });
2423
- SkyTextExpandComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "14.2.0", type: SkyTextExpandComponent, selector: "sky-text-expand", inputs: { expandModalTitle: "expandModalTitle", maxExpandedLength: "maxExpandedLength", maxExpandedNewlines: "maxExpandedNewlines", maxLength: "maxLength", text: "text", truncateNewlines: "truncateNewlines" }, providers: [SkyTextExpandAdapterService], viewQueries: [{ propertyName: "containerEl", first: true, predicate: ["container"], descendants: true, read: ElementRef, static: true }, { propertyName: "textEl", first: true, predicate: ["text"], descendants: true, read: ElementRef, static: true }], ngImport: i0, template: "<div\n class=\"sky-text-expand-container\"\n (transitionend)=\"animationEnd()\"\n #container\n>\n <span class=\"sky-text-expand-text\" [id]=\"contentSectionId\" #text></span>\n <span class=\"sky-text-expand-ellipsis\" *ngIf=\"!isExpanded && expandable\"\n >...\n </span>\n <button\n *ngIf=\"expandable\"\n type=\"button\"\n class=\"sky-btn sky-btn-link-inline sky-text-expand-see-more\"\n [attr.aria-expanded]=\"isModal ? undefined : isExpanded\"\n [attr.aria-controls]=\"isModal ? undefined : contentSectionId\"\n [attr.aria-haspopup]=\"isModal ? 'dialog' : undefined\"\n (click)=\"textExpand()\"\n >\n {{ buttonText }}\n </button>\n</div>\n", styles: [".sky-text-expand-ellipsis{letter-spacing:2px;white-space:nowrap}.sky-text-expand-space{white-space:normal}.sky-text-expand-see-more{white-space:nowrap;margin-left:5px}.sky-text-expand-text{margin:0;white-space:pre-wrap}.sky-text-expand-container{word-break:break-word;word-wrap:break-word;overflow:hidden;height:auto;transition:max-height .25s}.sky-text-expand-modal-content{white-space:pre-line;word-wrap:break-word}\n"], dependencies: [{ kind: "directive", type: i1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }] });
2519
+ };
2520
+ SkyTextExpandComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.2.0", ngImport: i0, type: SkyTextExpandComponent, deps: [{ token: i1$3.SkyLibResourcesService }, { token: i1$4.SkyModalService }, { token: SkyTextExpandAdapterService }], target: i0.ɵɵFactoryTarget.Component });
2521
+ SkyTextExpandComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "14.2.0", type: SkyTextExpandComponent, selector: "sky-text-expand", inputs: { expandModalTitle: "expandModalTitle", maxExpandedLength: "maxExpandedLength", maxExpandedNewlines: "maxExpandedNewlines", maxLength: "maxLength", text: "text", truncateNewlines: "truncateNewlines" }, providers: [SkyTextExpandAdapterService], viewQueries: [{ propertyName: "containerEl", first: true, predicate: ["container"], descendants: true, read: ElementRef, static: true }, { propertyName: "textEl", first: true, predicate: ["text"], descendants: true, read: ElementRef, static: true }], ngImport: i0, template: "<div\n [@expansionAnimation]=\"{\n value: isExpanded,\n params: { transitionHeight: transitionHeight }\n }\"\n (@expansionAnimation.done)=\"animationEnd()\"\n class=\"sky-text-expand-container\"\n #container\n>\n <span class=\"sky-text-expand-text\" [id]=\"contentSectionId\" #text></span>\n <span class=\"sky-text-expand-ellipsis\" *ngIf=\"!isExpanded && expandable\"\n >...\n </span>\n <button\n *ngIf=\"expandable\"\n type=\"button\"\n class=\"sky-btn sky-btn-link-inline sky-text-expand-see-more\"\n [attr.aria-expanded]=\"isModal ? undefined : !!isExpanded\"\n [attr.aria-controls]=\"isModal ? undefined : contentSectionId\"\n [attr.aria-haspopup]=\"isModal ? 'dialog' : undefined\"\n (click)=\"textExpand()\"\n >\n {{ buttonText }}\n </button>\n</div>\n", styles: [".sky-text-expand-ellipsis{letter-spacing:2px;white-space:nowrap}.sky-text-expand-space{white-space:normal}.sky-text-expand-see-more{white-space:nowrap;margin-left:5px}.sky-text-expand-text{margin:0;white-space:pre-wrap}.sky-text-expand-container{word-break:break-word;word-wrap:break-word;overflow:hidden;height:auto}.sky-text-expand-modal-content{white-space:pre-line;word-wrap:break-word}\n"], dependencies: [{ kind: "directive", type: i1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }], animations: [
2522
+ trigger('expansionAnimation', [
2523
+ transition(':enter', []),
2524
+ state('true', style({
2525
+ maxHeight: '{{transitionHeight}}px',
2526
+ }), { params: { transitionHeight: 0 } }),
2527
+ state('false', style({
2528
+ maxHeight: '{{transitionHeight}}px',
2529
+ }), { params: { transitionHeight: 0 } }),
2530
+ transition('true => false', animate('250ms ease')),
2531
+ transition('false => true', animate('250ms ease')),
2532
+ transition('void => *', []),
2533
+ ]),
2534
+ ] });
2424
2535
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.2.0", ngImport: i0, type: SkyTextExpandComponent, decorators: [{
2425
2536
  type: Component,
2426
- args: [{ selector: 'sky-text-expand', providers: [SkyTextExpandAdapterService], template: "<div\n class=\"sky-text-expand-container\"\n (transitionend)=\"animationEnd()\"\n #container\n>\n <span class=\"sky-text-expand-text\" [id]=\"contentSectionId\" #text></span>\n <span class=\"sky-text-expand-ellipsis\" *ngIf=\"!isExpanded && expandable\"\n >...\n </span>\n <button\n *ngIf=\"expandable\"\n type=\"button\"\n class=\"sky-btn sky-btn-link-inline sky-text-expand-see-more\"\n [attr.aria-expanded]=\"isModal ? undefined : isExpanded\"\n [attr.aria-controls]=\"isModal ? undefined : contentSectionId\"\n [attr.aria-haspopup]=\"isModal ? 'dialog' : undefined\"\n (click)=\"textExpand()\"\n >\n {{ buttonText }}\n </button>\n</div>\n", styles: [".sky-text-expand-ellipsis{letter-spacing:2px;white-space:nowrap}.sky-text-expand-space{white-space:normal}.sky-text-expand-see-more{white-space:nowrap;margin-left:5px}.sky-text-expand-text{margin:0;white-space:pre-wrap}.sky-text-expand-container{word-break:break-word;word-wrap:break-word;overflow:hidden;height:auto;transition:max-height .25s}.sky-text-expand-modal-content{white-space:pre-line;word-wrap:break-word}\n"] }]
2427
- }], ctorParameters: function () { return [{ type: i1$3.SkyLibResourcesService }, { type: i2$2.SkyModalService }, { type: SkyTextExpandAdapterService }]; }, propDecorators: { expandModalTitle: [{
2537
+ args: [{ animations: [
2538
+ trigger('expansionAnimation', [
2539
+ transition(':enter', []),
2540
+ state('true', style({
2541
+ maxHeight: '{{transitionHeight}}px',
2542
+ }), { params: { transitionHeight: 0 } }),
2543
+ state('false', style({
2544
+ maxHeight: '{{transitionHeight}}px',
2545
+ }), { params: { transitionHeight: 0 } }),
2546
+ transition('true => false', animate('250ms ease')),
2547
+ transition('false => true', animate('250ms ease')),
2548
+ transition('void => *', []),
2549
+ ]),
2550
+ ], selector: 'sky-text-expand', providers: [SkyTextExpandAdapterService], template: "<div\n [@expansionAnimation]=\"{\n value: isExpanded,\n params: { transitionHeight: transitionHeight }\n }\"\n (@expansionAnimation.done)=\"animationEnd()\"\n class=\"sky-text-expand-container\"\n #container\n>\n <span class=\"sky-text-expand-text\" [id]=\"contentSectionId\" #text></span>\n <span class=\"sky-text-expand-ellipsis\" *ngIf=\"!isExpanded && expandable\"\n >...\n </span>\n <button\n *ngIf=\"expandable\"\n type=\"button\"\n class=\"sky-btn sky-btn-link-inline sky-text-expand-see-more\"\n [attr.aria-expanded]=\"isModal ? undefined : !!isExpanded\"\n [attr.aria-controls]=\"isModal ? undefined : contentSectionId\"\n [attr.aria-haspopup]=\"isModal ? 'dialog' : undefined\"\n (click)=\"textExpand()\"\n >\n {{ buttonText }}\n </button>\n</div>\n", styles: [".sky-text-expand-ellipsis{letter-spacing:2px;white-space:nowrap}.sky-text-expand-space{white-space:normal}.sky-text-expand-see-more{white-space:nowrap;margin-left:5px}.sky-text-expand-text{margin:0;white-space:pre-wrap}.sky-text-expand-container{word-break:break-word;word-wrap:break-word;overflow:hidden;height:auto}.sky-text-expand-modal-content{white-space:pre-line;word-wrap:break-word}\n"] }]
2551
+ }], ctorParameters: function () { return [{ type: i1$3.SkyLibResourcesService }, { type: i1$4.SkyModalService }, { type: SkyTextExpandAdapterService }]; }, propDecorators: { expandModalTitle: [{
2428
2552
  type: Input
2429
2553
  }], maxExpandedLength: [{
2430
2554
  type: Input
@@ -2475,187 +2599,226 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.2.0", ngImpor
2475
2599
  }]
2476
2600
  }] });
2477
2601
 
2602
+ var _SkyTextExpandRepeaterAdapterService_renderer;
2478
2603
  /**
2479
2604
  * @internal
2480
2605
  */
2481
2606
  class SkyTextExpandRepeaterAdapterService {
2482
2607
  constructor(rendererFactory) {
2483
- this.rendererFactory = rendererFactory;
2484
- this.renderer = this.rendererFactory.createRenderer(undefined, undefined);
2608
+ _SkyTextExpandRepeaterAdapterService_renderer.set(this, void 0);
2609
+ __classPrivateFieldSet(this, _SkyTextExpandRepeaterAdapterService_renderer, rendererFactory.createRenderer(undefined, null), "f");
2485
2610
  }
2486
2611
  getItems(elRef) {
2487
2612
  return elRef.nativeElement.querySelectorAll('.sky-text-expand-repeater-item');
2488
2613
  }
2489
2614
  hideItem(item) {
2490
- this.renderer.setStyle(item, 'display', 'none');
2615
+ __classPrivateFieldGet(this, _SkyTextExpandRepeaterAdapterService_renderer, "f").setStyle(item, 'display', 'none');
2491
2616
  }
2492
2617
  showItem(item) {
2493
- this.renderer.setStyle(item, 'display', 'list-item');
2618
+ __classPrivateFieldGet(this, _SkyTextExpandRepeaterAdapterService_renderer, "f").removeStyle(item, 'display');
2494
2619
  }
2495
2620
  getContainerHeight(containerEl) {
2496
2621
  return containerEl.nativeElement.offsetHeight;
2497
2622
  }
2498
- setContainerHeight(containerEl, height) {
2499
- if (height === undefined) {
2500
- this.renderer.removeStyle(containerEl.nativeElement, 'max-height');
2501
- }
2502
- else {
2503
- this.renderer.setStyle(containerEl.nativeElement, 'max-height', height);
2504
- }
2623
+ removeContainerMaxHeight(containerEl) {
2624
+ __classPrivateFieldGet(this, _SkyTextExpandRepeaterAdapterService_renderer, "f").removeStyle(containerEl.nativeElement, 'max-height');
2505
2625
  }
2506
2626
  }
2627
+ _SkyTextExpandRepeaterAdapterService_renderer = new WeakMap();
2507
2628
  SkyTextExpandRepeaterAdapterService.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.2.0", ngImport: i0, type: SkyTextExpandRepeaterAdapterService, deps: [{ token: i0.RendererFactory2 }], target: i0.ɵɵFactoryTarget.Injectable });
2508
2629
  SkyTextExpandRepeaterAdapterService.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "14.2.0", ngImport: i0, type: SkyTextExpandRepeaterAdapterService });
2509
2630
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.2.0", ngImport: i0, type: SkyTextExpandRepeaterAdapterService, decorators: [{
2510
2631
  type: Injectable
2511
2632
  }], ctorParameters: function () { return [{ type: i0.RendererFactory2 }]; } });
2512
2633
 
2634
+ var _SkyTextExpandRepeaterComponent_instances, _SkyTextExpandRepeaterComponent_seeMoreText, _SkyTextExpandRepeaterComponent_seeLessText, _SkyTextExpandRepeaterComponent_htmlItems, _SkyTextExpandRepeaterComponent__data, _SkyTextExpandRepeaterComponent__maxItems, _SkyTextExpandRepeaterComponent_resources, _SkyTextExpandRepeaterComponent_elRef, _SkyTextExpandRepeaterComponent_textExpandRepeaterAdapter, _SkyTextExpandRepeaterComponent_changeDetector, _SkyTextExpandRepeaterComponent_animateRepeater, _SkyTextExpandRepeaterComponent_setup, _SkyTextExpandRepeaterComponent_hideItems, _SkyTextExpandRepeaterComponent_showItems;
2513
2635
  /**
2514
2636
  * Auto-incrementing integer used to generate unique ids for text expand repeater components.
2515
2637
  */
2516
2638
  let nextId = 0;
2517
2639
  class SkyTextExpandRepeaterComponent {
2518
2640
  constructor(resources, elRef, textExpandRepeaterAdapter, changeDetector) {
2519
- this.resources = resources;
2520
- this.elRef = elRef;
2521
- this.textExpandRepeaterAdapter = textExpandRepeaterAdapter;
2522
- this.changeDetector = changeDetector;
2641
+ _SkyTextExpandRepeaterComponent_instances.add(this);
2523
2642
  /**
2524
2643
  * Specifies the style of bullet to use
2525
2644
  * @default "unordered"
2526
2645
  */
2527
2646
  this.listStyle = 'unordered';
2647
+ this.buttonText = '';
2648
+ this.expandable = false;
2528
2649
  this.contentSectionId = `sky-text-expand-repeater-content-${++nextId}`;
2529
- this.isExpanded = false;
2650
+ this.transitionHeight = 1;
2651
+ _SkyTextExpandRepeaterComponent_seeMoreText.set(this, '');
2652
+ _SkyTextExpandRepeaterComponent_seeLessText.set(this, '');
2653
+ _SkyTextExpandRepeaterComponent_htmlItems.set(this, void 0);
2654
+ _SkyTextExpandRepeaterComponent__data.set(this, void 0);
2655
+ _SkyTextExpandRepeaterComponent__maxItems.set(this, void 0);
2656
+ _SkyTextExpandRepeaterComponent_resources.set(this, void 0);
2657
+ _SkyTextExpandRepeaterComponent_elRef.set(this, void 0);
2658
+ _SkyTextExpandRepeaterComponent_textExpandRepeaterAdapter.set(this, void 0);
2659
+ _SkyTextExpandRepeaterComponent_changeDetector.set(this, void 0);
2660
+ __classPrivateFieldSet(this, _SkyTextExpandRepeaterComponent_resources, resources, "f");
2661
+ __classPrivateFieldSet(this, _SkyTextExpandRepeaterComponent_elRef, elRef, "f");
2662
+ __classPrivateFieldSet(this, _SkyTextExpandRepeaterComponent_textExpandRepeaterAdapter, textExpandRepeaterAdapter, "f");
2663
+ __classPrivateFieldSet(this, _SkyTextExpandRepeaterComponent_changeDetector, changeDetector, "f");
2664
+ }
2665
+ /**
2666
+ * Specifies the data to truncate.
2667
+ */
2668
+ set data(value) {
2669
+ __classPrivateFieldSet(this, _SkyTextExpandRepeaterComponent__data, value, "f");
2670
+ // Wait for the dom to render the new items based on the updated data
2671
+ setTimeout(() => {
2672
+ __classPrivateFieldSet(this, _SkyTextExpandRepeaterComponent_htmlItems, __classPrivateFieldGet(this, _SkyTextExpandRepeaterComponent_textExpandRepeaterAdapter, "f").getItems(__classPrivateFieldGet(this, _SkyTextExpandRepeaterComponent_elRef, "f")), "f");
2673
+ __classPrivateFieldGet(this, _SkyTextExpandRepeaterComponent_instances, "m", _SkyTextExpandRepeaterComponent_setup).call(this, value);
2674
+ });
2675
+ }
2676
+ get data() {
2677
+ return __classPrivateFieldGet(this, _SkyTextExpandRepeaterComponent__data, "f");
2678
+ }
2679
+ /**
2680
+ * Specifies the number of items to display before truncating the list. If not supplied, all items are shown.
2681
+ */
2682
+ set maxItems(value) {
2683
+ __classPrivateFieldSet(this, _SkyTextExpandRepeaterComponent__maxItems, value, "f");
2684
+ __classPrivateFieldGet(this, _SkyTextExpandRepeaterComponent_instances, "m", _SkyTextExpandRepeaterComponent_setup).call(this, this.data);
2685
+ }
2686
+ get maxItems() {
2687
+ return __classPrivateFieldGet(this, _SkyTextExpandRepeaterComponent__maxItems, "f");
2530
2688
  }
2531
2689
  ngAfterViewInit() {
2532
- if (this.contentItems) {
2533
- this.items = this.textExpandRepeaterAdapter.getItems(this.elRef);
2534
- for (let i = this.maxItems; i < this.contentItems.length; i++) {
2535
- this.textExpandRepeaterAdapter.hideItem(this.items[i]);
2536
- }
2537
- }
2538
2690
  forkJoin([
2539
- this.resources.getString('skyux_text_expand_see_more'),
2540
- this.resources.getString('skyux_text_expand_see_less'),
2691
+ __classPrivateFieldGet(this, _SkyTextExpandRepeaterComponent_resources, "f").getString('skyux_text_expand_see_more'),
2692
+ __classPrivateFieldGet(this, _SkyTextExpandRepeaterComponent_resources, "f").getString('skyux_text_expand_see_less'),
2541
2693
  ])
2542
2694
  .pipe(take(1))
2543
2695
  .subscribe((resources) => {
2544
- this.seeMoreText = resources[0];
2545
- this.seeLessText = resources[1];
2696
+ __classPrivateFieldSet(this, _SkyTextExpandRepeaterComponent_seeMoreText, resources[0], "f");
2697
+ __classPrivateFieldSet(this, _SkyTextExpandRepeaterComponent_seeLessText, resources[1], "f");
2546
2698
  /* sanity check */
2547
2699
  /* istanbul ignore else */
2548
2700
  if (!this.isExpanded) {
2549
- this.buttonText = this.seeMoreText;
2701
+ this.buttonText = __classPrivateFieldGet(this, _SkyTextExpandRepeaterComponent_seeMoreText, "f");
2550
2702
  }
2551
2703
  else {
2552
- this.buttonText = this.seeLessText;
2704
+ this.buttonText = __classPrivateFieldGet(this, _SkyTextExpandRepeaterComponent_seeLessText, "f");
2553
2705
  }
2554
- this.changeDetector.detectChanges();
2706
+ __classPrivateFieldGet(this, _SkyTextExpandRepeaterComponent_changeDetector, "f").detectChanges();
2555
2707
  });
2556
2708
  }
2557
- ngOnChanges(changes) {
2558
- /* istanbul ignore else */
2559
- if (changes.maxItems || changes.data) {
2560
- this.setup(this.data);
2561
- }
2562
- }
2563
2709
  animationEnd() {
2564
- // Ensure the correct items are displayed
2710
+ // Ensure all items that should be hidden are hidden. This is because we need them shown during the animation window for visual purposes.
2565
2711
  if (!this.isExpanded) {
2566
- for (let i = this.maxItems; i < this.contentItems.length; i++) {
2567
- this.textExpandRepeaterAdapter.hideItem(this.items[i]);
2568
- }
2712
+ __classPrivateFieldGet(this, _SkyTextExpandRepeaterComponent_instances, "m", _SkyTextExpandRepeaterComponent_hideItems).call(this);
2569
2713
  }
2570
- // Set height back to auto so the browser can change the height as needed with window changes
2571
- this.textExpandRepeaterAdapter.setContainerHeight(this.containerEl, undefined);
2714
+ // This set timeout is needed as the `animationEnd` function is called by the angular animation callback prior to the animation setting the style on the element
2715
+ setTimeout(() => {
2716
+ if (this.containerEl) {
2717
+ // Set height back to auto so the browser can change the height as needed with window changes
2718
+ __classPrivateFieldGet(this, _SkyTextExpandRepeaterComponent_textExpandRepeaterAdapter, "f").removeContainerMaxHeight(this.containerEl);
2719
+ }
2720
+ });
2572
2721
  }
2573
2722
  repeaterExpand() {
2574
2723
  if (!this.isExpanded) {
2575
- this.setContainerMaxHeight();
2576
- setTimeout(() => {
2577
- this.isExpanded = true;
2578
- this.animateRepeater(true);
2579
- });
2724
+ __classPrivateFieldGet(this, _SkyTextExpandRepeaterComponent_instances, "m", _SkyTextExpandRepeaterComponent_animateRepeater).call(this, true);
2580
2725
  }
2581
2726
  else {
2582
- this.setContainerMaxHeight();
2583
- setTimeout(() => {
2584
- this.isExpanded = false;
2585
- this.animateRepeater(false);
2586
- });
2727
+ __classPrivateFieldGet(this, _SkyTextExpandRepeaterComponent_instances, "m", _SkyTextExpandRepeaterComponent_animateRepeater).call(this, false);
2587
2728
  }
2588
2729
  }
2589
- setContainerMaxHeight() {
2590
- // ensure everything is reset
2591
- this.animationEnd();
2592
- /* Before animation is kicked off, ensure that a maxHeight exists */
2593
- /* Once we have support for angular v4 animations with parameters we can use that instead */
2594
- const currentHeight = this.textExpandRepeaterAdapter.getContainerHeight(this.containerEl);
2595
- this.textExpandRepeaterAdapter.setContainerHeight(this.containerEl, `${currentHeight}px`);
2596
- }
2597
- animateRepeater(expanding) {
2598
- const adapter = this.textExpandRepeaterAdapter;
2599
- const container = this.containerEl;
2600
- adapter.setContainerHeight(container, undefined);
2601
- const currentHeight = adapter.getContainerHeight(container);
2602
- for (let i = this.maxItems; i < this.contentItems.length; i++) {
2603
- if (!expanding) {
2604
- adapter.hideItem(this.items[i]);
2605
- }
2606
- else {
2607
- adapter.showItem(this.items[i]);
2608
- }
2730
+ }
2731
+ _SkyTextExpandRepeaterComponent_seeMoreText = new WeakMap(), _SkyTextExpandRepeaterComponent_seeLessText = new WeakMap(), _SkyTextExpandRepeaterComponent_htmlItems = new WeakMap(), _SkyTextExpandRepeaterComponent__data = new WeakMap(), _SkyTextExpandRepeaterComponent__maxItems = new WeakMap(), _SkyTextExpandRepeaterComponent_resources = new WeakMap(), _SkyTextExpandRepeaterComponent_elRef = new WeakMap(), _SkyTextExpandRepeaterComponent_textExpandRepeaterAdapter = new WeakMap(), _SkyTextExpandRepeaterComponent_changeDetector = new WeakMap(), _SkyTextExpandRepeaterComponent_instances = new WeakSet(), _SkyTextExpandRepeaterComponent_animateRepeater = function _SkyTextExpandRepeaterComponent_animateRepeater(expanding) {
2732
+ const adapter = __classPrivateFieldGet(this, _SkyTextExpandRepeaterComponent_textExpandRepeaterAdapter, "f");
2733
+ const container = this.containerEl;
2734
+ if (container) {
2735
+ if (expanding) {
2736
+ __classPrivateFieldGet(this, _SkyTextExpandRepeaterComponent_instances, "m", _SkyTextExpandRepeaterComponent_showItems).call(this);
2737
+ }
2738
+ else {
2739
+ __classPrivateFieldGet(this, _SkyTextExpandRepeaterComponent_instances, "m", _SkyTextExpandRepeaterComponent_hideItems).call(this);
2609
2740
  }
2610
2741
  const newHeight = adapter.getContainerHeight(container);
2742
+ this.transitionHeight = newHeight;
2611
2743
  if (!expanding) {
2612
- this.buttonText = this.seeMoreText;
2744
+ this.buttonText = __classPrivateFieldGet(this, _SkyTextExpandRepeaterComponent_seeMoreText, "f");
2613
2745
  }
2614
2746
  else {
2615
- this.buttonText = this.seeLessText;
2747
+ this.buttonText = __classPrivateFieldGet(this, _SkyTextExpandRepeaterComponent_seeLessText, "f");
2616
2748
  }
2617
- if (newHeight < currentHeight) {
2618
- // The new text is smaller than the old text, so put the old text back before doing
2619
- // the collapse animation to avoid showing a big chunk of whitespace.
2620
- for (let i = this.maxItems; i < this.contentItems.length; i++) {
2621
- adapter.showItem(this.items[i]);
2622
- }
2623
- }
2624
- adapter.setContainerHeight(container, `${currentHeight}px`);
2625
- // This timeout is necessary due to the browser needing to pick up the non-auto height being set
2626
- // in order to do the transtion in height correctly. Without it the transition does not fire.
2627
- setTimeout(() => {
2628
- adapter.setContainerHeight(container, `${newHeight}px`);
2629
- /* This resets values if the transition does not get kicked off */
2630
- setTimeout(() => {
2631
- this.animationEnd();
2632
- }, 500);
2633
- }, 10);
2634
- }
2635
- setup(value) {
2636
- if (value) {
2637
- const length = value.length;
2638
- if (length > this.maxItems) {
2639
- this.expandable = true;
2640
- this.buttonText = this.seeMoreText;
2641
- this.isExpanded = false;
2642
- }
2643
- else {
2644
- this.expandable = false;
2749
+ if (!expanding) {
2750
+ // Show all items during animation for visual purposes.
2751
+ __classPrivateFieldGet(this, _SkyTextExpandRepeaterComponent_instances, "m", _SkyTextExpandRepeaterComponent_showItems).call(this);
2752
+ }
2753
+ this.isExpanded = expanding;
2754
+ }
2755
+ }, _SkyTextExpandRepeaterComponent_setup = function _SkyTextExpandRepeaterComponent_setup(value) {
2756
+ if (value) {
2757
+ const length = value.length;
2758
+ if (this.maxItems && length > this.maxItems) {
2759
+ this.expandable = true;
2760
+ this.buttonText = __classPrivateFieldGet(this, _SkyTextExpandRepeaterComponent_seeMoreText, "f");
2761
+ __classPrivateFieldGet(this, _SkyTextExpandRepeaterComponent_instances, "m", _SkyTextExpandRepeaterComponent_hideItems).call(this);
2762
+ if (this.containerEl) {
2763
+ this.transitionHeight =
2764
+ __classPrivateFieldGet(this, _SkyTextExpandRepeaterComponent_textExpandRepeaterAdapter, "f").getContainerHeight(this.containerEl);
2645
2765
  }
2646
- this.contentItems = value;
2766
+ this.isExpanded = false;
2647
2767
  }
2648
2768
  else {
2649
- this.contentItems = undefined;
2650
2769
  this.expandable = false;
2770
+ this.isExpanded = undefined;
2651
2771
  }
2652
2772
  }
2653
- }
2773
+ else {
2774
+ this.expandable = false;
2775
+ this.isExpanded = undefined;
2776
+ }
2777
+ __classPrivateFieldGet(this, _SkyTextExpandRepeaterComponent_changeDetector, "f").markForCheck();
2778
+ }, _SkyTextExpandRepeaterComponent_hideItems = function _SkyTextExpandRepeaterComponent_hideItems() {
2779
+ if (__classPrivateFieldGet(this, _SkyTextExpandRepeaterComponent_htmlItems, "f") && this.maxItems) {
2780
+ for (let i = this.maxItems; i < __classPrivateFieldGet(this, _SkyTextExpandRepeaterComponent_htmlItems, "f").length; i++) {
2781
+ __classPrivateFieldGet(this, _SkyTextExpandRepeaterComponent_textExpandRepeaterAdapter, "f").hideItem(__classPrivateFieldGet(this, _SkyTextExpandRepeaterComponent_htmlItems, "f")[i]);
2782
+ }
2783
+ }
2784
+ }, _SkyTextExpandRepeaterComponent_showItems = function _SkyTextExpandRepeaterComponent_showItems() {
2785
+ if (__classPrivateFieldGet(this, _SkyTextExpandRepeaterComponent_htmlItems, "f") && this.maxItems) {
2786
+ for (let i = this.maxItems; i < __classPrivateFieldGet(this, _SkyTextExpandRepeaterComponent_htmlItems, "f").length; i++) {
2787
+ __classPrivateFieldGet(this, _SkyTextExpandRepeaterComponent_textExpandRepeaterAdapter, "f").showItem(__classPrivateFieldGet(this, _SkyTextExpandRepeaterComponent_htmlItems, "f")[i]);
2788
+ }
2789
+ }
2790
+ };
2654
2791
  SkyTextExpandRepeaterComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.2.0", ngImport: i0, type: SkyTextExpandRepeaterComponent, deps: [{ token: i1$3.SkyLibResourcesService }, { token: i0.ElementRef }, { token: SkyTextExpandRepeaterAdapterService }, { token: i0.ChangeDetectorRef }], target: i0.ɵɵFactoryTarget.Component });
2655
- SkyTextExpandRepeaterComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "14.2.0", type: SkyTextExpandRepeaterComponent, selector: "sky-text-expand-repeater", inputs: { data: "data", itemTemplate: "itemTemplate", listStyle: "listStyle", maxItems: "maxItems" }, providers: [SkyTextExpandRepeaterAdapterService], viewQueries: [{ propertyName: "containerEl", first: true, predicate: ["container"], descendants: true, read: ElementRef }], usesOnChanges: true, ngImport: i0, template: "<div class=\"sky-text-expand-repeater\">\n <ul\n *ngIf=\"listStyle !== 'ordered'\"\n class=\"sky-text-expand-repeater-container\"\n [id]=\"contentSectionId\"\n (transitionend)=\"animationEnd()\"\n [ngClass]=\"{\n 'sky-text-expand-repeater-list-style-none': listStyle === 'unstyled'\n }\"\n #container\n >\n <ng-template [ngTemplateOutlet]=\"listItemTemplate\"></ng-template>\n </ul>\n <ol\n *ngIf=\"listStyle === 'ordered'\"\n class=\"sky-text-expand-repeater-container\"\n [id]=\"contentSectionId\"\n (transitionend)=\"animationEnd()\"\n #container\n >\n <ng-template [ngTemplateOutlet]=\"listItemTemplate\"></ng-template>\n </ol>\n <button\n *ngIf=\"expandable\"\n type=\"button\"\n class=\"sky-btn sky-btn-link-inline sky-text-expand-repeater-see-more\"\n [attr.aria-expanded]=\"isExpanded\"\n [attr.aria-controls]=\"contentSectionId\"\n (click)=\"repeaterExpand()\"\n [ngClass]=\"{\n 'sky-text-expand-repeater-see-more-list-style-none':\n listStyle === 'unstyled'\n }\"\n >\n {{ buttonText }}\n </button>\n</div>\n\n<ng-template let-item #defaultItemTemplate>\n {{ item }}\n</ng-template>\n\n<ng-template #listItemTemplate>\n <li *ngFor=\"let item of contentItems\" class=\"sky-text-expand-repeater-item\">\n <ng-template\n [ngTemplateOutlet]=\"itemTemplate || defaultItemTemplate\"\n [ngTemplateOutletContext]=\"{ $implicit: item }\"\n ></ng-template>\n </li>\n</ng-template>\n", styles: [".sky-text-expand-repeater-container{overflow-y:hidden;height:auto;margin-bottom:0;transition:max-height .25s}.sky-text-expand-repeater-see-more{white-space:nowrap;margin-left:40px}.sky-text-expand-repeater-list-style-none{list-style-type:none;padding-left:0}.sky-text-expand-repeater-see-more-list-style-none{margin-left:0}\n"], dependencies: [{ kind: "directive", type: i1.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i1.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i1.NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }] });
2792
+ SkyTextExpandRepeaterComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "14.2.0", type: SkyTextExpandRepeaterComponent, selector: "sky-text-expand-repeater", inputs: { data: "data", itemTemplate: "itemTemplate", listStyle: "listStyle", maxItems: "maxItems" }, providers: [SkyTextExpandRepeaterAdapterService], viewQueries: [{ propertyName: "containerEl", first: true, predicate: ["container"], descendants: true, read: ElementRef }], ngImport: i0, template: "<div class=\"sky-text-expand-repeater\">\n <ul\n *ngIf=\"listStyle !== 'ordered'\"\n class=\"sky-text-expand-repeater-container\"\n [@expansionAnimation]=\"{\n value: isExpanded,\n params: { transitionHeight: transitionHeight }\n }\"\n (@expansionAnimation.done)=\"animationEnd()\"\n [id]=\"contentSectionId\"\n [ngClass]=\"{\n 'sky-text-expand-repeater-list-style-none': listStyle === 'unstyled'\n }\"\n #container\n >\n <ng-template [ngTemplateOutlet]=\"listItemTemplate\"></ng-template>\n </ul>\n <ol\n *ngIf=\"listStyle === 'ordered'\"\n class=\"sky-text-expand-repeater-container\"\n [@expansionAnimation]=\"{\n value: isExpanded,\n params: { transitionHeight: transitionHeight }\n }\"\n (@expansionAnimation.done)=\"animationEnd()\"\n [id]=\"contentSectionId\"\n #container\n >\n <ng-template [ngTemplateOutlet]=\"listItemTemplate\"></ng-template>\n </ol>\n <button\n *ngIf=\"expandable\"\n type=\"button\"\n class=\"sky-btn sky-btn-link-inline sky-text-expand-repeater-see-more\"\n [attr.aria-expanded]=\"!!isExpanded\"\n [attr.aria-controls]=\"contentSectionId\"\n (click)=\"repeaterExpand()\"\n [ngClass]=\"{\n 'sky-text-expand-repeater-see-more-list-style-none':\n listStyle === 'unstyled'\n }\"\n >\n {{ buttonText }}\n </button>\n</div>\n\n<ng-template let-item #defaultItemTemplate>\n {{ item }}\n</ng-template>\n\n<ng-template #listItemTemplate>\n <li *ngFor=\"let item of data\" class=\"sky-text-expand-repeater-item\">\n <ng-template\n [ngTemplateOutlet]=\"itemTemplate || defaultItemTemplate\"\n [ngTemplateOutletContext]=\"{ $implicit: item }\"\n ></ng-template>\n </li>\n</ng-template>\n", styles: [".sky-text-expand-repeater-container{overflow-y:hidden;height:auto;margin-bottom:0}.sky-text-expand-repeater-see-more{white-space:nowrap;margin-left:40px}.sky-text-expand-repeater-list-style-none{list-style-type:none;padding-left:0}.sky-text-expand-repeater-see-more-list-style-none{margin-left:0}\n"], dependencies: [{ kind: "directive", type: i1.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i1.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i1.NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }], animations: [
2793
+ trigger('expansionAnimation', [
2794
+ transition(':enter', []),
2795
+ state('true', style({
2796
+ maxHeight: '{{transitionHeight}}px',
2797
+ }), { params: { transitionHeight: 0 } }),
2798
+ state('false', style({
2799
+ maxHeight: '{{transitionHeight}}px',
2800
+ }), { params: { transitionHeight: 0 } }),
2801
+ transition('true => false', animate('250ms ease')),
2802
+ transition('false => true', animate('250ms ease')),
2803
+ transition('void => *', []),
2804
+ ]),
2805
+ ] });
2656
2806
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.2.0", ngImport: i0, type: SkyTextExpandRepeaterComponent, decorators: [{
2657
2807
  type: Component,
2658
- args: [{ selector: 'sky-text-expand-repeater', providers: [SkyTextExpandRepeaterAdapterService], template: "<div class=\"sky-text-expand-repeater\">\n <ul\n *ngIf=\"listStyle !== 'ordered'\"\n class=\"sky-text-expand-repeater-container\"\n [id]=\"contentSectionId\"\n (transitionend)=\"animationEnd()\"\n [ngClass]=\"{\n 'sky-text-expand-repeater-list-style-none': listStyle === 'unstyled'\n }\"\n #container\n >\n <ng-template [ngTemplateOutlet]=\"listItemTemplate\"></ng-template>\n </ul>\n <ol\n *ngIf=\"listStyle === 'ordered'\"\n class=\"sky-text-expand-repeater-container\"\n [id]=\"contentSectionId\"\n (transitionend)=\"animationEnd()\"\n #container\n >\n <ng-template [ngTemplateOutlet]=\"listItemTemplate\"></ng-template>\n </ol>\n <button\n *ngIf=\"expandable\"\n type=\"button\"\n class=\"sky-btn sky-btn-link-inline sky-text-expand-repeater-see-more\"\n [attr.aria-expanded]=\"isExpanded\"\n [attr.aria-controls]=\"contentSectionId\"\n (click)=\"repeaterExpand()\"\n [ngClass]=\"{\n 'sky-text-expand-repeater-see-more-list-style-none':\n listStyle === 'unstyled'\n }\"\n >\n {{ buttonText }}\n </button>\n</div>\n\n<ng-template let-item #defaultItemTemplate>\n {{ item }}\n</ng-template>\n\n<ng-template #listItemTemplate>\n <li *ngFor=\"let item of contentItems\" class=\"sky-text-expand-repeater-item\">\n <ng-template\n [ngTemplateOutlet]=\"itemTemplate || defaultItemTemplate\"\n [ngTemplateOutletContext]=\"{ $implicit: item }\"\n ></ng-template>\n </li>\n</ng-template>\n", styles: [".sky-text-expand-repeater-container{overflow-y:hidden;height:auto;margin-bottom:0;transition:max-height .25s}.sky-text-expand-repeater-see-more{white-space:nowrap;margin-left:40px}.sky-text-expand-repeater-list-style-none{list-style-type:none;padding-left:0}.sky-text-expand-repeater-see-more-list-style-none{margin-left:0}\n"] }]
2808
+ args: [{ animations: [
2809
+ trigger('expansionAnimation', [
2810
+ transition(':enter', []),
2811
+ state('true', style({
2812
+ maxHeight: '{{transitionHeight}}px',
2813
+ }), { params: { transitionHeight: 0 } }),
2814
+ state('false', style({
2815
+ maxHeight: '{{transitionHeight}}px',
2816
+ }), { params: { transitionHeight: 0 } }),
2817
+ transition('true => false', animate('250ms ease')),
2818
+ transition('false => true', animate('250ms ease')),
2819
+ transition('void => *', []),
2820
+ ]),
2821
+ ], selector: 'sky-text-expand-repeater', providers: [SkyTextExpandRepeaterAdapterService], template: "<div class=\"sky-text-expand-repeater\">\n <ul\n *ngIf=\"listStyle !== 'ordered'\"\n class=\"sky-text-expand-repeater-container\"\n [@expansionAnimation]=\"{\n value: isExpanded,\n params: { transitionHeight: transitionHeight }\n }\"\n (@expansionAnimation.done)=\"animationEnd()\"\n [id]=\"contentSectionId\"\n [ngClass]=\"{\n 'sky-text-expand-repeater-list-style-none': listStyle === 'unstyled'\n }\"\n #container\n >\n <ng-template [ngTemplateOutlet]=\"listItemTemplate\"></ng-template>\n </ul>\n <ol\n *ngIf=\"listStyle === 'ordered'\"\n class=\"sky-text-expand-repeater-container\"\n [@expansionAnimation]=\"{\n value: isExpanded,\n params: { transitionHeight: transitionHeight }\n }\"\n (@expansionAnimation.done)=\"animationEnd()\"\n [id]=\"contentSectionId\"\n #container\n >\n <ng-template [ngTemplateOutlet]=\"listItemTemplate\"></ng-template>\n </ol>\n <button\n *ngIf=\"expandable\"\n type=\"button\"\n class=\"sky-btn sky-btn-link-inline sky-text-expand-repeater-see-more\"\n [attr.aria-expanded]=\"!!isExpanded\"\n [attr.aria-controls]=\"contentSectionId\"\n (click)=\"repeaterExpand()\"\n [ngClass]=\"{\n 'sky-text-expand-repeater-see-more-list-style-none':\n listStyle === 'unstyled'\n }\"\n >\n {{ buttonText }}\n </button>\n</div>\n\n<ng-template let-item #defaultItemTemplate>\n {{ item }}\n</ng-template>\n\n<ng-template #listItemTemplate>\n <li *ngFor=\"let item of data\" class=\"sky-text-expand-repeater-item\">\n <ng-template\n [ngTemplateOutlet]=\"itemTemplate || defaultItemTemplate\"\n [ngTemplateOutletContext]=\"{ $implicit: item }\"\n ></ng-template>\n </li>\n</ng-template>\n", styles: [".sky-text-expand-repeater-container{overflow-y:hidden;height:auto;margin-bottom:0}.sky-text-expand-repeater-see-more{white-space:nowrap;margin-left:40px}.sky-text-expand-repeater-list-style-none{list-style-type:none;padding-left:0}.sky-text-expand-repeater-see-more-list-style-none{margin-left:0}\n"] }]
2659
2822
  }], ctorParameters: function () { return [{ type: i1$3.SkyLibResourcesService }, { type: i0.ElementRef }, { type: SkyTextExpandRepeaterAdapterService }, { type: i0.ChangeDetectorRef }]; }, propDecorators: { data: [{
2660
2823
  type: Input
2661
2824
  }], itemTemplate: [{
@@ -2778,5 +2941,5 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.2.0", ngImpor
2778
2941
  * Generated bundle index. Do not edit.
2779
2942
  */
2780
2943
 
2781
- export { SkyActionButtonModule, SkyBackToTopMessageType, SkyBackToTopModule, SkyBoxModule, SkyCardModule, SkyDefinitionListModule, SkyDescriptionListMode, SkyDescriptionListModule, SkyFluidGridGutterSize, SkyFluidGridModule, SkyFormatModule, SkyInlineDeleteModule, SkyInlineDeleteType, SkyPageModule, SkyPageSummaryModule, SkyTextExpandModule, SkyTextExpandRepeaterModule, SkyToolbarModule, SkyActionButtonComponent as λ1, SkyCardActionsComponent as λ10, SkyCardContentComponent as λ11, SkyCardTitleComponent as λ12, SkyDefinitionListComponent as λ13, SkyDefinitionListContentComponent as λ14, SkyDefinitionListHeadingComponent as λ15, SkyDefinitionListLabelComponent as λ16, SkyDefinitionListValueComponent as λ17, SkyDescriptionListComponent as λ18, SkyDescriptionListTermComponent as λ19, SkyActionButtonContainerComponent as λ2, SkyDescriptionListDescriptionComponent as λ20, SkyDescriptionListContentComponent as λ21, SkyFluidGridComponent as λ22, SkyRowComponent as λ23, SkyColumnComponent as λ24, SkyFormatComponent as λ25, SkyPageComponent as λ26, SkyPageSummaryComponent as λ27, SkyPageSummaryAlertComponent as λ28, SkyPageSummaryContentComponent as λ29, SkyActionButtonDetailsComponent as λ3, SkyPageSummaryImageComponent as λ30, SkyPageSummaryKeyInfoComponent as λ31, SkyPageSummaryStatusComponent as λ32, SkyPageSummarySubtitleComponent as λ33, SkyPageSummaryTitleComponent as λ34, SkyTextExpandComponent as λ35, SkyTextExpandRepeaterComponent as λ36, SkyToolbarComponent as λ37, SkyToolbarSectionComponent as λ38, SkyToolbarItemComponent as λ39, SkyActionButtonHeaderComponent as λ4, SkyToolbarViewActionsComponent as λ40, SkyBoxComponent as λ41, SkyBoxHeaderComponent as λ42, SkyBoxContentComponent as λ43, SkyBoxControlsComponent as λ44, SkyActionButtonIconComponent as λ5, SkyBackToTopComponent as λ6, SkyBackToTopDirective as λ7, SkyInlineDeleteComponent as λ8, SkyCardComponent as λ9 };
2944
+ export { SkyActionButtonModule, SkyBackToTopMessageType, SkyBackToTopModule, SkyBoxModule, SkyCardModule, SkyDefinitionListModule, SkyDescriptionListMode, SkyDescriptionListModule, SkyFluidGridModule, SkyFormatModule, SkyInlineDeleteModule, SkyInlineDeleteType, SkyPageModule, SkyPageSummaryModule, SkyTextExpandModule, SkyTextExpandRepeaterModule, SkyToolbarModule, SkyActionButtonComponent as λ1, SkyCardActionsComponent as λ10, SkyCardContentComponent as λ11, SkyCardTitleComponent as λ12, SkyDefinitionListComponent as λ13, SkyDefinitionListContentComponent as λ14, SkyDefinitionListHeadingComponent as λ15, SkyDefinitionListLabelComponent as λ16, SkyDefinitionListValueComponent as λ17, SkyDescriptionListComponent as λ18, SkyDescriptionListTermComponent as λ19, SkyActionButtonContainerComponent as λ2, SkyDescriptionListDescriptionComponent as λ20, SkyDescriptionListContentComponent as λ21, SkyFluidGridComponent as λ22, SkyRowComponent as λ23, SkyColumnComponent as λ24, SkyFormatComponent as λ25, SkyPageComponent as λ26, SkyPageSummaryComponent as λ27, SkyPageSummaryAlertComponent as λ28, SkyPageSummaryContentComponent as λ29, SkyActionButtonDetailsComponent as λ3, SkyPageSummaryImageComponent as λ30, SkyPageSummaryKeyInfoComponent as λ31, SkyPageSummaryStatusComponent as λ32, SkyPageSummarySubtitleComponent as λ33, SkyPageSummaryTitleComponent as λ34, SkyTextExpandComponent as λ35, SkyTextExpandRepeaterComponent as λ36, SkyToolbarComponent as λ37, SkyToolbarSectionComponent as λ38, SkyToolbarItemComponent as λ39, SkyActionButtonHeaderComponent as λ4, SkyToolbarViewActionsComponent as λ40, SkyBoxComponent as λ41, SkyBoxHeaderComponent as λ42, SkyBoxContentComponent as λ43, SkyBoxControlsComponent as λ44, SkyActionButtonIconComponent as λ5, SkyBackToTopComponent as λ6, SkyBackToTopDirective as λ7, SkyInlineDeleteComponent as λ8, SkyCardComponent as λ9 };
2782
2945
  //# sourceMappingURL=skyux-layout.mjs.map