@ptsecurity/mosaic 15.3.2 → 15.4.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.
Files changed (94) hide show
  1. package/_theming.scss +675 -42
  2. package/_visual.scss +132 -42
  3. package/button/button.component.d.ts +1 -0
  4. package/button-toggle/_button-toggle-theme.scss +92 -0
  5. package/button-toggle/button-toggle.component.d.ts +6 -2
  6. package/button-toggle/button-toggle.module.d.ts +2 -1
  7. package/button-toggle/button-toggle.scss +109 -81
  8. package/core/styles/_mosaic-theme.scss +6 -0
  9. package/core/styles/theming/_components-theming.scss +92 -0
  10. package/core/utils/data-size/config.d.ts +20 -0
  11. package/core/utils/data-size/data-size.pipe.d.ts +13 -0
  12. package/core/utils/data-size/index.d.ts +3 -0
  13. package/core/utils/data-size/size.d.ts +16 -0
  14. package/core/utils/public-api.d.ts +1 -0
  15. package/ellipsis-center/ellipsis-center.directive.d.ts +27 -0
  16. package/ellipsis-center/index.d.ts +1 -0
  17. package/ellipsis-center/public-api.d.ts +1 -0
  18. package/esm2020/button/button.component.mjs +9 -7
  19. package/esm2020/button-toggle/button-toggle.component.mjs +28 -9
  20. package/esm2020/button-toggle/button-toggle.module.mjs +5 -4
  21. package/esm2020/core/utils/data-size/config.mjs +22 -0
  22. package/esm2020/core/utils/data-size/data-size.pipe.mjs +32 -0
  23. package/esm2020/core/utils/data-size/index.mjs +4 -0
  24. package/esm2020/core/utils/data-size/size.mjs +50 -0
  25. package/esm2020/core/utils/public-api.mjs +2 -1
  26. package/esm2020/core/version.mjs +2 -2
  27. package/esm2020/ellipsis-center/ellipsis-center.directive.mjs +106 -0
  28. package/esm2020/ellipsis-center/index.mjs +2 -0
  29. package/esm2020/ellipsis-center/ptsecurity-mosaic-ellipsis-center.mjs +5 -0
  30. package/esm2020/ellipsis-center/public-api.mjs +2 -0
  31. package/esm2020/file-upload/file-drop.mjs +43 -0
  32. package/esm2020/file-upload/file-upload.mjs +4 -0
  33. package/esm2020/file-upload/file-upload.module.mjs +66 -0
  34. package/esm2020/file-upload/index.mjs +2 -0
  35. package/esm2020/file-upload/multiple-file-upload.component.mjs +161 -0
  36. package/esm2020/file-upload/ptsecurity-mosaic-file-upload.mjs +5 -0
  37. package/esm2020/file-upload/public-api.mjs +6 -0
  38. package/esm2020/file-upload/single-file-upload.component.mjs +130 -0
  39. package/esm2020/select/select.component.mjs +5 -5
  40. package/esm2020/timezone/timezone-select.component.mjs +2 -2
  41. package/esm2020/tree-select/tree-select.component.mjs +8 -5
  42. package/fesm2015/ptsecurity-mosaic-button-toggle.mjs +31 -11
  43. package/fesm2015/ptsecurity-mosaic-button-toggle.mjs.map +1 -1
  44. package/fesm2015/ptsecurity-mosaic-button.mjs +9 -7
  45. package/fesm2015/ptsecurity-mosaic-button.mjs.map +1 -1
  46. package/fesm2015/ptsecurity-mosaic-core.mjs +101 -2
  47. package/fesm2015/ptsecurity-mosaic-core.mjs.map +1 -1
  48. package/fesm2015/ptsecurity-mosaic-ellipsis-center.mjs +113 -0
  49. package/fesm2015/ptsecurity-mosaic-ellipsis-center.mjs.map +1 -0
  50. package/fesm2015/ptsecurity-mosaic-file-upload.mjs +392 -0
  51. package/fesm2015/ptsecurity-mosaic-file-upload.mjs.map +1 -0
  52. package/fesm2015/ptsecurity-mosaic-select.mjs +4 -4
  53. package/fesm2015/ptsecurity-mosaic-select.mjs.map +1 -1
  54. package/fesm2015/ptsecurity-mosaic-timezone.mjs +2 -2
  55. package/fesm2015/ptsecurity-mosaic-timezone.mjs.map +1 -1
  56. package/fesm2015/ptsecurity-mosaic-tree-select.mjs +7 -4
  57. package/fesm2015/ptsecurity-mosaic-tree-select.mjs.map +1 -1
  58. package/fesm2020/ptsecurity-mosaic-button-toggle.mjs +31 -11
  59. package/fesm2020/ptsecurity-mosaic-button-toggle.mjs.map +1 -1
  60. package/fesm2020/ptsecurity-mosaic-button.mjs +9 -7
  61. package/fesm2020/ptsecurity-mosaic-button.mjs.map +1 -1
  62. package/fesm2020/ptsecurity-mosaic-core.mjs +101 -2
  63. package/fesm2020/ptsecurity-mosaic-core.mjs.map +1 -1
  64. package/fesm2020/ptsecurity-mosaic-ellipsis-center.mjs +111 -0
  65. package/fesm2020/ptsecurity-mosaic-ellipsis-center.mjs.map +1 -0
  66. package/fesm2020/ptsecurity-mosaic-file-upload.mjs +388 -0
  67. package/fesm2020/ptsecurity-mosaic-file-upload.mjs.map +1 -0
  68. package/fesm2020/ptsecurity-mosaic-select.mjs +4 -4
  69. package/fesm2020/ptsecurity-mosaic-select.mjs.map +1 -1
  70. package/fesm2020/ptsecurity-mosaic-timezone.mjs +2 -2
  71. package/fesm2020/ptsecurity-mosaic-timezone.mjs.map +1 -1
  72. package/fesm2020/ptsecurity-mosaic-tree-select.mjs +7 -4
  73. package/fesm2020/ptsecurity-mosaic-tree-select.mjs.map +1 -1
  74. package/file-upload/README.md +0 -0
  75. package/file-upload/_file-upload-theme.scss +174 -0
  76. package/file-upload/file-drop.d.ts +11 -0
  77. package/file-upload/file-upload.d.ts +22 -0
  78. package/file-upload/file-upload.module.d.ts +18 -0
  79. package/file-upload/file-upload.scss +46 -0
  80. package/file-upload/index.d.ts +1 -0
  81. package/file-upload/multiple-file-upload.component.d.ts +51 -0
  82. package/file-upload/multiple-file-upload.component.scss +148 -0
  83. package/file-upload/public-api.d.ts +5 -0
  84. package/file-upload/single-file-upload.component.d.ts +34 -0
  85. package/file-upload/single-file-upload.component.scss +60 -0
  86. package/package.json +18 -2
  87. package/prebuilt-themes/dark-theme.css +1 -1
  88. package/prebuilt-themes/default-theme.css +1 -1
  89. package/select/_select-theme.scss +6 -0
  90. package/select/select.component.d.ts +1 -1
  91. package/select/select.scss +13 -0
  92. package/tree-select/_tree-select-theme.scss +6 -0
  93. package/tree-select/tree-select.component.d.ts +2 -2
  94. package/tree-select/tree-select.scss +13 -0
