@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
|
@@ -1,104 +0,0 @@
|
|
|
1
|
-
import { ChangeDetectionStrategy, Component, ContentChild, ContentChildren, } from '@angular/core';
|
|
2
|
-
import { RivTable } from '../table/state';
|
|
3
|
-
import { createCellCoordinateCalculator } from './coordinate-helper';
|
|
4
|
-
import { SimpleTableCellComponent } from './simple-table-cell.component';
|
|
5
|
-
import { SimpleTableHeaderCellComponent } from './simple-table-header-cell.component';
|
|
6
|
-
import { TableColumnHelpers } from '../table/state-helpers/column-helpers';
|
|
7
|
-
import * as i0 from "@angular/core";
|
|
8
|
-
import * as i1 from "@angular/common";
|
|
9
|
-
export class SimpleTableComponent {
|
|
10
|
-
ngAfterContentChecked() {
|
|
11
|
-
this.setCellProperties();
|
|
12
|
-
}
|
|
13
|
-
setCellProperties() {
|
|
14
|
-
const { headerCells, dataCells } = this;
|
|
15
|
-
if (!headerCells || !dataCells)
|
|
16
|
-
return;
|
|
17
|
-
let runningWidthTotal = 0;
|
|
18
|
-
headerCells.forEach((headerCell, i) => {
|
|
19
|
-
const { dataType } = headerCell;
|
|
20
|
-
if (!dataType) {
|
|
21
|
-
const allowedTypes = RivTable.ColumnDataTypes.join(', ');
|
|
22
|
-
throw new Error(`Each header cell must define an appropriate dataType, one of ${allowedTypes}`);
|
|
23
|
-
}
|
|
24
|
-
const newAlignment = TableColumnHelpers.getColumnAlignment(dataType, i === 0);
|
|
25
|
-
const newLeftPinOffset = runningWidthTotal;
|
|
26
|
-
runningWidthTotal += headerCell.width;
|
|
27
|
-
const changed = headerCell.alignment != newAlignment ||
|
|
28
|
-
headerCell.leftPinOffset != newLeftPinOffset;
|
|
29
|
-
headerCell.alignment = newAlignment;
|
|
30
|
-
headerCell.leftPinOffset = newLeftPinOffset;
|
|
31
|
-
// Only mark for check when changed to prevent infinite cycles
|
|
32
|
-
if (changed) {
|
|
33
|
-
queueMicrotask(() => {
|
|
34
|
-
headerCell.cdr.markForCheck();
|
|
35
|
-
});
|
|
36
|
-
}
|
|
37
|
-
});
|
|
38
|
-
const cellSpanData = dataCells.map(dataCell => {
|
|
39
|
-
const element = dataCell.elementRef.nativeElement;
|
|
40
|
-
return {
|
|
41
|
-
rowspan: parseInt(element.getAttribute('rowspan') || '1', 10),
|
|
42
|
-
colspan: parseInt(element.getAttribute('colspan') || '1', 10),
|
|
43
|
-
};
|
|
44
|
-
});
|
|
45
|
-
// When there are no header cells, calculate totalColumns from the first <tr>
|
|
46
|
-
let totalColumns = headerCells.length;
|
|
47
|
-
if (totalColumns === 0 && dataCells.length > 0) {
|
|
48
|
-
const firstRow = dataCells.first?.elementRef.nativeElement.parentElement;
|
|
49
|
-
if (firstRow) {
|
|
50
|
-
// Count td elements in the first row and sum their colspans
|
|
51
|
-
const cellsInFirstRow = Array.from(firstRow.querySelectorAll('td[riv-simple-table-cell]'));
|
|
52
|
-
totalColumns = cellsInFirstRow.reduce((sum, cell) => {
|
|
53
|
-
const colspan = parseInt(cell.getAttribute('colspan') || '1', 10);
|
|
54
|
-
return sum + colspan;
|
|
55
|
-
}, 0);
|
|
56
|
-
}
|
|
57
|
-
// Fallback to 1 if we couldn't determine
|
|
58
|
-
if (totalColumns === 0) {
|
|
59
|
-
totalColumns = 1;
|
|
60
|
-
}
|
|
61
|
-
}
|
|
62
|
-
const getCellCoordinates = createCellCoordinateCalculator(cellSpanData, totalColumns);
|
|
63
|
-
const maxRow = Math.max(...dataCells.map((_, i) => getCellCoordinates(i).end.row));
|
|
64
|
-
dataCells.forEach((dataCell, cellIndex) => {
|
|
65
|
-
const bounds = getCellCoordinates(cellIndex);
|
|
66
|
-
const headerCell = headerCells.get(bounds.start.col);
|
|
67
|
-
let changed = false;
|
|
68
|
-
if (headerCell) {
|
|
69
|
-
changed =
|
|
70
|
-
dataCell.alignment != headerCell.alignment ||
|
|
71
|
-
dataCell.pinned != headerCell.pinned ||
|
|
72
|
-
dataCell.leftPinOffset != headerCell.leftPinOffset;
|
|
73
|
-
dataCell.alignment = headerCell.alignment;
|
|
74
|
-
dataCell.pinned = headerCell.pinned;
|
|
75
|
-
dataCell.leftPinOffset = headerCell.leftPinOffset;
|
|
76
|
-
}
|
|
77
|
-
const newIsLastRow = bounds.end.row === maxRow;
|
|
78
|
-
changed = changed || dataCell.isLastRow != newIsLastRow;
|
|
79
|
-
dataCell.isLastRow = newIsLastRow;
|
|
80
|
-
// Only mark for check when changed to prevent infinite cycles
|
|
81
|
-
if (changed) {
|
|
82
|
-
queueMicrotask(() => {
|
|
83
|
-
dataCell.cdr.markForCheck();
|
|
84
|
-
});
|
|
85
|
-
}
|
|
86
|
-
});
|
|
87
|
-
}
|
|
88
|
-
}
|
|
89
|
-
SimpleTableComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: SimpleTableComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
|
|
90
|
-
SimpleTableComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "15.2.10", type: SimpleTableComponent, selector: "riv-simple-table", queries: [{ propertyName: "headerTemplate", first: true, predicate: ["header"], descendants: true }, { propertyName: "headerCells", predicate: SimpleTableHeaderCellComponent, descendants: true }, { propertyName: "dataCells", predicate: SimpleTableCellComponent, descendants: true }], ngImport: i0, template: "<div class=\"header\" *ngIf=\"headerTemplate\">\n <ng-container *ngTemplateOutlet=\"headerTemplate\"></ng-container>\n</div>\n<div class=\"container\" tabindex=\"0\">\n <table>\n <ng-content></ng-content>\n </table>\n</div>\n", styles: [":host{display:grid;width:100%;min-height:0}.header{border-width:var(--border-width) var(--border-width) 0 var(--border-width);border-style:solid;border-color:var(--border-light);border-top-left-radius:var(--border-radius-medium);border-top-right-radius:var(--border-radius-medium)}.header+.container{border-top-left-radius:0;border-top-right-radius:0}.container{border:var(--border-width) solid var(--border-light);border-radius:var(--border-radius-medium);overflow:auto}table{border-collapse:separate;width:100%;table-layout:fixed}\n"], dependencies: [{ kind: "directive", type: i1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i1.NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush });
|
|
91
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: SimpleTableComponent, decorators: [{
|
|
92
|
-
type: Component,
|
|
93
|
-
args: [{ selector: 'riv-simple-table', changeDetection: ChangeDetectionStrategy.OnPush, template: "<div class=\"header\" *ngIf=\"headerTemplate\">\n <ng-container *ngTemplateOutlet=\"headerTemplate\"></ng-container>\n</div>\n<div class=\"container\" tabindex=\"0\">\n <table>\n <ng-content></ng-content>\n </table>\n</div>\n", styles: [":host{display:grid;width:100%;min-height:0}.header{border-width:var(--border-width) var(--border-width) 0 var(--border-width);border-style:solid;border-color:var(--border-light);border-top-left-radius:var(--border-radius-medium);border-top-right-radius:var(--border-radius-medium)}.header+.container{border-top-left-radius:0;border-top-right-radius:0}.container{border:var(--border-width) solid var(--border-light);border-radius:var(--border-radius-medium);overflow:auto}table{border-collapse:separate;width:100%;table-layout:fixed}\n"] }]
|
|
94
|
-
}], propDecorators: { headerTemplate: [{
|
|
95
|
-
type: ContentChild,
|
|
96
|
-
args: ['header']
|
|
97
|
-
}], headerCells: [{
|
|
98
|
-
type: ContentChildren,
|
|
99
|
-
args: [SimpleTableHeaderCellComponent, { descendants: true }]
|
|
100
|
-
}], dataCells: [{
|
|
101
|
-
type: ContentChildren,
|
|
102
|
-
args: [SimpleTableCellComponent, { descendants: true }]
|
|
103
|
-
}] } });
|
|
104
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2ltcGxlLXRhYmxlLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL3Jpdi9zcmMvbGliL3RhYmxlL3NpbXBsZS10YWJsZS9zaW1wbGUtdGFibGUuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvcml2L3NyYy9saWIvdGFibGUvc2ltcGxlLXRhYmxlL3NpbXBsZS10YWJsZS5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBRUwsdUJBQXVCLEVBQ3ZCLFNBQVMsRUFDVCxZQUFZLEVBQ1osZUFBZSxHQUdoQixNQUFNLGVBQWUsQ0FBQztBQUN2QixPQUFPLEVBQUUsUUFBUSxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFDMUMsT0FBTyxFQUFFLDhCQUE4QixFQUFFLE1BQU0scUJBQXFCLENBQUM7QUFDckUsT0FBTyxFQUFFLHdCQUF3QixFQUFFLE1BQU0sK0JBQStCLENBQUM7QUFDekUsT0FBTyxFQUFFLDhCQUE4QixFQUFFLE1BQU0sc0NBQXNDLENBQUM7QUFDdEYsT0FBTyxFQUFFLGtCQUFrQixFQUFFLE1BQU0sdUNBQXVDLENBQUM7OztBQVEzRSxNQUFNLE9BQU8sb0JBQW9CO0lBVS9CLHFCQUFxQjtRQUNuQixJQUFJLENBQUMsaUJBQWlCLEVBQUUsQ0FBQztJQUMzQixDQUFDO0lBRU8saUJBQWlCO1FBQ3ZCLE1BQU0sRUFBRSxXQUFXLEVBQUUsU0FBUyxFQUFFLEdBQUcsSUFBSSxDQUFDO1FBQ3hDLElBQUksQ0FBQyxXQUFXLElBQUksQ0FBQyxTQUFTO1lBQUUsT0FBTztRQUV2QyxJQUFJLGlCQUFpQixHQUFHLENBQUMsQ0FBQztRQUMxQixXQUFXLENBQUMsT0FBTyxDQUFDLENBQUMsVUFBVSxFQUFFLENBQUMsRUFBRSxFQUFFO1lBQ3BDLE1BQU0sRUFBRSxRQUFRLEVBQUUsR0FBRyxVQUFVLENBQUM7WUFDaEMsSUFB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QUFDLE1BQU07OEJBSS9DLGNBQWM7c0JBRGIsWUFBWTt1QkFBQyxRQUFRO2dCQUlkLFdBQVc7c0JBRGxCLGVBQWU7dUJBQUMsOEJBQThCLEVBQUUsRUFBRSxXQUFXLEVBQUUsSUFBSSxFQUFFO2dCQUk5RCxTQUFTO3NCQURoQixlQUFlO3VCQUFDLHdCQUF3QixFQUFFLEVBQUUsV0FBVyxFQUFFLElBQUksRUFBRSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7XG4gIEFmdGVyQ29udGVudENoZWNrZWQsXG4gIENoYW5nZURldGVjdGlvblN0cmF0ZWd5LFxuICBDb21wb25lbnQsXG4gIENvbnRlbnRDaGlsZCxcbiAgQ29udGVudENoaWxkcmVuLFxuICBRdWVyeUxpc3QsXG4gIFRlbXBsYXRlUmVmLFxufSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IFJpdlRhYmxlIH0gZnJvbSAnLi4vdGFibGUvc3RhdGUnO1xuaW1wb3J0IHsgY3JlYXRlQ2VsbENvb3JkaW5hdGVDYWxjdWxhdG9yIH0gZnJvbSAnLi9jb29yZGluYXRlLWhlbHBlcic7XG5pbXBvcnQgeyBTaW1wbGVUYWJsZUNlbGxDb21wb25lbnQgfSBmcm9tICcuL3NpbXBsZS10YWJsZS1jZWxsLmNvbXBvbmVudCc7XG5pbXBvcnQgeyBTaW1wbGVUYWJsZUhlYWRlckNlbGxDb21wb25lbnQgfSBmcm9tICcuL3NpbXBsZS10YWJsZS1oZWFkZXItY2VsbC5jb21wb25lbnQnO1xuaW1wb3J0IHsgVGFibGVDb2x1bW5IZWxwZXJzIH0gZnJvbSAnLi4vdGFibGUvc3RhdGUtaGVscGVycy9jb2x1bW4taGVscGVycyc7XG5cbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ3Jpdi1zaW1wbGUtdGFibGUnLFxuICB0ZW1wbGF0ZVVybDogJy4vc2ltcGxlLXRhYmxlLmNvbXBvbmVudC5odG1sJyxcbiAgc3R5bGVVcmxzOiBbJy4vc2ltcGxlLXRhYmxlLmNvbXBvbmVudC5jc3MnXSxcbiAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2gsXG59KVxuZXhwb3J0IGNsYXNzIFNpbXBsZVRhYmxlQ29tcG9uZW50IGltcGxlbWVudHMgQWZ0ZXJDb250ZW50Q2hlY2tlZCB7XG4gIEBDb250ZW50Q2hpbGQoJ2hlYWRlcicpXG4gIGhlYWRlclRlbXBsYXRlPzogVGVtcGxhdGVSZWY8dm9pZD47XG5cbiAgQENvbnRlbnRDaGlsZHJlbihTaW1wbGVUYWJsZUhlYWRlckNlbGxDb21wb25lbnQsIHsgZGVzY2VuZGFudHM6IHRydWUgfSlcbiAgcHJpdmF0ZSBoZWFkZXJDZWxscz86IFF1ZXJ5TGlzdDxTaW1wbGVUYWJsZUhlYWRlckNlbGxDb21wb25lbnQ+O1xuXG4gIEBDb250ZW50Q2hpbGRyZW4oU2ltcGxlVGFibGVDZWxsQ29tcG9uZW50LCB7IGRlc2NlbmRhbnRzOiB0cnVlIH0pXG4gIHByaXZhdGUgZGF0YUNlbGxzPzogUXVlcnlMaXN0PFNpbXBsZVRhYmxlQ2VsbENvbXBvbmVudD47XG5cbiAgbmdBZnRlckNvbnRlbnRDaGVja2VkKCkge1xuICAgIHRoaXMuc2V0Q2VsbFByb3BlcnRpZXMoKTtcbiAgfVxuXG4gIHByaXZhdGUgc2V0Q2VsbFByb3BlcnRpZXMoKSB7XG4gICAgY29uc3QgeyBoZWFkZXJDZWxscywgZGF0YUNlbGxzIH0gPSB0aGlzO1xuICAgIGlmICghaGVhZGVyQ2VsbHMgfHwgIWRhdGFDZWxscykgcmV0dXJuO1xuXG4gICAgbGV0IHJ1bm5pbmdXaWR0aFRvdGFsID0gMDtcbiAgICBoZWFkZXJDZWxscy5mb3JFYWNoKChoZWFkZXJDZWxsLCBpKSA9PiB7XG4gICAgICBjb25zdCB7IGRhdGFUeXBlIH0gPSBoZWFkZXJDZWxsO1xuICAgICAgaWYgKCFkYXRhVHlwZSkge1xuICAgICAgICBjb25zdCBhbGxvd2VkVHlwZXMgPSBSaXZUYWJsZS5Db2x1bW5EYXRhVHlwZXMuam9pbignLCAnKTtcbiAgICAgICAgdGhyb3cgbmV3IEVycm9yKFxuICAgICAgICAgIGBFYWNoIGhlYWRlciBjZWxsIG11c3QgZGVmaW5lIGFuIGFwcHJvcHJpYXRlIGRhdGFUeXBlLCBvbmUgb2YgJHthbGxvd2VkVHlwZXN9YCxcbiAgICAgICAgKTtcbiAgICAgIH1cblxuICAgICAgY29uc3QgbmV3QWxpZ25tZW50ID0gVGFibGVDb2x1bW5IZWxwZXJzLmdldENvbHVtbkFsaWdubWVudChcbiAgICAgICAgZGF0YVR5cGUsXG4gICAgICAgIGkgPT09IDAsXG4gICAgICApO1xuICAgICAgY29uc3QgbmV3TGVmdFBpbk9mZnNldCA9IHJ1bm5pbmdXaWR0aFRvdGFsO1xuICAgICAgcnVubmluZ1dpZHRoVG90YWwgKz0gaGVhZGVyQ2VsbC53aWR0aDtcblxuICAgICAgY29uc3QgY2hhbmdlZCA9XG4gICAgICAgIGhlYWRlckNlbGwuYWxpZ25tZW50ICE9IG5ld0FsaWdubWVudCB8fFxuICAgICAgICBoZWFkZXJDZWxsLmxlZnRQaW5PZmZzZXQgIT0gbmV3TGVmdFBpbk9mZnNldDtcbiAgICAgIGhlYWRlckNlbGwuYWxpZ25tZW50ID0gbmV3QWxpZ25tZW50O1xuICAgICAgaGVhZGVyQ2VsbC5sZWZ0UGluT2Zmc2V0ID0gbmV3TGVmdFBpbk9mZnNldDtcblxuICAgICAgLy8gT25seSBtYXJrIGZvciBjaGVjayB3aGVuIGNoYW5nZWQgdG8gcHJldmVudCBpbmZpbml0ZSBjeWNsZXNcbiAgICAgIGlmIChjaGFuZ2VkKSB7XG4gICAgICAgIHF1ZXVlTWljcm90YXNrKCgpID0+IHtcbiAgICAgICAgICBoZWFkZXJDZWxsLmNkci5tYXJrRm9yQ2hlY2soKTtcbiAgICAgICAgfSk7XG4gICAgICB9XG4gICAgfSk7XG5cbiAgICBjb25zdCBjZWxsU3BhbkRhdGEgPSBkYXRhQ2VsbHMubWFwKGRhdGFDZWxsID0+IHtcbiAgICAgIGNvbnN0IGVsZW1lbnQgPSBkYXRhQ2VsbC5lbGVtZW50UmVmLm5hdGl2ZUVsZW1lbnQ7XG4gICAgICByZXR1cm4ge1xuICAgICAgICByb3dzcGFuOiBwYXJzZUludChlbGVtZW50LmdldEF0dHJpYnV0ZSgncm93c3BhbicpIHx8ICcxJywgMTApLFxuICAgICAgICBjb2xzcGFuOiBwYXJzZUludChlbGVtZW50LmdldEF0dHJpYnV0ZSgnY29sc3BhbicpIHx8ICcxJywgMTApLFxuICAgICAgfTtcbiAgICB9KTtcblxuICAgIC8vIFdoZW4gdGhlcmUgYXJlIG5vIGhlYWRlciBjZWxscywgY2FsY3VsYXRlIHRvdGFsQ29sdW1ucyBmcm9tIHRoZSBmaXJzdCA8dHI+XG4gICAgbGV0IHRvdGFsQ29sdW1ucyA9IGhlYWRlckNlbGxzLmxlbmd0aDtcbiAgICBpZiAodG90YWxDb2x1bW5zID09PSAwICYmIGRhdGFDZWxscy5sZW5ndGggPiAwKSB7XG4gICAgICBjb25zdCBmaXJzdFJvdyA9IGRhdGFDZWxscy5maXJzdD8uZWxlbWVudFJlZi5uYXRpdmVFbGVtZW50LnBhcmVudEVsZW1lbnQ7XG4gICAgICBpZiAoZmlyc3RSb3cpIHtcbiAgICAgICAgLy8gQ291bnQgdGQgZWxlbWVudHMgaW4gdGhlIGZpcnN0IHJvdyBhbmQgc3VtIHRoZWlyIGNvbHNwYW5zXG4gICAgICAgIGNvbnN0IGNlbGxzSW5GaXJzdFJvdyA9IEFycmF5LmZyb20oXG4gICAgICAgICAgZmlyc3RSb3cucXVlcnlTZWxlY3RvckFsbCgndGRbcml2LXNpbXBsZS10YWJsZS1jZWxsXScpLFxuICAgICAgICApO1xuICAgICAgICB0b3RhbENvbHVtbnMgPSBjZWxsc0luRmlyc3RSb3cucmVkdWNlKChzdW0sIGNlbGwpID0+IHtcbiAgICAgICAgICBjb25zdCBjb2xzcGFuID0gcGFyc2VJbnQoY2VsbC5nZXRBdHRyaWJ1dGUoJ2NvbHNwYW4nKSB8fCAnMScsIDEwKTtcbiAgICAgICAgICByZXR1cm4gc3VtICsgY29sc3BhbjtcbiAgICAgICAgfSwgMCk7XG4gICAgICB9XG4gICAgICAvLyBGYWxsYmFjayB0byAxIGlmIHdlIGNvdWxkbid0IGRldGVybWluZVxuICAgICAgaWYgKHRvdGFsQ29sdW1ucyA9PT0gMCkge1xuICAgICAgICB0b3RhbENvbHVtbnMgPSAxO1xuICAgICAgfVxuICAgIH1cblxuICAgIGNvbnN0IGdldENlbGxDb29yZGluYXRlcyA9IGNyZWF0ZUNlbGxDb29yZGluYXRlQ2FsY3VsYXRvcihcbiAgICAgIGNlbGxTcGFuRGF0YSxcbiAgICAgIHRvdGFsQ29sdW1ucyxcbiAgICApO1xuXG4gICAgY29uc3QgbWF4Um93ID0gTWF0aC5tYXgoXG4gICAgICAuLi5kYXRhQ2VsbHMubWFwKChfLCBpKSA9PiBnZXRDZWxsQ29vcmRpbmF0ZXMoaSkuZW5kLnJvdyksXG4gICAgKTtcblxuICAgIGRhdGFDZWxscy5mb3JFYWNoKChkYXRhQ2VsbCwgY2VsbEluZGV4KSA9PiB7XG4gICAgICBjb25zdCBib3VuZHMgPSBnZXRDZWxsQ29vcmRpbmF0ZXMoY2VsbEluZGV4KTtcblxuICAgICAgY29uc3QgaGVhZGVyQ2VsbCA9IGhlYWRlckNlbGxzLmdldChib3VuZHMuc3RhcnQuY29sKTtcbiAgICAgIGxldCBjaGFuZ2VkID0gZmFsc2U7XG4gICAgICBpZiAoaGVhZGVyQ2VsbCkge1xuICAgICAgICBjaGFuZ2VkID1cbiAgICAgICAgICBkYXRhQ2VsbC5hbGlnbm1lbnQgIT0gaGVhZGVyQ2VsbC5hbGlnbm1lbnQgfHxcbiAgICAgICAgICBkYXRhQ2VsbC5waW5uZWQgIT0gaGVhZGVyQ2VsbC5waW5uZWQgfHxcbiAgICAgICAgICBkYXRhQ2VsbC5sZWZ0UGluT2Zmc2V0ICE9IGhlYWRlckNlbGwubGVmdFBpbk9mZnNldDtcblxuICAgICAgICBkYXRhQ2VsbC5hbGlnbm1lbnQgPSBoZWFkZXJDZWxsLmFsaWdubWVudDtcbiAgICAgICAgZGF0YUNlbGwucGlubmVkID0gaGVhZGVyQ2VsbC5waW5uZWQ7XG4gICAgICAgIGRhdGFDZWxsLmxlZnRQaW5PZmZzZXQgPSBoZWFkZXJDZWxsLmxlZnRQaW5PZmZzZXQ7XG4gICAgICB9XG5cbiAgICAgIGNvbnN0IG5ld0lzTGFzdFJvdyA9IGJvdW5kcy5lbmQucm93ID09PSBtYXhSb3c7XG4gICAgICBjaGFuZ2VkID0gY2hhbmdlZCB8fCBkYXRhQ2VsbC5pc0xhc3RSb3cgIT0gbmV3SXNMYXN0Um93O1xuICAgICAgZGF0YUNlbGwuaXNMYXN0Um93ID0gbmV3SXNMYXN0Um93O1xuXG4gICAgICAvLyBPbmx5IG1hcmsgZm9yIGNoZWNrIHdoZW4gY2hhbmdlZCB0byBwcmV2ZW50IGluZmluaXRlIGN5Y2xlc1xuICAgICAgaWYgKGNoYW5nZWQpIHtcbiAgICAgICAgcXVldWVNaWNyb3Rhc2soKCkgPT4ge1xuICAgICAgICAgIGRhdGFDZWxsLmNkci5tYXJrRm9yQ2hlY2soKTtcbiAgICAgICAgfSk7XG4gICAgICB9XG4gICAgfSk7XG4gIH1cbn1cbiIsIjxkaXYgY2xhc3M9XCJoZWFkZXJcIiAqbmdJZj1cImhlYWRlclRlbXBsYXRlXCI+XG4gIDxuZy1jb250YWluZXIgKm5nVGVtcGxhdGVPdXRsZXQ9XCJoZWFkZXJUZW1wbGF0ZVwiPjwvbmctY29udGFpbmVyPlxuPC9kaXY+XG48ZGl2IGNsYXNzPVwiY29udGFpbmVyXCIgdGFiaW5kZXg9XCIwXCI+XG4gIDx0YWJsZT5cbiAgICA8bmctY29udGVudD48L25nLWNvbnRlbnQ+XG4gIDwvdGFibGU+XG48L2Rpdj5cbiJdfQ==
|
|
@@ -1,182 +0,0 @@
|
|
|
1
|
-
import { sumBy } from 'lodash';
|
|
2
|
-
/**
|
|
3
|
-
* Clipboard serialization for `riv-table`.
|
|
4
|
-
*
|
|
5
|
-
* Rows that have a link render as `<a class="row-link">` rather than `<tr>`, and
|
|
6
|
-
* the browser's clipboard serializer does not treat those as table rows — the
|
|
7
|
-
* copied content pastes into a spreadsheet as one lateral run instead of a grid.
|
|
8
|
-
* These helpers rebuild the rendered grid so that copied content pastes as rows
|
|
9
|
-
* and columns.
|
|
10
|
-
*/
|
|
11
|
-
export var RivTableClipboard;
|
|
12
|
-
(function (RivTableClipboard) {
|
|
13
|
-
/** Cells that hold controls rather than data. */
|
|
14
|
-
const controlCellSelector = 'th.selection-head, th.menu-head, td.selection-body, td.menu-body';
|
|
15
|
-
/** The column name within a header cell; the rest of the cell is controls. */
|
|
16
|
-
const headerLabelSelector = '.header-wrapper';
|
|
17
|
-
/** Elements whose text exists for assistive technology only. */
|
|
18
|
-
const assistiveTextSelector = 'riv-sr-only';
|
|
19
|
-
/** Rows that stand in for data rather than carrying it. */
|
|
20
|
-
const fillerRowSelector = 'riv-zero-state';
|
|
21
|
-
/** Elements that own their own clipboard behavior. */
|
|
22
|
-
const editableSelector = 'input, textarea, select, [contenteditable=""], [contenteditable="true"]';
|
|
23
|
-
/** Whether the copy came from a control that serializes its own value. */
|
|
24
|
-
function isEditable(target) {
|
|
25
|
-
return (target instanceof Element && target.closest(editableSelector) !== null);
|
|
26
|
-
}
|
|
27
|
-
RivTableClipboard.isEditable = isEditable;
|
|
28
|
-
/**
|
|
29
|
-
* Whether `host` is the first element of its kind that the selection touches.
|
|
30
|
-
* A selection can span several tables; deferring to the first keeps instances
|
|
31
|
-
* from overwriting each other's clipboard data.
|
|
32
|
-
*/
|
|
33
|
-
function ownsSelection(host, isSelected) {
|
|
34
|
-
return (Array.from(document.querySelectorAll(host.localName)).find(element => isSelected(element)) === host);
|
|
35
|
-
}
|
|
36
|
-
RivTableClipboard.ownsSelection = ownsSelection;
|
|
37
|
-
/**
|
|
38
|
-
* Serializes the selected region of `tables` (one per row group), or null when
|
|
39
|
-
* the selection covers at most one cell — those are left to the browser so
|
|
40
|
-
* that copying part of a cell's text keeps working.
|
|
41
|
-
*
|
|
42
|
-
* `endpoints` are where the selection starts and ends, which narrow the copied
|
|
43
|
-
* columns to that span. A selection is a linear range in reading order, so
|
|
44
|
-
* dragging down one column touches every column in between; the endpoints are
|
|
45
|
-
* what distinguish "this column" from "these rows".
|
|
46
|
-
*/
|
|
47
|
-
function extract(tables, isSelected, endpoints = []) {
|
|
48
|
-
const layouts = tables.map(layout);
|
|
49
|
-
const columns = selectedColumns(layouts, isSelected, endpoints);
|
|
50
|
-
const headers = layouts.flatMap(l => l.header);
|
|
51
|
-
const rows = layouts
|
|
52
|
-
.flatMap(l => l.body)
|
|
53
|
-
.filter(row => selectedCount(row, isSelected) > 0);
|
|
54
|
-
// Header cells own the pointer for column reordering, so a drag cannot
|
|
55
|
-
// reach them; the header comes along with any copied data instead.
|
|
56
|
-
const header = headers.find(row => selectedCount(row, isSelected) > 0) ??
|
|
57
|
-
(rows.length > 0 ? headers[0] : undefined);
|
|
58
|
-
if (columns.length === 0 ||
|
|
59
|
-
sumBy([...(header ? [header] : []), ...rows], row => selectedCount(row, isSelected)) < 2)
|
|
60
|
-
return null;
|
|
61
|
-
return {
|
|
62
|
-
text: toText(header, rows, columns),
|
|
63
|
-
html: toHtml(header, rows, columns),
|
|
64
|
-
};
|
|
65
|
-
}
|
|
66
|
-
RivTableClipboard.extract = extract;
|
|
67
|
-
function toText(header, rows, columns) {
|
|
68
|
-
return [
|
|
69
|
-
...(header ? [columns.map(column => headerText(header[column]))] : []),
|
|
70
|
-
...rows.map(row => columns.map(column => text(row[column]))),
|
|
71
|
-
]
|
|
72
|
-
.map(cells => cells.join('\t'))
|
|
73
|
-
.join('\n');
|
|
74
|
-
}
|
|
75
|
-
function toHtml(header, rows, columns) {
|
|
76
|
-
const cells = (values, tag) => values.map(value => `<${tag}>${escapeHtml(value)}</${tag}>`).join('');
|
|
77
|
-
return [
|
|
78
|
-
'<table>',
|
|
79
|
-
header
|
|
80
|
-
? `<thead><tr>${cells(columns.map(column => headerText(header[column])), 'th')}</tr></thead>`
|
|
81
|
-
: '',
|
|
82
|
-
`<tbody>${rows
|
|
83
|
-
.map(row => `<tr>${cells(columns.map(column => text(row[column])), 'td')}</tr>`)
|
|
84
|
-
.join('')}</tbody>`,
|
|
85
|
-
'</table>',
|
|
86
|
-
].join('');
|
|
87
|
-
}
|
|
88
|
-
function layout(table) {
|
|
89
|
-
return {
|
|
90
|
-
header: grid(Array.from(table.querySelectorAll(':scope > thead > tr')).filter(isDataRow)),
|
|
91
|
-
body: grid(Array.from(table.querySelectorAll(':scope > tbody > tr, :scope > tbody > a.row-link')).filter(isDataRow)),
|
|
92
|
-
};
|
|
93
|
-
}
|
|
94
|
-
/**
|
|
95
|
-
* Maps rows onto a column grid. Cells covered by a rowspan repeat the spanning
|
|
96
|
-
* cell so that every line has one value per column, matching how CSV export
|
|
97
|
-
* flattens spans.
|
|
98
|
-
*/
|
|
99
|
-
function grid(rows) {
|
|
100
|
-
const cells = rows.map(() => []);
|
|
101
|
-
rows.forEach((row, rowIndex) => {
|
|
102
|
-
let column = 0;
|
|
103
|
-
for (const cell of dataCells(row)) {
|
|
104
|
-
while (cells[rowIndex][column] !== undefined)
|
|
105
|
-
column++;
|
|
106
|
-
const rowSpan = Math.max(1, cell.rowSpan);
|
|
107
|
-
const colSpan = Math.max(1, cell.colSpan);
|
|
108
|
-
for (let r = rowIndex; r <= Math.min(rows.length - 1, rowIndex + rowSpan - 1); r++)
|
|
109
|
-
for (let c = column; c < column + colSpan; c++)
|
|
110
|
-
cells[r][c] = cell;
|
|
111
|
-
column += colSpan;
|
|
112
|
-
}
|
|
113
|
-
});
|
|
114
|
-
return cells;
|
|
115
|
-
}
|
|
116
|
-
function dataCells(row) {
|
|
117
|
-
return Array.from(row.querySelectorAll(':scope > td, :scope > th')).filter(cell => !cell.matches(controlCellSelector));
|
|
118
|
-
}
|
|
119
|
-
/** Excludes the zero-state row, which spans every column. */
|
|
120
|
-
function isDataRow(row) {
|
|
121
|
-
return (row.querySelector(fillerRowSelector) === null &&
|
|
122
|
-
dataCells(row).every(cell => cell.colSpan <= 1));
|
|
123
|
-
}
|
|
124
|
-
function selectedColumns(layouts, isSelected, endpoints) {
|
|
125
|
-
const columns = new Set();
|
|
126
|
-
for (const { header, body } of layouts)
|
|
127
|
-
for (const row of [...header, ...body])
|
|
128
|
-
row.forEach((cell, column) => {
|
|
129
|
-
if (cell !== undefined && isSelected(cell))
|
|
130
|
-
columns.add(column);
|
|
131
|
-
});
|
|
132
|
-
const touched = [...columns].sort((a, b) => a - b);
|
|
133
|
-
// Both ends have to land in a cell to describe a span; anything else (a
|
|
134
|
-
// select-all, an endpoint on a row rather than a cell) keeps every column.
|
|
135
|
-
const span = endpoints
|
|
136
|
-
.map(node => (node ? columnOf(layouts, node) : undefined))
|
|
137
|
-
.filter((column) => column !== undefined);
|
|
138
|
-
return span.length === endpoints.length && span.length > 1
|
|
139
|
-
? touched.filter(column => column >= Math.min(...span) && column <= Math.max(...span))
|
|
140
|
-
: touched;
|
|
141
|
-
}
|
|
142
|
-
function columnOf(layouts, node) {
|
|
143
|
-
for (const { header, body } of layouts)
|
|
144
|
-
for (const row of [...header, ...body]) {
|
|
145
|
-
const column = row.findIndex(cell => cell?.contains(node) === true);
|
|
146
|
-
if (column >= 0)
|
|
147
|
-
return column;
|
|
148
|
-
}
|
|
149
|
-
return undefined;
|
|
150
|
-
}
|
|
151
|
-
function selectedCount(row, isSelected) {
|
|
152
|
-
return row.filter(cell => cell !== undefined && isSelected(cell)).length;
|
|
153
|
-
}
|
|
154
|
-
function headerText(cell) {
|
|
155
|
-
return text(cell?.querySelector(headerLabelSelector) ?? cell);
|
|
156
|
-
}
|
|
157
|
-
function text(cell) {
|
|
158
|
-
return cell ? visibleText(cell).replace(/\s+/g, ' ').trim() : '';
|
|
159
|
-
}
|
|
160
|
-
/**
|
|
161
|
-
* Template indentation lands in the DOM as newlines and runs of spaces, which
|
|
162
|
-
* split a single row across several spreadsheet rows unless collapsed by the
|
|
163
|
-
* caller. Comment anchors and screen-reader-only content are dropped, and
|
|
164
|
-
* sibling nodes are separated so that adjacent elements do not run together.
|
|
165
|
-
*/
|
|
166
|
-
function visibleText(node) {
|
|
167
|
-
if (node instanceof Text)
|
|
168
|
-
return node.nodeValue ?? '';
|
|
169
|
-
if (node instanceof Element)
|
|
170
|
-
return node.matches(assistiveTextSelector)
|
|
171
|
-
? ''
|
|
172
|
-
: Array.from(node.childNodes).map(visibleText).join(' ');
|
|
173
|
-
return '';
|
|
174
|
-
}
|
|
175
|
-
function escapeHtml(value) {
|
|
176
|
-
return value
|
|
177
|
-
.replace(/&/g, '&')
|
|
178
|
-
.replace(/</g, '<')
|
|
179
|
-
.replace(/>/g, '>');
|
|
180
|
-
}
|
|
181
|
-
})(RivTableClipboard || (RivTableClipboard = {}));
|
|
182
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2xpcGJvYXJkLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvcml2L3NyYy9saWIvdGFibGUvdGFibGUvY2xpcGJvYXJkLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxLQUFLLEVBQUUsTUFBTSxRQUFRLENBQUM7QUFFL0I7Ozs7Ozs7O0dBUUc7QUFDSCxNQUFNLEtBQVcsaUJBQWlCLENBMlFqQztBQTNRRCxXQUFpQixpQkFBaUI7SUFDaEMsaURBQWlEO0lBQ2pELE1BQU0sbUJBQW1CLEdBQ3ZCLGtFQUFrRSxDQUFDO0lBRXJFLDhFQUE4RTtJQUM5RSxNQUFNLG1CQUFtQixHQUFHLGlCQUFpQixDQUFDO0lBRTlDLGdFQUFnRTtJQUNoRSxNQUFNLHFCQUFxQixHQUFHLGFBQWEsQ0FBQztJQUU1QywyREFBMkQ7SUFDM0QsTUFBTSxpQkFBaUIsR0FBRyxnQkFBZ0IsQ0FBQztJQUUzQyxzREFBc0Q7SUFDdEQsTUFBTSxnQkFBZ0IsR0FDcEIseUVBQXlFLENBQUM7SUFvQjVFLDBFQUEwRTtJQUMxRSxTQUFnQixVQUFVLENBQUMsTUFBMEI7UUFDbkQsT0FBTyxDQUNMLE1BQU0sWUFBWSxPQUFPLElBQUksTUFBTSxDQUFDLE9BQU8sQ0FBQyxnQkFBZ0IsQ0FBQyxLQUFLLElBQUksQ0FDdkUsQ0FBQztJQUNKLENBQUM7SUFKZSw0QkFBVSxhQUl6QixDQUFBO0lBRUQ7Ozs7T0FJRztJQUNILFNBQWdCLGFBQWEsQ0FDM0IsSUFBYSxFQUNiLFVBQXlCO1FBRXpCLE9BQU8sQ0FDTCxLQUFLLENBQUMsSUFBSSxDQUFDLFFBQVEsQ0FBQyxnQkFBZ0IsQ0FBQyxJQUFJLENBQUMsU0FBUyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsT0FBTyxDQUFDLEVBQUUsQ0FDbkUsVUFBVSxDQUFDLE9BQU8sQ0FBQyxDQUNwQixLQUFLLElBQUksQ0FDWCxDQUFDO0lBQ0osQ0FBQztJQVRlLCtCQUFhLGdC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LENBQUMsSUFBZ0M7UUFDNUMsT0FBTyxJQUFJLENBQUMsQ0FBQyxDQUFDLFdBQVcsQ0FBQyxJQUFJLENBQUMsQ0FBQyxPQUFPLENBQUMsTUFBTSxFQUFFLEdBQUcsQ0FBQyxDQUFDLElBQUksRUFBRSxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUM7SUFDbkUsQ0FBQztJQUVEOzs7OztPQUtHO0lBQ0gsU0FBUyxXQUFXLENBQUMsSUFBVTtRQUM3QixJQUFJLElBQUksWUFBWSxJQUFJO1lBQUUsT0FBTyxJQUFJLENBQUMsU0FBUyxJQUFJLEVBQUUsQ0FBQztRQUN0RCxJQUFJLElBQUksWUFBWSxPQUFPO1lBQ3pCLE9BQU8sSUFBSSxDQUFDLE9BQU8sQ0FBQyxxQkFBcUIsQ0FBQztnQkFDeEMsQ0FBQyxDQUFDLEVBQUU7Z0JBQ0osQ0FBQyxDQUFDLEtBQUssQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLFVBQVUsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxXQUFXLENBQUMsQ0FBQyxJQUFJLENBQUMsR0FBRyxDQUFDLENBQUM7UUFDN0QsT0FBTyxFQUFFLENBQUM7SUFDWixDQUFDO0lBRUQsU0FBUyxVQUFVLENBQUMsS0FBYTtRQUMvQixPQUFPLEtBQUs7YUFDVCxPQUFPLENBQUMsSUFBSSxFQUFFLE9BQU8sQ0FBQzthQUN0QixPQUFPLENBQUMsSUFBSSxFQUFFLE1BQU0sQ0FBQzthQUNyQixPQUFPLENBQUMsSUFBSSxFQUFFLE1BQU0sQ0FBQyxDQUFDO0lBQzNCLENBQUM7QUFDSCxDQUFDLEVBM1FnQixpQkFBaUIsS0FBakIsaUJBQWlCLFFBMlFqQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IHN1bUJ5IH0gZnJvbSAnbG9kYXNoJztcblxuLyoqXG4gKiBDbGlwYm9hcmQgc2VyaWFsaXphdGlvbiBmb3IgYHJpdi10YWJsZWAuXG4gKlxuICogUm93cyB0aGF0IGhhdmUgYSBsaW5rIHJlbmRlciBhcyBgPGEgY2xhc3M9XCJyb3ctbGlua1wiPmAgcmF0aGVyIHRoYW4gYDx0cj5gLCBhbmRcbiAqIHRoZSBicm93c2VyJ3MgY2xpcGJvYXJkIHNlcmlhbGl6ZXIgZG9lcyBub3QgdHJlYXQgdGhvc2UgYXMgdGFibGUgcm93cyDigJQgdGhlXG4gKiBjb3BpZWQgY29udGVudCBwYXN0ZXMgaW50byBhIHNwcmVhZHNoZWV0IGFzIG9uZSBsYXRlcmFsIHJ1biBpbnN0ZWFkIG9mIGEgZ3JpZC5cbiAqIFRoZXNlIGhlbHBlcnMgcmVidWlsZCB0aGUgcmVuZGVyZWQgZ3JpZCBzbyB0aGF0IGNvcGllZCBjb250ZW50IHBhc3RlcyBhcyByb3dzXG4gKiBhbmQgY29sdW1ucy5cbiAqL1xuZXhwb3J0IG5hbWVzcGFjZSBSaXZUYWJsZUNsaXBib2FyZCB7XG4gIC8qKiBDZWxscyB0aGF0IGhvbGQgY29udHJvbHMgcmF0aGVyIHRoYW4gZGF0YS4gKi9cbiAgY29uc3QgY29udHJvbENlbGxTZWxlY3RvciA9XG4gICAgJ3RoLnNlbGVjdGlvbi1oZWFkLCB0aC5tZW51LWhlYWQsIHRkLnNlbGVjdGlvbi1ib2R5LCB0ZC5tZW51LWJvZHknO1xuXG4gIC8qKiBUaGUgY29sdW1uIG5hbWUgd2l0aGluIGEgaGVhZGVyIGNlbGw7IHRoZSByZXN0IG9mIHRoZSBjZWxsIGlzIGNvbnRyb2xzLiAqL1xuICBjb25zdCBoZWFkZXJMYWJlbFNlbGVjdG9yID0gJy5oZWFkZXItd3JhcHBlcic7XG5cbiAgLyoqIEVsZW1lbnRzIHdob3NlIHRleHQgZXhpc3RzIGZvciBhc3Npc3RpdmUgdGVjaG5vbG9neSBvbmx5LiAqL1xuICBjb25zdCBhc3Npc3RpdmVUZXh0U2VsZWN0b3IgPSAncml2LXNyLW9ubHknO1xuXG4gIC8qKiBSb3dzIHRoYXQgc3RhbmQgaW4gZm9yIGRhdGEgcmF0aGVyIHRoYW4gY2FycnlpbmcgaXQuICovXG4gIGNvbnN0IGZpbGxlclJvd1NlbGVjdG9yID0gJ3Jpdi16ZXJvLXN0YXRlJztcblxuICAvKiogRWxlbWVudHMgdGhhdCBvd24gdGhlaXIgb3duIGNsaXBib2FyZCBiZWhhdmlvci4gKi9cbiAgY29uc3QgZWRpdGFibGVTZWxlY3RvciA9XG4gICAgJ2lucHV0LCB0ZXh0YXJlYSwgc2VsZWN0LCBbY29udGVudGVkaXRhYmxlPVwiXCJdLCBbY29udGVudGVkaXRhYmxlPVwidHJ1ZVwiXSc7XG5cbiAgZXhwb3J0IHR5cGUgUGF5bG9hZCA9IHtcbiAgICAvKiogVGFiLWRlbGltaXRlZCByb3dzLCBvbmUgbGluZSBwZXIgcm93LiAqL1xuICAgIHRleHQ6IHN0cmluZztcbiAgICAvKiogRXF1aXZhbGVudCB0YWJsZSBtYXJrdXAsIGZvciB0YXJnZXRzIHRoYXQgcHJlZmVyIHJpY2ggY29udGVudC4gKi9cbiAgICBodG1sOiBzdHJpbmc7XG4gIH07XG5cbiAgLyoqIFByZWRpY2F0ZSBmb3Igd2hldGhlciBhIG5vZGUgZmFsbHMgd2l0aGluIHRoZSB1c2VyJ3Mgc2VsZWN0aW9uLiAqL1xuICBleHBvcnQgdHlwZSBTZWxlY3Rpb25UZXN0ID0gKG5vZGU6IE5vZGUpID0+IGJvb2xlYW47XG5cbiAgLyoqIEEgcmVuZGVyZWQgcm93LCBob2xkaW5nIHRoZSBjZWxsIG9jY3VweWluZyBlYWNoIGRhdGEgY29sdW1uLiAqL1xuICB0eXBlIFJvdyA9IHJlYWRvbmx5IChFbGVtZW50IHwgdW5kZWZpbmVkKVtdO1xuXG4gIHR5cGUgTGF5b3V0ID0ge1xuICAgIGhlYWRlcjogcmVhZG9ubHkgUm93W107XG4gICAgYm9keTogcmVhZG9ubHkgUm93W107XG4gIH07XG5cbiAgLyoqIFdoZXRoZXIgdGhlIGNvcHkgY2FtZSBmcm9tIGEgY29udHJvbCB0aGF0IHNlcmlhbGl6ZXMgaXRzIG93biB2YWx1ZS4gKi9cbiAgZXhwb3J0IGZ1bmN0aW9uIGlzRWRpdGFibGUodGFyZ2V0OiBFdmVudFRhcmdldCB8IG51bGwpOiBib29sZWFuIHtcbiAgICByZXR1cm4gKFxuICAgICAgdGFyZ2V0IGluc3RhbmNlb2YgRWxlbWVudCAmJiB0YXJnZXQuY2xvc2VzdChlZGl0YWJsZVNlbGVjdG9yKSAhPT0gbnVsbFxuICAgICk7XG4gIH1cblxuICAvKipcbiAgICogV2hldGhlciBgaG9zdGAgaXMgdGhlIGZpcnN0IGVsZW1lbnQgb2YgaXRzIGtpbmQgdGhhdCB0aGUgc2VsZWN0aW9uIHRvdWNoZXMuXG4gICAqIEEgc2VsZWN0aW9uIGNhbiBzcGFuIHNldmVyYWwgdGFibGVzOyBkZWZlcnJpbmcgdG8gdGhlIGZpcnN0IGtlZXBzIGluc3RhbmNlc1xuICAgKiBmcm9tIG92ZXJ3cml0aW5nIGVhY2ggb3RoZXIncyBjbGlwYm9hcmQgZGF0YS5cbiAgICovXG4gIGV4cG9ydCBmdW5jdGlvbiBvd25zU2VsZWN0aW9uKFxuICAgIGhvc3Q6IEVsZW1lbnQsXG4gICAgaXNTZWxlY3RlZDogU2VsZWN0aW9uVGVzdCxcbiAgKTogYm9vbGVhbiB7XG4gICAgcmV0dXJuIChcbiAgICAgIEFycmF5LmZyb20oZG9jdW1lbnQucXVlcnlTZWxlY3RvckFsbChob3N0LmxvY2FsTmFtZSkpLmZpbmQoZWxlbWVudCA9PlxuICAgICAgICBpc1NlbGVjdGVkKGVsZW1lbnQpLFxuICAgICAgKSA9PT0gaG9zdFxuICAgICk7XG4gIH1cblxuICAvKipcbiAgICogU2VyaWFsaXplcyB0aGUgc2VsZWN0ZWQgcmVnaW9uIG9mIGB0YWJsZXNgIChvbmUgcGVyIHJvdyBncm91cCksIG9yIG51bGwgd2hlblxuICAgKiB0aGUgc2VsZWN0aW9uIGNvdmVycyBhdCBtb3N0IG9uZSBjZWxsIOKAlCB0aG9zZSBhcmUgbGVmdCB0byB0aGUgYnJvd3NlciBzb1xuICAgKiB0aGF0IGNvcHlpbmcgcGFydCBvZiBhIGNlbGwncyB0ZXh0IGtlZXBzIHdvcmtpbmcuXG4gICAqXG4gICAqIGBlbmRwb2ludHNgIGFyZSB3aGVyZSB0aGUgc2VsZWN0aW9uIHN0YXJ0cyBhbmQgZW5kcywgd2hpY2ggbmFycm93IHRoZSBjb3BpZWRcbiAgICogY29sdW1ucyB0byB0aGF0IHNwYW4uIEEgc2VsZWN0aW9uIGlzIGEgbGluZWFyIHJhbmdlIGluIHJlYWRpbmcgb3JkZXIsIHNvXG4gICAqIGRyYWdnaW5nIGRvd24gb25lIGNvbHVtbiB0b3VjaGVzIGV2ZXJ5IGNvbHVtbiBpbiBiZXR3ZWVuOyB0aGUgZW5kcG9pbnRzIGFyZVxuICAgKiB3aGF0IGRpc3Rpbmd1aXNoIFwidGhpcyBjb2x1bW5cIiBmcm9tIFwidGhlc2Ugcm93c1wiLlxuICAgKi9cbiAgZXhwb3J0IGZ1bmN0aW9uIGV4dHJhY3QoXG4gICAgdGFibGVzOiByZWFkb25seSBIVE1MVGFibGVFbGVtZW50W10sXG4gICAgaXNTZWxlY3RlZDogU2VsZWN0aW9uVGVzdCxcbiAgICBlbmRwb2ludHM6IHJlYWRvbmx5IChOb2RlIHwgbnVsbCB8IHVuZGVmaW5lZClbXSA9IFtdLFxuICApOiBQYXlsb2FkIHwgbnVsbCB7XG4gICAgY29uc3QgbGF5b3V0cyA9IHRhYmxlcy5tYXAobGF5b3V0KTtcbiAgICBjb25zdCBjb2x1bW5zID0gc2VsZWN0ZWRDb2x1bW5zKGxheW91dHMsIGlzU2VsZWN0ZWQsIGVuZHBvaW50cyk7XG4gICAgY29uc3QgaGVhZGVycyA9IGxheW91dHMuZmxhdE1hcChsID0+IGwuaGVhZGVyKTtcbiAgICBjb25zdCByb3dzID0gbGF5b3V0c1xuICAgICAgLmZsYXRNYXAobCA9PiBsLmJvZHkpXG4gICAgICAuZmlsdGVyKHJvdyA9PiBzZWxlY3RlZENvdW50KHJvdywgaXNTZWxlY3RlZCkgPiAwKTtcbiAgICAvLyBIZWFkZXIgY2VsbHMgb3duIHRoZSBwb2ludGVyIGZvciBjb2x1bW4gcmVvcmRlcmluZywgc28gYSBkcmFnIGNhbm5vdFxuICAgIC8vIHJlYWNoIHRoZW07IHRoZSBoZWFkZXIgY29tZXMgYWxvbmcgd2l0aCBhbnkgY29waWVkIGRhdGEgaW5zdGVhZC5cbiAgICBjb25zdCBoZWFkZXIgPVxuICAgICAgaGVhZGVycy5maW5kKHJvdyA9PiBzZWxlY3RlZENvdW50KHJvdywgaXNTZWxlY3RlZCkgPiAwKSA/P1xuICAgICAgKHJvd3MubGVuZ3RoID4gMCA/IGhlYWRlcnNbMF0gOiB1bmRlZmluZWQpO1xuXG4gICAgaWYgKFxuICAgICAgY29sdW1ucy5sZW5ndGggPT09IDAgfHxcbiAgICAgIHN1bUJ5KFsuLi4oaGVhZGVyID8gW2hlYWRlcl0gOiBbXSksIC4uLnJvd3NdLCByb3cgPT5cbiAgICAgICAgc2VsZWN0ZWRDb3VudChyb3csIGlzU2VsZWN0ZWQpLFxuICAgICAgKSA8IDJcbiAgICApXG4gICAgICByZXR1cm4gbnVsbDtcblxuICAgIHJldHVybiB7XG4gICAgICB0ZXh0OiB0b1RleHQoaGVhZGVyLCByb3dzLCBjb2x1bW5zKSxcbiAgICAgIGh0bWw6IHRvSHRtbChoZWFkZXIsIHJvd3MsIGNvbHVtbnMpLFxuICAgIH07XG4gIH1cblxuICBmdW5jdGlvbiB0b1RleHQoXG4gICAgaGVhZGVyOiBSb3cgfCB1bmRlZmluZWQsXG4gICAgcm93czogcmVhZG9ubHkgUm93W10sXG4gICAgY29sdW1uczogcmVhZG9ubHkgbnVtYmVyW10sXG4gICk6IHN0cmluZyB7XG4gICAgcmV0dXJuIFtcbiAgICAgIC4uLihoZWFkZXIgPyBbY29sdW1ucy5tYXAoY29sdW1uID0+IGhlYWRlclRleHQoaGVhZGVyW2NvbHVtbl0pKV0gOiBbXSksXG4gICAgICAuLi5yb3dzLm1hcChyb3cgPT4gY29sdW1ucy5tYXAoY29sdW1uID0+IHRleHQocm93W2NvbHVtbl0pKSksXG4gICAgXVxuICAgICAgLm1hcChjZWxscyA9PiBjZWxscy5qb2luKCdcXHQnKSlcbiAgICAgIC5qb2luKCdcXG4nKTtcbiAgfVxuXG4gIGZ1bmN0aW9uIHRvSHRtbChcbiAgICBoZWFkZXI6IFJvdyB8IHVuZGVmaW5lZCxcbiAgICByb3dzOiByZWFkb25seSBSb3dbXSxcbiAgICBjb2x1bW5zOiByZWFkb25seSBudW1iZXJbXSxcbiAgKTogc3RyaW5nIHtcbiAgICBjb25zdCBjZWxscyA9ICh2YWx1ZXM6IHJlYWRvbmx5IHN0cmluZ1tdLCB0YWc6ICd0aCcgfCAndGQnKSA9PlxuICAgICAgdmFsdWVzLm1hcCh2YWx1ZSA9PiBgPCR7dGFnfT4ke2VzY2FwZUh0bWwodmFsdWUpfTwvJHt0YWd9PmApLmpvaW4oJycpO1xuICAgIHJldHVybiBbXG4gICAgICAnPHRhYmxlPicsXG4gICAgICBoZWFkZXJcbiAgICAgICAgPyBgPHRoZWFkPjx0cj4ke2NlbGxzKFxuICAgICAgICAgICAgY29sdW1ucy5tYXAoY29sdW1uID0+IGhlYWRlclRleHQoaGVhZGVyW2NvbHVtbl0pKSxcbiAgICAgICAgICAgICd0aCcsXG4gICAgICAgICAgKX08L3RyPjwvdGhlYWQ+YFxuICAgICAgICA6ICcnLFxuICAgICAgYDx0Ym9keT4ke3Jvd3NcbiAgICAgICAgLm1hcChcbiAgICAgICAgICByb3cgPT5cbiAgICAgICAgICAgIGA8dHI+JHtjZWxscyhcbiAgICAgICAgICAgICAgY29sdW1ucy5tYXAoY29sdW1uID0+IHRleHQocm93W2NvbHVtbl0pKSxcbiAgICAgICAgICAgICAgJ3RkJyxcbiAgICAgICAgICAgICl9PC90cj5gLFxuICAgICAgICApXG4gICAgICAgIC5qb2luKCcnKX08L3Rib2R5PmAsXG4gICAgICAnPC90YWJsZT4nLFxuICAgIF0uam9pbignJyk7XG4gIH1cblxuICBmdW5jdGlvbiBsYXlvdXQodGFibGU6IEhUTUxUYWJsZUVsZW1lbnQpOiBMYXlvdXQge1xuICAgIHJldHVybiB7XG4gICAgICBoZWFkZXI6IGdyaWQoXG4gICAgICAgIEFycmF5LmZyb20odGFibGUucXVlcnlTZWxlY3RvckFsbCgnOnNjb3BlID4gdGhlYWQgPiB0cicpKS5maWx0ZXIoXG4gICAgICAgICAgaXNEYXRhUm93LFxuICAgICAgICApLFxuICAgICAgKSxcbiAgICAgIGJvZHk6IGdyaWQoXG4gICAgICAgIEFycmF5LmZyb20oXG4gICAgICAgICAgdGFibGUucXVlcnlTZWxlY3RvckFsbChcbiAgICAgICAgICAgICc6c2NvcGUgPiB0Ym9keSA+IHRyLCA6c2NvcGUgPiB0Ym9keSA+IGEucm93LWxpbmsnLFxuICAgICAgICAgICksXG4gICAgICAgICkuZmlsdGVyKGlzRGF0YVJvdyksXG4gICAgICApLFxuICAgIH07XG4gIH1cblxuICAvKipcbiAgICogTWFwcyByb3dzIG9udG8gYSBjb2x1bW4gZ3JpZC4gQ2VsbHMgY292ZXJlZCBieSBhIHJvd3NwYW4gcmVwZWF0IHRoZSBzcGFubmluZ1xuICAgKiBjZWxsIHNvIHRoYXQgZXZlcnkgbGluZSBoYXMgb25lIHZhbHVlIHBlciBjb2x1bW4sIG1hdGNoaW5nIGhvdyBDU1YgZXhwb3J0XG4gICAqIGZsYXR0ZW5zIHNwYW5zLlxuICAgKi9cbiAgZnVuY3Rpb24gZ3JpZChyb3dzOiByZWFkb25seSBFbGVtZW50W10pOiBSb3dbXSB7XG4gICAgY29uc3QgY2VsbHM6IChFbGVtZW50IHwgdW5kZWZpbmVkKVtdW10gPSByb3dzLm1hcCgoKSA9PiBbXSk7XG4gICAgcm93cy5mb3JFYWNoKChyb3csIHJvd0luZGV4KSA9PiB7XG4gICAgICBsZXQgY29sdW1uID0gMDtcbiAgICAgIGZvciAoY29uc3QgY2VsbCBvZiBkYXRhQ2VsbHMocm93KSkge1xuICAgICAgICB3aGlsZSAoY2VsbHNbcm93SW5kZXhdW2NvbHVtbl0gIT09IHVuZGVmaW5lZCkgY29sdW1uKys7XG4gICAgICAgIGNvbnN0IHJvd1NwYW4gPSBNYXRoLm1heCgxLCBjZWxsLnJvd1NwYW4pO1xuICAgICAgICBjb25zdCBjb2xTcGFuID0gTWF0aC5tYXgoMSwgY2VsbC5jb2xTcGFuKTtcbiAgICAgICAgZm9yIChcbiAgICAgICAgICBsZXQgciA9IHJvd0luZGV4O1xuICAgICAgICAgIHIgPD0gTWF0aC5taW4ocm93cy5sZW5ndGggLSAxLCByb3dJbmRleCArIHJvd1NwYW4gLSAxKTtcbiAgICAgICAgICByKytcbiAgICAgICAgKVxuICAgICAgICAgIGZvciAobGV0IGMgPSBjb2x1bW47IGMgPCBjb2x1bW4gKyBjb2xTcGFuOyBjKyspIGNlbGxzW3JdW2NdID0gY2VsbDtcbiAgICAgICAgY29sdW1uICs9IGNvbFNwYW47XG4gICAgICB9XG4gICAgfSk7XG4gICAgcmV0dXJuIGNlbGxzO1xuICB9XG5cbiAgZnVuY3Rpb24gZGF0YUNlbGxzKHJvdzogRWxlbWVudCk6IEhUTUxUYWJsZUNlbGxFbGVtZW50W10ge1xuICAgIHJldHVybiBBcnJheS5mcm9tKFxuICAgICAgcm93LnF1ZXJ5U2VsZWN0b3JBbGw8SFRNTFRhYmxlQ2VsbEVsZW1lbnQ+KCc6c2NvcGUgPiB0ZCwgOnNjb3BlID4gdGgnKSxcbiAgICApLmZpbHRlcihjZWxsID0+ICFjZWxsLm1hdGNoZXMoY29udHJvbENlbGxTZWxlY3RvcikpO1xuICB9XG5cbiAgLyoqIEV4Y2x1ZGVzIHRoZSB6ZXJvLXN0YXRlIHJvdywgd2hpY2ggc3BhbnMgZXZlcnkgY29sdW1uLiAqL1xuICBmdW5jdGlvbiBpc0RhdGFSb3cocm93OiBFbGVtZW50KTogYm9vbGVhbiB7XG4gICAgcmV0dXJuIChcbiAgICAgIHJvdy5xdWVyeVNlbGVjdG9yKGZpbGxlclJvd1NlbGVjdG9yKSA9PT0gbnVsbCAmJlxuICAgICAgZGF0YUNlbGxzKHJvdykuZXZlcnkoY2VsbCA9PiBjZWxsLmNvbFNwYW4gPD0gMSlcbiAgICApO1xuICB9XG5cbiAgZnVuY3Rpb24gc2VsZWN0ZWRDb2x1bW5zKFxuICAgIGxheW91dHM6IHJlYWRvbmx5IExheW91dFtdLFxuICAgIGlzU2VsZWN0ZWQ6IFNlbGVjdGlvblRlc3QsXG4gICAgZW5kcG9pbnRzOiByZWFkb25seSAoTm9kZSB8IG51bGwgfCB1bmRlZmluZWQpW10sXG4gICk6IG51bWJlcltdIHtcbiAgICBjb25zdCBjb2x1bW5zID0gbmV3IFNldDxudW1iZXI+KCk7XG4gICAgZm9yIChjb25zdCB7IGhlYWRlciwgYm9keSB9IG9mIGxheW91dHMpXG4gICAgICBmb3IgKGNvbnN0IHJvdyBvZiBbLi4uaGVhZGVyLCAuLi5ib2R5XSlcbiAgICAgICAgcm93LmZvckVhY2goKGNlbGwsIGNvbHVtbikgPT4ge1xuICAgICAgICAgIGlmIChjZWxsICE9PSB1bmRlZmluZWQgJiYgaXNTZWxlY3RlZChjZWxsKSkgY29sdW1ucy5hZGQoY29sdW1uKTtcbiAgICAgICAgfSk7XG4gICAgY29uc3QgdG91Y2hlZCA9IFsuLi5jb2x1bW5zXS5zb3J0KChhLCBiKSA9PiBhIC0gYik7XG5cbiAgICAvLyBCb3RoIGVuZHMgaGF2ZSB0byBsYW5kIGluIGEgY2VsbCB0byBkZXNjcmliZSBhIHNwYW47IGFueXRoaW5nIGVsc2UgKGFcbiAgICAvLyBzZWxlY3QtYWxsLCBhbiBlbmRwb2ludCBvbiBhIHJvdyByYXRoZXIgdGhhbiBhIGNlbGwpIGtlZXBzIGV2ZXJ5IGNvbHVtbi5cbiAgICBjb25zdCBzcGFuID0gZW5kcG9pbnRzXG4gICAgICAubWFwKG5vZGUgPT4gKG5vZGUgPyBjb2x1bW5PZihsYXlvdXRzLCBub2RlKSA6IHVuZGVmaW5lZCkpXG4gICAgICAuZmlsdGVyKChjb2x1bW4pOiBjb2x1bW4gaXMgbnVtYmVyID0+IGNvbHVtbiAhPT0gdW5kZWZpbmVkKTtcbiAgICByZXR1cm4gc3Bhbi5sZW5ndGggPT09IGVuZHBvaW50cy5sZW5ndGggJiYgc3Bhbi5sZW5ndGggPiAxXG4gICAgICA/IHRvdWNoZWQuZmlsdGVyKFxuICAgICAgICAgIGNvbHVtbiA9PiBjb2x1bW4gPj0gTWF0aC5taW4oLi4uc3BhbikgJiYgY29sdW1uIDw9IE1hdGgubWF4KC4uLnNwYW4pLFxuICAgICAgICApXG4gICAgICA6IHRvdWNoZWQ7XG4gIH1cblxuICBmdW5jdGlvbiBjb2x1bW5PZihcbiAgICBsYXlvdXRzOiByZWFkb25seSBMYXlvdXRbXSxcbiAgICBub2RlOiBOb2RlLFxuICApOiBudW1iZXIgfCB1bmRlZmluZWQge1xuICAgIGZvciAoY29uc3QgeyBoZWFkZXIsIGJvZHkgfSBvZiBsYXlvdXRzKVxuICAgICAgZm9yIChjb25zdCByb3cgb2YgWy4uLmhlYWRlciwgLi4uYm9keV0pIHtcbiAgICAgICAgY29uc3QgY29sdW1uID0gcm93LmZpbmRJbmRleChjZWxsID0+IGNlbGw/LmNvbnRhaW5zKG5vZGUpID09PSB0cnVlKTtcbiAgICAgICAgaWYgKGNvbHVtbiA+PSAwKSByZXR1cm4gY29sdW1uO1xuICAgICAgfVxuICAgIHJldHVybiB1bmRlZmluZWQ7XG4gIH1cblxuICBmdW5jdGlvbiBzZWxlY3RlZENvdW50KHJvdzogUm93LCBpc1NlbGVjdGVkOiBTZWxlY3Rpb25UZXN0KTogbnVtYmVyIHtcbiAgICByZXR1cm4gcm93LmZpbHRlcihjZWxsID0+IGNlbGwgIT09IHVuZGVmaW5lZCAmJiBpc1NlbGVjdGVkKGNlbGwpKS5sZW5ndGg7XG4gIH1cblxuICBmdW5jdGlvbiBoZWFkZXJUZXh0KGNlbGw6IEVsZW1lbnQgfCB1bmRlZmluZWQpOiBzdHJpbmcge1xuICAgIHJldHVybiB0ZXh0KGNlbGw/LnF1ZXJ5U2VsZWN0b3IoaGVhZGVyTGFiZWxTZWxlY3RvcikgPz8gY2VsbCk7XG4gIH1cblxuICBmdW5jdGlvbiB0ZXh0KGNlbGw6IEVsZW1lbnQgfCB1bmRlZmluZWQgfCBudWxsKTogc3RyaW5nIHtcbiAgICByZXR1cm4gY2VsbCA/IHZpc2libGVUZXh0KGNlbGwpLnJlcGxhY2UoL1xccysvZywgJyAnKS50cmltKCkgOiAnJztcbiAgfVxuXG4gIC8qKlxuICAgKiBUZW1wbGF0ZSBpbmRlbnRhdGlvbiBsYW5kcyBpbiB0aGUgRE9NIGFzIG5ld2xpbmVzIGFuZCBydW5zIG9mIHNwYWNlcywgd2hpY2hcbiAgICogc3BsaXQgYSBzaW5nbGUgcm93IGFjcm9zcyBzZXZlcmFsIHNwcmVhZHNoZWV0IHJvd3MgdW5sZXNzIGNvbGxhcHNlZCBieSB0aGVcbiAgICogY2FsbGVyLiBDb21tZW50IGFuY2hvcnMgYW5kIHNjcmVlbi1yZWFkZXItb25seSBjb250ZW50IGFyZSBkcm9wcGVkLCBhbmRcbiAgICogc2libGluZyBub2RlcyBhcmUgc2VwYXJhdGVkIHNvIHRoYXQgYWRqYWNlbnQgZWxlbWVudHMgZG8gbm90IHJ1biB0b2dldGhlci5cbiAgICovXG4gIGZ1bmN0aW9uIHZpc2libGVUZXh0KG5vZGU6IE5vZGUpOiBzdHJpbmcge1xuICAgIGlmIChub2RlIGluc3RhbmNlb2YgVGV4dCkgcmV0dXJuIG5vZGUubm9kZVZhbHVlID8/ICcnO1xuICAgIGlmIChub2RlIGluc3RhbmNlb2YgRWxlbWVudClcbiAgICAgIHJldHVybiBub2RlLm1hdGNoZXMoYXNzaXN0aXZlVGV4dFNlbGVjdG9yKVxuICAgICAgICA/ICcnXG4gICAgICAgIDogQXJyYXkuZnJvbShub2RlLmNoaWxkTm9kZXMpLm1hcCh2aXNpYmxlVGV4dCkuam9pbignICcpO1xuICAgIHJldHVybiAnJztcbiAgfVxuXG4gIGZ1bmN0aW9uIGVzY2FwZUh0bWwodmFsdWU6IHN0cmluZyk6IHN0cmluZyB7XG4gICAgcmV0dXJuIHZhbHVlXG4gICAgICAucmVwbGFjZSgvJi9nLCAnJmFtcDsnKVxuICAgICAgLnJlcGxhY2UoLzwvZywgJyZsdDsnKVxuICAgICAgLnJlcGxhY2UoLz4vZywgJyZndDsnKTtcbiAgfVxufVxuIl19
|
|
@@ -1,116 +0,0 @@
|
|
|
1
|
-
export var TableCollapseHelpers;
|
|
2
|
-
(function (TableCollapseHelpers) {
|
|
3
|
-
function toggleRowCollapse(state, id) {
|
|
4
|
-
const currentSet = state.collapseState.defaultTo === 'collapsed'
|
|
5
|
-
? state.collapseState.expandedRows
|
|
6
|
-
: state.collapseState.collapsedRows;
|
|
7
|
-
const newSet = new Set(currentSet);
|
|
8
|
-
const alreadyInSet = newSet.has(id);
|
|
9
|
-
if (alreadyInSet) {
|
|
10
|
-
newSet.delete(id);
|
|
11
|
-
}
|
|
12
|
-
else {
|
|
13
|
-
newSet.add(id);
|
|
14
|
-
}
|
|
15
|
-
if (state.collapseState.defaultTo === 'collapsed') {
|
|
16
|
-
return {
|
|
17
|
-
...state,
|
|
18
|
-
collapseState: {
|
|
19
|
-
...state.collapseState,
|
|
20
|
-
expandedRows: newSet,
|
|
21
|
-
},
|
|
22
|
-
};
|
|
23
|
-
}
|
|
24
|
-
else {
|
|
25
|
-
return {
|
|
26
|
-
...state,
|
|
27
|
-
collapseState: {
|
|
28
|
-
...state.collapseState,
|
|
29
|
-
collapsedRows: newSet,
|
|
30
|
-
},
|
|
31
|
-
};
|
|
32
|
-
}
|
|
33
|
-
}
|
|
34
|
-
TableCollapseHelpers.toggleRowCollapse = toggleRowCollapse;
|
|
35
|
-
function toggleHeaderCollapse(state, id) {
|
|
36
|
-
const currentSet = state.collapseState.defaultTo === 'collapsed'
|
|
37
|
-
? state.collapseState.expandedHeaders
|
|
38
|
-
: state.collapseState.collapsedHeaders;
|
|
39
|
-
const newSet = new Set(currentSet);
|
|
40
|
-
const alreadyInSet = newSet.has(id);
|
|
41
|
-
if (alreadyInSet) {
|
|
42
|
-
newSet.delete(id);
|
|
43
|
-
}
|
|
44
|
-
else {
|
|
45
|
-
newSet.add(id);
|
|
46
|
-
}
|
|
47
|
-
if (state.collapseState.defaultTo === 'collapsed') {
|
|
48
|
-
return {
|
|
49
|
-
...state,
|
|
50
|
-
collapseState: {
|
|
51
|
-
...state.collapseState,
|
|
52
|
-
expandedHeaders: newSet,
|
|
53
|
-
},
|
|
54
|
-
};
|
|
55
|
-
}
|
|
56
|
-
else {
|
|
57
|
-
return {
|
|
58
|
-
...state,
|
|
59
|
-
collapseState: {
|
|
60
|
-
...state.collapseState,
|
|
61
|
-
collapsedHeaders: newSet,
|
|
62
|
-
},
|
|
63
|
-
};
|
|
64
|
-
}
|
|
65
|
-
}
|
|
66
|
-
TableCollapseHelpers.toggleHeaderCollapse = toggleHeaderCollapse;
|
|
67
|
-
function toggleAllCollapsed(state) {
|
|
68
|
-
if (isAllExpanded(state.collapseState)) {
|
|
69
|
-
return {
|
|
70
|
-
...state,
|
|
71
|
-
collapseState: {
|
|
72
|
-
defaultTo: 'collapsed',
|
|
73
|
-
expandedRows: new Set(),
|
|
74
|
-
expandedHeaders: new Set(),
|
|
75
|
-
},
|
|
76
|
-
};
|
|
77
|
-
}
|
|
78
|
-
else {
|
|
79
|
-
return {
|
|
80
|
-
...state,
|
|
81
|
-
collapseState: {
|
|
82
|
-
defaultTo: 'expanded',
|
|
83
|
-
collapsedRows: new Set(),
|
|
84
|
-
collapsedHeaders: new Set(),
|
|
85
|
-
},
|
|
86
|
-
};
|
|
87
|
-
}
|
|
88
|
-
}
|
|
89
|
-
TableCollapseHelpers.toggleAllCollapsed = toggleAllCollapsed;
|
|
90
|
-
function isAllExpanded(collapseState) {
|
|
91
|
-
return (collapseState.defaultTo === 'expanded' &&
|
|
92
|
-
collapseState.collapsedHeaders.size === 0 &&
|
|
93
|
-
collapseState.collapsedRows.size === 0);
|
|
94
|
-
}
|
|
95
|
-
TableCollapseHelpers.isAllExpanded = isAllExpanded;
|
|
96
|
-
function isRowCollapsed(state, id) {
|
|
97
|
-
if (state.collapseState.defaultTo === 'collapsed') {
|
|
98
|
-
const isExpanded = state.collapseState.expandedRows.has(id);
|
|
99
|
-
return !isExpanded;
|
|
100
|
-
}
|
|
101
|
-
return state.collapseState.collapsedRows.has(id);
|
|
102
|
-
}
|
|
103
|
-
TableCollapseHelpers.isRowCollapsed = isRowCollapsed;
|
|
104
|
-
function isHeaderCollapsed(state, id) {
|
|
105
|
-
if (!id) {
|
|
106
|
-
return false;
|
|
107
|
-
}
|
|
108
|
-
if (state.collapseState.defaultTo === 'collapsed') {
|
|
109
|
-
const isExpanded = state.collapseState.expandedHeaders.has(id);
|
|
110
|
-
return !isExpanded;
|
|
111
|
-
}
|
|
112
|
-
return state.collapseState.collapsedHeaders.has(id);
|
|
113
|
-
}
|
|
114
|
-
TableCollapseHelpers.isHeaderCollapsed = isHeaderCollapsed;
|
|
115
|
-
})(TableCollapseHelpers || (TableCollapseHelpers = {}));
|
|
116
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29sbGFwc2UtaGVscGVycy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL3Jpdi9zcmMvbGliL3RhYmxlL3RhYmxlL3N0YXRlLWhlbHBlcnMvY29sbGFwc2UtaGVscGVycy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFFQSxNQUFNLEtBQVcsb0JBQW9CLENBc0pwQztBQXRKRCxXQUFpQixvQkFBb0I7SUFDbkMsU0FBZ0IsaUJBQWlCLENBTS9CLEtBQXFDLEVBQ3JDLEVBQVc7UUFFWCxNQUFNLFVBQVUsR0FDZCxLQUFLLENBQUMsYUFBYSxDQUFDLFNBQVMsS0FBSyxXQUFXO1lBQzNDLENBQUMsQ0FBQyxLQUFLLENBQUMsYUFBYSxDQUFDLFlBQVk7WUFDbEMsQ0FBQyxDQUFDLEtBQUssQ0FBQyxhQUFhLENBQUMsYUFBYSxDQUFDO1FBRXhDLE1BQU0sTUFBTSxHQUFHLElBQUksR0FBRyxDQUFDLFVBQVUsQ0FBQyxDQUFDO1FBQ25DLE1BQU0sWUFBWSxHQUFZLE1BQU0sQ0FBQyxHQUFHLENBQUMsRUFBRSxDQUFDLENBQUM7UUFFN0MsSUFBSSxZQUFZLEVBQUU7WUFDaEIsTUFBTSxDQUFDLE1BQU0sQ0FBQyxFQUFFLENBQUMsQ0FBQztTQUNuQjthQUFNO1lBQ0wsTUFBTSxDQUFDLEdBQUcsQ0FBQyxFQUFFLENBQUMsQ0FBQztTQUNoQjtRQUVELElBQUksS0FBSyxDQUFDLGFBQWEsQ0FBQyxTQUFTLEtBQUssV0FBVyxFQUFFO1lBQ2pELE9BQU87Z0JBQ0wsR0FBRyxLQUFLO2dCQUNSLGFBQWEsRUFBRTtvQkFDYixHQUFHLEtBQUssQ0FBQyxhQUFhO29CQUN0QixZQUFZLEVBQUUsTUFBTTtpQkFDckI7YUFDRixDQUFDO1NBQ0g7YUFBTTtZQUNMLE9BQU87Z0JBQ0wsR0FBRyxLQUFLO2dCQUNSLGFBQWEsRUFBRTtvQkFDYixHQUFHLEtBQUssQ0FBQyxhQUFhO29CQUN0QixhQUFhLEVBQUUsTUFBTTtp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QUFLLENBQUMsYUFBYSxDQUFDLFNBQVMsS0FBSyxXQUFXLEVBQUU7WUFDakQsTUFBTSxVQUFVLEdBQVksS0FBSyxDQUFDLGFBQWEsQ0FBQyxlQUFlLENBQUMsR0FBRyxDQUFDLEVBQUUsQ0FBQyxDQUFDO1lBQ3hFLE9BQU8sQ0FBQyxVQUFVLENBQUM7U0FDcEI7UUFDRCxPQUFPLEtBQUssQ0FBQyxhQUFhLENBQUMsZ0JBQWdCLENBQUMsR0FBRyxDQUFDLEVBQUUsQ0FBQyxDQUFDO0lBQ3RELENBQUM7SUFkZSxzQ0FBaUIsb0JBY2hDLENBQUE7QUFDSCxDQUFDLEVBdEpnQixvQkFBb0IsS0FBcEIsb0JBQW9CLFFBc0pwQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IFJpdlRhYmxlIH0gZnJvbSAnLi4vc3RhdGUnO1xuXG5leHBvcnQgbmFtZXNwYWNlIFRhYmxlQ29sbGFwc2VIZWxwZXJzIHtcbiAgZXhwb3J0IGZ1bmN0aW9uIHRvZ2dsZVJvd0NvbGxhcHNlPFxuICAgIFIgZXh0ZW5kcyBSaXZUYWJsZS5Sb3csXG4gICAgQyBleHRlbmRzIFJpdlRhYmxlLkNvbHVtbixcbiAgICBGIGV4dGVuZHMgUml2VGFibGUuRmlsdGVycyxcbiAgICBHIGV4dGVuZHMgUml2VGFibGUuR3JvdXAsXG4gID4oXG4gICAgc3RhdGU6IFJpdlRhYmxlLkNvcmVTdGF0ZTxSLCBDLCBGLCBHPixcbiAgICBpZDogUlsnaWQnXSxcbiAgKTogUml2VGFibGUuQ29yZVN0YXRlPFIsIEMsIEYsIEc+IHtcbiAgICBjb25zdCBjdXJyZW50U2V0OiBTZXQ8UlsnaWQnXT4gPVxuICAgICAgc3RhdGUuY29sbGFwc2VTdGF0ZS5kZWZhdWx0VG8gPT09ICdjb2xsYXBzZWQnXG4gICAgICAgID8gc3RhdGUuY29sbGFwc2VTdGF0ZS5leHBhbmRlZFJvd3NcbiAgICAgICAgOiBzdGF0ZS5jb2xsYXBzZVN0YXRlLmNvbGxhcHNlZFJvd3M7XG5cbiAgICBjb25zdCBuZXdTZXQgPSBuZXcgU2V0KGN1cnJlbnRTZXQpO1xuICAgIGNvbnN0IGFscmVhZHlJblNldDogYm9vbGVhbiA9IG5ld1NldC5oYXMoaWQpO1xuXG4gICAgaWYgKGFscmVhZHlJblNldCkge1xuICAgICAgbmV3U2V0LmRlbGV0ZShpZCk7XG4gICAgfSBlbHNlIHtcbiAgICAgIG5ld1NldC5hZGQoaWQpO1xuICAgIH1cblxuICAgIGlmIChzdGF0ZS5jb2xsYXBzZVN0YXRlLmRlZmF1bHRUbyA9PT0gJ2NvbGxhcHNlZCcpIHtcbiAgICAgIHJldHVybiB7XG4gICAgICAgIC4uLnN0YXRlLFxuICAgICAgICBjb2xsYXBzZVN0YXRlOiB7XG4gICAgICAgICAgLi4uc3RhdGUuY29sbGFwc2VTdGF0ZSxcbiAgICAgICAgICBleHBhbmRlZFJvd3M6IG5ld1NldCxcbiAgICAgICAgfSxcbiAgICAgIH07XG4gICAgfSBlbHNlIHtcbiAgICAgIHJldHVybiB7XG4gICAgICAgIC4uLnN0YXRlLFxuICAgICAgICBjb2xsYXBzZVN0YXRlOiB7XG4gICAgICAgICAgLi4uc3RhdGUuY29sbGFwc2VTdGF0ZSxcbiAgICAgICAgICBjb2xsYXBzZWRSb3dzOiBuZXdTZXQsXG4gICAgICAgIH0sXG4gICAgICB9O1xuICAgIH1cbiAgfVxuXG4gIGV4cG9ydCBmdW5jdGlvbiB0b2dnbGVIZWFkZXJDb2xsYXBzZTxcbiAgICBSIGV4dGVuZHMgUml2VGFibGUuUm93LFxuICAgIEMgZXh0ZW5kcyBSaXZUYWJsZS5Db2x1bW4sXG4gICAgRiBleHRlbmRzIFJpdlRhYmxlLkZpbHRlcnMsXG4gICAgRyBleHRlbmRzIFJpdlRhYmxlLkdyb3VwLFxuICA+KFxuICAgIHN0YXRlOiBSaXZUYWJsZS5Db3JlU3RhdGU8UiwgQywgRiwgRz4sXG4gICAgaWQ6IHN0cmluZyxcbiAgKTogUml2VGFibGUuQ29yZVN0YXRlPFIsIEMsIEYsIEc+IHtcbiAgICBjb25zdCBjdXJyZW50U2V0OiBTZXQ8c3RyaW5nPiA9XG4gICAgICBzdGF0ZS5jb2xsYXBzZVN0YXRlLmRlZmF1bHRUbyA9PT0gJ2NvbGxhcHNlZCdcbiAgICAgICAgPyBzdGF0ZS5jb2xsYXBzZVN0YXRlLmV4cGFuZGVkSGVhZGVyc1xuICAgICAgICA6IHN0YXRlLmNvbGxhcHNlU3RhdGUuY29sbGFwc2VkSGVhZGVycztcblxuICAgIGNvbnN0IG5ld1NldCA9IG5ldyBTZXQoY3VycmVudFNldCk7XG4gICAgY29uc3QgYWxyZWFkeUluU2V0OiBib29sZWFuID0gbmV3U2V0LmhhcyhpZCk7XG5cbiAgICBpZiAoYWxyZWFkeUluU2V0KSB7XG4gICAgICBuZXdTZXQuZGVsZXRlKGlkKTtcbiAgICB9IGVsc2Uge1xuICAgICAgbmV3U2V0LmFkZChpZCk7XG4gICAgfVxuXG4gICAgaWYgKHN0YXRlLmNvbGxhcHNlU3RhdGUuZGVmYXVsdFRvID09PSAnY29sbGFwc2VkJykge1xuICAgICAgcmV0dXJuIHtcbiAgICAgICAgLi4uc3RhdGUsXG4gICAgICAgIGNvbGxhcHNlU3RhdGU6IHtcbiAgICAgICAgICAuLi5zdGF0ZS5jb2xsYXBzZVN0YXRlLFxuICAgICAgICAgIGV4cGFuZGVkSGVhZGVyczogbmV3U2V0LFxuICAgICAgICB9LFxuICAgICAgfTtcbiAgICB9IGVsc2Uge1xuICAgICAgcmV0dXJuIHtcbiAgICAgICAgLi4uc3RhdGUsXG4gICAgICAgIGNvbGxhcHNlU3RhdGU6IHtcbiAgICAgICAgICAuLi5zdGF0ZS5jb2xsYXBzZVN0YXRlLFxuICAgICAgICAgIGNvbGxhcHNlZEhlYWRlcnM6IG5ld1NldCxcbiAgICAgICAgfSxcbiAgICAgIH07XG4gICAgfVxuICB9XG5cbiAgZXhwb3J0IGZ1bmN0aW9uIHRvZ2dsZUFsbENvbGxhcHNlZDxcbiAgICBSIGV4dGVuZHMgUml2VGFibGUuUm93LFxuICAgIEMgZXh0ZW5kcyBSaXZUYWJsZS5Db2x1bW4sXG4gICAgRiBleHRlbmRzIFJpdlRhYmxlLkZpbHRlcnMsXG4gICAgRyBleHRlbmRzIFJpdlRhYmxlLkdyb3VwLFxuICA+KHN0YXRlOiBSaXZUYWJsZS5Db3JlU3RhdGU8UiwgQywgRiwgRz4pOiBSaXZUYWJsZS5Db3JlU3RhdGU8UiwgQywgRiwgRz4ge1xuICAgIGlmIChpc0FsbEV4cGFuZGVkKHN0YXRlLmNvbGxhcHNlU3RhdGUpKSB7XG4gICAgICByZXR1cm4ge1xuICAgICAgICAuLi5zdGF0ZSxcbiAgICAgICAgY29sbGFwc2VTdGF0ZToge1xuICAgICAgICAgIGRlZmF1bHRUbzogJ2NvbGxhcHNlZCcsXG4gICAgICAgICAgZXhwYW5kZWRSb3dzOiBuZXcgU2V0KCksXG4gICAgICAgICAgZXhwYW5kZWRIZWFkZXJzOiBuZXcgU2V0KCksXG4gICAgICAgIH0sXG4gICAgICB9O1xuICAgIH0gZWxzZSB7XG4gICAgICByZXR1cm4ge1xuICAgICAgICAuLi5zdGF0ZSxcbiAgICAgICAgY29sbGFwc2VTdGF0ZToge1xuICAgICAgICAgIGRlZmF1bHRUbzogJ2V4cGFuZGVkJyxcbiAgICAgICAgICBjb2xsYXBzZWRSb3dzOiBuZXcgU2V0KCksXG4gICAgICAgICAgY29sbGFwc2VkSGVhZGVyczogbmV3IFNldCgpLFxuICAgICAgICB9LFxuICAgICAgfTtcbiAgICB9XG4gIH1cblxuICBleHBvcnQgZnVuY3Rpb24gaXNBbGxFeHBhbmRlZDxSIGV4dGVuZHMgUml2VGFibGUuUm93PihcbiAgICBjb2xsYXBzZVN0YXRlOiBSaXZUYWJsZS5Db2xsYXBzZVN0YXRlPFI+LFxuICApOiBib29sZWFuIHtcbiAgICByZXR1cm4gKFxuICAgICAgY29sbGFwc2VTdGF0ZS5kZWZhdWx0VG8gPT09ICdleHBhbmRlZCcgJiZcbiAgICAgIGNvbGxhcHNlU3RhdGUuY29sbGFwc2VkSGVhZGVycy5zaXplID09PSAwICYmXG4gICAgICBjb2xsYXBzZVN0YXRlLmNvbGxhcHNlZFJvd3Muc2l6ZSA9PT0gMFxuICAgICk7XG4gIH1cblxuICBleHBvcnQgZnVuY3Rpb24gaXNSb3dDb2xsYXBzZWQ8XG4gICAgUiBleHRlbmRzIFJpdlRhYmxlLlJvdyxcbiAgICBDIGV4dGVuZHMgUml2VGFibGUuQ29sdW1uLFxuICAgIEYgZXh0ZW5kcyBSaXZUYWJsZS5GaWx0ZXJzLFxuICAgIEcgZXh0ZW5kcyBSaXZUYWJsZS5Hcm91cCxcbiAgPihzdGF0ZTogUml2VGFibGUuQ29yZVN0YXRlPFIsIEMsIEYsIEc+LCBpZDogUlsnaWQnXSk6IGJvb2xlYW4ge1xuICAgIGlmIChzdGF0ZS5jb2xsYXBzZVN0YXRlLmRlZmF1bHRUbyA9PT0gJ2NvbGxhcHNlZCcpIHtcbiAgICAgIGNvbnN0IGlzRXhwYW5kZWQ6IGJvb2xlYW4gPSBzdGF0ZS5jb2xsYXBzZVN0YXRlLmV4cGFuZGVkUm93cy5oYXMoaWQpO1xuICAgICAgcmV0dXJuICFpc0V4cGFuZGVkO1xuICAgIH1cbiAgICByZXR1cm4gc3RhdGUuY29sbGFwc2VTdGF0ZS5jb2xsYXBzZWRSb3dzLmhhcyhpZCk7XG4gIH1cblxuICBleHBvcnQgZnVuY3Rpb24gaXNIZWFkZXJDb2xsYXBzZWQ8XG4gICAgUiBleHRlbmRzIFJpdlRhYmxlLlJvdyxcbiAgICBDIGV4dGVuZHMgUml2VGFibGUuQ29sdW1uLFxuICAgIEYgZXh0ZW5kcyBSaXZUYWJsZS5GaWx0ZXJzLFxuICAgIEcgZXh0ZW5kcyBSaXZUYWJsZS5Hcm91cCxcbiAgPihzdGF0ZTogUml2VGFibGUuQ29yZVN0YXRlPFIsIEMsIEYsIEc+LCBpZDogc3RyaW5nIHwgbnVsbCk6IGJvb2xlYW4ge1xuICAgIGlmICghaWQpIHtcbiAgICAgIHJldHVybiBmYWxzZTtcbiAgICB9XG4gICAgaWYgKHN0YXRlLmNvbGxhcHNlU3RhdGUuZGVmYXVsdFRvID09PSAnY29sbGFwc2VkJykge1xuICAgICAgY29uc3QgaXNFeHBhbmRlZDogYm9vbGVhbiA9IHN0YXRlLmNvbGxhcHNlU3RhdGUuZXhwYW5kZWRIZWFkZXJzLmhhcyhpZCk7XG4gICAgICByZXR1cm4gIWlzRXhwYW5kZWQ7XG4gICAgfVxuICAgIHJldHVybiBzdGF0ZS5jb2xsYXBzZVN0YXRlLmNvbGxhcHNlZEhlYWRlcnMuaGFzKGlkKTtcbiAgfVxufVxuIl19
|