@skyux/layout 5.5.0 → 5.6.0

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 (68) hide show
  1. package/bundles/skyux-layout.umd.js +335 -335
  2. package/documentation.json +130 -130
  3. package/esm2015/lib/modules/action-button/action-button-container.component.js +1 -1
  4. package/esm2015/lib/modules/action-button/action-button-container.component.js.map +1 -1
  5. package/esm2015/lib/modules/action-button/action-button-icon.component.js.map +1 -1
  6. package/esm2015/lib/modules/action-button/action-button.module.js.map +1 -1
  7. package/esm2015/lib/modules/back-to-top/back-to-top-adapter.service.js +1 -1
  8. package/esm2015/lib/modules/back-to-top/back-to-top-adapter.service.js.map +1 -1
  9. package/esm2015/lib/modules/back-to-top/back-to-top.directive.js.map +1 -1
  10. package/esm2015/lib/modules/back-to-top/back-top-top.module.js +3 -3
  11. package/esm2015/lib/modules/back-to-top/back-top-top.module.js.map +1 -1
  12. package/esm2015/lib/modules/box/box.module.js.map +1 -1
  13. package/esm2015/lib/modules/card/card.component.js +2 -2
  14. package/esm2015/lib/modules/card/card.component.js.map +1 -1
  15. package/esm2015/lib/modules/card/card.module.js.map +1 -1
  16. package/esm2015/lib/modules/definition-list/definition-list.module.js +2 -2
  17. package/esm2015/lib/modules/definition-list/definition-list.module.js.map +1 -1
  18. package/esm2015/lib/modules/description-list/description-list-content.component.js +1 -1
  19. package/esm2015/lib/modules/description-list/description-list-content.component.js.map +1 -1
  20. package/esm2015/lib/modules/description-list/description-list-description.component.js +1 -1
  21. package/esm2015/lib/modules/description-list/description-list-description.component.js.map +1 -1
  22. package/esm2015/lib/modules/description-list/description-list.component.js +1 -1
  23. package/esm2015/lib/modules/description-list/description-list.component.js.map +1 -1
  24. package/esm2015/lib/modules/description-list/description-list.module.js +2 -2
  25. package/esm2015/lib/modules/description-list/description-list.module.js.map +1 -1
  26. package/esm2015/lib/modules/fluid-grid/column.component.js +1 -1
  27. package/esm2015/lib/modules/fluid-grid/column.component.js.map +1 -1
  28. package/esm2015/lib/modules/fluid-grid/fluid-grid.component.js.map +1 -1
  29. package/esm2015/lib/modules/fluid-grid/fluid-grid.module.js +2 -2
  30. package/esm2015/lib/modules/fluid-grid/fluid-grid.module.js.map +1 -1
  31. package/esm2015/lib/modules/fluid-grid/row.component.js.map +1 -1
  32. package/esm2015/lib/modules/format/format.module.js +1 -1
  33. package/esm2015/lib/modules/format/format.module.js.map +1 -1
  34. package/esm2015/lib/modules/inline-delete/inline-delete-adapter.service.js.map +1 -1
  35. package/esm2015/lib/modules/inline-delete/inline-delete.component.js.map +1 -1
  36. package/esm2015/lib/modules/inline-delete/inline-delete.module.js +1 -1
  37. package/esm2015/lib/modules/inline-delete/inline-delete.module.js.map +1 -1
  38. package/esm2015/lib/modules/page-summary/page-summary-adapter.service.js +2 -2
  39. package/esm2015/lib/modules/page-summary/page-summary-adapter.service.js.map +1 -1
  40. package/esm2015/lib/modules/page-summary/page-summary.component.js.map +1 -1
  41. package/esm2015/lib/modules/page-summary/page-summary.module.js.map +1 -1
  42. package/esm2015/lib/modules/shared/sky-layout-resources.module.js +1 -1
  43. package/esm2015/lib/modules/shared/sky-layout-resources.module.js.map +1 -1
  44. package/esm2015/lib/modules/text-expand/text-expand-modal.component.js.map +1 -1
  45. package/esm2015/lib/modules/text-expand/text-expand.component.js +7 -7
  46. package/esm2015/lib/modules/text-expand/text-expand.component.js.map +1 -1
  47. package/esm2015/lib/modules/text-expand/text-expand.module.js +2 -2
  48. package/esm2015/lib/modules/text-expand/text-expand.module.js.map +1 -1
  49. package/esm2015/lib/modules/text-expand-repeater/text-expand-repeater.component.js +6 -6
  50. package/esm2015/lib/modules/text-expand-repeater/text-expand-repeater.component.js.map +1 -1
  51. package/esm2015/lib/modules/text-expand-repeater/text-expand-repeater.module.js +1 -1
  52. package/esm2015/lib/modules/text-expand-repeater/text-expand-repeater.module.js.map +1 -1
  53. package/esm2015/lib/modules/toolbar/toolbar.component.js.map +1 -1
  54. package/esm2015/lib/modules/toolbar/toolbar.module.js +2 -2
  55. package/esm2015/lib/modules/toolbar/toolbar.module.js.map +1 -1
  56. package/esm2015/testing/action-button-fixture.js.map +1 -1
  57. package/esm2015/testing/card-fixture.js.map +1 -1
  58. package/esm2015/testing/page-summary-fixture.js.map +1 -1
  59. package/fesm2015/skyux-layout-testing.js.map +1 -1
  60. package/fesm2015/skyux-layout.js +315 -315
  61. package/fesm2015/skyux-layout.js.map +1 -1
  62. package/lib/modules/action-button/action-button-container.component.d.ts +1 -1
  63. package/lib/modules/card/card.component.d.ts +1 -1
  64. package/lib/modules/description-list/description-list-content.component.d.ts +1 -1
  65. package/lib/modules/description-list/description-list.component.d.ts +1 -1
  66. package/lib/modules/fluid-grid/column.component.d.ts +1 -1
  67. package/lib/modules/text-expand-repeater/text-expand-repeater.component.d.ts +1 -1
  68. package/package.json +8 -8
