@rivet-health/design-system 40.44.3 → 41.0.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/fesm2022/rivet-health-design-system.mjs +23103 -18772
- package/fesm2022/rivet-health-design-system.mjs.map +1 -1
- package/package.json +8 -9
- package/types/rivet-health-design-system.d.ts +6566 -0
- package/esm2022/lib/accessibility/sr-only/sr-only.component.mjs +0 -18
- package/esm2022/lib/download/download.service.mjs +0 -47
- package/esm2022/lib/format/pipes/common.mjs +0 -24
- package/esm2022/lib/format/pipes/date.pipe.mjs +0 -20
- package/esm2022/lib/format/pipes/days.pipe.mjs +0 -20
- package/esm2022/lib/format/pipes/dollars.pipe.mjs +0 -19
- package/esm2022/lib/format/pipes/number.pipe.mjs +0 -19
- package/esm2022/lib/format/pipes/percentage.pipe.mjs +0 -19
- package/esm2022/lib/format/pipes/sentence-case.pipe.mjs +0 -61
- package/esm2022/lib/format/pipes/small-currency.pipe.mjs +0 -24
- package/esm2022/lib/format/pipes/small-number.pipe.mjs +0 -29
- package/esm2022/lib/format/svg-text-truncate/svg-text-truncate.directive.mjs +0 -62
- package/esm2022/lib/format/truncate/truncate.component.mjs +0 -51
- package/esm2022/lib/icon/dom-cache.mjs +0 -32
- package/esm2022/lib/icon/icon.component.mjs +0 -86
- package/esm2022/lib/icon/icons.mjs +0 -271
- package/esm2022/lib/input/alphabetic-field/alphabetic-field.component.mjs +0 -42
- package/esm2022/lib/input/auto-focus/auto-focus.directive.mjs +0 -48
- package/esm2022/lib/input/button/button.component.mjs +0 -139
- package/esm2022/lib/input/button-group/button-group.component.mjs +0 -39
- package/esm2022/lib/input/calendar/calendar.component.mjs +0 -318
- package/esm2022/lib/input/card-checkbox/card-checkbox.component.mjs +0 -13
- package/esm2022/lib/input/checkbox/checkbox.component.mjs +0 -84
- package/esm2022/lib/input/currency-field/currency-field.component.mjs +0 -26
- package/esm2022/lib/input/date/date.component.mjs +0 -279
- package/esm2022/lib/input/date-range/date-range.component.mjs +0 -477
- package/esm2022/lib/input/filter-chip/filter-chip.component.mjs +0 -47
- package/esm2022/lib/input/filter-dropdown/filter-dropdown.component.mjs +0 -89
- package/esm2022/lib/input/input-label/input-label.component.mjs +0 -38
- package/esm2022/lib/input/mentions-input/mentions-input.component.mjs +0 -745
- package/esm2022/lib/input/number-field/number-field.component.mjs +0 -125
- package/esm2022/lib/input/percentage-field/percentage-field.component.mjs +0 -20
- package/esm2022/lib/input/phone-field/phone-field.component.mjs +0 -74
- package/esm2022/lib/input/radio/radio.component.mjs +0 -58
- package/esm2022/lib/input/search/search.component.mjs +0 -26
- package/esm2022/lib/input/search-select/search-select.component.mjs +0 -189
- package/esm2022/lib/input/select/select/select.component.mjs +0 -178
- package/esm2022/lib/input/select/select-node/select-node.component.mjs +0 -60
- package/esm2022/lib/input/select/state.mjs +0 -882
- package/esm2022/lib/input/simple-select/option-group.pipe.mjs +0 -19
- package/esm2022/lib/input/simple-select/simple-select.component.mjs +0 -178
- package/esm2022/lib/input/switch-checkbox/switch-checkbox.component.mjs +0 -33
- package/esm2022/lib/input/text-field/text-field.component.mjs +0 -115
- package/esm2022/lib/input/textarea-field/textarea-field.component.mjs +0 -21
- package/esm2022/lib/input/validation-message/validation-message.component.mjs +0 -17
- package/esm2022/lib/layout/card/card-actions.component.mjs +0 -72
- package/esm2022/lib/layout/card/card-content.component.mjs +0 -64
- package/esm2022/lib/layout/card/card-header.component.mjs +0 -201
- package/esm2022/lib/layout/card/card-link.component.mjs +0 -94
- package/esm2022/lib/layout/card/card-media.component.mjs +0 -70
- package/esm2022/lib/layout/card/card.component.mjs +0 -291
- package/esm2022/lib/layout/setting-row/setting-row.component.mjs +0 -111
- package/esm2022/lib/load/loading/loading.component.mjs +0 -43
- package/esm2022/lib/load/loading-cover/loading-cover.component.mjs +0 -25
- package/esm2022/lib/navigation/editable-heading/editable-heading.component.mjs +0 -243
- package/esm2022/lib/navigation/link/link.component.mjs +0 -48
- package/esm2022/lib/navigation/page-header/page-header.component.mjs +0 -68
- package/esm2022/lib/navigation/simple-tabs/simple-tab/simple-tab.component.mjs +0 -43
- package/esm2022/lib/navigation/simple-tabs/simple-tabs/simple-tabs.component.mjs +0 -11
- package/esm2022/lib/navigation/tabs/tab/tab.component.mjs +0 -16
- package/esm2022/lib/navigation/tabs/tabs/tabs.component.mjs +0 -11
- package/esm2022/lib/navigation/views/all-views-modal/all-views-modal.component.mjs +0 -43
- package/esm2022/lib/navigation/views/edit-view/edit-view.component.mjs +0 -118
- package/esm2022/lib/navigation/views/permission-picker/permission-picker.component.mjs +0 -151
- package/esm2022/lib/navigation/views/state.mjs +0 -456
- package/esm2022/lib/navigation/views/view-menu/view-menu.component.mjs +0 -30
- package/esm2022/lib/navigation/views/views/views.component.mjs +0 -90
- package/esm2022/lib/notification/badge/badge.component.mjs +0 -45
- package/esm2022/lib/notification/banner/banner-action.component.mjs +0 -48
- package/esm2022/lib/notification/banner/banner.component.mjs +0 -61
- package/esm2022/lib/notification/map-indicator/map-indicator.component.mjs +0 -50
- package/esm2022/lib/notification/map-indicator/map-indicators.mjs +0 -15
- package/esm2022/lib/notification/notification-badge/notification-badge.component.mjs +0 -26
- package/esm2022/lib/overlay/callout/callout.component.mjs +0 -130
- package/esm2022/lib/overlay/callout/callout.helpers.mjs +0 -113
- package/esm2022/lib/overlay/callout/help/help.component.mjs +0 -23
- package/esm2022/lib/overlay/callout/lock-scroll.directive.mjs +0 -69
- package/esm2022/lib/overlay/callout/menu/menu-item/menu-item.component.mjs +0 -71
- package/esm2022/lib/overlay/callout/menu/menu.component.mjs +0 -38
- package/esm2022/lib/overlay/callout/select-callout-defaults.mjs +0 -13
- package/esm2022/lib/overlay/callout/tooltip/locked-tooltip.directive.mjs +0 -30
- package/esm2022/lib/overlay/callout/tooltip/tooltip.component.mjs +0 -57
- package/esm2022/lib/overlay/callout/tooltip/tooltip.directive.mjs +0 -138
- package/esm2022/lib/overlay/modal/dialog/dialog.component.mjs +0 -47
- package/esm2022/lib/overlay/modal/dialog-stack.service.mjs +0 -41
- package/esm2022/lib/overlay/modal/form-dialog/form-dialog.component.mjs +0 -146
- package/esm2022/lib/overlay/modal/modal.component.mjs +0 -31
- package/esm2022/lib/overlay/modal/side-sheet/side-sheet.component.mjs +0 -30
- package/esm2022/lib/overlay/overlay-outlet.component.mjs +0 -98
- package/esm2022/lib/overlay/overlay.directive.mjs +0 -25
- package/esm2022/lib/overlay/overlay.service.mjs +0 -35
- package/esm2022/lib/overlay/toast/toast-action.component.mjs +0 -11
- package/esm2022/lib/overlay/toast/toast.component.mjs +0 -41
- package/esm2022/lib/riv.module.mjs +0 -580
- package/esm2022/lib/size/size.directive.mjs +0 -33
- package/esm2022/lib/table/simple-table/coordinate-helper.mjs +0 -61
- package/esm2022/lib/table/simple-table/simple-table-cell.component.mjs +0 -36
- package/esm2022/lib/table/simple-table/simple-table-header-cell.component.mjs +0 -37
- package/esm2022/lib/table/simple-table/simple-table-row.component.mjs +0 -19
- package/esm2022/lib/table/simple-table/simple-table.component.mjs +0 -104
- package/esm2022/lib/table/table/clipboard.mjs +0 -182
- package/esm2022/lib/table/table/state-helpers/collapse-helpers.mjs +0 -116
- package/esm2022/lib/table/table/state-helpers/column-helpers.mjs +0 -383
- package/esm2022/lib/table/table/state-helpers/display-helpers.mjs +0 -50
- package/esm2022/lib/table/table/state-helpers/nesting-helpers.mjs +0 -123
- package/esm2022/lib/table/table/state-helpers/order-helpers.mjs +0 -164
- package/esm2022/lib/table/table/state-helpers/pagination-helpers.mjs +0 -139
- package/esm2022/lib/table/table/state-helpers/result-helpers.mjs +0 -70
- package/esm2022/lib/table/table/state-helpers/search-helpers.mjs +0 -72
- package/esm2022/lib/table/table/state-helpers/selection-helpers.mjs +0 -180
- package/esm2022/lib/table/table/state.mjs +0 -1035
- package/esm2022/lib/table/table/table/table.component.mjs +0 -367
- package/esm2022/lib/table/table/table-collapse-all/table-collapse-all.component.mjs +0 -25
- package/esm2022/lib/table/table/table-column-settings/table-column-settings-side-sheet.component.mjs +0 -227
- package/esm2022/lib/table/table/table-column-settings/table-column-settings.component.mjs +0 -134
- package/esm2022/lib/table/table/table-csv-export/table-csv-export.component.mjs +0 -35
- package/esm2022/lib/table/table/table-header-resize-handle/table-header-resize-handle.component.mjs +0 -28
- package/esm2022/lib/table/table/table-search/table-search.component.mjs +0 -71
- package/esm2022/lib/table/table/table-search-columns/table-search-columns.component.mjs +0 -57
- package/esm2022/lib/util/local-storage.mjs +0 -17
- package/esm2022/lib/visibility/visibility.directive.mjs +0 -34
- package/esm2022/lib/visualization/chart/chart-scaling.mjs +0 -380
- package/esm2022/lib/visualization/chart/chart.component.mjs +0 -626
- package/esm2022/lib/visualization/chart/chart.mjs +0 -3768
- package/esm2022/lib/visualization/data-table/data-table-cell.component.mjs +0 -22
- package/esm2022/lib/visualization/data-table/data-table-header-cell.component.mjs +0 -11
- package/esm2022/lib/visualization/data-table/data-table-row.component.mjs +0 -19
- package/esm2022/lib/visualization/data-table/data-table.component.mjs +0 -17
- package/esm2022/lib/visualization/donut/donut.component.mjs +0 -54
- package/esm2022/lib/visualization/funnel-chart/funnel-chart.component.mjs +0 -73
- package/esm2022/lib/visualization/funnel-chart/funnel-chart.helpers.mjs +0 -33
- package/esm2022/lib/visualization/highlight/highlight.component.mjs +0 -24
- package/esm2022/lib/visualization/highlight/highlight.helpers.mjs +0 -20
- package/esm2022/lib/visualization/intervals.mjs +0 -63
- package/esm2022/lib/visualization/issue/issue.component.mjs +0 -30
- package/esm2022/lib/visualization/legend-item/legend-item.component.mjs +0 -49
- package/esm2022/lib/visualization/metric/metric.component.mjs +0 -52
- package/esm2022/lib/visualization/mini-pie/mini-pie.component.mjs +0 -51
- package/esm2022/lib/visualization/progress/progress.component.mjs +0 -24
- package/esm2022/lib/visualization/stacked-column/stacked-column.component.mjs +0 -377
- package/esm2022/lib/visualization/stacked-column/stacked-column.helpers.mjs +0 -18
- package/esm2022/lib/visualization/stacked-row/stacked-row.component.mjs +0 -270
- package/esm2022/lib/visualization/stacked-row/stacked-row.helpers.mjs +0 -74
- package/esm2022/lib/visualization/time-series/time-series.component.mjs +0 -374
- package/esm2022/lib/visualization/time-series/time-series.helpers.mjs +0 -15
- package/esm2022/lib/visualization/trend/trend.component.mjs +0 -51
- package/esm2022/lib/visualization/zero-state/zero-state.component.mjs +0 -22
- package/esm2022/public-api.mjs +0 -118
- package/esm2022/rivet-health-design-system.mjs +0 -5
- package/index.d.ts +0 -5
- package/lib/accessibility/sr-only/sr-only.component.d.ts +0 -12
- package/lib/download/download.service.d.ts +0 -9
- package/lib/format/pipes/common.d.ts +0 -6
- package/lib/format/pipes/date.pipe.d.ts +0 -8
- package/lib/format/pipes/days.pipe.d.ts +0 -8
- package/lib/format/pipes/dollars.pipe.d.ts +0 -9
- package/lib/format/pipes/number.pipe.d.ts +0 -8
- package/lib/format/pipes/percentage.pipe.d.ts +0 -8
- package/lib/format/pipes/sentence-case.pipe.d.ts +0 -8
- package/lib/format/pipes/small-currency.pipe.d.ts +0 -8
- package/lib/format/pipes/small-number.pipe.d.ts +0 -8
- package/lib/format/svg-text-truncate/svg-text-truncate.directive.d.ts +0 -14
- package/lib/format/truncate/truncate.component.d.ts +0 -17
- package/lib/icon/dom-cache.d.ts +0 -13
- package/lib/icon/icon.component.d.ts +0 -27
- package/lib/icon/icons.d.ts +0 -137
- package/lib/input/alphabetic-field/alphabetic-field.component.d.ts +0 -14
- package/lib/input/auto-focus/auto-focus.directive.d.ts +0 -21
- package/lib/input/button/button.component.d.ts +0 -37
- package/lib/input/button-group/button-group.component.d.ts +0 -11
- package/lib/input/calendar/calendar.component.d.ts +0 -67
- package/lib/input/card-checkbox/card-checkbox.component.d.ts +0 -6
- package/lib/input/checkbox/checkbox.component.d.ts +0 -32
- package/lib/input/currency-field/currency-field.component.d.ts +0 -9
- package/lib/input/date/date.component.d.ts +0 -62
- package/lib/input/date-range/date-range.component.d.ts +0 -97
- package/lib/input/filter-chip/filter-chip.component.d.ts +0 -13
- package/lib/input/filter-dropdown/filter-dropdown.component.d.ts +0 -30
- package/lib/input/input-label/input-label.component.d.ts +0 -17
- package/lib/input/mentions-input/mentions-input.component.d.ts +0 -93
- package/lib/input/number-field/number-field.component.d.ts +0 -36
- package/lib/input/percentage-field/percentage-field.component.d.ts +0 -7
- package/lib/input/phone-field/phone-field.component.d.ts +0 -17
- package/lib/input/radio/radio.component.d.ts +0 -28
- package/lib/input/search/search.component.d.ts +0 -10
- package/lib/input/search-select/search-select.component.d.ts +0 -62
- package/lib/input/select/select/select.component.d.ts +0 -63
- package/lib/input/select/select-node/select-node.component.d.ts +0 -30
- package/lib/input/select/state.d.ts +0 -250
- package/lib/input/simple-select/option-group.pipe.d.ts +0 -8
- package/lib/input/simple-select/simple-select.component.d.ts +0 -63
- package/lib/input/switch-checkbox/switch-checkbox.component.d.ts +0 -18
- package/lib/input/text-field/text-field.component.d.ts +0 -38
- package/lib/input/textarea-field/textarea-field.component.d.ts +0 -8
- package/lib/input/validation-message/validation-message.component.d.ts +0 -6
- package/lib/layout/card/card-actions.component.d.ts +0 -38
- package/lib/layout/card/card-content.component.d.ts +0 -33
- package/lib/layout/card/card-header.component.d.ts +0 -132
- package/lib/layout/card/card-link.component.d.ts +0 -54
- package/lib/layout/card/card-media.component.d.ts +0 -43
- package/lib/layout/card/card.component.d.ts +0 -215
- package/lib/layout/setting-row/setting-row.component.d.ts +0 -72
- package/lib/load/loading/loading.component.d.ts +0 -17
- package/lib/load/loading-cover/loading-cover.component.d.ts +0 -10
- package/lib/navigation/editable-heading/editable-heading.component.d.ts +0 -118
- package/lib/navigation/link/link.component.d.ts +0 -19
- package/lib/navigation/page-header/page-header.component.d.ts +0 -50
- package/lib/navigation/simple-tabs/simple-tab/simple-tab.component.d.ts +0 -11
- package/lib/navigation/simple-tabs/simple-tabs/simple-tabs.component.d.ts +0 -5
- package/lib/navigation/tabs/tab/tab.component.d.ts +0 -6
- package/lib/navigation/tabs/tabs/tabs.component.d.ts +0 -5
- package/lib/navigation/views/all-views-modal/all-views-modal.component.d.ts +0 -14
- package/lib/navigation/views/edit-view/edit-view.component.d.ts +0 -31
- package/lib/navigation/views/permission-picker/permission-picker.component.d.ts +0 -37
- package/lib/navigation/views/state.d.ts +0 -175
- package/lib/navigation/views/view-menu/view-menu.component.d.ts +0 -13
- package/lib/navigation/views/views/views.component.d.ts +0 -25
- package/lib/notification/badge/badge.component.d.ts +0 -14
- package/lib/notification/banner/banner-action.component.d.ts +0 -15
- package/lib/notification/banner/banner.component.d.ts +0 -25
- package/lib/notification/map-indicator/map-indicator.component.d.ts +0 -24
- package/lib/notification/map-indicator/map-indicators.d.ts +0 -9
- package/lib/notification/notification-badge/notification-badge.component.d.ts +0 -11
- package/lib/overlay/callout/callout.component.d.ts +0 -36
- package/lib/overlay/callout/callout.helpers.d.ts +0 -16
- package/lib/overlay/callout/help/help.component.d.ts +0 -11
- package/lib/overlay/callout/lock-scroll.directive.d.ts +0 -22
- package/lib/overlay/callout/menu/menu-item/menu-item.component.d.ts +0 -27
- package/lib/overlay/callout/menu/menu.component.d.ts +0 -17
- package/lib/overlay/callout/select-callout-defaults.d.ts +0 -5
- package/lib/overlay/callout/tooltip/locked-tooltip.directive.d.ts +0 -14
- package/lib/overlay/callout/tooltip/tooltip.component.d.ts +0 -26
- package/lib/overlay/callout/tooltip/tooltip.directive.d.ts +0 -48
- package/lib/overlay/modal/dialog/dialog.component.d.ts +0 -19
- package/lib/overlay/modal/dialog-stack.service.d.ts +0 -23
- package/lib/overlay/modal/form-dialog/form-dialog.component.d.ts +0 -63
- package/lib/overlay/modal/modal.component.d.ts +0 -11
- package/lib/overlay/modal/side-sheet/side-sheet.component.d.ts +0 -13
- package/lib/overlay/overlay-outlet.component.d.ts +0 -19
- package/lib/overlay/overlay.directive.d.ts +0 -13
- package/lib/overlay/overlay.service.d.ts +0 -14
- package/lib/overlay/toast/toast-action.component.d.ts +0 -5
- package/lib/overlay/toast/toast.component.d.ts +0 -17
- package/lib/riv.module.d.ts +0 -122
- package/lib/size/size.directive.d.ts +0 -12
- package/lib/table/simple-table/coordinate-helper.d.ts +0 -13
- package/lib/table/simple-table/simple-table-cell.component.d.ts +0 -19
- package/lib/table/simple-table/simple-table-header-cell.component.d.ts +0 -20
- package/lib/table/simple-table/simple-table-row.component.d.ts +0 -6
- package/lib/table/simple-table/simple-table.component.d.ts +0 -11
- package/lib/table/table/clipboard.d.ts +0 -38
- package/lib/table/table/state-helpers/collapse-helpers.d.ts +0 -9
- package/lib/table/table/state-helpers/column-helpers.d.ts +0 -29
- package/lib/table/table/state-helpers/display-helpers.d.ts +0 -5
- package/lib/table/table/state-helpers/nesting-helpers.d.ts +0 -13
- package/lib/table/table/state-helpers/order-helpers.d.ts +0 -13
- package/lib/table/table/state-helpers/pagination-helpers.d.ts +0 -12
- package/lib/table/table/state-helpers/result-helpers.d.ts +0 -10
- package/lib/table/table/state-helpers/search-helpers.d.ts +0 -17
- package/lib/table/table/state-helpers/selection-helpers.d.ts +0 -13
- package/lib/table/table/state.d.ts +0 -512
- package/lib/table/table/table/table.component.d.ts +0 -88
- package/lib/table/table/table-collapse-all/table-collapse-all.component.d.ts +0 -10
- package/lib/table/table/table-column-settings/table-column-settings-side-sheet.component.d.ts +0 -52
- package/lib/table/table/table-column-settings/table-column-settings.component.d.ts +0 -37
- package/lib/table/table/table-csv-export/table-csv-export.component.d.ts +0 -14
- package/lib/table/table/table-header-resize-handle/table-header-resize-handle.component.d.ts +0 -11
- package/lib/table/table/table-search/table-search.component.d.ts +0 -21
- package/lib/table/table/table-search-columns/table-search-columns.component.d.ts +0 -23
- package/lib/util/local-storage.d.ts +0 -14
- package/lib/visibility/visibility.directive.d.ts +0 -12
- package/lib/visualization/chart/chart-scaling.d.ts +0 -100
- package/lib/visualization/chart/chart.component.d.ts +0 -116
- package/lib/visualization/chart/chart.d.ts +0 -354
- package/lib/visualization/data-table/data-table-cell.component.d.ts +0 -11
- package/lib/visualization/data-table/data-table-header-cell.component.d.ts +0 -5
- package/lib/visualization/data-table/data-table-row.component.d.ts +0 -6
- package/lib/visualization/data-table/data-table.component.d.ts +0 -6
- package/lib/visualization/donut/donut.component.d.ts +0 -22
- package/lib/visualization/funnel-chart/funnel-chart.component.d.ts +0 -30
- package/lib/visualization/funnel-chart/funnel-chart.helpers.d.ts +0 -4
- package/lib/visualization/highlight/highlight.component.d.ts +0 -15
- package/lib/visualization/highlight/highlight.helpers.d.ts +0 -2
- package/lib/visualization/intervals.d.ts +0 -8
- package/lib/visualization/issue/issue.component.d.ts +0 -10
- package/lib/visualization/legend-item/legend-item.component.d.ts +0 -22
- package/lib/visualization/metric/metric.component.d.ts +0 -20
- package/lib/visualization/mini-pie/mini-pie.component.d.ts +0 -17
- package/lib/visualization/progress/progress.component.d.ts +0 -8
- package/lib/visualization/stacked-column/stacked-column.component.d.ts +0 -129
- package/lib/visualization/stacked-column/stacked-column.helpers.d.ts +0 -3
- package/lib/visualization/stacked-row/stacked-row.component.d.ts +0 -109
- package/lib/visualization/stacked-row/stacked-row.helpers.d.ts +0 -53
- package/lib/visualization/time-series/time-series.component.d.ts +0 -126
- package/lib/visualization/time-series/time-series.helpers.d.ts +0 -34
- package/lib/visualization/trend/trend.component.d.ts +0 -13
- package/lib/visualization/zero-state/zero-state.component.d.ts +0 -9
- package/public-api.d.ts +0 -118
|
@@ -1,291 +0,0 @@
|
|
|
1
|
-
import { ChangeDetectionStrategy, Component, EventEmitter, HostBinding, Input, Output, } from '@angular/core';
|
|
2
|
-
import { uniqueId } from 'lodash';
|
|
3
|
-
import * as i0 from "@angular/core";
|
|
4
|
-
import * as i1 from "@angular/common";
|
|
5
|
-
/**
|
|
6
|
-
* Surface container that groups related content into a single scannable unit.
|
|
7
|
-
*
|
|
8
|
-
* A card is composed, not configured: project the parts you need, in the order
|
|
9
|
-
* you need them. Every part is optional, so a bare `riv-card` is a valid
|
|
10
|
-
* surface on its own.
|
|
11
|
-
*
|
|
12
|
-
* - `riv-card-media` — leading image or video
|
|
13
|
-
* - `riv-card-header` — heading, subheading, leading adornment, actions
|
|
14
|
-
* - `riv-card-content` — body
|
|
15
|
-
* - `riv-card-actions` — trailing control row
|
|
16
|
-
*
|
|
17
|
-
* ```html
|
|
18
|
-
* <riv-card>
|
|
19
|
-
* <riv-card-header [heading]="workbook.name" [subheading]="payerName">
|
|
20
|
-
* <riv-menu actions>...</riv-menu>
|
|
21
|
-
* </riv-card-header>
|
|
22
|
-
* <riv-card-content>
|
|
23
|
-
* Last edit: {{ workbook.modified | rivDate }}
|
|
24
|
-
* </riv-card-content>
|
|
25
|
-
* </riv-card>
|
|
26
|
-
* ```
|
|
27
|
-
*
|
|
28
|
-
* ## Making the card activate
|
|
29
|
-
*
|
|
30
|
-
* Set `clickable` and handle `cardClick` to make the whole surface act on a
|
|
31
|
-
* click:
|
|
32
|
-
*
|
|
33
|
-
* ```html
|
|
34
|
-
* <riv-card [clickable]="true" (cardClick)="goToWorkbook()">
|
|
35
|
-
* ```
|
|
36
|
-
*
|
|
37
|
-
* The card renders its own full-surface button for this, so activation works
|
|
38
|
-
* with a pointer, with Enter, and with Space, and the focus ring traces the
|
|
39
|
-
* whole card. Controls in `riv-card-header`'s `[actions]` slot and in
|
|
40
|
-
* `riv-card-actions` sit above it and stay independently clickable — a menu
|
|
41
|
-
* inside a clickable card needs no `stopPropagation`. Other interactive content
|
|
42
|
-
* projected into the card must raise itself with `position: relative` and
|
|
43
|
-
* `z-index: var(--card-raised-z-index)`.
|
|
44
|
-
*
|
|
45
|
-
* When the card's action is really a navigation, prefer `[riv-card-link]` on an
|
|
46
|
-
* `<a>` instead: that keeps the URL, middle-click, and "open in new tab".
|
|
47
|
-
*
|
|
48
|
-
* ## Selection
|
|
49
|
-
*
|
|
50
|
-
* Set `selected` to mark the card the user is currently looking at. It gives
|
|
51
|
-
* the surface a distinct border and shadow, and announces through
|
|
52
|
-
* `aria-current` so the state is not conveyed by colour alone.
|
|
53
|
-
*
|
|
54
|
-
* ```html
|
|
55
|
-
* <riv-card [selected]="workbook.id === activeId">
|
|
56
|
-
* ```
|
|
57
|
-
*
|
|
58
|
-
* Selection is separate from `tone`, so it composes with any tint — a selected
|
|
59
|
-
* `danger` card keeps its danger background.
|
|
60
|
-
*
|
|
61
|
-
* ## Making the card expand and collapse
|
|
62
|
-
*
|
|
63
|
-
* Set `expandable` on `riv-card-header` and render the body only while it is
|
|
64
|
-
* open. The header owns the toggle affordance and its accessibility; the
|
|
65
|
-
* consumer owns the state:
|
|
66
|
-
*
|
|
67
|
-
* ```html
|
|
68
|
-
* <riv-card>
|
|
69
|
-
* <riv-card-header
|
|
70
|
-
* [heading]="'Patient info'"
|
|
71
|
-
* [expandable]="true"
|
|
72
|
-
* [(expanded)]="open"
|
|
73
|
-
* ></riv-card-header>
|
|
74
|
-
* <riv-card-content *ngIf="open">...</riv-card-content>
|
|
75
|
-
* </riv-card>
|
|
76
|
-
* ```
|
|
77
|
-
*
|
|
78
|
-
* The card relays the region id from the header to the content, so the toggle's
|
|
79
|
-
* `aria-controls` names the body with no ids wired by hand.
|
|
80
|
-
*
|
|
81
|
-
* Do not combine `expandable` with `clickable`: both claim the same click, and
|
|
82
|
-
* a card that opens as well as expands leaves the user no way to tell which one
|
|
83
|
-
* they are about to get.
|
|
84
|
-
*
|
|
85
|
-
* ## Notes
|
|
86
|
-
*
|
|
87
|
-
* When projecting raw content with no sub-components, set `padding` so the
|
|
88
|
-
* content is not flush against the border.
|
|
89
|
-
*
|
|
90
|
-
* The card clips its own content so media and filled header/action rows follow
|
|
91
|
-
* its corners. Popups (`riv-menu`, `rivTooltip`) render through the overlay
|
|
92
|
-
* outlet, so they are not affected by that clipping.
|
|
93
|
-
*
|
|
94
|
-
* Set the corner radius with `radius`. The `--card-border-radius` custom
|
|
95
|
-
* property still overrides it, for radii off the token scale.
|
|
96
|
-
*/
|
|
97
|
-
export class CardComponent {
|
|
98
|
-
constructor(el, renderer, cdr) {
|
|
99
|
-
this.el = el;
|
|
100
|
-
this.renderer = renderer;
|
|
101
|
-
this.cdr = cdr;
|
|
102
|
-
/** Border and shadow treatment of the surface. */
|
|
103
|
-
this.variant = 'outlined';
|
|
104
|
-
/** Neutral background elevation, matching the `--surface-light-*` tokens. */
|
|
105
|
-
this.surface = '0';
|
|
106
|
-
/** Semantic background tint. Overrides `surface` when not `neutral`. */
|
|
107
|
-
this.tone = 'neutral';
|
|
108
|
-
/** Stacking direction of the projected parts. */
|
|
109
|
-
this.orientation = 'vertical';
|
|
110
|
-
/**
|
|
111
|
-
* Padding applied to the card itself. Leave as `none` when composing with
|
|
112
|
-
* `riv-card-header` / `riv-card-content` / `riv-card-actions`, which own
|
|
113
|
-
* their own padding.
|
|
114
|
-
*/
|
|
115
|
-
this.padding = 'none';
|
|
116
|
-
/** Corner radius, matching the `--border-radius-*` tokens. */
|
|
117
|
-
this.radius = 'medium';
|
|
118
|
-
/**
|
|
119
|
-
* Makes the whole surface activate, emitting `cardClick`. Adds the hover
|
|
120
|
-
* affordance and keyboard support.
|
|
121
|
-
*/
|
|
122
|
-
this.clickable = false;
|
|
123
|
-
/**
|
|
124
|
-
* Marks the card as the current selection, giving it a distinct border and
|
|
125
|
-
* shadow. Composes with any `tone`, so a selected danger card keeps its
|
|
126
|
-
* tint. Announced to assistive technology through `aria-current`.
|
|
127
|
-
*/
|
|
128
|
-
this.selected = false;
|
|
129
|
-
/**
|
|
130
|
-
* Mutes the surface, suppresses hover feedback, and disables the click
|
|
131
|
-
* target. Presentational for everything else — disable the card's own
|
|
132
|
-
* controls too.
|
|
133
|
-
*/
|
|
134
|
-
this.disabled = false;
|
|
135
|
-
/** Emitted when a clickable card is activated by pointer or keyboard. */
|
|
136
|
-
this.cardClick = new EventEmitter();
|
|
137
|
-
/**
|
|
138
|
-
* Names the click target from the card's content. Generated only when the
|
|
139
|
-
* consumer has not set their own id.
|
|
140
|
-
*/
|
|
141
|
-
this.cardId = '';
|
|
142
|
-
}
|
|
143
|
-
/**
|
|
144
|
-
* Id an expandable header's toggle points `aria-controls` at, worn by a
|
|
145
|
-
* projected `riv-card-content`.
|
|
146
|
-
*/
|
|
147
|
-
get regionId() {
|
|
148
|
-
return this.expandRegionId;
|
|
149
|
-
}
|
|
150
|
-
ngOnInit() {
|
|
151
|
-
this.cardId = this.el.nativeElement.id || uniqueId('riv-card-');
|
|
152
|
-
if (!this.el.nativeElement.id) {
|
|
153
|
-
this.renderer.setAttribute(this.el.nativeElement, 'id', this.cardId);
|
|
154
|
-
}
|
|
155
|
-
}
|
|
156
|
-
/**
|
|
157
|
-
* Registers the header's title as the click target's accessible name, which
|
|
158
|
-
* keeps the announcement to the card's subject instead of every word on the
|
|
159
|
-
* surface. Called by `riv-card-header`; not part of the public API.
|
|
160
|
-
*/
|
|
161
|
-
setTitleId(id) {
|
|
162
|
-
this.titleId = id;
|
|
163
|
-
this.cdr.markForCheck();
|
|
164
|
-
}
|
|
165
|
-
/**
|
|
166
|
-
* Gives up a title registered by `setTitleId`, so a header that is removed
|
|
167
|
-
* does not leave the click target naming itself against a detached element.
|
|
168
|
-
* Ignores ids that are no longer the one in use.
|
|
169
|
-
*/
|
|
170
|
-
clearTitleId(id) {
|
|
171
|
-
if (this.titleId === id) {
|
|
172
|
-
this.setTitleId(undefined);
|
|
173
|
-
}
|
|
174
|
-
}
|
|
175
|
-
/**
|
|
176
|
-
* Relays the region an expandable header controls to the projected
|
|
177
|
-
* `riv-card-content`, so neither side needs the consumer to wire an id.
|
|
178
|
-
* Called by `riv-card-header`; not part of the public API.
|
|
179
|
-
*/
|
|
180
|
-
setRegionId(id) {
|
|
181
|
-
this.expandRegionId = id;
|
|
182
|
-
this.cdr.markForCheck();
|
|
183
|
-
}
|
|
184
|
-
/**
|
|
185
|
-
* Gives up a region registered by `setRegionId`. Ignores ids that are no
|
|
186
|
-
* longer the one in use.
|
|
187
|
-
*/
|
|
188
|
-
clearRegionId(id) {
|
|
189
|
-
if (this.expandRegionId === id) {
|
|
190
|
-
this.setRegionId(undefined);
|
|
191
|
-
}
|
|
192
|
-
}
|
|
193
|
-
/**
|
|
194
|
-
* Element whose text names the click target, unless `clickLabel` is set. The
|
|
195
|
-
* host id is read from the DOM rather than cached, so a bound `[id]` that
|
|
196
|
-
* changes is picked up on the card's next change detection.
|
|
197
|
-
*/
|
|
198
|
-
get labelledBy() {
|
|
199
|
-
if (this.clickLabel)
|
|
200
|
-
return null;
|
|
201
|
-
return this.titleId ?? (this.el.nativeElement.id || this.cardId);
|
|
202
|
-
}
|
|
203
|
-
/** Announces the current selection to assistive technology. */
|
|
204
|
-
get ariaCurrent() {
|
|
205
|
-
return this.selected ? 'true' : null;
|
|
206
|
-
}
|
|
207
|
-
get classes() {
|
|
208
|
-
return Object.entries({
|
|
209
|
-
[this.variant]: true,
|
|
210
|
-
[`surface-${this.surface}`]: true,
|
|
211
|
-
[`tone-${this.tone}`]: true,
|
|
212
|
-
[this.orientation]: true,
|
|
213
|
-
[`padding-${this.padding}`]: true,
|
|
214
|
-
[`radius-${this.radius}`]: true,
|
|
215
|
-
[`hover-depth-${this.hoverDepth ?? CardComponent.defaultHoverDepth(this)}`]: true,
|
|
216
|
-
clickable: this.clickable,
|
|
217
|
-
selected: this.selected,
|
|
218
|
-
disabled: this.disabled,
|
|
219
|
-
})
|
|
220
|
-
.filter(([_, v]) => v)
|
|
221
|
-
.map(([k]) => k)
|
|
222
|
-
.join(' ');
|
|
223
|
-
}
|
|
224
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: CardComponent, deps: [{ token: i0.ElementRef }, { token: i0.Renderer2 }, { token: i0.ChangeDetectorRef }], target: i0.ɵɵFactoryTarget.Component }); }
|
|
225
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.2.14", type: CardComponent, selector: "riv-card", inputs: { variant: "variant", surface: "surface", tone: "tone", orientation: "orientation", padding: "padding", radius: "radius", hoverDepth: "hoverDepth", clickable: "clickable", clickLabel: "clickLabel", selected: "selected", disabled: "disabled" }, outputs: { cardClick: "cardClick" }, host: { properties: { "attr.aria-current": "this.ariaCurrent", "class": "this.classes" } }, ngImport: i0, template: "<button\n *ngIf=\"clickable\"\n type=\"button\"\n class=\"click-target\"\n [disabled]=\"disabled\"\n [attr.aria-disabled]=\"disabled ? 'true' : null\"\n [attr.aria-label]=\"clickLabel\"\n [attr.aria-labelledby]=\"labelledBy\"\n (click)=\"cardClick.emit($event)\"\n></button>\n<ng-content></ng-content>\n", styles: [":host{position:relative;display:flex;min-width:0;overflow:hidden;color:var(--type-light-high-contrast);font:var(--body-medium)}:host.vertical{flex-direction:column}:host.horizontal{flex-direction:row}:host.outlined{border:var(--border-width) solid var(--border-light)}:host.dashed{border:var(--border-width) dashed var(--border-light)}:host.elevated{box-shadow:var(--depth-1)}:host.surface-0{background-color:var(--surface-light-0)}:host.surface-1{background-color:var(--surface-light-1)}:host.surface-2{background-color:var(--surface-light-2)}:host.tone-danger{background-color:var(--surface-light-danger)}:host.tone-caution{background-color:var(--surface-light-caution)}:host.tone-warning{background-color:var(--surface-light-warning)}:host.tone-safety{background-color:var(--surface-light-safety)}:host.tone-selected{background-color:var(--surface-light-selected)}:host.padding-small{padding:var(--size-small)}:host.padding-medium{padding:var(--size-medium)}:host.padding-large{padding:var(--size-large)}:host.padding-xxlarge{padding:var(--size-xxlarge)}:host.radius-small{border-radius:var(--card-border-radius, var(--border-radius-small))}:host.radius-medium{border-radius:var(--card-border-radius, var(--border-radius-medium))}:host.radius-large{border-radius:var(--card-border-radius, var(--border-radius-large))}:host.radius-xlarge{border-radius:var(--card-border-radius, var(--border-radius-xlarge))}:host:not(.hover-depth-none){transition:box-shadow var(--short-transition)}:host.padding-xlarge{padding:var(--size-xlarge)}:host.clickable{transition:box-shadow var(--short-transition)}:host.hover-depth-1:not(.disabled):hover{box-shadow:var(--depth-1)}:host.hover-depth-2:not(.disabled):hover{box-shadow:var(--depth-2)}:host.hover-depth-3:not(.disabled):hover{box-shadow:var(--depth-3)}:host.hover-depth-4:not(.disabled):hover{box-shadow:var(--depth-4)}.click-target{position:absolute;inset:0;z-index:var(--card-click-target-z-index);padding:0;border:none;background:none;cursor:pointer;transition:background-color var(--short-transition)}.click-target:not(:disabled):hover{background-color:var(--black-20)}.click-target:disabled{cursor:default}.click-target:focus-visible{outline:var(--border-width-large) solid var(--type-light-link);outline-offset:calc(-1 * var(--border-width-large))}:host.selected{border:var(--border-width) solid var(--baloo-50);box-shadow:var(--depth-2)}:host.disabled{background-color:var(--surface-light-1)}:host.outlined.disabled,:host.dashed.disabled{border-color:var(--border-light)}@media print{:host{break-inside:avoid}}\n"], dependencies: [{ kind: "directive", type: i1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
|
|
226
|
-
}
|
|
227
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: CardComponent, decorators: [{
|
|
228
|
-
type: Component,
|
|
229
|
-
args: [{ selector: 'riv-card', changeDetection: ChangeDetectionStrategy.OnPush, template: "<button\n *ngIf=\"clickable\"\n type=\"button\"\n class=\"click-target\"\n [disabled]=\"disabled\"\n [attr.aria-disabled]=\"disabled ? 'true' : null\"\n [attr.aria-label]=\"clickLabel\"\n [attr.aria-labelledby]=\"labelledBy\"\n (click)=\"cardClick.emit($event)\"\n></button>\n<ng-content></ng-content>\n", styles: [":host{position:relative;display:flex;min-width:0;overflow:hidden;color:var(--type-light-high-contrast);font:var(--body-medium)}:host.vertical{flex-direction:column}:host.horizontal{flex-direction:row}:host.outlined{border:var(--border-width) solid var(--border-light)}:host.dashed{border:var(--border-width) dashed var(--border-light)}:host.elevated{box-shadow:var(--depth-1)}:host.surface-0{background-color:var(--surface-light-0)}:host.surface-1{background-color:var(--surface-light-1)}:host.surface-2{background-color:var(--surface-light-2)}:host.tone-danger{background-color:var(--surface-light-danger)}:host.tone-caution{background-color:var(--surface-light-caution)}:host.tone-warning{background-color:var(--surface-light-warning)}:host.tone-safety{background-color:var(--surface-light-safety)}:host.tone-selected{background-color:var(--surface-light-selected)}:host.padding-small{padding:var(--size-small)}:host.padding-medium{padding:var(--size-medium)}:host.padding-large{padding:var(--size-large)}:host.padding-xxlarge{padding:var(--size-xxlarge)}:host.radius-small{border-radius:var(--card-border-radius, var(--border-radius-small))}:host.radius-medium{border-radius:var(--card-border-radius, var(--border-radius-medium))}:host.radius-large{border-radius:var(--card-border-radius, var(--border-radius-large))}:host.radius-xlarge{border-radius:var(--card-border-radius, var(--border-radius-xlarge))}:host:not(.hover-depth-none){transition:box-shadow var(--short-transition)}:host.padding-xlarge{padding:var(--size-xlarge)}:host.clickable{transition:box-shadow var(--short-transition)}:host.hover-depth-1:not(.disabled):hover{box-shadow:var(--depth-1)}:host.hover-depth-2:not(.disabled):hover{box-shadow:var(--depth-2)}:host.hover-depth-3:not(.disabled):hover{box-shadow:var(--depth-3)}:host.hover-depth-4:not(.disabled):hover{box-shadow:var(--depth-4)}.click-target{position:absolute;inset:0;z-index:var(--card-click-target-z-index);padding:0;border:none;background:none;cursor:pointer;transition:background-color var(--short-transition)}.click-target:not(:disabled):hover{background-color:var(--black-20)}.click-target:disabled{cursor:default}.click-target:focus-visible{outline:var(--border-width-large) solid var(--type-light-link);outline-offset:calc(-1 * var(--border-width-large))}:host.selected{border:var(--border-width) solid var(--baloo-50);box-shadow:var(--depth-2)}:host.disabled{background-color:var(--surface-light-1)}:host.outlined.disabled,:host.dashed.disabled{border-color:var(--border-light)}@media print{:host{break-inside:avoid}}\n"] }]
|
|
230
|
-
}], ctorParameters: () => [{ type: i0.ElementRef }, { type: i0.Renderer2 }, { type: i0.ChangeDetectorRef }], propDecorators: { variant: [{
|
|
231
|
-
type: Input
|
|
232
|
-
}], surface: [{
|
|
233
|
-
type: Input
|
|
234
|
-
}], tone: [{
|
|
235
|
-
type: Input
|
|
236
|
-
}], orientation: [{
|
|
237
|
-
type: Input
|
|
238
|
-
}], padding: [{
|
|
239
|
-
type: Input
|
|
240
|
-
}], radius: [{
|
|
241
|
-
type: Input
|
|
242
|
-
}], hoverDepth: [{
|
|
243
|
-
type: Input
|
|
244
|
-
}], clickable: [{
|
|
245
|
-
type: Input
|
|
246
|
-
}], clickLabel: [{
|
|
247
|
-
type: Input
|
|
248
|
-
}], selected: [{
|
|
249
|
-
type: Input
|
|
250
|
-
}], disabled: [{
|
|
251
|
-
type: Input
|
|
252
|
-
}], cardClick: [{
|
|
253
|
-
type: Output
|
|
254
|
-
}], ariaCurrent: [{
|
|
255
|
-
type: HostBinding,
|
|
256
|
-
args: ['attr.aria-current']
|
|
257
|
-
}], classes: [{
|
|
258
|
-
type: HostBinding,
|
|
259
|
-
args: ['class']
|
|
260
|
-
}] } });
|
|
261
|
-
(function (CardComponent) {
|
|
262
|
-
CardComponent.Variants = ['outlined', 'elevated', 'flat', 'dashed'];
|
|
263
|
-
CardComponent.Surfaces = ['0', '1', '2'];
|
|
264
|
-
CardComponent.Tones = [
|
|
265
|
-
'neutral',
|
|
266
|
-
'danger',
|
|
267
|
-
'caution',
|
|
268
|
-
'warning',
|
|
269
|
-
'safety',
|
|
270
|
-
'selected',
|
|
271
|
-
];
|
|
272
|
-
CardComponent.Orientations = ['vertical', 'horizontal'];
|
|
273
|
-
/** Shared padding scale for the card and its sub-components. */
|
|
274
|
-
CardComponent.Paddings = [
|
|
275
|
-
'none',
|
|
276
|
-
'small',
|
|
277
|
-
'medium',
|
|
278
|
-
'large',
|
|
279
|
-
'xlarge',
|
|
280
|
-
'xxlarge',
|
|
281
|
-
];
|
|
282
|
-
CardComponent.Radii = ['small', 'medium', 'large', 'xlarge'];
|
|
283
|
-
CardComponent.Depths = ['none', '1', '2', '3', '4'];
|
|
284
|
-
function defaultHoverDepth({ clickable, variant, }) {
|
|
285
|
-
if (!clickable)
|
|
286
|
-
return 'none';
|
|
287
|
-
return variant === 'elevated' ? '2' : '1';
|
|
288
|
-
}
|
|
289
|
-
CardComponent.defaultHoverDepth = defaultHoverDepth;
|
|
290
|
-
})(CardComponent || (CardComponent = {}));
|
|
291
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2FyZC5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9yaXYvc3JjL2xpYi9sYXlvdXQvY2FyZC9jYXJkLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL3Jpdi9zcmMvbGliL2xheW91dC9jYXJkL2NhcmQuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUNMLHVCQUF1QixFQUV2QixTQUFTLEVBRVQsWUFBWSxFQUNaLFdBQVcsRUFDWCxLQUFLLEVBRUwsTUFBTSxHQUVQLE1BQU0sZUFBZSxDQUFDO0FBQ3ZCLE9BQU8sRUFBRSxRQUFRLEVBQUUsTUFBTSxRQUFRLENBQUM7OztBQUVsQzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztHQTJGRztBQU9ILE1BQU0sT0FBTyxhQUFhO0lBQ3hCLFlBQ21CLEVBQTJCLEVBQzNCLFFBQW1CLEVBQ25CLEdBQXNCO1FBRnRCLE9BQUUsR0FBRixFQUFFLENBQXlCO1FBQzNCLGFBQVEsR0FBUixRQUFRLENBQVc7UUFDbkIsUUFBRyxHQUFILEdBQUcsQ0FBbUI7UUFHekMsa0RBQWtEO1FBRWxELFlBQU8sR0FBMEIsVUFBVSxDQUFDO1FBRTVDLDZFQUE2RTtRQUU3RSxZQUFPLEdBQTBCLEdBQUcsQ0FBQztRQUVyQyx3RUFBd0U7UUFFeEUsU0FBSSxHQUF1QixTQUFTLENBQUM7UUFFckMsaURBQWlEO1FBRWpELGdCQUFXLEdBQThCLFVBQVUsQ0FBQztRQUVwRDs7OztXQUlHO1FBRUgsWUFBTyxHQUEwQixNQUFNLENBQUM7UUFFeEMsOERBQThEO1FBRTlELFdBQU0sR0FBeUIsUUFBUSxDQUFDO1FBV3hDOzs7V0FHRztRQUVILGNBQVMsR0FBWSxLQUFLLENBQUM7UUFVM0I7Ozs7V0FJRztRQUVILGFBQVEsR0FBWSxLQUFLLENBQUM7UUFFMUI7Ozs7V0FJRztRQUVILGFBQVEsR0FBWSxLQUFLLENBQUM7UUFFMUIseUVBQXlFO1FBRXpFLGNBQVMsR0FBRyxJQUFJLFlBQVksRUFBYyxDQUFDO1FBRTNDOzs7V0FHRztRQUNLLFdBQU0sR0FBVyxFQUFFLENBQUM7SUE5RXpCLENBQUM7SUFzRko7OztPQUdHO0lBQ0gsSUFBSSxRQUFRO1FBQ1YsT0FBTyxJQUFJLENBQUMsY0FBYyxDQUFDO0lBQzdCLENBQUM7SUFFRCxRQUFRO1FBQ04sSUFBSSxDQUFDLE1BQU0sR0FBRyxJQUFJLENBQUMsRUFBRSxDQUFDLGFBQWEsQ0FBQyxFQUFFLElBQUksUUFBUSxDQUFDLFdBQVcsQ0FBQyxDQUFDO1FBQ2hFLElBQUksQ0FBQyxJQUFJLENBQUMsRUFBRSxDQUFDLGFBQWEsQ0FBQyxFQUFFLEVBQUUsQ0FBQztZQUM5QixJQUFJLENBQUMsUUFBUSxDQUFDLFlBQVksQ0FBQyxJQUFJLENBQUMsRUFBRSxDQUFDLGFBQWEsRUFBRSxJQUFJLEVBQUUsSUFBSSxDQUFDLE1BQU0sQ0FBQyxDQUFDO1FBQ3ZFLENBQUM7SUFDSCxDQUFDO0lBRUQ7Ozs7T0FJRztJQUNILFVBQVUsQ0FBQyxFQUFzQjtRQUMvQixJQUFJLENBQUMsT0FBTyxHQUFHLEVBQUUsQ0FBQztRQUNsQixJQUFJLENBQUMsR0FBRyxDQUFDLFlBQVksRUFBRSxDQUFDO0lBQzFCLENBQUM7SUFFRDs7OztPQUlHO0lBQ0gsWUFBWSxDQUFDLEVBQVU7UUFDckIsSUFBSSxJQUFJLENBQUMsT0FBTyxLQUFLLEVBQUUsRUFBRSxDQUFDO1lBQ3hCLElBQUksQ0FBQyxVQUFVLENBQUMsU0FBUyxDQUFDLENBQUM7UUFDN0IsQ0FBQztJQUNILENBQUM7SUFFRDs7OztPQUlHO0lBQ0gsV0FBVyxDQUFDLEVBQXNCO1FBQ2hDLElBQUksQ0FBQyxjQUFjLEdBQUcsRUFBRSxDQUFDO1FBQ3pCLElBQUksQ0FBQyxHQUFHLENBQUMsWUFBWSxFQUFFLENBQUM7SUFDMUIsQ0FBQztJQUVEOzs7T0FHRztJQUNILGFBQWEsQ0FBQyxFQUFVO1FBQ3RCLElBQUksSUFBSSxDQUFDLGNBQWMsS0FBSyxFQUFFLEVBQUUsQ0FBQztZQUMvQixJQUFJLENBQUMsV0FBVyxDQUFDLFNBQVMsQ0FBQyxDQUFDO1FBQzlCLENBQUM7SUFDSCxDQUFDO0lBRUQ7Ozs7T0FJRztJQUNILElBQWMsVUFBVTtRQUN0QixJQUFJLElBQUksQ0FBQyxVQUFVO1lBQUUsT0FBTyxJQUFJLENBQUM7UUFDakMsT0FBTyxJQUFJLENBQUMsT0FBTyxJQUFJLENBQUMsSUFBSSxDQUFDLEVBQUUsQ0FBQyxhQUFhLENBQUMsRUFBRSxJQUFJLElBQUksQ0FBQyxNQUFNLENBQUMsQ0FBQztJQUNuRSxDQUFDO0lBRUQsK0RBQStEO0lBQy9ELElBQ0ksV0FBVztRQUNiLE9BQU8sSUFBSSxDQUFDLFFBQVEsQ0FBQyxDQUFDLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUM7SUFDdkMsQ0FBQztJQUVELElBQ0ksT0FBTztRQUNULE9BQU8sTUFBTSxDQUFDLE9BQU8sQ0FBQztZQUNwQixDQUFDLElBQUksQ0FBQyxPQUFPLENBQUMsRUFBRSxJQUFJO1lBQ3BCLENBQUMsV0FBVyxJQUFJLENBQUMsT0FBTyxFQUFFLENBQUMsRUFBRSxJQUFJO1lBQ2pDLENBQUMsUUFBUSxJQUFJLENBQUMsSUFBSSxFQUFFLENBQUMsRUFBRSxJQUFJO1lBQzNCLENBQUMsSUFBSSxDQUFDLFdBQVcsQ0FBQyxFQUFFLElBQUk7WUFDeEIsQ0FBQyxXQUFXLElBQUksQ0FBQyxPQUFPLEVBQUUsQ0FBQyxFQUFFLElBQUk7WUFDakMsQ0FBQyxVQUFVLElBQUksQ0FBQyxNQUFNLEVBQUUsQ0FBQyxFQUFFLElBQUk7WUFDL0IsQ0FBQyxlQUNDLElBQUksQ0FBQyxVQUFVLElBQUksYUFBYSxDQUFDLGlCQUFpQixDQUFDLElBQUksQ0FDekQsRUFBRSxDQUFDLEVBQUUsSUFBSTtZQUNULFNBQVMsRUFBRSxJQUFJLENBQUMsU0FBUztZQUN6QixRQUFRLEVBQUUsSUFBSSxDQUFDLFFBQVE7WUFDdkIsUUFBUSxFQUFFLElBQUksQ0FBQyxRQUFRO1NBQ3hCLENBQUM7YUFDQyxNQUFNLENBQUMsQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsRUFBRSxFQUFFLENBQUMsQ0FBQyxDQUFDO2FBQ3JCLEdBQUcsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEVBQUUsRUFBRSxDQUFDLENBQUMsQ0FBQzthQUNmLElBQUksQ0FBQyxHQUFHLENBQUMsQ0FBQztJQUNmLENBQUM7K0dBdExVLGFBQWE7bUdBQWIsYUFBYSw2YUNoSDFCLHlUQVdBOzs0RkRxR2EsYUFBYTtrQkFOekIsU0FBUzsrQkFDRSxVQUFVLG1CQUdILHVCQUF1QixDQUFDLE1BQU07dUlBVy9DLE9BQU87c0JBRE4sS0FBSztnQkFLTixPQUFPO3NCQUROLEtBQUs7Z0JBS04sSUFBSTtzQkFESCxLQUFLO2dCQUtOLFdBQVc7c0JBRFYsS0FBSztnQkFTTixPQUFPO3NCQUROLEtBQUs7Z0JBS04sTUFBTTtzQkFETCxLQUFLO2dCQVVOLFVBQVU7c0JBRFQsS0FBSztnQkFRTixTQUFTO3NCQURSLEtBQUs7Z0JBU04sVUFBVTtzQkFEVCxLQUFLO2dCQVNOLFFBQVE7c0JBRFAsS0FBSztnQkFTTixRQUFRO3NCQURQLEtBQUs7Z0JBS04sU0FBUztzQkFEUixNQUFNO2dCQW1GSCxXQUFXO3NCQURkLFdBQVc7dUJBQUMsbUJBQW1CO2dCQU01QixPQUFPO3NCQURWLFdBQVc7dUJBQUMsT0FBTzs7QUFzQnRCLFdBQWlCLGFBQWE7SUFDZixzQkFBUSxHQUFHLENBQUMsVUFBVSxFQUFFLFVBQVUsRUFBRSxNQUFNLEVBQUUsUUFBUSxDQUFVLENBQUM7SUFHL0Qsc0JBQVEsR0FBRyxDQUFDLEdBQUcsRUFBRSxHQUFHLEVBQUUsR0FBRyxDQUFVLENBQUM7SUFHcEMsbUJBQUssR0FBRztRQUNuQixTQUFTO1FBQ1QsUUFBUTtRQUNSLFNBQVM7UUFDVCxTQUFTO1FBQ1QsUUFBUTtRQUNSLFVBQVU7S0FDRixDQUFDO0lBR0UsMEJBQVksR0FBRyxDQUFDLFVBQVUsRUFBRSxZQUFZLENBQVUsQ0FBQztJQUdoRSxnRUFBZ0U7SUFDbkQsc0JBQVEsR0FBRztRQUN0QixNQUFNO1FBQ04sT0FBTztRQUNQLFFBQVE7UUFDUixPQUFPO1FBQ1AsUUFBUTtRQUNSLFNBQVM7S0FDRCxDQUFDO0lBR0UsbUJBQUssR0FBRyxDQUFDLE9BQU8sRUFBRSxRQUFRLEVBQUUsT0FBTyxFQUFFLFFBQVEsQ0FBVSxDQUFDO0lBR3hELG9CQUFNLEdBQUcsQ0FBQyxNQUFNLEVBQUUsR0FBRyxFQUFFLEdBQUcsRUFBRSxHQUFHLEVBQUUsR0FBRyxDQUFVLENBQUM7SUFHNUQsU0FBZ0IsaUJBQWlCLENBQUMsRUFDaEMsU0FBUyxFQUNULE9BQU8sR0FDc0M7UUFDN0MsSUFBSSxDQUFDLFNBQVM7WUFBRSxPQUFPLE1BQU0sQ0FBQztRQUM5QixPQUFPLE9BQU8sS0FBSyxVQUFVLENBQUMsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsR0FBRyxDQUFDO0lBQzVDLENBQUM7SUFOZSwrQkFBaUIsb0JBTWhDLENBQUE7QUFDSCxDQUFDLEVBNUNnQixhQUFhLEtBQWIsYUFBYSxRQTRDN0IiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge1xuICBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneSxcbiAgQ2hhbmdlRGV0ZWN0b3JSZWYsXG4gIENvbXBvbmVudCxcbiAgRWxlbWVudFJlZixcbiAgRXZlbnRFbWl0dGVyLFxuICBIb3N0QmluZGluZyxcbiAgSW5wdXQsXG4gIE9uSW5pdCxcbiAgT3V0cHV0LFxuICBSZW5kZXJlcjIsXG59IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgdW5pcXVlSWQgfSBmcm9tICdsb2Rhc2gnO1xuXG4vKipcbiAqIFN1cmZhY2UgY29udGFpbmVyIHRoYXQgZ3JvdXBzIHJlbGF0ZWQgY29udGVudCBpbnRvIGEgc2luZ2xlIHNjYW5uYWJsZSB1bml0LlxuICpcbiAqIEEgY2FyZCBpcyBjb21wb3NlZCwgbm90IGNvbmZpZ3VyZWQ6IHByb2plY3QgdGhlIHBhcnRzIHlvdSBuZWVkLCBpbiB0aGUgb3JkZXJcbiAqIHlvdSBuZWVkIHRoZW0uIEV2ZXJ5IHBhcnQgaXMgb3B0aW9uYWwsIHNvIGEgYmFyZSBgcml2LWNhcmRgIGlzIGEgdmFsaWRcbiAqIHN1cmZhY2Ugb24gaXRzIG93bi5cbiAqXG4gKiAtIGByaXYtY2FyZC1tZWRpYWAg4oCUIGxlYWRpbmcgaW1hZ2Ugb3IgdmlkZW9cbiAqIC0gYHJpdi1jYXJkLWhlYWRlcmAg4oCUIGhlYWRpbmcsIHN1YmhlYWRpbmcsIGxlYWRpbmcgYWRvcm5tZW50LCBhY3Rpb25zXG4gKiAtIGByaXYtY2FyZC1jb250ZW50YCDigJQgYm9keVxuICogLSBgcml2LWNhcmQtYWN0aW9uc2Ag4oCUIHRyYWlsaW5nIGNvbnRyb2wgcm93XG4gKlxuICogYGBgaHRtbFxuICogPHJpdi1jYXJkPlxuICogICA8cml2LWNhcmQtaGVhZGVyIFtoZWFkaW5nXT1cIndvcmtib29rLm5hbWVcIiBbc3ViaGVhZGluZ109XCJwYXllck5hbWVcIj5cbiAqICAgICA8cml2LW1lbnUgYWN0aW9ucz4uLi48L3Jpdi1tZW51PlxuICogICA8L3Jpdi1jYXJkLWhlYWRlcj5cbiAqICAgPHJpdi1jYXJkLWNvbnRlbnQ+XG4gKiAgICAgTGFzdCBlZGl0OiB7eyB3b3JrYm9vay5tb2RpZmllZCB8IHJpdkRhdGUgfX1cbiAqICAgPC9yaXYtY2FyZC1jb250ZW50PlxuICogPC9yaXYtY2FyZD5cbiAqIGBgYFxuICpcbiAqICMjIE1ha2luZyB0aGUgY2FyZCBhY3RpdmF0ZVxuICpcbiAqIFNldCBgY2xpY2thYmxlYCBhbmQgaGFuZGxlIGBjYXJkQ2xpY2tgIHRvIG1ha2UgdGhlIHdob2xlIHN1cmZhY2UgYWN0IG9uIGFcbiAqIGNsaWNrOlxuICpcbiAqIGBgYGh0bWxcbiAqIDxyaXYtY2FyZCBbY2xpY2thYmxlXT1cInRydWVcIiAoY2FyZENsaWNrKT1cImdvVG9Xb3JrYm9vaygpXCI+XG4gKiBgYGBcbiAqXG4gKiBUaGUgY2FyZCByZW5kZXJzIGl0cyBvd24gZnVsbC1zdXJmYWNlIGJ1dHRvbiBmb3IgdGhpcywgc28gYWN0aXZhdGlvbiB3b3Jrc1xuICogd2l0aCBhIHBvaW50ZXIsIHdpdGggRW50ZXIsIGFuZCB3aXRoIFNwYWNlLCBhbmQgdGhlIGZvY3VzIHJpbmcgdHJhY2VzIHRoZVxuICogd2hvbGUgY2FyZC4gQ29udHJvbHMgaW4gYHJpdi1jYXJkLWhlYWRlcmAncyBgW2FjdGlvbnNdYCBzbG90IGFuZCBpblxuICogYHJpdi1jYXJkLWFjdGlvbnNgIHNpdCBhYm92ZSBpdCBhbmQgc3RheSBpbmRlcGVuZGVudGx5IGNsaWNrYWJsZSDigJQgYSBtZW51XG4gKiBpbnNpZGUgYSBjbGlja2FibGUgY2FyZCBuZWVkcyBubyBgc3RvcFByb3BhZ2F0aW9uYC4gT3RoZXIgaW50ZXJhY3RpdmUgY29udGVudFxuICogcHJvamVjdGVkIGludG8gdGhlIGNhcmQgbXVzdCByYWlzZSBpdHNlbGYgd2l0aCBgcG9zaXRpb246IHJlbGF0aXZlYCBhbmRcbiAqIGB6LWluZGV4OiB2YXIoLS1jYXJkLXJhaXNlZC16LWluZGV4KWAuXG4gKlxuICogV2hlbiB0aGUgY2FyZCdzIGFjdGlvbiBpcyByZWFsbHkgYSBuYXZpZ2F0aW9uLCBwcmVmZXIgYFtyaXYtY2FyZC1saW5rXWAgb24gYW5cbiAqIGA8YT5gIGluc3RlYWQ6IHRoYXQga2VlcHMgdGhlIFVSTCwgbWlkZGxlLWNsaWNrLCBhbmQgXCJvcGVuIGluIG5ldyB0YWJcIi5cbiAqXG4gKiAjIyBTZWxlY3Rpb25cbiAqXG4gKiBTZXQgYHNlbGVjdGVkYCB0byBtYXJrIHRoZSBjYXJkIHRoZSB1c2VyIGlzIGN1cnJlbnRseSBsb29raW5nIGF0LiBJdCBnaXZlc1xuICogdGhlIHN1cmZhY2UgYSBkaXN0aW5jdCBib3JkZXIgYW5kIHNoYWRvdywgYW5kIGFubm91bmNlcyB0aHJvdWdoXG4gKiBgYXJpYS1jdXJyZW50YCBzbyB0aGUgc3RhdGUgaXMgbm90IGNvbnZleWVkIGJ5IGNvbG91ciBhbG9uZS5cbiAqXG4gKiBgYGBodG1sXG4gKiA8cml2LWNhcmQgW3NlbGVjdGVkXT1cIndvcmtib29rLmlkID09PSBhY3RpdmVJZFwiPlxuICogYGBgXG4gKlxuICogU2VsZWN0aW9uIGlzIHNlcGFyYXRlIGZyb20gYHRvbmVgLCBzbyBpdCBjb21wb3NlcyB3aXRoIGFueSB0aW50IOKAlCBhIHNlbGVjdGVkXG4gKiBgZGFuZ2VyYCBjYXJkIGtlZXBzIGl0cyBkYW5nZXIgYmFja2dyb3VuZC5cbiAqXG4gKiAjIyBNYWtpbmcgdGhlIGNhcmQgZXhwYW5kIGFuZCBjb2xsYXBzZVxuICpcbiAqIFNldCBgZXhwYW5kYWJsZWAgb24gYHJpdi1jYXJkLWhlYWRlcmAgYW5kIHJlbmRlciB0aGUgYm9keSBvbmx5IHdoaWxlIGl0IGlzXG4gKiBvcGVuLiBUaGUgaGVhZGVyIG93bnMgdGhlIHRvZ2dsZSBhZmZvcmRhbmNlIGFuZCBpdHMgYWNjZXNzaWJpbGl0eTsgdGhlXG4gKiBjb25zdW1lciBvd25zIHRoZSBzdGF0ZTpcbiAqXG4gKiBgYGBodG1sXG4gKiA8cml2LWNhcmQ+XG4gKiAgIDxyaXYtY2FyZC1oZWFkZXJcbiAqICAgICBbaGVhZGluZ109XCInUGF0aWVudCBpbmZvJ1wiXG4gKiAgICAgW2V4cGFuZGFibGVdPVwidHJ1ZVwiXG4gKiAgICAgWyhleHBhbmRlZCldPVwib3BlblwiXG4gKiAgID48L3Jpdi1jYXJkLWhlYWRlcj5cbiAqICAgPHJpdi1jYXJkLWNvbnRlbnQgKm5nSWY9XCJvcGVuXCI+Li4uPC9yaXYtY2FyZC1jb250ZW50PlxuICogPC9yaXYtY2FyZD5cbiAqIGBgYFxuICpcbiAqIFRoZSBjYXJkIHJlbGF5cyB0aGUgcmVnaW9uIGlkIGZyb20gdGhlIGhlYWRlciB0byB0aGUgY29udGVudCwgc28gdGhlIHRvZ2dsZSdzXG4gKiBgYXJpYS1jb250cm9sc2AgbmFtZXMgdGhlIGJvZHkgd2l0aCBubyBpZHMgd2lyZWQgYnkgaGFuZC5cbiAqXG4gKiBEbyBub3QgY29tYmluZSBgZXhwYW5kYWJsZWAgd2l0aCBgY2xpY2thYmxlYDogYm90aCBjbGFpbSB0aGUgc2FtZSBjbGljaywgYW5kXG4gKiBhIGNhcmQgdGhhdCBvcGVucyBhcyB3ZWxsIGFzIGV4cGFuZHMgbGVhdmVzIHRoZSB1c2VyIG5vIHdheSB0byB0ZWxsIHdoaWNoIG9uZVxuICogdGhleSBhcmUgYWJvdXQgdG8gZ2V0LlxuICpcbiAqICMjIE5vdGVzXG4gKlxuICogV2hlbiBwcm9qZWN0aW5nIHJhdyBjb250ZW50IHdpdGggbm8gc3ViLWNvbXBvbmVudHMsIHNldCBgcGFkZGluZ2Agc28gdGhlXG4gKiBjb250ZW50IGlzIG5vdCBmbHVzaCBhZ2FpbnN0IHRoZSBib3JkZXIuXG4gKlxuICogVGhlIGNhcmQgY2xpcHMgaXRzIG93biBjb250ZW50IHNvIG1lZGlhIGFuZCBmaWxsZWQgaGVhZGVyL2FjdGlvbiByb3dzIGZvbGxvd1xuICogaXRzIGNvcm5lcnMuIFBvcHVwcyAoYHJpdi1tZW51YCwgYHJpdlRvb2x0aXBgKSByZW5kZXIgdGhyb3VnaCB0aGUgb3ZlcmxheVxuICogb3V0bGV0LCBzbyB0aGV5IGFyZSBub3QgYWZmZWN0ZWQgYnkgdGhhdCBjbGlwcGluZy5cbiAqXG4gKiBTZXQgdGhlIGNvcm5lciByYWRpdXMgd2l0aCBgcmFkaXVzYC4gVGhlIGAtLWNhcmQtYm9yZGVyLXJhZGl1c2AgY3VzdG9tXG4gKiBwcm9wZXJ0eSBzdGlsbCBvdmVycmlkZXMgaXQsIGZvciByYWRpaSBvZmYgdGhlIHRva2VuIHNjYWxlLlxuICovXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdyaXYtY2FyZCcsXG4gIHRlbXBsYXRlVXJsOiAnLi9jYXJkLmNvbXBvbmVudC5odG1sJyxcbiAgc3R5bGVVcmxzOiBbJy4vY2FyZC5jb21wb25lbnQuY3NzJ10sXG4gIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoLFxufSlcbmV4cG9ydCBjbGFzcyBDYXJkQ29tcG9uZW50IGltcGxlbWVudHMgT25Jbml0IHtcbiAgY29uc3RydWN0b3IoXG4gICAgcHJpdmF0ZSByZWFkb25seSBlbDogRWxlbWVudFJlZjxIVE1MRWxlbWVudD4sXG4gICAgcHJpdmF0ZSByZWFkb25seSByZW5kZXJlcjogUmVuZGVyZXIyLFxuICAgIHByaXZhdGUgcmVhZG9ubHkgY2RyOiBDaGFuZ2VEZXRlY3RvclJlZixcbiAgKSB7fVxuXG4gIC8qKiBCb3JkZXIgYW5kIHNoYWRvdyB0cmVhdG1lbnQgb2YgdGhlIHN1cmZhY2UuICovXG4gIEBJbnB1dCgpXG4gIHZhcmlhbnQ6IENhcmRDb21wb25lbnQuVmFyaWFudCA9ICdvdXRsaW5lZCc7XG5cbiAgLyoqIE5ldXRyYWwgYmFja2dyb3VuZCBlbGV2YXRpb24sIG1hdGNoaW5nIHRoZSBgLS1zdXJmYWNlLWxpZ2h0LSpgIHRva2Vucy4gKi9cbiAgQElucHV0KClcbiAgc3VyZmFjZTogQ2FyZENvbXBvbmVudC5TdXJmYWNlID0gJzAnO1xuXG4gIC8qKiBTZW1hbnRpYyBiYWNrZ3JvdW5kIHRpbnQuIE92ZXJyaWRlcyBgc3VyZmFjZWAgd2hlbiBub3QgYG5ldXRyYWxgLiAqL1xuICBASW5wdXQoKVxuICB0b25lOiBDYXJkQ29tcG9uZW50LlRvbmUgPSAnbmV1dHJhbCc7XG5cbiAgLyoqIFN0YWNraW5nIGRpcmVjdGlvbiBvZiB0aGUgcHJvamVjdGVkIHBhcnRzLiAqL1xuICBASW5wdXQoKVxuICBvcmllbnRhdGlvbjogQ2FyZENvbXBvbmVudC5PcmllbnRhdGlvbiA9ICd2ZXJ0aWNhbCc7XG5cbiAgLyoqXG4gICAqIFBhZGRpbmcgYXBwbGllZCB0byB0aGUgY2FyZCBpdHNlbGYuIExlYXZlIGFzIGBub25lYCB3aGVuIGNvbXBvc2luZyB3aXRoXG4gICAqIGByaXYtY2FyZC1oZWFkZXJgIC8gYHJpdi1jYXJkLWNvbnRlbnRgIC8gYHJpdi1jYXJkLWFjdGlvbnNgLCB3aGljaCBvd25cbiAgICogdGhlaXIgb3duIHBhZGRpbmcuXG4gICAqL1xuICBASW5wdXQoKVxuICBwYWRkaW5nOiBDYXJkQ29tcG9uZW50LlBhZGRpbmcgPSAnbm9uZSc7XG5cbiAgLyoqIENvcm5lciByYWRpdXMsIG1hdGNoaW5nIHRoZSBgLS1ib3JkZXItcmFkaXVzLSpgIHRva2Vucy4gKi9cbiAgQElucHV0KClcbiAgcmFkaXVzOiBDYXJkQ29tcG9uZW50LlJhZGl1cyA9ICdtZWRpdW0nO1xuXG4gIC8qKlxuICAgKiBTaGFkb3cgcmFpc2VkIG9uIGhvdmVyLCBtYXRjaGluZyB0aGUgYC0tZGVwdGgtKmAgdG9rZW5zLiBEZWZhdWx0cyB0byBgMWBcbiAgICogZm9yIGEgY2xpY2thYmxlIGNhcmQsIGAyYCBmb3IgYSBjbGlja2FibGUgZWxldmF0ZWQgY2FyZCwgYW5kIGBub25lYFxuICAgKiBvdGhlcndpc2UuIEEgaG92ZXIgc2hhZG93IHJlYWRzIGFzIGNsaWNrYWJsZSwgc28gc2V0IGl0IG9uIGEgY2FyZCB0aGF0XG4gICAqIGlzIG5vdCBgY2xpY2thYmxlYCBvbmx5IHdoZW4gdGhlIGNhcmQncyBvd24gY29udHJvbHMgbWFrZSBpdCBpbnRlcmFjdGl2ZS5cbiAgICovXG4gIEBJbnB1dCgpXG4gIGhvdmVyRGVwdGg/OiBDYXJkQ29tcG9uZW50LkRlcHRoO1xuXG4gIC8qKlxuICAgKiBNYWtlcyB0aGUgd2hvbGUgc3VyZmFjZSBhY3RpdmF0ZSwgZW1pdHRpbmcgYGNhcmRDbGlja2AuIEFkZHMgdGhlIGhvdmVyXG4gICAqIGFmZm9yZGFuY2UgYW5kIGtleWJvYXJkIHN1cHBvcnQuXG4gICAqL1xuICBASW5wdXQoKVxuICBjbGlja2FibGU6IGJvb2xlYW4gPSBmYWxzZTtcblxuICAvKipcbiAgICogQWNjZXNzaWJsZSBuYW1lIGZvciB0aGUgY2FyZCdzIGFjdGlvbi4gRGVmYXVsdHMgdG8gdGhlIGByaXYtY2FyZC1oZWFkZXJgXG4gICAqIHRpdGxlLCBmYWxsaW5nIGJhY2sgdG8gdGhlIGNhcmQncyB3aG9sZSB0ZXh0IGNvbnRlbnQgd2hlbiB0aGVyZSBpcyBub1xuICAgKiBoZWFkZXIuIFNldCB0aGlzIHdoZW4gbmVpdGhlciByZWFkcyB3ZWxsIG9uIGl0cyBvd24uXG4gICAqL1xuICBASW5wdXQoKVxuICBjbGlja0xhYmVsPzogc3RyaW5nO1xuXG4gIC8qKlxuICAgKiBNYXJrcyB0aGUgY2FyZCBhcyB0aGUgY3VycmVudCBzZWxlY3Rpb24sIGdpdmluZyBpdCBhIGRpc3RpbmN0IGJvcmRlciBhbmRcbiAgICogc2hhZG93LiBDb21wb3NlcyB3aXRoIGFueSBgdG9uZWAsIHNvIGEgc2VsZWN0ZWQgZGFuZ2VyIGNhcmQga2VlcHMgaXRzXG4gICAqIHRpbnQuIEFubm91bmNlZCB0byBhc3Npc3RpdmUgdGVjaG5vbG9neSB0aHJvdWdoIGBhcmlhLWN1cnJlbnRgLlxuICAgKi9cbiAgQElucHV0KClcbiAgc2VsZWN0ZWQ6IGJvb2xlYW4gPSBmYWxzZTtcblxuICAvKipcbiAgICogTXV0ZXMgdGhlIHN1cmZhY2UsIHN1cHByZXNzZXMgaG92ZXIgZmVlZGJhY2ssIGFuZCBkaXNhYmxlcyB0aGUgY2xpY2tcbiAgICogdGFyZ2V0LiBQcmVzZW50YXRpb25hbCBmb3IgZXZlcnl0aGluZyBlbHNlIOKAlCBkaXNhYmxlIHRoZSBjYXJkJ3Mgb3duXG4gICAqIGNvbnRyb2xzIHRvby5cbiAgICovXG4gIEBJbnB1dCgpXG4gIGRpc2FibGVkOiBib29sZWFuID0gZmFsc2U7XG5cbiAgLyoqIEVtaXR0ZWQgd2hlbiBhIGNsaWNrYWJsZSBjYXJkIGlzIGFjdGl2YXRlZCBieSBwb2ludGVyIG9yIGtleWJvYXJkLiAqL1xuICBAT3V0cHV0KClcbiAgY2FyZENsaWNrID0gbmV3IEV2ZW50RW1pdHRlcjxNb3VzZUV2ZW50PigpO1xuXG4gIC8qKlxuICAgKiBOYW1lcyB0aGUgY2xpY2sgdGFyZ2V0IGZyb20gdGhlIGNhcmQncyBjb250ZW50LiBHZW5lcmF0ZWQgb25seSB3aGVuIHRoZVxuICAgKiBjb25zdW1lciBoYXMgbm90IHNldCB0aGVpciBvd24gaWQuXG4gICAqL1xuICBwcml2YXRlIGNhcmRJZDogc3RyaW5nID0gJyc7XG5cbiAgLyoqIFNldCBieSBhIHByb2plY3RlZCBgcml2LWNhcmQtaGVhZGVyYCB0aGF0IGhhcyBhIHRpdGxlIHRvIG5hbWUgYWdhaW5zdC4gKi9cbiAgcHJpdmF0ZSB0aXRsZUlkPzogc3RyaW5nO1xuXG4gIC8qKiBTZXQgYnkgYSBwcm9qZWN0ZWQgYHJpdi1jYXJkLWhlYWRlcmAgdGhhdCBpcyBleHBhbmRhYmxlLiAqL1xuICBwcml2YXRlIGV4cGFuZFJlZ2lvbklkPzogc3RyaW5nO1xuXG4gIC8qKlxuICAgKiBJZCBhbiBleHBhbmRhYmxlIGhlYWRlcidzIHRvZ2dsZSBwb2ludHMgYGFyaWEtY29udHJvbHNgIGF0LCB3b3JuIGJ5IGFcbiAgICogcHJvamVjdGVkIGByaXYtY2FyZC1jb250ZW50YC5cbiAgICovXG4gIGdldCByZWdpb25JZCgpOiBzdHJpbmcgfCB1bmRlZmluZWQge1xuICAgIHJldHVybiB0aGlzLmV4cGFuZFJlZ2lvbklkO1xuICB9XG5cbiAgbmdPbkluaXQoKSB7XG4gICAgdGhpcy5jYXJkSWQgPSB0aGlzLmVsLm5hdGl2ZUVsZW1lbnQuaWQgfHwgdW5pcXVlSWQoJ3Jpdi1jYXJkLScpO1xuICAgIGlmICghdGhpcy5lbC5uYXRpdmVFbGVtZW50LmlkKSB7XG4gICAgICB0aGlzLnJlbmRlcmVyLnNldEF0dHJpYnV0ZSh0aGlzLmVsLm5hdGl2ZUVsZW1lbnQsICdpZCcsIHRoaXMuY2FyZElkKTtcbiAgICB9XG4gIH1cblxuICAvKipcbiAgICogUmVnaXN0ZXJzIHRoZSBoZWFkZXIncyB0aXRsZSBhcyB0aGUgY2xpY2sgdGFyZ2V0J3MgYWNjZXNzaWJsZSBuYW1lLCB3aGljaFxuICAgKiBrZWVwcyB0aGUgYW5ub3VuY2VtZW50IHRvIHRoZSBjYXJkJ3Mgc3ViamVjdCBpbnN0ZWFkIG9mIGV2ZXJ5IHdvcmQgb24gdGhlXG4gICAqIHN1cmZhY2UuIENhbGxlZCBieSBgcml2LWNhcmQtaGVhZGVyYDsgbm90IHBhcnQgb2YgdGhlIHB1YmxpYyBBUEkuXG4gICAqL1xuICBzZXRUaXRsZUlkKGlkOiBzdHJpbmcgfCB1bmRlZmluZWQpIHtcbiAgICB0aGlzLnRpdGxlSWQgPSBpZDtcbiAgICB0aGlzLmNkci5tYXJrRm9yQ2hlY2soKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBHaXZlcyB1cCBhIHRpdGxlIHJlZ2lzdGVyZWQgYnkgYHNldFRpdGxlSWRgLCBzbyBhIGhlYWRlciB0aGF0IGlzIHJlbW92ZWRcbiAgICogZG9lcyBub3QgbGVhdmUgdGhlIGNsaWNrIHRhcmdldCBuYW1pbmcgaXRzZWxmIGFnYWluc3QgYSBkZXRhY2hlZCBlbGVtZW50LlxuICAgKiBJZ25vcmVzIGlkcyB0aGF0IGFyZSBubyBsb25nZXIgdGhlIG9uZSBpbiB1c2UuXG4gICAqL1xuICBjbGVhclRpdGxlSWQoaWQ6IHN0cmluZykge1xuICAgIGlmICh0aGlzLnRpdGxlSWQgPT09IGlkKSB7XG4gICAgICB0aGlzLnNldFRpdGxlSWQodW5kZWZpbmVkKTtcbiAgICB9XG4gIH1cblxuICAvKipcbiAgICogUmVsYXlzIHRoZSByZWdpb24gYW4gZXhwYW5kYWJsZSBoZWFkZXIgY29udHJvbHMgdG8gdGhlIHByb2plY3RlZFxuICAgKiBgcml2LWNhcmQtY29udGVudGAsIHNvIG5laXRoZXIgc2lkZSBuZWVkcyB0aGUgY29uc3VtZXIgdG8gd2lyZSBhbiBpZC5cbiAgICogQ2FsbGVkIGJ5IGByaXYtY2FyZC1oZWFkZXJgOyBub3QgcGFydCBvZiB0aGUgcHVibGljIEFQSS5cbiAgICovXG4gIHNldFJlZ2lvbklkKGlkOiBzdHJpbmcgfCB1bmRlZmluZWQpIHtcbiAgICB0aGlzLmV4cGFuZFJlZ2lvbklkID0gaWQ7XG4gICAgdGhpcy5jZHIubWFya0ZvckNoZWNrKCk7XG4gIH1cblxuICAvKipcbiAgICogR2l2ZXMgdXAgYSByZWdpb24gcmVnaXN0ZXJlZCBieSBgc2V0UmVnaW9uSWRgLiBJZ25vcmVzIGlkcyB0aGF0IGFyZSBub1xuICAgKiBsb25nZXIgdGhlIG9uZSBpbiB1c2UuXG4gICAqL1xuICBjbGVhclJlZ2lvbklkKGlkOiBzdHJpbmcpIHtcbiAgICBpZiAodGhpcy5leHBhbmRSZWdpb25JZCA9PT0gaWQpIHtcbiAgICAgIHRoaXMuc2V0UmVnaW9uSWQodW5kZWZpbmVkKTtcbiAgICB9XG4gIH1cblxuICAvKipcbiAgICogRWxlbWVudCB3aG9zZSB0ZXh0IG5hbWVzIHRoZSBjbGljayB0YXJnZXQsIHVubGVzcyBgY2xpY2tMYWJlbGAgaXMgc2V0LiBUaGVcbiAgICogaG9zdCBpZCBpcyByZWFkIGZyb20gdGhlIERPTSByYXRoZXIgdGhhbiBjYWNoZWQsIHNvIGEgYm91bmQgYFtpZF1gIHRoYXRcbiAgICogY2hhbmdlcyBpcyBwaWNrZWQgdXAgb24gdGhlIGNhcmQncyBuZXh0IGNoYW5nZSBkZXRlY3Rpb24uXG4gICAqL1xuICBwcm90ZWN0ZWQgZ2V0IGxhYmVsbGVkQnkoKTogc3RyaW5nIHwgbnVsbCB7XG4gICAgaWYgKHRoaXMuY2xpY2tMYWJlbCkgcmV0dXJuIG51bGw7XG4gICAgcmV0dXJuIHRoaXMudGl0bGVJZCA/PyAodGhpcy5lbC5uYXRpdmVFbGVtZW50LmlkIHx8IHRoaXMuY2FyZElkKTtcbiAgfVxuXG4gIC8qKiBBbm5vdW5jZXMgdGhlIGN1cnJlbnQgc2VsZWN0aW9uIHRvIGFzc2lzdGl2ZSB0ZWNobm9sb2d5LiAqL1xuICBASG9zdEJpbmRpbmcoJ2F0dHIuYXJpYS1jdXJyZW50JylcbiAgZ2V0IGFyaWFDdXJyZW50KCk6IHN0cmluZyB8IG51bGwge1xuICAgIHJldHVybiB0aGlzLnNlbGVjdGVkID8gJ3RydWUnIDogbnVsbDtcbiAgfVxuXG4gIEBIb3N0QmluZGluZygnY2xhc3MnKVxuICBnZXQgY2xhc3NlcygpOiBzdHJpbmcge1xuICAgIHJldHVybiBPYmplY3QuZW50cmllcyh7XG4gICAgICBbdGhpcy52YXJpYW50XTogdHJ1ZSxcbiAgICAgIFtgc3VyZmFjZS0ke3RoaXMuc3VyZmFjZX1gXTogdHJ1ZSxcbiAgICAgIFtgdG9uZS0ke3RoaXMudG9uZX1gXTogdHJ1ZSxcbiAgICAgIFt0aGlzLm9yaWVudGF0aW9uXTogdHJ1ZSxcbiAgICAgIFtgcGFkZGluZy0ke3RoaXMucGFkZGluZ31gXTogdHJ1ZSxcbiAgICAgIFtgcmFkaXVzLSR7dGhpcy5yYWRpdXN9YF06IHRydWUsXG4gICAgICBbYGhvdmVyLWRlcHRoLSR7XG4gICAgICAgIHRoaXMuaG92ZXJEZXB0aCA/PyBDYXJkQ29tcG9uZW50LmRlZmF1bHRIb3ZlckRlcHRoKHRoaXMpXG4gICAgICB9YF06IHRydWUsXG4gICAgICBjbGlja2FibGU6IHRoaXMuY2xpY2thYmxlLFxuICAgICAgc2VsZWN0ZWQ6IHRoaXMuc2VsZWN0ZWQsXG4gICAgICBkaXNhYmxlZDogdGhpcy5kaXNhYmxlZCxcbiAgICB9KVxuICAgICAgLmZpbHRlcigoW18sIHZdKSA9PiB2KVxuICAgICAgLm1hcCgoW2tdKSA9PiBrKVxuICAgICAgLmpvaW4oJyAnKTtcbiAgfVxufVxuXG5leHBvcnQgbmFtZXNwYWNlIENhcmRDb21wb25lbnQge1xuICBleHBvcnQgY29uc3QgVmFyaWFudHMgPSBbJ291dGxpbmVkJywgJ2VsZXZhdGVkJywgJ2ZsYXQnLCAnZGFzaGVkJ10gYXMgY29uc3Q7XG4gIGV4cG9ydCB0eXBlIFZhcmlhbnQgPSAodHlwZW9mIFZhcmlhbnRzKVtudW1iZXJdO1xuXG4gIGV4cG9ydCBjb25zdCBTdXJmYWNlcyA9IFsnMCcsICcxJywgJzInXSBhcyBjb25zdDtcbiAgZXhwb3J0IHR5cGUgU3VyZmFjZSA9ICh0eXBlb2YgU3VyZmFjZXMpW251bWJlcl07XG5cbiAgZXhwb3J0IGNvbnN0IFRvbmVzID0gW1xuICAgICduZXV0cmFsJyxcbiAgICAnZGFuZ2VyJyxcbiAgICAnY2F1dGlvbicsXG4gICAgJ3dhcm5pbmcnLFxuICAgICdzYWZldHknLFxuICAgICdzZWxlY3RlZCcsXG4gIF0gYXMgY29uc3Q7XG4gIGV4cG9ydCB0eXBlIFRvbmUgPSAodHlwZW9mIFRvbmVzKVtudW1iZXJdO1xuXG4gIGV4cG9ydCBjb25zdCBPcmllbnRhdGlvbnMgPSBbJ3ZlcnRpY2FsJywgJ2hvcml6b250YWwnXSBhcyBjb25zdDtcbiAgZXhwb3J0IHR5cGUgT3JpZW50YXRpb24gPSAodHlwZW9mIE9yaWVudGF0aW9ucylbbnVtYmVyXTtcblxuICAvKiogU2hhcmVkIHBhZGRpbmcgc2NhbGUgZm9yIHRoZSBjYXJkIGFuZCBpdHMgc3ViLWNvbXBvbmVudHMuICovXG4gIGV4cG9ydCBjb25zdCBQYWRkaW5ncyA9IFtcbiAgICAnbm9uZScsXG4gICAgJ3NtYWxsJyxcbiAgICAnbWVkaXVtJyxcbiAgICAnbGFyZ2UnLFxuICAgICd4bGFyZ2UnLFxuICAgICd4eGxhcmdlJyxcbiAgXSBhcyBjb25zdDtcbiAgZXhwb3J0IHR5cGUgUGFkZGluZyA9ICh0eXBlb2YgUGFkZGluZ3MpW251bWJlcl07XG5cbiAgZXhwb3J0IGNvbnN0IFJhZGlpID0gWydzbWFsbCcsICdtZWRpdW0nLCAnbGFyZ2UnLCAneGxhcmdlJ10gYXMgY29uc3Q7XG4gIGV4cG9ydCB0eXBlIFJhZGl1cyA9ICh0eXBlb2YgUmFkaWkpW251bWJlcl07XG5cbiAgZXhwb3J0IGNvbnN0IERlcHRocyA9IFsnbm9uZScsICcxJywgJzInLCAnMycsICc0J10gYXMgY29uc3Q7XG4gIGV4cG9ydCB0eXBlIERlcHRoID0gKHR5cGVvZiBEZXB0aHMpW251bWJlcl07XG5cbiAgZXhwb3J0IGZ1bmN0aW9uIGRlZmF1bHRIb3ZlckRlcHRoKHtcbiAgICBjbGlja2FibGUsXG4gICAgdmFyaWFudCxcbiAgfTogUGljazxDYXJkQ29tcG9uZW50LCAnY2xpY2thYmxlJyB8ICd2YXJpYW50Jz4pOiBEZXB0aCB7XG4gICAgaWYgKCFjbGlja2FibGUpIHJldHVybiAnbm9uZSc7XG4gICAgcmV0dXJuIHZhcmlhbnQgPT09ICdlbGV2YXRlZCcgPyAnMicgOiAnMSc7XG4gIH1cbn1cbiIsIjxidXR0b25cbiAgKm5nSWY9XCJjbGlja2FibGVcIlxuICB0eXBlPVwiYnV0dG9uXCJcbiAgY2xhc3M9XCJjbGljay10YXJnZXRcIlxuICBbZGlzYWJsZWRdPVwiZGlzYWJsZWRcIlxuICBbYXR0ci5hcmlhLWRpc2FibGVkXT1cImRpc2FibGVkID8gJ3RydWUnIDogbnVsbFwiXG4gIFthdHRyLmFyaWEtbGFiZWxdPVwiY2xpY2tMYWJlbFwiXG4gIFthdHRyLmFyaWEtbGFiZWxsZWRieV09XCJsYWJlbGxlZEJ5XCJcbiAgKGNsaWNrKT1cImNhcmRDbGljay5lbWl0KCRldmVudClcIlxuPjwvYnV0dG9uPlxuPG5nLWNvbnRlbnQ+PC9uZy1jb250ZW50PlxuIl19
|
|
@@ -1,111 +0,0 @@
|
|
|
1
|
-
import { ChangeDetectionStrategy, Component, ContentChild, EventEmitter, HostBinding, Input, Output, } from '@angular/core';
|
|
2
|
-
import * as i0 from "@angular/core";
|
|
3
|
-
import * as i1 from "@angular/common";
|
|
4
|
-
import * as i2 from "../../input/button/button.component";
|
|
5
|
-
import * as i3 from "../../icon/icon.component";
|
|
6
|
-
import * as i4 from "../../accessibility/sr-only/sr-only.component";
|
|
7
|
-
import * as i5 from "../../overlay/callout/tooltip/tooltip.directive";
|
|
8
|
-
/**
|
|
9
|
-
* One labelled setting that is read in place and edited inline.
|
|
10
|
-
*
|
|
11
|
-
* Reading shows the label, the current value, and an edit button. Editing
|
|
12
|
-
* swaps the value for a consumer-supplied field plus Cancel and Save buttons.
|
|
13
|
-
* The row holds no state of its own — bind `editing` and act on `edit`,
|
|
14
|
-
* `cancel`, and `save`.
|
|
15
|
-
*
|
|
16
|
-
* Set the value shown while reading with `value` for plain text, or project
|
|
17
|
-
* richer content such as a `riv-badge` into the `[display-value]` slot. Use
|
|
18
|
-
* one or the other: when `value` is set, the slot isn't shown.
|
|
19
|
-
*
|
|
20
|
-
* Two content slots:
|
|
21
|
-
* - `[display-value]` — content shown while reading, when `value` is empty
|
|
22
|
-
* - `#editor` template — any field component to edit the value with, such as
|
|
23
|
-
* `riv-text-field`, `riv-currency-field`, or `riv-simple-select`. The row
|
|
24
|
-
* wraps it in a `<label>` named after `label`, so don't give the field its
|
|
25
|
-
* own label. Only the first control in the template gets that name, so keep
|
|
26
|
-
* it to one field.
|
|
27
|
-
*
|
|
28
|
-
* ```html
|
|
29
|
-
* <riv-setting-row
|
|
30
|
-
* [label]="'Threshold'"
|
|
31
|
-
* [infoTooltip]="'Applies to new claims only'"
|
|
32
|
-
* [editing]="editing"
|
|
33
|
-
* [saving]="saving"
|
|
34
|
-
* (edit)="editing = true"
|
|
35
|
-
* (cancel)="editing = false"
|
|
36
|
-
* (save)="save()"
|
|
37
|
-
* [value]="threshold + '%'"
|
|
38
|
-
* >
|
|
39
|
-
* <ng-template #editor>
|
|
40
|
-
* <riv-text-field [(value)]="draft"></riv-text-field>
|
|
41
|
-
* </ng-template>
|
|
42
|
-
* </riv-setting-row>
|
|
43
|
-
* ```
|
|
44
|
-
*
|
|
45
|
-
* Stack rows directly to build a settings list; each row pads itself
|
|
46
|
-
* vertically and lays out on a shared twelve-column grid so labels, values,
|
|
47
|
-
* and actions line up between rows.
|
|
48
|
-
*/
|
|
49
|
-
export class SettingRowComponent {
|
|
50
|
-
constructor() {
|
|
51
|
-
/** Names the setting. Also gives the edit button its screen-reader name, "Edit {label}". */
|
|
52
|
-
this.label = '';
|
|
53
|
-
/**
|
|
54
|
-
* The value shown while reading, as plain text and already formatted, such
|
|
55
|
-
* as `'$250'`. For anything richer, leave this empty and project it into
|
|
56
|
-
* `[display-value]` instead.
|
|
57
|
-
*/
|
|
58
|
-
this.value = '';
|
|
59
|
-
/** Explains the setting from an info icon beside the label. */
|
|
60
|
-
this.infoTooltip = '';
|
|
61
|
-
/**
|
|
62
|
-
* Whether the edit field is shown. The consumer (the parent component) owns
|
|
63
|
-
* this state, so it can keep only one row open for editing at a time.
|
|
64
|
-
*/
|
|
65
|
-
this.editing = false;
|
|
66
|
-
/** Blocks Save, for a draft that is not yet valid. */
|
|
67
|
-
this.saveDisabled = false;
|
|
68
|
-
/** Shows Save as loading and blocks Save and Cancel while a save is in flight. */
|
|
69
|
-
this.saving = false;
|
|
70
|
-
this.tooltipMaxWidth = '320px';
|
|
71
|
-
this.edit = new EventEmitter();
|
|
72
|
-
this.cancel = new EventEmitter();
|
|
73
|
-
this.save = new EventEmitter();
|
|
74
|
-
}
|
|
75
|
-
get editingClass() {
|
|
76
|
-
return this.editing;
|
|
77
|
-
}
|
|
78
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: SettingRowComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
|
|
79
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.2.14", type: SettingRowComponent, selector: "riv-setting-row", inputs: { label: "label", value: "value", infoTooltip: "infoTooltip", editing: "editing", saveDisabled: "saveDisabled", saving: "saving", tooltipMaxWidth: "tooltipMaxWidth" }, outputs: { edit: "edit", cancel: "cancel", save: "save" }, host: { properties: { "class.editing": "this.editingClass" } }, queries: [{ propertyName: "editor", first: true, predicate: ["editor"], descendants: true }], ngImport: i0, template: "<span class=\"label\">\n <riv-icon\n *ngIf=\"infoTooltip\"\n [name]=\"'Info'\"\n [size]=\"16\"\n [rivTooltip]=\"infoTooltip\"\n [rivTooltipMaxWidth]=\"tooltipMaxWidth\"\n ></riv-icon>\n {{ label }}\n</span>\n\n<ng-container *ngIf=\"!editing; else editMode\">\n <span class=\"value\">\n <ng-container *ngIf=\"value; else projectedValue\">{{ value }}</ng-container>\n <ng-template #projectedValue>\n <ng-content select=\"[display-value]\"></ng-content>\n </ng-template>\n </span>\n <div class=\"actions\">\n <button\n rivButton\n type=\"button\"\n [icon]=\"'Edit2'\"\n [rivTooltip]=\"'Edit'\"\n [variant]=\"'ghost'\"\n [attr.aria-label]=\"'Edit ' + label\"\n (click)=\"edit.emit()\"\n ></button>\n </div>\n</ng-container>\n\n<ng-template #editMode>\n <label class=\"field\">\n <riv-sr-only>{{ label }}</riv-sr-only>\n <ng-container *ngTemplateOutlet=\"editor ?? null\"></ng-container>\n </label>\n\n <div class=\"actions\">\n <button\n rivButton\n type=\"button\"\n [variant]=\"'basic'\"\n [size]=\"'medium'\"\n [disabled]=\"saving\"\n (click)=\"cancel.emit()\"\n >\n Cancel\n </button>\n <button\n rivButton\n type=\"button\"\n [variant]=\"'primary'\"\n [size]=\"'medium'\"\n [disabled]=\"saveDisabled || saving\"\n [loading]=\"saving\"\n (click)=\"save.emit()\"\n >\n Save\n </button>\n </div>\n</ng-template>\n", styles: [":host{display:grid;grid-template-columns:repeat(12,minmax(0,1fr));column-gap:var(--size-large);align-items:center;padding-block:var(--size-medium);color:var(--type-light-high-contrast)}.label,.value,.actions{display:flex;align-items:center;gap:var(--size-small)}.label{grid-column-end:span 4;font:var(--title-02)}.value{grid-column-end:span 7;font:var(--body-medium)}.field{grid-column-end:span 4}.actions{grid-column-end:span 1;justify-content:flex-end}:host.editing .actions{grid-column-end:span 4}\n"], dependencies: [{ 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.ButtonComponent, selector: "[rivButton]", inputs: ["locked", "disabled", "loading", "full", "size", "variant", "icon", "iconPosition", "current"] }, { kind: "component", type: i3.IconComponent, selector: "riv-icon", inputs: ["name", "fillColor", "size", "customSize", "strokeWidth"] }, { kind: "component", type: i4.SrOnlyComponent, selector: "riv-sr-only" }, { kind: "directive", type: i5.TooltipDirective, selector: "[rivTooltip]", inputs: ["rivTooltip", "rivTooltipTheme", "rivTooltipMaxWidth", "rivTooltipPreferredPosition", "rivTooltipAnchor", "rivTooltipCloseDelay", "rivTooltipOpenDelay", "rivTooltipGracePeriod"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
|
|
80
|
-
}
|
|
81
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: SettingRowComponent, decorators: [{
|
|
82
|
-
type: Component,
|
|
83
|
-
args: [{ selector: 'riv-setting-row', changeDetection: ChangeDetectionStrategy.OnPush, template: "<span class=\"label\">\n <riv-icon\n *ngIf=\"infoTooltip\"\n [name]=\"'Info'\"\n [size]=\"16\"\n [rivTooltip]=\"infoTooltip\"\n [rivTooltipMaxWidth]=\"tooltipMaxWidth\"\n ></riv-icon>\n {{ label }}\n</span>\n\n<ng-container *ngIf=\"!editing; else editMode\">\n <span class=\"value\">\n <ng-container *ngIf=\"value; else projectedValue\">{{ value }}</ng-container>\n <ng-template #projectedValue>\n <ng-content select=\"[display-value]\"></ng-content>\n </ng-template>\n </span>\n <div class=\"actions\">\n <button\n rivButton\n type=\"button\"\n [icon]=\"'Edit2'\"\n [rivTooltip]=\"'Edit'\"\n [variant]=\"'ghost'\"\n [attr.aria-label]=\"'Edit ' + label\"\n (click)=\"edit.emit()\"\n ></button>\n </div>\n</ng-container>\n\n<ng-template #editMode>\n <label class=\"field\">\n <riv-sr-only>{{ label }}</riv-sr-only>\n <ng-container *ngTemplateOutlet=\"editor ?? null\"></ng-container>\n </label>\n\n <div class=\"actions\">\n <button\n rivButton\n type=\"button\"\n [variant]=\"'basic'\"\n [size]=\"'medium'\"\n [disabled]=\"saving\"\n (click)=\"cancel.emit()\"\n >\n Cancel\n </button>\n <button\n rivButton\n type=\"button\"\n [variant]=\"'primary'\"\n [size]=\"'medium'\"\n [disabled]=\"saveDisabled || saving\"\n [loading]=\"saving\"\n (click)=\"save.emit()\"\n >\n Save\n </button>\n </div>\n</ng-template>\n", styles: [":host{display:grid;grid-template-columns:repeat(12,minmax(0,1fr));column-gap:var(--size-large);align-items:center;padding-block:var(--size-medium);color:var(--type-light-high-contrast)}.label,.value,.actions{display:flex;align-items:center;gap:var(--size-small)}.label{grid-column-end:span 4;font:var(--title-02)}.value{grid-column-end:span 7;font:var(--body-medium)}.field{grid-column-end:span 4}.actions{grid-column-end:span 1;justify-content:flex-end}:host.editing .actions{grid-column-end:span 4}\n"] }]
|
|
84
|
-
}], propDecorators: { label: [{
|
|
85
|
-
type: Input
|
|
86
|
-
}], value: [{
|
|
87
|
-
type: Input
|
|
88
|
-
}], infoTooltip: [{
|
|
89
|
-
type: Input
|
|
90
|
-
}], editing: [{
|
|
91
|
-
type: Input
|
|
92
|
-
}], saveDisabled: [{
|
|
93
|
-
type: Input
|
|
94
|
-
}], saving: [{
|
|
95
|
-
type: Input
|
|
96
|
-
}], tooltipMaxWidth: [{
|
|
97
|
-
type: Input
|
|
98
|
-
}], edit: [{
|
|
99
|
-
type: Output
|
|
100
|
-
}], cancel: [{
|
|
101
|
-
type: Output
|
|
102
|
-
}], save: [{
|
|
103
|
-
type: Output
|
|
104
|
-
}], editor: [{
|
|
105
|
-
type: ContentChild,
|
|
106
|
-
args: ['editor']
|
|
107
|
-
}], editingClass: [{
|
|
108
|
-
type: HostBinding,
|
|
109
|
-
args: ['class.editing']
|
|
110
|
-
}] } });
|
|
111
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2V0dGluZy1yb3cuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvcml2L3NyYy9saWIvbGF5b3V0L3NldHRpbmctcm93L3NldHRpbmctcm93LmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL3Jpdi9zcmMvbGliL2xheW91dC9zZXR0aW5nLXJvdy9zZXR0aW5nLXJvdy5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQ0wsdUJBQXVCLEVBQ3ZCLFNBQVMsRUFDVCxZQUFZLEVBQ1osWUFBWSxFQUNaLFdBQVcsRUFDWCxLQUFLLEVBQ0wsTUFBTSxHQUVQLE1BQU0sZUFBZSxDQUFDOzs7Ozs7O0FBRXZCOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0dBd0NHO0FBT0gsTUFBTSxPQUFPLG1CQUFtQjtJQU5oQztRQU9FLDRGQUE0RjtRQUU1RixVQUFLLEdBQVcsRUFBRSxDQUFDO1FBRW5COzs7O1dBSUc7UUFFSCxVQUFLLEdBQVcsRUFBRSxDQUFDO1FBRW5CLCtEQUErRDtRQUUvRCxnQkFBVyxHQUFXLEVBQUUsQ0FBQztRQUV6Qjs7O1dBR0c7UUFFSCxZQUFPLEdBQVksS0FBSyxDQUFDO1FBRXpCLHNEQUFzRDtRQUV0RCxpQkFBWSxHQUFZLEtBQUssQ0FBQztRQUU5QixrRkFBa0Y7UUFFbEYsV0FBTSxHQUFZLEtBQUssQ0FBQztRQUd4QixvQkFBZSxHQUFXLE9BQU8sQ0FBQztRQUdsQyxTQUFJLEdBQUcsSUFBSSxZQUFZLEVBQVEsQ0FBQztRQUdoQyxXQUFNLEdBQUcsSUFBSSxZQUFZLEVBQVEsQ0FBQztRQUdsQyxTQUFJLEdBQUcsSUFBSSxZQUFZLEVBQVEsQ0FBQztLQVNqQztJQUpDLElBQ0ksWUFBWTtRQUNkLE9BQU8sSUFBSSxDQUFDLE9BQU8sQ0FBQztJQUN0QixDQUFDOytHQWxEVSxtQkFBbUI7bUdBQW5CLG1CQUFtQixnY0MxRGhDLHE5Q0E2REE7OzRGREhhLG1CQUFtQjtrQkFOL0IsU0FBUzsrQkFDRSxpQkFBaUIsbUJBR1YsdUJBQXVCLENBQUMsTUFBTTs4QkFLL0MsS0FBSztzQkFESixLQUFLO2dCQVNOLEtBQUs7c0JBREosS0FBSztnQkFLTixXQUFXO3NCQURWLEtBQUs7Z0JBUU4sT0FBTztzQkFETixLQUFLO2dCQUtOLFlBQVk7c0JBRFgsS0FBSztnQkFLTixNQUFNO3NCQURMLEtBQUs7Z0JBSU4sZUFBZTtzQkFEZCxLQUFLO2dCQUlOLElBQUk7c0JBREgsTUFBTTtnQkFJUCxNQUFNO3NCQURMLE1BQU07Z0JBSVAsSUFBSTtzQkFESCxNQUFNO2dCQUlQLE1BQU07c0JBREwsWUFBWTt1QkFBQyxRQUFRO2dCQUlsQixZQUFZO3NCQURmLFdBQVc7dUJBQUMsZUFBZSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7XG4gIENoYW5nZURldGVjdGlvblN0cmF0ZWd5LFxuICBDb21wb25lbnQsXG4gIENvbnRlbnRDaGlsZCxcbiAgRXZlbnRFbWl0dGVyLFxuICBIb3N0QmluZGluZyxcbiAgSW5wdXQsXG4gIE91dHB1dCxcbiAgVGVtcGxhdGVSZWYsXG59IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuXG4vKipcbiAqIE9uZSBsYWJlbGxlZCBzZXR0aW5nIHRoYXQgaXMgcmVhZCBpbiBwbGFjZSBhbmQgZWRpdGVkIGlubGluZS5cbiAqXG4gKiBSZWFkaW5nIHNob3dzIHRoZSBsYWJlbCwgdGhlIGN1cnJlbnQgdmFsdWUsIGFuZCBhbiBlZGl0IGJ1dHRvbi4gRWRpdGluZ1xuICogc3dhcHMgdGhlIHZhbHVlIGZvciBhIGNvbnN1bWVyLXN1cHBsaWVkIGZpZWxkIHBsdXMgQ2FuY2VsIGFuZCBTYXZlIGJ1dHRvbnMuXG4gKiBUaGUgcm93IGhvbGRzIG5vIHN0YXRlIG9mIGl0cyBvd24g4oCUIGJpbmQgYGVkaXRpbmdgIGFuZCBhY3Qgb24gYGVkaXRgLFxuICogYGNhbmNlbGAsIGFuZCBgc2F2ZWAuXG4gKlxuICogU2V0IHRoZSB2YWx1ZSBzaG93biB3aGlsZSByZWFkaW5nIHdpdGggYHZhbHVlYCBmb3IgcGxhaW4gdGV4dCwgb3IgcHJvamVjdFxuICogcmljaGVyIGNvbnRlbnQgc3VjaCBhcyBhIGByaXYtYmFkZ2VgIGludG8gdGhlIGBbZGlzcGxheS12YWx1ZV1gIHNsb3QuIFVzZVxuICogb25lIG9yIHRoZSBvdGhlcjogd2hlbiBgdmFsdWVgIGlzIHNldCwgdGhlIHNsb3QgaXNuJ3Qgc2hvd24uXG4gKlxuICogVHdvIGNvbnRlbnQgc2xvdHM6XG4gKiAtIGBbZGlzcGxheS12YWx1ZV1gIOKAlCBjb250ZW50IHNob3duIHdoaWxlIHJlYWRpbmcsIHdoZW4gYHZhbHVlYCBpcyBlbXB0eVxuICogLSBgI2VkaXRvcmAgdGVtcGxhdGUg4oCUIGFueSBmaWVsZCBjb21wb25lbnQgdG8gZWRpdCB0aGUgdmFsdWUgd2l0aCwgc3VjaCBhc1xuICogICBgcml2LXRleHQtZmllbGRgLCBgcml2LWN1cnJlbmN5LWZpZWxkYCwgb3IgYHJpdi1zaW1wbGUtc2VsZWN0YC4gVGhlIHJvd1xuICogICB3cmFwcyBpdCBpbiBhIGA8bGFiZWw+YCBuYW1lZCBhZnRlciBgbGFiZWxgLCBzbyBkb24ndCBnaXZlIHRoZSBmaWVsZCBpdHNcbiAqICAgb3duIGxhYmVsLiBPbmx5IHRoZSBmaXJzdCBjb250cm9sIGluIHRoZSB0ZW1wbGF0ZSBnZXRzIHRoYXQgbmFtZSwgc28ga2VlcFxuICogICBpdCB0byBvbmUgZmllbGQuXG4gKlxuICogYGBgaHRtbFxuICogPHJpdi1zZXR0aW5nLXJvd1xuICogICBbbGFiZWxdPVwiJ1RocmVzaG9sZCdcIlxuICogICBbaW5mb1Rvb2x0aXBdPVwiJ0FwcGxpZXMgdG8gbmV3IGNsYWltcyBvbmx5J1wiXG4gKiAgIFtlZGl0aW5nXT1cImVkaXRpbmdcIlxuICogICBbc2F2aW5nXT1cInNhdmluZ1wiXG4gKiAgIChlZGl0KT1cImVkaXRpbmcgPSB0cnVlXCJcbiAqICAgKGNhbmNlbCk9XCJlZGl0aW5nID0gZmFsc2VcIlxuICogICAoc2F2ZSk9XCJzYXZlKClcIlxuICogICBbdmFsdWVdPVwidGhyZXNob2xkICsgJyUnXCJcbiAqID5cbiAqICAgPG5nLXRlbXBsYXRlICNlZGl0b3I+XG4gKiAgICAgPHJpdi10ZXh0LWZpZWxkIFsodmFsdWUpXT1cImRyYWZ0XCI+PC9yaXYtdGV4dC1maWVsZD5cbiAqICAgPC9uZy10ZW1wbGF0ZT5cbiAqIDwvcml2LXNldHRpbmctcm93PlxuICogYGBgXG4gKlxuICogU3RhY2sgcm93cyBkaXJlY3RseSB0byBidWlsZCBhIHNldHRpbmdzIGxpc3Q7IGVhY2ggcm93IHBhZHMgaXRzZWxmXG4gKiB2ZXJ0aWNhbGx5IGFuZCBsYXlzIG91dCBvbiBhIHNoYXJlZCB0d2VsdmUtY29sdW1uIGdyaWQgc28gbGFiZWxzLCB2YWx1ZXMsXG4gKiBhbmQgYWN0aW9ucyBsaW5lIHVwIGJldHdlZW4gcm93cy5cbiAqL1xuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAncml2LXNldHRpbmctcm93JyxcbiAgdGVtcGxhdGVVcmw6ICcuL3NldHRpbmctcm93LmNvbXBvbmVudC5odG1sJyxcbiAgc3R5bGVVcmxzOiBbJy4vc2V0dGluZy1yb3cuY29tcG9uZW50LmNzcyddLFxuICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaCxcbn0pXG5leHBvcnQgY2xhc3MgU2V0dGluZ1Jvd0NvbXBvbmVudCB7XG4gIC8qKiBOYW1lcyB0aGUgc2V0dGluZy4gQWxzbyBnaXZlcyB0aGUgZWRpdCBidXR0b24gaXRzIHNjcmVlbi1yZWFkZXIgbmFtZSwgXCJFZGl0IHtsYWJlbH1cIi4gKi9cbiAgQElucHV0KClcbiAgbGFiZWw6IHN0cmluZyA9ICcnO1xuXG4gIC8qKlxuICAgKiBUaGUgdmFsdWUgc2hvd24gd2hpbGUgcmVhZGluZywgYXMgcGxhaW4gdGV4dCBhbmQgYWxyZWFkeSBmb3JtYXR0ZWQsIHN1Y2hcbiAgICogYXMgYCckMjUwJ2AuIEZvciBhbnl0aGluZyByaWNoZXIsIGxlYXZlIHRoaXMgZW1wdHkgYW5kIHByb2plY3QgaXQgaW50b1xuICAgKiBgW2Rpc3BsYXktdmFsdWVdYCBpbnN0ZWFkLlxuICAgKi9cbiAgQElucHV0KClcbiAgdmFsdWU6IHN0cmluZyA9ICcnO1xuXG4gIC8qKiBFeHBsYWlucyB0aGUgc2V0dGluZyBmcm9tIGFuIGluZm8gaWNvbiBiZXNpZGUgdGhlIGxhYmVsLiAqL1xuICBASW5wdXQoKVxuICBpbmZvVG9vbHRpcDogc3RyaW5nID0gJyc7XG5cbiAgLyoqXG4gICAqIFdoZXRoZXIgdGhlIGVkaXQgZmllbGQgaXMgc2hvd24uIFRoZSBjb25zdW1lciAodGhlIHBhcmVudCBjb21wb25lbnQpIG93bnNcbiAgICogdGhpcyBzdGF0ZSwgc28gaXQgY2FuIGtlZXAgb25seSBvbmUgcm93IG9wZW4gZm9yIGVkaXRpbmcgYXQgYSB0aW1lLlxuICAgKi9cbiAgQElucHV0KClcbiAgZWRpdGluZzogYm9vbGVhbiA9IGZhbHNlO1xuXG4gIC8qKiBCbG9ja3MgU2F2ZSwgZm9yIGEgZHJhZnQgdGhhdCBpcyBub3QgeWV0IHZhbGlkLiAqL1xuICBASW5wdXQoKVxuICBzYXZlRGlzYWJsZWQ6IGJvb2xlYW4gPSBmYWxzZTtcblxuICAvKiogU2hvd3MgU2F2ZSBhcyBsb2FkaW5nIGFuZCBibG9ja3MgU2F2ZSBhbmQgQ2FuY2VsIHdoaWxlIGEgc2F2ZSBpcyBpbiBmbGlnaHQuICovXG4gIEBJbnB1dCgpXG4gIHNhdmluZzogYm9vbGVhbiA9IGZhbHNlO1xuXG4gIEBJbnB1dCgpXG4gIHRvb2x0aXBNYXhXaWR0aDogc3RyaW5nID0gJzMyMHB4JztcblxuICBAT3V0cHV0KClcbiAgZWRpdCA9IG5ldyBFdmVudEVtaXR0ZXI8dm9pZD4oKTtcblxuICBAT3V0cHV0KClcbiAgY2FuY2VsID0gbmV3IEV2ZW50RW1pdHRlcjx2b2lkPigpO1xuXG4gIEBPdXRwdXQoKVxuICBzYXZlID0gbmV3IEV2ZW50RW1pdHRlcjx2b2lkPigpO1xuXG4gIEBDb250ZW50Q2hpbGQoJ2VkaXRvcicpXG4gIGVkaXRvcj86IFRlbXBsYXRlUmVmPHZvaWQ+O1xuXG4gIEBIb3N0QmluZGluZygnY2xhc3MuZWRpdGluZycpXG4gIGdldCBlZGl0aW5nQ2xhc3MoKTogYm9vbGVhbiB7XG4gICAgcmV0dXJuIHRoaXMuZWRpdGluZztcbiAgfVxufVxuIiwiPHNwYW4gY2xhc3M9XCJsYWJlbFwiPlxuICA8cml2LWljb25cbiAgICAqbmdJZj1cImluZm9Ub29sdGlwXCJcbiAgICBbbmFtZV09XCInSW5mbydcIlxuICAgIFtzaXplXT1cIjE2XCJcbiAgICBbcml2VG9vbHRpcF09XCJpbmZvVG9vbHRpcFwiXG4gICAgW3JpdlRvb2x0aXBNYXhXaWR0aF09XCJ0b29sdGlwTWF4V2lkdGhcIlxuICA+PC9yaXYtaWNvbj5cbiAge3sgbGFiZWwgfX1cbjwvc3Bhbj5cblxuPG5nLWNvbnRhaW5lciAqbmdJZj1cIiFlZGl0aW5nOyBlbHNlIGVkaXRNb2RlXCI+XG4gIDxzcGFuIGNsYXNzPVwidmFsdWVcIj5cbiAgICA8bmctY29udGFpbmVyICpuZ0lmPVwidmFsdWU7IGVsc2UgcHJvamVjdGVkVmFsdWVcIj57eyB2YWx1ZSB9fTwvbmctY29udGFpbmVyPlxuICAgIDxuZy10ZW1wbGF0ZSAjcHJvamVjdGVkVmFsdWU+XG4gICAgICA8bmctY29udGVudCBzZWxlY3Q9XCJbZGlzcGxheS12YWx1ZV1cIj48L25nLWNvbnRlbnQ+XG4gICAgPC9uZy10ZW1wbGF0ZT5cbiAgPC9zcGFuPlxuICA8ZGl2IGNsYXNzPVwiYWN0aW9uc1wiPlxuICAgIDxidXR0b25cbiAgICAgIHJpdkJ1dHRvblxuICAgICAgdHlwZT1cImJ1dHRvblwiXG4gICAgICBbaWNvbl09XCInRWRpdDInXCJcbiAgICAgIFtyaXZUb29sdGlwXT1cIidFZGl0J1wiXG4gICAgICBbdmFyaWFudF09XCInZ2hvc3QnXCJcbiAgICAgIFthdHRyLmFyaWEtbGFiZWxdPVwiJ0VkaXQgJyArIGxhYmVsXCJcbiAgICAgIChjbGljayk9XCJlZGl0LmVtaXQoKVwiXG4gICAgPjwvYnV0dG9uPlxuICA8L2Rpdj5cbjwvbmctY29udGFpbmVyPlxuXG48bmctdGVtcGxhdGUgI2VkaXRNb2RlPlxuICA8bGFiZWwgY2xhc3M9XCJmaWVsZFwiPlxuICAgIDxyaXYtc3Itb25seT57eyBsYWJlbCB9fTwvcml2LXNyLW9ubHk+XG4gICAgPG5nLWNvbnRhaW5lciAqbmdUZW1wbGF0ZU91dGxldD1cImVkaXRvciA/PyBudWxsXCI+PC9uZy1jb250YWluZXI+XG4gIDwvbGFiZWw+XG5cbiAgPGRpdiBjbGFzcz1cImFjdGlvbnNcIj5cbiAgICA8YnV0dG9uXG4gICAgICByaXZCdXR0b25cbiAgICAgIHR5cGU9XCJidXR0b25cIlxuICAgICAgW3ZhcmlhbnRdPVwiJ2Jhc2ljJ1wiXG4gICAgICBbc2l6ZV09XCInbWVkaXVtJ1wiXG4gICAgICBbZGlzYWJsZWRdPVwic2F2aW5nXCJcbiAgICAgIChjbGljayk9XCJjYW5jZWwuZW1pdCgpXCJcbiAgICA+XG4gICAgICBDYW5jZWxcbiAgICA8L2J1dHRvbj5cbiAgICA8YnV0dG9uXG4gICAgICByaXZCdXR0b25cbiAgICAgIHR5cGU9XCJidXR0b25cIlxuICAgICAgW3ZhcmlhbnRdPVwiJ3ByaW1hcnknXCJcbiAgICAgIFtzaXplXT1cIidtZWRpdW0nXCJcbiAgICAgIFtkaXNhYmxlZF09XCJzYXZlRGlzYWJsZWQgfHwgc2F2aW5nXCJcbiAgICAgIFtsb2FkaW5nXT1cInNhdmluZ1wiXG4gICAgICAoY2xpY2spPVwic2F2ZS5lbWl0KClcIlxuICAgID5cbiAgICAgIFNhdmVcbiAgICA8L2J1dHRvbj5cbiAgPC9kaXY+XG48L25nLXRlbXBsYXRlPlxuIl19
|
|
@@ -1,43 +0,0 @@
|
|
|
1
|
-
import { ChangeDetectionStrategy, Component, Input } from '@angular/core';
|
|
2
|
-
import * as i0 from "@angular/core";
|
|
3
|
-
import * as i1 from "@angular/common";
|
|
4
|
-
export class LoadingComponent {
|
|
5
|
-
constructor() {
|
|
6
|
-
this.size = 40;
|
|
7
|
-
this.variant = 'dark';
|
|
8
|
-
this.strokeWidth = LoadingComponent.STROKE_WIDTH;
|
|
9
|
-
}
|
|
10
|
-
static { this.STROKE_WIDTH = 1.5; }
|
|
11
|
-
static { this.ARC_START_RADIANS = (Math.PI * 22.5) / 180; }
|
|
12
|
-
getPathData() {
|
|
13
|
-
const size = this.size;
|
|
14
|
-
const halfSize = size / 2;
|
|
15
|
-
const stroke = LoadingComponent.STROKE_WIDTH;
|
|
16
|
-
const halfStroke = stroke / 2;
|
|
17
|
-
const top = halfStroke;
|
|
18
|
-
const right = size - stroke;
|
|
19
|
-
const radius = (size - stroke * 2) / 2;
|
|
20
|
-
const commands = [
|
|
21
|
-
`M${halfSize},${top}`,
|
|
22
|
-
`L${right},${top}`,
|
|
23
|
-
`L${right},${halfSize}`,
|
|
24
|
-
`A ${radius} ${radius},0,1,1,${halfSize} ${top}`,
|
|
25
|
-
];
|
|
26
|
-
return commands.join(' ');
|
|
27
|
-
}
|
|
28
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: LoadingComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
|
|
29
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.2.14", type: LoadingComponent, selector: "riv-loading", inputs: { size: "size", variant: "variant" }, ngImport: i0, template: "<svg\n [ngClass]=\"{\n dark: variant === 'dark',\n light: variant === 'light',\n small: size === 16,\n medium: size === 40,\n large: size === 80\n }\"\n xmlns=\"http://www.w3.org/2000/svg\"\n [attr.width]=\"size\"\n [attr.height]=\"size\"\n [attr.viewBox]=\"'0 0 ' + size + ' ' + size\"\n fill=\"none\"\n>\n <path [attr.stroke-width]=\"strokeWidth\" [attr.d]=\"getPathData()\"></path>\n</svg>\n", styles: [":host{display:inline-block;font-size:0;line-height:0}.dark path{stroke:var(--brand)}.light path{stroke:var(--white-90)}@keyframes stroke-small{0%{stroke-dasharray:1 43;stroke-dashoffset:0}50%{stroke-dasharray:43 1}to{stroke-dasharray:1 43;stroke-dashoffset:-44}}.small{animation:1.5s linear stroke-small infinite}@keyframes stroke-medium{0%{stroke-dasharray:1 121;stroke-dashoffset:0}50%{stroke-dasharray:121 1}to{stroke-dasharray:1 121;stroke-dashoffset:-122}}.medium{animation:1.67s linear stroke-medium infinite}@keyframes stroke-large{0%{stroke-dasharray:1 259;stroke-dashoffset:0}50%{stroke-dasharray:259 1}to{stroke-dasharray:1 259;stroke-dashoffset:-260}}.large{animation:2s linear stroke-large infinite}\n"], dependencies: [{ kind: "directive", type: i1.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
|
|
30
|
-
}
|
|
31
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: LoadingComponent, decorators: [{
|
|
32
|
-
type: Component,
|
|
33
|
-
args: [{ selector: 'riv-loading', changeDetection: ChangeDetectionStrategy.OnPush, template: "<svg\n [ngClass]=\"{\n dark: variant === 'dark',\n light: variant === 'light',\n small: size === 16,\n medium: size === 40,\n large: size === 80\n }\"\n xmlns=\"http://www.w3.org/2000/svg\"\n [attr.width]=\"size\"\n [attr.height]=\"size\"\n [attr.viewBox]=\"'0 0 ' + size + ' ' + size\"\n fill=\"none\"\n>\n <path [attr.stroke-width]=\"strokeWidth\" [attr.d]=\"getPathData()\"></path>\n</svg>\n", styles: [":host{display:inline-block;font-size:0;line-height:0}.dark path{stroke:var(--brand)}.light path{stroke:var(--white-90)}@keyframes stroke-small{0%{stroke-dasharray:1 43;stroke-dashoffset:0}50%{stroke-dasharray:43 1}to{stroke-dasharray:1 43;stroke-dashoffset:-44}}.small{animation:1.5s linear stroke-small infinite}@keyframes stroke-medium{0%{stroke-dasharray:1 121;stroke-dashoffset:0}50%{stroke-dasharray:121 1}to{stroke-dasharray:1 121;stroke-dashoffset:-122}}.medium{animation:1.67s linear stroke-medium infinite}@keyframes stroke-large{0%{stroke-dasharray:1 259;stroke-dashoffset:0}50%{stroke-dasharray:259 1}to{stroke-dasharray:1 259;stroke-dashoffset:-260}}.large{animation:2s linear stroke-large infinite}\n"] }]
|
|
34
|
-
}], propDecorators: { size: [{
|
|
35
|
-
type: Input
|
|
36
|
-
}], variant: [{
|
|
37
|
-
type: Input
|
|
38
|
-
}] } });
|
|
39
|
-
(function (LoadingComponent) {
|
|
40
|
-
LoadingComponent.Sizes = [16, 40, 80];
|
|
41
|
-
LoadingComponent.Variants = ['light', 'dark'];
|
|
42
|
-
})(LoadingComponent || (LoadingComponent = {}));
|
|
43
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibG9hZGluZy5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9yaXYvc3JjL2xpYi9sb2FkL2xvYWRpbmcvbG9hZGluZy5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9yaXYvc3JjL2xpYi9sb2FkL2xvYWRpbmcvbG9hZGluZy5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsdUJBQXVCLEVBQUUsU0FBUyxFQUFFLEtBQUssRUFBRSxNQUFNLGVBQWUsQ0FBQzs7O0FBUTFFLE1BQU0sT0FBTyxnQkFBZ0I7SUFON0I7UUFXRSxTQUFJLEdBQTBCLEVBQUUsQ0FBQztRQUdqQyxZQUFPLEdBQTZCLE1BQU0sQ0FBQztRQXNCbEMsZ0JBQVcsR0FBRyxnQkFBZ0IsQ0FBQyxZQUFZLENBQUM7S0FDdEQ7YUE5QmlCLGlCQUFZLEdBQUcsR0FBRyxBQUFOLENBQU87YUFDbkIsc0JBQWlCLEdBQUcsQ0FBQyxJQUFJLENBQUMsRUFBRSxHQUFHLElBQUksQ0FBQyxHQUFHLEdBQUcsQUFBekIsQ0FBMEI7SUFRM0QsV0FBVztRQUNULE1BQU0sSUFBSSxHQUFHLElBQUksQ0FBQyxJQUFJLENBQUM7UUFDdkIsTUFBTSxRQUFRLEdBQUcsSUFBSSxHQUFHLENBQUMsQ0FBQztRQUUxQixNQUFNLE1BQU0sR0FBRyxnQkFBZ0IsQ0FBQyxZQUFZLENBQUM7UUFDN0MsTUFBTSxVQUFVLEdBQUcsTUFBTSxHQUFHLENBQUMsQ0FBQztRQUU5QixNQUFNLEdBQUcsR0FBRyxVQUFVLENBQUM7UUFDdkIsTUFBTSxLQUFLLEdBQUcsSUFBSSxHQUFHLE1BQU0sQ0FBQztRQUM1QixNQUFNLE1BQU0sR0FBRyxDQUFDLElBQUksR0FBRyxNQUFNLEdBQUcsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxDQUFDO1FBRXZDLE1BQU0sUUFBUSxHQUFHO1lBQ2YsSUFBSSxRQUFRLElBQUksR0FBRyxFQUFFO1lBQ3JCLElBQUksS0FBSyxJQUFJLEdBQUcsRUFBRTtZQUNsQixJQUFJLEtBQUssSUFBSSxRQUFRLEVBQUU7WUFDdkIsS0FBSyxNQUFNLElBQUksTUFBTSxVQUFVLFFBQVEsSUFBSSxHQUFHLEVBQUU7U0FDakQsQ0FBQztRQUNGLE9BQU8sUUFBUSxDQUFDLElBQUksQ0FBQyxHQUFHLENBQUMsQ0FBQztJQUM1QixDQUFDOytHQTVCVSxnQkFBZ0I7bUdBQWhCLGdCQUFnQixpR0NSN0IsbWFBZ0JBOzs0RkRSYSxnQkFBZ0I7a0JBTjVCLFNBQVM7K0JBQ0UsYUFBYSxtQkFHTix1QkFBdUIsQ0FBQyxNQUFNOzhCQU8vQyxJQUFJO3NCQURILEtBQUs7Z0JBSU4sT0FBTztzQkFETixLQUFLOztBQTBCUixXQUFpQixnQkFBZ0I7SUFDbEIsc0JBQUssR0FBRyxDQUFDLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxDQUFVLENBQUM7SUFHOUIseUJBQVEsR0FBRyxDQUFDLE9BQU8sRUFBRSxNQUFNLENBQVUsQ0FBQztBQUVyRCxDQUFDLEVBTmdCLGdCQUFnQixLQUFoQixnQkFBZ0IsUUFNaEMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneSwgQ29tcG9uZW50LCBJbnB1dCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdyaXYtbG9hZGluZycsXG4gIHRlbXBsYXRlVXJsOiAnLi9sb2FkaW5nLmNvbXBvbmVudC5odG1sJyxcbiAgc3R5bGVVcmxzOiBbJy4vbG9hZGluZy5jb21wb25lbnQuY3NzJ10sXG4gIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoLFxufSlcbmV4cG9ydCBjbGFzcyBMb2FkaW5nQ29tcG9uZW50IHtcbiAgc3RhdGljIHJlYWRvbmx5IFNUUk9LRV9XSURUSCA9IDEuNTtcbiAgc3RhdGljIHJlYWRvbmx5IEFSQ19TVEFSVF9SQURJQU5TID0gKE1hdGguUEkgKiAyMi41KSAvIDE4MDtcblxuICBASW5wdXQoKVxuICBzaXplOiBMb2FkaW5nQ29tcG9uZW50LlNpemUgPSA0MDtcblxuICBASW5wdXQoKVxuICB2YXJpYW50OiBMb2FkaW5nQ29tcG9uZW50LlZhcmlhbnQgPSAnZGFyayc7XG5cbiAgZ2V0UGF0aERhdGEoKSB7XG4gICAgY29uc3Qgc2l6ZSA9IHRoaXMuc2l6ZTtcbiAgICBjb25zdCBoYWxmU2l6ZSA9IHNpemUgLyAyO1xuXG4gICAgY29uc3Qgc3Ryb2tlID0gTG9hZGluZ0NvbXBvbmVudC5TVFJPS0VfV0lEVEg7XG4gICAgY29uc3QgaGFsZlN0cm9rZSA9IHN0cm9rZSAvIDI7XG5cbiAgICBjb25zdCB0b3AgPSBoYWxmU3Ryb2tlO1xuICAgIGNvbnN0IHJpZ2h0ID0gc2l6ZSAtIHN0cm9rZTtcbiAgICBjb25zdCByYWRpdXMgPSAoc2l6ZSAtIHN0cm9rZSAqIDIpIC8gMjtcblxuICAgIGNvbnN0IGNvbW1hbmRzID0gW1xuICAgICAgYE0ke2hhbGZTaXplfSwke3RvcH1gLFxuICAgICAgYEwke3JpZ2h0fSwke3RvcH1gLFxuICAgICAgYEwke3JpZ2h0fSwke2hhbGZTaXplfWAsXG4gICAgICBgQSAke3JhZGl1c30gJHtyYWRpdXN9LDAsMSwxLCR7aGFsZlNpemV9ICR7dG9wfWAsXG4gICAgXTtcbiAgICByZXR1cm4gY29tbWFuZHMuam9pbignICcpO1xuICB9XG5cbiAgcmVhZG9ubHkgc3Ryb2tlV2lkdGggPSBMb2FkaW5nQ29tcG9uZW50LlNUUk9LRV9XSURUSDtcbn1cblxuZXhwb3J0IG5hbWVzcGFjZSBMb2FkaW5nQ29tcG9uZW50IHtcbiAgZXhwb3J0IGNvbnN0IFNpemVzID0gWzE2LCA0MCwgODBdIGFzIGNvbnN0O1xuICBleHBvcnQgdHlwZSBTaXplID0gKHR5cGVvZiBMb2FkaW5nQ29tcG9uZW50LlNpemVzKVtudW1iZXJdO1xuXG4gIGV4cG9ydCBjb25zdCBWYXJpYW50cyA9IFsnbGlnaHQnLCAnZGFyayddIGFzIGNvbnN0O1xuICBleHBvcnQgdHlwZSBWYXJpYW50ID0gKHR5cGVvZiBMb2FkaW5nQ29tcG9uZW50LlZhcmlhbnRzKVtudW1iZXJdO1xufVxuIiwiPHN2Z1xuICBbbmdDbGFzc109XCJ7XG4gICAgZGFyazogdmFyaWFudCA9PT0gJ2RhcmsnLFxuICAgIGxpZ2h0OiB2YXJpYW50ID09PSAnbGlnaHQnLFxuICAgIHNtYWxsOiBzaXplID09PSAxNixcbiAgICBtZWRpdW06IHNpemUgPT09IDQwLFxuICAgIGxhcmdlOiBzaXplID09PSA4MFxuICB9XCJcbiAgeG1sbnM9XCJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2Z1wiXG4gIFthdHRyLndpZHRoXT1cInNpemVcIlxuICBbYXR0ci5oZWlnaHRdPVwic2l6ZVwiXG4gIFthdHRyLnZpZXdCb3hdPVwiJzAgMCAnICsgc2l6ZSArICcgJyArIHNpemVcIlxuICBmaWxsPVwibm9uZVwiXG4+XG4gIDxwYXRoIFthdHRyLnN0cm9rZS13aWR0aF09XCJzdHJva2VXaWR0aFwiIFthdHRyLmRdPVwiZ2V0UGF0aERhdGEoKVwiPjwvcGF0aD5cbjwvc3ZnPlxuIl19
|
|
@@ -1,25 +0,0 @@
|
|
|
1
|
-
import { ChangeDetectionStrategy, Component, Input } from '@angular/core';
|
|
2
|
-
import * as i0 from "@angular/core";
|
|
3
|
-
import * as i1 from "@angular/common";
|
|
4
|
-
import * as i2 from "../loading/loading.component";
|
|
5
|
-
export class LoadingCoverComponent {
|
|
6
|
-
constructor() {
|
|
7
|
-
this.loading = false;
|
|
8
|
-
this.loadingSize = 40;
|
|
9
|
-
}
|
|
10
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: LoadingCoverComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
|
|
11
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.2.14", type: LoadingCoverComponent, selector: "riv-loading-cover", inputs: { loading: "loading", loadingSize: "loadingSize", zIndexOverride: "zIndexOverride", errorMessage: "errorMessage" }, ngImport: i0, template: "<ng-content></ng-content>\n<div *ngIf=\"loading\" class=\"cover\" [style.z-index]=\"zIndexOverride ?? null\">\n <riv-loading [size]=\"loadingSize\"></riv-loading>\n</div>\n<div\n *ngIf=\"errorMessage\"\n class=\"cover\"\n [style.z-index]=\"zIndexOverride ?? null\"\n>\n <span class=\"error-icon\">\uD83D\uDE41</span>\n <span>{{ errorMessage }}</span>\n</div>\n", styles: [":host{display:block;max-width:100%;position:relative}.cover{position:absolute;inset:0;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:var(--size-xsmall);background-color:var(--white-90);border-radius:var(--border-radius-medium);text-align:center;color:var(--type-light-low-contrast);z-index:var(--loadable-z-index);font:var(--body-medium)}.error-icon{font-size:var(--type-5-font-size)}\n"], dependencies: [{ kind: "directive", type: i1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "component", type: i2.LoadingComponent, selector: "riv-loading", inputs: ["size", "variant"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
|
|
12
|
-
}
|
|
13
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: LoadingCoverComponent, decorators: [{
|
|
14
|
-
type: Component,
|
|
15
|
-
args: [{ selector: 'riv-loading-cover', changeDetection: ChangeDetectionStrategy.OnPush, template: "<ng-content></ng-content>\n<div *ngIf=\"loading\" class=\"cover\" [style.z-index]=\"zIndexOverride ?? null\">\n <riv-loading [size]=\"loadingSize\"></riv-loading>\n</div>\n<div\n *ngIf=\"errorMessage\"\n class=\"cover\"\n [style.z-index]=\"zIndexOverride ?? null\"\n>\n <span class=\"error-icon\">\uD83D\uDE41</span>\n <span>{{ errorMessage }}</span>\n</div>\n", styles: [":host{display:block;max-width:100%;position:relative}.cover{position:absolute;inset:0;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:var(--size-xsmall);background-color:var(--white-90);border-radius:var(--border-radius-medium);text-align:center;color:var(--type-light-low-contrast);z-index:var(--loadable-z-index);font:var(--body-medium)}.error-icon{font-size:var(--type-5-font-size)}\n"] }]
|
|
16
|
-
}], propDecorators: { loading: [{
|
|
17
|
-
type: Input
|
|
18
|
-
}], loadingSize: [{
|
|
19
|
-
type: Input
|
|
20
|
-
}], zIndexOverride: [{
|
|
21
|
-
type: Input
|
|
22
|
-
}], errorMessage: [{
|
|
23
|
-
type: Input
|
|
24
|
-
}] } });
|
|
25
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibG9hZGluZy1jb3Zlci5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9yaXYvc3JjL2xpYi9sb2FkL2xvYWRpbmctY292ZXIvbG9hZGluZy1jb3Zlci5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9yaXYvc3JjL2xpYi9sb2FkL2xvYWRpbmctY292ZXIvbG9hZGluZy1jb3Zlci5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsdUJBQXVCLEVBQUUsU0FBUyxFQUFFLEtBQUssRUFBRSxNQUFNLGVBQWUsQ0FBQzs7OztBQVMxRSxNQUFNLE9BQU8scUJBQXFCO0lBTmxDO1FBUUUsWUFBTyxHQUFZLEtBQUssQ0FBQztRQUd6QixnQkFBVyxHQUEwQixFQUFFLENBQUM7S0FPekM7K0dBWlkscUJBQXFCO21HQUFyQixxQkFBcUIscUxDVGxDLGdYQVlBOzs0RkRIYSxxQkFBcUI7a0JBTmpDLFNBQVM7K0JBQ0UsbUJBQW1CLG1CQUdaLHVCQUF1QixDQUFDLE1BQU07OEJBSS9DLE9BQU87c0JBRE4sS0FBSztnQkFJTixXQUFXO3NCQURWLEtBQUs7Z0JBSU4sY0FBYztzQkFEYixLQUFLO2dCQUlOLFlBQVk7c0JBRFgsS0FBSyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENoYW5nZURldGVjdGlvblN0cmF0ZWd5LCBDb21wb25lbnQsIElucHV0IH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBMb2FkaW5nQ29tcG9uZW50IH0gZnJvbSAnLi4vbG9hZGluZy9sb2FkaW5nLmNvbXBvbmVudCc7XG5cbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ3Jpdi1sb2FkaW5nLWNvdmVyJyxcbiAgdGVtcGxhdGVVcmw6ICcuL2xvYWRpbmctY292ZXIuY29tcG9uZW50Lmh0bWwnLFxuICBzdHlsZVVybHM6IFsnLi9sb2FkaW5nLWNvdmVyLmNvbXBvbmVudC5jc3MnXSxcbiAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2gsXG59KVxuZXhwb3J0IGNsYXNzIExvYWRpbmdDb3ZlckNvbXBvbmVudCB7XG4gIEBJbnB1dCgpXG4gIGxvYWRpbmc6IGJvb2xlYW4gPSBmYWxzZTtcblxuICBASW5wdXQoKVxuICBsb2FkaW5nU2l6ZTogTG9hZGluZ0NvbXBvbmVudC5TaXplID0gNDA7XG5cbiAgQElucHV0KClcbiAgekluZGV4T3ZlcnJpZGU/OiBudW1iZXI7XG5cbiAgQElucHV0KClcbiAgZXJyb3JNZXNzYWdlPzogc3RyaW5nO1xufVxuIiwiPG5nLWNvbnRlbnQ+PC9uZy1jb250ZW50PlxuPGRpdiAqbmdJZj1cImxvYWRpbmdcIiBjbGFzcz1cImNvdmVyXCIgW3N0eWxlLnotaW5kZXhdPVwiekluZGV4T3ZlcnJpZGUgPz8gbnVsbFwiPlxuICA8cml2LWxvYWRpbmcgW3NpemVdPVwibG9hZGluZ1NpemVcIj48L3Jpdi1sb2FkaW5nPlxuPC9kaXY+XG48ZGl2XG4gICpuZ0lmPVwiZXJyb3JNZXNzYWdlXCJcbiAgY2xhc3M9XCJjb3ZlclwiXG4gIFtzdHlsZS56LWluZGV4XT1cInpJbmRleE92ZXJyaWRlID8/IG51bGxcIlxuPlxuICA8c3BhbiBjbGFzcz1cImVycm9yLWljb25cIj7wn5mBPC9zcGFuPlxuICA8c3Bhbj57eyBlcnJvck1lc3NhZ2UgfX08L3NwYW4+XG48L2Rpdj5cbiJdfQ==
|