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

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 (82) hide show
  1. package/documentation.json +1549 -817
  2. package/esm2020/index.mjs +2 -2
  3. package/esm2020/lib/modules/action-button/action-button-container.component.mjs +2 -2
  4. package/esm2020/lib/modules/back-to-top/back-to-top.directive.mjs +2 -2
  5. package/esm2020/lib/modules/card/card.component.mjs +38 -11
  6. package/esm2020/lib/modules/definition-list/definition-list-label.component.mjs +1 -1
  7. package/esm2020/lib/modules/definition-list/definition-list-value.component.mjs +3 -3
  8. package/esm2020/lib/modules/definition-list/definition-list.component.mjs +1 -1
  9. package/esm2020/lib/modules/definition-list/definition-list.service.mjs +1 -1
  10. package/esm2020/lib/modules/description-list/description-list-adapter-service.mjs +26 -22
  11. package/esm2020/lib/modules/description-list/description-list-content.component.mjs +2 -2
  12. package/esm2020/lib/modules/description-list/description-list-description.component.mjs +16 -11
  13. package/esm2020/lib/modules/description-list/description-list-term.component.mjs +1 -1
  14. package/esm2020/lib/modules/description-list/description-list.component.mjs +25 -16
  15. package/esm2020/lib/modules/fluid-grid/column.component.mjs +19 -1
  16. package/esm2020/lib/modules/fluid-grid/fluid-grid.component.mjs +15 -35
  17. package/esm2020/lib/modules/fluid-grid/row.component.mjs +1 -1
  18. package/esm2020/lib/modules/fluid-grid/types/fluid-grid-gutter-size-type.mjs +1 -1
  19. package/esm2020/lib/modules/format/format.component.mjs +34 -26
  20. package/esm2020/lib/modules/inline-delete/inline-delete-adapter.service.mjs +91 -83
  21. package/esm2020/lib/modules/inline-delete/inline-delete.component.mjs +15 -9
  22. package/esm2020/lib/modules/page/page-layout-type.mjs +2 -0
  23. package/esm2020/lib/modules/page/page-theme-adapter.service.mjs +23 -11
  24. package/esm2020/lib/modules/page/page.component.mjs +28 -9
  25. package/esm2020/lib/modules/page/page.module.mjs +5 -3
  26. package/esm2020/lib/modules/page-summary/page-summary-adapter.service.mjs +1 -1
  27. package/esm2020/lib/modules/page-summary/page-summary.component.mjs +40 -16
  28. package/esm2020/lib/modules/text-expand/text-expand-adapter.service.mjs +8 -10
  29. package/esm2020/lib/modules/text-expand/text-expand-modal-context-token.mjs +6 -0
  30. package/esm2020/lib/modules/text-expand/text-expand-modal-context.mjs +2 -6
  31. package/esm2020/lib/modules/text-expand/text-expand-modal.component.mjs +12 -10
  32. package/esm2020/lib/modules/text-expand/text-expand.component.mjs +188 -127
  33. package/esm2020/lib/modules/text-expand-repeater/text-expand-repeater-adapter.service.mjs +10 -12
  34. package/esm2020/lib/modules/text-expand-repeater/text-expand-repeater.component.mjs +139 -95
  35. package/esm2020/lib/modules/toolbar/toolbar.component.mjs +2 -2
  36. package/esm2020/testing/action-button-fixture.mjs +12 -6
  37. package/esm2020/testing/card-fixture.mjs +19 -16
  38. package/esm2020/testing/page-summary-fixture.mjs +9 -5
  39. package/fesm2015/skyux-layout-testing.mjs +35 -24
  40. package/fesm2015/skyux-layout-testing.mjs.map +1 -1
  41. package/fesm2015/skyux-layout.mjs +707 -516
  42. package/fesm2015/skyux-layout.mjs.map +1 -1
  43. package/fesm2020/skyux-layout-testing.mjs +35 -24
  44. package/fesm2020/skyux-layout-testing.mjs.map +1 -1
  45. package/fesm2020/skyux-layout.mjs +699 -516
  46. package/fesm2020/skyux-layout.mjs.map +1 -1
  47. package/index.d.ts +1 -1
  48. package/lib/modules/back-to-top/back-to-top.directive.d.ts +1 -1
  49. package/lib/modules/card/card.component.d.ts +7 -6
  50. package/lib/modules/definition-list/definition-list-label.component.d.ts +1 -1
  51. package/lib/modules/definition-list/definition-list-value.component.d.ts +1 -1
  52. package/lib/modules/definition-list/definition-list.component.d.ts +2 -2
  53. package/lib/modules/definition-list/definition-list.service.d.ts +2 -2
  54. package/lib/modules/description-list/description-list-adapter-service.d.ts +1 -2
  55. package/lib/modules/description-list/description-list-content.component.d.ts +2 -2
  56. package/lib/modules/description-list/description-list-description.component.d.ts +5 -7
  57. package/lib/modules/description-list/description-list-term.component.d.ts +1 -1
  58. package/lib/modules/description-list/description-list.component.d.ts +6 -7
  59. package/lib/modules/fluid-grid/column.component.d.ts +7 -5
  60. package/lib/modules/fluid-grid/fluid-grid.component.d.ts +3 -9
  61. package/lib/modules/fluid-grid/row.component.d.ts +1 -1
  62. package/lib/modules/fluid-grid/types/fluid-grid-gutter-size-type.d.ts +1 -1
  63. package/lib/modules/format/format.component.d.ts +5 -7
  64. package/lib/modules/inline-delete/inline-delete-adapter.service.d.ts +1 -11
  65. package/lib/modules/inline-delete/inline-delete.component.d.ts +3 -5
  66. package/lib/modules/page/page-layout-type.d.ts +1 -0
  67. package/lib/modules/page/page-theme-adapter.service.d.ts +2 -1
  68. package/lib/modules/page/page.component.d.ts +11 -3
  69. package/lib/modules/page/page.module.d.ts +2 -1
  70. package/lib/modules/page-summary/page-summary.component.d.ts +8 -9
  71. package/lib/modules/text-expand/text-expand-adapter.service.d.ts +3 -4
  72. package/lib/modules/text-expand/text-expand-modal-context-token.d.ts +6 -0
  73. package/lib/modules/text-expand/text-expand-modal-context.d.ts +1 -1
  74. package/lib/modules/text-expand/text-expand.component.d.ts +18 -25
  75. package/lib/modules/text-expand-repeater/text-expand-repeater-adapter.service.d.ts +4 -5
  76. package/lib/modules/text-expand-repeater/text-expand-repeater.component.d.ts +13 -21
  77. package/package.json +9 -9
  78. package/testing/action-button-fixture.d.ts +4 -4
  79. package/testing/card-fixture.d.ts +3 -5
  80. package/testing/page-summary-fixture.d.ts +4 -4
  81. package/esm2020/lib/modules/fluid-grid/fluid-grid-gutter-size.mjs +0 -20
  82. package/lib/modules/fluid-grid/fluid-grid-gutter-size.d.ts +0 -18
@@ -1,9 +1,9 @@
1
1
  import * as i5 from '@angular/cdk/observers';
2
2
  import { ObserversModule } from '@angular/cdk/observers';
3
3
  import * as i1 from '@angular/common';
