@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,318 +0,0 @@
|
|
|
1
|
-
import { ChangeDetectionStrategy, Component, EventEmitter, Input, Output, } from '@angular/core';
|
|
2
|
-
import { timeDay, timeDays, timeMonth, timeMonths, timeSunday, timeYear, timeYears, } from 'd3-time';
|
|
3
|
-
import { timeFormat } from 'd3-time-format';
|
|
4
|
-
import { BehaviorSubject, combineLatest, map, shareReplay, } from 'rxjs';
|
|
5
|
-
import * as i0 from "@angular/core";
|
|
6
|
-
import * as i1 from "@angular/common";
|
|
7
|
-
import * as i2 from "../button/button.component";
|
|
8
|
-
import * as i3 from "../simple-select/simple-select.component";
|
|
9
|
-
import * as i4 from "../simple-select/option-group.pipe";
|
|
10
|
-
const monthFormatter = timeFormat('%B');
|
|
11
|
-
const yearFormatter = timeFormat('%Y');
|
|
12
|
-
const dayFormatter = timeFormat('%e');
|
|
13
|
-
const weekdayNumberFormatter = timeFormat('%w');
|
|
14
|
-
function getWeekdayNumber(date) {
|
|
15
|
-
return parseInt(weekdayNumberFormatter(date));
|
|
16
|
-
}
|
|
17
|
-
// TODO: once we upgrade to Angular 16, this component can be cleaned up with
|
|
18
|
-
// signals instead of RxJS.
|
|
19
|
-
// https://www.notion.so/rivet/Resolve-TODOs-after-Angular-upgrade-1f2667eb2a3180b79f6ad92a7e576f08
|
|
20
|
-
export class CalendarComponent {
|
|
21
|
-
constructor() {
|
|
22
|
-
this.activeYearMonth$ = new BehaviorSubject(new Date());
|
|
23
|
-
this.displayMin$ = new BehaviorSubject(CalendarComponent.defaultMin);
|
|
24
|
-
this.displayMax$ = new BehaviorSubject(CalendarComponent.defaultMax);
|
|
25
|
-
this.selectableMin$ = new BehaviorSubject(undefined);
|
|
26
|
-
this.selectableMax$ = new BehaviorSubject(undefined);
|
|
27
|
-
this.omitRange$ = new BehaviorSubject(undefined);
|
|
28
|
-
this.selectedValue$ = new BehaviorSubject(undefined);
|
|
29
|
-
this.yearOptions$ = combineLatest([
|
|
30
|
-
this.displayMin$,
|
|
31
|
-
this.displayMax$,
|
|
32
|
-
this.selectableMin$,
|
|
33
|
-
this.selectableMax$,
|
|
34
|
-
this.activeYearMonth$,
|
|
35
|
-
]).pipe(map(([displayMin, displayMax, selectableMin, selectableMax, activeYearMonth,]) => {
|
|
36
|
-
const min = selectableMin ?? displayMin;
|
|
37
|
-
const max = selectableMax ?? displayMax;
|
|
38
|
-
return timeYears(timeYear.floor(displayMin), displayMax)
|
|
39
|
-
.reverse()
|
|
40
|
-
.map(flooredYear => {
|
|
41
|
-
const year = new Date(flooredYear.getFullYear(), activeYearMonth.getMonth());
|
|
42
|
-
return {
|
|
43
|
-
id: year.getFullYear().toString(),
|
|
44
|
-
title: yearFormatter(year),
|
|
45
|
-
disabled: year.getFullYear() < min.getFullYear() ||
|
|
46
|
-
year.getFullYear() > max.getFullYear(),
|
|
47
|
-
date: year,
|
|
48
|
-
};
|
|
49
|
-
});
|
|
50
|
-
}), shareReplay({ refCount: true, bufferSize: 1 }));
|
|
51
|
-
this.selectedYearOption$ = combineLatest([
|
|
52
|
-
this.yearOptions$,
|
|
53
|
-
this.activeYearMonth$,
|
|
54
|
-
]).pipe(map(([yearOptions, activeYearMonth]) => yearOptions.find(y => y.id === activeYearMonth.getFullYear().toString()) || null), shareReplay({ refCount: true, bufferSize: 1 }));
|
|
55
|
-
this.monthOptions$ = combineLatest([
|
|
56
|
-
this.activeYearMonth$,
|
|
57
|
-
this.displayMin$,
|
|
58
|
-
this.displayMax$,
|
|
59
|
-
this.selectableMin$,
|
|
60
|
-
this.selectableMax$,
|
|
61
|
-
]).pipe(map(([activeYearMonth, displayMin, displayMax, selectableMin, selectableMax,]) => {
|
|
62
|
-
const min = selectableMin ?? displayMin;
|
|
63
|
-
const max = selectableMax ?? displayMax;
|
|
64
|
-
return timeMonths(timeYear.floor(activeYearMonth), timeYear.floor(timeYear.offset(activeYearMonth, 1))).map(month => {
|
|
65
|
-
const activeYear = activeYearMonth.getFullYear();
|
|
66
|
-
const minYear = min.getFullYear();
|
|
67
|
-
const maxYear = max.getFullYear();
|
|
68
|
-
const monthNumber = month.getMonth();
|
|
69
|
-
const minMonth = min.getMonth();
|
|
70
|
-
const maxMonth = max.getMonth();
|
|
71
|
-
const disabled = (activeYear === minYear && monthNumber < minMonth) ||
|
|
72
|
-
(activeYear === maxYear && monthNumber > maxMonth) ||
|
|
73
|
-
activeYear < minYear ||
|
|
74
|
-
activeYear > maxYear;
|
|
75
|
-
return {
|
|
76
|
-
id: monthNumber.toString(),
|
|
77
|
-
title: monthFormatter(month),
|
|
78
|
-
disabled,
|
|
79
|
-
date: month,
|
|
80
|
-
};
|
|
81
|
-
});
|
|
82
|
-
}), shareReplay({ refCount: true, bufferSize: 1 }));
|
|
83
|
-
this.selectedMonthOption$ = combineLatest([
|
|
84
|
-
this.monthOptions$,
|
|
85
|
-
this.activeYearMonth$,
|
|
86
|
-
]).pipe(map(([monthOptions, activeYearMonth]) => monthOptions.find(m => m.id === activeYearMonth.getMonth().toString()) || null), shareReplay({ refCount: true, bufferSize: 1 }));
|
|
87
|
-
this.previousMonth$ = combineLatest([
|
|
88
|
-
this.activeYearMonth$,
|
|
89
|
-
this.displayMin$,
|
|
90
|
-
this.selectableMin$,
|
|
91
|
-
]).pipe(map(([yearMonth, displayMin, selectableMin]) => {
|
|
92
|
-
const min = selectableMin ?? displayMin;
|
|
93
|
-
const previous = timeMonth.floor(timeMonth.offset(yearMonth, -1));
|
|
94
|
-
const minMonth = min.getMonth();
|
|
95
|
-
const minYear = min.getFullYear();
|
|
96
|
-
const prevMonth = previous.getMonth();
|
|
97
|
-
const prevYear = previous.getFullYear();
|
|
98
|
-
const disabled = (prevYear === minYear && prevMonth < minMonth) || prevYear < minYear;
|
|
99
|
-
if (disabled)
|
|
100
|
-
return null;
|
|
101
|
-
return previous;
|
|
102
|
-
}));
|
|
103
|
-
this.nextMonth$ = combineLatest([
|
|
104
|
-
this.activeYearMonth$,
|
|
105
|
-
this.displayMax$,
|
|
106
|
-
this.selectableMax$,
|
|
107
|
-
]).pipe(map(([yearMonth, displayMax, selectableMax]) => {
|
|
108
|
-
const max = selectableMax ?? displayMax;
|
|
109
|
-
const next = timeMonth.floor(timeMonth.offset(yearMonth, 1));
|
|
110
|
-
const maxMonth = max.getMonth();
|
|
111
|
-
const maxYear = max.getFullYear();
|
|
112
|
-
const nextMonth = next.getMonth();
|
|
113
|
-
const nextYear = next.getFullYear();
|
|
114
|
-
const disabled = (nextYear === maxYear && nextMonth > maxMonth) || nextYear > maxYear;
|
|
115
|
-
if (disabled)
|
|
116
|
-
return null;
|
|
117
|
-
return next;
|
|
118
|
-
}));
|
|
119
|
-
this.datesInSelectedRange$ = this.selectedValue$.pipe(map(selectedValue => {
|
|
120
|
-
if (!selectedValue)
|
|
121
|
-
return [];
|
|
122
|
-
if (selectedValue instanceof Date)
|
|
123
|
-
return [selectedValue];
|
|
124
|
-
return timeDays(timeDay.floor(selectedValue[0]), timeDay.floor(timeDay.offset(selectedValue[1], 1)));
|
|
125
|
-
}), shareReplay({ refCount: true, bufferSize: 1 }));
|
|
126
|
-
this.dates$ = combineLatest([
|
|
127
|
-
this.activeYearMonth$,
|
|
128
|
-
this.selectedValue$,
|
|
129
|
-
this.datesInSelectedRange$,
|
|
130
|
-
this.selectableMin$,
|
|
131
|
-
this.selectableMax$,
|
|
132
|
-
this.omitRange$,
|
|
133
|
-
]).pipe(map(([activeYearMonth, selectedValue, datesInSelectedRange, selectableMin, selectableMax, omitRange,]) => {
|
|
134
|
-
const calendarDates = timeDays(timeSunday.floor(activeYearMonth), timeSunday.ceil(timeMonth.offset(activeYearMonth, 1)));
|
|
135
|
-
const minCalendarDate = calendarDates[0];
|
|
136
|
-
const maxCalendarDate = calendarDates[calendarDates.length - 1];
|
|
137
|
-
const selectedDateCoordinates = new Map();
|
|
138
|
-
const visibleDatesInSelectedRange = datesInSelectedRange.filter(selected => selected.valueOf() >= minCalendarDate.valueOf() &&
|
|
139
|
-
selected.valueOf() <= maxCalendarDate.valueOf() &&
|
|
140
|
-
(selectableMin
|
|
141
|
-
? selected.valueOf() >= selectableMin.valueOf()
|
|
142
|
-
: true) &&
|
|
143
|
-
(selectableMax
|
|
144
|
-
? selected.valueOf() <= selectableMax.valueOf()
|
|
145
|
-
: true) &&
|
|
146
|
-
(omitRange
|
|
147
|
-
? selected.valueOf() < omitRange[0].valueOf() ||
|
|
148
|
-
selected.valueOf() > omitRange[1].valueOf()
|
|
149
|
-
: true));
|
|
150
|
-
if (visibleDatesInSelectedRange.length > 0) {
|
|
151
|
-
const firstVisibleSelectedDateOffset = getWeekdayNumber(visibleDatesInSelectedRange[0]);
|
|
152
|
-
visibleDatesInSelectedRange.forEach((selected, i) => {
|
|
153
|
-
const x = getWeekdayNumber(selected);
|
|
154
|
-
const y = Math.floor((i + firstVisibleSelectedDateOffset) / 7);
|
|
155
|
-
selectedDateCoordinates.set(selected.valueOf(), [x, y]);
|
|
156
|
-
});
|
|
157
|
-
}
|
|
158
|
-
function serializeCoordinates(coordinates) {
|
|
159
|
-
return coordinates.join(':');
|
|
160
|
-
}
|
|
161
|
-
const visibleDatesInSelectedRangeCoordinates = new Set([...selectedDateCoordinates.values()].map(serializeCoordinates));
|
|
162
|
-
function getRoundedCorners(date) {
|
|
163
|
-
const coordinates = selectedDateCoordinates.get(date.valueOf());
|
|
164
|
-
if (!coordinates)
|
|
165
|
-
return { nw: false, ne: false, se: false, sw: false };
|
|
166
|
-
const [x, y] = coordinates;
|
|
167
|
-
const top = serializeCoordinates([x, y - 1]), right = serializeCoordinates([x + 1, y]), bottom = serializeCoordinates([x, y + 1]), left = serializeCoordinates([x - 1, y]);
|
|
168
|
-
return {
|
|
169
|
-
nw: !visibleDatesInSelectedRangeCoordinates.has(top) &&
|
|
170
|
-
!visibleDatesInSelectedRangeCoordinates.has(left),
|
|
171
|
-
ne: !visibleDatesInSelectedRangeCoordinates.has(top) &&
|
|
172
|
-
!visibleDatesInSelectedRangeCoordinates.has(right),
|
|
173
|
-
se: !visibleDatesInSelectedRangeCoordinates.has(right) &&
|
|
174
|
-
!visibleDatesInSelectedRangeCoordinates.has(bottom),
|
|
175
|
-
sw: !visibleDatesInSelectedRangeCoordinates.has(left) &&
|
|
176
|
-
!visibleDatesInSelectedRangeCoordinates.has(bottom),
|
|
177
|
-
};
|
|
178
|
-
}
|
|
179
|
-
const visibleDatesInSelectedRangeValues = new Set(visibleDatesInSelectedRange.map(selected => selected.valueOf()));
|
|
180
|
-
const today = timeDay.floor(new Date());
|
|
181
|
-
return calendarDates.map(date => {
|
|
182
|
-
const { nw, ne, se, sw } = getRoundedCorners(date);
|
|
183
|
-
const dateValue = date.valueOf();
|
|
184
|
-
const inRange = visibleDatesInSelectedRangeValues.has(dateValue);
|
|
185
|
-
const selected = selectedValue
|
|
186
|
-
? selectedValue instanceof Date
|
|
187
|
-
? dateValue === selectedValue.valueOf()
|
|
188
|
-
: dateValue === selectedValue[0].valueOf() ||
|
|
189
|
-
dateValue === selectedValue[1].valueOf()
|
|
190
|
-
: false;
|
|
191
|
-
return {
|
|
192
|
-
date,
|
|
193
|
-
display: dayFormatter(date),
|
|
194
|
-
fadeIn: inRange &&
|
|
195
|
-
(dateValue ===
|
|
196
|
-
Math.max(minCalendarDate.valueOf(), selectableMin?.valueOf() ?? -Infinity) ||
|
|
197
|
-
dateValue ===
|
|
198
|
-
(omitRange
|
|
199
|
-
? timeDay.offset(omitRange[1], 1).valueOf()
|
|
200
|
-
: -Infinity)),
|
|
201
|
-
fadeOut: inRange &&
|
|
202
|
-
(dateValue ===
|
|
203
|
-
Math.min(maxCalendarDate.valueOf(), selectableMax?.valueOf() ?? Infinity) ||
|
|
204
|
-
dateValue ===
|
|
205
|
-
(omitRange
|
|
206
|
-
? timeDay.offset(omitRange[0], -1).valueOf()
|
|
207
|
-
: Infinity)),
|
|
208
|
-
hidden: dateValue < (selectableMin?.valueOf() ?? -Infinity) ||
|
|
209
|
-
dateValue > (selectableMax?.valueOf() ?? Infinity) ||
|
|
210
|
-
(omitRange
|
|
211
|
-
? omitRange[0].valueOf() <= dateValue &&
|
|
212
|
-
dateValue <= omitRange[1].valueOf()
|
|
213
|
-
: false),
|
|
214
|
-
inCurrentMonth: dateValue >= activeYearMonth.valueOf() &&
|
|
215
|
-
dateValue < timeMonth.offset(activeYearMonth, 1).valueOf(),
|
|
216
|
-
inRange,
|
|
217
|
-
roundedNe: ne,
|
|
218
|
-
roundedNw: nw,
|
|
219
|
-
roundedSe: se,
|
|
220
|
-
roundedSw: sw,
|
|
221
|
-
selected,
|
|
222
|
-
today: dateValue === today.valueOf(),
|
|
223
|
-
};
|
|
224
|
-
});
|
|
225
|
-
}), shareReplay({ refCount: true, bufferSize: 1 }));
|
|
226
|
-
this.activeYearMonthChange = new EventEmitter();
|
|
227
|
-
this.dateSelect = new EventEmitter();
|
|
228
|
-
this.trackByDate = (_, date) => JSON.stringify({
|
|
229
|
-
...date,
|
|
230
|
-
date: [
|
|
231
|
-
date.date.getFullYear(),
|
|
232
|
-
date.date.getMonth() + 1,
|
|
233
|
-
date.date.getDate(),
|
|
234
|
-
].join(':'),
|
|
235
|
-
});
|
|
236
|
-
}
|
|
237
|
-
set activeYearMonth(v) {
|
|
238
|
-
this.activeYearMonth$.next(v);
|
|
239
|
-
}
|
|
240
|
-
get activeYearMonth() {
|
|
241
|
-
return this.activeYearMonth$.getValue();
|
|
242
|
-
}
|
|
243
|
-
set displayMin(v) {
|
|
244
|
-
this.displayMin$.next(v);
|
|
245
|
-
}
|
|
246
|
-
get displayMin() {
|
|
247
|
-
return this.displayMin$.getValue();
|
|
248
|
-
}
|
|
249
|
-
set displayMax(v) {
|
|
250
|
-
this.displayMax$.next(v);
|
|
251
|
-
}
|
|
252
|
-
get displayMax() {
|
|
253
|
-
return this.displayMax$.getValue();
|
|
254
|
-
}
|
|
255
|
-
set selectableMin(v) {
|
|
256
|
-
this.selectableMin$.next(v);
|
|
257
|
-
}
|
|
258
|
-
get selectableMin() {
|
|
259
|
-
return this.selectableMin$.getValue();
|
|
260
|
-
}
|
|
261
|
-
set selectableMax(v) {
|
|
262
|
-
this.selectableMax$.next(v);
|
|
263
|
-
}
|
|
264
|
-
get selectableMax() {
|
|
265
|
-
return this.selectableMax$.getValue();
|
|
266
|
-
}
|
|
267
|
-
set omitRange(v) {
|
|
268
|
-
this.omitRange$.next(v);
|
|
269
|
-
}
|
|
270
|
-
get omitRange() {
|
|
271
|
-
return this.omitRange$.getValue();
|
|
272
|
-
}
|
|
273
|
-
set selectedValue(v) {
|
|
274
|
-
this.selectedValue$.next(v);
|
|
275
|
-
}
|
|
276
|
-
get selectedValue() {
|
|
277
|
-
return this.selectedValue$.getValue();
|
|
278
|
-
}
|
|
279
|
-
selectDay(day) {
|
|
280
|
-
if (!day.inCurrentMonth) {
|
|
281
|
-
this.activeYearMonthChange.emit(timeMonth.floor(day.date));
|
|
282
|
-
}
|
|
283
|
-
this.dateSelect.emit(day.date);
|
|
284
|
-
}
|
|
285
|
-
emitActiveYearMonth(yearMonth) {
|
|
286
|
-
if (yearMonth)
|
|
287
|
-
this.activeYearMonthChange.emit(yearMonth);
|
|
288
|
-
}
|
|
289
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: CalendarComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
|
|
290
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.2.14", type: CalendarComponent, selector: "riv-calendar", inputs: { activeYearMonth: "activeYearMonth", displayMin: "displayMin", displayMax: "displayMax", selectableMin: "selectableMin", selectableMax: "selectableMax", omitRange: "omitRange", selectedValue: "selectedValue" }, outputs: { activeYearMonthChange: "activeYearMonthChange", dateSelect: "dateSelect" }, ngImport: i0, template: "<div class=\"controls\">\n <div>\n <riv-simple-select\n [filterabilityOptions]=\"{ enabled: true, placeholder: 'Month' }\"\n [orderBy]=\"'source'\"\n [optionGroups]=\"monthOptions$ | async | rivOptionGroup\"\n [selectedOption]=\"selectedMonthOption$ | async\"\n (selectedOptionChange)=\"emitActiveYearMonth($event?.date ?? null)\"\n >\n <ng-template #trigger let-state=\"state\">\n <span\n rivButton\n [size]=\"'small'\"\n [variant]=\"'ghost'\"\n [icon]=\"state.display.open ? 'ChevronUp' : 'ChevronDown'\"\n [iconPosition]=\"'last'\"\n >\n {{ state.display.formattedSelectedOptions || '...' }}\n </span>\n </ng-template>\n </riv-simple-select>\n <riv-simple-select\n [filterabilityOptions]=\"{ enabled: true, placeholder: 'Year' }\"\n [orderBy]=\"'source'\"\n [optionGroups]=\"yearOptions$ | async | rivOptionGroup\"\n [selectedOption]=\"selectedYearOption$ | async\"\n (selectedOptionChange)=\"emitActiveYearMonth($event?.date ?? null)\"\n >\n <ng-template #trigger let-state=\"state\">\n <span\n rivButton\n [size]=\"'small'\"\n [variant]=\"'ghost'\"\n [icon]=\"state.display.open ? 'ChevronUp' : 'ChevronDown'\"\n [iconPosition]=\"'last'\"\n >\n {{ state.display.formattedSelectedOptions || '...' }}\n </span>\n </ng-template>\n </riv-simple-select>\n </div>\n <div\n *ngIf=\"{ prev: previousMonth$ | async, next: nextMonth$ | async }; let vm\"\n >\n <button\n rivButton\n [size]=\"'small'\"\n [variant]=\"'ghost'\"\n [icon]=\"'ArrowLeft'\"\n [disabled]=\"!vm.prev\"\n (click)=\"vm.prev ? activeYearMonthChange.emit(vm.prev) : null\"\n type=\"button\"\n ></button>\n <button\n rivButton\n [size]=\"'small'\"\n [variant]=\"'ghost'\"\n [icon]=\"'ArrowRight'\"\n [disabled]=\"!vm.next\"\n (click)=\"vm.next ? activeYearMonthChange.emit(vm.next) : null\"\n type=\"button\"\n ></button>\n </div>\n</div>\n<div class=\"calendar\">\n <span class=\"label\">Su</span>\n <span class=\"label\">Mo</span>\n <span class=\"label\">Tu</span>\n <span class=\"label\">We</span>\n <span class=\"label\">Th</span>\n <span class=\"label\">Fr</span>\n <span class=\"label\">Sa</span>\n <button\n *ngFor=\"let day of dates$ | async; trackBy: trackByDate\"\n class=\"day\"\n [disabled]=\"day.hidden\"\n [attr.aria-disabled]=\"day.hidden ? 'true' : null\"\n [class.hidden]=\"day.hidden\"\n [class.bleed]=\"!day.inCurrentMonth && !day.hidden\"\n [class.fade-in]=\"day.fadeIn\"\n [class.fade-out]=\"day.fadeOut\"\n [class.in-range]=\"day.inRange\"\n [class.rounded-ne]=\"day.roundedNe\"\n [class.rounded-nw]=\"day.roundedNw\"\n [class.rounded-se]=\"day.roundedSe\"\n [class.rounded-sw]=\"day.roundedSw\"\n (click)=\"selectDay(day)\"\n type=\"button\"\n >\n <span\n class=\"day-wrapper\"\n [class.selected]=\"day.selected\"\n [class.today]=\"day.today\"\n >\n {{ day.display }}\n </span>\n </button>\n</div>\n", styles: [".controls{display:flex;align-items:center;justify-content:space-between}.calendar{display:grid;grid-template-columns:repeat(7,calc(var(--base-grid-size) * 10));grid-auto-rows:calc(var(--base-grid-size) * 6)}.label{display:flex;justify-content:center;align-items:center;font-size:var(--type-1-font-size);line-height:var(--type-1-line-height-0);font-weight:var(--font-weight-heavy)}.day{display:flex;align-items:stretch;cursor:pointer}.day.hidden{cursor:default}.day:hover:not(.hidden){background-color:var(--surface-light-1)}.day.in-range{background-color:var(--purp-10)}.day.fade-out{background-image:linear-gradient(to right,var(--purp-10),var(--white-100))}.day.fade-in{background-image:linear-gradient(to right,var(--white-100),var(--purp-10))}.day.bleed{color:var(--type-light-low-contrast)}.day.rounded-ne{border-top-right-radius:var(--border-radius-medium)}.day.rounded-nw{border-top-left-radius:var(--border-radius-medium)}.day.rounded-sw{border-bottom-left-radius:var(--border-radius-medium)}.day.rounded-se{border-bottom-right-radius:var(--border-radius-medium)}.day-wrapper{flex-grow:1;display:flex;justify-content:center;align-items:center;border-radius:var(--border-radius-medium)}.day-wrapper.selected{background-color:var(--purp-60);color:var(--type-dark-high-contrast)}.day-wrapper.today{border-radius:calc(var(--base-grid-size) * 8);border:var(--border-width) solid var(--border-light);font-weight:var(--font-weight-heavy)}\n"], dependencies: [{ kind: "directive", type: i1.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "component", type: i2.ButtonComponent, selector: "[rivButton]", inputs: ["locked", "disabled", "loading", "full", "size", "variant", "icon", "iconPosition", "current"] }, { kind: "component", type: i3.SimpleSelectComponent, selector: "riv-simple-select", inputs: ["optionGroups", "selectedOption", "size", "disabled", "locked", "filterabilityOptions", "orderBy", "placeholder", "maxHeight", "maxWidth", "minHeight", "minWidth", "dividers", "sortSelectedToTop", "grow", "preferredCalloutPosition", "allowedCalloutPositions"], outputs: ["selectedOptionChange"] }, { kind: "pipe", type: i1.AsyncPipe, name: "async" }, { kind: "pipe", type: i4.OptionGroupPipe, name: "rivOptionGroup" }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
|
|
291
|
-
}
|
|
292
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: CalendarComponent, decorators: [{
|
|
293
|
-
type: Component,
|
|
294
|
-
args: [{ selector: 'riv-calendar', changeDetection: ChangeDetectionStrategy.OnPush, template: "<div class=\"controls\">\n <div>\n <riv-simple-select\n [filterabilityOptions]=\"{ enabled: true, placeholder: 'Month' }\"\n [orderBy]=\"'source'\"\n [optionGroups]=\"monthOptions$ | async | rivOptionGroup\"\n [selectedOption]=\"selectedMonthOption$ | async\"\n (selectedOptionChange)=\"emitActiveYearMonth($event?.date ?? null)\"\n >\n <ng-template #trigger let-state=\"state\">\n <span\n rivButton\n [size]=\"'small'\"\n [variant]=\"'ghost'\"\n [icon]=\"state.display.open ? 'ChevronUp' : 'ChevronDown'\"\n [iconPosition]=\"'last'\"\n >\n {{ state.display.formattedSelectedOptions || '...' }}\n </span>\n </ng-template>\n </riv-simple-select>\n <riv-simple-select\n [filterabilityOptions]=\"{ enabled: true, placeholder: 'Year' }\"\n [orderBy]=\"'source'\"\n [optionGroups]=\"yearOptions$ | async | rivOptionGroup\"\n [selectedOption]=\"selectedYearOption$ | async\"\n (selectedOptionChange)=\"emitActiveYearMonth($event?.date ?? null)\"\n >\n <ng-template #trigger let-state=\"state\">\n <span\n rivButton\n [size]=\"'small'\"\n [variant]=\"'ghost'\"\n [icon]=\"state.display.open ? 'ChevronUp' : 'ChevronDown'\"\n [iconPosition]=\"'last'\"\n >\n {{ state.display.formattedSelectedOptions || '...' }}\n </span>\n </ng-template>\n </riv-simple-select>\n </div>\n <div\n *ngIf=\"{ prev: previousMonth$ | async, next: nextMonth$ | async }; let vm\"\n >\n <button\n rivButton\n [size]=\"'small'\"\n [variant]=\"'ghost'\"\n [icon]=\"'ArrowLeft'\"\n [disabled]=\"!vm.prev\"\n (click)=\"vm.prev ? activeYearMonthChange.emit(vm.prev) : null\"\n type=\"button\"\n ></button>\n <button\n rivButton\n [size]=\"'small'\"\n [variant]=\"'ghost'\"\n [icon]=\"'ArrowRight'\"\n [disabled]=\"!vm.next\"\n (click)=\"vm.next ? activeYearMonthChange.emit(vm.next) : null\"\n type=\"button\"\n ></button>\n </div>\n</div>\n<div class=\"calendar\">\n <span class=\"label\">Su</span>\n <span class=\"label\">Mo</span>\n <span class=\"label\">Tu</span>\n <span class=\"label\">We</span>\n <span class=\"label\">Th</span>\n <span class=\"label\">Fr</span>\n <span class=\"label\">Sa</span>\n <button\n *ngFor=\"let day of dates$ | async; trackBy: trackByDate\"\n class=\"day\"\n [disabled]=\"day.hidden\"\n [attr.aria-disabled]=\"day.hidden ? 'true' : null\"\n [class.hidden]=\"day.hidden\"\n [class.bleed]=\"!day.inCurrentMonth && !day.hidden\"\n [class.fade-in]=\"day.fadeIn\"\n [class.fade-out]=\"day.fadeOut\"\n [class.in-range]=\"day.inRange\"\n [class.rounded-ne]=\"day.roundedNe\"\n [class.rounded-nw]=\"day.roundedNw\"\n [class.rounded-se]=\"day.roundedSe\"\n [class.rounded-sw]=\"day.roundedSw\"\n (click)=\"selectDay(day)\"\n type=\"button\"\n >\n <span\n class=\"day-wrapper\"\n [class.selected]=\"day.selected\"\n [class.today]=\"day.today\"\n >\n {{ day.display }}\n </span>\n </button>\n</div>\n", styles: [".controls{display:flex;align-items:center;justify-content:space-between}.calendar{display:grid;grid-template-columns:repeat(7,calc(var(--base-grid-size) * 10));grid-auto-rows:calc(var(--base-grid-size) * 6)}.label{display:flex;justify-content:center;align-items:center;font-size:var(--type-1-font-size);line-height:var(--type-1-line-height-0);font-weight:var(--font-weight-heavy)}.day{display:flex;align-items:stretch;cursor:pointer}.day.hidden{cursor:default}.day:hover:not(.hidden){background-color:var(--surface-light-1)}.day.in-range{background-color:var(--purp-10)}.day.fade-out{background-image:linear-gradient(to right,var(--purp-10),var(--white-100))}.day.fade-in{background-image:linear-gradient(to right,var(--white-100),var(--purp-10))}.day.bleed{color:var(--type-light-low-contrast)}.day.rounded-ne{border-top-right-radius:var(--border-radius-medium)}.day.rounded-nw{border-top-left-radius:var(--border-radius-medium)}.day.rounded-sw{border-bottom-left-radius:var(--border-radius-medium)}.day.rounded-se{border-bottom-right-radius:var(--border-radius-medium)}.day-wrapper{flex-grow:1;display:flex;justify-content:center;align-items:center;border-radius:var(--border-radius-medium)}.day-wrapper.selected{background-color:var(--purp-60);color:var(--type-dark-high-contrast)}.day-wrapper.today{border-radius:calc(var(--base-grid-size) * 8);border:var(--border-width) solid var(--border-light);font-weight:var(--font-weight-heavy)}\n"] }]
|
|
295
|
-
}], propDecorators: { activeYearMonth: [{
|
|
296
|
-
type: Input
|
|
297
|
-
}], displayMin: [{
|
|
298
|
-
type: Input
|
|
299
|
-
}], displayMax: [{
|
|
300
|
-
type: Input
|
|
301
|
-
}], selectableMin: [{
|
|
302
|
-
type: Input
|
|
303
|
-
}], selectableMax: [{
|
|
304
|
-
type: Input
|
|
305
|
-
}], omitRange: [{
|
|
306
|
-
type: Input
|
|
307
|
-
}], selectedValue: [{
|
|
308
|
-
type: Input
|
|
309
|
-
}], activeYearMonthChange: [{
|
|
310
|
-
type: Output
|
|
311
|
-
}], dateSelect: [{
|
|
312
|
-
type: Output
|
|
313
|
-
}] } });
|
|
314
|
-
(function (CalendarComponent) {
|
|
315
|
-
CalendarComponent.defaultMin = timeYear.floor(timeYear.offset(new Date(), -7));
|
|
316
|
-
CalendarComponent.defaultMax = timeDay.offset(timeYear.floor(timeYear.offset(new Date(), 5)), -1);
|
|
317
|
-
})(CalendarComponent || (CalendarComponent = {}));
|
|
318
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2FsZW5kYXIuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvcml2L3NyYy9saWIvaW5wdXQvY2FsZW5kYXIvY2FsZW5kYXIuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvcml2L3NyYy9saWIvaW5wdXQvY2FsZW5kYXIvY2FsZW5kYXIuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUNMLHVCQUF1QixFQUN2QixTQUFTLEVBQ1QsWUFBWSxFQUNaLEtBQUssRUFDTCxNQUFNLEdBRVAsTUFBTSxlQUFlLENBQUM7QUFDdkIsT0FBTyxFQUNMLE9BQU8sRUFDUCxRQUFRLEVBQ1IsU0FBUyxFQUNULFVBQVUsRUFDVixVQUFVLEVBQ1YsUUFBUSxFQUNSLFNBQVMsR0FDVixNQUFNLFNBQVMsQ0FBQztBQUNqQixPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFDNUMsT0FBTyxFQUNMLGVBQWUsRUFFZixhQUFhLEVBQ2IsR0FBRyxFQUNILFdBQVcsR0FDWixNQUFNLE1BQU0sQ0FBQzs7Ozs7O0FBRWQsTUFBTSxjQUFjLEdBQUcsVUFBVSxDQUFDLElBQUksQ0FBQyxDQUFDO0FBQ3hDLE1BQU0sYUFBYSxHQUFHLFVBQVUsQ0FBQyxJQUFJLENBQUMsQ0FBQztBQUN2QyxNQUFNLFlBQVksR0FBRyxVQUFVLENBQUMsSUFBSSxDQUFDLENBQUM7QUFDdEMsTUFBTSxzQkFBc0IsR0FBRyxVQUFVLENBQUMsSUFBSSxDQUFDLENBQUM7QUFFaEQsU0FBUyxnQkFBZ0IsQ0FBQyxJQUFVO0lBQ2xDLE9BQU8sUUFBUSxDQUFDLHNCQUFzQixDQUFDLElBQUksQ0FBQyxDQUFDLENBQUM7QUFDaEQsQ0FBQztBQXlCRCw2RUFBNkU7QUFDN0UsMkJBQTJCO0FBQzNCLG1HQUFtRztBQU9uRyxNQUFNLE9BQU8saUJBQWlCO0lBTjlC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QkFRUCxVQUFVO3NCQURULE1BQU07O0FBY1QsV0FBaUIsaUJBQWlCO0lBQ25CLDRCQUFVLEdBQUcsUUFBUSxDQUFDLEtBQUssQ0FBQyxRQUFRLENBQUMsTUFBTSxDQUFDLElBQUksSUFBSSxFQUFFLEVBQUUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDO0lBQzdELDRCQUFVLEdBQUcsT0FBTyxDQUFDLE1BQU0sQ0FDdEMsUUFBUSxDQUFDLEtBQUssQ0FBQyxRQUFRLENBQUMsTUFBTSxDQUFDLElBQUksSUFBSSxFQUFFLEVBQUUsQ0FBQyxDQUFDLENBQUMsRUFDOUMsQ0FBQyxDQUFDLENBQ0gsQ0FBQztBQUNKLENBQUMsRUFOZ0IsaUJBQWlCLEtBQWpCLGlCQUFpQixRQU1qQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7XG4gIENoYW5nZURldGVjdGlvblN0cmF0ZWd5LFxuICBDb21wb25lbnQsXG4gIEV2ZW50RW1pdHRlcixcbiAgSW5wdXQsXG4gIE91dHB1dCxcbiAgVHJhY2tCeUZ1bmN0aW9uLFxufSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7XG4gIHRpbWVEYXksXG4gIHRpbWVEYXlzLFxuICB0aW1lTW9udGgsXG4gIHRpbWVNb250aHMsXG4gIHRpbWVTdW5kYXksXG4gIHRpbWVZZWFyLFxuICB0aW1lWWVhcnMsXG59IGZyb20gJ2QzLXRpbWUnO1xuaW1wb3J0IHsgdGltZUZvcm1hdCB9IGZyb20gJ2QzLXRpbWUtZm9ybWF0JztcbmltcG9ydCB7XG4gIEJlaGF2aW9yU3ViamVjdCxcbiAgT2JzZXJ2YWJsZSxcbiAgY29tYmluZUxhdGVzdCxcbiAgbWFwLFxuICBzaGFyZVJlcGxheSxcbn0gZnJvbSAncnhqcyc7XG5cbmNvbnN0IG1vbnRoRm9ybWF0dGVyID0gdGltZUZvcm1hdCgnJUInKTtcbmNvbnN0IHllYXJGb3JtYXR0ZXIgPSB0aW1lRm9ybWF0KCclWScpO1xuY29uc3QgZGF5Rm9ybWF0dGVyID0gdGltZUZvcm1hdCgnJWUnKTtcbmNvbnN0IHdlZWtkYXlOdW1iZXJGb3JtYXR0ZXIgPSB0aW1lRm9ybWF0KCcldycpO1xuXG5mdW5jdGlvbiBnZXRXZWVrZGF5TnVtYmVyKGRhdGU6IERhdGUpOiBudW1iZXIge1xuICByZXR1cm4gcGFyc2VJbnQod2Vla2RheU51bWJlckZvcm1hdHRlcihkYXRlKSk7XG59XG5cbnR5cGUgRGF0ZU9wdGlvbiA9IHtcbiAgaWQ6IHN0cmluZztcbiAgdGl0bGU6IHN0cmluZztcbiAgZGlzYWJsZWQ6IGJvb2xlYW47XG4gIGRhdGU6IERhdGU7XG59O1xuXG50eXBlIENhbGVuZGFyRGF0ZSA9IHtcbiAgZGF0ZTogRGF0ZTtcbiAgZGlzcGxheTogc3RyaW5nO1xuICBmYWRlSW46IGJvb2xlYW47XG4gIGZhZGVPdXQ6IGJvb2xlYW47XG4gIGhpZGRlbjogYm9vbGVhbjtcbiAgaW5DdXJyZW50TW9udGg6IGJvb2xlYW47XG4gIGluUmFuZ2U6IGJvb2xlYW47XG4gIHJvdW5kZWROZTogYm9vbGVhbjtcbiAgcm91bmRlZE53OiBib29sZWFuO1xuICByb3VuZGVkU2U6IGJvb2xlYW47XG4gIHJvdW5kZWRTdzogYm9vbGVhbjtcbiAgc2VsZWN0ZWQ6IGJvb2xlYW47XG4gIHRvZGF5OiBib29sZWFuO1xufTtcblxuLy8gVE9ETzogb25jZSB3ZSB1cGdyYWRlIHRvIEFuZ3VsYXIgMTYsIHRoaXMgY29tcG9uZW50IGNhbiBiZSBjbGVhbmVkIHVwIHdpdGhcbi8vIHNpZ25hbHMgaW5zdGVhZCBvZiBSeEpTLlxuLy8gaHR0cHM6Ly93d3cubm90aW9uLnNvL3JpdmV0L1Jlc29sdmUtVE9ET3MtYWZ0ZXItQW5ndWxhci11cGdyYWRlLTFmMjY2N2ViMmEzMTgwYjc5ZjZhZDkyYTdlNTc2ZjA4XG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdyaXYtY2FsZW5kYXInLFxuICB0ZW1wbGF0ZVVybDogJy4vY2FsZW5kYXIuY29tcG9uZW50Lmh0bWwnLFxuICBzdHlsZVVybHM6IFsnLi9jYWxlbmRhci5jb21wb25lbnQuY3NzJ10sXG4gIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoLFxufSlcbmV4cG9ydCBjbGFzcyBDYWxlbmRhckNvbXBvbmVudCB7XG4gIHByaXZhdGUgcmVhZG9ubHkgYWN0aXZlWWVhck1vbnRoJCA9IG5ldyBCZWhhdmlvclN1YmplY3Q8RGF0ZT4obmV3IERhdGUoKSk7XG4gIEBJbnB1dCgpXG4gIHB1YmxpYyBzZXQgYWN0aXZlWWVhck1vbnRoKHY6IERhdGUpIHtcbiAgICB0aGlzLmFjdGl2ZVllYXJNb250aCQubmV4dCh2KTtcbiAgfVxuICBwdWJsaWMgZ2V0IGFjdGl2ZVllYXJNb250aCgpOiBEYXRlIHtcbiAgICByZXR1cm4gdGhpcy5hY3RpdmVZZWFyTW9udGgkLmdldFZhbHVlKCk7XG4gIH1cblxuICBwcml2YXRlIHJlYWRvbmx5IGRpc3BsYXlNaW4kID0gbmV3IEJlaGF2aW9yU3ViamVjdDxEYXRlPihcbiAgICBDYWxlbmRhckNvbXBvbmVudC5kZWZhdWx0TWluLFxuICApO1xuICBASW5wdXQoKVxuICBwdWJsaWMgc2V0IGRpc3BsYXlNaW4odjogRGF0ZSkge1xuICAgIHRoaXMuZGlzcGxheU1pbiQubmV4dCh2KTtcbiAgfVxuICBwdWJsaWMgZ2V0IGRpc3BsYXlNaW4oKTogRGF0ZSB7XG4gICAgcmV0dXJuIHRoaXMuZGlzcGxheU1pbiQuZ2V0VmFsdWUoKTtcbiAgfVxuXG4gIHByaXZhdGUgcmVhZG9ubHkgZGlzcGxheU1heCQgPSBuZXcgQmVoYXZpb3JTdWJqZWN0PERhdGU+KFxuICAgIENhbGVuZGFyQ29tcG9uZW50LmRlZmF1bHRNYXgsXG4gICk7XG4gIEBJbnB1dCgpXG4gIHB1YmxpYyBzZXQgZGlzcGxheU1heCh2OiBEYXRlKSB7XG4gICAgdGhpcy5kaXNwbGF5TWF4JC5uZXh0KHYpO1xuICB9XG4gIHB1YmxpYyBnZXQgZGlzcGxheU1heCgpOiBEYXRlIHtcbiAgICByZXR1cm4gdGhpcy5kaXNwbGF5TWF4JC5nZXRWYWx1ZSgpO1xuICB9XG5cbiAgcHJpdmF0ZSByZWFkb25seSBzZWxlY3RhYmxlTWluJCA9IG5ldyBCZWhhdmlvclN1YmplY3Q8RGF0ZSB8IHVuZGVmaW5lZD4oXG4gICAgdW5kZWZpbmVkLFxuICApO1xuICBASW5wdXQoKVxuICBwdWJsaWMgc2V0IHNlbGVjdGFibGVNaW4odjogRGF0ZSB8IHVuZGVmaW5lZCkge1xuICAgIHRoaXMuc2VsZWN0YWJsZU1pbiQubmV4dCh2KTtcbiAgfVxuICBwdWJsaWMgZ2V0IHNlbGVjdGFibGVNaW4oKTogRGF0ZSB8IHVuZGVmaW5lZCB7XG4gICAgcmV0dXJuIHRoaXMuc2VsZWN0YWJsZU1pbiQuZ2V0VmFsdWUoKTtcbiAgfVxuXG4gIHByaXZhdGUgcmVhZG9ubHkgc2VsZWN0YWJsZU1heCQgPSBuZXcgQmVoYXZpb3JTdWJqZWN0PERhdGUgfCB1bmRlZmluZWQ+KFxuICAgIHVuZGVmaW5lZCxcbiAgKTtcbiAgQElucHV0KClcbiAgcHVibGljIHNldCBzZWxlY3RhYmxlTWF4KHY6IERhdGUgfCB1bmRlZmluZWQpIHtcbiAgICB0aGlzLnNlbGVjdGFibGVNYXgkLm5leHQodik7XG4gIH1cbiAgcHVibGljIGdldCBzZWxlY3RhYmxlTWF4KCk6IERhdGUgfCB1bmRlZmluZWQge1xuICAgIHJldHVybiB0aGlzLnNlbGVjdGFibGVNYXgkLmdldFZhbHVlKCk7XG4gIH1cblxuICBwcml2YXRlIHJlYWRvbmx5IG9taXRSYW5nZSQgPSBuZXcgQmVoYXZpb3JTdWJqZWN0PFtEYXRlLCBEYXRlXSB8IHVuZGVmaW5lZD4oXG4gICAgdW5kZWZpbmVkLFxuICApO1xuICBASW5wdXQoKVxuICBwdWJsaWMgc2V0IG9taXRSYW5nZSh2OiBbRGF0ZSwgRGF0ZV0gfCB1bmRlZmluZWQpIHtcbiAgICB0aGlzLm9taXRSYW5nZSQubmV4dCh2KTtcbiAgfVxuICBwdWJsaWMgZ2V0IG9taXRSYW5nZSgpOiBbRGF0ZSwgRGF0ZV0gfCB1bmRlZmluZWQge1xuICAgIHJldHVybiB0aGlzLm9taXRSYW5nZSQuZ2V0VmFsdWUoKTtcbiAgfVxuXG4gIHByaXZhdGUgcmVhZG9ubHkgc2VsZWN0ZWRWYWx1ZSQgPSBuZXcgQmVoYXZpb3JTdWJqZWN0PFxuICAgIERhdGUgfCBbRGF0ZSwgRGF0ZV0gfCB1bmRlZmluZWRcbiAgPih1bmRlZmluZWQpO1xuICBASW5wdXQoKVxuICBwdWJsaWMgc2V0IHNlbGVjdGVkVmFsdWUodjogRGF0ZSB8IFtEYXRlLCBEYXRlXSB8IHVuZGVmaW5lZCkge1xuICAgIHRoaXMuc2VsZWN0ZWRWYWx1ZSQubmV4dCh2KTtcbiAgfVxuICBwdWJsaWMgZ2V0IHNlbGVjdGVkVmFsdWUoKTogRGF0ZSB8IFtEYXRlLCBEYXRlXSB8IHVuZGVmaW5lZCB7XG4gICAgcmV0dXJuIHRoaXMuc2VsZWN0ZWRWYWx1ZSQuZ2V0VmFsdWUoKTtcbiAgfVxuXG4gIHJlYWRvbmx5IHllYXJPcHRpb25zJDogT2JzZXJ2YWJsZTxEYXRlT3B0aW9uW10+ID0gY29tYmluZUxhdGVzdChbXG4gICAgdGhpcy5kaXNwbGF5TWluJCxcbiAgICB0aGlzLmRpc3BsYXlNYXgkLFxuICAgIHRoaXMuc2VsZWN0YWJsZU1pbiQsXG4gICAgdGhpcy5zZWxlY3RhYmxlTWF4JCxcbiAgICB0aGlzLmFjdGl2ZVllYXJNb250aCQsXG4gIF0pLnBpcGUoXG4gICAgbWFwKFxuICAgICAgKFtcbiAgICAgICAgZGlzcGxheU1pbixcbiAgICAgICAgZGlzcGxheU1heCxcbiAgICAgICAgc2VsZWN0YWJsZU1pbixcbiAgICAgICAgc2VsZWN0YWJsZU1heCxcbiAgICAgICAgYWN0aXZlWWVhck1vbnRoLFxuICAgICAgXSkgPT4ge1xuICAgICAgICBjb25zdCBtaW46IERhdGUgPSBzZWxlY3RhYmxlTWluID8/IGRpc3BsYXlNaW47XG4gICAgICAgIGNvbnN0IG1heDogRGF0ZSA9IHNlbGVjdGFibGVNYXggPz8gZGlzcGxheU1heDtcbiAgICAgICAgcmV0dXJuIHRpbWVZZWFycyh0aW1lWWVhci5mbG9vcihkaXNwbGF5TWluKSwgZGlzcGxheU1heClcbiAgICAgICAgICAucmV2ZXJzZSgpXG4gICAgICAgICAgLm1hcChmbG9vcmVkWWVhciA9PiB7XG4gICAgICAgICAgICBjb25zdCB5ZWFyID0gbmV3IERhdGUoXG4gICAgICAgICAgICAgIGZsb29yZWRZZWFyLmdldEZ1bGxZZWFyKCksXG4gICAgICAgICAgICAgIGFjdGl2ZVllYXJNb250aC5nZXRNb250aCgpLFxuICAgICAgICAgICAgKTtcbiAgICAgICAgICAgIHJldHVybiB7XG4gICAgICAgICAgICAgIGlkOiB5ZWFyLmdldEZ1bGxZZWFyKCkudG9TdHJpbmcoKSxcbiAgICAgICAgICAgICAgdGl0bGU6IHllYXJGb3JtYXR0ZXIoeWVhciksXG4gICAgICAgICAgICAgIGRpc2FibGVkOlxuICAgICAgICAgICAgICAgIHllYXIuZ2V0RnVsbFllYXIoKSA8IG1pbi5nZXRGdWxsWWVhcigpIHx8XG4gICAgICAgICAgICAgICAgeWVhci5nZXRGdWxsWWVhcigpID4gbWF4LmdldEZ1bGxZZWFyKCksXG4gICAgICAgICAgICAgIGRhdGU6IHllYXIsXG4gICAgICAgICAgICB9O1xuICAgICAgICAgIH0pO1xuICAgICAgfSxcbiAgICApLFxuICAgIHNoYXJlUmVwbGF5KHsgcmVmQ291bnQ6IHRydWUsIGJ1ZmZlclNpemU6IDEgfSksXG4gICk7XG5cbiAgcmVhZG9ubHkgc2VsZWN0ZWRZZWFyT3B0aW9uJCA9IGNvbWJpbmVMYXRlc3QoW1xuICAgIHRoaXMueWVhck9wdGlvbnMkLFxuICAgIHRoaXMuYWN0aXZlWWVhck1vbnRoJCxcbiAgXSkucGlwZShcbiAgICBtYXAoXG4gICAgICAoW3llYXJPcHRpb25zLCBhY3RpdmVZZWFyTW9udGhdKSA9PlxuICAgICAgICB5ZWFyT3B0aW9ucy5maW5kKFxuICAgICAgICAgIHkgPT4geS5pZCA9PT0gYWN0aXZlWWVhck1vbnRoLmdldEZ1bGxZZWFyKCkudG9TdHJpbmcoKSxcbiAgICAgICAgKSB8fCBudWxsLFxuICAgICksXG4gICAgc2hhcmVSZXBsYXkoeyByZWZDb3VudDogdHJ1ZSwgYnVmZmVyU2l6ZTogMSB9KSxcbiAgKTtcblxuICByZWFkb25seSBtb250aE9wdGlvbnMkOiBPYnNlcnZhYmxlPERhdGVPcHRpb25bXT4gPSBjb21iaW5lTGF0ZXN0KFtcbiAgICB0aGlzLmFjdGl2ZVllYXJNb250aCQsXG4gICAgdGhpcy5kaXNwbGF5TWluJCxcbiAgICB0aGlzLmRpc3BsYXlNYXgkLFxuICAgIHRoaXMuc2VsZWN0YWJsZU1pbiQsXG4gICAgdGhpcy5zZWxlY3RhYmxlTWF4JCxcbiAgXSkucGlwZShcbiAgICBtYXAoXG4gICAgICAoW1xuICAgICAgICBhY3RpdmVZZWFyTW9udGgsXG4gICAgICAgIGRpc3BsYXlNaW4sXG4gICAgICAgIGRpc3BsYXlNYXgsXG4gICAgICAgIHNlbGVjdGFibGVNaW4sXG4gICAgICAgIHNlbGVjdGFibGVNYXgsXG4gICAgICBdKSA9PiB7XG4gICAgICAgIGNvbnN0IG1pbiA9IHNlbGVjdGFibGVNaW4gPz8gZGlzcGxheU1pbjtcbiAgICAgICAgY29uc3QgbWF4ID0gc2VsZWN0YWJsZU1heCA/PyBkaXNwbGF5TWF4O1xuICAgICAgICByZXR1cm4gdGltZU1vbnRocyhcbiAgICAgICAgICB0aW1lWWVhci5mbG9vcihhY3RpdmVZZWFyTW9udGgpLFxuICAgICAgICAgIHRpbWVZZWFyLmZsb29yKHRpbWVZZWFyLm9mZnNldChhY3RpdmVZZWFyTW9udGgsIDEpKSxcbiAgICAgICAgKS5tYXAobW9udGggPT4ge1xuICAgICAgICAgIGNvbnN0IGFjdGl2ZVllYXIgPSBhY3RpdmVZZWFyTW9udGguZ2V0RnVsbFllYXIoKTtcbiAgICAgICAgICBjb25zdCBtaW5ZZWFyID0gbWluLmdldEZ1bGxZZWFyKCk7XG4gICAgICAgICAgY29uc3QgbWF4WWVhciA9IG1heC5nZXRGdWxsWWVhcigpO1xuICAgICAgICAgIGNvbnN0IG1vbnRoTnVtYmVyID0gbW9udGguZ2V0TW9udGgoKTtcbiAgICAgICAgICBjb25zdCBtaW5Nb250aCA9IG1pbi5nZXRNb250aCgpO1xuICAgICAgICAgIGNvbnN0IG1heE1vbnRoID0gbWF4LmdldE1vbnRoKCk7XG5cbiAgICAgICAgICBjb25zdCBkaXNhYmxlZCA9XG4gICAgICAgICAgICAoYWN0aXZlWWVhciA9PT0gbWluWWVhciAmJiBtb250aE51bWJlciA8IG1pbk1vbnRoKSB8fFxuICAgICAgICAgICAgKGFjdGl2ZVllYXIgPT09IG1heFllYXIgJiYgbW9udGhOdW1iZXIgPiBtYXhNb250aCkgfHxcbiAgICAgICAgICAgIGFjdGl2ZVllYXIgPCBtaW5ZZWFyIHx8XG4gICAgICAgICAgICBhY3RpdmVZZWFyID4gbWF4WWVhcjtcblxuICAgICAgICAgIHJldHVybiB7XG4gICAgICAgICAgICBpZDogbW9udGhOdW1iZXIudG9TdHJpbmcoKSxcbiAgICAgICAgICAgIHRpdGxlOiBtb250aEZvcm1hdHRlcihtb250aCksXG4gICAgICAgICAgICBkaXNhYmxlZCxcbiAgICAgICAgICAgIGRhdGU6IG1vbnRoLFxuICAgICAgICAgIH07XG4gICAgICAgIH0pO1xuICAgICAgfSxcbiAgICApLFxuICAgIHNoYXJlUmVwbGF5KHsgcmVmQ291bnQ6IHRydWUsIGJ1ZmZlclNpemU6IDEgfSksXG4gICk7XG5cbiAgcmVhZG9ubHkgc2VsZWN0ZWRNb250aE9wdGlvbiQgPSBjb21iaW5lTGF0ZXN0KFtcbiAgICB0aGlzLm1vbnRoT3B0aW9ucyQsXG4gICAgdGhpcy5hY3RpdmVZZWFyTW9udGgkLFxuICBdKS5waXBlKFxuICAgIG1hcChcbiAgICAgIChbbW9udGhPcHRpb25zLCBhY3RpdmVZZWFyTW9udGhdKSA9PlxuICAgICAgICBtb250aE9wdGlvbnMuZmluZChcbiAgICAgICAgICBtID0+IG0uaWQgPT09IGFjdGl2ZVllYXJNb250aC5nZXRNb250aCgpLnRvU3RyaW5nKCksXG4gICAgICAgICkgfHwgbnVsbCxcbiAgICApLFxuICAgIHNoYXJlUmVwbGF5KHsgcmVmQ291bnQ6IHRydWUsIGJ1ZmZlclNpemU6IDEgfSksXG4gICk7XG5cbiAgcmVhZG9ubHkgcHJldmlvdXNNb250aCQgPSBjb21iaW5lTGF0ZXN0KFtcbiAgICB0aGlzLmFjdGl2ZVllYXJNb250aCQsXG4gICAgdGhpcy5kaXNwbGF5TWluJCxcbiAgICB0aGlzLnNlbGVjdGFibGVNaW4kLFxuICBdKS5waXBlKFxuICAgIG1hcCgoW3llYXJNb250aCwgZGlzcGxheU1pbiwgc2VsZWN0YWJsZU1pbl0pID0+IHtcbiAgICAgIGNvbnN0IG1pbjogRGF0ZSA9IHNlbGVjdGFibGVNaW4gPz8gZGlzcGxheU1pbjtcbiAgICAgIGNvbnN0IHByZXZpb3VzID0gdGltZU1vbnRoLmZsb29yKHRpbWVNb250aC5vZmZzZXQoeWVhck1vbnRoLCAtMSkpO1xuICAgICAgY29uc3QgbWluTW9udGggPSBtaW4uZ2V0TW9udGgoKTtcbiAgICAgIGNvbnN0IG1pblllYXIgPSBtaW4uZ2V0RnVsbFllYXIoKTtcbiAgICAgIGNvbnN0IHByZXZNb250aCA9IHByZXZpb3VzLmdldE1vbnRoKCk7XG4gICAgICBjb25zdCBwcmV2WWVhciA9IHByZXZpb3VzLmdldEZ1bGxZZWFyKCk7XG5cbiAgICAgIGNvbnN0IGRpc2FibGVkID1cbiAgICAgICAgKHByZXZZZWFyID09PSBtaW5ZZWFyICYmIHByZXZNb250aCA8IG1pbk1vbnRoKSB8fCBwcmV2WWVhciA8IG1pblllYXI7XG4gICAgICBpZiAoZGlzYWJsZWQpIHJldHVybiBudWxsO1xuICAgICAgcmV0dXJuIHByZXZpb3VzO1xuICAgIH0pLFxuICApO1xuXG4gIHJlYWRvbmx5IG5leHRNb250aCQgPSBjb21iaW5lTGF0ZXN0KFtcbiAgICB0aGlzLmFjdGl2ZVllYXJNb250aCQsXG4gICAgdGhpcy5kaXNwbGF5TWF4JCxcbiAgICB0aGlzLnNlbGVjdGFibGVNYXgkLFxuICBdKS5waXBlKFxuICAgIG1hcCgoW3llYXJNb250aCwgZGlzcGxheU1heCwgc2VsZWN0YWJsZU1heF0pID0+IHtcbiAgICAgIGNvbnN0IG1heDogRGF0ZSA9IHNlbGVjdGFibGVNYXggPz8gZGlzcGxheU1heDtcbiAgICAgIGNvbnN0IG5leHQgPSB0aW1lTW9udGguZmxvb3IodGltZU1vbnRoLm9mZnNldCh5ZWFyTW9udGgsIDEpKTtcbiAgICAgIGNvbnN0IG1heE1vbnRoID0gbWF4LmdldE1vbnRoKCk7XG4gICAgICBjb25zdCBtYXhZZWFyID0gbWF4LmdldEZ1bGxZZWFyKCk7XG4gICAgICBjb25zdCBuZXh0TW9udGggPSBuZXh0LmdldE1vbnRoKCk7XG4gICAgICBjb25zdCBuZXh0WWVhciA9IG5leHQuZ2V0RnVsbFllYXIoKTtcblxuICAgICAgY29uc3QgZGlzYWJsZWQgPVxuICAgICAgICAobmV4dFllYXIgPT09IG1heFllYXIgJiYgbmV4dE1vbnRoID4gbWF4TW9udGgpIHx8IG5leHRZZWFyID4gbWF4WWVhcjtcbiAgICAgIGlmIChkaXNhYmxlZCkgcmV0dXJuIG51bGw7XG4gICAgICByZXR1cm4gbmV4dDtcbiAgICB9KSxcbiAgKTtcblxuICBwcml2YXRlIHJlYWRvbmx5IGRhdGVzSW5TZWxlY3RlZFJhbmdlJDogT2JzZXJ2YWJsZTxEYXRlW10+ID1cbiAgICB0aGlzLnNlbGVjdGVkVmFsdWUkLnBpcGUoXG4gICAgICBtYXAoc2VsZWN0ZWRWYWx1ZSA9PiB7XG4gICAgICAgIGlmICghc2VsZWN0ZWRWYWx1ZSkgcmV0dXJuIFtdO1xuICAgICAgICBpZiAoc2VsZWN0ZWRWYWx1ZSBpbnN0YW5jZW9mIERhdGUpIHJldHVybiBbc2VsZWN0ZWRWYWx1ZV07XG4gICAgICAgIHJldHVybiB0aW1lRGF5cyhcbiAgICAgICAgICB0aW1lRGF5LmZsb29yKHNlbGVjdGVkVmFsdWVbMF0pLFxuICAgICAgICAgIHRpbWVEYXkuZmxvb3IodGltZURheS5vZmZzZXQoc2VsZWN0ZWRWYWx1ZVsxXSwgMSkpLFxuICAgICAgICApO1xuICAgICAgfSksXG4gICAgICBzaGFyZVJlcGxheSh7IHJlZkNvdW50OiB0cnVlLCBidWZmZXJTaXplOiAxIH0pLFxuICAgICk7XG5cbiAgcmVhZG9ubHkgZGF0ZXMkOiBPYnNlcnZhYmxlPENhbGVuZGFyRGF0ZVtdPiA9IGNvbWJpbmVMYXRlc3QoW1xuICAgIHRoaXMuYWN0aXZlWWVhck1vbnRoJCxcbiAgICB0aGlzLnNlbGVjdGVkVmFsdWUkLFxuICAgIHRoaXMuZGF0ZXNJblNlbGVjdGVkUmFuZ2UkLFxuICAgIHRoaXMuc2VsZWN0YWJsZU1pbiQsXG4gICAgdGhpcy5zZWxlY3RhYmxlTWF4JCxcbiAgICB0aGlzLm9taXRSYW5nZSQsXG4gIF0pLnBpcGUoXG4gICAgbWFwKFxuICAgICAgKFtcbiAgICAgICAgYWN0aXZlWWVhck1vbnRoLFxuICAgICAgICBzZWxlY3RlZFZhbHVlLFxuICAgICAgICBkYXRlc0luU2VsZWN0ZWRSYW5nZSxcbiAgICAgICAgc2VsZWN0YWJsZU1pbixcbiAgICAgICAgc2VsZWN0YWJsZU1heCxcbiAgICAgICAgb21pdFJhbmdlLFxuICAgICAgXSkgPT4ge1xuICAgICAgICBjb25zdCBjYWxlbmRhckRhdGVzID0gdGltZURheXMoXG4gICAgICAgICAgdGltZVN1bmRheS5mbG9vcihhY3RpdmVZZWFyTW9udGgpLFxuICAgICAgICAgIHRpbWVTdW5kYXkuY2VpbCh0aW1lTW9udGgub2Zmc2V0KGFjdGl2ZVllYXJNb250aCwgMSkpLFxuICAgICAgICApO1xuICAgICAgICBjb25zdCBtaW5DYWxlbmRhckRhdGUgPSBjYWxlbmRhckRhdGVzWzBdO1xuICAgICAgICBjb25zdCBtYXhDYWxlbmRhckRhdGUgPSBjYWxlbmRhckRhdGVzW2NhbGVuZGFyRGF0ZXMubGVuZ3RoIC0gMV07XG4gICAgICAgIGNvbnN0IHNlbGVjdGVkRGF0ZUNvb3JkaW5hdGVzID0gbmV3IE1hcDxudW1iZXIsIFtudW1iZXIsIG51bWJlcl0+KCk7XG4gICAgICAgIGNvbnN0IHZpc2libGVEYXRlc0luU2VsZWN0ZWRSYW5nZSA9IGRhdGVzSW5TZWxlY3RlZFJhbmdlLmZpbHRlcihcbiAgICAgICAgICBzZWxlY3RlZCA9PlxuICAgICAgICAgICAgc2VsZWN0ZWQudmFsdWVPZigpID49IG1pbkNhbGVuZGFyRGF0ZS52YWx1ZU9mKCkgJiZcbiAgICAgICAgICAgIHNlbGVjdGVkLnZhbHVlT2YoKSA8PSBtYXhDYWxlbmRhckRhdGUudmFsdWVPZigpICYmXG4gICAgICAgICAgICAoc2VsZWN0YWJsZU1pblxuICAgICAgICAgICAgICA/IHNlbGVjdGVkLnZhbHVlT2YoKSA+PSBzZWxlY3RhYmxlTWluLnZhbHVlT2YoKVxuICAgICAgICAgICAgICA6IHRydWUpICYmXG4gICAgICAgICAgICAoc2VsZWN0YWJsZU1heFxuICAgICAgICAgICAgICA/IHNlbGVjdGVkLnZhbHVlT2YoKSA8PSBzZWxlY3RhYmxlTWF4LnZhbHVlT2YoKVxuICAgICAgICAgICAgICA6IHRydWUpICYmXG4gICAgICAgICAgICAob21pdFJhbmdlXG4gICAgICAgICAgICAgID8gc2VsZWN0ZWQudmFsdWVPZigpIDwgb21pdFJhbmdlWzBdLnZhbHVlT2YoKSB8fFxuICAgICAgICAgICAgICAgIHNlbGVjdGVkLnZhbHVlT2YoKSA+IG9taXRSYW5nZVsxXS52YWx1ZU9mKClcbiAgICAgICAgICAgICAgOiB0cnVlKSxcbiAgICAgICAgKTtcbiAgICAgICAgaWYgKHZpc2libGVEYXRlc0luU2VsZWN0ZWRSYW5nZS5sZW5ndGggPiAwKSB7XG4gICAgICAgICAgY29uc3QgZmlyc3RWaXNpYmxlU2VsZWN0ZWREYXRlT2Zmc2V0ID0gZ2V0V2Vla2RheU51bWJlcihcbiAgICAgICAgICAgIHZpc2libGVEYXRlc0luU2VsZWN0ZWRSYW5nZVswXSxcbiAgICAgICAgICApO1xuICAgICAgICAgIHZpc2libGVEYXRlc0luU2VsZWN0ZWRSYW5nZS5mb3JFYWNoKChzZWxlY3RlZCwgaSkgPT4ge1xuICAgICAgICAgICAgY29uc3QgeCA9IGdldFdlZWtkYXlOdW1iZXIoc2VsZWN0ZWQpO1xuICAgICAgICAgICAgY29uc3QgeSA9IE1hdGguZmxvb3IoKGkgKyBmaXJzdFZpc2libGVTZWxlY3RlZERhdGVPZmZzZXQpIC8gNyk7XG4gICAgICAgICAgICBzZWxlY3RlZERhdGVDb29yZGluYXRlcy5zZXQoc2VsZWN0ZWQudmFsdWVPZigpLCBbeCwgeV0pO1xuICAgICAgICAgIH0pO1xuICAgICAgICB9XG4gICAgICAgIGZ1bmN0aW9uIHNlcmlhbGl6ZUNvb3JkaW5hdGVzKGNvb3JkaW5hdGVzOiBbbnVtYmVyLCBudW1iZXJdKTogc3RyaW5nIHtcbiAgICAgICAgICByZXR1cm4gY29vcmRpbmF0ZXMuam9pbignOicpO1xuICAgICAgICB9XG5cbiAgICAgICAgY29uc3QgdmlzaWJsZURhdGVzSW5TZWxlY3RlZFJhbmdlQ29vcmRpbmF0ZXMgPSBuZXcgU2V0KFxuICAgICAgICAgIFsuLi5zZWxlY3RlZERhdGVDb29yZGluYXRlcy52YWx1ZXMoKV0ubWFwKHNlcmlhbGl6ZUNvb3JkaW5hdGVzKSxcbiAgICAgICAgKTtcblxuICAgICAgICBmdW5jdGlvbiBnZXRSb3VuZGVkQ29ybmVycyhkYXRlOiBEYXRlKToge1xuICAgICAgICAgIG53OiBib29sZWFuO1xuICAgICAgICAgIG5lOiBib29sZWFuO1xuICAgICAgICAgIHNlOiBib29sZWFuO1xuICAgICAgICAgIHN3OiBib29sZWFuO1xuICAgICAgICB9IHtcbiAgICAgICAgICBjb25zdCBjb29yZGluYXRlcyA9IHNlbGVjdGVkRGF0ZUNvb3JkaW5hdGVzLmdldChkYXRlLnZhbHVlT2YoKSk7XG4gICAgICAgICAgaWYgKCFjb29yZGluYXRlcylcbiAgICAgICAgICAgIHJldHVybiB7IG53OiBmYWxzZSwgbmU6IGZhbHNlLCBzZTogZmFsc2UsIHN3OiBmYWxzZSB9O1xuICAgICAgICAgIGNvbnN0IFt4LCB5XSA9IGNvb3JkaW5hdGVzO1xuICAgICAgICAgIGNvbnN0IHRvcCA9IHNlcmlhbGl6ZUNvb3JkaW5hdGVzKFt4LCB5IC0gMV0pLFxuICAgICAgICAgICAgcmlnaHQgPSBzZXJpYWxpemVDb29yZGluYXRlcyhbeCArIDEsIHldKSxcbiAgICAgICAgICAgIGJvdHRvbSA9IHNlcmlhbGl6ZUNvb3JkaW5hdGVzKFt4LCB5ICsgMV0pLFxuICAgICAgICAgICAgbGVmdCA9IHNlcmlhbGl6ZUNvb3JkaW5hdGVzKFt4IC0gMSwgeV0pO1xuICAgICAgICAgIHJldHVybiB7XG4gICAgICAgICAgICBudzpcbiAgICAgICAgICAgICAgIXZpc2libGVEYXRlc0luU2VsZWN0ZWRSYW5nZUNvb3JkaW5hdGVzLmhhcyh0b3ApICYmXG4gICAgICAgICAgICAgICF2aXNpYmxlRGF0ZXNJblNlbGVjdGVkUmFuZ2VDb29yZGluYXRlcy5oYXMobGVmdCksXG4gICAgICAgICAgICBuZTpcbiAgICAgICAgICAgICAgIXZpc2libGVEYXRlc0luU2VsZWN0ZWRSYW5nZUNvb3JkaW5hdGVzLmhhcyh0b3ApICYmXG4gICAgICAgICAgICAgICF2aXNpYmxlRGF0ZXNJblNlbGVjdGVkUmFuZ2VDb29yZGluYXRlcy5oYXMocmlnaHQpLFxuICAgICAgICAgICAgc2U6XG4gICAgICAgICAgICAgICF2aXNpYmxlRGF0ZXNJblNlbGVjdGVkUmFuZ2VDb29yZGluYXRlcy5oYXMocmlnaHQpICYmXG4gICAgICAgICAgICAgICF2aXNpYmxlRGF0ZXNJblNlbGVjdGVkUmFuZ2VDb29yZGluYXRlcy5oYXMoYm90dG9tKSxcbiAgICAgICAgICAgIHN3OlxuICAgICAgICAgICAgICAhdmlzaWJsZURhdGVzSW5TZWxlY3RlZFJhbmdlQ29vcmRpbmF0ZXMuaGFzKGxlZnQpICYmXG4gICAgICAgICAgICAgICF2aXNpYmxlRGF0ZXNJblNlbGVjdGVkUmFuZ2VDb29yZGluYXRlcy5oYXMoYm90dG9tKSxcbiAgICAgICAgICB9O1xuICAgICAgICB9XG5cbiAgICAgICAgY29uc3QgdmlzaWJsZURhdGVzSW5TZWxlY3RlZFJhbmdlVmFsdWVzID0gbmV3IFNldChcbiAgICAgICAgICB2aXNpYmxlRGF0ZXNJblNlbGVjdGVkUmFuZ2UubWFwKHNlbGVjdGVkID0+IHNlbGVjdGVkLnZhbHVlT2YoKSksXG4gICAgICAgICk7XG5cbiAgICAgICAgY29uc3QgdG9kYXkgPSB0aW1lRGF5LmZsb29yKG5ldyBEYXRlKCkpO1xuXG4gICAgICAgIHJldHVybiBjYWxlbmRhckRhdGVzLm1hcChkYXRlID0+IHtcbiAgICAgICAgICBjb25zdCB7IG53LCBuZSwgc2UsIHN3IH0gPSBnZXRSb3VuZGVkQ29ybmVycyhkYXRlKTtcbiAgICAgICAgICBjb25zdCBkYXRlVmFsdWUgPSBkYXRlLnZhbHVlT2YoKTtcbiAgICAgICAgICBjb25zdCBpblJhbmdlID0gdmlzaWJsZURhdGVzSW5TZWxlY3RlZFJhbmdlVmFsdWVzLmhhcyhkYXRlVmFsdWUpO1xuICAgICAgICAgIGNvbnN0IHNlbGVjdGVkID0gc2VsZWN0ZWRWYWx1ZVxuICAgICAgICAgICAgPyBzZWxlY3RlZFZhbHVlIGluc3RhbmNlb2YgRGF0ZVxuICAgICAgICAgICAgICA/IGRhdGVWYWx1ZSA9PT0gc2VsZWN0ZWRWYWx1ZS52YWx1ZU9mKClcbiAgICAgICAgICAgICAgOiBkYXRlVmFsdWUgPT09IHNlbGVjdGVkVmFsdWVbMF0udmFsdWVPZigpIHx8XG4gICAgICAgICAgICAgICAgZGF0ZVZhbHVlID09PSBzZWxlY3RlZFZhbHVlWzFdLnZhbHVlT2YoKVxuICAgICAgICAgICAgOiBmYWxzZTtcbiAgICAgICAgICByZXR1cm4ge1xuICAgICAgICAgICAgZGF0ZSxcbiAgICAgICAgICAgIGRpc3BsYXk6IGRheUZvcm1hdHRlcihkYXRlKSxcbiAgICAgICAgICAgIGZhZGVJbjpcbiAgICAgICAgICAgICAgaW5SYW5nZSAmJlxuICAgICAgICAgICAgICAoZGF0ZVZhbHVlID09PVxuICAgICAgICAgICAgICAgIE1hdGgubWF4KFxuICAgICAgICAgICAgICAgICAgbWluQ2FsZW5kYXJEYXRlLnZhbHVlT2YoKSxcbiAgICAgICAgICAgICAgICAgIHNlbGVjdGFibGVNaW4/LnZhbHVlT2YoKSA/PyAtSW5maW5pdHksXG4gICAgICAgICAgICAgICAgKSB8fFxuICAgICAgICAgICAgICAgIGRhdGVWYWx1ZSA9PT1cbiAgICAgICAgICAgICAgICAgIChvbWl0UmFuZ2VcbiAgICAgICAgICAgICAgICAgICAgPyB0aW1lRGF5Lm9mZnNldChvbWl0UmFuZ2VbMV0sIDEpLnZhbHVlT2YoKVxuICAgICAgICAgICAgICAgICAgICA6IC1JbmZpbml0eSkpLFxuICAgICAgICAgICAgZmFkZU91dDpcbiAgICAgICAgICAgICAgaW5SYW5nZSAmJlxuICAgICAgICAgICAgICAoZGF0ZVZhbHVlID09PVxuICAgICAgICAgICAgICAgIE1hdGgubWluKFxuICAgICAgICAgICAgICAgICAgbWF4Q2FsZW5kYXJEYXRlLnZhbHVlT2YoKSxcbiAgICAgICAgICAgICAgICAgIHNlbGVjdGFibGVNYXg/LnZhbHVlT2YoKSA/PyBJbmZpbml0eSxcbiAgICAgICAgICAgICAgICApIHx8XG4gICAgICAgICAgICAgICAgZGF0ZVZhbHVlID09PVxuICAgICAgICAgICAgICAgICAgKG9taXRSYW5nZVxuICAgICAgICAgICAgICAgICAgICA/IHRpbWVEYXkub2Zmc2V0KG9taXRSYW5nZVswXSwgLTEpLnZhbHVlT2YoKVxuICAgICAgICAgICAgICAgICAgICA6IEluZmluaXR5KSksXG4gICAgICAgICAgICBoaWRkZW46XG4gICAgICAgICAgICAgIGRhdGVWYWx1ZSA8IChzZWxlY3RhYmxlTWluPy52YWx1ZU9mKCkgPz8gLUluZmluaXR5KSB8fFxuICAgICAgICAgICAgICBkYXRlVmFsdWUgPiAoc2VsZWN0YWJsZU1heD8udmFsdWVPZigpID8/IEluZmluaXR5KSB8fFxuICAgICAgICAgICAgICAob21pdFJhbmdlXG4gICAgICAgICAgICAgICAgPyBvbWl0UmFuZ2VbMF0udmFsdWVPZigpIDw9IGRhdGVWYWx1ZSAmJlxuICAgICAgICAgICAgICAgICAgZGF0ZVZhbHVlIDw9IG9taXRSYW5nZVsxXS52YWx1ZU9mKClcbiAgICAgICAgICAgICAgICA6IGZhbHNlKSxcbiAgICAgICAgICAgIGluQ3VycmVudE1vbnRoOlxuICAgICAgICAgICAgICBkYXRlVmFsdWUgPj0gYWN0aXZlWWVhck1vbnRoLnZhbHVlT2YoKSAmJlxuICAgICAgICAgICAgICBkYXRlVmFsdWUgPCB0aW1lTW9udGgub2Zmc2V0KGFjdGl2ZVllYXJNb250aCwgMSkudmFsdWVPZigpLFxuICAgICAgICAgICAgaW5SYW5nZSxcbiAgICAgICAgICAgIHJvdW5kZWROZTogbmUsXG4gICAgICAgICAgICByb3VuZGVkTnc6IG53LFxuICAgICAgICAgICAgcm91bmRlZFNlOiBzZSxcbiAgICAgICAgICAgIHJvdW5kZWRTdzogc3csXG4gICAgICAgICAgICBzZWxlY3RlZCxcbiAgICAgICAgICAgIHRvZGF5OiBkYXRlVmFsdWUgPT09IHRvZGF5LnZhbHVlT2YoKSxcbiAgICAgICAgICB9O1xuICAgICAgICB9KTtcbiAgICAgIH0sXG4gICAgKSxcbiAgICBzaGFyZVJlcGxheSh7IHJlZkNvdW50OiB0cnVlLCBidWZmZXJTaXplOiAxIH0pLFxuICApO1xuXG4gIHNlbGVjdERheShkYXk6IENhbGVuZGFyRGF0ZSkge1xuICAgIGlmICghZGF5LmluQ3VycmVudE1vbnRoKSB7XG4gICAgICB0aGlzLmFjdGl2ZVllYXJNb250aENoYW5nZS5lbWl0KHRpbWVNb250aC5mbG9vcihkYXkuZGF0ZSkpO1xuICAgIH1cbiAgICB0aGlzLmRhdGVTZWxlY3QuZW1pdChkYXkuZGF0ZSk7XG4gIH1cblxuICBAT3V0cHV0KClcbiAgYWN0aXZlWWVhck1vbnRoQ2hhbmdlID0gbmV3IEV2ZW50RW1pdHRlcjxEYXRlPigpO1xuXG4gIGVtaXRBY3RpdmVZZWFyTW9udGgoeWVhck1vbnRoOiBEYXRlIHwgbnVsbCkge1xuICAgIGlmICh5ZWFyTW9udGgpIHRoaXMuYWN0aXZlWWVhck1vbnRoQ2hhbmdlLmVtaXQoeWVhck1vbnRoKTtcbiAgfVxuXG4gIEBPdXRwdXQoKVxuICBkYXRlU2VsZWN0ID0gbmV3IEV2ZW50RW1pdHRlcjxEYXRlPigpO1xuXG4gIHRyYWNrQnlEYXRlOiBUcmFja0J5RnVuY3Rpb248Q2FsZW5kYXJEYXRlPiA9IChfLCBkYXRlKSA9PlxuICAgIEpTT04uc3RyaW5naWZ5KHtcbiAgICAgIC4uLmRhdGUsXG4gICAgICBkYXRlOiBbXG4gICAgICAgIGRhdGUuZGF0ZS5nZXRGdWxsWWVhcigpLFxuICAgICAgICBkYXRlLmRhdGUuZ2V0TW9udGgoKSArIDEsXG4gICAgICAgIGRhdGUuZGF0ZS5nZXREYXRlKCksXG4gICAgICBdLmpvaW4oJzonKSxcbiAgICB9KTtcbn1cblxuZXhwb3J0IG5hbWVzcGFjZSBDYWxlbmRhckNvbXBvbmVudCB7XG4gIGV4cG9ydCBjb25zdCBkZWZhdWx0TWluID0gdGltZVllYXIuZmxvb3IodGltZVllYXIub2Zmc2V0KG5ldyBEYXRlKCksIC03KSk7XG4gIGV4cG9ydCBjb25zdCBkZWZhdWx0TWF4ID0gdGltZURheS5vZmZzZXQoXG4gICAgdGltZVllYXIuZmxvb3IodGltZVllYXIub2Zmc2V0KG5ldyBEYXRlKCksIDUpKSxcbiAgICAtMSxcbiAgKTtcbn1cbiIsIjxkaXYgY2xhc3M9XCJjb250cm9sc1wiPlxuICA8ZGl2PlxuICAgIDxyaXYtc2ltcGxlLXNlbGVjdFxuICAgICAgW2ZpbHRlcmFiaWxpdHlPcHRpb25zXT1cInsgZW5hYmxlZDogdHJ1ZSwgcGxhY2Vob2xkZXI6ICdNb250aCcgfVwiXG4gICAgICBbb3JkZXJCeV09XCInc291cmNlJ1wiXG4gICAgICBbb3B0aW9uR3JvdXBzXT1cIm1vbnRoT3B0aW9ucyQgfCBhc3luYyB8IHJpdk9wdGlvbkdyb3VwXCJcbiAgICAgIFtzZWxlY3RlZE9wdGlvbl09XCJzZWxlY3RlZE1vbnRoT3B0aW9uJCB8IGFzeW5jXCJcbiAgICAgIChzZWxlY3RlZE9wdGlvbkNoYW5nZSk9XCJlbWl0QWN0aXZlWWVhck1vbnRoKCRldmVudD8uZGF0ZSA/PyBudWxsKVwiXG4gICAgPlxuICAgICAgPG5nLXRlbXBsYXRlICN0cmlnZ2VyIGxldC1zdGF0ZT1cInN0YXRlXCI+XG4gICAgICAgIDxzcGFuXG4gICAgICAgICAgcml2QnV0dG9uXG4gICAgICAgICAgW3NpemVdPVwiJ3NtYWxsJ1wiXG4gICAgICAgICAgW3ZhcmlhbnRdPVwiJ2dob3N0J1wiXG4gICAgICAgICAgW2ljb25dPVwic3RhdGUuZGlzcGxheS5vcGVuID8gJ0NoZXZyb25VcCcgOiAnQ2hldnJvbkRvd24nXCJcbiAgICAgICAgICBbaWNvblBvc2l0aW9uXT1cIidsYXN0J1wiXG4gICAgICAgID5cbiAgICAgICAgICB7eyBzdGF0ZS5kaXNwbGF5LmZvcm1hdHRlZFNlbGVjdGVkT3B0aW9ucyB8fCAnLi4uJyB9fVxuICAgICAgICA8L3NwYW4+XG4gICAgICA8L25nLXRlbXBsYXRlPlxuICAgIDwvcml2LXNpbXBsZS1zZWxlY3Q+XG4gICAgPHJpdi1zaW1wbGUtc2VsZWN0XG4gICAgICBbZmlsdGVyYWJpbGl0eU9wdGlvbnNdPVwieyBlbmFibGVkOiB0cnVlLCBwbGFjZWhvbGRlcjogJ1llYXInIH1cIlxuICAgICAgW29yZGVyQnldPVwiJ3NvdXJjZSdcIlxuICAgICAgW29wdGlvbkdyb3Vwc109XCJ5ZWFyT3B0aW9ucyQgfCBhc3luYyB8IHJpdk9wdGlvbkdyb3VwXCJcbiAgICAgIFtzZWxlY3RlZE9wdGlvbl09XCJzZWxlY3RlZFllYXJPcHRpb24kIHwgYXN5bmNcIlxuICAgICAgKHNlbGVjdGVkT3B0aW9uQ2hhbmdlKT1cImVtaXRBY3RpdmVZZWFyTW9udGgoJGV2ZW50Py5kYXRlID8/IG51bGwpXCJcbiAgICA+XG4gICAgICA8bmctdGVtcGxhdGUgI3RyaWdnZXIgbGV0LXN0YXRlPVwic3RhdGVcIj5cbiAgICAgICAgPHNwYW5cbiAgICAgICAgICByaXZCdXR0b25cbiAgICAgICAgICBbc2l6ZV09XCInc21hbGwnXCJcbiAgICAgICAgICBbdmFyaWFudF09XCInZ2hvc3QnXCJcbiAgICAgICAgICBbaWNvbl09XCJzdGF0ZS5kaXNwbGF5Lm9wZW4gPyAnQ2hldnJvblVwJyA6ICdDaGV2cm9uRG93bidcIlxuICAgICAgICAgIFtpY29uUG9zaXRpb25dPVwiJ2xhc3QnXCJcbiAgICAgICAgPlxuICAgICAgICAgIHt7IHN0YXRlLmRpc3BsYXkuZm9ybWF0dGVkU2VsZWN0ZWRPcHRpb25zIHx8ICcuLi4nIH19XG4gICAgICAgIDwvc3Bhbj5cbiAgICAgIDwvbmctdGVtcGxhdGU+XG4gICAgPC9yaXYtc2ltcGxlLXNlbGVjdD5cbiAgPC9kaXY+XG4gIDxkaXZcbiAgICAqbmdJZj1cInsgcHJldjogcHJldmlvdXNNb250aCQgfCBhc3luYywgbmV4dDogbmV4dE1vbnRoJCB8IGFzeW5jIH07IGxldCB2bVwiXG4gID5cbiAgICA8YnV0dG9uXG4gICAgICByaXZCdXR0b25cbiAgICAgIFtzaXplXT1cIidzbWFsbCdcIlxuICAgICAgW3ZhcmlhbnRdPVwiJ2dob3N0J1wiXG4gICAgICBbaWNvbl09XCInQXJyb3dMZWZ0J1wiXG4gICAgICBbZGlzYWJsZWRdPVwiIXZtLnByZXZcIlxuICAgICAgKGNsaWNrKT1cInZtLnByZXYgPyBhY3RpdmVZZWFyTW9udGhDaGFuZ2UuZW1pdCh2bS5wcmV2KSA6IG51bGxcIlxuICAgICAgdHlwZT1cImJ1dHRvblwiXG4gICAgPjwvYnV0dG9uPlxuICAgIDxidXR0b25cbiAgICAgIHJpdkJ1dHRvblxuICAgICAgW3NpemVdPVwiJ3NtYWxsJ1wiXG4gICAgICBbdmFyaWFudF09XCInZ2hvc3QnXCJcbiAgICAgIFtpY29uXT1cIidBcnJvd1JpZ2h0J1wiXG4gICAgICBbZGlzYWJsZWRdPVwiIXZtLm5leHRcIlxuICAgICAgKGNsaWNrKT1cInZtLm5leHQgPyBhY3RpdmVZZWFyTW9udGhDaGFuZ2UuZW1pdCh2bS5uZXh0KSA6IG51bGxcIlxuICAgICAgdHlwZT1cImJ1dHRvblwiXG4gICAgPjwvYnV0dG9uPlxuICA8L2Rpdj5cbjwvZGl2PlxuPGRpdiBjbGFzcz1cImNhbGVuZGFyXCI+XG4gIDxzcGFuIGNsYXNzPVwibGFiZWxcIj5TdTwvc3Bhbj5cbiAgPHNwYW4gY2xhc3M9XCJsYWJlbFwiPk1vPC9zcGFuPlxuICA8c3BhbiBjbGFzcz1cImxhYmVsXCI+VHU8L3NwYW4+XG4gIDxzcGFuIGNsYXNzPVwibGFiZWxcIj5XZTwvc3Bhbj5cbiAgPHNwYW4gY2xhc3M9XCJsYWJlbFwiPlRoPC9zcGFuPlxuICA8c3BhbiBjbGFzcz1cImxhYmVsXCI+RnI8L3NwYW4+XG4gIDxzcGFuIGNsYXNzPVwibGFiZWxcIj5TYTwvc3Bhbj5cbiAgPGJ1dHRvblxuICAgICpuZ0Zvcj1cImxldCBkYXkgb2YgZGF0ZXMkIHwgYXN5bmM7IHRyYWNrQnk6IHRyYWNrQnlEYXRlXCJcbiAgICBjbGFzcz1cImRheVwiXG4gICAgW2Rpc2FibGVkXT1cImRheS5oaWRkZW5cIlxuICAgIFthdHRyLmFyaWEtZGlzYWJsZWRdPVwiZGF5LmhpZGRlbiA/ICd0cnVlJyA6IG51bGxcIlxuICAgIFtjbGFzcy5oaWRkZW5dPVwiZGF5LmhpZGRlblwiXG4gICAgW2NsYXNzLmJsZWVkXT1cIiFkYXkuaW5DdXJyZW50TW9udGggJiYgIWRheS5oaWRkZW5cIlxuICAgIFtjbGFzcy5mYWRlLWluXT1cImRheS5mYWRlSW5cIlxuICAgIFtjbGFzcy5mYWRlLW91dF09XCJkYXkuZmFkZU91dFwiXG4gICAgW2NsYXNzLmluLXJhbmdlXT1cImRheS5pblJhbmdlXCJcbiAgICBbY2xhc3Mucm91bmRlZC1uZV09XCJkYXkucm91bmRlZE5lXCJcbiAgICBbY2xhc3Mucm91bmRlZC1ud109XCJkYXkucm91bmRlZE53XCJcbiAgICBbY2xhc3Mucm91bmRlZC1zZV09XCJkYXkucm91bmRlZFNlXCJcbiAgICBbY2xhc3Mucm91bmRlZC1zd109XCJkYXkucm91bmRlZFN3XCJcbiAgICAoY2xpY2spPVwic2VsZWN0RGF5KGRheSlcIlxuICAgIHR5cGU9XCJidXR0b25cIlxuICA+XG4gICAgPHNwYW5cbiAgICAgIGNsYXNzPVwiZGF5LXdyYXBwZXJcIlxuICAgICAgW2NsYXNzLnNlbGVjdGVkXT1cImRheS5zZWxlY3RlZFwiXG4gICAgICBbY2xhc3MudG9kYXldPVwiZGF5LnRvZGF5XCJcbiAgICA+XG4gICAgICB7eyBkYXkuZGlzcGxheSB9fVxuICAgIDwvc3Bhbj5cbiAgPC9idXR0b24+XG48L2Rpdj5cbiJdfQ==
|
|
@@ -1,13 +0,0 @@
|
|
|
1
|
-
import { ChangeDetectionStrategy, Component } from '@angular/core';
|
|
2
|
-
import { CheckboxComponent } from '../checkbox/checkbox.component';
|
|
3
|
-
import * as i0 from "@angular/core";
|
|
4
|
-
import * as i1 from "../checkbox/checkbox.component";
|
|
5
|
-
export class CardCheckboxComponent extends CheckboxComponent {
|
|
6
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: CardCheckboxComponent, deps: null, target: i0.ɵɵFactoryTarget.Component }); }
|
|
7
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.2.14", type: CardCheckboxComponent, selector: "riv-card-checkbox", usesInheritance: true, ngImport: i0, template: "<label [class.disabled]=\"disabled\">\n <div\n class=\"checkbox\"\n [class.checked]=\"value\"\n [class.indeterminate]=\"indeterminate\"\n >\n <riv-checkbox\n [name]=\"name\"\n [identifier]=\"identifier\"\n [value]=\"value\"\n [checkboxTooltip]=\"checkboxTooltip\"\n [indeterminate]=\"indeterminate\"\n [disabled]=\"disabled\"\n [required]=\"required\"\n [ariaLabel]=\"ariaLabel\"\n (valueChange)=\"valueChange.emit($event)\"\n ></riv-checkbox>\n </div>\n <div class=\"content\">\n <ng-content></ng-content>\n </div>\n</label>\n", styles: [":host{display:inline-flex}label{flex-grow:1;display:inline-flex;align-items:center;border:var(--border-width) solid var(--border-light);transition:background-color var(--short-transition)}label:not(.disabled){cursor:pointer}label.disabled{background-color:var(--surface-light-1)}label:hover:not(.disabled){background-color:var(--surface-light-2)}label:active:not(.disabled){background-color:var(--surface-light-3)}.checkbox{align-self:stretch;padding:var(--size-large) var(--size-small);background-color:var(--surface-light-2);display:flex;justify-content:center;align-items:center;border-right:var(--border-width) solid var(--border-light)}.checkbox.checked,.checkbox.indeterminate{background-color:var(--purp-60)}label.disabled .checkbox{background-color:var(--black-20)}label.disabled .checkbox.checked,label.disabled .checkbox.indeterminate{background-color:var(--black-40)}.content{flex-grow:1}\n"], dependencies: [{ kind: "component", type: i1.CheckboxComponent, selector: "riv-checkbox", inputs: ["name", "identifier", "value", "checkedColorToken", "indeterminateColorToken", "checkboxTooltip", "indeterminate", "disabled", "required", "state", "errorMessage", "ariaLabel"], outputs: ["valueChange"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
|
|
8
|
-
}
|
|
9
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: CardCheckboxComponent, decorators: [{
|
|
10
|
-
type: Component,
|
|
11
|
-
args: [{ selector: 'riv-card-checkbox', changeDetection: ChangeDetectionStrategy.OnPush, template: "<label [class.disabled]=\"disabled\">\n <div\n class=\"checkbox\"\n [class.checked]=\"value\"\n [class.indeterminate]=\"indeterminate\"\n >\n <riv-checkbox\n [name]=\"name\"\n [identifier]=\"identifier\"\n [value]=\"value\"\n [checkboxTooltip]=\"checkboxTooltip\"\n [indeterminate]=\"indeterminate\"\n [disabled]=\"disabled\"\n [required]=\"required\"\n [ariaLabel]=\"ariaLabel\"\n (valueChange)=\"valueChange.emit($event)\"\n ></riv-checkbox>\n </div>\n <div class=\"content\">\n <ng-content></ng-content>\n </div>\n</label>\n", styles: [":host{display:inline-flex}label{flex-grow:1;display:inline-flex;align-items:center;border:var(--border-width) solid var(--border-light);transition:background-color var(--short-transition)}label:not(.disabled){cursor:pointer}label.disabled{background-color:var(--surface-light-1)}label:hover:not(.disabled){background-color:var(--surface-light-2)}label:active:not(.disabled){background-color:var(--surface-light-3)}.checkbox{align-self:stretch;padding:var(--size-large) var(--size-small);background-color:var(--surface-light-2);display:flex;justify-content:center;align-items:center;border-right:var(--border-width) solid var(--border-light)}.checkbox.checked,.checkbox.indeterminate{background-color:var(--purp-60)}label.disabled .checkbox{background-color:var(--black-20)}label.disabled .checkbox.checked,label.disabled .checkbox.indeterminate{background-color:var(--black-40)}.content{flex-grow:1}\n"] }]
|
|
12
|
-
}] });
|
|
13
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2FyZC1jaGVja2JveC5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9yaXYvc3JjL2xpYi9pbnB1dC9jYXJkLWNoZWNrYm94L2NhcmQtY2hlY2tib3guY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvcml2L3NyYy9saWIvaW5wdXQvY2FyZC1jaGVja2JveC9jYXJkLWNoZWNrYm94LmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSx1QkFBdUIsRUFBRSxTQUFTLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDbkUsT0FBTyxFQUFFLGlCQUFpQixFQUFFLE1BQU0sZ0NBQWdDLENBQUM7OztBQVFuRSxNQUFNLE9BQU8scUJBQXNCLFNBQVEsaUJBQWlCOytHQUEvQyxxQkFBcUI7bUdBQXJCLHFCQUFxQixnRkNUbEMscWxCQXNCQTs7NEZEYmEscUJBQXFCO2tCQU5qQyxTQUFTOytCQUNFLG1CQUFtQixtQkFHWix1QkFBdUIsQ0FBQyxNQUFNIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3ksIENvbXBvbmVudCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgQ2hlY2tib3hDb21wb25lbnQgfSBmcm9tICcuLi9jaGVja2JveC9jaGVja2JveC5jb21wb25lbnQnO1xuXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdyaXYtY2FyZC1jaGVja2JveCcsXG4gIHRlbXBsYXRlVXJsOiAnLi9jYXJkLWNoZWNrYm94LmNvbXBvbmVudC5odG1sJyxcbiAgc3R5bGVVcmxzOiBbJy4vY2FyZC1jaGVja2JveC5jb21wb25lbnQuY3NzJ10sXG4gIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoLFxufSlcbmV4cG9ydCBjbGFzcyBDYXJkQ2hlY2tib3hDb21wb25lbnQgZXh0ZW5kcyBDaGVja2JveENvbXBvbmVudCB7fVxuIiwiPGxhYmVsIFtjbGFzcy5kaXNhYmxlZF09XCJkaXNhYmxlZFwiPlxuICA8ZGl2XG4gICAgY2xhc3M9XCJjaGVja2JveFwiXG4gICAgW2NsYXNzLmNoZWNrZWRdPVwidmFsdWVcIlxuICAgIFtjbGFzcy5pbmRldGVybWluYXRlXT1cImluZGV0ZXJtaW5hdGVcIlxuICA+XG4gICAgPHJpdi1jaGVja2JveFxuICAgICAgW25hbWVdPVwibmFtZVwiXG4gICAgICBbaWRlbnRpZmllcl09XCJpZGVudGlmaWVyXCJcbiAgICAgIFt2YWx1ZV09XCJ2YWx1ZVwiXG4gICAgICBbY2hlY2tib3hUb29sdGlwXT1cImNoZWNrYm94VG9vbHRpcFwiXG4gICAgICBbaW5kZXRlcm1pbmF0ZV09XCJpbmRldGVybWluYXRlXCJcbiAgICAgIFtkaXNhYmxlZF09XCJkaXNhYmxlZFwiXG4gICAgICBbcmVxdWlyZWRdPVwicmVxdWlyZWRcIlxuICAgICAgW2FyaWFMYWJlbF09XCJhcmlhTGFiZWxcIlxuICAgICAgKHZhbHVlQ2hhbmdlKT1cInZhbHVlQ2hhbmdlLmVtaXQoJGV2ZW50KVwiXG4gICAgPjwvcml2LWNoZWNrYm94PlxuICA8L2Rpdj5cbiAgPGRpdiBjbGFzcz1cImNvbnRlbnRcIj5cbiAgICA8bmctY29udGVudD48L25nLWNvbnRlbnQ+XG4gIDwvZGl2PlxuPC9sYWJlbD5cbiJdfQ==
|
|
@@ -1,84 +0,0 @@
|
|
|
1
|
-
import { ChangeDetectionStrategy, Component, EventEmitter, Input, Output, ViewChild, } from '@angular/core';
|
|
2
|
-
import * as i0 from "@angular/core";
|
|
3
|
-
import * as i1 from "@angular/common";
|
|
4
|
-
import * as i2 from "../../overlay/callout/tooltip/tooltip.directive";
|
|
5
|
-
import * as i3 from "../validation-message/validation-message.component";
|
|
6
|
-
export class CheckboxComponent {
|
|
7
|
-
constructor() {
|
|
8
|
-
this.value = false;
|
|
9
|
-
this.checkedColorToken = '--purp-60';
|
|
10
|
-
this.indeterminateColorToken = '--purp-60';
|
|
11
|
-
this.indeterminate = false;
|
|
12
|
-
this.disabled = false;
|
|
13
|
-
this.required = false;
|
|
14
|
-
this.state = 'valid';
|
|
15
|
-
this.errorMessage = '';
|
|
16
|
-
this.valueChange = new EventEmitter();
|
|
17
|
-
/**
|
|
18
|
-
* Used to control the aria-label of the input in cases where no label
|
|
19
|
-
* content is provided.
|
|
20
|
-
*/
|
|
21
|
-
this.ariaLabel = 'Checkbox';
|
|
22
|
-
}
|
|
23
|
-
emit(v) {
|
|
24
|
-
this.valueChange.emit(v);
|
|
25
|
-
this.ensureSynchronizedState(this.value);
|
|
26
|
-
}
|
|
27
|
-
ensureSynchronizedState(v) {
|
|
28
|
-
if (this.input) {
|
|
29
|
-
this.input.nativeElement.checked = v;
|
|
30
|
-
}
|
|
31
|
-
}
|
|
32
|
-
ngOnChanges(changes) {
|
|
33
|
-
if ('value' in changes)
|
|
34
|
-
this.ensureSynchronizedState(changes['value'].currentValue);
|
|
35
|
-
}
|
|
36
|
-
isCheckboxOnly() {
|
|
37
|
-
return !this.label || this.label.nativeElement.childNodes.length === 1;
|
|
38
|
-
}
|
|
39
|
-
getCheckedBackgroundColor() {
|
|
40
|
-
return `var(${this.checkedColorToken})`;
|
|
41
|
-
}
|
|
42
|
-
getIndeterminateBackgroundColor() {
|
|
43
|
-
return `var(${this.indeterminateColorToken})`;
|
|
44
|
-
}
|
|
45
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: CheckboxComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
|
|
46
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.2.14", type: CheckboxComponent, selector: "riv-checkbox", inputs: { name: "name", identifier: "identifier", value: "value", checkedColorToken: "checkedColorToken", indeterminateColorToken: "indeterminateColorToken", checkboxTooltip: "checkboxTooltip", indeterminate: "indeterminate", disabled: "disabled", required: "required", state: "state", errorMessage: "errorMessage", ariaLabel: "ariaLabel" }, outputs: { valueChange: "valueChange" }, viewQueries: [{ propertyName: "label", first: true, predicate: ["label"], descendants: true, static: true }, { propertyName: "input", first: true, predicate: ["input"], descendants: true, static: true }], usesOnChanges: true, ngImport: i0, template: "<label\n #label\n [class.disabled]=\"disabled\"\n [class.has-content]=\"!isCheckboxOnly()\"\n>\n <input\n #input\n type=\"checkbox\"\n [id]=\"identifier\"\n [name]=\"name\"\n [required]=\"required\"\n [disabled]=\"disabled\"\n [attr.aria-disabled]=\"disabled ? 'true' : null\"\n [checked]=\"value\"\n [indeterminate]=\"indeterminate\"\n [class.error]=\"state === 'error'\"\n (change)=\"emit(!!input.checked)\"\n [style.--checked-background-color]=\"getCheckedBackgroundColor()\"\n [style.--indeterminate-background-color]=\"getIndeterminateBackgroundColor()\"\n [rivTooltip]=\"checkboxTooltip\"\n [attr.aria-label]=\"isCheckboxOnly() ? ariaLabel : null\"\n />\n <ng-content></ng-content>\n</label>\n<riv-validation-message\n *ngIf=\"errorMessage\"\n class=\"error-message\"\n [message]=\"errorMessage\"\n></riv-validation-message>\n", styles: [":host{display:inline-flex;flex-direction:column}label{flex-grow:1;display:inline-flex;gap:var(--size-small);align-items:flex-start;max-width:100%}label.has-content{padding:var(--size-xsmall) var(--size-small);border-radius:var(--border-radius-xsmall);transition:background-color var(--short-transition)}label.has-content input{margin:var(--size-xsmall) 0 0 0}label.has-content:hover:not(.disabled){cursor:pointer;background-color:var(--surface-light-2)}label.has-content:active:not(.disabled){background-color:var(--surface-light-3)}input{--size: calc(var(--base-grid-size) * 4);margin:0;width:var(--size);height:var(--size);position:relative;cursor:pointer;flex-shrink:0;appearance:none}input:before{content:\"\";position:absolute;inset:0;border-radius:var(--border-radius-xsmall);background-color:var(--surface-light-0)}input:after{content:\"\";position:absolute;inset:0;border-radius:var(--border-radius-xsmall);border:var(--border-width) solid var(--border-light);background-repeat:no-repeat;background-position:center center;background-color:var(--surface-light-0)}input:checked:after{background-image:url(data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMTYiIGhlaWdodD0iMTYiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+PHBhdGggc3Ryb2tlPSJ3aGl0ZSIgc3Ryb2tlLXdpZHRoPSIyIiBzdHJva2UtbGluZWNhcD0iYnV0dCIgZD0iTTMuNSw3LjUgbDMsMyBsNiwtNiIgZmlsbD0ibm9uZSIgLz48L3N2Zz4=);background-color:var(--checked-background-color)}input:indeterminate:after{background-image:url(data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMTYiIGhlaWdodD0iMTYiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+PHJlY3QgeD0iMyIgeT0iNyIgd2lkdGg9IjEwIiBoZWlnaHQ9IjIiIGZpbGw9IndoaXRlIiAvPjwvc3ZnPg==);background-color:var(--indeterminate-background-color)}input.error:after{border-color:var(--surface-dark-danger);box-shadow:inset 0 0 0 var(--border-width-large) var(--surface-dark-danger)}input:disabled{cursor:default}input:disabled:after{background-color:var(--black-20)}input:disabled:checked:after,input:disabled:indeterminate:after{background-color:var(--black-40)}.error-message{margin-left:calc(var(--base-grid-size) * 8)}\n"], dependencies: [{ kind: "directive", type: i1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i2.TooltipDirective, selector: "[rivTooltip]", inputs: ["rivTooltip", "rivTooltipTheme", "rivTooltipMaxWidth", "rivTooltipPreferredPosition", "rivTooltipAnchor", "rivTooltipCloseDelay", "rivTooltipOpenDelay", "rivTooltipGracePeriod"] }, { kind: "component", type: i3.ValidationMessageComponent, selector: "riv-validation-message", inputs: ["message"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
|
|
47
|
-
}
|
|
48
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: CheckboxComponent, decorators: [{
|
|
49
|
-
type: Component,
|
|
50
|
-
args: [{ selector: 'riv-checkbox', changeDetection: ChangeDetectionStrategy.OnPush, template: "<label\n #label\n [class.disabled]=\"disabled\"\n [class.has-content]=\"!isCheckboxOnly()\"\n>\n <input\n #input\n type=\"checkbox\"\n [id]=\"identifier\"\n [name]=\"name\"\n [required]=\"required\"\n [disabled]=\"disabled\"\n [attr.aria-disabled]=\"disabled ? 'true' : null\"\n [checked]=\"value\"\n [indeterminate]=\"indeterminate\"\n [class.error]=\"state === 'error'\"\n (change)=\"emit(!!input.checked)\"\n [style.--checked-background-color]=\"getCheckedBackgroundColor()\"\n [style.--indeterminate-background-color]=\"getIndeterminateBackgroundColor()\"\n [rivTooltip]=\"checkboxTooltip\"\n [attr.aria-label]=\"isCheckboxOnly() ? ariaLabel : null\"\n />\n <ng-content></ng-content>\n</label>\n<riv-validation-message\n *ngIf=\"errorMessage\"\n class=\"error-message\"\n [message]=\"errorMessage\"\n></riv-validation-message>\n", styles: [":host{display:inline-flex;flex-direction:column}label{flex-grow:1;display:inline-flex;gap:var(--size-small);align-items:flex-start;max-width:100%}label.has-content{padding:var(--size-xsmall) var(--size-small);border-radius:var(--border-radius-xsmall);transition:background-color var(--short-transition)}label.has-content input{margin:var(--size-xsmall) 0 0 0}label.has-content:hover:not(.disabled){cursor:pointer;background-color:var(--surface-light-2)}label.has-content:active:not(.disabled){background-color:var(--surface-light-3)}input{--size: calc(var(--base-grid-size) * 4);margin:0;width:var(--size);height:var(--size);position:relative;cursor:pointer;flex-shrink:0;appearance:none}input:before{content:\"\";position:absolute;inset:0;border-radius:var(--border-radius-xsmall);background-color:var(--surface-light-0)}input:after{content:\"\";position:absolute;inset:0;border-radius:var(--border-radius-xsmall);border:var(--border-width) solid var(--border-light);background-repeat:no-repeat;background-position:center center;background-color:var(--surface-light-0)}input:checked:after{background-image:url(data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMTYiIGhlaWdodD0iMTYiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+PHBhdGggc3Ryb2tlPSJ3aGl0ZSIgc3Ryb2tlLXdpZHRoPSIyIiBzdHJva2UtbGluZWNhcD0iYnV0dCIgZD0iTTMuNSw3LjUgbDMsMyBsNiwtNiIgZmlsbD0ibm9uZSIgLz48L3N2Zz4=);background-color:var(--checked-background-color)}input:indeterminate:after{background-image:url(data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMTYiIGhlaWdodD0iMTYiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+PHJlY3QgeD0iMyIgeT0iNyIgd2lkdGg9IjEwIiBoZWlnaHQ9IjIiIGZpbGw9IndoaXRlIiAvPjwvc3ZnPg==);background-color:var(--indeterminate-background-color)}input.error:after{border-color:var(--surface-dark-danger);box-shadow:inset 0 0 0 var(--border-width-large) var(--surface-dark-danger)}input:disabled{cursor:default}input:disabled:after{background-color:var(--black-20)}input:disabled:checked:after,input:disabled:indeterminate:after{background-color:var(--black-40)}.error-message{margin-left:calc(var(--base-grid-size) * 8)}\n"] }]
|
|
51
|
-
}], propDecorators: { name: [{
|
|
52
|
-
type: Input
|
|
53
|
-
}], identifier: [{
|
|
54
|
-
type: Input
|
|
55
|
-
}], value: [{
|
|
56
|
-
type: Input
|
|
57
|
-
}], checkedColorToken: [{
|
|
58
|
-
type: Input
|
|
59
|
-
}], indeterminateColorToken: [{
|
|
60
|
-
type: Input
|
|
61
|
-
}], checkboxTooltip: [{
|
|
62
|
-
type: Input
|
|
63
|
-
}], indeterminate: [{
|
|
64
|
-
type: Input
|
|
65
|
-
}], disabled: [{
|
|
66
|
-
type: Input
|
|
67
|
-
}], required: [{
|
|
68
|
-
type: Input
|
|
69
|
-
}], state: [{
|
|
70
|
-
type: Input
|
|
71
|
-
}], errorMessage: [{
|
|
72
|
-
type: Input
|
|
73
|
-
}], valueChange: [{
|
|
74
|
-
type: Output
|
|
75
|
-
}], label: [{
|
|
76
|
-
type: ViewChild,
|
|
77
|
-
args: ['label', { static: true }]
|
|
78
|
-
}], input: [{
|
|
79
|
-
type: ViewChild,
|
|
80
|
-
args: ['input', { static: true }]
|
|
81
|
-
}], ariaLabel: [{
|
|
82
|
-
type: Input
|
|
83
|
-
}] } });
|
|
84
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2hlY2tib3guY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvcml2L3NyYy9saWIvaW5wdXQvY2hlY2tib3gvY2hlY2tib3guY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvcml2L3NyYy9saWIvaW5wdXQvY2hlY2tib3gvY2hlY2tib3guY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUNMLHVCQUF1QixFQUN2QixTQUFTLEVBRVQsWUFBWSxFQUNaLEtBQUssRUFFTCxNQUFNLEVBRU4sU0FBUyxHQUNWLE1BQU0sZUFBZSxDQUFDOzs7OztBQVN2QixNQUFNLE9BQU8saUJBQWlCO0lBTjlCO1FBY0UsVUFBSyxHQUFZLEtBQUssQ0FBQztRQUd2QixzQkFBaUIsR0FBVyxXQUFXLENBQUM7UUFHeEMsNEJBQXVCLEdBQVcsV0FBVyxDQUFDO1FBTTlDLGtCQUFhLEdBQVksS0FBSyxDQUFDO1FBRy9CLGFBQVEsR0FBWSxLQUFLLENBQUM7UUFHMUIsYUFBUSxHQUFZLEtBQUssQ0FBQztRQUcxQixVQUFLLEdBQThCLE9BQU8sQ0FBQztRQUczQyxpQkFBWSxHQUFXLEVBQUUsQ0FBQztRQUcxQixnQkFBVyxHQUFHLElBQUksWUFBWSxFQUFXLENBQUM7UUFXMUM7OztXQUdHO1FBRUgsY0FBUyxHQUFXLFVBQVUsQ0FBQztLQXdCaEM7SUF0Q0MsSUFBSSxDQUFDLENBQVU7UUFDYixJQUFJLENBQUMsV0FBVyxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsQ0FBQztRQUN6QixJQUFJLENBQUMsdUJBQXVCLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxDQUFDO0lBQzNDLENBQUM7SUFhRCx1QkFBdUIsQ0FBQyxDQUFVO1FBQ2hDLElBQUksSUFBSSxDQUFDLEtBQUssRUFBRSxDQUFDO1lBQ2YsSUFBSSxDQUFDLEtBQUssQ0FBQyxhQUFhLENBQUMsT0FBTyxHQUFHLENBQUMsQ0FBQztRQUN2QyxDQUFDO0lBQ0gsQ0FBQztJQUVELFdBQVcsQ0FBQyxPQUFzQjtRQUNoQyxJQUFJLE9BQU8sSUFBSSxPQUFPO1lBQ3BCLElBQUksQ0FBQyx1QkFBdUIsQ0FBQyxPQUFPLENBQUMsT0FBTyxDQUFDLENBQUMsWUFBWSxDQUFDLENBQUM7SUFDaEUsQ0FBQztJQUVELGNBQWM7UUFDWixPQUFPLENBQUMsSUFBSSxDQUFDLEtBQUssSUFBSSxJQUFJLENBQUMsS0FBSyxDQUFDLGFBQWEsQ0FBQyxVQUFVLENBQUMsTUFBTSxLQUFLLENBQUMsQ0FBQztJQUN6RSxDQUFDO0lBRUQseUJBQXlCO1FBQ3ZCLE9BQU8sT0FBTyxJQUFJLENBQUMsaUJBQWlCLEdBQUcsQ0FBQztJQUMxQyxDQUFDO0lBRUQsK0JBQStCO1FBQzdCLE9BQU8sT0FBTyxJQUFJLENBQUMsdUJBQXVCLEdBQUcsQ0FBQztJQUNoRCxDQUFDOytHQTFFVSxpQkFBaUI7bUdBQWpCLGlCQUFpQixxcEJDbkI5Qix3M0JBNkJBOzs0RkRWYSxpQkFBaUI7a0JBTjdCLFNBQVM7K0JBQ0UsY0FBYyxtQkFHUCx1QkFBdUIsQ0FBQyxNQUFNOzhCQUkvQyxJQUFJO3NCQURILEtBQUs7Z0JBSU4sVUFBVTtzQkFEVCxLQUFLO2dCQUlOLEtBQUs7c0JBREosS0FBSztnQkFJTixpQkFBaUI7c0JBRGhCLEtBQUs7Z0JBSU4sdUJBQXVCO3NCQUR0QixLQUFLO2dCQUlOLGVBQWU7c0JBRGQsS0FBSztnQkFJTixhQUFhO3NCQURaLEtBQUs7Z0JBSU4sUUFBUTtzQkFEUCxLQUFLO2dCQUlOLFFBQVE7c0JBRFAsS0FBSztnQkFJTixLQUFLO3NCQURKLEtBQUs7Z0JBSU4sWUFBWTtzQkFEWCxLQUFLO2dCQUlOLFdBQVc7c0JBRFYsTUFBTTtnQkFRK0IsS0FBSztzQkFBMUMsU0FBUzt1QkFBQyxPQUFPLEVBQUUsRUFBRSxNQUFNLEVBQUUsSUFBSSxFQUFFO2dCQUVFLEtBQUs7c0JBQTFDLFNBQVM7dUJBQUMsT0FBTyxFQUFFLEVBQUUsTUFBTSxFQUFFLElBQUksRUFBRTtnQkFPcEMsU0FBUztzQkFEUixLQUFLIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtcbiAgQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3ksXG4gIENvbXBvbmVudCxcbiAgRWxlbWVudFJlZixcbiAgRXZlbnRFbWl0dGVyLFxuICBJbnB1dCxcbiAgT25DaGFuZ2VzLFxuICBPdXRwdXQsXG4gIFNpbXBsZUNoYW5nZXMsXG4gIFZpZXdDaGlsZCxcbn0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBJbnB1dExhYmVsQ29tcG9uZW50IH0gZnJvbSAnLi4vaW5wdXQtbGFiZWwvaW5wdXQtbGFiZWwuY29tcG9uZW50JztcblxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAncml2LWNoZWNrYm94JyxcbiAgdGVtcGxhdGVVcmw6ICcuL2NoZWNrYm94LmNvbXBvbmVudC5odG1sJyxcbiAgc3R5bGVVcmxzOiBbJy4vY2hlY2tib3guY29tcG9uZW50LmNzcyddLFxuICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaCxcbn0pXG5leHBvcnQgY2xhc3MgQ2hlY2tib3hDb21wb25lbnQgaW1wbGVtZW50cyBPbkNoYW5nZXMge1xuICBASW5wdXQoKVxuICBuYW1lPzogc3RyaW5nO1xuXG4gIEBJbnB1dCgpXG4gIGlkZW50aWZpZXI/OiBzdHJpbmc7XG5cbiAgQElucHV0KClcbiAgdmFsdWU6IGJvb2xlYW4gPSBmYWxzZTtcblxuICBASW5wdXQoKVxuICBjaGVja2VkQ29sb3JUb2tlbjogc3RyaW5nID0gJy0tcHVycC02MCc7XG5cbiAgQElucHV0KClcbiAgaW5kZXRlcm1pbmF0ZUNvbG9yVG9rZW46IHN0cmluZyA9ICctLXB1cnAtNjAnO1xuXG4gIEBJbnB1dCgpXG4gIGNoZWNrYm94VG9vbHRpcD86IHN0cmluZztcblxuICBASW5wdXQoKVxuICBpbmRldGVybWluYXRlOiBib29sZWFuID0gZmFsc2U7XG5cbiAgQElucHV0KClcbiAgZGlzYWJsZWQ6IGJvb2xlYW4gPSBmYWxzZTtcblxuICBASW5wdXQoKVxuICByZXF1aXJlZDogYm9vbGVhbiA9IGZhbHNlO1xuXG4gIEBJbnB1dCgpXG4gIHN0YXRlOiBJbnB1dExhYmVsQ29tcG9uZW50LlN0YXRlID0gJ3ZhbGlkJztcblxuICBASW5wdXQoKVxuICBlcnJvck1lc3NhZ2U6IHN0cmluZyA9ICcnO1xuXG4gIEBPdXRwdXQoKVxuICB2YWx1ZUNoYW5nZSA9IG5ldyBFdmVudEVtaXR0ZXI8Ym9vbGVhbj4oKTtcblxuICBlbWl0KHY6IGJvb2xlYW4pIHtcbiAgICB0aGlzLnZhbHVlQ2hhbmdlLmVtaXQodik7XG4gICAgdGhpcy5lbnN1cmVTeW5jaHJvbml6ZWRTdGF0ZSh0aGlzLnZhbHVlKTtcbiAgfVxuXG4gIEBWaWV3Q2hpbGQoJ2xhYmVsJywgeyBzdGF0aWM6IHRydWUgfSkgbGFiZWw/OiBFbGVtZW50UmVmPEhUTUxMYWJlbEVsZW1lbnQ+O1xuXG4gIEBWaWV3Q2hpbGQoJ2lucHV0JywgeyBzdGF0aWM6IHRydWUgfSkgaW5wdXQ/OiBFbGVtZW50UmVmPEhUTUxJbnB1dEVsZW1lbnQ+O1xuXG4gIC8qKlxuICAgKiBVc2VkIHRvIGNvbnRyb2wgdGhlIGFyaWEtbGFiZWwgb2YgdGhlIGlucHV0IGluIGNhc2VzIHdoZXJlIG5vIGxhYmVsXG4gICAqIGNvbnRlbnQgaXMgcHJvdmlkZWQuXG4gICAqL1xuICBASW5wdXQoKVxuICBhcmlhTGFiZWw6IHN0cmluZyA9ICdDaGVja2JveCc7XG5cbiAgZW5zdXJlU3luY2hyb25pemVkU3RhdGUodjogYm9vbGVhbikge1xuICAgIGlmICh0aGlzLmlucHV0KSB7XG4gICAgICB0aGlzLmlucHV0Lm5hdGl2ZUVsZW1lbnQuY2hlY2tlZCA9IHY7XG4gICAgfVxuICB9XG5cbiAgbmdPbkNoYW5nZXMoY2hhbmdlczogU2ltcGxlQ2hhbmdlcyk6IHZvaWQge1xuICAgIGlmICgndmFsdWUnIGluIGNoYW5nZXMpXG4gICAgICB0aGlzLmVuc3VyZVN5bmNocm9uaXplZFN0YXRlKGNoYW5nZXNbJ3ZhbHVlJ10uY3VycmVudFZhbHVlKTtcbiAgfVxuXG4gIGlzQ2hlY2tib3hPbmx5KCk6IGJvb2xlYW4ge1xuICAgIHJldHVybiAhdGhpcy5sYWJlbCB8fCB0aGlzLmxhYmVsLm5hdGl2ZUVsZW1lbnQuY2hpbGROb2Rlcy5sZW5ndGggPT09IDE7XG4gIH1cblxuICBnZXRDaGVja2VkQmFja2dyb3VuZENvbG9yKCk6IHN0cmluZyB7XG4gICAgcmV0dXJuIGB2YXIoJHt0aGlzLmNoZWNrZWRDb2xvclRva2VufSlgO1xuICB9XG5cbiAgZ2V0SW5kZXRlcm1pbmF0ZUJhY2tncm91bmRDb2xvcigpOiBzdHJpbmcge1xuICAgIHJldHVybiBgdmFyKCR7dGhpcy5pbmRldGVybWluYXRlQ29sb3JUb2tlbn0pYDtcbiAgfVxufVxuIiwiPGxhYmVsXG4gICNsYWJlbFxuICBbY2xhc3MuZGlzYWJsZWRdPVwiZGlzYWJsZWRcIlxuICBbY2xhc3MuaGFzLWNvbnRlbnRdPVwiIWlzQ2hlY2tib3hPbmx5KClcIlxuPlxuICA8aW5wdXRcbiAgICAjaW5wdXRcbiAgICB0eXBlPVwiY2hlY2tib3hcIlxuICAgIFtpZF09XCJpZGVudGlmaWVyXCJcbiAgICBbbmFtZV09XCJuYW1lXCJcbiAgICBbcmVxdWlyZWRdPVwicmVxdWlyZWRcIlxuICAgIFtkaXNhYmxlZF09XCJkaXNhYmxlZFwiXG4gICAgW2F0dHIuYXJpYS1kaXNhYmxlZF09XCJkaXNhYmxlZCA/ICd0cnVlJyA6IG51bGxcIlxuICAgIFtjaGVja2VkXT1cInZhbHVlXCJcbiAgICBbaW5kZXRlcm1pbmF0ZV09XCJpbmRldGVybWluYXRlXCJcbiAgICBbY2xhc3MuZXJyb3JdPVwic3RhdGUgPT09ICdlcnJvcidcIlxuICAgIChjaGFuZ2UpPVwiZW1pdCghIWlucHV0LmNoZWNrZWQpXCJcbiAgICBbc3R5bGUuLS1jaGVja2VkLWJhY2tncm91bmQtY29sb3JdPVwiZ2V0Q2hlY2tlZEJhY2tncm91bmRDb2xvcigpXCJcbiAgICBbc3R5bGUuLS1pbmRldGVybWluYXRlLWJhY2tncm91bmQtY29sb3JdPVwiZ2V0SW5kZXRlcm1pbmF0ZUJhY2tncm91bmRDb2xvcigpXCJcbiAgICBbcml2VG9vbHRpcF09XCJjaGVja2JveFRvb2x0aXBcIlxuICAgIFthdHRyLmFyaWEtbGFiZWxdPVwiaXNDaGVja2JveE9ubHkoKSA/IGFyaWFMYWJlbCA6IG51bGxcIlxuICAvPlxuICA8bmctY29udGVudD48L25nLWNvbnRlbnQ+XG48L2xhYmVsPlxuPHJpdi12YWxpZGF0aW9uLW1lc3NhZ2VcbiAgKm5nSWY9XCJlcnJvck1lc3NhZ2VcIlxuICBjbGFzcz1cImVycm9yLW1lc3NhZ2VcIlxuICBbbWVzc2FnZV09XCJlcnJvck1lc3NhZ2VcIlxuPjwvcml2LXZhbGlkYXRpb24tbWVzc2FnZT5cbiJdfQ==
|
|
@@ -1,26 +0,0 @@
|
|
|
1
|
-
import { ChangeDetectionStrategy, Component, Input } from '@angular/core';
|
|
2
|
-
import { NumberFieldComponent } from '../number-field/number-field.component';
|
|
3
|
-
import * as i0 from "@angular/core";
|
|
4
|
-
import * as i1 from "../auto-focus/auto-focus.directive";
|
|
5
|
-
import * as i2 from "../input-label/input-label.component";
|
|
6
|
-
export class CurrencyFieldComponent extends NumberFieldComponent {
|
|
7
|
-
constructor() {
|
|
8
|
-
super(...arguments);
|
|
9
|
-
this.placeholder = '0.00';
|
|
10
|
-
this.minimumFractionDigits = 2;
|
|
11
|
-
this.maximumFractionDigits = 2;
|
|
12
|
-
}
|
|
13
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: CurrencyFieldComponent, deps: null, target: i0.ɵɵFactoryTarget.Component }); }
|
|
14
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.2.14", type: CurrencyFieldComponent, selector: "riv-currency-field", inputs: { placeholder: "placeholder", minimumFractionDigits: "minimumFractionDigits", maximumFractionDigits: "maximumFractionDigits" }, usesInheritance: true, ngImport: i0, template: "<riv-input-label\n [label]=\"label\"\n [help]=\"help\"\n [required]=\"required\"\n [state]=\"state\"\n [errorMessage]=\"errorMessage\"\n [labelActionText]=\"labelActionText\"\n (labelAction)=\"labelAction.emit($event)\"\n>\n <span\n class=\"prefix\"\n [class.small]=\"size === 'small'\"\n [class.large]=\"size === 'large'\"\n >$</span\n >\n <input\n #input\n [name]=\"name\"\n [placeholder]=\"placeholder\"\n type=\"text\"\n [required]=\"required\"\n [disabled]=\"disabled\"\n [attr.aria-disabled]=\"disabled ? 'true' : null\"\n [readonly]=\"readonly\"\n [value]=\"text\"\n [attr.aria-label]=\"label || null\"\n (input)=\"text = input.value\"\n [class.warning]=\"state === 'warning'\"\n [class.error]=\"state === 'error'\"\n [class.small]=\"size === 'small'\"\n [class.large]=\"size === 'large'\"\n [style.textAlign]=\"align\"\n [riv-auto-focus]=\"autoFocus\"\n autocomplete=\"off\"\n autocorrect=\"off\"\n autocapitalize=\"off\"\n spellcheck=\"false\"\n (blur)=\"inputBlur()\"\n />\n</riv-input-label>\n", styles: [":host{display:block;position:relative}.prefix{position:absolute;font:var(--input-medium);padding:var(--size-small)}.prefix.small{font:var(--input-small)}.prefix.large{font:var(--input-large);padding:var(--size-medium) var(--size-small)}input{width:100%;border:var(--border-width) solid var(--border-light);border-radius:var(--border-radius-small);font:var(--input-medium);color:var(--type-light-high-contrast);padding:var(--size-small) var(--size-medium) var(--size-small) var(--size-xlarge);height:var(--input-field-height-medium)}input::placeholder{color:var(--type-light-low-contrast)}input:disabled{color:var(--type-light-disabled);background-color:var(--surface-light-1)}input:read-only{background-color:var(--surface-light-1)}input:focus{outline:none;border:var(--border-width) solid var(--purp-60)}input.warning{border-color:var(--surface-dark-caution)}input.error{border-color:var(--surface-dark-danger);box-shadow:inset 0 0 0 var(--border-width-large) var(--surface-dark-danger)}input.small{font:var(--input-small);padding:var(--size-small) var(--size-medium) var(--size-small) var(--size-xlarge);height:var(--input-field-height-small)}input.large{font:var(--input-large);padding:var(--size-medium) var(--size-medium) var(--size-medium) var(--size-xlarge);height:var(--input-field-height-large)}\n"], dependencies: [{ kind: "directive", type: i1.AutoFocusDirective, selector: "[riv-auto-focus]", inputs: ["riv-auto-focus"] }, { kind: "component", type: i2.InputLabelComponent, selector: "riv-input-label", inputs: ["label", "help", "required", "labelActionText", "errorMessage", "state"], outputs: ["labelAction"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
|
|
15
|
-
}
|
|
16
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: CurrencyFieldComponent, decorators: [{
|
|
17
|
-
type: Component,
|
|
18
|
-
args: [{ selector: 'riv-currency-field', changeDetection: ChangeDetectionStrategy.OnPush, template: "<riv-input-label\n [label]=\"label\"\n [help]=\"help\"\n [required]=\"required\"\n [state]=\"state\"\n [errorMessage]=\"errorMessage\"\n [labelActionText]=\"labelActionText\"\n (labelAction)=\"labelAction.emit($event)\"\n>\n <span\n class=\"prefix\"\n [class.small]=\"size === 'small'\"\n [class.large]=\"size === 'large'\"\n >$</span\n >\n <input\n #input\n [name]=\"name\"\n [placeholder]=\"placeholder\"\n type=\"text\"\n [required]=\"required\"\n [disabled]=\"disabled\"\n [attr.aria-disabled]=\"disabled ? 'true' : null\"\n [readonly]=\"readonly\"\n [value]=\"text\"\n [attr.aria-label]=\"label || null\"\n (input)=\"text = input.value\"\n [class.warning]=\"state === 'warning'\"\n [class.error]=\"state === 'error'\"\n [class.small]=\"size === 'small'\"\n [class.large]=\"size === 'large'\"\n [style.textAlign]=\"align\"\n [riv-auto-focus]=\"autoFocus\"\n autocomplete=\"off\"\n autocorrect=\"off\"\n autocapitalize=\"off\"\n spellcheck=\"false\"\n (blur)=\"inputBlur()\"\n />\n</riv-input-label>\n", styles: [":host{display:block;position:relative}.prefix{position:absolute;font:var(--input-medium);padding:var(--size-small)}.prefix.small{font:var(--input-small)}.prefix.large{font:var(--input-large);padding:var(--size-medium) var(--size-small)}input{width:100%;border:var(--border-width) solid var(--border-light);border-radius:var(--border-radius-small);font:var(--input-medium);color:var(--type-light-high-contrast);padding:var(--size-small) var(--size-medium) var(--size-small) var(--size-xlarge);height:var(--input-field-height-medium)}input::placeholder{color:var(--type-light-low-contrast)}input:disabled{color:var(--type-light-disabled);background-color:var(--surface-light-1)}input:read-only{background-color:var(--surface-light-1)}input:focus{outline:none;border:var(--border-width) solid var(--purp-60)}input.warning{border-color:var(--surface-dark-caution)}input.error{border-color:var(--surface-dark-danger);box-shadow:inset 0 0 0 var(--border-width-large) var(--surface-dark-danger)}input.small{font:var(--input-small);padding:var(--size-small) var(--size-medium) var(--size-small) var(--size-xlarge);height:var(--input-field-height-small)}input.large{font:var(--input-large);padding:var(--size-medium) var(--size-medium) var(--size-medium) var(--size-xlarge);height:var(--input-field-height-large)}\n"] }]
|
|
19
|
-
}], propDecorators: { placeholder: [{
|
|
20
|
-
type: Input
|
|
21
|
-
}], minimumFractionDigits: [{
|
|
22
|
-
type: Input
|
|
23
|
-
}], maximumFractionDigits: [{
|
|
24
|
-
type: Input
|
|
25
|
-
}] } });
|
|
26
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY3VycmVuY3ktZmllbGQuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvcml2L3NyYy9saWIvaW5wdXQvY3VycmVuY3ktZmllbGQvY3VycmVuY3ktZmllbGQuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvcml2L3NyYy9saWIvaW5wdXQvY3VycmVuY3ktZmllbGQvY3VycmVuY3ktZmllbGQuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLHVCQUF1QixFQUFFLFNBQVMsRUFBRSxLQUFLLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDMUUsT0FBTyxFQUFFLG9CQUFvQixFQUFFLE1BQU0sd0NBQXdDLENBQUM7Ozs7QUFROUUsTUFBTSxPQUFPLHNCQUF1QixTQUFRLG9CQUFvQjtJQU5oRTs7UUFRVyxnQkFBVyxHQUFXLE1BQU0sQ0FBQztRQUc3QiwwQkFBcUIsR0FBVyxDQUFDLENBQUM7UUFHbEMsMEJBQXFCLEdBQVcsQ0FBQyxDQUFDO0tBQzVDOytHQVRZLHNCQUFzQjttR0FBdEIsc0JBQXNCLHlOQ1RuQyx1a0NBd0NBOzs0RkQvQmEsc0JBQXNCO2tCQU5sQyxTQUFTOytCQUNFLG9CQUFvQixtQkFHYix1QkFBdUIsQ0FBQyxNQUFNOzhCQUl0QyxXQUFXO3NCQURuQixLQUFLO2dCQUlHLHFCQUFxQjtzQkFEN0IsS0FBSztnQkFJRyxxQkFBcUI7c0JBRDdCLEtBQUsiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneSwgQ29tcG9uZW50LCBJbnB1dCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgTnVtYmVyRmllbGRDb21wb25lbnQgfSBmcm9tICcuLi9udW1iZXItZmllbGQvbnVtYmVyLWZpZWxkLmNvbXBvbmVudCc7XG5cbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ3Jpdi1jdXJyZW5jeS1maWVsZCcsXG4gIHRlbXBsYXRlVXJsOiAnLi9jdXJyZW5jeS1maWVsZC5jb21wb25lbnQuaHRtbCcsXG4gIHN0eWxlVXJsczogWycuL2N1cnJlbmN5LWZpZWxkLmNvbXBvbmVudC5jc3MnXSxcbiAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2gsXG59KVxuZXhwb3J0IGNsYXNzIEN1cnJlbmN5RmllbGRDb21wb25lbnQgZXh0ZW5kcyBOdW1iZXJGaWVsZENvbXBvbmVudCB7XG4gIEBJbnB1dCgpXG4gIG92ZXJyaWRlIHBsYWNlaG9sZGVyOiBzdHJpbmcgPSAnMC4wMCc7XG5cbiAgQElucHV0KClcbiAgb3ZlcnJpZGUgbWluaW11bUZyYWN0aW9uRGlnaXRzOiBudW1iZXIgPSAyO1xuXG4gIEBJbnB1dCgpXG4gIG92ZXJyaWRlIG1heGltdW1GcmFjdGlvbkRpZ2l0czogbnVtYmVyID0gMjtcbn1cbiIsIjxyaXYtaW5wdXQtbGFiZWxcbiAgW2xhYmVsXT1cImxhYmVsXCJcbiAgW2hlbHBdPVwiaGVscFwiXG4gIFtyZXF1aXJlZF09XCJyZXF1aXJlZFwiXG4gIFtzdGF0ZV09XCJzdGF0ZVwiXG4gIFtlcnJvck1lc3NhZ2VdPVwiZXJyb3JNZXNzYWdlXCJcbiAgW2xhYmVsQWN0aW9uVGV4dF09XCJsYWJlbEFjdGlvblRleHRcIlxuICAobGFiZWxBY3Rpb24pPVwibGFiZWxBY3Rpb24uZW1pdCgkZXZlbnQpXCJcbj5cbiAgPHNwYW5cbiAgICBjbGFzcz1cInByZWZpeFwiXG4gICAgW2NsYXNzLnNtYWxsXT1cInNpemUgPT09ICdzbWFsbCdcIlxuICAgIFtjbGFzcy5sYXJnZV09XCJzaXplID09PSAnbGFyZ2UnXCJcbiAgICA+JDwvc3BhblxuICA+XG4gIDxpbnB1dFxuICAgICNpbnB1dFxuICAgIFtuYW1lXT1cIm5hbWVcIlxuICAgIFtwbGFjZWhvbGRlcl09XCJwbGFjZWhvbGRlclwiXG4gICAgdHlwZT1cInRleHRcIlxuICAgIFtyZXF1aXJlZF09XCJyZXF1aXJlZFwiXG4gICAgW2Rpc2FibGVkXT1cImRpc2FibGVkXCJcbiAgICBbYXR0ci5hcmlhLWRpc2FibGVkXT1cImRpc2FibGVkID8gJ3RydWUnIDogbnVsbFwiXG4gICAgW3JlYWRvbmx5XT1cInJlYWRvbmx5XCJcbiAgICBbdmFsdWVdPVwidGV4dFwiXG4gICAgW2F0dHIuYXJpYS1sYWJlbF09XCJsYWJlbCB8fCBudWxsXCJcbiAgICAoaW5wdXQpPVwidGV4dCA9IGlucHV0LnZhbHVlXCJcbiAgICBbY2xhc3Mud2FybmluZ109XCJzdGF0ZSA9PT0gJ3dhcm5pbmcnXCJcbiAgICBbY2xhc3MuZXJyb3JdPVwic3RhdGUgPT09ICdlcnJvcidcIlxuICAgIFtjbGFzcy5zbWFsbF09XCJzaXplID09PSAnc21hbGwnXCJcbiAgICBbY2xhc3MubGFyZ2VdPVwic2l6ZSA9PT0gJ2xhcmdlJ1wiXG4gICAgW3N0eWxlLnRleHRBbGlnbl09XCJhbGlnblwiXG4gICAgW3Jpdi1hdXRvLWZvY3VzXT1cImF1dG9Gb2N1c1wiXG4gICAgYXV0b2NvbXBsZXRlPVwib2ZmXCJcbiAgICBhdXRvY29ycmVjdD1cIm9mZlwiXG4gICAgYXV0b2NhcGl0YWxpemU9XCJvZmZcIlxuICAgIHNwZWxsY2hlY2s9XCJmYWxzZVwiXG4gICAgKGJsdXIpPVwiaW5wdXRCbHVyKClcIlxuICAvPlxuPC9yaXYtaW5wdXQtbGFiZWw+XG4iXX0=
|