@clr/angular 17.1.0 → 17.2.1
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/clarity.api.md +401 -145
- package/clr-angular.module.d.ts +7 -6
- package/data/datagrid/datagrid-detail-header.d.ts +4 -1
- package/data/datagrid/datagrid-detail.d.ts +5 -1
- package/data/datagrid/datagrid-filter.d.ts +4 -2
- package/data/datagrid/datagrid-if-detail.d.ts +9 -0
- package/data/datagrid/datagrid-virtual-scroll.directive.d.ts +62 -0
- package/data/datagrid/datagrid.d.ts +8 -4
- package/data/datagrid/datagrid.module.d.ts +31 -30
- package/data/datagrid/enums/column-changes.enum.d.ts +2 -1
- package/data/datagrid/index.d.ts +1 -0
- package/data/datagrid/interfaces/column-state.interface.d.ts +1 -0
- package/data/datagrid/providers/columns.service.d.ts +1 -0
- package/data/datagrid/providers/detail.service.d.ts +4 -0
- package/data/datagrid/render/cell-renderer.d.ts +3 -6
- package/data/datagrid/render/header-renderer.d.ts +2 -3
- package/data/datagrid/render/main-renderer.d.ts +5 -1
- package/data/datagrid/render/row-renderer.d.ts +4 -3
- package/data/datagrid/utils/key-navigation-grid.controller.d.ts +5 -1
- package/esm2020/accordion/accordion-panel.mjs +3 -3
- package/esm2020/accordion/stepper/stepper-panel.mjs +8 -4
- package/esm2020/clr-angular.module.mjs +5 -1
- package/esm2020/data/datagrid/datagrid-action-overflow.mjs +3 -1
- package/esm2020/data/datagrid/datagrid-detail-header.mjs +12 -6
- package/esm2020/data/datagrid/datagrid-detail.mjs +36 -8
- package/esm2020/data/datagrid/datagrid-filter.mjs +22 -13
- package/esm2020/data/datagrid/datagrid-if-detail.mjs +30 -7
- package/esm2020/data/datagrid/datagrid-row.mjs +3 -3
- package/esm2020/data/datagrid/datagrid-selection-cell.directive.mjs +2 -2
- package/esm2020/data/datagrid/datagrid-virtual-scroll.directive.mjs +233 -0
- package/esm2020/data/datagrid/datagrid.mjs +43 -10
- package/esm2020/data/datagrid/datagrid.module.mjs +5 -1
- package/esm2020/data/datagrid/enums/column-changes.enum.mjs +3 -2
- package/esm2020/data/datagrid/index.mjs +2 -1
- package/esm2020/data/datagrid/interfaces/column-state.interface.mjs +1 -1
- package/esm2020/data/datagrid/providers/columns.service.mjs +9 -3
- package/esm2020/data/datagrid/providers/detail.service.mjs +12 -2
- package/esm2020/data/datagrid/render/cell-renderer.mjs +8 -33
- package/esm2020/data/datagrid/render/header-renderer.mjs +25 -43
- package/esm2020/data/datagrid/render/main-renderer.mjs +59 -9
- package/esm2020/data/datagrid/render/render-organizer.mjs +2 -2
- package/esm2020/data/datagrid/render/row-renderer.mjs +5 -5
- package/esm2020/data/datagrid/utils/key-navigation-grid.controller.mjs +21 -5
- package/esm2020/forms/combobox/combobox.mjs +3 -3
- package/esm2020/forms/common/abstract-container.mjs +5 -2
- package/esm2020/forms/datalist/datalist-container.mjs +1 -4
- package/esm2020/forms/datepicker/datepicker-view-manager.mjs +3 -3
- package/esm2020/forms/file-input/file-input-container.mjs +157 -0
- package/esm2020/forms/file-input/file-input-validator.mjs +72 -0
- package/esm2020/forms/file-input/file-input-value-accessor.mjs +53 -0
- package/esm2020/forms/file-input/file-input.helpers.mjs +22 -0
- package/esm2020/forms/file-input/file-input.mjs +68 -0
- package/esm2020/forms/file-input/file-input.module.mjs +43 -0
- package/esm2020/forms/file-input/index.mjs +12 -0
- package/esm2020/forms/forms.module.mjs +5 -1
- package/esm2020/forms/index.mjs +2 -1
- package/esm2020/modal/index.mjs +3 -1
- package/esm2020/modal/modal-configuration.service.mjs +20 -0
- package/esm2020/modal/modal.mjs +47 -18
- package/esm2020/modal/modal.module.mjs +4 -2
- package/esm2020/modal/side-panel.mjs +90 -0
- package/esm2020/modal/side-panel.module.mjs +28 -0
- package/esm2020/timeline/timeline-step.mjs +3 -3
- package/esm2020/timeline/timeline.mjs +3 -3
- package/esm2020/utils/animations/expandable-animation/expandable-animation.mjs +17 -12
- package/esm2020/utils/dom-adapter/dom-adapter.mjs +13 -4
- package/esm2020/utils/i18n/common-strings.default.mjs +7 -2
- package/esm2020/utils/i18n/common-strings.interface.mjs +1 -1
- package/esm2020/wizard/wizard.mjs +29 -6
- package/fesm2015/clr-angular.mjs +1435 -468
- package/fesm2015/clr-angular.mjs.map +1 -1
- package/fesm2020/clr-angular.mjs +1418 -463
- package/fesm2020/clr-angular.mjs.map +1 -1
- package/forms/file-input/file-input-container.d.ts +16 -0
- package/forms/file-input/file-input-validator.d.ts +12 -0
- package/forms/file-input/file-input-value-accessor.d.ts +15 -0
- package/forms/file-input/file-input.d.ts +21 -0
- package/forms/file-input/file-input.helpers.d.ts +3 -0
- package/forms/file-input/file-input.module.d.ts +14 -0
- package/forms/file-input/index.d.ts +5 -0
- package/forms/forms.module.d.ts +9 -8
- package/forms/index.d.ts +1 -0
- package/modal/index.d.ts +2 -0
- package/modal/modal-configuration.service.d.ts +7 -0
- package/modal/modal.d.ts +8 -2
- package/modal/side-panel.d.ts +26 -0
- package/modal/side-panel.module.d.ts +13 -0
- package/package.json +2 -2
- package/utils/animations/expandable-animation/expandable-animation.d.ts +5 -4
- package/utils/i18n/common-strings.interface.d.ts +4 -0
- package/wizard/wizard.d.ts +12 -2
|
@@ -10,7 +10,6 @@ import { IfControlStateService } from '../common/if-control-state/if-control-sta
|
|
|
10
10
|
import { ControlClassService } from '../common/providers/control-class.service';
|
|
11
11
|
import { ControlIdService } from '../common/providers/control-id.service';
|
|
12
12
|
import { FocusService } from '../common/providers/focus.service';
|
|
13
|
-
import { LayoutService } from '../common/providers/layout.service';
|
|
14
13
|
import { NgControlService } from '../common/providers/ng-control.service';
|
|
15
14
|
import { DatalistIdService } from './providers/datalist-id.service';
|
|
16
15
|
import * as i0 from "@angular/core";
|
|
@@ -34,7 +33,6 @@ export class ClrDatalistContainer extends ClrAbstractContainer {
|
|
|
34
33
|
ClrDatalistContainer.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.2", ngImport: i0, type: ClrDatalistContainer, deps: [{ token: i1.ControlClassService }, { token: i2.LayoutService, optional: true }, { token: i3.NgControlService }, { token: i4.FocusService }, { token: i5.IfControlStateService }], target: i0.ɵɵFactoryTarget.Component });
|
|
35
34
|
ClrDatalistContainer.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "15.2.2", type: ClrDatalistContainer, selector: "clr-datalist-container", host: { properties: { "class.clr-form-control": "true", "class.clr-form-control-disabled": "control?.disabled", "class.clr-row": "addGrid()" } }, providers: [
|
|
36
35
|
ControlClassService,
|
|
37
|
-
LayoutService,
|
|
38
36
|
ControlIdService,
|
|
39
37
|
FocusService,
|
|
40
38
|
NgControlService,
|
|
@@ -111,7 +109,6 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.2", ngImpor
|
|
|
111
109
|
},
|
|
112
110
|
providers: [
|
|
113
111
|
ControlClassService,
|
|
114
|
-
LayoutService,
|
|
115
112
|
ControlIdService,
|
|
116
113
|
FocusService,
|
|
117
114
|
NgControlService,
|
|
@@ -122,4 +119,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.2", ngImpor
|
|
|
122
119
|
}], ctorParameters: function () { return [{ type: i1.ControlClassService }, { type: i2.LayoutService, decorators: [{
|
|
123
120
|
type: Optional
|
|
124
121
|
}] }, { type: i3.NgControlService }, { type: i4.FocusService }, { type: i5.IfControlStateService }]; } });
|
|
125
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
122
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGF0YWxpc3QtY29udGFpbmVyLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvYW5ndWxhci9zcmMvZm9ybXMvZGF0YWxpc3QvZGF0YWxpc3QtY29udGFpbmVyLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBOzs7OztHQUtHO0FBRUgsT0FBTyxFQUFFLFNBQVMsRUFBRSxRQUFRLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFFcEQsT0FBTyxFQUFFLG9CQUFvQixFQUFFLE1BQU0sOEJBQThCLENBQUM7QUFDcEUsT0FBTyxFQUFFLHFCQUFxQixFQUFFLE1BQU0scURBQXFELENBQUM7QUFDNUYsT0FBTyxFQUFFLG1CQUFtQixFQUFFLE1BQU0sMkNBQTJDLENBQUM7QUFDaEYsT0FBTyxFQUFFLGdCQUFnQixFQUFFLE1BQU0sd0NBQXdDLENBQUM7QUFDMUUsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLG1DQUFtQyxDQUFDO0FBRWpFLE9BQU8sRUFBRSxnQkFBZ0IsRUFBRSxNQUFNLHdDQUF3QyxDQUFDO0FBQzFFLE9BQU8sRUFBRSxpQkFBaUIsRUFBRSxNQUFNLGlDQUFpQyxDQUFDOzs7Ozs7Ozs7O0FBZ0RwRSxNQUFNLE9BQU8sb0JBQXFCLFNBQVEsb0JBQW9CO0lBRzVELFlBQ0UsbUJBQXdDLEVBQzVCLGFBQTRCLEVBQ3hDLGdCQUFrQyxFQUMxQixZQUEwQixFQUNmLHFCQUE0QztRQUUvRCxLQUFLLENBQUMscUJBQXFCLEVBQUUsYUFBYSxFQUFFLG1CQUFtQixFQUFFLGdCQUFnQixDQUFDLENBQUM7UUFIM0UsaUJBQVksR0FBWixZQUFZLENBQWM7UUFDZiwwQkFBcUIsR0FBckIscUJBQXFCLENBQXVCO1FBUGpFLFVBQUssR0FBRyxLQUFLLENBQUM7UUFXWixJQUFJLENBQUMsYUFBYSxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsWUFBWSxDQUFDLFdBQVcsQ0FBQyxTQUFTLENBQUMsS0FBSyxDQUFDLEVBQUUsQ0FBQyxDQUFDLElBQUksQ0FBQyxLQUFLLEdBQUcsS0FBSyxDQUFDLENBQUMsQ0FBQyxDQUFDO0lBQ2xHLENBQUM7O2lIQWJVLG9CQUFvQjtxR0FBcEIsb0JBQW9CLG1NQVRwQjtRQUNULG1CQUFtQjtRQUNuQixnQkFBZ0I7UUFDaEIsWUFBWTtRQUNaLGdCQUFnQjtRQUNoQixpQkFBaUI7UUFDakIscUJBQXFCO0tBQ3RCLGlEQTFDUzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7R0E2QlQ7MkZBZVUsb0JBQW9CO2tCQTlDaEMsU0FBUzttQkFBQztvQkFDVCxRQUFRLEVBQUUsd0JBQXdCO29CQUNsQyxRQUFRLEVBQUU7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0dBNkJUO29CQUNELElBQUksRUFBRTt3QkFDSiwwQkFBMEIsRUFBRSxNQUFNO3dCQUNsQyxtQ0FBbUMsRUFBRSxtQkFBbUI7d0JBQ3hELGlCQUFpQixFQUFFLFdBQVc7cUJBQy9CO29CQUNELFNBQVMsRUFBRTt3QkFDVCxtQkFBbUI7d0JBQ25CLGdCQUFnQjt3QkFDaEIsWUFBWTt3QkFDWixnQkFBZ0I7d0JBQ2hCLGlCQUFpQjt3QkFDakIscUJBQXFCO3FCQUN0QjtpQkFDRjs7MEJBTUksUUFBUSIsInNvdXJjZXNDb250ZW50IjpbIi8qXG4gKiBDb3B5cmlnaHQgKGMpIDIwMTYtMjAyNCBCcm9hZGNvbS4gQWxsIFJpZ2h0cyBSZXNlcnZlZC5cbiAqIFRoZSB0ZXJtIFwiQnJvYWRjb21cIiByZWZlcnMgdG8gQnJvYWRjb20gSW5jLiBhbmQvb3IgaXRzIHN1YnNpZGlhcmllcy5cbiAqIFRoaXMgc29mdHdhcmUgaXMgcmVsZWFzZWQgdW5kZXIgTUlUIGxpY2Vuc2UuXG4gKiBUaGUgZnVsbCBsaWNlbnNlIGluZm9ybWF0aW9uIGNhbiBiZSBmb3VuZCBpbiBMSUNFTlNFIGluIHRoZSByb290IGRpcmVjdG9yeSBvZiB0aGlzIHByb2plY3QuXG4gKi9cblxuaW1wb3J0IHsgQ29tcG9uZW50LCBPcHRpb25hbCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuXG5pbXBvcnQgeyBDbHJBYnN0cmFjdENvbnRhaW5lciB9IGZyb20gJy4uL2NvbW1vbi9hYnN0cmFjdC1jb250YWluZXInO1xuaW1wb3J0IHsgSWZDb250cm9sU3RhdGVTZXJ2aWNlIH0gZnJvbSAnLi4vY29tbW9uL2lmLWNvbnRyb2wtc3RhdGUvaWYtY29udHJvbC1zdGF0ZS5zZXJ2aWNlJztcbmltcG9ydCB7IENvbnRyb2xDbGFzc1NlcnZpY2UgfSBmcm9tICcuLi9jb21tb24vcHJvdmlkZXJzL2NvbnRyb2wtY2xhc3Muc2VydmljZSc7XG5pbXBvcnQgeyBDb250cm9sSWRTZXJ2aWNlIH0gZnJvbSAnLi4vY29tbW9uL3Byb3ZpZGVycy9jb250cm9sLWlkLnNlcnZpY2UnO1xuaW1wb3J0IHsgRm9jdXNTZXJ2aWNlIH0gZnJvbSAnLi4vY29tbW9uL3Byb3ZpZGVycy9mb2N1cy5zZXJ2aWNlJztcbmltcG9ydCB7IExheW91dFNlcnZpY2UgfSBmcm9tICcuLi9jb21tb24vcHJvdmlkZXJzL2xheW91dC5zZXJ2aWNlJztcbmltcG9ydCB7IE5nQ29udHJvbFNlcnZpY2UgfSBmcm9tICcuLi9jb21tb24vcHJvdmlkZXJzL25nLWNvbnRyb2wuc2VydmljZSc7XG5pbXBvcnQgeyBEYXRhbGlzdElkU2VydmljZSB9IGZyb20gJy4vcHJvdmlkZXJzL2RhdGFsaXN0LWlkLnNlcnZpY2UnO1xuXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdjbHItZGF0YWxpc3QtY29udGFpbmVyJyxcbiAgdGVtcGxhdGU6IGBcbiAgICA8bmctY29udGVudCBzZWxlY3Q9XCJsYWJlbFwiPjwvbmctY29udGVudD5cbiAgICA8bGFiZWwgKm5nSWY9XCIhbGFiZWwgJiYgYWRkR3JpZCgpXCI+PC9sYWJlbD5cbiAgICA8ZGl2IGNsYXNzPVwiY2xyLWNvbnRyb2wtY29udGFpbmVyXCIgW25nQ2xhc3NdPVwiY29udHJvbENsYXNzKClcIj5cbiAgICAgIDxkaXYgY2xhc3M9XCJjbHItaW5wdXQtd3JhcHBlclwiPlxuICAgICAgICA8ZGl2IGNsYXNzPVwiY2xyLWlucHV0LWdyb3VwXCIgW2NsYXNzLmNsci1mb2N1c109XCJmb2N1c1wiPlxuICAgICAgICAgIDxuZy1jb250ZW50IHNlbGVjdD1cIltjbHJEYXRhbGlzdElucHV0XVwiPjwvbmctY29udGVudD5cbiAgICAgICAgICA8bmctY29udGVudCBzZWxlY3Q9XCJkYXRhbGlzdFwiPjwvbmctY29udGVudD5cbiAgICAgICAgICA8Y2RzLWljb24gc2hhcGU9XCJhbmdsZVwiIGNsYXNzPVwiY2xyLWRhdGFsaXN0LWNhcmV0XCIgZGlyZWN0aW9uPVwiZG93blwiPjwvY2RzLWljb24+XG4gICAgICAgIDwvZGl2PlxuICAgICAgICA8Y2RzLWljb25cbiAgICAgICAgICAqbmdJZj1cInNob3dJbnZhbGlkXCJcbiAgICAgICAgICBjbGFzcz1cImNsci12YWxpZGF0ZS1pY29uXCJcbiAgICAgICAgICBzaGFwZT1cImV4Y2xhbWF0aW9uLWNpcmNsZVwiXG4gICAgICAgICAgc3RhdHVzPVwiZGFuZ2VyXCJcbiAgICAgICAgICBhcmlhLWhpZGRlbj1cInRydWVcIlxuICAgICAgICA+PC9jZHMtaWNvbj5cbiAgICAgICAgPGNkcy1pY29uXG4gICAgICAgICAgKm5nSWY9XCJzaG93VmFsaWRcIlxuICAgICAgICAgIGNsYXNzPVwiY2xyLXZhbGlkYXRlLWljb25cIlxuICAgICAgICAgIHNoYXBlPVwiY2hlY2stY2lyY2xlXCJcbiAgICAgICAgICBzdGF0dXM9XCJzdWNjZXNzXCJcbiAgICAgICAgICBhcmlhLWhpZGRlbj1cInRydWVcIlxuICAgICAgICA+PC9jZHMtaWNvbj5cbiAgICAgIDwvZGl2PlxuICAgICAgPG5nLWNvbnRlbnQgc2VsZWN0PVwiY2xyLWNvbnRyb2wtaGVscGVyXCIgKm5nSWY9XCJzaG93SGVscGVyXCI+PC9uZy1jb250ZW50PlxuICAgICAgPG5nLWNvbnRlbnQgc2VsZWN0PVwiY2xyLWNvbnRyb2wtZXJyb3JcIiAqbmdJZj1cInNob3dJbnZhbGlkXCI+PC9uZy1jb250ZW50PlxuICAgICAgPG5nLWNvbnRlbnQgc2VsZWN0PVwiY2xyLWNvbnRyb2wtc3VjY2Vzc1wiICpuZ0lmPVwic2hvd1ZhbGlkXCI+PC9uZy1jb250ZW50PlxuICAgIDwvZGl2PlxuICBgLFxuICBob3N0OiB7XG4gICAgJ1tjbGFzcy5jbHItZm9ybS1jb250cm9sXSc6ICd0cnVlJyxcbiAgICAnW2NsYXNzLmNsci1mb3JtLWNvbnRyb2wtZGlzYWJsZWRdJzogJ2NvbnRyb2w/LmRpc2FibGVkJyxcbiAgICAnW2NsYXNzLmNsci1yb3ddJzogJ2FkZEdyaWQoKScsXG4gIH0sXG4gIHByb3ZpZGVyczogW1xuICAgIENvbnRyb2xDbGFzc1NlcnZpY2UsXG4gICAgQ29udHJvbElkU2VydmljZSxcbiAgICBGb2N1c1NlcnZpY2UsXG4gICAgTmdDb250cm9sU2VydmljZSxcbiAgICBEYXRhbGlzdElkU2VydmljZSxcbiAgICBJZkNvbnRyb2xTdGF0ZVNlcnZpY2UsXG4gIF0sXG59KVxuZXhwb3J0IGNsYXNzIENsckRhdGFsaXN0Q29udGFpbmVyIGV4dGVuZHMgQ2xyQWJzdHJhY3RDb250YWluZXIge1xuICBmb2N1cyA9IGZhbHNlO1xuXG4gIGNvbnN0cnVjdG9yKFxuICAgIGNvbnRyb2xDbGFzc1NlcnZpY2U6IENvbnRyb2xDbGFzc1NlcnZpY2UsXG4gICAgQE9wdGlvbmFsKCkgbGF5b3V0U2VydmljZTogTGF5b3V0U2VydmljZSxcbiAgICBuZ0NvbnRyb2xTZXJ2aWNlOiBOZ0NvbnRyb2xTZXJ2aWNlLFxuICAgIHByaXZhdGUgZm9jdXNTZXJ2aWNlOiBGb2N1c1NlcnZpY2UsXG4gICAgcHJvdGVjdGVkIG92ZXJyaWRlIGlmQ29udHJvbFN0YXRlU2VydmljZTogSWZDb250cm9sU3RhdGVTZXJ2aWNlXG4gICkge1xuICAgIHN1cGVyKGlmQ29udHJvbFN0YXRlU2VydmljZSwgbGF5b3V0U2VydmljZSwgY29udHJvbENsYXNzU2VydmljZSwgbmdDb250cm9sU2VydmljZSk7XG5cbiAgICB0aGlzLnN1YnNjcmlwdGlvbnMucHVzaCh0aGlzLmZvY3VzU2VydmljZS5mb2N1c0NoYW5nZS5zdWJzY3JpYmUoc3RhdGUgPT4gKHRoaXMuZm9jdXMgPSBzdGF0ZSkpKTtcbiAgfVxufVxuIl19
|
|
@@ -38,7 +38,7 @@ export class ClrDatepickerViewManager {
|
|
|
38
38
|
}
|
|
39
39
|
}
|
|
40
40
|
ClrDatepickerViewManager.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.2", ngImport: i0, type: ClrDatepickerViewManager, deps: [{ token: i1.ClrCommonStringsService }, { token: i2.ViewManagerService }], target: i0.ɵɵFactoryTarget.Component });
|
|
41
|
-
ClrDatepickerViewManager.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "15.2.2", type: ClrDatepickerViewManager, selector: "clr-datepicker-view-manager", host: { attributes: { "role": "dialog" }, properties: { "class.datepicker": "true", "attr.aria-modal": "true", "attr.aria-label": "commonStrings.keys.datepickerDialogLabel" } }, providers: [DatepickerFocusService], ngImport: i0, template: "<!--\n
|
|
41
|
+
ClrDatepickerViewManager.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "15.2.2", type: ClrDatepickerViewManager, selector: "clr-datepicker-view-manager", host: { attributes: { "role": "dialog" }, properties: { "class.datepicker": "true", "attr.aria-modal": "true", "attr.aria-label": "commonStrings.keys.datepickerDialogLabel" } }, providers: [DatepickerFocusService], ngImport: i0, template: "<!--\n ~ Copyright (c) 2016-2024 Broadcom. All Rights Reserved.\n ~ The term \"Broadcom\" refers to Broadcom Inc. and/or its subsidiaries.\n ~ This software is released under MIT license.\n ~ The full license information can be found in LICENSE in the root directory of this project.\n-->\n\n<clr-monthpicker *ngIf=\"isMonthView\"></clr-monthpicker>\n<clr-yearpicker *ngIf=\"isYearView\"></clr-yearpicker>\n<clr-daypicker *ngIf=\"isDayView\"></clr-daypicker>\n", dependencies: [{ kind: "directive", type: i3.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "component", type: i4.ClrMonthpicker, selector: "clr-monthpicker" }, { kind: "component", type: i5.ClrYearpicker, selector: "clr-yearpicker" }, { kind: "component", type: i6.ClrDaypicker, selector: "clr-daypicker" }] });
|
|
42
42
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.2", ngImport: i0, type: ClrDatepickerViewManager, decorators: [{
|
|
43
43
|
type: Component,
|
|
44
44
|
args: [{ selector: 'clr-datepicker-view-manager', providers: [DatepickerFocusService], host: {
|
|
@@ -46,6 +46,6 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.2", ngImpor
|
|
|
46
46
|
'[attr.aria-modal]': 'true',
|
|
47
47
|
'[attr.aria-label]': 'commonStrings.keys.datepickerDialogLabel',
|
|
48
48
|
role: 'dialog',
|
|
49
|
-
}, template: "<!--\n
|
|
49
|
+
}, template: "<!--\n ~ Copyright (c) 2016-2024 Broadcom. All Rights Reserved.\n ~ The term \"Broadcom\" refers to Broadcom Inc. and/or its subsidiaries.\n ~ This software is released under MIT license.\n ~ The full license information can be found in LICENSE in the root directory of this project.\n-->\n\n<clr-monthpicker *ngIf=\"isMonthView\"></clr-monthpicker>\n<clr-yearpicker *ngIf=\"isYearView\"></clr-yearpicker>\n<clr-daypicker *ngIf=\"isDayView\"></clr-daypicker>\n" }]
|
|
50
50
|
}], ctorParameters: function () { return [{ type: i1.ClrCommonStringsService }, { type: i2.ViewManagerService }]; } });
|
|
51
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
51
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGF0ZXBpY2tlci12aWV3LW1hbmFnZXIuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9hbmd1bGFyL3NyYy9mb3Jtcy9kYXRlcGlja2VyL2RhdGVwaWNrZXItdmlldy1tYW5hZ2VyLnRzIiwiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvYW5ndWxhci9zcmMvZm9ybXMvZGF0ZXBpY2tlci9kYXRlcGlja2VyLXZpZXctbWFuYWdlci5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBOzs7OztHQUtHO0FBRUgsT0FBTyxFQUFFLFNBQVMsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUcxQyxPQUFPLEVBQUUsc0JBQXNCLEVBQUUsTUFBTSxzQ0FBc0MsQ0FBQzs7Ozs7Ozs7QUFjOUUsTUFBTSxPQUFPLHdCQUF3QjtJQUNuQyxZQUFtQixhQUFzQyxFQUFVLGtCQUFzQztRQUF0RixrQkFBYSxHQUFiLGFBQWEsQ0FBeUI7UUFBVSx1QkFBa0IsR0FBbEIsa0JBQWtCLENBQW9CO0lBQUcsQ0FBQztJQUU3Rzs7T0FFRztJQUNILElBQUksV0FBVztRQUNiLE9BQU8sSUFBSSxDQUFDLGtCQUFrQixDQUFDLFdBQVcsQ0FBQztJQUM3QyxDQUFDO0lBRUQ7O09BRUc7SUFDSCxJQUFJLFVBQVU7UUFDWixPQUFPLElBQUksQ0FBQyxrQkFBa0IsQ0FBQyxVQUFVLENBQUM7SUFDNUMsQ0FBQztJQUVEOztPQUVHO0lBQ0gsSUFBSSxTQUFTO1FBQ1gsT0FBTyxJQUFJLENBQUMsa0JBQWtCLENBQUMsU0FBUyxDQUFDO0lBQzNDLENBQUM7O3FIQXRCVSx3QkFBd0I7eUdBQXhCLHdCQUF3Qix3T0FSeEIsQ0FBQyxzQkFBc0IsQ0FBQywwQkNoQnJDLGtkQVVBOzJGRGNhLHdCQUF3QjtrQkFYcEMsU0FBUzsrQkFDRSw2QkFBNkIsYUFFNUIsQ0FBQyxzQkFBc0IsQ0FBQyxRQUM3Qjt3QkFDSixvQkFBb0IsRUFBRSxNQUFNO3dCQUM1QixtQkFBbUIsRUFBRSxNQUFNO3dCQUMzQixtQkFBbUIsRUFBRSwwQ0FBMEM7d0JBQy9ELElBQUksRUFBRSxRQUFRO3FCQUNmIiwic291cmNlc0NvbnRlbnQiOlsiLypcbiAqIENvcHlyaWdodCAoYykgMjAxNi0yMDI0IEJyb2FkY29tLiBBbGwgUmlnaHRzIFJlc2VydmVkLlxuICogVGhlIHRlcm0gXCJCcm9hZGNvbVwiIHJlZmVycyB0byBCcm9hZGNvbSBJbmMuIGFuZC9vciBpdHMgc3Vic2lkaWFyaWVzLlxuICogVGhpcyBzb2Z0d2FyZSBpcyByZWxlYXNlZCB1bmRlciBNSVQgbGljZW5zZS5cbiAqIFRoZSBmdWxsIGxpY2Vuc2UgaW5mb3JtYXRpb24gY2FuIGJlIGZvdW5kIGluIExJQ0VOU0UgaW4gdGhlIHJvb3QgZGlyZWN0b3J5IG9mIHRoaXMgcHJvamVjdC5cbiAqL1xuXG5pbXBvcnQgeyBDb21wb25lbnQgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcblxuaW1wb3J0IHsgQ2xyQ29tbW9uU3RyaW5nc1NlcnZpY2UgfSBmcm9tICcuLi8uLi91dGlscy9pMThuL2NvbW1vbi1zdHJpbmdzLnNlcnZpY2UnO1xuaW1wb3J0IHsgRGF0ZXBpY2tlckZvY3VzU2VydmljZSB9IGZyb20gJy4vcHJvdmlkZXJzL2RhdGVwaWNrZXItZm9jdXMuc2VydmljZSc7XG5pbXBvcnQgeyBWaWV3TWFuYWdlclNlcnZpY2UgfSBmcm9tICcuL3Byb3ZpZGVycy92aWV3LW1hbmFnZXIuc2VydmljZSc7XG5cbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ2Nsci1kYXRlcGlja2VyLXZpZXctbWFuYWdlcicsXG4gIHRlbXBsYXRlVXJsOiAnLi9kYXRlcGlja2VyLXZpZXctbWFuYWdlci5odG1sJyxcbiAgcHJvdmlkZXJzOiBbRGF0ZXBpY2tlckZvY3VzU2VydmljZV0sXG4gIGhvc3Q6IHtcbiAgICAnW2NsYXNzLmRhdGVwaWNrZXJdJzogJ3RydWUnLFxuICAgICdbYXR0ci5hcmlhLW1vZGFsXSc6ICd0cnVlJyxcbiAgICAnW2F0dHIuYXJpYS1sYWJlbF0nOiAnY29tbW9uU3RyaW5ncy5rZXlzLmRhdGVwaWNrZXJEaWFsb2dMYWJlbCcsXG4gICAgcm9sZTogJ2RpYWxvZycsXG4gIH0sXG59KVxuZXhwb3J0IGNsYXNzIENsckRhdGVwaWNrZXJWaWV3TWFuYWdlciB7XG4gIGNvbnN0cnVjdG9yKHB1YmxpYyBjb21tb25TdHJpbmdzOiBDbHJDb21tb25TdHJpbmdzU2VydmljZSwgcHJpdmF0ZSB2aWV3TWFuYWdlclNlcnZpY2U6IFZpZXdNYW5hZ2VyU2VydmljZSkge31cblxuICAvKipcbiAgICogUmV0dXJucyBpZiB0aGUgY3VycmVudCB2aWV3IGlzIHRoZSBtb250aHBpY2tlci5cbiAgICovXG4gIGdldCBpc01vbnRoVmlldygpOiBib29sZWFuIHtcbiAgICByZXR1cm4gdGhpcy52aWV3TWFuYWdlclNlcnZpY2UuaXNNb250aFZpZXc7XG4gIH1cblxuICAvKipcbiAgICogUmV0dXJucyBpZiB0aGUgY3VycmVudCB2aWV3IGlzIHRoZSB5ZWFycGlja2VyLlxuICAgKi9cbiAgZ2V0IGlzWWVhclZpZXcoKTogYm9vbGVhbiB7XG4gICAgcmV0dXJuIHRoaXMudmlld01hbmFnZXJTZXJ2aWNlLmlzWWVhclZpZXc7XG4gIH1cblxuICAvKipcbiAgICogUmV0dXJucyBpZiB0aGUgY3VycmVudCB2aWV3IGlzIHRoZSBkYXlwaWNrZXIuXG4gICAqL1xuICBnZXQgaXNEYXlWaWV3KCk6IGJvb2xlYW4ge1xuICAgIHJldHVybiB0aGlzLnZpZXdNYW5hZ2VyU2VydmljZS5pc0RheVZpZXc7XG4gIH1cbn1cbiIsIjwhLS1cbiAgfiBDb3B5cmlnaHQgKGMpIDIwMTYtMjAyNCBCcm9hZGNvbS4gQWxsIFJpZ2h0cyBSZXNlcnZlZC5cbiAgfiBUaGUgdGVybSBcIkJyb2FkY29tXCIgcmVmZXJzIHRvIEJyb2FkY29tIEluYy4gYW5kL29yIGl0cyBzdWJzaWRpYXJpZXMuXG4gIH4gVGhpcyBzb2Z0d2FyZSBpcyByZWxlYXNlZCB1bmRlciBNSVQgbGljZW5zZS5cbiAgfiBUaGUgZnVsbCBsaWNlbnNlIGluZm9ybWF0aW9uIGNhbiBiZSBmb3VuZCBpbiBMSUNFTlNFIGluIHRoZSByb290IGRpcmVjdG9yeSBvZiB0aGlzIHByb2plY3QuXG4tLT5cblxuPGNsci1tb250aHBpY2tlciAqbmdJZj1cImlzTW9udGhWaWV3XCI+PC9jbHItbW9udGhwaWNrZXI+XG48Y2xyLXllYXJwaWNrZXIgKm5nSWY9XCJpc1llYXJWaWV3XCI+PC9jbHIteWVhcnBpY2tlcj5cbjxjbHItZGF5cGlja2VyICpuZ0lmPVwiaXNEYXlWaWV3XCI+PC9jbHItZGF5cGlja2VyPlxuIl19
|
|
@@ -0,0 +1,157 @@
|
|
|
1
|
+
/*
|
|
2
|
+
* Copyright (c) 2016-2024 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, forwardRef, inject, Input, ViewChild } from '@angular/core';
|
|
8
|
+
import { ClrCommonStringsService } from '../../utils/i18n/common-strings.service';
|
|
9
|
+
import { ClrAbstractContainer } from '../common/abstract-container';
|
|
10
|
+
import { IfControlStateService } from '../common/if-control-state/if-control-state.service';
|
|
11
|
+
import { ControlClassService } from '../common/providers/control-class.service';
|
|
12
|
+
import { ControlIdService } from '../common/providers/control-id.service';
|
|
13
|
+
import { NgControlService } from '../common/providers/ng-control.service';
|
|
14
|
+
import { ClrFileInput } from './file-input';
|
|
15
|
+
import * as i0 from "@angular/core";
|
|
16
|
+
import * as i1 from "@angular/common";
|
|
17
|
+
import * as i2 from "../../icon/icon";
|
|
18
|
+
import * as i3 from "../common/label";
|
|
19
|
+
export class ClrFileInputContainer extends ClrAbstractContainer {
|
|
20
|
+
constructor() {
|
|
21
|
+
super(...arguments);
|
|
22
|
+
this.commonStrings = inject(ClrCommonStringsService);
|
|
23
|
+
}
|
|
24
|
+
get disabled() {
|
|
25
|
+
return this.fileInput.elementRef.nativeElement.disabled;
|
|
26
|
+
}
|
|
27
|
+
get browseButtonDescribedBy() {
|
|
28
|
+
return this.fileInput.elementRef.nativeElement.getAttribute('aria-describedby');
|
|
29
|
+
}
|
|
30
|
+
browse() {
|
|
31
|
+
this.fileInput.elementRef.nativeElement.click();
|
|
32
|
+
}
|
|
33
|
+
clearSelectedFiles() {
|
|
34
|
+
this.fileInput.elementRef.nativeElement.value = '';
|
|
35
|
+
this.fileInput.elementRef.nativeElement.dispatchEvent(new Event('change', { bubbles: true, cancelable: true }));
|
|
36
|
+
this.browseButtonElementRef.nativeElement.focus();
|
|
37
|
+
}
|
|
38
|
+
}
|
|
39
|
+
ClrFileInputContainer.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.2", ngImport: i0, type: ClrFileInputContainer, deps: null, target: i0.ɵɵFactoryTarget.Component });
|
|
40
|
+
ClrFileInputContainer.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "15.2.2", type: ClrFileInputContainer, selector: "clr-file-input-container", inputs: { customButtonLabel: ["clrButtonLabel", "customButtonLabel"] }, host: { properties: { "class.clr-form-control": "true", "class.clr-form-control-disabled": "disabled", "class.clr-row": "addGrid()" } }, providers: [IfControlStateService, NgControlService, ControlIdService, ControlClassService], queries: [{ propertyName: "fileInput", first: true, predicate: i0.forwardRef(function () { return ClrFileInput; }), descendants: true }], viewQueries: [{ propertyName: "browseButtonElementRef", first: true, predicate: ["browseButton"], descendants: true }], usesInheritance: true, ngImport: i0, template: `
|
|
41
|
+
<ng-content select="label"></ng-content>
|
|
42
|
+
<label *ngIf="!label && addGrid()"></label>
|
|
43
|
+
<div class="clr-control-container" [ngClass]="controlClass()">
|
|
44
|
+
<div class="clr-file-input-wrapper">
|
|
45
|
+
<ng-content select="[clrFileInput]"></ng-content>
|
|
46
|
+
<button
|
|
47
|
+
#browseButton
|
|
48
|
+
type="button"
|
|
49
|
+
class="btn btn-sm clr-file-input-browse-button"
|
|
50
|
+
[attr.aria-describedby]="browseButtonDescribedBy"
|
|
51
|
+
[disabled]="disabled"
|
|
52
|
+
(click)="browse()"
|
|
53
|
+
>
|
|
54
|
+
<cds-icon shape="folder-open"></cds-icon>
|
|
55
|
+
<span class="clr-file-input-browse-button-text">
|
|
56
|
+
{{ fileInput?.selection?.buttonLabel || customButtonLabel || commonStrings.keys.browse }}
|
|
57
|
+
</span>
|
|
58
|
+
</button>
|
|
59
|
+
<button
|
|
60
|
+
*ngIf="fileInput?.selection?.fileCount"
|
|
61
|
+
type="button"
|
|
62
|
+
class="btn btn-sm clr-file-input-clear-button"
|
|
63
|
+
[attr.aria-label]="fileInput?.selection?.clearFilesButtonLabel"
|
|
64
|
+
(click)="clearSelectedFiles()"
|
|
65
|
+
>
|
|
66
|
+
<cds-icon shape="times" status="neutral" size="md"></cds-icon>
|
|
67
|
+
</button>
|
|
68
|
+
<cds-icon
|
|
69
|
+
*ngIf="showInvalid"
|
|
70
|
+
class="clr-validate-icon"
|
|
71
|
+
shape="exclamation-circle"
|
|
72
|
+
status="danger"
|
|
73
|
+
aria-hidden="true"
|
|
74
|
+
></cds-icon>
|
|
75
|
+
<cds-icon
|
|
76
|
+
*ngIf="showValid"
|
|
77
|
+
class="clr-validate-icon"
|
|
78
|
+
shape="check-circle"
|
|
79
|
+
status="success"
|
|
80
|
+
aria-hidden="true"
|
|
81
|
+
></cds-icon>
|
|
82
|
+
</div>
|
|
83
|
+
<ng-content select="clr-control-helper" *ngIf="showHelper"></ng-content>
|
|
84
|
+
<ng-content select="clr-control-error" *ngIf="showInvalid"></ng-content>
|
|
85
|
+
<ng-content select="clr-control-success" *ngIf="showValid"></ng-content>
|
|
86
|
+
</div>
|
|
87
|
+
`, isInline: true, dependencies: [{ kind: "directive", type: i1.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i2.CdsIconCustomTag, selector: "cds-icon" }, { kind: "directive", type: i3.ClrLabel, selector: "label", inputs: ["for"] }] });
|
|
88
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.2", ngImport: i0, type: ClrFileInputContainer, decorators: [{
|
|
89
|
+
type: Component,
|
|
90
|
+
args: [{
|
|
91
|
+
selector: 'clr-file-input-container',
|
|
92
|
+
template: `
|
|
93
|
+
<ng-content select="label"></ng-content>
|
|
94
|
+
<label *ngIf="!label && addGrid()"></label>
|
|
95
|
+
<div class="clr-control-container" [ngClass]="controlClass()">
|
|
96
|
+
<div class="clr-file-input-wrapper">
|
|
97
|
+
<ng-content select="[clrFileInput]"></ng-content>
|
|
98
|
+
<button
|
|
99
|
+
#browseButton
|
|
100
|
+
type="button"
|
|
101
|
+
class="btn btn-sm clr-file-input-browse-button"
|
|
102
|
+
[attr.aria-describedby]="browseButtonDescribedBy"
|
|
103
|
+
[disabled]="disabled"
|
|
104
|
+
(click)="browse()"
|
|
105
|
+
>
|
|
106
|
+
<cds-icon shape="folder-open"></cds-icon>
|
|
107
|
+
<span class="clr-file-input-browse-button-text">
|
|
108
|
+
{{ fileInput?.selection?.buttonLabel || customButtonLabel || commonStrings.keys.browse }}
|
|
109
|
+
</span>
|
|
110
|
+
</button>
|
|
111
|
+
<button
|
|
112
|
+
*ngIf="fileInput?.selection?.fileCount"
|
|
113
|
+
type="button"
|
|
114
|
+
class="btn btn-sm clr-file-input-clear-button"
|
|
115
|
+
[attr.aria-label]="fileInput?.selection?.clearFilesButtonLabel"
|
|
116
|
+
(click)="clearSelectedFiles()"
|
|
117
|
+
>
|
|
118
|
+
<cds-icon shape="times" status="neutral" size="md"></cds-icon>
|
|
119
|
+
</button>
|
|
120
|
+
<cds-icon
|
|
121
|
+
*ngIf="showInvalid"
|
|
122
|
+
class="clr-validate-icon"
|
|
123
|
+
shape="exclamation-circle"
|
|
124
|
+
status="danger"
|
|
125
|
+
aria-hidden="true"
|
|
126
|
+
></cds-icon>
|
|
127
|
+
<cds-icon
|
|
128
|
+
*ngIf="showValid"
|
|
129
|
+
class="clr-validate-icon"
|
|
130
|
+
shape="check-circle"
|
|
131
|
+
status="success"
|
|
132
|
+
aria-hidden="true"
|
|
133
|
+
></cds-icon>
|
|
134
|
+
</div>
|
|
135
|
+
<ng-content select="clr-control-helper" *ngIf="showHelper"></ng-content>
|
|
136
|
+
<ng-content select="clr-control-error" *ngIf="showInvalid"></ng-content>
|
|
137
|
+
<ng-content select="clr-control-success" *ngIf="showValid"></ng-content>
|
|
138
|
+
</div>
|
|
139
|
+
`,
|
|
140
|
+
host: {
|
|
141
|
+
'[class.clr-form-control]': 'true',
|
|
142
|
+
'[class.clr-form-control-disabled]': 'disabled',
|
|
143
|
+
'[class.clr-row]': 'addGrid()',
|
|
144
|
+
},
|
|
145
|
+
providers: [IfControlStateService, NgControlService, ControlIdService, ControlClassService],
|
|
146
|
+
}]
|
|
147
|
+
}], propDecorators: { customButtonLabel: [{
|
|
148
|
+
type: Input,
|
|
149
|
+
args: ['clrButtonLabel']
|
|
150
|
+
}], fileInput: [{
|
|
151
|
+
type: ContentChild,
|
|
152
|
+
args: [forwardRef(() => ClrFileInput)]
|
|
153
|
+
}], browseButtonElementRef: [{
|
|
154
|
+
type: ViewChild,
|
|
155
|
+
args: ['browseButton']
|
|
156
|
+
}] } });
|
|
157
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZmlsZS1pbnB1dC1jb250YWluZXIuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9hbmd1bGFyL3NyYy9mb3Jtcy9maWxlLWlucHV0L2ZpbGUtaW5wdXQtY29udGFpbmVyLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBOzs7OztHQUtHO0FBRUgsT0FBTyxFQUFFLFNBQVMsRUFBRSxZQUFZLEVBQWMsVUFBVSxFQUFFLE1BQU0sRUFBRSxLQUFLLEVBQUUsU0FBUyxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBRTFHLE9BQU8sRUFBRSx1QkFBdUIsRUFBRSxNQUFNLHlDQUF5QyxDQUFDO0FBQ2xGLE9BQU8sRUFBRSxvQkFBb0IsRUFBRSxNQUFNLDhCQUE4QixDQUFDO0FBQ3BFLE9BQU8sRUFBRSxxQkFBcUIsRUFBRSxNQUFNLHFEQUFxRCxDQUFDO0FBQzVGLE9BQU8sRUFBRSxtQkFBbUIsRUFBRSxNQUFNLDJDQUEyQyxDQUFDO0FBQ2hGLE9BQU8sRUFBRSxnQkFBZ0IsRUFBRSxNQUFNLHdDQUF3QyxDQUFDO0FBQzFFLE9BQU8sRUFBRSxnQkFBZ0IsRUFBRSxNQUFNLHdDQUF3QyxDQUFDO0FBQzFFLE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSxjQUFjLENBQUM7Ozs7O0FBMkQ1QyxNQUFNLE9BQU8scUJBQXNCLFNBQVEsb0JBQW9CO0lBekQvRDs7UUE0RHFCLGtCQUFhLEdBQUcsTUFBTSxDQUFDLHVCQUF1QixDQUFDLENBQUM7S0F3QnBFO0lBbEJDLElBQWMsUUFBUTtRQUNwQixPQUFPLElBQUksQ0FBQyxTQUFTLENBQUMsVUFBVSxDQUFDLGFBQWEsQ0FBQyxRQUFRLENBQUM7SUFDMUQsQ0FBQztJQUVELElBQWMsdUJBQXVCO1FBQ25DLE9BQU8sSUFBSSxDQUFDLFNBQVMsQ0FBQyxVQUFVLENBQUMsYUFBYSxDQUFDLFlBQVksQ0FBQyxrQkFBa0IsQ0FBQyxDQUFDO0lBQ2xGLENBQUM7SUFFUyxNQUFNO1FBQ2QsSUFBSSxDQUFDLFNBQVMsQ0FBQyxVQUFVLENBQUMsYUFBYSxDQUFDLEtBQUssRUFBRSxDQUFDO0lBQ2xELENBQUM7SUFFUyxrQkFBa0I7UUFDMUIsSUFBSSxDQUFDLFNBQVMsQ0FBQyxVQUFVLENBQUMsYUFBYSxDQUFDLEtBQUssR0FBRyxFQUFFLENBQUM7UUFDbkQsSUFBSSxDQUFDLFNBQVMsQ0FBQyxVQUFVLENBQUMsYUFBYSxDQUFDLGFBQWEsQ0FBQyxJQUFJLEtBQUssQ0FBQyxRQUFRLEVBQUUsRUFBRSxPQUFPLEVBQUUsSUFBSSxFQUFFLFVBQVUsRUFBRSxJQUFJLEVBQUUsQ0FBQyxDQUFDLENBQUM7UUFFaEgsSUFBSSxDQUFDLHNCQUFzQixDQUFDLGFBQWEsQ0FBQyxLQUFLLEVBQUUsQ0FBQztJQUNwRCxDQUFDOztrSEExQlUscUJBQXFCO3NHQUFyQixxQkFBcUIsb1FBRnJCLENBQUMscUJBQXFCLEVBQUUsZ0JBQWdCLEVBQUUsZ0JBQWdCLEVBQUUsbUJBQW1CLENBQUMsb0dBTzVELFlBQVksbU1BNURqQzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7R0ErQ1Q7MkZBUVUscUJBQXFCO2tCQXpEakMsU0FBUzttQkFBQztvQkFDVCxRQUFRLEVBQUUsMEJBQTBCO29CQUNwQyxRQUFRLEVBQUU7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0dBK0NUO29CQUNELElBQUksRUFBRTt3QkFDSiwwQkFBMEIsRUFBRSxNQUFNO3dCQUNsQyxtQ0FBbUMsRUFBRSxVQUFVO3dCQUMvQyxpQkFBaUIsRUFBRSxXQUFXO3FCQUMvQjtvQkFDRCxTQUFTLEVBQUUsQ0FBQyxxQkFBcUIsRUFBRSxnQkFBZ0IsRUFBRSxnQkFBZ0IsRUFBRSxtQkFBbUIsQ0FBQztpQkFDNUY7OEJBRTBCLGlCQUFpQjtzQkFBekMsS0FBSzt1QkFBQyxnQkFBZ0I7Z0JBSTBDLFNBQVM7c0JBQXpFLFlBQVk7dUJBQUMsVUFBVSxDQUFDLEdBQUcsRUFBRSxDQUFDLFlBQVksQ0FBQztnQkFFVCxzQkFBc0I7c0JBQXhELFNBQVM7dUJBQUMsY0FBYyIsInNvdXJjZXNDb250ZW50IjpbIi8qXG4gKiBDb3B5cmlnaHQgKGMpIDIwMTYtMjAyNCBCcm9hZGNvbS4gQWxsIFJpZ2h0cyBSZXNlcnZlZC5cbiAqIFRoZSB0ZXJtIFwiQnJvYWRjb21cIiByZWZlcnMgdG8gQnJvYWRjb20gSW5jLiBhbmQvb3IgaXRzIHN1YnNpZGlhcmllcy5cbiAqIFRoaXMgc29mdHdhcmUgaXMgcmVsZWFzZWQgdW5kZXIgTUlUIGxpY2Vuc2UuXG4gKiBUaGUgZnVsbCBsaWNlbnNlIGluZm9ybWF0aW9uIGNhbiBiZSBmb3VuZCBpbiBMSUNFTlNFIGluIHRoZSByb290IGRpcmVjdG9yeSBvZiB0aGlzIHByb2plY3QuXG4gKi9cblxuaW1wb3J0IHsgQ29tcG9uZW50LCBDb250ZW50Q2hpbGQsIEVsZW1lbnRSZWYsIGZvcndhcmRSZWYsIGluamVjdCwgSW5wdXQsIFZpZXdDaGlsZCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuXG5pbXBvcnQgeyBDbHJDb21tb25TdHJpbmdzU2VydmljZSB9IGZyb20gJy4uLy4uL3V0aWxzL2kxOG4vY29tbW9uLXN0cmluZ3Muc2VydmljZSc7XG5pbXBvcnQgeyBDbHJBYnN0cmFjdENvbnRhaW5lciB9IGZyb20gJy4uL2NvbW1vbi9hYnN0cmFjdC1jb250YWluZXInO1xuaW1wb3J0IHsgSWZDb250cm9sU3RhdGVTZXJ2aWNlIH0gZnJvbSAnLi4vY29tbW9uL2lmLWNvbnRyb2wtc3RhdGUvaWYtY29udHJvbC1zdGF0ZS5zZXJ2aWNlJztcbmltcG9ydCB7IENvbnRyb2xDbGFzc1NlcnZpY2UgfSBmcm9tICcuLi9jb21tb24vcHJvdmlkZXJzL2NvbnRyb2wtY2xhc3Muc2VydmljZSc7XG5pbXBvcnQgeyBDb250cm9sSWRTZXJ2aWNlIH0gZnJvbSAnLi4vY29tbW9uL3Byb3ZpZGVycy9jb250cm9sLWlkLnNlcnZpY2UnO1xuaW1wb3J0IHsgTmdDb250cm9sU2VydmljZSB9IGZyb20gJy4uL2NvbW1vbi9wcm92aWRlcnMvbmctY29udHJvbC5zZXJ2aWNlJztcbmltcG9ydCB7IENsckZpbGVJbnB1dCB9IGZyb20gJy4vZmlsZS1pbnB1dCc7XG5cbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ2Nsci1maWxlLWlucHV0LWNvbnRhaW5lcicsXG4gIHRlbXBsYXRlOiBgXG4gICAgPG5nLWNvbnRlbnQgc2VsZWN0PVwibGFiZWxcIj48L25nLWNvbnRlbnQ+XG4gICAgPGxhYmVsICpuZ0lmPVwiIWxhYmVsICYmIGFkZEdyaWQoKVwiPjwvbGFiZWw+XG4gICAgPGRpdiBjbGFzcz1cImNsci1jb250cm9sLWNvbnRhaW5lclwiIFtuZ0NsYXNzXT1cImNvbnRyb2xDbGFzcygpXCI+XG4gICAgICA8ZGl2IGNsYXNzPVwiY2xyLWZpbGUtaW5wdXQtd3JhcHBlclwiPlxuICAgICAgICA8bmctY29udGVudCBzZWxlY3Q9XCJbY2xyRmlsZUlucHV0XVwiPjwvbmctY29udGVudD5cbiAgICAgICAgPGJ1dHRvblxuICAgICAgICAgICNicm93c2VCdXR0b25cbiAgICAgICAgICB0eXBlPVwiYnV0dG9uXCJcbiAgICAgICAgICBjbGFzcz1cImJ0biBidG4tc20gY2xyLWZpbGUtaW5wdXQtYnJvd3NlLWJ1dHRvblwiXG4gICAgICAgICAgW2F0dHIuYXJpYS1kZXNjcmliZWRieV09XCJicm93c2VCdXR0b25EZXNjcmliZWRCeVwiXG4gICAgICAgICAgW2Rpc2FibGVkXT1cImRpc2FibGVkXCJcbiAgICAgICAgICAoY2xpY2spPVwiYnJvd3NlKClcIlxuICAgICAgICA+XG4gICAgICAgICAgPGNkcy1pY29uIHNoYXBlPVwiZm9sZGVyLW9wZW5cIj48L2Nkcy1pY29uPlxuICAgICAgICAgIDxzcGFuIGNsYXNzPVwiY2xyLWZpbGUtaW5wdXQtYnJvd3NlLWJ1dHRvbi10ZXh0XCI+XG4gICAgICAgICAgICB7eyBmaWxlSW5wdXQ/LnNlbGVjdGlvbj8uYnV0dG9uTGFiZWwgfHwgY3VzdG9tQnV0dG9uTGFiZWwgfHwgY29tbW9uU3RyaW5ncy5rZXlzLmJyb3dzZSB9fVxuICAgICAgICAgIDwvc3Bhbj5cbiAgICAgICAgPC9idXR0b24+XG4gICAgICAgIDxidXR0b25cbiAgICAgICAgICAqbmdJZj1cImZpbGVJbnB1dD8uc2VsZWN0aW9uPy5maWxlQ291bnRcIlxuICAgICAgICAgIHR5cGU9XCJidXR0b25cIlxuICAgICAgICAgIGNsYXNzPVwiYnRuIGJ0bi1zbSBjbHItZmlsZS1pbnB1dC1jbGVhci1idXR0b25cIlxuICAgICAgICAgIFthdHRyLmFyaWEtbGFiZWxdPVwiZmlsZUlucHV0Py5zZWxlY3Rpb24/LmNsZWFyRmlsZXNCdXR0b25MYWJlbFwiXG4gICAgICAgICAgKGNsaWNrKT1cImNsZWFyU2VsZWN0ZWRGaWxlcygpXCJcbiAgICAgICAgPlxuICAgICAgICAgIDxjZHMtaWNvbiBzaGFwZT1cInRpbWVzXCIgc3RhdHVzPVwibmV1dHJhbFwiIHNpemU9XCJtZFwiPjwvY2RzLWljb24+XG4gICAgICAgIDwvYnV0dG9uPlxuICAgICAgICA8Y2RzLWljb25cbiAgICAgICAgICAqbmdJZj1cInNob3dJbnZhbGlkXCJcbiAgICAgICAgICBjbGFzcz1cImNsci12YWxpZGF0ZS1pY29uXCJcbiAgICAgICAgICBzaGFwZT1cImV4Y2xhbWF0aW9uLWNpcmNsZVwiXG4gICAgICAgICAgc3RhdHVzPVwiZGFuZ2VyXCJcbiAgICAgICAgICBhcmlhLWhpZGRlbj1cInRydWVcIlxuICAgICAgICA+PC9jZHMtaWNvbj5cbiAgICAgICAgPGNkcy1pY29uXG4gICAgICAgICAgKm5nSWY9XCJzaG93VmFsaWRcIlxuICAgICAgICAgIGNsYXNzPVwiY2xyLXZhbGlkYXRlLWljb25cIlxuICAgICAgICAgIHNoYXBlPVwiY2hlY2stY2lyY2xlXCJcbiAgICAgICAgICBzdGF0dXM9XCJzdWNjZXNzXCJcbiAgICAgICAgICBhcmlhLWhpZGRlbj1cInRydWVcIlxuICAgICAgICA+PC9jZHMtaWNvbj5cbiAgICAgIDwvZGl2PlxuICAgICAgPG5nLWNvbnRlbnQgc2VsZWN0PVwiY2xyLWNvbnRyb2wtaGVscGVyXCIgKm5nSWY9XCJzaG93SGVscGVyXCI+PC9uZy1jb250ZW50PlxuICAgICAgPG5nLWNvbnRlbnQgc2VsZWN0PVwiY2xyLWNvbnRyb2wtZXJyb3JcIiAqbmdJZj1cInNob3dJbnZhbGlkXCI+PC9uZy1jb250ZW50PlxuICAgICAgPG5nLWNvbnRlbnQgc2VsZWN0PVwiY2xyLWNvbnRyb2wtc3VjY2Vzc1wiICpuZ0lmPVwic2hvd1ZhbGlkXCI+PC9uZy1jb250ZW50PlxuICAgIDwvZGl2PlxuICBgLFxuICBob3N0OiB7XG4gICAgJ1tjbGFzcy5jbHItZm9ybS1jb250cm9sXSc6ICd0cnVlJyxcbiAgICAnW2NsYXNzLmNsci1mb3JtLWNvbnRyb2wtZGlzYWJsZWRdJzogJ2Rpc2FibGVkJyxcbiAgICAnW2NsYXNzLmNsci1yb3ddJzogJ2FkZEdyaWQoKScsXG4gIH0sXG4gIHByb3ZpZGVyczogW0lmQ29udHJvbFN0YXRlU2VydmljZSwgTmdDb250cm9sU2VydmljZSwgQ29udHJvbElkU2VydmljZSwgQ29udHJvbENsYXNzU2VydmljZV0sXG59KVxuZXhwb3J0IGNsYXNzIENsckZpbGVJbnB1dENvbnRhaW5lciBleHRlbmRzIENsckFic3RyYWN0Q29udGFpbmVyIHtcbiAgQElucHV0KCdjbHJCdXR0b25MYWJlbCcpIGN1c3RvbUJ1dHRvbkxhYmVsOiBzdHJpbmc7XG5cbiAgcHJvdGVjdGVkIHJlYWRvbmx5IGNvbW1vblN0cmluZ3MgPSBpbmplY3QoQ2xyQ29tbW9uU3RyaW5nc1NlcnZpY2UpO1xuXG4gIEBDb250ZW50Q2hpbGQoZm9yd2FyZFJlZigoKSA9PiBDbHJGaWxlSW5wdXQpKSBwcm90ZWN0ZWQgcmVhZG9ubHkgZmlsZUlucHV0OiBDbHJGaWxlSW5wdXQ7XG5cbiAgQFZpZXdDaGlsZCgnYnJvd3NlQnV0dG9uJykgcHJpdmF0ZSBicm93c2VCdXR0b25FbGVtZW50UmVmOiBFbGVtZW50UmVmPEhUTUxCdXR0b25FbGVtZW50PjtcblxuICBwcm90ZWN0ZWQgZ2V0IGRpc2FibGVkKCkge1xuICAgIHJldHVybiB0aGlzLmZpbGVJbnB1dC5lbGVtZW50UmVmLm5hdGl2ZUVsZW1lbnQuZGlzYWJsZWQ7XG4gIH1cblxuICBwcm90ZWN0ZWQgZ2V0IGJyb3dzZUJ1dHRvbkRlc2NyaWJlZEJ5KCkge1xuICAgIHJldHVybiB0aGlzLmZpbGVJbnB1dC5lbGVtZW50UmVmLm5hdGl2ZUVsZW1lbnQuZ2V0QXR0cmlidXRlKCdhcmlhLWRlc2NyaWJlZGJ5Jyk7XG4gIH1cblxuICBwcm90ZWN0ZWQgYnJvd3NlKCkge1xuICAgIHRoaXMuZmlsZUlucHV0LmVsZW1lbnRSZWYubmF0aXZlRWxlbWVudC5jbGljaygpO1xuICB9XG5cbiAgcHJvdGVjdGVkIGNsZWFyU2VsZWN0ZWRGaWxlcygpIHtcbiAgICB0aGlzLmZpbGVJbnB1dC5lbGVtZW50UmVmLm5hdGl2ZUVsZW1lbnQudmFsdWUgPSAnJztcbiAgICB0aGlzLmZpbGVJbnB1dC5lbGVtZW50UmVmLm5hdGl2ZUVsZW1lbnQuZGlzcGF0Y2hFdmVudChuZXcgRXZlbnQoJ2NoYW5nZScsIHsgYnViYmxlczogdHJ1ZSwgY2FuY2VsYWJsZTogdHJ1ZSB9KSk7XG5cbiAgICB0aGlzLmJyb3dzZUJ1dHRvbkVsZW1lbnRSZWYubmF0aXZlRWxlbWVudC5mb2N1cygpO1xuICB9XG59XG4iXX0=
|
|
@@ -0,0 +1,72 @@
|
|
|
1
|
+
/*
|
|
2
|
+
* Copyright (c) 2016-2024 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 { Directive, Input } from '@angular/core';
|
|
8
|
+
import { NG_VALIDATORS } from '@angular/forms';
|
|
9
|
+
import * as i0 from "@angular/core";
|
|
10
|
+
export class ClrFileInputValidator {
|
|
11
|
+
constructor(elementRef) {
|
|
12
|
+
this.elementRef = elementRef;
|
|
13
|
+
}
|
|
14
|
+
validate(control) {
|
|
15
|
+
const files = control.value;
|
|
16
|
+
const fileInputElement = this.elementRef.nativeElement;
|
|
17
|
+
const errors = {};
|
|
18
|
+
// required validation (native attribute)
|
|
19
|
+
if (fileInputElement.required && files?.length === 0) {
|
|
20
|
+
errors.required = true;
|
|
21
|
+
}
|
|
22
|
+
// accept validation (native attribute)
|
|
23
|
+
if (fileInputElement.accept && files?.length > 0) {
|
|
24
|
+
const accept = fileInputElement.accept.split(',').map(type => type.trim());
|
|
25
|
+
for (let i = 0; i < files.length; i++) {
|
|
26
|
+
const file = files.item(i);
|
|
27
|
+
const [fileExtension] = file.name.match(/\..+$/);
|
|
28
|
+
if (!accept.includes(file.type) && !accept.includes(fileExtension)) {
|
|
29
|
+
errors.accept = errors.accept || [];
|
|
30
|
+
errors.accept.push({ name: file.name, accept, type: file.type, extension: fileExtension });
|
|
31
|
+
}
|
|
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) {
|
|
39
|
+
errors.minFileSize = errors.minFileSize || [];
|
|
40
|
+
errors.minFileSize.push({ name: file.name, minFileSize: this.minFileSize, actualFileSize: file.size });
|
|
41
|
+
}
|
|
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) {
|
|
49
|
+
errors.maxFileSize = errors.maxFileSize || [];
|
|
50
|
+
errors.maxFileSize.push({ name: file.name, maxFileSize: this.maxFileSize, actualFileSize: file.size });
|
|
51
|
+
}
|
|
52
|
+
}
|
|
53
|
+
}
|
|
54
|
+
return Object.keys(errors).length ? errors : null;
|
|
55
|
+
}
|
|
56
|
+
}
|
|
57
|
+
ClrFileInputValidator.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.2", ngImport: i0, type: ClrFileInputValidator, deps: [{ token: i0.ElementRef }], target: i0.ɵɵFactoryTarget.Directive });
|
|
58
|
+
ClrFileInputValidator.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "15.2.2", type: ClrFileInputValidator, selector: "input[type=\"file\"][clrFileInput]", inputs: { minFileSize: ["clrMinFileSize", "minFileSize"], maxFileSize: ["clrMaxFileSize", "maxFileSize"] }, providers: [{ provide: NG_VALIDATORS, useExisting: ClrFileInputValidator, multi: true }], ngImport: i0 });
|
|
59
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.2", ngImport: i0, type: ClrFileInputValidator, decorators: [{
|
|
60
|
+
type: Directive,
|
|
61
|
+
args: [{
|
|
62
|
+
selector: 'input[type="file"][clrFileInput]',
|
|
63
|
+
providers: [{ provide: NG_VALIDATORS, useExisting: ClrFileInputValidator, multi: true }],
|
|
64
|
+
}]
|
|
65
|
+
}], ctorParameters: function () { return [{ type: i0.ElementRef }]; }, propDecorators: { minFileSize: [{
|
|
66
|
+
type: Input,
|
|
67
|
+
args: ['clrMinFileSize']
|
|
68
|
+
}], maxFileSize: [{
|
|
69
|
+
type: Input,
|
|
70
|
+
args: ['clrMaxFileSize']
|
|
71
|
+
}] } });
|
|
72
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZmlsZS1pbnB1dC12YWxpZGF0b3IuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9hbmd1bGFyL3NyYy9mb3Jtcy9maWxlLWlucHV0L2ZpbGUtaW5wdXQtdmFsaWRhdG9yLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBOzs7OztHQUtHO0FBRUgsT0FBTyxFQUFFLFNBQVMsRUFBYyxLQUFLLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDN0QsT0FBTyxFQUFtQixhQUFhLEVBQStCLE1BQU0sZ0JBQWdCLENBQUM7O0FBTTdGLE1BQU0sT0FBTyxxQkFBcUI7SUFJaEMsWUFBNkIsVUFBd0M7UUFBeEMsZUFBVSxHQUFWLFVBQVUsQ0FBOEI7SUFBRyxDQUFDO0lBRXpFLFFBQVEsQ0FBQyxPQUFrQztRQUN6QyxNQUFNLEtBQUssR0FBRyxPQUFPLENBQUMsS0FBSyxDQUFDO1FBQzVCLE1BQU0sZ0JBQWdCLEdBQUcsSUFBSSxDQUFDLFVBQVUsQ0FBQyxhQUFhLENBQUM7UUFFdkQsTUFBTSxNQUFNLEdBQXFCLEVBQUUsQ0FBQztRQUVwQyx5Q0FBeUM7UUFDekMsSUFBSSxnQkFBZ0IsQ0FBQyxRQUFRLElBQUksS0FBSyxFQUFFLE1BQU0sS0FBSyxDQUFDLEVBQUU7WUFDcEQsTUFBTSxDQUFDLFFBQVEsR0FBRyxJQUFJLENBQUM7U0FDeEI7UUFFRCx1Q0FBdUM7UUFDdkMsSUFBSSxnQkFBZ0IsQ0FBQyxNQUFNLElBQUksS0FBSyxFQUFFLE1BQU0sR0FBRyxDQUFDLEVBQUU7WUFDaEQsTUFBTSxNQUFNLEdBQUcsZ0JBQWdCLENBQUMsTUFBTSxDQUFDLEtBQUssQ0FBQyxHQUFHLENBQUMsQ0FBQyxHQUFHLENBQUMsSUFBSSxDQUFDLEVBQUUsQ0FBQyxJQUFJLENBQUMsSUFBSSxFQUFFLENBQUMsQ0FBQztZQUUzRSxLQUFLLElBQUksQ0FBQyxHQUFHLENBQUMsRUFBRSxDQUFDLEdBQUcsS0FBSyxDQUFDLE1BQU0sRUFBRSxDQUFDLEVBQUUsRUFBRTtnQkFDckMsTUFBTSxJQUFJLEdBQUcsS0FBSyxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsQ0FBQztnQkFDM0IsTUFBTSxDQUFDLGFBQWEsQ0FBQyxHQUFHLElBQUksQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLE9BQU8sQ0FBQyxDQUFDO2dCQUVqRCxJQUFJLENBQUMsTUFBTSxDQUFDLFFBQVEsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxNQUFNLENBQUMsUUFBUSxDQUFDLGFBQWEsQ0FBQyxFQUFFO29CQUNsRSxNQUFNLENBQUMsTUFBTSxHQUFHLE1BQU0sQ0FBQyxNQUFNLElBQUksRUFBRSxDQUFDO29CQUNwQyxNQUFNLENBQUMsTUFBTSxDQUFDLElBQUksQ0FBQyxFQUFFLElBQUksRUFBRSxJQUFJLENBQUMsSUFBSSxFQUFFLE1BQU0sRUFBRSxJQUFJLEVBQUUsSUFBSSxDQUFDLElBQUksRUFBRSxTQUFTLEVBQUUsYUFBYSxFQUFFLENBQUMsQ0FBQztpQkFDNUY7YUFDRjtTQUNGO1FBRUQscUNBQXFDO1FBQ3JDLElBQUksSUFBSSxDQUFDLFdBQVcsSUFBSSxLQUFLLEVBQUUsTUFBTSxHQUFHLENBQUMsRUFBRTtZQUN6QyxLQUFLLElBQUksQ0FBQyxHQUFHLENBQUMsRUFBRSxDQUFDLEdBQUcsS0FBSyxDQUFDLE1BQU0sRUFBRSxDQUFDLEVBQUUsRUFBRTtnQkFDckMsTUFBTSxJQUFJLEdBQUcsS0FBSyxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsQ0FBQztnQkFFM0IsSUFBSSxJQUFJLENBQUMsSUFBSSxHQUFHLElBQUksQ0FBQyxXQUFXLEVBQUU7b0JBQ2hDLE1BQU0sQ0FBQyxXQUFXLEdBQUcsTUFBTSxDQUFDLFdBQVcsSUFBSSxFQUFFLENBQUM7b0JBQzlDLE1BQU0sQ0FBQyxXQUFXLENBQUMsSUFBSSxDQUFDLEVBQUUsSUFBSSxFQUFFLElBQUksQ0FBQyxJQUFJLEVBQUUsV0FBVyxFQUFFLElBQUksQ0FBQyxXQUFXLEVBQUUsY0FBYyxFQUFFLElBQUksQ0FBQyxJQUFJLEVBQUUsQ0FBQyxDQUFDO2lCQUN4RzthQUNGO1NBQ0Y7UUFFRCxxQ0FBcUM7UUFDckMsSUFBSSxJQUFJLENBQUMsV0FBVyxJQUFJLEtBQUssRUFBRSxNQUFNLEdBQUcsQ0FBQyxFQUFFO1lBQ3pDLEtBQUssSUFBSSxDQUFDLEdBQUcsQ0FBQyxFQUFFLENBQUMsR0FBRyxLQUFLLENBQUMsTUFBTSxFQUFFLENBQUMsRUFBRSxFQUFFO2dCQUNyQyxNQUFNLElBQUksR0FBRyxLQUFLLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxDQUFDO2dCQUUzQixJQUFJLElBQUksQ0FBQyxJQUFJLEdBQUcsSUFBSSxDQUFDLFdBQVcsRUFBRTtvQkFDaEMsTUFBTSxDQUFDLFdBQVcsR0FBRyxNQUFNLENBQUMsV0FBVyxJQUFJLEVBQUUsQ0FBQztvQkFDOUMsTUFBTSxDQUFDLFdBQVcsQ0FBQyxJQUFJLENBQUMsRUFBRSxJQUFJLEVBQUUsSUFBSSxDQUFDLElBQUksRUFBRSxXQUFXLEVBQUUsSUFBSSxDQUFDLFdBQVcsRUFBRSxjQUFjLEVBQUUsSUFBSSxDQUFDLElBQUksRUFBRSxDQUFDLENBQUM7aUJBQ3hHO2FBQ0Y7U0FDRjtRQUVELE9BQU8sTUFBTSxDQUFDLElBQUksQ0FBQyxNQUFNLENBQUMsQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDO0lBQ3BELENBQUM7O2tIQXpEVSxxQkFBcUI7c0dBQXJCLHFCQUFxQix5S0FGckIsQ0FBQyxFQUFFLE9BQU8sRUFBRSxhQUFhLEVBQUUsV0FBVyxFQUFFLHFCQUFxQixFQUFFLEtBQUssRUFBRSxJQUFJLEVBQUUsQ0FBQzsyRkFFN0UscUJBQXFCO2tCQUpqQyxTQUFTO21CQUFDO29CQUNULFFBQVEsRUFBRSxrQ0FBa0M7b0JBQzVDLFNBQVMsRUFBRSxDQUFDLEVBQUUsT0FBTyxFQUFFLGFBQWEsRUFBRSxXQUFXLHVCQUF1QixFQUFFLEtBQUssRUFBRSxJQUFJLEVBQUUsQ0FBQztpQkFDekY7aUdBRTBCLFdBQVc7c0JBQW5DLEtBQUs7dUJBQUMsZ0JBQWdCO2dCQUNFLFdBQVc7c0JBQW5DLEtBQUs7dUJBQUMsZ0JBQWdCIiwic291cmNlc0NvbnRlbnQiOlsiLypcbiAqIENvcHlyaWdodCAoYykgMjAxNi0yMDI0IEJyb2FkY29tLiBBbGwgUmlnaHRzIFJlc2VydmVkLlxuICogVGhlIHRlcm0gXCJCcm9hZGNvbVwiIHJlZmVycyB0byBCcm9hZGNvbSBJbmMuIGFuZC9vciBpdHMgc3Vic2lkaWFyaWVzLlxuICogVGhpcyBzb2Z0d2FyZSBpcyByZWxlYXNlZCB1bmRlciBNSVQgbGljZW5zZS5cbiAqIFRoZSBmdWxsIGxpY2Vuc2UgaW5mb3JtYXRpb24gY2FuIGJlIGZvdW5kIGluIExJQ0VOU0UgaW4gdGhlIHJvb3QgZGlyZWN0b3J5IG9mIHRoaXMgcHJvamVjdC5cbiAqL1xuXG5pbXBvcnQgeyBEaXJlY3RpdmUsIEVsZW1lbnRSZWYsIElucHV0IH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBBYnN0cmFjdENvbnRyb2wsIE5HX1ZBTElEQVRPUlMsIFZhbGlkYXRpb25FcnJvcnMsIFZhbGlkYXRvciB9IGZyb20gJ0Bhbmd1bGFyL2Zvcm1zJztcblxuQERpcmVjdGl2ZSh7XG4gIHNlbGVjdG9yOiAnaW5wdXRbdHlwZT1cImZpbGVcIl1bY2xyRmlsZUlucHV0XScsXG4gIHByb3ZpZGVyczogW3sgcHJvdmlkZTogTkdfVkFMSURBVE9SUywgdXNlRXhpc3Rpbmc6IENsckZpbGVJbnB1dFZhbGlkYXRvciwgbXVsdGk6IHRydWUgfV0sXG59KVxuZXhwb3J0IGNsYXNzIENsckZpbGVJbnB1dFZhbGlkYXRvciBpbXBsZW1lbnRzIFZhbGlkYXRvciB7XG4gIEBJbnB1dCgnY2xyTWluRmlsZVNpemUnKSBtaW5GaWxlU2l6ZTogbnVtYmVyO1xuICBASW5wdXQoJ2Nsck1heEZpbGVTaXplJykgbWF4RmlsZVNpemU6IG51bWJlcjtcblxuICBjb25zdHJ1Y3Rvcihwcml2YXRlIHJlYWRvbmx5IGVsZW1lbnRSZWY6IEVsZW1lbnRSZWY8SFRNTElucHV0RWxlbWVudD4pIHt9XG5cbiAgdmFsaWRhdGUoY29udHJvbDogQWJzdHJhY3RDb250cm9sPEZpbGVMaXN0Pik6IFZhbGlkYXRpb25FcnJvcnMge1xuICAgIGNvbnN0IGZpbGVzID0gY29udHJvbC52YWx1ZTtcbiAgICBjb25zdCBmaWxlSW5wdXRFbGVtZW50ID0gdGhpcy5lbGVtZW50UmVmLm5hdGl2ZUVsZW1lbnQ7XG5cbiAgICBjb25zdCBlcnJvcnM6IFZhbGlkYXRpb25FcnJvcnMgPSB7fTtcblxuICAgIC8vIHJlcXVpcmVkIHZhbGlkYXRpb24gKG5hdGl2ZSBhdHRyaWJ1dGUpXG4gICAgaWYgKGZpbGVJbnB1dEVsZW1lbnQucmVxdWlyZWQgJiYgZmlsZXM/Lmxlbmd0aCA9PT0gMCkge1xuICAgICAgZXJyb3JzLnJlcXVpcmVkID0gdHJ1ZTtcbiAgICB9XG5cbiAgICAvLyBhY2NlcHQgdmFsaWRhdGlvbiAobmF0aXZlIGF0dHJpYnV0ZSlcbiAgICBpZiAoZmlsZUlucHV0RWxlbWVudC5hY2NlcHQgJiYgZmlsZXM/Lmxlbmd0aCA+IDApIHtcbiAgICAgIGNvbnN0IGFjY2VwdCA9IGZpbGVJbnB1dEVsZW1lbnQuYWNjZXB0LnNwbGl0KCcsJykubWFwKHR5cGUgPT4gdHlwZS50cmltKCkpO1xuXG4gICAgICBmb3IgKGxldCBpID0gMDsgaSA8IGZpbGVzLmxlbmd0aDsgaSsrKSB7XG4gICAgICAgIGNvbnN0IGZpbGUgPSBmaWxlcy5pdGVtKGkpO1xuICAgICAgICBjb25zdCBbZmlsZUV4dGVuc2lvbl0gPSBmaWxlLm5hbWUubWF0Y2goL1xcLi4rJC8pO1xuXG4gICAgICAgIGlmICghYWNjZXB0LmluY2x1ZGVzKGZpbGUudHlwZSkgJiYgIWFjY2VwdC5pbmNsdWRlcyhmaWxlRXh0ZW5zaW9uKSkge1xuICAgICAgICAgIGVycm9ycy5hY2NlcHQgPSBlcnJvcnMuYWNjZXB0IHx8IFtdO1xuICAgICAgICAgIGVycm9ycy5hY2NlcHQucHVzaCh7IG5hbWU6IGZpbGUubmFtZSwgYWNjZXB0LCB0eXBlOiBmaWxlLnR5cGUsIGV4dGVuc2lvbjogZmlsZUV4dGVuc2lvbiB9KTtcbiAgICAgICAgfVxuICAgICAgfVxuICAgIH1cblxuICAgIC8vIG1pbiBmaWxlIHZhbGlkYXRpb24gKGN1c3RvbSBpbnB1dClcbiAgICBpZiAodGhpcy5taW5GaWxlU2l6ZSAmJiBmaWxlcz8ubGVuZ3RoID4gMCkge1xuICAgICAgZm9yIChsZXQgaSA9IDA7IGkgPCBmaWxlcy5sZW5ndGg7IGkrKykge1xuICAgICAgICBjb25zdCBmaWxlID0gZmlsZXMuaXRlbShpKTtcblxuICAgICAgICBpZiAoZmlsZS5zaXplIDwgdGhpcy5taW5GaWxlU2l6ZSkge1xuICAgICAgICAgIGVycm9ycy5taW5GaWxlU2l6ZSA9IGVycm9ycy5taW5GaWxlU2l6ZSB8fCBbXTtcbiAgICAgICAgICBlcnJvcnMubWluRmlsZVNpemUucHVzaCh7IG5hbWU6IGZpbGUubmFtZSwgbWluRmlsZVNpemU6IHRoaXMubWluRmlsZVNpemUsIGFjdHVhbEZpbGVTaXplOiBmaWxlLnNpemUgfSk7XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9XG5cbiAgICAvLyBtYXggZmlsZSB2YWxpZGF0aW9uIChjdXN0b20gaW5wdXQpXG4gICAgaWYgKHRoaXMubWF4RmlsZVNpemUgJiYgZmlsZXM/Lmxlbmd0aCA+IDApIHtcbiAgICAgIGZvciAobGV0IGkgPSAwOyBpIDwgZmlsZXMubGVuZ3RoOyBpKyspIHtcbiAgICAgICAgY29uc3QgZmlsZSA9IGZpbGVzLml0ZW0oaSk7XG5cbiAgICAgICAgaWYgKGZpbGUuc2l6ZSA+IHRoaXMubWF4RmlsZVNpemUpIHtcbiAgICAgICAgICBlcnJvcnMubWF4RmlsZVNpemUgPSBlcnJvcnMubWF4RmlsZVNpemUgfHwgW107XG4gICAgICAgICAgZXJyb3JzLm1heEZpbGVTaXplLnB1c2goeyBuYW1lOiBmaWxlLm5hbWUsIG1heEZpbGVTaXplOiB0aGlzLm1heEZpbGVTaXplLCBhY3R1YWxGaWxlU2l6ZTogZmlsZS5zaXplIH0pO1xuICAgICAgICB9XG4gICAgICB9XG4gICAgfVxuXG4gICAgcmV0dXJuIE9iamVjdC5rZXlzKGVycm9ycykubGVuZ3RoID8gZXJyb3JzIDogbnVsbDtcbiAgfVxufVxuIl19
|
|
@@ -0,0 +1,53 @@
|
|
|
1
|
+
/*
|
|
2
|
+
* Copyright (c) 2016-2024 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 { Directive, HostListener } from '@angular/core';
|
|
8
|
+
import { NG_VALUE_ACCESSOR } from '@angular/forms';
|
|
9
|
+
import { clearFiles, selectFiles } from './file-input.helpers';
|
|
10
|
+
import * as i0 from "@angular/core";
|
|
11
|
+
export class ClrFileInputValueAccessor {
|
|
12
|
+
constructor(elementRef) {
|
|
13
|
+
this.elementRef = elementRef;
|
|
14
|
+
// eslint-disable-next-line @typescript-eslint/no-empty-function
|
|
15
|
+
this.onChange = (_value) => { };
|
|
16
|
+
// eslint-disable-next-line @typescript-eslint/no-empty-function
|
|
17
|
+
this.onTouched = () => { };
|
|
18
|
+
}
|
|
19
|
+
writeValue(value) {
|
|
20
|
+
if (value !== undefined && value !== null && !(value instanceof FileList)) {
|
|
21
|
+
throw new Error('The value of a file input control must be a FileList.');
|
|
22
|
+
}
|
|
23
|
+
if (value) {
|
|
24
|
+
selectFiles(this.elementRef.nativeElement, value);
|
|
25
|
+
}
|
|
26
|
+
else if (this.elementRef.nativeElement.files.length) {
|
|
27
|
+
clearFiles(this.elementRef.nativeElement);
|
|
28
|
+
}
|
|
29
|
+
}
|
|
30
|
+
registerOnChange(fn) {
|
|
31
|
+
this.onChange = fn;
|
|
32
|
+
}
|
|
33
|
+
registerOnTouched(fn) {
|
|
34
|
+
this.onTouched = fn;
|
|
35
|
+
}
|
|
36
|
+
handleChange() {
|
|
37
|
+
this.onTouched();
|
|
38
|
+
this.onChange(this.elementRef.nativeElement.files);
|
|
39
|
+
}
|
|
40
|
+
}
|
|
41
|
+
ClrFileInputValueAccessor.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.2", ngImport: i0, type: ClrFileInputValueAccessor, deps: [{ token: i0.ElementRef }], target: i0.ɵɵFactoryTarget.Directive });
|
|
42
|
+
ClrFileInputValueAccessor.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "15.2.2", type: ClrFileInputValueAccessor, selector: "input[type=\"file\"][clrFileInput]", host: { listeners: { "change": "handleChange()" } }, providers: [{ provide: NG_VALUE_ACCESSOR, useExisting: ClrFileInputValueAccessor, multi: true }], ngImport: i0 });
|
|
43
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.2", ngImport: i0, type: ClrFileInputValueAccessor, decorators: [{
|
|
44
|
+
type: Directive,
|
|
45
|
+
args: [{
|
|
46
|
+
selector: 'input[type="file"][clrFileInput]',
|
|
47
|
+
providers: [{ provide: NG_VALUE_ACCESSOR, useExisting: ClrFileInputValueAccessor, multi: true }],
|
|
48
|
+
}]
|
|
49
|
+
}], ctorParameters: function () { return [{ type: i0.ElementRef }]; }, propDecorators: { handleChange: [{
|
|
50
|
+
type: HostListener,
|
|
51
|
+
args: ['change']
|
|
52
|
+
}] } });
|
|
53
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZmlsZS1pbnB1dC12YWx1ZS1hY2Nlc3Nvci5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2FuZ3VsYXIvc3JjL2Zvcm1zL2ZpbGUtaW5wdXQvZmlsZS1pbnB1dC12YWx1ZS1hY2Nlc3Nvci50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQTs7Ozs7R0FLRztBQUVILE9BQU8sRUFBRSxTQUFTLEVBQWMsWUFBWSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQ3BFLE9BQU8sRUFBd0IsaUJBQWlCLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUV6RSxPQUFPLEVBQUUsVUFBVSxFQUFFLFdBQVcsRUFBRSxNQUFNLHNCQUFzQixDQUFDOztBQU0vRCxNQUFNLE9BQU8seUJBQXlCO0lBQ3BDLFlBQTZCLFVBQXdDO1FBQXhDLGVBQVUsR0FBVixVQUFVLENBQThCO1FBNEJyRSxpRUFBaUU7UUFDekQsYUFBUSxHQUFHLENBQUMsTUFBZ0IsRUFBRSxFQUFFLEdBQUUsQ0FBQyxDQUFDO1FBRTVDLGlFQUFpRTtRQUN6RCxjQUFTLEdBQUcsR0FBRyxFQUFFLEdBQUUsQ0FBQyxDQUFDO0lBaEMyQyxDQUFDO0lBRXpFLFVBQVUsQ0FBQyxLQUFlO1FBQ3hCLElBQUksS0FBSyxLQUFLLFNBQVMsSUFBSSxLQUFLLEtBQUssSUFBSSxJQUFJLENBQUMsQ0FBQyxLQUFLLFlBQVksUUFBUSxDQUFDLEVBQUU7WUFDekUsTUFBTSxJQUFJLEtBQUssQ0FBQyx1REFBdUQsQ0FBQyxDQUFDO1NBQzFFO1FBRUQsSUFBSSxLQUFLLEVBQUU7WUFDVCxXQUFXLENBQUMsSUFBSSxDQUFDLFVBQVUsQ0FBQyxhQUFhLEVBQUUsS0FBSyxDQUFDLENBQUM7U0FDbkQ7YUFBTSxJQUFJLElBQUksQ0FBQyxVQUFVLENBQUMsYUFBYSxDQUFDLEtBQUssQ0FBQyxNQUFNLEVBQUU7WUFDckQsVUFBVSxDQUFDLElBQUksQ0FBQyxVQUFVLENBQUMsYUFBYSxDQUFDLENBQUM7U0FDM0M7SUFDSCxDQUFDO0lBRUQsZ0JBQWdCLENBQUMsRUFBNkI7UUFDNUMsSUFBSSxDQUFDLFFBQVEsR0FBRyxFQUFFLENBQUM7SUFDckIsQ0FBQztJQUVELGlCQUFpQixDQUFDLEVBQWM7UUFDOUIsSUFBSSxDQUFDLFNBQVMsR0FBRyxFQUFFLENBQUM7SUFDdEIsQ0FBQztJQUdPLFlBQVk7UUFDbEIsSUFBSSxDQUFDLFNBQVMsRUFBRSxDQUFDO1FBQ2pCLElBQUksQ0FBQyxRQUFRLENBQUMsSUFBSSxDQUFDLFVBQVUsQ0FBQyxhQUFhLENBQUMsS0FBSyxDQUFDLENBQUM7SUFDckQsQ0FBQzs7c0hBM0JVLHlCQUF5QjswR0FBekIseUJBQXlCLGtIQUZ6QixDQUFDLEVBQUUsT0FBTyxFQUFFLGlCQUFpQixFQUFFLFdBQVcsRUFBRSx5QkFBeUIsRUFBRSxLQUFLLEVBQUUsSUFBSSxFQUFFLENBQUM7MkZBRXJGLHlCQUF5QjtrQkFKckMsU0FBUzttQkFBQztvQkFDVCxRQUFRLEVBQUUsa0NBQWtDO29CQUM1QyxTQUFTLEVBQUUsQ0FBQyxFQUFFLE9BQU8sRUFBRSxpQkFBaUIsRUFBRSxXQUFXLDJCQUEyQixFQUFFLEtBQUssRUFBRSxJQUFJLEVBQUUsQ0FBQztpQkFDakc7aUdBeUJTLFlBQVk7c0JBRG5CLFlBQVk7dUJBQUMsUUFBUSIsInNvdXJjZXNDb250ZW50IjpbIi8qXG4gKiBDb3B5cmlnaHQgKGMpIDIwMTYtMjAyNCBCcm9hZGNvbS4gQWxsIFJpZ2h0cyBSZXNlcnZlZC5cbiAqIFRoZSB0ZXJtIFwiQnJvYWRjb21cIiByZWZlcnMgdG8gQnJvYWRjb20gSW5jLiBhbmQvb3IgaXRzIHN1YnNpZGlhcmllcy5cbiAqIFRoaXMgc29mdHdhcmUgaXMgcmVsZWFzZWQgdW5kZXIgTUlUIGxpY2Vuc2UuXG4gKiBUaGUgZnVsbCBsaWNlbnNlIGluZm9ybWF0aW9uIGNhbiBiZSBmb3VuZCBpbiBMSUNFTlNFIGluIHRoZSByb290IGRpcmVjdG9yeSBvZiB0aGlzIHByb2plY3QuXG4gKi9cblxuaW1wb3J0IHsgRGlyZWN0aXZlLCBFbGVtZW50UmVmLCBIb3N0TGlzdGVuZXIgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IENvbnRyb2xWYWx1ZUFjY2Vzc29yLCBOR19WQUxVRV9BQ0NFU1NPUiB9IGZyb20gJ0Bhbmd1bGFyL2Zvcm1zJztcblxuaW1wb3J0IHsgY2xlYXJGaWxlcywgc2VsZWN0RmlsZXMgfSBmcm9tICcuL2ZpbGUtaW5wdXQuaGVscGVycyc7XG5cbkBEaXJlY3RpdmUoe1xuICBzZWxlY3RvcjogJ2lucHV0W3R5cGU9XCJmaWxlXCJdW2NsckZpbGVJbnB1dF0nLFxuICBwcm92aWRlcnM6IFt7IHByb3ZpZGU6IE5HX1ZBTFVFX0FDQ0VTU09SLCB1c2VFeGlzdGluZzogQ2xyRmlsZUlucHV0VmFsdWVBY2Nlc3NvciwgbXVsdGk6IHRydWUgfV0sXG59KVxuZXhwb3J0IGNsYXNzIENsckZpbGVJbnB1dFZhbHVlQWNjZXNzb3IgaW1wbGVtZW50cyBDb250cm9sVmFsdWVBY2Nlc3NvciB7XG4gIGNvbnN0cnVjdG9yKHByaXZhdGUgcmVhZG9ubHkgZWxlbWVudFJlZjogRWxlbWVudFJlZjxIVE1MSW5wdXRFbGVtZW50Pikge31cblxuICB3cml0ZVZhbHVlKHZhbHVlOiBGaWxlTGlzdCkge1xuICAgIGlmICh2YWx1ZSAhPT0gdW5kZWZpbmVkICYmIHZhbHVlICE9PSBudWxsICYmICEodmFsdWUgaW5zdGFuY2VvZiBGaWxlTGlzdCkpIHtcbiAgICAgIHRocm93IG5ldyBFcnJvcignVGhlIHZhbHVlIG9mIGEgZmlsZSBpbnB1dCBjb250cm9sIG11c3QgYmUgYSBGaWxlTGlzdC4nKTtcbiAgICB9XG5cbiAgICBpZiAodmFsdWUpIHtcbiAgICAgIHNlbGVjdEZpbGVzKHRoaXMuZWxlbWVudFJlZi5uYXRpdmVFbGVtZW50LCB2YWx1ZSk7XG4gICAgfSBlbHNlIGlmICh0aGlzLmVsZW1lbnRSZWYubmF0aXZlRWxlbWVudC5maWxlcy5sZW5ndGgpIHtcbiAgICAgIGNsZWFyRmlsZXModGhpcy5lbGVtZW50UmVmLm5hdGl2ZUVsZW1lbnQpO1xuICAgIH1cbiAgfVxuXG4gIHJlZ2lzdGVyT25DaGFuZ2UoZm46ICh2YWx1ZTogRmlsZUxpc3QpID0+IHZvaWQpIHtcbiAgICB0aGlzLm9uQ2hhbmdlID0gZm47XG4gIH1cblxuICByZWdpc3Rlck9uVG91Y2hlZChmbjogKCkgPT4gdm9pZCkge1xuICAgIHRoaXMub25Ub3VjaGVkID0gZm47XG4gIH1cblxuICBASG9zdExpc3RlbmVyKCdjaGFuZ2UnKVxuICBwcml2YXRlIGhhbmRsZUNoYW5nZSgpIHtcbiAgICB0aGlzLm9uVG91Y2hlZCgpO1xuICAgIHRoaXMub25DaGFuZ2UodGhpcy5lbGVtZW50UmVmLm5hdGl2ZUVsZW1lbnQuZmlsZXMpO1xuICB9XG5cbiAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lICBAdHlwZXNjcmlwdC1lc2xpbnQvbm8tZW1wdHktZnVuY3Rpb25cbiAgcHJpdmF0ZSBvbkNoYW5nZSA9IChfdmFsdWU6IEZpbGVMaXN0KSA9PiB7fTtcblxuICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgIEB0eXBlc2NyaXB0LWVzbGludC9uby1lbXB0eS1mdW5jdGlvblxuICBwcml2YXRlIG9uVG91Y2hlZCA9ICgpID0+IHt9O1xufVxuIl19
|
|
@@ -0,0 +1,22 @@
|
|
|
1
|
+
/*
|
|
2
|
+
* Copyright (c) 2016-2024 Broadcom. All Rights Reserved.
|
|
3
|
+
* The term "Broadcom" refers to Broadcom Inc. and/or its subsidiaries.
|
|
4
|
+
* This software is released under MIT license.
|
|
5
|
+
* The full license information can be found in LICENSE in the root directory of this project.
|
|
6
|
+
*/
|
|
7
|
+
export function buildFileList(files) {
|
|
8
|
+
const dataTransfer = new DataTransfer();
|
|
9
|
+
for (const file of files) {
|
|
10
|
+
dataTransfer.items.add(file);
|
|
11
|
+
}
|
|
12
|
+
return dataTransfer.files;
|
|
13
|
+
}
|
|
14
|
+
export function selectFiles(fileInputElement, files) {
|
|
15
|
+
fileInputElement.files = files instanceof FileList ? files : buildFileList(files);
|
|
16
|
+
fileInputElement.dispatchEvent(new Event('change', { bubbles: true, cancelable: true }));
|
|
17
|
+
}
|
|
18
|
+
export function clearFiles(fileInputElement) {
|
|
19
|
+
fileInputElement.value = '';
|
|
20
|
+
fileInputElement.dispatchEvent(new Event('change', { bubbles: true, cancelable: true }));
|
|
21
|
+
}
|
|
22
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZmlsZS1pbnB1dC5oZWxwZXJzLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvYW5ndWxhci9zcmMvZm9ybXMvZmlsZS1pbnB1dC9maWxlLWlucHV0LmhlbHBlcnMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUE7Ozs7O0dBS0c7QUFFSCxNQUFNLFVBQVUsYUFBYSxDQUFDLEtBQWE7SUFDekMsTUFBTSxZQUFZLEdBQUcsSUFBSSxZQUFZLEVBQUUsQ0FBQztJQUV4QyxLQUFLLE1BQU0sSUFBSSxJQUFJLEtBQUssRUFBRTtRQUN4QixZQUFZLENBQUMsS0FBSyxDQUFDLEdBQUcsQ0FBQyxJQUFJLENBQUMsQ0FBQztLQUM5QjtJQUVELE9BQU8sWUFBWSxDQUFDLEtBQUssQ0FBQztBQUM1QixDQUFDO0FBRUQsTUFBTSxVQUFVLFdBQVcsQ0FBQyxnQkFBa0MsRUFBRSxLQUF3QjtJQUN0RixnQkFBZ0IsQ0FBQyxLQUFLLEdBQUcsS0FBSyxZQUFZLFFBQVEsQ0FBQyxDQUFDLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQyxhQUFhLENBQUMsS0FBSyxDQUFDLENBQUM7SUFDbEYsZ0JBQWdCLENBQUMsYUFBYSxDQUFDLElBQUksS0FBSyxDQUFDLFFBQVEsRUFBRSxFQUFFLE9BQU8sRUFBRSxJQUFJLEVBQUUsVUFBVSxFQUFFLElBQUksRUFBRSxDQUFDLENBQUMsQ0FBQztBQUMzRixDQUFDO0FBRUQsTUFBTSxVQUFVLFVBQVUsQ0FBQyxnQkFBa0M7SUFDM0QsZ0JBQWdCLENBQUMsS0FBSyxHQUFHLEVBQUUsQ0FBQztJQUM1QixnQkFBZ0IsQ0FBQyxhQUFhLENBQUMsSUFBSSxLQUFLLENBQUMsUUFBUSxFQUFFLEVBQUUsT0FBTyxFQUFFLElBQUksRUFBRSxVQUFVLEVBQUUsSUFBSSxFQUFFLENBQUMsQ0FBQyxDQUFDO0FBQzNGLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyIvKlxuICogQ29weXJpZ2h0IChjKSAyMDE2LTIwMjQgQnJvYWRjb20uIEFsbCBSaWdodHMgUmVzZXJ2ZWQuXG4gKiBUaGUgdGVybSBcIkJyb2FkY29tXCIgcmVmZXJzIHRvIEJyb2FkY29tIEluYy4gYW5kL29yIGl0cyBzdWJzaWRpYXJpZXMuXG4gKiBUaGlzIHNvZnR3YXJlIGlzIHJlbGVhc2VkIHVuZGVyIE1JVCBsaWNlbnNlLlxuICogVGhlIGZ1bGwgbGljZW5zZSBpbmZvcm1hdGlvbiBjYW4gYmUgZm91bmQgaW4gTElDRU5TRSBpbiB0aGUgcm9vdCBkaXJlY3Rvcnkgb2YgdGhpcyBwcm9qZWN0LlxuICovXG5cbmV4cG9ydCBmdW5jdGlvbiBidWlsZEZpbGVMaXN0KGZpbGVzOiBGaWxlW10pIHtcbiAgY29uc3QgZGF0YVRyYW5zZmVyID0gbmV3IERhdGFUcmFuc2ZlcigpO1xuXG4gIGZvciAoY29uc3QgZmlsZSBvZiBmaWxlcykge1xuICAgIGRhdGFUcmFuc2Zlci5pdGVtcy5hZGQoZmlsZSk7XG4gIH1cblxuICByZXR1cm4gZGF0YVRyYW5zZmVyLmZpbGVzO1xufVxuXG5leHBvcnQgZnVuY3Rpb24gc2VsZWN0RmlsZXMoZmlsZUlucHV0RWxlbWVudDogSFRNTElucHV0RWxlbWVudCwgZmlsZXM6IEZpbGVbXSB8IEZpbGVMaXN0KSB7XG4gIGZpbGVJbnB1dEVsZW1lbnQuZmlsZXMgPSBmaWxlcyBpbnN0YW5jZW9mIEZpbGVMaXN0ID8gZmlsZXMgOiBidWlsZEZpbGVMaXN0KGZpbGVzKTtcbiAgZmlsZUlucHV0RWxlbWVudC5kaXNwYXRjaEV2ZW50KG5ldyBFdmVudCgnY2hhbmdlJywgeyBidWJibGVzOiB0cnVlLCBjYW5jZWxhYmxlOiB0cnVlIH0pKTtcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIGNsZWFyRmlsZXMoZmlsZUlucHV0RWxlbWVudDogSFRNTElucHV0RWxlbWVudCkge1xuICBmaWxlSW5wdXRFbGVtZW50LnZhbHVlID0gJyc7XG4gIGZpbGVJbnB1dEVsZW1lbnQuZGlzcGF0Y2hFdmVudChuZXcgRXZlbnQoJ2NoYW5nZScsIHsgYnViYmxlczogdHJ1ZSwgY2FuY2VsYWJsZTogdHJ1ZSB9KSk7XG59XG4iXX0=
|
|
@@ -0,0 +1,68 @@
|
|
|
1
|
+
/*
|
|
2
|
+
* Copyright (c) 2016-2024 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 { Directive, HostListener, Optional, Self, } from '@angular/core';
|
|
8
|
+
import { WrappedFormControl } from '../common/wrapped-control';
|
|
9
|
+
import { ClrFileInputContainer } from './file-input-container';
|
|
10
|
+
import * as i0 from "@angular/core";
|
|
11
|
+
import * as i1 from "@angular/forms";
|
|
12
|
+
import * as i2 from "../../utils";
|
|
13
|
+
export class ClrFileInput extends WrappedFormControl {
|
|
14
|
+
constructor(injector, renderer, viewContainerRef, elementRef, control, commonStrings) {
|
|
15
|
+
super(viewContainerRef, ClrFileInputContainer, injector, control, renderer, elementRef);
|
|
16
|
+
this.elementRef = elementRef;
|
|
17
|
+
this.commonStrings = commonStrings;
|
|
18
|
+
this.selection = undefined;
|
|
19
|
+
}
|
|
20
|
+
handleChange() {
|
|
21
|
+
this.updateSelection();
|
|
22
|
+
}
|
|
23
|
+
updateSelection() {
|
|
24
|
+
const files = this.elementRef.nativeElement.files;
|
|
25
|
+
let selectionButtonLabel;
|
|
26
|
+
let clearFilesButtonLabel;
|
|
27
|
+
if (files?.length === 1) {
|
|
28
|
+
const filename = files[0].name;
|
|
29
|
+
selectionButtonLabel = filename;
|
|
30
|
+
clearFilesButtonLabel = this.commonStrings.parse(this.commonStrings.keys.clearFile, {
|
|
31
|
+
FILE: filename,
|
|
32
|
+
});
|
|
33
|
+
}
|
|
34
|
+
else if (files?.length > 1) {
|
|
35
|
+
const fileCount = files.length.toString();
|
|
36
|
+
selectionButtonLabel = this.commonStrings.parse(this.commonStrings.keys.fileCount, {
|
|
37
|
+
COUNT: fileCount,
|
|
38
|
+
});
|
|
39
|
+
clearFilesButtonLabel = this.commonStrings.parse(this.commonStrings.keys.clearFiles, {
|
|
40
|
+
COUNT: fileCount,
|
|
41
|
+
});
|
|
42
|
+
}
|
|
43
|
+
this.selection = {
|
|
44
|
+
fileCount: files.length,
|
|
45
|
+
buttonLabel: selectionButtonLabel,
|
|
46
|
+
clearFilesButtonLabel,
|
|
47
|
+
};
|
|
48
|
+
}
|
|
49
|
+
}
|
|
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: { listeners: { "change": "handleChange()" }, properties: { "class.clr-file-input": "true" } }, usesInheritance: true, ngImport: i0 });
|
|
52
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.2", ngImport: i0, type: ClrFileInput, decorators: [{
|
|
53
|
+
type: Directive,
|
|
54
|
+
args: [{
|
|
55
|
+
selector: 'input[type="file"][clrFileInput]',
|
|
56
|
+
host: {
|
|
57
|
+
'[class.clr-file-input]': 'true',
|
|
58
|
+
},
|
|
59
|
+
}]
|
|
60
|
+
}], ctorParameters: function () { return [{ type: i0.Injector }, { type: i0.Renderer2 }, { type: i0.ViewContainerRef }, { type: i0.ElementRef }, { type: i1.NgControl, decorators: [{
|
|
61
|
+
type: Self
|
|
62
|
+
}, {
|
|
63
|
+
type: Optional
|
|
64
|
+
}] }, { type: i2.ClrCommonStringsService }]; }, propDecorators: { handleChange: [{
|
|
65
|
+
type: HostListener,
|
|
66
|
+
args: ['change']
|
|
67
|
+
}] } });
|
|
68
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZmlsZS1pbnB1dC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2FuZ3VsYXIvc3JjL2Zvcm1zL2ZpbGUtaW5wdXQvZmlsZS1pbnB1dC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQTs7Ozs7R0FLRztBQUVILE9BQU8sRUFDTCxTQUFTLEVBRVQsWUFBWSxFQUVaLFFBQVEsRUFFUixJQUFJLEdBRUwsTUFBTSxlQUFlLENBQUM7QUFJdkIsT0FBTyxFQUFFLGtCQUFrQixFQUFFLE1BQU0sMkJBQTJCLENBQUM7QUFDL0QsT0FBTyxFQUFFLHFCQUFxQixFQUFFLE1BQU0sd0JBQXdCLENBQUM7Ozs7QUFjL0QsTUFBTSxPQUFPLFlBQWEsU0FBUSxrQkFBeUM7SUFHekUsWUFDRSxRQUFrQixFQUNsQixRQUFtQixFQUNuQixnQkFBa0MsRUFDekIsVUFBd0MsRUFDN0IsT0FBa0IsRUFDckIsYUFBc0M7UUFFdkQsS0FBSyxDQUFDLGdCQUFnQixFQUFFLHFCQUFxQixFQUFFLFFBQVEsRUFBRSxPQUFPLEVBQUUsUUFBUSxFQUFFLFVBQVUsQ0FBQyxDQUFDO1FBSi9FLGVBQVUsR0FBVixVQUFVLENBQThCO1FBRWhDLGtCQUFhLEdBQWIsYUFBYSxDQUF5QjtRQVJ6RCxjQUFTLEdBQTBCLFNBQVMsQ0FBQztJQVc3QyxDQUFDO0lBR08sWUFBWTtRQUNsQixJQUFJLENBQUMsZUFBZSxFQUFFLENBQUM7SUFDekIsQ0FBQztJQUVPLGVBQWU7UUFDckIsTUFBTSxLQUFLLEdBQUcsSUFBSSxDQUFDLFVBQVUsQ0FBQyxhQUFhLENBQUMsS0FBSyxDQUFDO1FBQ2xELElBQUksb0JBQTRCLENBQUM7UUFDakMsSUFBSSxxQkFBNkIsQ0FBQztRQUVsQyxJQUFJLEtBQUssRUFBRSxNQUFNLEtBQUssQ0FBQyxFQUFFO1lBQ3ZCLE1BQU0sUUFBUSxHQUFHLEtBQUssQ0FBQyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUM7WUFFL0Isb0JBQW9CLEdBQUcsUUFBUSxDQUFDO1lBRWhDLHFCQUFxQixHQUFHLElBQUksQ0FBQyxhQUFhLENBQUMsS0FBSyxDQUFDLElBQUksQ0FBQyxhQUFhLENBQUMsSUFBSSxDQUFDLFNBQVMsRUFBRTtnQkFDbEYsSUFBSSxFQUFFLFFBQVE7YUFDZixDQUFDLENBQUM7U0FDSjthQUFNLElBQUksS0FBSyxFQUFFLE1BQU0sR0FBRyxDQUFDLEVBQUU7WUFDNUIsTUFBTSxTQUFTLEdBQUcsS0FBSyxDQUFDLE1BQU0sQ0FBQyxRQUFRLEVBQUUsQ0FBQztZQUUxQyxvQkFBb0IsR0FBRyxJQUFJLENBQUMsYUFBYSxDQUFDLEtBQUssQ0FBQyxJQUFJLENBQUMsYUFBYSxDQUFDLElBQUksQ0FBQyxTQUFTLEVBQUU7Z0JBQ2pGLEtBQUssRUFBRSxTQUFTO2FBQ2pCLENBQUMsQ0FBQztZQUVILHFCQUFxQixHQUFHLElBQUksQ0FBQyxhQUFhLENBQUMsS0FBSyxDQUFDLElBQUksQ0FBQyxhQUFhLENBQUMsSUFBSSxDQUFDLFVBQVUsRUFBRTtnQkFDbkYsS0FBSyxFQUFFLFNBQVM7YUFDakIsQ0FBQyxDQUFDO1NBQ0o7UUFFRCxJQUFJLENBQUMsU0FBUyxHQUFHO1lBQ2YsU0FBUyxFQUFFLEtBQUssQ0FBQyxNQUFNO1lBQ3ZCLFdBQVcsRUFBRSxvQkFBb0I7WUFDakMscUJBQXFCO1NBQ3RCLENBQUM7SUFDSixDQUFDOzt5R0FqRFUsWUFBWTs2RkFBWixZQUFZOzJGQUFaLFlBQVk7a0JBTnhCLFNBQVM7bUJBQUM7b0JBQ1QsUUFBUSxFQUFFLGtDQUFrQztvQkFDNUMsSUFBSSxFQUFFO3dCQUNKLHdCQUF3QixFQUFFLE1BQU07cUJBQ2pDO2lCQUNGOzswQkFTSSxJQUFJOzswQkFBSSxRQUFRO2tGQU9YLFlBQVk7c0JBRG5CLFlBQVk7dUJBQUMsUUFBUSIsInNvdXJjZXNDb250ZW50IjpbIi8qXG4gKiBDb3B5cmlnaHQgKGMpIDIwMTYtMjAyNCBCcm9hZGNvbS4gQWxsIFJpZ2h0cyBSZXNlcnZlZC5cbiAqIFRoZSB0ZXJtIFwiQnJvYWRjb21cIiByZWZlcnMgdG8gQnJvYWRjb20gSW5jLiBhbmQvb3IgaXRzIHN1YnNpZGlhcmllcy5cbiAqIFRoaXMgc29mdHdhcmUgaXMgcmVsZWFzZWQgdW5kZXIgTUlUIGxpY2Vuc2UuXG4gKiBUaGUgZnVsbCBsaWNlbnNlIGluZm9ybWF0aW9uIGNhbiBiZSBmb3VuZCBpbiBMSUNFTlNFIGluIHRoZSByb290IGRpcmVjdG9yeSBvZiB0aGlzIHByb2plY3QuXG4gKi9cblxuaW1wb3J0IHtcbiAgRGlyZWN0aXZlLFxuICBFbGVtZW50UmVmLFxuICBIb3N0TGlzdGVuZXIsXG4gIEluamVjdG9yLFxuICBPcHRpb25hbCxcbiAgUmVuZGVyZXIyLFxuICBTZWxmLFxuICBWaWV3Q29udGFpbmVyUmVmLFxufSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IE5nQ29udHJvbCB9IGZyb20gJ0Bhbmd1bGFyL2Zvcm1zJztcblxuaW1wb3J0IHsgQ2xyQ29tbW9uU3RyaW5nc1NlcnZpY2UgfSBmcm9tICcuLi8uLi91dGlscyc7XG5pbXBvcnQgeyBXcmFwcGVkRm9ybUNvbnRyb2wgfSBmcm9tICcuLi9jb21tb24vd3JhcHBlZC1jb250cm9sJztcbmltcG9ydCB7IENsckZpbGVJbnB1dENvbnRhaW5lciB9IGZyb20gJy4vZmlsZS1pbnB1dC1jb250YWluZXInO1xuXG5leHBvcnQgaW50ZXJmYWNlIENsckZpbGVJbnB1dFNlbGVjdGlvbiB7XG4gIGZpbGVDb3VudDogbnVtYmVyO1xuICBidXR0b25MYWJlbDogc3RyaW5nO1xuICBjbGVhckZpbGVzQnV0dG9uTGFiZWw6IHN0cmluZztcbn1cblxuQERpcmVjdGl2ZSh7XG4gIHNlbGVjdG9yOiAnaW5wdXRbdHlwZT1cImZpbGVcIl1bY2xyRmlsZUlucHV0XScsXG4gIGhvc3Q6IHtcbiAgICAnW2NsYXNzLmNsci1maWxlLWlucHV0XSc6ICd0cnVlJyxcbiAgfSxcbn0pXG5leHBvcnQgY2xhc3MgQ2xyRmlsZUlucHV0IGV4dGVuZHMgV3JhcHBlZEZvcm1Db250cm9sPENsckZpbGVJbnB1dENvbnRhaW5lcj4ge1xuICBzZWxlY3Rpb246IENsckZpbGVJbnB1dFNlbGVjdGlvbiA9IHVuZGVmaW5lZDtcblxuICBjb25zdHJ1Y3RvcihcbiAgICBpbmplY3RvcjogSW5qZWN0b3IsXG4gICAgcmVuZGVyZXI6IFJlbmRlcmVyMixcbiAgICB2aWV3Q29udGFpbmVyUmVmOiBWaWV3Q29udGFpbmVyUmVmLFxuICAgIHJlYWRvbmx5IGVsZW1lbnRSZWY6IEVsZW1lbnRSZWY8SFRNTElucHV0RWxlbWVudD4sXG4gICAgQFNlbGYoKSBAT3B0aW9uYWwoKSBjb250cm9sOiBOZ0NvbnRyb2wsXG4gICAgcHJpdmF0ZSByZWFkb25seSBjb21tb25TdHJpbmdzOiBDbHJDb21tb25TdHJpbmdzU2VydmljZVxuICApIHtcbiAgICBzdXBlcih2aWV3Q29udGFpbmVyUmVmLCBDbHJGaWxlSW5wdXRDb250YWluZXIsIGluamVjdG9yLCBjb250cm9sLCByZW5kZXJlciwgZWxlbWVudFJlZik7XG4gIH1cblxuICBASG9zdExpc3RlbmVyKCdjaGFuZ2UnKVxuICBwcml2YXRlIGhhbmRsZUNoYW5nZSgpIHtcbiAgICB0aGlzLnVwZGF0ZVNlbGVjdGlvbigpO1xuICB9XG5cbiAgcHJpdmF0ZSB1cGRhdGVTZWxlY3Rpb24oKSB7XG4gICAgY29uc3QgZmlsZXMgPSB0aGlzLmVsZW1lbnRSZWYubmF0aXZlRWxlbWVudC5maWxlcztcbiAgICBsZXQgc2VsZWN0aW9uQnV0dG9uTGFiZWw6IHN0cmluZztcbiAgICBsZXQgY2xlYXJGaWxlc0J1dHRvbkxhYmVsOiBzdHJpbmc7XG5cbiAgICBpZiAoZmlsZXM/Lmxlbmd0aCA9PT0gMSkge1xuICAgICAgY29uc3QgZmlsZW5hbWUgPSBmaWxlc1swXS5uYW1lO1xuXG4gICAgICBzZWxlY3Rpb25CdXR0b25MYWJlbCA9IGZpbGVuYW1lO1xuXG4gICAgICBjbGVhckZpbGVzQnV0dG9uTGFiZWwgPSB0aGlzLmNvbW1vblN0cmluZ3MucGFyc2UodGhpcy5jb21tb25TdHJpbmdzLmtleXMuY2xlYXJGaWxlLCB7XG4gICAgICAgIEZJTEU6IGZpbGVuYW1lLFxuICAgICAgfSk7XG4gICAgfSBlbHNlIGlmIChmaWxlcz8ubGVuZ3RoID4gMSkge1xuICAgICAgY29uc3QgZmlsZUNvdW50ID0gZmlsZXMubGVuZ3RoLnRvU3RyaW5nKCk7XG5cbiAgICAgIHNlbGVjdGlvbkJ1dHRvbkxhYmVsID0gdGhpcy5jb21tb25TdHJpbmdzLnBhcnNlKHRoaXMuY29tbW9uU3RyaW5ncy5rZXlzLmZpbGVDb3VudCwge1xuICAgICAgICBDT1VOVDogZmlsZUNvdW50LFxuICAgICAgfSk7XG5cbiAgICAgIGNsZWFyRmlsZXNCdXR0b25MYWJlbCA9IHRoaXMuY29tbW9uU3RyaW5ncy5wYXJzZSh0aGlzLmNvbW1vblN0cmluZ3Mua2V5cy5jbGVhckZpbGVzLCB7XG4gICAgICAgIENPVU5UOiBmaWxlQ291bnQsXG4gICAgICB9KTtcbiAgICB9XG5cbiAgICB0aGlzLnNlbGVjdGlvbiA9IHtcbiAgICAgIGZpbGVDb3VudDogZmlsZXMubGVuZ3RoLFxuICAgICAgYnV0dG9uTGFiZWw6IHNlbGVjdGlvbkJ1dHRvbkxhYmVsLFxuICAgICAgY2xlYXJGaWxlc0J1dHRvbkxhYmVsLFxuICAgIH07XG4gIH1cbn1cbiJdfQ==
|
|
@@ -0,0 +1,43 @@
|
|
|
1
|
+
/*
|
|
2
|
+
* Copyright (c) 2016-2024 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 { CommonModule } from '@angular/common';
|
|
8
|
+
import { NgModule } from '@angular/core';
|
|
9
|
+
import { ClarityIcons, folderOpenIcon } from '@cds/core/icon';
|
|
10
|
+
import { ClrIconModule } from '../../icon/icon.module';
|
|
11
|
+
import { ClrCommonFormsModule } from '../common/common.module';
|
|
12
|
+
import { ClrFileInput } from './file-input';
|
|
13
|
+
import { ClrFileInputContainer } from './file-input-container';
|
|
14
|
+
import { ClrFileInputValidator } from './file-input-validator';
|
|
15
|
+
import { ClrFileInputValueAccessor } from './file-input-value-accessor';
|
|
16
|
+
import * as i0 from "@angular/core";
|
|
17
|
+
export class ClrFileInputModule {
|
|
18
|
+
constructor() {
|
|
19
|
+
ClarityIcons.addIcons(folderOpenIcon);
|
|
20
|
+
}
|
|
21
|
+
}
|
|
22
|
+
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, ClrFileInputContainer, ClrFileInputValidator, ClrFileInputValueAccessor], imports: [CommonModule, ClrIconModule, ClrCommonFormsModule], exports: [ClrCommonFormsModule,
|
|
24
|
+
ClrFileInput,
|
|
25
|
+
ClrFileInputContainer,
|
|
26
|
+
ClrFileInputValidator,
|
|
27
|
+
ClrFileInputValueAccessor] });
|
|
28
|
+
ClrFileInputModule.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "15.2.2", ngImport: i0, type: ClrFileInputModule, imports: [CommonModule, ClrIconModule, ClrCommonFormsModule, ClrCommonFormsModule] });
|
|
29
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.2", ngImport: i0, type: ClrFileInputModule, decorators: [{
|
|
30
|
+
type: NgModule,
|
|
31
|
+
args: [{
|
|
32
|
+
imports: [CommonModule, ClrIconModule, ClrCommonFormsModule],
|
|
33
|
+
declarations: [ClrFileInput, ClrFileInputContainer, ClrFileInputValidator, ClrFileInputValueAccessor],
|
|
34
|
+
exports: [
|
|
35
|
+
ClrCommonFormsModule,
|
|
36
|
+
ClrFileInput,
|
|
37
|
+
ClrFileInputContainer,
|
|
38
|
+
ClrFileInputValidator,
|
|
39
|
+
ClrFileInputValueAccessor,
|
|
40
|
+
],
|
|
41
|
+
}]
|
|
42
|
+
}], ctorParameters: function () { return []; } });
|
|
43
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZmlsZS1pbnB1dC5tb2R1bGUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9hbmd1bGFyL3NyYy9mb3Jtcy9maWxlLWlucHV0L2ZpbGUtaW5wdXQubW9kdWxlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBOzs7OztHQUtHO0FBRUgsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBQy9DLE9BQU8sRUFBRSxRQUFRLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDekMsT0FBTyxFQUFFLFlBQVksRUFBRSxjQUFjLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUU5RCxPQUFPLEVBQUUsYUFBYSxFQUFFLE1BQU0sd0JBQXdCLENBQUM7QUFDdkQsT0FBTyxFQUFFLG9CQUFvQixFQUFFLE1BQU0seUJBQXlCLENBQUM7QUFDL0QsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLGNBQWMsQ0FBQztBQUM1QyxPQUFPLEVBQUUscUJBQXFCLEVBQUUsTUFBTSx3QkFBd0IsQ0FBQztBQUMvRCxPQUFPLEVBQUUscUJBQXFCLEVBQUUsTUFBTSx3QkFBd0IsQ0FBQztBQUMvRCxPQUFPLEVBQUUseUJBQXlCLEVBQUUsTUFBTSw2QkFBNkIsQ0FBQzs7QUFheEUsTUFBTSxPQUFPLGtCQUFrQjtJQUM3QjtRQUNFLFlBQVksQ0FBQyxRQUFRLENBQUMsY0FBYyxDQUFDLENBQUM7SUFDeEMsQ0FBQzs7K0dBSFUsa0JBQWtCO2dIQUFsQixrQkFBa0IsaUJBVGQsWUFBWSxFQUFFLHFCQUFxQixFQUFFLHFCQUFxQixFQUFFLHlCQUF5QixhQUQxRixZQUFZLEVBQUUsYUFBYSxFQUFFLG9CQUFvQixhQUd6RCxvQkFBb0I7UUFDcEIsWUFBWTtRQUNaLHFCQUFxQjtRQUNyQixxQkFBcUI7UUFDckIseUJBQXlCO2dIQUdoQixrQkFBa0IsWUFWbkIsWUFBWSxFQUFFLGFBQWEsRUFBRSxvQkFBb0IsRUFHekQsb0JBQW9COzJGQU9YLGtCQUFrQjtrQkFYOUIsUUFBUTttQkFBQztvQkFDUixPQUFPLEVBQUUsQ0FBQyxZQUFZLEVBQUUsYUFBYSxFQUFFLG9CQUFvQixDQUFDO29CQUM1RCxZQUFZLEVBQUUsQ0FBQyxZQUFZLEVBQUUscUJBQXFCLEVBQUUscUJBQXFCLEVBQUUseUJBQXlCLENBQUM7b0JBQ3JHLE9BQU8sRUFBRTt3QkFDUCxvQkFBb0I7d0JBQ3BCLFlBQVk7d0JBQ1oscUJBQXFCO3dCQUNyQixxQkFBcUI7d0JBQ3JCLHlCQUF5QjtxQkFDMUI7aUJBQ0YiLCJzb3VyY2VzQ29udGVudCI6WyIvKlxuICogQ29weXJpZ2h0IChjKSAyMDE2LTIwMjQgQnJvYWRjb20uIEFsbCBSaWdodHMgUmVzZXJ2ZWQuXG4gKiBUaGUgdGVybSBcIkJyb2FkY29tXCIgcmVmZXJzIHRvIEJyb2FkY29tIEluYy4gYW5kL29yIGl0cyBzdWJzaWRpYXJpZXMuXG4gKiBUaGlzIHNvZnR3YXJlIGlzIHJlbGVhc2VkIHVuZGVyIE1JVCBsaWNlbnNlLlxuICogVGhlIGZ1bGwgbGljZW5zZSBpbmZvcm1hdGlvbiBjYW4gYmUgZm91bmQgaW4gTElDRU5TRSBpbiB0aGUgcm9vdCBkaXJlY3Rvcnkgb2YgdGhpcyBwcm9qZWN0LlxuICovXG5cbmltcG9ydCB7IENvbW1vbk1vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbic7XG5pbXBvcnQgeyBOZ01vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgQ2xhcml0eUljb25zLCBmb2xkZXJPcGVuSWNvbiB9IGZyb20gJ0BjZHMvY29yZS9pY29uJztcblxuaW1wb3J0IHsgQ2xySWNvbk1vZHVsZSB9IGZyb20gJy4uLy4uL2ljb24vaWNvbi5tb2R1bGUnO1xuaW1wb3J0IHsgQ2xyQ29tbW9uRm9ybXNNb2R1bGUgfSBmcm9tICcuLi9jb21tb24vY29tbW9uLm1vZHVsZSc7XG5pbXBvcnQgeyBDbHJGaWxlSW5wdXQgfSBmcm9tICcuL2ZpbGUtaW5wdXQnO1xuaW1wb3J0IHsgQ2xyRmlsZUlucHV0Q29udGFpbmVyIH0gZnJvbSAnLi9maWxlLWlucHV0LWNvbnRhaW5lcic7XG5pbXBvcnQgeyBDbHJGaWxlSW5wdXRWYWxpZGF0b3IgfSBmcm9tICcuL2ZpbGUtaW5wdXQtdmFsaWRhdG9yJztcbmltcG9ydCB7IENsckZpbGVJbnB1dFZhbHVlQWNjZXNzb3IgfSBmcm9tICcuL2ZpbGUtaW5wdXQtdmFsdWUtYWNjZXNzb3InO1xuXG5ATmdNb2R1bGUoe1xuICBpbXBvcnRzOiBbQ29tbW9uTW9kdWxlLCBDbHJJY29uTW9kdWxlLCBDbHJDb21tb25Gb3Jtc01vZHVsZV0sXG4gIGRlY2xhcmF0aW9uczogW0NsckZpbGVJbnB1dCwgQ2xyRmlsZUlucHV0Q29udGFpbmVyLCBDbHJGaWxlSW5wdXRWYWxpZGF0b3IsIENsckZpbGVJbnB1dFZhbHVlQWNjZXNzb3JdLFxuICBleHBvcnRzOiBbXG4gICAgQ2xyQ29tbW9uRm9ybXNNb2R1bGUsXG4gICAgQ2xyRmlsZUlucHV0LFxuICAgIENsckZpbGVJbnB1dENvbnRhaW5lcixcbiAgICBDbHJGaWxlSW5wdXRWYWxpZGF0b3IsXG4gICAgQ2xyRmlsZUlucHV0VmFsdWVBY2Nlc3NvcixcbiAgXSxcbn0pXG5leHBvcnQgY2xhc3MgQ2xyRmlsZUlucHV0TW9kdWxlIHtcbiAgY29uc3RydWN0b3IoKSB7XG4gICAgQ2xhcml0eUljb25zLmFkZEljb25zKGZvbGRlck9wZW5JY29uKTtcbiAgfVxufVxuIl19
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
/*
|
|
2
|
+
* Copyright (c) 2016-2024 Broadcom. All Rights Reserved.
|
|
3
|
+
* The term "Broadcom" refers to Broadcom Inc. and/or its subsidiaries.
|
|
4
|
+
* This software is released under MIT license.
|
|
5
|
+
* The full license information can be found in LICENSE in the root directory of this project.
|
|
6
|
+
*/
|
|
7
|
+
export * from './file-input';
|
|
8
|
+
export * from './file-input-validator';
|
|
9
|
+
export * from './file-input-value-accessor';
|
|
10
|
+
export * from './file-input-container';
|
|
11
|
+
export * from './file-input.module';
|
|
12
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9hbmd1bGFyL3NyYy9mb3Jtcy9maWxlLWlucHV0L2luZGV4LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBOzs7OztHQUtHO0FBRUgsY0FBYyxjQUFjLENBQUM7QUFDN0IsY0FBYyx3QkFBd0IsQ0FBQztBQUN2QyxjQUFjLDZCQUE2QixDQUFDO0FBQzVDLGNBQWMsd0JBQXdCLENBQUM7QUFDdkMsY0FBYyxxQkFBcUIsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbIi8qXG4gKiBDb3B5cmlnaHQgKGMpIDIwMTYtMjAyNCBCcm9hZGNvbS4gQWxsIFJpZ2h0cyBSZXNlcnZlZC5cbiAqIFRoZSB0ZXJtIFwiQnJvYWRjb21cIiByZWZlcnMgdG8gQnJvYWRjb20gSW5jLiBhbmQvb3IgaXRzIHN1YnNpZGlhcmllcy5cbiAqIFRoaXMgc29mdHdhcmUgaXMgcmVsZWFzZWQgdW5kZXIgTUlUIGxpY2Vuc2UuXG4gKiBUaGUgZnVsbCBsaWNlbnNlIGluZm9ybWF0aW9uIGNhbiBiZSBmb3VuZCBpbiBMSUNFTlNFIGluIHRoZSByb290IGRpcmVjdG9yeSBvZiB0aGlzIHByb2plY3QuXG4gKi9cblxuZXhwb3J0ICogZnJvbSAnLi9maWxlLWlucHV0JztcbmV4cG9ydCAqIGZyb20gJy4vZmlsZS1pbnB1dC12YWxpZGF0b3InO1xuZXhwb3J0ICogZnJvbSAnLi9maWxlLWlucHV0LXZhbHVlLWFjY2Vzc29yJztcbmV4cG9ydCAqIGZyb20gJy4vZmlsZS1pbnB1dC1jb250YWluZXInO1xuZXhwb3J0ICogZnJvbSAnLi9maWxlLWlucHV0Lm1vZHVsZSc7XG4iXX0=
|