@bnsights/bbsf-controls 1.0.182 → 1.0.183
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/README.md +8 -0
- package/esm2022/lib/controls/FileUpload/FileUpload.component.mjs +14 -11
- package/esm2022/lib/controls/MultiLingualTextBox/MultiLingualTextBox.component.mjs +3 -3
- package/esm2022/lib/controls/TextArea/TextArea.component.mjs +140 -5
- package/fesm2022/bnsights-bbsf-controls.mjs +154 -16
- package/fesm2022/bnsights-bbsf-controls.mjs.map +1 -1
- package/lib/controls/FileUpload/FileUpload.component.d.ts +0 -8
- package/lib/controls/TextArea/TextArea.component.d.ts +9 -0
- package/package.json +1 -1
- package/src/lib/assets/sass/textarea.scss +59 -2
|
@@ -57,15 +57,7 @@ export declare class FileUploadComponent implements OnInit, AfterViewInit, OnDes
|
|
|
57
57
|
convertSizeToMB(size: number): number;
|
|
58
58
|
ngOnDestroy(): void;
|
|
59
59
|
sanitizeFileName(fileName: string): string;
|
|
60
|
-
/**
|
|
61
|
-
* Find duplicate files in the current upload queue
|
|
62
|
-
* @returns Array of newly added duplicate FileItem objects that should be rejected
|
|
63
|
-
*/
|
|
64
60
|
private findDuplicateFiles;
|
|
65
|
-
/**
|
|
66
|
-
* Remove duplicate files from the uploader queue
|
|
67
|
-
* @param duplicateFiles Array of duplicate FileItem objects to remove
|
|
68
|
-
*/
|
|
69
61
|
private removeDuplicateFilesFromQueue;
|
|
70
62
|
private isFileTypeAccepted;
|
|
71
63
|
private setValuePreservingErrors;
|
|
@@ -38,12 +38,19 @@ export declare class TextAreaComponent implements OnInit, OnDestroy {
|
|
|
38
38
|
subscription: Subscription;
|
|
39
39
|
valueChangesSubscription: Subscription;
|
|
40
40
|
selectedSpeechLanguageDisplayText: string;
|
|
41
|
+
ariaDescribedBy: string;
|
|
42
|
+
errorMessageId: string;
|
|
43
|
+
characterCountId: string;
|
|
44
|
+
wordCountId: string;
|
|
41
45
|
ngOnInit(): void;
|
|
42
46
|
ngAfterViewInit(): void;
|
|
43
47
|
resetError: () => void;
|
|
44
48
|
showGlobalError(): void;
|
|
45
49
|
getErrorValidation(ErrorList: any): string;
|
|
46
50
|
getInputType(type: number): string;
|
|
51
|
+
updateAriaDescribedBy(): void;
|
|
52
|
+
announceToScreenReader(message: string): void;
|
|
53
|
+
resetSpeechProperties(): void;
|
|
47
54
|
trimControlValue(): void;
|
|
48
55
|
onKeyDown(event: KeyboardEvent): void;
|
|
49
56
|
copyInputMessage(inputElement: any): void;
|
|
@@ -60,6 +67,8 @@ export declare class TextAreaComponent implements OnInit, OnDestroy {
|
|
|
60
67
|
stopSpeechRecognition(): void;
|
|
61
68
|
fireOnChange(text: any): void;
|
|
62
69
|
ngOnDestroy(): void;
|
|
70
|
+
onMicKeydown(event: KeyboardEvent, action: 'start' | 'stop'): void;
|
|
71
|
+
onCopyKeydown(event: KeyboardEvent, inputElement: HTMLTextAreaElement): void;
|
|
63
72
|
onSpeechLanguageChange(event: Event): void;
|
|
64
73
|
enableOrDisableLanguageSelect(isEnabled?: boolean): void;
|
|
65
74
|
static ɵfac: i0.ɵɵFactoryDeclaration<TextAreaComponent, [null, { optional: true; skipSelf: true; }, { optional: true; }, null, null, null, null, null]>;
|
package/package.json
CHANGED
|
@@ -1,6 +1,63 @@
|
|
|
1
|
-
.form-group.bbsf-control.bbsf-textarea,
|
|
1
|
+
.form-group.bbsf-control.bbsf-textarea,
|
|
2
|
+
.form-group.bbsf-control.bbsf-multilang-textarea {
|
|
2
3
|
textarea.form-control {
|
|
3
4
|
resize: none;
|
|
4
5
|
height: auto;
|
|
5
6
|
}
|
|
6
|
-
|
|
7
|
+
|
|
8
|
+
// Accessibility improvements
|
|
9
|
+
.speech-control-btn {
|
|
10
|
+
background: none;
|
|
11
|
+
border: 1px solid transparent;
|
|
12
|
+
padding: 4px;
|
|
13
|
+
border-radius: 4px;
|
|
14
|
+
cursor: pointer;
|
|
15
|
+
|
|
16
|
+
&:focus {
|
|
17
|
+
outline: 2px solid #005fcc;
|
|
18
|
+
outline-offset: 2px;
|
|
19
|
+
border-color: #005fcc;
|
|
20
|
+
}
|
|
21
|
+
|
|
22
|
+
&:hover {
|
|
23
|
+
background-color: rgba(0, 95, 204, 0.1);
|
|
24
|
+
}
|
|
25
|
+
}
|
|
26
|
+
|
|
27
|
+
.copy-clipboard {
|
|
28
|
+
background: none;
|
|
29
|
+
border: 1px solid transparent;
|
|
30
|
+
padding: 4px;
|
|
31
|
+
border-radius: 4px;
|
|
32
|
+
cursor: pointer;
|
|
33
|
+
|
|
34
|
+
&:focus {
|
|
35
|
+
outline: 2px solid #005fcc;
|
|
36
|
+
outline-offset: 2px;
|
|
37
|
+
border-color: #005fcc;
|
|
38
|
+
}
|
|
39
|
+
|
|
40
|
+
&:hover {
|
|
41
|
+
background-color: rgba(0, 95, 204, 0.1);
|
|
42
|
+
}
|
|
43
|
+
}
|
|
44
|
+
|
|
45
|
+
// High contrast mode support
|
|
46
|
+
@media (prefers-contrast: high) {
|
|
47
|
+
|
|
48
|
+
.speech-control-btn,
|
|
49
|
+
.copy-clipboard {
|
|
50
|
+
border-color: currentColor;
|
|
51
|
+
}
|
|
52
|
+
}
|
|
53
|
+
|
|
54
|
+
// Reduced motion support
|
|
55
|
+
@media (prefers-reduced-motion: reduce) {
|
|
56
|
+
* {
|
|
57
|
+
animation-duration: 0.01ms !important;
|
|
58
|
+
animation-iteration-count: 1 !important;
|
|
59
|
+
transition-duration: 0.01ms !important;
|
|
60
|
+
scroll-behavior: auto !important;
|
|
61
|
+
}
|
|
62
|
+
}
|
|
63
|
+
}
|