@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
@@ -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
- return this.http.post("platform/iassist/api/latest/completions", {
5806
- "prompt": this._createPrompt(context, data),
5807
- "provider": "OPEN_AI",
5808
- "parameters": {
5809
- "model": "gpt-3.5-turbo",
5810
- "max_tokens": 700,
5811
- "temperature": 1
5812
- }
5813
- }).pipe(catchError(function (err) {
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.askIA(context.value, {
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; 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>"
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;