@seniorsistemas/data-seniorx-core 3.0.0 → 3.1.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/constants/editable-overlay.const.d.ts +4 -0
- package/core/constants/help-popover.const.d.ts +7 -0
- package/core/constants/input-mask.const.d.ts +5 -0
- package/core/constants/navigation-button.const.d.ts +3 -0
- package/core/constants/object-card.const.d.ts +21 -0
- package/core/constants/thumbnail.const.d.ts +6 -0
- package/core/constants/thumbnails.const.d.ts +4 -0
- package/core/constants/token-list.const.d.ts +3 -0
- package/core/types/button.type.d.ts +1 -1
- package/core/types/datepicker.type.d.ts +28 -0
- package/core/types/dynamic-form.type.d.ts +29 -0
- package/core/types/editable-overlay.type.d.ts +15 -0
- package/core/types/help-popover.type.d.ts +2 -0
- package/core/types/input-mask.type.d.ts +6 -0
- package/core/types/lookup.type.d.ts +45 -0
- package/core/types/navigation-button.type.d.ts +9 -0
- package/core/types/row-card.type.d.ts +5 -0
- package/core/types/semantics.type.d.ts +1 -1
- package/core/types/table-options.type.d.ts +1 -0
- package/core/types/thumbnail.type.d.ts +1 -0
- package/core/types/thumbnails.type.d.ts +20 -0
- package/core/types/token-list.type.d.ts +6 -0
- package/core/utils/emoji-support.util.d.ts +12 -0
- package/core/utils/overlay-dismiss.util.d.ts +25 -0
- package/esm2022/core/config/row-card.type.config.mjs +3 -1
- package/esm2022/core/constants/country-phone-picker.const.mjs +6 -6
- package/esm2022/core/constants/editable-overlay.const.mjs +5 -0
- package/esm2022/core/constants/help-popover.const.mjs +7 -0
- package/esm2022/core/constants/input-mask.const.mjs +6 -0
- package/esm2022/core/constants/navigation-button.const.mjs +4 -0
- package/esm2022/core/constants/object-card.const.mjs +23 -0
- package/esm2022/core/constants/thumbnail.const.mjs +14 -0
- package/esm2022/core/constants/thumbnails.const.mjs +5 -0
- package/esm2022/core/constants/token-list.const.mjs +4 -0
- package/esm2022/core/types/button.type.mjs +1 -1
- package/esm2022/core/types/datepicker.type.mjs +2 -0
- package/esm2022/core/types/dynamic-form.type.mjs +2 -0
- package/esm2022/core/types/editable-overlay.type.mjs +2 -0
- package/esm2022/core/types/help-popover.type.mjs +2 -0
- package/esm2022/core/types/input-mask.type.mjs +2 -0
- package/esm2022/core/types/lookup.type.mjs +2 -0
- package/esm2022/core/types/navigation-button.type.mjs +2 -0
- package/esm2022/core/types/row-card.type.mjs +1 -1
- package/esm2022/core/types/semantics.type.mjs +1 -1
- package/esm2022/core/types/table-options.type.mjs +1 -1
- package/esm2022/core/types/thumbnail.type.mjs +2 -0
- package/esm2022/core/types/thumbnails.type.mjs +2 -0
- package/esm2022/core/types/token-list.type.mjs +2 -0
- package/esm2022/core/utils/emoji-support.util.mjs +48 -0
- package/esm2022/core/utils/mask.util.mjs +2 -2
- package/esm2022/core/utils/overlay-dismiss.util.mjs +38 -0
- package/esm2022/features/alert/alert.component.mjs +5 -2
- package/esm2022/features/autocomplete/autocomplete.component.mjs +30 -8
- package/esm2022/features/bignumber-input/bignumber-input.component.mjs +1 -1
- package/esm2022/features/button/button.component.mjs +13 -5
- package/esm2022/features/card-list/card/card.component.mjs +2 -2
- package/esm2022/features/card-list/card-list.component.mjs +2 -2
- package/esm2022/features/checkbox-list/checkbox-list.component.mjs +25 -5
- package/esm2022/features/chips/chips.component.mjs +3 -3
- package/esm2022/features/code-editor/code-editor.component.mjs +12 -3
- package/esm2022/features/combobox/combobox.component.mjs +3 -3
- package/esm2022/features/confirm/confirm.component.mjs +2 -2
- package/esm2022/features/context-selector/context-selector.component.mjs +1 -1
- package/esm2022/features/country-phone-picker/country-phone-picker.component.mjs +22 -18
- package/esm2022/features/currency/currency.component.mjs +3 -3
- package/esm2022/features/datepicker/datepicker.component.mjs +814 -0
- package/esm2022/features/dynamic-form/dynamic-form-field.directive.mjs +178 -0
- package/esm2022/features/dynamic-form/dynamic-form.component.mjs +60 -0
- package/esm2022/features/dynamic-form/dynamic-form.registry.mjs +13 -0
- package/esm2022/features/editable-overlay/editable-overlay-editor.directive.mjs +31 -0
- package/esm2022/features/editable-overlay/editable-overlay.component.mjs +217 -0
- package/esm2022/features/editor/editor.component.mjs +173 -0
- package/esm2022/features/empty-state/empty-state.component.mjs +3 -3
- package/esm2022/features/fileupload/fileupload.component.mjs +3 -3
- package/esm2022/features/help-popover/help-popover.component.mjs +204 -0
- package/esm2022/features/hyperlink/hyperlink.component.mjs +3 -3
- package/esm2022/features/icon-picker/icon-picker.component.mjs +4 -4
- package/esm2022/features/image-cropper/image-cropper.component.mjs +2 -2
- package/esm2022/features/info-sign/info-sign.component.mjs +6 -3
- package/esm2022/features/inline-edit/components/fields/inline-edit-number/inline-edit-number.component.mjs +1 -1
- package/esm2022/features/inline-edit/components/inline-edit-item/inline-edit-item.component.mjs +2 -2
- package/esm2022/features/input-mask/input-mask.directive.mjs +510 -0
- package/esm2022/features/list/list.component.mjs +2 -2
- package/esm2022/features/localized-number-input/localized-number-input.component.mjs +3 -3
- package/esm2022/features/lookup/lookup.component.mjs +351 -0
- package/esm2022/features/modal/modal.component.mjs +6 -3
- package/esm2022/features/modalc/modalc.component.mjs +6 -3
- package/esm2022/features/navigation-button/navigation-button.component.mjs +172 -0
- package/esm2022/features/number-input/number-input.component.mjs +10 -4
- package/esm2022/features/object-card/components/object-card-field/object-card-field.component.mjs +89 -0
- package/esm2022/features/object-card/components/object-card-main/object-card-main.component.mjs +114 -0
- package/esm2022/features/object-card/object-card.component.mjs +199 -0
- package/esm2022/features/password-strength/password-strength.component.mjs +3 -3
- package/esm2022/features/pin-code-field/pin-code-field.component.mjs +14 -4
- package/esm2022/features/popover/popover.component.mjs +29 -3
- package/esm2022/features/profile-picture-picker/profile-picture-picker.component.mjs +13 -4
- package/esm2022/features/rating-scale/rating-scale.component.mjs +24 -4
- package/esm2022/features/row-card-list/row-card/row-card.component.mjs +19 -4
- package/esm2022/features/row-card-list/row-card-list.component.mjs +12 -3
- package/esm2022/features/scaffold/scaffold.component.mjs +3 -3
- package/esm2022/features/searchbox/searchbox.component.mjs +2 -2
- package/esm2022/features/select-button/select-button.component.mjs +26 -4
- package/esm2022/features/slider/slider.component.mjs +3 -3
- package/esm2022/features/split-button/split-button.component.mjs +1 -1
- package/esm2022/features/spotlight/components/spotlight-overlay/spotlight-overlay.component.mjs +15 -18
- package/esm2022/features/spotlight/spotlight.component.mjs +2 -2
- package/esm2022/features/star-rating/star-rating.component.mjs +25 -4
- package/esm2022/features/table/components/table-cell-content.component.mjs +2 -2
- package/esm2022/features/table/table.component.mjs +30 -9
- package/esm2022/features/textarea/textarea.component.mjs +3 -3
- package/esm2022/features/thumbnail/thumbnail.component.mjs +86 -0
- package/esm2022/features/thumbnails/components/thumbnail-item/thumbnail-item.component.mjs +59 -0
- package/esm2022/features/thumbnails/components/thumbnail-item-image/thumbnail-item-image.component.mjs +25 -0
- package/esm2022/features/thumbnails/components/thumbnail-item-video/thumbnail-item-video.component.mjs +50 -0
- package/esm2022/features/thumbnails/thumbnails.component.mjs +76 -0
- package/esm2022/features/tiered-menu/directives/tiered-menu.directive.mjs +13 -1
- package/esm2022/features/token-list/token-list.component.mjs +64 -0
- package/esm2022/features/visual-sql-editor/visual-sql-editor.component.mjs +2 -2
- package/esm2022/locales/en.json +409 -1
- package/esm2022/locales/es-CO.json +423 -2
- package/esm2022/locales/pt.json +1037 -630
- package/esm2022/providers/features.provider.mjs +20 -2
- package/esm2022/providers/primeng-config.provider.mjs +14 -128
- package/esm2022/providers/translate.provider.mjs +2 -2
- package/esm2022/public-api.mjs +31 -1
- package/features/alert/alert.component.d.ts +1 -0
- package/features/autocomplete/autocomplete.component.d.ts +9 -3
- package/features/button/button.component.d.ts +3 -1
- package/features/checkbox-list/checkbox-list.component.d.ts +8 -1
- package/features/code-editor/code-editor.component.d.ts +5 -1
- package/features/country-phone-picker/country-phone-picker.component.d.ts +3 -0
- package/features/datepicker/datepicker.component.d.ts +118 -0
- package/features/dynamic-form/dynamic-form-field.directive.d.ts +26 -0
- package/features/dynamic-form/dynamic-form.component.d.ts +15 -0
- package/features/dynamic-form/dynamic-form.registry.d.ts +11 -0
- package/features/editable-overlay/editable-overlay-editor.directive.d.ts +22 -0
- package/features/editable-overlay/editable-overlay.component.d.ts +60 -0
- package/features/editor/editor.component.d.ts +47 -0
- package/features/help-popover/help-popover.component.d.ts +81 -0
- package/features/info-sign/info-sign.component.d.ts +2 -1
- package/features/input-mask/input-mask.directive.d.ts +117 -0
- package/features/lookup/lookup.component.d.ts +104 -0
- package/features/modal/modal.component.d.ts +2 -1
- package/features/modalc/modalc.component.d.ts +2 -1
- package/features/navigation-button/navigation-button.component.d.ts +58 -0
- package/features/number-input/number-input.component.d.ts +3 -1
- package/features/object-card/components/object-card-field/object-card-field.component.d.ts +48 -0
- package/features/object-card/components/object-card-main/object-card-main.component.d.ts +57 -0
- package/features/object-card/object-card.component.d.ts +70 -0
- package/features/pin-code-field/pin-code-field.component.d.ts +6 -1
- package/features/popover/popover.component.d.ts +4 -1
- package/features/profile-picture-picker/profile-picture-picker.component.d.ts +5 -1
- package/features/rating-scale/rating-scale.component.d.ts +9 -1
- package/features/row-card-list/row-card/row-card.component.d.ts +6 -1
- package/features/row-card-list/row-card-list.component.d.ts +4 -1
- package/features/select-button/select-button.component.d.ts +9 -1
- package/features/star-rating/star-rating.component.d.ts +9 -1
- package/features/table/table.component.d.ts +2 -1
- package/features/thumbnail/thumbnail.component.d.ts +48 -0
- package/features/thumbnails/components/thumbnail-item/thumbnail-item.component.d.ts +29 -0
- package/features/thumbnails/components/thumbnail-item-image/thumbnail-item-image.component.d.ts +13 -0
- package/features/thumbnails/components/thumbnail-item-video/thumbnail-item-video.component.d.ts +19 -0
- package/features/thumbnails/thumbnails.component.d.ts +46 -0
- package/features/tiered-menu/directives/tiered-menu.directive.d.ts +2 -0
- package/features/token-list/token-list.component.d.ts +31 -0
- package/fesm2022/seniorsistemas-data-seniorx-core.mjs +11288 -6613
- package/fesm2022/seniorsistemas-data-seniorx-core.mjs.map +1 -1
- package/package.json +12 -3
- package/providers/primeng-config.provider.d.ts +12 -0
- package/public-api.d.ts +38 -0
- package/src/locales/en.json +409 -1
- package/src/locales/es-CO.json +423 -2
- package/src/locales/pt.json +1037 -630
- package/styles/sdc-global-variables.scss +38 -0
- package/styles.css +132 -0
- package/styles.scss +2 -0
- package/esm2022/providers/custom/button.mjs +0 -93
- package/esm2022/providers/custom/toast.mjs +0 -75
- package/providers/custom/button.d.ts +0 -16
- package/providers/custom/toast.d.ts +0 -14
|
@@ -0,0 +1,29 @@
|
|
|
1
|
+
import { EventEmitter } from '@angular/core';
|
|
2
|
+
import type { ThumbnailsItem } from '../../../../core/types/thumbnails.type';
|
|
3
|
+
import * as i0 from "@angular/core";
|
|
4
|
+
/**
|
|
5
|
+
* @description Card individual de uma miniatura, exibindo o conteúdo de acordo
|
|
6
|
+
* com o `type` do item (`video`, `image`, `audio` ou `file`) e, opcionalmente,
|
|
7
|
+
* um checkbox de seleção.
|
|
8
|
+
*
|
|
9
|
+
* @category Data
|
|
10
|
+
*/
|
|
11
|
+
export declare class ThumbnailItemComponent {
|
|
12
|
+
itemData: ThumbnailsItem;
|
|
13
|
+
isCheckable: boolean;
|
|
14
|
+
isChecked: boolean;
|
|
15
|
+
combineCheckboxEvent: boolean;
|
|
16
|
+
checked: EventEmitter<{
|
|
17
|
+
item: ThumbnailsItem;
|
|
18
|
+
selected: boolean;
|
|
19
|
+
}>;
|
|
20
|
+
opened: EventEmitter<ThumbnailsItem>;
|
|
21
|
+
readonly listenKey = "platform.datacore.thumbnails.listen";
|
|
22
|
+
readonly viewKey = "platform.datacore.thumbnails.view";
|
|
23
|
+
readonly selectItemKey = "platform.datacore.thumbnails.select_item";
|
|
24
|
+
onClick(): void;
|
|
25
|
+
onCheckboxChange(event: Event): void;
|
|
26
|
+
onCheckboxClick(event: Event): void;
|
|
27
|
+
static ɵfac: i0.ɵɵFactoryDeclaration<ThumbnailItemComponent, never>;
|
|
28
|
+
static ɵcmp: i0.ɵɵComponentDeclaration<ThumbnailItemComponent, "sdc-thumbnail-item", never, { "itemData": { "alias": "itemData"; "required": true; }; "isCheckable": { "alias": "isCheckable"; "required": false; }; "isChecked": { "alias": "isChecked"; "required": false; }; "combineCheckboxEvent": { "alias": "combineCheckboxEvent"; "required": false; }; }, { "checked": "checked"; "opened": "opened"; }, never, never, true, never>;
|
|
29
|
+
}
|
package/features/thumbnails/components/thumbnail-item-image/thumbnail-item-image.component.d.ts
ADDED
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
import * as i0 from "@angular/core";
|
|
2
|
+
/**
|
|
3
|
+
* @description Conteúdo de uma miniatura do tipo `image`. Exibe a imagem como
|
|
4
|
+
* background cobrindo o card ou, na ausência de `imageUrl`, um ícone de fallback.
|
|
5
|
+
*
|
|
6
|
+
* @category Data
|
|
7
|
+
*/
|
|
8
|
+
export declare class ThumbnailItemImageComponent {
|
|
9
|
+
imageUrl: string;
|
|
10
|
+
readonly viewKey = "platform.datacore.thumbnails.view";
|
|
11
|
+
static ɵfac: i0.ɵɵFactoryDeclaration<ThumbnailItemImageComponent, never>;
|
|
12
|
+
static ɵcmp: i0.ɵɵComponentDeclaration<ThumbnailItemImageComponent, "sdc-thumbnail-item-image", never, { "imageUrl": { "alias": "imageUrl"; "required": false; }; }, {}, never, never, true, never>;
|
|
13
|
+
}
|
package/features/thumbnails/components/thumbnail-item-video/thumbnail-item-video.component.d.ts
ADDED
|
@@ -0,0 +1,19 @@
|
|
|
1
|
+
import { ElementRef } from '@angular/core';
|
|
2
|
+
import * as i0 from "@angular/core";
|
|
3
|
+
/**
|
|
4
|
+
* @description Conteúdo de uma miniatura do tipo `video`. Exibe uma imagem de
|
|
5
|
+
* capa com um overlay de play e, ao passar o mouse, reproduz um preview em loop
|
|
6
|
+
* do vídeo (quando `videoUrl` é informado).
|
|
7
|
+
*
|
|
8
|
+
* @category Data
|
|
9
|
+
*/
|
|
10
|
+
export declare class ThumbnailItemVideoComponent {
|
|
11
|
+
imageUrl: string;
|
|
12
|
+
videoUrl: string;
|
|
13
|
+
videoPlayer?: ElementRef<HTMLVideoElement>;
|
|
14
|
+
readonly watchKey = "platform.datacore.thumbnails.watch";
|
|
15
|
+
onMouseEnter(): void;
|
|
16
|
+
onMouseLeave(): void;
|
|
17
|
+
static ɵfac: i0.ɵɵFactoryDeclaration<ThumbnailItemVideoComponent, never>;
|
|
18
|
+
static ɵcmp: i0.ɵɵComponentDeclaration<ThumbnailItemVideoComponent, "sdc-thumbnail-item-video", never, { "imageUrl": { "alias": "imageUrl"; "required": false; }; "videoUrl": { "alias": "videoUrl"; "required": false; }; }, {}, never, never, true, never>;
|
|
19
|
+
}
|
|
@@ -0,0 +1,46 @@
|
|
|
1
|
+
import { EventEmitter } from '@angular/core';
|
|
2
|
+
import type { ThumbnailsItem } from '../../core/types/thumbnails.type';
|
|
3
|
+
import * as i0 from "@angular/core";
|
|
4
|
+
/**
|
|
5
|
+
* @description Galeria de miniaturas de arquivos com suporte a seleção múltipla
|
|
6
|
+
* e abertura de itens. Gerencia o estado de seleção internamente e emite eventos
|
|
7
|
+
* para o componente pai.
|
|
8
|
+
*
|
|
9
|
+
* @example
|
|
10
|
+
* ```html
|
|
11
|
+
* <sdc-thumbnails
|
|
12
|
+
* [items]="items"
|
|
13
|
+
* [selectable]="true"
|
|
14
|
+
* [(selection)]="selectedItems"
|
|
15
|
+
* (itemOpened)="onItemOpened($event)"
|
|
16
|
+
* />
|
|
17
|
+
* ```
|
|
18
|
+
*
|
|
19
|
+
* @category Data
|
|
20
|
+
*/
|
|
21
|
+
export declare class ThumbnailsComponent {
|
|
22
|
+
/** @description Lista de itens exibidos na galeria. @default [] */
|
|
23
|
+
items: ThumbnailsItem[];
|
|
24
|
+
/** @description Habilita a seleção de itens. @default true */
|
|
25
|
+
selectable: boolean;
|
|
26
|
+
/** @description Quando `true`, o clique no checkbox também abre o item. @default true */
|
|
27
|
+
combineCheckboxEvent: boolean;
|
|
28
|
+
/**
|
|
29
|
+
* @description Lista de itens atualmente selecionados. Suporta two-way binding via `[(selection)]`.
|
|
30
|
+
* @default []
|
|
31
|
+
*/
|
|
32
|
+
set selection(items: ThumbnailsItem[]);
|
|
33
|
+
/** @description Emitido quando a seleção de itens muda. */
|
|
34
|
+
selectionChange: EventEmitter<ThumbnailsItem[]>;
|
|
35
|
+
/** @description Emitido quando o usuário abre um item (clique no item). */
|
|
36
|
+
itemOpened: EventEmitter<ThumbnailsItem>;
|
|
37
|
+
private _selection;
|
|
38
|
+
onItemOpened(item: ThumbnailsItem): void;
|
|
39
|
+
onItemSelected(event: {
|
|
40
|
+
item: ThumbnailsItem;
|
|
41
|
+
selected: boolean;
|
|
42
|
+
}): void;
|
|
43
|
+
isSelected(item: ThumbnailsItem): boolean;
|
|
44
|
+
static ɵfac: i0.ɵɵFactoryDeclaration<ThumbnailsComponent, never>;
|
|
45
|
+
static ɵcmp: i0.ɵɵComponentDeclaration<ThumbnailsComponent, "sdc-thumbnails", never, { "items": { "alias": "items"; "required": false; }; "selectable": { "alias": "selectable"; "required": false; }; "combineCheckboxEvent": { "alias": "combineCheckboxEvent"; "required": false; }; "selection": { "alias": "selection"; "required": false; }; }, { "selectionChange": "selectionChange"; "itemOpened": "itemOpened"; }, never, never, true, never>;
|
|
46
|
+
}
|
|
@@ -9,6 +9,7 @@ export declare class TieredMenuDirective implements OnInit, OnChanges, OnDestroy
|
|
|
9
9
|
private readonly tieredMenuService;
|
|
10
10
|
private readonly globalService;
|
|
11
11
|
private readonly cdr;
|
|
12
|
+
private readonly router;
|
|
12
13
|
items: TieredMenuItemData[];
|
|
13
14
|
focusedItem?: TieredMenuItemData;
|
|
14
15
|
triggerEvent: TieredMenuTriggerEvent;
|
|
@@ -24,6 +25,7 @@ export declare class TieredMenuDirective implements OnInit, OnChanges, OnDestroy
|
|
|
24
25
|
private readonly unsubscribe$;
|
|
25
26
|
private lastActiveElement?;
|
|
26
27
|
private itemsAreValid;
|
|
28
|
+
private dismissWatcher;
|
|
27
29
|
private readonly resizeObserver;
|
|
28
30
|
ngOnInit(): void;
|
|
29
31
|
ngOnChanges(changes: SimpleChanges): void;
|
|
@@ -0,0 +1,31 @@
|
|
|
1
|
+
import { EventEmitter } from '@angular/core';
|
|
2
|
+
import type { TokenListToken } from '../../core/types/token-list.type';
|
|
3
|
+
import * as i0 from "@angular/core";
|
|
4
|
+
/**
|
|
5
|
+
* Lista de tokens (etiquetas) clicáveis e opcionalmente removíveis.
|
|
6
|
+
* Emite eventos ao selecionar ou remover um token — a remoção efetiva
|
|
7
|
+
* do item da lista é responsabilidade do componente pai.
|
|
8
|
+
*
|
|
9
|
+
* @example
|
|
10
|
+
* ```html
|
|
11
|
+
* <sdc-token-list
|
|
12
|
+
* [tokens]="tokens"
|
|
13
|
+
* [removableTokens]="true"
|
|
14
|
+
* (tokenSelected)="onTokenSelected($event)"
|
|
15
|
+
* (tokenRemoved)="onTokenRemoved($event)" />
|
|
16
|
+
* ```
|
|
17
|
+
*/
|
|
18
|
+
export declare class TokenListComponent {
|
|
19
|
+
private readonly translate;
|
|
20
|
+
id: string;
|
|
21
|
+
tokens: TokenListToken[];
|
|
22
|
+
removableTokens: boolean;
|
|
23
|
+
hidePointerEvents: boolean;
|
|
24
|
+
tokenSelected: EventEmitter<TokenListToken>;
|
|
25
|
+
tokenRemoved: EventEmitter<TokenListToken>;
|
|
26
|
+
onTokenSelected(token: TokenListToken): void;
|
|
27
|
+
onTokenRemoved(token: TokenListToken): void;
|
|
28
|
+
resolveRemoveAriaLabel(token: TokenListToken): string;
|
|
29
|
+
static ɵfac: i0.ɵɵFactoryDeclaration<TokenListComponent, never>;
|
|
30
|
+
static ɵcmp: i0.ɵɵComponentDeclaration<TokenListComponent, "sdc-token-list", never, { "id": { "alias": "id"; "required": false; }; "tokens": { "alias": "tokens"; "required": true; }; "removableTokens": { "alias": "removableTokens"; "required": false; }; "hidePointerEvents": { "alias": "hidePointerEvents"; "required": false; }; }, { "tokenSelected": "tokenSelected"; "tokenRemoved": "tokenRemoved"; }, never, never, true, never>;
|
|
31
|
+
}
|