4
- import { CommonModule } from '@angular/common';
4
+ import { CommonModule, DOCUMENT } 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, Inject, InjectionToken } 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;
@@ -553,7 +553,7 @@ class SkyBackToTopDirective {
553
553
  * Specifies configuration options for the back to top component.
554
554
  */
555
555
  set skyBackToTop(value) {
556
- __classPrivateFieldSet(this, _SkyBackToTopDirective_buttonHidden, !!value?.buttonHidden, "f");
556
+ __classPrivateFieldSet(this, _SkyBackToTopDirective_buttonHidden, !!(value && value?.buttonHidden), "f");
557
557
  __classPrivateFieldGet(this, _SkyBackToTopDirective_instances, "m", _SkyBackToTopDirective_handleBackToTopButton).call(this, __classPrivateFieldGet(this, _SkyBackToTopDirective_elementInView, "f"));
558
558
  }
559
559
  /**
@@ -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;
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();
804
827
  }
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();
818
- }
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: [":host{display:block}.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{width:auto}.sky-description-list.sky-description-list-vertical-mode .sky-description-list-content:not(:last-child){margin:0 0 15px}.sky-description-list.sky-description-list-horizontal-mode{display:flex;flex-wrap:wrap;margin:0 0 var(--sky-compat-description-list-margin-bottom, -15px) 0}.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:not(:last-child){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:not(:last-child){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: [":host{display:block}.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{width:auto}.sky-description-list.sky-description-list-vertical-mode .sky-description-list-content:not(:last-child){margin:0 0 15px}.sky-description-list.sky-description-list-horizontal-mode{display:flex;flex-wrap:wrap;margin:0 0 var(--sky-compat-description-list-margin-bottom, -15px) 0}.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:not(:last-child){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:not(:last-child){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];
1852
1885
  }
1886
+ else {
1887
+ item.text = textPart;
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,65 +1916,93 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.2.0", ngImpor
1879
1916
  }]
1880
1917
  }] });
1881
1918
 
1919
+ var _SkyPageThemeAdapterService_styleEl, _SkyPageThemeAdapterService_document;
1882
1920
  /**
1883
1921
  * @internal
1884
1922
  */
1885
1923
  class SkyPageThemeAdapterService {
1924
+ constructor(document) {
1925
+ _SkyPageThemeAdapterService_styleEl.set(this, void 0);
1926
+ _SkyPageThemeAdapterService_document.set(this, void 0);
1927
+ __classPrivateFieldSet(this, _SkyPageThemeAdapterService_document, document, "f");
1928
+ }
1886
1929
  /**
1887
1930
  * We can't use ViewEncapsulation.None for this behavior because Angular does
1888
1931
  * not remove `style` tags from the HEAD element after route changes.
1889
1932
  * @see https://github.com/angular/angular/issues/16670
1890
1933
  */
1891
1934
  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);
1935
+ if (!__classPrivateFieldGet(this, _SkyPageThemeAdapterService_styleEl, "f")) {
1936
+ __classPrivateFieldSet(this, _SkyPageThemeAdapterService_styleEl, __classPrivateFieldGet(this, _SkyPageThemeAdapterService_document, "f").createElement('style'), "f");
1937
+ __classPrivateFieldGet(this, _SkyPageThemeAdapterService_styleEl, "f").appendChild(__classPrivateFieldGet(this, _SkyPageThemeAdapterService_document, "f").createTextNode('body:not(.sky-theme-modern) { background-color: #fff; }'));
1938
+ __classPrivateFieldGet(this, _SkyPageThemeAdapterService_document, "f").head.appendChild(__classPrivateFieldGet(this, _SkyPageThemeAdapterService_styleEl, "f"));
1896
1939
  }
1897
1940
  }
1898
1941
  removeTheme() {
1899
- if (this.styleEl) {
1900
- document.head.removeChild(this.styleEl);
1901
- this.styleEl = undefined;
1942
+ if (__classPrivateFieldGet(this, _SkyPageThemeAdapterService_styleEl, "f")) {
1943
+ __classPrivateFieldGet(this, _SkyPageThemeAdapterService_styleEl, "f").remove();
1944
+ __classPrivateFieldSet(this, _SkyPageThemeAdapterService_styleEl, undefined, "f");
1902
1945
  }
1903
1946
  }
1904
1947
  }
1905
- SkyPageThemeAdapterService.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.2.0", ngImport: i0, type: SkyPageThemeAdapterService, deps: [], target: i0.ɵɵFactoryTarget.Injectable });
1948
+ _SkyPageThemeAdapterService_styleEl = new WeakMap(), _SkyPageThemeAdapterService_document = new WeakMap();
1949
+ SkyPageThemeAdapterService.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.2.0", ngImport: i0, type: SkyPageThemeAdapterService, deps: [{ token: DOCUMENT }], target: i0.ɵɵFactoryTarget.Injectable });
1906
1950
  SkyPageThemeAdapterService.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "14.2.0", ngImport: i0, type: SkyPageThemeAdapterService });
1907
1951
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.2.0", ngImport: i0, type: SkyPageThemeAdapterService, decorators: [{
1908
1952
  type: Injectable
1909
- }] });
1953
+ }], ctorParameters: function () { return [{ type: Document, decorators: [{
1954
+ type: Inject,
1955
+ args: [DOCUMENT]
1956
+ }] }]; } });
1910
1957
 
1958
+ var _SkyPageComponent_themeAdapter, _SkyPageComponent__layout;
1911
1959
  /**
1912
- * Sets the correct background color for a page.
1960
+ * Displays page contents using the specified layout.
1913
1961
  */
1914
1962
  class SkyPageComponent {
1915
1963
  constructor(themeAdapter) {
1916
- this.themeAdapter = themeAdapter;
1964
+ _SkyPageComponent_themeAdapter.set(this, void 0);
1965
+ _SkyPageComponent__layout.set(this, 'auto');
1966
+ __classPrivateFieldSet(this, _SkyPageComponent_themeAdapter, themeAdapter, "f");
1967
+ }
1968
+ /**
1969
+ * Specifies the page layout. Use `auto` to allow the page contents
1970
+ * to expand beyond the bottom of the browser window. Use `fit`
1971
+ * to constrain the page contents to the available viewport.
1972
+ */
1973
+ set layout(value) {
1974
+ __classPrivateFieldSet(this, _SkyPageComponent__layout, value || 'auto', "f");
1975
+ }
1976
+ get layout() {
1977
+ return __classPrivateFieldGet(this, _SkyPageComponent__layout, "f");
1917
1978
  }
1918
1979
  ngOnInit() {
1919
- this.themeAdapter.addTheme();
1980
+ __classPrivateFieldGet(this, _SkyPageComponent_themeAdapter, "f").addTheme();
1920
1981
  }
1921
1982
  ngOnDestroy() {
1922
- this.themeAdapter.removeTheme();
1983
+ __classPrivateFieldGet(this, _SkyPageComponent_themeAdapter, "f").removeTheme();
1923
1984
  }
1924
1985
  }
1986
+ _SkyPageComponent_themeAdapter = new WeakMap(), _SkyPageComponent__layout = new WeakMap();
1925
1987
  SkyPageComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.2.0", ngImport: i0, type: SkyPageComponent, deps: [{ token: SkyPageThemeAdapterService }], target: i0.ɵɵFactoryTarget.Component });
1926
- 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" });
1988
+ SkyPageComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "14.2.0", type: SkyPageComponent, selector: "sky-page", inputs: { layout: "layout" }, providers: [SkyPageThemeAdapterService], ngImport: i0, template: "<div [ngClass]=\"'sky-page-layout-' + layout\">\n <ng-content></ng-content>\n</div>\n", styles: [".sky-page-layout-fit{position:absolute;left:var(--sky-viewport-left);top:var(--sky-viewport-top);right:var(--sky-viewport-right);bottom:var(--sky-viewport-bottom)}\n"], dependencies: [{ kind: "directive", type: i1.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }] });
1927
1989
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.2.0", ngImport: i0, type: SkyPageComponent, decorators: [{
1928
1990
  type: Component,