@@ -0,0 +1,46 @@
1
+ @use 'sass:meta';
2
+ @use 'sass:map';
3
+
4
+ @use '../core/styles/tokens';
5
+
6
+ @use '../core/styles/common';
7
+
8
+ $tokens: meta.module-variables(tokens) !default;
9
+ $dropzone-text-margin-left: map.get($tokens, size-xs);
10
+
11
+ .mc-file-upload {
12
+ box-sizing: border-box;
13
+ display: flex;
14
+ align-items: center;
15
+ position: relative;
16
+ cursor: pointer;
17
+
18
+ .dropzone, .file-item {
19
+ display: flex;
20
+ align-items: center;
21
+ }
22
+
23
+ .dropzone {
24
+ .dropzone__text {
25
+ margin-left: $dropzone-text-margin-left;
26
+ }
27
+ }
28
+
29
+ .mc-ellipsis-center {
30
+ position: relative;
31
+ display: flex;
32
+
33
+ .data-text-start {
34
+ flex: 0 1 auto;
35
+ overflow: hidden;
36
+ text-overflow: ellipsis;
37
+ white-space: pre;
38
+ }
39
+
40
+ .data-text-end {
41
+ flex: 1 0 auto;
42
+ overflow: hidden;
43
+ white-space: pre;
44
+ }
45
+ }
46
+ }
@@ -0,0 +1 @@
1
+ export * from './public-api';
@@ -0,0 +1,51 @@
1
+ import { FocusMonitor } from '@angular/cdk/a11y';
2
+ import { AfterViewInit, ChangeDetectorRef, ElementRef, EventEmitter, OnDestroy, TemplateRef } from '@angular/core';
3
+ import { CanDisable } from '@ptsecurity/mosaic/core';
4
+ import { McFileItem, McFileValidatorFn, McInputFile, McInputFileLabel } from './file-upload';
5
+ import * as i0 from "@angular/core";
6
+ export interface McInputFileMultipleLabel extends McInputFileLabel {
7
+ captionTextWhenSelected: string;
8
+ captionTextForCompactSize: string;
9
+ gridHeaders: {
10
+ file: string;
11
+ size: string;
12
+ };
13
+ [k: string | number | symbol]: unknown;
14
+ }
15
+ export declare const MC_MULTIPLE_FILE_UPLOAD_DEFAULT_CONFIGURATION: McInputFileMultipleLabel;
16
+ export declare class McMultipleFileUploadComponent implements AfterViewInit, OnDestroy, McInputFile, CanDisable {
17
+ private focusMonitor;
18
+ private cdr;
19
+ config: McInputFileMultipleLabel;
20
+ accept?: string[];
21
+ disabled: boolean;
22
+ errors: string[];
23
+ files: McFileItem[];
24
+ size: 'compact' | 'default';
25
+ inputId: string;
26
+ customValidation?: McFileValidatorFn[];
27
+ fileQueueChanged: EventEmitter<McFileItem[]>;
28
+ customFileIcon: TemplateRef<HTMLElement>;
29
+ input: ElementRef<HTMLInputElement>;
30
+ hasFocus: boolean;
31
+ columnDefs: {
32
+ header: string;
33
+ cssClass: string;
34
+ }[];
35
+ private focusMonitorSubscription;
36
+ get acceptedFiles(): string;
37
+ get hasErrors(): boolean;
38
+ constructor(focusMonitor: FocusMonitor, cdr: ChangeDetectorRef, config: McInputFileMultipleLabel);
39
+ ngAfterViewInit(): void;
40
+ ngOnDestroy(): void;
41
+ onFileSelectedViaClick({ target }: Event): void;
42
+ onFileDropped(files: FileList): void;
43
+ deleteFile(index: number, event?: MouseEvent): void;
44
+ onFileListChange(): void;
45
+ onFocus(focusState: boolean): void;
46
+ private mapToFileItem;
47
+ private validateFile;
48
+ private isCorrectExtension;
49
+ static ɵfac: i0.ɵɵFactoryDeclaration<McMultipleFileUploadComponent, [null, null, { optional: true; }]>;
50
+ static ɵcmp: i0.ɵɵComponentDeclaration<McMultipleFileUploadComponent, "mc-multiple-file-upload", never, { "accept": "accept"; "disabled": "disabled"; "errors": "errors"; "files": "files"; "size": "size"; "inputId": "inputId"; "customValidation": "customValidation"; }, { "fileQueueChanged": "fileQueueChanged"; }, ["customFileIcon"], ["[hint]"], false, never>;
51
+ }
@@ -0,0 +1,148 @@
1
+ @use 'sass:meta';
2
+ @use 'sass:map';
3
+
4
+ @use '../core/styles/tokens';
5
+
6
+ @use '../core/styles/common';
7
+
8
+ $tokens: meta.module-variables(tokens) !default;
9
+
10
+ $dropzone-text-margin-left: map.get($tokens, size-xs);
11
+ $multiple-default-height: 176px;
12
+ $border-type-header: solid;
13
+
14
+ $horizontal-padding-item: var(
15
+ --mc-file-upload-size-multiple-uploaded-item-horizontal-padding,
16
+ map.get($tokens, file-upload-size-multiple-uploaded-item-horizontal-padding)
17
+ );
18
+ $vertical-padding-item: var(
19
+ --mc-file-upload-size-multiple-uploaded-item-vertical-padding,
20
+ map.get($tokens, file-upload-size-multiple-uploaded-item-vertical-padding)
21
+ );
22
+
23
+ .mc-file-upload {
24
+ border-radius: var(
25
+ --mc-file-upload-size-multiple-border-radius,
26
+ map.get($tokens, file-upload-size-multiple-border-radius)
27
+ );
28
+ border-width: var(
29
+ --mc-file-upload-size-multiple-border-width,
30
+ map.get($tokens, file-upload-size-multiple-border-width)
31
+ );
32
+ border-style: var(
33
+ --mc-file-upload-size-multiple-border-style,
34
+ map.get($tokens, file-upload-size-multiple-border-style)
35
+ );
36
+
37
+ &.default {
38
+ min-height: $multiple-default-height;
39
+ justify-content: center;
40
+ }
41
+
42
+ &.compact:not(.selected) {
43
+ height: var(
44
+ --mc-file-upload-size-single-height,
45
+ map.get($tokens, file-upload-size-single-height)
46
+ );
47
+ padding-top: var(
48
+ --mc-file-upload-size-single-vertical-padding,
49
+ map.get($tokens, file-upload-size-single-vertical-padding)
50
+ );
51
+ padding-bottom: var(
52
+ --mc-file-upload-size-single-vertical-padding,
53
+ map.get($tokens, file-upload-size-single-vertical-padding)
54
+ );
55
+ padding-left: map.get($tokens, size-m);
56
+ }
57
+
58
+ .mc-list-option {
59
+ padding: $horizontal-padding-item $vertical-padding-item;
60
+
61
+ .mc-icon {
62
+ margin-right: 0;
63
+ }
64
+ }
65
+
66
+ .mc-file-upload__grid {
67
+ min-height: 144px;
68
+ }
69
+
70
+ .mc-file-multiple-uploaded__header-inner,
71
+ .mc-file-upload__row {
72
+ display: flex;
73
+ align-items: center;
74
+
75
+ .mc-file-upload__file {
76
+ width: 65%;
77
+ max-width: 65%;
78
+ }
79
+
80
+ .mc-file-upload__size {
81
+ width: map.get($tokens, size-7xl);
82
+ min-width: map.get($tokens, size-7xl);
83
+ text-align: left;
84
+ flex-grow: 1;
85
+ }
86
+
87
+ .mc-file-upload__file,
88
+ .mc-file-upload__size,
89
+ .mc-file-upload__action, {
90
+ padding-left: $horizontal-padding-item;
91
+ padding-right: $horizontal-padding-item;
92
+ }
93
+ }
94
+
95
+ .mc-file-upload__row {
96
+ .mc-file-upload__file {
97
+ display: flex;
98
+ align-items: center;
99
+
100
+ .file-item__text {
101
+ margin-left: 0;
102
+ width: 90%;
103
+ }
104
+ }
105
+ }
106
+
107
+ .mc-file-multiple-uploaded__header {
108
+ border-bottom-width: 1px;
109
+ border-bottom-style: $border-type-header;
110
+
111
+ &-inner {
112
+ padding: $horizontal-padding-item $vertical-padding-item;
113
+ border: 2px solid transparent;
114
+ border-bottom: unset;
115
+ box-sizing: border-box;
116
+ height: var(--mc-list-size-item-height, map.get($tokens, size-3xl));
117
+ }
118
+
119
+ }
120
+
121
+ .btn-upload {
122
+ .dropzone {
123
+ margin: 0;
124
+ border-top-width: var(
125
+ --mc-file-upload-size-multiple-border-width,
126
+ map.get($tokens, file-upload-size-multiple-border-width)
127
+ );
128
+ border-top-style: var(
129
+ --mc-file-upload-size-multiple-border-style,
130
+ map.get($tokens, file-upload-size-multiple-border-style)
131
+ );
132
+ padding: map.get($tokens, size-xxs) map.get($tokens, size-m);
133
+ }
134
+ }
135
+
136
+ .file-upload__dropzone {
137
+ width: 100%;
138
+ height: 100%;
139
+ }
140
+ }
141
+
142
+ .mc-hint {
143
+ display: block;
144
+ }
145
+
146
+ .mc-file-upload__hint {
147
+ margin-top: var(--mc-form-field-hint-size-margin-top, map.get($tokens, form-field-hint-size-margin-top));
148
+ }
@@ -0,0 +1,5 @@
1
+ export * from './file-upload';
2
+ export * from './file-upload.module';
3
+ export * from './multiple-file-upload.component';
4
+ export * from './single-file-upload.component';
5
+ export * from './file-drop';
@@ -0,0 +1,34 @@
1
+ import { FocusMonitor } from '@angular/cdk/a11y';
2
+ import { AfterViewInit, ChangeDetectorRef, ElementRef, EventEmitter, OnDestroy } from '@angular/core';
3
+ import { CanDisable } from '@ptsecurity/mosaic/core';
4
+ import { McFileItem, McFileValidatorFn, McInputFile, McInputFileLabel } from './file-upload';
5
+ import * as i0 from "@angular/core";
6
+ export declare const MC_SINGLE_FILE_UPLOAD_DEFAULT_CONFIGURATION: McInputFileLabel;
7
+ export declare class McSingleFileUploadComponent implements AfterViewInit, OnDestroy, McInputFile, CanDisable {
8
+ private focusMonitor;
9
+ private cdr;
10
+ config: McInputFileLabel;
11
+ accept: string[];
12
+ disabled: boolean;
13
+ errors: string[];
14
+ files: McFileItem[];
15
+ inputId: string;
16
+ customValidation?: McFileValidatorFn[];
17
+ fileQueueChanged: EventEmitter<McFileItem | null>;
18
+ input: ElementRef<HTMLInputElement>;
19
+ hasFocus: boolean;
20
+ private focusMonitorSubscription;
21
+ get acceptedFiles(): string;
22
+ constructor(focusMonitor: FocusMonitor, cdr: ChangeDetectorRef, config: McInputFileLabel);
23
+ ngAfterViewInit(): void;
24
+ ngOnDestroy(): void;
25
+ onFileSelectedViaClick({ target }: Event): void;
26
+ deleteItem(event?: MouseEvent): void;
27
+ onFileDropped(files: FileList): void;
28
+ onFocus(focusState: boolean): void;
29
+ private mapToFileItem;
30
+ private validateFile;
31
+ private isCorrectExtension;
32
+ static ɵfac: i0.ɵɵFactoryDeclaration<McSingleFileUploadComponent, [null, null, { optional: true; }]>;
33
+ static ɵcmp: i0.ɵɵComponentDeclaration<McSingleFileUploadComponent, "mc-single-file-upload", never, { "accept": "accept"; "disabled": "disabled"; "errors": "errors"; "files": "files"; "inputId": "inputId"; "customValidation": "customValidation"; }, { "fileQueueChanged": "fileQueueChanged"; }, never, ["[hint]", "[mc-icon]"], false, never>;
34
+ }
@@ -0,0 +1,60 @@
1
+ @use 'sass:meta';
2
+ @use 'sass:map';
3
+
4
+ @use '../core/styles/tokens';
5
+
6
+ @use '../core/styles/common';
7
+
8
+ $tokens: meta.module-variables(tokens) !default;
9
+
10
+ .mc-file-upload {
11
+ height: var(
12
+ --mc-file-upload-size-single-height,
13
+ map.get($tokens, file-upload-size-single-height)
14
+ );
15
+ padding-top: var(
16
+ --mc-file-upload-size-single-vertical-padding,
17
+ map.get($tokens, file-upload-size-single-vertical-padding)
18
+ );
19
+ padding-bottom: var(
20
+ --mc-file-upload-size-single-vertical-padding,
21
+ map.get($tokens, file-upload-size-single-vertical-padding)
22
+ );
23
+ padding-left: map.get($tokens, size-m);
24
+
25
+ border-radius: var(
26
+ --mc-file-upload-size-single-border-radius,
27
+ map.get($tokens, file-upload-size-single-border-radius)
28
+ );
29
+ border-width: var(
30
+ --mc-file-upload-size-single-border-width,
31
+ map.get($tokens, file-upload-size-single-border-width));
32
+ border-style: var(
33
+ --mc-file-upload-size-single-border-style,
34
+ map.get($tokens, file-upload-size-single-border-style)
35
+ );
36
+
37
+ .file-item {
38
+ width: 100%;
39
+
40
+ .file-item__text-wrapper {
41
+ display: flex;
42
+ align-items: center;
43
+ width: 100%;
44
+
45
+ .file-item__text {
46
+ margin-left: map.get($tokens, size-s);
47
+ width: 120px;
48
+ flex-grow: 1;
49
+ }
50
+ }
51
+ }
52
+ }
53
+
54
+ .mc-hint {
55
+ display: block;
56
+ }
57
+
58
+ .mc-file-upload__hint {
59
+ margin-top: var(--mc-form-field-hint-size-margin-top, map.get($tokens, form-field-hint-size-margin-top));
60
+ }
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@ptsecurity/mosaic",
3
- "version": "15.3.2",
3
+ "version": "15.4.1",
4
4
  "description": "Mosaic",
