From 8a89ae4e4490d11e387d7171f3d2d6b7b49b80b1 Mon Sep 17 00:00:00 2001 From: rodrigorodriguez Date: Thu, 2 Mar 2023 07:51:42 -0300 Subject: [PATCH] new(basic.gblib): #306 Ignore acents during FIND filter 3.0 requirement. --- .../services/KeywordsExpressions.ts | 6 ++-- .../basic.gblib/services/SystemKeywords.ts | 29 +++++++++---------- 2 files changed, 16 insertions(+), 19 deletions(-) diff --git a/packages/basic.gblib/services/KeywordsExpressions.ts b/packages/basic.gblib/services/KeywordsExpressions.ts index c9c7dafa..8f34bf9e 100644 --- a/packages/basic.gblib/services/KeywordsExpressions.ts +++ b/packages/basic.gblib/services/KeywordsExpressions.ts @@ -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}]})`; } ]; diff --git a/packages/basic.gblib/services/SystemKeywords.ts b/packages/basic.gblib/services/SystemKeywords.ts index 80a5d1e8..b7692562 100644 --- a/packages/basic.gblib/services/SystemKeywords.ts +++ b/packages/basic.gblib/services/SystemKeywords.ts @@ -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 { + public async getFind({ pid, args }): Promise { 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;