1929
- args: [{ selector: 'sky-page', providers: [SkyPageThemeAdapterService], template: "<div>\n <ng-content></ng-content>\n</div>\n" }]
1930
- }], ctorParameters: function () { return [{ type: SkyPageThemeAdapterService }]; } });
1991
+ args: [{ selector: 'sky-page', providers: [SkyPageThemeAdapterService], template: "<div [ngClass]=\"'sky-page-layout-' + layout\">\n <ng-content></ng-content>\n</div>\n", styles: [".sky-page-layout-fit{position:absolute;left:var(--sky-viewport-left);top:var(--sky-viewport-top);right:var(--sky-viewport-right);bottom:var(--sky-viewport-bottom)}\n"] }]
1992
+ }], ctorParameters: function () { return [{ type: SkyPageThemeAdapterService }]; }, propDecorators: { layout: [{
1993
+ type: Input
1994
+ }] } });
1931
1995
 
1932
1996
  class SkyPageModule {
1933
1997
  }
1934
1998
  SkyPageModule.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.2.0", ngImport: i0, type: SkyPageModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });
1935
- SkyPageModule.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "14.2.0", ngImport: i0, type: SkyPageModule, declarations: [SkyPageComponent], exports: [SkyPageComponent] });
1936
- SkyPageModule.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "14.2.0", ngImport: i0, type: SkyPageModule });
1999
+ SkyPageModule.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "14.2.0", ngImport: i0, type: SkyPageModule, declarations: [SkyPageComponent], imports: [CommonModule], exports: [SkyPageComponent] });
2000
+ SkyPageModule.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "14.2.0", ngImport: i0, type: SkyPageModule, imports: [CommonModule] });
1937
2001
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.2.0", ngImport: i0, type: SkyPageModule, decorators: [{
1938
2002
  type: NgModule,
1939
2003
  args: [{
1940
2004
  declarations: [SkyPageComponent],
2005
+ imports: [CommonModule],
1941
2006
  exports: [SkyPageComponent],
1942
2007
  }]
1943
2008
  }] });
@@ -2070,43 +2135,64 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.2.0", ngImpor
2070
2135
  type: Injectable
2071
2136
  }] });
2072
2137
 
2138
+ var _SkyPageSummaryComponent_breakpointSubscription, _SkyPageSummaryComponent_ngUnsubscribe, _SkyPageSummaryComponent_elRef, _SkyPageSummaryComponent_adapter, _SkyPageSummaryComponent_mediaQueryService, _SkyPageSummaryComponent_changeDetectorRef;
2073
2139
  /**
2074
2140
  * Specifies the components to display in the page summary.
2075
2141
  * @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
2142
  */
2077
2143
  class SkyPageSummaryComponent {
2078
- constructor(elRef, adapter, mediaQueryService, logger) {
2079
- this.elRef = elRef;
2080
- this.adapter = adapter;
2081
- this.mediaQueryService = mediaQueryService;
2144
+ constructor(elRef, adapter, mediaQueryService, logger, changeDetector) {
2145
+ this.hasKeyInfo = false;
2146
+ _SkyPageSummaryComponent_breakpointSubscription.set(this, void 0);
2147
+ _SkyPageSummaryComponent_ngUnsubscribe.set(this, new Subject());
2148
+ _SkyPageSummaryComponent_elRef.set(this, void 0);
2149
+ _SkyPageSummaryComponent_adapter.set(this, void 0);
2150
+ _SkyPageSummaryComponent_mediaQueryService.set(this, void 0);
2151
+ _SkyPageSummaryComponent_changeDetectorRef.set(this, void 0);
2152
+ __classPrivateFieldSet(this, _SkyPageSummaryComponent_elRef, elRef, "f");
2153
+ __classPrivateFieldSet(this, _SkyPageSummaryComponent_adapter, adapter, "f");
2154
+ __classPrivateFieldSet(this, _SkyPageSummaryComponent_mediaQueryService, mediaQueryService, "f");
2155
+ __classPrivateFieldSet(this, _SkyPageSummaryComponent_changeDetectorRef, changeDetector, "f");
2082
2156
  logger.deprecated('SkyPageSummaryComponent', {
2083
2157
  deprecationMajorVersion: 6,
2084
2158
  moreInfoUrl: 'https://developer.blackbaud.com/skyux/design/guidelines/page-layouts',
2085
2159
  replacementRecommendation: 'For page templates and techniques to summarize page content, see the page design guidelines.',
2086
2160
  });
2087
2161
  }
2088
- get hasKeyInfo() {
2089
- return this.keyInfoComponents.length > 0;
2090
- }
2091
2162
  ngAfterViewInit() {
2092
- this.breakpointSubscription = this.mediaQueryService.subscribe((args) => {
2093
- this.adapter.updateKeyInfoLocation(this.elRef, args === SkyMediaBreakpoints.xs);
2094
- });
2163
+ __classPrivateFieldSet(this, _SkyPageSummaryComponent_breakpointSubscription, __classPrivateFieldGet(this, _SkyPageSummaryComponent_mediaQueryService, "f").subscribe((args) => {
2164
+ __classPrivateFieldGet(this, _SkyPageSummaryComponent_adapter, "f").updateKeyInfoLocation(__classPrivateFieldGet(this, _SkyPageSummaryComponent_elRef, "f"), args === SkyMediaBreakpoints.xs);
2165
+ }), "f");
2166
+ }
2167
+ ngAfterContentInit() {
2168
+ if (this.keyInfoComponents) {
2169
+ this.hasKeyInfo = this.keyInfoComponents.length > 0;
2170
+ this.keyInfoComponents.changes
2171
+ .pipe(takeUntil(__classPrivateFieldGet(this, _SkyPageSummaryComponent_ngUnsubscribe, "f")))
2172
+ .subscribe(() => {
2173
+ this.hasKeyInfo =
2174
+ !!this.keyInfoComponents && this.keyInfoComponents.length > 0;
2175
+ __classPrivateFieldGet(this, _SkyPageSummaryComponent_changeDetectorRef, "f").markForCheck();
2176
+ });
2177
+ }
2095
2178
  }
2096
2179
  ngOnDestroy() {
2097
2180
  /* istanbul ignore else */
2098
2181
  /* sanity check */
2099
- if (this.breakpointSubscription) {
2100
- this.breakpointSubscription.unsubscribe();
2182
+ if (__classPrivateFieldGet(this, _SkyPageSummaryComponent_breakpointSubscription, "f")) {
2183
+ __classPrivateFieldGet(this, _SkyPageSummaryComponent_breakpointSubscription, "f").unsubscribe();
2101
2184
  }
2185
+ __classPrivateFieldGet(this, _SkyPageSummaryComponent_ngUnsubscribe, "f").next();
2186
+ __classPrivateFieldGet(this, _SkyPageSummaryComponent_ngUnsubscribe, "f").complete();
2102
2187
  }
2103
2188
  }
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 });
2189
+ _SkyPageSummaryComponent_breakpointSubscription = new WeakMap(), _SkyPageSummaryComponent_ngUnsubscribe = new WeakMap(), _SkyPageSummaryComponent_elRef = new WeakMap(), _SkyPageSummaryComponent_adapter = new WeakMap(), _SkyPageSummaryComponent_mediaQueryService = new WeakMap(), _SkyPageSummaryComponent_changeDetectorRef = new WeakMap();
2190
+ 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
2191
  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
2192
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.2.0", ngImport: i0, type: SkyPageSummaryComponent, decorators: [{
2107
2193
  type: Component,