@@ -1 +1 @@
1
- {"version":3,"file":"inline-delete-adapter.service.js","sourceRoot":"","sources":["../../../../../../../../libs/components/layout/src/lib/modules/inline-delete/inline-delete-adapter.service.ts"],"names":[],"mappings":"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","sourcesContent":["import { Injectable, Renderer2, RendererFactory2 } from '@angular/core';\n\nimport { SkyCoreAdapterService } from '@skyux/core';\n\n/**\n * @internal\n */\n@Injectable()\nexport class SkyInlineDeleteAdapterService {\n private element: HTMLElement;\n private focussableElements: HTMLElement[];\n private parentEl: HTMLElement;\n private parentElUnlistenFn: Function;\n private renderer: Renderer2;\n\n constructor(\n private coreAdapterService: SkyCoreAdapterService,\n rendererFactory: RendererFactory2\n ) {\n this.renderer = rendererFactory.createRenderer(undefined, undefined);\n }\n\n public clearListeners(): void {\n /* istanbul ignore else */\n if (this.parentElUnlistenFn) {\n this.parentElUnlistenFn();\n }\n }\n\n public setEl(element: HTMLElement): void {\n this.element = element;\n this.parentEl = element.parentElement;\n\n /* istanbul ignore else */\n if (this.parentEl) {\n this.parentElUnlistenFn = this.renderer.listen(\n this.parentEl,\n 'focusin',\n (event: FocusEvent) => {\n const target: any = event.target;\n if (!this.element.contains(target) && this.parentEl !== target) {\n event.preventDefault();\n event.stopPropagation();\n event.stopImmediatePropagation();\n\n target.blur();\n this.focusNextElement(target, this.isShift(event), this.parentEl);\n }\n }\n );\n }\n }\n\n private focusNextElement(\n targetElement: HTMLElement,\n shiftKey: boolean,\n busyEl: Element\n ): void {\n const focussable = this.getFocussableElements();\n\n // If shift tab, go in the other direction\n const modifier = shiftKey ? -1 : 1;\n\n // Find the next navigable element that isn't waiting\n const startingIndex = focussable.indexOf(targetElement);\n let curIndex = startingIndex + modifier;\n while (\n focussable[curIndex] &&\n this.isElementHiddenOrCovered(focussable[curIndex])\n ) {\n curIndex += modifier;\n }\n\n if (\n focussable[curIndex] &&\n !this.isElementHiddenOrCovered(focussable[curIndex])\n ) {\n focussable[curIndex].focus();\n } else {\n // Try wrapping the navigation\n /* istanbul ignore next */\n curIndex = modifier > 0 ? 0 : focussable.length - 1;\n\n /* istanbul ignore next */\n while (\n curIndex !== startingIndex &&\n focussable[curIndex] &&\n this.isElementHiddenOrCovered(focussable[curIndex])\n ) {\n curIndex += modifier;\n }\n\n /* istanbul ignore else */\n /* sanity check */\n if (\n focussable[curIndex] &&\n !this.isElementHiddenOrCovered(focussable[curIndex])\n ) {\n focussable[curIndex].focus();\n } else {\n // No valid target, wipe focus\n // This should never happen in practice due to the multiple inline delete buttons\n if (document.activeElement && (document.activeElement as any).blur) {\n (document.activeElement as any).blur();\n }\n document.body.focus();\n }\n }\n\n // clear focussableElements list so that if things change between tabbing we know about it\n this.focussableElements = undefined;\n }\n\n private getFocussableElements(): HTMLElement[] {\n // Keep this cached so we can reduce querys\n if (this.focussableElements) {\n return this.focussableElements;\n }\n\n this.focussableElements = this.coreAdapterService.getFocusableChildren(\n document.body\n );\n\n return this.focussableElements;\n }\n\n private isElementHiddenOrCovered(element: any): boolean {\n // Check if the element is hidden by css, not within the inline delete, or a wait is covering it\n return (\n this.isElementHidden(element) ||\n (this.parentEl.contains(element) &&\n (!this.element.contains(element) ||\n this.parentEl.querySelector('.sky-wait-mask') !== null))\n );\n }\n\n private isElementHidden(element: any): boolean {\n const style = window.getComputedStyle(element);\n return style.display === 'none' || style.visibility === 'hidden';\n }\n\n private isShift(event: Event): boolean {\n // Determine if shift+tab was used based on element order\n const elements = this.getFocussableElements().filter(\n (elem) => !this.isElementHidden(elem)\n );\n\n const previousInd = elements.indexOf((event as any).relatedTarget);\n const currentInd = elements.indexOf(event.target as HTMLElement);\n\n /* istanbul ignore next */\n return (\n previousInd === currentInd + 1 ||\n (previousInd === 0 && currentInd === elements.length - 1) ||\n previousInd > currentInd ||\n !(event as any).relatedTarget\n );\n }\n}\n"]}
1
+ {"version":3,"file":"inline-delete-adapter.service.js","sourceRoot":"","sources":["../../../../../../../../libs/components/layout/src/lib/modules/inline-delete/inline-delete-adapter.service.ts"],"names":[],"mappings":"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","sourcesContent":["import { Injectable, Renderer2, RendererFactory2 } from '@angular/core';\nimport { SkyCoreAdapterService } from '@skyux/core';\n\n/**\n * @internal\n */\n@Injectable()\nexport class SkyInlineDeleteAdapterService {\n private element: HTMLElement;\n private focussableElements: HTMLElement[];\n private parentEl: HTMLElement;\n private parentElUnlistenFn: Function;\n private renderer: Renderer2;\n\n constructor(\n private coreAdapterService: SkyCoreAdapterService,\n rendererFactory: RendererFactory2\n ) {\n this.renderer = rendererFactory.createRenderer(undefined, undefined);\n }\n\n public clearListeners(): void {\n /* istanbul ignore else */\n if (this.parentElUnlistenFn) {\n this.parentElUnlistenFn();\n }\n }\n\n public setEl(element: HTMLElement): void {\n this.element = element;\n this.parentEl = element.parentElement;\n\n /* istanbul ignore else */\n if (this.parentEl) {\n this.parentElUnlistenFn = this.renderer.listen(\n this.parentEl,\n 'focusin',\n (event: FocusEvent) => {\n const target: any = event.target;\n if (!this.element.contains(target) && this.parentEl !== target) {\n event.preventDefault();\n event.stopPropagation();\n event.stopImmediatePropagation();\n\n target.blur();\n this.focusNextElement(target, this.isShift(event), this.parentEl);\n }\n }\n );\n }\n }\n\n private focusNextElement(\n targetElement: HTMLElement,\n shiftKey: boolean,\n busyEl: Element\n ): void {\n const focussable = this.getFocussableElements();\n\n // If shift tab, go in the other direction\n const modifier = shiftKey ? -1 : 1;\n\n // Find the next navigable element that isn't waiting\n const startingIndex = focussable.indexOf(targetElement);\n let curIndex = startingIndex + modifier;\n while (\n focussable[curIndex] &&\n this.isElementHiddenOrCovered(focussable[curIndex])\n ) {\n curIndex += modifier;\n }\n\n if (\n focussable[curIndex] &&\n !this.isElementHiddenOrCovered(focussable[curIndex])\n ) {\n focussable[curIndex].focus();\n } else {\n // Try wrapping the navigation\n /* istanbul ignore next */\n curIndex = modifier > 0 ? 0 : focussable.length - 1;\n\n /* istanbul ignore next */\n while (\n curIndex !== startingIndex &&\n focussable[curIndex] &&\n this.isElementHiddenOrCovered(focussable[curIndex])\n ) {\n curIndex += modifier;\n }\n\n /* istanbul ignore else */\n /* sanity check */\n if (\n focussable[curIndex] &&\n !this.isElementHiddenOrCovered(focussable[curIndex])\n ) {\n focussable[curIndex].focus();\n } else {\n // No valid target, wipe focus\n // This should never happen in practice due to the multiple inline delete buttons\n if (document.activeElement && (document.activeElement as any).blur) {\n (document.activeElement as any).blur();\n }\n document.body.focus();\n }\n }\n\n // clear focussableElements list so that if things change between tabbing we know about it\n this.focussableElements = undefined;\n }\n\n private getFocussableElements(): HTMLElement[] {\n // Keep this cached so we can reduce querys\n if (this.focussableElements) {\n return this.focussableElements;\n }\n\n this.focussableElements = this.coreAdapterService.getFocusableChildren(\n document.body\n );\n\n return this.focussableElements;\n }\n\n private isElementHiddenOrCovered(element: any): boolean {\n // Check if the element is hidden by css, not within the inline delete, or a wait is covering it\n return (\n this.isElementHidden(element) ||\n (this.parentEl.contains(element) &&\n (!this.element.contains(element) ||\n this.parentEl.querySelector('.sky-wait-mask') !== null))\n );\n }\n\n private isElementHidden(element: any): boolean {\n const style = window.getComputedStyle(element);\n return style.display === 'none' || style.visibility === 'hidden';\n }\n\n private isShift(event: Event): boolean {\n // Determine if shift+tab was used based on element order\n const elements = this.getFocussableElements().filter(\n (elem) => !this.isElementHidden(elem)\n );\n\n const previousInd = elements.indexOf((event as any).relatedTarget);\n const currentInd = elements.indexOf(event.target as HTMLElement);\n\n /* istanbul ignore next */\n return (\n previousInd === currentInd + 1 ||\n (previousInd === 0 && currentInd === elements.length - 1) ||\n previousInd > currentInd ||\n !(event as any).relatedTarget\n );\n }\n}\n"]}
@@ -1 +1 @@
1
- {"version":3,"file":"inline-delete.component.js","sourceRoot":"","sources":["../../../../../../../../libs/components/layout/src/lib/modules/inline-delete/inline-delete.component.ts","../../../../../../../../libs/components/layout/src/lib/modules/inline-delete/inline-delete.component.html"],"names":[],"mappings":"AAAA,OAAO,EACL,OAAO,EAEP,KAAK,EACL,KAAK,EACL,KAAK,EACL,UAAU,EACV,OAAO,GACR,MAAM,qBAAqB,CAAC;AAE7B,OAAO,EACL,iBAAiB,EACjB,SAAS,EACT,UAAU,EACV,YAAY,EACZ,KAAK,EAGL,MAAM,EACN,SAAS,GACV,MAAM,eAAe,CAAC;AAEvB,OAAO,EAAE,qBAAqB,EAAE,MAAM,aAAa,CAAC;AAEpD,OAAO,EAAE,6BAA6B,EAAE,MAAM,iCAAiC,CAAC;AAEhF,OAAO,EAAE,mBAAmB,EAAE,MAAM,sBAAsB,CAAC;;;;;AAE3D;;GAEG;AACH,IAAI,MAAM,GAAG,CAAC,CAAC;AAwDf,MAAM,OAAO,wBAAwB;IAgCnC,YACU,cAA6C,EAC7C,cAAiC,EACjC,KAAiB;QAFjB,mBAAc,GAAd,cAAc,CAA+B;QAC7C,mBAAc,GAAd,cAAc,CAAmB;QACjC,UAAK,GAAL,KAAK,CAAY;QAlC3B;;;WAGG;QAEI,YAAO,GAAY,KAAK,CAAC;QAEhC;;WAEG;QAEI,oBAAe,GAAG,IAAI,YAAY,EAAQ,CAAC;QAElD;;WAEG;QAEI,oBAAe,GAAG,IAAI,YAAY,EAAQ,CAAC;QAE3C,mBAAc,GAAW,OAAO,CAAC;QAEjC,oBAAe,GAAW,oCAAoC,EAAE,MAAM,EAAE,CAAC;QAEzE,SAAI,GAAwB,mBAAmB,CAAC,QAAQ,CAAC;IAY7D,CAAC;IAEJ;;;OAGG;IACI,QAAQ;QACb,IAAI,CAAC,cAAc,GAAG,OAAO,CAAC;IAChC,CAAC;IAED;;;OAGG;IACI,WAAW;QAChB,IAAI,CAAC,cAAc,CAAC,cAAc,EAAE,CAAC;QACrC,IAAI,CAAC,eAAe,CAAC,QAAQ,EAAE,CAAC;QAChC,IAAI,CAAC,eAAe,CAAC,QAAQ,EAAE,CAAC;IAClC,CAAC;IAED;;OAEG;IACI,aAAa;QAClB,IAAI,CAAC,cAAc,GAAG,QAAQ,CAAC;IACjC,CAAC;IAED;;OAEG;IACI,aAAa;QAClB,IAAI,CAAC,eAAe,CAAC,IAAI,EAAE,CAAC;IAC9B,CAAC;IAED;;;;OAIG;IACI,OAAO,CAAC,IAAyB;QACtC,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC;QACjB,IAAI,CAAC,cAAc,CAAC,aAAa,EAAE,CAAC;IACtC,CAAC;IAED;;;;OAIG;IACI,eAAe,CAAC,KAAqB;QAC1C,IAAI,KAAK,CAAC,OAAO,KAAK,QAAQ,EAAE;YAC9B,IAAI,CAAC,eAAe,CAAC,IAAI,EAAE,CAAC;SAC7B;aAAM;YACL,IAAI,CAAC,YAAY,CAAC,aAAa,CAAC,KAAK,EAAE,CAAC;YACxC,0BAA0B;YAC1B,IAAI,IAAI,CAAC,KAAK,EAAE;gBACd,IAAI,CAAC,cAAc,CAAC,KAAK,CAAC,IAAI,CAAC,KAAK,CAAC,aAAa,CAAC,CAAC;aACrD;SACF;IACH,CAAC;;sHA/FU,wBAAwB;0GAAxB,wBAAwB,iKAFxB,CAAC,qBAAqB,EAAE,6BAA6B,CAAC,6GA6BzD,UAAU,6BClHpB,gpCAgCA,y0BDKc;QACV,OAAO,CAAC,uBAAuB,EAAE;YAC/B,UAAU,CAAC,YAAY,EAAE;gBACvB,KAAK,CAAC;oBACJ,OAAO,EAAE,CAAC;iBACX,CAAC;gBACF,KAAK,CACH,gDAAgD,EAChD,KAAK,CAAC,EAAE,SAAS,EAAE,YAAY,EAAE,CAAC,CACnC;gBACD,KAAK,CAAC;oBACJ,OAAO,CAAC,mBAAmB,EAAE,KAAK,CAAC,EAAE,OAAO,EAAE,CAAC,EAAE,CAAC,CAAC;oBACnD,KAAK,CACH,gDAAgD,EAChD,OAAO,CACL,mBAAmB,EACnB,KAAK,CAAC;wBACJ,SAAS,EAAE,UAAU;qBACtB,CAAC,CACH,CACF;iBACF,CAAC;aACH,CAAC;YACF,UAAU,CAAC,aAAa,EAAE;gBACxB,KAAK,CACH,gDAAgD,EAChD,KAAK,CAAC,EAAE,SAAS,EAAE,UAAU,EAAE,CAAC,CACjC;gBACD,KAAK,CAAC;oBACJ,OAAO,CACL,mBAAmB,EACnB,KAAK,CAAC;wBACJ,OAAO,EAAE,CAAC;qBACX,CAAC,CACH;oBACD,KAAK,CACH,gDAAgD,EAChD,OAAO,CACL,mBAAmB,EACnB,KAAK,CAAC;wBACJ,SAAS,EAAE,YAAY;qBACxB,CAAC,CACH,CACF;iBACF,CAAC;aACH,CAAC;SACH,CAAC;KACH;4FAGU,wBAAwB;kBAtDpC,SAAS;mBAAC;oBACT,QAAQ,EAAE,mBAAmB;oBAC7B,SAAS,EAAE,CAAC,gCAAgC,CAAC;oBAC7C,WAAW,EAAE,gCAAgC;oBAC7C,UAAU,EAAE;wBACV,OAAO,CAAC,uBAAuB,EAAE;4BAC/B,UAAU,CAAC,YAAY,EAAE;gCACvB,KAAK,CAAC;oCACJ,OAAO,EAAE,CAAC;iCACX,CAAC;gCACF,KAAK,CACH,gDAAgD,EAChD,KAAK,CAAC,EAAE,SAAS,EAAE,YAAY,EAAE,CAAC,CACnC;gCACD,KAAK,CAAC;oCACJ,OAAO,CAAC,mBAAmB,EAAE,KAAK,CAAC,EAAE,OAAO,EAAE,CAAC,EAAE,CAAC,CAAC;oCACnD,KAAK,CACH,gDAAgD,EAChD,OAAO,CACL,mBAAmB,EACnB,KAAK,CAAC;wCACJ,SAAS,EAAE,UAAU;qCACtB,CAAC,CACH,CACF;iCACF,CAAC;6BACH,CAAC;4BACF,UAAU,CAAC,aAAa,EAAE;gCACxB,KAAK,CACH,gDAAgD,EAChD,KAAK,CAAC,EAAE,SAAS,EAAE,UAAU,EAAE,CAAC,CACjC;gCACD,KAAK,CAAC;oCACJ,OAAO,CACL,mBAAmB,EACnB,KAAK,CAAC;wCACJ,OAAO,EAAE,CAAC;qCACX,CAAC,CACH;oCACD,KAAK,CACH,gDAAgD,EAChD,OAAO,CACL,mBAAmB,EACnB,KAAK,CAAC;wCACJ,SAAS,EAAE,YAAY;qCACxB,CAAC,CACH,CACF;iCACF,CAAC;6BACH,CAAC;yBACH,CAAC;qBACH;oBACD,SAAS,EAAE,CAAC,qBAAqB,EAAE,6BAA6B,CAAC;iBAClE;6KAOQ,OAAO;sBADb,KAAK;gBAOC,eAAe;sBADrB,MAAM;gBAOA,eAAe;sBADrB,MAAM;gBAaC,YAAY;sBAJnB,SAAS;uBAAC,QAAQ,EAAE;wBACnB,IAAI,EAAE,UAAU;wBAChB,MAAM,EAAE,KAAK;qBACd","sourcesContent":["import {\n animate,\n AnimationEvent,\n group,\n query,\n style,\n transition,\n trigger,\n} from '@angular/animations';\n\nimport {\n ChangeDetectorRef,\n Component,\n ElementRef,\n EventEmitter,\n Input,\n OnDestroy,\n OnInit,\n Output,\n ViewChild,\n} from '@angular/core';\n\nimport { SkyCoreAdapterService } from '@skyux/core';\n\nimport { SkyInlineDeleteAdapterService } from './inline-delete-adapter.service';\n\nimport { SkyInlineDeleteType } from './inline-delete-type';\n\n/**\n * Auto-incrementing integer used to generate unique ids for inline delete components.\n */\nlet nextId = 0;\n\n@Component({\n selector: 'sky-inline-delete',\n styleUrls: ['./inline-delete.component.scss'],\n templateUrl: './inline-delete.component.html',\n animations: [\n trigger('inlineDeleteAnimation', [\n transition('* => shown', [\n style({\n opacity: 0,\n }),\n query(\n '.sky-inline-delete-content-animation-container',\n style({ transform: 'scale(0.0)' })\n ),\n group([\n animate('300ms ease-in-out', style({ opacity: 1 })),\n query(\n '.sky-inline-delete-content-animation-container',\n animate(\n '300ms ease-in-out',\n style({\n transform: 'scale(1)',\n })\n )\n ),\n ]),\n ]),\n transition(`shown <=> *`, [\n query(\n '.sky-inline-delete-content-animation-container',\n style({ transform: 'scale(1)' })\n ),\n group([\n animate(\n '300ms ease-in-out',\n style({\n opacity: 0,\n })\n ),\n query(\n '.sky-inline-delete-content-animation-container',\n animate(\n '300ms ease-in-out',\n style({\n transform: 'scale(0.0)',\n })\n )\n ),\n ]),\n ]),\n ]),\n ],\n providers: [SkyCoreAdapterService, SkyInlineDeleteAdapterService],\n})\nexport class SkyInlineDeleteComponent implements OnDestroy, OnInit {\n /**\n * Indicates whether the deletion is pending.\n * @default false\n */\n @Input()\n public pending: boolean = false;\n\n /**\n * Fires when users click the cancel button.\n */\n @Output()\n public cancelTriggered = new EventEmitter<void>();\n\n /**\n * Fires when users click the delete button.\n */\n @Output()\n public deleteTriggered = new EventEmitter<void>();\n\n public animationState: string = 'shown';\n\n public assistiveTextId: string = `sky-inline-delete-assistive-text-${++nextId}`;\n\n public type: SkyInlineDeleteType = SkyInlineDeleteType.Standard;\n\n @ViewChild('delete', {\n read: ElementRef,\n static: false,\n })\n private deleteButton: ElementRef;\n\n constructor(\n private adapterService: SkyInlineDeleteAdapterService,\n private changeDetector: ChangeDetectorRef,\n private elRef: ElementRef\n ) {}\n\n /**\n * Initialization lifecycle hook\n * @internal\n */\n public ngOnInit(): void {\n this.animationState = 'shown';\n }\n\n /**\n * Destruction lifecycle hook\n * @internal\n */\n public ngOnDestroy(): void {\n this.adapterService.clearListeners();\n this.cancelTriggered.complete();\n this.deleteTriggered.complete();\n }\n\n /**\n * @internal\n */\n public onCancelClick(): void {\n this.animationState = 'hidden';\n }\n\n /**\n * @internal\n */\n public onDeleteClick(): void {\n this.deleteTriggered.emit();\n }\n\n /**\n * Sets the inline delete to one of its predefined types.\n * @param type The inline delete type\n * @internal\n */\n public setType(type: SkyInlineDeleteType): void {\n this.type = type;\n this.changeDetector.detectChanges();\n }\n\n /**\n * Handles actions that should be taken after the inline delete animates\n * @param event The animation event\n * @internal\n */\n public onAnimationDone(event: AnimationEvent): void {\n if (event.toState === 'hidden') {\n this.cancelTriggered.emit();\n } else {\n this.deleteButton.nativeElement.focus();\n /* istanbul ignore else */\n if (this.elRef) {\n this.adapterService.setEl(this.elRef.nativeElement);\n }\n }\n }\n}\n","<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"]}
1
+ {"version":3,"file":"inline-delete.component.js","sourceRoot":"","sources":["../../../../../../../../libs/components/layout/src/lib/modules/inline-delete/inline-delete.component.ts","../../../../../../../../libs/components/layout/src/lib/modules/inline-delete/inline-delete.component.html"],"names":[],"mappings":"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","sourcesContent":["import {\n AnimationEvent,\n animate,\n group,\n query,\n style,\n transition,\n trigger,\n} from '@angular/animations';\nimport {\n ChangeDetectorRef,\n Component,\n ElementRef,\n EventEmitter,\n Input,\n OnDestroy,\n OnInit,\n Output,\n ViewChild,\n} from '@angular/core';\nimport { SkyCoreAdapterService } from '@skyux/core';\n\nimport { SkyInlineDeleteAdapterService } from './inline-delete-adapter.service';\nimport { SkyInlineDeleteType } from './inline-delete-type';\n\n/**\n * Auto-incrementing integer used to generate unique ids for inline delete components.\n */\nlet nextId = 0;\n\n@Component({\n selector: 'sky-inline-delete',\n styleUrls: ['./inline-delete.component.scss'],\n templateUrl: './inline-delete.component.html',\n animations: [\n trigger('inlineDeleteAnimation', [\n transition('* => shown', [\n style({\n opacity: 0,\n }),\n query(\n '.sky-inline-delete-content-animation-container',\n style({ transform: 'scale(0.0)' })\n ),\n group([\n animate('300ms ease-in-out', style({ opacity: 1 })),\n query(\n '.sky-inline-delete-content-animation-container',\n animate(\n '300ms ease-in-out',\n style({\n transform: 'scale(1)',\n })\n )\n ),\n ]),\n ]),\n transition(`shown <=> *`, [\n query(\n '.sky-inline-delete-content-animation-container',\n style({ transform: 'scale(1)' })\n ),\n group([\n animate(\n '300ms ease-in-out',\n style({\n opacity: 0,\n })\n ),\n query(\n '.sky-inline-delete-content-animation-container',\n animate(\n '300ms ease-in-out',\n style({\n transform: 'scale(0.0)',\n })\n )\n ),\n ]),\n ]),\n ]),\n ],\n providers: [SkyCoreAdapterService, SkyInlineDeleteAdapterService],\n})\nexport class SkyInlineDeleteComponent implements OnDestroy, OnInit {\n /**\n * Indicates whether the deletion is pending.\n * @default false\n */\n @Input()\n public pending = false;\n\n /**\n * Fires when users click the cancel button.\n */\n @Output()\n public cancelTriggered = new EventEmitter<void>();\n\n /**\n * Fires when users click the delete button.\n */\n @Output()\n public deleteTriggered = new EventEmitter<void>();\n\n public animationState = 'shown';\n\n public assistiveTextId = `sky-inline-delete-assistive-text-${++nextId}`;\n\n public type: SkyInlineDeleteType = SkyInlineDeleteType.Standard;\n\n @ViewChild('delete', {\n read: ElementRef,\n static: false,\n })\n private deleteButton: ElementRef;\n\n constructor(\n private adapterService: SkyInlineDeleteAdapterService,\n private changeDetector: ChangeDetectorRef,\n private elRef: ElementRef\n ) {}\n\n /**\n * Initialization lifecycle hook\n * @internal\n */\n public ngOnInit(): void {\n this.animationState = 'shown';\n }\n\n /**\n * Destruction lifecycle hook\n * @internal\n */\n public ngOnDestroy(): void {\n this.adapterService.clearListeners();\n this.cancelTriggered.complete();\n this.deleteTriggered.complete();\n }\n\n /**\n * @internal\n */\n public onCancelClick(): void {\n this.animationState = 'hidden';\n }\n\n /**\n * @internal\n */\n public onDeleteClick(): void {\n this.deleteTriggered.emit();\n }\n\n /**\n * Sets the inline delete to one of its predefined types.\n * @param type The inline delete type\n * @internal\n */\n public setType(type: SkyInlineDeleteType): void {\n this.type = type;\n this.changeDetector.detectChanges();\n }\n\n /**\n * Handles actions that should be taken after the inline delete animates\n * @param event The animation event\n * @internal\n */\n public onAnimationDone(event: AnimationEvent): void {\n if (event.toState === 'hidden') {\n this.cancelTriggered.emit();\n } else {\n this.deleteButton.nativeElement.focus();\n /* istanbul ignore else */\n if (this.elRef) {\n this.adapterService.setEl(this.elRef.nativeElement);\n }\n }\n }\n}\n","<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"]}
@@ -1,5 +1,5 @@
1
- import { NgModule } from '@angular/core';
2
1
  import { CommonModule } from '@angular/common';
2
+ import { NgModule } from '@angular/core';
3
3
  import { SkyI18nModule } from '@skyux/i18n';
4
4
  import { SkyWaitModule } from '@skyux/indicators';
5
5
  import { SkyLayoutResourcesModule } from '../shared/sky-layout-resources.module';
