@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.
Files changed (31) hide show
  1. package/bundles/seniorsistemas-angular-components.umd.js +37 -12
  2. package/bundles/seniorsistemas-angular-components.umd.js.map +1 -1
  3. package/bundles/seniorsistemas-angular-components.umd.min.js +1 -1
  4. package/bundles/seniorsistemas-angular-components.umd.min.js.map +1 -1
  5. package/components/dynamic-form/configurations/fields/field.d.ts +42 -0
  6. package/components/dynamic-form/configurations/fields/text-area-ia-field.d.ts +2 -0
  7. package/components/dynamic-form/configurations/form-field.d.ts +24 -0
  8. package/components/dynamic-form/services/IAssist/iassist.service.d.ts +1 -0
  9. package/components/dynamic-form/services/IAssist/models/iassist-input-data.d.ts +1 -0
  10. package/esm2015/components/dynamic-form/components/dynamic-field/dynamic-field.component.js +2 -2
  11. package/esm2015/components/dynamic-form/components/fields/text-area-ia/text-area-ia-field.component.js +4 -2
  12. package/esm2015/components/dynamic-form/components/grid/row/row.component.js +25 -1
  13. package/esm2015/components/dynamic-form/configurations/fields/field.js +9 -1
  14. package/esm2015/components/dynamic-form/configurations/fields/text-area-ia-field.js +2 -1
  15. package/esm2015/components/dynamic-form/configurations/form-field.js +1 -1
  16. package/esm2015/components/dynamic-form/services/IAssist/iassist.service.js +24 -10
  17. package/esm2015/components/dynamic-form/services/IAssist/models/iassist-input-data.js +1 -1
  18. package/esm5/components/dynamic-form/components/dynamic-field/dynamic-field.component.js +2 -2
  19. package/esm5/components/dynamic-form/components/fields/text-area-ia/text-area-ia-field.component.js +4 -2
  20. package/esm5/components/dynamic-form/components/grid/row/row.component.js +2 -2
  21. package/esm5/components/dynamic-form/configurations/fields/field.js +10 -1
  22. package/esm5/components/dynamic-form/configurations/fields/text-area-ia-field.js +2 -1
  23. package/esm5/components/dynamic-form/configurations/form-field.js +1 -1
  24. package/esm5/components/dynamic-form/services/IAssist/iassist.service.js +25 -11
  25. package/esm5/components/dynamic-form/services/IAssist/models/iassist-input-data.js +1 -1
  26. package/fesm2015/seniorsistemas-angular-components.js +60 -11
  27. package/fesm2015/seniorsistemas-angular-components.js.map +1 -1
  28. package/fesm5/seniorsistemas-angular-components.js +37 -12
  29. package/fesm5/seniorsistemas-angular-components.js.map +1 -1
  30. package/package.json +1 -1
  31. 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
- return this.http.post("platform/iassist/api/latest/completions", {
5952
- "prompt": this._createPrompt(context, data),
5953
- "provider": "OPEN_AI",
5954
- "parameters": {
5955
- "model": "gpt-3.5-turbo",
5956
- "max_tokens": 700,
5957
- "temperature": 1
5958
- }
5959
- }).pipe(operators.catchError(function (err) {
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.askIA(context.value, {
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; displayTime: displayTimeInfoSign\"\n [for]=\"field.name\"\n [ngClass]=\"{ 'required': field.required() }\">\n {{ field.label }}\n </label>\n </span>\n <ng-container *sDynamicForm=\"{\n id: id,\n config: field,\n group: form\n }\">\n </ng-container>\n <s-control-errors\n [form]=\"form\"\n [control]=\"form.controls[field.name]\"\n [errorMessages]=\"getErrorMessages(field.errorMessages)\">\n </s-control-errors>\n <ng-template\n *ngIf=\"field?.bottomTemplate\"\n [ngTemplateOutlet]=\"field.bottomTemplate\">\n </ng-template>\n </div>\n </ng-container>\n </div>\n</div>"
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;