2108
2194
  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: [{
2195
+ }], ctorParameters: function () { return [{ type: i0.ElementRef }, { type: SkyPageSummaryAdapterService }, { type: i1$2.SkyMediaQueryService }, { type: i1$2.SkyLogService }, { type: i0.ChangeDetectorRef }]; }, propDecorators: { keyInfoComponents: [{
2110
2196
  type: ContentChildren,
2111
2197
  args: [SkyPageSummaryKeyInfoComponent, {
2112
2198
  read: SkyPageSummaryKeyInfoComponent,
@@ -2165,8 +2251,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.2.0", ngImpor
2165
2251
  /**
2166
2252
  * @internal
2167
2253
  */
2168
- class SkyTextExpandModalContext {
2169
- }
2254
+ const SKY_TEXT_EXPAND_MODAL_CONTEXT = new InjectionToken('SkyTextExpandModalContext');
2170
2255
 
2171
2256
  /**
2172
2257
  * @internal
@@ -2180,70 +2265,111 @@ class SkyTextExpandModalComponent {
2180
2265
  this.instance.close();
2181
2266
  }
2182
2267
  }
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" }] });
2268
+ 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 });
2269
+ 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
2270
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.2.0", ngImport: i0, type: SkyTextExpandModalComponent, decorators: [{
2186
2271
  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 }]; } });
2272
+ 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"] }]
2273
+ }], ctorParameters: function () { return [{ type: undefined, decorators: [{
2274
+ type: Inject,
2275
+ args: [SKY_TEXT_EXPAND_MODAL_CONTEXT]
2276
+ }] }, { type: i1$4.SkyModalInstance }]; } });
2189
2277
 
2278
+ var _SkyTextExpandAdapterService_renderer;
2190
2279
  /**
2191
2280
  * @internal
2192
2281
  */
2193
2282
  class SkyTextExpandAdapterService {
2194
2283
  constructor(rendererFactory) {
2195
- this.rendererFactory = rendererFactory;
2196
- this.renderer = this.rendererFactory.createRenderer(undefined, undefined);
2284
+ _SkyTextExpandAdapterService_renderer.set(this, void 0);
2285
+ __classPrivateFieldSet(this, _SkyTextExpandAdapterService_renderer, rendererFactory.createRenderer(undefined, null), "f");
2197
2286
  }
2198
2287
  getContainerHeight(containerEl) {
2199
2288
  return containerEl.nativeElement.offsetHeight;
2200
2289
  }
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
- }
2290
+ removeContainerMaxHeight(containerEl) {
2291
+ __classPrivateFieldGet(this, _SkyTextExpandAdapterService_renderer, "f").removeStyle(containerEl.nativeElement, 'max-height');
2208
2292
  }
2209
2293
  setText(textEl, text) {
2210
2294
  textEl.nativeElement.textContent = text;
2211
2295
  }
2212
2296
  }
2297
+ _SkyTextExpandAdapterService_renderer = new WeakMap();
2213
2298
  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
2299
  SkyTextExpandAdapterService.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "14.2.0", ngImport: i0, type: SkyTextExpandAdapterService });
2215
2300
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.2.0", ngImport: i0, type: SkyTextExpandAdapterService, decorators: [{
2216
2301
  type: Injectable
2217
2302
  }], ctorParameters: function () { return [{ type: i0.RendererFactory2 }]; } });
2218
2303
 
2304
+ 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
2305
  /**
2220
2306
  * Auto-incrementing integer used to generate unique ids for text expand components.
2221
2307
  */
2222
2308
  let nextId$1 = 0;
2223
2309
  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;
2310
+ constructor(resources, modalSvc, textExpandAdapter) {
2311
+ _SkyTextExpandComponent_instances.add(this);
2240
2312
  /**
2241
2313
  * Indicates whether to replace newline characters in truncated text with spaces.
2242
2314
  */
2243
2315
  this.truncateNewlines = true;
2316
+ this.buttonText = '';
2244
2317
  this.contentSectionId = `sky-text-expand-content-${++nextId$1}`;
2245
- this.isExpanded = false;
2246
- this._maxLength = 200;
2318
+ this.expandable = false;
2319
+ this.isModal = false;
2320
+ this.transitionHeight = 1;
2321
+ _SkyTextExpandComponent_collapsedText.set(this, '');
2322
+ _SkyTextExpandComponent_newlineCount.set(this, 0);
2323
+ _SkyTextExpandComponent_seeMoreText.set(this, '');
2324
+ _SkyTextExpandComponent_seeLessText.set(this, '');
2325
+ _SkyTextExpandComponent_textToShow.set(this, '');
2326
+ _SkyTextExpandComponent__maxExpandedLength.set(this, 600);
2327
+ _SkyTextExpandComponent__maxExpandedNewlines.set(this, 2);
2328
+ _SkyTextExpandComponent__maxLength.set(this, 200);
2329
+ _SkyTextExpandComponent__text.set(this, '');
2330
+ _SkyTextExpandComponent__textEl.set(this, void 0);
2331
+ _SkyTextExpandComponent_resources.set(this, void 0);
2332
+ _SkyTextExpandComponent_modalSvc.set(this, void 0);
2333
+ _SkyTextExpandComponent_textExpandAdapter.set(this, void 0);
2334
+ __classPrivateFieldSet(this, _SkyTextExpandComponent_resources, resources, "f");
2335
+ __classPrivateFieldSet(this, _SkyTextExpandComponent_modalSvc, modalSvc, "f");
2336
+ __classPrivateFieldSet(this, _SkyTextExpandComponent_textExpandAdapter, textExpandAdapter, "f");
2337
+ }
2338
+ /**
2339
+ * Specifies the maximum number of text characters to display inline when users select the link
2340
+ * to expand the full text. If the text exceeds this limit, then the component expands
2341
+ * the full text in a modal instead.
2342
+ * @default 600
2343
+ */
2344
+ set maxExpandedLength(value) {
2345
+ if (value) {
2346
+ __classPrivateFieldSet(this, _SkyTextExpandComponent__maxExpandedLength, value, "f");
2347
+ }
2348
+ else {
2349
+ __classPrivateFieldSet(this, _SkyTextExpandComponent__maxExpandedLength, 600, "f");
2350
+ }
2351
+ __classPrivateFieldGet(this, _SkyTextExpandComponent_instances, "m", _SkyTextExpandComponent_setup).call(this, this.text);
2352
+ }
2353
+ get maxExpandedLength() {
2354
+ return __classPrivateFieldGet(this, _SkyTextExpandComponent__maxExpandedLength, "f");
2355
+ }
2356
+ /**
2357
+ * Specifies the maximum number of newline characters to display inline when users select
2358
+ * the link to expand the full text. If the text exceeds this limit, then
2359
+ * the component expands the full text in a modal view instead.
2360
+ * @default 2
2361
+ */
2362
+ set maxExpandedNewlines(value) {
2363
+ if (value) {
2364
+ __classPrivateFieldSet(this, _SkyTextExpandComponent__maxExpandedNewlines, value, "f");
2365
+ }
2366
+ else {
2367
+ __classPrivateFieldSet(this, _SkyTextExpandComponent__maxExpandedNewlines, 2, "f");
2368
+ }
2369
+ __classPrivateFieldGet(this, _SkyTextExpandComponent_instances, "m", _SkyTextExpandComponent_setup).call(this, this.text);
2370
+ }
2371
+ get maxExpandedNewlines() {
2372
+ return __classPrivateFieldGet(this, _SkyTextExpandComponent__maxExpandedNewlines, "f");
2247
2373
  }
