@skyux/layout 5.7.2 → 6.0.0-beta.2
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.
- package/documentation.json +4 -4
- package/esm2020/index.mjs +74 -0
- package/esm2020/lib/modules/action-button/action-button-adapter-service.mjs +43 -0
- package/esm2020/lib/modules/action-button/action-button-container.component.mjs +139 -0
- package/esm2020/lib/modules/action-button/action-button-details.component.mjs +14 -0
- package/esm2020/lib/modules/action-button/action-button-header.component.mjs +15 -0
- package/esm2020/lib/modules/action-button/action-button-icon.component.mjs +40 -0
- package/esm2020/lib/modules/action-button/action-button-permalink.mjs +2 -0
- package/esm2020/lib/modules/action-button/action-button.component.mjs +34 -0
- package/esm2020/lib/modules/action-button/action-button.module.mjs +62 -0
- package/esm2020/lib/modules/action-button/types/action-button-container-align-items-type.mjs +2 -0
- package/esm2020/lib/modules/action-button/types/action-button-container-align-items.mjs +2 -0
- package/esm2020/lib/modules/back-to-top/back-to-top-adapter.service.mjs +84 -0
- package/esm2020/lib/modules/back-to-top/back-to-top.component.mjs +26 -0
- package/esm2020/lib/modules/back-to-top/back-to-top.directive.mjs +114 -0
- package/esm2020/lib/modules/back-to-top/back-to-top.module.mjs +35 -0
- package/esm2020/lib/modules/back-to-top/models/back-to-top-message-type.mjs +11 -0
- package/esm2020/lib/modules/back-to-top/models/back-to-top-message.mjs +2 -0
- package/esm2020/lib/modules/back-to-top/models/back-to-top-options.mjs +2 -0
- package/esm2020/lib/modules/box/box-content.component.mjs +15 -0
- package/esm2020/lib/modules/box/box-controls.component.mjs +14 -0
- package/esm2020/lib/modules/box/box-header.component.mjs +14 -0
- package/esm2020/lib/modules/box/box.component.mjs +21 -0
- package/esm2020/lib/modules/box/box.module.mjs +38 -0
- package/esm2020/lib/modules/card/card-actions.component.mjs +14 -0
- package/esm2020/lib/modules/card/card-content.component.mjs +14 -0
- package/esm2020/lib/modules/card/card-title.component.mjs +14 -0
- package/esm2020/lib/modules/card/card.component.mjs +75 -0
- package/esm2020/lib/modules/card/card.module.mjs +61 -0
- package/esm2020/lib/modules/definition-list/definition-list-content.component.mjs +14 -0
- package/esm2020/lib/modules/definition-list/definition-list-heading.component.mjs +14 -0
- package/esm2020/lib/modules/definition-list/definition-list-label.component.mjs +20 -0
- package/esm2020/lib/modules/definition-list/definition-list-value.component.mjs +21 -0
- package/esm2020/lib/modules/definition-list/definition-list.component.mjs +38 -0
- package/esm2020/lib/modules/definition-list/definition-list.module.mjs +44 -0
- package/esm2020/lib/modules/definition-list/definition-list.service.mjs +18 -0
- package/esm2020/lib/modules/description-list/description-list-adapter-service.mjs +43 -0
- package/esm2020/lib/modules/description-list/description-list-content.component.mjs +22 -0
- package/esm2020/lib/modules/description-list/description-list-description.component.mjs +49 -0
- package/esm2020/lib/modules/description-list/description-list-term.component.mjs +20 -0
- package/esm2020/lib/modules/description-list/description-list.component.mjs +101 -0
- package/esm2020/lib/modules/description-list/description-list.module.mjs +53 -0
- package/esm2020/lib/modules/description-list/description-list.service.mjs +26 -0
- package/esm2020/lib/modules/description-list/types/description-list-mode-type.mjs +2 -0
- package/esm2020/lib/modules/description-list/types/description-list-mode.mjs +24 -0
- package/esm2020/lib/modules/fluid-grid/column.component.mjs +53 -0
- package/esm2020/lib/modules/fluid-grid/fluid-grid-gutter-size.mjs +20 -0
- package/esm2020/lib/modules/fluid-grid/fluid-grid.component.mjs +62 -0
- package/esm2020/lib/modules/fluid-grid/fluid-grid.module.mjs +20 -0
- package/esm2020/lib/modules/fluid-grid/row.component.mjs +25 -0
- package/esm2020/lib/modules/fluid-grid/types/fluid-grid-gutter-size-type.mjs +2 -0
- package/esm2020/lib/modules/format/format-item.mjs +2 -0
- package/esm2020/lib/modules/format/format.component.mjs +59 -0
- package/esm2020/lib/modules/format/format.module.mjs +18 -0
- package/esm2020/lib/modules/inline-delete/inline-delete-adapter.service.mjs +115 -0
- package/esm2020/lib/modules/inline-delete/inline-delete-type.mjs +16 -0
- package/esm2020/lib/modules/inline-delete/inline-delete.component.mjs +161 -0
- package/esm2020/lib/modules/inline-delete/inline-delete.module.mjs +34 -0
- package/esm2020/lib/modules/page/page-theme-adapter.service.mjs +26 -0
- package/esm2020/lib/modules/page/page.component.mjs +27 -0
- package/esm2020/lib/modules/page/page.module.mjs +16 -0
- package/esm2020/lib/modules/page-summary/page-summary-adapter.service.mjs +23 -0
- package/esm2020/lib/modules/page-summary/page-summary-alert.component.mjs +17 -0
- package/esm2020/lib/modules/page-summary/page-summary-content.component.mjs +16 -0
- package/esm2020/lib/modules/page-summary/page-summary-image.component.mjs +17 -0
- package/esm2020/lib/modules/page-summary/page-summary-key-info.component.mjs +15 -0
- package/esm2020/lib/modules/page-summary/page-summary-status.component.mjs +17 -0
- package/esm2020/lib/modules/page-summary/page-summary-subtitle.component.mjs +16 -0
- package/esm2020/lib/modules/page-summary/page-summary-title.component.mjs +16 -0
- package/esm2020/lib/modules/page-summary/page-summary.component.mjs +45 -0
- package/esm2020/lib/modules/page-summary/page-summary.module.mjs +57 -0
- package/esm2020/lib/modules/shared/sky-layout-resources.module.mjs +60 -0
- package/esm2020/lib/modules/text-expand/text-expand-adapter.service.mjs +31 -0
- package/esm2020/lib/modules/text-expand/text-expand-modal-context.mjs +6 -0
- package/esm2020/lib/modules/text-expand/text-expand-modal.component.mjs +26 -0
- package/esm2020/lib/modules/text-expand/text-expand.component.mjs +247 -0
- package/esm2020/lib/modules/text-expand/text-expand.module.mjs +35 -0
- package/esm2020/lib/modules/text-expand-repeater/text-expand-repeater-adapter.service.mjs +37 -0
- package/esm2020/lib/modules/text-expand-repeater/text-expand-repeater.component.mjs +171 -0
- package/esm2020/lib/modules/text-expand-repeater/text-expand-repeater.module.mjs +20 -0
- package/esm2020/lib/modules/text-expand-repeater/types/text-expand-repeater-list-style-type.mjs +2 -0
- package/esm2020/lib/modules/toolbar/toolbar-item.component.mjs +14 -0
- package/esm2020/lib/modules/toolbar/toolbar-section.component.mjs +14 -0
- package/esm2020/lib/modules/toolbar/toolbar-view-actions.component.mjs +15 -0
- package/esm2020/lib/modules/toolbar/toolbar.component.mjs +25 -0
- package/esm2020/lib/modules/toolbar/toolbar.module.mjs +37 -0
- package/esm2020/skyux-layout.mjs +5 -0
- package/esm2020/testing/action-button-fixture.mjs +44 -0
- package/esm2020/testing/card-fixture.mjs +63 -0
- package/esm2020/testing/page-summary-fixture.mjs +29 -0
- package/esm2020/testing/public-api.mjs +4 -0
- package/esm2020/testing/skyux-layout-testing.mjs +5 -0
- package/fesm2015/{skyux-layout-testing.js → skyux-layout-testing.mjs} +1 -1
- package/fesm2015/skyux-layout-testing.mjs.map +1 -0
- package/fesm2015/skyux-layout.mjs +2724 -0
- package/fesm2015/skyux-layout.mjs.map +1 -0
- package/fesm2020/skyux-layout-testing.mjs +139 -0
- package/fesm2020/skyux-layout-testing.mjs.map +1 -0
- package/fesm2020/skyux-layout.mjs +2722 -0
- package/fesm2020/skyux-layout.mjs.map +1 -0
- package/package.json +45 -21
- package/testing/package.json +5 -5
- package/bundles/skyux-layout-testing.umd.js +0 -191
- package/bundles/skyux-layout.umd.js +0 -3570
- package/esm2015/index.js +0 -74
- package/esm2015/index.js.map +0 -1
- package/esm2015/lib/modules/action-button/action-button-adapter-service.js +0 -43
- package/esm2015/lib/modules/action-button/action-button-adapter-service.js.map +0 -1
- package/esm2015/lib/modules/action-button/action-button-container.component.js +0 -145
- package/esm2015/lib/modules/action-button/action-button-container.component.js.map +0 -1
- package/esm2015/lib/modules/action-button/action-button-details.component.js +0 -17
- package/esm2015/lib/modules/action-button/action-button-details.component.js.map +0 -1
- package/esm2015/lib/modules/action-button/action-button-header.component.js +0 -19
- package/esm2015/lib/modules/action-button/action-button-header.component.js.map +0 -1
- package/esm2015/lib/modules/action-button/action-button-icon.component.js +0 -44
- package/esm2015/lib/modules/action-button/action-button-icon.component.js.map +0 -1
- package/esm2015/lib/modules/action-button/action-button-permalink.js +0 -2
- package/esm2015/lib/modules/action-button/action-button-permalink.js.map +0 -1
- package/esm2015/lib/modules/action-button/action-button.component.js +0 -39
- package/esm2015/lib/modules/action-button/action-button.component.js.map +0 -1
- package/esm2015/lib/modules/action-button/action-button.module.js +0 -62
- package/esm2015/lib/modules/action-button/action-button.module.js.map +0 -1
- package/esm2015/lib/modules/action-button/types/action-button-container-align-items-type.js +0 -2
- package/esm2015/lib/modules/action-button/types/action-button-container-align-items-type.js.map +0 -1
- package/esm2015/lib/modules/action-button/types/action-button-container-align-items.js +0 -2
- package/esm2015/lib/modules/action-button/types/action-button-container-align-items.js.map +0 -1
- package/esm2015/lib/modules/back-to-top/back-to-top-adapter.service.js +0 -84
- package/esm2015/lib/modules/back-to-top/back-to-top-adapter.service.js.map +0 -1
- package/esm2015/lib/modules/back-to-top/back-to-top.component.js +0 -31
- package/esm2015/lib/modules/back-to-top/back-to-top.component.js.map +0 -1
- package/esm2015/lib/modules/back-to-top/back-to-top.directive.js +0 -114
- package/esm2015/lib/modules/back-to-top/back-to-top.directive.js.map +0 -1
- package/esm2015/lib/modules/back-to-top/back-to-top.module.js +0 -36
- package/esm2015/lib/modules/back-to-top/back-to-top.module.js.map +0 -1
- package/esm2015/lib/modules/back-to-top/models/back-to-top-message-type.js +0 -11
- package/esm2015/lib/modules/back-to-top/models/back-to-top-message-type.js.map +0 -1
- package/esm2015/lib/modules/back-to-top/models/back-to-top-message.js +0 -2
- package/esm2015/lib/modules/back-to-top/models/back-to-top-message.js.map +0 -1
- package/esm2015/lib/modules/back-to-top/models/back-to-top-options.js +0 -2
- package/esm2015/lib/modules/back-to-top/models/back-to-top-options.js.map +0 -1
- package/esm2015/lib/modules/box/box-content.component.js +0 -18
- package/esm2015/lib/modules/box/box-content.component.js.map +0 -1
- package/esm2015/lib/modules/box/box-controls.component.js +0 -17
- package/esm2015/lib/modules/box/box-controls.component.js.map +0 -1
- package/esm2015/lib/modules/box/box-header.component.js +0 -17
- package/esm2015/lib/modules/box/box-header.component.js.map +0 -1
- package/esm2015/lib/modules/box/box.component.js +0 -26
- package/esm2015/lib/modules/box/box.component.js.map +0 -1
- package/esm2015/lib/modules/box/box.module.js +0 -38
- package/esm2015/lib/modules/box/box.module.js.map +0 -1
- package/esm2015/lib/modules/card/card-actions.component.js +0 -18
- package/esm2015/lib/modules/card/card-actions.component.js.map +0 -1
- package/esm2015/lib/modules/card/card-content.component.js +0 -17
- package/esm2015/lib/modules/card/card-content.component.js.map +0 -1
- package/esm2015/lib/modules/card/card-title.component.js +0 -17
- package/esm2015/lib/modules/card/card-title.component.js.map +0 -1
- package/esm2015/lib/modules/card/card.component.js +0 -79
- package/esm2015/lib/modules/card/card.component.js.map +0 -1
- package/esm2015/lib/modules/card/card.module.js +0 -61
- package/esm2015/lib/modules/card/card.module.js.map +0 -1
- package/esm2015/lib/modules/definition-list/definition-list-content.component.js +0 -19
- package/esm2015/lib/modules/definition-list/definition-list-content.component.js.map +0 -1
- package/esm2015/lib/modules/definition-list/definition-list-heading.component.js +0 -19
- package/esm2015/lib/modules/definition-list/definition-list-heading.component.js.map +0 -1
- package/esm2015/lib/modules/definition-list/definition-list-label.component.js +0 -25
- package/esm2015/lib/modules/definition-list/definition-list-label.component.js.map +0 -1
- package/esm2015/lib/modules/definition-list/definition-list-value.component.js +0 -25
- package/esm2015/lib/modules/definition-list/definition-list-value.component.js.map +0 -1
- package/esm2015/lib/modules/definition-list/definition-list.component.js +0 -44
- package/esm2015/lib/modules/definition-list/definition-list.component.js.map +0 -1
- package/esm2015/lib/modules/definition-list/definition-list.module.js +0 -44
- package/esm2015/lib/modules/definition-list/definition-list.module.js.map +0 -1
- package/esm2015/lib/modules/definition-list/definition-list.service.js +0 -18
- package/esm2015/lib/modules/definition-list/definition-list.service.js.map +0 -1
- package/esm2015/lib/modules/description-list/description-list-adapter-service.js +0 -43
- package/esm2015/lib/modules/description-list/description-list-adapter-service.js.map +0 -1
- package/esm2015/lib/modules/description-list/description-list-content.component.js +0 -25
- package/esm2015/lib/modules/description-list/description-list-content.component.js.map +0 -1
- package/esm2015/lib/modules/description-list/description-list-description.component.js +0 -53
- package/esm2015/lib/modules/description-list/description-list-description.component.js.map +0 -1
- package/esm2015/lib/modules/description-list/description-list-term.component.js +0 -24
- package/esm2015/lib/modules/description-list/description-list-term.component.js.map +0 -1
- package/esm2015/lib/modules/description-list/description-list.component.js +0 -107
- package/esm2015/lib/modules/description-list/description-list.component.js.map +0 -1
- package/esm2015/lib/modules/description-list/description-list.module.js +0 -53
- package/esm2015/lib/modules/description-list/description-list.module.js.map +0 -1
- package/esm2015/lib/modules/description-list/description-list.service.js +0 -26
- package/esm2015/lib/modules/description-list/description-list.service.js.map +0 -1
- package/esm2015/lib/modules/description-list/types/description-list-mode-type.js +0 -2
- package/esm2015/lib/modules/description-list/types/description-list-mode-type.js.map +0 -1
- package/esm2015/lib/modules/description-list/types/description-list-mode.js +0 -24
- package/esm2015/lib/modules/description-list/types/description-list-mode.js.map +0 -1
- package/esm2015/lib/modules/fluid-grid/column.component.js +0 -58
- package/esm2015/lib/modules/fluid-grid/column.component.js.map +0 -1
- package/esm2015/lib/modules/fluid-grid/fluid-grid-gutter-size.js +0 -20
- package/esm2015/lib/modules/fluid-grid/fluid-grid-gutter-size.js.map +0 -1
- package/esm2015/lib/modules/fluid-grid/fluid-grid.component.js +0 -66
- package/esm2015/lib/modules/fluid-grid/fluid-grid.component.js.map +0 -1
- package/esm2015/lib/modules/fluid-grid/fluid-grid.module.js +0 -20
- package/esm2015/lib/modules/fluid-grid/fluid-grid.module.js.map +0 -1
- package/esm2015/lib/modules/fluid-grid/row.component.js +0 -29
- package/esm2015/lib/modules/fluid-grid/row.component.js.map +0 -1
- package/esm2015/lib/modules/fluid-grid/types/fluid-grid-gutter-size-type.js +0 -2
- package/esm2015/lib/modules/fluid-grid/types/fluid-grid-gutter-size-type.js.map +0 -1
- package/esm2015/lib/modules/format/format-item.js +0 -2
- package/esm2015/lib/modules/format/format-item.js.map +0 -1
- package/esm2015/lib/modules/format/format.component.js +0 -63
- package/esm2015/lib/modules/format/format.component.js.map +0 -1
- package/esm2015/lib/modules/format/format.module.js +0 -18
- package/esm2015/lib/modules/format/format.module.js.map +0 -1
- package/esm2015/lib/modules/inline-delete/inline-delete-adapter.service.js +0 -115
- package/esm2015/lib/modules/inline-delete/inline-delete-adapter.service.js.map +0 -1
- package/esm2015/lib/modules/inline-delete/inline-delete-type.js +0 -16
- package/esm2015/lib/modules/inline-delete/inline-delete-type.js.map +0 -1
- package/esm2015/lib/modules/inline-delete/inline-delete.component.js +0 -167
- package/esm2015/lib/modules/inline-delete/inline-delete.component.js.map +0 -1
- package/esm2015/lib/modules/inline-delete/inline-delete.module.js +0 -34
- package/esm2015/lib/modules/inline-delete/inline-delete.module.js.map +0 -1
- package/esm2015/lib/modules/page/page-theme-adapter.service.js +0 -26
- package/esm2015/lib/modules/page/page-theme-adapter.service.js.map +0 -1
- package/esm2015/lib/modules/page/page.component.js +0 -31
- package/esm2015/lib/modules/page/page.component.js.map +0 -1
- package/esm2015/lib/modules/page/page.module.js +0 -16
- package/esm2015/lib/modules/page/page.module.js.map +0 -1
- package/esm2015/lib/modules/page-summary/page-summary-adapter.service.js +0 -23
- package/esm2015/lib/modules/page-summary/page-summary-adapter.service.js.map +0 -1
- package/esm2015/lib/modules/page-summary/page-summary-alert.component.js +0 -21
- package/esm2015/lib/modules/page-summary/page-summary-alert.component.js.map +0 -1
- package/esm2015/lib/modules/page-summary/page-summary-content.component.js +0 -20
- package/esm2015/lib/modules/page-summary/page-summary-content.component.js.map +0 -1
- package/esm2015/lib/modules/page-summary/page-summary-image.component.js +0 -21
- package/esm2015/lib/modules/page-summary/page-summary-image.component.js.map +0 -1
- package/esm2015/lib/modules/page-summary/page-summary-key-info.component.js +0 -19
- package/esm2015/lib/modules/page-summary/page-summary-key-info.component.js.map +0 -1
- package/esm2015/lib/modules/page-summary/page-summary-status.component.js +0 -21
- package/esm2015/lib/modules/page-summary/page-summary-status.component.js.map +0 -1
- package/esm2015/lib/modules/page-summary/page-summary-subtitle.component.js +0 -20
- package/esm2015/lib/modules/page-summary/page-summary-subtitle.component.js.map +0 -1
- package/esm2015/lib/modules/page-summary/page-summary-title.component.js +0 -20
- package/esm2015/lib/modules/page-summary/page-summary-title.component.js.map +0 -1
- package/esm2015/lib/modules/page-summary/page-summary.component.js +0 -50
- package/esm2015/lib/modules/page-summary/page-summary.component.js.map +0 -1
- package/esm2015/lib/modules/page-summary/page-summary.module.js +0 -57
- package/esm2015/lib/modules/page-summary/page-summary.module.js.map +0 -1
- package/esm2015/lib/modules/shared/sky-layout-resources.module.js +0 -60
- package/esm2015/lib/modules/shared/sky-layout-resources.module.js.map +0 -1
- package/esm2015/lib/modules/text-expand/text-expand-adapter.service.js +0 -31
- package/esm2015/lib/modules/text-expand/text-expand-adapter.service.js.map +0 -1
- package/esm2015/lib/modules/text-expand/text-expand-modal-context.js +0 -6
- package/esm2015/lib/modules/text-expand/text-expand-modal-context.js.map +0 -1
- package/esm2015/lib/modules/text-expand/text-expand-modal.component.js +0 -30
- package/esm2015/lib/modules/text-expand/text-expand-modal.component.js.map +0 -1
- package/esm2015/lib/modules/text-expand/text-expand.component.js +0 -252
- package/esm2015/lib/modules/text-expand/text-expand.component.js.map +0 -1
- package/esm2015/lib/modules/text-expand/text-expand.module.js +0 -36
- package/esm2015/lib/modules/text-expand/text-expand.module.js.map +0 -1
- package/esm2015/lib/modules/text-expand-repeater/text-expand-repeater-adapter.service.js +0 -37
- package/esm2015/lib/modules/text-expand-repeater/text-expand-repeater-adapter.service.js.map +0 -1
- package/esm2015/lib/modules/text-expand-repeater/text-expand-repeater.component.js +0 -176
- package/esm2015/lib/modules/text-expand-repeater/text-expand-repeater.component.js.map +0 -1
- package/esm2015/lib/modules/text-expand-repeater/text-expand-repeater.module.js +0 -20
- package/esm2015/lib/modules/text-expand-repeater/text-expand-repeater.module.js.map +0 -1
- package/esm2015/lib/modules/text-expand-repeater/types/text-expand-repeater-list-style-type.js +0 -2
- package/esm2015/lib/modules/text-expand-repeater/types/text-expand-repeater-list-style-type.js.map +0 -1
- package/esm2015/lib/modules/toolbar/toolbar-item.component.js +0 -18
- package/esm2015/lib/modules/toolbar/toolbar-item.component.js.map +0 -1
- package/esm2015/lib/modules/toolbar/toolbar-section.component.js +0 -18
- package/esm2015/lib/modules/toolbar/toolbar-section.component.js.map +0 -1
- package/esm2015/lib/modules/toolbar/toolbar-view-actions.component.js +0 -20
- package/esm2015/lib/modules/toolbar/toolbar-view-actions.component.js.map +0 -1
- package/esm2015/lib/modules/toolbar/toolbar.component.js +0 -29
- package/esm2015/lib/modules/toolbar/toolbar.component.js.map +0 -1
- package/esm2015/lib/modules/toolbar/toolbar.module.js +0 -37
- package/esm2015/lib/modules/toolbar/toolbar.module.js.map +0 -1
- package/esm2015/skyux-layout.js +0 -5
- package/esm2015/skyux-layout.js.map +0 -1
- package/esm2015/testing/action-button-fixture.js +0 -44
- package/esm2015/testing/action-button-fixture.js.map +0 -1
- package/esm2015/testing/card-fixture.js +0 -63
- package/esm2015/testing/card-fixture.js.map +0 -1
- package/esm2015/testing/page-summary-fixture.js +0 -29
- package/esm2015/testing/page-summary-fixture.js.map +0 -1
- package/esm2015/testing/public-api.js +0 -4
- package/esm2015/testing/public-api.js.map +0 -1
- package/esm2015/testing/skyux-layout-testing.js +0 -5
- package/esm2015/testing/skyux-layout-testing.js.map +0 -1
- package/fesm2015/skyux-layout-testing.js.map +0 -1
- package/fesm2015/skyux-layout.js +0 -2912
- package/fesm2015/skyux-layout.js.map +0 -1
|
@@ -0,0 +1,247 @@
|
|
|
1
|
+
import { Component, ElementRef, Input, ViewChild, } from '@angular/core';
|
|
2
|
+
import { SkyLibResourcesService } from '@skyux/i18n';
|
|
3
|
+
import { SkyModalService } from '@skyux/modals';
|
|
4
|
+
import { forkJoin as observableForkJoin } from 'rxjs';
|
|
5
|
+
import { take } from 'rxjs/operators';
|
|
6
|
+
import { SkyTextExpandAdapterService } from './text-expand-adapter.service';
|
|
7
|
+
import { SkyTextExpandModalContext } from './text-expand-modal-context';
|
|
8
|
+
import { SkyTextExpandModalComponent } from './text-expand-modal.component';
|
|
9
|
+
import * as i0 from "@angular/core";
|
|
10
|
+
import * as i1 from "@skyux/i18n";
|
|
11
|
+
import * as i2 from "@skyux/modals";
|
|
12
|
+
import * as i3 from "./text-expand-adapter.service";
|
|
13
|
+
import * as i4 from "@angular/common";
|
|
14
|
+
/**
|
|
15
|
+
* Auto-incrementing integer used to generate unique ids for text expand components.
|
|
16
|
+
*/
|
|
17
|
+
let nextId = 0;
|
|
18
|
+
export class SkyTextExpandComponent {
|
|
19
|
+
constructor(resources, modalService, textExpandAdapter) {
|
|
20
|
+
this.resources = resources;
|
|
21
|
+
this.modalService = modalService;
|
|
22
|
+
this.textExpandAdapter = textExpandAdapter;
|
|
23
|
+
/**
|
|
24
|
+
* Specifies the maximum number of text characters to display inline when users select the link
|
|
25
|
+
* to expand the full text. If the text exceeds this limit, then the component expands
|
|
26
|
+
* the full text in a modal instead.
|
|
27
|
+
*/
|
|
28
|
+
this.maxExpandedLength = 600;
|
|
29
|
+
/**
|
|
30
|
+
* Specifies the maximum number of newline characters to display inline when users select
|
|
31
|
+
* the link to expand the full text. If the text exceeds this limit, then
|
|
32
|
+
* the component expands the full text in a modal view instead.
|
|
33
|
+
*/
|
|
34
|
+
this.maxExpandedNewlines = 2;
|
|
35
|
+
/**
|
|
36
|
+
* Indicates whether to replace newline characters in truncated text with spaces.
|
|
37
|
+
*/
|
|
38
|
+
this.truncateNewlines = true;
|
|
39
|
+
this.contentSectionId = `sky-text-expand-content-${++nextId}`;
|
|
40
|
+
this.isExpanded = false;
|
|
41
|
+
this._maxLength = 200;
|
|
42
|
+
}
|
|
43
|
+
/**
|
|
44
|
+
* Specifies the number of text characters to display before truncating the text.
|
|
45
|
+
* To avoid truncating text in the middle of a word, the component looks for a space
|
|
46
|
+
* in the 10 characters before the last character.
|
|
47
|
+
* @default 200
|
|
48
|
+
*/
|
|
49
|
+
set maxLength(value) {
|
|
50
|
+
this._maxLength = value;
|
|
51
|
+
/* istanbul ignore else */
|
|
52
|
+
if (this.textEl) {
|
|
53
|
+
this.setup(this.expandedText);
|
|
54
|
+
}
|
|
55
|
+
}
|
|
56
|
+
get maxLength() {
|
|
57
|
+
return this._maxLength;
|
|
58
|
+
}
|
|
59
|
+
/**
|
|
60
|
+
* Specifies the text to truncate.
|
|
61
|
+
*/
|
|
62
|
+
set text(value) {
|
|
63
|
+
/* istanbul ignore else */
|
|
64
|
+
if (this.textEl) {
|
|
65
|
+
this.setup(value);
|
|
66
|
+
}
|
|
67
|
+
}
|
|
68
|
+
textExpand() {
|
|
69
|
+
if (this.isModal) {
|
|
70
|
+
// Modal View
|
|
71
|
+
/* istanbul ignore else */
|
|
72
|
+
/* sanity check */
|
|
73
|
+
if (!this.isExpanded) {
|
|
74
|
+
this.modalService.open(SkyTextExpandModalComponent, [
|
|
75
|
+
{
|
|
76
|
+
provide: SkyTextExpandModalContext,
|
|
77
|
+
useValue: {
|
|
78
|
+
header: this.expandModalTitle,
|
|
79
|
+
text: this.expandedText,
|
|
80
|
+
},
|
|
81
|
+
},
|
|
82
|
+
]);
|
|
83
|
+
}
|
|
84
|
+
}
|
|
85
|
+
else {
|
|
86
|
+
// Normal View
|
|
87
|
+
if (!this.isExpanded) {
|
|
88
|
+
this.setContainerMaxHeight();
|
|
89
|
+
setTimeout(() => {
|
|
90
|
+
this.isExpanded = true;
|
|
91
|
+
this.animateText(this.collapsedText, this.expandedText, true);
|
|
92
|
+
}, 10);
|
|
93
|
+
}
|
|
94
|
+
else {
|
|
95
|
+
this.setContainerMaxHeight();
|
|
96
|
+
setTimeout(() => {
|
|
97
|
+
this.isExpanded = false;
|
|
98
|
+
this.animateText(this.expandedText, this.collapsedText, false);
|
|
99
|
+
}, 10);
|
|
100
|
+
}
|
|
101
|
+
}
|
|
102
|
+
}
|
|
103
|
+
animationEnd() {
|
|
104
|
+
// Ensure the correct text is displayed
|
|
105
|
+
this.textExpandAdapter.setText(this.textEl, this.textToShow);
|
|
106
|
+
// Set height back to auto so the browser can change the height as needed with window changes
|
|
107
|
+
this.textExpandAdapter.setContainerHeight(this.containerEl, undefined);
|
|
108
|
+
}
|
|
109
|
+
ngAfterContentInit() {
|
|
110
|
+
observableForkJoin([
|
|
111
|
+
this.resources.getString('skyux_text_expand_see_more'),
|
|
112
|
+
this.resources.getString('skyux_text_expand_see_less'),
|
|
113
|
+
])
|
|
114
|
+
.pipe(take(1))
|
|
115
|
+
.subscribe((resources) => {
|
|
116
|
+
this.seeMoreText = resources[0];
|
|
117
|
+
this.seeLessText = resources[1];
|
|
118
|
+
this.setup(this.expandedText);
|
|
119
|
+
/* istanbul ignore else */
|
|
120
|
+
if (!this.expandModalTitle) {
|
|
121
|
+
this.resources
|
|
122
|
+
.getString('skyux_text_expand_modal_title')
|
|
123
|
+
.pipe(take(1))
|
|
124
|
+
.subscribe((resource) => {
|
|
125
|
+
this.expandModalTitle = resource;
|
|
126
|
+
});
|
|
127
|
+
}
|
|
128
|
+
});
|
|
129
|
+
}
|
|
130
|
+
setContainerMaxHeight() {
|
|
131
|
+
// ensure everything is reset
|
|
132
|
+
this.animationEnd();
|
|
133
|
+
/* Before animation is kicked off, ensure that a maxHeight exists */
|
|
134
|
+
/* Once we have support for angular v4 animations with parameters we can use that instead */
|
|
135
|
+
const currentHeight = this.textExpandAdapter.getContainerHeight(this.containerEl);
|
|
136
|
+
this.textExpandAdapter.setContainerHeight(this.containerEl, `${currentHeight}px`);
|
|
137
|
+
}
|
|
138
|
+
setup(value) {
|
|
139
|
+
if (value) {
|
|
140
|
+
this.newlineCount = this.getNewlineCount(value);
|
|
141
|
+
this.collapsedText = this.getTruncatedText(value, this.maxLength);
|
|
142
|
+
this.expandedText = value;
|
|
143
|
+
if (this.collapsedText !== value) {
|
|
144
|
+
this.buttonText = this.seeMoreText;
|
|
145
|
+
this.isExpanded = false;
|
|
146
|
+
this.expandable = true;
|
|
147
|
+
this.isModal =
|
|
148
|
+
this.newlineCount > this.maxExpandedNewlines ||
|
|
149
|
+
this.expandedText.length > this.maxExpandedLength;
|
|
150
|
+
}
|
|
151
|
+
else {
|
|
152
|
+
this.expandable = false;
|
|
153
|
+
}
|
|
154
|
+
this.textToShow = this.collapsedText;
|
|
155
|
+
}
|
|
156
|
+
else {
|
|
157
|
+
this.textToShow = '';
|
|
158
|
+
this.expandable = false;
|
|
159
|
+
}
|
|
160
|
+
this.textExpandAdapter.setText(this.textEl, this.textToShow);
|
|
161
|
+
}
|
|
162
|
+
getNewlineCount(value) {
|
|
163
|
+
const matches = value.match(/\n/gi);
|
|
164
|
+
if (matches) {
|
|
165
|
+
return matches.length;
|
|
166
|
+
}
|
|
167
|
+
return 0;
|
|
168
|
+
}
|
|
169
|
+
getTruncatedText(value, length) {
|
|
170
|
+
let i;
|
|
171
|
+
if (this.truncateNewlines) {
|
|
172
|
+
value = value.replace(/\n+/gi, ' ');
|
|
173
|
+
}
|
|
174
|
+
// Jump ahead one character and see if it's a space, and if it isn't,
|
|
175
|
+
// back up to the first space and break there so a word doesn't get cut
|
|
176
|
+
// in half.
|
|
177
|
+
if (length < value.length) {
|
|
178
|
+
for (i = length; i > length - 10; i--) {
|
|
179
|
+
if (/\s/.test(value.charAt(i))) {
|
|
180
|
+
length = i;
|
|
181
|
+
break;
|
|
182
|
+
}
|
|
183
|
+
}
|
|
184
|
+
}
|
|
185
|
+
return value.substr(0, length);
|
|
186
|
+
}
|
|
187
|
+
animateText(previousText, newText, expanding) {
|
|
188
|
+
const adapter = this.textExpandAdapter;
|
|
189
|
+
const container = this.containerEl;
|
|
190
|
+
// Reset max height
|
|
191
|
+
adapter.setContainerHeight(container, undefined);
|
|
192
|
+
// Measure the current height so we can animate from it.
|
|
193
|
+
const currentHeight = adapter.getContainerHeight(container);
|
|
194
|
+
this.textToShow = newText;
|
|
195
|
+
adapter.setText(this.textEl, this.textToShow);
|
|
196
|
+
this.buttonText = expanding ? this.seeLessText : this.seeMoreText;
|
|
197
|
+
// Measure the new height so we can animate to it.
|
|
198
|
+
const newHeight = adapter.getContainerHeight(container);
|
|
199
|
+
/* istanbul ignore if */
|
|
200
|
+
if (newHeight < currentHeight) {
|
|
201
|
+
// The new text is smaller than the old text, so put the old text back before doing
|
|
202
|
+
// the collapse animation to avoid showing a big chunk of whitespace.
|
|
203
|
+
adapter.setText(this.textEl, previousText);
|
|
204
|
+
}
|
|
205
|
+
adapter.setContainerHeight(container, `${currentHeight}px`);
|
|
206
|
+
// This timeout is necessary due to the browser needing to pick up the non-auto height being set
|
|
207
|
+
// in order to do the transtion in height correctly. Without it the transition does not fire.
|
|
208
|
+
setTimeout(() => {
|
|
209
|
+
adapter.setContainerHeight(container, `${newHeight}px`);
|
|
210
|
+
/* This resets values if the transition does not get kicked off */
|
|
211
|
+
setTimeout(() => {
|
|
212
|
+
this.animationEnd();
|
|
213
|
+
}, 500);
|
|
214
|
+
}, 10);
|
|
215
|
+
}
|
|
216
|
+
}
|
|
217
|
+
SkyTextExpandComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.2.7", ngImport: i0, type: SkyTextExpandComponent, deps: [{ token: i1.SkyLibResourcesService }, { token: i2.SkyModalService }, { token: i3.SkyTextExpandAdapterService }], target: i0.ɵɵFactoryTarget.Component });
|
|
218
|
+
SkyTextExpandComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.2.7", type: SkyTextExpandComponent, selector: "sky-text-expand", inputs: { expandModalTitle: "expandModalTitle", maxExpandedLength: "maxExpandedLength", maxExpandedNewlines: "maxExpandedNewlines", maxLength: "maxLength", text: "text", truncateNewlines: "truncateNewlines" }, providers: [SkyTextExpandAdapterService], viewQueries: [{ propertyName: "containerEl", first: true, predicate: ["container"], descendants: true, read: ElementRef, static: true }, { propertyName: "textEl", first: true, predicate: ["text"], descendants: true, read: ElementRef, static: true }], ngImport: i0, template: "<div\n class=\"sky-text-expand-container\"\n (transitionend)=\"animationEnd()\"\n #container\n>\n <span class=\"sky-text-expand-text\" [id]=\"contentSectionId\" #text></span>\n <span class=\"sky-text-expand-ellipsis\" *ngIf=\"!isExpanded && expandable\"\n >...\n </span>\n <button\n *ngIf=\"expandable\"\n type=\"button\"\n class=\"sky-btn sky-btn-link-inline sky-text-expand-see-more\"\n [attr.aria-expanded]=\"isModal ? undefined : isExpanded\"\n [attr.aria-controls]=\"isModal ? undefined : contentSectionId\"\n [attr.aria-haspopup]=\"isModal ? 'dialog' : undefined\"\n (click)=\"textExpand()\"\n >\n {{ buttonText }}\n </button>\n</div>\n", styles: [".sky-text-expand-ellipsis{letter-spacing:2px;white-space:nowrap}.sky-text-expand-space{white-space:normal}.sky-text-expand-see-more{white-space:nowrap;margin-left:5px}.sky-text-expand-text{margin:0;white-space:pre-wrap}.sky-text-expand-container{word-break:break-word;word-wrap:break-word;overflow:hidden;height:auto;transition:max-height .25s}.sky-text-expand-modal-content{white-space:pre-line;word-wrap:break-word}\n"], directives: [{ type: i4.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }] });
|
|
219
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.2.7", ngImport: i0, type: SkyTextExpandComponent, decorators: [{
|
|
220
|
+
type: Component,
|
|
221
|
+
args: [{ selector: 'sky-text-expand', providers: [SkyTextExpandAdapterService], template: "<div\n class=\"sky-text-expand-container\"\n (transitionend)=\"animationEnd()\"\n #container\n>\n <span class=\"sky-text-expand-text\" [id]=\"contentSectionId\" #text></span>\n <span class=\"sky-text-expand-ellipsis\" *ngIf=\"!isExpanded && expandable\"\n >...\n </span>\n <button\n *ngIf=\"expandable\"\n type=\"button\"\n class=\"sky-btn sky-btn-link-inline sky-text-expand-see-more\"\n [attr.aria-expanded]=\"isModal ? undefined : isExpanded\"\n [attr.aria-controls]=\"isModal ? undefined : contentSectionId\"\n [attr.aria-haspopup]=\"isModal ? 'dialog' : undefined\"\n (click)=\"textExpand()\"\n >\n {{ buttonText }}\n </button>\n</div>\n", styles: [".sky-text-expand-ellipsis{letter-spacing:2px;white-space:nowrap}.sky-text-expand-space{white-space:normal}.sky-text-expand-see-more{white-space:nowrap;margin-left:5px}.sky-text-expand-text{margin:0;white-space:pre-wrap}.sky-text-expand-container{word-break:break-word;word-wrap:break-word;overflow:hidden;height:auto;transition:max-height .25s}.sky-text-expand-modal-content{white-space:pre-line;word-wrap:break-word}\n"] }]
|
|
222
|
+
}], ctorParameters: function () { return [{ type: i1.SkyLibResourcesService }, { type: i2.SkyModalService }, { type: i3.SkyTextExpandAdapterService }]; }, propDecorators: { expandModalTitle: [{
|
|
223
|
+
type: Input
|
|
224
|
+
}], maxExpandedLength: [{
|
|
225
|
+
type: Input
|
|
226
|
+
}], maxExpandedNewlines: [{
|
|
227
|
+
type: Input
|
|
228
|
+
}], maxLength: [{
|
|
229
|
+
type: Input
|
|
230
|
+
}], text: [{
|
|
231
|
+
type: Input
|
|
232
|
+
}], truncateNewlines: [{
|
|
233
|
+
type: Input
|
|
234
|
+
}], containerEl: [{
|
|
235
|
+
type: ViewChild,
|
|
236
|
+
args: ['container', {
|
|
237
|
+
read: ElementRef,
|
|
238
|
+
static: true,
|
|
239
|
+
}]
|
|
240
|
+
}], textEl: [{
|
|
241
|
+
type: ViewChild,
|
|
242
|
+
args: ['text', {
|
|
243
|
+
read: ElementRef,
|
|
244
|
+
static: true,
|
|
245
|
+
}]
|
|
246
|
+
}] } });
|
|
247
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGV4dC1leHBhbmQuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vbGlicy9jb21wb25lbnRzL2xheW91dC9zcmMvbGliL21vZHVsZXMvdGV4dC1leHBhbmQvdGV4dC1leHBhbmQuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vbGlicy9jb21wb25lbnRzL2xheW91dC9zcmMvbGliL21vZHVsZXMvdGV4dC1leHBhbmQvdGV4dC1leHBhbmQuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUVMLFNBQVMsRUFDVCxVQUFVLEVBQ1YsS0FBSyxFQUNMLFNBQVMsR0FDVixNQUFNLGVBQWUsQ0FBQztBQUN2QixPQUFPLEVBQUUsc0JBQXNCLEVBQUUsTUFBTSxhQUFhLENBQUM7QUFDckQsT0FBTyxFQUFFLGVBQWUsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUVoRCxPQUFPLEVBQUUsUUFBUSxJQUFJLGtCQUFrQixFQUFFLE1BQU0sTUFBTSxDQUFDO0FBQ3RELE9BQU8sRUFBRSxJQUFJLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUV0QyxPQUFPLEVBQUUsMkJBQTJCLEVBQUUsTUFBTSwrQkFBK0IsQ0FBQztBQUM1RSxPQUFPLEVBQUUseUJBQXlCLEVBQUUsTUFBTSw2QkFBNkIsQ0FBQztBQUN4RSxPQUFPLEVBQUUsMkJBQTJCLEVBQUUsTUFBTSwrQkFBK0IsQ0FBQzs7Ozs7O0FBRTVFOztHQUVHO0FBQ0gsSUFBSSxNQUFNLEdBQUcsQ0FBQyxDQUFDO0FBUWYsTUFBTSxPQUFPLHNCQUFzQjtJQWlHakMsWUFDVSxTQUFpQyxFQUNqQyxZQUE2QixFQUM3QixpQkFBOEM7UUFGOUMsY0FBUyxHQUFULFNBQVMsQ0FBd0I7UUFDakMsaUJBQVksR0FBWixZQUFZLENBQWlCO1FBQzdCLHNCQUFpQixHQUFqQixpQkFBaUIsQ0FBNkI7UUE1RnhEOzs7O1dB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QUFFLFVBQVU7d0JBQ2hCLE1BQU0sRUFBRSxJQUFJO3FCQUNiIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtcbiAgQWZ0ZXJDb250ZW50SW5pdCxcbiAgQ29tcG9uZW50LFxuICBFbGVtZW50UmVmLFxuICBJbnB1dCxcbiAgVmlld0NoaWxkLFxufSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IFNreUxpYlJlc291cmNlc1NlcnZpY2UgfSBmcm9tICdAc2t5dXgvaTE4bic7XG5pbXBvcnQgeyBTa3lNb2RhbFNlcnZpY2UgfSBmcm9tICdAc2t5dXgvbW9kYWxzJztcblxuaW1wb3J0IHsgZm9ya0pvaW4gYXMgb2JzZXJ2YWJsZUZvcmtKb2luIH0gZnJvbSAncnhqcyc7XG5pbXBvcnQgeyB0YWtlIH0gZnJvbSAncnhqcy9vcGVyYXRvcnMnO1xuXG5pbXBvcnQgeyBTa3lUZXh0RXhwYW5kQWRhcHRlclNlcnZpY2UgfSBmcm9tICcuL3RleHQtZXhwYW5kLWFkYXB0ZXIuc2VydmljZSc7XG5pbXBvcnQgeyBTa3lUZXh0RXhwYW5kTW9kYWxDb250ZXh0IH0gZnJvbSAnLi90ZXh0LWV4cGFuZC1tb2RhbC1jb250ZXh0JztcbmltcG9ydCB7IFNreVRleHRFeHBhbmRNb2RhbENvbXBvbmVudCB9IGZyb20gJy4vdGV4dC1leHBhbmQtbW9kYWwuY29tcG9uZW50JztcblxuLyoqXG4gKiBBdXRvLWluY3JlbWVudGluZyBpbnRlZ2VyIHVzZWQgdG8gZ2VuZXJhdGUgdW5pcXVlIGlkcyBmb3IgdGV4dCBleHBhbmQgY29tcG9uZW50cy5cbiAqL1xubGV0IG5leHRJZCA9IDA7XG5cbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ3NreS10ZXh0LWV4cGFuZCcsXG4gIHRlbXBsYXRlVXJsOiAnLi90ZXh0LWV4cGFuZC5jb21wb25lbnQuaHRtbCcsXG4gIHN0eWxlVXJsczogWycuL3RleHQtZXhwYW5kLmNvbXBvbmVudC5zY3NzJ10sXG4gIHByb3ZpZGVyczogW1NreVRleHRFeHBhbmRBZGFwdGVyU2VydmljZV0sXG59KVxuZXhwb3J0IGNsYXNzIFNreVRleHRFeHBhbmRDb21wb25lbnQgaW1wbGVtZW50cyBBZnRlckNvbnRlbnRJbml0IHtcbiAgLyoqXG4gICAqIFNwZWNpZmllcyBhIHRpdGxlIHRvIGRpc3BsYXkgd2hlbiB0aGUgY29tcG9uZW50IGV4cGFuZHMgdGhlIGZ1bGwgdGV4dCBpbiBhIG1vZGFsLlxuICAgKiBAZGVmYXVsdCBcIkV4cGFuZGVkIHZpZXdcIlxuICAgKi9cbiAgQElucHV0KClcbiAgcHVibGljIGV4cGFuZE1vZGFsVGl0bGU6IHN0cmluZztcblxuICAvKipcbiAgICogU3BlY2lmaWVzIHRoZSBtYXhpbXVtIG51bWJlciBvZiB0ZXh0IGNoYXJhY3RlcnMgdG8gZGlzcGxheSBpbmxpbmUgd2hlbiB1c2VycyBzZWxlY3QgdGhlIGxpbmtcbiAgICogdG8gZXhwYW5kIHRoZSBmdWxsIHRleHQuIElmIHRoZSB0ZXh0IGV4Y2VlZHMgdGhpcyBsaW1pdCwgdGhlbiB0aGUgY29tcG9uZW50IGV4cGFuZHNcbiAgICogdGhlIGZ1bGwgdGV4dCBpbiBhIG1vZGFsIGluc3RlYWQuXG4gICAqL1xuICBASW5wdXQoKVxuICBwdWJsaWMgbWF4RXhwYW5kZWRMZW5ndGggPSA2MDA7XG5cbiAgLyoqXG4gICAqIFNwZWNpZmllcyB0aGUgbWF4aW11bSBudW1iZXIgb2YgbmV3bGluZSBjaGFyYWN0ZXJzIHRvIGRpc3BsYXkgaW5saW5lIHdoZW4gdXNlcnMgc2VsZWN0XG4gICAqIHRoZSBsaW5rIHRvIGV4cGFuZCB0aGUgZnVsbCB0ZXh0LiBJZiB0aGUgdGV4dCBleGNlZWRzIHRoaXMgbGltaXQsIHRoZW5cbiAgICogdGhlIGNvbXBvbmVudCBleHBhbmRzIHRoZSBmdWxsIHRleHQgaW4gYSBtb2RhbCB2aWV3IGluc3RlYWQuXG4gICAqL1xuICBASW5wdXQoKVxuICBwdWJsaWMgbWF4RXhwYW5kZWROZXdsaW5lcyA9IDI7XG5cbiAgLyoqXG4gICAqIFNwZWNpZmllcyB0aGUgbnVtYmVyIG9mIHRleHQgY2hhcmFjdGVycyB0byBkaXNwbGF5IGJlZm9yZSB0cnVuY2F0aW5nIHRoZSB0ZXh0LlxuICAgKiBUbyBhdm9pZCB0cnVuY2F0aW5nIHRleHQgaW4gdGhlIG1pZGRsZSBvZiBhIHdvcmQsIHRoZSBjb21wb25lbnQgbG9va3MgZm9yIGEgc3BhY2VcbiAgICogaW4gdGhlIDEwIGNoYXJhY3RlcnMgYmVmb3JlIHRoZSBsYXN0IGNoYXJhY3Rlci5cbiAgICogQGRlZmF1bHQgMjAwXG4gICAqL1xuICBASW5wdXQoKVxuICBwdWJsaWMgc2V0IG1heExlbmd0aCh2YWx1ZTogbnVtYmVyKSB7XG4gICAgdGhpcy5fbWF4TGVuZ3RoID0gdmFsdWU7XG5cbiAgICAvKiBpc3RhbmJ1bCBpZ25vcmUgZWxzZSAqL1xuICAgIGlmICh0aGlzLnRleHRFbCkge1xuICAgICAgdGhpcy5zZXR1cCh0aGlzLmV4cGFuZGVkVGV4dCk7XG4gICAgfVxuICB9XG5cbiAgcHVibGljIGdldCBtYXhMZW5ndGgoKTogbnVtYmVyIHtcbiAgICByZXR1cm4gdGhpcy5fbWF4TGVuZ3RoO1xuICB9XG5cbiAgLyoqXG4gICAqIFNwZWNpZmllcyB0aGUgdGV4dCB0byB0cnVuY2F0ZS5cbiAgICovXG4gIEBJbnB1dCgpXG4gIHB1YmxpYyBzZXQgdGV4dCh2YWx1ZTogc3RyaW5nKSB7XG4gICAgLyogaXN0YW5idWwgaWdub3JlIGVsc2UgKi9cbiAgICBpZiAodGhpcy50ZXh0RWwpIHtcbiAgICAgIHRoaXMuc2V0dXAodmFsdWUpO1xuICAgIH1cbiAgfVxuXG4gIC8qKlxuICAgKiBJbmRpY2F0ZXMgd2hldGhlciB0byByZXBsYWNlIG5ld2xpbmUgY2hhcmFjdGVycyBpbiB0cnVuY2F0ZWQgdGV4dCB3aXRoIHNwYWNlcy5cbiAgICovXG4gIEBJbnB1dCgpXG4gIHB1YmxpYyB0cnVuY2F0ZU5ld2xpbmVzID0gdHJ1ZTtcblxuICBwdWJsaWMgYnV0dG9uVGV4dDogc3RyaW5nO1xuXG4gIHB1YmxpYyBjb250ZW50U2VjdGlvbklkID0gYHNreS10ZXh0LWV4cGFuZC1jb250ZW50LSR7KytuZXh0SWR9YDtcblxuICBwdWJsaWMgZXhwYW5kYWJsZTogYm9vbGVhbjtcblxuICBwdWJsaWMgaXNFeHBhbmRlZCA9IGZhbHNlO1xuXG4gIHB1YmxpYyBpc01vZGFsOiBib29sZWFuO1xuXG4gIEBWaWV3Q2hpbGQoJ2NvbnRhaW5lcicsIHtcbiAgICByZWFkOiBFbGVtZW50UmVmLFxuICAgIHN0YXRpYzogdHJ1ZSxcbiAgfSlcbiAgcHJpdmF0ZSBjb250YWluZXJFbDogRWxlbWVudFJlZjtcblxuICBAVmlld0NoaWxkKCd0ZXh0Jywge1xuICAgIHJlYWQ6IEVsZW1lbnRSZWYsXG4gICAgc3RhdGljOiB0cnVlLFxuICB9KVxuICBwcml2YXRlIHRleHRFbDogRWxlbWVudFJlZjtcblxuICBwcml2YXRlIGNvbGxhcHNlZFRleHQ6IHN0cmluZztcblxuICBwcml2YXRlIGV4cGFuZGVkVGV4dDogc3RyaW5nO1xuXG4gIHByaXZhdGUgbmV3bGluZUNvdW50OiBudW1iZXI7XG5cbiAgcHJpdmF0ZSBzZWVNb3JlVGV4dDogc3RyaW5nO1xuXG4gIHByaXZhdGUgc2VlTGVzc1RleHQ6IHN0cmluZztcblxuICBwcml2YXRlIHRleHRUb1Nob3c6IHN0cmluZztcblxuICBwcml2YXRlIF9tYXhMZW5ndGggPSAyMDA7XG5cbiAgY29uc3RydWN0b3IoXG4gICAgcHJpdmF0ZSByZXNvdXJjZXM6IFNreUxpYlJlc291cmNlc1NlcnZpY2UsXG4gICAgcHJpdmF0ZSBtb2RhbFNlcnZpY2U6IFNreU1vZGFsU2VydmljZSxcbiAgICBwcml2YXRlIHRleHRFeHBhbmRBZGFwdGVyOiBTa3lUZXh0RXhwYW5kQWRhcHRlclNlcnZpY2VcbiAgKSB7fVxuXG4gIHB1YmxpYyB0ZXh0RXhwYW5kKCk6IHZvaWQge1xuICAgIGlmICh0aGlzLmlzTW9kYWwpIHtcbiAgICAgIC8vIE1vZGFsIFZpZXdcbiAgICAgIC8qIGlzdGFuYnVsIGlnbm9yZSBlbHNlICovXG4gICAgICAvKiBzYW5pdHkgY2hlY2sgKi9cbiAgICAgIGlmICghdGhpcy5pc0V4cGFuZGVkKSB7XG4gICAgICAgIHRoaXMubW9kYWxTZXJ2aWNlLm9wZW4oU2t5VGV4dEV4cGFuZE1vZGFsQ29tcG9uZW50LCBbXG4gICAgICAgICAge1xuICAgICAgICAgICAgcHJvdmlkZTogU2t5VGV4dEV4cGFuZE1vZGFsQ29udGV4dCxcbiAgICAgICAgICAgIHVzZVZhbHVlOiB7XG4gICAgICAgICAgICAgIGhlYWRlcjogdGhpcy5leHBhbmRNb2RhbFRpdGxlLFxuICAgICAgICAgICAgICB0ZXh0OiB0aGlzLmV4cGFuZGVkVGV4dCxcbiAgICAgICAgICAgIH0sXG4gICAgICAgICAgfSxcbiAgICAgICAgXSk7XG4gICAgICB9XG4gICAgfSBlbHNlIHtcbiAgICAgIC8vIE5vcm1hbCBWaWV3XG4gICAgICBpZiAoIXRoaXMuaXNFeHBhbmRlZCkge1xuICAgICAgICB0aGlzLnNldENvbnRhaW5lck1heEhlaWdodCgpO1xuICAgICAgICBzZXRUaW1lb3V0KCgpID0+IHtcbiAgICAgICAgICB0aGlzLmlzRXhwYW5kZWQgPSB0cnVlO1xuICAgICAgICAgIHRoaXMuYW5pbWF0ZVRleHQodGhpcy5jb2xsYXBzZWRUZXh0LCB0aGlzLmV4cGFuZGVkVGV4dCwgdHJ1ZSk7XG4gICAgICAgIH0sIDEwKTtcbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIHRoaXMuc2V0Q29udGFpbmVyTWF4SGVpZ2h0KCk7XG4gICAgICAgIHNldFRpbWVvdXQoKCkgPT4ge1xuICAgICAgICAgIHRoaXMuaXNFeHBhbmRlZCA9IGZhbHNlO1xuICAgICAgICAgIHRoaXMuYW5pbWF0ZVRleHQodGhpcy5leHBhbmRlZFRleHQsIHRoaXMuY29sbGFwc2VkVGV4dCwgZmFsc2UpO1xuICAgICAgICB9LCAxMCk7XG4gICAgICB9XG4gICAgfVxuICB9XG5cbiAgcHVibGljIGFuaW1hdGlvbkVuZCgpOiB2b2lkIHtcbiAgICAvLyBFbnN1cmUgdGhlIGNvcnJlY3QgdGV4dCBpcyBkaXNwbGF5ZWRcbiAgICB0aGlzLnRleHRFeHBhbmRBZGFwdGVyLnNldFRleHQodGhpcy50ZXh0RWwsIHRoaXMudGV4dFRvU2hvdyk7XG4gICAgLy8gU2V0IGhlaWdodCBiYWNrIHRvIGF1dG8gc28gdGhlIGJyb3dzZXIgY2FuIGNoYW5nZSB0aGUgaGVpZ2h0IGFzIG5lZWRlZCB3aXRoIHdpbmRvdyBjaGFuZ2VzXG4gICAgdGhpcy50ZXh0RXhwYW5kQWRhcHRlci5zZXRDb250YWluZXJIZWlnaHQodGhpcy5jb250YWluZXJFbCwgdW5kZWZpbmVkKTtcbiAgfVxuXG4gIHB1YmxpYyBuZ0FmdGVyQ29udGVudEluaXQoKTogdm9pZCB7XG4gICAgb2JzZXJ2YWJsZUZvcmtKb2luKFtcbiAgICAgIHRoaXMucmVzb3VyY2VzLmdldFN0cmluZygnc2t5dXhfdGV4dF9leHBhbmRfc2VlX21vcmUnKSxcbiAgICAgIHRoaXMucmVzb3VyY2VzLmdldFN0cmluZygnc2t5dXhfdGV4dF9leHBhbmRfc2VlX2xlc3MnKSxcbiAgICBdKVxuICAgICAgLnBpcGUodGFrZSgxKSlcbiAgICAgIC5zdWJzY3JpYmUoKHJlc291cmNlcykgPT4ge1xuICAgICAgICB0aGlzLnNlZU1vcmVUZXh0ID0gcmVzb3VyY2VzWzBdO1xuICAgICAgICB0aGlzLnNlZUxlc3NUZXh0ID0gcmVzb3VyY2VzWzFdO1xuICAgICAgICB0aGlzLnNldHVwKHRoaXMuZXhwYW5kZWRUZXh0KTtcblxuICAgICAgICAvKiBpc3RhbmJ1bCBpZ25vcmUgZWxzZSAqL1xuICAgICAgICBpZiAoIXRoaXMuZXhwYW5kTW9kYWxUaXRsZSkge1xuICAgICAgICAgIHRoaXMucmVzb3VyY2VzXG4gICAgICAgICAgICAuZ2V0U3RyaW5nKCdza3l1eF90ZXh0X2V4cGFuZF9tb2RhbF90aXRsZScpXG4gICAgICAgICAgICAucGlwZSh0YWtlKDEpKVxuICAgICAgICAgICAgLnN1YnNjcmliZSgocmVzb3VyY2UpID0+IHtcbiAgICAgICAgICAgICAgdGhpcy5leHBhbmRNb2RhbFRpdGxlID0gcmVzb3VyY2U7XG4gICAgICAgICAgICB9KTtcbiAgICAgICAgfVxuICAgICAgfSk7XG4gIH1cblxuICBwcml2YXRlIHNldENvbnRhaW5lck1heEhlaWdodCgpOiB2b2lkIHtcbiAgICAvLyBlbnN1cmUgZXZlcnl0aGluZyBpcyByZXNldFxuICAgIHRoaXMuYW5pbWF0aW9uRW5kKCk7XG4gICAgLyogQmVmb3JlIGFuaW1hdGlvbiBpcyBraWNrZWQgb2ZmLCBlbnN1cmUgdGhhdCBhIG1heEhlaWdodCBleGlzdHMgKi9cbiAgICAvKiBPbmNlIHdlIGhhdmUgc3VwcG9ydCBmb3IgYW5ndWxhciB2NCBhbmltYXRpb25zIHdpdGggcGFyYW1ldGVycyB3ZSBjYW4gdXNlIHRoYXQgaW5zdGVhZCAqL1xuICAgIGNvbnN0IGN1cnJlbnRIZWlnaHQgPSB0aGlzLnRleHRFeHBhbmRBZGFwdGVyLmdldENvbnRhaW5lckhlaWdodChcbiAgICAgIHRoaXMuY29udGFpbmVyRWxcbiAgICApO1xuICAgIHRoaXMudGV4dEV4cGFuZEFkYXB0ZXIuc2V0Q29udGFpbmVySGVpZ2h0KFxuICAgICAgdGhpcy5jb250YWluZXJFbCxcbiAgICAgIGAke2N1cnJlbnRIZWlnaHR9cHhgXG4gICAgKTtcbiAgfVxuXG4gIHByaXZhdGUgc2V0dXAodmFsdWU6IHN0cmluZyk6IHZvaWQge1xuICAgIGlmICh2YWx1ZSkge1xuICAgICAgdGhpcy5uZXdsaW5lQ291bnQgPSB0aGlzLmdldE5ld2xpbmVDb3VudCh2YWx1ZSk7XG4gICAgICB0aGlzLmNvbGxhcHNlZFRleHQgPSB0aGlzLmdldFRydW5jYXRlZFRleHQodmFsdWUsIHRoaXMubWF4TGVuZ3RoKTtcbiAgICAgIHRoaXMuZXhwYW5kZWRUZXh0ID0gdmFsdWU7XG4gICAgICBpZiAodGhpcy5jb2xsYXBzZWRUZXh0ICE9PSB2YWx1ZSkge1xuICAgICAgICB0aGlzLmJ1dHRvblRleHQgPSB0aGlzLnNlZU1vcmVUZXh0O1xuICAgICAgICB0aGlzLmlzRXhwYW5kZWQgPSBmYWxzZTtcbiAgICAgICAgdGhpcy5leHBhbmRhYmxlID0gdHJ1ZTtcbiAgICAgICAgdGhpcy5pc01vZGFsID1cbiAgICAgICAgICB0aGlzLm5ld2xpbmVDb3VudCA+IHRoaXMubWF4RXhwYW5kZWROZXdsaW5lcyB8fFxuICAgICAgICAgIHRoaXMuZXhwYW5kZWRUZXh0Lmxlbmd0aCA+IHRoaXMubWF4RXhwYW5kZWRMZW5ndGg7XG4gICAgICB9IGVsc2Uge1xuICAgICAgICB0aGlzLmV4cGFuZGFibGUgPSBmYWxzZTtcbiAgICAgIH1cbiAgICAgIHRoaXMudGV4dFRvU2hvdyA9IHRoaXMuY29sbGFwc2VkVGV4dDtcbiAgICB9IGVsc2Uge1xuICAgICAgdGhpcy50ZXh0VG9TaG93ID0gJyc7XG4gICAgICB0aGlzLmV4cGFuZGFibGUgPSBmYWxzZTtcbiAgICB9XG4gICAgdGhpcy50ZXh0RXhwYW5kQWRhcHRlci5zZXRUZXh0KHRoaXMudGV4dEVsLCB0aGlzLnRleHRUb1Nob3cpO1xuICB9XG5cbiAgcHJpdmF0ZSBnZXROZXdsaW5lQ291bnQodmFsdWU6IHN0cmluZyk6IG51bWJlciB7XG4gICAgY29uc3QgbWF0Y2hlcyA9IHZhbHVlLm1hdGNoKC9cXG4vZ2kpO1xuXG4gICAgaWYgKG1hdGNoZXMpIHtcbiAgICAgIHJldHVybiBtYXRjaGVzLmxlbmd0aDtcbiAgICB9XG5cbiAgICByZXR1cm4gMDtcbiAgfVxuXG4gIHByaXZhdGUgZ2V0VHJ1bmNhdGVkVGV4dCh2YWx1ZTogc3RyaW5nLCBsZW5ndGg6IG51bWJlcik6IHN0cmluZyB7XG4gICAgbGV0IGk6IG51bWJlcjtcbiAgICBpZiAodGhpcy50cnVuY2F0ZU5ld2xpbmVzKSB7XG4gICAgICB2YWx1ZSA9IHZhbHVlLnJlcGxhY2UoL1xcbisvZ2ksICcgJyk7XG4gICAgfVxuICAgIC8vIEp1bXAgYWhlYWQgb25lIGNoYXJhY3RlciBhbmQgc2VlIGlmIGl0J3MgYSBzcGFjZSwgYW5kIGlmIGl0IGlzbid0LFxuICAgIC8vIGJhY2sgdXAgdG8gdGhlIGZpcnN0IHNwYWNlIGFuZCBicmVhayB0aGVyZSBzbyBhIHdvcmQgZG9lc24ndCBnZXQgY3V0XG4gICAgLy8gaW4gaGFsZi5cbiAgICBpZiAobGVuZ3RoIDwgdmFsdWUubGVuZ3RoKSB7XG4gICAgICBmb3IgKGkgPSBsZW5ndGg7IGkgPiBsZW5ndGggLSAxMDsgaS0tKSB7XG4gICAgICAgIGlmICgvXFxzLy50ZXN0KHZhbHVlLmNoYXJBdChpKSkpIHtcbiAgICAgICAgICBsZW5ndGggPSBpO1xuICAgICAgICAgIGJyZWFrO1xuICAgICAgICB9XG4gICAgICB9XG4gICAgfVxuICAgIHJldHVybiB2YWx1ZS5zdWJzdHIoMCwgbGVuZ3RoKTtcbiAgfVxuXG4gIHByaXZhdGUgYW5pbWF0ZVRleHQoXG4gICAgcHJldmlvdXNUZXh0OiBzdHJpbmcsXG4gICAgbmV3VGV4dDogc3RyaW5nLFxuICAgIGV4cGFuZGluZzogYm9vbGVhblxuICApOiB2b2lkIHtcbiAgICBjb25zdCBhZGFwdGVyID0gdGhpcy50ZXh0RXhwYW5kQWRhcHRlcjtcbiAgICBjb25zdCBjb250YWluZXIgPSB0aGlzLmNvbnRhaW5lckVsO1xuICAgIC8vIFJlc2V0IG1heCBoZWlnaHRcbiAgICBhZGFwdGVyLnNldENvbnRhaW5lckhlaWdodChjb250YWluZXIsIHVuZGVmaW5lZCk7XG4gICAgLy8gTWVhc3VyZSB0aGUgY3VycmVudCBoZWlnaHQgc28gd2UgY2FuIGFuaW1hdGUgZnJvbSBpdC5cbiAgICBjb25zdCBjdXJyZW50SGVpZ2h0ID0gYWRhcHRlci5nZXRDb250YWluZXJIZWlnaHQoY29udGFpbmVyKTtcbiAgICB0aGlzLnRleHRUb1Nob3cgPSBuZXdUZXh0O1xuICAgIGFkYXB0ZXIuc2V0VGV4dCh0aGlzLnRleHRFbCwgdGhpcy50ZXh0VG9TaG93KTtcbiAgICB0aGlzLmJ1dHRvblRleHQgPSBleHBhbmRpbmcgPyB0aGlzLnNlZUxlc3NUZXh0IDogdGhpcy5zZWVNb3JlVGV4dDtcbiAgICAvLyBNZWFzdXJlIHRoZSBuZXcgaGVpZ2h0IHNvIHdlIGNhbiBhbmltYXRlIHRvIGl0LlxuICAgIGNvbnN0IG5ld0hlaWdodCA9IGFkYXB0ZXIuZ2V0Q29udGFpbmVySGVpZ2h0KGNvbnRhaW5lcik7XG4gICAgLyogaXN0YW5idWwgaWdub3JlIGlmICovXG4gICAgaWYgKG5ld0hlaWdodCA8IGN1cnJlbnRIZWlnaHQpIHtcbiAgICAgIC8vIFRoZSBuZXcgdGV4dCBpcyBzbWFsbGVyIHRoYW4gdGhlIG9sZCB0ZXh0LCBzbyBwdXQgdGhlIG9sZCB0ZXh0IGJhY2sgYmVmb3JlIGRvaW5nXG4gICAgICAvLyB0aGUgY29sbGFwc2UgYW5pbWF0aW9uIHRvIGF2b2lkIHNob3dpbmcgYSBiaWcgY2h1bmsgb2Ygd2hpdGVzcGFjZS5cbiAgICAgIGFkYXB0ZXIuc2V0VGV4dCh0aGlzLnRleHRFbCwgcHJldmlvdXNUZXh0KTtcbiAgICB9XG5cbiAgICBhZGFwdGVyLnNldENvbnRhaW5lckhlaWdodChjb250YWluZXIsIGAke2N1cnJlbnRIZWlnaHR9cHhgKTtcbiAgICAvLyBUaGlzIHRpbWVvdXQgaXMgbmVjZXNzYXJ5IGR1ZSB0byB0aGUgYnJvd3NlciBuZWVkaW5nIHRvIHBpY2sgdXAgdGhlIG5vbi1hdXRvIGhlaWdodCBiZWluZyBzZXRcbiAgICAvLyBpbiBvcmRlciB0byBkbyB0aGUgdHJhbnN0aW9uIGluIGhlaWdodCBjb3JyZWN0bHkuIFdpdGhvdXQgaXQgdGhlIHRyYW5zaXRpb24gZG9lcyBub3QgZmlyZS5cbiAgICBzZXRUaW1lb3V0KCgpID0+IHtcbiAgICAgIGFkYXB0ZXIuc2V0Q29udGFpbmVySGVpZ2h0KGNvbnRhaW5lciwgYCR7bmV3SGVpZ2h0fXB4YCk7XG4gICAgICAvKiBUaGlzIHJlc2V0cyB2YWx1ZXMgaWYgdGhlIHRyYW5zaXRpb24gZG9lcyBub3QgZ2V0IGtpY2tlZCBvZmYgKi9cbiAgICAgIHNldFRpbWVvdXQoKCkgPT4ge1xuICAgICAgICB0aGlzLmFuaW1hdGlvbkVuZCgpO1xuICAgICAgfSwgNTAwKTtcbiAgICB9LCAxMCk7XG4gIH1cbn1cbiIsIjxkaXZcbiAgY2xhc3M9XCJza3ktdGV4dC1leHBhbmQtY29udGFpbmVyXCJcbiAgKHRyYW5zaXRpb25lbmQpPVwiYW5pbWF0aW9uRW5kKClcIlxuICAjY29udGFpbmVyXG4+XG4gIDxzcGFuIGNsYXNzPVwic2t5LXRleHQtZXhwYW5kLXRleHRcIiBbaWRdPVwiY29udGVudFNlY3Rpb25JZFwiICN0ZXh0Pjwvc3Bhbj5cbiAgPHNwYW4gY2xhc3M9XCJza3ktdGV4dC1leHBhbmQtZWxsaXBzaXNcIiAqbmdJZj1cIiFpc0V4cGFuZGVkICYmIGV4cGFuZGFibGVcIlxuICAgID4uLi5cbiAgPC9zcGFuPlxuICA8YnV0dG9uXG4gICAgKm5nSWY9XCJleHBhbmRhYmxlXCJcbiAgICB0eXBlPVwiYnV0dG9uXCJcbiAgICBjbGFzcz1cInNreS1idG4gc2t5LWJ0bi1saW5rLWlubGluZSBza3ktdGV4dC1leHBhbmQtc2VlLW1vcmVcIlxuICAgIFthdHRyLmFyaWEtZXhwYW5kZWRdPVwiaXNNb2RhbCA/IHVuZGVmaW5lZCA6IGlzRXhwYW5kZWRcIlxuICAgIFthdHRyLmFyaWEtY29udHJvbHNdPVwiaXNNb2RhbCA/IHVuZGVmaW5lZCA6IGNvbnRlbnRTZWN0aW9uSWRcIlxuICAgIFthdHRyLmFyaWEtaGFzcG9wdXBdPVwiaXNNb2RhbCA/ICdkaWFsb2cnIDogdW5kZWZpbmVkXCJcbiAgICAoY2xpY2spPVwidGV4dEV4cGFuZCgpXCJcbiAgPlxuICAgIHt7IGJ1dHRvblRleHQgfX1cbiAgPC9idXR0b24+XG48L2Rpdj5cbiJdfQ==
|
|
@@ -0,0 +1,35 @@
|
|
|
1
|
+
import { CommonModule } from '@angular/common';
|
|
2
|
+
import { NgModule } from '@angular/core';
|
|
3
|
+
import { SkyI18nModule } from '@skyux/i18n';
|
|
4
|
+
import { SkyModalModule } from '@skyux/modals';
|
|
5
|
+
import { SkyLayoutResourcesModule } from '../shared/sky-layout-resources.module';
|
|
6
|
+
import { SkyTextExpandModalComponent } from './text-expand-modal.component';
|
|
7
|
+
import { SkyTextExpandComponent } from './text-expand.component';
|
|
8
|
+
import * as i0 from "@angular/core";
|
|
9
|
+
export class SkyTextExpandModule {
|
|
10
|
+
}
|
|
11
|
+
SkyTextExpandModule.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.2.7", ngImport: i0, type: SkyTextExpandModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });
|
|
12
|
+
SkyTextExpandModule.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "12.0.0", version: "13.2.7", ngImport: i0, type: SkyTextExpandModule, declarations: [SkyTextExpandComponent, SkyTextExpandModalComponent], imports: [SkyI18nModule,
|
|
13
|
+
SkyLayoutResourcesModule,
|
|
14
|
+
SkyModalModule,
|
|
15
|
+
CommonModule], exports: [SkyTextExpandComponent] });
|
|
16
|
+
SkyTextExpandModule.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "13.2.7", ngImport: i0, type: SkyTextExpandModule, imports: [[
|
|
17
|
+
SkyI18nModule,
|
|
18
|
+
SkyLayoutResourcesModule,
|
|
19
|
+
SkyModalModule,
|
|
20
|
+
CommonModule,
|
|
21
|
+
]] });
|
|
22
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.2.7", ngImport: i0, type: SkyTextExpandModule, decorators: [{
|
|
23
|
+
type: NgModule,
|
|
24
|
+
args: [{
|
|
25
|
+
declarations: [SkyTextExpandComponent, SkyTextExpandModalComponent],
|
|
26
|
+
imports: [
|
|
27
|
+
SkyI18nModule,
|
|
28
|
+
SkyLayoutResourcesModule,
|
|
29
|
+
SkyModalModule,
|
|
30
|
+
CommonModule,
|
|
31
|
+
],
|
|
32
|
+
exports: [SkyTextExpandComponent],
|
|
33
|
+
}]
|
|
34
|
+
}] });
|
|
35
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGV4dC1leHBhbmQubW9kdWxlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vbGlicy9jb21wb25lbnRzL2xheW91dC9zcmMvbGliL21vZHVsZXMvdGV4dC1leHBhbmQvdGV4dC1leHBhbmQubW9kdWxlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUMvQyxPQUFPLEVBQUUsUUFBUSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQ3pDLE9BQU8sRUFBRSxhQUFhLEVBQUUsTUFBTSxhQUFhLENBQUM7QUFDNUMsT0FBTyxFQUFFLGNBQWMsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUUvQyxPQUFPLEVBQUUsd0JBQXdCLEVBQUUsTUFBTSx1Q0FBdUMsQ0FBQztBQUVqRixPQUFPLEVBQUUsMkJBQTJCLEVBQUUsTUFBTSwrQkFBK0IsQ0FBQztBQUM1RSxPQUFPLEVBQUUsc0JBQXNCLEVBQUUsTUFBTSx5QkFBeUIsQ0FBQzs7QUFZakUsTUFBTSxPQUFPLG1CQUFtQjs7Z0hBQW5CLG1CQUFtQjtpSEFBbkIsbUJBQW1CLGlCQVRmLHNCQUFzQixFQUFFLDJCQUEyQixhQUVoRSxhQUFhO1FBQ2Isd0JBQXdCO1FBQ3hCLGNBQWM7UUFDZCxZQUFZLGFBRUosc0JBQXNCO2lIQUVyQixtQkFBbUIsWUFSckI7WUFDUCxhQUFhO1lBQ2Isd0JBQXdCO1lBQ3hCLGNBQWM7WUFDZCxZQUFZO1NBQ2I7MkZBR1UsbUJBQW1CO2tCQVYvQixRQUFRO21CQUFDO29CQUNSLFlBQVksRUFBRSxDQUFDLHNCQUFzQixFQUFFLDJCQUEyQixDQUFDO29CQUNuRSxPQUFPLEVBQUU7d0JBQ1AsYUFBYTt3QkFDYix3QkFBd0I7d0JBQ3hCLGNBQWM7d0JBQ2QsWUFBWTtxQkFDYjtvQkFDRCxPQUFPLEVBQUUsQ0FBQyxzQkFBc0IsQ0FBQztpQkFDbEMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDb21tb25Nb2R1bGUgfSBmcm9tICdAYW5ndWxhci9jb21tb24nO1xuaW1wb3J0IHsgTmdNb2R1bGUgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IFNreUkxOG5Nb2R1bGUgfSBmcm9tICdAc2t5dXgvaTE4bic7XG5pbXBvcnQgeyBTa3lNb2RhbE1vZHVsZSB9IGZyb20gJ0Bza3l1eC9tb2RhbHMnO1xuXG5pbXBvcnQgeyBTa3lMYXlvdXRSZXNvdXJjZXNNb2R1bGUgfSBmcm9tICcuLi9zaGFyZWQvc2t5LWxheW91dC1yZXNvdXJjZXMubW9kdWxlJztcblxuaW1wb3J0IHsgU2t5VGV4dEV4cGFuZE1vZGFsQ29tcG9uZW50IH0gZnJvbSAnLi90ZXh0LWV4cGFuZC1tb2RhbC5jb21wb25lbnQnO1xuaW1wb3J0IHsgU2t5VGV4dEV4cGFuZENvbXBvbmVudCB9IGZyb20gJy4vdGV4dC1leHBhbmQuY29tcG9uZW50JztcblxuQE5nTW9kdWxlKHtcbiAgZGVjbGFyYXRpb25zOiBbU2t5VGV4dEV4cGFuZENvbXBvbmVudCwgU2t5VGV4dEV4cGFuZE1vZGFsQ29tcG9uZW50XSxcbiAgaW1wb3J0czogW1xuICAgIFNreUkxOG5Nb2R1bGUsXG4gICAgU2t5TGF5b3V0UmVzb3VyY2VzTW9kdWxlLFxuICAgIFNreU1vZGFsTW9kdWxlLFxuICAgIENvbW1vbk1vZHVsZSxcbiAgXSxcbiAgZXhwb3J0czogW1NreVRleHRFeHBhbmRDb21wb25lbnRdLFxufSlcbmV4cG9ydCBjbGFzcyBTa3lUZXh0RXhwYW5kTW9kdWxlIHt9XG4iXX0=
|
|
@@ -0,0 +1,37 @@
|
|
|
1
|
+
import { Injectable, RendererFactory2, } from '@angular/core';
|
|
2
|
+
import * as i0 from "@angular/core";
|
|
3
|
+
/**
|
|
4
|
+
* @internal
|
|
5
|
+
*/
|
|
6
|
+
export class SkyTextExpandRepeaterAdapterService {
|
|
7
|
+
constructor(rendererFactory) {
|
|
8
|
+
this.rendererFactory = rendererFactory;
|
|
9
|
+
this.renderer = this.rendererFactory.createRenderer(undefined, undefined);
|
|
10
|
+
}
|
|
11
|
+
getItems(elRef) {
|
|
12
|
+
return elRef.nativeElement.querySelectorAll('.sky-text-expand-repeater-item');
|
|
13
|
+
}
|
|
14
|
+
hideItem(item) {
|
|
15
|
+
this.renderer.setStyle(item, 'display', 'none');
|
|
16
|
+
}
|
|
17
|
+
showItem(item) {
|
|
18
|
+
this.renderer.setStyle(item, 'display', 'list-item');
|
|
19
|
+
}
|
|
20
|
+
getContainerHeight(containerEl) {
|
|
21
|
+
return containerEl.nativeElement.offsetHeight;
|
|
22
|
+
}
|
|
23
|
+
setContainerHeight(containerEl, height) {
|
|
24
|
+
if (height === undefined) {
|
|
25
|
+
this.renderer.removeStyle(containerEl.nativeElement, 'max-height');
|
|
26
|
+
}
|
|
27
|
+
else {
|
|
28
|
+
this.renderer.setStyle(containerEl.nativeElement, 'max-height', height);
|
|
29
|
+
}
|
|
30
|
+
}
|
|
31
|
+
}
|
|
32
|
+
SkyTextExpandRepeaterAdapterService.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.2.7", ngImport: i0, type: SkyTextExpandRepeaterAdapterService, deps: [{ token: i0.RendererFactory2 }], target: i0.ɵɵFactoryTarget.Injectable });
|
|
33
|
+
SkyTextExpandRepeaterAdapterService.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "13.2.7", ngImport: i0, type: SkyTextExpandRepeaterAdapterService });
|
|
34
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.2.7", ngImport: i0, type: SkyTextExpandRepeaterAdapterService, decorators: [{
|
|
35
|
+
type: Injectable
|
|
36
|
+
}], ctorParameters: function () { return [{ type: i0.RendererFactory2 }]; } });
|
|
37
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGV4dC1leHBhbmQtcmVwZWF0ZXItYWRhcHRlci5zZXJ2aWNlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vbGlicy9jb21wb25lbnRzL2xheW91dC9zcmMvbGliL21vZHVsZXMvdGV4dC1leHBhbmQtcmVwZWF0ZXIvdGV4dC1leHBhbmQtcmVwZWF0ZXItYWRhcHRlci5zZXJ2aWNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFFTCxVQUFVLEVBRVYsZ0JBQWdCLEdBQ2pCLE1BQU0sZUFBZSxDQUFDOztBQUV2Qjs7R0FFRztBQUVILE1BQU0sT0FBTyxtQ0FBbUM7SUFHOUMsWUFBb0IsZUFBaUM7UUFBakMsb0JBQWUsR0FBZixlQUFlLENBQWtCO1FBQ25ELElBQUksQ0FBQyxRQUFRLEdBQUcsSUFBSSxDQUFDLGVBQWUsQ0FBQyxjQUFjLENBQUMsU0FBUyxFQUFFLFNBQVMsQ0FBQyxDQUFDO0lBQzVFLENBQUM7SUFFTSxRQUFRLENBQUMsS0FBaUI7UUFDL0IsT0FBTyxLQUFLLENBQUMsYUFBYSxDQUFDLGdCQUFnQixDQUN6QyxnQ0FBZ0MsQ0FDakMsQ0FBQztJQUNKLENBQUM7SUFFTSxRQUFRLENBQUMsSUFBaUI7UUFDL0IsSUFBSSxDQUFDLFFBQVEsQ0FBQyxRQUFRLENBQUMsSUFBSSxFQUFFLFNBQVMsRUFBRSxNQUFNLENBQUMsQ0FBQztJQUNsRCxDQUFDO0lBRU0sUUFBUSxDQUFDLElBQWlCO1FBQy9CLElBQUksQ0FBQyxRQUFRLENBQUMsUUFBUSxDQUFDLElBQUksRUFBRSxTQUFTLEVBQUUsV0FBVyxDQUFDLENBQUM7SUFDdkQsQ0FBQztJQUVNLGtCQUFrQixDQUFDLFdBQXVCO1FBQy9DLE9BQU8sV0FBVyxDQUFDLGFBQWEsQ0FBQyxZQUFZLENBQUM7SUFDaEQsQ0FBQztJQUVNLGtCQUFrQixDQUFDLFdBQXVCLEVBQUUsTUFBYztRQUMvRCxJQUFJLE1BQU0sS0FBSyxTQUFTLEVBQUU7WUFDeEIsSUFBSSxDQUFDLFFBQVEsQ0FBQyxXQUFXLENBQUMsV0FBVyxDQUFDLGFBQWEsRUFBRSxZQUFZLENBQUMsQ0FBQztTQUNwRTthQUFNO1lBQ0wsSUFBSSxDQUFDLFFBQVEsQ0FBQyxRQUFRLENBQUMsV0FBVyxDQUFDLGFBQWEsRUFBRSxZQUFZLEVBQUUsTUFBTSxDQUFDLENBQUM7U0FDekU7SUFDSCxDQUFDOztnSUEvQlUsbUNBQW1DO29JQUFuQyxtQ0FBbUM7MkZBQW5DLG1DQUFtQztrQkFEL0MsVUFBVSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7XG4gIEVsZW1lbnRSZWYsXG4gIEluamVjdGFibGUsXG4gIFJlbmRlcmVyMixcbiAgUmVuZGVyZXJGYWN0b3J5Mixcbn0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5cbi8qKlxuICogQGludGVybmFsXG4gKi9cbkBJbmplY3RhYmxlKClcbmV4cG9ydCBjbGFzcyBTa3lUZXh0RXhwYW5kUmVwZWF0ZXJBZGFwdGVyU2VydmljZSB7XG4gIHByaXZhdGUgcmVuZGVyZXI6IFJlbmRlcmVyMjtcblxuICBjb25zdHJ1Y3Rvcihwcml2YXRlIHJlbmRlcmVyRmFjdG9yeTogUmVuZGVyZXJGYWN0b3J5Mikge1xuICAgIHRoaXMucmVuZGVyZXIgPSB0aGlzLnJlbmRlcmVyRmFjdG9yeS5jcmVhdGVSZW5kZXJlcih1bmRlZmluZWQsIHVuZGVmaW5lZCk7XG4gIH1cblxuICBwdWJsaWMgZ2V0SXRlbXMoZWxSZWY6IEVsZW1lbnRSZWYpIHtcbiAgICByZXR1cm4gZWxSZWYubmF0aXZlRWxlbWVudC5xdWVyeVNlbGVjdG9yQWxsKFxuICAgICAgJy5za3ktdGV4dC1leHBhbmQtcmVwZWF0ZXItaXRlbSdcbiAgICApO1xuICB9XG5cbiAgcHVibGljIGhpZGVJdGVtKGl0ZW06IEhUTUxFbGVtZW50KSB7XG4gICAgdGhpcy5yZW5kZXJlci5zZXRTdHlsZShpdGVtLCAnZGlzcGxheScsICdub25lJyk7XG4gIH1cblxuICBwdWJsaWMgc2hvd0l0ZW0oaXRlbTogSFRNTEVsZW1lbnQpIHtcbiAgICB0aGlzLnJlbmRlcmVyLnNldFN0eWxlKGl0ZW0sICdkaXNwbGF5JywgJ2xpc3QtaXRlbScpO1xuICB9XG5cbiAgcHVibGljIGdldENvbnRhaW5lckhlaWdodChjb250YWluZXJFbDogRWxlbWVudFJlZikge1xuICAgIHJldHVybiBjb250YWluZXJFbC5uYXRpdmVFbGVtZW50Lm9mZnNldEhlaWdodDtcbiAgfVxuXG4gIHB1YmxpYyBzZXRDb250YWluZXJIZWlnaHQoY29udGFpbmVyRWw6IEVsZW1lbnRSZWYsIGhlaWdodDogc3RyaW5nKSB7XG4gICAgaWYgKGhlaWdodCA9PT0gdW5kZWZpbmVkKSB7XG4gICAgICB0aGlzLnJlbmRlcmVyLnJlbW92ZVN0eWxlKGNvbnRhaW5lckVsLm5hdGl2ZUVsZW1lbnQsICdtYXgtaGVpZ2h0Jyk7XG4gICAgfSBlbHNlIHtcbiAgICAgIHRoaXMucmVuZGVyZXIuc2V0U3R5bGUoY29udGFpbmVyRWwubmF0aXZlRWxlbWVudCwgJ21heC1oZWlnaHQnLCBoZWlnaHQpO1xuICAgIH1cbiAgfVxufVxuIl19
|
|
@@ -0,0 +1,171 @@
|
|
|
1
|
+
import { ChangeDetectorRef, Component, ElementRef, Input, TemplateRef, ViewChild, } from '@angular/core';
|
|
2
|
+
import { SkyLibResourcesService } from '@skyux/i18n';
|
|
3
|
+
import { forkJoin as observableForkJoin } from 'rxjs';
|
|
4
|
+
import { take } from 'rxjs/operators';
|
|
5
|
+
import { SkyTextExpandRepeaterAdapterService } from './text-expand-repeater-adapter.service';
|
|
6
|
+
import * as i0 from "@angular/core";
|
|
7
|
+
import * as i1 from "@skyux/i18n";
|
|
8
|
+
import * as i2 from "./text-expand-repeater-adapter.service";
|
|
9
|
+
import * as i3 from "@angular/common";
|
|
10
|
+
/**
|
|
11
|
+
* Auto-incrementing integer used to generate unique ids for text expand repeater components.
|
|
12
|
+
*/
|
|
13
|
+
let nextId = 0;
|
|
14
|
+
export class SkyTextExpandRepeaterComponent {
|
|
15
|
+
constructor(resources, elRef, textExpandRepeaterAdapter, changeDetector) {
|
|
16
|
+
this.resources = resources;
|
|
17
|
+
this.elRef = elRef;
|
|
18
|
+
this.textExpandRepeaterAdapter = textExpandRepeaterAdapter;
|
|
19
|
+
this.changeDetector = changeDetector;
|
|
20
|
+
/**
|
|
21
|
+
* Specifies the style of bullet to use
|
|
22
|
+
* @default "unordered"
|
|
23
|
+
*/
|
|
24
|
+
this.listStyle = 'unordered';
|
|
25
|
+
this.contentSectionId = `sky-text-expand-repeater-content-${++nextId}`;
|
|
26
|
+
this.isExpanded = false;
|
|
27
|
+
}
|
|
28
|
+
ngAfterViewInit() {
|
|
29
|
+
if (this.contentItems) {
|
|
30
|
+
this.items = this.textExpandRepeaterAdapter.getItems(this.elRef);
|
|
31
|
+
for (let i = this.maxItems; i < this.contentItems.length; i++) {
|
|
32
|
+
this.textExpandRepeaterAdapter.hideItem(this.items[i]);
|
|
33
|
+
}
|
|
34
|
+
}
|
|
35
|
+
observableForkJoin([
|
|
36
|
+
this.resources.getString('skyux_text_expand_see_more'),
|
|
37
|
+
this.resources.getString('skyux_text_expand_see_less'),
|
|
38
|
+
])
|
|
39
|
+
.pipe(take(1))
|
|
40
|
+
.subscribe((resources) => {
|
|
41
|
+
this.seeMoreText = resources[0];
|
|
42
|
+
this.seeLessText = resources[1];
|
|
43
|
+
/* sanity check */
|
|
44
|
+
/* istanbul ignore else */
|
|
45
|
+
if (!this.isExpanded) {
|
|
46
|
+
this.buttonText = this.seeMoreText;
|
|
47
|
+
}
|
|
48
|
+
else {
|
|
49
|
+
this.buttonText = this.seeLessText;
|
|
50
|
+
}
|
|
51
|
+
this.changeDetector.detectChanges();
|
|
52
|
+
});
|
|
53
|
+
}
|
|
54
|
+
ngOnChanges(changes) {
|
|
55
|
+
/* istanbul ignore else */
|
|
56
|
+
if (changes.maxItems || changes.data) {
|
|
57
|
+
this.setup(this.data);
|
|
58
|
+
}
|
|
59
|
+
}
|
|
60
|
+
animationEnd() {
|
|
61
|
+
// Ensure the correct items are displayed
|
|
62
|
+
if (!this.isExpanded) {
|
|
63
|
+
for (let i = this.maxItems; i < this.contentItems.length; i++) {
|
|
64
|
+
this.textExpandRepeaterAdapter.hideItem(this.items[i]);
|
|
65
|
+
}
|
|
66
|
+
}
|
|
67
|
+
// Set height back to auto so the browser can change the height as needed with window changes
|
|
68
|
+
this.textExpandRepeaterAdapter.setContainerHeight(this.containerEl, undefined);
|
|
69
|
+
}
|
|
70
|
+
repeaterExpand() {
|
|
71
|
+
if (!this.isExpanded) {
|
|
72
|
+
this.setContainerMaxHeight();
|
|
73
|
+
setTimeout(() => {
|
|
74
|
+
this.isExpanded = true;
|
|
75
|
+
this.animateRepeater(true);
|
|
76
|
+
});
|
|
77
|
+
}
|
|
78
|
+
else {
|
|
79
|
+
this.setContainerMaxHeight();
|
|
80
|
+
setTimeout(() => {
|
|
81
|
+
this.isExpanded = false;
|
|
82
|
+
this.animateRepeater(false);
|
|
83
|
+
});
|
|
84
|
+
}
|
|
85
|
+
}
|
|
86
|
+
setContainerMaxHeight() {
|
|
87
|
+
// ensure everything is reset
|
|
88
|
+
this.animationEnd();
|
|
89
|
+
/* Before animation is kicked off, ensure that a maxHeight exists */
|
|
90
|
+
/* Once we have support for angular v4 animations with parameters we can use that instead */
|
|
91
|
+
const currentHeight = this.textExpandRepeaterAdapter.getContainerHeight(this.containerEl);
|
|
92
|
+
this.textExpandRepeaterAdapter.setContainerHeight(this.containerEl, `${currentHeight}px`);
|
|
93
|
+
}
|
|
94
|
+
animateRepeater(expanding) {
|
|
95
|
+
const adapter = this.textExpandRepeaterAdapter;
|
|
96
|
+
const container = this.containerEl;
|
|
97
|
+
adapter.setContainerHeight(container, undefined);
|
|
98
|
+
const currentHeight = adapter.getContainerHeight(container);
|
|
99
|
+
for (let i = this.maxItems; i < this.contentItems.length; i++) {
|
|
100
|
+
if (!expanding) {
|
|
101
|
+
adapter.hideItem(this.items[i]);
|
|
102
|
+
}
|
|
103
|
+
else {
|
|
104
|
+
adapter.showItem(this.items[i]);
|
|
105
|
+
}
|
|
106
|
+
}
|
|
107
|
+
const newHeight = adapter.getContainerHeight(container);
|
|
108
|
+
if (!expanding) {
|
|
109
|
+
this.buttonText = this.seeMoreText;
|
|
110
|
+
}
|
|
111
|
+
else {
|
|
112
|
+
this.buttonText = this.seeLessText;
|
|
113
|
+
}
|
|
114
|
+
if (newHeight < currentHeight) {
|
|
115
|
+
// The new text is smaller than the old text, so put the old text back before doing
|
|
116
|
+
// the collapse animation to avoid showing a big chunk of whitespace.
|
|
117
|
+
for (let i = this.maxItems; i < this.contentItems.length; i++) {
|
|
118
|
+
adapter.showItem(this.items[i]);
|
|
119
|
+
}
|
|
120
|
+
}
|
|
121
|
+
adapter.setContainerHeight(container, `${currentHeight}px`);
|
|
122
|
+
// This timeout is necessary due to the browser needing to pick up the non-auto height being set
|
|
123
|
+
// in order to do the transtion in height correctly. Without it the transition does not fire.
|
|
124
|
+
setTimeout(() => {
|
|
125
|
+
adapter.setContainerHeight(container, `${newHeight}px`);
|
|
126
|
+
/* This resets values if the transition does not get kicked off */
|
|
127
|
+
setTimeout(() => {
|
|
128
|
+
this.animationEnd();
|
|
129
|
+
}, 500);
|
|
130
|
+
}, 10);
|
|
131
|
+
}
|
|
132
|
+
setup(value) {
|
|
133
|
+
if (value) {
|
|
134
|
+
const length = value.length;
|
|
135
|
+
if (length > this.maxItems) {
|
|
136
|
+
this.expandable = true;
|
|
137
|
+
this.buttonText = this.seeMoreText;
|
|
138
|
+
this.isExpanded = false;
|
|
139
|
+
}
|
|
140
|
+
else {
|
|
141
|
+
this.expandable = false;
|
|
142
|
+
}
|
|
143
|
+
this.contentItems = value;
|
|
144
|
+
}
|
|
145
|
+
else {
|
|
146
|
+
this.contentItems = undefined;
|
|
147
|
+
this.expandable = false;
|
|
148
|
+
}
|
|
149
|
+
}
|
|
150
|
+
}
|
|
151
|
+
SkyTextExpandRepeaterComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.2.7", ngImport: i0, type: SkyTextExpandRepeaterComponent, deps: [{ token: i1.SkyLibResourcesService }, { token: i0.ElementRef }, { token: i2.SkyTextExpandRepeaterAdapterService }, { token: i0.ChangeDetectorRef }], target: i0.ɵɵFactoryTarget.Component });
|
|
152
|
+
SkyTextExpandRepeaterComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.2.7", type: SkyTextExpandRepeaterComponent, selector: "sky-text-expand-repeater", inputs: { data: "data", itemTemplate: "itemTemplate", listStyle: "listStyle", maxItems: "maxItems" }, providers: [SkyTextExpandRepeaterAdapterService], viewQueries: [{ propertyName: "containerEl", first: true, predicate: ["container"], descendants: true, read: ElementRef }], usesOnChanges: true, ngImport: i0, template: "<div class=\"sky-text-expand-repeater\">\n <ul\n *ngIf=\"listStyle !== 'ordered'\"\n class=\"sky-text-expand-repeater-container\"\n [id]=\"contentSectionId\"\n (transitionend)=\"animationEnd()\"\n [ngClass]=\"{\n 'sky-text-expand-repeater-list-style-none': listStyle === 'unstyled'\n }\"\n #container\n >\n <ng-template [ngTemplateOutlet]=\"listItemTemplate\"></ng-template>\n </ul>\n <ol\n *ngIf=\"listStyle === 'ordered'\"\n class=\"sky-text-expand-repeater-container\"\n [id]=\"contentSectionId\"\n (transitionend)=\"animationEnd()\"\n #container\n >\n <ng-template [ngTemplateOutlet]=\"listItemTemplate\"></ng-template>\n </ol>\n <button\n *ngIf=\"expandable\"\n type=\"button\"\n class=\"sky-btn sky-btn-link-inline sky-text-expand-repeater-see-more\"\n [attr.aria-expanded]=\"isExpanded\"\n [attr.aria-controls]=\"contentSectionId\"\n (click)=\"repeaterExpand()\"\n [ngClass]=\"{\n 'sky-text-expand-repeater-see-more-list-style-none':\n listStyle === 'unstyled'\n }\"\n >\n {{ buttonText }}\n </button>\n</div>\n\n<ng-template let-item #defaultItemTemplate>\n {{ item }}\n</ng-template>\n\n<ng-template #listItemTemplate>\n <li *ngFor=\"let item of contentItems\" class=\"sky-text-expand-repeater-item\">\n <ng-template\n [ngTemplateOutlet]=\"itemTemplate || defaultItemTemplate\"\n [ngTemplateOutletContext]=\"{ $implicit: item }\"\n ></ng-template>\n </li>\n</ng-template>\n", styles: [".sky-text-expand-repeater-container{overflow-y:hidden;height:auto;margin-bottom:0;transition:max-height .25s}.sky-text-expand-repeater-see-more{white-space:nowrap;margin-left:40px}.sky-text-expand-repeater-list-style-none{list-style-type:none;padding-left:0}.sky-text-expand-repeater-see-more-list-style-none{margin-left:0}\n"], directives: [{ type: i3.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { type: i3.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { type: i3.NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet"] }, { type: i3.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }] });
|
|
153
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.2.7", ngImport: i0, type: SkyTextExpandRepeaterComponent, decorators: [{
|
|
154
|
+
type: Component,
|
|
155
|
+
args: [{ selector: 'sky-text-expand-repeater', providers: [SkyTextExpandRepeaterAdapterService], template: "<div class=\"sky-text-expand-repeater\">\n <ul\n *ngIf=\"listStyle !== 'ordered'\"\n class=\"sky-text-expand-repeater-container\"\n [id]=\"contentSectionId\"\n (transitionend)=\"animationEnd()\"\n [ngClass]=\"{\n 'sky-text-expand-repeater-list-style-none': listStyle === 'unstyled'\n }\"\n #container\n >\n <ng-template [ngTemplateOutlet]=\"listItemTemplate\"></ng-template>\n </ul>\n <ol\n *ngIf=\"listStyle === 'ordered'\"\n class=\"sky-text-expand-repeater-container\"\n [id]=\"contentSectionId\"\n (transitionend)=\"animationEnd()\"\n #container\n >\n <ng-template [ngTemplateOutlet]=\"listItemTemplate\"></ng-template>\n </ol>\n <button\n *ngIf=\"expandable\"\n type=\"button\"\n class=\"sky-btn sky-btn-link-inline sky-text-expand-repeater-see-more\"\n [attr.aria-expanded]=\"isExpanded\"\n [attr.aria-controls]=\"contentSectionId\"\n (click)=\"repeaterExpand()\"\n [ngClass]=\"{\n 'sky-text-expand-repeater-see-more-list-style-none':\n listStyle === 'unstyled'\n }\"\n >\n {{ buttonText }}\n </button>\n</div>\n\n<ng-template let-item #defaultItemTemplate>\n {{ item }}\n</ng-template>\n\n<ng-template #listItemTemplate>\n <li *ngFor=\"let item of contentItems\" class=\"sky-text-expand-repeater-item\">\n <ng-template\n [ngTemplateOutlet]=\"itemTemplate || defaultItemTemplate\"\n [ngTemplateOutletContext]=\"{ $implicit: item }\"\n ></ng-template>\n </li>\n</ng-template>\n", styles: [".sky-text-expand-repeater-container{overflow-y:hidden;height:auto;margin-bottom:0;transition:max-height .25s}.sky-text-expand-repeater-see-more{white-space:nowrap;margin-left:40px}.sky-text-expand-repeater-list-style-none{list-style-type:none;padding-left:0}.sky-text-expand-repeater-see-more-list-style-none{margin-left:0}\n"] }]
|
|
156
|
+
}], ctorParameters: function () { return [{ type: i1.SkyLibResourcesService }, { type: i0.ElementRef }, { type: i2.SkyTextExpandRepeaterAdapterService }, { type: i0.ChangeDetectorRef }]; }, propDecorators: { data: [{
|
|
157
|
+
type: Input
|
|
158
|
+
}], itemTemplate: [{
|
|
159
|
+
type: Input
|
|
160
|
+
}], listStyle: [{
|
|
161
|
+
type: Input
|
|
162
|
+
}], maxItems: [{
|
|
163
|
+
type: Input
|
|
164
|
+
}], containerEl: [{
|
|
165
|
+
type: ViewChild,
|
|
166
|
+
args: ['container', {
|
|
167
|
+
read: ElementRef,
|
|
168
|
+
static: false,
|
|
169
|
+
}]
|
|
170
|
+
}] } });
|
|
171
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGV4dC1leHBhbmQtcmVwZWF0ZXIuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vbGlicy9jb21wb25lbnRzL2xheW91dC9zcmMvbGliL21vZHVsZXMvdGV4dC1leHBhbmQtcmVwZWF0ZXIvdGV4dC1leHBhbmQtcmVwZWF0ZXIuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vbGlicy9jb21wb25lbnRzL2xheW91dC9zcmMvbGliL21vZHVsZXMvdGV4dC1leHBhbmQtcmVwZWF0ZXIvdGV4dC1leHBhbmQtcmVwZWF0ZXIuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUVMLGlCQUFpQixFQUNqQixTQUFTLEVBQ1QsVUFBVSxFQUNWLEtBQUssRUFHTCxXQUFXLEVBQ1gsU0FBUyxHQUNWLE1BQU0sZUFBZSxDQUFDO0FBQ3ZCLE9BQU8sRUFBRSxzQkFBc0IsRUFBRSxNQUFNLGFBQWEsQ0FBQztBQUVyRCxPQUFPLEVBQUUsUUFBUSxJQUFJLGtCQUFrQixFQUFFLE1BQU0sTUFBTSxDQUFDO0FBQ3RELE9BQU8sRUFBRSxJQUFJLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUV0QyxPQUFPLEVBQUUsbUNBQW1DLEVBQUUsTUFBTSx3Q0FBd0MsQ0FBQzs7Ozs7QUFHN0Y7O0dBRUc7QUFDSCxJQUFJLE1BQU0sR0FBRyxDQUFDLENBQUM7QUFRZixNQUFNLE9BQU8sOEJBQThCO0lBOEN6QyxZQUNVLFNBQWlDLEVBQ2pDLEtBQWlCLEVBQ2pCLHlCQUE4RCxFQUM5RCxjQUFpQztRQUhqQyxjQUFTLEdBQVQsU0FBUyxDQUF3QjtRQUNqQyxVQUFLLEdBQUwsS0FBSyxDQUFZO1FBQ2pCLDhCQUF5QixHQUF6Qix5QkFBeUIsQ0FBcUM7UUFDOUQsbUJBQWMsR0FBZCxjQUFjLENBQW1CO1FBbkMzQzs7O1dBR0c7UUFFSSxjQUFTLEdBQXVDLFdBQVcsQ0FB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Q0FBQyxVQUFVLEdBQUcsS0FBSyxDQUFDO2FBQ3pCO1lBQ0QsSUFBSSxDQUFDLFlBQVksR0FBRyxLQUFLLENBQUM7U0FDM0I7YUFBTTtZQUNMLElBQUksQ0FBQyxZQUFZLEdBQUcsU0FBUyxDQUFDO1lBQzlCLElBQUksQ0FBQyxVQUFVLEdBQUcsS0FBSyxDQUFDO1NBQ3pCO0lBQ0gsQ0FBQzs7MkhBekxVLDhCQUE4QjsrR0FBOUIsOEJBQThCLHlKQUY5QixDQUFDLG1DQUFtQyxDQUFDLCtHQXlDeEMsVUFBVSxrRENyRXBCLDA5Q0FrREE7MkZEcEJhLDhCQUE4QjtrQkFOMUMsU0FBUzsrQkFDRSwwQkFBMEIsYUFHekIsQ0FBQyxtQ0FBbUMsQ0FBQzt3TkFTekMsSUFBSTtzQkFEVixLQUFLO2dCQU9DLFlBQVk7c0JBRGxCLEtBQUs7Z0JBUUMsU0FBUztzQkFEZixLQUFLO2dCQU9DLFFBQVE7c0JBRGQsS0FBSztnQkFpQkUsV0FBVztzQkFKbEIsU0FBUzt1QkFBQyxXQUFXLEVBQUU7d0JBQ3RCLElBQUksRUFBRSxVQUFVO3dCQUNoQixNQUFNLEVBQUUsS0FBSztxQkFDZCIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7XG4gIEFmdGVyVmlld0luaXQsXG4gIENoYW5nZURldGVjdG9yUmVmLFxuICBDb21wb25lbnQsXG4gIEVsZW1lbnRSZWYsXG4gIElucHV0LFxuICBPbkNoYW5nZXMsXG4gIFNpbXBsZUNoYW5nZXMsXG4gIFRlbXBsYXRlUmVmLFxuICBWaWV3Q2hpbGQsXG59IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgU2t5TGliUmVzb3VyY2VzU2VydmljZSB9IGZyb20gJ0Bza3l1eC9pMThuJztcblxuaW1wb3J0IHsgZm9ya0pvaW4gYXMgb2JzZXJ2YWJsZUZvcmtKb2luIH0gZnJvbSAncnhqcyc7XG5pbXBvcnQgeyB0YWtlIH0gZnJvbSAncnhqcy9vcGVyYXRvcnMnO1xuXG5pbXBvcnQgeyBTa3lUZXh0RXhwYW5kUmVwZWF0ZXJBZGFwdGVyU2VydmljZSB9IGZyb20gJy4vdGV4dC1leHBhbmQtcmVwZWF0ZXItYWRhcHRlci5zZXJ2aWNlJztcbmltcG9ydCB7IFNreVRleHRFeHBhbmRSZXBlYXRlckxpc3RTdHlsZVR5cGUgfSBmcm9tICcuL3R5cGVzL3RleHQtZXhwYW5kLXJlcGVhdGVyLWxpc3Qtc3R5bGUtdHlwZSc7XG5cbi8qKlxuICogQXV0by1pbmNyZW1lbnRpbmcgaW50ZWdlciB1c2VkIHRvIGdlbmVyYXRlIHVuaXF1ZSBpZHMgZm9yIHRleHQgZXhwYW5kIHJlcGVhdGVyIGNvbXBvbmVudHMuXG4gKi9cbmxldCBuZXh0SWQgPSAwO1xuXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdza3ktdGV4dC1leHBhbmQtcmVwZWF0ZXInLFxuICB0ZW1wbGF0ZVVybDogJy4vdGV4dC1leHBhbmQtcmVwZWF0ZXIuY29tcG9uZW50Lmh0bWwnLFxuICBzdHlsZVVybHM6IFsnLi90ZXh0LWV4cGFuZC1yZXBlYXRlci5jb21wb25lbnQuc2NzcyddLFxuICBwcm92aWRlcnM6IFtTa3lUZXh0RXhwYW5kUmVwZWF0ZXJBZGFwdGVyU2VydmljZV0sXG59KVxuZXhwb3J0IGNsYXNzIFNreVRleHRFeHBhbmRSZXBlYXRlckNvbXBvbmVudFxuICBpbXBsZW1lbnRzIEFmdGVyVmlld0luaXQsIE9uQ2hhbmdlc1xue1xuICAvKipcbiAgICogU3BlY2lmaWVzIHRoZSBkYXRhIHRvIHRydW5jYXRlLlxuICAgKi9cbiAgQElucHV0KClcbiAgcHVibGljIGRhdGE6IGFueVtdO1xuXG4gIC8qKlxuICAgKiBTcGVjaWZpZXMgYSB0ZW1wbGF0ZSBmb3IgaXRlbXMgaW4gdGhlIGxpc3QuXG4gICAqL1xuICBASW5wdXQoKVxuICBwdWJsaWMgaXRlbVRlbXBsYXRlOiBUZW1wbGF0ZVJlZjxhbnk+O1xuXG4gIC8qKlxuICAgKiBTcGVjaWZpZXMgdGhlIHN0eWxlIG9mIGJ1bGxldCB0byB1c2VcbiAgICogQGRlZmF1bHQgXCJ1bm9yZGVyZWRcIlxuICAgKi9cbiAgQElucHV0KClcbiAgcHVibGljIGxpc3RTdHlsZTogU2t5VGV4dEV4cGFuZFJlcGVhdGVyTGlzdFN0eWxlVHlwZSA9ICd1bm9yZGVyZWQnO1xuXG4gIC8qKlxuICAgKiBTcGVjaWZpZXMgdGhlIG51bWJlciBvZiBpdGVtcyB0byBkaXNwbGF5IGJlZm9yZSB0cnVuY2F0aW5nIHRoZSBsaXN0LlxuICAgKi9cbiAgQElucHV0KClcbiAgcHVibGljIG1heEl0ZW1zOiBudW1iZXI7XG5cbiAgcHVibGljIGJ1dHRvblRleHQ6IHN0cmluZztcbiAgcHVibGljIGNvbnRlbnRJdGVtczogQXJyYXk8YW55PjtcbiAgcHVibGljIGV4cGFuZGFibGU6IGJvb2xlYW47XG4gIHB1YmxpYyBjb250ZW50U2VjdGlvbklkID0gYHNreS10ZXh0LWV4cGFuZC1yZXBlYXRlci1jb250ZW50LSR7KytuZXh0SWR9YDtcblxuICBwdWJsaWMgaXNFeHBhbmRlZCA9IGZhbHNlO1xuXG4gIHByaXZhdGUgc2VlTW9yZVRleHQ6IHN0cmluZztcbiAgcHJpdmF0ZSBzZWVMZXNzVGV4dDogc3RyaW5nO1xuXG4gIEBWaWV3Q2hpbGQoJ2NvbnRhaW5lcicsIHtcbiAgICByZWFkOiBFbGVtZW50UmVmLFxuICAgIHN0YXRpYzogZmFsc2UsXG4gIH0pXG4gIHByaXZhdGUgY29udGFpbmVyRWw6IEVsZW1lbnRSZWY7XG5cbiAgcHJpdmF0ZSBpdGVtczogQXJyYXk8SFRNTEVsZW1lbnQ+O1xuXG4gIGNvbnN0cnVjdG9yKFxuICAgIHByaXZhdGUgcmVzb3VyY2VzOiBTa3lMaWJSZXNvdXJjZXNTZXJ2aWNlLFxuICAgIHByaXZhdGUgZWxSZWY6IEVsZW1lbnRSZWYsXG4gICAgcHJpdmF0ZSB0ZXh0RXhwYW5kUmVwZWF0ZXJBZGFwdGVyOiBTa3lUZXh0RXhwYW5kUmVwZWF0ZXJBZGFwdGVyU2VydmljZSxcbiAgICBwcml2YXRlIGNoYW5nZURldGVjdG9yOiBDaGFuZ2VEZXRlY3RvclJlZlxuICApIHt9XG5cbiAgcHVibGljIG5nQWZ0ZXJWaWV3SW5pdCgpIHtcbiAgICBpZiAodGhpcy5jb250ZW50SXRlbXMpIHtcbiAgICAgIHRoaXMuaXRlbXMgPSB0aGlzLnRleHRFeHBhbmRSZXBlYXRlckFkYXB0ZXIuZ2V0SXRlbXModGhpcy5lbFJlZik7XG4gICAgICBmb3IgKGxldCBpID0gdGhpcy5tYXhJdGVtczsgaSA8IHRoaXMuY29udGVudEl0ZW1zLmxlbmd0aDsgaSsrKSB7XG4gICAgICAgIHRoaXMudGV4dEV4cGFuZFJlcGVhdGVyQWRhcHRlci5oaWRlSXRlbSh0aGlzLml0ZW1zW2ldKTtcbiAgICAgIH1cbiAgICB9XG5cbiAgICBvYnNlcnZhYmxlRm9ya0pvaW4oW1xuICAgICAgdGhpcy5yZXNvdXJjZXMuZ2V0U3RyaW5nKCdza3l1eF90ZXh0X2V4cGFuZF9zZWVfbW9yZScpLFxuICAgICAgdGhpcy5yZXNvdXJjZXMuZ2V0U3RyaW5nKCdza3l1eF90ZXh0X2V4cGFuZF9zZWVfbGVzcycpLFxuICAgIF0pXG4gICAgICAucGlwZSh0YWtlKDEpKVxuICAgICAgLnN1YnNjcmliZSgocmVzb3VyY2VzKSA9PiB7XG4gICAgICAgIHRoaXMuc2VlTW9yZVRleHQgPSByZXNvdXJjZXNbMF07XG4gICAgICAgIHRoaXMuc2VlTGVzc1RleHQgPSByZXNvdXJjZXNbMV07XG4gICAgICAgIC8qIHNhbml0eSBjaGVjayAqL1xuICAgICAgICAvKiBpc3RhbmJ1bCBpZ25vcmUgZWxzZSAqL1xuICAgICAgICBpZiAoIXRoaXMuaXNFeHBhbmRlZCkge1xuICAgICAgICAgIHRoaXMuYnV0dG9uVGV4dCA9IHRoaXMuc2VlTW9yZVRleHQ7XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgdGhpcy5idXR0b25UZXh0ID0gdGhpcy5zZWVMZXNzVGV4dDtcbiAgICAgICAgfVxuICAgICAgICB0aGlzLmNoYW5nZURldGVjdG9yLmRldGVjdENoYW5nZXMoKTtcbiAgICAgIH0pO1xuICB9XG5cbiAgcHVibGljIG5nT25DaGFuZ2VzKGNoYW5nZXM6IFNpbXBsZUNoYW5nZXMpOiB2b2lkIHtcbiAgICAvKiBpc3RhbmJ1bCBpZ25vcmUgZWxzZSAqL1xuICAgIGlmIChjaGFuZ2VzLm1heEl0ZW1zIHx8IGNoYW5nZXMuZGF0YSkge1xuICAgICAgdGhpcy5zZXR1cCh0aGlzLmRhdGEpO1xuICAgIH1cbiAgfVxuXG4gIHB1YmxpYyBhbmltYXRpb25FbmQoKSB7XG4gICAgLy8gRW5zdXJlIHRoZSBjb3JyZWN0IGl0ZW1zIGFyZSBkaXNwbGF5ZWRcbiAgICBpZiAoIXRoaXMuaXNFeHBhbmRlZCkge1xuICAgICAgZm9yIChsZXQgaSA9IHRoaXMubWF4SXRlbXM7IGkgPCB0aGlzLmNvbnRlbnRJdGVtcy5sZW5ndGg7IGkrKykge1xuICAgICAgICB0aGlzLnRleHRFeHBhbmRSZXBlYXRlckFkYXB0ZXIuaGlkZUl0ZW0odGhpcy5pdGVtc1tpXSk7XG4gICAgICB9XG4gICAgfVxuICAgIC8vIFNldCBoZWlnaHQgYmFjayB0byBhdXRvIHNvIHRoZSBicm93c2VyIGNhbiBjaGFuZ2UgdGhlIGhlaWdodCBhcyBuZWVkZWQgd2l0aCB3aW5kb3cgY2hhbmdlc1xuICAgIHRoaXMudGV4dEV4cGFuZFJlcGVhdGVyQWRhcHRlci5zZXRDb250YWluZXJIZWlnaHQoXG4gICAgICB0aGlzLmNvbnRhaW5lckVsLFxuICAgICAgdW5kZWZpbmVkXG4gICAgKTtcbiAgfVxuXG4gIHB1YmxpYyByZXBlYXRlckV4cGFuZCgpIHtcbiAgICBpZiAoIXRoaXMuaXNFeHBhbmRlZCkge1xuICAgICAgdGhpcy5zZXRDb250YWluZXJNYXhIZWlnaHQoKTtcbiAgICAgIHNldFRpbWVvdXQoKCkgPT4ge1xuICAgICAgICB0aGlzLmlzRXhwYW5kZWQgPSB0cnVlO1xuICAgICAgICB0aGlzLmFuaW1hdGVSZXBlYXRlcih0cnVlKTtcbiAgICAgIH0pO1xuICAgIH0gZWxzZSB7XG4gICAgICB0aGlzLnNldENvbnRhaW5lck1heEhlaWdodCgpO1xuICAgICAgc2V0VGltZW91dCgoKSA9PiB7XG4gICAgICAgIHRoaXMuaXNFeHBhbmRlZCA9IGZhbHNlO1xuICAgICAgICB0aGlzLmFuaW1hdGVSZXBlYXRlcihmYWxzZSk7XG4gICAgICB9KTtcbiAgICB9XG4gIH1cblxuICBwcml2YXRlIHNldENvbnRhaW5lck1heEhlaWdodCgpIHtcbiAgICAvLyBlbnN1cmUgZXZlcnl0aGluZyBpcyByZXNldFxuICAgIHRoaXMuYW5pbWF0aW9uRW5kKCk7XG4gICAgLyogQmVmb3JlIGFuaW1hdGlvbiBpcyBraWNrZWQgb2ZmLCBlbnN1cmUgdGhhdCBhIG1heEhlaWdodCBleGlzdHMgKi9cbiAgICAvKiBPbmNlIHdlIGhhdmUgc3VwcG9ydCBmb3IgYW5ndWxhciB2NCBhbmltYXRpb25zIHdpdGggcGFyYW1ldGVycyB3ZSBjYW4gdXNlIHRoYXQgaW5zdGVhZCAqL1xuICAgIGNvbnN0IGN1cnJlbnRIZWlnaHQgPSB0aGlzLnRleHRFeHBhbmRSZXBlYXRlckFkYXB0ZXIuZ2V0Q29udGFpbmVySGVpZ2h0KFxuICAgICAgdGhpcy5jb250YWluZXJFbFxuICAgICk7XG4gICAgdGhpcy50ZXh0RXhwYW5kUmVwZWF0ZXJBZGFwdGVyLnNldENvbnRhaW5lckhlaWdodChcbiAgICAgIHRoaXMuY29udGFpbmVyRWwsXG4gICAgICBgJHtjdXJyZW50SGVpZ2h0fXB4YFxuICAgICk7XG4gIH1cblxuICBwcml2YXRlIGFuaW1hdGVSZXBlYXRlcihleHBhbmRpbmc6IGJvb2xlYW4pIHtcbiAgICBjb25zdCBhZGFwdGVyID0gdGhpcy50ZXh0RXhwYW5kUmVwZWF0ZXJBZGFwdGVyO1xuICAgIGNvbnN0IGNvbnRhaW5lciA9IHRoaXMuY29udGFpbmVyRWw7XG5cbiAgICBhZGFwdGVyLnNldENvbnRhaW5lckhlaWdodChjb250YWluZXIsIHVuZGVmaW5lZCk7XG4gICAgY29uc3QgY3VycmVudEhlaWdodCA9IGFkYXB0ZXIuZ2V0Q29udGFpbmVySGVpZ2h0KGNvbnRhaW5lcik7XG4gICAgZm9yIChsZXQgaSA9IHRoaXMubWF4SXRlbXM7IGkgPCB0aGlzLmNvbnRlbnRJdGVtcy5sZW5ndGg7IGkrKykge1xuICAgICAgaWYgKCFleHBhbmRpbmcpIHtcbiAgICAgICAgYWRhcHRlci5oaWRlSXRlbSh0aGlzLml0ZW1zW2ldKTtcbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIGFkYXB0ZXIuc2hvd0l0ZW0odGhpcy5pdGVtc1tpXSk7XG4gICAgICB9XG4gICAgfVxuICAgIGNvbnN0IG5ld0hlaWdodCA9IGFkYXB0ZXIuZ2V0Q29udGFpbmVySGVpZ2h0KGNvbnRhaW5lcik7XG4gICAgaWYgKCFleHBhbmRpbmcpIHtcbiAgICAgIHRoaXMuYnV0dG9uVGV4dCA9IHRoaXMuc2VlTW9yZVRleHQ7XG4gICAgfSBlbHNlIHtcbiAgICAgIHRoaXMuYnV0dG9uVGV4dCA9IHRoaXMuc2VlTGVzc1RleHQ7XG4gICAgfVxuICAgIGlmIChuZXdIZWlnaHQgPCBjdXJyZW50SGVpZ2h0KSB7XG4gICAgICAvLyBUaGUgbmV3IHRleHQgaXMgc21hbGxlciB0aGFuIHRoZSBvbGQgdGV4dCwgc28gcHV0IHRoZSBvbGQgdGV4dCBiYWNrIGJlZm9yZSBkb2luZ1xuICAgICAgLy8gdGhlIGNvbGxhcHNlIGFuaW1hdGlvbiB0byBhdm9pZCBzaG93aW5nIGEgYmlnIGNodW5rIG9mIHdoaXRlc3BhY2UuXG4gICAgICBmb3IgKGxldCBpID0gdGhpcy5tYXhJdGVtczsgaSA8IHRoaXMuY29udGVudEl0ZW1zLmxlbmd0aDsgaSsrKSB7XG4gICAgICAgIGFkYXB0ZXIuc2hvd0l0ZW0odGhpcy5pdGVtc1tpXSk7XG4gICAgICB9XG4gICAgfVxuXG4gICAgYWRhcHRlci5zZXRDb250YWluZXJIZWlnaHQoY29udGFpbmVyLCBgJHtjdXJyZW50SGVpZ2h0fXB4YCk7XG4gICAgLy8gVGhpcyB0aW1lb3V0IGlzIG5lY2Vzc2FyeSBkdWUgdG8gdGhlIGJyb3dzZXIgbmVlZGluZyB0byBwaWNrIHVwIHRoZSBub24tYXV0byBoZWlnaHQgYmVpbmcgc2V0XG4gICAgLy8gaW4gb3JkZXIgdG8gZG8gdGhlIHRyYW5zdGlvbiBpbiBoZWlnaHQgY29ycmVjdGx5LiBXaXRob3V0IGl0IHRoZSB0cmFuc2l0aW9uIGRvZXMgbm90IGZpcmUuXG4gICAgc2V0VGltZW91dCgoKSA9PiB7XG4gICAgICBhZGFwdGVyLnNldENvbnRhaW5lckhlaWdodChjb250YWluZXIsIGAke25ld0hlaWdodH1weGApO1xuICAgICAgLyogVGhpcyByZXNldHMgdmFsdWVzIGlmIHRoZSB0cmFuc2l0aW9uIGRvZXMgbm90IGdldCBraWNrZWQgb2ZmICovXG4gICAgICBzZXRUaW1lb3V0KCgpID0+IHtcbiAgICAgICAgdGhpcy5hbmltYXRpb25FbmQoKTtcbiAgICAgIH0sIDUwMCk7XG4gICAgfSwgMTApO1xuICB9XG5cbiAgcHJpdmF0ZSBzZXR1cCh2YWx1ZTogQXJyYXk8YW55Pikge1xuICAgIGlmICh2YWx1ZSkge1xuICAgICAgY29uc3QgbGVuZ3RoID0gdmFsdWUubGVuZ3RoO1xuICAgICAgaWYgKGxlbmd0aCA+IHRoaXMubWF4SXRlbXMpIHtcbiAgICAgICAgdGhpcy5leHBhbmRhYmxlID0gdHJ1ZTtcbiAgICAgICAgdGhpcy5idXR0b25UZXh0ID0gdGhpcy5zZWVNb3JlVGV4dDtcbiAgICAgICAgdGhpcy5pc0V4cGFuZGVkID0gZmFsc2U7XG4gICAgICB9IGVsc2Uge1xuICAgICAgICB0aGlzLmV4cGFuZGFibGUgPSBmYWxzZTtcbiAgICAgIH1cbiAgICAgIHRoaXMuY29udGVudEl0ZW1zID0gdmFsdWU7XG4gICAgfSBlbHNlIHtcbiAgICAgIHRoaXMuY29udGVudEl0ZW1zID0gdW5kZWZpbmVkO1xuICAgICAgdGhpcy5leHBhbmRhYmxlID0gZmFsc2U7XG4gICAgfVxuICB9XG59XG4iLCI8ZGl2IGNsYXNzPVwic2t5LXRleHQtZXhwYW5kLXJlcGVhdGVyXCI+XG4gIDx1bFxuICAgICpuZ0lmPVwibGlzdFN0eWxlICE9PSAnb3JkZXJlZCdcIlxuICAgIGNsYXNzPVwic2t5LXRleHQtZXhwYW5kLXJlcGVhdGVyLWNvbnRhaW5lclwiXG4gICAgW2lkXT1cImNvbnRlbnRTZWN0aW9uSWRcIlxuICAgICh0cmFuc2l0aW9uZW5kKT1cImFuaW1hdGlvbkVuZCgpXCJcbiAgICBbbmdDbGFzc109XCJ7XG4gICAgICAnc2t5LXRleHQtZXhwYW5kLXJlcGVhdGVyLWxpc3Qtc3R5bGUtbm9uZSc6IGxpc3RTdHlsZSA9PT0gJ3Vuc3R5bGVkJ1xuICAgIH1cIlxuICAgICNjb250YWluZXJcbiAgPlxuICAgIDxuZy10ZW1wbGF0ZSBbbmdUZW1wbGF0ZU91dGxldF09XCJsaXN0SXRlbVRlbXBsYXRlXCI+PC9uZy10ZW1wbGF0ZT5cbiAgPC91bD5cbiAgPG9sXG4gICAgKm5nSWY9XCJsaXN0U3R5bGUgPT09ICdvcmRlcmVkJ1wiXG4gICAgY2xhc3M9XCJza3ktdGV4dC1leHBhbmQtcmVwZWF0ZXItY29udGFpbmVyXCJcbiAgICBbaWRdPVwiY29udGVudFNlY3Rpb25JZFwiXG4gICAgKHRyYW5zaXRpb25lbmQpPVwiYW5pbWF0aW9uRW5kKClcIlxuICAgICNjb250YWluZXJcbiAgPlxuICAgIDxuZy10ZW1wbGF0ZSBbbmdUZW1wbGF0ZU91dGxldF09XCJsaXN0SXRlbVRlbXBsYXRlXCI+PC9uZy10ZW1wbGF0ZT5cbiAgPC9vbD5cbiAgPGJ1dHRvblxuICAgICpuZ0lmPVwiZXhwYW5kYWJsZVwiXG4gICAgdHlwZT1cImJ1dHRvblwiXG4gICAgY2xhc3M9XCJza3ktYnRuIHNreS1idG4tbGluay1pbmxpbmUgc2t5LXRleHQtZXhwYW5kLXJlcGVhdGVyLXNlZS1tb3JlXCJcbiAgICBbYXR0ci5hcmlhLWV4cGFuZGVkXT1cImlzRXhwYW5kZWRcIlxuICAgIFthdHRyLmFyaWEtY29udHJvbHNdPVwiY29udGVudFNlY3Rpb25JZFwiXG4gICAgKGNsaWNrKT1cInJlcGVhdGVyRXhwYW5kKClcIlxuICAgIFtuZ0NsYXNzXT1cIntcbiAgICAgICdza3ktdGV4dC1leHBhbmQtcmVwZWF0ZXItc2VlLW1vcmUtbGlzdC1zdHlsZS1ub25lJzpcbiAgICAgICAgbGlzdFN0eWxlID09PSAndW5zdHlsZWQnXG4gICAgfVwiXG4gID5cbiAgICB7eyBidXR0b25UZXh0IH19XG4gIDwvYnV0dG9uPlxuPC9kaXY+XG5cbjxuZy10ZW1wbGF0ZSBsZXQtaXRlbSAjZGVmYXVsdEl0ZW1UZW1wbGF0ZT5cbiAge3sgaXRlbSB9fVxuPC9uZy10ZW1wbGF0ZT5cblxuPG5nLXRlbXBsYXRlICNsaXN0SXRlbVRlbXBsYXRlPlxuICA8bGkgKm5nRm9yPVwibGV0IGl0ZW0gb2YgY29udGVudEl0ZW1zXCIgY2xhc3M9XCJza3ktdGV4dC1leHBhbmQtcmVwZWF0ZXItaXRlbVwiPlxuICAgIDxuZy10ZW1wbGF0ZVxuICAgICAgW25nVGVtcGxhdGVPdXRsZXRdPVwiaXRlbVRlbXBsYXRlIHx8IGRlZmF1bHRJdGVtVGVtcGxhdGVcIlxuICAgICAgW25nVGVtcGxhdGVPdXRsZXRDb250ZXh0XT1cInsgJGltcGxpY2l0OiBpdGVtIH1cIlxuICAgID48L25nLXRlbXBsYXRlPlxuICA8L2xpPlxuPC9uZy10ZW1wbGF0ZT5cbiJdfQ==
|
|
@@ -0,0 +1,20 @@
|
|
|
1
|
+
import { CommonModule } from '@angular/common';
|
|
2
|
+
import { NgModule } from '@angular/core';
|
|
3
|
+
import { SkyI18nModule } from '@skyux/i18n';
|
|
4
|
+
import { SkyLayoutResourcesModule } from '../shared/sky-layout-resources.module';
|
|
5
|
+
import { SkyTextExpandRepeaterComponent } from './text-expand-repeater.component';
|
|
6
|
+
import * as i0 from "@angular/core";
|
|
7
|
+
export class SkyTextExpandRepeaterModule {
|
|
8
|
+
}
|
|
9
|
+
SkyTextExpandRepeaterModule.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.2.7", ngImport: i0, type: SkyTextExpandRepeaterModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });
|
|
10
|
+
SkyTextExpandRepeaterModule.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "12.0.0", version: "13.2.7", ngImport: i0, type: SkyTextExpandRepeaterModule, declarations: [SkyTextExpandRepeaterComponent], imports: [SkyI18nModule, SkyLayoutResourcesModule, CommonModule], exports: [SkyTextExpandRepeaterComponent] });
|
|
11
|
+
SkyTextExpandRepeaterModule.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "13.2.7", ngImport: i0, type: SkyTextExpandRepeaterModule, imports: [[SkyI18nModule, SkyLayoutResourcesModule, CommonModule]] });
|
|
12
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.2.7", ngImport: i0, type: SkyTextExpandRepeaterModule, decorators: [{
|
|
13
|
+
type: NgModule,
|
|
14
|
+
args: [{
|
|
15
|
+
declarations: [SkyTextExpandRepeaterComponent],
|
|
16
|
+
imports: [SkyI18nModule, SkyLayoutResourcesModule, CommonModule],
|
|
17
|
+
exports: [SkyTextExpandRepeaterComponent],
|
|
18
|
+
}]
|
|
19
|
+
}] });
|
|
20
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGV4dC1leHBhbmQtcmVwZWF0ZXIubW9kdWxlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vbGlicy9jb21wb25lbnRzL2xheW91dC9zcmMvbGliL21vZHVsZXMvdGV4dC1leHBhbmQtcmVwZWF0ZXIvdGV4dC1leHBhbmQtcmVwZWF0ZXIubW9kdWxlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUMvQyxPQUFPLEVBQUUsUUFBUSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQ3pDLE9BQU8sRUFBRSxhQUFhLEVBQUUsTUFBTSxhQUFhLENBQUM7QUFFNUMsT0FBTyxFQUFFLHdCQUF3QixFQUFFLE1BQU0sdUNBQXVDLENBQUM7QUFFakYsT0FBTyxFQUFFLDhCQUE4QixFQUFFLE1BQU0sa0NBQWtDLENBQUM7O0FBT2xGLE1BQU0sT0FBTywyQkFBMkI7O3dIQUEzQiwyQkFBMkI7eUhBQTNCLDJCQUEyQixpQkFKdkIsOEJBQThCLGFBQ25DLGFBQWEsRUFBRSx3QkFBd0IsRUFBRSxZQUFZLGFBQ3JELDhCQUE4Qjt5SEFFN0IsMkJBQTJCLFlBSDdCLENBQUMsYUFBYSxFQUFFLHdCQUF3QixFQUFFLFlBQVksQ0FBQzsyRkFHckQsMkJBQTJCO2tCQUx2QyxRQUFRO21CQUFDO29CQUNSLFlBQVksRUFBRSxDQUFDLDhCQUE4QixDQUFDO29CQUM5QyxPQUFPLEVBQUUsQ0FBQyxhQUFhLEVBQUUsd0JBQXdCLEVBQUUsWUFBWSxDQUFDO29CQUNoRSxPQUFPLEVBQUUsQ0FBQyw4QkFBOEIsQ0FBQztpQkFDMUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDb21tb25Nb2R1bGUgfSBmcm9tICdAYW5ndWxhci9jb21tb24nO1xuaW1wb3J0IHsgTmdNb2R1bGUgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IFNreUkxOG5Nb2R1bGUgfSBmcm9tICdAc2t5dXgvaTE4bic7XG5cbmltcG9ydCB7IFNreUxheW91dFJlc291cmNlc01vZHVsZSB9IGZyb20gJy4uL3NoYXJlZC9za3ktbGF5b3V0LXJlc291cmNlcy5tb2R1bGUnO1xuXG5pbXBvcnQgeyBTa3lUZXh0RXhwYW5kUmVwZWF0ZXJDb21wb25lbnQgfSBmcm9tICcuL3RleHQtZXhwYW5kLXJlcGVhdGVyLmNvbXBvbmVudCc7XG5cbkBOZ01vZHVsZSh7XG4gIGRlY2xhcmF0aW9uczogW1NreVRleHRFeHBhbmRSZXBlYXRlckNvbXBvbmVudF0sXG4gIGltcG9ydHM6IFtTa3lJMThuTW9kdWxlLCBTa3lMYXlvdXRSZXNvdXJjZXNNb2R1bGUsIENvbW1vbk1vZHVsZV0sXG4gIGV4cG9ydHM6IFtTa3lUZXh0RXhwYW5kUmVwZWF0ZXJDb21wb25lbnRdLFxufSlcbmV4cG9ydCBjbGFzcyBTa3lUZXh0RXhwYW5kUmVwZWF0ZXJNb2R1bGUge31cbiJdfQ==
|
package/esm2020/lib/modules/text-expand-repeater/types/text-expand-repeater-list-style-type.mjs
ADDED
|
@@ -0,0 +1,2 @@
|
|
|
1
|
+
export {};
|
|
2
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGV4dC1leHBhbmQtcmVwZWF0ZXItbGlzdC1zdHlsZS10eXBlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vbGlicy9jb21wb25lbnRzL2xheW91dC9zcmMvbGliL21vZHVsZXMvdGV4dC1leHBhbmQtcmVwZWF0ZXIvdHlwZXMvdGV4dC1leHBhbmQtcmVwZWF0ZXItbGlzdC1zdHlsZS10eXBlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiIiLCJzb3VyY2VzQ29udGVudCI6WyJleHBvcnQgdHlwZSBTa3lUZXh0RXhwYW5kUmVwZWF0ZXJMaXN0U3R5bGVUeXBlID1cbiAgfCAndW5vcmRlcmVkJ1xuICB8ICdvcmRlcmVkJ1xuICB8ICd1bnN0eWxlZCc7XG4iXX0=
|