@clr/angular 17.5.0 → 17.7.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/button/button-group/button.d.ts +6 -3
- package/clarity.api.md +616 -217
- package/data/datagrid/built-in/filters/datagrid-string-filter.d.ts +13 -4
- package/data/datagrid/datagrid-virtual-scroll.directive.d.ts +5 -4
- package/data/datagrid/providers/columns.service.d.ts +1 -0
- package/data/datagrid/render/main-renderer.d.ts +4 -3
- package/data/datagrid/wrapped-cell.d.ts +1 -3
- package/data/datagrid/wrapped-column.d.ts +1 -3
- package/data/datagrid/wrapped-row.d.ts +1 -3
- package/esm2020/accordion/accordion-content.mjs +2 -2
- package/esm2020/accordion/accordion-description.mjs +2 -2
- package/esm2020/accordion/accordion-panel.mjs +2 -2
- package/esm2020/accordion/accordion-title.mjs +2 -2
- package/esm2020/accordion/accordion.mjs +2 -2
- package/esm2020/accordion/accordion.module.mjs +2 -2
- package/esm2020/accordion/chocolate/accordion-oompa-loompa.mjs +2 -2
- package/esm2020/accordion/chocolate/accordion-willy-wonka.mjs +2 -2
- package/esm2020/accordion/enums/accordion-status.enum.mjs +2 -2
- package/esm2020/accordion/enums/accordion-strategy.enum.mjs +2 -2
- package/esm2020/accordion/index.mjs +2 -2
- package/esm2020/accordion/models/accordion.model.mjs +2 -2
- package/esm2020/accordion/providers/accordion.service.mjs +2 -2
- package/esm2020/accordion/stepper/chocolate/stepper-oompa-loompa.mjs +2 -2
- package/esm2020/accordion/stepper/chocolate/stepper-willy-wonka.mjs +2 -2
- package/esm2020/accordion/stepper/index.mjs +2 -2
- package/esm2020/accordion/stepper/models/stepper.model.mjs +2 -2
- package/esm2020/accordion/stepper/providers/stepper.service.mjs +2 -2
- package/esm2020/accordion/stepper/step-button.mjs +2 -2
- package/esm2020/accordion/stepper/stepper-panel.mjs +2 -2
- package/esm2020/accordion/stepper/stepper.mjs +2 -2
- package/esm2020/accordion/stepper/stepper.module.mjs +2 -2
- package/esm2020/accordion/utils/animation.mjs +2 -2
- package/esm2020/button/button-group/button-group.mjs +4 -4
- package/esm2020/button/button-group/button-group.module.mjs +2 -2
- package/esm2020/button/button-group/button.mjs +17 -10
- package/esm2020/button/button-group/index.mjs +2 -2
- package/esm2020/button/button-loading/index.mjs +2 -2
- package/esm2020/button/button-loading/loading-button.mjs +2 -2
- package/esm2020/button/button-loading/loading-button.module.mjs +2 -2
- package/esm2020/button/button.module.mjs +2 -2
- package/esm2020/button/index.mjs +2 -2
- package/esm2020/button/providers/button-group-focus-handler.service.mjs +2 -2
- package/esm2020/button/providers/button-group-focus.enum.mjs +2 -2
- package/esm2020/button/providers/button-in-group.service.mjs +2 -2
- package/esm2020/clr-angular.module.mjs +2 -2
- package/esm2020/data/data.module.mjs +2 -2
- package/esm2020/data/datagrid/built-in/comparators/datagrid-property-comparator.mjs +2 -2
- package/esm2020/data/datagrid/built-in/filters/datagrid-numeric-filter-impl.mjs +2 -2
- package/esm2020/data/datagrid/built-in/filters/datagrid-numeric-filter.mjs +19 -18
- package/esm2020/data/datagrid/built-in/filters/datagrid-property-numeric-filter.mjs +2 -2
- package/esm2020/data/datagrid/built-in/filters/datagrid-property-string-filter.mjs +2 -2
- package/esm2020/data/datagrid/built-in/filters/datagrid-string-filter-impl.mjs +2 -2
- package/esm2020/data/datagrid/built-in/filters/datagrid-string-filter.mjs +64 -29
- package/esm2020/data/datagrid/built-in/nested-property.mjs +2 -2
- package/esm2020/data/datagrid/chocolate/actionable-oompa-loompa.mjs +2 -2
- package/esm2020/data/datagrid/chocolate/datagrid-willy-wonka.mjs +2 -2
- package/esm2020/data/datagrid/chocolate/expandable-oompa-loompa.mjs +2 -2
- package/esm2020/data/datagrid/datagrid-action-bar.mjs +2 -2
- package/esm2020/data/datagrid/datagrid-action-overflow.mjs +2 -2
- package/esm2020/data/datagrid/datagrid-cell.mjs +2 -2
- package/esm2020/data/datagrid/datagrid-column-separator.mjs +2 -2
- package/esm2020/data/datagrid/datagrid-column-toggle-button.mjs +2 -2
- package/esm2020/data/datagrid/datagrid-column-toggle-trackby.mjs +2 -2
- package/esm2020/data/datagrid/datagrid-column-toggle.mjs +5 -4
- package/esm2020/data/datagrid/datagrid-column.mjs +3 -3
- package/esm2020/data/datagrid/datagrid-detail-body.mjs +2 -2
- package/esm2020/data/datagrid/datagrid-detail-header.mjs +2 -2
- package/esm2020/data/datagrid/datagrid-detail-registerer.mjs +2 -2
- package/esm2020/data/datagrid/datagrid-detail.mjs +2 -2
- package/esm2020/data/datagrid/datagrid-filter.mjs +2 -2
- package/esm2020/data/datagrid/datagrid-footer.mjs +2 -2
- package/esm2020/data/datagrid/datagrid-hideable-column.mjs +2 -2
- package/esm2020/data/datagrid/datagrid-if-detail.mjs +2 -2
- package/esm2020/data/datagrid/datagrid-if-expanded.service.mjs +2 -2
- package/esm2020/data/datagrid/datagrid-items.mjs +2 -2
- package/esm2020/data/datagrid/datagrid-page-size.mjs +2 -2
- package/esm2020/data/datagrid/datagrid-pagination.mjs +2 -2
- package/esm2020/data/datagrid/datagrid-placeholder.mjs +2 -2
- package/esm2020/data/datagrid/datagrid-row-detail.mjs +2 -2
- package/esm2020/data/datagrid/datagrid-row.mjs +2 -2
- package/esm2020/data/datagrid/datagrid-selection-cell.directive.mjs +2 -2
- package/esm2020/data/datagrid/datagrid-virtual-scroll.directive.mjs +14 -12
- package/esm2020/data/datagrid/datagrid.mjs +5 -6
- package/esm2020/data/datagrid/datagrid.module.mjs +2 -2
- package/esm2020/data/datagrid/enums/column-changes.enum.mjs +2 -2
- package/esm2020/data/datagrid/enums/display-mode.enum.mjs +2 -2
- package/esm2020/data/datagrid/enums/render-step.enum.mjs +2 -2
- package/esm2020/data/datagrid/enums/selection-type.mjs +2 -2
- package/esm2020/data/datagrid/enums/sort-order.enum.mjs +2 -2
- package/esm2020/data/datagrid/index.mjs +2 -2
- package/esm2020/data/datagrid/interfaces/column-state.interface.mjs +2 -2
- package/esm2020/data/datagrid/interfaces/comparator.interface.mjs +2 -2
- package/esm2020/data/datagrid/interfaces/filter.interface.mjs +2 -2
- package/esm2020/data/datagrid/interfaces/numeric-filter.interface.mjs +2 -2
- package/esm2020/data/datagrid/interfaces/state.interface.mjs +2 -2
- package/esm2020/data/datagrid/interfaces/string-filter.interface.mjs +2 -2
- package/esm2020/data/datagrid/providers/column-resizer.service.mjs +2 -2
- package/esm2020/data/datagrid/providers/column-state.provider.mjs +2 -2
- package/esm2020/data/datagrid/providers/columns.service.mjs +5 -2
- package/esm2020/data/datagrid/providers/custom-filter.mjs +2 -2
- package/esm2020/data/datagrid/providers/detail.service.mjs +2 -2
- package/esm2020/data/datagrid/providers/display-mode.service.mjs +2 -2
- package/esm2020/data/datagrid/providers/filters.mjs +2 -2
- package/esm2020/data/datagrid/providers/global-expandable-rows.mjs +2 -2
- package/esm2020/data/datagrid/providers/items.mjs +2 -2
- package/esm2020/data/datagrid/providers/page.mjs +2 -2
- package/esm2020/data/datagrid/providers/row-action-service.mjs +2 -2
- package/esm2020/data/datagrid/providers/selection.mjs +2 -2
- package/esm2020/data/datagrid/providers/sort.mjs +2 -2
- package/esm2020/data/datagrid/providers/state-debouncer.provider.mjs +2 -2
- package/esm2020/data/datagrid/providers/state.provider.mjs +2 -2
- package/esm2020/data/datagrid/providers/table-size.service.mjs +2 -2
- package/esm2020/data/datagrid/render/cell-renderer.mjs +2 -2
- package/esm2020/data/datagrid/render/constants.mjs +2 -2
- package/esm2020/data/datagrid/render/header-renderer.mjs +2 -2
- package/esm2020/data/datagrid/render/main-renderer.mjs +24 -20
- package/esm2020/data/datagrid/render/noop-dom-adapter.mjs +2 -2
- package/esm2020/data/datagrid/render/render-organizer.mjs +2 -2
- package/esm2020/data/datagrid/render/row-renderer.mjs +2 -2
- package/esm2020/data/datagrid/utils/datagrid-filter-registrar.mjs +2 -2
- package/esm2020/data/datagrid/utils/key-navigation-grid.controller.mjs +32 -23
- package/esm2020/data/datagrid/wrapped-cell.mjs +2 -5
- package/esm2020/data/datagrid/wrapped-column.mjs +2 -5
- package/esm2020/data/datagrid/wrapped-row.mjs +2 -5
- package/esm2020/data/index.mjs +2 -2
- package/esm2020/data/stack-view/index.mjs +2 -2
- package/esm2020/data/stack-view/stack-block.mjs +2 -2
- package/esm2020/data/stack-view/stack-content-input.mjs +2 -2
- package/esm2020/data/stack-view/stack-header.mjs +2 -2
- package/esm2020/data/stack-view/stack-view-custom-tags.mjs +2 -2
- package/esm2020/data/stack-view/stack-view.mjs +2 -2
- package/esm2020/data/stack-view/stack-view.module.mjs +2 -2
- package/esm2020/data/tree-view/index.mjs +2 -2
- package/esm2020/data/tree-view/models/async-array.mjs +2 -2
- package/esm2020/data/tree-view/models/declarative-tree-node.model.mjs +2 -2
- package/esm2020/data/tree-view/models/recursive-tree-node.model.mjs +2 -2
- package/esm2020/data/tree-view/models/selected-state.enum.mjs +2 -2
- package/esm2020/data/tree-view/models/tree-node.model.mjs +2 -2
- package/esm2020/data/tree-view/recursive-children.mjs +2 -2
- package/esm2020/data/tree-view/recursive-for-of.mjs +2 -2
- package/esm2020/data/tree-view/tree-features.service.mjs +2 -2
- package/esm2020/data/tree-view/tree-focus-manager.service.mjs +2 -2
- package/esm2020/data/tree-view/tree-node-link.mjs +2 -2
- package/esm2020/data/tree-view/tree-node.mjs +4 -4
- package/esm2020/data/tree-view/tree-view.module.mjs +2 -2
- package/esm2020/data/tree-view/tree.mjs +2 -2
- package/esm2020/emphasis/alert/alert-item.mjs +2 -2
- package/esm2020/emphasis/alert/alert-text.mjs +2 -2
- package/esm2020/emphasis/alert/alert.mjs +4 -4
- package/esm2020/emphasis/alert/alert.module.mjs +2 -2
- package/esm2020/emphasis/alert/alerts-pager.mjs +4 -4
- package/esm2020/emphasis/alert/alerts.mjs +4 -4
- package/esm2020/emphasis/alert/index.mjs +2 -2
- package/esm2020/emphasis/alert/providers/icon-and-types.service.mjs +2 -2
- package/esm2020/emphasis/alert/providers/multi-alert.service.mjs +2 -2
- package/esm2020/emphasis/alert/utils/alert-info-object.mjs +2 -2
- package/esm2020/emphasis/alert/utils/alert-types.mjs +2 -2
- package/esm2020/emphasis/emphasis.module.mjs +2 -2
- package/esm2020/emphasis/index.mjs +2 -2
- package/esm2020/forms/checkbox/checkbox-container.mjs +2 -2
- package/esm2020/forms/checkbox/checkbox-wrapper.mjs +2 -6
- package/esm2020/forms/checkbox/checkbox.mjs +2 -2
- package/esm2020/forms/checkbox/checkbox.module.mjs +2 -2
- package/esm2020/forms/checkbox/index.mjs +2 -2
- package/esm2020/forms/combobox/combobox-container.mjs +2 -2
- package/esm2020/forms/combobox/combobox.mjs +10 -10
- package/esm2020/forms/combobox/combobox.module.mjs +2 -2
- package/esm2020/forms/combobox/index.mjs +2 -2
- package/esm2020/forms/combobox/model/combobox.model.mjs +2 -2
- package/esm2020/forms/combobox/model/multi-select-combobox.model.mjs +2 -2
- package/esm2020/forms/combobox/model/pseudo-focus.model.mjs +2 -2
- package/esm2020/forms/combobox/model/single-select-combobox.model.mjs +2 -2
- package/esm2020/forms/combobox/option-items.directive.mjs +2 -2
- package/esm2020/forms/combobox/option-selected.directive.mjs +2 -2
- package/esm2020/forms/combobox/option.mjs +2 -2
- package/esm2020/forms/combobox/options.mjs +2 -2
- package/esm2020/forms/combobox/providers/combobox-container.service.mjs +2 -2
- package/esm2020/forms/combobox/providers/combobox-focus-handler.service.mjs +2 -2
- package/esm2020/forms/combobox/providers/option-selection.service.mjs +2 -2
- package/esm2020/forms/common/abstract-container.mjs +13 -6
- package/esm2020/forms/common/abstract-control.mjs +2 -2
- package/esm2020/forms/common/common.module.mjs +2 -2
- package/esm2020/forms/common/control-container.mjs +2 -2
- package/esm2020/forms/common/control.mjs +2 -2
- package/esm2020/forms/common/error.mjs +2 -2
- package/esm2020/forms/common/form.mjs +2 -2
- package/esm2020/forms/common/helper.mjs +2 -2
- package/esm2020/forms/common/if-control-state/abstract-if-state.mjs +4 -2
- package/esm2020/forms/common/if-control-state/if-control-state.service.mjs +30 -28
- package/esm2020/forms/common/if-control-state/if-error.mjs +10 -6
- package/esm2020/forms/common/if-control-state/if-success.mjs +2 -2
- package/esm2020/forms/common/index.mjs +2 -2
- package/esm2020/forms/common/label.mjs +5 -2
- package/esm2020/forms/common/layout.mjs +2 -2
- package/esm2020/forms/common/providers/container-id.service.mjs +2 -2
- package/esm2020/forms/common/providers/control-class.service.mjs +2 -2
- package/esm2020/forms/common/providers/control-id.service.mjs +2 -2
- package/esm2020/forms/common/providers/focus.service.mjs +2 -2
- package/esm2020/forms/common/providers/layout.service.mjs +2 -2
- package/esm2020/forms/common/providers/mark-control.service.mjs +2 -2
- package/esm2020/forms/common/providers/ng-control.service.mjs +21 -2
- package/esm2020/forms/common/success.mjs +2 -2
- package/esm2020/forms/common/wrapped-control.mjs +43 -19
- package/esm2020/forms/datalist/datalist-container.mjs +2 -2
- package/esm2020/forms/datalist/datalist-input.mjs +2 -2
- package/esm2020/forms/datalist/datalist.mjs +2 -2
- package/esm2020/forms/datalist/datalist.module.mjs +2 -2
- package/esm2020/forms/datalist/index.mjs +2 -2
- package/esm2020/forms/datalist/providers/datalist-id.service.mjs +2 -2
- package/esm2020/forms/datepicker/calendar.mjs +65 -10
- package/esm2020/forms/datepicker/date-container.mjs +103 -10
- package/esm2020/forms/datepicker/date-end-input.mjs +60 -0
- package/esm2020/forms/datepicker/date-input.mjs +74 -80
- package/esm2020/forms/datepicker/date-input.validator.mjs +65 -6
- package/esm2020/forms/datepicker/date-single-input.mjs +63 -0
- package/esm2020/forms/datepicker/date-start-input.mjs +61 -0
- package/esm2020/forms/datepicker/datepicker-action-buttons.mjs +59 -0
- package/esm2020/forms/datepicker/datepicker-view-manager.mjs +34 -11
- package/esm2020/forms/datepicker/datepicker.module.mjs +30 -8
- package/esm2020/forms/datepicker/day.mjs +58 -15
- package/esm2020/forms/datepicker/daypicker.mjs +2 -2
- package/esm2020/forms/datepicker/index.mjs +6 -2
- package/esm2020/forms/datepicker/interfaces/date-range.interface.mjs +2 -2
- package/esm2020/forms/datepicker/interfaces/day-of-week.interface.mjs +2 -2
- package/esm2020/forms/datepicker/model/calendar-view.model.mjs +31 -6
- package/esm2020/forms/datepicker/model/calendar.model.mjs +14 -2
- package/esm2020/forms/datepicker/model/day-view.model.mjs +5 -3
- package/esm2020/forms/datepicker/model/day.model.mjs +18 -2
- package/esm2020/forms/datepicker/model/year-range.model.mjs +2 -2
- package/esm2020/forms/datepicker/monthpicker.mjs +237 -40
- package/esm2020/forms/datepicker/providers/date-form-control.service.mjs +2 -2
- package/esm2020/forms/datepicker/providers/date-io.service.mjs +21 -2
- package/esm2020/forms/datepicker/providers/date-navigation.service.mjs +75 -8
- package/esm2020/forms/datepicker/providers/datepicker-enabled.service.mjs +2 -2
- package/esm2020/forms/datepicker/providers/datepicker-focus.service.mjs +2 -2
- package/esm2020/forms/datepicker/providers/locale-helper.service.mjs +2 -2
- package/esm2020/forms/datepicker/providers/view-manager.service.mjs +2 -2
- package/esm2020/forms/datepicker/utils/constants.mjs +2 -2
- package/esm2020/forms/datepicker/utils/date-utils.mjs +2 -2
- package/esm2020/forms/datepicker/yearpicker.mjs +132 -58
- package/esm2020/forms/file-input/file-input-container.mjs +102 -14
- package/esm2020/forms/file-input/file-input-validator-errors.mjs +8 -0
- package/esm2020/forms/file-input/file-input-validator.mjs +15 -23
- package/esm2020/forms/file-input/file-input-value-accessor.mjs +2 -2
- package/esm2020/forms/file-input/file-input.helpers.mjs +2 -2
- package/esm2020/forms/file-input/file-input.mjs +4 -3
- package/esm2020/forms/file-input/file-input.module.mjs +36 -5
- package/esm2020/forms/file-input/file-list.mjs +160 -0
- package/esm2020/forms/file-input/file-messages-template.mjs +26 -0
- package/esm2020/forms/file-input/file-messages.mjs +61 -0
- package/esm2020/forms/file-input/index.mjs +6 -2
- package/esm2020/forms/forms.module.mjs +8 -4
- package/esm2020/forms/index.mjs +3 -2
- package/esm2020/forms/input/index.mjs +2 -2
- package/esm2020/forms/input/input-container.mjs +12 -4
- package/esm2020/forms/input/input.mjs +11 -2
- package/esm2020/forms/input/input.module.mjs +2 -2
- package/esm2020/forms/number-input/index.mjs +10 -0
- package/esm2020/forms/number-input/number-input-container.mjs +145 -0
- package/esm2020/forms/number-input/number-input.mjs +72 -0
- package/esm2020/forms/number-input/number-input.module.mjs +32 -0
- package/esm2020/forms/password/index.mjs +2 -2
- package/esm2020/forms/password/password-container.mjs +2 -2
- package/esm2020/forms/password/password.mjs +2 -2
- package/esm2020/forms/password/password.module.mjs +2 -2
- package/esm2020/forms/radio/index.mjs +2 -2
- package/esm2020/forms/radio/radio-container.mjs +2 -2
- package/esm2020/forms/radio/radio-wrapper.mjs +2 -8
- package/esm2020/forms/radio/radio.mjs +2 -2
- package/esm2020/forms/radio/radio.module.mjs +2 -2
- package/esm2020/forms/range/index.mjs +2 -2
- package/esm2020/forms/range/range-container.mjs +2 -2
- package/esm2020/forms/range/range.mjs +2 -2
- package/esm2020/forms/range/range.module.mjs +2 -2
- package/esm2020/forms/select/index.mjs +2 -2
- package/esm2020/forms/select/select-container.mjs +2 -2
- package/esm2020/forms/select/select.mjs +2 -2
- package/esm2020/forms/select/select.module.mjs +2 -2
- package/esm2020/forms/textarea/index.mjs +2 -2
- package/esm2020/forms/textarea/textarea-container.mjs +2 -2
- package/esm2020/forms/textarea/textarea.mjs +2 -2
- package/esm2020/forms/textarea/textarea.module.mjs +2 -2
- package/esm2020/icon/icon.mjs +2 -2
- package/esm2020/icon/icon.module.mjs +2 -2
- package/esm2020/icon/index.mjs +2 -2
- package/esm2020/index.mjs +2 -2
- package/esm2020/layout/breadcrumbs/breadcrumb-item.mjs +2 -2
- package/esm2020/layout/breadcrumbs/breadcrumbs.constants.mjs +2 -2
- package/esm2020/layout/breadcrumbs/breadcrumbs.mjs +4 -4
- package/esm2020/layout/breadcrumbs/breadcrumbs.module.mjs +2 -2
- package/esm2020/layout/breadcrumbs/index.mjs +2 -2
- package/esm2020/layout/breadcrumbs/model/breadcrumbs.model.mjs +2 -2
- package/esm2020/layout/index.mjs +2 -2
- package/esm2020/layout/layout.module.mjs +2 -2
- package/esm2020/layout/main-container/index.mjs +2 -2
- package/esm2020/layout/main-container/main-container.mjs +2 -2
- package/esm2020/layout/main-container/main-container.module.mjs +2 -2
- package/esm2020/layout/nav/aria-current-link.mjs +2 -2
- package/esm2020/layout/nav/chocolate/index.mjs +2 -2
- package/esm2020/layout/nav/chocolate/main-container-willy-wonka.mjs +2 -2
- package/esm2020/layout/nav/chocolate/nav-detection-oompa-loompa.mjs +2 -2
- package/esm2020/layout/nav/header.mjs +2 -2
- package/esm2020/layout/nav/index.mjs +2 -2
- package/esm2020/layout/nav/nav-level.mjs +2 -2
- package/esm2020/layout/nav/navigation.module.mjs +2 -2
- package/esm2020/layout/nav/providers/responsive-navigation.service.mjs +2 -2
- package/esm2020/layout/nav/responsive-nav-codes.mjs +2 -2
- package/esm2020/layout/nav/responsive-nav-control-message.mjs +2 -2
- package/esm2020/layout/tabs/chocolate/active-oompa-loompa.mjs +2 -2
- package/esm2020/layout/tabs/chocolate/tabs-willy-wonka.mjs +2 -2
- package/esm2020/layout/tabs/enums/tabs-layout.enum.mjs +2 -2
- package/esm2020/layout/tabs/index.mjs +2 -2
- package/esm2020/layout/tabs/providers/tabs.service.mjs +2 -2
- package/esm2020/layout/tabs/tab-action.directive.mjs +2 -2
- package/esm2020/layout/tabs/tab-content.mjs +2 -2
- package/esm2020/layout/tabs/tab-link.directive.mjs +2 -2
- package/esm2020/layout/tabs/tab-overflow-content.mjs +2 -2
- package/esm2020/layout/tabs/tab.mjs +2 -2
- package/esm2020/layout/tabs/tabs-actions.mjs +2 -2
- package/esm2020/layout/tabs/tabs-id.provider.mjs +2 -2
- package/esm2020/layout/tabs/tabs.mjs +2 -2
- package/esm2020/layout/tabs/tabs.module.mjs +2 -2
- package/esm2020/layout/vertical-nav/index.mjs +2 -2
- package/esm2020/layout/vertical-nav/providers/vertical-nav-group-registration.service.mjs +2 -2
- package/esm2020/layout/vertical-nav/providers/vertical-nav-group.service.mjs +2 -2
- package/esm2020/layout/vertical-nav/providers/vertical-nav-icon.service.mjs +2 -2
- package/esm2020/layout/vertical-nav/providers/vertical-nav.service.mjs +2 -2
- package/esm2020/layout/vertical-nav/vertical-nav-group-children.mjs +2 -2
- package/esm2020/layout/vertical-nav/vertical-nav-group.mjs +4 -4
- package/esm2020/layout/vertical-nav/vertical-nav-icon.mjs +2 -2
- package/esm2020/layout/vertical-nav/vertical-nav-link.mjs +2 -2
- package/esm2020/layout/vertical-nav/vertical-nav.mjs +10 -5
- package/esm2020/layout/vertical-nav/vertical-nav.module.mjs +2 -2
- package/esm2020/modal/index.mjs +3 -2
- package/esm2020/modal/modal-body.mjs +2 -2
- package/esm2020/modal/modal-configuration.service.mjs +2 -2
- package/esm2020/modal/modal-host.directive.mjs +20 -0
- package/esm2020/modal/modal-stack.service.mjs +2 -2
- package/esm2020/modal/modal.mjs +12 -6
- package/esm2020/modal/modal.module.mjs +5 -4
- package/esm2020/modal/side-panel.mjs +90 -14
- package/esm2020/modal/side-panel.module.mjs +5 -5
- package/esm2020/popover/common/abstract-popover.mjs +14 -16
- package/esm2020/popover/common/popover-host-anchor.token.mjs +2 -2
- package/esm2020/popover/common/popover-options.interface.mjs +2 -2
- package/esm2020/popover/common/popover.mjs +2 -2
- package/esm2020/popover/dropdown/dropdown-item.mjs +2 -2
- package/esm2020/popover/dropdown/dropdown-menu.mjs +2 -2
- package/esm2020/popover/dropdown/dropdown-trigger.mjs +2 -2
- package/esm2020/popover/dropdown/dropdown.mjs +2 -2
- package/esm2020/popover/dropdown/dropdown.module.mjs +2 -2
- package/esm2020/popover/dropdown/index.mjs +2 -2
- package/esm2020/popover/dropdown/menu-positions.mjs +2 -2
- package/esm2020/popover/dropdown/providers/dropdown-focus-handler.service.mjs +2 -2
- package/esm2020/popover/dropdown/providers/dropdown.service.mjs +2 -2
- package/esm2020/popover/index.mjs +2 -2
- package/esm2020/popover/popover.module.mjs +2 -2
- package/esm2020/popover/signpost/index.mjs +2 -2
- package/esm2020/popover/signpost/providers/signpost-focus-manager.service.mjs +2 -2
- package/esm2020/popover/signpost/providers/signpost-id.service.mjs +2 -2
- package/esm2020/popover/signpost/signpost-content.mjs +2 -2
- package/esm2020/popover/signpost/signpost-positions.mjs +2 -2
- package/esm2020/popover/signpost/signpost-title.mjs +2 -2
- package/esm2020/popover/signpost/signpost-trigger.mjs +2 -2
- package/esm2020/popover/signpost/signpost.mjs +2 -2
- package/esm2020/popover/signpost/signpost.module.mjs +2 -2
- package/esm2020/popover/tooltip/index.mjs +2 -2
- package/esm2020/popover/tooltip/providers/tooltip-id.service.mjs +2 -2
- package/esm2020/popover/tooltip/providers/tooltip-mouse.service.mjs +2 -2
- package/esm2020/popover/tooltip/tooltip-content.mjs +2 -2
- package/esm2020/popover/tooltip/tooltip-trigger.mjs +2 -2
- package/esm2020/popover/tooltip/tooltip.mjs +2 -2
- package/esm2020/popover/tooltip/tooltip.module.mjs +2 -2
- package/esm2020/progress/progress-bars/index.mjs +2 -2
- package/esm2020/progress/progress-bars/progress-bar.mjs +2 -2
- package/esm2020/progress/progress-bars/progress-bar.module.mjs +2 -2
- package/esm2020/progress/spinner/index.mjs +2 -2
- package/esm2020/progress/spinner/spinner.mjs +2 -2
- package/esm2020/progress/spinner/spinner.module.mjs +2 -2
- package/esm2020/timeline/enums/timeline-layout.enum.mjs +2 -2
- package/esm2020/timeline/enums/timeline-step-state.enum.mjs +2 -2
- package/esm2020/timeline/index.mjs +2 -2
- package/esm2020/timeline/interface/icon-attribute.interface.mjs +2 -2
- package/esm2020/timeline/providers/timeline-icon-attribute.service.mjs +2 -2
- package/esm2020/timeline/timeline-step-description.mjs +2 -2
- package/esm2020/timeline/timeline-step-header.mjs +2 -2
- package/esm2020/timeline/timeline-step-title.mjs +2 -2
- package/esm2020/timeline/timeline-step.mjs +2 -2
- package/esm2020/timeline/timeline.mjs +2 -2
- package/esm2020/timeline/timeline.module.mjs +2 -2
- package/esm2020/utils/animations/collapse/collapse.mjs +2 -2
- package/esm2020/utils/animations/collapse/index.mjs +2 -2
- package/esm2020/utils/animations/constants.mjs +2 -2
- package/esm2020/utils/animations/expandable-animation/expandable-animation.mjs +2 -2
- package/esm2020/utils/animations/expandable-animation/expandable-animation.module.mjs +2 -2
- package/esm2020/utils/animations/expandable-animation/index.mjs +2 -2
- package/esm2020/utils/animations/fade/fade.mjs +2 -2
- package/esm2020/utils/animations/fade/index.mjs +2 -2
- package/esm2020/utils/animations/fade-slide/fade-slide.mjs +2 -2
- package/esm2020/utils/animations/fade-slide/index.mjs +2 -2
- package/esm2020/utils/animations/index.mjs +2 -2
- package/esm2020/utils/animations/slide/index.mjs +2 -2
- package/esm2020/utils/animations/slide/slide.mjs +2 -2
- package/esm2020/utils/assert/assert.helpers.mjs +2 -2
- package/esm2020/utils/breakpoints/breakpoints.mjs +2 -2
- package/esm2020/utils/cdk/cdk-drag.module.mjs +1 -1
- package/esm2020/utils/cdk/cdk-trap-focus.module.mjs +2 -2
- package/esm2020/utils/chocolate/oompa-loompa.mjs +2 -2
- package/esm2020/utils/chocolate/willy-wonka.mjs +2 -2
- package/esm2020/utils/component/is-boolean-attribute-set.mjs +2 -2
- package/esm2020/utils/conditional/conditional.module.mjs +2 -2
- package/esm2020/utils/conditional/if-active.directive.mjs +2 -2
- package/esm2020/utils/conditional/if-active.service.mjs +2 -2
- package/esm2020/utils/conditional/if-expanded.directive.mjs +2 -2
- package/esm2020/utils/conditional/if-expanded.service.mjs +2 -2
- package/esm2020/utils/conditional/if-open.directive.mjs +2 -2
- package/esm2020/utils/conditional/index.mjs +2 -2
- package/esm2020/utils/destroy/destroy.service.mjs +2 -2
- package/esm2020/utils/destroy/index.mjs +2 -2
- package/esm2020/utils/dom-adapter/dom-adapter.mjs +2 -2
- package/esm2020/utils/enums/keys.enum.mjs +4 -2
- package/esm2020/utils/focus/arrow-key-direction.enum.mjs +2 -2
- package/esm2020/utils/focus/focus-on-view-init/focus-on-view-init.mjs +2 -2
- package/esm2020/utils/focus/focus-on-view-init/focus-on-view-init.module.mjs +2 -2
- package/esm2020/utils/focus/focus-on-view-init/focus-on-view-init.provider.mjs +2 -2
- package/esm2020/utils/focus/focus-on-view-init/index.mjs +2 -2
- package/esm2020/utils/focus/focus-trap/index.mjs +2 -2
- package/esm2020/utils/focus/focus-trap/standalone-cdk-trap-focus.directive.mjs +2 -2
- package/esm2020/utils/focus/focus.service.mjs +2 -2
- package/esm2020/utils/focus/focusable-item/basic-focusable-item.service.mjs +2 -2
- package/esm2020/utils/focus/focusable-item/custom-focusable-item-provider.mjs +2 -2
- package/esm2020/utils/focus/focusable-item/focusable-item.mjs +2 -2
- package/esm2020/utils/focus/focusable-item/linkers.mjs +2 -2
- package/esm2020/utils/focus/key-focus/enums/focus-direction.enum.mjs +2 -2
- package/esm2020/utils/focus/key-focus/index.mjs +2 -2
- package/esm2020/utils/focus/key-focus/interfaces.mjs +2 -2
- package/esm2020/utils/focus/key-focus/key-focus-item.mjs +2 -2
- package/esm2020/utils/focus/key-focus/key-focus.mjs +2 -2
- package/esm2020/utils/focus/key-focus/key-focus.module.mjs +2 -2
- package/esm2020/utils/focus/key-focus/roving-tabindex.mjs +2 -2
- package/esm2020/utils/focus/key-focus/util.mjs +2 -2
- package/esm2020/utils/focus/wrap-observable.mjs +2 -2
- package/esm2020/utils/forms/validation.mjs +2 -2
- package/esm2020/utils/host-wrapping/empty-anchor.mjs +2 -2
- package/esm2020/utils/host-wrapping/host-wrapper.mjs +2 -4
- package/esm2020/utils/host-wrapping/host-wrapping.module.mjs +2 -2
- package/esm2020/utils/i18n/common-strings.default.mjs +6 -2
- package/esm2020/utils/i18n/common-strings.interface.mjs +2 -2
- package/esm2020/utils/i18n/common-strings.service.mjs +2 -2
- package/esm2020/utils/i18n/index.mjs +2 -2
- package/esm2020/utils/id-generator/id-generator.service.mjs +2 -2
- package/esm2020/utils/index.mjs +2 -2
- package/esm2020/utils/loading/index.mjs +2 -2
- package/esm2020/utils/loading/loading-listener.mjs +2 -2
- package/esm2020/utils/loading/loading.mjs +2 -2
- package/esm2020/utils/loading/loading.module.mjs +2 -2
- package/esm2020/utils/outside-click/index.mjs +2 -2
- package/esm2020/utils/outside-click/outside-click.mjs +2 -2
- package/esm2020/utils/outside-click/outside-click.module.mjs +2 -2
- package/esm2020/utils/popover/enums/alignment.enum.mjs +2 -2
- package/esm2020/utils/popover/enums/axis.enum.mjs +2 -2
- package/esm2020/utils/popover/enums/positions.enum.mjs +2 -2
- package/esm2020/utils/popover/enums/side.enum.mjs +2 -2
- package/esm2020/utils/popover/enums/viewport-violation.enum.mjs +2 -2
- package/esm2020/utils/popover/index.mjs +2 -2
- package/esm2020/utils/popover/interfaces/popover-content-offset.interface.mjs +2 -2
- package/esm2020/utils/popover/interfaces/popover-position.interface.mjs +2 -2
- package/esm2020/utils/popover/interfaces/visibility-coords.interface.mjs +2 -2
- package/esm2020/utils/popover/popover-anchor.mjs +2 -2
- package/esm2020/utils/popover/popover-close-button.mjs +2 -2
- package/esm2020/utils/popover/popover-content.mjs +2 -2
- package/esm2020/utils/popover/popover-host.directive.mjs +2 -2
- package/esm2020/utils/popover/popover-open-close-button.mjs +2 -2
- package/esm2020/utils/popover/popover.module.mjs +2 -2
- package/esm2020/utils/popover/position-operators.mjs +2 -2
- package/esm2020/utils/popover/providers/popover-events.service.mjs +2 -2
- package/esm2020/utils/popover/providers/popover-position.service.mjs +2 -2
- package/esm2020/utils/popover/providers/popover-toggle.service.mjs +2 -2
- package/esm2020/utils/popover/stop-escape-propagation.directive.mjs +2 -2
- package/esm2020/utils/scrolling/scrolling-service.mjs +2 -2
- package/esm2020/utils/template-ref/index.mjs +2 -2
- package/esm2020/utils/template-ref/template-ref-container.mjs +2 -2
- package/esm2020/utils/template-ref/template-ref.module.mjs +2 -2
- package/esm2020/wizard/heading-level.mjs +2 -2
- package/esm2020/wizard/index.mjs +2 -2
- package/esm2020/wizard/providers/button-hub.service.mjs +2 -2
- package/esm2020/wizard/providers/header-actions.service.mjs +2 -2
- package/esm2020/wizard/providers/page-collection.service.mjs +2 -2
- package/esm2020/wizard/providers/wizard-navigation.service.mjs +2 -2
- package/esm2020/wizard/wizard-button.mjs +2 -2
- package/esm2020/wizard/wizard-header-action.mjs +2 -2
- package/esm2020/wizard/wizard-page-buttons.mjs +2 -2
- package/esm2020/wizard/wizard-page-header-actions.mjs +2 -2
- package/esm2020/wizard/wizard-page-navtitle.mjs +2 -2
- package/esm2020/wizard/wizard-page-title.mjs +2 -2
- package/esm2020/wizard/wizard-page.mjs +2 -2
- package/esm2020/wizard/wizard-stepnav-item.mjs +6 -2
- package/esm2020/wizard/wizard-stepnav.mjs +2 -2
- package/esm2020/wizard/wizard-title.mjs +2 -2
- package/esm2020/wizard/wizard.mjs +11 -5
- package/esm2020/wizard/wizard.module.mjs +2 -2
- package/fesm2015/clr-angular.mjs +14736 -12993
- package/fesm2015/clr-angular.mjs.map +1 -1
- package/fesm2020/clr-angular.mjs +14416 -12708
- package/fesm2020/clr-angular.mjs.map +1 -1
- package/forms/checkbox/checkbox-wrapper.d.ts +1 -3
- package/forms/common/abstract-container.d.ts +4 -3
- package/forms/common/if-control-state/abstract-if-state.d.ts +1 -0
- package/forms/common/if-control-state/if-control-state.service.d.ts +4 -7
- package/forms/common/providers/ng-control.service.d.ts +8 -0
- package/forms/common/wrapped-control.d.ts +7 -4
- package/forms/datepicker/calendar.d.ts +10 -1
- package/forms/datepicker/date-container.d.ts +16 -3
- package/forms/datepicker/date-end-input.d.ts +15 -0
- package/forms/datepicker/date-input.d.ts +18 -12
- package/forms/datepicker/date-input.validator.d.ts +18 -1
- package/forms/datepicker/date-single-input.d.ts +15 -0
- package/forms/datepicker/date-start-input.d.ts +15 -0
- package/forms/datepicker/datepicker-action-buttons.d.ts +16 -0
- package/forms/datepicker/datepicker-view-manager.d.ts +9 -1
- package/forms/datepicker/datepicker.module.d.ts +18 -14
- package/forms/datepicker/day.d.ts +16 -6
- package/forms/datepicker/index.d.ts +4 -0
- package/forms/datepicker/interfaces/date-range.interface.d.ts +8 -0
- package/forms/datepicker/model/calendar-view.model.d.ts +12 -2
- package/forms/datepicker/model/calendar.model.d.ts +8 -0
- package/forms/datepicker/model/day-view.model.d.ts +3 -1
- package/forms/datepicker/model/day.model.d.ts +8 -0
- package/forms/datepicker/monthpicker.d.ts +43 -2
- package/forms/datepicker/providers/date-io.service.d.ts +5 -1
- package/forms/datepicker/providers/date-navigation.service.d.ts +32 -2
- package/forms/datepicker/yearpicker.d.ts +14 -0
- package/forms/file-input/file-input-container.d.ts +15 -4
- package/forms/file-input/file-input-validator-errors.d.ts +52 -0
- package/forms/file-input/file-input.module.d.ts +7 -4
- package/forms/file-input/file-list.d.ts +18 -0
- package/forms/file-input/file-messages-template.d.ts +19 -0
- package/forms/file-input/file-messages.d.ts +17 -0
- package/forms/file-input/index.d.ts +4 -0
- package/forms/forms.module.d.ts +2 -1
- package/forms/index.d.ts +1 -0
- package/forms/input/input-container.d.ts +1 -1
- package/forms/number-input/index.d.ts +3 -0
- package/forms/number-input/number-input-container.d.ts +16 -0
- package/forms/number-input/number-input.d.ts +20 -0
- package/forms/number-input/number-input.module.d.ts +13 -0
- package/forms/radio/radio-wrapper.d.ts +1 -3
- package/layout/vertical-nav/vertical-nav.d.ts +3 -1
- package/modal/index.d.ts +1 -0
- package/modal/modal-host.directive.d.ts +5 -0
- package/modal/modal.d.ts +4 -2
- package/modal/modal.module.d.ts +5 -4
- package/modal/side-panel.d.ts +25 -6
- package/modal/side-panel.module.d.ts +1 -1
- package/package.json +2 -2
- package/popover/common/abstract-popover.d.ts +0 -1
- package/utils/enums/keys.enum.d.ts +3 -1
- package/utils/host-wrapping/host-wrapper.d.ts +1 -2
- package/utils/i18n/common-strings.interface.d.ts +16 -0
- package/wizard/wizard.d.ts +2 -1
- package/esm2020/utils/host-wrapping/dynamic-wrapper.mjs +0 -8
- package/utils/host-wrapping/dynamic-wrapper.d.ts +0 -3
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
/*
|
|
2
|
-
* Copyright (c) 2016-
|
|
2
|
+
* Copyright (c) 2016-2025 Broadcom. All Rights Reserved.
|
|
3
3
|
* The term "Broadcom" refers to Broadcom Inc. and/or its subsidiaries.
|
|
4
4
|
* This software is released under MIT license.
|
|
5
5
|
* The full license information can be found in LICENSE in the root directory of this project.
|
|
@@ -25,12 +25,24 @@ export class ClrYearpicker {
|
|
|
25
25
|
this.yearRangeModel = new YearRangeModel(this.calendarYear);
|
|
26
26
|
this._focusedYear = this.calendarYear;
|
|
27
27
|
}
|
|
28
|
+
get selectedStartYear() {
|
|
29
|
+
return this._dateNavigationService.selectedDay?.year;
|
|
30
|
+
}
|
|
31
|
+
get selectedEndYear() {
|
|
32
|
+
return this._dateNavigationService.selectedEndDay?.year;
|
|
33
|
+
}
|
|
28
34
|
/**
|
|
29
35
|
* Gets the year which the user is currently on.
|
|
30
36
|
*/
|
|
31
37
|
get calendarYear() {
|
|
32
38
|
return this._dateNavigationService.displayedCalendar.year;
|
|
33
39
|
}
|
|
40
|
+
getIsRangeStartYear(year) {
|
|
41
|
+
return this._dateNavigationService.isRangePicker && year === this._dateNavigationService.selectedDay?.year;
|
|
42
|
+
}
|
|
43
|
+
getIsRangeEndYear(year) {
|
|
44
|
+
return this._dateNavigationService.isRangePicker && year === this._dateNavigationService.selectedEndDay?.year;
|
|
45
|
+
}
|
|
34
46
|
/**
|
|
35
47
|
* Focuses on the current calendar year when the View is initialized.
|
|
36
48
|
*/
|
|
@@ -48,19 +60,19 @@ export class ClrYearpicker {
|
|
|
48
60
|
const key = normalizeKey(event.key);
|
|
49
61
|
if (key === Keys.ArrowUp) {
|
|
50
62
|
event.preventDefault();
|
|
51
|
-
this.incrementFocusYearBy(-
|
|
63
|
+
this.incrementFocusYearBy(-2);
|
|
52
64
|
}
|
|
53
65
|
else if (key === Keys.ArrowDown) {
|
|
54
66
|
event.preventDefault();
|
|
55
|
-
this.incrementFocusYearBy(
|
|
67
|
+
this.incrementFocusYearBy(2);
|
|
56
68
|
}
|
|
57
69
|
else if (key === Keys.ArrowRight) {
|
|
58
70
|
event.preventDefault();
|
|
59
|
-
this.incrementFocusYearBy(
|
|
71
|
+
this.incrementFocusYearBy(1);
|
|
60
72
|
}
|
|
61
73
|
else if (key === Keys.ArrowLeft) {
|
|
62
74
|
event.preventDefault();
|
|
63
|
-
this.incrementFocusYearBy(-
|
|
75
|
+
this.incrementFocusYearBy(-1);
|
|
64
76
|
}
|
|
65
77
|
}
|
|
66
78
|
}
|
|
@@ -72,6 +84,12 @@ export class ClrYearpicker {
|
|
|
72
84
|
this._dateNavigationService.changeYear(year);
|
|
73
85
|
this._viewManagerService.changeToDayView();
|
|
74
86
|
}
|
|
87
|
+
/**
|
|
88
|
+
* Calls the DateNavigationService to update the hovered year value of the calendar
|
|
89
|
+
*/
|
|
90
|
+
onHover(year) {
|
|
91
|
+
this._dateNavigationService.hoveredYear = year;
|
|
92
|
+
}
|
|
75
93
|
/**
|
|
76
94
|
* Updates the YearRangeModel to the previous decade.
|
|
77
95
|
*/
|
|
@@ -105,12 +123,36 @@ export class ClrYearpicker {
|
|
|
105
123
|
if (this.yearRangeModel.inRange(this.calendarYear)) {
|
|
106
124
|
this._focusedYear = this.calendarYear;
|
|
107
125
|
}
|
|
126
|
+
else if (this.yearRangeModel.inRange(this.selectedEndYear)) {
|
|
127
|
+
this._focusedYear = this.selectedEndYear;
|
|
128
|
+
}
|
|
108
129
|
else {
|
|
109
130
|
this._focusedYear = this.yearRangeModel.middleYear;
|
|
110
131
|
}
|
|
111
132
|
}
|
|
112
133
|
return this._focusedYear === year ? 0 : -1;
|
|
113
134
|
}
|
|
135
|
+
/**
|
|
136
|
+
* Applicable only to date range picker
|
|
137
|
+
* Compares the year passed is in between the start and end date range
|
|
138
|
+
*/
|
|
139
|
+
isInRange(year) {
|
|
140
|
+
if (!this._dateNavigationService.isRangePicker) {
|
|
141
|
+
return false;
|
|
142
|
+
}
|
|
143
|
+
if (this._dateNavigationService.selectedDay?.year && this.selectedEndYear) {
|
|
144
|
+
return year > this.selectedStartYear && year < this.selectedEndYear;
|
|
145
|
+
}
|
|
146
|
+
else if (this._dateNavigationService.selectedDay?.year && !this.selectedEndYear) {
|
|
147
|
+
return year > this.selectedStartYear && year < this._dateNavigationService.hoveredYear;
|
|
148
|
+
}
|
|
149
|
+
else {
|
|
150
|
+
return false;
|
|
151
|
+
}
|
|
152
|
+
}
|
|
153
|
+
changeToDayView() {
|
|
154
|
+
this._viewManagerService.changeToDayView();
|
|
155
|
+
}
|
|
114
156
|
/**
|
|
115
157
|
* Increments the focus year by the value passed. Updates the YearRangeModel if the
|
|
116
158
|
* new value is not in the current decade.
|
|
@@ -130,40 +172,56 @@ export class ClrYearpicker {
|
|
|
130
172
|
}
|
|
131
173
|
ClrYearpicker.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.2", ngImport: i0, type: ClrYearpicker, deps: [{ token: i1.DateNavigationService }, { token: i2.ViewManagerService }, { token: i3.DatepickerFocusService }, { token: i0.ElementRef }, { token: i4.ClrCommonStringsService }], target: i0.ɵɵFactoryTarget.Component });
|
|
132
174
|
ClrYearpicker.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "15.2.2", type: ClrYearpicker, selector: "clr-yearpicker", host: { attributes: { "role": "application" }, listeners: { "keydown": "onKeyDown($event)" }, properties: { "class.yearpicker": "true" } }, ngImport: i0, template: `
|
|
133
|
-
<div class="
|
|
134
|
-
<
|
|
135
|
-
class="calendar-btn
|
|
136
|
-
|
|
137
|
-
|
|
138
|
-
|
|
139
|
-
>
|
|
140
|
-
<
|
|
141
|
-
|
|
142
|
-
|
|
143
|
-
|
|
144
|
-
|
|
145
|
-
|
|
146
|
-
|
|
147
|
-
|
|
148
|
-
|
|
149
|
-
|
|
150
|
-
|
|
151
|
-
|
|
152
|
-
|
|
153
|
-
|
|
154
|
-
|
|
155
|
-
|
|
156
|
-
|
|
157
|
-
|
|
175
|
+
<div class="calendar-header">
|
|
176
|
+
<div class="calendar-pickers">
|
|
177
|
+
<button class="calendar-btn yearpicker-trigger year-range" type="button" (click)="changeToDayView()">
|
|
178
|
+
{{ yearRangeModel.yearRange[0] }} - {{ yearRangeModel.yearRange[yearRangeModel.yearRange.length - 1] }}
|
|
179
|
+
</button>
|
|
180
|
+
</div>
|
|
181
|
+
<div class="year-switchers">
|
|
182
|
+
<button
|
|
183
|
+
class="calendar-btn switcher"
|
|
184
|
+
type="button"
|
|
185
|
+
(click)="previousDecade()"
|
|
186
|
+
[attr.aria-label]="commonStrings.keys.datepickerPreviousDecade"
|
|
187
|
+
>
|
|
188
|
+
<cds-icon
|
|
189
|
+
shape="angle"
|
|
190
|
+
direction="left"
|
|
191
|
+
[attr.title]="commonStrings.keys.datepickerPreviousDecade"
|
|
192
|
+
></cds-icon>
|
|
193
|
+
</button>
|
|
194
|
+
<button
|
|
195
|
+
class="calendar-btn switcher"
|
|
196
|
+
type="button"
|
|
197
|
+
(click)="currentDecade()"
|
|
198
|
+
[attr.aria-label]="commonStrings.keys.datepickerCurrentDecade"
|
|
199
|
+
>
|
|
200
|
+
<cds-icon shape="event" [attr.title]="commonStrings.keys.datepickerCurrentDecade"></cds-icon>
|
|
201
|
+
</button>
|
|
202
|
+
<button
|
|
203
|
+
class="calendar-btn switcher"
|
|
204
|
+
type="button"
|
|
205
|
+
(click)="nextDecade()"
|
|
206
|
+
[attr.aria-label]="commonStrings.keys.datepickerNextDecade"
|
|
207
|
+
>
|
|
208
|
+
<cds-icon shape="angle" direction="right" [attr.title]="commonStrings.keys.datepickerNextDecade"></cds-icon>
|
|
209
|
+
</button>
|
|
210
|
+
</div>
|
|
158
211
|
</div>
|
|
212
|
+
|
|
159
213
|
<div class="years">
|
|
160
214
|
<button
|
|
161
215
|
*ngFor="let year of yearRangeModel.yearRange"
|
|
162
216
|
type="button"
|
|
163
217
|
class="calendar-btn year"
|
|
164
218
|
[attr.tabindex]="getTabIndex(year)"
|
|
165
|
-
[class.is-selected]="year ===
|
|
219
|
+
[class.is-selected]="year === selectedStartYear || year === selectedEndYear"
|
|
220
|
+
[class.is-start-range]="getIsRangeStartYear(year)"
|
|
221
|
+
[class.is-end-range]="getIsRangeEndYear(year)"
|
|
222
|
+
[class.in-range]="isInRange(year)"
|
|
166
223
|
(click)="changeYear(year)"
|
|
224
|
+
(mouseenter)="onHover(year)"
|
|
167
225
|
>
|
|
168
226
|
{{ year }}
|
|
169
227
|
</button>
|
|
@@ -174,40 +232,56 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.2", ngImpor
|
|
|
174
232
|
args: [{
|
|
175
233
|
selector: 'clr-yearpicker',
|
|
176
234
|
template: `
|
|
177
|
-
<div class="
|
|
178
|
-
<
|
|
179
|
-
class="calendar-btn
|
|
180
|
-
|
|
181
|
-
|
|
182
|
-
|
|
183
|
-
>
|
|
184
|
-
<
|
|
185
|
-
|
|
186
|
-
|
|
187
|
-
|
|
188
|
-
|
|
189
|
-
|
|
190
|
-
|
|
191
|
-
|
|
192
|
-
|
|
193
|
-
|
|
194
|
-
|
|
195
|
-
|
|
196
|
-
|
|
197
|
-
|
|
198
|
-
|
|
199
|
-
|
|
200
|
-
|
|
201
|
-
|
|
235
|
+
<div class="calendar-header">
|
|
236
|
+
<div class="calendar-pickers">
|
|
237
|
+
<button class="calendar-btn yearpicker-trigger year-range" type="button" (click)="changeToDayView()">
|
|
238
|
+
{{ yearRangeModel.yearRange[0] }} - {{ yearRangeModel.yearRange[yearRangeModel.yearRange.length - 1] }}
|
|
239
|
+
</button>
|
|
240
|
+
</div>
|
|
241
|
+
<div class="year-switchers">
|
|
242
|
+
<button
|
|
243
|
+
class="calendar-btn switcher"
|
|
244
|
+
type="button"
|
|
245
|
+
(click)="previousDecade()"
|
|
246
|
+
[attr.aria-label]="commonStrings.keys.datepickerPreviousDecade"
|
|
247
|
+
>
|
|
248
|
+
<cds-icon
|
|
249
|
+
shape="angle"
|
|
250
|
+
direction="left"
|
|
251
|
+
[attr.title]="commonStrings.keys.datepickerPreviousDecade"
|
|
252
|
+
></cds-icon>
|
|
253
|
+
</button>
|
|
254
|
+
<button
|
|
255
|
+
class="calendar-btn switcher"
|
|
256
|
+
type="button"
|
|
257
|
+
(click)="currentDecade()"
|
|
258
|
+
[attr.aria-label]="commonStrings.keys.datepickerCurrentDecade"
|
|
259
|
+
>
|
|
260
|
+
<cds-icon shape="event" [attr.title]="commonStrings.keys.datepickerCurrentDecade"></cds-icon>
|
|
261
|
+
</button>
|
|
262
|
+
<button
|
|
263
|
+
class="calendar-btn switcher"
|
|
264
|
+
type="button"
|
|
265
|
+
(click)="nextDecade()"
|
|
266
|
+
[attr.aria-label]="commonStrings.keys.datepickerNextDecade"
|
|
267
|
+
>
|
|
268
|
+
<cds-icon shape="angle" direction="right" [attr.title]="commonStrings.keys.datepickerNextDecade"></cds-icon>
|
|
269
|
+
</button>
|
|
270
|
+
</div>
|
|
202
271
|
</div>
|
|
272
|
+
|
|
203
273
|
<div class="years">
|
|
204
274
|
<button
|
|
205
275
|
*ngFor="let year of yearRangeModel.yearRange"
|
|
206
276
|
type="button"
|
|
207
277
|
class="calendar-btn year"
|
|
208
278
|
[attr.tabindex]="getTabIndex(year)"
|
|
209
|
-
[class.is-selected]="year ===
|
|
279
|
+
[class.is-selected]="year === selectedStartYear || year === selectedEndYear"
|
|
280
|
+
[class.is-start-range]="getIsRangeStartYear(year)"
|
|
281
|
+
[class.is-end-range]="getIsRangeEndYear(year)"
|
|
282
|
+
[class.in-range]="isInRange(year)"
|
|
210
283
|
(click)="changeYear(year)"
|
|
284
|
+
(mouseenter)="onHover(year)"
|
|
211
285
|
>
|
|
212
286
|
{{ year }}
|
|
213
287
|
</button>
|
|
@@ -222,4 +296,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.2", ngImpor
|
|
|
222
296
|
type: HostListener,
|
|
223
297
|
args: ['keydown', ['$event']]
|
|
224
298
|
}] } });
|
|
225
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoieWVhcnBpY2tlci5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2FuZ3VsYXIvc3JjL2Zvcm1zL2RhdGVwaWNrZXIveWVhcnBpY2tlci50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQTs7Ozs7R0FLRztBQUVILE9BQU8sRUFBaUIsU0FBUyxFQUFjLFlBQVksRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUVuRixPQUFPLEVBQUUsSUFBSSxFQUFFLE1BQU0sNkJBQTZCLENBQUM7QUFDbkQsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLGtDQUFrQyxDQUFDO0FBRWhFLE9BQU8sRUFBRSxjQUFjLEVBQUUsTUFBTSwwQkFBMEIsQ0FBQzs7Ozs7Ozs7QUFvRDFELE1BQU0sT0FBTyxhQUFhO0lBV3hCLFlBQ1Usc0JBQTZDLEVBQzdDLG1CQUF1QyxFQUN2Qyx1QkFBK0MsRUFDL0MsTUFBK0IsRUFDaEMsYUFBc0M7UUFKckMsMkJBQXNCLEdBQXRCLHNCQUFzQixDQUF1QjtRQUM3Qyx3QkFBbUIsR0FBbkIsbUJBQW1CLENBQW9CO1FBQ3ZDLDRCQUF1QixHQUF2Qix1QkFBdUIsQ0FBd0I7UUFDL0MsV0FBTSxHQUFOLE1BQU0sQ0FBeUI7UUFDaEMsa0JBQWEsR0FBYixhQUFhLENBQXlCO1FBRTdDLElBQUksQ0FBQyxjQUFjLEdBQUcsSUFBSSxjQUFjLENBQUMsSUFBSSxDQUFDLFlBQVksQ0FBQyxDQUFDO1FBQzVELElBQUksQ0FBQyxZQUFZLEdBQUcsSUFBSSxDQUFDLFlBQVksQ0FBQztJQUN4QyxDQUFDO0lBRUQ7O09BRUc7SUFDSCxJQUFJLFlBQVk7UUFDZCxPQUFPLElBQUksQ0FBQyxzQkFBc0IsQ0FBQyxpQkFBaUIsQ0FBQyxJQUFJLENBQUM7SUFDNUQsQ0FBQztJQUVEOztPQUVHO0lBQ0gsZUFBZTtRQUNiLElBQUksQ0FBQyx1QkFBdUIsQ0FBQyxTQUFTLENBQUMsSUFBSSxDQUFDLE1BQU0sQ0FBQyxDQUFDO0lBQ3RE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QUFDLGNBQWMsQ0FBQyxPQUFPLENBQUMsSUFBSSxDQUFDLFlBQVksQ0FBQyxFQUFFO1lBQ25ELElBQUksS0FBSyxHQUFHLENBQUMsRUFBRTtnQkFDYixJQUFJLENBQUMsY0FBYyxHQUFHLElBQUksQ0FBQyxjQUFjLENBQUMsVUFBVSxFQUFFLENBQUM7YUFDeEQ7aUJBQU07Z0JBQ0wsSUFBSSxDQUFDLGNBQWMsR0FBRyxJQUFJLENBQUMsY0FBYyxDQUFDLGNBQWMsRUFBRSxDQUFDO2FBQzVEO1NBQ0Y7UUFDRCxJQUFJLENBQUMsdUJBQXVCLENBQUMsU0FBUyxDQUFDLElBQUksQ0FBQyxNQUFNLENBQUMsQ0FBQztJQUN0RCxDQUFDOzswR0EvSFUsYUFBYTs4RkFBYixhQUFhLGtNQTdDZDs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0dBdUNUOzJGQU1VLGFBQWE7a0JBL0N6QixTQUFTO21CQUFDO29CQUNULFFBQVEsRUFBRSxnQkFBZ0I7b0JBQzFCLFFBQVEsRUFBRTs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0dBdUNUO29CQUNELElBQUksRUFBRTt3QkFDSixvQkFBb0IsRUFBRSxNQUFNO3dCQUM1QixJQUFJLEVBQUUsYUFBYTtxQkFDcEI7aUJBQ0Y7aVBBeUNDLFNBQVM7c0JBRFIsWUFBWTt1QkFBQyxTQUFTLEVBQUUsQ0FBQyxRQUFRLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyIvKlxuICogQ29weXJpZ2h0IChjKSAyMDE2LTIwMjQgQnJvYWRjb20uIEFsbCBSaWdodHMgUmVzZXJ2ZWQuXG4gKiBUaGUgdGVybSBcIkJyb2FkY29tXCIgcmVmZXJzIHRvIEJyb2FkY29tIEluYy4gYW5kL29yIGl0cyBzdWJzaWRpYXJpZXMuXG4gKiBUaGlzIHNvZnR3YXJlIGlzIHJlbGVhc2VkIHVuZGVyIE1JVCBsaWNlbnNlLlxuICogVGhlIGZ1bGwgbGljZW5zZSBpbmZvcm1hdGlvbiBjYW4gYmUgZm91bmQgaW4gTElDRU5TRSBpbiB0aGUgcm9vdCBkaXJlY3Rvcnkgb2YgdGhpcyBwcm9qZWN0LlxuICovXG5cbmltcG9ydCB7IEFmdGVyVmlld0luaXQsIENvbXBvbmVudCwgRWxlbWVudFJlZiwgSG9zdExpc3RlbmVyIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5cbmltcG9ydCB7IEtleXMgfSBmcm9tICcuLi8uLi91dGlscy9lbnVtcy9rZXlzLmVudW0nO1xuaW1wb3J0IHsgbm9ybWFsaXplS2V5IH0gZnJvbSAnLi4vLi4vdXRpbHMvZm9jdXMva2V5LWZvY3VzL3V0aWwnO1xuaW1wb3J0IHsgQ2xyQ29tbW9uU3RyaW5nc1NlcnZpY2UgfSBmcm9tICcuLi8uLi91dGlscy9pMThuL2NvbW1vbi1zdHJpbmdzLnNlcnZpY2UnO1xuaW1wb3J0IHsgWWVhclJhbmdlTW9kZWwgfSBmcm9tICcuL21vZGVsL3llYXItcmFuZ2UubW9kZWwnO1xuaW1wb3J0IHsgRGF0ZU5hdmlnYXRpb25TZXJ2aWNlIH0gZnJvbSAnLi9wcm92aWRlcnMvZGF0ZS1uYXZpZ2F0aW9uLnNlcnZpY2UnO1xuaW1wb3J0IHsgRGF0ZXBpY2tlckZvY3VzU2VydmljZSB9IGZyb20gJy4vcHJvdmlkZXJzL2RhdGVwaWNrZXItZm9jdXMuc2VydmljZSc7XG5pbXBvcnQgeyBWaWV3TWFuYWdlclNlcnZpY2UgfSBmcm9tICcuL3Byb3ZpZGVycy92aWV3LW1hbmFnZXIuc2VydmljZSc7XG5cbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ2Nsci15ZWFycGlja2VyJyxcbiAgdGVtcGxhdGU6IGBcbiAgICA8ZGl2IGNsYXNzPVwieWVhci1zd2l0Y2hlcnNcIj5cbiAgICAgIDxidXR0b25cbiAgICAgICAgY2xhc3M9XCJjYWxlbmRhci1idG4gc3dpdGNoZXJcIlxuICAgICAgICB0eXBlPVwiYnV0dG9uXCJcbiAgICAgICAgKGNsaWNrKT1cInByZXZpb3VzRGVjYWRlKClcIlxuICAgICAgICBbYXR0ci5hcmlhLWxhYmVsXT1cImNvbW1vblN0cmluZ3Mua2V5cy5kYXRlcGlja2VyUHJldmlvdXNEZWNhZGVcIlxuICAgICAgPlxuICAgICAgICA8Y2RzLWljb24gc2hhcGU9XCJhbmdsZVwiIGRpcmVjdGlvbj1cImxlZnRcIiBbYXR0ci50aXRsZV09XCJjb21tb25TdHJpbmdzLmtleXMuZGF0ZXBpY2tlclByZXZpb3VzRGVjYWRlXCI+PC9jZHMtaWNvbj5cbiAgICAgIDwvYnV0dG9uPlxuICAgICAgPGJ1dHRvblxuICAgICAgICBjbGFzcz1cImNhbGVuZGFyLWJ0biBzd2l0Y2hlclwiXG4gICAgICAgIHR5cGU9XCJidXR0b25cIlxuICAgICAgICAoY2xpY2spPVwiY3VycmVudERlY2FkZSgpXCJcbiAgICAgICAgW2F0dHIuYXJpYS1sYWJlbF09XCJjb21tb25TdHJpbmdzLmtleXMuZGF0ZXBpY2tlckN1cnJlbnREZWNhZGVcIlxuICAgICAgPlxuICAgICAgICA8Y2RzLWljb24gc2hhcGU9XCJldmVudFwiIFthdHRyLnRpdGxlXT1cImNvbW1vblN0cmluZ3Mua2V5cy5kYXRlcGlja2VyQ3VycmVudERlY2FkZVwiPjwvY2RzLWljb24+XG4gICAgICA8L2J1dHRvbj5cbiAgICAgIDxidXR0b25cbiAgICAgICAgY2xhc3M9XCJjYWxlbmRhci1idG4gc3dpdGNoZXJcIlxuICAgICAgICB0eXBlPVwiYnV0dG9uXCJcbiAgICAgICAgKGNsaWNrKT1cIm5leHREZWNhZGUoKVwiXG4gICAgICAgIFthdHRyLmFyaWEtbGFiZWxdPVwiY29tbW9uU3RyaW5ncy5rZXlzLmRhdGVwaWNrZXJOZXh0RGVjYWRlXCJcbiAgICAgID5cbiAgICAgICAgPGNkcy1pY29uIHNoYXBlPVwiYW5nbGVcIiBkaXJlY3Rpb249XCJyaWdodFwiIFthdHRyLnRpdGxlXT1cImNvbW1vblN0cmluZ3Mua2V5cy5kYXRlcGlja2VyTmV4dERlY2FkZVwiPjwvY2RzLWljb24+XG4gICAgICA8L2J1dHRvbj5cbiAgICA8L2Rpdj5cbiAgICA8ZGl2IGNsYXNzPVwieWVhcnNcIj5cbiAgICAgIDxidXR0b25cbiAgICAgICAgKm5nRm9yPVwibGV0IHllYXIgb2YgeWVhclJhbmdlTW9kZWwueWVhclJhbmdlXCJcbiAgICAgICAgdHlwZT1cImJ1dHRvblwiXG4gICAgICAgIGNsYXNzPVwiY2FsZW5kYXItYnRuIHllYXJcIlxuICAgICAgICBbYXR0ci50YWJpbmRleF09XCJnZXRUYWJJbmRleCh5ZWFyKVwiXG4gICAgICAgIFtjbGFzcy5pcy1zZWxlY3RlZF09XCJ5ZWFyID09PSBjYWxlbmRhclllYXJcIlxuICAgICAgICAoY2xpY2spPVwiY2hhbmdlWWVhcih5ZWFyKVwiXG4gICAgICA+XG4gICAgICAgIHt7IHllYXIgfX1cbiAgICAgIDwvYnV0dG9uPlxuICAgIDwvZGl2PlxuICBgLFxuICBob3N0OiB7XG4gICAgJ1tjbGFzcy55ZWFycGlja2VyXSc6ICd0cnVlJyxcbiAgICByb2xlOiAnYXBwbGljYXRpb24nLFxuICB9LFxufSlcbmV4cG9ydCBjbGFzcyBDbHJZZWFycGlja2VyIGltcGxlbWVudHMgQWZ0ZXJWaWV3SW5pdCB7XG4gIC8qKlxuICAgKiBZZWFyUmFuZ2VNb2RlbCB3aGljaCBpcyB1c2VkIHRvIGJ1aWxkIHRoZSBZZWFyUGlja2VyIHZpZXcuXG4gICAqL1xuICB5ZWFyUmFuZ2VNb2RlbDogWWVhclJhbmdlTW9kZWw7XG5cbiAgLyoqXG4gICAqIEtlZXBzIHRyYWNrIG9mIHRoZSBjdXJyZW50IGZvY3VzZWQgeWVhci5cbiAgICovXG4gIHByaXZhdGUgX2ZvY3VzZWRZZWFyOiBudW1iZXI7XG5cbiAgY29uc3RydWN0b3IoXG4gICAgcHJpdmF0ZSBfZGF0ZU5hdmlnYXRpb25TZXJ2aWNlOiBEYXRlTmF2aWdhdGlvblNlcnZpY2UsXG4gICAgcHJpdmF0ZSBfdmlld01hbmFnZXJTZXJ2aWNlOiBWaWV3TWFuYWdlclNlcnZpY2UsXG4gICAgcHJpdmF0ZSBfZGF0ZXBpY2tlckZvY3VzU2VydmljZTogRGF0ZXBpY2tlckZvY3VzU2VydmljZSxcbiAgICBwcml2YXRlIF9lbFJlZjogRWxlbWVudFJlZjxIVE1MRWxlbWVudD4sXG4gICAgcHVibGljIGNvbW1vblN0cmluZ3M6IENsckNvbW1vblN0cmluZ3NTZXJ2aWNlXG4gICkge1xuICAgIHRoaXMueWVhclJhbmdlTW9kZWwgPSBuZXcgWWVhclJhbmdlTW9kZWwodGhpcy5jYWxlbmRhclllYXIpO1xuICAgIHRoaXMuX2ZvY3VzZWRZZWFyID0gdGhpcy5jYWxlbmRhclllYXI7XG4gIH1cblxuICAvKipcbiAgICogR2V0cyB0aGUgeWVhciB3aGljaCB0aGUgdXNlciBpcyBjdXJyZW50bHkgb24uXG4gICAqL1xuICBnZXQgY2FsZW5kYXJZZWFyKCk6IG51bWJlciB7XG4gICAgcmV0dXJuIHRoaXMuX2RhdGVOYXZpZ2F0aW9uU2VydmljZS5kaXNwbGF5ZWRDYWxlbmRhci55ZWFyO1xuICB9XG5cbiAgLyoqXG4gICAqIEZvY3VzZXMgb24gdGhlIGN1cnJlbnQgY2FsZW5kYXIgeWVhciB3aGVuIHRoZSBWaWV3IGlzIGluaXRpYWxpemVkLlxuICAgKi9cbiAgbmdBZnRlclZpZXdJbml0KCkge1xuICAgIHRoaXMuX2RhdGVwaWNrZXJGb2N1c1NlcnZpY2UuZm9jdXNDZWxsKHRoaXMuX2VsUmVmKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBIYW5kbGVzIHRoZSBLZXlib2FyZCBhcnJvdyBuYXZpZ2F0aW9uIGZvciB0aGUgeWVhcnBpY2tlci5cbiAgICovXG4gIEBIb3N0TGlzdGVuZXIoJ2tleWRvd24nLCBbJyRldmVudCddKVxuICBvbktleURvd24oZXZlbnQ6IEtleWJvYXJkRXZlbnQpIHtcbiAgICAvLyBOT1RFOiBEaWRuJ3QgbW92ZSB0aGlzIHRvIHRoZSBkYXRlIG5hdmlnYXRpb24gc2VydmljZSBiZWNhdXNlXG4gICAgLy8gdGhlIGxvZ2ljIGlzIGZhaXJseSBzaW1wbGUgYW5kIGl0IGRpZG4ndCBtYWtlIHNlbnNlIGZvciBtZVxuICAgIC8vIHRvIGNyZWF0ZSBleHRyYSBvYnNlcnZhYmxlcyBqdXN0IHRvIG1vdmUgdGhpcyBsb2dpYyB0byB0aGUgc2VydmljZS5cbiAgICBpZiAoZXZlbnQpIHtcbiAgICAgIGNvbnN0IGtleSA9IG5vcm1hbGl6ZUtleShldmVudC5rZXkpO1xuICAgICAgaWYgKGtleSA9PT0gS2V5cy5BcnJvd1VwKSB7XG4gICAgICAgIGV2ZW50LnByZXZlbnREZWZhdWx0KCk7XG4gICAgICAgIHRoaXMuaW5jcmVtZW50Rm9jdXNZZWFyQnkoLTEpO1xuICAgICAgfSBlbHNlIGlmIChrZXkgPT09IEtleXMuQXJyb3dEb3duKSB7XG4gICAgICAgIGV2ZW50LnByZXZlbnREZWZhdWx0KCk7XG4gICAgICAgIHRoaXMuaW5jcmVtZW50Rm9jdXNZZWFyQnkoMSk7XG4gICAgICB9IGVsc2UgaWYgKGtleSA9PT0gS2V5cy5BcnJvd1JpZ2h0KSB7XG4gICAgICAgIGV2ZW50LnByZXZlbnREZWZhdWx0KCk7XG4gICAgICAgIHRoaXMuaW5jcmVtZW50Rm9jdXNZZWFyQnkoNSk7XG4gICAgICB9IGVsc2UgaWYgKGtleSA9PT0gS2V5cy5BcnJvd0xlZnQpIHtcbiAgICAgICAgZXZlbnQucHJldmVudERlZmF1bHQoKTtcbiAgICAgICAgdGhpcy5pbmNyZW1lbnRGb2N1c1llYXJCeSgtNSk7XG4gICAgICB9XG4gICAgfVxuICB9XG5cbiAgLyoqXG4gICAqIENhbGxzIHRoZSBEYXRlTmF2aWdhdGlvblNlcnZpY2UgdG8gdXBkYXRlIHRoZSB5ZWFyIHZhbHVlIG9mIHRoZSBjYWxlbmRhci5cbiAgICogQWxzbyBjaGFuZ2VzIHRoZSB2aWV3IHRvIHRoZSBkYXlwaWNrZXIuXG4gICAqL1xuICBjaGFuZ2VZZWFyKHllYXI6IG51bWJlcik6IHZvaWQge1xuICAgIHRoaXMuX2RhdGVOYXZpZ2F0aW9uU2VydmljZS5jaGFuZ2VZZWFyKHllYXIpO1xuICAgIHRoaXMuX3ZpZXdNYW5hZ2VyU2VydmljZS5jaGFuZ2VUb0RheVZpZXcoKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBVcGRhdGVzIHRoZSBZZWFyUmFuZ2VNb2RlbCB0byB0aGUgcHJldmlvdXMgZGVjYWRlLlxuICAgKi9cbiAgcHJldmlvdXNEZWNhZGUoKTogdm9pZCB7XG4gICAgdGhpcy55ZWFyUmFuZ2VNb2RlbCA9IHRoaXMueWVhclJhbmdlTW9kZWwucHJldmlvdXNEZWNhZGUoKTtcbiAgICAvLyBZZWFyIGluIHRoZSB5ZWFycGlja2VyIGlzIG5vdCBmb2N1c2VkIGJlY2F1c2Ugd2hpbGUgbmF2aWdhdGluZyB0byBhIGRpZmZlcmVudCBkZWNhZGUsXG4gICAgLy8geW91IHdhbnQgdGhlIGZvY3VzIHRvIHJlbWFpbiBvbiB0aGUgZGVjYWRlIHN3aXRjaGVyIGFycm93cy5cbiAgfVxuXG4gIC8qKlxuICAgKiBVcGRhdGVzIHRoZSBZZWFyUmFuZ2VNb2RlbCB0byB0aGUgY3VycmVudCBkZWNhZGUuXG4gICAqL1xuICBjdXJyZW50RGVjYWRlKCk6IHZvaWQge1xuICAgIGlmICghdGhpcy55ZWFyUmFuZ2VNb2RlbC5pblJhbmdlKHRoaXMuX2RhdGVOYXZpZ2F0aW9uU2VydmljZS50b2RheS55ZWFyKSkge1xuICAgICAgdGhpcy55ZWFyUmFuZ2VNb2RlbCA9IHRoaXMueWVhclJhbmdlTW9kZWwuY3VycmVudERlY2FkZSgpO1xuICAgIH1cbiAgICB0aGlzLl9kYXRlcGlja2VyRm9jdXNTZXJ2aWNlLmZvY3VzQ2VsbCh0aGlzLl9lbFJlZik7XG4gIH1cblxuICAvKipcbiAgICogVXBkYXRlcyB0aGUgWWVhclJhbmdlTW9kZWwgdG8gdGhlIG5leHQgZGVjYWRlLlxuICAgKi9cbiAgbmV4dERlY2FkZSgpOiB2b2lkIHtcbiAgICB0aGlzLnllYXJSYW5nZU1vZGVsID0gdGhpcy55ZWFyUmFuZ2VNb2RlbC5uZXh0RGVjYWRlKCk7XG4gICAgLy8gWWVhciBpbiB0aGUgeWVhcnBpY2tlciBpcyBub3QgZm9jdXNlZCBiZWNhdXNlIHdoaWxlIG5hdmlnYXRpbmcgdG8gYSBkaWZmZXJlbnQgZGVjYWRlLFxuICAgIC8vIHlvdSB3YW50IHRoZSBmb2N1cyB0byByZW1haW4gb24gdGhlIGRlY2FkZSBzd2l0Y2hlciBhcnJvd3MuXG4gIH1cblxuICAvKipcbiAgICogQ29tcGFyZXMgdGhlIHllYXIgcGFzc2VkIHRvIHRoZSBmb2N1c2VkIHllYXIgYW5kIHJldHVybnMgdGhlIHRhYiBpbmRleC5cbiAgICovXG4gIGdldFRhYkluZGV4KHllYXI6IG51bWJlcik6IG51bWJlciB7XG4gICAgaWYgKCF0aGlzLnllYXJSYW5nZU1vZGVsLmluUmFuZ2UodGhpcy5fZm9jdXNlZFllYXIpKSB7XG4gICAgICBpZiAodGhpcy55ZWFyUmFuZ2VNb2RlbC5pblJhbmdlKHRoaXMuY2FsZW5kYXJZZWFyKSkge1xuICAgICAgICB0aGlzLl9mb2N1c2VkWWVhciA9IHRoaXMuY2FsZW5kYXJZZWFyO1xuICAgICAgfSBlbHNlIHtcbiAgICAgICAgdGhpcy5fZm9jdXNlZFllYXIgPSB0aGlzLnllYXJSYW5nZU1vZGVsLm1pZGRsZVllYXI7XG4gICAgICB9XG4gICAgfVxuICAgIHJldHVybiB0aGlzLl9mb2N1c2VkWWVhciA9PT0geWVhciA/IDAgOiAtMTtcbiAgfVxuXG4gIC8qKlxuICAgKiBJbmNyZW1lbnRzIHRoZSBmb2N1cyB5ZWFyIGJ5IHRoZSB2YWx1ZSBwYXNzZWQuIFVwZGF0ZXMgdGhlIFllYXJSYW5nZU1vZGVsIGlmIHRoZVxuICAgKiBuZXcgdmFsdWUgaXMgbm90IGluIHRoZSBjdXJyZW50IGRlY2FkZS5cbiAgICovXG4gIHByaXZhdGUgaW5jcmVtZW50Rm9jdXNZZWFyQnkodmFsdWU6IG51bWJlcik6IHZvaWQge1xuICAgIHRoaXMuX2ZvY3VzZWRZZWFyID0gdGhpcy5fZm9jdXNlZFllYXIgKyB2YWx1ZTtcbiAgICBpZiAoIXRoaXMueWVhclJhbmdlTW9kZWwuaW5SYW5nZSh0aGlzLl9mb2N1c2VkWWVhcikpIHtcbiAgICAgIGlmICh2YWx1ZSA+IDApIHtcbiAgICAgICAgdGhpcy55ZWFyUmFuZ2VNb2RlbCA9IHRoaXMueWVhclJhbmdlTW9kZWwubmV4dERlY2FkZSgpO1xuICAgICAgfSBlbHNlIHtcbiAgICAgICAgdGhpcy55ZWFyUmFuZ2VNb2RlbCA9IHRoaXMueWVhclJhbmdlTW9kZWwucHJldmlvdXNEZWNhZGUoKTtcbiAgICAgIH1cbiAgICB9XG4gICAgdGhpcy5fZGF0ZXBpY2tlckZvY3VzU2VydmljZS5mb2N1c0NlbGwodGhpcy5fZWxSZWYpO1xuICB9XG59XG4iXX0=
|
|
299
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoieWVhcnBpY2tlci5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2FuZ3VsYXIvc3JjL2Zvcm1zL2RhdGVwaWNrZXIveWVhcnBpY2tlci50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQTs7Ozs7R0FLRztBQUVILE9BQU8sRUFBaUIsU0FBUyxFQUFjLFlBQVksRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUVuRixPQUFPLEVBQUUsSUFBSSxFQUFFLE1BQU0sNkJBQTZCLENBQUM7QUFDbkQsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLGtDQUFrQyxDQUFDO0FBRWhFLE9BQU8sRUFBRSxjQUFjLEVBQUUsTUFBTSwwQkFBMEIsQ0FBQzs7Ozs7Ozs7QUFvRTFELE1BQU0sT0FBTyxhQUFhO0lBV3hCLFlBQ1Usc0JBQTZDLEVBQzdDLG1CQUF1QyxFQUN2Qyx1QkFBK0MsRUFDL0MsTUFBK0IsRUFDaEMsYUFBc0M7UUFKckMsMkJBQXNCLEdBQXRCLHNCQUFzQixDQUF1QjtRQUM3Qyx3QkFBbUIsR0FBbkIsbUJBQW1CLENBQW9CO1FBQ3ZDLDRCQUF1QixHQUF2Qix1QkFBdUIsQ0FBd0I7UUFDL0MsV0FBTSxHQUFOLE1BQU0sQ0FBeUI7UUFDaEMsa0JBQWEsR0FBYixhQUFhLENBQXlCO1FBRTdDLElBQUksQ0FBQyxjQUFjLEdBQUcsSUFBSSxjQUFjLENBQUMsSUFBSSxDQUFDLFlBQVksQ0FBQyxDQUFDO1FBQzVELElBQUksQ0FBQyxZQUFZLEdBQUcsSUFBSSxDQUFDLFlBQVksQ0FBQztJQUN4QyxDQUFDO0lBRUQsSUFBSSxpQkFBaUI7UUFDbkIsT0FBTyxJQUFJLENBQUMsc0JBQXNCLENBQUMsV0FBVyxFQUFFLElBQUksQ0FBQztJQUN2RCxDQUFDO0lBRUQsSUFBSSxlQUFlO1FBQ2pCLE9BQU8sSUFBSSxDQUFDLHNCQUFzQixDQUFDLGNBQWMsRUFBRSxJQUFJLENBQUM7SUFDMUQsQ0FBQztJQUVEOztPQUVHO0lBQ0gsSUFB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LCJzb3VyY2VzQ29udGVudCI6WyIvKlxuICogQ29weXJpZ2h0IChjKSAyMDE2LTIwMjUgQnJvYWRjb20uIEFsbCBSaWdodHMgUmVzZXJ2ZWQuXG4gKiBUaGUgdGVybSBcIkJyb2FkY29tXCIgcmVmZXJzIHRvIEJyb2FkY29tIEluYy4gYW5kL29yIGl0cyBzdWJzaWRpYXJpZXMuXG4gKiBUaGlzIHNvZnR3YXJlIGlzIHJlbGVhc2VkIHVuZGVyIE1JVCBsaWNlbnNlLlxuICogVGhlIGZ1bGwgbGljZW5zZSBpbmZvcm1hdGlvbiBjYW4gYmUgZm91bmQgaW4gTElDRU5TRSBpbiB0aGUgcm9vdCBkaXJlY3Rvcnkgb2YgdGhpcyBwcm9qZWN0LlxuICovXG5cbmltcG9ydCB7IEFmdGVyVmlld0luaXQsIENvbXBvbmVudCwgRWxlbWVudFJlZiwgSG9zdExpc3RlbmVyIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5cbmltcG9ydCB7IEtleXMgfSBmcm9tICcuLi8uLi91dGlscy9lbnVtcy9rZXlzLmVudW0nO1xuaW1wb3J0IHsgbm9ybWFsaXplS2V5IH0gZnJvbSAnLi4vLi4vdXRpbHMvZm9jdXMva2V5LWZvY3VzL3V0aWwnO1xuaW1wb3J0IHsgQ2xyQ29tbW9uU3RyaW5nc1NlcnZpY2UgfSBmcm9tICcuLi8uLi91dGlscy9pMThuL2NvbW1vbi1zdHJpbmdzLnNlcnZpY2UnO1xuaW1wb3J0IHsgWWVhclJhbmdlTW9kZWwgfSBmcm9tICcuL21vZGVsL3llYXItcmFuZ2UubW9kZWwnO1xuaW1wb3J0IHsgRGF0ZU5hdmlnYXRpb25TZXJ2aWNlIH0gZnJvbSAnLi9wcm92aWRlcnMvZGF0ZS1uYXZpZ2F0aW9uLnNlcnZpY2UnO1xuaW1wb3J0IHsgRGF0ZXBpY2tlckZvY3VzU2VydmljZSB9IGZyb20gJy4vcHJvdmlkZXJzL2RhdGVwaWNrZXItZm9jdXMuc2VydmljZSc7XG5pbXBvcnQgeyBWaWV3TWFuYWdlclNlcnZpY2UgfSBmcm9tICcuL3Byb3ZpZGVycy92aWV3LW1hbmFnZXIuc2VydmljZSc7XG5cbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ2Nsci15ZWFycGlja2VyJyxcbiAgdGVtcGxhdGU6IGBcbiAgICA8ZGl2IGNsYXNzPVwiY2FsZW5kYXItaGVhZGVyXCI+XG4gICAgICA8ZGl2IGNsYXNzPVwiY2FsZW5kYXItcGlja2Vyc1wiPlxuICAgICAgICA8YnV0dG9uIGNsYXNzPVwiY2FsZW5kYXItYnRuIHllYXJwaWNrZXItdHJpZ2dlciB5ZWFyLXJhbmdlXCIgdHlwZT1cImJ1dHRvblwiIChjbGljayk9XCJjaGFuZ2VUb0RheVZpZXcoKVwiPlxuICAgICAgICAgIHt7IHllYXJSYW5nZU1vZGVsLnllYXJSYW5nZVswXSB9fSAtIHt7IHllYXJSYW5nZU1vZGVsLnllYXJSYW5nZVt5ZWFyUmFuZ2VNb2RlbC55ZWFyUmFuZ2UubGVuZ3RoIC0gMV0gfX1cbiAgICAgICAgPC9idXR0b24+XG4gICAgICA8L2Rpdj5cbiAgICAgIDxkaXYgY2xhc3M9XCJ5ZWFyLXN3aXRjaGVyc1wiPlxuICAgICAgICA8YnV0dG9uXG4gICAgICAgICAgY2xhc3M9XCJjYWxlbmRhci1idG4gc3dpdGNoZXJcIlxuICAgICAgICAgIHR5cGU9XCJidXR0b25cIlxuICAgICAgICAgIChjbGljayk9XCJwcmV2aW91c0RlY2FkZSgpXCJcbiAgICAgICAgICBbYXR0ci5hcmlhLWxhYmVsXT1cImNvbW1vblN0cmluZ3Mua2V5cy5kYXRlcGlja2VyUHJldmlvdXNEZWNhZGVcIlxuICAgICAgICA+XG4gICAgICAgICAgPGNkcy1pY29uXG4gICAgICAgICAgICBzaGFwZT1cImFuZ2xlXCJcbiAgICAgICAgICAgIGRpcmVjdGlvbj1cImxlZnRcIlxuICAgICAgICAgICAgW2F0dHIudGl0bGVdPVwiY29tbW9uU3RyaW5ncy5rZXlzLmRhdGVwaWNrZXJQcmV2aW91c0RlY2FkZVwiXG4gICAgICAgICAgPjwvY2RzLWljb24+XG4gICAgICAgIDwvYnV0dG9uPlxuICAgICAgICA8YnV0dG9uXG4gICAgICAgICAgY2xhc3M9XCJjYWxlbmRhci1idG4gc3dpdGNoZXJcIlxuICAgICAgICAgIHR5cGU9XCJidXR0b25cIlxuICAgICAgICAgIChjbGljayk9XCJjdXJyZW50RGVjYWRlKClcIlxuICAgICAgICAgIFthdHRyLmFyaWEtbGFiZWxdPVwiY29tbW9uU3RyaW5ncy5rZXlzLmRhdGVwaWNrZXJDdXJyZW50RGVjYWRlXCJcbiAgICAgICAgPlxuICAgICAgICAgIDxjZHMtaWNvbiBzaGFwZT1cImV2ZW50XCIgW2F0dHIudGl0bGVdPVwiY29tbW9uU3RyaW5ncy5rZXlzLmRhdGVwaWNrZXJDdXJyZW50RGVjYWRlXCI+PC9jZHMtaWNvbj5cbiAgICAgICAgPC9idXR0b24+XG4gICAgICAgIDxidXR0b25cbiAgICAgICAgICBjbGFzcz1cImNhbGVuZGFyLWJ0biBzd2l0Y2hlclwiXG4gICAgICAgICAgdHlwZT1cImJ1dHRvblwiXG4gICAgICAgICAgKGNsaWNrKT1cIm5leHREZWNhZGUoKVwiXG4gICAgICAgICAgW2F0dHIuYXJpYS1sYWJlbF09XCJjb21tb25TdHJpbmdzLmtleXMuZGF0ZXBpY2tlck5leHREZWNhZGVcIlxuICAgICAgICA+XG4gICAgICAgICAgPGNkcy1pY29uIHNoYXBlPVwiYW5nbGVcIiBkaXJlY3Rpb249XCJyaWdodFwiIFthdHRyLnRpdGxlXT1cImNvbW1vblN0cmluZ3Mua2V5cy5kYXRlcGlja2VyTmV4dERlY2FkZVwiPjwvY2RzLWljb24+XG4gICAgICAgIDwvYnV0dG9uPlxuICAgICAgPC9kaXY+XG4gICAgPC9kaXY+XG5cbiAgICA8ZGl2IGNsYXNzPVwieWVhcnNcIj5cbiAgICAgIDxidXR0b25cbiAgICAgICAgKm5nRm9yPVwibGV0IHllYXIgb2YgeWVhclJhbmdlTW9kZWwueWVhclJhbmdlXCJcbiAgICAgICAgdHlwZT1cImJ1dHRvblwiXG4gICAgICAgIGNsYXNzPVwiY2FsZW5kYXItYnRuIHllYXJcIlxuICAgICAgICBbYXR0ci50YWJpbmRleF09XCJnZXRUYWJJbmRleCh5ZWFyKVwiXG4gICAgICAgIFtjbGFzcy5pcy1zZWxlY3RlZF09XCJ5ZWFyID09PSBzZWxlY3RlZFN0YXJ0WWVhciB8fCB5ZWFyID09PSBzZWxlY3RlZEVuZFllYXJcIlxuICAgICAgICBbY2xhc3MuaXMtc3RhcnQtcmFuZ2VdPVwiZ2V0SXNSYW5nZVN0YXJ0WWVhcih5ZWFyKVwiXG4gICAgICAgIFtjbGFzcy5pcy1lbmQtcmFuZ2VdPVwiZ2V0SXNSYW5nZUVuZFllYXIoeWVhcilcIlxuICAgICAgICBbY2xhc3MuaW4tcmFuZ2VdPVwiaXNJblJhbmdlKHllYXIpXCJcbiAgICAgICAgKGNsaWNrKT1cImNoYW5nZVllYXIoeWVhcilcIlxuICAgICAgICAobW91c2VlbnRlcik9XCJvbkhvdmVyKHllYXIpXCJcbiAgICAgID5cbiAgICAgICAge3sgeWVhciB9fVxuICAgICAgPC9idXR0b24+XG4gICAgPC9kaXY+XG4gIGAsXG4gIGhvc3Q6IHtcbiAgICAnW2NsYXNzLnllYXJwaWNrZXJdJzogJ3RydWUnLFxuICAgIHJvbGU6ICdhcHBsaWNhdGlvbicsXG4gIH0sXG59KVxuZXhwb3J0IGNsYXNzIENsclllYXJwaWNrZXIgaW1wbGVtZW50cyBBZnRlclZpZXdJbml0IHtcbiAgLyoqXG4gICAqIFllYXJSYW5nZU1vZGVsIHdoaWNoIGlzIHVzZWQgdG8gYnVpbGQgdGhlIFllYXJQaWNrZXIgdmlldy5cbiAgICovXG4gIHllYXJSYW5nZU1vZGVsOiBZZWFyUmFuZ2VNb2RlbDtcblxuICAvKipcbiAgICogS2VlcHMgdHJhY2sgb2YgdGhlIGN1cnJlbnQgZm9jdXNlZCB5ZWFyLlxuICAgKi9cbiAgcHJpdmF0ZSBfZm9jdXNlZFllYXI6IG51bWJlcjtcblxuICBjb25zdHJ1Y3RvcihcbiAgICBwcml2YXRlIF9kYXRlTmF2aWdhdGlvblNlcnZpY2U6IERhdGVOYXZpZ2F0aW9uU2VydmljZSxcbiAgICBwcml2YXRlIF92aWV3TWFuYWdlclNlcnZpY2U6IFZpZXdNYW5hZ2VyU2VydmljZSxcbiAgICBwcml2YXRlIF9kYXRlcGlja2VyRm9jdXNTZXJ2aWNlOiBEYXRlcGlja2VyRm9jdXNTZXJ2aWNlLFxuICAgIHByaXZhdGUgX2VsUmVmOiBFbGVtZW50UmVmPEhUTUxFbGVtZW50PixcbiAgICBwdWJsaWMgY29tbW9uU3RyaW5nczogQ2xyQ29tbW9uU3RyaW5nc1NlcnZpY2VcbiAgKSB7XG4gICAgdGhpcy55ZWFyUmFuZ2VNb2RlbCA9IG5ldyBZZWFyUmFuZ2VNb2RlbCh0aGlzLmNhbGVuZGFyWWVhcik7XG4gICAgdGhpcy5fZm9jdXNlZFllYXIgPSB0aGlzLmNhbGVuZGFyWWVhcjtcbiAgfVxuXG4gIGdldCBzZWxlY3RlZFN0YXJ0WWVhcigpOiBudW1iZXIge1xuICAgIHJldHVybiB0aGlzLl9kYXRlTmF2aWdhdGlvblNlcnZpY2Uuc2VsZWN0ZWREYXk/LnllYXI7XG4gIH1cblxuICBnZXQgc2VsZWN0ZWRFbmRZZWFyKCk6IG51bWJlciB7XG4gICAgcmV0dXJuIHRoaXMuX2RhdGVOYXZpZ2F0aW9uU2VydmljZS5zZWxlY3RlZEVuZERheT8ueWVhcjtcbiAgfVxuXG4gIC8qKlxuICAgKiBHZXRzIHRoZSB5ZWFyIHdoaWNoIHRoZSB1c2VyIGlzIGN1cnJlbnRseSBvbi5cbiAgICovXG4gIGdldCBjYWxlbmRhclllYXIoKTogbnVtYmVyIHtcbiAgICByZXR1cm4gdGhpcy5fZGF0ZU5hdmlnYXRpb25TZXJ2aWNlLmRpc3BsYXllZENhbGVuZGFyLnllYXI7XG4gIH1cblxuICBnZXRJc1JhbmdlU3RhcnRZZWFyKHllYXI6IG51bWJlcik6IGJvb2xlYW4ge1xuICAgIHJldHVybiB0aGlzLl9kYXRlTmF2aWdhdGlvblNlcnZpY2UuaXNSYW5nZVBpY2tlciAmJiB5ZWFyID09PSB0aGlzLl9kYXRlTmF2aWdhdGlvblNlcnZpY2Uuc2VsZWN0ZWREYXk/LnllYXI7XG4gIH1cblxuICBnZXRJc1JhbmdlRW5kWWVhcih5ZWFyOiBudW1iZXIpOiBib29sZWFuIHtcbiAgICByZXR1cm4gdGhpcy5fZGF0ZU5hdmlnYXRpb25TZXJ2aWNlLmlzUmFuZ2VQaWNrZXIgJiYgeWVhciA9PT0gdGhpcy5fZGF0ZU5hdmlnYXRpb25TZXJ2aWNlLnNlbGVjdGVkRW5kRGF5Py55ZWFyO1xuICB9XG5cbiAgLyoqXG4gICAqIEZvY3VzZXMgb24gdGhlIGN1cnJlbnQgY2FsZW5kYXIgeWVhciB3aGVuIHRoZSBWaWV3IGlzIGluaXRpYWxpemVkLlxuICAgKi9cbiAgbmdBZnRlclZpZXdJbml0KCkge1xuICAgIHRoaXMuX2RhdGVwaWNrZXJGb2N1c1NlcnZpY2UuZm9jdXNDZWxsKHRoaXMuX2VsUmVmKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBIYW5kbGVzIHRoZSBLZXlib2FyZCBhcnJvdyBuYXZpZ2F0aW9uIGZvciB0aGUgeWVhcnBpY2tlci5cbiAgICovXG4gIEBIb3N0TGlzdGVuZXIoJ2tleWRvd24nLCBbJyRldmVudCddKVxuICBvbktleURvd24oZXZlbnQ6IEtleWJvYXJkRXZlbnQpIHtcbiAgICAvLyBOT1RFOiBEaWRuJ3QgbW92ZSB0aGlzIHRvIHRoZSBkYXRlIG5hdmlnYXRpb24gc2VydmljZSBiZWNhdXNlXG4gICAgLy8gdGhlIGxvZ2ljIGlzIGZhaXJseSBzaW1wbGUgYW5kIGl0IGRpZG4ndCBtYWtlIHNlbnNlIGZvciBtZVxuICAgIC8vIHRvIGNyZWF0ZSBleHRyYSBvYnNlcnZhYmxlcyBqdXN0IHRvIG1vdmUgdGhpcyBsb2dpYyB0byB0aGUgc2VydmljZS5cbiAgICBpZiAoZXZlbnQpIHtcbiAgICAgIGNvbnN0IGtleSA9IG5vcm1hbGl6ZUtleShldmVudC5rZXkpO1xuICAgICAgaWYgKGtleSA9PT0gS2V5cy5BcnJvd1VwKSB7XG4gICAgICAgIGV2ZW50LnByZXZlbnREZWZhdWx0KCk7XG4gICAgICAgIHRoaXMuaW5jcmVtZW50Rm9jdXNZZWFyQnkoLTIpO1xuICAgICAgfSBlbHNlIGlmIChrZXkgPT09IEtleXMuQXJyb3dEb3duKSB7XG4gICAgICAgIGV2ZW50LnByZXZlbnREZWZhdWx0KCk7XG4gICAgICAgIHRoaXMuaW5jcmVtZW50Rm9jdXNZZWFyQnkoMik7XG4gICAgICB9IGVsc2UgaWYgKGtleSA9PT0gS2V5cy5BcnJvd1JpZ2h0KSB7XG4gICAgICAgIGV2ZW50LnByZXZlbnREZWZhdWx0KCk7XG4gICAgICAgIHRoaXMuaW5jcmVtZW50Rm9jdXNZZWFyQnkoMSk7XG4gICAgICB9IGVsc2UgaWYgKGtleSA9PT0gS2V5cy5BcnJvd0xlZnQpIHtcbiAgICAgICAgZXZlbnQucHJldmVudERlZmF1bHQoKTtcbiAgICAgICAgdGhpcy5pbmNyZW1lbnRGb2N1c1llYXJCeSgtMSk7XG4gICAgICB9XG4gICAgfVxuICB9XG5cbiAgLyoqXG4gICAqIENhbGxzIHRoZSBEYXRlTmF2aWdhdGlvblNlcnZpY2UgdG8gdXBkYXRlIHRoZSB5ZWFyIHZhbHVlIG9mIHRoZSBjYWxlbmRhci5cbiAgICogQWxzbyBjaGFuZ2VzIHRoZSB2aWV3IHRvIHRoZSBkYXlwaWNrZXIuXG4gICAqL1xuICBjaGFuZ2VZZWFyKHllYXI6IG51bWJlcik6IHZvaWQge1xuICAgIHRoaXMuX2RhdGVOYXZpZ2F0aW9uU2VydmljZS5jaGFuZ2VZZWFyKHllYXIpO1xuICAgIHRoaXMuX3ZpZXdNYW5hZ2VyU2VydmljZS5jaGFuZ2VUb0RheVZpZXcoKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBDYWxscyB0aGUgRGF0ZU5hdmlnYXRpb25TZXJ2aWNlIHRvIHVwZGF0ZSB0aGUgaG92ZXJlZCB5ZWFyIHZhbHVlIG9mIHRoZSBjYWxlbmRhclxuICAgKi9cbiAgb25Ib3Zlcih5ZWFyOiBudW1iZXIpOiB2b2lkIHtcbiAgICB0aGlzLl9kYXRlTmF2aWdhdGlvblNlcnZpY2UuaG92ZXJlZFllYXIgPSB5ZWFyO1xuICB9XG5cbiAgLyoqXG4gICAqIFVwZGF0ZXMgdGhlIFllYXJSYW5nZU1vZGVsIHRvIHRoZSBwcmV2aW91cyBkZWNhZGUuXG4gICAqL1xuICBwcmV2aW91c0RlY2FkZSgpOiB2b2lkIHtcbiAgICB0aGlzLnllYXJSYW5nZU1vZGVsID0gdGhpcy55ZWFyUmFuZ2VNb2RlbC5wcmV2aW91c0RlY2FkZSgpO1xuICAgIC8vIFllYXIgaW4gdGhlIHllYXJwaWNrZXIgaXMgbm90IGZvY3VzZWQgYmVjYXVzZSB3aGlsZSBuYXZpZ2F0aW5nIHRvIGEgZGlmZmVyZW50IGRlY2FkZSxcbiAgICAvLyB5b3Ugd2FudCB0aGUgZm9jdXMgdG8gcmVtYWluIG9uIHRoZSBkZWNhZGUgc3dpdGNoZXIgYXJyb3dzLlxuICB9XG5cbiAgLyoqXG4gICAqIFVwZGF0ZXMgdGhlIFllYXJSYW5nZU1vZGVsIHRvIHRoZSBjdXJyZW50IGRlY2FkZS5cbiAgICovXG4gIGN1cnJlbnREZWNhZGUoKTogdm9pZCB7XG4gICAgaWYgKCF0aGlzLnllYXJSYW5nZU1vZGVsLmluUmFuZ2UodGhpcy5fZGF0ZU5hdmlnYXRpb25TZXJ2aWNlLnRvZGF5LnllYXIpKSB7XG4gICAgICB0aGlzLnllYXJSYW5nZU1vZGVsID0gdGhpcy55ZWFyUmFuZ2VNb2RlbC5jdXJyZW50RGVjYWRlKCk7XG4gICAgfVxuICAgIHRoaXMuX2RhdGVwaWNrZXJGb2N1c1NlcnZpY2UuZm9jdXNDZWxsKHRoaXMuX2VsUmVmKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBVcGRhdGVzIHRoZSBZZWFyUmFuZ2VNb2RlbCB0byB0aGUgbmV4dCBkZWNhZGUuXG4gICAqL1xuICBuZXh0RGVjYWRlKCk6IHZvaWQge1xuICAgIHRoaXMueWVhclJhbmdlTW9kZWwgPSB0aGlzLnllYXJSYW5nZU1vZGVsLm5leHREZWNhZGUoKTtcbiAgICAvLyBZZWFyIGluIHRoZSB5ZWFycGlja2VyIGlzIG5vdCBmb2N1c2VkIGJlY2F1c2Ugd2hpbGUgbmF2aWdhdGluZyB0byBhIGRpZmZlcmVudCBkZWNhZGUsXG4gICAgLy8geW91IHdhbnQgdGhlIGZvY3VzIHRvIHJlbWFpbiBvbiB0aGUgZGVjYWRlIHN3aXRjaGVyIGFycm93cy5cbiAgfVxuXG4gIC8qKlxuICAgKiBDb21wYXJlcyB0aGUgeWVhciBwYXNzZWQgdG8gdGhlIGZvY3VzZWQgeWVhciBhbmQgcmV0dXJucyB0aGUgdGFiIGluZGV4LlxuICAgKi9cbiAgZ2V0VGFiSW5kZXgoeWVhcjogbnVtYmVyKTogbnVtYmVyIHtcbiAgICBpZiAoIXRoaXMueWVhclJhbmdlTW9kZWwuaW5SYW5nZSh0aGlzLl9mb2N1c2VkWWVhcikpIHtcbiAgICAgIGlmICh0aGlzLnllYXJSYW5nZU1vZGVsLmluUmFuZ2UodGhpcy5jYWxlbmRhclllYXIpKSB7XG4gICAgICAgIHRoaXMuX2ZvY3VzZWRZZWFyID0gdGhpcy5jYWxlbmRhclllYXI7XG4gICAgICB9IGVsc2UgaWYgKHRoaXMueWVhclJhbmdlTW9kZWwuaW5SYW5nZSh0aGlzLnNlbGVjdGVkRW5kWWVhcikpIHtcbiAgICAgICAgdGhpcy5fZm9jdXNlZFllYXIgPSB0aGlzLnNlbGVjdGVkRW5kWWVhcjtcbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIHRoaXMuX2ZvY3VzZWRZZWFyID0gdGhpcy55ZWFyUmFuZ2VNb2RlbC5taWRkbGVZZWFyO1xuICAgICAgfVxuICAgIH1cbiAgICByZXR1cm4gdGhpcy5fZm9jdXNlZFllYXIgPT09IHllYXIgPyAwIDogLTE7XG4gIH1cblxuICAvKipcbiAgICogQXBwbGljYWJsZSBvbmx5IHRvIGRhdGUgcmFuZ2UgcGlja2VyXG4gICAqIENvbXBhcmVzIHRoZSB5ZWFyIHBhc3NlZCBpcyBpbiBiZXR3ZWVuIHRoZSBzdGFydCBhbmQgZW5kIGRhdGUgcmFuZ2VcbiAgICovXG4gIGlzSW5SYW5nZSh5ZWFyOiBudW1iZXIpOiBib29sZWFuIHtcbiAgICBpZiAoIXRoaXMuX2RhdGVOYXZpZ2F0aW9uU2VydmljZS5pc1JhbmdlUGlja2VyKSB7XG4gICAgICByZXR1cm4gZmFsc2U7XG4gICAgfVxuICAgIGlmICh0aGlzLl9kYXRlTmF2aWdhdGlvblNlcnZpY2Uuc2VsZWN0ZWREYXk/LnllYXIgJiYgdGhpcy5zZWxlY3RlZEVuZFllYXIpIHtcbiAgICAgIHJldHVybiB5ZWFyID4gdGhpcy5zZWxlY3RlZFN0YXJ0WWVhciAmJiB5ZWFyIDwgdGhpcy5zZWxlY3RlZEVuZFllYXI7XG4gICAgfSBlbHNlIGlmICh0aGlzLl9kYXRlTmF2aWdhdGlvblNlcnZpY2Uuc2VsZWN0ZWREYXk/LnllYXIgJiYgIXRoaXMuc2VsZWN0ZWRFbmRZZWFyKSB7XG4gICAgICByZXR1cm4geWVhciA+IHRoaXMuc2VsZWN0ZWRTdGFydFllYXIgJiYgeWVhciA8IHRoaXMuX2RhdGVOYXZpZ2F0aW9uU2VydmljZS5ob3ZlcmVkWWVhcjtcbiAgICB9IGVsc2Uge1xuICAgICAgcmV0dXJuIGZhbHNlO1xuICAgIH1cbiAgfVxuXG4gIGNoYW5nZVRvRGF5VmlldygpIHtcbiAgICB0aGlzLl92aWV3TWFuYWdlclNlcnZpY2UuY2hhbmdlVG9EYXlWaWV3KCk7XG4gIH1cblxuICAvKipcbiAgICogSW5jcmVtZW50cyB0aGUgZm9jdXMgeWVhciBieSB0aGUgdmFsdWUgcGFzc2VkLiBVcGRhdGVzIHRoZSBZZWFyUmFuZ2VNb2RlbCBpZiB0aGVcbiAgICogbmV3IHZhbHVlIGlzIG5vdCBpbiB0aGUgY3VycmVudCBkZWNhZGUuXG4gICAqL1xuICBwcml2YXRlIGluY3JlbWVudEZvY3VzWWVhckJ5KHZhbHVlOiBudW1iZXIpOiB2b2lkIHtcbiAgICB0aGlzLl9mb2N1c2VkWWVhciA9IHRoaXMuX2ZvY3VzZWRZZWFyICsgdmFsdWU7XG4gICAgaWYgKCF0aGlzLnllYXJSYW5nZU1vZGVsLmluUmFuZ2UodGhpcy5fZm9jdXNlZFllYXIpKSB7XG4gICAgICBpZiAodmFsdWUgPiAwKSB7XG4gICAgICAgIHRoaXMueWVhclJhbmdlTW9kZWwgPSB0aGlzLnllYXJSYW5nZU1vZGVsLm5leHREZWNhZGUoKTtcbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIHRoaXMueWVhclJhbmdlTW9kZWwgPSB0aGlzLnllYXJSYW5nZU1vZGVsLnByZXZpb3VzRGVjYWRlKCk7XG4gICAgICB9XG4gICAgfVxuICAgIHRoaXMuX2RhdGVwaWNrZXJGb2N1c1NlcnZpY2UuZm9jdXNDZWxsKHRoaXMuX2VsUmVmKTtcbiAgfVxufVxuIl19
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
/*
|
|
2
|
-
* Copyright (c) 2016-
|
|
2
|
+
* Copyright (c) 2016-2025 Broadcom. All Rights Reserved.
|
|
3
3
|
* The term "Broadcom" refers to Broadcom Inc. and/or its subsidiaries.
|
|
4
4
|
* This software is released under MIT license.
|
|
5
5
|
* The full license information can be found in LICENSE in the root directory of this project.
|
|
@@ -12,6 +12,9 @@ import { ControlClassService } from '../common/providers/control-class.service';
|
|
|
12
12
|
import { ControlIdService } from '../common/providers/control-id.service';
|
|
13
13
|
import { NgControlService } from '../common/providers/ng-control.service';
|
|
14
14
|
import { ClrFileInput } from './file-input';
|
|
15
|
+
import { selectFiles } from './file-input.helpers';
|
|
16
|
+
import { ClrFileList } from './file-list';
|
|
17
|
+
import { ClrFileError, ClrFileSuccess } from './file-messages';
|
|
15
18
|
import * as i0 from "@angular/core";
|
|
16
19
|
import * as i1 from "@angular/common";
|
|
17
20
|
import * as i2 from "../../icon/icon";
|
|
@@ -21,28 +24,78 @@ export class ClrFileInputContainer extends ClrAbstractContainer {
|
|
|
21
24
|
super(...arguments);
|
|
22
25
|
this.commonStrings = inject(ClrCommonStringsService);
|
|
23
26
|
}
|
|
27
|
+
get accept() {
|
|
28
|
+
return this.fileInput.elementRef.nativeElement.accept;
|
|
29
|
+
}
|
|
30
|
+
get multiple() {
|
|
31
|
+
return this.fileInput.elementRef.nativeElement.multiple;
|
|
32
|
+
}
|
|
24
33
|
get disabled() {
|
|
25
34
|
return this.fileInput.elementRef.nativeElement.disabled;
|
|
26
35
|
}
|
|
36
|
+
get browseButtonText() {
|
|
37
|
+
const selectionButtonLabel = this.fileList ? undefined : this.fileInput?.selection?.buttonLabel;
|
|
38
|
+
return selectionButtonLabel || this.customButtonLabel || this.commonStrings.keys.browse;
|
|
39
|
+
}
|
|
27
40
|
get browseButtonDescribedBy() {
|
|
28
|
-
return `${this.label?.
|
|
41
|
+
return `${this.label?.forAttr} ${this.fileInput.elementRef.nativeElement.getAttribute('aria-describedby')}`;
|
|
42
|
+
}
|
|
43
|
+
get successMessagePresent() {
|
|
44
|
+
return super.successMessagePresent || !!this.fileSuccessComponent;
|
|
45
|
+
}
|
|
46
|
+
get errorMessagePresent() {
|
|
47
|
+
return super.errorMessagePresent || !!this.fileErrorComponent;
|
|
48
|
+
}
|
|
49
|
+
focusBrowseButton() {
|
|
50
|
+
this.browseButtonElementRef.nativeElement.focus();
|
|
29
51
|
}
|
|
30
52
|
browse() {
|
|
31
|
-
this.fileInput.elementRef
|
|
53
|
+
const fileInputElementRef = this.fileList && this.multiple ? this.fileListFileInputElementRef : this.fileInput.elementRef;
|
|
54
|
+
fileInputElementRef.nativeElement.click();
|
|
32
55
|
}
|
|
33
56
|
clearSelectedFiles() {
|
|
34
57
|
this.fileInput.elementRef.nativeElement.value = '';
|
|
35
58
|
this.fileInput.elementRef.nativeElement.dispatchEvent(new Event('change', { bubbles: true, cancelable: true }));
|
|
36
|
-
this.
|
|
59
|
+
this.focusBrowseButton();
|
|
60
|
+
}
|
|
61
|
+
addFilesToSelection(newFiles) {
|
|
62
|
+
if (!newFiles.length) {
|
|
63
|
+
return;
|
|
64
|
+
}
|
|
65
|
+
// start with new files
|
|
66
|
+
const mergedFiles = [...newFiles];
|
|
67
|
+
// add existing files if a new file doesn't have the same name
|
|
68
|
+
for (const existingFile of this.fileInput.elementRef.nativeElement.files) {
|
|
69
|
+
if (!mergedFiles.some(file => file.name === existingFile.name)) {
|
|
70
|
+
mergedFiles.push(existingFile);
|
|
71
|
+
}
|
|
72
|
+
}
|
|
73
|
+
// update file selection
|
|
74
|
+
selectFiles(this.fileInput.elementRef.nativeElement, mergedFiles);
|
|
37
75
|
}
|
|
38
76
|
}
|
|
39
77
|
ClrFileInputContainer.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.2", ngImport: i0, type: ClrFileInputContainer, deps: null, target: i0.ɵɵFactoryTarget.Component });
|
|
40
|
-
ClrFileInputContainer.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "15.2.2", type: ClrFileInputContainer, selector: "clr-file-input-container", inputs: { customButtonLabel: ["clrButtonLabel", "customButtonLabel"] }, host: { properties: { "class.clr-form-control": "true", "class.clr-form-control-disabled": "disabled", "class.clr-row": "addGrid()" } }, providers: [IfControlStateService, NgControlService, ControlIdService, ControlClassService], queries: [{ propertyName: "fileInput", first: true, predicate: i0.forwardRef(function () { return ClrFileInput; }), descendants: true }], viewQueries: [{ propertyName: "browseButtonElementRef", first: true, predicate: ["browseButton"], descendants: true }], usesInheritance: true, ngImport: i0, template: `
|
|
78
|
+
ClrFileInputContainer.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "15.2.2", type: ClrFileInputContainer, selector: "clr-file-input-container", inputs: { customButtonLabel: ["clrButtonLabel", "customButtonLabel"] }, host: { properties: { "class.clr-form-control": "true", "class.clr-form-control-disabled": "disabled", "class.clr-row": "addGrid()" } }, providers: [IfControlStateService, NgControlService, ControlIdService, ControlClassService], queries: [{ propertyName: "fileInput", first: true, predicate: i0.forwardRef(function () { return ClrFileInput; }), descendants: true }, { propertyName: "fileList", first: true, predicate: i0.forwardRef(function () { return ClrFileList; }), descendants: true }, { propertyName: "fileSuccessComponent", first: true, predicate: ClrFileSuccess, descendants: true }, { propertyName: "fileErrorComponent", first: true, predicate: ClrFileError, descendants: true }], viewQueries: [{ propertyName: "browseButtonElementRef", first: true, predicate: ["browseButton"], descendants: true }, { propertyName: "fileListFileInputElementRef", first: true, predicate: ["fileListFileInput"], descendants: true }], usesInheritance: true, ngImport: i0, template: `
|
|
41
79
|
<ng-content select="label"></ng-content>
|
|
42
80
|
<label *ngIf="!label && addGrid()"></label>
|
|
43
81
|
<div class="clr-control-container" [ngClass]="controlClass()">
|
|
44
82
|
<div class="clr-file-input-wrapper">
|
|
45
83
|
<ng-content select="[clrFileInput]"></ng-content>
|
|
84
|
+
|
|
85
|
+
<!-- file input to handle adding new files to selection when file list is present (prevent replacing selected files on the main file input) -->
|
|
86
|
+
<input
|
|
87
|
+
*ngIf="fileList"
|
|
88
|
+
#fileListFileInput
|
|
89
|
+
type="file"
|
|
90
|
+
class="clr-file-input"
|
|
91
|
+
tabindex="-1"
|
|
92
|
+
aria-hidden="true"
|
|
93
|
+
[accept]="accept"
|
|
94
|
+
[multiple]="multiple"
|
|
95
|
+
[disabled]="disabled"
|
|
96
|
+
(change)="addFilesToSelection(fileListFileInput.files)"
|
|
97
|
+
/>
|
|
98
|
+
|
|
46
99
|
<button
|
|
47
100
|
#browseButton
|
|
48
101
|
type="button"
|
|
@@ -52,12 +105,10 @@ ClrFileInputContainer.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0",
|
|
|
52
105
|
(click)="browse()"
|
|
53
106
|
>
|
|
54
107
|
<cds-icon shape="folder-open"></cds-icon>
|
|
55
|
-
<span class="clr-file-input-browse-button-text">
|
|
56
|
-
{{ fileInput?.selection?.buttonLabel || customButtonLabel || commonStrings.keys.browse }}
|
|
57
|
-
</span>
|
|
108
|
+
<span class="clr-file-input-browse-button-text">{{ browseButtonText }}</span>
|
|
58
109
|
</button>
|
|
59
110
|
<button
|
|
60
|
-
*ngIf="fileInput?.selection?.fileCount"
|
|
111
|
+
*ngIf="!fileList && fileInput?.selection?.fileCount"
|
|
61
112
|
type="button"
|
|
62
113
|
class="btn btn-sm clr-file-input-clear-button"
|
|
63
114
|
[attr.aria-label]="fileInput?.selection?.clearFilesButtonLabel"
|
|
@@ -83,6 +134,12 @@ ClrFileInputContainer.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0",
|
|
|
83
134
|
<ng-content select="clr-control-helper" *ngIf="showHelper"></ng-content>
|
|
84
135
|
<ng-content select="clr-control-error" *ngIf="showInvalid"></ng-content>
|
|
85
136
|
<ng-content select="clr-control-success" *ngIf="showValid"></ng-content>
|
|
137
|
+
|
|
138
|
+
<!-- If this is present, this file input becomes an "advanced" file input. -->
|
|
139
|
+
<ng-container>
|
|
140
|
+
<div class="clr-file-list-break"></div>
|
|
141
|
+
<ng-content select="clr-file-list"></ng-content>
|
|
142
|
+
</ng-container>
|
|
86
143
|
</div>
|
|
87
144
|
`, isInline: true, dependencies: [{ kind: "directive", type: i1.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i2.CdsIconCustomTag, selector: "cds-icon" }, { kind: "directive", type: i3.ClrLabel, selector: "label", inputs: ["id", "for"] }] });
|
|
88
145
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.2", ngImport: i0, type: ClrFileInputContainer, decorators: [{
|
|
@@ -95,6 +152,21 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.2", ngImpor
|
|
|
95
152
|
<div class="clr-control-container" [ngClass]="controlClass()">
|
|
96
153
|
<div class="clr-file-input-wrapper">
|
|
97
154
|
<ng-content select="[clrFileInput]"></ng-content>
|
|
155
|
+
|
|
156
|
+
<!-- file input to handle adding new files to selection when file list is present (prevent replacing selected files on the main file input) -->
|
|
157
|
+
<input
|
|
158
|
+
*ngIf="fileList"
|
|
159
|
+
#fileListFileInput
|
|
160
|
+
type="file"
|
|
161
|
+
class="clr-file-input"
|
|
162
|
+
tabindex="-1"
|
|
163
|
+
aria-hidden="true"
|
|
164
|
+
[accept]="accept"
|
|
165
|
+
[multiple]="multiple"
|
|
166
|
+
[disabled]="disabled"
|
|
167
|
+
(change)="addFilesToSelection(fileListFileInput.files)"
|
|
168
|
+
/>
|
|
169
|
+
|
|
98
170
|
<button
|
|
99
171
|
#browseButton
|
|
100
172
|
type="button"
|
|
@@ -104,12 +176,10 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.2", ngImpor
|
|
|
104
176
|
(click)="browse()"
|
|
105
177
|
>
|
|
106
178
|
<cds-icon shape="folder-open"></cds-icon>
|
|
107
|
-
<span class="clr-file-input-browse-button-text">
|
|
108
|
-
{{ fileInput?.selection?.buttonLabel || customButtonLabel || commonStrings.keys.browse }}
|
|
109
|
-
</span>
|
|
179
|
+
<span class="clr-file-input-browse-button-text">{{ browseButtonText }}</span>
|
|
110
180
|
</button>
|
|
111
181
|
<button
|
|
112
|
-
*ngIf="fileInput?.selection?.fileCount"
|
|
182
|
+
*ngIf="!fileList && fileInput?.selection?.fileCount"
|
|
113
183
|
type="button"
|
|
114
184
|
class="btn btn-sm clr-file-input-clear-button"
|
|
115
185
|
[attr.aria-label]="fileInput?.selection?.clearFilesButtonLabel"
|
|
@@ -135,6 +205,12 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.2", ngImpor
|
|
|
135
205
|
<ng-content select="clr-control-helper" *ngIf="showHelper"></ng-content>
|
|
136
206
|
<ng-content select="clr-control-error" *ngIf="showInvalid"></ng-content>
|
|
137
207
|
<ng-content select="clr-control-success" *ngIf="showValid"></ng-content>
|
|
208
|
+
|
|
209
|
+
<!-- If this is present, this file input becomes an "advanced" file input. -->
|
|
210
|
+
<ng-container>
|
|
211
|
+
<div class="clr-file-list-break"></div>
|
|
212
|
+
<ng-content select="clr-file-list"></ng-content>
|
|
213
|
+
</ng-container>
|
|
138
214
|
</div>
|
|
139
215
|
`,
|
|
140
216
|
host: {
|
|
@@ -150,8 +226,20 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.2", ngImpor
|
|
|
150
226
|
}], fileInput: [{
|
|
151
227
|
type: ContentChild,
|
|
152
228
|
args: [forwardRef(() => ClrFileInput)]
|
|
229
|
+
}], fileList: [{
|
|
230
|
+
type: ContentChild,
|
|
231
|
+
args: [forwardRef(() => ClrFileList)]
|
|
153
232
|
}], browseButtonElementRef: [{
|
|
154
233
|
type: ViewChild,
|
|
155
234
|
args: ['browseButton']
|
|
235
|
+
}], fileListFileInputElementRef: [{
|
|
236
|
+
type: ViewChild,
|
|
237
|
+
args: ['fileListFileInput']
|
|
238
|
+
}], fileSuccessComponent: [{
|
|
239
|
+
type: ContentChild,
|
|
240
|
+
args: [ClrFileSuccess]
|
|
241
|
+
}], fileErrorComponent: [{
|
|
242
|
+
type: ContentChild,
|
|
243
|
+
args: [ClrFileError]
|
|
156
244
|
}] } });
|
|
157
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZmlsZS1pbnB1dC1jb250YWluZXIuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9hbmd1bGFyL3NyYy9mb3Jtcy9maWxlLWlucHV0L2ZpbGUtaW5wdXQtY29udGFpbmVyLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBOzs7OztHQUtHO0FBRUgsT0FBTyxFQUFFLFNBQVMsRUFBRSxZQUFZLEVBQWMsVUFBVSxFQUFFLE1BQU0sRUFBRSxLQUFLLEVBQUUsU0FBUyxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBRTFHLE9BQU8sRUFBRSx1QkFBdUIsRUFBRSxNQUFNLHlDQUF5QyxDQUFDO0FBQ2xGLE9BQU8sRUFBRSxvQkFBb0IsRUFBRSxNQUFNLDhCQUE4QixDQUFDO0FBQ3BFLE9BQU8sRUFBRSxxQkFBcUIsRUFBRSxNQUFNLHFEQUFxRCxDQUFDO0FBQzVGLE9BQU8sRUFBRSxtQkFBbUIsRUFBRSxNQUFNLDJDQUEyQyxDQUFDO0FBQ2hGLE9BQU8sRUFBRSxnQkFBZ0IsRUFBRSxNQUFNLHdDQUF3QyxDQUFDO0FBQzFFLE9BQU8sRUFBRSxnQkFBZ0IsRUFBRSxNQUFNLHdDQUF3QyxDQUFDO0FBQzFFLE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSxjQUFjLENBQUM7Ozs7O0FBMkQ1QyxNQUFNLE9BQU8scUJBQXNCLFNBQVEsb0JBQW9CO0lBekQvRDs7UUE0RHFCLGtCQUFhLEdBQUcsTUFBTSxDQUFDLHVCQUF1QixDQUFDLENBQUM7S0F3QnBFO0lBbEJDLElBQWMsUUFBUTtRQUNwQixPQUFPLElBQUksQ0FBQyxTQUFTLENBQUMsVUFBVSxDQUFDLGFBQWEsQ0FBQyxRQUFRLENBQUM7SUFDMUQsQ0FBQztJQUVELElBQWMsdUJBQXVCO1FBQ25DLE9BQU8sR0FBRyxJQUFJLENBQUMsS0FBSyxFQUFFLE1BQU0sSUFBSSxJQUFJLENBQUMsU0FBUyxDQUFDLFVBQVUsQ0FBQyxhQUFhLENBQUMsWUFBWSxDQUFDLGtCQUFrQixDQUFDLEVBQUUsQ0FBQztJQUM3RyxDQUFDO0lBRVMsTUFBTTtRQUNkLElBQUksQ0FBQyxTQUFTLENBQUMsVUFBVSxDQUFDLGFBQWEsQ0FBQyxLQUFLLEVBQUUsQ0FBQztJQUNsRCxDQUFDO0lBRVMsa0JBQWtCO1FBQzFCLElBQUksQ0FBQyxTQUFTLENBQUMsVUFBVSxDQUFDLGFBQWEsQ0FBQyxLQUFLLEdBQUcsRUFBRSxDQUFDO1FBQ25ELElBQUksQ0FBQyxTQUFTLENBQUMsVUFBVSxDQUFDLGFBQWEsQ0FBQyxhQUFhLENBQUMsSUFBSSxLQUFLLENBQUMsUUFBUSxFQUFFLEVBQUUsT0FBTyxFQUFFLElBQUksRUFBRSxVQUFVLEVBQUUsSUFBSSxFQUFFLENBQUMsQ0FBQyxDQUFDO1FBRWhILElBQUksQ0FBQyxzQkFBc0IsQ0FBQyxhQUFhLENBQUMsS0FBSyxFQUFFLENBQUM7SUFDcEQsQ0FBQzs7a0hBMUJVLHFCQUFxQjtzR0FBckIscUJBQXFCLG9RQUZyQixDQUFDLHFCQUFxQixFQUFFLGdCQUFnQixFQUFFLGdCQUFnQixFQUFFLG1CQUFtQixDQUFDLG9HQU81RCxZQUFZLG1NQTVEakM7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0dBK0NUOzJGQVFVLHFCQUFxQjtrQkF6RGpDLFNBQVM7bUJBQUM7b0JBQ1QsUUFBUSxFQUFFLDBCQUEwQjtvQkFDcEMsUUFBUSxFQUFFOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztHQStDVDtvQkFDRCxJQUFJLEVBQUU7d0JBQ0osMEJBQTBCLEVBQUUsTUFBTTt3QkFDbEMsbUNBQW1DLEVBQUUsVUFBVTt3QkFDL0MsaUJBQWlCLEVBQUUsV0FBVztxQkFDL0I7b0JBQ0QsU0FBUyxFQUFFLENBQUMscUJBQXFCLEVBQUUsZ0JBQWdCLEVBQUUsZ0JBQWdCLEVBQUUsbUJBQW1CLENBQUM7aUJBQzVGOzhCQUUwQixpQkFBaUI7c0JBQXpDLEtBQUs7dUJBQUMsZ0JBQWdCO2dCQUkwQyxTQUFTO3NCQUF6RSxZQUFZO3VCQUFDLFVBQVUsQ0FBQyxHQUFHLEVBQUUsQ0FBQyxZQUFZLENBQUM7Z0JBRVQsc0JBQXNCO3NCQUF4RCxTQUFTO3VCQUFDLGNBQWMiLCJzb3VyY2VzQ29udGVudCI6WyIvKlxuICogQ29weXJpZ2h0IChjKSAyMDE2LTIwMjQgQnJvYWRjb20uIEFsbCBSaWdodHMgUmVzZXJ2ZWQuXG4gKiBUaGUgdGVybSBcIkJyb2FkY29tXCIgcmVmZXJzIHRvIEJyb2FkY29tIEluYy4gYW5kL29yIGl0cyBzdWJzaWRpYXJpZXMuXG4gKiBUaGlzIHNvZnR3YXJlIGlzIHJlbGVhc2VkIHVuZGVyIE1JVCBsaWNlbnNlLlxuICogVGhlIGZ1bGwgbGljZW5zZSBpbmZvcm1hdGlvbiBjYW4gYmUgZm91bmQgaW4gTElDRU5TRSBpbiB0aGUgcm9vdCBkaXJlY3Rvcnkgb2YgdGhpcyBwcm9qZWN0LlxuICovXG5cbmltcG9ydCB7IENvbXBvbmVudCwgQ29udGVudENoaWxkLCBFbGVtZW50UmVmLCBmb3J3YXJkUmVmLCBpbmplY3QsIElucHV0LCBWaWV3Q2hpbGQgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcblxuaW1wb3J0IHsgQ2xyQ29tbW9uU3RyaW5nc1NlcnZpY2UgfSBmcm9tICcuLi8uLi91dGlscy9pMThuL2NvbW1vbi1zdHJpbmdzLnNlcnZpY2UnO1xuaW1wb3J0IHsgQ2xyQWJzdHJhY3RDb250YWluZXIgfSBmcm9tICcuLi9jb21tb24vYWJzdHJhY3QtY29udGFpbmVyJztcbmltcG9ydCB7IElmQ29udHJvbFN0YXRlU2VydmljZSB9IGZyb20gJy4uL2NvbW1vbi9pZi1jb250cm9sLXN0YXRlL2lmLWNvbnRyb2wtc3RhdGUuc2VydmljZSc7XG5pbXBvcnQgeyBDb250cm9sQ2xhc3NTZXJ2aWNlIH0gZnJvbSAnLi4vY29tbW9uL3Byb3ZpZGVycy9jb250cm9sLWNsYXNzLnNlcnZpY2UnO1xuaW1wb3J0IHsgQ29udHJvbElkU2VydmljZSB9IGZyb20gJy4uL2NvbW1vbi9wcm92aWRlcnMvY29udHJvbC1pZC5zZXJ2aWNlJztcbmltcG9ydCB7IE5nQ29udHJvbFNlcnZpY2UgfSBmcm9tICcuLi9jb21tb24vcHJvdmlkZXJzL25nLWNvbnRyb2wuc2VydmljZSc7XG5pbXBvcnQgeyBDbHJGaWxlSW5wdXQgfSBmcm9tICcuL2ZpbGUtaW5wdXQnO1xuXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdjbHItZmlsZS1pbnB1dC1jb250YWluZXInLFxuICB0ZW1wbGF0ZTogYFxuICAgIDxuZy1jb250ZW50IHNlbGVjdD1cImxhYmVsXCI+PC9uZy1jb250ZW50PlxuICAgIDxsYWJlbCAqbmdJZj1cIiFsYWJlbCAmJiBhZGRHcmlkKClcIj48L2xhYmVsPlxuICAgIDxkaXYgY2xhc3M9XCJjbHItY29udHJvbC1jb250YWluZXJcIiBbbmdDbGFzc109XCJjb250cm9sQ2xhc3MoKVwiPlxuICAgICAgPGRpdiBjbGFzcz1cImNsci1maWxlLWlucHV0LXdyYXBwZXJcIj5cbiAgICAgICAgPG5nLWNvbnRlbnQgc2VsZWN0PVwiW2NsckZpbGVJbnB1dF1cIj48L25nLWNvbnRlbnQ+XG4gICAgICAgIDxidXR0b25cbiAgICAgICAgICAjYnJvd3NlQnV0dG9uXG4gICAgICAgICAgdHlwZT1cImJ1dHRvblwiXG4gICAgICAgICAgY2xhc3M9XCJidG4gYnRuLXNtIGNsci1maWxlLWlucHV0LWJyb3dzZS1idXR0b25cIlxuICAgICAgICAgIFthdHRyLmFyaWEtZGVzY3JpYmVkYnldPVwiYnJvd3NlQnV0dG9uRGVzY3JpYmVkQnlcIlxuICAgICAgICAgIFtkaXNhYmxlZF09XCJkaXNhYmxlZFwiXG4gICAgICAgICAgKGNsaWNrKT1cImJyb3dzZSgpXCJcbiAgICAgICAgPlxuICAgICAgICAgIDxjZHMtaWNvbiBzaGFwZT1cImZvbGRlci1vcGVuXCI+PC9jZHMtaWNvbj5cbiAgICAgICAgICA8c3BhbiBjbGFzcz1cImNsci1maWxlLWlucHV0LWJyb3dzZS1idXR0b24tdGV4dFwiPlxuICAgICAgICAgICAge3sgZmlsZUlucHV0Py5zZWxlY3Rpb24/LmJ1dHRvbkxhYmVsIHx8IGN1c3RvbUJ1dHRvbkxhYmVsIHx8IGNvbW1vblN0cmluZ3Mua2V5cy5icm93c2UgfX1cbiAgICAgICAgICA8L3NwYW4+XG4gICAgICAgIDwvYnV0dG9uPlxuICAgICAgICA8YnV0dG9uXG4gICAgICAgICAgKm5nSWY9XCJmaWxlSW5wdXQ/LnNlbGVjdGlvbj8uZmlsZUNvdW50XCJcbiAgICAgICAgICB0eXBlPVwiYnV0dG9uXCJcbiAgICAgICAgICBjbGFzcz1cImJ0biBidG4tc20gY2xyLWZpbGUtaW5wdXQtY2xlYXItYnV0dG9uXCJcbiAgICAgICAgICBbYXR0ci5hcmlhLWxhYmVsXT1cImZpbGVJbnB1dD8uc2VsZWN0aW9uPy5jbGVhckZpbGVzQnV0dG9uTGFiZWxcIlxuICAgICAgICAgIChjbGljayk9XCJjbGVhclNlbGVjdGVkRmlsZXMoKVwiXG4gICAgICAgID5cbiAgICAgICAgICA8Y2RzLWljb24gc2hhcGU9XCJ0aW1lc1wiIHN0YXR1cz1cIm5ldXRyYWxcIiBzaXplPVwibWRcIj48L2Nkcy1pY29uPlxuICAgICAgICA8L2J1dHRvbj5cbiAgICAgICAgPGNkcy1pY29uXG4gICAgICAgICAgKm5nSWY9XCJzaG93SW52YWxpZFwiXG4gICAgICAgICAgY2xhc3M9XCJjbHItdmFsaWRhdGUtaWNvblwiXG4gICAgICAgICAgc2hhcGU9XCJleGNsYW1hdGlvbi1jaXJjbGVcIlxuICAgICAgICAgIHN0YXR1cz1cImRhbmdlclwiXG4gICAgICAgICAgYXJpYS1oaWRkZW49XCJ0cnVlXCJcbiAgICAgICAgPjwvY2RzLWljb24+XG4gICAgICAgIDxjZHMtaWNvblxuICAgICAgICAgICpuZ0lmPVwic2hvd1ZhbGlkXCJcbiAgICAgICAgICBjbGFzcz1cImNsci12YWxpZGF0ZS1pY29uXCJcbiAgICAgICAgICBzaGFwZT1cImNoZWNrLWNpcmNsZVwiXG4gICAgICAgICAgc3RhdHVzPVwic3VjY2Vzc1wiXG4gICAgICAgICAgYXJpYS1oaWRkZW49XCJ0cnVlXCJcbiAgICAgICAgPjwvY2RzLWljb24+XG4gICAgICA8L2Rpdj5cbiAgICAgIDxuZy1jb250ZW50IHNlbGVjdD1cImNsci1jb250cm9sLWhlbHBlclwiICpuZ0lmPVwic2hvd0hlbHBlclwiPjwvbmctY29udGVudD5cbiAgICAgIDxuZy1jb250ZW50IHNlbGVjdD1cImNsci1jb250cm9sLWVycm9yXCIgKm5nSWY9XCJzaG93SW52YWxpZFwiPjwvbmctY29udGVudD5cbiAgICAgIDxuZy1jb250ZW50IHNlbGVjdD1cImNsci1jb250cm9sLXN1Y2Nlc3NcIiAqbmdJZj1cInNob3dWYWxpZFwiPjwvbmctY29udGVudD5cbiAgICA8L2Rpdj5cbiAgYCxcbiAgaG9zdDoge1xuICAgICdbY2xhc3MuY2xyLWZvcm0tY29udHJvbF0nOiAndHJ1ZScsXG4gICAgJ1tjbGFzcy5jbHItZm9ybS1jb250cm9sLWRpc2FibGVkXSc6ICdkaXNhYmxlZCcsXG4gICAgJ1tjbGFzcy5jbHItcm93XSc6ICdhZGRHcmlkKCknLFxuICB9LFxuICBwcm92aWRlcnM6IFtJZkNvbnRyb2xTdGF0ZVNlcnZpY2UsIE5nQ29udHJvbFNlcnZpY2UsIENvbnRyb2xJZFNlcnZpY2UsIENvbnRyb2xDbGFzc1NlcnZpY2VdLFxufSlcbmV4cG9ydCBjbGFzcyBDbHJGaWxlSW5wdXRDb250YWluZXIgZXh0ZW5kcyBDbHJBYnN0cmFjdENvbnRhaW5lciB7XG4gIEBJbnB1dCgnY2xyQnV0dG9uTGFiZWwnKSBjdXN0b21CdXR0b25MYWJlbDogc3RyaW5nO1xuXG4gIHByb3RlY3RlZCByZWFkb25seSBjb21tb25TdHJpbmdzID0gaW5qZWN0KENsckNvbW1vblN0cmluZ3NTZXJ2aWNlKTtcblxuICBAQ29udGVudENoaWxkKGZvcndhcmRSZWYoKCkgPT4gQ2xyRmlsZUlucHV0KSkgcHJvdGVjdGVkIHJlYWRvbmx5IGZpbGVJbnB1dDogQ2xyRmlsZUlucHV0O1xuXG4gIEBWaWV3Q2hpbGQoJ2Jyb3dzZUJ1dHRvbicpIHByaXZhdGUgYnJvd3NlQnV0dG9uRWxlbWVudFJlZjogRWxlbWVudFJlZjxIVE1MQnV0dG9uRWxlbWVudD47XG5cbiAgcHJvdGVjdGVkIGdldCBkaXNhYmxlZCgpIHtcbiAgICByZXR1cm4gdGhpcy5maWxlSW5wdXQuZWxlbWVudFJlZi5uYXRpdmVFbGVtZW50LmRpc2FibGVkO1xuICB9XG5cbiAgcHJvdGVjdGVkIGdldCBicm93c2VCdXR0b25EZXNjcmliZWRCeSgpIHtcbiAgICByZXR1cm4gYCR7dGhpcy5sYWJlbD8uaWRBdHRyfSAke3RoaXMuZmlsZUlucHV0LmVsZW1lbnRSZWYubmF0aXZlRWxlbWVudC5nZXRBdHRyaWJ1dGUoJ2FyaWEtZGVzY3JpYmVkYnknKX1gO1xuICB9XG5cbiAgcHJvdGVjdGVkIGJyb3dzZSgpIHtcbiAgICB0aGlzLmZpbGVJbnB1dC5lbGVtZW50UmVmLm5hdGl2ZUVsZW1lbnQuY2xpY2soKTtcbiAgfVxuXG4gIHByb3RlY3RlZCBjbGVhclNlbGVjdGVkRmlsZXMoKSB7XG4gICAgdGhpcy5maWxlSW5wdXQuZWxlbWVudFJlZi5uYXRpdmVFbGVtZW50LnZhbHVlID0gJyc7XG4gICAgdGhpcy5maWxlSW5wdXQuZWxlbWVudFJlZi5uYXRpdmVFbGVtZW50LmRpc3BhdGNoRXZlbnQobmV3IEV2ZW50KCdjaGFuZ2UnLCB7IGJ1YmJsZXM6IHRydWUsIGNhbmNlbGFibGU6IHRydWUgfSkpO1xuXG4gICAgdGhpcy5icm93c2VCdXR0b25FbGVtZW50UmVmLm5hdGl2ZUVsZW1lbnQuZm9jdXMoKTtcbiAgfVxufVxuIl19
|
|
245
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZmlsZS1pbnB1dC1jb250YWluZXIuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9hbmd1bGFyL3NyYy9mb3Jtcy9maWxlLWlucHV0L2ZpbGUtaW5wdXQtY29udGFpbmVyLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBOzs7OztHQUtHO0FBRUgsT0FBTyxFQUFFLFNBQVMsRUFBRSxZQUFZLEVBQWMsVUFBVSxFQUFFLE1BQU0sRUFBRSxLQUFLLEVBQUUsU0FBUyxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBRTFHLE9BQU8sRUFBRSx1QkFBdUIsRUFBRSxNQUFNLHlDQUF5QyxDQUFDO0FBQ2xGLE9BQU8sRUFBRSxvQkFBb0IsRUFBRSxNQUFNLDhCQUE4QixDQUFDO0FBQ3BFLE9BQU8sRUFBRSxxQkFBcUIsRUFBRSxNQUFNLHFEQUFxRCxDQUFDO0FBQzVGLE9BQU8sRUFBRSxtQkFBbUIsRUFBRSxNQUFNLDJDQUEyQyxDQUFDO0FBQ2hGLE9BQU8sRUFBRSxnQkFBZ0IsRUFBRSxNQUFNLHdDQUF3QyxDQUFDO0FBQzFFLE9BQU8sRUFBRSxnQkFBZ0IsRUFBRSxNQUFNLHdDQUF3QyxDQUFDO0FBQzFFLE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSxjQUFjLENBQUM7QUFDNUMsT0FBTyxFQUFFLFdBQVcsRUFBRSxNQUFNLHNCQUFzQixDQUFDO0FBQ25ELE9BQU8sRUFBRSxXQUFXLEVBQUUsTUFBTSxhQUFhLENBQUM7QUFDMUMsT0FBTyxFQUFFLFlBQVksRUFBRSxjQUFjLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQzs7Ozs7QUE4RS9ELE1BQU0sT0FBTyxxQkFBc0IsU0FBUSxvQkFBb0I7SUE1RS9EOztRQXlGbUIsa0JBQWEsR0FBRyxNQUFNLENBQUMsdUJBQXVCLENBQUMsQ0FBQztLQW9FbEU7SUFsRUMsSUFBYyxNQUFNO1FBQ2xCLE9BQU8sSUFBSSxDQUFDLFNBQVMsQ0FBQyxVQUFVLENBQUMsYUFBYSxDQUFDLE1BQU0s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QUFxQixFQUFFLGdCQUFnQixFQUFFLGdCQUFnQixFQUFFLG1CQUFtQixDQUFDLG9HQUs1RCxZQUFZLGtIQUNaLFdBQVcsMkZBTTVCLGNBQWMscUZBQ2QsWUFBWSxrVEFyRmhCOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7R0FrRVQ7MkZBUVUscUJBQXFCO2tCQTVFakMsU0FBUzttQkFBQztvQkFDVCxRQUFRLEVBQUUsMEJBQTBCO29CQUNwQyxRQUFRLEVBQUU7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztHQWtFVDtvQkFDRCxJQUFJLEVBQUU7d0JBQ0osMEJBQTBCLEVBQUUsTUFBTTt3QkFDbEMsbUNBQW1DLEVBQUUsVUFBVTt3QkFDL0MsaUJBQWlCLEVBQUUsV0FBVztxQkFDL0I7b0JBQ0QsU0FBUyxFQUFFLENBQUMscUJBQXFCLEVBQUUsZ0JBQWdCLEVBQUUsZ0JBQWdCLEVBQUUsbUJBQW1CLENBQUM7aUJBQzVGOzhCQUUwQixpQkFBaUI7c0JBQXpDLEtBQUs7dUJBQUMsZ0JBQWdCO2dCQUVnQyxTQUFTO3NCQUEvRCxZQUFZO3VCQUFDLFVBQVUsQ0FBQyxHQUFHLEVBQUUsQ0FBQyxZQUFZLENBQUM7Z0JBQ29CLFFBQVE7c0JBQXZFLFlBQVk7dUJBQUMsVUFBVSxDQUFDLEdBQUcsRUFBRSxDQUFDLFdBQVcsQ0FBQztnQkFFUixzQkFBc0I7c0JBQXhELFNBQVM7dUJBQUMsY0FBYztnQkFDZSwyQkFBMkI7c0JBQWxFLFNBQVM7dUJBQUMsbUJBQW1CO2dCQUdpQixvQkFBb0I7c0JBQWxFLFlBQVk7dUJBQUMsY0FBYztnQkFDaUIsa0JBQWtCO3NCQUE5RCxZQUFZO3VCQUFDLFlBQVkiLCJzb3VyY2VzQ29udGVudCI6WyIvKlxuICogQ29weXJpZ2h0IChjKSAyMDE2LTIwMjUgQnJvYWRjb20uIEFsbCBSaWdodHMgUmVzZXJ2ZWQuXG4gKiBUaGUgdGVybSBcIkJyb2FkY29tXCIgcmVmZXJzIHRvIEJyb2FkY29tIEluYy4gYW5kL29yIGl0cyBzdWJzaWRpYXJpZXMuXG4gKiBUaGlzIHNvZnR3YXJlIGlzIHJlbGVhc2VkIHVuZGVyIE1JVCBsaWNlbnNlLlxuICogVGhlIGZ1bGwgbGljZW5zZSBpbmZvcm1hdGlvbiBjYW4gYmUgZm91bmQgaW4gTElDRU5TRSBpbiB0aGUgcm9vdCBkaXJlY3Rvcnkgb2YgdGhpcyBwcm9qZWN0LlxuICovXG5cbmltcG9ydCB7IENvbXBvbmVudCwgQ29udGVudENoaWxkLCBFbGVtZW50UmVmLCBmb3J3YXJkUmVmLCBpbmplY3QsIElucHV0LCBWaWV3Q2hpbGQgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcblxuaW1wb3J0IHsgQ2xyQ29tbW9uU3RyaW5nc1NlcnZpY2UgfSBmcm9tICcuLi8uLi91dGlscy9pMThuL2NvbW1vbi1zdHJpbmdzLnNlcnZpY2UnO1xuaW1wb3J0IHsgQ2xyQWJzdHJhY3RDb250YWluZXIgfSBmcm9tICcuLi9jb21tb24vYWJzdHJhY3QtY29udGFpbmVyJztcbmltcG9ydCB7IElmQ29udHJvbFN0YXRlU2VydmljZSB9IGZyb20gJy4uL2NvbW1vbi9pZi1jb250cm9sLXN0YXRlL2lmLWNvbnRyb2wtc3RhdGUuc2VydmljZSc7XG5pbXBvcnQgeyBDb250cm9sQ2xhc3NTZXJ2aWNlIH0gZnJvbSAnLi4vY29tbW9uL3Byb3ZpZGVycy9jb250cm9sLWNsYXNzLnNlcnZpY2UnO1xuaW1wb3J0IHsgQ29udHJvbElkU2VydmljZSB9IGZyb20gJy4uL2NvbW1vbi9wcm92aWRlcnMvY29udHJvbC1pZC5zZXJ2aWNlJztcbmltcG9ydCB7IE5nQ29udHJvbFNlcnZpY2UgfSBmcm9tICcuLi9jb21tb24vcHJvdmlkZXJzL25nLWNvbnRyb2wuc2VydmljZSc7XG5pbXBvcnQgeyBDbHJGaWxlSW5wdXQgfSBmcm9tICcuL2ZpbGUtaW5wdXQnO1xuaW1wb3J0IHsgc2VsZWN0RmlsZXMgfSBmcm9tICcuL2ZpbGUtaW5wdXQuaGVscGVycyc7XG5pbXBvcnQgeyBDbHJGaWxlTGlzdCB9IGZyb20gJy4vZmlsZS1saXN0JztcbmltcG9ydCB7IENsckZpbGVFcnJvciwgQ2xyRmlsZVN1Y2Nlc3MgfSBmcm9tICcuL2ZpbGUtbWVzc2FnZXMnO1xuXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdjbHItZmlsZS1pbnB1dC1jb250YWluZXInLFxuICB0ZW1wbGF0ZTogYFxuICAgIDxuZy1jb250ZW50IHNlbGVjdD1cImxhYmVsXCI+PC9uZy1jb250ZW50PlxuICAgIDxsYWJlbCAqbmdJZj1cIiFsYWJlbCAmJiBhZGRHcmlkKClcIj48L2xhYmVsPlxuICAgIDxkaXYgY2xhc3M9XCJjbHItY29udHJvbC1jb250YWluZXJcIiBbbmdDbGFzc109XCJjb250cm9sQ2xhc3MoKVwiPlxuICAgICAgPGRpdiBjbGFzcz1cImNsci1maWxlLWlucHV0LXdyYXBwZXJcIj5cbiAgICAgICAgPG5nLWNvbnRlbnQgc2VsZWN0PVwiW2NsckZpbGVJbnB1dF1cIj48L25nLWNvbnRlbnQ+XG5cbiAgICAgICAgPCEtLSBmaWxlIGlucHV0IHRvIGhhbmRsZSBhZGRpbmcgbmV3IGZpbGVzIHRvIHNlbGVjdGlvbiB3aGVuIGZpbGUgbGlzdCBpcyBwcmVzZW50IChwcmV2ZW50IHJlcGxhY2luZyBzZWxlY3RlZCBmaWxlcyBvbiB0aGUgbWFpbiBmaWxlIGlucHV0KSAtLT5cbiAgICAgICAgPGlucHV0XG4gICAgICAgICAgKm5nSWY9XCJmaWxlTGlzdFwiXG4gICAgICAgICAgI2ZpbGVMaXN0RmlsZUlucHV0XG4gICAgICAgICAgdHlwZT1cImZpbGVcIlxuICAgICAgICAgIGNsYXNzPVwiY2xyLWZpbGUtaW5wdXRcIlxuICAgICAgICAgIHRhYmluZGV4PVwiLTFcIlxuICAgICAgICAgIGFyaWEtaGlkZGVuPVwidHJ1ZVwiXG4gICAgICAgICAgW2FjY2VwdF09XCJhY2NlcHRcIlxuICAgICAgICAgIFttdWx0aXBsZV09XCJtdWx0aXBsZVwiXG4gICAgICAgICAgW2Rpc2FibGVkXT1cImRpc2FibGVkXCJcbiAgICAgICAgICAoY2hhbmdlKT1cImFkZEZpbGVzVG9TZWxlY3Rpb24oZmlsZUxpc3RGaWxlSW5wdXQuZmlsZXMpXCJcbiAgICAgICAgLz5cblxuICAgICAgICA8YnV0dG9uXG4gICAgICAgICAgI2Jyb3dzZUJ1dHRvblxuICAgICAgICAgIHR5cGU9XCJidXR0b25cIlxuICAgICAgICAgIGNsYXNzPVwiYnRuIGJ0bi1zbSBjbHItZmlsZS1pbnB1dC1icm93c2UtYnV0dG9uXCJcbiAgICAgICAgICBbYXR0ci5hcmlhLWRlc2NyaWJlZGJ5XT1cImJyb3dzZUJ1dHRvbkRlc2NyaWJlZEJ5XCJcbiAgICAgICAgICBbZGlzYWJsZWRdPVwiZGlzYWJsZWRcIlxuICAgICAgICAgIChjbGljayk9XCJicm93c2UoKVwiXG4gICAgICAgID5cbiAgICAgICAgICA8Y2RzLWljb24gc2hhcGU9XCJmb2xkZXItb3BlblwiPjwvY2RzLWljb24+XG4gICAgICAgICAgPHNwYW4gY2xhc3M9XCJjbHItZmlsZS1pbnB1dC1icm93c2UtYnV0dG9uLXRleHRcIj57eyBicm93c2VCdXR0b25UZXh0IH19PC9zcGFuPlxuICAgICAgICA8L2J1dHRvbj5cbiAgICAgICAgPGJ1dHRvblxuICAgICAgICAgICpuZ0lmPVwiIWZpbGVMaXN0ICYmIGZpbGVJbnB1dD8uc2VsZWN0aW9uPy5maWxlQ291bnRcIlxuICAgICAgICAgIHR5cGU9XCJidXR0b25cIlxuICAgICAgICAgIGNsYXNzPVwiYnRuIGJ0bi1zbSBjbHItZmlsZS1pbnB1dC1jbGVhci1idXR0b25cIlxuICAgICAgICAgIFthdHRyLmFyaWEtbGFiZWxdPVwiZmlsZUlucHV0Py5zZWxlY3Rpb24/LmNsZWFyRmlsZXNCdXR0b25MYWJlbFwiXG4gICAgICAgICAgKGNsaWNrKT1cImNsZWFyU2VsZWN0ZWRGaWxlcygpXCJcbiAgICAgICAgPlxuICAgICAgICAgIDxjZHMtaWNvbiBzaGFwZT1cInRpbWVzXCIgc3RhdHVzPVwibmV1dHJhbFwiIHNpemU9XCJtZFwiPjwvY2RzLWljb24+XG4gICAgICAgIDwvYnV0dG9uPlxuICAgICAgICA8Y2RzLWljb25cbiAgICAgICAgICAqbmdJZj1cInNob3dJbnZhbGlkXCJcbiAgICAgICAgICBjbGFzcz1cImNsci12YWxpZGF0ZS1pY29uXCJcbiAgICAgICAgICBzaGFwZT1cImV4Y2xhbWF0aW9uLWNpcmNsZVwiXG4gICAgICAgICAgc3RhdHVzPVwiZGFuZ2VyXCJcbiAgICAgICAgICBhcmlhLWhpZGRlbj1cInRydWVcIlxuICAgICAgICA+PC9jZHMtaWNvbj5cbiAgICAgICAgPGNkcy1pY29uXG4gICAgICAgICAgKm5nSWY9XCJzaG93VmFsaWRcIlxuICAgICAgICAgIGNsYXNzPVwiY2xyLXZhbGlkYXRlLWljb25cIlxuICAgICAgICAgIHNoYXBlPVwiY2hlY2stY2lyY2xlXCJcbiAgICAgICAgICBzdGF0dXM9XCJzdWNjZXNzXCJcbiAgICAgICAgICBhcmlhLWhpZGRlbj1cInRydWVcIlxuICAgICAgICA+PC9jZHMtaWNvbj5cbiAgICAgIDwvZGl2PlxuICAgICAgPG5nLWNvbnRlbnQgc2VsZWN0PVwiY2xyLWNvbnRyb2wtaGVscGVyXCIgKm5nSWY9XCJzaG93SGVscGVyXCI+PC9uZy1jb250ZW50PlxuICAgICAgPG5nLWNvbnRlbnQgc2VsZWN0PVwiY2xyLWNvbnRyb2wtZXJyb3JcIiAqbmdJZj1cInNob3dJbnZhbGlkXCI+PC9uZy1jb250ZW50PlxuICAgICAgPG5nLWNvbnRlbnQgc2VsZWN0PVwiY2xyLWNvbnRyb2wtc3VjY2Vzc1wiICpuZ0lmPVwic2hvd1ZhbGlkXCI+PC9uZy1jb250ZW50PlxuXG4gICAgICA8IS0tIElmIHRoaXMgaXMgcHJlc2VudCwgdGhpcyBmaWxlIGlucHV0IGJlY29tZXMgYW4gXCJhZHZhbmNlZFwiIGZpbGUgaW5wdXQuIC0tPlxuICAgICAgPG5nLWNvbnRhaW5lcj5cbiAgICAgICAgPGRpdiBjbGFzcz1cImNsci1maWxlLWxpc3QtYnJlYWtcIj48L2Rpdj5cbiAgICAgICAgPG5nLWNvbnRlbnQgc2VsZWN0PVwiY2xyLWZpbGUtbGlzdFwiPjwvbmctY29udGVudD5cbiAgICAgIDwvbmctY29udGFpbmVyPlxuICAgIDwvZGl2PlxuICBgLFxuICBob3N0OiB7XG4gICAgJ1tjbGFzcy5jbHItZm9ybS1jb250cm9sXSc6ICd0cnVlJyxcbiAgICAnW2NsYXNzLmNsci1mb3JtLWNvbnRyb2wtZGlzYWJsZWRdJzogJ2Rpc2FibGVkJyxcbiAgICAnW2NsYXNzLmNsci1yb3ddJzogJ2FkZEdyaWQoKScsXG4gIH0sXG4gIHByb3ZpZGVyczogW0lmQ29udHJvbFN0YXRlU2VydmljZSwgTmdDb250cm9sU2VydmljZSwgQ29udHJvbElkU2VydmljZSwgQ29udHJvbENsYXNzU2VydmljZV0sXG59KVxuZXhwb3J0IGNsYXNzIENsckZpbGVJbnB1dENvbnRhaW5lciBleHRlbmRzIENsckFic3RyYWN0Q29udGFpbmVyIHtcbiAgQElucHV0KCdjbHJCdXR0b25MYWJlbCcpIGN1c3RvbUJ1dHRvbkxhYmVsOiBzdHJpbmc7XG5cbiAgQENvbnRlbnRDaGlsZChmb3J3YXJkUmVmKCgpID0+IENsckZpbGVJbnB1dCkpIHJlYWRvbmx5IGZpbGVJbnB1dDogQ2xyRmlsZUlucHV0O1xuICBAQ29udGVudENoaWxkKGZvcndhcmRSZWYoKCkgPT4gQ2xyRmlsZUxpc3QpKSBwcm90ZWN0ZWQgcmVhZG9ubHkgZmlsZUxpc3Q6IENsckZpbGVMaXN0O1xuXG4gIEBWaWV3Q2hpbGQoJ2Jyb3dzZUJ1dHRvbicpIHByaXZhdGUgYnJvd3NlQnV0dG9uRWxlbWVudFJlZjogRWxlbWVudFJlZjxIVE1MQnV0dG9uRWxlbWVudD47XG4gIEBWaWV3Q2hpbGQoJ2ZpbGVMaXN0RmlsZUlucHV0JykgcHJpdmF0ZSBmaWxlTGlzdEZpbGVJbnB1dEVsZW1lbnRSZWY6IEVsZW1lbnRSZWY8SFRNTElucHV0RWxlbWVudD47XG5cbiAgLy8gVGhlc2UgYXJlIGZvciB0aGUgXCJtZXNzYWdlIHByZXNlbnRcIiBvdmVycmlkZSBwcm9wZXJ0aWVzXG4gIEBDb250ZW50Q2hpbGQoQ2xyRmlsZVN1Y2Nlc3MpIHByaXZhdGUgcmVhZG9ubHkgZmlsZVN1Y2Nlc3NDb21wb25lbnQ6IENsckZpbGVTdWNjZXNzO1xuICBAQ29udGVudENoaWxkKENsckZpbGVFcnJvcikgcHJpdmF0ZSByZWFkb25seSBmaWxlRXJyb3JDb21wb25lbnQ6IENsckZpbGVFcnJvcjtcblxuICBwcml2YXRlIHJlYWRvbmx5IGNvbW1vblN0cmluZ3MgPSBpbmplY3QoQ2xyQ29tbW9uU3RyaW5nc1NlcnZpY2UpO1xuXG4gIHByb3RlY3RlZCBnZXQgYWNjZXB0KCkge1xuICAgIHJldHVybiB0aGlzLmZpbGVJbnB1dC5lbGVtZW50UmVmLm5hdGl2ZUVsZW1lbnQuYWNjZXB0O1xuICB9XG5cbiAgcHJvdGVjdGVkIGdldCBtdWx0aXBsZSgpIHtcbiAgICByZXR1cm4gdGhpcy5maWxlSW5wdXQuZWxlbWVudFJlZi5uYXRpdmVFbGVtZW50Lm11bHRpcGxlO1xuICB9XG5cbiAgcHJvdGVjdGVkIGdldCBkaXNhYmxlZCgpIHtcbiAgICByZXR1cm4gdGhpcy5maWxlSW5wdXQuZWxlbWVudFJlZi5uYXRpdmVFbGVtZW50LmRpc2FibGVkO1xuICB9XG5cbiAgcHJvdGVjdGVkIGdldCBicm93c2VCdXR0b25UZXh0KCkge1xuICAgIGNvbnN0IHNlbGVjdGlvbkJ1dHRvbkxhYmVsID0gdGhpcy5maWxlTGlzdCA/IHVuZGVmaW5lZCA6IHRoaXMuZmlsZUlucHV0Py5zZWxlY3Rpb24/LmJ1dHRvbkxhYmVsO1xuXG4gICAgcmV0dXJuIHNlbGVjdGlvbkJ1dHRvbkxhYmVsIHx8IHRoaXMuY3VzdG9tQnV0dG9uTGFiZWwgfHwgdGhpcy5jb21tb25TdHJpbmdzLmtleXMuYnJvd3NlO1xuICB9XG5cbiAgcHJvdGVjdGVkIGdldCBicm93c2VCdXR0b25EZXNjcmliZWRCeSgpIHtcbiAgICByZXR1cm4gYCR7dGhpcy5sYWJlbD8uZm9yQXR0cn0gJHt0aGlzLmZpbGVJbnB1dC5lbGVtZW50UmVmLm5hdGl2ZUVsZW1lbnQuZ2V0QXR0cmlidXRlKCdhcmlhLWRlc2NyaWJlZGJ5Jyl9YDtcbiAgfVxuXG4gIHByb3RlY3RlZCBvdmVycmlkZSBnZXQgc3VjY2Vzc01lc3NhZ2VQcmVzZW50KCkge1xuICAgIHJldHVybiBzdXBlci5zdWNjZXNzTWVzc2FnZVByZXNlbnQgfHwgISF0aGlzLmZpbGVTdWNjZXNzQ29tcG9uZW50O1xuICB9XG5cbiAgcHJvdGVjdGVkIG92ZXJyaWRlIGdldCBlcnJvck1lc3NhZ2VQcmVzZW50KCkge1xuICAgIHJldHVybiBzdXBlci5lcnJvck1lc3NhZ2VQcmVzZW50IHx8ICEhdGhpcy5maWxlRXJyb3JDb21wb25lbnQ7XG4gIH1cblxuICBmb2N1c0Jyb3dzZUJ1dHRvbigpIHtcbiAgICB0aGlzLmJyb3dzZUJ1dHRvbkVsZW1lbnRSZWYubmF0aXZlRWxlbWVudC5mb2N1cygpO1xuICB9XG5cbiAgcHJvdGVjdGVkIGJyb3dzZSgpIHtcbiAgICBjb25zdCBmaWxlSW5wdXRFbGVtZW50UmVmID1cbiAgICAgIHRoaXMuZmlsZUxpc3QgJiYgdGhpcy5tdWx0aXBsZSA/IHRoaXMuZmlsZUxpc3RGaWxlSW5wdXRFbGVtZW50UmVmIDogdGhpcy5maWxlSW5wdXQuZWxlbWVudFJlZjtcblxuICAgIGZpbGVJbnB1dEVsZW1lbnRSZWYubmF0aXZlRWxlbWVudC5jbGljaygpO1xuICB9XG5cbiAgcHJvdGVjdGVkIGNsZWFyU2VsZWN0ZWRGaWxlcygpIHtcbiAgICB0aGlzLmZpbGVJbnB1dC5lbGVtZW50UmVmLm5hdGl2ZUVsZW1lbnQudmFsdWUgPSAnJztcbiAgICB0aGlzLmZpbGVJbnB1dC5lbGVtZW50UmVmLm5hdGl2ZUVsZW1lbnQuZGlzcGF0Y2hFdmVudChuZXcgRXZlbnQoJ2NoYW5nZScsIHsgYnViYmxlczogdHJ1ZSwgY2FuY2VsYWJsZTogdHJ1ZSB9KSk7XG5cbiAgICB0aGlzLmZvY3VzQnJvd3NlQnV0dG9uKCk7XG4gIH1cblxuICBwcm90ZWN0ZWQgYWRkRmlsZXNUb1NlbGVjdGlvbihuZXdGaWxlczogRmlsZUxpc3QpIHtcbiAgICBpZiAoIW5ld0ZpbGVzLmxlbmd0aCkge1xuICAgICAgcmV0dXJuO1xuICAgIH1cblxuICAgIC8vIHN0YXJ0IHdpdGggbmV3IGZpbGVzXG4gICAgY29uc3QgbWVyZ2VkRmlsZXMgPSBbLi4ubmV3RmlsZXNdO1xuXG4gICAgLy8gYWRkIGV4aXN0aW5nIGZpbGVzIGlmIGEgbmV3IGZpbGUgZG9lc24ndCBoYXZlIHRoZSBzYW1lIG5hbWVcbiAgICBmb3IgKGNvbnN0IGV4aXN0aW5nRmlsZSBvZiB0aGlzLmZpbGVJbnB1dC5lbGVtZW50UmVmLm5hdGl2ZUVsZW1lbnQuZmlsZXMpIHtcbiAgICAgIGlmICghbWVyZ2VkRmlsZXMuc29tZShmaWxlID0+IGZpbGUubmFtZSA9PT0gZXhpc3RpbmdGaWxlLm5hbWUpKSB7XG4gICAgICAgIG1lcmdlZEZpbGVzLnB1c2goZXhpc3RpbmdGaWxlKTtcbiAgICAgIH1cbiAgICB9XG5cbiAgICAvLyB1cGRhdGUgZmlsZSBzZWxlY3Rpb25cbiAgICBzZWxlY3RGaWxlcyh0aGlzLmZpbGVJbnB1dC5lbGVtZW50UmVmLm5hdGl2ZUVsZW1lbnQsIG1lcmdlZEZpbGVzKTtcbiAgfVxufVxuIl19
|
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
/*
|
|
2
|
+
* Copyright (c) 2016-2025 Broadcom. All Rights Reserved.
|
|
3
|
+
* The term "Broadcom" refers to Broadcom Inc. and/or its subsidiaries.
|
|
4
|
+
* This software is released under MIT license.
|
|
5
|
+
* The full license information can be found in LICENSE in the root directory of this project.
|
|
6
|
+
*/
|
|
7
|
+
export {};
|
|
8
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZmlsZS1pbnB1dC12YWxpZGF0b3ItZXJyb3JzLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvYW5ndWxhci9zcmMvZm9ybXMvZmlsZS1pbnB1dC9maWxlLWlucHV0LXZhbGlkYXRvci1lcnJvcnMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUE7Ozs7O0dBS0ciLCJzb3VyY2VzQ29udGVudCI6WyIvKlxuICogQ29weXJpZ2h0IChjKSAyMDE2LTIwMjUgQnJvYWRjb20uIEFsbCBSaWdodHMgUmVzZXJ2ZWQuXG4gKiBUaGUgdGVybSBcIkJyb2FkY29tXCIgcmVmZXJzIHRvIEJyb2FkY29tIEluYy4gYW5kL29yIGl0cyBzdWJzaWRpYXJpZXMuXG4gKiBUaGlzIHNvZnR3YXJlIGlzIHJlbGVhc2VkIHVuZGVyIE1JVCBsaWNlbnNlLlxuICogVGhlIGZ1bGwgbGljZW5zZSBpbmZvcm1hdGlvbiBjYW4gYmUgZm91bmQgaW4gTElDRU5TRSBpbiB0aGUgcm9vdCBkaXJlY3Rvcnkgb2YgdGhpcyBwcm9qZWN0LlxuICovXG5cbmV4cG9ydCBpbnRlcmZhY2UgQ2xyRmlsZUxpc3RWYWxpZGF0aW9uRXJyb3JzIHtcbiAgcmVxdWlyZWQ/OiBib29sZWFuO1xuICBhY2NlcHQ/OiBDbHJGaWxlQWNjZXB0RXJyb3JbXTtcbiAgbWluRmlsZVNpemU/OiBDbHJGaWxlTWluRmlsZVNpemVFcnJvcltdO1xuICBtYXhGaWxlU2l6ZT86IENsckZpbGVNYXhGaWxlU2l6ZUVycm9yW107XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgQ2xyRmlsZUFjY2VwdEVycm9yIHtcbiAgLyoqXG4gICAqIFRoZSBuYW1lIG9mIHRoZSBzZWxlY3RlZCBmaWxlLlxuICAgKi9cbiAgbmFtZTogc3RyaW5nO1xuXG4gIC8qKlxuICAgKiBUaGUgZmlsZSB0eXBlcyB0aGF0IGFyZSBhY2NlcHRlZCBieSB0aGUgZmlsZSBpbnB1dC5cbiAgICovXG4gIGFjY2VwdDogc3RyaW5nW107XG5cbiAgLyoqXG4gICAqIFRoZSBhY3R1YWwgTUlNRSB0eXBlIG9mIHRoZSBzZWxlY3RlZCBmaWxlLlxuICAgKi9cbiAgdHlwZTogc3RyaW5nO1xuXG4gIC8qKlxuICAgKiBUaGUgYWN0dWFsIGV4dGVuc2lvbiBvZiB0aGUgc2VsZWN0ZWQgZmlsZS5cbiAgICovXG4gIGV4dGVuc2lvbjogc3RyaW5nO1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIENsckZpbGVNaW5GaWxlU2l6ZUVycm9yIHtcbiAgLyoqXG4gICAqIFRoZSBuYW1lIG9mIHRoZSBzZWxlY3RlZCBmaWxlLlxuICAgKi9cbiAgbmFtZTogc3RyaW5nO1xuXG4gIC8qKlxuICAgKiBUaGUgbWluaW11bSBmaWxlIHNpemUgdGhhdCBpcyBhY2NlcHRlZCBieSB0aGUgZmlsZSBpbnB1dC5cbiAgICovXG4gIG1pbkZpbGVTaXplOiBudW1iZXI7XG5cbiAgLyoqXG4gICAqIFRoZSBhY3R1YWwgc2l6ZSBvZiB0aGUgc2VsZWN0ZWQgZmlsZS5cbiAgICovXG4gIGFjdHVhbEZpbGVTaXplOiBudW1iZXI7XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgQ2xyRmlsZU1heEZpbGVTaXplRXJyb3Ige1xuICAvKipcbiAgICogVGhlIG5hbWUgb2YgdGhlIHNlbGVjdGVkIGZpbGUuXG4gICAqL1xuICBuYW1lOiBzdHJpbmc7XG5cbiAgLyoqXG4gICAqIFRoZSBtYXhpbXVtIGZpbGUgc2l6ZSB0aGF0IGlzIGFjY2VwdGVkIGJ5IHRoZSBmaWxlIGlucHV0LlxuICAgKi9cbiAgbWF4RmlsZVNpemU6IG51bWJlcjtcblxuICAvKipcbiAgICogVGhlIGFjdHVhbCBzaXplIG9mIHRoZSBzZWxlY3RlZCBmaWxlLlxuICAgKi9cbiAgYWN0dWFsRmlsZVNpemU6IG51bWJlcjtcbn1cbiJdfQ==
|