2248
2374
  /**
2249
2375
  * Specifies the number of text characters to display before truncating the text.
@@ -2252,23 +2378,33 @@ class SkyTextExpandComponent {
2252
2378
  * @default 200
2253
2379
  */
2254
2380
  set maxLength(value) {
2255
- this._maxLength = value;
2256
- /* istanbul ignore else */
2257
- if (this.textEl) {
2258
- this.setup(this.expandedText);
2381
+ if (value) {
2382
+ __classPrivateFieldSet(this, _SkyTextExpandComponent__maxLength, value, "f");
2383
+ }
2384
+ else {
2385
+ __classPrivateFieldSet(this, _SkyTextExpandComponent__maxLength, 200, "f");
2259
2386
  }
2387
+ __classPrivateFieldGet(this, _SkyTextExpandComponent_instances, "m", _SkyTextExpandComponent_setup).call(this, this.text);
2260
2388
  }
2261
2389
  get maxLength() {
2262
- return this._maxLength;
2390
+ return __classPrivateFieldGet(this, _SkyTextExpandComponent__maxLength, "f");
2263
2391
  }
2264
2392
  /**
2265
2393
  * Specifies the text to truncate.
2266
2394
  */
2267
2395
  set text(value) {
2268
- /* istanbul ignore else */
2269
- if (this.textEl) {
2270
- this.setup(value);
2271
- }
2396
+ __classPrivateFieldSet(this, _SkyTextExpandComponent__text, value ?? '', "f");
2397
+ __classPrivateFieldGet(this, _SkyTextExpandComponent_instances, "m", _SkyTextExpandComponent_setup).call(this, __classPrivateFieldGet(this, _SkyTextExpandComponent__text, "f"));
2398
+ }
2399
+ get text() {
2400
+ return __classPrivateFieldGet(this, _SkyTextExpandComponent__text, "f");
2401
+ }
2402
+ set textEl(value) {
2403
+ __classPrivateFieldSet(this, _SkyTextExpandComponent__textEl, value, "f");
2404
+ __classPrivateFieldGet(this, _SkyTextExpandComponent_instances, "m", _SkyTextExpandComponent_setup).call(this, this.text);
2405
+ }
2406
+ get textEl() {
2407
+ return __classPrivateFieldGet(this, _SkyTextExpandComponent__textEl, "f");
2272
2408
  }
2273
2409
  textExpand() {
2274
2410
  if (this.isModal) {
@@ -2276,12 +2412,12 @@ class SkyTextExpandComponent {
2276
2412
  /* istanbul ignore else */
2277
2413
  /* sanity check */
2278
2414
  if (!this.isExpanded) {
2279
- this.modalService.open(SkyTextExpandModalComponent, [
2415
+ __classPrivateFieldGet(this, _SkyTextExpandComponent_modalSvc, "f").open(SkyTextExpandModalComponent, [
2280
2416
  {
2281
- provide: SkyTextExpandModalContext,
2417
+ provide: SKY_TEXT_EXPAND_MODAL_CONTEXT,
2282
2418
  useValue: {
2283
2419
  header: this.expandModalTitle,
2284
- text: this.expandedText,
2420
+ text: this.text,
2285
2421
  },
2286
2422
  },
2287
2423
  ]);
@@ -2290,40 +2426,38 @@ class SkyTextExpandComponent {
2290
2426
  else {
2291
2427
  // Normal View
2292
2428
  if (!this.isExpanded) {
2293
- this.setContainerMaxHeight();
2294
- setTimeout(() => {
2295
- this.isExpanded = true;
2296
- this.animateText(this.collapsedText, this.expandedText, true);
2297
- }, 10);
2429
+ __classPrivateFieldGet(this, _SkyTextExpandComponent_instances, "m", _SkyTextExpandComponent_animateText).call(this, true);
2298
2430
  }
2299
2431
  else {
2300
- this.setContainerMaxHeight();
2301
- setTimeout(() => {
2302
- this.isExpanded = false;
2303
- this.animateText(this.expandedText, this.collapsedText, false);
2304
- }, 10);
2432
+ __classPrivateFieldGet(this, _SkyTextExpandComponent_instances, "m", _SkyTextExpandComponent_animateText).call(this, false);
2305
2433
  }
2306
2434
  }
2307
2435
  }
2308
2436
  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);
2437
+ if (this.textEl && this.containerEl) {
2438
+ // Ensure the correct text is displayed
2439
+ __classPrivateFieldGet(this, _SkyTextExpandComponent_textExpandAdapter, "f").setText(this.textEl, __classPrivateFieldGet(this, _SkyTextExpandComponent_textToShow, "f"));
2440
+ setTimeout(() => {
2441
+ if (this.containerEl) {
2442
+ // Set height back to auto so the browser can change the height as needed with window changes
2443
+ __classPrivateFieldGet(this, _SkyTextExpandComponent_textExpandAdapter, "f").removeContainerMaxHeight(this.containerEl);
2444
+ }
2445
+ });
2446
+ }
2313
2447
  }
2314
2448
  ngAfterContentInit() {
2315
2449
  forkJoin([
2316
- this.resources.getString('skyux_text_expand_see_more'),
2317
- this.resources.getString('skyux_text_expand_see_less'),
2450
+ __classPrivateFieldGet(this, _SkyTextExpandComponent_resources, "f").getString('skyux_text_expand_see_more'),
2451
+ __classPrivateFieldGet(this, _SkyTextExpandComponent_resources, "f").getString('skyux_text_expand_see_less'),
2318
2452
  ])
2319
2453
  .pipe(take(1))
2320
2454
  .subscribe((resources) => {
2321
- this.seeMoreText = resources[0];
2322
- this.seeLessText = resources[1];
2323
- this.setup(this.expandedText);
2455
+ __classPrivateFieldSet(this, _SkyTextExpandComponent_seeMoreText, resources[0], "f");
2456
+ __classPrivateFieldSet(this, _SkyTextExpandComponent_seeLessText, resources[1], "f");
2457
+ __classPrivateFieldGet(this, _SkyTextExpandComponent_instances, "m", _SkyTextExpandComponent_setup).call(this, this.text);
2324
2458
  /* istanbul ignore else */
2325
2459
  if (!this.expandModalTitle) {
2326
- this.resources
2460
+ __classPrivateFieldGet(this, _SkyTextExpandComponent_resources, "f")
2327
2461
  .getString('skyux_text_expand_modal_title')
2328
2462
  .pipe(take(1))
2329
2463
  .subscribe((resource) => {
@@ -2332,99 +2466,109 @@ class SkyTextExpandComponent {
2332
2466
  }
2333
2467
  });
2334
2468
  }
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;
2469
+ }
2470
+ _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) {
2471
+ if (value) {
2472
+ __classPrivateFieldSet(this, _SkyTextExpandComponent_newlineCount, __classPrivateFieldGet(this, _SkyTextExpandComponent_instances, "m", _SkyTextExpandComponent_getNewlineCount).call(this, value), "f");
2473
+ __classPrivateFieldSet(this, _SkyTextExpandComponent_collapsedText, __classPrivateFieldGet(this, _SkyTextExpandComponent_instances, "m", _SkyTextExpandComponent_getTruncatedText).call(this, value, this.maxLength), "f");
2474
+ if (__classPrivateFieldGet(this, _SkyTextExpandComponent_collapsedText, "f") !== value) {
2475
+ this.buttonText = __classPrivateFieldGet(this, _SkyTextExpandComponent_seeMoreText, "f");
2476
+ this.isExpanded = false;
2477
+ this.expandable = true;
2478
+ this.isModal =
2479
+ __classPrivateFieldGet(this, _SkyTextExpandComponent_newlineCount, "f") > this.maxExpandedNewlines ||
2480
+ this.text.length > this.maxExpandedLength;
2360
2481
  }
2361
2482
  else {
2362
- this.textToShow = '';
2363
2483
  this.expandable = false;
2364
2484
  }
2365
- this.textExpandAdapter.setText(this.textEl, this.textToShow);
2485
+ __classPrivateFieldSet(this, _SkyTextExpandComponent_textToShow, __classPrivateFieldGet(this, _SkyTextExpandComponent_collapsedText, "f"), "f");
2366
2486
  }
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
- }
2487
+ else {
2488
+ __classPrivateFieldSet(this, _SkyTextExpandComponent_textToShow, '', "f");
2489
+ this.expandable = false;
2490
+ }
2491
+ if (this.textEl) {
2492
+ __classPrivateFieldGet(this, _SkyTextExpandComponent_textExpandAdapter, "f").setText(this.textEl, __classPrivateFieldGet(this, _SkyTextExpandComponent_textToShow, "f"));
2493
+ }
2494
+ }, _SkyTextExpandComponent_getNewlineCount = function _SkyTextExpandComponent_getNewlineCount(value) {
2495
+ const matches = value.match(/\n/gi);
2496
+ if (matches) {
2497
+ return matches.length;
2498
+ }
2499
+ return 0;
2500
+ }, _SkyTextExpandComponent_getTruncatedText = function _SkyTextExpandComponent_getTruncatedText(value, length) {
2501
+ let i;
2502
+ if (this.truncateNewlines) {
2503
+ value = value.replace(/\n+/gi, ' ');
2504
+ }
2505
+ // Jump ahead one character and see if it's a space, and if it isn't,
2506
+ // back up to the first space and break there so a word doesn't get cut
2507
+ // in half.
2508
+ if (length < value.length) {
2509
+ for (i = length; i > length - 10; i--) {
2510
+ if (/\s/.test(value.charAt(i))) {
2511
+ length = i;
2512
+ break;
2388
2513
  }
2389
2514
  }
2390
- return value.substr(0, length);
2391
2515
  }
2392
- animateText(previousText, newText, expanding) {
2393
- const adapter = this.textExpandAdapter;
2516
+ return value.substring(0, length);
2517
+ }, _SkyTextExpandComponent_animateText = function _SkyTextExpandComponent_animateText(expanding) {
2518
+ if (this.containerEl && this.textEl) {
2519
+ const adapter = __classPrivateFieldGet(this, _SkyTextExpandComponent_textExpandAdapter, "f");
2394
2520
  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;
2521
+ if (expanding) {
2522
+ adapter.setText(this.textEl, this.text);
2523
+ __classPrivateFieldSet(this, _SkyTextExpandComponent_textToShow, this.text, "f");
2524
+ }
2525
+ else {
2526
+ adapter.setText(this.textEl, __classPrivateFieldGet(this, _SkyTextExpandComponent_collapsedText, "f"));
2527
+ __classPrivateFieldSet(this, _SkyTextExpandComponent_textToShow, __classPrivateFieldGet(this, _SkyTextExpandComponent_collapsedText, "f"), "f");
2528
+ }
2529
+ this.buttonText = expanding ? __classPrivateFieldGet(this, _SkyTextExpandComponent_seeLessText, "f") : __classPrivateFieldGet(this, _SkyTextExpandComponent_seeMoreText, "f");
2402
2530
  // Measure the new height so we can animate to it.
2403
2531
  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);
2532
+ this.transitionHeight = newHeight;
2533
+ // Always show all text while animating so that the animation is smooth. The animation callback will set this back if needed.
2534
+ if (!expanding) {
2535
+ adapter.setText(this.textEl, this.text);
2536
+ }
2537
+ this.isExpanded = expanding;
2420
2538
  }
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"] }] });
2539
+ };
2540
+ 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 });
2541
+ 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: [
2542
+ trigger('expansionAnimation', [
2543
+ transition(':enter', []),
2544
+ state('true', style({
2545
+ maxHeight: '{{transitionHeight}}px',
2546
+ }), { params: { transitionHeight: 0 } }),
2547
+ state('false', style({
2548
+ maxHeight: '{{transitionHeight}}px',
2549
+ }), { params: { transitionHeight: 0 } }),
2550
+ transition('true => false', animate('250ms ease')),
2551
+ transition('false => true', animate('250ms ease')),
2552
+ transition('void => *', []),
2553
+ ]),
2554
+ ] });
2424
2555
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.2.0", ngImport: i0, type: SkyTextExpandComponent, decorators: [{
2425
2556
  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: [{
2557
+ args: [{ animations: [
2558
+ trigger('expansionAnimation', [
2559
+ transition(':enter', []),
2560
+ state('true', style({
2561
+ maxHeight: '{{transitionHeight}}px',
2562
+ }), { params: { transitionHeight: 0 } }),
2563
+ state('false', style({
2564
+ maxHeight: '{{transitionHeight}}px',
2565
+ }), { params: { transitionHeight: 0 } }),
2566
+ transition('true => false', animate('250ms ease')),
2567
+ transition('false => true', animate('250ms ease')),
2568
+ transition('void => *', []),
2569
+ ]),
2570
+ ], 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"] }]
2571
+ }], ctorParameters: function () { return [{ type: i1$3.SkyLibResourcesService }, { type: i1$4.SkyModalService }, { type: SkyTextExpandAdapterService }]; }, propDecorators: { expandModalTitle: [{
2428
2572
  type: Input
2429
2573
  }], maxExpandedLength: [{
2430
2574
  type: Input
@@ -2475,187 +2619,226 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.2.0", ngImpor
2475
2619
  }]
2476
2620
  }] });
