@rivet-health/design-system 40.44.0 → 40.44.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/{esm2020 → esm2022}/lib/accessibility/sr-only/sr-only.component.mjs +4 -4
- package/esm2022/lib/download/download.service.mjs +47 -0
- package/{esm2020 → esm2022}/lib/format/pipes/common.mjs +5 -5
- package/{esm2020 → esm2022}/lib/format/pipes/date.pipe.mjs +4 -4
- package/{esm2020 → esm2022}/lib/format/pipes/days.pipe.mjs +4 -4
- package/{esm2020 → esm2022}/lib/format/pipes/dollars.pipe.mjs +4 -4
- package/{esm2020 → esm2022}/lib/format/pipes/number.pipe.mjs +4 -4
- package/{esm2020 → esm2022}/lib/format/pipes/percentage.pipe.mjs +4 -4
- package/esm2022/lib/format/pipes/sentence-case.pipe.mjs +61 -0
- package/esm2022/lib/format/pipes/small-currency.pipe.mjs +24 -0
- package/esm2022/lib/format/pipes/small-number.pipe.mjs +29 -0
- package/esm2022/lib/format/svg-text-truncate/svg-text-truncate.directive.mjs +62 -0
- package/esm2022/lib/format/truncate/truncate.component.mjs +51 -0
- package/esm2022/lib/icon/dom-cache.mjs +32 -0
- package/esm2022/lib/icon/icon.component.mjs +86 -0
- package/{esm2020 → esm2022}/lib/icon/icons.mjs +1 -1
- package/{esm2020 → esm2022}/lib/input/alphabetic-field/alphabetic-field.component.mjs +4 -4
- package/esm2022/lib/input/auto-focus/auto-focus.directive.mjs +48 -0
- package/esm2022/lib/input/button/button.component.mjs +139 -0
- package/esm2022/lib/input/button-group/button-group.component.mjs +39 -0
- package/{esm2020 → esm2022}/lib/input/calendar/calendar.component.mjs +4 -4
- package/{esm2020 → esm2022}/lib/input/card-checkbox/card-checkbox.component.mjs +4 -4
- package/{esm2020 → esm2022}/lib/input/checkbox/checkbox.component.mjs +4 -4
- package/{esm2020 → esm2022}/lib/input/currency-field/currency-field.component.mjs +4 -4
- package/esm2022/lib/input/date/date.component.mjs +279 -0
- package/esm2022/lib/input/date-range/date-range.component.mjs +477 -0
- package/esm2022/lib/input/filter-chip/filter-chip.component.mjs +47 -0
- package/{esm2020 → esm2022}/lib/input/filter-dropdown/filter-dropdown.component.mjs +5 -5
- package/{esm2020 → esm2022}/lib/input/input-label/input-label.component.mjs +4 -4
- package/esm2022/lib/input/mentions-input/mentions-input.component.mjs +745 -0
- package/esm2022/lib/input/number-field/number-field.component.mjs +125 -0
- package/{esm2020 → esm2022}/lib/input/percentage-field/percentage-field.component.mjs +4 -4
- package/esm2022/lib/input/phone-field/phone-field.component.mjs +74 -0
- package/{esm2020 → esm2022}/lib/input/radio/radio.component.mjs +4 -4
- package/{esm2020 → esm2022}/lib/input/search/search.component.mjs +4 -4
- package/esm2022/lib/input/search-select/search-select.component.mjs +189 -0
- package/esm2022/lib/input/select/select/select.component.mjs +178 -0
- package/{esm2020 → esm2022}/lib/input/select/select-node/select-node.component.mjs +4 -4
- package/esm2022/lib/input/select/state.mjs +882 -0
- package/{esm2020 → esm2022}/lib/input/simple-select/option-group.pipe.mjs +4 -4
- package/esm2022/lib/input/simple-select/simple-select.component.mjs +178 -0
- package/esm2022/lib/input/switch-checkbox/switch-checkbox.component.mjs +33 -0
- package/esm2022/lib/input/text-field/text-field.component.mjs +115 -0
- package/{esm2020 → esm2022}/lib/input/textarea-field/textarea-field.component.mjs +4 -4
- package/{esm2020 → esm2022}/lib/input/validation-message/validation-message.component.mjs +4 -4
- package/{esm2020 → esm2022}/lib/layout/card/card-actions.component.mjs +4 -4
- package/esm2022/lib/layout/card/card-content.component.mjs +64 -0
- package/esm2022/lib/layout/card/card-header.component.mjs +201 -0
- package/{esm2020 → esm2022}/lib/layout/card/card-link.component.mjs +5 -5
- package/{esm2020 → esm2022}/lib/layout/card/card-media.component.mjs +4 -4
- package/esm2022/lib/layout/card/card.component.mjs +291 -0
- package/{esm2020 → esm2022}/lib/layout/setting-row/setting-row.component.mjs +4 -4
- package/esm2022/lib/load/loading/loading.component.mjs +43 -0
- package/{esm2020 → esm2022}/lib/load/loading-cover/loading-cover.component.mjs +4 -4
- package/esm2022/lib/navigation/editable-heading/editable-heading.component.mjs +243 -0
- package/{esm2020 → esm2022}/lib/navigation/link/link.component.mjs +6 -6
- package/{esm2020 → esm2022}/lib/navigation/page-header/page-header.component.mjs +4 -4
- package/{esm2020 → esm2022}/lib/navigation/simple-tabs/simple-tab/simple-tab.component.mjs +4 -4
- package/{esm2020 → esm2022}/lib/navigation/simple-tabs/simple-tabs/simple-tabs.component.mjs +4 -4
- package/{esm2020 → esm2022}/lib/navigation/tabs/tab/tab.component.mjs +4 -4
- package/{esm2020 → esm2022}/lib/navigation/tabs/tabs/tabs.component.mjs +4 -4
- package/{esm2020 → esm2022}/lib/navigation/views/all-views-modal/all-views-modal.component.mjs +4 -4
- package/{esm2020 → esm2022}/lib/navigation/views/edit-view/edit-view.component.mjs +9 -9
- package/esm2022/lib/navigation/views/permission-picker/permission-picker.component.mjs +151 -0
- package/esm2022/lib/navigation/views/state.mjs +456 -0
- package/{esm2020 → esm2022}/lib/navigation/views/view-menu/view-menu.component.mjs +5 -5
- package/esm2022/lib/navigation/views/views/views.component.mjs +90 -0
- package/{esm2020 → esm2022}/lib/notification/badge/badge.component.mjs +4 -4
- package/esm2022/lib/notification/banner/banner-action.component.mjs +48 -0
- package/esm2022/lib/notification/banner/banner.component.mjs +61 -0
- package/esm2022/lib/notification/map-indicator/map-indicator.component.mjs +50 -0
- package/esm2022/lib/notification/map-indicator/map-indicators.mjs +15 -0
- package/{esm2020 → esm2022}/lib/notification/notification-badge/notification-badge.component.mjs +4 -4
- package/esm2022/lib/overlay/callout/callout.component.mjs +130 -0
- package/esm2022/lib/overlay/callout/callout.helpers.mjs +113 -0
- package/{esm2020 → esm2022}/lib/overlay/callout/help/help.component.mjs +4 -4
- package/esm2022/lib/overlay/callout/lock-scroll.directive.mjs +69 -0
- package/{esm2020 → esm2022}/lib/overlay/callout/menu/menu-item/menu-item.component.mjs +5 -5
- package/{esm2020 → esm2022}/lib/overlay/callout/menu/menu.component.mjs +4 -4
- package/esm2022/lib/overlay/callout/tooltip/locked-tooltip.directive.mjs +30 -0
- package/{esm2020 → esm2022}/lib/overlay/callout/tooltip/tooltip.component.mjs +4 -4
- package/esm2022/lib/overlay/callout/tooltip/tooltip.directive.mjs +138 -0
- package/esm2022/lib/overlay/modal/dialog/dialog.component.mjs +47 -0
- package/{esm2020 → esm2022}/lib/overlay/modal/dialog-stack.service.mjs +4 -4
- package/esm2022/lib/overlay/modal/form-dialog/form-dialog.component.mjs +146 -0
- package/esm2022/lib/overlay/modal/modal.component.mjs +31 -0
- package/{esm2020 → esm2022}/lib/overlay/modal/side-sheet/side-sheet.component.mjs +4 -4
- package/esm2022/lib/overlay/overlay-outlet.component.mjs +98 -0
- package/{esm2020 → esm2022}/lib/overlay/overlay.directive.mjs +5 -5
- package/{esm2020 → esm2022}/lib/overlay/overlay.service.mjs +5 -5
- package/{esm2020 → esm2022}/lib/overlay/toast/toast-action.component.mjs +4 -4
- package/esm2022/lib/overlay/toast/toast.component.mjs +41 -0
- package/{esm2020 → esm2022}/lib/riv.module.mjs +227 -227
- package/esm2022/lib/size/size.directive.mjs +33 -0
- package/esm2022/lib/table/simple-table/coordinate-helper.mjs +61 -0
- package/esm2022/lib/table/simple-table/simple-table-cell.component.mjs +36 -0
- package/esm2022/lib/table/simple-table/simple-table-header-cell.component.mjs +37 -0
- package/{esm2020 → esm2022}/lib/table/simple-table/simple-table-row.component.mjs +4 -4
- package/esm2022/lib/table/simple-table/simple-table.component.mjs +104 -0
- package/esm2022/lib/table/table/clipboard.mjs +182 -0
- package/esm2022/lib/table/table/state-helpers/collapse-helpers.mjs +116 -0
- package/esm2022/lib/table/table/state-helpers/column-helpers.mjs +383 -0
- package/{esm2020 → esm2022}/lib/table/table/state-helpers/display-helpers.mjs +1 -1
- package/esm2022/lib/table/table/state-helpers/nesting-helpers.mjs +123 -0
- package/esm2022/lib/table/table/state-helpers/order-helpers.mjs +164 -0
- package/esm2022/lib/table/table/state-helpers/pagination-helpers.mjs +139 -0
- package/esm2022/lib/table/table/state-helpers/result-helpers.mjs +70 -0
- package/esm2022/lib/table/table/state-helpers/search-helpers.mjs +72 -0
- package/esm2022/lib/table/table/state-helpers/selection-helpers.mjs +180 -0
- package/esm2022/lib/table/table/state.mjs +1035 -0
- package/esm2022/lib/table/table/table/table.component.mjs +367 -0
- package/{esm2020 → esm2022}/lib/table/table/table-collapse-all/table-collapse-all.component.mjs +5 -5
- package/esm2022/lib/table/table/table-column-settings/table-column-settings-side-sheet.component.mjs +227 -0
- package/esm2022/lib/table/table/table-column-settings/table-column-settings.component.mjs +134 -0
- package/esm2022/lib/table/table/table-csv-export/table-csv-export.component.mjs +35 -0
- package/{esm2020 → esm2022}/lib/table/table/table-header-resize-handle/table-header-resize-handle.component.mjs +6 -6
- package/esm2022/lib/table/table/table-search/table-search.component.mjs +71 -0
- package/{esm2020 → esm2022}/lib/table/table/table-search-columns/table-search-columns.component.mjs +4 -4
- package/esm2022/lib/visibility/visibility.directive.mjs +34 -0
- package/esm2022/lib/visualization/chart/chart-scaling.mjs +380 -0
- package/esm2022/lib/visualization/chart/chart.component.mjs +626 -0
- package/esm2022/lib/visualization/chart/chart.mjs +3768 -0
- package/{esm2020 → esm2022}/lib/visualization/data-table/data-table-cell.component.mjs +5 -5
- package/{esm2020 → esm2022}/lib/visualization/data-table/data-table-header-cell.component.mjs +4 -4
- package/{esm2020 → esm2022}/lib/visualization/data-table/data-table-row.component.mjs +4 -4
- package/{esm2020 → esm2022}/lib/visualization/data-table/data-table.component.mjs +4 -4
- package/{esm2020 → esm2022}/lib/visualization/donut/donut.component.mjs +4 -4
- package/{esm2020 → esm2022}/lib/visualization/funnel-chart/funnel-chart.component.mjs +5 -5
- package/esm2022/lib/visualization/funnel-chart/funnel-chart.helpers.mjs +33 -0
- package/{esm2020 → esm2022}/lib/visualization/highlight/highlight.component.mjs +4 -4
- package/esm2022/lib/visualization/highlight/highlight.helpers.mjs +20 -0
- package/esm2022/lib/visualization/intervals.mjs +63 -0
- package/{esm2020 → esm2022}/lib/visualization/issue/issue.component.mjs +4 -4
- package/{esm2020 → esm2022}/lib/visualization/legend-item/legend-item.component.mjs +4 -4
- package/{esm2020 → esm2022}/lib/visualization/metric/metric.component.mjs +4 -4
- package/{esm2020 → esm2022}/lib/visualization/mini-pie/mini-pie.component.mjs +4 -4
- package/{esm2020 → esm2022}/lib/visualization/progress/progress.component.mjs +5 -5
- package/esm2022/lib/visualization/stacked-column/stacked-column.component.mjs +377 -0
- package/esm2022/lib/visualization/stacked-column/stacked-column.helpers.mjs +18 -0
- package/esm2022/lib/visualization/stacked-row/stacked-row.component.mjs +270 -0
- package/esm2022/lib/visualization/stacked-row/stacked-row.helpers.mjs +74 -0
- package/esm2022/lib/visualization/time-series/time-series.component.mjs +374 -0
- package/esm2022/lib/visualization/time-series/time-series.helpers.mjs +15 -0
- package/esm2022/lib/visualization/trend/trend.component.mjs +51 -0
- package/{esm2020 → esm2022}/lib/visualization/zero-state/zero-state.component.mjs +4 -4
- package/{fesm2020 → fesm2022}/rivet-health-design-system.mjs +670 -670
- package/{fesm2020 → fesm2022}/rivet-health-design-system.mjs.map +1 -1
- package/lib/format/svg-text-truncate/svg-text-truncate.directive.d.ts +1 -1
- package/lib/format/truncate/truncate.component.d.ts +1 -1
- package/lib/icon/icon.component.d.ts +1 -1
- package/lib/input/auto-focus/auto-focus.directive.d.ts +1 -1
- package/lib/input/button/button.component.d.ts +1 -1
- package/lib/input/calendar/calendar.component.d.ts +1 -1
- package/lib/input/checkbox/checkbox.component.d.ts +1 -1
- package/lib/input/currency-field/currency-field.component.d.ts +1 -1
- package/lib/input/date/date.component.d.ts +1 -1
- package/lib/input/date-range/date-range.component.d.ts +1 -1
- package/lib/input/filter-chip/filter-chip.component.d.ts +1 -1
- package/lib/input/filter-dropdown/filter-dropdown.component.d.ts +1 -1
- package/lib/input/input-label/input-label.component.d.ts +1 -1
- package/lib/input/mentions-input/mentions-input.component.d.ts +1 -1
- package/lib/input/number-field/number-field.component.d.ts +1 -1
- package/lib/input/percentage-field/percentage-field.component.d.ts +1 -1
- package/lib/input/phone-field/phone-field.component.d.ts +1 -1
- package/lib/input/radio/radio.component.d.ts +1 -1
- package/lib/input/search/search.component.d.ts +1 -1
- package/lib/input/search-select/search-select.component.d.ts +1 -1
- package/lib/input/select/select/select.component.d.ts +1 -1
- package/lib/input/select/select-node/select-node.component.d.ts +1 -1
- package/lib/input/simple-select/simple-select.component.d.ts +1 -1
- package/lib/input/switch-checkbox/switch-checkbox.component.d.ts +1 -1
- package/lib/input/text-field/text-field.component.d.ts +1 -1
- package/lib/input/textarea-field/textarea-field.component.d.ts +1 -1
- package/lib/input/validation-message/validation-message.component.d.ts +1 -1
- package/lib/layout/card/card-actions.component.d.ts +1 -1
- package/lib/layout/card/card-content.component.d.ts +1 -1
- package/lib/layout/card/card-header.component.d.ts +1 -1
- package/lib/layout/card/card-link.component.d.ts +1 -1
- package/lib/layout/card/card-media.component.d.ts +1 -1
- package/lib/layout/card/card.component.d.ts +1 -1
- package/lib/layout/setting-row/setting-row.component.d.ts +1 -1
- package/lib/load/loading/loading.component.d.ts +1 -1
- package/lib/load/loading-cover/loading-cover.component.d.ts +1 -1
- package/lib/navigation/editable-heading/editable-heading.component.d.ts +1 -1
- package/lib/navigation/link/link.component.d.ts +1 -1
- package/lib/navigation/page-header/page-header.component.d.ts +1 -1
- package/lib/navigation/simple-tabs/simple-tab/simple-tab.component.d.ts +1 -1
- package/lib/navigation/tabs/tab/tab.component.d.ts +1 -1
- package/lib/navigation/views/all-views-modal/all-views-modal.component.d.ts +1 -1
- package/lib/navigation/views/edit-view/edit-view.component.d.ts +1 -1
- package/lib/navigation/views/permission-picker/permission-picker.component.d.ts +3 -3
- package/lib/navigation/views/view-menu/view-menu.component.d.ts +1 -1
- package/lib/navigation/views/views/views.component.d.ts +1 -1
- package/lib/notification/badge/badge.component.d.ts +1 -1
- package/lib/notification/banner/banner-action.component.d.ts +1 -1
- package/lib/notification/banner/banner.component.d.ts +1 -1
- package/lib/notification/map-indicator/map-indicator.component.d.ts +1 -1
- package/lib/notification/notification-badge/notification-badge.component.d.ts +1 -1
- package/lib/overlay/callout/callout.component.d.ts +1 -1
- package/lib/overlay/callout/help/help.component.d.ts +1 -1
- package/lib/overlay/callout/lock-scroll.directive.d.ts +1 -1
- package/lib/overlay/callout/menu/menu-item/menu-item.component.d.ts +1 -1
- package/lib/overlay/callout/menu/menu.component.d.ts +1 -1
- package/lib/overlay/callout/tooltip/locked-tooltip.directive.d.ts +1 -1
- package/lib/overlay/callout/tooltip/tooltip.component.d.ts +1 -1
- package/lib/overlay/callout/tooltip/tooltip.directive.d.ts +1 -1
- package/lib/overlay/modal/dialog/dialog.component.d.ts +1 -1
- package/lib/overlay/modal/form-dialog/form-dialog.component.d.ts +1 -1
- package/lib/overlay/modal/modal.component.d.ts +1 -1
- package/lib/overlay/modal/side-sheet/side-sheet.component.d.ts +1 -1
- package/lib/overlay/toast/toast.component.d.ts +1 -1
- package/lib/table/simple-table/simple-table-header-cell.component.d.ts +1 -1
- package/lib/table/simple-table/simple-table-row.component.d.ts +1 -1
- package/lib/table/table/table/table.component.d.ts +1 -1
- package/lib/table/table/table-collapse-all/table-collapse-all.component.d.ts +1 -1
- package/lib/table/table/table-column-settings/table-column-settings-side-sheet.component.d.ts +1 -1
- package/lib/table/table/table-column-settings/table-column-settings.component.d.ts +1 -1
- package/lib/table/table/table-csv-export/table-csv-export.component.d.ts +1 -1
- package/lib/table/table/table-search/table-search.component.d.ts +1 -1
- package/lib/table/table/table-search-columns/table-search-columns.component.d.ts +1 -1
- package/lib/visualization/chart/chart.component.d.ts +1 -1
- package/lib/visualization/data-table/data-table-row.component.d.ts +1 -1
- package/lib/visualization/donut/donut.component.d.ts +1 -1
- package/lib/visualization/funnel-chart/funnel-chart.component.d.ts +1 -1
- package/lib/visualization/highlight/highlight.component.d.ts +1 -1
- package/lib/visualization/issue/issue.component.d.ts +1 -1
- package/lib/visualization/legend-item/legend-item.component.d.ts +1 -1
- package/lib/visualization/metric/metric.component.d.ts +1 -1
- package/lib/visualization/mini-pie/mini-pie.component.d.ts +1 -1
- package/lib/visualization/progress/progress.component.d.ts +1 -1
- package/lib/visualization/stacked-column/stacked-column.component.d.ts +3 -3
- package/lib/visualization/stacked-row/stacked-row.component.d.ts +1 -1
- package/lib/visualization/time-series/time-series.component.d.ts +3 -3
- package/lib/visualization/trend/trend.component.d.ts +1 -1
- package/lib/visualization/zero-state/zero-state.component.d.ts +1 -1
- package/package.json +5 -11
- package/esm2020/lib/download/download.service.mjs +0 -47
- package/esm2020/lib/format/pipes/sentence-case.pipe.mjs +0 -61
- package/esm2020/lib/format/pipes/small-currency.pipe.mjs +0 -24
- package/esm2020/lib/format/pipes/small-number.pipe.mjs +0 -29
- package/esm2020/lib/format/svg-text-truncate/svg-text-truncate.directive.mjs +0 -62
- package/esm2020/lib/format/truncate/truncate.component.mjs +0 -51
- package/esm2020/lib/icon/dom-cache.mjs +0 -32
- package/esm2020/lib/icon/icon.component.mjs +0 -86
- package/esm2020/lib/input/auto-focus/auto-focus.directive.mjs +0 -48
- package/esm2020/lib/input/button/button.component.mjs +0 -139
- package/esm2020/lib/input/button-group/button-group.component.mjs +0 -39
- package/esm2020/lib/input/date/date.component.mjs +0 -279
- package/esm2020/lib/input/date-range/date-range.component.mjs +0 -477
- package/esm2020/lib/input/filter-chip/filter-chip.component.mjs +0 -47
- package/esm2020/lib/input/mentions-input/mentions-input.component.mjs +0 -745
- package/esm2020/lib/input/number-field/number-field.component.mjs +0 -125
- package/esm2020/lib/input/phone-field/phone-field.component.mjs +0 -74
- package/esm2020/lib/input/search-select/search-select.component.mjs +0 -189
- package/esm2020/lib/input/select/select/select.component.mjs +0 -178
- package/esm2020/lib/input/select/state.mjs +0 -882
- package/esm2020/lib/input/simple-select/simple-select.component.mjs +0 -178
- package/esm2020/lib/input/switch-checkbox/switch-checkbox.component.mjs +0 -33
- package/esm2020/lib/input/text-field/text-field.component.mjs +0 -115
- package/esm2020/lib/layout/card/card-content.component.mjs +0 -64
- package/esm2020/lib/layout/card/card-header.component.mjs +0 -201
- package/esm2020/lib/layout/card/card.component.mjs +0 -291
- package/esm2020/lib/load/loading/loading.component.mjs +0 -43
- package/esm2020/lib/navigation/editable-heading/editable-heading.component.mjs +0 -243
- package/esm2020/lib/navigation/views/permission-picker/permission-picker.component.mjs +0 -151
- package/esm2020/lib/navigation/views/state.mjs +0 -456
- package/esm2020/lib/navigation/views/views/views.component.mjs +0 -90
- package/esm2020/lib/notification/banner/banner-action.component.mjs +0 -48
- package/esm2020/lib/notification/banner/banner.component.mjs +0 -61
- package/esm2020/lib/notification/map-indicator/map-indicator.component.mjs +0 -50
- package/esm2020/lib/notification/map-indicator/map-indicators.mjs +0 -15
- package/esm2020/lib/overlay/callout/callout.component.mjs +0 -130
- package/esm2020/lib/overlay/callout/callout.helpers.mjs +0 -113
- package/esm2020/lib/overlay/callout/lock-scroll.directive.mjs +0 -69
- package/esm2020/lib/overlay/callout/tooltip/locked-tooltip.directive.mjs +0 -30
- package/esm2020/lib/overlay/callout/tooltip/tooltip.directive.mjs +0 -138
- package/esm2020/lib/overlay/modal/dialog/dialog.component.mjs +0 -47
- package/esm2020/lib/overlay/modal/form-dialog/form-dialog.component.mjs +0 -146
- package/esm2020/lib/overlay/modal/modal.component.mjs +0 -31
- package/esm2020/lib/overlay/overlay-outlet.component.mjs +0 -98
- package/esm2020/lib/overlay/toast/toast.component.mjs +0 -41
- package/esm2020/lib/size/size.directive.mjs +0 -33
- package/esm2020/lib/table/simple-table/coordinate-helper.mjs +0 -61
- package/esm2020/lib/table/simple-table/simple-table-cell.component.mjs +0 -36
- package/esm2020/lib/table/simple-table/simple-table-header-cell.component.mjs +0 -37
- package/esm2020/lib/table/simple-table/simple-table.component.mjs +0 -104
- package/esm2020/lib/table/table/clipboard.mjs +0 -182
- package/esm2020/lib/table/table/state-helpers/collapse-helpers.mjs +0 -116
- package/esm2020/lib/table/table/state-helpers/column-helpers.mjs +0 -383
- package/esm2020/lib/table/table/state-helpers/nesting-helpers.mjs +0 -123
- package/esm2020/lib/table/table/state-helpers/order-helpers.mjs +0 -164
- package/esm2020/lib/table/table/state-helpers/pagination-helpers.mjs +0 -139
- package/esm2020/lib/table/table/state-helpers/result-helpers.mjs +0 -70
- package/esm2020/lib/table/table/state-helpers/search-helpers.mjs +0 -72
- package/esm2020/lib/table/table/state-helpers/selection-helpers.mjs +0 -180
- package/esm2020/lib/table/table/state.mjs +0 -1035
- package/esm2020/lib/table/table/table/table.component.mjs +0 -367
- package/esm2020/lib/table/table/table-column-settings/table-column-settings-side-sheet.component.mjs +0 -227
- package/esm2020/lib/table/table/table-column-settings/table-column-settings.component.mjs +0 -134
- package/esm2020/lib/table/table/table-csv-export/table-csv-export.component.mjs +0 -35
- package/esm2020/lib/table/table/table-search/table-search.component.mjs +0 -71
- package/esm2020/lib/visibility/visibility.directive.mjs +0 -34
- package/esm2020/lib/visualization/chart/chart-scaling.mjs +0 -380
- package/esm2020/lib/visualization/chart/chart.component.mjs +0 -626
- package/esm2020/lib/visualization/chart/chart.mjs +0 -3768
- package/esm2020/lib/visualization/funnel-chart/funnel-chart.helpers.mjs +0 -33
- package/esm2020/lib/visualization/highlight/highlight.helpers.mjs +0 -20
- package/esm2020/lib/visualization/intervals.mjs +0 -63
- package/esm2020/lib/visualization/stacked-column/stacked-column.component.mjs +0 -377
- package/esm2020/lib/visualization/stacked-column/stacked-column.helpers.mjs +0 -18
- package/esm2020/lib/visualization/stacked-row/stacked-row.component.mjs +0 -270
- package/esm2020/lib/visualization/stacked-row/stacked-row.helpers.mjs +0 -74
- package/esm2020/lib/visualization/time-series/time-series.component.mjs +0 -374
- package/esm2020/lib/visualization/time-series/time-series.helpers.mjs +0 -15
- package/esm2020/lib/visualization/trend/trend.component.mjs +0 -51
- package/fesm2015/rivet-health-design-system.mjs +0 -18370
- package/fesm2015/rivet-health-design-system.mjs.map +0 -1
- /package/{esm2020 → esm2022}/lib/overlay/callout/select-callout-defaults.mjs +0 -0
- /package/{esm2020 → esm2022}/lib/util/local-storage.mjs +0 -0
- /package/{esm2020 → esm2022}/public-api.mjs +0 -0
- /package/{esm2020 → esm2022}/rivet-health-design-system.mjs +0 -0
|
@@ -0,0 +1,134 @@
|
|
|
1
|
+
import { ChangeDetectionStrategy, Component, ElementRef, Input, ViewChild, } from '@angular/core';
|
|
2
|
+
import Fuse from 'fuse.js';
|
|
3
|
+
import { BehaviorSubject, combineLatest, map } from 'rxjs';
|
|
4
|
+
import { RivTable } from '../state';
|
|
5
|
+
import * as i0 from "@angular/core";
|
|
6
|
+
import * as i1 from "@angular/common";
|
|
7
|
+
import * as i2 from "../../../input/auto-focus/auto-focus.directive";
|
|
8
|
+
import * as i3 from "../../../input/button/button.component";
|
|
9
|
+
import * as i4 from "../../../overlay/callout/callout.component";
|
|
10
|
+
import * as i5 from "../../../input/checkbox/checkbox.component";
|
|
11
|
+
import * as i6 from "../../../visualization/highlight/highlight.component";
|
|
12
|
+
import * as i7 from "../../../icon/icon.component";
|
|
13
|
+
import * as i8 from "../../../overlay/overlay.directive";
|
|
14
|
+
export class TableColumnSettingsComponent {
|
|
15
|
+
constructor() {
|
|
16
|
+
this.open = new BehaviorSubject(false);
|
|
17
|
+
this.filterQuery = new BehaviorSubject('');
|
|
18
|
+
this.searching = this.filterQuery.pipe(map(query => !!query));
|
|
19
|
+
this.maxEnabledColumns = RivTable.ColumnsMaxShown;
|
|
20
|
+
this.draggedColumnIdx = null;
|
|
21
|
+
this.draggedOverColumnIdx = null;
|
|
22
|
+
}
|
|
23
|
+
ngOnInit() {
|
|
24
|
+
this.columnList = combineLatest([
|
|
25
|
+
this.manager.state.pipe(map(s => {
|
|
26
|
+
const allColumns = s.display.allColumns.map(column => ({
|
|
27
|
+
...column,
|
|
28
|
+
resolvedName: s.display.columnNameMap.get(column.key) ?? column.key,
|
|
29
|
+
}));
|
|
30
|
+
const fuse = new Fuse(allColumns, {
|
|
31
|
+
keys: ['resolvedName'],
|
|
32
|
+
includeMatches: true,
|
|
33
|
+
threshold: 0.4,
|
|
34
|
+
});
|
|
35
|
+
return { fuse, allColumns };
|
|
36
|
+
})),
|
|
37
|
+
this.filterQuery,
|
|
38
|
+
]).pipe(map(([{ fuse, allColumns }, filterQuery]) => {
|
|
39
|
+
if (filterQuery) {
|
|
40
|
+
const matches = fuse.search(filterQuery);
|
|
41
|
+
return matches.map(match => ({
|
|
42
|
+
...match.item,
|
|
43
|
+
highlightIndices: [
|
|
44
|
+
...(match.matches?.find(result => result.key === 'resolvedName')
|
|
45
|
+
?.indices || []),
|
|
46
|
+
],
|
|
47
|
+
}));
|
|
48
|
+
}
|
|
49
|
+
return allColumns.map(column => ({
|
|
50
|
+
...column,
|
|
51
|
+
highlightIndices: [],
|
|
52
|
+
}));
|
|
53
|
+
}));
|
|
54
|
+
}
|
|
55
|
+
columnEnabledChange(column, enabled) {
|
|
56
|
+
this.manager?.actions.next({
|
|
57
|
+
type: 'columnEnabledChange',
|
|
58
|
+
column: column.key,
|
|
59
|
+
enabled,
|
|
60
|
+
});
|
|
61
|
+
}
|
|
62
|
+
columnPinChange(column, pinned) {
|
|
63
|
+
this.manager?.actions.next({
|
|
64
|
+
type: 'columnPinChange',
|
|
65
|
+
column: column.key,
|
|
66
|
+
pinned,
|
|
67
|
+
});
|
|
68
|
+
}
|
|
69
|
+
allColumnsDisabled(columns) {
|
|
70
|
+
return columns.every(c => !c.enabled);
|
|
71
|
+
}
|
|
72
|
+
disableAllColumns(columns) {
|
|
73
|
+
for (const column of columns) {
|
|
74
|
+
this.manager?.actions.next({
|
|
75
|
+
type: 'columnEnabledChange',
|
|
76
|
+
column: column.key,
|
|
77
|
+
enabled: false,
|
|
78
|
+
});
|
|
79
|
+
}
|
|
80
|
+
}
|
|
81
|
+
allColumnsEnabled(columns) {
|
|
82
|
+
return columns.every(c => c.enabled);
|
|
83
|
+
}
|
|
84
|
+
enableAllColumns(columns) {
|
|
85
|
+
for (const column of columns) {
|
|
86
|
+
this.manager?.actions.next({
|
|
87
|
+
type: 'columnEnabledChange',
|
|
88
|
+
column: column.key,
|
|
89
|
+
enabled: true,
|
|
90
|
+
});
|
|
91
|
+
}
|
|
92
|
+
}
|
|
93
|
+
showSelectAllColumns(columns) {
|
|
94
|
+
return columns.length <= this.maxEnabledColumns;
|
|
95
|
+
}
|
|
96
|
+
disableEnablingColumn(column, columns) {
|
|
97
|
+
return !column.enabled && this.disableColumnSelection(columns);
|
|
98
|
+
}
|
|
99
|
+
disableColumnSelection(columns) {
|
|
100
|
+
const enabledCount = columns.filter(c => c.enabled).length;
|
|
101
|
+
return enabledCount >= this.maxEnabledColumns;
|
|
102
|
+
}
|
|
103
|
+
limitTooltip() {
|
|
104
|
+
return `You’ve reached the ${this.maxEnabledColumns}-column limit. Hide a visible column to show this one.`;
|
|
105
|
+
}
|
|
106
|
+
dragStart(idx) {
|
|
107
|
+
this.draggedColumnIdx = idx;
|
|
108
|
+
}
|
|
109
|
+
dragOver(ontoIdx) {
|
|
110
|
+
this.draggedOverColumnIdx = ontoIdx;
|
|
111
|
+
}
|
|
112
|
+
drop(ontoIdx) {
|
|
113
|
+
if (this.draggedColumnIdx !== null) {
|
|
114
|
+
this.manager?.actions.next({
|
|
115
|
+
type: 'columnOrderChange',
|
|
116
|
+
previousIndex: this.draggedColumnIdx,
|
|
117
|
+
newIndex: ontoIdx,
|
|
118
|
+
});
|
|
119
|
+
this.draggedOverColumnIdx = null;
|
|
120
|
+
}
|
|
121
|
+
}
|
|
122
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: TableColumnSettingsComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
|
|
123
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.3.12", type: TableColumnSettingsComponent, selector: "riv-table-column-settings", inputs: { manager: "manager" }, viewQueries: [{ propertyName: "anchor", first: true, predicate: ["trigger"], descendants: true, read: ElementRef }], ngImport: i0, template: "<button\n type=\"button\"\n #trigger\n rivButton\n [icon]=\"(open | async) ? 'ChevronUp' : 'ChevronDown'\"\n [iconPosition]=\"'last'\"\n (click)=\"open.next(true)\"\n>\n Columns\n</button>\n\n<ng-container *ngIf=\"columnList | async; let columns\">\n <ng-container *ngIf=\"open | async\">\n <riv-callout\n *riv-overlay\n [anchor]=\"anchor?.nativeElement\"\n [isModal]=\"true\"\n [showCaret]=\"false\"\n [theme]=\"'light'\"\n [preferredPosition]=\"'bottom-right'\"\n [allowedPositions]=\"[\n 'bottom-right',\n 'bottom-left',\n 'top-left',\n 'top-right'\n ]\"\n (close)=\"open.next(false)\"\n >\n <input\n #filter\n class=\"filter\"\n [placeholder]=\"'Search columns'\"\n [value]=\"filterQuery | async\"\n (input)=\"filterQuery.next(filter.value)\"\n [riv-auto-focus]=\"true\"\n />\n <div class=\"column-list\">\n <div\n class=\"column\"\n *ngFor=\"let column of columns; let i = index\"\n [attr.draggable]=\"\n (searching | async) === false &&\n !disableEnablingColumn(column, columns)\n \"\n [attr.droppable]=\"\n (searching | async) === false &&\n !disableEnablingColumn(column, columns)\n \"\n (dragstart)=\"dragStart(i)\"\n (dragenter)=\"$event.preventDefault()\"\n (dragover)=\"$event.preventDefault(); dragOver(i)\"\n (drop)=\"drop(i)\"\n [class.dragged-over-top]=\"\n draggedOverColumnIdx === i &&\n draggedColumnIdx !== null &&\n draggedColumnIdx > i\n \"\n [class.dragged-over-bottom]=\"\n draggedOverColumnIdx === i &&\n draggedColumnIdx !== null &&\n draggedColumnIdx < i\n \"\n >\n <riv-checkbox\n [value]=\"column.enabled\"\n (valueChange)=\"columnEnabledChange(column, $event)\"\n [disabled]=\"disableEnablingColumn(column, columns)\"\n [checkboxTooltip]=\"\n disableEnablingColumn(column, columns)\n ? limitTooltip()\n : undefined\n \"\n >\n <riv-highlight\n [text]=\"column.resolvedName\"\n [indices]=\"column.highlightIndices\"\n ></riv-highlight>\n </riv-checkbox>\n <span\n class=\"reorder\"\n *ngIf=\"(searching | async) === false\"\n [class.disabled]=\"disableEnablingColumn(column, columns)\"\n >\n <riv-icon [name]=\"'Reorder'\" [size]=\"12\"></riv-icon>\n </span>\n <button\n type=\"button\"\n rivButton\n [variant]=\"'ghost'\"\n [size]=\"'xsmall'\"\n [icon]=\"column.pinned ? 'PinActive' : 'PinInactive'\"\n [disabled]=\"disableEnablingColumn(column, columns)\"\n (click)=\"columnPinChange(column, !column.pinned)\"\n ></button>\n </div>\n </div>\n <footer *ngIf=\"(searching | async) === false\">\n <button\n type=\"button\"\n rivButton\n [size]=\"'xsmall'\"\n [variant]=\"'ghost'\"\n [disabled]=\"allColumnsDisabled(columns)\"\n (click)=\"disableAllColumns(columns)\"\n >\n Clear\n </button>\n <button\n type=\"button\"\n rivButton\n *ngIf=\"showSelectAllColumns(columns)\"\n [size]=\"'xsmall'\"\n [variant]=\"'ghost'\"\n [disabled]=\"allColumnsEnabled(columns)\"\n (click)=\"enableAllColumns(columns)\"\n >\n Select all\n </button>\n </footer>\n </riv-callout>\n </ng-container>\n</ng-container>\n", styles: [".filter{width:100%;outline:none;border:none;border-bottom:var(--border-width) solid var(--border-light);font-size:var(--type-2-font-size);line-height:var(--type-2-line-height-0);color:var(--type-light-high-contrast);padding:var(--size-small)}.filter::placeholder{color:var(--type-light-low-contrast)}.column-list{display:flex;flex-direction:column;align-items:stretch;max-height:50vh;overflow-y:auto}.column{display:flex;align-items:center;position:relative}.column riv-checkbox{flex-grow:1}.column.dragged-over-top:before,.column.dragged-over-bottom:before{content:\"\";position:absolute;left:0;right:0;height:var(--size-xxsmall);background-color:var(--brand);box-shadow:0 0 var(--size-xxsmall) var(--brand)}.column.dragged-over-top:before{top:0}.column.dragged-over-bottom:before{bottom:0}.reorder{padding:0 var(--size-medium);display:flex;justify-content:center;align-items:center;align-self:stretch;color:var(--type-light-low-contrast);cursor:grab}.reorder.disabled{cursor:not-allowed}footer{background-color:var(--surface-light-1);border-top:var(--border-width) solid var(--border-light);display:flex;justify-content:space-between}\n"], dependencies: [{ kind: "directive", type: i1.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i2.AutoFocusDirective, selector: "[riv-auto-focus]", inputs: ["riv-auto-focus"] }, { kind: "component", type: i3.ButtonComponent, selector: "[rivButton]", inputs: ["locked", "disabled", "loading", "full", "size", "variant", "icon", "iconPosition", "current"] }, { kind: "component", type: i4.CalloutComponent, selector: "riv-callout", inputs: ["anchor", "isModal", "preferredPosition", "allowedPositions", "fallbackDirection", "showCaret", "theme"], outputs: ["close"] }, { kind: "component", type: i5.CheckboxComponent, selector: "riv-checkbox", inputs: ["name", "identifier", "value", "checkedColorToken", "indeterminateColorToken", "checkboxTooltip", "indeterminate", "disabled", "required", "state", "errorMessage", "ariaLabel"], outputs: ["valueChange"] }, { kind: "component", type: i6.HighlightComponent, selector: "riv-highlight", inputs: ["text", "indices"] }, { kind: "component", type: i7.IconComponent, selector: "riv-icon", inputs: ["name", "fillColor", "size", "customSize", "strokeWidth"] }, { kind: "directive", type: i8.OverlayDirective, selector: "[riv-overlay]" }, { kind: "pipe", type: i1.AsyncPipe, name: "async" }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
|
|
124
|
+
}
|
|
125
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: TableColumnSettingsComponent, decorators: [{
|
|
126
|
+
type: Component,
|
|
127
|
+
args: [{ selector: 'riv-table-column-settings', changeDetection: ChangeDetectionStrategy.OnPush, template: "<button\n type=\"button\"\n #trigger\n rivButton\n [icon]=\"(open | async) ? 'ChevronUp' : 'ChevronDown'\"\n [iconPosition]=\"'last'\"\n (click)=\"open.next(true)\"\n>\n Columns\n</button>\n\n<ng-container *ngIf=\"columnList | async; let columns\">\n <ng-container *ngIf=\"open | async\">\n <riv-callout\n *riv-overlay\n [anchor]=\"anchor?.nativeElement\"\n [isModal]=\"true\"\n [showCaret]=\"false\"\n [theme]=\"'light'\"\n [preferredPosition]=\"'bottom-right'\"\n [allowedPositions]=\"[\n 'bottom-right',\n 'bottom-left',\n 'top-left',\n 'top-right'\n ]\"\n (close)=\"open.next(false)\"\n >\n <input\n #filter\n class=\"filter\"\n [placeholder]=\"'Search columns'\"\n [value]=\"filterQuery | async\"\n (input)=\"filterQuery.next(filter.value)\"\n [riv-auto-focus]=\"true\"\n />\n <div class=\"column-list\">\n <div\n class=\"column\"\n *ngFor=\"let column of columns; let i = index\"\n [attr.draggable]=\"\n (searching | async) === false &&\n !disableEnablingColumn(column, columns)\n \"\n [attr.droppable]=\"\n (searching | async) === false &&\n !disableEnablingColumn(column, columns)\n \"\n (dragstart)=\"dragStart(i)\"\n (dragenter)=\"$event.preventDefault()\"\n (dragover)=\"$event.preventDefault(); dragOver(i)\"\n (drop)=\"drop(i)\"\n [class.dragged-over-top]=\"\n draggedOverColumnIdx === i &&\n draggedColumnIdx !== null &&\n draggedColumnIdx > i\n \"\n [class.dragged-over-bottom]=\"\n draggedOverColumnIdx === i &&\n draggedColumnIdx !== null &&\n draggedColumnIdx < i\n \"\n >\n <riv-checkbox\n [value]=\"column.enabled\"\n (valueChange)=\"columnEnabledChange(column, $event)\"\n [disabled]=\"disableEnablingColumn(column, columns)\"\n [checkboxTooltip]=\"\n disableEnablingColumn(column, columns)\n ? limitTooltip()\n : undefined\n \"\n >\n <riv-highlight\n [text]=\"column.resolvedName\"\n [indices]=\"column.highlightIndices\"\n ></riv-highlight>\n </riv-checkbox>\n <span\n class=\"reorder\"\n *ngIf=\"(searching | async) === false\"\n [class.disabled]=\"disableEnablingColumn(column, columns)\"\n >\n <riv-icon [name]=\"'Reorder'\" [size]=\"12\"></riv-icon>\n </span>\n <button\n type=\"button\"\n rivButton\n [variant]=\"'ghost'\"\n [size]=\"'xsmall'\"\n [icon]=\"column.pinned ? 'PinActive' : 'PinInactive'\"\n [disabled]=\"disableEnablingColumn(column, columns)\"\n (click)=\"columnPinChange(column, !column.pinned)\"\n ></button>\n </div>\n </div>\n <footer *ngIf=\"(searching | async) === false\">\n <button\n type=\"button\"\n rivButton\n [size]=\"'xsmall'\"\n [variant]=\"'ghost'\"\n [disabled]=\"allColumnsDisabled(columns)\"\n (click)=\"disableAllColumns(columns)\"\n >\n Clear\n </button>\n <button\n type=\"button\"\n rivButton\n *ngIf=\"showSelectAllColumns(columns)\"\n [size]=\"'xsmall'\"\n [variant]=\"'ghost'\"\n [disabled]=\"allColumnsEnabled(columns)\"\n (click)=\"enableAllColumns(columns)\"\n >\n Select all\n </button>\n </footer>\n </riv-callout>\n </ng-container>\n</ng-container>\n", styles: [".filter{width:100%;outline:none;border:none;border-bottom:var(--border-width) solid var(--border-light);font-size:var(--type-2-font-size);line-height:var(--type-2-line-height-0);color:var(--type-light-high-contrast);padding:var(--size-small)}.filter::placeholder{color:var(--type-light-low-contrast)}.column-list{display:flex;flex-direction:column;align-items:stretch;max-height:50vh;overflow-y:auto}.column{display:flex;align-items:center;position:relative}.column riv-checkbox{flex-grow:1}.column.dragged-over-top:before,.column.dragged-over-bottom:before{content:\"\";position:absolute;left:0;right:0;height:var(--size-xxsmall);background-color:var(--brand);box-shadow:0 0 var(--size-xxsmall) var(--brand)}.column.dragged-over-top:before{top:0}.column.dragged-over-bottom:before{bottom:0}.reorder{padding:0 var(--size-medium);display:flex;justify-content:center;align-items:center;align-self:stretch;color:var(--type-light-low-contrast);cursor:grab}.reorder.disabled{cursor:not-allowed}footer{background-color:var(--surface-light-1);border-top:var(--border-width) solid var(--border-light);display:flex;justify-content:space-between}\n"] }]
|
|
128
|
+
}], propDecorators: { manager: [{
|
|
129
|
+
type: Input
|
|
130
|
+
}], anchor: [{
|
|
131
|
+
type: ViewChild,
|
|
132
|
+
args: ['trigger', { read: ElementRef }]
|
|
133
|
+
}] } });
|
|
134
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGFibGUtY29sdW1uLXNldHRpbmdzLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL3Jpdi9zcmMvbGliL3RhYmxlL3RhYmxlL3RhYmxlLWNvbHVtbi1zZXR0aW5ncy90YWJsZS1jb2x1bW4tc2V0dGluZ3MuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvcml2L3NyYy9saWIvdGFibGUvdGFibGUvdGFibGUtY29sdW1uLXNldHRpbmdzL3RhYmxlLWNvbHVtbi1zZXR0aW5ncy5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQ0wsdUJBQXVCLEVBQ3ZCLFNBQVMsRUFDVCxVQUFVLEVBQ1YsS0FBSyxFQUVMLFNBQVMsR0FDVixNQUFNLGVBQWUsQ0FBQztBQUN2QixPQUFPLElBQUksTUFBTSxTQUFTLENBQUM7QUFDM0IsT0FBTyxFQUFFLGVBQWUsRUFBRSxhQUFhLEVBQUUsR0FBRyxFQUFjLE1BQU0sTUFBTSxDQUFDO0FBRXZFLE9BQU8sRUFBRSxRQUFRLEVBQUUsTUFBTSxVQUFVLENBQUM7Ozs7Ozs7Ozs7QUFhcEMsTUFBTSxPQUFPLDRCQUE0QjtJQU56QztRQWtCVyxTQUFJLEdBQUcsSUFBSSxlQUFlLENBQUMsS0FBSyxDQUFDLENBQUM7UUFFbEMsZ0JBQVcsR0FBRyxJQUFJLGVBQWUsQ0FBQyxFQUFFLENBQUMsQ0FBQztRQUV0QyxjQUFTLEdBQUcsSUFBSSxDQUFDLFdBQVcsQ0FBQyxJQUFJLENBQUMsR0FBRyxDQUFDLEtBQUssQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUM7UUFJbEUsc0JBQWlCLEdBQVcsUUFBUSxDQUFDLGVBQWUsQ0FBQztRQXVHckQscUJBQWdCLEdBQWtCLElBQUksQ0FBQztRQUN2Qyx5QkFBb0IsR0FBa0IsSUFBSSxDQUFDO0tBb0I1QztJQTFIQyxRQUFRO1FBQ04sSUFBSSxDQUFDLFVBQVUsR0FBRyxhQUFhLENBQUM7WUFDOUIsSUFBSSxDQUFDLE9BQVEsQ0FBQyxLQUFLLENBQUMsSUFBSSxDQUN0QixHQUFHLENBQUMsQ0FBQyxDQUFDLEVBQUU7Z0JBQ04sTUFBTSxVQUFVLEdBQUcsQ0FBQyxDQUFDLE9BQU8sQ0FBQyxVQUFVLENBQUMsR0FBRyxDQUFDLE1BQU0sQ0FBQyxFQUFFLENBQUMsQ0FBQztvQkFDckQsR0FBRyxNQUFNO29CQUNULFlBQVksRUFBRSxDQUFDLENBQUMsT0FBTyxDQUFDLGFBQWEsQ0FBQyxHQUFHLENBQUMsTUFBTSxDQUFDLEdBQUcsQ0FBQyxJQUFJLE1BQU0sQ0FBQyxHQUFHO2lCQUNwRSxDQUFDLENBQUMsQ0FBQztnQkFDSixNQUFNLElBQUksR0FBRyxJQUFJLElBQUksQ0FBQyxVQUFVLEVBQUU7b0JBQ2hDLElBQUksRUFBRSxDQUFDLGNBQWMsQ0FBQztvQkFDdEIsY0FBYyxFQUFFLElBQUk7b0JBQ3BCLFNBQVMsRUFBRSxHQUFHO2lCQUNmLENBQUMsQ0FBQztnQkFDSCxPQUFPLEVBQUUsSUFBSSxFQUFFLFVBQVUsRUFBRSxDQUFDO1lBQzlCLENBQUMsQ0FBQyxDQUNIO1lBQ0QsSUFBSSxDQUFDLFdBQVc7U0FDakIsQ0FBQyxDQUFDLElBQUksQ0FDTCxHQUFHLENBQUMsQ0FBQyxDQUFDLEVBQUUsSUFBSSxFQUFFLFVBQVUsRUFBRSxFQUFFLFdBQVcsQ0FBQyxFQUFFLEVBQUU7WUFDMUMsSUFBSSxXQUFXLEVBQUUsQ0FBQztnQkFDaEIsTUFBTSxPQUFPLEdBQUcsSUFBSSxDQUFDLE1BQU0sQ0FBQyxXQUFXLENBQUMsQ0FBQztnQkFDekMsT0FBTyxPQUFPLENBQUMsR0FBRyxDQUFDLEtBQUssQ0FBQyxFQUFFLENBQUMsQ0FBQztvQkFDM0IsR0FBRyxLQUFLLENBQUMsSUFBSTtvQkFDYixnQkFBZ0IsRUFBRTt3QkFDaEIsR0FBRyxDQUFDLEtBQUssQ0FBQyxPQUFPLEVBQUUsSUFBSSxDQUFDLE1BQU0sQ0FBQyxFQUFFLENBQUMsTUFBTSxDQUFDLEdBQUcsS0FBSyxjQUFjLENBQUM7NEJBQzlELEVBQUUsT0FBTyxJQUFJLEVBQUUsQ0FBQztxQkFDbkI7aUJBQ0YsQ0FBQyxDQUFDLENBQUM7WUFDTixDQUFDO1lBQ0QsT0FBTyxVQUFVLENBQUMsR0FBRyxDQUFDLE1BQU0sQ0FBQyxFQUFFLENBQUMsQ0FBQztnQkFDL0IsR0FBRyxNQUFNO2dCQUNULGdCQUFnQixFQUFFLEVBQUU7YUFDckIsQ0FBQyxDQUFDLENBQUM7UUFDTixDQUFDLENBQUMsQ0FDSCxDQUFDO0lBQ0osQ0FBQztJQUVELG1CQUFtQixDQUFDLE1BQWtDLEVBQUUsT0FBZ0I7UUFDdEUsSUFBSSxDQUFDLE9BQU8sRUFBRSxPQUFPLENBQUMsSUFBSSxDQUFDO1lBQ3pCLElBQUksRUFBRSxxQkFBcUI7WUFDM0IsTUFBTSxFQUFFLE1BQU0sQ0FBQyxHQUFHO1lBQ2xCLE9BQU87U0FDUixDQUFDLENBQUM7SUFDTCxDQUFDO0lBRUQsZUFBZSxDQUFDLE1BQWtDLEVBQUUsTUFBZTtRQUNqRSxJQUFJLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxJQUFJLENBQUM7WUFDekIsSUFBSSxFQUFFLGlCQUFpQjtZQUN2QixNQUFNLEVBQUUsTUFBTSxDQUFDLEdBQUc7WUFDbEIsTUFBTTtTQUNQLENBQUMsQ0FBQztJQUNMLENBQUM7SUFFRCxrQkFBa0IsQ0FBQyxPQUFzQjtRQUN2QyxPQUFPLE9BQU8sQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxPQUFPLENBQUMsQ0FBQztJQUN4QyxDQUFDO0lBRUQsaUJBQWlCLENBQUMsT0FBc0I7UUFDdEMsS0FBSyxNQUFNLE1BQU0sSUFBSSxPQUFPLEVBQUUsQ0FBQztZQUM3QixJQUFJLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxJQUFJLENBQUM7Z0JBQ3pCLElBQUksRUFBRSxxQkFBcUI7Z0JBQzNCLE1BQU0sRUFBRSxNQUFNLENBQUMsR0FBRztnQkFDbEIsT0FBTyxFQUFFLEtBQUs7YUFDZixDQUFDLENBQUM7UUFDTCxDQUFDO0lBQ0gsQ0FBQztJQUVELGlCQUFpQixDQUFDLE9BQXNCO1FBQ3RDLE9BQU8sT0FBTyxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxPQUFPLENBQUMsQ0FBQztJQUN2QyxDQUFDO0lBRUQsZ0JBQWdCLENBQUMsT0FBc0I7UUFDckMsS0FBSyxNQUFNLE1BQU0sSUFBSSxPQUFPLEVBQUUsQ0FBQztZQUM3QixJQUFJLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxJQUFJLENBQUM7Z0JBQ3pCLElBQUksRUFBRSxxQkFBcUI7Z0JBQzNCLE1BQU0sRUFBRSxNQUFNLENBQUMsR0FBRztnQkFDbEIsT0FBTyxFQUFFLElBQUk7YUFDZCxDQUFDLENBQUM7UUFDTCxDQUFDO0lBQ0gsQ0FBQztJQUVELG9CQUFvQixDQUFDLE9BQXNCO1FBQ3pDLE9BQU8sT0FBTyxDQUFDLE1BQU0sSUFBSSxJQUFJLENBQUMsaUJBQWlCLENBQUM7SUFDbEQsQ0FBQztJQUVELHFCQUFxQixDQUNuQixNQUFrQyxFQUNsQyxPQUFzQjtRQUV0QixPQUFPLENBQUMsTUFBTSxDQUFDLE9BQU8sSUFBSSxJQUFJLENBQUMsc0JBQXNCLENBQUMsT0FBTyxDQUFDLENBQUM7SUFDakUsQ0FBQztJQUVELHNCQUFzQixDQUFDLE9BQXNCO1FBQzNDLE1BQU0sWUFBWSxHQUFHLE9BQU8sQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsT0FBTyxDQUFDLENBQUMsTUFBTSxDQUFDO1FBQzNELE9BQU8sWUFBWSxJQUFJLElBQUksQ0FBQyxpQkFBaUIsQ0FBQztJQUNoRCxDQUFDO0lBRUQsWUFBWTtRQUNWLE9BQU8sc0JBQXNCLElBQUksQ0FBQyxpQkFBaUIsd0RBQXdELENBQUM7SUFDOUcsQ0FBQztJQUtELFNBQVMsQ0FBQyxHQUFXO1FBQ25CLElBQUksQ0FBQyxnQkFBZ0IsR0FBRyxHQUFHLENBQUM7SUFDOUIsQ0FBQztJQUVELFFBQVEsQ0FBQyxPQUFlO1FBQ3RCLElBQUksQ0FBQyxvQkFBb0IsR0FBRyxPQUFPLENBQUM7SUFDdEMsQ0FBQztJQUVELElBQUksQ0FBQyxPQUFlO1FBQ2xCLElBQUksSUFBSSxDQUFDLGdCQUFnQixLQUFLLElBQUksRUFBRSxDQUFDO1lBQ25DLElBQUksQ0FBQyxPQUFPLEVBQUUsT0FBTyxDQUFDLElBQUksQ0FBQztnQkFDekIsSUFBSSxFQUFFLG1CQUFtQjtnQkFDekIsYUFBYSxFQUFFLElBQUksQ0FBQyxnQkFBZ0I7Z0JBQ3BDLFFBQVEsRUFBRSxPQUFPO2FBQ2xCLENBQUMsQ0FBQztZQUNILElBQUksQ0FBQyxvQkFBb0IsR0FBRyxJQUFJLENBQUM7UUFDbkMsQ0FBQztJQUNILENBQUM7K0dBL0lVLDRCQUE0QjttR0FBNUIsNEJBQTRCLCtLQVNULFVBQVUsNkJDakMxQyxzeEhBMEhBOzs0RkRsR2EsNEJBQTRCO2tCQU54QyxTQUFTOytCQUNFLDJCQUEyQixtQkFHcEIsdUJBQXVCLENBQUMsTUFBTTs4QkFTL0MsT0FBTztzQkFETixLQUFLO2dCQUlOLE1BQU07c0JBREwsU0FBUzt1QkFBQyxTQUFTLEVBQUUsRUFBRSxJQUFJLEVBQUUsVUFBVSxFQUFFIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtcbiAgQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3ksXG4gIENvbXBvbmVudCxcbiAgRWxlbWVudFJlZixcbiAgSW5wdXQsXG4gIE9uSW5pdCxcbiAgVmlld0NoaWxkLFxufSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCBGdXNlIGZyb20gJ2Z1c2UuanMnO1xuaW1wb3J0IHsgQmVoYXZpb3JTdWJqZWN0LCBjb21iaW5lTGF0ZXN0LCBtYXAsIE9ic2VydmFibGUgfSBmcm9tICdyeGpzJztcbmltcG9ydCB7IEhpZ2hsaWdodENvbXBvbmVudCB9IGZyb20gJy4uLy4uLy4uL3Zpc3VhbGl6YXRpb24vaGlnaGxpZ2h0L2hpZ2hsaWdodC5jb21wb25lbnQnO1xuaW1wb3J0IHsgUml2VGFibGUgfSBmcm9tICcuLi9zdGF0ZSc7XG5cbnR5cGUgQ29sdW1uTGlzdDxDIGV4dGVuZHMgUml2VGFibGUuQ29sdW1uPiA9IChSaXZUYWJsZS5Db2x1bW5TZXR0aW5nczxDPiAmIHtcbiAgcmVzb2x2ZWROYW1lOiBDIHwgc3RyaW5nO1xuICBoaWdobGlnaHRJbmRpY2VzOiBIaWdobGlnaHRDb21wb25lbnQuSGlnaGxpZ2h0SW5kaWNlc1tdO1xufSlbXTtcblxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAncml2LXRhYmxlLWNvbHVtbi1zZXR0aW5ncycsXG4gIHRlbXBsYXRlVXJsOiAnLi90YWJsZS1jb2x1bW4tc2V0dGluZ3MuY29tcG9uZW50Lmh0bWwnLFxuICBzdHlsZVVybHM6IFsnLi90YWJsZS1jb2x1bW4tc2V0dGluZ3MuY29tcG9uZW50LmNzcyddLFxuICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaCxcbn0pXG5leHBvcnQgY2xhc3MgVGFibGVDb2x1bW5TZXR0aW5nc0NvbXBvbmVudDxcbiAgUiBleHRlbmRzIFJpdlRhYmxlLlJvdyxcbiAgQyBleHRlbmRzIFJpdlRhYmxlLkNvbHVtbixcbiAgRiBleHRlbmRzIFJpdlRhYmxlLkZpbHRlcnMsXG4+IGltcGxlbWVudHMgT25Jbml0XG57XG4gIEBJbnB1dCgpXG4gIG1hbmFnZXI/OiBSaXZUYWJsZS5NYW5hZ2VyPFIsIEMsIEY+O1xuXG4gIEBWaWV3Q2hpbGQoJ3RyaWdnZXInLCB7IHJlYWQ6IEVsZW1lbnRSZWYgfSlcbiAgYW5jaG9yPzogRWxlbWVudFJlZjtcblxuICByZWFkb25seSBvcGVuID0gbmV3IEJlaGF2aW9yU3ViamVjdChmYWxzZSk7XG5cbiAgcmVhZG9ubHkgZmlsdGVyUXVlcnkgPSBuZXcgQmVoYXZpb3JTdWJqZWN0KCcnKTtcblxuICByZWFkb25seSBzZWFyY2hpbmcgPSB0aGlzLmZpbHRlclF1ZXJ5LnBpcGUobWFwKHF1ZXJ5ID0+ICEhcXVlcnkpKTtcblxuICBjb2x1bW5MaXN0PzogT2JzZXJ2YWJsZTxDb2x1bW5MaXN0PEM+PjtcblxuICBtYXhFbmFibGVkQ29sdW1uczogbnVtYmVyID0gUml2VGFibGUuQ29sdW1uc01heFNob3duO1xuXG4gIG5nT25Jbml0KCkge1xuICAgIHRoaXMuY29sdW1uTGlzdCA9IGNvbWJpbmVMYXRlc3QoW1xuICAgICAgdGhpcy5tYW5hZ2VyIS5zdGF0ZS5waXBlKFxuICAgICAgICBtYXAocyA9PiB7XG4gICAgICAgICAgY29uc3QgYWxsQ29sdW1ucyA9IHMuZGlzcGxheS5hbGxDb2x1bW5zLm1hcChjb2x1bW4gPT4gKHtcbiAgICAgICAgICAgIC4uLmNvbHVtbixcbiAgICAgICAgICAgIHJlc29sdmVkTmFtZTogcy5kaXNwbGF5LmNvbHVtbk5hbWVNYXAuZ2V0KGNvbHVtbi5rZXkpID8/IGNvbHVtbi5rZXksXG4gICAgICAgICAgfSkpO1xuICAgICAgICAgIGNvbnN0IGZ1c2UgPSBuZXcgRnVzZShhbGxDb2x1bW5zLCB7XG4gICAgICAgICAgICBrZXlzOiBbJ3Jlc29sdmVkTmFtZSddLFxuICAgICAgICAgICAgaW5jbHVkZU1hdGNoZXM6IHRydWUsXG4gICAgICAgICAgICB0aHJlc2hvbGQ6IDAuNCxcbiAgICAgICAgICB9KTtcbiAgICAgICAgICByZXR1cm4geyBmdXNlLCBhbGxDb2x1bW5zIH07XG4gICAgICAgIH0pLFxuICAgICAgKSxcbiAgICAgIHRoaXMuZmlsdGVyUXVlcnksXG4gICAgXSkucGlwZShcbiAgICAgIG1hcCgoW3sgZnVzZSwgYWxsQ29sdW1ucyB9LCBmaWx0ZXJRdWVyeV0pID0+IHtcbiAgICAgICAgaWYgKGZpbHRlclF1ZXJ5KSB7XG4gICAgICAgICAgY29uc3QgbWF0Y2hlcyA9IGZ1c2Uuc2VhcmNoKGZpbHRlclF1ZXJ5KTtcbiAgICAgICAgICByZXR1cm4gbWF0Y2hlcy5tYXAobWF0Y2ggPT4gKHtcbiAgICAgICAgICAgIC4uLm1hdGNoLml0ZW0sXG4gICAgICAgICAgICBoaWdobGlnaHRJbmRpY2VzOiBbXG4gICAgICAgICAgICAgIC4uLihtYXRjaC5tYXRjaGVzPy5maW5kKHJlc3VsdCA9PiByZXN1bHQua2V5ID09PSAncmVzb2x2ZWROYW1lJylcbiAgICAgICAgICAgICAgICA/LmluZGljZXMgfHwgW10pLFxuICAgICAgICAgICAgXSxcbiAgICAgICAgICB9KSk7XG4gICAgICAgIH1cbiAgICAgICAgcmV0dXJuIGFsbENvbHVtbnMubWFwKGNvbHVtbiA9PiAoe1xuICAgICAgICAgIC4uLmNvbHVtbixcbiAgICAgICAgICBoaWdobGlnaHRJbmRpY2VzOiBbXSxcbiAgICAgICAgfSkpO1xuICAgICAgfSksXG4gICAgKTtcbiAgfVxuXG4gIGNvbHVtbkVuYWJsZWRDaGFuZ2UoY29sdW1uOiBSaXZUYWJsZS5Db2x1bW5TZXR0aW5nczxDPiwgZW5hYmxlZDogYm9vbGVhbikge1xuICAgIHRoaXMubWFuYWdlcj8uYWN0aW9ucy5uZXh0KHtcbiAgICAgIHR5cGU6ICdjb2x1bW5FbmFibGVkQ2hhbmdlJyxcbiAgICAgIGNvbHVtbjogY29sdW1uLmtleSxcbiAgICAgIGVuYWJsZWQsXG4gICAgfSk7XG4gIH1cblxuICBjb2x1bW5QaW5DaGFuZ2UoY29sdW1uOiBSaXZUYWJsZS5Db2x1bW5TZXR0aW5nczxDPiwgcGlubmVkOiBib29sZWFuKSB7XG4gICAgdGhpcy5tYW5hZ2VyPy5hY3Rpb25zLm5leHQoe1xuICAgICAgdHlwZTogJ2NvbHVtblBpbkNoYW5nZScsXG4gICAgICBjb2x1bW46IGNvbHVtbi5rZXksXG4gICAgICBwaW5uZWQsXG4gICAgfSk7XG4gIH1cblxuICBhbGxDb2x1bW5zRGlzYWJsZWQoY29sdW1uczogQ29sdW1uTGlzdDxDPik6IGJvb2xlYW4ge1xuICAgIHJldHVybiBjb2x1bW5zLmV2ZXJ5KGMgPT4gIWMuZW5hYmxlZCk7XG4gIH1cblxuICBkaXNhYmxlQWxsQ29sdW1ucyhjb2x1bW5zOiBDb2x1bW5MaXN0PEM+KSB7XG4gICAgZm9yIChjb25zdCBjb2x1bW4gb2YgY29sdW1ucykge1xuICAgICAgdGhpcy5tYW5hZ2VyPy5hY3Rpb25zLm5leHQoe1xuICAgICAgICB0eXBlOiAnY29sdW1uRW5hYmxlZENoYW5nZScsXG4gICAgICAgIGNvbHVtbjogY29sdW1uLmtleSxcbiAgICAgICAgZW5hYmxlZDogZmFsc2UsXG4gICAgICB9KTtcbiAgICB9XG4gIH1cblxuICBhbGxDb2x1bW5zRW5hYmxlZChjb2x1bW5zOiBDb2x1bW5MaXN0PEM+KTogYm9vbGVhbiB7XG4gICAgcmV0dXJuIGNvbHVtbnMuZXZlcnkoYyA9PiBjLmVuYWJsZWQpO1xuICB9XG5cbiAgZW5hYmxlQWxsQ29sdW1ucyhjb2x1bW5zOiBDb2x1bW5MaXN0PEM+KSB7XG4gICAgZm9yIChjb25zdCBjb2x1bW4gb2YgY29sdW1ucykge1xuICAgICAgdGhpcy5tYW5hZ2VyPy5hY3Rpb25zLm5leHQoe1xuICAgICAgICB0eXBlOiAnY29sdW1uRW5hYmxlZENoYW5nZScsXG4gICAgICAgIGNvbHVtbjogY29sdW1uLmtleSxcbiAgICAgICAgZW5hYmxlZDogdHJ1ZSxcbiAgICAgIH0pO1xuICAgIH1cbiAgfVxuXG4gIHNob3dTZWxlY3RBbGxDb2x1bW5zKGNvbHVtbnM6IENvbHVtbkxpc3Q8Qz4pOiBib29sZWFuIHtcbiAgICByZXR1cm4gY29sdW1ucy5sZW5ndGggPD0gdGhpcy5tYXhFbmFibGVkQ29sdW1ucztcbiAgfVxuXG4gIGRpc2FibGVFbmFibGluZ0NvbHVtbihcbiAgICBjb2x1bW46IFJpdlRhYmxlLkNvbHVtblNldHRpbmdzPEM+LFxuICAgIGNvbHVtbnM6IENvbHVtbkxpc3Q8Qz4sXG4gICk6IGJvb2xlYW4ge1xuICAgIHJldHVybiAhY29sdW1uLmVuYWJsZWQgJiYgdGhpcy5kaXNhYmxlQ29sdW1uU2VsZWN0aW9uKGNvbHVtbnMpO1xuICB9XG5cbiAgZGlzYWJsZUNvbHVtblNlbGVjdGlvbihjb2x1bW5zOiBDb2x1bW5MaXN0PEM+KTogYm9vbGVhbiB7XG4gICAgY29uc3QgZW5hYmxlZENvdW50ID0gY29sdW1ucy5maWx0ZXIoYyA9PiBjLmVuYWJsZWQpLmxlbmd0aDtcbiAgICByZXR1cm4gZW5hYmxlZENvdW50ID49IHRoaXMubWF4RW5hYmxlZENvbHVtbnM7XG4gIH1cblxuICBsaW1pdFRvb2x0aXAoKTogc3RyaW5nIHtcbiAgICByZXR1cm4gYFlvdeKAmXZlIHJlYWNoZWQgdGhlICR7dGhpcy5tYXhFbmFibGVkQ29sdW1uc30tY29sdW1uIGxpbWl0LiBIaWRlIGEgdmlzaWJsZSBjb2x1bW4gdG8gc2hvdyB0aGlzIG9uZS5gO1xuICB9XG5cbiAgZHJhZ2dlZENvbHVtbklkeDogbnVtYmVyIHwgbnVsbCA9IG51bGw7XG4gIGRyYWdnZWRPdmVyQ29sdW1uSWR4OiBudW1iZXIgfCBudWxsID0gbnVsbDtcblxuICBkcmFnU3RhcnQoaWR4OiBudW1iZXIpIHtcbiAgICB0aGlzLmRyYWdnZWRDb2x1bW5JZHggPSBpZHg7XG4gIH1cblxuICBkcmFnT3ZlcihvbnRvSWR4OiBudW1iZXIpIHtcbiAgICB0aGlzLmRyYWdnZWRPdmVyQ29sdW1uSWR4ID0gb250b0lkeDtcbiAgfVxuXG4gIGRyb3Aob250b0lkeDogbnVtYmVyKSB7XG4gICAgaWYgKHRoaXMuZHJhZ2dlZENvbHVtbklkeCAhPT0gbnVsbCkge1xuICAgICAgdGhpcy5tYW5hZ2VyPy5hY3Rpb25zLm5leHQoe1xuICAgICAgICB0eXBlOiAnY29sdW1uT3JkZXJDaGFuZ2UnLFxuICAgICAgICBwcmV2aW91c0luZGV4OiB0aGlzLmRyYWdnZWRDb2x1bW5JZHgsXG4gICAgICAgIG5ld0luZGV4OiBvbnRvSWR4LFxuICAgICAgfSk7XG4gICAgICB0aGlzLmRyYWdnZWRPdmVyQ29sdW1uSWR4ID0gbnVsbDtcbiAgICB9XG4gIH1cbn1cbiIsIjxidXR0b25cbiAgdHlwZT1cImJ1dHRvblwiXG4gICN0cmlnZ2VyXG4gIHJpdkJ1dHRvblxuICBbaWNvbl09XCIob3BlbiB8IGFzeW5jKSA/ICdDaGV2cm9uVXAnIDogJ0NoZXZyb25Eb3duJ1wiXG4gIFtpY29uUG9zaXRpb25dPVwiJ2xhc3QnXCJcbiAgKGNsaWNrKT1cIm9wZW4ubmV4dCh0cnVlKVwiXG4+XG4gIENvbHVtbnNcbjwvYnV0dG9uPlxuXG48bmctY29udGFpbmVyICpuZ0lmPVwiY29sdW1uTGlzdCB8IGFzeW5jOyBsZXQgY29sdW1uc1wiPlxuICA8bmctY29udGFpbmVyICpuZ0lmPVwib3BlbiB8IGFzeW5jXCI+XG4gICAgPHJpdi1jYWxsb3V0XG4gICAgICAqcml2LW92ZXJsYXlcbiAgICAgIFthbmNob3JdPVwiYW5jaG9yPy5uYXRpdmVFbGVtZW50XCJcbiAgICAgIFtpc01vZGFsXT1cInRydWVcIlxuICAgICAgW3Nob3dDYXJldF09XCJmYWxzZVwiXG4gICAgICBbdGhlbWVdPVwiJ2xpZ2h0J1wiXG4gICAgICBbcHJlZmVycmVkUG9zaXRpb25dPVwiJ2JvdHRvbS1yaWdodCdcIlxuICAgICAgW2FsbG93ZWRQb3NpdGlvbnNdPVwiW1xuICAgICAgICAnYm90dG9tLXJpZ2h0JyxcbiAgICAgICAgJ2JvdHRvbS1sZWZ0JyxcbiAgICAgICAgJ3RvcC1sZWZ0JyxcbiAgICAgICAgJ3RvcC1yaWdodCdcbiAgICAgIF1cIlxuICAgICAgKGNsb3NlKT1cIm9wZW4ubmV4dChmYWxzZSlcIlxuICAgID5cbiAgICAgIDxpbnB1dFxuICAgICAgICAjZmlsdGVyXG4gICAgICAgIGNsYXNzPVwiZmlsdGVyXCJcbiAgICAgICAgW3BsYWNlaG9sZGVyXT1cIidTZWFyY2ggY29sdW1ucydcIlxuICAgICAgICBbdmFsdWVdPVwiZmlsdGVyUXVlcnkgfCBhc3luY1wiXG4gICAgICAgIChpbnB1dCk9XCJmaWx0ZXJRdWVyeS5uZXh0KGZpbHRlci52YWx1ZSlcIlxuICAgICAgICBbcml2LWF1dG8tZm9jdXNdPVwidHJ1ZVwiXG4gICAgICAvPlxuICAgICAgPGRpdiBjbGFzcz1cImNvbHVtbi1saXN0XCI+XG4gICAgICAgIDxkaXZcbiAgICAgICAgICBjbGFzcz1cImNvbHVtblwiXG4gICAgICAgICAgKm5nRm9yPVwibGV0IGNvbHVtbiBvZiBjb2x1bW5zOyBsZXQgaSA9IGluZGV4XCJcbiAgICAgICAgICBbYXR0ci5kcmFnZ2FibGVdPVwiXG4gICAgICAgICAgICAoc2VhcmNoaW5nIHwgYXN5bmMpID09PSBmYWxzZSAmJlxuICAgICAgICAgICAgIWRpc2FibGVFbmFibGluZ0NvbHVtbihjb2x1bW4sIGNvbHVtbnMpXG4gICAgICAgICAgXCJcbiAgICAgICAgICBbYXR0ci5kcm9wcGFibGVdPVwiXG4gICAgICAgICAgICAoc2VhcmNoaW5nIHwgYXN5bmMpID09PSBmYWxzZSAmJlxuICAgICAgICAgICAgIWRpc2FibGVFbmFibGluZ0NvbHVtbihjb2x1bW4sIGNvbHVtbnMpXG4gICAgICAgICAgXCJcbiAgICAgICAgICAoZHJhZ3N0YXJ0KT1cImRyYWdTdGFydChpKVwiXG4gICAgICAgICAgKGRyYWdlbnRlcik9XCIkZXZlbnQucHJldmVudERlZmF1bHQoKVwiXG4gICAgICAgICAgKGRyYWdvdmVyKT1cIiRldmVudC5wcmV2ZW50RGVmYXVsdCgpOyBkcmFnT3ZlcihpKVwiXG4gICAgICAgICAgKGRyb3ApPVwiZHJvcChpKVwiXG4gICAgICAgICAgW2NsYXNzLmRyYWdnZWQtb3Zlci10b3BdPVwiXG4gICAgICAgICAgICBkcmFnZ2VkT3ZlckNvbHVtbklkeCA9PT0gaSAmJlxuICAgICAgICAgICAgZHJhZ2dlZENvbHVtbklkeCAhPT0gbnVsbCAmJlxuICAgICAgICAgICAgZHJhZ2dlZENvbHVtbklkeCA+IGlcbiAgICAgICAgICBcIlxuICAgICAgICAgIFtjbGFzcy5kcmFnZ2VkLW92ZXItYm90dG9tXT1cIlxuICAgICAgICAgICAgZHJhZ2dlZE92ZXJDb2x1bW5JZHggPT09IGkgJiZcbiAgICAgICAgICAgIGRyYWdnZWRDb2x1bW5JZHggIT09IG51bGwgJiZcbiAgICAgICAgICAgIGRyYWdnZWRDb2x1bW5JZHggPCBpXG4gICAgICAgICAgXCJcbiAgICAgICAgPlxuICAgICAgICAgIDxyaXYtY2hlY2tib3hcbiAgICAgICAgICAgIFt2YWx1ZV09XCJjb2x1bW4uZW5hYmxlZFwiXG4gICAgICAgICAgICAodmFsdWVDaGFuZ2UpPVwiY29sdW1uRW5hYmxlZENoYW5nZShjb2x1bW4sICRldmVudClcIlxuICAgICAgICAgICAgW2Rpc2FibGVkXT1cImRpc2FibGVFbmFibGluZ0NvbHVtbihjb2x1bW4sIGNvbHVtbnMpXCJcbiAgICAgICAgICAgIFtjaGVja2JveFRvb2x0aXBdPVwiXG4gICAgICAgICAgICAgIGRpc2FibGVFbmFibGluZ0NvbHVtbihjb2x1bW4sIGNvbHVtbnMpXG4gICAgICAgICAgICAgICAgPyBsaW1pdFRvb2x0aXAoKVxuICAgICAgICAgICAgICAgIDogdW5kZWZpbmVkXG4gICAgICAgICAgICBcIlxuICAgICAgICAgID5cbiAgICAgICAgICAgIDxyaXYtaGlnaGxpZ2h0XG4gICAgICAgICAgICAgIFt0ZXh0XT1cImNvbHVtbi5yZXNvbHZlZE5hbWVcIlxuICAgICAgICAgICAgICBbaW5kaWNlc109XCJjb2x1bW4uaGlnaGxpZ2h0SW5kaWNlc1wiXG4gICAgICAgICAgICA+PC9yaXYtaGlnaGxpZ2h0PlxuICAgICAgICAgIDwvcml2LWNoZWNrYm94PlxuICAgICAgICAgIDxzcGFuXG4gICAgICAgICAgICBjbGFzcz1cInJlb3JkZXJcIlxuICAgICAgICAgICAgKm5nSWY9XCIoc2VhcmNoaW5nIHwgYXN5bmMpID09PSBmYWxzZVwiXG4gICAgICAgICAgICBbY2xhc3MuZGlzYWJsZWRdPVwiZGlzYWJsZUVuYWJsaW5nQ29sdW1uKGNvbHVtbiwgY29sdW1ucylcIlxuICAgICAgICAgID5cbiAgICAgICAgICAgIDxyaXYtaWNvbiBbbmFtZV09XCInUmVvcmRlcidcIiBbc2l6ZV09XCIxMlwiPjwvcml2LWljb24+XG4gICAgICAgICAgPC9zcGFuPlxuICAgICAgICAgIDxidXR0b25cbiAgICAgICAgICAgIHR5cGU9XCJidXR0b25cIlxuICAgICAgICAgICAgcml2QnV0dG9uXG4gICAgICAgICAgICBbdmFyaWFudF09XCInZ2hvc3QnXCJcbiAgICAgICAgICAgIFtzaXplXT1cIid4c21hbGwnXCJcbiAgICAgICAgICAgIFtpY29uXT1cImNvbHVtbi5waW5uZWQgPyAnUGluQWN0aXZlJyA6ICdQaW5JbmFjdGl2ZSdcIlxuICAgICAgICAgICAgW2Rpc2FibGVkXT1cImRpc2FibGVFbmFibGluZ0NvbHVtbihjb2x1bW4sIGNvbHVtbnMpXCJcbiAgICAgICAgICAgIChjbGljayk9XCJjb2x1bW5QaW5DaGFuZ2UoY29sdW1uLCAhY29sdW1uLnBpbm5lZClcIlxuICAgICAgICAgID48L2J1dHRvbj5cbiAgICAgICAgPC9kaXY+XG4gICAgICA8L2Rpdj5cbiAgICAgIDxmb290ZXIgKm5nSWY9XCIoc2VhcmNoaW5nIHwgYXN5bmMpID09PSBmYWxzZVwiPlxuICAgICAgICA8YnV0dG9uXG4gICAgICAgICAgdHlwZT1cImJ1dHRvblwiXG4gICAgICAgICAgcml2QnV0dG9uXG4gICAgICAgICAgW3NpemVdPVwiJ3hzbWFsbCdcIlxuICAgICAgICAgIFt2YXJpYW50XT1cIidnaG9zdCdcIlxuICAgICAgICAgIFtkaXNhYmxlZF09XCJhbGxDb2x1bW5zRGlzYWJsZWQoY29sdW1ucylcIlxuICAgICAgICAgIChjbGljayk9XCJkaXNhYmxlQWxsQ29sdW1ucyhjb2x1bW5zKVwiXG4gICAgICAgID5cbiAgICAgICAgICBDbGVhclxuICAgICAgICA8L2J1dHRvbj5cbiAgICAgICAgPGJ1dHRvblxuICAgICAgICAgIHR5cGU9XCJidXR0b25cIlxuICAgICAgICAgIHJpdkJ1dHRvblxuICAgICAgICAgICpuZ0lmPVwic2hvd1NlbGVjdEFsbENvbHVtbnMoY29sdW1ucylcIlxuICAgICAgICAgIFtzaXplXT1cIid4c21hbGwnXCJcbiAgICAgICAgICBbdmFyaWFudF09XCInZ2hvc3QnXCJcbiAgICAgICAgICBbZGlzYWJsZWRdPVwiYWxsQ29sdW1uc0VuYWJsZWQoY29sdW1ucylcIlxuICAgICAgICAgIChjbGljayk9XCJlbmFibGVBbGxDb2x1bW5zKGNvbHVtbnMpXCJcbiAgICAgICAgPlxuICAgICAgICAgIFNlbGVjdCBhbGxcbiAgICAgICAgPC9idXR0b24+XG4gICAgICA8L2Zvb3Rlcj5cbiAgICA8L3Jpdi1jYWxsb3V0PlxuICA8L25nLWNvbnRhaW5lcj5cbjwvbmctY29udGFpbmVyPlxuIl19
|
|
@@ -0,0 +1,35 @@
|
|
|
1
|
+
import { ChangeDetectionStrategy, Component, Input, } from '@angular/core';
|
|
2
|
+
import * as p from 'papaparse';
|
|
3
|
+
import * as i0 from "@angular/core";
|
|
4
|
+
import * as i1 from "../../../download/download.service";
|
|
5
|
+
import * as i2 from "@angular/common";
|
|
6
|
+
import * as i3 from "../../../input/button/button.component";
|
|
7
|
+
import * as i4 from "../../../overlay/callout/tooltip/tooltip.directive";
|
|
8
|
+
export class TableCsvExportComponent {
|
|
9
|
+
constructor(downloadService, cdr) {
|
|
10
|
+
this.downloadService = downloadService;
|
|
11
|
+
this.cdr = cdr;
|
|
12
|
+
this.loading = false;
|
|
13
|
+
}
|
|
14
|
+
async downloadCsv(state) {
|
|
15
|
+
for await (const output of state.result.csvData()) {
|
|
16
|
+
if (!output.data) {
|
|
17
|
+
this.loading = true;
|
|
18
|
+
}
|
|
19
|
+
else {
|
|
20
|
+
await this.downloadService.downloadBlob(new Blob([p.unparse(output.data)], { type: 'text/csv' }), state.result.csvFilename);
|
|
21
|
+
this.loading = false;
|
|
22
|
+
}
|
|
23
|
+
this.cdr.markForCheck();
|
|
24
|
+
}
|
|
25
|
+
}
|
|
26
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: TableCsvExportComponent, deps: [{ token: i1.DownloadService }, { token: i0.ChangeDetectorRef }], target: i0.ɵɵFactoryTarget.Component }); }
|
|
27
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.3.12", type: TableCsvExportComponent, selector: "riv-table-csv-export", inputs: { manager: "manager" }, ngImport: i0, template: "<ng-container *ngIf=\"manager?.state | async; let s\">\n <button\n type=\"button\"\n rivButton\n [rivTooltip]=\"'Export CSV'\"\n [loading]=\"loading\"\n (click)=\"downloadCsv(s)\"\n >\n Export\n </button>\n</ng-container>\n", dependencies: [{ kind: "directive", type: i2.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "component", type: i3.ButtonComponent, selector: "[rivButton]", inputs: ["locked", "disabled", "loading", "full", "size", "variant", "icon", "iconPosition", "current"] }, { kind: "directive", type: i4.TooltipDirective, selector: "[rivTooltip]", inputs: ["rivTooltip", "rivTooltipTheme", "rivTooltipMaxWidth", "rivTooltipPreferredPosition", "rivTooltipAnchor", "rivTooltipCloseDelay", "rivTooltipOpenDelay", "rivTooltipGracePeriod"] }, { kind: "pipe", type: i2.AsyncPipe, name: "async" }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
|
|
28
|
+
}
|
|
29
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: TableCsvExportComponent, decorators: [{
|
|
30
|
+
type: Component,
|
|
31
|
+
args: [{ selector: 'riv-table-csv-export', changeDetection: ChangeDetectionStrategy.OnPush, template: "<ng-container *ngIf=\"manager?.state | async; let s\">\n <button\n type=\"button\"\n rivButton\n [rivTooltip]=\"'Export CSV'\"\n [loading]=\"loading\"\n (click)=\"downloadCsv(s)\"\n >\n Export\n </button>\n</ng-container>\n" }]
|
|
32
|
+
}], ctorParameters: () => [{ type: i1.DownloadService }, { type: i0.ChangeDetectorRef }], propDecorators: { manager: [{
|
|
33
|
+
type: Input
|
|
34
|
+
}] } });
|
|
35
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGFibGUtY3N2LWV4cG9ydC5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9yaXYvc3JjL2xpYi90YWJsZS90YWJsZS90YWJsZS1jc3YtZXhwb3J0L3RhYmxlLWNzdi1leHBvcnQuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvcml2L3NyYy9saWIvdGFibGUvdGFibGUvdGFibGUtY3N2LWV4cG9ydC90YWJsZS1jc3YtZXhwb3J0LmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFDTCx1QkFBdUIsRUFFdkIsU0FBUyxFQUNULEtBQUssR0FDTixNQUFNLGVBQWUsQ0FBQztBQUN2QixPQUFPLEtBQUssQ0FBQyxNQUFNLFdBQVcsQ0FBQzs7Ozs7O0FBUy9CLE1BQU0sT0FBTyx1QkFBdUI7SUFRbEMsWUFDbUIsZUFBZ0MsRUFDaEMsR0FBc0I7UUFEdEIsb0JBQWUsR0FBZixlQUFlLENBQWlCO1FBQ2hDLFFBQUcsR0FBSCxHQUFHLENBQW1CO1FBR3pDLFlBQU8sR0FBRyxLQUFLLENBQUM7SUFGYixDQUFDO0lBSUosS0FBSyxDQUFDLFdBQVcsQ0FBQyxLQUFrQztRQUNsRCxJQUFJLEtBQUssRUFBRSxNQUFNLE1BQU0sSUFBSSxLQUFLLENBQUMsTUFBTSxDQUFDLE9BQU8sRUFBRSxFQUFFLENBQUM7WUFDbEQsSUFBSSxDQUFDLE1BQU0sQ0FBQyxJQUFJLEVBQUUsQ0FBQztnQkFDakIsSUFBSSxDQUFDLE9BQU8sR0FBRyxJQUFJLENBQUM7WUFDdEIsQ0FBQztpQkFBTSxDQUFDO2dCQUNOLE1BQU0sSUFBSSxDQUFDLGVBQWUsQ0FBQyxZQUFZLENBQ3JDLElBQUksSUFBSSxDQUFDLENBQUMsQ0FBQyxDQUFDLE9BQU8sQ0FBQyxNQUFNLENBQUMsSUFBSSxDQUFDLENBQUMsRUFBRSxFQUFFLElBQUksRUFBRSxVQUFVLEVBQUUsQ0FBQyxFQUN4RCxLQUFLLENBQUMsTUFBTSxDQUFDLFdBQVcsQ0FDekIsQ0FBQztnQkFDRixJQUFJLENBQUMsT0FBTyxHQUFHLEtBQUssQ0FBQztZQUN2QixDQUFDO1lBQ0QsSUFBSSxDQUFDLEdBQUcsQ0FBQyxZQUFZLEVBQUUsQ0FBQztRQUMxQixDQUFDO0lBQ0gsQ0FBQzsrR0E1QlUsdUJBQXVCO21HQUF2Qix1QkFBdUIsNEZDZnBDLHNQQVdBOzs0RkRJYSx1QkFBdUI7a0JBTG5DLFNBQVM7K0JBQ0Usc0JBQXNCLG1CQUVmLHVCQUF1QixDQUFDLE1BQU07b0hBUS9DLE9BQU87c0JBRE4sS0FBSyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7XG4gIENoYW5nZURldGVjdGlvblN0cmF0ZWd5LFxuICBDaGFuZ2VEZXRlY3RvclJlZixcbiAgQ29tcG9uZW50LFxuICBJbnB1dCxcbn0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgKiBhcyBwIGZyb20gJ3BhcGFwYXJzZSc7XG5pbXBvcnQgeyBEb3dubG9hZFNlcnZpY2UgfSBmcm9tICcuLi8uLi8uLi9kb3dubG9hZC9kb3dubG9hZC5zZXJ2aWNlJztcbmltcG9ydCB7IFJpdlRhYmxlIH0gZnJvbSAnLi4vc3RhdGUnO1xuXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdyaXYtdGFibGUtY3N2LWV4cG9ydCcsXG4gIHRlbXBsYXRlVXJsOiAnLi90YWJsZS1jc3YtZXhwb3J0LmNvbXBvbmVudC5odG1sJyxcbiAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2gsXG59KVxuZXhwb3J0IGNsYXNzIFRhYmxlQ3N2RXhwb3J0Q29tcG9uZW50PFxuICBSIGV4dGVuZHMgUml2VGFibGUuUm93LFxuICBDIGV4dGVuZHMgUml2VGFibGUuQ29sdW1uLFxuICBGIGV4dGVuZHMgUml2VGFibGUuRmlsdGVycyxcbj4ge1xuICBASW5wdXQoKVxuICBtYW5hZ2VyPzogUml2VGFibGUuTWFuYWdlcjxSLCBDLCBGPjtcblxuICBjb25zdHJ1Y3RvcihcbiAgICBwcml2YXRlIHJlYWRvbmx5IGRvd25sb2FkU2VydmljZTogRG93bmxvYWRTZXJ2aWNlLFxuICAgIHByaXZhdGUgcmVhZG9ubHkgY2RyOiBDaGFuZ2VEZXRlY3RvclJlZixcbiAgKSB7fVxuXG4gIGxvYWRpbmcgPSBmYWxzZTtcblxuICBhc3luYyBkb3dubG9hZENzdihzdGF0ZTogUml2VGFibGUuRnVsbFN0YXRlPFIsIEMsIEY+KSB7XG4gICAgZm9yIGF3YWl0IChjb25zdCBvdXRwdXQgb2Ygc3RhdGUucmVzdWx0LmNzdkRhdGEoKSkge1xuICAgICAgaWYgKCFvdXRwdXQuZGF0YSkge1xuICAgICAgICB0aGlzLmxvYWRpbmcgPSB0cnVlO1xuICAgICAgfSBlbHNlIHtcbiAgICAgICAgYXdhaXQgdGhpcy5kb3dubG9hZFNlcnZpY2UuZG93bmxvYWRCbG9iKFxuICAgICAgICAgIG5ldyBCbG9iKFtwLnVucGFyc2Uob3V0cHV0LmRhdGEpXSwgeyB0eXBlOiAndGV4dC9jc3YnIH0pLFxuICAgICAgICAgIHN0YXRlLnJlc3VsdC5jc3ZGaWxlbmFtZSxcbiAgICAgICAgKTtcbiAgICAgICAgdGhpcy5sb2FkaW5nID0gZmFsc2U7XG4gICAgICB9XG4gICAgICB0aGlzLmNkci5tYXJrRm9yQ2hlY2soKTtcbiAgICB9XG4gIH1cbn1cbiIsIjxuZy1jb250YWluZXIgKm5nSWY9XCJtYW5hZ2VyPy5zdGF0ZSB8IGFzeW5jOyBsZXQgc1wiPlxuICA8YnV0dG9uXG4gICAgdHlwZT1cImJ1dHRvblwiXG4gICAgcml2QnV0dG9uXG4gICAgW3JpdlRvb2x0aXBdPVwiJ0V4cG9ydCBDU1YnXCJcbiAgICBbbG9hZGluZ109XCJsb2FkaW5nXCJcbiAgICAoY2xpY2spPVwiZG93bmxvYWRDc3YocylcIlxuICA+XG4gICAgRXhwb3J0XG4gIDwvYnV0dG9uPlxuPC9uZy1jb250YWluZXI+XG4iXX0=
|
|
@@ -13,16 +13,16 @@ export class TableHeaderResizeHandleComponent {
|
|
|
13
13
|
return fromEvent(this.documentRef, 'mousemove').pipe(map(({ clientX }) => width + clientX - right), distinctUntilChanged(), takeUntil(fromEvent(this.documentRef, 'mouseup')), concatWith(of(null)));
|
|
14
14
|
}));
|
|
15
15
|
}
|
|
16
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: TableHeaderResizeHandleComponent, deps: [{ token: i0.ElementRef }, { token: DOCUMENT }], target: i0.ɵɵFactoryTarget.Component }); }
|
|
17
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.3.12", type: TableHeaderResizeHandleComponent, selector: "riv-table-header-resize-handle", outputs: { dragResize: "dragResize" }, ngImport: i0, template: "", styles: [":host{position:absolute;top:0;right:calc(var(--border-width) * -1);bottom:0;padding-left:var(--size-small);background-color:var(--brand);background-clip:content-box;box-sizing:content-box;width:var(--border-width);opacity:0;transition:opacity var(--medium-transition);cursor:ew-resize}:host:hover{opacity:1}\n"], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
|
|
16
18
|
}
|
|
17
|
-
|
|
18
|
-
TableHeaderResizeHandleComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "15.2.10", type: TableHeaderResizeHandleComponent, selector: "riv-table-header-resize-handle", outputs: { dragResize: "dragResize" }, ngImport: i0, template: "", styles: [":host{position:absolute;top:0;right:calc(var(--border-width) * -1);bottom:0;padding-left:var(--size-small);background-color:var(--brand);background-clip:content-box;box-sizing:content-box;width:var(--border-width);opacity:0;transition:opacity var(--medium-transition);cursor:ew-resize}:host:hover{opacity:1}\n"], changeDetection: i0.ChangeDetectionStrategy.OnPush });
|
|
19
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: TableHeaderResizeHandleComponent, decorators: [{
|
|
19
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: TableHeaderResizeHandleComponent, decorators: [{
|
|
20
20
|
type: Component,
|
|
21
21
|
args: [{ selector: 'riv-table-header-resize-handle', changeDetection: ChangeDetectionStrategy.OnPush, template: "", styles: [":host{position:absolute;top:0;right:calc(var(--border-width) * -1);bottom:0;padding-left:var(--size-small);background-color:var(--brand);background-clip:content-box;box-sizing:content-box;width:var(--border-width);opacity:0;transition:opacity var(--medium-transition);cursor:ew-resize}:host:hover{opacity:1}\n"] }]
|
|
22
|
-
}], ctorParameters:
|
|
22
|
+
}], ctorParameters: () => [{ type: i0.ElementRef }, { type: Document, decorators: [{
|
|
23
23
|
type: Inject,
|
|
24
24
|
args: [DOCUMENT]
|
|
25
|
-
}] }]
|
|
25
|
+
}] }], propDecorators: { dragResize: [{
|
|
26
26
|
type: Output
|
|
27
27
|
}] } });
|
|
28
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
28
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGFibGUtaGVhZGVyLXJlc2l6ZS1oYW5kbGUuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvcml2L3NyYy9saWIvdGFibGUvdGFibGUvdGFibGUtaGVhZGVyLXJlc2l6ZS1oYW5kbGUvdGFibGUtaGVhZGVyLXJlc2l6ZS1oYW5kbGUuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvcml2L3NyYy9saWIvdGFibGUvdGFibGUvdGFibGUtaGVhZGVyLXJlc2l6ZS1oYW5kbGUvdGFibGUtaGVhZGVyLXJlc2l6ZS1oYW5kbGUuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFFBQVEsRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBQzNDLE9BQU8sRUFDTCx1QkFBdUIsRUFDdkIsU0FBUyxFQUVULE1BQU0sRUFDTixNQUFNLEdBQ1AsTUFBTSxlQUFlLENBQUM7QUFDdkIsT0FBTyxFQUNMLFVBQVUsRUFDVixvQkFBb0IsRUFDcEIsU0FBUyxFQUNULEdBQUcsRUFFSCxFQUFFLEVBQ0YsU0FBUyxFQUNULFNBQVMsRUFDVCxHQUFHLEdBQ0osTUFBTSxNQUFNLENBQUM7O0FBUWQsTUFBTSxPQUFPLGdDQUFnQztJQUMzQyxZQUNtQixVQUFzQixFQUNKLFdBQXFCO1FBRHZDLGVBQVUsR0FBVixVQUFVLENBQVk7UUFDSixnQkFBVyxHQUFYLFdBQVcsQ0FBVTtRQUlqRCxlQUFVLEdBQThCLFNBQVMsQ0FDeEQsSUFBSSxDQUFDLFVBQVUsQ0FBQyxhQUFhLEVBQzdCLFdBQVcsQ0FDWixDQUFDLElBQUksQ0FDSixHQUFHLENBQUMsR0FBRyxDQUFDLEVBQUUsQ0FBQyxHQUFHLENBQUMsY0FBYyxFQUFFLENBQUMsRUFDaEMsU0FBUyxDQUFDLEdBQUcsRUFBRTtZQUNiLE1BQU0sRUFBRSxLQUFLLEVBQUUsS0FBSyxFQUFFLEdBQUcsSUFBSSxDQUFDLFVBQVUsQ0FBQyxhQUFhO2lCQUNuRCxPQUFPLENBQUMsSUFBSSxDQUFFO2lCQUNkLHFCQUFxQixFQUFFLENBQUM7WUFFM0IsT0FBTyxTQUFTLENBQWEsSUFBSSxDQUFDLFdBQVcsRUFBRSxXQUFXLENBQUMsQ0FBQyxJQUFJLENBQzlELEdBQUcsQ0FBQyxDQUFDLEVBQUUsT0FBTyxFQUFFLEVBQUUsRUFBRSxDQUFDLEtBQUssR0FBRyxPQUFPLEdBQUcsS0FBSyxDQUFDLEVBQzdDLG9CQUFvQixFQUFFLEVBQ3RCLFNBQVMsQ0FBQyxTQUFTLENBQUMsSUFBSSxDQUFDLFdBQVcsRUFBRSxTQUFTLENBQUMsQ0FBQyxFQUNqRCxVQUFVLENBQUMsRUFBRSxDQUFDLElBQUksQ0FBQyxDQUFDLENBQ3JCLENBQUM7UUFDSixDQUFDLENBQUMsQ0FDSCxDQUFDO0lBcEJDLENBQUM7K0dBSk8sZ0NBQWdDLDRDQUdqQyxRQUFRO21HQUhQLGdDQUFnQyw2R0MxQjdDLEVBQUE7OzRGRDBCYSxnQ0FBZ0M7a0JBTjVDLFNBQVM7K0JBQ0UsZ0NBQWdDLG1CQUd6Qix1QkFBdUIsQ0FBQyxNQUFNOzswQkFLNUMsTUFBTTsyQkFBQyxRQUFRO3lDQUlULFVBQVU7c0JBRGxCLE1BQU0iLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBET0NVTUVOVCB9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbic7XG5pbXBvcnQge1xuICBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneSxcbiAgQ29tcG9uZW50LFxuICBFbGVtZW50UmVmLFxuICBJbmplY3QsXG4gIE91dHB1dCxcbn0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQge1xuICBjb25jYXRXaXRoLFxuICBkaXN0aW5jdFVudGlsQ2hhbmdlZCxcbiAgZnJvbUV2ZW50LFxuICBtYXAsXG4gIE9ic2VydmFibGUsXG4gIG9mLFxuICBzd2l0Y2hNYXAsXG4gIHRha2VVbnRpbCxcbiAgdGFwLFxufSBmcm9tICdyeGpzJztcblxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAncml2LXRhYmxlLWhlYWRlci1yZXNpemUtaGFuZGxlJyxcbiAgdGVtcGxhdGVVcmw6ICcuL3RhYmxlLWhlYWRlci1yZXNpemUtaGFuZGxlLmNvbXBvbmVudC5odG1sJyxcbiAgc3R5bGVVcmxzOiBbJy4vdGFibGUtaGVhZGVyLXJlc2l6ZS1oYW5kbGUuY29tcG9uZW50LmNzcyddLFxuICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaCxcbn0pXG5leHBvcnQgY2xhc3MgVGFibGVIZWFkZXJSZXNpemVIYW5kbGVDb21wb25lbnQge1xuICBjb25zdHJ1Y3RvcihcbiAgICBwcml2YXRlIHJlYWRvbmx5IGVsZW1lbnRSZWY6IEVsZW1lbnRSZWYsXG4gICAgQEluamVjdChET0NVTUVOVCkgcHJpdmF0ZSByZWFkb25seSBkb2N1bWVudFJlZjogRG9jdW1lbnQsXG4gICkge31cblxuICBAT3V0cHV0KClcbiAgcmVhZG9ubHkgZHJhZ1Jlc2l6ZTogT2JzZXJ2YWJsZTxudW1iZXIgfCBudWxsPiA9IGZyb21FdmVudDxNb3VzZUV2ZW50PihcbiAgICB0aGlzLmVsZW1lbnRSZWYubmF0aXZlRWxlbWVudCxcbiAgICAnbW91c2Vkb3duJyxcbiAgKS5waXBlKFxuICAgIHRhcChldnQgPT4gZXZ0LnByZXZlbnREZWZhdWx0KCkpLFxuICAgIHN3aXRjaE1hcCgoKSA9PiB7XG4gICAgICBjb25zdCB7IHdpZHRoLCByaWdodCB9ID0gdGhpcy5lbGVtZW50UmVmLm5hdGl2ZUVsZW1lbnRcbiAgICAgICAgLmNsb3Nlc3QoJ3RoJykhXG4gICAgICAgIC5nZXRCb3VuZGluZ0NsaWVudFJlY3QoKTtcblxuICAgICAgcmV0dXJuIGZyb21FdmVudDxNb3VzZUV2ZW50Pih0aGlzLmRvY3VtZW50UmVmLCAnbW91c2Vtb3ZlJykucGlwZShcbiAgICAgICAgbWFwKCh7IGNsaWVudFggfSkgPT4gd2lkdGggKyBjbGllbnRYIC0gcmlnaHQpLFxuICAgICAgICBkaXN0aW5jdFVudGlsQ2hhbmdlZCgpLFxuICAgICAgICB0YWtlVW50aWwoZnJvbUV2ZW50KHRoaXMuZG9jdW1lbnRSZWYsICdtb3VzZXVwJykpLFxuICAgICAgICBjb25jYXRXaXRoKG9mKG51bGwpKSwgLy8gc2lnbmFsIHRoYXQgdGhlIHVzZXIgaXMgZG9uZSB3b3JraW5nXG4gICAgICApO1xuICAgIH0pLFxuICApO1xufVxuIiwiIl19
|
|
@@ -0,0 +1,71 @@
|
|
|
1
|
+
import { ChangeDetectionStrategy, Component, Input, } from '@angular/core';
|
|
2
|
+
import { debounce } from 'lodash';
|
|
3
|
+
import { distinctUntilChanged, map, Subject, takeUntil } from 'rxjs';
|
|
4
|
+
import * as i0 from "@angular/core";
|
|
5
|
+
import * as i1 from "../../../input/search/search.component";
|
|
6
|
+
import * as i2 from "../table-search-columns/table-search-columns.component";
|
|
7
|
+
export class TableSearchComponent {
|
|
8
|
+
constructor() {
|
|
9
|
+
this.name = 'table-search';
|
|
10
|
+
this.disabled = false;
|
|
11
|
+
this.searchColumns = false;
|
|
12
|
+
this.search = debounce((query) => {
|
|
13
|
+
if (this.tableLoading) {
|
|
14
|
+
this.searchingWhileLoading = true;
|
|
15
|
+
return;
|
|
16
|
+
}
|
|
17
|
+
this.manager?.actions.next({ type: 'searchChange', payload: query });
|
|
18
|
+
}, 300);
|
|
19
|
+
this._searchTerm = '';
|
|
20
|
+
this.searchingWhileLoading = false;
|
|
21
|
+
this.tableLoading = false;
|
|
22
|
+
this.destroy = new Subject();
|
|
23
|
+
}
|
|
24
|
+
get searchTerm() {
|
|
25
|
+
return this._searchTerm;
|
|
26
|
+
}
|
|
27
|
+
set searchTerm(value) {
|
|
28
|
+
this._searchTerm = value;
|
|
29
|
+
this.search(value);
|
|
30
|
+
}
|
|
31
|
+
ngOnInit() {
|
|
32
|
+
this.manager?.state
|
|
33
|
+
.pipe(map(s => s.load.loading), distinctUntilChanged(), takeUntil(this.destroy))
|
|
34
|
+
.subscribe(loading => {
|
|
35
|
+
this.tableLoading = loading;
|
|
36
|
+
if (!loading && this.searchingWhileLoading) {
|
|
37
|
+
this.searchingWhileLoading = false;
|
|
38
|
+
this.manager?.actions.next({
|
|
39
|
+
type: 'searchChange',
|
|
40
|
+
payload: this.searchTerm,
|
|
41
|
+
});
|
|
42
|
+
}
|
|
43
|
+
});
|
|
44
|
+
this.manager?.state
|
|
45
|
+
.pipe(map(s => s.query.search), distinctUntilChanged(), takeUntil(this.destroy))
|
|
46
|
+
.subscribe(s => {
|
|
47
|
+
if (this.searchTerm == '' && s != '') {
|
|
48
|
+
this.searchTerm = s;
|
|
49
|
+
}
|
|
50
|
+
});
|
|
51
|
+
}
|
|
52
|
+
ngOnDestroy() {
|
|
53
|
+
this.destroy.next();
|
|
54
|
+
this.destroy.complete();
|
|
55
|
+
}
|
|
56
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: TableSearchComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
|
|
57
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.3.12", type: TableSearchComponent, selector: "riv-table-search", inputs: { manager: "manager", name: "name", disabled: "disabled", searchColumns: "searchColumns" }, ngImport: i0, template: "<riv-search\n [name]=\"name\"\n [disabled]=\"disabled\"\n [value]=\"searchTerm\"\n (valueChange)=\"searchTerm = $event\"\n [labelTemplate]=\"searchColumns ? labelTemplate : undefined\"\n></riv-search>\n<ng-template #labelTemplate\n ><riv-table-search-columns [manager]=\"manager\"></riv-table-search-columns\n></ng-template>\n", dependencies: [{ kind: "component", type: i1.SearchComponent, selector: "riv-search", inputs: ["placeholder", "name", "labelTemplate"] }, { kind: "component", type: i2.TableSearchColumnsComponent, selector: "riv-table-search-columns", inputs: ["manager", "disabled"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
|
|
58
|
+
}
|
|
59
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: TableSearchComponent, decorators: [{
|
|
60
|
+
type: Component,
|
|
61
|
+
args: [{ selector: 'riv-table-search', changeDetection: ChangeDetectionStrategy.OnPush, template: "<riv-search\n [name]=\"name\"\n [disabled]=\"disabled\"\n [value]=\"searchTerm\"\n (valueChange)=\"searchTerm = $event\"\n [labelTemplate]=\"searchColumns ? labelTemplate : undefined\"\n></riv-search>\n<ng-template #labelTemplate\n ><riv-table-search-columns [manager]=\"manager\"></riv-table-search-columns\n></ng-template>\n" }]
|
|
62
|
+
}], propDecorators: { manager: [{
|
|
63
|
+
type: Input
|
|
64
|
+
}], name: [{
|
|
65
|
+
type: Input
|
|
66
|
+
}], disabled: [{
|
|
67
|
+
type: Input
|
|
68
|
+
}], searchColumns: [{
|
|
69
|
+
type: Input
|
|
70
|
+
}] } });
|
|
71
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGFibGUtc2VhcmNoLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL3Jpdi9zcmMvbGliL3RhYmxlL3RhYmxlL3RhYmxlLXNlYXJjaC90YWJsZS1zZWFyY2guY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvcml2L3NyYy9saWIvdGFibGUvdGFibGUvdGFibGUtc2VhcmNoL3RhYmxlLXNlYXJjaC5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQ0wsdUJBQXVCLEVBQ3ZCLFNBQVMsRUFDVCxLQUFLLEdBR04sTUFBTSxlQUFlLENBQUM7QUFDdkIsT0FBTyxFQUFFLFFBQVEsRUFBUSxNQUFNLFFBQVEsQ0FBQztBQUV4QyxPQUFPLEVBQUUsb0JBQW9CLEVBQUUsR0FBRyxFQUFFLE9BQU8sRUFBRSxTQUFTLEVBQUUsTUFBTSxNQUFNLENBQUM7Ozs7QUFPckUsTUFBTSxPQUFPLG9CQUFvQjtJQUxqQztRQWVFLFNBQUksR0FBVyxjQUFjLENBQUM7UUFHOUIsYUFBUSxHQUFZLEtBQUssQ0FBQztRQUcxQixrQkFBYSxHQUFZLEtBQUssQ0FBQztRQUUvQixXQUFNLEdBQUcsUUFBUSxDQUFDLENBQUMsS0FBYSxFQUFFLEVBQUU7WUFDbEMsSUFBSSxJQUFJLENBQUMsWUFBWSxFQUFFLENBQUM7Z0JBQ3RCLElBQUksQ0FBQyxxQkFBcUIsR0FBRyxJQUFJLENBQUM7Z0JBQ2xDLE9BQU87WUFDVCxDQUFDO1lBQ0QsSUFBSSxDQUFDLE9BQU8sRUFBRSxPQUFPLENBQUMsSUFBSSxDQUFDLEVBQUUsSUFBSSxFQUFFLGNBQWMsRUFBRSxPQUFPLEVBQUUsS0FBSyxFQUFFLENBQUMsQ0FBQztRQUN2RSxDQUFDLEVBQUUsR0FBRyxDQUFDLENBQUM7UUFFUixnQkFBVyxHQUFXLEVBQUUsQ0FBQztRQVd6QiwwQkFBcUIsR0FBRyxLQUFLLENBQUM7UUFDOUIsaUJBQVksR0FBRyxLQUFLLENBQUM7UUFDckIsWUFBTyxHQUFHLElBQUksT0FBTyxFQUFRLENBQUM7S0FxQy9CO0lBaERDLElBQUksVUFBVTtRQUNaLE9BQU8sSUFBSSxDQUFDLFdBQVcsQ0FBQztJQUMxQixDQUFDO0lBRUQsSUFBSSxVQUFVLENBQUMsS0FBYTtRQUMxQixJQUFJLENBQUMsV0FBVyxHQUFHLEtBQUssQ0FBQztRQUN6QixJQUFJLENBQUMsTUFBTSxDQUFDLEtBQUssQ0FBQyxDQUFDO0lBQ3JCLENBQUM7SUFNRCxRQUFRO1FBQ04sSUFBSSxDQUFDLE9BQU8sRUFBRSxLQUFLO2FBQ2hCLElBQUksQ0FDSCxHQUFHLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLE9BQU8sQ0FBQyxFQUN4QixvQkFBb0IsRUFBRSxFQUN0QixTQUFTLENBQUMsSUFBSSxDQUFDLE9BQU8sQ0FBQyxDQUN4QjthQUNBLFNBQVMsQ0FBQyxPQUFPLENBQUMsRUFBRTtZQUNuQixJQUFJLENBQUMsWUFBWSxHQUFHLE9BQU8sQ0FBQztZQUM1QixJQUFJLENBQUMsT0FBTyxJQUFJLElBQUksQ0FBQyxxQkFBcUIsRUFBRSxDQUFDO2dCQUMzQyxJQUFJLENBQUMscUJBQXFCLEdBQUcsS0FBSyxDQUFDO2dCQUNuQyxJQUFJLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxJQUFJLENBQUM7b0JBQ3pCLElBQUksRUFBRSxjQUFjO29CQUNwQixPQUFPLEVBQUUsSUFBSSxDQUFDLFVBQVU7aUJBQ3pCLENBQUMsQ0FBQztZQUNMLENBQUM7UUFDSCxDQUFDLENBQUMsQ0FBQztRQUVMLElBQUksQ0FBQyxPQUFPLEVBQUUsS0FBSzthQUNoQixJQUFJLENBQ0gsR0FBRyxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLEtBQUssQ0FBQyxNQUFNLENBQUMsRUFDeEIsb0JBQW9CLEVBQUUsRUFDdEIsU0FBUyxDQUFDLElBQUksQ0FBQyxPQUFPLENBQUMsQ0FDeEI7YUFDQSxTQUFTLENBQUMsQ0FBQyxDQUFDLEVBQUU7WUFDYixJQUFJLElBQUksQ0FBQyxVQUFVLElBQUksRUFBRSxJQUFJLENBQUMsSUFBSSxFQUFFLEVBQUUsQ0FBQztnQkFDckMsSUFBSSxDQUFDLFVBQVUsR0FBRyxDQUFDLENBQUM7WUFDdEIsQ0FBQztRQUNILENBQUMsQ0FBQyxDQUFDO0lBQ1AsQ0FBQztJQUVELFdBQVc7UUFDVCxJQUFJLENBQUMsT0FBTyxDQUFDLElBQUksRUFBRSxDQUFDO1FBQ3BCLElBQUksQ0FBQyxPQUFPLENBQUMsUUFBUSxFQUFFLENBQUM7SUFDMUIsQ0FBQzsrR0EzRVUsb0JBQW9CO21HQUFwQixvQkFBb0IsNEpDaEJqQyw4VUFVQTs7NEZETWEsb0JBQW9CO2tCQUxoQyxTQUFTOytCQUNFLGtCQUFrQixtQkFFWCx1QkFBdUIsQ0FBQyxNQUFNOzhCQVMvQyxPQUFPO3NCQUROLEtBQUs7Z0JBSU4sSUFBSTtzQkFESCxLQUFLO2dCQUlOLFFBQVE7c0JBRFAsS0FBSztnQkFJTixhQUFhO3NCQURaLEtBQUsiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge1xuICBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneSxcbiAgQ29tcG9uZW50LFxuICBJbnB1dCxcbiAgT25EZXN0cm95LFxuICBPbkluaXQsXG59IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgZGVib3VuY2UsIHRha2UgfSBmcm9tICdsb2Rhc2gnO1xuaW1wb3J0IHsgUml2VGFibGUgfSBmcm9tICcuLi9zdGF0ZSc7XG5pbXBvcnQgeyBkaXN0aW5jdFVudGlsQ2hhbmdlZCwgbWFwLCBTdWJqZWN0LCB0YWtlVW50aWwgfSBmcm9tICdyeGpzJztcblxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAncml2LXRhYmxlLXNlYXJjaCcsXG4gIHRlbXBsYXRlVXJsOiAnLi90YWJsZS1zZWFyY2guY29tcG9uZW50Lmh0bWwnLFxuICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaCxcbn0pXG5leHBvcnQgY2xhc3MgVGFibGVTZWFyY2hDb21wb25lbnQ8XG4gIFIgZXh0ZW5kcyBSaXZUYWJsZS5Sb3csXG4gIEMgZXh0ZW5kcyBSaXZUYWJsZS5Db2x1bW4sXG4gIEYgZXh0ZW5kcyBSaXZUYWJsZS5GaWx0ZXJzLFxuPiBpbXBsZW1lbnRzIE9uSW5pdCwgT25EZXN0cm95XG57XG4gIEBJbnB1dCgpXG4gIG1hbmFnZXI/OiBSaXZUYWJsZS5NYW5hZ2VyPFIsIEMsIEY+O1xuXG4gIEBJbnB1dCgpXG4gIG5hbWU6IHN0cmluZyA9ICd0YWJsZS1zZWFyY2gnO1xuXG4gIEBJbnB1dCgpXG4gIGRpc2FibGVkOiBib29sZWFuID0gZmFsc2U7XG5cbiAgQElucHV0KClcbiAgc2VhcmNoQ29sdW1uczogYm9vbGVhbiA9IGZhbHNlO1xuXG4gIHNlYXJjaCA9IGRlYm91bmNlKChxdWVyeTogc3RyaW5nKSA9PiB7XG4gICAgaWYgKHRoaXMudGFibGVMb2FkaW5nKSB7XG4gICAgICB0aGlzLnNlYXJjaGluZ1doaWxlTG9hZGluZyA9IHRydWU7XG4gICAgICByZXR1cm47XG4gICAgfVxuICAgIHRoaXMubWFuYWdlcj8uYWN0aW9ucy5uZXh0KHsgdHlwZTogJ3NlYXJjaENoYW5nZScsIHBheWxvYWQ6IHF1ZXJ5IH0pO1xuICB9LCAzMDApO1xuXG4gIF9zZWFyY2hUZXJtOiBzdHJpbmcgPSAnJztcblxuICBnZXQgc2VhcmNoVGVybSgpOiBzdHJpbmcge1xuICAgIHJldHVybiB0aGlzLl9zZWFyY2hUZXJtO1xuICB9XG5cbiAgc2V0IHNlYXJjaFRlcm0odmFsdWU6IHN0cmluZykge1xuICAgIHRoaXMuX3NlYXJjaFRlcm0gPSB2YWx1ZTtcbiAgICB0aGlzLnNlYXJjaCh2YWx1ZSk7XG4gIH1cblxuICBzZWFyY2hpbmdXaGlsZUxvYWRpbmcgPSBmYWxzZTtcbiAgdGFibGVMb2FkaW5nID0gZmFsc2U7XG4gIGRlc3Ryb3kgPSBuZXcgU3ViamVjdDx2b2lkPigpO1xuXG4gIG5nT25Jbml0KCkge1xuICAgIHRoaXMubWFuYWdlcj8uc3RhdGVcbiAgICAgIC5waXBlKFxuICAgICAgICBtYXAocyA9PiBzLmxvYWQubG9hZGluZyksXG4gICAgICAgIGRpc3RpbmN0VW50aWxDaGFuZ2VkKCksXG4gICAgICAgIHRha2VVbnRpbCh0aGlzLmRlc3Ryb3kpLFxuICAgICAgKVxuICAgICAgLnN1YnNjcmliZShsb2FkaW5nID0+IHtcbiAgICAgICAgdGhpcy50YWJsZUxvYWRpbmcgPSBsb2FkaW5nO1xuICAgICAgICBpZiAoIWxvYWRpbmcgJiYgdGhpcy5zZWFyY2hpbmdXaGlsZUxvYWRpbmcpIHtcbiAgICAgICAgICB0aGlzLnNlYXJjaGluZ1doaWxlTG9hZGluZyA9IGZhbHNlO1xuICAgICAgICAgIHRoaXMubWFuYWdlcj8uYWN0aW9ucy5uZXh0KHtcbiAgICAgICAgICAgIHR5cGU6ICdzZWFyY2hDaGFuZ2UnLFxuICAgICAgICAgICAgcGF5bG9hZDogdGhpcy5zZWFyY2hUZXJtLFxuICAgICAgICAgIH0pO1xuICAgICAgICB9XG4gICAgICB9KTtcblxuICAgIHRoaXMubWFuYWdlcj8uc3RhdGVcbiAgICAgIC5waXBlKFxuICAgICAgICBtYXAocyA9PiBzLnF1ZXJ5LnNlYXJjaCksXG4gICAgICAgIGRpc3RpbmN0VW50aWxDaGFuZ2VkKCksXG4gICAgICAgIHRha2VVbnRpbCh0aGlzLmRlc3Ryb3kpLFxuICAgICAgKVxuICAgICAgLnN1YnNjcmliZShzID0+IHtcbiAgICAgICAgaWYgKHRoaXMuc2VhcmNoVGVybSA9PSAnJyAmJiBzICE9ICcnKSB7XG4gICAgICAgICAgdGhpcy5zZWFyY2hUZXJtID0gcztcbiAgICAgICAgfVxuICAgICAgfSk7XG4gIH1cblxuICBuZ09uRGVzdHJveSgpIHtcbiAgICB0aGlzLmRlc3Ryb3kubmV4dCgpO1xuICAgIHRoaXMuZGVzdHJveS5jb21wbGV0ZSgpO1xuICB9XG59XG4iLCI8cml2LXNlYXJjaFxuICBbbmFtZV09XCJuYW1lXCJcbiAgW2Rpc2FibGVkXT1cImRpc2FibGVkXCJcbiAgW3ZhbHVlXT1cInNlYXJjaFRlcm1cIlxuICAodmFsdWVDaGFuZ2UpPVwic2VhcmNoVGVybSA9ICRldmVudFwiXG4gIFtsYWJlbFRlbXBsYXRlXT1cInNlYXJjaENvbHVtbnMgPyBsYWJlbFRlbXBsYXRlIDogdW5kZWZpbmVkXCJcbj48L3Jpdi1zZWFyY2g+XG48bmctdGVtcGxhdGUgI2xhYmVsVGVtcGxhdGVcbiAgPjxyaXYtdGFibGUtc2VhcmNoLWNvbHVtbnMgW21hbmFnZXJdPVwibWFuYWdlclwiPjwvcml2LXRhYmxlLXNlYXJjaC1jb2x1bW5zXG4+PC9uZy10ZW1wbGF0ZT5cbiJdfQ==
|
package/{esm2020 → esm2022}/lib/table/table/table-search-columns/table-search-columns.component.mjs
RENAMED
|
@@ -43,10 +43,10 @@ export class TableSearchColumnsComponent {
|
|
|
43
43
|
payload,
|
|
44
44
|
});
|
|
45
45
|
}
|
|
46
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: TableSearchColumnsComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
|
|
47
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.3.12", type: TableSearchColumnsComponent, selector: "riv-table-search-columns", inputs: { manager: "manager", disabled: "disabled" }, ngImport: i0, template: "<ng-container *ngIf=\"columnList | async; let s\">\n <button\n type=\"button\"\n #trigger\n class=\"trigger-button\"\n (click)=\"open.next(true)\"\n >\n <riv-icon [name]=\"'MoreVertical'\" [size]=\"16\"></riv-icon>\n </button>\n <ng-container *ngIf=\"open | async\">\n <riv-callout\n *riv-overlay\n [anchor]=\"trigger\"\n [showCaret]=\"false\"\n [preferredPosition]=\"'bottom-left'\"\n [theme]=\"'light'\"\n (close)=\"open.next(false)\"\n >\n <div class=\"content-body\">\n <div class=\"header-container\">\n <riv-help\n [size]=\"12\"\n [help]=\"'Toggle which columns are included in table search results'\"\n ></riv-help\n ><span class=\"header-text\">Search in</span>\n </div>\n\n <ng-container\n [ngTemplateOutlet]=\"optionList\"\n [ngTemplateOutletContext]=\"{ columns: s.activeSearchColumns }\"\n ></ng-container>\n\n <div *ngIf=\"s.hiddenSearchColumns.length > 0\" class=\"column-header\">\n Hidden columns\n </div>\n\n <ng-container\n *ngIf=\"s.hiddenSearchColumns.length > 0\"\n [ngTemplateOutlet]=\"optionList\"\n [ngTemplateOutletContext]=\"{ columns: s.hiddenSearchColumns }\"\n ></ng-container>\n\n <ng-template #optionList let-columns=\"columns\">\n <ng-container *ngFor=\"let column of columns\">\n <ng-container\n [ngTemplateOutlet]=\"option\"\n [ngTemplateOutletContext]=\"{ node: column }\"\n ></ng-container>\n </ng-container>\n </ng-template>\n\n <ng-template #option let-node=\"node\">\n <div class=\"node-container\">\n <span class=\"node-text\">{{ node.title }}</span>\n <riv-switch-checkbox\n [size]=\"'small'\"\n [value]=\"node.searchEnabled\"\n [disabled]=\"s.searchEnabledCount === 1 && node.searchEnabled\"\n [rivTooltip]=\"\n s.searchEnabledCount === 1 && node.searchEnabled\n ? 'At least one search field is required'\n : undefined\n \"\n (valueChange)=\"updateColumns(node.id, $event)\"\n ></riv-switch-checkbox>\n </div>\n </ng-template>\n </div>\n </riv-callout>\n </ng-container>\n</ng-container>\n", styles: [".node-container{display:flex;justify-content:space-between;margin:var(--size-small) var(--size-medium)}.node-text{font:var(--input-medium)}.header-container{margin:calc(var(--base-grid-size) * .75) var(--size-medium);padding-bottom:var(--size-small)}.header-text{font:var(--input-medium);margin-left:var(--size-small)}.footer-container{display:flex;justify-content:flex-end}.trigger-button{margin-top:var(--size-small);border-radius:var(--border-radius-small)}.trigger-button:hover{background-color:var(--black-20);cursor:pointer;transition:background-color var(--short-transition)}.column-header{margin:var(--size-small) var(--size-medium);font:var(--input-medium);color:var(--type-light-low-contrast)}.content-body{display:flex;max-height:50vh;overflow-y:auto;flex-direction:column;align-items:stretch;gap:var(--size-small);padding:var(--size-large);min-width:calc(var(--base-grid-size) * 75)}\n"], dependencies: [{ kind: "directive", type: i1.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i1.NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }, { kind: "component", type: i2.CalloutComponent, selector: "riv-callout", inputs: ["anchor", "isModal", "preferredPosition", "allowedPositions", "fallbackDirection", "showCaret", "theme"], outputs: ["close"] }, { kind: "component", type: i3.HelpComponent, selector: "riv-help", inputs: ["help", "size"] }, { kind: "component", type: i4.IconComponent, selector: "riv-icon", inputs: ["name", "fillColor", "size", "customSize", "strokeWidth"] }, { kind: "directive", type: i5.OverlayDirective, selector: "[riv-overlay]" }, { kind: "component", type: i6.SwitchCheckboxComponent, selector: "riv-switch-checkbox", inputs: ["size"] }, { kind: "directive", type: i7.TooltipDirective, selector: "[rivTooltip]", inputs: ["rivTooltip", "rivTooltipTheme", "rivTooltipMaxWidth", "rivTooltipPreferredPosition", "rivTooltipAnchor", "rivTooltipCloseDelay", "rivTooltipOpenDelay", "rivTooltipGracePeriod"] }, { kind: "pipe", type: i1.AsyncPipe, name: "async" }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
|
|
46
48
|
}
|
|
47
|
-
|
|
48
|
-
TableSearchColumnsComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "15.2.10", type: TableSearchColumnsComponent, selector: "riv-table-search-columns", inputs: { manager: "manager", disabled: "disabled" }, ngImport: i0, template: "<ng-container *ngIf=\"columnList | async; let s\">\n <button\n type=\"button\"\n #trigger\n class=\"trigger-button\"\n (click)=\"open.next(true)\"\n >\n <riv-icon [name]=\"'MoreVertical'\" [size]=\"16\"></riv-icon>\n </button>\n <ng-container *ngIf=\"open | async\">\n <riv-callout\n *riv-overlay\n [anchor]=\"trigger\"\n [showCaret]=\"false\"\n [preferredPosition]=\"'bottom-left'\"\n [theme]=\"'light'\"\n (close)=\"open.next(false)\"\n >\n <div class=\"content-body\">\n <div class=\"header-container\">\n <riv-help\n [size]=\"12\"\n [help]=\"'Toggle which columns are included in table search results'\"\n ></riv-help\n ><span class=\"header-text\">Search in</span>\n </div>\n\n <ng-container\n [ngTemplateOutlet]=\"optionList\"\n [ngTemplateOutletContext]=\"{ columns: s.activeSearchColumns }\"\n ></ng-container>\n\n <div *ngIf=\"s.hiddenSearchColumns.length > 0\" class=\"column-header\">\n Hidden columns\n </div>\n\n <ng-container\n *ngIf=\"s.hiddenSearchColumns.length > 0\"\n [ngTemplateOutlet]=\"optionList\"\n [ngTemplateOutletContext]=\"{ columns: s.hiddenSearchColumns }\"\n ></ng-container>\n\n <ng-template #optionList let-columns=\"columns\">\n <ng-container *ngFor=\"let column of columns\">\n <ng-container\n [ngTemplateOutlet]=\"option\"\n [ngTemplateOutletContext]=\"{ node: column }\"\n ></ng-container>\n </ng-container>\n </ng-template>\n\n <ng-template #option let-node=\"node\">\n <div class=\"node-container\">\n <span class=\"node-text\">{{ node.title }}</span>\n <riv-switch-checkbox\n [size]=\"'small'\"\n [value]=\"node.searchEnabled\"\n [disabled]=\"s.searchEnabledCount === 1 && node.searchEnabled\"\n [rivTooltip]=\"\n s.searchEnabledCount === 1 && node.searchEnabled\n ? 'At least one search field is required'\n : undefined\n \"\n (valueChange)=\"updateColumns(node.id, $event)\"\n ></riv-switch-checkbox>\n </div>\n </ng-template>\n </div>\n </riv-callout>\n </ng-container>\n</ng-container>\n", styles: [".node-container{display:flex;justify-content:space-between;margin:var(--size-small) var(--size-medium)}.node-text{font:var(--input-medium)}.header-container{margin:calc(var(--base-grid-size) * .75) var(--size-medium);padding-bottom:var(--size-small)}.header-text{font:var(--input-medium);margin-left:var(--size-small)}.footer-container{display:flex;justify-content:flex-end}.trigger-button{margin-top:var(--size-small);border-radius:var(--border-radius-small)}.trigger-button:hover{background-color:var(--black-20);cursor:pointer;transition:background-color var(--short-transition)}.column-header{margin:var(--size-small) var(--size-medium);font:var(--input-medium);color:var(--type-light-low-contrast)}.content-body{display:flex;max-height:50vh;overflow-y:auto;flex-direction:column;align-items:stretch;gap:var(--size-small);padding:var(--size-large);min-width:calc(var(--base-grid-size) * 75)}\n"], dependencies: [{ kind: "directive", type: i1.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i1.NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }, { kind: "component", type: i2.CalloutComponent, selector: "riv-callout", inputs: ["anchor", "isModal", "preferredPosition", "allowedPositions", "fallbackDirection", "showCaret", "theme"], outputs: ["close"] }, { kind: "component", type: i3.HelpComponent, selector: "riv-help", inputs: ["help", "size"] }, { kind: "component", type: i4.IconComponent, selector: "riv-icon", inputs: ["name", "fillColor", "size", "customSize", "strokeWidth"] }, { kind: "directive", type: i5.OverlayDirective, selector: "[riv-overlay]" }, { kind: "component", type: i6.SwitchCheckboxComponent, selector: "riv-switch-checkbox", inputs: ["size"] }, { kind: "directive", type: i7.TooltipDirective, selector: "[rivTooltip]", inputs: ["rivTooltip", "rivTooltipTheme", "rivTooltipMaxWidth", "rivTooltipPreferredPosition", "rivTooltipAnchor", "rivTooltipCloseDelay", "rivTooltipOpenDelay", "rivTooltipGracePeriod"] }, { kind: "pipe", type: i1.AsyncPipe, name: "async" }], changeDetection: i0.ChangeDetectionStrategy.OnPush });
|
|
49
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: TableSearchColumnsComponent, decorators: [{
|
|
49
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: TableSearchColumnsComponent, decorators: [{
|
|
50
50
|
type: Component,
|
|
51
51
|
args: [{ selector: 'riv-table-search-columns', changeDetection: ChangeDetectionStrategy.OnPush, template: "<ng-container *ngIf=\"columnList | async; let s\">\n <button\n type=\"button\"\n #trigger\n class=\"trigger-button\"\n (click)=\"open.next(true)\"\n >\n <riv-icon [name]=\"'MoreVertical'\" [size]=\"16\"></riv-icon>\n </button>\n <ng-container *ngIf=\"open | async\">\n <riv-callout\n *riv-overlay\n [anchor]=\"trigger\"\n [showCaret]=\"false\"\n [preferredPosition]=\"'bottom-left'\"\n [theme]=\"'light'\"\n (close)=\"open.next(false)\"\n >\n <div class=\"content-body\">\n <div class=\"header-container\">\n <riv-help\n [size]=\"12\"\n [help]=\"'Toggle which columns are included in table search results'\"\n ></riv-help\n ><span class=\"header-text\">Search in</span>\n </div>\n\n <ng-container\n [ngTemplateOutlet]=\"optionList\"\n [ngTemplateOutletContext]=\"{ columns: s.activeSearchColumns }\"\n ></ng-container>\n\n <div *ngIf=\"s.hiddenSearchColumns.length > 0\" class=\"column-header\">\n Hidden columns\n </div>\n\n <ng-container\n *ngIf=\"s.hiddenSearchColumns.length > 0\"\n [ngTemplateOutlet]=\"optionList\"\n [ngTemplateOutletContext]=\"{ columns: s.hiddenSearchColumns }\"\n ></ng-container>\n\n <ng-template #optionList let-columns=\"columns\">\n <ng-container *ngFor=\"let column of columns\">\n <ng-container\n [ngTemplateOutlet]=\"option\"\n [ngTemplateOutletContext]=\"{ node: column }\"\n ></ng-container>\n </ng-container>\n </ng-template>\n\n <ng-template #option let-node=\"node\">\n <div class=\"node-container\">\n <span class=\"node-text\">{{ node.title }}</span>\n <riv-switch-checkbox\n [size]=\"'small'\"\n [value]=\"node.searchEnabled\"\n [disabled]=\"s.searchEnabledCount === 1 && node.searchEnabled\"\n [rivTooltip]=\"\n s.searchEnabledCount === 1 && node.searchEnabled\n ? 'At least one search field is required'\n : undefined\n \"\n (valueChange)=\"updateColumns(node.id, $event)\"\n ></riv-switch-checkbox>\n </div>\n </ng-template>\n </div>\n </riv-callout>\n </ng-container>\n</ng-container>\n", styles: [".node-container{display:flex;justify-content:space-between;margin:var(--size-small) var(--size-medium)}.node-text{font:var(--input-medium)}.header-container{margin:calc(var(--base-grid-size) * .75) var(--size-medium);padding-bottom:var(--size-small)}.header-text{font:var(--input-medium);margin-left:var(--size-small)}.footer-container{display:flex;justify-content:flex-end}.trigger-button{margin-top:var(--size-small);border-radius:var(--border-radius-small)}.trigger-button:hover{background-color:var(--black-20);cursor:pointer;transition:background-color var(--short-transition)}.column-header{margin:var(--size-small) var(--size-medium);font:var(--input-medium);color:var(--type-light-low-contrast)}.content-body{display:flex;max-height:50vh;overflow-y:auto;flex-direction:column;align-items:stretch;gap:var(--size-small);padding:var(--size-large);min-width:calc(var(--base-grid-size) * 75)}\n"] }]
|
|
52
52
|
}], propDecorators: { manager: [{
|
|
@@ -54,4 +54,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.10", ngImpo
|
|
|
54
54
|
}], disabled: [{
|
|
55
55
|
type: Input
|
|
56
56
|
}] } });
|
|
57
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
57
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGFibGUtc2VhcmNoLWNvbHVtbnMuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvcml2L3NyYy9saWIvdGFibGUvdGFibGUvdGFibGUtc2VhcmNoLWNvbHVtbnMvdGFibGUtc2VhcmNoLWNvbHVtbnMuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvcml2L3NyYy9saWIvdGFibGUvdGFibGUvdGFibGUtc2VhcmNoLWNvbHVtbnMvdGFibGUtc2VhcmNoLWNvbHVtbnMuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUNMLHVCQUF1QixFQUN2QixTQUFTLEVBQ1QsS0FBSyxHQUVOLE1BQU0sZUFBZSxDQUFDO0FBQ3ZCLE9BQU8sRUFBRSxlQUFlLEVBQUUsR0FBRyxFQUFjLE1BQU0sTUFBTSxDQUFDOzs7Ozs7Ozs7QUFjeEQsTUFBTSxPQUFPLDJCQUEyQjtJQU54QztRQVlrQixTQUFJLEdBQUcsSUFBSSxlQUFlLENBQVUsS0FBSyxDQUFDLENBQUM7UUFNM0QsYUFBUSxHQUFZLEtBQUssQ0FBQztLQTRDM0I7SUFwQ0MsUUFBUTtRQUNOLElBQUksQ0FBQyxVQUFVLEdBQUcsSUFBSSxDQUFDLE9BQVEsQ0FBQyxLQUFLLENBQUMsSUFBSSxDQUN4QyxHQUFHLENBQUMsQ0FBQyxDQUFDLEVBQUU7WUFDTixNQUFNLFFBQVEsR0FBRyxDQUFDLE1BQWtDLEVBQUUsRUFBRSxDQUFDLENBQUM7Z0JBQ3hELEVBQUUsRUFBRSxNQUFNLENBQUMsR0FBRztnQkFDZCxLQUFLLEVBQUUsQ0FBQyxDQUFDLE9BQU8sQ0FBQyxhQUFhLENBQUMsR0FBRyxDQUFDLE1BQU0sQ0FBQyxHQUFHLENBQUMsSUFBSSxNQUFNLENBQUMsR0FBRztnQkFDNUQsYUFBYSxFQUFFLENBQUMsQ0FBQyxDQUFDLENBQUMsS0FBSyxDQUFDLGFBQWEsQ0FBQyxHQUFHLENBQUMsTUFBTSxDQUFDLEdBQUcsQ0FBQzthQUN2RCxDQUFDLENBQUM7WUFDSCxNQUFNLGFBQWEsR0FBRyxDQUFDLENBQUMsT0FBTyxDQUFDLFVBQVU7aUJBQ3ZDLE1BQU0sQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxPQUFPLENBQUMsbUJBQW1CLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxHQUFHLENBQUMsSUFBSSxDQUFDLENBQUMsT0FBTyxDQUFDO2lCQUNsRSxHQUFHLENBQUMsUUFBUSxDQUFDLENBQUM7WUFDakIsTUFBTSxhQUFhLEdBQUcsQ0FBQyxDQUFDLE9BQU8sQ0FBQyxVQUFVO2lCQUN2QyxNQUFNLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsT0FBTyxDQUFDLG1CQUFtQixDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsR0FBRyxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsT0FBTyxDQUFDO2lCQUNuRSxHQUFHLENBQUMsUUFBUSxDQUFDLENBQUM7WUFFakIsTUFBTSxrQkFBa0IsR0FDdEIsYUFBYSxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxhQUFhLENBQUMsQ0FBQyxNQUFNO2dCQUNqRCxhQUFhLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLGFBQWEsQ0FBQyxDQUFDLE1BQU0sQ0FBQztZQUVwRCxPQUFPO2dCQUNMLG1CQUFtQixFQUFFLGFBQWE7Z0JBQ2xDLG1CQUFtQixFQUFFLGFBQWE7Z0JBQ2xDLGtCQUFrQixFQUFFLGtCQUFrQjthQUN2QyxDQUFDO1FBQ0osQ0FBQyxDQUFDLENBQ0gsQ0FBQztJQUNKLENBQUM7SUFFRCxhQUFhLENBQUMsTUFBYyxFQUFFLE1BQWU7UUFDM0MsTUFBTSxPQUFPLEdBQUcsSUFBSSxHQUFHLEVBQUUsQ0FBQztRQUMxQixPQUFPLENBQUMsR0FBRyxDQUFDLE1BQU0sRUFBRSxNQUFNLENBQUMsQ0FBQztRQUM1QixJQUFJLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxJQUFJLENBQUM7WUFDekIsSUFBSSxFQUFFLHFCQUFxQjtZQUMzQixPQUFPO1NBQ1IsQ0FBQyxDQUFDO0lBQ0wsQ0FBQzsrR0F2RFUsMkJBQTJCO21HQUEzQiwyQkFBMkIsc0hDcEJ4QyxpNEVBdUVBOzs0RkRuRGEsMkJBQTJCO2tCQU52QyxTQUFTOytCQUNFLDBCQUEwQixtQkFHbkIsdUJBQXVCLENBQUMsTUFBTTs4QkFXL0MsT0FBTztzQkFETixLQUFLO2dCQUlOLFFBQVE7c0JBRFAsS0FBSyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7XG4gIENoYW5nZURldGVjdGlvblN0cmF0ZWd5LFxuICBDb21wb25lbnQsXG4gIElucHV0LFxuICBPbkluaXQsXG59IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgQmVoYXZpb3JTdWJqZWN0LCBtYXAsIE9ic2VydmFibGUgfSBmcm9tICdyeGpzJztcbmltcG9ydCB7IFJpdlNlbGVjdCB9IGZyb20gJy4uLy4uLy4uL2lucHV0L3NlbGVjdC9zdGF0ZSc7XG5pbXBvcnQgeyBSaXZUYWJsZSB9IGZyb20gJy4uL3N0YXRlJztcblxudHlwZSBTZWFyY2hhYmxlQ29sdW1uID0gUml2U2VsZWN0LkJhc2VPcHRpb24gJiB7XG4gIHNlYXJjaEVuYWJsZWQ6IGJvb2xlYW47XG59O1xuXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdyaXYtdGFibGUtc2VhcmNoLWNvbHVtbnMnLFxuICB0ZW1wbGF0ZVVybDogJy4vdGFibGUtc2VhcmNoLWNvbHVtbnMuY29tcG9uZW50Lmh0bWwnLFxuICBzdHlsZVVybHM6IFsnLi90YWJsZS1zZWFyY2gtY29sdW1ucy5jb21wb25lbnQuY3NzJ10sXG4gIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoLFxufSlcbmV4cG9ydCBjbGFzcyBUYWJsZVNlYXJjaENvbHVtbnNDb21wb25lbnQ8XG4gIFIgZXh0ZW5kcyBSaXZUYWJsZS5Sb3csXG4gIEMgZXh0ZW5kcyBSaXZUYWJsZS5Db2x1bW4sXG4gIEYgZXh0ZW5kcyBSaXZUYWJsZS5GaWx0ZXJzLFxuPiBpbXBsZW1lbnRzIE9uSW5pdFxue1xuICBwdWJsaWMgcmVhZG9ubHkgb3BlbiA9IG5ldyBCZWhhdmlvclN1YmplY3Q8Ym9vbGVhbj4oZmFsc2UpO1xuXG4gIEBJbnB1dCgpXG4gIG1hbmFnZXI/OiBSaXZUYWJsZS5NYW5hZ2VyPFIsIEMsIEY+O1xuXG4gIEBJbnB1dCgpXG4gIGRpc2FibGVkOiBib29sZWFuID0gZmFsc2U7XG5cbiAgY29sdW1uTGlzdD86IE9ic2VydmFibGU8e1xuICAgIGFjdGl2ZVNlYXJjaENvbHVtbnM6IFNlYXJjaGFibGVDb2x1bW5bXTtcbiAgICBoaWRkZW5TZWFyY2hDb2x1bW5zOiBTZWFyY2hhYmxlQ29sdW1uW107XG4gICAgc2VhcmNoRW5hYmxlZENvdW50OiBudW1iZXI7XG4gIH0+O1xuXG4gIG5nT25Jbml0KCkge1xuICAgIHRoaXMuY29sdW1uTGlzdCA9IHRoaXMubWFuYWdlciEuc3RhdGUucGlwZShcbiAgICAgIG1hcChzID0+IHtcbiAgICAgICAgY29uc3QgbWFrZU5vZGUgPSAoY29sdW1uOiBSaXZUYWJsZS5Db2x1bW5TZXR0aW5nczxDPikgPT4gKHtcbiAgICAgICAgICBpZDogY29sdW1uLmtleSxcbiAgICAgICAgICB0aXRsZTogcy5kaXNwbGF5LmNvbHVtbk5hbWVNYXAuZ2V0KGNvbHVtbi5rZXkpID8/IGNvbHVtbi5rZXksXG4gICAgICAgICAgc2VhcmNoRW5hYmxlZDogISFzLnF1ZXJ5LnNlYXJjaENvbHVtbnMuZ2V0KGNvbHVtbi5rZXkpLFxuICAgICAgICB9KTtcbiAgICAgICAgY29uc3QgYWN0aXZlQ29sdW1ucyA9IHMuZGlzcGxheS5hbGxDb2x1bW5zXG4gICAgICAgICAgLmZpbHRlcihjID0+IHMuZGlzcGxheS5zZWFyY2hhYmxlQ29sdW1uTWFwLmdldChjLmtleSkgJiYgYy5lbmFibGVkKVxuICAgICAgICAgIC5tYXAobWFrZU5vZGUpO1xuICAgICAgICBjb25zdCBoaWRkZW5Db2x1bW5zID0gcy5kaXNwbGF5LmFsbENvbHVtbnNcbiAgICAgICAgICAuZmlsdGVyKGMgPT4gcy5kaXNwbGF5LnNlYXJjaGFibGVDb2x1bW5NYXAuZ2V0KGMua2V5KSAmJiAhYy5lbmFibGVkKVxuICAgICAgICAgIC5tYXAobWFrZU5vZGUpO1xuXG4gICAgICAgIGNvbnN0IHNlYXJjaEVuYWJsZWRDb3VudCA9XG4gICAgICAgICAgYWN0aXZlQ29sdW1ucy5maWx0ZXIoYyA9PiBjLnNlYXJjaEVuYWJsZWQpLmxlbmd0aCArXG4gICAgICAgICAgaGlkZGVuQ29sdW1ucy5maWx0ZXIoYyA9PiBjLnNlYXJjaEVuYWJsZWQpLmxlbmd0aDtcblxuICAgICAgICByZXR1cm4ge1xuICAgICAgICAgIGFjdGl2ZVNlYXJjaENvbHVtbnM6IGFjdGl2ZUNvbHVtbnMsXG4gICAgICAgICAgaGlkZGVuU2VhcmNoQ29sdW1uczogaGlkZGVuQ29sdW1ucyxcbiAgICAgICAgICBzZWFyY2hFbmFibGVkQ291bnQ6IHNlYXJjaEVuYWJsZWRDb3VudCxcbiAgICAgICAgfTtcbiAgICAgIH0pLFxuICAgICk7XG4gIH1cblxuICB1cGRhdGVDb2x1bW5zKGNvbHVtbjogc3RyaW5nLCBhY3RpdmU6IGJvb2xlYW4pIHtcbiAgICBjb25zdCBwYXlsb2FkID0gbmV3IE1hcCgpO1xuICAgIHBheWxvYWQuc2V0KGNvbHVtbiwgYWN0aXZlKTtcbiAgICB0aGlzLm1hbmFnZXI/LmFjdGlvbnMubmV4dCh7XG4gICAgICB0eXBlOiAnc2VhcmNoQ29sdW1uc0NoYW5nZScsXG4gICAgICBwYXlsb2FkLFxuICAgIH0pO1xuICB9XG59XG4iLCI8bmctY29udGFpbmVyICpuZ0lmPVwiY29sdW1uTGlzdCB8IGFzeW5jOyBsZXQgc1wiPlxuICA8YnV0dG9uXG4gICAgdHlwZT1cImJ1dHRvblwiXG4gICAgI3RyaWdnZXJcbiAgICBjbGFzcz1cInRyaWdnZXItYnV0dG9uXCJcbiAgICAoY2xpY2spPVwib3Blbi5uZXh0KHRydWUpXCJcbiAgPlxuICAgIDxyaXYtaWNvbiBbbmFtZV09XCInTW9yZVZlcnRpY2FsJ1wiIFtzaXplXT1cIjE2XCI+PC9yaXYtaWNvbj5cbiAgPC9idXR0b24+XG4gIDxuZy1jb250YWluZXIgKm5nSWY9XCJvcGVuIHwgYXN5bmNcIj5cbiAgICA8cml2LWNhbGxvdXRcbiAgICAgICpyaXYtb3ZlcmxheVxuICAgICAgW2FuY2hvcl09XCJ0cmlnZ2VyXCJcbiAgICAgIFtzaG93Q2FyZXRdPVwiZmFsc2VcIlxuICAgICAgW3ByZWZlcnJlZFBvc2l0aW9uXT1cIidib3R0b20tbGVmdCdcIlxuICAgICAgW3RoZW1lXT1cIidsaWdodCdcIlxuICAgICAgKGNsb3NlKT1cIm9wZW4ubmV4dChmYWxzZSlcIlxuICAgID5cbiAgICAgIDxkaXYgY2xhc3M9XCJjb250ZW50LWJvZHlcIj5cbiAgICAgICAgPGRpdiBjbGFzcz1cImhlYWRlci1jb250YWluZXJcIj5cbiAgICAgICAgICA8cml2LWhlbHBcbiAgICAgICAgICAgIFtzaXplXT1cIjEyXCJcbiAgICAgICAgICAgIFtoZWxwXT1cIidUb2dnbGUgd2hpY2ggY29sdW1ucyBhcmUgaW5jbHVkZWQgaW4gdGFibGUgc2VhcmNoIHJlc3VsdHMnXCJcbiAgICAgICAgICA+PC9yaXYtaGVscFxuICAgICAgICAgID48c3BhbiBjbGFzcz1cImhlYWRlci10ZXh0XCI+U2VhcmNoIGluPC9zcGFuPlxuICAgICAgICA8L2Rpdj5cblxuICAgICAgICA8bmctY29udGFpbmVyXG4gICAgICAgICAgW25nVGVtcGxhdGVPdXRsZXRdPVwib3B0aW9uTGlzdFwiXG4gICAgICAgICAgW25nVGVtcGxhdGVPdXRsZXRDb250ZXh0XT1cInsgY29sdW1uczogcy5hY3RpdmVTZWFyY2hDb2x1bW5zIH1cIlxuICAgICAgICA+PC9uZy1jb250YWluZXI+XG5cbiAgICAgICAgPGRpdiAqbmdJZj1cInMuaGlkZGVuU2VhcmNoQ29sdW1ucy5sZW5ndGggPiAwXCIgY2xhc3M9XCJjb2x1bW4taGVhZGVyXCI+XG4gICAgICAgICAgSGlkZGVuIGNvbHVtbnNcbiAgICAgICAgPC9kaXY+XG5cbiAgICAgICAgPG5nLWNvbnRhaW5lclxuICAgICAgICAgICpuZ0lmPVwicy5oaWRkZW5TZWFyY2hDb2x1bW5zLmxlbmd0aCA+IDBcIlxuICAgICAgICAgIFtuZ1RlbXBsYXRlT3V0bGV0XT1cIm9wdGlvbkxpc3RcIlxuICAgICAgICAgIFtuZ1RlbXBsYXRlT3V0bGV0Q29udGV4dF09XCJ7IGNvbHVtbnM6IHMuaGlkZGVuU2VhcmNoQ29sdW1ucyB9XCJcbiAgICAgICAgPjwvbmctY29udGFpbmVyPlxuXG4gICAgICAgIDxuZy10ZW1wbGF0ZSAjb3B0aW9uTGlzdCBsZXQtY29sdW1ucz1cImNvbHVtbnNcIj5cbiAgICAgICAgICA8bmctY29udGFpbmVyICpuZ0Zvcj1cImxldCBjb2x1bW4gb2YgY29sdW1uc1wiPlxuICAgICAgICAgICAgPG5nLWNvbnRhaW5lclxuICAgICAgICAgICAgICBbbmdUZW1wbGF0ZU91dGxldF09XCJvcHRpb25cIlxuICAgICAgICAgICAgICBbbmdUZW1wbGF0ZU91dGxldENvbnRleHRdPVwieyBub2RlOiBjb2x1bW4gfVwiXG4gICAgICAgICAgICA+PC9uZy1jb250YWluZXI+XG4gICAgICAgICAgPC9uZy1jb250YWluZXI+XG4gICAgICAgIDwvbmctdGVtcGxhdGU+XG5cbiAgICAgICAgPG5nLXRlbXBsYXRlICNvcHRpb24gbGV0LW5vZGU9XCJub2RlXCI+XG4gICAgICAgICAgPGRpdiBjbGFzcz1cIm5vZGUtY29udGFpbmVyXCI+XG4gICAgICAgICAgICA8c3BhbiBjbGFzcz1cIm5vZGUtdGV4dFwiPnt7IG5vZGUudGl0bGUgfX08L3NwYW4+XG4gICAgICAgICAgICA8cml2LXN3aXRjaC1jaGVja2JveFxuICAgICAgICAgICAgICBbc2l6ZV09XCInc21hbGwnXCJcbiAgICAgICAgICAgICAgW3ZhbHVlXT1cIm5vZGUuc2VhcmNoRW5hYmxlZFwiXG4gICAgICAgICAgICAgIFtkaXNhYmxlZF09XCJzLnNlYXJjaEVuYWJsZWRDb3VudCA9PT0gMSAmJiBub2RlLnNlYXJjaEVuYWJsZWRcIlxuICAgICAgICAgICAgICBbcml2VG9vbHRpcF09XCJcbiAgICAgICAgICAgICAgICBzLnNlYXJjaEVuYWJsZWRDb3VudCA9PT0gMSAmJiBub2RlLnNlYXJjaEVuYWJsZWRcbiAgICAgICAgICAgICAgICAgID8gJ0F0IGxlYXN0IG9uZSBzZWFyY2ggZmllbGQgaXMgcmVxdWlyZWQnXG4gICAgICAgICAgICAgICAgICA6IHVuZGVmaW5lZFxuICAgICAgICAgICAgICBcIlxuICAgICAgICAgICAgICAodmFsdWVDaGFuZ2UpPVwidXBkYXRlQ29sdW1ucyhub2RlLmlkLCAkZXZlbnQpXCJcbiAgICAgICAgICAgID48L3Jpdi1zd2l0Y2gtY2hlY2tib3g+XG4gICAgICAgICAgPC9kaXY+XG4gICAgICAgIDwvbmctdGVtcGxhdGU+XG4gICAgICA8L2Rpdj5cbiAgICA8L3Jpdi1jYWxsb3V0PlxuICA8L25nLWNvbnRhaW5lcj5cbjwvbmctY29udGFpbmVyPlxuIl19
|
|
@@ -0,0 +1,34 @@
|
|
|
1
|
+
import { Directive, EventEmitter, Output, } from '@angular/core';
|
|
2
|
+
import * as i0 from "@angular/core";
|
|
3
|
+
export class VisibilityDirective {
|
|
4
|
+
constructor(elementRef, zone) {
|
|
5
|
+
this.elementRef = elementRef;
|
|
6
|
+
this.rivVisibility = new EventEmitter();
|
|
7
|
+
this.intersectionObserver = new IntersectionObserver(entries => {
|
|
8
|
+
zone.run(() => {
|
|
9
|
+
for (const entry of entries) {
|
|
10
|
+
this.rivVisibility.emit(entry.isIntersecting);
|
|
11
|
+
}
|
|
12
|
+
});
|
|
13
|
+
}, {
|
|
14
|
+
threshold: 0.1,
|
|
15
|
+
});
|
|
16
|
+
}
|
|
17
|
+
ngOnInit() {
|
|
18
|
+
this.intersectionObserver.observe(this.elementRef.nativeElement);
|
|
19
|
+
}
|
|
20
|
+
ngOnDestroy() {
|
|
21
|
+
this.intersectionObserver.unobserve(this.elementRef.nativeElement);
|
|
22
|
+
}
|
|
23
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: VisibilityDirective, deps: [{ token: i0.ElementRef }, { token: i0.NgZone }], target: i0.ɵɵFactoryTarget.Directive }); }
|
|
24
|
+
static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "17.3.12", type: VisibilityDirective, selector: "[rivVisibility]", outputs: { rivVisibility: "rivVisibility" }, ngImport: i0 }); }
|
|
25
|
+
}
|
|
26
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: VisibilityDirective, decorators: [{
|
|
27
|
+
type: Directive,
|
|
28
|
+
args: [{
|
|
29
|
+
selector: '[rivVisibility]',
|
|
30
|
+
}]
|
|
31
|
+
}], ctorParameters: () => [{ type: i0.ElementRef }, { type: i0.NgZone }], propDecorators: { rivVisibility: [{
|
|
32
|
+
type: Output
|
|
33
|
+
}] } });
|
|
34
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidmlzaWJpbGl0eS5kaXJlY3RpdmUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9yaXYvc3JjL2xpYi92aXNpYmlsaXR5L3Zpc2liaWxpdHkuZGlyZWN0aXZlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFDTCxTQUFTLEVBRVQsWUFBWSxFQUlaLE1BQU0sR0FDUCxNQUFNLGVBQWUsQ0FBQzs7QUFLdkIsTUFBTSxPQUFPLG1CQUFtQjtJQU05QixZQUNtQixVQUFtQyxFQUNwRCxJQUFZO1FBREssZUFBVSxHQUFWLFVBQVUsQ0FBeUI7UUFIdEQsa0JBQWEsR0FBRyxJQUFJLFlBQVksRUFBVyxDQUFDO1FBTTFDLElBQUksQ0FBQyxvQkFBb0IsR0FBRyxJQUFJLG9CQUFvQixDQUNsRCxPQUFPLENBQUMsRUFBRTtZQUNSLElBQUksQ0FBQyxHQUFHLENBQUMsR0FBRyxFQUFFO2dCQUNaLEtBQUssTUFBTSxLQUFLLElBQUksT0FBTyxFQUFFLENBQUM7b0JBQzVCLElBQUksQ0FBQyxhQUFhLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxjQUFjLENBQUMsQ0FBQztnQkFDaEQsQ0FBQztZQUNILENBQUMsQ0FBQyxDQUFDO1FBQ0wsQ0FBQyxFQUNEO1lBQ0UsU0FBUyxFQUFFLEdBQUc7U0FDZixDQUNGLENBQUM7SUFDSixDQUFDO0lBRUQsUUFBUTtRQUNOLElBQUksQ0FBQyxvQkFBb0IsQ0FBQyxPQUFPLENBQUMsSUFBSSxDQUFDLFVBQVUsQ0FBQyxhQUFhLENBQUMsQ0FBQztJQUNuRSxDQUFDO0lBRUQsV0FBVztRQUNULElBQUksQ0FBQyxvQkFBb0IsQ0FBQyxTQUFTLENBQUMsSUFBSSxDQUFDLFVBQVUsQ0FBQyxhQUFhLENBQUMsQ0FBQztJQUNyRSxDQUFDOytHQTlCVSxtQkFBbUI7bUdBQW5CLG1CQUFtQjs7NEZBQW5CLG1CQUFtQjtrQkFIL0IsU0FBUzttQkFBQztvQkFDVCxRQUFRLEVBQUUsaUJBQWlCO2lCQUM1QjtvR0FLQyxhQUFhO3NCQURaLE1BQU0iLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge1xuICBEaXJlY3RpdmUsXG4gIEVsZW1lbnRSZWYsXG4gIEV2ZW50RW1pdHRlcixcbiAgTmdab25lLFxuICBPbkRlc3Ryb3ksXG4gIE9uSW5pdCxcbiAgT3V0cHV0LFxufSBmcm9tICdAYW5ndWxhci9jb3JlJztcblxuQERpcmVjdGl2ZSh7XG4gIHNlbGVjdG9yOiAnW3JpdlZpc2liaWxpdHldJyxcbn0pXG5leHBvcnQgY2xhc3MgVmlzaWJpbGl0eURpcmVjdGl2ZSBpbXBsZW1lbnRzIE9uSW5pdCwgT25EZXN0cm95IHtcbiAgcHJpdmF0ZSBpbnRlcnNlY3Rpb25PYnNlcnZlcjogSW50ZXJzZWN0aW9uT2JzZXJ2ZXI7XG5cbiAgQE91dHB1dCgpXG4gIHJpdlZpc2liaWxpdHkgPSBuZXcgRXZlbnRFbWl0dGVyPGJvb2xlYW4+KCk7XG5cbiAgY29uc3RydWN0b3IoXG4gICAgcHJpdmF0ZSByZWFkb25seSBlbGVtZW50UmVmOiBFbGVtZW50UmVmPEhUTUxFbGVtZW50PixcbiAgICB6b25lOiBOZ1pvbmUsXG4gICkge1xuICAgIHRoaXMuaW50ZXJzZWN0aW9uT2JzZXJ2ZXIgPSBuZXcgSW50ZXJzZWN0aW9uT2JzZXJ2ZXIoXG4gICAgICBlbnRyaWVzID0+IHtcbiAgICAgICAgem9uZS5ydW4oKCkgPT4ge1xuICAgICAgICAgIGZvciAoY29uc3QgZW50cnkgb2YgZW50cmllcykge1xuICAgICAgICAgICAgdGhpcy5yaXZWaXNpYmlsaXR5LmVtaXQoZW50cnkuaXNJbnRlcnNlY3RpbmcpO1xuICAgICAgICAgIH1cbiAgICAgICAgfSk7XG4gICAgICB9LFxuICAgICAge1xuICAgICAgICB0aHJlc2hvbGQ6IDAuMSxcbiAgICAgIH0sXG4gICAgKTtcbiAgfVxuXG4gIG5nT25Jbml0KCkge1xuICAgIHRoaXMuaW50ZXJzZWN0aW9uT2JzZXJ2ZXIub2JzZXJ2ZSh0aGlzLmVsZW1lbnRSZWYubmF0aXZlRWxlbWVudCk7XG4gIH1cblxuICBuZ09uRGVzdHJveSgpIHtcbiAgICB0aGlzLmludGVyc2VjdGlvbk9ic2VydmVyLnVub2JzZXJ2ZSh0aGlzLmVsZW1lbnRSZWYubmF0aXZlRWxlbWVudCk7XG4gIH1cbn1cbiJdfQ==
|