@seniorsistemas/data-seniorx-core 1.5.0 → 1.6.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/core/types/lists.type.d.ts +7 -2
- package/core/types/searchbox.type.d.ts +1 -0
- package/core/types/semantics.type.d.ts +4 -2
- package/core/types/table.types.d.ts +58 -0
- package/core/types/toast.type.d.ts +16 -0
- package/core/utils/layout.util.d.ts +3 -0
- package/esm2022/core/types/lists.type.mjs +1 -1
- package/esm2022/core/types/searchbox.type.mjs +2 -0
- package/esm2022/core/types/semantics.type.mjs +11 -9
- package/esm2022/core/types/table.types.mjs +26 -0
- package/esm2022/core/types/toast.type.mjs +2 -0
- package/esm2022/core/utils/layout.util.mjs +10 -0
- package/esm2022/features/button/button.component.mjs +12 -10
- package/esm2022/features/checkbox/checkbox.component.mjs +80 -0
- package/esm2022/features/combobox/combobox.component.mjs +30 -12
- package/esm2022/features/inputs.mjs +1 -12
- package/esm2022/features/list/list.component.mjs +55 -32
- package/esm2022/features/modalc/modalc.component.mjs +49 -26
- package/esm2022/features/panel/panel.component.mjs +6 -5
- package/esm2022/features/scaffold/scaffold.component.mjs +34 -0
- package/esm2022/features/searchbox/searchbox.component.mjs +26 -20
- package/esm2022/features/sidebar/sidebar.component.mjs +59 -0
- package/esm2022/features/spinner/spinner.component.mjs +15 -8
- package/esm2022/features/tab/tab-item.component.mjs +29 -0
- package/esm2022/features/tab/tab.component.mjs +159 -0
- package/esm2022/features/table/table.component.mjs +263 -0
- package/esm2022/features/textbox/textbox.component.mjs +3 -3
- package/esm2022/features/toast/toast.component.mjs +35 -27
- package/esm2022/features/toast/toast.service.mjs +60 -35
- package/esm2022/providers/primeng-config.provider.mjs +10 -8
- package/esm2022/public-api.mjs +7 -1
- package/features/button/button.component.d.ts +5 -4
- package/features/checkbox/checkbox.component.d.ts +23 -0
- package/features/combobox/combobox.component.d.ts +8 -5
- package/features/inputs.d.ts +0 -4
- package/features/list/list.component.d.ts +10 -4
- package/features/modalc/modalc.component.d.ts +16 -8
- package/features/scaffold/scaffold.component.d.ts +11 -0
- package/features/searchbox/searchbox.component.d.ts +7 -7
- package/features/sidebar/sidebar.component.d.ts +18 -0
- package/features/spinner/spinner.component.d.ts +3 -2
- package/features/tab/tab-item.component.d.ts +11 -0
- package/features/tab/tab.component.d.ts +38 -0
- package/features/table/table.component.d.ts +60 -0
- package/features/toast/toast.component.d.ts +10 -10
- package/features/toast/toast.service.d.ts +10 -10
- package/fesm2022/seniorsistemas-data-seniorx-core.mjs +930 -223
- package/fesm2022/seniorsistemas-data-seniorx-core.mjs.map +1 -1
- package/package.json +1 -1
- package/public-api.d.ts +6 -0
- package/styles.css +50 -0
- package/styles.css.map +1 -1
|
@@ -1,14 +1,19 @@
|
|
|
1
|
-
import {
|
|
1
|
+
import { Priority } from './semantics.type';
|
|
2
2
|
export type ListItemAction = {
|
|
3
3
|
name: string;
|
|
4
4
|
label?: string;
|
|
5
|
+
text?: string;
|
|
5
6
|
tooltip?: string;
|
|
6
|
-
|
|
7
|
+
priority?: Priority;
|
|
7
8
|
icon?: string;
|
|
9
|
+
iconClass?: string;
|
|
10
|
+
leftIcon?: string;
|
|
8
11
|
disabled?: boolean;
|
|
9
12
|
action?: (name: string, id: string) => void;
|
|
10
13
|
};
|
|
11
14
|
export type ListItem = {
|
|
12
15
|
id: string;
|
|
13
16
|
content: string;
|
|
17
|
+
title?: string;
|
|
18
|
+
subtitle?: string;
|
|
14
19
|
};
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export type SearchTriggerMode = 'auto' | 'submit';
|
|
@@ -1,15 +1,17 @@
|
|
|
1
1
|
export type StringBoolean = string | boolean;
|
|
2
2
|
export type Dimension = boolean | number | string | 'w-fill';
|
|
3
|
-
export type Size = undefined | '
|
|
3
|
+
export type Size = undefined | 'default' | 'small';
|
|
4
4
|
export type Button = 'button' | 'menu' | 'reset' | 'submit';
|
|
5
5
|
export type OptionValue = string | null;
|
|
6
6
|
export type OptionItem = {
|
|
7
7
|
value: OptionValue;
|
|
8
8
|
text: string;
|
|
9
|
+
icon?: string;
|
|
9
10
|
};
|
|
10
11
|
export type Options = OptionItem[] | string;
|
|
11
12
|
export type Severity = 'primary' | 'secondary' | 'success' | 'info' | 'warn' | 'help' | 'danger' | 'contrast';
|
|
12
|
-
export type
|
|
13
|
+
export type Priority = 'primary' | 'secondary' | 'default' | 'link' | 'danger';
|
|
14
|
+
export type SeverityToast = 'success' | 'info' | 'warning' | 'error';
|
|
13
15
|
export type SeverityConfirm = 'question' | 'remove';
|
|
14
16
|
export type Toast = {
|
|
15
17
|
summary: string;
|
|
@@ -0,0 +1,58 @@
|
|
|
1
|
+
import { SearchTriggerMode } from "./searchbox.type";
|
|
2
|
+
import { Priority, Size } from "./semantics.type";
|
|
3
|
+
export type TableColumnType = 'checkbox' | 'button' | 'text' | 'number' | 'currency' | 'date' | 'checkbox-selection' | 'tag';
|
|
4
|
+
export interface TableColumn<T extends RowBase = RowBase> {
|
|
5
|
+
field?: string;
|
|
6
|
+
header: string;
|
|
7
|
+
type: TableColumnType;
|
|
8
|
+
actionField?: keyof T & string;
|
|
9
|
+
format?: string;
|
|
10
|
+
sortable?: boolean;
|
|
11
|
+
searchable?: boolean;
|
|
12
|
+
}
|
|
13
|
+
export type RowBase = Record<string, unknown>;
|
|
14
|
+
export interface CheckboxCellOptions {
|
|
15
|
+
selectAll?: boolean;
|
|
16
|
+
}
|
|
17
|
+
export interface ButtonCellOptions {
|
|
18
|
+
priority?: Priority;
|
|
19
|
+
label?: string;
|
|
20
|
+
icon?: string;
|
|
21
|
+
size?: Size;
|
|
22
|
+
tooltip?: string;
|
|
23
|
+
disabled?: boolean;
|
|
24
|
+
}
|
|
25
|
+
export interface TagCellOptions {
|
|
26
|
+
color?: string;
|
|
27
|
+
backgroundColor?: string;
|
|
28
|
+
icon?: string;
|
|
29
|
+
maxItems?: number;
|
|
30
|
+
tooltip?: string;
|
|
31
|
+
}
|
|
32
|
+
export interface TableOptions {
|
|
33
|
+
search?: {
|
|
34
|
+
type?: SearchTriggerMode;
|
|
35
|
+
show?: boolean;
|
|
36
|
+
placeholder?: string;
|
|
37
|
+
};
|
|
38
|
+
table?: {
|
|
39
|
+
totalRecordsLabel?: string;
|
|
40
|
+
};
|
|
41
|
+
empty?: {
|
|
42
|
+
show?: boolean;
|
|
43
|
+
title?: string;
|
|
44
|
+
text?: string;
|
|
45
|
+
};
|
|
46
|
+
pagination?: {
|
|
47
|
+
show?: boolean;
|
|
48
|
+
rowsPerPage?: number;
|
|
49
|
+
rowsPerPageOptions?: number[];
|
|
50
|
+
};
|
|
51
|
+
cells?: {
|
|
52
|
+
checkbox?: CheckboxCellOptions;
|
|
53
|
+
button?: ButtonCellOptions;
|
|
54
|
+
tag?: TagCellOptions;
|
|
55
|
+
};
|
|
56
|
+
}
|
|
57
|
+
export declare const DEFAULT_TABLE_OPTIONS: TableOptions;
|
|
58
|
+
export type SortOrder = 1 | -1 | 0;
|
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
type BaseToast = {
|
|
2
|
+
title?: string;
|
|
3
|
+
text?: string;
|
|
4
|
+
severity: "success" | "error" | "info" | "warning";
|
|
5
|
+
closable?: boolean;
|
|
6
|
+
};
|
|
7
|
+
type ToastWithDuration = BaseToast & {
|
|
8
|
+
sticky?: false;
|
|
9
|
+
duration?: number;
|
|
10
|
+
};
|
|
11
|
+
type ToastSticky = BaseToast & {
|
|
12
|
+
sticky: true;
|
|
13
|
+
duration?: never;
|
|
14
|
+
};
|
|
15
|
+
export type Toast = ToastWithDuration | ToastSticky;
|
|
16
|
+
export {};
|
|
@@ -1,2 +1,2 @@
|
|
|
1
1
|
export {};
|
|
2
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
2
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibGlzdHMudHlwZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL2xpYi9zcmMvY29yZS90eXBlcy9saXN0cy50eXBlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiIiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBQcmlvcml0eSwgU2V2ZXJpdHkgfSBmcm9tICcuL3NlbWFudGljcy50eXBlJztcblxuZXhwb3J0IHR5cGUgTGlzdEl0ZW1BY3Rpb24gPSB7XG4gIG5hbWU6IHN0cmluZztcbiAgbGFiZWw/OiBzdHJpbmc7XG4gIHRleHQ/OiBzdHJpbmc7XG4gIHRvb2x0aXA/OiBzdHJpbmc7XG4gIHByaW9yaXR5PzogUHJpb3JpdHk7XG4gIGljb24/OiBzdHJpbmc7XG4gIGljb25DbGFzcz86IHN0cmluZztcbiAgbGVmdEljb24/OiBzdHJpbmc7XG4gIGRpc2FibGVkPzogYm9vbGVhbjtcbiAgYWN0aW9uPzogKG5hbWU6IHN0cmluZywgaWQ6IHN0cmluZykgPT4gdm9pZDtcbn07XG5cbmV4cG9ydCB0eXBlIExpc3RJdGVtID0ge1xuICBpZDogc3RyaW5nO1xuICBjb250ZW50OiBzdHJpbmc7XG4gIHRpdGxlPzogc3RyaW5nO1xuICBzdWJ0aXRsZT86IHN0cmluZztcbn07XG4iXX0=
|
|
@@ -0,0 +1,2 @@
|
|
|
1
|
+
export {};
|
|
2
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2VhcmNoYm94LnR5cGUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9saWIvc3JjL2NvcmUvdHlwZXMvc2VhcmNoYm94LnR5cGUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IiIsInNvdXJjZXNDb250ZW50IjpbImV4cG9ydCB0eXBlIFNlYXJjaFRyaWdnZXJNb2RlID0gJ2F1dG8nIHwgJ3N1Ym1pdCc7XG4iXX0=
|
|
@@ -1,16 +1,18 @@
|
|
|
1
1
|
export function getDimensionStyles(type, value) {
|
|
2
|
-
if (typeof value === 'boolean'
|
|
2
|
+
if (value === null || value === undefined || typeof value === 'boolean')
|
|
3
3
|
return {};
|
|
4
|
-
}
|
|
5
4
|
return { [type]: dimensionFormat(value) };
|
|
6
5
|
}
|
|
7
6
|
const dimensionFormat = (value) => {
|
|
8
|
-
|
|
7
|
+
const raw = String(value).trim();
|
|
8
|
+
if (raw === '' || raw.toLowerCase() === 'auto')
|
|
9
|
+
return 'auto';
|
|
10
|
+
if (raw === 'w-fill')
|
|
9
11
|
return '100%';
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
return
|
|
12
|
+
if (/^\d+(\.\d+)?(px|%|rem|em|vh|vw|ch)$/.test(raw))
|
|
13
|
+
return raw;
|
|
14
|
+
if (/^\d+(\.\d+)?$/.test(raw))
|
|
15
|
+
return `${raw}px`;
|
|
16
|
+
return raw;
|
|
15
17
|
};
|
|
16
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
18
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2VtYW50aWNzLnR5cGUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9saWIvc3JjL2NvcmUvdHlwZXMvc2VtYW50aWNzLnR5cGUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBeUNBLE1BQU0sVUFBVSxrQkFBa0IsQ0FBQyxJQUF3QixFQUFFLEtBQWdCO0lBQzNFLElBQUksS0FBSyxLQUFLLElBQUksSUFBSSxLQUFLLEtBQUssU0FBUyxJQUFJLE9BQU8sS0FBSyxLQUFLLFNBQVM7UUFBRSxPQUFPLEVBQUUsQ0FBQztJQUNuRixPQUFPLEVBQUUsQ0FBQyxJQUFJLENBQUMsRUFBRSxlQUFlLENBQUMsS0FBSyxDQUFDLEVBQUUsQ0FBQztBQUM1QyxDQUFDO0FBRUQsTUFBTSxlQUFlLEdBQUcsQ0FBQyxLQUFnQixFQUFVLEVBQUU7SUFDbkQsTUFBTSxHQUFHLEdBQUcsTUFBTSxDQUFDLEtBQUssQ0FBQyxDQUFDLElBQUksRUFBRSxDQUFDO0lBQ2pDLElBQUksR0FBRyxLQUFLLEVBQUUsSUFBSSxHQUFHLENBQUMsV0FBVyxFQUFFLEtBQUssTUFBTTtRQUFFLE9BQU8sTUFBTSxDQUFDO0lBQzlELElBQUksR0FBRyxLQUFLLFFBQVE7UUFBRSxPQUFPLE1BQU0sQ0FBQztJQUNwQyxJQUFJLHFDQUFxQyxDQUFDLElBQUksQ0FBQyxHQUFHLENBQUM7UUFBRSxPQUFPLEdBQUcsQ0FBQztJQUNoRSxJQUFJLGVBQWUsQ0FBQyxJQUFJLENBQUMsR0FBRyxDQUFDO1FBQUUsT0FBTyxHQUFHLEdBQUcsSUFBSSxDQUFDO0lBQ2pELE9BQU8sR0FBRyxDQUFDO0FBQ2IsQ0FBQyxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiZXhwb3J0IHR5cGUgU3RyaW5nQm9vbGVhbiA9IHN0cmluZyB8IGJvb2xlYW47XG5cbmV4cG9ydCB0eXBlIERpbWVuc2lvbiA9IGJvb2xlYW4gfCBudW1iZXIgfCBzdHJpbmcgfCAndy1maWxsJztcbmV4cG9ydCB0eXBlIFNpemUgPSB1bmRlZmluZWQgfCAnZGVmYXVsdCcgfCAnc21hbGwnO1xuXG5leHBvcnQgdHlwZSBCdXR0b24gPSAnYnV0dG9uJyB8ICdtZW51JyB8ICdyZXNldCcgfCAnc3VibWl0JztcblxuZXhwb3J0IHR5cGUgT3B0aW9uVmFsdWUgPSBzdHJpbmcgfCBudWxsO1xuZXhwb3J0IHR5cGUgT3B0aW9uSXRlbSA9IHsgdmFsdWU6IE9wdGlvblZhbHVlOyB0ZXh0OiBzdHJpbmcsIGljb24/OiBzdHJpbmc7IH07XG5leHBvcnQgdHlwZSBPcHRpb25zID0gT3B0aW9uSXRlbVtdIHwgc3RyaW5nO1xuXG5leHBvcnQgdHlwZSBTZXZlcml0eSA9ICdwcmltYXJ5JyB8ICdzZWNvbmRhcnknIHwgJ3N1Y2Nlc3MnIHwgJ2luZm8nIHwgJ3dhcm4nIHwgJ2hlbHAnIHwgJ2RhbmdlcicgfCAnY29udHJhc3QnOyAvLyByZW1vdmVyXG5leHBvcnQgdHlwZSBQcmlvcml0eSA9ICdwcmltYXJ5JyB8ICdzZWNvbmRhcnknIHwgJ2RlZmF1bHQnIHwgJ2xpbmsnIHwgJ2Rhbmdlcic7XG5leHBvcnQgdHlwZSBTZXZlcml0eVRvYXN0ID0gJ3N1Y2Nlc3MnIHwgJ2luZm8nIHwgJ3dhcm5pbmcnIHwgJ2Vycm9yJztcbmV4cG9ydCB0eXBlIFNldmVyaXR5Q29uZmlybSA9ICdxdWVzdGlvbicgfCAncmVtb3ZlJztcblxuZXhwb3J0IHR5cGUgVG9hc3QgPSB7XG4gIHN1bW1hcnk6IHN0cmluZztcbiAgZGV0YWlsOiBzdHJpbmcgfCBFcnJvcjtcbiAgY2xvc2FibGU/OiBib29sZWFuO1xuICBrZXk/OiBzdHJpbmc7XG4gIGxpZmU/OiBudW1iZXI7XG4gIHN0aWNreT86IGJvb2xlYW47XG59O1xuXG5leHBvcnQgdHlwZSBDb25maXJtID0ge1xuICBzZXZlcml0eTogU2V2ZXJpdHlDb25maXJtO1xuICB0aXRsZTogc3RyaW5nO1xuICBtZXNzYWdlOiBzdHJpbmc7XG4gIGFjY2VwdDogKCkgPT4gdm9pZDtcbiAgcmVqZWN0OiAoKSA9PiB2b2lkO1xufTtcblxuZXhwb3J0IHR5cGUgTW9kYWxCdXR0b24gPSB7XG4gIGlkPzogc3RyaW5nO1xuICBsYWJlbDogc3RyaW5nO1xuICBpY29uPzogc3RyaW5nO1xuICBzZXZlcml0eT86IFNldmVyaXR5O1xuICBhY3Rpb246ICgpID0+IHZvaWQ7XG59O1xuXG5leHBvcnQgZnVuY3Rpb24gZ2V0RGltZW5zaW9uU3R5bGVzKHR5cGU6ICdoZWlnaHQnIHwgJ3dpZHRoJywgdmFsdWU6IERpbWVuc2lvbikge1xuICBpZiAodmFsdWUgPT09IG51bGwgfHwgdmFsdWUgPT09IHVuZGVmaW5lZCB8fCB0eXBlb2YgdmFsdWUgPT09ICdib29sZWFuJykgcmV0dXJuIHt9O1xuICByZXR1cm4geyBbdHlwZV06IGRpbWVuc2lvbkZvcm1hdCh2YWx1ZSkgfTtcbn1cblxuY29uc3QgZGltZW5zaW9uRm9ybWF0ID0gKHZhbHVlOiBEaW1lbnNpb24pOiBzdHJpbmcgPT4ge1xuICBjb25zdCByYXcgPSBTdHJpbmcodmFsdWUpLnRyaW0oKTtcbiAgaWYgKHJhdyA9PT0gJycgfHwgcmF3LnRvTG93ZXJDYXNlKCkgPT09ICdhdXRvJykgcmV0dXJuICdhdXRvJztcbiAgaWYgKHJhdyA9PT0gJ3ctZmlsbCcpIHJldHVybiAnMTAwJSc7XG4gIGlmICgvXlxcZCsoXFwuXFxkKyk/KHB4fCV8cmVtfGVtfHZofHZ3fGNoKSQvLnRlc3QocmF3KSkgcmV0dXJuIHJhdztcbiAgaWYgKC9eXFxkKyhcXC5cXGQrKT8kLy50ZXN0KHJhdykpIHJldHVybiBgJHtyYXd9cHhgO1xuICByZXR1cm4gcmF3O1xufTsiXX0=
|
|
@@ -0,0 +1,26 @@
|
|
|
1
|
+
export const DEFAULT_TABLE_OPTIONS = {
|
|
2
|
+
search: { type: 'auto', show: true, placeholder: 'Buscar...' },
|
|
3
|
+
table: { totalRecordsLabel: 'Registros' },
|
|
4
|
+
empty: { show: true, title: 'Sem dados', text: 'Nada por aqui.' },
|
|
5
|
+
pagination: { show: true, rowsPerPage: 10, rowsPerPageOptions: [5, 10, 25] },
|
|
6
|
+
cells: {
|
|
7
|
+
tag: {
|
|
8
|
+
color: '#fff',
|
|
9
|
+
backgroundColor: 'rgb(155 213 255);',
|
|
10
|
+
maxItems: 3,
|
|
11
|
+
tooltip: 'Teste Tooltip',
|
|
12
|
+
icon: 'fas fa-eye'
|
|
13
|
+
},
|
|
14
|
+
button: {
|
|
15
|
+
priority: 'primary',
|
|
16
|
+
tooltip: 'Teste Tooltip',
|
|
17
|
+
icon: 'fas fa-eye',
|
|
18
|
+
label: 'TESTE LABEL',
|
|
19
|
+
disabled: true,
|
|
20
|
+
},
|
|
21
|
+
checkbox: {
|
|
22
|
+
selectAll: true,
|
|
23
|
+
}
|
|
24
|
+
}
|
|
25
|
+
};
|
|
26
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGFibGUudHlwZXMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9saWIvc3JjL2NvcmUvdHlwZXMvdGFibGUudHlwZXMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBaUVBLE1BQU0sQ0FBQyxNQUFNLHFCQUFxQixHQUFpQjtJQUNqRCxNQUFNLEVBQUUsRUFBRSxJQUFJLEVBQUUsTUFBTSxFQUFFLElBQUksRUFBRSxJQUFJLEVBQUUsV0FBVyxFQUFFLFdBQVcsRUFBRTtJQUM5RCxLQUFLLEVBQUUsRUFBRSxpQkFBaUIsRUFBRSxXQUFXLEVBQUU7SUFDekMsS0FBSyxFQUFFLEVBQUUsSUFBSSxFQUFFLElBQUksRUFBRSxLQUFLLEVBQUUsV0FBVyxFQUFFLElBQUksRUFBRSxnQkFBZ0IsRUFBRTtJQUNqRSxVQUFVLEVBQUUsRUFBRSxJQUFJLEVBQUUsSUFBSSxFQUFFLFdBQVcsRUFBRSxFQUFFLEVBQUUsa0JBQWtCLEVBQUUsQ0FBQyxDQUFDLEVBQUUsRUFBRSxFQUFFLEVBQUUsQ0FBQyxFQUFFO0lBQzVFLEtBQUssRUFBRTtRQUNMLEdBQUcsRUFBRTtZQUNILEtBQUssRUFBRSxNQUFNO1lBQ2IsZUFBZSxFQUFFLG1CQUFtQjtZQUNwQyxRQUFRLEVBQUUsQ0FBQztZQUNYLE9BQU8sRUFBRSxlQUFlO1lBQ3hCLElBQUksRUFBRSxZQUFZO1NBQ25CO1FBQ0QsTUFBTSxFQUFFO1lBQ04sUUFBUSxFQUFFLFNBQVM7WUFDbkIsT0FBTyxFQUFFLGVBQWU7WUFDeEIsSUFBSSxFQUFFLFlBQVk7WUFDbEIsS0FBSyxFQUFFLGFBQWE7WUFDcEIsUUFBUSxFQUFFLElBQUk7U0FDZjtRQUNELFFBQVEsRUFBRTtZQUNSLFNBQVMsRUFBRSxJQUFJO1NBQ2hCO0tBQ0Y7Q0FDRixDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgU2VhcmNoVHJpZ2dlck1vZGUgfSBmcm9tIFwiLi9zZWFyY2hib3gudHlwZVwiO1xuaW1wb3J0IHsgUHJpb3JpdHksIFNpemUgfSBmcm9tIFwiLi9zZW1hbnRpY3MudHlwZVwiO1xuXG5leHBvcnQgdHlwZSBUYWJsZUNvbHVtblR5cGUgPSAnY2hlY2tib3gnIHwgJ2J1dHRvbicgfCAndGV4dCcgfCAnbnVtYmVyJyB8ICdjdXJyZW5jeScgfCAnZGF0ZScgfCAnY2hlY2tib3gtc2VsZWN0aW9uJyB8ICd0YWcnXG5cbmV4cG9ydCBpbnRlcmZhY2UgVGFibGVDb2x1bW48VCBleHRlbmRzIFJvd0Jhc2UgPSBSb3dCYXNlPiB7XG4gIGZpZWxkPzogc3RyaW5nO1xuICBoZWFkZXI6IHN0cmluZztcbiAgdHlwZTogVGFibGVDb2x1bW5UeXBlO1xuICBhY3Rpb25GaWVsZD86IGtleW9mIFQgJiBzdHJpbmc7XG4gIGZvcm1hdD86IHN0cmluZztcbiAgc29ydGFibGU/OiBib29sZWFuO1xuICBzZWFyY2hhYmxlPzogYm9vbGVhbjtcbn1cblxuZXhwb3J0IHR5cGUgUm93QmFzZSA9IFJlY29yZDxzdHJpbmcsIHVua25vd24+O1xuXG5leHBvcnQgaW50ZXJmYWNlIENoZWNrYm94Q2VsbE9wdGlvbnMge1xuICBzZWxlY3RBbGw/OiBib29sZWFuO1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIEJ1dHRvbkNlbGxPcHRpb25zIHtcbiAgcHJpb3JpdHk/OiBQcmlvcml0eTtcbiAgbGFiZWw/OiBzdHJpbmc7XG4gIGljb24/OiBzdHJpbmc7XG4gIHNpemU/OiBTaXplO1xuICB0b29sdGlwPzogc3RyaW5nO1xuICBkaXNhYmxlZD86IGJvb2xlYW47XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgVGFnQ2VsbE9wdGlvbnMge1xuICBjb2xvcj86IHN0cmluZztcbiAgYmFja2dyb3VuZENvbG9yPzogc3RyaW5nO1xuICBpY29uPzogc3RyaW5nO1xuICBtYXhJdGVtcz86IG51bWJlcjtcbiAgdG9vbHRpcD86IHN0cmluZztcbn1cblxuZXhwb3J0IGludGVyZmFjZSBUYWJsZU9wdGlvbnMge1xuICBzZWFyY2g/OiB7XG4gICAgdHlwZT86IFNlYXJjaFRyaWdnZXJNb2RlO1xuICAgIHNob3c/OiBib29sZWFuO1xuICAgIHBsYWNlaG9sZGVyPzogc3RyaW5nO1xuICB9O1xuICB0YWJsZT86IHtcbiAgICB0b3RhbFJlY29yZHNMYWJlbD86IHN0cmluZztcbiAgfTtcbiAgZW1wdHk/OiB7XG4gICAgc2hvdz86IGJvb2xlYW47XG4gICAgdGl0bGU/OiBzdHJpbmc7XG4gICAgdGV4dD86IHN0cmluZztcbiAgfTtcbiAgcGFnaW5hdGlvbj86IHtcbiAgICBzaG93PzogYm9vbGVhbjtcbiAgICByb3dzUGVyUGFnZT86IG51bWJlcjtcbiAgICByb3dzUGVyUGFnZU9wdGlvbnM/OiBudW1iZXJbXTtcbiAgfTtcblxuICBjZWxscz86IHtcbiAgICBjaGVja2JveD86IENoZWNrYm94Q2VsbE9wdGlvbnM7XG4gICAgYnV0dG9uPzogQnV0dG9uQ2VsbE9wdGlvbnM7XG4gICAgdGFnPzogVGFnQ2VsbE9wdGlvbnM7XG4gIH07XG59XG5cbmV4cG9ydCBjb25zdCBERUZBVUxUX1RBQkxFX09QVElPTlM6IFRhYmxlT3B0aW9ucyA9IHtcbiAgc2VhcmNoOiB7IHR5cGU6ICdhdXRvJywgc2hvdzogdHJ1ZSwgcGxhY2Vob2xkZXI6ICdCdXNjYXIuLi4nIH0sXG4gIHRhYmxlOiB7IHRvdGFsUmVjb3Jkc0xhYmVsOiAnUmVnaXN0cm9zJyB9LFxuICBlbXB0eTogeyBzaG93OiB0cnVlLCB0aXRsZTogJ1NlbSBkYWRvcycsIHRleHQ6ICdOYWRhIHBvciBhcXVpLicgfSxcbiAgcGFnaW5hdGlvbjogeyBzaG93OiB0cnVlLCByb3dzUGVyUGFnZTogMTAsIHJvd3NQZXJQYWdlT3B0aW9uczogWzUsIDEwLCAyNV0gfSxcbiAgY2VsbHM6IHtcbiAgICB0YWc6IHtcbiAgICAgIGNvbG9yOiAnI2ZmZicsXG4gICAgICBiYWNrZ3JvdW5kQ29sb3I6ICdyZ2IoMTU1IDIxMyAyNTUpOycsXG4gICAgICBtYXhJdGVtczogMyxcbiAgICAgIHRvb2x0aXA6ICdUZXN0ZSBUb29sdGlwJyxcbiAgICAgIGljb246ICdmYXMgZmEtZXllJ1xuICAgIH0sXG4gICAgYnV0dG9uOiB7XG4gICAgICBwcmlvcml0eTogJ3ByaW1hcnknLFxuICAgICAgdG9vbHRpcDogJ1Rlc3RlIFRvb2x0aXAnLFxuICAgICAgaWNvbjogJ2ZhcyBmYS1leWUnLFxuICAgICAgbGFiZWw6ICdURVNURSBMQUJFTCcsXG4gICAgICBkaXNhYmxlZDogdHJ1ZSxcbiAgICB9LFxuICAgIGNoZWNrYm94OiB7XG4gICAgICBzZWxlY3RBbGw6IHRydWUsXG4gICAgfVxuICB9XG59O1xuXG5leHBvcnQgdHlwZSBTb3J0T3JkZXIgPSAxIHwgLTEgfCAwO1xuXG4iXX0=
|
|
@@ -0,0 +1,2 @@
|
|
|
1
|
+
export {};
|
|
2
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidG9hc3QudHlwZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL2xpYi9zcmMvY29yZS90eXBlcy90b2FzdC50eXBlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiIiLCJzb3VyY2VzQ29udGVudCI6WyJ0eXBlIEJhc2VUb2FzdCA9IHtcbiAgICB0aXRsZT86IHN0cmluZztcbiAgICB0ZXh0Pzogc3RyaW5nO1xuICAgIHNldmVyaXR5OiBcInN1Y2Nlc3NcIiB8IFwiZXJyb3JcIiB8IFwiaW5mb1wiIHwgXCJ3YXJuaW5nXCI7XG4gICAgY2xvc2FibGU/OiBib29sZWFuO1xufTtcblxudHlwZSBUb2FzdFdpdGhEdXJhdGlvbiA9IEJhc2VUb2FzdCAmIHtcbiAgICBzdGlja3k/OiBmYWxzZTtcbiAgICBkdXJhdGlvbj86IG51bWJlcjtcbn07XG5cbnR5cGUgVG9hc3RTdGlja3kgPSBCYXNlVG9hc3QgJiB7XG4gICAgc3RpY2t5OiB0cnVlO1xuICAgIGR1cmF0aW9uPzogbmV2ZXI7XG59O1xuXG5leHBvcnQgdHlwZSBUb2FzdCA9IFRvYXN0V2l0aER1cmF0aW9uIHwgVG9hc3RTdGlja3k7XG4iXX0=
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
export function isMobile() {
|
|
2
|
+
return window.innerWidth <= 768;
|
|
3
|
+
}
|
|
4
|
+
export function isTablet() {
|
|
5
|
+
return window.innerWidth > 768 && window.innerWidth <= 1024;
|
|
6
|
+
}
|
|
7
|
+
export function isDesktop() {
|
|
8
|
+
return window.innerWidth > 1024;
|
|
9
|
+
}
|
|
10
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibGF5b3V0LnV0aWwuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9saWIvc3JjL2NvcmUvdXRpbHMvbGF5b3V0LnV0aWwudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsTUFBTSxVQUFVLFFBQVE7SUFDdEIsT0FBTyxNQUFNLENBQUMsVUFBVSxJQUFJLEdBQUcsQ0FBQztBQUNsQyxDQUFDO0FBRUQsTUFBTSxVQUFVLFFBQVE7SUFDdEIsT0FBTyxNQUFNLENBQUMsVUFBVSxHQUFHLEdBQUcsSUFBSSxNQUFNLENBQUMsVUFBVSxJQUFJLElBQUksQ0FBQztBQUM5RCxDQUFDO0FBRUQsTUFBTSxVQUFVLFNBQVM7SUFDdkIsT0FBTyxNQUFNLENBQUMsVUFBVSxHQUFHLElBQUksQ0FBQztBQUNsQyxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiZXhwb3J0IGZ1bmN0aW9uIGlzTW9iaWxlKCk6IGJvb2xlYW4ge1xuICByZXR1cm4gd2luZG93LmlubmVyV2lkdGggPD0gNzY4O1xufVxuXG5leHBvcnQgZnVuY3Rpb24gaXNUYWJsZXQoKTogYm9vbGVhbiB7XG4gIHJldHVybiB3aW5kb3cuaW5uZXJXaWR0aCA+IDc2OCAmJiB3aW5kb3cuaW5uZXJXaWR0aCA8PSAxMDI0O1xufVxuXG5leHBvcnQgZnVuY3Rpb24gaXNEZXNrdG9wKCk6IGJvb2xlYW4ge1xuICByZXR1cm4gd2luZG93LmlubmVyV2lkdGggPiAxMDI0O1xufVxuIl19
|
|
@@ -1,33 +1,35 @@
|
|
|
1
|
-
import { ButtonModule } from 'primeng/button';
|
|
2
1
|
import { CommonModule } from '@angular/common';
|
|
3
2
|
import { Component, EventEmitter, Input, Output } from '@angular/core';
|
|
3
|
+
import { ButtonModule } from "@seniorsistemas/angular-components/button";
|
|
4
4
|
import * as i0 from "@angular/core";
|
|
5
|
-
import * as i1 from "@angular/
|
|
6
|
-
import * as i2 from "primeng/button";
|
|
5
|
+
import * as i1 from "@seniorsistemas/angular-components/button";
|
|
7
6
|
export class ButtonComponent {
|
|
8
7
|
disabled = false;
|
|
9
|
-
|
|
8
|
+
width = '10rem';
|
|
9
|
+
icon;
|
|
10
10
|
id = 'button-id';
|
|
11
|
-
label = '
|
|
12
|
-
|
|
11
|
+
label = '';
|
|
12
|
+
priority = 'primary';
|
|
13
13
|
size = undefined;
|
|
14
14
|
type = 'button';
|
|
15
15
|
onClick = new EventEmitter();
|
|
16
16
|
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: ButtonComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
|
|
17
|
-
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.2.13", type: ButtonComponent, isStandalone: true, selector: "sdc-button", inputs: { disabled: "disabled", icon: "icon", id: "id", label: "label",
|
|
17
|
+
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.2.13", type: ButtonComponent, isStandalone: true, selector: "sdc-button", inputs: { disabled: "disabled", width: "width", icon: "icon", id: "id", label: "label", priority: "priority", size: "size", type: "type" }, outputs: { onClick: "onClick" }, ngImport: i0, template: "<div [style.width]=\"width\">\n <s-button\n class=\"sdc-button-el\"\n (clicked)=\"onClick.emit($event)\"\n [disabled]=\"disabled\"\n [id]=\"id\"\n [size]=\"size\"\n [type]=\"type\"\n [priority]=\"priority\"\n [iconClass]=\"icon\"\n [label]=\"label\">\n </s-button>\n</div>\n", styles: ["::ng-deep .s-button-priority-primary .s-button-icon{color:#fff!important}::ng-deep s-button button:disabled{pointer-events:none;cursor:not-allowed}::ng-deep s-button button{min-width:100%!important;width:100%!important;max-width:100%!important}::ng-deep s-button{min-width:100%!important;width:100%!important;max-width:100%!important}\n"], dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "ngmodule", type: ButtonModule }, { kind: "component", type: i1.ButtonComponent, selector: "s-button", inputs: ["id", "label", "tooltip", "tooltipPosition", "iconClass", "rightIconClass", "caret", "styleClass", "baseZIndex", "disabled", "auxiliary", "type", "priority", "menuOptions", "size", "slide", "animation", "badge", "iconColor"], outputs: ["clicked"] }] });
|
|
18
18
|
}
|
|
19
19
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: ButtonComponent, decorators: [{
|
|
20
20
|
type: Component,
|
|
21
|
-
args: [{ imports: [CommonModule, ButtonModule], standalone: true, selector: 'sdc-button', template: "<
|
|
21
|
+
args: [{ imports: [CommonModule, ButtonModule], standalone: true, selector: 'sdc-button', template: "<div [style.width]=\"width\">\n <s-button\n class=\"sdc-button-el\"\n (clicked)=\"onClick.emit($event)\"\n [disabled]=\"disabled\"\n [id]=\"id\"\n [size]=\"size\"\n [type]=\"type\"\n [priority]=\"priority\"\n [iconClass]=\"icon\"\n [label]=\"label\">\n </s-button>\n</div>\n", styles: ["::ng-deep .s-button-priority-primary .s-button-icon{color:#fff!important}::ng-deep s-button button:disabled{pointer-events:none;cursor:not-allowed}::ng-deep s-button button{min-width:100%!important;width:100%!important;max-width:100%!important}::ng-deep s-button{min-width:100%!important;width:100%!important;max-width:100%!important}\n"] }]
|
|
22
22
|
}], propDecorators: { disabled: [{
|
|
23
23
|
type: Input
|
|
24
|
+
}], width: [{
|
|
25
|
+
type: Input
|
|
24
26
|
}], icon: [{
|
|
25
27
|
type: Input
|
|
26
28
|
}], id: [{
|
|
27
29
|
type: Input
|
|
28
30
|
}], label: [{
|
|
29
31
|
type: Input
|
|
30
|
-
}],
|
|
32
|
+
}], priority: [{
|
|
31
33
|
type: Input
|
|
32
34
|
}], size: [{
|
|
33
35
|
type: Input
|
|
@@ -36,4 +38,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImpo
|
|
|
36
38
|
}], onClick: [{
|
|
37
39
|
type: Output
|
|
38
40
|
}] } });
|
|
39
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
41
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYnV0dG9uLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL2xpYi9zcmMvZmVhdHVyZXMvYnV0dG9uL2J1dHRvbi5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi9saWIvc3JjL2ZlYXR1cmVzL2J1dHRvbi9idXR0b24uY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBQy9DLE9BQU8sRUFBRSxTQUFTLEVBQUUsWUFBWSxFQUFlLEtBQUssRUFBRSxNQUFNLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDcEYsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLDJDQUEyQyxDQUFDOzs7QUFVekUsTUFBTSxPQUFPLGVBQWU7SUFDakIsUUFBUSxHQUFZLEtBQUssQ0FBQztJQUMxQixLQUFLLEdBQWMsT0FBTyxDQUFDO0lBQzNCLElBQUksQ0FBcUI7SUFDekIsRUFBRSxHQUFXLFdBQVcsQ0FBQztJQUN6QixLQUFLLEdBQVcsRUFBRSxDQUFDO0lBQ25CLFFBQVEsR0FBYSxTQUFTLENBQUM7SUFDL0IsSUFBSSxHQUFTLFNBQVMsQ0FBQztJQUN2QixJQUFJLEdBQVcsUUFBUSxDQUFDO0lBQ3ZCLE9BQU8sR0FBRyxJQUFJLFlBQVksRUFBUyxDQUFDO3dHQVRuQyxlQUFlOzRGQUFmLGVBQWUsbVBDWjVCLGlUQWFBLHlZRFBZLFlBQVksOEJBQUUsWUFBWTs7NEZBTXpCLGVBQWU7a0JBUDNCLFNBQVM7OEJBQ0MsQ0FBQyxZQUFZLEVBQUUsWUFBWSxDQUFDLGNBQ3pCLElBQUksWUFDTixZQUFZOzhCQUtiLFFBQVE7c0JBQWhCLEtBQUs7Z0JBQ0csS0FBSztzQkFBYixLQUFLO2dCQUNHLElBQUk7c0JBQVosS0FBSztnQkFDRyxFQUFFO3NCQUFWLEtBQUs7Z0JBQ0csS0FBSztzQkFBYixLQUFLO2dCQUNHLFFBQVE7c0JBQWhCLEtBQUs7Z0JBQ0csSUFBSTtzQkFBWixLQUFLO2dCQUNHLElBQUk7c0JBQVosS0FBSztnQkFDSSxPQUFPO3NCQUFoQixNQUFNIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ29tbW9uTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uJztcbmltcG9ydCB7IENvbXBvbmVudCwgRXZlbnRFbWl0dGVyLCBIb3N0QmluZGluZywgSW5wdXQsIE91dHB1dCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgQnV0dG9uTW9kdWxlIH0gZnJvbSBcIkBzZW5pb3JzaXN0ZW1hcy9hbmd1bGFyLWNvbXBvbmVudHMvYnV0dG9uXCI7XG5pbXBvcnQgeyBCdXR0b24sIERpbWVuc2lvbiwgZ2V0RGltZW5zaW9uU3R5bGVzLCBQcmlvcml0eSwgU2l6ZSB9IGZyb20gJy4uLy4uL3B1YmxpYy1hcGknO1xuXG5AQ29tcG9uZW50KHtcbiAgaW1wb3J0czogW0NvbW1vbk1vZHVsZSwgQnV0dG9uTW9kdWxlXSxcbiAgc3RhbmRhbG9uZTogdHJ1ZSxcbiAgc2VsZWN0b3I6ICdzZGMtYnV0dG9uJyxcbiAgdGVtcGxhdGVVcmw6ICcuL2J1dHRvbi5jb21wb25lbnQuaHRtbCcsXG4gIHN0eWxlVXJsczogWycuL2J1dHRvbi5jb21wb25lbnQuc2NzcyddXG59KVxuZXhwb3J0IGNsYXNzIEJ1dHRvbkNvbXBvbmVudCB7XG4gIEBJbnB1dCgpIGRpc2FibGVkOiBib29sZWFuID0gZmFsc2U7XG4gIEBJbnB1dCgpIHdpZHRoOiBEaW1lbnNpb24gPSAnMTByZW0nO1xuICBASW5wdXQoKSBpY29uOiBzdHJpbmcgfCB1bmRlZmluZWQ7XG4gIEBJbnB1dCgpIGlkOiBzdHJpbmcgPSAnYnV0dG9uLWlkJztcbiAgQElucHV0KCkgbGFiZWw6IHN0cmluZyA9ICcnO1xuICBASW5wdXQoKSBwcmlvcml0eTogUHJpb3JpdHkgPSAncHJpbWFyeSc7XG4gIEBJbnB1dCgpIHNpemU6IFNpemUgPSB1bmRlZmluZWQ7XG4gIEBJbnB1dCgpIHR5cGU6IEJ1dHRvbiA9ICdidXR0b24nO1xuICBAT3V0cHV0KCkgb25DbGljayA9IG5ldyBFdmVudEVtaXR0ZXI8RXZlbnQ+KCk7XG59XG4iLCI8ZGl2IFtzdHlsZS53aWR0aF09XCJ3aWR0aFwiPlxuICA8cy1idXR0b25cbiAgICBjbGFzcz1cInNkYy1idXR0b24tZWxcIlxuICAgIChjbGlja2VkKT1cIm9uQ2xpY2suZW1pdCgkZXZlbnQpXCJcbiAgICBbZGlzYWJsZWRdPVwiZGlzYWJsZWRcIlxuICAgIFtpZF09XCJpZFwiXG4gICAgW3NpemVdPVwic2l6ZVwiXG4gICAgW3R5cGVdPVwidHlwZVwiXG4gICAgW3ByaW9yaXR5XT1cInByaW9yaXR5XCJcbiAgICBbaWNvbkNsYXNzXT1cImljb25cIlxuICAgIFtsYWJlbF09XCJsYWJlbFwiPlxuICA8L3MtYnV0dG9uPlxuPC9kaXY+XG4iXX0=
|
|
@@ -0,0 +1,80 @@
|
|
|
1
|
+
import { Component, Input, Output, EventEmitter, forwardRef } from "@angular/core";
|
|
2
|
+
import { CommonModule } from "@angular/common";
|
|
3
|
+
import { NG_VALUE_ACCESSOR } from "@angular/forms";
|
|
4
|
+
import * as i0 from "@angular/core";
|
|
5
|
+
import * as i1 from "@angular/common";
|
|
6
|
+
let nextId = 0;
|
|
7
|
+
export class CheckboxComponent {
|
|
8
|
+
label = "";
|
|
9
|
+
disabled = false;
|
|
10
|
+
commonCheckbox = false;
|
|
11
|
+
labelPosition = 'right';
|
|
12
|
+
size = 'medium';
|
|
13
|
+
checked = false;
|
|
14
|
+
checkedChange = new EventEmitter();
|
|
15
|
+
inputId = `sdc-checkbox-${++nextId}`;
|
|
16
|
+
onChange = () => { };
|
|
17
|
+
onTouched = () => { };
|
|
18
|
+
writeValue(value) {
|
|
19
|
+
this.checked = !!value;
|
|
20
|
+
}
|
|
21
|
+
registerOnChange(fn) {
|
|
22
|
+
this.onChange = fn;
|
|
23
|
+
}
|
|
24
|
+
registerOnTouched(fn) {
|
|
25
|
+
this.onTouched = fn;
|
|
26
|
+
}
|
|
27
|
+
setDisabledState(isDisabled) {
|
|
28
|
+
this.disabled = isDisabled;
|
|
29
|
+
}
|
|
30
|
+
toggleChecked() {
|
|
31
|
+
if (this.disabled)
|
|
32
|
+
return;
|
|
33
|
+
this.checked = !this.checked;
|
|
34
|
+
this.onChange(this.checked);
|
|
35
|
+
this.checkedChange.emit(this.checked);
|
|
36
|
+
this.onTouched();
|
|
37
|
+
}
|
|
38
|
+
onInputChange(ev) {
|
|
39
|
+
if (this.disabled)
|
|
40
|
+
return;
|
|
41
|
+
const el = ev.target;
|
|
42
|
+
this.checked = !!el.checked;
|
|
43
|
+
this.onChange(this.checked);
|
|
44
|
+
this.checkedChange.emit(this.checked);
|
|
45
|
+
this.onTouched();
|
|
46
|
+
}
|
|
47
|
+
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: CheckboxComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
|
|
48
|
+
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.2.13", type: CheckboxComponent, isStandalone: true, selector: "sdc-checkbox", inputs: { label: "label", disabled: "disabled", commonCheckbox: "commonCheckbox", labelPosition: "labelPosition", size: "size", checked: "checked" }, outputs: { checkedChange: "checkedChange" }, providers: [
|
|
49
|
+
{
|
|
50
|
+
provide: NG_VALUE_ACCESSOR,
|
|
51
|
+
useExisting: forwardRef(() => CheckboxComponent),
|
|
52
|
+
multi: true
|
|
53
|
+
}
|
|
54
|
+
], ngImport: i0, template: "<!-- Nativo -->\n<label\n *ngIf=\"commonCheckbox\"\n class=\"sdc-checkbox sdc-checkbox--native\"\n [class.sdc-checkbox--disabled]=\"disabled\"\n [class.sdc-checkbox--label-left]=\"labelPosition === 'left'\"\n [class.sdc-checkbox--small]=\"size === 'small'\"\n [class.sdc-checkbox--medium]=\"size === 'medium'\"\n [class.sdc-checkbox--large]=\"size === 'large'\"\n [attr.aria-disabled]=\"disabled\"\n>\n <input\n class=\"sdc-checkbox__input-native\"\n type=\"checkbox\"\n [id]=\"inputId\"\n [checked]=\"checked\"\n [disabled]=\"disabled\"\n (change)=\"onInputChange($event)\"\n [attr.aria-checked]=\"checked\"\n [attr.role]=\"'checkbox'\"\n />\n <span *ngIf=\"label\" class=\"sdc-checkbox__label\">{{ label }}</span>\n</label>\n\n<!-- Custom -->\n<label\n *ngIf=\"!commonCheckbox\"\n class=\"sdc-checkbox\"\n [class.sdc-checkbox--disabled]=\"disabled\"\n [class.sdc-checkbox--label-left]=\"labelPosition === 'left'\"\n [class.sdc-checkbox--small]=\"size === 'small'\"\n [class.sdc-checkbox--medium]=\"size === 'medium'\"\n [class.sdc-checkbox--large]=\"size === 'large'\"\n [attr.aria-disabled]=\"disabled\"\n>\n <input\n class=\"sdc-checkbox__input\"\n type=\"checkbox\"\n [id]=\"inputId\"\n [checked]=\"checked\"\n [disabled]=\"disabled\"\n (change)=\"onInputChange($event)\"\n [attr.aria-checked]=\"checked\"\n [attr.role]=\"'checkbox'\"\n />\n <span class=\"sdc-checkbox__box\" aria-hidden=\"true\"></span>\n <span *ngIf=\"label\" class=\"sdc-checkbox__label\">{{ label }}</span>\n</label>\n", styles: [":host{display:inline-flex}.sdc-checkbox{display:inline-flex;align-items:center;gap:8px;cursor:pointer;-webkit-user-select:none;user-select:none}.sdc-checkbox--disabled{cursor:not-allowed;opacity:.6}.sdc-checkbox--label-left{flex-direction:row-reverse}.sdc-checkbox--native .sdc-checkbox__input-native{width:var(--sdc-chk-size);height:var(--sdc-chk-size)}.sdc-checkbox--small{--sdc-chk-size: 14px}.sdc-checkbox--medium{--sdc-chk-size: 18px}.sdc-checkbox--large{--sdc-chk-size: 24px}.sdc-checkbox__input{position:absolute;opacity:0;width:0;height:0}.sdc-checkbox__box{width:var(--sdc-chk-size);height:var(--sdc-chk-size);border:2px solid var(--sdc-chk-border);border-radius:var(--sdc-chk-radius);display:inline-block;position:relative;transition:all .15s ease-in-out;flex:0 0 auto}.sdc-checkbox__input:focus-visible+.sdc-checkbox__box{outline:2px solid var(--sdc-chk-focus);outline-offset:2px}.sdc-checkbox__input:checked+.sdc-checkbox__box{background-color:var(--sdc-chk-color);border-color:var(--sdc-chk-color)}.sdc-checkbox__input:checked+.sdc-checkbox__box:after{content:\"\";position:absolute;left:calc(var(--sdc-chk-size) * .22);top:calc(var(--sdc-chk-size) * .02);width:calc(var(--sdc-chk-size) * .3);height:calc(var(--sdc-chk-size) * .6);border:solid #fff;border-width:0 max(2px,var(--sdc-chk-size) * .1) max(2px,var(--sdc-chk-size) * .1) 0;transform:rotate(45deg);box-sizing:border-box}.sdc-checkbox__label{font-size:14px;line-height:1;align-self:center}\n"], dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "directive", type: i1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }] });
|
|
55
|
+
}
|
|
56
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: CheckboxComponent, decorators: [{
|
|
57
|
+
type: Component,
|
|
58
|
+
args: [{ standalone: true, selector: "sdc-checkbox", imports: [CommonModule], providers: [
|
|
59
|
+
{
|
|
60
|
+
provide: NG_VALUE_ACCESSOR,
|
|
61
|
+
useExisting: forwardRef(() => CheckboxComponent),
|
|
62
|
+
multi: true
|
|
63
|
+
}
|
|
64
|
+
], template: "<!-- Nativo -->\n<label\n *ngIf=\"commonCheckbox\"\n class=\"sdc-checkbox sdc-checkbox--native\"\n [class.sdc-checkbox--disabled]=\"disabled\"\n [class.sdc-checkbox--label-left]=\"labelPosition === 'left'\"\n [class.sdc-checkbox--small]=\"size === 'small'\"\n [class.sdc-checkbox--medium]=\"size === 'medium'\"\n [class.sdc-checkbox--large]=\"size === 'large'\"\n [attr.aria-disabled]=\"disabled\"\n>\n <input\n class=\"sdc-checkbox__input-native\"\n type=\"checkbox\"\n [id]=\"inputId\"\n [checked]=\"checked\"\n [disabled]=\"disabled\"\n (change)=\"onInputChange($event)\"\n [attr.aria-checked]=\"checked\"\n [attr.role]=\"'checkbox'\"\n />\n <span *ngIf=\"label\" class=\"sdc-checkbox__label\">{{ label }}</span>\n</label>\n\n<!-- Custom -->\n<label\n *ngIf=\"!commonCheckbox\"\n class=\"sdc-checkbox\"\n [class.sdc-checkbox--disabled]=\"disabled\"\n [class.sdc-checkbox--label-left]=\"labelPosition === 'left'\"\n [class.sdc-checkbox--small]=\"size === 'small'\"\n [class.sdc-checkbox--medium]=\"size === 'medium'\"\n [class.sdc-checkbox--large]=\"size === 'large'\"\n [attr.aria-disabled]=\"disabled\"\n>\n <input\n class=\"sdc-checkbox__input\"\n type=\"checkbox\"\n [id]=\"inputId\"\n [checked]=\"checked\"\n [disabled]=\"disabled\"\n (change)=\"onInputChange($event)\"\n [attr.aria-checked]=\"checked\"\n [attr.role]=\"'checkbox'\"\n />\n <span class=\"sdc-checkbox__box\" aria-hidden=\"true\"></span>\n <span *ngIf=\"label\" class=\"sdc-checkbox__label\">{{ label }}</span>\n</label>\n", styles: [":host{display:inline-flex}.sdc-checkbox{display:inline-flex;align-items:center;gap:8px;cursor:pointer;-webkit-user-select:none;user-select:none}.sdc-checkbox--disabled{cursor:not-allowed;opacity:.6}.sdc-checkbox--label-left{flex-direction:row-reverse}.sdc-checkbox--native .sdc-checkbox__input-native{width:var(--sdc-chk-size);height:var(--sdc-chk-size)}.sdc-checkbox--small{--sdc-chk-size: 14px}.sdc-checkbox--medium{--sdc-chk-size: 18px}.sdc-checkbox--large{--sdc-chk-size: 24px}.sdc-checkbox__input{position:absolute;opacity:0;width:0;height:0}.sdc-checkbox__box{width:var(--sdc-chk-size);height:var(--sdc-chk-size);border:2px solid var(--sdc-chk-border);border-radius:var(--sdc-chk-radius);display:inline-block;position:relative;transition:all .15s ease-in-out;flex:0 0 auto}.sdc-checkbox__input:focus-visible+.sdc-checkbox__box{outline:2px solid var(--sdc-chk-focus);outline-offset:2px}.sdc-checkbox__input:checked+.sdc-checkbox__box{background-color:var(--sdc-chk-color);border-color:var(--sdc-chk-color)}.sdc-checkbox__input:checked+.sdc-checkbox__box:after{content:\"\";position:absolute;left:calc(var(--sdc-chk-size) * .22);top:calc(var(--sdc-chk-size) * .02);width:calc(var(--sdc-chk-size) * .3);height:calc(var(--sdc-chk-size) * .6);border:solid #fff;border-width:0 max(2px,var(--sdc-chk-size) * .1) max(2px,var(--sdc-chk-size) * .1) 0;transform:rotate(45deg);box-sizing:border-box}.sdc-checkbox__label{font-size:14px;line-height:1;align-self:center}\n"] }]
|
|
65
|
+
}], propDecorators: { label: [{
|
|
66
|
+
type: Input
|
|
67
|
+
}], disabled: [{
|
|
68
|
+
type: Input
|
|
69
|
+
}], commonCheckbox: [{
|
|
70
|
+
type: Input
|
|
71
|
+
}], labelPosition: [{
|
|
72
|
+
type: Input
|
|
73
|
+
}], size: [{
|
|
74
|
+
type: Input
|
|
75
|
+
}], checked: [{
|
|
76
|
+
type: Input
|
|
77
|
+
}], checkedChange: [{
|
|
78
|
+
type: Output
|
|
79
|
+
}] } });
|
|
80
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2hlY2tib3guY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vbGliL3NyYy9mZWF0dXJlcy9jaGVja2JveC9jaGVja2JveC5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi9saWIvc3JjL2ZlYXR1cmVzL2NoZWNrYm94L2NoZWNrYm94LmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxTQUFTLEVBQUUsS0FBSyxFQUFFLE1BQU0sRUFBRSxZQUFZLEVBQUUsVUFBVSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQ25GLE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUMvQyxPQUFPLEVBQXdCLGlCQUFpQixFQUFFLE1BQU0sZ0JBQWdCLENBQUM7OztBQUV6RSxJQUFJLE1BQU0sR0FBRyxDQUFDLENBQUM7QUFnQmYsTUFBTSxPQUFPLGlCQUFpQjtJQUNuQixLQUFLLEdBQVcsRUFBRSxDQUFDO0lBQ25CLFFBQVEsR0FBWSxLQUFLLENBQUM7SUFDMUIsY0FBYyxHQUFZLEtBQUssQ0FBQztJQUNoQyxhQUFhLEdBQXFCLE9BQU8sQ0FBQztJQUMxQyxJQUFJLEdBQWlDLFFBQVEsQ0FBQztJQUU5QyxPQUFPLEdBQVksS0FBSyxDQUFDO0lBQ3hCLGFBQWEsR0FBRyxJQUFJLFlBQVksRUFBVyxDQUFDO0lBRXRELE9BQU8sR0FBRyxnQkFBZ0IsRUFBRSxNQUFNLEVBQUUsQ0FBQztJQUU3QixRQUFRLEdBQTJCLEdBQUcsRUFBRSxHQUFFLENBQUMsQ0FBQztJQUM1QyxTQUFTLEdBQWUsR0FBRyxFQUFFLEdBQUUsQ0FBQyxDQUFDO0lBRXpDLFVBQVUsQ0FBQyxLQUFjO1FBQ3ZCLElBQUksQ0FBQyxPQUFPLEdBQUcsQ0FBQyxDQUFDLEtBQUssQ0FBQztJQUN6QixDQUFDO0lBQ0QsZ0JBQWdCLENBQUMsRUFBMEI7UUFDekMsSUFBSSxDQUFDLFFBQVEsR0FBRyxFQUFFLENBQUM7SUFDckIsQ0FBQztJQUNELGlCQUFpQixDQUFDLEVBQWM7UUFDOUIsSUFBSSxDQUFDLFNBQVMsR0FBRyxFQUFFLENBQUM7SUFDdEIsQ0FBQztJQUNELGdCQUFnQixDQUFDLFVBQW1CO1FBQ2xDLElBQUksQ0FBQyxRQUFRLEdBQUcsVUFBVSxDQUFDO0lBQzdCLENBQUM7SUFFRCxhQUFhO1FBQ1gsSUFBSSxJQUFJLENBQUMsUUFBUTtZQUFFLE9BQU87UUFDMUIsSUFBSSxDQUFDLE9BQU8sR0FBRyxDQUFDLElBQUksQ0FBQyxPQUFPLENBQUM7UUFDN0IsSUFBSSxDQUFDLFFBQVEsQ0FBQyxJQUFJLENBQUMsT0FBTyxDQUFDLENBQUM7UUFDNUIsSUFBSSxDQUFDLGFBQWEsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLE9BQU8sQ0FBQyxDQUFDO1FBQ3RDLElBQUksQ0FBQyxTQUFTLEVBQUUsQ0FBQztJQUNuQixDQUFDO0lBRUQsYUFBYSxDQUFDLEVBQVM7UUFDckIsSUFBSSxJQUFJLENBQUMsUUFBUTtZQUFFLE9BQU87UUFDMUIsTUFBTSxFQUFFLEdBQUcsRUFBRSxDQUFDLE1BQTBCLENBQUM7UUFDekMsSUFBSSxDQUFDLE9BQU8sR0FBRyxDQUFDLENBQUMsRUFBRSxDQUFDLE9BQU8sQ0FBQztRQUM1QixJQUFJLENBQUMsUUFBUSxDQUFDLElBQUksQ0FBQyxPQUFPLENBQUMsQ0FBQztRQUM1QixJQUFJLENBQUMsYUFBYSxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsT0FBTyxDQUFDLENBQUM7UUFDdEMsSUFBSSxDQUFDLFNBQVMsRUFBRSxDQUFDO0lBQ25CLENBQUM7d0dBM0NVLGlCQUFpQjs0RkFBakIsaUJBQWlCLDhQQVJqQjtZQUNUO2dCQUNFLE9BQU8sRUFBRSxpQkFBaUI7Z0JBQzFCLFdBQVcsRUFBRSxVQUFVLENBQUMsR0FBRyxFQUFFLENBQUMsaUJBQWlCLENBQUM7Z0JBQ2hELEtBQUssRUFBRSxJQUFJO2FBQ1o7U0FDRiwwQkNsQkgsK2hEQWdEQSxnL0NEdkNZLFlBQVk7OzRGQVdYLGlCQUFpQjtrQkFkN0IsU0FBUztpQ0FDSSxJQUFJLFlBQ04sY0FBYyxXQUNmLENBQUMsWUFBWSxDQUFDLGFBR1o7d0JBQ1Q7NEJBQ0UsT0FBTyxFQUFFLGlCQUFpQjs0QkFDMUIsV0FBVyxFQUFFLFVBQVUsQ0FBQyxHQUFHLEVBQUUsa0JBQWtCLENBQUM7NEJBQ2hELEtBQUssRUFBRSxJQUFJO3lCQUNaO3FCQUNGOzhCQUdRLEtBQUs7c0JBQWIsS0FBSztnQkFDRyxRQUFRO3NCQUFoQixLQUFLO2dCQUNHLGNBQWM7c0JBQXRCLEtBQUs7Z0JBQ0csYUFBYTtzQkFBckIsS0FBSztnQkFDRyxJQUFJO3NCQUFaLEtBQUs7Z0JBRUcsT0FBTztzQkFBZixLQUFLO2dCQUNJLGFBQWE7c0JBQXRCLE1BQU0iLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDb21wb25lbnQsIElucHV0LCBPdXRwdXQsIEV2ZW50RW1pdHRlciwgZm9yd2FyZFJlZiB9IGZyb20gXCJAYW5ndWxhci9jb3JlXCI7XG5pbXBvcnQgeyBDb21tb25Nb2R1bGUgfSBmcm9tIFwiQGFuZ3VsYXIvY29tbW9uXCI7XG5pbXBvcnQgeyBDb250cm9sVmFsdWVBY2Nlc3NvciwgTkdfVkFMVUVfQUNDRVNTT1IgfSBmcm9tIFwiQGFuZ3VsYXIvZm9ybXNcIjtcblxubGV0IG5leHRJZCA9IDA7XG5cbkBDb21wb25lbnQoe1xuICBzdGFuZGFsb25lOiB0cnVlLFxuICBzZWxlY3RvcjogXCJzZGMtY2hlY2tib3hcIixcbiAgaW1wb3J0czogW0NvbW1vbk1vZHVsZV0sXG4gIHRlbXBsYXRlVXJsOiBcIi4vY2hlY2tib3guY29tcG9uZW50Lmh0bWxcIixcbiAgc3R5bGVVcmxzOiBbXCIuL2NoZWNrYm94LmNvbXBvbmVudC5zY3NzXCJdLFxuICBwcm92aWRlcnM6IFtcbiAgICB7XG4gICAgICBwcm92aWRlOiBOR19WQUxVRV9BQ0NFU1NPUixcbiAgICAgIHVzZUV4aXN0aW5nOiBmb3J3YXJkUmVmKCgpID0+IENoZWNrYm94Q29tcG9uZW50KSxcbiAgICAgIG11bHRpOiB0cnVlXG4gICAgfVxuICBdXG59KVxuZXhwb3J0IGNsYXNzIENoZWNrYm94Q29tcG9uZW50IGltcGxlbWVudHMgQ29udHJvbFZhbHVlQWNjZXNzb3Ige1xuICBASW5wdXQoKSBsYWJlbDogc3RyaW5nID0gXCJcIjtcbiAgQElucHV0KCkgZGlzYWJsZWQ6IGJvb2xlYW4gPSBmYWxzZTtcbiAgQElucHV0KCkgY29tbW9uQ2hlY2tib3g6IGJvb2xlYW4gPSBmYWxzZTtcbiAgQElucHV0KCkgbGFiZWxQb3NpdGlvbjogJ3JpZ2h0JyB8ICdsZWZ0JyA9ICdyaWdodCc7XG4gIEBJbnB1dCgpIHNpemU6ICdzbWFsbCcgfCAnbWVkaXVtJyB8ICdsYXJnZScgPSAnbWVkaXVtJztcblxuICBASW5wdXQoKSBjaGVja2VkOiBib29sZWFuID0gZmFsc2U7XG4gIEBPdXRwdXQoKSBjaGVja2VkQ2hhbmdlID0gbmV3IEV2ZW50RW1pdHRlcjxib29sZWFuPigpO1xuXG4gIGlucHV0SWQgPSBgc2RjLWNoZWNrYm94LSR7KytuZXh0SWR9YDtcblxuICBwcml2YXRlIG9uQ2hhbmdlOiAodmFsOiBib29sZWFuKSA9PiB2b2lkID0gKCkgPT4ge307XG4gIHByaXZhdGUgb25Ub3VjaGVkOiAoKSA9PiB2b2lkID0gKCkgPT4ge307XG5cbiAgd3JpdGVWYWx1ZSh2YWx1ZTogYm9vbGVhbik6IHZvaWQge1xuICAgIHRoaXMuY2hlY2tlZCA9ICEhdmFsdWU7XG4gIH1cbiAgcmVnaXN0ZXJPbkNoYW5nZShmbjogKHZhbDogYm9vbGVhbikgPT4gdm9pZCk6IHZvaWQge1xuICAgIHRoaXMub25DaGFuZ2UgPSBmbjtcbiAgfVxuICByZWdpc3Rlck9uVG91Y2hlZChmbjogKCkgPT4gdm9pZCk6IHZvaWQge1xuICAgIHRoaXMub25Ub3VjaGVkID0gZm47XG4gIH1cbiAgc2V0RGlzYWJsZWRTdGF0ZShpc0Rpc2FibGVkOiBib29sZWFuKTogdm9pZCB7XG4gICAgdGhpcy5kaXNhYmxlZCA9IGlzRGlzYWJsZWQ7XG4gIH1cblxuICB0b2dnbGVDaGVja2VkKCk6IHZvaWQge1xuICAgIGlmICh0aGlzLmRpc2FibGVkKSByZXR1cm47XG4gICAgdGhpcy5jaGVja2VkID0gIXRoaXMuY2hlY2tlZDtcbiAgICB0aGlzLm9uQ2hhbmdlKHRoaXMuY2hlY2tlZCk7XG4gICAgdGhpcy5jaGVja2VkQ2hhbmdlLmVtaXQodGhpcy5jaGVja2VkKTtcbiAgICB0aGlzLm9uVG91Y2hlZCgpO1xuICB9XG5cbiAgb25JbnB1dENoYW5nZShldjogRXZlbnQpOiB2b2lkIHtcbiAgICBpZiAodGhpcy5kaXNhYmxlZCkgcmV0dXJuO1xuICAgIGNvbnN0IGVsID0gZXYudGFyZ2V0IGFzIEhUTUxJbnB1dEVsZW1lbnQ7XG4gICAgdGhpcy5jaGVja2VkID0gISFlbC5jaGVja2VkO1xuICAgIHRoaXMub25DaGFuZ2UodGhpcy5jaGVja2VkKTtcbiAgICB0aGlzLmNoZWNrZWRDaGFuZ2UuZW1pdCh0aGlzLmNoZWNrZWQpO1xuICAgIHRoaXMub25Ub3VjaGVkKCk7XG4gIH1cbn1cbiIsIjwhLS0gTmF0aXZvIC0tPlxuPGxhYmVsXG4gICpuZ0lmPVwiY29tbW9uQ2hlY2tib3hcIlxuICBjbGFzcz1cInNkYy1jaGVja2JveCBzZGMtY2hlY2tib3gtLW5hdGl2ZVwiXG4gIFtjbGFzcy5zZGMtY2hlY2tib3gtLWRpc2FibGVkXT1cImRpc2FibGVkXCJcbiAgW2NsYXNzLnNkYy1jaGVja2JveC0tbGFiZWwtbGVmdF09XCJsYWJlbFBvc2l0aW9uID09PSAnbGVmdCdcIlxuICBbY2xhc3Muc2RjLWNoZWNrYm94LS1zbWFsbF09XCJzaXplID09PSAnc21hbGwnXCJcbiAgW2NsYXNzLnNkYy1jaGVja2JveC0tbWVkaXVtXT1cInNpemUgPT09ICdtZWRpdW0nXCJcbiAgW2NsYXNzLnNkYy1jaGVja2JveC0tbGFyZ2VdPVwic2l6ZSA9PT0gJ2xhcmdlJ1wiXG4gIFthdHRyLmFyaWEtZGlzYWJsZWRdPVwiZGlzYWJsZWRcIlxuPlxuICA8aW5wdXRcbiAgICBjbGFzcz1cInNkYy1jaGVja2JveF9faW5wdXQtbmF0aXZlXCJcbiAgICB0eXBlPVwiY2hlY2tib3hcIlxuICAgIFtpZF09XCJpbnB1dElkXCJcbiAgICBbY2hlY2tlZF09XCJjaGVja2VkXCJcbiAgICBbZGlzYWJsZWRdPVwiZGlzYWJsZWRcIlxuICAgIChjaGFuZ2UpPVwib25JbnB1dENoYW5nZSgkZXZlbnQpXCJcbiAgICBbYXR0ci5hcmlhLWNoZWNrZWRdPVwiY2hlY2tlZFwiXG4gICAgW2F0dHIucm9sZV09XCInY2hlY2tib3gnXCJcbiAgLz5cbiAgPHNwYW4gKm5nSWY9XCJsYWJlbFwiIGNsYXNzPVwic2RjLWNoZWNrYm94X19sYWJlbFwiPnt7IGxhYmVsIH19PC9zcGFuPlxuPC9sYWJlbD5cblxuPCEtLSBDdXN0b20gLS0+XG48bGFiZWxcbiAgKm5nSWY9XCIhY29tbW9uQ2hlY2tib3hcIlxuICBjbGFzcz1cInNkYy1jaGVja2JveFwiXG4gIFtjbGFzcy5zZGMtY2hlY2tib3gtLWRpc2FibGVkXT1cImRpc2FibGVkXCJcbiAgW2NsYXNzLnNkYy1jaGVja2JveC0tbGFiZWwtbGVmdF09XCJsYWJlbFBvc2l0aW9uID09PSAnbGVmdCdcIlxuICBbY2xhc3Muc2RjLWNoZWNrYm94LS1zbWFsbF09XCJzaXplID09PSAnc21hbGwnXCJcbiAgW2NsYXNzLnNkYy1jaGVja2JveC0tbWVkaXVtXT1cInNpemUgPT09ICdtZWRpdW0nXCJcbiAgW2NsYXNzLnNkYy1jaGVja2JveC0tbGFyZ2VdPVwic2l6ZSA9PT0gJ2xhcmdlJ1wiXG4gIFthdHRyLmFyaWEtZGlzYWJsZWRdPVwiZGlzYWJsZWRcIlxuPlxuICA8aW5wdXRcbiAgICBjbGFzcz1cInNkYy1jaGVja2JveF9faW5wdXRcIlxuICAgIHR5cGU9XCJjaGVja2JveFwiXG4gICAgW2lkXT1cImlucHV0SWRcIlxuICAgIFtjaGVja2VkXT1cImNoZWNrZWRcIlxuICAgIFtkaXNhYmxlZF09XCJkaXNhYmxlZFwiXG4gICAgKGNoYW5nZSk9XCJvbklucHV0Q2hhbmdlKCRldmVudClcIlxuICAgIFthdHRyLmFyaWEtY2hlY2tlZF09XCJjaGVja2VkXCJcbiAgICBbYXR0ci5yb2xlXT1cIidjaGVja2JveCdcIlxuICAvPlxuICA8c3BhbiBjbGFzcz1cInNkYy1jaGVja2JveF9fYm94XCIgYXJpYS1oaWRkZW49XCJ0cnVlXCI+PC9zcGFuPlxuICA8c3BhbiAqbmdJZj1cImxhYmVsXCIgY2xhc3M9XCJzZGMtY2hlY2tib3hfX2xhYmVsXCI+e3sgbGFiZWwgfX08L3NwYW4+XG48L2xhYmVsPlxuIl19
|
|
@@ -6,40 +6,56 @@ import { FormsModule, NG_VALUE_ACCESSOR, ReactiveFormsModule } from '@angular/fo
|
|
|
6
6
|
import { InputsComponent } from '../inputs';
|
|
7
7
|
import * as i0 from "@angular/core";
|
|
8
8
|
import * as i1 from "primeng/autocomplete";
|
|
9
|
-
import * as i2 from "
|
|
10
|
-
import * as i3 from "@angular/
|
|
9
|
+
import * as i2 from "primeng/api";
|
|
10
|
+
import * as i3 from "@angular/common";
|
|
11
|
+
import * as i4 from "@angular/forms";
|
|
11
12
|
export class ComboboxComponent extends InputsComponent {
|
|
12
13
|
filteredItems = [];
|
|
13
14
|
autocomplete;
|
|
15
|
+
appendTo;
|
|
14
16
|
zIndex = 9999;
|
|
15
17
|
options = [];
|
|
16
18
|
selectedValueEvent = new EventEmitter();
|
|
17
19
|
ngAfterViewInit() {
|
|
18
20
|
fixComboBoxOverlay(this.autocomplete, this.zIndex);
|
|
19
21
|
}
|
|
22
|
+
normalizeOptions() {
|
|
23
|
+
if (Array.isArray(this.options))
|
|
24
|
+
return this.options;
|
|
25
|
+
try {
|
|
26
|
+
const parsed = JSON.parse(this.options || '[]');
|
|
27
|
+
return Array.isArray(parsed) ? parsed : [];
|
|
28
|
+
}
|
|
29
|
+
catch {
|
|
30
|
+
return [];
|
|
31
|
+
}
|
|
32
|
+
}
|
|
20
33
|
onSearch(event) {
|
|
21
|
-
const
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
this.invalid =
|
|
34
|
+
const all = this.normalizeOptions();
|
|
35
|
+
const q = (event?.query ?? '').toString().trim().toLowerCase();
|
|
36
|
+
if (!q) {
|
|
37
|
+
this.filteredItems = all.slice();
|
|
38
|
+
this.invalid = this.filteredItems.length === 0;
|
|
39
|
+
return;
|
|
26
40
|
}
|
|
41
|
+
this.filteredItems = all.filter(i => (i?.text ?? '').toLowerCase().includes(q));
|
|
42
|
+
this.invalid = this.filteredItems.length === 0;
|
|
27
43
|
}
|
|
28
44
|
onInput(event) {
|
|
29
45
|
super.onInput(event);
|
|
30
46
|
this.selectedValueEvent.emit(this.value);
|
|
31
|
-
if (this.filteredItems
|
|
47
|
+
if (this.filteredItems?.length > 0) {
|
|
32
48
|
this.invalid = false;
|
|
33
49
|
}
|
|
34
50
|
}
|
|
35
51
|
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: ComboboxComponent, deps: null, target: i0.ɵɵFactoryTarget.Component });
|
|
36
|
-
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.2.13", type: ComboboxComponent, isStandalone: true, selector: "sdc-combobox", inputs: { zIndex: "zIndex", options: "options" }, outputs: { selectedValueEvent: "onSelectedItem" }, providers: [
|
|
52
|
+
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.2.13", type: ComboboxComponent, isStandalone: true, selector: "sdc-combobox", inputs: { appendTo: "appendTo", zIndex: "zIndex", options: "options" }, outputs: { selectedValueEvent: "onSelectedItem" }, providers: [
|
|
37
53
|
{
|
|
38
54
|
provide: NG_VALUE_ACCESSOR,
|
|
39
55
|
useExisting: forwardRef(() => ComboboxComponent),
|
|
40
56
|
multi: true
|
|
41
57
|
}
|
|
42
|
-
], viewQueries: [{ propertyName: "autocomplete", first: true, predicate: ["autocomplete"], descendants: true }], usesInheritance: true, ngImport: i0, template: "<div class=\"
|
|
58
|
+
], viewQueries: [{ propertyName: "autocomplete", first: true, predicate: ["autocomplete"], descendants: true }], usesInheritance: true, ngImport: i0, template: "<div class=\"sdc-combobox\">\n <label *ngIf=\"label\" [for]=\"identity.id\">\n <span>{{ label }}</span>\n <span class=\"required-field\" *ngIf=\"required\"> •</span>\n </label>\n\n <p-autocomplete\n #autocomplete\n dropdownIcon=\"fas fa-caret-down\"\n (completeMethod)=\"onSearch($event)\"\n (ngModelChange)=\"onInput($event)\"\n [(ngModel)]=\"value\"\n [autoHighlight]=\"true\"\n [disabled]=\"disabled\"\n [dropdown]=\"true\"\n [forceSelection]=\"true\"\n [id]=\"identity.id\"\n [name]=\"identity.name ?? ''\"\n [ngClass]=\"getInvalidClass()\"\n [placeholder]=\"placeholder\"\n [required]=\"required\"\n [showClear]=\"true\"\n [style]=\"getInputStyle()\"\n [suggestions]=\"filteredItems\"\n optionLabel=\"text\"\n optionValue=\"value\"\n [appendTo]=\"appendTo\">\n\n <ng-template pTemplate=\"item\" let-opt>\n <div class=\"flex align-items-center gap-2\">\n <i *ngIf=\"opt?.icon\" [class]=\"opt.icon\"></i>\n <span>{{ opt?.text }}</span>\n </div>\n </ng-template>\n\n <ng-template pTemplate=\"selectedItem\" let-opt>\n <div class=\"flex align-items-center gap-2\">\n <i *ngIf=\"opt?.icon\" [class]=\"opt.icon\"></i>\n <span>{{ opt?.text }}</span>\n </div>\n </ng-template>\n </p-autocomplete>\n\n <small *ngIf=\"message\" [ngClass]=\"getInvalidMessageClass()\">{{ message }}</small>\n</div>\n", styles: [".sdc-combobox ::ng-deep .p-inputtext{border:1px solid var(--sdc-formfield-default-border)!important;min-height:var(--sdc-formfield-default-height)!important;height:var(--sdc-formfield-default-height)!important;max-height:var(--sdc-formfield-default-height)!important;line-height:var(--sdc-formfield-default-line-height)!important}.sdc-combobox ::ng-deep .p-inputtext:disabled{background-color:var(--sdc-formfield-disabled-bg)!important}.sdc-combobox ::ng-deep .p-autocomplete-dropdown{border-start-end-radius:var(--sdc-formfield-border-radius)!important;border-end-end-radius:var(--sdc-formfield-border-radius)!important;background-color:var(--sdc-button-bg)!important;border:1px solid var(--sdc-formfield-default-border)!important;border-left:0!important;color:var(--sdc-button-icon-default)!important}.sdc-combobox ::ng-deep .p-autocomplete-dropdown .p-button-icon{color:var(--sdc-button-icon-default)!important}.sdc-combobox ::ng-deep .p-autocomplete-dropdown:hover{transition:var(--sdc-button-bg-hover-transition)!important;background-color:var(--sdc-button-bg-hover)!important}.sdc-combobox ::ng-deep .p-autocomplete input{border-start-start-radius:var(--sdc-formfield-border-radius)!important;border-end-start-radius:var(--sdc-formfield-border-radius)!important}\n"], dependencies: [{ kind: "ngmodule", type: AutoCompleteModule }, { kind: "component", type: i1.AutoComplete, selector: "p-autoComplete, p-autocomplete, p-auto-complete", inputs: ["minLength", "delay", "style", "panelStyle", "styleClass", "panelStyleClass", "inputStyle", "inputId", "inputStyleClass", "placeholder", "readonly", "disabled", "scrollHeight", "lazy", "virtualScroll", "virtualScrollItemSize", "virtualScrollOptions", "maxlength", "name", "required", "size", "appendTo", "autoHighlight", "forceSelection", "type", "autoZIndex", "baseZIndex", "ariaLabel", "dropdownAriaLabel", "ariaLabelledBy", "dropdownIcon", "unique", "group", "completeOnFocus", "showClear", "field", "dropdown", "showEmptyMessage", "dropdownMode", "multiple", "tabindex", "dataKey", "emptyMessage", "showTransitionOptions", "hideTransitionOptions", "autofocus", "autocomplete", "optionGroupChildren", "optionGroupLabel", "overlayOptions", "suggestions", "itemSize", "optionLabel", "optionValue", "id", "searchMessage", "emptySelectionMessage", "selectionMessage", "autoOptionFocus", "selectOnFocus", "searchLocale", "optionDisabled", "focusOnHover", "typeahead", "variant", "fluid"], outputs: ["completeMethod", "onSelect", "onUnselect", "onFocus", "onBlur", "onDropdownClick", "onClear", "onKeyUp", "onShow", "onHide", "onLazyLoad"] }, { kind: "directive", type: i2.PrimeTemplate, selector: "[pTemplate]", inputs: ["type", "pTemplate"] }, { kind: "ngmodule", type: CommonModule }, { kind: "directive", type: i3.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i3.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "ngmodule", type: FormsModule }, { kind: "directive", type: i4.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i4.RequiredValidator, selector: ":not([type=checkbox])[required][formControlName],:not([type=checkbox])[required][formControl],:not([type=checkbox])[required][ngModel]", inputs: ["required"] }, { kind: "directive", type: i4.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }, { kind: "ngmodule", type: ReactiveFormsModule }] });
|
|
43
59
|
}
|
|
44
60
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: ComboboxComponent, decorators: [{
|
|
45
61
|
type: Component,
|
|
@@ -49,10 +65,12 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImpo
|
|
|
49
65
|
useExisting: forwardRef(() => ComboboxComponent),
|
|
50
66
|
multi: true
|
|
51
67
|
}
|
|
52
|
-
], template: "<div class=\"
|
|
68
|
+
], template: "<div class=\"sdc-combobox\">\n <label *ngIf=\"label\" [for]=\"identity.id\">\n <span>{{ label }}</span>\n <span class=\"required-field\" *ngIf=\"required\"> •</span>\n </label>\n\n <p-autocomplete\n #autocomplete\n dropdownIcon=\"fas fa-caret-down\"\n (completeMethod)=\"onSearch($event)\"\n (ngModelChange)=\"onInput($event)\"\n [(ngModel)]=\"value\"\n [autoHighlight]=\"true\"\n [disabled]=\"disabled\"\n [dropdown]=\"true\"\n [forceSelection]=\"true\"\n [id]=\"identity.id\"\n [name]=\"identity.name ?? ''\"\n [ngClass]=\"getInvalidClass()\"\n [placeholder]=\"placeholder\"\n [required]=\"required\"\n [showClear]=\"true\"\n [style]=\"getInputStyle()\"\n [suggestions]=\"filteredItems\"\n optionLabel=\"text\"\n optionValue=\"value\"\n [appendTo]=\"appendTo\">\n\n <ng-template pTemplate=\"item\" let-opt>\n <div class=\"flex align-items-center gap-2\">\n <i *ngIf=\"opt?.icon\" [class]=\"opt.icon\"></i>\n <span>{{ opt?.text }}</span>\n </div>\n </ng-template>\n\n <ng-template pTemplate=\"selectedItem\" let-opt>\n <div class=\"flex align-items-center gap-2\">\n <i *ngIf=\"opt?.icon\" [class]=\"opt.icon\"></i>\n <span>{{ opt?.text }}</span>\n </div>\n </ng-template>\n </p-autocomplete>\n\n <small *ngIf=\"message\" [ngClass]=\"getInvalidMessageClass()\">{{ message }}</small>\n</div>\n", styles: [".sdc-combobox ::ng-deep .p-inputtext{border:1px solid var(--sdc-formfield-default-border)!important;min-height:var(--sdc-formfield-default-height)!important;height:var(--sdc-formfield-default-height)!important;max-height:var(--sdc-formfield-default-height)!important;line-height:var(--sdc-formfield-default-line-height)!important}.sdc-combobox ::ng-deep .p-inputtext:disabled{background-color:var(--sdc-formfield-disabled-bg)!important}.sdc-combobox ::ng-deep .p-autocomplete-dropdown{border-start-end-radius:var(--sdc-formfield-border-radius)!important;border-end-end-radius:var(--sdc-formfield-border-radius)!important;background-color:var(--sdc-button-bg)!important;border:1px solid var(--sdc-formfield-default-border)!important;border-left:0!important;color:var(--sdc-button-icon-default)!important}.sdc-combobox ::ng-deep .p-autocomplete-dropdown .p-button-icon{color:var(--sdc-button-icon-default)!important}.sdc-combobox ::ng-deep .p-autocomplete-dropdown:hover{transition:var(--sdc-button-bg-hover-transition)!important;background-color:var(--sdc-button-bg-hover)!important}.sdc-combobox ::ng-deep .p-autocomplete input{border-start-start-radius:var(--sdc-formfield-border-radius)!important;border-end-start-radius:var(--sdc-formfield-border-radius)!important}\n"] }]
|
|
53
69
|
}], propDecorators: { autocomplete: [{
|
|
54
70
|
type: ViewChild,
|
|
55
71
|
args: ['autocomplete']
|
|
72
|
+
}], appendTo: [{
|
|
73
|
+
type: Input
|
|
56
74
|
}], zIndex: [{
|
|
57
75
|
type: Input
|
|
58
76
|
}], options: [{
|
|
@@ -61,4 +79,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImpo
|
|
|
61
79
|
type: Output,
|
|
62
80
|
args: ['onSelectedItem']
|
|
63
81
|
}] } });
|
|
64
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
82
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29tYm9ib3guY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vbGliL3NyYy9mZWF0dXJlcy9jb21ib2JveC9jb21ib2JveC5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi9saWIvc3JjL2ZlYXR1cmVzL2NvbWJvYm94L2NvbWJvYm94LmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBaUIsU0FBUyxFQUFFLFlBQVksRUFBRSxVQUFVLEVBQUUsS0FBSyxFQUFFLE1BQU0sRUFBRSxTQUFTLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDN0csT0FBTyxFQUFFLGtCQUFrQixFQUE2QixNQUFNLHNCQUFzQixDQUFDO0FBQ3JGLE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUMvQyxPQUFPLEVBQUUsa0JBQWtCLEVBQW9DLE1BQU0sa0JBQWtCLENBQUM7QUFDeEYsT0FBTyxFQUFFLFdBQVcsRUFBRSxpQkFBaUIsRUFBRSxtQkFBbUIsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBQ3JGLE9BQU8sRUFBRSxlQUFlLEVBQUUsTUFBTSxXQUFXLENBQUM7Ozs7OztBQWdCNUMsTUFBTSxPQUFPLGlCQUFrQixTQUFRLGVBQTRCO0lBQzFELGFBQWEsR0FBaUIsRUFBRSxDQUFDO0lBQ2IsWUFBWSxDQUFNO0lBRXBDLFFBQVEsQ0FBcUI7SUFDN0IsTUFBTSxHQUFXLElBQUksQ0FBQztJQUN0QixPQUFPLEdBQXFCLEVBQUUsQ0FBQztJQUVkLGtCQUFrQixHQUFHLElBQUksWUFBWSxFQUFlLENBQUM7SUFFL0UsZUFBZTtRQUNiLGtCQUFrQixDQUFDLElBQUksQ0FBQyxZQUFZLEVBQUUsSUFBSSxDQUFDLE1BQU0sQ0FBQyxDQUFDO0lBQ3JELENBQUM7SUFFTyxnQkFBZ0I7UUFDdEIsSUFBSSxLQUFLLENBQUMsT0FBTyxDQUFDLElBQUksQ0FBQyxPQUFPLENBQUM7WUFBRSxPQUFPLElBQUksQ0FBQyxPQUF1QixDQUFDO1FBQ3JFLElBQUksQ0FBQztZQUNILE1BQU0sTUFBTSxHQUFHLElBQUksQ0FBQyxLQUFLLENBQUMsSUFBSSxDQUFDLE9BQU8sSUFBSSxJQUFJLENBQUMsQ0FBQztZQUNoRCxPQUFPLEtBQUssQ0FBQyxPQUFPLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQyxDQUFFLE1BQXVCLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQztRQUMvRCxDQUFDO1FBQUMsTUFBTSxDQUFDO1lBQ1AsT0FBTyxFQUFFLENBQUM7UUFDWixDQUFDO0lBQ0gsQ0FBQztJQUVELFFBQVEsQ0FBQyxLQUFnQztRQUN2QyxNQUFNLEdBQUcsR0FBRyxJQUFJLENBQUMsZ0JBQWdCLEVBQUUsQ0FBQztRQUNwQyxNQUFNLENBQUMsR0FBRyxDQUFDLEtBQUssRUFBRSxLQUFLLElBQUksRUFBRSxDQUFDLENBQUMsUUFBUSxFQUFFLENBQUMsSUFBSSxFQUFFLENBQUMsV0FBVyxFQUFFLENBQUM7UUFFL0QsSUFBSSxDQUFDLENBQUMsRUFBRSxDQUFDO1lBQ1AsSUFBSSxDQUFDLGFBQWEsR0FBRyxHQUFHLENBQUMsS0FBSyxFQUFFLENBQUM7WUFDakMsSUFBSSxDQUFDLE9BQU8sR0FBRyxJQUFJLENBQUMsYUFBYSxDQUFDLE1BQU0sS0FBSyxDQUFDLENBQUM7WUFDL0MsT0FBTztRQUNULENBQUM7UUFFRCxJQUFJLENBQUMsYUFBYSxHQUFHLEdBQUcsQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsRUFBRSxJQUFJLElBQUksRUFBRSxDQUFDLENBQUMsV0FBVyxFQUFFLENBQUMsUUFBUSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUM7UUFDaEYsSUFBSSxDQUFDLE9BQU8sR0FBRyxJQUFJLENBQUMsYUFBYSxDQUFDLE1BQU0sS0FBSyxDQUFDLENBQUM7SUFDakQsQ0FBQztJQUVRLE9BQU8sQ0FBQyxLQUEwQjtRQUN6QyxLQUFLLENBQUMsT0FBTyxDQUFDLEtBQUssQ0FBQyxDQUFDO1FBQ3JCLElBQUksQ0FBQyxrQkFBa0IsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxDQUFDO1FBRXpDLElBQUksSUFBSSxDQUFDLGFBQWEsRUFBRSxNQUFNLEdBQUcsQ0FBQyxFQUFFLENBQUM7WUFDbkMsSUFBSSxDQUFDLE9BQU8sR0FBRyxLQUFLLENBQUM7UUFDdkIsQ0FBQztJQUNILENBQUM7d0dBN0NVLGlCQUFpQjs0RkFBakIsaUJBQWlCLHNMQVJqQjtZQUNUO2dCQUNFLE9BQU8sRUFBRSxpQkFBaUI7Z0JBQzFCLFdBQVcsRUFBRSxVQUFVLENBQUMsR0FBRyxFQUFFLENBQUMsaUJBQWlCLENBQUM7Z0JBQ2hELEtBQUssRUFBRSxJQUFJO2FBQ1o7U0FDRiwrSkNuQkgsdTVDQTZDQSwreUNEckNZLGtCQUFrQiwyMkNBQUUsWUFBWSxnT0FBRSxXQUFXLDJqQkFBRSxtQkFBbUI7OzRGQWFqRSxpQkFBaUI7a0JBZDdCLFNBQVM7OEJBQ0MsQ0FBQyxrQkFBa0IsRUFBRSxZQUFZLEVBQUUsV0FBVyxFQUFFLG1CQUFtQixDQUFDLGNBQ2pFLElBQUksWUFDTixjQUFjLGFBR2I7d0JBQ1Q7NEJBQ0UsT0FBTyxFQUFFLGlCQUFpQjs0QkFDMUIsV0FBVyxFQUFFLFVBQVUsQ0FBQyxHQUFHLEVBQUUsa0JBQWtCLENBQUM7NEJBQ2hELEtBQUssRUFBRSxJQUFJO3lCQUNaO3FCQUNGOzhCQUkwQixZQUFZO3NCQUF0QyxTQUFTO3VCQUFDLGNBQWM7Z0JBRWhCLFFBQVE7c0JBQWhCLEtBQUs7Z0JBQ0csTUFBTTtzQkFBZCxLQUFLO2dCQUNHLE9BQU87c0JBQWYsS0FBSztnQkFFb0Isa0JBQWtCO3NCQUEzQyxNQUFNO3VCQUFDLGdCQUFnQiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEFmdGVyVmlld0luaXQsIENvbXBvbmVudCwgRXZlbnRFbWl0dGVyLCBmb3J3YXJkUmVmLCBJbnB1dCwgT3V0cHV0LCBWaWV3Q2hpbGQgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IEF1dG9Db21wbGV0ZU1vZHVsZSwgQXV0b0NvbXBsZXRlQ29tcGxldGVFdmVudCB9IGZyb20gJ3ByaW1lbmcvYXV0b2NvbXBsZXRlJztcbmltcG9ydCB7IENvbW1vbk1vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbic7XG5pbXBvcnQgeyBmaXhDb21ib0JveE92ZXJsYXksIE9wdGlvbkl0ZW0sIE9wdGlvbnMsIE9wdGlvblZhbHVlIH0gZnJvbSAnLi4vLi4vcHVibGljLWFwaSc7XG5pbXBvcnQgeyBGb3Jtc01vZHVsZSwgTkdfVkFMVUVfQUNDRVNTT1IsIFJlYWN0aXZlRm9ybXNNb2R1bGUgfSBmcm9tICdAYW5ndWxhci9mb3Jtcyc7XG5pbXBvcnQgeyBJbnB1dHNDb21wb25lbnQgfSBmcm9tICcuLi9pbnB1dHMnO1xuXG5AQ29tcG9uZW50KHtcbiAgaW1wb3J0czogW0F1dG9Db21wbGV0ZU1vZHVsZSwgQ29tbW9uTW9kdWxlLCBGb3Jtc01vZHVsZSwgUmVhY3RpdmVGb3Jtc01vZHVsZV0sXG4gIHN0YW5kYWxvbmU6IHRydWUsXG4gIHNlbGVjdG9yOiAnc2RjLWNvbWJvYm94JyxcbiAgdGVtcGxhdGVVcmw6ICcuL2NvbWJvYm94LmNvbXBvbmVudC5odG1sJyxcbiAgc3R5bGVVcmw6ICcuL2NvbWJvYm94LmNvbXBvbmVudC5zY3NzJyxcbiAgcHJvdmlkZXJzOiBbXG4gICAge1xuICAgICAgcHJvdmlkZTogTkdfVkFMVUVfQUNDRVNTT1IsXG4gICAgICB1c2VFeGlzdGluZzogZm9yd2FyZFJlZigoKSA9PiBDb21ib2JveENvbXBvbmVudCksXG4gICAgICBtdWx0aTogdHJ1ZVxuICAgIH1cbiAgXVxufSlcbmV4cG9ydCBjbGFzcyBDb21ib2JveENvbXBvbmVudCBleHRlbmRzIElucHV0c0NvbXBvbmVudDxPcHRpb25WYWx1ZT4gaW1wbGVtZW50cyBBZnRlclZpZXdJbml0IHtcbiAgcHVibGljIGZpbHRlcmVkSXRlbXM6IE9wdGlvbkl0ZW1bXSA9IFtdO1xuICBAVmlld0NoaWxkKCdhdXRvY29tcGxldGUnKSBhdXRvY29tcGxldGU6IGFueTtcbiAgXG4gIEBJbnB1dCgpIGFwcGVuZFRvOiBzdHJpbmcgfCB1bmRlZmluZWQ7XG4gIEBJbnB1dCgpIHpJbmRleDogbnVtYmVyID0gOTk5OTtcbiAgQElucHV0KCkgb3B0aW9uczogT3B0aW9ucyB8IHN0cmluZyA9IFtdO1xuXG4gIEBPdXRwdXQoJ29uU2VsZWN0ZWRJdGVtJykgc2VsZWN0ZWRWYWx1ZUV2ZW50ID0gbmV3IEV2ZW50RW1pdHRlcjxPcHRpb25WYWx1ZT4oKTtcblxuICBuZ0FmdGVyVmlld0luaXQoKTogdm9pZCB7XG4gICAgZml4Q29tYm9Cb3hPdmVybGF5KHRoaXMuYXV0b2NvbXBsZXRlLCB0aGlzLnpJbmRleCk7XG4gIH1cblxuICBwcml2YXRlIG5vcm1hbGl6ZU9wdGlvbnMoKTogT3B0aW9uSXRlbVtdIHtcbiAgICBpZiAoQXJyYXkuaXNBcnJheSh0aGlzLm9wdGlvbnMpKSByZXR1cm4gdGhpcy5vcHRpb25zIGFzIE9wdGlvbkl0ZW1bXTtcbiAgICB0cnkge1xuICAgICAgY29uc3QgcGFyc2VkID0gSlNPTi5wYXJzZSh0aGlzLm9wdGlvbnMgfHwgJ1tdJyk7XG4gICAgICByZXR1cm4gQXJyYXkuaXNBcnJheShwYXJzZWQpID8gKHBhcnNlZCBhcyBPcHRpb25JdGVtW10pIDogW107XG4gICAgfSBjYXRjaCB7XG4gICAgICByZXR1cm4gW107XG4gICAgfVxuICB9XG5cbiAgb25TZWFyY2goZXZlbnQ6IEF1dG9Db21wbGV0ZUNvbXBsZXRlRXZlbnQpIHtcbiAgICBjb25zdCBhbGwgPSB0aGlzLm5vcm1hbGl6ZU9wdGlvbnMoKTtcbiAgICBjb25zdCBxID0gKGV2ZW50Py5xdWVyeSA/PyAnJykudG9TdHJpbmcoKS50cmltKCkudG9Mb3dlckNhc2UoKTtcblxuICAgIGlmICghcSkge1xuICAgICAgdGhpcy5maWx0ZXJlZEl0ZW1zID0gYWxsLnNsaWNlKCk7XG4gICAgICB0aGlzLmludmFsaWQgPSB0aGlzLmZpbHRlcmVkSXRlbXMubGVuZ3RoID09PSAwO1xuICAgICAgcmV0dXJuO1xuICAgIH1cblxuICAgIHRoaXMuZmlsdGVyZWRJdGVtcyA9IGFsbC5maWx0ZXIoaSA9PiAoaT8udGV4dCA/PyAnJykudG9Mb3dlckNhc2UoKS5pbmNsdWRlcyhxKSk7XG4gICAgdGhpcy5pbnZhbGlkID0gdGhpcy5maWx0ZXJlZEl0ZW1zLmxlbmd0aCA9PT0gMDtcbiAgfVxuXG4gIG92ZXJyaWRlIG9uSW5wdXQoZXZlbnQ6IEV2ZW50IHwgT3B0aW9uVmFsdWUpOiB2b2lkIHtcbiAgICBzdXBlci5vbklucHV0KGV2ZW50KTtcbiAgICB0aGlzLnNlbGVjdGVkVmFsdWVFdmVudC5lbWl0KHRoaXMudmFsdWUpO1xuXG4gICAgaWYgKHRoaXMuZmlsdGVyZWRJdGVtcz8ubGVuZ3RoID4gMCkge1xuICAgICAgdGhpcy5pbnZhbGlkID0gZmFsc2U7XG4gICAgfVxuICB9XG59XG4iLCI8ZGl2IGNsYXNzPVwic2RjLWNvbWJvYm94XCI+XG4gIDxsYWJlbCAqbmdJZj1cImxhYmVsXCIgW2Zvcl09XCJpZGVudGl0eS5pZFwiPlxuICAgIDxzcGFuPnt7IGxhYmVsIH19PC9zcGFuPlxuICAgIDxzcGFuIGNsYXNzPVwicmVxdWlyZWQtZmllbGRcIiAqbmdJZj1cInJlcXVpcmVkXCI+ICZidWxsOzwvc3Bhbj5cbiAgPC9sYWJlbD5cblxuICA8cC1hdXRvY29tcGxldGVcbiAgICAjYXV0b2NvbXBsZXRlXG4gICAgZHJvcGRvd25JY29uPVwiZmFzIGZhLWNhcmV0LWRvd25cIlxuICAgIChjb21wbGV0ZU1ldGhvZCk9XCJvblNlYXJjaCgkZXZlbnQpXCJcbiAgICAobmdNb2RlbENoYW5nZSk9XCJvbklucHV0KCRldmVudClcIlxuICAgIFsobmdNb2RlbCldPVwidmFsdWVcIlxuICAgIFthdXRvSGlnaGxpZ2h0XT1cInRydWVcIlxuICAgIFtkaXNhYmxlZF09XCJkaXNhYmxlZFwiXG4gICAgW2Ryb3Bkb3duXT1cInRydWVcIlxuICAgIFtmb3JjZVNlbGVjdGlvbl09XCJ0cnVlXCJcbiAgICBbaWRdPVwiaWRlbnRpdHkuaWRcIlxuICAgIFtuYW1lXT1cImlkZW50aXR5Lm5hbWUgPz8gJydcIlxuICAgIFtuZ0NsYXNzXT1cImdldEludmFsaWRDbGFzcygpXCJcbiAgICBbcGxhY2Vob2xkZXJdPVwicGxhY2Vob2xkZXJcIlxuICAgIFtyZXF1aXJlZF09XCJyZXF1aXJlZFwiXG4gICAgW3Nob3dDbGVhcl09XCJ0cnVlXCJcbiAgICBbc3R5bGVdPVwiZ2V0SW5wdXRTdHlsZSgpXCJcbiAgICBbc3VnZ2VzdGlvbnNdPVwiZmlsdGVyZWRJdGVtc1wiXG4gICAgb3B0aW9uTGFiZWw9XCJ0ZXh0XCJcbiAgICBvcHRpb25WYWx1ZT1cInZhbHVlXCJcbiAgICBbYXBwZW5kVG9dPVwiYXBwZW5kVG9cIj5cblxuICAgIDxuZy10ZW1wbGF0ZSBwVGVtcGxhdGU9XCJpdGVtXCIgbGV0LW9wdD5cbiAgICAgIDxkaXYgY2xhc3M9XCJmbGV4IGFsaWduLWl0ZW1zLWNlbnRlciBnYXAtMlwiPlxuICAgICAgICA8aSAqbmdJZj1cIm9wdD8uaWNvblwiIFtjbGFzc109XCJvcHQuaWNvblwiPjwvaT5cbiAgICAgICAgPHNwYW4+e3sgb3B0Py50ZXh0IH19PC9zcGFuPlxuICAgICAgPC9kaXY+XG4gICAgPC9uZy10ZW1wbGF0ZT5cblxuICAgIDxuZy10ZW1wbGF0ZSBwVGVtcGxhdGU9XCJzZWxlY3RlZEl0ZW1cIiBsZXQtb3B0PlxuICAgICAgPGRpdiBjbGFzcz1cImZsZXggYWxpZ24taXRlbXMtY2VudGVyIGdhcC0yXCI+XG4gICAgICAgIDxpICpuZ0lmPVwib3B0Py5pY29uXCIgW2NsYXNzXT1cIm9wdC5pY29uXCI+PC9pPlxuICAgICAgICA8c3Bhbj57eyBvcHQ/LnRleHQgfX08L3NwYW4+XG4gICAgICA8L2Rpdj5cbiAgICA8L25nLXRlbXBsYXRlPlxuICA8L3AtYXV0b2NvbXBsZXRlPlxuXG4gIDxzbWFsbCAqbmdJZj1cIm1lc3NhZ2VcIiBbbmdDbGFzc109XCJnZXRJbnZhbGlkTWVzc2FnZUNsYXNzKClcIj57eyBtZXNzYWdlIH19PC9zbWFsbD5cbjwvZGl2PlxuIl19
|