new(basic.gblib): #306

Ignore acents during FIND filter 3.0 requirement.
This commit is contained in:
rodrigorodriguez 2023-03-02 07:51:42 -03:00
parent 80853f014c
commit 8a89ae4e44
2 changed files with 16 additions and 19 deletions

View file

@ -285,8 +285,8 @@ export class KeywordsExpressions {
keywords[i++] = [
/^\s*((?:[a-z]+.?)(?:(?:\w+).)(?:\w+)*)\s*=\s*find\s*(.*)\s*or talk\s*(.*)/gim,
($0, $1, $2, $3) => {
return `${$1} = await sys.find({pid: pid, args:[${$2}])\n
if (!${$1}) {
return `${$1} = await sys.getFind({pid: pid, args:[${$2}])\n
if (!${$1}) {s
await dk.talk ({pid: pid, ${$3}})\n;
return -1;
}
@ -305,7 +305,7 @@ export class KeywordsExpressions {
/^\s*((?:[a-z]+.?)(?:(?:\w+).)(?:\w+)*)\s*=\s*find\s*(.*)/gim,
($0, $1, $2, $3) => {
return `
${$1} = await sys.find({pid: pid, args: [${$2}]})`;
${$1} = await sys.getFind({pid: pid, args: [${$2}]})`;
}
];

View file

@ -51,13 +51,12 @@ import PizZip from 'pizzip';
import Docxtemplater from 'docxtemplater';
import pptxTemplaterModule from 'pptxtemplater';
import _ from 'lodash';
import { DocxImager } from 'docximager';
import { pdfToPng, PngPageOutput } from 'pdf-to-png-converter';
import sharp from 'sharp';
import apply from 'async/apply';
import ImageModule from 'open-docxtemplater-image-module';
import DynamicsWebApi from 'dynamics-web-api';
import * as MSAL from '@azure/msal-node';
import { GBConversationalService } from '../../core.gbapp/services/GBConversationalService.js';
/**
@ -73,11 +72,6 @@ export class SystemKeywords {
*/
public min: GBMinInstance;
/**
* Reference to the deployer service.
*/
private readonly deployer: GBDeployer;
dk: DialogKeywords;
wa;
@ -88,7 +82,6 @@ export class SystemKeywords {
constructor(min: GBMinInstance, deployer: GBDeployer, dk: DialogKeywords, wa) {
this.min = min;
this.wa = wa;
this.deployer = deployer;
this.dk = dk;
}
@ -710,7 +703,7 @@ export class SystemKeywords {
* @see NPM package data-forge
*
*/
public async find({ pid, args }): Promise<any> {
public async getFind({ pid, args }): Promise<any> {
const file = args[0];
args.shift();
@ -901,36 +894,40 @@ export class SystemKeywords {
switch (filter.dataType) {
case 'string':
const v1 = GBConversationalService.removeDiacritics(result.toLowerCase().trim());
const v2 = GBConversationalService.removeDiacritics(filter.toLowerCase().trim());
switch (filter.operator) {
case '=':
if (wholeWord) {
if (result && result.toLowerCase().trim() === filter.value.toLowerCase().trim()) {
if (v1 === v2) {
filterAcceptCount++;
}
} else {
if (result && result.toLowerCase().trim().indexOf(filter.value.toLowerCase().trim()) > -1) {
if (v1.indexOf(v2) > -1) {
filterAcceptCount++;
}
}
break;
case 'not in':
if (wholeWord) {
if (result && result.toLowerCase().trim() !== filter.value.toLowerCase().trim()) {
if (v1 !== v2) {
filterAcceptCount++;
}
} else {
if (result && result.toLowerCase().trim().indexOf(filter.value.toLowerCase().trim()) === -1) {
if (v1.indexOf(v2) === -1) {
filterAcceptCount++;
}
}
break;
case 'in':
if (wholeWord) {
if (result && result.toLowerCase().trim() === filter.value.toLowerCase().trim()) {
if (v1 === v2) {
filterAcceptCount++;
}
} else {
if (result && result.toLowerCase().trim().indexOf(filter.value.toLowerCase().trim()) > -1) {
if (v1.indexOf(v2) > -1) {
filterAcceptCount++;
}
}
@ -950,7 +947,7 @@ export class SystemKeywords {
case 'hourInterval':
switch (filter.operator) {
case '=':
if (result && result.toLowerCase().trim() === filter.value.toLowerCase().trim()) {
if (v1 === v2) {
filterAcceptCount++;
}
break;