@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
|
@@ -4232,6 +4232,13 @@
|
|
|
4232
4232
|
var Field = /** @class */ (function () {
|
|
4233
4233
|
function Field(config) {
|
|
4234
4234
|
var _this = this;
|
|
4235
|
+
var _a, _b, _c, _d;
|
|
4236
|
+
if ((_a = config.footer) === null || _a === void 0 ? void 0 : _a.help) {
|
|
4237
|
+
config.footer.help = __assign({ visible: function () { return true; } }, (_b = config.footer) === null || _b === void 0 ? void 0 : _b.help);
|
|
4238
|
+
}
|
|
4239
|
+
if ((_c = config.footer) === null || _c === void 0 ? void 0 : _c.link) {
|
|
4240
|
+
config.footer.link = __assign({ visible: function () { return true; } }, (_d = config.footer) === null || _d === void 0 ? void 0 : _d.link);
|
|
4241
|
+
}
|
|
4235
4242
|
this.required = config.required || (function () { return false; });
|
|
4236
4243
|
this.visible = config.visible || (function () { return true; });
|
|
4237
4244
|
this.id = config.id;
|
|
@@ -4245,6 +4252,7 @@
|
|
|
4245
4252
|
this.size = new FieldSize(config.size || {});
|
|
4246
4253
|
this.errorMessages = config.errorMessages;
|
|
4247
4254
|
this.bottomTemplate = config.bottomTemplate;
|
|
4255
|
+
this.footer = config.footer;
|
|
4248
4256
|
this.gridClass = Object.keys(this.size).map(function (key) { return "ui-" + key + "-" + _this.size[key]; });
|
|
4249
4257
|
this.defaultValue = config.defaultValue;
|
|
4250
4258
|
this.representedBy = config.representedBy;
|
|
@@ -5098,6 +5106,7 @@
|
|
|
5098
5106
|
_this.rows = config.rows;
|
|
5099
5107
|
_this.keyFilter = config.keyFilter;
|
|
5100
5108
|
_this.style = config.style;
|
|
5109
|
+
_this.prompt = config.prompt;
|
|
5101
5110
|
return _this;
|
|
5102
5111
|
}
|
|
5103
5112
|
return TextAreaIAField;
|
|
@@ -5948,15 +5957,18 @@
|
|
|
5948
5957
|
}
|
|
5949
5958
|
IAssistService.prototype.askIA = function (context, data) {
|
|
5950
5959
|
var _this = this;
|
|
5951
|
-
|
|
5952
|
-
|
|
5953
|
-
"
|
|
5954
|
-
|
|
5955
|
-
|
|
5956
|
-
|
|
5957
|
-
"
|
|
5958
|
-
|
|
5959
|
-
|
|
5960
|
+
var prompt = data.prompt ? this._replacePlaceholder(context, data) : this._createPrompt(context, data);
|
|
5961
|
+
return this.http
|
|
5962
|
+
.post("platform/iassist/api/latest/completions", {
|
|
5963
|
+
prompt: prompt,
|
|
5964
|
+
provider: "OPEN_AI",
|
|
5965
|
+
parameters: {
|
|
5966
|
+
model: "gpt-3.5-turbo",
|
|
5967
|
+
max_tokens: 700,
|
|
5968
|
+
temperature: 1,
|
|
5969
|
+
},
|
|
5970
|
+
})
|
|
5971
|
+
.pipe(operators.catchError(function (err) {
|
|
5960
5972
|
_this._messageService.add({
|
|
5961
5973
|
severity: "error",
|
|
5962
5974
|
summary: err.status ? String(err.status) : "Error",
|
|
@@ -5965,6 +5977,17 @@
|
|
|
5965
5977
|
return rxjs.throwError(err);
|
|
5966
5978
|
}));
|
|
5967
5979
|
};
|
|
5980
|
+
IAssistService.prototype._replacePlaceholder = function (context, data) {
|
|
5981
|
+
var values = __assign(__assign({}, data), { context: context });
|
|
5982
|
+
delete values.prompt;
|
|
5983
|
+
var result = data.prompt;
|
|
5984
|
+
for (var key in __assign(__assign({}, values), { context: context })) {
|
|
5985
|
+
var placeholder = new RegExp("{{\\s*" + key + "\\s*}}", "g");
|
|
5986
|
+
result = result.replace(placeholder, values[key]);
|
|
5987
|
+
}
|
|
5988
|
+
console.log("prompt", result);
|
|
5989
|
+
return result;
|
|
5990
|
+
};
|
|
5968
5991
|
IAssistService.prototype._createPrompt = function (context, data) {
|
|
5969
5992
|
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";
|
|
5970
5993
|
};
|
|
@@ -9200,10 +9223,12 @@
|
|
|
9200
9223
|
var _this = this;
|
|
9201
9224
|
var context = this.formGroup.get("context");
|
|
9202
9225
|
this.isLoading = true;
|
|
9203
|
-
this._iassistService
|
|
9226
|
+
this._iassistService
|
|
9227
|
+
.askIA(context.value, {
|
|
9204
9228
|
id: this.field.id,
|
|
9205
9229
|
label: this.field.label,
|
|
9206
9230
|
placeholder: this.field.placeholder,
|
|
9231
|
+
prompt: this.field.prompt,
|
|
9207
9232
|
})
|
|
9208
9233
|
.pipe(operators.catchError(function (err) {
|
|
9209
9234
|
_this.isLoading = false;
|
|
@@ -9330,7 +9355,7 @@
|
|
|
9330
9355
|
], RowComponent.prototype, "errorMessages", void 0);
|
|
9331
9356
|
RowComponent = __decorate([
|
|
9332
9357
|
core.Component({
|
|
9333
|
-
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 "
|
|
9358
|
+
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 "
|
|
9334
9359
|
})
|
|
9335
9360
|
], RowComponent);
|
|
9336
9361
|
return RowComponent;
|
|
@@ -9366,7 +9391,7 @@
|
|
|
9366
9391
|
DynamicFieldComponent = __decorate([
|
|
9367
9392
|
core.Component({
|
|
9368
9393
|
selector: "s-dynamic-field",
|
|
9369
|
-
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
|
|
9394
|
+
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"
|
|
9370
9395
|
})
|
|
9371
9396
|
], DynamicFieldComponent);
|
|
9372
9397
|
return DynamicFieldComponent;
|