2477
2621
 
2622
+ var _SkyTextExpandRepeaterAdapterService_renderer;
2478
2623
  /**
2479
2624
  * @internal
2480
2625
  */
2481
2626
  class SkyTextExpandRepeaterAdapterService {
2482
2627
  constructor(rendererFactory) {
2483
- this.rendererFactory = rendererFactory;
2484
- this.renderer = this.rendererFactory.createRenderer(undefined, undefined);
2628
+ _SkyTextExpandRepeaterAdapterService_renderer.set(this, void 0);
2629
+ __classPrivateFieldSet(this, _SkyTextExpandRepeaterAdapterService_renderer, rendererFactory.createRenderer(undefined, null), "f");
2485
2630
  }
2486
2631
  getItems(elRef) {
2487
2632
  return elRef.nativeElement.querySelectorAll('.sky-text-expand-repeater-item');
2488
2633
  }
2489
2634
  hideItem(item) {
2490
- this.renderer.setStyle(item, 'display', 'none');
2635
+ __classPrivateFieldGet(this, _SkyTextExpandRepeaterAdapterService_renderer, "f").setStyle(item, 'display', 'none');
2491
2636
  }
2492
2637
  showItem(item) {
2493
- this.renderer.setStyle(item, 'display', 'list-item');
2638
+ __classPrivateFieldGet(this, _SkyTextExpandRepeaterAdapterService_renderer, "f").removeStyle(item, 'display');
2494
2639
  }
2495
2640
  getContainerHeight(containerEl) {
2496
2641
  return containerEl.nativeElement.offsetHeight;
2497
2642
  }
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
- }
2643
+ removeContainerMaxHeight(containerEl) {
2644
+ __classPrivateFieldGet(this, _SkyTextExpandRepeaterAdapterService_renderer, "f").removeStyle(containerEl.nativeElement, 'max-height');
2505
2645
  }
2506
2646
  }
