@seniorsistemas/platform-components 5.3.0 → 5.3.1
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-platform-components.umd.js +59 -40
- package/bundles/seniorsistemas-platform-components.umd.js.map +1 -1
- package/bundles/seniorsistemas-platform-components.umd.min.js +2 -2
- package/bundles/seniorsistemas-platform-components.umd.min.js.map +1 -1
- package/esm2015/modules/translations/translations.module.js +59 -41
- package/esm5/modules/translations/translations.module.js +59 -41
- package/fesm2015/seniorsistemas-platform-components.js +59 -41
- package/fesm2015/seniorsistemas-platform-components.js.map +1 -1
- package/fesm5/seniorsistemas-platform-components.js +59 -41
- package/fesm5/seniorsistemas-platform-components.js.map +1 -1
- package/modules/translations/translations.module.d.ts +1 -0
- package/package.json +2 -2
- package/seniorsistemas-platform-components.metadata.json +1 -1
- package/modules/cyclic-json-interceptor/custom.d.ts +0 -4
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"seniorsistemas-platform-components.umd.js","sources":["../../node_modules/tslib/tslib.es6.js","ng://@seniorsistemas/platform-components/modules/advanced-filter/pipes/map-values.pipe.ts","ng://@seniorsistemas/platform-components/modules/advanced-filter/pipes/translate.pipe.ts","ng://@seniorsistemas/platform-components/modules/translations/translations.module.ts","ng://@seniorsistemas/platform-components/modules/advanced-filter/locale/fallback.ts","ng://@seniorsistemas/platform-components/modules/advanced-filter/services/constants.ts","ng://@seniorsistemas/platform-components/modules/advanced-filter/shared/constants.ts","ng://@seniorsistemas/platform-components/modules/advanced-filter/services/advanced-filter.service.ts","ng://@seniorsistemas/platform-components/modules/advanced-filter/models/filter.ts","ng://@seniorsistemas/platform-components/modules/advanced-filter/models/filter-type.ts","ng://@seniorsistemas/platform-components/modules/advanced-filter/models/scope.ts","ng://@seniorsistemas/platform-components/modules/advanced-filter/models/form-filter.ts","ng://@seniorsistemas/platform-components/modules/advanced-filter/models/tab-view.ts","ng://@seniorsistemas/platform-components/modules/advanced-filter/utils/filter-id/index.ts","ng://@seniorsistemas/platform-components/modules/advanced-filter/utils/filter-value/index.ts","ng://@seniorsistemas/platform-components/modules/advanced-filter/utils/json-path.ts","ng://@seniorsistemas/platform-components/modules/advanced-filter/utils/filterOperators.ts","ng://@seniorsistemas/platform-components/modules/advanced-filter/utils/index.ts","ng://@seniorsistemas/platform-components/modules/advanced-filter/utils/form-field/index.ts","ng://@seniorsistemas/platform-components/modules/advanced-filter/utils/comparator.ts","ng://@seniorsistemas/platform-components/modules/advanced-filter/services/calendar-options.service.ts","ng://@seniorsistemas/platform-components/modules/advanced-filter/components/form-filter/form-filter.component.ts","ng://@seniorsistemas/platform-components/modules/advanced-filter/components/advanced-filter/advanced-filter.component.ts","ng://@seniorsistemas/platform-components/modules/advanced-filter/advanced-filter.module.ts","ng://@seniorsistemas/platform-components/modules/cyclic-json-interceptor/cyclic-json-interceptor.service.ts","ng://@seniorsistemas/platform-components/modules/cyclic-json-interceptor/cyclic-json-interceptor.module.ts","ng://@seniorsistemas/platform-components/modules/http-interceptor/rest-url.service.ts","ng://@seniorsistemas/platform-components/modules/http-interceptor/x-services-url.service.ts","ng://@seniorsistemas/platform-components/modules/http-interceptor/http-interceptor.service.ts","ng://@seniorsistemas/platform-components/modules/http-interceptor/http-interceptor.module.ts","ng://@seniorsistemas/platform-components/modules/permissions/permissions.config.ts","ng://@seniorsistemas/platform-components/modules/permissions/permissions.service.ts","ng://@seniorsistemas/platform-components/modules/permissions/permissions.module.ts","ng://@seniorsistemas/platform-components/modules/feature-toggle/constants/endpoint.constant.ts","ng://@seniorsistemas/platform-components/modules/feature-toggle/feature-toggle.service.ts","ng://@seniorsistemas/platform-components/modules/feature-toggle/feature-toggle.module.ts","ng://@seniorsistemas/platform-components/modules/spotlight/models/user-action.enum.ts","ng://@seniorsistemas/platform-components/modules/spotlight/service/spotlight.service.ts","ng://@seniorsistemas/platform-components/modules/spotlight/models/display-type.enum.ts","ng://@seniorsistemas/platform-components/modules/spotlight/models/spotlight-control.interface.ts","ng://@seniorsistemas/platform-components/modules/spotlight/models/spotlight-status.enum.ts","ng://@seniorsistemas/platform-components/modules/spotlight/component/spotlight.component.ts","ng://@seniorsistemas/platform-components/modules/spotlight/locale/fallback.ts","ng://@seniorsistemas/platform-components/modules/spotlight/pipes/translate.pipe.ts","ng://@seniorsistemas/platform-components/modules/spotlight/spotlight.module.ts"],"sourcesContent":["/*! *****************************************************************************\r\nCopyright (c) Microsoft Corporation.\r\n\r\nPermission to use, copy, modify, and/or distribute this software for any\r\npurpose with or without fee is hereby granted.\r\n\r\nTHE SOFTWARE IS PROVIDED \"AS IS\" AND THE AUTHOR DISCLAIMS ALL WARRANTIES WITH\r\nREGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY\r\nAND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT,\r\nINDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM\r\nLOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR\r\nOTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR\r\nPERFORMANCE OF THIS SOFTWARE.\r\n***************************************************************************** */\r\n/* global Reflect, Promise */\r\n\r\nvar extendStatics = function(d, b) {\r\n extendStatics = Object.setPrototypeOf ||\r\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\r\n function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };\r\n return extendStatics(d, b);\r\n};\r\n\r\nexport function __extends(d, b) {\r\n extendStatics(d, b);\r\n function __() { this.constructor = d; }\r\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\r\n}\r\n\r\nexport var __assign = function() {\r\n __assign = Object.assign || function __assign(t) {\r\n for (var s, i = 1, n = arguments.length; i < n; i++) {\r\n s = arguments[i];\r\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p)) t[p] = s[p];\r\n }\r\n return t;\r\n }\r\n return __assign.apply(this, arguments);\r\n}\r\n\r\nexport function __rest(s, e) {\r\n var t = {};\r\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0)\r\n t[p] = s[p];\r\n if (s != null && typeof Object.getOwnPropertySymbols === \"function\")\r\n for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) {\r\n if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i]))\r\n t[p[i]] = s[p[i]];\r\n }\r\n return t;\r\n}\r\n\r\nexport function __decorate(decorators, target, key, desc) {\r\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\r\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\r\n else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\r\n return c > 3 && r && Object.defineProperty(target, key, r), r;\r\n}\r\n\r\nexport function __param(paramIndex, decorator) {\r\n return function (target, key) { decorator(target, key, paramIndex); }\r\n}\r\n\r\nexport function __metadata(metadataKey, metadataValue) {\r\n if (typeof Reflect === \"object\" && typeof Reflect.metadata === \"function\") return Reflect.metadata(metadataKey, metadataValue);\r\n}\r\n\r\nexport function __awaiter(thisArg, _arguments, P, generator) {\r\n function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }\r\n return new (P || (P = Promise))(function (resolve, reject) {\r\n function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }\r\n function rejected(value) { try { step(generator[\"throw\"](value)); } catch (e) { reject(e); } }\r\n function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }\r\n step((generator = generator.apply(thisArg, _arguments || [])).next());\r\n });\r\n}\r\n\r\nexport function __generator(thisArg, body) {\r\n var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g;\r\n return g = { next: verb(0), \"throw\": verb(1), \"return\": verb(2) }, typeof Symbol === \"function\" && (g[Symbol.iterator] = function() { return this; }), g;\r\n function verb(n) { return function (v) { return step([n, v]); }; }\r\n function step(op) {\r\n if (f) throw new TypeError(\"Generator is already executing.\");\r\n while (_) try {\r\n if (f = 1, y && (t = op[0] & 2 ? y[\"return\"] : op[0] ? y[\"throw\"] || ((t = y[\"return\"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t;\r\n if (y = 0, t) op = [op[0] & 2, t.value];\r\n switch (op[0]) {\r\n case 0: case 1: t = op; break;\r\n case 4: _.label++; return { value: op[1], done: false };\r\n case 5: _.label++; y = op[1]; op = [0]; continue;\r\n case 7: op = _.ops.pop(); _.trys.pop(); continue;\r\n default:\r\n if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; }\r\n if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; }\r\n if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; }\r\n if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; }\r\n if (t[2]) _.ops.pop();\r\n _.trys.pop(); continue;\r\n }\r\n op = body.call(thisArg, _);\r\n } catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; }\r\n if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true };\r\n }\r\n}\r\n\r\nexport function __createBinding(o, m, k, k2) {\r\n if (k2 === undefined) k2 = k;\r\n o[k2] = m[k];\r\n}\r\n\r\nexport function __exportStar(m, exports) {\r\n for (var p in m) if (p !== \"default\" && !exports.hasOwnProperty(p)) exports[p] = m[p];\r\n}\r\n\r\nexport function __values(o) {\r\n var s = typeof Symbol === \"function\" && Symbol.iterator, m = s && o[s], i = 0;\r\n if (m) return m.call(o);\r\n if (o && typeof o.length === \"number\") return {\r\n next: function () {\r\n if (o && i >= o.length) o = void 0;\r\n return { value: o && o[i++], done: !o };\r\n }\r\n };\r\n throw new TypeError(s ? \"Object is not iterable.\" : \"Symbol.iterator is not defined.\");\r\n}\r\n\r\nexport function __read(o, n) {\r\n var m = typeof Symbol === \"function\" && o[Symbol.iterator];\r\n if (!m) return o;\r\n var i = m.call(o), r, ar = [], e;\r\n try {\r\n while ((n === void 0 || n-- > 0) && !(r = i.next()).done) ar.push(r.value);\r\n }\r\n catch (error) { e = { error: error }; }\r\n finally {\r\n try {\r\n if (r && !r.done && (m = i[\"return\"])) m.call(i);\r\n }\r\n finally { if (e) throw e.error; }\r\n }\r\n return ar;\r\n}\r\n\r\nexport function __spread() {\r\n for (var ar = [], i = 0; i < arguments.length; i++)\r\n ar = ar.concat(__read(arguments[i]));\r\n return ar;\r\n}\r\n\r\nexport function __spreadArrays() {\r\n for (var s = 0, i = 0, il = arguments.length; i < il; i++) s += arguments[i].length;\r\n for (var r = Array(s), k = 0, i = 0; i < il; i++)\r\n for (var a = arguments[i], j = 0, jl = a.length; j < jl; j++, k++)\r\n r[k] = a[j];\r\n return r;\r\n};\r\n\r\nexport function __await(v) {\r\n return this instanceof __await ? (this.v = v, this) : new __await(v);\r\n}\r\n\r\nexport function __asyncGenerator(thisArg, _arguments, generator) {\r\n if (!Symbol.asyncIterator) throw new TypeError(\"Symbol.asyncIterator is not defined.\");\r\n var g = generator.apply(thisArg, _arguments || []), i, q = [];\r\n return i = {}, verb(\"next\"), verb(\"throw\"), verb(\"return\"), i[Symbol.asyncIterator] = function () { return this; }, i;\r\n function verb(n) { if (g[n]) i[n] = function (v) { return new Promise(function (a, b) { q.push([n, v, a, b]) > 1 || resume(n, v); }); }; }\r\n function resume(n, v) { try { step(g[n](v)); } catch (e) { settle(q[0][3], e); } }\r\n function step(r) { r.value instanceof __await ? Promise.resolve(r.value.v).then(fulfill, reject) : settle(q[0][2], r); }\r\n function fulfill(value) { resume(\"next\", value); }\r\n function reject(value) { resume(\"throw\", value); }\r\n function settle(f, v) { if (f(v), q.shift(), q.length) resume(q[0][0], q[0][1]); }\r\n}\r\n\r\nexport function __asyncDelegator(o) {\r\n var i, p;\r\n return i = {}, verb(\"next\"), verb(\"throw\", function (e) { throw e; }), verb(\"return\"), i[Symbol.iterator] = function () { return this; }, i;\r\n function verb(n, f) { i[n] = o[n] ? function (v) { return (p = !p) ? { value: __await(o[n](v)), done: n === \"return\" } : f ? f(v) : v; } : f; }\r\n}\r\n\r\nexport function __asyncValues(o) {\r\n if (!Symbol.asyncIterator) throw new TypeError(\"Symbol.asyncIterator is not defined.\");\r\n var m = o[Symbol.asyncIterator], i;\r\n return m ? m.call(o) : (o = typeof __values === \"function\" ? __values(o) : o[Symbol.iterator](), i = {}, verb(\"next\"), verb(\"throw\"), verb(\"return\"), i[Symbol.asyncIterator] = function () { return this; }, i);\r\n function verb(n) { i[n] = o[n] && function (v) { return new Promise(function (resolve, reject) { v = o[n](v), settle(resolve, reject, v.done, v.value); }); }; }\r\n function settle(resolve, reject, d, v) { Promise.resolve(v).then(function(v) { resolve({ value: v, done: d }); }, reject); }\r\n}\r\n\r\nexport function __makeTemplateObject(cooked, raw) {\r\n if (Object.defineProperty) { Object.defineProperty(cooked, \"raw\", { value: raw }); } else { cooked.raw = raw; }\r\n return cooked;\r\n};\r\n\r\nexport function __importStar(mod) {\r\n if (mod && mod.__esModule) return mod;\r\n var result = {};\r\n if (mod != null) for (var k in mod) if (Object.hasOwnProperty.call(mod, k)) result[k] = mod[k];\r\n result.default = mod;\r\n return result;\r\n}\r\n\r\nexport function __importDefault(mod) {\r\n return (mod && mod.__esModule) ? mod : { default: mod };\r\n}\r\n\r\nexport function __classPrivateFieldGet(receiver, privateMap) {\r\n if (!privateMap.has(receiver)) {\r\n throw new TypeError(\"attempted to get private field on non-instance\");\r\n }\r\n return privateMap.get(receiver);\r\n}\r\n\r\nexport function __classPrivateFieldSet(receiver, privateMap, value) {\r\n if (!privateMap.has(receiver)) {\r\n throw new TypeError(\"attempted to set private field on non-instance\");\r\n }\r\n privateMap.set(receiver, value);\r\n return value;\r\n}\r\n","import { Pipe, PipeTransform } from '@angular/core';\n\n@Pipe({ name: 'mapValues', pure: false })\nexport class MapValuesPipe implements PipeTransform {\n transform(map: Map<any, any>, args: any[] = null): any {\n return Array.from(map.values());\n }\n}\n","import { Pipe, PipeTransform } from '@angular/core';\nimport { TranslateService } from '@ngx-translate/core';\n\n@Pipe({\n name: 'translate',\n pure: false,\n })\n export class TranslatePipe implements PipeTransform {\n constructor(private translationService: TranslateService) {}\n transform(value: any, args?: any): any {\n return this.translationService.instant(value);\n }\n }\n","import { LOCATION_INITIALIZED } from '@angular/common';\nimport { HttpClient, HttpClientModule, HttpHeaders, HttpParams } from '@angular/common/http';\nimport { ModuleWithProviders } from '@angular/compiler/src/core';\nimport { APP_INITIALIZER, InjectionToken, Injector, NgModule } from '@angular/core';\nimport { TranslateModule, TranslateService } from '@ngx-translate/core';\nimport { user } from '@seniorsistemas/senior-platform-data';\nimport { CookieService } from 'ngx-cookie-service';\n\nexport const TranslationsConfig = new InjectionToken<ITranslationsConfig[]>('translationConfig');\nexport const USER_INFO = 'com.senior.token';\n\n@NgModule({\n imports: [HttpClientModule, TranslateModule.forChild()],\n providers: [CookieService]\n})\nexport class TranslationsModule {\n static forRoot(translationsConfigs: ITranslationsConfig[]): ModuleWithProviders {\n return {\n ngModule: TranslationsModule,\n providers: [\n {\n provide: APP_INITIALIZER,\n useFactory: factory,\n deps: [TranslateService, Injector, HttpClient, CookieService],\n multi: true\n },\n {\n provide: TranslationsConfig,\n useValue: translationsConfigs,\n multi: true\n }\n ]\n };\n }\n\n static forChild(translationsConfigs: ITranslationsConfig[]): ModuleWithProviders {\n return {\n ngModule: TranslationsModule,\n providers: [\n {\n provide: TranslationsConfig,\n useValue: translationsConfigs,\n multi: true\n }\n ]\n };\n }\n}\n\nexport interface ITranslationsConfig {\n domain: string;\n service: string;\n fallback: any;\n defaultsLanguages?: any;\n}\n\nexport function factory(translate: TranslateService, injector: Injector, http: HttpClient, cookieService: CookieService) {\n return () =>\n new Promise(resolve => {\n const locationInitialized = injector.get(LOCATION_INITIALIZED, Promise.resolve(null));\n\n locationInitialized.then(async () => {\n let locale = 'pt-BR';\n try {\n const configs = getFlatArray(injector.get(TranslationsConfig, Promise.resolve(null)));\n\n try {\n let userData = JSON.parse(cookieService.get(USER_INFO));\n if (!userData || Object.keys(userData).length === 0) {\n userData = await user.getUserData();\n }\n locale = userData.locale || 'pt-BR';\n } catch (ex) {\n console.warn('Unable to obtain user locale');\n }\n\n const fallback = configs\n .reduce((result: any, configs: ITranslationsConfig) => ({ ...result, ...configs.fallback }), {});\n const defaultsLanguages = configs\n .reduce((result: any, configs: ITranslationsConfig) => ({ ...result, ...configs.defaultsLanguages }), {});\n\n translate.setTranslation(locale, fallback);\n translate.setDefaultLang(locale);\n\n let fallbackByLocale = {};\n\n if (defaultsLanguages) {\n\n const languages: any = Object.keys(defaultsLanguages).map(key => {\n const language = {};\n language['locale'] = key.replace('_', '-');\n language['translation'] = defaultsLanguages[key];\n return language;\n }, []);\n\n let foundLocaleUser = languages.find((results: any) => results.locale === locale);\n\n if (!foundLocaleUser) {\n foundLocaleUser = languages.find((results: any) => {\n return results.locale.length === 2 && results.locale === locale.split('-')[0];\n });\n }\n\n if (foundLocaleUser) {\n fallbackByLocale = foundLocaleUser['translation'];\n }\n\n }\n\n const translationsPromises = configs.map((config: any) => getTranslationsRequest(config, locale));\n\n await Promise.all(translationsPromises).then(results => {\n results.forEach(file => {\n const usedFallback = translate['overriden'];\n \n if (usedFallback) {\n file['content'] && translate.setTranslation(locale, file['content'], true);\n translate.setTranslation(locale, fallbackByLocale, true);\n } else {\n translate.setTranslation(locale, fallbackByLocale, true);\n file['content'] && translate.setTranslation(locale, file['content'], true);\n }\n });\n\n return translate.use(locale).toPromise();\n });\n\n resolve();\n } catch (err) {\n console.warn('Error setting translations. Using local fallback.', err);\n translate.use(locale).toPromise().then(() => {\n resolve();\n });\n }\n });\n });\n\n function getTranslationsRequest({ domain, service }: ITranslationsConfig, language: string) {\n return new Promise(async resolve => {\n try {\n if (!domain && !service) {\n throw new Error(`domain and service not found`);\n }\n const params = new HttpParams()\n .set('domainName', domain)\n .set('serviceName', service)\n .set('format', 'FLAT_JSON');\n\n const headers = new HttpHeaders().set('Authorization', await user.getAuthHeader());\n const url = 'platform/translation_hub/queries/getTranslationBundle';\n const bundleFiles = await http.get(url, { headers, params }).toPromise().then((res: any) => res.bundleFiles);\n\n let languageBundle = language && bundleFiles.find((bundle: any) => bundle.language === language);\n let overriden = false;\n\n if (!languageBundle) {\n languageBundle = bundleFiles.find((bundle: any) => bundle.language === 'pt-BR');\n overriden = true;\n }\n\n if (!languageBundle) {\n return resolve({});\n }\n\n await http\n .get(languageBundle.url)\n .toPromise()\n .then((result: any) => {\n const translations = {\n overriden: overriden,\n content: result\n };\n resolve(translations);\n });\n } catch (err) {\n console.warn(`Error getting translation bundle for ${domain}/${service}. Using local fallback.`, err);\n resolve({});\n }\n });\n }\n\n function getFlatArray(array: any[]) {\n return array.reduce((result: any[], item: any) => {\n if (Array.isArray(item)) {\n return [...result, ...item];\n }\n return [...result, item];\n }, []);\n }\n}\n","export const fallback = {\n 'platform.filter_service.cancel': 'Cancelar',\n 'platform.filter_service.try': 'Tentar Novamente',\n 'platform.filter_service.actions': 'Ações',\n 'platform.filter_service.save': 'Salvar',\n 'platform.filter_service.filter': 'Filtrar',\n 'platform.filter_service.error_state':\n 'O serviço de filtro está indisponÃvel no momento e as informações apresentadas não são as mais recentes. Tente novamente mais tarde.',\n 'platform.filter_service.saved_filters_success': 'Filtros salvos com sucesso! Clique em \"Filtrar\" para visualizar o resultado.',\n 'platform.filter_service.saved_filters_error':\n 'Ocorreu um erro ao tentar salvar os filtros. Verifique os valores e tente novamente.',\n 'platform.filter_service.applied_filter_nochange': 'Não houve alterações no filtro.',\n 'platform.filter_service.applied_filter_change': 'Filtros aplicados com sucesso!',\n 'platform.filter_service.invalid_pattern': 'O valor não atende ao padrão especificado.',\n 'platform.filter_service.error_max_value': 'O valor excede o tamanho máximo especificado.',\n 'platform.filter_service.error_min_value': 'O valor é menor que o minÃmo especificado.',\n 'platform.filter_service.applied_filters_message': '{{totalActiveFilters}} filtros aplicados',\n 'platform.filter_service.applied_filter_message': '{{totalActiveFilters}} filtro aplicado',\n 'platform.filter_service.find_suggestions_error': 'Erro ao encontrar sugestões!',\n 'platform.filter_service.select': 'Selecionar',\n 'platform.filter_service.filters': 'Filtros',\n 'platform.filter_service.date_format' : 'dd/mm/yy',\n 'platform.filter_service.hour_format' : '24',\n 'platform.filter_service.clear': 'Limpar',\n 'platform.filter_service.today' : 'Hoje',\n 'platform.filter_service.name_january' : 'Janeiro',\n 'platform.filter_service.name_february' : 'Fevereiro',\n 'platform.filter_service.name_march' : 'Março',\n 'platform.filter_service.name_april' : 'Abril',\n 'platform.filter_service.name_may' : 'Maio',\n 'platform.filter_service.name_june' : 'Junho',\n 'platform.filter_service.name_july' : 'Julho',\n 'platform.filter_service.name_august' : 'Agosto',\n 'platform.filter_service.name_september' : 'Setembro',\n 'platform.filter_service.name_october' : 'Outubro',\n 'platform.filter_service.name_november' : 'Novembro',\n 'platform.filter_service.name_december' : 'Dezembro',\n 'platform.filter_service.short_january' : 'Jan',\n 'platform.filter_service.short_february' : 'Fev',\n 'platform.filter_service.short_march' : 'Mar',\n 'platform.filter_service.short_april' : 'Abr',\n 'platform.filter_service.short_may' : 'Mai',\n 'platform.filter_service.short_june' : 'Jun',\n 'platform.filter_service.short_july' : 'Jul',\n 'platform.filter_service.short_august' : 'Ago',\n 'platform.filter_service.short_september' : 'Set',\n 'platform.filter_service.short_october' : 'Out',\n 'platform.filter_service.short_november' : 'Nov',\n 'platform.filter_service.short_december' : 'Dez',\n 'platform.filter_service.name_sunday': 'Domingo',\n 'platform.filter_service.name_monday': 'Segunda',\n 'platform.filter_service.name_tuesday': 'Terça',\n 'platform.filter_service.name_wednesday': 'Quarta',\n 'platform.filter_service.name_thursday': 'Quinta',\n 'platform.filter_service.name_friday': 'Sexta',\n 'platform.filter_service.name_saturday': 'Sábado',\n 'platform.filter_service.min_sunday': 'D',\n 'platform.filter_service.min_monday': 'S',\n 'platform.filter_service.min_tuesday': 'T',\n 'platform.filter_service.min_wednesday': 'Q',\n 'platform.filter_service.min_thursday': 'Q',\n 'platform.filter_service.min_friday': 'S',\n 'platform.filter_service.min_saturday': 'S',\n 'platform.filter_service.short_sunday': 'Dom',\n 'platform.filter_service.short_monday': 'Seg',\n 'platform.filter_service.short_tuesday': 'Ter',\n 'platform.filter_service.short_wednesday': 'Qua',\n 'platform.filter_service.short_thursday': 'Qui',\n 'platform.filter_service.short_friday': 'Sex',\n 'platform.filter_service.short_saturday': 'Sab',\n 'platform.filter_service.yes': 'Sim',\n 'platform.filter_service.no': 'Não',\n 'platform.filter_service.search_empty_message': 'Nenhum resultado encontrado'\n};\n","const URL_PREFIX = 'platform/filter_service';\nexport const GET_FILTERS_URL = `${URL_PREFIX}/queries/getFilters`;\nexport const SAVE_FILTERS_URL = `${URL_PREFIX}/actions/saveUserFilters`;\nexport const SAVE_TICKED_FILTER_URL = `${URL_PREFIX}/actions/setTicketFilters`;\n","export const searchDisplayName = '$$__displayValue__';\nexport const searchKeyName = '$$__keyValue__';\n","import { HttpClient, HttpHeaders, HttpErrorResponse } from '@angular/common/http';\nimport { Injectable } from '@angular/core';\nimport { BehaviorSubject } from 'rxjs/BehaviorSubject';\n\nimport { GET_FILTERS_URL, SAVE_FILTERS_URL, SAVE_TICKED_FILTER_URL } from './constants';\nimport { Subject, Observable } from 'rxjs';\nimport { Filter } from '../models/filter';\nimport { FilterValue } from '../models/filter-value';\nimport { Context } from '../models/context';\nimport { map } from 'rxjs/operators';\nimport { TickedFilter } from '../models/ticked-filter';\nimport { searchDisplayName, searchKeyName } from '../shared/constants';\n\nexport interface TickedFilterResponse {\n ticket: string;\n}\n\nexport interface ContextsFiltersResponse {\n filters: Filter[];\n}\n\nexport interface IGetFiltersResponse {\n error?: boolean;\n message?: HttpErrorResponse;\n filters?: Filter[];\n applyFilter?: boolean;\n}\n\nexport interface ITickerFilterResponse {\n ticketFilter?: string;\n error?: boolean;\n message?: string;\n}\n\n@Injectable()\nexport class AdvancedFilterService {\n private filtersObservable = new Subject<IGetFiltersResponse>();\n private contextsObservable = new BehaviorSubject<Context[]>([]);\n private ticketFilterObservable = new Subject<ITickerFilterResponse>();\n destroy$ = new Subject();\n public ticketFilter: string;\n public visible: boolean;\n contextsObserver = this.contextsObservable.asObservable();\n filtersObserver = this.filtersObservable.asObservable();\n ticketFilterObserver = this.ticketFilterObservable.asObservable();\n\n constructor(private http: HttpClient) {\n this.contextsObservable.subscribe(contexts => contexts.length && this.getAndApplyFilters(contexts));\n }\n\n saveTickedFilters(filters: TickedFilter[]) {\n const requestBody = this.ticketFilter ? { filters, ticketFilter: this.ticketFilter } : { filters };\n this.http\n .post<TickedFilterResponse>(SAVE_TICKED_FILTER_URL, requestBody)\n .pipe(map(response => response.ticket))\n .subscribe(\n ticketFilter => {\n this.ticketFilter = ticketFilter;\n this.ticketFilterObservable.next({ ticketFilter });\n window.parent.postMessage({ message: 'advanced-filter:success', payload: ticketFilter }, '*');\n },\n err => {\n this.ticketFilterObservable.next({ error: true, message: err });\n window.parent.postMessage({ message: 'advanced-filter:error', payload: err }, '*');\n }\n );\n }\n\n addContexts(...contexts: Context[]): Observable<Context[]> {\n const currentContexts = this.contextsObservable.getValue();\n this.contextsObservable.next([...currentContexts, ...contexts]);\n return Observable.create(() => () => this.removeContexts(contexts));\n }\n\n private removeContexts(contexts: Context[]) {\n const allContexts = this.contextsObservable.getValue();\n const filteredContexts = allContexts.filter(context => contexts.indexOf(context) === -1);\n this.contextsObservable.next(filteredContexts);\n }\n\n saveFilters(filters: FilterValue[]) {\n return this.http.post(SAVE_FILTERS_URL, { filters });\n }\n\n searchFieldSuggestions(url: string, params: any, type: any) {\n const headers = new HttpHeaders({ 'Content-Type': 'application/json; charset=utf-8' });\n if (type === 'ENTITY') {\n return this.http.get(url, { headers });\n }\n return this.http.post(url, params, { headers });\n }\n\n public tryAgain(serviceContexts: Context[]) {\n this.getFilters(serviceContexts);\n }\n\n private getAndApplyFilters(serviceContexts: Context[]) {\n this.getFilters(serviceContexts, true);\n }\n\n private getFilters(serviceContexts: Context[], applyFilter?: boolean) {\n this.http\n .post<ContextsFiltersResponse>(GET_FILTERS_URL, { serviceContexts })\n .pipe(map(response => this.mapFilters(response.filters)))\n .subscribe(\n filters => this.filtersObservable.next({ filters, applyFilter }), //\n err => this.filtersObservable.next({ error: true, message: err })\n );\n }\n\n private mapFilters(filters: Filter[]): Filter[] {\n return filters.map(filter => {\n try {\n const value = filter.value && JSON.parse(filter.value);\n\n if (value && filter.search && filter.search.basicSearch && filter.search.basicSearch.output) {\n this.mapValues(value, filter.search.basicSearch.output.keyFields, filter.search.basicSearch.output.displayFields);\n } else if (value && filter.search && filter.search.entitySearch && filter.search.entitySearch.output) {\n this.mapValues(value, filter.search.entitySearch.output.keyFields, filter.search.entitySearch.output.displayFields);\n }\n\n if (value) {\n if (this.isMultiple(filter)) {\n const valueInText = JSON.stringify(value);\n\n if ((valueInText.startsWith('[{') && valueInText.endsWith('}]')) || valueInText.length <= 4) {\n filter.value = valueInText;\n } else {\n filter.value = JSON.stringify('');\n }\n } else {\n filter.value = JSON.stringify(value);\n }\n }\n } catch (ex) {\n console.error(`Global: filter ${filter.name} has value error. `, ex);\n filter.value = JSON.stringify('');\n }\n\n return filter;\n });\n }\n\n private isMultiple(filter: Filter): boolean {\n return (\n filter.type === 'SEARCH' &&\n filter.search &&\n ((filter.search.basicSearch && filter.search.basicSearch.output && filter.search.basicSearch.output.maxSelectedItems > 1) ||\n (filter.search.entitySearch && filter.search.entitySearch.output && filter.search.entitySearch.output.maxSelectedItems > 1))\n );\n }\n\n private mapValues(value: any, keyFields: string[], displayFields: string[]) {\n if (Array.isArray(value)) {\n value.forEach(e => {\n this.mapValue(e, keyFields, displayFields);\n });\n } else {\n this.mapValue(value, keyFields, displayFields);\n }\n }\n\n private mapValue(value: any, keyFields: string[], displayFields: string[]) {\n if (!value) {\n return;\n }\n\n const ids = [] as string[];\n const displays = [] as string[];\n\n keyFields.filter(e => value[e] !== undefined).forEach(e => ids.push(value[e]));\n displayFields.filter(e => value[e] !== undefined).forEach(e => displays.push(value[e]));\n\n if (ids.length > 0 && displays.length > 0) {\n value[searchKeyName] = ids.join(', ');\n value[searchDisplayName] = displays.join(', ');\n } else {\n value = [''];\n }\n }\n}\n","import { FilterType } from './filter-type';\nimport { Scope } from './scope';\nimport { EnumItem } from './enum-item';\nimport { DependsOn } from './depends-on';\nimport { Search } from './search';\n\nexport class Filter {\n constructor(\n public type: FilterType,\n public required: boolean,\n public label: string,\n public domain: string,\n public scope: Scope,\n public name: string,\n public contexts: string[],\n public services: string[],\n public value?: string,\n public enumItems?: EnumItem[],\n public defaultValue?: string,\n public search?: Search,\n public tabIndex?: number,\n public minValue?: number,\n public maxValue?: number,\n public dependsOn?: DependsOn[],\n public mask?: string,\n public regExp?: string\n ) {}\n}\n","export enum FilterType {\n STRING = 'STRING',\n BOOLEAN = 'BOOLEAN',\n INTEGER = 'INTEGER',\n DOUBLE = 'DOUBLE',\n DATE = 'DATE',\n DATETIME = 'DATETIME',\n TIME = 'TIME',\n MONEY = 'MONEY',\n ENUMERATION = 'ENUMERATION',\n SEARCH = 'SEARCH'\n}\n","export enum Scope {\n DOMAIN = 'DOMAIN',\n SERVICE = 'SERVICE'\n}\n","import { DependsOn } from './depends-on';\nimport { Observable, Subject } from 'rxjs';\nimport { FormControl } from '@angular/forms';\nimport { FilterType } from './filter-type';\n\nexport interface FormFilterConfig {\n name: string;\n domain: string;\n services: string[];\n value: any;\n defaultValue: any;\n dependsOn: DependsOn[];\n isMultiple: boolean;\n}\n\nexport class FormFilter {\n private _value: any;\n private _valueObserver = new Subject<any>();\n valueChanges: Observable<any> = this._valueObserver.asObservable();\n name: string;\n domain: string;\n contexts: string[];\n services: string[];\n childs: string[];\n dependsOn: DependsOn[];\n filterControl: FormControl;\n type: FilterType;\n isMultiple: boolean;\n defaultValue: any;\n\n constructor({ value, ...config }: FormFilterConfig) {\n this._value = value;\n Object.assign(this, config);\n }\n\n set value(value: any) {\n this._value = value;\n this._valueObserver.next(value);\n }\n\n get value() {\n return this._value;\n }\n}\n","import { FormGroup } from '@angular/forms';\nimport { Field } from '@seniorsistemas/angular-components';\n\nexport class TabView {\n fields: Field[] = [];\n form: FormGroup;\n name?: string;\n\n constructor(config: any) {\n this.form = new FormGroup({});\n Object.assign(this, config);\n }\n}\nexport class ContextTab extends TabView {\n activeFilters = 0;\n domain: string;\n\n get label() {\n return `${this.name} (${this.activeFilters})`;\n }\n}\n","export const FILTER_ID_SEPARATOR = ':';\n\nexport function getFilterId(domain: string, filterName: string) {\n return `${domain}${FILTER_ID_SEPARATOR}${filterName}`;\n}\n\nexport function getTabId(domain: string, contextId: string) {\n return `${domain}${FILTER_ID_SEPARATOR}${contextId}`;\n}\n","import { FilterType } from '../../models';\nconst moment = require('moment');\n\n/**\n *@description Necessary because of https://github.com/rollup/rollup/issues/670\n *\n * */\n\nconst { DATETIME, TIME, DATE } = FilterType;\n\nconst parsers = {\n [DATE]: (value: any) => dateParser(value, 'YYYY-MM-DD'),\n [TIME]: (value: any) => dateParser(value, 'HH:mm:ss'),\n [DATETIME]: (value: any) => dateParser(value)\n};\n\nexport function parseFilterValue(value: any, type: FilterType) {\n const parser = parsers[type];\n if (value !== undefined && value !== null && value !== '') {\n return parser ? parser(value) : value;\n }\n\n return value;\n}\n\nfunction dateParser(value: string, format?: string) {\n const date = moment(value);\n return format ? date.format(format) : date.format();\n}\n","export function jsonPath(object: Object, path: string): any {\n path = path.replace('$.', '');\n const allPaths = path.split('.');\n const currentPath = allPaths[0];\n const value = object[currentPath];\n allPaths.shift();\n\n if (allPaths.length) {\n return jsonPath(value, allPaths.join('.'));\n }\n return value;\n}\n","export const filterOperators = {\n 'contains': (attr: string, value: string) => `containing(${attr}, '${value}')`,\n '=': (attr: string, value: string) => `${attr} eq ${value}`,\n '!=': (attr: string, value: string) => `${attr} ne ${value}`,\n '>': (attr: string, value: string) => `${attr} gt ${value}`,\n '<': (attr: string, value: string) => `${attr} lt ${value}`,\n '>=': (attr: string, value: string) => `${attr} ge ${value}`\n};\n","import { FilterType, Search } from '../models';\nimport { searchKeyName } from '../shared/constants';\n\nexport * from './filter-id/index';\nexport * from './filter-value/index';\nexport * from './json-path';\nexport * from './filterOperators';\n\nexport function toUserFormat(value: any, type: FilterType) {\n let parsedValue;\n if (type !== FilterType.SEARCH || !Array.isArray(value)) {\n parsedValue = [(value === null || value === undefined) ? '' : value];\n } else if (Array.isArray(value)) {\n if (value.length) {\n parsedValue = value[0] === null ? [''] : value;\n } else {\n parsedValue = [''];\n }\n } else {\n parsedValue = value ? value : [''];\n }\n\n return JSON.stringify(parsedValue);\n}\n\nexport function toFilterFormat(value: any, type: FilterType) {\n let parsedValue;\n if (type !== FilterType.SEARCH) {\n parsedValue = [(value === null || value === undefined) ? '' : value];\n } else if (Array.isArray(value)) {\n /*\n Deve enviar para o backend o valor contido no keyValue em array.\n\n Exemplo:\n Quando tenho dois objetos selecionados [{1,'Base'},{2,'Other'}] deve enviar no padrão: [1,'Base'], [2,'Other']\n */\n parsedValue = [''];\n if (value !== null && value.length > 0 && value[0] !== '') {\n parsedValue = value.map(v => v[searchKeyName]);\n }\n } else {\n parsedValue = [value === null ? '' : value[searchKeyName]];\n }\n\n return JSON.stringify(parsedValue);\n}\n\nexport function fromJson(value: any, type: FilterType, isNotMultiple: boolean) {\n const parsedValue = JSON.parse(value);\n if (type !== FilterType.SEARCH || isNotMultiple) {\n return parsedValue[0];\n }\n\n return parsedValue;\n}\n\nexport function getSearchType(search: Search): any {\n return search.basicSearch ? search.basicSearch : search.entitySearch;\n}\n","const moment = require('moment');\nimport { FilterType, Filter, Search } from '../../models';\nimport { FormControl, Validators } from '@angular/forms';\nimport { getSearchType } from '..';\n\n/**\n *@description Necessary because of https://github.com/rollup/rollup/issues/670\n *\n * */\n\nconst { DATE, DATETIME, TIME } = FilterType;\n\nconst parsers = {\n [DATE]: (v: string) => dateParser(v),\n [DATETIME]: (v: string) => dateParser(v),\n [TIME]: (v: string) => dateParser(v, 'HH:mm:ss')\n};\n\nexport function parseFormValue(value: string, type: FilterType, search?: Search) {\n const parser = parsers[type];\n const parsedValue = JSON.parse(value);\n const isNotMultiple = search && getSearchType(search).output.maxSelectedItems === 1;\n\n let formValue;\n if ((type === FilterType.INTEGER || type === FilterType.DOUBLE || type === FilterType.MONEY) && parsedValue[0] === '') {\n formValue = null;\n } else if (type !== FilterType.SEARCH || isNotMultiple) {\n formValue = parsedValue[0];\n } else {\n formValue = parsedValue[0] ? parsedValue : [];\n }\n\n if (parser) {\n return parser(formValue);\n }\n\n return formValue;\n}\n\nexport function createFormControl({ minValue, maxValue, regExp, value, type, search }: Filter) {\n const validators = createValidators(minValue, maxValue, regExp);\n const formValue = parseFormValue(value, type, search);\n\n return new FormControl(formValue, { validators });\n}\n\nfunction createValidators(minValue: number, maxValue: number, regExp: string) {\n const { pattern, min, max } = Validators;\n const validators = [];\n\n regExp && validators.push(pattern(regExp));\n minValue !== undefined && validators.push(min(minValue));\n maxValue !== undefined && validators.push(max(maxValue));\n\n return validators;\n}\n\nfunction dateParser(value: string, format?: string): Date | string {\n return value !== null && value !== '' ? moment(value, format).toDate() : '';\n}\n","import { contains, equals } from 'ramda';\nimport { FilterType } from '../models';\nconst supportedTypes = [\n FilterType.STRING,\n FilterType.BOOLEAN,\n FilterType.INTEGER,\n FilterType.ENUMERATION,\n FilterType.TIME,\n FilterType.MONEY,\n FilterType.DATETIME,\n FilterType.DATE,\n FilterType.DOUBLE\n];\n\nconst operation = {\n '>': (value: number, otherValue: number) => {\n return value > otherValue;\n },\n '<': (value: number, otherValue: number) => {\n return value < otherValue;\n },\n '>=': (value: number, otherValue: number) => {\n return value >= otherValue;\n },\n '<=': (value: number, otherValue: number) => {\n return value <= otherValue;\n },\n 'contains': (value: any, otherValue: any[]) => {\n return contains(value, otherValue);\n },\n '=': (value: any, otherValue: any) => {\n if (typeof otherValue === 'number') {\n return equals(Number(value), otherValue);\n }\n return equals(value, otherValue);\n },\n '!=': (value: any, otherValue: any) => {\n if (typeof otherValue === 'number') {\n return !equals(Number(value), otherValue);\n }\n return !equals(value, otherValue);\n }\n};\n\nexport function compare(operator: string, value: any, otherValue: any) {\n const comparator = operation[operator];\n return comparator(value, otherValue);\n}\n\nexport function isValidOperator(operator: string) {\n return !!operation[operator];\n}\n\nexport function isSupportedType(type: FilterType) {\n return contains(type, supportedTypes);\n}\n","import { Injectable } from '@angular/core';\nimport { TranslateService } from '@ngx-translate/core';\n\nconst TRANSLATE_PREFIX = 'platform.filter_service';\n\n@Injectable()\nexport class CalendarOptionsService {\n constructor(private translate: TranslateService) {\n }\n public getOptions() {\n return {\n clear: this.translate.instant(`${TRANSLATE_PREFIX}.clear`),\n dateFormat: this.translate.instant(`${TRANSLATE_PREFIX}.date_format`),\n dayNames: [\n this.translate.instant(`${TRANSLATE_PREFIX}.name_sunday`),\n this.translate.instant(`${TRANSLATE_PREFIX}.name_monday`),\n this.translate.instant(`${TRANSLATE_PREFIX}.name_tuesday`),\n this.translate.instant(`${TRANSLATE_PREFIX}.name_wednesday`),\n this.translate.instant(`${TRANSLATE_PREFIX}.name_thursday`),\n this.translate.instant(`${TRANSLATE_PREFIX}.name_friday`),\n this.translate.instant(`${TRANSLATE_PREFIX}.name_saturday`)\n ],\n dayNamesMin: [\n this.translate.instant(`${TRANSLATE_PREFIX}.min_sunday`),\n this.translate.instant(`${TRANSLATE_PREFIX}.min_monday`),\n this.translate.instant(`${TRANSLATE_PREFIX}.min_tuesday`),\n this.translate.instant(`${TRANSLATE_PREFIX}.min_wednesday`),\n this.translate.instant(`${TRANSLATE_PREFIX}.min_thursday`),\n this.translate.instant(`${TRANSLATE_PREFIX}.min_friday`),\n this.translate.instant(`${TRANSLATE_PREFIX}.min_saturday`)\n ],\n dayNamesShort: [\n this.translate.instant(`${TRANSLATE_PREFIX}.short_sunday`),\n this.translate.instant(`${TRANSLATE_PREFIX}.short_monday`),\n this.translate.instant(`${TRANSLATE_PREFIX}.short_tuesday`),\n this.translate.instant(`${TRANSLATE_PREFIX}.short_wednesday`),\n this.translate.instant(`${TRANSLATE_PREFIX}.short_thursday`),\n this.translate.instant(`${TRANSLATE_PREFIX}.short_friday`),\n this.translate.instant(`${TRANSLATE_PREFIX}.short_saturday`)\n ],\n firstDayOfWeek: 0,\n hourFormat: this.translate.instant(`${TRANSLATE_PREFIX}.hour_format`),\n monthNames: [\n this.translate.instant(`${TRANSLATE_PREFIX}.name_january`),\n this.translate.instant(`${TRANSLATE_PREFIX}.name_february`),\n this.translate.instant(`${TRANSLATE_PREFIX}.name_march`),\n this.translate.instant(`${TRANSLATE_PREFIX}.name_april`),\n this.translate.instant(`${TRANSLATE_PREFIX}.name_may`),\n this.translate.instant(`${TRANSLATE_PREFIX}.name_june`),\n this.translate.instant(`${TRANSLATE_PREFIX}.name_july`),\n this.translate.instant(`${TRANSLATE_PREFIX}.name_august`),\n this.translate.instant(`${TRANSLATE_PREFIX}.name_september`),\n this.translate.instant(`${TRANSLATE_PREFIX}.name_october`),\n this.translate.instant(`${TRANSLATE_PREFIX}.name_november`),\n this.translate.instant(`${TRANSLATE_PREFIX}.name_december`),\n ],\n monthNamesShort: [\n this.translate.instant(`${TRANSLATE_PREFIX}.short_january`),\n this.translate.instant(`${TRANSLATE_PREFIX}.short_february`),\n this.translate.instant(`${TRANSLATE_PREFIX}.short_march`),\n this.translate.instant(`${TRANSLATE_PREFIX}.short_april`),\n this.translate.instant(`${TRANSLATE_PREFIX}.short_may`),\n this.translate.instant(`${TRANSLATE_PREFIX}.short_june`),\n this.translate.instant(`${TRANSLATE_PREFIX}.short_july`),\n this.translate.instant(`${TRANSLATE_PREFIX}.short_august`),\n this.translate.instant(`${TRANSLATE_PREFIX}.short_september`),\n this.translate.instant(`${TRANSLATE_PREFIX}.short_october`),\n this.translate.instant(`${TRANSLATE_PREFIX}.short_november`),\n this.translate.instant(`${TRANSLATE_PREFIX}.short_december`),\n ],\n today: this.translate.instant(`${TRANSLATE_PREFIX}.today`)\n };\n }\n}\n","import { HttpErrorResponse } from '@angular/common/http';\nimport { MessageService } from \"primeng/api\";\nimport { ChangeDetectorRef, Component, EventEmitter, HostListener, Input, OnDestroy, OnInit, Output } from '@angular/core';\nimport { BehaviorSubject, from, Subject } from 'rxjs';\nimport { filter as rxFilter, map, mergeMap, takeUntil, tap } from 'rxjs/operators';\n\nimport { Context, DependsOn, EntitySearchInput, EnumItem, Filter, FilterType, Scope } from '../../models';\nimport { ContextTab, TabView } from '../../models/tab-view';\nimport { AdvancedFilterService } from '../../services/advanced-filter.service';\nimport { FormFilter } from '../../models/form-filter';\nimport {\n filterOperators,\n fromJson,\n getFilterId,\n getSearchType,\n getTabId,\n jsonPath,\n parseFilterValue,\n toFilterFormat,\n toUserFormat\n} from '../../utils/index';\nimport { createFormControl } from '../../utils/form-field';\nimport { clone, equals } from 'ramda';\nimport { compare, isSupportedType, isValidOperator } from '../../utils/comparator';\n\nimport {\n AutocompleteField,\n CalendarField,\n RadioButtonField,\n CurrencyField,\n Field,\n FieldConfig,\n FieldType,\n NumberField,\n SelectField,\n TextField,\n RationButtonOption,\n CalendarFieldConfig\n} from '@seniorsistemas/angular-components';\n\nimport { searchDisplayName, searchKeyName } from '../../shared/constants';\nimport { TranslateService } from '@ngx-translate/core';\nimport { Message } from 'primeng/api';\nimport { CalendarOptionsService } from '../../services/calendar-options.service';\n\nconst TRANSLATE_PREFIX = 'platform.filter_service';\nconst TOAST_LIFE = 5000;\n\n@Component({\n selector: 's-app-form-filter',\n templateUrl: './form-filter.component.html',\n styleUrls: ['./form-filter.component.scss']\n})\nexport class FormFilterComponent implements OnInit, OnDestroy {\n destroy$ = new Subject();\n errorState: HttpErrorResponse;\n tabs: Map<string, ContextTab>;\n contexts: Context[] = [];\n formFilters: FormFilter[] = [];\n oldFormFilters: any[] = [];\n actualFormFilters: any[] = [];\n general = new TabView({ name: 'Geral' });\n totalFiltersActive = 0;\n isMobile = false;\n tabViewOrientation = 'left';\n error = false;\n\n errorMessages = {\n min: this.translate.instant(`${TRANSLATE_PREFIX}.error_min_value`),\n max: this.translate.instant(`${TRANSLATE_PREFIX}.error_max_value`),\n pattern: this.translate.instant(`${TRANSLATE_PREFIX}.invalid_pattern`)\n };\n\n @Input() showMessages = true;\n @Input() isModal = false;\n @Output() totalFiltersActiveOutput = new EventEmitter<number>();\n @Output() errorOutput = new EventEmitter<boolean>();\n @Output() showDialogOutput = new EventEmitter<boolean>();\n @Output() closeModalOutput = new EventEmitter();\n\n constructor(\n private filterService: AdvancedFilterService,\n public translate: TranslateService,\n private messageService: MessageService,\n private calendarOptionsService: CalendarOptionsService,\n private changeDetectorRef: ChangeDetectorRef\n ) { }\n\n @HostListener('window:resize', ['$event'])\n onResizeWindow(event: any) {\n const { innerWidth } = event.target;\n this.isMobile = innerWidth <= 640;\n this.tabViewOrientation = this.isMobile ? 'top' : 'left';\n }\n\n ngOnInit() {\n this.isMobile = innerWidth <= 640;\n this.tabViewOrientation = this.isMobile ? 'top' : 'left';\n this.subscribeContextsObservable();\n this.subscribeFiltersObservable();\n\n window.addEventListener('message', event => {\n const data = event.data;\n const message = data.message && data.message.split(':')[1];\n if (message === 'addContext') {\n this.filterService.addContexts(...data.payload);\n }\n });\n }\n\n ngOnDestroy() {\n this.destroy$.next(true);\n }\n\n hasChanges() {\n const keys = Object.keys(this.formFilters);\n const oldKeys = Object.keys(this.oldFormFilters);\n if (!oldKeys.length) {\n return true;\n }\n const filtered = keys.filter(key => {\n const currentValue = this.formFilters[key].value;\n const oldValue = this.oldFormFilters[key] && this.oldFormFilters[key].value;\n return !equals(currentValue, oldValue);\n });\n return filtered.length > 0;\n }\n\n onApplyFilters() {\n this.hasChanges() && this.closeModalOutput.emit();\n }\n\n public getFilters() {\n this.hasChanges() && this.filterService.tryAgain(this.contexts);\n }\n\n applyFilters(showToast = false) {\n if (this.hasChanges()) {\n this.showDialogOutput.emit(false);\n this.counterUpdate();\n const filters = this.getFiltersValues(this.formFilters);\n this.filterService.saveTickedFilters(filters);\n } else if (showToast) {\n const message = {\n key: 'filterServiceToastKey',\n severity: 'info',\n life: TOAST_LIFE,\n detail: this.translate.instant(`${TRANSLATE_PREFIX}.applied_filter_nochange`, { activeFilters: this.totalFiltersActive })\n };\n this.sendMessage(message);\n }\n this.oldFormFilters = clone(this.formFilters);\n }\n\n getDefaultValue(defaultValue: any, isMultiple: boolean) {\n if (defaultValue === undefined || (isMultiple && defaultValue[0] === '')) {\n return [];\n }\n\n return defaultValue;\n }\n\n clearFilters() {\n const keys = Object.keys(this.formFilters);\n keys.forEach(key => this.cleanFieldAndSetDefaultValue(key));\n }\n\n sendCloseMessage() {\n window.parent.postMessage(\n {\n message: 'dashboard:close-modal',\n payload: {\n modalName: 'advanced-filter-1'\n }\n },\n '*'\n );\n }\n\n sendMessage(message: Message) {\n if (this.showMessages) {\n this.messageService.add(message);\n } else {\n window.parent.postMessage(\n {\n message: 'dashboard:toastr',\n payload: {\n type: 'success',\n message: message.detail\n }\n },\n '*'\n );\n }\n }\n\n saveFilters() {\n const filters = this.parseToUserFilters(this.formFilters);\n const savedFilterSuccess = () => {\n const message = {\n key: 'filterServiceToastKey',\n severity: 'info',\n life: TOAST_LIFE,\n detail: this.translate.instant(`${TRANSLATE_PREFIX}.saved_filters_success`, { activeFilters: this.totalFiltersActive })\n };\n this.sendMessage(message);\n this.counterUpdate();\n };\n\n const savedFiltersError = () => {\n const message = {\n key: 'filterServiceToastKey',\n severity: 'error',\n life: TOAST_LIFE,\n detail: this.translate.instant(`${TRANSLATE_PREFIX}.saved_filters_error`, { activeFilters: this.totalFiltersActive })\n };\n this.sendMessage(message);\n };\n this.filterService\n .saveFilters(filters) //\n .subscribe(savedFilterSuccess, savedFiltersError);\n }\n\n private counterUpdate() {\n this.totalFiltersActive = this.countActiveFilters(this.tabs);\n this.totalFiltersActiveOutput.emit(this.totalFiltersActive);\n }\n\n private countActiveFilters(tabs: Map<string, ContextTab>) {\n let totalFiltersActive = 0;\n\n tabs.forEach(tabView => {\n const { value } = tabView.form;\n tabView.activeFilters = Object.keys(value).reduce((appliedFilters, key) => {\n const filterValue = value[key];\n const isArray = Array.isArray(filterValue);\n const isValidArray = isArray && filterValue.length > 0;\n\n if (isValidArray || (!isArray && filterValue)) {\n appliedFilters++;\n }\n\n return appliedFilters;\n }, 0);\n totalFiltersActive += tabView.activeFilters;\n });\n\n return totalFiltersActive;\n }\n\n private parseToUserFilters(filters: FormFilter[]) {\n const ids = Object.keys(filters);\n\n return ids.reduce((all, filterId) => {\n const { type, services, name, value, domain, contexts } = filters[filterId] as Filter;\n const filterValue = toUserFormat(value, type);\n\n const values = services.map(service => ({ name, service, value: filterValue, domain, contexts }));\n\n return [...all, ...values];\n }, []);\n }\n\n private getFiltersValues(filters: FormFilter[]) {\n const ids = Object.keys(filters);\n\n return ids.reduce((all, filterId) => {\n const { type, services, name, value, domain } = filters[filterId] as Filter;\n const filterValue = toFilterFormat(value, type);\n const values = services.map(service => ({ name, service, value: filterValue, domain }));\n\n return [...all, ...values];\n }, []);\n }\n\n private subscribeContextsObservable() {\n const { contextsObserver } = this.filterService;\n contextsObserver.pipe(takeUntil(this.destroy$)).subscribe((contexts: Context[]) => (this.contexts = contexts));\n }\n\n errorStateAction() {\n this.filterService.tryAgain(this.contexts);\n }\n\n private subscribeFiltersObservable() {\n const { filtersObserver } = this.filterService;\n\n filtersObserver\n .pipe(takeUntil(this.destroy$)) //\n .subscribe(({ filters, applyFilter, error, message }) => {\n this.errorOutput.emit(error);\n this.error = error;\n this.errorState = message;\n if (!error) {\n this.tabs = this.createTabs(filters);\n this.counterUpdate();\n this.setDependencies(this.formFilters);\n this.createChildArray();\n if (filters.length > 0 && applyFilter) {\n this.applyFilters();\n }\n }\n });\n }\n\n private setDependencies(filters: FormFilter[]) {\n const names = Object.keys(filters);\n const dependencies = from(names).pipe(\n map(key => filters[key] as FormFilter),\n rxFilter(({ dependsOn }) => dependsOn && dependsOn.length > 0),\n tap(({ dependsOn, domain, filterControl }) => {\n const invalidFilters = dependsOn\n .filter(dep => dep.required)\n .filter(dep => {\n const id = getFilterId(domain, dep.filterName);\n const formFilter = filters[id];\n const { value, type } = formFilter;\n const { comparator } = dep;\n if (comparator && isValidOperator(comparator.operator) && isSupportedType(type)) {\n const fieldValue = parseFilterValue(value, type);\n return !compare(comparator.operator, comparator.value, fieldValue);\n }\n return dep.required ? !formFilter.value : formFilter.value;\n });\n\n if (invalidFilters.length > 0) {\n filterControl.disable();\n }\n }),\n map(({ domain, dependsOn, filterControl }) => ({ domain, dependsOn, filterControl }))\n );\n\n dependencies.subscribe(({ dependsOn, domain, filterControl }) =>\n from(dependsOn)\n .pipe(\n rxFilter(dep => dep.required),\n map(({ filterName }) => getFilterId(domain, filterName)),\n map(filterId => filters[filterId] as FormFilter),\n mergeMap(formFilter => from(formFilter.valueChanges)),\n map(val => {\n const comparation = dependsOn.every(dep => {\n const filterId = getFilterId(domain, dep.filterName);\n if (this.formFilters[filterId]) {\n const type = this.formFilters[filterId].type;\n const { comparator } = dep;\n if (comparator && isValidOperator(comparator.operator) && isSupportedType(type)) {\n const value = parseFilterValue(val, type);\n return compare(comparator.operator, comparator.value, value);\n }\n return true;\n }\n });\n return !this.IsEmpty(val) && comparation ? 'enable' : 'disable';\n })\n )\n .subscribe(status => filterControl[status]())\n );\n }\n\n private addGeneralField(filter: Filter) {\n const { name, domain, type } = filter;\n const controlName = getFilterId(domain, name);\n const fieldControl = createFormControl(filter);\n\n fieldControl.valueChanges\n .pipe(\n takeUntil(this.destroy$),\n map(v => parseFilterValue(v, type)),\n tap(value => (this.formFilters[controlName].value = value))\n ) //\n .subscribe(val =>\n this.tabs.forEach(tab => {\n const control = tab.form.controls[name];\n if (control && tab.domain === domain) {\n control.setValue(val, { emitEvent: false });\n }\n })\n );\n\n const newFilter = { ...filter, ...{ name: controlName } };\n const newField = this.createField(newFilter);\n this.general.form.addControl(controlName, fieldControl);\n this.general.fields.push(newField);\n }\n\n /*\n * Verifica os contextos de cada filtro, caso todos os contextos foram informados:\n * @return true\n * Caso não tenha nenhum contexto, considera-se por padrão que é todos:\n * @return true\n */\n private containsAllContexts(myContexts: string[]) {\n if (!myContexts.length) {\n return true;\n }\n const allContexts = this.contexts.map(data => data.contextId);\n return equals(myContexts.sort(), allContexts.sort());\n }\n\n /**\n *\n * @todo Refatorar. O método possui muitas responsabilidades\n */\n private createTabs(filters: Filter[]) {\n return filters.reduce((tabs, filter) => {\n const { domain, services, name, type, scope, contexts, dependsOn, value, search, defaultValue } = filter;\n const isNotMultiple = search && getSearchType(search).output.maxSelectedItems === 1;\n const field = this.createField(filter);\n const filterId = getFilterId(domain, name);\n const filterConfig = {\n domain,\n contexts,\n services,\n name,\n dependsOn,\n value: fromJson(value, type, isNotMultiple),\n type,\n isMultiple: !isNotMultiple,\n defaultValue: fromJson(defaultValue, type, isNotMultiple)\n };\n this.formFilters[filterId] = new FormFilter(filterConfig);\n const formFilter = this.formFilters[filterId];\n if (scope === Scope.DOMAIN && this.containsAllContexts(contexts)) {\n this.addGeneralField(filter);\n }\n\n contexts.forEach(contextId => {\n const tabId = getTabId(domain, contextId);\n const fieldControl = createFormControl(filter);\n\n if (!tabs.has(tabId)) {\n const { contextLabel } = this.contexts.find(context => context.contextId === contextId);\n const tab = new ContextTab({ domain, name: contextLabel });\n tabs.set(tabId, tab);\n }\n\n fieldControl.valueChanges\n .pipe(takeUntil(this.destroy$)) //\n .subscribe((val: any) => this.updateFilterValue(tabId, name, val, domain, type));\n\n const contextTab = tabs.get(tabId);\n\n contextTab.fields.push(field);\n contextTab.form.addControl(filter.name, fieldControl);\n\n if (!formFilter.filterControl) {\n formFilter.filterControl = fieldControl;\n }\n });\n\n return tabs;\n }, new Map<string, ContextTab>());\n }\n\n private updateFilterValue(tabId: string, filterName: string, value: any, domain: string, type: FilterType) {\n const controlOpts = { emitEvent: false };\n const fieldValue = parseFilterValue(value, type);\n const filterId = getFilterId(domain, filterName);\n const generalFieldControl = this.general.form.controls[filterId];\n\n this.tabs.forEach(({ form }, key) => {\n const control = form.controls[filterName];\n\n if (tabId !== key && control) {\n control.setValue(value, controlOpts);\n }\n });\n const { childs } = this.formFilters[filterId];\n childs && childs.forEach((child: any) => this.cleanFieldAndSetDefaultValue(child.filter.key));\n generalFieldControl && generalFieldControl.setValue(value, controlOpts);\n this.formFilters[filterId].value = fieldValue;\n }\n\n private cleanFieldAndSetDefaultValue(key: string) {\n const { isMultiple, defaultValue, filterControl, type } = this.formFilters[key] as FormFilter;\n const finalValue = this.getDefaultValue(defaultValue, isMultiple);\n\n if (filterControl) {\n if (type === 'DATE' || (type === 'SEARCH' && isMultiple)) {\n filterControl.setValue(finalValue);\n }\n if (type === 'INTEGER' || type === 'DOUBLE' || type === 'MONEY') {\n finalValue === '' ? filterControl.setValue(null) : filterControl.setValue(finalValue);\n } else {\n filterControl.setValue(finalValue, { onlySelf: true });\n }\n }\n }\n\n private createChildArray() {\n const keys = Object.keys(this.formFilters);\n keys.forEach(key => {\n const { dependsOn, domain } = this.formFilters[key];\n dependsOn.forEach((field: any) => {\n const filterId = getFilterId(domain, field.filterName);\n if (this.formFilters[filterId]) {\n if (!this.formFilters[filterId].childs) {\n this.formFilters[filterId].childs = [];\n }\n this.formFilters[filterId].childs.push({ filter: { key, required: field.required } });\n }\n });\n });\n }\n\n private createField(filter: Filter): Field {\n const { name, label, enumItems, type, mask } = filter;\n const translatedEnumItems =\n enumItems && enumItems.map((item: EnumItem) => ({ label: this.translate.instant(item.label), value: item.value }));\n const field = { name, label: this.translate.instant(label), placeholder: '' };\n\n const creators = {\n [FilterType.STRING]: () => new TextField({ ...field, mask: mask ? () => mask : null, type: FieldType.String }),\n [FilterType.MONEY]: () => new CurrencyField({ ...field, type: FieldType.Money }),\n [FilterType.BOOLEAN]: () => this.createRadioButton({ ...field }),\n [FilterType.DATE]: () => this.createCalendar({ ...field, type: FieldType.Date }),\n [FilterType.DATETIME]: () => this.createCalendar({ ...field, type: FieldType.DateTime }),\n [FilterType.TIME]: () => this.createCalendar({ ...field, type: FieldType.Time }),\n [FilterType.ENUMERATION]: () =>\n new SelectField({\n ...field,\n placeholder: this.translate.instant('platform.filter_service.select'),\n options: [...translatedEnumItems] as any,\n type: FieldType.Enum\n }),\n [FilterType.INTEGER]: () =>\n new NumberField({\n ...field,\n numberLocaleOptions: this.optionsInteger(),\n mask: mask ? () => mask : null,\n type: FieldType.Integer\n }),\n [FilterType.DOUBLE]: () => new CurrencyField({ ...field, type: FieldType.Double }),\n [FilterType.SEARCH]: () => this.createAutocompleteField(field, filter)\n };\n\n return creators[type]();\n }\n\n private createRadioButton(field: FieldConfig) {\n const options = [\n { label: this.translate.instant(`${TRANSLATE_PREFIX}.yes`), value: true },\n { label: this.translate.instant(`${TRANSLATE_PREFIX}.no`), value: false }\n ] as RationButtonOption[];\n\n return new RadioButtonField({ ...field, type: FieldType.Radio, options });\n }\n\n private createCalendar(config: CalendarFieldConfig) {\n const calendar = new CalendarField(config);\n calendar.calendarLocaleOptions = this.calendarOptionsService.getOptions();\n if (!this.isModal) calendar.appendTo = 'body';\n return calendar;\n }\n\n private createAutocompleteField(field: FieldConfig, { dependsOn, search, domain, name }: Filter) {\n const suggestionsObservable = new BehaviorSubject<any[]>([]);\n const { queryParam } = getSearchType(search).input;\n const { displayFields, keyFields, resultDataJsonPath, displayFieldConcatToken, maxSelectedItems } = getSearchType(search).output;\n const filterId = getFilterId(domain, name);\n const suggestionsError = (messageError?: string) => {\n const messageDetail = messageError ? messageError : this.translate.instant(`${TRANSLATE_PREFIX}.find_suggestions_error`, { activeFilters: this.totalFiltersActive })\n const message = {\n key: 'filterServiceToastKey',\n severity: 'error',\n life: TOAST_LIFE,\n detail: messageDetail\n };\n this.sendMessage(message);\n };\n const onSearch = (val: string) => {\n const params = { [queryParam]: val };\n dependsOn && Object.assign(params, this.getDependenciesValues(dependsOn, domain));\n\n const searchUrl =\n search && search.type === 'ENTITY'\n ? this.getEntitySearchUrl(search.entitySearch.input, val, dependsOn)\n : getSearchType(search).input.url;\n\n this.filterService\n .searchFieldSuggestions(searchUrl, params, search.type)\n .pipe(\n map(response => jsonPath(response, resultDataJsonPath)),\n map((suggestions: any[]) => this.addSuggestionFields(suggestions, displayFields, keyFields, displayFieldConcatToken, filterId))\n )\n .subscribe(result => {\n suggestionsObservable.next(result);\n this.changeDetectorRef.detectChanges();\n }, (error) => {\n let messageError = undefined\n if (error && error.error.message) messageError = error.error.message\n suggestionsError(messageError)\n });\n };\n\n return new AutocompleteField({\n ...field,\n onSearch,\n appendTo: 'body',\n suggestionsObservable,\n displayField: searchDisplayName,\n dataKey: searchKeyName,\n multiple: maxSelectedItems > 1,\n size: { lg: 12, md: 12, xl: 12 },\n emptyMessage: this.translate.instant(`${TRANSLATE_PREFIX}.search_empty_message`)\n });\n }\n\n private getEntitySearchUrl(search: EntitySearchInput, value: string, dependsOn: DependsOn[]) {\n const { attributes, domainName, entityName, serviceName } = search;\n const url = `${domainName}/${serviceName}/entities/${entityName}/?filter=`;\n const filters: any = attributes.map(attr => filterOperators[attr.comparator](attr.name, value));\n\n dependsOn &&\n dependsOn.forEach(obj => {\n const filterId = getFilterId(domainName, obj.filterName);\n const fieldValue = this.formFilters[filterId].value[searchKeyName];\n filters.push(`${obj.entityAttribute} eq '${fieldValue}'`);\n });\n\n // O regex apenas seleciona as virgulas ignorando as que estiverem dentro do ()\n return url.concat(filters).replace(/[,]+(?![^(]*[)])/g, ` ${search.operator} `);\n }\n\n private addSuggestionFields(suggestions: any[], displayFields: string[], keyFields: string[], separator: string, filterId: string) {\n const addValue = (acc: string, value: any, token: string) => (acc ? `${acc}${token}${value}` : value);\n\n const result = suggestions.map(suggestion => ({\n ...suggestion,\n [searchDisplayName]: displayFields.reduce((value, display) => {\n return addValue(value, this.translate.instant(suggestion[display]), separator);\n }, ''),\n [searchKeyName]: keyFields.reduce((value, key) => addValue(value, suggestion[key], ', '), '')\n }));\n this.formFilters[filterId].invalidValue = result.length === 0;\n\n return result.filter(item => {\n const { value } = this.formFilters[filterId];\n if (Array.isArray(value)) {\n const index = value.findIndex((i: any) => i.$$__keyValue__ === item.$$__keyValue__);\n if (index === -1) {\n return item;\n }\n } else {\n return item;\n }\n });\n }\n\n private getDependenciesValues(dependencies: DependsOn[], domain: string) {\n return dependencies.reduce((params, { filterName }) => {\n const filterId = getFilterId(domain, filterName);\n if (this.formFilters[filterId]) {\n const { value, type } = this.formFilters[filterId];\n if (type === 'ENUMERATION') {\n params[filterName] = value;\n } else {\n if (Array.isArray(value)) {\n params[filterName] = value.map(arr => arr[searchKeyName]);\n } else {\n params[filterName] = value ? value[searchKeyName] : [''];\n }\n }\n this.IsEmpty(params[filterName]) && delete params[filterName];\n return params;\n }\n }, {});\n }\n\n /*\n * Verifica se o valor informado é falso, em arrays, é verificado cada item\n */\n private IsEmpty(value: any) {\n return Array.isArray(value) ? value.every(data => !data) : !value;\n }\n\n /**\n * Return format to specify for integer type field\n */\n private optionsInteger() {\n return { currencySymbol: '', decimalSeparator: '', thousandsSeparator: '' };\n }\n}\n","import { Component, HostListener, Input, OnDestroy, OnInit, ViewChild, ViewEncapsulation } from '@angular/core';\nimport { NavigationEnd, Router } from '@angular/router';\nimport { TranslateService } from '@ngx-translate/core';\nimport { Subscription } from 'rxjs';\nimport { FormFilterComponent } from '../form-filter/form-filter.component';\n\nconst TRANSLATE_PREFIX = 'platform.filter_service';\n\n@Component({\n selector: 's-advanced-filter',\n templateUrl: './advanced-filter.component.html',\n styleUrls: ['./advanced-filter.component.scss'],\n encapsulation: ViewEncapsulation.None\n})\nexport class AdvancedFilterComponent implements OnInit, OnDestroy {\n @Input() labelButton = 'Filters';\n @Input() onlyContent = false;\n @Input() hideButtons = false;\n @Input() canOpenFilter = true;\n @Input() showActiveFiltersCountBadge = true;\n @Input() filterAndSave = false;\n\n subscriptions: Subscription[] = [];\n\n isMobile = false;\n tabViewOrientation = 'left';\n totalFiltersActive = 0;\n showDialog = false;\n error = false;\n\n @ViewChild(FormFilterComponent)\n modalComponent: FormFilterComponent;\n\n mobileButtonActions = [\n { id: 'save', label: this.translate.instant('save'), command: () => this.modalComponent.saveFilters() },\n { id: 'clear', label: this.translate.instant('clear'), command: () => this.modalComponent.clearFilters() }\n ];\n\n constructor(public translate: TranslateService, private router: Router) {}\n\n ngOnInit() {\n this.isMobile = innerWidth <= 640;\n this.tabViewOrientation = this.isMobile ? 'top' : 'left';\n\n const sub = this.router.events.subscribe(e => {\n if (e instanceof NavigationEnd) {\n this.modalComponent.getFilters();\n }\n });\n\n this.subscriptions.push(sub);\n }\n\n ngOnDestroy() {\n this.subscriptions.forEach(v => v.unsubscribe());\n }\n\n @HostListener('window:resize', ['$event'])\n onResizeWindow(event: any) {\n const { innerWidth } = event.target;\n this.isMobile = innerWidth <= 640;\n this.tabViewOrientation = this.isMobile ? 'top' : 'left';\n }\n\n get appliedFiltersTooltip() {\n return this.totalFiltersActive > 1\n ? this.translate.instant(`${TRANSLATE_PREFIX}.applied_filters_message`, { totalActiveFilters: this.totalFiltersActive })\n : this.translate.instant(`${TRANSLATE_PREFIX}.applied_filter_message`, { totalActiveFilters: this.totalFiltersActive });\n }\n\n onError(event: boolean) {\n this.error = event;\n }\n\n saveFilters() {\n this.modalComponent.saveFilters();\n }\n\n clearFilters() {\n this.modalComponent.clearFilters();\n }\n\n close() {\n this.modalComponent.getFilters();\n window.parent.postMessage(\n {\n message: 'dashboard:close-modal',\n payload: {\n modalName: 'advanced-filter-1'\n }\n },\n '*'\n );\n }\n\n applyFilters() {\n if (this.modalComponent.hasChanges()) {\n this.showDialog = false;\n }\n\n if (this.filterAndSave) {\n this.modalComponent.saveFilters();\n }\n\n this.modalComponent.applyFilters(true);\n }\n\n onApplyFilters() {\n if (this.filterAndSave) {\n this.modalComponent.saveFilters();\n }\n\n this.modalComponent.onApplyFilters();\n }\n\n toggleDialog() {\n this.showDialog = !this.showDialog;\n }\n\n updateTotalFiltersActive(event: number) {\n this.totalFiltersActive = event;\n }\n}\n","import { NgModule } from '@angular/core';\nimport { CommonModule } from '@angular/common';\nimport { FormsModule, ReactiveFormsModule } from '@angular/forms';\n\nimport { ButtonModule as PrimeNGButtonModule } from 'primeng/button';\nimport { DialogModule } from 'primeng/dialog';\nimport { TabViewModule } from 'primeng/tabview';\nimport { ToastModule } from 'primeng/toast';\nimport { TooltipModule } from 'primeng/tooltip';\nimport { MessageService } from \"primeng/api\";\nimport { DynamicFormModule, ButtonModule, EmptyStateModule, LocaleService } from '@seniorsistemas/angular-components';\n\nimport { MapValuesPipe } from './pipes/map-values.pipe';\nimport { TranslatePipe } from './pipes/translate.pipe';\nimport { TranslationsModule } from './../translations/translations.module';\nimport { fallback } from './locale/fallback';\nimport { TranslateService } from '@ngx-translate/core';\nimport { AdvancedFilterService } from './services/advanced-filter.service';\nimport { AdvancedFilterComponent } from './components/advanced-filter/advanced-filter.component';\nimport { FormFilterComponent } from './components/form-filter/form-filter.component';\nimport { CalendarOptionsService } from './services/calendar-options.service';\n\nexport class AppRoutingModule {}\n@NgModule({\n imports: [\n DialogModule,\n ButtonModule,\n PrimeNGButtonModule,\n TabViewModule,\n CommonModule,\n FormsModule,\n ReactiveFormsModule,\n DynamicFormModule,\n ToastModule,\n EmptyStateModule,\n TooltipModule,\n TranslationsModule.forChild([{domain: 'platform', service: 'filter_service', fallback}]),\n ],\n providers: [AdvancedFilterService, LocaleService, MessageService, TranslateService, CalendarOptionsService],\n declarations: [AdvancedFilterComponent, FormFilterComponent, MapValuesPipe, TranslatePipe],\n exports: [AdvancedFilterComponent, FormFilterComponent]\n})\nexport class AdvancedFilterModule {}\n","import { Injectable } from '@angular/core';\nimport { HttpInterceptor, HttpHandler, HttpRequest, HttpEvent, HttpResponse } from '@angular/common/http';\nimport { Observable } from 'rxjs';\nimport { map } from 'rxjs/operators';\nconst jc = require('json-cycle');\n\n@Injectable({\n providedIn: 'root',\n})\nexport class CyclicJsonInterceptor implements HttpInterceptor {\n public intercept(req: HttpRequest<any>, next: HttpHandler): Observable<HttpEvent<any>> {\n if (req.body instanceof Blob === false && req.body instanceof FormData === false) {\n req = req.clone({ body: jc.decycle(req.body) });\n }\n return next.handle(req).pipe(\n map((event: HttpEvent<any>) => {\n if (event instanceof HttpResponse) {\n event = event.clone({ body: jc.retrocycle(event.body) });\n }\n return event;\n })\n );\n }\n}\n","import { NgModule } from '@angular/core';\nimport { HttpClientModule, HTTP_INTERCEPTORS } from '@angular/common/http';\nimport { CyclicJsonInterceptor } from './cyclic-json-interceptor.service';\n\n@NgModule({\n imports: [HttpClientModule],\n providers: [{ provide: HTTP_INTERCEPTORS, useClass: CyclicJsonInterceptor, multi: true }]\n})\nexport class CyclicJsonInterceptorModule {}\n","import { service } from '@seniorsistemas/senior-platform-data';\nimport { Injectable } from '@angular/core';\nimport { Observable, defer, from } from 'rxjs';\n\n@Injectable()\nexport class RestUrl {\n get(): Observable<string> {\n return defer(() => from(service.getRestUrl()));\n }\n}\n","import { service } from '@seniorsistemas/senior-platform-data';\nimport { Injectable } from '@angular/core';\nimport { Observable, defer, from } from 'rxjs';\n\n@Injectable()\nexport class XServicesUrl {\n\n get(): Observable<string> {\n return defer(() => {\n const url = service.getXServicesUrl();\n return from(url);\n });\n }\n\n}\n","import { Injectable } from '@angular/core';\nimport { HttpInterceptor as AngularHttpInterceptor, HttpHandler, HttpRequest, HttpEvent } from '@angular/common/http';\nimport { user } from '@seniorsistemas/senior-platform-data';\nimport { Observable, forkJoin, defer, from } from 'rxjs';\nimport { mergeMap } from 'rxjs/operators';\n\nimport { RestUrl } from './rest-url.service';\nimport { XServicesUrl } from './x-services-url.service';\n\n@Injectable()\nexport class HttpInterceptor implements AngularHttpInterceptor {\n\n constructor(private readonly restUrl: RestUrl, private readonly xServicesUrl: XServicesUrl) {}\n\n public intercept(originalReq: HttpRequest<any>, next: HttpHandler): Observable<HttpEvent<any>> {\n if (!originalReq.url.includes(`://`)) {\n const getAuthHeader = defer(() => from(user.getAuthHeader()));\n if (/^\\/?[^\\/]+\\/[^\\/]+\\/api\\/(?:latest|v\\d+)\\/.+$/g.test(originalReq.url)) {\n const getXServicesUrl = this.xServicesUrl.get();\n return forkJoin([getXServicesUrl, getAuthHeader]).pipe(\n mergeMap((values: any) => {\n const [xUrl, authHeader] = values;\n return this.injectBaseUrl(originalReq, next, xUrl, authHeader);\n })\n );\n }\n const getRestUrl = this.restUrl.get();\n return forkJoin([getRestUrl, getAuthHeader]).pipe(\n mergeMap((values: any) => {\n const [bridgeUrl, authHeader] = values;\n return this.injectBaseUrl(originalReq, next, bridgeUrl, authHeader);\n })\n );\n }\n return next.handle(originalReq);\n }\n\n private injectBaseUrl(originalReq: HttpRequest<any>, next: HttpHandler,\n baseUrl: string, authorization: string): Observable<HttpEvent<any>> {\n const request = originalReq.clone({\n url: baseUrl + originalReq.url,\n headers: originalReq.headers.set(`Authorization`, authorization)\n });\n return next.handle(request);\n }\n\n}\n","import { NgModule } from '@angular/core';\nimport { HttpClientModule, HTTP_INTERCEPTORS } from '@angular/common/http';\n\nimport { RestUrl } from './rest-url.service';\nimport { XServicesUrl } from './x-services-url.service';\nimport { HttpInterceptor } from './http-interceptor.service';\n\n@NgModule({\n imports: [HttpClientModule],\n providers: [RestUrl, XServicesUrl, { provide: HTTP_INTERCEPTORS, useClass: HttpInterceptor, multi: true }]\n})\nexport class HttpInterceptorModule {}\n","import { InjectionToken } from '@angular/core';\n\nexport const RESOURCES = new InjectionToken<Resources>('RESOURCES');\nexport const ENVIRONMENT = new InjectionToken<Environment>('ENVIRONMENT');\nexport type Resources = Resource[];\n\nexport interface Permission {\n resource: string;\n action: string;\n authorized: boolean;\n owner: boolean;\n resourceFilters: string[];\n}\n\nexport interface Result {\n permissions: Permission[];\n authorized: boolean;\n}\n\nexport class Resource {\n name: string;\n actions: string[];\n uri?: string;\n redirectToError ? = false;\n actionsToCheck?: string[];\n entity?: boolean;\n}\n\nexport class Environment {\n domain?: string;\n service?: string;\n ignorePermissions: boolean;\n}\n","import { HttpClient } from '@angular/common/http';\nimport { Inject, Injectable } from '@angular/core';\nimport { Router } from '@angular/router';\nimport { TranslateService } from '@ngx-translate/core';\nimport { MessageService } from \"primeng/api\";\nimport { from, Observable, of, throwError } from 'rxjs';\nimport { catchError, map } from 'rxjs/operators';\nimport { Environment, ENVIRONMENT, Permission, Resource, Resources, RESOURCES, Result } from './permissions.config';\n\nexport let promise: Promise<any>;\n\n@Injectable({\n providedIn: 'root'\n})\nexport class PermissionsService {\n private checkedPermissions: Permission[] = [];\n private actionUrl = 'platform/authorization/queries';\n\n constructor(\n @Inject(RESOURCES) private readonly resources: Resources,\n @Inject(ENVIRONMENT) private readonly environment: Environment,\n private readonly http: HttpClient,\n private readonly router: Router,\n private readonly messageService: MessageService,\n private readonly translate: TranslateService\n ) {}\n\n // v2\n checkAccess(resources: Resource[]): Observable<any> {\n const permissions: any[] = [];\n\n resources.forEach(rec => {\n rec.actions.forEach(action => {\n if (!rec.uri) {\n const resource = this.getUriByResourceName(rec.name, rec.entity);\n rec.uri = resource;\n }\n permissions.push({ action, resource: rec.uri });\n });\n });\n\n return this.http.post(`${this.actionUrl}/checkAccess`, { includeFilters: true, permissions }).pipe(\n map(({ permissions: checkedPermissions }: Result) => {\n this.checkedPermissions = [...this.checkedPermissions, ...checkedPermissions];\n\n const values = {};\n\n if (this.shouldRedirectToForbiddenPage(resources, checkedPermissions)) {\n this.router.navigate(['error', 403]);\n return throwError('forbidden');\n }\n\n checkedPermissions.forEach(permission => {\n const resource = resources.find(res => res.uri === permission.resource);\n const { name } = resource;\n\n values[name] = values[name] || {};\n values[name][permission.action] = permission.authorized;\n values[name][permission.action.toLowerCase()] = permission.authorized;\n\n if (permission.resourceFilters && permission.resourceFilters.length) {\n if (!values[name]['resourceFilters']) {\n values[name]['resourceFilters'] = [];\n }\n\n permission.resourceFilters.forEach((resourceFilter) => {\n values[name]['resourceFilters'].push(resourceFilter);\n });\n }\n });\n\n return values;\n })\n );\n }\n\n // v1\n get(resource: string = '') {\n if (!promise) {\n promise = this.getPermissions();\n }\n return from(promise).pipe(\n map((permissions: Permission[]) => {\n this.checkedPermissions = permissions;\n\n if (resource) {\n const resourceKey = Object.keys(permissions).find(key => key.toLowerCase() === resource.toLowerCase());\n return permissions[resourceKey];\n }\n return permissions;\n }),\n catchError((err: any) => {\n promise = undefined;\n this.messageService.add({\n severity: 'error',\n summary: this.translate.instant('permission_error_summary'),\n detail: this.translate.instant('permission_error_detail')\n });\n\n return of(this.getPermissionObject(false));\n })\n );\n }\n\n isAuthorized(resourceName: string, action: string, isEntity?: boolean): boolean {\n if (!this.checkedPermissions.length) {\n throwError('\\'Permissions\\' are not defined. You should call \\'get\\' or \\'checkAccess\\' method first.');\n }\n\n const resourceUri = this.getUriByResourceName(resourceName, isEntity);\n\n const permissionsOfResource = this.checkedPermissions.filter(perm => perm.resource === resourceUri);\n const permissionOfAction = permissionsOfResource.find(permRec => permRec.action.toLowerCase() === action.toLowerCase());\n\n return permissionOfAction && permissionOfAction.authorized;\n }\n\n private getUriByResourceName(resourceName: string, isEntity?: boolean): string {\n const { domain, service } = this.environment;\n\n if (!domain || !service) {\n throwError('You must inform domain and service name');\n }\n\n const uriBase = `res://senior.com.br/${domain}/${service}`;\n\n if (isEntity) {\n return `${uriBase}/entities/${resourceName}`;\n } else {\n return `${uriBase}/${resourceName}`;\n }\n }\n\n /**\n * Valida com base nas propriedade redirectToError e actionsToCheck\n * se a ação de um recurso deve enviar para a página de erro caso não tenha autorização\n */\n private shouldRedirectToForbiddenPage(resources: Resource[] = [], permissions: Permission[]): boolean {\n const permissionsDenied = permissions.filter(perm => !perm.authorized);\n\n if (permissionsDenied && permissionsDenied.length) {\n const resourcesToCheck = resources.filter(resource => resource.redirectToError);\n\n if (resourcesToCheck && resourcesToCheck.length) {\n return resourcesToCheck.every(resource => {\n const actionsToCheck = resource.actionsToCheck && resource.actionsToCheck.length ? resource.actionsToCheck : resource.actions;\n\n return actionsToCheck.every(action =>\n permissionsDenied.some(permissionDenied => permissionDenied.resource === resource.uri && permissionDenied.action === action)\n );\n });\n }\n\n return false;\n }\n\n return false;\n }\n\n private getFlatEnvironment() {\n return this.environment.ignorePermissions;\n }\n\n private getFlatResources() {\n return this.resources.reduce((result: Resource[], item: any) => {\n if (!item) {\n return result;\n }\n\n if (Array.isArray(item)) {\n return [...result, ...item];\n }\n\n return [...result, item];\n }, []);\n }\n\n private getPermissionObject(defaultValue: boolean) {\n return this.getFlatResources().reduce((resources: object, resource: Resource) => {\n resources[resource.name] = resource.actions.reduce((actions: any, action: any) => {\n actions[action] = defaultValue;\n actions[action.toLowerCase()] = defaultValue;\n return actions;\n }, {});\n return resources;\n }, {});\n }\n\n private async getPermissions() {\n if (this.getFlatEnvironment()) {\n return this.getPermissionObject(true);\n }\n const resources = this.getFlatResources();\n const perm = resources\n .map(resource => resource.actions.map((action: any) => ({ action: action, resource: resource.uri })))\n .reduce((acc: any, val: any) => [...acc, ...val]);\n\n const permissions: any[] = await this.http\n .post<any>(`${this.actionUrl}/checkAccess`, {\n includeFilters: false,\n permissions: perm\n })\n .toPromise()\n .then(response => response.permissions);\n\n const values = {};\n\n permissions.forEach((permission: any) => {\n const resource = resources.find((res: any) => res.uri === permission.resource);\n const { name } = resource;\n values[name] = values[name] ? values[name] : {};\n values[name][permission.action] = permission.authorized;\n values[name][permission.action.toLowerCase()] = permission.authorized;\n });\n return values;\n }\n}\n","import { NgModule, ModuleWithProviders } from '@angular/core';\nimport { Resource, RESOURCES, ENVIRONMENT, Environment } from './permissions.config';\nimport { PermissionsService } from './permissions.service';\n\n@NgModule()\nexport class PermissionsModule {\n public static forRoot(resources: Resource[], environment: Environment): ModuleWithProviders<PermissionsModule> {\n return {\n ngModule: PermissionsModule,\n providers: [\n PermissionsService,\n {\n provide: RESOURCES,\n multi: true,\n useValue: resources\n },\n {\n provide: ENVIRONMENT,\n multi: false,\n useValue: environment\n }\n ]\n };\n }\n\n public static forChild(resources: Resource[]): ModuleWithProviders<PermissionsModule> {\n return {\n ngModule: PermissionsModule,\n providers: [\n {\n provide: RESOURCES,\n multi: true,\n useValue: resources\n }\n ]\n };\n }\n}\n","export function ResourceFactory({ domain, service, resource }: { domain: string; service: string; resource: string }) {\n return `res://senior.com.br/${domain}/${service}/${resource}`;\n}\nfunction endpointFactoryFunction(domain: string, service: string) {\n // The @seniorsistemas/platform-components http interceptor is handling the base url portion of the final URL\n const create = (method: string, endpoint: string) => `${domain}/${service}/${method}/${endpoint}`;\n const resource = (resource: string) => ResourceFactory({ domain, service, resource });\n return {\n resource,\n query: create.bind(null, 'queries'),\n action: create.bind(null, 'actions'),\n signal: create.bind(null, 'signals'),\n entity(entity: string) {\n const URL = create('entities', entity);\n return {\n create: () => URL,\n update: (id: string) => URL + '/' + id,\n remove: (id: string) => URL + '/' + id\n };\n }\n };\n}\n\nexport const endpointFactory = endpointFactoryFunction;\n// ADD HERE YOUR NEW ENDPOINT\nexport const PLATFORM_FEATURE_TOGGLE = endpointFactoryFunction('platform', 'feature_toggle');\n","import { Injectable } from '@angular/core';\nimport { HttpClient } from '@angular/common/http';\nimport { Observable, from, of } from 'rxjs';\nimport { Feature, GetEnabledFeaturesOutput } from './models/feature';\nimport { map, shareReplay, catchError, mergeMap } from 'rxjs/operators';\nimport { user } from '@seniorsistemas/senior-platform-data';\nimport { PLATFORM_FEATURE_TOGGLE } from './constants/endpoint.constant';\n\n@Injectable({ providedIn: 'root' })\nexport class FeatureToggleService {\n constructor(private http: HttpClient) {}\n\n cache: { [key: string]: Observable<Feature[]> } = {};\n\n isEnabled({ domain, service, name }: Feature, tenant?: string): Observable<boolean> {\n let tenantObs;\n if (tenant) {\n tenantObs = of(tenant);\n } else {\n tenantObs = from(user.getUserData()).pipe(map(userData => userData.tenantName));\n }\n return tenantObs.pipe(\n mergeMap(tenant => {\n const key = JSON.stringify({ tenant, domain, service });\n if (!this.cache[key]) {\n this.cache[key] = this.http\n .post<GetEnabledFeaturesOutput>(PLATFORM_FEATURE_TOGGLE.query('getEnabledFeatures'), { tenant, domain, service })\n .pipe(\n map(output => output.features),\n shareReplay(1),\n catchError(err => {\n console.error(err);\n delete this.cache[key];\n return of([]);\n })\n );\n }\n return this.cache[key];\n }),\n map((features: Feature[]) => {\n return features.findIndex(f => f.name === name) !== -1;\n })\n );\n }\n}\n","import { NgModule } from '@angular/core';\nimport { HttpClientModule } from '@angular/common/http';\nimport { FeatureToggleService } from './feature-toggle.service';\nimport { HttpInterceptorModule } from '../http-interceptor/http-interceptor.module';\n\n@NgModule({\n imports: [HttpClientModule, HttpInterceptorModule],\n providers: [FeatureToggleService]\n})\nexport class FeatureToggleModule {}\n","export enum UserAction {\n CONFIRMED = 'CONFIRMED',\n POSTPONED = 'POSTPONED',\n REFUSED = 'REFUSED'\n}\n","import { SpotlightNotification } from './../models/spotlight-notification.interface';\nimport { HttpClient } from '@angular/common/http';\nimport { Injectable } from '@angular/core';\nimport { Observable } from 'rxjs';\nimport {\n SpotlightScreenList,\n SpotlightUsersList,\n SpotlightControlList,\n SpotlightUser,\n SpotlightControl\n} from '../models/index';\n\n@Injectable()\nexport class SpotlightService {\n constructor(private http: HttpClient) {}\n\n private API_URL = 'platform/spotlight/';\n\n public getUser(): Promise<any> {\n return this.http.post<any>('platform/user/queries/getUser', {}).toPromise();\n }\n\n public listSpotlightScreen(): Observable<SpotlightScreenList> {\n return this.http.get<SpotlightScreenList>(this.API_URL + 'queries/listSpotlightScreen');\n }\n\n public listSpotlightUsers(): Promise<SpotlightUsersList> {\n return this.http.get<SpotlightUsersList>(this.API_URL + 'queries/listSpotlightUsers').toPromise();\n }\n\n public listSpotlightControl(): Promise<SpotlightControlList> {\n return this.http.get<SpotlightControlList>(this.API_URL + 'queries/listSpotlightControl').toPromise();\n }\n\n public saveSpotlightUser(content: SpotlightUser) {\n return this.http.post<SpotlightUser>(this.API_URL + 'actions/saveSpotlightUsers', { content });\n }\n\n public saveSpotlightControl(content: SpotlightControl) {\n return this.http.post<SpotlightControl>(this.API_URL + 'actions/saveSpotlightControl', { content });\n }\n\n public notificateSpotlight(content: SpotlightNotification) {\n return this.http.post<SpotlightNotification>(this.API_URL + 'actions/notificateSpotlight', content);\n }\n}\n","export enum EnumDisplayType {\n ADVERSITING = 'ADVERSITING',\n INTEGRATION = 'INTEGRATION'\n}\n","import { EnumSpotlightStatus } from './spotlight-status.enum';\n\nexport class SpotlightControl {\n id?: string;\n spotlightId: string;\n status: EnumSpotlightStatus;\n firstUser?: string;\n createdBy?: string;\n createdDate?: string;\n lastModifiedBy?: string;\n lastModifiedDate?: string;\n}","export enum EnumSpotlightStatus {\n ACTIVE = 'ACTIVE',\n IN_PROGRESS = 'IN_PROGRESS',\n NO_STARTED = 'NO_STARTED',\n REFUSED = 'REFUSED'\n}\n","import { UserAction } from './../models/user-action.enum';\nimport { SpotlightNotification } from './../models/spotlight-notification.interface';\nimport {\n Component,\n EventEmitter,\n Input,\n OnInit,\n Output\n} from '@angular/core';\nimport { SpotlightService } from '../service/spotlight.service';\nimport {\n Spotlight,\n SpotlightScreen,\n EnumDisplayType,\n EnumSpotlightStatus,\n SpotlightControlList,\n SpotlightUsersList,\n SpotlightUser,\n SpotlightControl\n} from '../models/index';\nimport { DatePipe } from '@angular/common';\nimport { CookieService } from 'ngx-cookie-service';\n\n@Component({\n selector: 's-spotlight',\n templateUrl: './spotlight.component.html',\n styleUrls: ['./spotlight.component.scss']\n})\nexport class SpotlightComponent implements OnInit {\n\n constructor(\n private spotlightService: SpotlightService,\n private cookieService: CookieService,\n private datePipe: DatePipe\n ) {}\n\n public header: string;\n public imgUrl: string;\n public primaryButtonLabel: string;\n public primaryButtonTooltip: string;\n public canAppear = false;\n\n private currentUser: string;\n private spotlightUsersList: SpotlightUsersList;\n private spotlightControlsList: SpotlightControlList;\n private spotlightScreen: SpotlightScreen;\n private canEmitEvent: boolean;\n\n @Input()\n public visible = false;\n\n @Input()\n public menuId: string;\n\n @Input()\n public fade = false;\n\n @Output()\n public visibleChange = new EventEmitter<boolean>();\n\n async ngOnInit() {\n await this.setValues();\n this.fetchSpotlight();\n }\n\n private async setValues() {\n const userData: any = JSON.parse(this.cookieService.get('com.senior.token'));\n this.currentUser = userData.username;\n this.spotlightUsersList = await this.spotlightService.listSpotlightUsers();\n this.spotlightControlsList = await this.spotlightService.listSpotlightControl();\n }\n\n private setValuesInSpotlight(values: Spotlight): void {\n this.header = values.spotlightTitle;\n this.imgUrl = values.bannerUrl;\n this.primaryButtonLabel = values.primaryButtonLabel;\n this.primaryButtonTooltip = values.primaryButtonHint;\n }\n\n private getShowDate(days: number): string {\n const currentDate = new Date();\n return this.datePipe.transform(currentDate.setDate(currentDate.getDate() + days).toString(), 'yyyy-MM-dd');\n }\n\n private fetchSpotlight(): void {\n this.spotlightService.listSpotlightScreen().subscribe(value => {\n this.spotlightScreen = value.contents.filter(val => val.screenMenuId === this.menuId)[0];\n if (this.spotlightScreen) {\n this.showSpotlight(this.spotlightScreen.spotlight);\n }\n });\n }\n\n private showSpotlight(spotlight: Spotlight): void {\n if (this.validateDate(spotlight.initialDate) && this.validateFinalDate(spotlight.finalDate) && this.validateSpotlight(spotlight)) {\n this.setValuesInSpotlight(spotlight);\n this.canAppear = true;\n const control = this.getSpotlightControlFromList(this.spotlightScreen.spotlight.id);\n this.canEmitEvent = !control || this.currentUser !== control.firstUser;\n }\n }\n\n private validateDate(date: string): boolean {\n if (date) {\n const currentDate = this.datePipe.transform(new Date().toString(), 'yyyy-MM-dd');\n const initialDate = this.datePipe.transform(date, 'yyyy-MM-dd');\n\n return currentDate >= initialDate;\n }\n return false;\n }\n\n private validateFinalDate(date: string): boolean {\n if (date) {\n const currentDate = this.datePipe.transform(new Date().toString(), 'yyyy-MM-dd');\n const finalDate = this.datePipe.transform(date, 'yyyy-MM-dd');\n\n return currentDate <= finalDate;\n }\n return true;\n }\n\n private validateSpotlight(spotlight: Spotlight): boolean {\n if (!this.validateControlsList(this.spotlightControlsList, spotlight, this.currentUser)) {\n return false;\n }\n if (!this.validateDisplayType(spotlight, this.spotlightUsersList, this.spotlightControlsList, this.currentUser)) {\n return false;\n }\n return true;\n }\n\n private validateControlsList(controlsList: SpotlightControlList, spotlight: Spotlight, currentUser: string): boolean {\n if (controlsList.totalElements) {\n\n const notCompatibleControls = controlsList.contents.filter(control => {\n if (control.status === EnumSpotlightStatus.ACTIVE) {\n return control.spotlightId === spotlight.id;\n\n } else if (control.status === EnumSpotlightStatus.IN_PROGRESS) {\n return control.spotlightId === spotlight.id && control.firstUser !== currentUser;\n }\n });\n\n if (notCompatibleControls.length > 0) {\n return false;\n }\n }\n return true;\n }\n\n private validateDisplayType(\n spotlight: Spotlight,\n usersList: SpotlightUsersList,\n controlsList: SpotlightControlList,\n currentUser: string\n ): boolean {\n\n switch (spotlight.displayType) {\n case EnumDisplayType.ADVERSITING:\n return usersList.totalElements ? this.validateUser(usersList.contents, spotlight) : true;\n\n case EnumDisplayType.INTEGRATION:\n\n if (controlsList.totalElements) {\n const compatibleControls = controlsList.contents.filter(control => {\n\n switch (control.status) {\n\n case EnumSpotlightStatus.NO_STARTED:\n return control.spotlightId === spotlight.id;\n\n case EnumSpotlightStatus.REFUSED:\n return usersList.totalElements ? this.validateUser(usersList.contents, spotlight) : true;\n\n case EnumSpotlightStatus.IN_PROGRESS:\n return control.firstUser === currentUser\n && control.spotlightId === spotlight.id;\n }\n });\n if (compatibleControls.length === 0) {\n return false;\n }\n }\n return true;\n }\n }\n\n private validateUser(users: SpotlightUser[], spotlight: Spotlight): boolean {\n let spotlightUsers = users.filter(user => user.spotlightId === spotlight.id);\n\n if (!spotlightUsers.length) {\n spotlightUsers = users.filter(user => user.userOperation === this.currentUser);\n\n return spotlightUsers.length === 0;\n }\n\n const compatibleUserToValidate = spotlightUsers.filter(user => user.userOperation === this.currentUser)[0];\n\n return compatibleUserToValidate ? this.validateDate(compatibleUserToValidate.showDate) : true;\n }\n\n private saveSpotlightUser(days?: number): void {\n\n const spotlight = this.spotlightScreen.spotlight;\n\n const user = this.spotlightUsersList.contents.filter(val => {\n return val.spotlightId === spotlight.id\n && val.userOperation === this.currentUser;\n })[0];\n\n let spotlightUser: SpotlightUser = {\n spotlightId: spotlight.id,\n showDate: days ? this.getShowDate(days) : null,\n userOperation: this.currentUser\n };\n\n if (user) {\n spotlightUser = {\n id: user.id,\n ...spotlightUser\n };\n }\n this.spotlightService.saveSpotlightUser(spotlightUser).subscribe();\n }\n\n public onPrimary() {\n const spotlight = this.spotlightScreen.spotlight;\n const notification = this.buildNotification(UserAction.CONFIRMED);\n\n this.saveSpotlightControl();\n this.saveSpotlightUser();\n\n if (this.canEmitEvent) {\n this.spotlightService.notificateSpotlight(notification).subscribe();\n }\n\n if (spotlight.primaryButtonUrl) {\n window.open(spotlight.primaryButtonUrl);\n }\n\n this.close();\n }\n\n public onSecondary(): void {\n const notification = this.buildNotification(UserAction.POSTPONED);\n\n this.saveSpotlightControl(EnumSpotlightStatus.REFUSED);\n this.saveSpotlightUser(this.spotlightScreen.spotlight.daysRememberLate);\n this.spotlightService.notificateSpotlight(notification).subscribe();\n\n this.close();\n }\n\n public onTertiary(): void {\n const notification = this.buildNotification(UserAction.REFUSED);\n\n this.saveSpotlightControl(EnumSpotlightStatus.REFUSED);\n this.saveSpotlightUser(this.spotlightScreen.spotlight.daysNotInterested);\n this.spotlightService.notificateSpotlight(notification).subscribe();\n\n this.close();\n }\n\n /**\n * Verifica se um registro de usuário pertence ao usuário logado e corresponde ao spotlight atual\n * @param user SpotlightUser Objeto representando o registro do usuário para uma spotlight\n * @param spotlight Spotlight Spotlight\n * @returns boolean true se corresponder ao spotlight atual, false caso contrário\n */\n private hasThisRegister(user: SpotlightUser, spotlight: Spotlight): boolean {\n return (user.spotlightId === spotlight.id && user.userOperation === this.currentUser);\n }\n\n /**\n * Verifica se um registro de usuário pertece ao usuário logado, mas não corresponde ao spotlight atual\n * @param user SpotlightUser Objeto representando o registro do usuário para uma spotlight\n * @param spotlight Spotlight Spotlight\n * @returns boolean true se corresponder ao spotlight atual, false caso contrário\n */\n private hasAnotherRegister(user: SpotlightUser, spotlight: Spotlight): boolean {\n return user.spotlightId !== spotlight.id && user.userOperation === this.currentUser;\n }\n\n /**\n * Persiste um novo registro de controle para o spotlight atual se\n * não for encontrado nenhum na lista de controles carregada inicialmente\n * @param status EnumSpotlightStatus Status do controle do spotlight. Se nenhum for informado, IN_PROGRESS será aplicado\n * @returns SpotlightControl Controle do spotlight recuperado/pesistido\n */\n private saveSpotlightControl(status = EnumSpotlightStatus.IN_PROGRESS): SpotlightControl {\n const spotlight = this.spotlightScreen.spotlight;\n let control: SpotlightControl = this.getSpotlightControlFromList(spotlight.id);\n\n if (!control) {\n control = {\n spotlightId: spotlight.id,\n status: status,\n firstUser: this.currentUser\n };\n }\n\n if (this.isNewControl(control) || control.status !== EnumSpotlightStatus.IN_PROGRESS) {\n control.status = status;\n control.firstUser = status === EnumSpotlightStatus.IN_PROGRESS ? this.currentUser : '';\n this.spotlightService.saveSpotlightControl(control).subscribe();\n }\n\n return control;\n }\n\n /**\n * Retorna o controle de spotlight correspondente ao identificador\n * informado na lista de controles carregada na inicialização do componente\n * @param id string Identificador do controle de spotlight\n */\n private getSpotlightControlFromList(id: string): SpotlightControl {\n return this.spotlightControlsList.contents.filter(val => val.spotlightId === id)[0];\n }\n\n /**\n * Verifica se o controle de spotlight informado não foi registrado ainda\n * @param spotlightControl SpotlightControl Controle do spotlight\n * @returns boolean true se ainda não foi registrado na base, false caso contrário\n */\n private isNewControl(spotlightControl: SpotlightControl): boolean {\n return !this.spotlightControlsList.contents.includes(spotlightControl);\n }\n\n /**\n * Retorna um objeto de notificação referente ao botão clicado pelo usuário.\n * @param userAction UserAction Ação realizada pelo usuário ao clicar nos botões da modal\n * @returns SpotlightNotification Objeto de notificação\n */\n private buildNotification(userAction: UserAction): SpotlightNotification {\n const spotlight = this.spotlightScreen.spotlight;\n\n return {\n clickedButton: userAction,\n spotlightControlId: spotlight.id,\n primaryButtonUrl: spotlight.primaryButtonUrl\n };\n }\n\n public close(): void {\n this.visibleChange.emit(false);\n }\n}\n","export const fallback: any = {\n\n 'platform.spotlight.no_interest' : 'Não tenho interesse',\n 'platform.spotlight.remember_late' : 'Lembrar mais tarde'\n};\n","import { Pipe, PipeTransform } from '@angular/core';\nimport { TranslateService } from '@ngx-translate/core';\n\n@Pipe({\n name: 'translate',\n pure: false,\n })\n export class TranslatePipe implements PipeTransform {\n constructor(private translationService: TranslateService) {}\n transform(value: any): any {\n return this.translationService.instant(value);\n }\n }\n","import { NgModule } from '@angular/core';\nimport { CommonModule, DatePipe } from '@angular/common';\n\nimport { ButtonModule } from 'primeng/button';\nimport { TooltipModule } from 'primeng/tooltip';\nimport { HttpInterceptorModule } from '../http-interceptor/http-interceptor.module';\nimport { TranslationsModule } from '../translations/translations.module';\nimport { SpotlightComponent } from './component/spotlight.component';\nimport { SpotlightService } from './service/spotlight.service';\nimport { fallback } from './locale/fallback';\nimport { TranslatePipe } from './pipes/translate.pipe';\nimport { CookieService } from 'ngx-cookie-service';\n\n@NgModule({\n imports: [\n ButtonModule,\n TooltipModule,\n CommonModule,\n HttpInterceptorModule,\n TranslationsModule.forChild([{domain: 'platform', service: 'spotlight', fallback}]),\n ],\n providers: [\n SpotlightService,\n DatePipe,\n CookieService\n ],\n declarations: [\n SpotlightComponent,\n TranslatePipe],\n exports: [SpotlightComponent]\n})\nexport class SpotlightModule {}\n"],"names":["Pipe","TranslateService","InjectionToken","APP_INITIALIZER","Injector","HttpClient","CookieService","NgModule","HttpClientModule","TranslateModule","http","LOCATION_INITIALIZED","user","HttpParams","HttpHeaders","Subject","BehaviorSubject","map","Observable","Injectable","FilterType","Scope","FormGroup","DATE","DATETIME","TIME","parsers","_a","dateParser","FormControl","contains","equals","TRANSLATE_PREFIX","EventEmitter","clone","takeUntil","from","rxFilter","tap","mergeMap","TextField","FieldType","CurrencyField","SelectField","NumberField","RadioButtonField","CalendarField","AutocompleteField","MessageService","ChangeDetectorRef","Input","Output","HostListener","Component","NavigationEnd","Router","ViewChild","ViewEncapsulation","DialogModule","ButtonModule","PrimeNGButtonModule","TabViewModule","CommonModule","FormsModule","ReactiveFormsModule","DynamicFormModule","ToastModule","EmptyStateModule","TooltipModule","LocaleService","jc","HttpResponse","HTTP_INTERCEPTORS","defer","service","forkJoin","throwError","promise","catchError","of","Inject","shareReplay","DatePipe","fallback","TranslatePipe"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"seniorsistemas-platform-components.umd.js","sources":["../../node_modules/tslib/tslib.es6.js","ng://@seniorsistemas/platform-components/modules/advanced-filter/pipes/map-values.pipe.ts","ng://@seniorsistemas/platform-components/modules/advanced-filter/pipes/translate.pipe.ts","ng://@seniorsistemas/platform-components/modules/translations/translations.module.ts","ng://@seniorsistemas/platform-components/modules/advanced-filter/locale/fallback.ts","ng://@seniorsistemas/platform-components/modules/advanced-filter/services/constants.ts","ng://@seniorsistemas/platform-components/modules/advanced-filter/shared/constants.ts","ng://@seniorsistemas/platform-components/modules/advanced-filter/services/advanced-filter.service.ts","ng://@seniorsistemas/platform-components/modules/advanced-filter/models/filter.ts","ng://@seniorsistemas/platform-components/modules/advanced-filter/models/filter-type.ts","ng://@seniorsistemas/platform-components/modules/advanced-filter/models/scope.ts","ng://@seniorsistemas/platform-components/modules/advanced-filter/models/form-filter.ts","ng://@seniorsistemas/platform-components/modules/advanced-filter/models/tab-view.ts","ng://@seniorsistemas/platform-components/modules/advanced-filter/utils/filter-id/index.ts","ng://@seniorsistemas/platform-components/modules/advanced-filter/utils/filter-value/index.ts","ng://@seniorsistemas/platform-components/modules/advanced-filter/utils/json-path.ts","ng://@seniorsistemas/platform-components/modules/advanced-filter/utils/filterOperators.ts","ng://@seniorsistemas/platform-components/modules/advanced-filter/utils/index.ts","ng://@seniorsistemas/platform-components/modules/advanced-filter/utils/form-field/index.ts","ng://@seniorsistemas/platform-components/modules/advanced-filter/utils/comparator.ts","ng://@seniorsistemas/platform-components/modules/advanced-filter/services/calendar-options.service.ts","ng://@seniorsistemas/platform-components/modules/advanced-filter/components/form-filter/form-filter.component.ts","ng://@seniorsistemas/platform-components/modules/advanced-filter/components/advanced-filter/advanced-filter.component.ts","ng://@seniorsistemas/platform-components/modules/advanced-filter/advanced-filter.module.ts","ng://@seniorsistemas/platform-components/modules/cyclic-json-interceptor/cyclic-json-interceptor.service.ts","ng://@seniorsistemas/platform-components/modules/cyclic-json-interceptor/cyclic-json-interceptor.module.ts","ng://@seniorsistemas/platform-components/modules/http-interceptor/rest-url.service.ts","ng://@seniorsistemas/platform-components/modules/http-interceptor/x-services-url.service.ts","ng://@seniorsistemas/platform-components/modules/http-interceptor/http-interceptor.service.ts","ng://@seniorsistemas/platform-components/modules/http-interceptor/http-interceptor.module.ts","ng://@seniorsistemas/platform-components/modules/permissions/permissions.config.ts","ng://@seniorsistemas/platform-components/modules/permissions/permissions.service.ts","ng://@seniorsistemas/platform-components/modules/permissions/permissions.module.ts","ng://@seniorsistemas/platform-components/modules/feature-toggle/constants/endpoint.constant.ts","ng://@seniorsistemas/platform-components/modules/feature-toggle/feature-toggle.service.ts","ng://@seniorsistemas/platform-components/modules/feature-toggle/feature-toggle.module.ts","ng://@seniorsistemas/platform-components/modules/spotlight/models/user-action.enum.ts","ng://@seniorsistemas/platform-components/modules/spotlight/service/spotlight.service.ts","ng://@seniorsistemas/platform-components/modules/spotlight/models/display-type.enum.ts","ng://@seniorsistemas/platform-components/modules/spotlight/models/spotlight-control.interface.ts","ng://@seniorsistemas/platform-components/modules/spotlight/models/spotlight-status.enum.ts","ng://@seniorsistemas/platform-components/modules/spotlight/component/spotlight.component.ts","ng://@seniorsistemas/platform-components/modules/spotlight/locale/fallback.ts","ng://@seniorsistemas/platform-components/modules/spotlight/pipes/translate.pipe.ts","ng://@seniorsistemas/platform-components/modules/spotlight/spotlight.module.ts"],"sourcesContent":["/*! *****************************************************************************\r\nCopyright (c) Microsoft Corporation.\r\n\r\nPermission to use, copy, modify, and/or distribute this software for any\r\npurpose with or without fee is hereby granted.\r\n\r\nTHE SOFTWARE IS PROVIDED \"AS IS\" AND THE AUTHOR DISCLAIMS ALL WARRANTIES WITH\r\nREGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY\r\nAND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT,\r\nINDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM\r\nLOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR\r\nOTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR\r\nPERFORMANCE OF THIS SOFTWARE.\r\n***************************************************************************** */\r\n/* global Reflect, Promise */\r\n\r\nvar extendStatics = function(d, b) {\r\n extendStatics = Object.setPrototypeOf ||\r\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\r\n function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };\r\n return extendStatics(d, b);\r\n};\r\n\r\nexport function __extends(d, b) {\r\n extendStatics(d, b);\r\n function __() { this.constructor = d; }\r\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\r\n}\r\n\r\nexport var __assign = function() {\r\n __assign = Object.assign || function __assign(t) {\r\n for (var s, i = 1, n = arguments.length; i < n; i++) {\r\n s = arguments[i];\r\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p)) t[p] = s[p];\r\n }\r\n return t;\r\n }\r\n return __assign.apply(this, arguments);\r\n}\r\n\r\nexport function __rest(s, e) {\r\n var t = {};\r\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0)\r\n t[p] = s[p];\r\n if (s != null && typeof Object.getOwnPropertySymbols === \"function\")\r\n for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) {\r\n if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i]))\r\n t[p[i]] = s[p[i]];\r\n }\r\n return t;\r\n}\r\n\r\nexport function __decorate(decorators, target, key, desc) {\r\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\r\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\r\n else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\r\n return c > 3 && r && Object.defineProperty(target, key, r), r;\r\n}\r\n\r\nexport function __param(paramIndex, decorator) {\r\n return function (target, key) { decorator(target, key, paramIndex); }\r\n}\r\n\r\nexport function __metadata(metadataKey, metadataValue) {\r\n if (typeof Reflect === \"object\" && typeof Reflect.metadata === \"function\") return Reflect.metadata(metadataKey, metadataValue);\r\n}\r\n\r\nexport function __awaiter(thisArg, _arguments, P, generator) {\r\n function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }\r\n return new (P || (P = Promise))(function (resolve, reject) {\r\n function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }\r\n function rejected(value) { try { step(generator[\"throw\"](value)); } catch (e) { reject(e); } }\r\n function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }\r\n step((generator = generator.apply(thisArg, _arguments || [])).next());\r\n });\r\n}\r\n\r\nexport function __generator(thisArg, body) {\r\n var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g;\r\n return g = { next: verb(0), \"throw\": verb(1), \"return\": verb(2) }, typeof Symbol === \"function\" && (g[Symbol.iterator] = function() { return this; }), g;\r\n function verb(n) { return function (v) { return step([n, v]); }; }\r\n function step(op) {\r\n if (f) throw new TypeError(\"Generator is already executing.\");\r\n while (_) try {\r\n if (f = 1, y && (t = op[0] & 2 ? y[\"return\"] : op[0] ? y[\"throw\"] || ((t = y[\"return\"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t;\r\n if (y = 0, t) op = [op[0] & 2, t.value];\r\n switch (op[0]) {\r\n case 0: case 1: t = op; break;\r\n case 4: _.label++; return { value: op[1], done: false };\r\n case 5: _.label++; y = op[1]; op = [0]; continue;\r\n case 7: op = _.ops.pop(); _.trys.pop(); continue;\r\n default:\r\n if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; }\r\n if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; }\r\n if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; }\r\n if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; }\r\n if (t[2]) _.ops.pop();\r\n _.trys.pop(); continue;\r\n }\r\n op = body.call(thisArg, _);\r\n } catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; }\r\n if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true };\r\n }\r\n}\r\n\r\nexport function __createBinding(o, m, k, k2) {\r\n if (k2 === undefined) k2 = k;\r\n o[k2] = m[k];\r\n}\r\n\r\nexport function __exportStar(m, exports) {\r\n for (var p in m) if (p !== \"default\" && !exports.hasOwnProperty(p)) exports[p] = m[p];\r\n}\r\n\r\nexport function __values(o) {\r\n var s = typeof Symbol === \"function\" && Symbol.iterator, m = s && o[s], i = 0;\r\n if (m) return m.call(o);\r\n if (o && typeof o.length === \"number\") return {\r\n next: function () {\r\n if (o && i >= o.length) o = void 0;\r\n return { value: o && o[i++], done: !o };\r\n }\r\n };\r\n throw new TypeError(s ? \"Object is not iterable.\" : \"Symbol.iterator is not defined.\");\r\n}\r\n\r\nexport function __read(o, n) {\r\n var m = typeof Symbol === \"function\" && o[Symbol.iterator];\r\n if (!m) return o;\r\n var i = m.call(o), r, ar = [], e;\r\n try {\r\n while ((n === void 0 || n-- > 0) && !(r = i.next()).done) ar.push(r.value);\r\n }\r\n catch (error) { e = { error: error }; }\r\n finally {\r\n try {\r\n if (r && !r.done && (m = i[\"return\"])) m.call(i);\r\n }\r\n finally { if (e) throw e.error; }\r\n }\r\n return ar;\r\n}\r\n\r\nexport function __spread() {\r\n for (var ar = [], i = 0; i < arguments.length; i++)\r\n ar = ar.concat(__read(arguments[i]));\r\n return ar;\r\n}\r\n\r\nexport function __spreadArrays() {\r\n for (var s = 0, i = 0, il = arguments.length; i < il; i++) s += arguments[i].length;\r\n for (var r = Array(s), k = 0, i = 0; i < il; i++)\r\n for (var a = arguments[i], j = 0, jl = a.length; j < jl; j++, k++)\r\n r[k] = a[j];\r\n return r;\r\n};\r\n\r\nexport function __await(v) {\r\n return this instanceof __await ? (this.v = v, this) : new __await(v);\r\n}\r\n\r\nexport function __asyncGenerator(thisArg, _arguments, generator) {\r\n if (!Symbol.asyncIterator) throw new TypeError(\"Symbol.asyncIterator is not defined.\");\r\n var g = generator.apply(thisArg, _arguments || []), i, q = [];\r\n return i = {}, verb(\"next\"), verb(\"throw\"), verb(\"return\"), i[Symbol.asyncIterator] = function () { return this; }, i;\r\n function verb(n) { if (g[n]) i[n] = function (v) { return new Promise(function (a, b) { q.push([n, v, a, b]) > 1 || resume(n, v); }); }; }\r\n function resume(n, v) { try { step(g[n](v)); } catch (e) { settle(q[0][3], e); } }\r\n function step(r) { r.value instanceof __await ? Promise.resolve(r.value.v).then(fulfill, reject) : settle(q[0][2], r); }\r\n function fulfill(value) { resume(\"next\", value); }\r\n function reject(value) { resume(\"throw\", value); }\r\n function settle(f, v) { if (f(v), q.shift(), q.length) resume(q[0][0], q[0][1]); }\r\n}\r\n\r\nexport function __asyncDelegator(o) {\r\n var i, p;\r\n return i = {}, verb(\"next\"), verb(\"throw\", function (e) { throw e; }), verb(\"return\"), i[Symbol.iterator] = function () { return this; }, i;\r\n function verb(n, f) { i[n] = o[n] ? function (v) { return (p = !p) ? { value: __await(o[n](v)), done: n === \"return\" } : f ? f(v) : v; } : f; }\r\n}\r\n\r\nexport function __asyncValues(o) {\r\n if (!Symbol.asyncIterator) throw new TypeError(\"Symbol.asyncIterator is not defined.\");\r\n var m = o[Symbol.asyncIterator], i;\r\n return m ? m.call(o) : (o = typeof __values === \"function\" ? __values(o) : o[Symbol.iterator](), i = {}, verb(\"next\"), verb(\"throw\"), verb(\"return\"), i[Symbol.asyncIterator] = function () { return this; }, i);\r\n function verb(n) { i[n] = o[n] && function (v) { return new Promise(function (resolve, reject) { v = o[n](v), settle(resolve, reject, v.done, v.value); }); }; }\r\n function settle(resolve, reject, d, v) { Promise.resolve(v).then(function(v) { resolve({ value: v, done: d }); }, reject); }\r\n}\r\n\r\nexport function __makeTemplateObject(cooked, raw) {\r\n if (Object.defineProperty) { Object.defineProperty(cooked, \"raw\", { value: raw }); } else { cooked.raw = raw; }\r\n return cooked;\r\n};\r\n\r\nexport function __importStar(mod) {\r\n if (mod && mod.__esModule) return mod;\r\n var result = {};\r\n if (mod != null) for (var k in mod) if (Object.hasOwnProperty.call(mod, k)) result[k] = mod[k];\r\n result.default = mod;\r\n return result;\r\n}\r\n\r\nexport function __importDefault(mod) {\r\n return (mod && mod.__esModule) ? mod : { default: mod };\r\n}\r\n\r\nexport function __classPrivateFieldGet(receiver, privateMap) {\r\n if (!privateMap.has(receiver)) {\r\n throw new TypeError(\"attempted to get private field on non-instance\");\r\n }\r\n return privateMap.get(receiver);\r\n}\r\n\r\nexport function __classPrivateFieldSet(receiver, privateMap, value) {\r\n if (!privateMap.has(receiver)) {\r\n throw new TypeError(\"attempted to set private field on non-instance\");\r\n }\r\n privateMap.set(receiver, value);\r\n return value;\r\n}\r\n","import { Pipe, PipeTransform } from '@angular/core';\n\n@Pipe({ name: 'mapValues', pure: false })\nexport class MapValuesPipe implements PipeTransform {\n transform(map: Map<any, any>, args: any[] = null): any {\n return Array.from(map.values());\n }\n}\n","import { Pipe, PipeTransform } from '@angular/core';\nimport { TranslateService } from '@ngx-translate/core';\n\n@Pipe({\n name: 'translate',\n pure: false,\n })\n export class TranslatePipe implements PipeTransform {\n constructor(private translationService: TranslateService) {}\n transform(value: any, args?: any): any {\n return this.translationService.instant(value);\n }\n }\n","import { LOCATION_INITIALIZED } from '@angular/common';\nimport { HttpClient, HttpClientModule, HttpHeaders, HttpParams } from '@angular/common/http';\nimport { ModuleWithProviders } from '@angular/compiler/src/core';\nimport { APP_INITIALIZER, InjectionToken, Injector, NgModule } from '@angular/core';\nimport { TranslateModule, TranslateService } from '@ngx-translate/core';\nimport { user } from '@seniorsistemas/senior-platform-data';\nimport { CookieService } from 'ngx-cookie-service';\n\nexport const TranslationsConfig = new InjectionToken<ITranslationsConfig[]>('translationConfig');\nexport const USER_INFO = 'com.senior.token';\nexport const LENGTH_DEFAULT = 2;\n@NgModule({\n imports: [HttpClientModule, TranslateModule.forChild()],\n providers: [CookieService]\n})\nexport class TranslationsModule {\n static forRoot(translationsConfigs: ITranslationsConfig[]): ModuleWithProviders {\n return {\n ngModule: TranslationsModule,\n providers: [\n {\n provide: APP_INITIALIZER,\n useFactory: factory,\n deps: [TranslateService, Injector, HttpClient, CookieService],\n multi: true\n },\n {\n provide: TranslationsConfig,\n useValue: translationsConfigs,\n multi: true\n }\n ]\n };\n }\n\n static forChild(translationsConfigs: ITranslationsConfig[]): ModuleWithProviders {\n return {\n ngModule: TranslationsModule,\n providers: [\n {\n provide: TranslationsConfig,\n useValue: translationsConfigs,\n multi: true\n }\n ]\n };\n }\n}\n\nexport interface ITranslationsConfig {\n domain: string;\n service: string;\n fallback: any;\n defaultsLanguages?: any;\n}\n\nexport function factory(translate: TranslateService, injector: Injector, http: HttpClient, cookieService: CookieService) {\n return () =>\n new Promise((resolve) => {\n const locationInitialized = injector.get(LOCATION_INITIALIZED, Promise.resolve(null));\n\n locationInitialized.then(async () => {\n let locale = 'pt-BR';\n try {\n const configs = getFlatArray(injector.get(TranslationsConfig, Promise.resolve(null)));\n\n try {\n let userData = JSON.parse(cookieService.get(USER_INFO));\n if (userDataIsNull(userData)) {\n userData = await user.getUserData();\n }\n\n locale = getLocale(userData);\n } catch (ex) {\n console.warn('Unable to obtain user locale');\n }\n\n const fallback = configs.reduce((result: any, configs: ITranslationsConfig) => ({ ...result, ...configs.fallback }), {});\n const defaultsLanguages = configs.reduce(\n (result: any, configs: ITranslationsConfig) => ({ ...result, ...configs.defaultsLanguages }),\n {}\n );\n\n translate.setTranslation(locale, fallback);\n translate.setDefaultLang(locale);\n\n let configTranslate: any = {};\n\n if (defaultsLanguages) {\n configTranslate = getConfigTranslate(defaultsLanguages, locale);\n }\n\n const translationsPromises = configs.map((config: any) => getTranslationsRequest(config, locale));\n\n await Promise.all(translationsPromises).then((results) => {\n const usedFallback = translate['overriden'];\n\n results.forEach((file, index) => {\n setTranslations(file['content'], usedFallback, locale, index, configTranslate.fallbackByLocale);\n });\n\n return translate.use(locale).toPromise();\n });\n\n resolve();\n } catch (err) {\n console.warn('Error setting translations. Using local fallback.', err);\n translate\n .use(locale)\n .toPromise()\n .then(() => {\n resolve();\n });\n }\n });\n });\n\n function setTranslations(content: any, usedFallback: any, locale: any, index: any, fallbackByLocale: any) {\n if (usedFallback) {\n content && translate.setTranslation(locale, content, true);\n translate.setTranslation(locale, fallbackByLocale, true);\n } else {\n if (index === 0) {\n translate.setTranslation(locale, fallbackByLocale, true);\n }\n\n content && translate.setTranslation(locale, content, true);\n }\n }\n\n function getTranslationsRequest({ domain, service }: ITranslationsConfig, language: string) {\n return new Promise(async (resolve) => {\n try {\n if (!domain && !service) {\n throw new Error(`domain and service not found`);\n }\n const params = new HttpParams().set('domainName', domain).set('serviceName', service).set('format', 'FLAT_JSON');\n\n const headers = new HttpHeaders().set('Authorization', await user.getAuthHeader());\n const url = 'platform/translation_hub/queries/getTranslationBundle';\n const bundleFiles = await http\n .get(url, { headers, params })\n .toPromise()\n .then((res: any) => res.bundleFiles);\n\n let languageBundle = language && bundleFiles.find((bundle: any) => bundle.language === language);\n let overriden = false;\n\n if (!languageBundle) {\n languageBundle = bundleFiles.find((bundle: any) => bundle.language === 'pt-BR');\n overriden = true;\n }\n\n if (!languageBundle) {\n return resolve({});\n }\n\n await http\n .get(languageBundle.url)\n .toPromise()\n .then((result: any) => {\n const translations = {\n overriden: overriden,\n content: result\n };\n resolve(translations);\n });\n } catch (err) {\n console.warn(`Error getting translation bundle for ${domain}/${service}. Using local fallback.`, err);\n resolve({});\n }\n });\n }\n\n function getFlatArray(array: any[]) {\n return array.reduce((result: any[], item: any) => {\n if (Array.isArray(item)) {\n return [...result, ...item];\n }\n return [...result, item];\n }, []);\n }\n\n function userDataIsNull(data: any) {\n return !data || Object.keys(data).length === 0;\n }\n\n function getConfigTranslate(defaultsLanguages: any, locale: any) {\n const languages: any = Object.keys(defaultsLanguages).map((key) => {\n const language = {};\n language['locale'] = key.replace('_', '-');\n language['translation'] = defaultsLanguages[key];\n return language;\n }, []);\n\n const result: any = { languages };\n result['foundLocaleUser'] = languages.find((results: any) => results.locale === locale);\n if (!result['foundLocaleUser']) {\n result['foundLocaleUser'] = languages.find((results: any) => {\n return results.locale.length === LENGTH_DEFAULT && results.locale === locale.split('-')[0];\n });\n }\n\n if (result['foundLocaleUser']) {\n result['fallbackByLocale'] = result['foundLocaleUser']['translation'];\n }\n\n return result;\n }\n\n function getLocale(userData: any) {\n return userData.locale || 'pt-BR';\n }\n}\n","export const fallback = {\n 'platform.filter_service.cancel': 'Cancelar',\n 'platform.filter_service.try': 'Tentar Novamente',\n 'platform.filter_service.actions': 'Ações',\n 'platform.filter_service.save': 'Salvar',\n 'platform.filter_service.filter': 'Filtrar',\n 'platform.filter_service.error_state':\n 'O serviço de filtro está indisponÃvel no momento e as informações apresentadas não são as mais recentes. Tente novamente mais tarde.',\n 'platform.filter_service.saved_filters_success': 'Filtros salvos com sucesso! Clique em \"Filtrar\" para visualizar o resultado.',\n 'platform.filter_service.saved_filters_error':\n 'Ocorreu um erro ao tentar salvar os filtros. Verifique os valores e tente novamente.',\n 'platform.filter_service.applied_filter_nochange': 'Não houve alterações no filtro.',\n 'platform.filter_service.applied_filter_change': 'Filtros aplicados com sucesso!',\n 'platform.filter_service.invalid_pattern': 'O valor não atende ao padrão especificado.',\n 'platform.filter_service.error_max_value': 'O valor excede o tamanho máximo especificado.',\n 'platform.filter_service.error_min_value': 'O valor é menor que o minÃmo especificado.',\n 'platform.filter_service.applied_filters_message': '{{totalActiveFilters}} filtros aplicados',\n 'platform.filter_service.applied_filter_message': '{{totalActiveFilters}} filtro aplicado',\n 'platform.filter_service.find_suggestions_error': 'Erro ao encontrar sugestões!',\n 'platform.filter_service.select': 'Selecionar',\n 'platform.filter_service.filters': 'Filtros',\n 'platform.filter_service.date_format' : 'dd/mm/yy',\n 'platform.filter_service.hour_format' : '24',\n 'platform.filter_service.clear': 'Limpar',\n 'platform.filter_service.today' : 'Hoje',\n 'platform.filter_service.name_january' : 'Janeiro',\n 'platform.filter_service.name_february' : 'Fevereiro',\n 'platform.filter_service.name_march' : 'Março',\n 'platform.filter_service.name_april' : 'Abril',\n 'platform.filter_service.name_may' : 'Maio',\n 'platform.filter_service.name_june' : 'Junho',\n 'platform.filter_service.name_july' : 'Julho',\n 'platform.filter_service.name_august' : 'Agosto',\n 'platform.filter_service.name_september' : 'Setembro',\n 'platform.filter_service.name_october' : 'Outubro',\n 'platform.filter_service.name_november' : 'Novembro',\n 'platform.filter_service.name_december' : 'Dezembro',\n 'platform.filter_service.short_january' : 'Jan',\n 'platform.filter_service.short_february' : 'Fev',\n 'platform.filter_service.short_march' : 'Mar',\n 'platform.filter_service.short_april' : 'Abr',\n 'platform.filter_service.short_may' : 'Mai',\n 'platform.filter_service.short_june' : 'Jun',\n 'platform.filter_service.short_july' : 'Jul',\n 'platform.filter_service.short_august' : 'Ago',\n 'platform.filter_service.short_september' : 'Set',\n 'platform.filter_service.short_october' : 'Out',\n 'platform.filter_service.short_november' : 'Nov',\n 'platform.filter_service.short_december' : 'Dez',\n 'platform.filter_service.name_sunday': 'Domingo',\n 'platform.filter_service.name_monday': 'Segunda',\n 'platform.filter_service.name_tuesday': 'Terça',\n 'platform.filter_service.name_wednesday': 'Quarta',\n 'platform.filter_service.name_thursday': 'Quinta',\n 'platform.filter_service.name_friday': 'Sexta',\n 'platform.filter_service.name_saturday': 'Sábado',\n 'platform.filter_service.min_sunday': 'D',\n 'platform.filter_service.min_monday': 'S',\n 'platform.filter_service.min_tuesday': 'T',\n 'platform.filter_service.min_wednesday': 'Q',\n 'platform.filter_service.min_thursday': 'Q',\n 'platform.filter_service.min_friday': 'S',\n 'platform.filter_service.min_saturday': 'S',\n 'platform.filter_service.short_sunday': 'Dom',\n 'platform.filter_service.short_monday': 'Seg',\n 'platform.filter_service.short_tuesday': 'Ter',\n 'platform.filter_service.short_wednesday': 'Qua',\n 'platform.filter_service.short_thursday': 'Qui',\n 'platform.filter_service.short_friday': 'Sex',\n 'platform.filter_service.short_saturday': 'Sab',\n 'platform.filter_service.yes': 'Sim',\n 'platform.filter_service.no': 'Não',\n 'platform.filter_service.search_empty_message': 'Nenhum resultado encontrado'\n};\n","const URL_PREFIX = 'platform/filter_service';\nexport const GET_FILTERS_URL = `${URL_PREFIX}/queries/getFilters`;\nexport const SAVE_FILTERS_URL = `${URL_PREFIX}/actions/saveUserFilters`;\nexport const SAVE_TICKED_FILTER_URL = `${URL_PREFIX}/actions/setTicketFilters`;\n","export const searchDisplayName = '$$__displayValue__';\nexport const searchKeyName = '$$__keyValue__';\n","import { HttpClient, HttpHeaders, HttpErrorResponse } from '@angular/common/http';\nimport { Injectable } from '@angular/core';\nimport { BehaviorSubject } from 'rxjs/BehaviorSubject';\n\nimport { GET_FILTERS_URL, SAVE_FILTERS_URL, SAVE_TICKED_FILTER_URL } from './constants';\nimport { Subject, Observable } from 'rxjs';\nimport { Filter } from '../models/filter';\nimport { FilterValue } from '../models/filter-value';\nimport { Context } from '../models/context';\nimport { map } from 'rxjs/operators';\nimport { TickedFilter } from '../models/ticked-filter';\nimport { searchDisplayName, searchKeyName } from '../shared/constants';\n\nexport interface TickedFilterResponse {\n ticket: string;\n}\n\nexport interface ContextsFiltersResponse {\n filters: Filter[];\n}\n\nexport interface IGetFiltersResponse {\n error?: boolean;\n message?: HttpErrorResponse;\n filters?: Filter[];\n applyFilter?: boolean;\n}\n\nexport interface ITickerFilterResponse {\n ticketFilter?: string;\n error?: boolean;\n message?: string;\n}\n\n@Injectable()\nexport class AdvancedFilterService {\n private filtersObservable = new Subject<IGetFiltersResponse>();\n private contextsObservable = new BehaviorSubject<Context[]>([]);\n private ticketFilterObservable = new Subject<ITickerFilterResponse>();\n destroy$ = new Subject();\n public ticketFilter: string;\n public visible: boolean;\n contextsObserver = this.contextsObservable.asObservable();\n filtersObserver = this.filtersObservable.asObservable();\n ticketFilterObserver = this.ticketFilterObservable.asObservable();\n\n constructor(private http: HttpClient) {\n this.contextsObservable.subscribe(contexts => contexts.length && this.getAndApplyFilters(contexts));\n }\n\n saveTickedFilters(filters: TickedFilter[]) {\n const requestBody = this.ticketFilter ? { filters, ticketFilter: this.ticketFilter } : { filters };\n this.http\n .post<TickedFilterResponse>(SAVE_TICKED_FILTER_URL, requestBody)\n .pipe(map(response => response.ticket))\n .subscribe(\n ticketFilter => {\n this.ticketFilter = ticketFilter;\n this.ticketFilterObservable.next({ ticketFilter });\n window.parent.postMessage({ message: 'advanced-filter:success', payload: ticketFilter }, '*');\n },\n err => {\n this.ticketFilterObservable.next({ error: true, message: err });\n window.parent.postMessage({ message: 'advanced-filter:error', payload: err }, '*');\n }\n );\n }\n\n addContexts(...contexts: Context[]): Observable<Context[]> {\n const currentContexts = this.contextsObservable.getValue();\n this.contextsObservable.next([...currentContexts, ...contexts]);\n return Observable.create(() => () => this.removeContexts(contexts));\n }\n\n private removeContexts(contexts: Context[]) {\n const allContexts = this.contextsObservable.getValue();\n const filteredContexts = allContexts.filter(context => contexts.indexOf(context) === -1);\n this.contextsObservable.next(filteredContexts);\n }\n\n saveFilters(filters: FilterValue[]) {\n return this.http.post(SAVE_FILTERS_URL, { filters });\n }\n\n searchFieldSuggestions(url: string, params: any, type: any) {\n const headers = new HttpHeaders({ 'Content-Type': 'application/json; charset=utf-8' });\n if (type === 'ENTITY') {\n return this.http.get(url, { headers });\n }\n return this.http.post(url, params, { headers });\n }\n\n public tryAgain(serviceContexts: Context[]) {\n this.getFilters(serviceContexts);\n }\n\n private getAndApplyFilters(serviceContexts: Context[]) {\n this.getFilters(serviceContexts, true);\n }\n\n private getFilters(serviceContexts: Context[], applyFilter?: boolean) {\n this.http\n .post<ContextsFiltersResponse>(GET_FILTERS_URL, { serviceContexts })\n .pipe(map(response => this.mapFilters(response.filters)))\n .subscribe(\n filters => this.filtersObservable.next({ filters, applyFilter }), //\n err => this.filtersObservable.next({ error: true, message: err })\n );\n }\n\n private mapFilters(filters: Filter[]): Filter[] {\n return filters.map(filter => {\n try {\n const value = filter.value && JSON.parse(filter.value);\n\n if (value && filter.search && filter.search.basicSearch && filter.search.basicSearch.output) {\n this.mapValues(value, filter.search.basicSearch.output.keyFields, filter.search.basicSearch.output.displayFields);\n } else if (value && filter.search && filter.search.entitySearch && filter.search.entitySearch.output) {\n this.mapValues(value, filter.search.entitySearch.output.keyFields, filter.search.entitySearch.output.displayFields);\n }\n\n if (value) {\n if (this.isMultiple(filter)) {\n const valueInText = JSON.stringify(value);\n\n if ((valueInText.startsWith('[{') && valueInText.endsWith('}]')) || valueInText.length <= 4) {\n filter.value = valueInText;\n } else {\n filter.value = JSON.stringify('');\n }\n } else {\n filter.value = JSON.stringify(value);\n }\n }\n } catch (ex) {\n console.error(`Global: filter ${filter.name} has value error. `, ex);\n filter.value = JSON.stringify('');\n }\n\n return filter;\n });\n }\n\n private isMultiple(filter: Filter): boolean {\n return (\n filter.type === 'SEARCH' &&\n filter.search &&\n ((filter.search.basicSearch && filter.search.basicSearch.output && filter.search.basicSearch.output.maxSelectedItems > 1) ||\n (filter.search.entitySearch && filter.search.entitySearch.output && filter.search.entitySearch.output.maxSelectedItems > 1))\n );\n }\n\n private mapValues(value: any, keyFields: string[], displayFields: string[]) {\n if (Array.isArray(value)) {\n value.forEach(e => {\n this.mapValue(e, keyFields, displayFields);\n });\n } else {\n this.mapValue(value, keyFields, displayFields);\n }\n }\n\n private mapValue(value: any, keyFields: string[], displayFields: string[]) {\n if (!value) {\n return;\n }\n\n const ids = [] as string[];\n const displays = [] as string[];\n\n keyFields.filter(e => value[e] !== undefined).forEach(e => ids.push(value[e]));\n displayFields.filter(e => value[e] !== undefined).forEach(e => displays.push(value[e]));\n\n if (ids.length > 0 && displays.length > 0) {\n value[searchKeyName] = ids.join(', ');\n value[searchDisplayName] = displays.join(', ');\n } else {\n value = [''];\n }\n }\n}\n","import { FilterType } from './filter-type';\nimport { Scope } from './scope';\nimport { EnumItem } from './enum-item';\nimport { DependsOn } from './depends-on';\nimport { Search } from './search';\n\nexport class Filter {\n constructor(\n public type: FilterType,\n public required: boolean,\n public label: string,\n public domain: string,\n public scope: Scope,\n public name: string,\n public contexts: string[],\n public services: string[],\n public value?: string,\n public enumItems?: EnumItem[],\n public defaultValue?: string,\n public search?: Search,\n public tabIndex?: number,\n public minValue?: number,\n public maxValue?: number,\n public dependsOn?: DependsOn[],\n public mask?: string,\n public regExp?: string\n ) {}\n}\n","export enum FilterType {\n STRING = 'STRING',\n BOOLEAN = 'BOOLEAN',\n INTEGER = 'INTEGER',\n DOUBLE = 'DOUBLE',\n DATE = 'DATE',\n DATETIME = 'DATETIME',\n TIME = 'TIME',\n MONEY = 'MONEY',\n ENUMERATION = 'ENUMERATION',\n SEARCH = 'SEARCH'\n}\n","export enum Scope {\n DOMAIN = 'DOMAIN',\n SERVICE = 'SERVICE'\n}\n","import { DependsOn } from './depends-on';\nimport { Observable, Subject } from 'rxjs';\nimport { FormControl } from '@angular/forms';\nimport { FilterType } from './filter-type';\n\nexport interface FormFilterConfig {\n name: string;\n domain: string;\n services: string[];\n value: any;\n defaultValue: any;\n dependsOn: DependsOn[];\n isMultiple: boolean;\n}\n\nexport class FormFilter {\n private _value: any;\n private _valueObserver = new Subject<any>();\n valueChanges: Observable<any> = this._valueObserver.asObservable();\n name: string;\n domain: string;\n contexts: string[];\n services: string[];\n childs: string[];\n dependsOn: DependsOn[];\n filterControl: FormControl;\n type: FilterType;\n isMultiple: boolean;\n defaultValue: any;\n\n constructor({ value, ...config }: FormFilterConfig) {\n this._value = value;\n Object.assign(this, config);\n }\n\n set value(value: any) {\n this._value = value;\n this._valueObserver.next(value);\n }\n\n get value() {\n return this._value;\n }\n}\n","import { FormGroup } from '@angular/forms';\nimport { Field } from '@seniorsistemas/angular-components';\n\nexport class TabView {\n fields: Field[] = [];\n form: FormGroup;\n name?: string;\n\n constructor(config: any) {\n this.form = new FormGroup({});\n Object.assign(this, config);\n }\n}\nexport class ContextTab extends TabView {\n activeFilters = 0;\n domain: string;\n\n get label() {\n return `${this.name} (${this.activeFilters})`;\n }\n}\n","export const FILTER_ID_SEPARATOR = ':';\n\nexport function getFilterId(domain: string, filterName: string) {\n return `${domain}${FILTER_ID_SEPARATOR}${filterName}`;\n}\n\nexport function getTabId(domain: string, contextId: string) {\n return `${domain}${FILTER_ID_SEPARATOR}${contextId}`;\n}\n","import { FilterType } from '../../models';\nconst moment = require('moment');\n\n/**\n *@description Necessary because of https://github.com/rollup/rollup/issues/670\n *\n * */\n\nconst { DATETIME, TIME, DATE } = FilterType;\n\nconst parsers = {\n [DATE]: (value: any) => dateParser(value, 'YYYY-MM-DD'),\n [TIME]: (value: any) => dateParser(value, 'HH:mm:ss'),\n [DATETIME]: (value: any) => dateParser(value)\n};\n\nexport function parseFilterValue(value: any, type: FilterType) {\n const parser = parsers[type];\n if (value !== undefined && value !== null && value !== '') {\n return parser ? parser(value) : value;\n }\n\n return value;\n}\n\nfunction dateParser(value: string, format?: string) {\n const date = moment(value);\n return format ? date.format(format) : date.format();\n}\n","export function jsonPath(object: Object, path: string): any {\n path = path.replace('$.', '');\n const allPaths = path.split('.');\n const currentPath = allPaths[0];\n const value = object[currentPath];\n allPaths.shift();\n\n if (allPaths.length) {\n return jsonPath(value, allPaths.join('.'));\n }\n return value;\n}\n","export const filterOperators = {\n 'contains': (attr: string, value: string) => `containing(${attr}, '${value}')`,\n '=': (attr: string, value: string) => `${attr} eq ${value}`,\n '!=': (attr: string, value: string) => `${attr} ne ${value}`,\n '>': (attr: string, value: string) => `${attr} gt ${value}`,\n '<': (attr: string, value: string) => `${attr} lt ${value}`,\n '>=': (attr: string, value: string) => `${attr} ge ${value}`\n};\n","import { FilterType, Search } from '../models';\nimport { searchKeyName } from '../shared/constants';\n\nexport * from './filter-id/index';\nexport * from './filter-value/index';\nexport * from './json-path';\nexport * from './filterOperators';\n\nexport function toUserFormat(value: any, type: FilterType) {\n let parsedValue;\n if (type !== FilterType.SEARCH || !Array.isArray(value)) {\n parsedValue = [(value === null || value === undefined) ? '' : value];\n } else if (Array.isArray(value)) {\n if (value.length) {\n parsedValue = value[0] === null ? [''] : value;\n } else {\n parsedValue = [''];\n }\n } else {\n parsedValue = value ? value : [''];\n }\n\n return JSON.stringify(parsedValue);\n}\n\nexport function toFilterFormat(value: any, type: FilterType) {\n let parsedValue;\n if (type !== FilterType.SEARCH) {\n parsedValue = [(value === null || value === undefined) ? '' : value];\n } else if (Array.isArray(value)) {\n /*\n Deve enviar para o backend o valor contido no keyValue em array.\n\n Exemplo:\n Quando tenho dois objetos selecionados [{1,'Base'},{2,'Other'}] deve enviar no padrão: [1,'Base'], [2,'Other']\n */\n parsedValue = [''];\n if (value !== null && value.length > 0 && value[0] !== '') {\n parsedValue = value.map(v => v[searchKeyName]);\n }\n } else {\n parsedValue = [value === null ? '' : value[searchKeyName]];\n }\n\n return JSON.stringify(parsedValue);\n}\n\nexport function fromJson(value: any, type: FilterType, isNotMultiple: boolean) {\n const parsedValue = JSON.parse(value);\n if (type !== FilterType.SEARCH || isNotMultiple) {\n return parsedValue[0];\n }\n\n return parsedValue;\n}\n\nexport function getSearchType(search: Search): any {\n return search.basicSearch ? search.basicSearch : search.entitySearch;\n}\n","const moment = require('moment');\nimport { FilterType, Filter, Search } from '../../models';\nimport { FormControl, Validators } from '@angular/forms';\nimport { getSearchType } from '..';\n\n/**\n *@description Necessary because of https://github.com/rollup/rollup/issues/670\n *\n * */\n\nconst { DATE, DATETIME, TIME } = FilterType;\n\nconst parsers = {\n [DATE]: (v: string) => dateParser(v),\n [DATETIME]: (v: string) => dateParser(v),\n [TIME]: (v: string) => dateParser(v, 'HH:mm:ss')\n};\n\nexport function parseFormValue(value: string, type: FilterType, search?: Search) {\n const parser = parsers[type];\n const parsedValue = JSON.parse(value);\n const isNotMultiple = search && getSearchType(search).output.maxSelectedItems === 1;\n\n let formValue;\n if ((type === FilterType.INTEGER || type === FilterType.DOUBLE || type === FilterType.MONEY) && parsedValue[0] === '') {\n formValue = null;\n } else if (type !== FilterType.SEARCH || isNotMultiple) {\n formValue = parsedValue[0];\n } else {\n formValue = parsedValue[0] ? parsedValue : [];\n }\n\n if (parser) {\n return parser(formValue);\n }\n\n return formValue;\n}\n\nexport function createFormControl({ minValue, maxValue, regExp, value, type, search }: Filter) {\n const validators = createValidators(minValue, maxValue, regExp);\n const formValue = parseFormValue(value, type, search);\n\n return new FormControl(formValue, { validators });\n}\n\nfunction createValidators(minValue: number, maxValue: number, regExp: string) {\n const { pattern, min, max } = Validators;\n const validators = [];\n\n regExp && validators.push(pattern(regExp));\n minValue !== undefined && validators.push(min(minValue));\n maxValue !== undefined && validators.push(max(maxValue));\n\n return validators;\n}\n\nfunction dateParser(value: string, format?: string): Date | string {\n return value !== null && value !== '' ? moment(value, format).toDate() : '';\n}\n","import { contains, equals } from 'ramda';\nimport { FilterType } from '../models';\nconst supportedTypes = [\n FilterType.STRING,\n FilterType.BOOLEAN,\n FilterType.INTEGER,\n FilterType.ENUMERATION,\n FilterType.TIME,\n FilterType.MONEY,\n FilterType.DATETIME,\n FilterType.DATE,\n FilterType.DOUBLE\n];\n\nconst operation = {\n '>': (value: number, otherValue: number) => {\n return value > otherValue;\n },\n '<': (value: number, otherValue: number) => {\n return value < otherValue;\n },\n '>=': (value: number, otherValue: number) => {\n return value >= otherValue;\n },\n '<=': (value: number, otherValue: number) => {\n return value <= otherValue;\n },\n 'contains': (value: any, otherValue: any[]) => {\n return contains(value, otherValue);\n },\n '=': (value: any, otherValue: any) => {\n if (typeof otherValue === 'number') {\n return equals(Number(value), otherValue);\n }\n return equals(value, otherValue);\n },\n '!=': (value: any, otherValue: any) => {\n if (typeof otherValue === 'number') {\n return !equals(Number(value), otherValue);\n }\n return !equals(value, otherValue);\n }\n};\n\nexport function compare(operator: string, value: any, otherValue: any) {\n const comparator = operation[operator];\n return comparator(value, otherValue);\n}\n\nexport function isValidOperator(operator: string) {\n return !!operation[operator];\n}\n\nexport function isSupportedType(type: FilterType) {\n return contains(type, supportedTypes);\n}\n","import { Injectable } from '@angular/core';\nimport { TranslateService } from '@ngx-translate/core';\n\nconst TRANSLATE_PREFIX = 'platform.filter_service';\n\n@Injectable()\nexport class CalendarOptionsService {\n constructor(private translate: TranslateService) {\n }\n public getOptions() {\n return {\n clear: this.translate.instant(`${TRANSLATE_PREFIX}.clear`),\n dateFormat: this.translate.instant(`${TRANSLATE_PREFIX}.date_format`),\n dayNames: [\n this.translate.instant(`${TRANSLATE_PREFIX}.name_sunday`),\n this.translate.instant(`${TRANSLATE_PREFIX}.name_monday`),\n this.translate.instant(`${TRANSLATE_PREFIX}.name_tuesday`),\n this.translate.instant(`${TRANSLATE_PREFIX}.name_wednesday`),\n this.translate.instant(`${TRANSLATE_PREFIX}.name_thursday`),\n this.translate.instant(`${TRANSLATE_PREFIX}.name_friday`),\n this.translate.instant(`${TRANSLATE_PREFIX}.name_saturday`)\n ],\n dayNamesMin: [\n this.translate.instant(`${TRANSLATE_PREFIX}.min_sunday`),\n this.translate.instant(`${TRANSLATE_PREFIX}.min_monday`),\n this.translate.instant(`${TRANSLATE_PREFIX}.min_tuesday`),\n this.translate.instant(`${TRANSLATE_PREFIX}.min_wednesday`),\n this.translate.instant(`${TRANSLATE_PREFIX}.min_thursday`),\n this.translate.instant(`${TRANSLATE_PREFIX}.min_friday`),\n this.translate.instant(`${TRANSLATE_PREFIX}.min_saturday`)\n ],\n dayNamesShort: [\n this.translate.instant(`${TRANSLATE_PREFIX}.short_sunday`),\n this.translate.instant(`${TRANSLATE_PREFIX}.short_monday`),\n this.translate.instant(`${TRANSLATE_PREFIX}.short_tuesday`),\n this.translate.instant(`${TRANSLATE_PREFIX}.short_wednesday`),\n this.translate.instant(`${TRANSLATE_PREFIX}.short_thursday`),\n this.translate.instant(`${TRANSLATE_PREFIX}.short_friday`),\n this.translate.instant(`${TRANSLATE_PREFIX}.short_saturday`)\n ],\n firstDayOfWeek: 0,\n hourFormat: this.translate.instant(`${TRANSLATE_PREFIX}.hour_format`),\n monthNames: [\n this.translate.instant(`${TRANSLATE_PREFIX}.name_january`),\n this.translate.instant(`${TRANSLATE_PREFIX}.name_february`),\n this.translate.instant(`${TRANSLATE_PREFIX}.name_march`),\n this.translate.instant(`${TRANSLATE_PREFIX}.name_april`),\n this.translate.instant(`${TRANSLATE_PREFIX}.name_may`),\n this.translate.instant(`${TRANSLATE_PREFIX}.name_june`),\n this.translate.instant(`${TRANSLATE_PREFIX}.name_july`),\n this.translate.instant(`${TRANSLATE_PREFIX}.name_august`),\n this.translate.instant(`${TRANSLATE_PREFIX}.name_september`),\n this.translate.instant(`${TRANSLATE_PREFIX}.name_october`),\n this.translate.instant(`${TRANSLATE_PREFIX}.name_november`),\n this.translate.instant(`${TRANSLATE_PREFIX}.name_december`),\n ],\n monthNamesShort: [\n this.translate.instant(`${TRANSLATE_PREFIX}.short_january`),\n this.translate.instant(`${TRANSLATE_PREFIX}.short_february`),\n this.translate.instant(`${TRANSLATE_PREFIX}.short_march`),\n this.translate.instant(`${TRANSLATE_PREFIX}.short_april`),\n this.translate.instant(`${TRANSLATE_PREFIX}.short_may`),\n this.translate.instant(`${TRANSLATE_PREFIX}.short_june`),\n this.translate.instant(`${TRANSLATE_PREFIX}.short_july`),\n this.translate.instant(`${TRANSLATE_PREFIX}.short_august`),\n this.translate.instant(`${TRANSLATE_PREFIX}.short_september`),\n this.translate.instant(`${TRANSLATE_PREFIX}.short_october`),\n this.translate.instant(`${TRANSLATE_PREFIX}.short_november`),\n this.translate.instant(`${TRANSLATE_PREFIX}.short_december`),\n ],\n today: this.translate.instant(`${TRANSLATE_PREFIX}.today`)\n };\n }\n}\n","import { HttpErrorResponse } from '@angular/common/http';\nimport { MessageService } from \"primeng/api\";\nimport { ChangeDetectorRef, Component, EventEmitter, HostListener, Input, OnDestroy, OnInit, Output } from '@angular/core';\nimport { BehaviorSubject, from, Subject } from 'rxjs';\nimport { filter as rxFilter, map, mergeMap, takeUntil, tap } from 'rxjs/operators';\n\nimport { Context, DependsOn, EntitySearchInput, EnumItem, Filter, FilterType, Scope } from '../../models';\nimport { ContextTab, TabView } from '../../models/tab-view';\nimport { AdvancedFilterService } from '../../services/advanced-filter.service';\nimport { FormFilter } from '../../models/form-filter';\nimport {\n filterOperators,\n fromJson,\n getFilterId,\n getSearchType,\n getTabId,\n jsonPath,\n parseFilterValue,\n toFilterFormat,\n toUserFormat\n} from '../../utils/index';\nimport { createFormControl } from '../../utils/form-field';\nimport { clone, equals } from 'ramda';\nimport { compare, isSupportedType, isValidOperator } from '../../utils/comparator';\n\nimport {\n AutocompleteField,\n CalendarField,\n RadioButtonField,\n CurrencyField,\n Field,\n FieldConfig,\n FieldType,\n NumberField,\n SelectField,\n TextField,\n RationButtonOption,\n CalendarFieldConfig\n} from '@seniorsistemas/angular-components';\n\nimport { searchDisplayName, searchKeyName } from '../../shared/constants';\nimport { TranslateService } from '@ngx-translate/core';\nimport { Message } from 'primeng/api';\nimport { CalendarOptionsService } from '../../services/calendar-options.service';\n\nconst TRANSLATE_PREFIX = 'platform.filter_service';\nconst TOAST_LIFE = 5000;\n\n@Component({\n selector: 's-app-form-filter',\n templateUrl: './form-filter.component.html',\n styleUrls: ['./form-filter.component.scss']\n})\nexport class FormFilterComponent implements OnInit, OnDestroy {\n destroy$ = new Subject();\n errorState: HttpErrorResponse;\n tabs: Map<string, ContextTab>;\n contexts: Context[] = [];\n formFilters: FormFilter[] = [];\n oldFormFilters: any[] = [];\n actualFormFilters: any[] = [];\n general = new TabView({ name: 'Geral' });\n totalFiltersActive = 0;\n isMobile = false;\n tabViewOrientation = 'left';\n error = false;\n\n errorMessages = {\n min: this.translate.instant(`${TRANSLATE_PREFIX}.error_min_value`),\n max: this.translate.instant(`${TRANSLATE_PREFIX}.error_max_value`),\n pattern: this.translate.instant(`${TRANSLATE_PREFIX}.invalid_pattern`)\n };\n\n @Input() showMessages = true;\n @Input() isModal = false;\n @Output() totalFiltersActiveOutput = new EventEmitter<number>();\n @Output() errorOutput = new EventEmitter<boolean>();\n @Output() showDialogOutput = new EventEmitter<boolean>();\n @Output() closeModalOutput = new EventEmitter();\n\n constructor(\n private filterService: AdvancedFilterService,\n public translate: TranslateService,\n private messageService: MessageService,\n private calendarOptionsService: CalendarOptionsService,\n private changeDetectorRef: ChangeDetectorRef\n ) { }\n\n @HostListener('window:resize', ['$event'])\n onResizeWindow(event: any) {\n const { innerWidth } = event.target;\n this.isMobile = innerWidth <= 640;\n this.tabViewOrientation = this.isMobile ? 'top' : 'left';\n }\n\n ngOnInit() {\n this.isMobile = innerWidth <= 640;\n this.tabViewOrientation = this.isMobile ? 'top' : 'left';\n this.subscribeContextsObservable();\n this.subscribeFiltersObservable();\n\n window.addEventListener('message', event => {\n const data = event.data;\n const message = data.message && data.message.split(':')[1];\n if (message === 'addContext') {\n this.filterService.addContexts(...data.payload);\n }\n });\n }\n\n ngOnDestroy() {\n this.destroy$.next(true);\n }\n\n hasChanges() {\n const keys = Object.keys(this.formFilters);\n const oldKeys = Object.keys(this.oldFormFilters);\n if (!oldKeys.length) {\n return true;\n }\n const filtered = keys.filter(key => {\n const currentValue = this.formFilters[key].value;\n const oldValue = this.oldFormFilters[key] && this.oldFormFilters[key].value;\n return !equals(currentValue, oldValue);\n });\n return filtered.length > 0;\n }\n\n onApplyFilters() {\n this.hasChanges() && this.closeModalOutput.emit();\n }\n\n public getFilters() {\n this.hasChanges() && this.filterService.tryAgain(this.contexts);\n }\n\n applyFilters(showToast = false) {\n if (this.hasChanges()) {\n this.showDialogOutput.emit(false);\n this.counterUpdate();\n const filters = this.getFiltersValues(this.formFilters);\n this.filterService.saveTickedFilters(filters);\n } else if (showToast) {\n const message = {\n key: 'filterServiceToastKey',\n severity: 'info',\n life: TOAST_LIFE,\n detail: this.translate.instant(`${TRANSLATE_PREFIX}.applied_filter_nochange`, { activeFilters: this.totalFiltersActive })\n };\n this.sendMessage(message);\n }\n this.oldFormFilters = clone(this.formFilters);\n }\n\n getDefaultValue(defaultValue: any, isMultiple: boolean) {\n if (defaultValue === undefined || (isMultiple && defaultValue[0] === '')) {\n return [];\n }\n\n return defaultValue;\n }\n\n clearFilters() {\n const keys = Object.keys(this.formFilters);\n keys.forEach(key => this.cleanFieldAndSetDefaultValue(key));\n }\n\n sendCloseMessage() {\n window.parent.postMessage(\n {\n message: 'dashboard:close-modal',\n payload: {\n modalName: 'advanced-filter-1'\n }\n },\n '*'\n );\n }\n\n sendMessage(message: Message) {\n if (this.showMessages) {\n this.messageService.add(message);\n } else {\n window.parent.postMessage(\n {\n message: 'dashboard:toastr',\n payload: {\n type: 'success',\n message: message.detail\n }\n },\n '*'\n );\n }\n }\n\n saveFilters() {\n const filters = this.parseToUserFilters(this.formFilters);\n const savedFilterSuccess = () => {\n const message = {\n key: 'filterServiceToastKey',\n severity: 'info',\n life: TOAST_LIFE,\n detail: this.translate.instant(`${TRANSLATE_PREFIX}.saved_filters_success`, { activeFilters: this.totalFiltersActive })\n };\n this.sendMessage(message);\n this.counterUpdate();\n };\n\n const savedFiltersError = () => {\n const message = {\n key: 'filterServiceToastKey',\n severity: 'error',\n life: TOAST_LIFE,\n detail: this.translate.instant(`${TRANSLATE_PREFIX}.saved_filters_error`, { activeFilters: this.totalFiltersActive })\n };\n this.sendMessage(message);\n };\n this.filterService\n .saveFilters(filters) //\n .subscribe(savedFilterSuccess, savedFiltersError);\n }\n\n private counterUpdate() {\n this.totalFiltersActive = this.countActiveFilters(this.tabs);\n this.totalFiltersActiveOutput.emit(this.totalFiltersActive);\n }\n\n private countActiveFilters(tabs: Map<string, ContextTab>) {\n let totalFiltersActive = 0;\n\n tabs.forEach(tabView => {\n const { value } = tabView.form;\n tabView.activeFilters = Object.keys(value).reduce((appliedFilters, key) => {\n const filterValue = value[key];\n const isArray = Array.isArray(filterValue);\n const isValidArray = isArray && filterValue.length > 0;\n\n if (isValidArray || (!isArray && filterValue)) {\n appliedFilters++;\n }\n\n return appliedFilters;\n }, 0);\n totalFiltersActive += tabView.activeFilters;\n });\n\n return totalFiltersActive;\n }\n\n private parseToUserFilters(filters: FormFilter[]) {\n const ids = Object.keys(filters);\n\n return ids.reduce((all, filterId) => {\n const { type, services, name, value, domain, contexts } = filters[filterId] as Filter;\n const filterValue = toUserFormat(value, type);\n\n const values = services.map(service => ({ name, service, value: filterValue, domain, contexts }));\n\n return [...all, ...values];\n }, []);\n }\n\n private getFiltersValues(filters: FormFilter[]) {\n const ids = Object.keys(filters);\n\n return ids.reduce((all, filterId) => {\n const { type, services, name, value, domain } = filters[filterId] as Filter;\n const filterValue = toFilterFormat(value, type);\n const values = services.map(service => ({ name, service, value: filterValue, domain }));\n\n return [...all, ...values];\n }, []);\n }\n\n private subscribeContextsObservable() {\n const { contextsObserver } = this.filterService;\n contextsObserver.pipe(takeUntil(this.destroy$)).subscribe((contexts: Context[]) => (this.contexts = contexts));\n }\n\n errorStateAction() {\n this.filterService.tryAgain(this.contexts);\n }\n\n private subscribeFiltersObservable() {\n const { filtersObserver } = this.filterService;\n\n filtersObserver\n .pipe(takeUntil(this.destroy$)) //\n .subscribe(({ filters, applyFilter, error, message }) => {\n this.errorOutput.emit(error);\n this.error = error;\n this.errorState = message;\n if (!error) {\n this.tabs = this.createTabs(filters);\n this.counterUpdate();\n this.setDependencies(this.formFilters);\n this.createChildArray();\n if (filters.length > 0 && applyFilter) {\n this.applyFilters();\n }\n }\n });\n }\n\n private setDependencies(filters: FormFilter[]) {\n const names = Object.keys(filters);\n const dependencies = from(names).pipe(\n map(key => filters[key] as FormFilter),\n rxFilter(({ dependsOn }) => dependsOn && dependsOn.length > 0),\n tap(({ dependsOn, domain, filterControl }) => {\n const invalidFilters = dependsOn\n .filter(dep => dep.required)\n .filter(dep => {\n const id = getFilterId(domain, dep.filterName);\n const formFilter = filters[id];\n const { value, type } = formFilter;\n const { comparator } = dep;\n if (comparator && isValidOperator(comparator.operator) && isSupportedType(type)) {\n const fieldValue = parseFilterValue(value, type);\n return !compare(comparator.operator, comparator.value, fieldValue);\n }\n return dep.required ? !formFilter.value : formFilter.value;\n });\n\n if (invalidFilters.length > 0) {\n filterControl.disable();\n }\n }),\n map(({ domain, dependsOn, filterControl }) => ({ domain, dependsOn, filterControl }))\n );\n\n dependencies.subscribe(({ dependsOn, domain, filterControl }) =>\n from(dependsOn)\n .pipe(\n rxFilter(dep => dep.required),\n map(({ filterName }) => getFilterId(domain, filterName)),\n map(filterId => filters[filterId] as FormFilter),\n mergeMap(formFilter => from(formFilter.valueChanges)),\n map(val => {\n const comparation = dependsOn.every(dep => {\n const filterId = getFilterId(domain, dep.filterName);\n if (this.formFilters[filterId]) {\n const type = this.formFilters[filterId].type;\n const { comparator } = dep;\n if (comparator && isValidOperator(comparator.operator) && isSupportedType(type)) {\n const value = parseFilterValue(val, type);\n return compare(comparator.operator, comparator.value, value);\n }\n return true;\n }\n });\n return !this.IsEmpty(val) && comparation ? 'enable' : 'disable';\n })\n )\n .subscribe(status => filterControl[status]())\n );\n }\n\n private addGeneralField(filter: Filter) {\n const { name, domain, type } = filter;\n const controlName = getFilterId(domain, name);\n const fieldControl = createFormControl(filter);\n\n fieldControl.valueChanges\n .pipe(\n takeUntil(this.destroy$),\n map(v => parseFilterValue(v, type)),\n tap(value => (this.formFilters[controlName].value = value))\n ) //\n .subscribe(val =>\n this.tabs.forEach(tab => {\n const control = tab.form.controls[name];\n if (control && tab.domain === domain) {\n control.setValue(val, { emitEvent: false });\n }\n })\n );\n\n const newFilter = { ...filter, ...{ name: controlName } };\n const newField = this.createField(newFilter);\n this.general.form.addControl(controlName, fieldControl);\n this.general.fields.push(newField);\n }\n\n /*\n * Verifica os contextos de cada filtro, caso todos os contextos foram informados:\n * @return true\n * Caso não tenha nenhum contexto, considera-se por padrão que é todos:\n * @return true\n */\n private containsAllContexts(myContexts: string[]) {\n if (!myContexts.length) {\n return true;\n }\n const allContexts = this.contexts.map(data => data.contextId);\n return equals(myContexts.sort(), allContexts.sort());\n }\n\n /**\n *\n * @todo Refatorar. O método possui muitas responsabilidades\n */\n private createTabs(filters: Filter[]) {\n return filters.reduce((tabs, filter) => {\n const { domain, services, name, type, scope, contexts, dependsOn, value, search, defaultValue } = filter;\n const isNotMultiple = search && getSearchType(search).output.maxSelectedItems === 1;\n const field = this.createField(filter);\n const filterId = getFilterId(domain, name);\n const filterConfig = {\n domain,\n contexts,\n services,\n name,\n dependsOn,\n value: fromJson(value, type, isNotMultiple),\n type,\n isMultiple: !isNotMultiple,\n defaultValue: fromJson(defaultValue, type, isNotMultiple)\n };\n this.formFilters[filterId] = new FormFilter(filterConfig);\n const formFilter = this.formFilters[filterId];\n if (scope === Scope.DOMAIN && this.containsAllContexts(contexts)) {\n this.addGeneralField(filter);\n }\n\n contexts.forEach(contextId => {\n const tabId = getTabId(domain, contextId);\n const fieldControl = createFormControl(filter);\n\n if (!tabs.has(tabId)) {\n const { contextLabel } = this.contexts.find(context => context.contextId === contextId);\n const tab = new ContextTab({ domain, name: contextLabel });\n tabs.set(tabId, tab);\n }\n\n fieldControl.valueChanges\n .pipe(takeUntil(this.destroy$)) //\n .subscribe((val: any) => this.updateFilterValue(tabId, name, val, domain, type));\n\n const contextTab = tabs.get(tabId);\n\n contextTab.fields.push(field);\n contextTab.form.addControl(filter.name, fieldControl);\n\n if (!formFilter.filterControl) {\n formFilter.filterControl = fieldControl;\n }\n });\n\n return tabs;\n }, new Map<string, ContextTab>());\n }\n\n private updateFilterValue(tabId: string, filterName: string, value: any, domain: string, type: FilterType) {\n const controlOpts = { emitEvent: false };\n const fieldValue = parseFilterValue(value, type);\n const filterId = getFilterId(domain, filterName);\n const generalFieldControl = this.general.form.controls[filterId];\n\n this.tabs.forEach(({ form }, key) => {\n const control = form.controls[filterName];\n\n if (tabId !== key && control) {\n control.setValue(value, controlOpts);\n }\n });\n const { childs } = this.formFilters[filterId];\n childs && childs.forEach((child: any) => this.cleanFieldAndSetDefaultValue(child.filter.key));\n generalFieldControl && generalFieldControl.setValue(value, controlOpts);\n this.formFilters[filterId].value = fieldValue;\n }\n\n private cleanFieldAndSetDefaultValue(key: string) {\n const { isMultiple, defaultValue, filterControl, type } = this.formFilters[key] as FormFilter;\n const finalValue = this.getDefaultValue(defaultValue, isMultiple);\n\n if (filterControl) {\n if (type === 'DATE' || (type === 'SEARCH' && isMultiple)) {\n filterControl.setValue(finalValue);\n }\n if (type === 'INTEGER' || type === 'DOUBLE' || type === 'MONEY') {\n finalValue === '' ? filterControl.setValue(null) : filterControl.setValue(finalValue);\n } else {\n filterControl.setValue(finalValue, { onlySelf: true });\n }\n }\n }\n\n private createChildArray() {\n const keys = Object.keys(this.formFilters);\n keys.forEach(key => {\n const { dependsOn, domain } = this.formFilters[key];\n dependsOn.forEach((field: any) => {\n const filterId = getFilterId(domain, field.filterName);\n if (this.formFilters[filterId]) {\n if (!this.formFilters[filterId].childs) {\n this.formFilters[filterId].childs = [];\n }\n this.formFilters[filterId].childs.push({ filter: { key, required: field.required } });\n }\n });\n });\n }\n\n private createField(filter: Filter): Field {\n const { name, label, enumItems, type, mask } = filter;\n const translatedEnumItems =\n enumItems && enumItems.map((item: EnumItem) => ({ label: this.translate.instant(item.label), value: item.value }));\n const field = { name, label: this.translate.instant(label), placeholder: '' };\n\n const creators = {\n [FilterType.STRING]: () => new TextField({ ...field, mask: mask ? () => mask : null, type: FieldType.String }),\n [FilterType.MONEY]: () => new CurrencyField({ ...field, type: FieldType.Money }),\n [FilterType.BOOLEAN]: () => this.createRadioButton({ ...field }),\n [FilterType.DATE]: () => this.createCalendar({ ...field, type: FieldType.Date }),\n [FilterType.DATETIME]: () => this.createCalendar({ ...field, type: FieldType.DateTime }),\n [FilterType.TIME]: () => this.createCalendar({ ...field, type: FieldType.Time }),\n [FilterType.ENUMERATION]: () =>\n new SelectField({\n ...field,\n placeholder: this.translate.instant('platform.filter_service.select'),\n options: [...translatedEnumItems] as any,\n type: FieldType.Enum\n }),\n [FilterType.INTEGER]: () =>\n new NumberField({\n ...field,\n numberLocaleOptions: this.optionsInteger(),\n mask: mask ? () => mask : null,\n type: FieldType.Integer\n }),\n [FilterType.DOUBLE]: () => new CurrencyField({ ...field, type: FieldType.Double }),\n [FilterType.SEARCH]: () => this.createAutocompleteField(field, filter)\n };\n\n return creators[type]();\n }\n\n private createRadioButton(field: FieldConfig) {\n const options = [\n { label: this.translate.instant(`${TRANSLATE_PREFIX}.yes`), value: true },\n { label: this.translate.instant(`${TRANSLATE_PREFIX}.no`), value: false }\n ] as RationButtonOption[];\n\n return new RadioButtonField({ ...field, type: FieldType.Radio, options });\n }\n\n private createCalendar(config: CalendarFieldConfig) {\n const calendar = new CalendarField(config);\n calendar.calendarLocaleOptions = this.calendarOptionsService.getOptions();\n if (!this.isModal) calendar.appendTo = 'body';\n return calendar;\n }\n\n private createAutocompleteField(field: FieldConfig, { dependsOn, search, domain, name }: Filter) {\n const suggestionsObservable = new BehaviorSubject<any[]>([]);\n const { queryParam } = getSearchType(search).input;\n const { displayFields, keyFields, resultDataJsonPath, displayFieldConcatToken, maxSelectedItems } = getSearchType(search).output;\n const filterId = getFilterId(domain, name);\n const suggestionsError = (messageError?: string) => {\n const messageDetail = messageError ? messageError : this.translate.instant(`${TRANSLATE_PREFIX}.find_suggestions_error`, { activeFilters: this.totalFiltersActive })\n const message = {\n key: 'filterServiceToastKey',\n severity: 'error',\n life: TOAST_LIFE,\n detail: messageDetail\n };\n this.sendMessage(message);\n };\n const onSearch = (val: string) => {\n const params = { [queryParam]: val };\n dependsOn && Object.assign(params, this.getDependenciesValues(dependsOn, domain));\n\n const searchUrl =\n search && search.type === 'ENTITY'\n ? this.getEntitySearchUrl(search.entitySearch.input, val, dependsOn)\n : getSearchType(search).input.url;\n\n this.filterService\n .searchFieldSuggestions(searchUrl, params, search.type)\n .pipe(\n map(response => jsonPath(response, resultDataJsonPath)),\n map((suggestions: any[]) => this.addSuggestionFields(suggestions, displayFields, keyFields, displayFieldConcatToken, filterId))\n )\n .subscribe(result => {\n suggestionsObservable.next(result);\n this.changeDetectorRef.detectChanges();\n }, (error) => {\n let messageError = undefined\n if (error && error.error.message) messageError = error.error.message\n suggestionsError(messageError)\n });\n };\n\n return new AutocompleteField({\n ...field,\n onSearch,\n appendTo: 'body',\n suggestionsObservable,\n displayField: searchDisplayName,\n dataKey: searchKeyName,\n multiple: maxSelectedItems > 1,\n size: { lg: 12, md: 12, xl: 12 },\n emptyMessage: this.translate.instant(`${TRANSLATE_PREFIX}.search_empty_message`)\n });\n }\n\n private getEntitySearchUrl(search: EntitySearchInput, value: string, dependsOn: DependsOn[]) {\n const { attributes, domainName, entityName, serviceName } = search;\n const url = `${domainName}/${serviceName}/entities/${entityName}/?filter=`;\n const filters: any = attributes.map(attr => filterOperators[attr.comparator](attr.name, value));\n\n dependsOn &&\n dependsOn.forEach(obj => {\n const filterId = getFilterId(domainName, obj.filterName);\n const fieldValue = this.formFilters[filterId].value[searchKeyName];\n filters.push(`${obj.entityAttribute} eq '${fieldValue}'`);\n });\n\n // O regex apenas seleciona as virgulas ignorando as que estiverem dentro do ()\n return url.concat(filters).replace(/[,]+(?![^(]*[)])/g, ` ${search.operator} `);\n }\n\n private addSuggestionFields(suggestions: any[], displayFields: string[], keyFields: string[], separator: string, filterId: string) {\n const addValue = (acc: string, value: any, token: string) => (acc ? `${acc}${token}${value}` : value);\n\n const result = suggestions.map(suggestion => ({\n ...suggestion,\n [searchDisplayName]: displayFields.reduce((value, display) => {\n return addValue(value, this.translate.instant(suggestion[display]), separator);\n }, ''),\n [searchKeyName]: keyFields.reduce((value, key) => addValue(value, suggestion[key], ', '), '')\n }));\n this.formFilters[filterId].invalidValue = result.length === 0;\n\n return result.filter(item => {\n const { value } = this.formFilters[filterId];\n if (Array.isArray(value)) {\n const index = value.findIndex((i: any) => i.$$__keyValue__ === item.$$__keyValue__);\n if (index === -1) {\n return item;\n }\n } else {\n return item;\n }\n });\n }\n\n private getDependenciesValues(dependencies: DependsOn[], domain: string) {\n return dependencies.reduce((params, { filterName }) => {\n const filterId = getFilterId(domain, filterName);\n if (this.formFilters[filterId]) {\n const { value, type } = this.formFilters[filterId];\n if (type === 'ENUMERATION') {\n params[filterName] = value;\n } else {\n if (Array.isArray(value)) {\n params[filterName] = value.map(arr => arr[searchKeyName]);\n } else {\n params[filterName] = value ? value[searchKeyName] : [''];\n }\n }\n this.IsEmpty(params[filterName]) && delete params[filterName];\n return params;\n }\n }, {});\n }\n\n /*\n * Verifica se o valor informado é falso, em arrays, é verificado cada item\n */\n private IsEmpty(value: any) {\n return Array.isArray(value) ? value.every(data => !data) : !value;\n }\n\n /**\n * Return format to specify for integer type field\n */\n private optionsInteger() {\n return { currencySymbol: '', decimalSeparator: '', thousandsSeparator: '' };\n }\n}\n","import { Component, HostListener, Input, OnDestroy, OnInit, ViewChild, ViewEncapsulation } from '@angular/core';\nimport { NavigationEnd, Router } from '@angular/router';\nimport { TranslateService } from '@ngx-translate/core';\nimport { Subscription } from 'rxjs';\nimport { FormFilterComponent } from '../form-filter/form-filter.component';\n\nconst TRANSLATE_PREFIX = 'platform.filter_service';\n\n@Component({\n selector: 's-advanced-filter',\n templateUrl: './advanced-filter.component.html',\n styleUrls: ['./advanced-filter.component.scss'],\n encapsulation: ViewEncapsulation.None\n})\nexport class AdvancedFilterComponent implements OnInit, OnDestroy {\n @Input() labelButton = 'Filters';\n @Input() onlyContent = false;\n @Input() hideButtons = false;\n @Input() canOpenFilter = true;\n @Input() showActiveFiltersCountBadge = true;\n @Input() filterAndSave = false;\n\n subscriptions: Subscription[] = [];\n\n isMobile = false;\n tabViewOrientation = 'left';\n totalFiltersActive = 0;\n showDialog = false;\n error = false;\n\n @ViewChild(FormFilterComponent)\n modalComponent: FormFilterComponent;\n\n mobileButtonActions = [\n { id: 'save', label: this.translate.instant('save'), command: () => this.modalComponent.saveFilters() },\n { id: 'clear', label: this.translate.instant('clear'), command: () => this.modalComponent.clearFilters() }\n ];\n\n constructor(public translate: TranslateService, private router: Router) {}\n\n ngOnInit() {\n this.isMobile = innerWidth <= 640;\n this.tabViewOrientation = this.isMobile ? 'top' : 'left';\n\n const sub = this.router.events.subscribe(e => {\n if (e instanceof NavigationEnd) {\n this.modalComponent.getFilters();\n }\n });\n\n this.subscriptions.push(sub);\n }\n\n ngOnDestroy() {\n this.subscriptions.forEach(v => v.unsubscribe());\n }\n\n @HostListener('window:resize', ['$event'])\n onResizeWindow(event: any) {\n const { innerWidth } = event.target;\n this.isMobile = innerWidth <= 640;\n this.tabViewOrientation = this.isMobile ? 'top' : 'left';\n }\n\n get appliedFiltersTooltip() {\n return this.totalFiltersActive > 1\n ? this.translate.instant(`${TRANSLATE_PREFIX}.applied_filters_message`, { totalActiveFilters: this.totalFiltersActive })\n : this.translate.instant(`${TRANSLATE_PREFIX}.applied_filter_message`, { totalActiveFilters: this.totalFiltersActive });\n }\n\n onError(event: boolean) {\n this.error = event;\n }\n\n saveFilters() {\n this.modalComponent.saveFilters();\n }\n\n clearFilters() {\n this.modalComponent.clearFilters();\n }\n\n close() {\n this.modalComponent.getFilters();\n window.parent.postMessage(\n {\n message: 'dashboard:close-modal',\n payload: {\n modalName: 'advanced-filter-1'\n }\n },\n '*'\n );\n }\n\n applyFilters() {\n if (this.modalComponent.hasChanges()) {\n this.showDialog = false;\n }\n\n if (this.filterAndSave) {\n this.modalComponent.saveFilters();\n }\n\n this.modalComponent.applyFilters(true);\n }\n\n onApplyFilters() {\n if (this.filterAndSave) {\n this.modalComponent.saveFilters();\n }\n\n this.modalComponent.onApplyFilters();\n }\n\n toggleDialog() {\n this.showDialog = !this.showDialog;\n }\n\n updateTotalFiltersActive(event: number) {\n this.totalFiltersActive = event;\n }\n}\n","import { NgModule } from '@angular/core';\nimport { CommonModule } from '@angular/common';\nimport { FormsModule, ReactiveFormsModule } from '@angular/forms';\n\nimport { ButtonModule as PrimeNGButtonModule } from 'primeng/button';\nimport { DialogModule } from 'primeng/dialog';\nimport { TabViewModule } from 'primeng/tabview';\nimport { ToastModule } from 'primeng/toast';\nimport { TooltipModule } from 'primeng/tooltip';\nimport { MessageService } from \"primeng/api\";\nimport { DynamicFormModule, ButtonModule, EmptyStateModule, LocaleService } from '@seniorsistemas/angular-components';\n\nimport { MapValuesPipe } from './pipes/map-values.pipe';\nimport { TranslatePipe } from './pipes/translate.pipe';\nimport { TranslationsModule } from './../translations/translations.module';\nimport { fallback } from './locale/fallback';\nimport { TranslateService } from '@ngx-translate/core';\nimport { AdvancedFilterService } from './services/advanced-filter.service';\nimport { AdvancedFilterComponent } from './components/advanced-filter/advanced-filter.component';\nimport { FormFilterComponent } from './components/form-filter/form-filter.component';\nimport { CalendarOptionsService } from './services/calendar-options.service';\n\nexport class AppRoutingModule {}\n@NgModule({\n imports: [\n DialogModule,\n ButtonModule,\n PrimeNGButtonModule,\n TabViewModule,\n CommonModule,\n FormsModule,\n ReactiveFormsModule,\n DynamicFormModule,\n ToastModule,\n EmptyStateModule,\n TooltipModule,\n TranslationsModule.forChild([{domain: 'platform', service: 'filter_service', fallback}]),\n ],\n providers: [AdvancedFilterService, LocaleService, MessageService, TranslateService, CalendarOptionsService],\n declarations: [AdvancedFilterComponent, FormFilterComponent, MapValuesPipe, TranslatePipe],\n exports: [AdvancedFilterComponent, FormFilterComponent]\n})\nexport class AdvancedFilterModule {}\n","import { Injectable } from '@angular/core';\nimport { HttpInterceptor, HttpHandler, HttpRequest, HttpEvent, HttpResponse } from '@angular/common/http';\nimport { Observable } from 'rxjs';\nimport { map } from 'rxjs/operators';\nconst jc = require('json-cycle');\n\n@Injectable({\n providedIn: 'root',\n})\nexport class CyclicJsonInterceptor implements HttpInterceptor {\n public intercept(req: HttpRequest<any>, next: HttpHandler): Observable<HttpEvent<any>> {\n if (req.body instanceof Blob === false && req.body instanceof FormData === false) {\n req = req.clone({ body: jc.decycle(req.body) });\n }\n return next.handle(req).pipe(\n map((event: HttpEvent<any>) => {\n if (event instanceof HttpResponse) {\n event = event.clone({ body: jc.retrocycle(event.body) });\n }\n return event;\n })\n );\n }\n}\n","import { NgModule } from '@angular/core';\nimport { HttpClientModule, HTTP_INTERCEPTORS } from '@angular/common/http';\nimport { CyclicJsonInterceptor } from './cyclic-json-interceptor.service';\n\n@NgModule({\n imports: [HttpClientModule],\n providers: [{ provide: HTTP_INTERCEPTORS, useClass: CyclicJsonInterceptor, multi: true }]\n})\nexport class CyclicJsonInterceptorModule {}\n","import { service } from '@seniorsistemas/senior-platform-data';\nimport { Injectable } from '@angular/core';\nimport { Observable, defer, from } from 'rxjs';\n\n@Injectable()\nexport class RestUrl {\n get(): Observable<string> {\n return defer(() => from(service.getRestUrl()));\n }\n}\n","import { service } from '@seniorsistemas/senior-platform-data';\nimport { Injectable } from '@angular/core';\nimport { Observable, defer, from } from 'rxjs';\n\n@Injectable()\nexport class XServicesUrl {\n\n get(): Observable<string> {\n return defer(() => {\n const url = service.getXServicesUrl();\n return from(url);\n });\n }\n\n}\n","import { Injectable } from '@angular/core';\nimport { HttpInterceptor as AngularHttpInterceptor, HttpHandler, HttpRequest, HttpEvent } from '@angular/common/http';\nimport { user } from '@seniorsistemas/senior-platform-data';\nimport { Observable, forkJoin, defer, from } from 'rxjs';\nimport { mergeMap } from 'rxjs/operators';\n\nimport { RestUrl } from './rest-url.service';\nimport { XServicesUrl } from './x-services-url.service';\n\n@Injectable()\nexport class HttpInterceptor implements AngularHttpInterceptor {\n\n constructor(private readonly restUrl: RestUrl, private readonly xServicesUrl: XServicesUrl) {}\n\n public intercept(originalReq: HttpRequest<any>, next: HttpHandler): Observable<HttpEvent<any>> {\n if (!originalReq.url.includes(`://`)) {\n const getAuthHeader = defer(() => from(user.getAuthHeader()));\n if (/^\\/?[^\\/]+\\/[^\\/]+\\/api\\/(?:latest|v\\d+)\\/.+$/g.test(originalReq.url)) {\n const getXServicesUrl = this.xServicesUrl.get();\n return forkJoin([getXServicesUrl, getAuthHeader]).pipe(\n mergeMap((values: any) => {\n const [xUrl, authHeader] = values;\n return this.injectBaseUrl(originalReq, next, xUrl, authHeader);\n })\n );\n }\n const getRestUrl = this.restUrl.get();\n return forkJoin([getRestUrl, getAuthHeader]).pipe(\n mergeMap((values: any) => {\n const [bridgeUrl, authHeader] = values;\n return this.injectBaseUrl(originalReq, next, bridgeUrl, authHeader);\n })\n );\n }\n return next.handle(originalReq);\n }\n\n private injectBaseUrl(originalReq: HttpRequest<any>, next: HttpHandler,\n baseUrl: string, authorization: string): Observable<HttpEvent<any>> {\n const request = originalReq.clone({\n url: baseUrl + originalReq.url,\n headers: originalReq.headers.set(`Authorization`, authorization)\n });\n return next.handle(request);\n }\n\n}\n","import { NgModule } from '@angular/core';\nimport { HttpClientModule, HTTP_INTERCEPTORS } from '@angular/common/http';\n\nimport { RestUrl } from './rest-url.service';\nimport { XServicesUrl } from './x-services-url.service';\nimport { HttpInterceptor } from './http-interceptor.service';\n\n@NgModule({\n imports: [HttpClientModule],\n providers: [RestUrl, XServicesUrl, { provide: HTTP_INTERCEPTORS, useClass: HttpInterceptor, multi: true }]\n})\nexport class HttpInterceptorModule {}\n","import { InjectionToken } from '@angular/core';\n\nexport const RESOURCES = new InjectionToken<Resources>('RESOURCES');\nexport const ENVIRONMENT = new InjectionToken<Environment>('ENVIRONMENT');\nexport type Resources = Resource[];\n\nexport interface Permission {\n resource: string;\n action: string;\n authorized: boolean;\n owner: boolean;\n resourceFilters: string[];\n}\n\nexport interface Result {\n permissions: Permission[];\n authorized: boolean;\n}\n\nexport class Resource {\n name: string;\n actions: string[];\n uri?: string;\n redirectToError ? = false;\n actionsToCheck?: string[];\n entity?: boolean;\n}\n\nexport class Environment {\n domain?: string;\n service?: string;\n ignorePermissions: boolean;\n}\n","import { HttpClient } from '@angular/common/http';\nimport { Inject, Injectable } from '@angular/core';\nimport { Router } from '@angular/router';\nimport { TranslateService } from '@ngx-translate/core';\nimport { MessageService } from \"primeng/api\";\nimport { from, Observable, of, throwError } from 'rxjs';\nimport { catchError, map } from 'rxjs/operators';\nimport { Environment, ENVIRONMENT, Permission, Resource, Resources, RESOURCES, Result } from './permissions.config';\n\nexport let promise: Promise<any>;\n\n@Injectable({\n providedIn: 'root'\n})\nexport class PermissionsService {\n private checkedPermissions: Permission[] = [];\n private actionUrl = 'platform/authorization/queries';\n\n constructor(\n @Inject(RESOURCES) private readonly resources: Resources,\n @Inject(ENVIRONMENT) private readonly environment: Environment,\n private readonly http: HttpClient,\n private readonly router: Router,\n private readonly messageService: MessageService,\n private readonly translate: TranslateService\n ) {}\n\n // v2\n checkAccess(resources: Resource[]): Observable<any> {\n const permissions: any[] = [];\n\n resources.forEach(rec => {\n rec.actions.forEach(action => {\n if (!rec.uri) {\n const resource = this.getUriByResourceName(rec.name, rec.entity);\n rec.uri = resource;\n }\n permissions.push({ action, resource: rec.uri });\n });\n });\n\n return this.http.post(`${this.actionUrl}/checkAccess`, { includeFilters: true, permissions }).pipe(\n map(({ permissions: checkedPermissions }: Result) => {\n this.checkedPermissions = [...this.checkedPermissions, ...checkedPermissions];\n\n const values = {};\n\n if (this.shouldRedirectToForbiddenPage(resources, checkedPermissions)) {\n this.router.navigate(['error', 403]);\n return throwError('forbidden');\n }\n\n checkedPermissions.forEach(permission => {\n const resource = resources.find(res => res.uri === permission.resource);\n const { name } = resource;\n\n values[name] = values[name] || {};\n values[name][permission.action] = permission.authorized;\n values[name][permission.action.toLowerCase()] = permission.authorized;\n\n if (permission.resourceFilters && permission.resourceFilters.length) {\n if (!values[name]['resourceFilters']) {\n values[name]['resourceFilters'] = [];\n }\n\n permission.resourceFilters.forEach((resourceFilter) => {\n values[name]['resourceFilters'].push(resourceFilter);\n });\n }\n });\n\n return values;\n })\n );\n }\n\n // v1\n get(resource: string = '') {\n if (!promise) {\n promise = this.getPermissions();\n }\n return from(promise).pipe(\n map((permissions: Permission[]) => {\n this.checkedPermissions = permissions;\n\n if (resource) {\n const resourceKey = Object.keys(permissions).find(key => key.toLowerCase() === resource.toLowerCase());\n return permissions[resourceKey];\n }\n return permissions;\n }),\n catchError((err: any) => {\n promise = undefined;\n this.messageService.add({\n severity: 'error',\n summary: this.translate.instant('permission_error_summary'),\n detail: this.translate.instant('permission_error_detail')\n });\n\n return of(this.getPermissionObject(false));\n })\n );\n }\n\n isAuthorized(resourceName: string, action: string, isEntity?: boolean): boolean {\n if (!this.checkedPermissions.length) {\n throwError('\\'Permissions\\' are not defined. You should call \\'get\\' or \\'checkAccess\\' method first.');\n }\n\n const resourceUri = this.getUriByResourceName(resourceName, isEntity);\n\n const permissionsOfResource = this.checkedPermissions.filter(perm => perm.resource === resourceUri);\n const permissionOfAction = permissionsOfResource.find(permRec => permRec.action.toLowerCase() === action.toLowerCase());\n\n return permissionOfAction && permissionOfAction.authorized;\n }\n\n private getUriByResourceName(resourceName: string, isEntity?: boolean): string {\n const { domain, service } = this.environment;\n\n if (!domain || !service) {\n throwError('You must inform domain and service name');\n }\n\n const uriBase = `res://senior.com.br/${domain}/${service}`;\n\n if (isEntity) {\n return `${uriBase}/entities/${resourceName}`;\n } else {\n return `${uriBase}/${resourceName}`;\n }\n }\n\n /**\n * Valida com base nas propriedade redirectToError e actionsToCheck\n * se a ação de um recurso deve enviar para a página de erro caso não tenha autorização\n */\n private shouldRedirectToForbiddenPage(resources: Resource[] = [], permissions: Permission[]): boolean {\n const permissionsDenied = permissions.filter(perm => !perm.authorized);\n\n if (permissionsDenied && permissionsDenied.length) {\n const resourcesToCheck = resources.filter(resource => resource.redirectToError);\n\n if (resourcesToCheck && resourcesToCheck.length) {\n return resourcesToCheck.every(resource => {\n const actionsToCheck = resource.actionsToCheck && resource.actionsToCheck.length ? resource.actionsToCheck : resource.actions;\n\n return actionsToCheck.every(action =>\n permissionsDenied.some(permissionDenied => permissionDenied.resource === resource.uri && permissionDenied.action === action)\n );\n });\n }\n\n return false;\n }\n\n return false;\n }\n\n private getFlatEnvironment() {\n return this.environment.ignorePermissions;\n }\n\n private getFlatResources() {\n return this.resources.reduce((result: Resource[], item: any) => {\n if (!item) {\n return result;\n }\n\n if (Array.isArray(item)) {\n return [...result, ...item];\n }\n\n return [...result, item];\n }, []);\n }\n\n private getPermissionObject(defaultValue: boolean) {\n return this.getFlatResources().reduce((resources: object, resource: Resource) => {\n resources[resource.name] = resource.actions.reduce((actions: any, action: any) => {\n actions[action] = defaultValue;\n actions[action.toLowerCase()] = defaultValue;\n return actions;\n }, {});\n return resources;\n }, {});\n }\n\n private async getPermissions() {\n if (this.getFlatEnvironment()) {\n return this.getPermissionObject(true);\n }\n const resources = this.getFlatResources();\n const perm = resources\n .map(resource => resource.actions.map((action: any) => ({ action: action, resource: resource.uri })))\n .reduce((acc: any, val: any) => [...acc, ...val]);\n\n const permissions: any[] = await this.http\n .post<any>(`${this.actionUrl}/checkAccess`, {\n includeFilters: false,\n permissions: perm\n })\n .toPromise()\n .then(response => response.permissions);\n\n const values = {};\n\n permissions.forEach((permission: any) => {\n const resource = resources.find((res: any) => res.uri === permission.resource);\n const { name } = resource;\n values[name] = values[name] ? values[name] : {};\n values[name][permission.action] = permission.authorized;\n values[name][permission.action.toLowerCase()] = permission.authorized;\n });\n return values;\n }\n}\n","import { NgModule, ModuleWithProviders } from '@angular/core';\nimport { Resource, RESOURCES, ENVIRONMENT, Environment } from './permissions.config';\nimport { PermissionsService } from './permissions.service';\n\n@NgModule()\nexport class PermissionsModule {\n public static forRoot(resources: Resource[], environment: Environment): ModuleWithProviders<PermissionsModule> {\n return {\n ngModule: PermissionsModule,\n providers: [\n PermissionsService,\n {\n provide: RESOURCES,\n multi: true,\n useValue: resources\n },\n {\n provide: ENVIRONMENT,\n multi: false,\n useValue: environment\n }\n ]\n };\n }\n\n public static forChild(resources: Resource[]): ModuleWithProviders<PermissionsModule> {\n return {\n ngModule: PermissionsModule,\n providers: [\n {\n provide: RESOURCES,\n multi: true,\n useValue: resources\n }\n ]\n };\n }\n}\n","export function ResourceFactory({ domain, service, resource }: { domain: string; service: string; resource: string }) {\n return `res://senior.com.br/${domain}/${service}/${resource}`;\n}\nfunction endpointFactoryFunction(domain: string, service: string) {\n // The @seniorsistemas/platform-components http interceptor is handling the base url portion of the final URL\n const create = (method: string, endpoint: string) => `${domain}/${service}/${method}/${endpoint}`;\n const resource = (resource: string) => ResourceFactory({ domain, service, resource });\n return {\n resource,\n query: create.bind(null, 'queries'),\n action: create.bind(null, 'actions'),\n signal: create.bind(null, 'signals'),\n entity(entity: string) {\n const URL = create('entities', entity);\n return {\n create: () => URL,\n update: (id: string) => URL + '/' + id,\n remove: (id: string) => URL + '/' + id\n };\n }\n };\n}\n\nexport const endpointFactory = endpointFactoryFunction;\n// ADD HERE YOUR NEW ENDPOINT\nexport const PLATFORM_FEATURE_TOGGLE = endpointFactoryFunction('platform', 'feature_toggle');\n","import { Injectable } from '@angular/core';\nimport { HttpClient } from '@angular/common/http';\nimport { Observable, from, of } from 'rxjs';\nimport { Feature, GetEnabledFeaturesOutput } from './models/feature';\nimport { map, shareReplay, catchError, mergeMap } from 'rxjs/operators';\nimport { user } from '@seniorsistemas/senior-platform-data';\nimport { PLATFORM_FEATURE_TOGGLE } from './constants/endpoint.constant';\n\n@Injectable({ providedIn: 'root' })\nexport class FeatureToggleService {\n constructor(private http: HttpClient) {}\n\n cache: { [key: string]: Observable<Feature[]> } = {};\n\n isEnabled({ domain, service, name }: Feature, tenant?: string): Observable<boolean> {\n let tenantObs;\n if (tenant) {\n tenantObs = of(tenant);\n } else {\n tenantObs = from(user.getUserData()).pipe(map(userData => userData.tenantName));\n }\n return tenantObs.pipe(\n mergeMap(tenant => {\n const key = JSON.stringify({ tenant, domain, service });\n if (!this.cache[key]) {\n this.cache[key] = this.http\n .post<GetEnabledFeaturesOutput>(PLATFORM_FEATURE_TOGGLE.query('getEnabledFeatures'), { tenant, domain, service })\n .pipe(\n map(output => output.features),\n shareReplay(1),\n catchError(err => {\n console.error(err);\n delete this.cache[key];\n return of([]);\n })\n );\n }\n return this.cache[key];\n }),\n map((features: Feature[]) => {\n return features.findIndex(f => f.name === name) !== -1;\n })\n );\n }\n}\n","import { NgModule } from '@angular/core';\nimport { HttpClientModule } from '@angular/common/http';\nimport { FeatureToggleService } from './feature-toggle.service';\nimport { HttpInterceptorModule } from '../http-interceptor/http-interceptor.module';\n\n@NgModule({\n imports: [HttpClientModule, HttpInterceptorModule],\n providers: [FeatureToggleService]\n})\nexport class FeatureToggleModule {}\n","export enum UserAction {\n CONFIRMED = 'CONFIRMED',\n POSTPONED = 'POSTPONED',\n REFUSED = 'REFUSED'\n}\n","import { SpotlightNotification } from './../models/spotlight-notification.interface';\nimport { HttpClient } from '@angular/common/http';\nimport { Injectable } from '@angular/core';\nimport { Observable } from 'rxjs';\nimport {\n SpotlightScreenList,\n SpotlightUsersList,\n SpotlightControlList,\n SpotlightUser,\n SpotlightControl\n} from '../models/index';\n\n@Injectable()\nexport class SpotlightService {\n constructor(private http: HttpClient) {}\n\n private API_URL = 'platform/spotlight/';\n\n public getUser(): Promise<any> {\n return this.http.post<any>('platform/user/queries/getUser', {}).toPromise();\n }\n\n public listSpotlightScreen(): Observable<SpotlightScreenList> {\n return this.http.get<SpotlightScreenList>(this.API_URL + 'queries/listSpotlightScreen');\n }\n\n public listSpotlightUsers(): Promise<SpotlightUsersList> {\n return this.http.get<SpotlightUsersList>(this.API_URL + 'queries/listSpotlightUsers').toPromise();\n }\n\n public listSpotlightControl(): Promise<SpotlightControlList> {\n return this.http.get<SpotlightControlList>(this.API_URL + 'queries/listSpotlightControl').toPromise();\n }\n\n public saveSpotlightUser(content: SpotlightUser) {\n return this.http.post<SpotlightUser>(this.API_URL + 'actions/saveSpotlightUsers', { content });\n }\n\n public saveSpotlightControl(content: SpotlightControl) {\n return this.http.post<SpotlightControl>(this.API_URL + 'actions/saveSpotlightControl', { content });\n }\n\n public notificateSpotlight(content: SpotlightNotification) {\n return this.http.post<SpotlightNotification>(this.API_URL + 'actions/notificateSpotlight', content);\n }\n}\n","export enum EnumDisplayType {\n ADVERSITING = 'ADVERSITING',\n INTEGRATION = 'INTEGRATION'\n}\n","import { EnumSpotlightStatus } from './spotlight-status.enum';\n\nexport class SpotlightControl {\n id?: string;\n spotlightId: string;\n status: EnumSpotlightStatus;\n firstUser?: string;\n createdBy?: string;\n createdDate?: string;\n lastModifiedBy?: string;\n lastModifiedDate?: string;\n}","export enum EnumSpotlightStatus {\n ACTIVE = 'ACTIVE',\n IN_PROGRESS = 'IN_PROGRESS',\n NO_STARTED = 'NO_STARTED',\n REFUSED = 'REFUSED'\n}\n","import { UserAction } from './../models/user-action.enum';\nimport { SpotlightNotification } from './../models/spotlight-notification.interface';\nimport {\n Component,\n EventEmitter,\n Input,\n OnInit,\n Output\n} from '@angular/core';\nimport { SpotlightService } from '../service/spotlight.service';\nimport {\n Spotlight,\n SpotlightScreen,\n EnumDisplayType,\n EnumSpotlightStatus,\n SpotlightControlList,\n SpotlightUsersList,\n SpotlightUser,\n SpotlightControl\n} from '../models/index';\nimport { DatePipe } from '@angular/common';\nimport { CookieService } from 'ngx-cookie-service';\n\n@Component({\n selector: 's-spotlight',\n templateUrl: './spotlight.component.html',\n styleUrls: ['./spotlight.component.scss']\n})\nexport class SpotlightComponent implements OnInit {\n\n constructor(\n private spotlightService: SpotlightService,\n private cookieService: CookieService,\n private datePipe: DatePipe\n ) {}\n\n public header: string;\n public imgUrl: string;\n public primaryButtonLabel: string;\n public primaryButtonTooltip: string;\n public canAppear = false;\n\n private currentUser: string;\n private spotlightUsersList: SpotlightUsersList;\n private spotlightControlsList: SpotlightControlList;\n private spotlightScreen: SpotlightScreen;\n private canEmitEvent: boolean;\n\n @Input()\n public visible = false;\n\n @Input()\n public menuId: string;\n\n @Input()\n public fade = false;\n\n @Output()\n public visibleChange = new EventEmitter<boolean>();\n\n async ngOnInit() {\n await this.setValues();\n this.fetchSpotlight();\n }\n\n private async setValues() {\n const userData: any = JSON.parse(this.cookieService.get('com.senior.token'));\n this.currentUser = userData.username;\n this.spotlightUsersList = await this.spotlightService.listSpotlightUsers();\n this.spotlightControlsList = await this.spotlightService.listSpotlightControl();\n }\n\n private setValuesInSpotlight(values: Spotlight): void {\n this.header = values.spotlightTitle;\n this.imgUrl = values.bannerUrl;\n this.primaryButtonLabel = values.primaryButtonLabel;\n this.primaryButtonTooltip = values.primaryButtonHint;\n }\n\n private getShowDate(days: number): string {\n const currentDate = new Date();\n return this.datePipe.transform(currentDate.setDate(currentDate.getDate() + days).toString(), 'yyyy-MM-dd');\n }\n\n private fetchSpotlight(): void {\n this.spotlightService.listSpotlightScreen().subscribe(value => {\n this.spotlightScreen = value.contents.filter(val => val.screenMenuId === this.menuId)[0];\n if (this.spotlightScreen) {\n this.showSpotlight(this.spotlightScreen.spotlight);\n }\n });\n }\n\n private showSpotlight(spotlight: Spotlight): void {\n if (this.validateDate(spotlight.initialDate) && this.validateFinalDate(spotlight.finalDate) && this.validateSpotlight(spotlight)) {\n this.setValuesInSpotlight(spotlight);\n this.canAppear = true;\n const control = this.getSpotlightControlFromList(this.spotlightScreen.spotlight.id);\n this.canEmitEvent = !control || this.currentUser !== control.firstUser;\n }\n }\n\n private validateDate(date: string): boolean {\n if (date) {\n const currentDate = this.datePipe.transform(new Date().toString(), 'yyyy-MM-dd');\n const initialDate = this.datePipe.transform(date, 'yyyy-MM-dd');\n\n return currentDate >= initialDate;\n }\n return false;\n }\n\n private validateFinalDate(date: string): boolean {\n if (date) {\n const currentDate = this.datePipe.transform(new Date().toString(), 'yyyy-MM-dd');\n const finalDate = this.datePipe.transform(date, 'yyyy-MM-dd');\n\n return currentDate <= finalDate;\n }\n return true;\n }\n\n private validateSpotlight(spotlight: Spotlight): boolean {\n if (!this.validateControlsList(this.spotlightControlsList, spotlight, this.currentUser)) {\n return false;\n }\n if (!this.validateDisplayType(spotlight, this.spotlightUsersList, this.spotlightControlsList, this.currentUser)) {\n return false;\n }\n return true;\n }\n\n private validateControlsList(controlsList: SpotlightControlList, spotlight: Spotlight, currentUser: string): boolean {\n if (controlsList.totalElements) {\n\n const notCompatibleControls = controlsList.contents.filter(control => {\n if (control.status === EnumSpotlightStatus.ACTIVE) {\n return control.spotlightId === spotlight.id;\n\n } else if (control.status === EnumSpotlightStatus.IN_PROGRESS) {\n return control.spotlightId === spotlight.id && control.firstUser !== currentUser;\n }\n });\n\n if (notCompatibleControls.length > 0) {\n return false;\n }\n }\n return true;\n }\n\n private validateDisplayType(\n spotlight: Spotlight,\n usersList: SpotlightUsersList,\n controlsList: SpotlightControlList,\n currentUser: string\n ): boolean {\n\n switch (spotlight.displayType) {\n case EnumDisplayType.ADVERSITING:\n return usersList.totalElements ? this.validateUser(usersList.contents, spotlight) : true;\n\n case EnumDisplayType.INTEGRATION:\n\n if (controlsList.totalElements) {\n const compatibleControls = controlsList.contents.filter(control => {\n\n switch (control.status) {\n\n case EnumSpotlightStatus.NO_STARTED:\n return control.spotlightId === spotlight.id;\n\n case EnumSpotlightStatus.REFUSED:\n return usersList.totalElements ? this.validateUser(usersList.contents, spotlight) : true;\n\n case EnumSpotlightStatus.IN_PROGRESS:\n return control.firstUser === currentUser\n && control.spotlightId === spotlight.id;\n }\n });\n if (compatibleControls.length === 0) {\n return false;\n }\n }\n return true;\n }\n }\n\n private validateUser(users: SpotlightUser[], spotlight: Spotlight): boolean {\n let spotlightUsers = users.filter(user => user.spotlightId === spotlight.id);\n\n if (!spotlightUsers.length) {\n spotlightUsers = users.filter(user => user.userOperation === this.currentUser);\n\n return spotlightUsers.length === 0;\n }\n\n const compatibleUserToValidate = spotlightUsers.filter(user => user.userOperation === this.currentUser)[0];\n\n return compatibleUserToValidate ? this.validateDate(compatibleUserToValidate.showDate) : true;\n }\n\n private saveSpotlightUser(days?: number): void {\n\n const spotlight = this.spotlightScreen.spotlight;\n\n const user = this.spotlightUsersList.contents.filter(val => {\n return val.spotlightId === spotlight.id\n && val.userOperation === this.currentUser;\n })[0];\n\n let spotlightUser: SpotlightUser = {\n spotlightId: spotlight.id,\n showDate: days ? this.getShowDate(days) : null,\n userOperation: this.currentUser\n };\n\n if (user) {\n spotlightUser = {\n id: user.id,\n ...spotlightUser\n };\n }\n this.spotlightService.saveSpotlightUser(spotlightUser).subscribe();\n }\n\n public onPrimary() {\n const spotlight = this.spotlightScreen.spotlight;\n const notification = this.buildNotification(UserAction.CONFIRMED);\n\n this.saveSpotlightControl();\n this.saveSpotlightUser();\n\n if (this.canEmitEvent) {\n this.spotlightService.notificateSpotlight(notification).subscribe();\n }\n\n if (spotlight.primaryButtonUrl) {\n window.open(spotlight.primaryButtonUrl);\n }\n\n this.close();\n }\n\n public onSecondary(): void {\n const notification = this.buildNotification(UserAction.POSTPONED);\n\n this.saveSpotlightControl(EnumSpotlightStatus.REFUSED);\n this.saveSpotlightUser(this.spotlightScreen.spotlight.daysRememberLate);\n this.spotlightService.notificateSpotlight(notification).subscribe();\n\n this.close();\n }\n\n public onTertiary(): void {\n const notification = this.buildNotification(UserAction.REFUSED);\n\n this.saveSpotlightControl(EnumSpotlightStatus.REFUSED);\n this.saveSpotlightUser(this.spotlightScreen.spotlight.daysNotInterested);\n this.spotlightService.notificateSpotlight(notification).subscribe();\n\n this.close();\n }\n\n /**\n * Verifica se um registro de usuário pertence ao usuário logado e corresponde ao spotlight atual\n * @param user SpotlightUser Objeto representando o registro do usuário para uma spotlight\n * @param spotlight Spotlight Spotlight\n * @returns boolean true se corresponder ao spotlight atual, false caso contrário\n */\n private hasThisRegister(user: SpotlightUser, spotlight: Spotlight): boolean {\n return (user.spotlightId === spotlight.id && user.userOperation === this.currentUser);\n }\n\n /**\n * Verifica se um registro de usuário pertece ao usuário logado, mas não corresponde ao spotlight atual\n * @param user SpotlightUser Objeto representando o registro do usuário para uma spotlight\n * @param spotlight Spotlight Spotlight\n * @returns boolean true se corresponder ao spotlight atual, false caso contrário\n */\n private hasAnotherRegister(user: SpotlightUser, spotlight: Spotlight): boolean {\n return user.spotlightId !== spotlight.id && user.userOperation === this.currentUser;\n }\n\n /**\n * Persiste um novo registro de controle para o spotlight atual se\n * não for encontrado nenhum na lista de controles carregada inicialmente\n * @param status EnumSpotlightStatus Status do controle do spotlight. Se nenhum for informado, IN_PROGRESS será aplicado\n * @returns SpotlightControl Controle do spotlight recuperado/pesistido\n */\n private saveSpotlightControl(status = EnumSpotlightStatus.IN_PROGRESS): SpotlightControl {\n const spotlight = this.spotlightScreen.spotlight;\n let control: SpotlightControl = this.getSpotlightControlFromList(spotlight.id);\n\n if (!control) {\n control = {\n spotlightId: spotlight.id,\n status: status,\n firstUser: this.currentUser\n };\n }\n\n if (this.isNewControl(control) || control.status !== EnumSpotlightStatus.IN_PROGRESS) {\n control.status = status;\n control.firstUser = status === EnumSpotlightStatus.IN_PROGRESS ? this.currentUser : '';\n this.spotlightService.saveSpotlightControl(control).subscribe();\n }\n\n return control;\n }\n\n /**\n * Retorna o controle de spotlight correspondente ao identificador\n * informado na lista de controles carregada na inicialização do componente\n * @param id string Identificador do controle de spotlight\n */\n private getSpotlightControlFromList(id: string): SpotlightControl {\n return this.spotlightControlsList.contents.filter(val => val.spotlightId === id)[0];\n }\n\n /**\n * Verifica se o controle de spotlight informado não foi registrado ainda\n * @param spotlightControl SpotlightControl Controle do spotlight\n * @returns boolean true se ainda não foi registrado na base, false caso contrário\n */\n private isNewControl(spotlightControl: SpotlightControl): boolean {\n return !this.spotlightControlsList.contents.includes(spotlightControl);\n }\n\n /**\n * Retorna um objeto de notificação referente ao botão clicado pelo usuário.\n * @param userAction UserAction Ação realizada pelo usuário ao clicar nos botões da modal\n * @returns SpotlightNotification Objeto de notificação\n */\n private buildNotification(userAction: UserAction): SpotlightNotification {\n const spotlight = this.spotlightScreen.spotlight;\n\n return {\n clickedButton: userAction,\n spotlightControlId: spotlight.id,\n primaryButtonUrl: spotlight.primaryButtonUrl\n };\n }\n\n public close(): void {\n this.visibleChange.emit(false);\n }\n}\n","export const fallback: any = {\n\n 'platform.spotlight.no_interest' : 'Não tenho interesse',\n 'platform.spotlight.remember_late' : 'Lembrar mais tarde'\n};\n","import { Pipe, PipeTransform } from '@angular/core';\nimport { TranslateService } from '@ngx-translate/core';\n\n@Pipe({\n name: 'translate',\n pure: false,\n })\n export class TranslatePipe implements PipeTransform {\n constructor(private translationService: TranslateService) {}\n transform(value: any): any {\n return this.translationService.instant(value);\n }\n }\n","import { NgModule } from '@angular/core';\nimport { CommonModule, DatePipe } from '@angular/common';\n\nimport { ButtonModule } from 'primeng/button';\nimport { TooltipModule } from 'primeng/tooltip';\nimport { HttpInterceptorModule } from '../http-interceptor/http-interceptor.module';\nimport { TranslationsModule } from '../translations/translations.module';\nimport { SpotlightComponent } from './component/spotlight.component';\nimport { SpotlightService } from './service/spotlight.service';\nimport { fallback } from './locale/fallback';\nimport { TranslatePipe } from './pipes/translate.pipe';\nimport { CookieService } from 'ngx-cookie-service';\n\n@NgModule({\n imports: [\n ButtonModule,\n TooltipModule,\n CommonModule,\n HttpInterceptorModule,\n TranslationsModule.forChild([{domain: 'platform', service: 'spotlight', fallback}]),\n ],\n providers: [\n SpotlightService,\n DatePipe,\n CookieService\n ],\n declarations: [\n SpotlightComponent,\n TranslatePipe],\n exports: [SpotlightComponent]\n})\nexport class SpotlightModule {}\n"],"names":["Pipe","TranslateService","InjectionToken","APP_INITIALIZER","Injector","HttpClient","CookieService","NgModule","HttpClientModule","TranslateModule","http","LOCATION_INITIALIZED","user","HttpParams","HttpHeaders","Subject","BehaviorSubject","map","Observable","Injectable","FilterType","Scope","FormGroup","DATE","DATETIME","TIME","parsers","_a","dateParser","FormControl","contains","equals","TRANSLATE_PREFIX","EventEmitter","clone","takeUntil","from","rxFilter","tap","mergeMap","TextField","FieldType","CurrencyField","SelectField","NumberField","RadioButtonField","CalendarField","AutocompleteField","MessageService","ChangeDetectorRef","Input","Output","HostListener","Component","NavigationEnd","Router","ViewChild","ViewEncapsulation","DialogModule","ButtonModule","PrimeNGButtonModule","TabViewModule","CommonModule","FormsModule","ReactiveFormsModule","DynamicFormModule","ToastModule","EmptyStateModule","TooltipModule","LocaleService","jc","HttpResponse","HTTP_INTERCEPTORS","defer","service","forkJoin","throwError","promise","catchError","of","Inject","shareReplay","DatePipe","fallback","TranslatePipe"],"mappings":"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"}
|