@seniorsistemas/angular-components 17.3.9 → 17.3.11
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/bundles/seniorsistemas-angular-components.umd.js +37 -12
- package/bundles/seniorsistemas-angular-components.umd.js.map +1 -1
- package/bundles/seniorsistemas-angular-components.umd.min.js +1 -1
- package/bundles/seniorsistemas-angular-components.umd.min.js.map +1 -1
- package/components/dynamic-form/configurations/fields/field.d.ts +42 -0
- package/components/dynamic-form/configurations/fields/text-area-ia-field.d.ts +2 -0
- package/components/dynamic-form/configurations/form-field.d.ts +24 -0
- package/components/dynamic-form/services/IAssist/iassist.service.d.ts +1 -0
- package/components/dynamic-form/services/IAssist/models/iassist-input-data.d.ts +1 -0
- package/esm2015/components/dynamic-form/components/dynamic-field/dynamic-field.component.js +2 -2
- package/esm2015/components/dynamic-form/components/fields/text-area-ia/text-area-ia-field.component.js +4 -2
- package/esm2015/components/dynamic-form/components/grid/row/row.component.js +25 -1
- package/esm2015/components/dynamic-form/configurations/fields/field.js +9 -1
- package/esm2015/components/dynamic-form/configurations/fields/text-area-ia-field.js +2 -1
- package/esm2015/components/dynamic-form/configurations/form-field.js +1 -1
- package/esm2015/components/dynamic-form/services/IAssist/iassist.service.js +24 -10
- package/esm2015/components/dynamic-form/services/IAssist/models/iassist-input-data.js +1 -1
- package/esm5/components/dynamic-form/components/dynamic-field/dynamic-field.component.js +2 -2
- package/esm5/components/dynamic-form/components/fields/text-area-ia/text-area-ia-field.component.js +4 -2
- package/esm5/components/dynamic-form/components/grid/row/row.component.js +2 -2
- package/esm5/components/dynamic-form/configurations/fields/field.js +10 -1
- package/esm5/components/dynamic-form/configurations/fields/text-area-ia-field.js +2 -1
- package/esm5/components/dynamic-form/configurations/form-field.js +1 -1
- package/esm5/components/dynamic-form/services/IAssist/iassist.service.js +25 -11
- package/esm5/components/dynamic-form/services/IAssist/models/iassist-input-data.js +1 -1
- package/fesm2015/seniorsistemas-angular-components.js +60 -11
- package/fesm2015/seniorsistemas-angular-components.js.map +1 -1
- package/fesm5/seniorsistemas-angular-components.js +37 -12
- package/fesm5/seniorsistemas-angular-components.js.map +1 -1
- package/package.json +1 -1
- package/seniorsistemas-angular-components.metadata.json +1 -1
|
@@ -4086,6 +4086,13 @@ var FieldSize = /** @class */ (function () {
|
|
|
4086
4086
|
var Field = /** @class */ (function () {
|
|
4087
4087
|
function Field(config) {
|
|
4088
4088
|
var _this = this;
|
|
4089
|
+
var _a, _b, _c, _d;
|
|
4090
|
+
if ((_a = config.footer) === null || _a === void 0 ? void 0 : _a.help) {
|
|
4091
|
+
config.footer.help = __assign({ visible: function () { return true; } }, (_b = config.footer) === null || _b === void 0 ? void 0 : _b.help);
|
|
4092
|
+
}
|
|
4093
|
+
if ((_c = config.footer) === null || _c === void 0 ? void 0 : _c.link) {
|
|
4094
|
+
config.footer.link = __assign({ visible: function () { return true; } }, (_d = config.footer) === null || _d === void 0 ? void 0 : _d.link);
|
|
4095
|
+
}
|
|
4089
4096
|
this.required = config.required || (function () { return false; });
|
|
4090
4097
|
this.visible = config.visible || (function () { return true; });
|
|
4091
4098
|
this.id = config.id;
|
|
@@ -4099,6 +4106,7 @@ var Field = /** @class */ (function () {
|
|
|
4099
4106
|
this.size = new FieldSize(config.size || {});
|
|
4100
4107
|
this.errorMessages = config.errorMessages;
|
|
4101
4108
|
this.bottomTemplate = config.bottomTemplate;
|
|
4109
|
+
this.footer = config.footer;
|
|
4102
4110
|
this.gridClass = Object.keys(this.size).map(function (key) { return "ui-" + key + "-" + _this.size[key]; });
|
|
4103
4111
|
this.defaultValue = config.defaultValue;
|
|
4104
4112
|
this.representedBy = config.representedBy;
|
|
@@ -4952,6 +4960,7 @@ var TextAreaIAField = /** @class */ (function (_super) {
|
|
|
4952
4960
|
_this.rows = config.rows;
|
|
4953
4961
|
_this.keyFilter = config.keyFilter;
|
|
4954
4962
|
_this.style = config.style;
|
|
4963
|
+
_this.prompt = config.prompt;
|
|
4955
4964
|
return _this;
|
|
4956
4965
|
}
|
|
4957
4966
|
return TextAreaIAField;
|
|
@@ -5802,15 +5811,18 @@ var IAssistService = /** @class */ (function () {
|
|
|
5802
5811
|
}
|
|
5803
5812
|
IAssistService.prototype.askIA = function (context, data) {
|
|
5804
5813
|
var _this = this;
|
|
5805
|
-
|
|
5806
|
-
|
|
5807
|
-
"
|
|
5808
|
-
|
|
5809
|
-
|
|
5810
|
-
|
|
5811
|
-
"
|
|
5812
|
-
|
|
5813
|
-
|
|
5814
|
+
var prompt = data.prompt ? this._replacePlaceholder(context, data) : this._createPrompt(context, data);
|
|
5815
|
+
return this.http
|
|
5816
|
+
.post("platform/iassist/api/latest/completions", {
|
|
5817
|
+
prompt: prompt,
|
|
5818
|
+
provider: "OPEN_AI",
|
|
5819
|
+
parameters: {
|
|
5820
|
+
model: "gpt-3.5-turbo",
|
|
5821
|
+
max_tokens: 700,
|
|
5822
|
+
temperature: 1,
|
|
5823
|
+
},
|
|
5824
|
+
})
|
|
5825
|
+
.pipe(catchError(function (err) {
|
|
5814
5826
|
_this._messageService.add({
|
|
5815
5827
|
severity: "error",
|
|
5816
5828
|
summary: err.status ? String(err.status) : "Error",
|
|
@@ -5819,6 +5831,17 @@ var IAssistService = /** @class */ (function () {
|
|
|
5819
5831
|
return throwError(err);
|
|
5820
5832
|
}));
|
|
5821
5833
|
};
|
|
5834
|
+
IAssistService.prototype._replacePlaceholder = function (context, data) {
|
|
5835
|
+
var values = __assign(__assign({}, data), { context: context });
|
|
5836
|
+
delete values.prompt;
|
|
5837
|
+
var result = data.prompt;
|
|
5838
|
+
for (var key in __assign(__assign({}, values), { context: context })) {
|
|
5839
|
+
var placeholder = new RegExp("{{\\s*" + key + "\\s*}}", "g");
|
|
5840
|
+
result = result.replace(placeholder, values[key]);
|
|
5841
|
+
}
|
|
5842
|
+
console.log("prompt", result);
|
|
5843
|
+
return result;
|
|
5844
|
+
};
|
|
5822
5845
|
IAssistService.prototype._createPrompt = function (context, data) {
|
|
5823
5846
|
return "Crie um texto gen\u00E9rico para preencher o campo de textarea.\n " + (data.label ? "O campo tem o label " + data.label + "." : "") + "\n " + (data.id ? "O campo tem o id " + data.id + "." : "") + "\n " + (data.placeholder ? "Considere as instru\u00E7\u00F5es/sugest\u00F5es do placeholder: " + data.placeholder + "." : "") + "\n Baseie-se no contexto informado pelo usu\u00E1rio: '" + context + "'.\n O texto deve ser formal e conter informa\u00E7\u00F5es pertinentes a um campo como este, como se um usu\u00E1rio real tivesse preenchido com as informa\u00E7\u00F5es necess\u00E1rias. \n O texto deve ser neutro com rela\u00E7\u00E3o a generos, ra\u00E7as, religi\u00F5es, etc.\n O texto deve ser impessoal e n\u00E3o deve conter informa\u00E7\u00F5es pessoais do usu\u00E1rio.\n N\u00E3o direcione o texto a ningu\u00E9m, n\u00E3o use express\u00F5es como: caro, atenciosamente. gostaria, agrade\u00E7o. O texto deve ser gen\u00E9rico.\n \n Exemplos de texto:\n Um campo de descri\u00E7\u00E3o de usu\u00E1rio: \"Usu\u00E1rio com 20 anos, estudante de engenharia, gosta de jogar futebol e assistir filmes.\"\n Outro exemplo de descri\u00E7\u00E3o de usu\u00E1rio: \"Usu\u00E1rio administrador, com acesso total ao sistema, respons\u00E1vel por gerenciar os usu\u00E1rios e os produtos.\"\n Um campo de descri\u00E7\u00E3o de um produto: \"O produto \u00E9 um celular, com tela de 6 polegadas, 128GB de armazenamento, 4GB de mem\u00F3ria RAM, c\u00E2mera de 12MP e bateria de 4000mAh.\"\n Outro exemplo de descri\u00E7\u00E3o de produto: \"O produto \u00E9 uma geladeira, com capacidade de 500 litros, 2 portas, cor branca, com freezer e gaveta de legumes.\"\n Outro exemplo de descri\u00E7\u00E3o de produto: \"O produto \u00E9 uma camiseta, tamanho M, cor azul, 100% algod\u00E3o, com estampa de um gato.\"\n \n Em caso de contexto incompleto crie um texto gen\u00E9rico, como se fosse um exemplo de preenchimento do campo.\n O texto \u00E9 para um campo de textarea, ent\u00E3o escreva um texto sucinto.\n Exiba apenas o texto do output";
|
|
5824
5847
|
};
|
|
@@ -9054,10 +9077,12 @@ var TextAreaIAFieldComponent = /** @class */ (function () {
|
|
|
9054
9077
|
var _this = this;
|
|
9055
9078
|
var context = this.formGroup.get("context");
|
|
9056
9079
|
this.isLoading = true;
|
|
9057
|
-
this._iassistService
|
|
9080
|
+
this._iassistService
|
|
9081
|
+
.askIA(context.value, {
|
|
9058
9082
|
id: this.field.id,
|
|
9059
9083
|
label: this.field.label,
|
|
9060
9084
|
placeholder: this.field.placeholder,
|
|
9085
|
+
prompt: this.field.prompt,
|
|
9061
9086
|
})
|
|
9062
9087
|
.pipe(catchError(function (err) {
|
|
9063
9088
|
_this.isLoading = false;
|
|
@@ -9184,7 +9209,7 @@ var RowComponent = /** @class */ (function () {
|
|
|
9184
9209
|
], RowComponent.prototype, "errorMessages", void 0);
|
|
9185
9210
|
RowComponent = __decorate([
|
|
9186
9211
|
Component({
|
|
9187
|
-
template: "\n <div class=\"ui-fluid\" [formGroup]=\"group\">\n <div class=\"ui-g\">\n <ng-container *ngFor=\"let field of config.fields\">\n <div [ngClass]=\"field.gridClass\" *ngIf=\"field.visible()\">\n <label\n [for]=\"field.name\"\n [ngClass]=\"{ 'required': field.required() }\"\n *sInfoSign=\"field.infoSign\"\n >\n {{ field.label }}\n </label>\n <ng-container *sDynamicForm=\"{ id: id, config: field, group: group}\"></ng-container>\n <s-control-errors [form]=\"group\" [control]=\"group.controls[field.name]\"\n [errorMessages]=\"getErrorMessages(field.errorMessages)\"></s-control-errors>\n <ng-template *ngIf=\"field?.bottomTemplate\" [ngTemplateOutlet]=\"field.bottomTemplate\"></ng-template>\n </div>\n </ng-container>\n </div>\n "
|
|
9212
|
+
template: "\n <div class=\"ui-fluid\" [formGroup]=\"group\">\n <div class=\"ui-g\">\n <ng-container *ngFor=\"let field of config.fields\">\n <div [ngClass]=\"field.gridClass\" *ngIf=\"field.visible()\">\n <label\n [for]=\"field.name\"\n [ngClass]=\"{ 'required': field.required() }\"\n *sInfoSign=\"field.infoSign\"\n >\n {{ field.label }}\n </label>\n\n <ng-container *sDynamicForm=\"{ id: id, config: field, group: group}\"></ng-container>\n\n <s-control-errors [form]=\"group\" [control]=\"group.controls[field.name]\"\n [errorMessages]=\"getErrorMessages(field.errorMessages)\"></s-control-errors>\n\n <ng-container *ngIf=\"field.footer\">\n <ng-container *ngIf=\"field.footer.help\">\n <span *ngIf=\"field.footer.help.visible({ abstractControl: group.controls[field.name], formField: field })\" style=\"color: #888B99\">{{ field.footer.help.text }}</span>\n </ng-container>\n\n <ng-container *ngIf=\"field.footer.link\">\n <div\n *ngIf=\"field.footer.link.visible({ abstractControl: group.controls[field.name], formField: field })\"\n class=\"ui-g\"\n style=\"margin-left: -17px\"\n >\n <s-button\n [label]=\"field.footer.link.label\"\n priority=\"link\"\n (onClick)=\"field.footer.link.onClick({ abstractControl: group.controls[field.name], formField: field })\"\n [auxiliary]=\"true\"\n ></s-button>\n </div>\n </ng-container>\n </ng-container>\n\n <ng-template *ngIf=\"field?.bottomTemplate\" [ngTemplateOutlet]=\"field.bottomTemplate\"></ng-template>\n </div>\n </ng-container>\n </div>\n "
|
|
9188
9213
|
})
|
|
9189
9214
|
], RowComponent);
|
|
9190
9215
|
return RowComponent;
|
|
@@ -9220,7 +9245,7 @@ var DynamicFieldComponent = /** @class */ (function () {
|
|
|
9220
9245
|
DynamicFieldComponent = __decorate([
|
|
9221
9246
|
Component({
|
|
9222
9247
|
selector: "s-dynamic-field",
|
|
9223
|
-
template: "<div class=\"ui-fluid\" [formGroup]=\"form\">\n <div class=\"ui-g\">\n <ng-container *ngFor=\"let field of fields\">\n <div\n *ngIf=\"!field.visible || field.visible()\"\n [ngClass]=\"field.gridClass\">\n <span *ngIf=\"field.label\">\n <label\n *sInfoSign=\"field.infoSign
|
|
9248
|
+
template: "<div class=\"ui-fluid\" [formGroup]=\"form\">\n <div class=\"ui-g\">\n <ng-container *ngFor=\"let field of fields\">\n <div\n *ngIf=\"!field.visible || field.visible()\"\n [ngClass]=\"field.gridClass\"\n >\n <span *ngIf=\"field.label\">\n <label\n *sInfoSign=\"\n field.infoSign;\n displayTime: displayTimeInfoSign\n \"\n [for]=\"field.name\"\n [ngClass]=\"{ required: field.required() }\"\n >\n {{ field.label }}\n </label>\n </span>\n\n <ng-container\n *sDynamicForm=\"{\n id: id,\n config: field,\n group: form\n }\"\n ></ng-container>\n\n <s-control-errors\n [form]=\"form\"\n [control]=\"form.controls[field.name]\"\n [errorMessages]=\"getErrorMessages(field.errorMessages)\"\n ></s-control-errors>\n\n <ng-container *ngIf=\"field.footer\">\n <ng-container *ngIf=\"field.footer.help\">\n <span\n *ngIf=\"\n field.footer.help.visible({\n abstractControl: form.controls[field.name],\n formField: field\n })\n \"\n style=\"color: #888b99\"\n >\n {{ field.footer.help.text }}\n </span>\n </ng-container>\n\n <ng-container *ngIf=\"field.footer.link\">\n <div\n *ngIf=\"\n field.footer.link.visible({\n abstractControl: form.controls[field.name],\n formField: field\n })\n \"\n class=\"ui-g\"\n style=\"margin-left: -10px\"\n >\n <s-button\n [label]=\"field.footer.link.label\"\n priority=\"link\"\n (onClick)=\"\n field.footer.link.onClick({\n abstractControl:\n form.controls[field.name],\n formField: field\n })\n \"\n [auxiliary]=\"true\"\n ></s-button>\n </div>\n </ng-container>\n </ng-container>\n\n <ng-template\n *ngIf=\"field?.bottomTemplate\"\n [ngTemplateOutlet]=\"field.bottomTemplate\"\n ></ng-template>\n </div>\n </ng-container>\n </div>\n</div>\n"
|
|
9224
9249
|
})
|
|
9225
9250
|
], DynamicFieldComponent);
|
|
9226
9251
|
return DynamicFieldComponent;
|