@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.
|
|
@@ -19,33 +19,25 @@ export class ClrFileInputValidator {
|
|
|
19
19
|
if (fileInputElement.required && files?.length === 0) {
|
|
20
20
|
errors.required = true;
|
|
21
21
|
}
|
|
22
|
-
|
|
23
|
-
if (
|
|
24
|
-
const accept = fileInputElement.accept.split(',').map(type => type.trim());
|
|
22
|
+
const accept = fileInputElement.accept ? fileInputElement.accept.split(',').map(type => type.trim()) : null;
|
|
23
|
+
if (files?.length > 0 && (accept || this.minFileSize || this.maxFileSize)) {
|
|
25
24
|
for (let i = 0; i < files.length; i++) {
|
|
26
25
|
const file = files.item(i);
|
|
27
|
-
|
|
28
|
-
if (
|
|
29
|
-
|
|
30
|
-
|
|
26
|
+
// accept validation (native attribute)
|
|
27
|
+
if (accept) {
|
|
28
|
+
const [fileExtension] = file.name.match(/\..+$/);
|
|
29
|
+
if (!accept.includes(file.type) && !accept.includes(fileExtension)) {
|
|
30
|
+
errors.accept = errors.accept || [];
|
|
31
|
+
errors.accept.push({ name: file.name, accept, type: file.type, extension: fileExtension });
|
|
32
|
+
}
|
|
31
33
|
}
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
// min file validation (custom input)
|
|
35
|
-
if (this.minFileSize && files?.length > 0) {
|
|
36
|
-
for (let i = 0; i < files.length; i++) {
|
|
37
|
-
const file = files.item(i);
|
|
38
|
-
if (file.size < this.minFileSize) {
|
|
34
|
+
// min file validation (custom input)
|
|
35
|
+
if (this.minFileSize && file.size < this.minFileSize) {
|
|
39
36
|
errors.minFileSize = errors.minFileSize || [];
|
|
40
37
|
errors.minFileSize.push({ name: file.name, minFileSize: this.minFileSize, actualFileSize: file.size });
|
|
41
38
|
}
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
// max file validation (custom input)
|
|
45
|
-
if (this.maxFileSize && files?.length > 0) {
|
|
46
|
-
for (let i = 0; i < files.length; i++) {
|
|
47
|
-
const file = files.item(i);
|
|
48
|
-
if (file.size > this.maxFileSize) {
|
|
39
|
+
// max file validation (custom input)
|
|
40
|
+
if (this.maxFileSize && file.size > this.maxFileSize) {
|
|
49
41
|
errors.maxFileSize = errors.maxFileSize || [];
|
|
50
42
|
errors.maxFileSize.push({ name: file.name, maxFileSize: this.maxFileSize, actualFileSize: file.size });
|
|
51
43
|
}
|
|
@@ -69,4 +61,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.2", ngImpor
|
|
|
69
61
|
type: Input,
|
|
70
62
|
args: ['clrMaxFileSize']
|
|
71
63
|
}] } });
|
|
72
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
64
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZmlsZS1pbnB1dC12YWxpZGF0b3IuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9hbmd1bGFyL3NyYy9mb3Jtcy9maWxlLWlucHV0L2ZpbGUtaW5wdXQtdmFsaWRhdG9yLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBOzs7OztHQUtHO0FBRUgsT0FBTyxFQUFFLFNBQVMsRUFBYyxLQUFLLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDN0QsT0FBTyxFQUFtQixhQUFhLEVBQStCLE1BQU0sZ0JBQWdCLENBQUM7O0FBUTdGLE1BQU0sT0FBTyxxQkFBcUI7SUFJaEMsWUFBNkIsVUFBd0M7UUFBeEMsZUFBVSxHQUFWLFVBQVUsQ0FBOEI7SUFBRyxDQUFDO0lBRXpFLFFBQVEsQ0FBQyxPQUFrQztRQUN6QyxNQUFNLEtBQUssR0FBRyxPQUFPLENBQUMsS0FBSyxDQUFDO1FBQzVCLE1BQU0sZ0JBQWdCLEdBQUcsSUFBSSxDQUFDLFVBQVUsQ0FBQyxhQUFhLENBQUM7UUFFdkQsTUFBTSxNQUFNLEdBQWdDLEVBQUUsQ0FBQztRQUUvQyx5Q0FBeUM7UUFDekMsSUFBSSxnQkFBZ0IsQ0FBQyxRQUFRLElBQUksS0FBSyxFQUFFLE1BQU0sS0FBSyxDQUFDLEVBQUU7WUFDcEQsTUFBTSxDQUFDLFFBQVEsR0FBRyxJQUFJLENBQUM7U0FDeEI7UUFFRCxNQUFNLE1BQU0sR0FBRyxnQkFBZ0IsQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDLGdCQUFnQixDQUFDLE1BQU0sQ0FBQyxLQUFLLENBQUMsR0FBRyxDQUFDLENBQUMsR0FBRyxDQUFDLElBQUksQ0FBQyxFQUFFLENBQUMsSUFBSSxDQUFDLElBQUksRUFBRSxDQUFDLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQztRQUU1RyxJQUFJLEtBQUssRUFBRSxNQUFNLEdBQUcsQ0FBQyxJQUFJLENBQUMsTUFBTSxJQUFJLElBQUksQ0FBQyxXQUFXLElBQUksSUFBSSxDQUFDLFdBQVcsQ0FBQyxFQUFFO1lBQ3pFLEtBQUssSUFBSSxDQUFDLEdBQUcsQ0FBQyxFQUFFLENBQUMsR0FBRyxLQUFLLENBQUMsTUFBTSxFQUFFLENBQUMsRUFBRSxFQUFFO2dCQUNyQyxNQUFNLElBQUksR0FBRyxLQUFLLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxDQUFDO2dCQUUzQix1Q0FBdUM7Z0JBQ3ZDLElBQUksTUFBTSxFQUFFO29CQUNWLE1BQU0sQ0FBQyxhQUFhLENBQUMsR0FBRyxJQUFJLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxPQUFPLENBQUMsQ0FBQztvQkFFakQsSUFBSSxDQUFDLE1BQU0sQ0FBQyxRQUFRLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsTUFBTSxDQUFDLFFBQVEsQ0FBQyxhQUFhLENBQUMsRUFBRTt3QkFDbEUsTUFBTSxDQUFDLE1BQU0sR0FBRyxNQUFNLENBQUMsTUFBTSxJQUFJLEVBQUUsQ0FBQzt3QkFDcEMsTUFBTSxDQUFDLE1BQU0sQ0FBQyxJQUFJLENBQUMsRUFBRSxJQUFJLEVBQUUsSUFBSSxDQUFDLElBQUksRUFBRSxNQUFNLEVBQUUsSUFBSSxFQUFFLElBQUksQ0FBQyxJQUFJLEVBQUUsU0FBUyxFQUFFLGFBQWEsRUFBRSxDQUFDLENBQUM7cUJBQzVGO2lCQUNGO2dCQUVELHFDQUFxQztnQkFDckMsSUFBSSxJQUFJLENBQUMsV0FBVyxJQUFJLElBQUksQ0FBQyxJQUFJLEdBQUcsSUFBSSxDQUFDLFdBQVcsRUFBRTtvQkFDcEQsTUFBTSxDQUFDLFdBQVcsR0FBRyxNQUFNLENBQUMsV0FBVyxJQUFJLEVBQUUsQ0FBQztvQkFDOUMsTUFBTSxDQUFDLFdBQVcsQ0FBQyxJQUFJLENBQUMsRUFBRSxJQUFJLEVBQUUsSUFBSSxDQUFDLElBQUksRUFBRSxXQUFXLEVBQUUsSUFBSSxDQUFDLFdBQVcsRUFBRSxjQUFjLEVBQUUsSUFBSSxDQUFDLElBQUksRUFBRSxDQUFDLENBQUM7aUJBQ3hHO2dCQUVELHFDQUFxQztnQkFDckMsSUFBSSxJQUFJLENBQUMsV0FBVyxJQUFJLElBQUksQ0FBQyxJQUFJLEdBQUcsSUFBSSxDQUFDLFdBQVcsRUFBRTtvQkFDcEQsTUFBTSxDQUFDLFdBQVcsR0FBRyxNQUFNLENBQUMsV0FBVyxJQUFJLEVBQUUsQ0FBQztvQkFDOUMsTUFBTSxDQUFDLFdBQVcsQ0FBQyxJQUFJLENBQUMsRUFBRSxJQUFJLEVBQUUsSUFBSSxDQUFDLElBQUksRUFBRSxXQUFXLEVBQUUsSUFBSSxDQUFDLFdBQVcsRUFBRSxjQUFjLEVBQUUsSUFBSSxDQUFDLElBQUksRUFBRSxDQUFDLENBQUM7aUJBQ3hHO2FBQ0Y7U0FDRjtRQUVELE9BQU8sTUFBTSxDQUFDLElBQUksQ0FBQyxNQUFNLENBQUMsQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDO0lBQ3BELENBQUM7O2tIQWhEVSxxQkFBcUI7c0dBQXJCLHFCQUFxQix5S0FGckIsQ0FBQyxFQUFFLE9BQU8sRUFBRSxhQUFhLEVBQUUsV0FBVyxFQUFFLHFCQUFxQixFQUFFLEtBQUssRUFBRSxJQUFJLEVBQUUsQ0FBQzsyRkFFN0UscUJBQXFCO2tCQUpqQyxTQUFTO21CQUFDO29CQUNULFFBQVEsRUFBRSxrQ0FBa0M7b0JBQzVDLFNBQVMsRUFBRSxDQUFDLEVBQUUsT0FBTyxFQUFFLGFBQWEsRUFBRSxXQUFXLHVCQUF1QixFQUFFLEtBQUssRUFBRSxJQUFJLEVBQUUsQ0FBQztpQkFDekY7aUdBRTBCLFdBQVc7c0JBQW5DLEtBQUs7dUJBQUMsZ0JBQWdCO2dCQUNFLFdBQVc7c0JBQW5DLEtBQUs7dUJBQUMsZ0JBQWdCIiwic291cmNlc0NvbnRlbnQiOlsiLypcbiAqIENvcHlyaWdodCAoYykgMjAxNi0yMDI1IEJyb2FkY29tLiBBbGwgUmlnaHRzIFJlc2VydmVkLlxuICogVGhlIHRlcm0gXCJCcm9hZGNvbVwiIHJlZmVycyB0byBCcm9hZGNvbSBJbmMuIGFuZC9vciBpdHMgc3Vic2lkaWFyaWVzLlxuICogVGhpcyBzb2Z0d2FyZSBpcyByZWxlYXNlZCB1bmRlciBNSVQgbGljZW5zZS5cbiAqIFRoZSBmdWxsIGxpY2Vuc2UgaW5mb3JtYXRpb24gY2FuIGJlIGZvdW5kIGluIExJQ0VOU0UgaW4gdGhlIHJvb3QgZGlyZWN0b3J5IG9mIHRoaXMgcHJvamVjdC5cbiAqL1xuXG5pbXBvcnQgeyBEaXJlY3RpdmUsIEVsZW1lbnRSZWYsIElucHV0IH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBBYnN0cmFjdENvbnRyb2wsIE5HX1ZBTElEQVRPUlMsIFZhbGlkYXRpb25FcnJvcnMsIFZhbGlkYXRvciB9IGZyb20gJ0Bhbmd1bGFyL2Zvcm1zJztcblxuaW1wb3J0IHsgQ2xyRmlsZUxpc3RWYWxpZGF0aW9uRXJyb3JzIH0gZnJvbSAnLi9maWxlLWlucHV0LXZhbGlkYXRvci1lcnJvcnMnO1xuXG5ARGlyZWN0aXZlKHtcbiAgc2VsZWN0b3I6ICdpbnB1dFt0eXBlPVwiZmlsZVwiXVtjbHJGaWxlSW5wdXRdJyxcbiAgcHJvdmlkZXJzOiBbeyBwcm92aWRlOiBOR19WQUxJREFUT1JTLCB1c2VFeGlzdGluZzogQ2xyRmlsZUlucHV0VmFsaWRhdG9yLCBtdWx0aTogdHJ1ZSB9XSxcbn0pXG5leHBvcnQgY2xhc3MgQ2xyRmlsZUlucHV0VmFsaWRhdG9yIGltcGxlbWVudHMgVmFsaWRhdG9yIHtcbiAgQElucHV0KCdjbHJNaW5GaWxlU2l6ZScpIG1pbkZpbGVTaXplOiBudW1iZXI7XG4gIEBJbnB1dCgnY2xyTWF4RmlsZVNpemUnKSBtYXhGaWxlU2l6ZTogbnVtYmVyO1xuXG4gIGNvbnN0cnVjdG9yKHByaXZhdGUgcmVhZG9ubHkgZWxlbWVudFJlZjogRWxlbWVudFJlZjxIVE1MSW5wdXRFbGVtZW50Pikge31cblxuICB2YWxpZGF0ZShjb250cm9sOiBBYnN0cmFjdENvbnRyb2w8RmlsZUxpc3Q+KTogVmFsaWRhdGlvbkVycm9ycyB7XG4gICAgY29uc3QgZmlsZXMgPSBjb250cm9sLnZhbHVlO1xuICAgIGNvbnN0IGZpbGVJbnB1dEVsZW1lbnQgPSB0aGlzLmVsZW1lbnRSZWYubmF0aXZlRWxlbWVudDtcblxuICAgIGNvbnN0IGVycm9yczogQ2xyRmlsZUxpc3RWYWxpZGF0aW9uRXJyb3JzID0ge307XG5cbiAgICAvLyByZXF1aXJlZCB2YWxpZGF0aW9uIChuYXRpdmUgYXR0cmlidXRlKVxuICAgIGlmIChmaWxlSW5wdXRFbGVtZW50LnJlcXVpcmVkICYmIGZpbGVzPy5sZW5ndGggPT09IDApIHtcbiAgICAgIGVycm9ycy5yZXF1aXJlZCA9IHRydWU7XG4gICAgfVxuXG4gICAgY29uc3QgYWNjZXB0ID0gZmlsZUlucHV0RWxlbWVudC5hY2NlcHQgPyBmaWxlSW5wdXRFbGVtZW50LmFjY2VwdC5zcGxpdCgnLCcpLm1hcCh0eXBlID0+IHR5cGUudHJpbSgpKSA6IG51bGw7XG5cbiAgICBpZiAoZmlsZXM/Lmxlbmd0aCA+IDAgJiYgKGFjY2VwdCB8fCB0aGlzLm1pbkZpbGVTaXplIHx8IHRoaXMubWF4RmlsZVNpemUpKSB7XG4gICAgICBmb3IgKGxldCBpID0gMDsgaSA8IGZpbGVzLmxlbmd0aDsgaSsrKSB7XG4gICAgICAgIGNvbnN0IGZpbGUgPSBmaWxlcy5pdGVtKGkpO1xuXG4gICAgICAgIC8vIGFjY2VwdCB2YWxpZGF0aW9uIChuYXRpdmUgYXR0cmlidXRlKVxuICAgICAgICBpZiAoYWNjZXB0KSB7XG4gICAgICAgICAgY29uc3QgW2ZpbGVFeHRlbnNpb25dID0gZmlsZS5uYW1lLm1hdGNoKC9cXC4uKyQvKTtcblxuICAgICAgICAgIGlmICghYWNjZXB0LmluY2x1ZGVzKGZpbGUudHlwZSkgJiYgIWFjY2VwdC5pbmNsdWRlcyhmaWxlRXh0ZW5zaW9uKSkge1xuICAgICAgICAgICAgZXJyb3JzLmFjY2VwdCA9IGVycm9ycy5hY2NlcHQgfHwgW107XG4gICAgICAgICAgICBlcnJvcnMuYWNjZXB0LnB1c2goeyBuYW1lOiBmaWxlLm5hbWUsIGFjY2VwdCwgdHlwZTogZmlsZS50eXBlLCBleHRlbnNpb246IGZpbGVFeHRlbnNpb24gfSk7XG4gICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgLy8gbWluIGZpbGUgdmFsaWRhdGlvbiAoY3VzdG9tIGlucHV0KVxuICAgICAgICBpZiAodGhpcy5taW5GaWxlU2l6ZSAmJiBmaWxlLnNpemUgPCB0aGlzLm1pbkZpbGVTaXplKSB7XG4gICAgICAgICAgZXJyb3JzLm1pbkZpbGVTaXplID0gZXJyb3JzLm1pbkZpbGVTaXplIHx8IFtdO1xuICAgICAgICAgIGVycm9ycy5taW5GaWxlU2l6ZS5wdXNoKHsgbmFtZTogZmlsZS5uYW1lLCBtaW5GaWxlU2l6ZTogdGhpcy5taW5GaWxlU2l6ZSwgYWN0dWFsRmlsZVNpemU6IGZpbGUuc2l6ZSB9KTtcbiAgICAgICAgfVxuXG4gICAgICAgIC8vIG1heCBmaWxlIHZhbGlkYXRpb24gKGN1c3RvbSBpbnB1dClcbiAgICAgICAgaWYgKHRoaXMubWF4RmlsZVNpemUgJiYgZmlsZS5zaXplID4gdGhpcy5tYXhGaWxlU2l6ZSkge1xuICAgICAgICAgIGVycm9ycy5tYXhGaWxlU2l6ZSA9IGVycm9ycy5tYXhGaWxlU2l6ZSB8fCBbXTtcbiAgICAgICAgICBlcnJvcnMubWF4RmlsZVNpemUucHVzaCh7IG5hbWU6IGZpbGUubmFtZSwgbWF4RmlsZVNpemU6IHRoaXMubWF4RmlsZVNpemUsIGFjdHVhbEZpbGVTaXplOiBmaWxlLnNpemUgfSk7XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9XG5cbiAgICByZXR1cm4gT2JqZWN0LmtleXMoZXJyb3JzKS5sZW5ndGggPyBlcnJvcnMgOiBudWxsO1xuICB9XG59XG4iXX0=
|
|
@@ -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.
|
|
@@ -50,4 +50,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.2", ngImpor
|
|
|
50
50
|
type: HostListener,
|
|
51
51
|
args: ['change']
|
|
52
52
|
}] } });
|
|
53
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
53
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZmlsZS1pbnB1dC12YWx1ZS1hY2Nlc3Nvci5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2FuZ3VsYXIvc3JjL2Zvcm1zL2ZpbGUtaW5wdXQvZmlsZS1pbnB1dC12YWx1ZS1hY2Nlc3Nvci50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQTs7Ozs7R0FLRztBQUVILE9BQU8sRUFBRSxTQUFTLEVBQWMsWUFBWSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQ3BFLE9BQU8sRUFBd0IsaUJBQWlCLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUV6RSxPQUFPLEVBQUUsVUFBVSxFQUFFLFdBQVcsRUFBRSxNQUFNLHNCQUFzQixDQUFDOztBQU0vRCxNQUFNLE9BQU8seUJBQXlCO0lBQ3BDLFlBQTZCLFVBQXdDO1FBQXhDLGVBQVUsR0FBVixVQUFVLENBQThCO1FBNEJyRSxpRUFBaUU7UUFDekQsYUFBUSxHQUFHLENBQUMsTUFBZ0IsRUFBRSxFQUFFLEdBQUUsQ0FBQyxDQUFDO1FBRTVDLGlFQUFpRTtRQUN6RCxjQUFTLEdBQUcsR0FBRyxFQUFFLEdBQUUsQ0FBQyxDQUFDO0lBaEMyQyxDQUFDO0lBRXpFLFVBQVUsQ0FBQyxLQUFlO1FBQ3hCLElBQUksS0FBSyxLQUFLLFNBQVMsSUFBSSxLQUFLLEtBQUssSUFBSSxJQUFJLENBQUMsQ0FBQyxLQUFLLFlBQVksUUFBUSxDQUFDLEVBQUU7WUFDekUsTUFBTSxJQUFJLEtBQUssQ0FBQyx1REFBdUQsQ0FBQyxDQUFDO1NBQzFFO1FBRUQsSUFBSSxLQUFLLEVBQUU7WUFDVCxXQUFXLENBQUMsSUFBSSxDQUFDLFVBQVUsQ0FBQyxhQUFhLEVBQUUsS0FBSyxDQUFDLENBQUM7U0FDbkQ7YUFBTSxJQUFJLElBQUksQ0FBQyxVQUFVLENBQUMsYUFBYSxDQUFDLEtBQUssQ0FBQyxNQUFNLEVBQUU7WUFDckQsVUFBVSxDQUFDLElBQUksQ0FBQyxVQUFVLENBQUMsYUFBYSxDQUFDLENBQUM7U0FDM0M7SUFDSCxDQUFDO0lBRUQsZ0JBQWdCLENBQUMsRUFBNkI7UUFDNUMsSUFBSSxDQUFDLFFBQVEsR0FBRyxFQUFFLENBQUM7SUFDckIsQ0FBQztJQUVELGlCQUFpQixDQUFDLEVBQWM7UUFDOUIsSUFBSSxDQUFDLFNBQVMsR0FBRyxFQUFFLENBQUM7SUFDdEIsQ0FBQztJQUdPLFlBQVk7UUFDbEIsSUFBSSxDQUFDLFNBQVMsRUFBRSxDQUFDO1FBQ2pCLElBQUksQ0FBQyxRQUFRLENBQUMsSUFBSSxDQUFDLFVBQVUsQ0FBQyxhQUFhLENBQUMsS0FBSyxDQUFDLENBQUM7SUFDckQsQ0FBQzs7c0hBM0JVLHlCQUF5QjswR0FBekIseUJBQXlCLGtIQUZ6QixDQUFDLEVBQUUsT0FBTyxFQUFFLGlCQUFpQixFQUFFLFdBQVcsRUFBRSx5QkFBeUIsRUFBRSxLQUFLLEVBQUUsSUFBSSxFQUFFLENBQUM7MkZBRXJGLHlCQUF5QjtrQkFKckMsU0FBUzttQkFBQztvQkFDVCxRQUFRLEVBQUUsa0NBQWtDO29CQUM1QyxTQUFTLEVBQUUsQ0FBQyxFQUFFLE9BQU8sRUFBRSxpQkFBaUIsRUFBRSxXQUFXLDJCQUEyQixFQUFFLEtBQUssRUFBRSxJQUFJLEVBQUUsQ0FBQztpQkFDakc7aUdBeUJTLFlBQVk7c0JBRG5CLFlBQVk7dUJBQUMsUUFBUSIsInNvdXJjZXNDb250ZW50IjpbIi8qXG4gKiBDb3B5cmlnaHQgKGMpIDIwMTYtMjAyNSBCcm9hZGNvbS4gQWxsIFJpZ2h0cyBSZXNlcnZlZC5cbiAqIFRoZSB0ZXJtIFwiQnJvYWRjb21cIiByZWZlcnMgdG8gQnJvYWRjb20gSW5jLiBhbmQvb3IgaXRzIHN1YnNpZGlhcmllcy5cbiAqIFRoaXMgc29mdHdhcmUgaXMgcmVsZWFzZWQgdW5kZXIgTUlUIGxpY2Vuc2UuXG4gKiBUaGUgZnVsbCBsaWNlbnNlIGluZm9ybWF0aW9uIGNhbiBiZSBmb3VuZCBpbiBMSUNFTlNFIGluIHRoZSByb290IGRpcmVjdG9yeSBvZiB0aGlzIHByb2plY3QuXG4gKi9cblxuaW1wb3J0IHsgRGlyZWN0aXZlLCBFbGVtZW50UmVmLCBIb3N0TGlzdGVuZXIgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IENvbnRyb2xWYWx1ZUFjY2Vzc29yLCBOR19WQUxVRV9BQ0NFU1NPUiB9IGZyb20gJ0Bhbmd1bGFyL2Zvcm1zJztcblxuaW1wb3J0IHsgY2xlYXJGaWxlcywgc2VsZWN0RmlsZXMgfSBmcm9tICcuL2ZpbGUtaW5wdXQuaGVscGVycyc7XG5cbkBEaXJlY3RpdmUoe1xuICBzZWxlY3RvcjogJ2lucHV0W3R5cGU9XCJmaWxlXCJdW2NsckZpbGVJbnB1dF0nLFxuICBwcm92aWRlcnM6IFt7IHByb3ZpZGU6IE5HX1ZBTFVFX0FDQ0VTU09SLCB1c2VFeGlzdGluZzogQ2xyRmlsZUlucHV0VmFsdWVBY2Nlc3NvciwgbXVsdGk6IHRydWUgfV0sXG59KVxuZXhwb3J0IGNsYXNzIENsckZpbGVJbnB1dFZhbHVlQWNjZXNzb3IgaW1wbGVtZW50cyBDb250cm9sVmFsdWVBY2Nlc3NvciB7XG4gIGNvbnN0cnVjdG9yKHByaXZhdGUgcmVhZG9ubHkgZWxlbWVudFJlZjogRWxlbWVudFJlZjxIVE1MSW5wdXRFbGVtZW50Pikge31cblxuICB3cml0ZVZhbHVlKHZhbHVlOiBGaWxlTGlzdCkge1xuICAgIGlmICh2YWx1ZSAhPT0gdW5kZWZpbmVkICYmIHZhbHVlICE9PSBudWxsICYmICEodmFsdWUgaW5zdGFuY2VvZiBGaWxlTGlzdCkpIHtcbiAgICAgIHRocm93IG5ldyBFcnJvcignVGhlIHZhbHVlIG9mIGEgZmlsZSBpbnB1dCBjb250cm9sIG11c3QgYmUgYSBGaWxlTGlzdC4nKTtcbiAgICB9XG5cbiAgICBpZiAodmFsdWUpIHtcbiAgICAgIHNlbGVjdEZpbGVzKHRoaXMuZWxlbWVudFJlZi5uYXRpdmVFbGVtZW50LCB2YWx1ZSk7XG4gICAgfSBlbHNlIGlmICh0aGlzLmVsZW1lbnRSZWYubmF0aXZlRWxlbWVudC5maWxlcy5sZW5ndGgpIHtcbiAgICAgIGNsZWFyRmlsZXModGhpcy5lbGVtZW50UmVmLm5hdGl2ZUVsZW1lbnQpO1xuICAgIH1cbiAgfVxuXG4gIHJlZ2lzdGVyT25DaGFuZ2UoZm46ICh2YWx1ZTogRmlsZUxpc3QpID0+IHZvaWQpIHtcbiAgICB0aGlzLm9uQ2hhbmdlID0gZm47XG4gIH1cblxuICByZWdpc3Rlck9uVG91Y2hlZChmbjogKCkgPT4gdm9pZCkge1xuICAgIHRoaXMub25Ub3VjaGVkID0gZm47XG4gIH1cblxuICBASG9zdExpc3RlbmVyKCdjaGFuZ2UnKVxuICBwcml2YXRlIGhhbmRsZUNoYW5nZSgpIHtcbiAgICB0aGlzLm9uVG91Y2hlZCgpO1xuICAgIHRoaXMub25DaGFuZ2UodGhpcy5lbGVtZW50UmVmLm5hdGl2ZUVsZW1lbnQuZmlsZXMpO1xuICB9XG5cbiAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lICBAdHlwZXNjcmlwdC1lc2xpbnQvbm8tZW1wdHktZnVuY3Rpb25cbiAgcHJpdmF0ZSBvbkNoYW5nZSA9IChfdmFsdWU6IEZpbGVMaXN0KSA9PiB7fTtcblxuICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgIEB0eXBlc2NyaXB0LWVzbGludC9uby1lbXB0eS1mdW5jdGlvblxuICBwcml2YXRlIG9uVG91Y2hlZCA9ICgpID0+IHt9O1xufVxuIl19
|
|
@@ -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.
|
|
@@ -19,4 +19,4 @@ export function clearFiles(fileInputElement) {
|
|
|
19
19
|
fileInputElement.value = '';
|
|
20
20
|
fileInputElement.dispatchEvent(new Event('change', { bubbles: true, cancelable: true }));
|
|
21
21
|
}
|
|
22
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
22
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZmlsZS1pbnB1dC5oZWxwZXJzLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvYW5ndWxhci9zcmMvZm9ybXMvZmlsZS1pbnB1dC9maWxlLWlucHV0LmhlbHBlcnMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUE7Ozs7O0dBS0c7QUFFSCxNQUFNLFVBQVUsYUFBYSxDQUFDLEtBQWE7SUFDekMsTUFBTSxZQUFZLEdBQUcsSUFBSSxZQUFZLEVBQUUsQ0FBQztJQUV4QyxLQUFLLE1BQU0sSUFBSSxJQUFJLEtBQUssRUFBRTtRQUN4QixZQUFZLENBQUMsS0FBSyxDQUFDLEdBQUcsQ0FBQyxJQUFJLENBQUMsQ0FBQztLQUM5QjtJQUVELE9BQU8sWUFBWSxDQUFDLEtBQUssQ0FBQztBQUM1QixDQUFDO0FBRUQsTUFBTSxVQUFVLFdBQVcsQ0FBQyxnQkFBa0MsRUFBRSxLQUF3QjtJQUN0RixnQkFBZ0IsQ0FBQyxLQUFLLEdBQUcsS0FBSyxZQUFZLFFBQVEsQ0FBQyxDQUFDLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQyxhQUFhLENBQUMsS0FBSyxDQUFDLENBQUM7SUFDbEYsZ0JBQWdCLENBQUMsYUFBYSxDQUFDLElBQUksS0FBSyxDQUFDLFFBQVEsRUFBRSxFQUFFLE9BQU8sRUFBRSxJQUFJLEVBQUUsVUFBVSxFQUFFLElBQUksRUFBRSxDQUFDLENBQUMsQ0FBQztBQUMzRixDQUFDO0FBRUQsTUFBTSxVQUFVLFVBQVUsQ0FBQyxnQkFBa0M7SUFDM0QsZ0JBQWdCLENBQUMsS0FBSyxHQUFHLEVBQUUsQ0FBQztJQUM1QixnQkFBZ0IsQ0FBQyxhQUFhLENBQUMsSUFBSSxLQUFLLENBQUMsUUFBUSxFQUFFLEVBQUUsT0FBTyxFQUFFLElBQUksRUFBRSxVQUFVLEVBQUUsSUFBSSxFQUFFLENBQUMsQ0FBQyxDQUFDO0FBQzNGLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyIvKlxuICogQ29weXJpZ2h0IChjKSAyMDE2LTIwMjUgQnJvYWRjb20uIEFsbCBSaWdodHMgUmVzZXJ2ZWQuXG4gKiBUaGUgdGVybSBcIkJyb2FkY29tXCIgcmVmZXJzIHRvIEJyb2FkY29tIEluYy4gYW5kL29yIGl0cyBzdWJzaWRpYXJpZXMuXG4gKiBUaGlzIHNvZnR3YXJlIGlzIHJlbGVhc2VkIHVuZGVyIE1JVCBsaWNlbnNlLlxuICogVGhlIGZ1bGwgbGljZW5zZSBpbmZvcm1hdGlvbiBjYW4gYmUgZm91bmQgaW4gTElDRU5TRSBpbiB0aGUgcm9vdCBkaXJlY3Rvcnkgb2YgdGhpcyBwcm9qZWN0LlxuICovXG5cbmV4cG9ydCBmdW5jdGlvbiBidWlsZEZpbGVMaXN0KGZpbGVzOiBGaWxlW10pIHtcbiAgY29uc3QgZGF0YVRyYW5zZmVyID0gbmV3IERhdGFUcmFuc2ZlcigpO1xuXG4gIGZvciAoY29uc3QgZmlsZSBvZiBmaWxlcykge1xuICAgIGRhdGFUcmFuc2Zlci5pdGVtcy5hZGQoZmlsZSk7XG4gIH1cblxuICByZXR1cm4gZGF0YVRyYW5zZmVyLmZpbGVzO1xufVxuXG5leHBvcnQgZnVuY3Rpb24gc2VsZWN0RmlsZXMoZmlsZUlucHV0RWxlbWVudDogSFRNTElucHV0RWxlbWVudCwgZmlsZXM6IEZpbGVbXSB8IEZpbGVMaXN0KSB7XG4gIGZpbGVJbnB1dEVsZW1lbnQuZmlsZXMgPSBmaWxlcyBpbnN0YW5jZW9mIEZpbGVMaXN0ID8gZmlsZXMgOiBidWlsZEZpbGVMaXN0KGZpbGVzKTtcbiAgZmlsZUlucHV0RWxlbWVudC5kaXNwYXRjaEV2ZW50KG5ldyBFdmVudCgnY2hhbmdlJywgeyBidWJibGVzOiB0cnVlLCBjYW5jZWxhYmxlOiB0cnVlIH0pKTtcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIGNsZWFyRmlsZXMoZmlsZUlucHV0RWxlbWVudDogSFRNTElucHV0RWxlbWVudCkge1xuICBmaWxlSW5wdXRFbGVtZW50LnZhbHVlID0gJyc7XG4gIGZpbGVJbnB1dEVsZW1lbnQuZGlzcGF0Y2hFdmVudChuZXcgRXZlbnQoJ2NoYW5nZScsIHsgYnViYmxlczogdHJ1ZSwgY2FuY2VsYWJsZTogdHJ1ZSB9KSk7XG59XG4iXX0=
|
|
@@ -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.
|
|
@@ -48,13 +48,14 @@ export class ClrFileInput extends WrappedFormControl {
|
|
|
48
48
|
}
|
|
49
49
|
}
|
|
50
50
|
ClrFileInput.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.2", ngImport: i0, type: ClrFileInput, deps: [{ token: i0.Injector }, { token: i0.Renderer2 }, { token: i0.ViewContainerRef }, { token: i0.ElementRef }, { token: i1.NgControl, optional: true, self: true }, { token: i2.ClrCommonStringsService }], target: i0.ɵɵFactoryTarget.Directive });
|
|
51
|
-
ClrFileInput.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "15.2.2", type: ClrFileInput, selector: "input[type=\"file\"][clrFileInput]", host: { attributes: { "tabindex": "-1" }, listeners: { "change": "handleChange()" }, properties: { "class.clr-file-input": "true" } }, usesInheritance: true, ngImport: i0 });
|
|
51
|
+
ClrFileInput.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "15.2.2", type: ClrFileInput, selector: "input[type=\"file\"][clrFileInput]", host: { attributes: { "tabindex": "-1", "aria-hidden": "true" }, listeners: { "change": "handleChange()" }, properties: { "class.clr-file-input": "true" } }, usesInheritance: true, ngImport: i0 });
|
|
52
52
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.2", ngImport: i0, type: ClrFileInput, decorators: [{
|
|
53
53
|
type: Directive,
|
|
54
54
|
args: [{
|
|
55
55
|
selector: 'input[type="file"][clrFileInput]',
|
|
56
56
|
host: {
|
|
57
57
|
tabindex: '-1',
|
|
58
|
+
'aria-hidden': 'true',
|
|
58
59
|
'[class.clr-file-input]': 'true',
|
|
59
60
|
},
|
|
60
61
|
}]
|
|
@@ -66,4 +67,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.2", ngImpor
|
|
|
66
67
|
type: HostListener,
|
|
67
68
|
args: ['change']
|
|
68
69
|
}] } });
|
|
69
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
70
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZmlsZS1pbnB1dC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2FuZ3VsYXIvc3JjL2Zvcm1zL2ZpbGUtaW5wdXQvZmlsZS1pbnB1dC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQTs7Ozs7R0FLRztBQUVILE9BQU8sRUFDTCxTQUFTLEVBRVQsWUFBWSxFQUVaLFFBQVEsRUFFUixJQUFJLEdBRUwsTUFBTSxlQUFlLENBQUM7QUFJdkIsT0FBTyxFQUFFLGtCQUFrQixFQUFFLE1BQU0sMkJBQTJCLENBQUM7QUFDL0QsT0FBTyxFQUFFLHFCQUFxQixFQUFFLE1BQU0sd0JBQXdCLENBQUM7Ozs7QUFnQi9ELE1BQU0sT0FBTyxZQUFhLFNBQVEsa0JBQXlDO0lBR3pFLFlBQ0UsUUFBa0IsRUFDbEIsUUFBbUIsRUFDbkIsZ0JBQWtDLEVBQ3pCLFVBQXdDLEVBQzdCLE9BQWtCLEVBQ3JCLGFBQXNDO1FBRXZELEtBQUssQ0FBQyxnQkFBZ0IsRUFBRSxxQkFBcUIsRUFBRSxRQUFRLEVBQUUsT0FBTyxFQUFFLFFBQVEsRUFBRSxVQUFVLENBQUMsQ0FBQztRQUovRSxlQUFVLEdBQVYsVUFBVSxDQUE4QjtRQUVoQyxrQkFBYSxHQUFiLGFBQWEsQ0FBeUI7UUFSekQsY0FBUyxHQUEwQixTQUFTLENBQUM7SUFXN0MsQ0FBQztJQUdPLFlBQVk7UUFDbEIsSUFBSSxDQUFDLGVBQWUsRUFBRSxDQUFDO0lBQ3pCLENBQUM7SUFFTyxlQUFlO1FBQ3JCLE1BQU0sS0FBSyxHQUFHLElBQUksQ0FBQyxVQUFVLENBQUMsYUFBYSxDQUFDLEtBQUssQ0FBQztRQUNsRCxJQUFJLG9CQUE0QixDQUFDO1FBQ2pDLElBQUkscUJBQTZCLENBQUM7UUFFbEMsSUFBSSxLQUFLLEVBQUUsTUFBTSxLQUFLLENBQUMsRUFBRTtZQUN2QixNQUFNLFFBQVEsR0FBRyxLQUFLLENBQUMsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDO1lBRS9CLG9CQUFvQixHQUFHLFFBQVEsQ0FBQztZQUVoQyxxQkFBcUIsR0FBRyxJQUFJLENBQUMsYUFBYSxDQUFDLEtBQUssQ0FBQyxJQUFJLENBQUMsYUFBYSxDQUFDLElBQUksQ0FBQyxTQUFTLEVBQUU7Z0JBQ2xGLElBQUksRUFBRSxRQUFRO2FBQ2YsQ0FBQyxDQUFDO1NBQ0o7YUFBTSxJQUFJLEtBQUssRUFBRSxNQUFNLEdBQUcsQ0FBQyxFQUFFO1lBQzVCLE1BQU0sU0FBUyxHQUFHLEtBQUssQ0FBQyxNQUFNLENBQUMsUUFBUSxFQUFFLENBQUM7WUFFMUMsb0JBQW9CLEdBQUcsSUFBSSxDQUFDLGFBQWEsQ0FBQyxLQUFLLENBQUMsSUFBSSxDQUFDLGFBQWEsQ0FBQyxJQUFJLENBQUMsU0FBUyxFQUFFO2dCQUNqRixLQUFLLEVBQUUsU0FBUzthQUNqQixDQUFDLENBQUM7WUFFSCxxQkFBcUIsR0FBRyxJQUFJLENBQUMsYUFBYSxDQUFDLEtBQUssQ0FBQyxJQUFJLENBQUMsYUFBYSxDQUFDLElBQUksQ0FBQyxVQUFVLEVBQUU7Z0JBQ25GLEtBQUssRUFBRSxTQUFTO2FBQ2pCLENBQUMsQ0FBQztTQUNKO1FBRUQsSUFBSSxDQUFDLFNBQVMsR0FBRztZQUNmLFNBQVMsRUFBRSxLQUFLLENBQUMsTUFBTTtZQUN2QixXQUFXLEVBQUUsb0JBQW9CO1lBQ2pDLHFCQUFxQjtTQUN0QixDQUFDO0lBQ0osQ0FBQzs7eUdBakRVLFlBQVk7NkZBQVosWUFBWTsyRkFBWixZQUFZO2tCQVJ4QixTQUFTO21CQUFDO29CQUNULFFBQVEsRUFBRSxrQ0FBa0M7b0JBQzVDLElBQUksRUFBRTt3QkFDSixRQUFRLEVBQUUsSUFBSTt3QkFDZCxhQUFhLEVBQUUsTUFBTTt3QkFDckIsd0JBQXdCLEVBQUUsTUFBTTtxQkFDakM7aUJBQ0Y7OzBCQVNJLElBQUk7OzBCQUFJLFFBQVE7a0ZBT1gsWUFBWTtzQkFEbkIsWUFBWTt1QkFBQyxRQUFRIiwic291cmNlc0NvbnRlbnQiOlsiLypcbiAqIENvcHlyaWdodCAoYykgMjAxNi0yMDI1IEJyb2FkY29tLiBBbGwgUmlnaHRzIFJlc2VydmVkLlxuICogVGhlIHRlcm0gXCJCcm9hZGNvbVwiIHJlZmVycyB0byBCcm9hZGNvbSBJbmMuIGFuZC9vciBpdHMgc3Vic2lkaWFyaWVzLlxuICogVGhpcyBzb2Z0d2FyZSBpcyByZWxlYXNlZCB1bmRlciBNSVQgbGljZW5zZS5cbiAqIFRoZSBmdWxsIGxpY2Vuc2UgaW5mb3JtYXRpb24gY2FuIGJlIGZvdW5kIGluIExJQ0VOU0UgaW4gdGhlIHJvb3QgZGlyZWN0b3J5IG9mIHRoaXMgcHJvamVjdC5cbiAqL1xuXG5pbXBvcnQge1xuICBEaXJlY3RpdmUsXG4gIEVsZW1lbnRSZWYsXG4gIEhvc3RMaXN0ZW5lcixcbiAgSW5qZWN0b3IsXG4gIE9wdGlvbmFsLFxuICBSZW5kZXJlcjIsXG4gIFNlbGYsXG4gIFZpZXdDb250YWluZXJSZWYsXG59IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgTmdDb250cm9sIH0gZnJvbSAnQGFuZ3VsYXIvZm9ybXMnO1xuXG5pbXBvcnQgeyBDbHJDb21tb25TdHJpbmdzU2VydmljZSB9IGZyb20gJy4uLy4uL3V0aWxzJztcbmltcG9ydCB7IFdyYXBwZWRGb3JtQ29udHJvbCB9IGZyb20gJy4uL2NvbW1vbi93cmFwcGVkLWNvbnRyb2wnO1xuaW1wb3J0IHsgQ2xyRmlsZUlucHV0Q29udGFpbmVyIH0gZnJvbSAnLi9maWxlLWlucHV0LWNvbnRhaW5lcic7XG5cbmV4cG9ydCBpbnRlcmZhY2UgQ2xyRmlsZUlucHV0U2VsZWN0aW9uIHtcbiAgZmlsZUNvdW50OiBudW1iZXI7XG4gIGJ1dHRvbkxhYmVsOiBzdHJpbmc7XG4gIGNsZWFyRmlsZXNCdXR0b25MYWJlbDogc3RyaW5nO1xufVxuXG5ARGlyZWN0aXZlKHtcbiAgc2VsZWN0b3I6ICdpbnB1dFt0eXBlPVwiZmlsZVwiXVtjbHJGaWxlSW5wdXRdJyxcbiAgaG9zdDoge1xuICAgIHRhYmluZGV4OiAnLTEnLCAvLyBSZW1vdmUgdGhlIGhpZGRlbiBmaWxlIGBpbnB1dGAgZWxlbWVudCBmcm9tIHRoZSB0YWIgb3JkZXIgYmVjYXVzZSB0aGUgYnJvd3NlIGBidXR0b25gIHJlcGxhY2VzIGl0LlxuICAgICdhcmlhLWhpZGRlbic6ICd0cnVlJywgLy8gUmVtb3ZlIHRoZSBoaWRkZW4gZmlsZSBgaW5wdXRgIGVsZW1lbnQgZnJvbSB0aGUgYWNjZXNzaWJpbGl0eSB0cmVlIGJlY2F1c2UgdGhlIGJyb3dzZSBgYnV0dG9uYCByZXBsYWNlcyBpdC5cbiAgICAnW2NsYXNzLmNsci1maWxlLWlucHV0XSc6ICd0cnVlJyxcbiAgfSxcbn0pXG5leHBvcnQgY2xhc3MgQ2xyRmlsZUlucHV0IGV4dGVuZHMgV3JhcHBlZEZvcm1Db250cm9sPENsckZpbGVJbnB1dENvbnRhaW5lcj4ge1xuICBzZWxlY3Rpb246IENsckZpbGVJbnB1dFNlbGVjdGlvbiA9IHVuZGVmaW5lZDtcblxuICBjb25zdHJ1Y3RvcihcbiAgICBpbmplY3RvcjogSW5qZWN0b3IsXG4gICAgcmVuZGVyZXI6IFJlbmRlcmVyMixcbiAgICB2aWV3Q29udGFpbmVyUmVmOiBWaWV3Q29udGFpbmVyUmVmLFxuICAgIHJlYWRvbmx5IGVsZW1lbnRSZWY6IEVsZW1lbnRSZWY8SFRNTElucHV0RWxlbWVudD4sXG4gICAgQFNlbGYoKSBAT3B0aW9uYWwoKSBjb250cm9sOiBOZ0NvbnRyb2wsXG4gICAgcHJpdmF0ZSByZWFkb25seSBjb21tb25TdHJpbmdzOiBDbHJDb21tb25TdHJpbmdzU2VydmljZVxuICApIHtcbiAgICBzdXBlcih2aWV3Q29udGFpbmVyUmVmLCBDbHJGaWxlSW5wdXRDb250YWluZXIsIGluamVjdG9yLCBjb250cm9sLCByZW5kZXJlciwgZWxlbWVudFJlZik7XG4gIH1cblxuICBASG9zdExpc3RlbmVyKCdjaGFuZ2UnKVxuICBwcml2YXRlIGhhbmRsZUNoYW5nZSgpIHtcbiAgICB0aGlzLnVwZGF0ZVNlbGVjdGlvbigpO1xuICB9XG5cbiAgcHJpdmF0ZSB1cGRhdGVTZWxlY3Rpb24oKSB7XG4gICAgY29uc3QgZmlsZXMgPSB0aGlzLmVsZW1lbnRSZWYubmF0aXZlRWxlbWVudC5maWxlcztcbiAgICBsZXQgc2VsZWN0aW9uQnV0dG9uTGFiZWw6IHN0cmluZztcbiAgICBsZXQgY2xlYXJGaWxlc0J1dHRvbkxhYmVsOiBzdHJpbmc7XG5cbiAgICBpZiAoZmlsZXM/Lmxlbmd0aCA9PT0gMSkge1xuICAgICAgY29uc3QgZmlsZW5hbWUgPSBmaWxlc1swXS5uYW1lO1xuXG4gICAgICBzZWxlY3Rpb25CdXR0b25MYWJlbCA9IGZpbGVuYW1lO1xuXG4gICAgICBjbGVhckZpbGVzQnV0dG9uTGFiZWwgPSB0aGlzLmNvbW1vblN0cmluZ3MucGFyc2UodGhpcy5jb21tb25TdHJpbmdzLmtleXMuY2xlYXJGaWxlLCB7XG4gICAgICAgIEZJTEU6IGZpbGVuYW1lLFxuICAgICAgfSk7XG4gICAgfSBlbHNlIGlmIChmaWxlcz8ubGVuZ3RoID4gMSkge1xuICAgICAgY29uc3QgZmlsZUNvdW50ID0gZmlsZXMubGVuZ3RoLnRvU3RyaW5nKCk7XG5cbiAgICAgIHNlbGVjdGlvbkJ1dHRvbkxhYmVsID0gdGhpcy5jb21tb25TdHJpbmdzLnBhcnNlKHRoaXMuY29tbW9uU3RyaW5ncy5rZXlzLmZpbGVDb3VudCwge1xuICAgICAgICBDT1VOVDogZmlsZUNvdW50LFxuICAgICAgfSk7XG5cbiAgICAgIGNsZWFyRmlsZXNCdXR0b25MYWJlbCA9IHRoaXMuY29tbW9uU3RyaW5ncy5wYXJzZSh0aGlzLmNvbW1vblN0cmluZ3Mua2V5cy5jbGVhckZpbGVzLCB7XG4gICAgICAgIENPVU5UOiBmaWxlQ291bnQsXG4gICAgICB9KTtcbiAgICB9XG5cbiAgICB0aGlzLnNlbGVjdGlvbiA9IHtcbiAgICAgIGZpbGVDb3VudDogZmlsZXMubGVuZ3RoLFxuICAgICAgYnV0dG9uTGFiZWw6IHNlbGVjdGlvbkJ1dHRvbkxhYmVsLFxuICAgICAgY2xlYXJGaWxlc0J1dHRvbkxhYmVsLFxuICAgIH07XG4gIH1cbn1cbiJdfQ==
|
|
@@ -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.
|
|
@@ -13,6 +13,9 @@ import { ClrFileInput } from './file-input';
|
|
|
13
13
|
import { ClrFileInputContainer } from './file-input-container';
|
|
14
14
|
import { ClrFileInputValidator } from './file-input-validator';
|
|
15
15
|
import { ClrFileInputValueAccessor } from './file-input-value-accessor';
|
|
16
|
+
import { ClrFileList } from './file-list';
|
|
17
|
+
import { ClrFileError, ClrFileInfo, ClrFileSuccess } from './file-messages';
|
|
18
|
+
import { ClrFileMessagesTemplate } from './file-messages-template';
|
|
16
19
|
import * as i0 from "@angular/core";
|
|
17
20
|
export class ClrFileInputModule {
|
|
18
21
|
constructor() {
|
|
@@ -20,24 +23,52 @@ export class ClrFileInputModule {
|
|
|
20
23
|
}
|
|
21
24
|
}
|
|
22
25
|
ClrFileInputModule.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.2", ngImport: i0, type: ClrFileInputModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });
|
|
23
|
-
ClrFileInputModule.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "15.2.2", ngImport: i0, type: ClrFileInputModule, declarations: [ClrFileInput,
|
|
26
|
+
ClrFileInputModule.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "15.2.2", ngImport: i0, type: ClrFileInputModule, declarations: [ClrFileInput,
|
|
27
|
+
ClrFileInputContainer,
|
|
28
|
+
ClrFileInputValidator,
|
|
29
|
+
ClrFileInputValueAccessor,
|
|
30
|
+
ClrFileList,
|
|
31
|
+
ClrFileMessagesTemplate,
|
|
32
|
+
ClrFileInfo,
|
|
33
|
+
ClrFileSuccess,
|
|
34
|
+
ClrFileError], imports: [CommonModule, ClrIconModule, ClrCommonFormsModule], exports: [ClrCommonFormsModule,
|
|
24
35
|
ClrFileInput,
|
|
25
36
|
ClrFileInputContainer,
|
|
26
37
|
ClrFileInputValidator,
|
|
27
|
-
ClrFileInputValueAccessor
|
|
38
|
+
ClrFileInputValueAccessor,
|
|
39
|
+
ClrFileList,
|
|
40
|
+
ClrFileMessagesTemplate,
|
|
41
|
+
ClrFileInfo,
|
|
42
|
+
ClrFileSuccess,
|
|
43
|
+
ClrFileError] });
|
|
28
44
|
ClrFileInputModule.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "15.2.2", ngImport: i0, type: ClrFileInputModule, imports: [CommonModule, ClrIconModule, ClrCommonFormsModule, ClrCommonFormsModule] });
|
|
29
45
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.2", ngImport: i0, type: ClrFileInputModule, decorators: [{
|
|
30
46
|
type: NgModule,
|
|
31
47
|
args: [{
|
|
32
48
|
imports: [CommonModule, ClrIconModule, ClrCommonFormsModule],
|
|
33
|
-
declarations: [
|
|
49
|
+
declarations: [
|
|
50
|
+
ClrFileInput,
|
|
51
|
+
ClrFileInputContainer,
|
|
52
|
+
ClrFileInputValidator,
|
|
53
|
+
ClrFileInputValueAccessor,
|
|
54
|
+
ClrFileList,
|
|
55
|
+
ClrFileMessagesTemplate,
|
|
56
|
+
ClrFileInfo,
|
|
57
|
+
ClrFileSuccess,
|
|
58
|
+
ClrFileError,
|
|
59
|
+
],
|
|
34
60
|
exports: [
|
|
35
61
|
ClrCommonFormsModule,
|
|
36
62
|
ClrFileInput,
|
|
37
63
|
ClrFileInputContainer,
|
|
38
64
|
ClrFileInputValidator,
|
|
39
65
|
ClrFileInputValueAccessor,
|
|
66
|
+
ClrFileList,
|
|
67
|
+
ClrFileMessagesTemplate,
|
|
68
|
+
ClrFileInfo,
|
|
69
|
+
ClrFileSuccess,
|
|
70
|
+
ClrFileError,
|
|
40
71
|
],
|
|
41
72
|
}]
|
|
42
73
|
}], ctorParameters: function () { return []; } });
|
|
43
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
74
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZmlsZS1pbnB1dC5tb2R1bGUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9hbmd1bGFyL3NyYy9mb3Jtcy9maWxlLWlucHV0L2ZpbGUtaW5wdXQubW9kdWxlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBOzs7OztHQUtHO0FBRUgsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBQy9DLE9BQU8sRUFBRSxRQUFRLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDekMsT0FBTyxFQUFFLFlBQVksRUFBRSxjQUFjLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUU5RCxPQUFPLEVBQUUsYUFBYSxFQUFFLE1BQU0sd0JBQXdCLENBQUM7QUFDdkQsT0FBTyxFQUFFLG9CQUFvQixFQUFFLE1BQU0seUJBQXlCLENBQUM7QUFDL0QsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLGNBQWMsQ0FBQztBQUM1QyxPQUFPLEVBQUUscUJBQXFCLEVBQUUsTUFBTSx3QkFBd0IsQ0FBQztBQUMvRCxPQUFPLEVBQUUscUJBQXFCLEVBQUUsTUFBTSx3QkFBd0IsQ0FBQztBQUMvRCxPQUFPLEVBQUUseUJBQXlCLEVBQUUsTUFBTSw2QkFBNkIsQ0FBQztBQUN4RSxPQUFPLEVBQUUsV0FBVyxFQUFFLE1BQU0sYUFBYSxDQUFDO0FBQzFDLE9BQU8sRUFBRSxZQUFZLEVBQUUsV0FBVyxFQUFFLGNBQWMsRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBQzVFLE9BQU8sRUFBRSx1QkFBdUIsRUFBRSxNQUFNLDBCQUEwQixDQUFDOztBQTRCbkUsTUFBTSxPQUFPLGtCQUFrQjtJQUM3QjtRQUNFLFlBQVksQ0FBQyxRQUFRLENBQUMsY0FBYyxDQUFDLENBQUM7SUFDeEMsQ0FBQzs7K0dBSFUsa0JBQWtCO2dIQUFsQixrQkFBa0IsaUJBdkIzQixZQUFZO1FBQ1oscUJBQXFCO1FBQ3JCLHFCQUFxQjtRQUNyQix5QkFBeUI7UUFDekIsV0FBVztRQUNYLHVCQUF1QjtRQUN2QixXQUFXO1FBQ1gsY0FBYztRQUNkLFlBQVksYUFWSixZQUFZLEVBQUUsYUFBYSxFQUFFLG9CQUFvQixhQWF6RCxvQkFBb0I7UUFDcEIsWUFBWTtRQUNaLHFCQUFxQjtRQUNyQixxQkFBcUI7UUFDckIseUJBQXlCO1FBQ3pCLFdBQVc7UUFDWCx1QkFBdUI7UUFDdkIsV0FBVztRQUNYLGNBQWM7UUFDZCxZQUFZO2dIQUdILGtCQUFrQixZQXpCbkIsWUFBWSxFQUFFLGFBQWEsRUFBRSxvQkFBb0IsRUFhekQsb0JBQW9COzJGQVlYLGtCQUFrQjtrQkExQjlCLFFBQVE7bUJBQUM7b0JBQ1IsT0FBTyxFQUFFLENBQUMsWUFBWSxFQUFFLGFBQWEsRUFBRSxvQkFBb0IsQ0FBQztvQkFDNUQsWUFBWSxFQUFFO3dCQUNaLFlBQVk7d0JBQ1oscUJBQXFCO3dCQUNyQixxQkFBcUI7d0JBQ3JCLHlCQUF5Qjt3QkFDekIsV0FBVzt3QkFDWCx1QkFBdUI7d0JBQ3ZCLFdBQVc7d0JBQ1gsY0FBYzt3QkFDZCxZQUFZO3FCQUNiO29CQUNELE9BQU8sRUFBRTt3QkFDUCxvQkFBb0I7d0JBQ3BCLFlBQVk7d0JBQ1oscUJBQXFCO3dCQUNyQixxQkFBcUI7d0JBQ3JCLHlCQUF5Qjt3QkFDekIsV0FBVzt3QkFDWCx1QkFBdUI7d0JBQ3ZCLFdBQVc7d0JBQ1gsY0FBYzt3QkFDZCxZQUFZO3FCQUNiO2lCQUNGIiwic291cmNlc0NvbnRlbnQiOlsiLypcbiAqIENvcHlyaWdodCAoYykgMjAxNi0yMDI1IEJyb2FkY29tLiBBbGwgUmlnaHRzIFJlc2VydmVkLlxuICogVGhlIHRlcm0gXCJCcm9hZGNvbVwiIHJlZmVycyB0byBCcm9hZGNvbSBJbmMuIGFuZC9vciBpdHMgc3Vic2lkaWFyaWVzLlxuICogVGhpcyBzb2Z0d2FyZSBpcyByZWxlYXNlZCB1bmRlciBNSVQgbGljZW5zZS5cbiAqIFRoZSBmdWxsIGxpY2Vuc2UgaW5mb3JtYXRpb24gY2FuIGJlIGZvdW5kIGluIExJQ0VOU0UgaW4gdGhlIHJvb3QgZGlyZWN0b3J5IG9mIHRoaXMgcHJvamVjdC5cbiAqL1xuXG5pbXBvcnQgeyBDb21tb25Nb2R1bGUgfSBmcm9tICdAYW5ndWxhci9jb21tb24nO1xuaW1wb3J0IHsgTmdNb2R1bGUgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IENsYXJpdHlJY29ucywgZm9sZGVyT3Blbkljb24gfSBmcm9tICdAY2RzL2NvcmUvaWNvbic7XG5cbmltcG9ydCB7IENsckljb25Nb2R1bGUgfSBmcm9tICcuLi8uLi9pY29uL2ljb24ubW9kdWxlJztcbmltcG9ydCB7IENsckNvbW1vbkZvcm1zTW9kdWxlIH0gZnJvbSAnLi4vY29tbW9uL2NvbW1vbi5tb2R1bGUnO1xuaW1wb3J0IHsgQ2xyRmlsZUlucHV0IH0gZnJvbSAnLi9maWxlLWlucHV0JztcbmltcG9ydCB7IENsckZpbGVJbnB1dENvbnRhaW5lciB9IGZyb20gJy4vZmlsZS1pbnB1dC1jb250YWluZXInO1xuaW1wb3J0IHsgQ2xyRmlsZUlucHV0VmFsaWRhdG9yIH0gZnJvbSAnLi9maWxlLWlucHV0LXZhbGlkYXRvcic7XG5pbXBvcnQgeyBDbHJGaWxlSW5wdXRWYWx1ZUFjY2Vzc29yIH0gZnJvbSAnLi9maWxlLWlucHV0LXZhbHVlLWFjY2Vzc29yJztcbmltcG9ydCB7IENsckZpbGVMaXN0IH0gZnJvbSAnLi9maWxlLWxpc3QnO1xuaW1wb3J0IHsgQ2xyRmlsZUVycm9yLCBDbHJGaWxlSW5mbywgQ2xyRmlsZVN1Y2Nlc3MgfSBmcm9tICcuL2ZpbGUtbWVzc2FnZXMnO1xuaW1wb3J0IHsgQ2xyRmlsZU1lc3NhZ2VzVGVtcGxhdGUgfSBmcm9tICcuL2ZpbGUtbWVzc2FnZXMtdGVtcGxhdGUnO1xuXG5ATmdNb2R1bGUoe1xuICBpbXBvcnRzOiBbQ29tbW9uTW9kdWxlLCBDbHJJY29uTW9kdWxlLCBDbHJDb21tb25Gb3Jtc01vZHVsZV0sXG4gIGRlY2xhcmF0aW9uczogW1xuICAgIENsckZpbGVJbnB1dCxcbiAgICBDbHJGaWxlSW5wdXRDb250YWluZXIsXG4gICAgQ2xyRmlsZUlucHV0VmFsaWRhdG9yLFxuICAgIENsckZpbGVJbnB1dFZhbHVlQWNjZXNzb3IsXG4gICAgQ2xyRmlsZUxpc3QsXG4gICAgQ2xyRmlsZU1lc3NhZ2VzVGVtcGxhdGUsXG4gICAgQ2xyRmlsZUluZm8sXG4gICAgQ2xyRmlsZVN1Y2Nlc3MsXG4gICAgQ2xyRmlsZUVycm9yLFxuICBdLFxuICBleHBvcnRzOiBbXG4gICAgQ2xyQ29tbW9uRm9ybXNNb2R1bGUsXG4gICAgQ2xyRmlsZUlucHV0LFxuICAgIENsckZpbGVJbnB1dENvbnRhaW5lcixcbiAgICBDbHJGaWxlSW5wdXRWYWxpZGF0b3IsXG4gICAgQ2xyRmlsZUlucHV0VmFsdWVBY2Nlc3NvcixcbiAgICBDbHJGaWxlTGlzdCxcbiAgICBDbHJGaWxlTWVzc2FnZXNUZW1wbGF0ZSxcbiAgICBDbHJGaWxlSW5mbyxcbiAgICBDbHJGaWxlU3VjY2VzcyxcbiAgICBDbHJGaWxlRXJyb3IsXG4gIF0sXG59KVxuZXhwb3J0IGNsYXNzIENsckZpbGVJbnB1dE1vZHVsZSB7XG4gIGNvbnN0cnVjdG9yKCkge1xuICAgIENsYXJpdHlJY29ucy5hZGRJY29ucyhmb2xkZXJPcGVuSWNvbik7XG4gIH1cbn1cbiJdfQ==
|
|
@@ -0,0 +1,160 @@
|
|
|
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
|
+
import { Component, ContentChild, inject, Injector } from '@angular/core';
|
|
8
|
+
import { ClrCommonStringsService } from '../../utils/i18n/common-strings.service';
|
|
9
|
+
import { NgControlService } from '../common/providers/ng-control.service';
|
|
10
|
+
import { ClrFileInputContainer } from './file-input-container';
|
|
11
|
+
import { selectFiles } from './file-input.helpers';
|
|
12
|
+
import { CLR_FILE_MESSAGES_TEMPLATE_CONTEXT } from './file-messages';
|
|
13
|
+
import { ClrFileMessagesTemplate, } from './file-messages-template';
|
|
14
|
+
import * as i0 from "@angular/core";
|
|
15
|
+
import * as i1 from "@angular/common";
|
|
16
|
+
import * as i2 from "../../icon/icon";
|
|
17
|
+
export class ClrFileList {
|
|
18
|
+
constructor() {
|
|
19
|
+
this.injector = inject(Injector);
|
|
20
|
+
this.commonStrings = inject(ClrCommonStringsService);
|
|
21
|
+
this.ngControlService = inject(NgControlService, { optional: true });
|
|
22
|
+
this.fileInputContainer = inject(ClrFileInputContainer, { optional: true });
|
|
23
|
+
if (!this.ngControlService || !this.fileInputContainer) {
|
|
24
|
+
throw new Error('The clr-file-list component can only be used within a clr-file-input-container.');
|
|
25
|
+
}
|
|
26
|
+
}
|
|
27
|
+
get files() {
|
|
28
|
+
if (!this.fileInputContainer.fileInput) {
|
|
29
|
+
return [];
|
|
30
|
+
}
|
|
31
|
+
const fileInputElement = this.fileInputContainer.fileInput.elementRef.nativeElement;
|
|
32
|
+
return Array.from(fileInputElement.files).sort((a, b) => a.name.localeCompare(b.name));
|
|
33
|
+
}
|
|
34
|
+
getClearFileLabel(filename) {
|
|
35
|
+
return this.commonStrings.parse(this.commonStrings.keys.clearFile, {
|
|
36
|
+
FILE: filename,
|
|
37
|
+
});
|
|
38
|
+
}
|
|
39
|
+
clearFile(fileToRemove) {
|
|
40
|
+
if (!this.fileInputContainer.fileInput) {
|
|
41
|
+
return;
|
|
42
|
+
}
|
|
43
|
+
const fileInputElement = this.fileInputContainer.fileInput.elementRef.nativeElement;
|
|
44
|
+
const files = Array.from(fileInputElement.files);
|
|
45
|
+
const newFiles = files.filter(file => file !== fileToRemove);
|
|
46
|
+
selectFiles(fileInputElement, newFiles);
|
|
47
|
+
this.fileInputContainer.focusBrowseButton();
|
|
48
|
+
}
|
|
49
|
+
createFileMessagesTemplateContext(file) {
|
|
50
|
+
const fileInputErrors = this.ngControlService.control.errors || {};
|
|
51
|
+
const errors = {
|
|
52
|
+
accept: fileInputErrors.accept?.find(error => error.name === file.name),
|
|
53
|
+
minFileSize: fileInputErrors.minFileSize?.find(error => error.name === file.name),
|
|
54
|
+
maxFileSize: fileInputErrors.maxFileSize?.find(error => error.name === file.name),
|
|
55
|
+
};
|
|
56
|
+
const success = Object.values(errors).every(error => !error);
|
|
57
|
+
return { $implicit: file, success, errors };
|
|
58
|
+
}
|
|
59
|
+
createFileMessagesTemplateInjector(fileMessagesTemplateContext) {
|
|
60
|
+
return Injector.create({
|
|
61
|
+
parent: this.injector,
|
|
62
|
+
providers: [{ provide: CLR_FILE_MESSAGES_TEMPLATE_CONTEXT, useValue: fileMessagesTemplateContext }],
|
|
63
|
+
});
|
|
64
|
+
}
|
|
65
|
+
}
|
|
66
|
+
ClrFileList.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.2", ngImport: i0, type: ClrFileList, deps: [], target: i0.ɵɵFactoryTarget.Component });
|
|
67
|
+
ClrFileList.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "15.2.2", type: ClrFileList, selector: "clr-file-list", host: { properties: { "attr.role": "\"list\"", "class.clr-file-list": "true" } }, queries: [{ propertyName: "fileMessagesTemplate", first: true, predicate: ClrFileMessagesTemplate, descendants: true }], ngImport: i0, template: `
|
|
68
|
+
<ng-container *ngFor="let file of files">
|
|
69
|
+
<div
|
|
70
|
+
*ngIf="createFileMessagesTemplateContext(file); let fileMessagesTemplateContext"
|
|
71
|
+
role="listitem"
|
|
72
|
+
class="clr-file-list-item"
|
|
73
|
+
[ngClass]="{
|
|
74
|
+
'clr-error': !fileMessagesTemplateContext.success,
|
|
75
|
+
'clr-success': fileMessagesTemplateContext.success
|
|
76
|
+
}"
|
|
77
|
+
>
|
|
78
|
+
<div class="clr-file-label-and-status-icon">
|
|
79
|
+
<span class="label clr-file-label">
|
|
80
|
+
{{ file.name }}
|
|
81
|
+
<button
|
|
82
|
+
class="btn btn-sm btn-link-neutral btn-icon clr-file-clear-button"
|
|
83
|
+
[attr.aria-label]="getClearFileLabel(file.name)"
|
|
84
|
+
(click)="clearFile(file)"
|
|
85
|
+
>
|
|
86
|
+
<cds-icon shape="times"></cds-icon>
|
|
87
|
+
</button>
|
|
88
|
+
</span>
|
|
89
|
+
|
|
90
|
+
<cds-icon
|
|
91
|
+
class="clr-validate-icon"
|
|
92
|
+
[attr.shape]="fileMessagesTemplateContext.success ? 'check-circle' : 'exclamation-circle'"
|
|
93
|
+
[attr.status]="fileMessagesTemplateContext.success ? 'success' : 'danger'"
|
|
94
|
+
aria-hidden="true"
|
|
95
|
+
></cds-icon>
|
|
96
|
+
</div>
|
|
97
|
+
|
|
98
|
+
<ng-container
|
|
99
|
+
*ngIf="fileMessagesTemplate"
|
|
100
|
+
[ngTemplateOutlet]="fileMessagesTemplate.templateRef"
|
|
101
|
+
[ngTemplateOutletContext]="fileMessagesTemplateContext"
|
|
102
|
+
[ngTemplateOutletInjector]="createFileMessagesTemplateInjector(fileMessagesTemplateContext)"
|
|
103
|
+
></ng-container>
|
|
104
|
+
</div>
|
|
105
|
+
</ng-container>
|
|
106
|
+
`, isInline: true, dependencies: [{ kind: "directive", type: i1.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i1.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i1.NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }, { kind: "directive", type: i2.CdsIconCustomTag, selector: "cds-icon" }] });
|
|
107
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.2", ngImport: i0, type: ClrFileList, decorators: [{
|
|
108
|
+
type: Component,
|
|
109
|
+
args: [{
|
|
110
|
+
selector: 'clr-file-list',
|
|
111
|
+
template: `
|
|
112
|
+
<ng-container *ngFor="let file of files">
|
|
113
|
+
<div
|
|
114
|
+
*ngIf="createFileMessagesTemplateContext(file); let fileMessagesTemplateContext"
|
|
115
|
+
role="listitem"
|
|
116
|
+
class="clr-file-list-item"
|
|
117
|
+
[ngClass]="{
|
|
118
|
+
'clr-error': !fileMessagesTemplateContext.success,
|
|
119
|
+
'clr-success': fileMessagesTemplateContext.success
|
|
120
|
+
}"
|
|
121
|
+
>
|
|
122
|
+
<div class="clr-file-label-and-status-icon">
|
|
123
|
+
<span class="label clr-file-label">
|
|
124
|
+
{{ file.name }}
|
|
125
|
+
<button
|
|
126
|
+
class="btn btn-sm btn-link-neutral btn-icon clr-file-clear-button"
|
|
127
|
+
[attr.aria-label]="getClearFileLabel(file.name)"
|
|
128
|
+
(click)="clearFile(file)"
|
|
129
|
+
>
|
|
130
|
+
<cds-icon shape="times"></cds-icon>
|
|
131
|
+
</button>
|
|
132
|
+
</span>
|
|
133
|
+
|
|
134
|
+
<cds-icon
|
|
135
|
+
class="clr-validate-icon"
|
|
136
|
+
[attr.shape]="fileMessagesTemplateContext.success ? 'check-circle' : 'exclamation-circle'"
|
|
137
|
+
[attr.status]="fileMessagesTemplateContext.success ? 'success' : 'danger'"
|
|
138
|
+
aria-hidden="true"
|
|
139
|
+
></cds-icon>
|
|
140
|
+
</div>
|
|
141
|
+
|
|
142
|
+
<ng-container
|
|
143
|
+
*ngIf="fileMessagesTemplate"
|
|
144
|
+
[ngTemplateOutlet]="fileMessagesTemplate.templateRef"
|
|
145
|
+
[ngTemplateOutletContext]="fileMessagesTemplateContext"
|
|
146
|
+
[ngTemplateOutletInjector]="createFileMessagesTemplateInjector(fileMessagesTemplateContext)"
|
|
147
|
+
></ng-container>
|
|
148
|
+
</div>
|
|
149
|
+
</ng-container>
|
|
150
|
+
`,
|
|
151
|
+
host: {
|
|
152
|
+
'[attr.role]': '"list"',
|
|
153
|
+
'[class.clr-file-list]': 'true',
|
|
154
|
+
},
|
|
155
|
+
}]
|
|
156
|
+
}], ctorParameters: function () { return []; }, propDecorators: { fileMessagesTemplate: [{
|
|
157
|
+
type: ContentChild,
|
|
158
|
+
args: [ClrFileMessagesTemplate]
|
|
159
|
+
}] } });
|
|
160
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZmlsZS1saXN0LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvYW5ndWxhci9zcmMvZm9ybXMvZmlsZS1pbnB1dC9maWxlLWxpc3QudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUE7Ozs7O0dBS0c7QUFFSCxPQUFPLEVBQUUsU0FBUyxFQUFFLFlBQVksRUFBRSxNQUFNLEVBQUUsUUFBUSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBRTFFLE9BQU8sRUFBRSx1QkFBdUIsRUFBRSxNQUFNLHlDQUF5QyxDQUFDO0FBQ2xGLE9BQU8sRUFBRSxnQkFBZ0IsRUFBRSxNQUFNLHdDQUF3QyxDQUFDO0FBQzFFLE9BQU8sRUFBRSxxQkFBcUIsRUFBRSxNQUFNLHdCQUF3QixDQUFDO0FBRS9ELE9BQU8sRUFBRSxXQUFXLEVBQUUsTUFBTSxzQkFBc0IsQ0FBQztBQUNuRCxPQUFPLEVBQUUsa0NBQWtDLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUNyRSxPQUFPLEVBQ0wsdUJBQXVCLEdBR3hCLE1BQU0sMEJBQTBCLENBQUM7Ozs7QUFpRGxDLE1BQU0sT0FBTyxXQUFXO0lBUXRCO1FBTGlCLGFBQVEsR0FBRyxNQUFNLENBQUMsUUFBUSxDQUFDLENBQUM7UUFDNUIsa0JBQWEsR0FBRyxNQUFNLENBQUMsdUJBQXVCLENBQUMsQ0FBQztRQUNoRCxxQkFBZ0IsR0FBRyxNQUFNLENBQUMsZ0JBQWdCLEVBQUUsRUFBRSxRQUFRLEVBQUUsSUFBSSxFQUFFLENBQUMsQ0FBQztRQUNoRSx1QkFBa0IsR0FBRyxNQUFNLENBQUMscUJBQXFCLEVBQUUsRUFBRSxRQUFRLEVBQUUsSUFBSSxFQUFFLENBQUMsQ0FBQztRQUd0RixJQUFJLENBQUMsSUFBSSxDQUFDLGdCQUFnQixJQUFJLENBQUMsSUFBSSxDQUFDLGtCQUFrQixFQUFFO1lBQ3RELE1BQU0sSUFBSSxLQUFLLENBQUMsaUZBQWlGLENBQUMsQ0FBQztTQUNwRztJQUNILENBQUM7SUFFRCxJQUFjLEtBQUs7UUFDakIsSUFBSSxDQUFDLElBQUksQ0FBQyxrQkFBa0IsQ0FBQyxTQUFTLEVBQUU7WUFDdEMsT0FBTyxFQUFFLENBQUM7U0FDWDtRQUVELE1BQU0sZ0JBQWdCLEdBQUcsSUFBSSxDQUFDLGtCQUFrQixDQUFDLFNBQVMsQ0FBQyxVQUFVLENBQUMsYUFBYSxDQUFDO1FBRXBGLE9BQU8sS0FBSyxDQUFDLElBQUksQ0FBQyxnQkFBZ0IsQ0FBQyxLQUFLLENBQUMsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLGFBQWEsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQztJQUN6RixDQUFDO0lBRVMsaUJBQWlCLENBQUMsUUFBZ0I7UUFDMUMsT0FBTyxJQUFJLENBQUMsYUFBYSxDQUFDLEtBQUssQ0FBQyxJQUFJLENBQUMsYUFBYSxDQUFDLElBQUksQ0FBQyxTQUFTLEVBQUU7WUFDakUsSUFBSSxFQUFFLFFBQVE7U0FDZixDQUFDLENBQUM7SUFDTCxDQUFDO0lBRVMsU0FBUyxDQUFDLFlBQWtCO1FBQ3BDLElBQUksQ0FBQyxJQUFJLENBQUMsa0JBQWtCLENBQUMsU0FBUyxFQUFFO1lBQ3RDLE9BQU87U0FDUjtRQUVELE1BQU0sZ0JBQWdCLEdBQUcsSUFBSSxDQUFDLGtCQUFrQixDQUFDLFNBQVMsQ0FBQyxVQUFVLENBQUMsYUFBYSxDQUFDO1FBQ3BGLE1BQU0sS0FBSyxHQUFHLEtBQUssQ0FBQyxJQUFJLENBQUMsZ0JBQWdCLENBQUMsS0FBSyxDQUFDLENBQUM7UUFDakQsTUFBTSxRQUFRLEdBQUcsS0FBSyxDQUFDLE1BQU0sQ0FBQyxJQUFJLENBQUMsRUFBRSxDQUFDLElBQUksS0FBSyxZQUFZLENBQUMsQ0FBQztRQUU3RCxXQUFXLENBQUMsZ0JBQWdCLEVBQUUsUUFBUSxDQUFDLENBQUM7UUFDeEMsSUFBSSxDQUFDLGtCQUFrQixDQUFDLGlCQUFpQixFQUFFLENBQUM7SUFDOUMsQ0FBQztJQUVTLGlDQUFpQyxDQUFDLElBQVU7UUFDcEQsTUFBTSxlQUFlLEdBQWdDLElBQUksQ0FBQyxnQkFBZ0IsQ0FBQyxPQUFPLENBQUMsTUFBTSxJQUFJLEVBQUUsQ0FBQztRQUVoRyxNQUFNLE1BQU0sR0FBa0M7WUFDNUMsTUFBTSxFQUFFLGVBQWUsQ0FBQyxNQUFNLEVBQUUsSUFBSSxDQUFDLEtBQUssQ0FBQyxFQUFFLENBQUMsS0FBSyxDQUFDLElBQUksS0FBSyxJQUFJLENBQUMsSUFBSSxDQUFDO1lBQ3ZFLFdBQVcsRUFBRSxlQUFlLENBQUMsV0FBVyxFQUFFLElBQUksQ0FBQyxLQUFLLENBQUMsRUFBRSxDQUFDLEtBQUssQ0FBQyxJQUFJLEtBQUssSUFBSSxDQUFDLElBQUksQ0FBQztZQUNqRixXQUFXLEVBQUUsZUFBZSxDQUFDLFdBQVcsRUFBRSxJQUFJLENBQUMsS0FBSyxDQUFDLEVBQUUsQ0FBQyxLQUFLLENBQUMsSUFBSSxLQUFLLElBQUksQ0FBQyxJQUFJLENBQUM7U0FDbEYsQ0FBQztRQUVGLE1BQU0sT0FBTyxHQUFHLE1BQU0sQ0FBQyxNQUFNLENBQUMsTUFBTSxDQUFDLENBQUMsS0FBSyxDQUFDLEtBQUssQ0FBQyxFQUFFLENBQUMsQ0FBQyxLQUFLLENBQUMsQ0FBQztRQUU3RCxPQUFPLEVBQUUsU0FBUyxFQUFFLElBQUksRUFBRSxPQUFPLEVBQUUsTUFBTSxFQUFFLENBQUM7SUFDOUMsQ0FBQztJQUVTLGtDQUFrQyxDQUFDLDJCQUEyRDtRQUN0RyxPQUFPLFFBQVEsQ0FBQyxNQUFNLENBQUM7WUFDckIsTUFBTSxFQUFFLElBQUksQ0FBQyxRQUFRO1lBQ3JCLFNBQVMsRUFBRSxDQUFDLEVBQUUsT0FBTyxFQUFFLGtDQUFrQyxFQUFFLFFBQVEsRUFBRSwyQkFBMkIsRUFBRSxDQUFDO1NBQ3BHLENBQUMsQ0FBQztJQUNMLENBQUM7O3dHQTlEVSxXQUFXOzRGQUFYLFdBQVcseUxBQ1IsdUJBQXVCLGdEQTlDM0I7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztHQXVDVDsyRkFNVSxXQUFXO2tCQS9DdkIsU0FBUzttQkFBQztvQkFDVCxRQUFRLEVBQUUsZUFBZTtvQkFDekIsUUFBUSxFQUFFOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7R0F1Q1Q7b0JBQ0QsSUFBSSxFQUFFO3dCQUNKLGFBQWEsRUFBRSxRQUFRO3dCQUN2Qix1QkFBdUIsRUFBRSxNQUFNO3FCQUNoQztpQkFDRjswRUFFMkQsb0JBQW9CO3NCQUE3RSxZQUFZO3VCQUFDLHVCQUF1QiIsInNvdXJjZXNDb250ZW50IjpbIi8qXG4gKiBDb3B5cmlnaHQgKGMpIDIwMTYtMjAyNSBCcm9hZGNvbS4gQWxsIFJpZ2h0cyBSZXNlcnZlZC5cbiAqIFRoZSB0ZXJtIFwiQnJvYWRjb21cIiByZWZlcnMgdG8gQnJvYWRjb20gSW5jLiBhbmQvb3IgaXRzIHN1YnNpZGlhcmllcy5cbiAqIFRoaXMgc29mdHdhcmUgaXMgcmVsZWFzZWQgdW5kZXIgTUlUIGxpY2Vuc2UuXG4gKiBUaGUgZnVsbCBsaWNlbnNlIGluZm9ybWF0aW9uIGNhbiBiZSBmb3VuZCBpbiBMSUNFTlNFIGluIHRoZSByb290IGRpcmVjdG9yeSBvZiB0aGlzIHByb2plY3QuXG4gKi9cblxuaW1wb3J0IHsgQ29tcG9uZW50LCBDb250ZW50Q2hpbGQsIGluamVjdCwgSW5qZWN0b3IgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcblxuaW1wb3J0IHsgQ2xyQ29tbW9uU3RyaW5nc1NlcnZpY2UgfSBmcm9tICcuLi8uLi91dGlscy9pMThuL2NvbW1vbi1zdHJpbmdzLnNlcnZpY2UnO1xuaW1wb3J0IHsgTmdDb250cm9sU2VydmljZSB9IGZyb20gJy4uL2NvbW1vbi9wcm92aWRlcnMvbmctY29udHJvbC5zZXJ2aWNlJztcbmltcG9ydCB7IENsckZpbGVJbnB1dENvbnRhaW5lciB9IGZyb20gJy4vZmlsZS1pbnB1dC1jb250YWluZXInO1xuaW1wb3J0IHsgQ2xyRmlsZUxpc3RWYWxpZGF0aW9uRXJyb3JzIH0gZnJvbSAnLi9maWxlLWlucHV0LXZhbGlkYXRvci1lcnJvcnMnO1xuaW1wb3J0IHsgc2VsZWN0RmlsZXMgfSBmcm9tICcuL2ZpbGUtaW5wdXQuaGVscGVycyc7XG5pbXBvcnQgeyBDTFJfRklMRV9NRVNTQUdFU19URU1QTEFURV9DT05URVhUIH0gZnJvbSAnLi9maWxlLW1lc3NhZ2VzJztcbmltcG9ydCB7XG4gIENsckZpbGVNZXNzYWdlc1RlbXBsYXRlLFxuICBDbHJGaWxlTWVzc2FnZXNUZW1wbGF0ZUNvbnRleHQsXG4gIENsclNpbmdsZUZpbGVWYWxpZGF0aW9uRXJyb3JzLFxufSBmcm9tICcuL2ZpbGUtbWVzc2FnZXMtdGVtcGxhdGUnO1xuXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdjbHItZmlsZS1saXN0JyxcbiAgdGVtcGxhdGU6IGBcbiAgICA8bmctY29udGFpbmVyICpuZ0Zvcj1cImxldCBmaWxlIG9mIGZpbGVzXCI+XG4gICAgICA8ZGl2XG4gICAgICAgICpuZ0lmPVwiY3JlYXRlRmlsZU1lc3NhZ2VzVGVtcGxhdGVDb250ZXh0KGZpbGUpOyBsZXQgZmlsZU1lc3NhZ2VzVGVtcGxhdGVDb250ZXh0XCJcbiAgICAgICAgcm9sZT1cImxpc3RpdGVtXCJcbiAgICAgICAgY2xhc3M9XCJjbHItZmlsZS1saXN0LWl0ZW1cIlxuICAgICAgICBbbmdDbGFzc109XCJ7XG4gICAgICAgICAgJ2Nsci1lcnJvcic6ICFmaWxlTWVzc2FnZXNUZW1wbGF0ZUNvbnRleHQuc3VjY2VzcyxcbiAgICAgICAgICAnY2xyLXN1Y2Nlc3MnOiBmaWxlTWVzc2FnZXNUZW1wbGF0ZUNvbnRleHQuc3VjY2Vzc1xuICAgICAgICB9XCJcbiAgICAgID5cbiAgICAgICAgPGRpdiBjbGFzcz1cImNsci1maWxlLWxhYmVsLWFuZC1zdGF0dXMtaWNvblwiPlxuICAgICAgICAgIDxzcGFuIGNsYXNzPVwibGFiZWwgY2xyLWZpbGUtbGFiZWxcIj5cbiAgICAgICAgICAgIHt7IGZpbGUubmFtZSB9fVxuICAgICAgICAgICAgPGJ1dHRvblxuICAgICAgICAgICAgICBjbGFzcz1cImJ0biBidG4tc20gYnRuLWxpbmstbmV1dHJhbCBidG4taWNvbiBjbHItZmlsZS1jbGVhci1idXR0b25cIlxuICAgICAgICAgICAgICBbYXR0ci5hcmlhLWxhYmVsXT1cImdldENsZWFyRmlsZUxhYmVsKGZpbGUubmFtZSlcIlxuICAgICAgICAgICAgICAoY2xpY2spPVwiY2xlYXJGaWxlKGZpbGUpXCJcbiAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgPGNkcy1pY29uIHNoYXBlPVwidGltZXNcIj48L2Nkcy1pY29uPlxuICAgICAgICAgICAgPC9idXR0b24+XG4gICAgICAgICAgPC9zcGFuPlxuXG4gICAgICAgICAgPGNkcy1pY29uXG4gICAgICAgICAgICBjbGFzcz1cImNsci12YWxpZGF0ZS1pY29uXCJcbiAgICAgICAgICAgIFthdHRyLnNoYXBlXT1cImZpbGVNZXNzYWdlc1RlbXBsYXRlQ29udGV4dC5zdWNjZXNzID8gJ2NoZWNrLWNpcmNsZScgOiAnZXhjbGFtYXRpb24tY2lyY2xlJ1wiXG4gICAgICAgICAgICBbYXR0ci5zdGF0dXNdPVwiZmlsZU1lc3NhZ2VzVGVtcGxhdGVDb250ZXh0LnN1Y2Nlc3MgPyAnc3VjY2VzcycgOiAnZGFuZ2VyJ1wiXG4gICAgICAgICAgICBhcmlhLWhpZGRlbj1cInRydWVcIlxuICAgICAgICAgID48L2Nkcy1pY29uPlxuICAgICAgICA8L2Rpdj5cblxuICAgICAgICA8bmctY29udGFpbmVyXG4gICAgICAgICAgKm5nSWY9XCJmaWxlTWVzc2FnZXNUZW1wbGF0ZVwiXG4gICAgICAgICAgW25nVGVtcGxhdGVPdXRsZXRdPVwiZmlsZU1lc3NhZ2VzVGVtcGxhdGUudGVtcGxhdGVSZWZcIlxuICAgICAgICAgIFtuZ1RlbXBsYXRlT3V0bGV0Q29udGV4dF09XCJmaWxlTWVzc2FnZXNUZW1wbGF0ZUNvbnRleHRcIlxuICAgICAgICAgIFtuZ1RlbXBsYXRlT3V0bGV0SW5qZWN0b3JdPVwiY3JlYXRlRmlsZU1lc3NhZ2VzVGVtcGxhdGVJbmplY3RvcihmaWxlTWVzc2FnZXNUZW1wbGF0ZUNvbnRleHQpXCJcbiAgICAgICAgPjwvbmctY29udGFpbmVyPlxuICAgICAgPC9kaXY+XG4gICAgPC9uZy1jb250YWluZXI+XG4gIGAsXG4gIGhvc3Q6IHtcbiAgICAnW2F0dHIucm9sZV0nOiAnXCJsaXN0XCInLFxuICAgICdbY2xhc3MuY2xyLWZpbGUtbGlzdF0nOiAndHJ1ZScsXG4gIH0sXG59KVxuZXhwb3J0IGNsYXNzIENsckZpbGVMaXN0IHtcbiAgQENvbnRlbnRDaGlsZChDbHJGaWxlTWVzc2FnZXNUZW1wbGF0ZSkgcHJvdGVjdGVkIHJlYWRvbmx5IGZpbGVNZXNzYWdlc1RlbXBsYXRlOiBDbHJGaWxlTWVzc2FnZXNUZW1wbGF0ZTtcblxuICBwcml2YXRlIHJlYWRvbmx5IGluamVjdG9yID0gaW5qZWN0KEluamVjdG9yKTtcbiAgcHJpdmF0ZSByZWFkb25seSBjb21tb25TdHJpbmdzID0gaW5qZWN0KENsckNvbW1vblN0cmluZ3NTZXJ2aWNlKTtcbiAgcHJpdmF0ZSByZWFkb25seSBuZ0NvbnRyb2xTZXJ2aWNlID0gaW5qZWN0KE5nQ29udHJvbFNlcnZpY2UsIHsgb3B0aW9uYWw6IHRydWUgfSk7XG4gIHByaXZhdGUgcmVhZG9ubHkgZmlsZUlucHV0Q29udGFpbmVyID0gaW5qZWN0KENsckZpbGVJbnB1dENvbnRhaW5lciwgeyBvcHRpb25hbDogdHJ1ZSB9KTtcblxuICBjb25zdHJ1Y3RvcigpIHtcbiAgICBpZiAoIXRoaXMubmdDb250cm9sU2VydmljZSB8fCAhdGhpcy5maWxlSW5wdXRDb250YWluZXIpIHtcbiAgICAgIHRocm93IG5ldyBFcnJvcignVGhlIGNsci1maWxlLWxpc3QgY29tcG9uZW50IGNhbiBvbmx5IGJlIHVzZWQgd2l0aGluIGEgY2xyLWZpbGUtaW5wdXQtY29udGFpbmVyLicpO1xuICAgIH1cbiAgfVxuXG4gIHByb3RlY3RlZCBnZXQgZmlsZXMoKSB7XG4gICAgaWYgKCF0aGlzLmZpbGVJbnB1dENvbnRhaW5lci5maWxlSW5wdXQpIHtcbiAgICAgIHJldHVybiBbXTtcbiAgICB9XG5cbiAgICBjb25zdCBmaWxlSW5wdXRFbGVtZW50ID0gdGhpcy5maWxlSW5wdXRDb250YWluZXIuZmlsZUlucHV0LmVsZW1lbnRSZWYubmF0aXZlRWxlbWVudDtcblxuICAgIHJldHVybiBBcnJheS5mcm9tKGZpbGVJbnB1dEVsZW1lbnQuZmlsZXMpLnNvcnQoKGEsIGIpID0+IGEubmFtZS5sb2NhbGVDb21wYXJlKGIubmFtZSkpO1xuICB9XG5cbiAgcHJvdGVjdGVkIGdldENsZWFyRmlsZUxhYmVsKGZpbGVuYW1lOiBzdHJpbmcpIHtcbiAgICByZXR1cm4gdGhpcy5jb21tb25TdHJpbmdzLnBhcnNlKHRoaXMuY29tbW9uU3RyaW5ncy5rZXlzLmNsZWFyRmlsZSwge1xuICAgICAgRklMRTogZmlsZW5hbWUsXG4gICAgfSk7XG4gIH1cblxuICBwcm90ZWN0ZWQgY2xlYXJGaWxlKGZpbGVUb1JlbW92ZTogRmlsZSkge1xuICAgIGlmICghdGhpcy5maWxlSW5wdXRDb250YWluZXIuZmlsZUlucHV0KSB7XG4gICAgICByZXR1cm47XG4gICAgfVxuXG4gICAgY29uc3QgZmlsZUlucHV0RWxlbWVudCA9IHRoaXMuZmlsZUlucHV0Q29udGFpbmVyLmZpbGVJbnB1dC5lbGVtZW50UmVmLm5hdGl2ZUVsZW1lbnQ7XG4gICAgY29uc3QgZmlsZXMgPSBBcnJheS5mcm9tKGZpbGVJbnB1dEVsZW1lbnQuZmlsZXMpO1xuICAgIGNvbnN0IG5ld0ZpbGVzID0gZmlsZXMuZmlsdGVyKGZpbGUgPT4gZmlsZSAhPT0gZmlsZVRvUmVtb3ZlKTtcblxuICAgIHNlbGVjdEZpbGVzKGZpbGVJbnB1dEVsZW1lbnQsIG5ld0ZpbGVzKTtcbiAgICB0aGlzLmZpbGVJbnB1dENvbnRhaW5lci5mb2N1c0Jyb3dzZUJ1dHRvbigpO1xuICB9XG5cbiAgcHJvdGVjdGVkIGNyZWF0ZUZpbGVNZXNzYWdlc1RlbXBsYXRlQ29udGV4dChmaWxlOiBGaWxlKTogQ2xyRmlsZU1lc3NhZ2VzVGVtcGxhdGVDb250ZXh0IHtcbiAgICBjb25zdCBmaWxlSW5wdXRFcnJvcnM6IENsckZpbGVMaXN0VmFsaWRhdGlvbkVycm9ycyA9IHRoaXMubmdDb250cm9sU2VydmljZS5jb250cm9sLmVycm9ycyB8fCB7fTtcblxuICAgIGNvbnN0IGVycm9yczogQ2xyU2luZ2xlRmlsZVZhbGlkYXRpb25FcnJvcnMgPSB7XG4gICAgICBhY2NlcHQ6IGZpbGVJbnB1dEVycm9ycy5hY2NlcHQ/LmZpbmQoZXJyb3IgPT4gZXJyb3IubmFtZSA9PT0gZmlsZS5uYW1lKSxcbiAgICAgIG1pbkZpbGVTaXplOiBmaWxlSW5wdXRFcnJvcnMubWluRmlsZVNpemU/LmZpbmQoZXJyb3IgPT4gZXJyb3IubmFtZSA9PT0gZmlsZS5uYW1lKSxcbiAgICAgIG1heEZpbGVTaXplOiBmaWxlSW5wdXRFcnJvcnMubWF4RmlsZVNpemU/LmZpbmQoZXJyb3IgPT4gZXJyb3IubmFtZSA9PT0gZmlsZS5uYW1lKSxcbiAgICB9O1xuXG4gICAgY29uc3Qgc3VjY2VzcyA9IE9iamVjdC52YWx1ZXMoZXJyb3JzKS5ldmVyeShlcnJvciA9PiAhZXJyb3IpO1xuXG4gICAgcmV0dXJuIHsgJGltcGxpY2l0OiBmaWxlLCBzdWNjZXNzLCBlcnJvcnMgfTtcbiAgfVxuXG4gIHByb3RlY3RlZCBjcmVhdGVGaWxlTWVzc2FnZXNUZW1wbGF0ZUluamVjdG9yKGZpbGVNZXNzYWdlc1RlbXBsYXRlQ29udGV4dDogQ2xyRmlsZU1lc3NhZ2VzVGVtcGxhdGVDb250ZXh0KSB7XG4gICAgcmV0dXJuIEluamVjdG9yLmNyZWF0ZSh7XG4gICAgICBwYXJlbnQ6IHRoaXMuaW5qZWN0b3IsXG4gICAgICBwcm92aWRlcnM6IFt7IHByb3ZpZGU6IENMUl9GSUxFX01FU1NBR0VTX1RFTVBMQVRFX0NPTlRFWFQsIHVzZVZhbHVlOiBmaWxlTWVzc2FnZXNUZW1wbGF0ZUNvbnRleHQgfV0sXG4gICAgfSk7XG4gIH1cbn1cbiJdfQ==
|
|
@@ -0,0 +1,26 @@
|
|
|
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
|
+
import { inject, TemplateRef } from '@angular/core';
|
|
8
|
+
import { Directive } from '@angular/core';
|
|
9
|
+
import * as i0 from "@angular/core";
|
|
10
|
+
export class ClrFileMessagesTemplate {
|
|
11
|
+
constructor() {
|
|
12
|
+
this.templateRef = inject(TemplateRef);
|
|
13
|
+
}
|
|
14
|
+
static ngTemplateContextGuard(directive, context) {
|
|
15
|
+
return true;
|
|
16
|
+
}
|
|
17
|
+
}
|
|
18
|
+
ClrFileMessagesTemplate.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.2", ngImport: i0, type: ClrFileMessagesTemplate, deps: [], target: i0.ɵɵFactoryTarget.Directive });
|
|
19
|
+
ClrFileMessagesTemplate.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "15.2.2", type: ClrFileMessagesTemplate, selector: "ng-template[clr-file-messages]", ngImport: i0 });
|
|
20
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.2", ngImport: i0, type: ClrFileMessagesTemplate, decorators: [{
|
|
21
|
+
type: Directive,
|
|
22
|
+
args: [{
|
|
23
|
+
selector: 'ng-template[clr-file-messages]',
|
|
24
|
+
}]
|
|
25
|
+
}] });
|
|
26
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZmlsZS1tZXNzYWdlcy10ZW1wbGF0ZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2FuZ3VsYXIvc3JjL2Zvcm1zL2ZpbGUtaW5wdXQvZmlsZS1tZXNzYWdlcy10ZW1wbGF0ZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQTs7Ozs7R0FLRztBQUVILE9BQU8sRUFBRSxNQUFNLEVBQUUsV0FBVyxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQ3BELE9BQU8sRUFBRSxTQUFTLEVBQUUsTUFBTSxlQUFlLENBQUM7O0FBbUIxQyxNQUFNLE9BQU8sdUJBQXVCO0lBSHBDO1FBSVcsZ0JBQVcsR0FBZ0QsTUFBTSxDQUFDLFdBQVcsQ0FBQyxDQUFDO0tBUXpGO0lBTkMsTUFBTSxDQUFDLHNCQUFzQixDQUMzQixTQUFrQyxFQUNsQyxPQUFnQjtRQUVoQixPQUFPLElBQUksQ0FBQztJQUNkLENBQUM7O29IQVJVLHVCQUF1Qjt3R0FBdkIsdUJBQXVCOzJGQUF2Qix1QkFBdUI7a0JBSG5DLFNBQVM7bUJBQUM7b0JBQ1QsUUFBUSxFQUFFLGdDQUFnQztpQkFDM0MiLCJzb3VyY2VzQ29udGVudCI6WyIvKlxuICogQ29weXJpZ2h0IChjKSAyMDE2LTIwMjUgQnJvYWRjb20uIEFsbCBSaWdodHMgUmVzZXJ2ZWQuXG4gKiBUaGUgdGVybSBcIkJyb2FkY29tXCIgcmVmZXJzIHRvIEJyb2FkY29tIEluYy4gYW5kL29yIGl0cyBzdWJzaWRpYXJpZXMuXG4gKiBUaGlzIHNvZnR3YXJlIGlzIHJlbGVhc2VkIHVuZGVyIE1JVCBsaWNlbnNlLlxuICogVGhlIGZ1bGwgbGljZW5zZSBpbmZvcm1hdGlvbiBjYW4gYmUgZm91bmQgaW4gTElDRU5TRSBpbiB0aGUgcm9vdCBkaXJlY3Rvcnkgb2YgdGhpcyBwcm9qZWN0LlxuICovXG5cbmltcG9ydCB7IGluamVjdCwgVGVtcGxhdGVSZWYgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IERpcmVjdGl2ZSB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuXG5pbXBvcnQgeyBDbHJGaWxlQWNjZXB0RXJyb3IsIENsckZpbGVNYXhGaWxlU2l6ZUVycm9yLCBDbHJGaWxlTWluRmlsZVNpemVFcnJvciB9IGZyb20gJy4vZmlsZS1pbnB1dC12YWxpZGF0b3ItZXJyb3JzJztcblxuZXhwb3J0IGludGVyZmFjZSBDbHJTaW5nbGVGaWxlVmFsaWRhdGlvbkVycm9ycyB7XG4gIGFjY2VwdD86IENsckZpbGVBY2NlcHRFcnJvcjtcbiAgbWluRmlsZVNpemU/OiBDbHJGaWxlTWluRmlsZVNpemVFcnJvcjtcbiAgbWF4RmlsZVNpemU/OiBDbHJGaWxlTWF4RmlsZVNpemVFcnJvcjtcbn1cblxuZXhwb3J0IGludGVyZmFjZSBDbHJGaWxlTWVzc2FnZXNUZW1wbGF0ZUNvbnRleHQge1xuICAkaW1wbGljaXQ6IEZpbGU7XG4gIHN1Y2Nlc3M6IGJvb2xlYW47XG4gIGVycm9yczogQ2xyU2luZ2xlRmlsZVZhbGlkYXRpb25FcnJvcnM7XG59XG5cbkBEaXJlY3RpdmUoe1xuICBzZWxlY3RvcjogJ25nLXRlbXBsYXRlW2Nsci1maWxlLW1lc3NhZ2VzXScsXG59KVxuZXhwb3J0IGNsYXNzIENsckZpbGVNZXNzYWdlc1RlbXBsYXRlIHtcbiAgcmVhZG9ubHkgdGVtcGxhdGVSZWY6IFRlbXBsYXRlUmVmPENsckZpbGVNZXNzYWdlc1RlbXBsYXRlQ29udGV4dD4gPSBpbmplY3QoVGVtcGxhdGVSZWYpO1xuXG4gIHN0YXRpYyBuZ1RlbXBsYXRlQ29udGV4dEd1YXJkKFxuICAgIGRpcmVjdGl2ZTogQ2xyRmlsZU1lc3NhZ2VzVGVtcGxhdGUsXG4gICAgY29udGV4dDogdW5rbm93blxuICApOiBjb250ZXh0IGlzIENsckZpbGVNZXNzYWdlc1RlbXBsYXRlQ29udGV4dCB7XG4gICAgcmV0dXJuIHRydWU7XG4gIH1cbn1cbiJdfQ==
|
|
@@ -0,0 +1,61 @@
|
|
|
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
|
+
import { Component, inject, InjectionToken } from '@angular/core';
|
|
8
|
+
import * as i0 from "@angular/core";
|
|
9
|
+
import * as i1 from "@angular/common";
|
|
10
|
+
export const CLR_FILE_MESSAGES_TEMPLATE_CONTEXT = new InjectionToken('ClrFileMessagesTemplateContext');
|
|
11
|
+
export class ClrFileInfo {
|
|
12
|
+
}
|
|
13
|
+
ClrFileInfo.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.2", ngImport: i0, type: ClrFileInfo, deps: [], target: i0.ɵɵFactoryTarget.Component });
|
|
14
|
+
ClrFileInfo.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "15.2.2", type: ClrFileInfo, selector: "clr-file-info", host: { properties: { "class.clr-subtext": "true" } }, ngImport: i0, template: `<ng-content></ng-content>`, isInline: true });
|
|
15
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.2", ngImport: i0, type: ClrFileInfo, decorators: [{
|
|
16
|
+
type: Component,
|
|
17
|
+
args: [{
|
|
18
|
+
selector: 'clr-file-info',
|
|
19
|
+
template: `<ng-content></ng-content>`,
|
|
20
|
+
host: {
|
|
21
|
+
'[class.clr-subtext]': 'true',
|
|
22
|
+
},
|
|
23
|
+
}]
|
|
24
|
+
}] });
|
|
25
|
+
export class ClrFileSuccess {
|
|
26
|
+
constructor() {
|
|
27
|
+
this.context = inject(CLR_FILE_MESSAGES_TEMPLATE_CONTEXT);
|
|
28
|
+
}
|
|
29
|
+
}
|
|
30
|
+
ClrFileSuccess.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.2", ngImport: i0, type: ClrFileSuccess, deps: [], target: i0.ɵɵFactoryTarget.Component });
|
|
31
|
+
ClrFileSuccess.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "15.2.2", type: ClrFileSuccess, selector: "clr-file-success", host: { properties: { "style.display": "context.success ? \"inline-block\" : \"none\"", "class.clr-subtext": "true", "class.success": "true" } }, ngImport: i0, template: `<ng-content *ngIf="context.success"></ng-content>`, isInline: true, dependencies: [{ kind: "directive", type: i1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }] });
|
|
32
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.2", ngImport: i0, type: ClrFileSuccess, decorators: [{
|
|
33
|
+
type: Component,
|
|
34
|
+
args: [{
|
|
35
|
+
selector: 'clr-file-success',
|
|
36
|
+
// We check for success here so that consumers don't have to.
|
|
37
|
+
template: `<ng-content *ngIf="context.success"></ng-content>`,
|
|
38
|
+
host: {
|
|
39
|
+
'[style.display]': 'context.success ? "inline-block" : "none"',
|
|
40
|
+
'[class.clr-subtext]': 'true',
|
|
41
|
+
'[class.success]': 'true',
|
|
42
|
+
},
|
|
43
|
+
}]
|
|
44
|
+
}] });
|
|
45
|
+
export class ClrFileError {
|
|
46
|
+
}
|
|
47
|
+
ClrFileError.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.2", ngImport: i0, type: ClrFileError, deps: [], target: i0.ɵɵFactoryTarget.Component });
|
|
48
|
+
ClrFileError.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "15.2.2", type: ClrFileError, selector: "clr-file-error", host: { properties: { "class.clr-subtext": "true", "class.error": "true" } }, ngImport: i0, template: `<ng-content></ng-content>`, isInline: true });
|
|
49
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.2", ngImport: i0, type: ClrFileError, decorators: [{
|
|
50
|
+
type: Component,
|
|
51
|
+
args: [{
|
|
52
|
+
selector: 'clr-file-error',
|
|
53
|
+
// The host should have an `*ngIf` or `@if` that checks for the relevant error.
|
|
54
|
+
template: `<ng-content></ng-content>`,
|
|
55
|
+
host: {
|
|
56
|
+
'[class.clr-subtext]': 'true',
|
|
57
|
+
'[class.error]': 'true',
|
|
58
|
+
},
|
|
59
|
+
}]
|
|
60
|
+
}] });
|
|
61
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZmlsZS1tZXNzYWdlcy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2FuZ3VsYXIvc3JjL2Zvcm1zL2ZpbGUtaW5wdXQvZmlsZS1tZXNzYWdlcy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQTs7Ozs7R0FLRztBQUVILE9BQU8sRUFBRSxTQUFTLEVBQUUsTUFBTSxFQUFFLGNBQWMsRUFBRSxNQUFNLGVBQWUsQ0FBQzs7O0FBSWxFLE1BQU0sQ0FBQyxNQUFNLGtDQUFrQyxHQUFHLElBQUksY0FBYyxDQUNsRSxnQ0FBZ0MsQ0FDakMsQ0FBQztBQVNGLE1BQU0sT0FBTyxXQUFXOzt3R0FBWCxXQUFXOzRGQUFYLFdBQVcsNEdBTFosMkJBQTJCOzJGQUsxQixXQUFXO2tCQVB2QixTQUFTO21CQUFDO29CQUNULFFBQVEsRUFBRSxlQUFlO29CQUN6QixRQUFRLEVBQUUsMkJBQTJCO29CQUNyQyxJQUFJLEVBQUU7d0JBQ0oscUJBQXFCLEVBQUUsTUFBTTtxQkFDOUI7aUJBQ0Y7O0FBYUQsTUFBTSxPQUFPLGNBQWM7SUFWM0I7UUFXcUIsWUFBTyxHQUFtQyxNQUFNLENBQUMsa0NBQWtDLENBQUMsQ0FBQztLQUN6Rzs7MkdBRlksY0FBYzsrRkFBZCxjQUFjLDBNQVBmLG1EQUFtRDsyRkFPbEQsY0FBYztrQkFWMUIsU0FBUzttQkFBQztvQkFDVCxRQUFRLEVBQUUsa0JBQWtCO29CQUM1Qiw2REFBNkQ7b0JBQzdELFFBQVEsRUFBRSxtREFBbUQ7b0JBQzdELElBQUksRUFBRTt3QkFDSixpQkFBaUIsRUFBRSwyQ0FBMkM7d0JBQzlELHFCQUFxQixFQUFFLE1BQU07d0JBQzdCLGlCQUFpQixFQUFFLE1BQU07cUJBQzFCO2lCQUNGOztBQWNELE1BQU0sT0FBTyxZQUFZOzt5R0FBWixZQUFZOzZGQUFaLFlBQVksb0lBTmIsMkJBQTJCOzJGQU0xQixZQUFZO2tCQVR4QixTQUFTO21CQUFDO29CQUNULFFBQVEsRUFBRSxnQkFBZ0I7b0JBQzFCLCtFQUErRTtvQkFDL0UsUUFBUSxFQUFFLDJCQUEyQjtvQkFDckMsSUFBSSxFQUFFO3dCQUNKLHFCQUFxQixFQUFFLE1BQU07d0JBQzdCLGVBQWUsRUFBRSxNQUFNO3FCQUN4QjtpQkFDRiIsInNvdXJjZXNDb250ZW50IjpbIi8qXG4gKiBDb3B5cmlnaHQgKGMpIDIwMTYtMjAyNSBCcm9hZGNvbS4gQWxsIFJpZ2h0cyBSZXNlcnZlZC5cbiAqIFRoZSB0ZXJtIFwiQnJvYWRjb21cIiByZWZlcnMgdG8gQnJvYWRjb20gSW5jLiBhbmQvb3IgaXRzIHN1YnNpZGlhcmllcy5cbiAqIFRoaXMgc29mdHdhcmUgaXMgcmVsZWFzZWQgdW5kZXIgTUlUIGxpY2Vuc2UuXG4gKiBUaGUgZnVsbCBsaWNlbnNlIGluZm9ybWF0aW9uIGNhbiBiZSBmb3VuZCBpbiBMSUNFTlNFIGluIHRoZSByb290IGRpcmVjdG9yeSBvZiB0aGlzIHByb2plY3QuXG4gKi9cblxuaW1wb3J0IHsgQ29tcG9uZW50LCBpbmplY3QsIEluamVjdGlvblRva2VuIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5cbmltcG9ydCB7IENsckZpbGVNZXNzYWdlc1RlbXBsYXRlQ29udGV4dCB9IGZyb20gJy4vZmlsZS1tZXNzYWdlcy10ZW1wbGF0ZSc7XG5cbmV4cG9ydCBjb25zdCBDTFJfRklMRV9NRVNTQUdFU19URU1QTEFURV9DT05URVhUID0gbmV3IEluamVjdGlvblRva2VuPENsckZpbGVNZXNzYWdlc1RlbXBsYXRlQ29udGV4dD4oXG4gICdDbHJGaWxlTWVzc2FnZXNUZW1wbGF0ZUNvbnRleHQnXG4pO1xuXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdjbHItZmlsZS1pbmZvJyxcbiAgdGVtcGxhdGU6IGA8bmctY29udGVudD48L25nLWNvbnRlbnQ+YCxcbiAgaG9zdDoge1xuICAgICdbY2xhc3MuY2xyLXN1YnRleHRdJzogJ3RydWUnLFxuICB9LFxufSlcbmV4cG9ydCBjbGFzcyBDbHJGaWxlSW5mbyB7fVxuXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdjbHItZmlsZS1zdWNjZXNzJyxcbiAgLy8gV2UgY2hlY2sgZm9yIHN1Y2Nlc3MgaGVyZSBzbyB0aGF0IGNvbnN1bWVycyBkb24ndCBoYXZlIHRvLlxuICB0ZW1wbGF0ZTogYDxuZy1jb250ZW50ICpuZ0lmPVwiY29udGV4dC5zdWNjZXNzXCI+PC9uZy1jb250ZW50PmAsXG4gIGhvc3Q6IHtcbiAgICAnW3N0eWxlLmRpc3BsYXldJzogJ2NvbnRleHQuc3VjY2VzcyA/IFwiaW5saW5lLWJsb2NrXCIgOiBcIm5vbmVcIicsXG4gICAgJ1tjbGFzcy5jbHItc3VidGV4dF0nOiAndHJ1ZScsXG4gICAgJ1tjbGFzcy5zdWNjZXNzXSc6ICd0cnVlJyxcbiAgfSxcbn0pXG5leHBvcnQgY2xhc3MgQ2xyRmlsZVN1Y2Nlc3Mge1xuICBwcm90ZWN0ZWQgcmVhZG9ubHkgY29udGV4dDogQ2xyRmlsZU1lc3NhZ2VzVGVtcGxhdGVDb250ZXh0ID0gaW5qZWN0KENMUl9GSUxFX01FU1NBR0VTX1RFTVBMQVRFX0NPTlRFWFQpO1xufVxuXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdjbHItZmlsZS1lcnJvcicsXG4gIC8vIFRoZSBob3N0IHNob3VsZCBoYXZlIGFuIGAqbmdJZmAgb3IgYEBpZmAgdGhhdCBjaGVja3MgZm9yIHRoZSByZWxldmFudCBlcnJvci5cbiAgdGVtcGxhdGU6IGA8bmctY29udGVudD48L25nLWNvbnRlbnQ+YCxcbiAgaG9zdDoge1xuICAgICdbY2xhc3MuY2xyLXN1YnRleHRdJzogJ3RydWUnLFxuICAgICdbY2xhc3MuZXJyb3JdJzogJ3RydWUnLFxuICB9LFxufSlcbmV4cG9ydCBjbGFzcyBDbHJGaWxlRXJyb3Ige31cbiJdfQ==
|
|
@@ -1,12 +1,16 @@
|
|
|
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.
|
|
6
6
|
*/
|
|
7
7
|
export * from './file-input';
|
|
8
8
|
export * from './file-input-validator';
|
|
9
|
+
export * from './file-input-validator-errors';
|
|
9
10
|
export * from './file-input-value-accessor';
|
|
10
11
|
export * from './file-input-container';
|
|
12
|
+
export * from './file-list';
|
|
13
|
+
export * from './file-messages-template';
|
|
14
|
+
export * from './file-messages';
|
|
11
15
|
export * from './file-input.module';
|
|
12
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
16
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9hbmd1bGFyL3NyYy9mb3Jtcy9maWxlLWlucHV0L2luZGV4LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBOzs7OztHQUtHO0FBRUgsY0FBYyxjQUFjLENBQUM7QUFDN0IsY0FBYyx3QkFBd0IsQ0FBQztBQUN2QyxjQUFjLCtCQUErQixDQUFDO0FBQzlDLGNBQWMsNkJBQTZCLENBQUM7QUFDNUMsY0FBYyx3QkFBd0IsQ0FBQztBQUN2QyxjQUFjLGFBQWEsQ0FBQztBQUM1QixjQUFjLDBCQUEwQixDQUFDO0FBQ3pDLGNBQWMsaUJBQWlCLENBQUM7QUFDaEMsY0FBYyxxQkFBcUIsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbIi8qXG4gKiBDb3B5cmlnaHQgKGMpIDIwMTYtMjAyNSBCcm9hZGNvbS4gQWxsIFJpZ2h0cyBSZXNlcnZlZC5cbiAqIFRoZSB0ZXJtIFwiQnJvYWRjb21cIiByZWZlcnMgdG8gQnJvYWRjb20gSW5jLiBhbmQvb3IgaXRzIHN1YnNpZGlhcmllcy5cbiAqIFRoaXMgc29mdHdhcmUgaXMgcmVsZWFzZWQgdW5kZXIgTUlUIGxpY2Vuc2UuXG4gKiBUaGUgZnVsbCBsaWNlbnNlIGluZm9ybWF0aW9uIGNhbiBiZSBmb3VuZCBpbiBMSUNFTlNFIGluIHRoZSByb290IGRpcmVjdG9yeSBvZiB0aGlzIHByb2plY3QuXG4gKi9cblxuZXhwb3J0ICogZnJvbSAnLi9maWxlLWlucHV0JztcbmV4cG9ydCAqIGZyb20gJy4vZmlsZS1pbnB1dC12YWxpZGF0b3InO1xuZXhwb3J0ICogZnJvbSAnLi9maWxlLWlucHV0LXZhbGlkYXRvci1lcnJvcnMnO1xuZXhwb3J0ICogZnJvbSAnLi9maWxlLWlucHV0LXZhbHVlLWFjY2Vzc29yJztcbmV4cG9ydCAqIGZyb20gJy4vZmlsZS1pbnB1dC1jb250YWluZXInO1xuZXhwb3J0ICogZnJvbSAnLi9maWxlLWxpc3QnO1xuZXhwb3J0ICogZnJvbSAnLi9maWxlLW1lc3NhZ2VzLXRlbXBsYXRlJztcbmV4cG9ydCAqIGZyb20gJy4vZmlsZS1tZXNzYWdlcyc7XG5leHBvcnQgKiBmcm9tICcuL2ZpbGUtaW5wdXQubW9kdWxlJztcbiJdfQ==
|