2647
+ _SkyTextExpandRepeaterAdapterService_renderer = new WeakMap();
2507
2648
  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
2649
  SkyTextExpandRepeaterAdapterService.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "14.2.0", ngImport: i0, type: SkyTextExpandRepeaterAdapterService });
2509
2650
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.2.0", ngImport: i0, type: SkyTextExpandRepeaterAdapterService, decorators: [{
2510
2651
  type: Injectable
2511
2652
  }], ctorParameters: function () { return [{ type: i0.RendererFactory2 }]; } });
2512
2653
 
2654
+ 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
2655
  /**
2514
2656
  * Auto-incrementing integer used to generate unique ids for text expand repeater components.
2515
2657
  */
2516
2658
  let nextId = 0;
2517
2659
  class SkyTextExpandRepeaterComponent {
2518
2660
  constructor(resources, elRef, textExpandRepeaterAdapter, changeDetector) {
2519
- this.resources = resources;
2520
- this.elRef = elRef;
2521
- this.textExpandRepeaterAdapter = textExpandRepeaterAdapter;
2522
- this.changeDetector = changeDetector;
2661
+ _SkyTextExpandRepeaterComponent_instances.add(this);
2523
2662
  /**
2524
2663
  * Specifies the style of bullet to use
2525
2664
  * @default "unordered"
2526
2665
  */
2527
2666
  this.listStyle = 'unordered';
2667
+ this.buttonText = '';
2668
+ this.expandable = false;
2528
2669
  this.contentSectionId = `sky-text-expand-repeater-content-${++nextId}`;
2529
- this.isExpanded = false;
2670
+ this.transitionHeight = 1;
2671
+ _SkyTextExpandRepeaterComponent_seeMoreText.set(this, '');
2672
+ _SkyTextExpandRepeaterComponent_seeLessText.set(this, '');
2673
+ _SkyTextExpandRepeaterComponent_htmlItems.set(this, void 0);
2674
+ _SkyTextExpandRepeaterComponent__data.set(this, void 0);
2675
+ _SkyTextExpandRepeaterComponent__maxItems.set(this, void 0);
2676
+ _SkyTextExpandRepeaterComponent_resources.set(this, void 0);
2677
+ _SkyTextExpandRepeaterComponent_elRef.set(this, void 0);
2678
+ _SkyTextExpandRepeaterComponent_textExpandRepeaterAdapter.set(this, void 0);
2679
+ _SkyTextExpandRepeaterComponent_changeDetector.set(this, void 0);
2680
+ __classPrivateFieldSet(this, _SkyTextExpandRepeaterComponent_resources, resources, "f");
2681
+ __classPrivateFieldSet(this, _SkyTextExpandRepeaterComponent_elRef, elRef, "f");
2682
+ __classPrivateFieldSet(this, _SkyTextExpandRepeaterComponent_textExpandRepeaterAdapter, textExpandRepeaterAdapter, "f");
2683
+ __classPrivateFieldSet(this, _SkyTextExpandRepeaterComponent_changeDetector, changeDetector, "f");
2684
+ }
2685
+ /**
2686
+ * Specifies the data to truncate.
2687
+ */
2688
+ set data(value) {
2689
+ __classPrivateFieldSet(this, _SkyTextExpandRepeaterComponent__data, value, "f");
2690
+ // Wait for the dom to render the new items based on the updated data
2691
+ setTimeout(() => {
2692
+ __classPrivateFieldSet(this, _SkyTextExpandRepeaterComponent_htmlItems, __classPrivateFieldGet(this, _SkyTextExpandRepeaterComponent_textExpandRepeaterAdapter, "f").getItems(__classPrivateFieldGet(this, _SkyTextExpandRepeaterComponent_elRef, "f")), "f");
2693
+ __classPrivateFieldGet(this, _SkyTextExpandRepeaterComponent_instances, "m", _SkyTextExpandRepeaterComponent_setup).call(this, value);
2694
+ });
2695
+ }
2696
+ get data() {
2697
+ return __classPrivateFieldGet(this, _SkyTextExpandRepeaterComponent__data, "f");
2698
+ }
2699
+ /**
2700
+ * Specifies the number of items to display before truncating the list. If not supplied, all items are shown.
2701
+ */
2702
+ set maxItems(value) {
2703
+ __classPrivateFieldSet(this, _SkyTextExpandRepeaterComponent__maxItems, value, "f");
2704
+ __classPrivateFieldGet(this, _SkyTextExpandRepeaterComponent_instances, "m", _SkyTextExpandRepeaterComponent_setup).call(this, this.data);
2705
+ }
2706
+ get maxItems() {
2707
+ return __classPrivateFieldGet(this, _SkyTextExpandRepeaterComponent__maxItems, "f");
2530
2708
  }
2531
2709
  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
2710
  forkJoin([
2539
- this.resources.getString('skyux_text_expand_see_more'),
2540
- this.resources.getString('skyux_text_expand_see_less'),
2711
+ __classPrivateFieldGet(this, _SkyTextExpandRepeaterComponent_resources, "f").getString('skyux_text_expand_see_more'),
2712
+ __classPrivateFieldGet(this, _SkyTextExpandRepeaterComponent_resources, "f").getString('skyux_text_expand_see_less'),
2541
2713
  ])
2542
2714
  .pipe(take(1))
2543
2715
  .subscribe((resources) => {
2544
- this.seeMoreText = resources[0];
2545
- this.seeLessText = resources[1];
2716
+ __classPrivateFieldSet(this, _SkyTextExpandRepeaterComponent_seeMoreText, resources[0], "f");
2717
+ __classPrivateFieldSet(this, _SkyTextExpandRepeaterComponent_seeLessText, resources[1], "f");
2546
2718
  /* sanity check */
2547
2719
  /* istanbul ignore else */
2548
2720
  if (!this.isExpanded) {
2549
- this.buttonText = this.seeMoreText;
2721
+ this.buttonText = __classPrivateFieldGet(this, _SkyTextExpandRepeaterComponent_seeMoreText, "f");
2550
2722
  }
2551
2723
  else {
2552
- this.buttonText = this.seeLessText;
2724
+ this.buttonText = __classPrivateFieldGet(this, _SkyTextExpandRepeaterComponent_seeLessText, "f");
2553
2725
  }
2554
- this.changeDetector.detectChanges();
2726
+ __classPrivateFieldGet(this, _SkyTextExpandRepeaterComponent_changeDetector, "f").detectChanges();
2555
2727
  });
2556
2728
  }
2557
- ngOnChanges(changes) {
2558
- /* istanbul ignore else */
2559
- if (changes.maxItems || changes.data) {
2560
- this.setup(this.data);
2561
- }
2562
- }
2563
2729
  animationEnd() {
2564
- // Ensure the correct items are displayed
2730
+ // Ensure all items that should be hidden are hidden. This is because we need them shown during the animation window for visual purposes.
2565
2731
  if (!this.isExpanded) {
2566
- for (let i = this.maxItems; i < this.contentItems.length; i++) {
2567
- this.textExpandRepeaterAdapter.hideItem(this.items[i]);
2568
- }
2732
+ __classPrivateFieldGet(this, _SkyTextExpandRepeaterComponent_instances, "m", _SkyTextExpandRepeaterComponent_hideItems).call(this);
2569
2733
  }
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);
2734
+ // 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
2735
+ setTimeout(() => {
2736
+ if (this.containerEl) {
2737
+ // Set height back to auto so the browser can change the height as needed with window changes
2738
+ __classPrivateFieldGet(this, _SkyTextExpandRepeaterComponent_textExpandRepeaterAdapter, "f").removeContainerMaxHeight(this.containerEl);
2739
+ }
2740
+ });
2572
2741
  }
