c3-components 0.8.7 → 0.9.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/_index.scss +1 -1
- package/fesm2022/c3-components.mjs +328 -204
- package/fesm2022/c3-components.mjs.map +1 -1
- package/lib/c3-dialog/components/c3-dialog-embed-child.component.d.ts +18 -0
- package/lib/c3-dialog/services/c3-dialog.service.d.ts +10 -1
- package/lib/c3-dropdown/styles/_c3-dropdown.scss +19 -4
- package/lib/c3-file-displayer/c3-file-display-card/c3-file-display-card.component.d.ts +1 -1
- package/lib/c3-file-viewer/models/file-metadata.d.ts +7 -0
- package/lib/c3-file-viewer/models/file-viewer.d.ts +5 -5
- package/lib/c3-styles/_c3-core.scss +4 -0
- package/lib/c3-styles/_utils.scss +5 -1
- package/package.json +1 -3
- package/esm2022/c3-components.mjs +0 -5
- package/esm2022/lib/c3-auto-animate/c3-auto-animate.directive.mjs +0 -23
- package/esm2022/lib/c3-dialog/c3-dialog.module.mjs +0 -63
- package/esm2022/lib/c3-dialog/components/c3-dialog-alert.component.mjs +0 -45
- package/esm2022/lib/c3-dialog/components/c3-dialog-confirm.component.mjs +0 -51
- package/esm2022/lib/c3-dialog/components/c3-dialog-embed-child.component.mjs +0 -94
- package/esm2022/lib/c3-dialog/components/c3-dialog-prompt.component.mjs +0 -95
- package/esm2022/lib/c3-dialog/services/c3-dialog.service.mjs +0 -158
- package/esm2022/lib/c3-dropdown/c3-dropdown.module.mjs +0 -20
- package/esm2022/lib/c3-dropdown/components/c3-dropdown.component.mjs +0 -45
- package/esm2022/lib/c3-dropdown/directives/c3-dropdown.trigger.mjs +0 -128
- package/esm2022/lib/c3-expansion/c3-expansion.module.mjs +0 -43
- package/esm2022/lib/c3-expansion/components/c3-expansion/c3-expansion.component.mjs +0 -43
- package/esm2022/lib/c3-expansion/components/c3-expansion-header/c3-expansion-header.component.mjs +0 -25
- package/esm2022/lib/c3-file-displayer/c3-file-display-card/c3-file-display-card.component.mjs +0 -48
- package/esm2022/lib/c3-file-displayer/c3-file-display-grid/c3-file-display-grid.component.mjs +0 -46
- package/esm2022/lib/c3-file-displayer/c3-file-display-icon/c3-file-display-icon.component.mjs +0 -56
- package/esm2022/lib/c3-file-displayer/c3-file-display-list/c3-file-display-list.component.mjs +0 -63
- package/esm2022/lib/c3-file-displayer/c3-file-displayer.module.mjs +0 -43
- package/esm2022/lib/c3-file-viewer/c3-file-viewer.module.mjs +0 -51
- package/esm2022/lib/c3-file-viewer/components/c3-file-viewer-actions/c3-file-viewer-actions.component.mjs +0 -17
- package/esm2022/lib/c3-file-viewer/components/c3-file-viewer-image/c3-file-viewer-image.component.mjs +0 -20
- package/esm2022/lib/c3-file-viewer/components/c3-file-viewer-pdf/c3-file-viewer-pdf.component.mjs +0 -23
- package/esm2022/lib/c3-file-viewer/components/c3-file-viewer-video/c3-file-viewer-video.component.mjs +0 -32
- package/esm2022/lib/c3-file-viewer/components/public/c3-file-viewer/c3-file-viewer.component.mjs +0 -88
- package/esm2022/lib/c3-file-viewer/components/public/c3-file-viewer-dialog/c3-file-viewer-dialog.component.mjs +0 -40
- package/esm2022/lib/c3-file-viewer/components/public/c3-file-viewer-dialog/c3-file-viewer-dialog.mjs +0 -26
- package/esm2022/lib/c3-file-viewer/consts/default.config.mjs +0 -40
- package/esm2022/lib/c3-file-viewer/directives/full-screen.directive.mjs +0 -66
- package/esm2022/lib/c3-file-viewer/models/custom-file-event.model.mjs +0 -7
- package/esm2022/lib/c3-file-viewer/models/file-metadata.mjs +0 -2
- package/esm2022/lib/c3-file-viewer/models/file-viewer-config.model.mjs +0 -2
- package/esm2022/lib/c3-file-viewer/models/file-viewer.mjs +0 -209
- package/esm2022/lib/c3-file-viewer/models/http.client.mjs +0 -2
- package/esm2022/lib/c3-flowing-menu/c3-flowing-menu.module.mjs +0 -32
- package/esm2022/lib/c3-flowing-menu/components/c3-flowing-menu/c3-flowing-menu.component.mjs +0 -41
- package/esm2022/lib/c3-flowing-menu/components/c3-flowing-menu-item/c3-flowing-menu-item.component.mjs +0 -20
- package/esm2022/lib/c3-flowing-menu/components/c3-flowing-menu-item-content/c3-flowing-menu-item-content.component.mjs +0 -11
- package/esm2022/lib/c3-prevent-event/c3-prevent-click-event.directive.mjs +0 -28
- package/esm2022/lib/c3-prevent-event/c3-prevent-keyboard-event.directive.mjs +0 -41
- package/esm2022/lib/c3-prevent-event/c3-stop-click-propagation.directive.mjs +0 -20
- package/esm2022/lib/c3-prevent-event/index.mjs +0 -4
- package/esm2022/lib/c3-safe-url/pipes/c3-safe-url.pipe.mjs +0 -21
- package/esm2022/lib/c3-select-on-focus/c3-select-on-focus.directive.mjs +0 -20
- package/esm2022/lib/c3-signals/c3-boolean-signal.mjs +0 -28
- package/esm2022/lib/c3-trace-card/c3-trace-card.module.mjs +0 -44
- package/esm2022/lib/c3-trace-card/components/c3-trace-card/c3-trace-card.component.mjs +0 -28
- package/esm2022/lib/c3-trace-card/components/c3-trace-card-content/c3-trace-card-content.component.mjs +0 -11
- package/esm2022/lib/c3-trace-card/components/c3-trace-card-title/c3-trace-card-title.component.mjs +0 -11
- package/esm2022/lib/c3-trace-card/directives/align-left.directive.mjs +0 -21
- package/esm2022/lib/c3-trace-card/directives/align-right.directive.mjs +0 -21
- package/esm2022/lib/c3-tree/c3-tree.component.mjs +0 -47
- package/esm2022/public-api.mjs +0 -85
|
@@ -1,158 +0,0 @@
|
|
|
1
|
-
import { Injectable, Injector, effect, inject, } from '@angular/core';
|
|
2
|
-
import { MatDialog, } from '@angular/material/dialog';
|
|
3
|
-
import { ConfirmDialogComponent, } from '../components/c3-dialog-confirm.component';
|
|
4
|
-
import { C3PromptDialogComponent, } from '../components/c3-dialog-prompt.component';
|
|
5
|
-
import 'reflect-metadata';
|
|
6
|
-
import { C3DialogEmbedChildComponent } from '../components/c3-dialog-embed-child.component';
|
|
7
|
-
import { Subject } from 'rxjs';
|
|
8
|
-
import { C3AlertDialogComponent, } from '../components/c3-dialog-alert.component';
|
|
9
|
-
import * as i0 from "@angular/core";
|
|
10
|
-
export class C3DialogService {
|
|
11
|
-
constructor() {
|
|
12
|
-
this.#dialog = inject(MatDialog);
|
|
13
|
-
this._injector = inject(Injector);
|
|
14
|
-
}
|
|
15
|
-
#dialog;
|
|
16
|
-
/**
|
|
17
|
-
* Opens a confirm dialog and returns a promise that resolves to a boolean indicating whether the user accepted or rejected the confirmation.
|
|
18
|
-
*
|
|
19
|
-
* @param {ConfirmConfig} data Configuration options for the confirm dialog. See ConfirmConfig below.
|
|
20
|
-
* @returns {C3ExtendedPromise<boolean>} A promise that resolves to `true` if the user accepted the confirmation, and `false` otherwise.
|
|
21
|
-
*/
|
|
22
|
-
confirm(data) {
|
|
23
|
-
const dialogRef = this.#dialog.open(ConfirmDialogComponent, {
|
|
24
|
-
width: data.width || '250px',
|
|
25
|
-
data: {
|
|
26
|
-
text: data.text,
|
|
27
|
-
reject: {
|
|
28
|
-
color: data.reject && data.reject.color ? data.reject.color : undefined,
|
|
29
|
-
text: (data.reject && data.reject.text) || 'Annuler',
|
|
30
|
-
},
|
|
31
|
-
accept: {
|
|
32
|
-
color: (data.accept && data.accept.color) || 'primary',
|
|
33
|
-
text: (data.accept && data.accept.text) || 'Accepter',
|
|
34
|
-
},
|
|
35
|
-
},
|
|
36
|
-
});
|
|
37
|
-
return new Promise((resolve, reject) => {
|
|
38
|
-
dialogRef.afterClosed().subscribe({
|
|
39
|
-
next: (value) => {
|
|
40
|
-
resolve(value);
|
|
41
|
-
},
|
|
42
|
-
error: reject,
|
|
43
|
-
});
|
|
44
|
-
});
|
|
45
|
-
}
|
|
46
|
-
/**
|
|
47
|
-
* Opens a prompt dialog and returns a promise that resolves to the value entered by the user, or `false` if the user cancelled the prompt.
|
|
48
|
-
*
|
|
49
|
-
* @param {PromptConfig} data Configuration options for the prompt dialog. See PromptConfig below.
|
|
50
|
-
* @returns {C3ExtendedPromise<false | T>} A promise that resolves to the value entered by the user, or `false` if the user cancelled the prompt.
|
|
51
|
-
*/
|
|
52
|
-
prompt(data) {
|
|
53
|
-
const dialogRef = this.#dialog.open(C3PromptDialogComponent, {
|
|
54
|
-
width: data.width || '250px',
|
|
55
|
-
maxWidth: data.maxWidth || '100vw',
|
|
56
|
-
data: {
|
|
57
|
-
text: data.text,
|
|
58
|
-
defaultValue: data.defaultValue,
|
|
59
|
-
placeholder: data.placeholder,
|
|
60
|
-
multiline: data.multiline,
|
|
61
|
-
validators: data.validators,
|
|
62
|
-
required: data.required,
|
|
63
|
-
reject: {
|
|
64
|
-
color: data.reject && data.reject.color ? data.reject.color : undefined,
|
|
65
|
-
text: (data.reject && data.reject.text) || 'Annuler',
|
|
66
|
-
},
|
|
67
|
-
accept: {
|
|
68
|
-
color: (data.accept && data.accept.color) || 'primary',
|
|
69
|
-
text: (data.accept && data.accept.text) || 'Accepter',
|
|
70
|
-
},
|
|
71
|
-
},
|
|
72
|
-
});
|
|
73
|
-
return new Promise((resolve, reject) => {
|
|
74
|
-
dialogRef.afterClosed().subscribe({
|
|
75
|
-
next: (value) => {
|
|
76
|
-
if (value === undefined) {
|
|
77
|
-
resolve(false);
|
|
78
|
-
}
|
|
79
|
-
else {
|
|
80
|
-
resolve(value);
|
|
81
|
-
}
|
|
82
|
-
},
|
|
83
|
-
error: reject,
|
|
84
|
-
});
|
|
85
|
-
});
|
|
86
|
-
}
|
|
87
|
-
/**
|
|
88
|
-
* Opens a dialog with the provided component and inputs.
|
|
89
|
-
* @param {C3CreateDialogFromComponentConfig<C>} config Configuration options for the dialog. See MatDialogConfig below.
|
|
90
|
-
* @returns {MatDialogRef<C> & {component: ComponentRef<C> | undefined}} The dialog reference.
|
|
91
|
-
*/
|
|
92
|
-
createDialogFromComponent({ component, toolbar, data, ...config }) {
|
|
93
|
-
if (!component)
|
|
94
|
-
throw new Error('No component provided');
|
|
95
|
-
const dialog = this.#dialog.open((C3DialogEmbedChildComponent), {
|
|
96
|
-
...config,
|
|
97
|
-
data: {
|
|
98
|
-
component,
|
|
99
|
-
toolbar,
|
|
100
|
-
inputs: data,
|
|
101
|
-
},
|
|
102
|
-
});
|
|
103
|
-
return this.createC3DialogResult(dialog);
|
|
104
|
-
}
|
|
105
|
-
alert(text, data) {
|
|
106
|
-
const dialogRef = this.#dialog.open(C3AlertDialogComponent, {
|
|
107
|
-
data: {
|
|
108
|
-
...data,
|
|
109
|
-
text,
|
|
110
|
-
},
|
|
111
|
-
});
|
|
112
|
-
return dialogRef.afterClosed();
|
|
113
|
-
}
|
|
114
|
-
createC3DialogResult(dialog) {
|
|
115
|
-
const _afterComponentMounted = new Subject();
|
|
116
|
-
const result = {
|
|
117
|
-
_containerInstance: dialog._containerInstance,
|
|
118
|
-
rootComponentRef: dialog.componentRef,
|
|
119
|
-
rootComponentInstance: dialog.componentInstance,
|
|
120
|
-
componentRef: dialog.componentInstance.createdComponent(),
|
|
121
|
-
componentInstance: dialog.componentInstance.createdComponent()?.instance,
|
|
122
|
-
id: dialog.id,
|
|
123
|
-
disableClose: dialog.disableClose || false,
|
|
124
|
-
close: dialog.close.bind(dialog),
|
|
125
|
-
afterClosed: dialog.afterClosed.bind(dialog),
|
|
126
|
-
afterOpened: dialog.afterOpened.bind(dialog),
|
|
127
|
-
beforeClosed: dialog.beforeClosed.bind(dialog),
|
|
128
|
-
backdropClick: dialog.backdropClick.bind(dialog),
|
|
129
|
-
getState: dialog.getState.bind(dialog),
|
|
130
|
-
keydownEvents: dialog.keydownEvents.bind(dialog),
|
|
131
|
-
updateSize: dialog.updateSize.bind(dialog),
|
|
132
|
-
updatePosition: dialog.updatePosition.bind(dialog),
|
|
133
|
-
addPanelClass: dialog.addPanelClass.bind(dialog),
|
|
134
|
-
removePanelClass: dialog.removePanelClass.bind(dialog),
|
|
135
|
-
afterComponentMounted: () => _afterComponentMounted.asObservable(),
|
|
136
|
-
};
|
|
137
|
-
effect(() => {
|
|
138
|
-
if (dialog.componentInstance.createdComponent()) {
|
|
139
|
-
result.componentRef = dialog.componentInstance.createdComponent();
|
|
140
|
-
result.componentInstance =
|
|
141
|
-
dialog.componentInstance.createdComponent()?.instance;
|
|
142
|
-
_afterComponentMounted.next(result);
|
|
143
|
-
}
|
|
144
|
-
}, {
|
|
145
|
-
injector: this._injector,
|
|
146
|
-
});
|
|
147
|
-
return result;
|
|
148
|
-
}
|
|
149
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.1", ngImport: i0, type: C3DialogService, deps: [], target: i0.ɵɵFactoryTarget.Injectable }); }
|
|
150
|
-
static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "18.2.1", ngImport: i0, type: C3DialogService, providedIn: 'root' }); }
|
|
151
|
-
}
|
|
152
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.1", ngImport: i0, type: C3DialogService, decorators: [{
|
|
153
|
-
type: Injectable,
|
|
154
|
-
args: [{
|
|
155
|
-
providedIn: 'root',
|
|
156
|
-
}]
|
|
157
|
-
}] });
|
|
158
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYzMtZGlhbG9nLnNlcnZpY2UuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9jMy1jb21wb25lbnRzL3NyYy9saWIvYzMtZGlhbG9nL3NlcnZpY2VzL2MzLWRpYWxvZy5zZXJ2aWNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFFTCxVQUFVLEVBQ1YsUUFBUSxFQUNSLE1BQU0sRUFDTixNQUFNLEdBQ1AsTUFBTSxlQUFlLENBQUM7QUFDdkIsT0FBTyxFQUNMLFNBQVMsR0FLVixNQUFNLDBCQUEwQixDQUFDO0FBQ2xDLE9BQU8sRUFFTCxzQkFBc0IsR0FDdkIsTUFBTSwyQ0FBMkMsQ0FBQztBQUNuRCxPQUFPLEVBRUwsdUJBQXVCLEdBQ3hCLE1BQU0sMENBQTBDLENBQUM7QUFFbEQsT0FBTyxrQkFBa0IsQ0FBQztBQUMxQixPQUFPLEVBQUUsMkJBQTJCLEVBQUUsTUFBTSwrQ0FBK0MsQ0FBQztBQUM1RixPQUFPLEVBQWMsT0FBTyxFQUFFLE1BQU0sTUFBTSxDQUFDO0FBQzNDLE9BQU8sRUFFTCxzQkFBc0IsR0FDdkIsTUFBTSx5Q0FBeUMsQ0FBQzs7QUF1Q2pELE1BQU0sT0FBTyxlQUFlO0lBSDVCO1FBSVcsWUFBTyxHQUFHLE1BQU0sQ0FBQyxTQUFTLENBQUMsQ0FBQztRQUNwQixjQUFTLEdBQUcsTUFBTSxDQUFDLFFBQVEsQ0FBQyxDQUFDO0tBa0svQztJQW5LVSxPQUFPLENBQXFCO0lBR3JDOzs7OztPQUtHO0lBQ0ksT0FBTyxDQUFDLElBQW1CO1FBQ2hDLE1BQU0sU0FBUyxHQUFHLElBQUksQ0FBQyxPQUFPLENBQUMsSUFBSSxDQUFDLHNCQUFzQixFQUFFO1lBQzFELEtBQUssRUFBRSxJQUFJLENBQUMsS0FBSyxJQUFJLE9BQU87WUFDNUIsSUFBSSxFQUFFO2dCQUNKLElBQUksRUFBRSxJQUFJLENBQUMsSUFBSTtnQkFDZixNQUFNLEVBQUU7b0JBQ04sS0FBSyxFQUNILElB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LGlCQUFpQjtvQkFDdEIsTUFBTSxDQUFDLGlCQUFpQixDQUFDLGdCQUFnQixFQUFFLEVBQUUsUUFBUSxDQUFDO2dCQUN4RCxzQkFBc0IsQ0FBQyxJQUFJLENBQUMsTUFBTSxDQUFDLENBQUM7WUFDdEMsQ0FBQztRQUNILENBQUMsRUFDRDtZQUNFLFFBQVEsRUFBRSxJQUFJLENBQUMsU0FBUztTQUN6QixDQUNGLENBQUM7UUFFRixPQUFPLE1BQU0sQ0FBQztJQUNoQixDQUFDOzhHQW5LVSxlQUFlO2tIQUFmLGVBQWUsY0FGZCxNQUFNOzsyRkFFUCxlQUFlO2tCQUgzQixVQUFVO21CQUFDO29CQUNWLFVBQVUsRUFBRSxNQUFNO2lCQUNuQiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7XG4gIENvbXBvbmVudFJlZixcbiAgSW5qZWN0YWJsZSxcbiAgSW5qZWN0b3IsXG4gIGVmZmVjdCxcbiAgaW5qZWN0LFxufSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7XG4gIE1hdERpYWxvZyxcbiAgTWF0RGlhbG9nQ29uZmlnLFxuICBNYXREaWFsb2dDb250YWluZXIsXG4gIE1hdERpYWxvZ1JlZixcbiAgTWF0RGlhbG9nU3RhdGUsXG59IGZyb20gJ0Bhbmd1bGFyL21hdGVyaWFsL2RpYWxvZyc7XG5pbXBvcnQge1xuICBDb25maXJtQ29uZmlnLFxuICBDb25maXJtRGlhbG9nQ29tcG9uZW50LFxufSBmcm9tICcuLi9jb21wb25lbnRzL2MzLWRpYWxvZy1jb25maXJtLmNvbXBvbmVudCc7XG5pbXBvcnQge1xuICBQcm9tcHRDb25maWcsXG4gIEMzUHJvbXB0RGlhbG9nQ29tcG9uZW50LFxufSBmcm9tICcuLi9jb21wb25lbnRzL2MzLWRpYWxvZy1wcm9tcHQuY29tcG9uZW50JztcbmltcG9ydCB7IENvbXBvbmVudFR5cGUgfSBmcm9tICdAYW5ndWxhci9jZGsvcG9ydGFsJztcbmltcG9ydCAncmVmbGVjdC1tZXRhZGF0YSc7XG5pbXBvcnQgeyBDM0RpYWxvZ0VtYmVkQ2hpbGRDb21wb25lbnQgfSBmcm9tICcuLi9jb21wb25lbnRzL2MzLWRpYWxvZy1lbWJlZC1jaGlsZC5jb21wb25lbnQnO1xuaW1wb3J0IHsgT2JzZXJ2YWJsZSwgU3ViamVjdCB9IGZyb20gJ3J4anMnO1xuaW1wb3J0IHtcbiAgQWxlcnRDb25maWcsXG4gIEMzQWxlcnREaWFsb2dDb21wb25lbnQsXG59IGZyb20gJy4uL2NvbXBvbmVudHMvYzMtZGlhbG9nLWFsZXJ0LmNvbXBvbmVudCc7XG5cbmV4cG9ydCB0eXBlIEMzQ3JlYXRlRGlhbG9nRnJvbUNvbXBvbmVudENvbmZpZzxDPiA9IE1hdERpYWxvZ0NvbmZpZzxcbiAgUGFydGlhbDxSZWNvcmQ8a2V5b2YgQywgdW5rbm93bj4+XG4+ICYge1xuICBjb21wb25lbnQ6IENvbXBvbmVudFR5cGU8Qz47XG4gIHRvb2xiYXI/OiB7XG4gICAgdGl0bGU6IHN0cmluZztcbiAgICBjbG9zZUJ0bj86IGJvb2xlYW47XG4gICAgY2xvc2VDb2xvcj86IHN0cmluZztcbiAgICBjb2xvcj86IHN0cmluZztcbiAgfTtcbn07XG5cbmV4cG9ydCB0eXBlIEMzQ3JlYXRlRGlhbG9nRnJvbUNvbXBvbmVudFJlc3VsdDxDPiA9IHtcbiAgX2NvbnRhaW5lckluc3RhbmNlOiBNYXREaWFsb2dDb250YWluZXI7XG4gIHJvb3RDb21wb25lbnRSZWY6IENvbXBvbmVudFJlZjxDM0RpYWxvZ0VtYmVkQ2hpbGRDb21wb25lbnQ8Qz4+IHwgbnVsbDtcbiAgcm9vdENvbXBvbmVudEluc3RhbmNlOiBDM0RpYWxvZ0VtYmVkQ2hpbGRDb21wb25lbnQ8Qz47XG4gIGNvbXBvbmVudFJlZjogQ29tcG9uZW50UmVmPEM+IHwgbnVsbDtcbiAgY29tcG9uZW50SW5zdGFuY2U6IEMgfCB1bmRlZmluZWQ7XG4gIGlkOiBzdHJpbmc7XG4gIGRpc2FibGVDbG9zZTogYm9vbGVhbjtcbiAgY2xvc2U6IChkaWFsb2dSZXN1bHQ/OiBDKSA9PiB2b2lkO1xuICBhZnRlckNsb3NlZDogKCkgPT4gT2JzZXJ2YWJsZTxDIHwgbnVsbD47XG4gIGFmdGVyT3BlbmVkOiAoKSA9PiBPYnNlcnZhYmxlPHZvaWQ+O1xuICBiZWZvcmVDbG9zZWQ6ICgpID0+IE9ic2VydmFibGU8QyB8IG51bGw+O1xuICBiYWNrZHJvcENsaWNrOiAoKSA9PiBPYnNlcnZhYmxlPE1vdXNlRXZlbnQ+O1xuICBnZXRTdGF0ZTogKCkgPT4gTWF0RGlhbG9nU3RhdGU7XG4gIGtleWRvd25FdmVudHM6ICgpID0+IE9ic2VydmFibGU8S2V5Ym9hcmRFdmVudD47XG4gIHVwZGF0ZVNpemU6ICgpID0+IHZvaWQ7XG4gIHVwZGF0ZVBvc2l0aW9uOiAoKSA9PiB2b2lkO1xuICBhZGRQYW5lbENsYXNzOiAoY2xhc3NOYW1lOiBzdHJpbmcpID0+IHZvaWQ7XG4gIHJlbW92ZVBhbmVsQ2xhc3M6IChjbGFzc05hbWU6IHN0cmluZykgPT4gdm9pZDtcbiAgYWZ0ZXJDb21wb25lbnRNb3VudGVkOiAoKSA9PiBPYnNlcnZhYmxlPEMzQ3JlYXRlRGlhbG9nRnJvbUNvbXBvbmVudFJlc3VsdDxDPj47XG59O1xuXG5ASW5qZWN0YWJsZSh7XG4gIHByb3ZpZGVkSW46ICdyb290Jyxcbn0pXG5leHBvcnQgY2xhc3MgQzNEaWFsb2dTZXJ2aWNlIHtcbiAgcmVhZG9ubHkgI2RpYWxvZyA9IGluamVjdChNYXREaWFsb2cpO1xuICBwcml2YXRlIHJlYWRvbmx5IF9pbmplY3RvciA9IGluamVjdChJbmplY3Rvcik7XG5cbiAgLyoqXG4gICAqIE9wZW5zIGEgY29uZmlybSBkaWFsb2cgYW5kIHJldHVybnMgYSBwcm9taXNlIHRoYXQgcmVzb2x2ZXMgdG8gYSBib29sZWFuIGluZGljYXRpbmcgd2hldGhlciB0aGUgdXNlciBhY2NlcHRlZCBvciByZWplY3RlZCB0aGUgY29uZmlybWF0aW9uLlxuICAgKlxuICAgKiBAcGFyYW0ge0NvbmZpcm1Db25maWd9IGRhdGEgQ29uZmlndXJhdGlvbiBvcHRpb25zIGZvciB0aGUgY29uZmlybSBkaWFsb2cuIFNlZSBDb25maXJtQ29uZmlnIGJlbG93LlxuICAgKiBAcmV0dXJucyB7QzNFeHRlbmRlZFByb21pc2U8Ym9vbGVhbj59IEEgcHJvbWlzZSB0aGF0IHJlc29sdmVzIHRvIGB0cnVlYCBpZiB0aGUgdXNlciBhY2NlcHRlZCB0aGUgY29uZmlybWF0aW9uLCBhbmQgYGZhbHNlYCBvdGhlcndpc2UuXG4gICAqL1xuICBwdWJsaWMgY29uZmlybShkYXRhOiBDb25maXJtQ29uZmlnKSB7XG4gICAgY29uc3QgZGlhbG9nUmVmID0gdGhpcy4jZGlhbG9nLm9wZW4oQ29uZmlybURpYWxvZ0NvbXBvbmVudCwge1xuICAgICAgd2lkdGg6IGRhdGEud2lkdGggfHwgJzI1MHB4JyxcbiAgICAgIGRhdGE6IHtcbiAgICAgICAgdGV4dDogZGF0YS50ZXh0LFxuICAgICAgICByZWplY3Q6IHtcbiAgICAgICAgICBjb2xvcjpcbiAgICAgICAgICAgIGRhdGEucmVqZWN0ICYmIGRhdGEucmVqZWN0LmNvbG9yID8gZGF0YS5yZWplY3QuY29sb3IgOiB1bmRlZmluZWQsXG4gICAgICAgICAgdGV4dDogKGRhdGEucmVqZWN0ICYmIGRhdGEucmVqZWN0LnRleHQpIHx8ICdBbm51bGVyJyxcbiAgICAgICAgfSxcbiAgICAgICAgYWNjZXB0OiB7XG4gICAgICAgICAgY29sb3I6IChkYXRhLmFjY2VwdCAmJiBkYXRhLmFjY2VwdC5jb2xvcikgfHwgJ3ByaW1hcnknLFxuICAgICAgICAgIHRleHQ6IChkYXRhLmFjY2VwdCAmJiBkYXRhLmFjY2VwdC50ZXh0KSB8fCAnQWNjZXB0ZXInLFxuICAgICAgICB9LFxuICAgICAgfSxcbiAgICB9KTtcblxuICAgIHJldHVybiBuZXcgUHJvbWlzZTxib29sZWFuPigocmVzb2x2ZSwgcmVqZWN0KSA9PiB7XG4gICAgICBkaWFsb2dSZWYuYWZ0ZXJDbG9zZWQoKS5zdWJzY3JpYmUoe1xuICAgICAgICBuZXh0OiAodmFsdWUpID0+IHtcbiAgICAgICAgICByZXNvbHZlKHZhbHVlKTtcbiAgICAgICAgfSxcbiAgICAgICAgZXJyb3I6IHJlamVjdCxcbiAgICAgIH0pO1xuICAgIH0pO1xuICB9XG5cbiAgLyoqXG4gICAqIE9wZW5zIGEgcHJvbXB0IGRpYWxvZyBhbmQgcmV0dXJucyBhIHByb21pc2UgdGhhdCByZXNvbHZlcyB0byB0aGUgdmFsdWUgZW50ZXJlZCBieSB0aGUgdXNlciwgb3IgYGZhbHNlYCBpZiB0aGUgdXNlciBjYW5jZWxsZWQgdGhlIHByb21wdC5cbiAgICpcbiAgICogQHBhcmFtIHtQcm9tcHRDb25maWd9IGRhdGEgQ29uZmlndXJhdGlvbiBvcHRpb25zIGZvciB0aGUgcHJvbXB0IGRpYWxvZy4gU2VlIFByb21wdENvbmZpZyBiZWxvdy5cbiAgICogQHJldHVybnMge0MzRXh0ZW5kZWRQcm9taXNlPGZhbHNlIHwgVD59IEEgcHJvbWlzZSB0aGF0IHJlc29sdmVzIHRvIHRoZSB2YWx1ZSBlbnRlcmVkIGJ5IHRoZSB1c2VyLCBvciBgZmFsc2VgIGlmIHRoZSB1c2VyIGNhbmNlbGxlZCB0aGUgcHJvbXB0LlxuICAgKi9cbiAgcHVibGljIHByb21wdChkYXRhOiBQcm9tcHRDb25maWcpOiBQcm9taXNlPGZhbHNlIHwgc3RyaW5nPiB7XG4gICAgY29uc3QgZGlhbG9nUmVmID0gdGhpcy4jZGlhbG9nLm9wZW48QzNQcm9tcHREaWFsb2dDb21wb25lbnQsIGFueSwgc3RyaW5nPihcbiAgICAgIEMzUHJvbXB0RGlhbG9nQ29tcG9uZW50LFxuICAgICAge1xuICAgICAgICB3aWR0aDogZGF0YS53aWR0aCB8fCAnMjUwcHgnLFxuICAgICAgICBtYXhXaWR0aDogZGF0YS5tYXhXaWR0aCB8fCAnMTAwdncnLFxuICAgICAgICBkYXRhOiB7XG4gICAgICAgICAgdGV4dDogZGF0YS50ZXh0LFxuICAgICAgICAgIGRlZmF1bHRWYWx1ZTogZGF0YS5kZWZhdWx0VmFsdWUsXG4gICAgICAgICAgcGxhY2Vob2xkZXI6IGRhdGEucGxhY2Vob2xkZXIsXG4gICAgICAgICAgbXVsdGlsaW5lOiBkYXRhLm11bHRpbGluZSxcbiAgICAgICAgICB2YWxpZGF0b3JzOiBkYXRhLnZhbGlkYXRvcnMsXG4gICAgICAgICAgcmVxdWlyZWQ6IGRhdGEucmVxdWlyZWQsXG4gICAgICAgICAgcmVqZWN0OiB7XG4gICAgICAgICAgICBjb2xvcjpcbiAgICAgICAgICAgICAgZGF0YS5yZWplY3QgJiYgZGF0YS5yZWplY3QuY29sb3IgPyBkYXRhLnJlamVjdC5jb2xvciA6IHVuZGVmaW5lZCxcbiAgICAgICAgICAgIHRleHQ6IChkYXRhLnJlamVjdCAmJiBkYXRhLnJlamVjdC50ZXh0KSB8fCAnQW5udWxlcicsXG4gICAgICAgICAgfSxcbiAgICAgICAgICBhY2NlcHQ6IHtcbiAgICAgICAgICAgIGNvbG9yOiAoZGF0YS5hY2NlcHQgJiYgZGF0YS5hY2NlcHQuY29sb3IpIHx8ICdwcmltYXJ5JyxcbiAgICAgICAgICAgIHRleHQ6IChkYXRhLmFjY2VwdCAmJiBkYXRhLmFjY2VwdC50ZXh0KSB8fCAnQWNjZXB0ZXInLFxuICAgICAgICAgIH0sXG4gICAgICAgIH0sXG4gICAgICB9XG4gICAgKTtcblxuICAgIHJldHVybiBuZXcgUHJvbWlzZTxzdHJpbmcgfCBmYWxzZT4oKHJlc29sdmUsIHJlamVjdCkgPT4ge1xuICAgICAgZGlhbG9nUmVmLmFmdGVyQ2xvc2VkKCkuc3Vic2NyaWJlKHtcbiAgICAgICAgbmV4dDogKHZhbHVlKSA9PiB7XG4gICAgICAgICAgaWYgKHZhbHVlID09PSB1bmRlZmluZWQpIHtcbiAgICAgICAgICAgIHJlc29sdmUoZmFsc2UpO1xuICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICByZXNvbHZlKHZhbHVlKTtcbiAgICAgICAgICB9XG4gICAgICAgIH0sXG4gICAgICAgIGVycm9yOiByZWplY3QsXG4gICAgICB9KTtcbiAgICB9KTtcbiAgfVxuXG4gIC8qKlxuICAgKiBPcGVucyBhIGRpYWxvZyB3aXRoIHRoZSBwcm92aWRlZCBjb21wb25lbnQgYW5kIGlucHV0cy5cbiAgICogQHBhcmFtIHtDM0NyZWF0ZURpYWxvZ0Zyb21Db21wb25lbnRDb25maWc8Qz59IGNvbmZpZyBDb25maWd1cmF0aW9uIG9wdGlvbnMgZm9yIHRoZSBkaWFsb2cuIFNlZSBNYXREaWFsb2dDb25maWcgYmVsb3cuXG4gICAqIEByZXR1cm5zIHtNYXREaWFsb2dSZWY8Qz4gJiB7Y29tcG9uZW50OiBDb21wb25lbnRSZWY8Qz4gfCB1bmRlZmluZWR9fSBUaGUgZGlhbG9nIHJlZmVyZW5jZS5cbiAgICovXG4gIGNyZWF0ZURpYWxvZ0Zyb21Db21wb25lbnQ8Qz4oe1xuICAgIGNvbXBvbmVudCxcbiAgICB0b29sYmFyLFxuICAgIGRhdGEsXG4gICAgLi4uY29uZmlnXG4gIH06IEMzQ3JlYXRlRGlhbG9nRnJvbUNvbXBvbmVudENvbmZpZzxDPikge1xuICAgIGlmICghY29tcG9uZW50KSB0aHJvdyBuZXcgRXJyb3IoJ05vIGNvbXBvbmVudCBwcm92aWRlZCcpO1xuXG4gICAgY29uc3QgZGlhbG9nID0gdGhpcy4jZGlhbG9nLm9wZW4oQzNEaWFsb2dFbWJlZENoaWxkQ29tcG9uZW50PEM+LCB7XG4gICAgICAuLi5jb25maWcsXG4gICAgICBkYXRhOiB7XG4gICAgICAgIGNvbXBvbmVudCxcbiAgICAgICAgdG9vbGJhcixcbiAgICAgICAgaW5wdXRzOiBkYXRhLFxuICAgICAgfSxcbiAgICB9KTtcblxuICAgIHJldHVybiB0aGlzLmNyZWF0ZUMzRGlhbG9nUmVzdWx0KGRpYWxvZyk7XG4gIH1cblxuICBwdWJsaWMgYWxlcnQodGV4dDogc3RyaW5nLCBkYXRhPzogQWxlcnRDb25maWcpIHtcbiAgICBjb25zdCBkaWFsb2dSZWYgPSB0aGlzLiNkaWFsb2cub3BlbihDM0FsZXJ0RGlhbG9nQ29tcG9uZW50LCB7XG4gICAgICBkYXRhOiB7XG4gICAgICAgIC4uLmRhdGEsXG4gICAgICAgIHRleHQsXG4gICAgICB9LFxuICAgIH0pO1xuXG4gICAgcmV0dXJuIGRpYWxvZ1JlZi5hZnRlckNsb3NlZCgpO1xuICB9XG5cbiAgcHJpdmF0ZSBjcmVhdGVDM0RpYWxvZ1Jlc3VsdDxDPihcbiAgICBkaWFsb2c6IE1hdERpYWxvZ1JlZjxDM0RpYWxvZ0VtYmVkQ2hpbGRDb21wb25lbnQ8Qz4+XG4gICkge1xuICAgIGNvbnN0IF9hZnRlckNvbXBvbmVudE1vdW50ZWQgPSBuZXcgU3ViamVjdDxcbiAgICAgIEMzQ3JlYXRlRGlhbG9nRnJvbUNvbXBvbmVudFJlc3VsdDxDPlxuICAgID4oKTtcblxuICAgIGNvbnN0IHJlc3VsdDogQzNDcmVhdGVEaWFsb2dGcm9tQ29tcG9uZW50UmVzdWx0PEM+ID0ge1xuICAgICAgX2NvbnRhaW5lckluc3RhbmNlOiBkaWFsb2cuX2NvbnRhaW5lckluc3RhbmNlLFxuICAgICAgcm9vdENvbXBvbmVudFJlZjogZGlhbG9nLmNvbXBvbmVudFJlZixcbiAgICAgIHJvb3RDb21wb25lbnRJbnN0YW5jZTogZGlhbG9nLmNvbXBvbmVudEluc3RhbmNlLFxuICAgICAgY29tcG9uZW50UmVmOiBkaWFsb2cuY29tcG9uZW50SW5zdGFuY2UuY3JlYXRlZENvbXBvbmVudCgpLFxuICAgICAgY29tcG9uZW50SW5zdGFuY2U6IGRpYWxvZy5jb21wb25lbnRJbnN0YW5jZS5jcmVhdGVkQ29tcG9uZW50KCk/Lmluc3RhbmNlLFxuICAgICAgaWQ6IGRpYWxvZy5pZCxcbiAgICAgIGRpc2FibGVDbG9zZTogZGlhbG9nLmRpc2FibGVDbG9zZSB8fCBmYWxzZSxcbiAgICAgIGNsb3NlOiBkaWFsb2cuY2xvc2UuYmluZChkaWFsb2cpLFxuICAgICAgYWZ0ZXJDbG9zZWQ6IGRpYWxvZy5hZnRlckNsb3NlZC5iaW5kKGRpYWxvZyksXG4gICAgICBhZnRlck9wZW5lZDogZGlhbG9nLmFmdGVyT3BlbmVkLmJpbmQoZGlhbG9nKSxcbiAgICAgIGJlZm9yZUNsb3NlZDogZGlhbG9nLmJlZm9yZUNsb3NlZC5iaW5kKGRpYWxvZyksXG4gICAgICBiYWNrZHJvcENsaWNrOiBkaWFsb2cuYmFja2Ryb3BDbGljay5iaW5kKGRpYWxvZyksXG4gICAgICBnZXRTdGF0ZTogZGlhbG9nLmdldFN0YXRlLmJpbmQoZGlhbG9nKSxcbiAgICAgIGtleWRvd25FdmVudHM6IGRpYWxvZy5rZXlkb3duRXZlbnRzLmJpbmQoZGlhbG9nKSxcbiAgICAgIHVwZGF0ZVNpemU6IGRpYWxvZy51cGRhdGVTaXplLmJpbmQoZGlhbG9nKSxcbiAgICAgIHVwZGF0ZVBvc2l0aW9uOiBkaWFsb2cudXBkYXRlUG9zaXRpb24uYmluZChkaWFsb2cpLFxuICAgICAgYWRkUGFuZWxDbGFzczogZGlhbG9nLmFkZFBhbmVsQ2xhc3MuYmluZChkaWFsb2cpLFxuICAgICAgcmVtb3ZlUGFuZWxDbGFzczogZGlhbG9nLnJlbW92ZVBhbmVsQ2xhc3MuYmluZChkaWFsb2cpLFxuICAgICAgYWZ0ZXJDb21wb25lbnRNb3VudGVkOiAoKSA9PiBfYWZ0ZXJDb21wb25lbnRNb3VudGVkLmFzT2JzZXJ2YWJsZSgpLFxuICAgIH07XG5cbiAgICBlZmZlY3QoXG4gICAgICAoKSA9PiB7XG4gICAgICAgIGlmIChkaWFsb2cuY29tcG9uZW50SW5zdGFuY2UuY3JlYXRlZENvbXBvbmVudCgpKSB7XG4gICAgICAgICAgcmVzdWx0LmNvbXBvbmVudFJlZiA9IGRpYWxvZy5jb21wb25lbnRJbnN0YW5jZS5jcmVhdGVkQ29tcG9uZW50KCk7XG4gICAgICAgICAgcmVzdWx0LmNvbXBvbmVudEluc3RhbmNlID1cbiAgICAgICAgICAgIGRpYWxvZy5jb21wb25lbnRJbnN0YW5jZS5jcmVhdGVkQ29tcG9uZW50KCk/Lmluc3RhbmNlO1xuICAgICAgICAgIF9hZnRlckNvbXBvbmVudE1vdW50ZWQubmV4dChyZXN1bHQpO1xuICAgICAgICB9XG4gICAgICB9LFxuICAgICAge1xuICAgICAgICBpbmplY3RvcjogdGhpcy5faW5qZWN0b3IsXG4gICAgICB9XG4gICAgKTtcblxuICAgIHJldHVybiByZXN1bHQ7XG4gIH1cbn1cbiJdfQ==
|
|
@@ -1,20 +0,0 @@
|
|
|
1
|
-
import { NgModule } from '@angular/core';
|
|
2
|
-
import { CommonModule } from '@angular/common';
|
|
3
|
-
import { C3DropdownComponent } from './components/c3-dropdown.component';
|
|
4
|
-
import { C3DropdownTrigger } from './directives/c3-dropdown.trigger';
|
|
5
|
-
import { OverlayModule } from '@angular/cdk/overlay';
|
|
6
|
-
import * as i0 from "@angular/core";
|
|
7
|
-
export class C3DropdownModule {
|
|
8
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.1", ngImport: i0, type: C3DropdownModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule }); }
|
|
9
|
-
static { this.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "18.2.1", ngImport: i0, type: C3DropdownModule, declarations: [C3DropdownComponent, C3DropdownTrigger], imports: [CommonModule, OverlayModule], exports: [C3DropdownComponent, C3DropdownTrigger] }); }
|
|
10
|
-
static { this.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "18.2.1", ngImport: i0, type: C3DropdownModule, imports: [CommonModule, OverlayModule] }); }
|
|
11
|
-
}
|
|
12
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.1", ngImport: i0, type: C3DropdownModule, decorators: [{
|
|
13
|
-
type: NgModule,
|
|
14
|
-
args: [{
|
|
15
|
-
imports: [CommonModule, OverlayModule],
|
|
16
|
-
declarations: [C3DropdownComponent, C3DropdownTrigger],
|
|
17
|
-
exports: [C3DropdownComponent, C3DropdownTrigger],
|
|
18
|
-
}]
|
|
19
|
-
}] });
|
|
20
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYzMtZHJvcGRvd24ubW9kdWxlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvYzMtY29tcG9uZW50cy9zcmMvbGliL2MzLWRyb3Bkb3duL2MzLWRyb3Bkb3duLm1vZHVsZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsUUFBUSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQ3pDLE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUMvQyxPQUFPLEVBQUUsbUJBQW1CLEVBQUUsTUFBTSxvQ0FBb0MsQ0FBQztBQUN6RSxPQUFPLEVBQUUsaUJBQWlCLEVBQUUsTUFBTSxrQ0FBa0MsQ0FBQztBQUNyRSxPQUFPLEVBQUUsYUFBYSxFQUFFLE1BQU0sc0JBQXNCLENBQUM7O0FBT3JELE1BQU0sT0FBTyxnQkFBZ0I7OEdBQWhCLGdCQUFnQjsrR0FBaEIsZ0JBQWdCLGlCQUhaLG1CQUFtQixFQUFFLGlCQUFpQixhQUQzQyxZQUFZLEVBQUUsYUFBYSxhQUUzQixtQkFBbUIsRUFBRSxpQkFBaUI7K0dBRXJDLGdCQUFnQixZQUpqQixZQUFZLEVBQUUsYUFBYTs7MkZBSTFCLGdCQUFnQjtrQkFMNUIsUUFBUTttQkFBQztvQkFDUixPQUFPLEVBQUUsQ0FBQyxZQUFZLEVBQUUsYUFBYSxDQUFDO29CQUN0QyxZQUFZLEVBQUUsQ0FBQyxtQkFBbUIsRUFBRSxpQkFBaUIsQ0FBQztvQkFDdEQsT0FBTyxFQUFFLENBQUMsbUJBQW1CLEVBQUUsaUJBQWlCLENBQUM7aUJBQ2xEIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgTmdNb2R1bGUgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IENvbW1vbk1vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbic7XG5pbXBvcnQgeyBDM0Ryb3Bkb3duQ29tcG9uZW50IH0gZnJvbSAnLi9jb21wb25lbnRzL2MzLWRyb3Bkb3duLmNvbXBvbmVudCc7XG5pbXBvcnQgeyBDM0Ryb3Bkb3duVHJpZ2dlciB9IGZyb20gJy4vZGlyZWN0aXZlcy9jMy1kcm9wZG93bi50cmlnZ2VyJztcbmltcG9ydCB7IE92ZXJsYXlNb2R1bGUgfSBmcm9tICdAYW5ndWxhci9jZGsvb3ZlcmxheSc7XG5cbkBOZ01vZHVsZSh7XG4gIGltcG9ydHM6IFtDb21tb25Nb2R1bGUsIE92ZXJsYXlNb2R1bGVdLFxuICBkZWNsYXJhdGlvbnM6IFtDM0Ryb3Bkb3duQ29tcG9uZW50LCBDM0Ryb3Bkb3duVHJpZ2dlcl0sXG4gIGV4cG9ydHM6IFtDM0Ryb3Bkb3duQ29tcG9uZW50LCBDM0Ryb3Bkb3duVHJpZ2dlcl0sXG59KVxuZXhwb3J0IGNsYXNzIEMzRHJvcGRvd25Nb2R1bGUge31cbiJdfQ==
|
|
@@ -1,45 +0,0 @@
|
|
|
1
|
-
import { Component, TemplateRef, ViewChild, Input, } from '@angular/core';
|
|
2
|
-
import * as i0 from "@angular/core";
|
|
3
|
-
import * as i1 from "@angular/common";
|
|
4
|
-
export class C3DropdownComponent {
|
|
5
|
-
constructor(_changeDetectorRef) {
|
|
6
|
-
this._changeDetectorRef = _changeDetectorRef;
|
|
7
|
-
/** Classes to be added to the container of the content. Supports the same syntax as `ngClass`. */
|
|
8
|
-
this.dropdownClass = '';
|
|
9
|
-
}
|
|
10
|
-
ngOnChanges(changes) {
|
|
11
|
-
if (changes['dropdownClass']) {
|
|
12
|
-
this._markForCheck();
|
|
13
|
-
}
|
|
14
|
-
}
|
|
15
|
-
_markForCheck() {
|
|
16
|
-
this._changeDetectorRef.markForCheck();
|
|
17
|
-
}
|
|
18
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.1", ngImport: i0, type: C3DropdownComponent, deps: [{ token: i0.ChangeDetectorRef }], target: i0.ɵɵFactoryTarget.Component }); }
|
|
19
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.2.1", type: C3DropdownComponent, selector: "c3-dropdown", inputs: { dropdownClass: "dropdownClass" }, viewQueries: [{ propertyName: "template", first: true, predicate: TemplateRef, descendants: true }], usesOnChanges: true, ngImport: i0, template: `
|
|
20
|
-
<ng-template>
|
|
21
|
-
<div class="c3-dropdown-panel" [ngClass]="dropdownClass">
|
|
22
|
-
<ng-content></ng-content>
|
|
23
|
-
</div>
|
|
24
|
-
</ng-template>
|
|
25
|
-
`, isInline: true, dependencies: [{ kind: "directive", type: i1.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }] }); }
|
|
26
|
-
}
|
|
27
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.1", ngImport: i0, type: C3DropdownComponent, decorators: [{
|
|
28
|
-
type: Component,
|
|
29
|
-
args: [{
|
|
30
|
-
selector: 'c3-dropdown',
|
|
31
|
-
template: `
|
|
32
|
-
<ng-template>
|
|
33
|
-
<div class="c3-dropdown-panel" [ngClass]="dropdownClass">
|
|
34
|
-
<ng-content></ng-content>
|
|
35
|
-
</div>
|
|
36
|
-
</ng-template>
|
|
37
|
-
`,
|
|
38
|
-
}]
|
|
39
|
-
}], ctorParameters: () => [{ type: i0.ChangeDetectorRef }], propDecorators: { template: [{
|
|
40
|
-
type: ViewChild,
|
|
41
|
-
args: [TemplateRef]
|
|
42
|
-
}], dropdownClass: [{
|
|
43
|
-
type: Input
|
|
44
|
-
}] } });
|
|
45
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYzMtZHJvcGRvd24uY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvYzMtY29tcG9uZW50cy9zcmMvbGliL2MzLWRyb3Bkb3duL2NvbXBvbmVudHMvYzMtZHJvcGRvd24uY29tcG9uZW50LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFFTCxTQUFTLEVBQ1QsV0FBVyxFQUNYLFNBQVMsRUFDVCxLQUFLLEdBR04sTUFBTSxlQUFlLENBQUM7OztBQVl2QixNQUFNLE9BQU8sbUJBQW1CO0lBTzlCLFlBQW9CLGtCQUFxQztRQUFyQyx1QkFBa0IsR0FBbEIsa0JBQWtCLENBQW1CO1FBSnpELGtHQUFrRztRQUVsRyxrQkFBYSxHQUE2RCxFQUFFLENBQUM7SUFFakIsQ0FBQztJQUU3RCxXQUFXLENBQUMsT0FBc0I7UUFDaEMsSUFBSSxPQUFPLENBQUMsZUFBZSxDQUFDLEVBQUUsQ0FBQztZQUM3QixJQUFJLENBQUMsYUFBYSxFQUFFLENBQUM7UUFDdkIsQ0FBQztJQUNILENBQUM7SUFFRCxhQUFhO1FBQ1gsSUFBSSxDQUFDLGtCQUFrQixDQUFDLFlBQVksRUFBRSxDQUFDO0lBQ3pDLENBQUM7OEdBakJVLG1CQUFtQjtrR0FBbkIsbUJBQW1CLHlJQUNuQixXQUFXLHFFQVRaOzs7Ozs7R0FNVDs7MkZBRVUsbUJBQW1CO2tCQVYvQixTQUFTO21CQUFDO29CQUNULFFBQVEsRUFBRSxhQUFhO29CQUN2QixRQUFRLEVBQUU7Ozs7OztHQU1UO2lCQUNGO3NGQUV5QixRQUFRO3NCQUEvQixTQUFTO3VCQUFDLFdBQVc7Z0JBSXRCLGFBQWE7c0JBRFosS0FBSyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7XG4gIENoYW5nZURldGVjdG9yUmVmLFxuICBDb21wb25lbnQsXG4gIFRlbXBsYXRlUmVmLFxuICBWaWV3Q2hpbGQsXG4gIElucHV0LFxuICBPbkNoYW5nZXMsXG4gIFNpbXBsZUNoYW5nZXMsXG59IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdjMy1kcm9wZG93bicsXG4gIHRlbXBsYXRlOiBgXG4gICAgPG5nLXRlbXBsYXRlPlxuICAgICAgPGRpdiBjbGFzcz1cImMzLWRyb3Bkb3duLXBhbmVsXCIgW25nQ2xhc3NdPVwiZHJvcGRvd25DbGFzc1wiPlxuICAgICAgICA8bmctY29udGVudD48L25nLWNvbnRlbnQ+XG4gICAgICA8L2Rpdj5cbiAgICA8L25nLXRlbXBsYXRlPlxuICBgLFxufSlcbmV4cG9ydCBjbGFzcyBDM0Ryb3Bkb3duQ29tcG9uZW50IGltcGxlbWVudHMgT25DaGFuZ2VzIHtcbiAgQFZpZXdDaGlsZChUZW1wbGF0ZVJlZikgdGVtcGxhdGUhOiBUZW1wbGF0ZVJlZjxhbnk+O1xuXG4gIC8qKiBDbGFzc2VzIHRvIGJlIGFkZGVkIHRvIHRoZSBjb250YWluZXIgb2YgdGhlIGNvbnRlbnQuIFN1cHBvcnRzIHRoZSBzYW1lIHN5bnRheCBhcyBgbmdDbGFzc2AuICovXG4gIEBJbnB1dCgpXG4gIGRyb3Bkb3duQ2xhc3M6IHN0cmluZyB8IHN0cmluZ1tdIHwgU2V0PHN0cmluZz4gfCB7IFtrZXk6IHN0cmluZ106IGFueSB9ID0gJyc7XG5cbiAgY29uc3RydWN0b3IocHJpdmF0ZSBfY2hhbmdlRGV0ZWN0b3JSZWY6IENoYW5nZURldGVjdG9yUmVmKSB7fVxuXG4gIG5nT25DaGFuZ2VzKGNoYW5nZXM6IFNpbXBsZUNoYW5nZXMpIHtcbiAgICBpZiAoY2hhbmdlc1snZHJvcGRvd25DbGFzcyddKSB7XG4gICAgICB0aGlzLl9tYXJrRm9yQ2hlY2soKTtcbiAgICB9XG4gIH1cblxuICBfbWFya0ZvckNoZWNrKCk6IHZvaWQge1xuICAgIHRoaXMuX2NoYW5nZURldGVjdG9yUmVmLm1hcmtGb3JDaGVjaygpO1xuICB9XG59XG4iXX0=
|
|
@@ -1,128 +0,0 @@
|
|
|
1
|
-
import { Directive, forwardRef, Input, HostListener, } from '@angular/core';
|
|
2
|
-
import { NG_VALUE_ACCESSOR } from '@angular/forms';
|
|
3
|
-
import { OverlayConfig, } from '@angular/cdk/overlay';
|
|
4
|
-
import { coerceBooleanProperty } from '@angular/cdk/coercion';
|
|
5
|
-
import { TemplatePortal } from '@angular/cdk/portal';
|
|
6
|
-
import { merge, Subject, Subscription, takeUntil } from 'rxjs';
|
|
7
|
-
import * as i0 from "@angular/core";
|
|
8
|
-
import * as i1 from "@angular/cdk/overlay";
|
|
9
|
-
export const MAT_DROPDOWN_VALUE_ACCESSOR = {
|
|
10
|
-
provide: NG_VALUE_ACCESSOR,
|
|
11
|
-
useExisting: forwardRef(() => C3DropdownTrigger),
|
|
12
|
-
multi: true,
|
|
13
|
-
};
|
|
14
|
-
/**
|
|
15
|
-
* @description The C3DropdownTrigger directive is used to display or hide a dropdown menu
|
|
16
|
-
* C3DropdownComponent when an item is clicked.
|
|
17
|
-
* @selector [c3Dropdown]
|
|
18
|
-
* @exportAs c3DropdownTrigger
|
|
19
|
-
* @input c3Dropdown - A reference to an instance of C3DropdownComponent.
|
|
20
|
-
* @input c3DropdownDisabled - A boolean indicating whether the directive should be disabled.
|
|
21
|
-
* @input c3DropdownClass - A string, an array of strings, a set of strings or a
|
|
22
|
-
* object representing the CSS classes to be applied to the dropdown menu.
|
|
23
|
-
*/
|
|
24
|
-
export class C3DropdownTrigger {
|
|
25
|
-
/** Whether the dropdown is disabled. */
|
|
26
|
-
get dropdownDisabled() {
|
|
27
|
-
return this._dropdownDisabled;
|
|
28
|
-
}
|
|
29
|
-
set dropdownDisabled(value) {
|
|
30
|
-
this._dropdownDisabled = coerceBooleanProperty(value);
|
|
31
|
-
}
|
|
32
|
-
constructor(_element, _overlay, _viewContainerRef) {
|
|
33
|
-
this._element = _element;
|
|
34
|
-
this._overlay = _overlay;
|
|
35
|
-
this._viewContainerRef = _viewContainerRef;
|
|
36
|
-
this._closingActionsSubscription = Subscription.EMPTY;
|
|
37
|
-
this._destroyed = new Subject();
|
|
38
|
-
this._dropdownClass = '';
|
|
39
|
-
this._dropdownDisabled = false;
|
|
40
|
-
/** Classes to be passed to the dropdown menu. Supports the same syntax as `ngClass`. */
|
|
41
|
-
this.dropdownClass = '';
|
|
42
|
-
}
|
|
43
|
-
onClick() {
|
|
44
|
-
this.show();
|
|
45
|
-
}
|
|
46
|
-
ngOnChanges(changes) {
|
|
47
|
-
if (changes['dropdownClass'] && this.dropdown) {
|
|
48
|
-
this.dropdown.dropdownClass = this._dropdownClass;
|
|
49
|
-
this.dropdown._markForCheck();
|
|
50
|
-
}
|
|
51
|
-
}
|
|
52
|
-
ngOnDestroy() {
|
|
53
|
-
this._destroyed.next();
|
|
54
|
-
this._destroyed.complete();
|
|
55
|
-
this._closingActionsSubscription.unsubscribe();
|
|
56
|
-
this.close();
|
|
57
|
-
}
|
|
58
|
-
show() {
|
|
59
|
-
if (!this.dropdown)
|
|
60
|
-
return;
|
|
61
|
-
const overlayRef = this._overlay.create(this._getOverlayConfig());
|
|
62
|
-
const portal = new TemplatePortal(this.dropdown.template, this._viewContainerRef);
|
|
63
|
-
overlayRef.attach(portal);
|
|
64
|
-
this.overlayRef = overlayRef;
|
|
65
|
-
this._closingActionsSubscription = this._menuClosingActions().subscribe(() => this.close());
|
|
66
|
-
}
|
|
67
|
-
close() {
|
|
68
|
-
if (this.overlayRef && this.overlayRef.hasAttached())
|
|
69
|
-
this.overlayRef.detach();
|
|
70
|
-
}
|
|
71
|
-
_getOverlayConfig() {
|
|
72
|
-
const belowPosition = {
|
|
73
|
-
originX: 'start',
|
|
74
|
-
originY: 'bottom',
|
|
75
|
-
overlayX: 'start',
|
|
76
|
-
overlayY: 'top',
|
|
77
|
-
};
|
|
78
|
-
const abovePosition = {
|
|
79
|
-
originX: 'start',
|
|
80
|
-
originY: 'top',
|
|
81
|
-
overlayX: 'start',
|
|
82
|
-
overlayY: 'bottom',
|
|
83
|
-
// The overlay edge connected to the trigger should have squared corners, while
|
|
84
|
-
// the opposite end has rounded corners. We apply a CSS class to swap the
|
|
85
|
-
// border-radius based on the overlay position.
|
|
86
|
-
panelClass: 'mat-autocomplete-panel-above',
|
|
87
|
-
};
|
|
88
|
-
const positionStrategy = this._overlay
|
|
89
|
-
.position()
|
|
90
|
-
.flexibleConnectedTo(this._element)
|
|
91
|
-
.withLockedPosition()
|
|
92
|
-
.withPositions([belowPosition, abovePosition]);
|
|
93
|
-
return new OverlayConfig({
|
|
94
|
-
positionStrategy,
|
|
95
|
-
backdropClass: 'cdk-overlay-transparent-backdrop',
|
|
96
|
-
hasBackdrop: true,
|
|
97
|
-
});
|
|
98
|
-
}
|
|
99
|
-
/** Returns a stream that emits whenever an action that should close the menu occurs. */
|
|
100
|
-
_menuClosingActions() {
|
|
101
|
-
const backdrop = this.overlayRef.backdropClick();
|
|
102
|
-
const detachments = this.overlayRef.detachments();
|
|
103
|
-
return merge(backdrop, detachments).pipe(takeUntil(this._destroyed));
|
|
104
|
-
}
|
|
105
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.1", ngImport: i0, type: C3DropdownTrigger, deps: [{ token: i0.ElementRef }, { token: i1.Overlay }, { token: i0.ViewContainerRef }], target: i0.ɵɵFactoryTarget.Directive }); }
|
|
106
|
-
static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "18.2.1", type: C3DropdownTrigger, selector: "[c3Dropdown]", inputs: { dropdown: ["c3Dropdown", "dropdown"], dropdownDisabled: ["c3DropdownDisabled", "dropdownDisabled"], dropdownClass: ["c3DropdownClass", "dropdownClass"] }, host: { listeners: { "click": "onClick()" } }, providers: [MAT_DROPDOWN_VALUE_ACCESSOR], exportAs: ["c3DropdownTrigger"], usesOnChanges: true, ngImport: i0 }); }
|
|
107
|
-
}
|
|
108
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.1", ngImport: i0, type: C3DropdownTrigger, decorators: [{
|
|
109
|
-
type: Directive,
|
|
110
|
-
args: [{
|
|
111
|
-
selector: '[c3Dropdown]',
|
|
112
|
-
exportAs: 'c3DropdownTrigger',
|
|
113
|
-
providers: [MAT_DROPDOWN_VALUE_ACCESSOR],
|
|
114
|
-
}]
|
|
115
|
-
}], ctorParameters: () => [{ type: i0.ElementRef }, { type: i1.Overlay }, { type: i0.ViewContainerRef }], propDecorators: { dropdown: [{
|
|
116
|
-
type: Input,
|
|
117
|
-
args: ['c3Dropdown']
|
|
118
|
-
}], dropdownDisabled: [{
|
|
119
|
-
type: Input,
|
|
120
|
-
args: ['c3DropdownDisabled']
|
|
121
|
-
}], dropdownClass: [{
|
|
122
|
-
type: Input,
|
|
123
|
-
args: ['c3DropdownClass']
|
|
124
|
-
}], onClick: [{
|
|
125
|
-
type: HostListener,
|
|
126
|
-
args: ['click']
|
|
127
|
-
}] } });
|
|
128
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYzMtZHJvcGRvd24udHJpZ2dlci5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2MzLWNvbXBvbmVudHMvc3JjL2xpYi9jMy1kcm9wZG93bi9kaXJlY3RpdmVzL2MzLWRyb3Bkb3duLnRyaWdnZXIudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUNMLFNBQVMsRUFDVCxVQUFVLEVBR1YsS0FBSyxFQUVMLFlBQVksR0FHYixNQUFNLGVBQWUsQ0FBQztBQUN2QixPQUFPLEVBQUUsaUJBQWlCLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUNuRCxPQUFPLEVBR0wsYUFBYSxHQUVkLE1BQU0sc0JBQXNCLENBQUM7QUFFOUIsT0FBTyxFQUFFLHFCQUFxQixFQUFFLE1BQU0sdUJBQXVCLENBQUM7QUFDOUQsT0FBTyxFQUFFLGNBQWMsRUFBRSxNQUFNLHFCQUFxQixDQUFDO0FBQ3JELE9BQU8sRUFBRSxLQUFLLEVBQUUsT0FBTyxFQUFFLFlBQVksRUFBRSxTQUFTLEVBQUUsTUFBTSxNQUFNLENBQUM7OztBQUUvRCxNQUFNLENBQUMsTUFBTSwyQkFBMkIsR0FBUTtJQUM5QyxPQUFPLEVBQUUsaUJBQWlCO0lBQzFCLFdBQVcsRUFBRSxVQUFVLENBQUMsR0FBRyxFQUFFLENBQUMsaUJBQWlCLENBQUM7SUFDaEQsS0FBSyxFQUFFLElBQUk7Q0FDWixDQUFDO0FBRUY7Ozs7Ozs7OztHQVNHO0FBTUgsTUFBTSxPQUFPLGlCQUFpQjtJQWlCNUIsd0NBQXdDO0lBQ3hDLElBQ0ksZ0JBQWdCO1FBQ2xCLE9BQU8sSUFBSSxDQUFDLGlCQUFpQixDQUFDO0lBQ2hDLENBQUM7SUFDRCxJQUFJLGdCQUFnQixDQUFDLEtBQWM7UUFDakMsSUFBSSxDQUFDLGlCQUFpQixHQUFHLHFCQUFxQixDQUFDLEtBQUssQ0FBQyxDQUFDO0lBQ3hELENBQUM7SUFNRCxZQUNVLFFBQWlDLEVBQ2pDLFFBQWlCLEVBQ2pCLGlCQUFt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QUMsQ0FBQztJQUNMLENBQUM7SUFFRCx3RkFBd0Y7SUFDaEYsbUJBQW1CO1FBQ3pCLE1BQU0sUUFBUSxHQUFHLElBQUksQ0FBQyxVQUFXLENBQUMsYUFBYSxFQUFFLENBQUM7UUFDbEQsTUFBTSxXQUFXLEdBQUcsSUFBSSxDQUFDLFVBQVcsQ0FBQyxXQUFXLEVBQUUsQ0FBQztRQUVuRCxPQUFPLEtBQUssQ0FBQyxRQUFRLEVBQUUsV0FBVyxDQUFDLENBQUMsSUFBSSxDQUFDLFNBQVMsQ0FBQyxJQUFJLENBQUMsVUFBVSxDQUFDLENBQUMsQ0FBQztJQUN2RSxDQUFDOzhHQW5IVSxpQkFBaUI7a0dBQWpCLGlCQUFpQiwyUEFGakIsQ0FBQywyQkFBMkIsQ0FBQzs7MkZBRTdCLGlCQUFpQjtrQkFMN0IsU0FBUzttQkFBQztvQkFDVCxRQUFRLEVBQUUsY0FBYztvQkFDeEIsUUFBUSxFQUFFLG1CQUFtQjtvQkFDN0IsU0FBUyxFQUFFLENBQUMsMkJBQTJCLENBQUM7aUJBQ3pDO29JQWdCQyxRQUFRO3NCQURQLEtBQUs7dUJBQUMsWUFBWTtnQkFLZixnQkFBZ0I7c0JBRG5CLEtBQUs7dUJBQUMsb0JBQW9CO2dCQVUzQixhQUFhO3NCQURaLEtBQUs7dUJBQUMsaUJBQWlCO2dCQVV4QixPQUFPO3NCQUROLFlBQVk7dUJBQUMsT0FBTyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7XG4gIERpcmVjdGl2ZSxcbiAgZm9yd2FyZFJlZixcbiAgRWxlbWVudFJlZixcbiAgVmlld0NvbnRhaW5lclJlZixcbiAgSW5wdXQsXG4gIE9uRGVzdHJveSxcbiAgSG9zdExpc3RlbmVyLFxuICBPbkNoYW5nZXMsXG4gIFNpbXBsZUNoYW5nZXMsXG59IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgTkdfVkFMVUVfQUNDRVNTT1IgfSBmcm9tICdAYW5ndWxhci9mb3Jtcyc7XG5pbXBvcnQge1xuICBPdmVybGF5LFxuICBPdmVybGF5UmVmLFxuICBPdmVybGF5Q29uZmlnLFxuICBDb25uZWN0ZWRQb3NpdGlvbixcbn0gZnJvbSAnQGFuZ3VsYXIvY2RrL292ZXJsYXknO1xuaW1wb3J0IHsgQzNEcm9wZG93bkNvbXBvbmVudCB9IGZyb20gJy4uL2NvbXBvbmVudHMvYzMtZHJvcGRvd24uY29tcG9uZW50JztcbmltcG9ydCB7IGNvZXJjZUJvb2xlYW5Qcm9wZXJ0eSB9IGZyb20gJ0Bhbmd1bGFyL2Nkay9jb2VyY2lvbic7XG5pbXBvcnQgeyBUZW1wbGF0ZVBvcnRhbCB9IGZyb20gJ0Bhbmd1bGFyL2Nkay9wb3J0YWwnO1xuaW1wb3J0IHsgbWVyZ2UsIFN1YmplY3QsIFN1YnNjcmlwdGlvbiwgdGFrZVVudGlsIH0gZnJvbSAncnhqcyc7XG5cbmV4cG9ydCBjb25zdCBNQVRfRFJPUERPV05fVkFMVUVfQUNDRVNTT1I6IGFueSA9IHtcbiAgcHJvdmlkZTogTkdfVkFMVUVfQUNDRVNTT1IsXG4gIHVzZUV4aXN0aW5nOiBmb3J3YXJkUmVmKCgpID0+IEMzRHJvcGRvd25UcmlnZ2VyKSxcbiAgbXVsdGk6IHRydWUsXG59O1xuXG4vKipcbiAqIEBkZXNjcmlwdGlvbiBUaGUgQzNEcm9wZG93blRyaWdnZXIgZGlyZWN0aXZlIGlzIHVzZWQgdG8gZGlzcGxheSBvciBoaWRlIGEgZHJvcGRvd24gbWVudVxuICogQzNEcm9wZG93bkNvbXBvbmVudCB3aGVuIGFuIGl0ZW0gaXMgY2xpY2tlZC5cbiAqIEBzZWxlY3RvciBbYzNEcm9wZG93bl1cbiAqIEBleHBvcnRBcyBjM0Ryb3Bkb3duVHJpZ2dlclxuICogQGlucHV0IGMzRHJvcGRvd24gLSBBIHJlZmVyZW5jZSB0byBhbiBpbnN0YW5jZSBvZiBDM0Ryb3Bkb3duQ29tcG9uZW50LlxuICogQGlucHV0IGMzRHJvcGRvd25EaXNhYmxlZCAtIEEgYm9vbGVhbiBpbmRpY2F0aW5nIHdoZXRoZXIgdGhlIGRpcmVjdGl2ZSBzaG91bGQgYmUgZGlzYWJsZWQuXG4gKiBAaW5wdXQgYzNEcm9wZG93bkNsYXNzIC0gQSBzdHJpbmcsIGFuIGFycmF5IG9mIHN0cmluZ3MsIGEgc2V0IG9mIHN0cmluZ3Mgb3IgYVxuICogb2JqZWN0IHJlcHJlc2VudGluZyB0aGUgQ1NTIGNsYXNzZXMgdG8gYmUgYXBwbGllZCB0byB0aGUgZHJvcGRvd24gbWVudS5cbiAqL1xuQERpcmVjdGl2ZSh7XG4gIHNlbGVjdG9yOiAnW2MzRHJvcGRvd25dJyxcbiAgZXhwb3J0QXM6ICdjM0Ryb3Bkb3duVHJpZ2dlcicsXG4gIHByb3ZpZGVyczogW01BVF9EUk9QRE9XTl9WQUxVRV9BQ0NFU1NPUl0sXG59KVxuZXhwb3J0IGNsYXNzIEMzRHJvcGRvd25UcmlnZ2VyIGltcGxlbWVudHMgT25DaGFuZ2VzLCBPbkRlc3Ryb3kge1xuICBwcml2YXRlIG92ZXJsYXlSZWY/OiBPdmVybGF5UmVmIHwgbnVsbDtcbiAgcHJpdmF0ZSBfY2xvc2luZ0FjdGlvbnNTdWJzY3JpcHRpb246IFN1YnNjcmlwdGlvbiA9IFN1YnNjcmlwdGlvbi5FTVBUWTtcbiAgcHJpdmF0ZSBfZGVzdHJveWVkID0gbmV3IFN1YmplY3Q8dm9pZD4oKTtcblxuICBwcml2YXRlIF9kcm9wZG93bkNsYXNzOlxuICAgIHwgc3RyaW5nXG4gICAgfCBzdHJpbmdbXVxuICAgIHwgU2V0PHN0cmluZz5cbiAgICB8IHsgW2tleTogc3RyaW5nXTogYW55IH0gPSAnJztcblxuICBwcml2YXRlIF9kcm9wZG93bkRpc2FibGVkOiBib29sZWFuID0gZmFsc2U7XG5cbiAgLyoqIFRoZSBkcm9wZG93biBtZW51IGluc3RhbmNlICovXG4gIEBJbnB1dCgnYzNEcm9wZG93bicpXG4gIGRyb3Bkb3duPzogQzNEcm9wZG93bkNvbXBvbmVudDtcblxuICAvKiogV2hldGhlciB0aGUgZHJvcGRvd24gaXMgZGlzYWJsZWQuICovXG4gIEBJbnB1dCgnYzNEcm9wZG93bkRpc2FibGVkJylcbiAgZ2V0IGRyb3Bkb3duRGlzYWJsZWQoKTogYm9vbGVhbiB7XG4gICAgcmV0dXJuIHRoaXMuX2Ryb3Bkb3duRGlzYWJsZWQ7XG4gIH1cbiAgc2V0IGRyb3Bkb3duRGlzYWJsZWQodmFsdWU6IGJvb2xlYW4pIHtcbiAgICB0aGlzLl9kcm9wZG93bkRpc2FibGVkID0gY29lcmNlQm9vbGVhblByb3BlcnR5KHZhbHVlKTtcbiAgfVxuXG4gIC8qKiBDbGFzc2VzIHRvIGJlIHBhc3NlZCB0byB0aGUgZHJvcGRvd24gbWVudS4gU3VwcG9ydHMgdGhlIHNhbWUgc3ludGF4IGFzIGBuZ0NsYXNzYC4gKi9cbiAgQElucHV0KCdjM0Ryb3Bkb3duQ2xhc3MnKVxuICBkcm9wZG93bkNsYXNzOiBzdHJpbmcgfCBzdHJpbmdbXSB8IFNldDxzdHJpbmc+IHwgeyBba2V5OiBzdHJpbmddOiBhbnkgfSA9ICcnO1xuXG4gIGNvbnN0cnVjdG9yKFxuICAgIHByaXZhdGUgX2VsZW1lbnQ6IEVsZW1lbnRSZWY8SFRNTEVsZW1lbnQ+LFxuICAgIHByaXZhdGUgX292ZXJsYXk6IE92ZXJsYXksXG4gICAgcHJpdmF0ZSBfdmlld0NvbnRhaW5lclJlZjogVmlld0NvbnRhaW5lclJlZlxuICApIHt9XG5cbiAgQEhvc3RMaXN0ZW5lcignY2xpY2snKVxuICBvbkNsaWNrKCkge1xuICAgIHRoaXMuc2hvdygpO1xuICB9XG5cbiAgbmdPbkNoYW5nZXMoY2hhbmdlczogU2ltcGxlQ2hhbmdlcykge1xuICAgIGlmIChjaGFuZ2VzWydkcm9wZG93bkNsYXNzJ10gJiYgdGhpcy5kcm9wZG93bikge1xuICAgICAgdGhpcy5kcm9wZG93bi5kcm9wZG93bkNsYXNzID0gdGhpcy5fZHJvcGRvd25DbGFzcztcbiAgICAgIHRoaXMuZHJvcGRvd24uX21hcmtGb3JDaGVjaygpO1xuICAgIH1cbiAgfVxuXG4gIG5nT25EZXN0cm95KCkge1xuICAgIHRoaXMuX2Rlc3Ryb3llZC5uZXh0KCk7XG4gICAgdGhpcy5fZGVzdHJveWVkLmNvbXBsZXRlKCk7XG4gICAgdGhpcy5fY2xvc2luZ0FjdGlvbnNTdWJzY3JpcHRpb24udW5zdWJzY3JpYmUoKTtcbiAgICB0aGlzLmNsb3NlKCk7XG4gIH1cblxuICBwdWJsaWMgc2hvdygpOiB2b2lkIHtcbiAgICBpZiAoIXRoaXMuZHJvcGRvd24pIHJldHVybjtcblxuICAgIGNvbnN0IG92ZXJsYXlSZWYgPSB0aGlzLl9vdmVybGF5LmNyZWF0ZSh0aGlzLl9nZXRPdmVybGF5Q29uZmlnKCkpO1xuICAgIGNvbnN0IHBvcnRhbCA9IG5ldyBUZW1wbGF0ZVBvcnRhbChcbiAgICAgIHRoaXMuZHJvcGRvd24udGVtcGxhdGUsXG4gICAgICB0aGlzLl92aWV3Q29udGFpbmVyUmVmXG4gICAgKTtcbiAgICBvdmVybGF5UmVmLmF0dGFjaChwb3J0YWwpO1xuXG4gICAgdGhpcy5vdmVybGF5UmVmID0gb3ZlcmxheVJlZjtcblxuICAgIHRoaXMuX2Nsb3NpbmdBY3Rpb25zU3Vic2NyaXB0aW9uID0gdGhpcy5fbWVudUNsb3NpbmdBY3Rpb25zKCkuc3Vic2NyaWJlKFxuICAgICAgKCkgPT4gdGhpcy5jbG9zZSgpXG4gICAgKTtcbiAgfVxuXG4gIHB1YmxpYyBjbG9zZSgpOiB2b2lkIHtcbiAgICBpZiAodGhpcy5vdmVybGF5UmVmICYmIHRoaXMub3ZlcmxheVJlZi5oYXNBdHRhY2hlZCgpKVxuICAgICAgdGhpcy5vdmVybGF5UmVmLmRldGFjaCgpO1xuICB9XG5cbiAgcHJpdmF0ZSBfZ2V0T3ZlcmxheUNvbmZpZygpOiBPdmVybGF5Q29uZmlnIHtcbiAgICBjb25zdCBiZWxvd1Bvc2l0aW9uOiBDb25uZWN0ZWRQb3NpdGlvbiA9IHtcbiAgICAgIG9yaWdpblg6ICdzdGFydCcsXG4gICAgICBvcmlnaW5ZOiAnYm90dG9tJyxcbiAgICAgIG92ZXJsYXlYOiAnc3RhcnQnLFxuICAgICAgb3ZlcmxheVk6ICd0b3AnLFxuICAgIH07XG4gICAgY29uc3QgYWJvdmVQb3NpdGlvbjogQ29ubmVjdGVkUG9zaXRpb24gPSB7XG4gICAgICBvcmlnaW5YOiAnc3RhcnQnLFxuICAgICAgb3JpZ2luWTogJ3RvcCcsXG4gICAgICBvdmVybGF5WDogJ3N0YXJ0JyxcbiAgICAgIG92ZXJsYXlZOiAnYm90dG9tJyxcblxuICAgICAgLy8gVGhlIG92ZXJsYXkgZWRnZSBjb25uZWN0ZWQgdG8gdGhlIHRyaWdnZXIgc2hvdWxkIGhhdmUgc3F1YXJlZCBjb3JuZXJzLCB3aGlsZVxuICAgICAgLy8gdGhlIG9wcG9zaXRlIGVuZCBoYXMgcm91bmRlZCBjb3JuZXJzLiBXZSBhcHBseSBhIENTUyBjbGFzcyB0byBzd2FwIHRoZVxuICAgICAgLy8gYm9yZGVyLXJhZGl1cyBiYXNlZCBvbiB0aGUgb3ZlcmxheSBwb3NpdGlvbi5cbiAgICAgIHBhbmVsQ2xhc3M6ICdtYXQtYXV0b2NvbXBsZXRlLXBhbmVsLWFib3ZlJyxcbiAgICB9O1xuXG4gICAgY29uc3QgcG9zaXRpb25TdHJhdGVneSA9IHRoaXMuX292ZXJsYXlcbiAgICAgIC5wb3NpdGlvbigpXG4gICAgICAuZmxleGlibGVDb25uZWN0ZWRUbyh0aGlzLl9lbGVtZW50KVxuICAgICAgLndpdGhMb2NrZWRQb3NpdGlvbigpXG4gICAgICAud2l0aFBvc2l0aW9ucyhbYmVsb3dQb3NpdGlvbiwgYWJvdmVQb3NpdGlvbl0pO1xuXG4gICAgcmV0dXJuIG5ldyBPdmVybGF5Q29uZmlnKHtcbiAgICAgIHBvc2l0aW9uU3RyYXRlZ3ksXG4gICAgICBiYWNrZHJvcENsYXNzOiAnY2RrLW92ZXJsYXktdHJhbnNwYXJlbnQtYmFja2Ryb3AnLFxuICAgICAgaGFzQmFja2Ryb3A6IHRydWUsXG4gICAgfSk7XG4gIH1cblxuICAvKiogUmV0dXJucyBhIHN0cmVhbSB0aGF0IGVtaXRzIHdoZW5ldmVyIGFuIGFjdGlvbiB0aGF0IHNob3VsZCBjbG9zZSB0aGUgbWVudSBvY2N1cnMuICovXG4gIHByaXZhdGUgX21lbnVDbG9zaW5nQWN0aW9ucygpIHtcbiAgICBjb25zdCBiYWNrZHJvcCA9IHRoaXMub3ZlcmxheVJlZiEuYmFja2Ryb3BDbGljaygpO1xuICAgIGNvbnN0IGRldGFjaG1lbnRzID0gdGhpcy5vdmVybGF5UmVmIS5kZXRhY2htZW50cygpO1xuXG4gICAgcmV0dXJuIG1lcmdlKGJhY2tkcm9wLCBkZXRhY2htZW50cykucGlwZSh0YWtlVW50aWwodGhpcy5fZGVzdHJveWVkKSk7XG4gIH1cbn1cbiJdfQ==
|
|
@@ -1,43 +0,0 @@
|
|
|
1
|
-
import { NgModule } from '@angular/core';
|
|
2
|
-
import { CommonModule } from '@angular/common';
|
|
3
|
-
import { C3ExpansionHeaderComponent } from './components/c3-expansion-header/c3-expansion-header.component';
|
|
4
|
-
import { C3ExpansionComponent } from './components/c3-expansion/c3-expansion.component';
|
|
5
|
-
import { MatButtonModule } from '@angular/material/button';
|
|
6
|
-
import { MatIconModule } from '@angular/material/icon';
|
|
7
|
-
import { MatToolbarModule } from '@angular/material/toolbar';
|
|
8
|
-
import { MatTooltipModule } from '@angular/material/tooltip';
|
|
9
|
-
import { C3AutoAnimateDirective } from '../c3-auto-animate/c3-auto-animate.directive';
|
|
10
|
-
import * as i0 from "@angular/core";
|
|
11
|
-
export class C3ExpansionModule {
|
|
12
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.1", ngImport: i0, type: C3ExpansionModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule }); }
|
|
13
|
-
static { this.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "18.2.1", ngImport: i0, type: C3ExpansionModule, declarations: [C3ExpansionComponent, C3ExpansionHeaderComponent], imports: [CommonModule,
|
|
14
|
-
C3AutoAnimateDirective,
|
|
15
|
-
MatButtonModule,
|
|
16
|
-
MatIconModule,
|
|
17
|
-
MatTooltipModule,
|
|
18
|
-
MatButtonModule,
|
|
19
|
-
MatToolbarModule], exports: [C3ExpansionComponent, C3ExpansionHeaderComponent] }); }
|
|
20
|
-
static { this.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "18.2.1", ngImport: i0, type: C3ExpansionModule, imports: [CommonModule,
|
|
21
|
-
MatButtonModule,
|
|
22
|
-
MatIconModule,
|
|
23
|
-
MatTooltipModule,
|
|
24
|
-
MatButtonModule,
|
|
25
|
-
MatToolbarModule] }); }
|
|
26
|
-
}
|
|
27
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.1", ngImport: i0, type: C3ExpansionModule, decorators: [{
|
|
28
|
-
type: NgModule,
|
|
29
|
-
args: [{
|
|
30
|
-
declarations: [C3ExpansionComponent, C3ExpansionHeaderComponent],
|
|
31
|
-
imports: [
|
|
32
|
-
CommonModule,
|
|
33
|
-
C3AutoAnimateDirective,
|
|
34
|
-
MatButtonModule,
|
|
35
|
-
MatIconModule,
|
|
36
|
-
MatTooltipModule,
|
|
37
|
-
MatButtonModule,
|
|
38
|
-
MatToolbarModule,
|
|
39
|
-
],
|
|
40
|
-
exports: [C3ExpansionComponent, C3ExpansionHeaderComponent],
|
|
41
|
-
}]
|
|
42
|
-
}] });
|
|
43
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYzMtZXhwYW5zaW9uLm1vZHVsZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2MzLWNvbXBvbmVudHMvc3JjL2xpYi9jMy1leHBhbnNpb24vYzMtZXhwYW5zaW9uLm1vZHVsZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsUUFBUSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQ3pDLE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUMvQyxPQUFPLEVBQUUsMEJBQTBCLEVBQUUsTUFBTSxnRUFBZ0UsQ0FBQztBQUM1RyxPQUFPLEVBQUUsb0JBQW9CLEVBQUUsTUFBTSxrREFBa0QsQ0FBQztBQUN4RixPQUFPLEVBQUUsZUFBZSxFQUFFLE1BQU0sMEJBQTBCLENBQUM7QUFDM0QsT0FBTyxFQUFFLGFBQWEsRUFBRSxNQUFNLHdCQUF3QixDQUFDO0FBQ3ZELE9BQU8sRUFBRSxnQkFBZ0IsRUFBRSxNQUFNLDJCQUEyQixDQUFDO0FBQzdELE9BQU8sRUFBRSxnQkFBZ0IsRUFBRSxNQUFNLDJCQUEyQixDQUFDO0FBQzdELE9BQU8sRUFBRSxzQkFBc0IsRUFBRSxNQUFNLDhDQUE4QyxDQUFDOztBQWV0RixNQUFNLE9BQU8saUJBQWlCOzhHQUFqQixpQkFBaUI7K0dBQWpCLGlCQUFpQixpQkFaYixvQkFBb0IsRUFBRSwwQkFBMEIsYUFFN0QsWUFBWTtZQUNaLHNCQUFzQjtZQUN0QixlQUFlO1lBQ2YsYUFBYTtZQUNiLGdCQUFnQjtZQUNoQixlQUFlO1lBQ2YsZ0JBQWdCLGFBRVIsb0JBQW9CLEVBQUUsMEJBQTBCOytHQUUvQyxpQkFBaUIsWUFWMUIsWUFBWTtZQUVaLGVBQWU7WUFDZixhQUFhO1lBQ2IsZ0JBQWdCO1lBQ2hCLGVBQWU7WUFDZixnQkFBZ0I7OzJGQUlQLGlCQUFpQjtrQkFiN0IsUUFBUTttQkFBQztvQkFDUixZQUFZLEVBQUUsQ0FBQyxvQkFBb0IsRUFBRSwwQkFBMEIsQ0FBQztvQkFDaEUsT0FBTyxFQUFFO3dCQUNQLFlBQVk7d0JBQ1osc0JBQXNCO3dCQUN0QixlQUFlO3dCQUNmLGFBQWE7d0JBQ2IsZ0JBQWdCO3dCQUNoQixlQUFlO3dCQUNmLGdCQUFnQjtxQkFDakI7b0JBQ0QsT0FBTyxFQUFFLENBQUMsb0JBQW9CLEVBQUUsMEJBQTBCLENBQUM7aUJBQzVEIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgTmdNb2R1bGUgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IENvbW1vbk1vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbic7XG5pbXBvcnQgeyBDM0V4cGFuc2lvbkhlYWRlckNvbXBvbmVudCB9IGZyb20gJy4vY29tcG9uZW50cy9jMy1leHBhbnNpb24taGVhZGVyL2MzLWV4cGFuc2lvbi1oZWFkZXIuY29tcG9uZW50JztcbmltcG9ydCB7IEMzRXhwYW5zaW9uQ29tcG9uZW50IH0gZnJvbSAnLi9jb21wb25lbnRzL2MzLWV4cGFuc2lvbi9jMy1leHBhbnNpb24uY29tcG9uZW50JztcbmltcG9ydCB7IE1hdEJ1dHRvbk1vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL21hdGVyaWFsL2J1dHRvbic7XG5pbXBvcnQgeyBNYXRJY29uTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvbWF0ZXJpYWwvaWNvbic7XG5pbXBvcnQgeyBNYXRUb29sYmFyTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvbWF0ZXJpYWwvdG9vbGJhcic7XG5pbXBvcnQgeyBNYXRUb29sdGlwTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvbWF0ZXJpYWwvdG9vbHRpcCc7XG5pbXBvcnQgeyBDM0F1dG9BbmltYXRlRGlyZWN0aXZlIH0gZnJvbSAnLi4vYzMtYXV0by1hbmltYXRlL2MzLWF1dG8tYW5pbWF0ZS5kaXJlY3RpdmUnO1xuXG5ATmdNb2R1bGUoe1xuICBkZWNsYXJhdGlvbnM6IFtDM0V4cGFuc2lvbkNvbXBvbmVudCwgQzNFeHBhbnNpb25IZWFkZXJDb21wb25lbnRdLFxuICBpbXBvcnRzOiBbXG4gICAgQ29tbW9uTW9kdWxlLFxuICAgIEMzQXV0b0FuaW1hdGVEaXJlY3RpdmUsXG4gICAgTWF0QnV0dG9uTW9kdWxlLFxuICAgIE1hdEljb25Nb2R1bGUsXG4gICAgTWF0VG9vbHRpcE1vZHVsZSxcbiAgICBNYXRCdXR0b25Nb2R1bGUsXG4gICAgTWF0VG9vbGJhck1vZHVsZSxcbiAgXSxcbiAgZXhwb3J0czogW0MzRXhwYW5zaW9uQ29tcG9uZW50LCBDM0V4cGFuc2lvbkhlYWRlckNvbXBvbmVudF0sXG59KVxuZXhwb3J0IGNsYXNzIEMzRXhwYW5zaW9uTW9kdWxlIHt9XG4iXX0=
|
|
@@ -1,43 +0,0 @@
|
|
|
1
|
-
import { Component, contentChild, effect, ElementRef, HostBinding, inject, input, model, } from '@angular/core';
|
|
2
|
-
import { C3AutoAnimateDirective } from '../../../c3-auto-animate/c3-auto-animate.directive';
|
|
3
|
-
import { C3ExpansionHeaderComponent } from '../c3-expansion-header/c3-expansion-header.component';
|
|
4
|
-
import * as i0 from "@angular/core";
|
|
5
|
-
import * as i1 from "../../../c3-auto-animate/c3-auto-animate.directive";
|
|
6
|
-
import * as i2 from "@angular/common";
|
|
7
|
-
import * as i3 from "../c3-expansion-header/c3-expansion-header.component";
|
|
8
|
-
export class C3ExpansionComponent {
|
|
9
|
-
get hostClass() {
|
|
10
|
-
return 'c3-expansion';
|
|
11
|
-
}
|
|
12
|
-
constructor() {
|
|
13
|
-
this.headerClass = input('c3-expansion-header');
|
|
14
|
-
this.isExpanded = model(false);
|
|
15
|
-
this._elementRef = inject(ElementRef);
|
|
16
|
-
this.header = contentChild(C3ExpansionHeaderComponent);
|
|
17
|
-
effect(() => {
|
|
18
|
-
this.expandSubsciption?.unsubscribe();
|
|
19
|
-
this.header()?.toggleExpand.subscribe(() => this.toggleExpand());
|
|
20
|
-
});
|
|
21
|
-
}
|
|
22
|
-
ngOnDestroy() {
|
|
23
|
-
this.expandSubsciption?.unsubscribe();
|
|
24
|
-
}
|
|
25
|
-
toggleExpand() {
|
|
26
|
-
this.isExpanded.set(!this.isExpanded());
|
|
27
|
-
}
|
|
28
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.1", ngImport: i0, type: C3ExpansionComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
|
|
29
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.2.0", version: "18.2.1", type: C3ExpansionComponent, selector: "c3-expansion", inputs: { headerClass: { classPropertyName: "headerClass", publicName: "headerClass", isSignal: true, isRequired: false, transformFunction: null }, isExpanded: { classPropertyName: "isExpanded", publicName: "isExpanded", isSignal: true, isRequired: false, transformFunction: null } }, outputs: { isExpanded: "isExpandedChange" }, host: { properties: { "class": "this.hostClass" } }, queries: [{ propertyName: "header", first: true, predicate: C3ExpansionHeaderComponent, descendants: true, isSignal: true }], hostDirectives: [{ directive: i1.C3AutoAnimateDirective, inputs: ["options", "options"] }], ngImport: i0, template: "<div [class]=\"headerClass()\">\n <ng-content select=\"c3-expansion-header\">\n <c3-expansion-header />\n </ng-content>\n</div>\n\n<div *ngIf=\"isExpanded()\">\n <ng-content></ng-content>\n</div>\n", dependencies: [{ kind: "directive", type: i2.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "component", type: i3.C3ExpansionHeaderComponent, selector: "c3-expansion-header", inputs: ["title", "isExpanded"], outputs: ["toggleExpand"] }] }); }
|
|
30
|
-
}
|
|
31
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.1", ngImport: i0, type: C3ExpansionComponent, decorators: [{
|
|
32
|
-
type: Component,
|
|
33
|
-
args: [{ selector: 'c3-expansion', hostDirectives: [
|
|
34
|
-
{
|
|
35
|
-
directive: C3AutoAnimateDirective,
|
|
36
|
-
inputs: ['options'],
|
|
37
|
-
},
|
|
38
|
-
], template: "<div [class]=\"headerClass()\">\n <ng-content select=\"c3-expansion-header\">\n <c3-expansion-header />\n </ng-content>\n</div>\n\n<div *ngIf=\"isExpanded()\">\n <ng-content></ng-content>\n</div>\n" }]
|
|
39
|
-
}], ctorParameters: () => [], propDecorators: { hostClass: [{
|
|
40
|
-
type: HostBinding,
|
|
41
|
-
args: ['class']
|
|
42
|
-
}] } });
|
|
43
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYzMtZXhwYW5zaW9uLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2MzLWNvbXBvbmVudHMvc3JjL2xpYi9jMy1leHBhbnNpb24vY29tcG9uZW50cy9jMy1leHBhbnNpb24vYzMtZXhwYW5zaW9uLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2MzLWNvbXBvbmVudHMvc3JjL2xpYi9jMy1leHBhbnNpb24vY29tcG9uZW50cy9jMy1leHBhbnNpb24vYzMtZXhwYW5zaW9uLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFDTCxTQUFTLEVBQ1QsWUFBWSxFQUNaLE1BQU0sRUFDTixVQUFVLEVBQ1YsV0FBVyxFQUNYLE1BQU0sRUFDTixLQUFLLEVBQ0wsS0FBSyxHQUVOLE1BQU0sZUFBZSxDQUFDO0FBQ3ZCLE9BQU8sRUFBRSxzQkFBc0IsRUFBRSxNQUFNLG9EQUFvRCxDQUFDO0FBQzVGLE9BQU8sRUFBRSwwQkFBMEIsRUFBRSxNQUFNLHNEQUFzRCxDQUFDOzs7OztBQWFsRyxNQUFNLE9BQU8sb0JBQW9CO0lBSS9CLElBQTBCLFNBQVM7UUFDakMsT0FBTyxjQUFjLENBQUM7SUFDeEIsQ0FBQztJQU9EO1FBWk8sZ0JBQVcsR0FBRyxLQUFLLENBQVMscUJBQXFCLENBQUMsQ0FBQztRQUNuRCxlQUFVLEdBQUcsS0FBSyxDQUFVLEtBQUssQ0FBQyxDQUFDO1FBTTFCLGdCQUFXLEdBQUcsTUFBTSxDQUFDLFVBQVUsQ0FBQyxDQUFDO1FBQ2pDLFdBQU0sR0FBRyxZQUFZLENBQUMsMEJBQTBCLENBQUMsQ0FBQztRQUtoRSxNQUFNLENBQUMsR0FBRyxFQUFFO1lBQ1YsSUFBSSxDQUFDLGlCQUFpQixFQUFFLFdBQVcsRUFBRSxDQUFDO1lBRXRDLElBQUksQ0FBQyxNQUFNLEVBQUUsRUFBRSxZQUFZLENBQUMsU0FBUyxDQUFDLEdBQUcsRUFBRSxDQUFDLElBQUksQ0FBQyxZQUFZLEVBQUUsQ0FBQyxDQUFDO1FBQ25FLENBQUMsQ0FBQyxDQUFDO0lBQ0wsQ0FBQztJQUVELFdBQVc7UUFDVCxJQUFJLENBQUMsaUJBQWlCLEVBQUUsV0FBVyxFQUFFLENBQUM7SUFDeEMsQ0FBQztJQUVELFlBQVk7UUFDVixJQUFJLENBQUMsVUFBVSxDQUFDLEdBQUcsQ0FBQyxDQUFDLElBQUksQ0FBQyxVQUFVLEVBQUUsQ0FBQyxDQUFDO0lBQzFDLENBQUM7OEdBM0JVLG9CQUFvQjtrR0FBcEIsb0JBQW9CLHVkQVNPLDBCQUEwQiw0SkNsQ2xFLDZNQVNBOzsyRkRnQmEsb0JBQW9CO2tCQVZoQyxTQUFTOytCQUNFLGNBQWMsa0JBRVI7d0JBQ2Q7NEJBQ0UsU0FBUyxFQUFFLHNCQUFzQjs0QkFDakMsTUFBTSxFQUFFLENBQUMsU0FBUyxDQUFDO3lCQUNwQjtxQkFDRjt3REFNeUIsU0FBUztzQkFBbEMsV0FBVzt1QkFBQyxPQUFPIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtcbiAgQ29tcG9uZW50LFxuICBjb250ZW50Q2hpbGQsXG4gIGVmZmVjdCxcbiAgRWxlbWVudFJlZixcbiAgSG9zdEJpbmRpbmcsXG4gIGluamVjdCxcbiAgaW5wdXQsXG4gIG1vZGVsLFxuICBPbkRlc3Ryb3ksXG59IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgQzNBdXRvQW5pbWF0ZURpcmVjdGl2ZSB9IGZyb20gJy4uLy4uLy4uL2MzLWF1dG8tYW5pbWF0ZS9jMy1hdXRvLWFuaW1hdGUuZGlyZWN0aXZlJztcbmltcG9ydCB7IEMzRXhwYW5zaW9uSGVhZGVyQ29tcG9uZW50IH0gZnJvbSAnLi4vYzMtZXhwYW5zaW9uLWhlYWRlci9jMy1leHBhbnNpb24taGVhZGVyLmNvbXBvbmVudCc7XG5pbXBvcnQgeyBTdWJzY3JpcHRpb24gfSBmcm9tICdyeGpzJztcblxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAnYzMtZXhwYW5zaW9uJyxcbiAgdGVtcGxhdGVVcmw6ICcuL2MzLWV4cGFuc2lvbi5jb21wb25lbnQuaHRtbCcsXG4gIGhvc3REaXJlY3RpdmVzOiBbXG4gICAge1xuICAgICAgZGlyZWN0aXZlOiBDM0F1dG9BbmltYXRlRGlyZWN0aXZlLFxuICAgICAgaW5wdXRzOiBbJ29wdGlvbnMnXSxcbiAgICB9LFxuICBdLFxufSlcbmV4cG9ydCBjbGFzcyBDM0V4cGFuc2lvbkNvbXBvbmVudCBpbXBsZW1lbnRzIE9uRGVzdHJveSB7XG4gIHB1YmxpYyBoZWFkZXJDbGFzcyA9IGlucHV0PHN0cmluZz4oJ2MzLWV4cGFuc2lvbi1oZWFkZXInKTtcbiAgcHVibGljIGlzRXhwYW5kZWQgPSBtb2RlbDxib29sZWFuPihmYWxzZSk7XG5cbiAgQEhvc3RCaW5kaW5nKCdjbGFzcycpIGdldCBob3N0Q2xhc3MoKSB7XG4gICAgcmV0dXJuICdjMy1leHBhbnNpb24nO1xuICB9XG5cbiAgcHVibGljIHJlYWRvbmx5IF9lbGVtZW50UmVmID0gaW5qZWN0KEVsZW1lbnRSZWYpO1xuICBwdWJsaWMgcmVhZG9ubHkgaGVhZGVyID0gY29udGVudENoaWxkKEMzRXhwYW5zaW9uSGVhZGVyQ29tcG9uZW50KTtcblxuICBwcml2YXRlIGV4cGFuZFN1YnNjaXB0aW9uOiBTdWJzY3JpcHRpb24gfCB1bmRlZmluZWQ7XG5cbiAgY29uc3RydWN0b3IoKSB7XG4gICAgZWZmZWN0KCgpID0+IHtcbiAgICAgIHRoaXMuZXhwYW5kU3Vic2NpcHRpb24/LnVuc3Vic2NyaWJlKCk7XG5cbiAgICAgIHRoaXMuaGVhZGVyKCk/LnRvZ2dsZUV4cGFuZC5zdWJzY3JpYmUoKCkgPT4gdGhpcy50b2dnbGVFeHBhbmQoKSk7XG4gICAgfSk7XG4gIH1cblxuICBuZ09uRGVzdHJveSgpIHtcbiAgICB0aGlzLmV4cGFuZFN1YnNjaXB0aW9uPy51bnN1YnNjcmliZSgpO1xuICB9XG5cbiAgdG9nZ2xlRXhwYW5kKCkge1xuICAgIHRoaXMuaXNFeHBhbmRlZC5zZXQoIXRoaXMuaXNFeHBhbmRlZCgpKTtcbiAgfVxufVxuIiwiPGRpdiBbY2xhc3NdPVwiaGVhZGVyQ2xhc3MoKVwiPlxuICA8bmctY29udGVudCBzZWxlY3Q9XCJjMy1leHBhbnNpb24taGVhZGVyXCI+XG4gICAgPGMzLWV4cGFuc2lvbi1oZWFkZXIgLz5cbiAgPC9uZy1jb250ZW50PlxuPC9kaXY+XG5cbjxkaXYgKm5nSWY9XCJpc0V4cGFuZGVkKClcIj5cbiAgPG5nLWNvbnRlbnQ+PC9uZy1jb250ZW50PlxuPC9kaXY+XG4iXX0=
|
package/esm2022/lib/c3-expansion/components/c3-expansion-header/c3-expansion-header.component.mjs
DELETED
|
@@ -1,25 +0,0 @@
|
|
|
1
|
-
import { Component, HostBinding, ViewEncapsulation, input, output, } from '@angular/core';
|
|
2
|
-
import * as i0 from "@angular/core";
|
|
3
|
-
import * as i1 from "@angular/material/button";
|
|
4
|
-
import * as i2 from "@angular/material/icon";
|
|
5
|
-
import * as i3 from "@angular/material/tooltip";
|
|
6
|
-
export class C3ExpansionHeaderComponent {
|
|
7
|
-
constructor() {
|
|
8
|
-
this.title = input();
|
|
9
|
-
this.isExpanded = input(false);
|
|
10
|
-
this.toggleExpand = output();
|
|
11
|
-
}
|
|
12
|
-
get hostClass() {
|
|
13
|
-
return 'c3-expansion-header';
|
|
14
|
-
}
|
|
15
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.1", ngImport: i0, type: C3ExpansionHeaderComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
|
|
16
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "18.2.1", type: C3ExpansionHeaderComponent, selector: "c3-expansion-header", inputs: { title: { classPropertyName: "title", publicName: "title", isSignal: true, isRequired: false, transformFunction: null }, isExpanded: { classPropertyName: "isExpanded", publicName: "isExpanded", isSignal: true, isRequired: false, transformFunction: null } }, outputs: { toggleExpand: "toggleExpand" }, host: { properties: { "class": "this.hostClass" } }, ngImport: i0, template: "<ng-content>\n @if(title()) {\n <h4 class=\"text-lg\">\n {{ title() }}\n </h4>\n }\n <button\n mat-icon-button\n (click)=\"toggleExpand.emit()\"\n [matTooltip]=\"isExpanded() ? 'R\u00E9duire' : 'D\u00E9velopper'\"\n >\n <mat-icon>{{\n isExpanded() ? \"expand_less\" : \"expand_more\"\n }}</mat-icon>\n </button>\n</ng-content>\n", dependencies: [{ kind: "component", type: i1.MatIconButton, selector: "button[mat-icon-button]", exportAs: ["matButton"] }, { kind: "component", type: i2.MatIcon, selector: "mat-icon", inputs: ["color", "inline", "svgIcon", "fontSet", "fontIcon"], exportAs: ["matIcon"] }, { kind: "directive", type: i3.MatTooltip, selector: "[matTooltip]", inputs: ["matTooltipPosition", "matTooltipPositionAtOrigin", "matTooltipDisabled", "matTooltipShowDelay", "matTooltipHideDelay", "matTooltipTouchGestures", "matTooltip", "matTooltipClass"], exportAs: ["matTooltip"] }], encapsulation: i0.ViewEncapsulation.None }); }
|
|
17
|
-
}
|
|
18
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.1", ngImport: i0, type: C3ExpansionHeaderComponent, decorators: [{
|
|
19
|
-
type: Component,
|
|
20
|
-
args: [{ selector: 'c3-expansion-header', encapsulation: ViewEncapsulation.None, template: "<ng-content>\n @if(title()) {\n <h4 class=\"text-lg\">\n {{ title() }}\n </h4>\n }\n <button\n mat-icon-button\n (click)=\"toggleExpand.emit()\"\n [matTooltip]=\"isExpanded() ? 'R\u00E9duire' : 'D\u00E9velopper'\"\n >\n <mat-icon>{{\n isExpanded() ? \"expand_less\" : \"expand_more\"\n }}</mat-icon>\n </button>\n</ng-content>\n" }]
|
|
21
|
-
}], propDecorators: { hostClass: [{
|
|
22
|
-
type: HostBinding,
|
|
23
|
-
args: ['class']
|
|
24
|
-
}] } });
|
|
25
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYzMtZXhwYW5zaW9uLWhlYWRlci5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9jMy1jb21wb25lbnRzL3NyYy9saWIvYzMtZXhwYW5zaW9uL2NvbXBvbmVudHMvYzMtZXhwYW5zaW9uLWhlYWRlci9jMy1leHBhbnNpb24taGVhZGVyLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2MzLWNvbXBvbmVudHMvc3JjL2xpYi9jMy1leHBhbnNpb24vY29tcG9uZW50cy9jMy1leHBhbnNpb24taGVhZGVyL2MzLWV4cGFuc2lvbi1oZWFkZXIuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUNMLFNBQVMsRUFDVCxXQUFXLEVBQ1gsaUJBQWlCLEVBQ2pCLEtBQUssRUFDTCxNQUFNLEdBQ1AsTUFBTSxlQUFlLENBQUM7Ozs7O0FBT3ZCLE1BQU0sT0FBTywwQkFBMEI7SUFMdkM7UUFNUyxVQUFLLEdBQUcsS0FBSyxFQUFVLENBQUM7UUFDeEIsZUFBVSxHQUFHLEtBQUssQ0FBVSxLQUFLLENBQUMsQ0FBQztRQUNuQyxpQkFBWSxHQUFHLE1BQU0sRUFBRSxDQUFDO0tBS2hDO0lBSEMsSUFBMEIsU0FBUztRQUNqQyxPQUFPLHFCQUFxQixDQUFDO0lBQy9CLENBQUM7OEdBUFUsMEJBQTBCO2tHQUExQiwwQkFBMEIsc2FDYnZDLDhXQWdCQTs7MkZESGEsMEJBQTBCO2tCQUx0QyxTQUFTOytCQUNFLHFCQUFxQixpQkFFaEIsaUJBQWlCLENBQUMsSUFBSTs4QkFPWCxTQUFTO3NCQUFsQyxXQUFXO3VCQUFDLE9BQU8iLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge1xuICBDb21wb25lbnQsXG4gIEhvc3RCaW5kaW5nLFxuICBWaWV3RW5jYXBzdWxhdGlvbixcbiAgaW5wdXQsXG4gIG91dHB1dCxcbn0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5cbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ2MzLWV4cGFuc2lvbi1oZWFkZXInLFxuICB0ZW1wbGF0ZVVybDogJy4vYzMtZXhwYW5zaW9uLWhlYWRlci5jb21wb25lbnQuaHRtbCcsXG4gIGVuY2Fwc3VsYXRpb246IFZpZXdFbmNhcHN1bGF0aW9uLk5vbmUsXG59KVxuZXhwb3J0IGNsYXNzIEMzRXhwYW5zaW9uSGVhZGVyQ29tcG9uZW50IHtcbiAgcHVibGljIHRpdGxlID0gaW5wdXQ8c3RyaW5nPigpO1xuICBwdWJsaWMgaXNFeHBhbmRlZCA9IGlucHV0PGJvb2xlYW4+KGZhbHNlKTtcbiAgcHVibGljIHRvZ2dsZUV4cGFuZCA9IG91dHB1dCgpO1xuXG4gIEBIb3N0QmluZGluZygnY2xhc3MnKSBnZXQgaG9zdENsYXNzKCkge1xuICAgIHJldHVybiAnYzMtZXhwYW5zaW9uLWhlYWRlcic7XG4gIH1cbn1cbiIsIjxuZy1jb250ZW50PlxuICBAaWYodGl0bGUoKSkge1xuICAgIDxoNCBjbGFzcz1cInRleHQtbGdcIj5cbiAgICAgIHt7IHRpdGxlKCkgfX1cbiAgICA8L2g0PlxuICB9XG4gIDxidXR0b25cbiAgICBtYXQtaWNvbi1idXR0b25cbiAgICAoY2xpY2spPVwidG9nZ2xlRXhwYW5kLmVtaXQoKVwiXG4gICAgW21hdFRvb2x0aXBdPVwiaXNFeHBhbmRlZCgpID8gJ1LDqWR1aXJlJyA6ICdEw6l2ZWxvcHBlcidcIlxuICA+XG4gICAgPG1hdC1pY29uPnt7XG4gICAgICBpc0V4cGFuZGVkKCkgPyBcImV4cGFuZF9sZXNzXCIgOiBcImV4cGFuZF9tb3JlXCJcbiAgICB9fTwvbWF0LWljb24+XG4gIDwvYnV0dG9uPlxuPC9uZy1jb250ZW50PlxuIl19
|
package/esm2022/lib/c3-file-displayer/c3-file-display-card/c3-file-display-card.component.mjs
DELETED
|
@@ -1,48 +0,0 @@
|
|
|
1
|
-
import { CommonModule } from '@angular/common';
|
|
2
|
-
import { Component, computed, input, output } from '@angular/core';
|
|
3
|
-
import { MatButtonModule } from '@angular/material/button';
|
|
4
|
-
import { MatIconModule } from '@angular/material/icon';
|
|
5
|
-
import * as i0 from "@angular/core";
|
|
6
|
-
import * as i1 from "@angular/common";
|
|
7
|
-
import * as i2 from "@angular/material/button";
|
|
8
|
-
import * as i3 from "@angular/material/icon";
|
|
9
|
-
export class C3FileDisplayCardComponent {
|
|
10
|
-
constructor() {
|
|
11
|
-
this.fileObjectUrl = input.required();
|
|
12
|
-
this.displayFn = input((file) => file.name);
|
|
13
|
-
this.deletable = input(false);
|
|
14
|
-
this.size = input('32');
|
|
15
|
-
this.onDelete = output();
|
|
16
|
-
this.getFileType = computed(() => {
|
|
17
|
-
const file = this.fileObjectUrl();
|
|
18
|
-
if (file && file.type) {
|
|
19
|
-
if (file.type.startsWith('image'))
|
|
20
|
-
return 'image';
|
|
21
|
-
if (file.type.startsWith('application'))
|
|
22
|
-
return 'application';
|
|
23
|
-
if (file.type.startsWith('video'))
|
|
24
|
-
return 'video';
|
|
25
|
-
}
|
|
26
|
-
return 'unknown';
|
|
27
|
-
});
|
|
28
|
-
this.getFileObjectUrl = computed(() => {
|
|
29
|
-
const file = this.fileObjectUrl();
|
|
30
|
-
return file && file.objectUrl ? file.objectUrl : null;
|
|
31
|
-
});
|
|
32
|
-
this.getFileName = computed(() => {
|
|
33
|
-
const file = this.fileObjectUrl();
|
|
34
|
-
return file ? this.displayFn()(file) : '';
|
|
35
|
-
});
|
|
36
|
-
this.getDisplayName = computed(() => {
|
|
37
|
-
const file = this.fileObjectUrl();
|
|
38
|
-
return file ? this.displayFn()(file) : '';
|
|
39
|
-
});
|
|
40
|
-
}
|
|
41
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.1", ngImport: i0, type: C3FileDisplayCardComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
|
|
42
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "18.2.1", type: C3FileDisplayCardComponent, isStandalone: true, selector: "c3-file-display-card", inputs: { fileObjectUrl: { classPropertyName: "fileObjectUrl", publicName: "fileObjectUrl", isSignal: true, isRequired: true, transformFunction: null }, displayFn: { classPropertyName: "displayFn", publicName: "displayFn", isSignal: true, isRequired: false, transformFunction: null }, deletable: { classPropertyName: "deletable", publicName: "deletable", isSignal: true, isRequired: false, transformFunction: null }, size: { classPropertyName: "size", publicName: "size", isSignal: true, isRequired: false, transformFunction: null } }, outputs: { onDelete: "onDelete" }, ngImport: i0, template: "<button\n class=\"file-card border\"\n [class.size-16]=\"size() === '16'\"\n [class.size-32]=\"size() === '32'\"\n [class.size-64]=\"size() === '64'\"\n [class.size-128]=\"size() === '128'\"\n [class.size-256]=\"size() === '256'\"\n>\n @if(deletable()) {\n <div class=\"actions\">\n <button mat-icon-button color=\"red\" (click)=\"onDelete.emit()\">\n <mat-icon>delete</mat-icon>\n </button>\n </div>\n } @if(fileObjectUrl()) {\n @switch (getFileType()) { @case ('image') {\n <img\n class=\"h-full w-full object-cover\"\n [src]=\"(getFileObjectUrl() | async) || '/default-image.svg'\"\n [alt]=\"getFileName()\"\n />\n } @case ('application') {\n <mat-icon> file-pdf-box </mat-icon>\n } @case ('video') {\n <mat-icon> video </mat-icon>\n }\n }\n\n <div class=\"informations flex justify-between items-center\">\n <span class=\"text-xs text-white\">\n {{ getDisplayName() }}\n </span>\n </div>\n }\n</button>\n", styles: [":host{display:block;width:fit-content}:host .file-card{position:relative;border-radius:4px;border:1px solid #e0e0e0;overflow:hidden}:host .file-card .actions{position:absolute;top:-21px;right:-21px;z-index:1;display:none}:host .file-card img{border-radius:4px}:host .file-card:hover .actions{display:block}:host .file-card .informations{position:absolute;bottom:0;left:0;z-index:1;width:100%;background:#00000080;padding:0 4px}:host .size-16{height:4rem;width:4rem}:host .size-32{height:8rem;width:8rem}:host .size-64{height:16rem;width:16rem}:host .size-128{height:32rem;width:32rem}:host .size-256{height:64rem;width:64rem}\n"], dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "pipe", type: i1.AsyncPipe, name: "async" }, { kind: "ngmodule", type: MatButtonModule }, { kind: "component", type: i2.MatIconButton, selector: "button[mat-icon-button]", exportAs: ["matButton"] }, { kind: "ngmodule", type: MatIconModule }, { kind: "component", type: i3.MatIcon, selector: "mat-icon", inputs: ["color", "inline", "svgIcon", "fontSet", "fontIcon"], exportAs: ["matIcon"] }] }); }
|
|
43
|
-
}
|
|
44
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.1", ngImport: i0, type: C3FileDisplayCardComponent, decorators: [{
|
|
45
|
-
type: Component,
|
|
46
|
-
args: [{ selector: 'c3-file-display-card', standalone: true, imports: [CommonModule, MatButtonModule, MatIconModule], template: "<button\n class=\"file-card border\"\n [class.size-16]=\"size() === '16'\"\n [class.size-32]=\"size() === '32'\"\n [class.size-64]=\"size() === '64'\"\n [class.size-128]=\"size() === '128'\"\n [class.size-256]=\"size() === '256'\"\n>\n @if(deletable()) {\n <div class=\"actions\">\n <button mat-icon-button color=\"red\" (click)=\"onDelete.emit()\">\n <mat-icon>delete</mat-icon>\n </button>\n </div>\n } @if(fileObjectUrl()) {\n @switch (getFileType()) { @case ('image') {\n <img\n class=\"h-full w-full object-cover\"\n [src]=\"(getFileObjectUrl() | async) || '/default-image.svg'\"\n [alt]=\"getFileName()\"\n />\n } @case ('application') {\n <mat-icon> file-pdf-box </mat-icon>\n } @case ('video') {\n <mat-icon> video </mat-icon>\n }\n }\n\n <div class=\"informations flex justify-between items-center\">\n <span class=\"text-xs text-white\">\n {{ getDisplayName() }}\n </span>\n </div>\n }\n</button>\n", styles: [":host{display:block;width:fit-content}:host .file-card{position:relative;border-radius:4px;border:1px solid #e0e0e0;overflow:hidden}:host .file-card .actions{position:absolute;top:-21px;right:-21px;z-index:1;display:none}:host .file-card img{border-radius:4px}:host .file-card:hover .actions{display:block}:host .file-card .informations{position:absolute;bottom:0;left:0;z-index:1;width:100%;background:#00000080;padding:0 4px}:host .size-16{height:4rem;width:4rem}:host .size-32{height:8rem;width:8rem}:host .size-64{height:16rem;width:16rem}:host .size-128{height:32rem;width:32rem}:host .size-256{height:64rem;width:64rem}\n"] }]
|
|
47
|
-
}] });
|
|
48
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYzMtZmlsZS1kaXNwbGF5LWNhcmQuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvYzMtY29tcG9uZW50cy9zcmMvbGliL2MzLWZpbGUtZGlzcGxheWVyL2MzLWZpbGUtZGlzcGxheS1jYXJkL2MzLWZpbGUtZGlzcGxheS1jYXJkLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2MzLWNvbXBvbmVudHMvc3JjL2xpYi9jMy1maWxlLWRpc3BsYXllci9jMy1maWxlLWRpc3BsYXktY2FyZC9jMy1maWxlLWRpc3BsYXktY2FyZC5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFDL0MsT0FBTyxFQUFFLFNBQVMsRUFBRSxRQUFRLEVBQUUsS0FBSyxFQUFFLE1BQU0sRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUduRSxPQUFPLEVBQUUsZUFBZSxFQUFFLE1BQU0sMEJBQTBCLENBQUM7QUFDM0QsT0FBTyxFQUFFLGFBQWEsRUFBRSxNQUFNLHdCQUF3QixDQUFDOzs7OztBQVd2RCxNQUFNLE9BQU8sMEJBQTBCO0lBUHZDO1FBUWtCLGtCQUFhLEdBQUcsS0FBSyxDQUFDLFFBQVEsRUFLM0MsQ0FBQztRQUNZLGNBQVMsR0FBRyxLQUFLLENBQy9CLENBQUMsSUFBSSxFQUFFLEVBQUUsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUNwQixDQUFDO1FBRWMsY0FBUyxHQUFHLEtBQUssQ0FBVSxLQUFLLENBQUMsQ0FBQztRQUNsQyxTQUFJLEdBQUcsS0FBSyxDQUFpQixJQUFJLENBQUMsQ0FBQztRQUNuQyxhQUFRLEdBQUcsTUFBTSxFQUFFLENBQUM7UUFFcEIsZ0JBQVcsR0FBRyxRQUFRLENBQUMsR0FBRyxFQUFFO1lBQzFDLE1BQU0sSUFBSSxHQUFHLElBQUksQ0FBQyxhQUFhLEVBQUUsQ0FBQztZQUNsQyxJQUFJLElBQUksSUFBSSxJQUFJLENBQUMsSUFBSSxFQUFFLENBQUM7Z0JBQ3RCLElBQUksSUFBSSxDQUFDLElBQUksQ0FBQyxVQUFVLENBQUMsT0FBTyxDQUFDO29CQUFFLE9BQU8sT0FBTyxDQUFDO2dCQUNsRCxJQUFJLElBQUksQ0FBQyxJQUFJLENBQUMsVUFBVSxDQUFDLGFBQWEsQ0FBQztvQkFBRSxPQUFPLGFBQWEsQ0FBQztnQkFDOUQsSUFBSSxJQUFJLENBQUMsSUFBSSxDQUFDLFVBQVUsQ0FBQyxPQUFPLENBQUM7b0JBQUUsT0FBTyxPQUFPLENBQUM7WUFDcEQsQ0FBQztZQUNELE9BQU8sU0FBUyxDQUFDO1FBQ25CLENBQUMsQ0FBQyxDQUFDO1FBRWEscUJBQWdCLEdBQUcsUUFBUSxDQUFDLEdBQThCLEVBQUU7WUFDMUUsTUFBTSxJQUFJLEdBQUcsSUFBSSxDQUFDLGFBQWEsRUFBRSxDQUFDO1lBQ2xDLE9BQU8sSUFBSSxJQUFJLElBQUksQ0FBQyxTQUFTLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxTQUFTLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQztRQUN4RCxDQUFDLENBQUMsQ0FBQztRQUVhLGdCQUFXLEdBQUcsUUFBUSxDQUFDLEdBQVcsRUFBRTtZQUNsRCxNQUFNLElBQUksR0FBRyxJQUFJLENBQUMsYUFBYSxFQUFFLENBQUM7WUFDbEMsT0FBTyxJQUFJLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxTQUFTLEVBQUUsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDO1FBQzVDLENBQUMsQ0FBQyxDQUFDO1FBRWEsbUJBQWMsR0FBRyxRQUFRLENBQUMsR0FBVyxFQUFFO1lBQ3JELE1BQU0sSUFBSSxHQUFHLElBQUksQ0FBQyxhQUFhLEVBQUUsQ0FBQztZQUNsQyxPQUFPLElBQUksQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLFNBQVMsRUFBRSxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUM7UUFDNUMsQ0FBQyxDQUFDLENBQUM7S0FDSjs4R0F2Q1ksMEJBQTBCO2tHQUExQiwwQkFBMEIsMm9CQ2hCdkMsbWdDQW1DQSw0cUJEdkJZLFlBQVksbUZBQUUsZUFBZSwySUFBRSxhQUFhOzsyRkFJM0MsMEJBQTBCO2tCQVB0QyxTQUFTOytCQUNFLHNCQUFzQixjQUNwQixJQUFJLFdBQ1AsQ0FBQyxZQUFZLEVBQUUsZUFBZSxFQUFFLGFBQWEsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvbW1vbk1vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbic7XG5pbXBvcnQgeyBDb21wb25lbnQsIGNvbXB1dGVkLCBpbnB1dCwgb3V0cHV0IH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBGaWxlTWV0YWRhdGEgfSBmcm9tICcuLi8uLi9jMy1maWxlLXZpZXdlci9tb2RlbHMvZmlsZS1tZXRhZGF0YSc7XG5pbXBvcnQgeyBPYnNlcnZhYmxlIH0gZnJvbSAncnhqcyc7XG5pbXBvcnQgeyBNYXRCdXR0b25Nb2R1bGUgfSBmcm9tICdAYW5ndWxhci9tYXRlcmlhbC9idXR0b24nO1xuaW1wb3J0IHsgTWF0SWNvbk1vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL21hdGVyaWFsL2ljb24nO1xuXG5leHBvcnQgdHlwZSBDM0ZpbGVDYXJkU2l6ZSA9ICcxNicgfCAnMzInIHwgJzY0JyB8ICcxMjgnIHwgJzI1Nic7XG5cbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ2MzLWZpbGUtZGlzcGxheS1jYXJkJyxcbiAgc3RhbmRhbG9uZTogdHJ1ZSxcbiAgaW1wb3J0czogW0NvbW1vbk1vZHVsZSwgTWF0QnV0dG9uTW9kdWxlLCBNYXRJY29uTW9kdWxlXSxcbiAgdGVtcGxhdGVVcmw6ICcuL2MzLWZpbGUtZGlzcGxheS1jYXJkLmNvbXBvbmVudC5odG1sJyxcbiAgc3R5bGVVcmw6ICcuL2MzLWZpbGUtZGlzcGxheS1jYXJkLmNvbXBvbmVudC5zY3NzJyxcbn0pXG5leHBvcnQgY2xhc3MgQzNGaWxlRGlzcGxheUNhcmRDb21wb25lbnQge1xuICBwdWJsaWMgcmVhZG9ubHkgZmlsZU9iamVjdFVybCA9IGlucHV0LnJlcXVpcmVkPFxuICAgIHwgKEZpbGVNZXRhZGF0YSAmIHtcbiAgICAgICAgb2JqZWN0VXJsPzogT2JzZXJ2YWJsZTxzdHJpbmc+O1xuICAgICAgfSlcbiAgICB8IG51bGxcbiAgPigpO1xuICBwdWJsaWMgcmVhZG9ubHkgZGlzcGxheUZuID0gaW5wdXQ8KGZpbGU6IEZpbGVNZXRhZGF0YSkgPT4gc3RyaW5nPihcbiAgICAoZmlsZSkgPT4gZmlsZS5uYW1lXG4gICk7XG5cbiAgcHVibGljIHJlYWRvbmx5IGRlbGV0YWJsZSA9IGlucHV0PGJvb2xlYW4+KGZhbHNlKTtcbiAgcHVibGljIHJlYWRvbmx5IHNpemUgPSBpbnB1dDxDM0ZpbGVDYXJkU2l6ZT4oJzMyJyk7XG4gIHB1YmxpYyByZWFkb25seSBvbkRlbGV0ZSA9IG91dHB1dCgpO1xuXG4gIHB1YmxpYyByZWFkb25seSBnZXRGaWxlVHlwZSA9IGNvbXB1dGVkKCgpID0+IHtcbiAgICBjb25zdCBmaWxlID0gdGhpcy5maWxlT2JqZWN0VXJsKCk7XG4gICAgaWYgKGZpbGUgJiYgZmlsZS50eXBlKSB7XG4gICAgICBpZiAoZmlsZS50eXBlLnN0YXJ0c1dpdGgoJ2ltYWdlJykpIHJldHVybiAnaW1hZ2UnO1xuICAgICAgaWYgKGZpbGUudHlwZS5zdGFydHNXaXRoKCdhcHBsaWNhdGlvbicpKSByZXR1cm4gJ2FwcGxpY2F0aW9uJztcbiAgICAgIGlmIChmaWxlLnR5cGUuc3RhcnRzV2l0aCgndmlkZW8nKSkgcmV0dXJuICd2aWRlbyc7XG4gICAgfVxuICAgIHJldHVybiAndW5rbm93bic7XG4gIH0pO1xuXG4gIHB1YmxpYyByZWFkb25seSBnZXRGaWxlT2JqZWN0VXJsID0gY29tcHV0ZWQoKCk6IE9ic2VydmFibGU8c3RyaW5nPiB8IG51bGwgPT4ge1xuICAgIGNvbnN0IGZpbGUgPSB0aGlzLmZpbGVPYmplY3RVcmwoKTtcbiAgICByZXR1cm4gZmlsZSAmJiBmaWxlLm9iamVjdFVybCA/IGZpbGUub2JqZWN0VXJsIDogbnVsbDtcbiAgfSk7XG5cbiAgcHVibGljIHJlYWRvbmx5IGdldEZpbGVOYW1lID0gY29tcHV0ZWQoKCk6IHN0cmluZyA9PiB7XG4gICAgY29uc3QgZmlsZSA9IHRoaXMuZmlsZU9iamVjdFVybCgpO1xuICAgIHJldHVybiBmaWxlID8gdGhpcy5kaXNwbGF5Rm4oKShmaWxlKSA6ICcnO1xuICB9KTtcblxuICBwdWJsaWMgcmVhZG9ubHkgZ2V0RGlzcGxheU5hbWUgPSBjb21wdXRlZCgoKTogc3RyaW5nID0+IHtcbiAgICBjb25zdCBmaWxlID0gdGhpcy5maWxlT2JqZWN0VXJsKCk7XG4gICAgcmV0dXJuIGZpbGUgPyB0aGlzLmRpc3BsYXlGbigpKGZpbGUpIDogJyc7XG4gIH0pO1xufVxuIiwiPGJ1dHRvblxuICBjbGFzcz1cImZpbGUtY2FyZCBib3JkZXJcIlxuICBbY2xhc3Muc2l6ZS0xNl09XCJzaXplKCkgPT09ICcxNidcIlxuICBbY2xhc3Muc2l6ZS0zMl09XCJzaXplKCkgPT09ICczMidcIlxuICBbY2xhc3Muc2l6ZS02NF09XCJzaXplKCkgPT09ICc2NCdcIlxuICBbY2xhc3Muc2l6ZS0xMjhdPVwic2l6ZSgpID09PSAnMTI4J1wiXG4gIFtjbGFzcy5zaXplLTI1Nl09XCJzaXplKCkgPT09ICcyNTYnXCJcbj5cbiAgQGlmKGRlbGV0YWJsZSgpKSB7XG4gICAgPGRpdiBjbGFzcz1cImFjdGlvbnNcIj5cbiAgICAgIDxidXR0b24gbWF0LWljb24tYnV0dG9uIGNvbG9yPVwicmVkXCIgKGNsaWNrKT1cIm9uRGVsZXRlLmVtaXQoKVwiPlxuICAgICAgICA8bWF0LWljb24+ZGVsZXRlPC9tYXQtaWNvbj5cbiAgICAgIDwvYnV0dG9uPlxuICAgIDwvZGl2PlxuICB9IEBpZihmaWxlT2JqZWN0VXJsKCkpIHtcbiAgICBAc3dpdGNoIChnZXRGaWxlVHlwZSgpKSB7IEBjYXNlICgnaW1hZ2UnKSB7XG4gICAgICA8aW1nXG4gICAgICAgIGNsYXNzPVwiaC1mdWxsIHctZnVsbCBvYmplY3QtY292ZXJcIlxuICAgICAgICBbc3JjXT1cIihnZXRGaWxlT2JqZWN0VXJsKCkgfCBhc3luYykgfHwgJy9kZWZhdWx0LWltYWdlLnN2ZydcIlxuICAgICAgICBbYWx0XT1cImdldEZpbGVOYW1lKClcIlxuICAgICAgLz5cbiAgICAgIH0gQGNhc2UgKCdhcHBsaWNhdGlvbicpIHtcbiAgICAgIDxtYXQtaWNvbj4gZmlsZS1wZGYtYm94IDwvbWF0LWljb24+XG4gICAgICB9IEBjYXNlICgndmlkZW8nKSB7XG4gICAgICA8bWF0LWljb24+IHZpZGVvIDwvbWF0LWljb24+XG4gICAgICB9XG4gICAgfVxuXG4gICAgPGRpdiBjbGFzcz1cImluZm9ybWF0aW9ucyBmbGV4IGp1c3RpZnktYmV0d2VlbiBpdGVtcy1jZW50ZXJcIj5cbiAgICAgIDxzcGFuIGNsYXNzPVwidGV4dC14cyB0ZXh0LXdoaXRlXCI+XG4gICAgICAgIHt7IGdldERpc3BsYXlOYW1lKCkgfX1cbiAgICAgIDwvc3Bhbj5cbiAgICA8L2Rpdj5cbiAgfVxuPC9idXR0b24+XG4iXX0=
|