5
5
  "repository": {
6
6
  "type": "git",
@@ -22,7 +22,7 @@
22
22
  "@angular/core": "^15.2.0",
23
23
  "@angular/common": "^15.2.0",
24
24
  "@angular/forms": "^15.2.0",
25
- "@ptsecurity/cdk": "^15.3.2",
25
+ "@ptsecurity/cdk": "^15.4.1",
26
26
  "@ptsecurity/mosaic-moment-adapter": "^1.1.0",
27
27
  "@ptsecurity/mosaic-luxon-adapter": "^1.1.0",
28
28
  "@mosaic-design/date-formatter": "^1.1.0",
@@ -149,6 +149,22 @@
149
149
  "node": "./fesm2015/ptsecurity-mosaic-dropdown.mjs",
150
150
  "default": "./fesm2020/ptsecurity-mosaic-dropdown.mjs"
151
151
  },
152
+ "./ellipsis-center": {
153
+ "types": "./ellipsis-center/index.d.ts",
154
+ "esm2020": "./esm2020/ellipsis-center/ptsecurity-mosaic-ellipsis-center.mjs",
155
+ "es2020": "./fesm2020/ptsecurity-mosaic-ellipsis-center.mjs",
156
+ "es2015": "./fesm2015/ptsecurity-mosaic-ellipsis-center.mjs",
157
+ "node": "./fesm2015/ptsecurity-mosaic-ellipsis-center.mjs",
158
+ "default": "./fesm2020/ptsecurity-mosaic-ellipsis-center.mjs"
159
+ },
160
+ "./file-upload": {
161
+ "types": "./file-upload/index.d.ts",
162
+ "esm2020": "./esm2020/file-upload/ptsecurity-mosaic-file-upload.mjs",
163
+ "es2020": "./fesm2020/ptsecurity-mosaic-file-upload.mjs",
164
+ "es2015": "./fesm2015/ptsecurity-mosaic-file-upload.mjs",
165
+ "node": "./fesm2015/ptsecurity-mosaic-file-upload.mjs",
166
+ "default": "./fesm2020/ptsecurity-mosaic-file-upload.mjs"
167
+ },
152
168
  "./form-field": {
153
169
  "types": "./form-field/index.d.ts",
154
170
  "esm2020": "./esm2020/form-field/ptsecurity-mosaic-form-field.mjs",