@koobiq/components 19.2.0 → 19.4.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/autocomplete/autocomplete-trigger.directive.d.ts +5 -0
- package/core/animation/animation.d.ts +3 -1
- package/core/highlight/highlight.pipe.d.ts +2 -0
- package/core/option/action.d.ts +5 -6
- package/core/utils/utils.d.ts +4 -0
- package/datepicker/datepicker-input.directive.d.ts +6 -1
- package/fesm2022/koobiq-components-accordion.mjs +34 -34
- package/fesm2022/koobiq-components-actions-panel.mjs +10 -10
- package/fesm2022/koobiq-components-alert.mjs +16 -16
- package/fesm2022/koobiq-components-app-switcher.mjs +19 -19
- package/fesm2022/koobiq-components-autocomplete.mjs +21 -14
- package/fesm2022/koobiq-components-autocomplete.mjs.map +1 -1
- package/fesm2022/koobiq-components-badge.mjs +13 -13
- package/fesm2022/koobiq-components-breadcrumbs.mjs +25 -25
- package/fesm2022/koobiq-components-button-toggle.mjs +10 -10
- package/fesm2022/koobiq-components-button.mjs +13 -13
- package/fesm2022/koobiq-components-checkbox.mjs +10 -10
- package/fesm2022/koobiq-components-clamped-text.mjs +7 -7
- package/fesm2022/koobiq-components-code-block.mjs +10 -10
- package/fesm2022/koobiq-components-content-panel.mjs +28 -28
- package/fesm2022/koobiq-components-core.mjs +268 -243
- package/fesm2022/koobiq-components-core.mjs.map +1 -1
- package/fesm2022/koobiq-components-datepicker.mjs +49 -42
- package/fesm2022/koobiq-components-datepicker.mjs.map +1 -1
- package/fesm2022/koobiq-components-divider.mjs +7 -7
- package/fesm2022/koobiq-components-dl.mjs +13 -13
- package/fesm2022/koobiq-components-dropdown.mjs +21 -20
- package/fesm2022/koobiq-components-dropdown.mjs.map +1 -1
- package/fesm2022/koobiq-components-dynamic-translation.mjs +13 -13
- package/fesm2022/koobiq-components-ellipsis-center.mjs +7 -7
- package/fesm2022/koobiq-components-empty-state.mjs +19 -19
- package/fesm2022/koobiq-components-file-upload.mjs +495 -60
- package/fesm2022/koobiq-components-file-upload.mjs.map +1 -1
- package/fesm2022/koobiq-components-filter-bar.mjs +69 -69
- package/fesm2022/koobiq-components-filter-bar.mjs.map +1 -1
- package/fesm2022/koobiq-components-form-field.mjs +62 -62
- package/fesm2022/koobiq-components-form-field.mjs.map +1 -1
- package/fesm2022/koobiq-components-icon.mjs +14 -14
- package/fesm2022/koobiq-components-icon.mjs.map +1 -1
- package/fesm2022/koobiq-components-inline-edit.mjs +19 -28
- package/fesm2022/koobiq-components-inline-edit.mjs.map +1 -1
- package/fesm2022/koobiq-components-input.mjs +22 -22
- package/fesm2022/koobiq-components-link.mjs +7 -7
- package/fesm2022/koobiq-components-list.mjs +30 -20
- package/fesm2022/koobiq-components-list.mjs.map +1 -1
- package/fesm2022/koobiq-components-loader-overlay.mjs +16 -16
- package/fesm2022/koobiq-components-markdown.mjs +10 -10
- package/fesm2022/koobiq-components-modal.mjs +28 -28
- package/fesm2022/koobiq-components-navbar-ic.mjs +34 -34
- package/fesm2022/koobiq-components-navbar.mjs +43 -43
- package/fesm2022/koobiq-components-notification-center.mjs +16 -16
- package/fesm2022/koobiq-components-overflow-items.mjs +16 -16
- package/fesm2022/koobiq-components-popover.mjs +18 -18
- package/fesm2022/koobiq-components-popover.mjs.map +1 -1
- package/fesm2022/koobiq-components-progress-bar.mjs +13 -13
- package/fesm2022/koobiq-components-progress-spinner.mjs +13 -13
- package/fesm2022/koobiq-components-radio.mjs +10 -10
- package/fesm2022/koobiq-components-resizer.mjs +10 -10
- package/fesm2022/koobiq-components-risk-level.mjs +7 -7
- package/fesm2022/koobiq-components-scrollbar.mjs +10 -10
- package/fesm2022/koobiq-components-search-expandable.mjs +55 -28
- package/fesm2022/koobiq-components-search-expandable.mjs.map +1 -1
- package/fesm2022/koobiq-components-select.mjs +16 -14
- package/fesm2022/koobiq-components-select.mjs.map +1 -1
- package/fesm2022/koobiq-components-sidebar.mjs +13 -13
- package/fesm2022/koobiq-components-sidepanel.mjs +166 -61
- package/fesm2022/koobiq-components-sidepanel.mjs.map +1 -1
- package/fesm2022/koobiq-components-skeleton.mjs +37 -0
- package/fesm2022/koobiq-components-skeleton.mjs.map +1 -0
- package/fesm2022/koobiq-components-split-button.mjs +7 -7
- package/fesm2022/koobiq-components-splitter.mjs +16 -16
- package/fesm2022/koobiq-components-table.mjs +10 -10
- package/fesm2022/koobiq-components-tabs.mjs +52 -52
- package/fesm2022/koobiq-components-tags.mjs +50 -35
- package/fesm2022/koobiq-components-tags.mjs.map +1 -1
- package/fesm2022/koobiq-components-textarea.mjs +7 -7
- package/fesm2022/koobiq-components-time-range.mjs +22 -22
- package/fesm2022/koobiq-components-timepicker.mjs +10 -10
- package/fesm2022/koobiq-components-timezone.mjs +22 -22
- package/fesm2022/koobiq-components-title.mjs +7 -7
- package/fesm2022/koobiq-components-toast.mjs +16 -16
- package/fesm2022/koobiq-components-toggle.mjs +7 -7
- package/fesm2022/koobiq-components-tooltip.mjs +24 -16
- package/fesm2022/koobiq-components-tooltip.mjs.map +1 -1
- package/fesm2022/koobiq-components-top-bar.mjs +13 -13
- package/fesm2022/koobiq-components-tree-select.mjs +11 -26
- package/fesm2022/koobiq-components-tree-select.mjs.map +1 -1
- package/fesm2022/koobiq-components-tree.mjs +53 -43
- package/fesm2022/koobiq-components-tree.mjs.map +1 -1
- package/fesm2022/koobiq-components-username.mjs +27 -27
- package/file-upload/dropzone.d.ts +147 -0
- package/file-upload/dropzone.scss +57 -0
- package/file-upload/file-upload.d.ts +3 -0
- package/file-upload/multiple-file-upload.component.d.ts +11 -1
- package/file-upload/multiple-file-upload.component.scss +1 -1
- package/file-upload/primitives/file-drop.d.ts +23 -4
- package/file-upload/public-api.d.ts +1 -0
- package/file-upload/single-file-upload.component.d.ts +11 -1
- package/form-field/_form-field-theme.scss +2 -2
- package/form-field/form-field-control.d.ts +2 -0
- package/form-field/form-field.scss +0 -1
- package/icon/icon-button.scss +5 -4
- package/inline-edit/inline-edit-tokens.scss +1 -1
- package/inline-edit/inline-edit.d.ts +2 -2
- package/inline-edit/inline-edit.scss +1 -1
- package/list/list-selection.component.d.ts +1 -0
- package/package.json +9 -4
- package/popover/_popover-theme.scss +1 -1
- package/schematics/ng-add/index.js +2 -2
- package/search-expandable/search-expandable.d.ts +19 -4
- package/select/select.component.d.ts +2 -1
- package/sidepanel/_sidepanel-theme.scss +10 -0
- package/sidepanel/sidepanel-animations.d.ts +7 -1
- package/sidepanel/sidepanel-container.component.d.ts +12 -2
- package/sidepanel/sidepanel-directives.d.ts +8 -0
- package/sidepanel/sidepanel-ref.d.ts +12 -0
- package/sidepanel/sidepanel-tokens.scss +5 -3
- package/sidepanel/sidepanel.scss +78 -18
- package/sidepanel/sidepanel.service.d.ts +2 -0
- package/skeleton/index.d.ts +2 -0
- package/skeleton/module.d.ts +7 -0
- package/skeleton/skeleton.d.ts +8 -0
- package/skeleton/skeleton.scss +41 -0
- package/tags/tag-list.component.d.ts +7 -1
- package/tags/tag.component.d.ts +2 -0
- package/tooltip/tooltip.component.d.ts +8 -0
- package/tree/tree-selection.component.d.ts +2 -1
- package/tree-select/tree-select.component.d.ts +2 -1
|
@@ -85,11 +85,11 @@ class KbqUsernamePipe {
|
|
|
85
85
|
});
|
|
86
86
|
return result.trim();
|
|
87
87
|
}
|
|
88
|
-
/** @nocollapse */ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.2.
|
|
89
|
-
/** @nocollapse */ static { this.ɵpipe = i0.ɵɵngDeclarePipe({ minVersion: "14.0.0", version: "19.2.
|
|
90
|
-
/** @nocollapse */ static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "19.2.
|
|
88
|
+
/** @nocollapse */ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.2.18", ngImport: i0, type: KbqUsernamePipe, deps: [], target: i0.ɵɵFactoryTarget.Pipe }); }
|
|
89
|
+
/** @nocollapse */ static { this.ɵpipe = i0.ɵɵngDeclarePipe({ minVersion: "14.0.0", version: "19.2.18", ngImport: i0, type: KbqUsernamePipe, isStandalone: true, name: "kbqUsername" }); }
|
|
90
|
+
/** @nocollapse */ static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "19.2.18", ngImport: i0, type: KbqUsernamePipe, providedIn: 'root' }); }
|
|
91
91
|
}
|
|
92
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.
|
|
92
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.18", ngImport: i0, type: KbqUsernamePipe, decorators: [{
|
|
93
93
|
type: Injectable,
|
|
94
94
|
args: [{ providedIn: 'root' }]
|
|
95
95
|
}, {
|
|
@@ -129,11 +129,11 @@ class KbqUsernameCustomPipe {
|
|
|
129
129
|
});
|
|
130
130
|
return result.trim();
|
|
131
131
|
}
|
|
132
|
-
/** @nocollapse */ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.2.
|
|
133
|
-
/** @nocollapse */ static { this.ɵpipe = i0.ɵɵngDeclarePipe({ minVersion: "14.0.0", version: "19.2.
|
|
134
|
-
/** @nocollapse */ static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "19.2.
|
|
132
|
+
/** @nocollapse */ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.2.18", ngImport: i0, type: KbqUsernameCustomPipe, deps: [], target: i0.ɵɵFactoryTarget.Pipe }); }
|
|
133
|
+
/** @nocollapse */ static { this.ɵpipe = i0.ɵɵngDeclarePipe({ minVersion: "14.0.0", version: "19.2.18", ngImport: i0, type: KbqUsernameCustomPipe, isStandalone: true, name: "kbqUsernameCustom" }); }
|
|
134
|
+
/** @nocollapse */ static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "19.2.18", ngImport: i0, type: KbqUsernameCustomPipe, providedIn: 'root' }); }
|
|
135
135
|
}
|
|
136
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.
|
|
136
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.18", ngImport: i0, type: KbqUsernameCustomPipe, decorators: [{
|
|
137
137
|
type: Injectable,
|
|
138
138
|
args: [{ providedIn: 'root' }]
|
|
139
139
|
}, {
|
|
@@ -147,10 +147,10 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.17", ngImpo
|
|
|
147
147
|
const baseClass = 'kbq-username';
|
|
148
148
|
/** Styles the primary part of the username (e.g. full name). */
|
|
149
149
|
class KbqUsernamePrimary {
|
|
150
|
-
/** @nocollapse */ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.2.
|
|
151
|
-
/** @nocollapse */ static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "19.2.
|
|
150
|
+
/** @nocollapse */ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.2.18", ngImport: i0, type: KbqUsernamePrimary, deps: [], target: i0.ɵɵFactoryTarget.Directive }); }
|
|
151
|
+
/** @nocollapse */ static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "19.2.18", type: KbqUsernamePrimary, isStandalone: true, selector: "[kbqUsernamePrimary]", host: { classAttribute: "kbq-username__primary" }, exportAs: ["kbqUsernamePrimary"], ngImport: i0 }); }
|
|
152
152
|
}
|
|
153
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.
|
|
153
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.18", ngImport: i0, type: KbqUsernamePrimary, decorators: [{
|
|
154
154
|
type: Directive,
|
|
155
155
|
args: [{
|
|
156
156
|
selector: '[kbqUsernamePrimary]',
|
|
@@ -162,10 +162,10 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.17", ngImpo
|
|
|
162
162
|
}] });
|
|
163
163
|
/** Styles the secondary part. */
|
|
164
164
|
class KbqUsernameSecondary {
|
|
165
|
-
/** @nocollapse */ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.2.
|
|
166
|
-
/** @nocollapse */ static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "19.2.
|
|
165
|
+
/** @nocollapse */ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.2.18", ngImport: i0, type: KbqUsernameSecondary, deps: [], target: i0.ɵɵFactoryTarget.Directive }); }
|
|
166
|
+
/** @nocollapse */ static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "19.2.18", type: KbqUsernameSecondary, isStandalone: true, selector: "[kbqUsernameSecondary]", host: { classAttribute: "kbq-username__secondary" }, exportAs: ["kbqUsernameSecondary"], ngImport: i0 }); }
|
|
167
167
|
}
|
|
168
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.
|
|
168
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.18", ngImport: i0, type: KbqUsernameSecondary, decorators: [{
|
|
169
169
|
type: Directive,
|
|
170
170
|
args: [{
|
|
171
171
|
selector: '[kbqUsernameSecondary]',
|
|
@@ -177,10 +177,10 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.17", ngImpo
|
|
|
177
177
|
}] });
|
|
178
178
|
/** Styles a secondary hint. */
|
|
179
179
|
class KbqUsernameSecondaryHint {
|
|
180
|
-
/** @nocollapse */ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.2.
|
|
181
|
-
/** @nocollapse */ static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "19.2.
|
|
180
|
+
/** @nocollapse */ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.2.18", ngImport: i0, type: KbqUsernameSecondaryHint, deps: [], target: i0.ɵɵFactoryTarget.Directive }); }
|
|
181
|
+
/** @nocollapse */ static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "19.2.18", type: KbqUsernameSecondaryHint, isStandalone: true, selector: "[kbqUsernameSecondaryHint]", host: { classAttribute: "kbq-username__secondary-hint" }, exportAs: ["kbqUsernameSecondaryHint"], ngImport: i0 }); }
|
|
182
182
|
}
|
|
183
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.
|
|
183
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.18", ngImport: i0, type: KbqUsernameSecondaryHint, decorators: [{
|
|
184
184
|
type: Directive,
|
|
185
185
|
args: [{
|
|
186
186
|
selector: '[kbqUsernameSecondaryHint]',
|
|
@@ -192,10 +192,10 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.17", ngImpo
|
|
|
192
192
|
}] });
|
|
193
193
|
/** Custom content for `KbqUsername`, overrides default view. */
|
|
194
194
|
class KbqUsernameCustomView {
|
|
195
|
-
/** @nocollapse */ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.2.
|
|
196
|
-
/** @nocollapse */ static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "19.2.
|
|
195
|
+
/** @nocollapse */ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.2.18", ngImport: i0, type: KbqUsernameCustomView, deps: [], target: i0.ɵɵFactoryTarget.Directive }); }
|
|
196
|
+
/** @nocollapse */ static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "19.2.18", type: KbqUsernameCustomView, isStandalone: true, selector: "kbq-username-custom-view, [kbq-username-custom-view]", host: { classAttribute: "kbq-username__custom-view" }, exportAs: ["kbqUsernameCustomView"], ngImport: i0 }); }
|
|
197
197
|
}
|
|
198
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.
|
|
198
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.18", ngImport: i0, type: KbqUsernameCustomView, decorators: [{
|
|
199
199
|
type: Directive,
|
|
200
200
|
args: [{
|
|
201
201
|
selector: 'kbq-username-custom-view, [kbq-username-custom-view]',
|
|
@@ -246,10 +246,10 @@ class KbqUsername {
|
|
|
246
246
|
return [this.type(), this.mode()].map((modificator) => `${baseClass}_${modificator}`).join(' ');
|
|
247
247
|
});
|
|
248
248
|
}
|
|
249
|
-
/** @nocollapse */ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.2.
|
|
250
|
-
/** @nocollapse */ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "19.2.
|
|
249
|
+
/** @nocollapse */ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.2.18", ngImport: i0, type: KbqUsername, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
|
|
250
|
+
/** @nocollapse */ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "19.2.18", type: KbqUsername, isStandalone: true, selector: "kbq-username", inputs: { userInfo: { classPropertyName: "userInfo", publicName: "userInfo", isSignal: true, isRequired: false, transformFunction: null }, isCompact: { classPropertyName: "isCompact", publicName: "isCompact", isSignal: true, isRequired: false, transformFunction: null }, fullNameFormat: { classPropertyName: "fullNameFormat", publicName: "fullNameFormat", isSignal: true, isRequired: false, transformFunction: null }, mode: { classPropertyName: "mode", publicName: "mode", isSignal: true, isRequired: false, transformFunction: null }, type: { classPropertyName: "type", publicName: "type", isSignal: true, isRequired: false, transformFunction: null } }, host: { properties: { "class": "class()" }, classAttribute: "kbq-username" }, queries: [{ propertyName: "customView", first: true, predicate: KbqUsernameCustomView, descendants: true, isSignal: true }], exportAs: ["kbqUsername"], ngImport: i0, template: "@let profile = userInfo();\n<ng-content select=\"kbq-username-custom-view,[kbq-username-custom-view]\" />\n\n@if (!customView() && profile) {\n @let fullName = profile | kbqUsername: fullNameFormat();\n\n @if (!isCompact()) {\n @if (hasFullName()) {\n <span kbq-title kbqUsernamePrimary>{{ fullName }}</span>\n }\n\n @if (profile.login) {\n <span kbq-title kbqUsernameSecondary>\n {{ profile.login }}\n\n @if (profile.site) {\n <span kbqUsernameSecondaryHint>({{ profile.site }})</span>\n }\n </span>\n }\n } @else {\n <span kbq-title kbqUsernamePrimary>\n @if (hasFullName()) {\n <span>{{ fullName }}</span>\n }\n @if (!hasFullName() && profile.login) {\n {{ profile.login }}\n }\n\n @if (profile.site) {\n <span kbqUsernameSecondaryHint> ({{ profile.site }})</span>\n }\n </span>\n }\n}\n", styles: ["@keyframes kbq-progress{0%{background-position:0 0}to{background-position:64px 0}}.kbq-progress.kbq-button,.kbq-progress.kbq-button-icon{position:relative}.kbq-progress.kbq-button:after,.kbq-progress.kbq-button-icon:after{content:\"\";position:absolute;border-radius:inherit;inset:0;background:linear-gradient(135deg,#0000000a 12px,#ffffff1a 12px 22px,#0000000a 22px 34px,#ffffff1a 34px) repeat;background-size:32px 32px;animation:kbq-progress 1s linear infinite}.kbq-group{display:flex;flex-direction:row}.kbq-group .kbq-group_justified>.kbq-group-item{width:100%}.kbq-group .kbq-group-item+.kbq-group-item{margin-left:calc(-1 * var(--kbq-size-border-width))}.kbq-group>.kbq-group-item:first-child:not(:last-child){border-bottom-right-radius:0;border-top-right-radius:0}.kbq-group>.kbq-group-item:first-child:not(:last-child)>.kbq-form-field__container{border-bottom-right-radius:0;border-top-right-radius:0}.kbq-group>.kbq-group-item:last-child:not(:first-child){border-bottom-left-radius:0;border-top-left-radius:0}.kbq-group>.kbq-group-item:last-child:not(:first-child)>.kbq-form-field__container{border-bottom-left-radius:0;border-top-left-radius:0}.kbq-group>.kbq-group-item:not(:first-child):not(:last-child){border-radius:0}.kbq-group>.kbq-group-item:not(:first-child):not(:last-child)>.kbq-form-field__container{border-radius:0}.kbq-vertical-group{display:flex;flex-direction:column}.kbq-vertical-group>.kbq-group-item:first-child:not(:last-child){border-bottom-right-radius:0;border-bottom-left-radius:0;border-top-right-radius:var(--kbq-size-border-radius)}.kbq-vertical-group>.kbq-group-item:first-child:not(:last-child)>.kbq-form-field__container{border-bottom-right-radius:0;border-bottom-left-radius:0}.kbq-vertical-group>.kbq-group-item:last-child:not(:first-child){border-top-right-radius:0;border-top-left-radius:0;border-bottom-left-radius:var(--kbq-size-border-radius)}.kbq-vertical-group>.kbq-group-item:last-child:not(:first-child)>.kbq-form-field__container{border-top-right-radius:0;border-top-left-radius:0}.kbq-vertical-group>.kbq-group-item:not(:first-child):not(:last-child){border-radius:0}.kbq-vertical-group>.kbq-group-item:not(:first-child):not(:last-child)>.kbq-form-field__container{border-radius:0}.kbq-vertical-group .kbq-group-item+.kbq-group-item{margin-top:calc(-1 * var(--kbq-size-border-width))}.kbq-truncate-line{white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.kbq-no-select{-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none}.kbq-username{color:var(--kbq-username-primary-color)}.kbq-username .kbq-username__secondary,.kbq-username .kbq-username__secondary-hint{color:var(--kbq-username-secondary-color)}.kbq-username.kbq-username_default .kbq-username__secondary-hint,.kbq-username.kbq-username_default .kbq-username__primary+.kbq-username__secondary{--kbq-username-secondary-color: var(--kbq-foreground-contrast-secondary)}.kbq-username.kbq-username_error{--kbq-username-primary-color: var(--kbq-foreground-error);--kbq-username-secondary-color: var(--kbq-foreground-error)}.kbq-username.kbq-username_accented{--kbq-username-primary-color: var(--kbq-foreground-contrast);--kbq-username-secondary-color: var(--kbq-foreground-contrast)}.kbq-username.kbq-username_inherit{--kbq-username-primary-color: inherit;--kbq-username-secondary-color: inherit}.kbq-username{font-size:var(--kbq-typography-text-normal-font-size);font-style:var(--kbq-typography-text-normal-font-style);font-weight:var(--kbq-typography-text-normal-font-weight);line-height:var(--kbq-typography-text-normal-line-height);font-family:var(--kbq-typography-text-normal-font-family);text-transform:var(--kbq-typography-text-normal-text-transform);font-feature-settings:var(--kbq-typography-text-normal-font-feature-settings);letter-spacing:var(--kbq-typography-text-normal-letter-spacing)}.kbq-username.kbq-username_accented .kbq-username__primary{font-size:var(--kbq-typography-text-normal-strong-font-size);font-style:var(--kbq-typography-text-normal-strong-font-style);font-weight:var(--kbq-typography-text-normal-strong-font-weight);line-height:var(--kbq-typography-text-normal-strong-line-height);font-family:var(--kbq-typography-text-normal-strong-font-family);text-transform:var(--kbq-typography-text-normal-strong-text-transform);font-feature-settings:var(--kbq-typography-text-normal-strong-font-feature-settings);letter-spacing:var(--kbq-typography-text-normal-strong-letter-spacing)}.kbq-username.kbq-username_stacked:not(:has(>.kbq-username__custom-view)),.kbq-username.kbq-username_stacked>.kbq-username__custom-view{display:flex;flex-flow:column nowrap;justify-content:flex-start;align-items:normal;gap:var(--kbq-username-vertical-gap)}.kbq-username.kbq-username_inline:not(.kbq-username_inherit):not(:has(>.kbq-username__custom-view)),.kbq-username.kbq-username_inline:not(.kbq-username_inherit)>.kbq-username__custom-view{display:flex;flex-flow:row nowrap;justify-content:flex-start;align-items:baseline}.kbq-username.kbq-username_inline:not(.kbq-username_inherit):not(:has(>.kbq-username__custom-view)) .kbq-username__primary+.kbq-username__secondary,.kbq-username.kbq-username_inline:not(.kbq-username_inherit)>.kbq-username__custom-view .kbq-username__primary+.kbq-username__secondary{margin-left:var(--kbq-username-horizontal-gap)}[dir=rtl] .kbq-username.kbq-username_inline:not(.kbq-username_inherit):not(:has(>.kbq-username__custom-view)) .kbq-username__primary+.kbq-username__secondary,[dir=rtl] .kbq-username.kbq-username_inline:not(.kbq-username_inherit)>.kbq-username__custom-view .kbq-username__primary+.kbq-username__secondary{margin-left:0;margin-right:var(--kbq-username-horizontal-gap)}.kbq-username.kbq-username_text:not(:has(>.kbq-username__custom-view)),.kbq-username.kbq-username_text>.kbq-username__custom-view{display:inline}.kbq-username.kbq-username_stacked:not(:has(>.kbq-username__custom-view)) .kbq-username__primary,.kbq-username.kbq-username_stacked:not(:has(>.kbq-username__custom-view)) .kbq-username__secondary,.kbq-username.kbq-username_stacked>.kbq-username__custom-view .kbq-username__primary,.kbq-username.kbq-username_stacked>.kbq-username__custom-view .kbq-username__secondary,.kbq-username.kbq-username_inline:not(:has(>.kbq-username__custom-view)) .kbq-username__primary,.kbq-username.kbq-username_inline:not(:has(>.kbq-username__custom-view)) .kbq-username__secondary,.kbq-username.kbq-username_inline>.kbq-username__custom-view .kbq-username__primary,.kbq-username.kbq-username_inline>.kbq-username__custom-view .kbq-username__secondary{white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.kbq-username.kbq-username_inherit:not(:has(>.kbq-username__custom-view)),.kbq-username.kbq-username_inherit>.kbq-username__custom-view{font:inherit;display:inherit}\n", ":where(.kbq-username){--kbq-username-primary-color: var(--kbq-foreground-contrast);--kbq-username-secondary-color: inherit;--kbq-username-vertical-gap: var(--kbq-size-xxs);--kbq-username-horizontal-gap: var(--kbq-size-xxs)}\n"], dependencies: [{ kind: "ngmodule", type: KbqTitleModule }, { kind: "directive", type: i1.KbqTitleDirective, selector: "[kbq-title]", exportAs: ["kbqTitle"] }, { kind: "pipe", type: KbqUsernamePipe, name: "kbqUsername" }, { kind: "directive", type: KbqUsernamePrimary, selector: "[kbqUsernamePrimary]", exportAs: ["kbqUsernamePrimary"] }, { kind: "directive", type: KbqUsernameSecondary, selector: "[kbqUsernameSecondary]", exportAs: ["kbqUsernameSecondary"] }, { kind: "directive", type: KbqUsernameSecondaryHint, selector: "[kbqUsernameSecondaryHint]", exportAs: ["kbqUsernameSecondaryHint"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None }); }
|
|
251
251
|
}
|
|
252
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.
|
|
252
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.18", ngImport: i0, type: KbqUsername, decorators: [{
|
|
253
253
|
type: Component,
|
|
254
254
|
args: [{ selector: 'kbq-username', exportAs: 'kbqUsername', imports: [
|
|
255
255
|
KbqTitleModule,
|
|
@@ -272,8 +272,8 @@ const COMPONENTS = [
|
|
|
272
272
|
KbqUsernamePipe
|
|
273
273
|
];
|
|
274
274
|
class KbqUsernameModule {
|
|
275
|
-
/** @nocollapse */ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.2.
|
|
276
|
-
/** @nocollapse */ static { this.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "19.2.
|
|
275
|
+
/** @nocollapse */ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.2.18", ngImport: i0, type: KbqUsernameModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule }); }
|
|
276
|
+
/** @nocollapse */ static { this.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "19.2.18", ngImport: i0, type: KbqUsernameModule, imports: [KbqUsername,
|
|
277
277
|
KbqUsernameCustomView,
|
|
278
278
|
KbqUsernamePrimary,
|
|
279
279
|
KbqUsernameSecondary,
|
|
@@ -284,9 +284,9 @@ class KbqUsernameModule {
|
|
|
284
284
|
KbqUsernameSecondary,
|
|
285
285
|
KbqUsernameCustomPipe,
|
|
286
286
|
KbqUsernamePipe] }); }
|
|
287
|
-
/** @nocollapse */ static { this.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "19.2.
|
|
287
|
+
/** @nocollapse */ static { this.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "19.2.18", ngImport: i0, type: KbqUsernameModule, imports: [KbqUsername] }); }
|
|
288
288
|
}
|
|
289
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.
|
|
289
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.18", ngImport: i0, type: KbqUsernameModule, decorators: [{
|
|
290
290
|
type: NgModule,
|
|
291
291
|
args: [{
|
|
292
292
|
imports: COMPONENTS,
|
|
@@ -0,0 +1,147 @@
|
|
|
1
|
+
import { OverlayRef } from '@angular/cdk/overlay';
|
|
2
|
+
import { InjectionToken, OnDestroy, TemplateRef } from '@angular/core';
|
|
3
|
+
import { KbqDefaultSizes } from '@koobiq/components/core';
|
|
4
|
+
import { KbqEmptyState } from '@koobiq/components/empty-state';
|
|
5
|
+
import { KbqMultipleFileUploadComponent } from './multiple-file-upload.component';
|
|
6
|
+
import { KbqDrop } from './primitives';
|
|
7
|
+
import { KbqSingleFileUploadComponent } from './single-file-upload.component';
|
|
8
|
+
import * as i0 from "@angular/core";
|
|
9
|
+
import * as i1 from "@angular/cdk/a11y";
|
|
10
|
+
/** Dropzone overlay content configuration. */
|
|
11
|
+
export type KbqDropzoneData = Partial<{
|
|
12
|
+
/** Optional caption text displayed below the title. */
|
|
13
|
+
caption: string;
|
|
14
|
+
/** Visual size of the dropzone empty state content. */
|
|
15
|
+
size: KbqDefaultSizes;
|
|
16
|
+
/** Title text displayed in the dropzone; falls back to localized default. */
|
|
17
|
+
title: string;
|
|
18
|
+
/** Whether focus should be automatically captured when the overlay opens. */
|
|
19
|
+
autoCapture: boolean;
|
|
20
|
+
}>;
|
|
21
|
+
/** Injection token that can be used to access the data that was passed in to a modal. */
|
|
22
|
+
export declare const KBQ_DROPZONE_DATA: InjectionToken<Partial<{
|
|
23
|
+
/** Optional caption text displayed below the title. */
|
|
24
|
+
caption: string;
|
|
25
|
+
/** Visual size of the dropzone empty state content. */
|
|
26
|
+
size: KbqDefaultSizes;
|
|
27
|
+
/** Title text displayed in the dropzone; falls back to localized default. */
|
|
28
|
+
title: string;
|
|
29
|
+
/** Whether focus should be automatically captured when the overlay opens. */
|
|
30
|
+
autoCapture: boolean;
|
|
31
|
+
}>>;
|
|
32
|
+
/**
|
|
33
|
+
* Determines if a mouse event occurred outside the viewport boundaries.
|
|
34
|
+
* @docs-private
|
|
35
|
+
*/
|
|
36
|
+
export declare const isOutsideViewport: ({ event, innerWidth, innerHeight, xAxisMinThreshold, yAxisMinThreshold }: {
|
|
37
|
+
event: MouseEvent;
|
|
38
|
+
innerWidth: number;
|
|
39
|
+
innerHeight: number;
|
|
40
|
+
xAxisMinThreshold: number;
|
|
41
|
+
yAxisMinThreshold: number;
|
|
42
|
+
}) => boolean;
|
|
43
|
+
/**
|
|
44
|
+
* Service that provides full-screen drag-and-drop overlay functionality.
|
|
45
|
+
*/
|
|
46
|
+
export declare class KbqFullScreenDropzoneService extends KbqDrop implements OnDestroy {
|
|
47
|
+
/** Completely terminates all subscriptions when emitted */
|
|
48
|
+
private readonly dropAbort;
|
|
49
|
+
private readonly overlay;
|
|
50
|
+
private readonly window;
|
|
51
|
+
private readonly injector;
|
|
52
|
+
private readonly ngZone;
|
|
53
|
+
private overlayRef?;
|
|
54
|
+
constructor();
|
|
55
|
+
ngOnDestroy(): void;
|
|
56
|
+
/**
|
|
57
|
+
* Initializes drag-and-drop event listeners on the document body.
|
|
58
|
+
* @param config - Dropzone configuration
|
|
59
|
+
*/
|
|
60
|
+
init(config?: KbqDropzoneData): void;
|
|
61
|
+
/** Stops all drag-and-drop event listeners and cleans up subscriptions. */
|
|
62
|
+
stop(): void;
|
|
63
|
+
/**
|
|
64
|
+
* Opens the dropzone overlay.
|
|
65
|
+
* @param config - Dropzone configuration
|
|
66
|
+
*/
|
|
67
|
+
open(config?: KbqDropzoneData): void;
|
|
68
|
+
/** Closes and disposes the overlay. */
|
|
69
|
+
close(): void;
|
|
70
|
+
/** @docs-private */
|
|
71
|
+
onDrop(event: DragEvent): void;
|
|
72
|
+
/** @docs-private */
|
|
73
|
+
protected createOverlay(): OverlayRef;
|
|
74
|
+
/** @see https://bugs.webkit.org/show_bug.cgi?id=66547 */
|
|
75
|
+
private onDragLeave;
|
|
76
|
+
static ɵfac: i0.ɵɵFactoryDeclaration<KbqFullScreenDropzoneService, never>;
|
|
77
|
+
static ɵprov: i0.ɵɵInjectableDeclaration<KbqFullScreenDropzoneService>;
|
|
78
|
+
}
|
|
79
|
+
/**
|
|
80
|
+
* Directive that turns an element into a local drag-and-drop zone.
|
|
81
|
+
*
|
|
82
|
+
* Displays an overlay over the host element on drag enter, handles drag events,
|
|
83
|
+
* and emits dropped files to a connected file upload component.
|
|
84
|
+
*/
|
|
85
|
+
export declare class KbqLocalDropzone extends KbqDrop {
|
|
86
|
+
/** File upload component to connect dropped files to */
|
|
87
|
+
readonly connectedTo: import("@angular/core").InputSignal<KbqMultipleFileUploadComponent | KbqSingleFileUploadComponent | undefined>;
|
|
88
|
+
private readonly elementRef;
|
|
89
|
+
private readonly rects;
|
|
90
|
+
private readonly overlay;
|
|
91
|
+
private readonly viewContainerRef;
|
|
92
|
+
private readonly injector;
|
|
93
|
+
private readonly ngZone;
|
|
94
|
+
private readonly destroyRef;
|
|
95
|
+
private overlayRef?;
|
|
96
|
+
constructor();
|
|
97
|
+
/** Opens the dropzone overlay positioned over the host element. */
|
|
98
|
+
open(config?: KbqDropzoneData): void;
|
|
99
|
+
/** Closes and disposes the overlay. */
|
|
100
|
+
close(): void;
|
|
101
|
+
/** @docs-private */
|
|
102
|
+
onDrop(event: DragEvent): void;
|
|
103
|
+
/**
|
|
104
|
+
* Initializes drag-and-drop event listeners on the overlay element.
|
|
105
|
+
* Handles dragover, dragleave, and drop events to manage overlay state and file drops.
|
|
106
|
+
*/
|
|
107
|
+
protected init(): void;
|
|
108
|
+
/** Creates an overlay positioned and sized to match the host element. */
|
|
109
|
+
protected createOverlay(): OverlayRef;
|
|
110
|
+
private onDragLeave;
|
|
111
|
+
static ɵfac: i0.ɵɵFactoryDeclaration<KbqLocalDropzone, never>;
|
|
112
|
+
static ɵdir: i0.ɵɵDirectiveDeclaration<KbqLocalDropzone, "[kbqLocalDropzone]", ["kbqLocalDropzone"], { "connectedTo": { "alias": "kbqConnectedTo"; "required": false; "isSignal": true; }; }, {}, never, never, true, never>;
|
|
113
|
+
}
|
|
114
|
+
/** Component that displays an empty state for file upload areas. */
|
|
115
|
+
export declare class KbqFileUploadEmptyState extends KbqEmptyState {
|
|
116
|
+
/** Title text to display below the upload icon */
|
|
117
|
+
title: import("@angular/core").InputSignal<string | undefined>;
|
|
118
|
+
/** Caption text or template to display below the title */
|
|
119
|
+
caption: import("@angular/core").InputSignal<string | TemplateRef<any> | undefined>;
|
|
120
|
+
constructor();
|
|
121
|
+
/** @docs-private */
|
|
122
|
+
protected isTemplateRef(value: string | TemplateRef<any>): value is TemplateRef<any>;
|
|
123
|
+
static ɵfac: i0.ɵɵFactoryDeclaration<KbqFileUploadEmptyState, never>;
|
|
124
|
+
static ɵcmp: i0.ɵɵComponentDeclaration<KbqFileUploadEmptyState, "kbq-file-upload-empty-state", never, { "title": { "alias": "title"; "required": false; "isSignal": true; }; "caption": { "alias": "caption"; "required": false; "isSignal": true; }; }, {}, never, never, true, never>;
|
|
125
|
+
}
|
|
126
|
+
export declare class KbqDropzoneContent {
|
|
127
|
+
/** @docs-private */
|
|
128
|
+
protected readonly localeService: import("@koobiq/components/core").KbqLocaleService | null;
|
|
129
|
+
/** @docs-private */
|
|
130
|
+
protected readonly config: Partial<{
|
|
131
|
+
/** Optional caption text displayed below the title. */
|
|
132
|
+
caption: string;
|
|
133
|
+
/** Visual size of the dropzone empty state content. */
|
|
134
|
+
size: KbqDefaultSizes;
|
|
135
|
+
/** Title text displayed in the dropzone; falls back to localized default. */
|
|
136
|
+
title: string;
|
|
137
|
+
/** Whether focus should be automatically captured when the overlay opens. */
|
|
138
|
+
autoCapture: boolean;
|
|
139
|
+
}> | null;
|
|
140
|
+
private readonly trapFocus;
|
|
141
|
+
private readonly localeId;
|
|
142
|
+
constructor();
|
|
143
|
+
/** @docs-private */
|
|
144
|
+
protected readonly title: import("@angular/core").Signal<any>;
|
|
145
|
+
static ɵfac: i0.ɵɵFactoryDeclaration<KbqDropzoneContent, never>;
|
|
146
|
+
static ɵcmp: i0.ɵɵComponentDeclaration<KbqDropzoneContent, "kbq-dropzone-content", never, {}, {}, never, never, true, [{ directive: typeof i1.CdkTrapFocus; inputs: {}; outputs: {}; }]>;
|
|
147
|
+
}
|
|
@@ -0,0 +1,57 @@
|
|
|
1
|
+
.kbq-dropzone-overlay {
|
|
2
|
+
--kbq-dropzone-padding: var(--kbq-size-s);
|
|
3
|
+
--kbq-dropzone-overlay-background: var(--kbq-background-overlay-theme);
|
|
4
|
+
--kbq-dropzone-component-background: var(--kbq-background-overlay-theme);
|
|
5
|
+
--kbq-dropzone-border-color: var(--kbq-line-theme-fade);
|
|
6
|
+
|
|
7
|
+
padding: var(--kbq-dropzone-padding);
|
|
8
|
+
background-color: var(--kbq-dropzone-overlay-background);
|
|
9
|
+
|
|
10
|
+
opacity: 0;
|
|
11
|
+
transition: opacity 100ms ease-in-out;
|
|
12
|
+
|
|
13
|
+
&.kbq-dropzone-overlay__attached {
|
|
14
|
+
opacity: 1;
|
|
15
|
+
}
|
|
16
|
+
|
|
17
|
+
.kbq-dropzone-content {
|
|
18
|
+
display: flex;
|
|
19
|
+
width: 100%;
|
|
20
|
+
|
|
21
|
+
align-items: center;
|
|
22
|
+
justify-content: center;
|
|
23
|
+
|
|
24
|
+
border-radius: var(--kbq-size-border-radius);
|
|
25
|
+
border: var(--kbq-size-border-width) dashed var(--kbq-dropzone-border-color);
|
|
26
|
+
background-color: var(--kbq-dropzone-component-background);
|
|
27
|
+
|
|
28
|
+
outline: none;
|
|
29
|
+
}
|
|
30
|
+
}
|
|
31
|
+
|
|
32
|
+
.kbq-fullscreen-dropzone {
|
|
33
|
+
--kbq-dropzone-component-background: transparent;
|
|
34
|
+
}
|
|
35
|
+
|
|
36
|
+
.kbq-local-dropzone {
|
|
37
|
+
--kbq-dropzone-overlay-background: transparent;
|
|
38
|
+
|
|
39
|
+
.kbq-empty-state.kbq-multiple-file-upload__empty-state {
|
|
40
|
+
--kbq-empty-state-size-compact-padding-top: 0;
|
|
41
|
+
--kbq-empty-state-size-compact-padding-horizontal: 0;
|
|
42
|
+
--kbq-empty-state-size-compact-padding-bottom: 0;
|
|
43
|
+
|
|
44
|
+
--kbq-empty-state-size-normal-padding-top: 0;
|
|
45
|
+
--kbq-empty-state-size-normal-padding-horizontal: 0;
|
|
46
|
+
--kbq-empty-state-size-normal-padding-bottom: 0;
|
|
47
|
+
|
|
48
|
+
--kbq-empty-state-size-big-padding-top: 0;
|
|
49
|
+
--kbq-empty-state-size-big-padding-horizontal: 0;
|
|
50
|
+
--kbq-empty-state-size-big-padding-bottom: 0;
|
|
51
|
+
}
|
|
52
|
+
}
|
|
53
|
+
|
|
54
|
+
.kbq-empty-state.kbq-multiple-file-upload__empty-state {
|
|
55
|
+
--kbq-empty-state-size-normal-image-margin-bottom: var(--kbq-size-m);
|
|
56
|
+
--kbq-empty-state-size-normal-title-margin-bottom: var(--kbq-size-xs);
|
|
57
|
+
}
|
|
@@ -2,6 +2,7 @@ import { ChangeDetectorRef, DestroyRef, ElementRef, InjectionToken, InputSignal,
|
|
|
2
2
|
import { FormGroupDirective, NgControl, NgForm } from '@angular/forms';
|
|
3
3
|
import { CanUpdateErrorState, ErrorStateMatcher, KbqBaseFileUploadLocaleConfig, KbqEnumValues, KbqMultipleFileUploadLocaleConfig } from '@koobiq/components/core';
|
|
4
4
|
import { BehaviorSubject, Subject } from 'rxjs';
|
|
5
|
+
import { KbqFullScreenDropzoneService } from './dropzone';
|
|
5
6
|
import { KbqFileList, KbqFileUploadContext } from './primitives';
|
|
6
7
|
export interface KbqFile extends File {
|
|
7
8
|
fullPath: string;
|
|
@@ -91,6 +92,8 @@ export declare abstract class KbqFileUploadBase<T = KbqBaseFileUploadLocaleConfi
|
|
|
91
92
|
protected readonly defaultErrorStateMatcher: ErrorStateMatcher;
|
|
92
93
|
/** @docs-private */
|
|
93
94
|
protected readonly elementRef: ElementRef<HTMLElement>;
|
|
95
|
+
/** @docs-private */
|
|
96
|
+
protected readonly dropzoneService: KbqFullScreenDropzoneService;
|
|
94
97
|
/** implemented as part of base class. Decided not use mixinErrorState, not to overcomplicate
|
|
95
98
|
* @docs-private */
|
|
96
99
|
updateErrorState(): void;
|
|
@@ -40,6 +40,16 @@ export declare class KbqMultipleFileUploadComponent extends KbqFileUploadBase im
|
|
|
40
40
|
* @default mixed
|
|
41
41
|
*/
|
|
42
42
|
allowed: import("@angular/core").InputSignal<"file" | "folder" | "mixed">;
|
|
43
|
+
/**
|
|
44
|
+
* Controls whether to display fullscreen dropzone.
|
|
45
|
+
* Provide configuration object to enable, or undefined to disable.
|
|
46
|
+
*/
|
|
47
|
+
fullScreenDropZone: import("@angular/core").InputSignal<boolean | Partial<{
|
|
48
|
+
caption: string;
|
|
49
|
+
size: import("@koobiq/components/core").KbqDefaultSizes;
|
|
50
|
+
title: string;
|
|
51
|
+
autoCapture: boolean;
|
|
52
|
+
}> | undefined>;
|
|
43
53
|
/** Optional configuration to override default labels with localized text.*/
|
|
44
54
|
readonly localeConfig: import("@angular/core").InputSignal<Partial<KbqMultipleFileUploadLocaleConfig> | undefined>;
|
|
45
55
|
/** Emits an event containing updated file list.
|
|
@@ -124,5 +134,5 @@ export declare class KbqMultipleFileUploadComponent extends KbqFileUploadBase im
|
|
|
124
134
|
private validateFile;
|
|
125
135
|
private onFileAdded;
|
|
126
136
|
static ɵfac: i0.ɵɵFactoryDeclaration<KbqMultipleFileUploadComponent, never>;
|
|
127
|
-
static ɵcmp: i0.ɵɵComponentDeclaration<KbqMultipleFileUploadComponent, "kbq-multiple-file-upload,kbq-file-upload[multiple]", never, { "progressMode": { "alias": "progressMode"; "required": false; }; "accept": { "alias": "accept"; "required": false; }; "errors": { "alias": "errors"; "required": false; }; "size": { "alias": "size"; "required": false; }; "inputId": { "alias": "inputId"; "required": false; }; "customValidation": { "alias": "customValidation"; "required": false; }; "errorStateMatcher": { "alias": "errorStateMatcher"; "required": false; }; "files": { "alias": "files"; "required": false; }; "allowed": { "alias": "allowed"; "required": false; "isSignal": true; }; "localeConfig": { "alias": "localeConfig"; "required": false; "isSignal": true; }; }, { "filesChange": "fileQueueChanged"; "filesAdded": "filesAdded"; "fileRemoved": "fileRemoved"; }, ["customFileIcon", "hint"], ["kbq-hint"], true, [{ directive: typeof i1.KbqFileUploadContext; inputs: { "id": "id"; "disabled": "disabled"; }; outputs: {}; }, { directive: typeof i1.KbqFileList; inputs: {}; outputs: { "listChange": "filesChange"; "itemsAdded": "itemsAdded"; "itemRemoved": "itemRemoved"; }; }]>;
|
|
137
|
+
static ɵcmp: i0.ɵɵComponentDeclaration<KbqMultipleFileUploadComponent, "kbq-multiple-file-upload,kbq-file-upload[multiple]", never, { "progressMode": { "alias": "progressMode"; "required": false; }; "accept": { "alias": "accept"; "required": false; }; "errors": { "alias": "errors"; "required": false; }; "size": { "alias": "size"; "required": false; }; "inputId": { "alias": "inputId"; "required": false; }; "customValidation": { "alias": "customValidation"; "required": false; }; "errorStateMatcher": { "alias": "errorStateMatcher"; "required": false; }; "files": { "alias": "files"; "required": false; }; "allowed": { "alias": "allowed"; "required": false; "isSignal": true; }; "fullScreenDropZone": { "alias": "fullScreenDropZone"; "required": false; "isSignal": true; }; "localeConfig": { "alias": "localeConfig"; "required": false; "isSignal": true; }; }, { "filesChange": "fileQueueChanged"; "filesAdded": "filesAdded"; "fileRemoved": "fileRemoved"; }, ["customFileIcon", "hint"], ["kbq-hint"], true, [{ directive: typeof i1.KbqFileUploadContext; inputs: { "id": "id"; "disabled": "disabled"; }; outputs: {}; }, { directive: typeof i1.KbqFileList; inputs: {}; outputs: { "listChange": "filesChange"; "itemsAdded": "itemsAdded"; "itemRemoved": "itemRemoved"; }; }]>;
|
|
128
138
|
}
|
|
@@ -179,7 +179,7 @@
|
|
|
179
179
|
min-height: var(--kbq-file-upload-size-multiple-big-container-min-height);
|
|
180
180
|
min-width: var(--kbq-file-upload-size-multiple-big-container-min-width);
|
|
181
181
|
|
|
182
|
-
.kbq-
|
|
182
|
+
.kbq-multiple-file-upload__empty-state {
|
|
183
183
|
--kbq-empty-state-size-normal-padding-top: 0;
|
|
184
184
|
--kbq-empty-state-size-normal-padding-bottom: 0;
|
|
185
185
|
--kbq-empty-state-size-normal-image-addon-height: 4px;
|
|
@@ -1,16 +1,35 @@
|
|
|
1
1
|
import { KbqFile } from '../file-upload';
|
|
2
2
|
import * as i0 from "@angular/core";
|
|
3
|
-
export declare class
|
|
4
|
-
/**
|
|
5
|
-
|
|
3
|
+
export declare class KbqDrop {
|
|
4
|
+
/** @docs-private */
|
|
5
|
+
isSafari: boolean;
|
|
6
|
+
/**
|
|
7
|
+
* Controls whether drag-and-drop functionality is enabled.
|
|
8
|
+
* When true, all drag events are filtered out and ignored.
|
|
9
|
+
*/
|
|
10
|
+
readonly disabled: import("@angular/core").ModelSignal<boolean>;
|
|
6
11
|
/** Emits an event when file items were dropped. */
|
|
7
12
|
readonly filesDropped: import("@angular/core").OutputEmitterRef<KbqFile[]>;
|
|
8
13
|
/** @docs-private */
|
|
14
|
+
protected onDrop(event: DragEvent): void;
|
|
15
|
+
static ɵfac: i0.ɵɵFactoryDeclaration<KbqDrop, never>;
|
|
16
|
+
static ɵdir: i0.ɵɵDirectiveDeclaration<KbqDrop, never, never, { "disabled": { "alias": "disabled"; "required": false; "isSignal": true; }; }, { "disabled": "disabledChange"; "filesDropped": "filesDropped"; }, never, never, true, never>;
|
|
17
|
+
}
|
|
18
|
+
export declare class KbqFileDropDirective extends KbqDrop {
|
|
19
|
+
/** Flag that controls css-class modifications on drag events. */
|
|
20
|
+
protected readonly dragover: import("@angular/core").WritableSignal<boolean>;
|
|
21
|
+
private readonly ngZone;
|
|
22
|
+
private readonly nativeElement;
|
|
23
|
+
private readonly destroyRef;
|
|
24
|
+
constructor();
|
|
25
|
+
onDragEnter(event: DragEvent): void;
|
|
26
|
+
/** @docs-private */
|
|
9
27
|
onDragOver(event: DragEvent): void;
|
|
10
28
|
/** @docs-private */
|
|
11
29
|
onDragLeave(event: DragEvent): void;
|
|
12
30
|
/** @docs-private */
|
|
13
31
|
onDrop(event: DragEvent): void;
|
|
32
|
+
private init;
|
|
14
33
|
static ɵfac: i0.ɵɵFactoryDeclaration<KbqFileDropDirective, never>;
|
|
15
|
-
static ɵdir: i0.ɵɵDirectiveDeclaration<KbqFileDropDirective, "[kbqFileDrop]", ["kbqFileDrop"], {}, {
|
|
34
|
+
static ɵdir: i0.ɵɵDirectiveDeclaration<KbqFileDropDirective, "[kbqFileDrop]", ["kbqFileDrop"], {}, {}, never, never, true, never>;
|
|
16
35
|
}
|
|
@@ -38,6 +38,16 @@ export declare class KbqSingleFileUploadComponent extends KbqFileUploadBase impl
|
|
|
38
38
|
* @default mixed
|
|
39
39
|
*/
|
|
40
40
|
allowed: import("@angular/core").InputSignal<"file" | "folder" | "mixed">;
|
|
41
|
+
/**
|
|
42
|
+
* Controls whether to display fullscreen dropzone.
|
|
43
|
+
* Provide configuration object to enable, or undefined to disable.
|
|
44
|
+
*/
|
|
45
|
+
fullScreenDropZone: import("@angular/core").InputSignal<boolean | Partial<{
|
|
46
|
+
caption: string;
|
|
47
|
+
size: import("@koobiq/components/core").KbqDefaultSizes;
|
|
48
|
+
title: string;
|
|
49
|
+
autoCapture: boolean;
|
|
50
|
+
}> | undefined>;
|
|
41
51
|
/** Optional configuration to override default labels with localized text.*/
|
|
42
52
|
readonly localeConfig: import("@angular/core").InputSignal<Partial<KbqBaseFileUploadLocaleConfig> | undefined>;
|
|
43
53
|
/** Emits an event containing updated file.
|
|
@@ -103,6 +113,6 @@ export declare class KbqSingleFileUploadComponent extends KbqFileUploadBase impl
|
|
|
103
113
|
private mapToFileItem;
|
|
104
114
|
private validateFile;
|
|
105
115
|
static ɵfac: i0.ɵɵFactoryDeclaration<KbqSingleFileUploadComponent, never>;
|
|
106
|
-
static ɵcmp: i0.ɵɵComponentDeclaration<KbqSingleFileUploadComponent, "kbq-single-file-upload,kbq-file-upload:not([multiple])", never, { "progressMode": { "alias": "progressMode"; "required": false; }; "accept": { "alias": "accept"; "required": false; }; "errors": { "alias": "errors"; "required": false; }; "inputId": { "alias": "inputId"; "required": false; }; "customValidation": { "alias": "customValidation"; "required": false; }; "errorStateMatcher": { "alias": "errorStateMatcher"; "required": false; }; "file": { "alias": "file"; "required": false; }; "showFileSize": { "alias": "showFileSize"; "required": false; }; "allowed": { "alias": "allowed"; "required": false; "isSignal": true; }; "localeConfig": { "alias": "localeConfig"; "required": false; "isSignal": true; }; }, { "fileChange": "fileQueueChange"; }, ["hint"], ["[kbq-icon]", "kbq-hint"], true, [{ directive: typeof i1.KbqFileUploadContext; inputs: { "id": "id"; "disabled": "disabled"; "multiple": "multiple"; }; outputs: {}; }, { directive: typeof i1.KbqFileList; inputs: {}; outputs: { "listChange": "fileChange"; }; }]>;
|
|
116
|
+
static ɵcmp: i0.ɵɵComponentDeclaration<KbqSingleFileUploadComponent, "kbq-single-file-upload,kbq-file-upload:not([multiple])", never, { "progressMode": { "alias": "progressMode"; "required": false; }; "accept": { "alias": "accept"; "required": false; }; "errors": { "alias": "errors"; "required": false; }; "inputId": { "alias": "inputId"; "required": false; }; "customValidation": { "alias": "customValidation"; "required": false; }; "errorStateMatcher": { "alias": "errorStateMatcher"; "required": false; }; "file": { "alias": "file"; "required": false; }; "showFileSize": { "alias": "showFileSize"; "required": false; }; "allowed": { "alias": "allowed"; "required": false; "isSignal": true; }; "fullScreenDropZone": { "alias": "fullScreenDropZone"; "required": false; "isSignal": true; }; "localeConfig": { "alias": "localeConfig"; "required": false; "isSignal": true; }; }, { "fileChange": "fileQueueChange"; }, ["hint"], ["[kbq-icon]", "kbq-hint"], true, [{ directive: typeof i1.KbqFileUploadContext; inputs: { "id": "id"; "disabled": "disabled"; "multiple": "multiple"; }; outputs: {}; }, { directive: typeof i1.KbqFileList; inputs: {}; outputs: { "listChange": "fileChange"; }; }]>;
|
|
107
117
|
static ngAcceptInputType_showFileSize: unknown;
|
|
108
118
|
}
|
|
@@ -72,7 +72,7 @@
|
|
|
72
72
|
@include _kbq-form-field-state(states-focused);
|
|
73
73
|
|
|
74
74
|
& .kbq-form-field__container {
|
|
75
|
-
box-shadow: 0 0 0.1px 1px var(--kbq-form-field-states-focused-focus-outline);
|
|
75
|
+
box-shadow: inset 0 0 0.1px 1px var(--kbq-form-field-states-focused-focus-outline);
|
|
76
76
|
}
|
|
77
77
|
}
|
|
78
78
|
|
|
@@ -83,7 +83,7 @@
|
|
|
83
83
|
@include _kbq-form-field-state(states-error);
|
|
84
84
|
|
|
85
85
|
&.cdk-focused .kbq-form-field__container {
|
|
86
|
-
box-shadow: 0 0 0.1px 1px var(--kbq-form-field-states-error-focused-focus-outline);
|
|
86
|
+
box-shadow: inset 0 0 0.1px 1px var(--kbq-form-field-states-error-focused-focus-outline);
|
|
87
87
|
}
|
|
88
88
|
|
|
89
89
|
& .kbq-icon.kbq-empty {
|
package/icon/icon-button.scss
CHANGED
|
@@ -7,10 +7,6 @@
|
|
|
7
7
|
cursor: pointer;
|
|
8
8
|
}
|
|
9
9
|
|
|
10
|
-
&.kbq-disabled:not(button) {
|
|
11
|
-
pointer-events: none;
|
|
12
|
-
}
|
|
13
|
-
|
|
14
10
|
padding: var(--kbq-icon-button-size-normal-vertical-padding) var(--kbq-icon-button-size-normal-horizontal-padding);
|
|
15
11
|
|
|
16
12
|
&.kbq-icon-button_small {
|
|
@@ -18,4 +14,9 @@
|
|
|
18
14
|
}
|
|
19
15
|
}
|
|
20
16
|
|
|
17
|
+
button.kbq-icon-button {
|
|
18
|
+
border: none;
|
|
19
|
+
background-color: unset;
|
|
20
|
+
}
|
|
21
|
+
|
|
21
22
|
@include kbq-icon-button-theme();
|
|
@@ -2,7 +2,7 @@
|
|
|
2
2
|
--kbq-inline-edit-background: transparent;
|
|
3
3
|
--kbq-inline-edit-height: var(--kbq-size-3xl);
|
|
4
4
|
--kbq-inline-edit-padding-horizontal: var(--kbq-size-s);
|
|
5
|
-
--kbq-inline-edit-padding-vertical:
|
|
5
|
+
--kbq-inline-edit-padding-vertical: var(--kbq-size-xs);
|
|
6
6
|
--kbq-inline-edit-panel-shadow: var(--kbq-shadow-popup);
|
|
7
7
|
--kbq-inline-edit-label-color: var(--kbq-foreground-contrast-secondary);
|
|
8
8
|
}
|
|
@@ -108,8 +108,8 @@ export declare class KbqInlineEdit {
|
|
|
108
108
|
protected readonly colors: typeof KbqComponentColors;
|
|
109
109
|
private initialValue;
|
|
110
110
|
constructor();
|
|
111
|
-
/**
|
|
112
|
-
|
|
111
|
+
/** Manually switch mode */
|
|
112
|
+
toggleMode(): void;
|
|
113
113
|
/** @docs-private */
|
|
114
114
|
protected onClick(event: Event): void;
|
|
115
115
|
/** @docs-private */
|
|
@@ -100,7 +100,7 @@
|
|
|
100
100
|
@include _inline-edit-typography();
|
|
101
101
|
|
|
102
102
|
&:not(.kbq-inline-edit_with-label) {
|
|
103
|
-
--kbq-inline-edit-padding-horizontal:
|
|
103
|
+
--kbq-inline-edit-padding-horizontal: var(--kbq-size-m);
|
|
104
104
|
}
|
|
105
105
|
|
|
106
106
|
&.kbq-inline-edit_with-label {
|
|
@@ -104,6 +104,7 @@ export declare class KbqListSelection implements AfterContentInit, AfterViewInit
|
|
|
104
104
|
onKeyDown(event: KeyboardEvent): void;
|
|
105
105
|
reportValueChange(): void;
|
|
106
106
|
emitChangeEvent(option: KbqListOption): void;
|
|
107
|
+
private initializeSelection;
|
|
107
108
|
protected updateTabIndex(): void;
|
|
108
109
|
private onCopyDefaultHandler;
|
|
109
110
|
private resetOptions;
|