• Home
  • Features
  • Pricing
  • Docs
  • Announcements
  • Sign In

atinc / ngx-tethys / d9ae709b-3c27-4b69-b125-b8b80b54f90b

pending completion
d9ae709b-3c27-4b69-b125-b8b80b54f90b

Pull #2757

circleci

mengshuicmq
fix: fix code review
Pull Request #2757: feat(color-picker): color-picker support disabled (#INFR-8645)

98 of 6315 branches covered (1.55%)

Branch coverage included in aggregate %.

1 of 1 new or added line in 1 file covered. (100.0%)

2392 of 13661 relevant lines covered (17.51%)

83.12 hits per line

Source File
Press 'n' to go to next uncovered line, 'b' for previous

10.53
/src/upload/file-select-base.ts
1
import { coerceNumberValue, isNumber } from 'ngx-tethys/util';
2
import { Directive, ElementRef, EventEmitter, Inject, Input, NgZone } from '@angular/core';
3
import { ThyFileSelectEvent, ThySizeExceedsHandler } from './types';
4
import { THY_UPLOAD_DEFAULT_OPTIONS, ThyUploadConfig } from './upload.config';
5
import { mimeTypeConvert } from './util';
6

7
/**
8
 * @private
9
 */
1✔
10
@Directive()
11
export class FileSelectBaseDirective {
×
12
    acceptType: string;
×
13
    sizeThreshold: number;
×
14
    sizeExceedsHandler: ThySizeExceedsHandler;
15

16
    @Input() set thySizeThreshold(value: number) {
17
        const sizeThreshold = coerceNumberValue(value);
×
18
        if (isNumber(sizeThreshold)) {
×
19
            this.sizeThreshold = sizeThreshold;
20
        }
21
    }
22

×
23
    @Input() set thySizeExceedsHandler(value: ThySizeExceedsHandler) {
24
        if (value) {
25
            this.sizeExceedsHandler = value;
×
26
        }
×
27
    }
×
28

×
29
    /**
×
30
     * 指定文件后缀类型(MIME_Map),例如".xls,xlsx","[".doc",".docx"]"
×
31
     */
32
    @Input()
33
    set thyAcceptType(value: Array<string> | string) {
×
34
        this.acceptType = mimeTypeConvert(value);
×
35
    }
×
36

37
    constructor(
38
        public elementRef: ElementRef,
39
        @Inject(THY_UPLOAD_DEFAULT_OPTIONS) public defaultConfig: ThyUploadConfig,
40
        public ngZone?: NgZone
41
    ) {
×
42
        this.sizeThreshold = defaultConfig.sizeThreshold;
43
        this.sizeExceedsHandler = defaultConfig.sizeExceedsHandler;
×
44
        this.acceptType = mimeTypeConvert(defaultConfig.acceptType);
45
    }
46

×
47
    handleSizeExceeds(event: Event, files: File[]) {
×
48
        let sizeExceedsFiles = files.filter(item => item.size / 1024 > this.sizeThreshold);
×
49
        if (sizeExceedsFiles.length > 0) {
50
            const sizeExceedContext = {
×
51
                files: files,
×
52
                exceedsFiles: sizeExceedsFiles,
53
                nativeEvent: event,
54
                sizeThreshold: this.sizeThreshold
55
            };
56
            return this.sizeExceedsHandler(sizeExceedContext);
57
        }
1✔
58
        return files;
59
    }
60

61
    selectFiles(event: Event, files: File[], eventEmitter: EventEmitter<ThyFileSelectEvent>) {
62
        let successFiles: File[] | void = files;
1✔
63
        if (this.sizeThreshold && this.sizeThreshold > 0) {
64
            successFiles = this.handleSizeExceeds(event, files);
65
        }
66
        if (successFiles) {
67
            eventEmitter.emit({
68
                files: successFiles,
1✔
69
                nativeEvent: event
70
            });
71
        }
72
    }
73
}
STATUS · Troubleshooting · Open an Issue · Sales · Support · CAREERS · ENTERPRISE · START FREE · SCHEDULE DEMO
ANNOUNCEMENTS · TWITTER · TOS & SLA · Supported CI Services · What's a CI service? · Automated Testing

© 2025 Coveralls, Inc