@seniorsistemas/platform-components 5.3.3 → 6.0.0
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/esm2022/modules/advanced-filter/advanced-filter.module.mjs +75 -0
- package/esm2022/modules/advanced-filter/components/advanced-filter/advanced-filter.component.mjs +128 -0
- package/esm2022/modules/advanced-filter/components/form-filter/form-filter.component.mjs +651 -0
- package/esm2022/modules/advanced-filter/index.mjs +6 -0
- package/esm2022/modules/advanced-filter/locale/fallback.mjs +73 -0
- package/esm2022/modules/advanced-filter/models/context.mjs +2 -0
- package/esm2022/modules/advanced-filter/models/depends-on.mjs +2 -0
- package/esm2022/modules/advanced-filter/models/enum-item.mjs +2 -0
- package/esm2022/modules/advanced-filter/models/filter-type.mjs +14 -0
- package/esm2022/modules/advanced-filter/models/filter-value.mjs +2 -0
- package/esm2022/modules/advanced-filter/models/filter.mjs +41 -0
- package/esm2022/modules/advanced-filter/models/form-filter.mjs +28 -0
- package/esm2022/modules/advanced-filter/models/index.mjs +11 -0
- package/esm2022/modules/advanced-filter/models/scope.mjs +6 -0
- package/esm2022/modules/advanced-filter/models/search.mjs +2 -0
- package/esm2022/modules/advanced-filter/models/tab-view.mjs +18 -0
- package/esm2022/modules/advanced-filter/models/ticked-filter.mjs +2 -0
- package/esm2022/modules/advanced-filter/pipes/map-values.pipe.mjs +14 -0
- package/esm2022/modules/advanced-filter/pipes/translate.pipe.mjs +19 -0
- package/esm2022/modules/advanced-filter/services/advanced-filter.service.mjs +146 -0
- package/esm2022/modules/advanced-filter/services/calendar-options.service.mjs +77 -0
- package/esm2022/modules/advanced-filter/services/constants.mjs +6 -0
- package/esm2022/modules/advanced-filter/shared/constants.mjs +3 -0
- package/esm2022/modules/advanced-filter/utils/comparator.mjs +53 -0
- package/esm2022/modules/advanced-filter/utils/filter-id/index.mjs +8 -0
- package/esm2022/modules/advanced-filter/utils/filter-value/index.mjs +26 -0
- package/esm2022/modules/advanced-filter/utils/filterOperators.mjs +9 -0
- package/esm2022/modules/advanced-filter/utils/form-field/index.mjs +52 -0
- package/esm2022/modules/advanced-filter/utils/index.mjs +57 -0
- package/esm2022/modules/advanced-filter/utils/json-path.mjs +13 -0
- package/esm2022/modules/cyclic-json-interceptor/cyclic-json-interceptor.module.mjs +14 -0
- package/esm2022/modules/cyclic-json-interceptor/cyclic-json-interceptor.service.mjs +29 -0
- package/esm2022/modules/cyclic-json-interceptor/index.mjs +2 -0
- package/esm2022/modules/feature-toggle/constants/endpoint.constant.mjs +26 -0
- package/esm2022/modules/feature-toggle/feature-toggle.module.mjs +15 -0
- package/esm2022/modules/feature-toggle/feature-toggle.service.mjs +42 -0
- package/esm2022/modules/feature-toggle/index.mjs +4 -0
- package/esm2022/modules/feature-toggle/models/feature.mjs +2 -0
- package/esm2022/modules/http-interceptor/http-interceptor.module.mjs +16 -0
- package/esm2022/modules/http-interceptor/http-interceptor.service.mjs +42 -0
- package/esm2022/modules/http-interceptor/index.mjs +4 -0
- package/esm2022/modules/http-interceptor/rest-url.service.mjs +15 -0
- package/esm2022/modules/http-interceptor/x-services-url.service.mjs +18 -0
- package/esm2022/modules/permissions/permissions.config.mjs +17 -0
- package/esm2022/modules/permissions/permissions.module.mjs +43 -0
- package/esm2022/modules/permissions/permissions.service.mjs +169 -0
- package/esm2022/modules/spotlight/component/spotlight.component.mjs +274 -0
- package/esm2022/modules/spotlight/index.mjs +3 -0
- package/esm2022/modules/spotlight/locale/fallback.mjs +5 -0
- package/esm2022/modules/spotlight/models/display-type.enum.mjs +6 -0
- package/esm2022/modules/spotlight/models/index.mjs +10 -0
- package/esm2022/modules/spotlight/models/spotlight-control-list.interface.mjs +2 -0
- package/esm2022/modules/spotlight/models/spotlight-control.interface.mjs +11 -0
- package/esm2022/modules/spotlight/models/spotlight-notification.interface.mjs +2 -0
- package/esm2022/modules/spotlight/models/spotlight-screen-list.interface.mjs +2 -0
- package/esm2022/modules/spotlight/models/spotlight-screen.interface.mjs +2 -0
- package/esm2022/modules/spotlight/models/spotlight-status.enum.mjs +8 -0
- package/esm2022/modules/spotlight/models/spotlight-user.interface.mjs +2 -0
- package/esm2022/modules/spotlight/models/spotlight-users-list.interface.mjs +2 -0
- package/esm2022/modules/spotlight/models/spotlight.interface.mjs +2 -0
- package/esm2022/modules/spotlight/models/user-action.enum.mjs +7 -0
- package/esm2022/modules/spotlight/pipes/translate.pipe.mjs +19 -0
- package/esm2022/modules/spotlight/service/spotlight.service.mjs +34 -0
- package/esm2022/modules/spotlight/spotlight.module.mjs +53 -0
- package/esm2022/modules/translations/translations.module.mjs +192 -0
- package/esm2022/public-api.mjs +10 -0
- package/esm2022/seniorsistemas-platform-components.mjs +5 -0
- package/fesm2022/seniorsistemas-platform-components.mjs +2432 -0
- package/fesm2022/seniorsistemas-platform-components.mjs.map +1 -0
- package/index.d.ts +5 -0
- package/modules/advanced-filter/advanced-filter.module.d.ts +19 -0
- package/modules/advanced-filter/components/advanced-filter/advanced-filter.component.d.ts +4 -3
- package/modules/advanced-filter/components/form-filter/form-filter.component.d.ts +15 -12
- package/modules/advanced-filter/index.d.ts +1 -0
- package/modules/advanced-filter/models/tab-view.d.ts +1 -1
- package/modules/advanced-filter/pipes/map-values.pipe.d.ts +3 -0
- package/modules/advanced-filter/pipes/translate.pipe.d.ts +4 -3
- package/modules/advanced-filter/services/advanced-filter.service.d.ts +7 -3
- package/modules/advanced-filter/services/calendar-options.service.d.ts +4 -3
- package/modules/advanced-filter/services/constants.d.ts +4 -4
- package/modules/advanced-filter/utils/comparator.d.ts +1 -1
- package/modules/advanced-filter/utils/form-field/index.d.ts +1 -1
- package/modules/advanced-filter/utils/json-path.d.ts +1 -1
- package/modules/cyclic-json-interceptor/cyclic-json-interceptor.module.d.ts +4 -0
- package/modules/cyclic-json-interceptor/cyclic-json-interceptor.service.d.ts +3 -0
- package/modules/feature-toggle/feature-toggle.module.d.ts +5 -0
- package/modules/feature-toggle/feature-toggle.service.d.ts +4 -3
- package/modules/http-interceptor/http-interceptor.module.d.ts +4 -0
- package/modules/http-interceptor/http-interceptor.service.d.ts +3 -3
- package/modules/http-interceptor/rest-url.service.d.ts +3 -0
- package/modules/http-interceptor/x-services-url.service.d.ts +3 -0
- package/modules/permissions/permissions.config.d.ts +7 -1
- package/modules/permissions/permissions.module.d.ts +4 -0
- package/modules/permissions/permissions.service.d.ts +6 -12
- package/modules/spotlight/component/spotlight.component.d.ts +6 -7
- package/modules/spotlight/pipes/translate.pipe.d.ts +4 -3
- package/modules/spotlight/service/spotlight.service.d.ts +4 -3
- package/modules/spotlight/spotlight.module.d.ts +11 -0
- package/modules/translations/translations.module.d.ts +8 -3
- package/package.json +22 -19
- package/public-api.d.ts +1 -0
- package/bundles/seniorsistemas-platform-components.umd.js +0 -2745
- package/bundles/seniorsistemas-platform-components.umd.js.map +0 -1
- package/bundles/seniorsistemas-platform-components.umd.min.js +0 -17
- package/bundles/seniorsistemas-platform-components.umd.min.js.map +0 -1
- package/esm2015/modules/advanced-filter/advanced-filter.module.js +0 -47
- package/esm2015/modules/advanced-filter/components/advanced-filter/advanced-filter.component.js +0 -136
- package/esm2015/modules/advanced-filter/components/form-filter/form-filter.component.js +0 -578
- package/esm2015/modules/advanced-filter/index.js +0 -5
- package/esm2015/modules/advanced-filter/locale/fallback.js +0 -73
- package/esm2015/modules/advanced-filter/models/context.js +0 -1
- package/esm2015/modules/advanced-filter/models/depends-on.js +0 -1
- package/esm2015/modules/advanced-filter/models/enum-item.js +0 -1
- package/esm2015/modules/advanced-filter/models/filter-type.js +0 -14
- package/esm2015/modules/advanced-filter/models/filter-value.js +0 -1
- package/esm2015/modules/advanced-filter/models/filter.js +0 -23
- package/esm2015/modules/advanced-filter/models/form-filter.js +0 -19
- package/esm2015/modules/advanced-filter/models/index.js +0 -5
- package/esm2015/modules/advanced-filter/models/scope.js +0 -6
- package/esm2015/modules/advanced-filter/models/search.js +0 -1
- package/esm2015/modules/advanced-filter/models/tab-view.js +0 -18
- package/esm2015/modules/advanced-filter/models/ticked-filter.js +0 -1
- package/esm2015/modules/advanced-filter/pipes/map-values.pipe.js +0 -12
- package/esm2015/modules/advanced-filter/pipes/translate.pipe.js +0 -22
- package/esm2015/modules/advanced-filter/services/advanced-filter.service.js +0 -140
- package/esm2015/modules/advanced-filter/services/calendar-options.service.js +0 -81
- package/esm2015/modules/advanced-filter/services/constants.js +0 -6
- package/esm2015/modules/advanced-filter/shared/constants.js +0 -3
- package/esm2015/modules/advanced-filter/utils/comparator.js +0 -55
- package/esm2015/modules/advanced-filter/utils/filter-id/index.js +0 -8
- package/esm2015/modules/advanced-filter/utils/filter-value/index.js +0 -24
- package/esm2015/modules/advanced-filter/utils/filterOperators.js +0 -11
- package/esm2015/modules/advanced-filter/utils/form-field/index.js +0 -50
- package/esm2015/modules/advanced-filter/utils/index.js +0 -57
- package/esm2015/modules/advanced-filter/utils/json-path.js +0 -12
- package/esm2015/modules/cyclic-json-interceptor/cyclic-json-interceptor.module.js +0 -14
- package/esm2015/modules/cyclic-json-interceptor/cyclic-json-interceptor.service.js +0 -27
- package/esm2015/modules/cyclic-json-interceptor/index.js +0 -2
- package/esm2015/modules/feature-toggle/constants/endpoint.constant.js +0 -26
- package/esm2015/modules/feature-toggle/feature-toggle.module.js +0 -15
- package/esm2015/modules/feature-toggle/feature-toggle.service.js +0 -48
- package/esm2015/modules/feature-toggle/index.js +0 -3
- package/esm2015/modules/feature-toggle/models/feature.js +0 -1
- package/esm2015/modules/http-interceptor/http-interceptor.module.js +0 -16
- package/esm2015/modules/http-interceptor/http-interceptor.service.js +0 -47
- package/esm2015/modules/http-interceptor/index.js +0 -4
- package/esm2015/modules/http-interceptor/rest-url.service.js +0 -14
- package/esm2015/modules/http-interceptor/x-services-url.service.js +0 -17
- package/esm2015/modules/permissions/permissions.config.js +0 -11
- package/esm2015/modules/permissions/permissions.module.js +0 -42
- package/esm2015/modules/permissions/permissions.service.js +0 -196
- package/esm2015/modules/spotlight/component/spotlight.component.js +0 -274
- package/esm2015/modules/spotlight/index.js +0 -3
- package/esm2015/modules/spotlight/locale/fallback.js +0 -5
- package/esm2015/modules/spotlight/models/display-type.enum.js +0 -6
- package/esm2015/modules/spotlight/models/index.js +0 -4
- package/esm2015/modules/spotlight/models/spotlight-control-list.interface.js +0 -1
- package/esm2015/modules/spotlight/models/spotlight-control.interface.js +0 -3
- package/esm2015/modules/spotlight/models/spotlight-notification.interface.js +0 -1
- package/esm2015/modules/spotlight/models/spotlight-screen-list.interface.js +0 -1
- package/esm2015/modules/spotlight/models/spotlight-screen.interface.js +0 -1
- package/esm2015/modules/spotlight/models/spotlight-status.enum.js +0 -8
- package/esm2015/modules/spotlight/models/spotlight-user.interface.js +0 -1
- package/esm2015/modules/spotlight/models/spotlight-users-list.interface.js +0 -1
- package/esm2015/modules/spotlight/models/spotlight.interface.js +0 -1
- package/esm2015/modules/spotlight/models/user-action.enum.js +0 -7
- package/esm2015/modules/spotlight/pipes/translate.pipe.js +0 -22
- package/esm2015/modules/spotlight/service/spotlight.service.js +0 -38
- package/esm2015/modules/spotlight/spotlight.module.js +0 -37
- package/esm2015/modules/translations/translations.module.js +0 -182
- package/esm2015/public-api.js +0 -9
- package/esm2015/seniorsistemas-platform-components.js +0 -16
- package/esm5/modules/advanced-filter/advanced-filter.module.js +0 -54
- package/esm5/modules/advanced-filter/components/advanced-filter/advanced-filter.component.js +0 -144
- package/esm5/modules/advanced-filter/components/form-filter/form-filter.component.js +0 -626
- package/esm5/modules/advanced-filter/index.js +0 -5
- package/esm5/modules/advanced-filter/locale/fallback.js +0 -73
- package/esm5/modules/advanced-filter/models/context.js +0 -1
- package/esm5/modules/advanced-filter/models/depends-on.js +0 -1
- package/esm5/modules/advanced-filter/models/enum-item.js +0 -1
- package/esm5/modules/advanced-filter/models/filter-type.js +0 -14
- package/esm5/modules/advanced-filter/models/filter-value.js +0 -1
- package/esm5/modules/advanced-filter/models/filter.js +0 -25
- package/esm5/modules/advanced-filter/models/form-filter.js +0 -25
- package/esm5/modules/advanced-filter/models/index.js +0 -5
- package/esm5/modules/advanced-filter/models/scope.js +0 -6
- package/esm5/modules/advanced-filter/models/search.js +0 -1
- package/esm5/modules/advanced-filter/models/tab-view.js +0 -29
- package/esm5/modules/advanced-filter/models/ticked-filter.js +0 -1
- package/esm5/modules/advanced-filter/pipes/map-values.pipe.js +0 -16
- package/esm5/modules/advanced-filter/pipes/translate.pipe.js +0 -23
- package/esm5/modules/advanced-filter/services/advanced-filter.service.js +0 -151
- package/esm5/modules/advanced-filter/services/calendar-options.service.js +0 -82
- package/esm5/modules/advanced-filter/services/constants.js +0 -6
- package/esm5/modules/advanced-filter/shared/constants.js +0 -3
- package/esm5/modules/advanced-filter/utils/comparator.js +0 -55
- package/esm5/modules/advanced-filter/utils/filter-id/index.js +0 -8
- package/esm5/modules/advanced-filter/utils/filter-value/index.js +0 -25
- package/esm5/modules/advanced-filter/utils/filterOperators.js +0 -11
- package/esm5/modules/advanced-filter/utils/form-field/index.js +0 -52
- package/esm5/modules/advanced-filter/utils/index.js +0 -57
- package/esm5/modules/advanced-filter/utils/json-path.js +0 -12
- package/esm5/modules/cyclic-json-interceptor/cyclic-json-interceptor.module.js +0 -17
- package/esm5/modules/cyclic-json-interceptor/cyclic-json-interceptor.service.js +0 -30
- package/esm5/modules/cyclic-json-interceptor/index.js +0 -2
- package/esm5/modules/feature-toggle/constants/endpoint.constant.js +0 -27
- package/esm5/modules/feature-toggle/feature-toggle.module.js +0 -18
- package/esm5/modules/feature-toggle/feature-toggle.service.js +0 -51
- package/esm5/modules/feature-toggle/index.js +0 -3
- package/esm5/modules/feature-toggle/models/feature.js +0 -1
- package/esm5/modules/http-interceptor/http-interceptor.module.js +0 -19
- package/esm5/modules/http-interceptor/http-interceptor.service.js +0 -49
- package/esm5/modules/http-interceptor/index.js +0 -4
- package/esm5/modules/http-interceptor/rest-url.service.js +0 -17
- package/esm5/modules/http-interceptor/x-services-url.service.js +0 -20
- package/esm5/modules/permissions/permissions.config.js +0 -17
- package/esm5/modules/permissions/permissions.module.js +0 -46
- package/esm5/modules/permissions/permissions.service.js +0 -212
- package/esm5/modules/spotlight/component/spotlight.component.js +0 -300
- package/esm5/modules/spotlight/index.js +0 -3
- package/esm5/modules/spotlight/locale/fallback.js +0 -5
- package/esm5/modules/spotlight/models/display-type.enum.js +0 -6
- package/esm5/modules/spotlight/models/index.js +0 -4
- package/esm5/modules/spotlight/models/spotlight-control-list.interface.js +0 -1
- package/esm5/modules/spotlight/models/spotlight-control.interface.js +0 -7
- package/esm5/modules/spotlight/models/spotlight-notification.interface.js +0 -1
- package/esm5/modules/spotlight/models/spotlight-screen-list.interface.js +0 -1
- package/esm5/modules/spotlight/models/spotlight-screen.interface.js +0 -1
- package/esm5/modules/spotlight/models/spotlight-status.enum.js +0 -8
- package/esm5/modules/spotlight/models/spotlight-user.interface.js +0 -1
- package/esm5/modules/spotlight/models/spotlight-users-list.interface.js +0 -1
- package/esm5/modules/spotlight/models/spotlight.interface.js +0 -1
- package/esm5/modules/spotlight/models/user-action.enum.js +0 -7
- package/esm5/modules/spotlight/pipes/translate.pipe.js +0 -23
- package/esm5/modules/spotlight/service/spotlight.service.js +0 -39
- package/esm5/modules/spotlight/spotlight.module.js +0 -40
- package/esm5/modules/translations/translations.module.js +0 -226
- package/esm5/public-api.js +0 -9
- package/esm5/seniorsistemas-platform-components.js +0 -16
- package/fesm2015/seniorsistemas-platform-components.js +0 -2283
- package/fesm2015/seniorsistemas-platform-components.js.map +0 -1
- package/fesm5/seniorsistemas-platform-components.js +0 -2506
- package/fesm5/seniorsistemas-platform-components.js.map +0 -1
- package/seniorsistemas-platform-components.d.ts +0 -15
- package/seniorsistemas-platform-components.metadata.json +0 -1
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"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/models/filter-type.ts","ng://@seniorsistemas/platform-components/modules/advanced-filter/models/scope.ts","ng://@seniorsistemas/platform-components/modules/advanced-filter/locale/fallback.ts","ng://@seniorsistemas/platform-components/modules/advanced-filter/services/advanced-filter.service.ts","ng://@seniorsistemas/platform-components/modules/advanced-filter/services/constants.ts","ng://@seniorsistemas/platform-components/modules/advanced-filter/models/filter.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/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/utils/json-path.ts","ng://@seniorsistemas/platform-components/modules/advanced-filter/shared/constants.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/spotlight/models/user-action.enum.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/display-type.enum.ts","ng://@seniorsistemas/platform-components/modules/spotlight/service/spotlight.service.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"],"names":["extendStatics","d","b","Object","setPrototypeOf","__proto__","Array","p","hasOwnProperty","__assign","assign","t","s","i","n","arguments","length","prototype","call","apply","this","__decorate","decorators","target","key","desc","c","r","getOwnPropertyDescriptor","Reflect","decorate","defineProperty","__param","paramIndex","decorator","__awaiter","thisArg","_arguments","P","generator","Promise","resolve","reject","fulfilled","value","step","next","e","rejected","result","done","then","__generator","body","f","y","g","_","label","sent","trys","ops","verb","throw","return","Symbol","iterator","v","op","TypeError","pop","push","__read","o","m","ar","error","__spread","concat","MapValuesPipe","transform","map","args","from","values","Pipe","name","pure","TranslatePipe","translationService","instant","TranslateService","TranslationsConfig","InjectionToken","TranslationsModule","forRoot","translationsConfigs","ngModule","TranslationsModule_1","providers","provide","APP_INITIALIZER","useFactory","factory","deps","Injector","HttpClient","CookieService","multi","useValue","forChild","NgModule","imports","HttpClientModule","TranslateModule","translate","injector","http","cookieService","_this","get","LOCATION_INITIALIZED","locale","array","configs","reduce","item","isArray","userData","JSON","parse","data","keys","user","getUserData","_a","getLocale","console","warn","fallback","defaultsLanguages","setTranslation","setDefaultLang","configTranslate_1","languages","language","replace","find","results","split","getConfigTranslate","translationsPromises","config","domain","service","Error","params","HttpParams","set","_b","HttpHeaders","getAuthHeader","headers","_c","_d","toPromise","res","bundleFiles","languageBundle","bundle","overriden_1","url","overriden","content","err_2","getTranslationsRequest","all","usedFallback","forEach","file","index","fallbackByLocale","setTranslations","use","err_1","FilterType","Scope","platform.filter_service.cancel","platform.filter_service.try","platform.filter_service.actions","platform.filter_service.save","platform.filter_service.filter","platform.filter_service.error_state","platform.filter_service.saved_filters_success","platform.filter_service.saved_filters_error","platform.filter_service.applied_filter_nochange","platform.filter_service.applied_filter_change","platform.filter_service.invalid_pattern","platform.filter_service.error_max_value","platform.filter_service.error_min_value","platform.filter_service.applied_filters_message","platform.filter_service.applied_filter_message","platform.filter_service.find_suggestions_error","platform.filter_service.select","platform.filter_service.filters","platform.filter_service.date_format","platform.filter_service.hour_format","platform.filter_service.clear","platform.filter_service.today","platform.filter_service.name_january","platform.filter_service.name_february","platform.filter_service.name_march","platform.filter_service.name_april","platform.filter_service.name_may","platform.filter_service.name_june","platform.filter_service.name_july","platform.filter_service.name_august","platform.filter_service.name_september","platform.filter_service.name_october","platform.filter_service.name_november","platform.filter_service.name_december","platform.filter_service.short_january","platform.filter_service.short_february","platform.filter_service.short_march","platform.filter_service.short_april","platform.filter_service.short_may","platform.filter_service.short_june","platform.filter_service.short_july","platform.filter_service.short_august","platform.filter_service.short_september","platform.filter_service.short_october","platform.filter_service.short_november","platform.filter_service.short_december","platform.filter_service.name_sunday","platform.filter_service.name_monday","platform.filter_service.name_tuesday","platform.filter_service.name_wednesday","platform.filter_service.name_thursday","platform.filter_service.name_friday","platform.filter_service.name_saturday","platform.filter_service.min_sunday","platform.filter_service.min_monday","platform.filter_service.min_tuesday","platform.filter_service.min_wednesday","platform.filter_service.min_thursday","platform.filter_service.min_friday","platform.filter_service.min_saturday","platform.filter_service.short_sunday","platform.filter_service.short_monday","platform.filter_service.short_tuesday","platform.filter_service.short_wednesday","platform.filter_service.short_thursday","platform.filter_service.short_friday","platform.filter_service.short_saturday","platform.filter_service.yes","platform.filter_service.no","platform.filter_service.search_empty_message","AdvancedFilterService","filtersObservable","Subject","contextsObservable","BehaviorSubject","ticketFilterObservable","destroy$","contextsObserver","asObservable","filtersObserver","ticketFilterObserver","subscribe","contexts","getAndApplyFilters","saveTickedFilters","filters","requestBody","ticketFilter","post","URL_PREFIX","pipe","response","ticket","window","parent","postMessage","message","payload","err","addContexts","_i","currentContexts","getValue","Observable","create","removeContexts","filteredContexts","filter","context","indexOf","saveFilters","searchFieldSuggestions","type","Content-Type","tryAgain","serviceContexts","getFilters","applyFilter","mapFilters","search","basicSearch","output","mapValues","keyFields","displayFields","entitySearch","isMultiple","valueInText","stringify","startsWith","endsWith","ex","maxSelectedItems","mapValue","ids","displays","undefined","join","Injectable","required","scope","services","enumItems","defaultValue","tabIndex","minValue","maxValue","dependsOn","mask","regExp","FormFilter","getOwnPropertySymbols","propertyIsEnumerable","__rest","_valueObserver","valueChanges","_value","TabView","fields","form","FormGroup","ContextTab","_super","activeFilters","__","constructor","__extends","getFilterId","filterName","DATETIME","exports","TIME","parsers","DATE","dateParser","parseFilterValue","parser","format","date","moment","filterOperators","contains","attr","=","!=",">","<",">=","fromJson","isNotMultiple","parsedValue","SEARCH","getSearchType","_a$1","createFormControl","validators","pattern","forms","Validators","min","max","createValidators","formValue","INTEGER","DOUBLE","MONEY","parseFormValue","FormControl","toDate","supportedTypes","STRING","BOOLEAN","ENUMERATION","operation","otherValue","<=","equals","Number","compare","operator","comparator","isValidOperator","isSupportedType","TRANSLATE_PREFIX","CalendarOptionsService","getOptions","clear","dateFormat","dayNames","dayNamesMin","dayNamesShort","firstDayOfWeek","hourFormat","monthNames","monthNamesShort","today","FormFilterComponent","filterService","messageService","calendarOptionsService","changeDetectorRef","formFilters","oldFormFilters","actualFormFilters","general","totalFiltersActive","isMobile","tabViewOrientation","errorMessages","showMessages","isModal","contextId","totalFiltersActiveOutput","EventEmitter","errorOutput","showDialogOutput","closeModalOutput","onResizeWindow","event","innerWidth","ngOnInit","subscribeContextsObservable","subscribeFiltersObservable","addEventListener","ngOnDestroy","hasChanges","currentValue","oldValue","onApplyFilters","emit","applyFilters","showToast","counterUpdate","getFiltersValues","severity","life","detail","sendMessage","clone","getDefaultValue","clearFilters","cleanFieldAndSetDefaultValue","sendCloseMessage","modalName","add","forceSave","parseToUserFilters","saveFiltersWithCallbackFunction","callbackFunction","countActiveFilters","tabs","tabView","appliedFilters","filterValue","filterId","toUserFormat","toFilterFormat","takeUntil","errorStateAction","errorState","createForm","createTabs","setDependencies","createChildArray","names","rxFilter","tap","filterControl","dep","id","formFilter","fieldValue","disable","mergeMap","val","comparation","every","IsEmpty","status","addGeneralField","controlName","fieldControl","tab","control","controls","setValue","emitEvent","newFilter","newField","createField","addControl","containsAllContexts","myContexts","allContexts","sort","field","filterConfig","DOMAIN","tabId_1","getTabId","has","contextLabel","updateFilterValue","contextTab","Map","tabId","controlOpts","generalFieldControl","childs","child","finalValue","onlySelf","translatedEnumItems","placeholder","TextField","FieldType","String","CurrencyField","Money","createRadioButton","createCalendar","Date","DateTime","Time","SelectField","options","Enum","NumberField","numberLocaleOptions","optionsInteger","Integer","Double","createAutocompleteField","RadioButtonField","Radio","calendar","CalendarField","calendarLocaleOptions","appendTo","suggestionsObservable","queryParam","input","resultDataJsonPath","displayFieldConcatToken","AutocompleteField","onSearch","getDependenciesValues","searchUrl","getEntitySearchUrl","jsonPath","object","path","allPaths","shift","suggestions","addSuggestionFields","detectChanges","messageError","suggestionsError","displayField","dataKey","multiple","size","lg","md","xl","emptyMessage","attributes","domainName","entityName","serviceName","obj","entityAttribute","separator","addValue","acc","token","suggestion","display","invalidValue","findIndex","$$__keyValue__","dependencies","arr","currencySymbol","decimalSeparator","thousandsSeparator","MessageService","ChangeDetectorRef","Input","Output","HostListener","Component","selector","template","AdvancedFilterComponent","router","labelButton","onlyContent","hideButtons","canOpenFilter","showActiveFiltersCountBadge","filterAndSave","subscriptions","showDialog","currentTicket","mobileButtonActions","command","modalComponent","sub","events","NavigationEnd","unsubscribe","totalActiveFilters","onError","close","toggleDialog","updateTotalFiltersActive","Router","ViewChild","encapsulation","ViewEncapsulation","None","AdvancedFilterModule","DialogModule","ButtonModule","PrimeNGButtonModule","TabViewModule","CommonModule","FormsModule","ReactiveFormsModule","DynamicFormModule","ToastModule","EmptyStateModule","TooltipModule","LocaleService","declarations","CyclicJsonInterceptor","intercept","req","Blob","FormData","jc","decycle","handle","HttpResponse","retrocycle","providedIn","CyclicJsonInterceptorModule","HTTP_INTERCEPTORS","useClass","RestUrl","defer","getRestUrl","XServicesUrl","getXServicesUrl","HttpInterceptor","restUrl","xServicesUrl","originalReq","includes","test","forkJoin","xUrl","authHeader","injectBaseUrl","bridgeUrl","baseUrl","authorization","request","HttpInterceptorModule","RESOURCES","ENVIRONMENT","PermissionsService","resources","environment","checkedPermissions","actionUrl","checkAccess","permissions","rec","actions","action","uri","resource","getUriByResourceName","entity","includeFilters","shouldRedirectToForbiddenPage","navigate","throwError","permission","authorized","toLowerCase","resourceFilters","resourceFilter","promise","getPermissions","catchError","summary","of","getPermissionObject","isAuthorized","resourceName","isEntity","resourceUri","permissionOfAction","perm","permRec","uriBase","permissionsDenied","resourcesToCheck","redirectToError","actionsToCheck","some","permissionDenied","getFlatEnvironment","ignorePermissions","getFlatResources","Inject","Environment","PermissionsModule","PermissionsModule_1","endpointFactoryFunction","method","endpoint","ResourceFactory","query","bind","signal","URL","update","remove","UserAction","PLATFORM_FEATURE_TOGGLE","FeatureToggleService","cache","isEnabled","tenant","tenantName","features","shareReplay","FeatureToggleModule","EnumDisplayType","SpotlightService","API_URL","getUser","listSpotlightScreen","listSpotlightUsers","listSpotlightControl","saveSpotlightUser","saveSpotlightControl","notificateSpotlight","EnumSpotlightStatus","SpotlightComponent","spotlightService","datePipe","canAppear","visible","fade","visibleChange","setValues","fetchSpotlight","currentUser","username","spotlightUsersList","spotlightControlsList","setValuesInSpotlight","header","spotlightTitle","imgUrl","bannerUrl","primaryButtonLabel","primaryButtonTooltip","primaryButtonHint","getShowDate","days","currentDate","setDate","getDate","toString","spotlightScreen","contents","screenMenuId","menuId","showSpotlight","spotlight","validateDate","initialDate","validateFinalDate","finalDate","validateSpotlight","getSpotlightControlFromList","canEmitEvent","firstUser","validateControlsList","validateDisplayType","controlsList","totalElements","ACTIVE","spotlightId","IN_PROGRESS","usersList","displayType","ADVERSITING","validateUser","INTEGRATION","NO_STARTED","REFUSED","users","spotlightUsers","userOperation","compatibleUserToValidate","showDate","spotlightUser","onPrimary","notification","buildNotification","CONFIRMED","primaryButtonUrl","open","onSecondary","POSTPONED","daysRememberLate","onTertiary","daysNotInterested","hasThisRegister","hasAnotherRegister","isNewControl","spotlightControl","userAction","clickedButton","spotlightControlId","DatePipe","platform.spotlight.no_interest","platform.spotlight.remember_late","SpotlightModule","fallback$1"],"mappings":"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","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 { APP_INITIALIZER, InjectionToken, Injector, NgModule, ModuleWithProviders } 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 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","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","import { HttpClient, HttpHeaders, HttpErrorResponse } from '@angular/common/http';\nimport { Injectable } from '@angular/core';\n\nimport { GET_FILTERS_URL, SAVE_FILTERS_URL, SAVE_TICKED_FILTER_URL } from './constants';\nimport { Subject, Observable, BehaviorSubject } 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","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`;\nexport const GET_FILTERS_BY_TICKET = `${URL_PREFIX}/queries/getFiltersByTicket`;\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","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 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 @Input() contextId = '';\n\n\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(forceSave = false) {\n const filters = this.parseToUserFilters(this.formFilters);\n const savedFilterSuccess = () => {\n if (!forceSave) {\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 }\n\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\n this.sendMessage(message);\n };\n\n this.filterService\n .saveFilters(filters)\n .subscribe(savedFilterSuccess, savedFiltersError);\n }\n\n saveFiltersWithCallbackFunction(callbackFunction: any) {\n const filters = this.parseToUserFilters(this.formFilters);\n\n this.filterService\n .saveFilters(filters)\n .subscribe(callbackFunction);\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.createForm(filters, applyFilter)\n }\n });\n }\n\n private createForm(filters: any, applyFilter: any) {\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 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 */\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 if ((contextId === this.contextId) || (this.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\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","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 searchDisplayName = '$$__displayValue__';\nexport const searchKeyName = '$$__keyValue__';\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 @Input() contextId = ''\n\n subscriptions: Subscription[] = [];\n\n isMobile = false;\n tabViewOrientation = 'left';\n totalFiltersActive = 0;\n showDialog = false;\n error = false;\n currentTicket = '';\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(forceSave = false) {\n this.modalComponent.saveFilters(forceSave);\n }\n\n saveFiltersWithCallbackFunction(callbackFunction: any) {\n this.modalComponent.saveFiltersWithCallbackFunction(callbackFunction);\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","export enum UserAction {\n CONFIRMED = 'CONFIRMED',\n POSTPONED = 'POSTPONED',\n REFUSED = 'REFUSED'\n}\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 EnumDisplayType {\n ADVERSITING = 'ADVERSITING',\n INTEGRATION = 'INTEGRATION'\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","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"]}
|
|
@@ -1,47 +0,0 @@
|
|
|
1
|
-
import { __decorate } from "tslib";
|
|
2
|
-
import { NgModule } from '@angular/core';
|
|
3
|
-
import { CommonModule } from '@angular/common';
|
|
4
|
-
import { FormsModule, ReactiveFormsModule } from '@angular/forms';
|
|
5
|
-
import { ButtonModule as PrimeNGButtonModule } from 'primeng/button';
|
|
6
|
-
import { DialogModule } from 'primeng/dialog';
|
|
7
|
-
import { TabViewModule } from 'primeng/tabview';
|
|
8
|
-
import { ToastModule } from 'primeng/toast';
|
|
9
|
-
import { TooltipModule } from 'primeng/tooltip';
|
|
10
|
-
import { MessageService } from "primeng/api";
|
|
11
|
-
import { DynamicFormModule, ButtonModule, EmptyStateModule, LocaleService } from '@seniorsistemas/angular-components';
|
|
12
|
-
import { MapValuesPipe } from './pipes/map-values.pipe';
|
|
13
|
-
import { TranslatePipe } from './pipes/translate.pipe';
|
|
14
|
-
import { TranslationsModule } from './../translations/translations.module';
|
|
15
|
-
import { fallback } from './locale/fallback';
|
|
16
|
-
import { TranslateService } from '@ngx-translate/core';
|
|
17
|
-
import { AdvancedFilterService } from './services/advanced-filter.service';
|
|
18
|
-
import { AdvancedFilterComponent } from './components/advanced-filter/advanced-filter.component';
|
|
19
|
-
import { FormFilterComponent } from './components/form-filter/form-filter.component';
|
|
20
|
-
import { CalendarOptionsService } from './services/calendar-options.service';
|
|
21
|
-
export class AppRoutingModule {
|
|
22
|
-
}
|
|
23
|
-
let AdvancedFilterModule = class AdvancedFilterModule {
|
|
24
|
-
};
|
|
25
|
-
AdvancedFilterModule = __decorate([
|
|
26
|
-
NgModule({
|
|
27
|
-
imports: [
|
|
28
|
-
DialogModule,
|
|
29
|
-
ButtonModule,
|
|
30
|
-
PrimeNGButtonModule,
|
|
31
|
-
TabViewModule,
|
|
32
|
-
CommonModule,
|
|
33
|
-
FormsModule,
|
|
34
|
-
ReactiveFormsModule,
|
|
35
|
-
DynamicFormModule,
|
|
36
|
-
ToastModule,
|
|
37
|
-
EmptyStateModule,
|
|
38
|
-
TooltipModule,
|
|
39
|
-
TranslationsModule.forChild([{ domain: 'platform', service: 'filter_service', fallback }]),
|
|
40
|
-
],
|
|
41
|
-
providers: [AdvancedFilterService, LocaleService, MessageService, TranslateService, CalendarOptionsService],
|
|
42
|
-
declarations: [AdvancedFilterComponent, FormFilterComponent, MapValuesPipe, TranslatePipe],
|
|
43
|
-
exports: [AdvancedFilterComponent, FormFilterComponent]
|
|
44
|
-
})
|
|
45
|
-
], AdvancedFilterModule);
|
|
46
|
-
export { AdvancedFilterModule };
|
|
47
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYWR2YW5jZWQtZmlsdGVyLm1vZHVsZS5qcyIsInNvdXJjZVJvb3QiOiJuZzovL0BzZW5pb3JzaXN0ZW1hcy9wbGF0Zm9ybS1jb21wb25lbnRzLyIsInNvdXJjZXMiOlsibW9kdWxlcy9hZHZhbmNlZC1maWx0ZXIvYWR2YW5jZWQtZmlsdGVyLm1vZHVsZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiO0FBQUEsT0FBTyxFQUFFLFFBQVEsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUN6QyxPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFDL0MsT0FBTyxFQUFFLFdBQVcsRUFBRSxtQkFBbUIsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBRWxFLE9BQU8sRUFBRSxZQUFZLElBQUksbUJBQW1CLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUNyRSxPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFDOUMsT0FBTyxFQUFFLGFBQWEsRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBQ2hELE9BQU8sRUFBRSxXQUFXLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDNUMsT0FBTyxFQUFFLGFBQWEsRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBQ2hELE9BQU8sRUFBRSxjQUFjLEVBQUUsTUFBTSxhQUFhLENBQUM7QUFDN0MsT0FBTyxFQUFFLGlCQUFpQixFQUFFLFlBQVksRUFBRSxnQkFBZ0IsRUFBRSxhQUFhLEVBQUUsTUFBTSxvQ0FBb0MsQ0FBQztBQUV0SCxPQUFPLEVBQUUsYUFBYSxFQUFFLE1BQU0seUJBQXlCLENBQUM7QUFDeEQsT0FBTyxFQUFFLGFBQWEsRUFBRSxNQUFNLHdCQUF3QixDQUFDO0FBQ3ZELE9BQU8sRUFBRSxrQkFBa0IsRUFBRSxNQUFNLHVDQUF1QyxDQUFDO0FBQzNFLE9BQU8sRUFBRSxRQUFRLEVBQUUsTUFBTSxtQkFBbUIsQ0FBQztBQUM3QyxPQUFPLEVBQUUsZ0JBQWdCLEVBQUUsTUFBTSxxQkFBcUIsQ0FBQztBQUN2RCxPQUFPLEVBQUUscUJBQXFCLEVBQUUsTUFBTSxvQ0FBb0MsQ0FBQztBQUMzRSxPQUFPLEVBQUUsdUJBQXVCLEVBQUUsTUFBTSx3REFBd0QsQ0FBQztBQUNqRyxPQUFPLEVBQUUsbUJBQW1CLEVBQUUsTUFBTSxnREFBZ0QsQ0FBQztBQUNyRixPQUFPLEVBQUUsc0JBQXNCLEVBQUUsTUFBTSxxQ0FBcUMsQ0FBQztBQUU3RSxNQUFNLE9BQU8sZ0JBQWdCO0NBQUc7QUFvQmhDLElBQWEsb0JBQW9CLEdBQWpDLE1BQWEsb0JBQW9CO0NBQUcsQ0FBQTtBQUF2QixvQkFBb0I7SUFuQmhDLFFBQVEsQ0FBQztRQUNSLE9BQU8sRUFBRTtZQUNQLFlBQVk7WUFDWixZQUFZO1lBQ1osbUJBQW1CO1lBQ25CLGFBQWE7WUFDYixZQUFZO1lBQ1osV0FBVztZQUNYLG1CQUFtQjtZQUNuQixpQkFBaUI7WUFDakIsV0FBVztZQUNYLGdCQUFnQjtZQUNoQixhQUFhO1lBQ2Isa0JBQWtCLENBQUMsUUFBUSxDQUFDLENBQUMsRUFBQyxNQUFNLEVBQUUsVUFBVSxFQUFFLE9BQU8sRUFBRSxnQkFBZ0IsRUFBRSxRQUFRLEVBQUMsQ0FBQyxDQUFDO1NBQ3pGO1FBQ0QsU0FBUyxFQUFFLENBQUMscUJBQXFCLEVBQUUsYUFBYSxFQUFFLGNBQWMsRUFBRSxnQkFBZ0IsRUFBRSxzQkFBc0IsQ0FBQztRQUMzRyxZQUFZLEVBQUUsQ0FBQyx1QkFBdUIsRUFBRSxtQkFBbUIsRUFBRSxhQUFhLEVBQUUsYUFBYSxDQUFDO1FBQzFGLE9BQU8sRUFBRSxDQUFDLHVCQUF1QixFQUFFLG1CQUFtQixDQUFDO0tBQ3hELENBQUM7R0FDVyxvQkFBb0IsQ0FBRztTQUF2QixvQkFBb0IiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBOZ01vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgQ29tbW9uTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uJztcbmltcG9ydCB7IEZvcm1zTW9kdWxlLCBSZWFjdGl2ZUZvcm1zTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvZm9ybXMnO1xuXG5pbXBvcnQgeyBCdXR0b25Nb2R1bGUgYXMgUHJpbWVOR0J1dHRvbk1vZHVsZSB9IGZyb20gJ3ByaW1lbmcvYnV0dG9uJztcbmltcG9ydCB7IERpYWxvZ01vZHVsZSB9IGZyb20gJ3ByaW1lbmcvZGlhbG9nJztcbmltcG9ydCB7IFRhYlZpZXdNb2R1bGUgfSBmcm9tICdwcmltZW5nL3RhYnZpZXcnO1xuaW1wb3J0IHsgVG9hc3RNb2R1bGUgfSBmcm9tICdwcmltZW5nL3RvYXN0JztcbmltcG9ydCB7IFRvb2x0aXBNb2R1bGUgfSBmcm9tICdwcmltZW5nL3Rvb2x0aXAnO1xuaW1wb3J0IHsgTWVzc2FnZVNlcnZpY2UgfSBmcm9tIFwicHJpbWVuZy9hcGlcIjtcbmltcG9ydCB7IER5bmFtaWNGb3JtTW9kdWxlLCBCdXR0b25Nb2R1bGUsIEVtcHR5U3RhdGVNb2R1bGUsIExvY2FsZVNlcnZpY2UgfSBmcm9tICdAc2VuaW9yc2lzdGVtYXMvYW5ndWxhci1jb21wb25lbnRzJztcblxuaW1wb3J0IHsgTWFwVmFsdWVzUGlwZSB9IGZyb20gJy4vcGlwZXMvbWFwLXZhbHVlcy5waXBlJztcbmltcG9ydCB7IFRyYW5zbGF0ZVBpcGUgfSBmcm9tICcuL3BpcGVzL3RyYW5zbGF0ZS5waXBlJztcbmltcG9ydCB7IFRyYW5zbGF0aW9uc01vZHVsZSB9IGZyb20gJy4vLi4vdHJhbnNsYXRpb25zL3RyYW5zbGF0aW9ucy5tb2R1bGUnO1xuaW1wb3J0IHsgZmFsbGJhY2sgfSBmcm9tICcuL2xvY2FsZS9mYWxsYmFjayc7XG5pbXBvcnQgeyBUcmFuc2xhdGVTZXJ2aWNlIH0gZnJvbSAnQG5neC10cmFuc2xhdGUvY29yZSc7XG5pbXBvcnQgeyBBZHZhbmNlZEZpbHRlclNlcnZpY2UgfSBmcm9tICcuL3NlcnZpY2VzL2FkdmFuY2VkLWZpbHRlci5zZXJ2aWNlJztcbmltcG9ydCB7IEFkdmFuY2VkRmlsdGVyQ29tcG9uZW50IH0gZnJvbSAnLi9jb21wb25lbnRzL2FkdmFuY2VkLWZpbHRlci9hZHZhbmNlZC1maWx0ZXIuY29tcG9uZW50JztcbmltcG9ydCB7IEZvcm1GaWx0ZXJDb21wb25lbnQgfSBmcm9tICcuL2NvbXBvbmVudHMvZm9ybS1maWx0ZXIvZm9ybS1maWx0ZXIuY29tcG9uZW50JztcbmltcG9ydCB7IENhbGVuZGFyT3B0aW9uc1NlcnZpY2UgfSBmcm9tICcuL3NlcnZpY2VzL2NhbGVuZGFyLW9wdGlvbnMuc2VydmljZSc7XG5cbmV4cG9ydCBjbGFzcyBBcHBSb3V0aW5nTW9kdWxlIHt9XG5ATmdNb2R1bGUoe1xuICBpbXBvcnRzOiBbXG4gICAgRGlhbG9nTW9kdWxlLFxuICAgIEJ1dHRvbk1vZHVsZSxcbiAgICBQcmltZU5HQnV0dG9uTW9kdWxlLFxuICAgIFRhYlZpZXdNb2R1bGUsXG4gICAgQ29tbW9uTW9kdWxlLFxuICAgIEZvcm1zTW9kdWxlLFxuICAgIFJlYWN0aXZlRm9ybXNNb2R1bGUsXG4gICAgRHluYW1pY0Zvcm1Nb2R1bGUsXG4gICAgVG9hc3RNb2R1bGUsXG4gICAgRW1wdHlTdGF0ZU1vZHVsZSxcbiAgICBUb29sdGlwTW9kdWxlLFxuICAgIFRyYW5zbGF0aW9uc01vZHVsZS5mb3JDaGlsZChbe2RvbWFpbjogJ3BsYXRmb3JtJywgc2VydmljZTogJ2ZpbHRlcl9zZXJ2aWNlJywgZmFsbGJhY2t9XSksXG4gIF0sXG4gIHByb3ZpZGVyczogW0FkdmFuY2VkRmlsdGVyU2VydmljZSwgTG9jYWxlU2VydmljZSwgTWVzc2FnZVNlcnZpY2UsIFRyYW5zbGF0ZVNlcnZpY2UsIENhbGVuZGFyT3B0aW9uc1NlcnZpY2VdLFxuICBkZWNsYXJhdGlvbnM6IFtBZHZhbmNlZEZpbHRlckNvbXBvbmVudCwgRm9ybUZpbHRlckNvbXBvbmVudCwgTWFwVmFsdWVzUGlwZSwgVHJhbnNsYXRlUGlwZV0sXG4gIGV4cG9ydHM6IFtBZHZhbmNlZEZpbHRlckNvbXBvbmVudCwgRm9ybUZpbHRlckNvbXBvbmVudF1cbn0pXG5leHBvcnQgY2xhc3MgQWR2YW5jZWRGaWx0ZXJNb2R1bGUge31cbiJdfQ==
|