2573
2742
  repeaterExpand() {
2574
2743
  if (!this.isExpanded) {
2575
- this.setContainerMaxHeight();
2576
- setTimeout(() => {
2577
- this.isExpanded = true;
2578
- this.animateRepeater(true);
2579
- });
2744
+ __classPrivateFieldGet(this, _SkyTextExpandRepeaterComponent_instances, "m", _SkyTextExpandRepeaterComponent_animateRepeater).call(this, true);
2580
2745
  }
2581
2746
  else {
2582
- this.setContainerMaxHeight();
2583
- setTimeout(() => {
2584
- this.isExpanded = false;
2585
- this.animateRepeater(false);
2586
- });
2747
+ __classPrivateFieldGet(this, _SkyTextExpandRepeaterComponent_instances, "m", _SkyTextExpandRepeaterComponent_animateRepeater).call(this, false);
2587
2748
  }
2588
2749
  }
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
- }
2750
+ }
2751
+ _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) {
2752
+ const adapter = __classPrivateFieldGet(this, _SkyTextExpandRepeaterComponent_textExpandRepeaterAdapter, "f");
2753
+ const container = this.containerEl;
2754
+ if (container) {
2755
+ if (expanding) {
2756
+ __classPrivateFieldGet(this, _SkyTextExpandRepeaterComponent_instances, "m", _SkyTextExpandRepeaterComponent_showItems).call(this);
2757
+ }
2758
+ else {
2759
+ __classPrivateFieldGet(this, _SkyTextExpandRepeaterComponent_instances, "m", _SkyTextExpandRepeaterComponent_hideItems).call(this);
2609
2760
  }
2610
2761
  const newHeight = adapter.getContainerHeight(container);
2762
+ this.transitionHeight = newHeight;
2611
2763
  if (!expanding) {
2612
- this.buttonText = this.seeMoreText;
2764
+ this.buttonText = __classPrivateFieldGet(this, _SkyTextExpandRepeaterComponent_seeMoreText, "f");
2613
2765
  }
2614
2766
  else {
2615
- this.buttonText = this.seeLessText;
2616
- }
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
- }
2767
+ this.buttonText = __classPrivateFieldGet(this, _SkyTextExpandRepeaterComponent_seeLessText, "f");
2623
2768
  }
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;
2769
+ if (!expanding) {
2770
+ // Show all items during animation for visual purposes.
2771
+ __classPrivateFieldGet(this, _SkyTextExpandRepeaterComponent_instances, "m", _SkyTextExpandRepeaterComponent_showItems).call(this);
2772
+ }
2773
+ this.isExpanded = expanding;
2774
+ }
2775
+ }, _SkyTextExpandRepeaterComponent_setup = function _SkyTextExpandRepeaterComponent_setup(value) {
2776
+ if (value) {
2777
+ const length = value.length;
2778
+ if (this.maxItems && length > this.maxItems) {
2779
+ this.expandable = true;
2780
+ this.buttonText = __classPrivateFieldGet(this, _SkyTextExpandRepeaterComponent_seeMoreText, "f");
2781
+ __classPrivateFieldGet(this, _SkyTextExpandRepeaterComponent_instances, "m", _SkyTextExpandRepeaterComponent_hideItems).call(this);
2782
+ if (this.containerEl) {
2783
+ this.transitionHeight =
2784
+ __classPrivateFieldGet(this, _SkyTextExpandRepeaterComponent_textExpandRepeaterAdapter, "f").getContainerHeight(this.containerEl);
2645
2785
  }
2646
- this.contentItems = value;
2786
+ this.isExpanded = false;
2647
2787
  }
2648
2788
  else {
2649
- this.contentItems = undefined;
2650
2789
  this.expandable = false;
2790
+ this.isExpanded = undefined;
2651
2791
  }
2652
2792
  }
2653
- }
2793
+ else {
2794
+ this.expandable = false;
2795
+ this.isExpanded = undefined;
2796
+ }
2797
+ __classPrivateFieldGet(this, _SkyTextExpandRepeaterComponent_changeDetector, "f").markForCheck();
2798
+ }, _SkyTextExpandRepeaterComponent_hideItems = function _SkyTextExpandRepeaterComponent_hideItems() {
2799
+ if (__classPrivateFieldGet(this, _SkyTextExpandRepeaterComponent_htmlItems, "f") && this.maxItems) {
2800
+ for (let i = this.maxItems; i < __classPrivateFieldGet(this, _SkyTextExpandRepeaterComponent_htmlItems, "f").length; i++) {
2801
+ __classPrivateFieldGet(this, _SkyTextExpandRepeaterComponent_textExpandRepeaterAdapter, "f").hideItem(__classPrivateFieldGet(this, _SkyTextExpandRepeaterComponent_htmlItems, "f")[i]);
2802
+ }
2803
+ }
2804
+ }, _SkyTextExpandRepeaterComponent_showItems = function _SkyTextExpandRepeaterComponent_showItems() {
2805
+ if (__classPrivateFieldGet(this, _SkyTextExpandRepeaterComponent_htmlItems, "f") && this.maxItems) {
2806
+ for (let i = this.maxItems; i < __classPrivateFieldGet(this, _SkyTextExpandRepeaterComponent_htmlItems, "f").length; i++) {
2807
+ __classPrivateFieldGet(this, _SkyTextExpandRepeaterComponent_textExpandRepeaterAdapter, "f").showItem(__classPrivateFieldGet(this, _SkyTextExpandRepeaterComponent_htmlItems, "f")[i]);
2808
+ }
2809
+ }
2810
+ };
2654
2811
  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"] }] });
2812
+ 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: [
2813
+ trigger('expansionAnimation', [
2814
+ transition(':enter', []),
2815
+ state('true', style({
2816
+ maxHeight: '{{transitionHeight}}px',
2817
+ }), { params: { transitionHeight: 0 } }),
2818
+ state('false', style({
2819
+ maxHeight: '{{transitionHeight}}px',
2820
+ }), { params: { transitionHeight: 0 } }),
2821
+ transition('true => false', animate('250ms ease')),
2822
+ transition('false => true', animate('250ms ease')),
2823
+ transition('void => *', []),
2824
+ ]),
2825
+ ] });
2656
2826
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.2.0", ngImport: i0, type: SkyTextExpandRepeaterComponent, decorators: [{
2657
2827
  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"] }]
2828
+ args: [{ animations: [
2829
+ trigger('expansionAnimation', [
2830
+ transition(':enter', []),
2831
+ state('true', style({
2832
+ maxHeight: '{{transitionHeight}}px',
2833
+ }), { params: { transitionHeight: 0 } }),
2834
+ state('false', style({
2835
+ maxHeight: '{{transitionHeight}}px',
2836
+ }), { params: { transitionHeight: 0 } }),
2837
+ transition('true => false', animate('250ms ease')),
2838
+ transition('false => true', animate('250ms ease')),
2839
+ transition('void => *', []),
2840
+ ]),
2841
+ ], 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
2842
  }], ctorParameters: function () { return [{ type: i1$3.SkyLibResourcesService }, { type: i0.ElementRef }, { type: SkyTextExpandRepeaterAdapterService }, { type: i0.ChangeDetectorRef }]; }, propDecorators: { data: [{
2660
2843
  type: Input
2661
2844
  }], itemTemplate: [{
@@ -2778,5 +2961,5 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.2.0", ngImpor
2778
2961
  * Generated bundle index. Do not edit.
2779
2962
  */
2780
2963
 
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 };
2964
+ 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
2965
  //# sourceMappingURL=skyux-layout.mjs.map