@@ -1 +1 @@
1
- {"version":3,"file":"inline-delete.module.js","sourceRoot":"","sources":["../../../../../../../../libs/components/layout/src/lib/modules/inline-delete/inline-delete.module.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,MAAM,eAAe,CAAC;AAEzC,OAAO,EAAE,YAAY,EAAE,MAAM,iBAAiB,CAAC;AAE/C,OAAO,EAAE,aAAa,EAAE,MAAM,aAAa,CAAC;AAE5C,OAAO,EAAE,aAAa,EAAE,MAAM,mBAAmB,CAAC;AAElD,OAAO,EAAE,wBAAwB,EAAE,MAAM,uCAAuC,CAAC;AAEjF,OAAO,EAAE,wBAAwB,EAAE,MAAM,2BAA2B,CAAC;;AAYrE,MAAM,OAAO,qBAAqB;;mHAArB,qBAAqB;oHAArB,qBAAqB,iBATjB,wBAAwB,aAErC,YAAY;QACZ,aAAa;QACb,wBAAwB;QACxB,aAAa,aAEL,wBAAwB;oHAEvB,qBAAqB,YARvB;YACP,YAAY;YACZ,aAAa;YACb,wBAAwB;YACxB,aAAa;SACd;4FAGU,qBAAqB;kBAVjC,QAAQ;mBAAC;oBACR,YAAY,EAAE,CAAC,wBAAwB,CAAC;oBACxC,OAAO,EAAE;wBACP,YAAY;wBACZ,aAAa;wBACb,wBAAwB;wBACxB,aAAa;qBACd;oBACD,OAAO,EAAE,CAAC,wBAAwB,CAAC;iBACpC","sourcesContent":["import { NgModule } from '@angular/core';\n\nimport { CommonModule } from '@angular/common';\n\nimport { SkyI18nModule } from '@skyux/i18n';\n\nimport { SkyWaitModule } from '@skyux/indicators';\n\nimport { SkyLayoutResourcesModule } from '../shared/sky-layout-resources.module';\n\nimport { SkyInlineDeleteComponent } from './inline-delete.component';\n\n@NgModule({\n declarations: [SkyInlineDeleteComponent],\n imports: [\n CommonModule,\n SkyI18nModule,\n SkyLayoutResourcesModule,\n SkyWaitModule,\n ],\n exports: [SkyInlineDeleteComponent],\n})\nexport class SkyInlineDeleteModule {}\n"]}
1
+ {"version":3,"file":"inline-delete.module.js","sourceRoot":"","sources":["../../../../../../../../libs/components/layout/src/lib/modules/inline-delete/inline-delete.module.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAE,MAAM,iBAAiB,CAAC;AAC/C,OAAO,EAAE,QAAQ,EAAE,MAAM,eAAe,CAAC;AACzC,OAAO,EAAE,aAAa,EAAE,MAAM,aAAa,CAAC;AAC5C,OAAO,EAAE,aAAa,EAAE,MAAM,mBAAmB,CAAC;AAElD,OAAO,EAAE,wBAAwB,EAAE,MAAM,uCAAuC,CAAC;AAEjF,OAAO,EAAE,wBAAwB,EAAE,MAAM,2BAA2B,CAAC;;AAYrE,MAAM,OAAO,qBAAqB;;mHAArB,qBAAqB;oHAArB,qBAAqB,iBATjB,wBAAwB,aAErC,YAAY;QACZ,aAAa;QACb,wBAAwB;QACxB,aAAa,aAEL,wBAAwB;oHAEvB,qBAAqB,YARvB;YACP,YAAY;YACZ,aAAa;YACb,wBAAwB;YACxB,aAAa;SACd;4FAGU,qBAAqB;kBAVjC,QAAQ;mBAAC;oBACR,YAAY,EAAE,CAAC,wBAAwB,CAAC;oBACxC,OAAO,EAAE;wBACP,YAAY;wBACZ,aAAa;wBACb,wBAAwB;wBACxB,aAAa;qBACd;oBACD,OAAO,EAAE,CAAC,wBAAwB,CAAC;iBACpC","sourcesContent":["import { CommonModule } from '@angular/common';\nimport { NgModule } from '@angular/core';\nimport { SkyI18nModule } from '@skyux/i18n';\nimport { SkyWaitModule } from '@skyux/indicators';\n\nimport { SkyLayoutResourcesModule } from '../shared/sky-layout-resources.module';\n\nimport { SkyInlineDeleteComponent } from './inline-delete.component';\n\n@NgModule({\n declarations: [SkyInlineDeleteComponent],\n imports: [\n CommonModule,\n SkyI18nModule,\n SkyLayoutResourcesModule,\n SkyWaitModule,\n ],\n exports: [SkyInlineDeleteComponent],\n})\nexport class SkyInlineDeleteModule {}\n"]}
@@ -5,8 +5,8 @@ import * as i0 from "@angular/core";
5
5
  */
6
6
  export class SkyPageSummaryAdapterService {
7
7
  updateKeyInfoLocation(elRef, isXS) {
8
- let el = elRef.nativeElement;
9
- let keyInfoContainerEl = el.querySelector('.sky-page-summary-key-info-container');
8
+ const el = elRef.nativeElement;
9
+ const keyInfoContainerEl = el.querySelector('.sky-page-summary-key-info-container');
10
10
  if (isXS) {
11
11
  el.querySelector('.sky-page-summary-key-info-xs').appendChild(keyInfoContainerEl);
12
12
  }
@@ -1 +1 @@
1
- {"version":3,"file":"page-summary-adapter.service.js","sourceRoot":"","sources":["../../../../../../../../libs/components/layout/src/lib/modules/page-summary/page-summary-adapter.service.ts"],"names":[],"mappings":"AAAA,OAAO,EAAc,UAAU,EAAE,MAAM,eAAe,CAAC;;AAEvD;;GAEG;AAEH,MAAM,OAAO,4BAA4B;IAChC,qBAAqB,CAAC,KAAiB,EAAE,IAAa;QAC3D,IAAI,EAAE,GAAG,KAAK,CAAC,aAAa,CAAC;QAC7B,IAAI,kBAAkB,GAAG,EAAE,CAAC,aAAa,CACvC,sCAAsC,CACvC,CAAC;QAEF,IAAI,IAAI,EAAE;YACR,EAAE,CAAC,aAAa,CAAC,+BAA+B,CAAC,CAAC,WAAW,CAC3D,kBAAkB,CACnB,CAAC;SACH;aAAM;YACL,EAAE,CAAC,aAAa,CAAC,+BAA+B,CAAC,CAAC,WAAW,CAC3D,kBAAkB,CACnB,CAAC;SACH;IACH,CAAC;;0HAhBU,4BAA4B;8HAA5B,4BAA4B;4FAA5B,4BAA4B;kBADxC,UAAU","sourcesContent":["import { ElementRef, Injectable } from '@angular/core';\n\n/**\n * @internal\n */\n@Injectable()\nexport class SkyPageSummaryAdapterService {\n public updateKeyInfoLocation(elRef: ElementRef, isXS: boolean) {\n let el = elRef.nativeElement;\n let keyInfoContainerEl = el.querySelector(\n '.sky-page-summary-key-info-container'\n );\n\n if (isXS) {\n el.querySelector('.sky-page-summary-key-info-xs').appendChild(\n keyInfoContainerEl\n );\n } else {\n el.querySelector('.sky-page-summary-key-info-sm').appendChild(\n keyInfoContainerEl\n );\n }\n }\n}\n"]}
1
+ {"version":3,"file":"page-summary-adapter.service.js","sourceRoot":"","sources":["../../../../../../../../libs/components/layout/src/lib/modules/page-summary/page-summary-adapter.service.ts"],"names":[],"mappings":"AAAA,OAAO,EAAc,UAAU,EAAE,MAAM,eAAe,CAAC;;AAEvD;;GAEG;AAEH,MAAM,OAAO,4BAA4B;IAChC,qBAAqB,CAAC,KAAiB,EAAE,IAAa;QAC3D,MAAM,EAAE,GAAG,KAAK,CAAC,aAAa,CAAC;QAC/B,MAAM,kBAAkB,GAAG,EAAE,CAAC,aAAa,CACzC,sCAAsC,CACvC,CAAC;QAEF,IAAI,IAAI,EAAE;YACR,EAAE,CAAC,aAAa,CAAC,+BAA+B,CAAC,CAAC,WAAW,CAC3D,kBAAkB,CACnB,CAAC;SACH;aAAM;YACL,EAAE,CAAC,aAAa,CAAC,+BAA+B,CAAC,CAAC,WAAW,CAC3D,kBAAkB,CACnB,CAAC;SACH;IACH,CAAC;;0HAhBU,4BAA4B;8HAA5B,4BAA4B;4FAA5B,4BAA4B;kBADxC,UAAU","sourcesContent":["import { ElementRef, Injectable } from '@angular/core';\n\n/**\n * @internal\n */\n@Injectable()\nexport class SkyPageSummaryAdapterService {\n public updateKeyInfoLocation(elRef: ElementRef, isXS: boolean) {\n const el = elRef.nativeElement;\n const keyInfoContainerEl = el.querySelector(\n '.sky-page-summary-key-info-container'\n );\n\n if (isXS) {\n el.querySelector('.sky-page-summary-key-info-xs').appendChild(\n keyInfoContainerEl\n );\n } else {\n el.querySelector('.sky-page-summary-key-info-sm').appendChild(\n keyInfoContainerEl\n );\n }\n }\n}\n"]}
@@ -1 +1 @@
1
- {"version":3,"file":"page-summary.component.js","sourceRoot":"","sources":["../../../../../../../../libs/components/layout/src/lib/modules/page-summary/page-summary.component.ts","../../../../../../../../libs/components/layout/src/lib/modules/page-summary/page-summary.component.html"],"names":[],"mappings":"AAAA,OAAO,EAEL,SAAS,EACT,eAAe,EACf,UAAU,EAEV,SAAS,GACV,MAAM,eAAe,CAAC;AAEvB,OAAO,EAAE,mBAAmB,EAAE,oBAAoB,EAAE,MAAM,aAAa,CAAC;AAIxE,OAAO,EAAE,4BAA4B,EAAE,MAAM,gCAAgC,CAAC;AAE9E,OAAO,EAAE,8BAA8B,EAAE,MAAM,mCAAmC,CAAC;;;;;AAEnF;;GAEG;AAOH,MAAM,OAAO,uBAAuB;IAYlC,YACU,KAAiB,EACjB,OAAqC,EACrC,iBAAuC;QAFvC,UAAK,GAAL,KAAK,CAAY;QACjB,YAAO,GAAP,OAAO,CAA8B;QACrC,sBAAiB,GAAjB,iBAAiB,CAAsB;IAC9C,CAAC;IAfJ,IAAW,UAAU;QACnB,OAAO,IAAI,CAAC,iBAAiB,CAAC,MAAM,GAAG,CAAC,CAAC;IAC3C,CAAC;IAeM,eAAe;QACpB,IAAI,CAAC,sBAAsB,GAAG,IAAI,CAAC,iBAAiB,CAAC,SAAS,CAC5D,CAAC,IAAyB,EAAE,EAAE;YAC5B,IAAI,CAAC,OAAO,CAAC,qBAAqB,CAChC,IAAI,CAAC,KAAK,EACV,IAAI,KAAK,mBAAmB,CAAC,EAAE,CAChC,CAAC;QACJ,CAAC,CACF,CAAC;IACJ,CAAC;IAEM,WAAW;QAChB,0BAA0B;QAC1B,kBAAkB;QAClB,IAAI,IAAI,CAAC,sBAAsB,EAAE;YAC/B,IAAI,CAAC,sBAAsB,CAAC,WAAW,EAAE,CAAC;SAC3C;IACH,CAAC;;qHAnCU,uBAAuB;yGAAvB,uBAAuB,2CAFvB,CAAC,4BAA4B,CAAC,4DAOxB,8BAA8B,QACvC,8BAA8B,6BChCxC,87BAuBA;4FDGa,uBAAuB;kBANnC,SAAS;mBAAC;oBACT,QAAQ,EAAE,kBAAkB;oBAC5B,WAAW,EAAE,+BAA+B;oBAC5C,SAAS,EAAE,CAAC,+BAA+B,CAAC;oBAC5C,SAAS,EAAE,CAAC,4BAA4B,CAAC;iBAC1C;+KASS,iBAAiB;sBAHxB,eAAe;uBAAC,8BAA8B,EAAE;wBAC/C,IAAI,EAAE,8BAA8B;qBACrC","sourcesContent":["import {\n AfterViewInit,\n Component,\n ContentChildren,\n ElementRef,\n OnDestroy,\n QueryList,\n} from '@angular/core';\n\nimport { SkyMediaBreakpoints, SkyMediaQueryService } from '@skyux/core';\n\nimport { Subscription } from 'rxjs';\n\nimport { SkyPageSummaryAdapterService } from './page-summary-adapter.service';\n\nimport { SkyPageSummaryKeyInfoComponent } from './page-summary-key-info.component';\n\n/**\n * Specifies the components to display in the page summary.\n */\n@Component({\n selector: 'sky-page-summary',\n templateUrl: './page-summary.component.html',\n styleUrls: ['./page-summary.component.scss'],\n providers: [SkyPageSummaryAdapterService],\n})\nexport class SkyPageSummaryComponent implements OnDestroy, AfterViewInit {\n public get hasKeyInfo(): boolean {\n return this.keyInfoComponents.length > 0;\n }\n\n @ContentChildren(SkyPageSummaryKeyInfoComponent, {\n read: SkyPageSummaryKeyInfoComponent,\n })\n private keyInfoComponents: QueryList<SkyPageSummaryKeyInfoComponent>;\n\n private breakpointSubscription: Subscription;\n\n constructor(\n private elRef: ElementRef,\n private adapter: SkyPageSummaryAdapterService,\n private mediaQueryService: SkyMediaQueryService\n ) {}\n\n public ngAfterViewInit() {\n this.breakpointSubscription = this.mediaQueryService.subscribe(\n (args: SkyMediaBreakpoints) => {\n this.adapter.updateKeyInfoLocation(\n this.elRef,\n args === SkyMediaBreakpoints.xs\n );\n }\n );\n }\n\n public ngOnDestroy() {\n /* istanbul ignore else */\n /* sanity check */\n if (this.breakpointSubscription) {\n this.breakpointSubscription.unsubscribe();\n }\n }\n}\n","<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"]}
1
+ {"version":3,"file":"page-summary.component.js","sourceRoot":"","sources":["../../../../../../../../libs/components/layout/src/lib/modules/page-summary/page-summary.component.ts","../../../../../../../../libs/components/layout/src/lib/modules/page-summary/page-summary.component.html"],"names":[],"mappings":"AAAA,OAAO,EAEL,SAAS,EACT,eAAe,EACf,UAAU,EAEV,SAAS,GACV,MAAM,eAAe,CAAC;AACvB,OAAO,EAAE,mBAAmB,EAAE,oBAAoB,EAAE,MAAM,aAAa,CAAC;AAIxE,OAAO,EAAE,4BAA4B,EAAE,MAAM,gCAAgC,CAAC;AAC9E,OAAO,EAAE,8BAA8B,EAAE,MAAM,mCAAmC,CAAC;;;;;AAEnF;;GAEG;AAOH,MAAM,OAAO,uBAAuB;IAYlC,YACU,KAAiB,EACjB,OAAqC,EACrC,iBAAuC;QAFvC,UAAK,GAAL,KAAK,CAAY;QACjB,YAAO,GAAP,OAAO,CAA8B;QACrC,sBAAiB,GAAjB,iBAAiB,CAAsB;IAC9C,CAAC;IAfJ,IAAW,UAAU;QACnB,OAAO,IAAI,CAAC,iBAAiB,CAAC,MAAM,GAAG,CAAC,CAAC;IAC3C,CAAC;IAeM,eAAe;QACpB,IAAI,CAAC,sBAAsB,GAAG,IAAI,CAAC,iBAAiB,CAAC,SAAS,CAC5D,CAAC,IAAyB,EAAE,EAAE;YAC5B,IAAI,CAAC,OAAO,CAAC,qBAAqB,CAChC,IAAI,CAAC,KAAK,EACV,IAAI,KAAK,mBAAmB,CAAC,EAAE,CAChC,CAAC;QACJ,CAAC,CACF,CAAC;IACJ,CAAC;IAEM,WAAW;QAChB,0BAA0B;QAC1B,kBAAkB;QAClB,IAAI,IAAI,CAAC,sBAAsB,EAAE;YAC/B,IAAI,CAAC,sBAAsB,CAAC,WAAW,EAAE,CAAC;SAC3C;IACH,CAAC;;qHAnCU,uBAAuB;yGAAvB,uBAAuB,2CAFvB,CAAC,4BAA4B,CAAC,4DAOxB,8BAA8B,QACvC,8BAA8B,6BC9BxC,87BAuBA;4FDCa,uBAAuB;kBANnC,SAAS;mBAAC;oBACT,QAAQ,EAAE,kBAAkB;oBAC5B,WAAW,EAAE,+BAA+B;oBAC5C,SAAS,EAAE,CAAC,+BAA+B,CAAC;oBAC5C,SAAS,EAAE,CAAC,4BAA4B,CAAC;iBAC1C;+KASS,iBAAiB;sBAHxB,eAAe;uBAAC,8BAA8B,EAAE;wBAC/C,IAAI,EAAE,8BAA8B;qBACrC","sourcesContent":["import {\n AfterViewInit,\n Component,\n ContentChildren,\n ElementRef,\n OnDestroy,\n QueryList,\n} from '@angular/core';\nimport { SkyMediaBreakpoints, SkyMediaQueryService } from '@skyux/core';\n\nimport { Subscription } from 'rxjs';\n\nimport { SkyPageSummaryAdapterService } from './page-summary-adapter.service';\nimport { SkyPageSummaryKeyInfoComponent } from './page-summary-key-info.component';\n\n/**\n * Specifies the components to display in the page summary.\n */\n@Component({\n selector: 'sky-page-summary',\n templateUrl: './page-summary.component.html',\n styleUrls: ['./page-summary.component.scss'],\n providers: [SkyPageSummaryAdapterService],\n})\nexport class SkyPageSummaryComponent implements OnDestroy, AfterViewInit {\n public get hasKeyInfo(): boolean {\n return this.keyInfoComponents.length > 0;\n }\n\n @ContentChildren(SkyPageSummaryKeyInfoComponent, {\n read: SkyPageSummaryKeyInfoComponent,\n })\n private keyInfoComponents: QueryList<SkyPageSummaryKeyInfoComponent>;\n\n private breakpointSubscription: Subscription;\n\n constructor(\n private elRef: ElementRef,\n private adapter: SkyPageSummaryAdapterService,\n private mediaQueryService: SkyMediaQueryService\n ) {}\n\n public ngAfterViewInit() {\n this.breakpointSubscription = this.mediaQueryService.subscribe(\n (args: SkyMediaBreakpoints) => {\n this.adapter.updateKeyInfoLocation(\n this.elRef,\n args === SkyMediaBreakpoints.xs\n );\n }\n );\n }\n\n public ngOnDestroy() {\n /* istanbul ignore else */\n /* sanity check */\n if (this.breakpointSubscription) {\n this.breakpointSubscription.unsubscribe();\n }\n }\n}\n","<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"]}
@@ -1 +1 @@
1
- {"version":3,"file":"page-summary.module.js","sourceRoot":"","sources":["../../../../../../../../libs/components/layout/src/lib/modules/page-summary/page-summary.module.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAE,MAAM,iBAAiB,CAAC;AAE/C,OAAO,EAAE,QAAQ,EAAE,MAAM,eAAe,CAAC;AAEzC,OAAO,EAAE,4BAA4B,EAAE,MAAM,gCAAgC,CAAC;AAE9E,OAAO,EAAE,8BAA8B,EAAE,MAAM,kCAAkC,CAAC;AAElF,OAAO,EAAE,4BAA4B,EAAE,MAAM,gCAAgC,CAAC;AAE9E,OAAO,EAAE,8BAA8B,EAAE,MAAM,mCAAmC,CAAC;AAEnF,OAAO,EAAE,6BAA6B,EAAE,MAAM,iCAAiC,CAAC;AAEhF,OAAO,EAAE,+BAA+B,EAAE,MAAM,mCAAmC,CAAC;AAEpF,OAAO,EAAE,4BAA4B,EAAE,MAAM,gCAAgC,CAAC;AAE9E,OAAO,EAAE,uBAAuB,EAAE,MAAM,0BAA0B,CAAC;;AAyBnE,MAAM,OAAO,oBAAoB;;kHAApB,oBAAoB;mHAApB,oBAAoB,iBArB7B,4BAA4B;QAC5B,uBAAuB;QACvB,8BAA8B;QAC9B,4BAA4B;QAC5B,8BAA8B;QAC9B,6BAA6B;QAC7B,+BAA+B;QAC/B,4BAA4B,aAEpB,YAAY,aAEpB,4BAA4B;QAC5B,uBAAuB;QACvB,8BAA8B;QAC9B,4BAA4B;QAC5B,8BAA8B;QAC9B,6BAA6B;QAC7B,+BAA+B;QAC/B,4BAA4B;mHAGnB,oBAAoB,YAZtB,CAAC,YAAY,CAAC;4FAYZ,oBAAoB;kBAvBhC,QAAQ;mBAAC;oBACR,YAAY,EAAE;wBACZ,4BAA4B;wBAC5B,uBAAuB;wBACvB,8BAA8B;wBAC9B,4BAA4B;wBAC5B,8BAA8B;wBAC9B,6BAA6B;wBAC7B,+BAA+B;wBAC/B,4BAA4B;qBAC7B;oBACD,OAAO,EAAE,CAAC,YAAY,CAAC;oBACvB,OAAO,EAAE;wBACP,4BAA4B;wBAC5B,uBAAuB;wBACvB,8BAA8B;wBAC9B,4BAA4B;wBAC5B,8BAA8B;wBAC9B,6BAA6B;wBAC7B,+BAA+B;wBAC/B,4BAA4B;qBAC7B;iBACF","sourcesContent":["import { CommonModule } from '@angular/common';\n\nimport { NgModule } from '@angular/core';\n\nimport { SkyPageSummaryAlertComponent } from './page-summary-alert.component';\n\nimport { SkyPageSummaryContentComponent } from './page-summary-content.component';\n\nimport { SkyPageSummaryImageComponent } from './page-summary-image.component';\n\nimport { SkyPageSummaryKeyInfoComponent } from './page-summary-key-info.component';\n\nimport { SkyPageSummaryStatusComponent } from './page-summary-status.component';\n\nimport { SkyPageSummarySubtitleComponent } from './page-summary-subtitle.component';\n\nimport { SkyPageSummaryTitleComponent } from './page-summary-title.component';\n\nimport { SkyPageSummaryComponent } from './page-summary.component';\n\n@NgModule({\n declarations: [\n SkyPageSummaryAlertComponent,\n SkyPageSummaryComponent,\n SkyPageSummaryContentComponent,\n SkyPageSummaryImageComponent,\n SkyPageSummaryKeyInfoComponent,\n SkyPageSummaryStatusComponent,\n SkyPageSummarySubtitleComponent,\n SkyPageSummaryTitleComponent,\n ],\n imports: [CommonModule],\n exports: [\n SkyPageSummaryAlertComponent,\n SkyPageSummaryComponent,\n SkyPageSummaryContentComponent,\n SkyPageSummaryImageComponent,\n SkyPageSummaryKeyInfoComponent,\n SkyPageSummaryStatusComponent,\n SkyPageSummarySubtitleComponent,\n SkyPageSummaryTitleComponent,\n ],\n})\nexport class SkyPageSummaryModule {}\n"]}
1
+ {"version":3,"file":"page-summary.module.js","sourceRoot":"","sources":["../../../../../../../../libs/components/layout/src/lib/modules/page-summary/page-summary.module.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAE,MAAM,iBAAiB,CAAC;AAC/C,OAAO,EAAE,QAAQ,EAAE,MAAM,eAAe,CAAC;AAEzC,OAAO,EAAE,4BAA4B,EAAE,MAAM,gCAAgC,CAAC;AAC9E,OAAO,EAAE,8BAA8B,EAAE,MAAM,kCAAkC,CAAC;AAClF,OAAO,EAAE,4BAA4B,EAAE,MAAM,gCAAgC,CAAC;AAC9E,OAAO,EAAE,8BAA8B,EAAE,MAAM,mCAAmC,CAAC;AACnF,OAAO,EAAE,6BAA6B,EAAE,MAAM,iCAAiC,CAAC;AAChF,OAAO,EAAE,+BAA+B,EAAE,MAAM,mCAAmC,CAAC;AACpF,OAAO,EAAE,4BAA4B,EAAE,MAAM,gCAAgC,CAAC;AAC9E,OAAO,EAAE,uBAAuB,EAAE,MAAM,0BAA0B,CAAC;;AAyBnE,MAAM,OAAO,oBAAoB;;kHAApB,oBAAoB;mHAApB,oBAAoB,iBArB7B,4BAA4B;QAC5B,uBAAuB;QACvB,8BAA8B;QAC9B,4BAA4B;QAC5B,8BAA8B;QAC9B,6BAA6B;QAC7B,+BAA+B;QAC/B,4BAA4B,aAEpB,YAAY,aAEpB,4BAA4B;QAC5B,uBAAuB;QACvB,8BAA8B;QAC9B,4BAA4B;QAC5B,8BAA8B;QAC9B,6BAA6B;QAC7B,+BAA+B;QAC/B,4BAA4B;mHAGnB,oBAAoB,YAZtB,CAAC,YAAY,CAAC;4FAYZ,oBAAoB;kBAvBhC,QAAQ;mBAAC;oBACR,YAAY,EAAE;wBACZ,4BAA4B;wBAC5B,uBAAuB;wBACvB,8BAA8B;wBAC9B,4BAA4B;wBAC5B,8BAA8B;wBAC9B,6BAA6B;wBAC7B,+BAA+B;wBAC/B,4BAA4B;qBAC7B;oBACD,OAAO,EAAE,CAAC,YAAY,CAAC;oBACvB,OAAO,EAAE;wBACP,4BAA4B;wBAC5B,uBAAuB;wBACvB,8BAA8B;wBAC9B,4BAA4B;wBAC5B,8BAA8B;wBAC9B,6BAA6B;wBAC7B,+BAA+B;wBAC/B,4BAA4B;qBAC7B;iBACF","sourcesContent":["import { CommonModule } from '@angular/common';\nimport { NgModule } from '@angular/core';\n\nimport { SkyPageSummaryAlertComponent } from './page-summary-alert.component';\nimport { SkyPageSummaryContentComponent } from './page-summary-content.component';\nimport { SkyPageSummaryImageComponent } from './page-summary-image.component';\nimport { SkyPageSummaryKeyInfoComponent } from './page-summary-key-info.component';\nimport { SkyPageSummaryStatusComponent } from './page-summary-status.component';\nimport { SkyPageSummarySubtitleComponent } from './page-summary-subtitle.component';\nimport { SkyPageSummaryTitleComponent } from './page-summary-title.component';\nimport { SkyPageSummaryComponent } from './page-summary.component';\n\n@NgModule({\n declarations: [\n SkyPageSummaryAlertComponent,\n SkyPageSummaryComponent,\n SkyPageSummaryContentComponent,\n SkyPageSummaryImageComponent,\n SkyPageSummaryKeyInfoComponent,\n SkyPageSummaryStatusComponent,\n SkyPageSummarySubtitleComponent,\n SkyPageSummaryTitleComponent,\n ],\n imports: [CommonModule],\n exports: [\n SkyPageSummaryAlertComponent,\n SkyPageSummaryComponent,\n SkyPageSummaryContentComponent,\n SkyPageSummaryImageComponent,\n SkyPageSummaryKeyInfoComponent,\n SkyPageSummaryStatusComponent,\n SkyPageSummarySubtitleComponent,\n SkyPageSummaryTitleComponent,\n ],\n})\nexport class SkyPageSummaryModule {}\n"]}
@@ -5,7 +5,7 @@
5
5
  * To update this file, simply rerun the command.
6
6
  */
7
7
  import { NgModule } from '@angular/core';
8
- import { getLibStringForLocale, SkyI18nModule, SKY_LIB_RESOURCES_PROVIDERS, } from '@skyux/i18n';
8
+ import { SKY_LIB_RESOURCES_PROVIDERS, SkyI18nModule, getLibStringForLocale, } from '@skyux/i18n';
9
9
  import * as i0 from "@angular/core";
10
10
  const RESOURCES = {
11
11
  'EN-US': {
@@ -1 +1 @@
1
- {"version":3,"file":"sky-layout-resources.module.js","sourceRoot":"","sources":["../../../../../../../../libs/components/layout/src/lib/modules/shared/sky-layout-resources.module.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,OAAO,EAAE,QAAQ,EAAE,MAAM,eAAe,CAAC;AACzC,OAAO,EACL,qBAAqB,EAErB,aAAa,EAGb,2BAA2B,GAC5B,MAAM,aAAa,CAAC;;AAErB,MAAM,SAAS,GAA0C;IACvD,OAAO,EAAE;QACP,iBAAiB,EAAE,EAAE,OAAO,EAAE,aAAa,EAAE;QAC7C,yBAAyB,EAAE,EAAE,OAAO,EAAE,aAAa,EAAE;QACrD,gCAAgC,EAAE,EAAE,OAAO,EAAE,aAAa,EAAE;QAC5D,iCAAiC,EAAE,EAAE,OAAO,EAAE,aAAa,EAAE;QAC7D,kCAAkC,EAAE;YAClC,OAAO,EAAE,4CAA4C;SACtD;QACD,0BAA0B,EAAE,EAAE,OAAO,EAAE,QAAQ,EAAE;QACjD,oCAAoC,EAAE,EAAE,OAAO,EAAE,kBAAkB,EAAE;QACrE,0BAA0B,EAAE,EAAE,OAAO,EAAE,QAAQ,EAAE;QACjD,4BAA4B,EAAE,EAAE,OAAO,EAAE,OAAO,EAAE;QAClD,6BAA6B,EAAE,EAAE,OAAO,EAAE,eAAe,EAAE;QAC3D,0BAA0B,EAAE,EAAE,OAAO,EAAE,UAAU,EAAE;QACnD,0BAA0B,EAAE,EAAE,OAAO,EAAE,UAAU,EAAE;KACpD;CACF,CAAC;AAEF,MAAM,OAAO,0BAA0B;IAC9B,SAAS,CAAC,UAA4B,EAAE,IAAY;QACzD,OAAO,qBAAqB,CAAC,SAAS,EAAE,UAAU,CAAC,MAAM,EAAE,IAAI,CAAC,CAAC;IACnE,CAAC;CACF;AAED;;GAEG;AAWH,MAAM,OAAO,wBAAwB;;sHAAxB,wBAAwB;uHAAxB,wBAAwB,YATzB,aAAa;uHASZ,wBAAwB,aARxB;QACT;YACE,OAAO,EAAE,2BAA2B;YACpC,QAAQ,EAAE,0BAA0B;YACpC,KAAK,EAAE,IAAI;SACZ;KACF,YAPS,aAAa;4FASZ,wBAAwB;kBAVpC,QAAQ;mBAAC;oBACR,OAAO,EAAE,CAAC,aAAa,CAAC;oBACxB,SAAS,EAAE;wBACT;4BACE,OAAO,EAAE,2BAA2B;4BACpC,QAAQ,EAAE,0BAA0B;4BACpC,KAAK,EAAE,IAAI;yBACZ;qBACF;iBACF","sourcesContent":["/**\n * NOTICE: DO NOT MODIFY THIS FILE!\n * The contents of this file were automatically generated by\n * the 'ng generate @skyux/i18n:lib-resources-module modules/shared/sky-layout' schematic.\n * To update this file, simply rerun the command.\n */\n\nimport { NgModule } from '@angular/core';\nimport {\n getLibStringForLocale,\n SkyAppLocaleInfo,\n SkyI18nModule,\n SkyLibResources,\n SkyLibResourcesProvider,\n SKY_LIB_RESOURCES_PROVIDERS,\n} from '@skyux/i18n';\n\nconst RESOURCES: { [locale: string]: SkyLibResources } = {\n 'EN-US': {\n skyux_back_to_top: { message: 'Back to top' },\n skyux_card_checkbox_label: { message: 'Select card' },\n skyux_definition_list_none_found: { message: 'None found.' },\n skyux_description_list_none_found: { message: 'None found.' },\n skyux_inline_delete_assistive_text: {\n message: 'Are you sure you want to delete this item?',\n },\n skyux_inline_delete_cancel: { message: 'Cancel' },\n skyux_inline_delete_confirm_deletion: { message: 'Confirm deletion' },\n skyux_inline_delete_delete: { message: 'Delete' },\n skyux_text_expand_close_text: { message: 'Close' },\n skyux_text_expand_modal_title: { message: 'Expanded view' },\n skyux_text_expand_see_less: { message: 'See less' },\n skyux_text_expand_see_more: { message: 'See more' },\n },\n};\n\nexport class SkyLayoutResourcesProvider implements SkyLibResourcesProvider {\n public getString(localeInfo: SkyAppLocaleInfo, name: string): string {\n return getLibStringForLocale(RESOURCES, localeInfo.locale, name);\n }\n}\n\n/**\n * Import into any component library module that needs to use resource strings.\n */\n@NgModule({\n exports: [SkyI18nModule],\n providers: [\n {\n provide: SKY_LIB_RESOURCES_PROVIDERS,\n useClass: SkyLayoutResourcesProvider,\n multi: true,\n },\n ],\n})\nexport class SkyLayoutResourcesModule {}\n"]}
1
+ {"version":3,"file":"sky-layout-resources.module.js","sourceRoot":"","sources":["../../../../../../../../libs/components/layout/src/lib/modules/shared/sky-layout-resources.module.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AACH,OAAO,EAAE,QAAQ,EAAE,MAAM,eAAe,CAAC;AACzC,OAAO,EACL,2BAA2B,EAE3B,aAAa,EAGb,qBAAqB,GACtB,MAAM,aAAa,CAAC;;AAErB,MAAM,SAAS,GAA0C;IACvD,OAAO,EAAE;QACP,iBAAiB,EAAE,EAAE,OAAO,EAAE,aAAa,EAAE;QAC7C,yBAAyB,EAAE,EAAE,OAAO,EAAE,aAAa,EAAE;QACrD,gCAAgC,EAAE,EAAE,OAAO,EAAE,aAAa,EAAE;QAC5D,iCAAiC,EAAE,EAAE,OAAO,EAAE,aAAa,EAAE;QAC7D,kCAAkC,EAAE;YAClC,OAAO,EAAE,4CAA4C;SACtD;QACD,0BAA0B,EAAE,EAAE,OAAO,EAAE,QAAQ,EAAE;QACjD,oCAAoC,EAAE,EAAE,OAAO,EAAE,kBAAkB,EAAE;QACrE,0BAA0B,EAAE,EAAE,OAAO,EAAE,QAAQ,EAAE;QACjD,4BAA4B,EAAE,EAAE,OAAO,EAAE,OAAO,EAAE;QAClD,6BAA6B,EAAE,EAAE,OAAO,EAAE,eAAe,EAAE;QAC3D,0BAA0B,EAAE,EAAE,OAAO,EAAE,UAAU,EAAE;QACnD,0BAA0B,EAAE,EAAE,OAAO,EAAE,UAAU,EAAE;KACpD;CACF,CAAC;AAEF,MAAM,OAAO,0BAA0B;IAC9B,SAAS,CAAC,UAA4B,EAAE,IAAY;QACzD,OAAO,qBAAqB,CAAC,SAAS,EAAE,UAAU,CAAC,MAAM,EAAE,IAAI,CAAC,CAAC;IACnE,CAAC;CACF;AAED;;GAEG;AAWH,MAAM,OAAO,wBAAwB;;sHAAxB,wBAAwB;uHAAxB,wBAAwB,YATzB,aAAa;uHASZ,wBAAwB,aARxB;QACT;YACE,OAAO,EAAE,2BAA2B;YACpC,QAAQ,EAAE,0BAA0B;YACpC,KAAK,EAAE,IAAI;SACZ;KACF,YAPS,aAAa;4FASZ,wBAAwB;kBAVpC,QAAQ;mBAAC;oBACR,OAAO,EAAE,CAAC,aAAa,CAAC;oBACxB,SAAS,EAAE;wBACT;4BACE,OAAO,EAAE,2BAA2B;4BACpC,QAAQ,EAAE,0BAA0B;4BACpC,KAAK,EAAE,IAAI;yBACZ;qBACF;iBACF","sourcesContent":["/**\n * NOTICE: DO NOT MODIFY THIS FILE!\n * The contents of this file were automatically generated by\n * the 'ng generate @skyux/i18n:lib-resources-module modules/shared/sky-layout' schematic.\n * To update this file, simply rerun the command.\n */\nimport { NgModule } from '@angular/core';\nimport {\n SKY_LIB_RESOURCES_PROVIDERS,\n SkyAppLocaleInfo,\n SkyI18nModule,\n SkyLibResources,\n SkyLibResourcesProvider,\n getLibStringForLocale,\n} from '@skyux/i18n';\n\nconst RESOURCES: { [locale: string]: SkyLibResources } = {\n 'EN-US': {\n skyux_back_to_top: { message: 'Back to top' },\n skyux_card_checkbox_label: { message: 'Select card' },\n skyux_definition_list_none_found: { message: 'None found.' },\n skyux_description_list_none_found: { message: 'None found.' },\n skyux_inline_delete_assistive_text: {\n message: 'Are you sure you want to delete this item?',\n },\n skyux_inline_delete_cancel: { message: 'Cancel' },\n skyux_inline_delete_confirm_deletion: { message: 'Confirm deletion' },\n skyux_inline_delete_delete: { message: 'Delete' },\n skyux_text_expand_close_text: { message: 'Close' },\n skyux_text_expand_modal_title: { message: 'Expanded view' },\n skyux_text_expand_see_less: { message: 'See less' },\n skyux_text_expand_see_more: { message: 'See more' },\n },\n};\n\nexport class SkyLayoutResourcesProvider implements SkyLibResourcesProvider {\n public getString(localeInfo: SkyAppLocaleInfo, name: string): string {\n return getLibStringForLocale(RESOURCES, localeInfo.locale, name);\n }\n}\n\n/**\n * Import into any component library module that needs to use resource strings.\n */\n@NgModule({\n exports: [SkyI18nModule],\n providers: [\n {\n provide: SKY_LIB_RESOURCES_PROVIDERS,\n useClass: SkyLayoutResourcesProvider,\n multi: true,\n },\n ],\n})\nexport class SkyLayoutResourcesModule {}\n"]}
@@ -1 +1 @@
1
- {"version":3,"file":"text-expand-modal.component.js","sourceRoot":"","sources":["../../../../../../../../libs/components/layout/src/lib/modules/text-expand/text-expand-modal.component.ts","../../../../../../../../libs/components/layout/src/lib/modules/text-expand/text-expand-modal.component.html"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,MAAM,eAAe,CAAC;AAE1C,OAAO,EAAE,gBAAgB,EAAE,MAAM,eAAe,CAAC;AAEjD,OAAO,EAAE,yBAAyB,EAAE,MAAM,6BAA6B,CAAC;;;;;AAExE;;GAEG;AAMH,MAAM,OAAO,2BAA2B;IACtC,YACS,OAAkC,EAClC,QAA0B;QAD1B,YAAO,GAAP,OAAO,CAA2B;QAClC,aAAQ,GAAR,QAAQ,CAAkB;IAChC,CAAC;IAEG,KAAK;QACV,IAAI,CAAC,QAAQ,CAAC,KAAK,EAAE,CAAC;IACxB,CAAC;;yHARU,2BAA2B;6GAA3B,2BAA2B,6DCdxC,kYAWA;4FDGa,2BAA2B;kBALvC,SAAS;mBAAC;oBACT,QAAQ,EAAE,uBAAuB;oBACjC,WAAW,EAAE,oCAAoC;oBACjD,SAAS,EAAE,CAAC,8BAA8B,CAAC;iBAC5C","sourcesContent":["import { Component } from '@angular/core';\n\nimport { SkyModalInstance } from '@skyux/modals';\n\nimport { SkyTextExpandModalContext } from './text-expand-modal-context';\n\n/**\n * @internal\n */\n@Component({\n selector: 'sky-text-expand-modal',\n templateUrl: './text-expand-modal.component.html',\n styleUrls: ['./text-expand.component.scss'],\n})\nexport class SkyTextExpandModalComponent {\n constructor(\n public context: SkyTextExpandModalContext,\n public instance: SkyModalInstance\n ) {}\n\n public close(): void {\n this.instance.close();\n }\n}\n","<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"]}
1
+ {"version":3,"file":"text-expand-modal.component.js","sourceRoot":"","sources":["../../../../../../../../libs/components/layout/src/lib/modules/text-expand/text-expand-modal.component.ts","../../../../../../../../libs/components/layout/src/lib/modules/text-expand/text-expand-modal.component.html"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,MAAM,eAAe,CAAC;AAC1C,OAAO,EAAE,gBAAgB,EAAE,MAAM,eAAe,CAAC;AAEjD,OAAO,EAAE,yBAAyB,EAAE,MAAM,6BAA6B,CAAC;;;;;AAExE;;GAEG;AAMH,MAAM,OAAO,2BAA2B;IACtC,YACS,OAAkC,EAClC,QAA0B;QAD1B,YAAO,GAAP,OAAO,CAA2B;QAClC,aAAQ,GAAR,QAAQ,CAAkB;IAChC,CAAC;IAEG,KAAK;QACV,IAAI,CAAC,QAAQ,CAAC,KAAK,EAAE,CAAC;IACxB,CAAC;;yHARU,2BAA2B;6GAA3B,2BAA2B,6DCbxC,kYAWA;4FDEa,2BAA2B;kBALvC,SAAS;mBAAC;oBACT,QAAQ,EAAE,uBAAuB;oBACjC,WAAW,EAAE,oCAAoC;oBACjD,SAAS,EAAE,CAAC,8BAA8B,CAAC;iBAC5C","sourcesContent":["import { Component } from '@angular/core';\nimport { SkyModalInstance } from '@skyux/modals';\n\nimport { SkyTextExpandModalContext } from './text-expand-modal-context';\n\n/**\n * @internal\n */\n@Component({\n selector: 'sky-text-expand-modal',\n templateUrl: './text-expand-modal.component.html',\n styleUrls: ['./text-expand.component.scss'],\n})\nexport class SkyTextExpandModalComponent {\n constructor(\n public context: SkyTextExpandModalContext,\n public instance: SkyModalInstance\n ) {}\n\n public close(): void {\n this.instance.close();\n }\n}\n","<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"]}
@@ -4,8 +4,8 @@ import { SkyModalService } from '@skyux/modals';
4
4
  import { forkJoin as observableForkJoin } from 'rxjs';
5
5
  import { take } from 'rxjs/operators';
6
6
  import { SkyTextExpandAdapterService } from './text-expand-adapter.service';
7
- import { SkyTextExpandModalComponent } from './text-expand-modal.component';
8
7
  import { SkyTextExpandModalContext } from './text-expand-modal-context';
8
+ import { SkyTextExpandModalComponent } from './text-expand-modal.component';
9
9
  import * as i0 from "@angular/core";
10
10
  import * as i1 from "@skyux/i18n";
11
11
  import * as i2 from "@skyux/modals";
@@ -132,7 +132,7 @@ export class SkyTextExpandComponent {
132
132
  this.animationEnd();
133
133
  /* Before animation is kicked off, ensure that a maxHeight exists */
134
134
  /* Once we have support for angular v4 animations with parameters we can use that instead */
135
- let currentHeight = this.textExpandAdapter.getContainerHeight(this.containerEl);
135
+ const currentHeight = this.textExpandAdapter.getContainerHeight(this.containerEl);
136
136
  this.textExpandAdapter.setContainerHeight(this.containerEl, `${currentHeight}px`);
137
137
  }
138
138
  setup(value) {
@@ -160,7 +160,7 @@ export class SkyTextExpandComponent {
160
160
  this.textExpandAdapter.setText(this.textEl, this.textToShow);
161
161
  }
162
162
  getNewlineCount(value) {
163
- let matches = value.match(/\n/gi);
163
+ const matches = value.match(/\n/gi);
164
164
  if (matches) {
165
165
  return matches.length;
166
166
  }
@@ -185,17 +185,17 @@ export class SkyTextExpandComponent {
185
185
  return value.substr(0, length);
186
186
  }
187
187
  animateText(previousText, newText, expanding) {
188
- let adapter = this.textExpandAdapter;
189
- let container = this.containerEl;
188
+ const adapter = this.textExpandAdapter;
189
+ const container = this.containerEl;
190
190
  // Reset max height
191
191
  adapter.setContainerHeight(container, undefined);
192
192
  // Measure the current height so we can animate from it.
193
- let currentHeight = adapter.getContainerHeight(container);
193
+ const currentHeight = adapter.getContainerHeight(container);
194
194
  this.textToShow = newText;
195
195
  adapter.setText(this.textEl, this.textToShow);
196
196
  this.buttonText = expanding ? this.seeLessText : this.seeMoreText;
197
197
  // Measure the new height so we can animate to it.
198
- let newHeight = adapter.getContainerHeight(container);
198
+ const newHeight = adapter.getContainerHeight(container);
199
199
  /* istanbul ignore if */
200
200
  if (newHeight < currentHeight) {
201
201
  // The new text is smaller than the old text, so put the old text back before doing
@@ -1 +1 @@
1
- {"version":3,"file":"text-expand.component.js","sourceRoot":"","sources":["../../../../../../../../libs/components/layout/src/lib/modules/text-expand/text-expand.component.ts","../../../../../../../../libs/components/layout/src/lib/modules/text-expand/text-expand.component.html"],"names":[],"mappings":"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","sourcesContent":["import {\n AfterContentInit,\n Component,\n ElementRef,\n Input,\n ViewChild,\n} from '@angular/core';\n\nimport { SkyLibResourcesService } from '@skyux/i18n';\n\nimport { SkyModalService } from '@skyux/modals';\n\nimport { forkJoin as observableForkJoin } from 'rxjs';\n\nimport { take } from 'rxjs/operators';\n\nimport { SkyTextExpandAdapterService } from './text-expand-adapter.service';\n\nimport { SkyTextExpandModalComponent } from './text-expand-modal.component';\n\nimport { SkyTextExpandModalContext } from './text-expand-modal-context';\n\n/**\n * Auto-incrementing integer used to generate unique ids for text expand components.\n */\nlet nextId = 0;\n\n@Component({\n selector: 'sky-text-expand',\n templateUrl: './text-expand.component.html',\n styleUrls: ['./text-expand.component.scss'],\n providers: [SkyTextExpandAdapterService],\n})\nexport class SkyTextExpandComponent implements AfterContentInit {\n /**\n * Specifies a title to display when the component expands the full text in a modal.\n * @default \"Expanded view\"\n */\n @Input()\n public expandModalTitle: string;\n\n /**\n * Specifies the maximum number of text characters to display inline when users select the link\n * to expand the full text. If the text exceeds this limit, then the component expands\n * the full text in a modal instead.\n */\n @Input()\n public maxExpandedLength: number = 600;\n\n /**\n * Specifies the maximum number of newline characters to display inline when users select\n * the link to expand the full text. If the text exceeds this limit, then\n * the component expands the full text in a modal view instead.\n */\n @Input()\n public maxExpandedNewlines: number = 2;\n\n /**\n * Specifies the number of text characters to display before truncating the text.\n * To avoid truncating text in the middle of a word, the component looks for a space\n * in the 10 characters before the last character.\n * @default 200\n */\n @Input()\n public set maxLength(value: number) {\n this._maxLength = value;\n\n /* istanbul ignore else */\n if (this.textEl) {\n this.setup(this.expandedText);\n }\n }\n\n public get maxLength(): number {\n return this._maxLength;\n }\n\n /**\n * Specifies the text to truncate.\n */\n @Input()\n public set text(value: string) {\n /* istanbul ignore else */\n if (this.textEl) {\n this.setup(value);\n }\n }\n\n /**\n * Indicates whether to replace newline characters in truncated text with spaces.\n */\n @Input()\n public truncateNewlines: boolean = true;\n\n public buttonText: string;\n\n public contentSectionId: string = `sky-text-expand-content-${++nextId}`;\n\n public expandable: boolean;\n\n public isExpanded: boolean = false;\n\n public isModal: boolean;\n\n @ViewChild('container', {\n read: ElementRef,\n static: true,\n })\n private containerEl: ElementRef;\n\n @ViewChild('text', {\n read: ElementRef,\n static: true,\n })\n private textEl: ElementRef;\n\n private collapsedText: string;\n\n private expandedText: string;\n\n private newlineCount: number;\n\n private seeMoreText: string;\n\n private seeLessText: string;\n\n private textToShow: string;\n\n private _maxLength: number = 200;\n\n constructor(\n private resources: SkyLibResourcesService,\n private modalService: SkyModalService,\n private textExpandAdapter: SkyTextExpandAdapterService\n ) {}\n\n public textExpand(): void {\n if (this.isModal) {\n // Modal View\n /* istanbul ignore else */\n /* sanity check */\n if (!this.isExpanded) {\n this.modalService.open(SkyTextExpandModalComponent, [\n {\n provide: SkyTextExpandModalContext,\n useValue: {\n header: this.expandModalTitle,\n text: this.expandedText,\n },\n },\n ]);\n }\n } else {\n // Normal View\n if (!this.isExpanded) {\n this.setContainerMaxHeight();\n setTimeout(() => {\n this.isExpanded = true;\n this.animateText(this.collapsedText, this.expandedText, true);\n }, 10);\n } else {\n this.setContainerMaxHeight();\n setTimeout(() => {\n this.isExpanded = false;\n this.animateText(this.expandedText, this.collapsedText, false);\n }, 10);\n }\n }\n }\n\n public animationEnd(): void {\n // Ensure the correct text is displayed\n this.textExpandAdapter.setText(this.textEl, this.textToShow);\n // Set height back to auto so the browser can change the height as needed with window changes\n this.textExpandAdapter.setContainerHeight(this.containerEl, undefined);\n }\n\n public ngAfterContentInit(): void {\n observableForkJoin([\n this.resources.getString('skyux_text_expand_see_more'),\n this.resources.getString('skyux_text_expand_see_less'),\n ])\n .pipe(take(1))\n .subscribe((resources) => {\n this.seeMoreText = resources[0];\n this.seeLessText = resources[1];\n this.setup(this.expandedText);\n\n /* istanbul ignore else */\n if (!this.expandModalTitle) {\n this.resources\n .getString('skyux_text_expand_modal_title')\n .pipe(take(1))\n .subscribe((resource) => {\n this.expandModalTitle = resource;\n });\n }\n });\n }\n\n private setContainerMaxHeight(): void {\n // ensure everything is reset\n this.animationEnd();\n /* Before animation is kicked off, ensure that a maxHeight exists */\n /* Once we have support for angular v4 animations with parameters we can use that instead */\n let currentHeight = this.textExpandAdapter.getContainerHeight(\n this.containerEl\n );\n this.textExpandAdapter.setContainerHeight(\n this.containerEl,\n `${currentHeight}px`\n );\n }\n\n private setup(value: string): void {\n if (value) {\n this.newlineCount = this.getNewlineCount(value);\n this.collapsedText = this.getTruncatedText(value, this.maxLength);\n this.expandedText = value;\n if (this.collapsedText !== value) {\n this.buttonText = this.seeMoreText;\n this.isExpanded = false;\n this.expandable = true;\n this.isModal =\n this.newlineCount > this.maxExpandedNewlines ||\n this.expandedText.length > this.maxExpandedLength;\n } else {\n this.expandable = false;\n }\n this.textToShow = this.collapsedText;\n } else {\n this.textToShow = '';\n this.expandable = false;\n }\n this.textExpandAdapter.setText(this.textEl, this.textToShow);\n }\n\n private getNewlineCount(value: string): number {\n let matches = value.match(/\\n/gi);\n\n if (matches) {\n return matches.length;\n }\n\n return 0;\n }\n\n private getTruncatedText(value: string, length: number): string {\n let i: number;\n if (this.truncateNewlines) {\n value = value.replace(/\\n+/gi, ' ');\n }\n // Jump ahead one character and see if it's a space, and if it isn't,\n // back up to the first space and break there so a word doesn't get cut\n // in half.\n if (length < value.length) {\n for (i = length; i > length - 10; i--) {\n if (/\\s/.test(value.charAt(i))) {\n length = i;\n break;\n }\n }\n }\n return value.substr(0, length);\n }\n\n private animateText(\n previousText: string,\n newText: string,\n expanding: boolean\n ): void {\n let adapter = this.textExpandAdapter;\n let container = this.containerEl;\n // Reset max height\n adapter.setContainerHeight(container, undefined);\n // Measure the current height so we can animate from it.\n let currentHeight = adapter.getContainerHeight(container);\n this.textToShow = newText;\n adapter.setText(this.textEl, this.textToShow);\n this.buttonText = expanding ? this.seeLessText : this.seeMoreText;\n // Measure the new height so we can animate to it.\n let newHeight = adapter.getContainerHeight(container);\n /* istanbul ignore if */\n if (newHeight < currentHeight) {\n // The new text is smaller than the old text, so put the old text back before doing\n // the collapse animation to avoid showing a big chunk of whitespace.\n adapter.setText(this.textEl, previousText);\n }\n\n adapter.setContainerHeight(container, `${currentHeight}px`);\n // This timeout is necessary due to the browser needing to pick up the non-auto height being set\n // in order to do the transtion in height correctly. Without it the transition does not fire.\n setTimeout(() => {\n adapter.setContainerHeight(container, `${newHeight}px`);\n /* This resets values if the transition does not get kicked off */\n setTimeout(() => {\n this.animationEnd();\n }, 500);\n }, 10);\n }\n}\n","<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"]}
1
+ {"version":3,"file":"text-expand.component.js","sourceRoot":"","sources":["../../../../../../../../libs/components/layout/src/lib/modules/text-expand/text-expand.component.ts","../../../../../../../../libs/components/layout/src/lib/modules/text-expand/text-expand.component.html"],"names":[],"mappings":"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","sourcesContent":["import {\n AfterContentInit,\n Component,\n ElementRef,\n Input,\n ViewChild,\n} from '@angular/core';\nimport { SkyLibResourcesService } from '@skyux/i18n';\nimport { SkyModalService } from '@skyux/modals';\n\nimport { forkJoin as observableForkJoin } from 'rxjs';\nimport { take } from 'rxjs/operators';\n\nimport { SkyTextExpandAdapterService } from './text-expand-adapter.service';\nimport { SkyTextExpandModalContext } from './text-expand-modal-context';\nimport { SkyTextExpandModalComponent } from './text-expand-modal.component';\n\n/**\n * Auto-incrementing integer used to generate unique ids for text expand components.\n */\nlet nextId = 0;\n\n@Component({\n selector: 'sky-text-expand',\n templateUrl: './text-expand.component.html',\n styleUrls: ['./text-expand.component.scss'],\n providers: [SkyTextExpandAdapterService],\n})\nexport class SkyTextExpandComponent implements AfterContentInit {\n /**\n * Specifies a title to display when the component expands the full text in a modal.\n * @default \"Expanded view\"\n */\n @Input()\n public expandModalTitle: string;\n\n /**\n * Specifies the maximum number of text characters to display inline when users select the link\n * to expand the full text. If the text exceeds this limit, then the component expands\n * the full text in a modal instead.\n */\n @Input()\n public maxExpandedLength = 600;\n\n /**\n * Specifies the maximum number of newline characters to display inline when users select\n * the link to expand the full text. If the text exceeds this limit, then\n * the component expands the full text in a modal view instead.\n */\n @Input()\n public maxExpandedNewlines = 2;\n\n /**\n * Specifies the number of text characters to display before truncating the text.\n * To avoid truncating text in the middle of a word, the component looks for a space\n * in the 10 characters before the last character.\n * @default 200\n */\n @Input()\n public set maxLength(value: number) {\n this._maxLength = value;\n\n /* istanbul ignore else */\n if (this.textEl) {\n this.setup(this.expandedText);\n }\n }\n\n public get maxLength(): number {\n return this._maxLength;\n }\n\n /**\n * Specifies the text to truncate.\n */\n @Input()\n public set text(value: string) {\n /* istanbul ignore else */\n if (this.textEl) {\n this.setup(value);\n }\n }\n\n /**\n * Indicates whether to replace newline characters in truncated text with spaces.\n */\n @Input()\n public truncateNewlines = true;\n\n public buttonText: string;\n\n public contentSectionId = `sky-text-expand-content-${++nextId}`;\n\n public expandable: boolean;\n\n public isExpanded = false;\n\n public isModal: boolean;\n\n @ViewChild('container', {\n read: ElementRef,\n static: true,\n })\n private containerEl: ElementRef;\n\n @ViewChild('text', {\n read: ElementRef,\n static: true,\n })\n private textEl: ElementRef;\n\n private collapsedText: string;\n\n private expandedText: string;\n\n private newlineCount: number;\n\n private seeMoreText: string;\n\n private seeLessText: string;\n\n private textToShow: string;\n\n private _maxLength = 200;\n\n constructor(\n private resources: SkyLibResourcesService,\n private modalService: SkyModalService,\n private textExpandAdapter: SkyTextExpandAdapterService\n ) {}\n\n public textExpand(): void {\n if (this.isModal) {\n // Modal View\n /* istanbul ignore else */\n /* sanity check */\n if (!this.isExpanded) {\n this.modalService.open(SkyTextExpandModalComponent, [\n {\n provide: SkyTextExpandModalContext,\n useValue: {\n header: this.expandModalTitle,\n text: this.expandedText,\n },\n },\n ]);\n }\n } else {\n // Normal View\n if (!this.isExpanded) {\n this.setContainerMaxHeight();\n setTimeout(() => {\n this.isExpanded = true;\n this.animateText(this.collapsedText, this.expandedText, true);\n }, 10);\n } else {\n this.setContainerMaxHeight();\n setTimeout(() => {\n this.isExpanded = false;\n this.animateText(this.expandedText, this.collapsedText, false);\n }, 10);\n }\n }\n }\n\n public animationEnd(): void {\n // Ensure the correct text is displayed\n this.textExpandAdapter.setText(this.textEl, this.textToShow);\n // Set height back to auto so the browser can change the height as needed with window changes\n this.textExpandAdapter.setContainerHeight(this.containerEl, undefined);\n }\n\n public ngAfterContentInit(): void {\n observableForkJoin([\n this.resources.getString('skyux_text_expand_see_more'),\n this.resources.getString('skyux_text_expand_see_less'),\n ])\n .pipe(take(1))\n .subscribe((resources) => {\n this.seeMoreText = resources[0];\n this.seeLessText = resources[1];\n this.setup(this.expandedText);\n\n /* istanbul ignore else */\n if (!this.expandModalTitle) {\n this.resources\n .getString('skyux_text_expand_modal_title')\n .pipe(take(1))\n .subscribe((resource) => {\n this.expandModalTitle = resource;\n });\n }\n });\n }\n\n private setContainerMaxHeight(): void {\n // ensure everything is reset\n this.animationEnd();\n /* Before animation is kicked off, ensure that a maxHeight exists */\n /* Once we have support for angular v4 animations with parameters we can use that instead */\n const currentHeight = this.textExpandAdapter.getContainerHeight(\n this.containerEl\n );\n this.textExpandAdapter.setContainerHeight(\n this.containerEl,\n `${currentHeight}px`\n );\n }\n\n private setup(value: string): void {\n if (value) {\n this.newlineCount = this.getNewlineCount(value);\n this.collapsedText = this.getTruncatedText(value, this.maxLength);\n this.expandedText = value;\n if (this.collapsedText !== value) {\n this.buttonText = this.seeMoreText;\n this.isExpanded = false;\n this.expandable = true;\n this.isModal =\n this.newlineCount > this.maxExpandedNewlines ||\n this.expandedText.length > this.maxExpandedLength;\n } else {\n this.expandable = false;\n }\n this.textToShow = this.collapsedText;\n } else {\n this.textToShow = '';\n this.expandable = false;\n }\n this.textExpandAdapter.setText(this.textEl, this.textToShow);\n }\n\n private getNewlineCount(value: string): number {\n const matches = value.match(/\\n/gi);\n\n if (matches) {\n return matches.length;\n }\n\n return 0;\n }\n\n private getTruncatedText(value: string, length: number): string {\n let i: number;\n if (this.truncateNewlines) {\n value = value.replace(/\\n+/gi, ' ');\n }\n // Jump ahead one character and see if it's a space, and if it isn't,\n // back up to the first space and break there so a word doesn't get cut\n // in half.\n if (length < value.length) {\n for (i = length; i > length - 10; i--) {\n if (/\\s/.test(value.charAt(i))) {\n length = i;\n break;\n }\n }\n }\n return value.substr(0, length);\n }\n\n private animateText(\n previousText: string,\n newText: string,\n expanding: boolean\n ): void {\n const adapter = this.textExpandAdapter;\n const container = this.containerEl;\n // Reset max height\n adapter.setContainerHeight(container, undefined);\n // Measure the current height so we can animate from it.\n const currentHeight = adapter.getContainerHeight(container);\n this.textToShow = newText;\n adapter.setText(this.textEl, this.textToShow);\n this.buttonText = expanding ? this.seeLessText : this.seeMoreText;\n // Measure the new height so we can animate to it.\n const newHeight = adapter.getContainerHeight(container);\n /* istanbul ignore if */\n if (newHeight < currentHeight) {\n // The new text is smaller than the old text, so put the old text back before doing\n // the collapse animation to avoid showing a big chunk of whitespace.\n adapter.setText(this.textEl, previousText);\n }\n\n adapter.setContainerHeight(container, `${currentHeight}px`);\n // This timeout is necessary due to the browser needing to pick up the non-auto height being set\n // in order to do the transtion in height correctly. Without it the transition does not fire.\n setTimeout(() => {\n adapter.setContainerHeight(container, `${newHeight}px`);\n /* This resets values if the transition does not get kicked off */\n setTimeout(() => {\n this.animationEnd();\n }, 500);\n }, 10);\n }\n}\n","<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"]}
@@ -1,10 +1,10 @@
1
- import { NgModule } from '@angular/core';
2
1
  import { CommonModule } from '@angular/common';
2
+ import { NgModule } from '@angular/core';
3
3
  import { SkyI18nModule } from '@skyux/i18n';
4
4
  import { SkyModalModule } from '@skyux/modals';
5
5
  import { SkyLayoutResourcesModule } from '../shared/sky-layout-resources.module';
6
- import { SkyTextExpandComponent } from './text-expand.component';
7
6
  import { SkyTextExpandModalComponent } from './text-expand-modal.component';
7
+ import { SkyTextExpandComponent } from './text-expand.component';
8
8
  import * as i0 from "@angular/core";
9
9
  export class SkyTextExpandModule {
10
10
  }
@@ -1 +1 @@
1
- {"version":3,"file":"text-expand.module.js","sourceRoot":"","sources":["../../../../../../../../libs/components/layout/src/lib/modules/text-expand/text-expand.module.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,MAAM,eAAe,CAAC;AACzC,OAAO,EAAE,YAAY,EAAE,MAAM,iBAAiB,CAAC;AAE/C,OAAO,EAAE,aAAa,EAAE,MAAM,aAAa,CAAC;AAE5C,OAAO,EAAE,cAAc,EAAE,MAAM,eAAe,CAAC;AAE/C,OAAO,EAAE,wBAAwB,EAAE,MAAM,uCAAuC,CAAC;AAEjF,OAAO,EAAE,sBAAsB,EAAE,MAAM,yBAAyB,CAAC;AACjE,OAAO,EAAE,2BAA2B,EAAE,MAAM,+BAA+B,CAAC;;AAa5E,MAAM,OAAO,mBAAmB;;iHAAnB,mBAAmB;kHAAnB,mBAAmB,iBAVf,sBAAsB,EAAE,2BAA2B,aAEhE,aAAa;QACb,wBAAwB;QACxB,cAAc;QACd,YAAY,aAEJ,sBAAsB;kHAGrB,mBAAmB,YATrB;YACP,aAAa;YACb,wBAAwB;YACxB,cAAc;YACd,YAAY;SACb;4FAIU,mBAAmB;kBAX/B,QAAQ;mBAAC;oBACR,YAAY,EAAE,CAAC,sBAAsB,EAAE,2BAA2B,CAAC;oBACnE,OAAO,EAAE;wBACP,aAAa;wBACb,wBAAwB;wBACxB,cAAc;wBACd,YAAY;qBACb;oBACD,OAAO,EAAE,CAAC,sBAAsB,CAAC;oBACjC,eAAe,EAAE,CAAC,2BAA2B,CAAC;iBAC/C","sourcesContent":["import { NgModule } from '@angular/core';\nimport { CommonModule } from '@angular/common';\n\nimport { SkyI18nModule } from '@skyux/i18n';\n\nimport { SkyModalModule } from '@skyux/modals';\n\nimport { SkyLayoutResourcesModule } from '../shared/sky-layout-resources.module';\n\nimport { SkyTextExpandComponent } from './text-expand.component';\nimport { SkyTextExpandModalComponent } from './text-expand-modal.component';\n\n@NgModule({\n declarations: [SkyTextExpandComponent, SkyTextExpandModalComponent],\n imports: [\n SkyI18nModule,\n SkyLayoutResourcesModule,\n SkyModalModule,\n CommonModule,\n ],\n exports: [SkyTextExpandComponent],\n entryComponents: [SkyTextExpandModalComponent],\n})\nexport class SkyTextExpandModule {}\n"]}
1
+ {"version":3,"file":"text-expand.module.js","sourceRoot":"","sources":["../../../../../../../../libs/components/layout/src/lib/modules/text-expand/text-expand.module.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAE,MAAM,iBAAiB,CAAC;AAC/C,OAAO,EAAE,QAAQ,EAAE,MAAM,eAAe,CAAC;AACzC,OAAO,EAAE,aAAa,EAAE,MAAM,aAAa,CAAC;AAC5C,OAAO,EAAE,cAAc,EAAE,MAAM,eAAe,CAAC;AAE/C,OAAO,EAAE,wBAAwB,EAAE,MAAM,uCAAuC,CAAC;AAEjF,OAAO,EAAE,2BAA2B,EAAE,MAAM,+BAA+B,CAAC;AAC5E,OAAO,EAAE,sBAAsB,EAAE,MAAM,yBAAyB,CAAC;;AAajE,MAAM,OAAO,mBAAmB;;iHAAnB,mBAAmB;kHAAnB,mBAAmB,iBAVf,sBAAsB,EAAE,2BAA2B,aAEhE,aAAa;QACb,wBAAwB;QACxB,cAAc;QACd,YAAY,aAEJ,sBAAsB;kHAGrB,mBAAmB,YATrB;YACP,aAAa;YACb,wBAAwB;YACxB,cAAc;YACd,YAAY;SACb;4FAIU,mBAAmB;kBAX/B,QAAQ;mBAAC;oBACR,YAAY,EAAE,CAAC,sBAAsB,EAAE,2BAA2B,CAAC;oBACnE,OAAO,EAAE;wBACP,aAAa;wBACb,wBAAwB;wBACxB,cAAc;wBACd,YAAY;qBACb;oBACD,OAAO,EAAE,CAAC,sBAAsB,CAAC;oBACjC,eAAe,EAAE,CAAC,2BAA2B,CAAC;iBAC/C","sourcesContent":["import { CommonModule } from '@angular/common';\nimport { NgModule } from '@angular/core';\nimport { SkyI18nModule } from '@skyux/i18n';\nimport { SkyModalModule } from '@skyux/modals';\n\nimport { SkyLayoutResourcesModule } from '../shared/sky-layout-resources.module';\n\nimport { SkyTextExpandModalComponent } from './text-expand-modal.component';\nimport { SkyTextExpandComponent } from './text-expand.component';\n\n@NgModule({\n declarations: [SkyTextExpandComponent, SkyTextExpandModalComponent],\n imports: [\n SkyI18nModule,\n SkyLayoutResourcesModule,\n SkyModalModule,\n CommonModule,\n ],\n exports: [SkyTextExpandComponent],\n entryComponents: [SkyTextExpandModalComponent],\n})\nexport class SkyTextExpandModule {}\n"]}
@@ -88,14 +88,14 @@ export class SkyTextExpandRepeaterComponent {
88
88
  this.animationEnd();
89
89
  /* Before animation is kicked off, ensure that a maxHeight exists */
90
90
  /* Once we have support for angular v4 animations with parameters we can use that instead */
91
- let currentHeight = this.textExpandRepeaterAdapter.getContainerHeight(this.containerEl);
91
+ const currentHeight = this.textExpandRepeaterAdapter.getContainerHeight(this.containerEl);
92
92
  this.textExpandRepeaterAdapter.setContainerHeight(this.containerEl, `${currentHeight}px`);
93
93
  }
94
94
  animateRepeater(expanding) {
95
- let adapter = this.textExpandRepeaterAdapter;
96
- let container = this.containerEl;
95
+ const adapter = this.textExpandRepeaterAdapter;
96
+ const container = this.containerEl;
97
97
  adapter.setContainerHeight(container, undefined);
98
- let currentHeight = adapter.getContainerHeight(container);
98
+ const currentHeight = adapter.getContainerHeight(container);
99
99
  for (let i = this.maxItems; i < this.contentItems.length; i++) {
100
100
  if (!expanding) {
101
101
  adapter.hideItem(this.items[i]);
@@ -104,7 +104,7 @@ export class SkyTextExpandRepeaterComponent {
104
104
  adapter.showItem(this.items[i]);
105
105
  }
106
106
  }
107
- let newHeight = adapter.getContainerHeight(container);
107
+ const newHeight = adapter.getContainerHeight(container);
108
108
  if (!expanding) {
109
109
  this.buttonText = this.seeMoreText;
110
110
  }
@@ -131,7 +131,7 @@ export class SkyTextExpandRepeaterComponent {
131
131
  }
132
132
  setup(value) {
133
133
  if (value) {
134
- let length = value.length;
134
+ const length = value.length;
135
135
  if (length > this.maxItems) {
136
136
  this.expandable = true;
137
137
  this.buttonText = this.seeMoreText;
@@ -1 +1 @@
1
- {"version":3,"file":"text-expand-repeater.component.js","sourceRoot":"","sources":["../../../../../../../../libs/components/layout/src/lib/modules/text-expand-repeater/text-expand-repeater.component.ts","../../../../../../../../libs/components/layout/src/lib/modules/text-expand-repeater/text-expand-repeater.component.html"],"names":[],"mappings":"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","sourcesContent":["import {\n AfterViewInit,\n ChangeDetectorRef,\n Component,\n ElementRef,\n Input,\n OnChanges,\n SimpleChanges,\n TemplateRef,\n ViewChild,\n} from '@angular/core';\n\nimport { SkyLibResourcesService } from '@skyux/i18n';\n\nimport { forkJoin as observableForkJoin } from 'rxjs';\n\nimport { take } from 'rxjs/operators';\n\nimport { SkyTextExpandRepeaterListStyleType } from './types/text-expand-repeater-list-style-type';\n\nimport { SkyTextExpandRepeaterAdapterService } from './text-expand-repeater-adapter.service';\n\n/**\n * Auto-incrementing integer used to generate unique ids for text expand repeater components.\n */\nlet nextId = 0;\n\n@Component({\n selector: 'sky-text-expand-repeater',\n templateUrl: './text-expand-repeater.component.html',\n styleUrls: ['./text-expand-repeater.component.scss'],\n providers: [SkyTextExpandRepeaterAdapterService],\n})\nexport class SkyTextExpandRepeaterComponent\n implements AfterViewInit, OnChanges\n{\n /**\n * Specifies the data to truncate.\n */\n @Input()\n public data: any[];\n\n /**\n * Specifies a template for items in the list.\n */\n @Input()\n public itemTemplate: TemplateRef<any>;\n\n /**\n * Specifies the style of bullet to use\n * @default \"unordered\"\n */\n @Input()\n public listStyle: SkyTextExpandRepeaterListStyleType = 'unordered';\n\n /**\n * Specifies the number of items to display before truncating the list.\n */\n @Input()\n public maxItems: number;\n\n public buttonText: string;\n public contentItems: Array<any>;\n public expandable: boolean;\n public contentSectionId: string = `sky-text-expand-repeater-content-${++nextId}`;\n\n public isExpanded: boolean = false;\n\n private seeMoreText: string;\n private seeLessText: string;\n\n @ViewChild('container', {\n read: ElementRef,\n static: false,\n })\n private containerEl: ElementRef;\n\n private items: Array<HTMLElement>;\n\n constructor(\n private resources: SkyLibResourcesService,\n private elRef: ElementRef,\n private textExpandRepeaterAdapter: SkyTextExpandRepeaterAdapterService,\n private changeDetector: ChangeDetectorRef\n ) {}\n\n public ngAfterViewInit() {\n if (this.contentItems) {\n this.items = this.textExpandRepeaterAdapter.getItems(this.elRef);\n for (let i = this.maxItems; i < this.contentItems.length; i++) {\n this.textExpandRepeaterAdapter.hideItem(this.items[i]);\n }\n }\n\n observableForkJoin([\n this.resources.getString('skyux_text_expand_see_more'),\n this.resources.getString('skyux_text_expand_see_less'),\n ])\n .pipe(take(1))\n .subscribe((resources) => {\n this.seeMoreText = resources[0];\n this.seeLessText = resources[1];\n /* sanity check */\n /* istanbul ignore else */\n if (!this.isExpanded) {\n this.buttonText = this.seeMoreText;\n } else {\n this.buttonText = this.seeLessText;\n }\n this.changeDetector.detectChanges();\n });\n }\n\n public ngOnChanges(changes: SimpleChanges): void {\n /* istanbul ignore else */\n if (changes.maxItems || changes.data) {\n this.setup(this.data);\n }\n }\n\n public animationEnd() {\n // Ensure the correct items are displayed\n if (!this.isExpanded) {\n for (let i = this.maxItems; i < this.contentItems.length; i++) {\n this.textExpandRepeaterAdapter.hideItem(this.items[i]);\n }\n }\n // Set height back to auto so the browser can change the height as needed with window changes\n this.textExpandRepeaterAdapter.setContainerHeight(\n this.containerEl,\n undefined\n );\n }\n\n public repeaterExpand() {\n if (!this.isExpanded) {\n this.setContainerMaxHeight();\n setTimeout(() => {\n this.isExpanded = true;\n this.animateRepeater(true);\n });\n } else {\n this.setContainerMaxHeight();\n setTimeout(() => {\n this.isExpanded = false;\n this.animateRepeater(false);\n });\n }\n }\n\n private setContainerMaxHeight() {\n // ensure everything is reset\n this.animationEnd();\n /* Before animation is kicked off, ensure that a maxHeight exists */\n /* Once we have support for angular v4 animations with parameters we can use that instead */\n let currentHeight = this.textExpandRepeaterAdapter.getContainerHeight(\n this.containerEl\n );\n this.textExpandRepeaterAdapter.setContainerHeight(\n this.containerEl,\n `${currentHeight}px`\n );\n }\n\n private animateRepeater(expanding: boolean) {\n let adapter = this.textExpandRepeaterAdapter;\n let container = this.containerEl;\n\n adapter.setContainerHeight(container, undefined);\n let currentHeight = adapter.getContainerHeight(container);\n for (let i = this.maxItems; i < this.contentItems.length; i++) {\n if (!expanding) {\n adapter.hideItem(this.items[i]);\n } else {\n adapter.showItem(this.items[i]);\n }\n }\n let newHeight = adapter.getContainerHeight(container);\n if (!expanding) {\n this.buttonText = this.seeMoreText;\n } else {\n this.buttonText = this.seeLessText;\n }\n if (newHeight < currentHeight) {\n // The new text is smaller than the old text, so put the old text back before doing\n // the collapse animation to avoid showing a big chunk of whitespace.\n for (let i = this.maxItems; i < this.contentItems.length; i++) {\n adapter.showItem(this.items[i]);\n }\n }\n\n adapter.setContainerHeight(container, `${currentHeight}px`);\n // This timeout is necessary due to the browser needing to pick up the non-auto height being set\n // in order to do the transtion in height correctly. Without it the transition does not fire.\n setTimeout(() => {\n adapter.setContainerHeight(container, `${newHeight}px`);\n /* This resets values if the transition does not get kicked off */\n setTimeout(() => {\n this.animationEnd();\n }, 500);\n }, 10);\n }\n\n private setup(value: Array<any>) {\n if (value) {\n let length = value.length;\n if (length > this.maxItems) {\n this.expandable = true;\n this.buttonText = this.seeMoreText;\n this.isExpanded = false;\n } else {\n this.expandable = false;\n }\n this.contentItems = value;\n } else {\n this.contentItems = undefined;\n this.expandable = false;\n }\n }\n}\n","<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"]}
1
+ {"version":3,"file":"text-expand-repeater.component.js","sourceRoot":"","sources":["../../../../../../../../libs/components/layout/src/lib/modules/text-expand-repeater/text-expand-repeater.component.ts","../../../../../../../../libs/components/layout/src/lib/modules/text-expand-repeater/text-expand-repeater.component.html"],"names":[],"mappings":"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","sourcesContent":["import {\n AfterViewInit,\n ChangeDetectorRef,\n Component,\n ElementRef,\n Input,\n OnChanges,\n SimpleChanges,\n TemplateRef,\n ViewChild,\n} from '@angular/core';\nimport { SkyLibResourcesService } from '@skyux/i18n';\n\nimport { forkJoin as observableForkJoin } from 'rxjs';\nimport { take } from 'rxjs/operators';\n\nimport { SkyTextExpandRepeaterAdapterService } from './text-expand-repeater-adapter.service';\nimport { SkyTextExpandRepeaterListStyleType } from './types/text-expand-repeater-list-style-type';\n\n/**\n * Auto-incrementing integer used to generate unique ids for text expand repeater components.\n */\nlet nextId = 0;\n\n@Component({\n selector: 'sky-text-expand-repeater',\n templateUrl: './text-expand-repeater.component.html',\n styleUrls: ['./text-expand-repeater.component.scss'],\n providers: [SkyTextExpandRepeaterAdapterService],\n})\nexport class SkyTextExpandRepeaterComponent\n implements AfterViewInit, OnChanges\n{\n /**\n * Specifies the data to truncate.\n */\n @Input()\n public data: any[];\n\n /**\n * Specifies a template for items in the list.\n */\n @Input()\n public itemTemplate: TemplateRef<any>;\n\n /**\n * Specifies the style of bullet to use\n * @default \"unordered\"\n */\n @Input()\n public listStyle: SkyTextExpandRepeaterListStyleType = 'unordered';\n\n /**\n * Specifies the number of items to display before truncating the list.\n */\n @Input()\n public maxItems: number;\n\n public buttonText: string;\n public contentItems: Array<any>;\n public expandable: boolean;\n public contentSectionId = `sky-text-expand-repeater-content-${++nextId}`;\n\n public isExpanded = false;\n\n private seeMoreText: string;\n private seeLessText: string;\n\n @ViewChild('container', {\n read: ElementRef,\n static: false,\n })\n private containerEl: ElementRef;\n\n private items: Array<HTMLElement>;\n\n constructor(\n private resources: SkyLibResourcesService,\n private elRef: ElementRef,\n private textExpandRepeaterAdapter: SkyTextExpandRepeaterAdapterService,\n private changeDetector: ChangeDetectorRef\n ) {}\n\n public ngAfterViewInit() {\n if (this.contentItems) {\n this.items = this.textExpandRepeaterAdapter.getItems(this.elRef);\n for (let i = this.maxItems; i < this.contentItems.length; i++) {\n this.textExpandRepeaterAdapter.hideItem(this.items[i]);\n }\n }\n\n observableForkJoin([\n this.resources.getString('skyux_text_expand_see_more'),\n this.resources.getString('skyux_text_expand_see_less'),\n ])\n .pipe(take(1))\n .subscribe((resources) => {\n this.seeMoreText = resources[0];\n this.seeLessText = resources[1];\n /* sanity check */\n /* istanbul ignore else */\n if (!this.isExpanded) {\n this.buttonText = this.seeMoreText;\n } else {\n this.buttonText = this.seeLessText;\n }\n this.changeDetector.detectChanges();\n });\n }\n\n public ngOnChanges(changes: SimpleChanges): void {\n /* istanbul ignore else */\n if (changes.maxItems || changes.data) {\n this.setup(this.data);\n }\n }\n\n public animationEnd() {\n // Ensure the correct items are displayed\n if (!this.isExpanded) {\n for (let i = this.maxItems; i < this.contentItems.length; i++) {\n this.textExpandRepeaterAdapter.hideItem(this.items[i]);\n }\n }\n // Set height back to auto so the browser can change the height as needed with window changes\n this.textExpandRepeaterAdapter.setContainerHeight(\n this.containerEl,\n undefined\n );\n }\n\n public repeaterExpand() {\n if (!this.isExpanded) {\n this.setContainerMaxHeight();\n setTimeout(() => {\n this.isExpanded = true;\n this.animateRepeater(true);\n });\n } else {\n this.setContainerMaxHeight();\n setTimeout(() => {\n this.isExpanded = false;\n this.animateRepeater(false);\n });\n }\n }\n\n private setContainerMaxHeight() {\n // ensure everything is reset\n this.animationEnd();\n /* Before animation is kicked off, ensure that a maxHeight exists */\n /* Once we have support for angular v4 animations with parameters we can use that instead */\n const currentHeight = this.textExpandRepeaterAdapter.getContainerHeight(\n this.containerEl\n );\n this.textExpandRepeaterAdapter.setContainerHeight(\n this.containerEl,\n `${currentHeight}px`\n );\n }\n\n private animateRepeater(expanding: boolean) {\n const adapter = this.textExpandRepeaterAdapter;\n const container = this.containerEl;\n\n adapter.setContainerHeight(container, undefined);\n const currentHeight = adapter.getContainerHeight(container);\n for (let i = this.maxItems; i < this.contentItems.length; i++) {\n if (!expanding) {\n adapter.hideItem(this.items[i]);\n } else {\n adapter.showItem(this.items[i]);\n }\n }\n const newHeight = adapter.getContainerHeight(container);\n if (!expanding) {\n this.buttonText = this.seeMoreText;\n } else {\n this.buttonText = this.seeLessText;\n }\n if (newHeight < currentHeight) {\n // The new text is smaller than the old text, so put the old text back before doing\n // the collapse animation to avoid showing a big chunk of whitespace.\n for (let i = this.maxItems; i < this.contentItems.length; i++) {\n adapter.showItem(this.items[i]);\n }\n }\n\n adapter.setContainerHeight(container, `${currentHeight}px`);\n // This timeout is necessary due to the browser needing to pick up the non-auto height being set\n // in order to do the transtion in height correctly. Without it the transition does not fire.\n setTimeout(() => {\n adapter.setContainerHeight(container, `${newHeight}px`);\n /* This resets values if the transition does not get kicked off */\n setTimeout(() => {\n this.animationEnd();\n }, 500);\n }, 10);\n }\n\n private setup(value: Array<any>) {\n if (value) {\n const length = value.length;\n if (length > this.maxItems) {\n this.expandable = true;\n this.buttonText = this.seeMoreText;\n this.isExpanded = false;\n } else {\n this.expandable = false;\n }\n this.contentItems = value;\n } else {\n this.contentItems = undefined;\n this.expandable = false;\n }\n }\n}\n","<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"]}
@@ -1,5 +1,5 @@
1
- import { NgModule } from '@angular/core';
2
1
  import { CommonModule } from '@angular/common';
2
+ import { NgModule } from '@angular/core';
3
3
  import { SkyI18nModule } from '@skyux/i18n';
4
4
  import { SkyLayoutResourcesModule } from '../shared/sky-layout-resources.module';
5
5
  import { SkyTextExpandRepeaterComponent } from './text-expand-repeater.component';
@@ -1 +1 @@
1
- {"version":3,"file":"text-expand-repeater.module.js","sourceRoot":"","sources":["../../../../../../../../libs/components/layout/src/lib/modules/text-expand-repeater/text-expand-repeater.module.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,MAAM,eAAe,CAAC;AACzC,OAAO,EAAE,YAAY,EAAE,MAAM,iBAAiB,CAAC;AAC/C,OAAO,EAAE,aAAa,EAAE,MAAM,aAAa,CAAC;AAE5C,OAAO,EAAE,wBAAwB,EAAE,MAAM,uCAAuC,CAAC;AAEjF,OAAO,EAAE,8BAA8B,EAAE,MAAM,kCAAkC,CAAC;;AAOlF,MAAM,OAAO,2BAA2B;;yHAA3B,2BAA2B;0HAA3B,2BAA2B,iBAJvB,8BAA8B,aACnC,aAAa,EAAE,wBAAwB,EAAE,YAAY,aACrD,8BAA8B;0HAE7B,2BAA2B,YAH7B,CAAC,aAAa,EAAE,wBAAwB,EAAE,YAAY,CAAC;4FAGrD,2BAA2B;kBALvC,QAAQ;mBAAC;oBACR,YAAY,EAAE,CAAC,8BAA8B,CAAC;oBAC9C,OAAO,EAAE,CAAC,aAAa,EAAE,wBAAwB,EAAE,YAAY,CAAC;oBAChE,OAAO,EAAE,CAAC,8BAA8B,CAAC;iBAC1C","sourcesContent":["import { NgModule } from '@angular/core';\nimport { CommonModule } from '@angular/common';\nimport { SkyI18nModule } from '@skyux/i18n';\n\nimport { SkyLayoutResourcesModule } from '../shared/sky-layout-resources.module';\n\nimport { SkyTextExpandRepeaterComponent } from './text-expand-repeater.component';\n\n@NgModule({\n declarations: [SkyTextExpandRepeaterComponent],\n imports: [SkyI18nModule, SkyLayoutResourcesModule, CommonModule],\n exports: [SkyTextExpandRepeaterComponent],\n})\nexport class SkyTextExpandRepeaterModule {}\n"]}
1
+ {"version":3,"file":"text-expand-repeater.module.js","sourceRoot":"","sources":["../../../../../../../../libs/components/layout/src/lib/modules/text-expand-repeater/text-expand-repeater.module.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAE,MAAM,iBAAiB,CAAC;AAC/C,OAAO,EAAE,QAAQ,EAAE,MAAM,eAAe,CAAC;AACzC,OAAO,EAAE,aAAa,EAAE,MAAM,aAAa,CAAC;AAE5C,OAAO,EAAE,wBAAwB,EAAE,MAAM,uCAAuC,CAAC;AAEjF,OAAO,EAAE,8BAA8B,EAAE,MAAM,kCAAkC,CAAC;;AAOlF,MAAM,OAAO,2BAA2B;;yHAA3B,2BAA2B;0HAA3B,2BAA2B,iBAJvB,8BAA8B,aACnC,aAAa,EAAE,wBAAwB,EAAE,YAAY,aACrD,8BAA8B;0HAE7B,2BAA2B,YAH7B,CAAC,aAAa,EAAE,wBAAwB,EAAE,YAAY,CAAC;4FAGrD,2BAA2B;kBALvC,QAAQ;mBAAC;oBACR,YAAY,EAAE,CAAC,8BAA8B,CAAC;oBAC9C,OAAO,EAAE,CAAC,aAAa,EAAE,wBAAwB,EAAE,YAAY,CAAC;oBAChE,OAAO,EAAE,CAAC,8BAA8B,CAAC;iBAC1C","sourcesContent":["import { CommonModule } from '@angular/common';\nimport { NgModule } from '@angular/core';\nimport { SkyI18nModule } from '@skyux/i18n';\n\nimport { SkyLayoutResourcesModule } from '../shared/sky-layout-resources.module';\n\nimport { SkyTextExpandRepeaterComponent } from './text-expand-repeater.component';\n\n@NgModule({\n declarations: [SkyTextExpandRepeaterComponent],\n imports: [SkyI18nModule, SkyLayoutResourcesModule, CommonModule],\n exports: [SkyTextExpandRepeaterComponent],\n})\nexport class SkyTextExpandRepeaterModule {}\n"]}
@@ -1 +1 @@
1
- {"version":3,"file":"toolbar.component.js","sourceRoot":"","sources":["../../../../../../../../libs/components/layout/src/lib/modules/toolbar/toolbar.component.ts","../../../../../../../../libs/components/layout/src/lib/modules/toolbar/toolbar.component.html"],"names":[],"mappings":"AAAA,OAAO,EACL,SAAS,EAET,eAAe,EACf,SAAS,GACV,MAAM,eAAe,CAAC;AAEvB,OAAO,EAAE,0BAA0B,EAAE,MAAM,6BAA6B,CAAC;;;AAEzE;;GAEG;AAMH,MAAM,OAAO,mBAAmB;IALhC;QAMS,gBAAW,GAAY,KAAK,CAAC;KAQrC;IAHQ,kBAAkB;QACvB,IAAI,CAAC,WAAW,GAAG,IAAI,CAAC,iBAAiB,CAAC,MAAM,GAAG,CAAC,CAAC;IACvD,CAAC;;iHARU,mBAAmB;qGAAnB,mBAAmB,qFAGb,0BAA0B,gDCpB7C,2TAUA;4FDOa,mBAAmB;kBAL/B,SAAS;mBAAC;oBACT,QAAQ,EAAE,aAAa;oBACvB,SAAS,EAAE,CAAC,0BAA0B,CAAC;oBACvC,WAAW,EAAE,0BAA0B;iBACxC;8BAKS,iBAAiB;sBADxB,eAAe;uBAAC,0BAA0B,EAAE,EAAE,WAAW,EAAE,IAAI,EAAE","sourcesContent":["import {\n Component,\n AfterContentInit,\n ContentChildren,\n QueryList,\n} from '@angular/core';\n\nimport { SkyToolbarSectionComponent } from './toolbar-section.component';\n\n/**\n * Displays actions for lists, records, and tiles.\n */\n@Component({\n selector: 'sky-toolbar',\n styleUrls: ['./toolbar.component.scss'],\n templateUrl: './toolbar.component.html',\n})\nexport class SkyToolbarComponent implements AfterContentInit {\n public hasSections: boolean = false;\n\n @ContentChildren(SkyToolbarSectionComponent, { descendants: true })\n private sectionComponents: QueryList<SkyToolbarSectionComponent>;\n\n public ngAfterContentInit() {\n this.hasSections = this.sectionComponents.length > 0;\n }\n}\n","<div\n class=\"sky-toolbar-container\"\n [ngClass]=\"{ 'sky-toolbar-sectioned': hasSections }\"\n>\n <ng-content select=\"sky-toolbar-section\"></ng-content>\n <div class=\"sky-toolbar-items\">\n <ng-content></ng-content>\n </div>\n <ng-content select=\"sky-toolbar-view-actions\"></ng-content>\n</div>\n"]}
1
+ {"version":3,"file":"toolbar.component.js","sourceRoot":"","sources":["../../../../../../../../libs/components/layout/src/lib/modules/toolbar/toolbar.component.ts","../../../../../../../../libs/components/layout/src/lib/modules/toolbar/toolbar.component.html"],"names":[],"mappings":"AAAA,OAAO,EAEL,SAAS,EACT,eAAe,EACf,SAAS,GACV,MAAM,eAAe,CAAC;AAEvB,OAAO,EAAE,0BAA0B,EAAE,MAAM,6BAA6B,CAAC;;;AAEzE;;GAEG;AAMH,MAAM,OAAO,mBAAmB;IALhC;QAMS,gBAAW,GAAG,KAAK,CAAC;KAQ5B;IAHQ,kBAAkB;QACvB,IAAI,CAAC,WAAW,GAAG,IAAI,CAAC,iBAAiB,CAAC,MAAM,GAAG,CAAC,CAAC;IACvD,CAAC;;iHARU,mBAAmB;qGAAnB,mBAAmB,qFAGb,0BAA0B,gDCpB7C,2TAUA;4FDOa,mBAAmB;kBAL/B,SAAS;mBAAC;oBACT,QAAQ,EAAE,aAAa;oBACvB,SAAS,EAAE,CAAC,0BAA0B,CAAC;oBACvC,WAAW,EAAE,0BAA0B;iBACxC;8BAKS,iBAAiB;sBADxB,eAAe;uBAAC,0BAA0B,EAAE,EAAE,WAAW,EAAE,IAAI,EAAE","sourcesContent":["import {\n AfterContentInit,\n Component,\n ContentChildren,\n QueryList,\n} from '@angular/core';\n\nimport { SkyToolbarSectionComponent } from './toolbar-section.component';\n\n/**\n * Displays actions for lists, records, and tiles.\n */\n@Component({\n selector: 'sky-toolbar',\n styleUrls: ['./toolbar.component.scss'],\n templateUrl: './toolbar.component.html',\n})\nexport class SkyToolbarComponent implements AfterContentInit {\n public hasSections = false;\n\n @ContentChildren(SkyToolbarSectionComponent, { descendants: true })\n private sectionComponents: QueryList<SkyToolbarSectionComponent>;\n\n public ngAfterContentInit() {\n this.hasSections = this.sectionComponents.length > 0;\n }\n}\n","<div\n class=\"sky-toolbar-container\"\n [ngClass]=\"{ 'sky-toolbar-sectioned': hasSections }\"\n>\n <ng-content select=\"sky-toolbar-section\"></ng-content>\n <div class=\"sky-toolbar-items\">\n <ng-content></ng-content>\n </div>\n <ng-content select=\"sky-toolbar-view-actions\"></ng-content>\n</div>\n"]}
@@ -1,9 +1,9 @@
1
- import { NgModule } from '@angular/core';
2
1
  import { CommonModule } from '@angular/common';
3
- import { SkyToolbarComponent } from './toolbar.component';
2
+ import { NgModule } from '@angular/core';
4
3
  import { SkyToolbarItemComponent } from './toolbar-item.component';
5
4
  import { SkyToolbarSectionComponent } from './toolbar-section.component';
6
5
  import { SkyToolbarViewActionsComponent } from './toolbar-view-actions.component';
6
+ import { SkyToolbarComponent } from './toolbar.component';
7
7
  import * as i0 from "@angular/core";
8
8
  export class SkyToolbarModule {
9
9
  }
@@ -1 +1 @@
1
- {"version":3,"file":"toolbar.module.js","sourceRoot":"","sources":["../../../../../../../../libs/components/layout/src/lib/modules/toolbar/toolbar.module.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,MAAM,eAAe,CAAC;AAEzC,OAAO,EAAE,YAAY,EAAE,MAAM,iBAAiB,CAAC;AAE/C,OAAO,EAAE,mBAAmB,EAAE,MAAM,qBAAqB,CAAC;AAE1D,OAAO,EAAE,uBAAuB,EAAE,MAAM,0BAA0B,CAAC;AAEnE,OAAO,EAAE,0BAA0B,EAAE,MAAM,6BAA6B,CAAC;AAEzE,OAAO,EAAE,8BAA8B,EAAE,MAAM,kCAAkC,CAAC;;AAiBlF,MAAM,OAAO,gBAAgB;;8GAAhB,gBAAgB;+GAAhB,gBAAgB,iBAbzB,mBAAmB;QACnB,uBAAuB;QACvB,0BAA0B;QAC1B,8BAA8B,aAEtB,YAAY,aAEpB,mBAAmB;QACnB,uBAAuB;QACvB,0BAA0B;QAC1B,8BAA8B;+GAGrB,gBAAgB,YARlB,CAAC,YAAY,CAAC;4FAQZ,gBAAgB;kBAf5B,QAAQ;mBAAC;oBACR,YAAY,EAAE;wBACZ,mBAAmB;wBACnB,uBAAuB;wBACvB,0BAA0B;wBAC1B,8BAA8B;qBAC/B;oBACD,OAAO,EAAE,CAAC,YAAY,CAAC;oBACvB,OAAO,EAAE;wBACP,mBAAmB;wBACnB,uBAAuB;wBACvB,0BAA0B;wBAC1B,8BAA8B;qBAC/B;iBACF","sourcesContent":["import { NgModule } from '@angular/core';\n\nimport { CommonModule } from '@angular/common';\n\nimport { SkyToolbarComponent } from './toolbar.component';\n\nimport { SkyToolbarItemComponent } from './toolbar-item.component';\n\nimport { SkyToolbarSectionComponent } from './toolbar-section.component';\n\nimport { SkyToolbarViewActionsComponent } from './toolbar-view-actions.component';\n\n@NgModule({\n declarations: [\n SkyToolbarComponent,\n SkyToolbarItemComponent,\n SkyToolbarSectionComponent,\n SkyToolbarViewActionsComponent,\n ],\n imports: [CommonModule],\n exports: [\n SkyToolbarComponent,\n SkyToolbarItemComponent,\n SkyToolbarSectionComponent,\n SkyToolbarViewActionsComponent,\n ],\n})\nexport class SkyToolbarModule {}\n"]}
1
+ {"version":3,"file":"toolbar.module.js","sourceRoot":"","sources":["../../../../../../../../libs/components/layout/src/lib/modules/toolbar/toolbar.module.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAE,MAAM,iBAAiB,CAAC;AAC/C,OAAO,EAAE,QAAQ,EAAE,MAAM,eAAe,CAAC;AAEzC,OAAO,EAAE,uBAAuB,EAAE,MAAM,0BAA0B,CAAC;AACnE,OAAO,EAAE,0BAA0B,EAAE,MAAM,6BAA6B,CAAC;AACzE,OAAO,EAAE,8BAA8B,EAAE,MAAM,kCAAkC,CAAC;AAClF,OAAO,EAAE,mBAAmB,EAAE,MAAM,qBAAqB,CAAC;;AAiB1D,MAAM,OAAO,gBAAgB;;8GAAhB,gBAAgB;+GAAhB,gBAAgB,iBAbzB,mBAAmB;QACnB,uBAAuB;QACvB,0BAA0B;QAC1B,8BAA8B,aAEtB,YAAY,aAEpB,mBAAmB;QACnB,uBAAuB;QACvB,0BAA0B;QAC1B,8BAA8B;+GAGrB,gBAAgB,YARlB,CAAC,YAAY,CAAC;4FAQZ,gBAAgB;kBAf5B,QAAQ;mBAAC;oBACR,YAAY,EAAE;wBACZ,mBAAmB;wBACnB,uBAAuB;wBACvB,0BAA0B;wBAC1B,8BAA8B;qBAC/B;oBACD,OAAO,EAAE,CAAC,YAAY,CAAC;oBACvB,OAAO,EAAE;wBACP,mBAAmB;wBACnB,uBAAuB;wBACvB,0BAA0B;wBAC1B,8BAA8B;qBAC/B;iBACF","sourcesContent":["import { CommonModule } from '@angular/common';\nimport { NgModule } from '@angular/core';\n\nimport { SkyToolbarItemComponent } from './toolbar-item.component';\nimport { SkyToolbarSectionComponent } from './toolbar-section.component';\nimport { SkyToolbarViewActionsComponent } from './toolbar-view-actions.component';\nimport { SkyToolbarComponent } from './toolbar.component';\n\n@NgModule({\n declarations: [\n SkyToolbarComponent,\n SkyToolbarItemComponent,\n SkyToolbarSectionComponent,\n SkyToolbarViewActionsComponent,\n ],\n imports: [CommonModule],\n exports: [\n SkyToolbarComponent,\n SkyToolbarItemComponent,\n SkyToolbarSectionComponent,\n SkyToolbarViewActionsComponent,\n ],\n})\nexport class SkyToolbarModule {}\n"]}
@@ -1 +1 @@
1
- {"version":3,"file":"action-button-fixture.js","sourceRoot":"","sources":["../../../../../../libs/components/layout/testing/src/action-button-fixture.ts"],"names":[],"mappings":"AAIA,OAAO,EAAE,EAAE,EAAE,MAAM,2BAA2B,CAAC;AAE/C,OAAO,EAAE,iBAAiB,EAAE,MAAM,oBAAoB,CAAC;AAEvD;;GAEG;AACH,MAAM,OAAO,sBAAsB;IAqCjC,YAAY,OAA8B,EAAE,SAAiB;QAC3D,IAAI,CAAC,OAAO,GAAG,iBAAiB,CAAC,uBAAuB,CACtD,OAAO,EACP,SAAS,EACT,mBAAmB,CACpB,CAAC;IACJ,CAAC;IA1CD;;OAEG;IACH,IAAW,UAAU;QACnB,OAAO,iBAAiB,CAAC,OAAO,CAC9B,IAAI,CAAC,OAAO,CAAC,KAAK,CAAC,EAAE,CAAC,GAAG,CAAC,2BAA2B,CAAC,CAAC,CACxD,CAAC;IACJ,CAAC;IAED;;OAEG;IACH,IAAW,WAAW;QACpB,OAAO,iBAAiB,CAAC,OAAO,CAC9B,IAAI,CAAC,OAAO,CAAC,KAAK,CAAC,EAAE,CAAC,GAAG,CAAC,2BAA2B,CAAC,CAAC,CACxD,CAAC;IACJ,CAAC;IAED;;OAEG;IACH,IAAW,QAAQ;QACjB,MAAM,SAAS,GAAG,IAAI,CAAC,OAAO,CAAC,KAAK,CAAC,EAAE,CAAC,GAAG,CAAC,cAAc,CAAC,CAAC,CAAC,aAAa;aACvE,SAAS,CAAC;QAEb,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,SAAS,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,EAAE,CAAC,EAAE,EAAE;YAChD,MAAM,GAAG,GAAG,SAAS,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;YAE9B,IAAI,GAAG,CAAC,OAAO,CAAC,KAAK,CAAC,KAAK,CAAC,EAAE;gBAC5B,OAAO,GAAG,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC;aACtB;SACF;IACH,CAAC;IAYD;;OAEG;IACI,WAAW;QAChB,IAAI,CAAC,OAAO;aACT,KAAK,CAAC,EAAE,CAAC,GAAG,CAAC,oBAAoB,CAAC,CAAC;aACnC,mBAAmB,CAAC,OAAO,EAAE,EAAE,CAAC,CAAC;IACtC,CAAC;CACF","sourcesContent":["import { ComponentFixture } from '@angular/core/testing';\n\nimport { DebugElement } from '@angular/core';\n\nimport { By } from '@angular/platform-browser';\n\nimport { SkyAppTestUtility } from '@skyux-sdk/testing';\n\n/**\n * Allows interaction with a SKY UX action button component.\n */\nexport class SkyActionButtonFixture {\n /**\n * The action button's current header text.\n */\n public get headerText(): string {\n return SkyAppTestUtility.getText(\n this.debugEl.query(By.css('.sky-action-button-header'))\n );\n }\n\n /**\n * The action button's current details text.\n */\n public get detailsText(): string {\n return SkyAppTestUtility.getText(\n this.debugEl.query(By.css('sky-action-button-details'))\n );\n }\n\n /**\n * The action button's current icon type.\n */\n public get iconType(): string {\n const classList = this.debugEl.query(By.css('.fa.sky-icon')).nativeElement\n .classList;\n\n for (let i = 0, n = classList.length; i < n; i++) {\n const cls = classList.item(i);\n\n if (cls.indexOf('fa-') === 0) {\n return cls.substr(3);\n }\n }\n }\n\n private debugEl: DebugElement;\n\n constructor(fixture: ComponentFixture<any>, skyTestId: string) {\n this.debugEl = SkyAppTestUtility.getDebugElementByTestId(\n fixture,\n skyTestId,\n 'sky-action-button'\n );\n }\n\n /**\n * Clicks the action button.\n */\n public actionClick(): void {\n this.debugEl\n .query(By.css('.sky-action-button'))\n .triggerEventHandler('click', {});\n }\n}\n"]}
1
+ {"version":3,"file":"action-button-fixture.js","sourceRoot":"","sources":["../../../../../../libs/components/layout/testing/src/action-button-fixture.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,EAAE,EAAE,MAAM,2BAA2B,CAAC;AAC/C,OAAO,EAAE,iBAAiB,EAAE,MAAM,oBAAoB,CAAC;AAEvD;;GAEG;AACH,MAAM,OAAO,sBAAsB;IAqCjC,YAAY,OAA8B,EAAE,SAAiB;QAC3D,IAAI,CAAC,OAAO,GAAG,iBAAiB,CAAC,uBAAuB,CACtD,OAAO,EACP,SAAS,EACT,mBAAmB,CACpB,CAAC;IACJ,CAAC;IA1CD;;OAEG;IACH,IAAW,UAAU;QACnB,OAAO,iBAAiB,CAAC,OAAO,CAC9B,IAAI,CAAC,OAAO,CAAC,KAAK,CAAC,EAAE,CAAC,GAAG,CAAC,2BAA2B,CAAC,CAAC,CACxD,CAAC;IACJ,CAAC;IAED;;OAEG;IACH,IAAW,WAAW;QACpB,OAAO,iBAAiB,CAAC,OAAO,CAC9B,IAAI,CAAC,OAAO,CAAC,KAAK,CAAC,EAAE,CAAC,GAAG,CAAC,2BAA2B,CAAC,CAAC,CACxD,CAAC;IACJ,CAAC;IAED;;OAEG;IACH,IAAW,QAAQ;QACjB,MAAM,SAAS,GAAG,IAAI,CAAC,OAAO,CAAC,KAAK,CAAC,EAAE,CAAC,GAAG,CAAC,cAAc,CAAC,CAAC,CAAC,aAAa;aACvE,SAAS,CAAC;QAEb,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,SAAS,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,EAAE,CAAC,EAAE,EAAE;YAChD,MAAM,GAAG,GAAG,SAAS,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;YAE9B,IAAI,GAAG,CAAC,OAAO,CAAC,KAAK,CAAC,KAAK,CAAC,EAAE;gBAC5B,OAAO,GAAG,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC;aACtB;SACF;IACH,CAAC;IAYD;;OAEG;IACI,WAAW;QAChB,IAAI,CAAC,OAAO;aACT,KAAK,CAAC,EAAE,CAAC,GAAG,CAAC,oBAAoB,CAAC,CAAC;aACnC,mBAAmB,CAAC,OAAO,EAAE,EAAE,CAAC,CAAC;IACtC,CAAC;CACF","sourcesContent":["import { DebugElement } from '@angular/core';\nimport { ComponentFixture } from '@angular/core/testing';\nimport { By } from '@angular/platform-browser';\nimport { SkyAppTestUtility } from '@skyux-sdk/testing';\n\n/**\n * Allows interaction with a SKY UX action button component.\n */\nexport class SkyActionButtonFixture {\n /**\n * The action button's current header text.\n */\n public get headerText(): string {\n return SkyAppTestUtility.getText(\n this.debugEl.query(By.css('.sky-action-button-header'))\n );\n }\n\n /**\n * The action button's current details text.\n */\n public get detailsText(): string {\n return SkyAppTestUtility.getText(\n this.debugEl.query(By.css('sky-action-button-details'))\n );\n }\n\n /**\n * The action button's current icon type.\n */\n public get iconType(): string {\n const classList = this.debugEl.query(By.css('.fa.sky-icon')).nativeElement\n .classList;\n\n for (let i = 0, n = classList.length; i < n; i++) {\n const cls = classList.item(i);\n\n if (cls.indexOf('fa-') === 0) {\n return cls.substr(3);\n }\n }\n }\n\n private debugEl: DebugElement;\n\n constructor(fixture: ComponentFixture<any>, skyTestId: string) {\n this.debugEl = SkyAppTestUtility.getDebugElementByTestId(\n fixture,\n skyTestId,\n 'sky-action-button'\n );\n }\n\n /**\n * Clicks the action button.\n */\n public actionClick(): void {\n this.debugEl\n .query(By.css('.sky-action-button'))\n .triggerEventHandler('click', {});\n }\n}\n"]}