@seniorsistemas/angular-components 19.9.4 → 19.9.5
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/autocomplete/README.md +4 -0
- package/autocomplete/lib/autocomplete/autocomplete.component.d.ts +7 -1
- package/autocomplete/lib/autocomplete/components/autocomplete-chip/autocomplete-chip.component.d.ts +3 -1
- package/esm2022/autocomplete/lib/autocomplete/autocomplete.component.mjs +10 -4
- package/esm2022/autocomplete/lib/autocomplete/components/autocomplete-chip/autocomplete-chip.component.mjs +5 -3
- package/esm2022/dynamic-form/dynamic-form/form-field/fields/select/select-field.component.mjs +2 -2
- package/esm2022/editor/lib/editor/editor.component.mjs +3 -3
- package/esm2022/insights/lib/insights/components/insights-card/insights-card.component.mjs +21 -3
- package/esm2022/insights/lib/insights/components/insights-sidebar/insights-sidebar.component.mjs +14 -3
- package/esm2022/insights/lib/insights/insights.component.mjs +15 -4
- package/esm2022/paginator/lib/paginator/paginator.component.mjs +2 -2
- package/esm2022/rating-scale/lib/rating-scale/models/rating-scale-node.mjs +1 -1
- package/esm2022/rating-scale/lib/rating-scale/rating-scale.component.mjs +23 -3
- package/esm2022/select/lib/select/components/select-option/select-option.component.mjs +5 -3
- package/esm2022/select/lib/select/select.component.mjs +6 -4
- package/esm2022/speech-recognition/lib/speech-recognition/speech-recognition/speech-recognition.component.mjs +7 -3
- package/esm2022/split-button/lib/split-button/split-button.component.mjs +11 -3
- package/esm2022/table/lib/table/table-column/table-columns.component.mjs +1 -1
- package/esm2022/text-area/lib/text-area/text-area.component.mjs +1 -1
- package/esm2022/token-list/lib/token-list/token-list.component.mjs +7 -3
- package/fesm2022/seniorsistemas-angular-components-autocomplete.mjs +13 -5
- package/fesm2022/seniorsistemas-angular-components-autocomplete.mjs.map +1 -1
- package/fesm2022/seniorsistemas-angular-components-dynamic-form.mjs +1 -1
- package/fesm2022/seniorsistemas-angular-components-dynamic-form.mjs.map +1 -1
- package/fesm2022/seniorsistemas-angular-components-editor.mjs +2 -2
- package/fesm2022/seniorsistemas-angular-components-editor.mjs.map +1 -1
- package/fesm2022/seniorsistemas-angular-components-insights.mjs +47 -7
- package/fesm2022/seniorsistemas-angular-components-insights.mjs.map +1 -1
- package/fesm2022/seniorsistemas-angular-components-paginator.mjs +1 -1
- package/fesm2022/seniorsistemas-angular-components-paginator.mjs.map +1 -1
- package/fesm2022/seniorsistemas-angular-components-rating-scale.mjs +22 -2
- package/fesm2022/seniorsistemas-angular-components-rating-scale.mjs.map +1 -1
- package/fesm2022/seniorsistemas-angular-components-select.mjs +9 -5
- package/fesm2022/seniorsistemas-angular-components-select.mjs.map +1 -1
- package/fesm2022/seniorsistemas-angular-components-speech-recognition.mjs +6 -2
- package/fesm2022/seniorsistemas-angular-components-speech-recognition.mjs.map +1 -1
- package/fesm2022/seniorsistemas-angular-components-split-button.mjs +10 -2
- package/fesm2022/seniorsistemas-angular-components-split-button.mjs.map +1 -1
- package/fesm2022/seniorsistemas-angular-components-table.mjs +1 -1
- package/fesm2022/seniorsistemas-angular-components-table.mjs.map +1 -1
- package/fesm2022/seniorsistemas-angular-components-text-area.mjs +1 -1
- package/fesm2022/seniorsistemas-angular-components-text-area.mjs.map +1 -1
- package/fesm2022/seniorsistemas-angular-components-token-list.mjs +6 -2
- package/fesm2022/seniorsistemas-angular-components-token-list.mjs.map +1 -1
- package/insights/README.md +12 -0
- package/insights/lib/insights/components/insights-card/insights-card.component.d.ts +22 -1
- package/insights/lib/insights/components/insights-sidebar/insights-sidebar.component.d.ts +9 -1
- package/insights/lib/insights/insights.component.d.ts +9 -1
- package/package.json +7 -7
- package/rating-scale/README.md +38 -13
- package/rating-scale/lib/rating-scale/models/rating-scale-node.d.ts +8 -0
- package/rating-scale/lib/rating-scale/rating-scale.component.d.ts +4 -1
- package/select/README.md +2 -0
- package/select/lib/select/components/select-option/select-option.component.d.ts +3 -1
- package/select/lib/select/select.component.d.ts +3 -1
- package/speech-recognition/README.md +1 -0
- package/speech-recognition/lib/speech-recognition/speech-recognition/speech-recognition.component.d.ts +3 -1
- package/split-button/README.md +2 -0
- package/split-button/lib/split-button/split-button.component.d.ts +5 -1
- package/token-list/lib/token-list/token-list.component.d.ts +3 -1
|
@@ -27,6 +27,8 @@ class TokenListComponent {
|
|
|
27
27
|
removableTokens = false;
|
|
28
28
|
/** @description Quando `true`, remove os eventos de ponteiro (hover/clique) dos tokens. @default false */
|
|
29
29
|
hidePointerEvents = false;
|
|
30
|
+
/** @description Classe do ícone do botão de remover token. @default 'far fa-times' */
|
|
31
|
+
removeIconClass = 'far fa-times';
|
|
30
32
|
/** @description Emitido quando o usuário clica em um token não desabilitado. */
|
|
31
33
|
tokenSelected = new EventEmitter();
|
|
32
34
|
/** @description Emitido quando o usuário remove um token não desabilitado. */
|
|
@@ -42,11 +44,11 @@ class TokenListComponent {
|
|
|
42
44
|
}
|
|
43
45
|
}
|
|
44
46
|
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: TokenListComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
|
|
45
|
-
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "18.2.14", type: TokenListComponent, isStandalone: true, selector: "s-token-list", inputs: { id: "id", tokens: "tokens", removableTokens: "removableTokens", hidePointerEvents: "hidePointerEvents" }, outputs: { tokenSelected: "tokenSelected", tokenRemoved: "tokenRemoved" }, ngImport: i0, template: "<div\n [id]=\"id\"\n class=\"token-list\"\n>\n @for (token of tokens; track $index) {\n <span\n [id]=\"token.id\"\n class=\"token\"\n [ngClass]=\"{\n 'no-pointer-events': hidePointerEvents,\n 'token--disabled': token.disabled,\n }\"\n >\n <a\n [id]=\"(token.id || 'token') + '-label'\"\n class=\"token-label\"\n (click)=\"onTokenSelected(token)\"\n >\n {{ token.label }}\n </a>\n @if (removableTokens && !token.notRemovable) {\n <span\n [id]=\"token.id + '-remove'\"\n class=\"
|
|
47
|
+
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "18.2.14", type: TokenListComponent, isStandalone: true, selector: "s-token-list", inputs: { id: "id", tokens: "tokens", removableTokens: "removableTokens", hidePointerEvents: "hidePointerEvents", removeIconClass: "removeIconClass" }, outputs: { tokenSelected: "tokenSelected", tokenRemoved: "tokenRemoved" }, ngImport: i0, template: "<div\n [id]=\"id\"\n class=\"token-list\"\n>\n @for (token of tokens; track $index) {\n <span\n [id]=\"token.id\"\n class=\"token\"\n [ngClass]=\"{\n 'no-pointer-events': hidePointerEvents,\n 'token--disabled': token.disabled,\n }\"\n >\n <a\n [id]=\"(token.id || 'token') + '-label'\"\n class=\"token-label\"\n (click)=\"onTokenSelected(token)\"\n >\n {{ token.label }}\n </a>\n @if (removableTokens && !token.notRemovable) {\n <span\n [id]=\"token.id + '-remove'\"\n [class]=\"removeIconClass\"\n (click)=\"onTokenRemoved(token)\"\n >\n </span>\n }\n </span>\n }\n</div>\n", styles: [".no-pointer-events{pointer-events:none}.token-list{align-items:center;display:inline-flex;flex-wrap:wrap;max-width:100%;padding:0 10px;text-transform:none}.token-list .token{align-items:center;background-color:#e5eaea;border:1px solid #697882;border-radius:4px;color:#212533;display:flex;font:400 12px/150% Open Sans,sans-serif;gap:8px;margin:2px 5px 0 0;max-width:100%;padding:2px 8px;-webkit-user-select:none;user-select:none}.token-list .token-label{max-width:50ch;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.token-list .token:not(.token--disabled):hover,.token-list .token:not(.token--disabled):focus{background-color:#ccc}.token-list .token a{text-decoration:none;color:#212533}.token-list .token--disabled{opacity:50%}.token-list .token--disabled a{cursor:default}\n"], dependencies: [{ kind: "directive", type: NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }] });
|
|
46
48
|
}
|
|
47
49
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: TokenListComponent, decorators: [{
|
|
48
50
|
type: Component,
|
|
49
|
-
args: [{ selector: 's-token-list', standalone: true, imports: [NgClass], template: "<div\n [id]=\"id\"\n class=\"token-list\"\n>\n @for (token of tokens; track $index) {\n <span\n [id]=\"token.id\"\n class=\"token\"\n [ngClass]=\"{\n 'no-pointer-events': hidePointerEvents,\n 'token--disabled': token.disabled,\n }\"\n >\n <a\n [id]=\"(token.id || 'token') + '-label'\"\n class=\"token-label\"\n (click)=\"onTokenSelected(token)\"\n >\n {{ token.label }}\n </a>\n @if (removableTokens && !token.notRemovable) {\n <span\n [id]=\"token.id + '-remove'\"\n class=\"
|
|
51
|
+
args: [{ selector: 's-token-list', standalone: true, imports: [NgClass], template: "<div\n [id]=\"id\"\n class=\"token-list\"\n>\n @for (token of tokens; track $index) {\n <span\n [id]=\"token.id\"\n class=\"token\"\n [ngClass]=\"{\n 'no-pointer-events': hidePointerEvents,\n 'token--disabled': token.disabled,\n }\"\n >\n <a\n [id]=\"(token.id || 'token') + '-label'\"\n class=\"token-label\"\n (click)=\"onTokenSelected(token)\"\n >\n {{ token.label }}\n </a>\n @if (removableTokens && !token.notRemovable) {\n <span\n [id]=\"token.id + '-remove'\"\n [class]=\"removeIconClass\"\n (click)=\"onTokenRemoved(token)\"\n >\n </span>\n }\n </span>\n }\n</div>\n", styles: [".no-pointer-events{pointer-events:none}.token-list{align-items:center;display:inline-flex;flex-wrap:wrap;max-width:100%;padding:0 10px;text-transform:none}.token-list .token{align-items:center;background-color:#e5eaea;border:1px solid #697882;border-radius:4px;color:#212533;display:flex;font:400 12px/150% Open Sans,sans-serif;gap:8px;margin:2px 5px 0 0;max-width:100%;padding:2px 8px;-webkit-user-select:none;user-select:none}.token-list .token-label{max-width:50ch;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.token-list .token:not(.token--disabled):hover,.token-list .token:not(.token--disabled):focus{background-color:#ccc}.token-list .token a{text-decoration:none;color:#212533}.token-list .token--disabled{opacity:50%}.token-list .token--disabled a{cursor:default}\n"] }]
|
|
50
52
|
}], propDecorators: { id: [{
|
|
51
53
|
type: Input
|
|
52
54
|
}], tokens: [{
|
|
@@ -56,6 +58,8 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.14", ngImpo
|
|
|
56
58
|
type: Input
|
|
57
59
|
}], hidePointerEvents: [{
|
|
58
60
|
type: Input
|
|
61
|
+
}], removeIconClass: [{
|
|
62
|
+
type: Input
|
|
59
63
|
}], tokenSelected: [{
|
|
60
64
|
type: Output
|
|
61
65
|
}], tokenRemoved: [{
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"seniorsistemas-angular-components-token-list.mjs","sources":["../../projects/angular-components/token-list/src/lib/token-list/token-list.component.ts","../../projects/angular-components/token-list/src/lib/token-list/token-list.component.html","../../projects/angular-components/token-list/src/lib/token-list/token-list.module.ts","../../projects/angular-components/token-list/src/seniorsistemas-angular-components-token-list.ts"],"sourcesContent":["import { NgClass } from '@angular/common';\r\nimport { Component, EventEmitter, Input, Output } from '@angular/core';\r\n\r\nimport { IToken } from './models/token';\r\n\r\n/**\r\n * @description Componente de lista de tokens (etiquetas) clicáveis e opcionalmente\r\n * removíveis. Emite eventos ao selecionar ou remover um token.\r\n *\r\n * @example\r\n * ```html\r\n * <s-token-list\r\n * [tokens]=\"listaDeTokens\"\r\n * [removableTokens]=\"true\"\r\n * (tokenSelected)=\"onTokenSelecionado($event)\"\r\n * (tokenRemoved)=\"onTokenRemovido($event)\" />\r\n * ```\r\n *\r\n * @category Summary\r\n */\r\n@Component({\r\n selector: 's-token-list',\r\n templateUrl: './token-list.component.html',\r\n styleUrls: ['./token-list.component.scss'],\r\n standalone: true,\r\n imports: [NgClass],\r\n})\r\nexport class TokenListComponent {\r\n public static nextId = 0;\r\n\r\n /** @description Identificador único do componente no DOM. Gerado automaticamente se não informado. */\r\n @Input()\r\n public id = `s-token-list-${TokenListComponent.nextId++}`;\r\n\r\n /** @description Lista de tokens exibidos. Campo obrigatório. */\r\n @Input({ required: true })\r\n public tokens!: IToken[];\r\n\r\n /** @description Exibe o botão de remoção em cada token. @default false */\r\n @Input()\r\n public removableTokens = false;\r\n\r\n /** @description Quando `true`, remove os eventos de ponteiro (hover/clique) dos tokens. @default false */\r\n @Input()\r\n public hidePointerEvents = false;\r\n\r\n /** @description Emitido quando o usuário clica em um token não desabilitado. */\r\n @Output()\r\n public tokenSelected: EventEmitter<IToken> = new EventEmitter();\r\n\r\n /** @description Emitido quando o usuário remove um token não desabilitado. */\r\n @Output()\r\n public tokenRemoved: EventEmitter<IToken> = new EventEmitter();\r\n\r\n public onTokenSelected(token: IToken): void {\r\n if (!token.disabled) {\r\n this.tokenSelected.next(token);\r\n }\r\n }\r\n\r\n public onTokenRemoved(token: IToken): void {\r\n if (!token.disabled) {\r\n this.tokenRemoved.next(token);\r\n }\r\n }\r\n}\r\n","<div\n [id]=\"id\"\n class=\"token-list\"\n>\n @for (token of tokens; track $index) {\n <span\n [id]=\"token.id\"\n class=\"token\"\n [ngClass]=\"{\n 'no-pointer-events': hidePointerEvents,\n 'token--disabled': token.disabled,\n }\"\n >\n <a\n [id]=\"(token.id || 'token') + '-label'\"\n class=\"token-label\"\n (click)=\"onTokenSelected(token)\"\n >\n {{ token.label }}\n </a>\n @if (removableTokens && !token.notRemovable) {\n <span\n [id]=\"token.id + '-remove'\"\n class=\"
|
|
1
|
+
{"version":3,"file":"seniorsistemas-angular-components-token-list.mjs","sources":["../../projects/angular-components/token-list/src/lib/token-list/token-list.component.ts","../../projects/angular-components/token-list/src/lib/token-list/token-list.component.html","../../projects/angular-components/token-list/src/lib/token-list/token-list.module.ts","../../projects/angular-components/token-list/src/seniorsistemas-angular-components-token-list.ts"],"sourcesContent":["import { NgClass } from '@angular/common';\r\nimport { Component, EventEmitter, Input, Output } from '@angular/core';\r\n\r\nimport { IToken } from './models/token';\r\n\r\n/**\r\n * @description Componente de lista de tokens (etiquetas) clicáveis e opcionalmente\r\n * removíveis. Emite eventos ao selecionar ou remover um token.\r\n *\r\n * @example\r\n * ```html\r\n * <s-token-list\r\n * [tokens]=\"listaDeTokens\"\r\n * [removableTokens]=\"true\"\r\n * (tokenSelected)=\"onTokenSelecionado($event)\"\r\n * (tokenRemoved)=\"onTokenRemovido($event)\" />\r\n * ```\r\n *\r\n * @category Summary\r\n */\r\n@Component({\r\n selector: 's-token-list',\r\n templateUrl: './token-list.component.html',\r\n styleUrls: ['./token-list.component.scss'],\r\n standalone: true,\r\n imports: [NgClass],\r\n})\r\nexport class TokenListComponent {\r\n public static nextId = 0;\r\n\r\n /** @description Identificador único do componente no DOM. Gerado automaticamente se não informado. */\r\n @Input()\r\n public id = `s-token-list-${TokenListComponent.nextId++}`;\r\n\r\n /** @description Lista de tokens exibidos. Campo obrigatório. */\r\n @Input({ required: true })\r\n public tokens!: IToken[];\r\n\r\n /** @description Exibe o botão de remoção em cada token. @default false */\r\n @Input()\r\n public removableTokens = false;\r\n\r\n /** @description Quando `true`, remove os eventos de ponteiro (hover/clique) dos tokens. @default false */\r\n @Input()\r\n public hidePointerEvents = false;\r\n\r\n /** @description Classe do ícone do botão de remover token. @default 'far fa-times' */\r\n @Input()\r\n public removeIconClass = 'far fa-times';\r\n\r\n /** @description Emitido quando o usuário clica em um token não desabilitado. */\r\n @Output()\r\n public tokenSelected: EventEmitter<IToken> = new EventEmitter();\r\n\r\n /** @description Emitido quando o usuário remove um token não desabilitado. */\r\n @Output()\r\n public tokenRemoved: EventEmitter<IToken> = new EventEmitter();\r\n\r\n public onTokenSelected(token: IToken): void {\r\n if (!token.disabled) {\r\n this.tokenSelected.next(token);\r\n }\r\n }\r\n\r\n public onTokenRemoved(token: IToken): void {\r\n if (!token.disabled) {\r\n this.tokenRemoved.next(token);\r\n }\r\n }\r\n}\r\n","<div\n [id]=\"id\"\n class=\"token-list\"\n>\n @for (token of tokens; track $index) {\n <span\n [id]=\"token.id\"\n class=\"token\"\n [ngClass]=\"{\n 'no-pointer-events': hidePointerEvents,\n 'token--disabled': token.disabled,\n }\"\n >\n <a\n [id]=\"(token.id || 'token') + '-label'\"\n class=\"token-label\"\n (click)=\"onTokenSelected(token)\"\n >\n {{ token.label }}\n </a>\n @if (removableTokens && !token.notRemovable) {\n <span\n [id]=\"token.id + '-remove'\"\n [class]=\"removeIconClass\"\n (click)=\"onTokenRemoved(token)\"\n >\n </span>\n }\n </span>\n }\n</div>\n","import { NgModule } from '@angular/core';\r\n\r\nimport { TokenListComponent } from './token-list.component';\r\n\r\n@NgModule({\r\n imports: [TokenListComponent],\r\n exports: [TokenListComponent],\r\n})\r\nexport class TokenListModule {}\r\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":[],"mappings":";;;;AAKA;;;;;;;;;;;;;;AAcG;MAQU,kBAAkB,CAAA;AACpB,IAAA,OAAO,MAAM,GAAG,CAAC,CAAC;;AAIlB,IAAA,EAAE,GAAG,CAAgB,aAAA,EAAA,kBAAkB,CAAC,MAAM,EAAE,EAAE,CAAC;;AAInD,IAAA,MAAM,CAAY;;IAIlB,eAAe,GAAG,KAAK,CAAC;;IAIxB,iBAAiB,GAAG,KAAK,CAAC;;IAI1B,eAAe,GAAG,cAAc,CAAC;;AAIjC,IAAA,aAAa,GAAyB,IAAI,YAAY,EAAE,CAAC;;AAIzD,IAAA,YAAY,GAAyB,IAAI,YAAY,EAAE,CAAC;AAExD,IAAA,eAAe,CAAC,KAAa,EAAA;AAChC,QAAA,IAAI,CAAC,KAAK,CAAC,QAAQ,EAAE;AACjB,YAAA,IAAI,CAAC,aAAa,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;SAClC;KACJ;AAEM,IAAA,cAAc,CAAC,KAAa,EAAA;AAC/B,QAAA,IAAI,CAAC,KAAK,CAAC,QAAQ,EAAE;AACjB,YAAA,IAAI,CAAC,YAAY,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;SACjC;KACJ;wGAzCQ,kBAAkB,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA;4FAAlB,kBAAkB,EAAA,YAAA,EAAA,IAAA,EAAA,QAAA,EAAA,cAAA,EAAA,MAAA,EAAA,EAAA,EAAA,EAAA,IAAA,EAAA,MAAA,EAAA,QAAA,EAAA,eAAA,EAAA,iBAAA,EAAA,iBAAA,EAAA,mBAAA,EAAA,eAAA,EAAA,iBAAA,EAAA,EAAA,OAAA,EAAA,EAAA,aAAA,EAAA,eAAA,EAAA,YAAA,EAAA,cAAA,EAAA,EAAA,QAAA,EAAA,EAAA,EAAA,QAAA,EC3B/B,o4BA+BA,EAAA,MAAA,EAAA,CAAA,qxBAAA,CAAA,EAAA,YAAA,EAAA,CAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EDNc,OAAO,EAAA,QAAA,EAAA,WAAA,EAAA,MAAA,EAAA,CAAA,OAAA,EAAA,SAAA,CAAA,EAAA,CAAA,EAAA,CAAA,CAAA;;4FAER,kBAAkB,EAAA,UAAA,EAAA,CAAA;kBAP9B,SAAS;AACI,YAAA,IAAA,EAAA,CAAA,EAAA,QAAA,EAAA,cAAc,EAGZ,UAAA,EAAA,IAAI,EACP,OAAA,EAAA,CAAC,OAAO,CAAC,EAAA,QAAA,EAAA,o4BAAA,EAAA,MAAA,EAAA,CAAA,qxBAAA,CAAA,EAAA,CAAA;8BAOX,EAAE,EAAA,CAAA;sBADR,KAAK;gBAKC,MAAM,EAAA,CAAA;sBADZ,KAAK;uBAAC,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAA;gBAKlB,eAAe,EAAA,CAAA;sBADrB,KAAK;gBAKC,iBAAiB,EAAA,CAAA;sBADvB,KAAK;gBAKC,eAAe,EAAA,CAAA;sBADrB,KAAK;gBAKC,aAAa,EAAA,CAAA;sBADnB,MAAM;gBAKA,YAAY,EAAA,CAAA;sBADlB,MAAM;;;ME/CE,eAAe,CAAA;wGAAf,eAAe,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,QAAA,EAAA,CAAA,CAAA;yGAAf,eAAe,EAAA,OAAA,EAAA,CAHd,kBAAkB,CAAA,EAAA,OAAA,EAAA,CAClB,kBAAkB,CAAA,EAAA,CAAA,CAAA;yGAEnB,eAAe,EAAA,CAAA,CAAA;;4FAAf,eAAe,EAAA,UAAA,EAAA,CAAA;kBAJ3B,QAAQ;AAAC,YAAA,IAAA,EAAA,CAAA;oBACN,OAAO,EAAE,CAAC,kBAAkB,CAAC;oBAC7B,OAAO,EAAE,CAAC,kBAAkB,CAAC;AAChC,iBAAA,CAAA;;;ACPD;;AAEG;;;;"}
|
package/insights/README.md
CHANGED
|
@@ -52,6 +52,8 @@ export class MeuModule {}
|
|
|
52
52
|
| `introText` | `string` | `undefined` | Não | Texto de introdução exibido no topo do painel (quando sem template customizado). |
|
|
53
53
|
| `emptyText` | `string` | `undefined` | Não | Texto exibido quando não há insights disponíveis. |
|
|
54
54
|
| `noPermissionText` | `string` | `undefined` | Não | Texto exibido quando o usuário não tem permissão. |
|
|
55
|
+
| `icons` | `InsightsCardIcons` | `undefined` | Não | Ícones customizáveis de cada card de insight exibido no sidebar. Chaves não informadas mantêm o ícone padrão. |
|
|
56
|
+
| `closeIconClass` | `string` | `'far fa-chevron-double-right'` | Não | Ícone do botão de fechar o sidebar. |
|
|
55
57
|
|
|
56
58
|
### Outputs
|
|
57
59
|
|
|
@@ -76,6 +78,16 @@ interface InsightsItem {
|
|
|
76
78
|
}
|
|
77
79
|
```
|
|
78
80
|
|
|
81
|
+
```typescript
|
|
82
|
+
interface InsightsCardIcons {
|
|
83
|
+
lightbulb?: string; // Ícone do badge "Insight" no cabeçalho. Padrão: 'fal fa-lightbulb'
|
|
84
|
+
copy?: string; // Ícone do botão de copiar conteúdo. Padrão: 'fal fa-copy'
|
|
85
|
+
redo?: string; // Ícone do botão de recarregar conteúdo. Padrão: 'fal fa-redo'
|
|
86
|
+
thumbsUp?: string; // Ícone do botão de like. Padrão: 'fal fa-thumbs-up' (não selecionado) / 'fas fa-thumbs-up' (selecionado)
|
|
87
|
+
thumbsDown?: string; // Ícone do botão de dislike. Padrão: 'fal fa-thumbs-down' (não selecionado) / 'fas fa-thumbs-down' (selecionado)
|
|
88
|
+
}
|
|
89
|
+
```
|
|
90
|
+
|
|
79
91
|
## Exemplos
|
|
80
92
|
|
|
81
93
|
### Insights com múltiplos itens
|
|
@@ -1,16 +1,37 @@
|
|
|
1
1
|
import { InsightsItem } from '../../models/insights-item';
|
|
2
2
|
import * as i0 from "@angular/core";
|
|
3
|
+
/**
|
|
4
|
+
* @description Ícones customizáveis do `s-insights-card`. Chaves não informadas mantêm o ícone padrão.
|
|
5
|
+
*/
|
|
6
|
+
export interface InsightsCardIcons {
|
|
7
|
+
/** Ícone do badge "Insight" no cabeçalho. Padrão: `fal fa-lightbulb`. */
|
|
8
|
+
lightbulb?: string;
|
|
9
|
+
/** Ícone do botão de copiar conteúdo. Padrão: `fal fa-copy`. */
|
|
10
|
+
copy?: string;
|
|
11
|
+
/** Ícone do botão de recarregar conteúdo. Padrão: `fal fa-redo`. */
|
|
12
|
+
redo?: string;
|
|
13
|
+
/** Ícone do botão de like. Padrão: `fal fa-thumbs-up` (não selecionado) / `fas fa-thumbs-up` (selecionado). */
|
|
14
|
+
thumbsUp?: string;
|
|
15
|
+
/** Ícone do botão de dislike. Padrão: `fal fa-thumbs-down` (não selecionado) / `fas fa-thumbs-down` (selecionado). */
|
|
16
|
+
thumbsDown?: string;
|
|
17
|
+
}
|
|
3
18
|
export declare class InsightsCardComponent {
|
|
4
19
|
private readonly clipboard;
|
|
5
20
|
private readonly toastService;
|
|
6
21
|
private readonly translateService;
|
|
7
22
|
private readonly _destroyRef;
|
|
8
23
|
insight: InsightsItem;
|
|
24
|
+
icons?: InsightsCardIcons;
|
|
9
25
|
open: boolean;
|
|
10
26
|
isLoading: boolean;
|
|
11
27
|
content?: string;
|
|
12
28
|
likeSelected: boolean;
|
|
13
29
|
dislikeSelected: boolean;
|
|
30
|
+
get lightbulbIconClass(): string;
|
|
31
|
+
get copyIconClass(): string;
|
|
32
|
+
get redoIconClass(): string;
|
|
33
|
+
get thumbsUpIconClass(): string;
|
|
34
|
+
get thumbsDownIconClass(): string;
|
|
14
35
|
toggle(): void;
|
|
15
36
|
onLikeSelected(): void;
|
|
16
37
|
onDislikeSelected(): void;
|
|
@@ -18,5 +39,5 @@ export declare class InsightsCardComponent {
|
|
|
18
39
|
reloadContent(): void;
|
|
19
40
|
private _requestInsight;
|
|
20
41
|
static ɵfac: i0.ɵɵFactoryDeclaration<InsightsCardComponent, never>;
|
|
21
|
-
static ɵcmp: i0.ɵɵComponentDeclaration<InsightsCardComponent, "s-insights-card", never, { "insight": { "alias": "insight"; "required": true; }; }, {}, never, never, true, never>;
|
|
42
|
+
static ɵcmp: i0.ɵɵComponentDeclaration<InsightsCardComponent, "s-insights-card", never, { "insight": { "alias": "insight"; "required": true; }; "icons": { "alias": "icons"; "required": false; }; }, {}, never, never, true, never>;
|
|
22
43
|
}
|
|
@@ -1,5 +1,6 @@
|
|
|
1
1
|
import { TemplateRef } from '@angular/core';
|
|
2
2
|
import { InsightsItem } from '../../models/index';
|
|
3
|
+
import { InsightsCardIcons } from '../insights-card/insights-card.component';
|
|
3
4
|
import * as i0 from "@angular/core";
|
|
4
5
|
export declare class InsightsSidebarComponent {
|
|
5
6
|
insights: InsightsItem[];
|
|
@@ -10,6 +11,13 @@ export declare class InsightsSidebarComponent {
|
|
|
10
11
|
emptyTemplate: TemplateRef<any> | null;
|
|
11
12
|
noPermissionText?: string;
|
|
12
13
|
noPermissionTemplate: TemplateRef<any> | null;
|
|
14
|
+
/**
|
|
15
|
+
* @description Ícone do botão de fechar o sidebar.
|
|
16
|
+
* @default 'far fa-chevron-double-right'
|
|
17
|
+
*/
|
|
18
|
+
closeIconClass: string;
|
|
19
|
+
/** @description Ícones customizáveis de cada `s-insights-card` renderizado no sidebar. */
|
|
20
|
+
icons?: InsightsCardIcons;
|
|
13
21
|
closedSidebar: import("@angular/core").OutputEmitterRef<void>;
|
|
14
22
|
openedSidebar: import("@angular/core").OutputEmitterRef<void>;
|
|
15
23
|
opened: boolean;
|
|
@@ -17,5 +25,5 @@ export declare class InsightsSidebarComponent {
|
|
|
17
25
|
open(): void;
|
|
18
26
|
close(): void;
|
|
19
27
|
static ɵfac: i0.ɵɵFactoryDeclaration<InsightsSidebarComponent, never>;
|
|
20
|
-
static ɵcmp: i0.ɵɵComponentDeclaration<InsightsSidebarComponent, "s-insights-sidebar", never, { "insights": { "alias": "insights"; "required": false; }; "hasPermission": { "alias": "hasPermission"; "required": false; }; "introText": { "alias": "introText"; "required": false; }; "introTemplate": { "alias": "introTemplate"; "required": false; }; "emptyText": { "alias": "emptyText"; "required": false; }; "emptyTemplate": { "alias": "emptyTemplate"; "required": false; }; "noPermissionText": { "alias": "noPermissionText"; "required": false; }; "noPermissionTemplate": { "alias": "noPermissionTemplate"; "required": false; }; }, { "closedSidebar": "closedSidebar"; "openedSidebar": "openedSidebar"; }, never, never, true, never>;
|
|
28
|
+
static ɵcmp: i0.ɵɵComponentDeclaration<InsightsSidebarComponent, "s-insights-sidebar", never, { "insights": { "alias": "insights"; "required": false; }; "hasPermission": { "alias": "hasPermission"; "required": false; }; "introText": { "alias": "introText"; "required": false; }; "introTemplate": { "alias": "introTemplate"; "required": false; }; "emptyText": { "alias": "emptyText"; "required": false; }; "emptyTemplate": { "alias": "emptyTemplate"; "required": false; }; "noPermissionText": { "alias": "noPermissionText"; "required": false; }; "noPermissionTemplate": { "alias": "noPermissionTemplate"; "required": false; }; "closeIconClass": { "alias": "closeIconClass"; "required": false; }; "icons": { "alias": "icons"; "required": false; }; }, { "closedSidebar": "closedSidebar"; "openedSidebar": "openedSidebar"; }, never, never, true, never>;
|
|
21
29
|
}
|
|
@@ -1,6 +1,7 @@
|
|
|
1
1
|
import { AfterContentInit, QueryList, TemplateRef } from '@angular/core';
|
|
2
2
|
import { TemplateDirective } from '@seniorsistemas/angular-components/template';
|
|
3
3
|
import { InsightsSidebarComponent } from './components/insights-sidebar/insights-sidebar.component';
|
|
4
|
+
import { InsightsCardIcons } from './components/insights-card/insights-card.component';
|
|
4
5
|
import { InsightsItem } from './models/insights-item';
|
|
5
6
|
import * as i0 from "@angular/core";
|
|
6
7
|
import * as i1 from "@seniorsistemas/angular-components/common/deprecated-selector";
|
|
@@ -30,6 +31,13 @@ export declare class InsightsComponent implements AfterContentInit {
|
|
|
30
31
|
emptyText?: string;
|
|
31
32
|
/** @description Texto exibido quando o usuário não tem permissão. */
|
|
32
33
|
noPermissionText?: string;
|
|
34
|
+
/**
|
|
35
|
+
* @description Ícone do botão de fechar o sidebar.
|
|
36
|
+
* @default 'far fa-chevron-double-right'
|
|
37
|
+
*/
|
|
38
|
+
closeIconClass: string;
|
|
39
|
+
/** @description Ícones customizáveis de cada card de insight exibido no sidebar. */
|
|
40
|
+
icons?: InsightsCardIcons;
|
|
33
41
|
sidebar: InsightsSidebarComponent | null;
|
|
34
42
|
templates: QueryList<TemplateDirective> | null;
|
|
35
43
|
/** @description Emitido quando o painel de insights é aberto. */
|
|
@@ -48,5 +56,5 @@ export declare class InsightsComponent implements AfterContentInit {
|
|
|
48
56
|
private _getCustomTemplate;
|
|
49
57
|
private _getTemplates;
|
|
50
58
|
static ɵfac: i0.ɵɵFactoryDeclaration<InsightsComponent, never>;
|
|
51
|
-
static ɵcmp: i0.ɵɵComponentDeclaration<InsightsComponent, "s-insights, s-ia-insight", never, { "insights": { "alias": "insights"; "required": false; }; "hasPermission": { "alias": "hasPermission"; "required": false; }; "introText": { "alias": "introText"; "required": false; }; "emptyText": { "alias": "emptyText"; "required": false; }; "noPermissionText": { "alias": "noPermissionText"; "required": false; }; }, { "openInsights": "openInsights"; "closedInsights": "closedInsights"; }, ["templates"], never, true, [{ directive: typeof i1.DeprecatedSelectorDirective; inputs: {}; outputs: {}; }]>;
|
|
59
|
+
static ɵcmp: i0.ɵɵComponentDeclaration<InsightsComponent, "s-insights, s-ia-insight", never, { "insights": { "alias": "insights"; "required": false; }; "hasPermission": { "alias": "hasPermission"; "required": false; }; "introText": { "alias": "introText"; "required": false; }; "emptyText": { "alias": "emptyText"; "required": false; }; "noPermissionText": { "alias": "noPermissionText"; "required": false; }; "closeIconClass": { "alias": "closeIconClass"; "required": false; }; "icons": { "alias": "icons"; "required": false; }; }, { "openInsights": "openInsights"; "closedInsights": "closedInsights"; }, ["templates"], never, true, [{ directive: typeof i1.DeprecatedSelectorDirective; inputs: {}; outputs: {}; }]>;
|
|
52
60
|
}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@seniorsistemas/angular-components",
|
|
3
|
-
"version": "19.9.
|
|
3
|
+
"version": "19.9.5",
|
|
4
4
|
"peerDependencies": {
|
|
5
5
|
"@angular/cdk": "^18.2.14",
|
|
6
6
|
"@angular/common": "^18.2.0",
|
|
@@ -95,18 +95,18 @@
|
|
|
95
95
|
"esm": "./esm2022/accordion/seniorsistemas-angular-components-accordion.mjs",
|
|
96
96
|
"default": "./fesm2022/seniorsistemas-angular-components-accordion.mjs"
|
|
97
97
|
},
|
|
98
|
-
"./alert": {
|
|
99
|
-
"types": "./alert/index.d.ts",
|
|
100
|
-
"esm2022": "./esm2022/alert/seniorsistemas-angular-components-alert.mjs",
|
|
101
|
-
"esm": "./esm2022/alert/seniorsistemas-angular-components-alert.mjs",
|
|
102
|
-
"default": "./fesm2022/seniorsistemas-angular-components-alert.mjs"
|
|
103
|
-
},
|
|
104
98
|
"./autocomplete": {
|
|
105
99
|
"types": "./autocomplete/index.d.ts",
|
|
106
100
|
"esm2022": "./esm2022/autocomplete/seniorsistemas-angular-components-autocomplete.mjs",
|
|
107
101
|
"esm": "./esm2022/autocomplete/seniorsistemas-angular-components-autocomplete.mjs",
|
|
108
102
|
"default": "./fesm2022/seniorsistemas-angular-components-autocomplete.mjs"
|
|
109
103
|
},
|
|
104
|
+
"./alert": {
|
|
105
|
+
"types": "./alert/index.d.ts",
|
|
106
|
+
"esm2022": "./esm2022/alert/seniorsistemas-angular-components-alert.mjs",
|
|
107
|
+
"esm": "./esm2022/alert/seniorsistemas-angular-components-alert.mjs",
|
|
108
|
+
"default": "./fesm2022/seniorsistemas-angular-components-alert.mjs"
|
|
109
|
+
},
|
|
110
110
|
"./badge": {
|
|
111
111
|
"types": "./badge/index.d.ts",
|
|
112
112
|
"esm2022": "./esm2022/badge/seniorsistemas-angular-components-badge.mjs",
|
package/rating-scale/README.md
CHANGED
|
@@ -52,25 +52,30 @@ export class MeuModulo {}
|
|
|
52
52
|
|
|
53
53
|
```typescript
|
|
54
54
|
interface RatingScaleNode {
|
|
55
|
-
id: string;
|
|
56
|
-
title?: string;
|
|
57
|
-
|
|
55
|
+
id: string; // Identificador único do nó (obrigatório)
|
|
56
|
+
title?: string; // Texto exibido abaixo do ícone
|
|
57
|
+
/** @deprecated Use `selectedIcon` e `unselectedIcon`. */
|
|
58
|
+
icon?: string; // Classe do ícone Font Awesome sem o glifo (ex: 'fa-smile') — sempre exibido com o glifo fixo `fas`
|
|
59
|
+
selectedIcon?: string; // Classe completa (glifo + ícone, ex: 'fas fa-smile') exibida quando o nó está selecionado
|
|
60
|
+
unselectedIcon?: string; // Classe completa (glifo + ícone, ex: 'far fa-smile') exibida quando o nó não está selecionado
|
|
58
61
|
}
|
|
59
62
|
```
|
|
60
63
|
|
|
61
64
|
> O `FormControl` deve ser do tipo `RatingScaleNode`. O componente emite o objeto `RatingScaleNode` completo quando um nó é selecionado.
|
|
62
65
|
|
|
66
|
+
> **`selectedIcon`/`unselectedIcon` devem ser informados juntos.** Se apenas um dos dois for informado, o componente emite um aviso no console e não exibe nenhum ícone para aquele nó. Se os dois forem informados, eles têm prioridade sobre `icon` (que é ignorado nesse caso).
|
|
67
|
+
|
|
63
68
|
## Exemplos
|
|
64
69
|
|
|
65
70
|
### Escala de humor com ícones
|
|
66
71
|
|
|
67
72
|
```typescript
|
|
68
73
|
const nosHumor: RatingScaleNode[] = [
|
|
69
|
-
{ id: 'very-happy', title: 'Muito feliz',
|
|
70
|
-
{ id: 'happy', title: 'Feliz',
|
|
71
|
-
{ id: 'normal', title: 'Normal',
|
|
72
|
-
{ id: 'sad', title: 'Triste',
|
|
73
|
-
{ id: 'very-sad', title: 'Muito triste',
|
|
74
|
+
{ id: 'very-happy', title: 'Muito feliz', selectedIcon: 'fas fa-laugh-wink', unselectedIcon: 'far fa-laugh-wink' },
|
|
75
|
+
{ id: 'happy', title: 'Feliz', selectedIcon: 'fas fa-smile', unselectedIcon: 'far fa-smile' },
|
|
76
|
+
{ id: 'normal', title: 'Normal', selectedIcon: 'fas fa-meh', unselectedIcon: 'far fa-meh' },
|
|
77
|
+
{ id: 'sad', title: 'Triste', selectedIcon: 'fas fa-sad-tear', unselectedIcon: 'far fa-sad-tear' },
|
|
78
|
+
{ id: 'very-sad', title: 'Muito triste', selectedIcon: 'fas fa-sad-cry', unselectedIcon: 'far fa-sad-cry' },
|
|
74
79
|
];
|
|
75
80
|
```
|
|
76
81
|
|
|
@@ -128,11 +133,11 @@ this.form = new FormGroup({
|
|
|
128
133
|
```html
|
|
129
134
|
<s-rating-scale
|
|
130
135
|
[nodes]="[
|
|
131
|
-
{ id: 'very-happy',
|
|
132
|
-
{ id: 'happy',
|
|
133
|
-
{ id: 'normal',
|
|
134
|
-
{ id: 'sad',
|
|
135
|
-
{ id: 'very-sad',
|
|
136
|
+
{ id: 'very-happy', selectedIcon: 'fas fa-laugh-wink', unselectedIcon: 'far fa-laugh-wink' },
|
|
137
|
+
{ id: 'happy', selectedIcon: 'fas fa-smile', unselectedIcon: 'far fa-smile' },
|
|
138
|
+
{ id: 'normal', selectedIcon: 'fas fa-meh', unselectedIcon: 'far fa-meh' },
|
|
139
|
+
{ id: 'sad', selectedIcon: 'fas fa-sad-tear', unselectedIcon: 'far fa-sad-tear' },
|
|
140
|
+
{ id: 'very-sad', selectedIcon: 'fas fa-sad-cry', unselectedIcon: 'far fa-sad-cry' }
|
|
136
141
|
]"
|
|
137
142
|
startLabel="Triste"
|
|
138
143
|
endLabel="Feliz"
|
|
@@ -148,6 +153,26 @@ this.form = new FormGroup({
|
|
|
148
153
|
- `startLabel` e `endLabel` contextualizam os extremos da escala para todos os usuários
|
|
149
154
|
- Em modo `disabled`, nenhum nó aceita interação e o estilo visual indica o estado inativo
|
|
150
155
|
|
|
156
|
+
## Migração
|
|
157
|
+
|
|
158
|
+
### `icon` para `selectedIcon`/`unselectedIcon`
|
|
159
|
+
|
|
160
|
+
O campo `icon` de `RatingScaleNode` está depreciado. Ele sempre exibia o ícone com o glifo `fas` fixo, independente do nó estar selecionado ou não. Os novos campos `selectedIcon`/`unselectedIcon` recebem a classe completa (glifo + ícone) pra cada estado, permitindo escolher livremente qualquer combinação — inclusive estilos diferentes (`fas`/`far`/etc.) por nó:
|
|
161
|
+
|
|
162
|
+
```typescript
|
|
163
|
+
// Antes
|
|
164
|
+
const nos: RatingScaleNode[] = [
|
|
165
|
+
{ id: 'happy', title: 'Feliz', icon: 'fa-smile' },
|
|
166
|
+
];
|
|
167
|
+
|
|
168
|
+
// Depois
|
|
169
|
+
const nos: RatingScaleNode[] = [
|
|
170
|
+
{ id: 'happy', title: 'Feliz', selectedIcon: 'fas fa-smile', unselectedIcon: 'far fa-smile' },
|
|
171
|
+
];
|
|
172
|
+
```
|
|
173
|
+
|
|
174
|
+
`selectedIcon` e `unselectedIcon` devem ser informados sempre em conjunto — informar só um dos dois gera um aviso no console e nenhum ícone é exibido para o nó.
|
|
175
|
+
|
|
151
176
|
## Componentes relacionados
|
|
152
177
|
|
|
153
178
|
- [`StarRating`](../star-rating/README.md) — avaliação por estrelas com escala numérica fixa
|
|
@@ -1,5 +1,13 @@
|
|
|
1
1
|
export interface RatingScaleNode {
|
|
2
2
|
id: string;
|
|
3
3
|
title?: string;
|
|
4
|
+
/**
|
|
5
|
+
* @deprecated Use `selectedIcon` e `unselectedIcon` para controlar o glifo (`fas`/`far`/etc.)
|
|
6
|
+
* junto com o ícone. Será removido na próxima versão major.
|
|
7
|
+
*/
|
|
4
8
|
icon?: string;
|
|
9
|
+
/** @description Classe completa (glifo + ícone, ex: `'fas fa-smile'`) exibida quando o nó está selecionado. Deve ser informado junto com `unselectedIcon`. */
|
|
10
|
+
selectedIcon?: string;
|
|
11
|
+
/** @description Classe completa (glifo + ícone, ex: `'far fa-smile'`) exibida quando o nó não está selecionado. Deve ser informado junto com `selectedIcon`. */
|
|
12
|
+
unselectedIcon?: string;
|
|
5
13
|
}
|
|
@@ -1,3 +1,4 @@
|
|
|
1
|
+
import { OnChanges, SimpleChanges } from '@angular/core';
|
|
1
2
|
import { ControlValueAccessor } from '@angular/forms';
|
|
2
3
|
import { RatingScaleNode } from './models/rating-scale-node';
|
|
3
4
|
import * as i0 from "@angular/core";
|
|
@@ -18,7 +19,7 @@ import * as i0 from "@angular/core";
|
|
|
18
19
|
*
|
|
19
20
|
* @category Feedback
|
|
20
21
|
*/
|
|
21
|
-
export declare class RatingScaleComponent implements ControlValueAccessor {
|
|
22
|
+
export declare class RatingScaleComponent implements ControlValueAccessor, OnChanges {
|
|
22
23
|
/**
|
|
23
24
|
* @description Lista de nós que compõem a escala de avaliação. Campo obrigatório.
|
|
24
25
|
* Cada `RatingScaleNode` define o valor, rótulo e cor do item na escala.
|
|
@@ -37,6 +38,8 @@ export declare class RatingScaleComponent implements ControlValueAccessor {
|
|
|
37
38
|
value?: RatingScaleNode;
|
|
38
39
|
private _onChange?;
|
|
39
40
|
private _onTouched?;
|
|
41
|
+
ngOnChanges(changes: SimpleChanges): void;
|
|
42
|
+
getNodeIconClass(node: RatingScaleNode): string | undefined;
|
|
40
43
|
writeValue(value: RatingScaleNode): void;
|
|
41
44
|
registerOnChange(onChange: (value: RatingScaleNode) => void): void;
|
|
42
45
|
registerOnTouched(onTouched: (value: RatingScaleNode) => void): void;
|
package/select/README.md
CHANGED
|
@@ -62,6 +62,8 @@ export class MeuComponent {}
|
|
|
62
62
|
| `ariaLabel` | `string` | `''` | Não | Label de acessibilidade do componente |
|
|
63
63
|
| `ariaLabelledBy` | `string` | `''` | Não | ID do elemento externo que descreve o componente |
|
|
64
64
|
|
|
65
|
+
> **Nota:** o ícone exibido por `checkmark` usa por padrão a classe `far fa-check` (Font Awesome Free), definida internamente pelo `SelectOptionComponent` (sub-componente interno que renderiza cada opção do dropdown) através do input `checkIconClass`. Esse input não é público — não é exposto nem repassado pelo `SelectComponent`.
|
|
66
|
+
|
|
65
67
|
### Tipos
|
|
66
68
|
|
|
67
69
|
```typescript
|
|
@@ -7,8 +7,10 @@ export declare class SelectOptionComponent {
|
|
|
7
7
|
isGrouper: import("@angular/core").InputSignal<boolean>;
|
|
8
8
|
isFocused: import("@angular/core").InputSignal<boolean>;
|
|
9
9
|
isSelected: import("@angular/core").ModelSignal<boolean>;
|
|
10
|
+
/** @description Classe do ícone de checkmark exibido quando a opção está selecionada. @default 'far fa-check' */
|
|
11
|
+
checkIconClass: import("@angular/core").InputSignal<string>;
|
|
10
12
|
selected: import("@angular/core").OutputEmitterRef<void>;
|
|
11
13
|
onClick(): void;
|
|
12
14
|
static ɵfac: i0.ɵɵFactoryDeclaration<SelectOptionComponent, never>;
|
|
13
|
-
static ɵcmp: i0.ɵɵComponentDeclaration<SelectOptionComponent, "s-select-option", never, { "id": { "alias": "id"; "required": true; "isSignal": true; }; "label": { "alias": "label"; "required": true; "isSignal": true; }; "multiple": { "alias": "multiple"; "required": true; "isSignal": true; }; "checkmark": { "alias": "checkmark"; "required": true; "isSignal": true; }; "isGrouper": { "alias": "isGrouper"; "required": true; "isSignal": true; }; "isFocused": { "alias": "isFocused"; "required": true; "isSignal": true; }; "isSelected": { "alias": "isSelected"; "required": true; "isSignal": true; }; }, { "isSelected": "isSelectedChange"; "selected": "selected"; }, never, never, true, never>;
|
|
15
|
+
static ɵcmp: i0.ɵɵComponentDeclaration<SelectOptionComponent, "s-select-option", never, { "id": { "alias": "id"; "required": true; "isSignal": true; }; "label": { "alias": "label"; "required": true; "isSignal": true; }; "multiple": { "alias": "multiple"; "required": true; "isSignal": true; }; "checkmark": { "alias": "checkmark"; "required": true; "isSignal": true; }; "isGrouper": { "alias": "isGrouper"; "required": true; "isSignal": true; }; "isFocused": { "alias": "isFocused"; "required": true; "isSignal": true; }; "isSelected": { "alias": "isSelected"; "required": true; "isSignal": true; }; "checkIconClass": { "alias": "checkIconClass"; "required": false; "isSignal": true; }; }, { "isSelected": "isSelectedChange"; "selected": "selected"; }, never, never, true, never>;
|
|
14
16
|
}
|
|
@@ -43,6 +43,8 @@ export declare class SelectComponent<T> implements ControlValueAccessor, OnInit,
|
|
|
43
43
|
filter: import("@angular/core").InputSignal<boolean>;
|
|
44
44
|
/** @description Exibe um ícone de checkmark ao lado da opção selecionada. @default false */
|
|
45
45
|
checkmark: import("@angular/core").InputSignal<boolean>;
|
|
46
|
+
/** @description Classe do ícone de checkmark exibido quando `checkmark` está ativo. @default 'far fa-check' */
|
|
47
|
+
checkIconClass: import("@angular/core").InputSignal<string>;
|
|
46
48
|
/** @description Chave(s) do objeto usada(s) para filtragem textual. Quando não informado, usa `optionLabel`. */
|
|
47
49
|
filterBy: import("@angular/core").InputSignal<keyof T | (keyof T)[] | undefined>;
|
|
48
50
|
/** @description Habilita agrupamento de opções. As opções devem conter itens filhos conforme a estrutura de grupo suportada. @default false */
|
|
@@ -369,6 +371,6 @@ export declare class SelectComponent<T> implements ControlValueAccessor, OnInit,
|
|
|
369
371
|
*/
|
|
370
372
|
private _focusSelectedOption;
|
|
371
373
|
static ɵfac: i0.ɵɵFactoryDeclaration<SelectComponent<any>, never>;
|
|
372
|
-
static ɵcmp: i0.ɵɵComponentDeclaration<SelectComponent<any>, "s-select", never, { "placeholder": { "alias": "placeholder"; "required": false; "isSignal": true; }; "multiple": { "alias": "multiple"; "required": false; "isSignal": true; }; "options": { "alias": "options"; "required": true; "isSignal": true; }; "optionLabel": { "alias": "optionLabel"; "required": false; "isSignal": true; }; "optionValue": { "alias": "optionValue"; "required": false; "isSignal": true; }; "showClear": { "alias": "showClear"; "required": false; "isSignal": true; }; "filter": { "alias": "filter"; "required": false; "isSignal": true; }; "checkmark": { "alias": "checkmark"; "required": false; "isSignal": true; }; "filterBy": { "alias": "filterBy"; "required": false; "isSignal": true; }; "group": { "alias": "group"; "required": false; "isSignal": true; }; "virtualScroll": { "alias": "virtualScroll"; "required": false; "isSignal": true; }; "virtualScrollItemSize": { "alias": "virtualScrollItemSize"; "required": false; "isSignal": true; }; "emptyMessage": { "alias": "emptyMessage"; "required": false; "isSignal": true; }; "disabled": { "alias": "disabled"; "required": false; "isSignal": true; }; "showOptions": { "alias": "showOptions"; "required": false; "isSignal": true; }; "ariaLabel": { "alias": "ariaLabel"; "required": false; "isSignal": true; }; "ariaLabelledBy": { "alias": "ariaLabelledBy"; "required": false; "isSignal": true; }; }, { "disabled": "disabledChange"; "showOptions": "showOptionsChange"; }, never, never, true, never>;
|
|
374
|
+
static ɵcmp: i0.ɵɵComponentDeclaration<SelectComponent<any>, "s-select", never, { "placeholder": { "alias": "placeholder"; "required": false; "isSignal": true; }; "multiple": { "alias": "multiple"; "required": false; "isSignal": true; }; "options": { "alias": "options"; "required": true; "isSignal": true; }; "optionLabel": { "alias": "optionLabel"; "required": false; "isSignal": true; }; "optionValue": { "alias": "optionValue"; "required": false; "isSignal": true; }; "showClear": { "alias": "showClear"; "required": false; "isSignal": true; }; "filter": { "alias": "filter"; "required": false; "isSignal": true; }; "checkmark": { "alias": "checkmark"; "required": false; "isSignal": true; }; "checkIconClass": { "alias": "checkIconClass"; "required": false; "isSignal": true; }; "filterBy": { "alias": "filterBy"; "required": false; "isSignal": true; }; "group": { "alias": "group"; "required": false; "isSignal": true; }; "virtualScroll": { "alias": "virtualScroll"; "required": false; "isSignal": true; }; "virtualScrollItemSize": { "alias": "virtualScrollItemSize"; "required": false; "isSignal": true; }; "emptyMessage": { "alias": "emptyMessage"; "required": false; "isSignal": true; }; "disabled": { "alias": "disabled"; "required": false; "isSignal": true; }; "showOptions": { "alias": "showOptions"; "required": false; "isSignal": true; }; "ariaLabel": { "alias": "ariaLabel"; "required": false; "isSignal": true; }; "ariaLabelledBy": { "alias": "ariaLabelledBy"; "required": false; "isSignal": true; }; }, { "disabled": "disabledChange"; "showOptions": "showOptionsChange"; }, never, never, true, never>;
|
|
373
375
|
}
|
|
374
376
|
export {};
|
|
@@ -47,6 +47,7 @@ export class MeuModule {}
|
|
|
47
47
|
| `textAreaElement` | `HTMLTextAreaElement` | — | Sim | Referência ao elemento `<textarea>` nativo que receberá o texto transcrito |
|
|
48
48
|
| `keepContext` | `boolean` | `false` | Não | Quando `true`, o texto reconhecido é adicionado ao texto existente em vez de substituí-lo |
|
|
49
49
|
| `speechRecognitionPlaceholder` | `string` | `''` | Não | Placeholder exibido no textarea durante o reconhecimento de voz |
|
|
50
|
+
| `moreOptionsIconClass` | `string` | `'far fa-ellipsis-h'` | Não | Classe do ícone do botão de mais opções |
|
|
50
51
|
|
|
51
52
|
### Outputs
|
|
52
53
|
|
|
@@ -25,6 +25,8 @@ export declare class SpeechRecognitionComponent implements OnInit, OnDestroy {
|
|
|
25
25
|
keepContext: boolean;
|
|
26
26
|
/** @description Placeholder exibido no textarea durante o reconhecimento de voz. @default '' */
|
|
27
27
|
speechRecognitionPlaceholder: string;
|
|
28
|
+
/** @description Classe do ícone do botão de mais opções. @default 'far fa-ellipsis-h' */
|
|
29
|
+
moreOptionsIconClass: string;
|
|
28
30
|
private _recognizedText;
|
|
29
31
|
private originalTextAreaElementText;
|
|
30
32
|
private isDoneTextToSpeech;
|
|
@@ -65,5 +67,5 @@ export declare class SpeechRecognitionComponent implements OnInit, OnDestroy {
|
|
|
65
67
|
private speak;
|
|
66
68
|
private get textToSpeech();
|
|
67
69
|
static ɵfac: i0.ɵɵFactoryDeclaration<SpeechRecognitionComponent, never>;
|
|
68
|
-
static ɵcmp: i0.ɵɵComponentDeclaration<SpeechRecognitionComponent, "s-speech-recognition", never, { "textAreaElement": { "alias": "textAreaElement"; "required": true; }; "keepContext": { "alias": "keepContext"; "required": false; }; "speechRecognitionPlaceholder": { "alias": "speechRecognitionPlaceholder"; "required": false; }; "disabledSpeechRecognition": { "alias": "disabledSpeechRecognition"; "required": false; "isSignal": true; }; }, { "recognizedText": "recognizedText"; }, never, never, true, never>;
|
|
70
|
+
static ɵcmp: i0.ɵɵComponentDeclaration<SpeechRecognitionComponent, "s-speech-recognition", never, { "textAreaElement": { "alias": "textAreaElement"; "required": true; }; "keepContext": { "alias": "keepContext"; "required": false; }; "speechRecognitionPlaceholder": { "alias": "speechRecognitionPlaceholder"; "required": false; }; "moreOptionsIconClass": { "alias": "moreOptionsIconClass"; "required": false; }; "disabledSpeechRecognition": { "alias": "disabledSpeechRecognition"; "required": false; "isSignal": true; }; }, { "recognizedText": "recognizedText"; }, never, never, true, never>;
|
|
69
71
|
}
|
package/split-button/README.md
CHANGED
|
@@ -47,6 +47,8 @@ export class MeuModule {}
|
|
|
47
47
|
| `options` | `SplitButtonOption[]` | — | Sim | Lista de opções exibidas no dropdown |
|
|
48
48
|
| `type` | `SplitButtonType` | `'primary'` | Não | Estilo visual do botão: `'primary'`, `'secondary'` ou `'default'` |
|
|
49
49
|
| `disabled` | `boolean` | `false` | Não | Desabilita o botão principal e o dropdown |
|
|
50
|
+
| `openIcon` | `string` | `'far fa-chevron-down'` | Não | Classe do ícone exibido no dropdown quando está fechado |
|
|
51
|
+
| `closeIcon` | `string` | `'far fa-chevron-up'` | Não | Classe do ícone exibido no dropdown quando está aberto |
|
|
50
52
|
|
|
51
53
|
### Outputs
|
|
52
54
|
|
|
@@ -30,6 +30,10 @@ export declare class SplitButtonComponent {
|
|
|
30
30
|
type: SplitButtonType;
|
|
31
31
|
/** @description Lista de opções exibidas no dropdown. Campo obrigatório. */
|
|
32
32
|
options: SplitButtonOption[];
|
|
33
|
+
/** @description Classe do ícone exibido quando o dropdown está fechado. @default 'far fa-chevron-down' */
|
|
34
|
+
openIcon: string;
|
|
35
|
+
/** @description Classe do ícone exibido quando o dropdown está aberto. @default 'far fa-chevron-up' */
|
|
36
|
+
closeIcon: string;
|
|
33
37
|
/** @description Emitido quando o usuário clica no botão principal (não no dropdown). */
|
|
34
38
|
buttonClicked: EventEmitter<any>;
|
|
35
39
|
open: boolean;
|
|
@@ -39,5 +43,5 @@ export declare class SplitButtonComponent {
|
|
|
39
43
|
onOptionClick(option: SplitButtonOption): void;
|
|
40
44
|
private _closeDropdown;
|
|
41
45
|
static ɵfac: i0.ɵɵFactoryDeclaration<SplitButtonComponent, never>;
|
|
42
|
-
static ɵcmp: i0.ɵɵComponentDeclaration<SplitButtonComponent, "s-split-button", never, { "disabled": { "alias": "disabled"; "required": false; }; "iconClass": { "alias": "iconClass"; "required": true; }; "label": { "alias": "label"; "required": true; }; "type": { "alias": "type"; "required": false; }; "options": { "alias": "options"; "required": true; }; }, { "buttonClicked": "buttonClicked"; }, never, never, true, never>;
|
|
46
|
+
static ɵcmp: i0.ɵɵComponentDeclaration<SplitButtonComponent, "s-split-button", never, { "disabled": { "alias": "disabled"; "required": false; }; "iconClass": { "alias": "iconClass"; "required": true; }; "label": { "alias": "label"; "required": true; }; "type": { "alias": "type"; "required": false; }; "options": { "alias": "options"; "required": true; }; "openIcon": { "alias": "openIcon"; "required": false; }; "closeIcon": { "alias": "closeIcon"; "required": false; }; }, { "buttonClicked": "buttonClicked"; }, never, never, true, never>;
|
|
43
47
|
}
|
|
@@ -26,6 +26,8 @@ export declare class TokenListComponent {
|
|
|
26
26
|
removableTokens: boolean;
|
|
27
27
|
/** @description Quando `true`, remove os eventos de ponteiro (hover/clique) dos tokens. @default false */
|
|
28
28
|
hidePointerEvents: boolean;
|
|
29
|
+
/** @description Classe do ícone do botão de remover token. @default 'far fa-times' */
|
|
30
|
+
removeIconClass: string;
|
|
29
31
|
/** @description Emitido quando o usuário clica em um token não desabilitado. */
|
|
30
32
|
tokenSelected: EventEmitter<IToken>;
|
|
31
33
|
/** @description Emitido quando o usuário remove um token não desabilitado. */
|
|
@@ -33,5 +35,5 @@ export declare class TokenListComponent {
|
|
|
33
35
|
onTokenSelected(token: IToken): void;
|
|
34
36
|
onTokenRemoved(token: IToken): void;
|
|
35
37
|
static ɵfac: i0.ɵɵFactoryDeclaration<TokenListComponent, never>;
|
|
36
|
-
static ɵcmp: i0.ɵɵComponentDeclaration<TokenListComponent, "s-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>;
|
|
38
|
+
static ɵcmp: i0.ɵɵComponentDeclaration<TokenListComponent, "s-token-list", never, { "id": { "alias": "id"; "required": false; }; "tokens": { "alias": "tokens"; "required": true; }; "removableTokens": { "alias": "removableTokens"; "required": false; }; "hidePointerEvents": { "alias": "hidePointerEvents"; "required": false; }; "removeIconClass": { "alias": "removeIconClass"; "required": false; }; }, { "tokenSelected": "tokenSelected"; "tokenRemoved": "tokenRemoved"; }, never, never, true, never>;
|
|
37
39
|
}
|