{"version":3,"sources":["./$_lazy_route_resource lazy namespace object","./node_modules/moment/locale sync ^\\.\\/.*$","./src/app/app.component.html","./src/app/component/alert-confirmation/alert-confirmation.component.html","./src/app/component/gfc-character-list/gfc-character-list.component.html","./src/app/component/group-formatting-condition/group-formatting-condition.component.html","./src/app/component/group-formatting/group-formatting.component.html","./src/app/component/home/home.component.html","./src/app/component/label-management/label-management.component.html","./src/app/component/query/alert-message/alert-message.component.html","./src/app/component/query/column-segment-three/column-segment-three.component.html","./src/app/component/query/export-file/export-file.component.html","./src/app/component/query/grouping/character-flag-list/character-flag-list.component.html","./src/app/component/query/grouping/character-grouping-list/character-grouping-list.component.html","./src/app/component/query/grouping/character-list/character-list.component.html","./src/app/component/query/grouping/character-number-list/character-number-list.component.html","./src/app/component/query/grouping/create-private-group/create-private-group.component.html","./src/app/component/query/grouping/date-grouping/date-grouping.component.html","./src/app/component/query/grouping/delay-condition/delay-condition.component.html","./src/app/component/query/grouping/delay-grouping/delay-grouping.component.html","./src/app/component/query/grouping/flag-grouping/flag-grouping.component.html","./src/app/component/query/grouping/grouping-list/grouping-list.component.html","./src/app/component/query/main-screen/main-screen.component.html","./src/app/component/query/preview-dialog/preview-dialog.component.html","./src/app/component/query/save-query-name/save-query-name.component.html","./src/app/component/realignment-main/realignment-data/realignment-data.component.html","./src/app/component/realignment-main/realignment-main.component.html","./src/app/component/table/choice-table/choice-table.component.html","./src/app/component/user-message/user-message-sendinstantly/user-message-sendinstantly.component.html","./src/app/component/user-message/user-message.component.html","./src/app/core/authentification/authentification.component.html","./src/app/list-connection/list-connection.component.html","./src/app/load-spinner/load-spinner.component.html","./src/app/nav-bar/nav-bar.component.html","./node_modules/tslib/tslib.es6.js","./src/app/app-routing.module.ts","./src/app/app.component.scss","./src/app/app.component.ts","./src/app/app.module.ts","./src/app/component/alert-confirmation/alert-confirmation.component.scss","./src/app/component/alert-confirmation/alert-confirmation.component.ts","./src/app/component/directives/day-mask.directive.ts","./src/app/component/directives/day-week-mask.directive.ts","./src/app/component/directives/disableControl.directive.ts","./src/app/component/directives/week-directive.ts","./src/app/component/directives/year-mask.directive.ts","./src/app/component/gfc-character-list/gfc-character-list.component.scss","./src/app/component/gfc-character-list/gfc-character-list.component.ts","./src/app/component/group-formatting-condition/group-formatting-condition.component.scss","./src/app/component/group-formatting-condition/group-formatting-condition.component.ts","./src/app/component/group-formatting/group-formatting.component.scss","./src/app/component/group-formatting/group-formatting.component.ts","./src/app/component/home/home.component.scss","./src/app/component/home/home.component.ts","./src/app/component/label-management/label-management.component.scss","./src/app/component/label-management/label-management.component.ts","./src/app/component/query/alert-message/alert-message.component.scss","./src/app/component/query/alert-message/alert-message.component.ts","./src/app/component/query/column-segment-three/column-segment-three.component.scss","./src/app/component/query/column-segment-three/column-segment-three.component.ts","./src/app/component/query/column-segment-three/scroll-tracker.directive.ts","./src/app/component/query/export-file/export-file.component.scss","./src/app/component/query/export-file/export-file.component.ts","./src/app/component/query/grouping/character-flag-list/character-flag-list.component.scss","./src/app/component/query/grouping/character-flag-list/character-flag-list.component.ts","./src/app/component/query/grouping/character-grouping-list/character-grouping-list.component.scss","./src/app/component/query/grouping/character-grouping-list/character-grouping-list.component.ts","./src/app/component/query/grouping/character-list/character-list.component.scss","./src/app/component/query/grouping/character-list/character-list.component.ts","./src/app/component/query/grouping/character-number-list/character-number-list.component.scss","./src/app/component/query/grouping/character-number-list/character-number-list.component.ts","./src/app/component/query/grouping/create-private-group/create-private-group.component.scss","./src/app/component/query/grouping/create-private-group/create-private-group.component.ts","./src/app/component/query/grouping/date-grouping/date-grouping.component.scss","./src/app/component/query/grouping/date-grouping/date-grouping.component.ts","./src/app/component/query/grouping/delay-condition/delay-condition.component.scss","./src/app/component/query/grouping/delay-condition/delay-condition.component.ts","./src/app/component/query/grouping/delay-grouping/delay-grouping.component.scss","./src/app/component/query/grouping/delay-grouping/delay-grouping.component.ts","./src/app/component/query/grouping/flag-grouping/flag-grouping.component.scss","./src/app/component/query/grouping/flag-grouping/flag-grouping.component.ts","./src/app/component/query/grouping/grouping-list/grouping-list.component.scss","./src/app/component/query/grouping/grouping-list/grouping-list.component.ts","./src/app/component/query/main-screen/main-screen.component.scss","./src/app/component/query/main-screen/main-screen.component.ts","./src/app/component/query/preview-dialog/preview-dialog.component.scss","./src/app/component/query/preview-dialog/preview-dialog.component.ts","./src/app/component/query/query-screen.module.ts","./src/app/component/query/save-query-name/save-query-name.component.scss","./src/app/component/query/save-query-name/save-query-name.component.ts","./src/app/component/realignment-main/realignment-data/realignment-data.component.scss","./src/app/component/realignment-main/realignment-data/realignment-data.component.ts","./src/app/component/realignment-main/realignment-main.component.scss","./src/app/component/realignment-main/realignment-main.component.ts","./src/app/component/table/choice-table/choice-table.component.scss","./src/app/component/table/choice-table/choice-table.component.ts","./src/app/component/table/table.module.ts","./src/app/component/user-message/user-message-sendinstantly/user-message-sendinstantly.component.scss","./src/app/component/user-message/user-message-sendinstantly/user-message-sendinstantly.component.ts","./src/app/component/user-message/user-message.component.scss","./src/app/component/user-message/user-message.component.ts","./src/app/core/authentification/authentification.component.scss","./src/app/core/authentification/authentification.component.ts","./src/app/core/authentification/authentification.module.ts","./src/app/core/authentification/unauthorized-access.component.ts","./src/app/list-connection/list-connection.component.scss","./src/app/list-connection/list-connection.component.ts","./src/app/load-spinner/load-spinner.component.scss","./src/app/load-spinner/load-spinner.component.ts","./src/app/material-module.ts","./src/app/nav-bar/nav-bar.component.scss","./src/app/nav-bar/nav-bar.component.ts","./src/app/resize-column.directive.ts","./src/app/services/auth/auth.guard.service.ts","./src/app/services/backend-api/backend-api.service.ts","./src/app/services/excel.service.ts","./src/app/services/intercept/intercept.service.ts","./src/app/services/loader/loader.service.ts","./src/app/services/request/request.service.ts","./src/app/services/util/date.adapter.ts","./src/app/services/util/util.service.ts","./src/environments/environment.prod.ts","./src/environments/environment.ts","./src/main.ts","fs (ignored)","crypto (ignored)","stream (ignored)"],"names":[],"mappings":";;;;;;;;;AAAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,EAAE;AACF;AACA,4CAA4C,WAAW;AACvD;AACA;AACA,wE;;;;;;;;;;;ACZA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;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","file":"main-es2015.js","sourcesContent":["function webpackEmptyAsyncContext(req) {\n\t// Here Promise.resolve().then() is used instead of new Promise() to prevent\n\t// uncaught exception popping up in devtools\n\treturn Promise.resolve().then(function() {\n\t\tvar e = new Error(\"Cannot find module '\" + req + \"'\");\n\t\te.code = 'MODULE_NOT_FOUND';\n\t\tthrow e;\n\t});\n}\nwebpackEmptyAsyncContext.keys = function() { return []; };\nwebpackEmptyAsyncContext.resolve = webpackEmptyAsyncContext;\nmodule.exports = webpackEmptyAsyncContext;\nwebpackEmptyAsyncContext.id = \"./$$_lazy_route_resource lazy recursive\";","var map = {\n\t\"./af\": \"./node_modules/moment/locale/af.js\",\n\t\"./af.js\": \"./node_modules/moment/locale/af.js\",\n\t\"./ar\": \"./node_modules/moment/locale/ar.js\",\n\t\"./ar-dz\": \"./node_modules/moment/locale/ar-dz.js\",\n\t\"./ar-dz.js\": \"./node_modules/moment/locale/ar-dz.js\",\n\t\"./ar-kw\": \"./node_modules/moment/locale/ar-kw.js\",\n\t\"./ar-kw.js\": \"./node_modules/moment/locale/ar-kw.js\",\n\t\"./ar-ly\": \"./node_modules/moment/locale/ar-ly.js\",\n\t\"./ar-ly.js\": \"./node_modules/moment/locale/ar-ly.js\",\n\t\"./ar-ma\": \"./node_modules/moment/locale/ar-ma.js\",\n\t\"./ar-ma.js\": \"./node_modules/moment/locale/ar-ma.js\",\n\t\"./ar-sa\": \"./node_modules/moment/locale/ar-sa.js\",\n\t\"./ar-sa.js\": \"./node_modules/moment/locale/ar-sa.js\",\n\t\"./ar-tn\": \"./node_modules/moment/locale/ar-tn.js\",\n\t\"./ar-tn.js\": \"./node_modules/moment/locale/ar-tn.js\",\n\t\"./ar.js\": \"./node_modules/moment/locale/ar.js\",\n\t\"./az\": \"./node_modules/moment/locale/az.js\",\n\t\"./az.js\": \"./node_modules/moment/locale/az.js\",\n\t\"./be\": \"./node_modules/moment/locale/be.js\",\n\t\"./be.js\": \"./node_modules/moment/locale/be.js\",\n\t\"./bg\": \"./node_modules/moment/locale/bg.js\",\n\t\"./bg.js\": \"./node_modules/moment/locale/bg.js\",\n\t\"./bm\": \"./node_modules/moment/locale/bm.js\",\n\t\"./bm.js\": \"./node_modules/moment/locale/bm.js\",\n\t\"./bn\": \"./node_modules/moment/locale/bn.js\",\n\t\"./bn.js\": \"./node_modules/moment/locale/bn.js\",\n\t\"./bo\": \"./node_modules/moment/locale/bo.js\",\n\t\"./bo.js\": \"./node_modules/moment/locale/bo.js\",\n\t\"./br\": \"./node_modules/moment/locale/br.js\",\n\t\"./br.js\": \"./node_modules/moment/locale/br.js\",\n\t\"./bs\": \"./node_modules/moment/locale/bs.js\",\n\t\"./bs.js\": \"./node_modules/moment/locale/bs.js\",\n\t\"./ca\": \"./node_modules/moment/locale/ca.js\",\n\t\"./ca.js\": \"./node_modules/moment/locale/ca.js\",\n\t\"./cs\": \"./node_modules/moment/locale/cs.js\",\n\t\"./cs.js\": \"./node_modules/moment/locale/cs.js\",\n\t\"./cv\": \"./node_modules/moment/locale/cv.js\",\n\t\"./cv.js\": \"./node_modules/moment/locale/cv.js\",\n\t\"./cy\": \"./node_modules/moment/locale/cy.js\",\n\t\"./cy.js\": \"./node_modules/moment/locale/cy.js\",\n\t\"./da\": \"./node_modules/moment/locale/da.js\",\n\t\"./da.js\": \"./node_modules/moment/locale/da.js\",\n\t\"./de\": \"./node_modules/moment/locale/de.js\",\n\t\"./de-at\": \"./node_modules/moment/locale/de-at.js\",\n\t\"./de-at.js\": \"./node_modules/moment/locale/de-at.js\",\n\t\"./de-ch\": \"./node_modules/moment/locale/de-ch.js\",\n\t\"./de-ch.js\": \"./node_modules/moment/locale/de-ch.js\",\n\t\"./de.js\": \"./node_modules/moment/locale/de.js\",\n\t\"./dv\": \"./node_modules/moment/locale/dv.js\",\n\t\"./dv.js\": \"./node_modules/moment/locale/dv.js\",\n\t\"./el\": \"./node_modules/moment/locale/el.js\",\n\t\"./el.js\": \"./node_modules/moment/locale/el.js\",\n\t\"./en-SG\": \"./node_modules/moment/locale/en-SG.js\",\n\t\"./en-SG.js\": \"./node_modules/moment/locale/en-SG.js\",\n\t\"./en-au\": \"./node_modules/moment/locale/en-au.js\",\n\t\"./en-au.js\": \"./node_modules/moment/locale/en-au.js\",\n\t\"./en-ca\": \"./node_modules/moment/locale/en-ca.js\",\n\t\"./en-ca.js\": \"./node_modules/moment/locale/en-ca.js\",\n\t\"./en-gb\": \"./node_modules/moment/locale/en-gb.js\",\n\t\"./en-gb.js\": \"./node_modules/moment/locale/en-gb.js\",\n\t\"./en-ie\": \"./node_modules/moment/locale/en-ie.js\",\n\t\"./en-ie.js\": \"./node_modules/moment/locale/en-ie.js\",\n\t\"./en-il\": \"./node_modules/moment/locale/en-il.js\",\n\t\"./en-il.js\": \"./node_modules/moment/locale/en-il.js\",\n\t\"./en-nz\": \"./node_modules/moment/locale/en-nz.js\",\n\t\"./en-nz.js\": \"./node_modules/moment/locale/en-nz.js\",\n\t\"./eo\": \"./node_modules/moment/locale/eo.js\",\n\t\"./eo.js\": \"./node_modules/moment/locale/eo.js\",\n\t\"./es\": \"./node_modules/moment/locale/es.js\",\n\t\"./es-do\": \"./node_modules/moment/locale/es-do.js\",\n\t\"./es-do.js\": \"./node_modules/moment/locale/es-do.js\",\n\t\"./es-us\": \"./node_modules/moment/locale/es-us.js\",\n\t\"./es-us.js\": \"./node_modules/moment/locale/es-us.js\",\n\t\"./es.js\": \"./node_modules/moment/locale/es.js\",\n\t\"./et\": \"./node_modules/moment/locale/et.js\",\n\t\"./et.js\": \"./node_modules/moment/locale/et.js\",\n\t\"./eu\": \"./node_modules/moment/locale/eu.js\",\n\t\"./eu.js\": \"./node_modules/moment/locale/eu.js\",\n\t\"./fa\": \"./node_modules/moment/locale/fa.js\",\n\t\"./fa.js\": \"./node_modules/moment/locale/fa.js\",\n\t\"./fi\": \"./node_modules/moment/locale/fi.js\",\n\t\"./fi.js\": \"./node_modules/moment/locale/fi.js\",\n\t\"./fo\": \"./node_modules/moment/locale/fo.js\",\n\t\"./fo.js\": \"./node_modules/moment/locale/fo.js\",\n\t\"./fr\": \"./node_modules/moment/locale/fr.js\",\n\t\"./fr-ca\": \"./node_modules/moment/locale/fr-ca.js\",\n\t\"./fr-ca.js\": \"./node_modules/moment/locale/fr-ca.js\",\n\t\"./fr-ch\": \"./node_modules/moment/locale/fr-ch.js\",\n\t\"./fr-ch.js\": \"./node_modules/moment/locale/fr-ch.js\",\n\t\"./fr.js\": \"./node_modules/moment/locale/fr.js\",\n\t\"./fy\": \"./node_modules/moment/locale/fy.js\",\n\t\"./fy.js\": \"./node_modules/moment/locale/fy.js\",\n\t\"./ga\": \"./node_modules/moment/locale/ga.js\",\n\t\"./ga.js\": \"./node_modules/moment/locale/ga.js\",\n\t\"./gd\": \"./node_modules/moment/locale/gd.js\",\n\t\"./gd.js\": \"./node_modules/moment/locale/gd.js\",\n\t\"./gl\": \"./node_modules/moment/locale/gl.js\",\n\t\"./gl.js\": \"./node_modules/moment/locale/gl.js\",\n\t\"./gom-latn\": \"./node_modules/moment/locale/gom-latn.js\",\n\t\"./gom-latn.js\": \"./node_modules/moment/locale/gom-latn.js\",\n\t\"./gu\": \"./node_modules/moment/locale/gu.js\",\n\t\"./gu.js\": \"./node_modules/moment/locale/gu.js\",\n\t\"./he\": \"./node_modules/moment/locale/he.js\",\n\t\"./he.js\": \"./node_modules/moment/locale/he.js\",\n\t\"./hi\": \"./node_modules/moment/locale/hi.js\",\n\t\"./hi.js\": \"./node_modules/moment/locale/hi.js\",\n\t\"./hr\": \"./node_modules/moment/locale/hr.js\",\n\t\"./hr.js\": \"./node_modules/moment/locale/hr.js\",\n\t\"./hu\": \"./node_modules/moment/locale/hu.js\",\n\t\"./hu.js\": \"./node_modules/moment/locale/hu.js\",\n\t\"./hy-am\": \"./node_modules/moment/locale/hy-am.js\",\n\t\"./hy-am.js\": \"./node_modules/moment/locale/hy-am.js\",\n\t\"./id\": \"./node_modules/moment/locale/id.js\",\n\t\"./id.js\": \"./node_modules/moment/locale/id.js\",\n\t\"./is\": \"./node_modules/moment/locale/is.js\",\n\t\"./is.js\": \"./node_modules/moment/locale/is.js\",\n\t\"./it\": \"./node_modules/moment/locale/it.js\",\n\t\"./it-ch\": \"./node_modules/moment/locale/it-ch.js\",\n\t\"./it-ch.js\": \"./node_modules/moment/locale/it-ch.js\",\n\t\"./it.js\": \"./node_modules/moment/locale/it.js\",\n\t\"./ja\": \"./node_modules/moment/locale/ja.js\",\n\t\"./ja.js\": \"./node_modules/moment/locale/ja.js\",\n\t\"./jv\": \"./node_modules/moment/locale/jv.js\",\n\t\"./jv.js\": \"./node_modules/moment/locale/jv.js\",\n\t\"./ka\": \"./node_modules/moment/locale/ka.js\",\n\t\"./ka.js\": \"./node_modules/moment/locale/ka.js\",\n\t\"./kk\": \"./node_modules/moment/locale/kk.js\",\n\t\"./kk.js\": \"./node_modules/moment/locale/kk.js\",\n\t\"./km\": \"./node_modules/moment/locale/km.js\",\n\t\"./km.js\": \"./node_modules/moment/locale/km.js\",\n\t\"./kn\": \"./node_modules/moment/locale/kn.js\",\n\t\"./kn.js\": \"./node_modules/moment/locale/kn.js\",\n\t\"./ko\": \"./node_modules/moment/locale/ko.js\",\n\t\"./ko.js\": \"./node_modules/moment/locale/ko.js\",\n\t\"./ku\": \"./node_modules/moment/locale/ku.js\",\n\t\"./ku.js\": \"./node_modules/moment/locale/ku.js\",\n\t\"./ky\": \"./node_modules/moment/locale/ky.js\",\n\t\"./ky.js\": \"./node_modules/moment/locale/ky.js\",\n\t\"./lb\": \"./node_modules/moment/locale/lb.js\",\n\t\"./lb.js\": \"./node_modules/moment/locale/lb.js\",\n\t\"./lo\": \"./node_modules/moment/locale/lo.js\",\n\t\"./lo.js\": \"./node_modules/moment/locale/lo.js\",\n\t\"./lt\": \"./node_modules/moment/locale/lt.js\",\n\t\"./lt.js\": \"./node_modules/moment/locale/lt.js\",\n\t\"./lv\": \"./node_modules/moment/locale/lv.js\",\n\t\"./lv.js\": \"./node_modules/moment/locale/lv.js\",\n\t\"./me\": \"./node_modules/moment/locale/me.js\",\n\t\"./me.js\": \"./node_modules/moment/locale/me.js\",\n\t\"./mi\": \"./node_modules/moment/locale/mi.js\",\n\t\"./mi.js\": \"./node_modules/moment/locale/mi.js\",\n\t\"./mk\": \"./node_modules/moment/locale/mk.js\",\n\t\"./mk.js\": \"./node_modules/moment/locale/mk.js\",\n\t\"./ml\": \"./node_modules/moment/locale/ml.js\",\n\t\"./ml.js\": \"./node_modules/moment/locale/ml.js\",\n\t\"./mn\": \"./node_modules/moment/locale/mn.js\",\n\t\"./mn.js\": \"./node_modules/moment/locale/mn.js\",\n\t\"./mr\": \"./node_modules/moment/locale/mr.js\",\n\t\"./mr.js\": \"./node_modules/moment/locale/mr.js\",\n\t\"./ms\": \"./node_modules/moment/locale/ms.js\",\n\t\"./ms-my\": \"./node_modules/moment/locale/ms-my.js\",\n\t\"./ms-my.js\": \"./node_modules/moment/locale/ms-my.js\",\n\t\"./ms.js\": \"./node_modules/moment/locale/ms.js\",\n\t\"./mt\": \"./node_modules/moment/locale/mt.js\",\n\t\"./mt.js\": \"./node_modules/moment/locale/mt.js\",\n\t\"./my\": \"./node_modules/moment/locale/my.js\",\n\t\"./my.js\": \"./node_modules/moment/locale/my.js\",\n\t\"./nb\": \"./node_modules/moment/locale/nb.js\",\n\t\"./nb.js\": \"./node_modules/moment/locale/nb.js\",\n\t\"./ne\": \"./node_modules/moment/locale/ne.js\",\n\t\"./ne.js\": \"./node_modules/moment/locale/ne.js\",\n\t\"./nl\": \"./node_modules/moment/locale/nl.js\",\n\t\"./nl-be\": \"./node_modules/moment/locale/nl-be.js\",\n\t\"./nl-be.js\": \"./node_modules/moment/locale/nl-be.js\",\n\t\"./nl.js\": \"./node_modules/moment/locale/nl.js\",\n\t\"./nn\": \"./node_modules/moment/locale/nn.js\",\n\t\"./nn.js\": \"./node_modules/moment/locale/nn.js\",\n\t\"./pa-in\": \"./node_modules/moment/locale/pa-in.js\",\n\t\"./pa-in.js\": \"./node_modules/moment/locale/pa-in.js\",\n\t\"./pl\": \"./node_modules/moment/locale/pl.js\",\n\t\"./pl.js\": \"./node_modules/moment/locale/pl.js\",\n\t\"./pt\": \"./node_modules/moment/locale/pt.js\",\n\t\"./pt-br\": \"./node_modules/moment/locale/pt-br.js\",\n\t\"./pt-br.js\": \"./node_modules/moment/locale/pt-br.js\",\n\t\"./pt.js\": \"./node_modules/moment/locale/pt.js\",\n\t\"./ro\": \"./node_modules/moment/locale/ro.js\",\n\t\"./ro.js\": \"./node_modules/moment/locale/ro.js\",\n\t\"./ru\": \"./node_modules/moment/locale/ru.js\",\n\t\"./ru.js\": \"./node_modules/moment/locale/ru.js\",\n\t\"./sd\": \"./node_modules/moment/locale/sd.js\",\n\t\"./sd.js\": \"./node_modules/moment/locale/sd.js\",\n\t\"./se\": \"./node_modules/moment/locale/se.js\",\n\t\"./se.js\": \"./node_modules/moment/locale/se.js\",\n\t\"./si\": \"./node_modules/moment/locale/si.js\",\n\t\"./si.js\": \"./node_modules/moment/locale/si.js\",\n\t\"./sk\": \"./node_modules/moment/locale/sk.js\",\n\t\"./sk.js\": \"./node_modules/moment/locale/sk.js\",\n\t\"./sl\": \"./node_modules/moment/locale/sl.js\",\n\t\"./sl.js\": \"./node_modules/moment/locale/sl.js\",\n\t\"./sq\": \"./node_modules/moment/locale/sq.js\",\n\t\"./sq.js\": \"./node_modules/moment/locale/sq.js\",\n\t\"./sr\": \"./node_modules/moment/locale/sr.js\",\n\t\"./sr-cyrl\": \"./node_modules/moment/locale/sr-cyrl.js\",\n\t\"./sr-cyrl.js\": \"./node_modules/moment/locale/sr-cyrl.js\",\n\t\"./sr.js\": \"./node_modules/moment/locale/sr.js\",\n\t\"./ss\": \"./node_modules/moment/locale/ss.js\",\n\t\"./ss.js\": \"./node_modules/moment/locale/ss.js\",\n\t\"./sv\": \"./node_modules/moment/locale/sv.js\",\n\t\"./sv.js\": \"./node_modules/moment/locale/sv.js\",\n\t\"./sw\": \"./node_modules/moment/locale/sw.js\",\n\t\"./sw.js\": \"./node_modules/moment/locale/sw.js\",\n\t\"./ta\": \"./node_modules/moment/locale/ta.js\",\n\t\"./ta.js\": \"./node_modules/moment/locale/ta.js\",\n\t\"./te\": \"./node_modules/moment/locale/te.js\",\n\t\"./te.js\": \"./node_modules/moment/locale/te.js\",\n\t\"./tet\": \"./node_modules/moment/locale/tet.js\",\n\t\"./tet.js\": \"./node_modules/moment/locale/tet.js\",\n\t\"./tg\": \"./node_modules/moment/locale/tg.js\",\n\t\"./tg.js\": \"./node_modules/moment/locale/tg.js\",\n\t\"./th\": \"./node_modules/moment/locale/th.js\",\n\t\"./th.js\": \"./node_modules/moment/locale/th.js\",\n\t\"./tl-ph\": \"./node_modules/moment/locale/tl-ph.js\",\n\t\"./tl-ph.js\": \"./node_modules/moment/locale/tl-ph.js\",\n\t\"./tlh\": \"./node_modules/moment/locale/tlh.js\",\n\t\"./tlh.js\": \"./node_modules/moment/locale/tlh.js\",\n\t\"./tr\": \"./node_modules/moment/locale/tr.js\",\n\t\"./tr.js\": \"./node_modules/moment/locale/tr.js\",\n\t\"./tzl\": \"./node_modules/moment/locale/tzl.js\",\n\t\"./tzl.js\": \"./node_modules/moment/locale/tzl.js\",\n\t\"./tzm\": \"./node_modules/moment/locale/tzm.js\",\n\t\"./tzm-latn\": \"./node_modules/moment/locale/tzm-latn.js\",\n\t\"./tzm-latn.js\": \"./node_modules/moment/locale/tzm-latn.js\",\n\t\"./tzm.js\": \"./node_modules/moment/locale/tzm.js\",\n\t\"./ug-cn\": \"./node_modules/moment/locale/ug-cn.js\",\n\t\"./ug-cn.js\": \"./node_modules/moment/locale/ug-cn.js\",\n\t\"./uk\": \"./node_modules/moment/locale/uk.js\",\n\t\"./uk.js\": \"./node_modules/moment/locale/uk.js\",\n\t\"./ur\": \"./node_modules/moment/locale/ur.js\",\n\t\"./ur.js\": \"./node_modules/moment/locale/ur.js\",\n\t\"./uz\": \"./node_modules/moment/locale/uz.js\",\n\t\"./uz-latn\": \"./node_modules/moment/locale/uz-latn.js\",\n\t\"./uz-latn.js\": \"./node_modules/moment/locale/uz-latn.js\",\n\t\"./uz.js\": \"./node_modules/moment/locale/uz.js\",\n\t\"./vi\": \"./node_modules/moment/locale/vi.js\",\n\t\"./vi.js\": \"./node_modules/moment/locale/vi.js\",\n\t\"./x-pseudo\": \"./node_modules/moment/locale/x-pseudo.js\",\n\t\"./x-pseudo.js\": \"./node_modules/moment/locale/x-pseudo.js\",\n\t\"./yo\": \"./node_modules/moment/locale/yo.js\",\n\t\"./yo.js\": \"./node_modules/moment/locale/yo.js\",\n\t\"./zh-cn\": \"./node_modules/moment/locale/zh-cn.js\",\n\t\"./zh-cn.js\": \"./node_modules/moment/locale/zh-cn.js\",\n\t\"./zh-hk\": \"./node_modules/moment/locale/zh-hk.js\",\n\t\"./zh-hk.js\": \"./node_modules/moment/locale/zh-hk.js\",\n\t\"./zh-tw\": \"./node_modules/moment/locale/zh-tw.js\",\n\t\"./zh-tw.js\": \"./node_modules/moment/locale/zh-tw.js\"\n};\n\n\nfunction webpackContext(req) {\n\tvar id = webpackContextResolve(req);\n\treturn __webpack_require__(id);\n}\nfunction webpackContextResolve(req) {\n\tif(!__webpack_require__.o(map, req)) {\n\t\tvar e = new Error(\"Cannot find module '\" + req + \"'\");\n\t\te.code = 'MODULE_NOT_FOUND';\n\t\tthrow e;\n\t}\n\treturn map[req];\n}\nwebpackContext.keys = function webpackContextKeys() {\n\treturn Object.keys(map);\n};\nwebpackContext.resolve = webpackContextResolve;\nmodule.exports = webpackContext;\nwebpackContext.id = \"./node_modules/moment/locale sync recursive ^\\\\.\\\\/.*$\";","export default \"\\n\\n\\n\"","export default \"
\\n Pilotage\\n
\\n
\\n {{'ERROR.GROUP_EXEC_ERROR' | translate}}\\n
\\n
\\n {{data.display}}\\n
\\n\\n {{data.display}}\\n \\n \\n\\n
\\n \\n \\n
\\n\\n
\\n \\n
\\n\\n
\\n \\n \\n \\n
\"","export default \"\\n \\n {{selectedInputValue['selectedGroupItemValue']}} :\\n \\n \\n \\n \\n \\n {{'NEW_QUERY.CHARACTER_LIST.' + item.name | translate}}\\n ({{'NEW_QUERY.CHARACTER_LIST.WILD_CARD' | translate}})\\n \\n \\n \\n \\n \\n
\\n
\\n {{'COMMON.VALUE' | translate}}:\\n \\n
[{{'NEW_QUERY.CHARACTER_LIST.SIZE_ALLOCATION' | translate}}:\\n {{selectedInputValue['size']}}]
\\n
\\n
\\n \\n \\n
\\n
\\n
{{'NEW_QUERY.CHARACTER_LIST.LIST' | translate}}\\n ({{'NEW_QUERY.CHARACTER_LIST.TOTAL' | translate}}={{danListTableValues['noOfLists']}})
\\n \\n \\n \\n \\n
\\n \\n \\n
\\n
\\n
\\n
\\n
\\n
\\n
\"","export default \"
\\n
\\n {{'GROUP_FORMATTING.FRM_COND_NAME' | translate}}\\n
\\n\\n
\\n
\\n \\n \\n \\n {{item}}\\n \\n \\n \\n\\n
\\n \\n \\n \\n \\n \\n
\\n\\n \\n \\n \\n {{item.label}}\\n \\n \\n
\\n\\n\\n
\\n
\\n keyboard_arrow_right\\n
\\n
\\n keyboard_arrow_left\\n
\\n
\\n\\n
\\n \\n \\n\\n
0\\\"\\n [ngClass]=\\\"{'table-size-with-cond' : isShowCondition, 'table-size-without-cond' : !isShowCondition}\\\">\\n \\n \\n\\n \\n\\n \\n \\n
\\n \\n
\\n
\\n\\n
\\n \\n \\n
\\n
\"","export default \"
\\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n\\n \\n \\n\\n \\n\\n \\n \\n \\n\\n
\\n {{'NAVBAR.ADMIN.GROUPFORMATTING' | translate}}\\n \\n \\n \\\"close\\\"\\n
\\n
\\n \\n \\n {{item}}\\n \\n \\n
\\n
\\n
\\n \\n
\\n {{'GROUP_FORMATTING.GROUP' | translate}}\\n \\n \\n \\n {{item}}\\n \\n \\n \\n
\\n
\\n
\\n
\\n \\n
\\n {{'GROUP_FORMATTING.NEW_GROUP' | translate}}\\n {{'GROUP_FORMATTING.NAME' | translate}}\\n \\n \\n \\n
\\n
\\n
\\n
\\n {{'GROUP_FORMATTING.GRID_NAME' | translate}}\\n
\\n
\\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n
\\n {{val}}\\n \\n
\\n \\n
\\n \\n
TableT/SCondition
\\n {{item.table}}\\n \\n {{item.ts}}\\n \\n \\n {{item.name}}\\n \\n
\\n
\\n
\\n \\n {{'GROUP_FORMATTING.ADD_LABEL' | translate}}\\n \\n \\n \\n \\n {{item.name}}\\n \\n \\n \\n
\\n \\n
\\n \\n
\\n \\n
\\n \\n \\n \\n
\\n
\"","export default \"\\n\\n
\\n
\\n \\n\\n \\n \\n \\n \\n\\n \\n \\n \\n \\n \\\"Chat\\n \\n \\n close\\n \\n

{{ 'USER_MESSAGE.Hello'| translate}} !

\\n

{{ 'USER_MESSAGE.CHATBOT_MGS' | translate }}

\\n

{{ 'USER_MESSAGE.CHAT_BOT_MGS' | translate }}

\\n

{{ 'USER_MESSAGE.ASK_ME' | translate }} ! \\n emoji_emotions \\n

\\n
\\n
\\n \\n
\\n\"","export default \"
\\n \\n \\n \\n \\n \\n\\n \\n \\n \\n \\n \\n \\n \\n \\n \\n\\n \\n
\\n {{'NAVBAR.ADMIN.UPDATELONGSHORTWORD' | translate}}\\n \\n \\n \\n \\\"close\\\"\\n \\n
\\n
\\n
\\n \\n \\n {{item}}\\n \\n \\n
\\n
\\n
\\n
\\n
\\n Table\\n \\n \\n \\n \\n
\\n
\\n \\n\\n\\n
\\n
\\n\\n \\n \\n \\n {{item}}\\n \\n \\n \\n\\n \\n\\n \\n {{strLock}}\\n\\n\\n
\\n help_outline\\n
\\n \\n
\\n \\n
\\n\\n \\n
\\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n
\\n
NomGCO\\n
\\n \\n arrow_downward\\n \\n arrow_upward\\n
\\n
\\n
\\n
Libellé\\n français\\n
\\n \\n arrow_downward\\n \\n arrow_upward\\n
\\n
\\n
\\n
Lib\\n court Français\\n
\\n \\n arrow_downward\\n \\n arrow_upward\\n
\\n
\\n
\\n
Libellé\\n anglais\\n
\\n \\n arrow_downward\\n \\n arrow_upward\\n
\\n
\\n
\\n
Lib\\n court anglais\\n
\\n \\n arrow_downward\\n \\n arrow_upward\\n
\\n
\\n
{{item.GCOName}}{{item.longFR}}\\n \\n \\n {{item.shortFR}}\\n \\n \\n \\n {{item.longEN}}\\n \\n \\n \\n {{item.shortEN}}\\n \\n \\n \\n
\\n
\\n
\\n \\n
\\n
\"","export default \"
\\n\\n
\\n
EUROPE : {{data.display[0].EUROPE[0] !== '' ?\\n data.display[0].EUROPE[0] : ''}}\\n
\\n
\\n
\\n \\n \\n {{item}}\\n {{\\n item}}\\n
\\n \\n
\\n \\n
\\n
\\n\\n\\n
\\n
MERCOSUR : {{data.display[1].MERCOSUR[0] !== '' ?\\n data.display[1].MERCOSUR[0] : ''}}\\n
\\n\\n
\\n
\\n \\n {{item}}\\n {{\\n item}}\\n
\\n\\n \\n
\\n \\n
\\n
\\n\\n
\\n\\n
\\n
Pilotage
\\n Version : {{version}}\\n
\\n \\n
\\n
\\n
\\n
Pilotage
\\n \\n {{'ERROR.GROUP_EXEC_ERROR' | translate}}\\n \\n
\\n \\n {{data.display}}\\n \\n
\\n \\n
\\n
\"","export default \"\\n
\\n [{{selectedTable}}]{{tcm}}/{{queryName}} ({{currentPage === 2 || currentPage === 3 ?\\n detailRowNo + 1 : ''}}) ({{currentPage === 3 ? secondDetailRowNo + 1 : ''}})\\n
\\n
\\n [{{selectedTable}}]{{tcm}}/{{queryName}} ({{currentPage === 2 || currentPage === 3 ?\\n detailRowNo + 1 : ''}}) ({{currentPage === 3 ? secondDetailRowNo + 1 : ''}})\\n keyboard_arrow_left\\n keyboard_arrow_right\\n
\\n
{{'COMMON.NORESULT' | translate}}
\\n
0\\\" (scroll)=\\\"loadDataPagination()\\\">\\n\\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n
\\n \\n {{c.field}}\\n \\n
\\n {{data[i][column.id]}}\\n
\\n
\\n
\\n \\n \\n \\n {{'NEW_QUERY.EXECUTE.COMMON' | translate}} \\n \\n\\n \\n \\n \\n \\n \\n \\n \\n
\\n {{list.name}}\\n
\\n\\n
\\n\\n \\n \\n {{'NEW_QUERY.EXECUTE.INITIAL' | translate}} \\n \\n\\n \\n \\n \\n \\n \\n \\n \\n \\n \\n
\\n {{list.name}}\\n
\\n\\n
\\n\\n \\n \\n {{'NEW_QUERY.EXECUTE.CURRENT' | translate}} \\n \\n\\n \\n \\n \\n \\n \\n \\n \\n
\\n {{list.name}}\\n
\\n\\n
\\n \\n \\n {{'NEW_QUERY.EXECUTE.CLEAR_INITIAL' | translate}} \\n \\n\\n \\n \\n \\n \\n \\n \\n \\n
\\n {{list.name}}\\n
\\n\\n
\\n\\n
\\n
\\n
0 || currentPage === 3)\\\">\\n
\\n GLOBAL\\n DETAIL\\n \\n {{totalRows}} Classes\\n Pop={{popRows}}\\n
\\n
\\n GLOBAL\\n DETAIL\\n \\n {{totalRows}} Element\\n Pop={{popRows}}\\n
\\n
\\n GLOBAL\\n DETAIL\\n \\n {{totalRows}} Element\\n Pop={{popRows}}\\n
\\n 500 && currentPage !== 3 && totalRows !== executedData.length\\\" maxSize=\\\"5\\\"\\n (pageChange)=\\\"clickPagination(p=$event)\\\">\\n \\n\\n 500 && currentPage === 1 && totalRows === executedData.length\\\" maxSize=\\\"5\\\"\\n (pageChange)=\\\"p=$event\\\">\\n \\n\\n
\"","export default \"
\\n
\\n
\\n close\\n
\\n
\\n
\\n {{'NEW_QUERY.EXPORT.EXPORT_FILE' | translate}}\\n
\\n
\\n
\\n
\\n
\\n {{'NEW_QUERY.EXPORT.HEADER' | translate}}\\n
\\n \\n \\n
\\n\\n \\n
\\n \\n \\n
\\n \\n {{'NEW_QUERY.EXPORT.ADD_HEADER' | translate}}\\n \\n
\\n
\\n
\\n {{'NEW_QUERY.EXPORT.EXPORT_FILE_NAME' | translate}}\\n
\\n \\n \\n
\\n
\\n
\\n {{'NEW_QUERY.EXPORT.FILE_TYPE' | translate}}\\n \\n
\\n \\n {{fileType.type}}\\n \\n \\n
\\n
\\n \\n \\n \\n
\\n
\\n
\\n
\\n
\\n {{'NEW_QUERY.EXPORT.GENERATION' | translate}}\\n \\n \\n \\n \\n \\n \\n \\n \\n \\n
\\n \\n\\n \\n {{'NEW_QUERY.EXPORT.' + generate.name | translate}}\\n
\\n {{'NEW_QUERY.EXPORT.' + generate.name2 |\\n translate}}\\n
\\n
\\n
\\n
\\n\\n\\n
\\n
\\n {{'NEW_QUERY.EXPORT.TRANSFER_TYPE' | translate}}\\n \\n \\n \\n \\n \\n \\n \\n \\n \\n
\\n \\n\\n \\n {{'NEW_QUERY.EXPORT.' + transfertype.name | translate}}\\n IDF\\n \\n \\n Part.\\n \\n \\n \\n
\\n
\\n
\\n\\n\\n
\\n
\\n {{'NEW_QUERY.EXPORT.PATTERN' | translate}}\\n
\\n
\\n \\n \\n \\n \\n \\n \\n \\n \\n \\n
\\n \\n\\n \\n {{'NEW_QUERY.EXPORT.' + patternType.name |\\n translate}}\\n \\n
\\n
\\n
\\n
\\n
\\n \\\"curly\\n
\\n
\\n {{'NEW_QUERY.EXPORT.TOTAL_LENGTH' | translate}}\\n
\\n
\\n \\n \\n =4) return false;\\\"\\n [disabled]=\\\"selectedPatternType === 'V' ? true : false\\\">\\n
\\n
\\n
\\n
\\n
\\n
\\n\\n\\n
\\n
\\n\\n
\\n
\\n {{'NEW_QUERY.EXPORT.LINES_SEPARATOR' |\\n translate}}\\n \\n \\n \\n \\n \\n \\n \\n \\n \\n
\\n \\n\\n \\n {{'NEW_QUERY.EXPORT.' + lineType.name | translate}} \\n \\n \\n \\n \\n
\\n
\\n
\\n\\n
\\n
\\n {{'NEW_QUERY.EXPORT.FILEDS_SEPARATOR' |\\n translate}}\\n \\n \\n \\n \\n \\n \\n \\n \\n \\n
\\n \\n\\n \\n {{'NEW_QUERY.EXPORT.' + fieldType.name | translate}} \\n \\n \\n \\n \\n
\\n
\\n
\\n\\n\\n
\\n
\\n
\\n
\\n
\\n
\\n \\n \\n
\\n
\\n
\\n
\\n

{{'NEW_QUERY.EXECUTE.FILE_GENERATE' | translate}}

\\n
\\n
\"","export default \"\\n \\n {{selectedListItem}} :\\n \\n \\n \\n \\n {{'COMMON.' + item.name | translate}}\\n \\n \\n
\\n \\n \\n
\\n
\\n
\"","export default \"\\n \\n {{selectedListItem}} :\\n \\n \\n
\\n \\n \\n
\\n keyboard_arrow_down\\n
\\n
\\n keyboard_arrow_up\\n
\\n

{{'NEW_QUERY.CHARACTER_LIST.EXAMPLE' | translate}}

\\n \\n \\n {{text}} \\n \\n \\n\\n \\n\\n
\\n \\n \\n
\\n
\\n
\\n
\"","export default \"\\n \\n {{selectedInputValue['selectedGroupItemValue']}} :\\n \\n \\n \\n \\n \\n {{'NEW_QUERY.CHARACTER_LIST.' + item.name | translate}}\\n ({{'NEW_QUERY.CHARACTER_LIST.WILD_CARD' | translate}})\\n \\n \\n \\n \\n
\\n
\\n {{'COMMON.VALUE' | translate}}:\\n \\n
[{{'NEW_QUERY.CHARACTER_LIST.SIZE_ALLOCATION' | translate}}: {{selectedInputValue['size']}}]
\\n
\\n
\\n \\n \\n
\\n
\\n
{{'NEW_QUERY.CHARACTER_LIST.LIST' | translate}} ({{'NEW_QUERY.CHARACTER_LIST.TOTAL' | translate}}={{danListTableValues['noOfLists']}})
\\n \\n \\n \\n \\n
\\n \\n \\n
\\n
\\n
\\n
\\n
\\n
\\n
\"","export default \"\\n \\n {{selectedListItem}} :\\n \\n \\n \\n \\n {{'NEW_QUERY.CHARACTER_LIST.' + item.name | translate}}\\n \\n \\n
\\n {{'COMMON.VALUE' | translate}}:\\n \\n
\\n \\n \\n
\\n
\\n
\\n
\"","export default \"
\\n \\n\\n\\n
\\n
\\n {{ 'NAVBAR.VUE_DETAILS' | translate }}\\n {{ 'NAVBAR.PRIVATE_FIELDS' | translate }}\\n {{\\n 'NAVBAR.OPEN_REQUEST' | translate }}\\n {{\\n 'NAVBAR.IMPORT_REQUEST' | translate }}\\n \\n \\\"close\\\"\\n {{\\n 'NAVBAR.TOOL.SUB_MENU.INFORMATION' | translate }}\\n\\n
\\n \\n \\n {{item}}\\n \\n \\n
\\n
\\n
\\n {{'COMMON.LOGIN' | translate}} : \\n + {{ 'COMMON.ENTER' | translate}}\\n
\\n {{ 'NEW_QUERY.TABLE_CHOICE' | translate}}\\n\\n
\\n \\n \\n \\n \\n
\\n\\n
\\n
\\n \\n \\n \\n {{tableValues.selectedTableDetails}}\\n \\n
\\n
\\n \\n {{'NEW_QUERY.PUBLIC_LIST' | translate}}\\n {{'NEW_QUERY.PRIVATE_LIST' |\\n translate}}\\n
\\n\\n\\n
\\n
\\n
\\n {{criteriaValues.selectedCategory}}\\n \\\"down\\\"\\n \\\"up\\\"\\n
\\n\\n \\n
\\n
\\n \\n \\n \\n {{ 'COMMON.ALL' | translate }}\\n \\\"tick\\\"\\n
\\n \\n \\n \\n {{item}}\\\"\\\"\\n \\\"tick\\\"\\n\\n
\\n \\n \\n
\\n
\\n \\n \\n \\n {{item}}\\n \\\"tick\\\"\\n
\\n \\n \\n
\\n
\\n \\n
\\n\\n
\\n \\n \\n \\n \\n \\n
\\n\\n
\\n \\n
\\n \\n \\n \\n {{item}} \\n \\n
\\n
\\n \\n \\n \\n {{item}} \\n \\n
\\n
\\n \\n \\n \\n {{item}} \\n \\n \\n
\\n
\\n
\\n
\\n \\n \\n \\n
\\n
\\n \\n \\n\\n\\n
\\n\\n
\\n
\\n \\n \\\"up\\\"\\n
\\n
\\n \\n \\\"up\\\"\\n
\\n
\\n
\\n\\n\\n
\\n \\n
\\n \\n
\\n \\n \\n {{item.name}}\\n \\n \\n \\\"close\\\"\\n
\\n {{'NAVBAR.LIST_TITLE' | translate}}\\n {{'NAVBAR.VUE_LIST_TITLE' |\\n translate}}\\n \\\"close\\\"\\n\\n \\n \\n
{{item}}\\n
\\n
\\n
\\n
\\n
\\n \\\"close\\\"\\n\\n
\\n
\\n
\\n
\\n {{'NAVBAR.FILE_UPLOAD.BCV' | translate}}
\\n
{{'NAVBAR.FILE_UPLOAD.CDE' | translate}}
\\n
\\n {{'NAVBAR.FILE_UPLOAD.PDFV' | translate}}
\\n
\\n \\n \\n
\\n\\n\\n
\\n {{'NAVBAR.CHOOSEVUELIST' | translate}}
\\n
\\n \\n \\n \\\"Down\\\"\\n \\\"Up\\\"\\n
\\n \\n
\\n \\n \\n
.\\n \\\"Tick\\\"\\n\\n
\\n
\\n \\n
{{item}}\\n \\\"Tick\\\"\\n
\\n
\\n
\\n
\\n
\\n
\\n\\n \\n\\n \\n\\n
\\n\\n
\\n\\n
\\n {{'NEW_QUERY.CHARACTER_EVENT' | translate}}\\n
\\n\\n \\n \\n {{item.name}} \\n \\n \\n\\n \\n\\n \\n \\n \\n
\\n \\n \\n
\\n\\n
\\n
\\n\\n
\\n
\\n \\n \\n \\n \\n
\\n
\\n \\n \\n \\n
\\n
\\n
\\n
\\n\\n
\\n\\n
\\n
\\n \\n \\\"Up\\\"\\n
\\n
\\n \\n \\\"Down\\\"\\n
\\n
\\n
\\n\\n \\n\\n\"","export default \"\\n \\n {{title}} - Date - {{selectedListItem}}\\n \\n Date - {{selectedListItem}}\\n \\n \\n \\n
\\n \\n {{'NEW_QUERY.DATE_GROUPING.' + dateRange[0].name | translate}}\\n \\n \\n {{'NEW_QUERY.DATE_GROUPING.' + dateRange[1].name | translate}}\\n \\n
\\n \\n {{'NEW_QUERY.DATE_GROUPING.' + item.name | translate}}\\n \\n \\n \\n
\\n
\\n
\\n \\n \\n
\\n
\\n
1\\\">\\n
\\n
\\n {{'NEW_QUERY.DELAY_LIST.START_DATE' | translate}}:\\n \\n
\\n {{'NEW_QUERY.DELAY_LIST.END_DATE' | translate}}:\\n \\n
\\n
\\n {{'NEW_QUERY.DELAY_LIST.START_DATE' | translate}}:\\n \\n \\n
\\n {{'NEW_QUERY.DELAY_LIST.END_DATE' | translate}}:\\n \\n
\\n
\\n {{'NEW_QUERY.DELAY_LIST.START_DATE' | translate}}:\\n \\n
\\n {{'NEW_QUERY.DELAY_LIST.END_DATE' | translate}}:\\n \\n
\\n
\\n {{'NEW_QUERY.DELAY_LIST.START_DATE' | translate}}:\\n \\n
\\n {{'NEW_QUERY.DELAY_LIST.END_DATE' | translate}}:\\n \\n
\\n
\\n {{'NEW_QUERY.DELAY_LIST.START_DATE' | translate}}:\\n \\n
\\n {{'NEW_QUERY.DELAY_LIST.END_DATE' | translate}}:\\n \\n
\\n
\\n {{'NEW_QUERY.DELAY_LIST.START_DATE' | translate}}:\\n \\n
\\n {{'NEW_QUERY.DELAY_LIST.END_DATE' | translate}}:\\n \\n
\\n
\\n
\\n
\\n {{'NEW_QUERY.DATE_GROUPING.ABBREVATION' | translate}}
\\n \\n \\n
\\n

{{'NEW_QUERY.DATE_GROUPING.' + item.name | translate}}

\\n
\\n
\\n
\\n
\\n
\\n
\"","export default \"\\n \\n \\n {{ 'NEW_QUERY.DELAY_LIST.DELAY' | translate}}: {{delayInput.date1}}\\n - \\n {{delayInput.date2}}\\n \\n \\n \\n\\n \\n \\n {{'NEW_QUERY.DELAY_LIST.' + item.name | translate}}\\n \\n \\n \\n \\n \\n
\\n {{ 'NEW_QUERY.DELAY_LIST.TO' | translate}} :\\n
\\n \\n
\\n
\\n \\n \\n {{'NEW_QUERY.DELAY_LIST.' + item.name | translate}}\\n \\n \\n \\n\\n \\n \\n {{item}}\\n \\n \\n \\n \\n
\\n \\n \\n
\\n
\\n
\\n
\"","export default \"\\n \\n \\n {{'NEW_QUERY.DELAY_LIST.DELAY' | translate}}: {{delayInput.date1}}\\n - \\n {{delayInput.date2}}\\n \\n \\n \\n \\n \\n {{'NEW_QUERY.DELAY_LIST.' + item.name | translate}}\\n \\n \\n \\n\\n \\n \\n {{item}}\\n \\n \\n \\n \\n
\\n
\\n \\n \\n
\\n
\\n
\\n
\"","export default \"\\n \\n {{'COMMON.GROUPING' | translate}} - {{'COMMON.FIELD' | translate}} - {{selectedListItem}}\\n \\n \\n
\\n
\\n
\\n \\n {{'COMMON.SUM' | translate}}\\n
\\n
\\n\\n
\\n
\\n
\\n \\n \\n
\\n
\\n
\\n
\\n
\\n
\"","export default \"\\n \\n {{title}} - {{'COMMON.LISTOF' | translate}} - {{selectedListItem}}\\n \\n \\n \\n
\\n
\\n
\\n
\\n \\n
\\n
\\n
\\n
\\n arrow_right\\n
\\n
\\n arrow_left\\n
\\n
\\n arrow_drop_up\\n
\\n
\\n arrow_drop_down\\n
\\n
\\n
\\n \\n \\n {{text}} \\n \\n \\n
\\n
\\n
\\n
\\n \\n \\n
\\n
\\n \\n
\\n \\n {{'NEW_QUERY.CHARACTER_LIST.' + item.name | translate}}\\n \\n
\\n \\n \\n
\\n
\\n
\\n
\\n
\\n
\\n \\n \\n
\\n
\\n
\\n
\\n
\\n
\"","export default \"
\\n
\\n
\\n
\\n bar_chart\\n
{{'NEW_QUERY.TABLE' | translate}}\\n ({{selectedTable}}) \\n
\\n
\\n
\\n
\\n
\\n {{selectedCategory}}\\n \\\"down\\n \\\"up\\n
\\n \\n
\\n
\\n \\n \\n
{{'COMMON.ALL' | translate}}\\n \\\"tick\\\"\\n
\\n
\\n \\n
{{item}}\\n \\\"tick\\\"\\n
\\n
\\n
\\n
\\n
\\n \\n \\n
{{item}}\\n \\\"tick\\\"\\n
\\n
\\n
\\n
\\n
\\n
\\n
\\n
\\n \\n \\n \\n \\n \\n
\\n\\n \\n \\n \\n {{item}}\\n info\\n \\n \\n
\\n
\\n
\\n Date1 :\\n
\\n
\\n \\n {{'NEW_QUERY.DELAY_LIST.DATE_FIXED' | translate}}\\n
\\n
\\n \\n\\n
\\n
\\n
\\n \\n \\n
\\n \\n \\n\\n \\n\\n \\n\\n \\n\\n \\n\\n \\n
\\n \\n\\n
\\n
\\n
\\n
\\n
\\n \\n {{'NEW_QUERY.DELAY_LIST.DATE_JOUR' | translate}}\\n
\\n
\\n \\n \\n \\n {{item}}\\n \\n \\n \\n\\n
\\n
\\n Date2 :\\n
\\n
\\n \\n {{'NEW_QUERY.DELAY_LIST.DATE_FIXED' | translate}}\\n
\\n
\\n \\n\\n
\\n
\\n
\\n \\n \\n
\\n \\n \\n \\n \\n \\n \\n \\n
\\n \\n\\n
\\n
\\n
\\n\\n
\\n
\\n \\n {{'NEW_QUERY.DELAY_LIST.DATE_JOUR' | translate}}\\n
\\n
\\n\\n \\n\\n \\n \\n \\n {{item}}\\n \\n \\n \\n\\n
\\n
\\n
\\n\\n
\\n
\\n
\\n
\\n \\n {{'COMMON.Request' | translate}}\\n {{indexofelement + 1}} \\n {{req.queryName}}\\n
\\n \\\"close\\\"\\n
\\n
\\n
\\n\\n
\\n
\\n\\n
\\n
\\n keyboard_arrow_right\\n
\\n
\\n keyboard_arrow_left\\n
\\n
{{'NEW_QUERY.DELAY' | translate}}\\n
\\n
\\n
\\n
\\n
\\n
\\n
\\n
\\n \\\"filter\\\"\\n
\\n
{{'NEW_QUERY.POPULATION_SECTION' |\\n translate}}\\n
\\n
\\n
\\n
\\n
\\n
\\n
\\n \\n
\\n
\\n
\\n
\\n \\n {{'NEW_QUERY.POPULATION.' + field.field_name | translate}} : \\n
\\n \\n \\\"Down\\\"\\n \\\"Up\\\"\\n
\\n \\n
\\n \\n \\n
\\n {{'COMMON.ALL' | translate}}\\n \\\"Tick\\\"\\n
\\n
\\n \\n
{{item}}\\n \\\"Tick\\\"\\n
\\n
\\n
\\n
\\n
\\n
\\n
\\n \\n {{'NEW_QUERY.POPULATION.' + field.field_name | translate}} :\\n \\n
\\n
\\n
\\n
\\n
\\n
\\n + \\n - \\n
\\n
\\n\\n
\\n {{'NEW_QUERY.CHARACTER_EVENT' | translate}}\\n
\\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n
\\n
\\n keyboard_arrow_up\\n
\\n
\\n keyboard_arrow_down\\n
\\n
\\n
\\n
\\n
\\n \\\"filter\\\"\\n
\\n
{{'NEW_QUERY.GROUPMENT' | translate}}\\n
\\n
\\n
\\n
\\n {{'NEW_QUERY.CHARACTER_EVENT' | translate}}\\n
\\n \\n \\n {{item.name}}\\n \\n \\n \\n\\n \\n \\n \\n \\n \\n\\n \\n \\n\\n \\n
\\n
\\n keyboard_arrow_up\\n
\\n
\\n keyboard_arrow_down\\n
\\n
\\n\\n
\\n
\\n
\\n \\\"filter\\\"\\n
\\n
{{'NEW_QUERY.DETAILED_VIEW' |\\n translate}}\\n
\\n
\\n
\\n \\n\\n
\\n
\\n
\\n \\n \\n \\\"Down\\\"\\n \\\"Up\\\"\\n
\\n \\n
\\n \\n \\n
.\\n \\\"Tick\\\"\\n
\\n
\\n \\n
{{item}}\\n \\\"Tick\\\"\\n
\\n
\\n
\\n
\\n
\\n
\\n
\\n \\n {{'NEW_QUERY.TABLE_TYPE' | translate}}\\n \\n \\n
\\n
\\n \\n \\n {{item.name}} \\n \\n \\n\\n \\n \\n \\n
\\n \\n \\n
\\n\\n \\n\\n
\\n
\\n keyboard_arrow_up\\n
\\n
\\n keyboard_arrow_down\\n
\\n
\\n
\\n
\\n
\\n
\\n {{'COMMON.SAVE' | translate}}\\n {{'COMMON.SAVE_AS' | translate}}\\n \\n {{'NEW_QUERY.PREVIEW' | translate}}\\n \\n
\\n
\\n
\\n
\\n
\\n close\\n \\\"getImageData()\\\"\\n
\\n \\n \\n
\\n
\\n \\n
\\n
\\n
\\n
\"","export default \"close\\n
\\n
\\n

{{'NEW_QUERY.REQ_PREVIEW' | translate}}

\\n
\\n
\\n \\n
\\n
\\n

{{'NEW_QUERY.TABLE' | translate}} : {{previewData.table}}

\\n
Date : {{getLocalTime()}}
\\n\\n
\\n

{{'NEW_QUERY.POPULATION_SECTION' | translate}}

\\n \\n

CONDITIONS

\\n
\\n
\\n [\\n
\\n [\\n
\\n +\\n
SAUF
\\n ET\\n {{item.name}}: {{item.value}}\\n
\\n ]\\n
\\n ]\\n
\\n
\\n ET\\n
\\n
\\n
\\n
\\n

{{'NEW_QUERY.GROUPMENT' | translate}}

\\n \\n

{{'NEW_QUERY.VUE_DETAIL' | translate}}

\\n \\n
\\n
\\n\\n\\n\"","export default \"
\\n

{{'NEW_QUERY.SAVE_REQUEST_TITLE' | translate}}

\\n
\\n\\n \\n {{data.type === 'private'?'NEW_QUERY.QUERY_NAME_TITLE':'NEW_QUERY.NEW_QUERY_NAME' | translate}}\\n \\n \\n \\n {{name}}\\n \\n \\n \\n {{'NEW_QUERY.PUBLIC_LIST' | translate}}\\n
\\n \\n \\n
\\n \\n
\"","export default \"
\\n
\\n {{data.title}}\\n\\n \\\"close\\\"\\n
\\n
\\n
\\n \\n \\n \\n \\n \\n \\n \\n \\n \\n
\\n \\n \\n \\n {{item.name}}\\n \\n \\n \\n \\n
\\n
\\n \\n \\n\\n
\\n File to send to the\\n server {{selectedFileName}}\\n
\\n\\n
\\n
\\n help_outline\\n \\n
\\n
\\n
\\n\\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n
\\n
\\n
\\n
\\n {{criteriaValues.selectedCategory}}\\n \\\"down\\\"\\n \\\"up\\\"\\n
\\n\\n \\n
\\n
\\n \\n \\n \\n {{ 'COMMON.ALL' | translate }}\\n \\\"tick\\\"\\n
\\n \\n \\n \\n {{item}}\\n \\\"tick\\\"\\n
\\n \\n \\n
\\n
\\n \\n \\n \\n {{item}}\\n \\\"tick\\\"\\n
\\n \\n \\n
\\n \\n \\n \\n\\n
\\n \\n \\n \\n \\n \\n
\\n\\n
\\n \\n \\n \\n {{item}} \\n \\n \\n
\\n \\n
\\n
\\n \\n \\n \\n \\n
\\n
\\n
\\n
\\n
{{ 'REALIGNMENT.LIST_CRITERIA' |\\n translate\\n }}
\\n
\\n
\\n
\\n {{item.name}}\\n
\\n \\n\\n \\n
\\n \\n
\\n
\\n\\n\\n
\\n
{{ 'REALIGNMENT.LIST_DATA' | translate\\n }}
\\n
\\n
\\n
\\n {{item.name}}
\\n
\\n
\\n\\n
\\n\\n
\\n
\\n
\\n
\\n
\\n \\n \\n
\\n
\"","export default \"
\\n \\n \\n \\n \\n \\n \\n \\n \\n \\n\\n \\n \\n\\n \\n\\n \\n \\n \\n \\n\\n \\n \\n \\n\\n
\\n {{'REALIGNMENT.TITLE' | translate}}\\n \\n \\n \\\"close\\\"\\n\\n
\\n
\\n
\\n
\\n \\n \\n {{item}}\\n \\n \\n
\\n
\\n
\\n {{lostLogDetails}}
\\n
\\n
\\n help_outline\\n \\n
\\n
\\n
\\n
\\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n
TableDemandeEtat
{{list.table}}{{list.demande}}{{list.etat}}
\\n
\\n
\\n
\\n \\n \\n \\n \\n
\\n
\\n
\\n \\n \\n \\n \\n
\\n
\\n
\"","export default \"
\\n
\\n {{ 'NAVBAR.NEW_REQUEST' | translate }}\\n \\\"close\\\"\\n
\\n
\\n \\n \\n {{item}}\\n \\n \\n
\\n
\\n {{ 'NEW_QUERY.TABLE_CHOICE' | translate}}
\\n\\n
\\n \\n \\n \\n \\n
\\n\\n
\\n
\\n \\n \\n \\n {{tableValues.selectedTableDetails}}\\n \\n
\\n
\\n \\n
\\n
\\n \\n \\n \\n \\n
\\n
\"","export default \"
\\n User Message Send Instantly\\n \\n \\\"close\\\"\\n \\n
\\n\\n
\\n \\n {{'USER_MESSAGE_SEND_INSTANTLY.MESSAGE_TITLE' |translate}}\\n \\n \\n \\n
\\n\\n
\\n \\n
\"","export default \"
\\n
\\n {{'NAVBAR.ADMIN.USER_MESSAGE' | translate}}\\n \\n \\\"close\\\"\\n \\n
\\n \\n\\n
\\n
\\n Region\\n
\\n \\n \\n {{item}}\\n \\n \\n
\\n
\\n
\\n {{'USER_MESSAGE.TYPE_MESSAGE_TITLE' | translate}}\\n \\n \\n\\n \\n \\n {{'USER_MESSAGE.NONE' | translate}}\\n \\n \\n {{'USER_MESSAGE.PERMANENT' | translate}}\\n \\n \\n {{'USER_MESSAGE.TEMPORARY' | translate}}\\n \\n \\n
\\n \\n
\\n\\n
\\n\\n {{'USER_MESSAGE.MESSAGE_LABEL_TITLE' |\\n translate}}\\n
\\n \\n \\n
\\n\\n \\n\\n
\\n \\n\\n \\n\\n \\n \\n
\\n\\n
\"","export default \"\\n
\\n
\\n
\\n
\\n
\\n
\\n
EUROPE : {{data.display[0].EUROPE[0] !== '' ? data.display[0].EUROPE[0] : ''}} \\n
\\n {{ data.display[0].EUROPE[1] }}\\n \\n
\\n
\\n
MERCOSUR : {{data.display[1].MERCOSUR[0] !== '' ? data.display[1].MERCOSUR[0] : ''}}\\n
\\n {{ data.display[1].MERCOSUR[1] }}\\n
\\n
\\n
\\n
\\n \\n
\\n
\\n
\"","export default \"
\\n
\\n {{'NAVBAR.ADMIN.LIST_CONNECTION' |\\n translate}}\\n \\\"close\\\"\\n
\\n
\\n \\n
\\n\\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n
{{'LIST_CONNECTION.USER_ID' | translate}}{{'LIST_CONNECTION.DATE_CONNECTION' | translate}}{{'LIST_CONNECTION.VERSION' | translate}}
{{datas.userIpn}}{{datas.lastLoginDateTime | date: 'EEE MMM d HH:mm:ss yyyy'}}{{datas.clientVersion}}
\\n
\\n \\n
\\n
\"","export default \"
\\n
\\n
\\n
\\n
\"","export default \"
\\n home\\n PILOTAGE {{favoriteConnecton}} - DISTRIBUTION\\n
\\n \\n account_circle\\n \\n arrow_drop_down\\n \\n
\\n \\n

{{profile.firstname}} {{profile.lastname}}\\n ({{profile.uid}})\\n

\\n \\n \\n
Europe : {{groupProfile().europe ? groupProfile().europe : ''}}
\\n
Mercosur : {{groupProfile().mercosur ? groupProfile().mercosur : ''}}
\\n
\\n
\\n
\\n
\\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n
\\n \\n
\\n
\\n \\n \\n
\\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n
\\n
\\n
\"","/*! *****************************************************************************\r\nCopyright (c) Microsoft Corporation. All rights reserved.\r\nLicensed under the Apache License, Version 2.0 (the \"License\"); you may not use\r\nthis file except in compliance with the License. You may obtain a copy of the\r\nLicense at http://www.apache.org/licenses/LICENSE-2.0\r\n\r\nTHIS CODE IS PROVIDED ON AN *AS IS* BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\r\nKIND, EITHER EXPRESS OR IMPLIED, INCLUDING WITHOUT LIMITATION ANY IMPLIED\r\nWARRANTIES OR CONDITIONS OF TITLE, FITNESS FOR A PARTICULAR PURPOSE,\r\nMERCHANTABLITY OR NON-INFRINGEMENT.\r\n\r\nSee the Apache Version 2.0 License for specific language governing permissions\r\nand limitations under the License.\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 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) : new P(function (resolve) { resolve(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 __exportStar(m, exports) {\r\n for (var p in m) if (!exports.hasOwnProperty(p)) exports[p] = m[p];\r\n}\r\n\r\nexport function __values(o) {\r\n var m = typeof Symbol === \"function\" && o[Symbol.iterator], i = 0;\r\n if (m) return m.call(o);\r\n 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}\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","import { NgModule } from '@angular/core';\nimport { Routes, RouterModule } from '@angular/router';\n\nimport { AuthGuard } from './services/auth/auth.guard.service';\nimport { AuthentificationComponent } from './core/authentification/authentification.component';\nimport { UnauthorizedAccessComponent } from './core/authentification/unauthorized-access.component';\nimport { HomeComponent } from './component/home/home.component';\nimport { ChoiceTableComponent } from './component/table/choice-table/choice-table.component'\nimport { QueryMainScreenComponent } from './component/query/main-screen/main-screen.component';\nimport { LoadSpinnerComponent } from './load-spinner/load-spinner.component';\nimport { CreatePrivateGroupComponent } from './component/query/grouping/create-private-group/create-private-group.component';\nimport { LabelManagementComponent } from './component/label-management/label-management.component';\nimport { UserMessageComponent } from './component/user-message/user-message.component';\nimport { GroupFormattingComponent } from './component/group-formatting/group-formatting.component';\nimport { ListConnectionComponent } from './list-connection/list-connection.component';\nimport { RealignmentMainComponent } from './component/realignment-main/realignment-main.component';\n\nconst routes: Routes = [\n {\n path: '',\n component: AuthentificationComponent\n },\n { path: 'unauthorized', component: UnauthorizedAccessComponent },\n\n {\n path: \"home\", component: HomeComponent, canActivate: [AuthGuard], children: [\n { path: \"user-message\", component: UserMessageComponent, canActivate: [AuthGuard] },\n { path: \"list-connection\", component: ListConnectionComponent, canActivate: [AuthGuard] },\n { path: \"loader\", component: LoadSpinnerComponent, canActivate: [AuthGuard] },\n { path: \"table\", component: ChoiceTableComponent, canActivate: [AuthGuard] },\n { path: \"query\", component: QueryMainScreenComponent, canActivate: [AuthGuard] },\n { path: \"vue\", component: CreatePrivateGroupComponent, canActivate: [AuthGuard] },\n { path: \"open-request\", component: CreatePrivateGroupComponent, canActivate: [AuthGuard] },\n { path: \"import-request\", component: CreatePrivateGroupComponent, canActivate: [AuthGuard] },\n { path: \"extraction-tool\", component: CreatePrivateGroupComponent, canActivate: [AuthGuard] },\n { path: \"champs\", component: CreatePrivateGroupComponent, canActivate: [AuthGuard] },\n { path: \"label-management\", component: LabelManagementComponent, canActivate: [AuthGuard] },\n { path: \"group-formatting\", component: GroupFormattingComponent, canActivate: [AuthGuard] },\n { path: \"realignment\", component: RealignmentMainComponent, canActivate: [AuthGuard] },\n ]\n }\n // { path: '', redirectTo: \"/home\", pathMatch: \"full\" } , canActivate: [AuthGuard]\n];\n\n@NgModule({\n imports: [RouterModule.forRoot(routes)],\n exports: [RouterModule]\n})\nexport class AppRoutingModule { }\n","export default \".gray-line {\\n width: 100%;\\n border-bottom: 1px solid;\\n border-bottom-color: #cccccc;\\n}\\n\\n.img-size-20 {\\n height: 15px;\\n width: 15px;\\n margin-top: 7px;\\n}\\n\\n.page-size {\\n width: 100%;\\n height: calc(100% - 40px);\\n background-color: #E9EEF0;\\n}\\n/*# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi91c3Ivc3JjL3NyYy9hcHAvYXBwLmNvbXBvbmVudC5zY3NzIiwic3JjL2FwcC9hcHAuY29tcG9uZW50LnNjc3MiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUE7RUFDRSxXQUFBO0VBQ0Esd0JBQUE7RUFDQSw0QkFBQTtBQ0NGOztBREVBO0VBQ0UsWUFBQTtFQUNBLFdBQUE7RUFDQSxlQUFBO0FDQ0Y7O0FERUE7RUFDRSxXQUFBO0VBQ0EseUJBQUE7RUFDQSx5QkFBQTtBQ0NGIiwiZmlsZSI6InNyYy9hcHAvYXBwLmNvbXBvbmVudC5zY3NzIiwic291cmNlc0NvbnRlbnQiOlsiLmdyYXktbGluZSB7XG4gIHdpZHRoOiAxMDAlO1xuICBib3JkZXItYm90dG9tOiAxcHggc29saWQ7XG4gIGJvcmRlci1ib3R0b20tY29sb3I6ICNjY2NjY2M7XG59XG5cbi5pbWctc2l6ZS0yMHtcbiAgaGVpZ2h0OiAxNXB4O1xuICB3aWR0aDogMTVweDtcbiAgbWFyZ2luLXRvcDogN3B4O1xufVxuXG4ucGFnZS1zaXple1xuICB3aWR0aDogMTAwJTsgXG4gIGhlaWdodDogY2FsYygxMDAlIC0gNDBweCk7IFxuICBiYWNrZ3JvdW5kLWNvbG9yOiAjRTlFRUYwO1xufSIsIi5ncmF5LWxpbmUge1xuICB3aWR0aDogMTAwJTtcbiAgYm9yZGVyLWJvdHRvbTogMXB4IHNvbGlkO1xuICBib3JkZXItYm90dG9tLWNvbG9yOiAjY2NjY2NjO1xufVxuXG4uaW1nLXNpemUtMjAge1xuICBoZWlnaHQ6IDE1cHg7XG4gIHdpZHRoOiAxNXB4O1xuICBtYXJnaW4tdG9wOiA3cHg7XG59XG5cbi5wYWdlLXNpemUge1xuICB3aWR0aDogMTAwJTtcbiAgaGVpZ2h0OiBjYWxjKDEwMCUgLSA0MHB4KTtcbiAgYmFja2dyb3VuZC1jb2xvcjogI0U5RUVGMDtcbn0iXX0= */\"","import { Component } from '@angular/core';\nimport { environment } from '../environments/environment.prod';\nimport { Idle } from 'idlejs/dist';\nimport { OAuthService } from 'angular-oauth2-oidc';\nimport { Router } from '@angular/router';\nimport { TranslateService } from '@ngx-translate/core';\nimport { MatomoInjector } from 'ngx-matomo';\nimport { RequestService } from './services/request/request.service';\nimport 'moment/min/locales.min';\nimport moment from 'moment';\n\n@Component({\n selector: 'app-root',\n templateUrl: './app.component.html',\n styleUrls: ['./app.component.scss']\n})\nexport class AppComponent {\n title = 'PILOTAGE';\n public constSilentRefreshIFrameName = 'rnlt-angular-oauth-oidc-silent-refresh-iframe';\n constructor(private readonly translateService: TranslateService,\n readonly requestService: RequestService, private readonly oauthService: OAuthService, private readonly router: Router, private readonly matomoInjector: MatomoInjector) {\n let idpVersion = 're7';\n\n if ((window.location.hostname.indexOf('pil.app.renault.com') !== -1)\n || (window.location.hostname.indexOf('pil-app.gke2.ope.gcp.renault.com') !== -1)) {\n // Prod\n idpVersion = 'ope';\n this.oauthService.configure({\n useSilentRefresh: true,\n silentRefreshRedirectUri: environment.idp.silentRefreshRedirectUri,\n redirectUri: environment.idp.prod[idpVersion].redirect_uri,\n clientId: environment.idp.prod[idpVersion].client_id,\n loginUrl: environment.idp.prod[idpVersion].loginUrl,\n logoutUrl: environment.idp.prod[idpVersion].logoutUrl,\n userinfoEndpoint: environment.idp.prod[idpVersion].userinfoEndpoint,\n issuer: environment.idp.prod[idpVersion].issuer,\n scope: environment.idp.scope,\n showDebugInformation: false,\n clearHashAfterLogin: false,\n responseType: 'code',\n silentRefreshShowIFrame: true,\n silentRefreshIFrameName:this.constSilentRefreshIFrameName,\n sessionChecksEnabled: false,\n disableAtHashCheck: true\n });\n } else if (window.location.hostname.indexOf('pil-app.gke2.int.gcp.renault.com') !== -1) {\n this.oauthService.configure({\n useSilentRefresh: true,\n silentRefreshRedirectUri: environment.idp.silentRefreshRedirectUri,\n redirectUri: environment.idp.prod[idpVersion].redirect_uri,\n clientId: environment.idp.prod[idpVersion].client_id,\n loginUrl: environment.idp.prod[idpVersion].loginUrl,\n logoutUrl: environment.idp.prod[idpVersion].logoutUrl,\n userinfoEndpoint: environment.idp.prod[idpVersion].userinfoEndpoint,\n issuer: environment.idp.prod[idpVersion].issuer,\n scope: environment.idp.scope,\n showDebugInformation: true,\n clearHashAfterLogin: false,\n responseType: 'code',\n silentRefreshShowIFrame: true,\n silentRefreshIFrameName: this.constSilentRefreshIFrameName,\n sessionChecksEnabled: false,\n disableAtHashCheck: true\n });\n }\n else if (window.location.hostname.indexOf('pil-app.gke2.dev.gcp.renault.com') !== -1) {\n idpVersion = 'dev';\n this.oauthService.configure({\n useSilentRefresh: true,\n silentRefreshRedirectUri: environment.idp.silentRefreshRedirectUri,\n redirectUri: environment.idp.prod[idpVersion].redirect_uri,\n clientId: environment.idp.prod[idpVersion].client_id,\n loginUrl: environment.idp.prod[idpVersion].loginUrl,\n logoutUrl: environment.idp.prod[idpVersion].logoutUrl,\n userinfoEndpoint: environment.idp.prod[idpVersion].userinfoEndpoint,\n issuer: environment.idp.prod[idpVersion].issuer,\n scope: environment.idp.scope,\n showDebugInformation: true,\n clearHashAfterLogin: false,\n responseType: 'code',\n silentRefreshShowIFrame: true,\n silentRefreshIFrameName: this.constSilentRefreshIFrameName,\n sessionChecksEnabled: false,\n disableAtHashCheck: true,\n // timeoutFactor: 0.10\n });\n } else {\n this.oauthService.configure({\n issuer: environment.idp.prod[idpVersion].issuer,\n loginUrl: environment.idp.prod[idpVersion].loginUrl,\n userinfoEndpoint: environment.idp.prod[idpVersion].userinfoEndpoint,\n clientId: environment.idp.prod[idpVersion].client_id,\n scope: environment.idp.scope,\n\n redirectUri: environment.idp.prod[idpVersion].redirect_uri,\n responseType: 'code',\n\n useSilentRefresh: true,\n silentRefreshRedirectUri: environment.idp.silentRefreshRedirectUri,\n silentRefreshShowIFrame: true,\n silentRefreshIFrameName: this.constSilentRefreshIFrameName,\n showDebugInformation: false,\n sessionChecksEnabled: false,\n clearHashAfterLogin: false\n });\n }\n this.oauthService.setupAutomaticSilentRefresh();\n }\n\n ngOnInit() {\n\n const selectedLang = this.requestService.getSelectedLang();\n const supportedLanguages = ['en', 'fr'];\n if (selectedLang !== undefined && selectedLang !== null && supportedLanguages.indexOf(selectedLang) > -1) {\n this.translateService.setDefaultLang(selectedLang);\n } else {\n this.translateService.setDefaultLang('fr');\n this.requestService.addLang('fr');\n this.translateService.use('fr');\n }\n if (this.translateService.currentLang) {\n const currentLanguage =\n supportedLanguages.indexOf(this.translateService.currentLang) >= 0 ?\n this.translateService.currentLang :\n this.translateService.getBrowserLang();\n this.translateService.addLangs(supportedLanguages);\n this.translateService.use(currentLanguage);\n moment.locale(currentLanguage);\n }\n const idle = new Idle()\n .whenNotInteractive()\n .within(environment.timeOutwhenNotInteractive)\n .do(() => {\n this.oauthService.silentRefresh();\n })\n .start().repeat(true);\n }\n}\n","import { BrowserModule } from '@angular/platform-browser';\nimport { BrowserAnimationsModule } from '@angular/platform-browser/animations';\nimport { NgModule, CUSTOM_ELEMENTS_SCHEMA } from '@angular/core';\nimport { HttpClient, HTTP_INTERCEPTORS } from '@angular/common/http';\nimport { FormsModule } from '@angular/forms';\nimport { ToastyModule } from 'ng2-toasty';\nimport { TranslateLoader, TranslateModule } from '@ngx-translate/core';\nimport { TranslateHttpLoader } from '@ngx-translate/http-loader';\nimport { DatePipe } from '@angular/common';\nimport { MatomoModule } from 'ngx-matomo';\nimport { OAuthModule } from 'angular-oauth2-oidc';\nimport { AppMaterialModule } from './material-module';\nimport { AppRoutingModule } from './app-routing.module';\nimport { TableModule } from './component/table/table.module';\nimport { QueryScreenModule } from './component/query/query-screen.module';\nimport { InterceptService } from './services/intercept/intercept.service';\nimport { LoaderService } from './services/loader/loader.service';\nimport { AppComponent } from './app.component';\nimport { NavBarComponent } from './nav-bar/nav-bar.component';\nimport { LoadSpinnerComponent } from './load-spinner/load-spinner.component';\nimport { HomeComponent } from './component/home/home.component';\nimport { AlertConfirmationComponent } from './component/alert-confirmation/alert-confirmation.component';\nimport { AuthentificationModule } from './core/authentification/authentification.module';\nimport { AlertMessageComponent } from './component/query/alert-message/alert-message.component';\nimport { LabelManagementComponent } from './component/label-management/label-management.component';\nimport { UserMessageComponent } from './component/user-message/user-message.component';\nimport { GroupFormattingComponent } from './component/group-formatting/group-formatting.component';\nimport { GroupFormattingConditionComponent } from './component/group-formatting-condition/group-formatting-condition.component';\nimport { GfcCharacterListComponent } from './component/gfc-character-list/gfc-character-list.component';\nimport { UserMessageSendinstantlyComponent } from './component/user-message/user-message-sendinstantly/user-message-sendinstantly.component';\nimport { ListConnectionComponent } from './list-connection/list-connection.component';\nimport { NgxPaginationModule } from 'ngx-pagination';\nimport { RealignmentMainComponent } from './component/realignment-main/realignment-main.component';\nimport { RealignmentDataComponent } from './component/realignment-main/realignment-data/realignment-data.component';\nimport { ScrollTrackerDirective } from './component/query/column-segment-three/scroll-tracker.directive';\n\nexport function createTranslateLoader(http: HttpClient) {\n return new TranslateHttpLoader(http, './assets/i18n/', '.json');\n}\n\n@NgModule({\n declarations: [\n AppComponent,\n NavBarComponent,\n LoadSpinnerComponent,\n HomeComponent,\n AlertConfirmationComponent,\n AlertMessageComponent,\n LabelManagementComponent,\n UserMessageComponent,\n GroupFormattingComponent,\n GroupFormattingConditionComponent,\n GfcCharacterListComponent,\n UserMessageSendinstantlyComponent,\n ListConnectionComponent,\n RealignmentMainComponent,\n RealignmentDataComponent,\n ScrollTrackerDirective\n ],\n imports: [\n FormsModule,\n BrowserModule,\n BrowserAnimationsModule,\n MatomoModule,\n AppMaterialModule,\n AuthentificationModule,\n OAuthModule.forRoot(),\n ToastyModule.forRoot(),\n AppRoutingModule,\n TableModule,\n QueryScreenModule,\n NgxPaginationModule,\n TranslateModule.forRoot({\n loader: {\n provide: TranslateLoader,\n useFactory: (createTranslateLoader),\n deps: [HttpClient]\n }\n })\n\n ],\n providers: [\n DatePipe,\n InterceptService,\n {\n provide: HTTP_INTERCEPTORS,\n useClass: InterceptService,\n multi: true\n }, LoaderService],\n bootstrap: [AppComponent],\n schemas: [CUSTOM_ELEMENTS_SCHEMA],\n entryComponents: [AlertConfirmationComponent, AlertMessageComponent, GroupFormattingConditionComponent, UserMessageSendinstantlyComponent, RealignmentDataComponent]\n})\nexport class AppModule { }","export default \".example-radio-group {\\n display: flex;\\n flex-direction: column;\\n margin: 15px 0;\\n}\\n\\n.example-radio-button {\\n margin: 5px;\\n}\\n\\n.dialog-title {\\n padding: 0px 15px 0px 0px;\\n color: #000000;\\n font-family: Roboto, \\\"Helvetica Neue\\\", sans-serif;\\n font-size: 15px;\\n font-weight: 600;\\n line-height: 17px;\\n width: 146px;\\n text-align: left;\\n}\\n\\n.radio-font {\\n padding: 0px 15px 0px 25px;\\n margin-top: 10px;\\n color: #000000;\\n font-family: Roboto, \\\"Helvetica Neue\\\", sans-serif;\\n font-size: 13px;\\n font-weight: 400;\\n line-height: 17px;\\n text-align: left;\\n}\\n\\n.button-style {\\n width: 82px;\\n height: 36px;\\n font-family: Roboto, \\\"Helvetica Neue\\\", sans-serif;\\n font-size: 13px;\\n font-weight: 500;\\n text-align: center;\\n border: 0px solid;\\n background-color: #FFCC33;\\n padding: 0 !important;\\n}\\n\\n.mrleft10px {\\n margin-left: 10px !important;\\n}\\n\\n.mrtop10px {\\n margin-top: 10px !important;\\n}\\n\\n.wt250px {\\n width: 250px !important;\\n}\\n\\n.float-rt {\\n float: right;\\n}\\n/*# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi91c3Ivc3JjL3NyYy9hcHAvY29tcG9uZW50L2FsZXJ0LWNvbmZpcm1hdGlvbi9hbGVydC1jb25maXJtYXRpb24uY29tcG9uZW50LnNjc3MiLCJzcmMvYXBwL2NvbXBvbmVudC9hbGVydC1jb25maXJtYXRpb24vYWxlcnQtY29uZmlybWF0aW9uLmNvbXBvbmVudC5zY3NzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBO0VBQ0UsYUFBQTtFQUNBLHNCQUFBO0VBQ0EsY0FBQTtBQ0NGOztBREVBO0VBQ0UsV0FBQTtBQ0NGOztBREVBO0VBQ0kseUJBQUE7RUFDQSxjQUFBO0VBQ0EsaURBQUE7RUFDQSxlQUFBO0VBQ0EsZ0JBQUE7RUFDQSxpQkFBQTtFQUNBLFlBQUE7RUFDQSxnQkFBQTtBQ0NKOztBREVBO0VBQ0UsMEJBQUE7RUFDQSxnQkFBQTtFQUNBLGNBQUE7RUFDQSxpREFBQTtFQUNBLGVBQUE7RUFDQSxnQkFBQTtFQUNBLGlCQUFBO0VBRUEsZ0JBQUE7QUNBRjs7QURHQTtFQUNJLFdBQUE7RUFDQSxZQUFBO0VBQ0EsaURBQUE7RUFDQSxlQUFBO0VBQ0EsZ0JBQUE7RUFDQSxrQkFBQTtFQUNBLGlCQUFBO0VBQ0EseUJBQUE7RUFDQSxxQkFBQTtBQ0FKOztBREdBO0VBQ0UsNEJBQUE7QUNBRjs7QURHQTtFQUNFLDJCQUFBO0FDQUY7O0FER0E7RUFDRSx1QkFBQTtBQ0FGOztBREdBO0VBQ0UsWUFBQTtBQ0FGIiwiZmlsZSI6InNyYy9hcHAvY29tcG9uZW50L2FsZXJ0LWNvbmZpcm1hdGlvbi9hbGVydC1jb25maXJtYXRpb24uY29tcG9uZW50LnNjc3MiLCJzb3VyY2VzQ29udGVudCI6WyIuZXhhbXBsZS1yYWRpby1ncm91cCB7XG4gIGRpc3BsYXk6IGZsZXg7XG4gIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XG4gIG1hcmdpbjogMTVweCAwO1xufVxuXG4uZXhhbXBsZS1yYWRpby1idXR0b24ge1xuICBtYXJnaW46IDVweDtcbn1cblxuLmRpYWxvZy10aXRsZXtcbiAgICBwYWRkaW5nOiAwcHggMTVweCAwcHggMHB4O1xuICAgIGNvbG9yOiAjMDAwMDAwO1xuICAgIGZvbnQtZmFtaWx5OiBSb2JvdG8sXCJIZWx2ZXRpY2EgTmV1ZVwiLHNhbnMtc2VyaWY7XG4gICAgZm9udC1zaXplOiAxNXB4O1xuICAgIGZvbnQtd2VpZ2h0OiA2MDA7XG4gICAgbGluZS1oZWlnaHQ6IDE3cHg7XG4gICAgd2lkdGg6IDE0NnB4O1xuICAgIHRleHQtYWxpZ246IGxlZnQ7XG59XG5cbi5yYWRpby1mb250e1xuICBwYWRkaW5nOiAwcHggMTVweCAwcHggMjVweDtcbiAgbWFyZ2luLXRvcDogMTBweDtcbiAgY29sb3I6ICMwMDAwMDA7XG4gIGZvbnQtZmFtaWx5OiBSb2JvdG8sXCJIZWx2ZXRpY2EgTmV1ZVwiLHNhbnMtc2VyaWY7XG4gIGZvbnQtc2l6ZTogMTNweDtcbiAgZm9udC13ZWlnaHQ6IDQwMDtcbiAgbGluZS1oZWlnaHQ6IDE3cHg7XG4gIC8vIHdpZHRoOiAxNDVweDtcbiAgdGV4dC1hbGlnbjogbGVmdDtcbn1cblxuLmJ1dHRvbi1zdHlsZXtcbiAgICB3aWR0aDogODJweDsgXG4gICAgaGVpZ2h0OiAzNnB4OyBcbiAgICBmb250LWZhbWlseTogUm9ib3RvLFwiSGVsdmV0aWNhIE5ldWVcIixzYW5zLXNlcmlmO1xuICAgIGZvbnQtc2l6ZTogMTNweDtcbiAgICBmb250LXdlaWdodDogNTAwO1xuICAgIHRleHQtYWxpZ246IGNlbnRlcjsgXG4gICAgYm9yZGVyOiAwcHggc29saWQ7IFxuICAgIGJhY2tncm91bmQtY29sb3I6ICNGRkNDMzM7XG4gICAgcGFkZGluZzogMCAhaW1wb3J0YW50O1xufVxuXG4ubXJsZWZ0MTBweHtcbiAgbWFyZ2luLWxlZnQ6IDEwcHggIWltcG9ydGFudDtcbn1cblxuLm1ydG9wMTBweHtcbiAgbWFyZ2luLXRvcDoxMHB4ICFpbXBvcnRhbnQ7XG59XG5cbi53dDI1MHB4e1xuICB3aWR0aDoyNTBweCAhaW1wb3J0YW50O1xufVxuXG4uZmxvYXQtcnR7XG4gIGZsb2F0OnJpZ2h0O1xufSIsIi5leGFtcGxlLXJhZGlvLWdyb3VwIHtcbiAgZGlzcGxheTogZmxleDtcbiAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcbiAgbWFyZ2luOiAxNXB4IDA7XG59XG5cbi5leGFtcGxlLXJhZGlvLWJ1dHRvbiB7XG4gIG1hcmdpbjogNXB4O1xufVxuXG4uZGlhbG9nLXRpdGxlIHtcbiAgcGFkZGluZzogMHB4IDE1cHggMHB4IDBweDtcbiAgY29sb3I6ICMwMDAwMDA7XG4gIGZvbnQtZmFtaWx5OiBSb2JvdG8sIFwiSGVsdmV0aWNhIE5ldWVcIiwgc2Fucy1zZXJpZjtcbiAgZm9udC1zaXplOiAxNXB4O1xuICBmb250LXdlaWdodDogNjAwO1xuICBsaW5lLWhlaWdodDogMTdweDtcbiAgd2lkdGg6IDE0NnB4O1xuICB0ZXh0LWFsaWduOiBsZWZ0O1xufVxuXG4ucmFkaW8tZm9udCB7XG4gIHBhZGRpbmc6IDBweCAxNXB4IDBweCAyNXB4O1xuICBtYXJnaW4tdG9wOiAxMHB4O1xuICBjb2xvcjogIzAwMDAwMDtcbiAgZm9udC1mYW1pbHk6IFJvYm90bywgXCJIZWx2ZXRpY2EgTmV1ZVwiLCBzYW5zLXNlcmlmO1xuICBmb250LXNpemU6IDEzcHg7XG4gIGZvbnQtd2VpZ2h0OiA0MDA7XG4gIGxpbmUtaGVpZ2h0OiAxN3B4O1xuICB0ZXh0LWFsaWduOiBsZWZ0O1xufVxuXG4uYnV0dG9uLXN0eWxlIHtcbiAgd2lkdGg6IDgycHg7XG4gIGhlaWdodDogMzZweDtcbiAgZm9udC1mYW1pbHk6IFJvYm90bywgXCJIZWx2ZXRpY2EgTmV1ZVwiLCBzYW5zLXNlcmlmO1xuICBmb250LXNpemU6IDEzcHg7XG4gIGZvbnQtd2VpZ2h0OiA1MDA7XG4gIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgYm9yZGVyOiAwcHggc29saWQ7XG4gIGJhY2tncm91bmQtY29sb3I6ICNGRkNDMzM7XG4gIHBhZGRpbmc6IDAgIWltcG9ydGFudDtcbn1cblxuLm1ybGVmdDEwcHgge1xuICBtYXJnaW4tbGVmdDogMTBweCAhaW1wb3J0YW50O1xufVxuXG4ubXJ0b3AxMHB4IHtcbiAgbWFyZ2luLXRvcDogMTBweCAhaW1wb3J0YW50O1xufVxuXG4ud3QyNTBweCB7XG4gIHdpZHRoOiAyNTBweCAhaW1wb3J0YW50O1xufVxuXG4uZmxvYXQtcnQge1xuICBmbG9hdDogcmlnaHQ7XG59Il19 */\"","import { Component, Inject } from '@angular/core';\nimport { MatDialogRef, MAT_DIALOG_DATA } from '@angular/material/dialog';\n\n@Component({\n selector: 'app-alert-confirmation',\n templateUrl: './alert-confirmation.component.html',\n styleUrls: ['./alert-confirmation.component.scss']\n})\nexport class AlertConfirmationComponent {\n\n bln: boolean;\n textVal: string = '';\n\n constructor(public dialogRef: MatDialogRef,\n @Inject(MAT_DIALOG_DATA) public data: any) { }\n\n \n\n getValue() {\n if (!this.data.isText) {\n return true;\n } else {\n return this.textVal.trim();\n }\n }\n\n onNoClick(): void {\n this.dialogRef.close();\n }\n\n}\n","import { Directive, ElementRef, Input, OnInit, OnDestroy, Renderer2 } from '@angular/core';\nimport { NgControl } from '@angular/forms';\nimport { Subscription } from 'rxjs';\n\n@Directive({\n selector: '[formControlName][appDayMask]',\n})\nexport class DayMaskDirective implements OnInit, OnDestroy {\n\n private _preValue: string;\n\n @Input()\n set preValue(value: string) {\n this._preValue = value;\n }\n\n private sub: Subscription;\n\n constructor(private el: ElementRef,\n private _dayControl: NgControl,\n private renderer: Renderer2) { }\n\n ngOnInit() {\n this.dayValidate();\n }\n\n ngOnDestroy() {\n this.sub.unsubscribe();\n }\n\n dayValidate() {\n\n this.sub = this._dayControl.control.valueChanges.subscribe(data => {\n\n /**the most of code from @Günter Zöchbauer's answer.*/\n\n /**we remove from input but: \n @preInputValue still keep the previous value because of not setting.\n */\n if (this._preValue) {\n let preInputValue: string = this._preValue;\n var lastChar: string = preInputValue.substr(preInputValue.length - 1);\n // remove all mask characters (keep only numeric)\n var newVal = data.replace(/\\D/g, '');\n\n let start = this.el.nativeElement.selectionStart;\n let end = this.el.nativeElement.selectionEnd;\n\n //when removed value from input\n if (data.length < preInputValue.length) {\n // this.message = 'Removing...'; //Just console\n /**while removing if we encounter ) character,\n then remove the last digit too.*/\n if (preInputValue.length < start) {\n if (lastChar == ')') {\n newVal = newVal.substr(0, newVal.length - 1);\n }\n }\n //if no number then flush\n if (newVal.length == 0) {\n newVal = '';\n }\n else if (newVal.length <= 2) {\n /**when removing, we change pattern match.\n \"otherwise deleting of non-numeric characters is not recognized\"*/\n newVal = newVal.replace(/^(\\d{0,2})/, '$1');\n } else if (newVal.length <= 4) {\n newVal = newVal.replace(/^(\\d{0,2})(\\d{0,2})/, '$1/$2');\n } else {\n newVal = newVal.replace(/^(\\d{0,2})(\\d{0,2})(\\d{0,4})/, '$1/$2/$3');\n }\n\n this._dayControl.control.setValue(newVal, { emitEvent: false });\n //keep cursor the normal position after setting the input above.\n this.renderer.selectRootElement(this.el).nativeElement.setSelectionRange(start, end);\n //when typed value in input\n } else {\n // this.message = 'Typing...'; //Just console\n var removedD = data.charAt(start);\n // don't show braces for empty value\n if (newVal.length == 0) {\n newVal = '';\n }\n // don't show braces for empty groups at the end\n else if (newVal.length <= 2) {\n newVal = newVal.replace(/^(\\d{0,2})/, '$1');\n } else if (newVal.length <= 4) {\n newVal = newVal.replace(/^(\\d{0,2})(\\d{0,2})/, '$1/$2');\n } else {\n newVal = newVal.replace(/^(\\d{0,2})(\\d{0,2})(\\d{0,4})/, '$1/$2/$3');\n }\n //check typing whether in middle or not\n //in the following case, you are typing in the middle\n if (preInputValue.length >= start) {\n //change cursor according to special chars.\n // console.log(start+removedD);\n if (removedD == '(') {\n start = start + 1;\n end = end + 1;\n }\n if (removedD == ')') {\n start = start + 2; // +2 so there is also space char after ')'.\n end = end + 2;\n }\n if (removedD == '-') {\n start = start + 1;\n end = end + 1;\n }\n if (removedD == \" \") {\n start = start + 1;\n end = end + 1;\n }\n this._dayControl.control.setValue(newVal, { emitEvent: false });\n this.renderer.selectRootElement(this.el).nativeElement.setSelectionRange(start, end);\n } else {\n this._dayControl.control.setValue(newVal, { emitEvent: false });\n this.renderer.selectRootElement(this.el).nativeElement.setSelectionRange(start + 2, end + 2); // +2 because of wanting standard typing\n }\n }\n }\n });\n }\n}","import { Directive, ElementRef, Input, OnInit, OnDestroy, Renderer2 } from '@angular/core';\nimport { NgControl } from '@angular/forms';\nimport { Subscription } from 'rxjs';\n\n@Directive({\n selector: '[formControlName][appDayWeekMask]',\n})\nexport class DayWeekMaskDirective implements OnInit, OnDestroy {\n\n private _preValue: string;\n\n @Input()\n set preValue(value: string) {\n this._preValue = value;\n }\n\n private sub: Subscription;\n\n constructor(private el: ElementRef,\n private _dayControl: NgControl,\n private renderer: Renderer2) { }\n\n ngOnInit() {\n this.dayValidate();\n }\n\n ngOnDestroy() {\n this.sub.unsubscribe();\n }\n\n dayValidate() {\n\n this.sub = this._dayControl.control.valueChanges.subscribe(data => {\n\n /**the most of code from @Günter Zöchbauer's answer.*/\n\n /**we remove from input but: \n @preInputValue still keep the previous value because of not setting.\n */\n if (this._preValue) {\n let preInputValue: string = this._preValue;\n var lastChar: string = preInputValue.substr(preInputValue.length - 1);\n // remove all mask characters (keep only numeric)\n var newVal = data.replace(/\\D/g, '');\n\n let start = this.el.nativeElement.selectionStart;\n let end = this.el.nativeElement.selectionEnd;\n\n //when removed value from input\n if (data.length < preInputValue.length) {\n // this.message = 'Removing...'; //Just console\n /**while removing if we encounter ) character,\n then remove the last digit too.*/\n if (preInputValue.length < start) {\n if (lastChar == ')') {\n newVal = newVal.substr(0, newVal.length - 1);\n }\n }\n //if no number then flush\n if (newVal.length == 0) {\n newVal = '';\n }\n else if (newVal.length <= 1) {\n /**when removing, we change pattern match.\n \"otherwise deleting of non-numeric characters is not recognized\"*/\n newVal = newVal.replace(/^(\\d{0,1})/, '$1');\n } else if (newVal.length <= 3) {\n newVal = newVal.replace(/^(\\d{0,1})(\\d{0,2})/, '$1/$2');\n } else {\n newVal = newVal.replace(/^(\\d{0,1})(\\d{0,2})(\\d{0,4})/, '$1/$2/$3');\n }\n\n this._dayControl.control.setValue(newVal, { emitEvent: false });\n //keep cursor the normal position after setting the input above.\n this.renderer.selectRootElement(this.el).nativeElement.setSelectionRange(start, end);\n //when typed value in input\n } else {\n // this.message = 'Typing...'; //Just console\n var removedD = data.charAt(start);\n // don't show braces for empty value\n if (newVal.length == 0) {\n newVal = '';\n }\n // don't show braces for empty groups at the end\n else if (newVal.length <= 1) {\n newVal = newVal.replace(/^(\\d{0,1})/, '$1');\n } else if (newVal.length <= 3) {\n newVal = newVal.replace(/^(\\d{0,1})(\\d{0,2})/, '$1/$2');\n } else {\n newVal = newVal.replace(/^(\\d{0,1})(\\d{0,2})(\\d{0,4})/, '$1/$2/$3');\n }\n //check typing whether in middle or not\n //in the following case, you are typing in the middle\n if (preInputValue.length >= start) {\n //change cursor according to special chars.\n // console.log(start+removedD);\n if (removedD == '(') {\n start = start + 1;\n end = end + 1;\n }\n if (removedD == ')') {\n start = start + 2; // +2 so there is also space char after ')'.\n end = end + 2;\n }\n if (removedD == '-') {\n start = start + 1;\n end = end + 1;\n }\n if (removedD == \" \") {\n start = start + 1;\n end = end + 1;\n }\n this._dayControl.control.setValue(newVal, { emitEvent: false });\n this.renderer.selectRootElement(this.el).nativeElement.setSelectionRange(start, end);\n } else {\n this._dayControl.control.setValue(newVal, { emitEvent: false });\n this.renderer.selectRootElement(this.el).nativeElement.setSelectionRange(start + 2, end + 2); // +2 because of wanting standard typing\n }\n }\n }\n });\n }\n}","import { Directive, HostListener, Input } from '@angular/core';\nimport { NgControl } from '@angular/forms';\n\n@Directive({ selector: '[disableControl]' })\nexport class DisableControlDirective {\n\n @Input() set disableControl(condition: boolean) {\n const action = condition ? 'disable' : 'enable';\n this.ngControl.control[action]();\n }\n\n constructor(private ngControl: NgControl) { }\n}","import { Directive, ElementRef, Input, OnInit, OnDestroy, Renderer2 } from '@angular/core';\nimport { NgControl } from '@angular/forms';\nimport { Subscription } from 'rxjs';\n\n@Directive({\n selector: '[formControlName][appWeekMask]',\n})\nexport class WeekMaskDirective implements OnInit, OnDestroy {\n\n private _preValue: string;\n\n @Input()\n set preValue(value: string) {\n this._preValue = value;\n }\n\n private sub: Subscription;\n\n constructor(private el: ElementRef,\n private _dayControl: NgControl,\n private renderer: Renderer2) { }\n\n ngOnInit() {\n this.dayValidate();\n }\n\n ngOnDestroy() {\n this.sub.unsubscribe();\n }\n\n dayValidate() {\n\n this.sub = this._dayControl.control.valueChanges.subscribe(data => {\n\n /**the most of code from @Günter Zöchbauer's answer.*/\n\n /**we remove from input but: \n @preInputValue still keep the previous value because of not setting.\n */\n if (this._preValue) {\n if ((data.length - 1) > 7) {\n let splitVal = data.split(\"/\");\n data = splitVal[0] + '/' + splitVal[1] + splitVal[2].substr(0, 2);\n }\n let preInputValue: string = this._preValue;\n var lastChar: string = preInputValue.substr(preInputValue.length - 1);\n // remove all mask characters (keep only numeric)\n var newVal = data.replace(/\\D/g, '');\n\n let start = this.el.nativeElement.selectionStart;\n let end = this.el.nativeElement.selectionEnd;\n\n //when removed value from input\n if (data.length < preInputValue.length) {\n // this.message = 'Removing...'; //Just console\n /**while removing if we encounter ) character,\n then remove the last digit too.*/\n if (preInputValue.length < start) {\n if (lastChar == ')') {\n newVal = newVal.substr(0, newVal.length - 1);\n }\n }\n //if no number then flush\n if (newVal.length == 0) {\n newVal = '';\n }\n else if (newVal.length <= 2) {\n /**when removing, we change pattern match.\n \"otherwise deleting of non-numeric characters is not recognized\"*/\n newVal = newVal.replace(/^(\\d{0,2})/, '$1');\n } else {\n newVal = newVal.replace(/^(\\d{0,2})(\\d{0,4})/, '$1/$2');\n }\n\n this._dayControl.control.setValue(newVal, { emitEvent: false });\n //keep cursor the normal position after setting the input above.\n this.renderer.selectRootElement(this.el).nativeElement.setSelectionRange(start, end);\n //when typed value in input\n } else {\n // this.message = 'Typing...'; //Just console\n var removedD = data.charAt(start);\n // don't show braces for empty value\n if (newVal.length == 0) {\n newVal = '';\n }\n // don't show braces for empty groups at the end\n else if (newVal.length <= 2) {\n newVal = newVal.replace(/^(\\d{0,2})/, '$1');\n } else {\n newVal = newVal.replace(/^(\\d{0,2})(\\d{0,4})/, '$1/$2');\n }\n //check typing whether in middle or not\n //in the following case, you are typing in the middle\n if (preInputValue.length >= start) {\n //change cursor according to special chars.\n // console.log(start+removedD);\n if (removedD == '(') {\n start = start + 1;\n end = end + 1;\n }\n if (removedD == ')') {\n start = start + 2; // +2 so there is also space char after ')'.\n end = end + 2;\n }\n if (removedD == '-') {\n start = start + 1;\n end = end + 1;\n }\n if (removedD == \" \") {\n start = start + 1;\n end = end + 1;\n }\n this._dayControl.control.setValue(newVal, { emitEvent: false });\n this.renderer.selectRootElement(this.el).nativeElement.setSelectionRange(start, end);\n } else {\n this._dayControl.control.setValue(newVal, { emitEvent: false });\n this.renderer.selectRootElement(this.el).nativeElement.setSelectionRange(start + 2, end + 2); // +2 because of wanting standard typing\n }\n }\n }\n });\n }\n}","import { Directive, ElementRef, Input, OnInit, OnDestroy, Renderer2 } from '@angular/core';\nimport { NgControl } from '@angular/forms';\nimport { Subscription } from 'rxjs';\n\n\n@Directive({\n selector: '[formControlName][appYearMask]',\n})\nexport class YearMaskDirective implements OnInit, OnDestroy {\n\n private _preValue: string;\n\n @Input()\n set preValue(value: string) {\n this._preValue = value;\n }\n\n private sub: Subscription;\n\n constructor(private el: ElementRef,\n private _dayControl: NgControl,\n private renderer: Renderer2) { }\n\n ngOnInit() {\n this.dayValidate();\n }\n\n ngOnDestroy() {\n this.sub.unsubscribe();\n }\n\n dayValidate() {\n\n this.sub = this._dayControl.control.valueChanges.subscribe(data => {\n\n /**the most of code from @Günter Zöchbauer's answer.*/\n\n /**we remove from input but: \n @preInputValue still keep the previous value because of not setting.\n */\n if (this._preValue) {\n if ((data.length - 1) > 4) {\n let splitVal = data.split(\"/\");\n if (splitVal.length > 2) {\n data = splitVal[2];\n } else {\n data = splitVal[1];\n }\n }\n let preInputValue: string = this._preValue;\n var lastChar: string = preInputValue.substr(preInputValue.length - 1);\n // remove all mask characters (keep only numeric)\n var newVal = data.replace(/\\D/g, '');\n\n let start = this.el.nativeElement.selectionStart;\n let end = this.el.nativeElement.selectionEnd;\n\n //when removed value from input\n if (data.length < preInputValue.length) {\n // this.message = 'Removing...'; //Just console\n /**while removing if we encounter ) character,\n then remove the last digit too.*/\n if (preInputValue.length < start) {\n if (lastChar == ')') {\n newVal = newVal.substr(0, newVal.length - 1);\n }\n }\n //if no number then flush\n if (newVal.length == 0) {\n newVal = '';\n }\n else {\n newVal = newVal.replace(/^(.*)/, '$1');\n }\n\n this._dayControl.control.setValue(newVal, { emitEvent: false });\n //keep cursor the normal position after setting the input above.\n this.renderer.selectRootElement(this.el).nativeElement.setSelectionRange(start, end);\n //when typed value in input\n } else {\n // this.message = 'Typing...'; //Just console\n var removedD = data.charAt(start);\n // don't show braces for empty value\n if (newVal.length == 0) {\n newVal = '';\n }\n // don't show braces for empty groups at the end\n else {\n newVal = newVal.replace(/^(.*)/, '$1');\n }\n //check typing whether in middle or not\n //in the following case, you are typing in the middle\n if (preInputValue.length >= start) {\n //change cursor according to special chars.\n // console.log(start+removedD);\n if (removedD == '(') {\n start = start + 1;\n end = end + 1;\n }\n if (removedD == ')') {\n start = start + 2; // +2 so there is also space char after ')'.\n end = end + 2;\n }\n if (removedD == '-') {\n start = start + 1;\n end = end + 1;\n }\n if (removedD == \" \") {\n start = start + 1;\n end = end + 1;\n }\n this._dayControl.control.setValue(newVal, { emitEvent: false });\n this.renderer.selectRootElement(this.el).nativeElement.setSelectionRange(start, end);\n } else {\n this._dayControl.control.setValue(newVal, { emitEvent: false });\n this.renderer.selectRootElement(this.el).nativeElement.setSelectionRange(start + 2, end + 2); // +2 because of wanting standard typing\n }\n }\n }\n });\n }\n}","export default \".gfc-character-list {\\n width: 80%;\\n margin: 7%;\\n background-color: #006cb5;\\n color: white;\\n font-family: Roboto, \\\"Helvetica Neue\\\", sans-serif !important;\\n font-size: 14px !important;\\n}\\n.gfc-character-list .custom-scroll-bar {\\n min-height: 110px;\\n height: 0;\\n overflow-y: scroll;\\n overflow-x: hidden;\\n margin-right: 5px;\\n}\\n.gfc-character-list .custom-scroll-bar::-webkit-scrollbar {\\n width: 10px;\\n}\\n.gfc-character-list .custom-scroll-bar::-webkit-scrollbar-thumb {\\n background-color: #E9EEF0;\\n border-radius: 5px;\\n}\\n.gfc-character-list .title-span {\\n font-weight: 500;\\n line-height: 17px;\\n}\\n.gfc-character-list .text-span {\\n font-size: 11px;\\n font-weight: 400;\\n line-height: 28px;\\n}\\n.gfc-character-list .postion-input {\\n width: 50px;\\n margin-left: 20px;\\n background-color: #ffffff;\\n color: #000000;\\n}\\n.gfc-character-list .character-radio-group {\\n display: flex;\\n flex-direction: column;\\n}\\n.gfc-character-list .character-radio-group .mat-radio-button {\\n margin: 3px;\\n}\\n.gfc-character-list .character-confirmation {\\n position: absolute;\\n top: 18%;\\n right: 4%;\\n}\\n.gfc-character-list .character-confirmation .label-class {\\n margin-left: 22%;\\n font-size: 12px;\\n}\\n.gfc-character-list .character-confirmation .value-input {\\n width: 77%;\\n height: 30px;\\n margin-bottom: 3%;\\n margin-left: 22%;\\n margin-top: 2%;\\n}\\n.gfc-character-list .character-confirmation .character-size {\\n font-size: 10px;\\n margin-left: 21%;\\n margin-bottom: 10%;\\n font-style: italic;\\n}\\n.gfc-character-list .character-confirmation .button-cls {\\n float: right;\\n clear: both;\\n}\\n.gfc-character-list .character-confirmation .button-cls button {\\n font-family: Roboto, \\\"Helvetica Neue\\\", sans-serif !important;\\n width: 75px;\\n height: 36px;\\n font-weight: 500;\\n text-align: center;\\n border: 0px solid;\\n padding: 0 !important;\\n border-radius: 0px;\\n}\\n.gfc-character-list .character-confirmation .dan-list-card .title-span-Abbr {\\n font-size: 12px;\\n padding: 40px 0 10px 0;\\n}\\n.gfc-character-list .character-confirmation .dan-list-card .search-input {\\n width: 55%;\\n background-color: #ffffff;\\n height: 25px;\\n margin-bottom: 3%;\\n color: #000000;\\n text-transform: uppercase;\\n font-size: 12px;\\n}\\n.gfc-character-list .character-confirmation .dan-list-card input[type=checkbox] {\\n margin: 0;\\n width: 15px;\\n height: 16px;\\n vertical-align: top;\\n cursor: pointer;\\n}\\n.gfc-character-list .character-confirmation .dan-list-card input[type=checkbox]:checked + label:before {\\n background: #fff;\\n color: #006cb5;\\n text-align: center;\\n}\\n.gfc-character-list .character-confirmation .dan-list-card .form-check-label {\\n font-size: 12px;\\n line-height: 20px;\\n padding-left: 5px;\\n}\\n.gfc-character-list input::-webkit-outer-spin-button,\\n.gfc-character-list input::-webkit-inner-spin-button {\\n -webkit-appearance: none;\\n margin: 0;\\n}\\n.cls-displayNone {\\n display: none !important;\\n}\\n/*# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi91c3Ivc3JjL3NyYy9hcHAvY29tcG9uZW50L2dmYy1jaGFyYWN0ZXItbGlzdC9nZmMtY2hhcmFjdGVyLWxpc3QuY29tcG9uZW50LnNjc3MiLCJzcmMvYXBwL2NvbXBvbmVudC9nZmMtY2hhcmFjdGVyLWxpc3QvZ2ZjLWNoYXJhY3Rlci1saXN0LmNvbXBvbmVudC5zY3NzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBO0VBQ0ksVUFBQTtFQUNBLFVBQUE7RUFFQSx5QkFBQTtFQUNBLFlBQUE7RUFDQSw0REFBQTtFQUNBLDBCQUFBO0FDQUo7QURFSTtFQUNJLGlCQUFBO0VBQ0EsU0FBQTtFQUNBLGtCQUFBO0VBQ0Esa0JBQUE7RUFDQSxpQkFBQTtBQ0FSO0FER0k7RUFDSSxXQUFBO0FDRFI7QURJSTtFQUNJLHlCQUFBO0VBQ0Esa0JBQUE7QUNGUjtBREtJO0VBQ0ksZ0JBQUE7RUFDQSxpQkFBQTtBQ0hSO0FETUk7RUFDSSxlQUFBO0VBQ0EsZ0JBQUE7RUFDQSxpQkFBQTtBQ0pSO0FET0k7RUFDSSxXQUFBO0VBQ0EsaUJBQUE7RUFDQSx5QkFBQTtFQUNBLGNBQUE7QUNMUjtBRFFJO0VBQ0ksYUFBQTtFQUNBLHNCQUFBO0FDTlI7QURRUTtFQUNJLFdBQUE7QUNOWjtBRFVJO0VBQ0ksa0JBQUE7RUFDQSxRQUFBO0VBQ0EsU0FBQTtBQ1JSO0FEVVE7RUFDSSxnQkFBQTtFQUNBLGVBQUE7QUNSWjtBRFdRO0VBQ0ksVUFBQTtFQUNBLFlBQUE7RUFDQSxpQkFBQTtFQUNBLGdCQUFBO0VBQ0EsY0FBQTtBQ1RaO0FEYVE7RUFDSSxlQUFBO0VBQ0EsZ0JBQUE7RUFDQSxrQkFBQTtFQUNBLGtCQUFBO0FDWFo7QURjUTtFQUNJLFlBQUE7RUFDQSxXQUFBO0FDWlo7QURjWTtFQUNJLDREQUFBO0VBQ0EsV0FBQTtFQUNBLFlBQUE7RUFDQSxnQkFBQTtFQUNBLGtCQUFBO0VBQ0EsaUJBQUE7RUFDQSxxQkFBQTtFQUNBLGtCQUFBO0FDWmhCO0FEaUJZO0VBQ0ksZUFBQTtFQUNBLHNCQUFBO0FDZmhCO0FEa0JZO0VBQ0ksVUFBQTtFQUNBLHlCQUFBO0VBQ0EsWUFBQTtFQUNBLGlCQUFBO0VBQ0EsY0FBQTtFQUNBLHlCQUFBO0VBQ0EsZUFBQTtBQ2hCaEI7QURtQlk7RUFDSSxTQUFBO0VBQ0EsV0FBQTtFQUNBLFlBQUE7RUFDQSxtQkFBQTtFQUNBLGVBQUE7QUNqQmhCO0FEb0JZO0VBQ0ksZ0JBQUE7RUFDQSxjQUFBO0VBQ0Esa0JBQUE7QUNsQmhCO0FEcUJZO0VBQ0ksZUFBQTtFQUNBLGlCQUFBO0VBQ0EsaUJBQUE7QUNuQmhCO0FEd0JJOztFQUVJLHdCQUFBO0VBQ0EsU0FBQTtBQ3RCUjtBRHlCQTtFQUNJLHdCQUFBO0FDdEJKIiwiZmlsZSI6InNyYy9hcHAvY29tcG9uZW50L2dmYy1jaGFyYWN0ZXItbGlzdC9nZmMtY2hhcmFjdGVyLWxpc3QuY29tcG9uZW50LnNjc3MiLCJzb3VyY2VzQ29udGVudCI6WyIuZ2ZjLWNoYXJhY3Rlci1saXN0IHtcbiAgICB3aWR0aDogODAlO1xuICAgIG1hcmdpbjogNyU7XG4gICAgLy8gbWFyZ2luLWxlZnQ6IDEwcHg7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogIzAwNmNiNTtcbiAgICBjb2xvcjogd2hpdGU7XG4gICAgZm9udC1mYW1pbHk6IFJvYm90bywgXCJIZWx2ZXRpY2EgTmV1ZVwiLCBzYW5zLXNlcmlmICFpbXBvcnRhbnQ7XG4gICAgZm9udC1zaXplOiAxNHB4ICFpbXBvcnRhbnQ7XG5cbiAgICAuY3VzdG9tLXNjcm9sbC1iYXIge1xuICAgICAgICBtaW4taGVpZ2h0OiAxMTBweDtcbiAgICAgICAgaGVpZ2h0OiAwO1xuICAgICAgICBvdmVyZmxvdy15OiBzY3JvbGw7XG4gICAgICAgIG92ZXJmbG93LXg6IGhpZGRlbjtcbiAgICAgICAgbWFyZ2luLXJpZ2h0OiA1cHg7XG4gICAgfVxuXG4gICAgLmN1c3RvbS1zY3JvbGwtYmFyOjotd2Via2l0LXNjcm9sbGJhciB7XG4gICAgICAgIHdpZHRoOiAxMHB4O1xuICAgIH1cblxuICAgIC5jdXN0b20tc2Nyb2xsLWJhcjo6LXdlYmtpdC1zY3JvbGxiYXItdGh1bWIge1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjRTlFRUYwO1xuICAgICAgICBib3JkZXItcmFkaXVzOiA1cHg7XG4gICAgfVxuXG4gICAgLnRpdGxlLXNwYW4ge1xuICAgICAgICBmb250LXdlaWdodDogNTAwO1xuICAgICAgICBsaW5lLWhlaWdodDogMTdweDtcbiAgICB9XG5cbiAgICAudGV4dC1zcGFuIHtcbiAgICAgICAgZm9udC1zaXplOiAxMXB4O1xuICAgICAgICBmb250LXdlaWdodDogNDAwO1xuICAgICAgICBsaW5lLWhlaWdodDogMjhweDtcbiAgICB9XG5cbiAgICAucG9zdGlvbi1pbnB1dCB7XG4gICAgICAgIHdpZHRoOiA1MHB4O1xuICAgICAgICBtYXJnaW4tbGVmdDogMjBweDtcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogI2ZmZmZmZjtcbiAgICAgICAgY29sb3I6ICMwMDAwMDA7XG4gICAgfVxuXG4gICAgLmNoYXJhY3Rlci1yYWRpby1ncm91cCB7XG4gICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XG5cbiAgICAgICAgLm1hdC1yYWRpby1idXR0b24ge1xuICAgICAgICAgICAgbWFyZ2luOiAzcHg7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICAuY2hhcmFjdGVyLWNvbmZpcm1hdGlvbiB7XG4gICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgdG9wOiAxOCU7XG4gICAgICAgIHJpZ2h0OiA0JTtcblxuICAgICAgICAubGFiZWwtY2xhc3Mge1xuICAgICAgICAgICAgbWFyZ2luLWxlZnQ6IDIyJTtcbiAgICAgICAgICAgIGZvbnQtc2l6ZTogMTJweDtcbiAgICAgICAgfVxuXG4gICAgICAgIC52YWx1ZS1pbnB1dCB7XG4gICAgICAgICAgICB3aWR0aDogNzclO1xuICAgICAgICAgICAgaGVpZ2h0OiAzMHB4O1xuICAgICAgICAgICAgbWFyZ2luLWJvdHRvbTogMyU7XG4gICAgICAgICAgICBtYXJnaW4tbGVmdDogMjIlO1xuICAgICAgICAgICAgbWFyZ2luLXRvcDogMiU7XG4gICAgICAgICAgICAvLyB0ZXh0LXRyYW5zZm9ybTogdXBwZXJjYXNlO1xuICAgICAgICB9XG5cbiAgICAgICAgLmNoYXJhY3Rlci1zaXplIHtcbiAgICAgICAgICAgIGZvbnQtc2l6ZTogMTBweDtcbiAgICAgICAgICAgIG1hcmdpbi1sZWZ0OiAyMSU7XG4gICAgICAgICAgICBtYXJnaW4tYm90dG9tOiAxMCU7XG4gICAgICAgICAgICBmb250LXN0eWxlOiBpdGFsaWM7XG4gICAgICAgIH1cblxuICAgICAgICAuYnV0dG9uLWNscyB7XG4gICAgICAgICAgICBmbG9hdDogcmlnaHQ7XG4gICAgICAgICAgICBjbGVhcjogYm90aDtcblxuICAgICAgICAgICAgYnV0dG9uIHtcbiAgICAgICAgICAgICAgICBmb250LWZhbWlseTogUm9ib3RvLCBcIkhlbHZldGljYSBOZXVlXCIsIHNhbnMtc2VyaWYgIWltcG9ydGFudDtcbiAgICAgICAgICAgICAgICB3aWR0aDogNzVweDtcbiAgICAgICAgICAgICAgICBoZWlnaHQ6IDM2cHg7XG4gICAgICAgICAgICAgICAgZm9udC13ZWlnaHQ6IDUwMDtcbiAgICAgICAgICAgICAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gICAgICAgICAgICAgICAgYm9yZGVyOiAwcHggc29saWQ7XG4gICAgICAgICAgICAgICAgcGFkZGluZzogMCAhaW1wb3J0YW50O1xuICAgICAgICAgICAgICAgIGJvcmRlci1yYWRpdXM6IDBweDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIC5kYW4tbGlzdC1jYXJkIHtcbiAgICAgICAgICAgIC50aXRsZS1zcGFuLUFiYnIge1xuICAgICAgICAgICAgICAgIGZvbnQtc2l6ZTogMTJweDtcbiAgICAgICAgICAgICAgICBwYWRkaW5nOiA0MHB4IDAgMTBweCAwO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAuc2VhcmNoLWlucHV0IHtcbiAgICAgICAgICAgICAgICB3aWR0aDogNTUlO1xuICAgICAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICNmZmZmZmY7XG4gICAgICAgICAgICAgICAgaGVpZ2h0OiAyNXB4O1xuICAgICAgICAgICAgICAgIG1hcmdpbi1ib3R0b206IDMlO1xuICAgICAgICAgICAgICAgIGNvbG9yOiAjMDAwMDAwO1xuICAgICAgICAgICAgICAgIHRleHQtdHJhbnNmb3JtOiB1cHBlcmNhc2U7XG4gICAgICAgICAgICAgICAgZm9udC1zaXplOiAxMnB4O1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICBpbnB1dFt0eXBlPVwiY2hlY2tib3hcIl0ge1xuICAgICAgICAgICAgICAgIG1hcmdpbjogMDtcbiAgICAgICAgICAgICAgICB3aWR0aDogMTVweDtcbiAgICAgICAgICAgICAgICBoZWlnaHQ6IDE2cHg7XG4gICAgICAgICAgICAgICAgdmVydGljYWwtYWxpZ246IHRvcDtcbiAgICAgICAgICAgICAgICBjdXJzb3I6IHBvaW50ZXI7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgIGlucHV0W3R5cGU9XCJjaGVja2JveFwiXTpjaGVja2VkK2xhYmVsOmJlZm9yZSB7XG4gICAgICAgICAgICAgICAgYmFja2dyb3VuZDogI2ZmZjtcbiAgICAgICAgICAgICAgICBjb2xvcjogIzAwNmNiNTtcbiAgICAgICAgICAgICAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgIC5mb3JtLWNoZWNrLWxhYmVsIHtcbiAgICAgICAgICAgICAgICBmb250LXNpemU6IDEycHg7XG4gICAgICAgICAgICAgICAgbGluZS1oZWlnaHQ6IDIwcHg7XG4gICAgICAgICAgICAgICAgcGFkZGluZy1sZWZ0OiA1cHg7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICBpbnB1dDo6LXdlYmtpdC1vdXRlci1zcGluLWJ1dHRvbixcbiAgICBpbnB1dDo6LXdlYmtpdC1pbm5lci1zcGluLWJ1dHRvbiB7XG4gICAgICAgIC13ZWJraXQtYXBwZWFyYW5jZTogbm9uZTtcbiAgICAgICAgbWFyZ2luOiAwO1xuICAgIH1cbn1cbi5jbHMtZGlzcGxheU5vbmV7XG4gICAgZGlzcGxheTpub25lICFpbXBvcnRhbnQ7XG59IiwiLmdmYy1jaGFyYWN0ZXItbGlzdCB7XG4gIHdpZHRoOiA4MCU7XG4gIG1hcmdpbjogNyU7XG4gIGJhY2tncm91bmQtY29sb3I6ICMwMDZjYjU7XG4gIGNvbG9yOiB3aGl0ZTtcbiAgZm9udC1mYW1pbHk6IFJvYm90bywgXCJIZWx2ZXRpY2EgTmV1ZVwiLCBzYW5zLXNlcmlmICFpbXBvcnRhbnQ7XG4gIGZvbnQtc2l6ZTogMTRweCAhaW1wb3J0YW50O1xufVxuLmdmYy1jaGFyYWN0ZXItbGlzdCAuY3VzdG9tLXNjcm9sbC1iYXIge1xuICBtaW4taGVpZ2h0OiAxMTBweDtcbiAgaGVpZ2h0OiAwO1xuICBvdmVyZmxvdy15OiBzY3JvbGw7XG4gIG92ZXJmbG93LXg6IGhpZGRlbjtcbiAgbWFyZ2luLXJpZ2h0OiA1cHg7XG59XG4uZ2ZjLWNoYXJhY3Rlci1saXN0IC5jdXN0b20tc2Nyb2xsLWJhcjo6LXdlYmtpdC1zY3JvbGxiYXIge1xuICB3aWR0aDogMTBweDtcbn1cbi5nZmMtY2hhcmFjdGVyLWxpc3QgLmN1c3RvbS1zY3JvbGwtYmFyOjotd2Via2l0LXNjcm9sbGJhci10aHVtYiB7XG4gIGJhY2tncm91bmQtY29sb3I6ICNFOUVFRjA7XG4gIGJvcmRlci1yYWRpdXM6IDVweDtcbn1cbi5nZmMtY2hhcmFjdGVyLWxpc3QgLnRpdGxlLXNwYW4ge1xuICBmb250LXdlaWdodDogNTAwO1xuICBsaW5lLWhlaWdodDogMTdweDtcbn1cbi5nZmMtY2hhcmFjdGVyLWxpc3QgLnRleHQtc3BhbiB7XG4gIGZvbnQtc2l6ZTogMTFweDtcbiAgZm9udC13ZWlnaHQ6IDQwMDtcbiAgbGluZS1oZWlnaHQ6IDI4cHg7XG59XG4uZ2ZjLWNoYXJhY3Rlci1saXN0IC5wb3N0aW9uLWlucHV0IHtcbiAgd2lkdGg6IDUwcHg7XG4gIG1hcmdpbi1sZWZ0OiAyMHB4O1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjZmZmZmZmO1xuICBjb2xvcjogIzAwMDAwMDtcbn1cbi5nZmMtY2hhcmFjdGVyLWxpc3QgLmNoYXJhY3Rlci1yYWRpby1ncm91cCB7XG4gIGRpc3BsYXk6IGZsZXg7XG4gIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XG59XG4uZ2ZjLWNoYXJhY3Rlci1saXN0IC5jaGFyYWN0ZXItcmFkaW8tZ3JvdXAgLm1hdC1yYWRpby1idXR0b24ge1xuICBtYXJnaW46IDNweDtcbn1cbi5nZmMtY2hhcmFjdGVyLWxpc3QgLmNoYXJhY3Rlci1jb25maXJtYXRpb24ge1xuICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gIHRvcDogMTglO1xuICByaWdodDogNCU7XG59XG4uZ2ZjLWNoYXJhY3Rlci1saXN0IC5jaGFyYWN0ZXItY29uZmlybWF0aW9uIC5sYWJlbC1jbGFzcyB7XG4gIG1hcmdpbi1sZWZ0OiAyMiU7XG4gIGZvbnQtc2l6ZTogMTJweDtcbn1cbi5nZmMtY2hhcmFjdGVyLWxpc3QgLmNoYXJhY3Rlci1jb25maXJtYXRpb24gLnZhbHVlLWlucHV0IHtcbiAgd2lkdGg6IDc3JTtcbiAgaGVpZ2h0OiAzMHB4O1xuICBtYXJnaW4tYm90dG9tOiAzJTtcbiAgbWFyZ2luLWxlZnQ6IDIyJTtcbiAgbWFyZ2luLXRvcDogMiU7XG59XG4uZ2ZjLWNoYXJhY3Rlci1saXN0IC5jaGFyYWN0ZXItY29uZmlybWF0aW9uIC5jaGFyYWN0ZXItc2l6ZSB7XG4gIGZvbnQtc2l6ZTogMTBweDtcbiAgbWFyZ2luLWxlZnQ6IDIxJTtcbiAgbWFyZ2luLWJvdHRvbTogMTAlO1xuICBmb250LXN0eWxlOiBpdGFsaWM7XG59XG4uZ2ZjLWNoYXJhY3Rlci1saXN0IC5jaGFyYWN0ZXItY29uZmlybWF0aW9uIC5idXR0b24tY2xzIHtcbiAgZmxvYXQ6IHJpZ2h0O1xuICBjbGVhcjogYm90aDtcbn1cbi5nZmMtY2hhcmFjdGVyLWxpc3QgLmNoYXJhY3Rlci1jb25maXJtYXRpb24gLmJ1dHRvbi1jbHMgYnV0dG9uIHtcbiAgZm9udC1mYW1pbHk6IFJvYm90bywgXCJIZWx2ZXRpY2EgTmV1ZVwiLCBzYW5zLXNlcmlmICFpbXBvcnRhbnQ7XG4gIHdpZHRoOiA3NXB4O1xuICBoZWlnaHQ6IDM2cHg7XG4gIGZvbnQtd2VpZ2h0OiA1MDA7XG4gIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgYm9yZGVyOiAwcHggc29saWQ7XG4gIHBhZGRpbmc6IDAgIWltcG9ydGFudDtcbiAgYm9yZGVyLXJhZGl1czogMHB4O1xufVxuLmdmYy1jaGFyYWN0ZXItbGlzdCAuY2hhcmFjdGVyLWNvbmZpcm1hdGlvbiAuZGFuLWxpc3QtY2FyZCAudGl0bGUtc3Bhbi1BYmJyIHtcbiAgZm9udC1zaXplOiAxMnB4O1xuICBwYWRkaW5nOiA0MHB4IDAgMTBweCAwO1xufVxuLmdmYy1jaGFyYWN0ZXItbGlzdCAuY2hhcmFjdGVyLWNvbmZpcm1hdGlvbiAuZGFuLWxpc3QtY2FyZCAuc2VhcmNoLWlucHV0IHtcbiAgd2lkdGg6IDU1JTtcbiAgYmFja2dyb3VuZC1jb2xvcjogI2ZmZmZmZjtcbiAgaGVpZ2h0OiAyNXB4O1xuICBtYXJnaW4tYm90dG9tOiAzJTtcbiAgY29sb3I6ICMwMDAwMDA7XG4gIHRleHQtdHJhbnNmb3JtOiB1cHBlcmNhc2U7XG4gIGZvbnQtc2l6ZTogMTJweDtcbn1cbi5nZmMtY2hhcmFjdGVyLWxpc3QgLmNoYXJhY3Rlci1jb25maXJtYXRpb24gLmRhbi1saXN0LWNhcmQgaW5wdXRbdHlwZT1jaGVja2JveF0ge1xuICBtYXJnaW46IDA7XG4gIHdpZHRoOiAxNXB4O1xuICBoZWlnaHQ6IDE2cHg7XG4gIHZlcnRpY2FsLWFsaWduOiB0b3A7XG4gIGN1cnNvcjogcG9pbnRlcjtcbn1cbi5nZmMtY2hhcmFjdGVyLWxpc3QgLmNoYXJhY3Rlci1jb25maXJtYXRpb24gLmRhbi1saXN0LWNhcmQgaW5wdXRbdHlwZT1jaGVja2JveF06Y2hlY2tlZCArIGxhYmVsOmJlZm9yZSB7XG4gIGJhY2tncm91bmQ6ICNmZmY7XG4gIGNvbG9yOiAjMDA2Y2I1O1xuICB0ZXh0LWFsaWduOiBjZW50ZXI7XG59XG4uZ2ZjLWNoYXJhY3Rlci1saXN0IC5jaGFyYWN0ZXItY29uZmlybWF0aW9uIC5kYW4tbGlzdC1jYXJkIC5mb3JtLWNoZWNrLWxhYmVsIHtcbiAgZm9udC1zaXplOiAxMnB4O1xuICBsaW5lLWhlaWdodDogMjBweDtcbiAgcGFkZGluZy1sZWZ0OiA1cHg7XG59XG4uZ2ZjLWNoYXJhY3Rlci1saXN0IGlucHV0Ojotd2Via2l0LW91dGVyLXNwaW4tYnV0dG9uLFxuLmdmYy1jaGFyYWN0ZXItbGlzdCBpbnB1dDo6LXdlYmtpdC1pbm5lci1zcGluLWJ1dHRvbiB7XG4gIC13ZWJraXQtYXBwZWFyYW5jZTogbm9uZTtcbiAgbWFyZ2luOiAwO1xufVxuXG4uY2xzLWRpc3BsYXlOb25lIHtcbiAgZGlzcGxheTogbm9uZSAhaW1wb3J0YW50O1xufSJdfQ== */\"","import { Component, Input, Output, EventEmitter, OnChanges } from '@angular/core';\nimport { BackendApiService } from '../../services/backend-api/backend-api.service';\nimport { UtilService } from '../../services/util/util.service';\n\n@Component({\n selector: 'app-gfc-character-list',\n templateUrl: './gfc-character-list.component.html',\n styleUrls: ['./gfc-character-list.component.scss']\n})\nexport class GfcCharacterListComponent implements OnChanges {\n @Input() selectedInputValue: string;\n @Input() editValue: any;\n @Output() setCharacterData = new EventEmitter();\n positionValue: string;\n characterListInputValue: string;\n characterValue: string;\n danListTableValues: string;\n danListOriginalTableValues: Array;\n selectedDanList: Array = [];\n listSearch: string;\n characterList = [{ name: 'EQUAL', value: '=' },\n { name: 'DANLIST', value: 'Dans liste' },\n { name: 'SUPERIOR', value: '>=' },\n { name: 'INFERIOR', value: '<=' },\n { name: 'CONTENT', value: 'Cont' },\n { name: 'POSITION', value: 'position' },\n { name: 'DIFFERENT', value: '<>' }];\n blockedFields = ['Delai RAF MADP Previsionnelle§Leadtime To be done before MADP _ Arrival at Dealer',\n 'Identifiant partenaire§Identification Partner',\n 'Invariant BCV§Invariant BCV',\n 'Delai RAF MADP Previsionnelle§Leadtime To be done before MADP _ Arrival at Dealer',\n 'Numero commande§Customer Order Number',\n 'Numero Chassis§VIN',\n 'Numero de Batterie§Battery Number',\n 'Numero de Reception Communautaire§Numero de Reception Communautaire',\n 'Numero de Reception Nationale§Numero de Reception Nationale',\n 'Numero de sequence entree FF§Sequence number at the end of flexibility',\n 'Numero de serie§Serial number',\n 'Numero fabrication§Manufacturing Number',\n 'Numero Identification§Identification Number',\n 'Numero Moteur§Engine Number',\n 'Options Zone Etendue§Options Extended Zone',\n 'Ordre commercial initial§Commercial Order _ Initial',\n 'Ordre commercial§Commercial Order',\n 'TVV complet§Full TVV',\n 'VIS provisoire§Provisional VIS'];\n\n optionVal;\n\n constructor(readonly apiService: BackendApiService,\n readonly utilService: UtilService) { }\n\n ngOnChanges() {\n if (this.editValue && this.editValue.hasOwnProperty('index')) {\n this.optionVal = this.editValue.index - 1;\n if (this.editValue.index.toString() === \"6\") {\n this.characterValue = this.characterList[this.editValue.index - 1].value;\n // this.editValue = this.editValue.value.split(' ');\n this.characterListInputValue = this.editValue.value.substr(this.editValue.value.indexOf(')=') + 2, this.editValue.value.indexOf(']') - 2 - this.editValue.value.indexOf(')='));\n this.positionValue = this.editValue.value.substr(this.editValue.value.indexOf('(') + 1, this.editValue.value.indexOf(')') - 1 - this.editValue.value.indexOf('('));\n } else if (this.editValue.index.toString() === \"2\") {\n this.characterValue = this.characterList[this.editValue.index - 1].value;\n // this.selectedDanList = this.editValue.value.substr(1, this.editValue.value.length - 1).split('/'); //this.editValue.value.split('/');\n this.selectedDanList = this.editValue.value.toString().substr(this.editValue.value.indexOf(\"[\") + 1, this.editValue.value.indexOf(\"]\") - this.editValue.value.indexOf(\"[\") - 1).split('/');\n this.eventChange();\n } else if (this.editValue.index.toString() === \"1\") {\n this.characterValue = this.characterList[this.editValue.index - 1].value;\n // this.editValue = this.editValue.value.split(this.editValue.format);\n this.characterListInputValue = this.editValue.value.substr(this.editValue.value.indexOf(\"[= \") + 3, this.editValue.value.length - (this.editValue.value.indexOf(\"[= \") + 4));\n } else if (this.editValue.index.toString() === \"3\") {\n this.characterValue = this.characterList[this.editValue.index - 1].value;\n // this.editValue = this.editValue.value.split(this.editValue.format);\n this.characterListInputValue = this.editValue.value.substr(this.editValue.value.indexOf(\"[>= \") + 4, this.editValue.value.length - (this.editValue.value.indexOf(\"[>= \") + 5));\n } else if (this.editValue.index.toString() === \"4\") {\n this.characterValue = this.characterList[this.editValue.index - 1].value;\n // this.editValue = this.editValue.value.split(this.editValue.format);\n this.characterListInputValue = this.editValue.value.substr(this.editValue.value.indexOf(\"[<= \") + 4, this.editValue.value.length - (this.editValue.value.indexOf(\"[<= \") + 5));\n } else if (this.editValue.index.toString() === \"5\") {\n this.characterValue = this.characterList[this.editValue.index - 1].value;\n // this.editValue = this.editValue.value.split(this.editValue.format);\n this.characterListInputValue = this.editValue.value.substr(this.editValue.value.indexOf(\"[Cont \") + 6, this.editValue.value.length - (this.editValue.value.indexOf(\"[Cont \") + 7));\n } else if (this.editValue.index.toString() === \"7\") {\n this.characterValue = this.characterList[this.editValue.index - 1].value;\n // this.editValue = this.editValue.value.split(this.editValue.format);\n this.characterListInputValue = this.editValue.value.substr(this.editValue.value.indexOf(\"[<> \") + 4, this.editValue.value.length - (this.editValue.value.indexOf(\"[<> \") + 5));\n }\n }\n }\n\n maxLengthCheck(object) {\n object.target.value = Math.abs(object.target.value);\n if (object.target.value.length > object.target.maxLength)\n object.target.value = object.target.value.slice(0, object.target.maxLength)\n }\n\n eventChange() {\n // console.log(\"indval\", this.optionVal)\n if (this.characterValue === 'Dans liste' && !this.isDanList()) {\n const queryParam = { \"input\": `DICO@${this.selectedInputValue['ipn']}@${this.selectedInputValue['selectedTable']}@${this.selectedInputValue['longLabel']}@`, \"region\": this.getFavoriteRegion() };\n this.apiService.getObjectSize(queryParam).subscribe(res => {\n if (res.noObjects > 0) {\n const queryParam1 = { \"input\": `DICO@${this.selectedInputValue['ipn']}@${this.selectedInputValue['selectedTable']}@${this.selectedInputValue['longLabel']}@0@${res.noObjects}@`, \"region\": this.getFavoriteRegion() };\n this.apiService.getChoiceTableDetails(queryParam1).subscribe(objList => {\n this.danListTableValues = objList;\n this.danListTableValues['lists'] = this.danListTableValues['lists'].sort(this.utilService.sortArraySpecial);\n this.danListOriginalTableValues = objList.lists.sort(this.utilService.sortArraySpecial);\n this.selectedDanList = [];\n for (let item of this.editValue.displayValue.split('/')) {\n if (item.substring(0, 1) === \" \") {\n item = item.replace(\" \", \"\");\n }\n if (item.substring(0, 1) !== \" \" || item.substring(0, 1) !== \"\") {\n if (this.danListTableValues['lists'].filter(a => a === item).length > 0) {\n this.selectedDanList.push(item);\n } else {\n if (item.substring(0, 1) === \" \") {\n this.selectedDanList.push(item);\n }\n }\n }\n }\n })\n }\n })\n }\n }\n\n isDanList() {\n let list = [];\n this.blockedFields.forEach(el => {\n list.push(el.toLowerCase());\n })\n if (list.includes(this.selectedInputValue['longLabel'].toLowerCase())) {\n return true;\n } else {\n return false;\n }\n }\n\n getFavoriteRegion() {\n if (this.selectedInputValue['region'] === \"Europe\") {\n return \"PIL\";\n } else {\n return \"PIM\";\n }\n }\n\n searchCharacter() {\n this.danListTableValues['lists'] = this.danListOriginalTableValues.filter(a => a.toUpperCase().includes(this.listSearch.toUpperCase()))\n }\n\n isSelected(value: string): boolean {\n // return this.selectedDanList.indexOf(value) >= 0;\n if (value.trim() === '') {\n return this.selectedDanList.filter(x => x.trim() === value.trim()).length > 0;\n } else {\n return this.selectedDanList.indexOf(value) >= 0;\n }\n\n }\n\n onChange(value: string, checked: boolean) {\n if (checked) {\n this.selectedDanList.push(value);\n const sorter = this.utilService.MySort(' ?*!@_.()#^&%-=+01234567989abcdefghijklmnopqrstuvwxyz');\n this.selectedDanList = this.selectedDanList.sort(this.utilService.sortArraySpecial);\n } else {\n let index = this.selectedDanList.indexOf(value);\n this.selectedDanList.splice(index, 1);\n }\n }\n\n restrictSpecialCharacter(event) {\n return event.charCode !== 64 && event.charCode !== 40 && event.charCode !== 41;\n }\n onOk() {\n let value;\n if (this.selectedDanList.length > 0 && this.characterValue === 'Dans liste') {\n this.selectedDanList = this.selectedDanList.sort(this.utilService.sortArraySpecial);\n value = {\n 'value': this.selectedDanList,\n \"indVal\": this.optionVal + 1,\n 'formatType': this.characterValue\n }\n } else {\n value = {\n 'format': this.characterValue === 'position' ? `(${this.positionValue})=` : this.characterValue,\n 'value': this.characterListInputValue,\n 'formatType': this.characterValue,\n \"indVal\": this.optionVal + 1,\n displayGroupingForm: false\n }\n }\n this.setCharacterData.emit(value);\n this.selectedDanList = []\n }\n\n onCancel() {\n let value = {\n value: '',\n formatType: '',\n displayGroupingForm: false\n };\n this.setCharacterData.emit(value);\n }\n}\n\n","export default \".gfc {\\n /* to change selected item color in the select list */\\n}\\n.gfc .example-radio-group {\\n display: flex;\\n flex-direction: column;\\n margin: 15px 0;\\n}\\n.gfc .example-radio-button {\\n margin: 5px;\\n}\\n.gfc .dialog-title {\\n padding: 0px 15px 0px 0px;\\n color: #000000;\\n font-family: Roboto, \\\"Helvetica Neue\\\", sans-serif;\\n font-size: 15px;\\n font-weight: 600;\\n line-height: 17px;\\n width: 146px;\\n text-align: left;\\n}\\n.gfc .radio-font {\\n padding: 0px 15px 0px 25px;\\n margin-top: 10px;\\n color: #000000;\\n font-family: Roboto, \\\"Helvetica Neue\\\", sans-serif;\\n font-size: 13px;\\n font-weight: 400;\\n line-height: 17px;\\n text-align: left;\\n}\\n.gfc .button-style {\\n width: 82px;\\n height: 36px;\\n font-family: Roboto, \\\"Helvetica Neue\\\", sans-serif;\\n font-size: 13px;\\n font-weight: 500;\\n text-align: center;\\n border: 0px solid;\\n background-color: #FFCC33;\\n padding: 0 !important;\\n}\\n.gfc #header {\\n min-height: 90%;\\n}\\n.gfc #header-content {\\n position: absolute;\\n bottom: 0;\\n margin-left: 3px;\\n}\\n.gfc .item {\\n height: calc(100vh - 35px);\\n background-color: #ffffff;\\n}\\n.gfc div#container {\\n position: relative;\\n /* needed for footer positioning*/\\n height: auto !important;\\n /* real browsers */\\n min-height: 100%;\\n /* real browsers */\\n width: 422px;\\n}\\n.gfc div#header {\\n padding: 1em;\\n background: #efe;\\n}\\n.gfc .footer {\\n position: fixed;\\n width: 30%;\\n bottom: 0;\\n /* stick to bottom */\\n background: green;\\n}\\n.gfc .container {\\n height: 100%;\\n display: flex;\\n}\\n.gfc .column-panel1 {\\n height: 100%;\\n min-width: 400px;\\n background-color: white;\\n}\\n.gfc .column-panel4 {\\n min-width: 39px;\\n}\\n.gfc .column-panel2 {\\n height: 100%;\\n max-width: 530px;\\n background-color: white;\\n}\\n.gfc .column-panel3 {\\n height: 100%;\\n width: 100%;\\n background: #2D4557;\\n overflow: hidden;\\n}\\n.gfc .maximum-img {\\n width: 14px;\\n height: 14px;\\n position: absolute;\\n top: 40px;\\n float: right;\\n background: #ffffff;\\n cursor: pointer;\\n}\\n.gfc .panel-1 {\\n position: relative;\\n overflow-y: auto;\\n}\\n.gfc .panel-1 .mat-list-item {\\n cursor: pointer !important;\\n}\\n.gfc .close {\\n font-size: 18px;\\n position: absolute;\\n top: 38px;\\n right: 0;\\n cursor: pointer;\\n}\\n.gfc .footer-panel1 {\\n width: 400px;\\n bottom: 0;\\n /* stick to bottom */\\n height: 38px;\\n background: #000000;\\n}\\n.gfc .footer-panel4 {\\n width: 39px;\\n bottom: 0;\\n /* stick to bottom */\\n background: #000000;\\n height: 38px;\\n}\\n.gfc .footer-panel2 {\\n width: 530px;\\n bottom: 0;\\n /* stick to bottom */\\n background: #000000;\\n height: 38px;\\n}\\n.gfc .footer-panel3 {\\n width: 99%;\\n bottom: 0;\\n background: #000000;\\n height: 38px;\\n}\\n.gfc .arrow_detail {\\n padding: 19px 0px 0px 4px;\\n background-color: #bbbcbc;\\n}\\n.gfc .main {\\n align-self: center;\\n width: 39px;\\n height: calc(100% - 10px) !important;\\n display: flex;\\n flex-wrap: wrap;\\n align-content: center;\\n background-color: #E9EEF0;\\n}\\n.gfc .main div {\\n width: 49px;\\n height: 40px;\\n}\\n.gfc .arrow {\\n border: 1px solid #c3c3c3;\\n background-color: white;\\n padding: 19px 0px 0px 7px;\\n}\\n.gfc .center-key {\\n width: 26px;\\n position: -webkit-sticky !important;\\n position: sticky !important;\\n right: 0;\\n bottom: 48%;\\n float: right;\\n padding: 2px;\\n}\\n.gfc .center-key .arrow {\\n border: 1px solid #c3c3c3;\\n background-color: white;\\n padding: 15px 10px 0px 0px;\\n}\\n.gfc .mater-icons {\\n margin-left: -8px;\\n margin-top: -7px;\\n font-size: 40px !important;\\n}\\n.gfc .delay-span {\\n font-family: Roboto, \\\"Helvetica Neue\\\", sans-serif;\\n font-size: 14px;\\n font-weight: 500;\\n line-height: 17px;\\n margin-left: 0px;\\n}\\n.gfc .delay-span-period {\\n font-family: Roboto, \\\"Helvetica Neue\\\", sans-serif;\\n font-size: 13px;\\n font-weight: 500;\\n line-height: 17px;\\n margin-left: -3px;\\n}\\n.gfc .label-span {\\n font-family: Roboto, \\\"Helvetica Neue\\\", sans-serif;\\n font-size: 11px;\\n font-weight: 400;\\n line-height: 28px;\\n color: #bbbcbc;\\n}\\n.gfc .text-span {\\n font-family: Roboto, \\\"Helvetica Neue\\\", sans-serif;\\n font-size: 11px;\\n font-weight: 400;\\n line-height: 28px;\\n}\\n.gfc .text-span-wo-line-height {\\n font-family: Roboto, \\\"Helvetica Neue\\\", sans-serif;\\n font-size: 11px;\\n font-weight: 400;\\n}\\n.gfc .text-span-font {\\n font-family: Roboto, \\\"Helvetica Neue\\\", sans-serif;\\n font-size: 11px;\\n font-weight: 400;\\n line-height: 13px;\\n}\\n.gfc .bar-chart-icon-rotate {\\n transform: rotate(90deg);\\n display: inline-block;\\n margin-left: 5px;\\n margin-top: 8px;\\n}\\n.gfc .title-span {\\n font-family: Roboto, \\\"Helvetica Neue\\\", sans-serif;\\n font-size: 14px;\\n font-weight: 500;\\n line-height: 17px;\\n}\\n.gfc .title-span-Abbr {\\n font-family: Roboto, \\\"Helvetica Neue\\\", sans-serif;\\n font-size: 14px;\\n font-weight: 600;\\n line-height: 17px;\\n padding: 10px 0 10px 0;\\n}\\n.gfc .button-panel2 {\\n width: 75px;\\n height: 36px !important;\\n font-family: Roboto, \\\"Helvetica Neue\\\", sans-serif;\\n font-size: 13px;\\n font-weight: 500;\\n text-align: center;\\n border: 0px solid;\\n background-color: #FFCC33;\\n padding: 0 !important;\\n border-radius: 0px;\\n line-height: 36px !important;\\n}\\n.gfc ::ng-deep .mat-select {\\n font-family: Roboto, \\\"Helvetica Neue\\\", sans-serif;\\n font-size: 11px;\\n font-weight: 400;\\n}\\n.gfc ::ng-deep .mat-select:focus:not(.mat-select-disabled).mat-primary .mat-select-arrow {\\n border-left: 15px solid transparent !important;\\n border-right: none !important;\\n border-top: 15px solid transparent !important;\\n border-image-source: url('Down.svg') !important;\\n border-image-repeat: stretch !important;\\n}\\n.gfc ::ng-deep .mat-select-panel {\\n box-shadow: 0px 2px 4px -1px rgba(0, 0, 0, 0.2), 0px 4px 5px 0px rgba(0, 0, 0, 0.14), 0px 1px 10px 0px rgba(0, 0, 0, 0.12);\\n margin-top: 35px;\\n max-height: 280px !important;\\n}\\n.gfc ::ng-deep .mat-select-trigger {\\n color: #63961C;\\n border-image-source: url('close.svg') !important;\\n}\\n.gfc .mat-primary .mat-option.mat-selected:not(.mat-option-disabled) {\\n color: #63961C;\\n}\\n.gfc ::ng-deep.mat-pseudo-checkbox {\\n display: none !important;\\n}\\n.gfc .custom-scroll-bar {\\n height: calc(100% - 110px);\\n overflow-y: scroll;\\n overflow-x: hidden;\\n margin-right: 5px;\\n}\\n.gfc .custom-scroll-bar::-webkit-scrollbar {\\n width: 10px;\\n}\\n.gfc .custom-scroll-bar::-webkit-scrollbar-thumb {\\n background-color: #2d4557;\\n border-radius: 5px;\\n}\\n.gfc .row {\\n display: inline-flex;\\n width: 100%;\\n}\\n.gfc .req-active {\\n background: #ffffff !important;\\n color: #000000 !important;\\n}\\n.gfc ::ng-deep.mat-menu-panel {\\n margin-top: 3px !important;\\n border: 1px solid #cccccc;\\n max-width: 600px !important;\\n}\\n.gfc .mat-list-border-left {\\n border-right: 1px solid #cccccc;\\n}\\n.gfc .hrline-top {\\n width: 96%;\\n margin-left: 15px;\\n margin-right: 0px;\\n margin-top: 0px;\\n border-top: 1px solid #ccc;\\n}\\n.gfc .mat-list-item:hover {\\n background-color: #f6f9fa;\\n}\\n.gfc .selected-highlight {\\n background-color: #E9EEF0;\\n}\\n.gfc .request-close {\\n height: 14px;\\n width: 14px;\\n float: right;\\n margin-right: 5px;\\n margin-top: 8px;\\n cursor: pointer;\\n border-radius: 50px;\\n}\\n.gfc .request-close:hover {\\n background-color: #e9f4f8;\\n}\\n.gfc .mat-expansion-panel:not([class*=mat-elevation-z]) {\\n box-shadow: none;\\n}\\n.gfc ::ng-deep.mat-expansion-indicator::after {\\n border-style: none !important;\\n}\\n.gfc .mat-expansion-panel-header {\\n padding: 0;\\n}\\n.gfc ::ng-deep.mat-expansion-panel-body {\\n padding: 0 !important;\\n}\\n.gfc .mat-expansion-panel-spacing {\\n margin: 2px 0;\\n}\\n.gfc .div-m-height {\\n min-height: 20% !important;\\n height: 30% !important;\\n max-height: 40% !important;\\n border: 1px solid;\\n}\\n.gfc .section-backcolour {\\n background-color: #D3D9E0;\\n cursor: pointer;\\n}\\n.gfc .select-list-blue {\\n background-color: #0077C8;\\n color: #ffffff;\\n}\\n.gfc .select-list-blue:hover {\\n background-color: #0077C8;\\n color: #ffffff;\\n}\\n.gfc .select-list-delay {\\n background-color: #009CA6;\\n color: #ffffff;\\n}\\n.gfc .select-list-delay:hover {\\n background-color: #009CA6;\\n color: #ffffff;\\n}\\n.gfc .select-list-green {\\n background-color: #009B77;\\n color: #ffffff;\\n}\\n.gfc .select-list-green:hover {\\n background-color: #009B77;\\n color: #ffffff;\\n}\\n.gfc .group-list {\\n background-color: #0077C8;\\n color: #ffffff;\\n}\\n.gfc .group-list:hover {\\n background-color: #0077C8;\\n color: #ffffff;\\n}\\n.gfc .group-list-green {\\n background-color: #009B77;\\n color: #ffffff;\\n}\\n.gfc .border-class {\\n box-sizing: border-box;\\n border: 3px solid #000000;\\n}\\n.gfc .border-class .line-segment:nth-child(1) {\\n margin-top: -6px;\\n}\\n.gfc .border-top {\\n border-top: 0;\\n}\\n.gfc .border-bottom {\\n border-bottom: 0;\\n}\\n.gfc .border-or {\\n border-top: 0.1px solid #000000;\\n border-bottom: 0.1px solid #000000;\\n}\\n.gfc .or_cls {\\n margin-left: 4%;\\n pointer-events: all;\\n padding-bottom: 6px;\\n padding-left: 10px;\\n}\\n.gfc .sauf-list {\\n background-color: #cb333b !important;\\n color: #ffffff;\\n}\\n.gfc .sauf-list:hover {\\n background-color: #cb333b;\\n color: #ffffff;\\n}\\n.gfc .group-list-green:hover {\\n background-color: #009B77;\\n color: #ffffff;\\n}\\n.gfc .group-list-bottom-space {\\n margin-bottom: 3px;\\n}\\n.gfc #groupingList ::ng-deep .mat-list-item,\\n.gfc #vueDetailList ::ng-deep .mat-list-item {\\n height: initial !important;\\n word-break: break-all;\\n}\\n.gfc #groupingList ::ng-deep .mat-list-text,\\n.gfc #vueDetailList ::ng-deep .mat-list-text {\\n line-height: 10px;\\n overflow: visible;\\n}\\n.gfc #groupingList ::ng-deep .mat-list-item-content,\\n.gfc #vueDetailList ::ng-deep .mat-list-item-content {\\n padding: 0 2px;\\n}\\n.gfc .list-pad {\\n padding: 10px 0 !important;\\n}\\n.gfc .tab_name {\\n text-overflow: ellipsis;\\n overflow: hidden;\\n white-space: nowrap;\\n width: 100%;\\n cursor: pointer;\\n margin-top: 3px;\\n}\\n.gfc #characterListId {\\n /* Rounded sliders */\\n}\\n.gfc #characterListId ::ng-deep .mat-list-item {\\n height: initial !important;\\n word-break: break-all;\\n}\\n.gfc #characterListId ::ng-deep .mat-list-text {\\n line-height: 10px;\\n overflow: visible;\\n}\\n.gfc #characterListId ::ng-deep .mat-list-item-content {\\n padding: 0 2px;\\n}\\n.gfc #characterListId .pointer_none {\\n pointer-events: none;\\n}\\n.gfc #characterListId .row {\\n display: inline-flex;\\n width: 100%;\\n}\\n.gfc #characterListId .column1 {\\n width: 20%;\\n margin-right: 2%;\\n}\\n.gfc #characterListId .transform {\\n transform: translateY(-28px);\\n}\\n.gfc #characterListId .column-cls {\\n margin-left: 5%;\\n}\\n.gfc #characterListId .column2 {\\n width: 80%;\\n}\\n.gfc #characterListId .column3 {\\n width: 20%;\\n}\\n.gfc #characterListId .ET-column {\\n width: 5%;\\n margin-top: 5px;\\n}\\n.gfc #characterListId .divider-column {\\n margin-top: 15px;\\n width: 91%;\\n}\\n.gfc #characterListId .divider-column .mat-divider {\\n border-top-width: 2px !important;\\n}\\n.gfc #characterListId .value-cls {\\n margin-top: 3px;\\n margin-bottom: 5px;\\n}\\n.gfc #characterListId .operator-class {\\n width: 25px;\\n height: 8px;\\n border: 2px solid #000000;\\n padding: 5px;\\n text-align: center;\\n border-radius: 22%;\\n background-color: #ffffff;\\n color: #000000;\\n font-weight: 600;\\n font-size: 12px;\\n cursor: none;\\n}\\n.gfc #characterListId .line-segment {\\n width: 2px;\\n height: 6px;\\n background-color: #000;\\n margin-left: 20px;\\n float: left;\\n color: #ffffff;\\n position: relative;\\n}\\n.gfc #characterListId .add-class {\\n margin-top: 6px;\\n margin-bottom: 0;\\n font-size: 18px;\\n}\\n.gfc #characterListId .last {\\n display: none;\\n}\\n.gfc #characterListId .text-span-font {\\n width: 345px;\\n}\\n.gfc #characterListId .sauf-text {\\n margin-left: 18%;\\n font-size: 12px;\\n}\\n.gfc #characterListId .switch {\\n position: relative;\\n width: 37px;\\n height: 18px;\\n margin-left: auto;\\n}\\n.gfc #characterListId .switch input {\\n opacity: 0;\\n width: 0;\\n height: 0;\\n}\\n.gfc #characterListId .slider {\\n position: absolute;\\n cursor: pointer;\\n top: 0;\\n left: 0;\\n right: 0;\\n bottom: 0;\\n background-color: transparent;\\n transition: 0.4s;\\n}\\n.gfc #characterListId .slider:before {\\n position: absolute;\\n content: \\\"\\\";\\n height: 14px;\\n width: 14px;\\n left: 1px;\\n top: 1px;\\n background-color: #ffffff;\\n transition: 0.4s;\\n}\\n.gfc #characterListId input:checked + .slider {\\n background-color: #cb333b;\\n}\\n.gfc #characterListId input:focus + .slider {\\n box-shadow: 0 0 1px #0077C8;\\n}\\n.gfc #characterListId input:checked + .slider:before {\\n transform: translateX(19px);\\n}\\n.gfc #characterListId .slider.round {\\n border-radius: 34px;\\n border: 1px solid #ffffff;\\n}\\n.gfc #characterListId .slider.round:before {\\n border-radius: 50%;\\n}\\n.gfc ::ng-deep #groupingList .mat-list-option[aria-selected=true] .group-list,\\n.gfc ::ng-deep #characterListId .mat-list-option[aria-selected=true] .group-list {\\n background-color: #cccccc;\\n color: #000000;\\n}\\n.gfc ::ng-deep #groupingList .mat-list-option[aria-selected=true] .sauf-list,\\n.gfc ::ng-deep #characterListId .mat-list-option[aria-selected=true] .sauf-list {\\n background-color: #cccccc !important;\\n color: #000000;\\n}\\n.gfc ::ng-deep #groupingList .mat-list-option[aria-selected=true] .group-list-green,\\n.gfc ::ng-deep #characterListId .mat-list-option[aria-selected=true] .group-list-green {\\n background-color: #cccccc;\\n color: #000000;\\n}\\n.gfc ::ng-deep #groupingList .mat-list-option[aria-selected=true] .select-list-delay,\\n.gfc ::ng-deep #characterListId .mat-list-option[aria-selected=true] .select-list-delay {\\n background-color: #cccccc;\\n color: #000000;\\n}\\n.gfc ::ng-deep #vueDetailList .mat-list-option[aria-selected=true] .group-list {\\n background-color: #cccccc;\\n color: #000000;\\n}\\n.gfc ::ng-deep #vueDetailList .mat-list-option[aria-selected=true] .group-list-green {\\n background-color: #cccccc;\\n color: #000000;\\n}\\n.gfc ::ng-deep #vueDetailList .mat-list-option[aria-selected=true] .select-list-delay {\\n background-color: #cccccc;\\n color: #000000;\\n}\\n.gfc .select-group-list:hover {\\n background-color: #cccccc !important;\\n color: #000000 !important;\\n}\\n.gfc .grouping-radio-date {\\n overflow-y: auto;\\n height: calc(100vh - 116px);\\n}\\n.gfc .grouping-radio-date .date-section {\\n padding: 5px 0px 0px 15px;\\n height: calc((100vh - 130px)/2);\\n}\\n.gfc .grouping-radio-date ::ng-deep .mat-checkbox {\\n margin: 5px;\\n}\\n.gfc .grouping-radio-date ::ng-deep .mat-checkbox .mat-checkbox-frame {\\n margin: -1px;\\n border: 1px solid #cccccc;\\n}\\n.gfc .grouping-radio-date ::ng-deep .mat-checkbox .mat-checkbox-background {\\n background-color: white;\\n}\\n.gfc .grouping-radio-date ::ng-deep .mat-checkbox .mat-checkbox-checkmark-path {\\n stroke: #0077c8 !important;\\n}\\n.gfc .grouping-radio-date input[type=number] {\\n width: 60%;\\n margin-left: 15%;\\n margin-top: 8px;\\n height: 25px;\\n padding-left: 5px;\\n}\\n.gfc .grouping-radio-date .all-grouping {\\n display: flex;\\n}\\n.gfc .population-list-item {\\n border: 0px;\\n background-color: #ffffff;\\n cursor: pointer;\\n text-transform: uppercase;\\n}\\n.gfc .margin-10 {\\n margin-top: 10px;\\n}\\n.gfc .tick-img {\\n float: right;\\n margin-top: 5px;\\n margin-left: 10px;\\n width: 15px;\\n height: 15px;\\n}\\n.gfc .population-list {\\n min-width: 180px;\\n max-height: 250px;\\n}\\n.gfc .dropdown-alignment {\\n display: inline-block;\\n}\\n.gfc .dropdown-alignment .up-down {\\n float: right;\\n margin-top: 7px;\\n width: 15px;\\n height: 15px;\\n}\\n.gfc .dropdown-alignment .population-menu {\\n border-bottom: 1px solid #aaaaaa;\\n height: 30px;\\n cursor: pointer;\\n}\\n.gfc .dropdown-alignment .dropdown-alignment:nth-child(1),\\n.gfc .dropdown-alignment .dropdown-alignment:nth-child(2) {\\n margin-top: 0;\\n}\\n.gfc .dropdown-alignment .text-span {\\n font-family: Roboto, \\\"Helvetica Neue\\\", sans-serif;\\n font-size: 11px;\\n font-weight: 400;\\n line-height: 0 !important;\\n}\\n.gfc .textarea-alignment {\\n display: block;\\n padding: 0px 0px 0px 20px;\\n height: 40px;\\n width: 90%;\\n}\\n.gfc .textarea-alignment input[type=text] {\\n width: 100%;\\n border-bottom: 1px solid #aaaaaa;\\n}\\n.gfc .textarea-alignment input[type=text]:focus {\\n outline: none !important;\\n border-bottom: 1px solid #aaaaaa;\\n}\\n.gfc .textarea-alignment .text-span {\\n font-family: Roboto, \\\"Helvetica Neue\\\", sans-serif;\\n font-size: 11px;\\n font-weight: 400;\\n line-height: 0 !important;\\n}\\n.gfc .custom-delay-scroll-bar {\\n height: calc(100% - 65px);\\n overflow-y: scroll;\\n overflow-x: hidden;\\n margin-right: 5px;\\n margin-top: 5px;\\n}\\n.gfc .custom-delay-scroll-bar::-webkit-scrollbar {\\n width: 10px;\\n}\\n.gfc .custom-delay-scroll-bar::-webkit-scrollbar-thumb {\\n background-color: #2d4557;\\n border-radius: 5px;\\n}\\n.gfc .item-disable {\\n cursor: not-allowed !important;\\n pointer-events: none;\\n}\\n.gfc .vue-section-check {\\n width: 89%;\\n margin-top: 5px;\\n margin-left: 20px;\\n font-family: Roboto, \\\"Helvetica Neue\\\", sans-serif;\\n font-size: 11px;\\n font-weight: 400;\\n}\\n.gfc .vue-section-check ::ng-deep .mat-checkbox {\\n margin: 5px;\\n}\\n.gfc .vue-section-check ::ng-deep .mat-checkbox .mat-checkbox-frame {\\n margin: -1px;\\n border: 1px solid #cccccc;\\n}\\n.gfc .vue-section-check ::ng-deep .mat-checkbox .mat-checkbox-background {\\n background-color: white;\\n}\\n.gfc .vue-section-check ::ng-deep .mat-checkbox .mat-checkbox-checkmark-path {\\n stroke: #0077c8 !important;\\n}\\n.gfc .vue-mat-list-disabled {\\n background-color: #eeeeee !important;\\n cursor: not-allowed !important;\\n pointer-events: none;\\n color: #aaaaaa !important;\\n}\\n.gfc .button-save {\\n width: 100px;\\n height: 30px !important;\\n font-family: Roboto, \\\"Helvetica Neue\\\", sans-serif;\\n font-size: 13px;\\n font-weight: 500;\\n text-align: center;\\n background-color: #FFCC33;\\n border-radius: 3px;\\n float: right;\\n}\\n.gfc .table-style {\\n overflow-y: scroll;\\n overflow-x: hidden;\\n margin-right: 5px;\\n}\\n.gfc .table-size-with-cond {\\n max-height: 170px !important;\\n overflow-y: auto;\\n}\\n.gfc .table-size-without-cond {\\n max-height: 500px !important;\\n overflow-y: auto;\\n}\\n.gfc .table-style::-webkit-scrollbar {\\n width: 10px;\\n}\\n.gfc .table-style::-webkit-scrollbar-thumb {\\n background-color: #2d4557;\\n border-radius: 5px;\\n}\\n.gfc .mater-icons {\\n margin-left: -8px;\\n margin-top: -7px;\\n font-size: 40px !important;\\n}\\n.gfc .selected-list {\\n background-color: #cccccc;\\n}\\n.cls-gfcContainer {\\n display: flex;\\n height: 550px !important;\\n border-top: 1px solid #ccc;\\n border-bottom: 1px solid #ccc;\\n margin-top: 10px;\\n}\\n/*# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi91c3Ivc3JjL3NyYy9hcHAvY29tcG9uZW50L2dyb3VwLWZvcm1hdHRpbmctY29uZGl0aW9uL2dyb3VwLWZvcm1hdHRpbmctY29uZGl0aW9uLmNvbXBvbmVudC5zY3NzIiwic3JjL2FwcC9jb21wb25lbnQvZ3JvdXAtZm9ybWF0dGluZy1jb25kaXRpb24vZ3JvdXAtZm9ybWF0dGluZy1jb25kaXRpb24uY29tcG9uZW50LnNjc3MiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUE7RUFpWEkscURBQUE7QUMvV0o7QURDSTtFQUNJLGFBQUE7RUFDQSxzQkFBQTtFQUNBLGNBQUE7QUNDUjtBREVJO0VBQ0ksV0FBQTtBQ0FSO0FER0k7RUFDSSx5QkFBQTtFQUNBLGNBQUE7RUFDQSxpREFBQTtFQUNBLGVBQUE7RUFDQSxnQkFBQTtFQUNBLGlCQUFBO0VBQ0EsWUFBQTtFQUNBLGdCQUFBO0FDRFI7QURJSTtFQUNJLDBCQUFBO0VBQ0EsZ0JBQUE7RUFDQSxjQUFBO0VBQ0EsaURBQUE7RUFDQSxlQUFBO0VBQ0EsZ0JBQUE7RUFDQSxpQkFBQTtFQUVBLGdCQUFBO0FDSFI7QURNSTtFQUNJLFdBQUE7RUFDQSxZQUFBO0VBQ0EsaURBQUE7RUFDQSxlQUFBO0VBQ0EsZ0JBQUE7RUFDQSxrQkFBQTtFQUNBLGlCQUFBO0VBQ0EseUJBQUE7RUFDQSxxQkFBQTtBQ0pSO0FET0k7RUFFSSxlQUFBO0FDTlI7QURTSTtFQUNJLGtCQUFBO0VBQ0EsU0FBQTtFQUNBLGdCQUFBO0FDUFI7QURVSTtFQUVJLDBCQUFBO0VBQ0EseUJBQUE7QUNUUjtBRGFJO0VBQ0ksa0JBQUE7RUFDQSxpQ0FBQTtFQUNBLHVCQUFBO0VBQ0Esa0JBQUE7RUFDQSxnQkFBQTtFQUNBLGtCQUFBO0VBQ0EsWUFBQTtBQ1hSO0FEY0k7RUFDSSxZQUFBO0VBQ0EsZ0JBQUE7QUNaUjtBRG1CSTtFQUNJLGVBQUE7RUFDQSxVQUFBO0VBQ0EsU0FBQTtFQUNBLG9CQUFBO0VBQ0EsaUJBQUE7QUNqQlI7QURvQkk7RUFD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QUNBLDBCQUFBO0FDOU9SO0FEaVBJO0VBQ0kseUJBQUE7QUMvT1I7QURrUEE7RUFDSSxhQUFBO0VBQ0Msd0JBQUE7RUFDQywwQkFBQTtFQUNDLDZCQUFBO0VBQ0YsZ0JBQUE7QUMvT0wiLCJmaWxlIjoic3JjL2FwcC9jb21wb25lbnQvZ3JvdXAtZm9ybWF0dGluZy1jb25kaXRpb24vZ3JvdXAtZm9ybWF0dGluZy1jb25kaXRpb24uY29tcG9uZW50LnNjc3MiLCJzb3VyY2VzQ29udGVudCI6WyIuZ2ZjIHtcbiAgICAvLyBoZWlnaHQ6IDU1MHB4ICFpbXBvcnRhbnQ7XG5cbiAgICAuZXhhbXBsZS1yYWRpby1ncm91cCB7XG4gICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XG4gICAgICAgIG1hcmdpbjogMTVweCAwO1xuICAgIH1cblxuICAgIC5leGFtcGxlLXJhZGlvLWJ1dHRvbiB7XG4gICAgICAgIG1hcmdpbjogNXB4O1xuICAgIH1cblxuICAgIC5kaWFsb2ctdGl0bGUge1xuICAgICAgICBwYWRkaW5nOiAwcHggMTVweCAwcHggMHB4O1xuICAgICAgICBjb2xvcjogIzAwMDAwMDtcbiAgICAgICAgZm9udC1mYW1pbHk6IFJvYm90bywgXCJIZWx2ZXRpY2EgTmV1ZVwiLCBzYW5zLXNlcmlmO1xuICAgICAgICBmb250LXNpemU6IDE1cHg7XG4gICAgICAgIGZvbnQtd2VpZ2h0OiA2MDA7XG4gICAgICAgIGxpbmUtaGVpZ2h0OiAxN3B4O1xuICAgICAgICB3aWR0aDogMTQ2cHg7XG4gICAgICAgIHRleHQtYWxpZ246IGxlZnQ7XG4gICAgfVxuXG4gICAgLnJhZGlvLWZvbnQge1xuICAgICAgICBwYWRkaW5nOiAwcHggMTVweCAwcHggMjVweDtcbiAgICAgICAgbWFyZ2luLXRvcDogMTBweDtcbiAgICAgICAgY29sb3I6ICMwMDAwMDA7XG4gICAgICAgIGZvbnQtZmFtaWx5OiBSb2JvdG8sIFwiSGVsdmV0aWNhIE5ldWVcIiwgc2Fucy1zZXJpZjtcbiAgICAgICAgZm9udC1zaXplOiAxM3B4O1xuICAgICAgICBmb250LXdlaWdodDogNDAwO1xuICAgICAgICBsaW5lLWhlaWdodDogMTdweDtcbiAgICAgICAgLy8gd2lkdGg6IDE0NXB4O1xuICAgICAgICB0ZXh0LWFsaWduOiBsZWZ0O1xuICAgIH1cblxuICAgIC5idXR0b24tc3R5bGUge1xuICAgICAgICB3aWR0aDogODJweDtcbiAgICAgICAgaGVpZ2h0OiAzNnB4O1xuICAgICAgICBmb250LWZhbWlseTogUm9ib3RvLCBcIkhlbHZldGljYSBOZXVlXCIsIHNhbnMtc2VyaWY7XG4gICAgICAgIGZvbnQtc2l6ZTogMTNweDtcbiAgICAgICAgZm9udC13ZWlnaHQ6IDUwMDtcbiAgICAgICAgdGV4dC1hbGlnbjogY2VudGVyO1xuICAgICAgICBib3JkZXI6IDBweCBzb2xpZDtcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogI0ZGQ0MzMztcbiAgICAgICAgcGFkZGluZzogMCAhaW1wb3J0YW50O1xuICAgIH1cblxuICAgICNoZWFkZXIge1xuICAgICAgICAvLyAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgbWluLWhlaWdodDogOTAlO1xuICAgIH1cblxuICAgICNoZWFkZXItY29udGVudCB7XG4gICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgYm90dG9tOiAwO1xuICAgICAgICBtYXJnaW4tbGVmdDogM3B4O1xuICAgIH1cblxuICAgIC5pdGVtIHtcblxuICAgICAgICBoZWlnaHQ6IGNhbGMoMTAwdmggLSAzNXB4KTtcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogI2ZmZmZmZjtcblxuICAgIH1cblxuICAgIGRpdiNjb250YWluZXIge1xuICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgIC8qIG5lZWRlZCBmb3IgZm9vdGVyIHBvc2l0aW9uaW5nKi9cbiAgICAgICAgaGVpZ2h0OiBhdXRvICFpbXBvcnRhbnQ7XG4gICAgICAgIC8qIHJlYWwgYnJvd3NlcnMgKi9cbiAgICAgICAgbWluLWhlaWdodDogMTAwJTtcbiAgICAgICAgLyogcmVhbCBicm93c2VycyAqL1xuICAgICAgICB3aWR0aDogNDIycHg7XG4gICAgfVxuXG4gICAgZGl2I2hlYWRlciB7XG4gICAgICAgIHBhZGRpbmc6IDFlbTtcbiAgICAgICAgYmFja2dyb3VuZDogI2VmZTtcbiAgICB9XG5cbiAgICAvLyBkaXYjY29udGVudCB7XG4gICAgLy8gXHQvKiBwYWRkaW5nOjFlbSAxZW0gNWVtOyAqLyAvKiBib3R0b20gcGFkZGluZyBmb3IgZm9vdGVyICovXG4gICAgLy8gfVxuXG4gICAgLmZvb3RlciB7XG4gICAgICAgIHBvc2l0aW9uOiBmaXhlZDtcbiAgICAgICAgd2lkdGg6IDMwJTtcbiAgICAgICAgYm90dG9tOiAwO1xuICAgICAgICAvKiBzdGljayB0byBib3R0b20gKi9cbiAgICAgICAgYmFja2dyb3VuZDogZ3JlZW47XG4gICAgfVxuXG4gICAgLmNvbnRhaW5lciB7XG4gICAgICAgIGhlaWdodDogMTAwJTtcbiAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICB9XG5cbiAgICAuY29sdW1uLXBhbmVsMSB7XG4gICAgICAgIGhlaWdodDogMTAwJTtcbiAgICAgICAgLy8gZGlzcGxheTogZmxleDtcbiAgICAgICAgbWluLXdpZHRoOiA0MDBweDtcbiAgICAgICAgLy8ganVzdGlmeS1jb250ZW50OiBjZW50ZXI7ICAgICAgICAgICAgXG4gICAgICAgIC8vIGFsaWduLWl0ZW1zOiBjZW50ZXI7ICAgXG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6IHdoaXRlO1xuICAgIH1cblxuICAgIC5jb2x1bW4tcGFuZWw0IHtcbiAgICAgICAgLy8gaGVpZ2h0OiAxMDAlOyAgXG4gICAgICAgIC8vIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgIG1pbi13aWR0aDogMzlweDtcbiAgICAgICAgLy8ganVzdGlmeS1jb250ZW50OiBjZW50ZXI7ICAgICAgICAgICAgXG4gICAgICAgIC8vIGFsaWduLWl0ZW1zOiBjZW50ZXI7ICAgICAgICAgICAgICAgIFxuICAgIH1cblxuICAgIC5jb2x1bW4tcGFuZWwyIHtcbiAgICAgICAgaGVpZ2h0OiAxMDAlO1xuICAgICAgICAvLyBkaXNwbGF5OiBmbGV4OyAgIFxuICAgICAgICBtYXgtd2lkdGg6IDUzMHB4O1xuICAgICAgICAvLyBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjsgICAgICAgICAgICBcbiAgICAgICAgLy8gYWxpZ24taXRlbXM6IGNlbnRlcjsgXG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6IHdoaXRlO1xuICAgIH1cblxuICAgIC5jb2x1bW4tcGFuZWwzIHtcbiAgICAgICAgaGVpZ2h0OiAxMDAlO1xuICAgICAgICB3aWR0aDogMTAwJTtcbiAgICAgICAgYmFja2dyb3VuZDogIzJENDU1NztcbiAgICAgICAgb3ZlcmZsb3c6IGhpZGRlbjtcbiAgICB9XG5cbiAgICAubWF4aW11bS1pbWcge1xuICAgICAgICB3aWR0aDogMTRweDtcbiAgICAgICAgaGVpZ2h0OiAxNHB4O1xuICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgIHRvcDogNDBweDtcbiAgICAgICAgLy8gcmlnaHQ6IDIlO1xuICAgICAgICBmbG9hdDogcmlnaHQ7XG4gICAgICAgIGJhY2tncm91bmQ6ICNmZmZmZmY7XG4gICAgICAgIGN1cnNvcjogcG9pbnRlcjtcbiAgICB9XG5cbiAgICAucGFuZWwtMSB7XG4gICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgb3ZlcmZsb3cteTogYXV0bztcbiAgICAgICAgLy8gbWFyZ2luLXRvcDogOHB4O1xuICAgICAgICAvLyB3aWR0aDogMzk1cHg7XG4gICAgfVxuXG4gICAgLnBhbmVsLTEgLm1hdC1saXN0LWl0ZW0ge1xuICAgICAgICBjdXJzb3I6IHBvaW50ZXIgIWltcG9ydGFudDtcbiAgICB9XG5cbiAgICAuY2xvc2Uge1xuICAgICAgICBmb250LXNpemU6IDE4cHg7XG4gICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgdG9wOiAzOHB4O1xuICAgICAgICByaWdodDogMDtcbiAgICAgICAgY3Vyc29yOiBwb2ludGVyO1xuICAgIH1cblxuICAgIC5mb290ZXItcGFuZWwxIHtcbiAgICAgICAgd2lkdGg6IDQwMHB4O1xuICAgICAgICBib3R0b206IDA7XG4gICAgICAgIC8qIHN0aWNrIHRvIGJvdHRvbSAqL1xuICAgICAgICBoZWlnaHQ6IDM4cHg7XG4gICAgICAgIGJhY2tncm91bmQ6ICMwMDAwMDA7XG4gICAgfVxuXG4gICAgLmZvb3Rlci1wYW5lbDQge1xuICAgICAgICAvLyBwb3NpdGlvbjpmaXhlZDtcbiAgICAgICAgd2lkdGg6IDM5cHg7XG4gICAgICAgIGJvdHRvbTogMDtcbiAgICAgICAgLyogc3RpY2sgdG8gYm90dG9tICovXG4gICAgICAgIGJhY2tncm91bmQ6ICMwMDAwMDA7XG4gICAgICAgIGhlaWdodDogMzhweDtcbiAgICB9XG5cbiAgICAuZm9vdGVyLXBhbmVsMiB7XG4gICAgICAgIC8vIHBvc2l0aW9uOmZpeGVkO1xuICAgICAgICB3aWR0aDogNTMwcHg7XG4gICAgICAgIGJvdHRvbTogMDtcbiAgICAgICAgLyogc3RpY2sgdG8gYm90dG9tICovXG4gICAgICAgIGJhY2tncm91bmQ6ICMwMDAwMDA7XG4gICAgICAgIGhlaWdodDogMzhweDtcbiAgICB9XG5cbiAgICAuZm9vdGVyLXBhbmVsMyB7XG4gICAgICAgIC8vIHBvc2l0aW9uOmZpeGVkO1xuICAgICAgICAvLyB3aWR0aDogMTAwJTtcbiAgICAgICAgLy8gYm90dG9tOjA7IC8qIHN0aWNrIHRvIGJvdHRvbSAqL1xuICAgICAgICAvLyBiYWNrZ3JvdW5kOiAjMDAwMDAwO1xuICAgICAgICAvLyBoZWlnaHQ6IDlweDtcbiAgICAgICAgd2lkdGg6IDk5JTtcbiAgICAgICAgYm90dG9tOiAwO1xuICAgICAgICBiYWNrZ3JvdW5kOiAjMDAwMDAwO1xuICAgICAgICBoZWlnaHQ6IDM4cHg7XG4gICAgfVxuXG4gICAgXG5cbiAgICAuYXJyb3dfZGV0YWlsIHtcbiAgICAgICAgcGFkZGluZzogMTlweCAwcHggMHB4IDRweDtcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogI2JiYmNiYztcbiAgICB9XG5cbiAgICAubWFpbiB7XG4gICAgICAgIGFsaWduLXNlbGY6IGNlbnRlcjtcbiAgICAgICAgd2lkdGg6IDM5cHg7XG4gICAgICAgIGhlaWdodDogY2FsYygxMDAlIC0gMTBweCkgIWltcG9ydGFudDtcbiAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgZmxleC13cmFwOiB3cmFwO1xuICAgICAgICBhbGlnbi1jb250ZW50OiBjZW50ZXI7XG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6ICNFOUVFRjA7XG4gICAgfVxuXG4gICAgLm1haW4gZGl2IHtcbiAgICAgICAgd2lkdGg6IDQ5cHg7XG4gICAgICAgIGhlaWdodDogNDBweDtcbiAgICB9XG4gICAgXG5cbiAgICAuYXJyb3cge1xuICAgICAgICBib3JkZXI6IDFweCBzb2xpZCAjYzNjM2MzO1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiB3aGl0ZTtcbiAgICAgICAgcGFkZGluZzogMTlweCAwcHggMHB4IDdweDtcbiAgICB9XG5cbiAgICAuY2VudGVyLWtleSB7XG4gICAgICAgIC8vIHdpZHRoOiAzMHB4O1xuICAgICAgICB3aWR0aDogMjZweDtcbiAgICAgICAgLy8gcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICBwb3NpdGlvbjogc3RpY2t5ICFpbXBvcnRhbnQ7XG4gICAgICAgIHJpZ2h0OiAwO1xuICAgICAgICBib3R0b206IDQ4JTtcbiAgICAgICAgLy8gbWFyZ2luLWxlZnQ6IDk0JTtcbiAgICAgICAgZmxvYXQ6IHJpZ2h0O1xuICAgICAgICAvLyBoZWlnaHQ6IGNhbGMoMTAwJSAtIDE4MHB4KSAhaW1wb3J0YW50O1xuICAgICAgICBwYWRkaW5nOiAycHg7XG5cbiAgICAgICAgLmFycm93IHtcbiAgICAgICAgICAgIGJvcmRlcjogMXB4IHNvbGlkICNjM2MzYzM7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiB3aGl0ZTtcbiAgICAgICAgICAgIHBhZGRpbmc6IDE1cHggMTBweCAwcHggMHB4O1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgLm1hdGVyLWljb25zIHtcbiAgICAgICAgbWFyZ2luLWxlZnQ6IC04cHg7XG4gICAgICAgIG1hcmdpbi10b3A6IC03cHg7XG4gICAgICAgIGZvbnQtc2l6ZTogNDBweCAhaW1wb3J0YW50O1xuICAgIH1cblxuICAgIC5kZWxheS1zcGFuIHtcbiAgICAgICAgZm9udC1mYW1pbHk6IFJvYm90bywgXCJIZWx2ZXRpY2EgTmV1ZVwiLCBzYW5zLXNlcmlmO1xuICAgICAgICBmb250LXNpemU6IDE0cHg7XG4gICAgICAgIGZvbnQtd2VpZ2h0OiA1MDA7XG4gICAgICAgIGxpbmUtaGVpZ2h0OiAxN3B4O1xuICAgICAgICBtYXJnaW4tbGVmdDogMHB4O1xuICAgICAgICAvLyBtYXJnaW4tbGVmdDogLTRweDtcbiAgICB9XG5cbiAgICAuZGVsYXktc3Bhbi1wZXJpb2Qge1xuICAgICAgICBmb250LWZhbWlseTogUm9ib3RvLCBcIkhlbHZldGljYSBOZXVlXCIsIHNhbnMtc2VyaWY7XG4gICAgICAgIGZvbnQtc2l6ZTogMTNweDtcbiAgICAgICAgZm9udC13ZWlnaHQ6IDUwMDtcbiAgICAgICAgbGluZS1oZWlnaHQ6IDE3cHg7XG4gICAgICAgIG1hcmdpbi1sZWZ0OiAtM3B4O1xuICAgICAgICAvLyBtYXJnaW4tbGVmdDogLTRweDtcbiAgICB9XG5cbiAgICAubGFiZWwtc3BhbiB7XG4gICAgICAgIGZvbnQtZmFtaWx5OiBSb2JvdG8sIFwiSGVsdmV0aWNhIE5ldWVcIiwgc2Fucy1zZXJpZjtcbiAgICAgICAgZm9udC1zaXplOiAxMXB4O1xuICAgICAgICBmb250LXdlaWdodDogNDAwO1xuICAgICAgICBsaW5lLWhlaWdodDogMjhweDtcbiAgICAgICAgY29sb3I6ICNiYmJjYmM7XG4gICAgICAgIC8vIG1hcmdpbi1sZWZ0OiAtNHB4O1xuICAgIH1cblxuICAgIC50ZXh0LXNwYW4ge1xuICAgICAgICBmb250LWZhbWlseTogUm9ib3RvLCBcIkhlbHZldGljYSBOZXVlXCIsIHNhbnMtc2VyaWY7XG4gICAgICAgIGZvbnQtc2l6ZTogMTFweDtcbiAgICAgICAgZm9udC13ZWlnaHQ6IDQwMDtcbiAgICAgICAgbGluZS1oZWlnaHQ6IDI4cHg7XG4gICAgICAgIC8vIG1hcmdpbi1sZWZ0OiAtNHB4O1xuICAgIH1cblxuICAgIC50ZXh0LXNwYW4td28tbGluZS1oZWlnaHQge1xuICAgICAgICBmb250LWZhbWlseTogUm9ib3RvLCBcIkhlbHZldGljYSBOZXVlXCIsIHNhbnMtc2VyaWY7XG4gICAgICAgIGZvbnQtc2l6ZTogMTFweDtcbiAgICAgICAgZm9udC13ZWlnaHQ6IDQwMDtcbiAgICAgICAgLy8gbWFyZ2luLWxlZnQ6IC00cHg7XG4gICAgfVxuXG4gICAgLnRleHQtc3Bhbi1mb250IHtcbiAgICAgICAgZm9udC1mYW1pbHk6IFJvYm90bywgXCJIZWx2ZXRpY2EgTmV1ZVwiLCBzYW5zLXNlcmlmO1xuICAgICAgICBmb250LXNpemU6IDExcHg7XG4gICAgICAgIGZvbnQtd2VpZ2h0OiA0MDA7XG4gICAgICAgIGxpbmUtaGVpZ2h0OiAxM3B4O1xuICAgICAgICAvLyBtYXJnaW4tbGVmdDogLTRweDtcbiAgICB9XG5cbiAgICAuYmFyLWNoYXJ0LWljb24tcm90YXRlIHtcbiAgICAgICAgLXdlYmtpdC10cmFuc2Zvcm06IHJvdGF0ZSg0NWRlZyk7XG4gICAgICAgIC1tb3otdHJhbnNmb3JtOiByb3RhdGUoNDVkZWcpO1xuICAgICAgICAtbXMtdHJhbnNmb3JtOiByb3RhdGUoNDVkZWcpO1xuICAgICAgICAtby10cmFuc2Zvcm06IHJvdGF0ZSg0NWRlZyk7XG4gICAgICAgIHRyYW5zZm9ybTogcm90YXRlKDkwZGVnKTtcbiAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICAvLyBwYWRkaW5nOiAxNXB4IDIwcHggMjBweCAwcHg7XG4gICAgICAgIG1hcmdpbi1sZWZ0OiA1cHg7XG4gICAgICAgIG1hcmdpbi10b3A6IDhweDtcbiAgICB9XG5cbiAgICAudGl0bGUtc3BhbiB7XG4gICAgICAgIGZvbnQtZmFtaWx5OiBSb2JvdG8sIFwiSGVsdmV0aWNhIE5ldWVcIiwgc2Fucy1zZXJpZjtcbiAgICAgICAgZm9udC1zaXplOiAxNHB4O1xuICAgICAgICBmb250LXdlaWdodDogNTAwO1xuICAgICAgICBsaW5lLWhlaWdodDogMTdweDtcbiAgICB9XG5cbiAgICAudGl0bGUtc3Bhbi1BYmJyIHtcbiAgICAgICAgZm9udC1mYW1pbHk6IFJvYm90bywgXCJIZWx2ZXRpY2EgTmV1ZVwiLCBzYW5zLXNlcmlmO1xuICAgICAgICBmb250LXNpemU6IDE0cHg7XG4gICAgICAgIGZvbnQtd2VpZ2h0OiA2MDA7XG4gICAgICAgIGxpbmUtaGVpZ2h0OiAxN3B4O1xuICAgICAgICBwYWRkaW5nOiAxMHB4IDAgMTBweCAwO1xuICAgIH1cblxuICAgIC5idXR0b24tcGFuZWwyIHtcbiAgICAgICAgd2lkdGg6IDc1cHg7XG4gICAgICAgIGhlaWdodDogMzZweCAhaW1wb3J0YW50O1xuICAgICAgICBmb250LWZhbWlseTogUm9ib3RvLCBcIkhlbHZldGljYSBOZXVlXCIsIHNhbnMtc2VyaWY7XG4gICAgICAgIGZvbnQtc2l6ZTogMTNweDtcbiAgICAgICAgZm9udC13ZWlnaHQ6IDUwMDtcbiAgICAgICAgdGV4dC1hbGlnbjogY2VudGVyO1xuICAgICAgICBib3JkZXI6IDBweCBzb2xpZDtcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogI0ZGQ0MzMztcbiAgICAgICAgcGFkZGluZzogMCAhaW1wb3J0YW50O1xuICAgICAgICBib3JkZXItcmFkaXVzOiAwcHg7XG4gICAgICAgIGxpbmUtaGVpZ2h0OiAzNnB4ICFpbXBvcnRhbnQ7XG4gICAgfVxuXG4gICAgOjpuZy1kZWVwIC5tYXQtc2VsZWN0IHtcbiAgICAgICAgZm9udC1mYW1pbHk6IFJvYm90bywgXCJIZWx2ZXRpY2EgTmV1ZVwiLCBzYW5zLXNlcmlmO1xuICAgICAgICBmb250LXNpemU6IDExcHg7XG4gICAgICAgIGZvbnQtd2VpZ2h0OiA0MDA7XG4gICAgfVxuXG4gICAgOjpuZy1kZWVwIC5tYXQtc2VsZWN0OmZvY3VzOm5vdCgubWF0LXNlbGVjdC1kaXNhYmxlZCkubWF0LXByaW1hcnkgLm1hdC1zZWxlY3QtYXJyb3cge1xuICAgICAgICBib3JkZXItbGVmdDogMTVweCBzb2xpZCB0cmFuc3BhcmVudCAhaW1wb3J0YW50O1xuICAgICAgICBib3JkZXItcmlnaHQ6IG5vbmUgIWltcG9ydGFudDtcbiAgICAgICAgYm9yZGVyLXRvcDogMTVweCBzb2xpZCB0cmFuc3BhcmVudCAhaW1wb3J0YW50O1xuICAgICAgICBib3JkZXItaW1hZ2Utc291cmNlOiB1cmwoJy4uLy4uLy4uL2Fzc2V0cy9pbWFnZXMvRG93bi5zdmcnKSAhaW1wb3J0YW50O1xuICAgICAgICBib3JkZXItaW1hZ2UtcmVwZWF0OiBzdHJldGNoICFpbXBvcnRhbnQ7XG4gICAgfVxuXG4gICAgOjpuZy1kZWVwIC5tYXQtc2VsZWN0LXBhbmVsIHtcbiAgICAgICAgYm94LXNoYWRvdzogMHB4IDJweCA0cHggLTFweCByZ2JhKDAsIDAsIDAsIDAuMiksIDBweCA0cHggNXB4IDBweCByZ2JhKDAsIDAsIDAsIDAuMTQpLCAwcHggMXB4IDEwcHggMHB4IHJnYmEoMCwgMCwgMCwgMC4xMik7XG4gICAgICAgIG1hcmdpbi10b3A6IDM1cHg7XG4gICAgICAgIG1heC1oZWlnaHQ6IDI4MHB4ICFpbXBvcnRhbnQ7XG4gICAgfVxuXG4gICAgOjpuZy1kZWVwIC5tYXQtc2VsZWN0LXRyaWdnZXIge1xuICAgICAgICBjb2xvcjogIzYzOTYxQztcbiAgICAgICAgYm9yZGVyLWltYWdlLXNvdXJjZTogdXJsKCcuLi8uLi8uLi9hc3NldHMvaW1hZ2VzL2Nsb3NlLnN2ZycpICFpbXBvcnRhbnQ7XG4gICAgfVxuXG4gICAgLyogdG8gY2hhbmdlIHNlbGVjdGVkIGl0ZW0gY29sb3IgaW4gdGhlIHNlbGVjdCBsaXN0ICovXG4gICAgLm1hdC1wcmltYXJ5IC5tYXQtb3B0aW9uLm1hdC1zZWxlY3RlZDpub3QoLm1hdC1vcHRpb24tZGlzYWJsZWQpIHtcbiAgICAgICAgY29sb3I6ICM2Mzk2MUM7XG4gICAgfVxuXG4gICAgOjpuZy1kZWVwLm1hdC1wc2V1ZG8tY2hlY2tib3gge1xuICAgICAgICBkaXNwbGF5OiBub25lICFpbXBvcnRhbnQ7XG4gICAgfVxuXG4gICAgLmN1c3RvbS1zY3JvbGwtYmFyIHtcbiAgICAgICAgLy8gaGVpZ2h0Ojcwdmg7XG4gICAgICAgIGhlaWdodDogY2FsYygxMDAlIC0gMTEwcHgpO1xuICAgICAgICBvdmVyZmxvdy15OiBzY3JvbGw7XG4gICAgICAgIG92ZXJmbG93LXg6IGhpZGRlbjtcbiAgICAgICAgbWFyZ2luLXJpZ2h0OiA1cHg7XG4gICAgfVxuXG4gICAgLmN1c3RvbS1zY3JvbGwtYmFyOjotd2Via2l0LXNjcm9sbGJhciB7XG4gICAgICAgIHdpZHRoOiAxMHB4O1xuICAgIH1cblxuICAgIC5jdXN0b20tc2Nyb2xsLWJhcjo6LXdlYmtpdC1zY3JvbGxiYXItdGh1bWIge1xuICAgICAgICAvLyBiYWNrZ3JvdW5kOiByZ2JhKDAsMCwwLC4yNik7XG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6ICMyZDQ1NTc7XG4gICAgICAgIGJvcmRlci1yYWRpdXM6IDVweDtcbiAgICB9XG5cbiAgICAucm93IHtcbiAgICAgICAgZGlzcGxheTogaW5saW5lLWZsZXg7XG4gICAgICAgIHdpZHRoOiAxMDAlO1xuICAgIH1cblxuICAgIC5yZXEtYWN0aXZlIHtcbiAgICAgICAgLy8gYmFja2dyb3VuZDogcmdiYSgyMTgsIDIxNSwgMjE1LCAwLjQpICFpbXBvcnRhbnQ7XG4gICAgICAgIGJhY2tncm91bmQ6ICNmZmZmZmYgIWltcG9ydGFudDtcbiAgICAgICAgY29sb3I6ICMwMDAwMDAgIWltcG9ydGFudDtcbiAgICB9XG5cbiAgICA6Om5nLWRlZXAubWF0LW1lbnUtcGFuZWwge1xuICAgICAgICBtYXJnaW4tdG9wOiAzcHggIWltcG9ydGFudDtcbiAgICAgICAgYm9yZGVyOiAxcHggc29saWQgI2NjY2NjYztcbiAgICAgICAgLy8gb3ZlcmZsb3c6IGhpZGRlbjtcbiAgICAgICAgbWF4LXdpZHRoOiA2MDBweCAhaW1wb3J0YW50O1xuICAgIH1cblxuICAgIC5tYXQtbGlzdC1ib3JkZXItbGVmdCB7XG4gICAgICAgIGJvcmRlci1yaWdodDogMXB4IHNvbGlkICNjY2NjY2M7XG4gICAgfVxuXG4gICAgLmhybGluZS10b3Age1xuICAgICAgICB3aWR0aDogOTYlO1xuICAgICAgICBtYXJnaW4tbGVmdDogMTVweDtcbiAgICAgICAgbWFyZ2luLXJpZ2h0OiAwcHg7XG4gICAgICAgIG1hcmdpbi10b3A6IDBweDtcbiAgICAgICAgYm9yZGVyLXRvcDogMXB4IHNvbGlkICNjY2M7XG4gICAgfVxuXG4gICAgLm1hdC1saXN0LWl0ZW06aG92ZXIge1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiByZ2IoMjQ2LCAyNDksIDI1MCk7XG4gICAgfVxuXG4gICAgLnNlbGVjdGVkLWhpZ2hsaWdodCB7XG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6ICNFOUVFRjA7XG4gICAgfVxuXG4gICAgLnJlcXVlc3QtY2xvc2Uge1xuICAgICAgICBoZWlnaHQ6IDE0cHg7XG4gICAgICAgIHdpZHRoOiAxNHB4O1xuICAgICAgICBmbG9hdDogcmlnaHQ7XG4gICAgICAgIG1hcmdpbi1yaWdodDogNXB4O1xuICAgICAgICBtYXJnaW4tdG9wOiA4cHg7XG4gICAgICAgIGN1cnNvcjogcG9pbnRlcjtcbiAgICAgICAgYm9yZGVyLXJhZGl1czogNTBweDtcbiAgICB9XG5cbiAgICAucmVxdWVzdC1jbG9zZTpob3ZlciB7XG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6IHJnYigyMzMsIDI0NCwgMjQ4KTtcbiAgICB9XG5cbiAgICAubWF0LWV4cGFuc2lvbi1wYW5lbDpub3QoW2NsYXNzKj1tYXQtZWxldmF0aW9uLXpdKSB7XG4gICAgICAgIC8vIGJveC1zaGFkb3c6IDBweCAzcHggMXB4IC0ycHggcmdiYSgwLCAwLCAwLCAwLjIpLCAwcHggMnB4IDJweCAwcHggcmdiYSgwLCAwLCAwLCAwLjE0KSwgMHB4IDFweCA1cHggMHB4IHJnYmEoMCwgMCwgMCwgMC4xMik7XG4gICAgICAgIGJveC1zaGFkb3c6IG5vbmU7XG4gICAgfVxuXG4gICAgOjpuZy1kZWVwLm1hdC1leHBhbnNpb24taW5kaWNhdG9yOjphZnRlciB7XG4gICAgICAgIGJvcmRlci1zdHlsZTogbm9uZSAhaW1wb3J0YW50O1xuICAgIH1cblxuICAgIC5tYXQtZXhwYW5zaW9uLXBhbmVsLWhlYWRlciB7XG4gICAgICAgIHBhZGRpbmc6IDA7XG4gICAgfVxuXG4gICAgOjpuZy1kZWVwLm1hdC1leHBhbnNpb24tcGFuZWwtYm9keSB7XG4gICAgICAgIHBhZGRpbmc6IDAgIWltcG9ydGFudDtcbiAgICAgICAgLy8gbWluLWhlaWdodDogNzB2aCAhaW1wb3J0YW50OyBcbiAgICAgICAgLy8gYm9yZGVyOiAxcHggc29saWQ7XG4gICAgfVxuXG4gICAgLm1hdC1leHBhbnNpb24tcGFuZWwtc3BhY2luZyB7XG4gICAgICAgIG1hcmdpbjogMnB4IDA7XG4gICAgfVxuXG4gICAgLmRpdi1tLWhlaWdodCB7XG4gICAgICAgIG1pbi1oZWlnaHQ6IDIwJSAhaW1wb3J0YW50O1xuICAgICAgICBoZWlnaHQ6IDMwJSAhaW1wb3J0YW50O1xuICAgICAgICBtYXgtaGVpZ2h0OiA0MCUgIWltcG9ydGFudDtcbiAgICAgICAgYm9yZGVyOiAxcHggc29saWQ7XG4gICAgfVxuXG4gICAgLnNlY3Rpb24tYmFja2NvbG91ciB7XG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6ICNEM0Q5RTA7XG4gICAgICAgIGN1cnNvcjogcG9pbnRlcjtcbiAgICB9XG5cbiAgICAuc2VsZWN0LWxpc3QtYmx1ZSB7XG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6ICMwMDc3Qzg7XG4gICAgICAgIGNvbG9yOiAjZmZmZmZmO1xuICAgIH1cblxuICAgIC5zZWxlY3QtbGlzdC1ibHVlOmhvdmVyIHtcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogIzAwNzdDODtcbiAgICAgICAgY29sb3I6ICNmZmZmZmY7XG4gICAgfVxuXG4gICAgLnNlbGVjdC1saXN0LWRlbGF5IHtcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogIzAwOUNBNjtcbiAgICAgICAgY29sb3I6ICNmZmZmZmY7XG4gICAgfVxuXG4gICAgLnNlbGVjdC1saXN0LWRlbGF5OmhvdmVyIHtcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogIzAwOUNBNjtcbiAgICAgICAgY29sb3I6ICNmZmZmZmY7XG4gICAgfVxuXG4gICAgLnNlbGVjdC1saXN0LWdyZWVuIHtcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogIzAwOUI3NztcbiAgICAgICAgY29sb3I6ICNmZmZmZmY7XG4gICAgfVxuXG4gICAgLnNlbGVjdC1saXN0LWdyZWVuOmhvdmVyIHtcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogIzAwOUI3NztcbiAgICAgICAgY29sb3I6ICNmZmZmZmY7XG4gICAgfVxuXG4gICAgLmdyb3VwLWxpc3Qge1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjMDA3N0M4O1xuICAgICAgICBjb2xvcjogI2ZmZmZmZjtcbiAgICB9XG5cbiAgICAuZ3JvdXAtbGlzdDpob3ZlciB7XG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6ICMwMDc3Qzg7XG4gICAgICAgIGNvbG9yOiAjZmZmZmZmO1xuICAgIH1cblxuICAgIC5ncm91cC1saXN0LWdyZWVuIHtcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogIzAwOUI3NztcbiAgICAgICAgY29sb3I6ICNmZmZmZmY7XG4gICAgfVxuXG4gICAgLmJvcmRlci1jbGFzcyB7XG4gICAgICAgIGJveC1zaXppbmc6IGJvcmRlci1ib3g7XG4gICAgICAgIGJvcmRlcjogM3B4IHNvbGlkICMwMDAwMDA7XG5cbiAgICAgICAgLy8gd2lkdGg6IDk2JSAhaW1wb3J0YW50O1xuICAgICAgICAubGluZS1zZWdtZW50Om50aC1jaGlsZCgxKSB7XG4gICAgICAgICAgICBtYXJnaW4tdG9wOiAtNnB4O1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgLmJvcmRlci10b3Age1xuICAgICAgICBib3JkZXItdG9wOiAwO1xuICAgIH1cblxuICAgIC5ib3JkZXItYm90dG9tIHtcbiAgICAgICAgYm9yZGVyLWJvdHRvbTogMDtcbiAgICB9XG5cbiAgICAuYm9yZGVyLW9yIHtcbiAgICAgICAgYm9yZGVyLXRvcDogMC4xcHggc29saWQgIzAwMDAwMDtcbiAgICAgICAgYm9yZGVyLWJvdHRvbTogMC4xcHggc29saWQgIzAwMDAwMDtcbiAgICB9XG5cbiAgICAub3JfY2xzIHtcbiAgICAgICAgbWFyZ2luLWxlZnQ6IDQlO1xuICAgICAgICBwb2ludGVyLWV2ZW50czogYWxsO1xuICAgICAgICBwYWRkaW5nLWJvdHRvbTogNnB4O1xuICAgICAgICBwYWRkaW5nLWxlZnQ6IDEwcHg7XG4gICAgfVxuXG4gICAgLy8gLm9yLWJvdHRvbS16ZXJvIHtcbiAgICAvLyAgIHBhZGRpbmctYm90dG9tOiAwO1xuICAgIC8vIH1cbiAgICAuc2F1Zi1saXN0IHtcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogI2NiMzMzYiAhaW1wb3J0YW50O1xuICAgICAgICBjb2xvcjogI2ZmZmZmZjtcbiAgICB9XG5cbiAgICAuc2F1Zi1saXN0OmhvdmVyIHtcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogI2NiMzMzYjtcbiAgICAgICAgY29sb3I6ICNmZmZmZmY7XG4gICAgfVxuXG4gICAgLmdyb3VwLWxpc3QtZ3JlZW46aG92ZXIge1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjMDA5Qjc3O1xuICAgICAgICBjb2xvcjogI2ZmZmZmZjtcbiAgICB9XG5cbiAgICAuZ3JvdXAtbGlzdC1ib3R0b20tc3BhY2Uge1xuICAgICAgICBtYXJnaW4tYm90dG9tOiAzcHg7XG4gICAgfVxuXG4gICAgI2dyb3VwaW5nTGlzdCxcbiAgICAjdnVlRGV0YWlsTGlzdCB7XG4gICAgICAgIDo6bmctZGVlcCB7XG4gICAgICAgICAgICAubWF0LWxpc3QtaXRlbSB7XG4gICAgICAgICAgICAgICAgaGVpZ2h0OiBpbml0aWFsICFpbXBvcnRhbnQ7XG4gICAgICAgICAgICAgICAgd29yZC1icmVhazogYnJlYWstYWxsO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAubWF0LWxpc3QtdGV4dCB7XG4gICAgICAgICAgICAgICAgbGluZS1oZWlnaHQ6IDEwcHg7XG4gICAgICAgICAgICAgICAgb3ZlcmZsb3c6IHZpc2libGU7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgIC5tYXQtbGlzdC1pdGVtLWNvbnRlbnQge1xuICAgICAgICAgICAgICAgIHBhZGRpbmc6IDAgMnB4O1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgfVxuXG4gICAgLmxpc3QtcGFkIHtcbiAgICAgICAgcGFkZGluZzogMTBweCAwICFpbXBvcnRhbnQ7XG4gICAgfVxuXG4gICAgLnRhYl9uYW1lIHtcbiAgICAgICAgdGV4dC1vdmVyZmxvdzogZWxsaXBzaXM7XG4gICAgICAgIG92ZXJmbG93OiBoaWRkZW47XG4gICAgICAgIHdoaXRlLXNwYWNlOiBub3dyYXA7XG4gICAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgICBjdXJzb3I6IHBvaW50ZXI7XG4gICAgICAgIG1hcmdpbi10b3A6IDNweDtcbiAgICB9XG5cbiAgICAjY2hhcmFjdGVyTGlzdElkIHtcbiAgICAgICAgOjpuZy1kZWVwIHtcbiAgICAgICAgICAgIC5tYXQtbGlzdC1pdGVtIHtcbiAgICAgICAgICAgICAgICBoZWlnaHQ6IGluaXRpYWwgIWltcG9ydGFudDtcbiAgICAgICAgICAgICAgICB3b3JkLWJyZWFrOiBicmVhay1hbGw7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgIC5tYXQtbGlzdC10ZXh0IHtcbiAgICAgICAgICAgICAgICBsaW5lLWhlaWdodDogMTBweDtcbiAgICAgICAgICAgICAgICBvdmVyZmxvdzogdmlzaWJsZTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgLm1hdC1saXN0LWl0ZW0tY29udGVudCB7XG4gICAgICAgICAgICAgICAgcGFkZGluZzogMCAycHg7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAucG9pbnRlcl9ub25lIHtcbiAgICAgICAgICAgIHBvaW50ZXItZXZlbnRzOiBub25lO1xuICAgICAgICB9XG5cbiAgICAgICAgLnJvdyB7XG4gICAgICAgICAgICBkaXNwbGF5OiBpbmxpbmUtZmxleDtcbiAgICAgICAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgICB9XG5cbiAgICAgICAgLmNvbHVtbjEge1xuICAgICAgICAgICAgd2lkdGg6IDIwJTtcbiAgICAgICAgICAgIG1hcmdpbi1yaWdodDogMiU7XG4gICAgICAgICAgICAvLyBhbGlnbi1zZWxmOiBjZW50ZXI7XG4gICAgICAgIH1cblxuICAgICAgICAudHJhbnNmb3JtIHtcbiAgICAgICAgICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlWSgtMjhweCk7XG4gICAgICAgIH1cblxuICAgICAgICAuY29sdW1uLWNscyB7XG4gICAgICAgICAgICBtYXJnaW4tbGVmdDogNSU7XG4gICAgICAgIH1cblxuICAgICAgICAuY29sdW1uMiB7XG4gICAgICAgICAgICB3aWR0aDogODAlO1xuICAgICAgICB9XG5cbiAgICAgICAgLmNvbHVtbjMge1xuICAgICAgICAgICAgd2lkdGg6IDIwJTtcbiAgICAgICAgfVxuXG4gICAgICAgIC5FVC1jb2x1bW4ge1xuICAgICAgICAgICAgd2lkdGg6IDUlO1xuICAgICAgICAgICAgbWFyZ2luLXRvcDogNXB4O1xuICAgICAgICB9XG5cbiAgICAgICAgLmRpdmlkZXItY29sdW1uIHtcbiAgICAgICAgICAgIG1hcmdpbi10b3A6IDE1cHg7XG4gICAgICAgICAgICB3aWR0aDogOTElO1xuXG4gICAgICAgICAgICAubWF0LWRpdmlkZXIge1xuICAgICAgICAgICAgICAgIGJvcmRlci10b3Atd2lkdGg6IDJweCAhaW1wb3J0YW50O1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgLnZhbHVlLWNscyB7XG4gICAgICAgICAgICBtYXJnaW4tdG9wOiAzcHg7XG4gICAgICAgICAgICBtYXJnaW4tYm90dG9tOiA1cHg7XG4gICAgICAgIH1cblxuICAgICAgICAub3BlcmF0b3ItY2xhc3Mge1xuICAgICAgICAgICAgd2lkdGg6IDI1cHg7XG4gICAgICAgICAgICBoZWlnaHQ6IDhweDtcbiAgICAgICAgICAgIGJvcmRlcjogMnB4IHNvbGlkICMwMDAwMDA7XG4gICAgICAgICAgICBwYWRkaW5nOiA1cHg7XG4gICAgICAgICAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gICAgICAgICAgICBib3JkZXItcmFkaXVzOiAyMiU7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjZmZmZmZmO1xuICAgICAgICAgICAgY29sb3I6ICMwMDAwMDA7XG4gICAgICAgICAgICBmb250LXdlaWdodDogNjAwO1xuICAgICAgICAgICAgZm9udC1zaXplOiAxMnB4O1xuICAgICAgICAgICAgY3Vyc29yOiBub25lO1xuICAgICAgICB9XG5cbiAgICAgICAgLmxpbmUtc2VnbWVudCB7XG4gICAgICAgICAgICB3aWR0aDogMnB4O1xuICAgICAgICAgICAgaGVpZ2h0OiA2cHg7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjMDAwO1xuICAgICAgICAgICAgbWFyZ2luLWxlZnQ6IDIwcHg7XG4gICAgICAgICAgICBmbG9hdDogbGVmdDtcbiAgICAgICAgICAgIGNvbG9yOiAjZmZmZmZmO1xuICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICB9XG5cbiAgICAgICAgLmFkZC1jbGFzcyB7XG4gICAgICAgICAgICBtYXJnaW4tdG9wOiA2cHg7XG4gICAgICAgICAgICBtYXJnaW4tYm90dG9tOiAwO1xuICAgICAgICAgICAgZm9udC1zaXplOiAxOHB4O1xuICAgICAgICB9XG5cbiAgICAgICAgLmxhc3Qge1xuICAgICAgICAgICAgZGlzcGxheTogbm9uZTtcbiAgICAgICAgfVxuXG4gICAgICAgIC50ZXh0LXNwYW4tZm9udCB7XG4gICAgICAgICAgICB3aWR0aDogMzQ1cHg7XG4gICAgICAgIH1cblxuICAgICAgICAuc2F1Zi10ZXh0IHtcbiAgICAgICAgICAgIG1hcmdpbi1sZWZ0OiAxOCU7XG4gICAgICAgICAgICBmb250LXNpemU6IDEycHg7XG4gICAgICAgIH1cblxuICAgICAgICAuc3dpdGNoIHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgICAgIHdpZHRoOiAzN3B4O1xuICAgICAgICAgICAgaGVpZ2h0OiAxOHB4O1xuICAgICAgICAgICAgbWFyZ2luLWxlZnQ6IGF1dG87XG4gICAgICAgIH1cblxuICAgICAgICAuc3dpdGNoIGlucHV0IHtcbiAgICAgICAgICAgIG9wYWNpdHk6IDA7XG4gICAgICAgICAgICB3aWR0aDogMDtcbiAgICAgICAgICAgIGhlaWdodDogMDtcbiAgICAgICAgfVxuXG4gICAgICAgIC5zbGlkZXIge1xuICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICAgICAgY3Vyc29yOiBwb2ludGVyO1xuICAgICAgICAgICAgdG9wOiAwO1xuICAgICAgICAgICAgbGVmdDogMDtcbiAgICAgICAgICAgIHJpZ2h0OiAwO1xuICAgICAgICAgICAgYm90dG9tOiAwO1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogdHJhbnNwYXJlbnQ7XG4gICAgICAgICAgICAtd2Via2l0LXRyYW5zaXRpb246IC40cztcbiAgICAgICAgICAgIHRyYW5zaXRpb246IC40cztcbiAgICAgICAgfVxuXG4gICAgICAgIC5zbGlkZXI6YmVmb3JlIHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgICAgIGNvbnRlbnQ6IFwiXCI7XG4gICAgICAgICAgICBoZWlnaHQ6IDE0cHg7XG4gICAgICAgICAgICB3aWR0aDogMTRweDtcbiAgICAgICAgICAgIGxlZnQ6IDFweDtcbiAgICAgICAgICAgIHRvcDogMXB4O1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogI2ZmZmZmZjtcbiAgICAgICAgICAgIC13ZWJraXQtdHJhbnNpdGlvbjogLjRzO1xuICAgICAgICAgICAgdHJhbnNpdGlvbjogLjRzO1xuICAgICAgICB9XG5cbiAgICAgICAgaW5wdXQ6Y2hlY2tlZCsuc2xpZGVyIHtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICNjYjMzM2I7XG4gICAgICAgIH1cblxuICAgICAgICBpbnB1dDpmb2N1cysuc2xpZGVyIHtcbiAgICAgICAgICAgIGJveC1zaGFkb3c6IDAgMCAxcHggIzAwNzdDODtcbiAgICAgICAgfVxuXG4gICAgICAgIGlucHV0OmNoZWNrZWQrLnNsaWRlcjpiZWZvcmUge1xuICAgICAgICAgICAgLXdlYmtpdC10cmFuc2Zvcm06IHRyYW5zbGF0ZVgoMTlweCk7XG4gICAgICAgICAgICAtbXMtdHJhbnNmb3JtOiB0cmFuc2xhdGVYKDE5cHgpO1xuICAgICAgICAgICAgdHJhbnNmb3JtOiB0cmFuc2xhdGVYKDE5cHgpO1xuICAgICAgICB9XG5cbiAgICAgICAgLyogUm91bmRlZCBzbGlkZXJzICovXG4gICAgICAgIC5zbGlkZXIucm91bmQge1xuICAgICAgICAgICAgYm9yZGVyLXJhZGl1czogMzRweDtcbiAgICAgICAgICAgIGJvcmRlcjogMXB4IHNvbGlkICNmZmZmZmY7XG4gICAgICAgIH1cblxuICAgICAgICAuc2xpZGVyLnJvdW5kOmJlZm9yZSB7XG4gICAgICAgICAgICBib3JkZXItcmFkaXVzOiA1MCU7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICA6Om5nLWRlZXAgI2dyb3VwaW5nTGlzdCxcbiAgICA6Om5nLWRlZXAgI2NoYXJhY3Rlckxpc3RJZCB7XG4gICAgICAgIC5tYXQtbGlzdC1vcHRpb25bYXJpYS1zZWxlY3RlZD1cInRydWVcIl0gLmdyb3VwLWxpc3Qge1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogI2NjY2NjYztcbiAgICAgICAgICAgIGNvbG9yOiAjMDAwMDAwO1xuICAgICAgICB9XG5cbiAgICAgICAgLm1hdC1saXN0LW9wdGlvblthcmlhLXNlbGVjdGVkPVwidHJ1ZVwiXSAuc2F1Zi1saXN0IHtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICNjY2NjY2MgIWltcG9ydGFudDtcbiAgICAgICAgICAgIGNvbG9yOiAjMDAwMDAwO1xuICAgICAgICB9XG5cbiAgICAgICAgLm1hdC1saXN0LW9wdGlvblthcmlhLXNlbGVjdGVkPVwidHJ1ZVwiXSAuZ3JvdXAtbGlzdC1ncmVlbiB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjY2NjY2NjO1xuICAgICAgICAgICAgY29sb3I6ICMwMDAwMDA7XG4gICAgICAgIH1cblxuICAgICAgICAubWF0LWxpc3Qtb3B0aW9uW2FyaWEtc2VsZWN0ZWQ9XCJ0cnVlXCJdIC5zZWxlY3QtbGlzdC1kZWxheSB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjY2NjY2NjO1xuICAgICAgICAgICAgY29sb3I6ICMwMDAwMDA7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICBcblxuICAgIDo6bmctZGVlcCAjdnVlRGV0YWlsTGlzdCB7XG4gICAgICAgIC5tYXQtbGlzdC1vcHRpb25bYXJpYS1zZWxlY3RlZD1cInRydWVcIl0gLmdyb3VwLWxpc3Qge1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogI2NjY2NjYztcbiAgICAgICAgICAgIGNvbG9yOiAjMDAwMDAwO1xuICAgICAgICB9XG5cbiAgICAgICAgLm1hdC1saXN0LW9wdGlvblthcmlhLXNlbGVjdGVkPVwidHJ1ZVwiXSAuZ3JvdXAtbGlzdC1ncmVlbiB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjY2NjY2NjO1xuICAgICAgICAgICAgY29sb3I6ICMwMDAwMDA7XG4gICAgICAgIH1cblxuICAgICAgICAubWF0LWxpc3Qtb3B0aW9uW2FyaWEtc2VsZWN0ZWQ9XCJ0cnVlXCJdIC5zZWxlY3QtbGlzdC1kZWxheSB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjY2NjY2NjO1xuICAgICAgICAgICAgY29sb3I6ICMwMDAwMDA7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICAuc2VsZWN0LWdyb3VwLWxpc3Q6aG92ZXIge1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjY2NjY2NjICFpbXBvcnRhbnQ7XG4gICAgICAgIGNvbG9yOiAjMDAwMDAwICFpbXBvcnRhbnQ7XG4gICAgfVxuXG5cbiAgICBcblxuICAgIC5ncm91cGluZy1yYWRpby1kYXRlIHtcbiAgICAgICAgb3ZlcmZsb3cteTogYXV0bztcbiAgICAgICAgaGVpZ2h0OiBjYWxjKDEwMHZoIC0gMTE2cHgpO1xuXG4gICAgICAgIC5kYXRlLXNlY3Rpb24ge1xuICAgICAgICAgICAgcGFkZGluZzogNXB4IDBweCAwcHggMTVweDtcbiAgICAgICAgICAgIGhlaWdodDogY2FsYygoMTAwdmggLSAxMzBweCkvMik7XG4gICAgICAgIH1cblxuICAgICAgICA6Om5nLWRlZXAgLm1hdC1jaGVja2JveCB7XG4gICAgICAgICAgICBtYXJnaW46IDVweDtcblxuICAgICAgICAgICAgLm1hdC1jaGVja2JveC1mcmFtZSB7XG4gICAgICAgICAgICAgICAgLy8gYm9yZGVyLWNvbG9yOiAjMDAwMDAwO1xuICAgICAgICAgICAgICAgIG1hcmdpbjogLTFweDtcbiAgICAgICAgICAgICAgICBib3JkZXI6IDFweCBzb2xpZCAjY2NjY2NjO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAubWF0LWNoZWNrYm94LWJhY2tncm91bmQge1xuICAgICAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6IHdoaXRlO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAubWF0LWNoZWNrYm94LWNoZWNrbWFyay1wYXRoIHtcbiAgICAgICAgICAgICAgICBzdHJva2U6ICMwMDc3YzggIWltcG9ydGFudDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIGlucHV0W3R5cGU9XCJudW1iZXJcIl0ge1xuICAgICAgICAgICAgd2lkdGg6IDYwJTtcbiAgICAgICAgICAgIG1hcmdpbi1sZWZ0OiAxNSU7XG4gICAgICAgICAgICBtYXJnaW4tdG9wOiA4cHg7XG4gICAgICAgICAgICBoZWlnaHQ6IDI1cHg7XG4gICAgICAgICAgICBwYWRkaW5nLWxlZnQ6IDVweDtcbiAgICAgICAgfVxuXG4gICAgICAgIC5hbGwtZ3JvdXBpbmcge1xuICAgICAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIC5wb3B1bGF0aW9uLWxpc3QtaXRlbSB7XG4gICAgICAgIGJvcmRlcjogMHB4O1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjZmZmZmZmO1xuICAgICAgICBjdXJzb3I6IHBvaW50ZXI7XG4gICAgICAgIHRleHQtdHJhbnNmb3JtOiB1cHBlcmNhc2U7XG4gICAgfVxuXG4gICAgLm1hcmdpbi0xMCB7XG4gICAgICAgIG1hcmdpbi10b3A6IDEwcHg7XG4gICAgfVxuXG4gICAgLnRpY2staW1nIHtcbiAgICAgICAgZmxvYXQ6IHJpZ2h0O1xuICAgICAgICBtYXJnaW4tdG9wOiA1cHg7XG4gICAgICAgIG1hcmdpbi1sZWZ0OiAxMHB4O1xuICAgICAgICB3aWR0aDogMTVweDtcbiAgICAgICAgaGVpZ2h0OiAxNXB4O1xuICAgIH1cblxuICAgIC5wb3B1bGF0aW9uLWxpc3Qge1xuICAgICAgICBtaW4td2lkdGg6IDE4MHB4O1xuICAgICAgICBtYXgtaGVpZ2h0OiAyNTBweDtcbiAgICB9XG5cbiAgICAuZHJvcGRvd24tYWxpZ25tZW50IHtcbiAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuXG4gICAgICAgIC51cC1kb3duIHtcbiAgICAgICAgICAgIGZsb2F0OiByaWdodDtcbiAgICAgICAgICAgIG1hcmdpbi10b3A6IDdweDtcbiAgICAgICAgICAgIHdpZHRoOiAxNXB4O1xuICAgICAgICAgICAgaGVpZ2h0OiAxNXB4O1xuICAgICAgICB9XG5cbiAgICAgICAgLnBvcHVsYXRpb24tbWVudSB7XG4gICAgICAgICAgICBib3JkZXItYm90dG9tOiAxcHggc29saWQgI2FhYWFhYTtcbiAgICAgICAgICAgIGhlaWdodDogMzBweDtcbiAgICAgICAgICAgIGN1cnNvcjogcG9pbnRlcjtcbiAgICAgICAgfVxuXG4gICAgICAgIC5kcm9wZG93bi1hbGlnbm1lbnQ6bnRoLWNoaWxkKDEpLFxuICAgICAgICAuZHJvcGRvd24tYWxpZ25tZW50Om50aC1jaGlsZCgyKSB7XG4gICAgICAgICAgICBtYXJnaW4tdG9wOiAwO1xuICAgICAgICB9XG5cbiAgICAgICAgLnRleHQtc3BhbiB7XG4gICAgICAgICAgICBmb250LWZhbWlseTogUm9ib3RvLCBcIkhlbHZldGljYSBOZXVlXCIsIHNhbnMtc2VyaWY7XG4gICAgICAgICAgICBmb250LXNpemU6IDExcHg7XG4gICAgICAgICAgICBmb250LXdlaWdodDogNDAwO1xuICAgICAgICAgICAgbGluZS1oZWlnaHQ6IDAgIWltcG9ydGFudDtcbiAgICAgICAgICAgIC8vIG1hcmdpbi1sZWZ0OiAtNHB4O1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgLnRleHRhcmVhLWFsaWdubWVudCB7XG4gICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICBwYWRkaW5nOiAwcHggMHB4IDBweCAyMHB4O1xuICAgICAgICBoZWlnaHQ6IDQwcHg7XG4gICAgICAgIHdpZHRoOiA5MCU7XG5cbiAgICAgICAgaW5wdXRbdHlwZT1cInRleHRcIl0ge1xuICAgICAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICAgICAgICBib3JkZXItYm90dG9tOiAxcHggc29saWQgI2FhYWFhYTtcbiAgICAgICAgfVxuXG4gICAgICAgIGlucHV0W3R5cGU9XCJ0ZXh0XCJdOmZvY3VzIHtcbiAgICAgICAgICAgIG91dGxpbmU6IG5vbmUgIWltcG9ydGFudDtcbiAgICAgICAgICAgIGJvcmRlci1ib3R0b206IDFweCBzb2xpZCAjYWFhYWFhO1xuICAgICAgICB9XG5cbiAgICAgICAgLnRleHQtc3BhbiB7XG4gICAgICAgICAgICBmb250LWZhbWlseTogUm9ib3RvLCBcIkhlbHZldGljYSBOZXVlXCIsIHNhbnMtc2VyaWY7XG4gICAgICAgICAgICBmb250LXNpemU6IDExcHg7XG4gICAgICAgICAgICBmb250LXdlaWdodDogNDAwO1xuICAgICAgICAgICAgbGluZS1oZWlnaHQ6IDAgIWltcG9ydGFudDtcbiAgICAgICAgICAgIC8vIG1hcmdpbi1sZWZ0OiAtNHB4O1xuICAgICAgICB9XG4gICAgfVxuXG5cbiAgICAuY3VzdG9tLWRlbGF5LXNjcm9sbC1iYXIge1xuICAgICAgICAvLyBoZWlnaHQ6NzB2aDtcbiAgICAgICAgaGVpZ2h0OiBjYWxjKDEwMCUgLSA2NXB4KTtcbiAgICAgICAgb3ZlcmZsb3cteTogc2Nyb2xsO1xuICAgICAgICBvdmVyZmxvdy14OiBoaWRkZW47XG4gICAgICAgIG1hcmdpbi1yaWdodDogNXB4O1xuICAgICAgICBtYXJnaW4tdG9wOiA1cHg7XG4gICAgfVxuXG4gICAgLmN1c3RvbS1kZWxheS1zY3JvbGwtYmFyOjotd2Via2l0LXNjcm9sbGJhciB7XG4gICAgICAgIHdpZHRoOiAxMHB4O1xuICAgIH1cblxuICAgIC5jdXN0b20tZGVsYXktc2Nyb2xsLWJhcjo6LXdlYmtpdC1zY3JvbGxiYXItdGh1bWIge1xuICAgICAgICAvLyBiYWNrZ3JvdW5kOiByZ2JhKDAsMCwwLC4yNik7XG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6ICMyZDQ1NTc7XG4gICAgICAgIGJvcmRlci1yYWRpdXM6IDVweDtcbiAgICB9XG5cbiAgICAuaXRlbS1kaXNhYmxlIHtcbiAgICAgICAgY3Vyc29yOiBub3QtYWxsb3dlZCAhaW1wb3J0YW50O1xuICAgICAgICBwb2ludGVyLWV2ZW50czogbm9uZTtcbiAgICB9XG5cbiAgICAudnVlLXNlY3Rpb24tY2hlY2sge1xuICAgICAgICB3aWR0aDogODklO1xuICAgICAgICBtYXJnaW4tdG9wOiA1cHg7XG4gICAgICAgIG1hcmdpbi1sZWZ0OiAyMHB4O1xuICAgICAgICBmb250LWZhbWlseTogUm9ib3RvLCBcIkhlbHZldGljYSBOZXVlXCIsIHNhbnMtc2VyaWY7XG4gICAgICAgIGZvbnQtc2l6ZTogMTFweDtcbiAgICAgICAgZm9udC13ZWlnaHQ6IDQwMDtcblxuICAgICAgICA6Om5nLWRlZXAgLm1hdC1jaGVja2JveCB7XG4gICAgICAgICAgICBtYXJnaW46IDVweDtcblxuICAgICAgICAgICAgLm1hdC1jaGVja2JveC1mcmFtZSB7XG4gICAgICAgICAgICAgICAgLy8gYm9yZGVyLWNvbG9yOiAjMDAwMDAwO1xuICAgICAgICAgICAgICAgIG1hcmdpbjogLTFweDtcbiAgICAgICAgICAgICAgICBib3JkZXI6IDFweCBzb2xpZCAjY2NjY2NjO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAubWF0LWNoZWNrYm94LWJhY2tncm91bmQge1xuICAgICAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6IHdoaXRlO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAubWF0LWNoZWNrYm94LWNoZWNrbWFyay1wYXRoIHtcbiAgICAgICAgICAgICAgICBzdHJva2U6ICMwMDc3YzggIWltcG9ydGFudDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgIH1cblxuICAgIC52dWUtbWF0LWxpc3QtZGlzYWJsZWQge1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjZWVlZWVlICFpbXBvcnRhbnQ7XG4gICAgICAgIGN1cnNvcjogbm90LWFsbG93ZWQgIWltcG9ydGFudDtcbiAgICAgICAgcG9pbnRlci1ldmVudHM6IG5vbmU7XG4gICAgICAgIGNvbG9yOiAjYWFhYWFhICFpbXBvcnRhbnQ7XG4gICAgfVxuXG4gICAgLmJ1dHRvbi1zYXZlIHtcbiAgICAgICAgd2lkdGg6IDEwMHB4O1xuICAgICAgICBoZWlnaHQ6IDMwcHggIWltcG9ydGFudDtcbiAgICAgICAgZm9udC1mYW1pbHk6IFJvYm90bywgXCJIZWx2ZXRpY2EgTmV1ZVwiLCBzYW5zLXNlcmlmO1xuICAgICAgICBmb250LXNpemU6IDEzcHg7XG4gICAgICAgIGZvbnQtd2VpZ2h0OiA1MDA7XG4gICAgICAgIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogI0ZGQ0MzMztcbiAgICAgICAgYm9yZGVyLXJhZGl1czogM3B4O1xuICAgICAgICBmbG9hdDogcmlnaHQ7XG4gICAgICAgIC8vIGxpbmUtaGVpZ2h0OiAzNnB4ICFpbXBvcnRhbnQ7XG4gICAgfVxuXG4gICAgLnRhYmxlLXN0eWxlIHtcbiAgICAgICAgb3ZlcmZsb3cteTogc2Nyb2xsO1xuICAgICAgICBvdmVyZmxvdy14OiBoaWRkZW47XG4gICAgICAgIG1hcmdpbi1yaWdodDogNXB4O1xuICAgIH1cblxuICAgIC50YWJsZS1zaXplLXdpdGgtY29uZCB7XG4gICAgICAgIG1heC1oZWlnaHQ6IDE3MHB4ICFpbXBvcnRhbnQ7XG4gICAgICAgIG92ZXJmbG93LXk6IGF1dG87XG4gICAgfVxuXG4gICAgLnRhYmxlLXNpemUtd2l0aG91dC1jb25kIHtcbiAgICAgICAgbWF4LWhlaWdodDogNTAwcHggIWltcG9ydGFudDtcbiAgICAgICAgb3ZlcmZsb3cteTogYXV0bztcbiAgICB9XG5cbiAgICAudGFibGUtc3R5bGU6Oi13ZWJraXQtc2Nyb2xsYmFyIHtcbiAgICAgICAgd2lkdGg6IDEwcHg7XG4gICAgfVxuXG4gICAgLnRhYmxlLXN0eWxlOjotd2Via2l0LXNjcm9sbGJhci10aHVtYiB7XG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6ICMyZDQ1NTc7XG4gICAgICAgIGJvcmRlci1yYWRpdXM6IDVweDtcbiAgICB9XG5cbiAgICBcblxuICAgIC5tYXRlci1pY29ucyB7XG4gICAgICAgIG1hcmdpbi1sZWZ0OiAtOHB4O1xuICAgICAgICBtYXJnaW4tdG9wOiAtN3B4O1xuICAgICAgICBmb250LXNpemU6IDQwcHggIWltcG9ydGFudDtcbiAgICB9XG5cbiAgICAuc2VsZWN0ZWQtbGlzdCB7XG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6ICNjY2NjY2M7XG4gICAgfVxufVxuLmNscy1nZmNDb250YWluZXJ7XG4gICAgZGlzcGxheTogZmxleDtcbiAgICAgaGVpZ2h0OiA1NTBweCAhaW1wb3J0YW50O1xuICAgICAgYm9yZGVyLXRvcDogMXB4IHNvbGlkICNjY2M7XG4gICAgICAgYm9yZGVyLWJvdHRvbTogMXB4IHNvbGlkICNjY2M7XG4gICAgIG1hcmdpbi10b3A6IDEwcHg7XG59IiwiLmdmYyB7XG4gIC8qIHRvIGNoYW5nZSBzZWxlY3RlZCBpdGVtIGNvbG9yIGluIHRoZSBzZWxlY3QgbGlzdCAqL1xufVxuLmdmYyAuZXhhbXBsZS1yYWRpby1ncm91cCB7XG4gIGRpc3BsYXk6IGZsZXg7XG4gIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XG4gIG1hcmdpbjogMTVweCAwO1xufVxuLmdmYyAuZXhhbXBsZS1yYWRpby1idXR0b24ge1xuICBtYXJnaW46IDVweDtcbn1cbi5nZmMgLmRpYWxvZy10aXRsZSB7XG4gIHBhZGRpbmc6IDBweCAxNXB4IDBweCAwcHg7XG4gIGNvbG9yOiAjMDAwMDAwO1xuICBmb250LWZhbWlseTogUm9ib3RvLCBcIkhlbHZldGljYSBOZXVlXCIsIHNhbnMtc2VyaWY7XG4gIGZvbnQtc2l6ZTogMTVweDtcbiAgZm9udC13ZWlnaHQ6IDYwMDtcbiAgbGluZS1oZWlnaHQ6IDE3cHg7XG4gIHdpZHRoOiAxNDZweDtcbiAgdGV4dC1hbGlnbjogbGVmdDtcbn1cbi5nZmMgLnJhZGlvLWZvbnQge1xuICBwYWRkaW5nOiAwcHggMTVweCAwcHggMjVweDtcbiAgbWFyZ2luLXRvcDogMTBweDtcbiAgY29sb3I6ICMwMDAwMDA7XG4gIGZvbnQtZmFtaWx5OiBSb2JvdG8sIFwiSGVsdmV0aWNhIE5ldWVcIiwgc2Fucy1zZXJpZjtcbiAgZm9udC1zaXplOiAxM3B4O1xuICBmb250LXdlaWdodDogNDAwO1xuICBsaW5lLWhlaWdodDogMTdweDtcbiAgdGV4dC1hbGlnbjogbGVmdDtcbn1cbi5nZmMgLmJ1dHRvbi1zdHlsZSB7XG4gIHdpZHRoOiA4MnB4O1xuICBoZWlnaHQ6IDM2cHg7XG4gIGZvbnQtZmFtaWx5OiBSb2JvdG8sIFwiSGVsdmV0aWNhIE5ldWVcIiwgc2Fucy1zZXJpZjtcbiAgZm9udC1zaXplOiAxM3B4O1xuICBmb250LXdlaWdodDogNTAwO1xuICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gIGJvcmRlcjogMHB4IHNvbGlkO1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjRkZDQzMzO1xuICBwYWRkaW5nOiAwICFpbXBvcnRhbnQ7XG59XG4uZ2ZjICNoZWFkZXIge1xuICBtaW4taGVpZ2h0OiA5MCU7XG59XG4uZ2ZjICNoZWFkZXItY29udGVudCB7XG4gIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgYm90dG9tOiAwO1xuICBtYXJnaW4tbGVmdDogM3B4O1xufVxuLmdmYyAuaXRlbSB7XG4gIGhlaWdodDogY2FsYygxMDB2aCAtIDM1cHgpO1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjZmZmZmZmO1xufVxuLmdmYyBkaXYjY29udGFpbmVyIHtcbiAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAvKiBuZWVkZWQgZm9yIGZvb3RlciBwb3NpdGlvbmluZyovXG4gIGhlaWdodDogYXV0byAhaW1wb3J0YW50O1xuICAvKiByZWFsIGJyb3dzZXJzICovXG4gIG1pbi1oZWlnaHQ6IDEwMCU7XG4gIC8qIHJlYWwgYnJvd3NlcnMgKi9cbiAgd2lkdGg6IDQyMnB4O1xufVxuLmdmYyBkaXYjaGVhZGVyIHtcbiAgcGFkZGluZzogMWVtO1xuICBiYWNrZ3JvdW5kOiAjZWZlO1xufVxuLmdmYyAuZm9vdGVyIHtcbiAgcG9zaXRpb246IGZpeGVkO1xuICB3aWR0aDogMzAlO1xuICBib3R0b206IDA7XG4gIC8qIHN0aWNrIHRvIGJvdHRvbSAqL1xuICBiYWNrZ3JvdW5kOiBncmVlbjtcbn1cbi5nZmMgLmNvbnRhaW5lciB7XG4gIGhlaWdodDogMTAwJTtcbiAgZGlzcGxheTogZmxleDtcbn1cbi5nZmMgLmNvbHVtbi1wYW5lbDEge1xuICBoZWlnaHQ6IDEwMCU7XG4gIG1pbi13aWR0aDogNDAwcHg7XG4gIGJhY2tncm91bmQtY29sb3I6IHdoaXRlO1xufVxuLmdmYyAuY29sdW1uLXBhbmVsNCB7XG4gIG1pbi13aWR0aDogMzlweDtcbn1cbi5nZmMgLmNvbHVtbi1wYW5lbDIge1xuICBoZWlnaHQ6IDEwMCU7XG4gIG1heC13aWR0aDogNTMwcHg7XG4gIGJhY2tncm91bmQtY29sb3I6IHdoaXRlO1xufVxuLmdmYyAuY29sdW1uLXBhbmVsMyB7XG4gIGhlaWdodDogMTAwJTtcbiAgd2lkdGg6IDEwMCU7XG4gIGJhY2tncm91bmQ6ICMyRDQ1NTc7XG4gIG92ZXJmbG93OiBoaWRkZW47XG59XG4uZ2ZjIC5tYXhpbXVtLWltZyB7XG4gIHdpZHRoOiAxNHB4O1xuICBoZWlnaHQ6IDE0cHg7XG4gIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgdG9wOiA0MHB4O1xuICBmbG9hdDogcmlnaHQ7XG4gIGJhY2tncm91bmQ6ICNmZmZmZmY7XG4gIGN1cnNvcjogcG9pbnRlcjtcbn1cbi5nZmMgLnBhbmVsLTEge1xuICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gIG92ZXJmbG93LXk6IGF1dG87XG59XG4uZ2ZjIC5wYW5lbC0xIC5tYXQtbGlzdC1pdGVtIHtcbiAgY3Vyc29yOiBwb2ludGVyICFpbXBvcnRhbnQ7XG59XG4uZ2ZjIC5jbG9zZSB7XG4gIGZvbnQtc2l6ZTogMThweDtcbiAgcG9zaXRpb246IGFic29sdXRlO1xuICB0b3A6IDM4cHg7XG4gIHJpZ2h0OiAwO1xuICBjdXJzb3I6IHBvaW50ZXI7XG59XG4uZ2ZjIC5mb290ZXItcGFuZWwxIHtcbiAgd2lkdGg6IDQwMHB4O1xuICBib3R0b206IDA7XG4gIC8qIHN0aWNrIHRvIGJvdHRvbSAqL1xuICBoZWlnaHQ6IDM4cHg7XG4gIGJhY2tncm91bmQ6ICMwMDAwMDA7XG59XG4uZ2ZjIC5mb290ZXItcGFuZWw0IHtcbiAgd2lkdGg6IDM5cHg7XG4gIGJvdHRvbTogMDtcbiAgLyogc3RpY2sgdG8gYm90dG9tICovXG4gIGJhY2tncm91bmQ6ICMwMDAwMDA7XG4gIGhlaWdodDogMzhweDtcbn1cbi5nZmMgLmZvb3Rlci1wYW5lbDIge1xuICB3aWR0aDogNTMwcHg7XG4gIGJvdHRvbTogMDtcbiAgLyogc3RpY2sgdG8gYm90dG9tICovXG4gIGJhY2tncm91bmQ6ICMwMDAwMDA7XG4gIGhlaWdodDogMzhweDtcbn1cbi5nZmMgLmZvb3Rlci1wYW5lbDMge1xuICB3aWR0aDogOTklO1xuICBib3R0b206IDA7XG4gIGJhY2tncm91bmQ6ICMwMDAwMDA7XG4gIGhlaWdodDogMzhweDtcbn1cbi5nZmMgLmFycm93X2RldGFpbCB7XG4gIHBhZGRpbmc6IDE5cHggMHB4IDBweCA0cHg7XG4gIGJhY2tncm91bmQtY29sb3I6ICNiYmJjYmM7XG59XG4uZ2ZjIC5tYWluIHtcbiAgYWxpZ24tc2VsZjogY2VudGVyO1xuICB3aWR0aDogMzlweDtcbiAgaGVpZ2h0OiBjYWxjKDEwMCUgLSAxMHB4KSAhaW1wb3J0YW50O1xuICBkaXNwbGF5OiBmbGV4O1xuICBmbGV4LXdyYXA6IHdyYXA7XG4gIGFsaWduLWNvbnRlbnQ6IGNlbnRlcjtcbiAgYmFja2dyb3VuZC1jb2xvcjogI0U5RUVGMDtcbn1cbi5nZmMgLm1haW4gZGl2IHtcbiAgd2lkdGg6IDQ5cHg7XG4gIGhlaWdodDogNDBweDtcbn1cbi5nZmMgLmFycm93IHtcbiAgYm9yZGVyOiAxcHggc29saWQgI2MzYzNjMztcbiAgYmFja2dyb3VuZC1jb2xvcjogd2hpdGU7XG4gIHBhZGRpbmc6IDE5cHggMHB4IDBweCA3cHg7XG59XG4uZ2ZjIC5jZW50ZXIta2V5IHtcbiAgd2lkdGg6IDI2cHg7XG4gIHBvc2l0aW9uOiBzdGlja3kgIWltcG9ydGFudDtcbiAgcmlnaHQ6IDA7XG4gIGJvdHRvbTogNDglO1xuICBmbG9hdDogcmlnaHQ7XG4gIHBhZGRpbmc6IDJweDtcbn1cbi5nZmMgLmNlbnRlci1rZXkgLmFycm93IHtcbiAgYm9yZGVyOiAxcHggc29saWQgI2MzYzNjMztcbiAgYmFja2dyb3VuZC1jb2xvcjogd2hpdGU7XG4gIHBhZGRpbmc6IDE1cHggMTBweCAwcHggMHB4O1xufVxuLmdmYyAubWF0ZXItaWNvbnMge1xuICBtYXJnaW4tbGVmdDogLThweDtcbiAgbWFyZ2luLXRvcDogLTdweDtcbiAgZm9udC1zaXplOiA0MHB4ICFpbXBvcnRhbnQ7XG59XG4uZ2ZjIC5kZWxheS1zcGFuIHtcbiAgZm9udC1mYW1pbHk6IFJvYm90bywgXCJIZWx2ZXRpY2EgTmV1ZVwiLCBzYW5zLXNlcmlmO1xuICBmb250LXNpemU6IDE0cHg7XG4gIGZvbnQtd2VpZ2h0OiA1MDA7XG4gIGxpbmUtaGVpZ2h0OiAxN3B4O1xuICBtYXJnaW4tbGVmdDogMHB4O1xufVxuLmdmYyAuZGVsYXktc3Bhbi1wZXJpb2Qge1xuICBmb250LWZhbWlseTogUm9ib3RvLCBcIkhlbHZldGljYSBOZXVlXCIsIHNhbnMtc2VyaWY7XG4gIGZvbnQtc2l6ZTogMTNweDtcbiAgZm9udC13ZWlnaHQ6IDUwMDtcbiAgbGluZS1oZWlnaHQ6IDE3cHg7XG4gIG1hcmdpbi1sZWZ0OiAtM3B4O1xufVxuLmdmYyAubGFiZWwtc3BhbiB7XG4gIGZvbnQtZmFtaWx5OiBSb2JvdG8sIFwiSGVsdmV0aWNhIE5ldWVcIiwgc2Fucy1zZXJpZjtcbiAgZm9udC1zaXplOiAxMXB4O1xuICBmb250LXdlaWdodDogNDAwO1xuICBsaW5lLWhlaWdodDogMjhweDtcbiAgY29sb3I6ICNiYmJjYmM7XG59XG4uZ2ZjIC50ZXh0LXNwYW4ge1xuICBmb250LWZhbWlseTogUm9ib3RvLCBcIkhlbHZldGljYSBOZXVlXCIsIHNhbnMtc2VyaWY7XG4gIGZvbnQtc2l6ZTogMTFweDtcbiAgZm9udC13ZWlnaHQ6IDQwMDtcbiAgbGluZS1oZWlnaHQ6IDI4cHg7XG59XG4uZ2ZjIC50ZXh0LXNwYW4td28tbGluZS1oZWlnaHQge1xuICBmb250LWZhbWlseTogUm9ib3RvLCBcIkhlbHZldGljYSBOZXVlXCIsIHNhbnMtc2VyaWY7XG4gIGZvbnQtc2l6ZTogMTFweDtcbiAgZm9udC13ZWlnaHQ6IDQwMDtcbn1cbi5nZmMgLnRleHQtc3Bhbi1mb250IHtcbiAgZm9udC1mYW1pbHk6IFJvYm90bywgXCJIZWx2ZXRpY2EgTmV1ZVwiLCBzYW5zLXNlcmlmO1xuICBmb250LXNpemU6IDExcHg7XG4gIGZvbnQtd2VpZ2h0OiA0MDA7XG4gIGxpbmUtaGVpZ2h0OiAxM3B4O1xufVxuLmdmYyAuYmFyLWNoYXJ0LWljb24tcm90YXRlIHtcbiAgLXdlYmtpdC10cmFuc2Zvcm06IHJvdGF0ZSg0NWRlZyk7XG4gIC1tb3otdHJhbnNmb3JtOiByb3RhdGUoNDVkZWcpO1xuICAtbXMtdHJhbnNmb3JtOiByb3RhdGUoNDVkZWcpO1xuICAtby10cmFuc2Zvcm06IHJvdGF0ZSg0NWRlZyk7XG4gIHRyYW5zZm9ybTogcm90YXRlKDkwZGVnKTtcbiAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICBtYXJnaW4tbGVmdDogNXB4O1xuICBtYXJnaW4tdG9wOiA4cHg7XG59XG4uZ2ZjIC50aXRsZS1zcGFuIHtcbiAgZm9udC1mYW1pbHk6IFJvYm90bywgXCJIZWx2ZXRpY2EgTmV1ZVwiLCBzYW5zLXNlcmlmO1xuICBmb250LXNpemU6IDE0cHg7XG4gIGZvbnQtd2VpZ2h0OiA1MDA7XG4gIGxpbmUtaGVpZ2h0OiAxN3B4O1xufVxuLmdmYyAudGl0bGUtc3Bhbi1BYmJyIHtcbiAgZm9udC1mYW1pbHk6IFJvYm90bywgXCJIZWx2ZXRpY2EgTmV1ZVwiLCBzYW5zLXNlcmlmO1xuICBmb250LXNpemU6IDE0cHg7XG4gIGZvbnQtd2VpZ2h0OiA2MDA7XG4gIGxpbmUtaGVpZ2h0OiAxN3B4O1xuICBwYWRkaW5nOiAxMHB4IDAgMTBweCAwO1xufVxuLmdmYyAuYnV0dG9uLXBhbmVsMiB7XG4gIHdpZHRoOiA3NXB4O1xuICBoZWlnaHQ6IDM2cHggIWltcG9ydGFudDtcbiAgZm9udC1mYW1pbHk6IFJvYm90bywgXCJIZWx2ZXRpY2EgTmV1ZVwiLCBzYW5zLXNlcmlmO1xuICBmb250LXNpemU6IDEzcHg7XG4gIGZvbnQtd2VpZ2h0OiA1MDA7XG4gIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgYm9yZGVyOiAwcHggc29saWQ7XG4gIGJhY2tncm91bmQtY29sb3I6ICNGRkNDMzM7XG4gIHBhZGRpbmc6IDAgIWltcG9ydGFudDtcbiAgYm9yZGVyLXJhZGl1czogMHB4O1xuICBsaW5lLWhlaWdodDogMzZweCAhaW1wb3J0YW50O1xufVxuLmdmYyA6Om5nLWRlZXAgLm1hdC1zZWxlY3Qge1xuICBmb250LWZhbWlseTogUm9ib3RvLCBcIkhlbHZldGljYSBOZXVlXCIsIHNhbnMtc2VyaWY7XG4gIGZvbnQtc2l6ZTogMTFweDtcbiAgZm9udC13ZWlnaHQ6IDQwMDtcbn1cbi5nZmMgOjpuZy1kZWVwIC5tYXQtc2VsZWN0OmZvY3VzOm5vdCgubWF0LXNlbGVjdC1kaXNhYmxlZCkubWF0LXByaW1hcnkgLm1hdC1zZWxlY3QtYXJyb3cge1xuICBib3JkZXItbGVmdDogMTVweCBzb2xpZCB0cmFuc3BhcmVudCAhaW1wb3J0YW50O1xuICBib3JkZXItcmlnaHQ6IG5vbmUgIWltcG9ydGFudDtcbiAgYm9yZGVyLXRvcDogMTVweCBzb2xpZCB0cmFuc3BhcmVudCAhaW1wb3J0YW50O1xuICBib3JkZXItaW1hZ2Utc291cmNlOiB1cmwoXCIuLi8uLi8uLi9hc3NldHMvaW1hZ2VzL0Rvd24uc3ZnXCIpICFpbXBvcnRhbnQ7XG4gIGJvcmRlci1pbWFnZS1yZXBlYXQ6IHN0cmV0Y2ggIWltcG9ydGFudDtcbn1cbi5nZmMgOjpuZy1kZWVwIC5tYXQtc2VsZWN0LXBhbmVsIHtcbiAgYm94LXNoYWRvdzogMHB4IDJweCA0cHggLTFweCByZ2JhKDAsIDAsIDAsIDAuMiksIDBweCA0cHggNXB4IDBweCByZ2JhKDAsIDAsIDAsIDAuMTQpLCAwcHggMXB4IDEwcHggMHB4IHJnYmEoMCwgMCwgMCwgMC4xMik7XG4gIG1hcmdpbi10b3A6IDM1cHg7XG4gIG1heC1oZWlnaHQ6IDI4MHB4ICFpbXBvcnRhbnQ7XG59XG4uZ2ZjIDo6bmctZGVlcCAubWF0LXNlbGVjdC10cmlnZ2VyIHtcbiAgY29sb3I6ICM2Mzk2MUM7XG4gIGJvcmRlci1pbWFnZS1zb3VyY2U6IHVybChcIi4uLy4uLy4uL2Fzc2V0cy9pbWFnZXMvY2xvc2Uuc3ZnXCIpICFpbXBvcnRhbnQ7XG59XG4uZ2ZjIC5tYXQtcHJpbWFyeSAubWF0LW9wdGlvbi5tYXQtc2VsZWN0ZWQ6bm90KC5tYXQtb3B0aW9uLWRpc2FibGVkKSB7XG4gIGNvbG9yOiAjNjM5NjFDO1xufVxuLmdmYyA6Om5nLWRlZXAubWF0LXBzZXVkby1jaGVja2JveCB7XG4gIGRpc3BsYXk6IG5vbmUgIWltcG9ydGFudDtcbn1cbi5nZmMgLmN1c3RvbS1zY3JvbGwtYmFyIHtcbiAgaGVpZ2h0OiBjYWxjKDEwMCUgLSAxMTBweCk7XG4gIG92ZXJmbG93LXk6IHNjcm9sbDtcbiAgb3ZlcmZsb3cteDogaGlkZGVuO1xuICBtYXJnaW4tcmlnaHQ6IDVweDtcbn1cbi5nZmMgLmN1c3RvbS1zY3JvbGwtYmFyOjotd2Via2l0LXNjcm9sbGJhciB7XG4gIHdpZHRoOiAxMHB4O1xufVxuLmdmYyAuY3VzdG9tLXNjcm9sbC1iYXI6Oi13ZWJraXQtc2Nyb2xsYmFyLXRodW1iIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogIzJkNDU1NztcbiAgYm9yZGVyLXJhZGl1czogNXB4O1xufVxuLmdmYyAucm93IHtcbiAgZGlzcGxheTogaW5saW5lLWZsZXg7XG4gIHdpZHRoOiAxMDAlO1xufVxuLmdmYyAucmVxLWFjdGl2ZSB7XG4gIGJhY2tncm91bmQ6ICNmZmZmZmYgIWltcG9ydGFudDtcbiAgY29sb3I6ICMwMDAwMDAgIWltcG9ydGFudDtcbn1cbi5nZmMgOjpuZy1kZWVwLm1hdC1tZW51LXBhbmVsIHtcbiAgbWFyZ2luLXRvcDogM3B4ICFpbXBvcnRhbnQ7XG4gIGJvcmRlcjogMXB4IHNvbGlkICNjY2NjY2M7XG4gIG1heC13aWR0aDogNjAwcHggIWltcG9ydGFudDtcbn1cbi5nZmMgLm1hdC1saXN0LWJvcmRlci1sZWZ0IHtcbiAgYm9yZGVyLXJpZ2h0OiAxcHggc29saWQgI2NjY2NjYztcbn1cbi5nZmMgLmhybGluZS10b3Age1xuICB3aWR0aDogOTYlO1xuICBtYXJnaW4tbGVmdDogMTVweDtcbiAgbWFyZ2luLXJpZ2h0OiAwcHg7XG4gIG1hcmdpbi10b3A6IDBweDtcbiAgYm9yZGVyLXRvcDogMXB4IHNvbGlkICNjY2M7XG59XG4uZ2ZjIC5tYXQtbGlzdC1pdGVtOmhvdmVyIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogI2Y2ZjlmYTtcbn1cbi5nZmMgLnNlbGVjdGVkLWhpZ2hsaWdodCB7XG4gIGJhY2tncm91bmQtY29sb3I6ICNFOUVFRjA7XG59XG4uZ2ZjIC5yZXF1ZXN0LWNsb3NlIHtcbiAgaGVpZ2h0OiAxNHB4O1xuICB3aWR0aDogMTRweDtcbiAgZmxvYXQ6IHJpZ2h0O1xuICBtYXJnaW4tcmlnaHQ6IDVweDtcbiAgbWFyZ2luLXRvcDogOHB4O1xuICBjdXJzb3I6IHBvaW50ZXI7XG4gIGJvcmRlci1yYWRpdXM6IDUwcHg7XG59XG4uZ2ZjIC5yZXF1ZXN0LWNsb3NlOmhvdmVyIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogI2U5ZjRmODtcbn1cbi5nZmMgLm1hdC1leHBhbnNpb24tcGFuZWw6bm90KFtjbGFzcyo9bWF0LWVsZXZhdGlvbi16XSkge1xuICBib3gtc2hhZG93OiBub25lO1xufVxuLmdmYyA6Om5nLWRlZXAubWF0LWV4cGFuc2lvbi1pbmRpY2F0b3I6OmFmdGVyIHtcbiAgYm9yZGVyLXN0eWxlOiBub25lICFpbXBvcnRhbnQ7XG59XG4uZ2ZjIC5tYXQtZXhwYW5zaW9uLXBhbmVsLWhlYWRlciB7XG4gIHBhZGRpbmc6IDA7XG59XG4uZ2ZjIDo6bmctZGVlcC5tYXQtZXhwYW5zaW9uLXBhbmVsLWJvZHkge1xuICBwYWRkaW5nOiAwICFpbXBvcnRhbnQ7XG59XG4uZ2ZjIC5tYXQtZXhwYW5zaW9uLXBhbmVsLXNwYWNpbmcge1xuICBtYXJnaW46IDJweCAwO1xufVxuLmdmYyAuZGl2LW0taGVpZ2h0IHtcbiAgbWluLWhlaWdodDogMjAlICFpbXBvcnRhbnQ7XG4gIGhlaWdodDogMzAlICFpbXBvcnRhbnQ7XG4gIG1heC1oZWlnaHQ6IDQwJSAhaW1wb3J0YW50O1xuICBib3JkZXI6IDFweCBzb2xpZDtcbn1cbi5nZmMgLnNlY3Rpb24tYmFja2NvbG91ciB7XG4gIGJhY2tncm91bmQtY29sb3I6ICNEM0Q5RTA7XG4gIGN1cnNvcjogcG9pbnRlcjtcbn1cbi5nZmMgLnNlbGVjdC1saXN0LWJsdWUge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjMDA3N0M4O1xuICBjb2xvcjogI2ZmZmZmZjtcbn1cbi5nZmMgLnNlbGVjdC1saXN0LWJsdWU6aG92ZXIge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjMDA3N0M4O1xuICBjb2xvcjogI2ZmZmZmZjtcbn1cbi5nZmMgLnNlbGVjdC1saXN0LWRlbGF5IHtcbiAgYmFja2dyb3VuZC1jb2xvcjogIzAwOUNBNjtcbiAgY29sb3I6ICNmZmZmZmY7XG59XG4uZ2ZjIC5zZWxlY3QtbGlzdC1kZWxheTpob3ZlciB7XG4gIGJhY2tncm91bmQtY29sb3I6ICMwMDlDQTY7XG4gIGNvbG9yOiAjZmZmZmZmO1xufVxuLmdmYyAuc2VsZWN0LWxpc3QtZ3JlZW4ge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjMDA5Qjc3O1xuICBjb2xvcjogI2ZmZmZmZjtcbn1cbi5nZmMgLnNlbGVjdC1saXN0LWdyZWVuOmhvdmVyIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogIzAwOUI3NztcbiAgY29sb3I6ICNmZmZmZmY7XG59XG4uZ2ZjIC5ncm91cC1saXN0IHtcbiAgYmFja2dyb3VuZC1jb2xvcjogIzAwNzdDODtcbiAgY29sb3I6ICNmZmZmZmY7XG59XG4uZ2ZjIC5ncm91cC1saXN0OmhvdmVyIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogIzAwNzdDODtcbiAgY29sb3I6ICNmZmZmZmY7XG59XG4uZ2ZjIC5ncm91cC1saXN0LWdyZWVuIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogIzAwOUI3NztcbiAgY29sb3I6ICNmZmZmZmY7XG59XG4uZ2ZjIC5ib3JkZXItY2xhc3Mge1xuICBib3gtc2l6aW5nOiBib3JkZXItYm94O1xuICBib3JkZXI6IDNweCBzb2xpZCAjMDAwMDAwO1xufVxuLmdmYyAuYm9yZGVyLWNsYXNzIC5saW5lLXNlZ21lbnQ6bnRoLWNoaWxkKDEpIHtcbiAgbWFyZ2luLXRvcDogLTZweDtcbn1cbi5nZmMgLmJvcmRlci10b3Age1xuICBib3JkZXItdG9wOiAwO1xufVxuLmdmYyAuYm9yZGVyLWJvdHRvbSB7XG4gIGJvcmRlci1ib3R0b206IDA7XG59XG4uZ2ZjIC5ib3JkZXItb3Ige1xuICBib3JkZXItdG9wOiAwLjFweCBzb2xpZCAjMDAwMDAwO1xuICBib3JkZXItYm90dG9tOiAwLjFweCBzb2xpZCAjMDAwMDAwO1xufVxuLmdmYyAub3JfY2xzIHtcbiAgbWFyZ2luLWxlZnQ6IDQlO1xuICBwb2ludGVyLWV2ZW50czogYWxsO1xuICBwYWRkaW5nLWJvdHRvbTogNnB4O1xuICBwYWRkaW5nLWxlZnQ6IDEwcHg7XG59XG4uZ2ZjIC5zYXVmLWxpc3Qge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjY2IzMzNiICFpbXBvcnRhbnQ7XG4gIGNvbG9yOiAjZmZmZmZmO1xufVxuLmdmYyAuc2F1Zi1saXN0OmhvdmVyIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogI2NiMzMzYjtcbiAgY29sb3I6ICNmZmZmZmY7XG59XG4uZ2ZjIC5ncm91cC1saXN0LWdyZWVuOmhvdmVyIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogIzAwOUI3NztcbiAgY29sb3I6ICNmZmZmZmY7XG59XG4uZ2ZjIC5ncm91cC1saXN0LWJvdHRvbS1zcGFjZSB7XG4gIG1hcmdpbi1ib3R0b206IDNweDtcbn1cbi5nZmMgI2dyb3VwaW5nTGlzdCA6Om5nLWRlZXAgLm1hdC1saXN0LWl0ZW0sXG4uZ2ZjICN2dWVEZXRhaWxMaXN0IDo6bmctZGVlcCAubWF0LWxpc3QtaXRlbSB7XG4gIGhlaWdodDogaW5pdGlhbCAhaW1wb3J0YW50O1xuICB3b3JkLWJyZWFrOiBicmVhay1hbGw7XG59XG4uZ2ZjICNncm91cGluZ0xpc3QgOjpuZy1kZWVwIC5tYXQtbGlzdC10ZXh0LFxuLmdmYyAjdnVlRGV0YWlsTGlzdCA6Om5nLWRlZXAgLm1hdC1saXN0LXRleHQge1xuICBsaW5lLWhlaWdodDogMTBweDtcbiAgb3ZlcmZsb3c6IHZpc2libGU7XG59XG4uZ2ZjICNncm91cGluZ0xpc3QgOjpuZy1kZWVwIC5tYXQtbGlzdC1pdGVtLWNvbnRlbnQsXG4uZ2ZjICN2dWVEZXRhaWxMaXN0IDo6bmctZGVlcCAubWF0LWxpc3QtaXRlbS1jb250ZW50IHtcbiAgcGFkZGluZzogMCAycHg7XG59XG4uZ2ZjIC5saXN0LXBhZCB7XG4gIHBhZGRpbmc6IDEwcHggMCAhaW1wb3J0YW50O1xufVxuLmdmYyAudGFiX25hbWUge1xuICB0ZXh0LW92ZXJmbG93OiBlbGxpcHNpcztcbiAgb3ZlcmZsb3c6IGhpZGRlbjtcbiAgd2hpdGUtc3BhY2U6IG5vd3JhcDtcbiAgd2lkdGg6IDEwMCU7XG4gIGN1cnNvcjogcG9pbnRlcjtcbiAgbWFyZ2luLXRvcDogM3B4O1xufVxuLmdmYyAjY2hhcmFjdGVyTGlzdElkIHtcbiAgLyogUm91bmRlZCBzbGlkZXJzICovXG59XG4uZ2ZjICNjaGFyYWN0ZXJMaXN0SWQgOjpuZy1kZWVwIC5tYXQtbGlzdC1pdGVtIHtcbiAgaGVpZ2h0OiBpbml0aWFsICFpbXBvcnRhbnQ7XG4gIHdvcmQtYnJlYWs6IGJyZWFrLWFsbDtcbn1cbi5nZmMgI2NoYXJhY3Rlckxpc3RJZCA6Om5nLWRlZXAgLm1hdC1saXN0LXRleHQge1xuICBsaW5lLWhlaWdodDogMTBweDtcbiAgb3ZlcmZsb3c6IHZpc2libGU7XG59XG4uZ2ZjICNjaGFyYWN0ZXJMaXN0SWQgOjpuZy1kZWVwIC5tYXQtbGlzdC1pdGVtLWNvbnRlbnQge1xuICBwYWRkaW5nOiAwIDJweDtcbn1cbi5nZmMgI2NoYXJhY3Rlckxpc3RJZCAucG9pbnRlcl9ub25lIHtcbiAgcG9pbnRlci1ldmVudHM6IG5vbmU7XG59XG4uZ2ZjICNjaGFyYWN0ZXJMaXN0SWQgLnJvdyB7XG4gIGRpc3BsYXk6IGlubGluZS1mbGV4O1xuICB3aWR0aDogMTAwJTtcbn1cbi5nZmMgI2NoYXJhY3Rlckxpc3RJZCAuY29sdW1uMSB7XG4gIHdpZHRoOiAyMCU7XG4gIG1hcmdpbi1yaWdodDogMiU7XG59XG4uZ2ZjICNjaGFyYWN0ZXJMaXN0SWQgLnRyYW5zZm9ybSB7XG4gIHRyYW5zZm9ybTogdHJhbnNsYXRlWSgtMjhweCk7XG59XG4uZ2ZjICNjaGFyYWN0ZXJMaXN0SWQgLmNvbHVtbi1jbHMge1xuICBtYXJnaW4tbGVmdDogNSU7XG59XG4uZ2ZjICNjaGFyYWN0ZXJMaXN0SWQgLmNvbHVtbjIge1xuICB3aWR0aDogODAlO1xufVxuLmdmYyAjY2hhcmFjdGVyTGlzdElkIC5jb2x1bW4zIHtcbiAgd2lkdGg6IDIwJTtcbn1cbi5nZmMgI2NoYXJhY3Rlckxpc3RJZCAuRVQtY29sdW1uIHtcbiAgd2lkdGg6IDUlO1xuICBtYXJnaW4tdG9wOiA1cHg7XG59XG4uZ2ZjICNjaGFyYWN0ZXJMaXN0SWQgLmRpdmlkZXItY29sdW1uIHtcbiAgbWFyZ2luLXRvcDogMTVweDtcbiAgd2lkdGg6IDkxJTtcbn1cbi5nZmMgI2NoYXJhY3Rlckxpc3RJZCAuZGl2aWRlci1jb2x1bW4gLm1hdC1kaXZpZGVyIHtcbiAgYm9yZGVyLXRvcC13aWR0aDogMnB4ICFpbXBvcnRhbnQ7XG59XG4uZ2ZjICNjaGFyYWN0ZXJMaXN0SWQgLnZhbHVlLWNscyB7XG4gIG1hcmdpbi10b3A6IDNweDtcbiAgbWFyZ2luLWJvdHRvbTogNXB4O1xufVxuLmdmYyAjY2hhcmFjdGVyTGlzdElkIC5vcGVyYXRvci1jbGFzcyB7XG4gIHdpZHRoOiAyNXB4O1xuICBoZWlnaHQ6IDhweDtcbiAgYm9yZGVyOiAycHggc29saWQgIzAwMDAwMDtcbiAgcGFkZGluZzogNXB4O1xuICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gIGJvcmRlci1yYWRpdXM6IDIyJTtcbiAgYmFja2dyb3VuZC1jb2xvcjogI2ZmZmZmZjtcbiAgY29sb3I6ICMwMDAwMDA7XG4gIGZvbnQtd2VpZ2h0OiA2MDA7XG4gIGZvbnQtc2l6ZTogMTJweDtcbiAgY3Vyc29yOiBub25lO1xufVxuLmdmYyAjY2hhcmFjdGVyTGlzdElkIC5saW5lLXNlZ21lbnQge1xuICB3aWR0aDogMnB4O1xuICBoZWlnaHQ6IDZweDtcbiAgYmFja2dyb3VuZC1jb2xvcjogIzAwMDtcbiAgbWFyZ2luLWxlZnQ6IDIwcHg7XG4gIGZsb2F0OiBsZWZ0O1xuICBjb2xvcjogI2ZmZmZmZjtcbiAgcG9zaXRpb246IHJlbGF0aXZlO1xufVxuLmdmYyAjY2hhcmFjdGVyTGlzdElkIC5hZGQtY2xhc3Mge1xuICBtYXJnaW4tdG9wOiA2cHg7XG4gIG1hcmdpbi1ib3R0b206IDA7XG4gIGZvbnQtc2l6ZTogMThweDtcbn1cbi5nZmMgI2NoYXJhY3Rlckxpc3RJZCAubGFzdCB7XG4gIGRpc3BsYXk6IG5vbmU7XG59XG4uZ2ZjICNjaGFyYWN0ZXJMaXN0SWQgLnRleHQtc3Bhbi1mb250IHtcbiAgd2lkdGg6IDM0NXB4O1xufVxuLmdmYyAjY2hhcmFjdGVyTGlzdElkIC5zYXVmLXRleHQge1xuICBtYXJnaW4tbGVmdDogMTglO1xuICBmb250LXNpemU6IDEycHg7XG59XG4uZ2ZjICNjaGFyYWN0ZXJMaXN0SWQgLnN3aXRjaCB7XG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgd2lkdGg6IDM3cHg7XG4gIGhlaWdodDogMThweDtcbiAgbWFyZ2luLWxlZnQ6IGF1dG87XG59XG4uZ2ZjICNjaGFyYWN0ZXJMaXN0SWQgLnN3aXRjaCBpbnB1dCB7XG4gIG9wYWNpdHk6IDA7XG4gIHdpZHRoOiAwO1xuICBoZWlnaHQ6IDA7XG59XG4uZ2ZjICNjaGFyYWN0ZXJMaXN0SWQgLnNsaWRlciB7XG4gIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgY3Vyc29yOiBwb2ludGVyO1xuICB0b3A6IDA7XG4gIGxlZnQ6IDA7XG4gIHJpZ2h0OiAwO1xuICBib3R0b206IDA7XG4gIGJhY2tncm91bmQtY29sb3I6IHRyYW5zcGFyZW50O1xuICAtd2Via2l0LXRyYW5zaXRpb246IDAuNHM7XG4gIHRyYW5zaXRpb246IDAuNHM7XG59XG4uZ2ZjICNjaGFyYWN0ZXJMaXN0SWQgLnNsaWRlcjpiZWZvcmUge1xuICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gIGNvbnRlbnQ6IFwiXCI7XG4gIGhlaWdodDogMTRweDtcbiAgd2lkdGg6IDE0cHg7XG4gIGxlZnQ6IDFweDtcbiAgdG9wOiAxcHg7XG4gIGJhY2tncm91bmQtY29sb3I6ICNmZmZmZmY7XG4gIC13ZWJraXQtdHJhbnNpdGlvbjogMC40cztcbiAgdHJhbnNpdGlvbjogMC40cztcbn1cbi5nZmMgI2NoYXJhY3Rlckxpc3RJZCBpbnB1dDpjaGVja2VkICsgLnNsaWRlciB7XG4gIGJhY2tncm91bmQtY29sb3I6ICNjYjMzM2I7XG59XG4uZ2ZjICNjaGFyYWN0ZXJMaXN0SWQgaW5wdXQ6Zm9jdXMgKyAuc2xpZGVyIHtcbiAgYm94LXNoYWRvdzogMCAwIDFweCAjMDA3N0M4O1xufVxuLmdmYyAjY2hhcmFjdGVyTGlzdElkIGlucHV0OmNoZWNrZWQgKyAuc2xpZGVyOmJlZm9yZSB7XG4gIC13ZWJraXQtdHJhbnNmb3JtOiB0cmFuc2xhdGVYKDE5cHgpO1xuICAtbXMtdHJhbnNmb3JtOiB0cmFuc2xhdGVYKDE5cHgpO1xuICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVgoMTlweCk7XG59XG4uZ2ZjICNjaGFyYWN0ZXJMaXN0SWQgLnNsaWRlci5yb3VuZCB7XG4gIGJvcmRlci1yYWRpdXM6IDM0cHg7XG4gIGJvcmRlcjogMXB4IHNvbGlkICNmZmZmZmY7XG59XG4uZ2ZjICNjaGFyYWN0ZXJMaXN0SWQgLnNsaWRlci5yb3VuZDpiZWZvcmUge1xuICBib3JkZXItcmFkaXVzOiA1MCU7XG59XG4uZ2ZjIDo6bmctZGVlcCAjZ3JvdXBpbmdMaXN0IC5tYXQtbGlzdC1vcHRpb25bYXJpYS1zZWxlY3RlZD10cnVlXSAuZ3JvdXAtbGlzdCxcbi5nZmMgOjpuZy1kZWVwICNjaGFyYWN0ZXJMaXN0SWQgLm1hdC1saXN0LW9wdGlvblthcmlhLXNlbGVjdGVkPXRydWVdIC5ncm91cC1saXN0IHtcbiAgYmFja2dyb3VuZC1jb2xvcjogI2NjY2NjYztcbiAgY29sb3I6ICMwMDAwMDA7XG59XG4uZ2ZjIDo6bmctZGVlcCAjZ3JvdXBpbmdMaXN0IC5tYXQtbGlzdC1vcHRpb25bYXJpYS1zZWxlY3RlZD10cnVlXSAuc2F1Zi1saXN0LFxuLmdmYyA6Om5nLWRlZXAgI2NoYXJhY3Rlckxpc3RJZCAubWF0LWxpc3Qtb3B0aW9uW2FyaWEtc2VsZWN0ZWQ9dHJ1ZV0gLnNhdWYtbGlzdCB7XG4gIGJhY2tncm91bmQtY29sb3I6ICNjY2NjY2MgIWltcG9ydGFudDtcbiAgY29sb3I6ICMwMDAwMDA7XG59XG4uZ2ZjIDo6bmctZGVlcCAjZ3JvdXBpbmdMaXN0IC5tYXQtbGlzdC1vcHRpb25bYXJpYS1zZWxlY3RlZD10cnVlXSAuZ3JvdXAtbGlzdC1ncmVlbixcbi5nZmMgOjpuZy1kZWVwICNjaGFyYWN0ZXJMaXN0SWQgLm1hdC1saXN0LW9wdGlvblthcmlhLXNlbGVjdGVkPXRydWVdIC5ncm91cC1saXN0LWdyZWVuIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogI2NjY2NjYztcbiAgY29sb3I6ICMwMDAwMDA7XG59XG4uZ2ZjIDo6bmctZGVlcCAjZ3JvdXBpbmdMaXN0IC5tYXQtbGlzdC1vcHRpb25bYXJpYS1zZWxlY3RlZD10cnVlXSAuc2VsZWN0LWxpc3QtZGVsYXksXG4uZ2ZjIDo6bmctZGVlcCAjY2hhcmFjdGVyTGlzdElkIC5tYXQtbGlzdC1vcHRpb25bYXJpYS1zZWxlY3RlZD10cnVlXSAuc2VsZWN0LWxpc3QtZGVsYXkge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjY2NjY2NjO1xuICBjb2xvcjogIzAwMDAwMDtcbn1cbi5nZmMgOjpuZy1kZWVwICN2dWVEZXRhaWxMaXN0IC5tYXQtbGlzdC1vcHRpb25bYXJpYS1zZWxlY3RlZD10cnVlXSAuZ3JvdXAtbGlzdCB7XG4gIGJhY2tncm91bmQtY29sb3I6ICNjY2NjY2M7XG4gIGNvbG9yOiAjMDAwMDAwO1xufVxuLmdmYyA6Om5nLWRlZXAgI3Z1ZURldGFpbExpc3QgLm1hdC1saXN0LW9wdGlvblthcmlhLXNlbGVjdGVkPXRydWVdIC5ncm91cC1saXN0LWdyZWVuIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogI2NjY2NjYztcbiAgY29sb3I6ICMwMDAwMDA7XG59XG4uZ2ZjIDo6bmctZGVlcCAjdnVlRGV0YWlsTGlzdCAubWF0LWxpc3Qtb3B0aW9uW2FyaWEtc2VsZWN0ZWQ9dHJ1ZV0gLnNlbGVjdC1saXN0LWRlbGF5IHtcbiAgYmFja2dyb3VuZC1jb2xvcjogI2NjY2NjYztcbiAgY29sb3I6ICMwMDAwMDA7XG59XG4uZ2ZjIC5zZWxlY3QtZ3JvdXAtbGlzdDpob3ZlciB7XG4gIGJhY2tncm91bmQtY29sb3I6ICNjY2NjY2MgIWltcG9ydGFudDtcbiAgY29sb3I6ICMwMDAwMDAgIWltcG9ydGFudDtcbn1cbi5nZmMgLmdyb3VwaW5nLXJhZGlvLWRhdGUge1xuICBvdmVyZmxvdy15OiBhdXRvO1xuICBoZWlnaHQ6IGNhbGMoMTAwdmggLSAxMTZweCk7XG59XG4uZ2ZjIC5ncm91cGluZy1yYWRpby1kYXRlIC5kYXRlLXNlY3Rpb24ge1xuICBwYWRkaW5nOiA1cHggMHB4IDBweCAxNXB4O1xuICBoZWlnaHQ6IGNhbGMoKDEwMHZoIC0gMTMwcHgpLzIpO1xufVxuLmdmYyAuZ3JvdXBpbmctcmFkaW8tZGF0ZSA6Om5nLWRlZXAgLm1hdC1jaGVja2JveCB7XG4gIG1hcmdpbjogNXB4O1xufVxuLmdmYyAuZ3JvdXBpbmctcmFkaW8tZGF0ZSA6Om5nLWRlZXAgLm1hdC1jaGVja2JveCAubWF0LWNoZWNrYm94LWZyYW1lIHtcbiAgbWFyZ2luOiAtMXB4O1xuICBib3JkZXI6IDFweCBzb2xpZCAjY2NjY2NjO1xufVxuLmdmYyAuZ3JvdXBpbmctcmFkaW8tZGF0ZSA6Om5nLWRlZXAgLm1hdC1jaGVja2JveCAubWF0LWNoZWNrYm94LWJhY2tncm91bmQge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiB3aGl0ZTtcbn1cbi5nZmMgLmdyb3VwaW5nLXJhZGlvLWRhdGUgOjpuZy1kZWVwIC5tYXQtY2hlY2tib3ggLm1hdC1jaGVja2JveC1jaGVja21hcmstcGF0aCB7XG4gIHN0cm9rZTogIzAwNzdjOCAhaW1wb3J0YW50O1xufVxuLmdmYyAuZ3JvdXBpbmctcmFkaW8tZGF0ZSBpbnB1dFt0eXBlPW51bWJlcl0ge1xuICB3aWR0aDogNjAlO1xuICBtYXJnaW4tbGVmdDogMTUlO1xuICBtYXJnaW4tdG9wOiA4cHg7XG4gIGhlaWdodDogMjVweDtcbiAgcGFkZGluZy1sZWZ0OiA1cHg7XG59XG4uZ2ZjIC5ncm91cGluZy1yYWRpby1kYXRlIC5hbGwtZ3JvdXBpbmcge1xuICBkaXNwbGF5OiBmbGV4O1xufVxuLmdmYyAucG9wdWxhdGlvbi1saXN0LWl0ZW0ge1xuICBib3JkZXI6IDBweDtcbiAgYmFja2dyb3VuZC1jb2xvcjogI2ZmZmZmZjtcbiAgY3Vyc29yOiBwb2ludGVyO1xuICB0ZXh0LXRyYW5zZm9ybTogdXBwZXJjYXNlO1xufVxuLmdmYyAubWFyZ2luLTEwIHtcbiAgbWFyZ2luLXRvcDogMTBweDtcbn1cbi5nZmMgLnRpY2staW1nIHtcbiAgZmxvYXQ6IHJpZ2h0O1xuICBtYXJnaW4tdG9wOiA1cHg7XG4gIG1hcmdpbi1sZWZ0OiAxMHB4O1xuICB3aWR0aDogMTVweDtcbiAgaGVpZ2h0OiAxNXB4O1xufVxuLmdmYyAucG9wdWxhdGlvbi1saXN0IHtcbiAgbWluLXdpZHRoOiAxODBweDtcbiAgbWF4LWhlaWdodDogMjUwcHg7XG59XG4uZ2ZjIC5kcm9wZG93bi1hbGlnbm1lbnQge1xuICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG59XG4uZ2ZjIC5kcm9wZG93bi1hbGlnbm1lbnQgLnVwLWRvd24ge1xuICBmbG9hdDogcmlnaHQ7XG4gIG1hcmdpbi10b3A6IDdweDtcbiAgd2lkdGg6IDE1cHg7XG4gIGhlaWdodDogMTVweDtcbn1cbi5nZmMgLmRyb3Bkb3duLWFsaWdubWVudCAucG9wdWxhdGlvbi1tZW51IHtcbiAgYm9yZGVyLWJvdHRvbTogMXB4IHNvbGlkICNhYWFhYWE7XG4gIGhlaWdodDogMzBweDtcbiAgY3Vyc29yOiBwb2ludGVyO1xufVxuLmdmYyAuZHJvcGRvd24tYWxpZ25tZW50IC5kcm9wZG93bi1hbGlnbm1lbnQ6bnRoLWNoaWxkKDEpLFxuLmdmYyAuZHJvcGRvd24tYWxpZ25tZW50IC5kcm9wZG93bi1hbGlnbm1lbnQ6bnRoLWNoaWxkKDIpIHtcbiAgbWFyZ2luLXRvcDogMDtcbn1cbi5nZmMgLmRyb3Bkb3duLWFsaWdubWVudCAudGV4dC1zcGFuIHtcbiAgZm9udC1mYW1pbHk6IFJvYm90bywgXCJIZWx2ZXRpY2EgTmV1ZVwiLCBzYW5zLXNlcmlmO1xuICBmb250LXNpemU6IDExcHg7XG4gIGZvbnQtd2VpZ2h0OiA0MDA7XG4gIGxpbmUtaGVpZ2h0OiAwICFpbXBvcnRhbnQ7XG59XG4uZ2ZjIC50ZXh0YXJlYS1hbGlnbm1lbnQge1xuICBkaXNwbGF5OiBibG9jaztcbiAgcGFkZGluZzogMHB4IDBweCAwcHggMjBweDtcbiAgaGVpZ2h0OiA0MHB4O1xuICB3aWR0aDogOTAlO1xufVxuLmdmYyAudGV4dGFyZWEtYWxpZ25tZW50IGlucHV0W3R5cGU9dGV4dF0ge1xuICB3aWR0aDogMTAwJTtcbiAgYm9yZGVyLWJvdHRvbTogMXB4IHNvbGlkICNhYWFhYWE7XG59XG4uZ2ZjIC50ZXh0YXJlYS1hbGlnbm1lbnQgaW5wdXRbdHlwZT10ZXh0XTpmb2N1cyB7XG4gIG91dGxpbmU6IG5vbmUgIWltcG9ydGFudDtcbiAgYm9yZGVyLWJvdHRvbTogMXB4IHNvbGlkICNhYWFhYWE7XG59XG4uZ2ZjIC50ZXh0YXJlYS1hbGlnbm1lbnQgLnRleHQtc3BhbiB7XG4gIGZvbnQtZmFtaWx5OiBSb2JvdG8sIFwiSGVsdmV0aWNhIE5ldWVcIiwgc2Fucy1zZXJpZjtcbiAgZm9udC1zaXplOiAxMXB4O1xuICBmb250LXdlaWdodDogNDAwO1xuICBsaW5lLWhlaWdodDogMCAhaW1wb3J0YW50O1xufVxuLmdmYyAuY3VzdG9tLWRlbGF5LXNjcm9sbC1iYXIge1xuICBoZWlnaHQ6IGNhbGMoMTAwJSAtIDY1cHgpO1xuICBvdmVyZmxvdy15OiBzY3JvbGw7XG4gIG92ZXJmbG93LXg6IGhpZGRlbjtcbiAgbWFyZ2luLXJpZ2h0OiA1cHg7XG4gIG1hcmdpbi10b3A6IDVweDtcbn1cbi5nZmMgLmN1c3RvbS1kZWxheS1zY3JvbGwtYmFyOjotd2Via2l0LXNjcm9sbGJhciB7XG4gIHdpZHRoOiAxMHB4O1xufVxuLmdmYyAuY3VzdG9tLWRlbGF5LXNjcm9sbC1iYXI6Oi13ZWJraXQtc2Nyb2xsYmFyLXRodW1iIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogIzJkNDU1NztcbiAgYm9yZGVyLXJhZGl1czogNXB4O1xufVxuLmdmYyAuaXRlbS1kaXNhYmxlIHtcbiAgY3Vyc29yOiBub3QtYWxsb3dlZCAhaW1wb3J0YW50O1xuICBwb2ludGVyLWV2ZW50czogbm9uZTtcbn1cbi5nZmMgLnZ1ZS1zZWN0aW9uLWNoZWNrIHtcbiAgd2lkdGg6IDg5JTtcbiAgbWFyZ2luLXRvcDogNXB4O1xuICBtYXJnaW4tbGVmdDogMjBweDtcbiAgZm9udC1mYW1pbHk6IFJvYm90bywgXCJIZWx2ZXRpY2EgTmV1ZVwiLCBzYW5zLXNlcmlmO1xuICBmb250LXNpemU6IDExcHg7XG4gIGZvbnQtd2VpZ2h0OiA0MDA7XG59XG4uZ2ZjIC52dWUtc2VjdGlvbi1jaGVjayA6Om5nLWRlZXAgLm1hdC1jaGVja2JveCB7XG4gIG1hcmdpbjogNXB4O1xufVxuLmdmYyAudnVlLXNlY3Rpb24tY2hlY2sgOjpuZy1kZWVwIC5tYXQtY2hlY2tib3ggLm1hdC1jaGVja2JveC1mcmFtZSB7XG4gIG1hcmdpbjogLTFweDtcbiAgYm9yZGVyOiAxcHggc29saWQgI2NjY2NjYztcbn1cbi5nZmMgLnZ1ZS1zZWN0aW9uLWNoZWNrIDo6bmctZGVlcCAubWF0LWNoZWNrYm94IC5tYXQtY2hlY2tib3gtYmFja2dyb3VuZCB7XG4gIGJhY2tncm91bmQtY29sb3I6IHdoaXRlO1xufVxuLmdmYyAudnVlLXNlY3Rpb24tY2hlY2sgOjpuZy1kZWVwIC5tYXQtY2hlY2tib3ggLm1hdC1jaGVja2JveC1jaGVja21hcmstcGF0aCB7XG4gIHN0cm9rZTogIzAwNzdjOCAhaW1wb3J0YW50O1xufVxuLmdmYyAudnVlLW1hdC1saXN0LWRpc2FibGVkIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogI2VlZWVlZSAhaW1wb3J0YW50O1xuICBjdXJzb3I6IG5vdC1hbGxvd2VkICFpbXBvcnRhbnQ7XG4gIHBvaW50ZXItZXZlbnRzOiBub25lO1xuICBjb2xvcjogI2FhYWFhYSAhaW1wb3J0YW50O1xufVxuLmdmYyAuYnV0dG9uLXNhdmUge1xuICB3aWR0aDogMTAwcHg7XG4gIGhlaWdodDogMzBweCAhaW1wb3J0YW50O1xuICBmb250LWZhbWlseTogUm9ib3RvLCBcIkhlbHZldGljYSBOZXVlXCIsIHNhbnMtc2VyaWY7XG4gIGZvbnQtc2l6ZTogMTNweDtcbiAgZm9udC13ZWlnaHQ6IDUwMDtcbiAgdGV4dC1hbGlnbjogY2VudGVyO1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjRkZDQzMzO1xuICBib3JkZXItcmFkaXVzOiAzcHg7XG4gIGZsb2F0OiByaWdodDtcbn1cbi5nZmMgLnRhYmxlLXN0eWxlIHtcbiAgb3ZlcmZsb3cteTogc2Nyb2xsO1xuICBvdmVyZmxvdy14OiBoaWRkZW47XG4gIG1hcmdpbi1yaWdodDogNXB4O1xufVxuLmdmYyAudGFibGUtc2l6ZS13aXRoLWNvbmQge1xuICBtYXgtaGVpZ2h0OiAxNzBweCAhaW1wb3J0YW50O1xuICBvdmVyZmxvdy15OiBhdXRvO1xufVxuLmdmYyAudGFibGUtc2l6ZS13aXRob3V0LWNvbmQge1xuICBtYXgtaGVpZ2h0OiA1MDBweCAhaW1wb3J0YW50O1xuICBvdmVyZmxvdy15OiBhdXRvO1xufVxuLmdmYyAudGFibGUtc3R5bGU6Oi13ZWJraXQtc2Nyb2xsYmFyIHtcbiAgd2lkdGg6IDEwcHg7XG59XG4uZ2ZjIC50YWJsZS1zdHlsZTo6LXdlYmtpdC1zY3JvbGxiYXItdGh1bWIge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjMmQ0NTU3O1xuICBib3JkZXItcmFkaXVzOiA1cHg7XG59XG4uZ2ZjIC5tYXRlci1pY29ucyB7XG4gIG1hcmdpbi1sZWZ0OiAtOHB4O1xuICBtYXJnaW4tdG9wOiAtN3B4O1xuICBmb250LXNpemU6IDQwcHggIWltcG9ydGFudDtcbn1cbi5nZmMgLnNlbGVjdGVkLWxpc3Qge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjY2NjY2NjO1xufVxuXG4uY2xzLWdmY0NvbnRhaW5lciB7XG4gIGRpc3BsYXk6IGZsZXg7XG4gIGhlaWdodDogNTUwcHggIWltcG9ydGFudDtcbiAgYm9yZGVyLXRvcDogMXB4IHNvbGlkICNjY2M7XG4gIGJvcmRlci1ib3R0b206IDFweCBzb2xpZCAjY2NjO1xuICBtYXJnaW4tdG9wOiAxMHB4O1xufSJdfQ== */\"","import { Component, OnInit, Inject, ViewChild } from '@angular/core';\nimport { MatDialog, MatDialogRef, MAT_DIALOG_DATA } from '@angular/material/dialog';\nimport { BackendApiService } from 'src/app/services/backend-api/backend-api.service';\nimport { UtilService } from 'src/app/services/util/util.service';\nimport { RequestService } from '../../services/request/request.service';\nimport { MatSelectionList, MatSelectionListChange, MatListOption } from '@angular/material';\n\n@Component({\n selector: 'app-group-formatting-condition',\n templateUrl: './group-formatting-condition.component.html',\n styleUrls: ['./group-formatting-condition.component.scss']\n})\nexport class GroupFormattingConditionComponent implements OnInit {\n @ViewChild('characterListId', { static: false }) characterId: MatSelectionList;\n bln: boolean;\n textVal: string = '';\n selectedCategory;\n selectedCriterias;\n selectedItemValue;\n selectedCharacterList;\n gSource: any = [];\n selectedIndexValue: any;\n groupingEditValue: any;\n lang = 'fr';\n splitChar = \"§\";\n\n isModify = false;\n\n displayCList = [];\n categoryList: any;\n searchText;\n selectedItem: any;\n isShowCondition: boolean;\n\n selectList = [];\n selectedListIndex;\n\n constructor(public dialogRef: MatDialogRef,\n @Inject(MAT_DIALOG_DATA) public data: any, readonly requestService: RequestService, readonly utilService: UtilService,\n readonly apiService: BackendApiService) {\n this.lang = requestService.getSelectedLang();\n }\n\n ngOnInit() {\n this.selectedCategory = this.utilService.getTranslateName(`COMMON.ALL`);\n this.gSource = [];\n this.isModify = false;\n if (this.data && this.data.hasOwnProperty('gPreSource')) {\n // this.gSource.push(this.data.gPreSource);\n this.data.tableValues.selectedTable = this.data.gPreSource.table;\n const splitValue = this.data.gPreSource.GCOName.split(\",\");\n for (let index = 0; index < splitValue.length; index++) {\n const element = splitValue[index];\n const displayLabelValue = this.data.gPreSource.value.split(\",\")[index].toString().split(\"[\");\n const displayLabel = displayLabelValue[0].substr(0, displayLabelValue[0].indexOf(\" = \"));\n const displayValue = displayLabelValue[1].substr(0, displayLabelValue[1].length - 1);\n this.gSource.push({\n \"GCOName\": this.data.gPreSource.GCOName.split(\",\")[index], \"index\": this.data.gPreSource.index.toString().split(\",\")[index],\n \"size\": this.data.gPreSource.size.toString().split(\",\")[index], \"table\": this.data.gPreSource.table, \"ts\": this.data.gPreSource.ts,\n \"type\": this.data.gPreSource.type.toString().split(\",\")[index], \"value\": this.data.gPreSource.value.split(\",\")[index],\n \"displayLabel\": displayLabel, \"displayValue\": displayValue\n })\n this.isModify = true;\n }\n }\n // console.log(\"this.gSource\", this.gSource)\n if (this.data.displayCriteriaList) {\n for (const item of this.data.displayCriteriaList) {\n this.displayCList.push(item);\n }\n this.displayCList = this.displayCList.sort(this.utilService.sortArrayCriteriaList);\n }\n }\n\n searchFilter() {\n // console.log(\"this.searchText\", this.searchText);\n this.displayCList = this.data.displayCriteriaList.filter(a => a.label.toUpperCase().includes(this.searchText.toUpperCase()));\n this.displayCList = this.displayCList.sort(this.utilService.sortArrayCriteriaList);\n }\n\n getValue() {\n if (!this.data.isText) {\n return true;\n } else {\n return this.textVal.trim();\n }\n }\n\n clickCriteriaList(item, index) {\n if (!this.selectedItemValue) {\n this.groupingEditValue = undefined;\n this.selectedCharacterList = [];\n this.selectedIndexValue = -1;\n this.selectedItemValue = undefined;\n this.selectedItem = undefined\n this.isShowCondition = false;\n\n if (item.GCOName === \"I\" || item.GCOName === \"A_Chassis\" || item.GCOName === \"A_Ident\") {\n this.selectedItemValue = undefined;\n } else {\n this.selectedItemValue = item.label;\n this.selectedItem = item;\n // this.getCharacterData(item);\n }\n }\n }\n\n moveRight() {\n if (this.selectedItemValue) {\n this.groupingEditValue = undefined;\n this.selectedCharacterList = [];\n this.selectedIndexValue = -1;\n\n if (this.selectedItem.GCOName === \"I\" || this.selectedItem.GCOName === \"A_Chassis\" || this.selectedItem.GCOName === \"A_Ident\") {\n this.selectedItemValue = undefined;\n } else {\n this.selectedItemValue = this.selectedItem.label;\n this.isShowCondition = true;\n this.getCharacterData(this.selectedItem);\n }\n }\n }\n\n getCharacterData(criteriaFilterVal) {\n this.selectedCharacterList = {\n 'longLabel': criteriaFilterVal.longLabel,\n 'size': criteriaFilterVal.size,\n 'GCOName': criteriaFilterVal.GCOName,\n 'type': criteriaFilterVal.type,\n 'selectedTable': this.data.tableValues.selectedTable,\n 'ipn': this.data.tableValues.ipn,\n 'region': this.data.tableValues.selectedRegion,\n 'selectedGroupItemValue': this.selectedItemValue\n };\n // console.log(\"criteriaFilterVal\", criteriaFilterVal, this.selectedCharacterList)\n }\n\n onGroupDateOk($event) {\n if ($event.value !== '') {\n if (this.selectedIndexValue > -1) {\n this.gSource[this.selectedIndexValue].displayLabel = this.selectedCharacterList.selectedGroupItemValue;\n if ($event.indVal === 2) {\n this.gSource[this.selectedIndexValue].value = `${this.selectedCharacterList.selectedGroupItemValue} = [${$event.value.join('/')}]`;\n this.gSource[this.selectedIndexValue].displayValue = `${$event.value.join('/')}`;\n } else {\n this.gSource[this.selectedIndexValue].value = `${this.selectedCharacterList.selectedGroupItemValue} = [${$event.format} ${$event.value}]`;\n this.gSource[this.selectedIndexValue].displayValue = `${$event.format} ${$event.value}`;\n }\n this.gSource[this.selectedIndexValue].index = $event.indVal;\n this.selectedIndexValue = -1;\n this.selectedItemValue = undefined;\n this.selectedCharacterList = [];\n } else {\n\n this.gSource.push({\n \"table\": this.selectedCharacterList.selectedTable, \"ts\": \"T\", \"GCOName\": this.selectedCharacterList.GCOName, \"type\": this.selectedCharacterList.type,\n \"size\": this.selectedCharacterList.size, \"index\": $event.indVal, \"displayValue\": \"\", \"displayLabel\": this.selectedCharacterList.selectedGroupItemValue\n });\n if ($event.indVal === 6) {\n this.gSource[this.gSource.length - 1].value = `${this.selectedCharacterList.selectedGroupItemValue} = [${$event.format}${$event.value}]`;\n this.gSource[this.gSource.length - 1].displayValue = `${$event.format} ${$event.value}`;\n } else if ($event.indVal === 2) {\n this.gSource[this.gSource.length - 1].value = `${this.selectedCharacterList.selectedGroupItemValue} = [${$event.value.join('/')}]`;\n this.gSource[this.gSource.length - 1].displayValue = `${$event.value.join('/')}`;\n } else {\n this.gSource[this.gSource.length - 1].value = `${this.selectedCharacterList.selectedGroupItemValue} = [${$event.format} ${$event.value}]`;\n this.gSource[this.gSource.length - 1].displayValue = `${$event.format} ${$event.value}`;\n }\n this.selectedItemValue = undefined;\n }\n // console.log(\"event\", $event, this.gSource);\n }\n this.isShowCondition = false;\n this.selectedIndexValue = -1;\n this.selectedItemValue = undefined;\n this.selectedCharacterList = [];\n }\n\n onNoClick(): void {\n this.selectedItemValue = undefined;\n this.dialogRef.close();\n }\n\n editValue(item, indexValue) {\n const filV = this.data.displayCriteriaList.filter(v => v.GCOName === item.GCOName);\n if (filV.length > 0) {\n\n this.selectedItemValue = `${filV[0].longLabel.split('§').length > 1 ? filV[0].longLabel.split('§')[this.getLangIndex(this.lang)] : filV[0].longLabel}`;\n this.selectedCharacterList = {\n 'longLabel': filV[0].longLabel,\n 'size': filV[0].size,\n 'GCOName': filV[0].GCOName,\n 'type': filV[0].type,\n 'selectedTable': this.data.tableValues.selectedTable,\n 'ipn': this.data.tableValues.ipn,\n 'region': this.data.tableValues.selectedRegion,\n 'selectedGroupItemValue': this.selectedItemValue\n };\n // console.log(\"criteriaFilterVal\", filV[0], this.selectedCharacterList)\n\n this.groupingEditValue = item;\n this.isShowCondition = true;\n this.selectedIndexValue = indexValue;\n // console.log(\"item\", item, indexValue);\n }\n }\n\n deleteValue(indVal) {\n if (typeof (indVal) !== \"undefined\") {\n this.gSource.splice(indVal, 1);\n // console.log(\"this.gSourceDisplay\", this.gSource);\n }\n }\n\n getLangIndex(lang) {\n if (lang === 'en') {\n return 1;\n } else {\n return 0;\n }\n }\n\n\n\n onCategoryChange(val, type) {\n if (val === '') {\n this.selectedCategory = this.utilService.getTranslateName(`COMMON.ALL`);\n } else {\n this.selectedCategory = val;\n }\n const privateCategory = this.data.privateFilterCategory.filter(xy => xy === val);\n if (privateCategory.length > 0) {\n this.getSearchCategory(this.data.tableValues.ipn);\n } else {\n this.getSearchCategory('system');\n }\n }\n\n getFavoriteRegion() {\n if (this.data.tableValues.selectedRegion === \"Europe\") {\n return \"PIL\";\n } else {\n return \"PIM\";\n }\n }\n\n getSearchCategory(ipnValue) {\n this.displayCList = [];\n this.categoryList = [];\n if (this.selectedCategory === this.utilService.getTranslateName(`COMMON.ALL`)) {\n for (const item of this.data.displayCriteriaList) {\n this.displayCList.push(item);\n }\n this.displayCList = this.displayCList.sort(this.utilService.sortArrayCriteriaList);\n // this.displayCList = this.displayCList.sort((a, b) => (a.GCOName < b.GCOName) ? -1 : 1);\n } else {\n const queryParam = { \"input\": `FILTRE@${ipnValue}@${this.data.tableValues.selectedTable}@${this.selectedCategory}@`, \"region\": this.getFavoriteRegion() };\n this.apiService.getObjectGet(queryParam).subscribe(res => {\n // console.log(\"res.data\", res.data)\n const dataRes = res.data.split('@');\n for (let i = 0; i < dataRes.length; i = i + 4) {\n if (i > 0) {\n this.categoryList.push(dataRes[i - 1]);\n }\n }\n for (const iterator of this.categoryList) {\n const filterVal = this.data.displayCriteriaList.filter(a => a.GCOName.toUpperCase() === iterator.substring(0, iterator.length - 2).toUpperCase());\n for (const item of filterVal) {\n this.displayCList.push(item);\n }\n }\n // this.displayCriteriaList = this.displayCriteriaList.sort(this.utilService.sortArray);\n this.displayCList = this.displayCList.sort(this.utilService.sortArrayCriteriaList);\n this.selectedItemValue = undefined;\n this.selectedIndexValue = -1;\n },\n error => {\n console.log(\"error\", error.message);\n });\n }\n }\n\n clickList(index, event) {\n // this.selectedListIndex = undefined;\n // if (this.selectList.filter(a => a === index).length === 0) {\n // this.selectList.push(index);\n // this.selectedListIndex = index;\n // } else {\n // this.selectList.splice(index, 1)\n // }\n // this.selectList.sort()\n\n this.selectedListIndex = index;\n\n if (this.characterId !== undefined) {\n this.characterId.selectionChange.subscribe((s: MatSelectionListChange) => {\n if (s.source._value.length > 0) {\n this.characterId.deselectAll();\n s.option.selected = true;\n // this.selectedListIndex = index;\n } else {\n this.characterId.deselectAll();\n }\n });\n }\n }\n\n removeSelectedItem(index) {\n var selectList = document.getElementById(\"characterListId\");\n var selectOptions = selectList.getElementsByTagName('mat-list-option');\n for (var i = 0; i < selectOptions.length; i++) {\n if (i !== index && selectOptions[i].getAttribute('aria-selected') === 'true') {\n let div = selectOptions[i].getAttribute('id');\n document.getElementById(div).click()\n } else if (i === index && selectOptions[i].getAttribute('aria-selected') === 'false') {\n let div = selectOptions[i].getAttribute('id');\n document.getElementById(div).click()\n }\n }\n }\n\n dblClickCharacterList(index, item) {\n this.selectedListIndex = index;\n this.editValue(item, index);\n // console.log(\"selectedListIndex\", this.selectedListIndex);\n this.removeSelectedItem(index);\n // if (this.characterId !== undefined) {\n // this.characterId.selectionChange.subscribe((s: MatSelectionListChange) => {\n // if (s.source._value.length > 0) {\n // this.characterId.deselectAll();\n // s.option.selected = true;\n // this.selectedListIndex = index;\n // } else {\n // this.characterId.deselectAll();\n // }\n // });\n // }\n }\n\n}\n","export default \".group-formatting-style {\\n width: 60%;\\n max-height: 610px;\\n border: 1px solid;\\n padding: 15px;\\n background-color: #ffffff;\\n}\\n.group-formatting-style .div-width {\\n width: 100%;\\n}\\n.group-formatting-style .item-right {\\n float: right;\\n}\\n.group-formatting-style .div-flex {\\n display: flex;\\n}\\n.group-formatting-style .margin-bot-10 {\\n margin-bottom: 10px;\\n}\\n.group-formatting-style .dot-style {\\n width: 0px;\\n margin-top: 4px;\\n color: #ffffff;\\n}\\n.group-formatting-style .example-radio-group {\\n display: flex;\\n margin: 15px 0;\\n}\\n.group-formatting-style .example-radio-button {\\n margin-right: 20px;\\n}\\n.group-formatting-style .img-size-20 {\\n height: 18px;\\n width: 18px;\\n cursor: pointer;\\n}\\n.group-formatting-style .title-font {\\n color: #000000;\\n font-family: Roboto, \\\"Helvetica Neue\\\", sans-serif;\\n font-size: 14px;\\n font-weight: 500;\\n line-height: 17px;\\n width: 210px;\\n text-align: left;\\n}\\n.group-formatting-style .content-font {\\n color: #000000;\\n font-family: Roboto, \\\"Helvetica Neue\\\", sans-serif;\\n font-size: 13px;\\n font-weight: 400;\\n line-height: 17px;\\n width: 59px;\\n text-align: left;\\n}\\n.group-formatting-style .radio-toolbar {\\n margin-top: 10px;\\n}\\n.group-formatting-style .radio-toolbar input[type=radio] {\\n opacity: 0;\\n position: fixed;\\n width: 20px;\\n}\\n.group-formatting-style .radio-toolbar label {\\n display: inline-block;\\n text-align: center;\\n padding: 5px;\\n font-family: Roboto, \\\"Helvetica Neue\\\", sans-serif;\\n font-size: 13px;\\n font-weight: 500;\\n border: 1px solid #cccccc;\\n width: 70px;\\n min-width: 70px;\\n margin-right: 5px;\\n margin-bottom: 5px;\\n}\\n.group-formatting-style .radio-toolbar label:hover {\\n background-color: #dfd;\\n}\\n.group-formatting-style .radio-toolbar input[type=radio]:checked + label {\\n background-color: #0077C8;\\n color: #ffffff;\\n}\\n.group-formatting-style .label-checked {\\n background-color: #0077C8;\\n color: #ffffff;\\n}\\n.group-formatting-style span {\\n font-family: \\\"Helvetica\\\", Times, serif;\\n font-size: 13px;\\n}\\n.group-formatting-style .dot {\\n margin-top: 5px;\\n height: 15px;\\n width: 15px;\\n background-color: #bbb;\\n border-radius: 50%;\\n display: inline-block;\\n margin-right: 10px;\\n}\\n.group-formatting-style .dot-backcolour-green {\\n background-color: #6BCC6F;\\n}\\n.group-formatting-style .dot-backcolour-red {\\n background-color: #FF0000;\\n}\\n.group-formatting-style .dot-backcolour-orange {\\n background-color: #FFA500;\\n}\\n.group-formatting-style .button-style {\\n width: 100px;\\n height: 36px;\\n font-family: Roboto, \\\"Helvetica Neue\\\", sans-serif;\\n font-size: 13px;\\n font-weight: 500;\\n text-align: center;\\n border: 0px solid;\\n background-color: #FFCC33;\\n padding: 0 !important;\\n border-radius: 0px;\\n}\\n.group-formatting-style .table-div {\\n height: 410px;\\n border: 1px solid #ccc;\\n overflow-y: auto;\\n}\\n.group-formatting-style .table-div table th {\\n border-right: 1px solid #ccc;\\n padding: 3px;\\n text-align: center;\\n background-color: #2d4557;\\n color: #ffffff;\\n}\\n.group-formatting-style .table-div table th:empty {\\n display: none;\\n}\\n.group-formatting-style .table-div table td {\\n border: 1px solid #ccc;\\n padding: 3px;\\n}\\n.group-formatting-style .table-div table tr:nth-child(even) {\\n background-color: #f2f2f2;\\n}\\n.group-formatting-style .table-div table thead {\\n background-color: #eee;\\n position: -webkit-sticky;\\n position: sticky;\\n top: -2px;\\n}\\n.group-formatting-style .selected-row {\\n background-color: #89cbf2;\\n font-size: 13px !important;\\n}\\n.group-formatting-style .edited-row {\\n color: red;\\n font-size: 13px !important;\\n}\\n.group-formatting-style input {\\n margin: 5px;\\n}\\n.group-formatting-style .operator-class {\\n width: 25px;\\n height: 8px;\\n border: 2px solid #000000;\\n padding: 5px;\\n text-align: center;\\n border-radius: 22%;\\n background-color: #ffffff;\\n color: #000000;\\n font-weight: 600;\\n font-size: 12px;\\n cursor: pointer;\\n}\\n.group-formatting-style .add-class {\\n margin-top: 6px;\\n margin-bottom: 0;\\n font-size: 18px;\\n}\\n.text-span {\\n font-family: Roboto, \\\"Helvetica Neue\\\", sans-serif;\\n font-size: 11px !important;\\n font-weight: 400;\\n line-height: 20px;\\n}\\n.table-div::-webkit-scrollbar {\\n width: 10px;\\n}\\n.table-div::-webkit-scrollbar-thumb {\\n background-color: #2d4557;\\n border-radius: 5px;\\n}\\ntr.mat-row {\\n line-height: 30px;\\n white-space: nowrap;\\n}\\ntr.mat-row td {\\n font-size: 13px;\\n font-family: Roboto, \\\"Helvetica Neue\\\", sans-serif;\\n overflow: hidden;\\n text-overflow: ellipsis;\\n}\\ntr.mat-row.highlightedRow {\\n background-color: #2d4557 !important;\\n}\\ntr.mat-row.highlightedRow td {\\n color: #ffffff !important;\\n white-space: initial !important;\\n}\\n.forb {\\n color: #FF0000;\\n}\\n.cls-displaynone {\\n display: none !important;\\n}\\n.cls-wt20p {\\n width: 20% !important;\\n}\\n.cls-grpFormatTab {\\n border: 1px solid #ccc !important;\\n border-collapse: collapse !important;\\n}\\n/*# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi91c3Ivc3JjL3NyYy9hcHAvY29tcG9uZW50L2dyb3VwLWZvcm1hdHRpbmcvZ3JvdXAtZm9ybWF0dGluZy5jb21wb25lbnQuc2NzcyIsInNyYy9hcHAvY29tcG9uZW50L2dyb3VwLWZvcm1hdHRpbmcvZ3JvdXAtZm9ybWF0dGluZy5jb21wb25lbnQuc2NzcyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQTtFQUNJLFVBQUE7RUFDQSxpQkFBQTtFQUNBLGlCQUFBO0VBQ0EsYUFBQTtFQUNBLHlCQUFBO0FDQ0o7QURDSTtFQUNJLFdBQUE7QUNDUjtBREVJO0VBQ0ksWUFBQTtBQ0FSO0FER0k7RUFDSSxhQUFBO0FDRFI7QURJSTtFQUNJLG1CQUFBO0FDRlI7QURLSTtFQUNJLFVBQUE7RUFFQSxlQUFBO0VBQ0EsY0FBQTtBQ0pSO0FET0k7RUFDSSxhQUFBO0VBRUEsY0FBQTtBQ05SO0FEU0k7RUFFSSxrQkFBQTtBQ1JSO0FEV0k7RUFDSSxZQUFBO0VBQ0EsV0FBQTtFQUVBLGVBQUE7QUNWUjtBRGFJO0VBQ0ksY0FBQTtFQUNBLGlEQUFBO0VBQ0EsZUFBQTtFQUNBLGdCQUFBO0VBQ0EsaUJBQUE7RUFDQSxZQUFBO0VBQ0EsZ0JBQUE7QUNYUjtBRGNJO0VBQ0ksY0FBQTtFQUNBLGlEQUFBO0VBQ0EsZUFBQTtFQUNBLGdCQUFBO0VBQ0EsaUJBQUE7RUFDQSxXQUFBO0VBQ0EsZ0JBQUE7QUNaUjtBRGVJO0VBQ0ksZ0JBQUE7QUNiUjtBRGdCSTtFQUNJLFVBQUE7RUFDQSxlQUFBO0VBQ0EsV0FBQTtBQ2RSO0FEaUJJO0VBQ0kscUJBQUE7RUFFQSxrQkFBQTtFQUNBLFlBQUE7RUFDQSxpREFBQTtFQUNBLGVBQUE7RUFDQSxnQkFBQTtFQUNBLHlCQUFBO0VBRUEsV0FBQTtFQUNBLGVBQUE7RUFDQSxpQkFBQTtFQUNBLGtCQUFBO0FDakJSO0FEb0JJO0VBQ0ksc0JBQUE7QUNsQlI7QUR5Qkk7RUFDSSx5QkFBQTtFQUVBLGNBQUE7QUN4QlI7QUQyQkk7RUFDSSx5QkFBQTtFQUVBLGNBQUE7QUMxQlI7QUQ2Qkk7RUFDSSxzQ0FBQTtFQUNBLGVBQUE7QUMzQlI7QUQ4Qkk7RUFDSSxlQUFBO0VBQ0EsWUFBQTtFQUNBLFdBQUE7RUFDQSxzQkFBQTtFQUNBLGtCQUFBO0VBQ0EscUJBQUE7RUFDQSxrQkFBQTtBQzVCUjtBRCtCSTtFQUNJLHlCQUFBO0FDN0JSO0FEZ0NJO0VBQ0kseUJBQUE7QUM5QlI7QURpQ0k7RUFDSSx5QkFBQTtBQy9CUjtBRGtDSTtFQUNJLFlBQUE7RUFDQSxZQUFBO0VBQ0EsaURBQUE7RUFDQSxlQUFBO0VBQ0EsZ0JBQUE7RUFDQSxrQkFBQTtFQUNBLGlCQUFBO0VBQ0EseUJBQUE7RUFDQSxxQkFBQTtFQUNBLGtCQUFBO0FDaENSO0FEb0NJO0VBQ0ksYUFBQTtFQUNBLHNCQUFBO0VBQ0EsZ0JBQUE7QUNsQ1I7QUR1Q1k7RUFDSSw0QkFBQTtFQUNBLFlBQUE7RUFDQSxrQkFBQTtFQUNBLHlCQUFBO0VBQ0EsY0FBQTtBQ3JDaEI7QUR3Q1k7RUFDSSxhQUFBO0FDdENoQjtBRHdDWTtFQUNJLHNCQUFBO0VBQ0EsWUFBQTtBQ3RDaEI7QUR5Q1k7RUFDSSx5QkFBQTtBQ3ZDaEI7QUQwQ1k7RUFDSSxzQkFBQTtFQUNBLHdCQUFBO0VBQUEsZ0JBQUE7RUFDQSxTQUFBO0FDeENoQjtBRDhDSTtFQUNJLHlCQUFBO0VBRUEsMEJBQUE7QUM3Q1I7QURnREk7RUFDSSxVQUFBO0VBRUEsMEJBQUE7QUMvQ1I7QURrREk7RUFDSSxXQUFBO0FDaERSO0FEbURJO0VBQ0ksV0FBQTtFQUNBLFdBQUE7RUFDQSx5QkFBQTtFQUNBLFlBQUE7RUFDQSxrQkFBQTtFQUNBLGtCQUFBO0VBQ0EseUJBQUE7RUFDQSxjQUFBO0VBQ0EsZ0JBQUE7RUFDQSxlQUFBO0VBQ0EsZUFBQTtBQ2pEUjtBRG9ESTtFQUNJLGVBQUE7RUFDQSxnQkFBQTtFQUNBLGVBQUE7QUNsRFI7QUR1REE7RUFDSSxpREFBQTtFQUNBLDBCQUFBO0VBQ0EsZ0JBQUE7RUFDQSxpQkFBQTtBQ3BESjtBRHlEQTtFQUNJLFdBQUE7QUN0REo7QUR5REE7RUFDSSx5QkFBQTtFQUNBLGtCQUFBO0FDdERKO0FEeURBO0VBQ0ksaUJBQUE7RUFDQSxtQkFBQTtBQ3RESjtBRHdESTtFQUNJLGVBQUE7RUFDQSxpREFBQTtFQUNBLGdCQUFBO0VBQ0EsdUJBQUE7QUN0RFI7QUQ0REE7RUFDSSxvQ0FBQTtBQ3pESjtBRDJESTtFQUNJLHlCQUFBO0VBQ0EsK0JBQUE7QUN6RFI7QUQ4REE7RUFDSSxjQUFBO0FDM0RKO0FEOERBO0VBQ0ksd0JBQUE7QUMzREo7QUQ2REE7RUFDSSxxQkFBQTtBQzFESjtBRDREQTtFQUNJLGlDQUFBO0VBQW1DLG9DQUFBO0FDeER2QyIsImZpbGUiOiJzcmMvYXBwL2NvbXBvbmVudC9ncm91cC1mb3JtYXR0aW5nL2dyb3VwLWZvcm1hdHRpbmcuY29tcG9uZW50LnNjc3MiLCJzb3VyY2VzQ29udGVudCI6WyIuZ3JvdXAtZm9ybWF0dGluZy1zdHlsZSB7XG4gICAgd2lkdGg6IDYwJTtcbiAgICBtYXgtaGVpZ2h0OiA2MTBweDtcbiAgICBib3JkZXI6IDFweCBzb2xpZDtcbiAgICBwYWRkaW5nOiAxNXB4O1xuICAgIGJhY2tncm91bmQtY29sb3I6ICNmZmZmZmY7XG5cbiAgICAuZGl2LXdpZHRoIHtcbiAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgfVxuXG4gICAgLml0ZW0tcmlnaHQge1xuICAgICAgICBmbG9hdDogcmlnaHQ7XG4gICAgfVxuXG4gICAgLmRpdi1mbGV4IHtcbiAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICB9XG5cbiAgICAubWFyZ2luLWJvdC0xMCB7XG4gICAgICAgIG1hcmdpbi1ib3R0b206IDEwcHg7XG4gICAgfVxuXG4gICAgLmRvdC1zdHlsZSB7XG4gICAgICAgIHdpZHRoOiAwcHg7XG4gICAgICAgIC8vIG1hcmdpbi1sZWZ0OiAxMHB4OyBcbiAgICAgICAgbWFyZ2luLXRvcDogNHB4O1xuICAgICAgICBjb2xvcjogI2ZmZmZmZjtcbiAgICB9XG5cbiAgICAuZXhhbXBsZS1yYWRpby1ncm91cCB7XG4gICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgIC8vICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcbiAgICAgICAgbWFyZ2luOiAxNXB4IDA7XG4gICAgfVxuXG4gICAgLmV4YW1wbGUtcmFkaW8tYnV0dG9uIHtcbiAgICAgICAgLy8gICBtYXJnaW46IDVweDtcbiAgICAgICAgbWFyZ2luLXJpZ2h0OiAyMHB4O1xuICAgIH1cblxuICAgIC5pbWctc2l6ZS0yMCB7XG4gICAgICAgIGhlaWdodDogMThweDtcbiAgICAgICAgd2lkdGg6IDE4cHg7XG4gICAgICAgIC8vIG1hcmdpbi10b3A6IDdweDtcbiAgICAgICAgY3Vyc29yOiBwb2ludGVyO1xuICAgIH1cblxuICAgIC50aXRsZS1mb250IHtcbiAgICAgICAgY29sb3I6ICMwMDAwMDA7XG4gICAgICAgIGZvbnQtZmFtaWx5OiBSb2JvdG8sIFwiSGVsdmV0aWNhIE5ldWVcIiwgc2Fucy1zZXJpZjtcbiAgICAgICAgZm9udC1zaXplOiAxNHB4O1xuICAgICAgICBmb250LXdlaWdodDogNTAwO1xuICAgICAgICBsaW5lLWhlaWdodDogMTdweDtcbiAgICAgICAgd2lkdGg6IDIxMHB4O1xuICAgICAgICB0ZXh0LWFsaWduOiBsZWZ0O1xuICAgIH1cblxuICAgIC5jb250ZW50LWZvbnQge1xuICAgICAgICBjb2xvcjogIzAwMDAwMDtcbiAgICAgICAgZm9udC1mYW1pbHk6IFJvYm90bywgXCJIZWx2ZXRpY2EgTmV1ZVwiLCBzYW5zLXNlcmlmO1xuICAgICAgICBmb250LXNpemU6IDEzcHg7XG4gICAgICAgIGZvbnQtd2VpZ2h0OiA0MDA7XG4gICAgICAgIGxpbmUtaGVpZ2h0OiAxN3B4O1xuICAgICAgICB3aWR0aDogNTlweDtcbiAgICAgICAgdGV4dC1hbGlnbjogbGVmdDtcbiAgICB9XG5cbiAgICAucmFkaW8tdG9vbGJhciB7XG4gICAgICAgIG1hcmdpbi10b3A6IDEwcHg7XG4gICAgfVxuXG4gICAgLnJhZGlvLXRvb2xiYXIgaW5wdXRbdHlwZT1cInJhZGlvXCJdIHtcbiAgICAgICAgb3BhY2l0eTogMDtcbiAgICAgICAgcG9zaXRpb246IGZpeGVkO1xuICAgICAgICB3aWR0aDogMjBweDtcbiAgICB9XG5cbiAgICAucmFkaW8tdG9vbGJhciBsYWJlbCB7XG4gICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgLy8gYmFja2dyb3VuZC1jb2xvcjogI2RkZDtcbiAgICAgICAgdGV4dC1hbGlnbjogY2VudGVyO1xuICAgICAgICBwYWRkaW5nOiA1cHg7XG4gICAgICAgIGZvbnQtZmFtaWx5OiBSb2JvdG8sIFwiSGVsdmV0aWNhIE5ldWVcIiwgc2Fucy1zZXJpZjtcbiAgICAgICAgZm9udC1zaXplOiAxM3B4O1xuICAgICAgICBmb250LXdlaWdodDogNTAwO1xuICAgICAgICBib3JkZXI6IDFweCBzb2xpZCAjY2NjY2NjO1xuICAgICAgICAvLyBib3JkZXItcmFkaXVzOiA0cHg7XG4gICAgICAgIHdpZHRoOiA3MHB4O1xuICAgICAgICBtaW4td2lkdGg6IDcwcHg7XG4gICAgICAgIG1hcmdpbi1yaWdodDogNXB4O1xuICAgICAgICBtYXJnaW4tYm90dG9tOiA1cHg7XG4gICAgfVxuXG4gICAgLnJhZGlvLXRvb2xiYXIgbGFiZWw6aG92ZXIge1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjZGZkO1xuICAgIH1cblxuICAgIC8vIC5yYWRpby10b29sYmFyIGlucHV0W3R5cGU9XCJyYWRpb1wiXTpmb2N1cyArIGxhYmVsIHtcbiAgICAvLyAgICAgYm9yZGVyOiAycHggZGFzaGVkICM0NDQ7XG4gICAgLy8gfVxuXG4gICAgLnJhZGlvLXRvb2xiYXIgaW5wdXRbdHlwZT1cInJhZGlvXCJdOmNoZWNrZWQrbGFiZWwge1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjMDA3N0M4O1xuICAgICAgICAvLyBib3JkZXItY29sb3I6ICM0YzQ7XG4gICAgICAgIGNvbG9yOiAjZmZmZmZmO1xuICAgIH1cblxuICAgIC5sYWJlbC1jaGVja2VkIHtcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogIzAwNzdDODtcbiAgICAgICAgLy8gYm9yZGVyLWNvbG9yOiAjNGM0O1xuICAgICAgICBjb2xvcjogI2ZmZmZmZjtcbiAgICB9XG5cbiAgICBzcGFuIHtcbiAgICAgICAgZm9udC1mYW1pbHk6IFwiSGVsdmV0aWNhXCIsIFRpbWVzLCBzZXJpZjtcbiAgICAgICAgZm9udC1zaXplOiAxM3B4O1xuICAgIH1cblxuICAgIC5kb3Qge1xuICAgICAgICBtYXJnaW4tdG9wOiA1cHg7XG4gICAgICAgIGhlaWdodDogMTVweDtcbiAgICAgICAgd2lkdGg6IDE1cHg7XG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6ICNiYmI7XG4gICAgICAgIGJvcmRlci1yYWRpdXM6IDUwJTtcbiAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICBtYXJnaW4tcmlnaHQ6IDEwcHg7XG4gICAgfVxuXG4gICAgLmRvdC1iYWNrY29sb3VyLWdyZWVuIHtcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogIzZCQ0M2RjtcbiAgICB9XG5cbiAgICAuZG90LWJhY2tjb2xvdXItcmVkIHtcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogI0ZGMDAwMDtcbiAgICB9XG5cbiAgICAuZG90LWJhY2tjb2xvdXItb3JhbmdlIHtcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogI0ZGQTUwMDtcbiAgICB9XG5cbiAgICAuYnV0dG9uLXN0eWxlIHtcbiAgICAgICAgd2lkdGg6IDEwMHB4O1xuICAgICAgICBoZWlnaHQ6IDM2cHg7XG4gICAgICAgIGZvbnQtZmFtaWx5OiBSb2JvdG8sIFwiSGVsdmV0aWNhIE5ldWVcIiwgc2Fucy1zZXJpZjtcbiAgICAgICAgZm9udC1zaXplOiAxM3B4O1xuICAgICAgICBmb250LXdlaWdodDogNTAwO1xuICAgICAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gICAgICAgIGJvcmRlcjogMHB4IHNvbGlkO1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjRkZDQzMzO1xuICAgICAgICBwYWRkaW5nOiAwICFpbXBvcnRhbnQ7XG4gICAgICAgIGJvcmRlci1yYWRpdXM6IDBweDtcbiAgICB9XG5cblxuICAgIC50YWJsZS1kaXYge1xuICAgICAgICBoZWlnaHQ6IDQxMHB4O1xuICAgICAgICBib3JkZXI6IDFweCBzb2xpZCAjY2NjO1xuICAgICAgICBvdmVyZmxvdy15OiBhdXRvO1xuXG4gICAgICAgIHRhYmxlIHtcblxuICAgICAgICAgICAgLy8gaGVpZ2h0OiA0MDBweCAhaW1wb3J0YW50O1xuICAgICAgICAgICAgdGgge1xuICAgICAgICAgICAgICAgIGJvcmRlci1yaWdodDogMXB4IHNvbGlkICNjY2M7XG4gICAgICAgICAgICAgICAgcGFkZGluZzogM3B4O1xuICAgICAgICAgICAgICAgIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjMmQ0NTU3O1xuICAgICAgICAgICAgICAgIGNvbG9yOiAjZmZmZmZmO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICB0aDplbXB0eXtcbiAgICAgICAgICAgICAgICBkaXNwbGF5Om5vbmU7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICB0ZCB7XG4gICAgICAgICAgICAgICAgYm9yZGVyOiAxcHggc29saWQgI2NjYztcbiAgICAgICAgICAgICAgICBwYWRkaW5nOiAzcHg7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgIHRyOm50aC1jaGlsZChldmVuKSB7XG4gICAgICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogI2YyZjJmMjtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgdGhlYWQge1xuICAgICAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICNlZWU7XG4gICAgICAgICAgICAgICAgcG9zaXRpb246IHN0aWNreTtcbiAgICAgICAgICAgICAgICB0b3A6IC0ycHg7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgIH1cblxuICAgIC5zZWxlY3RlZC1yb3cge1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjODljYmYyO1xuICAgICAgICAvLyBmb250LXdlaWdodDogNjAwO1xuICAgICAgICBmb250LXNpemU6IDEzcHggIWltcG9ydGFudDtcbiAgICB9XG5cbiAgICAuZWRpdGVkLXJvdyB7XG4gICAgICAgIGNvbG9yOiByZWQ7XG4gICAgICAgIC8vIGZvbnQtd2VpZ2h0OiA2MDA7XG4gICAgICAgIGZvbnQtc2l6ZTogMTNweCAhaW1wb3J0YW50O1xuICAgIH1cblxuICAgIGlucHV0IHtcbiAgICAgICAgbWFyZ2luOiA1cHg7XG4gICAgfVxuXG4gICAgLm9wZXJhdG9yLWNsYXNzIHtcbiAgICAgICAgd2lkdGg6IDI1cHg7XG4gICAgICAgIGhlaWdodDogOHB4O1xuICAgICAgICBib3JkZXI6IDJweCBzb2xpZCAjMDAwMDAwO1xuICAgICAgICBwYWRkaW5nOiA1cHg7XG4gICAgICAgIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgICAgICAgYm9yZGVyLXJhZGl1czogMjIlO1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjZmZmZmZmO1xuICAgICAgICBjb2xvcjogIzAwMDAwMDtcbiAgICAgICAgZm9udC13ZWlnaHQ6IDYwMDtcbiAgICAgICAgZm9udC1zaXplOiAxMnB4O1xuICAgICAgICBjdXJzb3I6IHBvaW50ZXI7XG4gICAgfVxuXG4gICAgLmFkZC1jbGFzcyB7XG4gICAgICAgIG1hcmdpbi10b3A6IDZweDtcbiAgICAgICAgbWFyZ2luLWJvdHRvbTogMDtcbiAgICAgICAgZm9udC1zaXplOiAxOHB4O1xuICAgIH1cbn1cblxuXG4udGV4dC1zcGFuIHtcbiAgICBmb250LWZhbWlseTogUm9ib3RvLCBcIkhlbHZldGljYSBOZXVlXCIsIHNhbnMtc2VyaWY7XG4gICAgZm9udC1zaXplOiAxMXB4ICFpbXBvcnRhbnQ7XG4gICAgZm9udC13ZWlnaHQ6IDQwMDtcbiAgICBsaW5lLWhlaWdodDogMjBweDtcbiAgICAvLyBtYXJnaW4tbGVmdDogLTRweDtcbn1cblxuXG4udGFibGUtZGl2Ojotd2Via2l0LXNjcm9sbGJhciB7XG4gICAgd2lkdGg6IDEwcHg7XG59XG5cbi50YWJsZS1kaXY6Oi13ZWJraXQtc2Nyb2xsYmFyLXRodW1iIHtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjMmQ0NTU3O1xuICAgIGJvcmRlci1yYWRpdXM6IDVweDtcbn1cblxudHIubWF0LXJvdyB7XG4gICAgbGluZS1oZWlnaHQ6IDMwcHg7XG4gICAgd2hpdGUtc3BhY2U6IG5vd3JhcDtcblxuICAgIHRkIHtcbiAgICAgICAgZm9udC1zaXplOiAxM3B4O1xuICAgICAgICBmb250LWZhbWlseTogUm9ib3RvLCBcIkhlbHZldGljYSBOZXVlXCIsIHNhbnMtc2VyaWY7XG4gICAgICAgIG92ZXJmbG93OiBoaWRkZW47XG4gICAgICAgIHRleHQtb3ZlcmZsb3c6IGVsbGlwc2lzO1xuICAgICAgICAvLyB3aWR0aDogMTAlO1xuICAgICAgICAvLyBwYWRkaW5nOiAwO1xuICAgIH1cbn1cblxudHIubWF0LXJvdy5oaWdobGlnaHRlZFJvdyB7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogIzJkNDU1NyAhaW1wb3J0YW50O1xuXG4gICAgdGQge1xuICAgICAgICBjb2xvcjogI2ZmZmZmZiAhaW1wb3J0YW50O1xuICAgICAgICB3aGl0ZS1zcGFjZTogaW5pdGlhbCAhaW1wb3J0YW50O1xuICAgICAgICAvLyB3aWR0aDogY2FsYygxMDAlIC0gM2VtKTtcbiAgICB9XG59XG5cbi5mb3JiIHtcbiAgICBjb2xvcjogI0ZGMDAwMDtcbn1cblxuLmNscy1kaXNwbGF5bm9uZXtcbiAgICBkaXNwbGF5OiBub25lICFpbXBvcnRhbnQ7XG59XG4uY2xzLXd0MjBwe1xuICAgIHdpZHRoOjIwJSAhaW1wb3J0YW50O1xufVxuLmNscy1ncnBGb3JtYXRUYWJ7XG4gICAgYm9yZGVyOiAxcHggc29saWQgI2NjYyAhaW1wb3J0YW50OyBib3JkZXItY29sbGFwc2U6IGNvbGxhcHNlICFpbXBvcnRhbnQ7XG59IiwiLmdyb3VwLWZvcm1hdHRpbmctc3R5bGUge1xuICB3aWR0aDogNjAlO1xuICBtYXgtaGVpZ2h0OiA2MTBweDtcbiAgYm9yZGVyOiAxcHggc29saWQ7XG4gIHBhZGRpbmc6IDE1cHg7XG4gIGJhY2tncm91bmQtY29sb3I6ICNmZmZmZmY7XG59XG4uZ3JvdXAtZm9ybWF0dGluZy1zdHlsZSAuZGl2LXdpZHRoIHtcbiAgd2lkdGg6IDEwMCU7XG59XG4uZ3JvdXAtZm9ybWF0dGluZy1zdHlsZSAuaXRlbS1yaWdodCB7XG4gIGZsb2F0OiByaWdodDtcbn1cbi5ncm91cC1mb3JtYXR0aW5nLXN0eWxlIC5kaXYtZmxleCB7XG4gIGRpc3BsYXk6IGZsZXg7XG59XG4uZ3JvdXAtZm9ybWF0dGluZy1zdHlsZSAubWFyZ2luLWJvdC0xMCB7XG4gIG1hcmdpbi1ib3R0b206IDEwcHg7XG59XG4uZ3JvdXAtZm9ybWF0dGluZy1zdHlsZSAuZG90LXN0eWxlIHtcbiAgd2lkdGg6IDBweDtcbiAgbWFyZ2luLXRvcDogNHB4O1xuICBjb2xvcjogI2ZmZmZmZjtcbn1cbi5ncm91cC1mb3JtYXR0aW5nLXN0eWxlIC5leGFtcGxlLXJhZGlvLWdyb3VwIHtcbiAgZGlzcGxheTogZmxleDtcbiAgbWFyZ2luOiAxNXB4IDA7XG59XG4uZ3JvdXAtZm9ybWF0dGluZy1zdHlsZSAuZXhhbXBsZS1yYWRpby1idXR0b24ge1xuICBtYXJnaW4tcmlnaHQ6IDIwcHg7XG59XG4uZ3JvdXAtZm9ybWF0dGluZy1zdHlsZSAuaW1nLXNpemUtMjAge1xuICBoZWlnaHQ6IDE4cHg7XG4gIHdpZHRoOiAxOHB4O1xuICBjdXJzb3I6IHBvaW50ZXI7XG59XG4uZ3JvdXAtZm9ybWF0dGluZy1zdHlsZSAudGl0bGUtZm9udCB7XG4gIGNvbG9yOiAjMDAwMDAwO1xuICBmb250LWZhbWlseTogUm9ib3RvLCBcIkhlbHZldGljYSBOZXVlXCIsIHNhbnMtc2VyaWY7XG4gIGZvbnQtc2l6ZTogMTRweDtcbiAgZm9udC13ZWlnaHQ6IDUwMDtcbiAgbGluZS1oZWlnaHQ6IDE3cHg7XG4gIHdpZHRoOiAyMTBweDtcbiAgdGV4dC1hbGlnbjogbGVmdDtcbn1cbi5ncm91cC1mb3JtYXR0aW5nLXN0eWxlIC5jb250ZW50LWZvbnQge1xuICBjb2xvcjogIzAwMDAwMDtcbiAgZm9udC1mYW1pbHk6IFJvYm90bywgXCJIZWx2ZXRpY2EgTmV1ZVwiLCBzYW5zLXNlcmlmO1xuICBmb250LXNpemU6IDEzcHg7XG4gIGZvbnQtd2VpZ2h0OiA0MDA7XG4gIGxpbmUtaGVpZ2h0OiAxN3B4O1xuICB3aWR0aDogNTlweDtcbiAgdGV4dC1hbGlnbjogbGVmdDtcbn1cbi5ncm91cC1mb3JtYXR0aW5nLXN0eWxlIC5yYWRpby10b29sYmFyIHtcbiAgbWFyZ2luLXRvcDogMTBweDtcbn1cbi5ncm91cC1mb3JtYXR0aW5nLXN0eWxlIC5yYWRpby10b29sYmFyIGlucHV0W3R5cGU9cmFkaW9dIHtcbiAgb3BhY2l0eTogMDtcbiAgcG9zaXRpb246IGZpeGVkO1xuICB3aWR0aDogMjBweDtcbn1cbi5ncm91cC1mb3JtYXR0aW5nLXN0eWxlIC5yYWRpby10b29sYmFyIGxhYmVsIHtcbiAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gIHBhZGRpbmc6IDVweDtcbiAgZm9udC1mYW1pbHk6IFJvYm90bywgXCJIZWx2ZXRpY2EgTmV1ZVwiLCBzYW5zLXNlcmlmO1xuICBmb250LXNpemU6IDEzcHg7XG4gIGZvbnQtd2VpZ2h0OiA1MDA7XG4gIGJvcmRlcjogMXB4IHNvbGlkICNjY2NjY2M7XG4gIHdpZHRoOiA3MHB4O1xuICBtaW4td2lkdGg6IDcwcHg7XG4gIG1hcmdpbi1yaWdodDogNXB4O1xuICBtYXJnaW4tYm90dG9tOiA1cHg7XG59XG4uZ3JvdXAtZm9ybWF0dGluZy1zdHlsZSAucmFkaW8tdG9vbGJhciBsYWJlbDpob3ZlciB7XG4gIGJhY2tncm91bmQtY29sb3I6ICNkZmQ7XG59XG4uZ3JvdXAtZm9ybWF0dGluZy1zdHlsZSAucmFkaW8tdG9vbGJhciBpbnB1dFt0eXBlPXJhZGlvXTpjaGVja2VkICsgbGFiZWwge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjMDA3N0M4O1xuICBjb2xvcjogI2ZmZmZmZjtcbn1cbi5ncm91cC1mb3JtYXR0aW5nLXN0eWxlIC5sYWJlbC1jaGVja2VkIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogIzAwNzdDODtcbiAgY29sb3I6ICNmZmZmZmY7XG59XG4uZ3JvdXAtZm9ybWF0dGluZy1zdHlsZSBzcGFuIHtcbiAgZm9udC1mYW1pbHk6IFwiSGVsdmV0aWNhXCIsIFRpbWVzLCBzZXJpZjtcbiAgZm9udC1zaXplOiAxM3B4O1xufVxuLmdyb3VwLWZvcm1hdHRpbmctc3R5bGUgLmRvdCB7XG4gIG1hcmdpbi10b3A6IDVweDtcbiAgaGVpZ2h0OiAxNXB4O1xuICB3aWR0aDogMTVweDtcbiAgYmFja2dyb3VuZC1jb2xvcjogI2JiYjtcbiAgYm9yZGVyLXJhZGl1czogNTAlO1xuICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gIG1hcmdpbi1yaWdodDogMTBweDtcbn1cbi5ncm91cC1mb3JtYXR0aW5nLXN0eWxlIC5kb3QtYmFja2NvbG91ci1ncmVlbiB7XG4gIGJhY2tncm91bmQtY29sb3I6ICM2QkNDNkY7XG59XG4uZ3JvdXAtZm9ybWF0dGluZy1zdHlsZSAuZG90LWJhY2tjb2xvdXItcmVkIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogI0ZGMDAwMDtcbn1cbi5ncm91cC1mb3JtYXR0aW5nLXN0eWxlIC5kb3QtYmFja2NvbG91ci1vcmFuZ2Uge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjRkZBNTAwO1xufVxuLmdyb3VwLWZvcm1hdHRpbmctc3R5bGUgLmJ1dHRvbi1zdHlsZSB7XG4gIHdpZHRoOiAxMDBweDtcbiAgaGVpZ2h0OiAzNnB4O1xuICBmb250LWZhbWlseTogUm9ib3RvLCBcIkhlbHZldGljYSBOZXVlXCIsIHNhbnMtc2VyaWY7XG4gIGZvbnQtc2l6ZTogMTNweDtcbiAgZm9udC13ZWlnaHQ6IDUwMDtcbiAgdGV4dC1hbGlnbjogY2VudGVyO1xuICBib3JkZXI6IDBweCBzb2xpZDtcbiAgYmFja2dyb3VuZC1jb2xvcjogI0ZGQ0MzMztcbiAgcGFkZGluZzogMCAhaW1wb3J0YW50O1xuICBib3JkZXItcmFkaXVzOiAwcHg7XG59XG4uZ3JvdXAtZm9ybWF0dGluZy1zdHlsZSAudGFibGUtZGl2IHtcbiAgaGVpZ2h0OiA0MTBweDtcbiAgYm9yZGVyOiAxcHggc29saWQgI2NjYztcbiAgb3ZlcmZsb3cteTogYXV0bztcbn1cbi5ncm91cC1mb3JtYXR0aW5nLXN0eWxlIC50YWJsZS1kaXYgdGFibGUgdGgge1xuICBib3JkZXItcmlnaHQ6IDFweCBzb2xpZCAjY2NjO1xuICBwYWRkaW5nOiAzcHg7XG4gIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgYmFja2dyb3VuZC1jb2xvcjogIzJkNDU1NztcbiAgY29sb3I6ICNmZmZmZmY7XG59XG4uZ3JvdXAtZm9ybWF0dGluZy1zdHlsZSAudGFibGUtZGl2IHRhYmxlIHRoOmVtcHR5IHtcbiAgZGlzcGxheTogbm9uZTtcbn1cbi5ncm91cC1mb3JtYXR0aW5nLXN0eWxlIC50YWJsZS1kaXYgdGFibGUgdGQge1xuICBib3JkZXI6IDFweCBzb2xpZCAjY2NjO1xuICBwYWRkaW5nOiAzcHg7XG59XG4uZ3JvdXAtZm9ybWF0dGluZy1zdHlsZSAudGFibGUtZGl2IHRhYmxlIHRyOm50aC1jaGlsZChldmVuKSB7XG4gIGJhY2tncm91bmQtY29sb3I6ICNmMmYyZjI7XG59XG4uZ3JvdXAtZm9ybWF0dGluZy1zdHlsZSAudGFibGUtZGl2IHRhYmxlIHRoZWFkIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogI2VlZTtcbiAgcG9zaXRpb246IHN0aWNreTtcbiAgdG9wOiAtMnB4O1xufVxuLmdyb3VwLWZvcm1hdHRpbmctc3R5bGUgLnNlbGVjdGVkLXJvdyB7XG4gIGJhY2tncm91bmQtY29sb3I6ICM4OWNiZjI7XG4gIGZvbnQtc2l6ZTogMTNweCAhaW1wb3J0YW50O1xufVxuLmdyb3VwLWZvcm1hdHRpbmctc3R5bGUgLmVkaXRlZC1yb3cge1xuICBjb2xvcjogcmVkO1xuICBmb250LXNpemU6IDEzcHggIWltcG9ydGFudDtcbn1cbi5ncm91cC1mb3JtYXR0aW5nLXN0eWxlIGlucHV0IHtcbiAgbWFyZ2luOiA1cHg7XG59XG4uZ3JvdXAtZm9ybWF0dGluZy1zdHlsZSAub3BlcmF0b3ItY2xhc3Mge1xuICB3aWR0aDogMjVweDtcbiAgaGVpZ2h0OiA4cHg7XG4gIGJvcmRlcjogMnB4IHNvbGlkICMwMDAwMDA7XG4gIHBhZGRpbmc6IDVweDtcbiAgdGV4dC1hbGlnbjogY2VudGVyO1xuICBib3JkZXItcmFkaXVzOiAyMiU7XG4gIGJhY2tncm91bmQtY29sb3I6ICNmZmZmZmY7XG4gIGNvbG9yOiAjMDAwMDAwO1xuICBmb250LXdlaWdodDogNjAwO1xuICBmb250LXNpemU6IDEycHg7XG4gIGN1cnNvcjogcG9pbnRlcjtcbn1cbi5ncm91cC1mb3JtYXR0aW5nLXN0eWxlIC5hZGQtY2xhc3Mge1xuICBtYXJnaW4tdG9wOiA2cHg7XG4gIG1hcmdpbi1ib3R0b206IDA7XG4gIGZvbnQtc2l6ZTogMThweDtcbn1cblxuLnRleHQtc3BhbiB7XG4gIGZvbnQtZmFtaWx5OiBSb2JvdG8sIFwiSGVsdmV0aWNhIE5ldWVcIiwgc2Fucy1zZXJpZjtcbiAgZm9udC1zaXplOiAxMXB4ICFpbXBvcnRhbnQ7XG4gIGZvbnQtd2VpZ2h0OiA0MDA7XG4gIGxpbmUtaGVpZ2h0OiAyMHB4O1xufVxuXG4udGFibGUtZGl2Ojotd2Via2l0LXNjcm9sbGJhciB7XG4gIHdpZHRoOiAxMHB4O1xufVxuXG4udGFibGUtZGl2Ojotd2Via2l0LXNjcm9sbGJhci10aHVtYiB7XG4gIGJhY2tncm91bmQtY29sb3I6ICMyZDQ1NTc7XG4gIGJvcmRlci1yYWRpdXM6IDVweDtcbn1cblxudHIubWF0LXJvdyB7XG4gIGxpbmUtaGVpZ2h0OiAzMHB4O1xuICB3aGl0ZS1zcGFjZTogbm93cmFwO1xufVxudHIubWF0LXJvdyB0ZCB7XG4gIGZvbnQtc2l6ZTogMTNweDtcbiAgZm9udC1mYW1pbHk6IFJvYm90bywgXCJIZWx2ZXRpY2EgTmV1ZVwiLCBzYW5zLXNlcmlmO1xuICBvdmVyZmxvdzogaGlkZGVuO1xuICB0ZXh0LW92ZXJmbG93OiBlbGxpcHNpcztcbn1cblxudHIubWF0LXJvdy5oaWdobGlnaHRlZFJvdyB7XG4gIGJhY2tncm91bmQtY29sb3I6ICMyZDQ1NTcgIWltcG9ydGFudDtcbn1cbnRyLm1hdC1yb3cuaGlnaGxpZ2h0ZWRSb3cgdGQge1xuICBjb2xvcjogI2ZmZmZmZiAhaW1wb3J0YW50O1xuICB3aGl0ZS1zcGFjZTogaW5pdGlhbCAhaW1wb3J0YW50O1xufVxuXG4uZm9yYiB7XG4gIGNvbG9yOiAjRkYwMDAwO1xufVxuXG4uY2xzLWRpc3BsYXlub25lIHtcbiAgZGlzcGxheTogbm9uZSAhaW1wb3J0YW50O1xufVxuXG4uY2xzLXd0MjBwIHtcbiAgd2lkdGg6IDIwJSAhaW1wb3J0YW50O1xufVxuXG4uY2xzLWdycEZvcm1hdFRhYiB7XG4gIGJvcmRlcjogMXB4IHNvbGlkICNjY2MgIWltcG9ydGFudDtcbiAgYm9yZGVyLWNvbGxhcHNlOiBjb2xsYXBzZSAhaW1wb3J0YW50O1xufSJdfQ== */\"","import { Component, OnInit } from '@angular/core';\nimport { ActivatedRoute, Params, Router } from \"@angular/router\";\nimport { MatDialog, MatDialogRef, MAT_DIALOG_DATA } from '@angular/material/dialog';\nimport { ToastyService } from 'ng2-toasty';\nimport role from '../table/role.json';\n\nimport { BackendApiService } from '../../services/backend-api/backend-api.service';\nimport { UtilService } from '../../services/util/util.service';\nimport { RequestService } from '../../services/request/request.service';\nimport { TranslateService } from '@ngx-translate/core';\nimport { AlertConfirmationComponent } from '../alert-confirmation/alert-confirmation.component';\nimport { GroupFormattingConditionComponent } from '../group-formatting-condition/group-formatting-condition.component';\nimport { MatomoTracker } from 'ngx-matomo';\n\n@Component({\n selector: 'app-group-formatting',\n templateUrl: './group-formatting.component.html',\n styleUrls: ['./group-formatting.component.scss']\n})\nexport class GroupFormattingComponent implements OnInit {\n\n role = role;\n alertMsg = [{ 'EUROPE': [] },\n { 'MERCOSUR': [] }];\n tableValues = {\n \"ipn\": undefined, \"region\": undefined, \"responseData\": undefined,\n \"tableData\": undefined, \"selectedRegion\": undefined, \"selectedTable\": undefined, \"selectedTableDetails\": undefined,\n \"dateDiff\": undefined, \"requestDatas\": undefined, \"roleBasedTableList\": undefined\n };\n profile = this.utilService.getUserProfile();\n isAdmin = false;\n roleBasedGroupList;\n filterCategory: any[];\n selectedCategory: 'All';\n categoryList: any[];\n displayCriteriaList: any[];\n criteriaList: any[];\n criteriaListOringinal: any;\n splitChar = \"§\";\n lang = 'fr';\n isShowHiddenList: boolean;\n strLock: any;\n rowIndex: any = -1;\n sLibelle: any = \"\";\n sLibelle_2: any = \"\";\n sLibCourt: any = \"\";\n sLibCourt_2: any = \"\";\n\n isEmpty: boolean;\n isModified: boolean;\n tableSelectionItem: any;\n isModifyCate: boolean;\n filterPrivateCategory: any[];\n\n group_list;\n selectedGroup: any;\n newGroupName: string;\n cList: any[];\n gSource: any[];\n gSourceDisplay: any[];\n\n ddlTS = [{ \"name\": \"Tout\", \"value\": \"T\" }, { \"name\": \"Sauf\", \"value\": \"S\" }];\n\n characterListIndex = ['=', 'Dans liste', '>=', '<=', 'Cont', 'position', '<>'];\n\n constructor(readonly router: Router, readonly activatedRoute: ActivatedRoute, public dialog: MatDialog,\n readonly apiService: BackendApiService, readonly utilService: UtilService,\n private translateService: TranslateService,\n readonly requestService: RequestService, readonly toastyService: ToastyService, private matomoTracker: MatomoTracker) {\n this.utilService.$showIcon$.next(false);\n this.lang = requestService.getSelectedLang();\n }\n\n ngOnInit() {\n; let regionRoles = this.utilService.getUserProfile()['roles'].filter(item => item.includes('ACC_PIL'));\n let regionRolesArr = { ...regionRoles};\n\n if (Object.keys(regionRolesArr).length > 1 && this.profile['roles'].includes('PIL_ADMIN') && this.profile['roles'].includes('PIL_ADMIN')) {\n\n this.tableValues.region = [];\n if(this.profile['roles'].includes('GR_PIL_TOUT'))\n this.tableValues.region.push('Europe');\n if(this.profile['roles'].includes('GR_PIM_TOUT'))\n this.tableValues.region.push('Mercosur');\n \n this.tableValues.selectedRegion = this.profile['roles'].includes('GR_PIL_TOUT') ? \"Europe\" : \"Mercosur\";\n \n } else {\n let region = (regionRoles.includes('ACC_PIL_EUROPE') && this.profile['roles'].includes('PIL_ADMIN') && this.profile['roles'].includes('GR_PIL_TOUT')) ? 'Europe' : 'Mercosur';\n this.tableValues.region = [region];\n this.tableValues.selectedRegion = region;\n }\n\n this.tableValues.ipn = this.profile['login'];\n\n if (sessionStorage.getItem(\"request1\") === null) {\n [1,2,3].forEach(cnt => sessionStorage.setItem(\"request\"+cnt, undefined));\n }\n this.getChoiceTableDetails(this.tableValues.selectedRegion);\n this.matomoTracker.trackPageView(`Group formatting`);\n }\n\n getRegionVal() {\n this.requestService.getRegionMsg()\n }\n\n // allowAllHistoricalData() {\n // if (this.tableValues.selectedRegion === \"Europe\") {\n // if (this.profile['role-pil-irn6804'].indexOf('pil_admin') > -1) {\n // this.isAdmin = true;\n // }\n // } else {\n // if (this.profile['role-pim-irn9207'].indexOf('pim_admin') > -1) {\n // this.isAdmin = true;\n // }\n // }\n // }\n\n getUserRole4TabeList() {\n return (this.tableValues.selectedRegion === \"Europe\" && this.profile['roles'].includes('GR_PIL_TOUT')) ? \"GR_PIL_TOUT\" : \"GR_PIM_TOUT\";\n }\n\n getFavoriteRegion() {\n return this.tableValues.selectedRegion === \"Europe\" ? \"PIL\" : \"PIM\";\n }\n\n getChoiceTableDetails(item) {\n this.tableValues.tableData = undefined;\n this.tableValues.selectedRegion = item;\n\n const queryParam = { \"input\": `MAJ@${this.tableValues.ipn}@@@0@11@`, \"region\": this.getFavoriteRegion() };\n this.apiService.getChoiceTableDetails(queryParam).subscribe(res => {\n this.tableValues.responseData = res;\n if (this.tableValues.responseData.lists) {\n this.tableValues.selectedTable = String(this.tableValues.responseData.lists[0].table.toLocaleUpperCase());\n // let date = this.tableValues.responseData.lists[0].fileUpdtdDate.split(' ');\n // this.tableValues.selectedTableDetails = this.utilService.getTranslateName(`NEW_QUERY.DATE_UPDATED`) + String(date[1]) + this.utilService.getTranslateName(`NEW_QUERY.AT`) + String(date[3]);\n // const strUpdDate = String(this.tableValues.responseData.lists[0].fileUpdtdDate).substring(3, 13);\n // const strRecDate = String(this.tableValues.responseData.lists[0].fileRecvdDate).substring(3, 13);\n // const updDate = new Date(`${strUpdDate.substring(3, 5)}/${strUpdDate.substring(0, 2)}/${strUpdDate.substring(6, 10)}`);\n // const recDate = new Date(`${strRecDate.substring(3, 5)}/${strRecDate.substring(0, 2)}/${strRecDate.substring(6, 10)}`);\n\n // const strServerDate = String(this.tableValues.responseData.lists[0].serverDate);\n // const serverDate = new Date(`${strServerDate.substring(3, 5)}/${strServerDate.substring(0, 2)}/${strServerDate.substring(6, 10)}`);\n\n // const diff = Math.abs(updDate.getTime() - serverDate.getTime());\n // const diffDays = Math.floor(diff / (1000 * 3600 * 24));\n // console.log(\"server Date\", diffDays, serverDate, updDate);\n // this.tableValues.dateDiff = diffDays;\n if (this.tableValues.responseData.noOfLists > 0) {\n this.getTableNamesList();\n }\n }\n },\n error => {\n this.toastyService.error(this.utilService.getTranslateName(`ERROR.TABLE_ERROR`));\n console.log(\"error\", error.message);\n });\n }\n\n // getRoleBasedTableNamesList() {\n // let role;\n // this.tableValues.roleBasedTableList = [];\n // if (this.getUserRole4TabeList()) {\n // if (this.getUserRole4TabeList().split(\"_\")[2].toLowerCase() !== 'tout') {\n // role = this.getUserRole4TabeList().toLowerCase().replace(`gr_${this.getFavoriteRegion().toLowerCase()}_`, '');\n // const queryParam1 = { \"input\": `PROFIL@system@profil@${role.toLocaleUpperCase()}@`, \"region\": this.getFavoriteRegion() };\n // this.apiService.getObjectGet(queryParam1).subscribe(res => {\n // if (res && res.data) {\n // this.roleBasedGroupList = res.data;\n // for (const item of res.data.split('§')) {\n // if (item.split(\"@\")[1] === \"0\") {\n // this.tableValues.roleBasedTableList.push(item.split(\"@\")[0]);\n // }\n // }\n // }\n // },\n // error => {\n // this.toastyService.error(this.utilService.getTranslateName(`ERROR.TABLE_ERROR`));\n // console.log(\"error\", error.message);\n // });\n // } else {\n // this.roleBasedGroupList = '';\n // }\n // }\n // }\n\n getTableNamesList() {\n const queryParam1 = { \"input\": `TABGEN@${this.tableValues.ipn}@@@0@${this.tableValues.responseData.noOfLists}@`, \"region\": this.getFavoriteRegion() };\n this.apiService.getChoiceTableDetails(queryParam1).subscribe(res => {\n let tabData = [];\n tabData = res.lists;\n if (tabData) {\n this.tableValues.tableData = [];\n let i = 0;\n for (const item of tabData) {\n const td = this.tableValues.responseData.lists.filter(a => String(a.table).toLocaleUpperCase() === String(item).toLocaleUpperCase());\n // const roleTable = this.tableValues.roleBasedTableList.filter(a => String(a).toLocaleUpperCase() === String(item).toLocaleUpperCase());\n if (td.length > 0) {\n this.tableValues.tableData.push({ \"name\": String(item).toLocaleUpperCase(), \"fileRecvdDate\": td[0].fileRecvdDate, \"fileUpdtdDate\": td[0].fileUpdtdDate })\n }\n i = i + 1;\n }\n this.tableValues.tableData = this.tableValues.tableData.sort();\n // if (this.tableValues.tableData.length > 0) {\n // if (this.tableValues.tableData.indexOf('BCV') < 0) {\n // this.tableSelection(this.tableValues.tableData[0]);\n // }\n // }\n this.cList = [];\n for (const item of this.tableValues.tableData) {\n this.cList.push({ 'table': item.name });\n }\n this.getFilterCategoryDetails();\n this.getFilterCriteriaListDetails();\n this.getGroupList();\n // console.log(\"table\", this.tableValues.tableData, this.cList)\n }\n },\n error => {\n this.toastyService.error(this.utilService.getTranslateName(`ERROR.TABLE_ERROR`));\n console.log(\"error\", error.message);\n });\n }\n\n getGroupList() {\n this.group_list = undefined;\n const queryParam = { \"input\": \"PROFIL@system@profil@@\", \"region\": this.getFavoriteRegion() };\n this.apiService.getObjectSize(queryParam).subscribe(resG => {\n if (resG.noObjects > 0) {\n const queryParam1 = { \"input\": `PROFIL@system@profil@@0@${resG.noObjects}@`, \"region\": this.getFavoriteRegion() };\n this.apiService.getChoiceTableDetails(queryParam1).subscribe(resG1 => {\n this.group_list = resG1.lists;\n if (this.group_list.length > 0) {\n this.group_list = this.group_list.sort();\n this.selectedGroup = this.group_list[0];\n setTimeout(() => {\n this.getSelectedGroupDetails();\n }, 2000);\n }\n // console.log(\"resG1\", resG1);\n },\n error => {\n console.log(\"error\", error.message);\n });\n }\n },\n error => {\n console.log(\"error\", error.message);\n });\n }\n\n delCondition(rowIndex) {\n if (this.rowIndex > -1) {\n const dialogRef = this.dialog.open(AlertConfirmationComponent, {\n disableClose: true,\n width: '550px',\n data: { 'display': this.utilService.getTranslateName(`GROUP_FORMATTING.DEL_COND`) }\n });\n\n dialogRef.afterClosed().subscribe(result => {\n if (result === true) {\n this.gSourceDisplay.splice(rowIndex, 1);\n // console.log(\"this.gSourceDisplay\", this.gSourceDisplay);\n this.validation();\n }\n })\n }\n }\n\n validation() {\n let inpVal = \"\";\n let ii = 0;\n for (const tName of this.tableValues.tableData) {\n const fillVal = this.gSourceDisplay.filter(b => b.table === tName.name);\n ii = ii + 1;\n if (fillVal.length > 0) {\n if (inpVal === \"\") {\n inpVal = `${tName.name}@${fillVal[0].ts ? fillVal.length : 0}@0@0@`;\n } else {\n inpVal = inpVal + `§${tName.name}@${fillVal[0].ts ? fillVal.length : 0}@0@0@`;\n }\n for (const item of fillVal) {\n if (item.ts) {\n const cond = item.value.toString().split(',');\n const posi = item.index.toString().split(',');\n inpVal = inpVal + `${item.ts === 'T' ? 'B' : ''}@${item.ts}@${cond.length}@0@`\n for (let index = 0; index < cond.length; index++) {\n let valueItem;\n let indexValue = 0;\n if (posi[index] === \"6\") {\n indexValue = cond[index].split('[')[1].substr(1, cond[index].split('[')[1].indexOf(')') - 1);\n valueItem = cond[index].split('[')[1].substr(cond[index].split('[')[1].indexOf(')') + 2, cond[index].split('[')[1].indexOf(']')).substr(0, cond[index].split('[')[1].substr(cond[index].split('[')[1].indexOf(')') + 2, cond[index].split('[')[1].indexOf(']')).length - 1);\n } else if (posi[index] === \"2\") {\n valueItem = cond[index].split('[')[1].substr(0, cond[index].split('[')[1].indexOf(']'));\n } else {\n valueItem = cond[index].split('[')[1].substr(cond[index].split('[')[1].indexOf(' ') + 1, cond[index].split('[')[1].indexOf(']')).substr(0, cond[index].split('[')[1].substr(cond[index].split('[')[1].indexOf(' ') + 1, cond[index].split('[')[1].indexOf(']') - 1).length - 1);\n }\n // const value = cond[index].split('(')[1].substr(0, cond[index].split('(')[1].length - 1);\n inpVal = inpVal + `${posi[index]}@${indexValue}@${valueItem}@${item.size.toString().split(',')[index]}@${item.GCOName.split(',')[index]}_${item.type.toString().split(',')[index]}@${item.type.toString().split(',')[index]}@`;\n }\n }\n }\n }\n if (ii === this.tableValues.tableData.length) {\n const queryParam = {\n \"input\": `PROFIL@system@profil@${this.selectedGroup.toUpperCase()}@${inpVal}@`, \"region\": this.getFavoriteRegion()\n }\n this.apiService.saveObject(queryParam).subscribe(respSave => {\n // console.log(\"respSave\", respSave);\n this.rowIndex = -1;\n this.getSelectedGroupDetails();\n // if (respSave.description === \"SUCCESS\") {\n // this.getGroupList();\n // }\n },\n error => {\n console.log(\"error\", error.message);\n });\n // console.log(\"inputVal\", inpVal, queryParam);\n }\n }\n }\n\n updForbidden() {\n const fillVal = this.gSourceDisplay.filter(b => b.table === this.tableValues.selectedTable);\n if (fillVal.length > 0) {\n if (fillVal[0].ts) {\n this.alertPopup(this.utilService.translateService.instant(`GROUP_FORMATTING.FORB_VALUE`))\n } else {\n this.alertPopup(this.utilService.translateService.instant(`GROUP_FORMATTING.FORB_EXISTS`))\n }\n } else {\n this.gSourceDisplay.push({ \"table\": this.tableValues.selectedTable, \"value\": this.utilService.getTranslateName(`GROUP_FORMATTING.COND_FORB`) });\n }\n this.validation();\n }\n\n addGroup() {\n if (this.group_list.filter(a => a.toUpperCase() === this.newGroupName.toUpperCase()).length > 0) {\n this.alertPopup(this.translateService.instant(`GROUP_FORMATTING.GRP_NAME_EXISTS`));\n this.newGroupName = undefined;\n } else {\n const queryParam = `PROFIL@system@profil@${this.newGroupName.toUpperCase()}@@`\n this.apiService.saveObject({ \"input\": queryParam, \"region\": this.getFavoriteRegion() }).subscribe(respGRP => {\n // console.log(\"respGRP\", respGRP);\n if (respGRP.description === \"SUCCESS\") {\n this.getGroupList();\n this.matomoTracker.trackEvent(\"Group formatting\", `Add ${this.newGroupName.toUpperCase()} group`, this.profile['login']);\n }\n },\n error => {\n console.log(\"error\", error.message);\n });\n }\n }\n\n deleteGroup() {\n\n const dialogRef = this.dialog.open(AlertConfirmationComponent, {\n disableClose: true,\n width: '550px',\n data: { 'display': this.utilService.getTranslateName(`GROUP_FORMATTING.GRP_NAME_DELETE_ALT`) + this.selectedGroup.toUpperCase() }\n });\n\n dialogRef.afterClosed().subscribe(result => {\n if (result === true) {\n\n const queryParam = {\n \"input\": `PROFIL@system@profil@${this.selectedGroup.toUpperCase()}@@`, \"region\": this.getFavoriteRegion()\n }\n this.apiService.deleteObject(queryParam).subscribe(respGRPDel => {\n // console.log(\"respGRPDel\", respGRPDel);\n if (respGRPDel.description === \"SUCCESS\") {\n this.getGroupList();\n this.matomoTracker.trackEvent(\"Group formatting\", `Delete ${this.selectedGroup.toUpperCase()} group`, this.profile['login']);\n }\n },\n error => {\n console.log(\"error\", error.message);\n });\n }\n })\n }\n\n getSelectedGroupDetails() {\n this.gSource = [];\n this.gSourceDisplay = [];\n const queryParam = {\n \"input\": `PROFIL@system@profil@${this.selectedGroup.toUpperCase()}@`, \"region\": this.getFavoriteRegion()\n }\n this.apiService.getObjectGet(queryParam).subscribe(resGRPDetails => {\n // console.log(\"resGRPDetails\", resGRPDetails);\n if (resGRPDetails.data.length > 0) {\n const sGVal = resGRPDetails.data.split('§');\n for (const item of sGVal) {\n let sIVal = item.split('@');\n if (sIVal[1] === \"0\") {\n this.gSource.push({ 'table': sIVal[0], \"value\": this.utilService.getTranslateName(`GROUP_FORMATTING.COND_FORB`) });\n }\n for (let index = 0; index < sIVal[1]; index++) {\n this.gSource.push({ 'table': sIVal[0] });\n let nextVal = 0;\n const loopValue = Number(sIVal[6]) + Number(sIVal[7]);\n for (let index1 = 0; index1 < loopValue; index1++) {\n if (isNaN(sIVal[12])) {\n const tList = this.cList.filter(x => x.table === sIVal[0]);\n if (tList.length > 0) {\n const gcoList = tList[0].lists.filter(c => c.GCOName === sIVal[12 + nextVal].substr(0, sIVal[12 + nextVal].length - 2));\n if (gcoList.length > 0) {\n this.gSource[this.gSource.length - 1].ts = sIVal[5];\n let valueItem;\n if (sIVal[8 + nextVal] === \"6\") {\n valueItem = `(${sIVal[9 + nextVal]})=${sIVal[10 + nextVal]}`;\n } else if (sIVal[8 + nextVal] === \"2\") {\n valueItem = `${sIVal[10 + nextVal]}`;\n } else {\n valueItem = `${this.characterListIndex[sIVal[8 + nextVal] - 1]} ${sIVal[10 + nextVal]}`;\n }\n\n if (index1 === 0) {\n this.gSource[this.gSource.length - 1].GCOName = gcoList[0].GCOName;\n this.gSource[this.gSource.length - 1].type = gcoList[0].typeOfField;\n this.gSource[this.gSource.length - 1].size = gcoList[0].size;\n this.gSource[this.gSource.length - 1].index = sIVal[8 + nextVal];\n this.gSource[this.gSource.length - 1].value = `${gcoList[0].longLabel.split('§').length > 1 ? gcoList[0].longLabel.split('§')[this.getLangIndex(this.lang)] : gcoList[0].longLabel} = [${valueItem}],`;\n } else {\n this.gSource[this.gSource.length - 1].GCOName = this.gSource[this.gSource.length - 1].GCOName + ',' + gcoList[0].GCOName;\n this.gSource[this.gSource.length - 1].type = this.gSource[this.gSource.length - 1].type + ',' + gcoList[0].typeOfField;\n this.gSource[this.gSource.length - 1].size = this.gSource[this.gSource.length - 1].size + ',' + gcoList[0].size;\n this.gSource[this.gSource.length - 1].index = this.gSource[this.gSource.length - 1].index + ',' + sIVal[8 + nextVal];\n this.gSource[this.gSource.length - 1].value = this.gSource[this.gSource.length - 1].value + `${gcoList[0].longLabel.split('§').length > 1 ? gcoList[0].longLabel.split('§')[this.getLangIndex(this.lang)] : gcoList[0].longLabel} = [${valueItem}],`;\n }\n }\n }\n\n if (index1 === loopValue - 1) {\n sIVal.splice(4, 10 + nextVal);\n this.gSource[this.gSource.length - 1].value = this.gSource[this.gSource.length - 1].value.substr(0, this.gSource[this.gSource.length - 1].value.length - 1);\n } else {\n if (sIVal[7] !== \"0\") {\n sIVal.splice(8, 6);\n }\n nextVal = nextVal + 6;\n }\n } else {\n\n\n const tList = this.cList.filter(x => x.table === sIVal[0]);\n if (tList.length > 0) {\n const gcoList = tList[0].lists.filter(c => c.GCOName === sIVal[10].substr(0, sIVal[10].length - 2));\n if (gcoList.length > 0) {\n this.gSource[this.gSource.length - 1].ts = sIVal[5];\n let valueItem;\n\n for (let vv = 0; vv < sIVal[12]; vv++) {\n if (vv === 0) {\n valueItem = sIVal[12 + 3];\n sIVal.splice(12 + 1, 3);\n } else {\n valueItem = valueItem + '/' + sIVal[12 + 3];\n sIVal.splice(12 + 1, 3);\n }\n }\n\n\n // if (sIVal[8 + nextVal] === \"6\") {\n // valueItem = `(${sIVal[9 + nextVal]})=${sIVal[10 + nextVal]}`;\n // } else if (sIVal[8 + nextVal] === \"2\") {\n // valueItem = `${sIVal[10 + nextVal]}`;\n // } else {\n // valueItem = `${this.characterListIndex[sIVal[8 + nextVal] - 1]} ${sIVal[10 + nextVal]}`;\n // }\n\n if (index1 === 0) {\n this.gSource[this.gSource.length - 1].GCOName = gcoList[0].GCOName;\n this.gSource[this.gSource.length - 1].type = gcoList[0].typeOfField;\n this.gSource[this.gSource.length - 1].size = gcoList[0].size;\n this.gSource[this.gSource.length - 1].index = sIVal[8 + nextVal];\n this.gSource[this.gSource.length - 1].value = `${gcoList[0].longLabel.split('§').length > 1 ? gcoList[0].longLabel.split('§')[this.getLangIndex(this.lang)] : gcoList[0].longLabel} = [${valueItem}],`;\n } else {\n this.gSource[this.gSource.length - 1].GCOName = this.gSource[this.gSource.length - 1].GCOName + ',' + gcoList[0].GCOName;\n this.gSource[this.gSource.length - 1].type = this.gSource[this.gSource.length - 1].type + ',' + gcoList[0].typeOfField;\n this.gSource[this.gSource.length - 1].size = this.gSource[this.gSource.length - 1].size + ',' + gcoList[0].size;\n this.gSource[this.gSource.length - 1].index = this.gSource[this.gSource.length - 1].index + ',' + sIVal[8 + nextVal];\n this.gSource[this.gSource.length - 1].value = this.gSource[this.gSource.length - 1].value + `${gcoList[0].longLabel.split('§').length > 1 ? gcoList[0].longLabel.split('§')[this.getLangIndex(this.lang)] : gcoList[0].longLabel} = [${valueItem}],`;\n }\n }\n }\n\n if (index1 === loopValue - 1) {\n sIVal.splice(4, 4 + nextVal);\n this.gSource[this.gSource.length - 1].value = this.gSource[this.gSource.length - 1].value.substr(0, this.gSource[this.gSource.length - 1].value.length - 1);\n } else {\n sIVal.splice(8, 5);\n nextVal = nextVal + 5;\n }\n\n\n }\n }\n }\n }\n // this.gSource = this.gSource.sort(this.utilService.sortArrayValueList);\n // for (let index = 0; index < this.tableValues.tableData.length; index++) {\n // const element = this.tableValues.tableData[index];\n // const filVal = this.gSource.filter(v => v.table === element.name);\n // if (filVal.length > 0) {\n // for (const item of filVal) {\n // this.gSourceDisplay.push(item);\n // }\n // }\n // }\n\n this.gSource = this.gSource.sort(this.utilService.sortArrayValueList);\n this.gSourceDisplay = [];\n for (const item1 of this.gSource) {\n this.gSourceDisplay.push(item1);\n }\n // console.log(\"gSource\", this.gSourceDisplay);\n }\n },\n error => {\n console.log(\"error\", error.message);\n });\n }\n\n selectedRow(item, i) {\n this.rowIndex = i;\n // console.log(\"item\", i, item);\n }\n\n tableSelection(item) {\n if (this.sLibelle || this.sLibelle_2 || this.sLibCourt || this.sLibCourt_2) {\n this.tableSelectionItem = item;\n this.isModified = true;\n } else {\n this.tableValues.dateDiff = undefined;\n this.tableValues.selectedTable = item.name;\n let region = this.requestService.getRegionMsg();\n\n this.getFilterCategoryDetails();\n this.CheckLock();\n }\n }\n\n getFilterCategoryDetails() {\n this.filterCategory = [];\n const queryParam = { \"input\": `FILTRE@system@${this.tableValues.selectedTable}@@`, \"region\": this.getFavoriteRegion() };\n this.apiService.getObjectSize(queryParam).subscribe(res => {\n if (res.noObjects > 0) {\n const queryParam1 = { \"input\": `FILTRE@system@${this.tableValues.selectedTable}@@0@${res.noObjects}@`, \"region\": this.getFavoriteRegion() };\n this.apiService.getChoiceTableDetails(queryParam1).subscribe(res1 => {\n // this.filterCategory = res1.lists;\n this.filterCategory.push(this.utilService.getTranslateName(`COMMON.ALL`));\n this.selectedCategory = this.utilService.getTranslateName(`COMMON.ALL`);\n this.getPrivateFilterCategoryDetails();\n // this.filterCategory = this.filterCategory.sort(this.utilService.sortArray);\n for (const item of res1.lists.sort(this.utilService.sortArray)) {\n this.filterCategory.push(item);\n }\n },\n error => {\n console.log(\"error\", error.message);\n });\n } else {\n this.filterCategory.push(this.utilService.getTranslateName(`COMMON.ALL`));\n this.selectedCategory = this.utilService.getTranslateName(`COMMON.ALL`);\n this.filterCategory = this.filterCategory.sort(this.utilService.sortArray);\n }\n },\n error => {\n console.log(\"error\", error.message);\n });\n }\n\n\n\n getPrivateFilterCategoryDetails() {\n this.filterPrivateCategory = [];\n const queryParam = { \"input\": `FILTRE@${this.tableValues.ipn}@${this.tableValues.selectedTable}@@`, \"region\": this.getFavoriteRegion() };\n this.apiService.getObjectSize(queryParam).subscribe(res => {\n if (res.noObjects > 0) {\n const queryParam1 = { \"input\": `FILTRE@${this.tableValues.ipn}@${this.tableValues.selectedTable}@@0@${res.noObjects}@`, \"region\": this.getFavoriteRegion() };\n this.apiService.getChoiceTableDetails(queryParam1).subscribe(res12 => {\n // console.log(\"res12\", res12);\n this.filterPrivateCategory = res12.lists;\n if (res12.lists) {\n for (let index = 0; index < res12.lists.length; index++) {\n const element = res12.lists[index];\n this.filterCategory.push(element);\n }\n }\n // this.filterPrivateCategory = res12.lists;\n // this.filterPrivateCategory = this.filterPrivateCategory.sort(this.utilService.sortArray)\n },\n error => {\n console.log(\"error\", error.message);\n });\n }\n },\n error => {\n console.log(\"error\", error.message);\n });\n\n }\n\n getFilterCriteriaListDetails() {\n for (let i = 0; i < this.cList.length; i++) {\n const element = this.cList[i];\n\n this.displayCriteriaList = [];\n this.criteriaList = [];\n const queryParam = { \"input\": `CHAMP ETENDU@${this.tableValues.ipn}@${element.table}@@`, \"region\": this.getFavoriteRegion() };\n this.apiService.getObjectSize(queryParam).subscribe(res => {\n if (res.noObjects > 0) {\n const queryParam1 = { \"input\": `CHAMP ETENDU@${this.tableValues.ipn}@${element.table}@@0@${res.noObjects}@`, \"region\": this.getFavoriteRegion() };\n this.apiService.getChoiceTableDetails(queryParam1).subscribe(res1 => {\n this.criteriaListOringinal = res1.lists;\n\n this.cList[i].lists = this.criteriaListOringinal;\n },\n error => {\n console.log(\"error\", error.message);\n });\n }\n },\n error => {\n console.log(\"error\", error.message);\n });\n }\n }\n\n getLangIndex(lang) {\n return (lang === 'en') ? 1 : 0 ;\n }\n\n // showHiddenCriteriaList() {\n // if (this.tableValues.region === \"Europe\" && this.profile['roles'].includes('PIL_OBJ_SYST')&& this.getFavoriteRegion() === 'PIL') {\n // this.isShowHiddenList = true;\n // }\n // if (this.profile['roles'].includes('PIM_OBJ_SYST') && this.getFavoriteRegion() === 'PIM') {\n // this.isShowHiddenList = true;\n // }\n // }\n\n getSelectedList(selectedItem) {\n if (selectedItem === this.utilService.getTranslateName(`COMMON.ALL`)) {\n return true;\n } else {\n return false;\n }\n }\n\n\n clickClose() {\n const pathName = window.location.pathname;\n this.utilService.removeOpenedWindowName(pathName);\n this.utilService.$showIcon$.next(true);\n const openedWindowNameList = this.utilService.getOpenedWindowNameList()\n if (openedWindowNameList.length > 0) {\n this.router.navigate([openedWindowNameList[openedWindowNameList.length - 1]]);\n } else {\n this.router.navigate(['home']);\n }\n }\n\n CheckLock() {\n this.strLock = \"\";\n const queryParam = {\n \"input\": \"LIBELLE@system@libelle@lock@\", \"region\": this.getFavoriteRegion()\n }\n this.apiService.getObjectGet(queryParam).subscribe(res => {\n if (res.data) {\n // console.log(\"substring\", res, `${this.utilService.getTranslateName(\"LABEL_MANAGE.REFRESH_LABEL_1\")} ${res.data.substring(6, 8)}-\n // ${res.data.substring(4, 6)}-${res.data.substring(0, 4)} ${this.utilService.getTranslateName(\"LABEL_MANAGE.REFRESH_LABEL_2\")} ${res.data.substring(8, 10)}:\n // ${res.data.substring(10, 12)}:${res.data.substring(12, 14)}`);\n this.strLock = `${this.utilService.getTranslateName(\"LABEL_MANAGE.REFRESH_LABEL_1\")} `;\n this.strLock = this.strLock + `${res.data.substring(6, 8)}-${res.data.substring(4, 6)}-${res.data.substring(0, 4)} `;\n this.strLock = this.strLock + `${this.utilService.getTranslateName(\"LABEL_MANAGE.REFRESH_LABEL_2\")} `;\n this.strLock = this.strLock + `${res.data.substring(8, 10)}:${res.data.substring(10, 12)}:${res.data.substring(12, 14)}`;\n }\n },\n error => {\n this.toastyService.error(this.utilService.getTranslateName(`ERROR.TABLE_ERROR`));\n console.log(\"error\", error.message);\n });\n }\n\n alertPopup(msg) {\n const dialogRef = this.dialog.open(AlertConfirmationComponent, {\n disableClose: true,\n width: '550px',\n data: { 'display': msg, isAlert: 'true' }\n });\n\n dialogRef.afterClosed().subscribe(result => {\n if (result === true) {\n this.isEmpty = true;\n }\n })\n }\n\n addCondition() {\n const gTableDts = this.gSource.filter(vv => vv.table === this.tableValues.selectedTable);\n if (gTableDts.length === 1) {\n if (gTableDts[0].hasOwnProperty(\"ts\")) {\n this.addConditionAfterChecking();\n } else {\n this.alertPopup(this.utilService.translateService.instant(`GROUP_FORMATTING.FORB_ADD`));\n }\n } else {\n this.addConditionAfterChecking();\n }\n }\n\n addConditionAfterChecking() {\n this.displayCriteriaList = [];\n const tableValueDet = this.cList.filter(bn => bn.table === this.tableValues.selectedTable);\n if (tableValueDet.length > 0) {\n for (const item of tableValueDet[0].lists) {\n if (item.typeOfField.toString() === \"2\" || item.typeOfField.toString() === \"6\" || item.typeOfField.toString() === \"0\") {\n this.displayCriteriaList.push({\n \"label\": `${item.longLabel.split('§').length > 1 ? item.longLabel.split('§')[this.getLangIndex(this.lang)] : item.longLabel}`,\n \"longLabel\": item.longLabel,\n \"GCOName\": item.GCOName,\n \"type\": item.typeOfField,\n \"size\": item.size\n })\n }\n }\n // this.displayCriteriaList.sort((a, b) => (a.label > b.label) ? 1 : ((b.label > a.label) ? -1 : 0))\n this.displayCriteriaList = this.displayCriteriaList.sort(this.utilService.sortArrayCriteriaList)\n console.log(\"displayCriteriaList\", this.cList);\n const dialogRef = this.dialog.open(GroupFormattingConditionComponent, {\n disableClose: true,\n width: '950px',\n data: { 'displayCriteriaList': this.displayCriteriaList, privateFilterCategory: this.filterPrivateCategory, filterCategory: this.filterCategory, \"tableValues\": this.tableValues, isAlert: 'true' }\n });\n\n dialogRef.afterClosed().subscribe(result => {\n // console.log(\"eventevent\", result);\n if (result) {\n // console.log(\"eventevent\", result);\n if (result.length > 0) {\n this.gSource.push({ \"table\": result[0].table, \"ts\": \"T\" })\n for (let index = 0; index < result.length; index++) {\n const element = result[index];\n if (index === 0) {\n this.gSource[this.gSource.length - 1].value = element.value;\n this.gSource[this.gSource.length - 1].GCOName = element.GCOName;\n this.gSource[this.gSource.length - 1].type = element.type;\n this.gSource[this.gSource.length - 1].size = element.size;\n this.gSource[this.gSource.length - 1].index = element.index;\n } else {\n this.gSource[this.gSource.length - 1].GCOName = this.gSource[this.gSource.length - 1].GCOName + ',' + element.GCOName;\n this.gSource[this.gSource.length - 1].type = this.gSource[this.gSource.length - 1].type + ',' + element.type;\n this.gSource[this.gSource.length - 1].size = this.gSource[this.gSource.length - 1].size + ',' + element.size;\n this.gSource[this.gSource.length - 1].index = this.gSource[this.gSource.length - 1].index + ',' + element.index;\n this.gSource[this.gSource.length - 1].value = this.gSource[this.gSource.length - 1].value + ',' + element.value;\n }\n // this.gSource = this.gSource.sort(this.utilService.sortArrayValueList);\n\n if (index === result.length - 1) {\n this.gSource = this.gSource.sort(this.utilService.sortArrayValueList);\n this.gSourceDisplay = [];\n // for (let index = 0; index < this.tableValues.tableData.length; index++) {\n // const element = this.tableValues.tableData[index];\n // const filVal = this.gSource.filter(v => v.table === element.name);\n // if (filVal.length > 0) {\n // for (const item of filVal) {\n // this.gSourceDisplay.push(item);\n // }\n // }\n // }\n for (const item1 of this.gSource) {\n this.gSourceDisplay.push(item1);\n }\n this.validation();\n }\n }\n }\n this.isEmpty = true;\n }\n })\n }\n }\n\n modifyCondition(rowIndex) {\n if (rowIndex > -1) {\n if (this.gSourceDisplay[rowIndex].hasOwnProperty('ts')) {\n const tabNameVal = this.gSourceDisplay[rowIndex].table;\n this.displayCriteriaList = [];\n const tableValueDet = this.cList.filter(bn => bn.table === tabNameVal);\n if (tableValueDet.length > 0) {\n for (const item of tableValueDet[0].lists) {\n if (item.typeOfField.toString() === \"2\" || item.typeOfField.toString() === \"6\" || item.typeOfField.toString() === \"0\") {\n this.displayCriteriaList.push({\n \"label\": `${item.longLabel.split('§').length > 1 ? item.longLabel.split('§')[this.getLangIndex(this.lang)] : item.longLabel}`,\n \"longLabel\": item.longLabel,\n \"GCOName\": item.GCOName,\n \"type\": item.typeOfField,\n \"size\": item.size\n })\n }\n }\n this.displayCriteriaList = this.displayCriteriaList.sort(this.utilService.sortArrayCriteriaList)\n const dialogRef = this.dialog.open(GroupFormattingConditionComponent, {\n disableClose: true,\n width: '950px',\n data: { 'displayCriteriaList': this.displayCriteriaList, privateFilterCategory: this.filterPrivateCategory, gPreSource: this.gSource[rowIndex], filterCategory: this.filterCategory, \"tableValues\": this.tableValues, isAlert: 'true' }\n });\n\n dialogRef.afterClosed().subscribe(result => {\n // console.log(\"eventevent\", result);\n if (result) {\n // console.log(\"eventevent\", result);\n if (result.length > 0) {\n // this.gSource.push({ \"table\": result[0].table, \"ts\": \"T\" })\n for (let index = 0; index < result.length; index++) {\n const element = result[index];\n if (index === 0) {\n this.gSource[rowIndex].value = element.value;\n this.gSource[rowIndex].GCOName = element.GCOName;\n this.gSource[rowIndex].type = element.type;\n this.gSource[rowIndex].size = element.size;\n this.gSource[rowIndex].index = element.index;\n } else {\n this.gSource[rowIndex].GCOName = this.gSource[rowIndex].GCOName + ',' + element.GCOName;\n this.gSource[rowIndex].type = this.gSource[rowIndex].type + ',' + element.type;\n this.gSource[rowIndex].size = this.gSource[rowIndex].size + ',' + element.size;\n this.gSource[rowIndex].index = this.gSource[rowIndex].index + ',' + element.index;\n this.gSource[rowIndex].value = this.gSource[rowIndex].value + ',' + element.value;\n }\n // this.gSource = this.gSource.sort(this.utilService.sortArrayValueList);\n\n if (index === result.length - 1) {\n // this.gSourceDisplay = [];\n // for (let index = 0; index < this.tableValues.tableData.length; index++) {\n // const element = this.tableValues.tableData[index];\n // const filVal = this.gSource.filter(v => v.table === element.name);\n // if (filVal.length > 0) {\n // for (const item of filVal) {\n // this.gSourceDisplay.push(item);\n // }\n // }\n this.gSource = this.gSource.sort(this.utilService.sortArrayValueList);\n this.gSourceDisplay = [];\n for (const item1 of this.gSource) {\n this.gSourceDisplay.push(item1);\n }\n this.validation();\n }\n }\n }\n this.isEmpty = true;\n }\n })\n }\n } else {\n this.alertPopup(this.utilService.translateService.instant(`GROUP_FORMATTING.FORB_ADD`));\n }\n }\n }\n\n omit_special_char(event) {\n var k;\n // console.log(\"event\", event.charCode, event)\n k = event.charCode; // k = event.keyCode; (Both can be used)\n return ((k > 64 && k < 91) || (k > 96 && k < 123) || k == 8 || k == 32 || k == 95 || (k >= 48 && k <= 57));\n }\n}\n","export default \".gray-line {\\n width: 100%;\\n border-bottom: 1px solid;\\n border-bottom-color: #cccccc;\\n}\\n\\n.img-size-20 {\\n height: 15px;\\n width: 15px;\\n margin-top: 7px;\\n}\\n\\n.page-size {\\n width: 100%;\\n height: calc(100% - 67px);\\n background-color: #E9EEF0;\\n}\\n\\n.static-image {\\n background-repeat: no-repeat !important;\\n background-position: center !important;\\n background-size: cover !important;\\n}\\n\\n.carousel__prev-button {\\n top: 48%;\\n float: left;\\n z-index: 2;\\n}\\n\\n.carousel__next-button {\\n top: 48%;\\n float: right;\\n z-index: 2;\\n}\\n\\n.page-size.static-image {\\n position: relative;\\n}\\n\\n.page-size.static-image .chatBotLink {\\n width: 88px;\\n height: 80px;\\n display: inline-block;\\n position: absolute;\\n bottom: 20px;\\n z-index: 0;\\n right: 20px;\\n}\\n\\n.page-size.static-image .chatBotLink img {\\n width: 100% !important;\\n height: 100% !important;\\n display: inline-block;\\n}\\n\\n.chatBotDialog {\\n width: 260px;\\n height: 105px;\\n display: inline-block;\\n position: absolute;\\n bottom: 4px;\\n z-index: 0;\\n right: 119px;\\n background: #d2e9b3;\\n border-radius: 0px 23px 23px 23px;\\n padding: 17px;\\n}\\n\\n.chatBotDialog:after {\\n content: \\\"\\\";\\n right: -14px;\\n display: inline-block;\\n width: 0;\\n height: 0;\\n border-top: 22px solid transparent;\\n border-bottom: 16px solid transparent;\\n border-left: 16px solid #d2e9b3;\\n position: absolute;\\n top: 82px;\\n}\\n\\n.chatBotDialog .closeDialog {\\n color: #111;\\n}\\n\\n.chatBotDialog span {\\n display: block;\\n}\\n\\n.chatBotDialog span p {\\n height: 23px;\\n margin: 0px;\\n text-align: center;\\n font-size: 19px;\\n color: #333;\\n}\\n\\n.chatBotDialog span p .cls-smile {\\n font-size: 23px;\\n height: 21px;\\n vertical-align: bottom;\\n display: inline-block;\\n}\\n\\n.chatBotDialog .close {\\n margin: -10px;\\n float: right;\\n cursor: pointer;\\n}\\n/*# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi91c3Ivc3JjL3NyYy9hcHAvY29tcG9uZW50L2hvbWUvaG9tZS5jb21wb25lbnQuc2NzcyIsInNyYy9hcHAvY29tcG9uZW50L2hvbWUvaG9tZS5jb21wb25lbnQuc2NzcyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQTtFQUNFLFdBQUE7RUFDQSx3QkFBQTtFQUNBLDRCQUFBO0FDQ0Y7O0FERUE7RUFDRSxZQUFBO0VBQ0EsV0FBQTtFQUNBLGVBQUE7QUNDRjs7QURFQTtFQUNFLFdBQUE7RUFDQSx5QkFBQTtFQUNBLHlCQUFBO0FDQ0Y7O0FERUE7RUFFRSx1Q0FBQTtFQUNBLHNDQUFBO0VBQ0EsaUNBQUE7QUNBRjs7QURHQTtFQUVFLFFBQUE7RUFFQSxXQUFBO0VBQ0EsVUFBQTtBQ0ZGOztBREtBO0VBRUUsUUFBQTtFQUVBLFlBQUE7RUFDQSxVQUFBO0FDSkY7O0FET0E7RUFDRSxrQkFBQTtBQ0pGOztBRE1FO0VBQ0UsV0FBQTtFQUNBLFlBQUE7RUFDQSxxQkFBQTtFQUNBLGtCQUFBO0VBQ0EsWUFBQTtFQUNBLFVBQUE7RUFDQSxXQUFBO0FDSko7O0FETUk7RUFDRSxzQkFBQTtFQUNBLHVCQUFBO0VBQ0EscUJBQUE7QUNKTjs7QURTQTtFQUNFLFlBQUE7RUFDQSxhQUFBO0VBQ0EscUJBQUE7RUFDQSxrQkFBQTtFQUNBLFdBQUE7RUFDQSxVQUFBO0VBQ0EsWUFBQTtFQUNBLG1CQUFBO0VBQ0EsaUNBQUE7RUFDQSxhQUFBO0FDTkY7O0FEUUU7RUFDRSxXQUFBO0VBQ0EsWUFBQTtFQUNBLHFCQUFBO0VBQ0EsUUFBQTtFQUNBLFNBQUE7RUFDQSxrQ0FBQTtFQUNBLHFDQUFBO0VBQ0EsK0JBQUE7RUFDQSxrQkFBQTtFQUNBLFNBQUE7QUNOSjs7QURTRTtFQUNFLFdBQUE7QUNQSjs7QURVRTtFQUNFLGNBQUE7QUNSSjs7QURVSTtFQUNFLFlBQUE7RUFDQSxXQUFBO0VBQ0Esa0JBQUE7RUFDQSxlQUFBO0VBQ0EsV0FBQTtBQ1JOOztBRFNNO0VBQ0UsZUFBQTtFQUNBLFlBQUE7RUFDQSxzQkFBQTtFQUNBLHFCQUFBO0FDUFI7O0FEWUU7RUFDRSxhQUFBO0VBQ0EsWUFBQTtFQUNBLGVBQUE7QUNWSiIsImZpbGUiOiJzcmMvYXBwL2NvbXBvbmVudC9ob21lL2hvbWUuY29tcG9uZW50LnNjc3MiLCJzb3VyY2VzQ29udGVudCI6WyIuZ3JheS1saW5lIHtcbiAgd2lkdGg6IDEwMCU7XG4gIGJvcmRlci1ib3R0b206IDFweCBzb2xpZDtcbiAgYm9yZGVyLWJvdHRvbS1jb2xvcjogI2NjY2NjYztcbn1cblxuLmltZy1zaXplLTIwIHtcbiAgaGVpZ2h0OiAxNXB4O1xuICB3aWR0aDogMTVweDtcbiAgbWFyZ2luLXRvcDogN3B4O1xufVxuXG4ucGFnZS1zaXplIHtcbiAgd2lkdGg6IDEwMCU7XG4gIGhlaWdodDogY2FsYygxMDAlIC0gNjdweCk7XG4gIGJhY2tncm91bmQtY29sb3I6ICNFOUVFRjA7XG59XG5cbi5zdGF0aWMtaW1hZ2Uge1xuICAvLyBiYWNrZ3JvdW5kLWltYWdlOiB1cmwoXCIuLi8uLi8uLi9hc3NldHMvaW1hZ2VzL3NsaWRlc2hvdy81LmpwZ1wiKTtcbiAgYmFja2dyb3VuZC1yZXBlYXQ6IG5vLXJlcGVhdCAhaW1wb3J0YW50O1xuICBiYWNrZ3JvdW5kLXBvc2l0aW9uOiBjZW50ZXIgIWltcG9ydGFudDtcbiAgYmFja2dyb3VuZC1zaXplOiBjb3ZlciAhaW1wb3J0YW50O1xufVxuXG4uY2Fyb3VzZWxfX3ByZXYtYnV0dG9uIHtcbiAgLy8gcG9zaXRpb246IGFic29sdXRlO1xuICB0b3A6IDQ4JTtcbiAgLy8gbGVmdDogMDtcbiAgZmxvYXQ6IGxlZnQ7XG4gIHotaW5kZXg6IDI7XG59XG5cbi5jYXJvdXNlbF9fbmV4dC1idXR0b24ge1xuICAvLyBwb3NpdGlvbjogYWJzb2x1dGU7XG4gIHRvcDogNDglO1xuICAvLyByaWdodDogMDtcbiAgZmxvYXQ6IHJpZ2h0O1xuICB6LWluZGV4OiAyO1xufVxuXG4ucGFnZS1zaXplLnN0YXRpYy1pbWFnZSB7XG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcblxuICAuY2hhdEJvdExpbmsge1xuICAgIHdpZHRoOiA4OHB4O1xuICAgIGhlaWdodDogODBweDtcbiAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgIGJvdHRvbTogMjBweDtcbiAgICB6LWluZGV4OiAwO1xuICAgIHJpZ2h0OiAyMHB4O1xuXG4gICAgaW1nIHtcbiAgICAgIHdpZHRoOiAxMDAlICFpbXBvcnRhbnQ7XG4gICAgICBoZWlnaHQ6IDEwMCUgIWltcG9ydGFudDtcbiAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICB9XG4gIH1cbn1cblxuLmNoYXRCb3REaWFsb2cge1xuICB3aWR0aDogMjYwcHg7XG4gIGhlaWdodDogMTA1cHg7XG4gIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgcG9zaXRpb246IGFic29sdXRlO1xuICBib3R0b206IDRweDtcbiAgei1pbmRleDogMDtcbiAgcmlnaHQ6IDExOXB4O1xuICBiYWNrZ3JvdW5kOiAjZDJlOWIzO1xuICBib3JkZXItcmFkaXVzOiAwcHggMjNweCAyM3B4IDIzcHg7XG4gIHBhZGRpbmc6IDE3cHg7XG5cbiAgJjphZnRlciB7XG4gICAgY29udGVudDogXCJcIjtcbiAgICByaWdodDogLTE0cHg7XG4gICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgIHdpZHRoOiAwO1xuICAgIGhlaWdodDogMDtcbiAgICBib3JkZXItdG9wOiAyMnB4IHNvbGlkIHRyYW5zcGFyZW50O1xuICAgIGJvcmRlci1ib3R0b206IDE2cHggc29saWQgdHJhbnNwYXJlbnQ7XG4gICAgYm9yZGVyLWxlZnQ6IDE2cHggc29saWQgI2QyZTliMztcbiAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgdG9wOiA4MnB4O1xuICB9XG5cbiAgLmNsb3NlRGlhbG9nIHtcbiAgICBjb2xvcjogIzExMTtcbiAgfVxuXG4gIHNwYW4ge1xuICAgIGRpc3BsYXk6IGJsb2NrO1xuXG4gICAgcCB7XG4gICAgICBoZWlnaHQ6IDIzcHg7XG4gICAgICBtYXJnaW46IDBweDtcbiAgICAgIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgICAgIGZvbnQtc2l6ZTogMTlweDtcbiAgICAgIGNvbG9yOiAjMzMzO1xuICAgICAgLmNscy1zbWlsZSB7XG4gICAgICAgIGZvbnQtc2l6ZTogMjNweDtcbiAgICAgICAgaGVpZ2h0OiAyMXB4O1xuICAgICAgICB2ZXJ0aWNhbC1hbGlnbjogYm90dG9tO1xuICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICB9XG4gICAgfVxuICB9XG5cbiAgLmNsb3NlIHtcbiAgICBtYXJnaW46IC0xMHB4O1xuICAgIGZsb2F0OiByaWdodDtcbiAgICBjdXJzb3I6IHBvaW50ZXI7XG4gIH1cbn0iLCIuZ3JheS1saW5lIHtcbiAgd2lkdGg6IDEwMCU7XG4gIGJvcmRlci1ib3R0b206IDFweCBzb2xpZDtcbiAgYm9yZGVyLWJvdHRvbS1jb2xvcjogI2NjY2NjYztcbn1cblxuLmltZy1zaXplLTIwIHtcbiAgaGVpZ2h0OiAxNXB4O1xuICB3aWR0aDogMTVweDtcbiAgbWFyZ2luLXRvcDogN3B4O1xufVxuXG4ucGFnZS1zaXplIHtcbiAgd2lkdGg6IDEwMCU7XG4gIGhlaWdodDogY2FsYygxMDAlIC0gNjdweCk7XG4gIGJhY2tncm91bmQtY29sb3I6ICNFOUVFRjA7XG59XG5cbi5zdGF0aWMtaW1hZ2Uge1xuICBiYWNrZ3JvdW5kLXJlcGVhdDogbm8tcmVwZWF0ICFpbXBvcnRhbnQ7XG4gIGJhY2tncm91bmQtcG9zaXRpb246IGNlbnRlciAhaW1wb3J0YW50O1xuICBiYWNrZ3JvdW5kLXNpemU6IGNvdmVyICFpbXBvcnRhbnQ7XG59XG5cbi5jYXJvdXNlbF9fcHJldi1idXR0b24ge1xuICB0b3A6IDQ4JTtcbiAgZmxvYXQ6IGxlZnQ7XG4gIHotaW5kZXg6IDI7XG59XG5cbi5jYXJvdXNlbF9fbmV4dC1idXR0b24ge1xuICB0b3A6IDQ4JTtcbiAgZmxvYXQ6IHJpZ2h0O1xuICB6LWluZGV4OiAyO1xufVxuXG4ucGFnZS1zaXplLnN0YXRpYy1pbWFnZSB7XG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcbn1cbi5wYWdlLXNpemUuc3RhdGljLWltYWdlIC5jaGF0Qm90TGluayB7XG4gIHdpZHRoOiA4OHB4O1xuICBoZWlnaHQ6IDgwcHg7XG4gIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgcG9zaXRpb246IGFic29sdXRlO1xuICBib3R0b206IDIwcHg7XG4gIHotaW5kZXg6IDA7XG4gIHJpZ2h0OiAyMHB4O1xufVxuLnBhZ2Utc2l6ZS5zdGF0aWMtaW1hZ2UgLmNoYXRCb3RMaW5rIGltZyB7XG4gIHdpZHRoOiAxMDAlICFpbXBvcnRhbnQ7XG4gIGhlaWdodDogMTAwJSAhaW1wb3J0YW50O1xuICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG59XG5cbi5jaGF0Qm90RGlhbG9nIHtcbiAgd2lkdGg6IDI2MHB4O1xuICBoZWlnaHQ6IDEwNXB4O1xuICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgYm90dG9tOiA0cHg7XG4gIHotaW5kZXg6IDA7XG4gIHJpZ2h0OiAxMTlweDtcbiAgYmFja2dyb3VuZDogI2QyZTliMztcbiAgYm9yZGVyLXJhZGl1czogMHB4IDIzcHggMjNweCAyM3B4O1xuICBwYWRkaW5nOiAxN3B4O1xufVxuLmNoYXRCb3REaWFsb2c6YWZ0ZXIge1xuICBjb250ZW50OiBcIlwiO1xuICByaWdodDogLTE0cHg7XG4gIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgd2lkdGg6IDA7XG4gIGhlaWdodDogMDtcbiAgYm9yZGVyLXRvcDogMjJweCBzb2xpZCB0cmFuc3BhcmVudDtcbiAgYm9yZGVyLWJvdHRvbTogMTZweCBzb2xpZCB0cmFuc3BhcmVudDtcbiAgYm9yZGVyLWxlZnQ6IDE2cHggc29saWQgI2QyZTliMztcbiAgcG9zaXRpb246IGFic29sdXRlO1xuICB0b3A6IDgycHg7XG59XG4uY2hhdEJvdERpYWxvZyAuY2xvc2VEaWFsb2cge1xuICBjb2xvcjogIzExMTtcbn1cbi5jaGF0Qm90RGlhbG9nIHNwYW4ge1xuICBkaXNwbGF5OiBibG9jaztcbn1cbi5jaGF0Qm90RGlhbG9nIHNwYW4gcCB7XG4gIGhlaWdodDogMjNweDtcbiAgbWFyZ2luOiAwcHg7XG4gIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgZm9udC1zaXplOiAxOXB4O1xuICBjb2xvcjogIzMzMztcbn1cbi5jaGF0Qm90RGlhbG9nIHNwYW4gcCAuY2xzLXNtaWxlIHtcbiAgZm9udC1zaXplOiAyM3B4O1xuICBoZWlnaHQ6IDIxcHg7XG4gIHZlcnRpY2FsLWFsaWduOiBib3R0b207XG4gIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbn1cbi5jaGF0Qm90RGlhbG9nIC5jbG9zZSB7XG4gIG1hcmdpbjogLTEwcHg7XG4gIGZsb2F0OiByaWdodDtcbiAgY3Vyc29yOiBwb2ludGVyO1xufSJdfQ== */\"","import { Component, Inject, OnInit, Optional } from '@angular/core';\nimport { MatomoTracker } from 'ngx-matomo';\nimport { MatomoInjector } from 'ngx-matomo';\nimport { OAuthService } from 'angular-oauth2-oidc';\nimport { environment } from '../../../environments/environment.prod';\nimport { UtilService } from '../../services/util/util.service';\nimport * as pkg from '../../../../package.json';\nimport { interval } from 'rxjs'\n// import {\n// trigger,\n// style,\n// animate,\n// transition,\n// } from '@angular/animations';\n\nimport { DomSanitizer } from '@angular/platform-browser'\nimport { Router } from '@angular/router';\nimport { MatDialog, MatDialogRef, MAT_DIALOG_DATA } from '@angular/material/dialog';\nimport { AlertConfirmationComponent } from '../alert-confirmation/alert-confirmation.component';\nimport { BackendApiService } from 'src/app/services/backend-api/backend-api.service';\nimport { TranslateService } from '@ngx-translate/core';\n\n@Component({\n selector: 'app-home',\n templateUrl: './home.component.html',\n styleUrls: ['./home.component.scss'],\n providers: [\n { provide: MAT_DIALOG_DATA, useValue: {} },\n { provide: MatDialogRef, useValue: {} }\n ]\n // animations: [\n // trigger('fadeSlideInOut', [\n // transition(':enter', [\n // style({\n // opacity: 0\n // }),\n // animate('1s ease-in', style({\n // opacity: 1\n // }))\n // ]),\n // transition(':leave', [\n // style({\n // opacity: 1\n // }),\n // animate('1s ease-out', style({\n // opacity: 0\n // }))\n // ]),\n // ]),\n // ]\n})\nexport class HomeComponent implements OnInit {\n urlToImage = '../../../assets/images/slideshow/3.jpg'\n index: number = 1;\n numImages: number = 4;\n imagesLoaded: number = 0;\n showIcons = true;\n chatBotDialog = true;\n background;\n\n constructor(private oauthService: OAuthService,private translateService: TranslateService, private matomoTracker: MatomoTracker, private matomoInjector: MatomoInjector, private router: Router,\n readonly apiService: BackendApiService, readonly utilService: UtilService, private sanitization: DomSanitizer, @Inject(MAT_DIALOG_DATA) public data: any, public dialog: MatDialog) {\n const isMatomo = sessionStorage.getItem('isMatomo');\n // if (isMatomo === null) {\n sessionStorage.setItem('isMatomo', \"0\");\n const claims = this.oauthService.getIdentityClaims();\n const queryParam = { \"userIpn\": claims['login'], \"clientVersion\": pkg.version };\n console.log(\"test1\", pkg.version);\n this.apiService.createuserlogin(queryParam).subscribe(res => {\n console.log(\"test\", res)\n },\n error => {\n console.log(\"error\", error.message);\n });\n // }\n this.utilService.$favoriteConnecton$.next(\"\");\n this.background =\n this.sanitization.bypassSecurityTrustStyle(`url(../../../assets/images/slideshow/1.jpg) no-repeat`);\n this.utilService.$showIcon$.next(true);\n }\n\n ngOnInit() {\n // const claims = this.oauthService.getIdentityClaims();\n // this.matomoPageTrack(`${claims['firstname']} ${claims['lastname']}`, '');\n // this.background =\n // this.sanitization.bypassSecurityTrustStyle(`url(../../../assets/images/slideshow/${this.index}.jpg) no-repeat`);\n // interval(30000).subscribe(() => {\n // // this.index = (this.index + 1) % this.numImages;\n // // this.background =\n // // this.sanitization.bypassSecurityTrustStyle(`url(../../../assets/images/slideshow/${this.index + 1}.jpg) no-repeat`);\n\n // let expat = sessionStorage.getItem(\"expires_at\");\n // const startTS = sessionStorage.getItem(\"start_ts\");\n // if (expat !== startTS) {\n // sessionStorage.setItem(\"start_ts\", sessionStorage.getItem(\"expires_at\"));\n // alert(\"Session expired. Page auto refresh\");\n // window.location.reload();\n // }\n\n // let dt = new Date();\n // dt.setMinutes(dt.getMinutes() - 5);\n // console.log(\"expat\", Number(startTS), dt.valueOf());\n // if (dt.valueOf() > Number(startTS)) {\n // this.oauthService.silentRefresh();\n // alert(\"Session expired. Page auto refresh\");\n // let dtNew = new Date();\n // sessionStorage.setItem(\"start_ts\", dtNew.valueOf().toString());\n // window.location.reload();\n // }\n\n // if (expat !== null) {\n // let dt = new Date();\n // dt.setMinutes(dt.getMinutes() + 10);\n // console.log(\"expat\", Number(expat), dt.valueOf());\n // if (dt.valueOf() > Number(expat)) {\n // this.oauthService.silentRefresh();\n // alert(\"Session expired. Page auto refresh\");\n // window.location.reload();\n // }\n // }\n\n // })\n\n this.utilService.$showIcon$.subscribe(z => {\n this.showIcons = z;\n })\n\n // setInterval(() => {\n // const lastURL = localStorage.getItem(\"lURL\");\n // if (!lastURL) {\n // const claims = this.oauthService.getIdentityClaims();\n // // console.log(\"this.difference(new Date(claims['exp'] * 1000), new Date()) < 28\", this.difference(new Date(claims['exp'] * 1000), new Date()) < 28, new Date(claims['exp'] * 1000), new Date())\n // // if (this.difference(new Date(claims['exp'] * 1000), new Date()) < 28) {\n // if (new Date() > new Date(claims['exp'] * 1000)) {\n // // console.log(\"datediff\", this.difference(new Date(claims['exp'] * 1000), new Date()));\n // const store = window.sessionStorage;\n // Object.keys(store).forEach((key) => {\n // localStorage[key] = store.getItem(key);\n // });\n // sessionStorage.setItem(\"lURL\", window.location.pathname);\n // const dialogRef = this.dialog.open(AlertConfirmationComponent, {\n // disableClose: true,\n // width: '550px',\n // data: { 'display': this.utilService.getTranslateName(`COMMON.sessionexp`), 'isAlert': true, 'isText': false }\n // });\n\n // dialogRef.afterClosed().subscribe(result => {\n // // this.oauthService.logOut();\n\n // this.router.navigate([\"\"]);\n // window.location.reload();\n // })\n // }\n // }\n\n // }, 30000);\n }\n\n\n difference(date1, date2) {\n var utcThis = Date.UTC(date1.getFullYear(), date1.getMonth(), date1.getDate(), date1.getHours(), date1.getMinutes(), date1.getSeconds(), date1.getMilliseconds());\n var utcOther = Date.UTC(date2.getFullYear(), date2.getMonth(), date2.getDate(), date2.getHours(), date2.getMinutes(), date2.getSeconds(), date2.getMilliseconds());\n\n return Math.abs(utcThis - utcOther) / 60000;\n }\n /**\n * Progresses the carousel forward by 1 slide.\n */\n next() {\n if (this.index + 1 <= this.numImages) {\n this.index = this.index + 1;\n this.background =\n this.sanitization.bypassSecurityTrustStyle(`url(../../../assets/images/slideshow/${this.index}.jpg) no-repeat`);\n }\n }\n\n /**\n * Regresses the carousel backwards by 1 slide.\n */\n prev() {\n // if (this.currentSlide === 0) return;\n if (this.index > 1) {\n this.index = this.index - 1;\n this.background =\n this.sanitization.bypassSecurityTrustStyle(`url(../../../assets/images/slideshow/${this.index}.jpg) no-repeat`);\n }\n }\n\n // matomoPageTrack(ipm: string, role: string): void {\n // // debugger;\n // if (location.pathname === '/home' && sessionStorage.getItem('isMatomo') === '0') {\n // const claims = this.oauthService.getIdentityClaims();\n // // console.log(\"${claims['uid']} ${claims['firstname']} ${claims['lastname']}\", `${claims['uid']} ${claims['firstname']} ${claims['lastname']}`)\n // this.matomoTracker.setUserId(ipm);\n // this.matomoTracker.setCustomDimension(1, `${claims['firstname']} ${claims['lastname']}`);\n // // this.matomoInjector.init('https://piwik.renault-digital.com/', 2342);\n // if ((window.location.hostname.indexOf('pil.app.renault.com') !== -1)\n // || (window.location.hostname.indexOf('pil-app.gke2.ope.gcp.renault.com') !== -1)) {\n // this.matomoInjector.init('https://matomo.dt.renault.com/', environment.idp.prod.ope.piwikID);\n // } else if (window.location.hostname.indexOf('pil-app.gke2.int.gcp.renault.com') !== -1) {\n // this.matomoInjector.init('https://matomo.dt.renault.com/', environment.idp.prod.re7.piwikID);\n // } else if (window.location.hostname.indexOf('pil-app.gke2.dev.gcp.renault.com') !== -1) {\n // this.matomoInjector.init('https://matomo.dt.renault.com/', environment.idp.prod.dev.piwikID);\n // } else {\n // this.matomoInjector.init('https://matomo.dt.renault.com/', environment.idp.prod.dev.piwikID);\n // }\n // sessionStorage.setItem('isMatomo', \"1\");\n // const queryParam = { \"userIpn\": claims['uid'], \"clientVersion\": pkg.version };\n // console.log(\"test1\", pkg.version);\n // this.apiService.createuserlogin(queryParam).subscribe(res => {\n // console.log(\"test\", res)\n // },\n // error => {\n // console.log(\"error\", error.message);\n // });\n // // this.matomoTracker.setCustomDimension(2, `${claims['uid']} ${claims['firstname']} ${claims['lastname']}`);\n\n // }\n // }\n\n closeDialogBox(){\n this.chatBotDialog=false;\n }\n\n}\n","export default \".label-management-style {\\n width: 75%;\\n max-height: 610px;\\n border: 1px solid;\\n padding: 15px;\\n background-color: #ffffff;\\n}\\n.label-management-style .div-width {\\n width: 100%;\\n}\\n.label-management-style .item-right {\\n float: right;\\n}\\n.label-management-style .div-flex {\\n display: flex;\\n}\\n.label-management-style .margin-bot-10 {\\n margin-bottom: 10px;\\n}\\n.label-management-style .dot-style {\\n width: 0px;\\n margin-top: 4px;\\n color: #ffffff;\\n}\\n.label-management-style .example-radio-group {\\n display: flex;\\n margin: 15px 0;\\n}\\n.label-management-style .example-radio-button {\\n margin-right: 20px;\\n}\\n.label-management-style .img-size-20 {\\n height: 18px;\\n width: 18px;\\n cursor: pointer;\\n}\\n.label-management-style .title-font {\\n color: #000000;\\n font-family: Roboto, \\\"Helvetica Neue\\\", sans-serif;\\n font-size: 14px;\\n font-weight: 500;\\n line-height: 17px;\\n width: 210px;\\n text-align: left;\\n}\\n.label-management-style .content-font {\\n color: #000000;\\n font-family: Roboto, \\\"Helvetica Neue\\\", sans-serif;\\n font-size: 13px;\\n font-weight: 400;\\n line-height: 17px;\\n width: 59px;\\n text-align: left;\\n}\\n.label-management-style .hr-line {\\n width: 3%;\\n margin-top: 5px;\\n margin-left: 10px;\\n height: 40px;\\n border-right: 1px solid;\\n border-right-color: #ccc;\\n}\\n.label-management-style .radio-toolbar {\\n margin-top: 5px;\\n}\\n.label-management-style .radio-toolbar input[type=radio] {\\n opacity: 0;\\n position: fixed;\\n width: 20px;\\n}\\n.label-management-style .radio-toolbar label {\\n display: inline-block;\\n text-align: center;\\n padding: 5px;\\n font-family: Roboto, \\\"Helvetica Neue\\\", sans-serif;\\n font-size: 13px;\\n font-weight: 500;\\n border: 1px solid #cccccc;\\n width: 70px;\\n min-width: 70px;\\n margin-right: 5px;\\n margin-bottom: 5px;\\n}\\n.label-management-style .radio-toolbar label:hover {\\n background-color: #dfd;\\n}\\n.label-management-style .radio-toolbar input[type=radio]:checked + label {\\n background-color: #0077C8;\\n color: #ffffff;\\n}\\n.label-management-style .label-checked {\\n background-color: #0077C8;\\n color: #ffffff;\\n}\\n.label-management-style span {\\n font-family: \\\"Helvetica\\\", Times, serif;\\n font-size: 13px;\\n}\\n.label-management-style .dot {\\n margin-top: 5px;\\n height: 15px;\\n width: 15px;\\n background-color: #bbb;\\n border-radius: 50%;\\n display: inline-block;\\n margin-right: 10px;\\n}\\n.label-management-style .dot-backcolour-green {\\n background-color: #6BCC6F;\\n}\\n.label-management-style .dot-backcolour-red {\\n background-color: #FF0000;\\n}\\n.label-management-style .dot-backcolour-orange {\\n background-color: #FFA500;\\n}\\n.label-management-style .button-style {\\n width: 100px;\\n height: 36px;\\n font-family: Roboto, \\\"Helvetica Neue\\\", sans-serif;\\n font-size: 13px;\\n font-weight: 500;\\n text-align: center;\\n border: 0px solid;\\n background-color: #FFCC33;\\n padding: 0 !important;\\n border-radius: 0px;\\n}\\n.label-management-style .table-div {\\n height: 410px;\\n border: 1px solid #ccc;\\n overflow-y: auto;\\n}\\n.label-management-style .table-div table th {\\n border-bottom: 1px solid #ccc;\\n padding: 3px;\\n text-align: center;\\n}\\n.label-management-style .table-div table td {\\n border: 1px solid #ccc;\\n padding: 3px;\\n}\\n.label-management-style .table-div table tr:nth-child(even) {\\n background-color: #f2f2f2;\\n}\\n.label-management-style .table-div table thead {\\n background-color: #eee;\\n position: -webkit-sticky;\\n position: sticky;\\n top: -2px;\\n}\\n.label-management-style .selected-row {\\n color: #0077C8;\\n font-size: 13px !important;\\n}\\n.label-management-style .edited-row {\\n color: red;\\n font-size: 13px !important;\\n}\\n.text-span {\\n font-family: Roboto, \\\"Helvetica Neue\\\", sans-serif;\\n font-size: 11px !important;\\n font-weight: 400;\\n line-height: 20px;\\n}\\n.cls-displayNone {\\n display: none !important;\\n}\\n.clsTabMnag1 {\\n width: 100% !important;\\n border-bottom: 1px solid #ccc !important;\\n border-collapse: collapse !important;\\n}\\n/*# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi91c3Ivc3JjL3NyYy9hcHAvY29tcG9uZW50L2xhYmVsLW1hbmFnZW1lbnQvbGFiZWwtbWFuYWdlbWVudC5jb21wb25lbnQuc2NzcyIsInNyYy9hcHAvY29tcG9uZW50L2xhYmVsLW1hbmFnZW1lbnQvbGFiZWwtbWFuYWdlbWVudC5jb21wb25lbnQuc2NzcyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQTtFQUNFLFVBQUE7RUFDQSxpQkFBQTtFQUNBLGlCQUFBO0VBQ0EsYUFBQTtFQUNBLHlCQUFBO0FDQ0Y7QURDRTtFQUNFLFdBQUE7QUNDSjtBREVFO0VBQ0UsWUFBQTtBQ0FKO0FER0U7RUFDRSxhQUFBO0FDREo7QURJRTtFQUNFLG1CQUFBO0FDRko7QURLRTtFQUNFLFVBQUE7RUFFQSxlQUFBO0VBQ0EsY0FBQTtBQ0pKO0FET0U7RUFDRSxhQUFBO0VBRUEsY0FBQTtBQ05KO0FEU0U7RUFFRSxrQkFBQTtBQ1JKO0FEV0U7RUFDRSxZQUFBO0VBQ0EsV0FBQTtFQUVBLGVBQUE7QUNWSjtBRGFFO0VBQ0UsY0FBQTtFQUNBLGlEQUFBO0VBQ0EsZUFBQTtFQUNBLGdCQUFBO0VBQ0EsaUJBQUE7RUFDQSxZQUFBO0VBQ0EsZ0JBQUE7QUNYSjtBRGNFO0VBQ0UsY0FBQTtFQUNBLGlEQUFBO0VBQ0EsZUFBQTtFQUNBLGdCQUFBO0VBQ0EsaUJBQUE7RUFDQSxXQUFBO0VBQ0EsZ0JBQUE7QUNaSjtBRGVFO0VBQ0UsU0FBQTtFQUNBLGVBQUE7RUFDQSxpQkFBQTtFQUNBLFlBQUE7RUFDQSx1QkFBQTtFQUNBLHdCQUFBO0FDYko7QURnQkU7RUFDRSxlQUFBO0FDZEo7QURpQkU7RUFDRSxVQUFBO0VBQ0EsZUFBQTtFQUNBLFdBQUE7QUNmSjtBRGtCRTtFQUNFLHFCQUFBO0VBRUEsa0JBQUE7RUFDQSxZQUFBO0VBQ0EsaURBQUE7RUFDQSxlQUFBO0VBQ0EsZ0JBQUE7RUFDQSx5QkFBQTtFQUVBLFdBQUE7RUFDQSxlQUFBO0VBQ0EsaUJBQUE7RUFDQSxrQkFBQTtBQ2xCSjtBRHFCRTtFQUNFLHNCQUFBO0FDbkJKO0FEMEJFO0VBQ0UseUJBQUE7RUFFQSxjQUFBO0FDekJKO0FENEJFO0VBQ0UseUJBQUE7RUFFQSxjQUFBO0FDM0JKO0FEOEJFO0VBQ0Usc0NBQUE7RUFDQSxlQUFBO0FDNUJKO0FEK0JFO0VBQ0UsZUFBQTtFQUNBLFlBQUE7RUFDQSxXQUFBO0VBQ0Esc0JBQUE7RUFDQSxrQkFBQTtFQUNBLHFCQUFBO0VBQ0Esa0JBQUE7QUM3Qko7QURnQ0U7RUFDRSx5QkFBQTtBQzlCSjtBRGlDRTtFQUNFLHlCQUFBO0FDL0JKO0FEa0NFO0VBQ0UseUJBQUE7QUNoQ0o7QURtQ0U7RUFDRSxZQUFBO0VBQ0EsWUFBQTtFQUNBLGlEQUFBO0VBQ0EsZUFBQTtFQUNBLGdCQUFBO0VBQ0Esa0JBQUE7RUFDQSxpQkFBQTtFQUNBLHlCQUFBO0VBQ0EscUJBQUE7RUFDQSxrQkFBQTtBQ2pDSjtBRHFDRTtFQUNFLGFBQUE7RUFDQSxzQkFBQTtFQUNBLGdCQUFBO0FDbkNKO0FEd0NNO0VBQ0UsNkJBQUE7RUFDQSxZQUFBO0VBQ0Esa0JBQUE7QUN0Q1I7QUR5Q007RUFDRSxzQkFBQTtFQUNBLFlBQUE7QUN2Q1I7QUQwQ007RUFDRSx5QkFBQTtBQ3hDUjtBRDJDTTtFQUNFLHNCQUFBO0VBQ0Esd0JBQUE7RUFBQSxnQkFBQTtFQUNBLFNBQUE7QUN6Q1I7QUQrQ0U7RUFDRSxjQUFBO0VBRUEsMEJBQUE7QUM5Q0o7QURpREU7RUFDRSxVQUFBO0VBRUEsMEJBQUE7QUNoREo7QURxREE7RUFDRSxpREFBQTtFQUNBLDBCQUFBO0VBQ0EsZ0JBQUE7RUFDQSxpQkFBQTtBQ2xERjtBRHFEQTtFQUNFLHdCQUFBO0FDbERGO0FEb0RBO0VBQ0Usc0JBQUE7RUFDQSx3Q0FBQTtFQUNBLG9DQUFBO0FDakRGIiwiZmlsZSI6InNyYy9hcHAvY29tcG9uZW50L2xhYmVsLW1hbmFnZW1lbnQvbGFiZWwtbWFuYWdlbWVudC5jb21wb25lbnQuc2NzcyIsInNvdXJjZXNDb250ZW50IjpbIi5sYWJlbC1tYW5hZ2VtZW50LXN0eWxlIHtcbiAgd2lkdGg6IDc1JTtcbiAgbWF4LWhlaWdodDogNjEwcHg7XG4gIGJvcmRlcjogMXB4IHNvbGlkO1xuICBwYWRkaW5nOiAxNXB4O1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjZmZmZmZmO1xuXG4gIC5kaXYtd2lkdGgge1xuICAgIHdpZHRoOiAxMDAlO1xuICB9XG5cbiAgLml0ZW0tcmlnaHQge1xuICAgIGZsb2F0OiByaWdodDtcbiAgfVxuXG4gIC5kaXYtZmxleCB7XG4gICAgZGlzcGxheTogZmxleDtcbiAgfVxuXG4gIC5tYXJnaW4tYm90LTEwIHtcbiAgICBtYXJnaW4tYm90dG9tOiAxMHB4O1xuICB9XG5cbiAgLmRvdC1zdHlsZSB7XG4gICAgd2lkdGg6IDBweDtcbiAgICAvLyBtYXJnaW4tbGVmdDogMTBweDsgXG4gICAgbWFyZ2luLXRvcDogNHB4O1xuICAgIGNvbG9yOiAjZmZmZmZmO1xuICB9XG5cbiAgLmV4YW1wbGUtcmFkaW8tZ3JvdXAge1xuICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgLy8gICBmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xuICAgIG1hcmdpbjogMTVweCAwO1xuICB9XG5cbiAgLmV4YW1wbGUtcmFkaW8tYnV0dG9uIHtcbiAgICAvLyAgIG1hcmdpbjogNXB4O1xuICAgIG1hcmdpbi1yaWdodDogMjBweDtcbiAgfVxuXG4gIC5pbWctc2l6ZS0yMCB7XG4gICAgaGVpZ2h0OiAxOHB4O1xuICAgIHdpZHRoOiAxOHB4O1xuICAgIC8vIG1hcmdpbi10b3A6IDdweDtcbiAgICBjdXJzb3I6IHBvaW50ZXI7XG4gIH1cblxuICAudGl0bGUtZm9udCB7XG4gICAgY29sb3I6ICMwMDAwMDA7XG4gICAgZm9udC1mYW1pbHk6IFJvYm90bywgXCJIZWx2ZXRpY2EgTmV1ZVwiLCBzYW5zLXNlcmlmO1xuICAgIGZvbnQtc2l6ZTogMTRweDtcbiAgICBmb250LXdlaWdodDogNTAwO1xuICAgIGxpbmUtaGVpZ2h0OiAxN3B4O1xuICAgIHdpZHRoOiAyMTBweDtcbiAgICB0ZXh0LWFsaWduOiBsZWZ0O1xuICB9XG5cbiAgLmNvbnRlbnQtZm9udCB7XG4gICAgY29sb3I6ICMwMDAwMDA7XG4gICAgZm9udC1mYW1pbHk6IFJvYm90bywgXCJIZWx2ZXRpY2EgTmV1ZVwiLCBzYW5zLXNlcmlmO1xuICAgIGZvbnQtc2l6ZTogMTNweDtcbiAgICBmb250LXdlaWdodDogNDAwO1xuICAgIGxpbmUtaGVpZ2h0OiAxN3B4O1xuICAgIHdpZHRoOiA1OXB4O1xuICAgIHRleHQtYWxpZ246IGxlZnQ7XG4gIH1cblxuICAuaHItbGluZSB7XG4gICAgd2lkdGg6IDMlO1xuICAgIG1hcmdpbi10b3A6IDVweDtcbiAgICBtYXJnaW4tbGVmdDogMTBweDtcbiAgICBoZWlnaHQ6IDQwcHg7XG4gICAgYm9yZGVyLXJpZ2h0OiAxcHggc29saWQ7XG4gICAgYm9yZGVyLXJpZ2h0LWNvbG9yOiAjY2NjO1xuICB9XG5cbiAgLnJhZGlvLXRvb2xiYXIge1xuICAgIG1hcmdpbi10b3A6IDVweDtcbiAgfVxuXG4gIC5yYWRpby10b29sYmFyIGlucHV0W3R5cGU9XCJyYWRpb1wiXSB7XG4gICAgb3BhY2l0eTogMDtcbiAgICBwb3NpdGlvbjogZml4ZWQ7XG4gICAgd2lkdGg6IDIwcHg7XG4gIH1cblxuICAucmFkaW8tdG9vbGJhciBsYWJlbCB7XG4gICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgIC8vIGJhY2tncm91bmQtY29sb3I6ICNkZGQ7XG4gICAgdGV4dC1hbGlnbjogY2VudGVyO1xuICAgIHBhZGRpbmc6IDVweDtcbiAgICBmb250LWZhbWlseTogUm9ib3RvLCBcIkhlbHZldGljYSBOZXVlXCIsIHNhbnMtc2VyaWY7XG4gICAgZm9udC1zaXplOiAxM3B4O1xuICAgIGZvbnQtd2VpZ2h0OiA1MDA7XG4gICAgYm9yZGVyOiAxcHggc29saWQgI2NjY2NjYztcbiAgICAvLyBib3JkZXItcmFkaXVzOiA0cHg7XG4gICAgd2lkdGg6IDcwcHg7XG4gICAgbWluLXdpZHRoOiA3MHB4O1xuICAgIG1hcmdpbi1yaWdodDogNXB4O1xuICAgIG1hcmdpbi1ib3R0b206IDVweDtcbiAgfVxuXG4gIC5yYWRpby10b29sYmFyIGxhYmVsOmhvdmVyIHtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjZGZkO1xuICB9XG5cbiAgLy8gLnJhZGlvLXRvb2xiYXIgaW5wdXRbdHlwZT1cInJhZGlvXCJdOmZvY3VzICsgbGFiZWwge1xuICAvLyAgICAgYm9yZGVyOiAycHggZGFzaGVkICM0NDQ7XG4gIC8vIH1cblxuICAucmFkaW8tdG9vbGJhciBpbnB1dFt0eXBlPVwicmFkaW9cIl06Y2hlY2tlZCtsYWJlbCB7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogIzAwNzdDODtcbiAgICAvLyBib3JkZXItY29sb3I6ICM0YzQ7XG4gICAgY29sb3I6ICNmZmZmZmY7XG4gIH1cblxuICAubGFiZWwtY2hlY2tlZCB7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogIzAwNzdDODtcbiAgICAvLyBib3JkZXItY29sb3I6ICM0YzQ7XG4gICAgY29sb3I6ICNmZmZmZmY7XG4gIH1cblxuICBzcGFuIHtcbiAgICBmb250LWZhbWlseTogXCJIZWx2ZXRpY2FcIiwgVGltZXMsIHNlcmlmO1xuICAgIGZvbnQtc2l6ZTogMTNweDtcbiAgfVxuXG4gIC5kb3Qge1xuICAgIG1hcmdpbi10b3A6IDVweDtcbiAgICBoZWlnaHQ6IDE1cHg7XG4gICAgd2lkdGg6IDE1cHg7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogI2JiYjtcbiAgICBib3JkZXItcmFkaXVzOiA1MCU7XG4gICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgIG1hcmdpbi1yaWdodDogMTBweDtcbiAgfVxuXG4gIC5kb3QtYmFja2NvbG91ci1ncmVlbiB7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogIzZCQ0M2RjtcbiAgfVxuXG4gIC5kb3QtYmFja2NvbG91ci1yZWQge1xuICAgIGJhY2tncm91bmQtY29sb3I6ICNGRjAwMDA7XG4gIH1cblxuICAuZG90LWJhY2tjb2xvdXItb3JhbmdlIHtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjRkZBNTAwO1xuICB9XG5cbiAgLmJ1dHRvbi1zdHlsZSB7XG4gICAgd2lkdGg6IDEwMHB4O1xuICAgIGhlaWdodDogMzZweDtcbiAgICBmb250LWZhbWlseTogUm9ib3RvLCBcIkhlbHZldGljYSBOZXVlXCIsIHNhbnMtc2VyaWY7XG4gICAgZm9udC1zaXplOiAxM3B4O1xuICAgIGZvbnQtd2VpZ2h0OiA1MDA7XG4gICAgdGV4dC1hbGlnbjogY2VudGVyO1xuICAgIGJvcmRlcjogMHB4IHNvbGlkO1xuICAgIGJhY2tncm91bmQtY29sb3I6ICNGRkNDMzM7XG4gICAgcGFkZGluZzogMCAhaW1wb3J0YW50O1xuICAgIGJvcmRlci1yYWRpdXM6IDBweDtcbiAgfVxuXG5cbiAgLnRhYmxlLWRpdiB7XG4gICAgaGVpZ2h0OiA0MTBweDtcbiAgICBib3JkZXI6IDFweCBzb2xpZCAjY2NjO1xuICAgIG92ZXJmbG93LXk6IGF1dG87XG5cbiAgICB0YWJsZSB7XG5cbiAgICAgIC8vIGhlaWdodDogNDAwcHggIWltcG9ydGFudDtcbiAgICAgIHRoIHtcbiAgICAgICAgYm9yZGVyLWJvdHRvbTogMXB4IHNvbGlkICNjY2M7XG4gICAgICAgIHBhZGRpbmc6IDNweDtcbiAgICAgICAgdGV4dC1hbGlnbjogY2VudGVyO1xuICAgICAgfVxuXG4gICAgICB0ZCB7XG4gICAgICAgIGJvcmRlcjogMXB4IHNvbGlkICNjY2M7XG4gICAgICAgIHBhZGRpbmc6IDNweDtcbiAgICAgIH1cblxuICAgICAgdHI6bnRoLWNoaWxkKGV2ZW4pIHtcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogI2YyZjJmMjtcbiAgICAgIH1cblxuICAgICAgdGhlYWQge1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjZWVlO1xuICAgICAgICBwb3NpdGlvbjogc3RpY2t5O1xuICAgICAgICB0b3A6IC0ycHg7XG4gICAgICB9XG4gICAgfVxuXG4gIH1cblxuICAuc2VsZWN0ZWQtcm93IHtcbiAgICBjb2xvcjogIzAwNzdDODtcbiAgICAvLyBmb250LXdlaWdodDogNjAwO1xuICAgIGZvbnQtc2l6ZTogMTNweCAhaW1wb3J0YW50O1xuICB9XG5cbiAgLmVkaXRlZC1yb3cge1xuICAgIGNvbG9yOiByZWQ7XG4gICAgLy8gZm9udC13ZWlnaHQ6IDYwMDtcbiAgICBmb250LXNpemU6IDEzcHggIWltcG9ydGFudDtcbiAgfVxufVxuXG5cbi50ZXh0LXNwYW4ge1xuICBmb250LWZhbWlseTogUm9ib3RvLCBcIkhlbHZldGljYSBOZXVlXCIsIHNhbnMtc2VyaWY7XG4gIGZvbnQtc2l6ZTogMTFweCAhaW1wb3J0YW50O1xuICBmb250LXdlaWdodDogNDAwO1xuICBsaW5lLWhlaWdodDogMjBweDtcbiAgLy8gbWFyZ2luLWxlZnQ6IC00cHg7XG59XG4uY2xzLWRpc3BsYXlOb25le1xuICBkaXNwbGF5Om5vbmUgIWltcG9ydGFudDtcbn1cbi5jbHNUYWJNbmFnMXtcbiAgd2lkdGg6IDEwMCUgIWltcG9ydGFudDtcbiAgYm9yZGVyLWJvdHRvbTogMXB4IHNvbGlkICNjY2MgIWltcG9ydGFudDtcbiAgYm9yZGVyLWNvbGxhcHNlOiBjb2xsYXBzZSAhaW1wb3J0YW50O1xufSIsIi5sYWJlbC1tYW5hZ2VtZW50LXN0eWxlIHtcbiAgd2lkdGg6IDc1JTtcbiAgbWF4LWhlaWdodDogNjEwcHg7XG4gIGJvcmRlcjogMXB4IHNvbGlkO1xuICBwYWRkaW5nOiAxNXB4O1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjZmZmZmZmO1xufVxuLmxhYmVsLW1hbmFnZW1lbnQtc3R5bGUgLmRpdi13aWR0aCB7XG4gIHdpZHRoOiAxMDAlO1xufVxuLmxhYmVsLW1hbmFnZW1lbnQtc3R5bGUgLml0ZW0tcmlnaHQge1xuICBmbG9hdDogcmlnaHQ7XG59XG4ubGFiZWwtbWFuYWdlbWVudC1zdHlsZSAuZGl2LWZsZXgge1xuICBkaXNwbGF5OiBmbGV4O1xufVxuLmxhYmVsLW1hbmFnZW1lbnQtc3R5bGUgLm1hcmdpbi1ib3QtMTAge1xuICBtYXJnaW4tYm90dG9tOiAxMHB4O1xufVxuLmxhYmVsLW1hbmFnZW1lbnQtc3R5bGUgLmRvdC1zdHlsZSB7XG4gIHdpZHRoOiAwcHg7XG4gIG1hcmdpbi10b3A6IDRweDtcbiAgY29sb3I6ICNmZmZmZmY7XG59XG4ubGFiZWwtbWFuYWdlbWVudC1zdHlsZSAuZXhhbXBsZS1yYWRpby1ncm91cCB7XG4gIGRpc3BsYXk6IGZsZXg7XG4gIG1hcmdpbjogMTVweCAwO1xufVxuLmxhYmVsLW1hbmFnZW1lbnQtc3R5bGUgLmV4YW1wbGUtcmFkaW8tYnV0dG9uIHtcbiAgbWFyZ2luLXJpZ2h0OiAyMHB4O1xufVxuLmxhYmVsLW1hbmFnZW1lbnQtc3R5bGUgLmltZy1zaXplLTIwIHtcbiAgaGVpZ2h0OiAxOHB4O1xuICB3aWR0aDogMThweDtcbiAgY3Vyc29yOiBwb2ludGVyO1xufVxuLmxhYmVsLW1hbmFnZW1lbnQtc3R5bGUgLnRpdGxlLWZvbnQge1xuICBjb2xvcjogIzAwMDAwMDtcbiAgZm9udC1mYW1pbHk6IFJvYm90bywgXCJIZWx2ZXRpY2EgTmV1ZVwiLCBzYW5zLXNlcmlmO1xuICBmb250LXNpemU6IDE0cHg7XG4gIGZvbnQtd2VpZ2h0OiA1MDA7XG4gIGxpbmUtaGVpZ2h0OiAxN3B4O1xuICB3aWR0aDogMjEwcHg7XG4gIHRleHQtYWxpZ246IGxlZnQ7XG59XG4ubGFiZWwtbWFuYWdlbWVudC1zdHlsZSAuY29udGVudC1mb250IHtcbiAgY29sb3I6ICMwMDAwMDA7XG4gIGZvbnQtZmFtaWx5OiBSb2JvdG8sIFwiSGVsdmV0aWNhIE5ldWVcIiwgc2Fucy1zZXJpZjtcbiAgZm9udC1zaXplOiAxM3B4O1xuICBmb250LXdlaWdodDogNDAwO1xuICBsaW5lLWhlaWdodDogMTdweDtcbiAgd2lkdGg6IDU5cHg7XG4gIHRleHQtYWxpZ246IGxlZnQ7XG59XG4ubGFiZWwtbWFuYWdlbWVudC1zdHlsZSAuaHItbGluZSB7XG4gIHdpZHRoOiAzJTtcbiAgbWFyZ2luLXRvcDogNXB4O1xuICBtYXJnaW4tbGVmdDogMTBweDtcbiAgaGVpZ2h0OiA0MHB4O1xuICBib3JkZXItcmlnaHQ6IDFweCBzb2xpZDtcbiAgYm9yZGVyLXJpZ2h0LWNvbG9yOiAjY2NjO1xufVxuLmxhYmVsLW1hbmFnZW1lbnQtc3R5bGUgLnJhZGlvLXRvb2xiYXIge1xuICBtYXJnaW4tdG9wOiA1cHg7XG59XG4ubGFiZWwtbWFuYWdlbWVudC1zdHlsZSAucmFkaW8tdG9vbGJhciBpbnB1dFt0eXBlPXJhZGlvXSB7XG4gIG9wYWNpdHk6IDA7XG4gIHBvc2l0aW9uOiBmaXhlZDtcbiAgd2lkdGg6IDIwcHg7XG59XG4ubGFiZWwtbWFuYWdlbWVudC1zdHlsZSAucmFkaW8tdG9vbGJhciBsYWJlbCB7XG4gIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgdGV4dC1hbGlnbjogY2VudGVyO1xuICBwYWRkaW5nOiA1cHg7XG4gIGZvbnQtZmFtaWx5OiBSb2JvdG8sIFwiSGVsdmV0aWNhIE5ldWVcIiwgc2Fucy1zZXJpZjtcbiAgZm9udC1zaXplOiAxM3B4O1xuICBmb250LXdlaWdodDogNTAwO1xuICBib3JkZXI6IDFweCBzb2xpZCAjY2NjY2NjO1xuICB3aWR0aDogNzBweDtcbiAgbWluLXdpZHRoOiA3MHB4O1xuICBtYXJnaW4tcmlnaHQ6IDVweDtcbiAgbWFyZ2luLWJvdHRvbTogNXB4O1xufVxuLmxhYmVsLW1hbmFnZW1lbnQtc3R5bGUgLnJhZGlvLXRvb2xiYXIgbGFiZWw6aG92ZXIge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjZGZkO1xufVxuLmxhYmVsLW1hbmFnZW1lbnQtc3R5bGUgLnJhZGlvLXRvb2xiYXIgaW5wdXRbdHlwZT1yYWRpb106Y2hlY2tlZCArIGxhYmVsIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogIzAwNzdDODtcbiAgY29sb3I6ICNmZmZmZmY7XG59XG4ubGFiZWwtbWFuYWdlbWVudC1zdHlsZSAubGFiZWwtY2hlY2tlZCB7XG4gIGJhY2tncm91bmQtY29sb3I6ICMwMDc3Qzg7XG4gIGNvbG9yOiAjZmZmZmZmO1xufVxuLmxhYmVsLW1hbmFnZW1lbnQtc3R5bGUgc3BhbiB7XG4gIGZvbnQtZmFtaWx5OiBcIkhlbHZldGljYVwiLCBUaW1lcywgc2VyaWY7XG4gIGZvbnQtc2l6ZTogMTNweDtcbn1cbi5sYWJlbC1tYW5hZ2VtZW50LXN0eWxlIC5kb3Qge1xuICBtYXJnaW4tdG9wOiA1cHg7XG4gIGhlaWdodDogMTVweDtcbiAgd2lkdGg6IDE1cHg7XG4gIGJhY2tncm91bmQtY29sb3I6ICNiYmI7XG4gIGJvcmRlci1yYWRpdXM6IDUwJTtcbiAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICBtYXJnaW4tcmlnaHQ6IDEwcHg7XG59XG4ubGFiZWwtbWFuYWdlbWVudC1zdHlsZSAuZG90LWJhY2tjb2xvdXItZ3JlZW4ge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjNkJDQzZGO1xufVxuLmxhYmVsLW1hbmFnZW1lbnQtc3R5bGUgLmRvdC1iYWNrY29sb3VyLXJlZCB7XG4gIGJhY2tncm91bmQtY29sb3I6ICNGRjAwMDA7XG59XG4ubGFiZWwtbWFuYWdlbWVudC1zdHlsZSAuZG90LWJhY2tjb2xvdXItb3JhbmdlIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogI0ZGQTUwMDtcbn1cbi5sYWJlbC1tYW5hZ2VtZW50LXN0eWxlIC5idXR0b24tc3R5bGUge1xuICB3aWR0aDogMTAwcHg7XG4gIGhlaWdodDogMzZweDtcbiAgZm9udC1mYW1pbHk6IFJvYm90bywgXCJIZWx2ZXRpY2EgTmV1ZVwiLCBzYW5zLXNlcmlmO1xuICBmb250LXNpemU6IDEzcHg7XG4gIGZvbnQtd2VpZ2h0OiA1MDA7XG4gIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgYm9yZGVyOiAwcHggc29saWQ7XG4gIGJhY2tncm91bmQtY29sb3I6ICNGRkNDMzM7XG4gIHBhZGRpbmc6IDAgIWltcG9ydGFudDtcbiAgYm9yZGVyLXJhZGl1czogMHB4O1xufVxuLmxhYmVsLW1hbmFnZW1lbnQtc3R5bGUgLnRhYmxlLWRpdiB7XG4gIGhlaWdodDogNDEwcHg7XG4gIGJvcmRlcjogMXB4IHNvbGlkICNjY2M7XG4gIG92ZXJmbG93LXk6IGF1dG87XG59XG4ubGFiZWwtbWFuYWdlbWVudC1zdHlsZSAudGFibGUtZGl2IHRhYmxlIHRoIHtcbiAgYm9yZGVyLWJvdHRvbTogMXB4IHNvbGlkICNjY2M7XG4gIHBhZGRpbmc6IDNweDtcbiAgdGV4dC1hbGlnbjogY2VudGVyO1xufVxuLmxhYmVsLW1hbmFnZW1lbnQtc3R5bGUgLnRhYmxlLWRpdiB0YWJsZSB0ZCB7XG4gIGJvcmRlcjogMXB4IHNvbGlkICNjY2M7XG4gIHBhZGRpbmc6IDNweDtcbn1cbi5sYWJlbC1tYW5hZ2VtZW50LXN0eWxlIC50YWJsZS1kaXYgdGFibGUgdHI6bnRoLWNoaWxkKGV2ZW4pIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogI2YyZjJmMjtcbn1cbi5sYWJlbC1tYW5hZ2VtZW50LXN0eWxlIC50YWJsZS1kaXYgdGFibGUgdGhlYWQge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjZWVlO1xuICBwb3NpdGlvbjogc3RpY2t5O1xuICB0b3A6IC0ycHg7XG59XG4ubGFiZWwtbWFuYWdlbWVudC1zdHlsZSAuc2VsZWN0ZWQtcm93IHtcbiAgY29sb3I6ICMwMDc3Qzg7XG4gIGZvbnQtc2l6ZTogMTNweCAhaW1wb3J0YW50O1xufVxuLmxhYmVsLW1hbmFnZW1lbnQtc3R5bGUgLmVkaXRlZC1yb3cge1xuICBjb2xvcjogcmVkO1xuICBmb250LXNpemU6IDEzcHggIWltcG9ydGFudDtcbn1cblxuLnRleHQtc3BhbiB7XG4gIGZvbnQtZmFtaWx5OiBSb2JvdG8sIFwiSGVsdmV0aWNhIE5ldWVcIiwgc2Fucy1zZXJpZjtcbiAgZm9udC1zaXplOiAxMXB4ICFpbXBvcnRhbnQ7XG4gIGZvbnQtd2VpZ2h0OiA0MDA7XG4gIGxpbmUtaGVpZ2h0OiAyMHB4O1xufVxuXG4uY2xzLWRpc3BsYXlOb25lIHtcbiAgZGlzcGxheTogbm9uZSAhaW1wb3J0YW50O1xufVxuXG4uY2xzVGFiTW5hZzEge1xuICB3aWR0aDogMTAwJSAhaW1wb3J0YW50O1xuICBib3JkZXItYm90dG9tOiAxcHggc29saWQgI2NjYyAhaW1wb3J0YW50O1xuICBib3JkZXItY29sbGFwc2U6IGNvbGxhcHNlICFpbXBvcnRhbnQ7XG59Il19 */\"","import { Component, OnInit } from '@angular/core';\nimport { ActivatedRoute, Params, Router } from \"@angular/router\";\nimport { MatDialog, MatDialogRef, MAT_DIALOG_DATA } from '@angular/material/dialog';\nimport { ToastyService } from 'ng2-toasty';\nimport role from '../table/role.json';\n\nimport { BackendApiService } from '../../services/backend-api/backend-api.service';\nimport { UtilService } from '../../services/util/util.service';\nimport { RequestService } from '../../services/request/request.service';\nimport { TranslateService } from '@ngx-translate/core';\nimport { AlertConfirmationComponent } from '../alert-confirmation/alert-confirmation.component';\nimport { MatomoTracker } from 'ngx-matomo';\n\n@Component({\n selector: 'app-label-management',\n templateUrl: './label-management.component.html',\n styleUrls: ['./label-management.component.scss']\n})\nexport class LabelManagementComponent implements OnInit {\n\n role = role;\n alertMsg = [{ 'EUROPE': [] },\n { 'MERCOSUR': [] }];\n tableValues = {\n \"ipn\": undefined, \"region\": undefined, \"responseData\": undefined,\n \"tableData\": undefined, \"selectedRegion\": undefined, \"selectedTable\": undefined, \"selectedTableDetails\": undefined,\n \"dateDiff\": undefined, \"requestDatas\": undefined, \"roleBasedTableList\": undefined\n };\n profile = this.utilService.getUserProfile();\n isAdmin = false;\n roleBasedGroupList;\n filterCategory: any[];\n selectedCategory: 'All';\n categoryList: any[];\n displayCriteriaList: any[];\n criteriaList: any[];\n criteriaListOringinal: any;\n splitChar = \"§\";\n lang = 'fr';\n isShowHiddenList: boolean;\n strLock: any;\n rowIndex: any = -1;\n sLibelle: any = \"\";\n sLibelle_2: any = \"\";\n sLibCourt: any = \"\";\n sLibCourt_2: any = \"\";\n\n isEmpty: boolean;\n isModified: boolean;\n tableSelectionItem: any;\n isModifyCate: boolean;\n filterPrivateCategory: any[];\n\n gcoNameSort = true;\n lFranceSort = false;\n lEnglishSort = true;\n sFranceSort = true;\n sEnglishSort = true;\n\n constructor(readonly router: Router, readonly activatedRoute: ActivatedRoute, public dialog: MatDialog,\n readonly apiService: BackendApiService, readonly utilService: UtilService,\n private translateService: TranslateService,\n readonly requestService: RequestService, readonly toastyService: ToastyService, private matomoTracker: MatomoTracker) {\n this.utilService.$showIcon$.next(false);\n this.lang = requestService.getSelectedLang();\n }\n\n ngOnInit() {\n let regionRoles = this.utilService.getUserProfile()['roles'].filter(item => item.includes('ACC_PIL'));\n let regionRolesArr = { ...regionRoles};\n\n if (Object.keys(regionRolesArr).length > 1 && this.profile['roles'].includes('PIL_ADMIN') && this.profile['roles'].includes('PIL_ADMIN')) {\n\n this.tableValues.region = [];\n if(this.profile['roles'].includes('GR_PIL_TOUT'))\n this.tableValues.region.push('Europe');\n if(this.profile['roles'].includes('GR_PIM_TOUT'))\n this.tableValues.region.push('Mercosur');\n \n this.tableValues.selectedRegion = this.profile['roles'].includes('GR_PIL_TOUT') ? \"Europe\" : \"Mercosur\";\n \n } else {\n let region = (regionRoles.includes('ACC_PIL_EUROPE') && this.profile['roles'].includes('PIL_ADMIN') && this.profile['roles'].includes('GR_PIL_TOUT')) ? 'Europe' : 'Mercosur';\n this.tableValues.region = [region];\n this.tableValues.selectedRegion = region;\n }\n\n this.tableValues.ipn = this.profile['login']\n\n if (sessionStorage.getItem(\"request1\") === null) {\n [1,2,3].forEach(cnt => sessionStorage.setItem(\"request\"+cnt, undefined));\n }\n this.tableValues.requestDatas = this.requestService.getAllRequestData();\n this.getChoiceTableDetails(this.tableValues.selectedRegion);\n this.showHiddenCriteriaList();\n this.matomoTracker.trackPageView(`Label manangement`);\n }\n\n getRegionVal() {\n let region = this.requestService.getRegionMsg()\n }\n\n allowAllHistoricalData() {\n this.tableValues.selectedRegion === \"Europe\" && this.profile['roles'].includes('PIL_ADMIN') ? this.isAdmin = true : this.profile['roleS'].INCLUDES('PIM_ADMIN')? 'this.isAdmin = true;':'' ;\n }\n\n getUserRole4TabeList() {\n let rtnValue;\n if (this.tableValues.selectedRegion === \"Europe\") {\n rtnValue = this.profile['roles'].includes('GR_PIL_TOUT') ? 'GR_PIL_TOUT':'';\n } else {\n rtnValue = this.profile['roles'].includes('GR_PIM_TOUT') ? 'GR_PIM_TOUT':'';\n }\n return rtnValue;\n }\n\n getFavoriteRegion() {\n if (this.tableValues.selectedRegion === \"Europe\") {\n return \"PIL\";\n } else {\n return \"PIM\";\n }\n }\n\n getChoiceTableDetails(item) {\n this.tableValues.tableData = undefined;\n this.tableValues.selectedRegion = item;\n this.allowAllHistoricalData();\n this.getRoleBasedTableNamesList();\n\n const queryParam = { \"input\": `MAJ@${this.tableValues.ipn}@@@0@11@`, \"region\": this.getFavoriteRegion() };\n this.apiService.getChoiceTableDetails(queryParam).subscribe(res => {\n this.tableValues.responseData = res;\n if (this.tableValues.responseData.lists) {\n this.tableValues.selectedTable = String(this.tableValues.responseData.lists[0].table.toLocaleUpperCase());\n let date = this.tableValues.responseData.lists[0].fileUpdtdDate.split(' ');\n this.tableValues.selectedTableDetails = this.utilService.getTranslateName(`NEW_QUERY.DATE_UPDATED`) + String(date[1]) + this.utilService.getTranslateName(`NEW_QUERY.AT`) + String(date[3]);\n const strUpdDate = String(this.tableValues.responseData.lists[0].fileUpdtdDate).substring(3, 13);\n const strRecDate = String(this.tableValues.responseData.lists[0].fileRecvdDate).substring(3, 13);\n const updDate = new Date(`${strUpdDate.substring(3, 5)}/${strUpdDate.substring(0, 2)}/${strUpdDate.substring(6, 10)}`);\n const recDate = new Date(`${strRecDate.substring(3, 5)}/${strRecDate.substring(0, 2)}/${strRecDate.substring(6, 10)}`);\n\n const strServerDate = String(this.tableValues.responseData.lists[0].serverDate);\n const serverDate = new Date(`${strServerDate.substring(3, 5)}/${strServerDate.substring(0, 2)}/${strServerDate.substring(6, 10)}`);\n\n const diff = Math.abs(updDate.getTime() - serverDate.getTime());\n const diffDays = Math.floor(diff / (1000 * 3600 * 24));\n // console.log(\"server Date\", diffDays, serverDate, updDate);\n this.tableValues.dateDiff = diffDays;\n if (this.tableValues.responseData.noOfLists > 0) {\n this.getTableNamesList();\n }\n }\n },\n error => {\n this.toastyService.error(this.utilService.getTranslateName(`ERROR.TABLE_ERROR`));\n console.log(\"error\", error.message);\n });\n }\n\n getRoleBasedTableNamesList() {\n let role;\n this.tableValues.roleBasedTableList = [];\n if (this.getUserRole4TabeList()) {\n if (this.getUserRole4TabeList().split(\"_\")[2].toLowerCase() !== 'tout') {\n role = this.getUserRole4TabeList().toLowerCase().replace(`gr_${this.getFavoriteRegion().toLowerCase()}_`, '');\n const queryParam1 = { \"input\": `PROFIL@system@profil@${role.toLocaleUpperCase()}@`, \"region\": this.getFavoriteRegion() };\n this.apiService.getObjectGet(queryParam1).subscribe(res => {\n if (res && res.data) {\n this.roleBasedGroupList = res.data;\n for (const item of res.data.split('§')) {\n if (item.split(\"@\")[1] === \"0\") {\n this.tableValues.roleBasedTableList.push(item.split(\"@\")[0]);\n }\n }\n }\n },\n error => {\n this.toastyService.error(this.utilService.getTranslateName(`ERROR.TABLE_ERROR`));\n console.log(\"error\", error.message);\n });\n } else {\n this.roleBasedGroupList = '';\n }\n }\n }\n\n getTableNamesList() {\n const queryParam1 = { \"input\": `TABGEN@${this.tableValues.ipn}@@@0@${this.tableValues.responseData.noOfLists}@`, \"region\": this.getFavoriteRegion() };\n this.apiService.getChoiceTableDetails(queryParam1).subscribe(res => {\n let tabData = [];\n tabData = res.lists;\n if (tabData) {\n this.tableValues.tableData = [];\n let i = 0;\n for (const item of tabData) {\n const td = this.tableValues.responseData.lists.filter(a => String(a.table).toLocaleUpperCase() === String(item).toLocaleUpperCase());\n const roleTable = this.tableValues.roleBasedTableList.filter(a => String(a).toLocaleUpperCase() === String(item).toLocaleUpperCase());\n if (td.length > 0 && roleTable.length === 0) {\n this.tableValues.tableData.push({ \"name\": String(item).toLocaleUpperCase(), \"fileRecvdDate\": td[0].fileRecvdDate, \"fileUpdtdDate\": td[0].fileUpdtdDate })\n }\n i = i + 1;\n }\n this.tableValues.tableData = this.tableValues.tableData.sort();\n if (this.tableValues.tableData.length > 0) {\n if (this.tableValues.tableData.indexOf('BCV') < 0) {\n this.tableSelection(this.tableValues.tableData[0]);\n }\n }\n }\n },\n error => {\n this.toastyService.error(this.utilService.getTranslateName(`ERROR.TABLE_ERROR`));\n console.log(\"error\", error.message);\n });\n }\n\n tableSelection(item) {\n if (this.sLibelle || this.sLibelle_2 || this.sLibCourt || this.sLibCourt_2) {\n this.tableSelectionItem = item;\n this.isModified = true;\n this.submit();\n } else {\n this.resetValue();\n this.tableValues.dateDiff = undefined;\n this.tableValues.selectedTable = item.name;\n let region = this.requestService.getRegionMsg();\n\n this.getFilterCategoryDetails();\n this.getFilterCriteriaListDetails();\n this.CheckLock();\n }\n }\n\n getFilterCategoryDetails() {\n this.resetValue();\n this.filterCategory = [];\n const queryParam = { \"input\": `FILTRE@system@${this.tableValues.selectedTable}@@`, \"region\": this.getFavoriteRegion() };\n this.apiService.getObjectSize(queryParam).subscribe(res => {\n if (res.noObjects > 0) {\n const queryParam1 = { \"input\": `FILTRE@system@${this.tableValues.selectedTable}@@0@${res.noObjects}@`, \"region\": this.getFavoriteRegion() };\n this.apiService.getChoiceTableDetails(queryParam1).subscribe(res1 => {\n // this.filterCategory = res1.lists;\n this.filterCategory.push(this.utilService.getTranslateName(`COMMON.ALL`));\n this.selectedCategory = this.utilService.getTranslateName(`COMMON.ALL`);\n this.getPrivateFilterCategoryDetails();\n // this.filterCategory = res1.lists.sort(this.utilService.sortArray);\n for (const item of res1.lists.sort(this.utilService.sortArray)) {\n this.filterCategory.push(item);\n }\n },\n error => {\n console.log(\"error\", error.message);\n });\n } else {\n this.filterCategory.push(this.utilService.getTranslateName(`COMMON.ALL`));\n this.selectedCategory = this.utilService.getTranslateName(`COMMON.ALL`);\n this.filterCategory = this.filterCategory.sort(this.utilService.sortArray);\n }\n },\n error => {\n console.log(\"error\", error.message);\n });\n }\n\n\n\n getPrivateFilterCategoryDetails() {\n this.filterPrivateCategory = [];\n const queryParam = { \"input\": `FILTRE@${this.tableValues.ipn}@${this.tableValues.selectedTable}@@`, \"region\": this.getFavoriteRegion() };\n this.apiService.getObjectSize(queryParam).subscribe(res => {\n if (res.noObjects > 0) {\n const queryParam1 = { \"input\": `FILTRE@${this.tableValues.ipn}@${this.tableValues.selectedTable}@@0@${res.noObjects}@`, \"region\": this.getFavoriteRegion() };\n this.apiService.getChoiceTableDetails(queryParam1).subscribe(res12 => {\n // console.log(\"res12\", res12);\n this.filterPrivateCategory = res12.lists;\n if (res12.lists) {\n for (let index = 0; index < res12.lists.length; index++) {\n const element = res12.lists[index];\n this.filterCategory.push(element);\n }\n }\n // this.filterPrivateCategory = res12.lists;\n // this.filterPrivateCategory = this.filterPrivateCategory.sort(this.utilService.sortArray)\n },\n error => {\n console.log(\"error\", error.message);\n });\n }\n },\n error => {\n console.log(\"error\", error.message);\n });\n\n }\n\n getFilterCriteriaListDetails() {\n this.displayCriteriaList = [];\n this.criteriaList = [];\n const queryParam = { \"input\": `CHAMP ETENDU@${this.tableValues.ipn}@${this.tableValues.selectedTable}@@`, \"region\": this.getFavoriteRegion() };\n this.apiService.getObjectSize(queryParam).subscribe(res => {\n if (res.noObjects > 0) {\n const queryParam1 = { \"input\": `CHAMP ETENDU@${this.tableValues.ipn}@${this.tableValues.selectedTable}@@0@${res.noObjects}@`, \"region\": this.getFavoriteRegion() };\n this.apiService.getChoiceTableDetails(queryParam1).subscribe(res1 => {\n this.criteriaListOringinal = res1.lists;\n // console.log('criteriaListOringinal', this.criteriaListOringinal);\n for (const item of this.criteriaListOringinal) {\n if (item.GCOName === \"I\" || item.GCOName === \"A_Chassis\" || item.GCOName === \"A_Ident\") {\n } else {\n if (item.longLabel.split(this.splitChar, 2).length > 1) {\n this.displayCriteriaList.push({\n \"GCOName\": item.GCOName,\n \"longFR\": item.longLabel.split(this.splitChar, 2)[0], \"shortFR\": item.shortLabel.split(this.splitChar, 2)[0],\n \"longEN\": item.longLabel.split(this.splitChar, 2)[1], \"shortEN\": item.shortLabel.split(this.splitChar, 2)[1] ? item.shortLabel.split(this.splitChar, 2)[1] : item.shortLabel.split(this.splitChar, 2)[0],\n \"typeOfField\": item.typeOfField, \"size\": item.size, \"editStatus\": false\n });\n this.criteriaList.push({\n \"GCOName\": item.GCOName,\n \"longFR\": item.longLabel.split(this.splitChar, 2)[0], \"shortFR\": item.shortLabel.split(this.splitChar, 2)[0],\n \"longEN\": item.longLabel.split(this.splitChar, 2)[1], \"shortEN\": item.shortLabel.split(this.splitChar, 2)[1] ? item.shortLabel.split(this.splitChar, 2)[1] : item.shortLabel.split(this.splitChar, 2)[0],\n \"typeOfField\": item.typeOfField, \"size\": item.size, \"editStatus\": false\n });\n } else {\n\n this.displayCriteriaList.push({\n \"GCOName\": item.GCOName,\n \"longFR\": item.longLabel, \"shortFR\": item.shortLabel,\n \"longEN\": item.longLabel, \"shortEN\": item.shortLabel,\n \"typeOfField\": item.typeOfField, \"size\": item.size, \"editStatus\": false\n });\n this.criteriaList.push({\n \"GCOName\": item.GCOName,\n \"longFR\": item.longLabel, \"shortFR\": item.shortLabel,\n \"longEN\": item.longLabel, \"shortEN\": item.shortLabel,\n \"typeOfField\": item.typeOfField, \"size\": item.size, \"editStatus\": false\n });\n\n }\n }\n }\n // this.displayCriteriaList = this.displayCriteriaList.sort(this.utilService.sortArray);\n // this.displayCriteriaList = this.displayCriteriaList.sort((a, b) => (a.GCOName < b.GCOName) ? -1 : 1);\n this.displayCriteriaList = this.displayCriteriaList.sort(this.utilService.sortArrayCriteriaListLongFR);\n },\n error => {\n console.log(\"error\", error.message);\n });\n }\n },\n error => {\n console.log(\"error\", error.message);\n });\n }\n\n onCategoryChange(val, type) {\n if (val === '') {\n this.selectedCategory = this.utilService.getTranslateName(`COMMON.ALL`);\n } else {\n this.selectedCategory = val;\n }\n const privateCategory = this.filterPrivateCategory.filter(xy => xy === val);\n if (privateCategory.length > 0) {\n this.getSearchCategory(this.tableValues.ipn);\n } else {\n this.getSearchCategory('system');\n }\n }\n\n getLangIndex(lang) {\n if (lang === 'en') {\n return 1;\n } else {\n return 0;\n }\n }\n\n showHiddenCriteriaList() {\n if (this.tableValues.region === \"Europe\") { \n if (this.profile['roles'].includes('PIL_OBJ_SYST') && this.getFavoriteRegion() === 'PIL') {\n this.isShowHiddenList = true;\n }\n } else {\n if (this.profile['roles'].includes('PIM_OBJ_SYST') && this.getFavoriteRegion() === 'PIM') {\n this.isShowHiddenList = true;\n }\n }\n }\n\n getSelectedList(selectedItem) {\n if (selectedItem === this.utilService.getTranslateName(`COMMON.ALL`)) {\n return true;\n } else {\n return false;\n }\n }\n\n getSearchCategory(ipnValue) {\n if (this.sLibelle || this.sLibelle_2 || this.sLibCourt || this.sLibCourt_2) {\n this.isModifyCate = true;\n this.submit();\n } else {\n this.categoryList = [];\n this.displayCriteriaList = [];\n this.criteriaList = [];\n if (this.selectedCategory === this.utilService.getTranslateName(`COMMON.ALL`)) {\n for (const item of this.criteriaListOringinal) {\n // if (typeof (item.longLabel.split(this.splitChar, 2)[this.getLangIndex(this.lang)]) !== 'undefined') {\n // this.displayCriteriaList.push(item.longLabel.split(this.splitChar, 2)[this.getLangIndex(this.lang)])\n // this.criteriaList.push(item.longLabel.split(this.splitChar, 2)[this.getLangIndex(this.lang)])\n // }\n if (item.GCOName === \"I\" || item.GCOName === \"A_Chassis\" || item.GCOName === \"A_Ident\") {\n } else {\n if (item.longLabel.split(this.splitChar, 2).length > 1) {\n this.displayCriteriaList.push({\n \"GCOName\": item.GCOName,\n \"longFR\": item.longLabel.split(this.splitChar, 2)[0], \"shortFR\": item.shortLabel.split(this.splitChar, 2)[0],\n \"longEN\": item.longLabel.split(this.splitChar, 2)[1], \"shortEN\": item.shortLabel.split(this.splitChar, 2)[1] ? item.shortLabel.split(this.splitChar, 2)[1] : item.shortLabel.split(this.splitChar, 2)[0],\n \"typeOfField\": item.typeOfField, \"size\": item.size, \"editStatus\": false\n });\n this.criteriaList.push({\n \"GCOName\": item.GCOName,\n \"longFR\": item.longLabel.split(this.splitChar, 2)[0], \"shortFR\": item.shortLabel.split(this.splitChar, 2)[0],\n \"longEN\": item.longLabel.split(this.splitChar, 2)[1], \"shortEN\": item.shortLabel.split(this.splitChar, 2)[1] ? item.shortLabel.split(this.splitChar, 2)[1] : item.shortLabel.split(this.splitChar, 2)[0],\n \"typeOfField\": item.typeOfField, \"size\": item.size, \"editStatus\": false\n });\n } else {\n\n this.displayCriteriaList.push({\n \"GCOName\": item.GCOName,\n \"longFR\": item.longLabel, \"shortFR\": item.shortLabel,\n \"longEN\": item.longLabel, \"shortEN\": item.shortLabel,\n \"typeOfField\": item.typeOfField, \"size\": item.size, \"editStatus\": false\n });\n this.criteriaList.push({\n \"GCOName\": item.GCOName,\n \"longFR\": item.longLabel, \"shortFR\": item.shortLabel,\n \"longEN\": item.longLabel, \"shortEN\": item.shortLabel,\n \"typeOfField\": item.typeOfField, \"size\": item.size, \"editStatus\": false\n });\n\n }\n }\n\n }\n // this.displayCriteriaList = this.displayCriteriaList.sort(this.utilService.sortArray);\n this.displayCriteriaList = this.displayCriteriaList.sort((a, b) => (a.GCOName < b.GCOName) ? -1 : 1);\n } else {\n const queryParam = { \"input\": `FILTRE@${ipnValue}@${this.tableValues.selectedTable}@${this.selectedCategory}@`, \"region\": this.getFavoriteRegion() };\n this.apiService.getObjectGet(queryParam).subscribe(res => {\n // console.log(\"res.data\", res.data)\n const dataRes = res.data.split('@');\n for (let i = 0; i < dataRes.length; i = i + 4) {\n if (i > 0) {\n this.categoryList.push(dataRes[i - 1]);\n }\n }\n\n for (const iterator of this.categoryList) {\n const filterVal = this.criteriaListOringinal.filter(a => a.GCOName.toUpperCase() === iterator.substring(0, iterator.length - 2).toUpperCase() && a.typeOfField == iterator.slice(-1));\n for (const item of filterVal) {\n // if (typeof (iterator.longLabel.split(this.splitChar, 2)[this.getLangIndex(this.lang)]) !== 'undefined') {\n // this.displayCriteriaList.push(iterator.longLabel.split(this.splitChar, 2)[this.getLangIndex(this.lang)]);\n // this.criteriaList.push(iterator.longLabel.split(this.splitChar, 2)[this.getLangIndex(this.lang)]);\n // }\n if (item.GCOName === \"I\" || item.GCOName === \"A_Chassis\" || item.GCOName === \"A_Ident\") {\n } else {\n if (item.longLabel.split(this.splitChar, 2).length > 1) {\n this.displayCriteriaList.push({\n \"GCOName\": item.GCOName,\n \"longFR\": item.longLabel.split(this.splitChar, 2)[0], \"shortFR\": item.shortLabel.split(this.splitChar, 2)[0],\n \"longEN\": item.longLabel.split(this.splitChar, 2)[1], \"shortEN\": item.shortLabel.split(this.splitChar, 2)[1] ? item.shortLabel.split(this.splitChar, 2)[1] : item.shortLabel.split(this.splitChar, 2)[0],\n \"typeOfField\": item.typeOfField, \"size\": item.size, \"editStatus\": false\n });\n this.criteriaList.push({\n \"GCOName\": item.GCOName,\n \"longFR\": item.longLabel.split(this.splitChar, 2)[0], \"shortFR\": item.shortLabel.split(this.splitChar, 2)[0],\n \"longEN\": item.longLabel.split(this.splitChar, 2)[1], \"shortEN\": item.shortLabel.split(this.splitChar, 2)[1] ? item.shortLabel.split(this.splitChar, 2)[1] : item.shortLabel.split(this.splitChar, 2)[0],\n \"typeOfField\": item.typeOfField, \"size\": item.size, \"editStatus\": false\n });\n } else {\n\n this.displayCriteriaList.push({\n \"GCOName\": item.GCOName,\n \"longFR\": item.longLabel, \"shortFR\": item.shortLabel,\n \"longEN\": item.longLabel, \"shortEN\": item.shortLabel,\n \"typeOfField\": item.typeOfField, \"size\": item.size, \"editStatus\": false\n });\n this.criteriaList.push({\n \"GCOName\": item.GCOName,\n \"longFR\": item.longLabel, \"shortFR\": item.shortLabel,\n \"longEN\": item.longLabel, \"shortEN\": item.shortLabel,\n \"typeOfField\": item.typeOfField, \"size\": item.size, \"editStatus\": false\n });\n\n }\n }\n }\n }\n // this.displayCriteriaList = this.displayCriteriaList.sort(this.utilService.sortArray);\n this.displayCriteriaList = this.displayCriteriaList.sort((a, b) => (a.GCOName < b.GCOName) ? -1 : 1);\n },\n error => {\n console.log(\"error\", error.message);\n });\n }\n }\n }\n\n\n clickClose() {\n const pathName = window.location.pathname;\n this.utilService.removeOpenedWindowName(pathName);\n this.utilService.$showIcon$.next(true);\n const openedWindowNameList = this.utilService.getOpenedWindowNameList()\n if (openedWindowNameList.length > 0) {\n this.router.navigate([openedWindowNameList[openedWindowNameList.length - 1]]);\n } else {\n this.router.navigate(['home']);\n }\n }\n\n CheckLock() {\n this.strLock = \"\";\n const queryParam = {\n \"input\": \"LIBELLE@system@libelle@lock@\", \"region\": this.getFavoriteRegion()\n }\n this.apiService.getObjectGet(queryParam).subscribe(res => {\n if (res.data) {\n // console.log(\"substring\", res, `${this.utilService.getTranslateName(\"LABEL_MANAGE.REFRESH_LABEL_1\")} ${res.data.substring(6, 8)}-\n // ${res.data.substring(4, 6)}-${res.data.substring(0, 4)} ${this.utilService.getTranslateName(\"LABEL_MANAGE.REFRESH_LABEL_2\")} ${res.data.substring(8, 10)}:\n // ${res.data.substring(10, 12)}:${res.data.substring(12, 14)}`);\n this.strLock = `${this.utilService.getTranslateName(\"LABEL_MANAGE.REFRESH_LABEL_1\")} `;\n this.strLock = this.strLock + `${res.data.substring(6, 8)}-${res.data.substring(4, 6)}-${res.data.substring(0, 4)} `;\n this.strLock = this.strLock + `${this.utilService.getTranslateName(\"LABEL_MANAGE.REFRESH_LABEL_2\")} `;\n this.strLock = this.strLock + `${res.data.substring(8, 10)}:${res.data.substring(10, 12)}:${res.data.substring(12, 14)}`;\n }\n },\n error => {\n this.toastyService.error(this.utilService.getTranslateName(`ERROR.TABLE_ERROR`));\n console.log(\"error\", error.message);\n });\n }\n\n rowEdited(item, i) {\n this.rowIndex = -1;\n const indexVal = this.criteriaList.findIndex(x => x.GCOName === item.GCOName);\n // console.log(\"filterVal\", indexVal);\n if (item.longFR === \"\" || item.longEN === \"\" || item.shortFR === \"\" || item.shortEN === \"\") {\n this.alertPopup(this.utilService.getTranslateName(`LABEL_MANAGE.ONCELLEMPTY`));\n }\n if (indexVal !== -1) {\n if (this.criteriaList[indexVal].longFR !== item.longFR || this.criteriaList[indexVal].longEN !== item.longEN ||\n this.criteriaList[indexVal].shortFR !== item.shortFR || this.criteriaList[indexVal].shortEN !== item.shortEN) {\n const indexDisplayVal = this.displayCriteriaList.findIndex(x => x.GCOName === item.GCOName);\n this.displayCriteriaList[indexDisplayVal].editStatus = true;\n if (!this.sLibelle.includes(`${this.criteriaList[indexVal].GCOName}@${item.longFR}\\n`)) {\n /************ SONAR : Remove this conditional structure they're same. **************/ \n // if (typeof (item.longFR) === \"undefined\") {\n // this.sLibelle = this.sLibelle + `${this.criteriaList[indexVal].GCOName}@${item.longFR}\\n`;\n // } else {\n // this.sLibelle = this.sLibelle + `${this.criteriaList[indexVal].GCOName}@${item.longFR}\\n`;\n // }\n this.sLibelle = this.sLibelle + `${this.criteriaList[indexVal].GCOName}@${item.longFR}\\n`;\n }\n if (!this.sLibelle_2.includes(`${this.criteriaList[indexVal].GCOName}@${item.longEN}\\n`)) {\n if (typeof (item.longEN) === \"undefined\") {\n this.sLibelle_2 = this.sLibelle_2 + `${this.criteriaList[indexVal].GCOName}@${item.longFR}\\n`;\n } else {\n this.sLibelle_2 = this.sLibelle_2 + `${this.criteriaList[indexVal].GCOName}@${item.longEN}\\n`;\n }\n }\n if (!this.sLibCourt.includes(`${this.criteriaList[indexVal].GCOName}@${item.shortFR}\\n`)) {\n /************ SONAR : Remove this conditional structure they're same. **************/ \n // if (typeof (item.shortFR) === \"undefined\") {\n // this.sLibCourt = this.sLibCourt + `${this.criteriaList[indexVal].GCOName}@${item.shortFR}\\n`;\n // } else {\n // this.sLibCourt = this.sLibCourt + `${this.criteriaList[indexVal].GCOName}@${item.shortFR}\\n`;\n // }\n this.sLibCourt = this.sLibCourt + `${this.criteriaList[indexVal].GCOName}@${item.shortFR}\\n`;\n }\n if (!this.sLibCourt_2.includes(`${this.criteriaList[indexVal].GCOName}@${item.shortEN}\\n`)) {\n if (typeof (item.shortEN) === \"undefined\") {\n this.sLibCourt_2 = this.sLibCourt_2 + `${this.criteriaList[indexVal].GCOName}@${item.shortFR}\\n`;\n } else {\n this.sLibCourt_2 = this.sLibCourt_2 + `${this.criteriaList[indexVal].GCOName}@${item.shortEN}\\n`;\n }\n }\n // // if (this.criteriaList[indexVal].longFR !== item.longFR) {\n // // // this.sLibelle = this.sLibelle + `${this.criteriaList[indexVal].longFR}@${item.longFR}\\n`;\n // // if (!this.sLibelle.includes(`${this.criteriaList[indexVal].GCOName}@${item.longFR}\\n`)) {\n // // this.sLibelle = this.sLibelle + `${this.criteriaList[indexVal].GCOName}@${item.longFR}\\n`;\n // // }\n // // }\n // // if (this.criteriaList[indexVal].longEN !== item.longEN) {\n // // // this.sLibelle_2 = this.sLibelle_2 + `${this.criteriaList[indexVal].longEN}@${item.longEN}\\n`;\n // // if (!this.sLibelle_2.includes(`${this.criteriaList[indexVal].GCOName}@${item.longEN}\\n`)) {\n // // this.sLibelle_2 = this.sLibelle_2 + `${this.criteriaList[indexVal].GCOName}@${item.longEN}\\n`;\n // // }\n // // }\n // // if (this.criteriaList[indexVal].shortFR !== item.shortFR) {\n // // // this.sLibCourt = this.sLibCourt + `${this.criteriaList[indexVal].shortFR}@${item.shortFR}\\n`;\n // // if (!this.sLibCourt.includes(`${this.criteriaList[indexVal].GCOName}@${item.shortFR}\\n`)) {\n // // this.sLibCourt = this.sLibCourt + `${this.criteriaList[indexVal].GCOName}@${item.shortFR}\\n`;\n // // }\n // // }\n // // if (this.criteriaList[indexVal].shortEN !== item.shortEN) {\n // // // this.sLibCourt_2 = this.sLibCourt_2 + `${this.criteriaList[indexVal].shortEN}@${item.shortEN}\\n`;\n // // if (!this.sLibCourt_2.includes(`${this.criteriaList[indexVal].GCOName}@${item.shortEN}\\n`)) {\n // // this.sLibCourt_2 = this.sLibCourt_2 + `${this.criteriaList[indexVal].GCOName}@${item.shortEN}\\n`;\n // // }\n // // }\n }\n }\n }\n\n alertPopup(msg) {\n const dialogRef = this.dialog.open(AlertConfirmationComponent, {\n disableClose: true,\n width: '550px',\n data: { 'display': msg, isAlert: 'true' }\n });\n\n dialogRef.afterClosed().subscribe(result => {\n if (result === true) {\n this.isEmpty = true;\n }\n })\n }\n\n checkEmptyField() {\n const editedRow = this.displayCriteriaList.filter(x => x.editStatus === true);\n // console.log(\"editedRow\", editedRow)\n for (let index = 0; index < editedRow.length; index++) {\n const element = editedRow[index];\n if (element.longFR === \"\" || element.longEN === \"\" || element.shortFR === \"\" || element.shortEN === \"\") {\n return true;\n }\n }\n }\n\n submit() {\n this.isEmpty = false;\n if (this.checkEmptyField()) {\n this.alertPopup(this.utilService.getTranslateName(`LABEL_MANAGE.ONUPDATEEMPTY`))\n if (this.isEmpty) {\n return;\n }\n } else {\n this.sLibelle = '';\n this.sLibelle_2 = '';\n this.sLibCourt = '';\n this.sLibCourt_2 = '';\n const changedVal = this.displayCriteriaList.filter(cc => cc.editStatus === true);\n\n // console.log(\"changedVal\", changedVal);\n for (let index = 0; index < changedVal.length; index++) {\n const element = changedVal[index];\n this.sLibelle = this.sLibelle + `${changedVal[index].GCOName}@${changedVal[index].longFR}§`;\n this.sLibelle_2 = this.sLibelle_2 + `${changedVal[index].GCOName}@${changedVal[index].longEN}§`;\n this.sLibCourt = this.sLibCourt + `${changedVal[index].GCOName}@${changedVal[index].shortFR}§`;\n if (typeof (changedVal[index].shortEN) === \"undefined\") {\n this.sLibCourt_2 = this.sLibCourt_2 + `${changedVal[index].GCOName}@${changedVal[index].shortFR}§`;\n } else {\n this.sLibCourt_2 = this.sLibCourt_2 + `${changedVal[index].GCOName}@${changedVal[index].shortEN}§`;\n }\n // this.sLibelle.push(`${this.displayCriteriaList[index].GCOName}@${this.displayCriteriaList[index].longFR}`);\n // this.sLibelle_2.push(`${this.displayCriteriaList[index].GCOName}@${this.displayCriteriaList[index].longEN}`);\n // this.sLibCourt.push(`${this.displayCriteriaList[index].GCOName}@${this.displayCriteriaList[index].shortFR}`);\n // this.sLibCourt_2.push(`${this.displayCriteriaList[index].GCOName}@${this.displayCriteriaList[index].shortEN}`);\n }\n // const queryParam = {\n // \"input\": \"LIBELLE@system@libelle@lock@\", \"region\": this.getFavoriteRegion()\n // }\n // this.apiService.getObjectGet(queryParam).subscribe(res => {\n // if (res.data) {\n // console.log(\"substring\", res, `${this.utilService.getTranslateName(\"LABEL_MANAGE.REFRESH_LABEL_1\")} ${res.data.substring(6, 8)}-\n // ${res.data.substring(4, 6)}-${res.data.substring(0, 4)} ${this.utilService.getTranslateName(\"LABEL_MANAGE.REFRESH_LABEL_2\")} ${res.data.substring(8, 10)}:\n // ${res.data.substring(10, 12)}:${res.data.substring(12, 14)}`);\n // this.strLock = `${this.utilService.getTranslateName(\"LABEL_MANAGE.REFRESH_LABEL_1\")} `;\n // this.strLock = this.strLock + `${res.data.substring(6, 8)}-${res.data.substring(4, 6)}-${res.data.substring(0, 4)} `;\n // this.strLock = this.strLock + `${this.utilService.getTranslateName(\"LABEL_MANAGE.REFRESH_LABEL_2\")} `;\n // this.strLock = this.strLock + `${res.data.substring(8, 10)}:${res.data.substring(10, 12)}:${res.data.substring(12, 14)}`;\n // this.alertPopup(this.utilService.getTranslateName(`LABEL_MANAGE.ALERT_PROCESSING`));\n // } else {\n this.openConfirmDialog();\n // }\n // },\n // error => {\n // this.toastyService.error(this.utilService.getTranslateName(`ERROR.TABLE_ERROR`));\n // console.log(\"error\", error.message);\n // });\n\n // // if (this.CheckLock) {\n // // this.openConfirmDialog();\n // // } else {\n // // this.alertPopup(this.utilService.getTranslateName(`LABEL_MANAGE.ALERT_PROCESSING`));\n // // }\n }\n }\n\n omit_special_char(event) {\n var k;\n // console.log(\"event\", event.charCode, event)\n k = event.charCode; // k = event.keyCode; (Both can be used)\n return ((k > 64 && k < 91) || (k > 96 && k < 123) || k == 8 || k == 32 || k == 95 || (k >= 48 && k <= 57));\n }\n\n openConfirmDialog() {\n const dialogRef = this.dialog.open(AlertConfirmationComponent, {\n disableClose: true,\n width: '550px',\n data: { 'display': this.utilService.getTranslateName(`LABEL_MANAGE.UPDATECONFIRM`), 'ync': true }\n });\n\n dialogRef.afterClosed().subscribe(result => {\n if (result === true) {\n const queryParam = {\n \"input\": \"LIBELLE@system@libelle@lock@\", \"region\": this.getFavoriteRegion()\n }\n this.apiService.getObjectGet(queryParam).subscribe(res => {\n if (res.data) {\n // console.log(\"substring\", res, `${this.utilService.getTranslateName(\"LABEL_MANAGE.REFRESH_LABEL_1\")} ${res.data.substring(6, 8)}-\n // ${res.data.substring(4, 6)}-${res.data.substring(0, 4)} ${this.utilService.getTranslateName(\"LABEL_MANAGE.REFRESH_LABEL_2\")} ${res.data.substring(8, 10)}:\n // ${res.data.substring(10, 12)}:${res.data.substring(12, 14)}`);\n this.strLock = `${this.utilService.getTranslateName(\"LABEL_MANAGE.REFRESH_LABEL_1\")} `;\n this.strLock = this.strLock + `${res.data.substring(6, 8)}-${res.data.substring(4, 6)}-${res.data.substring(0, 4)} `;\n this.strLock = this.strLock + `${this.utilService.getTranslateName(\"LABEL_MANAGE.REFRESH_LABEL_2\")} `;\n this.strLock = this.strLock + `${res.data.substring(8, 10)}:${res.data.substring(10, 12)}:${res.data.substring(12, 14)}`;\n this.alertPopup(this.utilService.getTranslateName(`LABEL_MANAGE.ALERT_PROCESSING`));\n } else {\n let queryParam = \"LIBELLE@system\";\n // // if (this.sLibelle !== \"\") {\n // // this.saveWordObject({ \"input\": queryParam + `@libelle@${this.tableValues.selectedTable}@${this.sLibelle}`, \"region\": this.getFavoriteRegion() }, 1);\n // // }\n // // if (this.sLibelle_2 !== \"\") {\n // // this.saveWordObject({ \"input\": queryParam + `@libelle_2@${this.tableValues.selectedTable}@${this.sLibelle_2}`, \"region\": this.getFavoriteRegion() }, 2);\n // // }\n // // if (this.sLibCourt !== \"\") {\n // // this.saveWordObject({ \"input\": queryParam + `@libcourt@${this.tableValues.selectedTable}@${this.sLibCourt}`, \"region\": this.getFavoriteRegion() }, 3);\n // // }\n // // if (this.sLibCourt_2 !== \"\") {\n // // this.saveWordObject({ \"input\": queryParam + `@libcourt_2@${this.tableValues.selectedTable}@${this.sLibCourt_2}`, \"region\": this.getFavoriteRegion() }, 4);\n // // }\n this.sLibelle = this.sLibelle.substring(0, this.sLibelle.length - 1);\n this.sLibelle_2 = this.sLibelle_2.substring(0, this.sLibelle_2.length - 1);\n this.sLibCourt = this.sLibCourt.substring(0, this.sLibCourt.length - 1);\n this.sLibCourt_2 = this.sLibCourt_2.substring(0, this.sLibCourt_2.length - 1);\n\n\n this.apiService.saveObject({ \"input\": `LIBELLE@system@libelle@${this.tableValues.selectedTable}@${this.sLibelle}`, \"region\": this.getFavoriteRegion() }).subscribe(resp => {\n // console.log(\"respresp\", resp);\n if (resp.description = \"SUCCESS\") {\n this.apiService.saveObject({ \"input\": `LIBELLE@system@libelle_2@${this.tableValues.selectedTable}@${this.sLibelle_2}`, \"region\": this.getFavoriteRegion() }).subscribe(resp1 => {\n // console.log(\"respresp1\", resp1);\n if (resp1.description = \"SUCCESS\") {\n this.apiService.saveObject({ \"input\": `LIBELLE@system@libcourt@${this.tableValues.selectedTable}@${this.sLibCourt}`, \"region\": this.getFavoriteRegion() }).subscribe(resp2 => {\n // console.log(\"respresp2\", resp2);\n if (resp2.description = \"SUCCESS\") {\n this.apiService.saveObject({ \"input\": `LIBELLE@system@libcourt_2@${this.tableValues.selectedTable}@${this.sLibCourt_2}`, \"region\": this.getFavoriteRegion() }).subscribe(resp3 => {\n // console.log(\"respresp2\", resp3);\n if (resp3.description = \"SUCCESS\") {\n this.sLibelle = \"\";\n this.sLibelle_2 = \"\";\n this.sLibCourt = \"\";\n this.sLibCourt_2 = \"\";\n this.majLebBase();\n }\n this.matomoTracker.trackEvent(\"Label manangement\", `Update label`, this.profile['login']);\n },\n error => {\n console.log(\"error\", error.message);\n });\n }\n },\n error => {\n console.log(\"error\", error.message);\n });\n }\n },\n error => {\n console.log(\"error\", error.message);\n });\n }\n },\n error => {\n console.log(\"error\", error.message);\n });\n\n // for (let index = 0; index < this.sLibelle.length; index++) {\n // const element = this.sLibelle[index];\n // this.apiService.saveObject({ \"input\": `LIBELLE@system@libelle@${this.tableValues.selectedTable}@${this.sLibelle[index]}`, \"region\": this.getFavoriteRegion() }).subscribe(resp => {\n // console.log(\"respresp\", resp);\n // if (resp.description = \"SUCCESS\") {\n // this.apiService.saveObject({ \"input\": `LIBELLE@system@libelle_2@${this.tableValues.selectedTable}@${this.sLibelle_2[index]}`, \"region\": this.getFavoriteRegion() }).subscribe(resp1 => {\n // console.log(\"respresp1\", resp1);\n // if (resp.description = \"SUCCESS\") {\n // this.apiService.saveObject({ \"input\": `LIBELLE@system@libcourt@${this.tableValues.selectedTable}@${this.sLibCourt[index]}`, \"region\": this.getFavoriteRegion() }).subscribe(resp2 => {\n // console.log(\"respresp2\", resp2);\n // if (resp.description = \"SUCCESS\") {\n // this.apiService.saveObject({ \"input\": `LIBELLE@system@libcourt_2@${this.tableValues.selectedTable}@${this.sLibCourt_2[index]}`, \"region\": this.getFavoriteRegion() }).subscribe(resp3 => {\n // console.log(\"respresp3\", resp3);\n // if (resp.description = \"SUCCESS\") {\n // if (index === this.sLibelle.length - 1) {\n // this.sLibelle = \"\";\n // this.sLibelle_2 = \"\";\n // this.sLibCourt = \"\";\n // this.sLibCourt_2 = \"\";\n // this.majLebBase();\n // }\n // }\n // },\n // error => {\n // console.log(\"error\", error.message);\n // });\n // }\n // },\n // error => {\n // console.log(\"error\", error.message);\n // });\n // }\n // },\n // error => {\n // console.log(\"error\", error.message);\n // });\n // }\n // },\n // error => {\n // console.log(\"error\", error.message);\n // });\n\n // }\n }\n },\n error => {\n this.toastyService.error(this.utilService.getTranslateName(`ERROR.TABLE_ERROR`));\n console.log(\"error\", error.message);\n });\n } else if (result === false) {\n for (let index = 0; index < this.displayCriteriaList.length; index++) {\n const element = this.criteriaList[index];\n this.displayCriteriaList[index].longFR = element.longFR;\n this.displayCriteriaList[index].shortFR = element.shortFR;\n this.displayCriteriaList[index].longEN = element.longEN;\n this.displayCriteriaList[index].shortEN = element.shortEN;\n this.displayCriteriaList[index].editStatus = element.editStatus;\n }\n this.resetValue();\n // this.getFilterCriteriaListDetails();\n }\n if (this.isModified) {\n this.isModified = false;\n this.resetValue();\n this.tableSelection(this.tableSelectionItem);\n }\n if (this.isModifyCate) {\n this.isModifyCate = false;\n this.resetValue();\n this.getSearchCategory(\"system\");\n }\n });\n }\n\n saveWordObject(param, index) {\n this.apiService.saveObject(param).subscribe(resp => {\n if (index === 1) {\n this.sLibelle = \"\";\n }\n if (index === 2) {\n this.sLibelle_2 = \"\";\n }\n if (index === 3) {\n this.sLibCourt = \"\";\n }\n if (index === 4) {\n this.sLibCourt_2 = \"\";\n }\n // console.log(\"respresp\", resp);\n if (resp.description = \"SUCCESS\") {\n if (this.sLibelle === \"\" && this.sLibelle_2 === \"\" && this.sLibCourt === \"\" && this.sLibCourt_2 === \"\") {\n this.majLebBase();\n }\n }\n },\n error => {\n console.log(\"error\", error.message);\n });\n }\n\n majLebBase() {\n const param = { \"input\": `${this.tableValues.ipn}@LIB@MAJLIB@@@`, \"region\": this.getFavoriteRegion() };\n this.apiService.specialBases(param).subscribe(resp => {\n // console.log(\"specialBases\", resp);\n\n this.CheckLock();\n // this.getFilterCriteriaListDetails();\n\n for (let index = 0; index < this.displayCriteriaList.length; index++) {\n const element = this.displayCriteriaList[index];\n this.criteriaList[index].longFR = element.longFR;\n this.criteriaList[index].shortFR = element.shortFR;\n this.criteriaList[index].longEN = element.longEN;\n this.criteriaList[index].shortEN = element.shortEN;\n this.displayCriteriaList[index].editStatus = false;\n }\n },\n error => {\n console.log(\"error\", error.message);\n });\n }\n\n resetValue() {\n this.sLibelle = \"\";\n this.sLibelle_2 = \"\";\n this.sLibCourt = \"\";\n this.sLibCourt_2 = \"\";\n this.isEmpty = false;\n this.rowIndex = -1;\n }\n\n sortingTable(val) {\n this.gcoNameSort = !val;\n this.lFranceSort = false;\n this.lEnglishSort = false;\n this.sFranceSort = false;\n this.sEnglishSort = false;\n if (val) {\n this.displayCriteriaList = this.displayCriteriaList.sort(this.utilService.sortArrayCriteriaListGCOName);\n // this.displayCriteriaList = this.displayCriteriaList.sort((a, b) => (a.GCOName > b.GCOName) ? -1 : 1);\n } else {\n this.displayCriteriaList = this.displayCriteriaList.sort(this.utilService.sortArrayCriteriaListGCONameDesc);\n }\n }\n\n sortinglongFrance(val) {\n this.gcoNameSort = false;\n this.lFranceSort = !val;\n this.lEnglishSort = false;\n this.sFranceSort = false;\n this.sEnglishSort = false;\n if (val) {\n this.displayCriteriaList = this.displayCriteriaList.sort(this.utilService.sortArrayCriteriaListLongFR);\n // this.displayCriteriaList = this.displayCriteriaList.sort((a, b) => (a.longFR > b.longFR) ? -1 : 1);\n } else {\n this.displayCriteriaList = this.displayCriteriaList.sort(this.utilService.sortArrayCriteriaListLongFRDesc);\n // this.displayCriteriaList = this.displayCriteriaList.sort((a, b) => (a.longFR < b.longFR) ? -1 : 1);\n }\n }\n\n sortingShortFrance(val) {\n this.gcoNameSort = false;\n this.lFranceSort = false;\n this.lEnglishSort = false;\n this.sFranceSort = !val;\n this.sEnglishSort = false;\n if (val) {\n this.displayCriteriaList = this.displayCriteriaList.sort(this.utilService.sortArrayCriteriaListShortFR);\n // this.displayCriteriaList = this.displayCriteriaList.sort((a, b) => (a.shortFR > b.shortFR) ? -1 : 1);\n } else {\n this.displayCriteriaList = this.displayCriteriaList.sort(this.utilService.sortArrayCriteriaListShortFRDesc);\n // this.displayCriteriaList = this.displayCriteriaList.sort((a, b) => (a.shortFR < b.shortFR) ? -1 : 1);\n }\n }\n\n sortinglongEnglish(val) {\n this.gcoNameSort = false;\n this.lFranceSort = false;\n this.lEnglishSort = !val;\n this.sFranceSort = false;\n this.sEnglishSort = false;\n if (val) {\n this.displayCriteriaList = this.displayCriteriaList.sort(this.utilService.sortArrayCriteriaListLongEN);\n // this.displayCriteriaList = this.displayCriteriaList.sort((a, b) => (a.longEN > b.longEN) ? -1 : 1);\n } else {\n this.displayCriteriaList = this.displayCriteriaList.sort(this.utilService.sortArrayCriteriaListLongENDesc);\n // this.displayCriteriaList = this.displayCriteriaList.sort((a, b) => (a.longEN < b.longEN) ? -1 : 1);\n }\n }\n\n sortingShortEnglish(val) {\n this.gcoNameSort = false;\n this.lFranceSort = false;\n this.lEnglishSort = false;\n this.sFranceSort = false;\n this.sEnglishSort = !val;\n if (val) {\n this.displayCriteriaList = this.displayCriteriaList.sort(this.utilService.sortArrayCriteriaListShortEN);\n // this.displayCriteriaList = this.displayCriteriaList.sort((a, b) => (a.shortEN > b.shortEN) ? -1 : 1);\n } else {\n this.displayCriteriaList = this.displayCriteriaList.sort(this.utilService.sortArrayCriteriaListShortENDesc);\n // this.displayCriteriaList = this.displayCriteriaList.sort((a, b) => (a.shortEN < b.shortEN) ? -1 : 1);\n }\n }\n\n openHelpFile() {\n window.open('https://grouperenault.sharepoint.com/sites/Doc_Pilotage/en-US/Pages/Aide%20en%20ligne/maj_libelle.aspx', '_blank');\n }\n}\n","export default \".link {\\n color: blue;\\n text-decoration: underline;\\n cursor: pointer;\\n}\\n\\n.title {\\n padding: 10px 0;\\n}\\n\\n.button-style {\\n width: 82px;\\n height: 36px;\\n font-family: Roboto, \\\"Helvetica Neue\\\", sans-serif;\\n font-size: 13px;\\n font-weight: 500;\\n text-align: center;\\n border: 0px solid;\\n background-color: #FFCC33;\\n padding: 0 !important;\\n}\\n/*# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi91c3Ivc3JjL3NyYy9hcHAvY29tcG9uZW50L3F1ZXJ5L2FsZXJ0LW1lc3NhZ2UvYWxlcnQtbWVzc2FnZS5jb21wb25lbnQuc2NzcyIsInNyYy9hcHAvY29tcG9uZW50L3F1ZXJ5L2FsZXJ0LW1lc3NhZ2UvYWxlcnQtbWVzc2FnZS5jb21wb25lbnQuc2NzcyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQTtFQUNJLFdBQUE7RUFDQSwwQkFBQTtFQUNBLGVBQUE7QUNDSjs7QURFQTtFQUNJLGVBQUE7QUNDSjs7QURFQTtFQUNJLFdBQUE7RUFDQSxZQUFBO0VBQ0EsaURBQUE7RUFDQSxlQUFBO0VBQ0EsZ0JBQUE7RUFDQSxrQkFBQTtFQUNBLGlCQUFBO0VBQ0EseUJBQUE7RUFDQSxxQkFBQTtBQ0NKIiwiZmlsZSI6InNyYy9hcHAvY29tcG9uZW50L3F1ZXJ5L2FsZXJ0LW1lc3NhZ2UvYWxlcnQtbWVzc2FnZS5jb21wb25lbnQuc2NzcyIsInNvdXJjZXNDb250ZW50IjpbIi5saW5rIHtcbiAgICBjb2xvcjogYmx1ZTtcbiAgICB0ZXh0LWRlY29yYXRpb246IHVuZGVybGluZTtcbiAgICBjdXJzb3I6IHBvaW50ZXI7XG59XG5cbi50aXRsZSB7XG4gICAgcGFkZGluZzogMTBweCAwO1xufVxuXG4uYnV0dG9uLXN0eWxle1xuICAgIHdpZHRoOiA4MnB4OyBcbiAgICBoZWlnaHQ6IDM2cHg7IFxuICAgIGZvbnQtZmFtaWx5OiBSb2JvdG8sXCJIZWx2ZXRpY2EgTmV1ZVwiLHNhbnMtc2VyaWY7XG4gICAgZm9udC1zaXplOiAxM3B4O1xuICAgIGZvbnQtd2VpZ2h0OiA1MDA7XG4gICAgdGV4dC1hbGlnbjogY2VudGVyOyBcbiAgICBib3JkZXI6IDBweCBzb2xpZDsgXG4gICAgYmFja2dyb3VuZC1jb2xvcjogI0ZGQ0MzMztcbiAgICBwYWRkaW5nOiAwICFpbXBvcnRhbnQ7XG59IiwiLmxpbmsge1xuICBjb2xvcjogYmx1ZTtcbiAgdGV4dC1kZWNvcmF0aW9uOiB1bmRlcmxpbmU7XG4gIGN1cnNvcjogcG9pbnRlcjtcbn1cblxuLnRpdGxlIHtcbiAgcGFkZGluZzogMTBweCAwO1xufVxuXG4uYnV0dG9uLXN0eWxlIHtcbiAgd2lkdGg6IDgycHg7XG4gIGhlaWdodDogMzZweDtcbiAgZm9udC1mYW1pbHk6IFJvYm90bywgXCJIZWx2ZXRpY2EgTmV1ZVwiLCBzYW5zLXNlcmlmO1xuICBmb250LXNpemU6IDEzcHg7XG4gIGZvbnQtd2VpZ2h0OiA1MDA7XG4gIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgYm9yZGVyOiAwcHggc29saWQ7XG4gIGJhY2tncm91bmQtY29sb3I6ICNGRkNDMzM7XG4gIHBhZGRpbmc6IDAgIWltcG9ydGFudDtcbn0iXX0= */\"","import { Component, OnInit, ViewChild, Inject } from '@angular/core';\nimport { MatDialog, MatDialogRef, MAT_DIALOG_DATA } from '@angular/material/dialog';\nimport * as pkg from '../../../../../package.json';\n\n\n@Component({\n selector: 'app-alert-message',\n templateUrl: './alert-message.component.html',\n styleUrls: ['./alert-message.component.scss']\n})\nexport class AlertMessageComponent {\n version;\n constructor(\n public dialogRef: MatDialogRef,\n @Inject(MAT_DIALOG_DATA) public data: any) {\n this.version = pkg.version;\n }\n\n onNoClick(): void {\n this.dialogRef.close();\n }\n\n\n navigateUrlPage(url) {\n window.open(url, '_blank');\n }\n\n chkLinkIndex(index) {\n return this.data.linkIndex.indexOf(index) !== -1 ? true : false;\n }\n}","export default \".custom-scroll-bar {\\n height: calc(100% - 114px);\\n overflow-y: scroll;\\n overflow-x: scroll;\\n margin-right: 5px;\\n}\\n\\n.custom-scroll-bar::-webkit-scrollbar {\\n width: 10px;\\n height: 10px;\\n}\\n\\n.custom-scroll-bar::-webkit-scrollbar-thumb {\\n background-color: #a2adb6;\\n border-radius: 5px;\\n}\\n\\n.detail-screen .mat-expansion-panel-header {\\n height: 25px !important;\\n background-color: #A8B5BF;\\n font-size: 14px;\\n font-weight: 600;\\n}\\n\\n.detail-screen ::ng-deep .mat-expansion-indicator::after {\\n border-style: solid !important;\\n}\\n\\n.detail-screen .vehicle-detail {\\n border-collapse: collapse;\\n width: 100%;\\n table-layout: fixed;\\n}\\n\\n.detail-screen .vehicle-detail tr:nth-child(even) {\\n background-color: #f2f2f2;\\n}\\n\\n.detail-screen .vehicle-detail td {\\n border: 1px solid #A8B5BF;\\n text-align: left;\\n padding: 2px 8px;\\n font-size: 12px;\\n word-wrap: break-word;\\n}\\n\\n.detail-screen .mat-expansion-panel {\\n margin: 0 10px !important;\\n border: 0 !important;\\n}\\n\\n.detail-screen .green {\\n background-color: #70ad47;\\n}\\n\\n.detail-screen .yellow {\\n background-color: #ffc000;\\n}\\n\\n.table-container {\\n margin: 10px 10px 0 10px;\\n overflow: auto;\\n height: calc(100% - 96px);\\n font-size: 12px;\\n font-family: Roboto, \\\"Helvetica Neue\\\", sans-serif;\\n background: #ffffff;\\n text-align: left;\\n white-space: nowrap;\\n border-collapse: collapse;\\n}\\n\\n.table-container table {\\n min-width: 100% !important;\\n color: white;\\n border-spacing: 0 !important;\\n table-layout: auto;\\n}\\n\\n.table-container table thead {\\n position: -webkit-sticky !important;\\n position: sticky !important;\\n top: 0 !important;\\n}\\n\\n.table-container .mat-cell,\\n.table-container .mat-header-cell {\\n border-right: 1px solid #000000;\\n align-self: stretch;\\n text-align: left;\\n padding: 0.3rem;\\n}\\n\\n.table-container .mat-cell {\\n color: #000000;\\n}\\n\\n.table-container th:first-child {\\n width: 1px;\\n border: 0;\\n min-width: 30px !important;\\n}\\n\\n.table-container th:first-child span {\\n display: none;\\n}\\n\\n.table-container td:first-child {\\n background: #2d4557;\\n border: 0;\\n color: #ffffff;\\n text-align: unset;\\n}\\n\\n.table-container .table-th-right-line {\\n border-right: 1px solid red !important;\\n}\\n\\n.table-container .mat-header-cell {\\n border-right: 1px solid #ffffff;\\n border-top: 1px solid #ffffff;\\n border-bottom: 1px solid #ffffff;\\n min-width: 100px !important;\\n}\\n\\n.table-container tr.mat-row {\\n line-height: 30px;\\n white-space: nowrap;\\n}\\n\\n.table-container tr.mat-row td {\\n font-size: 12px;\\n font-family: Roboto, \\\"Helvetica Neue\\\", sans-serif;\\n overflow: hidden;\\n text-overflow: ellipsis;\\n}\\n\\n.table-container tr.mat-row:nth-child(odd) {\\n background-color: #f2f2f2 !important;\\n}\\n\\n.table-container tr.mat-header-row {\\n background: #2D4557 !important;\\n height: 30px !important;\\n}\\n\\n.table-container tr.mat-header-row .mat-header-cell {\\n color: #ffffff;\\n}\\n\\n.table-container tr.mat-row.highlightedRow {\\n background-color: #2d4557 !important;\\n}\\n\\n.table-container tr.mat-row.highlightedRow td {\\n color: #ffffff;\\n white-space: initial !important;\\n max-width: 100%;\\n}\\n\\n.footer-panel {\\n width: 75%;\\n bottom: 0;\\n /* stick to bottom */\\n height: 30px;\\n font-size: 12px;\\n font-family: Roboto, \\\"Helvetica Neue\\\", sans-serif;\\n color: #ffffff;\\n}\\n\\n.footer-panel .active {\\n background: #f0f1f2 !important;\\n color: #708290 !important;\\n}\\n\\n.footer-panel .footer-cls {\\n display: flex;\\n height: 30px;\\n line-height: 30px;\\n}\\n\\n.footer-panel .disable {\\n cursor: not-allowed !important;\\n pointer-events: none;\\n}\\n\\n.footer-panel .request-tab {\\n background: #708290;\\n border: 1px solid #708290;\\n cursor: pointer;\\n min-width: 70px;\\n text-align: center;\\n}\\n\\n.footer-panel .request-text-class {\\n color: #ffffff;\\n margin: 0 2%;\\n text-overflow: ellipsis;\\n overflow: hidden;\\n}\\n\\n.pagination-btn {\\n margin: 2% 0;\\n display: inline-flex;\\n width: 100%;\\n cursor: pointer;\\n}\\n\\n.mat-icon {\\n font-size: 30px;\\n line-height: 22px;\\n color: #ffffff;\\n width: 8%;\\n}\\n\\n.header {\\n margin: 12px;\\n}\\n\\n.header-text {\\n color: #ffffff;\\n margin: 0 12px;\\n}\\n\\n.column3 {\\n height: calc(100% - 76px);\\n width: 96%;\\n margin-left: 15px;\\n overflow-y: auto;\\n overflow-x: auto;\\n position: relative;\\n color: #ffffff;\\n}\\n\\n.secondDetailScrollBar {\\n height: calc(100% - 110px) !important;\\n}\\n\\n.textOverflow {\\n white-space: nowrap;\\n overflow: hidden;\\n text-overflow: ellipsis;\\n max-width: 100px;\\n}\\n\\n.custom-button {\\n position: fixed;\\n right: 4%;\\n bottom: 12%;\\n}\\n\\n.cls-displayNone {\\n display: none !important;\\n}\\n/*# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi91c3Ivc3JjL3NyYy9hcHAvY29tcG9uZW50L3F1ZXJ5L2NvbHVtbi1zZWdtZW50LXRocmVlL2NvbHVtbi1zZWdtZW50LXRocmVlLmNvbXBvbmVudC5zY3NzIiwic3JjL2FwcC9jb21wb25lbnQvcXVlcnkvY29sdW1uLXNlZ21lbnQtdGhyZWUvY29sdW1uLXNlZ21lbnQtdGhyZWUuY29tcG9uZW50LnNjc3MiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUk7RUFFRSwwQkFBQTtFQUNBLGtCQUFBO0VBQ0Esa0JBQUE7RUFDQSxpQkFBQTtBQ0FOOztBREdJO0VBQ0UsV0FBQTtFQUNBLFlBQUE7QUNBTjs7QURJSTtFQUVFLHlCQUFBO0VBQ0Esa0JBQUE7QUNGTjs7QURNTTtFQUNFLHVCQUFBO0VBQ0EseUJBQUE7RUFDQSxlQUFBO0VBQ0EsZ0JBQUE7QUNIUjs7QURNTTtFQUNFLDhCQUFBO0FDSlI7O0FET007RUFDRSx5QkFBQTtFQUNBLFdBQUE7RUFDQSxtQkFBQTtBQ0xSOztBRE9RO0VBQ0UseUJBQUE7QUNMVjs7QURRUTtFQUNFLHlCQUFBO0VBQ0EsZ0JBQUE7RUFDQSxnQkFBQTtFQUNBLGVBQUE7RUFDQSxxQkFBQTtBQ05WOztBRFdNO0VBQ0UseUJBQUE7RUFDQSxvQkFBQTtBQ1RSOztBRFlNO0VBQ0UseUJBQUE7QUNWUjs7QURhTTtFQUNFLHlCQUFBO0FDWFI7O0FEY0k7RUFDRSx3QkFBQTtFQUNBLGNBQUE7RUFDQSx5QkFBQTtFQUNBLGVBQUE7RUFDQSxpREFBQTtFQUNBLG1CQUFBO0VBQ0EsZ0JBQUE7RUFDQSxtQkFBQTtFQUNBLHlCQUFBO0FDWE47O0FEYU07RUFDRSwwQkFBQTtFQUNBLFlBQUE7RUFDQSw0QkFBQTtFQUNBLGtCQUFBO0FDWFI7O0FEY007RUFDRSxtQ0FBQTtFQUFBLDJCQUFBO0VBQ0EsaUJBQUE7QUNaUjs7QURlTTs7RUFFRSwrQkFBQTtFQUNBLG1CQUFBO0VBQ0EsZ0JBQUE7RUFDQSxlQUFBO0FDYlI7O0FEZ0JNO0VBQ0UsY0FBQTtBQ2RSOztBRGlCTTtFQUNFLFVBQUE7RUFDQSxTQUFBO0VBQ0EsMEJBQUE7QUNmUjs7QURrQk07RUFDRSxhQUFBO0FDaEJSOztBRG1CTTtFQUNFLG1CQUFBO0VBQ0EsU0FBQTtFQUNBLGNBQUE7RUFDQSxpQkFBQTtBQ2pCUjs7QURxQk07RUFDRSxzQ0FBQTtBQ25CUjs7QURzQk07RUFDRSwrQkFBQTtFQUNBLDZCQUFBO0VBQ0EsZ0NBQUE7RUFDQSwyQkFBQTtBQ3BCUjs7QUR3Qk07RUFDRSxpQkFBQTtFQUNBLG1CQUFBO0FDdEJSOztBRHdCUTtFQUNFLGVBQUE7RUFDQSxpREFBQTtFQUNBLGdCQUFBO0VBQ0EsdUJBQUE7QUN0QlY7O0FENkJNO0VBQ0Usb0NBQUE7QUMzQlI7O0FEOEJNO0VBQ0UsOEJBQUE7RUFDQSx1QkFBQTtBQzVCUjs7QUQ4QlE7RUFDRSxjQUFBO0FDNUJWOztBRGdDTTtFQUNFLG9DQUFBO0FDOUJSOztBRGdDUTtFQUNFLGNBQUE7RUFDQSwrQkFBQTtFQUNBLGVBQUE7QUM5QlY7O0FEcUNJO0VBRUUsVUFBQTtFQUNBLFNBQUE7RUFDQSxvQkFBQTtFQUNBLFlBQUE7RUFDQSxlQUFBO0VBQ0EsaURBQUE7RUFDQSxjQUFBO0FDbkNOOztBRHFDTTtFQUNFLDhCQUFBO0VBQ0EseUJBQUE7QUNuQ1I7O0FEc0NNO0VBQ0UsYUFBQTtFQUNBLFlBQUE7RUFDQSxpQkFBQTtBQ3BDUjs7QUR1Q007RUFDRSw4QkFBQTtFQUNBLG9CQUFBO0FDckNSOztBRHdDTTtFQUNFLG1CQUFBO0VBQ0EseUJBQUE7RUFDQSxlQUFBO0VBQ0EsZUFBQTtFQUNBLGtCQUFBO0FDdENSOztBRHlDTTtFQUNFLGNBQUE7RUFDQSxZQUFBO0VBQ0EsdUJBQUE7RUFDQSxnQkFBQTtBQ3ZDUjs7QUQyQ0k7RUFDRSxZQUFBO0VBQ0Esb0JBQUE7RUFDQSxXQUFBO0VBQ0EsZUFBQTtBQ3hDTjs7QUQ0Q0k7RUFDRSxlQUFBO0VBRUEsaUJBQUE7RUFDQSxjQUFBO0VBQ0EsU0FBQTtBQzFDTjs7QUQ2Q0k7RUFDRSxZQUFBO0FDMUNOOztBRDZDSTtFQUNFLGNBQUE7RUFDQSxjQUFBO0FDMUNOOztBRDZDSTtFQUNFLHlCQUFBO0VBQ0EsVUFBQTtFQUNBLGlCQUFBO0VBQ0EsZ0JBQUE7RUFDQSxnQkFBQTtFQUNBLGtCQUFBO0VBQ0EsY0FBQTtBQzFDTjs7QUQ2Q0k7RUFDRSxxQ0FBQTtBQzFDTjs7QUQ2Q0k7RUFDRSxtQkFBQTtFQUNBLGdCQUFBO0VBQ0EsdUJBQUE7RUFDQSxnQkFBQTtBQzFDTjs7QUQ2Q0k7RUFDRSxlQUFBO0VBQ0EsU0FBQTtFQUNBLFdBQUE7QUMxQ047O0FEK0NFO0VBQ0Usd0JBQUE7QUM1Q0oiLCJmaWxlIjoic3JjL2FwcC9jb21wb25lbnQvcXVlcnkvY29sdW1uLXNlZ21lbnQtdGhyZWUvY29sdW1uLXNlZ21lbnQtdGhyZWUuY29tcG9uZW50LnNjc3MiLCJzb3VyY2VzQ29udGVudCI6WyIgICAgLmN1c3RvbS1zY3JvbGwtYmFyIHtcbiAgICAgIC8vIGhlaWdodDo3MHZoO1xuICAgICAgaGVpZ2h0OiBjYWxjKDEwMCUgLSAxMTRweCk7XG4gICAgICBvdmVyZmxvdy15OiBzY3JvbGw7XG4gICAgICBvdmVyZmxvdy14OiBzY3JvbGw7XG4gICAgICBtYXJnaW4tcmlnaHQ6IDVweDtcbiAgICB9XG5cbiAgICAuY3VzdG9tLXNjcm9sbC1iYXI6Oi13ZWJraXQtc2Nyb2xsYmFyIHtcbiAgICAgIHdpZHRoOiAxMHB4O1xuICAgICAgaGVpZ2h0OiAxMHB4O1xuXG4gICAgfVxuXG4gICAgLmN1c3RvbS1zY3JvbGwtYmFyOjotd2Via2l0LXNjcm9sbGJhci10aHVtYiB7XG4gICAgICAvLyBiYWNrZ3JvdW5kOiByZ2JhKDAsMCwwLC4yNik7XG4gICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjYTJhZGI2O1xuICAgICAgYm9yZGVyLXJhZGl1czogNXB4O1xuICAgIH1cblxuICAgIC5kZXRhaWwtc2NyZWVuIHtcbiAgICAgIC5tYXQtZXhwYW5zaW9uLXBhbmVsLWhlYWRlciB7XG4gICAgICAgIGhlaWdodDogMjVweCAhaW1wb3J0YW50O1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjQThCNUJGO1xuICAgICAgICBmb250LXNpemU6IDE0cHg7XG4gICAgICAgIGZvbnQtd2VpZ2h0OiA2MDA7XG4gICAgICB9XG5cbiAgICAgIDo6bmctZGVlcCAubWF0LWV4cGFuc2lvbi1pbmRpY2F0b3I6OmFmdGVyIHtcbiAgICAgICAgYm9yZGVyLXN0eWxlOiBzb2xpZCAhaW1wb3J0YW50O1xuICAgICAgfVxuXG4gICAgICAudmVoaWNsZS1kZXRhaWwge1xuICAgICAgICBib3JkZXItY29sbGFwc2U6IGNvbGxhcHNlO1xuICAgICAgICB3aWR0aDogMTAwJTtcbiAgICAgICAgdGFibGUtbGF5b3V0OiBmaXhlZDtcblxuICAgICAgICB0cjpudGgtY2hpbGQoZXZlbikge1xuICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICNmMmYyZjI7XG4gICAgICAgIH1cbiAgICAgICAgXG4gICAgICAgIHRkIHtcbiAgICAgICAgICBib3JkZXI6IDFweCBzb2xpZCAjQThCNUJGO1xuICAgICAgICAgIHRleHQtYWxpZ246IGxlZnQ7XG4gICAgICAgICAgcGFkZGluZzogMnB4IDhweDtcbiAgICAgICAgICBmb250LXNpemU6IDEycHg7XG4gICAgICAgICAgd29yZC13cmFwOiBicmVhay13b3JkO1xuICAgICAgICB9XG5cbiAgICAgIH1cblxuICAgICAgLm1hdC1leHBhbnNpb24tcGFuZWwge1xuICAgICAgICBtYXJnaW46IDAgMTBweCAhaW1wb3J0YW50O1xuICAgICAgICBib3JkZXI6IDAgIWltcG9ydGFudDtcbiAgICAgIH1cblxuICAgICAgLmdyZWVuIHtcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogIzcwYWQ0NztcbiAgICAgIH1cblxuICAgICAgLnllbGxvdyB7XG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6ICNmZmMwMDA7XG4gICAgICB9XG4gICAgfVxuICAgIC50YWJsZS1jb250YWluZXIge1xuICAgICAgbWFyZ2luOiAxMHB4IDEwcHggMCAxMHB4O1xuICAgICAgb3ZlcmZsb3c6IGF1dG87XG4gICAgICBoZWlnaHQ6IGNhbGMoMTAwJSAtIDk2cHgpO1xuICAgICAgZm9udC1zaXplOiAxMnB4O1xuICAgICAgZm9udC1mYW1pbHk6IFJvYm90bywgXCJIZWx2ZXRpY2EgTmV1ZVwiLCBzYW5zLXNlcmlmO1xuICAgICAgYmFja2dyb3VuZDogI2ZmZmZmZjtcbiAgICAgIHRleHQtYWxpZ246IGxlZnQ7XG4gICAgICB3aGl0ZS1zcGFjZTogbm93cmFwO1xuICAgICAgYm9yZGVyLWNvbGxhcHNlOiBjb2xsYXBzZTtcblxuICAgICAgdGFibGUge1xuICAgICAgICBtaW4td2lkdGg6IDEwMCUgIWltcG9ydGFudDtcbiAgICAgICAgY29sb3I6IHdoaXRlO1xuICAgICAgICBib3JkZXItc3BhY2luZzogMCAhaW1wb3J0YW50O1xuICAgICAgICB0YWJsZS1sYXlvdXQ6IGF1dG87XG4gICAgICB9XG5cbiAgICAgIHRhYmxlIHRoZWFkIHtcbiAgICAgICAgcG9zaXRpb246IHN0aWNreSAhaW1wb3J0YW50O1xuICAgICAgICB0b3A6IDAgIWltcG9ydGFudDtcbiAgICAgIH1cblxuICAgICAgLm1hdC1jZWxsLFxuICAgICAgLm1hdC1oZWFkZXItY2VsbCB7XG4gICAgICAgIGJvcmRlci1yaWdodDogMXB4IHNvbGlkICMwMDAwMDA7XG4gICAgICAgIGFsaWduLXNlbGY6IHN0cmV0Y2g7XG4gICAgICAgIHRleHQtYWxpZ246IGxlZnQ7XG4gICAgICAgIHBhZGRpbmc6IDAuM3JlbTtcbiAgICAgIH1cblxuICAgICAgLm1hdC1jZWxsIHtcbiAgICAgICAgY29sb3I6ICMwMDAwMDA7XG4gICAgICB9XG5cbiAgICAgIHRoOmZpcnN0LWNoaWxkIHtcbiAgICAgICAgd2lkdGg6IDFweDtcbiAgICAgICAgYm9yZGVyOiAwO1xuICAgICAgICBtaW4td2lkdGg6IDMwcHggIWltcG9ydGFudDtcbiAgICAgIH1cblxuICAgICAgdGg6Zmlyc3QtY2hpbGQgc3BhbiB7XG4gICAgICAgIGRpc3BsYXk6IG5vbmU7XG4gICAgICB9XG5cbiAgICAgIHRkOmZpcnN0LWNoaWxkIHtcbiAgICAgICAgYmFja2dyb3VuZDogIzJkNDU1NztcbiAgICAgICAgYm9yZGVyOiAwO1xuICAgICAgICBjb2xvcjogI2ZmZmZmZjtcbiAgICAgICAgdGV4dC1hbGlnbjogdW5zZXQ7XG4gICAgICB9XG5cblxuICAgICAgLnRhYmxlLXRoLXJpZ2h0LWxpbmUge1xuICAgICAgICBib3JkZXItcmlnaHQ6IDFweCBzb2xpZCByZWQgIWltcG9ydGFudDtcbiAgICAgIH1cblxuICAgICAgLm1hdC1oZWFkZXItY2VsbCB7XG4gICAgICAgIGJvcmRlci1yaWdodDogMXB4IHNvbGlkICNmZmZmZmY7XG4gICAgICAgIGJvcmRlci10b3A6IDFweCBzb2xpZCAjZmZmZmZmO1xuICAgICAgICBib3JkZXItYm90dG9tOiAxcHggc29saWQgI2ZmZmZmZjtcbiAgICAgICAgbWluLXdpZHRoOiAxMDBweCAhaW1wb3J0YW50O1xuICAgICAgICAvLyBjdXJzb3I6IGNvbC1yZXNpemU7XG4gICAgICB9XG5cbiAgICAgIHRyLm1hdC1yb3cge1xuICAgICAgICBsaW5lLWhlaWdodDogMzBweDtcbiAgICAgICAgd2hpdGUtc3BhY2U6IG5vd3JhcDtcblxuICAgICAgICB0ZCB7XG4gICAgICAgICAgZm9udC1zaXplOiAxMnB4O1xuICAgICAgICAgIGZvbnQtZmFtaWx5OiBSb2JvdG8sIFwiSGVsdmV0aWNhIE5ldWVcIiwgc2Fucy1zZXJpZjtcbiAgICAgICAgICBvdmVyZmxvdzogaGlkZGVuO1xuICAgICAgICAgIHRleHQtb3ZlcmZsb3c6IGVsbGlwc2lzO1xuICAgICAgICAgIC8vIG1heC13aWR0aDogNTBweDtcbiAgICAgICAgICAvLyB3aWR0aDogMTAlO1xuICAgICAgICAgIC8vIHBhZGRpbmc6IDA7XG4gICAgICAgIH1cbiAgICAgIH1cblxuICAgICAgdHIubWF0LXJvdzpudGgtY2hpbGQob2RkKSB7XG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6ICNmMmYyZjIgIWltcG9ydGFudDtcbiAgICAgIH1cblxuICAgICAgdHIubWF0LWhlYWRlci1yb3cge1xuICAgICAgICBiYWNrZ3JvdW5kOiAjMkQ0NTU3ICFpbXBvcnRhbnQ7XG4gICAgICAgIGhlaWdodDogMzBweCAhaW1wb3J0YW50O1xuXG4gICAgICAgIC5tYXQtaGVhZGVyLWNlbGwge1xuICAgICAgICAgIGNvbG9yOiAjZmZmZmZmO1xuICAgICAgICB9XG4gICAgICB9XG5cbiAgICAgIHRyLm1hdC1yb3cuaGlnaGxpZ2h0ZWRSb3cge1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjMmQ0NTU3ICFpbXBvcnRhbnQ7XG5cbiAgICAgICAgdGQge1xuICAgICAgICAgIGNvbG9yOiAjZmZmZmZmO1xuICAgICAgICAgIHdoaXRlLXNwYWNlOiBpbml0aWFsICFpbXBvcnRhbnQ7XG4gICAgICAgICAgbWF4LXdpZHRoOiAxMDAlO1xuICAgICAgICAgIC8vIHdpZHRoOiBjYWxjKDEwMCUgLSAzZW0pO1xuICAgICAgICB9XG4gICAgICB9XG5cbiAgICB9XG5cbiAgICAuZm9vdGVyLXBhbmVsIHtcbiAgICAgIC8vIHBvc2l0aW9uOmZpeGVkO1xuICAgICAgd2lkdGg6IDc1JTtcbiAgICAgIGJvdHRvbTogMDtcbiAgICAgIC8qIHN0aWNrIHRvIGJvdHRvbSAqL1xuICAgICAgaGVpZ2h0OiAzMHB4O1xuICAgICAgZm9udC1zaXplOiAxMnB4O1xuICAgICAgZm9udC1mYW1pbHk6IFJvYm90bywgXCJIZWx2ZXRpY2EgTmV1ZVwiLCBzYW5zLXNlcmlmO1xuICAgICAgY29sb3I6ICNmZmZmZmY7XG5cbiAgICAgIC5hY3RpdmUge1xuICAgICAgICBiYWNrZ3JvdW5kOiAjZjBmMWYyICFpbXBvcnRhbnQ7XG4gICAgICAgIGNvbG9yOiAjNzA4MjkwICFpbXBvcnRhbnQ7XG4gICAgICB9XG5cbiAgICAgIC5mb290ZXItY2xzIHtcbiAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgaGVpZ2h0OiAzMHB4O1xuICAgICAgICBsaW5lLWhlaWdodDogMzBweDtcbiAgICAgIH1cblxuICAgICAgLmRpc2FibGUge1xuICAgICAgICBjdXJzb3I6IG5vdC1hbGxvd2VkICFpbXBvcnRhbnQ7XG4gICAgICAgIHBvaW50ZXItZXZlbnRzOiBub25lO1xuICAgICAgfVxuXG4gICAgICAucmVxdWVzdC10YWIge1xuICAgICAgICBiYWNrZ3JvdW5kOiAjNzA4MjkwO1xuICAgICAgICBib3JkZXI6IDFweCBzb2xpZCAjNzA4MjkwO1xuICAgICAgICBjdXJzb3I6IHBvaW50ZXI7XG4gICAgICAgIG1pbi13aWR0aDogNzBweDtcbiAgICAgICAgdGV4dC1hbGlnbjogY2VudGVyO1xuICAgICAgfVxuXG4gICAgICAucmVxdWVzdC10ZXh0LWNsYXNzIHtcbiAgICAgICAgY29sb3I6ICNmZmZmZmY7XG4gICAgICAgIG1hcmdpbjogMCAyJTtcbiAgICAgICAgdGV4dC1vdmVyZmxvdzogZWxsaXBzaXM7XG4gICAgICAgIG92ZXJmbG93OiBoaWRkZW47XG4gICAgICB9XG4gICAgfVxuXG4gICAgLnBhZ2luYXRpb24tYnRuIHtcbiAgICAgIG1hcmdpbjogMiUgMDtcbiAgICAgIGRpc3BsYXk6IGlubGluZS1mbGV4O1xuICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICBjdXJzb3I6IHBvaW50ZXI7XG4gICAgfVxuXG5cbiAgICAubWF0LWljb24ge1xuICAgICAgZm9udC1zaXplOiAzMHB4O1xuICAgICAgLy8gd2lkdGg6IDEwMCU7XG4gICAgICBsaW5lLWhlaWdodDogMjJweDtcbiAgICAgIGNvbG9yOiAjZmZmZmZmO1xuICAgICAgd2lkdGg6IDglO1xuICAgIH1cblxuICAgIC5oZWFkZXIge1xuICAgICAgbWFyZ2luOiAxMnB4O1xuICAgIH1cblxuICAgIC5oZWFkZXItdGV4dCB7XG4gICAgICBjb2xvcjogI2ZmZmZmZjtcbiAgICAgIG1hcmdpbjogMCAxMnB4O1xuICAgIH1cblxuICAgIC5jb2x1bW4zIHtcbiAgICAgIGhlaWdodDogY2FsYygxMDAlIC0gNzZweCk7XG4gICAgICB3aWR0aDogOTYlO1xuICAgICAgbWFyZ2luLWxlZnQ6IDE1cHg7XG4gICAgICBvdmVyZmxvdy15OiBhdXRvO1xuICAgICAgb3ZlcmZsb3cteDogYXV0bztcbiAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgIGNvbG9yOiAjZmZmZmZmO1xuICAgIH1cblxuICAgIC5zZWNvbmREZXRhaWxTY3JvbGxCYXIge1xuICAgICAgaGVpZ2h0OiBjYWxjKDEwMCUgLSAxMTBweCkgIWltcG9ydGFudDtcbiAgICB9XG5cbiAgICAudGV4dE92ZXJmbG93IHtcbiAgICAgIHdoaXRlLXNwYWNlOiBub3dyYXA7XG4gICAgICBvdmVyZmxvdzogaGlkZGVuO1xuICAgICAgdGV4dC1vdmVyZmxvdzogZWxsaXBzaXM7XG4gICAgICBtYXgtd2lkdGg6IDEwMHB4O1xuICAgIH1cblxuICAgIC5jdXN0b20tYnV0dG9uIHtcbiAgICAgIHBvc2l0aW9uOiBmaXhlZDsgLy8gYWJzb2x1dGU7XG4gICAgICByaWdodDogNCU7XG4gICAgICBib3R0b206IDEyJTtcbiAgICAgIC8vIGJhY2tncm91bmQtY29sb3I6IHZhcigtLXJuZC1jb2xvci1ibGFjayk7XG4gICAgICAvLyBjb2xvcjogdmFyKC0tcm5kLWNvbG9yLXdoaXRlKTtcbiAgICB9XG5cbiAgLmNscy1kaXNwbGF5Tm9uZXtcbiAgICBkaXNwbGF5Om5vbmUgIWltcG9ydGFudDtcbiAgfSIsIi5jdXN0b20tc2Nyb2xsLWJhciB7XG4gIGhlaWdodDogY2FsYygxMDAlIC0gMTE0cHgpO1xuICBvdmVyZmxvdy15OiBzY3JvbGw7XG4gIG92ZXJmbG93LXg6IHNjcm9sbDtcbiAgbWFyZ2luLXJpZ2h0OiA1cHg7XG59XG5cbi5jdXN0b20tc2Nyb2xsLWJhcjo6LXdlYmtpdC1zY3JvbGxiYXIge1xuICB3aWR0aDogMTBweDtcbiAgaGVpZ2h0OiAxMHB4O1xufVxuXG4uY3VzdG9tLXNjcm9sbC1iYXI6Oi13ZWJraXQtc2Nyb2xsYmFyLXRodW1iIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogI2EyYWRiNjtcbiAgYm9yZGVyLXJhZGl1czogNXB4O1xufVxuXG4uZGV0YWlsLXNjcmVlbiAubWF0LWV4cGFuc2lvbi1wYW5lbC1oZWFkZXIge1xuICBoZWlnaHQ6IDI1cHggIWltcG9ydGFudDtcbiAgYmFja2dyb3VuZC1jb2xvcjogI0E4QjVCRjtcbiAgZm9udC1zaXplOiAxNHB4O1xuICBmb250LXdlaWdodDogNjAwO1xufVxuLmRldGFpbC1zY3JlZW4gOjpuZy1kZWVwIC5tYXQtZXhwYW5zaW9uLWluZGljYXRvcjo6YWZ0ZXIge1xuICBib3JkZXItc3R5bGU6IHNvbGlkICFpbXBvcnRhbnQ7XG59XG4uZGV0YWlsLXNjcmVlbiAudmVoaWNsZS1kZXRhaWwge1xuICBib3JkZXItY29sbGFwc2U6IGNvbGxhcHNlO1xuICB3aWR0aDogMTAwJTtcbiAgdGFibGUtbGF5b3V0OiBmaXhlZDtcbn1cbi5kZXRhaWwtc2NyZWVuIC52ZWhpY2xlLWRldGFpbCB0cjpudGgtY2hpbGQoZXZlbikge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjZjJmMmYyO1xufVxuLmRldGFpbC1zY3JlZW4gLnZlaGljbGUtZGV0YWlsIHRkIHtcbiAgYm9yZGVyOiAxcHggc29saWQgI0E4QjVCRjtcbiAgdGV4dC1hbGlnbjogbGVmdDtcbiAgcGFkZGluZzogMnB4IDhweDtcbiAgZm9udC1zaXplOiAxMnB4O1xuICB3b3JkLXdyYXA6IGJyZWFrLXdvcmQ7XG59XG4uZGV0YWlsLXNjcmVlbiAubWF0LWV4cGFuc2lvbi1wYW5lbCB7XG4gIG1hcmdpbjogMCAxMHB4ICFpbXBvcnRhbnQ7XG4gIGJvcmRlcjogMCAhaW1wb3J0YW50O1xufVxuLmRldGFpbC1zY3JlZW4gLmdyZWVuIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogIzcwYWQ0Nztcbn1cbi5kZXRhaWwtc2NyZWVuIC55ZWxsb3cge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjZmZjMDAwO1xufVxuXG4udGFibGUtY29udGFpbmVyIHtcbiAgbWFyZ2luOiAxMHB4IDEwcHggMCAxMHB4O1xuICBvdmVyZmxvdzogYXV0bztcbiAgaGVpZ2h0OiBjYWxjKDEwMCUgLSA5NnB4KTtcbiAgZm9udC1zaXplOiAxMnB4O1xuICBmb250LWZhbWlseTogUm9ib3RvLCBcIkhlbHZldGljYSBOZXVlXCIsIHNhbnMtc2VyaWY7XG4gIGJhY2tncm91bmQ6ICNmZmZmZmY7XG4gIHRleHQtYWxpZ246IGxlZnQ7XG4gIHdoaXRlLXNwYWNlOiBub3dyYXA7XG4gIGJvcmRlci1jb2xsYXBzZTogY29sbGFwc2U7XG59XG4udGFibGUtY29udGFpbmVyIHRhYmxlIHtcbiAgbWluLXdpZHRoOiAxMDAlICFpbXBvcnRhbnQ7XG4gIGNvbG9yOiB3aGl0ZTtcbiAgYm9yZGVyLXNwYWNpbmc6IDAgIWltcG9ydGFudDtcbiAgdGFibGUtbGF5b3V0OiBhdXRvO1xufVxuLnRhYmxlLWNvbnRhaW5lciB0YWJsZSB0aGVhZCB7XG4gIHBvc2l0aW9uOiBzdGlja3kgIWltcG9ydGFudDtcbiAgdG9wOiAwICFpbXBvcnRhbnQ7XG59XG4udGFibGUtY29udGFpbmVyIC5tYXQtY2VsbCxcbi50YWJsZS1jb250YWluZXIgLm1hdC1oZWFkZXItY2VsbCB7XG4gIGJvcmRlci1yaWdodDogMXB4IHNvbGlkICMwMDAwMDA7XG4gIGFsaWduLXNlbGY6IHN0cmV0Y2g7XG4gIHRleHQtYWxpZ246IGxlZnQ7XG4gIHBhZGRpbmc6IDAuM3JlbTtcbn1cbi50YWJsZS1jb250YWluZXIgLm1hdC1jZWxsIHtcbiAgY29sb3I6ICMwMDAwMDA7XG59XG4udGFibGUtY29udGFpbmVyIHRoOmZpcnN0LWNoaWxkIHtcbiAgd2lkdGg6IDFweDtcbiAgYm9yZGVyOiAwO1xuICBtaW4td2lkdGg6IDMwcHggIWltcG9ydGFudDtcbn1cbi50YWJsZS1jb250YWluZXIgdGg6Zmlyc3QtY2hpbGQgc3BhbiB7XG4gIGRpc3BsYXk6IG5vbmU7XG59XG4udGFibGUtY29udGFpbmVyIHRkOmZpcnN0LWNoaWxkIHtcbiAgYmFja2dyb3VuZDogIzJkNDU1NztcbiAgYm9yZGVyOiAwO1xuICBjb2xvcjogI2ZmZmZmZjtcbiAgdGV4dC1hbGlnbjogdW5zZXQ7XG59XG4udGFibGUtY29udGFpbmVyIC50YWJsZS10aC1yaWdodC1saW5lIHtcbiAgYm9yZGVyLXJpZ2h0OiAxcHggc29saWQgcmVkICFpbXBvcnRhbnQ7XG59XG4udGFibGUtY29udGFpbmVyIC5tYXQtaGVhZGVyLWNlbGwge1xuICBib3JkZXItcmlnaHQ6IDFweCBzb2xpZCAjZmZmZmZmO1xuICBib3JkZXItdG9wOiAxcHggc29saWQgI2ZmZmZmZjtcbiAgYm9yZGVyLWJvdHRvbTogMXB4IHNvbGlkICNmZmZmZmY7XG4gIG1pbi13aWR0aDogMTAwcHggIWltcG9ydGFudDtcbn1cbi50YWJsZS1jb250YWluZXIgdHIubWF0LXJvdyB7XG4gIGxpbmUtaGVpZ2h0OiAzMHB4O1xuICB3aGl0ZS1zcGFjZTogbm93cmFwO1xufVxuLnRhYmxlLWNvbnRhaW5lciB0ci5tYXQtcm93IHRkIHtcbiAgZm9udC1zaXplOiAxMnB4O1xuICBmb250LWZhbWlseTogUm9ib3RvLCBcIkhlbHZldGljYSBOZXVlXCIsIHNhbnMtc2VyaWY7XG4gIG92ZXJmbG93OiBoaWRkZW47XG4gIHRleHQtb3ZlcmZsb3c6IGVsbGlwc2lzO1xufVxuLnRhYmxlLWNvbnRhaW5lciB0ci5tYXQtcm93Om50aC1jaGlsZChvZGQpIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogI2YyZjJmMiAhaW1wb3J0YW50O1xufVxuLnRhYmxlLWNvbnRhaW5lciB0ci5tYXQtaGVhZGVyLXJvdyB7XG4gIGJhY2tncm91bmQ6ICMyRDQ1NTcgIWltcG9ydGFudDtcbiAgaGVpZ2h0OiAzMHB4ICFpbXBvcnRhbnQ7XG59XG4udGFibGUtY29udGFpbmVyIHRyLm1hdC1oZWFkZXItcm93IC5tYXQtaGVhZGVyLWNlbGwge1xuICBjb2xvcjogI2ZmZmZmZjtcbn1cbi50YWJsZS1jb250YWluZXIgdHIubWF0LXJvdy5oaWdobGlnaHRlZFJvdyB7XG4gIGJhY2tncm91bmQtY29sb3I6ICMyZDQ1NTcgIWltcG9ydGFudDtcbn1cbi50YWJsZS1jb250YWluZXIgdHIubWF0LXJvdy5oaWdobGlnaHRlZFJvdyB0ZCB7XG4gIGNvbG9yOiAjZmZmZmZmO1xuICB3aGl0ZS1zcGFjZTogaW5pdGlhbCAhaW1wb3J0YW50O1xuICBtYXgtd2lkdGg6IDEwMCU7XG59XG5cbi5mb290ZXItcGFuZWwge1xuICB3aWR0aDogNzUlO1xuICBib3R0b206IDA7XG4gIC8qIHN0aWNrIHRvIGJvdHRvbSAqL1xuICBoZWlnaHQ6IDMwcHg7XG4gIGZvbnQtc2l6ZTogMTJweDtcbiAgZm9udC1mYW1pbHk6IFJvYm90bywgXCJIZWx2ZXRpY2EgTmV1ZVwiLCBzYW5zLXNlcmlmO1xuICBjb2xvcjogI2ZmZmZmZjtcbn1cbi5mb290ZXItcGFuZWwgLmFjdGl2ZSB7XG4gIGJhY2tncm91bmQ6ICNmMGYxZjIgIWltcG9ydGFudDtcbiAgY29sb3I6ICM3MDgyOTAgIWltcG9ydGFudDtcbn1cbi5mb290ZXItcGFuZWwgLmZvb3Rlci1jbHMge1xuICBkaXNwbGF5OiBmbGV4O1xuICBoZWlnaHQ6IDMwcHg7XG4gIGxpbmUtaGVpZ2h0OiAzMHB4O1xufVxuLmZvb3Rlci1wYW5lbCAuZGlzYWJsZSB7XG4gIGN1cnNvcjogbm90LWFsbG93ZWQgIWltcG9ydGFudDtcbiAgcG9pbnRlci1ldmVudHM6IG5vbmU7XG59XG4uZm9vdGVyLXBhbmVsIC5yZXF1ZXN0LXRhYiB7XG4gIGJhY2tncm91bmQ6ICM3MDgyOTA7XG4gIGJvcmRlcjogMXB4IHNvbGlkICM3MDgyOTA7XG4gIGN1cnNvcjogcG9pbnRlcjtcbiAgbWluLXdpZHRoOiA3MHB4O1xuICB0ZXh0LWFsaWduOiBjZW50ZXI7XG59XG4uZm9vdGVyLXBhbmVsIC5yZXF1ZXN0LXRleHQtY2xhc3Mge1xuICBjb2xvcjogI2ZmZmZmZjtcbiAgbWFyZ2luOiAwIDIlO1xuICB0ZXh0LW92ZXJmbG93OiBlbGxpcHNpcztcbiAgb3ZlcmZsb3c6IGhpZGRlbjtcbn1cblxuLnBhZ2luYXRpb24tYnRuIHtcbiAgbWFyZ2luOiAyJSAwO1xuICBkaXNwbGF5OiBpbmxpbmUtZmxleDtcbiAgd2lkdGg6IDEwMCU7XG4gIGN1cnNvcjogcG9pbnRlcjtcbn1cblxuLm1hdC1pY29uIHtcbiAgZm9udC1zaXplOiAzMHB4O1xuICBsaW5lLWhlaWdodDogMjJweDtcbiAgY29sb3I6ICNmZmZmZmY7XG4gIHdpZHRoOiA4JTtcbn1cblxuLmhlYWRlciB7XG4gIG1hcmdpbjogMTJweDtcbn1cblxuLmhlYWRlci10ZXh0IHtcbiAgY29sb3I6ICNmZmZmZmY7XG4gIG1hcmdpbjogMCAxMnB4O1xufVxuXG4uY29sdW1uMyB7XG4gIGhlaWdodDogY2FsYygxMDAlIC0gNzZweCk7XG4gIHdpZHRoOiA5NiU7XG4gIG1hcmdpbi1sZWZ0OiAxNXB4O1xuICBvdmVyZmxvdy15OiBhdXRvO1xuICBvdmVyZmxvdy14OiBhdXRvO1xuICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gIGNvbG9yOiAjZmZmZmZmO1xufVxuXG4uc2Vjb25kRGV0YWlsU2Nyb2xsQmFyIHtcbiAgaGVpZ2h0OiBjYWxjKDEwMCUgLSAxMTBweCkgIWltcG9ydGFudDtcbn1cblxuLnRleHRPdmVyZmxvdyB7XG4gIHdoaXRlLXNwYWNlOiBub3dyYXA7XG4gIG92ZXJmbG93OiBoaWRkZW47XG4gIHRleHQtb3ZlcmZsb3c6IGVsbGlwc2lzO1xuICBtYXgtd2lkdGg6IDEwMHB4O1xufVxuXG4uY3VzdG9tLWJ1dHRvbiB7XG4gIHBvc2l0aW9uOiBmaXhlZDtcbiAgcmlnaHQ6IDQlO1xuICBib3R0b206IDEyJTtcbn1cblxuLmNscy1kaXNwbGF5Tm9uZSB7XG4gIGRpc3BsYXk6IG5vbmUgIWltcG9ydGFudDtcbn0iXX0= */\"","import { Component, Input, AfterViewInit, EventEmitter, ViewChild, HostListener, ElementRef, Renderer2, Output, OnInit, DoCheck, OnChanges } from '@angular/core';\nimport { BackendApiService } from '../../../services/backend-api/backend-api.service';\nimport { MatDialog, MatTable } from '@angular/material';\nimport { ToastyService } from 'ng2-toasty';\nimport { TranslateService } from '@ngx-translate/core';\nimport { UtilService } from '../../../services/util/util.service';\nimport { NgxPaginationModule, PaginatePipe } from 'ngx-pagination';\nimport { AlertMessageComponent } from '../alert-message/alert-message.component';\nimport { AlertConfirmationComponent } from '../../alert-confirmation/alert-confirmation.component';\nimport 'moment/min/locales.min';\nimport moment from 'moment';\nimport { CdkVirtualScrollViewport } from '@angular/cdk/scrolling';\n\n\n@Component({\n selector: 'column-segment-three',\n templateUrl: './column-segment-three.component.html',\n styleUrls: ['./column-segment-three.component.scss']\n})\n\nexport class ColumnSegmentThreeComponent implements AfterViewInit, OnChanges {\n @ViewChild(CdkVirtualScrollViewport, { static: true }) viewport: CdkVirtualScrollViewport;\n @Input() ipn;\n @Input() region;\n @Input() selectedTable;\n @Input() lang;\n @Input() executeQuery;\n @Input() detailExecute;\n @Input() vueList;\n @Input() characterList;\n @Input() groupList;\n @Input() detailCharacterList;\n @Input() detailGroupList;\n @Input() detailVueList;\n @Input() executeBtn;\n @Input() vueTypeSelect;\n @Input() tcm;\n @Input() queryName;\n @Input() isTTB;\n @Input() previewData;\n @Output() blnData = new EventEmitter();\n @Output() totalRowsData = new EventEmitter();\n @Output() resultColumns = new EventEmitter();\n @Output() outputGetEvent = new EventEmitter();\n @Output() currentResultPage = new EventEmitter();\n @Output() emitSecondPageData = new EventEmitter();\n @Output() blnExecErr = new EventEmitter();\n\n @ViewChild(MatTable, { read: ElementRef, static: true }) matTableRef: ElementRef;\n\n selectedTab: string = \"global\";\n executedData = [];\n pagination: number = 0;\n debounce: boolean = true;\n splitChar = \"§\";\n totalRows: number;\n popRows: number;\n quantity: number;\n // step: number = 0;\n displayedColumns: any[] = [];\n columns = [];\n pressed = false;\n execute = true;\n currentResizeIndex: number;\n selectedRow;\n startX: number;\n startWidth: number;\n detailRowNo: number;\n secondDetailRowNo: number;\n currentPage: number = 1;\n isResizingRight: boolean;\n commonCriteria = [];\n initialCriteria = [];\n semiClearCurrent = [];\n semiClearInitial = [];\n resizableMousemove: () => void;\n resizableMouseup: () => void;\n\n num = 0;\n\n p: number;\n currentPages = 0;\n itemsPerPage = 500;\n\n collection = [];\n nextColumnDisplayNo: number = 0;\n displayedData = [];\n\n constructor(readonly apiService: BackendApiService, private renderer: Renderer2, readonly toastyService: ToastyService,\n readonly translateService: TranslateService, readonly utilService: UtilService, public dialog: MatDialog) {\n for (let i = 1; i <= 100; i++) {\n let Obj = { 'name': `Employee Name ${i}`, 'code': `EMP00 ${i}` }\n this.collection.push(Obj);\n }\n }\n\n ngAfterViewInit() {\n // if (this.scrollFrame) {\n // this.scrollContainer = this.scrollFrame.nativeElement;\n // }\n // this.loadData(this.pagination);\n }\n\n ngOnChanges() {\n this.p = 1;\n if (this.executeBtn) {\n this.detailRowNo = undefined;\n this.secondDetailRowNo = undefined;\n this.resetValues();\n this.loadData(0);\n this.currentPage = 1;\n this.currentResultPage.emit(this.currentPage);\n }\n }\n\n @HostListener('window:resize', ['$event'])\n onResize(event) {\n if (this.matTableRef) {\n this.setTableResize(this.matTableRef.nativeElement.clientWidth);\n }\n }\n\n getLangIndex(lang) {\n if (lang === 'en') {\n return 1;\n } else {\n return 0;\n }\n }\n\n setDisplayedColumns() {\n // debugger\n this.displayedData = [];\n\n if (this.columns.length > 60) {\n const remainingLength = Math.min(20, this.executedData.length - this.displayedData.length);\n this.displayedData.push(...this.executedData.slice(this.displayedData.length, this.displayedData.length + remainingLength));\n\n\n const remainingLength1 = Math.min(20, this.columns.length - this.displayedColumns.length);\n this.displayedColumns.push(...this.columns.slice(this.displayedColumns.length, this.displayedColumns.length + remainingLength1));\n } else {\n this.displayedData = this.executedData;\n this.displayedColumns = this.columns;\n }\n // // this.columns.forEach((column, index) => {\n // // column.index = index;\n // // this.displayedColumns[index] = column.field;\n // // });\n // if (this.columns.length < 20) {\n // for (let index = 0; index < this.columns.length; index++) {\n // const element = this.columns[index];\n // this.displayedColumns.push(element);\n // }\n // } else {\n // for (let index = 0; index < 20; index++) {\n // const element = this.columns[index];\n // this.displayedColumns.push(element);\n // }\n // }\n }\n\n setTableResize(tableWidth: number) {\n let totWidth = 0;\n this.columns.forEach((column) => {\n totWidth += column.width;\n });\n const scale = (tableWidth - 5) / totWidth;\n this.columns.forEach((column) => {\n column.width *= scale;\n this.setColumnWidth(column);\n });\n }\n\n\n onResizeColumn(event: any, index: number) {\n this.checkResizing(event, index);\n this.currentResizeIndex = index;\n this.pressed = true;\n this.startX = event.pageX;\n this.startWidth = event.target.clientWidth;\n event.preventDefault();\n this.mouseMove(index);\n }\n\n private checkResizing(event, index) {\n const cellData = this.getCellData(index);\n if ((index === 0) || (Math.abs(event.pageX - cellData.right) < cellData.width / 2 && index !== this.columns.length - 1)) {\n this.isResizingRight = true;\n } else {\n this.isResizingRight = false;\n }\n }\n\n private getCellData(index: number) {\n if (this.matTableRef) {\n const headerRow = this.matTableRef.nativeElement.children[0];\n const cell = headerRow.children[0].children[index];\n return cell.getBoundingClientRect();\n }\n }\n\n mouseMove(index: number) {\n this.resizableMousemove = this.renderer.listen('document', 'mousemove', (event) => {\n if (this.pressed && event.buttons) {\n const dx = (this.isResizingRight) ? (event.pageX - this.startX) : (-event.pageX + this.startX);\n const width = this.startWidth + dx;\n if (this.currentResizeIndex === index && width > 50) {\n this.setColumnWidthChanges(index, width);\n }\n }\n });\n this.resizableMouseup = this.renderer.listen('document', 'mouseup', (event) => {\n if (this.pressed) {\n this.pressed = false;\n this.currentResizeIndex = -1;\n this.resizableMousemove();\n this.resizableMouseup();\n }\n });\n }\n\n setColumnWidthChanges(index: number, width: number) {\n const orgWidth = this.columns[index].width;\n const dx = width - orgWidth;\n if (dx !== 0) {\n const j = (this.isResizingRight) ? index + 1 : index - 1;\n const newWidth = this.columns[j].width - dx;\n if (newWidth > 50) {\n this.columns[index].width = width;\n this.setColumnWidth(this.columns[index]);\n this.columns[j].width = newWidth;\n this.setColumnWidth(this.columns[j]);\n }\n }\n }\n\n moveRightColumn() {\n this.nextColumnDisplayNo = this.displayedColumns.length;\n if (this.displayedColumns.length + 20 > this.columns.length) {\n for (let index = this.displayedColumns.length; index < this.columns.length; index++) {\n const element = this.columns[index];\n this.displayedColumns.push(element);\n }\n } else {\n const tvalue = this.displayedColumns.length + 20;\n for (let index = this.displayedColumns.length; index < tvalue; index++) {\n const element = this.columns[index];\n this.displayedColumns.push(element);\n }\n }\n }\n\n setColumnWidth(column: any) {\n const columnEls = Array.from(document.getElementsByClassName('mat-column-' + column.field));\n columnEls.forEach((el: HTMLDivElement) => {\n el.style.width = column.width + 'px';\n });\n }\n\n getRecord(row) {\n // for (let i = 0; i < this.executedData.length; i++) {\n // for (let j = 0; j < this.columns.length; j++) {\n // if (this.executedData[i][j].C_1 === row[0].C_1) {\n // this.selectedRow = this.executedData[i][j];\n\n // }\n // }\n // }\n this.selectedRow = row;\n let rowNo, qte;\n for (const [key, value] of Object.entries(row)) {\n if (Object.keys(value)[0] === \"C_2\") {\n qte = { \"Qte\": Object.values(value)[0] };\n }\n if (Object.keys(value)[0] === \"C_1\") {\n rowNo = { \"RowNum\": Object.values(value)[0] };\n }\n }\n if (this.currentPage === 1) {\n this.quantity = parseInt(qte.Qte);\n this.detailRowNo = undefined;\n this.secondDetailRowNo = undefined;\n this.detailRowNo = rowNo !== undefined ? rowNo.RowNum === 0 ? 0 : rowNo.RowNum - 1 : 0;\n }\n if (this.currentPage === 2) {\n this.secondDetailRowNo = undefined;\n this.secondDetailRowNo = rowNo !== undefined ? rowNo.RowNum === 0 ? 0 : rowNo.RowNum - 1 : 0;\n }\n }\n\n loadData(pagination) {\n let get;\n this.num = 0;\n\n if (pagination === 0) {\n // // get = `GET@${this.ipn}@${this.selectedTable}@un100002@${pagination === 0 ? 0 : pagination}@${pagination === 0 ? 0 : 500}@1@`;\n // console.log(\"condition \",(this.selectedTable==='PDFV', '&&', this.isTTB)); \n get = `GET@${this.ipn}@${this.selectedTable}@un100002@${pagination === 0 ? 0 : pagination}@${this.selectedTable==='PDFV' && this.isTTB ? 1:pagination === 0 ? 0 : pagination}@1@`;\n // console.log(get);\n } else {\n // if (this.executedData.length >= this.totalRows) {\n // return;\n // }\n if ((this.p - 1) * 500 >= this.totalRows) {\n return;\n }\n // // get = `GET@${this.ipn}@${this.selectedTable}@un100002@${this.executedData.length}@${pagination === 0 ? 0 : 500}@1@`;\n get = `GET@${this.ipn}@${this.selectedTable}@un100002@${(this.p - 1) * 500}@${pagination === 0 ? 0 : pagination}@1@`;\n }\n this.outputGetEvent.emit(get);\n const timeStamp = Date.now();\n const randomNumber = Math.floor(100000 + Math.random() * 900000);\n const queryParam = { \"inputLists\": `${timeStamp}-${randomNumber}\\n${this.executeQuery}\\n${get}`.split('\\n'), \"region\": this.getFavoriteRegion() };\n this.num = 0;\n this.loadDataExecution(queryParam, pagination, `${timeStamp}-${randomNumber}`);\n\n\n // console.log(\"traceQuery\", this.executeQuery, this.previewData, moment.utc().format(\"HH:mm:ss\"));\n for (const pItem of this.previewData.population) {\n // console.log('objects', Object.keys(pItem), Object.keys(pItem)[0], Object.values(pItem), Object.values(pItem)[0], this.translateService.instant(`NEW_QUERY.POPULATION.${Object.keys(pItem)}`))\n }\n }\n\n getObjectKey(item) {\n return Object.keys(item);\n }\n\n getObjectValue(item) {\n return Object.values(item);\n }\n\n getQueryTrace(outputTotalRows, outputPops) {\n\n if (sessionStorage.getItem('trace') !== \"\") {\n const tCount = sessionStorage.getItem('traceCount');\n sessionStorage.setItem('traceCount', (Number(tCount) + 3).toString());\n }\n let sVal;\n const traceCount = sessionStorage.getItem('traceCount');\n if (Number(traceCount) > 2) {\n sVal = this.executeQuery.replaceAll(this.ipn, \"__1__\").replaceAll('un100000', 'un10000' + (Number(traceCount) - 2).toString()).replaceAll('un100001', 'un10000' + (Number(traceCount) - 1).toString()).replaceAll('un100002', 'un10000' + (Number(traceCount)).toString()).split(\"\\n\");\n } else {\n sVal = this.executeQuery.replaceAll(this.ipn, \"__1__\").split(\"\\n\");\n }\n // console.log(\"sVal\", sVal);\n this.utilService.setTrace(`#H ${moment.utc().format(\"HH:mm:ss\")}`);\n this.utilService.setTrace(`>A< svc_objsave`);\n this.utilService.setTrace(`>I< ${sVal[0]}`);\n this.utilService.setTrace(`>O<`);\n this.utilService.setTrace(`#H ${moment.utc().format(\"HH:mm:ss\")}`);\n // this.utilService.setTrace(`#H ${moment.utc().format(\"HH:mm:ss\")}`);\n // // this.utilService.setTrace(`>A< ACTUALISE >I< ${this.ipn} >O< @1@`);\n // if (this.previewData.population.length > 0) {\n // for (const pItem of this.previewData.population) {\n // //Date TCM _ Offline date\n // const cDate = new Date();\n // if (Object.keys(pItem)[0] === 'TCM') {\n // if (Object.values(pItem).includes(\"3\")) {\n // const rDate = new Date(cDate.setMonth(cDate.getMonth() - 3))\n // // this.utilService.setTrace(`# B T ${rDate.toLocaleDateString('en-GB')}<=${this.translateService.instant(`NEW_QUERY.POPULATION.${Object.keys(pItem)}`)}(days)`);\n // // this.utilService.setTrace(`>A< ACTUALISE >I< ${this.ipn} >O< @1@`);\n // this.utilService.setTrace(`>A< svc_objsave`);\n // this.utilService.setTrace(`>I< ${sVal[0]}`);\n // this.utilService.setTrace(`>O<`);\n // this.utilService.setTrace(`#H ${moment.utc().format(\"HH:mm:ss\")}`);\n // } else if (Object.values(pItem).includes(\"6\")) {\n // const rDate = new Date(cDate.setMonth(cDate.getMonth() - 6))\n // // this.utilService.setTrace(`# B T ${rDate.toLocaleDateString('en-GB')}<=${this.translateService.instant(`NEW_QUERY.POPULATION.${Object.keys(pItem)}`)}(days)`);\n // // this.utilService.setTrace(`>A< ACTUALISE >I< ${this.ipn} >O< @1@`);\n // this.utilService.setTrace(`>A< svc_objsave`);\n // this.utilService.setTrace(`>I< ${sVal[0]}`);\n // this.utilService.setTrace(`>O<`);\n // this.utilService.setTrace(`#H ${moment.utc().format(\"HH:mm:ss\")}`);\n // } else if (Object.values(pItem).includes(\"9\")) {\n // const rDate = new Date(cDate.setMonth(cDate.getMonth() - 9))\n // // this.utilService.setTrace(`# B T ${rDate.toLocaleDateString('en-GB')}<=${this.translateService.instant(`NEW_QUERY.POPULATION.${Object.keys(pItem)}`)}(days)`);\n // // this.utilService.setTrace(`>A< ACTUALISE >I< ${this.ipn} >O< @1@`);\n // this.utilService.setTrace(`>A< svc_objsave`);\n // this.utilService.setTrace(`>I< ${sVal[0]}`);\n // this.utilService.setTrace(`>O<`);\n // this.utilService.setTrace(`#H ${moment.utc().format(\"HH:mm:ss\")}`);\n // } else {\n // const rDate = new Date(cDate.setMonth(cDate.getMonth() - 12))\n // // this.utilService.setTrace(`# B T ${rDate.toLocaleDateString('en-GB')}<=${this.translateService.instant(`NEW_QUERY.POPULATION.${Object.keys(pItem)}`)}(days)`);\n // // this.utilService.setTrace(`>A< ACTUALISE >I< ${this.ipn} >O< @1@`);\n // this.utilService.setTrace(`>A< svc_objsave`);\n // this.utilService.setTrace(`>I< ${sVal[0]}`);\n // this.utilService.setTrace(`>O<`);\n // this.utilService.setTrace(`#H ${moment.utc().format(\"HH:mm:ss\")}`);\n // }\n // } else {\n // // this.utilService.setTrace(`# B T ${this.translateService.instant(`NEW_QUERY.POPULATION.${Object.keys(pItem)}`)}=[${Object.values(pItem)}]`);\n // }\n // }\n // }\n\n if (this.previewData.characterList) {\n // this.utilService.setTrace(`>A< ACTUALISE >I< ${this.ipn} >O< @1@`);\n this.utilService.setTrace(`>A< svc_xeq`);\n this.utilService.setTrace(`>I< ${sVal[1]}`);\n this.utilService.setTrace(`>O< un100000@${outputPops}@`.replace('un100000', 'un10000' + (Number(traceCount) - 2).toString()));\n this.utilService.setTrace(`#CPreReq.Executer`);\n this.utilService.setTrace(`#Condition:`);\n for (let index = 1; index < 4; index++) {\n const element = this.previewData.characterList['characterListType' + index];\n let indexCount = 0;\n for (const key of Object.keys(element)) {\n for (const item of element[key]) {\n if (indexCount === 0) {\n this.utilService.setTrace(`# B ${item.sauf ? 'S' : 'T'} ${item.name}=(${item.value})`);\n } else {\n this.utilService.setTrace(`# ${item.sauf ? 'S' : 'T'} ${item.name}=(${item.value})`);\n }\n // console.log('item', item);\n indexCount = indexCount + 1;\n }\n }\n if (index === 3) {\n // this.utilService.setTrace(`>A< ACTUALISE >I< ${this.ipn} >O< @1@`);\n this.utilService.setTrace(`#H ${moment.utc().format(\"HH:mm:ss\")}`);\n this.utilService.setTrace(`>A< svc_objsave`);\n this.utilService.setTrace(`>I< ${sVal[2]}`);\n this.utilService.setTrace(`>O<`);\n // this.utilService.setTrace(`>A< ACTUALISE >I< ${this.ipn} >O< @1@`);\n this.utilService.setTrace(`#H ${moment.utc().format(\"HH:mm:ss\")}`);\n this.utilService.setTrace(`>A< svc_xeq`);\n this.utilService.setTrace(`>I< ${sVal[3]}`);\n this.utilService.setTrace(`>O< un100001@${outputTotalRows}@`.replace('un100001', 'un10000' + (Number(traceCount) - 1).toString()));\n this.utilService.setTrace(`#CReq.Executer`);\n this.utilService.setTrace(`#Condition:`);\n this.utilService.setTrace(`#H ${moment.utc().format(\"HH:mm:ss\")}`);\n // this.utilService.setTrace(`>A< ACTUALISE >I< ${this.ipn} >O< @1@`);\n this.utilService.setTrace(`>A< svc_objsave`);\n this.utilService.setTrace(`>I< ${sVal[4]}`);\n this.utilService.setTrace(`>O<`);\n this.utilService.setTrace(`#Groupby:`);\n }\n }\n }\n\n if (this.previewData.group) {\n for (let index = 0; index < this.previewData.group.length; index++) {\n const element = this.previewData.group[index];\n this.utilService.setTrace(`# ${element.name}`);\n if (index === this.previewData.group.length - 1) {\n // this.utilService.setTrace(`>A< ACTUALISE >I< ${this.ipn} >O< @1@`);\n this.utilService.setTrace(`#H ${moment.utc().format(\"HH:mm:ss\")}`);\n this.utilService.setTrace(`>A< svc_objsave`);\n this.utilService.setTrace(`>I< ${sVal[5]}`);\n this.utilService.setTrace(`>O<`);\n this.utilService.setTrace(`#H ${moment.utc().format(\"HH:mm:ss\")}`);\n // this.utilService.setTrace(`>A< ACTUALISE >I< ${this.ipn} >O< @1@`);\n this.utilService.setTrace(`>A< svc_xeq`);\n this.utilService.setTrace(`>I< ${sVal[6]}`);\n // this.utilService.setTrace(`>A< ACTUALISE >I< ${this.ipn} >O< @1@`);\n }\n }\n\n }\n }\n\n loadDataExecution(queryParamValue, pagination, randonValue) {\n let queryParam = queryParamValue;\n const traceCount = sessionStorage.getItem('traceCount');\n if (this.num > 0) {\n queryParam = { \"inputLists\": `${randonValue}`.split('\\n'), \"region\": this.getFavoriteRegion() };\n }\n // this.utilService.setTrace('results-lines');\n // this.utilService.setTrace(queryParam);\n // console.log(\"this.executeQuery\", this.executeQuery);\n this.apiService.getExecuteData(queryParam).subscribe(res => {\n // console.log(\"res\", res)\n let outputHeaders;\n if (res.headers) {\n\n this.getQueryTrace(res.totalNoOfRows, res.popRows);\n // console.log('resssss', res);\n for (let index = 1; index < res.headers.length; index++) {\n const element = res.headers[index];\n if (index === 1) {\n outputHeaders = `${element.columnLabel}@${element.maxCharColNo}`;\n } else if (index === res.headers.length - 1) {\n this.utilService.setTrace(`>O< un100002@${res.totalNoOfRows}@${res.noOfOutColumns}@${outputHeaders}@${element.columnLabel}@${element.maxCharColNo}@@`.replace('un100002', 'un10000' + (Number(traceCount)).toString()));\n this.utilService.setTrace(`#H ${moment.utc().format(\"HH:mm:ss\")}`);\n } else {\n outputHeaders = `${outputHeaders}@${element.columnLabel}@${element.maxCharColNo}`;\n }\n }\n if (res.errors && res.errors[0].errorCode) {\n if (res.errors && (res.errors[0].errorCode === 502 || res.errors[0].errorCode === 504) && this.num < 30) {\n this.loadDataExecution(queryParam, pagination, randonValue);\n } else {\n // console.log(\"error\", res.errors, res.errors[0].errorMessage)\n this.blnExecErr.emit(true);\n const dialogRef = this.dialog.open(AlertConfirmationComponent, {\n disableClose: true,\n width: '550px',\n data: { 'display': res.errors[0].errorMessage, isAlert: 'true', type: \"group\" }\n });\n\n dialogRef.afterClosed().subscribe(result => {\n if (result === true) {\n }\n })\n }\n // this.toastyService.warning(this.translateService.instant(`ERROR.TECHNICAL_ERROR_EXECUTE`));\n } else if (res.popRows === 0) {\n this.toastyService.warning(this.translateService.instant(`ERROR.POP_EMPTY`));\n } else if (res.totalNoOfRows === 0) {\n this.toastyService.warning(this.translateService.instant(`ERROR.NO_ELEMENT`));\n } else {\n this.executedData = [];\n this.changeOutput(res, res.headers, res.queryResults, pagination);\n }\n }\n },\n error => {\n this.num = this.num + 1;\n // console.log(\"error error\", error, error.status);\n if (error)\n if (error.status === 502 || error.status === 504) {\n // console.log(this.num, res.errors[0]);\n if (this.num < 30) {\n this.loadDataExecution(queryParam, pagination, randonValue);\n }\n }\n });\n }\n\n changeOutput(res, headers, output, pagination) {\n let titlelabel, dataLabel;\n // debugger\n if (pagination === 0 && headers !== null && headers.length > 0) {\n this.columns = [];\n headers.forEach(item => {\n let id = item.id;\n if (item.columnLabel) {\n if (item.columnLabel.includes(this.splitChar)) {\n titlelabel = item.columnLabel.split(this.splitChar, 2)[this.getLangIndex(this.lang)];\n } else {\n titlelabel = item.columnLabel\n }\n let data = {\n 'field': titlelabel,\n 'id': item.id,\n 'width': titlelabel === 'RowNum' ? 0 : titlelabel.length + 100\n };\n /*** SONAR : Remove this conditional structure or edit its code blocks so that they're not all the same. ****/ \n // if (this.isTTB) {\n // // if (id !== `C_${this.detailGroupList.length + 1}`) {\n // this.columns.push(data);\n // // }\n // } else {\n // this.columns.push(data);\n // }\n this.columns.push(data);\n }\n });\n this.totalRows = res.totalNoOfRows;\n this.popRows = res.popRows;\n }\n if (output.length > 0) {\n let dataExecutedData = [];\n output.forEach(item => {\n let obj = {}, objArr = [];\n for (let key in item) {\n\n // if (key.includes(this.splitChar)) {\n // dataLabel = key.split(this.splitChar, 2)[this.getLangIndex(this.lang)];\n // } else {\n // dataLabel = key;\n // }\n\n /*** SONAR : Remove this conditional structure or edit its code blocks so that they're not all the same. ****/ \n // if (this.isTTB) {\n // // if (key !== `C_${this.detailGroupList.length + 1}`) {\n // objArr.push({ [key]: item[key] });\n // // }\n // } else {\n // objArr.push({ [key]: item[key] });\n // }\n objArr.push({ [key]: item[key] });\n }\n obj = Object.assign({}, objArr);\n // this.executedData = this.executedData.concat(obj);\n dataExecutedData = dataExecutedData.concat(obj);\n this.blnData.emit(dataExecutedData.length > 0 ? true : false);\n this.totalRowsData.emit(this.totalRows);\n this.resultColumns.emit(this.columns);\n })\n\n // console.log(\"this.executedData-before\", this.executedData)\n this.executedData = dataExecutedData;\n // console.log(\"this.executedData-after\", this.executedData)\n }\n if (this.currentPage === 2) {\n // if (this.totalRows > res.noOfLines) {\n this.totalRows = res.noOfLines;\n // }\n this.selectedRow = this.executedData.filter(el => {\n if (el[0].RowNum === this.secondDetailRowNo + 1) {\n return el;\n }\n })[0];\n } else {\n this.selectedRow = this.executedData.filter(el => {\n if (el[0].RowNum === this.detailRowNo + 1) {\n return el;\n }\n })[0];\n }\n // this.setDisplayedColumns();\n if (this.matTableRef) {\n this.setTableResize(this.matTableRef.nativeElement.clientWidth);\n }\n this.debounce = true;\n }\n\n getColumnValue(item) {\n setTimeout(() => {\n this.displayedColumns.forEach(val => {\n return item[val]\n });\n }, 0);\n }\n\n getFavoriteRegion() {\n if (this.region === \"Europe\") {\n return \"PIL\";\n } else {\n return \"PIM\";\n }\n }\n\n scrolled(event: any): void {\n if (!this.checkForEqualArray()) {\n const threshold = 150;\n const position = document.getElementById('scrollFrame').scrollTop + document.getElementById('scrollFrame').offsetHeight;\n const height = document.getElementById('scrollFrame').scrollHeight\n if (position > height - threshold && this.debounce) {\n this.debounce = false;\n this.pagination = 500 + this.pagination;\n if (this.pagination <= this.totalRows) {\n this.toastyService.warning(this.translateService.instant(`ERROR.CLOSE_EXECUTE`));\n }\n }\n } else {\n const threshold = 150;\n const position = document.getElementById('scrollFrame').scrollTop + document.getElementById('scrollFrame').offsetHeight;\n const height = document.getElementById('scrollFrame').scrollHeight\n if (position > height - threshold && this.debounce) {\n this.debounce = false;\n this.pagination = 500 + this.pagination;\n if (this.pagination <= this.totalRows) {\n if (this.currentPage === 1) {\n this.loadData(this.pagination);\n } else if (this.currentPage === 2) {\n this.executeFirstDetailData(this.selectedTab, this.pagination, event);\n }\n }\n }\n }\n }\n\n clickPagination(p) {\n // console.log(\"ppppppppp\", p);\n this.p = p;\n if (!this.checkForEqualArray()) {\n // const threshold = 150;\n // const position = document.getElementById('scrollFrame').scrollTop + document.getElementById('scrollFrame').offsetHeight;\n // const height = document.getElementById('scrollFrame').scrollHeight\n // if (position > height - threshold && this.debounce) {\n // this.debounce = false;\n // this.pagination = 500 + this.pagination;\n // if (this.pagination <= this.totalRows) {\n // this.toastyService.warning(this.translateService.instant(`ERROR.CLOSE_EXECUTE`));\n // }\n // }\n if ((this.p - 1) * 500 <= this.totalRows) {\n this.pagination = 500;\n this.toastyService.warning(this.translateService.instant(`ERROR.CLOSE_EXECUTE`));\n }\n } else {\n // const threshold = 150;\n // const position = document.getElementById('scrollFrame').scrollTop + document.getElementById('scrollFrame').offsetHeight;\n // const height = document.getElementById('scrollFrame').scrollHeight\n // if (position > height - threshold && this.debounce) {\n // this.debounce = false;\n // this.pagination = 500 + this.pagination;\n // if (this.pagination <= this.totalRows) {\n // if (this.currentPage === 1) {\n // this.loadData(this.pagination);\n // } else if (this.currentPage === 2) {\n // this.executeFirstDetailData(this.selectedTab, this.pagination, event);\n // }\n // }\n // }\n\n if ((this.p - 1) * 500 <= this.totalRows) {\n if (this.p === 0 || this.p === 1) {\n this.pagination = 0;\n } else {\n this.pagination = 500;\n if (this.p * 500 > this.totalRows) {\n this.pagination = this.totalRows - ((this.p - 1) * 500);\n }\n }\n // this.pagination = 500 + this.pagination;\n\n if (this.currentPage === 1) {\n this.loadData(this.pagination);\n } else if (this.currentPage === 2) {\n // console.log(\"this.pagination\", this.pagination)\n this.executeFirstDetailData(this.selectedTab, this.pagination, event);\n }\n }\n }\n }\n\n getSelectedTab(item, list, event) {\n this.p = 1;\n if (!this.checkForEqualArray()) {\n this.toastyService.warning(this.translateService.instant(`ERROR.CLOSE_EXECUTE`));\n } else {\n this.selectedTab = item;\n // this.quantity = item.Qte;\n if (this.selectedRow === undefined && item !== 'global') {\n this.toastyService.warning(this.translateService.instant(`ERROR.SELECT_ROWS`));\n } else {\n this.resetValues();\n if (list === 'vehicle-list') {\n this.currentPage = 2;\n this.executeFirstDetailData(item, 0, event);\n } else if (list === 'vehicle-detail') {\n this.currentPage = 3;\n this.executeSecondDetailPage(item);\n } else if (list === 'vehicle') {\n this.currentPage = 1;\n this.selectedTab = 'global';\n this.loadData(0);\n }\n this.currentResultPage.emit(this.currentPage);\n }\n }\n }\n\n // getCharacterLength(field) {\n // matTooltip=\"{{getCharacterLength(data[i][column.field]) ? data[i][column.field] : ''}}\" [ngClass]=\"{'textOverflow' : getCharacterLength(data[i][column.field])}\"\n // if (field.length > 30) {\n // return true;\n // } else {\n // return false;\n // }\n // }\n\n executeFirstDetailData(item, pagination, event) {\n this.num = 0;\n event.stopPropagation();\n let get = `GET@${this.ipn}@${this.selectedTable}@un100002@0@1@0@`;\n let queryFill = `FIL@${this.ipn}@${this.selectedTable}@un100002@${this.detailRowNo}@${this.ipn}.AFF@`;\n // let detailGet = `GET@${this.ipn}@${this.selectedTable}@un100003@${this.executedData.length}@${pagination === 0 ? 0 : 500}@1@`\n let detailGet = `GET@${this.ipn}@${this.selectedTable}@un100003@${(this.p - 1) * 500}@${pagination === 0 ? 0 : pagination}@1@`\n const timeStamp = Date.now();\n const randomNumber = Math.floor(100000 + Math.random() * 900000);\n let queryParam = { \"inputLists\": `${timeStamp}-${randomNumber}\\n${this.executeQuery}\\n${get}${this.detailExecute}\\n${queryFill}\\n${detailGet}`.split('\\n'), \"region\": this.getFavoriteRegion() };\n this.outputGetEvent.emit(`${get}${this.detailExecute}\\n${queryFill}\\n${detailGet}`);\n this.num = 0;\n this.executeFirstDetailDataExecution(queryParam, item, `${timeStamp}-${randomNumber}`);\n }\n\n executeFirstDetailDataExecution(queryParamValue, item, randonValue) {\n let queryParam = queryParamValue;\n if (this.num > 0) {\n queryParam = { \"inputLists\": `${randonValue}`.split('\\n'), \"region\": this.getFavoriteRegion() };\n }\n // this.utilService.setTrace('results-vehicle-lists');\n // this.utilService.setTrace(queryParam);\n this.apiService.getDetailExecuteData(queryParam).subscribe(res => {\n if (res.errors && res.errors[0].errorCode) {\n if ((res.errors[0].errorCode === 502 || res.errors[0].errorCode === 504) && this.num < 30) {\n this.executeFirstDetailDataExecution(queryParamValue, item, randonValue);\n } else {\n // console.log(\"error\", res.errors, res.errors[0].errorMessage)\n this.blnExecErr.emit(true);\n const dialogRef = this.dialog.open(AlertConfirmationComponent, {\n disableClose: true,\n width: '550px',\n data: { 'display': res.errors[0].errorMessage, isAlert: 'true', type: \"group\" }\n });\n\n dialogRef.afterClosed().subscribe(result => {\n if (result === true) {\n }\n })\n }\n } else {\n this.executedData = [];\n this.changeOutput(res, res.headers, res.vehicleLists, 0);\n this.currentPage = 2;\n this.selectedTab = item;\n }\n },\n error => {\n this.num = this.num + 1;\n if (error)\n if (error.status === 502 || error.status === 504) {\n // console.log(this.num, res.errors[0]);\n if (this.num < 30) {\n this.executeFirstDetailDataExecution(queryParamValue, item, randonValue);\n }\n }\n });\n }\n\n executeSecondDetailPage(item) {\n this.num = 0;\n let detailQueryParam = this.getDataBasedOnTable(this.secondDetailRowNo);\n let queryFill = `FIL@${this.ipn}@${this.selectedTable}@un100002@${this.detailRowNo}@${this.ipn}.AFF@`;\n let detailGet = `GET@${this.ipn}@${this.selectedTable}@un100003@0@0@0@`;\n const timeStamp = Date.now();\n const randomNumber = Math.floor(100000 + Math.random() * 900000);\n let queryParam = { \"inputLists\": `${timeStamp}-${randomNumber}\\n${this.executeQuery}${this.detailExecute}\\n${queryFill}\\n${detailGet}\\n${detailQueryParam}`.split('\\n'), \"region\": this.getFavoriteRegion() };\n this.outputGetEvent.emit(`${this.detailExecute.replace('\\n', '')}\\n${queryFill}\\n${detailGet}\\n${detailQueryParam}`);\n this.num = 0;\n this.executeSecondDetailPageExecution(queryParam, item, `${timeStamp}-${randomNumber}`);\n }\n\n executeSecondDetailPageExecution(queryParamValue, item, randonValue) {\n let queryParam = queryParamValue;\n if (this.num > 0) {\n queryParam = { \"inputLists\": `${randonValue}`.split('\\n'), \"region\": this.getFavoriteRegion() };\n }\n this.num = this.num + 1;\n // this.utilService.setTrace('results-vehicle-details');\n // this.utilService.setTrace(queryParam);\n this.apiService.getVehicleDetailExecuteData(queryParam).subscribe(res => {\n if (res.errors && res.errors[0].errorCode) {\n if (res.errors && (res.errors[0].errorCode === 502 || res.errors[0].errorCode === 504) && this.num < 30) {\n this.executeSecondDetailPageExecution(queryParam, item, randonValue);\n } else {\n // console.log(\"error\", res.errors, res.errors[0].errorMessage)\n this.blnExecErr.emit(true);\n const dialogRef = this.dialog.open(AlertConfirmationComponent, {\n disableClose: true,\n width: '550px',\n data: { 'display': res.errors[0].errorMessage, isAlert: 'true', type: \"group\" }\n });\n\n dialogRef.afterClosed().subscribe(result => {\n if (result === true) {\n }\n })\n }\n } else {\n this.commonCriteria = this.changeData(res, res.vehicleDetails[0], 0);\n this.initialCriteria = this.changeData(res, res.vehicleDetails[1], 1);\n this.semiClearCurrent = this.changeData(res, res.vehicleDetails[2], 2);\n this.semiClearInitial = this.changeData(res, res.vehicleDetails[3], 3);\n let data = {\n 'commonCriteria': this.commonCriteria,\n 'initialCriteria': this.initialCriteria,\n 'semiClearCurrent': this.semiClearCurrent,\n 'semiClearInitial': this.semiClearCurrent\n }\n this.emitSecondPageData.emit(data);\n // this.makeColorChanges();\n this.currentPage = 3;\n this.selectedTab = item;\n }\n },\n error => {\n this.num = this.num + 1;\n if (error)\n if (error.status === 502 || error.status === 504) {\n // console.log(this.num, res.errors[0]);\n if (this.num < 30) {\n this.executeSecondDetailPageExecution(queryParam, item, randonValue);\n }\n }\n });\n }\n\n changeData(res, array, num) {\n let perChunk = 10;\n let result = [];\n if (array.length) {\n result = array.reduce((resultArray, item, index) => {\n const chunkIndex = Math.floor(index / perChunk)\n\n if (!resultArray[chunkIndex]) {\n resultArray[chunkIndex] = []\n }\n let data = {\n 'name': item,\n 'isEqual': false\n }\n let arr;\n if (num === 0) {\n arr = res.vehicleDetails[1];\n } else if (num === 1) {\n arr = res.vehicleDetails[0];\n } else if (num === 2) {\n arr = res.vehicleDetails[3];\n } else {\n arr = res.vehicleDetails[2]\n }\n let changedData = this.makeColorChanges(data, arr);\n resultArray[chunkIndex].push(changedData);\n\n return resultArray\n }, []);\n }\n return result;\n }\n\n makeColorChanges(data, arr) {\n for (let i = 0; i < arr.length; i++) {\n if (arr[i] === data.name) {\n return data;\n }\n }\n data.isEqual = true;\n return data;\n }\n\n getDataBasedOnTable(rowNo) {\n let queryParam;\n if (this.selectedTable === 'BCV' || this.selectedTable === 'VEH') {\n queryParam = `VEH@${this.ipn}@${this.selectedTable}@un100003@${rowNo}@I_DefIndus@`;\n queryParam += \"\\n\";\n queryParam += `VEH@${this.ipn}@${this.selectedTable}@un100003@${rowNo}@I_DefIndusIni@`;\n queryParam += \"\\n\";\n queryParam += `VEH@${this.ipn}@${this.selectedTable}@un100003@${rowNo}@C_DivCom@`;\n queryParam += \"\\n\";\n queryParam += `VEH@${this.ipn}@${this.selectedTable}@un100003@${rowNo}@C_DivComIni@`;\n } else if (this.selectedTable === 'CDE') {\n queryParam = `VEH@${this.ipn}@${this.selectedTable}@un100003@${rowNo}@I_OptionSCR@`\n } else if (this.selectedTable === 'CARNETS' || this.selectedTable === 'PDFV' || this.selectedTable === 'PDFT') {\n queryParam = `VEH@${this.ipn}@${this.selectedTable}@un100003@${rowNo}@I_DefIndus@`;\n }\n return queryParam;\n }\n\n // nextPage(type) {\n // if (!this.checkForEqualArray()) {\n // this.toastyService.warning(this.translateService.instant(`ERROR.CLOSE_EXECUTE`));\n // } else {\n // this.resetValues();\n // if (type === 'vehicle-list') {\n // this.currentPage = 2;\n // this.executeFirstDetailData(0);\n // } else if (type === 'vehicle-detail') {\n // this.currentPage = 3;\n // let row = this.selectedRow !== undefined ? this.selectedRow.RowNum === 0 ? 0 : this.selectedRow.RowNum - 1 : 0;\n // this.executeSecondDetailPage(row);\n // }\n // }\n // }\n\n // prevPage(type) {\n // if (!this.checkForEqualArray()) {\n // this.toastyService.warning(this.translateService.instant(`ERROR.CLOSE_EXECUTE`));\n // } else {\n // this.resetValues();\n // if (type === 'vehicle-list') {\n // this.currentPage = 2;\n // this.executeFirstDetailData(0);\n // } else if (type === 'vehicle') {\n // this.currentPage = 1;\n // this.loadData(0);\n // }\n // }\n // }\n\n moveRight() {\n if (!this.checkForEqualArray()) {\n this.toastyService.warning(this.translateService.instant(`ERROR.CLOSE_EXECUTE`));\n } else {\n let noVal = this.secondDetailRowNo + 1;\n if (noVal >= this.quantity) {\n this.toastyService.warning(this.translateService.instant(`ERROR.LAST_VEHICLE`));\n } else {\n this.secondDetailRowNo = this.secondDetailRowNo + 1 >= this.quantity ? this.quantity : this.secondDetailRowNo + 1;\n this.executeSecondDetailPage(this.selectedTab);\n }\n }\n }\n\n moveLeft() {\n if (!this.checkForEqualArray()) {\n this.toastyService.warning(this.translateService.instant(`ERROR.CLOSE_EXECUTE`));\n } else {\n let noVal = this.secondDetailRowNo - 1;\n if (noVal < 0) {\n this.toastyService.warning(this.translateService.instant(`ERROR.FIRST_VEHICLE`));\n } else {\n this.secondDetailRowNo = this.secondDetailRowNo - 1 < 0 ? 0 : this.secondDetailRowNo - 1;\n this.executeSecondDetailPage(this.selectedTab);\n }\n }\n }\n\n // setStep(index: number) {\n // this.step = index;\n // }\n\n resetValues() {\n this.columns = [];\n this.executedData = [];\n this.displayedColumns = [];\n }\n\n checkForEqualArray() {\n this.execute = true;\n for (let i = 0; i <= Object.keys(this.characterList.characterListType1).length - 1; i++) {\n if (!this.checkArrayEqual(this.detailCharacterList.characterListType1['group' + i], this.characterList.characterListType1['group' + i])) {\n this.execute = false;\n }\n }\n for (let i = 0; i <= Object.keys(this.characterList.characterListType2).length - 1; i++) {\n if (!this.checkArrayEqual(this.detailCharacterList.characterListType2['group' + i], this.characterList.characterListType2['group' + i])) {\n this.execute = false;\n }\n }\n for (let i = 0; i <= Object.keys(this.characterList.characterListType3).length - 1; i++) {\n if (!this.checkArrayEqual(this.detailCharacterList.characterListType3['group' + i], this.characterList.characterListType3['group' + i])) {\n this.execute = false;\n }\n }\n if (!this.checkArrayEqual(this.detailGroupList, this.groupList)) {\n this.execute = false;\n }\n if (!this.checkArrayEqual(this.detailVueList, this.vueList)) {\n this.execute = false;\n }\n return this.execute;\n }\n\n checkArrayEqual(a1, a2) {\n const objectsEqual = (o1, o2) =>\n typeof o1 === 'object' && Object.keys(o1).length > 0\n ? Object.keys(o1).length === Object.keys(o2).length\n && Object.keys(o1).every(p => objectsEqual(o1[p], o2[p]))\n : o1 === o2;\n\n const arraysEqual = a1 !== undefined ? a1.length === a2.length && a1.every((o, idx) => objectsEqual(o, a2[idx])) : false;\n\n return arraysEqual;\n }\n\n onScrollingFinished() {\n // this.loadDataPagination(\"test\");\n }\n\n loadDataPagination() {\n if (this.columns.length > 60) {\n const position = document.getElementById('scrollFrame').scrollTop + document.getElementById('scrollFrame').offsetHeight;\n const height = document.getElementById('scrollFrame').scrollHeight;\n const xposition = document.getElementById('scrollFrame').scrollLeft + document.getElementById('scrollFrame').offsetWidth;\n const xwidth = document.getElementById('scrollFrame').scrollWidth;\n console.log(\"asdasdasdasd\", position, height, xposition, xwidth);\n if (height <= position) {\n // if (position >= height) {\n // if (this.displayedData.length >= this.executedData.length) {\n // return false;\n // }\n const remainingLength = Math.min(20, this.executedData.length - this.displayedData.length);\n this.displayedData.push(...this.executedData.slice(this.displayedData.length, this.displayedData.length + remainingLength));\n return true;\n // }\n }\n if (xwidth <= xposition) {\n // if (position >= height) {\n // if (this.displayedData.length >= this.executedData.length) {\n // return false;\n // }\n const remainingLength = Math.min(20, this.columns.length - this.displayedColumns.length);\n this.displayedColumns.push(...this.columns.slice(this.displayedColumns.length, this.displayedColumns.length + remainingLength));\n return true;\n // }\n }\n }\n }\n\n // @HostListener('scroll', ['$event'])\n // scrollHandler(event) {\n // console.debug(\"Scroll Event\");\n // }\n}\n","import { Directive, Output, EventEmitter, HostListener } from '@angular/core';\n\n@Directive({\n selector: '[scrollTracker]'\n})\nexport class ScrollTrackerDirective {\n @Output() scrollingFinished = new EventEmitter();\n\n emitted = false;\n\n @HostListener(\"scroll\", [])\n onScroll(): void {\n if ((window.innerHeight + window.scrollY) >= document.body.offsetHeight && !this.emitted) {\n this.emitted = true;\n this.scrollingFinished.emit();\n } else if ((window.innerHeight + window.scrollY) < document.body.offsetHeight) {\n this.emitted = false;\n }\n }\n}","export default \".exportDialog .dialog-title {\\n padding: 0px 15px 0px 0px;\\n color: #000000;\\n font-family: Roboto, \\\"Helvetica Neue\\\", sans-serif;\\n font-size: 15px;\\n font-weight: 600;\\n line-height: 17px;\\n width: 146px;\\n text-align: left;\\n}\\n.exportDialog .radio-font {\\n color: #000000;\\n font-family: Roboto, \\\"Helvetica Neue\\\", sans-serif;\\n font-size: 12px;\\n font-weight: 400;\\n line-height: 17px;\\n text-align: left;\\n}\\n.exportDialog .text {\\n display: flex;\\n flex-direction: column;\\n}\\n.exportDialog .text .mat-radio-button {\\n margin: 3px;\\n}\\n.exportDialog .span-font {\\n color: #000000;\\n font-family: Roboto, \\\"Helvetica Neue\\\", sans-serif;\\n font-size: 13px;\\n font-weight: 400;\\n line-height: 17px;\\n text-align: left;\\n}\\n.exportDialog .span-font-label-title {\\n color: #000000;\\n font-family: Roboto, \\\"Helvetica Neue\\\", sans-serif;\\n font-size: 14px;\\n font-weight: 500;\\n line-height: 20px;\\n text-align: left;\\n}\\n.exportDialog .text-font {\\n width: 99%;\\n color: #000000;\\n font-family: Roboto, \\\"Helvetica Neue\\\", sans-serif;\\n font-size: 13px;\\n font-weight: 400;\\n line-height: 20px;\\n text-align: left;\\n}\\n.exportDialog .text-box-border {\\n border: 1px solid #cccccc;\\n border-radius: 3px;\\n}\\n.exportDialog .button-style {\\n width: 82px;\\n height: 36px;\\n font-family: Roboto, \\\"Helvetica Neue\\\", sans-serif;\\n font-size: 13px;\\n font-weight: 500;\\n text-align: center;\\n border: 0px solid;\\n background-color: #FFCC33;\\n padding: 0 !important;\\n}\\n.exportDialog .file-types-list-box {\\n border: 1px solid #cccccc;\\n border-radius: 3px;\\n line-height: 20px;\\n}\\n.exportDialog .close-icon {\\n cursor: pointer;\\n float: right;\\n}\\n.exportDialog .row {\\n display: inline-flex;\\n width: 100%;\\n}\\n.exportDialog .column1 {\\n width: 58%;\\n margin-right: 2%;\\n}\\n.exportDialog .column2 {\\n width: 42%;\\n}\\n.exportDialog .curly_bracket {\\n height: 25%;\\n}\\n.exportDialog .row1 {\\n display: inline-flex;\\n width: 100%;\\n}\\n.exportDialog .bracket-column1 {\\n width: 15%;\\n margin-top: 30%;\\n}\\n.exportDialog .bracket-column2 {\\n width: 50%;\\n margin-top: 25%;\\n}\\n.exportDialog .bracket-column3 {\\n width: 35%;\\n margin-top: 40%;\\n}\\n.cls-displaynone {\\n display: none !important;\\n}\\n/*# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi91c3Ivc3JjL3NyYy9hcHAvY29tcG9uZW50L3F1ZXJ5L2V4cG9ydC1maWxlL2V4cG9ydC1maWxlLmNvbXBvbmVudC5zY3NzIiwic3JjL2FwcC9jb21wb25lbnQvcXVlcnkvZXhwb3J0LWZpbGUvZXhwb3J0LWZpbGUuY29tcG9uZW50LnNjc3MiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQ0k7RUFDSSx5QkFBQTtFQUNBLGNBQUE7RUFDQSxpREFBQTtFQUNBLGVBQUE7RUFDQSxnQkFBQTtFQUNBLGlCQUFBO0VBQ0EsWUFBQTtFQUNBLGdCQUFBO0FDQVI7QURHSTtFQUNJLGNBQUE7RUFDQSxpREFBQTtFQUNBLGVBQUE7RUFDQSxnQkFBQTtFQUNBLGlCQUFBO0VBQ0EsZ0JBQUE7QUNEUjtBRElJO0VBQ0ksYUFBQTtFQUNBLHNCQUFBO0FDRlI7QURHUTtFQUNJLFdBQUE7QUNEWjtBRElJO0VBQ0ksY0FBQTtFQUNBLGlEQUFBO0VBQ0EsZUFBQTtFQUNBLGdCQUFBO0VBQ0EsaUJBQUE7RUFFQSxnQkFBQTtBQ0hSO0FETUk7RUFDSSxjQUFBO0VBQ0EsaURBQUE7RUFDQSxlQUFBO0VBQ0EsZ0JBQUE7RUFDQSxpQkFBQTtFQUVBLGdCQUFBO0FDTFI7QURRSTtFQUNJLFVBQUE7RUFDQSxjQUFBO0VBQ0EsaURBQUE7RUFDQSxlQUFBO0VBQ0EsZ0JBQUE7RUFDQSxpQkFBQTtFQUVBLGdCQUFBO0FDUFI7QURVSTtFQUNJLHlCQUFBO0VBQ0Esa0JBQUE7QUNSUjtBRFdJO0VBQ0ksV0FBQTtFQUNBLFlBQUE7RUFDQSxpREFBQTtFQUNBLGVBQUE7RUFDQSxnQkFBQTtFQUNBLGtCQUFBO0VBQ0EsaUJBQUE7RUFDQSx5QkFBQTtFQUNBLHFCQUFBO0FDVFI7QURZSTtFQUNJLHlCQUFBO0VBQ0Esa0JBQUE7RUFDQSxpQkFBQTtBQ1ZSO0FEYUk7RUFDSSxlQUFBO0VBQ0EsWUFBQTtBQ1hSO0FEYUk7RUFDSSxvQkFBQTtFQUNBLFdBQUE7QUNYUjtBRGFJO0VBQ0ksVUFBQTtFQUNBLGdCQUFBO0FDWFI7QURjSTtFQUNJLFVBQUE7QUNaUjtBRGNJO0VBQ0ksV0FBQTtBQ1pSO0FEY0k7RUFDSSxvQkFBQTtFQUNBLFdBQUE7QUNaUjtBRGNJO0VBQ0ksVUFBQTtFQUNBLGVBQUE7QUNaUjtBRGVJO0VBQ0ksVUFBQTtFQUNBLGVBQUE7QUNiUjtBRGVJO0VBQ0ksVUFBQTtFQUNBLGVBQUE7QUNiUjtBRGdCQTtFQUNJLHdCQUFBO0FDYkoiLCJmaWxlIjoic3JjL2FwcC9jb21wb25lbnQvcXVlcnkvZXhwb3J0LWZpbGUvZXhwb3J0LWZpbGUuY29tcG9uZW50LnNjc3MiLCJzb3VyY2VzQ29udGVudCI6WyIuZXhwb3J0RGlhbG9ne1xuICAgIC5kaWFsb2ctdGl0bGV7XG4gICAgICAgIHBhZGRpbmc6IDBweCAxNXB4IDBweCAwcHg7XG4gICAgICAgIGNvbG9yOiAjMDAwMDAwO1xuICAgICAgICBmb250LWZhbWlseTogUm9ib3RvLFwiSGVsdmV0aWNhIE5ldWVcIixzYW5zLXNlcmlmO1xuICAgICAgICBmb250LXNpemU6IDE1cHg7XG4gICAgICAgIGZvbnQtd2VpZ2h0OiA2MDA7XG4gICAgICAgIGxpbmUtaGVpZ2h0OiAxN3B4O1xuICAgICAgICB3aWR0aDogMTQ2cHg7XG4gICAgICAgIHRleHQtYWxpZ246IGxlZnQ7XG4gICAgfVxuICAgIFxuICAgIC5yYWRpby1mb250e1xuICAgICAgICBjb2xvcjogIzAwMDAwMDtcbiAgICAgICAgZm9udC1mYW1pbHk6IFJvYm90bywgXCJIZWx2ZXRpY2EgTmV1ZVwiLCBzYW5zLXNlcmlmO1xuICAgICAgICBmb250LXNpemU6IDEycHg7XG4gICAgICAgIGZvbnQtd2VpZ2h0OiA0MDA7XG4gICAgICAgIGxpbmUtaGVpZ2h0OiAxN3B4O1xuICAgICAgICB0ZXh0LWFsaWduOiBsZWZ0O1xuICAgIH1cblxuICAgIC50ZXh0IHtcbiAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcbiAgICAgICAgLm1hdC1yYWRpby1idXR0b24ge1xuICAgICAgICAgICAgbWFyZ2luOiAzcHg7XG4gICAgICAgIH1cbiAgICB9XG4gICAgLnNwYW4tZm9udHtcbiAgICAgICAgY29sb3I6ICMwMDAwMDA7XG4gICAgICAgIGZvbnQtZmFtaWx5OiBSb2JvdG8sXCJIZWx2ZXRpY2EgTmV1ZVwiLHNhbnMtc2VyaWY7XG4gICAgICAgIGZvbnQtc2l6ZTogMTNweDtcbiAgICAgICAgZm9udC13ZWlnaHQ6IDQwMDtcbiAgICAgICAgbGluZS1oZWlnaHQ6IDE3cHg7XG4gICAgICAgIC8vIHdpZHRoOiAxNDVweDtcbiAgICAgICAgdGV4dC1hbGlnbjogbGVmdDtcbiAgICB9XG5cbiAgICAuc3Bhbi1mb250LWxhYmVsLXRpdGxle1xuICAgICAgICBjb2xvcjogIzAwMDAwMDtcbiAgICAgICAgZm9udC1mYW1pbHk6IFJvYm90byxcIkhlbHZldGljYSBOZXVlXCIsc2Fucy1zZXJpZjtcbiAgICAgICAgZm9udC1zaXplOiAxNHB4O1xuICAgICAgICBmb250LXdlaWdodDogNTAwO1xuICAgICAgICBsaW5lLWhlaWdodDogMjBweDtcbiAgICAgICAgLy8gd2lkdGg6IDE0NXB4O1xuICAgICAgICB0ZXh0LWFsaWduOiBsZWZ0O1xuICAgIH1cbiAgICBcbiAgICAudGV4dC1mb250e1xuICAgICAgICB3aWR0aDogOTklO1xuICAgICAgICBjb2xvcjogIzAwMDAwMDtcbiAgICAgICAgZm9udC1mYW1pbHk6IFJvYm90byxcIkhlbHZldGljYSBOZXVlXCIsc2Fucy1zZXJpZjtcbiAgICAgICAgZm9udC1zaXplOiAxM3B4O1xuICAgICAgICBmb250LXdlaWdodDogNDAwO1xuICAgICAgICBsaW5lLWhlaWdodDogMjBweDtcbiAgICAgICAgLy8gd2lkdGg6IDE0NXB4O1xuICAgICAgICB0ZXh0LWFsaWduOiBsZWZ0O1xuICAgIH1cblxuICAgIC50ZXh0LWJveC1ib3JkZXJ7XG4gICAgICAgIGJvcmRlcjogMXB4IHNvbGlkICNjY2NjY2M7XG4gICAgICAgIGJvcmRlci1yYWRpdXM6IDNweDtcbiAgICB9XG5cbiAgICAuYnV0dG9uLXN0eWxle1xuICAgICAgICB3aWR0aDogODJweDsgXG4gICAgICAgIGhlaWdodDogMzZweDsgXG4gICAgICAgIGZvbnQtZmFtaWx5OiBSb2JvdG8sXCJIZWx2ZXRpY2EgTmV1ZVwiLHNhbnMtc2VyaWY7XG4gICAgICAgIGZvbnQtc2l6ZTogMTNweDtcbiAgICAgICAgZm9udC13ZWlnaHQ6IDUwMDtcbiAgICAgICAgdGV4dC1hbGlnbjogY2VudGVyOyBcbiAgICAgICAgYm9yZGVyOiAwcHggc29saWQ7IFxuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjRkZDQzMzO1xuICAgICAgICBwYWRkaW5nOiAwICFpbXBvcnRhbnQ7XG4gICAgfVxuXG4gICAgLmZpbGUtdHlwZXMtbGlzdC1ib3h7XG4gICAgICAgIGJvcmRlcjogMXB4IHNvbGlkICNjY2NjY2M7XG4gICAgICAgIGJvcmRlci1yYWRpdXM6IDNweDtcbiAgICAgICAgbGluZS1oZWlnaHQ6IDIwcHg7XG4gICAgfVxuXG4gICAgLmNsb3NlLWljb257XG4gICAgICAgIGN1cnNvcjogcG9pbnRlcjtcbiAgICAgICAgZmxvYXQ6IHJpZ2h0O1xuICAgIH1cbiAgICAucm93IHtcbiAgICAgICAgZGlzcGxheTogaW5saW5lLWZsZXg7XG4gICAgICAgIHdpZHRoOiAxMDAlO1xuICAgIH1cbiAgICAuY29sdW1uMSB7XG4gICAgICAgIHdpZHRoOiA1OCU7XG4gICAgICAgIG1hcmdpbi1yaWdodDogMiU7XG4gICAgICAgIC8vIGFsaWduLXNlbGY6IGNlbnRlcjtcbiAgICB9XG4gICAgLmNvbHVtbjIge1xuICAgICAgICB3aWR0aDogNDIlO1xuICAgIH1cbiAgICAuY3VybHlfYnJhY2tldCB7XG4gICAgICAgIGhlaWdodDogMjUlO1xuICAgIH1cbiAgICAucm93MSB7XG4gICAgICAgIGRpc3BsYXk6IGlubGluZS1mbGV4O1xuICAgICAgICB3aWR0aDogMTAwJTtcbiAgICB9XG4gICAgLmJyYWNrZXQtY29sdW1uMSB7XG4gICAgICAgIHdpZHRoOiAxNSU7XG4gICAgICAgIG1hcmdpbi10b3A6IDMwJTtcbiAgICAgICAgLy8gYWxpZ24tc2VsZjogY2VudGVyO1xuICAgIH1cbiAgICAuYnJhY2tldC1jb2x1bW4yIHtcbiAgICAgICAgd2lkdGg6IDUwJTtcbiAgICAgICAgbWFyZ2luLXRvcDogMjUlO1xuICAgIH1cbiAgICAuYnJhY2tldC1jb2x1bW4zIHtcbiAgICAgICAgd2lkdGg6IDM1JTtcbiAgICAgICAgbWFyZ2luLXRvcDogNDAlO1xuICAgIH1cbn1cbi5jbHMtZGlzcGxheW5vbmV7XG4gICAgZGlzcGxheTpub25lICFpbXBvcnRhbnQ7XG59IiwiLmV4cG9ydERpYWxvZyAuZGlhbG9nLXRpdGxlIHtcbiAgcGFkZGluZzogMHB4IDE1cHggMHB4IDBweDtcbiAgY29sb3I6ICMwMDAwMDA7XG4gIGZvbnQtZmFtaWx5OiBSb2JvdG8sIFwiSGVsdmV0aWNhIE5ldWVcIiwgc2Fucy1zZXJpZjtcbiAgZm9udC1zaXplOiAxNXB4O1xuICBmb250LXdlaWdodDogNjAwO1xuICBsaW5lLWhlaWdodDogMTdweDtcbiAgd2lkdGg6IDE0NnB4O1xuICB0ZXh0LWFsaWduOiBsZWZ0O1xufVxuLmV4cG9ydERpYWxvZyAucmFkaW8tZm9udCB7XG4gIGNvbG9yOiAjMDAwMDAwO1xuICBmb250LWZhbWlseTogUm9ib3RvLCBcIkhlbHZldGljYSBOZXVlXCIsIHNhbnMtc2VyaWY7XG4gIGZvbnQtc2l6ZTogMTJweDtcbiAgZm9udC13ZWlnaHQ6IDQwMDtcbiAgbGluZS1oZWlnaHQ6IDE3cHg7XG4gIHRleHQtYWxpZ246IGxlZnQ7XG59XG4uZXhwb3J0RGlhbG9nIC50ZXh0IHtcbiAgZGlzcGxheTogZmxleDtcbiAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcbn1cbi5leHBvcnREaWFsb2cgLnRleHQgLm1hdC1yYWRpby1idXR0b24ge1xuICBtYXJnaW46IDNweDtcbn1cbi5leHBvcnREaWFsb2cgLnNwYW4tZm9udCB7XG4gIGNvbG9yOiAjMDAwMDAwO1xuICBmb250LWZhbWlseTogUm9ib3RvLCBcIkhlbHZldGljYSBOZXVlXCIsIHNhbnMtc2VyaWY7XG4gIGZvbnQtc2l6ZTogMTNweDtcbiAgZm9udC13ZWlnaHQ6IDQwMDtcbiAgbGluZS1oZWlnaHQ6IDE3cHg7XG4gIHRleHQtYWxpZ246IGxlZnQ7XG59XG4uZXhwb3J0RGlhbG9nIC5zcGFuLWZvbnQtbGFiZWwtdGl0bGUge1xuICBjb2xvcjogIzAwMDAwMDtcbiAgZm9udC1mYW1pbHk6IFJvYm90bywgXCJIZWx2ZXRpY2EgTmV1ZVwiLCBzYW5zLXNlcmlmO1xuICBmb250LXNpemU6IDE0cHg7XG4gIGZvbnQtd2VpZ2h0OiA1MDA7XG4gIGxpbmUtaGVpZ2h0OiAyMHB4O1xuICB0ZXh0LWFsaWduOiBsZWZ0O1xufVxuLmV4cG9ydERpYWxvZyAudGV4dC1mb250IHtcbiAgd2lkdGg6IDk5JTtcbiAgY29sb3I6ICMwMDAwMDA7XG4gIGZvbnQtZmFtaWx5OiBSb2JvdG8sIFwiSGVsdmV0aWNhIE5ldWVcIiwgc2Fucy1zZXJpZjtcbiAgZm9udC1zaXplOiAxM3B4O1xuICBmb250LXdlaWdodDogNDAwO1xuICBsaW5lLWhlaWdodDogMjBweDtcbiAgdGV4dC1hbGlnbjogbGVmdDtcbn1cbi5leHBvcnREaWFsb2cgLnRleHQtYm94LWJvcmRlciB7XG4gIGJvcmRlcjogMXB4IHNvbGlkICNjY2NjY2M7XG4gIGJvcmRlci1yYWRpdXM6IDNweDtcbn1cbi5leHBvcnREaWFsb2cgLmJ1dHRvbi1zdHlsZSB7XG4gIHdpZHRoOiA4MnB4O1xuICBoZWlnaHQ6IDM2cHg7XG4gIGZvbnQtZmFtaWx5OiBSb2JvdG8sIFwiSGVsdmV0aWNhIE5ldWVcIiwgc2Fucy1zZXJpZjtcbiAgZm9udC1zaXplOiAxM3B4O1xuICBmb250LXdlaWdodDogNTAwO1xuICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gIGJvcmRlcjogMHB4IHNvbGlkO1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjRkZDQzMzO1xuICBwYWRkaW5nOiAwICFpbXBvcnRhbnQ7XG59XG4uZXhwb3J0RGlhbG9nIC5maWxlLXR5cGVzLWxpc3QtYm94IHtcbiAgYm9yZGVyOiAxcHggc29saWQgI2NjY2NjYztcbiAgYm9yZGVyLXJhZGl1czogM3B4O1xuICBsaW5lLWhlaWdodDogMjBweDtcbn1cbi5leHBvcnREaWFsb2cgLmNsb3NlLWljb24ge1xuICBjdXJzb3I6IHBvaW50ZXI7XG4gIGZsb2F0OiByaWdodDtcbn1cbi5leHBvcnREaWFsb2cgLnJvdyB7XG4gIGRpc3BsYXk6IGlubGluZS1mbGV4O1xuICB3aWR0aDogMTAwJTtcbn1cbi5leHBvcnREaWFsb2cgLmNvbHVtbjEge1xuICB3aWR0aDogNTglO1xuICBtYXJnaW4tcmlnaHQ6IDIlO1xufVxuLmV4cG9ydERpYWxvZyAuY29sdW1uMiB7XG4gIHdpZHRoOiA0MiU7XG59XG4uZXhwb3J0RGlhbG9nIC5jdXJseV9icmFja2V0IHtcbiAgaGVpZ2h0OiAyNSU7XG59XG4uZXhwb3J0RGlhbG9nIC5yb3cxIHtcbiAgZGlzcGxheTogaW5saW5lLWZsZXg7XG4gIHdpZHRoOiAxMDAlO1xufVxuLmV4cG9ydERpYWxvZyAuYnJhY2tldC1jb2x1bW4xIHtcbiAgd2lkdGg6IDE1JTtcbiAgbWFyZ2luLXRvcDogMzAlO1xufVxuLmV4cG9ydERpYWxvZyAuYnJhY2tldC1jb2x1bW4yIHtcbiAgd2lkdGg6IDUwJTtcbiAgbWFyZ2luLXRvcDogMjUlO1xufVxuLmV4cG9ydERpYWxvZyAuYnJhY2tldC1jb2x1bW4zIHtcbiAgd2lkdGg6IDM1JTtcbiAgbWFyZ2luLXRvcDogNDAlO1xufVxuXG4uY2xzLWRpc3BsYXlub25lIHtcbiAgZGlzcGxheTogbm9uZSAhaW1wb3J0YW50O1xufSJdfQ== */\"","import { Component, OnInit, Inject } from '@angular/core';\nimport { MatDialog, MatDialogRef, MAT_DIALOG_DATA } from '@angular/material/dialog';\nimport { ToastyService } from 'ng2-toasty';\nimport * as XLSX from 'xlsx';\n\nimport { BackendApiService } from '../../../services/backend-api/backend-api.service';\nimport { LoaderService } from '../../../services/loader/loader.service';\nimport { UtilService } from '../../../services/util/util.service';\nimport * as FileSaver from 'file-saver';\nimport * as moment from 'moment';\nimport { AlertConfirmationComponent } from '../../alert-confirmation/alert-confirmation.component';\n\nimport { HttpClient, HttpResponse } from '@angular/common/http';\n\n@Component({\n selector: 'app-export-file',\n templateUrl: './export-file.component.html',\n styleUrls: ['./export-file.component.scss']\n})\nexport class ExportFileComponent implements OnInit {\n customFileName: string;\n\n constructor(public dialogRef: MatDialogRef, readonly utilService: UtilService, private http: HttpClient,\n @Inject(MAT_DIALOG_DATA) public data: any, public dialog: MatDialog, readonly apiService: BackendApiService, readonly toastyService: ToastyService, readonly loaderService: LoaderService) {\n if (this.data.queryName) {\n this.headerName = `[${this.data.table}] ${this.data.tcm}/${this.data.queryName}`;\n this.fileName = this.data.queryName;\n } else {\n this.headerName = `${this.data.table}_${this.data.tcm}`;\n this.fileName = `${this.data.table}-${this.data.tcm}`;\n }\n this.fileName = this.fileName.replace(/ /g, '_');\n // Get the current system date\n const currentDate = new Date();\n\n // Format the date (e.g., YYYYMMDD)\n const formattedDate = currentDate.getFullYear().toString() +\n (currentDate.getMonth() + 1).toString().padStart(2, '0') +\n currentDate.getDate().toString().padStart(2, '0');\n\n // Append the date to the fileName\n // this.fileName = this.fileName +'-'+ formattedDate;\n \n \n let date = new Date();\n // this.customFileName = moment.default(date).format('YYYYMMDD-hhmm') + '-' + this.getFavoriteRegion() + '-' + this.data.table + '--' + Math.floor(1000 + Math.random() * 90000);\n this.customFileName = this.fileName +'-'+ moment.default(date).format('YYYYMMDD-hhmm')+ '--' + Math.floor(1000 + Math.random() * 90000);\n }\n profile = this.utilService.getUserProfile();\n headerName = '';\n chkHeaders = true;\n chkAdvanced = false;\n enableTextMsg = false;\n fileTypes = [{ \"type\": \"Excel(*.xlsx)\", \"value\": \".xlsx\" },\n { \"type\": \"Text(*.txt)\", \"value\": \".txt\" }];\n selectedFileType = \".xlsx\";\n generateTypes = [{ \"type\": \"New\", \"type2\": \"File\", \"value\": \"NEW\", \"name\": \"NEW\", \"name2\": \"FILE\" },\n { \"type\": \"Add at the\", \"type2\": \"end of file\", \"value\": \"APPEND\", \"name\": \"ADD\", \"name2\": \"END_FILE\" },\n { \"type\": \"Filling\", \"type2\": \"UNIX\", \"value\": \"TAR\", \"name\": \"FILLING\", \"name2\": \"UNIX\" },\n { \"type\": \"ZIP\", \"type2\": \"\", \"value\": \"ZIP\", \"name\": \"ZIP\" }];\n\n transferTypes = [{ \"type\": \"No transfer\", \"value\": \"No transfer\", \"name\": \"NO_TRANSFER\" },\n { \"type\": \"S3 Bucket\", \"value\": \"S3 Bucket\", \"name\": \"S3_BUCKET\" },\n { \"type\": \"CFT:\", \"value\": \"CFT\", \"name\": \"CFT\" }];\n idf;\n part;\n\n patternTypes = [{ \"type\": \"Variable\", \"value\": \"V\", \"name\": \"VARIABLE\" },\n { \"type\": \"Fixed completed with blanks\", \"value\": \"F\", \"name\": \"WITH_BLANK\" },\n { \"type\": \"Fixed completed with 0:\", \"value\": \"L\", \"name\": \"WITH_0\" }];\n\n fixedLength;\n\n lineTypes = [{ \"type\": \"LF\", \"value\": \"EOL\", \"name\": \"LF\" },\n { \"type\": \"CR/LF\", \"value\": \"CRLF\", \"name\": \"CR\" },\n { \"type\": \"Other:\", \"value\": \"other\", \"name\": \"OTHER\" }];\n\n lineOther = \"\";\n selectedLineType = \"CRLF\";\n selectedFieldType = \"\\t\";\n selectedTransferType = \"S3 Bucket\";\n selectedPatternType = \"V\";\n\n fieldTypes = [{ \"type\": \"Without\", \"value\": \"\", \"name\": \"WITHOUT\" },\n { \"type\": \"Tab\", \"value\": \"\\t\", \"name\": \"TAB\" },\n { \"type\": \"Other:\", \"value\": \"other\", \"name\": \"OTHER\" }];\n\n fieldOther = \"\";\n\n generateType = \"NEW\";\n transferType = \"S3 Bucket\";\n patternType = \"V\";\n lineType = \"CRLF\";\n fieldType = \"\\t\";\n detailPageFileName = '';\n fileName;\n isClicked: boolean = false;\n\n getGenerateType(generate) {\n\n }\n\n ngOnInit() {\n\n }\n\n onNoClick(): void {\n this.dialogRef.close();\n }\n\n checkSelectedCheckboxHeader(event) {\n // console.log('ffffffff', event);\n this.chkHeaders = event;\n }\n\n checkSelectedCheckboxAdvanced(event) {\n this.chkAdvanced = event;\n }\n\n clickDefaultSetting() {\n this.generateType = \"NEW\";\n this.transferType = \"S3 Bucket\";\n this.patternType = \"V\";\n this.lineType = \"CRLF\";\n this.fieldType = \"\\t\"\n }\n\n getFavoriteRegion() {\n if (this.data.region === \"Europe\") {\n return \"PIL\";\n } else {\n return \"PIM\";\n }\n }\n\n getRoleForRadio() {\n // setTimeout(() => {\n if (this.data.region === \"Europe\") {\n if (this.profile['roles'].indexOf('pil_cft') > -1) {\n return false;\n } else {\n return true;\n }\n } else {\n if (this.profile['roles'].indexOf('pim_cft') > -1) {\n return false;\n } else {\n return true;\n }\n }\n // }, 0)\n }\n\n exportFunction() {\n let lineTypeValue = this.lineType;\n if (this.lineType === 'other') {\n lineTypeValue = this.lineOther;\n }\n\n let fieldTypeValue = this.fieldType;\n if (this.fieldType === 'other') {\n fieldTypeValue = this.fieldOther;\n }\n\n let strHeaders = \"\";\n if (this.chkHeaders) {\n for (const item of this.data.resultColumns) {\n strHeaders = `${strHeaders}${item.field}${fieldTypeValue}`;\n }\n // if (strHeaders !== \"\") {\n // strHeaders = strHeaders + this.fieldType;\n // }\n }\n strHeaders = strHeaders.replace('RowNum' + `${fieldTypeValue}`, '');\n strHeaders = strHeaders.replace(/^\\s/, '');\n let exportQuery;\n let uniqueNo = this.data.getResultInput.currentPage === 1 ? 'un100002' : 'un100003';\n let uniqueNoTrace;\n const traceCount = sessionStorage.getItem('traceCount');\n if (Number(traceCount) > 2) {\n uniqueNoTrace = this.data.getResultInput.currentPage === 1 ? 'un100002'.replace('un100002', 'un10000' + (Number(traceCount)).toString()) : 'un100003';\n } else {\n uniqueNoTrace = this.data.getResultInput.currentPage === 1 ? 'un100002' : 'un100003';\n }\n if (strHeaders !== '') {\n exportQuery = `DUMP@${this.data.ipn}@${this.data.table}@${this.generateType}@${uniqueNo}@${this.selectedFileType}@${fieldTypeValue}@${lineTypeValue}@${this.headerName}`;\n // if (this.data.queryName) {\n // exportQuery = `${headerQuery}${this.data.queryName}`;\n // } else {\n // exportQuery = `${headerQuery}`;\n // }\n exportQuery += \"#\";\n exportQuery += `${strHeaders}@0@-1@${this.patternType}@@@`;\n } else {\n exportQuery = `DUMP@${this.data.ipn}@${this.data.table}@${this.generateType}@${uniqueNo}@${this.selectedFileType}@${fieldTypeValue}@${lineTypeValue}@${this.headerName}@0@-1@${this.patternType}@@@`;\n }\n const queryParam = { \"inputLists\": `${this.data.executeQuery}\\n${this.data.getResultInput.getEvent}\\n${exportQuery}`.split('\\n'), \"region\": this.getFavoriteRegion() };\n this.utilService.setTrace(`>A< svc_getmassif`);\n // console.log(\"this.headerName\", this.headerName)\n this.utilService.setTrace(`>I< ${this.generateType}@${uniqueNoTrace}@C:\\Users\\__1__\\OneDrive - Alliance\\Bureau\\tracesWeb${this.selectedFileType}@${fieldTypeValue}@${lineTypeValue}@${this.headerName}${strHeaders}@0@-1@${this.patternType}@@@`);\n this.utilService.setTrace(`>O< /pilre701/pil/tfi//pilo_dump1.txt@@`);\n // this.utilService.setTrace(`#H ${moment.utc().format(\"HH:mm:ss\")}`);\n // this.utilService.setTrace(`>A< svc_delhdle`);\n // this.utilService.setTrace(`>I< un100002@`);\n // this.utilService.setTrace(`>O< `);\n // this.utilService.setTrace(`#H ${moment.utc().format(\"HH:mm:ss\")}`);\n // this.utilService.setTrace(`>A< svc_delhdle`);\n // this.utilService.setTrace(`>I< un100001@`);\n // this.utilService.setTrace(`>O< `);\n // this.utilService.setTrace(`#H ${moment.utc().format(\"HH:mm:ss\")}`);\n // this.utilService.setTrace(`>A< svc_delhdle`);\n // this.utilService.setTrace(`>I< un100000@`);\n // this.utilService.setTrace(`>O< `);\n this.apiService.exportResultObject(queryParam).subscribe(resp => {\n if (this.transferType === 'S3 Bucket') {\n sessionStorage.setItem('exportKey', resp.exportKey);\n // this.toastyService.warning(this.utilService.getTranslateName(`NEW_QUERY.EXECUTE.FILE_GENERATE`));\n this.downloadFile();\n this.downloadResult(resp.exportKey, 0);\n this.enableTextMsg = true;\n } else {\n this.toastyService.success(this.utilService.getTranslateName(`NEW_QUERY.EXECUTE.FILE_GENERATE_BACK`));\n this.onNoClick();\n }\n },\n error => {\n console.log(\"error\", error.message);\n });\n }\n\n clickExport() {\n this.enableTextMsg = false;\n this.isClicked = true;\n if (this.data && this.data.getResultInput.currentPage !== 3) {\n if (this.data.totalRowsLength > 1048500) {\n const dialogRef = this.dialog.open(AlertConfirmationComponent, {\n disableClose: true,\n width: '550px',\n data: { 'display': this.utilService.getTranslateName(`ERROR.RESULT_OUT_RANGE`), 'isText': false }\n });\n\n dialogRef.afterClosed().subscribe(result => {\n if (result === true) {\n this.exportFunction();\n return;\n } else {\n this.isClicked = false;\n return;\n }\n })\n } else {\n this.exportFunction();\n return;\n }\n } else {\n /* first table */\n let tbl1 = document.getElementById('first-detail-execute-page')\n let tbl2 = document.getElementById('second-detail-execute-page')\n let tbl3 = document.getElementById('third-detail-execute-page')\n let tbl4 = document.getElementById('fourth-detail-execute-page')\n let worksheet_tmp1 = XLSX.utils.table_to_sheet(tbl1);\n let worksheet_tmp2 = XLSX.utils.table_to_sheet(tbl2);\n let worksheet_tmp3 = XLSX.utils.table_to_sheet(tbl3);\n let worksheet_tmp4 = XLSX.utils.table_to_sheet(tbl4);\n let a = XLSX.utils.sheet_to_json(worksheet_tmp1, { header: 1 });\n let b = XLSX.utils.sheet_to_json(worksheet_tmp2, { header: 1 })\n let c = XLSX.utils.sheet_to_json(worksheet_tmp3, { header: 1 })\n let d = XLSX.utils.sheet_to_json(worksheet_tmp4, { header: 1 })\n\n a.unshift([this.utilService.getTranslateName(`NEW_QUERY.EXECUTE.COMMON`)]);\n b.unshift([this.utilService.getTranslateName(`NEW_QUERY.EXECUTE.INITIAL`)]);\n c.unshift([this.utilService.getTranslateName(`NEW_QUERY.EXECUTE.CURRENT`)]);\n d.unshift([this.utilService.getTranslateName(`NEW_QUERY.EXECUTE.CLEAR_INITIAL`)]);\n\n a = a.concat(['\\n']).concat(b).concat(['\\n']).concat(c).concat(['\\n']).concat(d);\n let worksheet = XLSX.utils.json_to_sheet(a);\n this.delete_row(worksheet, 0);\n let data = XLSX.utils.sheet_to_txt(worksheet);\n let date = new Date();\n // let formattedDate = moment.default(date).format('YYYYMMDD-hhmm') + '-' + this.getFavoriteRegion() + '-' + this.data.table + '--' + Math.floor(1000 + Math.random() * 90000);\n let formattedDate = this.customFileName\n if (this.selectedFileType === '.txt') {\n // data + '\\n';\n // data = data.replace(/\\n/,\"\\r\\t\\t\\n\");\n // const workbook: XLSX.WorkBook = { Sheets: { 'data': worksheet }, SheetNames: ['data'] };\n // const excelBuffer: any = XLSX.write(workbook, { bookType: 'txt', type: 'array' });\n var blob = new Blob([data], { type: \"text/plain\" });\n FileSaver.saveAs(blob, formattedDate + \".txt\");\n } else {\n const new_workbook = XLSX.utils.book_new()\n XLSX.utils.book_append_sheet(new_workbook, worksheet, \"worksheet\")\n XLSX.writeFile(new_workbook, formattedDate + '.xlsx');\n }\n this.onNoClick();\n }\n }\n\n delete_row(ws, row_index) {\n var variable = XLSX.utils.decode_range(ws[\"!ref\"])\n for (var R = row_index; R < variable.e.r; ++R) {\n for (var C = variable.s.c; C <= variable.e.c; ++C) {\n ws[this.ec(R, C)] = ws[this.ec(R + 1, C)];\n }\n }\n variable.e.r--\n ws['!ref'] = XLSX.utils.encode_range(variable.s, variable.e);\n }\n\n ec(r, c) {\n return XLSX.utils.encode_cell({ r: r, c: c });\n }\n\n create_gap_rows(ws, nrows) {\n var ref = XLSX.utils.decode_range(ws[\"!ref\"]); // get original range\n ref.e.r += nrows; // add to ending row\n ws[\"!ref\"] = XLSX.utils.encode_range(ref); // reassign row\n }\n\n downloadFile() {\n if (this.fileName === undefined || this.fileName === '') {\n let interval;\n if (!interval) {\n interval = setInterval(() => {\n // this.toastyService.warning(this.utilService.getTranslateName(`NEW_QUERY.EXECUTE.FILE_GENERATE`));\n const exportKey = sessionStorage.getItem(\"exportKey\");\n if (exportKey !== null) {\n this.downloadResult(exportKey, interval);\n }\n }, 10000);\n }\n } else {\n let interval;\n if (!interval) {\n interval = setInterval(() => {\n // this.toastyService.warning(this.utilService.getTranslateName(`NEW_QUERY.EXECUTE.FILE_GENERATE`));\n const exportKey = sessionStorage.getItem(\"exportKey\");\n if (exportKey !== null) {\n this.downloadResult(exportKey, interval);\n }\n }, 10000);\n }\n }\n }\n\n downloadFileNew(filename, url) {\n this.apiService.downloadFile(url)\n .subscribe(\n response => {\n let filename: string = this.fileName\n let binaryData = [];\n binaryData.push(response.body);\n let downloadLink = document.createElement('a');\n downloadLink.href = window.URL.createObjectURL(new Blob(binaryData, { type: 'blob' }));\n downloadLink.setAttribute('download', filename);\n document.body.appendChild(downloadLink);\n downloadLink.click();\n }\n )\n }\n\n downloadResult(exportKey, interval) {\n const queryParam = { \"inputLists\": `${exportKey}`.split('/'), \"region\": this.getFavoriteRegion() };\n this.apiService.exportResultObject(queryParam).subscribe(res => {\n this.fileName = res.fileName;\n let extenFile = res.fileName.split(\".\")[1];\n if (res.fileName !== \"\") {\n var tempFile = window.location.protocol + '//' + window.location.hostname + \"/pil-api-s3/downloadfile/\" + res.fileName+\"?customFileName=\"+encodeURIComponent(this.customFileName)+\".\"+extenFile;\n // this.downloadFileNew(res.fileName, window.location.protocol + '//' + window.location.hostname + \"/pil-api-s3/downloadfile/\")\n window.open(tempFile);\n // this.downloadFile2(tempFile).subscribe(response => {\n // let blob: any = new Blob([response], { type: 'text/json; charset=utf-8' });\n // const url = window.URL.createObjectURL(blob);\n // //window.open(url);\n // //window.location.href = response.url;\n // // FileSaver.saveAs(blob, 'employees.json');\n // console.log(\"exte\", extenFile, res);\n // FileSaver.saveAs(blob, this.customFileName + '.' + extenFile);\n // }), error => console.log('Error downloading the file'),\n // () => console.info('File downloaded successfully');\n\n\n sessionStorage.removeItem(\"exportKey\");\n // this.toastyService.success(this.utilService.getTranslateName(`NEW_QUERY.EXECUTE.FILE_DOWNLOAD`));\n clearInterval(interval);\n interval = null;\n while (interval !== null) {\n interval = null;\n }\n this.enableTextMsg = false;\n this.onNoClick();\n } else {\n // this.loaderService.show();\n }\n },\n error => {\n console.log(\"error\", error.message);\n });\n }\n\n downloadFile2(filename): any {\n return this.http.get(filename, { responseType: 'blob' });\n }\n\n alertErrorMsg(displayMsg): void {\n\n const dialogRef = this.dialog.open(AlertConfirmationComponent, {\n disableClose: true,\n width: '550px',\n data: { 'display': displayMsg, 'isText': false, 'isAlert': true }\n });\n\n dialogRef.afterClosed().subscribe(result => {\n if (result === true) {\n // this.dialogRef.close({ name: this.queryName, isPublic: this.isPublic });\n return;\n }\n })\n }\n\n}\n","export default \".character-flag-list {\\n width: 80%;\\n margin: 7%;\\n height: 135px;\\n background-color: #009B77;\\n color: white;\\n font-family: Roboto, \\\"Helvetica Neue\\\", sans-serif !important;\\n font-size: 14px !important;\\n}\\n.character-flag-list .title-span {\\n font-weight: 500;\\n line-height: 17px;\\n}\\n.character-flag-list .text-span {\\n font-size: 11px;\\n font-weight: 400;\\n line-height: 28px;\\n}\\n.character-flag-list .character-radio-group {\\n display: flex;\\n flex-direction: column;\\n}\\n.character-flag-list .character-radio-group .mat-radio-button {\\n margin: 3px;\\n}\\n.character-flag-list .action-btn {\\n display: flex;\\n float: right;\\n margin-top: 12px;\\n}\\n.character-flag-list .action-btn .mat-flat-button {\\n height: 36px;\\n font-family: Roboto, \\\"Helvetica Neue\\\", sans-serif;\\n font-size: 13px;\\n font-weight: 500;\\n text-align: center;\\n border: 0px solid;\\n padding: 0px !important;\\n border-radius: 0px;\\n}\\n.character-flag-list .action-btn .mat-flat-button:nth-child(1) {\\n margin-right: 5px;\\n}\\n/*# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi91c3Ivc3JjL3NyYy9hcHAvY29tcG9uZW50L3F1ZXJ5L2dyb3VwaW5nL2NoYXJhY3Rlci1mbGFnLWxpc3QvY2hhcmFjdGVyLWZsYWctbGlzdC5jb21wb25lbnQuc2NzcyIsInNyYy9hcHAvY29tcG9uZW50L3F1ZXJ5L2dyb3VwaW5nL2NoYXJhY3Rlci1mbGFnLWxpc3QvY2hhcmFjdGVyLWZsYWctbGlzdC5jb21wb25lbnQuc2NzcyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQTtFQUNJLFVBQUE7RUFDQSxVQUFBO0VBRUEsYUFBQTtFQUNBLHlCQUFBO0VBQ0EsWUFBQTtFQUNBLDREQUFBO0VBQ0EsMEJBQUE7QUNBSjtBRENJO0VBQ0ksZ0JBQUE7RUFDQSxpQkFBQTtBQ0NSO0FEQ0k7RUFDSSxlQUFBO0VBQ0EsZ0JBQUE7RUFDQSxpQkFBQTtBQ0NSO0FEQ0k7RUFDSSxhQUFBO0VBQ0Esc0JBQUE7QUNDUjtBREFRO0VBQ0ksV0FBQTtBQ0VaO0FEQ0k7RUFDSSxhQUFBO0VBQ0EsWUFBQTtFQUNBLGdCQUFBO0FDQ1I7QURBUTtFQUNJLFlBQUE7RUFDQSxpREFBQTtFQUNBLGVBQUE7RUFDQSxnQkFBQTtFQUNBLGtCQUFBO0VBQ0EsaUJBQUE7RUFDQSx1QkFBQTtFQUNBLGtCQUFBO0FDRVo7QURBUTtFQUNJLGlCQUFBO0FDRVoiLCJmaWxlIjoic3JjL2FwcC9jb21wb25lbnQvcXVlcnkvZ3JvdXBpbmcvY2hhcmFjdGVyLWZsYWctbGlzdC9jaGFyYWN0ZXItZmxhZy1saXN0LmNvbXBvbmVudC5zY3NzIiwic291cmNlc0NvbnRlbnQiOlsiLmNoYXJhY3Rlci1mbGFnLWxpc3Qge1xuICAgIHdpZHRoOiA4MCU7XG4gICAgbWFyZ2luOiA3JTtcbiAgICAvLyBtYXJnaW4tbGVmdDogMTBweDtcbiAgICBoZWlnaHQ6IDEzNXB4O1xuICAgIGJhY2tncm91bmQtY29sb3I6ICMwMDlCNzc7XG4gICAgY29sb3I6d2hpdGU7XG4gICAgZm9udC1mYW1pbHk6IFJvYm90bywgXCJIZWx2ZXRpY2EgTmV1ZVwiLCBzYW5zLXNlcmlmICFpbXBvcnRhbnQ7XG4gICAgZm9udC1zaXplOiAxNHB4ICFpbXBvcnRhbnQ7XG4gICAgLnRpdGxlLXNwYW57XG4gICAgICAgIGZvbnQtd2VpZ2h0OiA1MDA7XG4gICAgICAgIGxpbmUtaGVpZ2h0OiAxN3B4O1xuICAgIH1cbiAgICAudGV4dC1zcGFue1xuICAgICAgICBmb250LXNpemU6IDExcHg7XG4gICAgICAgIGZvbnQtd2VpZ2h0OiA0MDA7XG4gICAgICAgIGxpbmUtaGVpZ2h0OiAyOHB4O1xuICAgIH1cbiAgICAuY2hhcmFjdGVyLXJhZGlvLWdyb3VwIHtcbiAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcbiAgICAgICAgLm1hdC1yYWRpby1idXR0b24ge1xuICAgICAgICAgICAgbWFyZ2luOiAzcHg7XG4gICAgICAgIH1cbiAgICB9XG4gICAgLmFjdGlvbi1idG4ge1xuICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICBmbG9hdDogcmlnaHQ7XG4gICAgICAgIG1hcmdpbi10b3A6IDEycHg7XG4gICAgICAgIC5tYXQtZmxhdC1idXR0b24ge1xuICAgICAgICAgICAgaGVpZ2h0OiAzNnB4O1xuICAgICAgICAgICAgZm9udC1mYW1pbHk6IFJvYm90byxcIkhlbHZldGljYSBOZXVlXCIsc2Fucy1zZXJpZjtcbiAgICAgICAgICAgIGZvbnQtc2l6ZTogMTNweDtcbiAgICAgICAgICAgIGZvbnQtd2VpZ2h0OiA1MDA7XG4gICAgICAgICAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gICAgICAgICAgICBib3JkZXI6IDBweCBzb2xpZDtcbiAgICAgICAgICAgIHBhZGRpbmc6IDBweCAhaW1wb3J0YW50O1xuICAgICAgICAgICAgYm9yZGVyLXJhZGl1czogMHB4O1xuICAgICAgICB9XG4gICAgICAgIC5tYXQtZmxhdC1idXR0b246bnRoLWNoaWxkKDEpIHtcbiAgICAgICAgICAgIG1hcmdpbi1yaWdodDogNXB4O1xuICAgICAgICB9XG4gICAgfVxufSIsIi5jaGFyYWN0ZXItZmxhZy1saXN0IHtcbiAgd2lkdGg6IDgwJTtcbiAgbWFyZ2luOiA3JTtcbiAgaGVpZ2h0OiAxMzVweDtcbiAgYmFja2dyb3VuZC1jb2xvcjogIzAwOUI3NztcbiAgY29sb3I6IHdoaXRlO1xuICBmb250LWZhbWlseTogUm9ib3RvLCBcIkhlbHZldGljYSBOZXVlXCIsIHNhbnMtc2VyaWYgIWltcG9ydGFudDtcbiAgZm9udC1zaXplOiAxNHB4ICFpbXBvcnRhbnQ7XG59XG4uY2hhcmFjdGVyLWZsYWctbGlzdCAudGl0bGUtc3BhbiB7XG4gIGZvbnQtd2VpZ2h0OiA1MDA7XG4gIGxpbmUtaGVpZ2h0OiAxN3B4O1xufVxuLmNoYXJhY3Rlci1mbGFnLWxpc3QgLnRleHQtc3BhbiB7XG4gIGZvbnQtc2l6ZTogMTFweDtcbiAgZm9udC13ZWlnaHQ6IDQwMDtcbiAgbGluZS1oZWlnaHQ6IDI4cHg7XG59XG4uY2hhcmFjdGVyLWZsYWctbGlzdCAuY2hhcmFjdGVyLXJhZGlvLWdyb3VwIHtcbiAgZGlzcGxheTogZmxleDtcbiAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcbn1cbi5jaGFyYWN0ZXItZmxhZy1saXN0IC5jaGFyYWN0ZXItcmFkaW8tZ3JvdXAgLm1hdC1yYWRpby1idXR0b24ge1xuICBtYXJnaW46IDNweDtcbn1cbi5jaGFyYWN0ZXItZmxhZy1saXN0IC5hY3Rpb24tYnRuIHtcbiAgZGlzcGxheTogZmxleDtcbiAgZmxvYXQ6IHJpZ2h0O1xuICBtYXJnaW4tdG9wOiAxMnB4O1xufVxuLmNoYXJhY3Rlci1mbGFnLWxpc3QgLmFjdGlvbi1idG4gLm1hdC1mbGF0LWJ1dHRvbiB7XG4gIGhlaWdodDogMzZweDtcbiAgZm9udC1mYW1pbHk6IFJvYm90bywgXCJIZWx2ZXRpY2EgTmV1ZVwiLCBzYW5zLXNlcmlmO1xuICBmb250LXNpemU6IDEzcHg7XG4gIGZvbnQtd2VpZ2h0OiA1MDA7XG4gIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgYm9yZGVyOiAwcHggc29saWQ7XG4gIHBhZGRpbmc6IDBweCAhaW1wb3J0YW50O1xuICBib3JkZXItcmFkaXVzOiAwcHg7XG59XG4uY2hhcmFjdGVyLWZsYWctbGlzdCAuYWN0aW9uLWJ0biAubWF0LWZsYXQtYnV0dG9uOm50aC1jaGlsZCgxKSB7XG4gIG1hcmdpbi1yaWdodDogNXB4O1xufSJdfQ== */\"","import { Component, Input, Output, EventEmitter, OnChanges } from '@angular/core';\nimport { BackendApiService } from '../../../../services/backend-api/backend-api.service';\nimport { UtilService } from '../../../../services/util/util.service';\n\n@Component({\n selector: 'app-character-flag-list',\n templateUrl: './character-flag-list.component.html',\n styleUrls: ['./character-flag-list.component.scss']\n})\n\nexport class CharacterFlagListComponent implements OnChanges {\n @Input() selectedListItem: string;\n @Input() editValue: string[] = [];\n @Output() setCharacterFlagData = new EventEmitter();\n characterFlagValue;\n isSubmitted: boolean = false;\n characterFlagList = [\n { 'name': 'TRUE', value: '1' },\n { 'name': 'FALSE', value: '0' }];\n\n ngOnChanges() {\n if (this.editValue && this.editValue.length > 0) {\n this.characterFlagValue = this.editValue[1];\n }\n }\n\n submit() {\n if (!this.characterFlagList) {\n this.isSubmitted = true;\n }\n let value = {\n 'value': this.characterFlagValue,\n displayGroupingForm: false\n }\n this.setCharacterFlagData.emit(value);\n }\n\n cancel() {\n let value = {\n value: '',\n displayGroupingForm: false\n };\n this.setCharacterFlagData.emit(value);\n }\n}","export default \".character-grouping-list {\\n width: 80%;\\n margin: 7%;\\n height: 240px;\\n background-color: #006cb5;\\n color: white;\\n font-family: Roboto, \\\"Helvetica Neue\\\", sans-serif !important;\\n font-size: 14px !important;\\n}\\n.character-grouping-list ::-webkit-scrollbar {\\n width: 8px;\\n}\\n.character-grouping-list ::-webkit-scrollbar-track {\\n box-shadow: inset 0 0 6px rgba(0, 0, 0, 0.3);\\n border-radius: 10px;\\n}\\n.character-grouping-list ::-webkit-scrollbar-thumb {\\n border-radius: 10px;\\n box-shadow: inset 0 0 6px rgba(0, 0, 0, 0.5);\\n}\\n.character-grouping-list .mat-list-item {\\n word-break: break-all;\\n margin-top: 2px;\\n height: auto !important;\\n}\\n.character-grouping-list .mat-list-item-word-wrap .mat-line {\\n word-wrap: break-word !important;\\n white-space: pre-wrap !important;\\n}\\n.character-grouping-list .title-span {\\n font-weight: 500;\\n line-height: 17px;\\n}\\n.character-grouping-list .text-span {\\n font-size: 11px;\\n font-weight: 400;\\n line-height: 10px;\\n overflow: hidden;\\n display: -webkit-box;\\n -webkit-line-clamp: 2;\\n /* Limit to 2 lines */\\n -webkit-box-orient: vertical;\\n}\\n.character-grouping-list .wording input[type=text] {\\n text-transform: uppercase;\\n width: 100%;\\n min-height: 30px;\\n background-color: #ffffff;\\n color: #000000;\\n font-size: 12px;\\n font-weight: 500;\\n}\\n.character-grouping-list .wording .text-align {\\n text-align: center;\\n}\\n.character-grouping-list .wording .arrow {\\n margin-top: 10px;\\n float: left;\\n background-color: #ffffff;\\n width: 12%;\\n height: 24px;\\n cursor: pointer;\\n text-align: center;\\n color: #000000;\\n margin-left: 5px;\\n}\\n.character-grouping-list .wording .arrow .mat-icon {\\n font-size: 44px;\\n width: 100%;\\n line-height: 26px;\\n}\\n.character-grouping-list .wording ::ng-deep .mat-selection-list {\\n background-color: white;\\n min-height: 100px;\\n height: 0;\\n overflow: auto;\\n padding-top: 0;\\n}\\n.character-grouping-list .wording .mat-list-option {\\n height: auto !important;\\n}\\n.character-grouping-list .wording .select-list {\\n background-color: #0077C8;\\n color: #ffffff;\\n min-height: 18px !important;\\n}\\n.character-grouping-list .wording .mat-list-item-content {\\n padding: 0 !important;\\n}\\n.character-grouping-list .wording .action-btn {\\n display: flex;\\n float: right;\\n margin-top: 12px;\\n}\\n.character-grouping-list .wording .action-btn .mat-flat-button {\\n height: 36px;\\n font-family: Roboto, \\\"Helvetica Neue\\\", sans-serif;\\n font-size: 13px;\\n font-weight: 500;\\n text-align: center;\\n border: 0px solid;\\n padding: 0 !important;\\n border-radius: 0px;\\n}\\n.character-grouping-list .wording .action-btn .mat-flat-button:nth-child(1) {\\n margin-right: 5px;\\n}\\n.cls-displaynone {\\n display: none !important;\\n}\\n/*# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi91c3Ivc3JjL3NyYy9hcHAvY29tcG9uZW50L3F1ZXJ5L2dyb3VwaW5nL2NoYXJhY3Rlci1ncm91cGluZy1saXN0L2NoYXJhY3Rlci1ncm91cGluZy1saXN0LmNvbXBvbmVudC5zY3NzIiwic3JjL2FwcC9jb21wb25lbnQvcXVlcnkvZ3JvdXBpbmcvY2hhcmFjdGVyLWdyb3VwaW5nLWxpc3QvY2hhcmFjdGVyLWdyb3VwaW5nLWxpc3QuY29tcG9uZW50LnNjc3MiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUE7RUFDSSxVQUFBO0VBQ0EsVUFBQTtFQUVBLGFBQUE7RUFDQSx5QkFBQTtFQUNBLFlBQUE7RUFDQSw0REFBQTtFQUNBLDBCQUFBO0FDQUo7QURDSTtFQUNJLFVBQUE7QUNDUjtBRENJO0VBQ0ksNENBQUE7RUFDQSxtQkFBQTtBQ0NSO0FEQ0k7RUFDSSxtQkFBQTtFQUNBLDRDQUFBO0FDQ1I7QURFSTtFQUVFLHFCQUFBO0VBQ0EsZUFBQTtFQUNBLHVCQUFBO0FDRE47QURJSTtFQUNJLGdDQUFBO0VBQ0EsZ0NBQUE7QUNGUjtBREtJO0VBQ0ksZ0JBQUE7RUFDQSxpQkFBQTtBQ0hSO0FES0k7RUFDSSxlQUFBO0VBQ0EsZ0JBQUE7RUFDQSxpQkFBQTtFQUNBLGdCQUFBO0VBQ0Esb0JBQUE7RUFDQSxxQkFBQTtFQUF1QixxQkFBQTtFQUN2Qiw0QkFBQTtBQ0ZSO0FES1E7RUFDSSx5QkFBQTtFQUNBLFdBQUE7RUFDQSxnQkFBQTtFQUNBLHlCQUFBO0VBQ0EsY0FBQTtFQUNBLGVBQUE7RUFDQSxnQkFBQTtBQ0haO0FES1E7RUFDSSxrQkFBQTtBQ0haO0FES1E7RUFDSSxnQkFBQTtFQUNBLFdBQUE7RUFDQSx5QkFBQTtFQUNBLFVBQUE7RUFDQSxZQUFBO0VBQ0EsZUFBQTtFQUNBLGtCQUFBO0VBQ0EsY0FBQTtFQUNBLGdCQUFBO0FDSFo7QURJWTtFQUNJLGVBQUE7RUFDQSxXQUFBO0VBQ0EsaUJBQUE7QUNGaEI7QURLUTtFQUNJLHVCQUFBO0VBQ0EsaUJBQUE7RUFDQSxTQUFBO0VBQ0EsY0FBQTtFQUNBLGNBQUE7QUNIWjtBREtRO0VBQ0ksdUJBQUE7QUNIWjtBREtRO0VBQ0kseUJBQUE7RUFDQSxjQUFBO0VBRUEsMkJBQUE7QUNKWjtBRE1RO0VBQ0kscUJBQUE7QUNKWjtBRE1RO0VBQ0ksYUFBQTtFQUNBLFlBQUE7RUFDQSxnQkFBQTtBQ0paO0FES1k7RUFJSSxZQUFBO0VBQ0EsaURBQUE7RUFDQSxlQUFBO0VBQ0EsZ0JBQUE7RUFDQSxrQkFBQTtFQUNBLGlCQUFBO0VBQ0EscUJBQUE7RUFDQSxrQkFBQTtBQ05oQjtBRFFZO0VBQ0ksaUJBQUE7QUNOaEI7QURXQTtFQUNJLHdCQUFBO0FDUkoiLCJmaWxlIjoic3JjL2FwcC9jb21wb25lbnQvcXVlcnkvZ3JvdXBpbmcvY2hhcmFjdGVyLWdyb3VwaW5nLWxpc3QvY2hhcmFjdGVyLWdyb3VwaW5nLWxpc3QuY29tcG9uZW50LnNjc3MiLCJzb3VyY2VzQ29udGVudCI6WyIuY2hhcmFjdGVyLWdyb3VwaW5nLWxpc3Qge1xuICAgIHdpZHRoOiA4MCU7XG4gICAgbWFyZ2luOiA3JTtcbiAgICAvLyBtYXJnaW4tbGVmdDogMTBweDtcbiAgICBoZWlnaHQ6IDI0MHB4O1xuICAgIGJhY2tncm91bmQtY29sb3I6ICMwMDZjYjU7XG4gICAgY29sb3I6d2hpdGU7XG4gICAgZm9udC1mYW1pbHk6IFJvYm90bywgXCJIZWx2ZXRpY2EgTmV1ZVwiLCBzYW5zLXNlcmlmICFpbXBvcnRhbnQ7XG4gICAgZm9udC1zaXplOiAxNHB4ICFpbXBvcnRhbnQ7XG4gICAgOjotd2Via2l0LXNjcm9sbGJhciB7XG4gICAgICAgIHdpZHRoOiA4cHg7XG4gICAgfVxuICAgIDo6LXdlYmtpdC1zY3JvbGxiYXItdHJhY2sge1xuICAgICAgICBib3gtc2hhZG93OiBpbnNldCAwIDAgNnB4IHJnYmEoMCwwLDAsMC4zKTsgXG4gICAgICAgIGJvcmRlci1yYWRpdXM6IDEwcHg7XG4gICAgfVxuICAgIDo6LXdlYmtpdC1zY3JvbGxiYXItdGh1bWIge1xuICAgICAgICBib3JkZXItcmFkaXVzOiAxMHB4O1xuICAgICAgICBib3gtc2hhZG93OiBpbnNldCAwIDAgNnB4IHJnYmEoMCwwLDAsMC41KTsgXG4gICAgfVxuICAgIFxuICAgIC5tYXQtbGlzdC1pdGVtIHtcbiAgICAvLyAgIGhlaWdodDogYXV0byAhaW1wb3J0YW50O1xuICAgICAgd29yZC1icmVhazogYnJlYWstYWxsO1xuICAgICAgbWFyZ2luLXRvcDogMnB4O1xuICAgICAgaGVpZ2h0OiBhdXRvICFpbXBvcnRhbnQ7XG4gICAgfVxuICAgIFxuICAgIC5tYXQtbGlzdC1pdGVtLXdvcmQtd3JhcCAubWF0LWxpbmUge1xuICAgICAgICB3b3JkLXdyYXA6IGJyZWFrLXdvcmQgIWltcG9ydGFudDsgXG4gICAgICAgIHdoaXRlLXNwYWNlOiBwcmUtd3JhcCAhaW1wb3J0YW50O1xuICAgIH1cblxuICAgIC50aXRsZS1zcGFue1xuICAgICAgICBmb250LXdlaWdodDogNTAwO1xuICAgICAgICBsaW5lLWhlaWdodDogMTdweDtcbiAgICB9XG4gICAgLnRleHQtc3BhbntcbiAgICAgICAgZm9udC1zaXplOiAxMXB4O1xuICAgICAgICBmb250LXdlaWdodDogNDAwO1xuICAgICAgICBsaW5lLWhlaWdodDogMTBweDtcbiAgICAgICAgb3ZlcmZsb3c6IGhpZGRlbjtcbiAgICAgICAgZGlzcGxheTogLXdlYmtpdC1ib3g7XG4gICAgICAgIC13ZWJraXQtbGluZS1jbGFtcDogMjsgLyogTGltaXQgdG8gMiBsaW5lcyAqL1xuICAgICAgICAtd2Via2l0LWJveC1vcmllbnQ6IHZlcnRpY2FsO1xuICAgIH1cbiAgICAud29yZGluZyB7XG4gICAgICAgIGlucHV0W3R5cGU9XCJ0ZXh0XCJdIHtcbiAgICAgICAgICAgIHRleHQtdHJhbnNmb3JtOnVwcGVyY2FzZTtcbiAgICAgICAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgICAgICAgbWluLWhlaWdodDogMzBweDtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICNmZmZmZmY7XG4gICAgICAgICAgICBjb2xvcjogIzAwMDAwMDtcbiAgICAgICAgICAgIGZvbnQtc2l6ZTogMTJweDtcbiAgICAgICAgICAgIGZvbnQtd2VpZ2h0OiA1MDA7XG4gICAgICAgIH1cbiAgICAgICAgLnRleHQtYWxpZ24ge1xuICAgICAgICAgICAgdGV4dC1hbGlnbjogY2VudGVyO1xuICAgICAgICB9XG4gICAgICAgIC5hcnJvdyB7XG4gICAgICAgICAgICBtYXJnaW4tdG9wOiAxMHB4O1xuICAgICAgICAgICAgZmxvYXQ6IGxlZnQ7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiNmZmZmZmY7XG4gICAgICAgICAgICB3aWR0aDogMTIlO1xuICAgICAgICAgICAgaGVpZ2h0OiAyNHB4O1xuICAgICAgICAgICAgY3Vyc29yOiBwb2ludGVyO1xuICAgICAgICAgICAgdGV4dC1hbGlnbjogY2VudGVyO1xuICAgICAgICAgICAgY29sb3I6ICMwMDAwMDA7XG4gICAgICAgICAgICBtYXJnaW4tbGVmdDogNXB4O1xuICAgICAgICAgICAgLm1hdC1pY29uIHtcbiAgICAgICAgICAgICAgICBmb250LXNpemU6IDQ0cHg7XG4gICAgICAgICAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICAgICAgICAgICAgbGluZS1oZWlnaHQ6IDI2cHg7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgICAgOjpuZy1kZWVwIC5tYXQtc2VsZWN0aW9uLWxpc3Qge1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogd2hpdGU7XG4gICAgICAgICAgICBtaW4taGVpZ2h0OiAxMDBweDtcbiAgICAgICAgICAgIGhlaWdodDogMDtcbiAgICAgICAgICAgIG92ZXJmbG93OiBhdXRvO1xuICAgICAgICAgICAgcGFkZGluZy10b3A6IDA7XG4gICAgICAgIH1cbiAgICAgICAgLm1hdC1saXN0LW9wdGlvbiB7XG4gICAgICAgICAgICBoZWlnaHQ6IGF1dG8gIWltcG9ydGFudDtcbiAgICAgICAgfVxuICAgICAgICAuc2VsZWN0LWxpc3R7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjMDA3N0M4O1xuICAgICAgICAgICAgY29sb3I6ICNmZmZmZmY7XG4gICAgICAgICAgICAvLyBoZWlnaHQ6IGF1dG8gIWltcG9ydGFudDtcbiAgICAgICAgICAgIG1pbi1oZWlnaHQ6IDE4cHggIWltcG9ydGFudDtcbiAgICAgICAgfVxuICAgICAgICAubWF0LWxpc3QtaXRlbS1jb250ZW50IHtcbiAgICAgICAgICAgIHBhZGRpbmc6IDAgIWltcG9ydGFudDtcbiAgICAgICAgfVxuICAgICAgICAuYWN0aW9uLWJ0biB7XG4gICAgICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICAgICAgZmxvYXQ6IHJpZ2h0O1xuICAgICAgICAgICAgbWFyZ2luLXRvcDogMTJweDtcbiAgICAgICAgICAgIC5tYXQtZmxhdC1idXR0b24ge1xuICAgICAgICAgICAgICAgIC8vIHBhZGRpbmc6IDAgIWltcG9ydGFudDtcbiAgICAgICAgICAgICAgICAvLyBiYWNrZ3JvdW5kLWNvbG9yOiAjRkZDQzMzO1xuICAgICAgICAgICAgICAgIC8vIGZvbnQtd2VpZ2h0OiA5MDA7XG4gICAgICAgICAgICAgICAgaGVpZ2h0OiAzNnB4O1xuICAgICAgICAgICAgICAgIGZvbnQtZmFtaWx5OiBSb2JvdG8sXCJIZWx2ZXRpY2EgTmV1ZVwiLHNhbnMtc2VyaWY7XG4gICAgICAgICAgICAgICAgZm9udC1zaXplOiAxM3B4O1xuICAgICAgICAgICAgICAgIGZvbnQtd2VpZ2h0OiA1MDA7XG4gICAgICAgICAgICAgICAgdGV4dC1hbGlnbjogY2VudGVyO1xuICAgICAgICAgICAgICAgIGJvcmRlcjogMHB4IHNvbGlkO1xuICAgICAgICAgICAgICAgIHBhZGRpbmc6IDAgIWltcG9ydGFudDtcbiAgICAgICAgICAgICAgICBib3JkZXItcmFkaXVzOiAwcHg7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICAubWF0LWZsYXQtYnV0dG9uOm50aC1jaGlsZCgxKSB7XG4gICAgICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiA1cHg7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICB9XG59XG4uY2xzLWRpc3BsYXlub25le1xuICAgIGRpc3BsYXk6bm9uZSAhaW1wb3J0YW50O1xufSIsIi5jaGFyYWN0ZXItZ3JvdXBpbmctbGlzdCB7XG4gIHdpZHRoOiA4MCU7XG4gIG1hcmdpbjogNyU7XG4gIGhlaWdodDogMjQwcHg7XG4gIGJhY2tncm91bmQtY29sb3I6ICMwMDZjYjU7XG4gIGNvbG9yOiB3aGl0ZTtcbiAgZm9udC1mYW1pbHk6IFJvYm90bywgXCJIZWx2ZXRpY2EgTmV1ZVwiLCBzYW5zLXNlcmlmICFpbXBvcnRhbnQ7XG4gIGZvbnQtc2l6ZTogMTRweCAhaW1wb3J0YW50O1xufVxuLmNoYXJhY3Rlci1ncm91cGluZy1saXN0IDo6LXdlYmtpdC1zY3JvbGxiYXIge1xuICB3aWR0aDogOHB4O1xufVxuLmNoYXJhY3Rlci1ncm91cGluZy1saXN0IDo6LXdlYmtpdC1zY3JvbGxiYXItdHJhY2sge1xuICBib3gtc2hhZG93OiBpbnNldCAwIDAgNnB4IHJnYmEoMCwgMCwgMCwgMC4zKTtcbiAgYm9yZGVyLXJhZGl1czogMTBweDtcbn1cbi5jaGFyYWN0ZXItZ3JvdXBpbmctbGlzdCA6Oi13ZWJraXQtc2Nyb2xsYmFyLXRodW1iIHtcbiAgYm9yZGVyLXJhZGl1czogMTBweDtcbiAgYm94LXNoYWRvdzogaW5zZXQgMCAwIDZweCByZ2JhKDAsIDAsIDAsIDAuNSk7XG59XG4uY2hhcmFjdGVyLWdyb3VwaW5nLWxpc3QgLm1hdC1saXN0LWl0ZW0ge1xuICB3b3JkLWJyZWFrOiBicmVhay1hbGw7XG4gIG1hcmdpbi10b3A6IDJweDtcbiAgaGVpZ2h0OiBhdXRvICFpbXBvcnRhbnQ7XG59XG4uY2hhcmFjdGVyLWdyb3VwaW5nLWxpc3QgLm1hdC1saXN0LWl0ZW0td29yZC13cmFwIC5tYXQtbGluZSB7XG4gIHdvcmQtd3JhcDogYnJlYWstd29yZCAhaW1wb3J0YW50O1xuICB3aGl0ZS1zcGFjZTogcHJlLXdyYXAgIWltcG9ydGFudDtcbn1cbi5jaGFyYWN0ZXItZ3JvdXBpbmctbGlzdCAudGl0bGUtc3BhbiB7XG4gIGZvbnQtd2VpZ2h0OiA1MDA7XG4gIGxpbmUtaGVpZ2h0OiAxN3B4O1xufVxuLmNoYXJhY3Rlci1ncm91cGluZy1saXN0IC50ZXh0LXNwYW4ge1xuICBmb250LXNpemU6IDExcHg7XG4gIGZvbnQtd2VpZ2h0OiA0MDA7XG4gIGxpbmUtaGVpZ2h0OiAxMHB4O1xuICBvdmVyZmxvdzogaGlkZGVuO1xuICBkaXNwbGF5OiAtd2Via2l0LWJveDtcbiAgLXdlYmtpdC1saW5lLWNsYW1wOiAyO1xuICAvKiBMaW1pdCB0byAyIGxpbmVzICovXG4gIC13ZWJraXQtYm94LW9yaWVudDogdmVydGljYWw7XG59XG4uY2hhcmFjdGVyLWdyb3VwaW5nLWxpc3QgLndvcmRpbmcgaW5wdXRbdHlwZT10ZXh0XSB7XG4gIHRleHQtdHJhbnNmb3JtOiB1cHBlcmNhc2U7XG4gIHdpZHRoOiAxMDAlO1xuICBtaW4taGVpZ2h0OiAzMHB4O1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjZmZmZmZmO1xuICBjb2xvcjogIzAwMDAwMDtcbiAgZm9udC1zaXplOiAxMnB4O1xuICBmb250LXdlaWdodDogNTAwO1xufVxuLmNoYXJhY3Rlci1ncm91cGluZy1saXN0IC53b3JkaW5nIC50ZXh0LWFsaWduIHtcbiAgdGV4dC1hbGlnbjogY2VudGVyO1xufVxuLmNoYXJhY3Rlci1ncm91cGluZy1saXN0IC53b3JkaW5nIC5hcnJvdyB7XG4gIG1hcmdpbi10b3A6IDEwcHg7XG4gIGZsb2F0OiBsZWZ0O1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjZmZmZmZmO1xuICB3aWR0aDogMTIlO1xuICBoZWlnaHQ6IDI0cHg7XG4gIGN1cnNvcjogcG9pbnRlcjtcbiAgdGV4dC1hbGlnbjogY2VudGVyO1xuICBjb2xvcjogIzAwMDAwMDtcbiAgbWFyZ2luLWxlZnQ6IDVweDtcbn1cbi5jaGFyYWN0ZXItZ3JvdXBpbmctbGlzdCAud29yZGluZyAuYXJyb3cgLm1hdC1pY29uIHtcbiAgZm9udC1zaXplOiA0NHB4O1xuICB3aWR0aDogMTAwJTtcbiAgbGluZS1oZWlnaHQ6IDI2cHg7XG59XG4uY2hhcmFjdGVyLWdyb3VwaW5nLWxpc3QgLndvcmRpbmcgOjpuZy1kZWVwIC5tYXQtc2VsZWN0aW9uLWxpc3Qge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiB3aGl0ZTtcbiAgbWluLWhlaWdodDogMTAwcHg7XG4gIGhlaWdodDogMDtcbiAgb3ZlcmZsb3c6IGF1dG87XG4gIHBhZGRpbmctdG9wOiAwO1xufVxuLmNoYXJhY3Rlci1ncm91cGluZy1saXN0IC53b3JkaW5nIC5tYXQtbGlzdC1vcHRpb24ge1xuICBoZWlnaHQ6IGF1dG8gIWltcG9ydGFudDtcbn1cbi5jaGFyYWN0ZXItZ3JvdXBpbmctbGlzdCAud29yZGluZyAuc2VsZWN0LWxpc3Qge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjMDA3N0M4O1xuICBjb2xvcjogI2ZmZmZmZjtcbiAgbWluLWhlaWdodDogMThweCAhaW1wb3J0YW50O1xufVxuLmNoYXJhY3Rlci1ncm91cGluZy1saXN0IC53b3JkaW5nIC5tYXQtbGlzdC1pdGVtLWNvbnRlbnQge1xuICBwYWRkaW5nOiAwICFpbXBvcnRhbnQ7XG59XG4uY2hhcmFjdGVyLWdyb3VwaW5nLWxpc3QgLndvcmRpbmcgLmFjdGlvbi1idG4ge1xuICBkaXNwbGF5OiBmbGV4O1xuICBmbG9hdDogcmlnaHQ7XG4gIG1hcmdpbi10b3A6IDEycHg7XG59XG4uY2hhcmFjdGVyLWdyb3VwaW5nLWxpc3QgLndvcmRpbmcgLmFjdGlvbi1idG4gLm1hdC1mbGF0LWJ1dHRvbiB7XG4gIGhlaWdodDogMzZweDtcbiAgZm9udC1mYW1pbHk6IFJvYm90bywgXCJIZWx2ZXRpY2EgTmV1ZVwiLCBzYW5zLXNlcmlmO1xuICBmb250LXNpemU6IDEzcHg7XG4gIGZvbnQtd2VpZ2h0OiA1MDA7XG4gIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgYm9yZGVyOiAwcHggc29saWQ7XG4gIHBhZGRpbmc6IDAgIWltcG9ydGFudDtcbiAgYm9yZGVyLXJhZGl1czogMHB4O1xufVxuLmNoYXJhY3Rlci1ncm91cGluZy1saXN0IC53b3JkaW5nIC5hY3Rpb24tYnRuIC5tYXQtZmxhdC1idXR0b246bnRoLWNoaWxkKDEpIHtcbiAgbWFyZ2luLXJpZ2h0OiA1cHg7XG59XG5cbi5jbHMtZGlzcGxheW5vbmUge1xuICBkaXNwbGF5OiBub25lICFpbXBvcnRhbnQ7XG59Il19 */\"","import { Component, Input, Output, EventEmitter, OnChanges } from '@angular/core';\n\n@Component({\n selector: 'app-character-grouping-list',\n templateUrl: './character-grouping-list.component.html',\n styleUrls: ['./character-grouping-list.component.scss']\n})\nexport class characterGroupingList implements OnChanges {\n @Input() selectedListItem: string;\n @Input() editValue: string[] = [];\n @Output() setCharacterGrouping = new EventEmitter();\n wording: string;\n selectedItem: string;\n selectedItemIndex;\n groupingText: string[] = [];\n isSubmitted: boolean = false;\n constructor() { }\n ngOnChanges() {\n if (this.editValue && this.editValue.hasOwnProperty('value')) {\n this.editValue = this.editValue['value'].split('ou');\n this.groupingText = this.editValue.map(item => item.replace(/\\[/g, '').replace(/\\]/g, ''));\n }\n this.enableButton();\n }\n\n moveDown() {\n if (this.wording) { // && !this.groupingText.includes(this.wording.toLocaleUpperCase())) {\n this.groupingText.push(this.wording.toLocaleUpperCase());\n this.isSubmitted = true;\n this.wording = '';\n }\n }\n moveUp() {\n // this.groupingText = this.groupingText.filter(item => this.selectedItem !== item);\n if (this.selectedItemIndex >= 0) {\n this.groupingText.splice(this.selectedItemIndex, 1);\n this.wording = this.selectedItem;\n this.enableButton();\n }\n }\n\n enableButton() {\n if (this.groupingText.length === 0) {\n this.isSubmitted = false;\n } else {\n this.isSubmitted = true;\n }\n this.selectedItem = undefined;\n this.selectedItemIndex = undefined;\n }\n\n checkSelectedListItem(value, idx) {\n this.selectedItem = value;\n this.selectedItemIndex = idx;\n }\n\n submit() {\n let value = {\n value: this.groupingText,\n displayGroupingForm: false\n };\n this.setCharacterGrouping.emit(value);\n }\n\n cancel() {\n let value = {\n value: '',\n displayGroupingForm: false\n };\n this.setCharacterGrouping.emit(value);\n }\n}","export default \".character-list {\\n width: 80%;\\n margin: 7%;\\n background-color: #006cb5;\\n color: white;\\n font-family: Roboto, \\\"Helvetica Neue\\\", sans-serif !important;\\n font-size: 14px !important;\\n}\\n.character-list .custom-scroll-bar {\\n min-height: 110px;\\n height: 0;\\n overflow-y: scroll;\\n overflow-x: hidden;\\n margin-right: 5px;\\n}\\n.character-list .custom-scroll-bar::-webkit-scrollbar {\\n width: 10px;\\n}\\n.character-list .custom-scroll-bar::-webkit-scrollbar-thumb {\\n background-color: #E9EEF0;\\n border-radius: 5px;\\n}\\n.character-list .title-span {\\n font-weight: 500;\\n line-height: 17px;\\n}\\n.character-list .text-span {\\n font-size: 11px;\\n font-weight: 400;\\n line-height: 28px;\\n}\\n.character-list .postion-input {\\n width: 50px;\\n margin-left: 20px;\\n background-color: #ffffff;\\n color: #000000;\\n}\\n.character-list .character-radio-group {\\n display: flex;\\n flex-direction: column;\\n}\\n.character-list .character-radio-group .mat-radio-button {\\n margin: 3px;\\n}\\n.character-list .character-confirmation {\\n position: absolute;\\n top: 18%;\\n right: 4%;\\n}\\n.character-list .character-confirmation .label-class {\\n margin-left: 22%;\\n font-size: 12px;\\n}\\n.character-list .character-confirmation .value-input {\\n width: 77%;\\n height: 30px;\\n margin-bottom: 3%;\\n margin-left: 22%;\\n margin-top: 2%;\\n}\\n.character-list .character-confirmation .character-size {\\n font-size: 10px;\\n margin-left: 21%;\\n margin-bottom: 10%;\\n font-style: italic;\\n}\\n.character-list .character-confirmation .button-cls {\\n float: right;\\n clear: both;\\n}\\n.character-list .character-confirmation .button-cls button {\\n font-family: Roboto, \\\"Helvetica Neue\\\", sans-serif !important;\\n width: 75px;\\n height: 36px;\\n font-weight: 500;\\n text-align: center;\\n border: 0px solid;\\n padding: 0 !important;\\n border-radius: 0px;\\n}\\n.character-list .character-confirmation .dan-list-card .title-span-Abbr {\\n font-size: 12px;\\n padding: 40px 0 10px 0;\\n}\\n.character-list .character-confirmation .dan-list-card .search-input {\\n width: 55%;\\n background-color: #ffffff;\\n height: 25px;\\n margin-bottom: 3%;\\n color: #000000;\\n text-transform: uppercase;\\n font-size: 12px;\\n}\\n.character-list .character-confirmation .dan-list-card input[type=checkbox] {\\n margin: 0;\\n width: 15px;\\n height: 16px;\\n vertical-align: top;\\n cursor: pointer;\\n}\\n.character-list .character-confirmation .dan-list-card input[type=checkbox]:checked + label:before {\\n background: #fff;\\n color: #006cb5;\\n text-align: center;\\n}\\n.character-list .character-confirmation .dan-list-card .form-check-label {\\n font-size: 12px;\\n line-height: 20px;\\n padding-left: 5px;\\n}\\n.character-list input::-webkit-outer-spin-button,\\n.character-list input::-webkit-inner-spin-button {\\n -webkit-appearance: none;\\n margin: 0;\\n}\\n.cls-displaynone {\\n display: none !important;\\n}\\n/*# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi91c3Ivc3JjL3NyYy9hcHAvY29tcG9uZW50L3F1ZXJ5L2dyb3VwaW5nL2NoYXJhY3Rlci1saXN0L2NoYXJhY3Rlci1saXN0LmNvbXBvbmVudC5zY3NzIiwic3JjL2FwcC9jb21wb25lbnQvcXVlcnkvZ3JvdXBpbmcvY2hhcmFjdGVyLWxpc3QvY2hhcmFjdGVyLWxpc3QuY29tcG9uZW50LnNjc3MiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUE7RUFDSSxVQUFBO0VBQ0EsVUFBQTtFQUVBLHlCQUFBO0VBQ0EsWUFBQTtFQUNBLDREQUFBO0VBQ0EsMEJBQUE7QUNBSjtBRENJO0VBQ0ksaUJBQUE7RUFDQSxTQUFBO0VBQ0Esa0JBQUE7RUFDQSxrQkFBQTtFQUNBLGlCQUFBO0FDQ1I7QURDSTtFQUNJLFdBQUE7QUNDUjtBRENJO0VBQ0kseUJBQUE7RUFDQSxrQkFBQTtBQ0NSO0FEQ0k7RUFDSSxnQkFBQTtFQUNBLGlCQUFBO0FDQ1I7QURDSTtFQUNJLGVBQUE7RUFDQSxnQkFBQTtFQUNBLGlCQUFBO0FDQ1I7QURDSTtFQUNJLFdBQUE7RUFDQSxpQkFBQTtFQUNBLHlCQUFBO0VBQ0EsY0FBQTtBQ0NSO0FEQ0k7RUFDSSxhQUFBO0VBQ0Esc0JBQUE7QUNDUjtBREFRO0VBQ0ksV0FBQTtBQ0VaO0FEQ0k7RUFDSSxrQkFBQTtFQUNBLFFBQUE7RUFDQSxTQUFBO0FDQ1I7QURBUTtFQUNJLGdCQUFBO0VBQ0EsZUFBQTtBQ0VaO0FEQVE7RUFDSSxVQUFBO0VBQ0EsWUFBQTtFQUNBLGlCQUFBO0VBQ0EsZ0JBQUE7RUFDQSxjQUFBO0FDRVo7QURDUTtFQUNJLGVBQUE7RUFDQSxnQkFBQTtFQUNBLGtCQUFBO0VBQ0Esa0JBQUE7QUNDWjtBRENRO0VBQ0ksWUFBQTtFQUNBLFdBQUE7QUNDWjtBREFZO0VBQ0ksNERBQUE7RUFDQSxXQUFBO0VBQ0EsWUFBQTtFQUNBLGdCQUFBO0VBQ0Esa0JBQUE7RUFDQSxpQkFBQTtFQUNBLHFCQUFBO0VBQ0Esa0JBQUE7QUNFaEI7QURFWTtFQUNJLGVBQUE7RUFDQSxzQkFBQTtBQ0FoQjtBREVZO0VBQ0ksVUFBQTtFQUNBLHlCQUFBO0VBQ0EsWUFBQTtFQUNBLGlCQUFBO0VBQ0EsY0FBQTtFQUNBLHlCQUFBO0VBQ0EsZUFBQTtBQ0FoQjtBREVZO0VBQ0ksU0FBQTtFQUNBLFdBQUE7RUFDQSxZQUFBO0VBQ0EsbUJBQUE7RUFDQSxlQUFBO0FDQWhCO0FERVk7RUFDSSxnQkFBQTtFQUNBLGNBQUE7RUFDQSxrQkFBQTtBQ0FoQjtBREVZO0VBQ0ksZUFBQTtFQUNBLGlCQUFBO0VBQ0EsaUJBQUE7QUNBaEI7QURLUTs7RUFFQSx3QkFBQTtFQUNBLFNBQUE7QUNIUjtBRE1BO0VBQ0ksd0JBQUE7QUNISiIsImZpbGUiOiJzcmMvYXBwL2NvbXBvbmVudC9xdWVyeS9ncm91cGluZy9jaGFyYWN0ZXItbGlzdC9jaGFyYWN0ZXItbGlzdC5jb21wb25lbnQuc2NzcyIsInNvdXJjZXNDb250ZW50IjpbIi5jaGFyYWN0ZXItbGlzdCB7XG4gICAgd2lkdGg6IDgwJTtcbiAgICBtYXJnaW46IDclO1xuICAgIC8vIG1hcmdpbi1sZWZ0OiAxMHB4O1xuICAgIGJhY2tncm91bmQtY29sb3I6ICMwMDZjYjU7XG4gICAgY29sb3I6d2hpdGU7XG4gICAgZm9udC1mYW1pbHk6IFJvYm90bywgXCJIZWx2ZXRpY2EgTmV1ZVwiLCBzYW5zLXNlcmlmICFpbXBvcnRhbnQ7XG4gICAgZm9udC1zaXplOiAxNHB4ICFpbXBvcnRhbnQ7XG4gICAgLmN1c3RvbS1zY3JvbGwtYmFye1xuICAgICAgICBtaW4taGVpZ2h0OiAxMTBweDtcbiAgICAgICAgaGVpZ2h0OiAwO1xuICAgICAgICBvdmVyZmxvdy15OnNjcm9sbDtcbiAgICAgICAgb3ZlcmZsb3cteDogaGlkZGVuO1xuICAgICAgICBtYXJnaW4tcmlnaHQ6IDVweDtcbiAgICB9XG4gICAgLmN1c3RvbS1zY3JvbGwtYmFyOjotd2Via2l0LXNjcm9sbGJhcntcbiAgICAgICAgd2lkdGg6IDEwcHg7XG4gICAgfVxuICAgIC5jdXN0b20tc2Nyb2xsLWJhcjo6LXdlYmtpdC1zY3JvbGxiYXItdGh1bWJ7XG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6ICNFOUVFRjA7XG4gICAgICAgIGJvcmRlci1yYWRpdXM6IDVweDtcbiAgICB9XG4gICAgLnRpdGxlLXNwYW57XG4gICAgICAgIGZvbnQtd2VpZ2h0OiA1MDA7XG4gICAgICAgIGxpbmUtaGVpZ2h0OiAxN3B4O1xuICAgIH1cbiAgICAudGV4dC1zcGFue1xuICAgICAgICBmb250LXNpemU6IDExcHg7XG4gICAgICAgIGZvbnQtd2VpZ2h0OiA0MDA7XG4gICAgICAgIGxpbmUtaGVpZ2h0OiAyOHB4O1xuICAgIH1cbiAgICAucG9zdGlvbi1pbnB1dCB7XG4gICAgICAgIHdpZHRoOiA1MHB4O1xuICAgICAgICBtYXJnaW4tbGVmdDogMjBweDsgXG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6ICNmZmZmZmY7IFxuICAgICAgICBjb2xvcjogIzAwMDAwMDtcbiAgICB9XG4gICAgLmNoYXJhY3Rlci1yYWRpby1ncm91cCB7XG4gICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XG4gICAgICAgIC5tYXQtcmFkaW8tYnV0dG9uIHtcbiAgICAgICAgICAgIG1hcmdpbjogM3B4O1xuICAgICAgICB9XG4gICAgfVxuICAgIC5jaGFyYWN0ZXItY29uZmlybWF0aW9uIHtcbiAgICAgICAgcG9zaXRpb246YWJzb2x1dGU7XG4gICAgICAgIHRvcDoxOCU7XG4gICAgICAgIHJpZ2h0OjQlO1xuICAgICAgICAubGFiZWwtY2xhc3Mge1xuICAgICAgICAgICAgbWFyZ2luLWxlZnQ6IDIyJTtcbiAgICAgICAgICAgIGZvbnQtc2l6ZTogMTJweDtcbiAgICAgICAgfVxuICAgICAgICAudmFsdWUtaW5wdXQge1xuICAgICAgICAgICAgd2lkdGg6IDc3JTtcbiAgICAgICAgICAgIGhlaWdodDogMzBweDtcbiAgICAgICAgICAgIG1hcmdpbi1ib3R0b206IDMlO1xuICAgICAgICAgICAgbWFyZ2luLWxlZnQ6IDIyJTtcbiAgICAgICAgICAgIG1hcmdpbi10b3A6IDIlO1xuICAgICAgICAgICAgLy8gdGV4dC10cmFuc2Zvcm06IHVwcGVyY2FzZTtcbiAgICAgICAgfVxuICAgICAgICAuY2hhcmFjdGVyLXNpemUge1xuICAgICAgICAgICAgZm9udC1zaXplOiAxMHB4O1xuICAgICAgICAgICAgbWFyZ2luLWxlZnQ6IDIxJTtcbiAgICAgICAgICAgIG1hcmdpbi1ib3R0b206IDEwJTtcbiAgICAgICAgICAgIGZvbnQtc3R5bGU6IGl0YWxpYztcbiAgICAgICAgfVxuICAgICAgICAuYnV0dG9uLWNscyB7XG4gICAgICAgICAgICBmbG9hdDogcmlnaHQ7XG4gICAgICAgICAgICBjbGVhcjogYm90aDtcbiAgICAgICAgICAgIGJ1dHRvbiB7XG4gICAgICAgICAgICAgICAgZm9udC1mYW1pbHk6IFJvYm90bywgXCJIZWx2ZXRpY2EgTmV1ZVwiLCBzYW5zLXNlcmlmICFpbXBvcnRhbnQ7XG4gICAgICAgICAgICAgICAgd2lkdGg6IDc1cHg7XG4gICAgICAgICAgICAgICAgaGVpZ2h0OiAzNnB4O1xuICAgICAgICAgICAgICAgIGZvbnQtd2VpZ2h0OiA1MDA7XG4gICAgICAgICAgICAgICAgdGV4dC1hbGlnbjogY2VudGVyO1xuICAgICAgICAgICAgICAgIGJvcmRlcjogMHB4IHNvbGlkO1xuICAgICAgICAgICAgICAgIHBhZGRpbmc6IDAgIWltcG9ydGFudDtcbiAgICAgICAgICAgICAgICBib3JkZXItcmFkaXVzOiAwcHg7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgICAgLmRhbi1saXN0LWNhcmQge1xuICAgICAgICAgICAgLnRpdGxlLXNwYW4tQWJicntcbiAgICAgICAgICAgICAgICBmb250LXNpemU6IDEycHg7XG4gICAgICAgICAgICAgICAgcGFkZGluZzogNDBweCAwIDEwcHggMDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIC5zZWFyY2gtaW5wdXQge1xuICAgICAgICAgICAgICAgIHdpZHRoOiA1NSU7XG4gICAgICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogI2ZmZmZmZjtcbiAgICAgICAgICAgICAgICBoZWlnaHQ6IDI1cHg7XG4gICAgICAgICAgICAgICAgbWFyZ2luLWJvdHRvbTogMyU7XG4gICAgICAgICAgICAgICAgY29sb3I6ICMwMDAwMDA7XG4gICAgICAgICAgICAgICAgdGV4dC10cmFuc2Zvcm06IHVwcGVyY2FzZTtcbiAgICAgICAgICAgICAgICBmb250LXNpemU6IDEycHg7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBpbnB1dFt0eXBlPVwiY2hlY2tib3hcIl0ge1xuICAgICAgICAgICAgICAgIG1hcmdpbjogMDtcbiAgICAgICAgICAgICAgICB3aWR0aDogMTVweDtcbiAgICAgICAgICAgICAgICBoZWlnaHQ6IDE2cHg7XG4gICAgICAgICAgICAgICAgdmVydGljYWwtYWxpZ246IHRvcDtcbiAgICAgICAgICAgICAgICBjdXJzb3I6IHBvaW50ZXI7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBpbnB1dFt0eXBlPVwiY2hlY2tib3hcIl06Y2hlY2tlZCArIGxhYmVsOmJlZm9yZSB7XG4gICAgICAgICAgICAgICAgYmFja2dyb3VuZDogI2ZmZjtcbiAgICAgICAgICAgICAgICBjb2xvcjogIzAwNmNiNTtcbiAgICAgICAgICAgICAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIC5mb3JtLWNoZWNrLWxhYmVsIHtcbiAgICAgICAgICAgICAgICBmb250LXNpemU6IDEycHg7XG4gICAgICAgICAgICAgICAgbGluZS1oZWlnaHQ6IDIwcHg7XG4gICAgICAgICAgICAgICAgcGFkZGluZy1sZWZ0OiA1cHg7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH0gICAgICBcbiAgICBcbiAgICAgICAgaW5wdXQ6Oi13ZWJraXQtb3V0ZXItc3Bpbi1idXR0b24sXG4gICAgICAgIGlucHV0Ojotd2Via2l0LWlubmVyLXNwaW4tYnV0dG9uIHtcbiAgICAgICAgLXdlYmtpdC1hcHBlYXJhbmNlOiBub25lO1xuICAgICAgICBtYXJnaW46IDA7XG4gICAgICAgIH1cbn1cbi5jbHMtZGlzcGxheW5vbmV7XG4gICAgZGlzcGxheTpub25lICFpbXBvcnRhbnQ7XG59IiwiLmNoYXJhY3Rlci1saXN0IHtcbiAgd2lkdGg6IDgwJTtcbiAgbWFyZ2luOiA3JTtcbiAgYmFja2dyb3VuZC1jb2xvcjogIzAwNmNiNTtcbiAgY29sb3I6IHdoaXRlO1xuICBmb250LWZhbWlseTogUm9ib3RvLCBcIkhlbHZldGljYSBOZXVlXCIsIHNhbnMtc2VyaWYgIWltcG9ydGFudDtcbiAgZm9udC1zaXplOiAxNHB4ICFpbXBvcnRhbnQ7XG59XG4uY2hhcmFjdGVyLWxpc3QgLmN1c3RvbS1zY3JvbGwtYmFyIHtcbiAgbWluLWhlaWdodDogMTEwcHg7XG4gIGhlaWdodDogMDtcbiAgb3ZlcmZsb3cteTogc2Nyb2xsO1xuICBvdmVyZmxvdy14OiBoaWRkZW47XG4gIG1hcmdpbi1yaWdodDogNXB4O1xufVxuLmNoYXJhY3Rlci1saXN0IC5jdXN0b20tc2Nyb2xsLWJhcjo6LXdlYmtpdC1zY3JvbGxiYXIge1xuICB3aWR0aDogMTBweDtcbn1cbi5jaGFyYWN0ZXItbGlzdCAuY3VzdG9tLXNjcm9sbC1iYXI6Oi13ZWJraXQtc2Nyb2xsYmFyLXRodW1iIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogI0U5RUVGMDtcbiAgYm9yZGVyLXJhZGl1czogNXB4O1xufVxuLmNoYXJhY3Rlci1saXN0IC50aXRsZS1zcGFuIHtcbiAgZm9udC13ZWlnaHQ6IDUwMDtcbiAgbGluZS1oZWlnaHQ6IDE3cHg7XG59XG4uY2hhcmFjdGVyLWxpc3QgLnRleHQtc3BhbiB7XG4gIGZvbnQtc2l6ZTogMTFweDtcbiAgZm9udC13ZWlnaHQ6IDQwMDtcbiAgbGluZS1oZWlnaHQ6IDI4cHg7XG59XG4uY2hhcmFjdGVyLWxpc3QgLnBvc3Rpb24taW5wdXQge1xuICB3aWR0aDogNTBweDtcbiAgbWFyZ2luLWxlZnQ6IDIwcHg7XG4gIGJhY2tncm91bmQtY29sb3I6ICNmZmZmZmY7XG4gIGNvbG9yOiAjMDAwMDAwO1xufVxuLmNoYXJhY3Rlci1saXN0IC5jaGFyYWN0ZXItcmFkaW8tZ3JvdXAge1xuICBkaXNwbGF5OiBmbGV4O1xuICBmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xufVxuLmNoYXJhY3Rlci1saXN0IC5jaGFyYWN0ZXItcmFkaW8tZ3JvdXAgLm1hdC1yYWRpby1idXR0b24ge1xuICBtYXJnaW46IDNweDtcbn1cbi5jaGFyYWN0ZXItbGlzdCAuY2hhcmFjdGVyLWNvbmZpcm1hdGlvbiB7XG4gIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgdG9wOiAxOCU7XG4gIHJpZ2h0OiA0JTtcbn1cbi5jaGFyYWN0ZXItbGlzdCAuY2hhcmFjdGVyLWNvbmZpcm1hdGlvbiAubGFiZWwtY2xhc3Mge1xuICBtYXJnaW4tbGVmdDogMjIlO1xuICBmb250LXNpemU6IDEycHg7XG59XG4uY2hhcmFjdGVyLWxpc3QgLmNoYXJhY3Rlci1jb25maXJtYXRpb24gLnZhbHVlLWlucHV0IHtcbiAgd2lkdGg6IDc3JTtcbiAgaGVpZ2h0OiAzMHB4O1xuICBtYXJnaW4tYm90dG9tOiAzJTtcbiAgbWFyZ2luLWxlZnQ6IDIyJTtcbiAgbWFyZ2luLXRvcDogMiU7XG59XG4uY2hhcmFjdGVyLWxpc3QgLmNoYXJhY3Rlci1jb25maXJtYXRpb24gLmNoYXJhY3Rlci1zaXplIHtcbiAgZm9udC1zaXplOiAxMHB4O1xuICBtYXJnaW4tbGVmdDogMjElO1xuICBtYXJnaW4tYm90dG9tOiAxMCU7XG4gIGZvbnQtc3R5bGU6IGl0YWxpYztcbn1cbi5jaGFyYWN0ZXItbGlzdCAuY2hhcmFjdGVyLWNvbmZpcm1hdGlvbiAuYnV0dG9uLWNscyB7XG4gIGZsb2F0OiByaWdodDtcbiAgY2xlYXI6IGJvdGg7XG59XG4uY2hhcmFjdGVyLWxpc3QgLmNoYXJhY3Rlci1jb25maXJtYXRpb24gLmJ1dHRvbi1jbHMgYnV0dG9uIHtcbiAgZm9udC1mYW1pbHk6IFJvYm90bywgXCJIZWx2ZXRpY2EgTmV1ZVwiLCBzYW5zLXNlcmlmICFpbXBvcnRhbnQ7XG4gIHdpZHRoOiA3NXB4O1xuICBoZWlnaHQ6IDM2cHg7XG4gIGZvbnQtd2VpZ2h0OiA1MDA7XG4gIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgYm9yZGVyOiAwcHggc29saWQ7XG4gIHBhZGRpbmc6IDAgIWltcG9ydGFudDtcbiAgYm9yZGVyLXJhZGl1czogMHB4O1xufVxuLmNoYXJhY3Rlci1saXN0IC5jaGFyYWN0ZXItY29uZmlybWF0aW9uIC5kYW4tbGlzdC1jYXJkIC50aXRsZS1zcGFuLUFiYnIge1xuICBmb250LXNpemU6IDEycHg7XG4gIHBhZGRpbmc6IDQwcHggMCAxMHB4IDA7XG59XG4uY2hhcmFjdGVyLWxpc3QgLmNoYXJhY3Rlci1jb25maXJtYXRpb24gLmRhbi1saXN0LWNhcmQgLnNlYXJjaC1pbnB1dCB7XG4gIHdpZHRoOiA1NSU7XG4gIGJhY2tncm91bmQtY29sb3I6ICNmZmZmZmY7XG4gIGhlaWdodDogMjVweDtcbiAgbWFyZ2luLWJvdHRvbTogMyU7XG4gIGNvbG9yOiAjMDAwMDAwO1xuICB0ZXh0LXRyYW5zZm9ybTogdXBwZXJjYXNlO1xuICBmb250LXNpemU6IDEycHg7XG59XG4uY2hhcmFjdGVyLWxpc3QgLmNoYXJhY3Rlci1jb25maXJtYXRpb24gLmRhbi1saXN0LWNhcmQgaW5wdXRbdHlwZT1jaGVja2JveF0ge1xuICBtYXJnaW46IDA7XG4gIHdpZHRoOiAxNXB4O1xuICBoZWlnaHQ6IDE2cHg7XG4gIHZlcnRpY2FsLWFsaWduOiB0b3A7XG4gIGN1cnNvcjogcG9pbnRlcjtcbn1cbi5jaGFyYWN0ZXItbGlzdCAuY2hhcmFjdGVyLWNvbmZpcm1hdGlvbiAuZGFuLWxpc3QtY2FyZCBpbnB1dFt0eXBlPWNoZWNrYm94XTpjaGVja2VkICsgbGFiZWw6YmVmb3JlIHtcbiAgYmFja2dyb3VuZDogI2ZmZjtcbiAgY29sb3I6ICMwMDZjYjU7XG4gIHRleHQtYWxpZ246IGNlbnRlcjtcbn1cbi5jaGFyYWN0ZXItbGlzdCAuY2hhcmFjdGVyLWNvbmZpcm1hdGlvbiAuZGFuLWxpc3QtY2FyZCAuZm9ybS1jaGVjay1sYWJlbCB7XG4gIGZvbnQtc2l6ZTogMTJweDtcbiAgbGluZS1oZWlnaHQ6IDIwcHg7XG4gIHBhZGRpbmctbGVmdDogNXB4O1xufVxuLmNoYXJhY3Rlci1saXN0IGlucHV0Ojotd2Via2l0LW91dGVyLXNwaW4tYnV0dG9uLFxuLmNoYXJhY3Rlci1saXN0IGlucHV0Ojotd2Via2l0LWlubmVyLXNwaW4tYnV0dG9uIHtcbiAgLXdlYmtpdC1hcHBlYXJhbmNlOiBub25lO1xuICBtYXJnaW46IDA7XG59XG5cbi5jbHMtZGlzcGxheW5vbmUge1xuICBkaXNwbGF5OiBub25lICFpbXBvcnRhbnQ7XG59Il19 */\"","import { Component, Input, Output, EventEmitter, OnChanges } from '@angular/core';\nimport { BackendApiService } from '../../../../services/backend-api/backend-api.service';\nimport { UtilService } from '../../../../services/util/util.service';\n\n@Component({\n selector: 'app-character-list',\n templateUrl: './character-list.component.html',\n styleUrls: ['./character-list.component.scss']\n})\n\nexport class CharacterListComponent implements OnChanges {\n @Input() selectedInputValue: string;\n @Input() editValue: any;\n @Output() setCharacterData = new EventEmitter();\n positionValue: string;\n characterListInputValue: string;\n characterValue: string;\n danListTableValues: string;\n danListOriginalTableValues: Array;\n selectedDanList: Array = [];\n listSearch: string;\n characterList = [{ name: 'EQUAL', value: '=' },\n { name: 'DANLIST', value: 'Dans liste' },\n { name: 'SUPERIOR', value: '>=' },\n { name: 'INFERIOR', value: '<=' },\n { name: 'CONTENT', value: 'Cont' },\n { name: 'POSITION', value: 'position' },\n { name: 'DIFFERENT', value: '<>' }];\n blockedFields = ['Delai RAF MADP Previsionnelle§Leadtime To be done before MADP _ Arrival at Dealer',\n 'Identifiant partenaire§Identification Partner',\n 'Invariant BCV§Invariant BCV',\n 'Delai RAF MADP Previsionnelle§Leadtime To be done before MADP _ Arrival at Dealer',\n 'Numero commande§Customer Order Number',\n 'Numero Chassis§VIN',\n 'Numero de Batterie§Battery Number',\n 'Numero de Reception Communautaire§Numero de Reception Communautaire',\n 'Numero de Reception Nationale§Numero de Reception Nationale',\n 'Numero de sequence entree FF§Sequence number at the end of flexibility',\n 'Numero de serie§Serial number',\n 'Numero fabrication§Manufacturing Number',\n 'Numero Identification§Identification Number',\n 'Numero Moteur§Engine Number',\n 'Options Zone Etendue§Options Extended Zone',\n 'Ordre commercial initial§Commercial Order _ Initial',\n 'Ordre commercial§Commercial Order',\n 'TVV complet§Full TVV',\n 'VIS provisoire§Provisional VIS']\n\n constructor(readonly apiService: BackendApiService,\n readonly utilService: UtilService) { }\n\n ngOnChanges() {\n if (this.editValue && this.editValue.hasOwnProperty('format')) {\n if (this.editValue.format === 'position') {\n this.characterValue = this.editValue.format;\n this.editValue = this.editValue.value.split(' ');\n // this.characterListInputValue = this.editValue[2];\n // this.positionValue = this.editValue[1].match(/\\((.*)\\)/)[1].replace('=', '');\n this.characterListInputValue = this.editValue[1];\n this.positionValue = this.editValue[0].match(/\\((.*)\\)/)[0].replace('=', '').replace(\"(\", \"\").replace(\")\", \"\");\n } else if (this.editValue.format === 'Dans liste') {\n this.characterValue = this.editValue.format;\n // this.selectedDanList = this.editValue.value.substr(1, this.editValue.value.length - 1).split('/'); //this.editValue.value.split('/');\n // if (this.editValue.value.split('/')[0] !== \"\") {\n // this.selectedDanList = this.editValue.value.trim().split('/');\n // } else {\n this.selectedDanList = this.editValue.value.split('/');\n if (this.selectedDanList[0].substring(0, 2) === \" \" && this.selectedDanList[0].length > this.editValue.size) {\n this.selectedDanList[0] = this.selectedDanList[0].replace(\" \", \"\");\n }\n if (this.selectedDanList[0].substring(0, 1) === \" \" && this.selectedDanList[0].length > this.editValue.size) {\n this.selectedDanList[0] = this.selectedDanList[0].substring(1, this.selectedDanList[0].length);\n\n // for (let index = 0; index < this.selectedDanList.length; index++) {\n // const element = this.selectedDanList[index];\n\n // for (let index1 = element.length; index1 < this.editValue.size; index1++) {\n // this.selectedDanList[index] = this.selectedDanList[index] + \" \";\n // }\n // }\n }\n // }\n this.eventChange();\n } else {\n this.characterValue = this.editValue.format;\n this.editValue = this.editValue.value.split(this.editValue.format);\n this.characterListInputValue = this.editValue[1].substr(1, this.editValue[1].length - 1);\n }\n }\n }\n\n maxLengthCheck(object) {\n object.target.value = Math.abs(object.target.value);\n if (object.target.value.length > object.target.maxLength)\n object.target.value = object.target.value.slice(0, object.target.maxLength)\n }\n\n eventChange() {\n if (this.characterValue === 'Dans liste' && !this.isDanList()) {\n const queryParam = { \"input\": `DICO@${this.selectedInputValue['ipn']}@${this.selectedInputValue['selectedTable']}@${this.selectedInputValue['longLabel']}@`, \"region\": this.getFavoriteRegion() };\n this.apiService.getObjectSize(queryParam).subscribe(res => {\n if (res.noObjects > 0) {\n const queryParam1 = { \"input\": `DICO@${this.selectedInputValue['ipn']}@${this.selectedInputValue['selectedTable']}@${this.selectedInputValue['longLabel']}@0@${res.noObjects}@`, \"region\": this.getFavoriteRegion() };\n this.apiService.getChoiceTableDetails(queryParam1).subscribe(objList => {\n this.danListTableValues = objList;\n this.danListTableValues['lists'] = this.danListTableValues['lists'].sort(this.utilService.sortArraySpecial);\n this.danListOriginalTableValues = objList.lists.sort(this.utilService.sortArraySpecial);\n this.selectedDanList = [];\n for (let item of this.editValue.value.split('/')) {\n if (item.substring(0, 1) === \" \" && item.length > this.editValue.size) {\n item = item.replace(\" \", \"\");\n }\n if (item.substring(0, 1) !== \" \" || item.substring(0, 1) !== \"\") {\n if (this.danListTableValues['lists'].filter(a => a === item).length > 0) {\n this.selectedDanList.push(item);\n } else {\n if (item.substring(0, 1) === \" \") {\n this.selectedDanList.push(item);\n }\n }\n }\n }\n })\n }\n })\n }\n }\n\n isDanList() {\n let list = [];\n this.blockedFields.forEach(el => {\n list.push(el.toLowerCase());\n })\n if (list.includes(this.selectedInputValue['longLabel'].toLowerCase())) {\n return true;\n } else {\n return false;\n }\n }\n\n getFavoriteRegion() {\n if (this.selectedInputValue['region'] === \"Europe\") {\n return \"PIL\";\n } else {\n return \"PIM\";\n }\n }\n\n searchCharacter() {\n this.danListTableValues['lists'] = this.danListOriginalTableValues.filter(a => a.toUpperCase().includes(this.listSearch.toUpperCase()))\n }\n\n isSelected(value: string): boolean {\n\n /**** SONAR : Remove this conditional structure or edit its code blocks so that they're not all the same. ****/\n // // return this.selectedDanList.indexOf(value) >= 0;\n // if (value.trim() === '') {\n // return this.selectedDanList.filter(x => x.trim() === value.trim()).length > 0;\n // } else {\n // // return this.selectedDanList.indexOf(value) >= 0;\n // return this.selectedDanList.filter(x => x.trim() === value.trim()).length > 0;\n // }\n\n return this.selectedDanList.filter(x => x.trim() === value.trim()).length > 0;\n }\n\n onChange(value: string, checked: boolean) {\n if (checked) {\n this.selectedDanList.push(value);\n // console.log(\"before\", this.selectedDanList)\n // debugger\n const sorter = this.utilService.MySort(' ?*!@_.()#^&%-=+01234567989abcdefghijklmnopqrstuvwxyz');\n this.selectedDanList = this.selectedDanList.sort(this.utilService.sortArraySpecial);\n // console.log(\"after\", this.selectedDanList)\n } else {\n let index = this.selectedDanList.indexOf(value);\n this.selectedDanList.splice(index, 1);\n }\n }\n\n restrictSpecialCharacter(event) {\n return event.charCode !== 64 && event.charCode !== 40 && event.charCode !== 41;\n }\n onOk() {\n let value;\n if (this.selectedDanList.length > 0 && this.characterValue === 'Dans liste') {\n value = {\n 'value': this.selectedDanList,\n 'formatType': this.characterValue\n }\n } else {\n value = {\n 'format': this.characterValue === 'position' ? `(${this.positionValue})=` : this.characterValue,\n 'value': this.characterListInputValue,\n 'formatType': this.characterValue,\n displayGroupingForm: false\n }\n }\n this.setCharacterData.emit(value);\n this.selectedDanList = []\n }\n\n onCancel() {\n let value = {\n value: '',\n formatType: '',\n displayGroupingForm: false\n };\n this.setCharacterData.emit(value);\n }\n}","export default \".character-number-list {\\n width: 80%;\\n margin: 7%;\\n height: 170px;\\n background-color: #009B77;\\n color: white;\\n font-family: Roboto, \\\"Helvetica Neue\\\", sans-serif !important;\\n font-size: 14px !important;\\n}\\n.character-number-list .title-span {\\n font-weight: 500;\\n line-height: 17px;\\n}\\n.character-number-list .text-span {\\n font-size: 11px;\\n font-weight: 400;\\n line-height: 28px;\\n}\\n.character-number-list .character-radio-group {\\n display: flex;\\n flex-direction: column;\\n}\\n.character-number-list .character-radio-group .mat-radio-button {\\n margin: 3px;\\n}\\n.character-number-list .character-confirmation {\\n position: absolute;\\n top: 20%;\\n right: 4%;\\n}\\n.character-number-list .character-confirmation .label-class {\\n margin-left: 55%;\\n font-size: 12px;\\n}\\n.character-number-list .character-confirmation .value-input {\\n width: 45%;\\n height: 30px;\\n margin-bottom: 10%;\\n margin-left: 55%;\\n margin-top: 2%;\\n text-transform: uppercase;\\n}\\n.character-number-list .postion-input {\\n width: 50px;\\n margin-left: 20px;\\n background-color: #ffffff;\\n color: #000000;\\n}\\n.character-number-list .action-btn {\\n display: flex;\\n float: right;\\n margin-top: 12px;\\n}\\n.character-number-list .action-btn .mat-flat-button {\\n height: 36px;\\n font-family: Roboto, \\\"Helvetica Neue\\\", sans-serif;\\n font-size: 13px;\\n font-weight: 500;\\n text-align: center;\\n border: 0px solid;\\n padding: 0px !important;\\n border-radius: 0px;\\n}\\n.character-number-list .action-btn .mat-flat-button:nth-child(1) {\\n margin-right: 5px;\\n}\\n.character-number-list input::-webkit-outer-spin-button,\\n.character-number-list input::-webkit-inner-spin-button {\\n -webkit-appearance: none;\\n margin: 0;\\n}\\n/*# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi91c3Ivc3JjL3NyYy9hcHAvY29tcG9uZW50L3F1ZXJ5L2dyb3VwaW5nL2NoYXJhY3Rlci1udW1iZXItbGlzdC9jaGFyYWN0ZXItbnVtYmVyLWxpc3QuY29tcG9uZW50LnNjc3MiLCJzcmMvYXBwL2NvbXBvbmVudC9xdWVyeS9ncm91cGluZy9jaGFyYWN0ZXItbnVtYmVyLWxpc3QvY2hhcmFjdGVyLW51bWJlci1saXN0LmNvbXBvbmVudC5zY3NzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBO0VBQ0ksVUFBQTtFQUNBLFVBQUE7RUFFQSxhQUFBO0VBQ0EseUJBQUE7RUFDQSxZQUFBO0VBQ0EsNERBQUE7RUFDQSwwQkFBQTtBQ0FKO0FEQ0k7RUFDSSxnQkFBQTtFQUNBLGlCQUFBO0FDQ1I7QURDSTtFQUNJLGVBQUE7RUFDQSxnQkFBQTtFQUNBLGlCQUFBO0FDQ1I7QURDSTtFQUNJLGFBQUE7RUFDQSxzQkFBQTtBQ0NSO0FEQVE7RUFDSSxXQUFBO0FDRVo7QURDSTtFQUNJLGtCQUFBO0VBQ0EsUUFBQTtFQUNBLFNBQUE7QUNDUjtBREFRO0VBQ0ksZ0JBQUE7RUFDQSxlQUFBO0FDRVo7QURBUTtFQUNJLFVBQUE7RUFDQSxZQUFBO0VBQ0Esa0JBQUE7RUFDQSxnQkFBQTtFQUNBLGNBQUE7RUFDQSx5QkFBQTtBQ0VaO0FEQ0k7RUFDSSxXQUFBO0VBQ0EsaUJBQUE7RUFDQSx5QkFBQTtFQUNBLGNBQUE7QUNDUjtBRENJO0VBQ0ksYUFBQTtFQUNBLFlBQUE7RUFDQSxnQkFBQTtBQ0NSO0FEQVE7RUFJSSxZQUFBO0VBQ0EsaURBQUE7RUFDQSxlQUFBO0VBQ0EsZ0JBQUE7RUFDQSxrQkFBQTtFQUNBLGlCQUFBO0VBQ0EsdUJBQUE7RUFDQSxrQkFBQTtBQ0RaO0FER1E7RUFDSSxpQkFBQTtBQ0RaO0FES1E7O0VBRUEsd0JBQUE7RUFDQSxTQUFBO0FDSFIiLCJmaWxlIjoic3JjL2FwcC9jb21wb25lbnQvcXVlcnkvZ3JvdXBpbmcvY2hhcmFjdGVyLW51bWJlci1saXN0L2NoYXJhY3Rlci1udW1iZXItbGlzdC5jb21wb25lbnQuc2NzcyIsInNvdXJjZXNDb250ZW50IjpbIi5jaGFyYWN0ZXItbnVtYmVyLWxpc3Qge1xuICAgIHdpZHRoOiA4MCU7XG4gICAgbWFyZ2luOiA3JTtcbiAgICAvLyBtYXJnaW4tbGVmdDogMTBweDtcbiAgICBoZWlnaHQ6IDE3MHB4O1xuICAgIGJhY2tncm91bmQtY29sb3I6ICMwMDlCNzc7XG4gICAgY29sb3I6d2hpdGU7XG4gICAgZm9udC1mYW1pbHk6IFJvYm90bywgXCJIZWx2ZXRpY2EgTmV1ZVwiLCBzYW5zLXNlcmlmICFpbXBvcnRhbnQ7XG4gICAgZm9udC1zaXplOiAxNHB4ICFpbXBvcnRhbnQ7XG4gICAgLnRpdGxlLXNwYW57XG4gICAgICAgIGZvbnQtd2VpZ2h0OiA1MDA7XG4gICAgICAgIGxpbmUtaGVpZ2h0OiAxN3B4O1xuICAgIH1cbiAgICAudGV4dC1zcGFue1xuICAgICAgICBmb250LXNpemU6IDExcHg7XG4gICAgICAgIGZvbnQtd2VpZ2h0OiA0MDA7XG4gICAgICAgIGxpbmUtaGVpZ2h0OiAyOHB4O1xuICAgIH1cbiAgICAuY2hhcmFjdGVyLXJhZGlvLWdyb3VwIHtcbiAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcbiAgICAgICAgLm1hdC1yYWRpby1idXR0b24ge1xuICAgICAgICAgICAgbWFyZ2luOiAzcHg7XG4gICAgICAgIH1cbiAgICB9XG4gICAgLmNoYXJhY3Rlci1jb25maXJtYXRpb24ge1xuICAgICAgICBwb3NpdGlvbjphYnNvbHV0ZTtcbiAgICAgICAgdG9wOjIwJTtcbiAgICAgICAgcmlnaHQ6NCU7XG4gICAgICAgIC5sYWJlbC1jbGFzcyB7XG4gICAgICAgICAgICBtYXJnaW4tbGVmdDogNTUlO1xuICAgICAgICAgICAgZm9udC1zaXplOiAxMnB4O1xuICAgICAgICB9XG4gICAgICAgIC52YWx1ZS1pbnB1dCB7XG4gICAgICAgICAgICB3aWR0aDogNDUlO1xuICAgICAgICAgICAgaGVpZ2h0OiAzMHB4O1xuICAgICAgICAgICAgbWFyZ2luLWJvdHRvbTogMTAlO1xuICAgICAgICAgICAgbWFyZ2luLWxlZnQ6IDU1JTtcbiAgICAgICAgICAgIG1hcmdpbi10b3A6IDIlO1xuICAgICAgICAgICAgdGV4dC10cmFuc2Zvcm06IHVwcGVyY2FzZTtcbiAgICAgICAgfVxuICAgIH1cbiAgICAucG9zdGlvbi1pbnB1dCB7XG4gICAgICAgIHdpZHRoOiA1MHB4O1xuICAgICAgICBtYXJnaW4tbGVmdDogMjBweDsgXG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6ICNmZmZmZmY7IFxuICAgICAgICBjb2xvcjogIzAwMDAwMDtcbiAgICB9XG4gICAgLmFjdGlvbi1idG4ge1xuICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICBmbG9hdDogcmlnaHQ7XG4gICAgICAgIG1hcmdpbi10b3A6IDEycHg7XG4gICAgICAgIC5tYXQtZmxhdC1idXR0b24ge1xuICAgICAgICAgICAgLy8gcGFkZGluZzogMCAhaW1wb3J0YW50O1xuICAgICAgICAgICAgLy8gYmFja2dyb3VuZC1jb2xvcjogI0ZGQ0MzMztcbiAgICAgICAgICAgIC8vIGZvbnQtd2VpZ2h0OiA5MDA7XG4gICAgICAgICAgICBoZWlnaHQ6IDM2cHg7XG4gICAgICAgICAgICBmb250LWZhbWlseTogUm9ib3RvLFwiSGVsdmV0aWNhIE5ldWVcIixzYW5zLXNlcmlmO1xuICAgICAgICAgICAgZm9udC1zaXplOiAxM3B4O1xuICAgICAgICAgICAgZm9udC13ZWlnaHQ6IDUwMDtcbiAgICAgICAgICAgIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgICAgICAgICAgIGJvcmRlcjogMHB4IHNvbGlkO1xuICAgICAgICAgICAgcGFkZGluZzogMHB4ICFpbXBvcnRhbnQ7XG4gICAgICAgICAgICBib3JkZXItcmFkaXVzOiAwcHg7XG4gICAgICAgIH1cbiAgICAgICAgLm1hdC1mbGF0LWJ1dHRvbjpudGgtY2hpbGQoMSkge1xuICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiA1cHg7XG4gICAgICAgIH1cbiAgICB9XG4gICAgXG4gICAgICAgIGlucHV0Ojotd2Via2l0LW91dGVyLXNwaW4tYnV0dG9uLFxuICAgICAgICBpbnB1dDo6LXdlYmtpdC1pbm5lci1zcGluLWJ1dHRvbiB7XG4gICAgICAgIC13ZWJraXQtYXBwZWFyYW5jZTogbm9uZTtcbiAgICAgICAgbWFyZ2luOiAwO1xuICAgICAgICB9XG59IiwiLmNoYXJhY3Rlci1udW1iZXItbGlzdCB7XG4gIHdpZHRoOiA4MCU7XG4gIG1hcmdpbjogNyU7XG4gIGhlaWdodDogMTcwcHg7XG4gIGJhY2tncm91bmQtY29sb3I6ICMwMDlCNzc7XG4gIGNvbG9yOiB3aGl0ZTtcbiAgZm9udC1mYW1pbHk6IFJvYm90bywgXCJIZWx2ZXRpY2EgTmV1ZVwiLCBzYW5zLXNlcmlmICFpbXBvcnRhbnQ7XG4gIGZvbnQtc2l6ZTogMTRweCAhaW1wb3J0YW50O1xufVxuLmNoYXJhY3Rlci1udW1iZXItbGlzdCAudGl0bGUtc3BhbiB7XG4gIGZvbnQtd2VpZ2h0OiA1MDA7XG4gIGxpbmUtaGVpZ2h0OiAxN3B4O1xufVxuLmNoYXJhY3Rlci1udW1iZXItbGlzdCAudGV4dC1zcGFuIHtcbiAgZm9udC1zaXplOiAxMXB4O1xuICBmb250LXdlaWdodDogNDAwO1xuICBsaW5lLWhlaWdodDogMjhweDtcbn1cbi5jaGFyYWN0ZXItbnVtYmVyLWxpc3QgLmNoYXJhY3Rlci1yYWRpby1ncm91cCB7XG4gIGRpc3BsYXk6IGZsZXg7XG4gIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XG59XG4uY2hhcmFjdGVyLW51bWJlci1saXN0IC5jaGFyYWN0ZXItcmFkaW8tZ3JvdXAgLm1hdC1yYWRpby1idXR0b24ge1xuICBtYXJnaW46IDNweDtcbn1cbi5jaGFyYWN0ZXItbnVtYmVyLWxpc3QgLmNoYXJhY3Rlci1jb25maXJtYXRpb24ge1xuICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gIHRvcDogMjAlO1xuICByaWdodDogNCU7XG59XG4uY2hhcmFjdGVyLW51bWJlci1saXN0IC5jaGFyYWN0ZXItY29uZmlybWF0aW9uIC5sYWJlbC1jbGFzcyB7XG4gIG1hcmdpbi1sZWZ0OiA1NSU7XG4gIGZvbnQtc2l6ZTogMTJweDtcbn1cbi5jaGFyYWN0ZXItbnVtYmVyLWxpc3QgLmNoYXJhY3Rlci1jb25maXJtYXRpb24gLnZhbHVlLWlucHV0IHtcbiAgd2lkdGg6IDQ1JTtcbiAgaGVpZ2h0OiAzMHB4O1xuICBtYXJnaW4tYm90dG9tOiAxMCU7XG4gIG1hcmdpbi1sZWZ0OiA1NSU7XG4gIG1hcmdpbi10b3A6IDIlO1xuICB0ZXh0LXRyYW5zZm9ybTogdXBwZXJjYXNlO1xufVxuLmNoYXJhY3Rlci1udW1iZXItbGlzdCAucG9zdGlvbi1pbnB1dCB7XG4gIHdpZHRoOiA1MHB4O1xuICBtYXJnaW4tbGVmdDogMjBweDtcbiAgYmFja2dyb3VuZC1jb2xvcjogI2ZmZmZmZjtcbiAgY29sb3I6ICMwMDAwMDA7XG59XG4uY2hhcmFjdGVyLW51bWJlci1saXN0IC5hY3Rpb24tYnRuIHtcbiAgZGlzcGxheTogZmxleDtcbiAgZmxvYXQ6IHJpZ2h0O1xuICBtYXJnaW4tdG9wOiAxMnB4O1xufVxuLmNoYXJhY3Rlci1udW1iZXItbGlzdCAuYWN0aW9uLWJ0biAubWF0LWZsYXQtYnV0dG9uIHtcbiAgaGVpZ2h0OiAzNnB4O1xuICBmb250LWZhbWlseTogUm9ib3RvLCBcIkhlbHZldGljYSBOZXVlXCIsIHNhbnMtc2VyaWY7XG4gIGZvbnQtc2l6ZTogMTNweDtcbiAgZm9udC13ZWlnaHQ6IDUwMDtcbiAgdGV4dC1hbGlnbjogY2VudGVyO1xuICBib3JkZXI6IDBweCBzb2xpZDtcbiAgcGFkZGluZzogMHB4ICFpbXBvcnRhbnQ7XG4gIGJvcmRlci1yYWRpdXM6IDBweDtcbn1cbi5jaGFyYWN0ZXItbnVtYmVyLWxpc3QgLmFjdGlvbi1idG4gLm1hdC1mbGF0LWJ1dHRvbjpudGgtY2hpbGQoMSkge1xuICBtYXJnaW4tcmlnaHQ6IDVweDtcbn1cbi5jaGFyYWN0ZXItbnVtYmVyLWxpc3QgaW5wdXQ6Oi13ZWJraXQtb3V0ZXItc3Bpbi1idXR0b24sXG4uY2hhcmFjdGVyLW51bWJlci1saXN0IGlucHV0Ojotd2Via2l0LWlubmVyLXNwaW4tYnV0dG9uIHtcbiAgLXdlYmtpdC1hcHBlYXJhbmNlOiBub25lO1xuICBtYXJnaW46IDA7XG59Il19 */\"","import { Component, Input, Output, EventEmitter, OnChanges } from '@angular/core';\nimport { BackendApiService } from '../../../../services/backend-api/backend-api.service';\nimport { UtilService } from '../../../../services/util/util.service';\n\n@Component({\n selector: 'app-character-number-list',\n templateUrl: './character-number-list.component.html',\n styleUrls: ['./character-number-list.component.scss']\n})\n\nexport class CharacterNumberListComponent implements OnChanges {\n @Input() selectedListItem: string;\n @Input() editValue: string[] = [];\n @Output() setCharacterFlagData = new EventEmitter();\n characterNumberValue = \"=\";\n numberValue;\n isSubmitted: boolean = false;\n characterNumberList = [{ name: 'EQUAL', value: '=' },\n { name: 'DIFFERENT', value: '<>' },\n { name: 'INFERIOR', value: '<=' },\n { name: 'SUPERIOR', value: '>=' }];\n\n ngOnChanges() {\n if (this.editValue && this.editValue.length > 0) {\n this.characterNumberList.forEach(item => {\n // if (this.editValue[1].includes(item.value)) {\n const len = item.value.length;\n if (this.editValue[1].substr(0, len) === item.value) {\n this.editValue = this.editValue[1].split(item.value);\n this.characterNumberValue = item.value;\n //.log(\"old=\",parseInt(this.editValue[1]),\"new=\",parseInt(this.editValue[1],10))\n this.numberValue = parseInt(this.editValue[1],10);\n }\n });\n }\n }\n\n maxLengthCheck(object) {\n object.target.value = Math.abs(object.target.value);\n if (object.target.value.length > object.target.maxLength)\n object.target.value = object.target.value.slice(0, object.target.maxLength)\n this.numberValue = object.target.value;\n }\n\n submit() {\n if (!this.characterNumberValue) {\n this.isSubmitted = true;\n }\n let value = {\n 'format': this.characterNumberValue,\n 'value': this.numberValue,\n displayGroupingForm: false\n }\n this.setCharacterFlagData.emit(value);\n }\n\n cancel() {\n let value = {\n value: '',\n displayGroupingForm: false\n };\n this.setCharacterFlagData.emit(value);\n }\n}\n","export default \".create-group {\\n display: flex;\\n height: calc(100% - 1px);\\n background-color: #ffffff;\\n}\\n\\n.open-query-width {\\n width: 420px;\\n}\\n\\n.width {\\n width: 1000px;\\n}\\n\\n.column-panel1 {\\n height: 100%;\\n min-width: 400px;\\n max-width: 400px;\\n background-color: white;\\n}\\n\\n.private-cls {\\n padding-left: 10px;\\n padding-top: 10px;\\n}\\n\\n.open-page {\\n height: calc(100% - 22px);\\n}\\n\\n.import-page {\\n height: calc(100% - 55px);\\n}\\n\\n.column-panel4 {\\n min-width: 30px;\\n max-width: 30px;\\n}\\n\\n.column-panel2 {\\n height: 98%;\\n min-width: 525px;\\n max-width: 525px;\\n background-color: white;\\n}\\n\\n.column-panel3 {\\n height: 100%;\\n width: 100%;\\n background: #2D4557;\\n overflow: hidden;\\n}\\n\\n.footer-panel2 {\\n width: 525px;\\n bottom: 0;\\n /* stick to bottom */\\n margin-left: -10px;\\n margin-top: 4px;\\n}\\n\\n.footer-panel3 {\\n width: 99%;\\n bottom: 0;\\n background: #000000;\\n height: 38px;\\n}\\n\\n.footer-panel-query {\\n width: 375px;\\n}\\n\\n.button-panel2 {\\n width: 85px;\\n height: 30px !important;\\n font-family: Roboto, \\\"Helvetica Neue\\\", sans-serif;\\n font-size: 13px;\\n font-weight: 500;\\n text-align: center;\\n border: 0px solid;\\n background-color: #FFCC33;\\n padding: 0 !important;\\n border-radius: 0px;\\n}\\n\\n.arrow {\\n border: 1px solid #c3c3c3;\\n background-color: white;\\n padding: 19px 0px 0px 0px;\\n}\\n\\n.arrow_detail {\\n padding: 19px 0px 0px 4px;\\n background-color: #bbbcbc;\\n}\\n\\n.main {\\n align-self: center;\\n width: 30px;\\n height: calc(100% - 37px) !important;\\n display: flex;\\n flex-wrap: wrap;\\n align-content: center;\\n}\\n\\n.main div {\\n width: 49px;\\n height: 40px;\\n}\\n\\n.center-key {\\n width: 26px;\\n position: -webkit-sticky !important;\\n position: sticky !important;\\n right: 0;\\n bottom: 48%;\\n float: right;\\n padding: 2px;\\n}\\n\\n.center-key .arrow {\\n border: 1px solid #c3c3c3;\\n background-color: white;\\n padding: 15px 10px 0px 0px;\\n}\\n\\n.mater-icons {\\n margin-left: 4px;\\n margin-top: 0px;\\n}\\n\\n.div-width {\\n width: 50%;\\n padding: 10px;\\n}\\n\\n.item-right {\\n float: right;\\n}\\n\\n.img-size-20 {\\n height: 18px;\\n width: 18px;\\n cursor: pointer;\\n}\\n\\n.title-span {\\n font-family: Roboto, \\\"Helvetica Neue\\\", sans-serif;\\n font-size: 14px;\\n font-weight: 500;\\n line-height: 17px;\\n}\\n\\n.text-span {\\n font-family: Roboto, \\\"Helvetica Neue\\\", sans-serif;\\n font-size: 11px;\\n font-weight: 400;\\n line-height: 28px;\\n}\\n\\n.text-span-wo-line-height {\\n font-family: Roboto, \\\"Helvetica Neue\\\", sans-serif;\\n font-size: 11px;\\n font-weight: 400;\\n}\\n\\n.div-flex {\\n display: flex;\\n}\\n\\n.margin-bot-10 {\\n margin-bottom: 10px;\\n}\\n\\n.dot-style {\\n width: 0px;\\n margin-left: 10px;\\n margin-top: 4px;\\n color: #ffffff;\\n}\\n\\n.example-radio-group {\\n display: flex;\\n margin: 15px 0;\\n}\\n\\n.example-radio-button {\\n margin-right: 20px;\\n}\\n\\n.title-font {\\n color: #000000;\\n font-family: Roboto, \\\"Helvetica Neue\\\", sans-serif;\\n font-size: 14px;\\n font-weight: 500;\\n line-height: 17px;\\n width: 210px;\\n text-align: left;\\n}\\n\\n.content-font {\\n color: #000000;\\n font-family: Roboto, \\\"Helvetica Neue\\\", sans-serif;\\n font-size: 13px;\\n font-weight: 400;\\n line-height: 17px;\\n width: 59px;\\n text-align: left;\\n}\\n\\n.radio-toolbar {\\n margin-top: 10px;\\n}\\n\\n.radio-toolbar input[type=radio] {\\n opacity: 0;\\n position: fixed;\\n width: 20px;\\n}\\n\\n.radio-toolbar label {\\n display: inline-block;\\n text-align: center;\\n padding: 5px;\\n font-family: Roboto, \\\"Helvetica Neue\\\", sans-serif;\\n font-size: 13px;\\n font-weight: 500;\\n border: 1px solid #cccccc;\\n width: 70px;\\n min-width: 70px;\\n margin-right: 5px;\\n margin-bottom: 5px;\\n}\\n\\n.radio-toolbar label:hover {\\n background-color: #dfd;\\n}\\n\\n.radio-toolbar input[type=radio]:checked + label {\\n background-color: #0077C8;\\n color: #ffffff;\\n}\\n\\n.label-checked {\\n background-color: #0077C8;\\n color: #ffffff;\\n}\\n\\nspan {\\n font-family: \\\"Helvetica\\\", Times, serif;\\n font-size: 13px;\\n}\\n\\n.dot {\\n margin-top: 5px;\\n height: 15px;\\n width: 18px;\\n background-color: #bbb;\\n border-radius: 50%;\\n display: inline-block;\\n margin-right: 10px;\\n}\\n\\n.dot-backcolour-green {\\n background-color: #6BCC6F;\\n}\\n\\n.dot-backcolour-red {\\n background-color: #FF0000;\\n}\\n\\n.dot-backcolour-orange {\\n background-color: #FFA500;\\n}\\n\\n.button-style {\\n width: 75px;\\n height: 36px;\\n font-family: Roboto, \\\"Helvetica Neue\\\", sans-serif;\\n font-size: 13px;\\n font-weight: 500;\\n text-align: center;\\n border: 0px solid;\\n background-color: #FFCC33;\\n padding: 0 !important;\\n border-radius: 0px;\\n}\\n\\n.open-cls {\\n height: calc(100% - 235px);\\n}\\n\\n.import-cls {\\n height: calc(100% - 230px);\\n}\\n\\n.private-class {\\n max-height: 60vh !important;\\n}\\n\\n.name-label {\\n font-size: 14px;\\n font-weight: 500;\\n}\\n\\n.mat-list-border-left {\\n border-right: 1px solid #cccccc;\\n}\\n\\n.mat-list-item:hover {\\n background-color: #f6f9fa;\\n}\\n\\n.selected-highlight {\\n background-color: #E9EEF0;\\n}\\n\\n.item-disable {\\n cursor: not-allowed !important;\\n pointer-events: none;\\n}\\n\\n.select-list-blue {\\n background-color: #0077C8;\\n color: #ffffff;\\n}\\n\\n.select-list-blue:hover {\\n background-color: #0077C8;\\n color: #ffffff;\\n}\\n\\n.select-list-green {\\n background-color: #009B77;\\n color: #ffffff;\\n}\\n\\n.select-list-green:hover {\\n background-color: #009B77;\\n color: #ffffff;\\n}\\n\\n::ng-deep .mat-select {\\n font-family: Roboto, \\\"Helvetica Neue\\\", sans-serif;\\n font-size: 11px;\\n font-weight: 400;\\n}\\n\\n::ng-deep .mat-menu-panel {\\n margin-top: 3px !important;\\n border: 1px solid #cccccc;\\n max-width: 600px !important;\\n}\\n\\n::ng-deep .mat-select:focus:not(.mat-select-disabled).mat-primary .mat-select-arrow {\\n border-left: 15px solid transparent !important;\\n border-right: none !important;\\n border-top: 15px solid transparent !important;\\n border-image-source: url('Down.svg') !important;\\n border-image-repeat: stretch !important;\\n}\\n\\n::ng-deep .mat-select-panel {\\n box-shadow: 0px 2px 4px -1px rgba(0, 0, 0, 0.2), 0px 4px 5px 0px rgba(0, 0, 0, 0.14), 0px 1px 10px 0px rgba(0, 0, 0, 0.12);\\n margin-top: 35px;\\n max-height: 280px !important;\\n}\\n\\n::ng-deep .mat-select-trigger {\\n color: #63961C;\\n border-image-source: url('close.svg') !important;\\n}\\n\\n/* to change selected item color in the select list */\\n\\n.mat-primary .mat-option.mat-selected:not(.mat-option-disabled) {\\n color: #63961C;\\n}\\n\\n::ng-deep.mat-pseudo-checkbox {\\n display: none !important;\\n}\\n\\n.mat-list-item-content {\\n padding: 0 10px;\\n}\\n\\n.mat-list-base .mat-list-option .mat-list-item-content, ::ng-deep .mat-list-base .mat-list-item .mat-list-item-content {\\n padding: 0px 5px !important;\\n font-family: Roboto, \\\"Helvetica Neue\\\", sans-serif;\\n font-size: 11px;\\n font-weight: 400;\\n}\\n\\n.custom-scroll-bar-private {\\n height: 300px;\\n overflow-y: scroll;\\n overflow-x: hidden;\\n margin-right: 5px;\\n}\\n\\n.custom-scroll-bar-private::-webkit-scrollbar {\\n width: 10px;\\n}\\n\\n.custom-scroll-bar-private::-webkit-scrollbar-thumb {\\n background-color: #E9EEF0;\\n border-radius: 5px;\\n}\\n\\n.custom-scroll-bar-vueDetails {\\n overflow-y: scroll;\\n overflow-x: hidden;\\n margin-right: 5px;\\n}\\n\\n.custom-scroll-bar-vueDetails::-webkit-scrollbar {\\n width: 10px;\\n}\\n\\n.custom-scroll-bar-vueDetails::-webkit-scrollbar-thumb {\\n background-color: #E9EEF0;\\n border-radius: 5px;\\n}\\n\\n.custom-scroll-bar {\\n height: 49vh;\\n overflow-y: scroll;\\n overflow-x: hidden;\\n margin-right: 5px;\\n}\\n\\n.custom-scroll-bar::-webkit-scrollbar {\\n width: 10px;\\n}\\n\\n.custom-scroll-bar::-webkit-scrollbar-thumb {\\n background-color: #E9EEF0;\\n border-radius: 5px;\\n}\\n\\n.custom-scroll-bar-vueList {\\n height: calc(100% - 15px);\\n overflow-y: scroll;\\n overflow-x: hidden;\\n padding-left: 5px;\\n}\\n\\n.custom-scroll-bar-vueList::-webkit-scrollbar {\\n width: 10px;\\n}\\n\\n.custom-scroll-bar-vueList::-webkit-scrollbar-thumb {\\n background-color: #E9EEF0;\\n border-radius: 5px;\\n}\\n\\n.vueListHeight {\\n overflow-y: auto;\\n height: calc(100% - 157px);\\n border: 1px solid #ccc;\\n width: 513px;\\n}\\n\\n.up-down {\\n float: right;\\n margin-top: 7px;\\n width: 15px;\\n height: 15px;\\n}\\n\\n.input-cls {\\n width: 30%;\\n height: 25px;\\n background-color: #ffffff;\\n border: 1px solid #E9EEF0;\\n color: #000000;\\n font-size: 12px;\\n}\\n\\n.import-height {\\n line-height: 30px !important;\\n}\\n\\n.population-menu {\\n border-bottom: 1px solid #aaaaaa;\\n height: 30px;\\n cursor: pointer;\\n}\\n\\n.dropdown-alignment:nth-child(1),\\n.dropdown-alignment:nth-child(2) {\\n margin-top: 0;\\n}\\n\\n.public-check {\\n margin-right: 5%;\\n}\\n\\n.population-list {\\n min-width: 180px;\\n max-height: 250px;\\n}\\n\\n.population-list-item {\\n border: 0px;\\n background-color: #ffffff;\\n cursor: pointer;\\n font-family: Roboto, \\\"Helvetica Neue\\\", sans-serif;\\n font-size: 11px;\\n font-weight: 400;\\n line-height: 0 !important;\\n}\\n\\n.margin-10 {\\n margin-top: 10px;\\n}\\n\\n.tick-img {\\n float: right;\\n margin-top: -7px;\\n margin-left: 10px;\\n width: 15px;\\n height: 15px;\\n}\\n\\n::ng-deep #vueDetailList .group-list {\\n background-color: #0077C8;\\n color: #ffffff;\\n}\\n\\n::ng-deep #vueDetailList .group-list:hover {\\n background-color: #0077C8;\\n color: #ffffff;\\n}\\n\\n::ng-deep #vueDetailList .group-list-green {\\n background-color: #009B77;\\n color: #ffffff;\\n}\\n\\n::ng-deep #vueDetailList .group-list-green:hover {\\n background-color: #009B77;\\n color: #ffffff;\\n}\\n\\n::ng-deep #vueDetailList .group-list-bottom-space {\\n margin-bottom: 3px;\\n}\\n\\n::ng-deep #vueDetailList ::ng-deep .mat-list-option[aria-selected=true] .group-list {\\n background-color: #cccccc;\\n color: #000000;\\n}\\n\\n::ng-deep #vueDetailList ::ng-deep .mat-list-option[aria-selected=true] .group-list-green {\\n background-color: #cccccc;\\n color: #000000;\\n}\\n\\n::ng-deep #vueDetailList ::ng-deep .mat-list-option[aria-selected=true] .select-list-delay {\\n background-color: #cccccc;\\n color: #000000;\\n}\\n\\n.select-group-list:hover {\\n background-color: #cccccc !important;\\n color: #000000 !important;\\n}\\n\\n.date-radio-button {\\n margin: 3px;\\n}\\n\\n.privateIPNListHeight {\\n height: 100px !important;\\n}\\n\\n.upload-file {\\n position: relative;\\n overflow-y: auto;\\n height: 125px;\\n padding: 15px 15px 0 30px;\\n margin-top: 25px;\\n margin-bottom: 7px;\\n border: 1px solid #cccccc;\\n}\\n\\n.upload-center {\\n top: 30%;\\n left: 5%;\\n}\\n\\n.table-container {\\n margin: 10px 10px 0 10px;\\n overflow: auto;\\n height: calc(100% - 12px);\\n border-collapse: collapse;\\n font-size: 12px;\\n font-family: Roboto, \\\"Helvetica Neue\\\", sans-serif;\\n background: #ffffff;\\n text-align: left;\\n white-space: nowrap;\\n}\\n\\n.table-container table {\\n width: 100%;\\n color: white;\\n border-spacing: 0 !important;\\n table-layout: auto;\\n}\\n\\n.table-container .mat-cell,\\n.table-container .mat-header-cell {\\n border-right: 1px solid #000000;\\n align-self: stretch;\\n text-align: left;\\n padding: 0.3rem;\\n}\\n\\n.table-container .mat-cell {\\n color: #000000;\\n}\\n\\n.table-container .mat-header-cell {\\n border-right: 1px solid #ffffff;\\n border-top: 1px solid #ffffff;\\n border-bottom: 1px solid #ffffff;\\n cursor: col-resize;\\n}\\n\\n.table-container tr.mat-row {\\n line-height: 30px;\\n white-space: nowrap;\\n}\\n\\n.table-container tr.mat-row td {\\n font-size: 12px;\\n font-family: Roboto, \\\"Helvetica Neue\\\", sans-serif;\\n overflow: hidden;\\n text-overflow: ellipsis;\\n max-width: 50px;\\n}\\n\\n.table-container tr.mat-row:nth-child(odd) {\\n background-color: #f2f2f2 !important;\\n}\\n\\n.table-container tr.mat-header-row {\\n background: #2D4557 !important;\\n height: 30px !important;\\n}\\n\\n.table-container tr.mat-header-row .mat-header-cell {\\n color: #ffffff;\\n}\\n\\n.table-container tr.mat-row.highlightedRow {\\n background-color: #2d4557 !important;\\n}\\n\\n.table-container tr.mat-row.highlightedRow td {\\n color: #ffffff;\\n white-space: initial !important;\\n max-width: 100%;\\n}\\n\\n.text-span-font {\\n font-family: Roboto, \\\"Helvetica Neue\\\", sans-serif;\\n font-size: 11px;\\n font-weight: 400;\\n line-height: 13px;\\n}\\n\\n.cls-displaynone {\\n display: none !important;\\n}\\n/*# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi91c3Ivc3JjL3NyYy9hcHAvY29tcG9uZW50L3F1ZXJ5L2dyb3VwaW5nL2NyZWF0ZS1wcml2YXRlLWdyb3VwL2NyZWF0ZS1wcml2YXRlLWdyb3VwLmNvbXBvbmVudC5zY3NzIiwic3JjL2FwcC9jb21wb25lbnQvcXVlcnkvZ3JvdXBpbmcvY3JlYXRlLXByaXZhdGUtZ3JvdXAvY3JlYXRlLXByaXZhdGUtZ3JvdXAuY29tcG9uZW50LnNjc3MiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUE7RUFDSSxhQUFBO0VBRUEsd0JBQUE7RUFDQSx5QkFBQTtBQ0FKOztBREdBO0VBQ0ksWUFBQTtBQ0FKOztBREdBO0VBQ0ksYUFBQTtBQ0FKOztBRElBO0VBQ0ksWUFBQTtFQUVBLGdCQUFBO0VBQ0EsZ0JBQUE7RUFHQSx1QkFBQTtBQ0pKOztBRE9BO0VBQ0ksa0JBQUE7RUFDQSxpQkFBQTtBQ0pKOztBRE9BO0VBQ0kseUJBQUE7QUNKSjs7QURPQTtFQUNJLHlCQUFBO0FDSko7O0FET0E7RUFHSSxlQUFBO0VBQ0EsZUFBQTtBQ05KOztBRFdBO0VBQ0ksV0FBQTtFQUlBLGdCQUFBO0VBQ0EsZ0JBQUE7RUFHQSx1QkFBQTtBQ2JKOztBRGdCQTtFQUNJLFlBQUE7RUFDQSxXQUFBO0VBQ0EsbUJBQUE7RUFDQSxnQkFBQTtBQ2JKOztBRGdCQTtFQUVJLFlBQUE7RUFDQSxTQUFBO0VBQ0Esb0JBQUE7RUFHQSxrQkFBQTtFQUNBLGVBQUE7QUNoQko7O0FEbUJBO0VBTUksVUFBQTtFQUNBLFNBQUE7RUFDQSxtQkFBQTtFQUNBLFlBQUE7QUNyQko7O0FEd0JBO0VBQ0ksWUFBQTtBQ3JCSjs7QUR3QkE7RUFDSSxXQUFBO0VBQ0EsdUJBQUE7RUFDQSxpREFBQTtFQUNBLGVBQUE7RUFDQSxnQkFBQTtFQUNBLGtCQUFBO0VBQ0EsaUJBQUE7RUFDQSx5QkFBQTtFQUNBLHFCQUFBO0VBQ0Esa0JBQUE7QUNyQko7O0FEeUJBO0VBQ0kseUJBQUE7RUFDQSx1QkFBQTtFQUNBLHlCQUFBO0FDdEJKOztBRHlCQTtFQUNJLHlCQUFBO0VBQ0EseUJBQUE7QUN0Qko7O0FEeUJBO0VBQ0ksa0JBQUE7RUFDQSxXQUFBO0VBQ0Esb0NBQUE7RUFDQSxhQUFBO0VBQ0EsZUFBQTtFQUNBLHFCQUFBO0FDdEJKOztBRHlCQTtFQUNJLFdBQUE7RUFDQSxZQUFBO0FDdEJKOztBRHlCQTtFQUVJLFdBQUE7RUFFQSxtQ0FBQTtFQUFBLDJCQUFBO0VBQ0EsUUFBQTtFQUNBLFdBQUE7RUFFQSxZQUFBO0VBRUEsWUFBQTtBQzFCSjs7QUQ0Qkk7RUFDSSx5QkFBQTtFQUNBLHVCQUFBO0VBQ0EsMEJBQUE7QUMxQlI7O0FEOEJBO0VBSUksZ0JBQUE7RUFDQSxlQUFBO0FDOUJKOztBRGlDQTtFQUNJLFVBQUE7RUFDQSxhQUFBO0FDOUJKOztBRGlDQTtFQUNJLFlBQUE7QUM5Qko7O0FEa0NBO0VBQ0ksWUFBQTtFQUNBLFdBQUE7RUFDQSxlQUFBO0FDL0JKOztBRGtDQTtFQUNJLGlEQUFBO0VBQ0EsZUFBQTtFQUNBLGdCQUFBO0VBQ0EsaUJBQUE7QUMvQko7O0FEa0NBO0VBQ0ksaURBQUE7RUFDQSxlQUFBO0VBQ0EsZ0JBQUE7RUFDQSxpQkFBQTtBQy9CSjs7QURtQ0E7RUFDSSxpREFBQTtFQUNBLGVBQUE7RUFDQSxnQkFBQTtBQ2hDSjs7QURvQ0E7RUFDSSxhQUFBO0FDakNKOztBRG9DQTtFQUNJLG1CQUFBO0FDakNKOztBRG9DQTtFQUNJLFVBQUE7RUFDQSxpQkFBQTtFQUNBLGVBQUE7RUFDQSxjQUFBO0FDakNKOztBRG9DQTtFQUNJLGFBQUE7RUFFQSxjQUFBO0FDbENKOztBRHFDQTtFQUVJLGtCQUFBO0FDbkNKOztBRHVDQTtFQUNJLGNBQUE7RUFDQSxpREFBQTtFQUNBLGVBQUE7RUFDQSxnQkFBQTtFQUNBLGlCQUFBO0VBQ0EsWUFBQTtFQUNBLGdCQUFBO0FDcENKOztBRHVDQTtFQUNJLGNBQUE7RUFDQSxpREFBQTtFQUNBLGVBQUE7RUFDQSxnQkFBQTtFQUNBLGlCQUFBO0VBQ0EsV0FBQTtFQUNBLGdCQUFBO0FDcENKOztBRHVDQTtFQUNJLGdCQUFBO0FDcENKOztBRHVDQTtFQUNJLFVBQUE7RUFDQSxlQUFBO0VBQ0EsV0FBQTtBQ3BDSjs7QUR1Q0E7RUFDSSxxQkFBQTtFQUVBLGtCQUFBO0VBQ0EsWUFBQTtFQUNBLGlEQUFBO0VBQ0EsZUFBQTtFQUNBLGdCQUFBO0VBQ0EseUJBQUE7RUFFQSxXQUFBO0VBQ0EsZUFBQTtFQUNBLGlCQUFBO0VBQ0Esa0JBQUE7QUN0Q0o7O0FEeUNBO0VBQ0ksc0JBQUE7QUN0Q0o7O0FENkNBO0VBQ0kseUJBQUE7RUFFQSxjQUFBO0FDM0NKOztBRDhDQTtFQUNJLHlCQUFBO0VBRUEsY0FBQTtBQzVDSjs7QUQrQ0E7RUFDSSxzQ0FBQTtFQUNBLGVBQUE7QUM1Q0o7O0FEK0NBO0VBQ0ksZUFBQTtFQUNBLFlBQUE7RUFDQSxXQUFBO0VBQ0Esc0JBQUE7RUFDQSxrQkFBQTtFQUNBLHFCQUFBO0VBQ0Esa0JBQUE7QUM1Q0o7O0FEK0NBO0VBQ0kseUJBQUE7QUM1Q0o7O0FEK0NBO0VBQ0kseUJBQUE7QUM1Q0o7O0FEK0NBO0VBQ0kseUJBQUE7QUM1Q0o7O0FEK0NBO0VBQ0ksV0FBQTtFQUNBLFlBQUE7RUFDQSxpREFBQTtFQUNBLGVBQUE7RUFDQSxnQkFBQTtFQUNBLGtCQUFBO0VBQ0EsaUJBQUE7RUFDQSx5QkFBQTtFQUNBLHFCQUFBO0VBQ0Esa0JBQUE7QUM1Q0o7O0FEK0NBO0VBQ0ksMEJBQUE7QUM1Q0o7O0FEK0NBO0VBQ0ksMEJBQUE7QUM1Q0o7O0FEK0NBO0VBRUksMkJBQUE7QUM3Q0o7O0FEd0RBO0VBQ0ksZUFBQTtFQUNBLGdCQUFBO0FDckRKOztBRHdEQTtFQUNJLCtCQUFBO0FDckRKOztBRHdEQTtFQUNJLHlCQUFBO0FDckRKOztBRHdEQTtFQUNJLHlCQUFBO0FDckRKOztBRHdEQTtFQUNJLDhCQUFBO0VBQ0Esb0JBQUE7QUNyREo7O0FEd0RBO0VBQ0kseUJBQUE7RUFDQSxjQUFBO0FDckRKOztBRHdEQTtFQUNJLHlCQUFBO0VBQ0EsY0FBQTtBQ3JESjs7QUR3REE7RUFDSSx5QkFBQTtFQUNBLGNBQUE7QUNyREo7O0FEd0RBO0VBQ0kseUJBQUE7RUFDQSxjQUFBO0FDckRKOztBRHdEQTtFQUNJLGlEQUFBO0VBQ0EsZUFBQTtFQUNBLGdCQUFBO0FDckRKOztBRHdEQTtFQUNJLDBCQUFBO0VBQ0EseUJBQUE7RUFFQSwyQkFBQTtBQ3RESjs7QUR5REE7RUFDSSw4Q0FBQTtFQUNBLDZCQUFBO0VBQ0EsNkNBQUE7RUFDQSwrQ0FBQTtFQUNBLHVDQUFBO0FDdERKOztBRHlEQTtFQUNJLDBIQUFBO0VBQ0EsZ0JBQUE7RUFDQSw0QkFBQTtBQ3RESjs7QUR5REE7RUFDSSxjQUFBO0VBQ0EsZ0RBQUE7QUN0REo7O0FEeURBLHFEQUFBOztBQUNBO0VBQ0ksY0FBQTtBQ3RESjs7QUR5REE7RUFDSSx3QkFBQTtBQ3RESjs7QUR5REE7RUFDSSxlQUFBO0FDdERKOztBRHlEQTtFQUNJLDJCQUFBO0VBQ0EsaURBQUE7RUFDQSxlQUFBO0VBQ0EsZ0JBQUE7QUN0REo7O0FEeURBO0VBRUksYUFBQTtFQUNBLGtCQUFBO0VBQ0Esa0JBQUE7RUFDQSxpQkFBQTtBQ3ZESjs7QUQwREE7RUFDSSxXQUFBO0FDdkRKOztBRDBEQTtFQUVJLHlCQUFBO0VBQ0Esa0JBQUE7QUN4REo7O0FEMkRBO0VBR0ksa0JBQUE7RUFDQSxrQkFBQTtFQUNBLGlCQUFBO0FDMURKOztBRDZEQTtFQUNJLFdBQUE7QUMxREo7O0FENkRBO0VBRUkseUJBQUE7RUFDQSxrQkFBQTtBQzNESjs7QUQ4REE7RUFDSSxZQUFBO0VBRUEsa0JBQUE7RUFDQSxrQkFBQTtFQUNBLGlCQUFBO0FDNURKOztBRGdFQTtFQUNJLFdBQUE7QUM3REo7O0FEZ0VBO0VBRUkseUJBQUE7RUFDQSxrQkFBQTtBQzlESjs7QURpRUE7RUFFSSx5QkFBQTtFQUNBLGtCQUFBO0VBQ0Esa0JBQUE7RUFFQSxpQkFBQTtBQ2hFSjs7QURtRUE7RUFDSSxXQUFBO0FDaEVKOztBRG1FQTtFQUVJLHlCQUFBO0VBQ0Esa0JBQUE7QUNqRUo7O0FEb0VBO0VBQ0ksZ0JBQUE7RUFDQSwwQkFBQTtFQUVBLHNCQUFBO0VBRUEsWUFBQTtBQ25FSjs7QUR3RUE7RUFDSSxZQUFBO0VBQ0EsZUFBQTtFQUNBLFdBQUE7RUFDQSxZQUFBO0FDckVKOztBRHdFQTtFQUNJLFVBQUE7RUFDQSxZQUFBO0VBQ0EseUJBQUE7RUFDQSx5QkFBQTtFQUNBLGNBQUE7RUFDQSxlQUFBO0FDckVKOztBRHdFQTtFQUNJLDRCQUFBO0FDckVKOztBRHdFQTtFQUNJLGdDQUFBO0VBQ0EsWUFBQTtFQUNBLGVBQUE7QUNyRUo7O0FEd0VBOztFQUVJLGFBQUE7QUNyRUo7O0FEd0VBO0VBQ0ksZ0JBQUE7QUNyRUo7O0FEd0VBO0VBQ0ksZ0JBQUE7RUFDQSxpQkFBQTtBQ3JFSjs7QUR3RUE7RUFDSSxXQUFBO0VBQ0EseUJBQUE7RUFDQSxlQUFBO0VBSUEsaURBQUE7RUFDQSxlQUFBO0VBQ0EsZ0JBQUE7RUFDQSx5QkFBQTtBQ3hFSjs7QUQyRUE7RUFDSSxnQkFBQTtBQ3hFSjs7QUQyRUE7RUFDSSxZQUFBO0VBQ0EsZ0JBQUE7RUFDQSxpQkFBQTtFQUNBLFdBQUE7RUFDQSxZQUFBO0FDeEVKOztBRCtFSTtFQUNJLHlCQUFBO0VBQ0EsY0FBQTtBQzVFUjs7QUQrRUk7RUFDSSx5QkFBQTtFQUNBLGNBQUE7QUM3RVI7O0FEZ0ZJO0VBQ0kseUJBQUE7RUFDQSxjQUFBO0FDOUVSOztBRGlGSTtFQUNJLHlCQUFBO0VBQ0EsY0FBQTtBQy9FUjs7QURrRkk7RUFDSSxrQkFBQTtBQ2hGUjs7QURtRkk7RUFDSSx5QkFBQTtFQUNBLGNBQUE7QUNqRlI7O0FEb0ZJO0VBQ0kseUJBQUE7RUFDQSxjQUFBO0FDbEZSOztBRHFGSTtFQUNJLHlCQUFBO0VBQ0EsY0FBQTtBQ25GUjs7QUR1RkE7RUFDSSxvQ0FBQTtFQUNBLHlCQUFBO0FDcEZKOztBRHlGQTtFQUNJLFdBQUE7QUN0Rko7O0FEeUZBO0VBQ0ksd0JBQUE7QUN0Rko7O0FEeUZBO0VBQ0ksa0JBQUE7RUFDQSxnQkFBQTtFQUVBLGFBQUE7RUFFQSx5QkFBQTtFQUVBLGdCQUFBO0VBQ0Esa0JBQUE7RUFDQSx5QkFBQTtBQ3pGSjs7QUQ0RkE7RUFFSSxRQUFBO0VBQ0EsUUFBQTtBQzFGSjs7QUQ2RkE7RUFDSSx3QkFBQTtFQUNBLGNBQUE7RUFDQSx5QkFBQTtFQUNBLHlCQUFBO0VBQ0EsZUFBQTtFQUNBLGlEQUFBO0VBQ0EsbUJBQUE7RUFDQSxnQkFBQTtFQUNBLG1CQUFBO0FDMUZKOztBRDZGSTtFQUNJLFdBQUE7RUFDQSxZQUFBO0VBQ0EsNEJBQUE7RUFDQSxrQkFBQTtBQzNGUjs7QUQ4Rkk7O0VBRUksK0JBQUE7RUFDQSxtQkFBQTtFQUNBLGdCQUFBO0VBQ0EsZUFBQTtBQzVGUjs7QUQrRkk7RUFDSSxjQUFBO0FDN0ZSOztBRDZHSTtFQUNJLCtCQUFBO0VBQ0EsNkJBQUE7RUFDQSxnQ0FBQTtFQUNBLGtCQUFBO0FDM0dSOztBRDhHSTtFQUNJLGlCQUFBO0VBQ0EsbUJBQUE7QUM1R1I7O0FEOEdRO0VBQ0ksZUFBQTtFQUNBLGlEQUFBO0VBQ0EsZ0JBQUE7RUFDQSx1QkFBQTtFQUNBLGVBQUE7QUM1R1o7O0FEa0hJO0VBQ0ksb0NBQUE7QUNoSFI7O0FEbUhJO0VBQ0ksOEJBQUE7RUFDQSx1QkFBQTtBQ2pIUjs7QURtSFE7RUFDSSxjQUFBO0FDakhaOztBRHFISTtFQUNJLG9DQUFBO0FDbkhSOztBRHFIUTtFQUNJLGNBQUE7RUFDQSwrQkFBQTtFQUNBLGVBQUE7QUNuSFo7O0FEMEhBO0VBQ0ksaURBQUE7RUFDQSxlQUFBO0VBQ0EsZ0JBQUE7RUFDQSxpQkFBQTtBQ3ZISjs7QUQySEE7RUFDSSx3QkFBQTtBQ3hISiIsImZpbGUiOiJzcmMvYXBwL2NvbXBvbmVudC9xdWVyeS9ncm91cGluZy9jcmVhdGUtcHJpdmF0ZS1ncm91cC9jcmVhdGUtcHJpdmF0ZS1ncm91cC5jb21wb25lbnQuc2NzcyIsInNvdXJjZXNDb250ZW50IjpbIi5jcmVhdGUtZ3JvdXAge1xuICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgLy8gd2lkdGg6IDgzJTtcbiAgICBoZWlnaHQ6IGNhbGMoMTAwJSAtIDFweCk7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogI2ZmZmZmZjtcbn1cblxuLm9wZW4tcXVlcnktd2lkdGgge1xuICAgIHdpZHRoOiA0MjBweDtcbn1cblxuLndpZHRoIHtcbiAgICB3aWR0aDogMTAwMHB4O1xufVxuXG5cbi5jb2x1bW4tcGFuZWwxIHtcbiAgICBoZWlnaHQ6IDEwMCU7XG4gICAgLy8gZGlzcGxheTogZmxleDtcbiAgICBtaW4td2lkdGg6IDQwMHB4O1xuICAgIG1heC13aWR0aDogNDAwcHg7XG4gICAgLy8ganVzdGlmeS1jb250ZW50OiBjZW50ZXI7ICAgICAgICAgICAgXG4gICAgLy8gYWxpZ24taXRlbXM6IGNlbnRlcjsgICBcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiB3aGl0ZTtcbn1cblxuLnByaXZhdGUtY2xzIHtcbiAgICBwYWRkaW5nLWxlZnQ6IDEwcHg7XG4gICAgcGFkZGluZy10b3A6IDEwcHg7XG59XG5cbi5vcGVuLXBhZ2Uge1xuICAgIGhlaWdodDogY2FsYygxMDAlIC0gMjJweCk7XG59XG5cbi5pbXBvcnQtcGFnZSB7XG4gICAgaGVpZ2h0OiBjYWxjKDEwMCUgLSA1NXB4KTtcbn1cblxuLmNvbHVtbi1wYW5lbDQge1xuICAgIC8vIGhlaWdodDogMTAwJTsgIFxuICAgIC8vIGRpc3BsYXk6IGZsZXg7XG4gICAgbWluLXdpZHRoOiAzMHB4O1xuICAgIG1heC13aWR0aDogMzBweDtcbiAgICAvLyBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjsgICAgICAgICAgICBcbiAgICAvLyBhbGlnbi1pdGVtczogY2VudGVyOyAgICAgICAgICAgICAgICBcbn1cblxuLmNvbHVtbi1wYW5lbDIge1xuICAgIGhlaWdodDogOTglO1xuICAgIC8vIGRpc3BsYXk6IGZsZXg7ICAgXG4gICAgLy8gbWluLXdpZHRoOiA1MzBweDsgICAgICAgICAgICAgICAgICAgIFxuICAgIC8vIG1heC13aWR0aDogNTMwcHg7ICAgICBcbiAgICBtaW4td2lkdGg6IDUyNXB4O1xuICAgIG1heC13aWR0aDogNTI1cHg7XG4gICAgLy8ganVzdGlmeS1jb250ZW50OiBjZW50ZXI7ICAgICAgICAgICAgXG4gICAgLy8gYWxpZ24taXRlbXM6IGNlbnRlcjsgXG4gICAgYmFja2dyb3VuZC1jb2xvcjogd2hpdGU7XG59XG5cbi5jb2x1bW4tcGFuZWwzIHtcbiAgICBoZWlnaHQ6IDEwMCU7XG4gICAgd2lkdGg6IDEwMCU7XG4gICAgYmFja2dyb3VuZDogIzJENDU1NztcbiAgICBvdmVyZmxvdzogaGlkZGVuO1xufVxuXG4uZm9vdGVyLXBhbmVsMiB7XG4gICAgLy8gcG9zaXRpb246Zml4ZWQ7XG4gICAgd2lkdGg6IDUyNXB4O1xuICAgIGJvdHRvbTogMDtcbiAgICAvKiBzdGljayB0byBib3R0b20gKi9cbiAgICAvLyBiYWNrZ3JvdW5kOiAjMDAwMDAwO1xuICAgIC8vIGhlaWdodDogMzhweDtcbiAgICBtYXJnaW4tbGVmdDogLTEwcHg7XG4gICAgbWFyZ2luLXRvcDogNHB4O1xufVxuXG4uZm9vdGVyLXBhbmVsMyB7XG4gICAgLy8gcG9zaXRpb246Zml4ZWQ7XG4gICAgLy8gd2lkdGg6IDEwMCU7XG4gICAgLy8gYm90dG9tOjA7IC8qIHN0aWNrIHRvIGJvdHRvbSAqL1xuICAgIC8vIGJhY2tncm91bmQ6ICMwMDAwMDA7XG4gICAgLy8gaGVpZ2h0OiA5cHg7XG4gICAgd2lkdGg6IDk5JTtcbiAgICBib3R0b206IDA7XG4gICAgYmFja2dyb3VuZDogIzAwMDAwMDtcbiAgICBoZWlnaHQ6IDM4cHg7XG59XG5cbi5mb290ZXItcGFuZWwtcXVlcnkge1xuICAgIHdpZHRoOiAzNzVweDtcbn1cblxuLmJ1dHRvbi1wYW5lbDIge1xuICAgIHdpZHRoOiA4NXB4O1xuICAgIGhlaWdodDogMzBweCAhaW1wb3J0YW50O1xuICAgIGZvbnQtZmFtaWx5OiBSb2JvdG8sIFwiSGVsdmV0aWNhIE5ldWVcIiwgc2Fucy1zZXJpZjtcbiAgICBmb250LXNpemU6IDEzcHg7XG4gICAgZm9udC13ZWlnaHQ6IDUwMDtcbiAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gICAgYm9yZGVyOiAwcHggc29saWQ7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogI0ZGQ0MzMztcbiAgICBwYWRkaW5nOiAwICFpbXBvcnRhbnQ7XG4gICAgYm9yZGVyLXJhZGl1czogMHB4O1xuICAgIC8vIGxpbmUtaGVpZ2h0OiAzNnB4ICFpbXBvcnRhbnQ7XG59XG5cbi5hcnJvdyB7XG4gICAgYm9yZGVyOiAxcHggc29saWQgI2MzYzNjMztcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiB3aGl0ZTtcbiAgICBwYWRkaW5nOiAxOXB4IDBweCAwcHggMHB4O1xufVxuXG4uYXJyb3dfZGV0YWlsIHtcbiAgICBwYWRkaW5nOiAxOXB4IDBweCAwcHggNHB4O1xuICAgIGJhY2tncm91bmQtY29sb3I6ICNiYmJjYmM7XG59XG5cbi5tYWluIHtcbiAgICBhbGlnbi1zZWxmOiBjZW50ZXI7XG4gICAgd2lkdGg6IDMwcHg7XG4gICAgaGVpZ2h0OiBjYWxjKDEwMCUgLSAzN3B4KSAhaW1wb3J0YW50O1xuICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgZmxleC13cmFwOiB3cmFwO1xuICAgIGFsaWduLWNvbnRlbnQ6IGNlbnRlcjtcbn1cblxuLm1haW4gZGl2IHtcbiAgICB3aWR0aDogNDlweDtcbiAgICBoZWlnaHQ6IDQwcHg7XG59XG5cbi5jZW50ZXIta2V5IHtcbiAgICAvLyB3aWR0aDogMzBweDtcbiAgICB3aWR0aDogMjZweDtcbiAgICAvLyBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgcG9zaXRpb246IHN0aWNreSAhaW1wb3J0YW50O1xuICAgIHJpZ2h0OiAwO1xuICAgIGJvdHRvbTogNDglO1xuICAgIC8vIG1hcmdpbi1sZWZ0OiA5NCU7XG4gICAgZmxvYXQ6IHJpZ2h0O1xuICAgIC8vIGhlaWdodDogY2FsYygxMDAlIC0gMTgwcHgpICFpbXBvcnRhbnQ7XG4gICAgcGFkZGluZzogMnB4O1xuXG4gICAgLmFycm93IHtcbiAgICAgICAgYm9yZGVyOiAxcHggc29saWQgI2MzYzNjMztcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogd2hpdGU7XG4gICAgICAgIHBhZGRpbmc6IDE1cHggMTBweCAwcHggMHB4O1xuICAgIH1cbn1cblxuLm1hdGVyLWljb25zIHtcbiAgICAvLyBtYXJnaW4tbGVmdDogLThweDtcbiAgICAvLyBtYXJnaW4tdG9wOiAtN3B4O1xuICAgIC8vIGZvbnQtc2l6ZTogNDBweCAhaW1wb3J0YW50O1xuICAgIG1hcmdpbi1sZWZ0OiA0cHg7XG4gICAgbWFyZ2luLXRvcDogMHB4O1xufVxuXG4uZGl2LXdpZHRoIHtcbiAgICB3aWR0aDogNTAlO1xuICAgIHBhZGRpbmc6IDEwcHg7XG59XG5cbi5pdGVtLXJpZ2h0IHtcbiAgICBmbG9hdDogcmlnaHQ7XG4gICAgLy8gcGFkZGluZzogMTBweDtcbn1cblxuLmltZy1zaXplLTIwIHtcbiAgICBoZWlnaHQ6IDE4cHg7XG4gICAgd2lkdGg6IDE4cHg7XG4gICAgY3Vyc29yOiBwb2ludGVyO1xufVxuXG4udGl0bGUtc3BhbiB7XG4gICAgZm9udC1mYW1pbHk6IFJvYm90bywgXCJIZWx2ZXRpY2EgTmV1ZVwiLCBzYW5zLXNlcmlmO1xuICAgIGZvbnQtc2l6ZTogMTRweDtcbiAgICBmb250LXdlaWdodDogNTAwO1xuICAgIGxpbmUtaGVpZ2h0OiAxN3B4O1xufVxuXG4udGV4dC1zcGFuIHtcbiAgICBmb250LWZhbWlseTogUm9ib3RvLCBcIkhlbHZldGljYSBOZXVlXCIsIHNhbnMtc2VyaWY7XG4gICAgZm9udC1zaXplOiAxMXB4O1xuICAgIGZvbnQtd2VpZ2h0OiA0MDA7XG4gICAgbGluZS1oZWlnaHQ6IDI4cHg7XG4gICAgLy8gbWFyZ2luLWxlZnQ6IC00cHg7XG59XG5cbi50ZXh0LXNwYW4td28tbGluZS1oZWlnaHQge1xuICAgIGZvbnQtZmFtaWx5OiBSb2JvdG8sIFwiSGVsdmV0aWNhIE5ldWVcIiwgc2Fucy1zZXJpZjtcbiAgICBmb250LXNpemU6IDExcHg7XG4gICAgZm9udC13ZWlnaHQ6IDQwMDtcbiAgICAvLyBtYXJnaW4tbGVmdDogLTRweDtcbn1cblxuLmRpdi1mbGV4IHtcbiAgICBkaXNwbGF5OiBmbGV4O1xufVxuXG4ubWFyZ2luLWJvdC0xMCB7XG4gICAgbWFyZ2luLWJvdHRvbTogMTBweDtcbn1cblxuLmRvdC1zdHlsZSB7XG4gICAgd2lkdGg6IDBweDtcbiAgICBtYXJnaW4tbGVmdDogMTBweDtcbiAgICBtYXJnaW4tdG9wOiA0cHg7XG4gICAgY29sb3I6ICNmZmZmZmY7XG59XG5cbi5leGFtcGxlLXJhZGlvLWdyb3VwIHtcbiAgICBkaXNwbGF5OiBmbGV4O1xuICAgIC8vICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcbiAgICBtYXJnaW46IDE1cHggMDtcbn1cblxuLmV4YW1wbGUtcmFkaW8tYnV0dG9uIHtcbiAgICAvLyAgIG1hcmdpbjogNXB4O1xuICAgIG1hcmdpbi1yaWdodDogMjBweDtcbn1cblxuXG4udGl0bGUtZm9udCB7XG4gICAgY29sb3I6ICMwMDAwMDA7XG4gICAgZm9udC1mYW1pbHk6IFJvYm90bywgXCJIZWx2ZXRpY2EgTmV1ZVwiLCBzYW5zLXNlcmlmO1xuICAgIGZvbnQtc2l6ZTogMTRweDtcbiAgICBmb250LXdlaWdodDogNTAwO1xuICAgIGxpbmUtaGVpZ2h0OiAxN3B4O1xuICAgIHdpZHRoOiAyMTBweDtcbiAgICB0ZXh0LWFsaWduOiBsZWZ0O1xufVxuXG4uY29udGVudC1mb250IHtcbiAgICBjb2xvcjogIzAwMDAwMDtcbiAgICBmb250LWZhbWlseTogUm9ib3RvLCBcIkhlbHZldGljYSBOZXVlXCIsIHNhbnMtc2VyaWY7XG4gICAgZm9udC1zaXplOiAxM3B4O1xuICAgIGZvbnQtd2VpZ2h0OiA0MDA7XG4gICAgbGluZS1oZWlnaHQ6IDE3cHg7XG4gICAgd2lkdGg6IDU5cHg7XG4gICAgdGV4dC1hbGlnbjogbGVmdDtcbn1cblxuLnJhZGlvLXRvb2xiYXIge1xuICAgIG1hcmdpbi10b3A6IDEwcHg7XG59XG5cbi5yYWRpby10b29sYmFyIGlucHV0W3R5cGU9XCJyYWRpb1wiXSB7XG4gICAgb3BhY2l0eTogMDtcbiAgICBwb3NpdGlvbjogZml4ZWQ7XG4gICAgd2lkdGg6IDIwcHg7XG59XG5cbi5yYWRpby10b29sYmFyIGxhYmVsIHtcbiAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgLy8gYmFja2dyb3VuZC1jb2xvcjogI2RkZDtcbiAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gICAgcGFkZGluZzogNXB4O1xuICAgIGZvbnQtZmFtaWx5OiBSb2JvdG8sIFwiSGVsdmV0aWNhIE5ldWVcIiwgc2Fucy1zZXJpZjtcbiAgICBmb250LXNpemU6IDEzcHg7XG4gICAgZm9udC13ZWlnaHQ6IDUwMDtcbiAgICBib3JkZXI6IDFweCBzb2xpZCAjY2NjY2NjO1xuICAgIC8vIGJvcmRlci1yYWRpdXM6IDRweDtcbiAgICB3aWR0aDogNzBweDtcbiAgICBtaW4td2lkdGg6IDcwcHg7XG4gICAgbWFyZ2luLXJpZ2h0OiA1cHg7XG4gICAgbWFyZ2luLWJvdHRvbTogNXB4O1xufVxuXG4ucmFkaW8tdG9vbGJhciBsYWJlbDpob3ZlciB7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogI2RmZDtcbn1cblxuLy8gLnJhZGlvLXRvb2xiYXIgaW5wdXRbdHlwZT1cInJhZGlvXCJdOmZvY3VzICsgbGFiZWwge1xuLy8gICAgIGJvcmRlcjogMnB4IGRhc2hlZCAjNDQ0O1xuLy8gfVxuXG4ucmFkaW8tdG9vbGJhciBpbnB1dFt0eXBlPVwicmFkaW9cIl06Y2hlY2tlZCtsYWJlbCB7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogIzAwNzdDODtcbiAgICAvLyBib3JkZXItY29sb3I6ICM0YzQ7XG4gICAgY29sb3I6ICNmZmZmZmY7XG59XG5cbi5sYWJlbC1jaGVja2VkIHtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjMDA3N0M4O1xuICAgIC8vIGJvcmRlci1jb2xvcjogIzRjNDtcbiAgICBjb2xvcjogI2ZmZmZmZjtcbn1cblxuc3BhbiB7XG4gICAgZm9udC1mYW1pbHk6IFwiSGVsdmV0aWNhXCIsIFRpbWVzLCBzZXJpZjtcbiAgICBmb250LXNpemU6IDEzcHg7XG59XG5cbi5kb3Qge1xuICAgIG1hcmdpbi10b3A6IDVweDtcbiAgICBoZWlnaHQ6IDE1cHg7XG4gICAgd2lkdGg6IDE4cHg7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogI2JiYjtcbiAgICBib3JkZXItcmFkaXVzOiA1MCU7XG4gICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgIG1hcmdpbi1yaWdodDogMTBweDtcbn1cblxuLmRvdC1iYWNrY29sb3VyLWdyZWVuIHtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjNkJDQzZGO1xufVxuXG4uZG90LWJhY2tjb2xvdXItcmVkIHtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjRkYwMDAwO1xufVxuXG4uZG90LWJhY2tjb2xvdXItb3JhbmdlIHtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjRkZBNTAwO1xufVxuXG4uYnV0dG9uLXN0eWxlIHtcbiAgICB3aWR0aDogNzVweDtcbiAgICBoZWlnaHQ6IDM2cHg7XG4gICAgZm9udC1mYW1pbHk6IFJvYm90bywgXCJIZWx2ZXRpY2EgTmV1ZVwiLCBzYW5zLXNlcmlmO1xuICAgIGZvbnQtc2l6ZTogMTNweDtcbiAgICBmb250LXdlaWdodDogNTAwO1xuICAgIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgICBib3JkZXI6IDBweCBzb2xpZDtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjRkZDQzMzO1xuICAgIHBhZGRpbmc6IDAgIWltcG9ydGFudDtcbiAgICBib3JkZXItcmFkaXVzOiAwcHg7XG59XG5cbi5vcGVuLWNscyB7XG4gICAgaGVpZ2h0OiBjYWxjKDEwMCUgLSAyMzVweCk7XG59XG5cbi5pbXBvcnQtY2xzIHtcbiAgICBoZWlnaHQ6IGNhbGMoMTAwJSAtIDIzMHB4KTtcbn1cblxuLnByaXZhdGUtY2xhc3Mge1xuICAgIC8vIGhlaWdodDogY2FsYygxMDAlIC0gMjMwcHgpICFpbXBvcnRhbnQ7XG4gICAgbWF4LWhlaWdodDogNjB2aCAhaW1wb3J0YW50O1xufVxuXG4uY3JpdGVyaWFDbGFzcyB7XG5cbiAgICAvLyBvdmVyZmxvdy15OiBzY3JvbGw7XG4gICAgLy8gaGVpZ2h0OiBjYWxjKDEwMCUgLSAxNTBweCk7XG4gICAgLy8gbWFyZ2luLXRvcDogMTBweDtcbiAgICAvLyBib3JkZXItdG9wOiAxcHggc29saWQgI2NjY2NjYztcbn1cblxuLm5hbWUtbGFiZWwge1xuICAgIGZvbnQtc2l6ZTogMTRweDtcbiAgICBmb250LXdlaWdodDogNTAwO1xufVxuXG4ubWF0LWxpc3QtYm9yZGVyLWxlZnQge1xuICAgIGJvcmRlci1yaWdodDogMXB4IHNvbGlkICNjY2NjY2M7XG59XG5cbi5tYXQtbGlzdC1pdGVtOmhvdmVyIHtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiByZ2IoMjQ2LCAyNDksIDI1MCk7XG59XG5cbi5zZWxlY3RlZC1oaWdobGlnaHQge1xuICAgIGJhY2tncm91bmQtY29sb3I6ICNFOUVFRjA7XG59XG5cbi5pdGVtLWRpc2FibGUge1xuICAgIGN1cnNvcjogbm90LWFsbG93ZWQgIWltcG9ydGFudDtcbiAgICBwb2ludGVyLWV2ZW50czogbm9uZTtcbn1cblxuLnNlbGVjdC1saXN0LWJsdWUge1xuICAgIGJhY2tncm91bmQtY29sb3I6ICMwMDc3Qzg7XG4gICAgY29sb3I6ICNmZmZmZmY7XG59XG5cbi5zZWxlY3QtbGlzdC1ibHVlOmhvdmVyIHtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjMDA3N0M4O1xuICAgIGNvbG9yOiAjZmZmZmZmO1xufVxuXG4uc2VsZWN0LWxpc3QtZ3JlZW4ge1xuICAgIGJhY2tncm91bmQtY29sb3I6ICMwMDlCNzc7XG4gICAgY29sb3I6ICNmZmZmZmY7XG59XG5cbi5zZWxlY3QtbGlzdC1ncmVlbjpob3ZlciB7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogIzAwOUI3NztcbiAgICBjb2xvcjogI2ZmZmZmZjtcbn1cblxuOjpuZy1kZWVwIC5tYXQtc2VsZWN0IHtcbiAgICBmb250LWZhbWlseTogUm9ib3RvLCBcIkhlbHZldGljYSBOZXVlXCIsIHNhbnMtc2VyaWY7XG4gICAgZm9udC1zaXplOiAxMXB4O1xuICAgIGZvbnQtd2VpZ2h0OiA0MDA7XG59XG5cbjo6bmctZGVlcCAubWF0LW1lbnUtcGFuZWwge1xuICAgIG1hcmdpbi10b3A6IDNweCAhaW1wb3J0YW50O1xuICAgIGJvcmRlcjogMXB4IHNvbGlkICNjY2NjY2M7XG4gICAgLy8gb3ZlcmZsb3c6IGhpZGRlbjtcbiAgICBtYXgtd2lkdGg6IDYwMHB4ICFpbXBvcnRhbnQ7XG59XG5cbjo6bmctZGVlcCAubWF0LXNlbGVjdDpmb2N1czpub3QoLm1hdC1zZWxlY3QtZGlzYWJsZWQpLm1hdC1wcmltYXJ5IC5tYXQtc2VsZWN0LWFycm93IHtcbiAgICBib3JkZXItbGVmdDogMTVweCBzb2xpZCB0cmFuc3BhcmVudCAhaW1wb3J0YW50O1xuICAgIGJvcmRlci1yaWdodDogbm9uZSAhaW1wb3J0YW50O1xuICAgIGJvcmRlci10b3A6IDE1cHggc29saWQgdHJhbnNwYXJlbnQgIWltcG9ydGFudDtcbiAgICBib3JkZXItaW1hZ2Utc291cmNlOiB1cmwoJy4uLy4uLy4uLy4uLy4uL2Fzc2V0cy9pbWFnZXMvRG93bi5zdmcnKSAhaW1wb3J0YW50O1xuICAgIGJvcmRlci1pbWFnZS1yZXBlYXQ6IHN0cmV0Y2ggIWltcG9ydGFudDtcbn1cblxuOjpuZy1kZWVwIC5tYXQtc2VsZWN0LXBhbmVsIHtcbiAgICBib3gtc2hhZG93OiAwcHggMnB4IDRweCAtMXB4IHJnYmEoMCwgMCwgMCwgMC4yKSwgMHB4IDRweCA1cHggMHB4IHJnYmEoMCwgMCwgMCwgMC4xNCksIDBweCAxcHggMTBweCAwcHggcmdiYSgwLCAwLCAwLCAwLjEyKTtcbiAgICBtYXJnaW4tdG9wOiAzNXB4O1xuICAgIG1heC1oZWlnaHQ6IDI4MHB4ICFpbXBvcnRhbnQ7XG59XG5cbjo6bmctZGVlcCAubWF0LXNlbGVjdC10cmlnZ2VyIHtcbiAgICBjb2xvcjogIzYzOTYxQztcbiAgICBib3JkZXItaW1hZ2Utc291cmNlOiB1cmwoJy4uLy4uLy4uLy4uLy4uL2Fzc2V0cy9pbWFnZXMvY2xvc2Uuc3ZnJykgIWltcG9ydGFudDtcbn1cblxuLyogdG8gY2hhbmdlIHNlbGVjdGVkIGl0ZW0gY29sb3IgaW4gdGhlIHNlbGVjdCBsaXN0ICovXG4ubWF0LXByaW1hcnkgLm1hdC1vcHRpb24ubWF0LXNlbGVjdGVkOm5vdCgubWF0LW9wdGlvbi1kaXNhYmxlZCkge1xuICAgIGNvbG9yOiAjNjM5NjFDO1xufVxuXG46Om5nLWRlZXAubWF0LXBzZXVkby1jaGVja2JveCB7XG4gICAgZGlzcGxheTogbm9uZSAhaW1wb3J0YW50O1xufVxuXG4ubWF0LWxpc3QtaXRlbS1jb250ZW50IHtcbiAgICBwYWRkaW5nOiAwIDEwcHg7XG59XG5cbi5tYXQtbGlzdC1iYXNlIC5tYXQtbGlzdC1vcHRpb24gLm1hdC1saXN0LWl0ZW0tY29udGVudCwgOjpuZy1kZWVwIC5tYXQtbGlzdC1iYXNlIC5tYXQtbGlzdC1pdGVtIC5tYXQtbGlzdC1pdGVtLWNvbnRlbnQge1xuICAgIHBhZGRpbmc6IDBweCA1cHggIWltcG9ydGFudDtcbiAgICBmb250LWZhbWlseTogUm9ib3RvLCBcIkhlbHZldGljYSBOZXVlXCIsIHNhbnMtc2VyaWY7XG4gICAgZm9udC1zaXplOiAxMXB4O1xuICAgIGZvbnQtd2VpZ2h0OiA0MDA7XG59XG5cbi5jdXN0b20tc2Nyb2xsLWJhci1wcml2YXRlIHtcbiAgICAvLyBoZWlnaHQ6NzB2aDtcbiAgICBoZWlnaHQ6IDMwMHB4O1xuICAgIG92ZXJmbG93LXk6IHNjcm9sbDtcbiAgICBvdmVyZmxvdy14OiBoaWRkZW47XG4gICAgbWFyZ2luLXJpZ2h0OiA1cHg7XG59XG5cbi5jdXN0b20tc2Nyb2xsLWJhci1wcml2YXRlOjotd2Via2l0LXNjcm9sbGJhciB7XG4gICAgd2lkdGg6IDEwcHg7XG59XG5cbi5jdXN0b20tc2Nyb2xsLWJhci1wcml2YXRlOjotd2Via2l0LXNjcm9sbGJhci10aHVtYiB7XG4gICAgLy8gYmFja2dyb3VuZDogcmdiYSgwLDAsMCwuMjYpO1xuICAgIGJhY2tncm91bmQtY29sb3I6ICNFOUVFRjA7XG4gICAgYm9yZGVyLXJhZGl1czogNXB4O1xufVxuXG4uY3VzdG9tLXNjcm9sbC1iYXItdnVlRGV0YWlscyB7XG4gICAgLy8gaGVpZ2h0Ojcwdmg7XG4gICAgLy8gaGVpZ2h0OiAzMDBweDtcbiAgICBvdmVyZmxvdy15OiBzY3JvbGw7XG4gICAgb3ZlcmZsb3cteDogaGlkZGVuO1xuICAgIG1hcmdpbi1yaWdodDogNXB4O1xufVxuXG4uY3VzdG9tLXNjcm9sbC1iYXItdnVlRGV0YWlsczo6LXdlYmtpdC1zY3JvbGxiYXIge1xuICAgIHdpZHRoOiAxMHB4O1xufVxuXG4uY3VzdG9tLXNjcm9sbC1iYXItdnVlRGV0YWlsczo6LXdlYmtpdC1zY3JvbGxiYXItdGh1bWIge1xuICAgIC8vIGJhY2tncm91bmQ6IHJnYmEoMCwwLDAsLjI2KTtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjRTlFRUYwO1xuICAgIGJvcmRlci1yYWRpdXM6IDVweDtcbn1cblxuLmN1c3RvbS1zY3JvbGwtYmFyIHtcbiAgICBoZWlnaHQ6IDQ5dmg7XG4gICAgLy8gaGVpZ2h0OiBjYWxjKDEwMCUgLSA3MHB4KTtcbiAgICBvdmVyZmxvdy15OiBzY3JvbGw7XG4gICAgb3ZlcmZsb3cteDogaGlkZGVuO1xuICAgIG1hcmdpbi1yaWdodDogNXB4O1xuICAgIC8vIHBhZGRpbmctbGVmdDogNXB4O1xufVxuXG4uY3VzdG9tLXNjcm9sbC1iYXI6Oi13ZWJraXQtc2Nyb2xsYmFyIHtcbiAgICB3aWR0aDogMTBweDtcbn1cblxuLmN1c3RvbS1zY3JvbGwtYmFyOjotd2Via2l0LXNjcm9sbGJhci10aHVtYiB7XG4gICAgLy8gYmFja2dyb3VuZDogcmdiYSgwLDAsMCwuMjYpO1xuICAgIGJhY2tncm91bmQtY29sb3I6ICNFOUVFRjA7XG4gICAgYm9yZGVyLXJhZGl1czogNXB4O1xufVxuXG4uY3VzdG9tLXNjcm9sbC1iYXItdnVlTGlzdCB7XG4gICAgLy8gaGVpZ2h0Ojcwdmg7XG4gICAgaGVpZ2h0OiBjYWxjKDEwMCUgLSAxNXB4KTtcbiAgICBvdmVyZmxvdy15OiBzY3JvbGw7XG4gICAgb3ZlcmZsb3cteDogaGlkZGVuO1xuICAgIC8vIG1hcmdpbi1yaWdodDogNXB4O1xuICAgIHBhZGRpbmctbGVmdDogNXB4O1xufVxuXG4uY3VzdG9tLXNjcm9sbC1iYXItdnVlTGlzdDo6LXdlYmtpdC1zY3JvbGxiYXIge1xuICAgIHdpZHRoOiAxMHB4O1xufVxuXG4uY3VzdG9tLXNjcm9sbC1iYXItdnVlTGlzdDo6LXdlYmtpdC1zY3JvbGxiYXItdGh1bWIge1xuICAgIC8vIGJhY2tncm91bmQ6IHJnYmEoMCwwLDAsLjI2KTtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjRTlFRUYwO1xuICAgIGJvcmRlci1yYWRpdXM6IDVweDtcbn1cblxuLnZ1ZUxpc3RIZWlnaHQge1xuICAgIG92ZXJmbG93LXk6IGF1dG87XG4gICAgaGVpZ2h0OiBjYWxjKDEwMCUgLSAxNTdweCk7XG4gICAgLy8gbWFyZ2luLXRvcDogMTBweDtcbiAgICBib3JkZXI6IDFweCBzb2xpZCAjY2NjO1xuICAgIC8vIGJvcmRlci10b3A6IDBweCBzb2xpZCAjY2NjO1xuICAgIHdpZHRoOiA1MTNweDtcbn1cblxuLy8gLmRyb3Bkb3duLWFsaWdubWVudCB7XG4vLyAgIGRpc3BsYXk6aW5saW5lLWJsb2NrO1xuLnVwLWRvd24ge1xuICAgIGZsb2F0OiByaWdodDtcbiAgICBtYXJnaW4tdG9wOiA3cHg7XG4gICAgd2lkdGg6IDE1cHg7XG4gICAgaGVpZ2h0OiAxNXB4O1xufVxuXG4uaW5wdXQtY2xzIHtcbiAgICB3aWR0aDogMzAlO1xuICAgIGhlaWdodDogMjVweDtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjZmZmZmZmO1xuICAgIGJvcmRlcjogMXB4IHNvbGlkICNFOUVFRjA7XG4gICAgY29sb3I6ICMwMDAwMDA7XG4gICAgZm9udC1zaXplOiAxMnB4O1xufVxuXG4uaW1wb3J0LWhlaWdodCB7XG4gICAgbGluZS1oZWlnaHQ6IDMwcHggIWltcG9ydGFudDtcbn1cblxuLnBvcHVsYXRpb24tbWVudSB7XG4gICAgYm9yZGVyLWJvdHRvbTogMXB4IHNvbGlkICNhYWFhYWE7XG4gICAgaGVpZ2h0OiAzMHB4O1xuICAgIGN1cnNvcjogcG9pbnRlcjtcbn1cblxuLmRyb3Bkb3duLWFsaWdubWVudDpudGgtY2hpbGQoMSksXG4uZHJvcGRvd24tYWxpZ25tZW50Om50aC1jaGlsZCgyKSB7XG4gICAgbWFyZ2luLXRvcDogMDtcbn1cblxuLnB1YmxpYy1jaGVjayB7XG4gICAgbWFyZ2luLXJpZ2h0OiA1JTtcbn1cblxuLnBvcHVsYXRpb24tbGlzdCB7XG4gICAgbWluLXdpZHRoOiAxODBweDtcbiAgICBtYXgtaGVpZ2h0OiAyNTBweDtcbn1cblxuLnBvcHVsYXRpb24tbGlzdC1pdGVtIHtcbiAgICBib3JkZXI6IDBweDtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjZmZmZmZmO1xuICAgIGN1cnNvcjogcG9pbnRlcjtcbiAgICAvLyB0ZXh0LXRyYW5zZm9ybTogdXBwZXJjYXNlO1xuXG5cbiAgICBmb250LWZhbWlseTogUm9ib3RvLCBcIkhlbHZldGljYSBOZXVlXCIsIHNhbnMtc2VyaWY7XG4gICAgZm9udC1zaXplOiAxMXB4O1xuICAgIGZvbnQtd2VpZ2h0OiA0MDA7XG4gICAgbGluZS1oZWlnaHQ6IDAgIWltcG9ydGFudDtcbn1cblxuLm1hcmdpbi0xMCB7XG4gICAgbWFyZ2luLXRvcDogMTBweDtcbn1cblxuLnRpY2staW1nIHtcbiAgICBmbG9hdDogcmlnaHQ7XG4gICAgbWFyZ2luLXRvcDogLTdweDtcbiAgICBtYXJnaW4tbGVmdDogMTBweDtcbiAgICB3aWR0aDogMTVweDtcbiAgICBoZWlnaHQ6IDE1cHg7XG59XG5cbi8vIH1cblxuOjpuZy1kZWVwICN2dWVEZXRhaWxMaXN0IHtcblxuICAgIC5ncm91cC1saXN0IHtcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogIzAwNzdDODtcbiAgICAgICAgY29sb3I6ICNmZmZmZmY7XG4gICAgfVxuXG4gICAgLmdyb3VwLWxpc3Q6aG92ZXIge1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjMDA3N0M4O1xuICAgICAgICBjb2xvcjogI2ZmZmZmZjtcbiAgICB9XG5cbiAgICAuZ3JvdXAtbGlzdC1ncmVlbiB7XG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6ICMwMDlCNzc7XG4gICAgICAgIGNvbG9yOiAjZmZmZmZmO1xuICAgIH1cblxuICAgIC5ncm91cC1saXN0LWdyZWVuOmhvdmVyIHtcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogIzAwOUI3NztcbiAgICAgICAgY29sb3I6ICNmZmZmZmY7XG4gICAgfVxuXG4gICAgLmdyb3VwLWxpc3QtYm90dG9tLXNwYWNlIHtcbiAgICAgICAgbWFyZ2luLWJvdHRvbTogM3B4O1xuICAgIH1cblxuICAgIDo6bmctZGVlcCAubWF0LWxpc3Qtb3B0aW9uW2FyaWEtc2VsZWN0ZWQ9XCJ0cnVlXCJdIC5ncm91cC1saXN0IHtcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogI2NjY2NjYztcbiAgICAgICAgY29sb3I6ICMwMDAwMDA7XG4gICAgfVxuXG4gICAgOjpuZy1kZWVwIC5tYXQtbGlzdC1vcHRpb25bYXJpYS1zZWxlY3RlZD1cInRydWVcIl0gLmdyb3VwLWxpc3QtZ3JlZW4ge1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjY2NjY2NjO1xuICAgICAgICBjb2xvcjogIzAwMDAwMDtcbiAgICB9XG5cbiAgICA6Om5nLWRlZXAgLm1hdC1saXN0LW9wdGlvblthcmlhLXNlbGVjdGVkPVwidHJ1ZVwiXSAuc2VsZWN0LWxpc3QtZGVsYXkge1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjY2NjY2NjO1xuICAgICAgICBjb2xvcjogIzAwMDAwMDtcbiAgICB9XG59XG5cbi5zZWxlY3QtZ3JvdXAtbGlzdDpob3ZlciB7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogI2NjY2NjYyAhaW1wb3J0YW50O1xuICAgIGNvbG9yOiAjMDAwMDAwICFpbXBvcnRhbnQ7XG59XG5cblxuXG4uZGF0ZS1yYWRpby1idXR0b24ge1xuICAgIG1hcmdpbjogM3B4O1xufVxuXG4ucHJpdmF0ZUlQTkxpc3RIZWlnaHQge1xuICAgIGhlaWdodDogMTAwcHggIWltcG9ydGFudDtcbn1cblxuLnVwbG9hZC1maWxlIHtcbiAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgb3ZlcmZsb3cteTogYXV0bztcbiAgICAvLyBoZWlnaHQ6IDEyN3B4O1xuICAgIGhlaWdodDogMTI1cHg7XG4gICAgLy8gcGFkZGluZzogMTVweCA1MHB4IDAgNTBweDtcbiAgICBwYWRkaW5nOiAxNXB4IDE1cHggMCAzMHB4O1xuICAgIC8vIG1hcmdpbi10b3A6IDEwcHg7XG4gICAgbWFyZ2luLXRvcDogMjVweDtcbiAgICBtYXJnaW4tYm90dG9tOiA3cHg7XG4gICAgYm9yZGVyOiAxcHggc29saWQgI2NjY2NjYztcbn1cblxuLnVwbG9hZC1jZW50ZXIge1xuICAgIC8vIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICB0b3A6IDMwJTtcbiAgICBsZWZ0OiA1JTtcbn1cblxuLnRhYmxlLWNvbnRhaW5lciB7XG4gICAgbWFyZ2luOiAxMHB4IDEwcHggMCAxMHB4O1xuICAgIG92ZXJmbG93OiBhdXRvO1xuICAgIGhlaWdodDogY2FsYygxMDAlIC0gMTJweCk7XG4gICAgYm9yZGVyLWNvbGxhcHNlOiBjb2xsYXBzZTtcbiAgICBmb250LXNpemU6IDEycHg7XG4gICAgZm9udC1mYW1pbHk6IFJvYm90bywgXCJIZWx2ZXRpY2EgTmV1ZVwiLCBzYW5zLXNlcmlmO1xuICAgIGJhY2tncm91bmQ6ICNmZmZmZmY7XG4gICAgdGV4dC1hbGlnbjogbGVmdDtcbiAgICB3aGl0ZS1zcGFjZTogbm93cmFwO1xuXG4gICAgLy8gYm9yZGVyLWNvbGxhcHNlOiBjb2xsYXBzZTtcbiAgICB0YWJsZSB7XG4gICAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgICBjb2xvcjogd2hpdGU7XG4gICAgICAgIGJvcmRlci1zcGFjaW5nOiAwICFpbXBvcnRhbnQ7XG4gICAgICAgIHRhYmxlLWxheW91dDogYXV0bztcbiAgICB9XG5cbiAgICAubWF0LWNlbGwsXG4gICAgLm1hdC1oZWFkZXItY2VsbCB7XG4gICAgICAgIGJvcmRlci1yaWdodDogMXB4IHNvbGlkICMwMDAwMDA7XG4gICAgICAgIGFsaWduLXNlbGY6IHN0cmV0Y2g7XG4gICAgICAgIHRleHQtYWxpZ246IGxlZnQ7XG4gICAgICAgIHBhZGRpbmc6IDAuM3JlbTtcbiAgICB9XG5cbiAgICAubWF0LWNlbGwge1xuICAgICAgICBjb2xvcjogIzAwMDAwMDtcbiAgICB9XG5cbiAgICAvLyAgIHRoOmZpcnN0LWNoaWxkIHtcbiAgICAvLyAgICAgd2lkdGg6IDFweDtcbiAgICAvLyAgICAgYm9yZGVyOiAwO1xuICAgIC8vICAgfVxuICAgIC8vICAgdGg6Zmlyc3QtY2hpbGQgc3BhbiB7XG4gICAgLy8gICAgIGRpc3BsYXk6IG5vbmU7XG4gICAgLy8gICB9XG4gICAgLy8gICB0ZDpmaXJzdC1jaGlsZCB7XG4gICAgLy8gICAgIGJhY2tncm91bmQ6ICMyZDQ1NTc7XG4gICAgLy8gICAgIGJvcmRlcjogMDtcbiAgICAvLyAgICAgY29sb3I6ICNmZmZmZmY7XG4gICAgLy8gICAgIHRleHQtYWxpZ246IHVuc2V0O1xuICAgIC8vICAgfVxuICAgIC5tYXQtaGVhZGVyLWNlbGwge1xuICAgICAgICBib3JkZXItcmlnaHQ6IDFweCBzb2xpZCAjZmZmZmZmO1xuICAgICAgICBib3JkZXItdG9wOiAxcHggc29saWQgI2ZmZmZmZjtcbiAgICAgICAgYm9yZGVyLWJvdHRvbTogMXB4IHNvbGlkICNmZmZmZmY7XG4gICAgICAgIGN1cnNvcjogY29sLXJlc2l6ZTtcbiAgICB9XG5cbiAgICB0ci5tYXQtcm93IHtcbiAgICAgICAgbGluZS1oZWlnaHQ6IDMwcHg7XG4gICAgICAgIHdoaXRlLXNwYWNlOiBub3dyYXA7XG5cbiAgICAgICAgdGQge1xuICAgICAgICAgICAgZm9udC1zaXplOiAxMnB4O1xuICAgICAgICAgICAgZm9udC1mYW1pbHk6IFJvYm90bywgXCJIZWx2ZXRpY2EgTmV1ZVwiLCBzYW5zLXNlcmlmO1xuICAgICAgICAgICAgb3ZlcmZsb3c6IGhpZGRlbjtcbiAgICAgICAgICAgIHRleHQtb3ZlcmZsb3c6IGVsbGlwc2lzO1xuICAgICAgICAgICAgbWF4LXdpZHRoOiA1MHB4O1xuICAgICAgICAgICAgLy8gd2lkdGg6IDEwJTtcbiAgICAgICAgICAgIC8vIHBhZGRpbmc6IDA7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICB0ci5tYXQtcm93Om50aC1jaGlsZChvZGQpIHtcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogI2YyZjJmMiAhaW1wb3J0YW50O1xuICAgIH1cblxuICAgIHRyLm1hdC1oZWFkZXItcm93IHtcbiAgICAgICAgYmFja2dyb3VuZDogIzJENDU1NyAhaW1wb3J0YW50O1xuICAgICAgICBoZWlnaHQ6IDMwcHggIWltcG9ydGFudDtcblxuICAgICAgICAubWF0LWhlYWRlci1jZWxsIHtcbiAgICAgICAgICAgIGNvbG9yOiAjZmZmZmZmO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgdHIubWF0LXJvdy5oaWdobGlnaHRlZFJvdyB7XG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6ICMyZDQ1NTcgIWltcG9ydGFudDtcblxuICAgICAgICB0ZCB7XG4gICAgICAgICAgICBjb2xvcjogI2ZmZmZmZjtcbiAgICAgICAgICAgIHdoaXRlLXNwYWNlOiBpbml0aWFsICFpbXBvcnRhbnQ7XG4gICAgICAgICAgICBtYXgtd2lkdGg6IDEwMCU7XG4gICAgICAgICAgICAvLyB3aWR0aDogY2FsYygxMDAlIC0gM2VtKTtcbiAgICAgICAgfVxuICAgIH1cblxufVxuXG4udGV4dC1zcGFuLWZvbnQge1xuICAgIGZvbnQtZmFtaWx5OiBSb2JvdG8sIFwiSGVsdmV0aWNhIE5ldWVcIiwgc2Fucy1zZXJpZjtcbiAgICBmb250LXNpemU6IDExcHg7XG4gICAgZm9udC13ZWlnaHQ6IDQwMDtcbiAgICBsaW5lLWhlaWdodDogMTNweDtcbiAgICAvLyBtYXJnaW4tbGVmdDogLTRweDtcbn1cblxuLmNscy1kaXNwbGF5bm9uZXtcbiAgICBkaXNwbGF5OiBub25lICFpbXBvcnRhbnQ7XG59IiwiLmNyZWF0ZS1ncm91cCB7XG4gIGRpc3BsYXk6IGZsZXg7XG4gIGhlaWdodDogY2FsYygxMDAlIC0gMXB4KTtcbiAgYmFja2dyb3VuZC1jb2xvcjogI2ZmZmZmZjtcbn1cblxuLm9wZW4tcXVlcnktd2lkdGgge1xuICB3aWR0aDogNDIwcHg7XG59XG5cbi53aWR0aCB7XG4gIHdpZHRoOiAxMDAwcHg7XG59XG5cbi5jb2x1bW4tcGFuZWwxIHtcbiAgaGVpZ2h0OiAxMDAlO1xuICBtaW4td2lkdGg6IDQwMHB4O1xuICBtYXgtd2lkdGg6IDQwMHB4O1xuICBiYWNrZ3JvdW5kLWNvbG9yOiB3aGl0ZTtcbn1cblxuLnByaXZhdGUtY2xzIHtcbiAgcGFkZGluZy1sZWZ0OiAxMHB4O1xuICBwYWRkaW5nLXRvcDogMTBweDtcbn1cblxuLm9wZW4tcGFnZSB7XG4gIGhlaWdodDogY2FsYygxMDAlIC0gMjJweCk7XG59XG5cbi5pbXBvcnQtcGFnZSB7XG4gIGhlaWdodDogY2FsYygxMDAlIC0gNTVweCk7XG59XG5cbi5jb2x1bW4tcGFuZWw0IHtcbiAgbWluLXdpZHRoOiAzMHB4O1xuICBtYXgtd2lkdGg6IDMwcHg7XG59XG5cbi5jb2x1bW4tcGFuZWwyIHtcbiAgaGVpZ2h0OiA5OCU7XG4gIG1pbi13aWR0aDogNTI1cHg7XG4gIG1heC13aWR0aDogNTI1cHg7XG4gIGJhY2tncm91bmQtY29sb3I6IHdoaXRlO1xufVxuXG4uY29sdW1uLXBhbmVsMyB7XG4gIGhlaWdodDogMTAwJTtcbiAgd2lkdGg6IDEwMCU7XG4gIGJhY2tncm91bmQ6ICMyRDQ1NTc7XG4gIG92ZXJmbG93OiBoaWRkZW47XG59XG5cbi5mb290ZXItcGFuZWwyIHtcbiAgd2lkdGg6IDUyNXB4O1xuICBib3R0b206IDA7XG4gIC8qIHN0aWNrIHRvIGJvdHRvbSAqL1xuICBtYXJnaW4tbGVmdDogLTEwcHg7XG4gIG1hcmdpbi10b3A6IDRweDtcbn1cblxuLmZvb3Rlci1wYW5lbDMge1xuICB3aWR0aDogOTklO1xuICBib3R0b206IDA7XG4gIGJhY2tncm91bmQ6ICMwMDAwMDA7XG4gIGhlaWdodDogMzhweDtcbn1cblxuLmZvb3Rlci1wYW5lbC1xdWVyeSB7XG4gIHdpZHRoOiAzNzVweDtcbn1cblxuLmJ1dHRvbi1wYW5lbDIge1xuICB3aWR0aDogODVweDtcbiAgaGVpZ2h0OiAzMHB4ICFpbXBvcnRhbnQ7XG4gIGZvbnQtZmFtaWx5OiBSb2JvdG8sIFwiSGVsdmV0aWNhIE5ldWVcIiwgc2Fucy1zZXJpZjtcbiAgZm9udC1zaXplOiAxM3B4O1xuICBmb250LXdlaWdodDogNTAwO1xuICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gIGJvcmRlcjogMHB4IHNvbGlkO1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjRkZDQzMzO1xuICBwYWRkaW5nOiAwICFpbXBvcnRhbnQ7XG4gIGJvcmRlci1yYWRpdXM6IDBweDtcbn1cblxuLmFycm93IHtcbiAgYm9yZGVyOiAxcHggc29saWQgI2MzYzNjMztcbiAgYmFja2dyb3VuZC1jb2xvcjogd2hpdGU7XG4gIHBhZGRpbmc6IDE5cHggMHB4IDBweCAwcHg7XG59XG5cbi5hcnJvd19kZXRhaWwge1xuICBwYWRkaW5nOiAxOXB4IDBweCAwcHggNHB4O1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjYmJiY2JjO1xufVxuXG4ubWFpbiB7XG4gIGFsaWduLXNlbGY6IGNlbnRlcjtcbiAgd2lkdGg6IDMwcHg7XG4gIGhlaWdodDogY2FsYygxMDAlIC0gMzdweCkgIWltcG9ydGFudDtcbiAgZGlzcGxheTogZmxleDtcbiAgZmxleC13cmFwOiB3cmFwO1xuICBhbGlnbi1jb250ZW50OiBjZW50ZXI7XG59XG5cbi5tYWluIGRpdiB7XG4gIHdpZHRoOiA0OXB4O1xuICBoZWlnaHQ6IDQwcHg7XG59XG5cbi5jZW50ZXIta2V5IHtcbiAgd2lkdGg6IDI2cHg7XG4gIHBvc2l0aW9uOiBzdGlja3kgIWltcG9ydGFudDtcbiAgcmlnaHQ6IDA7XG4gIGJvdHRvbTogNDglO1xuICBmbG9hdDogcmlnaHQ7XG4gIHBhZGRpbmc6IDJweDtcbn1cbi5jZW50ZXIta2V5IC5hcnJvdyB7XG4gIGJvcmRlcjogMXB4IHNvbGlkICNjM2MzYzM7XG4gIGJhY2tncm91bmQtY29sb3I6IHdoaXRlO1xuICBwYWRkaW5nOiAxNXB4IDEwcHggMHB4IDBweDtcbn1cblxuLm1hdGVyLWljb25zIHtcbiAgbWFyZ2luLWxlZnQ6IDRweDtcbiAgbWFyZ2luLXRvcDogMHB4O1xufVxuXG4uZGl2LXdpZHRoIHtcbiAgd2lkdGg6IDUwJTtcbiAgcGFkZGluZzogMTBweDtcbn1cblxuLml0ZW0tcmlnaHQge1xuICBmbG9hdDogcmlnaHQ7XG59XG5cbi5pbWctc2l6ZS0yMCB7XG4gIGhlaWdodDogMThweDtcbiAgd2lkdGg6IDE4cHg7XG4gIGN1cnNvcjogcG9pbnRlcjtcbn1cblxuLnRpdGxlLXNwYW4ge1xuICBmb250LWZhbWlseTogUm9ib3RvLCBcIkhlbHZldGljYSBOZXVlXCIsIHNhbnMtc2VyaWY7XG4gIGZvbnQtc2l6ZTogMTRweDtcbiAgZm9udC13ZWlnaHQ6IDUwMDtcbiAgbGluZS1oZWlnaHQ6IDE3cHg7XG59XG5cbi50ZXh0LXNwYW4ge1xuICBmb250LWZhbWlseTogUm9ib3RvLCBcIkhlbHZldGljYSBOZXVlXCIsIHNhbnMtc2VyaWY7XG4gIGZvbnQtc2l6ZTogMTFweDtcbiAgZm9udC13ZWlnaHQ6IDQwMDtcbiAgbGluZS1oZWlnaHQ6IDI4cHg7XG59XG5cbi50ZXh0LXNwYW4td28tbGluZS1oZWlnaHQge1xuICBmb250LWZhbWlseTogUm9ib3RvLCBcIkhlbHZldGljYSBOZXVlXCIsIHNhbnMtc2VyaWY7XG4gIGZvbnQtc2l6ZTogMTFweDtcbiAgZm9udC13ZWlnaHQ6IDQwMDtcbn1cblxuLmRpdi1mbGV4IHtcbiAgZGlzcGxheTogZmxleDtcbn1cblxuLm1hcmdpbi1ib3QtMTAge1xuICBtYXJnaW4tYm90dG9tOiAxMHB4O1xufVxuXG4uZG90LXN0eWxlIHtcbiAgd2lkdGg6IDBweDtcbiAgbWFyZ2luLWxlZnQ6IDEwcHg7XG4gIG1hcmdpbi10b3A6IDRweDtcbiAgY29sb3I6ICNmZmZmZmY7XG59XG5cbi5leGFtcGxlLXJhZGlvLWdyb3VwIHtcbiAgZGlzcGxheTogZmxleDtcbiAgbWFyZ2luOiAxNXB4IDA7XG59XG5cbi5leGFtcGxlLXJhZGlvLWJ1dHRvbiB7XG4gIG1hcmdpbi1yaWdodDogMjBweDtcbn1cblxuLnRpdGxlLWZvbnQge1xuICBjb2xvcjogIzAwMDAwMDtcbiAgZm9udC1mYW1pbHk6IFJvYm90bywgXCJIZWx2ZXRpY2EgTmV1ZVwiLCBzYW5zLXNlcmlmO1xuICBmb250LXNpemU6IDE0cHg7XG4gIGZvbnQtd2VpZ2h0OiA1MDA7XG4gIGxpbmUtaGVpZ2h0OiAxN3B4O1xuICB3aWR0aDogMjEwcHg7XG4gIHRleHQtYWxpZ246IGxlZnQ7XG59XG5cbi5jb250ZW50LWZvbnQge1xuICBjb2xvcjogIzAwMDAwMDtcbiAgZm9udC1mYW1pbHk6IFJvYm90bywgXCJIZWx2ZXRpY2EgTmV1ZVwiLCBzYW5zLXNlcmlmO1xuICBmb250LXNpemU6IDEzcHg7XG4gIGZvbnQtd2VpZ2h0OiA0MDA7XG4gIGxpbmUtaGVpZ2h0OiAxN3B4O1xuICB3aWR0aDogNTlweDtcbiAgdGV4dC1hbGlnbjogbGVmdDtcbn1cblxuLnJhZGlvLXRvb2xiYXIge1xuICBtYXJnaW4tdG9wOiAxMHB4O1xufVxuXG4ucmFkaW8tdG9vbGJhciBpbnB1dFt0eXBlPXJhZGlvXSB7XG4gIG9wYWNpdHk6IDA7XG4gIHBvc2l0aW9uOiBmaXhlZDtcbiAgd2lkdGg6IDIwcHg7XG59XG5cbi5yYWRpby10b29sYmFyIGxhYmVsIHtcbiAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gIHBhZGRpbmc6IDVweDtcbiAgZm9udC1mYW1pbHk6IFJvYm90bywgXCJIZWx2ZXRpY2EgTmV1ZVwiLCBzYW5zLXNlcmlmO1xuICBmb250LXNpemU6IDEzcHg7XG4gIGZvbnQtd2VpZ2h0OiA1MDA7XG4gIGJvcmRlcjogMXB4IHNvbGlkICNjY2NjY2M7XG4gIHdpZHRoOiA3MHB4O1xuICBtaW4td2lkdGg6IDcwcHg7XG4gIG1hcmdpbi1yaWdodDogNXB4O1xuICBtYXJnaW4tYm90dG9tOiA1cHg7XG59XG5cbi5yYWRpby10b29sYmFyIGxhYmVsOmhvdmVyIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogI2RmZDtcbn1cblxuLnJhZGlvLXRvb2xiYXIgaW5wdXRbdHlwZT1yYWRpb106Y2hlY2tlZCArIGxhYmVsIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogIzAwNzdDODtcbiAgY29sb3I6ICNmZmZmZmY7XG59XG5cbi5sYWJlbC1jaGVja2VkIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogIzAwNzdDODtcbiAgY29sb3I6ICNmZmZmZmY7XG59XG5cbnNwYW4ge1xuICBmb250LWZhbWlseTogXCJIZWx2ZXRpY2FcIiwgVGltZXMsIHNlcmlmO1xuICBmb250LXNpemU6IDEzcHg7XG59XG5cbi5kb3Qge1xuICBtYXJnaW4tdG9wOiA1cHg7XG4gIGhlaWdodDogMTVweDtcbiAgd2lkdGg6IDE4cHg7XG4gIGJhY2tncm91bmQtY29sb3I6ICNiYmI7XG4gIGJvcmRlci1yYWRpdXM6IDUwJTtcbiAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICBtYXJnaW4tcmlnaHQ6IDEwcHg7XG59XG5cbi5kb3QtYmFja2NvbG91ci1ncmVlbiB7XG4gIGJhY2tncm91bmQtY29sb3I6ICM2QkNDNkY7XG59XG5cbi5kb3QtYmFja2NvbG91ci1yZWQge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjRkYwMDAwO1xufVxuXG4uZG90LWJhY2tjb2xvdXItb3JhbmdlIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogI0ZGQTUwMDtcbn1cblxuLmJ1dHRvbi1zdHlsZSB7XG4gIHdpZHRoOiA3NXB4O1xuICBoZWlnaHQ6IDM2cHg7XG4gIGZvbnQtZmFtaWx5OiBSb2JvdG8sIFwiSGVsdmV0aWNhIE5ldWVcIiwgc2Fucy1zZXJpZjtcbiAgZm9udC1zaXplOiAxM3B4O1xuICBmb250LXdlaWdodDogNTAwO1xuICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gIGJvcmRlcjogMHB4IHNvbGlkO1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjRkZDQzMzO1xuICBwYWRkaW5nOiAwICFpbXBvcnRhbnQ7XG4gIGJvcmRlci1yYWRpdXM6IDBweDtcbn1cblxuLm9wZW4tY2xzIHtcbiAgaGVpZ2h0OiBjYWxjKDEwMCUgLSAyMzVweCk7XG59XG5cbi5pbXBvcnQtY2xzIHtcbiAgaGVpZ2h0OiBjYWxjKDEwMCUgLSAyMzBweCk7XG59XG5cbi5wcml2YXRlLWNsYXNzIHtcbiAgbWF4LWhlaWdodDogNjB2aCAhaW1wb3J0YW50O1xufVxuXG4ubmFtZS1sYWJlbCB7XG4gIGZvbnQtc2l6ZTogMTRweDtcbiAgZm9udC13ZWlnaHQ6IDUwMDtcbn1cblxuLm1hdC1saXN0LWJvcmRlci1sZWZ0IHtcbiAgYm9yZGVyLXJpZ2h0OiAxcHggc29saWQgI2NjY2NjYztcbn1cblxuLm1hdC1saXN0LWl0ZW06aG92ZXIge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjZjZmOWZhO1xufVxuXG4uc2VsZWN0ZWQtaGlnaGxpZ2h0IHtcbiAgYmFja2dyb3VuZC1jb2xvcjogI0U5RUVGMDtcbn1cblxuLml0ZW0tZGlzYWJsZSB7XG4gIGN1cnNvcjogbm90LWFsbG93ZWQgIWltcG9ydGFudDtcbiAgcG9pbnRlci1ldmVudHM6IG5vbmU7XG59XG5cbi5zZWxlY3QtbGlzdC1ibHVlIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogIzAwNzdDODtcbiAgY29sb3I6ICNmZmZmZmY7XG59XG5cbi5zZWxlY3QtbGlzdC1ibHVlOmhvdmVyIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogIzAwNzdDODtcbiAgY29sb3I6ICNmZmZmZmY7XG59XG5cbi5zZWxlY3QtbGlzdC1ncmVlbiB7XG4gIGJhY2tncm91bmQtY29sb3I6ICMwMDlCNzc7XG4gIGNvbG9yOiAjZmZmZmZmO1xufVxuXG4uc2VsZWN0LWxpc3QtZ3JlZW46aG92ZXIge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjMDA5Qjc3O1xuICBjb2xvcjogI2ZmZmZmZjtcbn1cblxuOjpuZy1kZWVwIC5tYXQtc2VsZWN0IHtcbiAgZm9udC1mYW1pbHk6IFJvYm90bywgXCJIZWx2ZXRpY2EgTmV1ZVwiLCBzYW5zLXNlcmlmO1xuICBmb250LXNpemU6IDExcHg7XG4gIGZvbnQtd2VpZ2h0OiA0MDA7XG59XG5cbjo6bmctZGVlcCAubWF0LW1lbnUtcGFuZWwge1xuICBtYXJnaW4tdG9wOiAzcHggIWltcG9ydGFudDtcbiAgYm9yZGVyOiAxcHggc29saWQgI2NjY2NjYztcbiAgbWF4LXdpZHRoOiA2MDBweCAhaW1wb3J0YW50O1xufVxuXG46Om5nLWRlZXAgLm1hdC1zZWxlY3Q6Zm9jdXM6bm90KC5tYXQtc2VsZWN0LWRpc2FibGVkKS5tYXQtcHJpbWFyeSAubWF0LXNlbGVjdC1hcnJvdyB7XG4gIGJvcmRlci1sZWZ0OiAxNXB4IHNvbGlkIHRyYW5zcGFyZW50ICFpbXBvcnRhbnQ7XG4gIGJvcmRlci1yaWdodDogbm9uZSAhaW1wb3J0YW50O1xuICBib3JkZXItdG9wOiAxNXB4IHNvbGlkIHRyYW5zcGFyZW50ICFpbXBvcnRhbnQ7XG4gIGJvcmRlci1pbWFnZS1zb3VyY2U6IHVybChcIi4uLy4uLy4uLy4uLy4uL2Fzc2V0cy9pbWFnZXMvRG93bi5zdmdcIikgIWltcG9ydGFudDtcbiAgYm9yZGVyLWltYWdlLXJlcGVhdDogc3RyZXRjaCAhaW1wb3J0YW50O1xufVxuXG46Om5nLWRlZXAgLm1hdC1zZWxlY3QtcGFuZWwge1xuICBib3gtc2hhZG93OiAwcHggMnB4IDRweCAtMXB4IHJnYmEoMCwgMCwgMCwgMC4yKSwgMHB4IDRweCA1cHggMHB4IHJnYmEoMCwgMCwgMCwgMC4xNCksIDBweCAxcHggMTBweCAwcHggcmdiYSgwLCAwLCAwLCAwLjEyKTtcbiAgbWFyZ2luLXRvcDogMzVweDtcbiAgbWF4LWhlaWdodDogMjgwcHggIWltcG9ydGFudDtcbn1cblxuOjpuZy1kZWVwIC5tYXQtc2VsZWN0LXRyaWdnZXIge1xuICBjb2xvcjogIzYzOTYxQztcbiAgYm9yZGVyLWltYWdlLXNvdXJjZTogdXJsKFwiLi4vLi4vLi4vLi4vLi4vYXNzZXRzL2ltYWdlcy9jbG9zZS5zdmdcIikgIWltcG9ydGFudDtcbn1cblxuLyogdG8gY2hhbmdlIHNlbGVjdGVkIGl0ZW0gY29sb3IgaW4gdGhlIHNlbGVjdCBsaXN0ICovXG4ubWF0LXByaW1hcnkgLm1hdC1vcHRpb24ubWF0LXNlbGVjdGVkOm5vdCgubWF0LW9wdGlvbi1kaXNhYmxlZCkge1xuICBjb2xvcjogIzYzOTYxQztcbn1cblxuOjpuZy1kZWVwLm1hdC1wc2V1ZG8tY2hlY2tib3gge1xuICBkaXNwbGF5OiBub25lICFpbXBvcnRhbnQ7XG59XG5cbi5tYXQtbGlzdC1pdGVtLWNvbnRlbnQge1xuICBwYWRkaW5nOiAwIDEwcHg7XG59XG5cbi5tYXQtbGlzdC1iYXNlIC5tYXQtbGlzdC1vcHRpb24gLm1hdC1saXN0LWl0ZW0tY29udGVudCwgOjpuZy1kZWVwIC5tYXQtbGlzdC1iYXNlIC5tYXQtbGlzdC1pdGVtIC5tYXQtbGlzdC1pdGVtLWNvbnRlbnQge1xuICBwYWRkaW5nOiAwcHggNXB4ICFpbXBvcnRhbnQ7XG4gIGZvbnQtZmFtaWx5OiBSb2JvdG8sIFwiSGVsdmV0aWNhIE5ldWVcIiwgc2Fucy1zZXJpZjtcbiAgZm9udC1zaXplOiAxMXB4O1xuICBmb250LXdlaWdodDogNDAwO1xufVxuXG4uY3VzdG9tLXNjcm9sbC1iYXItcHJpdmF0ZSB7XG4gIGhlaWdodDogMzAwcHg7XG4gIG92ZXJmbG93LXk6IHNjcm9sbDtcbiAgb3ZlcmZsb3cteDogaGlkZGVuO1xuICBtYXJnaW4tcmlnaHQ6IDVweDtcbn1cblxuLmN1c3RvbS1zY3JvbGwtYmFyLXByaXZhdGU6Oi13ZWJraXQtc2Nyb2xsYmFyIHtcbiAgd2lkdGg6IDEwcHg7XG59XG5cbi5jdXN0b20tc2Nyb2xsLWJhci1wcml2YXRlOjotd2Via2l0LXNjcm9sbGJhci10aHVtYiB7XG4gIGJhY2tncm91bmQtY29sb3I6ICNFOUVFRjA7XG4gIGJvcmRlci1yYWRpdXM6IDVweDtcbn1cblxuLmN1c3RvbS1zY3JvbGwtYmFyLXZ1ZURldGFpbHMge1xuICBvdmVyZmxvdy15OiBzY3JvbGw7XG4gIG92ZXJmbG93LXg6IGhpZGRlbjtcbiAgbWFyZ2luLXJpZ2h0OiA1cHg7XG59XG5cbi5jdXN0b20tc2Nyb2xsLWJhci12dWVEZXRhaWxzOjotd2Via2l0LXNjcm9sbGJhciB7XG4gIHdpZHRoOiAxMHB4O1xufVxuXG4uY3VzdG9tLXNjcm9sbC1iYXItdnVlRGV0YWlsczo6LXdlYmtpdC1zY3JvbGxiYXItdGh1bWIge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjRTlFRUYwO1xuICBib3JkZXItcmFkaXVzOiA1cHg7XG59XG5cbi5jdXN0b20tc2Nyb2xsLWJhciB7XG4gIGhlaWdodDogNDl2aDtcbiAgb3ZlcmZsb3cteTogc2Nyb2xsO1xuICBvdmVyZmxvdy14OiBoaWRkZW47XG4gIG1hcmdpbi1yaWdodDogNXB4O1xufVxuXG4uY3VzdG9tLXNjcm9sbC1iYXI6Oi13ZWJraXQtc2Nyb2xsYmFyIHtcbiAgd2lkdGg6IDEwcHg7XG59XG5cbi5jdXN0b20tc2Nyb2xsLWJhcjo6LXdlYmtpdC1zY3JvbGxiYXItdGh1bWIge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjRTlFRUYwO1xuICBib3JkZXItcmFkaXVzOiA1cHg7XG59XG5cbi5jdXN0b20tc2Nyb2xsLWJhci12dWVMaXN0IHtcbiAgaGVpZ2h0OiBjYWxjKDEwMCUgLSAxNXB4KTtcbiAgb3ZlcmZsb3cteTogc2Nyb2xsO1xuICBvdmVyZmxvdy14OiBoaWRkZW47XG4gIHBhZGRpbmctbGVmdDogNXB4O1xufVxuXG4uY3VzdG9tLXNjcm9sbC1iYXItdnVlTGlzdDo6LXdlYmtpdC1zY3JvbGxiYXIge1xuICB3aWR0aDogMTBweDtcbn1cblxuLmN1c3RvbS1zY3JvbGwtYmFyLXZ1ZUxpc3Q6Oi13ZWJraXQtc2Nyb2xsYmFyLXRodW1iIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogI0U5RUVGMDtcbiAgYm9yZGVyLXJhZGl1czogNXB4O1xufVxuXG4udnVlTGlzdEhlaWdodCB7XG4gIG92ZXJmbG93LXk6IGF1dG87XG4gIGhlaWdodDogY2FsYygxMDAlIC0gMTU3cHgpO1xuICBib3JkZXI6IDFweCBzb2xpZCAjY2NjO1xuICB3aWR0aDogNTEzcHg7XG59XG5cbi51cC1kb3duIHtcbiAgZmxvYXQ6IHJpZ2h0O1xuICBtYXJnaW4tdG9wOiA3cHg7XG4gIHdpZHRoOiAxNXB4O1xuICBoZWlnaHQ6IDE1cHg7XG59XG5cbi5pbnB1dC1jbHMge1xuICB3aWR0aDogMzAlO1xuICBoZWlnaHQ6IDI1cHg7XG4gIGJhY2tncm91bmQtY29sb3I6ICNmZmZmZmY7XG4gIGJvcmRlcjogMXB4IHNvbGlkICNFOUVFRjA7XG4gIGNvbG9yOiAjMDAwMDAwO1xuICBmb250LXNpemU6IDEycHg7XG59XG5cbi5pbXBvcnQtaGVpZ2h0IHtcbiAgbGluZS1oZWlnaHQ6IDMwcHggIWltcG9ydGFudDtcbn1cblxuLnBvcHVsYXRpb24tbWVudSB7XG4gIGJvcmRlci1ib3R0b206IDFweCBzb2xpZCAjYWFhYWFhO1xuICBoZWlnaHQ6IDMwcHg7XG4gIGN1cnNvcjogcG9pbnRlcjtcbn1cblxuLmRyb3Bkb3duLWFsaWdubWVudDpudGgtY2hpbGQoMSksXG4uZHJvcGRvd24tYWxpZ25tZW50Om50aC1jaGlsZCgyKSB7XG4gIG1hcmdpbi10b3A6IDA7XG59XG5cbi5wdWJsaWMtY2hlY2sge1xuICBtYXJnaW4tcmlnaHQ6IDUlO1xufVxuXG4ucG9wdWxhdGlvbi1saXN0IHtcbiAgbWluLXdpZHRoOiAxODBweDtcbiAgbWF4LWhlaWdodDogMjUwcHg7XG59XG5cbi5wb3B1bGF0aW9uLWxpc3QtaXRlbSB7XG4gIGJvcmRlcjogMHB4O1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjZmZmZmZmO1xuICBjdXJzb3I6IHBvaW50ZXI7XG4gIGZvbnQtZmFtaWx5OiBSb2JvdG8sIFwiSGVsdmV0aWNhIE5ldWVcIiwgc2Fucy1zZXJpZjtcbiAgZm9udC1zaXplOiAxMXB4O1xuICBmb250LXdlaWdodDogNDAwO1xuICBsaW5lLWhlaWdodDogMCAhaW1wb3J0YW50O1xufVxuXG4ubWFyZ2luLTEwIHtcbiAgbWFyZ2luLXRvcDogMTBweDtcbn1cblxuLnRpY2staW1nIHtcbiAgZmxvYXQ6IHJpZ2h0O1xuICBtYXJnaW4tdG9wOiAtN3B4O1xuICBtYXJnaW4tbGVmdDogMTBweDtcbiAgd2lkdGg6IDE1cHg7XG4gIGhlaWdodDogMTVweDtcbn1cblxuOjpuZy1kZWVwICN2dWVEZXRhaWxMaXN0IC5ncm91cC1saXN0IHtcbiAgYmFja2dyb3VuZC1jb2xvcjogIzAwNzdDODtcbiAgY29sb3I6ICNmZmZmZmY7XG59XG46Om5nLWRlZXAgI3Z1ZURldGFpbExpc3QgLmdyb3VwLWxpc3Q6aG92ZXIge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjMDA3N0M4O1xuICBjb2xvcjogI2ZmZmZmZjtcbn1cbjo6bmctZGVlcCAjdnVlRGV0YWlsTGlzdCAuZ3JvdXAtbGlzdC1ncmVlbiB7XG4gIGJhY2tncm91bmQtY29sb3I6ICMwMDlCNzc7XG4gIGNvbG9yOiAjZmZmZmZmO1xufVxuOjpuZy1kZWVwICN2dWVEZXRhaWxMaXN0IC5ncm91cC1saXN0LWdyZWVuOmhvdmVyIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogIzAwOUI3NztcbiAgY29sb3I6ICNmZmZmZmY7XG59XG46Om5nLWRlZXAgI3Z1ZURldGFpbExpc3QgLmdyb3VwLWxpc3QtYm90dG9tLXNwYWNlIHtcbiAgbWFyZ2luLWJvdHRvbTogM3B4O1xufVxuOjpuZy1kZWVwICN2dWVEZXRhaWxMaXN0IDo6bmctZGVlcCAubWF0LWxpc3Qtb3B0aW9uW2FyaWEtc2VsZWN0ZWQ9dHJ1ZV0gLmdyb3VwLWxpc3Qge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjY2NjY2NjO1xuICBjb2xvcjogIzAwMDAwMDtcbn1cbjo6bmctZGVlcCAjdnVlRGV0YWlsTGlzdCA6Om5nLWRlZXAgLm1hdC1saXN0LW9wdGlvblthcmlhLXNlbGVjdGVkPXRydWVdIC5ncm91cC1saXN0LWdyZWVuIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogI2NjY2NjYztcbiAgY29sb3I6ICMwMDAwMDA7XG59XG46Om5nLWRlZXAgI3Z1ZURldGFpbExpc3QgOjpuZy1kZWVwIC5tYXQtbGlzdC1vcHRpb25bYXJpYS1zZWxlY3RlZD10cnVlXSAuc2VsZWN0LWxpc3QtZGVsYXkge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjY2NjY2NjO1xuICBjb2xvcjogIzAwMDAwMDtcbn1cblxuLnNlbGVjdC1ncm91cC1saXN0OmhvdmVyIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogI2NjY2NjYyAhaW1wb3J0YW50O1xuICBjb2xvcjogIzAwMDAwMCAhaW1wb3J0YW50O1xufVxuXG4uZGF0ZS1yYWRpby1idXR0b24ge1xuICBtYXJnaW46IDNweDtcbn1cblxuLnByaXZhdGVJUE5MaXN0SGVpZ2h0IHtcbiAgaGVpZ2h0OiAxMDBweCAhaW1wb3J0YW50O1xufVxuXG4udXBsb2FkLWZpbGUge1xuICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gIG92ZXJmbG93LXk6IGF1dG87XG4gIGhlaWdodDogMTI1cHg7XG4gIHBhZGRpbmc6IDE1cHggMTVweCAwIDMwcHg7XG4gIG1hcmdpbi10b3A6IDI1cHg7XG4gIG1hcmdpbi1ib3R0b206IDdweDtcbiAgYm9yZGVyOiAxcHggc29saWQgI2NjY2NjYztcbn1cblxuLnVwbG9hZC1jZW50ZXIge1xuICB0b3A6IDMwJTtcbiAgbGVmdDogNSU7XG59XG5cbi50YWJsZS1jb250YWluZXIge1xuICBtYXJnaW46IDEwcHggMTBweCAwIDEwcHg7XG4gIG92ZXJmbG93OiBhdXRvO1xuICBoZWlnaHQ6IGNhbGMoMTAwJSAtIDEycHgpO1xuICBib3JkZXItY29sbGFwc2U6IGNvbGxhcHNlO1xuICBmb250LXNpemU6IDEycHg7XG4gIGZvbnQtZmFtaWx5OiBSb2JvdG8sIFwiSGVsdmV0aWNhIE5ldWVcIiwgc2Fucy1zZXJpZjtcbiAgYmFja2dyb3VuZDogI2ZmZmZmZjtcbiAgdGV4dC1hbGlnbjogbGVmdDtcbiAgd2hpdGUtc3BhY2U6IG5vd3JhcDtcbn1cbi50YWJsZS1jb250YWluZXIgdGFibGUge1xuICB3aWR0aDogMTAwJTtcbiAgY29sb3I6IHdoaXRlO1xuICBib3JkZXItc3BhY2luZzogMCAhaW1wb3J0YW50O1xuICB0YWJsZS1sYXlvdXQ6IGF1dG87XG59XG4udGFibGUtY29udGFpbmVyIC5tYXQtY2VsbCxcbi50YWJsZS1jb250YWluZXIgLm1hdC1oZWFkZXItY2VsbCB7XG4gIGJvcmRlci1yaWdodDogMXB4IHNvbGlkICMwMDAwMDA7XG4gIGFsaWduLXNlbGY6IHN0cmV0Y2g7XG4gIHRleHQtYWxpZ246IGxlZnQ7XG4gIHBhZGRpbmc6IDAuM3JlbTtcbn1cbi50YWJsZS1jb250YWluZXIgLm1hdC1jZWxsIHtcbiAgY29sb3I6ICMwMDAwMDA7XG59XG4udGFibGUtY29udGFpbmVyIC5tYXQtaGVhZGVyLWNlbGwge1xuICBib3JkZXItcmlnaHQ6IDFweCBzb2xpZCAjZmZmZmZmO1xuICBib3JkZXItdG9wOiAxcHggc29saWQgI2ZmZmZmZjtcbiAgYm9yZGVyLWJvdHRvbTogMXB4IHNvbGlkICNmZmZmZmY7XG4gIGN1cnNvcjogY29sLXJlc2l6ZTtcbn1cbi50YWJsZS1jb250YWluZXIgdHIubWF0LXJvdyB7XG4gIGxpbmUtaGVpZ2h0OiAzMHB4O1xuICB3aGl0ZS1zcGFjZTogbm93cmFwO1xufVxuLnRhYmxlLWNvbnRhaW5lciB0ci5tYXQtcm93IHRkIHtcbiAgZm9udC1zaXplOiAxMnB4O1xuICBmb250LWZhbWlseTogUm9ib3RvLCBcIkhlbHZldGljYSBOZXVlXCIsIHNhbnMtc2VyaWY7XG4gIG92ZXJmbG93OiBoaWRkZW47XG4gIHRleHQtb3ZlcmZsb3c6IGVsbGlwc2lzO1xuICBtYXgtd2lkdGg6IDUwcHg7XG59XG4udGFibGUtY29udGFpbmVyIHRyLm1hdC1yb3c6bnRoLWNoaWxkKG9kZCkge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjZjJmMmYyICFpbXBvcnRhbnQ7XG59XG4udGFibGUtY29udGFpbmVyIHRyLm1hdC1oZWFkZXItcm93IHtcbiAgYmFja2dyb3VuZDogIzJENDU1NyAhaW1wb3J0YW50O1xuICBoZWlnaHQ6IDMwcHggIWltcG9ydGFudDtcbn1cbi50YWJsZS1jb250YWluZXIgdHIubWF0LWhlYWRlci1yb3cgLm1hdC1oZWFkZXItY2VsbCB7XG4gIGNvbG9yOiAjZmZmZmZmO1xufVxuLnRhYmxlLWNvbnRhaW5lciB0ci5tYXQtcm93LmhpZ2hsaWdodGVkUm93IHtcbiAgYmFja2dyb3VuZC1jb2xvcjogIzJkNDU1NyAhaW1wb3J0YW50O1xufVxuLnRhYmxlLWNvbnRhaW5lciB0ci5tYXQtcm93LmhpZ2hsaWdodGVkUm93IHRkIHtcbiAgY29sb3I6ICNmZmZmZmY7XG4gIHdoaXRlLXNwYWNlOiBpbml0aWFsICFpbXBvcnRhbnQ7XG4gIG1heC13aWR0aDogMTAwJTtcbn1cblxuLnRleHQtc3Bhbi1mb250IHtcbiAgZm9udC1mYW1pbHk6IFJvYm90bywgXCJIZWx2ZXRpY2EgTmV1ZVwiLCBzYW5zLXNlcmlmO1xuICBmb250LXNpemU6IDExcHg7XG4gIGZvbnQtd2VpZ2h0OiA0MDA7XG4gIGxpbmUtaGVpZ2h0OiAxM3B4O1xufVxuXG4uY2xzLWRpc3BsYXlub25lIHtcbiAgZGlzcGxheTogbm9uZSAhaW1wb3J0YW50O1xufSJdfQ== */\"","import { Component, OnInit, ViewChild, ElementRef } from '@angular/core';\nimport { MatDialog } from '@angular/material/dialog';\nimport { ToastyService, ToastOptions } from 'ng2-toasty';\nimport * as _ from 'lodash';\nimport { TranslateService } from '@ngx-translate/core';\nimport { Router } from \"@angular/router\";\n\n\nimport { BackendApiService } from '../../../../services/backend-api/backend-api.service';\nimport { UtilService } from '../../../../services/util/util.service';\nimport { RequestService } from '../../../../services/request/request.service';\nimport { AlertConfirmationComponent } from '../../../alert-confirmation/alert-confirmation.component';\nimport { SaveQueryNameComponent } from '../../save-query-name/save-query-name.component';\nimport { AlertMessageComponent } from '../../alert-message/alert-message.component';\n\nimport { ExcelService } from '../../../../services/excel.service';\nimport { DatePipe } from '@angular/common';\nimport { MatomoTracker } from 'ngx-matomo';\nimport { LoaderService } from 'src/app/services/loader/loader.service';\nimport { promise } from 'protractor';\n\n@Component({\n selector: 'app-create-private-group',\n templateUrl: './create-private-group.component.html',\n styleUrls: ['./create-private-group.component.scss']\n})\nexport class CreatePrivateGroupComponent implements OnInit {\n @ViewChild('fileUpload', { static: false })\n myFileInput: ElementRef;\n profile = this.utilService.getUserProfile();\n reqActive;\n isShowHiddenList;\n isPublic: boolean = false;\n isPrivate: boolean = true;\n enableButton: boolean = false;\n selectedPrivateQueryName: string = '';\n selectedPublicQueryName: string = '';\n queryType: string = '';\n zid: string = '';\n queryPublicList = [];\n queryPrivateList = [];\n roleBasedGroupList;\n fileContent: any;\n fileType = '.txt';\n fileData = [];\n extractQueryResponce = [];\n fileUploadArray = [];\n monitorchunkIterator = [];\n reqResponce = [];\n invalidAlert=false;\n\n\n executeResultType: any;\n alertMsg = [{ 'EUROPE': [] },\n { 'MERCOSUR': [] }];\n tableValues = {\n \"ipn\": undefined, \"region\": undefined, \"responseData\": undefined,\n \"tableData\": undefined, \"selectedRegion\": undefined, \"selectedTable\": undefined, \"selectedTableDetails\": undefined,\n \"dateDiff\": undefined, \"requestDatas\": undefined, \"tableMenuOpen\": false, \"roleBasedTableList\": undefined\n };\n\n criteriaValues = {\n \"selectedCategory\": \"Tous\",\n \"filterCategory\": [], \"displayGroupingForm\": false, \"groupingSelectedList\": [], \"searchText\": undefined,\n \"filterPrivateCategory\": [], \"mnuOpen\": false, \"selectedGroupItemValue\": undefined, \"selectedCharacterList\": undefined, \"blnGroupingEdit\": undefined,\n \"categoryList\": [], \"displayCriteriaList\": [], \"criteriaList\": [], \"criteriaListOringinal\": [], \"blnMoveRight\": false, \"GCOName\": undefined,\n \"splitChar\": \"§\", \"lang\": 'fr', \"selectedItemValue\": undefined, \"selectedItemType4Color\": undefined, \"selectedItemType\": undefined, \"selectedItemIndex\": undefined\n }\n\n vueValues = {\n \"isVueDetailSave\": undefined, \"selectedVueIPNDetail\": undefined, \"vueEditIndex\": undefined, \"vueEditValue\": undefined, \"vueList\": [],\n \"previousVueList\": undefined, \"vuePrivateIPNDetails\": undefined, \"privateMenuOpen\": false, \"groupingEditValue\": undefined\n }\n dateGroupValue = ['flag', 'jours', 'programmes', 'mois industriels', 'mois calendaires', 'année', 'jours', 'jours', 'jour/prog./année'];\n\n criteriaOptions = [{ name: \"Champs privés\", value: \"private\" },\n // { name: \"Public\", value: \"public\" }\n ];\n selectedCriteriaOptions;\n screenName;\n columnNames = [];\n columnDateType = [];\n queryExecutedData = [];\n\n // screenName = window.location.pathname.split('/')[window.location.pathname.split('/').length - 1];\n\n\n sorter = this.utilService.MySort(' ?*!@_.()#^&%-=+01234567989abcdefghijklmnopqrstuvwxyz');\n splitChar = \"§\";\n lang = \"fr\";\n\n blnVueIPNOpen;\n selectedVueIPNDetail;\n vuePrivateIPNDetails;\n\n toastOptions: ToastOptions = {\n title: \"Pilotage\",\n msg: \"The message\",\n showClose: true,\n timeout: 8000,\n theme: 'default'\n };\n isPrivateQuery: boolean;\n isExecute: boolean;\n\n constructor(readonly router: Router, readonly apiService: BackendApiService, readonly utilService: UtilService, readonly requestService: RequestService, public dialog: MatDialog,\n readonly toastyService: ToastyService, readonly translateService: TranslateService, readonly sExcelService: ExcelService, private datePipe: DatePipe, private matomoTracker: MatomoTracker,\n readonly loaderService: LoaderService) {\n this.criteriaValues.lang = requestService.getSelectedLang();\n this.utilService.$showIcon$.next(false);\n this.screenName = this.router.url.split('/')[this.router.url.split('/').length - 1];\n this.lang = requestService.getSelectedLang();\n // console.log('fggggggggg', this.screenName);\n }\n\n ngOnInit() {\n \n let regionRole = this.utilService.getUserProfile()['roles'].filter(item => item.indexOf('ACC_PI') > -1);\n if (regionRole.length > 1) {\n this.tableValues.region = ['Europe', 'Mercosur'];\n this.tableValues.selectedRegion = \"Europe\";\n } else {\n let region: string;\n regionRole[0] === 'ACC_PIL_EUROPE' ? region = 'Europe' : region = 'Mercosur';\n this.tableValues.region = [region];\n this.tableValues.selectedRegion = region;\n }\n\n setTimeout(() => {\n this.criteriaOptions = [{ name: this.utilService.getTranslateName(`NAVBAR.PRIVATE`), value: \"private\" }]\n if (this.criteriaOptions.length < 2) {\n this.getChampsList();\n }\n }, 0);\n\n // console.log('test', window.location.pathname.split('/')[window.location.pathname.split('/').length - 1], window.location.pathname.split('/').length);\n this.tableValues.ipn = this.profile['login']; // sessionStorage.getItem(\"ipn\");\n this.zid = this.tableValues.ipn;\n setTimeout(() => {\n this.criteriaValues.selectedCategory = this.utilService.getTranslateName(`COMMON.ALL`);\n }, 0);\n if (sessionStorage.getItem(\"request1\") === null) {\n sessionStorage.setItem(\"request1\", undefined);\n sessionStorage.setItem(\"request2\", undefined);\n sessionStorage.setItem(\"request3\", undefined);\n }\n this.tableValues.requestDatas = this.requestService.getAllRequestData();\n\n if (this.screenName !== 'vue') {\n this.selectedCriteriaOptions = 'private';\n }\n this.getChoiceTableDetails(this.tableValues.selectedRegion);\n // this.getTableNamesList();\n this.matomoTracker.trackPageView(`${this.screenName}`);\n }\n\n getChampsList() {\n if (this.tableValues.selectedRegion === \"Europe\") {\n if (this.profile['roles'].includes('PIL_SAVE_PUBLIC')) {\n setTimeout(() => {\n this.criteriaOptions.push({ name: this.utilService.getTranslateName(`NAVBAR.PUBLIC`), value: \"public\" });\n }, 0);\n }\n } else {\n if (this.profile['roles'].includes('PIM_SAVE_PUBLIC')) {\n setTimeout(() => {\n this.criteriaOptions.push({ name: this.utilService.getTranslateName(`NAVBAR.PUBLIC`), value: \"public\" });\n }, 0);\n }\n }\n }\n\n showHiddenCriteriaList() {\n this.tableValues.selectedRegion === \"Europe\" && this.profile['roles'].includes('PIL_OBJ_SYST') ? this.isShowHiddenList = true : this.profile['roles'].includes('PIM_OBJ_SYST') ? this.isShowHiddenList = true :'';\n }\n\n getUserRole4TabeList() {\n let rtnValue;\n if (this.tableValues.selectedRegion === \"Europe\") {\n // rtnValue = this.profile['roles'].includes('GR_PIL_TOUT') ? 'GR_PIL_TOUT':'';\n rtnValue = this.profile['roles'].find(item => item.startsWith('GR_PIL'));\n } else {\n // rtnValue = this.profile['roles'].includes('GR_PIM_TOUT') ? 'GR_PIM_TOUT':'';\n rtnValue = this.profile['roles'].find(item => item.startsWith('GR_PIM'));\n }\n return rtnValue;\n }\n\n getRoleBasedTableNamesList() {\n let role;\n this.tableValues.roleBasedTableList = [];\n if (this.getUserRole4TabeList()) {\n if (this.getUserRole4TabeList().split(\"_\")[2].toLowerCase() !== 'tout') {\n role = this.getUserRole4TabeList().toLowerCase().replace(`gr_${this.getFavoriteRegion().toLowerCase()}_`, '');\n const queryParam1 = { \"input\": `PROFIL@system@profil@${role.toLocaleUpperCase()}@`, \"region\": this.getFavoriteRegion() };\n this.apiService.getObjectGet(queryParam1).subscribe(res => {\n if (res && res.data) {\n this.roleBasedGroupList = res.data;\n for (const item of res.data.split('§')) {\n if (item.split(\"@\")[1] === \"0\") {\n this.tableValues.roleBasedTableList.push(item.split(\"@\")[0]);\n }\n }\n }\n },\n error => {\n this.toastyService.error(this.utilService.getTranslateName(`ERROR.TABLE_ERROR`));\n console.log(\"error\", error.message);\n });\n } else {\n this.roleBasedGroupList = '';\n }\n }\n }\n\n getLangIndex(lang) {\n if (lang === 'en') {\n return 1;\n } else {\n return 0;\n }\n }\n\n getFavoriteRegion() {\n if (this.tableValues.selectedRegion === \"Europe\") {\n return \"PIL\";\n } else {\n return \"PIM\";\n }\n }\n\n getChoiceTableDetails(item) {\n this.tableValues.tableData = undefined;\n this.tableValues.selectedRegion = item;\n this.vueValues.vueList = [];\n this.criteriaValues.criteriaList = [];\n this.criteriaValues.criteriaListOringinal = [];\n this.criteriaValues.displayCriteriaList = [];\n this.vueValues.vuePrivateIPNDetails = [];\n this.criteriaValues.selectedItemValue = undefined;\n\n this.getRoleBasedTableNamesList();\n\n const queryParam = { \"input\": `MAJ@${this.tableValues.ipn}@@@0@11@`, \"region\": this.getFavoriteRegion() };\n\n if (this.getUserRole4TabeList()) {\n this.apiService.getChoiceTableDetails(queryParam).subscribe(res => {\n\n this.showHiddenCriteriaList();\n if (this.criteriaOptions.length < 2) {\n this.getChampsList();\n }\n\n this.tableValues.responseData = res;\n if (this.tableValues.responseData.lists && this.tableValues.responseData.lists.length > 0) {\n this.tableValues.selectedTable = String(this.tableValues.responseData.lists[0].table.toLocaleUpperCase());\n let date = this.tableValues.responseData.lists[0].fileUpdtdDate.split(' ');\n this.tableValues.selectedTableDetails = this.utilService.getTranslateName(`NEW_QUERY.DATE_UPDATED`) + String(date[1]) + this.utilService.getTranslateName(`NEW_QUERY.AT`) + String(date[3]);\n if (this.screenName === 'open-request' || this.screenName === 'import-request') {\n this.changeNameList();\n }\n const strUpdDate = String(this.tableValues.responseData.lists[0].fileUpdtdDate).substring(3, 13);\n const strRecDate = String(this.tableValues.responseData.lists[0].fileRecvdDate).substring(3, 13);\n const updDate = new Date(`${strUpdDate.substring(3, 5)}/${strUpdDate.substring(0, 2)}/${strUpdDate.substring(6, 10)}`);\n const recDate = new Date(`${strRecDate.substring(3, 5)}/${strRecDate.substring(0, 2)}/${strRecDate.substring(6, 10)}`);\n\n const diff = Math.abs(updDate.getTime() - new Date().getTime());\n const diffDays = Math.floor(diff / (1000 * 3600 * 24));\n this.tableValues.dateDiff = diffDays;\n if (this.tableValues.responseData.noOfLists > 0) {\n this.getTableNamesList();\n // this.loadCriteriaListDetails();\n this.getFilterCategoryDetails();\n if (this.screenName === 'vue') {\n this.getPrivateFilterCategoryDetails();\n this.getPrivateVueDetailsIPNs();\n } else if (this.screenName === 'extraction-tool') {\n this.getPrivateVueDetailsIPNs();\n } else {\n // this.getChampsPrivateFilterCategoryDetails();\n this.selectChampsOption(this.selectedCriteriaOptions);\n }\n }\n }\n },\n error => {\n this.toastyService.error(this.utilService.getTranslateName(`ERROR.TABLE_LIST`));\n console.log(\"error\", error.message);\n });\n }\n }\n\n getTableNamesList() {\n this.tableValues.tableData = undefined;\n const queryParam1 = { \"input\": `TABGEN@${this.tableValues.ipn}@@@0@100@`, \"region\": this.getFavoriteRegion() };\n this.apiService.getChoiceTableDetails(queryParam1).subscribe(res => {\n let tabData = [];\n tabData = res.lists;\n if (tabData) {\n this.tableValues.selectedTable = String(tabData[0].toLocaleUpperCase());\n this.tableValues.tableData = [];\n let i = 0;\n for (const item of tabData) {\n // this.tableValues.tableData.push({ \"name\": String(item).toLocaleUpperCase() })\n const td = this.tableValues.responseData.lists.filter(a => String(a.table).toLocaleUpperCase() === String(item).toLocaleUpperCase());\n const roleTable = this.tableValues.roleBasedTableList.filter(a => String(a).toLocaleUpperCase() === String(item).toLocaleUpperCase());\n // if (td.length > 0) {\n if (td.length > 0 && roleTable.length === 0) {\n this.tableValues.tableData.push({ \"name\": String(item).toLocaleUpperCase(), \"fileRecvdDate\": td[0].fileRecvdDate, \"fileUpdtdDate\": td[0].fileUpdtdDate })\n }\n i = i + 1;\n }\n this.tableValues.tableData = this.tableValues.tableData.sort();\n if (this.tableValues.tableData.length > 0) {\n if (this.tableValues.tableData.indexOf('BCV') < 0) {\n this.onTableChange(this.tableValues.tableData[0]);\n }\n }\n if (this.screenName === 'extraction-tool') {\n this.tableValues.tableData = this.tableValues.tableData.filter(item => {\n return (item.name !== 'CARNETS' && item.name !== 'LEX')\n })\n }\n }\n },\n error => {\n this.toastyService.error(this.utilService.getTranslateName(`ERROR.TABLE_LIST`));\n console.log(\"error\", error.message);\n });\n }\n\n onTableChange(item) {\n this.tableValues.dateDiff = undefined;\n\n this.vueValues.vueList = [];\n this.criteriaValues.criteriaList = [];\n this.criteriaValues.criteriaListOringinal = [];\n this.criteriaValues.displayCriteriaList = [];\n this.vueValues.vuePrivateIPNDetails = [];\n this.criteriaValues.selectedItemValue = undefined;\n this.criteriaValues.selectedCategory = this.utilService.getTranslateName(`COMMON.ALL`);\n\n this.tableValues.selectedTable = item.name;\n this.utilService.$favoriteConnecton$.next(this.tableValues.selectedRegion);\n // let region = this.requestService.getRegionMsg();\n // if (region['europe'] === 'false' || region['mercosur'] === 'false') {\n // this.displayMessage(region);\n // }\n\n this.loadCriteriaListDetails();\n this.getFilterCategoryDetails();\n if (this.screenName === 'open-request' || this.screenName === 'import-request') {\n this.queryPrivateList = [];\n this.queryPublicList = [];\n this.changeNameList();\n }\n if (this.screenName === 'vue') {\n this.getPrivateFilterCategoryDetails();\n this.getPrivateVueDetailsIPNs();\n } else if (this.screenName === 'extraction-tool') {\n this.getPrivateVueDetailsIPNs();\n } else {\n // this.getChampsPrivateFilterCategoryDetails();\n this.selectChampsOption(this.selectedCriteriaOptions);\n }\n let date = item.fileUpdtdDate.split(' ');\n this.tableValues.selectedTableDetails = this.utilService.getTranslateName(`NEW_QUERY.DATE_UPDATED`) + String(date[1]) + this.utilService.getTranslateName(`NEW_QUERY.AT`) + String(date[3]);\n const strUpdDate = String(item.fileUpdtdDate).substring(3, 13);\n const strRecDate = String(item.fileRecvdDate).substring(3, 13);\n const updDate = new Date(`${strUpdDate.substring(3, 5)}/${strUpdDate.substring(0, 2)}/${strUpdDate.substring(6, 10)}`);\n const recDate = new Date(`${strRecDate.substring(3, 5)}/${strRecDate.substring(0, 2)}/${strRecDate.substring(6, 10)}`);\n\n const diff = Math.abs(updDate.getTime() - new Date().getTime());\n const diffDays = Math.floor(diff / (1000 * 3600 * 24));\n this.tableValues.dateDiff = diffDays;\n }\n\n getFilterCategoryDetails() {\n this.criteriaValues.filterCategory = [];\n const queryParam = { \"input\": `FILTRE@system@${this.tableValues.selectedTable}@@`, \"region\": this.getFavoriteRegion() };\n this.apiService.getObjectSize(queryParam).subscribe(res => {\n if (res.noObjects > 0) {\n const queryParam1 = { \"input\": `FILTRE@system@${this.tableValues.selectedTable}@@0@${res.noObjects}@`, \"region\": this.getFavoriteRegion() };\n this.apiService.getChoiceTableDetails(queryParam1).subscribe(res1 => {\n this.criteriaValues.filterCategory = res1.lists;\n this.criteriaValues.filterCategory = this.criteriaValues.filterCategory.sort(this.utilService.sortArray);\n },\n error => {\n this.toastyService.error(this.utilService.getTranslateName(`ERROR.TECHNICAL_ERROR`));\n console.log(\"error\", error.message);\n });\n }\n },\n error => {\n this.toastyService.error(this.utilService.getTranslateName(`ERROR.TECHNICAL_ERROR`));\n console.log(\"error\", error.message);\n });\n }\n\n getChampsFilterCategoryDetails() {\n this.vueValues.vuePrivateIPNDetails = undefined;\n const queryParam = { \"input\": `FILTRE@system@${this.tableValues.selectedTable}@@`, \"region\": this.getFavoriteRegion() };\n this.apiService.getObjectSize(queryParam).subscribe(res => {\n if (res.noObjects > 0) {\n const queryParam1 = { \"input\": `FILTRE@system@${this.tableValues.selectedTable}@@0@${res.noObjects}@`, \"region\": this.getFavoriteRegion() };\n this.apiService.getChoiceTableDetails(queryParam1).subscribe(res1 => {\n this.vueValues.vuePrivateIPNDetails = res1.lists;\n this.vueValues.vuePrivateIPNDetails = this.vueValues.vuePrivateIPNDetails.sort(this.utilService.sortArray);\n },\n error => {\n this.toastyService.error(this.utilService.getTranslateName(`ERROR.TECHNICAL_ERROR`));\n console.log(\"error\", error.message);\n });\n }\n },\n error => {\n this.toastyService.error(this.utilService.getTranslateName(`ERROR.TECHNICAL_ERROR`));\n console.log(\"error\", error.message);\n });\n\n }\n\n getPrivateFilterCategoryDetails() {\n this.criteriaValues.filterPrivateCategory = undefined;\n const queryParam = { \"input\": `FILTRE@${this.tableValues.ipn}@${this.tableValues.selectedTable}@@`, \"region\": this.getFavoriteRegion() };\n this.apiService.getObjectSize(queryParam).subscribe(res => {\n if (res.noObjects > 0) {\n const queryParam1 = { \"input\": `FILTRE@${this.tableValues.ipn}@${this.tableValues.selectedTable}@@0@${res.noObjects}@`, \"region\": this.getFavoriteRegion() };\n this.apiService.getChoiceTableDetails(queryParam1).subscribe(res1 => {\n this.criteriaValues.filterPrivateCategory = res1.lists;\n this.criteriaValues.filterPrivateCategory = this.criteriaValues.filterPrivateCategory.sort(this.utilService.sortArray)\n },\n error => {\n this.toastyService.error(this.utilService.getTranslateName(`ERROR.TECHNICAL_ERROR`));\n console.log(\"error\", error.message);\n });\n }\n },\n error => {\n this.toastyService.error(this.utilService.getTranslateName(`ERROR.TECHNICAL_ERROR`));\n console.log(\"error\", error.message);\n });\n\n }\n\n getChampsPrivateFilterCategoryDetails() {\n this.vueValues.vuePrivateIPNDetails = undefined;\n const queryParam = { \"input\": `FILTRE@${this.tableValues.ipn}@${this.tableValues.selectedTable}@@`, \"region\": this.getFavoriteRegion() };\n this.apiService.getObjectSize(queryParam).subscribe(res => {\n if (res.noObjects > 0) {\n const queryParam1 = { \"input\": `FILTRE@${this.tableValues.ipn}@${this.tableValues.selectedTable}@@0@${res.noObjects}@`, \"region\": this.getFavoriteRegion() };\n this.apiService.getChoiceTableDetails(queryParam1).subscribe(res1 => {\n this.vueValues.vuePrivateIPNDetails = res1.lists;\n this.vueValues.vuePrivateIPNDetails = this.vueValues.vuePrivateIPNDetails.sort(this.utilService.sortArray)\n },\n error => {\n this.toastyService.error(this.utilService.getTranslateName(`ERROR.TECHNICAL_ERROR`));\n console.log(\"error\", error.message);\n });\n }\n },\n error => {\n this.toastyService.error(this.utilService.getTranslateName(`ERROR.TECHNICAL_ERROR`));\n console.log(\"error\", error.message);\n });\n\n }\n\n // onTableChange(item) {\n // this.tableValues.selectedTable = item;\n // }\n\n loadCriteriaListDetails() {\n this.criteriaValues.displayCriteriaList = [];\n this.criteriaValues.criteriaList = [];\n this.criteriaValues.criteriaListOringinal = [];\n const queryParam = { \"input\": `CHAMP ETENDU@${this.tableValues.ipn}@${this.tableValues.selectedTable}@@`, \"region\": this.getFavoriteRegion() };\n this.apiService.getObjectSize(queryParam).subscribe(res => {\n if (res.noObjects > 0) {\n const queryParam1 = { \"input\": `CHAMP ETENDU@${this.tableValues.ipn}@${this.tableValues.selectedTable}@@0@${res.noObjects}@`, \"region\": this.getFavoriteRegion() };\n this.apiService.getChoiceTableDetails(queryParam1).subscribe(res1 => {\n this.criteriaValues.criteriaListOringinal = res1.lists;\n for (const item of this.criteriaValues.criteriaListOringinal) {\n if (typeof (item.longLabel.split(this.criteriaValues.splitChar, 2)[this.getLangIndex(this.criteriaValues.lang)]) === 'undefined') {\n item.longLabel = `${item.longLabel}${this.criteriaValues.splitChar}${item.longLabel}`;\n\n if (this.isShowHiddenList) {\n this.criteriaValues.displayCriteriaList.push(item.longLabel.split(this.criteriaValues.splitChar, 2)[this.getLangIndex(this.criteriaValues.lang)]);\n this.criteriaValues.criteriaList.push(item.longLabel.split(this.criteriaValues.splitChar, 2)[this.getLangIndex(this.criteriaValues.lang)]);\n } else {\n if (item.longLabel.split(this.criteriaValues.splitChar, 2)[this.getLangIndex(this.criteriaValues.lang)][0] !== '_') {\n this.criteriaValues.displayCriteriaList.push(item.longLabel.split(this.criteriaValues.splitChar, 2)[this.getLangIndex(this.criteriaValues.lang)]);\n this.criteriaValues.criteriaList.push(item.longLabel.split(this.criteriaValues.splitChar, 2)[this.getLangIndex(this.criteriaValues.lang)]);\n }\n }\n\n // this.criteriaValues.displayCriteriaList.push(item.longLabel.split(this.criteriaValues.splitChar, 2)[this.getLangIndex(this.criteriaValues.lang)]);\n // this.criteriaValues.criteriaList.push(item.longLabel.split(this.criteriaValues.splitChar, 2)[this.getLangIndex(this.criteriaValues.lang)]);\n } else {\n // this.criteriaValues.displayCriteriaList.push(item.longLabel.split(this.criteriaValues.splitChar, 2)[this.getLangIndex(this.criteriaValues.lang)]);\n // this.criteriaValues.criteriaList.push(item.longLabel.split(this.criteriaValues.splitChar, 2)[this.getLangIndex(this.criteriaValues.lang)]);\n\n if (this.isShowHiddenList) {\n this.criteriaValues.displayCriteriaList.push(item.longLabel.split(this.criteriaValues.splitChar, 2)[this.getLangIndex(this.criteriaValues.lang)]);\n this.criteriaValues.criteriaList.push(item.longLabel.split(this.criteriaValues.splitChar, 2)[this.getLangIndex(this.criteriaValues.lang)]);\n } else {\n if (item.longLabel.split(this.criteriaValues.splitChar, 2)[this.getLangIndex(this.criteriaValues.lang)][0] !== '_') {\n this.criteriaValues.displayCriteriaList.push(item.longLabel.split(this.criteriaValues.splitChar, 2)[this.getLangIndex(this.criteriaValues.lang)]);\n this.criteriaValues.criteriaList.push(item.longLabel.split(this.criteriaValues.splitChar, 2)[this.getLangIndex(this.criteriaValues.lang)]);\n }\n }\n }\n }\n this.criteriaValues.displayCriteriaList = this.criteriaValues.displayCriteriaList.sort(this.utilService.sortArray);\n },\n error => {\n this.toastyService.error(this.utilService.getTranslateName(`ERROR.TECHNICAL_ERROR`));\n console.log(\"error\", error.message);\n });\n }\n },\n error => {\n this.toastyService.error(this.utilService.getTranslateName(`ERROR.TECHNICAL_ERROR`));\n console.log(\"error\", error.message);\n });\n }\n\n onCategoryChange(val, type) {\n this.criteriaValues.selectedCategory = val;\n if (type === 'private') {\n this.getSearchCategory(this.tableValues.ipn);\n } else {\n this.getSearchCategory('system');\n }\n }\n\n getSearchCategory(ipnValue) {\n this.criteriaValues.categoryList = [];\n this.criteriaValues.displayCriteriaList = [];\n this.criteriaValues.criteriaList = [];\n if (this.criteriaValues.selectedCategory === 'Tous' || this.criteriaValues.selectedCategory === 'All') {\n for (const item of this.criteriaValues.criteriaListOringinal) {\n // if (typeof (item.longLabel.split(this.criteriaValues.splitChar, 2)[this.getLangIndex(this.criteriaValues.lang)]) !== 'undefined') {\n // this.criteriaValues.displayCriteriaList.push(item.longLabel.split(this.criteriaValues.splitChar, 2)[this.getLangIndex(this.criteriaValues.lang)])\n // this.criteriaValues.criteriaList.push(item.longLabel.split(this.criteriaValues.splitChar, 2)[this.getLangIndex(this.criteriaValues.lang)])\n // }\n\n if (typeof (item.longLabel.split(this.criteriaValues.splitChar, 2)[this.getLangIndex(this.criteriaValues.lang)]) === 'undefined') {\n item.longLabel = `${item.longLabel}${this.criteriaValues.splitChar}${item.longLabel}`;\n\n if (this.isShowHiddenList) {\n this.criteriaValues.displayCriteriaList.push(item.longLabel.split(this.criteriaValues.splitChar, 2)[this.getLangIndex(this.criteriaValues.lang)]);\n this.criteriaValues.criteriaList.push(item.longLabel.split(this.criteriaValues.splitChar, 2)[this.getLangIndex(this.criteriaValues.lang)]);\n } else {\n if (item.longLabel.split(this.criteriaValues.splitChar, 2)[this.getLangIndex(this.criteriaValues.lang)][0] !== '_') {\n this.criteriaValues.displayCriteriaList.push(item.longLabel.split(this.criteriaValues.splitChar, 2)[this.getLangIndex(this.criteriaValues.lang)]);\n this.criteriaValues.criteriaList.push(item.longLabel.split(this.criteriaValues.splitChar, 2)[this.getLangIndex(this.criteriaValues.lang)]);\n }\n }\n\n // this.criteriaValues.displayCriteriaList.push(item.longLabel.split(this.criteriaValues.splitChar, 2)[this.getLangIndex(this.criteriaValues.lang)]);\n // this.criteriaValues.criteriaList.push(item.longLabel.split(this.criteriaValues.splitChar, 2)[this.getLangIndex(this.criteriaValues.lang)]);\n } else {\n // this.criteriaValues.displayCriteriaList.push(item.longLabel.split(this.criteriaValues.splitChar, 2)[this.getLangIndex(this.criteriaValues.lang)]);\n // this.criteriaValues.criteriaList.push(item.longLabel.split(this.criteriaValues.splitChar, 2)[this.getLangIndex(this.criteriaValues.lang)]);\n\n if (this.isShowHiddenList) {\n this.criteriaValues.displayCriteriaList.push(item.longLabel.split(this.criteriaValues.splitChar, 2)[this.getLangIndex(this.criteriaValues.lang)]);\n this.criteriaValues.criteriaList.push(item.longLabel.split(this.criteriaValues.splitChar, 2)[this.getLangIndex(this.criteriaValues.lang)]);\n } else {\n if (item.longLabel.split(this.criteriaValues.splitChar, 2)[this.getLangIndex(this.criteriaValues.lang)][0] !== '_') {\n this.criteriaValues.displayCriteriaList.push(item.longLabel.split(this.criteriaValues.splitChar, 2)[this.getLangIndex(this.criteriaValues.lang)]);\n this.criteriaValues.criteriaList.push(item.longLabel.split(this.criteriaValues.splitChar, 2)[this.getLangIndex(this.criteriaValues.lang)]);\n }\n }\n }\n\n }\n this.criteriaValues.displayCriteriaList = this.criteriaValues.displayCriteriaList.sort(this.utilService.sortArray);\n } else {\n const queryParam = { \"input\": `FILTRE@${ipnValue}@${this.tableValues.selectedTable}@${this.criteriaValues.selectedCategory}@`, \"region\": this.getFavoriteRegion() };\n this.apiService.getObjectGet(queryParam).subscribe(res => {\n\n const dataRes = res.data.split('@');\n for (let i = 0; i < dataRes.length; i = i + 4) {\n if (i > 0) {\n this.criteriaValues.categoryList.push(dataRes[i - 1]);\n }\n }\n\n for (const iterator of this.criteriaValues.categoryList) {\n const filterVal = this.criteriaValues.criteriaListOringinal.filter(a => a.GCOName.toUpperCase() === iterator.substring(0, iterator.length - 2).toUpperCase() && a.typeOfField == iterator.slice(-1));\n for (const item of filterVal) {\n // if (typeof (iterator.longLabel.split(this.criteriaValues.splitChar, 2)[this.getLangIndex(this.criteriaValues.lang)]) !== 'undefined') {\n // this.criteriaValues.displayCriteriaList.push(iterator.longLabel.split(this.criteriaValues.splitChar, 2)[this.getLangIndex(this.criteriaValues.lang)]);\n // this.criteriaValues.criteriaList.push(iterator.longLabel.split(this.criteriaValues.splitChar, 2)[this.getLangIndex(this.criteriaValues.lang)]);\n // }\n\n if (typeof (item.longLabel.split(this.criteriaValues.splitChar, 2)[this.getLangIndex(this.criteriaValues.lang)]) === 'undefined') {\n item.longLabel = `${item.longLabel}${this.criteriaValues.splitChar}${item.longLabel}`;\n\n if (this.isShowHiddenList) {\n this.criteriaValues.displayCriteriaList.push(item.longLabel.split(this.criteriaValues.splitChar, 2)[this.getLangIndex(this.criteriaValues.lang)]);\n this.criteriaValues.criteriaList.push(item.longLabel.split(this.criteriaValues.splitChar, 2)[this.getLangIndex(this.criteriaValues.lang)]);\n } else {\n if (item.longLabel.split(this.criteriaValues.splitChar, 2)[this.getLangIndex(this.criteriaValues.lang)][0] !== '_') {\n this.criteriaValues.displayCriteriaList.push(item.longLabel.split(this.criteriaValues.splitChar, 2)[this.getLangIndex(this.criteriaValues.lang)]);\n this.criteriaValues.criteriaList.push(item.longLabel.split(this.criteriaValues.splitChar, 2)[this.getLangIndex(this.criteriaValues.lang)]);\n }\n }\n\n // this.criteriaValues.displayCriteriaList.push(item.longLabel.split(this.criteriaValues.splitChar, 2)[this.getLangIndex(this.criteriaValues.lang)]);\n // this.criteriaValues.criteriaList.push(item.longLabel.split(this.criteriaValues.splitChar, 2)[this.getLangIndex(this.criteriaValues.lang)]);\n } else {\n // this.criteriaValues.displayCriteriaList.push(item.longLabel.split(this.criteriaValues.splitChar, 2)[this.getLangIndex(this.criteriaValues.lang)]);\n // this.criteriaValues.criteriaList.push(item.longLabel.split(this.criteriaValues.splitChar, 2)[this.getLangIndex(this.criteriaValues.lang)]);\n\n if (this.isShowHiddenList) {\n this.criteriaValues.displayCriteriaList.push(item.longLabel.split(this.criteriaValues.splitChar, 2)[this.getLangIndex(this.criteriaValues.lang)]);\n this.criteriaValues.criteriaList.push(item.longLabel.split(this.criteriaValues.splitChar, 2)[this.getLangIndex(this.criteriaValues.lang)]);\n } else {\n if (item.longLabel.split(this.criteriaValues.splitChar, 2)[this.getLangIndex(this.criteriaValues.lang)][0] !== '_') {\n this.criteriaValues.displayCriteriaList.push(item.longLabel.split(this.criteriaValues.splitChar, 2)[this.getLangIndex(this.criteriaValues.lang)]);\n this.criteriaValues.criteriaList.push(item.longLabel.split(this.criteriaValues.splitChar, 2)[this.getLangIndex(this.criteriaValues.lang)]);\n }\n }\n }\n\n\n }\n }\n this.criteriaValues.displayCriteriaList = this.criteriaValues.displayCriteriaList.sort(this.utilService.sortArray);\n\n },\n error => {\n this.toastyService.error(this.utilService.getTranslateName(`ERROR.SEARCH_LIST`));\n console.log(\"error\", error.message);\n });\n }\n }\n\n onChampsCategoryChange(type) {\n if (type === 'private') {\n this.getChampsSearchCategory(this.tableValues.ipn);\n } else {\n this.getChampsSearchCategory('system');\n }\n }\n\n getChampsSearchCategory(ipnValue) {\n this.vueValues.vueList = [];\n this.vueValues.previousVueList = [];\n let champsCategoryList = [];\n const queryParam = { \"input\": `FILTRE@${ipnValue}@${this.tableValues.selectedTable}@${this.vueValues.selectedVueIPNDetail}@`, \"region\": this.getFavoriteRegion() };\n this.apiService.getObjectGet(queryParam).subscribe(res => {\n\n const dataRes = res.data.split('@');\n for (let i = 0; i < dataRes.length; i = i + 4) {\n if (i > 0) {\n champsCategoryList.push(dataRes[i - 1]);\n }\n }\n\n for (const item of champsCategoryList) {\n const filterVal = this.criteriaValues.criteriaListOringinal.filter(a => a.GCOName.toUpperCase() === item.substring(0, item.length - 2).toUpperCase() && a.typeOfField == item.slice(-1));\n for (const iterator of filterVal) {\n if (typeof (iterator.longLabel.split(this.criteriaValues.splitChar, 2)[this.getLangIndex(this.criteriaValues.lang)]) !== 'undefined') {\n // this.criteriaValues.displayCriteriaList.push(iterator.longLabel.split(this.criteriaValues.splitChar, 2)[this.getLangIndex(this.criteriaValues.lang)]);\n // this.criteriaValues.criteriaList.push(iterator.longLabel.split(this.criteriaValues.splitChar, 2)[this.getLangIndex(this.criteriaValues.lang)]);\n this.vueValues.vueList.push({ \"name\": iterator.longLabel.split(this.criteriaValues.splitChar, 2)[this.getLangIndex(this.criteriaValues.lang)], \"type\": iterator.typeOfField, 'GCOName': iterator.GCOName, 'size': iterator.size, visible: true });\n this.vueValues.previousVueList.push({ \"name\": iterator.longLabel.split(this.criteriaValues.splitChar, 2)[this.getLangIndex(this.criteriaValues.lang)], \"type\": iterator.typeOfField, 'GCOName': iterator.GCOName, 'size': iterator.size, visible: true });\n }\n }\n }\n this.criteriaValues.displayCriteriaList = this.criteriaValues.displayCriteriaList.sort(this.utilService.sortArray);\n\n },\n error => {\n this.toastyService.error(this.utilService.getTranslateName(`ERROR.SEARCH_LIST`));\n console.log(\"error\", error.message);\n });\n }\n\n clickCriteriaList(item, index) {\n this.criteriaValues.selectedItemValue = item;\n this.criteriaValues.selectedItemIndex = index;\n this.criteriaValues.selectedItemType = undefined;\n // console.log('this.criteriaListOringinal.filter(a => a.longLabel.split(this.splitChar, 2)[this.getLangIndex(this.lang)] === this.selectedItemValue)[0]', this.criteriaValues.criteriaListOringinal.filter(a => a.longLabel.split(this.criteriaValues.splitChar, 2)[this.getLangIndex(this.criteriaValues.lang)] === this.criteriaValues.selectedItemValue)[0])\n this.criteriaValues.selectedItemType4Color = this.criteriaValues.criteriaListOringinal.filter(a => a.longLabel.split(this.criteriaValues.splitChar, 2)[this.getLangIndex(this.criteriaValues.lang)] === this.criteriaValues.selectedItemValue)[0].typeOfField;\n }\n\n selectChampsOption(event) {\n this.selectedCriteriaOptions = event;\n this.vueValues.vueList = [];\n this.vueValues.previousVueList = [];\n if (event === 'private') {\n this.getChampsPrivateFilterCategoryDetails();\n } else {\n this.getChampsFilterCategoryDetails();\n }\n }\n\n getPrivateVueDetailsIPNs() {\n this.vueValues.vuePrivateIPNDetails = undefined;\n const queryParam = { \"input\": `AFFICH@${this.tableValues.ipn}@${this.tableValues.selectedTable}@@`, \"region\": this.getFavoriteRegion() };\n this.apiService.getObjectSize(queryParam).subscribe(res => {\n if (res.noObjects > 0) {\n const queryParam1 = { \"input\": `AFFICH@${this.tableValues.ipn}@${this.tableValues.selectedTable}@@0@${res.noObjects}@`, \"region\": this.getFavoriteRegion() };\n this.apiService.getChoiceTableDetails(queryParam1).subscribe(res1 => {\n this.vueValues.vuePrivateIPNDetails = res1.lists;\n // const sorter = this.utilService.MySort(' ?*!@_.()#^&%-=+01234567989abcdefghijklmnopqrstuvwxyz');\n this.vueValues.vuePrivateIPNDetails = this.vueValues.vuePrivateIPNDetails.sort(this.utilService.sortArray);\n if (this.vueValues.selectedVueIPNDetail) {\n if (this.vueValues.vuePrivateIPNDetails.indexOf(this.vueValues.selectedVueIPNDetail) === -1) {\n this.vueValues.selectedVueIPNDetail = undefined;\n this.vueValues.vueList = [];\n this.vueValues.previousVueList = [];\n }\n }\n },\n error => {\n this.toastyService.error(this.utilService.getTranslateName(`ERROR.TECHNICAL_ERROR`));\n console.log(\"error\", error.message);\n });\n }\n },\n error => {\n this.toastyService.error(this.utilService.getTranslateName(`ERROR.TECHNICAL_ERROR`));\n console.log(\"error\", error.message);\n });\n\n }\n\n openDialog(item): void {\n const dialogRef = this.dialog.open(AlertConfirmationComponent, {\n disableClose: true,\n width: '350px',\n data: { 'display': this.utilService.getTranslateName(`NEW_QUERY.DISPLAY_NAME`), 'isText': true }\n });\n\n dialogRef.afterClosed().subscribe(result => {\n if (result) {\n let queryParam;\n if (this.vueValues.vuePrivateIPNDetails) {\n const isExistsPrivateIPN = this.vueValues.vuePrivateIPNDetails.filter(a => a.toUpperCase() === result.toUpperCase());\n // console.log('resultresultresult', isExistsPrivateIPN);\n if (isExistsPrivateIPN.length > 0) {\n this.toastyService.warning(this.utilService.getTranslateName(`ERROR.NAME_EXIST`));\n return;\n }\n }\n if (this.screenName === 'vue' || this.screenName === 'extraction-tool') {\n queryParam = { \"input\": `AFFICH@${this.tableValues.ipn}@${this.tableValues.selectedTable}@${result}@${this.saveVueDetailsData()}`, \"region\": this.getFavoriteRegion() };\n } else {\n if (this.selectedCriteriaOptions === 'private') {\n queryParam = { \"input\": `FILTRE@${this.tableValues.ipn}@${this.tableValues.selectedTable}@${result}@${this.saveChampsDetailsData()}`, \"region\": this.getFavoriteRegion() };\n } else {\n queryParam = { \"input\": `FILTRE@system@${this.tableValues.selectedTable}@${result}@${this.saveChampsDetailsData()}`, \"region\": this.getFavoriteRegion() };\n }\n }\n this.apiService.saveObject(queryParam).subscribe(resp => {\n if (!this.vueValues.isVueDetailSave) {\n if (this.screenName === 'vue' || this.screenName === 'extraction-tool') {\n this.loadVuePrivateIPNData(item);\n } else {\n // this.getChampsPrivateFilterCategoryDetails();\n this.selectChampsOption(this.selectedCriteriaOptions);\n this.vueValues.selectedVueIPNDetail = result;\n }\n } else {\n this.vueValues.isVueDetailSave = false;\n this.vueValues.selectedVueIPNDetail = result;\n if (this.screenName === 'vue') {\n this.getPrivateVueDetailsIPNs();\n this.loadVuePrivateIPNData(this.vueValues.selectedVueIPNDetail);\n } else if (this.screenName === 'extraction-tool') {\n this.getPrivateVueDetailsIPNs();\n } else {\n // this.getChampsPrivateFilterCategoryDetails();\n this.selectChampsOption(this.selectedCriteriaOptions);\n this.onChampsCategoryChange(this.selectedCriteriaOptions);\n\n }\n }\n },\n error => {\n this.toastyService.error(\"Error getting save\");\n console.log(\"error\", error.message);\n });\n } else {\n // if (!this.vueValues.isVueDetailSave) {\n // if (this.screenName === 'vue') {\n // this.loadVuePrivateIPNData(item);\n // } else {\n // this.onChampsCategoryChange(this.selectedCriteriaOptions);\n // }\n // } else {\n // if (this.screenName === 'vue') {\n // this.loadVuePrivateIPNData(this.vueValues.selectedVueIPNDetail);\n // } else {\n // this.onChampsCategoryChange(this.selectedCriteriaOptions);\n\n // }\n // }\n\n this.vueValues.vueList = [];\n this.vueValues.previousVueList = [];\n this.vueValues.isVueDetailSave = false;\n if (this.vueValues.selectedVueIPNDetail || item !== '') {\n if (this.screenName === 'vue' || this.screenName === 'extraction-tool') {\n if (this.vueValues.selectedVueIPNDetail) {\n this.loadVuePrivateIPNData(this.vueValues.selectedVueIPNDetail);\n } else {\n this.loadVuePrivateIPNData(item);\n }\n } else {\n this.onChampsCategoryChange(this.selectedCriteriaOptions);\n }\n }\n }\n });\n }\n\n openDialogUpdate(item): void {\n const dialogRef = this.dialog.open(AlertConfirmationComponent, {\n disableClose: true,\n width: '350px',\n // data: { 'display': this.utilService.getTranslateName(`ERROR.VALID_CHANGES`), 'isText': false }\n data: { 'display': `${this.utilService.getTranslateName(`NAVBAR.VUEMODIFY`)}\"${this.vueValues.selectedVueIPNDetail}\"${this.utilService.getTranslateName(`NAVBAR.VUEUPDATE`)}`, 'isText': false }\n });\n\n dialogRef.afterClosed().subscribe(result => {\n if (result) {\n let queryParam;\n if (this.screenName === 'vue' || this.screenName === 'extraction-tool') {\n queryParam = { \"input\": `AFFICH@${this.tableValues.ipn}@${this.tableValues.selectedTable}@${this.vueValues.selectedVueIPNDetail}@${this.saveVueDetailsData()}`, \"region\": this.getFavoriteRegion() };\n } else {\n if (this.selectedCriteriaOptions === 'private') {\n queryParam = { \"input\": `FILTRE@${this.tableValues.ipn}@${this.tableValues.selectedTable}@${this.vueValues.selectedVueIPNDetail}@${this.saveChampsDetailsData()}`, \"region\": this.getFavoriteRegion() };\n } else {\n queryParam = { \"input\": `FILTRE@system@${this.tableValues.selectedTable}@${this.vueValues.selectedVueIPNDetail}@${this.saveChampsDetailsData()}`, \"region\": this.getFavoriteRegion() };\n }\n }\n this.apiService.saveObject(queryParam).subscribe(resp => {\n if (!this.vueValues.isVueDetailSave) {\n if (this.screenName === 'vue' || this.screenName === 'extraction-tool') {\n this.loadVuePrivateIPNData(item);\n } else {\n this.vueValues.previousVueList = this.vueValues.vueList;\n // this.getChampsPrivateFilterCategoryDetails();\n // this.vueValues.selectedVueIPNDetail = result;\n this.vueValues.selectedVueIPNDetail = item;\n this.onChampsCategoryChange(this.selectedCriteriaOptions);\n }\n }\n this.vueValues.isVueDetailSave = false;\n },\n error => {\n this.toastyService.error(this.utilService.getTranslateName(`ERROR.SAVE`));\n console.log(\"error\", error.message);\n });\n } else {\n if (!this.vueValues.isVueDetailSave && item !== this.vueValues.selectedVueIPNDetail) {\n // this.loadVuePrivateIPNData(item);\n this.vueValues.selectedVueIPNDetail = undefined;\n this.vueValues.vueList = [];\n this.vueValues.previousVueList = [];\n this.vueValues.isVueDetailSave = false;\n if (this.vueValues.selectedVueIPNDetail || item !== '') {\n if (this.screenName === 'vue' || this.screenName === 'extraction-tool') {\n // console.log('this.vueValues.selectedVueIPNDetail', this.vueValues.selectedVueIPNDetail, item, this.selectedCriteriaOptions)\n if (this.vueValues.selectedVueIPNDetail) {\n this.loadVuePrivateIPNData(this.vueValues.selectedVueIPNDetail);\n } else {\n this.loadVuePrivateIPNData(item);\n }\n } else {\n // console.log('this.vueValues.selectedVueIPNDetail', this.vueValues.selectedVueIPNDetail, item, this.selectedCriteriaOptions)\n this.vueValues.selectedVueIPNDetail = item;\n this.onChampsCategoryChange(this.selectedCriteriaOptions);\n }\n }\n\n\n }\n this.vueValues.isVueDetailSave = false;\n }\n });\n }\n\n loadVuePrivateIPNData(item) {\n this.vueValues.selectedVueIPNDetail = item;\n if (this.vueValues.selectedVueIPNDetail !== '') {\n this.vueValues.vueList = [];\n this.vueValues.previousVueList = [];\n const queryParam = { \"input\": `AFFICH@${this.tableValues.ipn}@${this.tableValues.selectedTable}@${this.vueValues.selectedVueIPNDetail}@`, \"region\": this.getFavoriteRegion() };\n this.apiService.getObjectGet(queryParam).subscribe(res => {\n // console.log(\"loadVuePrivateIPNData\", res.data);\n const data = this.dataSplitFromViewSavedQuery(res.data);\n for (const item of data) {\n if (typeof (item.value) === 'undefined') {\n this.vueValues.vueList.push({ 'name': item[this.criteriaValues.lang], 'type': item.typeOfField, 'GCOName': item.GCOName, 'size': item.size, visible: true });\n this.vueValues.previousVueList.push({ 'name': item[this.criteriaValues.lang], 'type': item.typeOfField, 'GCOName': item.GCOName, 'size': item.size, visible: true });\n } else {\n this.vueValues.vueList.push({ \"name\": item[this.criteriaValues.lang] + `[${item['value']}]`, \"type\": item.typeOfField, 'GCOName': item.GCOName, 'size': item.size, visible: true });\n this.vueValues.previousVueList.push({ \"name\": item[this.criteriaValues.lang] + `[${item['value']}]`, \"type\": item.typeOfField, 'GCOName': item.GCOName, 'size': item.size, visible: true });\n }\n }\n },\n error => {\n this.toastyService.error(this.utilService.getTranslateName(`ERROR.LOADING_LIST`));\n console.log(\"error\", error.message);\n });\n } else if (this.vueValues.selectedVueIPNDetail === '') {\n this.vueValues.vueList = [];\n }\n }\n\n selectVuePrivateIPN(item) {\n this.criteriaValues.selectedItemType = undefined;\n this.criteriaValues.selectedItemValue = undefined;\n this.criteriaValues.selectedItemIndex = undefined;\n this.vueValues.vueEditIndex = undefined;\n this.vueValues.vueEditValue = undefined;\n this.selectedVueIPNDetail = item;\n if (this.screenName === 'vue' || this.screenName === 'extraction-tool') {\n if (this.vueValues.selectedVueIPNDetail !== item && this.vueValues.vueList.length > 0) {\n if (!_.isEqual(this.vueValues.vueList, this.vueValues.previousVueList)) {\n if (!this.vueValues.selectedVueIPNDetail) {\n this.vueValues.isVueDetailSave = true;\n this.vueValues.selectedVueIPNDetail = item;\n this.openDialog('');\n } else {\n this.openDialogUpdate(item)\n }\n } else if (this.vueValues.selectedVueIPNDetail) {\n this.loadVuePrivateIPNData(item);\n }\n } else {\n this.loadVuePrivateIPNData(item);\n }\n } else {\n\n if (this.vueValues.selectedVueIPNDetail !== item && this.vueValues.vueList.length > 0) {\n if (!_.isEqual(this.vueValues.vueList, this.vueValues.previousVueList)) {\n // console.log('_.isEqual(this.vueValues.vueList, this.vueValues.previousVueList)', _.isEqual(this.vueValues.vueList, this.vueValues.previousVueList), this.vueValues.vueList, this.vueValues.previousVueList)\n if (!this.vueValues.selectedVueIPNDetail) {\n this.vueValues.isVueDetailSave = true;\n this.vueValues.selectedVueIPNDetail = item;\n this.openDialog('');\n } else {\n this.openDialogUpdate(item)\n }\n } else if (this.vueValues.selectedVueIPNDetail) {\n this.vueValues.selectedVueIPNDetail = item;\n this.onChampsCategoryChange(this.selectedCriteriaOptions);\n }\n } else {\n this.vueValues.selectedVueIPNDetail = item;\n this.onChampsCategoryChange(this.selectedCriteriaOptions);\n }\n }\n }\n\n getCriteriaDetailsFromriteriaListOriginal(data, type) {\n const filterData = this.criteriaValues.criteriaListOringinal.filter(z => z.GCOName === data && z.typeOfField.toString() === type.toString());\n if (filterData.length > 0) {\n return filterData[0];\n }\n }\n\n dataSplitFromViewSavedQuery(queryData) {\n let i: number;\n let returnVal = [];\n if (queryData) {\n const splitData = queryData.split(\"@\");\n for (i = 1; i < splitData.length; i++) {\n if (splitData[i] === '1') {\n i = i + 3;\n let criteriaListVal = this.getCriteriaDetailsFromriteriaListOriginal(splitData[i].substring(0, splitData[i].length - 2), splitData[i].substr(splitData[i].length - 1, 1));\n returnVal.push({ 'GCOName': criteriaListVal.GCOName, 'longLabel': criteriaListVal.longLabel, 'typeOfField': criteriaListVal.typeOfField, 'size': criteriaListVal.size, 'shortLabel': criteriaListVal.shortLabel });\n returnVal[returnVal.length - 1]['en'] = criteriaListVal.longLabel.split(this.criteriaValues.splitChar)[1];\n returnVal[returnVal.length - 1]['fr'] = criteriaListVal.longLabel.split(this.criteriaValues.splitChar)[0];\n returnVal[returnVal.length - 1]['value'] = undefined;\n returnVal[returnVal.length - 1]['size'] = criteriaListVal.size;\n i = i + 1;\n }\n else if (splitData[i] === '2') {\n\n i = i + 2;\n let criteriaListVal = this.getCriteriaDetailsFromriteriaListOriginal(splitData[i].substring(0, splitData[i].length - 2), splitData[i].substr(splitData[i].length - 1, 1));\n returnVal.push({ 'GCOName': criteriaListVal.GCOName, 'longLabel': criteriaListVal.longLabel, 'typeOfField': criteriaListVal.typeOfField, 'size': criteriaListVal.size, 'shortLabel': criteriaListVal.shortLabel });\n returnVal[returnVal.length - 1]['en'] = criteriaListVal.longLabel.split(this.criteriaValues.splitChar)[1];\n returnVal[returnVal.length - 1]['fr'] = criteriaListVal.longLabel.split(this.criteriaValues.splitChar)[0];\n let listVal = undefined;\n returnVal[returnVal.length - 1]['size'] = criteriaListVal.size;\n i = i + 2;\n const subType = splitData[i];\n if (subType === '0') {\n i = i + 1;\n listVal = [];\n const loopVal = splitData[i];\n criteriaListVal['value'] = [];\n for (let k = 0; k < loopVal; k++) {\n i = i + 3;\n listVal.push(splitData[i].trim());\n }\n returnVal[returnVal.length - 1]['value'] = listVal;\n } else if (subType === '1') {\n returnVal[returnVal.length - 1]['value'] = this.utilService.getTranslateName(`NEW_QUERY.CHARACTER_LIST.ALL`) + `,${splitData[i + 1].trim()}`;\n } else if (subType === '2') {\n returnVal[returnVal.length - 1]['value'] = this.utilService.getTranslateName(`NEW_QUERY.CHARACTER_LIST.COMPACT`);\n } else if (subType === '3') {\n returnVal[returnVal.length - 1]['value'] = this.utilService.getTranslateName(`NEW_QUERY.CHARACTER_LIST.INDEX`);\n }\n }\n else if (splitData[i] === '3') {\n i = i + 1;\n const dateFormat = splitData[i];\n if (dateFormat === '9') {\n i = i + 2;\n let criteriaListVal = this.getCriteriaDetailsFromriteriaListOriginal(splitData[i].substring(0, splitData[i].length - 2), splitData[i].substr(splitData[i].length - 1, 1));\n returnVal.push({ 'GCOName': criteriaListVal.GCOName, 'longLabel': criteriaListVal.longLabel, 'typeOfField': criteriaListVal.typeOfField, 'size': criteriaListVal.size, 'shortLabel': criteriaListVal.shortLabel });\n returnVal[returnVal.length - 1]['en'] = criteriaListVal.longLabel.split(this.criteriaValues.splitChar)[1];\n returnVal[returnVal.length - 1]['fr'] = criteriaListVal.longLabel.split(this.criteriaValues.splitChar)[0];\n returnVal[returnVal.length - 1]['value'] = splitData[i - 1];\n returnVal[returnVal.length - 1]['size'] = criteriaListVal.size;\n i = i + 1;\n } else {\n i = i + 2;\n let criteriaListVal = this.getCriteriaDetailsFromriteriaListOriginal(splitData[i].substring(0, splitData[i].length - 2), splitData[i].substr(splitData[i].length - 1, 1));\n returnVal.push({ 'GCOName': criteriaListVal.GCOName, 'longLabel': criteriaListVal.longLabel, 'typeOfField': criteriaListVal.typeOfField, 'size': criteriaListVal.size, 'shortLabel': criteriaListVal.shortLabel });\n returnVal[returnVal.length - 1]['en'] = criteriaListVal.longLabel.split(this.criteriaValues.splitChar)[1];\n returnVal[returnVal.length - 1]['fr'] = criteriaListVal.longLabel.split(this.criteriaValues.splitChar)[0];\n returnVal[returnVal.length - 1]['value'] = this.dateGroupValue[dateFormat];\n returnVal[returnVal.length - 1]['size'] = criteriaListVal.size;\n i = i + 1;\n }\n }\n else if (splitData[i] === '4') {\n i = i + 2;\n let criteriaListVal = this.getCriteriaDetailsFromriteriaListOriginal(splitData[i].substring(0, splitData[i].length - 2), splitData[i].substr(splitData[i].length - 1, 1));\n returnVal.push({ 'GCOName': criteriaListVal.GCOName, 'longLabel': criteriaListVal.longLabel, 'typeOfField': criteriaListVal.typeOfField, 'size': criteriaListVal.size, 'shortLabel': criteriaListVal.shortLabel });\n returnVal[returnVal.length - 1]['en'] = criteriaListVal.longLabel.split(this.criteriaValues.splitChar)[1];\n returnVal[returnVal.length - 1]['fr'] = criteriaListVal.longLabel.split(this.criteriaValues.splitChar)[0];\n returnVal[returnVal.length - 1]['value'] = undefined;\n returnVal[returnVal.length - 1]['size'] = criteriaListVal.size;\n i = i + 1;\n }\n }\n }\n return returnVal;\n }\n\n saveVueDetailsData(): string {\n\n let saveQuery: string;\n if (this.vueValues.vueList.length > 0) {\n const listCount = this.vueValues.vueList.length;\n saveQuery = listCount.toString();\n for (const item of this.vueValues.vueList) {\n const affichDataType = item.type === 1 ? \"2\" : item.type === 3 ? item.type.toString() : item.type === 4 ? item.type.toString() : \"1\";\n if (affichDataType === '1') {\n saveQuery = `${saveQuery}@${affichDataType}@0@${item.size}@${item.GCOName}_${item.type}@${item.type}`;\n } else if (affichDataType === '2') {\n let itemValue = item.name.substr(item.name.indexOf('[') + 1, (item.name.length - item.name.indexOf('[') - 2));\n if (itemValue === this.utilService.getTranslateName(`NEW_QUERY.CHARACTER_LIST.COMPACT`)) {\n saveQuery = `${saveQuery}@${affichDataType}@0@${item.GCOName}_1@1@2@0`;\n } else if (itemValue === this.utilService.getTranslateName(`NEW_QUERY.CHARACTER_LIST.INDEX`)) {\n saveQuery = `${saveQuery}@${affichDataType}@0@${item.GCOName}_1@1@3@0`;\n } else if (itemValue.split(',')[0] === this.utilService.getTranslateName(`NEW_QUERY.CHARACTER_LIST.ALL`)) {\n saveQuery = `${saveQuery}@${affichDataType}@0@${item.GCOName}_1@1@1@${itemValue.split(',')[1]}`;\n } else {\n if (itemValue.split(',').length > 0) {\n saveQuery = `${saveQuery}@${affichDataType}@0@${item.GCOName}_1@1@0@${itemValue.split(',').length}`;\n for (const valItem of itemValue.split(',')) {\n if (valItem.length !== 6) {\n let emptySpace = '';\n for (let x = 0; x < (6 - valItem.length); x++) {\n emptySpace = `${emptySpace} `;\n }\n saveQuery = `${saveQuery}@0@0@${valItem}${emptySpace}`;\n } else {\n saveQuery = `${saveQuery}@0@0@${valItem}`;\n }\n }\n }\n }\n } else if (affichDataType === '4') {\n saveQuery = `${saveQuery}@${affichDataType}@0@${item.GCOName}_4@4`;\n } else if (affichDataType === '3') {\n let itemValue = item.name.substr(item.name.indexOf('[') + 1, (item.name.length - item.name.indexOf('[') - 2))\n const indexval = this.dateGroupValue.indexOf(itemValue);\n if (indexval !== -1) {\n saveQuery = `${saveQuery}@${affichDataType}@${indexval}@0@${item.GCOName}_3@3`;\n } else {\n saveQuery = `${saveQuery}@${affichDataType}@9@${itemValue}@${item.GCOName}_3@3`;\n }\n }\n }\n if (saveQuery.length > 5) {\n saveQuery = `${saveQuery}@`;\n return saveQuery;\n }\n }\n }\n\n saveChampsDetailsData(): string {\n let saveQuery: string;\n if (this.vueValues.vueList.length > 0) {\n const listCount = this.vueValues.vueList.length;\n saveQuery = listCount.toString();\n for (const item of this.vueValues.vueList) {\n saveQuery = `${saveQuery}@4@${item.size}@${item.GCOName}_${item.type}@${item.type}`;\n }\n if (saveQuery.length > 5) {\n saveQuery = `${saveQuery}@`;\n return saveQuery;\n }\n }\n }\n\n\n removeSelectedItem(index, id) {\n var selectList = document.getElementById(id);\n var selectOptions = selectList.getElementsByTagName('mat-list-option');\n for (var i = 0; i < selectOptions.length; i++) {\n if (i !== index && selectOptions[i].getAttribute('aria-selected') === 'true') {\n let div = selectOptions[i].getAttribute('id');\n document.getElementById(div).click()\n } else if (i === index && selectOptions[i].getAttribute('aria-selected') === 'false') {\n let div = selectOptions[i].getAttribute('id');\n document.getElementById(div).click()\n }\n }\n }\n\n moveRight() {\n\n setTimeout(() => {\n var objDiv = document.getElementById('vueDetails');\n if (objDiv) {\n objDiv.scrollTop = objDiv.scrollHeight;\n }\n }, 10);\n if (typeof (this.criteriaValues.selectedItemValue) !== 'undefined') {\n this.criteriaValues.selectedGroupItemValue = this.criteriaValues.selectedItemValue;\n this.criteriaValues.blnMoveRight = true;\n const criteriaFilterVal = this.criteriaValues.criteriaListOringinal.filter(a => a.longLabel.split(this.criteriaValues.splitChar, 2)[this.getLangIndex(this.criteriaValues.lang)] === this.criteriaValues.selectedItemValue)[0];\n this.criteriaValues.selectedItemType = criteriaFilterVal.typeOfField;\n this.criteriaValues.GCOName = criteriaFilterVal.GCOName;\n this.getCharacterData(criteriaFilterVal);\n if (this.screenName === 'vue' || this.screenName === 'extraction-tool') {\n if (this.criteriaValues.selectedItemType !== 3 && this.criteriaValues.selectedItemType !== 1) {\n\n this.vueValues.vueList.push({ \"name\": this.criteriaValues.selectedItemValue, \"type\": this.criteriaValues.selectedItemType, 'GCOName': criteriaFilterVal.GCOName, \"size\": criteriaFilterVal.size, \"visible\": true, \"longName\": this.criteriaValues.selectedItemValue, \"shortName\": criteriaFilterVal.shortLabel });\n // console.log(\"this.vueValues.vueList\", this.vueValues.vueList, criteriaFilterVal);\n // this.selectedItemValue = undefined;\n // this.selectedItemType = undefined;\n }\n this.displayGrouping();\n } else {\n if (this.vueValues.vueList.filter(x => x.name.toUpperCase() === this.criteriaValues.selectedItemValue.toUpperCase() && x.type === this.criteriaValues.selectedItemType).length <= 0) {\n this.vueValues.vueList.push({ \"name\": this.criteriaValues.selectedItemValue, \"type\": this.criteriaValues.selectedItemType, 'GCOName': criteriaFilterVal.GCOName, \"size\": criteriaFilterVal.size, \"visible\": true });\n }\n }\n }\n // console.log(this.vueValues.vueList);\n this.vueValues.groupingEditValue = undefined;\n this.criteriaValues.selectedItemValue = undefined;\n this.criteriaValues.selectedItemIndex = undefined;\n }\n\n moveLeft() {\n if (this.criteriaValues.groupingSelectedList.length > 0) {\n for (const item of this.criteriaValues.groupingSelectedList) {\n this.vueValues.vueList.splice(this.vueValues.vueList.indexOf(item), 1);\n }\n // if (typeof (this.selectedGroupItemValue) !== 'undefined') {\n // if (this.groupList.indexOf(this.selectedGroupItemValue) > -1) {\n // this.groupList.splice(this.groupList.indexOf(this.selectedGroupItemValue), 1);\n // this.selectedGroupItemValue = undefined;\n // }\n // }\n this.criteriaValues.selectedGroupItemValue = undefined;\n this.vueValues.groupingEditValue = undefined;\n this.criteriaValues.selectedItemValue = undefined;\n this.criteriaValues.selectedItemIndex = undefined;\n this.criteriaValues.selectedItemType = undefined;\n this.criteriaValues.groupingSelectedList = [];\n\n }\n }\n\n displayGrouping() {\n if (this.criteriaValues.selectedItemType === 1) {\n this.criteriaValues.displayGroupingForm = true;\n }\n return this.criteriaValues.displayGroupingForm;\n }\n\n getCharacterData(criteriaFilterVal) {\n this.criteriaValues.selectedCharacterList = {\n 'longLabel': criteriaFilterVal.longLabel,\n 'size': criteriaFilterVal.size,\n 'selectedTable': this.tableValues.selectedTable,\n 'ipn': this.tableValues.ipn,\n 'region': this.tableValues.region,\n 'selectedGroupItemValue': this.criteriaValues.selectedGroupItemValue\n };\n }\n\n onGroupDateCancel(event) {\n this.criteriaValues.selectedItemType = undefined;\n this.criteriaValues.selectedItemValue = undefined;\n this.criteriaValues.selectedGroupItemValue = undefined;\n this.criteriaValues.blnMoveRight = false;\n this.vueValues.vueEditValue = undefined\n }\n\n onGroupDateOk(event, section) {\n if (event.value !== '') {\n const criteriaFilterVal = this.criteriaValues.criteriaListOringinal.filter(a => a.longLabel.split(this.criteriaValues.splitChar, 2)[this.getLangIndex(this.criteriaValues.lang)] === this.criteriaValues.selectedGroupItemValue)[0];\n if (section === 'vue') {\n if (!this.criteriaValues.blnMoveRight) {\n if (typeof (event.value) !== \"undefined\") {\n this.vueValues.vueList[this.vueValues.vueEditIndex].name = this.criteriaValues.selectedGroupItemValue + `[${event.value}]`;\n } else {\n this.vueValues.vueList[this.vueValues.vueEditIndex].name = this.criteriaValues.selectedGroupItemValue + `[${event}]`;\n }\n } else {\n if (typeof (event.value) !== \"undefined\") {\n this.vueValues.vueList.push({ \"name\": this.criteriaValues.selectedGroupItemValue + `[${event.value}]`, \"type\": this.criteriaValues.selectedItemType, 'GCOName': criteriaFilterVal.GCOName, 'size': criteriaFilterVal.size, \"visible\": true, \"longName\": this.criteriaValues.selectedGroupItemValue, \"shortLabel\": criteriaFilterVal.shortLabel });\n } else {\n this.vueValues.vueList.push({ \"name\": this.criteriaValues.selectedGroupItemValue + `[${event}]`, \"type\": this.criteriaValues.selectedItemType, 'GCOName': criteriaFilterVal.GCOName, 'size': criteriaFilterVal.size, \"visible\": true, \"longName\": this.criteriaValues.selectedGroupItemValue, \"shortLabel\": criteriaFilterVal.shortLabel });\n }\n }\n }\n }\n this.criteriaValues.selectedItemType = undefined;\n this.criteriaValues.selectedItemValue = undefined;\n this.criteriaValues.selectedGroupItemValue = undefined;\n this.criteriaValues.blnMoveRight = false;\n this.vueValues.vueEditValue = undefined\n }\n\n dblClickVue(indexval) {\n this.criteriaValues.selectedItemType = undefined;\n setTimeout(() => {\n var objDiv = document.getElementById('vueDetails');\n if (objDiv) {\n objDiv.scrollTop = objDiv.scrollHeight;\n }\n }, 10);\n this.removeSelectedItem(indexval, 'vueDetails')\n if (this.vueValues.vueList[indexval].name.indexOf('[') > -1) {\n this.criteriaValues.selectedGroupItemValue = this.vueValues.vueList[indexval].name.substr(0, this.vueValues.vueList[indexval].name.indexOf('['));\n this.vueValues.vueEditValue = this.vueValues.vueList[indexval].name.substr(this.vueValues.vueList[indexval].name.indexOf('[') + 1, (this.vueValues.vueList[indexval].name.length - this.vueValues.vueList[indexval].name.indexOf('[') - 2));\n // this.selectedItemType = this.criteriaListOringinal.filter(a => a.longLabel.split(this.splitChar, 2)[this.getLangIndex(this.lang)] === this.selectedGroupItemValue)[0].typeOfField;\n this.criteriaValues.selectedItemType = this.vueValues.vueList[indexval].type;\n this.vueValues.vueEditIndex = indexval;\n this.displayGrouping();\n } else {\n this.criteriaValues.selectedGroupItemValue = this.vueValues.vueList[indexval].name;\n this.vueValues.vueEditValue = undefined;\n // this.selectedItemType = this.criteriaListOringinal.filter(a => a.longLabel.split(this.splitChar, 2)[this.getLangIndex(this.lang)] === this.selectedGroupItemValue)[0].typeOfField;\n this.criteriaValues.selectedItemType = this.vueValues.vueList[indexval].type;\n if (this.criteriaValues.selectedItemType === 4) {\n this.criteriaValues.selectedItemType = undefined;\n this.vueValues.vueEditIndex = indexval;\n }\n }\n }\n\n add() {\n if (this.vueValues.vueList.length > 0) {\n this.vueValues.isVueDetailSave = true;\n this.openDialog('');\n }\n }\n\n modify() {\n if (this.vueValues.selectedVueIPNDetail && this.vueValues.vueList.length > 0) {\n this.vueValues.isVueDetailSave = false;\n this.openDialogUpdate(this.vueValues.selectedVueIPNDetail);\n }\n }\n\n reset() {\n this.selectedVueIPNDetail = undefined;\n this.vueValues.vueList = [];\n this.vueValues.selectedVueIPNDetail = undefined;\n this.selectedCriteriaOptions = 'private';\n }\n\n delete() {\n if (this.vueValues.selectedVueIPNDetail) {\n const dialogRef = this.dialog.open(AlertConfirmationComponent, {\n disableClose: true,\n width: '350px',\n data: { 'display': this.utilService.getTranslateName(`NEW_QUERY.DELETE`), 'isText': false }\n });\n\n dialogRef.afterClosed().subscribe(result => {\n if (result) {\n let queryParam;\n if (this.screenName === 'vue') {\n queryParam = { \"input\": `AFFICH@${this.tableValues.ipn}@${this.tableValues.selectedTable}@${this.vueValues.selectedVueIPNDetail}@`, \"region\": this.getFavoriteRegion() };\n } else {\n if (this.selectedCriteriaOptions === 'private') {\n queryParam = { \"input\": `FILTRE@${this.tableValues.ipn}@${this.tableValues.selectedTable}@${this.vueValues.selectedVueIPNDetail}@`, \"region\": this.getFavoriteRegion() };\n } else {\n queryParam = { \"input\": `FILTRE@system@${this.tableValues.selectedTable}@${this.vueValues.selectedVueIPNDetail}@`, \"region\": this.getFavoriteRegion() };\n }\n }\n this.apiService.deleteObject(queryParam).subscribe(resp => {\n if (this.screenName === 'vue') {\n this.getPrivateVueDetailsIPNs();\n } else if (this.screenName === 'extraction-tool') {\n this.getPrivateVueDetailsIPNs();\n } else {\n // this.getChampsPrivateFilterCategoryDetails();\n this.selectChampsOption(this.selectedCriteriaOptions);\n }\n this.vueValues.selectedVueIPNDetail = undefined;\n this.vueValues.vueList = [];\n },\n error => {\n this.toastyService.error(this.utilService.getTranslateName(`ERROR.DELETE`));\n console.log(\"error\", error.message);\n });\n }\n });\n }\n }\n\n clickList(item, index) {\n this.criteriaValues.selectedItemType = undefined;\n if (this.criteriaValues.groupingSelectedList.length === 0) {\n this.criteriaValues.groupingSelectedList.push(item);\n } else {\n if (this.criteriaValues.groupingSelectedList.indexOf(item) < 0) {\n this.criteriaValues.groupingSelectedList.push(item);\n } else {\n this.criteriaValues.groupingSelectedList.splice(this.criteriaValues.groupingSelectedList.indexOf(item), 1);\n }\n }\n // console.log(this.criteriaValues.groupingSelectedList);\n // this.criteriaValues.selectedItemValue = item.name;\n }\n\n moveUp(id, section_id) {\n if (this.criteriaValues.groupingSelectedList.length > 0) {\n let array;\n array = this.vueValues.vueList;\n\n document.getElementById(id).scrollBy(0, -10);\n var selectList = document.getElementById(section_id);\n var selectOptions = selectList.getElementsByTagName('mat-list-option');\n for (var i = 0; i < array.length; i++) {\n if (i > 0) {\n if (selectOptions[i].getAttribute('aria-selected') === 'true') {\n let old_value = array.splice(i, 1)[0];\n array.splice(i - 1, 0, old_value);\n }\n } else if (i === 0 && selectOptions[i].getAttribute('aria-selected') === 'true') {\n let old_value = array.splice(i, 1)[0];\n array.splice(i, 0, old_value);\n let div = selectOptions[i].getAttribute('id');\n document.getElementById(div).click();\n }\n }\n }\n }\n\n moveDown(id, section_id) {\n if (this.criteriaValues.groupingSelectedList.length > 0) {\n let array;\n array = this.vueValues.vueList;\n document.getElementById(id).scrollBy(0, 10);\n var selectList = document.getElementById(section_id);\n var selectOptions = selectList.getElementsByTagName('mat-list-option');\n for (var i = array.length - 1; i >= 0; i--) {\n if (i < array.length - 1) {\n if (selectOptions[i].getAttribute('aria-selected') === 'true') {\n let old_value = array.splice(i, 1)[0];\n array.splice(i + 1, 0, old_value);\n }\n } else if (i === array.length - 1 && selectOptions[i].getAttribute('aria-selected') === 'true') {\n let old_value = array.splice(i, 1)[0];\n array.splice(i, 0, old_value);\n let div = selectOptions[i].getAttribute('id');\n document.getElementById(div).click();\n }\n }\n }\n }\n\n changeNameList() {\n let ipn;\n if (this.isPublic) {\n ipn = 'system';\n let queryParam = { \"input\": `REQU@${ipn}@${this.tableValues.selectedTable}@@`, \"region\": this.getFavoriteRegion() };\n this.apiService.getSaveQueryName(queryParam).subscribe(res => {\n if (res.noObjects > 0) {\n ipn = 'system';\n let queryList = { \"input\": `REQU@${ipn}@${this.tableValues.selectedTable}@@0@${res.noObjects}@`, \"region\": this.getFavoriteRegion() };\n this.apiService.getSaveQueryNameList(queryList).subscribe(elem => {\n this.queryPublicList = elem.lists;\n this.queryPublicList = this.queryPublicList.sort(this.utilService.sortArray);\n }, error => {\n console.log(\"error\", error.message);\n });\n }\n }, error => {\n console.log(\"error\", error.message);\n });\n }\n if (this.isPrivate) {\n ipn = this.zid;\n let queryParam = { \"input\": `REQU@${ipn}@${this.tableValues.selectedTable}@@`, \"region\": this.getFavoriteRegion() };\n this.apiService.getSaveQueryName(queryParam).subscribe(res => {\n if (res.noObjects > 0) {\n ipn = this.zid;\n let queryList = { \"input\": `REQU@${ipn}@${this.tableValues.selectedTable}@@0@${res.noObjects}@`, \"region\": this.getFavoriteRegion() };\n this.apiService.getSaveQueryNameList(queryList).subscribe(elem => {\n this.queryPrivateList = elem.lists;\n this.queryPrivateList = this.queryPrivateList.sort(this.utilService.sortArray);\n }, error => {\n console.log(\"error\", error.message);\n });\n }\n }, error => {\n console.log(\"error\", error.message);\n });\n }\n }\n\n clickQueryName(item, type) {\n if (type === 'private') {\n this.selectedPrivateQueryName = item;\n this.selectedPublicQueryName = '';\n this.isPrivateQuery = true;\n } else {\n this.selectedPublicQueryName = item;\n this.selectedPrivateQueryName = '';\n this.isPrivateQuery = false;\n }\n this.queryType = type;\n this.enableButton = false;\n if (this.tableValues.selectedRegion === \"Europe\") {\n if (this.profile['roles'].includes('PIL_SAVE_PUBLIC') && this.getFavoriteRegion() === 'PIL') {\n this.enableButton = true;\n }\n } else {\n if (this.profile['roles'].includes('PIM_SAVE_PUBLIC') && this.getFavoriteRegion() === 'PIM') {\n this.enableButton = true;\n }\n }\n // if ((this.profile['role-pil-irn6804'].includes('pil_save_public') && this.getFavoriteRegion() === 'PIL') || (this.profile['role-pim-irn9207'].includes('pim_save_public') && this.getFavoriteRegion() === 'PIM')) {\n // this.enableButton = true;\n // } else {\n // this.enableButton = false;\n // }\n }\n\n renameQuery() {\n if (this.selectedPrivateQueryName || this.selectedPublicQueryName) {\n let ipn, queryName;\n if (this.queryType === 'public') {\n ipn = 'system';\n queryName = this.selectedPublicQueryName;\n this.selectedPrivateQueryName = '';\n } else {\n ipn = this.tableValues.ipn;\n queryName = this.selectedPrivateQueryName;\n this.selectedPublicQueryName = '';\n }\n const dialogRef = this.dialog.open(SaveQueryNameComponent, {\n width: '450px',\n data: { value: queryName, type: 'private' }\n });\n dialogRef.afterClosed().subscribe(res => {\n if (res.name !== '') {\n let queryList = { \"input\": `REQU@${ipn}@${this.tableValues.selectedTable}@${queryName}@`, \"region\": this.getFavoriteRegion() };\n this.apiService.getObjectGet(queryList).subscribe(elem => {\n let query = elem.data;\n if (this.screenName === 'open-request') {\n this.apiService.deleteObject(queryList).subscribe(elem => {\n if (elem.status === 200) {\n let queryList = { \"input\": `REQU@${ipn}@${this.tableValues.selectedTable}@${res.name}@${query}`, \"region\": this.getFavoriteRegion() };\n this.apiService.saveObject(queryList).subscribe(elem => {\n this.changeNameList();\n });\n }\n })\n } else {\n let queryList = { \"input\": `REQU@${this.tableValues.ipn}@${this.tableValues.selectedTable}@${res.name}@${query}`, \"region\": this.getFavoriteRegion() };\n this.apiService.saveObject(queryList).subscribe(elem => {\n this.changeNameList();\n });\n }\n })\n }\n });\n } else {\n this.toastyService.warning(this.utilService.getTranslateName(`ERROR.SELECT_QUERY`))\n }\n }\n\n deleteQuery() {\n if (this.selectedPrivateQueryName || this.selectedPublicQueryName) {\n if (this.tableValues.ipn !== this.zid) {\n this.toastyService.warning(this.utilService.getTranslateName(`ERROR.DELETE_OTHER_USER_QUERY`))\n } else {\n const dialogRef = this.dialog.open(AlertConfirmationComponent, {\n disableClose: true,\n width: '350px',\n data: { 'display': this.utilService.getTranslateName(`NEW_QUERY.DELETE_QUERY`), 'isText': false }\n });\n\n dialogRef.afterClosed().subscribe(result => {\n if (result) {\n let ipn, queryName;\n if (this.queryType === 'public') {\n ipn = 'system';\n queryName = this.selectedPublicQueryName;\n this.selectedPrivateQueryName = '';\n } else {\n ipn = this.tableValues.ipn;\n queryName = this.selectedPrivateQueryName;\n this.selectedPublicQueryName = '';\n }\n let queryList = { \"input\": `REQU@${ipn}@${this.tableValues.selectedTable}@${queryName}@`, \"region\": this.getFavoriteRegion() };\n this.apiService.deleteObject(queryList).subscribe(elem => {\n this.changeNameList();\n });\n }\n })\n }\n } else {\n this.toastyService.warning(this.utilService.getTranslateName(`ERROR.SELECT_QUERY`))\n }\n }\n\n openQuery() {\n if (this.selectedPrivateQueryName || this.selectedPublicQueryName) {\n if (this.tableValues.selectedTable !== 'CARNETS' && this.tableValues.selectedTable !== 'LEX' && this.tableValues.dateDiff > 0) {\n this.openDialogTable();\n } else {\n this.openQueryData();\n this.utilService.$showQuickLink$.next(true);\n }\n } else {\n this.toastyService.warning(this.utilService.getTranslateName(`ERROR.SELECT_QUERY`))\n }\n }\n\n setOpenedWindow(windowPathName) {\n this.utilService.addOpenedWindowName(windowPathName);\n }\n\n openQueryData() {\n let ipn, queryName;\n if (this.queryType === 'public') {\n ipn = 'system';\n queryName = this.selectedPublicQueryName\n this.selectedPrivateQueryName = '';\n } else {\n ipn = this.zid;\n queryName = this.selectedPrivateQueryName\n this.selectedPublicQueryName = '';\n }\n this.matomoTracker.trackEvent(`${this.screenName}`, `Open ${this.tableValues.selectedRegion} - ${this.tableValues.selectedTable} ${queryName} ${ipn} query`, this.profile['login']);\n let queryList = { \"input\": `REQU@${ipn}@${this.tableValues.selectedTable}@${queryName}@`, \"region\": this.getFavoriteRegion() };\n this.apiService.getObjectGet(queryList).subscribe(elem => {\n \n \n if (this.tableValues.requestDatas) {\n if (this.tableValues.requestDatas.length < 3) {\n this.requestService.addRequestData(this.tableValues.selectedRegion, this.tableValues.selectedTable, this.tableValues.requestDatas);\n // this.removeQueryWindowNameInList();\n this.setOpenedWindow('/home/query');\n this.router.navigateByUrl('/home/query');\n } else {\n // this.removeQueryWindowNameInList();\n this.setOpenedWindow('/home/query');\n this.router.navigateByUrl('/home/query');\n this.toastyService.info(this.utilService.getTranslateName(`ERROR.MAX_REQ`));\n // alert(\"User can create request maximum 3.\")\n }\n } else {\n this.requestService.addRequestData(this.tableValues.selectedRegion, this.tableValues.selectedTable, this.tableValues.requestDatas);\n // this.removeQueryWindowNameInList();\n this.setOpenedWindow('/home/query');\n this.router.navigateByUrl('/home/query');\n }\n if ((this.tableValues.requestDatas.length < 4)) {\n if (this.tableValues.requestDatas[this.tableValues.requestDatas.length - 1] != null) {\n this.reqActive = this.tableValues.requestDatas.length;\n } else {\n this.reqActive = 0;\n }\n }\n if (this.roleBasedGroupList !== '') {\n let tablesList = this.roleBasedGroupList.split('§');\n tablesList.forEach(item => {\n if (item.split('@')[0] === this.tableValues.selectedTable) {\n if (item.split('@')[1] !== '0') {\n this.requestService.roleBasedQuery(item, this.reqActive);\n } else {\n this.requestService.roleBasedQuery('', this.reqActive);\n }\n }\n })\n }\n this.requestService.selectedQuery(elem.data, this.reqActive);\n this.requestService.setTabName(queryName, this.reqActive);\n \n \n })\n }\n\n openDialogTable() {\n const dialogRef = this.dialog.open(AlertConfirmationComponent, {\n disableClose: true,\n width: '550px',\n data: { 'display': this.utilService.getTranslateName(`ERROR.OLD_DATA`), 'isText': false }\n });\n\n dialogRef.afterClosed().subscribe(result => {\n if (result === true) {\n this.openQueryData();\n this.utilService.$showQuickLink$.next(true);\n }\n });\n }\n\n onEnter() {\n let queryList = { \"input\": `REQU@${this.zid}@${this.tableValues.selectedTable}@@`, \"region\": this.getFavoriteRegion() };\n this.apiService.getObjectSize(queryList).subscribe(res => {\n if (res.noObjects > 0) {\n let queryList = { \"input\": `REQU@${this.zid}@${this.tableValues.selectedTable}@@0@${res.noObjects}@`, \"region\": this.getFavoriteRegion() };\n this.apiService.getSaveQueryNameList(queryList).subscribe(elem => {\n this.changeNameList();\n })\n }\n });\n }\n\n\n displayMessage(region) {\n if (this.tableValues.selectedRegion.toLowerCase() === 'europe') {\n if (region['mercosur'] === 'false') {\n this.requestService.addRegionMsg('true', 'false');\n } else {\n this.requestService.addRegionMsg('true', 'true');\n }\n if (region['europe'] === 'false') {\n this.getEuropeMsg()\n }\n }\n if (this.tableValues.selectedRegion.toLowerCase() === 'mercosur') {\n if (region['europe'] === 'false') {\n this.requestService.addRegionMsg('false', 'true');\n } else {\n this.requestService.addRegionMsg('true', 'true');\n }\n if (region['mercosur'] === 'false') {\n this.getMercosurMsg()\n }\n }\n }\n\n linkIndex = -1;\n getEuropeMsg() {\n this.linkIndex = -1;\n let queryParam = { \"input\": \"MESS@system@Message@@0@1@\", \"region\": 'PIL' };\n this.apiService.getMessageObjectList(queryParam).subscribe(res => {\n if (res.lists !== undefined && res.lists.length > 0) {\n let queryParam1 = { \"input\": `MESS@system@Message@${res.lists[0]}@`, \"region\": 'PIL' };\n this.apiService.getMessageObject(queryParam1).subscribe(res => {\n if (res.data !== '') {\n this.alertMsg[0].EUROPE[0] = res.data;\n if (this.alertMsg[0].EUROPE[0].includes('
')) {\n const splitVal = this.alertMsg[0].EUROPE[0].split('
');\n for (let index = 0; index < splitVal.length; index++) {\n const element = splitVal[index];\n if (element !== \"\") {\n if (this.linkIndex === -1) {\n this.linkIndex = element.indexOf(\"http\") === -1 ? -1 : index;\n }\n }\n // console.log(\"element\", element, element.indexOf(\"http\"));\n if (index === splitVal.length - 1) {\n if (element !== \"\") {\n this.alertMsg[0].EUROPE[index] = element;\n }\n } else {\n this.alertMsg[0].EUROPE[index] = element;\n }\n }\n // this.alertMsg[0].EUROPE = this.alertMsg[0].EUROPE[0].split('
');\n // this.alertMsg[0].EUROPE[1] = this.alertMsg[0].EUROPE[1];\n }\n this.displayPopup();\n }\n });\n }\n });\n }\n\n getMercosurMsg() {\n this.linkIndex = -1;\n let queryParam1 = { \"input\": \"MESS@system@Message@@0@1@\", \"region\": 'PIM' };\n this.apiService.getMessageObjectList(queryParam1).subscribe(res => {\n if (res.lists !== undefined && res.lists.length > 0) {\n let queryParam1 = { \"input\": `MESS@system@Message@${res.lists[0]}@`, \"region\": 'PIM' };\n this.apiService.getMessageObject(queryParam1).subscribe(res => {\n if (res.data !== '') {\n this.alertMsg[1].MERCOSUR[0] = res.data;\n if (this.alertMsg[1].MERCOSUR[0].includes('
')) {\n\n const splitVal = this.alertMsg[1].MERCOSUR[0].split('
');\n for (let index = 0; index < splitVal.length; index++) {\n const element = splitVal[index];\n if (element !== \"\") {\n if (this.linkIndex === -1) {\n this.linkIndex = element.indexOf(\"http\") === -1 ? -1 : index;\n }\n }\n if (index === splitVal.length - 1) {\n if (element !== \"\") {\n this.alertMsg[1].MERCOSUR[index] = element;\n }\n } else {\n this.alertMsg[1].MERCOSUR[index] = element;\n }\n // this.alertMsg[1].MERCOSUR[index] = element;\n }\n // this.alertMsg[1].MERCOSUR = this.alertMsg[1].MERCOSUR[0].split('
');\n // this.alertMsg[1].MERCOSUR[1] = this.alertMsg[1].MERCOSUR[1];\n }\n this.displayPopup();\n }\n });\n }\n });\n }\n\n displayPopup() {\n if (this.alertMsg.length > 0) {\n const dialogRef = this.dialog.open(AlertMessageComponent, {\n disableClose: true,\n width: '800px',\n data: { 'display': this.alertMsg, \"linkIndex\": this.linkIndex, region: this.tableValues.selectedRegion.toLowerCase(), type: 'region' }\n // data: { 'display': this.alertMsg, region: this.tableValues.selectedRegion.toLowerCase(), type: 'region' }\n });\n\n dialogRef.afterClosed().subscribe(result => {\n if (result === true) {\n }\n })\n }\n }\n\n clickClose() {\n const pathName = window.location.pathname;\n this.utilService.removeOpenedWindowName(pathName);\n this.utilService.$showIcon$.next(true);\n const openedWindowNameList = this.utilService.getOpenedWindowNameList()\n if (openedWindowNameList.length > 0) {\n this.router.navigate([openedWindowNameList[openedWindowNameList.length - 1]]);\n } else {\n this.router.navigate(['home']);\n }\n }\n\n onFileSelected(event) {\n const file: File = event.target.files[0];\n\n if (file) {\n\n let fileReader: FileReader = new FileReader();\n fileReader.onload = (event) => {\n var data = fileReader.result.toString().replace(/\\r\\n/g, '\\n').split('\\n');\n this.assignValue(data);\n }\n fileReader.readAsText(file);\n\n }\n }\n assignValue(data) {\n this.fileData = data;\n }\n\n execute() {\n this.invalidAlert=false;\n if (this.fileData.length && this.fileData.length > 0) {\n if (this.vueValues.vueList.length && this.vueValues.vueList.length > 0) {\n let firstElem = this.fileData[0].length;\n if (firstElem === 12 || firstElem === 15 || firstElem === 17) {\n let resultArr = this.fileData.filter(item => {\n return firstElem !== item.length;\n });\n if (resultArr.length === 0 || resultArr[0] === '') {\n if (this.tableValues.selectedTable !== 'PDFV') {\n if (this.fileData.length > 200) {\n let slicedArr = this.fileData.slice(0, 200);\n // this.alertErrorMsg(this.utilService.getTranslateName(`ERROR.LARGE_SIZE`));\n\n const dialogRef = this.dialog.open(AlertConfirmationComponent, {\n disableClose: true,\n width: '550px',\n data: { 'display': this.utilService.getTranslateName(`ERROR.LARGE_SIZE`), 'isText': false }\n });\n\n dialogRef.afterClosed().subscribe(result => {\n if (result === true) {\n this.getExtractedData(slicedArr);\n }\n })\n // this.getExtractedData(slicedArr);\n } else {\n this.getExtractedData(this.fileData);\n }\n } else {\n if (this.fileData.length > 50) {\n let slicedArr = this.fileData.slice(0, 50);\n // this.alertErrorMsg(this.utilService.getTranslateName(`ERROR.PDFV_LARGE_SIZE`));\n // this.getExtractedData(slicedArr);\n\n const dialogRef = this.dialog.open(AlertConfirmationComponent, {\n disableClose: true,\n width: '550px',\n data: { 'display': this.utilService.getTranslateName(`ERROR.PDFV_LARGE_SIZE`), 'isText': false }\n });\n\n dialogRef.afterClosed().subscribe(result => {\n if (result === true) {\n this.getExtractedData(slicedArr);\n }\n })\n } else {\n this.getExtractedData(this.fileData);\n }\n }\n } else {\n if (this.tableValues.selectedTable === 'BCV') {\n if (firstElem === 12) {\n this.alertErrorMsg(this.utilService.getTranslateName(`ERROR.BCV_12_INVALID_FORMAT`));\n } else if (firstElem === 15) {\n this.alertErrorMsg(this.utilService.getTranslateName(`ERROR.BCV_15_INVALID_FORMAT`));\n } else if (firstElem === 17) {\n this.alertErrorMsg(this.utilService.getTranslateName(`ERROR.BCV_17_INVALID_FORMAT`));\n }\n } else if (this.tableValues.selectedTable === 'CDE') {\n this.alertErrorMsg(this.utilService.getTranslateName(`ERROR.CDE_INVALID_FORMAT`));\n } else {\n this.alertErrorMsg(this.utilService.getTranslateName(`ERROR.PDFV_INVALID_FORMAT`));\n }\n }\n } else {\n if (this.tableValues.selectedTable === 'CDE') {\n this.alertErrorMsg(this.utilService.getTranslateName(`ERROR.CDE_INVALID_FORMAT`));\n } else if (this.tableValues.selectedTable === 'PDFV' || this.tableValues.selectedTable === 'PDFT') {\n this.alertErrorMsg(this.utilService.getTranslateName(`ERROR.PDFV_INVALID_FORMAT`));\n } else {\n this.alertErrorMsg(this.utilService.getTranslateName(`ERROR.INVALID_FORMAT`));\n }\n }\n } else {\n this.alertErrorMsg(this.utilService.getTranslateName(`ERROR.GROUPBY_MISSING`));\n }\n } else {\n this.alertErrorMsg(this.utilService.getTranslateName(`ERROR.FILE_UPLOAD_MISSING`));\n }\n }\n\n\n getExtractedData(fullArray) {\n\n console.log(\"extacted data function \");\n const chunkSize = 30;\n this.fileUploadArray = [];\n this.extractQueryResponce = [];\n this.reqResponce = [];\n this.monitorchunkIterator = []; ''\n for (let i = 0; i < fullArray.length; i += chunkSize) {\n const chunk = fullArray.slice(i, i + chunkSize);\n this.fileUploadArray.push(chunk);\n }\n this.executeResultType = false;\n\n this.loaderService.show();\n for (let i = 0; i < this.fileUploadArray.length; i++) {\n let array = this.fileUploadArray[i];\n let data, firstElem;\n this.columnNames = [];\n const timeStamp = Date.now();\n const randomNumber = Math.floor(100000 + Math.random() * 900000)\n data = `${timeStamp}-${randomNumber}`;\n firstElem = array[0].length;\n if (this.tableValues.selectedTable === 'CDE') {\n if (firstElem !== 15) {\n this.executeAlert(`ERROR.CDE_INVALID_FORMAT`, i, this.fileUploadArray.length);\n // this.alertErrorMsg(this.utilService.getTranslateName(`ERROR.CDE_INVALID_FORMAT`));\n } else {\n data += \"\\n\" + this.splitDataValues('CDE', array);\n data += this.generateGroupExecute('CDE', firstElem);\n data += this.generateCommonLastExecute();\n }\n } else if (this.tableValues.selectedTable === 'PDFV' || this.tableValues.selectedTable === 'PDFT') {\n if (firstElem !== 12) {\n this.executeAlert(`ERROR.PDFV_INVALID_FORMAT`, i, this.fileUploadArray.length);\n\n // this.alertErrorMsg(this.utilService.getTranslateName(`ERROR.PDFV_INVALID_FORMAT`));\n } else {\n data += \"\\n\" + this.splitDataValues('PDFV', array);\n data += this.generateGroupExecute('PDFV', firstElem);\n data += this.generateCommonLastExecute()\n }\n } else {\n let resultArr = this.fileData.filter(item => {\n console.log(item);\n console.log(item.length);\n console.log(firstElem);\n console.log(firstElem !== item.length)\n return firstElem !== item.length;\n });\n if (resultArr.length === 0 || resultArr[0] === '') {\n data += \"\\n\" + this.splitDataValues('BCV', array);\n data += this.generateGroupExecute('BCV', firstElem);\n data += this.generateCommonLastExecute()\n } else {\n if (firstElem === 12) {\n this.executeAlert(`ERROR.BCV_12_INVALID_FORMAT`, i, this.fileUploadArray.length);\n\n // this.alertErrorMsg(this.utilService.getTranslateName(`ERROR.BCV_12_INVALID_FORMAT`));\n } else if (firstElem === 15) {\n this.executeAlert(`ERROR.BCV_15_INVALID_FORMAT`, i, this.fileUploadArray.length);\n\n // this.alertErrorMsg(this.utilService.getTranslateName(`ERROR.BCV_15_INVALID_FORMAT`));\n } else if (firstElem === 17) {\n this.executeAlert(`ERROR.BCV_17_INVALID_FORMAT`, i, this.fileUploadArray.length);\n\n // this.alertErrorMsg(this.utilService.getTranslateName(`ERROR.BCV_17_INVALID_FORMAT`));\n }\n }\n }\n // this.num = 0;\n if (this.fileData.length && this.fileData.length > 0 && !this.invalidAlert) {\n const queryParam = { \"inputLists\": `${data}`.split('\\n'), \"region\": this.getFavoriteRegion() };\n console.log(queryParam, array);\n\n setTimeout(() => {\n this.extractExecution(queryParam, `${timeStamp}-${randomNumber}`, i, this.fileUploadArray.length);\n\n }, (1000 * (i + 1)));\n\n }\n }\n }\n num = 0;\n\n executeAlert(val, iterator, totalIteretor) {\n this.invalidAlert=true;\n this.loaderService.hide();\n if (iterator == (totalIteretor - 1)){\n \n console.log(\"SSSS\",iterator, totalIteretor, iterator == (totalIteretor - 1));\n this.alertErrorMsg(this.utilService.getTranslateName(val));\n }\n }\n extractExecution(queryParamValue, randonValue, chunkIterator, chunkLength) {\n // console.log(\"extractExecution\", queryParamValue, randonValue, chunkIterator, chunkLength)\n let retunValue\n this.isExecute = true;\n console.log(queryParamValue);\n let queryParam = queryParamValue;\n // if (this.num > 0) {\n // console.log(\"IF NUMM 0\")\n // queryParam = { \"inputLists\": `${randonValue}`.split('\\n'), \"region\": this.getFavoriteRegion() };\n // }\n console.log(queryParam);\n this.apiService.getExecuteData(queryParam).subscribe(res => {\n if (res) {\n // this.num = this.num + 1;\n if (res.errors) {\n this.isExecute = false;\n if (res.errors[0].errorCode === 502 || res.errors[0].errorCode === 504) {\n\n this.reExecute(chunkIterator, false, chunkLength, 'reexecute', res);\n\n } else {\n this.executeResultType = true;\n this.reExecute(chunkIterator, false, chunkLength, 'terminate', res);\n\n\n }\n } else {\n this.queryExecutedData = [];\n if (res.queryResults) {\n res.queryResults.forEach(item => {\n let obj = {}, objArr = [];\n for (let key in item) {\n if (Number.parseInt(key.split(\"_\")[1]) > 1) {\n const isJours = this.columnDateType.filter(cc => cc === Number.parseInt(key.split(\"_\")[1]) - 2)\n if (isJours.length > 0) {\n if (item[key].length > 9) {\n if (Number.parseInt(item[key].split(\"/\")[2]) > 0) {\n // objArr.push(new Date(item[key].split(\"/\")[2], Number.parseInt(item[key].split(\"/\")[1]) - 1, Number.parseInt(item[key].split(\"/\")[0]) + 1));\n objArr.push(this.datePipe.transform(new Date(`${item[key].split(\"/\")[2]}-${Number.parseInt(item[key].split(\"/\")[1])}-${Number.parseInt(item[key].split(\"/\")[0])} 23:59:00`), 'dd/MM/yyyy'));\n } else {\n objArr.push(item[key]);\n }\n } else {\n objArr.push(item[key]);\n }\n } else {\n objArr.push(item[key]);\n }\n }\n }\n this.queryExecutedData.push(objArr);\n })\n }\n\n\n\n let responce = [res.queryResults, this.queryExecutedData]\n this.extractQueryResponce.push(responce)\n responce = [];\n var exceldata = [];\n this.extractQueryResponce.forEach(element => {\n exceldata.push(...element[1]);\n this.reExecute(chunkIterator, true, chunkLength, 'success', res);\n });\n\n if (this.extractQueryResponce.length === this.fileUploadArray.length) {\n // console.log(\"LAST\", exceldata, this.queryExecutedData);\n this.sExcelService.generateExcel(this.columnNames, exceldata, this.columnNames.length);\n this.matomoTracker.trackEvent(`${this.screenName}`, `Execute ${this.tableValues.selectedRegion} - ${this.tableValues.selectedTable} query`, this.profile['uid']);\n // console.log(\"hisdde\")\n this.loaderService.hide();\n // console.log('hise');\n this.isExecute = false;\n }\n retunValue = 'successfull';\n // return (retunValue);\n\n }\n }\n },\n error => {\n if (error) {\n // this.loaderService.hide();\n this.isExecute = false;\n // this.num = this.num + 1\n this.reExecute(chunkIterator, false, chunkLength, 'reexecute', error);\n\n }\n else {\n this.reExecute(chunkIterator, false, chunkLength, 'reexecute', error);\n }\n });\n }\n\n reExecute(chunkIterator, status, chunkLength, type, res) {\n // this.monitorchunkIterator.push(chunkIterator);\n\n const found = this.monitorchunkIterator.some(el => el == chunkIterator);\n // console.log(found)\n if (!found) this.monitorchunkIterator.push(chunkIterator);\n // console.log(this.monitorchunkIterator);\n status ? \"\" : this.reqResponce.push(status);\n if (this.executeResultType && (chunkLength === this.monitorchunkIterator.length) && (this.reqResponce.length > 0)) {\n\n this.loaderService.hide();\n // console.log('hisaaaaae');\n console.log(res.errors[0]);\n console.log(res.errors[0].errorMessage);\n const mgs = res.errors[0].errorMessage;\n const dialogRef = this.dialog.open(AlertConfirmationComponent, {\n disableClose: true,\n width: '550px',\n data: { 'display': mgs ? mgs : \"Error\", isAlert: 'true', type: \"group\" }\n });\n\n dialogRef.afterClosed().subscribe(result => {\n if (result === true) {\n // this.reset();\n }\n })\n }\n // console.log((chunkLength === this.monitorchunkIterator.length), (this.reqResponce.length > 0));\n // console.log(chunkLength, \"this.monitorchunkIterator.length\", this.monitorchunkIterator.length, this.reqResponce, this.reqResponce.length, type);\n (chunkLength === this.monitorchunkIterator.length) && (this.reqResponce.length > 0) && !this.executeResultType ? this.execute() : console.log(\"exceptrionalllll\");\n }\n\n splitDataValues(table, array) {\n let formattedArr = [], index = 0, startText, string = '';\n let valueStr = '';\n startText = `TEMP@${this.tableValues.ipn}@${this.tableValues.selectedTable}@${this.tableValues.ipn}.EXP@${this.tableValues.ipn}@${this.tableValues.selectedTable}@${this.tableValues.ipn}.EXP@2@(@)@0@`\n startText += \"\\n\";\n startText += `TPO@${this.tableValues.ipn}@${this.tableValues.selectedTable}@@${this.tableValues.ipn}.EXP@`\n startText += \"\\n\";\n // startText += `TEMP@${this.tableValues.ipn}@${this.tableValues.selectedTable}@${this.tableValues.ipn}.CND@${this.tableValues.ipn}@${this.tableValues.selectedTable}@${this.tableValues.ipn}.CND@`;\n startText += `TEMP@${this.tableValues.ipn}@${this.tableValues.selectedTable}@${this.tableValues.ipn}.CND@${this.tableValues.ipn}@${this.tableValues.selectedTable}@${this.tableValues.ipn}.CND@`;\n string += `@(@(`;\n if (table === 'CDE') {\n array.forEach((item) => {\n let data = item.slice(0, 3) + ' ' + item.slice(3, 9) + ' ' + item.slice(9, 15);\n let splittedData = data.split(' ');\n string += `@(@(@(@(@${index}@)@E@(@${index + 1}@)@E@(@${index + 2}@)@)@)@)@O`;\n index = index + 3;\n let obj = {\n 'perim': splittedData[0],\n 'numCTE': splittedData[1],\n 'numCDE': splittedData[2]\n }\n formattedArr.push(obj);\n })\n if (string.charAt(string.length - 1) === 'O') {\n string = string.slice(0, -2);\n }\n string += `@)@)`;\n // console.log('gggggg', string);\n formattedArr.forEach(item => {\n valueStr += `@1@1@1@A_PerimGest@0@E@0@${item.perim}@0@1@1@1@A_NumCptePropCde@0@E@0@${item.numCTE}@0@1@1@1@A_NumCdeSedre@0@E@0@${item.numCDE}@0`\n })\n this.columnNames.push(\"Perimetre gestion§Perimeter of Management (PG)\".split(this.splitChar)[this.getLangIndex(this.lang)])\n this.columnNames.push(\"Numero compte proprietaire commande§Account _ Owner Order Account\".split(this.splitChar)[this.getLangIndex(this.lang)])\n this.columnNames.push(\"Numero commande§Order identification number\".split(this.splitChar)[this.getLangIndex(this.lang)])\n } else if (table === 'PDFV') {\n string += `@(`;\n array.forEach((item) => {\n let data = item.slice(0, 3) + ' ' + item.slice(3, 12);\n let splittedData = data.split(' ');\n string += `@(@(@(@${index}@)@E@(@${index + 1}@)@)@)@O`;\n index = index + 2;\n let obj = {\n 'dept': splittedData[0],\n 'pji': splittedData[1]\n }\n formattedArr.push(obj);\n })\n if (string.charAt(string.length - 1) === 'O') {\n string = string.slice(0, -2);\n }\n string += `@)@)@)`;\n formattedArr.forEach(item => {\n valueStr += `@1@1@1@A_DptMont@0@E@0@${item.dept}@0@1@1@1@A_PJI@0@E@0@${item.pji}@0`\n })\n this.columnNames.push(\"Departement monteur§Departement monteur\".split(this.splitChar)[this.getLangIndex(this.lang)])\n if (this.tableValues.selectedTable === 'PDFV') {\n this.columnNames.push(\"PJI du vehicule (AASSJNNNN)§PJI du vehicule (AASSJNNNN)\".split(this.splitChar)[this.getLangIndex(this.lang)])\n } else {\n this.columnNames.push(\"PJI§PJI\".split(this.splitChar)[this.getLangIndex(this.lang)])\n }\n } else {\n string = `@(@(@(`;\n let shortName = '';\n if (array[0].length === 12) {\n shortName = 'A_NumIdent';\n this.columnNames.push(\"Numero Identification§Identification Number\".split(this.splitChar)[this.getLangIndex(this.lang)])\n } else if (array[0].length === 15) {\n shortName = 'A_InvarBCV';\n this.columnNames.push(\"Invariant BCV§Invariant BCV\".split(this.splitChar)[this.getLangIndex(this.lang)])\n } else if (array[0].length === 17) {\n shortName = 'A_NumChassis'\n this.columnNames.push(\"Numero Chassis§VIN\".split(this.splitChar)[this.getLangIndex(this.lang)])\n }\n array.forEach((item) => {\n // string += `@(@(@(@(@${index}@)@)@)@)@O`;\n string += `@(@(@(@${index}@)@)@)@O`;\n index = index + 1;\n let obj = {\n 'numChassis': item\n }\n formattedArr.push(obj);\n })\n if (string.charAt(string.length - 1) === 'O') {\n string = string.slice(0, -2);\n }\n string += `@)@)@)`;\n formattedArr.forEach(item => {\n valueStr += `@1@1@1@${shortName}@0@E@0@${item.numChassis}@0`\n })\n }\n let strAtChar = (string.match(new RegExp(\"@\", \"g\")) || []).length;\n if (table === 'CDE') {\n string += `@${formattedArr.length * 3}${valueStr}@`;\n } else if (table === 'PDFV') {\n string += `@${formattedArr.length * 2}${valueStr}@`;\n } else {\n string += `@${formattedArr.length}${valueStr}@`;\n }\n let returnStr = `${startText}${strAtChar}${string}`;\n // returnStr += '\\n';\n // returnStr += `TPO@${this.tableValues.ipn}@${this.tableValues.selectedTable}@un100000@${this.tableValues.ipn}.EXP@`;\n // returnStr += '\\n';\n // returnStr += `TEMP@${this.tableValues.ipn}@${this.tableValues.selectedTable}@${this.tableValues.ipn}.CND@${this.tableValues.ipn}@${this.tableValues.selectedTable}@${this.tableValues.ipn}.CND@2@(@)@0@`;\n return returnStr;\n }\n\n getCountandAddedValues(table, element) {\n let noOfValues, addedValues;\n if (table === 'CDE') {\n noOfValues = this.vueValues.vueList.length + 3;\n addedValues = `1@1@1@A_PerimGest@0@?@0@?@0@1@1@1@A_NumCptePropCde@0@?@0@?@0@1@1@1@A_NumCdeSedre@0@?@0@?@0`;\n } else if (table === 'PDFV') {\n noOfValues = this.vueValues.vueList.length + 2;\n addedValues = `1@1@1@A_DptMont@0@?@0@?@0@1@1@1@A_PJI@0@?@0@?@0`;\n } else {\n noOfValues = this.vueValues.vueList.length + 1;\n if (element === 12) {\n addedValues = `1@1@1@A_NumIdent@0@?@0@?@0`;\n } else if (element === 15) {\n addedValues = `1@1@1@A_InvarBCV@0@?@0@?@0`;\n } else if (element === 17) {\n addedValues = `1@1@1@A_NumChassis@0@?@0@?@0`;\n }\n }\n let obj = {\n no: noOfValues,\n value: addedValues\n }\n return obj;\n }\n\n generateGroupExecute(table, element) {\n let itemId = 0;\n let rtnValue, listForm = \"\";\n rtnValue = \"\\n\";\n rtnValue += `TEMP@${this.tableValues.ipn}@${this.tableValues.selectedTable}@${this.tableValues.ipn}.GRP@${this.tableValues.ipn}@${this.tableValues.selectedTable}@${this.tableValues.ipn}.GRP@${this.getCountandAddedValues(table, element).no}@${this.getCountandAddedValues(table, element).value}`;\n rtnValue += `@`;\n this.columnDateType = [];\n for (const item of this.vueValues.vueList) {\n itemId = itemId + 1;\n const affichDataType = item.type === 1 ? \"2\" : item.type === 3 ? item.type.toString() : (item.type === 4 || item.type === 5) ? item.type.toString() : item.type === 99 ? \"5\" : \"1\";\n if (affichDataType === '1') {\n listForm = `${listForm}${affichDataType}@1@1@${item.GCOName}@0@?@0@?@0@`;\n this.columnNames.push(`${item.name}`)\n } else if (affichDataType === '2') {\n let itemValue = item.name.substr(item.name.indexOf('[') + 1, (item.name.length - item.name.indexOf('[') - 2));\n if (itemValue.split(',')[0] === this.utilService.getTranslateName(`NEW_QUERY.CHARACTER_LIST.COMPACT`)) {\n listForm = `${listForm}${affichDataType}@2@1@${item.GCOName}@1@A_MilBE@?@0@007@0@`;\n this.columnNames.push(`${item.name.substr(0, item.name.indexOf('['))}`);\n } else if (itemValue.split(',')[0] === this.utilService.getTranslateName(`NEW_QUERY.CHARACTER_LIST.INDEX`)) {\n listForm = `${listForm}${affichDataType}@3@1@${item.GCOName}@0@?@0@@0@`;\n this.columnNames.push(`${item.name.substr(0, item.name.indexOf('['))}`);\n } else if (itemValue.split(',')[0] === this.utilService.getTranslateName(`NEW_QUERY.CHARACTER_LIST.ALL`)) {\n\n if (itemValue.split(',').length > 1) {\n listForm = `${listForm}${affichDataType}@1@1@${item.GCOName}@0@?@${itemValue.split(\",\")[1]}@@0@`;\n } else {\n listForm = `${listForm}${affichDataType}@1@1@${item.GCOName}@0@?@0@@0@`;\n }\n this.columnNames.push(`${item.name.substr(0, item.name.indexOf('['))}`);\n } else {\n if (itemValue.split(',').length > 0) {\n let ll = 0;\n listForm = `${listForm}${affichDataType}@0@1@${item.GCOName}@0@?@0@`;\n for (const valItem of itemValue.split(',')) {\n if (valItem.length !== 6) {\n let emptySpace = '';\n for (let x = 0; x < (6 - valItem.length); x++) {\n emptySpace = `${emptySpace} `;\n }\n if (ll === 0) {\n listForm = `${listForm}${valItem}${emptySpace}/`;\n this.columnNames.push(`${item.name} - ${valItem}`)\n }\n\n } else {\n if (ll === 0) {\n listForm = `${listForm}${valItem}/`;\n this.columnNames.push(`${item.name} - ${valItem}`)\n }\n }\n }\n listForm = listForm.slice(0, -1)\n listForm = `${listForm}@0@`\n }\n }\n } else if (affichDataType === '4' || (item.type === 5 && affichDataType === '5')) {\n let itemValue = item.name.split(\"[\");\n if (itemValue.length > 1) {\n listForm = `${listForm}6@1@1@${item.GCOName}@0@?@0@?@0@`;\n this.columnNames.push(`${item.name}`)\n } else {\n listForm = `${listForm}${affichDataType}@4@1@${item.GCOName}@0@?@0@?@0@`;\n this.columnNames.push(`${item.name}`)\n }\n } else if (affichDataType === '3') {\n let itemValue = item.name.substr(item.name.indexOf('[') + 1, (item.name.length - item.name.indexOf('[') - 2));\n let foundElement = this.getGroupDate().find(el => this.utilService.getTranslateName(`NEW_QUERY.DATE_GROUPING.${el.value}`) === itemValue);\n if (foundElement !== undefined) {\n listForm = `${listForm}${affichDataType}@${foundElement.index}@1@${item.GCOName}@0@?@0@?@0@`;\n this.columnNames.push(`${item.name}`);\n if (foundElement.value === \"jours\") {\n this.columnDateType.push(itemId);\n }\n } else {\n listForm = `${listForm}${affichDataType}@9@1@${item.GCOName}@0@?@0@${itemValue}@0@`;\n this.columnNames.push(`${item.name}`);\n }\n } else if (affichDataType === '5' && item.type === 99) {\n let itemValue = item.name.substr(item.name.indexOf('[') + 1, (item.name.length - item.name.indexOf('[') - 2))\n let delayIndex;\n const delayDateNames = item.name.split('-');\n const delayDateNames2 = delayDateNames[1].split('[')[0];\n let delayDateName1 = undefined;\n let delayDateName2 = undefined;\n if (item.delay === 0) {\n const criteriaFilterVal1 = this.criteriaValues.criteriaListOringinal.filter(a => a.longLabel.split('§', 2).length > 1 ? a.longLabel.split('§', 2)[this.getLangIndex(this.criteriaValues.lang)] === delayDateNames[0] : a.longLabel === delayDateNames[0])[0];\n delayDateName1 = criteriaFilterVal1.GCOName;\n const criteriaFilterVal2 = this.criteriaValues.criteriaListOringinal.filter(a => a.longLabel.split('§', 2).length > 1 ? a.longLabel.split('§', 2)[this.getLangIndex(this.criteriaValues.lang)] === delayDateNames2 : a.longLabel === delayDateNames2)[0];\n delayDateName2 = criteriaFilterVal2.GCOName;\n } else if (item.delay === 1 || item.delay === 2) {\n const criteriaFilterVal = this.criteriaValues.criteriaListOringinal.filter(a => a.longLabel.split('§', 2).length > 1 ? a.longLabel.split('§', 2)[this.getLangIndex(this.criteriaValues.lang)] === delayDateNames2 : a.longLabel === delayDateNames2)[0];\n delayDateName1 = delayDateNames[0];\n delayDateName2 = criteriaFilterVal.GCOName;\n\n } else if (item.delay === 3 || item.delay === 4) {\n const criteriaFilterVal = this.criteriaValues.criteriaListOringinal.filter(a => a.longLabel.split('§', 2).length > 1 ? a.longLabel.split('§', 2)[this.getLangIndex(this.criteriaValues.lang)] === delayDateNames[0] : a.longLabel === delayDateNames[0])[0];\n delayDateName1 = criteriaFilterVal.GCOName;\n delayDateName2 = delayDateNames2;\n }\n for (let i = 0; i < this.getDataFormat().length; i++) {\n let el = this.getDataFormat()[i];\n // this.getDataFormat().forEach(el => {\n let translatedText = this.utilService.getTranslateName(`NEW_QUERY.DATE_GROUPING.${el.name}`);\n if (translatedText.toLowerCase() === itemValue.toLowerCase()) {\n delayIndex = el.index;\n }\n }\n if (itemValue.split(' ').length > 1 && !isNaN(itemValue.split(' ')[1])) {\n listForm += `5@7@1@${delayDateName1}@1@${delayDateName2}@?@0@${itemValue.split(' ')[1]}@0@`;\n this.columnNames.push(`${item.name}`)\n } else {\n listForm += `5@${delayIndex}@1@${delayDateName1}@1@${delayDateName2}@?@0@?@0@`;\n this.columnNames.push(`${item.name}`)\n }\n }\n }\n rtnValue += listForm;\n return rtnValue;\n }\n\n getDataFormat() {\n return [{ name: 'CONNUE', value: 'connue', index: 0 },\n { name: 'JOUR_SAVE', value: 'jour', index: 1 },\n { name: 'PROGRAM_SAVE', value: 'programme', index: 2 },\n { name: 'WEEK_SAVE', value: 'week', index: 2 },\n { name: 'INDUSTRIAL_SAVE', value: 'mois insustriel', index: 3 },\n { name: 'CALENDAR_SAVE', value: 'mois calendaire', index: 4 },\n { name: 'Y', value: 'année', index: 5 },\n { name: 'WORKING_SAVE', value: 'semaines', index: 6 },\n { name: 'FF_SAVE', value: 'Free Format', index: 7 },\n { name: 'ASL_SAVE', value: 'ASJ', index: 8 },\n { name: 'INCONNUE', value: 'inconnue', index: 0 },\n ];\n }\n\n getGroupDate() {\n return [{ name: 'DCMY', value: 'jours', index: 1 },\n { name: 'DWY', value: 'jour/prog./année', index: 8 },\n { name: 'PY', value: 'programmes', index: 2 },\n { name: 'IMY', value: 'mois industriels', index: 3 },\n { name: 'CMY', value: 'mois calendaires', index: 4 },\n { name: 'Y', value: 'année', index: 5 },\n { name: 'FF', value: 'Free Format', index: 9 },\n { name: 'FKD', value: 'flag', index: 0 }];\n }\n\n generateCommonLastExecute() {\n let rtnValue: string;\n rtnValue = \"\\n\";\n let isFlagFound = false;\n if (this.vueValues.vueList.some(el => el.type === 4)) {\n this.vueValues.vueList.forEach(el => {\n let data = el.name.split('[');\n data = data.slice(0, -1);\n if (data.length > 0 && data[0].toLowerCase() === this.utilService.getTranslateName('COMMON.SUM').toLowerCase()) {\n isFlagFound = true;\n }\n })\n }\n /**** SONAR : Remove this conditional structure or edit its code blocks so that they're not all the same ****/\n // if (this.vueValues.vueList.some(el => el.type === 5) || isFlagFound) {\n // rtnValue += `TSI@${this.tableValues.ipn}@${this.tableValues.selectedTable}@un100001@${this.tableValues.ipn}.CND@${this.tableValues.ipn}.GRP@N@N@`;\n // } else {\n // rtnValue += `TSI@${this.tableValues.ipn}@${this.tableValues.selectedTable}@un100001@${this.tableValues.ipn}.CND@${this.tableValues.ipn}.GRP@N@N@`;\n // }\n rtnValue += `TSI@${this.tableValues.ipn}@${this.tableValues.selectedTable}@un100000@${this.tableValues.ipn}.CND@${this.tableValues.ipn}.GRP@N@N@`;\n rtnValue += '\\n';\n rtnValue += `GET@${this.tableValues.ipn}@${this.tableValues.selectedTable}@un100001@0@0@1@`;\n return rtnValue;\n }\n\n alertErrorMsg(displayMsg): void {\n\n this.fileData = [];\n console.log(\"logclr\");\n const dialogRef = this.dialog.open(AlertConfirmationComponent, {\n disableClose: true,\n width: '550px',\n data: { 'display': displayMsg, 'isText': false, 'isAlert': true }\n });\n\n dialogRef.afterClosed().subscribe(result => {\n if (result === true) {\n this.myFileInput.nativeElement.value = \"\";\n // this.dialogRef.close({ name: this.queryName, isPublic: this.isPublic });\n return;\n }\n })\n }\n\n\n searchFilter() {\n this.criteriaValues.displayCriteriaList = this.criteriaValues.criteriaList.filter(a => a.toUpperCase().includes(this.criteriaValues.searchText.toUpperCase()));\n this.criteriaValues.displayCriteriaList = this.criteriaValues.displayCriteriaList.sort(this.utilService.sortArray);\n }\n\n funSelectField() {\n this.moveRight()\n }\n\n}\n","export default \".title-span {\\n font-family: Roboto, \\\"Helvetica Neue\\\", sans-serif;\\n font-size: 14px;\\n font-weight: 500;\\n line-height: 17px;\\n}\\n\\n.title-span-Abbr {\\n font-family: Roboto, \\\"Helvetica Neue\\\", sans-serif;\\n font-size: 14px;\\n font-weight: 600;\\n line-height: 17px;\\n padding: 10px 0 10px 0;\\n}\\n\\n.text-span {\\n font-family: Roboto, \\\"Helvetica Neue\\\", sans-serif;\\n font-size: 11px;\\n font-weight: 400;\\n line-height: 28px;\\n}\\n\\n.text-span-wo-line-height {\\n font-family: Roboto, \\\"Helvetica Neue\\\", sans-serif;\\n font-size: 11px;\\n font-weight: 400;\\n}\\n\\n.text-span-font {\\n font-family: Roboto, \\\"Helvetica Neue\\\", sans-serif;\\n font-size: 11px;\\n font-weight: 400;\\n}\\n\\n.dateGroup {\\n background-color: #009B77;\\n color: #ffffff;\\n height: 315px;\\n}\\n\\n.dateGroup .date-radio-group {\\n display: flex;\\n flex-direction: column;\\n}\\n\\n.dateGroup .clear-both {\\n clear: both;\\n}\\n\\n.dateGroup .display {\\n display: none;\\n}\\n\\n.dateGroup .date-radio-button {\\n margin: 3px;\\n}\\n\\n.dateGroup .date-form-field {\\n right: 5px;\\n}\\n\\n.dateGroup .radio-btn-change .mat-radio-container {\\n margin-top: -13% !important;\\n}\\n\\n.dateGroup .date-confirmation {\\n position: absolute;\\n top: 18%;\\n right: 4%;\\n}\\n\\n.dateGroup .date-confirmation .label-class {\\n font-size: 12px;\\n}\\n\\n.dateGroup .date-confirmation .postion-input {\\n width: 50px;\\n background-color: #ffffff;\\n color: #000000;\\n}\\n\\n.dateGroup .date-confirmation .value-input {\\n width: 100%;\\n height: 30px;\\n margin-bottom: 10%;\\n margin-top: 2%;\\n text-transform: uppercase;\\n}\\n\\n.dateGroup .date-confirmation button {\\n width: 75px;\\n height: 36px;\\n font-family: Roboto, \\\"Helvetica Neue\\\", sans-serif;\\n font-size: 13px;\\n font-weight: 500;\\n text-align: center;\\n border: 0px solid;\\n padding: 0 !important;\\n border-radius: 0px;\\n}\\n\\n.dateGroup .abbrevation-card {\\n padding: 1px 0px 3px 5px;\\n color: #bbbcbc;\\n}\\n\\n.dateGroup .mat-form-field {\\n margin-left: 10px;\\n}\\n\\n.clS-displaynone {\\n display: none !important;\\n}\\n/*# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi91c3Ivc3JjL3NyYy9hcHAvY29tcG9uZW50L3F1ZXJ5L2dyb3VwaW5nL2RhdGUtZ3JvdXBpbmcvZGF0ZS1ncm91cGluZy5jb21wb25lbnQuc2NzcyIsInNyYy9hcHAvY29tcG9uZW50L3F1ZXJ5L2dyb3VwaW5nL2RhdGUtZ3JvdXBpbmcvZGF0ZS1ncm91cGluZy5jb21wb25lbnQuc2NzcyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFFQTtFQUNJLGlEQUFBO0VBQ0EsZUFBQTtFQUNBLGdCQUFBO0VBQ0EsaUJBQUE7QUNESjs7QURJQTtFQUNJLGlEQUFBO0VBQ0EsZUFBQTtFQUNBLGdCQUFBO0VBQ0EsaUJBQUE7RUFDQSxzQkFBQTtBQ0RKOztBRElBO0VBQ0ksaURBQUE7RUFDQSxlQUFBO0VBQ0EsZ0JBQUE7RUFDQSxpQkFBQTtBQ0RKOztBREtBO0VBQ0ksaURBQUE7RUFDQSxlQUFBO0VBQ0EsZ0JBQUE7QUNGSjs7QURNQTtFQUNJLGlEQUFBO0VBQ0EsZUFBQTtFQUNBLGdCQUFBO0FDSEo7O0FEUUE7RUFDRSx5QkFBQTtFQUNBLGNBQUE7RUFDQSxhQUFBO0FDTEY7O0FETUU7RUFDRSxhQUFBO0VBQ0Esc0JBQUE7QUNKSjs7QURPRTtFQUNFLFdBQUE7QUNMSjs7QURPRTtFQUNFLGFBQUE7QUNMSjs7QURRRTtFQUNFLFdBQUE7QUNOSjs7QURRRTtFQUNFLFVBQUE7QUNOSjs7QURTSTtFQUNFLDJCQUFBO0FDUE47O0FEVUU7RUFDRSxrQkFBQTtFQUNBLFFBQUE7RUFDQSxTQUFBO0FDUko7O0FEU0k7RUFDRSxlQUFBO0FDUE47O0FEU0U7RUFDRSxXQUFBO0VBQ0EseUJBQUE7RUFDQSxjQUFBO0FDUEo7O0FEU0U7RUFDRSxXQUFBO0VBQ0EsWUFBQTtFQUNBLGtCQUFBO0VBQ0EsY0FBQTtFQUNBLHlCQUFBO0FDUEo7O0FEU0k7RUFFRSxXQUFBO0VBQ0EsWUFBQTtFQUNBLGlEQUFBO0VBQ0EsZUFBQTtFQUNBLGdCQUFBO0VBQ0Esa0JBQUE7RUFDQSxpQkFBQTtFQUNBLHFCQUFBO0VBQ0Esa0JBQUE7QUNSTjs7QURXRTtFQUNFLHdCQUFBO0VBQ0EsY0FBQTtBQ1RKOztBRFdFO0VBRUUsaUJBQUE7QUNWSjs7QURhQTtFQUNFLHdCQUFBO0FDVkYiLCJmaWxlIjoic3JjL2FwcC9jb21wb25lbnQvcXVlcnkvZ3JvdXBpbmcvZGF0ZS1ncm91cGluZy9kYXRlLWdyb3VwaW5nLmNvbXBvbmVudC5zY3NzIiwic291cmNlc0NvbnRlbnQiOlsiXG5cbi50aXRsZS1zcGFue1xuICAgIGZvbnQtZmFtaWx5OiBSb2JvdG8sIFwiSGVsdmV0aWNhIE5ldWVcIiwgc2Fucy1zZXJpZjtcbiAgICBmb250LXNpemU6IDE0cHg7XG4gICAgZm9udC13ZWlnaHQ6IDUwMDtcbiAgICBsaW5lLWhlaWdodDogMTdweDtcbn1cblxuLnRpdGxlLXNwYW4tQWJicntcbiAgICBmb250LWZhbWlseTogUm9ib3RvLCBcIkhlbHZldGljYSBOZXVlXCIsIHNhbnMtc2VyaWY7XG4gICAgZm9udC1zaXplOiAxNHB4O1xuICAgIGZvbnQtd2VpZ2h0OiA2MDA7XG4gICAgbGluZS1oZWlnaHQ6IDE3cHg7XG4gICAgcGFkZGluZzogMTBweCAwIDEwcHggMDtcbn1cblxuLnRleHQtc3BhbntcbiAgICBmb250LWZhbWlseTogUm9ib3RvLCBcIkhlbHZldGljYSBOZXVlXCIsIHNhbnMtc2VyaWY7XG4gICAgZm9udC1zaXplOiAxMXB4O1xuICAgIGZvbnQtd2VpZ2h0OiA0MDA7XG4gICAgbGluZS1oZWlnaHQ6IDI4cHg7XG4gICAgLy8gbWFyZ2luLWxlZnQ6IC00cHg7XG59XG5cbi50ZXh0LXNwYW4td28tbGluZS1oZWlnaHR7XG4gICAgZm9udC1mYW1pbHk6IFJvYm90bywgXCJIZWx2ZXRpY2EgTmV1ZVwiLCBzYW5zLXNlcmlmO1xuICAgIGZvbnQtc2l6ZTogMTFweDtcbiAgICBmb250LXdlaWdodDogNDAwO1xuICAgIC8vIG1hcmdpbi1sZWZ0OiAtNHB4O1xufVxuXG4udGV4dC1zcGFuLWZvbnR7XG4gICAgZm9udC1mYW1pbHk6IFJvYm90bywgXCJIZWx2ZXRpY2EgTmV1ZVwiLCBzYW5zLXNlcmlmO1xuICAgIGZvbnQtc2l6ZTogMTFweDtcbiAgICBmb250LXdlaWdodDogNDAwO1xuICAgIC8vIG1hcmdpbi1sZWZ0OiAtNHB4O1xufVxuXG4vLyBEYXRlIGdyb3VwXG4uZGF0ZUdyb3VwIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogIzAwOUI3NztcbiAgY29sb3I6ICNmZmZmZmY7XG4gIGhlaWdodDogMzE1cHg7XG4gIC5kYXRlLXJhZGlvLWdyb3VwIHtcbiAgICBkaXNwbGF5OiBmbGV4O1xuICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XG4gICAgLy8gbWFyZ2luOiAxNXB4IDA7XG4gIH1cbiAgLmNsZWFyLWJvdGgge1xuICAgIGNsZWFyOiBib3RoO1xuICB9XG4gIC5kaXNwbGF5IHtcbiAgICBkaXNwbGF5OiBub25lO1xuICB9XG5cbiAgLmRhdGUtcmFkaW8tYnV0dG9uIHtcbiAgICBtYXJnaW46IDNweDtcbiAgfVxuICAuZGF0ZS1mb3JtLWZpZWxkIHtcbiAgICByaWdodDo1cHg7XG4gIH1cbiAgLnJhZGlvLWJ0bi1jaGFuZ2Uge1xuICAgIC5tYXQtcmFkaW8tY29udGFpbmVyIHtcbiAgICAgIG1hcmdpbi10b3A6IC0xMyUgIWltcG9ydGFudDtcbiAgICB9XG4gIH1cbiAgLmRhdGUtY29uZmlybWF0aW9uIHtcbiAgICBwb3NpdGlvbjphYnNvbHV0ZTtcbiAgICB0b3A6MTglO1xuICAgIHJpZ2h0OjQlO1xuICAgIC5sYWJlbC1jbGFzcyB7XG4gICAgICBmb250LXNpemU6IDEycHg7XG4gIH1cbiAgLnBvc3Rpb24taW5wdXQge1xuICAgIHdpZHRoOiA1MHB4O1xuICAgIGJhY2tncm91bmQtY29sb3I6ICNmZmZmZmY7IFxuICAgIGNvbG9yOiAjMDAwMDAwO1xuICB9XG4gIC52YWx1ZS1pbnB1dCB7XG4gICAgd2lkdGg6IDEwMCU7XG4gICAgaGVpZ2h0OiAzMHB4O1xuICAgIG1hcmdpbi1ib3R0b206IDEwJTtcbiAgICBtYXJnaW4tdG9wOiAyJTtcbiAgICB0ZXh0LXRyYW5zZm9ybTogdXBwZXJjYXNlO1xuICB9XG4gICAgYnV0dG9uIHtcbiAgICAgIC8vIG1hcmdpbjogMCAxMHB4OyAgICAgIFxuICAgICAgd2lkdGg6IDc1cHg7XG4gICAgICBoZWlnaHQ6IDM2cHg7XG4gICAgICBmb250LWZhbWlseTogUm9ib3RvLFwiSGVsdmV0aWNhIE5ldWVcIixzYW5zLXNlcmlmO1xuICAgICAgZm9udC1zaXplOiAxM3B4O1xuICAgICAgZm9udC13ZWlnaHQ6IDUwMDtcbiAgICAgIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgICAgIGJvcmRlcjogMHB4IHNvbGlkO1xuICAgICAgcGFkZGluZzogMCAhaW1wb3J0YW50O1xuICAgICAgYm9yZGVyLXJhZGl1czogMHB4O1xuICAgIH1cbiAgfVxuICAuYWJicmV2YXRpb24tY2FyZCB7XG4gICAgcGFkZGluZzogMXB4IDBweCAzcHggNXB4O1xuICAgIGNvbG9yOiAjYmJiY2JjO1xuICB9XG4gIC5tYXQtZm9ybS1maWVsZCB7XG4gICAgLy8gZGlzcGxheTogaW5saW5lICFpbXBvcnRhbnQ7XG4gICAgbWFyZ2luLWxlZnQ6IDEwcHg7XG4gIH1cbn1cbi5jbFMtZGlzcGxheW5vbmV7XG4gIGRpc3BsYXk6IG5vbmUgIWltcG9ydGFudDtcbn0iLCIudGl0bGUtc3BhbiB7XG4gIGZvbnQtZmFtaWx5OiBSb2JvdG8sIFwiSGVsdmV0aWNhIE5ldWVcIiwgc2Fucy1zZXJpZjtcbiAgZm9udC1zaXplOiAxNHB4O1xuICBmb250LXdlaWdodDogNTAwO1xuICBsaW5lLWhlaWdodDogMTdweDtcbn1cblxuLnRpdGxlLXNwYW4tQWJiciB7XG4gIGZvbnQtZmFtaWx5OiBSb2JvdG8sIFwiSGVsdmV0aWNhIE5ldWVcIiwgc2Fucy1zZXJpZjtcbiAgZm9udC1zaXplOiAxNHB4O1xuICBmb250LXdlaWdodDogNjAwO1xuICBsaW5lLWhlaWdodDogMTdweDtcbiAgcGFkZGluZzogMTBweCAwIDEwcHggMDtcbn1cblxuLnRleHQtc3BhbiB7XG4gIGZvbnQtZmFtaWx5OiBSb2JvdG8sIFwiSGVsdmV0aWNhIE5ldWVcIiwgc2Fucy1zZXJpZjtcbiAgZm9udC1zaXplOiAxMXB4O1xuICBmb250LXdlaWdodDogNDAwO1xuICBsaW5lLWhlaWdodDogMjhweDtcbn1cblxuLnRleHQtc3Bhbi13by1saW5lLWhlaWdodCB7XG4gIGZvbnQtZmFtaWx5OiBSb2JvdG8sIFwiSGVsdmV0aWNhIE5ldWVcIiwgc2Fucy1zZXJpZjtcbiAgZm9udC1zaXplOiAxMXB4O1xuICBmb250LXdlaWdodDogNDAwO1xufVxuXG4udGV4dC1zcGFuLWZvbnQge1xuICBmb250LWZhbWlseTogUm9ib3RvLCBcIkhlbHZldGljYSBOZXVlXCIsIHNhbnMtc2VyaWY7XG4gIGZvbnQtc2l6ZTogMTFweDtcbiAgZm9udC13ZWlnaHQ6IDQwMDtcbn1cblxuLmRhdGVHcm91cCB7XG4gIGJhY2tncm91bmQtY29sb3I6ICMwMDlCNzc7XG4gIGNvbG9yOiAjZmZmZmZmO1xuICBoZWlnaHQ6IDMxNXB4O1xufVxuLmRhdGVHcm91cCAuZGF0ZS1yYWRpby1ncm91cCB7XG4gIGRpc3BsYXk6IGZsZXg7XG4gIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XG59XG4uZGF0ZUdyb3VwIC5jbGVhci1ib3RoIHtcbiAgY2xlYXI6IGJvdGg7XG59XG4uZGF0ZUdyb3VwIC5kaXNwbGF5IHtcbiAgZGlzcGxheTogbm9uZTtcbn1cbi5kYXRlR3JvdXAgLmRhdGUtcmFkaW8tYnV0dG9uIHtcbiAgbWFyZ2luOiAzcHg7XG59XG4uZGF0ZUdyb3VwIC5kYXRlLWZvcm0tZmllbGQge1xuICByaWdodDogNXB4O1xufVxuLmRhdGVHcm91cCAucmFkaW8tYnRuLWNoYW5nZSAubWF0LXJhZGlvLWNvbnRhaW5lciB7XG4gIG1hcmdpbi10b3A6IC0xMyUgIWltcG9ydGFudDtcbn1cbi5kYXRlR3JvdXAgLmRhdGUtY29uZmlybWF0aW9uIHtcbiAgcG9zaXRpb246IGFic29sdXRlO1xuICB0b3A6IDE4JTtcbiAgcmlnaHQ6IDQlO1xufVxuLmRhdGVHcm91cCAuZGF0ZS1jb25maXJtYXRpb24gLmxhYmVsLWNsYXNzIHtcbiAgZm9udC1zaXplOiAxMnB4O1xufVxuLmRhdGVHcm91cCAuZGF0ZS1jb25maXJtYXRpb24gLnBvc3Rpb24taW5wdXQge1xuICB3aWR0aDogNTBweDtcbiAgYmFja2dyb3VuZC1jb2xvcjogI2ZmZmZmZjtcbiAgY29sb3I6ICMwMDAwMDA7XG59XG4uZGF0ZUdyb3VwIC5kYXRlLWNvbmZpcm1hdGlvbiAudmFsdWUtaW5wdXQge1xuICB3aWR0aDogMTAwJTtcbiAgaGVpZ2h0OiAzMHB4O1xuICBtYXJnaW4tYm90dG9tOiAxMCU7XG4gIG1hcmdpbi10b3A6IDIlO1xuICB0ZXh0LXRyYW5zZm9ybTogdXBwZXJjYXNlO1xufVxuLmRhdGVHcm91cCAuZGF0ZS1jb25maXJtYXRpb24gYnV0dG9uIHtcbiAgd2lkdGg6IDc1cHg7XG4gIGhlaWdodDogMzZweDtcbiAgZm9udC1mYW1pbHk6IFJvYm90bywgXCJIZWx2ZXRpY2EgTmV1ZVwiLCBzYW5zLXNlcmlmO1xuICBmb250LXNpemU6IDEzcHg7XG4gIGZvbnQtd2VpZ2h0OiA1MDA7XG4gIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgYm9yZGVyOiAwcHggc29saWQ7XG4gIHBhZGRpbmc6IDAgIWltcG9ydGFudDtcbiAgYm9yZGVyLXJhZGl1czogMHB4O1xufVxuLmRhdGVHcm91cCAuYWJicmV2YXRpb24tY2FyZCB7XG4gIHBhZGRpbmc6IDFweCAwcHggM3B4IDVweDtcbiAgY29sb3I6ICNiYmJjYmM7XG59XG4uZGF0ZUdyb3VwIC5tYXQtZm9ybS1maWVsZCB7XG4gIG1hcmdpbi1sZWZ0OiAxMHB4O1xufVxuXG4uY2xTLWRpc3BsYXlub25lIHtcbiAgZGlzcGxheTogbm9uZSAhaW1wb3J0YW50O1xufSJdfQ== */\"","import { Component, OnInit, Input, Output, EventEmitter, OnChanges, AfterViewInit } from '@angular/core';\nimport { FormBuilder, ReactiveFormsModule, FormsModule, NgControl, FormGroup } from '@angular/forms';\nimport { ToastyService } from 'ng2-toasty';\nimport { UtilService } from '../../../../services/util/util.service';\n\n@Component({\n selector: 'app-date-grouping',\n templateUrl: './date-grouping.component.html',\n styleUrls: ['./date-grouping.component.scss']\n})\nexport class DateGroupingComponent implements OnInit, AfterViewInit {\n @Input() title: string;\n @Input() selectedListItem: string;\n @Input() blnGroupingEdit: boolean;\n @Input() groupingEditValue: string;\n @Output() groupDateRetrun = new EventEmitter();\n @Output() blnCancel = new EventEmitter();\n dateVal;\n fromDate;\n toDate;\n\n freeFormatValue: string;\n\n dateRange: Array;\n\n groupingDateRange = [{ name: 'DCMY', value: 'jours' },\n { name: 'DWY', value: 'jour/prog./année' },\n { name: 'PY', value: 'programmes' },\n { name: 'IMY', value: 'mois industriels' },\n { name: 'CMY', value: 'mois calendaires' },\n { name: 'Y', value: 'année' },\n { name: 'FF', value: 'Free Format' },\n { name: 'FKD', value: 'flag' }];\n abbrevations = [ {name : 'ABBR_IY'},\n {name : 'ABBR_IM'},\n {name : 'ABBR_IW'},\n {name : 'ABBR_DW'},\n {name : 'ABBR_CY'},\n {name : 'ABBR_CM'},\n {name : 'ABBR_DM'},\n {name : 'ABBR_DY'}]\n\n populationDateRange = [{ name: 'CONNUE', value: 'connue', selected: 'false' },\n { name: 'INCONNUE', value: 'inconnue', selected: 'false' },\n { name: 'JOUR', value: 'jour' },\n { name: 'ASL', value: 'ASJ' },\n { name: 'PROGRAM', value: 'programme' },\n { name: 'INDUSTRIAL', value: 'mois insustriel' },\n { name: 'CALENDAR', value: 'mois calendaire' },\n { name: 'Y', value: 'année' }]\n\n form: FormGroup;\n selectOptIndex;\n dateTextVal;\n dateTextVal2;\n\n constructor(fb: FormBuilder, readonly toastyService: ToastyService, readonly utilService: UtilService) {\n this.form = fb.group({\n day: [''],\n week: [''],\n dayWeek: [''],\n year: [''],\n finDay: [''],\n finWeek: [''],\n finDayWeek: [''],\n finYear: ['']\n });\n }\n\n ngOnInit() { }\n\n ngAfterViewInit() { }\n\n ngOnChanges() {\n if (this.title !== 'POPULATION') {\n this.dateRange = this.groupingDateRange;\n let freeFormat: boolean = true;\n if (this.groupingEditValue) {\n for (const item of this.groupingDateRange) {\n if (this.utilService.getTranslateName(`NEW_QUERY.DATE_GROUPING.${item.value}`) === this.groupingEditValue) {\n this.dateVal = item.value;\n freeFormat = false;\n break;\n }\n }\n if (freeFormat) {\n this.dateVal = 'Free Format';\n this.freeFormatValue = this.groupingEditValue;\n }\n }\n } else {\n this.dateRange = this.populationDateRange;\n let freeFormat: boolean = true;\n this.dateRange[0].selected = false;\n this.dateRange[1].selected = false;\n if (this.groupingEditValue) {\n const value = `${this.selectedListItem.split('[')[1].replace(']', '')}`;\n if (value) {\n this.selectedListItem = this.selectedListItem.substr(0, this.selectedListItem.indexOf('[') - 1);\n }\n if (this.groupingEditValue[0][0] === \"=\") {\n if (this.groupingEditValue[0][1] === \"1\") {\n this.dateVal = this.populationDateRange[0].value;\n this.dateRange[0].selected = true;\n this.selectOptIndex = 0;\n } else {\n this.dateVal = this.populationDateRange[1].value;\n this.dateRange[1].selected = true;\n this.selectOptIndex = 1;\n }\n } else {\n let startDate;\n let endDate;\n if (this.groupingEditValue.length > 2) {\n startDate = this.groupingEditValue[0].split('>=')[1];\n endDate = this.groupingEditValue[2].split('<=')[1];\n } else {\n if (this.groupingEditValue[0][0] === '>') {\n startDate = this.groupingEditValue[0].split('>=')[1];\n } else {\n endDate = this.groupingEditValue[0].split('<=')[1];\n }\n }\n let indexVal = 0;\n for (const item of this.populationDateRange) {\n if (this.editDateVal(item.name) === value) {\n this.dateTextVal = startDate;\n this.dateTextVal2 = endDate;\n this.dateVal = item.value;\n this.selectOptIndex = indexVal;\n this.selectOptIndexChange(undefined);\n freeFormat = false;\n break;\n }\n indexVal = indexVal + 1;\n }\n if (freeFormat) {\n this.dateVal = 'Free Format';\n this.freeFormatValue = this.groupingEditValue;\n }\n }\n }\n }\n }\n\n editDateVal(name) {\n let dateVal;\n if (name !== 'CONNUE' && name !== 'INCONNUE' && name !== 'Y') {\n dateVal = this.utilService.getTranslateName(`NEW_QUERY.DATE_GROUPING.${name}_SAVE`);\n } else {\n dateVal = this.utilService.getTranslateName(`NEW_QUERY.DATE_GROUPING.${name}`);\n }\n return dateVal;\n }\n\n statusOkButton() {\n if (this.selectOptIndex > 1 && !this.dateTextVal) {\n if (this.dateTextVal2) {\n return false;\n }\n return true;\n } else if (this.selectOptIndex > 1 && !this.dateTextVal2) {\n if (this.dateTextVal) {\n return false;\n }\n return true;\n }\n return false;\n }\n\n onCancel() {\n this.blnCancel.emit(true);\n }\n\n getGroupingDateChange(name) {\n for (let item of this.dateRange) {\n if (item.value === name) {\n return this.utilService.getTranslateName(`NEW_QUERY.DATE_GROUPING.${item.value}`);\n }\n }\n }\n\n onOk() {\n if (this.title !== 'POPULATION') {\n if (this.dateVal === 'Free Format') {\n this.groupDateRetrun.emit(this.freeFormatValue);\n } else {\n this.groupDateRetrun.emit(this.getGroupingDateChange(this.dateVal));\n }\n } else {\n if (this.selectOptIndex > 1) {\n if (!this.dateValidation()) {\n return;\n } else {\n let value = {\n date1: this.dateTextVal,\n date2: this.dateTextVal2,\n format: this.dateVal,\n // value: `${startDateVal ? startDateVal : ''}${endDateVal ? endDateVal : ''}`\n value: this.convertDateVal(this.dateRange[this.selectOptIndex].name)\n };\n this.groupDateRetrun.emit(value);\n }\n } else {\n const connueVal = this.dateRange[this.selectOptIndex].value === 'connue' ? '1' : '0';\n let value = {\n date1: this.dateTextVal,\n date2: this.dateTextVal2,\n value: this.convertDateVal(this.dateRange[this.selectOptIndex].name),\n conneValue: connueVal\n };\n this.groupDateRetrun.emit(value);\n }\n }\n // console.log(\"this.dayForm.controls['day']\", this.form.controls['day'].value, this.form.controls['finDay'].value);\n }\n\n convertDateVal(name) {\n let dateVal;\n if (name === 'ASL' || name === 'JOUR' || name === 'PROGRAM' || name === 'INDUSTRIAL' || name === 'CALENDAR') {\n dateVal = this.utilService.getTranslateName(`NEW_QUERY.DATE_GROUPING.${this.dateRange[this.selectOptIndex].name}_SAVE`);\n } else {\n dateVal = this.utilService.getTranslateName(`NEW_QUERY.DATE_GROUPING.${this.dateRange[this.selectOptIndex].name}`)\n }\n return dateVal;\n }\n\n selectOption(idx, event) {\n if (this.title === 'POPULATION') {\n // console.log('idx', this.selectOptIndex, idx, this.dateRange[idx], this.dateVal);\n if (idx > 1) {\n const pIndex = this.selectOptIndex;\n this.selectOptIndex = idx;\n this.selectOptIndexChange(pIndex)\n } else {\n this.dateTextVal = undefined;\n this.dateTextVal2 = undefined;\n this.selectOptIndex = idx;\n }\n }\n }\n\n getDateOfWeek(week, year) {\n let d = (1 + (week - 1) * 7); // 1st of January + 7 days for each week\n if (week < 10) {\n d = (1 + (week) * 7); // 1st of January + 7 days for each week\n return new Date(year, 1, d);\n }\n return new Date(year, 0, d);\n }\n\n getWeekOfMonth(year, month_number) {\n\n // month_number is in the range 1..12\n\n var firstOfMonth = new Date(year, month_number - 1, 1);\n var lastOfMonth = new Date(year, month_number, 0);\n\n var used = firstOfMonth.getDay() + 6 + lastOfMonth.getDate();\n\n // return Math.ceil(used / 7);\n return this.getWeek(year, month_number, 1);\n }\n\n getWeek(year, month, day) {\n if (month !== 1) {\n month = month - 1;\n }\n //lets calc weeknumber the cruel and hard way :D\n //Find JulianDay \n month += 1; //use 1-12\n var a = Math.floor((14 - (month)) / 12);\n var y = year + 4800 - a;\n var m = (month) + (12 * a) - 3;\n var jd = day + Math.floor(((153 * m) + 2) / 5) +\n (365 * y) + Math.floor(y / 4) - Math.floor(y / 100) +\n Math.floor(y / 400) - 32045; // (gregorian calendar)\n //var jd = (day+1)+Math.Round(((153*m)+2)/5)+(365+y) + \n // Math.round(y/4)-32083; // (julian calendar)\n\n //now calc weeknumber according to JD\n var d4 = (jd + 31741 - (jd % 7)) % 146097 % 36524 % 1461;\n var L = Math.floor(d4 / 1460);\n var d1 = ((d4 - L) % 365) + L;\n const NumberOfWeek = Math.floor(d1 / 7) + 1;\n if (month === 1) {\n return 1;\n }\n return NumberOfWeek;\n }\n\n getWeekOfDate(year, month, day) {\n return this.getWeek(year, month, 1) + Math.floor(day / 7);\n }\n\n selectOptIndexChange(pIndex) {\n if (this.selectOptIndex === 2) {\n if (pIndex === 4) {\n if (this.dateTextVal) {\n const dateVal = this.getDateOfWeek(parseInt(this.dateTextVal.split(\"/\")[0]), parseInt(this.dateTextVal.split(\"/\")[1]));\n this.dateTextVal = (dateVal.getDate() < 10 ? '0' + dateVal.getDate() : dateVal.getDate()) + '/' + (dateVal.getMonth() < 10 ? '0' + dateVal.getMonth() : dateVal.getMonth()) + '/' + dateVal.getFullYear();\n }\n if (this.dateTextVal2) {\n const dateVal1 = this.getDateOfWeek(parseInt(this.dateTextVal2.split(\"/\")[0]), parseInt(this.dateTextVal2.split(\"/\")[1]));\n this.dateTextVal2 = (dateVal1.getDate() < 10 ? '0' + dateVal1.getDate() : dateVal1.getDate()) + '/' + (dateVal1.getMonth() < 10 ? '0' + dateVal1.getMonth() : dateVal1.getMonth()) + '/' + dateVal1.getFullYear();\n }\n } else if (pIndex === 3) {\n if (this.dateTextVal) {\n const dateVal = this.getDateOfWeek(parseInt(this.dateTextVal.split(\"/\")[1]), parseInt(this.dateTextVal.split(\"/\")[2]));\n this.dateTextVal = (dateVal.getDate() < 10 ? '0' + dateVal.getDate() : dateVal.getDate()) + '/' + (dateVal.getMonth() < 10 ? '0' + dateVal.getMonth() : dateVal.getMonth()) + '/' + dateVal.getFullYear();\n }\n if (this.dateTextVal2) {\n const dateVal1 = this.getDateOfWeek(parseInt(this.dateTextVal2.split(\"/\")[1]), parseInt(this.dateTextVal2.split(\"/\")[2]));\n this.dateTextVal2 = (dateVal1.getDate() < 10 ? '0' + dateVal1.getDate() : dateVal1.getDate()) + '/' + (dateVal1.getMonth() < 10 ? '0' + dateVal1.getMonth() : dateVal1.getMonth()) + '/' + dateVal1.getFullYear();\n }\n } else if (pIndex === 5 || pIndex === 6) {\n if (this.dateTextVal) {\n this.dateTextVal = '01/' + this.dateTextVal.split(\"/\")[0] + '/' + this.dateTextVal.split(\"/\")[1];\n }\n if (this.dateTextVal2) {\n this.dateTextVal2 = '01/' + this.dateTextVal2.split(\"/\")[0] + '/' + this.dateTextVal2.split(\"/\")[1];\n }\n } else if (pIndex === 7) {\n if (this.dateTextVal) {\n this.dateTextVal = '01/01/' + this.dateTextVal;\n }\n if (this.dateTextVal2) {\n this.dateTextVal2 = '01/01/' + this.dateTextVal2;\n }\n }\n } else if (this.selectOptIndex === 5 || this.selectOptIndex === 6) {\n if (pIndex === 2) {\n if (this.dateTextVal) {\n this.dateTextVal = this.dateTextVal.split(\"/\")[1] + '/' + this.dateTextVal.split(\"/\")[2];\n }\n if (this.dateTextVal2) {\n this.dateTextVal2 = this.dateTextVal2.split(\"/\")[1] + '/' + this.dateTextVal2.split(\"/\")[2];\n }\n } else if (pIndex === 4) {\n if (this.dateTextVal) {\n const dateVal = this.getDateOfWeek(parseInt(this.dateTextVal.split(\"/\")[0]), parseInt(this.dateTextVal.split(\"/\")[1]));\n this.dateTextVal = (dateVal.getMonth() < 10 ? '0' + dateVal.getMonth() : dateVal.getMonth()) + '/' + dateVal.getFullYear();\n }\n if (this.dateTextVal2) {\n const dateVal1 = this.getDateOfWeek(parseInt(this.dateTextVal2.split(\"/\")[0]), parseInt(this.dateTextVal2.split(\"/\")[1]));\n this.dateTextVal2 = (dateVal1.getMonth() < 10 ? '0' + dateVal1.getMonth() : dateVal1.getMonth()) + '/' + dateVal1.getFullYear();\n }\n } else if (pIndex === 3) {\n if (this.dateTextVal) {\n const dateVal = this.getDateOfWeek(parseInt(this.dateTextVal.split(\"/\")[1]), parseInt(this.dateTextVal.split(\"/\")[2]));\n this.dateTextVal = (dateVal.getMonth() < 10 ? '0' + dateVal.getMonth() : dateVal.getMonth()) + '/' + dateVal.getFullYear();\n }\n if (this.dateTextVal2) {\n const dateVal1 = this.getDateOfWeek(parseInt(this.dateTextVal2.split(\"/\")[1]), parseInt(this.dateTextVal2.split(\"/\")[2]));\n this.dateTextVal2 = (dateVal1.getMonth() < 10 ? '0' + dateVal1.getMonth() : dateVal1.getMonth()) + '/' + dateVal1.getFullYear();\n }\n } else if (pIndex === 7) {\n if (this.dateTextVal) {\n this.dateTextVal = '01/' + this.dateTextVal;\n }\n if (this.dateTextVal2) {\n this.dateTextVal2 = '01/' + this.dateTextVal2;\n }\n }\n } else if (this.selectOptIndex === 7) {\n if (this.dateTextVal) {\n if (this.dateTextVal.replace(\"/\", \"\").replace(\"/\", \"\").length > 6) {\n this.dateTextVal = this.dateTextVal.split(\"/\")[2];\n } else if (this.dateTextVal.replace(\"/\", \"\").replace(\"/\", \"\").length === 6) {\n this.dateTextVal = this.dateTextVal.split(\"/\")[1];\n }\n }\n if (this.dateTextVal2) {\n if (this.dateTextVal2.replace(\"/\", \"\").replace(\"/\", \"\").length > 6) {\n this.dateTextVal2 = this.dateTextVal2.split(\"/\")[2];\n } else if (this.dateTextVal2.replace(\"/\", \"\").replace(\"/\", \"\").length === 6) {\n this.dateTextVal2 = this.dateTextVal2.split(\"/\")[1];\n }\n }\n } else if (this.selectOptIndex === 4) {\n if (pIndex === 5 || pIndex === 6) {\n if (this.dateTextVal) {\n const val = this.getWeekOfMonth(this.dateTextVal.split(\"/\")[1], this.dateTextVal.split(\"/\")[0]);\n this.dateTextVal = (val < 10 ? '0' + val : val) + '/' + this.dateTextVal.split(\"/\")[1];\n }\n if (this.dateTextVal2) {\n const val1 = this.getWeekOfMonth(this.dateTextVal2.split(\"/\")[1], this.dateTextVal2.split(\"/\")[0]);\n this.dateTextVal2 = (val1 < 10 ? '0' + val1 : val1) + '/' + this.dateTextVal2.split(\"/\")[1];\n }\n } else if (pIndex === 2) {\n if (this.dateTextVal) {\n const val = this.getWeekOfDate(this.dateTextVal.split(\"/\")[2], this.dateTextVal.split(\"/\")[1], this.dateTextVal.split(\"/\")[0]);\n this.dateTextVal = (val < 10 ? '0' + val : val) + '/' + this.dateTextVal.split(\"/\")[2];\n }\n if (this.dateTextVal2) {\n const val1 = this.getWeekOfDate(this.dateTextVal2.split(\"/\")[2], this.dateTextVal2.split(\"/\")[1], this.dateTextVal2.split(\"/\")[0]);\n this.dateTextVal2 = (val1 < 10 ? '0' + val1 : val1) + '/' + this.dateTextVal2.split(\"/\")[2];\n }\n } else if (pIndex === 3) {\n if (this.dateTextVal) {\n this.dateTextVal = this.dateTextVal.split(\"/\")[1] + '/' + this.dateTextVal.split(\"/\")[2];\n }\n if (this.dateTextVal2) {\n this.dateTextVal2 = this.dateTextVal2.split(\"/\")[1] + '/' + this.dateTextVal2.split(\"/\")[2];\n }\n } else if (pIndex === 7) {\n if (this.dateTextVal) {\n this.dateTextVal = '01/' + this.dateTextVal;\n }\n if (this.dateTextVal2) {\n this.dateTextVal2 = '01/' + this.dateTextVal2;\n }\n }\n } else if (this.selectOptIndex === 3) {\n if (pIndex === 5 || pIndex === 6) {\n if (this.dateTextVal) {\n const val = this.getWeekOfMonth(this.dateTextVal.split(\"/\")[1], this.dateTextVal.split(\"/\")[0]);\n this.dateTextVal = '1/' + (val < 10 ? '0' + val : val) + '/' + this.dateTextVal.split(\"/\")[1];\n }\n if (this.dateTextVal2) {\n const val1 = this.getWeekOfMonth(this.dateTextVal2.split(\"/\")[1], this.dateTextVal2.split(\"/\")[0]);\n this.dateTextVal2 = '1/' + (val1 < 10 ? '0' + val1 : val1) + '/' + this.dateTextVal2.split(\"/\")[1];\n }\n } else if (pIndex === 2) {\n if (this.dateTextVal) {\n const val = this.getWeekOfDate(this.dateTextVal.split(\"/\")[2], this.dateTextVal.split(\"/\")[1], this.dateTextVal.split(\"/\")[0]);\n this.dateTextVal = '1/' + (val < 10 ? '0' + val : val) + '/' + this.dateTextVal.split(\"/\")[2];\n }\n if (this.dateTextVal2) {\n const val1 = this.getWeekOfDate(this.dateTextVal2.split(\"/\")[2], this.dateTextVal2.split(\"/\")[1], this.dateTextVal2.split(\"/\")[0]);\n this.dateTextVal2 = '1/' + (val1 < 10 ? '0' + val1 : val1) + '/' + this.dateTextVal2.split(\"/\")[2];\n }\n } else if (pIndex === 4) {\n if (this.dateTextVal) {\n this.dateTextVal = '1/' + this.dateTextVal.split(\"/\")[0] + '/' + this.dateTextVal.split(\"/\")[1];\n }\n if (this.dateTextVal2) {\n this.dateTextVal2 = '1/' + this.dateTextVal2.split(\"/\")[0] + '/' + this.dateTextVal2.split(\"/\")[1];\n }\n } else if (pIndex === 7) {\n if (this.dateTextVal) {\n this.dateTextVal = '1/' + '01/' + this.dateTextVal;\n }\n if (this.dateTextVal2) {\n this.dateTextVal2 = '1/' + '01/' + this.dateTextVal2;\n }\n }\n }\n }\n\n isLeapYear(year) {\n return year % 400 === 0 || (year % 100 !== 0 && year % 4 === 0);\n }\n\n daysOfAYear(year) {\n\n return this.isLeapYear(year) ? 366 : 365;\n }\n\n lastWeeksInYear(year) {\n return Math.ceil(this.daysOfAYear(year) / 7);\n }\n\n dateValidation() {\n const curYearVal = new Date().getFullYear() + 10;\n if (this.dateTextVal) {\n if (this.dateTextVal.replace('/', '').replace('/', '').length < 4) {\n this.toastyService.warning(\"Invalid Format\");\n return;\n }\n if (this.selectOptIndex === 2) {\n if (this.dateTextVal.replace('/', '').replace('/', '').length < 5) {\n this.toastyService.warning(\"Invalid Format\");\n return;\n }\n let val = this.dateTextVal.split('/');\n const dateVal = new Date(`${val[2]}/${val[1]}/01`);\n const lastDayOfMonth = new Date(dateVal.getFullYear(), dateVal.getMonth() + 1, 0);\n if (parseInt(val[0]) > lastDayOfMonth.getDate() || parseInt(val[0]) < 1) {\n this.toastyService.warning(\"Invalid Date\");\n return false;\n } else if (parseInt(val[1]) > 12 || parseInt(val[1]) < 1) {\n this.toastyService.warning(\"Invalid Month\");\n return false;\n } else if (val[2].length !== 4 || parseInt(val[2]) > curYearVal || parseInt(val[2]) < (curYearVal - 50)) {\n this.toastyService.warning(\"Invalid Year\");\n return false;\n }\n } else if (this.selectOptIndex === 5 || this.selectOptIndex === 6) {\n let val = this.dateTextVal.split('/');\n let dateVal = new Date(`${val[2]}/${val[1]}/${val[0]}`);\n if (parseInt(val[0]) > 12 || parseInt(val[0]) < 1) {\n this.toastyService.warning(\"Invalid Month\");\n return false;\n } else if (val[1].length !== 4 || parseInt(val[1]) > curYearVal || parseInt(val[1]) < (curYearVal - 50)) {\n this.toastyService.warning(\"Invalid Year\");\n return false;\n }\n } else if (this.selectOptIndex === 4) {\n let val = this.dateTextVal.split('/');\n if (parseInt(val[0]) > this.lastWeeksInYear(val[1]) || parseInt(val[0]) < 1) {\n this.toastyService.warning(\"Invalid Week\");\n return false;\n } else if (val[1].length !== 4 || parseInt(val[1]) > curYearVal || parseInt(val[1]) < (curYearVal - 50)) {\n this.toastyService.warning(\"Invalid Year\");\n return false;\n }\n } else if (this.selectOptIndex === 3) {\n let val = this.dateTextVal.split('/');\n if (parseInt(val[0]) > 7 || parseInt(val[0]) < 1) {\n this.toastyService.warning(\"Invalid Day\");\n return false;\n } else if (parseInt(val[1]) > this.lastWeeksInYear(val[2]) || parseInt(val[1]) < 1) {\n this.toastyService.warning(\"Invalid Week\");\n return false;\n } else if (val[2].length !== 4 || parseInt(val[2]) > curYearVal || parseInt(val[2]) < (curYearVal - 50)) {\n this.toastyService.warning(\"Invalid Year\");\n return false;\n }\n } else if (this.selectOptIndex === 7) {\n let val = this.dateTextVal;\n if (val.length !== 4 || parseInt(val) > curYearVal || parseInt(val) < (curYearVal - 50)) {\n this.toastyService.warning(\"Invalid Year\");\n return false;\n }\n }\n } else {\n return true;\n }\n\n if (this.dateTextVal2) {\n if (this.dateTextVal2.replace('/', '').replace('/', '').length < 4) {\n this.toastyService.warning(\"Invalid Format\");\n return;\n }\n if (this.selectOptIndex === 2) {\n if (this.dateTextVal2.replace('/', '').replace('/', '').length < 5) {\n this.toastyService.warning(\"Invalid Format\");\n return;\n }\n let val = this.dateTextVal2.split('/');\n const dateVal = new Date(`${val[2]}/${val[1]}/01`);\n const lastDayOfMonth = new Date(dateVal.getFullYear(), dateVal.getMonth() + 1, 0);\n if (parseInt(val[0]) > lastDayOfMonth.getDate() || parseInt(val[0]) < 1) {\n this.toastyService.warning(\"Invalid Date\");\n return false;\n } else if (parseInt(val[1]) > 12 || parseInt(val[1]) < 1) {\n this.toastyService.warning(\"Invalid Month\");\n return false;\n } else if (val[2].length !== 4 || parseInt(val[2]) > curYearVal || parseInt(val[2]) < (curYearVal - 50)) {\n this.toastyService.warning(\"Invalid Year\");\n return false;\n }\n } else if (this.selectOptIndex === 5 || this.selectOptIndex === 6) {\n let val = this.dateTextVal2.split('/');\n let dateVal = new Date(`${val[2]}/${val[1]}/${val[0]}`);\n if (parseInt(val[0]) > 12 || parseInt(val[0]) < 1) {\n this.toastyService.warning(\"Invalid Month\");\n return false;\n } else if (val[1].length !== 4 || parseInt(val[1]) > curYearVal || parseInt(val[1]) < (curYearVal - 50)) {\n this.toastyService.warning(\"Invalid Year\");\n return false;\n }\n } else if (this.selectOptIndex === 4) {\n let val = this.dateTextVal2.split('/');\n if (parseInt(val[0]) > this.lastWeeksInYear(val[1]) || parseInt(val[0]) < 1) {\n this.toastyService.warning(\"Invalid Week\");\n return false;\n } else if (val[1].length !== 4 || parseInt(val[1]) > curYearVal || parseInt(val[1]) < (curYearVal - 50)) {\n this.toastyService.warning(\"Invalid Year\");\n return false;\n }\n } else if (this.selectOptIndex === 3) {\n let val = this.dateTextVal2.split('/');\n if (parseInt(val[0]) > 7 || parseInt(val[0]) < 1) {\n this.toastyService.warning(\"Invalid Day\");\n return false;\n } else if (parseInt(val[1]) > this.lastWeeksInYear(val[2]) || parseInt(val[1]) < 1) {\n this.toastyService.warning(\"Invalid Week\");\n return false;\n } else if (val[2].length !== 4 || parseInt(val[2]) > curYearVal || parseInt(val[2]) < (curYearVal - 50)) {\n this.toastyService.warning(\"Invalid Year\");\n return false;\n }\n } else if (this.selectOptIndex === 7) {\n let val = this.dateTextVal2;\n if (val.length !== 4 || parseInt(val) > curYearVal || parseInt(val) < (curYearVal - 50)) {\n this.toastyService.warning(\"Invalid Year\");\n return false;\n }\n }\n\n return true;\n } else {\n return true;\n }\n }\n\n}\n","export default \".delayCondition {\\n background-color: #009CA6;\\n color: #ffffff;\\n height: 315px;\\n}\\n.delayCondition .title-span {\\n font-family: Roboto, \\\"Helvetica Neue\\\", sans-serif;\\n font-size: 14px;\\n font-weight: 500;\\n line-height: 17px;\\n}\\n.delayCondition .title-span-Abbr {\\n font-family: Roboto, \\\"Helvetica Neue\\\", sans-serif;\\n font-size: 14px;\\n font-weight: 600;\\n line-height: 17px;\\n padding: 10px 0 10px 0;\\n}\\n.delayCondition .text-span {\\n font-family: Roboto, \\\"Helvetica Neue\\\", sans-serif;\\n font-size: 11px;\\n font-weight: 400;\\n line-height: 28px;\\n}\\n.delayCondition .text-span-wo-line-height {\\n font-family: Roboto, \\\"Helvetica Neue\\\", sans-serif;\\n font-size: 11px;\\n font-weight: 400;\\n}\\n.delayCondition .text-span-font {\\n font-family: Roboto, \\\"Helvetica Neue\\\", sans-serif;\\n font-size: 11px;\\n font-weight: 400;\\n}\\n.delayCondition .date-radio-group {\\n display: flex;\\n flex-direction: column;\\n}\\n.delayCondition .date-radio-button {\\n margin: 3px;\\n}\\n.delayCondition .date-form-field {\\n right: 5px;\\n}\\n.delayCondition .radio-btn-change .mat-radio-container {\\n margin-top: -13% !important;\\n}\\n.delayCondition .date-confirmation {\\n position: absolute;\\n margin-top: -31%;\\n right: 2%;\\n}\\n.delayCondition .date-confirmation button {\\n width: 75px;\\n height: 36px;\\n font-family: Roboto, \\\"Helvetica Neue\\\", sans-serif;\\n font-size: 13px;\\n font-weight: 500;\\n text-align: center;\\n border: 0px solid;\\n padding: 0 !important;\\n border-radius: 0px;\\n}\\n.delayCondition .date-diffent {\\n position: absolute;\\n margin-top: -29%;\\n right: 42%;\\n}\\n.delayCondition .date-diffent button {\\n width: 75px;\\n height: 36px;\\n font-family: Roboto, \\\"Helvetica Neue\\\", sans-serif;\\n font-size: 13px;\\n font-weight: 500;\\n text-align: center;\\n border: 0px solid;\\n padding: 0 !important;\\n border-radius: 0px;\\n}\\n.delayCondition .abbrevation-card {\\n padding: 1px 0px 3px 5px;\\n color: #bbbcbc;\\n}\\n.delayCondition .mat-form-field {\\n margin-left: 10px;\\n}\\n.delayCondition .myPanelClass {\\n margin-top: 30px !important;\\n}\\n.delayCondition input::-webkit-outer-spin-button,\\n.delayCondition input::-webkit-inner-spin-button {\\n -webkit-appearance: none;\\n margin: 0;\\n}\\n/*# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi91c3Ivc3JjL3NyYy9hcHAvY29tcG9uZW50L3F1ZXJ5L2dyb3VwaW5nL2RlbGF5LWNvbmRpdGlvbi9kZWxheS1jb25kaXRpb24uY29tcG9uZW50LnNjc3MiLCJzcmMvYXBwL2NvbXBvbmVudC9xdWVyeS9ncm91cGluZy9kZWxheS1jb25kaXRpb24vZGVsYXktY29uZGl0aW9uLmNvbXBvbmVudC5zY3NzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUVBO0VBQ0UseUJBQUE7RUFDQSxjQUFBO0VBQ0EsYUFBQTtBQ0RGO0FER0E7RUFDSSxpREFBQTtFQUNBLGVBQUE7RUFDQSxnQkFBQTtFQUNBLGlCQUFBO0FDREo7QURJQTtFQUNJLGlEQUFBO0VBQ0EsZUFBQTtFQUNBLGdCQUFBO0VBQ0EsaUJBQUE7RUFDQSxzQkFBQTtBQ0ZKO0FES0E7RUFDSSxpREFBQTtFQUNBLGVBQUE7RUFDQSxnQkFBQTtFQUNBLGlCQUFBO0FDSEo7QURPQTtFQUNJLGlEQUFBO0VBQ0EsZUFBQTtFQUNBLGdCQUFBO0FDTEo7QURTQTtFQUNJLGlEQUFBO0VBQ0EsZUFBQTtFQUNBLGdCQUFBO0FDUEo7QURXRTtFQUNFLGFBQUE7RUFDQSxzQkFBQTtBQ1RKO0FEWUU7RUFDRSxXQUFBO0FDVko7QURZRTtFQUNFLFVBQUE7QUNWSjtBRGFJO0VBQ0UsMkJBQUE7QUNYTjtBRGNFO0VBQ0Usa0JBQUE7RUFDQSxnQkFBQTtFQUNBLFNBQUE7QUNaSjtBRGFJO0VBRUUsV0FBQTtFQUNBLFlBQUE7RUFDQSxpREFBQTtFQUNBLGVBQUE7RUFDQSxnQkFBQTtFQUNBLGtCQUFBO0VBQ0EsaUJBQUE7RUFDQSxxQkFBQTtFQUNBLGtCQUFBO0FDWk47QURlRTtFQUNFLGtCQUFBO0VBQ0EsZ0JBQUE7RUFDQSxVQUFBO0FDYko7QURjSTtFQUVFLFdBQUE7RUFDQSxZQUFBO0VBQ0EsaURBQUE7RUFDQSxlQUFBO0VBQ0EsZ0JBQUE7RUFDQSxrQkFBQTtFQUNBLGlCQUFBO0VBQ0EscUJBQUE7RUFDQSxrQkFBQTtBQ2JOO0FEZ0JFO0VBQ0Usd0JBQUE7RUFDQSxjQUFBO0FDZEo7QURnQkU7RUFFRSxpQkFBQTtBQ2ZKO0FEaUJFO0VBQ0UsMkJBQUE7QUNmSjtBRGtCUTs7RUFFQSx3QkFBQTtFQUNBLFNBQUE7QUNoQlIiLCJmaWxlIjoic3JjL2FwcC9jb21wb25lbnQvcXVlcnkvZ3JvdXBpbmcvZGVsYXktY29uZGl0aW9uL2RlbGF5LWNvbmRpdGlvbi5jb21wb25lbnQuc2NzcyIsInNvdXJjZXNDb250ZW50IjpbIlxuLy8gRGVsYXkgZ3JvdXBcbi5kZWxheUNvbmRpdGlvbiB7XG4gIGJhY2tncm91bmQtY29sb3I6ICMwMDlDQTY7XG4gIGNvbG9yOiAjZmZmZmZmO1xuICBoZWlnaHQ6IDMxNXB4O1xuICBcbi50aXRsZS1zcGFue1xuICAgIGZvbnQtZmFtaWx5OiBSb2JvdG8sIFwiSGVsdmV0aWNhIE5ldWVcIiwgc2Fucy1zZXJpZjtcbiAgICBmb250LXNpemU6IDE0cHg7XG4gICAgZm9udC13ZWlnaHQ6IDUwMDtcbiAgICBsaW5lLWhlaWdodDogMTdweDtcbn1cblxuLnRpdGxlLXNwYW4tQWJicntcbiAgICBmb250LWZhbWlseTogUm9ib3RvLCBcIkhlbHZldGljYSBOZXVlXCIsIHNhbnMtc2VyaWY7XG4gICAgZm9udC1zaXplOiAxNHB4O1xuICAgIGZvbnQtd2VpZ2h0OiA2MDA7XG4gICAgbGluZS1oZWlnaHQ6IDE3cHg7XG4gICAgcGFkZGluZzogMTBweCAwIDEwcHggMDtcbn1cblxuLnRleHQtc3BhbntcbiAgICBmb250LWZhbWlseTogUm9ib3RvLCBcIkhlbHZldGljYSBOZXVlXCIsIHNhbnMtc2VyaWY7XG4gICAgZm9udC1zaXplOiAxMXB4O1xuICAgIGZvbnQtd2VpZ2h0OiA0MDA7XG4gICAgbGluZS1oZWlnaHQ6IDI4cHg7XG4gICAgLy8gbWFyZ2luLWxlZnQ6IC00cHg7XG59XG5cbi50ZXh0LXNwYW4td28tbGluZS1oZWlnaHR7XG4gICAgZm9udC1mYW1pbHk6IFJvYm90bywgXCJIZWx2ZXRpY2EgTmV1ZVwiLCBzYW5zLXNlcmlmO1xuICAgIGZvbnQtc2l6ZTogMTFweDtcbiAgICBmb250LXdlaWdodDogNDAwO1xuICAgIC8vIG1hcmdpbi1sZWZ0OiAtNHB4O1xufVxuXG4udGV4dC1zcGFuLWZvbnR7XG4gICAgZm9udC1mYW1pbHk6IFJvYm90bywgXCJIZWx2ZXRpY2EgTmV1ZVwiLCBzYW5zLXNlcmlmO1xuICAgIGZvbnQtc2l6ZTogMTFweDtcbiAgICBmb250LXdlaWdodDogNDAwO1xuICAgIC8vIG1hcmdpbi1sZWZ0OiAtNHB4O1xufVxuXG4gIC5kYXRlLXJhZGlvLWdyb3VwIHtcbiAgICBkaXNwbGF5OiBmbGV4O1xuICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XG4gICAgLy8gbWFyZ2luOiAxNXB4IDA7XG4gIH1cbiAgLmRhdGUtcmFkaW8tYnV0dG9uIHtcbiAgICBtYXJnaW46IDNweDtcbiAgfVxuICAuZGF0ZS1mb3JtLWZpZWxkIHtcbiAgICByaWdodDo1cHg7XG4gIH1cbiAgLnJhZGlvLWJ0bi1jaGFuZ2Uge1xuICAgIC5tYXQtcmFkaW8tY29udGFpbmVyIHtcbiAgICAgIG1hcmdpbi10b3A6IC0xMyUgIWltcG9ydGFudDtcbiAgICB9XG4gIH1cbiAgLmRhdGUtY29uZmlybWF0aW9uIHtcbiAgICBwb3NpdGlvbjphYnNvbHV0ZTtcbiAgICBtYXJnaW4tdG9wOi0zMSU7XG4gICAgcmlnaHQ6MiU7XG4gICAgYnV0dG9uIHtcbiAgICAgIC8vIG1hcmdpbjogMCAxMHB4OyAgICAgIFxuICAgICAgd2lkdGg6IDc1cHg7XG4gICAgICBoZWlnaHQ6IDM2cHg7XG4gICAgICBmb250LWZhbWlseTogUm9ib3RvLFwiSGVsdmV0aWNhIE5ldWVcIixzYW5zLXNlcmlmO1xuICAgICAgZm9udC1zaXplOiAxM3B4O1xuICAgICAgZm9udC13ZWlnaHQ6IDUwMDtcbiAgICAgIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgICAgIGJvcmRlcjogMHB4IHNvbGlkO1xuICAgICAgcGFkZGluZzogMCAhaW1wb3J0YW50O1xuICAgICAgYm9yZGVyLXJhZGl1czogMHB4O1xuICAgIH1cbiAgfVxuICAuZGF0ZS1kaWZmZW50IHtcbiAgICBwb3NpdGlvbjphYnNvbHV0ZTtcbiAgICBtYXJnaW4tdG9wOi0yOSU7XG4gICAgcmlnaHQ6NDIlO1xuICAgIGJ1dHRvbiB7XG4gICAgICAvLyBtYXJnaW46IDAgMTBweDsgICAgICBcbiAgICAgIHdpZHRoOiA3NXB4O1xuICAgICAgaGVpZ2h0OiAzNnB4O1xuICAgICAgZm9udC1mYW1pbHk6IFJvYm90byxcIkhlbHZldGljYSBOZXVlXCIsc2Fucy1zZXJpZjtcbiAgICAgIGZvbnQtc2l6ZTogMTNweDtcbiAgICAgIGZvbnQtd2VpZ2h0OiA1MDA7XG4gICAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gICAgICBib3JkZXI6IDBweCBzb2xpZDtcbiAgICAgIHBhZGRpbmc6IDAgIWltcG9ydGFudDtcbiAgICAgIGJvcmRlci1yYWRpdXM6IDBweDtcbiAgICB9XG4gIH1cbiAgLmFiYnJldmF0aW9uLWNhcmQge1xuICAgIHBhZGRpbmc6IDFweCAwcHggM3B4IDVweDtcbiAgICBjb2xvcjogI2JiYmNiYztcbiAgfVxuICAubWF0LWZvcm0tZmllbGQge1xuICAgIC8vIGRpc3BsYXk6IGlubGluZSAhaW1wb3J0YW50O1xuICAgIG1hcmdpbi1sZWZ0OiAxMHB4O1xuICB9XG4gIC5teVBhbmVsQ2xhc3N7XG4gICAgbWFyZ2luLXRvcDogMzBweCAhaW1wb3J0YW50OyBcbn1cblxuICAgICAgICBpbnB1dDo6LXdlYmtpdC1vdXRlci1zcGluLWJ1dHRvbixcbiAgICAgICAgaW5wdXQ6Oi13ZWJraXQtaW5uZXItc3Bpbi1idXR0b24ge1xuICAgICAgICAtd2Via2l0LWFwcGVhcmFuY2U6IG5vbmU7XG4gICAgICAgIG1hcmdpbjogMDtcbiAgICAgICAgfVxufSIsIi5kZWxheUNvbmRpdGlvbiB7XG4gIGJhY2tncm91bmQtY29sb3I6ICMwMDlDQTY7XG4gIGNvbG9yOiAjZmZmZmZmO1xuICBoZWlnaHQ6IDMxNXB4O1xufVxuLmRlbGF5Q29uZGl0aW9uIC50aXRsZS1zcGFuIHtcbiAgZm9udC1mYW1pbHk6IFJvYm90bywgXCJIZWx2ZXRpY2EgTmV1ZVwiLCBzYW5zLXNlcmlmO1xuICBmb250LXNpemU6IDE0cHg7XG4gIGZvbnQtd2VpZ2h0OiA1MDA7XG4gIGxpbmUtaGVpZ2h0OiAxN3B4O1xufVxuLmRlbGF5Q29uZGl0aW9uIC50aXRsZS1zcGFuLUFiYnIge1xuICBmb250LWZhbWlseTogUm9ib3RvLCBcIkhlbHZldGljYSBOZXVlXCIsIHNhbnMtc2VyaWY7XG4gIGZvbnQtc2l6ZTogMTRweDtcbiAgZm9udC13ZWlnaHQ6IDYwMDtcbiAgbGluZS1oZWlnaHQ6IDE3cHg7XG4gIHBhZGRpbmc6IDEwcHggMCAxMHB4IDA7XG59XG4uZGVsYXlDb25kaXRpb24gLnRleHQtc3BhbiB7XG4gIGZvbnQtZmFtaWx5OiBSb2JvdG8sIFwiSGVsdmV0aWNhIE5ldWVcIiwgc2Fucy1zZXJpZjtcbiAgZm9udC1zaXplOiAxMXB4O1xuICBmb250LXdlaWdodDogNDAwO1xuICBsaW5lLWhlaWdodDogMjhweDtcbn1cbi5kZWxheUNvbmRpdGlvbiAudGV4dC1zcGFuLXdvLWxpbmUtaGVpZ2h0IHtcbiAgZm9udC1mYW1pbHk6IFJvYm90bywgXCJIZWx2ZXRpY2EgTmV1ZVwiLCBzYW5zLXNlcmlmO1xuICBmb250LXNpemU6IDExcHg7XG4gIGZvbnQtd2VpZ2h0OiA0MDA7XG59XG4uZGVsYXlDb25kaXRpb24gLnRleHQtc3Bhbi1mb250IHtcbiAgZm9udC1mYW1pbHk6IFJvYm90bywgXCJIZWx2ZXRpY2EgTmV1ZVwiLCBzYW5zLXNlcmlmO1xuICBmb250LXNpemU6IDExcHg7XG4gIGZvbnQtd2VpZ2h0OiA0MDA7XG59XG4uZGVsYXlDb25kaXRpb24gLmRhdGUtcmFkaW8tZ3JvdXAge1xuICBkaXNwbGF5OiBmbGV4O1xuICBmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xufVxuLmRlbGF5Q29uZGl0aW9uIC5kYXRlLXJhZGlvLWJ1dHRvbiB7XG4gIG1hcmdpbjogM3B4O1xufVxuLmRlbGF5Q29uZGl0aW9uIC5kYXRlLWZvcm0tZmllbGQge1xuICByaWdodDogNXB4O1xufVxuLmRlbGF5Q29uZGl0aW9uIC5yYWRpby1idG4tY2hhbmdlIC5tYXQtcmFkaW8tY29udGFpbmVyIHtcbiAgbWFyZ2luLXRvcDogLTEzJSAhaW1wb3J0YW50O1xufVxuLmRlbGF5Q29uZGl0aW9uIC5kYXRlLWNvbmZpcm1hdGlvbiB7XG4gIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgbWFyZ2luLXRvcDogLTMxJTtcbiAgcmlnaHQ6IDIlO1xufVxuLmRlbGF5Q29uZGl0aW9uIC5kYXRlLWNvbmZpcm1hdGlvbiBidXR0b24ge1xuICB3aWR0aDogNzVweDtcbiAgaGVpZ2h0OiAzNnB4O1xuICBmb250LWZhbWlseTogUm9ib3RvLCBcIkhlbHZldGljYSBOZXVlXCIsIHNhbnMtc2VyaWY7XG4gIGZvbnQtc2l6ZTogMTNweDtcbiAgZm9udC13ZWlnaHQ6IDUwMDtcbiAgdGV4dC1hbGlnbjogY2VudGVyO1xuICBib3JkZXI6IDBweCBzb2xpZDtcbiAgcGFkZGluZzogMCAhaW1wb3J0YW50O1xuICBib3JkZXItcmFkaXVzOiAwcHg7XG59XG4uZGVsYXlDb25kaXRpb24gLmRhdGUtZGlmZmVudCB7XG4gIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgbWFyZ2luLXRvcDogLTI5JTtcbiAgcmlnaHQ6IDQyJTtcbn1cbi5kZWxheUNvbmRpdGlvbiAuZGF0ZS1kaWZmZW50IGJ1dHRvbiB7XG4gIHdpZHRoOiA3NXB4O1xuICBoZWlnaHQ6IDM2cHg7XG4gIGZvbnQtZmFtaWx5OiBSb2JvdG8sIFwiSGVsdmV0aWNhIE5ldWVcIiwgc2Fucy1zZXJpZjtcbiAgZm9udC1zaXplOiAxM3B4O1xuICBmb250LXdlaWdodDogNTAwO1xuICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gIGJvcmRlcjogMHB4IHNvbGlkO1xuICBwYWRkaW5nOiAwICFpbXBvcnRhbnQ7XG4gIGJvcmRlci1yYWRpdXM6IDBweDtcbn1cbi5kZWxheUNvbmRpdGlvbiAuYWJicmV2YXRpb24tY2FyZCB7XG4gIHBhZGRpbmc6IDFweCAwcHggM3B4IDVweDtcbiAgY29sb3I6ICNiYmJjYmM7XG59XG4uZGVsYXlDb25kaXRpb24gLm1hdC1mb3JtLWZpZWxkIHtcbiAgbWFyZ2luLWxlZnQ6IDEwcHg7XG59XG4uZGVsYXlDb25kaXRpb24gLm15UGFuZWxDbGFzcyB7XG4gIG1hcmdpbi10b3A6IDMwcHggIWltcG9ydGFudDtcbn1cbi5kZWxheUNvbmRpdGlvbiBpbnB1dDo6LXdlYmtpdC1vdXRlci1zcGluLWJ1dHRvbixcbi5kZWxheUNvbmRpdGlvbiBpbnB1dDo6LXdlYmtpdC1pbm5lci1zcGluLWJ1dHRvbiB7XG4gIC13ZWJraXQtYXBwZWFyYW5jZTogbm9uZTtcbiAgbWFyZ2luOiAwO1xufSJdfQ== */\"","import { Component, Input, Output, EventEmitter, OnChanges, OnInit } from '@angular/core';\nimport * as moment from 'moment';\nimport { ToastyService } from 'ng2-toasty';\n\nimport { BackendApiService } from '../../../../services/backend-api/backend-api.service';\nimport { UtilService } from '../../../../services/util/util.service';\n\n@Component({\n selector: 'app-delay-condition',\n templateUrl: './delay-condition.component.html',\n styleUrls: ['./delay-condition.component.scss']\n})\nexport class DelayConditionComponent implements OnInit {\n @Input() delayInput;\n @Input() daysData;\n @Input() delayCheckVal;\n @Output() selectedIndex = new EventEmitter();\n @Output() delayOutput = new EventEmitter();\n\n profile = this.utilService.getUserProfile();\n ipn;\n\n selectedOption = 'Jours';\n selectedDiffOption = 0;\n ddValue: string;\n isSubmitted: boolean = false;\n delayOptionSelected = 0;\n\n diffTextValue = 0;\n maxLen = 3;\n\n delayOptions = [{ name: 'DAYS', value: 'Jours', selected: false },\n { name: 'WORKING_DAYS', value: 'Jour ouvres', selected: false },\n { name: 'WEEK', value: 'semaine', selected: false },\n { name: 'CALENDAR', value: 'Mois Calendaire', selected: false },\n { name: 'INDUSTRIAL', value: 'Mois Industriel', selected: false },\n { name: 'Y', value: 'year', selected: false },\n { name: 'FF', value: 'Free Format', selected: false }];\n\n delayDiffOptions = [{ name: 'EQUAL', value: '=', selected: false },\n { name: 'DIFFERENT', value: '<>', selected: false },\n { name: 'INFERIOR_EQUAL', value: '<=', selected: false },\n { name: 'SUPERIOR_EQUAL', value: '>=', selected: false }];\n\n constructor(readonly apiService: BackendApiService, readonly utilService: UtilService, readonly toastyService: ToastyService) {\n this.ipn = this.profile['login']; // sessionStorage.getItem(\"ipn\");\n this.diffTextValue = null;\n }\n\n ngOnInit() {\n }\n\n ngOnChanges() {\n let i = 0;\n let j = 0;\n this.ddValue = undefined;\n if (this.delayInput.value) {\n\n this.diffTextValue = this.delayInput.value[1];\n\n if (this.delayInput.value.length >= 4 && this.delayInput.value[2] === 'Day' || this.delayInput.value[2] === 'Jour') {\n\n for (const item of this.delayDiffOptions) {\n if (item.value === this.delayInput.value[0]) {\n item.selected = true;\n this.selectedDiffOption = j;\n break;\n }\n j = j + 1;\n }\n\n for (const item of this.delayOptions) {\n if (item.value === 'Free Format') {\n item.selected = true;\n this.selectedOption = item.value;\n this.ddValue = this.delayInput.value[3];\n this.isSubmitted = true;\n this.delayOptionSelected = i;\n this.selectOption(i);\n break;\n }\n i = i + 1;\n }\n } else {\n\n for (const item of this.delayDiffOptions) {\n if (item.value === this.delayInput.value[0]) {\n item.selected = true;\n this.selectedDiffOption = j;\n break;\n }\n j = j + 1;\n }\n\n if (this.delayInput.value.length !== 4) {\n for (const item of this.delayOptions) {\n if (`${this.utilService.getTranslateName(`NEW_QUERY.DELAY_LIST.${item.name}`)}` === this.delayInput.value[2]) {\n item.selected = true;\n this.selectedOption = item.value;\n this.isSubmitted = true;\n this.delayOptionSelected = i;\n this.selectOption(i);\n break;\n }\n i = i + 1;\n }\n } else {\n for (const item of this.delayOptions) {\n if (`${this.utilService.getTranslateName(`NEW_QUERY.DELAY_LIST.${item.name}`)}` === `${this.delayInput.value[2]} ${this.delayInput.value[3]}`) {\n item.selected = true;\n this.selectedOption = item.value;\n this.isSubmitted = true;\n this.delayOptionSelected = i;\n this.selectOption(i);\n break;\n }\n i = i + 1;\n }\n }\n }\n if (this.selectedDiffOption === 0) {\n this.delayDiffOptions[0].selected = true;\n }\n } else {\n if (this.selectedDiffOption === 0) {\n this.delayDiffOptions[0].selected = true;\n }\n }\n }\n\n selectDiffOption(index) {\n this.selectedDiffOption = index;\n }\n\n selectOption(index) {\n const previousIndex = this.delayOptionSelected;\n this.delayOptionSelected = index;\n // console.log('delayOptionSelected', this.delayOptionSelected, previousIndex);\n if (index === 2 || index === 3 || index === 4) {\n this.maxLen = 2;\n } else {\n this.maxLen = 3\n }\n\n // if (this.diffTextValue === null || this.diffTextValue < 0) {\n // if (this.delayOptionSelected === 2 || this.delayOptionSelected === 3 || this.delayOptionSelected === 4) {\n // this.diffTextValue = parseInt(this.diffTextValue.toString().slice(0, this.maxLen));\n // } else {\n // this.diffTextValue = parseInt(this.diffTextValue.toString().slice(0, this.maxLen));\n // }\n // } else {\n // if (this.delayOptionSelected === 2 || this.delayOptionSelected === 3 || this.delayOptionSelected === 4) {\n // this.diffTextValue = parseInt(this.diffTextValue.toString().slice(0, this.maxLen));\n // } else {\n // this.diffTextValue = parseInt(this.diffTextValue.toString().slice(0, this.maxLen));\n // }\n // }\n\n const val = { \"currentIndex\": index, \"previousIndex\": previousIndex }\n this.selectedIndex.emit(val);\n }\n\n checkSelectedCheckboxOptions(list) {\n if (list.selected && this.delayInput.date1 !== '' && this.delayInput.date2 !== '') {\n this.isSubmitted = true;\n this.ddValue = list.value;\n }\n\n this.delayOptions.some(delay => {\n if (delay.name !== list.name) {\n delay.selected = false;\n }\n });\n }\n\n isLeapYear(year) {\n return year % 400 === 0 || (year % 100 !== 0 && year % 4 === 0);\n }\n\n daysOfAYear(year) {\n\n return this.isLeapYear(year) ? 366 : 365;\n }\n\n lastWeeksInYear(year) {\n return Math.ceil(this.daysOfAYear(year) / 7);\n }\n\n maxLengthCheck(object) {\n // if (this.diffTextValue === null || this.diffTextValue < 0) {\n // if (this.delayOptionSelected === 2 || this.delayOptionSelected === 3 || this.delayOptionSelected === 4) {\n // this.maxLen = 3;\n // } else {\n // this.maxLen = 4;\n // }\n // } else {\n // if (this.delayOptionSelected === 2 || this.delayOptionSelected === 3 || this.delayOptionSelected === 4) {\n // this.maxLen = 2;\n // } else {\n // this.maxLen = 3;\n // }\n // }\n // object.target.value = Math.abs(object.target.value);\n if (object.target.value.length > object.target.maxLength) {\n object.target.value = object.target.value.slice(0, object.target.maxLength)\n this.diffTextValue = object.target.value;\n }\n console.log(\"diffTextValue\", this.diffTextValue)\n }\n\n submit() {\n let retValue, formatVal;\n if (this.diffTextValue === null) {\n this.diffTextValue = 0;\n }\n const curYearVal = new Date().getFullYear() + 10;\n this.delayOptions.forEach(el => {\n if (this.selectedOption === el.value) {\n formatVal = `${this.utilService.getTranslateName(`NEW_QUERY.DELAY_LIST.${el.name}`)}`;\n if (el.value === 'Free Format') {\n retValue = `${this.utilService.getTranslateName(`NEW_QUERY.DELAY_LIST.${el.name}`)}` + ' ' + this.ddValue;\n } else {\n retValue = `${this.utilService.getTranslateName(`NEW_QUERY.DELAY_LIST.${el.name}`)}`;\n ;\n }\n }\n })\n if (this.delayCheckVal === 2) {\n if (this.delayOptionSelected === 0 || this.delayOptionSelected === 1 || this.delayOptionSelected === 6) {\n let val = this.delayInput.date1.split('/');\n const dateVal = new Date(`${val[2]}/${val[1]}/01`);\n const lastDayOfMonth = new Date(dateVal.getFullYear(), dateVal.getMonth() + 1, 0);\n if (parseInt(val[0]) > lastDayOfMonth.getDate() || parseInt(val[0]) < 1) {\n this.toastyService.warning(\"Invalid Date\");\n return;\n } else if (parseInt(val[1]) > 12 || parseInt(val[1]) < 1) {\n this.toastyService.warning(\"Invalid Month\");\n return;\n } else if (val[2].length !== 4 || parseInt(val[2]) > curYearVal || parseInt(val[2]) < 1) {\n this.toastyService.warning(\"Invalid Year\");\n return;\n }\n } else if (this.delayOptionSelected === 3 || this.delayOptionSelected === 4) {\n let val = this.delayInput.date1.split('/');\n let dateVal = new Date(`${val[2]}/${val[1]}/${val[0]}`);\n if (parseInt(val[0]) > 12 || parseInt(val[0]) < 1) {\n this.toastyService.warning(\"Invalid Month\");\n return;\n } else if (val[1].length !== 4 || parseInt(val[1]) > curYearVal || parseInt(val[1]) < 1) {\n this.toastyService.warning(\"Invalid Year\");\n return;\n }\n } else if (this.delayOptionSelected === 2) {\n let val = this.delayInput.date1.split('/');\n let dateVal = new Date(`${val[2]}/${val[1]}/${val[0]}`);\n if (parseInt(val[0]) > this.lastWeeksInYear(val[1]) || parseInt(val[0]) < 1) {\n this.toastyService.warning(\"Invalid Week\");\n return;\n } else if (val[1].length !== 4 || parseInt(val[1]) > curYearVal || parseInt(val[1]) < 1) {\n this.toastyService.warning(\"Invalid Year\");\n return;\n }\n } else if (this.delayOptionSelected === 5) {\n let val = this.delayInput.date1;\n if (val.length !== 4 || parseInt(val) > curYearVal || parseInt(val) < 1) {\n this.toastyService.warning(\"Invalid Year\");\n return;\n }\n }\n }\n\n if (this.delayCheckVal === 4) {\n if (this.delayOptionSelected === 0 || this.delayOptionSelected === 1 || this.delayOptionSelected === 6) {\n let val = this.delayInput.date2.split('/');\n const dateVal = new Date(`${val[2]}/${val[1]}/01`);\n const lastDayOfMonth = new Date(dateVal.getFullYear(), dateVal.getMonth() + 1, 0);\n if (parseInt(val[0]) > lastDayOfMonth.getDate() || parseInt(val[0]) < 1) {\n this.toastyService.warning(\"Invalid Date\");\n return;\n } else if (parseInt(val[1]) > 12 || parseInt(val[1]) < 1) {\n this.toastyService.warning(\"Invalid Month\");\n return;\n } else if (val[2].length !== 4 || parseInt(val[2]) > curYearVal || parseInt(val[2]) < 1) {\n this.toastyService.warning(\"Invalid Year\");\n return;\n }\n } else if (this.delayOptionSelected === 3 || this.delayOptionSelected === 4) {\n let val = this.delayInput.date2.split('/');\n let dateVal = new Date(`${val[2]}/${val[1]}/${val[0]}`);\n if (parseInt(val[0]) > 12 || parseInt(val[0]) < 1) {\n this.toastyService.warning(\"Invalid Month\");\n return;\n } else if (val[1].length !== 4 || parseInt(val[1]) > curYearVal || parseInt(val[1]) < 1) {\n this.toastyService.warning(\"Invalid Year\");\n return;\n }\n } else if (this.delayOptionSelected === 2) {\n let val = this.delayInput.date2.split('/');\n let dateVal = new Date(`${val[2]}/${val[1]}/${val[0]}`);\n if (parseInt(val[0]) > this.lastWeeksInYear(val[1]) || parseInt(val[0]) < 1) {\n this.toastyService.warning(\"Invalid Week\");\n return;\n } else if (val[1].length !== 4 || parseInt(val[1]) > curYearVal || parseInt(val[1]) < 1) {\n this.toastyService.warning(\"Invalid Year\");\n return;\n }\n } else if (this.delayOptionSelected === 5) {\n let val = this.delayInput.date2;\n if (val.length !== 4 || parseInt(val) > curYearVal || parseInt(val) < 1) {\n this.toastyService.warning(\"Invalid Year\");\n return;\n }\n }\n }\n let value = {\n date1: this.delayInput.date1,\n date2: this.delayInput.date2,\n value: retValue,\n ddValue: this.ddValue,\n format: formatVal,\n diffValue: this.delayDiffOptions[this.selectedDiffOption].value,\n diffTextVal: this.diffTextValue\n };\n this.delayOutput.emit(value);\n this.selectedOption = undefined;\n this.ddValue = undefined;\n }\n\n cancel() {\n let value = {\n value: '',\n ddValue: ''\n };\n this.delayOutput.emit(value);\n }\n}\n","export default \".delayGroup {\\n background-color: #009CA6;\\n color: #ffffff;\\n height: 315px;\\n}\\n.delayGroup .title-span {\\n font-family: Roboto, \\\"Helvetica Neue\\\", sans-serif;\\n font-size: 14px;\\n font-weight: 500;\\n line-height: 17px;\\n}\\n.delayGroup .title-span-Abbr {\\n font-family: Roboto, \\\"Helvetica Neue\\\", sans-serif;\\n font-size: 14px;\\n font-weight: 600;\\n line-height: 17px;\\n padding: 10px 0 10px 0;\\n}\\n.delayGroup .text-span {\\n font-family: Roboto, \\\"Helvetica Neue\\\", sans-serif;\\n font-size: 11px;\\n font-weight: 400;\\n line-height: 28px;\\n}\\n.delayGroup .text-span-wo-line-height {\\n font-family: Roboto, \\\"Helvetica Neue\\\", sans-serif;\\n font-size: 11px;\\n font-weight: 400;\\n}\\n.delayGroup .text-span-font {\\n font-family: Roboto, \\\"Helvetica Neue\\\", sans-serif;\\n font-size: 11px;\\n font-weight: 400;\\n}\\n.delayGroup .date-radio-group {\\n display: flex;\\n flex-direction: column;\\n}\\n.delayGroup .date-radio-button {\\n margin: 3px;\\n}\\n.delayGroup .date-form-field {\\n right: 5px;\\n}\\n.delayGroup .radio-btn-change .mat-radio-container {\\n margin-top: -13% !important;\\n}\\n.delayGroup .date-confirmation {\\n position: absolute;\\n top: 18%;\\n right: 4%;\\n}\\n.delayGroup .date-confirmation button {\\n width: 75px;\\n height: 36px;\\n font-family: Roboto, \\\"Helvetica Neue\\\", sans-serif;\\n font-size: 13px;\\n font-weight: 500;\\n text-align: center;\\n border: 0px solid;\\n padding: 0 !important;\\n border-radius: 0px;\\n}\\n.delayGroup .abbrevation-card {\\n padding: 1px 0px 3px 5px;\\n color: #bbbcbc;\\n}\\n.delayGroup .mat-form-field {\\n margin-left: 10px;\\n}\\n.delayGroup .myPanelClass {\\n margin-top: 30px !important;\\n}\\n/*# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi91c3Ivc3JjL3NyYy9hcHAvY29tcG9uZW50L3F1ZXJ5L2dyb3VwaW5nL2RlbGF5LWdyb3VwaW5nL2RlbGF5LWdyb3VwaW5nLmNvbXBvbmVudC5zY3NzIiwic3JjL2FwcC9jb21wb25lbnQvcXVlcnkvZ3JvdXBpbmcvZGVsYXktZ3JvdXBpbmcvZGVsYXktZ3JvdXBpbmcuY29tcG9uZW50LnNjc3MiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBRUE7RUFDRSx5QkFBQTtFQUNBLGNBQUE7RUFDQSxhQUFBO0FDREY7QURHQTtFQUNJLGlEQUFBO0VBQ0EsZUFBQTtFQUNBLGdCQUFBO0VBQ0EsaUJBQUE7QUNESjtBRElBO0VBQ0ksaURBQUE7RUFDQSxlQUFBO0VBQ0EsZ0JBQUE7RUFDQSxpQkFBQTtFQUNBLHNCQUFBO0FDRko7QURLQTtFQUNJLGlEQUFBO0VBQ0EsZUFBQTtFQUNBLGdCQUFBO0VBQ0EsaUJBQUE7QUNISjtBRE9BO0VBQ0ksaURBQUE7RUFDQSxlQUFBO0VBQ0EsZ0JBQUE7QUNMSjtBRFNBO0VBQ0ksaURBQUE7RUFDQSxlQUFBO0VBQ0EsZ0JBQUE7QUNQSjtBRFdFO0VBQ0UsYUFBQTtFQUNBLHNCQUFBO0FDVEo7QURZRTtFQUNFLFdBQUE7QUNWSjtBRFlFO0VBQ0UsVUFBQTtBQ1ZKO0FEYUk7RUFDRSwyQkFBQTtBQ1hOO0FEY0U7RUFDRSxrQkFBQTtFQUNBLFFBQUE7RUFDQSxTQUFBO0FDWko7QURhSTtFQUVFLFdBQUE7RUFDQSxZQUFBO0VBQ0EsaURBQUE7RUFDQSxlQUFBO0VBQ0EsZ0JBQUE7RUFDQSxrQkFBQTtFQUNBLGlCQUFBO0VBQ0EscUJBQUE7RUFDQSxrQkFBQTtBQ1pOO0FEZUU7RUFDRSx3QkFBQTtFQUNBLGNBQUE7QUNiSjtBRGVFO0VBRUUsaUJBQUE7QUNkSjtBRGdCRTtFQUNFLDJCQUFBO0FDZEoiLCJmaWxlIjoic3JjL2FwcC9jb21wb25lbnQvcXVlcnkvZ3JvdXBpbmcvZGVsYXktZ3JvdXBpbmcvZGVsYXktZ3JvdXBpbmcuY29tcG9uZW50LnNjc3MiLCJzb3VyY2VzQ29udGVudCI6WyJcbi8vIERlbGF5IGdyb3VwXG4uZGVsYXlHcm91cCB7XG4gIGJhY2tncm91bmQtY29sb3I6ICMwMDlDQTY7XG4gIGNvbG9yOiAjZmZmZmZmO1xuICBoZWlnaHQ6IDMxNXB4O1xuICBcbi50aXRsZS1zcGFue1xuICAgIGZvbnQtZmFtaWx5OiBSb2JvdG8sIFwiSGVsdmV0aWNhIE5ldWVcIiwgc2Fucy1zZXJpZjtcbiAgICBmb250LXNpemU6IDE0cHg7XG4gICAgZm9udC13ZWlnaHQ6IDUwMDtcbiAgICBsaW5lLWhlaWdodDogMTdweDtcbn1cblxuLnRpdGxlLXNwYW4tQWJicntcbiAgICBmb250LWZhbWlseTogUm9ib3RvLCBcIkhlbHZldGljYSBOZXVlXCIsIHNhbnMtc2VyaWY7XG4gICAgZm9udC1zaXplOiAxNHB4O1xuICAgIGZvbnQtd2VpZ2h0OiA2MDA7XG4gICAgbGluZS1oZWlnaHQ6IDE3cHg7XG4gICAgcGFkZGluZzogMTBweCAwIDEwcHggMDtcbn1cblxuLnRleHQtc3BhbntcbiAgICBmb250LWZhbWlseTogUm9ib3RvLCBcIkhlbHZldGljYSBOZXVlXCIsIHNhbnMtc2VyaWY7XG4gICAgZm9udC1zaXplOiAxMXB4O1xuICAgIGZvbnQtd2VpZ2h0OiA0MDA7XG4gICAgbGluZS1oZWlnaHQ6IDI4cHg7XG4gICAgLy8gbWFyZ2luLWxlZnQ6IC00cHg7XG59XG5cbi50ZXh0LXNwYW4td28tbGluZS1oZWlnaHR7XG4gICAgZm9udC1mYW1pbHk6IFJvYm90bywgXCJIZWx2ZXRpY2EgTmV1ZVwiLCBzYW5zLXNlcmlmO1xuICAgIGZvbnQtc2l6ZTogMTFweDtcbiAgICBmb250LXdlaWdodDogNDAwO1xuICAgIC8vIG1hcmdpbi1sZWZ0OiAtNHB4O1xufVxuXG4udGV4dC1zcGFuLWZvbnR7XG4gICAgZm9udC1mYW1pbHk6IFJvYm90bywgXCJIZWx2ZXRpY2EgTmV1ZVwiLCBzYW5zLXNlcmlmO1xuICAgIGZvbnQtc2l6ZTogMTFweDtcbiAgICBmb250LXdlaWdodDogNDAwO1xuICAgIC8vIG1hcmdpbi1sZWZ0OiAtNHB4O1xufVxuXG4gIC5kYXRlLXJhZGlvLWdyb3VwIHtcbiAgICBkaXNwbGF5OiBmbGV4O1xuICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XG4gICAgLy8gbWFyZ2luOiAxNXB4IDA7XG4gIH1cbiAgLmRhdGUtcmFkaW8tYnV0dG9uIHtcbiAgICBtYXJnaW46IDNweDtcbiAgfVxuICAuZGF0ZS1mb3JtLWZpZWxkIHtcbiAgICByaWdodDo1cHg7XG4gIH1cbiAgLnJhZGlvLWJ0bi1jaGFuZ2Uge1xuICAgIC5tYXQtcmFkaW8tY29udGFpbmVyIHtcbiAgICAgIG1hcmdpbi10b3A6IC0xMyUgIWltcG9ydGFudDtcbiAgICB9XG4gIH1cbiAgLmRhdGUtY29uZmlybWF0aW9uIHtcbiAgICBwb3NpdGlvbjphYnNvbHV0ZTtcbiAgICB0b3A6MTglO1xuICAgIHJpZ2h0OjQlO1xuICAgIGJ1dHRvbiB7XG4gICAgICAvLyBtYXJnaW46IDAgMTBweDsgICAgICBcbiAgICAgIHdpZHRoOiA3NXB4O1xuICAgICAgaGVpZ2h0OiAzNnB4O1xuICAgICAgZm9udC1mYW1pbHk6IFJvYm90byxcIkhlbHZldGljYSBOZXVlXCIsc2Fucy1zZXJpZjtcbiAgICAgIGZvbnQtc2l6ZTogMTNweDtcbiAgICAgIGZvbnQtd2VpZ2h0OiA1MDA7XG4gICAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gICAgICBib3JkZXI6IDBweCBzb2xpZDtcbiAgICAgIHBhZGRpbmc6IDAgIWltcG9ydGFudDtcbiAgICAgIGJvcmRlci1yYWRpdXM6IDBweDtcbiAgICB9XG4gIH1cbiAgLmFiYnJldmF0aW9uLWNhcmQge1xuICAgIHBhZGRpbmc6IDFweCAwcHggM3B4IDVweDtcbiAgICBjb2xvcjogI2JiYmNiYztcbiAgfVxuICAubWF0LWZvcm0tZmllbGQge1xuICAgIC8vIGRpc3BsYXk6IGlubGluZSAhaW1wb3J0YW50O1xuICAgIG1hcmdpbi1sZWZ0OiAxMHB4O1xuICB9XG4gIC5teVBhbmVsQ2xhc3N7XG4gICAgbWFyZ2luLXRvcDogMzBweCAhaW1wb3J0YW50OyBcbn1cbn0iLCIuZGVsYXlHcm91cCB7XG4gIGJhY2tncm91bmQtY29sb3I6ICMwMDlDQTY7XG4gIGNvbG9yOiAjZmZmZmZmO1xuICBoZWlnaHQ6IDMxNXB4O1xufVxuLmRlbGF5R3JvdXAgLnRpdGxlLXNwYW4ge1xuICBmb250LWZhbWlseTogUm9ib3RvLCBcIkhlbHZldGljYSBOZXVlXCIsIHNhbnMtc2VyaWY7XG4gIGZvbnQtc2l6ZTogMTRweDtcbiAgZm9udC13ZWlnaHQ6IDUwMDtcbiAgbGluZS1oZWlnaHQ6IDE3cHg7XG59XG4uZGVsYXlHcm91cCAudGl0bGUtc3Bhbi1BYmJyIHtcbiAgZm9udC1mYW1pbHk6IFJvYm90bywgXCJIZWx2ZXRpY2EgTmV1ZVwiLCBzYW5zLXNlcmlmO1xuICBmb250LXNpemU6IDE0cHg7XG4gIGZvbnQtd2VpZ2h0OiA2MDA7XG4gIGxpbmUtaGVpZ2h0OiAxN3B4O1xuICBwYWRkaW5nOiAxMHB4IDAgMTBweCAwO1xufVxuLmRlbGF5R3JvdXAgLnRleHQtc3BhbiB7XG4gIGZvbnQtZmFtaWx5OiBSb2JvdG8sIFwiSGVsdmV0aWNhIE5ldWVcIiwgc2Fucy1zZXJpZjtcbiAgZm9udC1zaXplOiAxMXB4O1xuICBmb250LXdlaWdodDogNDAwO1xuICBsaW5lLWhlaWdodDogMjhweDtcbn1cbi5kZWxheUdyb3VwIC50ZXh0LXNwYW4td28tbGluZS1oZWlnaHQge1xuICBmb250LWZhbWlseTogUm9ib3RvLCBcIkhlbHZldGljYSBOZXVlXCIsIHNhbnMtc2VyaWY7XG4gIGZvbnQtc2l6ZTogMTFweDtcbiAgZm9udC13ZWlnaHQ6IDQwMDtcbn1cbi5kZWxheUdyb3VwIC50ZXh0LXNwYW4tZm9udCB7XG4gIGZvbnQtZmFtaWx5OiBSb2JvdG8sIFwiSGVsdmV0aWNhIE5ldWVcIiwgc2Fucy1zZXJpZjtcbiAgZm9udC1zaXplOiAxMXB4O1xuICBmb250LXdlaWdodDogNDAwO1xufVxuLmRlbGF5R3JvdXAgLmRhdGUtcmFkaW8tZ3JvdXAge1xuICBkaXNwbGF5OiBmbGV4O1xuICBmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xufVxuLmRlbGF5R3JvdXAgLmRhdGUtcmFkaW8tYnV0dG9uIHtcbiAgbWFyZ2luOiAzcHg7XG59XG4uZGVsYXlHcm91cCAuZGF0ZS1mb3JtLWZpZWxkIHtcbiAgcmlnaHQ6IDVweDtcbn1cbi5kZWxheUdyb3VwIC5yYWRpby1idG4tY2hhbmdlIC5tYXQtcmFkaW8tY29udGFpbmVyIHtcbiAgbWFyZ2luLXRvcDogLTEzJSAhaW1wb3J0YW50O1xufVxuLmRlbGF5R3JvdXAgLmRhdGUtY29uZmlybWF0aW9uIHtcbiAgcG9zaXRpb246IGFic29sdXRlO1xuICB0b3A6IDE4JTtcbiAgcmlnaHQ6IDQlO1xufVxuLmRlbGF5R3JvdXAgLmRhdGUtY29uZmlybWF0aW9uIGJ1dHRvbiB7XG4gIHdpZHRoOiA3NXB4O1xuICBoZWlnaHQ6IDM2cHg7XG4gIGZvbnQtZmFtaWx5OiBSb2JvdG8sIFwiSGVsdmV0aWNhIE5ldWVcIiwgc2Fucy1zZXJpZjtcbiAgZm9udC1zaXplOiAxM3B4O1xuICBmb250LXdlaWdodDogNTAwO1xuICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gIGJvcmRlcjogMHB4IHNvbGlkO1xuICBwYWRkaW5nOiAwICFpbXBvcnRhbnQ7XG4gIGJvcmRlci1yYWRpdXM6IDBweDtcbn1cbi5kZWxheUdyb3VwIC5hYmJyZXZhdGlvbi1jYXJkIHtcbiAgcGFkZGluZzogMXB4IDBweCAzcHggNXB4O1xuICBjb2xvcjogI2JiYmNiYztcbn1cbi5kZWxheUdyb3VwIC5tYXQtZm9ybS1maWVsZCB7XG4gIG1hcmdpbi1sZWZ0OiAxMHB4O1xufVxuLmRlbGF5R3JvdXAgLm15UGFuZWxDbGFzcyB7XG4gIG1hcmdpbi10b3A6IDMwcHggIWltcG9ydGFudDtcbn0iXX0= */\"","import { Component, Input, Output, EventEmitter, OnChanges, OnInit } from '@angular/core';\nimport * as moment from 'moment';\nimport { ToastyService } from 'ng2-toasty';\n\nimport { BackendApiService } from '../../../../services/backend-api/backend-api.service';\nimport { UtilService } from '../../../../services/util/util.service';\n\n@Component({\n selector: 'app-delay-grouping',\n templateUrl: './delay-grouping.component.html',\n styleUrls: ['./delay-grouping.component.scss']\n})\nexport class DelayGroupingComponent implements OnInit {\n @Input() delayInput;\n @Input() daysData;\n @Input() delayCheckVal;\n @Output() selectedIndex = new EventEmitter();\n @Output() delayOutput = new EventEmitter();\n\n profile = this.utilService.getUserProfile();\n ipn;\n\n selectedOption;\n ddValue: string;\n isSubmitted: boolean = false;\n delayOptionSelected = 0;\n\n delayOptions = [{ name: 'DAYS', value: 'days', selected: true },\n { name: 'WORKING_DAYS', value: 'working days', selected: false },\n { name: 'WEEK', value: 'prog', selected: false },\n { name: 'CALENDAR', value: 'cal month', selected: false },\n { name: 'INDUSTRIAL', value: 'indus month', selected: false },\n { name: 'Y', value: 'year', selected: false },\n { name: 'JOUR_SAVE', value: 'Free Format', selected: false }];\n\n constructor(readonly apiService: BackendApiService, readonly utilService: UtilService, readonly toastyService: ToastyService) {\n this.ipn = this.profile['login']; // sessionStorage.getItem(\"ipn\");\n }\n\n ngOnInit() {\n }\n\n ngOnChanges() {\n let i = 0;\n this.ddValue = undefined;\n if (this.delayInput.value) {\n for (const item of this.delayOptions) {\n if (`${this.utilService.getTranslateName(`NEW_QUERY.DELAY_LIST.${item.name}`)}` === this.delayInput.value) {\n item.selected = true;\n this.selectedOption = item.value;\n this.ddValue = this.delayInput.ddValue\n this.isSubmitted = true;\n this.delayOptionSelected = i;\n const val = { \"currentIndex\": i, \"previousIndex\": i }\n this.selectedIndex.emit(val);\n }\n i = i + 1;\n }\n } else {\n if (this.delayOptionSelected === 0) {\n this.selectedOption = 'days';\n }\n }\n }\n\n selectOption(index) {\n const previousIndex = this.delayOptionSelected;\n this.delayOptionSelected = index;\n const val = { \"currentIndex\": index, \"previousIndex\": previousIndex }\n this.selectedIndex.emit(val);\n }\n\n checkSelectedCheckboxOptions(list) {\n if (list.selected && this.delayInput.date1 !== '' && this.delayInput.date2 !== '') {\n this.isSubmitted = true;\n this.ddValue = list.value;\n }\n\n this.delayOptions.some(delay => {\n if (delay.name !== list.name) {\n delay.selected = false;\n }\n });\n }\n\n isLeapYear(year) {\n return year % 400 === 0 || (year % 100 !== 0 && year % 4 === 0);\n }\n\n daysOfAYear(year) {\n\n return this.isLeapYear(year) ? 366 : 365;\n }\n\n lastWeeksInYear(year) {\n return Math.ceil(this.daysOfAYear(year) / 7);\n }\n\n submit() {\n let retValue;\n const curYearVal = new Date().getFullYear() + 10;\n this.delayOptions.forEach(el => {\n if (this.selectedOption === el.value) {\n if (el.value === 'Free Format') {\n retValue = `${this.utilService.getTranslateName(`NEW_QUERY.DELAY_LIST.${el.name}`)}` + ' ' + this.ddValue;\n } else {\n retValue = `${this.utilService.getTranslateName(`NEW_QUERY.DELAY_LIST.${el.name}`)}`;\n }\n }\n })\n if (this.delayCheckVal === 2) {\n if (this.delayOptionSelected === 0 || this.delayOptionSelected === 1 || this.delayOptionSelected === 6) {\n let val = this.delayInput.date1.split('/');\n const dateVal = new Date(`${val[2]}/${val[1]}/01`);\n const lastDayOfMonth = new Date(dateVal.getFullYear(), dateVal.getMonth() + 1, 0);\n if (parseInt(val[0]) > lastDayOfMonth.getDate() || parseInt(val[0]) < 1) {\n this.toastyService.warning(\"Invalid Date\");\n return;\n } else if (parseInt(val[1]) > 12 || parseInt(val[1]) < 1) {\n this.toastyService.warning(\"Invalid Month\");\n return;\n } else if (val[2].length !== 4 || parseInt(val[2]) > curYearVal || parseInt(val[2]) < 1) {\n this.toastyService.warning(\"Invalid Year\");\n return;\n }\n } else if (this.delayOptionSelected === 3 || this.delayOptionSelected === 4) {\n let val = this.delayInput.date1.split('/');\n let dateVal = new Date(`${val[2]}/${val[1]}/${val[0]}`);\n if (parseInt(val[0]) > 12 || parseInt(val[0]) < 1) {\n this.toastyService.warning(\"Invalid Month\");\n return;\n } else if (val[1].length !== 4 || parseInt(val[1]) > curYearVal || parseInt(val[1]) < 1) {\n this.toastyService.warning(\"Invalid Year\");\n return;\n }\n } else if (this.delayOptionSelected === 2) {\n let val = this.delayInput.date1.split('/');\n let dateVal = new Date(`${val[2]}/${val[1]}/${val[0]}`);\n if (parseInt(val[0]) > this.lastWeeksInYear(val[1]) || parseInt(val[0]) < 1) {\n this.toastyService.warning(\"Invalid Week\");\n return;\n } else if (val[1].length !== 4 || parseInt(val[1]) > curYearVal || parseInt(val[1]) < 1) {\n this.toastyService.warning(\"Invalid Year\");\n return;\n }\n } else if (this.delayOptionSelected === 5) {\n let val = this.delayInput.date1;\n if (val.length !== 4 || parseInt(val) > curYearVal || parseInt(val) < 1) {\n this.toastyService.warning(\"Invalid Year\");\n return;\n }\n }\n }\n\n if (this.delayCheckVal === 4) {\n if (this.delayOptionSelected === 0 || this.delayOptionSelected === 1 || this.delayOptionSelected === 6) {\n let val = this.delayInput.date2.split('/');\n const dateVal = new Date(`${val[2]}/${val[1]}/01`);\n const lastDayOfMonth = new Date(dateVal.getFullYear(), dateVal.getMonth() + 1, 0);\n if (parseInt(val[0]) > lastDayOfMonth.getDate() || parseInt(val[0]) < 1) {\n this.toastyService.warning(\"Invalid Date\");\n return;\n } else if (parseInt(val[1]) > 12 || parseInt(val[1]) < 1 || parseInt(val[1]) < 1) {\n this.toastyService.warning(\"Invalid Month\");\n return;\n } else if (val[2].length !== 4 || parseInt(val[1]) > curYearVal || parseInt(val[2]) < 1) {\n this.toastyService.warning(\"Invalid Year\");\n return;\n }\n } else if (this.delayOptionSelected === 3 || this.delayOptionSelected === 4) {\n let val = this.delayInput.date2.split('/');\n let dateVal = new Date(`${val[2]}/${val[1]}/${val[0]}`);\n if (parseInt(val[0]) > 12 || parseInt(val[0]) < 1) {\n this.toastyService.warning(\"Invalid Month\");\n return;\n } else if (val[1].length !== 4 || parseInt(val[1]) > curYearVal || parseInt(val[1]) < 1) {\n this.toastyService.warning(\"Invalid Year\");\n return;\n }\n } else if (this.delayOptionSelected === 2) {\n let val = this.delayInput.date2.split('/');\n let dateVal = new Date(`${val[2]}/${val[1]}/${val[0]}`);\n if (parseInt(val[0]) > this.lastWeeksInYear(val[1]) || parseInt(val[0]) < 1) {\n this.toastyService.warning(\"Invalid Week\");\n return;\n } else if (val[1].length !== 4 || parseInt(val[1]) > curYearVal || parseInt(val[1]) < 1) {\n this.toastyService.warning(\"Invalid Year\");\n return;\n }\n } else if (this.delayOptionSelected === 5) {\n let val = this.delayInput.date2;\n if (val.length !== 4 || parseInt(val) > curYearVal || parseInt(val) < 1) {\n this.toastyService.warning(\"Invalid Year\");\n return;\n }\n }\n }\n\n let value = {\n date1: this.delayInput.date1,\n date2: this.delayInput.date2,\n value: retValue,\n ddValue: this.ddValue\n };\n this.delayOutput.emit(value);\n this.selectedOption = undefined;\n this.ddValue = undefined;\n }\n\n cancel() {\n let value = {\n value: '',\n ddValue: ''\n };\n this.delayOutput.emit(value);\n }\n\n\n\n}\n","export default \".grouping-flag {\\n width: 80%;\\n margin-top: 20px;\\n background-color: #009B77;\\n color: white;\\n font-family: Roboto, \\\"Helvetica Neue\\\", sans-serif !important;\\n font-size: 14px !important;\\n}\\n.grouping-flag .title-span {\\n font-family: Roboto, \\\"Helvetica Neue\\\", sans-serif;\\n font-size: 14px;\\n font-weight: 500;\\n line-height: 17px;\\n}\\n.grouping-flag .text-span {\\n font-family: Roboto, \\\"Helvetica Neue\\\", sans-serif;\\n font-size: 11px;\\n font-weight: 400;\\n}\\n.grouping-flag .row {\\n display: inline-flex;\\n max-width: 550px;\\n}\\n.grouping-flag .column1 {\\n flex: 15%;\\n padding: 5px;\\n}\\n.grouping-flag .column {\\n flex: 25%;\\n padding: 5px;\\n}\\n.grouping-flag .column:nth-child(1) {\\n flex: 35%;\\n}\\n.grouping-flag .column:nth-child(2) {\\n flex: 15%;\\n}\\n.grouping-flag ::-webkit-scrollbar {\\n width: 8px;\\n}\\n.grouping-flag ::-webkit-scrollbar-track {\\n box-shadow: inset 0 0 6px rgba(0, 0, 0, 0.3);\\n border-radius: 10px;\\n}\\n.grouping-flag ::-webkit-scrollbar-thumb {\\n border-radius: 10px;\\n box-shadow: inset 0 0 6px rgba(0, 0, 0, 0.5);\\n}\\n.grouping-flag input {\\n background-color: #ffffff;\\n color: #000000;\\n}\\n.grouping-flag .arrow {\\n border: 1px solid #c2c2c2;\\n background-color: #0077c8;\\n width: 100%;\\n height: 30px;\\n cursor: pointer;\\n margin-bottom: 8%;\\n text-align: center;\\n}\\n.grouping-flag .arrow .mat-icon {\\n font-size: 35px;\\n width: 100%;\\n}\\n.grouping-flag .wording label {\\n float: left;\\n width: 40%;\\n}\\n.grouping-flag .wording input[type=text] {\\n text-transform: uppercase;\\n width: 90%;\\n min-height: 25px;\\n padding-left: 5px;\\n}\\n.grouping-flag ::ng-deep .mat-selection-list {\\n background-color: white;\\n min-height: 145px;\\n height: 0;\\n overflow: auto;\\n padding-top: 0;\\n}\\n.grouping-flag ::ng-deep .mat-selection-list .select-list {\\n background-color: #0077C8;\\n color: #ffffff;\\n}\\n.grouping-flag ::ng-deep .mat-selection-list .mat-list-item {\\n height: 22px !important;\\n}\\n.grouping-flag ::ng-deep .mat-selection-list .mat-list-item-content .mat-list-text {\\n font-size: 13px;\\n padding: 0;\\n}\\n.grouping-flag .action-btn {\\n display: inline-grid;\\n top: 24%;\\n}\\n.grouping-flag .action-btn button {\\n width: 49%;\\n height: 36px;\\n font-family: Roboto, \\\"Helvetica Neue\\\", sans-serif;\\n font-size: 13px;\\n font-weight: 500;\\n text-align: center;\\n border: 0px solid;\\n padding: 0 !important;\\n border-radius: 0px;\\n}\\n.grouping-flag .grouping-radio {\\n display: inline-flex;\\n}\\n.grouping-flag .grouping-radio ::ng-deep .mat-checkbox {\\n margin: 5px;\\n}\\n.grouping-flag .grouping-radio ::ng-deep .mat-checkbox .mat-checkbox-frame {\\n border-color: white;\\n}\\n.grouping-flag .grouping-radio ::ng-deep .mat-checkbox .mat-checkbox-background {\\n background-color: white;\\n}\\n.grouping-flag .grouping-radio ::ng-deep .mat-checkbox .mat-checkbox-checkmark-path {\\n stroke: #0077c8 !important;\\n}\\n.grouping-flag .grouping-radio input[type=number] {\\n width: 60%;\\n margin-left: 15%;\\n margin-top: 8px;\\n height: 25px;\\n padding-left: 5px;\\n}\\n.grouping-flag .grouping-radio .all-grouping {\\n display: flex;\\n}\\n/*# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi91c3Ivc3JjL3NyYy9hcHAvY29tcG9uZW50L3F1ZXJ5L2dyb3VwaW5nL2ZsYWctZ3JvdXBpbmcvZmxhZy1ncm91cGluZy5jb21wb25lbnQuc2NzcyIsInNyYy9hcHAvY29tcG9uZW50L3F1ZXJ5L2dyb3VwaW5nL2ZsYWctZ3JvdXBpbmcvZmxhZy1ncm91cGluZy5jb21wb25lbnQuc2NzcyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQTtFQUNJLFVBQUE7RUFDQSxnQkFBQTtFQUVBLHlCQUFBO0VBQ0EsWUFBQTtFQUNBLDREQUFBO0VBQ0EsMEJBQUE7QUNBSjtBRENJO0VBQ0ksaURBQUE7RUFDQSxlQUFBO0VBQ0EsZ0JBQUE7RUFDQSxpQkFBQTtBQ0NSO0FEQ0k7RUFDSSxpREFBQTtFQUNBLGVBQUE7RUFDQSxnQkFBQTtBQ0NSO0FER0k7RUFDSSxvQkFBQTtFQUNBLGdCQUFBO0FDRFI7QURHSTtFQUNJLFNBQUE7RUFDQSxZQUFBO0FDRFI7QURJSTtFQUNJLFNBQUE7RUFDQSxZQUFBO0FDRlI7QURLSTtFQUNJLFNBQUE7QUNIUjtBREtJO0VBQ0ksU0FBQTtBQ0hSO0FES0k7RUFDSSxVQUFBO0FDSFI7QURNSTtFQUNJLDRDQUFBO0VBQ0EsbUJBQUE7QUNKUjtBRE9JO0VBQ0ksbUJBQUE7RUFDQSw0Q0FBQTtBQ0xSO0FET0k7RUFDSSx5QkFBQTtFQUNBLGNBQUE7QUNMUjtBRE9JO0VBQ0kseUJBQUE7RUFDQSx5QkFBQTtFQUNBLFdBQUE7RUFDQSxZQUFBO0VBQ0EsZUFBQTtFQUNBLGlCQUFBO0VBQ0Esa0JBQUE7QUNMUjtBRE1RO0VBQ0ksZUFBQTtFQUNBLFdBQUE7QUNKWjtBRFFRO0VBQ0ksV0FBQTtFQUNBLFVBQUE7QUNOWjtBRFNRO0VBQ0kseUJBQUE7RUFDQSxVQUFBO0VBQ0EsZ0JBQUE7RUFDQSxpQkFBQTtBQ1BaO0FEVUk7RUFDSSx1QkFBQTtFQUNBLGlCQUFBO0VBQ0EsU0FBQTtFQUNBLGNBQUE7RUFDQSxjQUFBO0FDUlI7QURTUTtFQUNJLHlCQUFBO0VBQ0EsY0FBQTtBQ1BaO0FEU1E7RUFDSSx1QkFBQTtBQ1BaO0FEVVk7RUFDSSxlQUFBO0VBQ0EsVUFBQTtBQ1JoQjtBRFlJO0VBQ0ksb0JBQUE7RUFDQSxRQUFBO0FDVlI7QURXUTtFQU1JLFVBQUE7RUFDQSxZQUFBO0VBQ0EsaURBQUE7RUFDQSxlQUFBO0VBQ0EsZ0JBQUE7RUFDQSxrQkFBQTtFQUNBLGlCQUFBO0VBQ0EscUJBQUE7RUFDQSxrQkFBQTtBQ2RaO0FEaUJJO0VBQ0ksb0JBQUE7QUNmUjtBRGlCUTtFQUNJLFdBQUE7QUNmWjtBRGdCWTtFQUNJLG1CQUFBO0FDZGhCO0FEZ0JZO0VBQ1EsdUJBQUE7QUNkcEI7QURnQlk7RUFDSSwwQkFBQTtBQ2RoQjtBRGlCUTtFQUNJLFVBQUE7RUFDQSxnQkFBQTtFQUNBLGVBQUE7RUFDQSxZQUFBO0VBQ0EsaUJBQUE7QUNmWjtBRGlCUTtFQUNJLGFBQUE7QUNmWiIsImZpbGUiOiJzcmMvYXBwL2NvbXBvbmVudC9xdWVyeS9ncm91cGluZy9mbGFnLWdyb3VwaW5nL2ZsYWctZ3JvdXBpbmcuY29tcG9uZW50LnNjc3MiLCJzb3VyY2VzQ29udGVudCI6WyIuZ3JvdXBpbmctZmxhZyB7XG4gICAgd2lkdGg6IDgwJTtcbiAgICBtYXJnaW4tdG9wOiAyMHB4O1xuICAgIC8vIG1hcmdpbi1sZWZ0OiAxMHB4O1xuICAgIGJhY2tncm91bmQtY29sb3I6ICMwMDlCNzc7XG4gICAgY29sb3I6d2hpdGU7XG4gICAgZm9udC1mYW1pbHk6IFJvYm90bywgXCJIZWx2ZXRpY2EgTmV1ZVwiLCBzYW5zLXNlcmlmICFpbXBvcnRhbnQ7XG4gICAgZm9udC1zaXplOiAxNHB4ICFpbXBvcnRhbnQ7XG4gICAgLnRpdGxlLXNwYW57XG4gICAgICAgIGZvbnQtZmFtaWx5OiBSb2JvdG8sIFwiSGVsdmV0aWNhIE5ldWVcIiwgc2Fucy1zZXJpZjtcbiAgICAgICAgZm9udC1zaXplOiAxNHB4O1xuICAgICAgICBmb250LXdlaWdodDogNTAwO1xuICAgICAgICBsaW5lLWhlaWdodDogMTdweDtcbiAgICB9XG4gICAgLnRleHQtc3BhbntcbiAgICAgICAgZm9udC1mYW1pbHk6IFJvYm90bywgXCJIZWx2ZXRpY2EgTmV1ZVwiLCBzYW5zLXNlcmlmO1xuICAgICAgICBmb250LXNpemU6IDExcHg7XG4gICAgICAgIGZvbnQtd2VpZ2h0OiA0MDA7XG4gICAgICAgIC8vIGxpbmUtaGVpZ2h0OiAyOHB4O1xuICAgICAgICAvLyBtYXJnaW4tbGVmdDogLTRweDtcbiAgICB9XG4gICAgLnJvdyB7XG4gICAgICAgIGRpc3BsYXk6IGlubGluZS1mbGV4O1xuICAgICAgICBtYXgtd2lkdGg6IDU1MHB4O1xuICAgIH1cbiAgICAuY29sdW1uMSB7XG4gICAgICAgIGZsZXg6IDE1JTtcbiAgICAgICAgcGFkZGluZzogNXB4O1xuICAgICAgICAvLyBhbGlnbi1zZWxmOiBjZW50ZXI7XG4gICAgfVxuICAgIC5jb2x1bW4ge1xuICAgICAgICBmbGV4OiAyNSU7XG4gICAgICAgIHBhZGRpbmc6IDVweDtcbiAgICAgICAgLy8gYWxpZ24tc2VsZjogY2VudGVyO1xuICAgIH1cbiAgICAuY29sdW1uOm50aC1jaGlsZCgxKSB7XG4gICAgICAgIGZsZXg6IDM1JTtcbiAgICB9XG4gICAgLmNvbHVtbjpudGgtY2hpbGQoMikge1xuICAgICAgICBmbGV4OiAxNSU7XG4gICAgfVxuICAgIDo6LXdlYmtpdC1zY3JvbGxiYXIge1xuICAgICAgICB3aWR0aDogOHB4O1xuICAgIH1cbiAgICAgXG4gICAgOjotd2Via2l0LXNjcm9sbGJhci10cmFjayB7XG4gICAgICAgIGJveC1zaGFkb3c6IGluc2V0IDAgMCA2cHggcmdiYSgwLDAsMCwwLjMpOyBcbiAgICAgICAgYm9yZGVyLXJhZGl1czogMTBweDtcbiAgICB9XG4gICAgIFxuICAgIDo6LXdlYmtpdC1zY3JvbGxiYXItdGh1bWIge1xuICAgICAgICBib3JkZXItcmFkaXVzOiAxMHB4O1xuICAgICAgICBib3gtc2hhZG93OiBpbnNldCAwIDAgNnB4IHJnYmEoMCwwLDAsMC41KTsgXG4gICAgfVxuICAgIGlucHV0IHtcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogI2ZmZmZmZjtcbiAgICAgICAgY29sb3I6ICMwMDAwMDA7XG4gICAgfVxuICAgIC5hcnJvdyB7XG4gICAgICAgIGJvcmRlcjogMXB4IHNvbGlkIGhzbCgwLCAwJSwgNzYlKTtcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjojMDA3N2M4O1xuICAgICAgICB3aWR0aDogMTAwJTtcbiAgICAgICAgaGVpZ2h0OiAzMHB4O1xuICAgICAgICBjdXJzb3I6IHBvaW50ZXI7XG4gICAgICAgIG1hcmdpbi1ib3R0b206IDglO1xuICAgICAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gICAgICAgIC5tYXQtaWNvbiB7XG4gICAgICAgICAgICBmb250LXNpemU6IDM1cHg7XG4gICAgICAgICAgICB3aWR0aDogMTAwJTtcbiAgICAgICAgfVxuICAgIH1cbiAgICAud29yZGluZyB7XG4gICAgICAgIGxhYmVsIHtcbiAgICAgICAgICAgIGZsb2F0OiBsZWZ0O1xuICAgICAgICAgICAgd2lkdGg6IDQwJTtcbiAgICAgICAgICAgIC8vIG1hcmdpbi10b3A6IDQlO1xuICAgICAgICB9XG4gICAgICAgIGlucHV0W3R5cGU9XCJ0ZXh0XCJdIHtcbiAgICAgICAgICAgIHRleHQtdHJhbnNmb3JtOnVwcGVyY2FzZTtcbiAgICAgICAgICAgIHdpZHRoOiA5MCU7XG4gICAgICAgICAgICBtaW4taGVpZ2h0OiAyNXB4O1xuICAgICAgICAgICAgcGFkZGluZy1sZWZ0OiA1cHg7XG4gICAgICAgIH1cbiAgICB9XG4gICAgOjpuZy1kZWVwIC5tYXQtc2VsZWN0aW9uLWxpc3Qge1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiB3aGl0ZTtcbiAgICAgICAgbWluLWhlaWdodDogMTQ1cHg7XG4gICAgICAgIGhlaWdodDogMDtcbiAgICAgICAgb3ZlcmZsb3c6IGF1dG87XG4gICAgICAgIHBhZGRpbmctdG9wOiAwO1xuICAgICAgICAuc2VsZWN0LWxpc3R7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjMDA3N0M4O1xuICAgICAgICAgICAgY29sb3I6ICNmZmZmZmY7XG4gICAgICAgIH1cbiAgICAgICAgLm1hdC1saXN0LWl0ZW0ge1xuICAgICAgICAgICAgaGVpZ2h0OiAyMnB4ICFpbXBvcnRhbnQ7XG4gICAgICAgIH1cbiAgICAgICAgLm1hdC1saXN0LWl0ZW0tY29udGVudCB7XG4gICAgICAgICAgICAubWF0LWxpc3QtdGV4dCB7XG4gICAgICAgICAgICAgICAgZm9udC1zaXplOiAxM3B4O1xuICAgICAgICAgICAgICAgIHBhZGRpbmc6IDA7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICB9XG4gICAgLmFjdGlvbi1idG4ge1xuICAgICAgICBkaXNwbGF5OiBpbmxpbmUtZ3JpZDtcbiAgICAgICAgdG9wOjI0JTtcbiAgICAgICAgYnV0dG9uIHtcbiAgICAgICAgLy8gICBtYXJnaW46IDVweDtcbiAgICAgICAgICAgIC8vIG1hcmdpbi1yaWdodDogNXB4O1xuICAgICAgICAgICAgLy8gd2lkdGg6IDUwJTtcbiAgICAgICAgICAgIFxuICAgICAgICAgICAgLy8gbWFyZ2luOiAwIDEwcHg7ICAgICAgXG4gICAgICAgICAgICB3aWR0aDogNDklO1xuICAgICAgICAgICAgaGVpZ2h0OiAzNnB4O1xuICAgICAgICAgICAgZm9udC1mYW1pbHk6IFJvYm90byxcIkhlbHZldGljYSBOZXVlXCIsc2Fucy1zZXJpZjtcbiAgICAgICAgICAgIGZvbnQtc2l6ZTogMTNweDtcbiAgICAgICAgICAgIGZvbnQtd2VpZ2h0OiA1MDA7XG4gICAgICAgICAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gICAgICAgICAgICBib3JkZXI6IDBweCBzb2xpZDtcbiAgICAgICAgICAgIHBhZGRpbmc6IDAgIWltcG9ydGFudDtcbiAgICAgICAgICAgIGJvcmRlci1yYWRpdXM6IDBweDtcbiAgICAgICAgfVxuICAgIH1cbiAgICAuZ3JvdXBpbmctcmFkaW8ge1xuICAgICAgICBkaXNwbGF5OiBpbmxpbmUtZmxleDtcbiAgICAgICAgLy8gaGVpZ2h0OiAyNXB4ICFpbXBvcnRhbnQ7XG4gICAgICAgIDo6bmctZGVlcCAubWF0LWNoZWNrYm94IHtcbiAgICAgICAgICAgIG1hcmdpbjogNXB4O1xuICAgICAgICAgICAgLm1hdC1jaGVja2JveC1mcmFtZSB7XG4gICAgICAgICAgICAgICAgYm9yZGVyLWNvbG9yOiB3aGl0ZTtcbiAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgLm1hdC1jaGVja2JveC1iYWNrZ3JvdW5kIHtcbiAgICAgICAgICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogd2hpdGU7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICAubWF0LWNoZWNrYm94LWNoZWNrbWFyay1wYXRoIHtcbiAgICAgICAgICAgICAgICBzdHJva2U6ICMwMDc3YzggIWltcG9ydGFudDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgICBpbnB1dFt0eXBlPVwibnVtYmVyXCJdIHtcbiAgICAgICAgICAgIHdpZHRoOiA2MCU7XG4gICAgICAgICAgICBtYXJnaW4tbGVmdDogMTUlO1xuICAgICAgICAgICAgbWFyZ2luLXRvcDogOHB4O1xuICAgICAgICAgICAgaGVpZ2h0OiAyNXB4O1xuICAgICAgICAgICAgcGFkZGluZy1sZWZ0OiA1cHg7XG4gICAgICAgIH1cbiAgICAgICAgLmFsbC1ncm91cGluZyB7XG4gICAgICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICB9XG4gICAgfVxufVxuXG4iLCIuZ3JvdXBpbmctZmxhZyB7XG4gIHdpZHRoOiA4MCU7XG4gIG1hcmdpbi10b3A6IDIwcHg7XG4gIGJhY2tncm91bmQtY29sb3I6ICMwMDlCNzc7XG4gIGNvbG9yOiB3aGl0ZTtcbiAgZm9udC1mYW1pbHk6IFJvYm90bywgXCJIZWx2ZXRpY2EgTmV1ZVwiLCBzYW5zLXNlcmlmICFpbXBvcnRhbnQ7XG4gIGZvbnQtc2l6ZTogMTRweCAhaW1wb3J0YW50O1xufVxuLmdyb3VwaW5nLWZsYWcgLnRpdGxlLXNwYW4ge1xuICBmb250LWZhbWlseTogUm9ib3RvLCBcIkhlbHZldGljYSBOZXVlXCIsIHNhbnMtc2VyaWY7XG4gIGZvbnQtc2l6ZTogMTRweDtcbiAgZm9udC13ZWlnaHQ6IDUwMDtcbiAgbGluZS1oZWlnaHQ6IDE3cHg7XG59XG4uZ3JvdXBpbmctZmxhZyAudGV4dC1zcGFuIHtcbiAgZm9udC1mYW1pbHk6IFJvYm90bywgXCJIZWx2ZXRpY2EgTmV1ZVwiLCBzYW5zLXNlcmlmO1xuICBmb250LXNpemU6IDExcHg7XG4gIGZvbnQtd2VpZ2h0OiA0MDA7XG59XG4uZ3JvdXBpbmctZmxhZyAucm93IHtcbiAgZGlzcGxheTogaW5saW5lLWZsZXg7XG4gIG1heC13aWR0aDogNTUwcHg7XG59XG4uZ3JvdXBpbmctZmxhZyAuY29sdW1uMSB7XG4gIGZsZXg6IDE1JTtcbiAgcGFkZGluZzogNXB4O1xufVxuLmdyb3VwaW5nLWZsYWcgLmNvbHVtbiB7XG4gIGZsZXg6IDI1JTtcbiAgcGFkZGluZzogNXB4O1xufVxuLmdyb3VwaW5nLWZsYWcgLmNvbHVtbjpudGgtY2hpbGQoMSkge1xuICBmbGV4OiAzNSU7XG59XG4uZ3JvdXBpbmctZmxhZyAuY29sdW1uOm50aC1jaGlsZCgyKSB7XG4gIGZsZXg6IDE1JTtcbn1cbi5ncm91cGluZy1mbGFnIDo6LXdlYmtpdC1zY3JvbGxiYXIge1xuICB3aWR0aDogOHB4O1xufVxuLmdyb3VwaW5nLWZsYWcgOjotd2Via2l0LXNjcm9sbGJhci10cmFjayB7XG4gIGJveC1zaGFkb3c6IGluc2V0IDAgMCA2cHggcmdiYSgwLCAwLCAwLCAwLjMpO1xuICBib3JkZXItcmFkaXVzOiAxMHB4O1xufVxuLmdyb3VwaW5nLWZsYWcgOjotd2Via2l0LXNjcm9sbGJhci10aHVtYiB7XG4gIGJvcmRlci1yYWRpdXM6IDEwcHg7XG4gIGJveC1zaGFkb3c6IGluc2V0IDAgMCA2cHggcmdiYSgwLCAwLCAwLCAwLjUpO1xufVxuLmdyb3VwaW5nLWZsYWcgaW5wdXQge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjZmZmZmZmO1xuICBjb2xvcjogIzAwMDAwMDtcbn1cbi5ncm91cGluZy1mbGFnIC5hcnJvdyB7XG4gIGJvcmRlcjogMXB4IHNvbGlkICNjMmMyYzI7XG4gIGJhY2tncm91bmQtY29sb3I6ICMwMDc3Yzg7XG4gIHdpZHRoOiAxMDAlO1xuICBoZWlnaHQ6IDMwcHg7XG4gIGN1cnNvcjogcG9pbnRlcjtcbiAgbWFyZ2luLWJvdHRvbTogOCU7XG4gIHRleHQtYWxpZ246IGNlbnRlcjtcbn1cbi5ncm91cGluZy1mbGFnIC5hcnJvdyAubWF0LWljb24ge1xuICBmb250LXNpemU6IDM1cHg7XG4gIHdpZHRoOiAxMDAlO1xufVxuLmdyb3VwaW5nLWZsYWcgLndvcmRpbmcgbGFiZWwge1xuICBmbG9hdDogbGVmdDtcbiAgd2lkdGg6IDQwJTtcbn1cbi5ncm91cGluZy1mbGFnIC53b3JkaW5nIGlucHV0W3R5cGU9dGV4dF0ge1xuICB0ZXh0LXRyYW5zZm9ybTogdXBwZXJjYXNlO1xuICB3aWR0aDogOTAlO1xuICBtaW4taGVpZ2h0OiAyNXB4O1xuICBwYWRkaW5nLWxlZnQ6IDVweDtcbn1cbi5ncm91cGluZy1mbGFnIDo6bmctZGVlcCAubWF0LXNlbGVjdGlvbi1saXN0IHtcbiAgYmFja2dyb3VuZC1jb2xvcjogd2hpdGU7XG4gIG1pbi1oZWlnaHQ6IDE0NXB4O1xuICBoZWlnaHQ6IDA7XG4gIG92ZXJmbG93OiBhdXRvO1xuICBwYWRkaW5nLXRvcDogMDtcbn1cbi5ncm91cGluZy1mbGFnIDo6bmctZGVlcCAubWF0LXNlbGVjdGlvbi1saXN0IC5zZWxlY3QtbGlzdCB7XG4gIGJhY2tncm91bmQtY29sb3I6ICMwMDc3Qzg7XG4gIGNvbG9yOiAjZmZmZmZmO1xufVxuLmdyb3VwaW5nLWZsYWcgOjpuZy1kZWVwIC5tYXQtc2VsZWN0aW9uLWxpc3QgLm1hdC1saXN0LWl0ZW0ge1xuICBoZWlnaHQ6IDIycHggIWltcG9ydGFudDtcbn1cbi5ncm91cGluZy1mbGFnIDo6bmctZGVlcCAubWF0LXNlbGVjdGlvbi1saXN0IC5tYXQtbGlzdC1pdGVtLWNvbnRlbnQgLm1hdC1saXN0LXRleHQge1xuICBmb250LXNpemU6IDEzcHg7XG4gIHBhZGRpbmc6IDA7XG59XG4uZ3JvdXBpbmctZmxhZyAuYWN0aW9uLWJ0biB7XG4gIGRpc3BsYXk6IGlubGluZS1ncmlkO1xuICB0b3A6IDI0JTtcbn1cbi5ncm91cGluZy1mbGFnIC5hY3Rpb24tYnRuIGJ1dHRvbiB7XG4gIHdpZHRoOiA0OSU7XG4gIGhlaWdodDogMzZweDtcbiAgZm9udC1mYW1pbHk6IFJvYm90bywgXCJIZWx2ZXRpY2EgTmV1ZVwiLCBzYW5zLXNlcmlmO1xuICBmb250LXNpemU6IDEzcHg7XG4gIGZvbnQtd2VpZ2h0OiA1MDA7XG4gIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgYm9yZGVyOiAwcHggc29saWQ7XG4gIHBhZGRpbmc6IDAgIWltcG9ydGFudDtcbiAgYm9yZGVyLXJhZGl1czogMHB4O1xufVxuLmdyb3VwaW5nLWZsYWcgLmdyb3VwaW5nLXJhZGlvIHtcbiAgZGlzcGxheTogaW5saW5lLWZsZXg7XG59XG4uZ3JvdXBpbmctZmxhZyAuZ3JvdXBpbmctcmFkaW8gOjpuZy1kZWVwIC5tYXQtY2hlY2tib3gge1xuICBtYXJnaW46IDVweDtcbn1cbi5ncm91cGluZy1mbGFnIC5ncm91cGluZy1yYWRpbyA6Om5nLWRlZXAgLm1hdC1jaGVja2JveCAubWF0LWNoZWNrYm94LWZyYW1lIHtcbiAgYm9yZGVyLWNvbG9yOiB3aGl0ZTtcbn1cbi5ncm91cGluZy1mbGFnIC5ncm91cGluZy1yYWRpbyA6Om5nLWRlZXAgLm1hdC1jaGVja2JveCAubWF0LWNoZWNrYm94LWJhY2tncm91bmQge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiB3aGl0ZTtcbn1cbi5ncm91cGluZy1mbGFnIC5ncm91cGluZy1yYWRpbyA6Om5nLWRlZXAgLm1hdC1jaGVja2JveCAubWF0LWNoZWNrYm94LWNoZWNrbWFyay1wYXRoIHtcbiAgc3Ryb2tlOiAjMDA3N2M4ICFpbXBvcnRhbnQ7XG59XG4uZ3JvdXBpbmctZmxhZyAuZ3JvdXBpbmctcmFkaW8gaW5wdXRbdHlwZT1udW1iZXJdIHtcbiAgd2lkdGg6IDYwJTtcbiAgbWFyZ2luLWxlZnQ6IDE1JTtcbiAgbWFyZ2luLXRvcDogOHB4O1xuICBoZWlnaHQ6IDI1cHg7XG4gIHBhZGRpbmctbGVmdDogNXB4O1xufVxuLmdyb3VwaW5nLWZsYWcgLmdyb3VwaW5nLXJhZGlvIC5hbGwtZ3JvdXBpbmcge1xuICBkaXNwbGF5OiBmbGV4O1xufSJdfQ== */\"","import { Component, OnInit, Input, Output, EventEmitter } from '@angular/core';\n\n@Component({\n selector: 'app-flag-grouping',\n templateUrl: './flag-grouping.component.html',\n styleUrls: ['./flag-grouping.component.scss']\n})\nexport class FlagGroupingComponent implements OnInit {\n @Input() selectedListItem: string;\n @Input() sommeSelected: boolean;\n @Output() setSomme = new EventEmitter();\n\n constructor() { }\n\n ngOnInit() {\n }\n\n\n submit() {\n const value = {\n value: this.sommeSelected,\n // value: this.groupingText.length ? this.groupingText : this.criteria,\n blnCancel: false\n };\n this.setSomme.emit(value);\n }\n\n cancel() {\n const value = {\n value: this.sommeSelected,\n // value: this.groupingText.length ? this.groupingText : this.criteria,\n blnCancel: true\n };\n this.setSomme.emit(value);\n }\n\n}\n","export default \".grouping {\\n width: 80%;\\n margin-top: 20px;\\n margin-left: 5px;\\n background-color: #0077c8;\\n color: white;\\n font-family: Roboto, \\\"Helvetica Neue\\\", sans-serif !important;\\n font-size: 14px !important;\\n}\\n.grouping .title-span {\\n font-family: Roboto, \\\"Helvetica Neue\\\", sans-serif;\\n font-size: 14px;\\n font-weight: 500;\\n line-height: 17px;\\n}\\n.grouping .text-span {\\n font-family: Roboto, \\\"Helvetica Neue\\\", sans-serif;\\n font-size: 11px;\\n font-weight: 400;\\n line-height: 28px;\\n}\\n.grouping .row {\\n display: inline-flex;\\n max-width: 550px;\\n}\\n.grouping .column1 {\\n flex: 15%;\\n padding: 5px;\\n}\\n.grouping .column {\\n flex: 25%;\\n padding: 5px;\\n}\\n.grouping .column:nth-child(1) {\\n flex: 35%;\\n}\\n.grouping .column:nth-child(2) {\\n flex: 15%;\\n}\\n.grouping ::-webkit-scrollbar {\\n width: 8px;\\n}\\n.grouping ::-webkit-scrollbar-track {\\n box-shadow: inset 0 0 6px rgba(0, 0, 0, 0.3);\\n border-radius: 10px;\\n}\\n.grouping ::-webkit-scrollbar-thumb {\\n border-radius: 10px;\\n box-shadow: inset 0 0 6px rgba(0, 0, 0, 0.5);\\n}\\n.grouping input {\\n background-color: #ffffff;\\n color: #000000;\\n}\\n.grouping .arrow {\\n border: 1px solid #c2c2c2;\\n background-color: #0077c8;\\n width: 100%;\\n height: 30px;\\n cursor: pointer;\\n margin-bottom: 8%;\\n text-align: center;\\n}\\n.grouping .arrow .mat-icon {\\n font-size: 35px;\\n width: 100%;\\n}\\n.grouping .wording label {\\n float: left;\\n width: 40%;\\n}\\n.grouping .wording input[type=text] {\\n text-transform: uppercase;\\n width: 90%;\\n min-height: 25px;\\n padding-left: 5px;\\n}\\n.grouping ::ng-deep .mat-selection-list {\\n background-color: white;\\n min-height: 145px;\\n height: 0;\\n overflow: auto;\\n padding-top: 0;\\n}\\n.grouping ::ng-deep .mat-selection-list .select-list {\\n background-color: #0077C8;\\n color: #ffffff;\\n}\\n.grouping ::ng-deep .mat-selection-list .mat-list-item {\\n height: 22px !important;\\n}\\n.grouping ::ng-deep .mat-selection-list .mat-list-item-content .mat-list-text {\\n font-size: 13px;\\n padding: 0;\\n}\\n.grouping .action-btn {\\n display: inline-grid;\\n top: 24%;\\n}\\n.grouping .action-btn button {\\n width: 70px;\\n height: 36px;\\n font-family: Roboto, \\\"Helvetica Neue\\\", sans-serif;\\n font-size: 13px;\\n font-weight: 500;\\n text-align: center;\\n border: 0px solid;\\n padding: 0 !important;\\n border-radius: 0px;\\n}\\n.grouping .grouping-radio {\\n display: inline-flex;\\n}\\n.grouping .grouping-radio ::ng-deep .mat-checkbox {\\n margin: 5px;\\n}\\n.grouping .grouping-radio ::ng-deep .mat-checkbox .mat-checkbox-frame {\\n border-color: white;\\n}\\n.grouping .grouping-radio ::ng-deep .mat-checkbox .mat-checkbox-background {\\n background-color: white;\\n}\\n.grouping .grouping-radio ::ng-deep .mat-checkbox .mat-checkbox-checkmark-path {\\n stroke: #0077c8 !important;\\n}\\n.grouping .grouping-radio input[type=number] {\\n width: 60%;\\n margin-left: 15%;\\n margin-top: 8px;\\n height: 25px;\\n padding-left: 5px;\\n}\\n.grouping .grouping-radio input::-webkit-outer-spin-button,\\n.grouping .grouping-radio input::-webkit-inner-spin-button {\\n -webkit-appearance: none;\\n margin: 0;\\n}\\n.grouping .grouping-radio .all-grouping {\\n display: flex;\\n}\\n.cls-displaynone {\\n display: none !important;\\n}\\n/*# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi91c3Ivc3JjL3NyYy9hcHAvY29tcG9uZW50L3F1ZXJ5L2dyb3VwaW5nL2dyb3VwaW5nLWxpc3QvZ3JvdXBpbmctbGlzdC5jb21wb25lbnQuc2NzcyIsInNyYy9hcHAvY29tcG9uZW50L3F1ZXJ5L2dyb3VwaW5nL2dyb3VwaW5nLWxpc3QvZ3JvdXBpbmctbGlzdC5jb21wb25lbnQuc2NzcyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQTtFQUNJLFVBQUE7RUFDQSxnQkFBQTtFQUNBLGdCQUFBO0VBQ0EseUJBQUE7RUFDQSxZQUFBO0VBQ0EsNERBQUE7RUFDQSwwQkFBQTtBQ0NKO0FEQUk7RUFDSSxpREFBQTtFQUNBLGVBQUE7RUFDQSxnQkFBQTtFQUNBLGlCQUFBO0FDRVI7QURBSTtFQUNJLGlEQUFBO0VBQ0EsZUFBQTtFQUNBLGdCQUFBO0VBQ0EsaUJBQUE7QUNFUjtBRENJO0VBQ0ksb0JBQUE7RUFDQSxnQkFBQTtBQ0NSO0FEQ0k7RUFDSSxTQUFBO0VBQ0EsWUFBQTtBQ0NSO0FERUk7RUFDSSxTQUFBO0VBQ0EsWUFBQTtBQ0FSO0FER0k7RUFDSSxTQUFBO0FDRFI7QURHSTtFQUNJLFNBQUE7QUNEUjtBREdJO0VBQ0ksVUFBQTtBQ0RSO0FESUk7RUFDSSw0Q0FBQTtFQUNBLG1CQUFBO0FDRlI7QURLSTtFQUNJLG1CQUFBO0VBQ0EsNENBQUE7QUNIUjtBRE1JO0VBQ0kseUJBQUE7RUFDQSxjQUFBO0FDSlI7QURNSTtFQUNJLHlCQUFBO0VBQ0EseUJBQUE7RUFDQSxXQUFBO0VBQ0EsWUFBQTtFQUNBLGVBQUE7RUFDQSxpQkFBQTtFQUNBLGtCQUFBO0FDSlI7QURLUTtFQUNJLGVBQUE7RUFDQSxXQUFBO0FDSFo7QURPUTtFQUNJLFdBQUE7RUFDQSxVQUFBO0FDTFo7QURRUTtFQUNJLHlCQUFBO0VBQ0EsVUFBQTtFQUNBLGdCQUFBO0VBQ0EsaUJBQUE7QUNOWjtBRFNJO0VBQ0ksdUJBQUE7RUFDQSxpQkFBQTtFQUNBLFNBQUE7RUFDQSxjQUFBO0VBQ0EsY0FBQTtBQ1BSO0FEUVE7RUFDSSx5QkFBQTtFQUNBLGNBQUE7QUNOWjtBRFFRO0VBQ0ksdUJBQUE7QUNOWjtBRFNZO0VBQ0ksZUFBQTtFQUNBLFVBQUE7QUNQaEI7QURXSTtFQUNJLG9CQUFBO0VBQ0EsUUFBQTtBQ1RSO0FEVVE7RUFNSSxXQUFBO0VBQ0EsWUFBQTtFQUNBLGlEQUFBO0VBQ0EsZUFBQTtFQUNBLGdCQUFBO0VBQ0Esa0JBQUE7RUFDQSxpQkFBQTtFQUNBLHFCQUFBO0VBQ0Esa0JBQUE7QUNiWjtBRGdCSTtFQUNJLG9CQUFBO0FDZFI7QURnQlE7RUFDSSxXQUFBO0FDZFo7QURlWTtFQUNJLG1CQUFBO0FDYmhCO0FEZVk7RUFDUSx1QkFBQTtBQ2JwQjtBRGVZO0VBQ0ksMEJBQUE7QUNiaEI7QURnQlE7RUFDSSxVQUFBO0VBQ0EsZ0JBQUE7RUFDQSxlQUFBO0VBQ0EsWUFBQTtFQUNBLGlCQUFBO0FDZFo7QURnQlE7O0VBRUEsd0JBQUE7RUFDQSxTQUFBO0FDZFI7QURnQlE7RUFDSSxhQUFBO0FDZFo7QURtQkE7RUFDSSx3QkFBQTtBQ2hCSiIsImZpbGUiOiJzcmMvYXBwL2NvbXBvbmVudC9xdWVyeS9ncm91cGluZy9ncm91cGluZy1saXN0L2dyb3VwaW5nLWxpc3QuY29tcG9uZW50LnNjc3MiLCJzb3VyY2VzQ29udGVudCI6WyIuZ3JvdXBpbmcge1xuICAgIHdpZHRoOiA4MCU7XG4gICAgbWFyZ2luLXRvcDogMjBweDtcbiAgICBtYXJnaW4tbGVmdDogNXB4O1xuICAgIGJhY2tncm91bmQtY29sb3I6ICMwMDc3Yzg7XG4gICAgY29sb3I6d2hpdGU7XG4gICAgZm9udC1mYW1pbHk6IFJvYm90bywgXCJIZWx2ZXRpY2EgTmV1ZVwiLCBzYW5zLXNlcmlmICFpbXBvcnRhbnQ7XG4gICAgZm9udC1zaXplOiAxNHB4ICFpbXBvcnRhbnQ7XG4gICAgLnRpdGxlLXNwYW57XG4gICAgICAgIGZvbnQtZmFtaWx5OiBSb2JvdG8sIFwiSGVsdmV0aWNhIE5ldWVcIiwgc2Fucy1zZXJpZjtcbiAgICAgICAgZm9udC1zaXplOiAxNHB4O1xuICAgICAgICBmb250LXdlaWdodDogNTAwO1xuICAgICAgICBsaW5lLWhlaWdodDogMTdweDtcbiAgICB9XG4gICAgLnRleHQtc3BhbntcbiAgICAgICAgZm9udC1mYW1pbHk6IFJvYm90bywgXCJIZWx2ZXRpY2EgTmV1ZVwiLCBzYW5zLXNlcmlmO1xuICAgICAgICBmb250LXNpemU6IDExcHg7XG4gICAgICAgIGZvbnQtd2VpZ2h0OiA0MDA7XG4gICAgICAgIGxpbmUtaGVpZ2h0OiAyOHB4O1xuICAgICAgICAvLyBtYXJnaW4tbGVmdDogLTRweDtcbiAgICB9XG4gICAgLnJvdyB7XG4gICAgICAgIGRpc3BsYXk6IGlubGluZS1mbGV4O1xuICAgICAgICBtYXgtd2lkdGg6IDU1MHB4O1xuICAgIH1cbiAgICAuY29sdW1uMSB7XG4gICAgICAgIGZsZXg6IDE1JTtcbiAgICAgICAgcGFkZGluZzogNXB4O1xuICAgICAgICAvLyBhbGlnbi1zZWxmOiBjZW50ZXI7XG4gICAgfVxuICAgIC5jb2x1bW4ge1xuICAgICAgICBmbGV4OiAyNSU7XG4gICAgICAgIHBhZGRpbmc6IDVweDtcbiAgICAgICAgLy8gYWxpZ24tc2VsZjogY2VudGVyO1xuICAgIH1cbiAgICAuY29sdW1uOm50aC1jaGlsZCgxKSB7XG4gICAgICAgIGZsZXg6IDM1JTtcbiAgICB9XG4gICAgLmNvbHVtbjpudGgtY2hpbGQoMikge1xuICAgICAgICBmbGV4OiAxNSU7XG4gICAgfVxuICAgIDo6LXdlYmtpdC1zY3JvbGxiYXIge1xuICAgICAgICB3aWR0aDogOHB4O1xuICAgIH1cbiAgICAgXG4gICAgOjotd2Via2l0LXNjcm9sbGJhci10cmFjayB7XG4gICAgICAgIGJveC1zaGFkb3c6IGluc2V0IDAgMCA2cHggcmdiYSgwLDAsMCwwLjMpOyBcbiAgICAgICAgYm9yZGVyLXJhZGl1czogMTBweDtcbiAgICB9XG4gICAgIFxuICAgIDo6LXdlYmtpdC1zY3JvbGxiYXItdGh1bWIge1xuICAgICAgICBib3JkZXItcmFkaXVzOiAxMHB4O1xuICAgICAgICBib3gtc2hhZG93OiBpbnNldCAwIDAgNnB4IHJnYmEoMCwwLDAsMC41KTsgXG4gICAgfVxuXG4gICAgaW5wdXQge1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjZmZmZmZmO1xuICAgICAgICBjb2xvcjogIzAwMDAwMDtcbiAgICB9XG4gICAgLmFycm93IHtcbiAgICAgICAgYm9yZGVyOiAxcHggc29saWQgaHNsKDAsIDAlLCA3NiUpO1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiMwMDc3Yzg7XG4gICAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgICBoZWlnaHQ6IDMwcHg7XG4gICAgICAgIGN1cnNvcjogcG9pbnRlcjtcbiAgICAgICAgbWFyZ2luLWJvdHRvbTogOCU7XG4gICAgICAgIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgICAgICAgLm1hdC1pY29uIHtcbiAgICAgICAgICAgIGZvbnQtc2l6ZTogMzVweDtcbiAgICAgICAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgICB9XG4gICAgfVxuICAgIC53b3JkaW5nIHtcbiAgICAgICAgbGFiZWwge1xuICAgICAgICAgICAgZmxvYXQ6IGxlZnQ7XG4gICAgICAgICAgICB3aWR0aDogNDAlO1xuICAgICAgICAgICAgLy8gbWFyZ2luLXRvcDogNCU7XG4gICAgICAgIH1cbiAgICAgICAgaW5wdXRbdHlwZT1cInRleHRcIl0ge1xuICAgICAgICAgICAgdGV4dC10cmFuc2Zvcm06dXBwZXJjYXNlO1xuICAgICAgICAgICAgd2lkdGg6IDkwJTtcbiAgICAgICAgICAgIG1pbi1oZWlnaHQ6IDI1cHg7XG4gICAgICAgICAgICBwYWRkaW5nLWxlZnQ6IDVweDtcbiAgICAgICAgfVxuICAgIH1cbiAgICA6Om5nLWRlZXAgLm1hdC1zZWxlY3Rpb24tbGlzdCB7XG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6IHdoaXRlO1xuICAgICAgICBtaW4taGVpZ2h0OiAxNDVweDtcbiAgICAgICAgaGVpZ2h0OiAwO1xuICAgICAgICBvdmVyZmxvdzogYXV0bztcbiAgICAgICAgcGFkZGluZy10b3A6IDA7XG4gICAgICAgIC5zZWxlY3QtbGlzdHtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICMwMDc3Qzg7XG4gICAgICAgICAgICBjb2xvcjogI2ZmZmZmZjtcbiAgICAgICAgfVxuICAgICAgICAubWF0LWxpc3QtaXRlbSB7XG4gICAgICAgICAgICBoZWlnaHQ6IDIycHggIWltcG9ydGFudDtcbiAgICAgICAgfVxuICAgICAgICAubWF0LWxpc3QtaXRlbS1jb250ZW50IHtcbiAgICAgICAgICAgIC5tYXQtbGlzdC10ZXh0IHtcbiAgICAgICAgICAgICAgICBmb250LXNpemU6IDEzcHg7XG4gICAgICAgICAgICAgICAgcGFkZGluZzogMDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgIH1cbiAgICAuYWN0aW9uLWJ0biB7XG4gICAgICAgIGRpc3BsYXk6IGlubGluZS1ncmlkO1xuICAgICAgICB0b3A6MjQlO1xuICAgICAgICBidXR0b24ge1xuICAgICAgICAvLyAgIG1hcmdpbjogNXB4O1xuICAgICAgICAgICAgLy8gbWFyZ2luLXJpZ2h0OiA1cHg7XG4gICAgICAgICAgICAvLyB3aWR0aDogNTAlO1xuICAgICAgICAgICAgXG4gICAgICAgICAgICAvLyBtYXJnaW46IDAgMTBweDsgICAgICBcbiAgICAgICAgICAgIHdpZHRoOiA3MHB4O1xuICAgICAgICAgICAgaGVpZ2h0OiAzNnB4O1xuICAgICAgICAgICAgZm9udC1mYW1pbHk6IFJvYm90byxcIkhlbHZldGljYSBOZXVlXCIsc2Fucy1zZXJpZjtcbiAgICAgICAgICAgIGZvbnQtc2l6ZTogMTNweDtcbiAgICAgICAgICAgIGZvbnQtd2VpZ2h0OiA1MDA7XG4gICAgICAgICAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gICAgICAgICAgICBib3JkZXI6IDBweCBzb2xpZDtcbiAgICAgICAgICAgIHBhZGRpbmc6IDAgIWltcG9ydGFudDtcbiAgICAgICAgICAgIGJvcmRlci1yYWRpdXM6IDBweDtcbiAgICAgICAgfVxuICAgIH1cbiAgICAuZ3JvdXBpbmctcmFkaW8ge1xuICAgICAgICBkaXNwbGF5OiBpbmxpbmUtZmxleDtcbiAgICAgICAgLy8gaGVpZ2h0OiAyNXB4ICFpbXBvcnRhbnQ7XG4gICAgICAgIDo6bmctZGVlcCAubWF0LWNoZWNrYm94IHtcbiAgICAgICAgICAgIG1hcmdpbjogNXB4O1xuICAgICAgICAgICAgLm1hdC1jaGVja2JveC1mcmFtZSB7XG4gICAgICAgICAgICAgICAgYm9yZGVyLWNvbG9yOiB3aGl0ZTtcbiAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgLm1hdC1jaGVja2JveC1iYWNrZ3JvdW5kIHtcbiAgICAgICAgICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogd2hpdGU7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICAubWF0LWNoZWNrYm94LWNoZWNrbWFyay1wYXRoIHtcbiAgICAgICAgICAgICAgICBzdHJva2U6ICMwMDc3YzggIWltcG9ydGFudDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgICBpbnB1dFt0eXBlPVwibnVtYmVyXCJdIHtcbiAgICAgICAgICAgIHdpZHRoOiA2MCU7XG4gICAgICAgICAgICBtYXJnaW4tbGVmdDogMTUlO1xuICAgICAgICAgICAgbWFyZ2luLXRvcDogOHB4O1xuICAgICAgICAgICAgaGVpZ2h0OiAyNXB4O1xuICAgICAgICAgICAgcGFkZGluZy1sZWZ0OiA1cHg7XG4gICAgICAgIH1cbiAgICAgICAgaW5wdXQ6Oi13ZWJraXQtb3V0ZXItc3Bpbi1idXR0b24sXG4gICAgICAgIGlucHV0Ojotd2Via2l0LWlubmVyLXNwaW4tYnV0dG9uIHtcbiAgICAgICAgLXdlYmtpdC1hcHBlYXJhbmNlOiBub25lO1xuICAgICAgICBtYXJnaW46IDA7XG4gICAgICAgIH1cbiAgICAgICAgLmFsbC1ncm91cGluZyB7XG4gICAgICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICB9XG4gICAgfVxufVxuXG4uY2xzLWRpc3BsYXlub25le1xuICAgIGRpc3BsYXk6bm9uZSAhaW1wb3J0YW50O1xufSIsIi5ncm91cGluZyB7XG4gIHdpZHRoOiA4MCU7XG4gIG1hcmdpbi10b3A6IDIwcHg7XG4gIG1hcmdpbi1sZWZ0OiA1cHg7XG4gIGJhY2tncm91bmQtY29sb3I6ICMwMDc3Yzg7XG4gIGNvbG9yOiB3aGl0ZTtcbiAgZm9udC1mYW1pbHk6IFJvYm90bywgXCJIZWx2ZXRpY2EgTmV1ZVwiLCBzYW5zLXNlcmlmICFpbXBvcnRhbnQ7XG4gIGZvbnQtc2l6ZTogMTRweCAhaW1wb3J0YW50O1xufVxuLmdyb3VwaW5nIC50aXRsZS1zcGFuIHtcbiAgZm9udC1mYW1pbHk6IFJvYm90bywgXCJIZWx2ZXRpY2EgTmV1ZVwiLCBzYW5zLXNlcmlmO1xuICBmb250LXNpemU6IDE0cHg7XG4gIGZvbnQtd2VpZ2h0OiA1MDA7XG4gIGxpbmUtaGVpZ2h0OiAxN3B4O1xufVxuLmdyb3VwaW5nIC50ZXh0LXNwYW4ge1xuICBmb250LWZhbWlseTogUm9ib3RvLCBcIkhlbHZldGljYSBOZXVlXCIsIHNhbnMtc2VyaWY7XG4gIGZvbnQtc2l6ZTogMTFweDtcbiAgZm9udC13ZWlnaHQ6IDQwMDtcbiAgbGluZS1oZWlnaHQ6IDI4cHg7XG59XG4uZ3JvdXBpbmcgLnJvdyB7XG4gIGRpc3BsYXk6IGlubGluZS1mbGV4O1xuICBtYXgtd2lkdGg6IDU1MHB4O1xufVxuLmdyb3VwaW5nIC5jb2x1bW4xIHtcbiAgZmxleDogMTUlO1xuICBwYWRkaW5nOiA1cHg7XG59XG4uZ3JvdXBpbmcgLmNvbHVtbiB7XG4gIGZsZXg6IDI1JTtcbiAgcGFkZGluZzogNXB4O1xufVxuLmdyb3VwaW5nIC5jb2x1bW46bnRoLWNoaWxkKDEpIHtcbiAgZmxleDogMzUlO1xufVxuLmdyb3VwaW5nIC5jb2x1bW46bnRoLWNoaWxkKDIpIHtcbiAgZmxleDogMTUlO1xufVxuLmdyb3VwaW5nIDo6LXdlYmtpdC1zY3JvbGxiYXIge1xuICB3aWR0aDogOHB4O1xufVxuLmdyb3VwaW5nIDo6LXdlYmtpdC1zY3JvbGxiYXItdHJhY2sge1xuICBib3gtc2hhZG93OiBpbnNldCAwIDAgNnB4IHJnYmEoMCwgMCwgMCwgMC4zKTtcbiAgYm9yZGVyLXJhZGl1czogMTBweDtcbn1cbi5ncm91cGluZyA6Oi13ZWJraXQtc2Nyb2xsYmFyLXRodW1iIHtcbiAgYm9yZGVyLXJhZGl1czogMTBweDtcbiAgYm94LXNoYWRvdzogaW5zZXQgMCAwIDZweCByZ2JhKDAsIDAsIDAsIDAuNSk7XG59XG4uZ3JvdXBpbmcgaW5wdXQge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjZmZmZmZmO1xuICBjb2xvcjogIzAwMDAwMDtcbn1cbi5ncm91cGluZyAuYXJyb3cge1xuICBib3JkZXI6IDFweCBzb2xpZCAjYzJjMmMyO1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjMDA3N2M4O1xuICB3aWR0aDogMTAwJTtcbiAgaGVpZ2h0OiAzMHB4O1xuICBjdXJzb3I6IHBvaW50ZXI7XG4gIG1hcmdpbi1ib3R0b206IDglO1xuICB0ZXh0LWFsaWduOiBjZW50ZXI7XG59XG4uZ3JvdXBpbmcgLmFycm93IC5tYXQtaWNvbiB7XG4gIGZvbnQtc2l6ZTogMzVweDtcbiAgd2lkdGg6IDEwMCU7XG59XG4uZ3JvdXBpbmcgLndvcmRpbmcgbGFiZWwge1xuICBmbG9hdDogbGVmdDtcbiAgd2lkdGg6IDQwJTtcbn1cbi5ncm91cGluZyAud29yZGluZyBpbnB1dFt0eXBlPXRleHRdIHtcbiAgdGV4dC10cmFuc2Zvcm06IHVwcGVyY2FzZTtcbiAgd2lkdGg6IDkwJTtcbiAgbWluLWhlaWdodDogMjVweDtcbiAgcGFkZGluZy1sZWZ0OiA1cHg7XG59XG4uZ3JvdXBpbmcgOjpuZy1kZWVwIC5tYXQtc2VsZWN0aW9uLWxpc3Qge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiB3aGl0ZTtcbiAgbWluLWhlaWdodDogMTQ1cHg7XG4gIGhlaWdodDogMDtcbiAgb3ZlcmZsb3c6IGF1dG87XG4gIHBhZGRpbmctdG9wOiAwO1xufVxuLmdyb3VwaW5nIDo6bmctZGVlcCAubWF0LXNlbGVjdGlvbi1saXN0IC5zZWxlY3QtbGlzdCB7XG4gIGJhY2tncm91bmQtY29sb3I6ICMwMDc3Qzg7XG4gIGNvbG9yOiAjZmZmZmZmO1xufVxuLmdyb3VwaW5nIDo6bmctZGVlcCAubWF0LXNlbGVjdGlvbi1saXN0IC5tYXQtbGlzdC1pdGVtIHtcbiAgaGVpZ2h0OiAyMnB4ICFpbXBvcnRhbnQ7XG59XG4uZ3JvdXBpbmcgOjpuZy1kZWVwIC5tYXQtc2VsZWN0aW9uLWxpc3QgLm1hdC1saXN0LWl0ZW0tY29udGVudCAubWF0LWxpc3QtdGV4dCB7XG4gIGZvbnQtc2l6ZTogMTNweDtcbiAgcGFkZGluZzogMDtcbn1cbi5ncm91cGluZyAuYWN0aW9uLWJ0biB7XG4gIGRpc3BsYXk6IGlubGluZS1ncmlkO1xuICB0b3A6IDI0JTtcbn1cbi5ncm91cGluZyAuYWN0aW9uLWJ0biBidXR0b24ge1xuICB3aWR0aDogNzBweDtcbiAgaGVpZ2h0OiAzNnB4O1xuICBmb250LWZhbWlseTogUm9ib3RvLCBcIkhlbHZldGljYSBOZXVlXCIsIHNhbnMtc2VyaWY7XG4gIGZvbnQtc2l6ZTogMTNweDtcbiAgZm9udC13ZWlnaHQ6IDUwMDtcbiAgdGV4dC1hbGlnbjogY2VudGVyO1xuICBib3JkZXI6IDBweCBzb2xpZDtcbiAgcGFkZGluZzogMCAhaW1wb3J0YW50O1xuICBib3JkZXItcmFkaXVzOiAwcHg7XG59XG4uZ3JvdXBpbmcgLmdyb3VwaW5nLXJhZGlvIHtcbiAgZGlzcGxheTogaW5saW5lLWZsZXg7XG59XG4uZ3JvdXBpbmcgLmdyb3VwaW5nLXJhZGlvIDo6bmctZGVlcCAubWF0LWNoZWNrYm94IHtcbiAgbWFyZ2luOiA1cHg7XG59XG4uZ3JvdXBpbmcgLmdyb3VwaW5nLXJhZGlvIDo6bmctZGVlcCAubWF0LWNoZWNrYm94IC5tYXQtY2hlY2tib3gtZnJhbWUge1xuICBib3JkZXItY29sb3I6IHdoaXRlO1xufVxuLmdyb3VwaW5nIC5ncm91cGluZy1yYWRpbyA6Om5nLWRlZXAgLm1hdC1jaGVja2JveCAubWF0LWNoZWNrYm94LWJhY2tncm91bmQge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiB3aGl0ZTtcbn1cbi5ncm91cGluZyAuZ3JvdXBpbmctcmFkaW8gOjpuZy1kZWVwIC5tYXQtY2hlY2tib3ggLm1hdC1jaGVja2JveC1jaGVja21hcmstcGF0aCB7XG4gIHN0cm9rZTogIzAwNzdjOCAhaW1wb3J0YW50O1xufVxuLmdyb3VwaW5nIC5ncm91cGluZy1yYWRpbyBpbnB1dFt0eXBlPW51bWJlcl0ge1xuICB3aWR0aDogNjAlO1xuICBtYXJnaW4tbGVmdDogMTUlO1xuICBtYXJnaW4tdG9wOiA4cHg7XG4gIGhlaWdodDogMjVweDtcbiAgcGFkZGluZy1sZWZ0OiA1cHg7XG59XG4uZ3JvdXBpbmcgLmdyb3VwaW5nLXJhZGlvIGlucHV0Ojotd2Via2l0LW91dGVyLXNwaW4tYnV0dG9uLFxuLmdyb3VwaW5nIC5ncm91cGluZy1yYWRpbyBpbnB1dDo6LXdlYmtpdC1pbm5lci1zcGluLWJ1dHRvbiB7XG4gIC13ZWJraXQtYXBwZWFyYW5jZTogbm9uZTtcbiAgbWFyZ2luOiAwO1xufVxuLmdyb3VwaW5nIC5ncm91cGluZy1yYWRpbyAuYWxsLWdyb3VwaW5nIHtcbiAgZGlzcGxheTogZmxleDtcbn1cblxuLmNscy1kaXNwbGF5bm9uZSB7XG4gIGRpc3BsYXk6IG5vbmUgIWltcG9ydGFudDtcbn0iXX0= */\"","import { Component, Input, Output, EventEmitter, OnChanges } from '@angular/core';\nimport { UtilService } from '../../../../services/util/util.service';\n\n@Component({\n selector: 'app-grouping-list',\n templateUrl: './grouping-list.component.html',\n styleUrls: ['./grouping-list.component.scss']\n})\n\nexport class GoupingListComponent {\n @Input() title: string;\n @Input() selectedListItem: string;\n @Input() displayGroupingForm: string;\n @Input() isEnableAllTextBox: boolean;\n @Input() screenName: boolean;\n @Output() setGrouping = new EventEmitter();\n wording: string;\n allText: string = '0';\n selectedItem: string;\n groupingText: string[] = [];\n selectedCriterias: string[] = [];\n isSubmitted: boolean = false;\n criteria: string;\n criteriaOptions = [\n { name: 'COMPACT', value: 'Code Compact', selected: false },\n { name: 'ALL', value: 'Tous', selected: false },\n { name: 'INDEX', value: 'Indice', selected: false }]\n\n constructor(readonly utilService: UtilService) { }\n\n ngOnChanges() {\n this.groupingText = [];\n let freeFormat: boolean = false;\n if (!this.isEnableAllTextBox) {\n this.allText = '10';\n }\n if (this.displayGroupingForm) {\n for (const item of this.criteriaOptions) {\n // if (item.value === this.displayGroupingForm.split(',')[0]) {\n if (this.utilService.getTranslateName(`NEW_QUERY.CHARACTER_LIST.${item.name}`) === this.displayGroupingForm.split(',')[0]) {\n item.selected = true;\n // this.criteria = item.value\n this.criteria = this.utilService.getTranslateName(`NEW_QUERY.CHARACTER_LIST.${item.name}`);\n this.isSubmitted = true;\n freeFormat = true;\n if (this.displayGroupingForm.split(',')[1]) {\n this.allText = this.displayGroupingForm.split(',')[1].trim();\n }\n }\n }\n if (!freeFormat) {\n for (const item of this.displayGroupingForm.split(',')) {\n this.groupingText.push(item);\n this.isSubmitted = true;\n }\n }\n }\n }\n\n moveRight() {\n if (this.wording && !this.groupingText.includes(this.wording.toLocaleUpperCase())) {\n this.groupingText.push(this.wording.toLocaleUpperCase());\n this.selectedCriterias.push(this.wording);\n this.isSubmitted = true;\n this.wording = '';\n }\n }\n moveLeft() {\n this.groupingText = this.groupingText.filter(item => this.selectedItem !== item);\n this.wording = this.selectedItem;\n // this.selectedItem = '';\n }\n\n moveUp(id) {\n document.getElementById(id).scrollBy(0, -20);\n this.array_move(-1);\n }\n\n moveDown(id) {\n document.getElementById(id).scrollBy(0, 20);\n this.array_move(1);\n }\n\n array_move(list) {\n let clonedGroupingText = [...this.groupingText];\n for (let item of this.selectedCriterias) {\n let old_index = clonedGroupingText.indexOf(item);\n let new_index = old_index + list;\n if (new_index <= -1 || new_index >= this.groupingText.length) {\n return;\n }\n this.groupingText.splice(new_index, 0, this.groupingText.splice(old_index, 1)[0]);\n }\n return this.groupingText;\n }\n\n checkSelectedListItem(value) {\n this.selectedCriterias = [];\n this.selectedCriterias.push(value);\n this.selectedItem = value;\n }\n\n maxLengthCheck(object) {\n object.target.value = Math.abs(object.target.value);\n if (object.target.value.length > object.target.maxLength)\n object.target.value = object.target.value.slice(0, object.target.maxLength)\n }\n\n checkSelectedCheckboxOptions(list) {\n if (list.selected) {\n this.isSubmitted = true;\n // this.criteria = list.value;\n this.criteria = this.utilService.getTranslateName(`NEW_QUERY.CHARACTER_LIST.${list.name}`);\n } else {\n if (this.groupingText.length === 0) {\n this.isSubmitted = false;\n }\n this.allText = '0';\n if (!this.isEnableAllTextBox) {\n this.allText = '10';\n }\n this.criteria = '';\n }\n this.criteriaOptions.some(criteria => {\n if (criteria.name !== list.name) {\n criteria.selected = false;\n }\n });\n }\n\n submit() {\n let allTextValue: string = '';\n if (Number(this.allText) !== 0 && this.allText !== null) {\n allTextValue = ',' + ((Number(this.allText) < 0) ? (-Number(this.allText)).toString() : ((Number(this.allText) > 0) ? this.allText : ''));\n }\n if (this.groupingText.length || this.criteria) {\n this.isSubmitted = true;\n // this.criteria = this.criteria === 'Tous' ? this.criteria + allTextValue : this.criteria;\n this.criteria = this.criteria === this.utilService.getTranslateName(`NEW_QUERY.CHARACTER_LIST.ALL`) ? this.criteria + allTextValue : this.criteria;\n let value = {\n value: this.criteria ? this.criteria : this.groupingText,\n displayGroupingForm: false\n };\n this.setGrouping.emit(value);\n this.groupingText = [];\n this.selectedCriterias = [];\n this.criteria = '';\n }\n }\n\n cancel() {\n let value = {\n value: '',\n displayGroupingForm: false\n };\n this.setGrouping.emit(value);\n }\n}","export default \"#header {\\n min-height: 90%;\\n}\\n\\n#header-content {\\n position: absolute;\\n bottom: 0;\\n margin-left: 3px;\\n}\\n\\n.item {\\n height: calc(100vh - 35px);\\n background-color: #ffffff;\\n}\\n\\ndiv#container {\\n position: relative;\\n /* needed for footer positioning*/\\n height: auto !important;\\n /* real browsers */\\n min-height: 100%;\\n /* real browsers */\\n width: 422px;\\n}\\n\\ndiv#header {\\n padding: 1em;\\n background: #efe;\\n}\\n\\n.footer {\\n position: fixed;\\n width: 30%;\\n bottom: 0;\\n /* stick to bottom */\\n background: green;\\n}\\n\\n.container {\\n height: 100%;\\n display: flex;\\n}\\n\\n.column-panel1 {\\n height: 100%;\\n min-width: 400px;\\n background-color: white;\\n}\\n\\n.column-panel4 {\\n min-width: 39px;\\n}\\n\\n.column-panel2 {\\n height: 100%;\\n max-width: 530px;\\n background-color: white;\\n}\\n\\n.column-panel3 {\\n height: 100%;\\n width: 100%;\\n background: #2D4557;\\n overflow: hidden;\\n}\\n\\n.maximum-img {\\n width: 14px;\\n height: 14px;\\n position: absolute;\\n top: -22px;\\n float: right;\\n background: #ffffff;\\n cursor: pointer;\\n}\\n\\n.panel-1 {\\n position: relative;\\n overflow-y: auto;\\n margin-top: 8px;\\n width: 395px;\\n}\\n\\n.panel-1 .mat-list-item {\\n cursor: pointer !important;\\n}\\n\\n.close {\\n font-size: 18px;\\n position: absolute;\\n top: 38px;\\n right: 0;\\n cursor: pointer;\\n}\\n\\n.footer-panel1 {\\n width: 400px;\\n bottom: 0;\\n /* stick to bottom */\\n height: 38px;\\n background: #000000;\\n}\\n\\n.footer-panel4 {\\n width: 39px;\\n bottom: 0;\\n /* stick to bottom */\\n background: #000000;\\n height: 38px;\\n}\\n\\n.footer-panel2 {\\n width: 530px;\\n bottom: 0;\\n /* stick to bottom */\\n background: #000000;\\n height: 38px;\\n}\\n\\n.footer-panel3 {\\n width: 99%;\\n bottom: 0;\\n background: #000000;\\n height: 38px;\\n}\\n\\n.arrow {\\n border: 1px solid #c3c3c3;\\n background-color: white;\\n padding: 19px 0px 0px 7px;\\n}\\n\\n.arrow_detail {\\n padding: 19px 0px 0px 4px;\\n background-color: #bbbcbc;\\n}\\n\\n.main {\\n align-self: center;\\n width: 39px;\\n height: calc(100% - 37px) !important;\\n display: flex;\\n flex-wrap: wrap;\\n align-content: center;\\n background-color: #E9EEF0;\\n}\\n\\n.main div {\\n width: 49px;\\n height: 40px;\\n}\\n\\n.center-key {\\n width: 26px;\\n position: -webkit-sticky !important;\\n position: sticky !important;\\n right: 0;\\n bottom: 48%;\\n float: right;\\n padding: 2px;\\n}\\n\\n.center-key .arrow {\\n border: 1px solid #c3c3c3;\\n background-color: white;\\n padding: 15px 10px 0px 0px;\\n}\\n\\n.mater-icons {\\n margin-left: -8px;\\n margin-top: -7px;\\n font-size: 40px !important;\\n}\\n\\n.delay-span {\\n font-family: Roboto, \\\"Helvetica Neue\\\", sans-serif;\\n font-size: 14px;\\n font-weight: 500;\\n line-height: 17px;\\n margin-left: 0px;\\n}\\n\\n.delay-span-period {\\n font-family: Roboto, \\\"Helvetica Neue\\\", sans-serif;\\n font-size: 13px;\\n font-weight: 500;\\n line-height: 17px;\\n margin-left: -3px;\\n}\\n\\n.label-span {\\n font-family: Roboto, \\\"Helvetica Neue\\\", sans-serif;\\n font-size: 11px;\\n font-weight: 400;\\n line-height: 28px;\\n color: #bbbcbc;\\n}\\n\\n.text-span {\\n font-family: Roboto, \\\"Helvetica Neue\\\", sans-serif;\\n font-size: 11px;\\n font-weight: 400;\\n line-height: 28px;\\n}\\n\\n.text-span-wo-line-height {\\n font-family: Roboto, \\\"Helvetica Neue\\\", sans-serif;\\n font-size: 11px;\\n font-weight: 400;\\n}\\n\\n.text-span-font {\\n font-family: Roboto, \\\"Helvetica Neue\\\", sans-serif;\\n font-size: 11px;\\n font-weight: 400;\\n line-height: 13px;\\n}\\n\\n.bar-chart-icon-rotate {\\n transform: rotate(90deg);\\n display: inline-block;\\n margin-left: 5px;\\n margin-top: 8px;\\n}\\n\\n.title-span {\\n font-family: Roboto, \\\"Helvetica Neue\\\", sans-serif;\\n font-size: 14px;\\n font-weight: 500;\\n line-height: 17px;\\n}\\n\\n.title-span-Abbr {\\n font-family: Roboto, \\\"Helvetica Neue\\\", sans-serif;\\n font-size: 14px;\\n font-weight: 600;\\n line-height: 17px;\\n padding: 10px 0 10px 0;\\n}\\n\\n.button-panel2 {\\n width: 75px;\\n height: 36px !important;\\n font-family: Roboto, \\\"Helvetica Neue\\\", sans-serif;\\n font-size: 13px;\\n font-weight: 500;\\n text-align: center;\\n border: 0px solid;\\n background-color: #FFCC33;\\n padding: 0 !important;\\n border-radius: 0px;\\n line-height: 36px !important;\\n}\\n\\n::ng-deep .mat-select {\\n font-family: Roboto, \\\"Helvetica Neue\\\", sans-serif;\\n font-size: 11px;\\n font-weight: 400;\\n}\\n\\n::ng-deep .mat-select:focus:not(.mat-select-disabled).mat-primary .mat-select-arrow {\\n border-left: 15px solid transparent !important;\\n border-right: none !important;\\n border-top: 15px solid transparent !important;\\n border-image-source: url('Down.svg') !important;\\n border-image-repeat: stretch !important;\\n}\\n\\n::ng-deep .mat-select-panel {\\n box-shadow: 0px 2px 4px -1px rgba(0, 0, 0, 0.2), 0px 4px 5px 0px rgba(0, 0, 0, 0.14), 0px 1px 10px 0px rgba(0, 0, 0, 0.12);\\n margin-top: 35px;\\n max-height: 280px !important;\\n}\\n\\n::ng-deep .mat-select-trigger {\\n color: #63961C;\\n border-image-source: url('close.svg') !important;\\n}\\n\\n/* to change selected item color in the select list */\\n\\n.mat-primary .mat-option.mat-selected:not(.mat-option-disabled) {\\n color: #63961C;\\n}\\n\\n::ng-deep.mat-pseudo-checkbox {\\n display: none !important;\\n}\\n\\n.custom-scroll-bar {\\n height: calc(100% - 136px);\\n overflow-y: scroll;\\n overflow-x: hidden;\\n margin-right: 5px;\\n}\\n\\n.custom-scroll-bar::-webkit-scrollbar {\\n width: 10px;\\n}\\n\\n.custom-scroll-bar::-webkit-scrollbar-thumb {\\n background-color: #E9EEF0;\\n border-radius: 5px;\\n}\\n\\n.req-active {\\n background: #ffffff !important;\\n color: #000000 !important;\\n}\\n\\n::ng-deep.mat-menu-panel {\\n margin-top: 3px !important;\\n border: 1px solid #cccccc;\\n max-width: 600px !important;\\n}\\n\\n.mat-list-border-left {\\n border-right: 1px solid #cccccc;\\n}\\n\\n.hrline-top {\\n width: 96%;\\n margin-left: 15px;\\n margin-right: 0px;\\n margin-top: 0px;\\n border-top: 1px solid #ccc;\\n}\\n\\n.mat-list-item:hover {\\n background-color: #f6f9fa;\\n}\\n\\n.selected-highlight {\\n background-color: #E9EEF0;\\n}\\n\\n.request-close {\\n height: 14px;\\n width: 14px;\\n float: right;\\n margin-right: 5px;\\n margin-top: 8px;\\n cursor: pointer;\\n border-radius: 50px;\\n}\\n\\n.request-close:hover {\\n background-color: #e9f4f8;\\n}\\n\\n.mat-expansion-panel:not([class*=mat-elevation-z]) {\\n box-shadow: none;\\n}\\n\\n::ng-deep.mat-expansion-indicator::after {\\n border-style: none !important;\\n}\\n\\n.mat-expansion-panel-header {\\n padding: 0;\\n}\\n\\n::ng-deep.mat-expansion-panel-body {\\n padding: 0 !important;\\n}\\n\\n.mat-expansion-panel-spacing {\\n margin: 2px 0;\\n}\\n\\n.div-m-height {\\n min-height: 20% !important;\\n height: 30% !important;\\n max-height: 40% !important;\\n border: 1px solid;\\n}\\n\\n.section-backcolour {\\n background-color: #D3D9E0;\\n cursor: pointer;\\n}\\n\\n.select-list-blue {\\n background-color: #0077C8;\\n color: #ffffff;\\n}\\n\\n.select-list-blue:hover {\\n background-color: #0077C8;\\n color: #ffffff;\\n}\\n\\n.select-list-delay {\\n background-color: #009CA6;\\n color: #ffffff;\\n}\\n\\n.select-list-delay:hover {\\n background-color: #009CA6;\\n color: #ffffff;\\n}\\n\\n.select-list-green {\\n background-color: #009B77;\\n color: #ffffff;\\n}\\n\\n.select-list-green:hover {\\n background-color: #009B77;\\n color: #ffffff;\\n}\\n\\n.group-list {\\n background-color: #0077C8;\\n color: #ffffff;\\n}\\n\\n.group-list:hover {\\n background-color: #0077C8;\\n color: #ffffff;\\n}\\n\\n.group-list-green {\\n background-color: #009B77;\\n color: #ffffff;\\n}\\n\\n.border-class {\\n box-sizing: border-box;\\n border: 3px solid #000000;\\n}\\n\\n.border-class .line-segment:nth-child(1) {\\n margin-top: -6px;\\n}\\n\\n.border-top {\\n border-top: 0;\\n}\\n\\n.border-bottom {\\n border-bottom: 0;\\n}\\n\\n.border-or {\\n border-top: 0.1px solid #000000;\\n border-bottom: 0.1px solid #000000;\\n}\\n\\n.or_cls {\\n margin-left: 4%;\\n pointer-events: all;\\n padding-bottom: 6px;\\n padding-left: 10px;\\n}\\n\\n.sauf-list {\\n background-color: #cb333b !important;\\n color: #ffffff;\\n}\\n\\n.sauf-list:hover {\\n background-color: #cb333b;\\n color: #ffffff;\\n}\\n\\n.group-list-green:hover {\\n background-color: #009B77;\\n color: #ffffff;\\n}\\n\\n.group-list-bottom-space {\\n margin-bottom: 3px;\\n}\\n\\n#groupingList ::ng-deep .mat-list-item, #vueDetailList ::ng-deep .mat-list-item {\\n height: initial !important;\\n word-break: break-all;\\n}\\n\\n#groupingList ::ng-deep .mat-list-text, #vueDetailList ::ng-deep .mat-list-text {\\n line-height: 10px;\\n overflow: visible;\\n}\\n\\n#groupingList ::ng-deep .mat-list-item-content, #vueDetailList ::ng-deep .mat-list-item-content {\\n padding: 0 10px;\\n}\\n\\n.list-pad {\\n padding: 10px 0 !important;\\n}\\n\\n.tab_name {\\n text-overflow: ellipsis;\\n overflow: hidden;\\n white-space: nowrap;\\n width: 100%;\\n cursor: pointer;\\n margin-top: 3px;\\n}\\n\\n::ng-deep #groupingList .mat-list-option[aria-selected=true] .group-list, ::ng-deep #characterListId .mat-list-option[aria-selected=true] .group-list {\\n background-color: #cccccc;\\n color: #000000;\\n}\\n\\n::ng-deep #groupingList .mat-list-option[aria-selected=true] .sauf-list, ::ng-deep #characterListId .mat-list-option[aria-selected=true] .sauf-list {\\n background-color: #cccccc !important;\\n color: #000000;\\n}\\n\\n::ng-deep #groupingList .mat-list-option[aria-selected=true] .group-list-green, ::ng-deep #characterListId .mat-list-option[aria-selected=true] .group-list-green {\\n background-color: #cccccc;\\n color: #000000;\\n}\\n\\n::ng-deep #groupingList .mat-list-option[aria-selected=true] .select-list-delay, ::ng-deep #characterListId .mat-list-option[aria-selected=true] .select-list-delay {\\n background-color: #cccccc;\\n color: #000000;\\n}\\n\\n#characterListId {\\n /* Rounded sliders */\\n}\\n\\n#characterListId ::ng-deep .mat-list-item {\\n height: initial !important;\\n word-break: break-all;\\n}\\n\\n#characterListId ::ng-deep .mat-list-text {\\n line-height: 10px;\\n overflow: visible;\\n}\\n\\n#characterListId ::ng-deep .mat-list-item-content {\\n padding: 0 10px;\\n}\\n\\n#characterListId .pointer_none {\\n pointer-events: none;\\n}\\n\\n#characterListId .row {\\n display: inline-flex;\\n width: 100%;\\n}\\n\\n#characterListId .column1 {\\n width: 20%;\\n margin-right: 2%;\\n}\\n\\n#characterListId .transform {\\n transform: translateY(-28px);\\n}\\n\\n#characterListId .column-cls {\\n margin-left: 5%;\\n}\\n\\n#characterListId .column2 {\\n width: 80%;\\n}\\n\\n#characterListId .column3 {\\n width: 20%;\\n}\\n\\n#characterListId .ET-column {\\n width: 5%;\\n margin-top: 5px;\\n}\\n\\n#characterListId .divider-column {\\n margin-top: 15px;\\n width: 91%;\\n}\\n\\n#characterListId .divider-column .mat-divider {\\n border-top-width: 2px !important;\\n}\\n\\n#characterListId .value-cls {\\n margin-top: 3px;\\n margin-bottom: 5px;\\n}\\n\\n#characterListId .operator-class {\\n width: 25px;\\n height: 8px;\\n border: 2px solid #000000;\\n padding: 5px;\\n text-align: center;\\n border-radius: 22%;\\n background-color: #ffffff;\\n color: #000000;\\n font-weight: 600;\\n font-size: 12px;\\n cursor: pointer;\\n}\\n\\n#characterListId .line-segment {\\n width: 2px;\\n height: 6px;\\n background-color: #000;\\n margin-left: 20px;\\n float: left;\\n color: #ffffff;\\n position: relative;\\n}\\n\\n#characterListId .add-class {\\n margin-top: 6px;\\n margin-bottom: 0;\\n font-size: 18px;\\n}\\n\\n#characterListId .last {\\n display: none;\\n}\\n\\n#characterListId .text-span-font {\\n width: 345px;\\n}\\n\\n#characterListId .sauf-text {\\n margin-left: 18%;\\n font-size: 12px;\\n}\\n\\n#characterListId .switch {\\n position: relative;\\n width: 37px;\\n height: 18px;\\n margin-left: auto;\\n}\\n\\n#characterListId .switch input {\\n opacity: 0;\\n width: 0;\\n height: 0;\\n}\\n\\n#characterListId .slider {\\n position: absolute;\\n cursor: pointer;\\n top: 0;\\n left: 0;\\n right: 0;\\n bottom: 0;\\n background-color: transparent;\\n transition: 0.4s;\\n}\\n\\n#characterListId .slider:before {\\n position: absolute;\\n content: \\\"\\\";\\n height: 14px;\\n width: 14px;\\n left: 1px;\\n top: 1px;\\n background-color: #ffffff;\\n transition: 0.4s;\\n}\\n\\n#characterListId input:checked + .slider {\\n background-color: #cb333b;\\n}\\n\\n#characterListId input:focus + .slider {\\n box-shadow: 0 0 1px #0077C8;\\n}\\n\\n#characterListId input:checked + .slider:before {\\n transform: translateX(19px);\\n}\\n\\n#characterListId .slider.round {\\n border-radius: 34px;\\n border: 1px solid #ffffff;\\n}\\n\\n#characterListId .slider.round:before {\\n border-radius: 50%;\\n}\\n\\n::ng-deep #vueDetailList .mat-list-option[aria-selected=true] .group-list {\\n background-color: #cccccc;\\n color: #000000;\\n}\\n\\n::ng-deep #vueDetailList .mat-list-option[aria-selected=true] .group-list-green {\\n background-color: #cccccc;\\n color: #000000;\\n}\\n\\n::ng-deep #vueDetailList .mat-list-option[aria-selected=true] .select-list-delay {\\n background-color: #cccccc;\\n color: #000000;\\n}\\n\\n.select-group-list:hover {\\n background-color: #cccccc !important;\\n color: #000000 !important;\\n}\\n\\n.example-radio-group {\\n display: flex;\\n flex-direction: column;\\n margin: 15px 0;\\n}\\n\\n.example-radio-button {\\n margin: 5px;\\n}\\n\\n.grouping-radio-date {\\n overflow-y: auto;\\n height: calc(100vh - 116px);\\n}\\n\\n.grouping-radio-date .date-section {\\n padding: 5px 0px 0px 15px;\\n height: calc((100vh - 130px)/2);\\n}\\n\\n.grouping-radio-date ::ng-deep .mat-checkbox {\\n margin: 5px;\\n}\\n\\n.grouping-radio-date ::ng-deep .mat-checkbox .mat-checkbox-frame {\\n margin: -1px;\\n border: 1px solid #cccccc;\\n}\\n\\n.grouping-radio-date ::ng-deep .mat-checkbox .mat-checkbox-background {\\n background-color: white;\\n}\\n\\n.grouping-radio-date ::ng-deep .mat-checkbox .mat-checkbox-checkmark-path {\\n stroke: #0077c8 !important;\\n}\\n\\n.grouping-radio-date input[type=number] {\\n width: 60%;\\n margin-left: 15%;\\n margin-top: 8px;\\n height: 25px;\\n padding-left: 5px;\\n}\\n\\n.grouping-radio-date .all-grouping {\\n display: flex;\\n}\\n\\n.population-list-item {\\n border: 0px;\\n background-color: #ffffff;\\n cursor: pointer;\\n text-transform: uppercase;\\n}\\n\\n.margin-10 {\\n margin-top: 10px;\\n}\\n\\n.tick-img {\\n float: right;\\n margin-top: 5px;\\n margin-left: 10px;\\n width: 15px;\\n height: 15px;\\n}\\n\\n.population-list {\\n min-width: 180px;\\n max-height: 250px;\\n}\\n\\n.dropdown-alignment {\\n display: inline-block;\\n}\\n\\n.dropdown-alignment .up-down {\\n float: right;\\n margin-top: 7px;\\n width: 15px;\\n height: 15px;\\n}\\n\\n.dropdown-alignment .population-menu {\\n border-bottom: 1px solid #aaaaaa;\\n height: 30px;\\n cursor: pointer;\\n}\\n\\n.dropdown-alignment .dropdown-alignment:nth-child(1), .dropdown-alignment .dropdown-alignment:nth-child(2) {\\n margin-top: 0;\\n}\\n\\n.dropdown-alignment .text-span {\\n font-family: Roboto, \\\"Helvetica Neue\\\", sans-serif;\\n font-size: 11px;\\n font-weight: 400;\\n line-height: 0 !important;\\n}\\n\\n.textarea-alignment {\\n display: block;\\n padding: 0px 0px 0px 20px;\\n height: 40px;\\n width: 90%;\\n}\\n\\n.textarea-alignment input[type=text] {\\n width: 100%;\\n border-bottom: 1px solid #aaaaaa;\\n}\\n\\n.textarea-alignment input[type=text]:focus {\\n outline: none !important;\\n border-bottom: 1px solid #aaaaaa;\\n}\\n\\n.textarea-alignment .text-span {\\n font-family: Roboto, \\\"Helvetica Neue\\\", sans-serif;\\n font-size: 11px;\\n font-weight: 400;\\n line-height: 0 !important;\\n}\\n\\n.custom-delay-scroll-bar {\\n height: calc(100% - 65px);\\n overflow-y: scroll;\\n overflow-x: hidden;\\n margin-right: 5px;\\n margin-top: 5px;\\n}\\n\\n.custom-delay-scroll-bar::-webkit-scrollbar {\\n width: 10px;\\n}\\n\\n.custom-delay-scroll-bar::-webkit-scrollbar-thumb {\\n background-color: #E9EEF0;\\n border-radius: 5px;\\n}\\n\\n.item-disable {\\n cursor: not-allowed !important;\\n pointer-events: none;\\n}\\n\\n.vue-section-check {\\n width: 89%;\\n margin-top: 5px;\\n margin-left: 20px;\\n font-family: Roboto, \\\"Helvetica Neue\\\", sans-serif;\\n font-size: 11px;\\n font-weight: 400;\\n}\\n\\n.vue-section-check ::ng-deep .mat-checkbox {\\n margin: 5px;\\n}\\n\\n.vue-section-check ::ng-deep .mat-checkbox .mat-checkbox-frame {\\n margin: -1px;\\n border: 1px solid #cccccc;\\n}\\n\\n.vue-section-check ::ng-deep .mat-checkbox .mat-checkbox-background {\\n background-color: white;\\n}\\n\\n.vue-section-check ::ng-deep .mat-checkbox .mat-checkbox-checkmark-path {\\n stroke: #0077c8 !important;\\n}\\n\\n.vue-mat-list-disabled {\\n background-color: #eeeeee !important;\\n cursor: not-allowed !important;\\n pointer-events: none;\\n color: #aaaaaa !important;\\n}\\n\\n.button-save {\\n width: 100px;\\n height: 30px !important;\\n font-family: Roboto, \\\"Helvetica Neue\\\", sans-serif;\\n font-size: 13px;\\n font-weight: 500;\\n text-align: center;\\n background-color: #FFCC33;\\n border-radius: 3px;\\n float: right;\\n}\\n\\n.cls-displayNone {\\n display: none !important;\\n}\\n\\n.appMainCtn {\\n position: relative;\\n z-index: 1;\\n}\\n/*# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi91c3Ivc3JjL3NyYy9hcHAvY29tcG9uZW50L3F1ZXJ5L21haW4tc2NyZWVuL21haW4tc2NyZWVuLmNvbXBvbmVudC5zY3NzIiwic3JjL2FwcC9jb21wb25lbnQvcXVlcnkvbWFpbi1zY3JlZW4vbWFpbi1zY3JlZW4uY29tcG9uZW50LnNjc3MiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUE7RUFFRSxlQUFBO0FDQUY7O0FER0E7RUFDRSxrQkFBQTtFQUNBLFNBQUE7RUFDQSxnQkFBQTtBQ0FGOztBREdBO0VBRUcsMEJBQUE7RUFDRCx5QkFBQTtBQ0RGOztBREtBO0VBQ0Msa0JBQUE7RUFBbUIsaUNBQUE7RUFDbkIsdUJBQUE7RUFBd0Isa0JBQUE7RUFDdkIsZ0JBQUE7RUFBaUIsa0JBQUE7RUFDakIsWUFBQTtBQ0NGOztBREVBO0VBQ0MsWUFBQTtFQUNHLGdCQUFBO0FDQ0o7O0FETUE7RUFDQyxlQUFBO0VBQ0MsVUFBQTtFQUNELFNBQUE7RUFBVSxvQkFBQTtFQUNWLGlCQUFBO0FDRkQ7O0FES0E7RUFDRSxZQUFBO0VBQ0EsYUFBQTtBQ0ZGOztBRElBO0VBQ0UsWUFBQTtFQUVBLGdCQUFBO0VBR0EsdUJBQUE7QUNKRjs7QURNQTtFQUdFLGVBQUE7QUNMRjs7QURTQTtFQUNFLFlBQUE7RUFFQSxnQkFBQTtFQUdBLHVCQUFBO0FDVEY7O0FEV0E7RUFDRSxZQUFBO0VBQ0EsV0FBQTtFQUNBLG1CQUFBO0VBQ0EsZ0JBQUE7QUNSRjs7QURVQTtFQUNFLFdBQUE7RUFDQSxZQUFBO0VBQ0Esa0JBQUE7RUFDQSxVQUFBO0VBRUEsWUFBQTtFQUNBLG1CQUFBO0VBQ0EsZUFBQTtBQ1JGOztBRFVBO0VBQ0Usa0JBQUE7RUFDQSxnQkFBQTtFQUNBLGVBQUE7RUFDQSxZQUFBO0FDUEY7O0FEU0E7RUFDRSwwQkFBQTtBQ05GOztBRFFBO0VBQ0UsZUFBQTtFQUNBLGtCQUFBO0VBQ0EsU0FBQTtFQUNBLFFBQUE7RUFDQSxlQUFBO0FDTEY7O0FEUUE7RUFDRSxZQUFBO0VB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Sjs7QUR3Q0E7RUFFSSx5QkFBQTtFQUNBLGtCQUFBO0FDdENKOztBRHlDQTtFQUNFLDhCQUFBO0VBQ0Usb0JBQUE7QUN0Q0o7O0FEeUNBO0VBQ0UsVUFBQTtFQUNBLGVBQUE7RUFDQSxpQkFBQTtFQUNBLGlEQUFBO0VBQ0EsZUFBQTtFQUNBLGdCQUFBO0FDdENGOztBRHdDRTtFQUNFLFdBQUE7QUN0Q0o7O0FEdUNJO0VBRUksWUFBQTtFQUNBLHlCQUFBO0FDdENSOztBRHdDSTtFQUNJLHVCQUFBO0FDdENSOztBRHdDSTtFQUNJLDBCQUFBO0FDdENSOztBRDJDQTtFQUNFLG9DQUFBO0VBQ0EsOEJBQUE7RUFDQSxvQkFBQTtFQUNBLHlCQUFBO0FDeENGOztBRDJDQTtFQUNFLFlBQUE7RUFDQSx1QkFBQTtFQUNBLGlEQUFBO0VBQ0EsZUFBQTtFQUNBLGdCQUFBO0VBQ0Usa0JBQUE7RUFDQSx5QkFBQTtFQUNBLGtCQUFBO0VBQ0EsWUFBQTtBQ3hDSjs7QUQyQ0E7RUFDRSx3QkFBQTtBQ3hDRjs7QUQwQ0E7RUFDRSxrQkFBQTtFQUNBLFVBQUE7QUN2Q0YiLCJmaWxlIjoic3JjL2FwcC9jb21wb25lbnQvcXVlcnkvbWFpbi1zY3JlZW4vbWFpbi1zY3JlZW4uY29tcG9uZW50LnNjc3MiLCJzb3VyY2VzQ29udGVudCI6WyIjaGVhZGVyIHtcbi8vICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICBtaW4taGVpZ2h0OiA5MCU7XG59XG5cbiNoZWFkZXItY29udGVudCB7XG4gIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgYm90dG9tOiAwO1xuICBtYXJnaW4tbGVmdDogM3B4O1xufVxuXG4uaXRlbXtcblxuICAgaGVpZ2h0OiBjYWxjKDEwMHZoIC0gMzVweCk7XG4gIGJhY2tncm91bmQtY29sb3I6ICNmZmZmZmY7XG5cbn1cblxuZGl2I2NvbnRhaW5lciB7XG5cdHBvc2l0aW9uOnJlbGF0aXZlOyAvKiBuZWVkZWQgZm9yIGZvb3RlciBwb3NpdGlvbmluZyovXG5cdGhlaWdodDphdXRvICFpbXBvcnRhbnQ7IC8qIHJlYWwgYnJvd3NlcnMgKi9cbiAgbWluLWhlaWdodDoxMDAlOyAvKiByZWFsIGJyb3dzZXJzICovXG4gIHdpZHRoOiA0MjJweDtcbn1cblxuZGl2I2hlYWRlciB7XG5cdHBhZGRpbmc6MWVtO1xuICAgIGJhY2tncm91bmQ6I2VmZTtcbn1cblxuLy8gZGl2I2NvbnRlbnQge1xuLy8gXHQvKiBwYWRkaW5nOjFlbSAxZW0gNWVtOyAqLyAvKiBib3R0b20gcGFkZGluZyBmb3IgZm9vdGVyICovXG4vLyB9XG5cbi5mb290ZXIge1xuXHRwb3NpdGlvbjpmaXhlZDtcbiAgd2lkdGg6IDMwJTtcblx0Ym90dG9tOjA7IC8qIHN0aWNrIHRvIGJvdHRvbSAqL1xuXHRiYWNrZ3JvdW5kOmdyZWVuO1xufVxuXG4uY29udGFpbmVyIHtcbiAgaGVpZ2h0OiAxMDAlO1xuICBkaXNwbGF5OiBmbGV4O1xufVxuLmNvbHVtbi1wYW5lbDEge1xuICBoZWlnaHQ6IDEwMCU7ICBcbiAgLy8gZGlzcGxheTogZmxleDtcbiAgbWluLXdpZHRoOiA0MDBweDsgICAgICAgICAgICAgICAgICAgIFxuICAvLyBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjsgICAgICAgICAgICBcbiAgLy8gYWxpZ24taXRlbXM6IGNlbnRlcjsgICBcbiAgYmFja2dyb3VuZC1jb2xvcjogd2hpdGU7ICAgICAgICAgICAgIFxufSBcbi5jb2x1bW4tcGFuZWw0IHtcbiAgLy8gaGVpZ2h0OiAxMDAlOyAgXG4gIC8vIGRpc3BsYXk6IGZsZXg7XG4gIG1pbi13aWR0aDogMzlweDsgICAgICAgICAgICAgICAgICAgIFxuICAvLyBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjsgICAgICAgICAgICBcbiAgLy8gYWxpZ24taXRlbXM6IGNlbnRlcjsgICAgICAgICAgICAgICAgXG59XG4uY29sdW1uLXBhbmVsMiB7XG4gIGhlaWdodDogMTAwJTsgIFxuICAvLyBkaXNwbGF5OiBmbGV4OyAgIFxuICBtYXgtd2lkdGg6IDUzMHB4OyAgICAgICAgICAgICAgICAgICAgXG4gIC8vIGp1c3RpZnktY29udGVudDogY2VudGVyOyAgICAgICAgICAgIFxuICAvLyBhbGlnbi1pdGVtczogY2VudGVyOyBcbiAgYmFja2dyb3VuZC1jb2xvcjogd2hpdGU7ICAgICAgICAgICAgICAgXG59XG4uY29sdW1uLXBhbmVsMyB7XG4gIGhlaWdodDogMTAwJTsgIFxuICB3aWR0aDogMTAwJTtcbiAgYmFja2dyb3VuZDogIzJENDU1NzsgICAgXG4gIG92ZXJmbG93OiBoaWRkZW47ICAgICAgICAgICBcbn0gXG4ubWF4aW11bS1pbWcge1xuICB3aWR0aDogMTRweDtcbiAgaGVpZ2h0OiAxNHB4O1xuICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gIHRvcDogLTIycHg7XG4gIC8vIHJpZ2h0OiAyJTtcbiAgZmxvYXQ6IHJpZ2h0O1xuICBiYWNrZ3JvdW5kOiAjZmZmZmZmO1xuICBjdXJzb3I6IHBvaW50ZXI7XG59XG4ucGFuZWwtMSB7XG4gIHBvc2l0aW9uOiByZWxhdGl2ZTsgXG4gIG92ZXJmbG93LXk6IGF1dG87IFxuICBtYXJnaW4tdG9wOiA4cHg7IFxuICB3aWR0aDogMzk1cHg7XG59XG4ucGFuZWwtMSAubWF0LWxpc3QtaXRlbSB7XG4gIGN1cnNvcjogcG9pbnRlciAhaW1wb3J0YW50O1xufVxuLmNsb3NlIHtcbiAgZm9udC1zaXplOjE4cHg7XG4gIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgdG9wOjM4cHg7XG4gIHJpZ2h0OjA7XG4gIGN1cnNvcjogcG9pbnRlcjtcbn1cblxuLmZvb3Rlci1wYW5lbDEge1xuICB3aWR0aDogNDAwcHg7XG4gIGJvdHRvbTowOyAvKiBzdGljayB0byBib3R0b20gKi9cbiAgaGVpZ2h0OiAzOHB4O1xuICBiYWNrZ3JvdW5kOiAjMDAwMDAwO1xufVxuLmZvb3Rlci1wYW5lbDQge1xuXHQvLyBwb3NpdGlvbjpmaXhlZDtcbiAgd2lkdGg6IDM5cHg7XG5cdGJvdHRvbTowOyAvKiBzdGljayB0byBib3R0b20gKi9cbiAgYmFja2dyb3VuZDogIzAwMDAwMDtcbiAgaGVpZ2h0OiAzOHB4O1xufVxuXG4uZm9vdGVyLXBhbmVsMiB7XG5cdC8vIHBvc2l0aW9uOmZpeGVkO1xuICB3aWR0aDogNTMwcHg7XG5cdGJvdHRvbTowOyAvKiBzdGljayB0byBib3R0b20gKi9cbiAgYmFja2dyb3VuZDogIzAwMDAwMDtcbiAgaGVpZ2h0OiAzOHB4O1xufVxuXG4uZm9vdGVyLXBhbmVsMyB7XG5cdC8vIHBvc2l0aW9uOmZpeGVkO1xuICAvLyB3aWR0aDogMTAwJTtcblx0Ly8gYm90dG9tOjA7IC8qIHN0aWNrIHRvIGJvdHRvbSAqL1xuICAvLyBiYWNrZ3JvdW5kOiAjMDAwMDAwO1xuICAvLyBoZWlnaHQ6IDlweDtcbiAgICB3aWR0aDogOTklO1xuICAgIGJvdHRvbTogMDtcbiAgICBiYWNrZ3JvdW5kOiAjMDAwMDAwO1xuICAgIGhlaWdodDogMzhweDtcbn1cbi5hcnJvd3tcbiAgYm9yZGVyOiAxcHggc29saWQgI2MzYzNjMztcbiAgYmFja2dyb3VuZC1jb2xvcjp3aGl0ZTtcbiAgcGFkZGluZzogMTlweCAwcHggMHB4IDdweDtcbn1cbi5hcnJvd19kZXRhaWxcbntcbiAgcGFkZGluZzogMTlweCAwcHggMHB4IDRweDtcbiAgYmFja2dyb3VuZC1jb2xvcjojYmJiY2JjO1xufVxuLm1haW4ge1xuICBhbGlnbi1zZWxmOiBjZW50ZXI7XG4gIHdpZHRoOiAzOXB4O1xuICBoZWlnaHQ6IGNhbGMoMTAwJSAtIDM3cHgpICFpbXBvcnRhbnQ7XG4gIGRpc3BsYXk6IGZsZXg7XG4gIGZsZXgtd3JhcDogd3JhcDtcbiAgYWxpZ24tY29udGVudDogY2VudGVyO1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjRTlFRUYwO1xufVxuLm1haW4gZGl2IHtcbiAgd2lkdGg6IDQ5cHg7XG4gIGhlaWdodDogNDBweDtcbn1cbi5jZW50ZXIta2V5IHtcbiAgLy8gd2lkdGg6IDMwcHg7XG4gIHdpZHRoOiAyNnB4O1xuICAvLyBwb3NpdGlvbjogYWJzb2x1dGU7XG4gIHBvc2l0aW9uOiBzdGlja3kgIWltcG9ydGFudDtcbiAgcmlnaHQ6IDA7XG4gIGJvdHRvbTogNDglO1xuICAvLyBtYXJnaW4tbGVmdDogOTQlO1xuICBmbG9hdDogcmlnaHQ7XG4gIC8vIGhlaWdodDogY2FsYygxMDAlIC0gMTgwcHgpICFpbXBvcnRhbnQ7XG4gIHBhZGRpbmc6IDJweDtcbiAgLmFycm93IHtcbiAgICBib3JkZXI6IDFweCBzb2xpZCAjYzNjM2MzO1xuICAgIGJhY2tncm91bmQtY29sb3I6IHdoaXRlO1xuICAgIHBhZGRpbmc6IDE1cHggMTBweCAwcHggMHB4O1xuICB9XG59XG5cbi5tYXRlci1pY29uc3tcbiAgbWFyZ2luLWxlZnQ6IC04cHg7XG4gIG1hcmdpbi10b3A6IC03cHg7XG4gIGZvbnQtc2l6ZTogNDBweCAhaW1wb3J0YW50O1xufVxuXG4uZGVsYXktc3BhbntcbiAgICBmb250LWZhbWlseTogUm9ib3RvLCBcIkhlbHZldGljYSBOZXVlXCIsIHNhbnMtc2VyaWY7XG4gICAgZm9udC1zaXplOiAxNHB4O1xuICAgIGZvbnQtd2VpZ2h0OiA1MDA7XG4gICAgbGluZS1oZWlnaHQ6IDE3cHg7XG4gICAgbWFyZ2luLWxlZnQ6IDBweDtcbiAgICAvLyBtYXJnaW4tbGVmdDogLTRweDtcbn1cblxuLmRlbGF5LXNwYW4tcGVyaW9ke1xuICAgIGZvbnQtZmFtaWx5OiBSb2JvdG8sIFwiSGVsdmV0aWNhIE5ldWVcIiwgc2Fucy1zZXJpZjtcbiAgICBmb250LXNpemU6IDEzcHg7XG4gICAgZm9udC13ZWlnaHQ6IDUwMDtcbiAgICBsaW5lLWhlaWdodDogMTdweDtcbiAgICBtYXJnaW4tbGVmdDogLTNweDtcbiAgICAvLyBtYXJnaW4tbGVmdDogLTRweDtcbn1cblxuLmxhYmVsLXNwYW57XG4gICAgZm9udC1mYW1pbHk6IFJvYm90bywgXCJIZWx2ZXRpY2EgTmV1ZVwiLCBzYW5zLXNlcmlmO1xuICAgIGZvbnQtc2l6ZTogMTFweDtcbiAgICBmb250LXdlaWdodDogNDAwO1xuICAgIGxpbmUtaGVpZ2h0OiAyOHB4O1xuICAgIGNvbG9yOiAjYmJiY2JjO1xuICAgIC8vIG1hcmdpbi1sZWZ0OiAtNHB4O1xufVxuXG4udGV4dC1zcGFue1xuICAgIGZvbnQtZmFtaWx5OiBSb2JvdG8sIFwiSGVsdmV0aWNhIE5ldWVcIiwgc2Fucy1zZXJpZjtcbiAgICBmb250LXNpemU6IDExcHg7XG4gICAgZm9udC13ZWlnaHQ6IDQwMDtcbiAgICBsaW5lLWhlaWdodDogMjhweDtcbiAgICAvLyBtYXJnaW4tbGVmdDogLTRweDtcbn1cblxuLnRleHQtc3Bhbi13by1saW5lLWhlaWdodHtcbiAgICBmb250LWZhbWlseTogUm9ib3RvLCBcIkhlbHZldGljYSBOZXVlXCIsIHNhbnMtc2VyaWY7XG4gICAgZm9udC1zaXplOiAxMXB4O1xuICAgIGZvbnQtd2VpZ2h0OiA0MDA7XG4gICAgLy8gbWFyZ2luLWxlZnQ6IC00cHg7XG59XG5cbi50ZXh0LXNwYW4tZm9udHtcbiAgICBmb250LWZhbWlseTogUm9ib3RvLCBcIkhlbHZldGljYSBOZXVlXCIsIHNhbnMtc2VyaWY7XG4gICAgZm9udC1zaXplOiAxMXB4O1xuICAgIGZvbnQtd2VpZ2h0OiA0MDA7XG4gICAgbGluZS1oZWlnaHQ6IDEzcHg7XG4gICAgLy8gbWFyZ2luLWxlZnQ6IC00cHg7XG59XG5cbi5iYXItY2hhcnQtaWNvbi1yb3RhdGV7XG4gIC13ZWJraXQtdHJhbnNmb3JtOiByb3RhdGUoNDVkZWcpO1xuICAgIC1tb3otdHJhbnNmb3JtOiByb3RhdGUoNDVkZWcpO1xuICAgIC1tcy10cmFuc2Zvcm06IHJvdGF0ZSg0NWRlZyk7XG4gICAgLW8tdHJhbnNmb3JtOiByb3RhdGUoNDVkZWcpO1xuICAgIHRyYW5zZm9ybTogcm90YXRlKDkwZGVnKTtcbiAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgLy8gcGFkZGluZzogMTVweCAyMHB4IDIwcHggMHB4O1xuICAgIG1hcmdpbi1sZWZ0OiA1cHg7XG4gICAgbWFyZ2luLXRvcDogOHB4O1xufVxuXG4udGl0bGUtc3BhbntcbiAgICBmb250LWZhbWlseTogUm9ib3RvLCBcIkhlbHZldGljYSBOZXVlXCIsIHNhbnMtc2VyaWY7XG4gICAgZm9udC1zaXplOiAxNHB4O1xuICAgIGZvbnQtd2VpZ2h0OiA1MDA7XG4gICAgbGluZS1oZWlnaHQ6IDE3cHg7XG59XG5cbi50aXRsZS1zcGFuLUFiYnJ7XG4gICAgZm9udC1mYW1pbHk6IFJvYm90bywgXCJIZWx2ZXRpY2EgTmV1ZVwiLCBzYW5zLXNlcmlmO1xuICAgIGZvbnQtc2l6ZTogMTRweDtcbiAgICBmb250LXdlaWdodDogNjAwO1xuICAgIGxpbmUtaGVpZ2h0OiAxN3B4O1xuICAgIHBhZGRpbmc6IDEwcHggMCAxMHB4IDA7XG59XG5cbi5idXR0b24tcGFuZWwyeyAgICBcbiAgd2lkdGg6IDc1cHg7XG4gICAgaGVpZ2h0OiAzNnB4ICFpbXBvcnRhbnQ7XG4gIGZvbnQtZmFtaWx5OiBSb2JvdG8sXCJIZWx2ZXRpY2EgTmV1ZVwiLHNhbnMtc2VyaWY7XG4gIGZvbnQtc2l6ZTogMTNweDtcbiAgZm9udC13ZWlnaHQ6IDUwMDtcbiAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gICAgYm9yZGVyOiAwcHggc29saWQ7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogI0ZGQ0MzMztcbiAgICBwYWRkaW5nOiAwICFpbXBvcnRhbnQ7XG4gICAgYm9yZGVyLXJhZGl1czogMHB4O1xuICAgIGxpbmUtaGVpZ2h0OiAzNnB4ICFpbXBvcnRhbnQ7XG59XG5cbjo6bmctZGVlcCAubWF0LXNlbGVjdCB7XG4gIGZvbnQtZmFtaWx5OiBSb2JvdG8sXCJIZWx2ZXRpY2EgTmV1ZVwiLHNhbnMtc2VyaWY7XG4gIGZvbnQtc2l6ZTogMTFweDtcbiAgZm9udC13ZWlnaHQ6IDQwMDtcbn1cblxuOjpuZy1kZWVwIC5tYXQtc2VsZWN0OmZvY3VzOm5vdCgubWF0LXNlbGVjdC1kaXNhYmxlZCkubWF0LXByaW1hcnkgLm1hdC1zZWxlY3QtYXJyb3cge1xuICAgIGJvcmRlci1sZWZ0OiAxNXB4IHNvbGlkIHRyYW5zcGFyZW50ICFpbXBvcnRhbnQ7XG4gICAgYm9yZGVyLXJpZ2h0OiBub25lICFpbXBvcnRhbnQ7XG4gICAgYm9yZGVyLXRvcDogMTVweCBzb2xpZCB0cmFuc3BhcmVudCAhaW1wb3J0YW50O1xuICAgIGJvcmRlci1pbWFnZS1zb3VyY2U6IHVybCgnLi4vLi4vLi4vLi4vYXNzZXRzL2ltYWdlcy9Eb3duLnN2ZycpICFpbXBvcnRhbnQ7XG4gICAgYm9yZGVyLWltYWdlLXJlcGVhdDogc3RyZXRjaCAhaW1wb3J0YW50O1xufVxuXG46Om5nLWRlZXAgLm1hdC1zZWxlY3QtcGFuZWwge1xuICAgIGJveC1zaGFkb3c6IDBweCAycHggNHB4IC0xcHggcmdiYSgwLCAwLCAwLCAwLjIpLCAwcHggNHB4IDVweCAwcHggcmdiYSgwLCAwLCAwLCAwLjE0KSwgMHB4IDFweCAxMHB4IDBweCByZ2JhKDAsIDAsIDAsIDAuMTIpO1xuICAgIG1hcmdpbi10b3A6IDM1cHg7XG4gICAgbWF4LWhlaWdodDogMjgwcHggIWltcG9ydGFudDtcbn1cblxuOjpuZy1kZWVwIC5tYXQtc2VsZWN0LXRyaWdnZXIgXG57XG4gICAgY29sb3I6ICM2Mzk2MUM7XG4gICAgYm9yZGVyLWltYWdlLXNvdXJjZTogdXJsKCcuLi8uLi8uLi8uLi9hc3NldHMvaW1hZ2VzL2Nsb3NlLnN2ZycpICFpbXBvcnRhbnQ7XG59XG5cbi8qIHRvIGNoYW5nZSBzZWxlY3RlZCBpdGVtIGNvbG9yIGluIHRoZSBzZWxlY3QgbGlzdCAqL1xuLm1hdC1wcmltYXJ5IC5tYXQtb3B0aW9uLm1hdC1zZWxlY3RlZDpub3QoLm1hdC1vcHRpb24tZGlzYWJsZWQpIHtcbiAgICBjb2xvcjogIzYzOTYxQztcbn1cblxuIDo6bmctZGVlcC5tYXQtcHNldWRvLWNoZWNrYm94e1xuICBkaXNwbGF5OiBub25lICFpbXBvcnRhbnQ7XG59XG5cbi5jdXN0b20tc2Nyb2xsLWJhcntcbiAgICAvLyBoZWlnaHQ6NzB2aDtcbiAgICBoZWlnaHQ6IGNhbGMoMTAwJSAtIDEzNnB4KTtcbiAgICBvdmVyZmxvdy15OnNjcm9sbDtcbiAgICBvdmVyZmxvdy14OiBoaWRkZW47XG4gICAgbWFyZ2luLXJpZ2h0OiA1cHg7XG59XG5cbi5jdXN0b20tc2Nyb2xsLWJhcjo6LXdlYmtpdC1zY3JvbGxiYXJ7XG4gICAgd2lkdGg6IDEwcHg7XG59XG5cbi5jdXN0b20tc2Nyb2xsLWJhcjo6LXdlYmtpdC1zY3JvbGxiYXItdGh1bWJ7XG4gICAgLy8gYmFja2dyb3VuZDogcmdiYSgwLDAsMCwuMjYpO1xuICAgIGJhY2tncm91bmQtY29sb3I6ICNFOUVFRjA7XG4gICAgYm9yZGVyLXJhZGl1czogNXB4O1xufVxuXG4ucmVxLWFjdGl2ZXtcbiAgICAgIC8vIGJhY2tncm91bmQ6IHJnYmEoMjE4LCAyMTUsIDIxNSwgMC40KSAhaW1wb3J0YW50O1xuICAgICAgYmFja2dyb3VuZDogI2ZmZmZmZiAhaW1wb3J0YW50O1xuICAgICAgY29sb3I6ICMwMDAwMDAgIWltcG9ydGFudDtcbn1cblxuOjpuZy1kZWVwLm1hdC1tZW51LXBhbmVse1xuICBtYXJnaW4tdG9wOiAzcHggIWltcG9ydGFudDtcbiAgYm9yZGVyOiAxcHggc29saWQgI2NjY2NjYztcbiAgLy8gb3ZlcmZsb3c6IGhpZGRlbjtcbiAgbWF4LXdpZHRoOiA2MDBweCAhaW1wb3J0YW50O1xufVxuXG4ubWF0LWxpc3QtYm9yZGVyLWxlZnR7XG4gIGJvcmRlci1yaWdodDogMXB4IHNvbGlkICNjY2NjY2M7XG59XG5cbi5ocmxpbmUtdG9wIHtcbiAgd2lkdGg6IDk2JTtcbiAgbWFyZ2luLWxlZnQ6IDE1cHg7XG4gIG1hcmdpbi1yaWdodDogMHB4O1xuICBtYXJnaW4tdG9wOiAwcHg7XG4gIGJvcmRlci10b3A6IDFweCBzb2xpZCAjY2NjO1xufVxuXG4ubWF0LWxpc3QtaXRlbTpob3ZlcntcbiAgYmFja2dyb3VuZC1jb2xvcjogcmdiKDI0NiwgMjQ5LCAyNTApO1xufVxuXG4uc2VsZWN0ZWQtaGlnaGxpZ2h0e1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjRTlFRUYwO1xufVxuXG4ucmVxdWVzdC1jbG9zZXtcbiAgaGVpZ2h0OjE0cHg7IFxuICB3aWR0aDogMTRweDsgXG4gIGZsb2F0OiByaWdodDsgXG4gIG1hcmdpbi1yaWdodDogNXB4OyBcbiAgbWFyZ2luLXRvcDogOHB4OyBcbiAgY3Vyc29yOiBwb2ludGVyO1xuICBib3JkZXItcmFkaXVzOiA1MHB4O1xufVxuLnJlcXVlc3QtY2xvc2U6aG92ZXJ7XG4gIGJhY2tncm91bmQtY29sb3I6IHJnYigyMzMsIDI0NCwgMjQ4KTtcbn1cblxuLm1hdC1leHBhbnNpb24tcGFuZWw6bm90KFtjbGFzcyo9bWF0LWVsZXZhdGlvbi16XSkge1xuICAgIC8vIGJveC1zaGFkb3c6IDBweCAzcHggMXB4IC0ycHggcmdiYSgwLCAwLCAwLCAwLjIpLCAwcHggMnB4IDJweCAwcHggcmdiYSgwLCAwLCAwLCAwLjE0KSwgMHB4IDFweCA1cHggMHB4IHJnYmEoMCwgMCwgMCwgMC4xMik7XG4gICAgYm94LXNoYWRvdzogbm9uZTtcbn1cblxuOjpuZy1kZWVwLm1hdC1leHBhbnNpb24taW5kaWNhdG9yOjphZnRlciB7XG4gICAgYm9yZGVyLXN0eWxlOiBub25lICFpbXBvcnRhbnQ7XG59XG5cbi5tYXQtZXhwYW5zaW9uLXBhbmVsLWhlYWRlcntcbiAgcGFkZGluZzogMDtcbn1cblxuOjpuZy1kZWVwLm1hdC1leHBhbnNpb24tcGFuZWwtYm9keSB7XG4gICAgcGFkZGluZzogMCAhaW1wb3J0YW50O1xuICAgIC8vIG1pbi1oZWlnaHQ6IDcwdmggIWltcG9ydGFudDsgXG4gICAgLy8gYm9yZGVyOiAxcHggc29saWQ7XG59XG5cbi5tYXQtZXhwYW5zaW9uLXBhbmVsLXNwYWNpbmcge1xuICAgIG1hcmdpbjogMnB4IDA7XG59XG5cbi5kaXYtbS1oZWlnaHR7XG4gICAgbWluLWhlaWdodDogMjAlICFpbXBvcnRhbnQ7XG4gICAgaGVpZ2h0OiAzMCUgIWltcG9ydGFudDtcbiAgICBtYXgtaGVpZ2h0OiA0MCUgIWltcG9ydGFudDtcbiAgICBib3JkZXI6IDFweCBzb2xpZDtcbn1cblxuLnNlY3Rpb24tYmFja2NvbG91cntcbiAgYmFja2dyb3VuZC1jb2xvcjogI0QzRDlFMDtcbiAgY3Vyc29yOiBwb2ludGVyO1xufVxuXG4uc2VsZWN0LWxpc3QtYmx1ZXtcbiAgYmFja2dyb3VuZC1jb2xvcjogIzAwNzdDODtcbiAgY29sb3I6ICNmZmZmZmY7XG59XG5cbi5zZWxlY3QtbGlzdC1ibHVlOmhvdmVye1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjMDA3N0M4O1xuICBjb2xvcjogI2ZmZmZmZjsgIFxufVxuXG4uc2VsZWN0LWxpc3QtZGVsYXl7XG4gIGJhY2tncm91bmQtY29sb3I6ICMwMDlDQTY7XG4gIGNvbG9yOiAjZmZmZmZmO1xufVxuXG4uc2VsZWN0LWxpc3QtZGVsYXk6aG92ZXJ7XG4gIGJhY2tncm91bmQtY29sb3I6ICMwMDlDQTY7XG4gIGNvbG9yOiAjZmZmZmZmOyAgXG59XG5cbi5zZWxlY3QtbGlzdC1ncmVlbntcbiAgYmFja2dyb3VuZC1jb2xvcjogIzAwOUI3NztcbiAgY29sb3I6ICNmZmZmZmY7XG59XG5cbi5zZWxlY3QtbGlzdC1ncmVlbjpob3ZlcntcbiAgYmFja2dyb3VuZC1jb2xvcjogIzAwOUI3NztcbiAgY29sb3I6ICNmZmZmZmY7ICBcbn1cblxuLmdyb3VwLWxpc3R7XG4gIGJhY2tncm91bmQtY29sb3I6ICMwMDc3Qzg7XG4gIGNvbG9yOiAjZmZmZmZmO1xufVxuXG4uZ3JvdXAtbGlzdDpob3ZlcntcbiAgYmFja2dyb3VuZC1jb2xvcjogIzAwNzdDODtcbiAgY29sb3I6ICNmZmZmZmY7ICBcbn1cblxuLmdyb3VwLWxpc3QtZ3JlZW57XG4gIGJhY2tncm91bmQtY29sb3I6ICMwMDlCNzc7XG4gIGNvbG9yOiAjZmZmZmZmO1xufVxuXG4uYm9yZGVyLWNsYXNzIHtcbiAgYm94LXNpemluZzogYm9yZGVyLWJveDtcbiAgYm9yZGVyOiAzcHggc29saWQgIzAwMDAwMDtcbiAgLy8gd2lkdGg6IDk2JSAhaW1wb3J0YW50O1xuICAubGluZS1zZWdtZW50Om50aC1jaGlsZCgxKSB7XG4gICAgbWFyZ2luLXRvcDogLTZweDtcbiAgfVxufVxuLmJvcmRlci10b3Age1xuICBib3JkZXItdG9wOiAwO1xufVxuLmJvcmRlci1ib3R0b20ge1xuICBib3JkZXItYm90dG9tOiAwO1xufVxuLmJvcmRlci1vciB7XG4gIGJvcmRlci10b3A6IDAuMXB4IHNvbGlkICMwMDAwMDA7XG4gIGJvcmRlci1ib3R0b206IDAuMXB4IHNvbGlkICMwMDAwMDA7XG59XG5cbi5vcl9jbHMge1xuICBtYXJnaW4tbGVmdDogNCU7XG4gIHBvaW50ZXItZXZlbnRzOiBhbGw7XG4gIHBhZGRpbmctYm90dG9tOiA2cHg7XG4gIHBhZGRpbmctbGVmdDogMTBweDtcbn1cbi8vIC5vci1ib3R0b20temVybyB7XG4vLyAgIHBhZGRpbmctYm90dG9tOiAwO1xuLy8gfVxuLnNhdWYtbGlzdHtcbiAgYmFja2dyb3VuZC1jb2xvcjogI2NiMzMzYiAhaW1wb3J0YW50O1xuICBjb2xvcjogI2ZmZmZmZjtcbn1cbi5zYXVmLWxpc3Q6aG92ZXJ7XG4gIGJhY2tncm91bmQtY29sb3I6ICNjYjMzM2I7XG4gIGNvbG9yOiAjZmZmZmZmOyAgXG59XG5cbi5ncm91cC1saXN0LWdyZWVuOmhvdmVye1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjMDA5Qjc3O1xuICBjb2xvcjogI2ZmZmZmZjtcbn1cblxuLmdyb3VwLWxpc3QtYm90dG9tLXNwYWNleyAgXG4gIG1hcmdpbi1ib3R0b206IDNweDtcbn1cblxuI2dyb3VwaW5nTGlzdCwgI3Z1ZURldGFpbExpc3Qge1xuICA6Om5nLWRlZXAge1xuICAgIC5tYXQtbGlzdC1pdGVtIHtcbiAgICAgIGhlaWdodDppbml0aWFsIWltcG9ydGFudDtcbiAgICAgIHdvcmQtYnJlYWs6IGJyZWFrLWFsbDtcbiAgICB9XG4gICAgLm1hdC1saXN0LXRleHQge1xuICAgICAgbGluZS1oZWlnaHQ6IDEwcHg7XG4gICAgICBvdmVyZmxvdzogdmlzaWJsZTtcbiAgICB9XG4gICAgLm1hdC1saXN0LWl0ZW0tY29udGVudCB7XG4gICAgICBwYWRkaW5nOiAwIDEwcHg7XG4gICAgfVxuICB9XG59XG4ubGlzdC1wYWQge1xuICBwYWRkaW5nOiAxMHB4IDAgIWltcG9ydGFudDtcbn1cbi50YWJfbmFtZSB7XG4gIHRleHQtb3ZlcmZsb3c6IGVsbGlwc2lzO1xuICBvdmVyZmxvdyA6IGhpZGRlbjtcbiAgd2hpdGUtc3BhY2U6IG5vd3JhcDtcbiAgd2lkdGg6IDEwMCU7IGN1cnNvcjogcG9pbnRlcjsgbWFyZ2luLXRvcDogM3B4O1xufVxuXG46Om5nLWRlZXAgI2dyb3VwaW5nTGlzdCwgOjpuZy1kZWVwICNjaGFyYWN0ZXJMaXN0SWQge1xuICAubWF0LWxpc3Qtb3B0aW9uW2FyaWEtc2VsZWN0ZWQ9XCJ0cnVlXCJdIC5ncm91cC1saXN0e1xuICAgIGJhY2tncm91bmQtY29sb3I6ICNjY2NjY2M7XG4gICAgY29sb3I6ICMwMDAwMDA7XG4gIH1cbiAgLm1hdC1saXN0LW9wdGlvblthcmlhLXNlbGVjdGVkPVwidHJ1ZVwiXSAuc2F1Zi1saXN0e1xuICAgIGJhY2tncm91bmQtY29sb3I6ICNjY2NjY2MgIWltcG9ydGFudDtcbiAgICBjb2xvcjogIzAwMDAwMDtcbiAgfVxuICAubWF0LWxpc3Qtb3B0aW9uW2FyaWEtc2VsZWN0ZWQ9XCJ0cnVlXCJdIC5ncm91cC1saXN0LWdyZWVue1xuICAgIGJhY2tncm91bmQtY29sb3I6ICNjY2NjY2M7XG4gICAgY29sb3I6ICMwMDAwMDA7XG4gIH1cbiAgLm1hdC1saXN0LW9wdGlvblthcmlhLXNlbGVjdGVkPVwidHJ1ZVwiXSAuc2VsZWN0LWxpc3QtZGVsYXl7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogI2NjY2NjYztcbiAgICBjb2xvcjogIzAwMDAwMDtcbiAgfVxufVxuXG4jY2hhcmFjdGVyTGlzdElkIHtcbiAgOjpuZy1kZWVwIHtcbiAgICAubWF0LWxpc3QtaXRlbSB7XG4gICAgICBoZWlnaHQ6aW5pdGlhbCFpbXBvcnRhbnQ7XG4gICAgICB3b3JkLWJyZWFrOiBicmVhay1hbGw7XG4gICAgfVxuICAgIC5tYXQtbGlzdC10ZXh0IHtcbiAgICAgIGxpbmUtaGVpZ2h0OiAxMHB4O1xuICAgICAgb3ZlcmZsb3c6IHZpc2libGU7XG4gICAgfVxuICAgIC5tYXQtbGlzdC1pdGVtLWNvbnRlbnQge1xuICAgICAgcGFkZGluZzogMCAxMHB4O1xuICAgIH1cbiAgfVxuICAucG9pbnRlcl9ub25lIHsgXG4gICAgcG9pbnRlci1ldmVudHM6IG5vbmU7XG4gIH1cbiAgLnJvdyB7XG4gICAgZGlzcGxheTogaW5saW5lLWZsZXg7XG4gICAgd2lkdGg6IDEwMCU7XG59XG4gIC5jb2x1bW4xIHtcbiAgICAgIHdpZHRoOiAyMCU7XG4gICAgICBtYXJnaW4tcmlnaHQ6IDIlO1xuICAgICAgLy8gYWxpZ24tc2VsZjogY2VudGVyO1xuICB9XG4gIC50cmFuc2Zvcm0ge1xuICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlWSgtMjhweCk7XG4gIH1cbiAgLmNvbHVtbi1jbHMge1xuICAgIG1hcmdpbi1sZWZ0OiA1JTtcbiAgfVxuICAuY29sdW1uMiB7XG4gICAgd2lkdGg6IDgwJTtcbiAgfVxuICAuY29sdW1uMyB7XG4gICAgd2lkdGg6IDIwJTtcbiAgfVxuICAuRVQtY29sdW1uIHtcbiAgICB3aWR0aDogNSU7XG4gICAgbWFyZ2luLXRvcDogNXB4O1xuICB9XG4gIC5kaXZpZGVyLWNvbHVtbiB7XG4gICAgbWFyZ2luLXRvcDogMTVweDtcbiAgICB3aWR0aDo5MSU7XG4gICAgLm1hdC1kaXZpZGVyIHtcbiAgICAgIGJvcmRlci10b3Atd2lkdGg6IDJweCAhaW1wb3J0YW50O1xuICAgIH1cbiAgfVxuICAudmFsdWUtY2xzIHtcbiAgICBtYXJnaW4tdG9wOiAzcHg7XG4gICAgbWFyZ2luLWJvdHRvbTogNXB4O1xuICB9XG4gIC5vcGVyYXRvci1jbGFzcyB7XG4gICAgd2lkdGg6IDI1cHg7XG4gICAgaGVpZ2h0OiA4cHg7XG4gICAgYm9yZGVyOiAycHggc29saWQgIzAwMDAwMDtcbiAgICBwYWRkaW5nOiA1cHg7XG4gICAgdGV4dC1hbGlnbjogY2VudGVyO1xuICAgIGJvcmRlci1yYWRpdXM6IDIyJTtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjZmZmZmZmO1xuICAgIGNvbG9yOiAjMDAwMDAwO1xuICAgIGZvbnQtd2VpZ2h0OiA2MDA7XG4gICAgZm9udC1zaXplOiAxMnB4O1xuICAgIGN1cnNvcjogcG9pbnRlcjtcbiAgfVxuICAubGluZS1zZWdtZW50IHtcbiAgICB3aWR0aDogMnB4O1xuICAgIGhlaWdodDogNnB4OyBcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjMDAwO1xuICAgIG1hcmdpbi1sZWZ0OiAyMHB4O1xuICAgIGZsb2F0OiBsZWZ0O1xuICAgIGNvbG9yOiAjZmZmZmZmO1xuICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgfVxuICAuYWRkLWNsYXNze1xuICAgIG1hcmdpbi10b3A6IDZweDtcbiAgICBtYXJnaW4tYm90dG9tOiAwO1xuICAgIGZvbnQtc2l6ZTogMThweDtcbiAgfVxuICAubGFzdCB7XG4gICAgZGlzcGxheTogbm9uZTtcbiAgfVxuICAudGV4dC1zcGFuLWZvbnQge1xuICAgIHdpZHRoOiAzNDVweDtcbiAgfVxuICAuc2F1Zi10ZXh0IHtcbiAgICBtYXJnaW4tbGVmdDogMTglO1xuICAgIGZvbnQtc2l6ZTogMTJweDtcbiAgfVxuICAuc3dpdGNoIHtcbiAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgd2lkdGg6IDM3cHg7XG4gICAgaGVpZ2h0OiAxOHB4O1xuICAgIG1hcmdpbi1sZWZ0OiBhdXRvO1xuICB9XG4gIC5zd2l0Y2ggaW5wdXQgeyBcbiAgICBvcGFjaXR5OiAwO1xuICAgIHdpZHRoOiAwO1xuICAgIGhlaWdodDogMDtcbiAgfVxuXG4gIC5zbGlkZXIge1xuICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICBjdXJzb3I6IHBvaW50ZXI7XG4gICAgdG9wOiAwO1xuICAgIGxlZnQ6IDA7XG4gICAgcmlnaHQ6IDA7XG4gICAgYm90dG9tOiAwO1xuICAgIGJhY2tncm91bmQtY29sb3I6IHRyYW5zcGFyZW50O1xuICAgIC13ZWJraXQtdHJhbnNpdGlvbjogLjRzO1xuICAgIHRyYW5zaXRpb246IC40cztcbiAgfVxuICBcbiAgLnNsaWRlcjpiZWZvcmUge1xuICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICBjb250ZW50OiBcIlwiO1xuICAgIGhlaWdodDogMTRweDtcbiAgICB3aWR0aDogMTRweDtcbiAgICBsZWZ0OiAxcHg7XG4gICAgdG9wOiAxcHg7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogI2ZmZmZmZjtcbiAgICAtd2Via2l0LXRyYW5zaXRpb246IC40cztcbiAgICB0cmFuc2l0aW9uOiAuNHM7XG4gIH1cbiAgXG4gIGlucHV0OmNoZWNrZWQgKyAuc2xpZGVyIHtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjY2IzMzNiO1xuICB9XG4gIFxuICBpbnB1dDpmb2N1cyArIC5zbGlkZXIge1xuICAgIGJveC1zaGFkb3c6IDAgMCAxcHggIzAwNzdDODtcbiAgfVxuICBcbiAgaW5wdXQ6Y2hlY2tlZCArIC5zbGlkZXI6YmVmb3JlIHtcbiAgICAtd2Via2l0LXRyYW5zZm9ybTogdHJhbnNsYXRlWCgxOXB4KTtcbiAgICAtbXMtdHJhbnNmb3JtOiB0cmFuc2xhdGVYKDE5cHgpO1xuICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlWCgxOXB4KTtcbiAgfVxuICBcbiAgLyogUm91bmRlZCBzbGlkZXJzICovXG4gIC5zbGlkZXIucm91bmQge1xuICAgIGJvcmRlci1yYWRpdXM6IDM0cHg7XG4gICAgYm9yZGVyOiAxcHggc29saWQgI2ZmZmZmZjtcbiAgfVxuICBcbiAgLnNsaWRlci5yb3VuZDpiZWZvcmUge1xuICAgIGJvcmRlci1yYWRpdXM6IDUwJTtcbiAgfVxufVxuXG46Om5nLWRlZXAgI3Z1ZURldGFpbExpc3Qge1xuICAubWF0LWxpc3Qtb3B0aW9uW2FyaWEtc2VsZWN0ZWQ9XCJ0cnVlXCJdIC5ncm91cC1saXN0e1xuICAgIGJhY2tncm91bmQtY29sb3I6ICNjY2NjY2M7XG4gICAgY29sb3I6ICMwMDAwMDA7XG4gIH1cbiAgLm1hdC1saXN0LW9wdGlvblthcmlhLXNlbGVjdGVkPVwidHJ1ZVwiXSAuZ3JvdXAtbGlzdC1ncmVlbntcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjY2NjY2NjO1xuICAgIGNvbG9yOiAjMDAwMDAwO1xuICB9XG4gIC5tYXQtbGlzdC1vcHRpb25bYXJpYS1zZWxlY3RlZD1cInRydWVcIl0gLnNlbGVjdC1saXN0LWRlbGF5e1xuICAgIGJhY2tncm91bmQtY29sb3I6ICNjY2NjY2M7XG4gICAgY29sb3I6ICMwMDAwMDA7XG4gIH1cbn1cblxuLnNlbGVjdC1ncm91cC1saXN0OmhvdmVye1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjY2NjY2NjICFpbXBvcnRhbnQ7XG4gIGNvbG9yOiAjMDAwMDAwICFpbXBvcnRhbnQ7XG59XG5cbi5leGFtcGxlLXJhZGlvLWdyb3VwIHtcbiAgZGlzcGxheTogZmxleDtcbiAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcbiAgbWFyZ2luOiAxNXB4IDA7XG59XG5cbi5leGFtcGxlLXJhZGlvLWJ1dHRvbiB7XG4gIG1hcmdpbjogNXB4O1xufVxuXG4uZ3JvdXBpbmctcmFkaW8tZGF0ZSB7XG4gIG92ZXJmbG93LXk6IGF1dG87XG4gIGhlaWdodDogY2FsYygxMDB2aCAtIDExNnB4KTtcbiAgLmRhdGUtc2VjdGlvbntcbiAgICBwYWRkaW5nOiA1cHggMHB4IDBweCAxNXB4OyBcbiAgICBoZWlnaHQ6IGNhbGMoKDEwMHZoIC0gMTMwcHgpLzIpO1xuICB9XG4gIDo6bmctZGVlcCAubWF0LWNoZWNrYm94IHtcbiAgbWFyZ2luOiA1cHg7XG4gIC5tYXQtY2hlY2tib3gtZnJhbWUge1xuICAgICAgLy8gYm9yZGVyLWNvbG9yOiAjMDAwMDAwO1xuICAgICAgbWFyZ2luOiAtMXB4O1xuICAgICAgYm9yZGVyOiAxcHggc29saWQgI2NjY2NjYztcbiAgfVxuICAubWF0LWNoZWNrYm94LWJhY2tncm91bmQge1xuICAgICAgYmFja2dyb3VuZC1jb2xvcjogd2hpdGU7XG4gIH1cbiAgLm1hdC1jaGVja2JveC1jaGVja21hcmstcGF0aCB7XG4gICAgICBzdHJva2U6ICMwMDc3YzggIWltcG9ydGFudDtcbiAgfVxuICB9XG4gIGlucHV0W3R5cGU9XCJudW1iZXJcIl0ge1xuICAgICAgd2lkdGg6IDYwJTtcbiAgICAgIG1hcmdpbi1sZWZ0OiAxNSU7XG4gICAgICBtYXJnaW4tdG9wOiA4cHg7XG4gICAgICBoZWlnaHQ6IDI1cHg7XG4gICAgICBwYWRkaW5nLWxlZnQ6IDVweDtcbiAgfVxuICAuYWxsLWdyb3VwaW5nIHtcbiAgICAgIGRpc3BsYXk6IGZsZXg7XG4gIH1cbn1cblxuLnBvcHVsYXRpb24tbGlzdC1pdGVtIHtcbiAgYm9yZGVyOiAwcHg7XG4gIGJhY2tncm91bmQtY29sb3I6ICNmZmZmZmY7IFxuICBjdXJzb3I6IHBvaW50ZXI7XG4gIHRleHQtdHJhbnNmb3JtOiB1cHBlcmNhc2U7XG59XG4ubWFyZ2luLTEwIHtcbiAgbWFyZ2luLXRvcDogMTBweDtcbn1cbi50aWNrLWltZyB7XG4gIGZsb2F0OiByaWdodDsgXG4gIG1hcmdpbi10b3A6IDVweDsgXG4gIG1hcmdpbi1sZWZ0OiAxMHB4OyBcbiAgd2lkdGg6IDE1cHg7IFxuICBoZWlnaHQ6IDE1cHg7XG59XG5cbi5wb3B1bGF0aW9uLWxpc3Qge1xuICBtaW4td2lkdGg6IDE4MHB4OyBcbiAgbWF4LWhlaWdodDogMjUwcHg7XG59XG5cbi5kcm9wZG93bi1hbGlnbm1lbnQge1xuICBkaXNwbGF5OmlubGluZS1ibG9jaztcbiAgLnVwLWRvd24ge1xuICAgICAgZmxvYXQ6IHJpZ2h0OyBcbiAgICAgIG1hcmdpbi10b3A6IDdweDsgXG4gICAgICB3aWR0aDogMTVweDsgXG4gICAgICBoZWlnaHQ6IDE1cHg7XG4gIH1cbiAgLnBvcHVsYXRpb24tbWVudSB7XG4gICAgICBib3JkZXItYm90dG9tOiAxcHggc29saWQgI2FhYWFhYTsgXG4gICAgICBoZWlnaHQ6IDMwcHg7IFxuICAgICAgY3Vyc29yOiBwb2ludGVyO1xuICB9XG4gIC5kcm9wZG93bi1hbGlnbm1lbnQ6bnRoLWNoaWxkKDEpLCAgLmRyb3Bkb3duLWFsaWdubWVudDpudGgtY2hpbGQoMil7XG4gICAgICBtYXJnaW4tdG9wOiAwO1xuICB9XG4gIC50ZXh0LXNwYW57XG4gICAgZm9udC1mYW1pbHk6IFJvYm90bywgXCJIZWx2ZXRpY2EgTmV1ZVwiLCBzYW5zLXNlcmlmO1xuICAgIGZvbnQtc2l6ZTogMTFweDtcbiAgICBmb250LXdlaWdodDogNDAwO1xuICAgIGxpbmUtaGVpZ2h0OiAwICFpbXBvcnRhbnQ7XG4gICAgLy8gbWFyZ2luLWxlZnQ6IC00cHg7XG4gIH1cbn1cbi50ZXh0YXJlYS1hbGlnbm1lbnQge1xuICBkaXNwbGF5OmJsb2NrO1xuICBwYWRkaW5nOiAwcHggMHB4IDBweCAyMHB4O1xuICBoZWlnaHQ6IDQwcHg7XG4gIHdpZHRoOiA5MCU7XG4gIGlucHV0W3R5cGU9XCJ0ZXh0XCJdIHtcbiAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgYm9yZGVyLWJvdHRvbTogMXB4IHNvbGlkICNhYWFhYWE7XG4gIH1cbiAgaW5wdXRbdHlwZT1cInRleHRcIl06Zm9jdXMge1xuICAgICAgb3V0bGluZTogbm9uZSAhaW1wb3J0YW50O1xuICAgICAgYm9yZGVyLWJvdHRvbTogMXB4IHNvbGlkICNhYWFhYWE7XG4gIH1cbiAgLnRleHQtc3BhbntcbiAgICBmb250LWZhbWlseTogUm9ib3RvLCBcIkhlbHZldGljYSBOZXVlXCIsIHNhbnMtc2VyaWY7XG4gICAgZm9udC1zaXplOiAxMXB4O1xuICAgIGZvbnQtd2VpZ2h0OiA0MDA7XG4gICAgbGluZS1oZWlnaHQ6IDAgIWltcG9ydGFudDtcbiAgICAvLyBtYXJnaW4tbGVmdDogLTRweDtcbiAgfVxufVxuXG5cbi5jdXN0b20tZGVsYXktc2Nyb2xsLWJhcntcbiAgICAvLyBoZWlnaHQ6NzB2aDtcbiAgICBoZWlnaHQ6IGNhbGMoMTAwJSAtIDY1cHgpO1xuICAgIG92ZXJmbG93LXk6c2Nyb2xsO1xuICAgIG92ZXJmbG93LXg6IGhpZGRlbjtcbiAgICBtYXJnaW4tcmlnaHQ6IDVweDtcbiAgICBtYXJnaW4tdG9wOiA1cHg7XG59XG5cbi5jdXN0b20tZGVsYXktc2Nyb2xsLWJhcjo6LXdlYmtpdC1zY3JvbGxiYXJ7XG4gICAgd2lkdGg6IDEwcHg7XG59XG5cbi5jdXN0b20tZGVsYXktc2Nyb2xsLWJhcjo6LXdlYmtpdC1zY3JvbGxiYXItdGh1bWJ7XG4gICAgLy8gYmFja2dyb3VuZDogcmdiYSgwLDAsMCwuMjYpO1xuICAgIGJhY2tncm91bmQtY29sb3I6ICNFOUVFRjA7XG4gICAgYm9yZGVyLXJhZGl1czogNXB4O1xufVxuXG4uaXRlbS1kaXNhYmxle1xuICBjdXJzb3I6IG5vdC1hbGxvd2VkICFpbXBvcnRhbnQ7XG4gICAgcG9pbnRlci1ldmVudHM6IG5vbmU7XG59XG5cbi52dWUtc2VjdGlvbi1jaGVja3tcbiAgd2lkdGg6IDg5JTtcbiAgbWFyZ2luLXRvcDogNXB4O1xuICBtYXJnaW4tbGVmdDogMjBweDtcbiAgZm9udC1mYW1pbHk6IFJvYm90bywgXCJIZWx2ZXRpY2EgTmV1ZVwiLCBzYW5zLXNlcmlmO1xuICBmb250LXNpemU6IDExcHg7XG4gIGZvbnQtd2VpZ2h0OiA0MDA7XG5cbiAgOjpuZy1kZWVwIC5tYXQtY2hlY2tib3gge1xuICAgIG1hcmdpbjogNXB4O1xuICAgIC5tYXQtY2hlY2tib3gtZnJhbWUge1xuICAgICAgICAvLyBib3JkZXItY29sb3I6ICMwMDAwMDA7XG4gICAgICAgIG1hcmdpbjogLTFweDtcbiAgICAgICAgYm9yZGVyOiAxcHggc29saWQgI2NjY2NjYztcbiAgICB9XG4gICAgLm1hdC1jaGVja2JveC1iYWNrZ3JvdW5kIHtcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogd2hpdGU7XG4gICAgfVxuICAgIC5tYXQtY2hlY2tib3gtY2hlY2ttYXJrLXBhdGgge1xuICAgICAgICBzdHJva2U6ICMwMDc3YzggIWltcG9ydGFudDtcbiAgICB9XG4gIH1cbn1cblxuLnZ1ZS1tYXQtbGlzdC1kaXNhYmxlZHtcbiAgYmFja2dyb3VuZC1jb2xvcjogI2VlZWVlZSAhaW1wb3J0YW50O1xuICBjdXJzb3I6IG5vdC1hbGxvd2VkICFpbXBvcnRhbnQ7XG4gIHBvaW50ZXItZXZlbnRzOiBub25lO1xuICBjb2xvcjogI2FhYWFhYSAhaW1wb3J0YW50O1xufVxuXG4uYnV0dG9uLXNhdmV7ICAgIFxuICB3aWR0aDogMTAwcHg7XG4gIGhlaWdodDogMzBweCAhaW1wb3J0YW50O1xuICBmb250LWZhbWlseTogUm9ib3RvLFwiSGVsdmV0aWNhIE5ldWVcIixzYW5zLXNlcmlmO1xuICBmb250LXNpemU6IDEzcHg7XG4gIGZvbnQtd2VpZ2h0OiA1MDA7XG4gICAgdGV4dC1hbGlnbjogY2VudGVyO1xuICAgIGJhY2tncm91bmQtY29sb3I6ICNGRkNDMzM7XG4gICAgYm9yZGVyLXJhZGl1czogM3B4O1xuICAgIGZsb2F0OiByaWdodDtcbiAgICAvLyBsaW5lLWhlaWdodDogMzZweCAhaW1wb3J0YW50O1xufVxuLmNscy1kaXNwbGF5Tm9uZXtcbiAgZGlzcGxheTpub25lICFpbXBvcnRhbnQ7XG59XG4uYXBwTWFpbkN0bntcbiAgcG9zaXRpb246IHJlbGF0aXZlO1xuICB6LWluZGV4OjE7XG59IiwiI2hlYWRlciB7XG4gIG1pbi1oZWlnaHQ6IDkwJTtcbn1cblxuI2hlYWRlci1jb250ZW50IHtcbiAgcG9zaXRpb246IGFic29sdXRlO1xuICBib3R0b206IDA7XG4gIG1hcmdpbi1sZWZ0OiAzcHg7XG59XG5cbi5pdGVtIHtcbiAgaGVpZ2h0OiBjYWxjKDEwMHZoIC0gMzVweCk7XG4gIGJhY2tncm91bmQtY29sb3I6ICNmZmZmZmY7XG59XG5cbmRpdiNjb250YWluZXIge1xuICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gIC8qIG5lZWRlZCBmb3IgZm9vdGVyIHBvc2l0aW9uaW5nKi9cbiAgaGVpZ2h0OiBhdXRvICFpbXBvcnRhbnQ7XG4gIC8qIHJlYWwgYnJvd3NlcnMgKi9cbiAgbWluLWhlaWdodDogMTAwJTtcbiAgLyogcmVhbCBicm93c2VycyAqL1xuICB3aWR0aDogNDIycHg7XG59XG5cbmRpdiNoZWFkZXIge1xuICBwYWRkaW5nOiAxZW07XG4gIGJhY2tncm91bmQ6ICNlZmU7XG59XG5cbi5mb290ZXIge1xuICBwb3NpdGlvbjogZml4ZWQ7XG4gIHdpZHRoOiAzMCU7XG4gIGJvdHRvbTogMDtcbiAgLyogc3RpY2sgdG8gYm90dG9tICovXG4gIGJhY2tncm91bmQ6IGdyZWVuO1xufVxuXG4uY29udGFpbmVyIHtcbiAgaGVpZ2h0OiAxMDAlO1xuICBkaXNwbGF5OiBmbGV4O1xufVxuXG4uY29sdW1uLXBhbmVsMSB7XG4gIGhlaWdodDogMTAwJTtcbiAgbWluLXdpZHRoOiA0MDBweDtcbiAgYmFja2dyb3VuZC1jb2xvcjogd2hpdGU7XG59XG5cbi5jb2x1bW4tcGFuZWw0IHtcbiAgbWluLXdpZHRoOiAzOXB4O1xufVxuXG4uY29sdW1uLXBhbmVsMiB7XG4gIGhlaWdodDogMTAwJTtcbiAgbWF4LXdpZHRoOiA1MzBweDtcbiAgYmFja2dyb3VuZC1jb2xvcjogd2hpdGU7XG59XG5cbi5jb2x1bW4tcGFuZWwzIHtcbiAgaGVpZ2h0OiAxMDAlO1xuICB3aWR0aDogMTAwJTtcbiAgYmFja2dyb3VuZDogIzJENDU1NztcbiAgb3ZlcmZsb3c6IGhpZGRlbjtcbn1cblxuLm1heGltdW0taW1nIHtcbiAgd2lkdGg6IDE0cHg7XG4gIGhlaWdodDogMTRweDtcbiAgcG9zaXRpb246IGFic29sdXRlO1xuICB0b3A6IC0yMnB4O1xuICBmbG9hdDogcmlnaHQ7XG4gIGJhY2tncm91bmQ6ICNmZmZmZmY7XG4gIGN1cnNvcjogcG9pbnRlcjtcbn1cblxuLnBhbmVsLTEge1xuICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gIG92ZXJmbG93LXk6IGF1dG87XG4gIG1hcmdpbi10b3A6IDhweDtcbiAgd2lkdGg6IDM5NXB4O1xufVxuXG4ucGFuZWwtMSAubWF0LWxpc3QtaXRlbSB7XG4gIGN1cnNvcjogcG9pbnRlciAhaW1wb3J0YW50O1xufVxuXG4uY2xvc2Uge1xuICBmb250LXNpemU6IDE4cHg7XG4gIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgdG9wOiAzOHB4O1xuICByaWdodDogMDtcbiAgY3Vyc29yOiBwb2ludGVyO1xufVxuXG4uZm9vdGVyLXBhbmVsMSB7XG4gIHdpZHRoOiA0MDBweDtcbiAgYm90dG9tOiAwO1xuICAvKiBzdGljayB0byBib3R0b20gKi9cbiAgaGVpZ2h0OiAzOHB4O1xuICBiYWNrZ3JvdW5kOiAjMDAwMDAwO1xufVxuXG4uZm9vdGVyLXBhbmVsNCB7XG4gIHdpZHRoOiAzOXB4O1xuICBib3R0b206IDA7XG4gIC8qIHN0aWNrIHRvIGJvdHRvbSAqL1xuICBiYWNrZ3JvdW5kOiAjMDAwMDAwO1xuICBoZWlnaHQ6IDM4cHg7XG59XG5cbi5mb290ZXItcGFuZWwyIHtcbiAgd2lkdGg6IDUzMHB4O1xuICBib3R0b206IDA7XG4gIC8qIHN0aWNrIHRvIGJvdHRvbSAqL1xuICBiYWNrZ3JvdW5kOiAjMDAwMDAwO1xuICBoZWlnaHQ6IDM4cHg7XG59XG5cbi5mb290ZXItcGFuZWwzIHtcbiAgd2lkdGg6IDk5JTtcbiAgYm90dG9tOiAwO1xuICBiYWNrZ3JvdW5kOiAjMDAwMDAwO1xuICBoZWlnaHQ6IDM4cHg7XG59XG5cbi5hcnJvdyB7XG4gIGJvcmRlcjogMXB4IHNvbGlkICNjM2MzYzM7XG4gIGJhY2tncm91bmQtY29sb3I6IHdoaXRlO1xuICBwYWRkaW5nOiAxOXB4IDBweCAwcHggN3B4O1xufVxuXG4uYXJyb3dfZGV0YWlsIHtcbiAgcGFkZGluZzogMTlweCAwcHggMHB4IDRweDtcbiAgYmFja2dyb3VuZC1jb2xvcjogI2JiYmNiYztcbn1cblxuLm1haW4ge1xuICBhbGlnbi1zZWxmOiBjZW50ZXI7XG4gIHdpZHRoOiAzOXB4O1xuICBoZWlnaHQ6IGNhbGMoMTAwJSAtIDM3cHgpICFpbXBvcnRhbnQ7XG4gIGRpc3BsYXk6IGZsZXg7XG4gIGZsZXgtd3JhcDogd3JhcDtcbiAgYWxpZ24tY29udGVudDogY2VudGVyO1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjRTlFRUYwO1xufVxuXG4ubWFpbiBkaXYge1xuICB3aWR0aDogNDlweDtcbiAgaGVpZ2h0OiA0MHB4O1xufVxuXG4uY2VudGVyLWtleSB7XG4gIHdpZHRoOiAyNnB4O1xuICBwb3NpdGlvbjogc3RpY2t5ICFpbXBvcnRhbnQ7XG4gIHJpZ2h0OiAwO1xuICBib3R0b206IDQ4JTtcbiAgZmxvYXQ6IHJpZ2h0O1xuICBwYWRkaW5nOiAycHg7XG59XG4uY2VudGVyLWtleSAuYXJyb3cge1xuICBib3JkZXI6IDFweCBzb2xpZCAjYzNjM2MzO1xuICBiYWNrZ3JvdW5kLWNvbG9yOiB3aGl0ZTtcbiAgcGFkZGluZzogMTVweCAxMHB4IDBweCAwcHg7XG59XG5cbi5tYXRlci1pY29ucyB7XG4gIG1hcmdpbi1sZWZ0OiAtOHB4O1xuICBtYXJnaW4tdG9wOiAtN3B4O1xuICBmb250LXNpemU6IDQwcHggIWltcG9ydGFudDtcbn1cblxuLmRlbGF5LXNwYW4ge1xuICBmb250LWZhbWlseTogUm9ib3RvLCBcIkhlbHZldGljYSBOZXVlXCIsIHNhbnMtc2VyaWY7XG4gIGZvbnQtc2l6ZTogMTRweDtcbiAgZm9udC13ZWlnaHQ6IDUwMDtcbiAgbGluZS1oZWlnaHQ6IDE3cHg7XG4gIG1hcmdpbi1sZWZ0OiAwcHg7XG59XG5cbi5kZWxheS1zcGFuLXBlcmlvZCB7XG4gIGZvbnQtZmFtaWx5OiBSb2JvdG8sIFwiSGVsdmV0aWNhIE5ldWVcIiwgc2Fucy1zZXJpZjtcbiAgZm9udC1zaXplOiAxM3B4O1xuICBmb250LXdlaWdodDogNTAwO1xuICBsaW5lLWhlaWdodDogMTdweDtcbiAgbWFyZ2luLWxlZnQ6IC0zcHg7XG59XG5cbi5sYWJlbC1zcGFuIHtcbiAgZm9udC1mYW1pbHk6IFJvYm90bywgXCJIZWx2ZXRpY2EgTmV1ZVwiLCBzYW5zLXNlcmlmO1xuICBmb250LXNpemU6IDExcHg7XG4gIGZvbnQtd2VpZ2h0OiA0MDA7XG4gIGxpbmUtaGVpZ2h0OiAyOHB4O1xuICBjb2xvcjogI2JiYmNiYztcbn1cblxuLnRleHQtc3BhbiB7XG4gIGZvbnQtZmFtaWx5OiBSb2JvdG8sIFwiSGVsdmV0aWNhIE5ldWVcIiwgc2Fucy1zZXJpZjtcbiAgZm9udC1zaXplOiAxMXB4O1xuICBmb250LXdlaWdodDogNDAwO1xuICBsaW5lLWhlaWdodDogMjhweDtcbn1cblxuLnRleHQtc3Bhbi13by1saW5lLWhlaWdodCB7XG4gIGZvbnQtZmFtaWx5OiBSb2JvdG8sIFwiSGVsdmV0aWNhIE5ldWVcIiwgc2Fucy1zZXJpZjtcbiAgZm9udC1zaXplOiAxMXB4O1xuICBmb250LXdlaWdodDogNDAwO1xufVxuXG4udGV4dC1zcGFuLWZvbnQge1xuICBmb250LWZhbWlseTogUm9ib3RvLCBcIkhlbHZldGljYSBOZXVlXCIsIHNhbnMtc2VyaWY7XG4gIGZvbnQtc2l6ZTogMTFweDtcbiAgZm9udC13ZWlnaHQ6IDQwMDtcbiAgbGluZS1oZWlnaHQ6IDEzcHg7XG59XG5cbi5iYXItY2hhcnQtaWNvbi1yb3RhdGUge1xuICAtd2Via2l0LXRyYW5zZm9ybTogcm90YXRlKDQ1ZGVnKTtcbiAgLW1vei10cmFuc2Zvcm06IHJvdGF0ZSg0NWRlZyk7XG4gIC1tcy10cmFuc2Zvcm06IHJvdGF0ZSg0NWRlZyk7XG4gIC1vLXRyYW5zZm9ybTogcm90YXRlKDQ1ZGVnKTtcbiAgdHJhbnNmb3JtOiByb3RhdGUoOTBkZWcpO1xuICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gIG1hcmdpbi1sZWZ0OiA1cHg7XG4gIG1hcmdpbi10b3A6IDhweDtcbn1cblxuLnRpdGxlLXNwYW4ge1xuICBmb250LWZhbWlseTogUm9ib3RvLCBcIkhlbHZldGljYSBOZXVlXCIsIHNhbnMtc2VyaWY7XG4gIGZvbnQtc2l6ZTogMTRweDtcbiAgZm9udC13ZWlnaHQ6IDUwMDtcbiAgbGluZS1oZWlnaHQ6IDE3cHg7XG59XG5cbi50aXRsZS1zcGFuLUFiYnIge1xuICBmb250LWZhbWlseTogUm9ib3RvLCBcIkhlbHZldGljYSBOZXVlXCIsIHNhbnMtc2VyaWY7XG4gIGZvbnQtc2l6ZTogMTRweDtcbiAgZm9udC13ZWlnaHQ6IDYwMDtcbiAgbGluZS1oZWlnaHQ6IDE3cHg7XG4gIHBhZGRpbmc6IDEwcHggMCAxMHB4IDA7XG59XG5cbi5idXR0b24tcGFuZWwyIHtcbiAgd2lkdGg6IDc1cHg7XG4gIGhlaWdodDogMzZweCAhaW1wb3J0YW50O1xuICBmb250LWZhbWlseTogUm9ib3RvLCBcIkhlbHZldGljYSBOZXVlXCIsIHNhbnMtc2VyaWY7XG4gIGZvbnQtc2l6ZTogMTNweDtcbiAgZm9udC13ZWlnaHQ6IDUwMDtcbiAgdGV4dC1hbGlnbjogY2VudGVyO1xuICBib3JkZXI6IDBweCBzb2xpZDtcbiAgYmFja2dyb3VuZC1jb2xvcjogI0ZGQ0MzMztcbiAgcGFkZGluZzogMCAhaW1wb3J0YW50O1xuICBib3JkZXItcmFkaXVzOiAwcHg7XG4gIGxpbmUtaGVpZ2h0OiAzNnB4ICFpbXBvcnRhbnQ7XG59XG5cbjo6bmctZGVlcCAubWF0LXNlbGVjdCB7XG4gIGZvbnQtZmFtaWx5OiBSb2JvdG8sIFwiSGVsdmV0aWNhIE5ldWVcIiwgc2Fucy1zZXJpZjtcbiAgZm9udC1zaXplOiAxMXB4O1xuICBmb250LXdlaWdodDogNDAwO1xufVxuXG46Om5nLWRlZXAgLm1hdC1zZWxlY3Q6Zm9jdXM6bm90KC5tYXQtc2VsZWN0LWRpc2FibGVkKS5tYXQtcHJpbWFyeSAubWF0LXNlbGVjdC1hcnJvdyB7XG4gIGJvcmRlci1sZWZ0OiAxNXB4IHNvbGlkIHRyYW5zcGFyZW50ICFpbXBvcnRhbnQ7XG4gIGJvcmRlci1yaWdodDogbm9uZSAhaW1wb3J0YW50O1xuICBib3JkZXItdG9wOiAxNXB4IHNvbGlkIHRyYW5zcGFyZW50ICFpbXBvcnRhbnQ7XG4gIGJvcmRlci1pbWFnZS1zb3VyY2U6IHVybChcIi4uLy4uLy4uLy4uL2Fzc2V0cy9pbWFnZXMvRG93bi5zdmdcIikgIWltcG9ydGFudDtcbiAgYm9yZGVyLWltYWdlLXJlcGVhdDogc3RyZXRjaCAhaW1wb3J0YW50O1xufVxuXG46Om5nLWRlZXAgLm1hdC1zZWxlY3QtcGFuZWwge1xuICBib3gtc2hhZG93OiAwcHggMnB4IDRweCAtMXB4IHJnYmEoMCwgMCwgMCwgMC4yKSwgMHB4IDRweCA1cHggMHB4IHJnYmEoMCwgMCwgMCwgMC4xNCksIDBweCAxcHggMTBweCAwcHggcmdiYSgwLCAwLCAwLCAwLjEyKTtcbiAgbWFyZ2luLXRvcDogMzVweDtcbiAgbWF4LWhlaWdodDogMjgwcHggIWltcG9ydGFudDtcbn1cblxuOjpuZy1kZWVwIC5tYXQtc2VsZWN0LXRyaWdnZXIge1xuICBjb2xvcjogIzYzOTYxQztcbiAgYm9yZGVyLWltYWdlLXNvdXJjZTogdXJsKFwiLi4vLi4vLi4vLi4vYXNzZXRzL2ltYWdlcy9jbG9zZS5zdmdcIikgIWltcG9ydGFudDtcbn1cblxuLyogdG8gY2hhbmdlIHNlbGVjdGVkIGl0ZW0gY29sb3IgaW4gdGhlIHNlbGVjdCBsaXN0ICovXG4ubWF0LXByaW1hcnkgLm1hdC1vcHRpb24ubWF0LXNlbGVjdGVkOm5vdCgubWF0LW9wdGlvbi1kaXNhYmxlZCkge1xuICBjb2xvcjogIzYzOTYxQztcbn1cblxuOjpuZy1kZWVwLm1hdC1wc2V1ZG8tY2hlY2tib3gge1xuICBkaXNwbGF5OiBub25lICFpbXBvcnRhbnQ7XG59XG5cbi5jdXN0b20tc2Nyb2xsLWJhciB7XG4gIGhlaWdodDogY2FsYygxMDAlIC0gMTM2cHgpO1xuICBvdmVyZmxvdy15OiBzY3JvbGw7XG4gIG92ZXJmbG93LXg6IGhpZGRlbjtcbiAgbWFyZ2luLXJpZ2h0OiA1cHg7XG59XG5cbi5jdXN0b20tc2Nyb2xsLWJhcjo6LXdlYmtpdC1zY3JvbGxiYXIge1xuICB3aWR0aDogMTBweDtcbn1cblxuLmN1c3RvbS1zY3JvbGwtYmFyOjotd2Via2l0LXNjcm9sbGJhci10aHVtYiB7XG4gIGJhY2tncm91bmQtY29sb3I6ICNFOUVFRjA7XG4gIGJvcmRlci1yYWRpdXM6IDVweDtcbn1cblxuLnJlcS1hY3RpdmUge1xuICBiYWNrZ3JvdW5kOiAjZmZmZmZmICFpbXBvcnRhbnQ7XG4gIGNvbG9yOiAjMDAwMDAwICFpbXBvcnRhbnQ7XG59XG5cbjo6bmctZGVlcC5tYXQtbWVudS1wYW5lbCB7XG4gIG1hcmdpbi10b3A6IDNweCAhaW1wb3J0YW50O1xuICBib3JkZXI6IDFweCBzb2xpZCAjY2NjY2NjO1xuICBtYXgtd2lkdGg6IDYwMHB4ICFpbXBvcnRhbnQ7XG59XG5cbi5tYXQtbGlzdC1ib3JkZXItbGVmdCB7XG4gIGJvcmRlci1yaWdodDogMXB4IHNvbGlkICNjY2NjY2M7XG59XG5cbi5ocmxpbmUtdG9wIHtcbiAgd2lkdGg6IDk2JTtcbiAgbWFyZ2luLWxlZnQ6IDE1cHg7XG4gIG1hcmdpbi1yaWdodDogMHB4O1xuICBtYXJnaW4tdG9wOiAwcHg7XG4gIGJvcmRlci10b3A6IDFweCBzb2xpZCAjY2NjO1xufVxuXG4ubWF0LWxpc3QtaXRlbTpob3ZlciB7XG4gIGJhY2tncm91bmQtY29sb3I6ICNmNmY5ZmE7XG59XG5cbi5zZWxlY3RlZC1oaWdobGlnaHQge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjRTlFRUYwO1xufVxuXG4ucmVxdWVzdC1jbG9zZSB7XG4gIGhlaWdodDogMTRweDtcbiAgd2lkdGg6IDE0cHg7XG4gIGZsb2F0OiByaWdodDtcbiAgbWFyZ2luLXJpZ2h0OiA1cHg7XG4gIG1hcmdpbi10b3A6IDhweDtcbiAgY3Vyc29yOiBwb2ludGVyO1xuICBib3JkZXItcmFkaXVzOiA1MHB4O1xufVxuXG4ucmVxdWVzdC1jbG9zZTpob3ZlciB7XG4gIGJhY2tncm91bmQtY29sb3I6ICNlOWY0Zjg7XG59XG5cbi5tYXQtZXhwYW5zaW9uLXBhbmVsOm5vdChbY2xhc3MqPW1hdC1lbGV2YXRpb24tel0pIHtcbiAgYm94LXNoYWRvdzogbm9uZTtcbn1cblxuOjpuZy1kZWVwLm1hdC1leHBhbnNpb24taW5kaWNhdG9yOjphZnRlciB7XG4gIGJvcmRlci1zdHlsZTogbm9uZSAhaW1wb3J0YW50O1xufVxuXG4ubWF0LWV4cGFuc2lvbi1wYW5lbC1oZWFkZXIge1xuICBwYWRkaW5nOiAwO1xufVxuXG46Om5nLWRlZXAubWF0LWV4cGFuc2lvbi1wYW5lbC1ib2R5IHtcbiAgcGFkZGluZzogMCAhaW1wb3J0YW50O1xufVxuXG4ubWF0LWV4cGFuc2lvbi1wYW5lbC1zcGFjaW5nIHtcbiAgbWFyZ2luOiAycHggMDtcbn1cblxuLmRpdi1tLWhlaWdodCB7XG4gIG1pbi1oZWlnaHQ6IDIwJSAhaW1wb3J0YW50O1xuICBoZWlnaHQ6IDMwJSAhaW1wb3J0YW50O1xuICBtYXgtaGVpZ2h0OiA0MCUgIWltcG9ydGFudDtcbiAgYm9yZGVyOiAxcHggc29saWQ7XG59XG5cbi5zZWN0aW9uLWJhY2tjb2xvdXIge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjRDNEOUUwO1xuICBjdXJzb3I6IHBvaW50ZXI7XG59XG5cbi5zZWxlY3QtbGlzdC1ibHVlIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogIzAwNzdDODtcbiAgY29sb3I6ICNmZmZmZmY7XG59XG5cbi5zZWxlY3QtbGlzdC1ibHVlOmhvdmVyIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogIzAwNzdDODtcbiAgY29sb3I6ICNmZmZmZmY7XG59XG5cbi5zZWxlY3QtbGlzdC1kZWxheSB7XG4gIGJhY2tncm91bmQtY29sb3I6ICMwMDlDQTY7XG4gIGNvbG9yOiAjZmZmZmZmO1xufVxuXG4uc2VsZWN0LWxpc3QtZGVsYXk6aG92ZXIge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjMDA5Q0E2O1xuICBjb2xvcjogI2ZmZmZmZjtcbn1cblxuLnNlbGVjdC1saXN0LWdyZWVuIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogIzAwOUI3NztcbiAgY29sb3I6ICNmZmZmZmY7XG59XG5cbi5zZWxlY3QtbGlzdC1ncmVlbjpob3ZlciB7XG4gIGJhY2tncm91bmQtY29sb3I6ICMwMDlCNzc7XG4gIGNvbG9yOiAjZmZmZmZmO1xufVxuXG4uZ3JvdXAtbGlzdCB7XG4gIGJhY2tncm91bmQtY29sb3I6ICMwMDc3Qzg7XG4gIGNvbG9yOiAjZmZmZmZmO1xufVxuXG4uZ3JvdXAtbGlzdDpob3ZlciB7XG4gIGJhY2tncm91bmQtY29sb3I6ICMwMDc3Qzg7XG4gIGNvbG9yOiAjZmZmZmZmO1xufVxuXG4uZ3JvdXAtbGlzdC1ncmVlbiB7XG4gIGJhY2tncm91bmQtY29sb3I6ICMwMDlCNzc7XG4gIGNvbG9yOiAjZmZmZmZmO1xufVxuXG4uYm9yZGVyLWNsYXNzIHtcbiAgYm94LXNpemluZzogYm9yZGVyLWJveDtcbiAgYm9yZGVyOiAzcHggc29saWQgIzAwMDAwMDtcbn1cbi5ib3JkZXItY2xhc3MgLmxpbmUtc2VnbWVudDpudGgtY2hpbGQoMSkge1xuICBtYXJnaW4tdG9wOiAtNnB4O1xufVxuXG4uYm9yZGVyLXRvcCB7XG4gIGJvcmRlci10b3A6IDA7XG59XG5cbi5ib3JkZXItYm90dG9tIHtcbiAgYm9yZGVyLWJvdHRvbTogMDtcbn1cblxuLmJvcmRlci1vciB7XG4gIGJvcmRlci10b3A6IDAuMXB4IHNvbGlkICMwMDAwMDA7XG4gIGJvcmRlci1ib3R0b206IDAuMXB4IHNvbGlkICMwMDAwMDA7XG59XG5cbi5vcl9jbHMge1xuICBtYXJnaW4tbGVmdDogNCU7XG4gIHBvaW50ZXItZXZlbnRzOiBhbGw7XG4gIHBhZGRpbmctYm90dG9tOiA2cHg7XG4gIHBhZGRpbmctbGVmdDogMTBweDtcbn1cblxuLnNhdWYtbGlzdCB7XG4gIGJhY2tncm91bmQtY29sb3I6ICNjYjMzM2IgIWltcG9ydGFudDtcbiAgY29sb3I6ICNmZmZmZmY7XG59XG5cbi5zYXVmLWxpc3Q6aG92ZXIge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjY2IzMzNiO1xuICBjb2xvcjogI2ZmZmZmZjtcbn1cblxuLmdyb3VwLWxpc3QtZ3JlZW46aG92ZXIge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjMDA5Qjc3O1xuICBjb2xvcjogI2ZmZmZmZjtcbn1cblxuLmdyb3VwLWxpc3QtYm90dG9tLXNwYWNlIHtcbiAgbWFyZ2luLWJvdHRvbTogM3B4O1xufVxuXG4jZ3JvdXBpbmdMaXN0IDo6bmctZGVlcCAubWF0LWxpc3QtaXRlbSwgI3Z1ZURldGFpbExpc3QgOjpuZy1kZWVwIC5tYXQtbGlzdC1pdGVtIHtcbiAgaGVpZ2h0OiBpbml0aWFsICFpbXBvcnRhbnQ7XG4gIHdvcmQtYnJlYWs6IGJyZWFrLWFsbDtcbn1cbiNncm91cGluZ0xpc3QgOjpuZy1kZWVwIC5tYXQtbGlzdC10ZXh0LCAjdnVlRGV0YWlsTGlzdCA6Om5nLWRlZXAgLm1hdC1saXN0LXRleHQge1xuICBsaW5lLWhlaWdodDogMTBweDtcbiAgb3ZlcmZsb3c6IHZpc2libGU7XG59XG4jZ3JvdXBpbmdMaXN0IDo6bmctZGVlcCAubWF0LWxpc3QtaXRlbS1jb250ZW50LCAjdnVlRGV0YWlsTGlzdCA6Om5nLWRlZXAgLm1hdC1saXN0LWl0ZW0tY29udGVudCB7XG4gIHBhZGRpbmc6IDAgMTBweDtcbn1cblxuLmxpc3QtcGFkIHtcbiAgcGFkZGluZzogMTBweCAwICFpbXBvcnRhbnQ7XG59XG5cbi50YWJfbmFtZSB7XG4gIHRleHQtb3ZlcmZsb3c6IGVsbGlwc2lzO1xuICBvdmVyZmxvdzogaGlkZGVuO1xuICB3aGl0ZS1zcGFjZTogbm93cmFwO1xuICB3aWR0aDogMTAwJTtcbiAgY3Vyc29yOiBwb2ludGVyO1xuICBtYXJnaW4tdG9wOiAzcHg7XG59XG5cbjo6bmctZGVlcCAjZ3JvdXBpbmdMaXN0IC5tYXQtbGlzdC1vcHRpb25bYXJpYS1zZWxlY3RlZD10cnVlXSAuZ3JvdXAtbGlzdCwgOjpuZy1kZWVwICNjaGFyYWN0ZXJMaXN0SWQgLm1hdC1saXN0LW9wdGlvblthcmlhLXNlbGVjdGVkPXRydWVdIC5ncm91cC1saXN0IHtcbiAgYmFja2dyb3VuZC1jb2xvcjogI2NjY2NjYztcbiAgY29sb3I6ICMwMDAwMDA7XG59XG46Om5nLWRlZXAgI2dyb3VwaW5nTGlzdCAubWF0LWxpc3Qtb3B0aW9uW2FyaWEtc2VsZWN0ZWQ9dHJ1ZV0gLnNhdWYtbGlzdCwgOjpuZy1kZWVwICNjaGFyYWN0ZXJMaXN0SWQgLm1hdC1saXN0LW9wdGlvblthcmlhLXNlbGVjdGVkPXRydWVdIC5zYXVmLWxpc3Qge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjY2NjY2NjICFpbXBvcnRhbnQ7XG4gIGNvbG9yOiAjMDAwMDAwO1xufVxuOjpuZy1kZWVwICNncm91cGluZ0xpc3QgLm1hdC1saXN0LW9wdGlvblthcmlhLXNlbGVjdGVkPXRydWVdIC5ncm91cC1saXN0LWdyZWVuLCA6Om5nLWRlZXAgI2NoYXJhY3Rlckxpc3RJZCAubWF0LWxpc3Qtb3B0aW9uW2FyaWEtc2VsZWN0ZWQ9dHJ1ZV0gLmdyb3VwLWxpc3QtZ3JlZW4ge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjY2NjY2NjO1xuICBjb2xvcjogIzAwMDAwMDtcbn1cbjo6bmctZGVlcCAjZ3JvdXBpbmdMaXN0IC5tYXQtbGlzdC1vcHRpb25bYXJpYS1zZWxlY3RlZD10cnVlXSAuc2VsZWN0LWxpc3QtZGVsYXksIDo6bmctZGVlcCAjY2hhcmFjdGVyTGlzdElkIC5tYXQtbGlzdC1vcHRpb25bYXJpYS1zZWxlY3RlZD10cnVlXSAuc2VsZWN0LWxpc3QtZGVsYXkge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjY2NjY2NjO1xuICBjb2xvcjogIzAwMDAwMDtcbn1cblxuI2NoYXJhY3Rlckxpc3RJZCB7XG4gIC8qIFJvdW5kZWQgc2xpZGVycyAqL1xufVxuI2NoYXJhY3Rlckxpc3RJZCA6Om5nLWRlZXAgLm1hdC1saXN0LWl0ZW0ge1xuICBoZWlnaHQ6IGluaXRpYWwgIWltcG9ydGFudDtcbiAgd29yZC1icmVhazogYnJlYWstYWxsO1xufVxuI2NoYXJhY3Rlckxpc3RJZCA6Om5nLWRlZXAgLm1hdC1saXN0LXRleHQge1xuICBsaW5lLWhlaWdodDogMTBweDtcbiAgb3ZlcmZsb3c6IHZpc2libGU7XG59XG4jY2hhcmFjdGVyTGlzdElkIDo6bmctZGVlcCAubWF0LWxpc3QtaXRlbS1jb250ZW50IHtcbiAgcGFkZGluZzogMCAxMHB4O1xufVxuI2NoYXJhY3Rlckxpc3RJZCAucG9pbnRlcl9ub25lIHtcbiAgcG9pbnRlci1ldmVudHM6IG5vbmU7XG59XG4jY2hhcmFjdGVyTGlzdElkIC5yb3cge1xuICBkaXNwbGF5OiBpbmxpbmUtZmxleDtcbiAgd2lkdGg6IDEwMCU7XG59XG4jY2hhcmFjdGVyTGlzdElkIC5jb2x1bW4xIHtcbiAgd2lkdGg6IDIwJTtcbiAgbWFyZ2luLXJpZ2h0OiAyJTtcbn1cbiNjaGFyYWN0ZXJMaXN0SWQgLnRyYW5zZm9ybSB7XG4gIHRyYW5zZm9ybTogdHJhbnNsYXRlWSgtMjhweCk7XG59XG4jY2hhcmFjdGVyTGlzdElkIC5jb2x1bW4tY2xzIHtcbiAgbWFyZ2luLWxlZnQ6IDUlO1xufVxuI2NoYXJhY3Rlckxpc3RJZCAuY29sdW1uMiB7XG4gIHdpZHRoOiA4MCU7XG59XG4jY2hhcmFjdGVyTGlzdElkIC5jb2x1bW4zIHtcbiAgd2lkdGg6IDIwJTtcbn1cbiNjaGFyYWN0ZXJMaXN0SWQgLkVULWNvbHVtbiB7XG4gIHdpZHRoOiA1JTtcbiAgbWFyZ2luLXRvcDogNXB4O1xufVxuI2NoYXJhY3Rlckxpc3RJZCAuZGl2aWRlci1jb2x1bW4ge1xuICBtYXJnaW4tdG9wOiAxNXB4O1xuICB3aWR0aDogOTElO1xufVxuI2NoYXJhY3Rlckxpc3RJZCAuZGl2aWRlci1jb2x1bW4gLm1hdC1kaXZpZGVyIHtcbiAgYm9yZGVyLXRvcC13aWR0aDogMnB4ICFpbXBvcnRhbnQ7XG59XG4jY2hhcmFjdGVyTGlzdElkIC52YWx1ZS1jbHMge1xuICBtYXJnaW4tdG9wOiAzcHg7XG4gIG1hcmdpbi1ib3R0b206IDVweDtcbn1cbiNjaGFyYWN0ZXJMaXN0SWQgLm9wZXJhdG9yLWNsYXNzIHtcbiAgd2lkdGg6IDI1cHg7XG4gIGhlaWdodDogOHB4O1xuICBib3JkZXI6IDJweCBzb2xpZCAjMDAwMDAwO1xuICBwYWRkaW5nOiA1cHg7XG4gIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgYm9yZGVyLXJhZGl1czogMjIlO1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjZmZmZmZmO1xuICBjb2xvcjogIzAwMDAwMDtcbiAgZm9udC13ZWlnaHQ6IDYwMDtcbiAgZm9udC1zaXplOiAxMnB4O1xuICBjdXJzb3I6IHBvaW50ZXI7XG59XG4jY2hhcmFjdGVyTGlzdElkIC5saW5lLXNlZ21lbnQge1xuICB3aWR0aDogMnB4O1xuICBoZWlnaHQ6IDZweDtcbiAgYmFja2dyb3VuZC1jb2xvcjogIzAwMDtcbiAgbWFyZ2luLWxlZnQ6IDIwcHg7XG4gIGZsb2F0OiBsZWZ0O1xuICBjb2xvcjogI2ZmZmZmZjtcbiAgcG9zaXRpb246IHJlbGF0aXZlO1xufVxuI2NoYXJhY3Rlckxpc3RJZCAuYWRkLWNsYXNzIHtcbiAgbWFyZ2luLXRvcDogNnB4O1xuICBtYXJnaW4tYm90dG9tOiAwO1xuICBmb250LXNpemU6IDE4cHg7XG59XG4jY2hhcmFjdGVyTGlzdElkIC5sYXN0IHtcbiAgZGlzcGxheTogbm9uZTtcbn1cbiNjaGFyYWN0ZXJMaXN0SWQgLnRleHQtc3Bhbi1mb250IHtcbiAgd2lkdGg6IDM0NXB4O1xufVxuI2NoYXJhY3Rlckxpc3RJZCAuc2F1Zi10ZXh0IHtcbiAgbWFyZ2luLWxlZnQ6IDE4JTtcbiAgZm9udC1zaXplOiAxMnB4O1xufVxuI2NoYXJhY3Rlckxpc3RJZCAuc3dpdGNoIHtcbiAgcG9zaXRpb246IHJlbGF0aXZlO1xuICB3aWR0aDogMzdweDtcbiAgaGVpZ2h0OiAxOHB4O1xuICBtYXJnaW4tbGVmdDogYXV0bztcbn1cbiNjaGFyYWN0ZXJMaXN0SWQgLnN3aXRjaCBpbnB1dCB7XG4gIG9wYWNpdHk6IDA7XG4gIHdpZHRoOiAwO1xuICBoZWlnaHQ6IDA7XG59XG4jY2hhcmFjdGVyTGlzdElkIC5zbGlkZXIge1xuICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gIGN1cnNvcjogcG9pbnRlcjtcbiAgdG9wOiAwO1xuICBsZWZ0OiAwO1xuICByaWdodDogMDtcbiAgYm90dG9tOiAwO1xuICBiYWNrZ3JvdW5kLWNvbG9yOiB0cmFuc3BhcmVudDtcbiAgLXdlYmtpdC10cmFuc2l0aW9uOiAwLjRzO1xuICB0cmFuc2l0aW9uOiAwLjRzO1xufVxuI2NoYXJhY3Rlckxpc3RJZCAuc2xpZGVyOmJlZm9yZSB7XG4gIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgY29udGVudDogXCJcIjtcbiAgaGVpZ2h0OiAxNHB4O1xuICB3aWR0aDogMTRweDtcbiAgbGVmdDogMXB4O1xuICB0b3A6IDFweDtcbiAgYmFja2dyb3VuZC1jb2xvcjogI2ZmZmZmZjtcbiAgLXdlYmtpdC10cmFuc2l0aW9uOiAwLjRzO1xuICB0cmFuc2l0aW9uOiAwLjRzO1xufVxuI2NoYXJhY3Rlckxpc3RJZCBpbnB1dDpjaGVja2VkICsgLnNsaWRlciB7XG4gIGJhY2tncm91bmQtY29sb3I6ICNjYjMzM2I7XG59XG4jY2hhcmFjdGVyTGlzdElkIGlucHV0OmZvY3VzICsgLnNsaWRlciB7XG4gIGJveC1zaGFkb3c6IDAgMCAxcHggIzAwNzdDODtcbn1cbiNjaGFyYWN0ZXJMaXN0SWQgaW5wdXQ6Y2hlY2tlZCArIC5zbGlkZXI6YmVmb3JlIHtcbiAgLXdlYmtpdC10cmFuc2Zvcm06IHRyYW5zbGF0ZVgoMTlweCk7XG4gIC1tcy10cmFuc2Zvcm06IHRyYW5zbGF0ZVgoMTlweCk7XG4gIHRyYW5zZm9ybTogdHJhbnNsYXRlWCgxOXB4KTtcbn1cbiNjaGFyYWN0ZXJMaXN0SWQgLnNsaWRlci5yb3VuZCB7XG4gIGJvcmRlci1yYWRpdXM6IDM0cHg7XG4gIGJvcmRlcjogMXB4IHNvbGlkICNmZmZmZmY7XG59XG4jY2hhcmFjdGVyTGlzdElkIC5zbGlkZXIucm91bmQ6YmVmb3JlIHtcbiAgYm9yZGVyLXJhZGl1czogNTAlO1xufVxuXG46Om5nLWRlZXAgI3Z1ZURldGFpbExpc3QgLm1hdC1saXN0LW9wdGlvblthcmlhLXNlbGVjdGVkPXRydWVdIC5ncm91cC1saXN0IHtcbiAgYmFja2dyb3VuZC1jb2xvcjogI2NjY2NjYztcbiAgY29sb3I6ICMwMDAwMDA7XG59XG46Om5nLWRlZXAgI3Z1ZURldGFpbExpc3QgLm1hdC1saXN0LW9wdGlvblthcmlhLXNlbGVjdGVkPXRydWVdIC5ncm91cC1saXN0LWdyZWVuIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogI2NjY2NjYztcbiAgY29sb3I6ICMwMDAwMDA7XG59XG46Om5nLWRlZXAgI3Z1ZURldGFpbExpc3QgLm1hdC1saXN0LW9wdGlvblthcmlhLXNlbGVjdGVkPXRydWVdIC5zZWxlY3QtbGlzdC1kZWxheSB7XG4gIGJhY2tncm91bmQtY29sb3I6ICNjY2NjY2M7XG4gIGNvbG9yOiAjMDAwMDAwO1xufVxuXG4uc2VsZWN0LWdyb3VwLWxpc3Q6aG92ZXIge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjY2NjY2NjICFpbXBvcnRhbnQ7XG4gIGNvbG9yOiAjMDAwMDAwICFpbXBvcnRhbnQ7XG59XG5cbi5leGFtcGxlLXJhZGlvLWdyb3VwIHtcbiAgZGlzcGxheTogZmxleDtcbiAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcbiAgbWFyZ2luOiAxNXB4IDA7XG59XG5cbi5leGFtcGxlLXJhZGlvLWJ1dHRvbiB7XG4gIG1hcmdpbjogNXB4O1xufVxuXG4uZ3JvdXBpbmctcmFkaW8tZGF0ZSB7XG4gIG92ZXJmbG93LXk6IGF1dG87XG4gIGhlaWdodDogY2FsYygxMDB2aCAtIDExNnB4KTtcbn1cbi5ncm91cGluZy1yYWRpby1kYXRlIC5kYXRlLXNlY3Rpb24ge1xuICBwYWRkaW5nOiA1cHggMHB4IDBweCAxNXB4O1xuICBoZWlnaHQ6IGNhbGMoKDEwMHZoIC0gMTMwcHgpLzIpO1xufVxuLmdyb3VwaW5nLXJhZGlvLWRhdGUgOjpuZy1kZWVwIC5tYXQtY2hlY2tib3gge1xuICBtYXJnaW46IDVweDtcbn1cbi5ncm91cGluZy1yYWRpby1kYXRlIDo6bmctZGVlcCAubWF0LWNoZWNrYm94IC5tYXQtY2hlY2tib3gtZnJhbWUge1xuICBtYXJnaW46IC0xcHg7XG4gIGJvcmRlcjogMXB4IHNvbGlkICNjY2NjY2M7XG59XG4uZ3JvdXBpbmctcmFkaW8tZGF0ZSA6Om5nLWRlZXAgLm1hdC1jaGVja2JveCAubWF0LWNoZWNrYm94LWJhY2tncm91bmQge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiB3aGl0ZTtcbn1cbi5ncm91cGluZy1yYWRpby1kYXRlIDo6bmctZGVlcCAubWF0LWNoZWNrYm94IC5tYXQtY2hlY2tib3gtY2hlY2ttYXJrLXBhdGgge1xuICBzdHJva2U6ICMwMDc3YzggIWltcG9ydGFudDtcbn1cbi5ncm91cGluZy1yYWRpby1kYXRlIGlucHV0W3R5cGU9bnVtYmVyXSB7XG4gIHdpZHRoOiA2MCU7XG4gIG1hcmdpbi1sZWZ0OiAxNSU7XG4gIG1hcmdpbi10b3A6IDhweDtcbiAgaGVpZ2h0OiAyNXB4O1xuICBwYWRkaW5nLWxlZnQ6IDVweDtcbn1cbi5ncm91cGluZy1yYWRpby1kYXRlIC5hbGwtZ3JvdXBpbmcge1xuICBkaXNwbGF5OiBmbGV4O1xufVxuXG4ucG9wdWxhdGlvbi1saXN0LWl0ZW0ge1xuICBib3JkZXI6IDBweDtcbiAgYmFja2dyb3VuZC1jb2xvcjogI2ZmZmZmZjtcbiAgY3Vyc29yOiBwb2ludGVyO1xuICB0ZXh0LXRyYW5zZm9ybTogdXBwZXJjYXNlO1xufVxuXG4ubWFyZ2luLTEwIHtcbiAgbWFyZ2luLXRvcDogMTBweDtcbn1cblxuLnRpY2staW1nIHtcbiAgZmxvYXQ6IHJpZ2h0O1xuICBtYXJnaW4tdG9wOiA1cHg7XG4gIG1hcmdpbi1sZWZ0OiAxMHB4O1xuICB3aWR0aDogMTVweDtcbiAgaGVpZ2h0OiAxNXB4O1xufVxuXG4ucG9wdWxhdGlvbi1saXN0IHtcbiAgbWluLXdpZHRoOiAxODBweDtcbiAgbWF4LWhlaWdodDogMjUwcHg7XG59XG5cbi5kcm9wZG93bi1hbGlnbm1lbnQge1xuICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG59XG4uZHJvcGRvd24tYWxpZ25tZW50IC51cC1kb3duIHtcbiAgZmxvYXQ6IHJpZ2h0O1xuICBtYXJnaW4tdG9wOiA3cHg7XG4gIHdpZHRoOiAxNXB4O1xuICBoZWlnaHQ6IDE1cHg7XG59XG4uZHJvcGRvd24tYWxpZ25tZW50IC5wb3B1bGF0aW9uLW1lbnUge1xuICBib3JkZXItYm90dG9tOiAxcHggc29saWQgI2FhYWFhYTtcbiAgaGVpZ2h0OiAzMHB4O1xuICBjdXJzb3I6IHBvaW50ZXI7XG59XG4uZHJvcGRvd24tYWxpZ25tZW50IC5kcm9wZG93bi1hbGlnbm1lbnQ6bnRoLWNoaWxkKDEpLCAuZHJvcGRvd24tYWxpZ25tZW50IC5kcm9wZG93bi1hbGlnbm1lbnQ6bnRoLWNoaWxkKDIpIHtcbiAgbWFyZ2luLXRvcDogMDtcbn1cbi5kcm9wZG93bi1hbGlnbm1lbnQgLnRleHQtc3BhbiB7XG4gIGZvbnQtZmFtaWx5OiBSb2JvdG8sIFwiSGVsdmV0aWNhIE5ldWVcIiwgc2Fucy1zZXJpZjtcbiAgZm9udC1zaXplOiAxMXB4O1xuICBmb250LXdlaWdodDogNDAwO1xuICBsaW5lLWhlaWdodDogMCAhaW1wb3J0YW50O1xufVxuXG4udGV4dGFyZWEtYWxpZ25tZW50IHtcbiAgZGlzcGxheTogYmxvY2s7XG4gIHBhZGRpbmc6IDBweCAwcHggMHB4IDIwcHg7XG4gIGhlaWdodDogNDBweDtcbiAgd2lkdGg6IDkwJTtcbn1cbi50ZXh0YXJlYS1hbGlnbm1lbnQgaW5wdXRbdHlwZT10ZXh0XSB7XG4gIHdpZHRoOiAxMDAlO1xuICBib3JkZXItYm90dG9tOiAxcHggc29saWQgI2FhYWFhYTtcbn1cbi50ZXh0YXJlYS1hbGlnbm1lbnQgaW5wdXRbdHlwZT10ZXh0XTpmb2N1cyB7XG4gIG91dGxpbmU6IG5vbmUgIWltcG9ydGFudDtcbiAgYm9yZGVyLWJvdHRvbTogMXB4IHNvbGlkICNhYWFhYWE7XG59XG4udGV4dGFyZWEtYWxpZ25tZW50IC50ZXh0LXNwYW4ge1xuICBmb250LWZhbWlseTogUm9ib3RvLCBcIkhlbHZldGljYSBOZXVlXCIsIHNhbnMtc2VyaWY7XG4gIGZvbnQtc2l6ZTogMTFweDtcbiAgZm9udC13ZWlnaHQ6IDQwMDtcbiAgbGluZS1oZWlnaHQ6IDAgIWltcG9ydGFudDtcbn1cblxuLmN1c3RvbS1kZWxheS1zY3JvbGwtYmFyIHtcbiAgaGVpZ2h0OiBjYWxjKDEwMCUgLSA2NXB4KTtcbiAgb3ZlcmZsb3cteTogc2Nyb2xsO1xuICBvdmVyZmxvdy14OiBoaWRkZW47XG4gIG1hcmdpbi1yaWdodDogNXB4O1xuICBtYXJnaW4tdG9wOiA1cHg7XG59XG5cbi5jdXN0b20tZGVsYXktc2Nyb2xsLWJhcjo6LXdlYmtpdC1zY3JvbGxiYXIge1xuICB3aWR0aDogMTBweDtcbn1cblxuLmN1c3RvbS1kZWxheS1zY3JvbGwtYmFyOjotd2Via2l0LXNjcm9sbGJhci10aHVtYiB7XG4gIGJhY2tncm91bmQtY29sb3I6ICNFOUVFRjA7XG4gIGJvcmRlci1yYWRpdXM6IDVweDtcbn1cblxuLml0ZW0tZGlzYWJsZSB7XG4gIGN1cnNvcjogbm90LWFsbG93ZWQgIWltcG9ydGFudDtcbiAgcG9pbnRlci1ldmVudHM6IG5vbmU7XG59XG5cbi52dWUtc2VjdGlvbi1jaGVjayB7XG4gIHdpZHRoOiA4OSU7XG4gIG1hcmdpbi10b3A6IDVweDtcbiAgbWFyZ2luLWxlZnQ6IDIwcHg7XG4gIGZvbnQtZmFtaWx5OiBSb2JvdG8sIFwiSGVsdmV0aWNhIE5ldWVcIiwgc2Fucy1zZXJpZjtcbiAgZm9udC1zaXplOiAxMXB4O1xuICBmb250LXdlaWdodDogNDAwO1xufVxuLnZ1ZS1zZWN0aW9uLWNoZWNrIDo6bmctZGVlcCAubWF0LWNoZWNrYm94IHtcbiAgbWFyZ2luOiA1cHg7XG59XG4udnVlLXNlY3Rpb24tY2hlY2sgOjpuZy1kZWVwIC5tYXQtY2hlY2tib3ggLm1hdC1jaGVja2JveC1mcmFtZSB7XG4gIG1hcmdpbjogLTFweDtcbiAgYm9yZGVyOiAxcHggc29saWQgI2NjY2NjYztcbn1cbi52dWUtc2VjdGlvbi1jaGVjayA6Om5nLWRlZXAgLm1hdC1jaGVja2JveCAubWF0LWNoZWNrYm94LWJhY2tncm91bmQge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiB3aGl0ZTtcbn1cbi52dWUtc2VjdGlvbi1jaGVjayA6Om5nLWRlZXAgLm1hdC1jaGVja2JveCAubWF0LWNoZWNrYm94LWNoZWNrbWFyay1wYXRoIHtcbiAgc3Ryb2tlOiAjMDA3N2M4ICFpbXBvcnRhbnQ7XG59XG5cbi52dWUtbWF0LWxpc3QtZGlzYWJsZWQge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjZWVlZWVlICFpbXBvcnRhbnQ7XG4gIGN1cnNvcjogbm90LWFsbG93ZWQgIWltcG9ydGFudDtcbiAgcG9pbnRlci1ldmVudHM6IG5vbmU7XG4gIGNvbG9yOiAjYWFhYWFhICFpbXBvcnRhbnQ7XG59XG5cbi5idXR0b24tc2F2ZSB7XG4gIHdpZHRoOiAxMDBweDtcbiAgaGVpZ2h0OiAzMHB4ICFpbXBvcnRhbnQ7XG4gIGZvbnQtZmFtaWx5OiBSb2JvdG8sIFwiSGVsdmV0aWNhIE5ldWVcIiwgc2Fucy1zZXJpZjtcbiAgZm9udC1zaXplOiAxM3B4O1xuICBmb250LXdlaWdodDogNTAwO1xuICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gIGJhY2tncm91bmQtY29sb3I6ICNGRkNDMzM7XG4gIGJvcmRlci1yYWRpdXM6IDNweDtcbiAgZmxvYXQ6IHJpZ2h0O1xufVxuXG4uY2xzLWRpc3BsYXlOb25lIHtcbiAgZGlzcGxheTogbm9uZSAhaW1wb3J0YW50O1xufVxuXG4uYXBwTWFpbkN0biB7XG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgei1pbmRleDogMTtcbn0iXX0= */\"","import { Component, OnInit, ChangeDetectionStrategy, OnDestroy, ViewChild, AfterViewInit, AfterContentChecked, ChangeDetectorRef, AfterViewChecked } from '@angular/core';\nimport { ActivatedRoute, Router } from \"@angular/router\";\nimport { MatDialog } from '@angular/material/dialog';\nimport { MatDatepickerInputEvent } from '@angular/material/datepicker';\nimport { CdkDragDrop } from '@angular/cdk/drag-drop';\nimport 'moment/min/locales.min';\nimport * as moment from 'moment';\nimport * as _ from 'lodash';\nimport { TranslateService } from '@ngx-translate/core';\nimport { ToastyService } from 'ng2-toasty';\nimport { AppDateAdapter, APP_DATE_FORMATS } from '../../../services/util/date.adapter';\nimport { FormBuilder, FormGroup } from '@angular/forms';\nimport { BackendApiService } from '../../../services/backend-api/backend-api.service';\nimport { UtilService } from '../../../services/util/util.service';\nimport { RequestService } from '../../../services/request/request.service';\nimport { AlertConfirmationComponent } from '../../alert-confirmation/alert-confirmation.component';\nimport data from './population-screen-table.json';\nimport { PreviewDialogComponent } from '../preview-dialog/preview-dialog.component';\nimport { SaveQueryNameComponent } from '../save-query-name/save-query-name.component';\nimport { MatSelectionList, MatSelectionListChange, DateAdapter, MAT_DATE_FORMATS } from '@angular/material';\nimport { ExportFileComponent } from '../export-file/export-file.component';\nimport { MatomoTracker } from 'ngx-matomo';\n@Component({\n selector: 'app-main-screen',\n templateUrl: './main-screen.component.html',\n styleUrls: ['./main-screen.component.scss'],\n changeDetection: ChangeDetectionStrategy.OnPush,\n providers: [\n {\n provide: DateAdapter, useClass: AppDateAdapter\n },\n {\n provide: MAT_DATE_FORMATS, useValue: APP_DATE_FORMATS\n }\n ]\n})\nexport class QueryMainScreenComponent implements OnInit, OnDestroy, AfterViewInit, AfterContentChecked, AfterViewChecked {\n\n @ViewChild('characterListId', { static: false }) characterId: MatSelectionList;\n profile = this.utilService.getUserProfile();\n\n dataList = data;\n connections: string[] = ['Europe', 'Mercosur'];\n favoriteConnecton: string;\n\n bln: boolean;\n selectedTable;\n ipn;\n region;\n splitChar = \"§\";\n requestStoresData;\n selectedRequestStoresData;\n selectedCategory = \"Tous\";\n filterCategory: Array;\n filterPrivateCategory: Array;\n categoryList;\n searchText;\n displayFilterValues;\n criteriaList;\n criteriaListOringinal;\n displayCriteriaList: Array;\n selectedCriterias: string[] = [];\n selectedGroupValues: string[] = [];\n decodeSaufData: string[] = [];\n arrowUpDisplay: boolean;\n reqActive;\n isExecute = false;\n getResultInput = {};\n populateExp = true;\n mnuOpen: boolean;\n mnuDeptOpen: boolean;\n mnuEntityOpen: boolean;\n mnuPaysOpen: boolean;\n mnuDateOpen: boolean;\n mnuDefinationOpen: boolean;\n displayGroupingForm = false;\n selectedId;\n disableExecuteSection = true;\n populateDeptList: Array;\n populateEntityList: Array;\n populatePaysList: Array;\n populateDateList: Array;\n selPopulateDept = 'Tous';\n selPopulateEntity: string;\n selPopulatePays: string;\n selPopulateDate: string;\n selPopulateDefination: string;\n navigateUrl: string;\n selectedItemValue: string;\n selectedGroupItemValue: string;\n selectedCharacterList: Object = {};\n selectedItemIndex: number;\n selectedItemType: number;\n selectedItemType4Color: number;\n selectedCharacterNumber: number;\n selectedKey: string;\n queryName: string;\n populateSection = true;\n groupSection: boolean;\n vueSection: boolean;\n blnGroupingEdit = false;\n groupingEditValue: string;\n groupingEditIndex: number;\n selectedGroupItemIndex: number;\n selectedIndexForMove: any;\n blnMoveRight = false;\n blnDelay = false;\n delayDate1Data;\n delayDate2Data;\n delayDate1Check1: boolean;\n delayDate1Check2: boolean;\n delayDate2Check1: boolean;\n delayDate2Check2: boolean;\n toggle = false;\n selectedDelayDate1;\n selectedDelayDate2;\n editGroupingDelay = false;\n groupingDelayInput = { date1: '', date2: '', value: '', ddValue: '', diffValue: '', diffTextValue: '' };\n delayDateTime1;\n delayDateTime2;\n daysData;\n isMove;\n tcm;\n groupList = [];\n populationList = [];\n characterList = {\n 'characterListType1': { 'group0': [] },\n 'characterListType2': { 'group0': [] },\n 'characterListType3': { 'group0': [] },\n };\n dateTCMList = ['Les 3 derniers mois', 'Les 6 derniers mois', 'Les 12 derniers mois', \"Tout l'historique\"]\n groupingSelectedList = [];\n groupingDelaySelectOption = 0;\n groupingDelayCheckVal = 0;\n form: FormGroup;\n selectedQuery: string;\n roleBasedQuery: string;\n vueList = [];\n vueEditIndex: number;\n blnVueEdit = false;\n vueEditValue: string;\n GCOName: string;\n vuePrivateIPNDetails;\n selectedVueIPNDetail;\n blnVueIPNOpen;\n vueTypeSelect;\n detailCharacterList;\n detailGroupList;\n detailVueList;\n isAllowExecute = false;\n isAllowAllHisData = false;\n isShowHiddenList = false;\n isEnableAllTextBox = false;\n isCheckPopulationEmpty = false;\n lang = 'fr';\n executePreviewData: { table: any; population: any[]; characterList: { characterListType1: { group0: any[]; }; characterListType2: { group0: any[]; }; characterListType3: { group0: any[]; }; }; group: any[]; vue: any[]; };\n getLangIndex(lang) {\n if (lang === 'en') {\n return 1;\n } else {\n return 0;\n }\n }\n delayName;\n dateVueValue = ['flag', 'jours', 'programmes', 'mois industriels', 'mois calendaires', 'année', 'jours', 'jours', 'jour/prog./année'];\n dateReGroupValue = ['flag', 'jours', 'semaines', 'mois industriels', 'mois calendaires', 'année', 'jours', 'jours', 'jour/prog./année'];\n datePopulationValue = ['connue', 'jour', 'programme', 'mois insustriel', 'mois calendaire', 'année', '', '', 'ASJ', '', 'inconnue'];\n delayOptionValue = ['Jours', 'semaines', 'Mois Industriel', 'Mois Calendaire', 'year', 'Jours ouvres'];\n isVueDetailSave: boolean;\n previousVueList;\n isVueDisable: boolean;\n executeQuery;\n saveQueryList;\n detailExecute;\n executeBtn = false;\n blnExecuteDataStatus = false;\n rtnTotalRowsLength;\n rtnRsultColumns;\n groupExecuteTypeValue = \"TSI\";\n constructor(readonly router: Router, readonly activatedRoute: ActivatedRoute, public dialog: MatDialog, fb: FormBuilder,\n readonly apiService: BackendApiService, readonly utilService: UtilService, readonly requestService: RequestService,\n readonly changeDetector: ChangeDetectorRef, readonly translateService: TranslateService, readonly toastyService: ToastyService, private matomoTracker: MatomoTracker) {\n this.ipn = this.profile['login'];\n this.lang = requestService.getSelectedLang();\n this.form = fb.group({\n day: [''],\n week: [''],\n year: ['']\n });\n setTimeout(() => {\n this.selPopulateDept = this.utilService.getTranslateName(`COMMON.ALL`);\n this.selectedCategory = this.utilService.getTranslateName(`COMMON.ALL`);\n })\n this.utilService.$showIcon$.next(false);\n }\n\n ngAfterContentChecked(): void {\n this.changeDetector.detectChanges();\n }\n\n ngAfterViewChecked() {\n this.changeDetector.detectChanges();\n }\n\n ngAfterViewInit() {\n this.changeDetector.detectChanges();\n }\n\n getDateOfWeek(week, year) {\n const noOfDays = 7\n let d = (1 + (week - 1) * noOfDays); // 1st of January + 7 days for each week\n const checkFirstWeek = 10\n if (week < checkFirstWeek) {\n d = (1 + (week) * noOfDays); // 1st of January + 7 days for each week\n return new Date(year, 1, d);\n }\n return new Date(year, 0, d);\n }\n\n getWeekOfMonth(year, month_number) {\n return this.getWeek(year, month_number, 1);\n }\n\n getWeek(year, month, day) {\n if (month !== 1) {\n month = month - 1;\n }\n //lets calc weeknumber the cruel and hard way :D\n //Find JulianDay \n month += 1; //use 1-12\n let a = Math.floor((14 - (month)) / 12);\n let y = year + 4800 - a;\n let m = (month) + (12 * a) - 3;\n let jd = day + Math.floor(((153 * m) + 2) / 5) +\n (365 * y) + Math.floor(y / 4) - Math.floor(y / 100) +\n Math.floor(y / 400) - 32045; // (gregorian calendar)\n //var jd = (day+1)+Math.Round(((153*m)+2)/5)+(365+y) + \n // Math.round(y/4)-32083; // (julian calendar)\n\n //now calc weeknumber according to JD\n let d4 = (jd + 31741 - (jd % 7)) % 146097 % 36524 % 1461;\n let L = Math.floor(d4 / 1460);\n let d1 = ((d4 - L) % 365) + L;\n const NumberOfWeek = Math.floor(d1 / 7) + 1;\n if (month === 1) {\n return 1;\n }\n return NumberOfWeek;\n }\n\n getWeekOfDate(year, month, day) {\n return this.getWeek(year, month, 1) + Math.floor(day / 7);\n }\n\n groupingDelayIndex(event) {\n const previousIndex = event.previousIndex > -1 ? event.previousIndex : event.currentIndex;\n this.groupingDelaySelectOption = event.currentIndex;\n if (this.delayDateTime1) {\n if (this.groupingDelayCheckVal === 2) {\n if (this.groupingDelaySelectOption === 0 || this.groupingDelaySelectOption === 1 || this.groupingDelaySelectOption === 6) {\n if (previousIndex === 2) {\n const dateVal = this.getDateOfWeek(parseInt(this.delayDateTime1.split(\"/\")[0]), parseInt(this.delayDateTime1.split(\"/\")[1]));\n this.delayDateTime1 = (dateVal.getDate() < 10 ? '0' + dateVal.getDate() : dateVal.getDate()) + '/' + (dateVal.getMonth() < 10 ? '0' + dateVal.getMonth() : dateVal.getMonth()) + '/' + dateVal.getFullYear();\n } else if (previousIndex === 3 || previousIndex === 4) {\n this.delayDateTime1 = '01/' + this.delayDateTime1.split(\"/\")[0] + '/' + this.delayDateTime1.split(\"/\")[1];\n } else if (previousIndex === 5) {\n this.delayDateTime1 = '01/01/' + this.delayDateTime1;\n }\n } else if (this.groupingDelaySelectOption === 3 || this.groupingDelaySelectOption === 4) {\n if (previousIndex === 0 || previousIndex === 1 || previousIndex === 6) {\n this.delayDateTime1 = this.delayDateTime1.split(\"/\")[1] + '/' + this.delayDateTime1.split(\"/\")[2];\n } else if (previousIndex === 2) {\n const dateVal = this.getDateOfWeek(parseInt(this.delayDateTime1.split(\"/\")[0]), parseInt(this.delayDateTime1.split(\"/\")[1]));\n this.delayDateTime1 = (dateVal.getMonth() < 10 ? '0' + dateVal.getMonth() : dateVal.getMonth()) + '/' + dateVal.getFullYear();\n } else if (previousIndex === 5) {\n this.delayDateTime1 = '01/' + this.delayDateTime1;\n }\n } else if (this.groupingDelaySelectOption === 5) {\n if (previousIndex === 0 || previousIndex === 1 || previousIndex === 6) {\n this.delayDateTime1 = this.delayDateTime1.split(\"/\")[2];\n } else if (previousIndex === 2 || previousIndex === 3 || previousIndex === 4) {\n this.delayDateTime1 = this.delayDateTime1.split(\"/\")[1];\n }\n } else if (this.groupingDelaySelectOption === 2) {\n if (previousIndex === 3 || previousIndex === 4) {\n const val = this.getWeekOfMonth(this.delayDateTime1.split(\"/\")[1], this.delayDateTime1.split(\"/\")[0]);\n this.delayDateTime1 = (val < 10 ? '0' + val : val) + '/' + this.delayDateTime1.split(\"/\")[1];\n } else if (previousIndex === 0 || previousIndex === 1 || previousIndex === 6) {\n const val = this.getWeekOfDate(this.delayDateTime1.split(\"/\")[2], this.delayDateTime1.split(\"/\")[1], this.delayDateTime1.split(\"/\")[0]);\n this.delayDateTime1 = (val < 10 ? '0' + val : val) + '/' + this.delayDateTime1.split(\"/\")[2];\n } else if (previousIndex === 5) {\n this.delayDateTime1 = '01/' + this.delayDateTime1;\n }\n }\n }\n }\n\n if (this.delayDateTime2) {\n if (this.groupingDelayCheckVal === 4) {\n if (this.groupingDelaySelectOption === 0 || this.groupingDelaySelectOption === 1 || this.groupingDelaySelectOption === 6) {\n if (previousIndex === 2) {\n const dateVal = this.getDateOfWeek(parseInt(this.delayDateTime2.split(\"/\")[0]), parseInt(this.delayDateTime2.split(\"/\")[1]));\n this.delayDateTime2 = (dateVal.getDate() < 10 ? '0' + dateVal.getDate() : dateVal.getDate()) + '/' + (dateVal.getMonth() < 10 ? '0' + dateVal.getMonth() : dateVal.getMonth()) + '/' + dateVal.getFullYear();\n } else if (previousIndex === 3 || previousIndex === 4) {\n this.delayDateTime2 = '01/' + this.delayDateTime2.split(\"/\")[0] + '/' + this.delayDateTime2.split(\"/\")[1];\n } else if (previousIndex === 5) {\n this.delayDateTime2 = '01/01/' + this.delayDateTime2;\n }\n } else if (this.groupingDelaySelectOption === 3 || this.groupingDelaySelectOption === 4) {\n if (previousIndex === 0 || previousIndex === 1 || previousIndex === 6) {\n this.delayDateTime2 = this.delayDateTime2.split(\"/\")[1] + '/' + this.delayDateTime2.split(\"/\")[2];\n } else if (previousIndex === 2) {\n const dateVal = this.getDateOfWeek(parseInt(this.delayDateTime2.split(\"/\")[0]), parseInt(this.delayDateTime2.split(\"/\")[1]));\n this.delayDateTime2 = (dateVal.getMonth() < 10 ? '0' + dateVal.getMonth() : dateVal.getMonth()) + '/' + dateVal.getFullYear();\n } else if (previousIndex === 5) {\n this.delayDateTime2 = '01/' + this.delayDateTime2;\n }\n } else if (this.groupingDelaySelectOption === 5) {\n if (previousIndex === 0 || previousIndex === 1 || previousIndex === 6) {\n this.delayDateTime2 = this.delayDateTime2.split(\"/\")[2];\n } else if (previousIndex === 2 || previousIndex === 3 || previousIndex === 4) {\n this.delayDateTime2 = this.delayDateTime2.split(\"/\")[1];\n }\n } else if (this.groupingDelaySelectOption === 2) {\n if (previousIndex === 3 || previousIndex === 4) {\n const val = this.getWeekOfMonth(this.delayDateTime2.split(\"/\")[1], this.delayDateTime2.split(\"/\")[0]);\n this.delayDateTime2 = (val < 10 ? '0' + val : val) + '/' + this.delayDateTime2.split(\"/\")[1];\n } else if (previousIndex === 0 || previousIndex === 1 || previousIndex === 6) {\n const val = this.getWeekOfDate(this.delayDateTime2.split(\"/\")[2], this.delayDateTime2.split(\"/\")[1], this.delayDateTime2.split(\"/\")[0]);\n this.delayDateTime2 = (val < 10 ? '0' + val : val) + '/' + this.delayDateTime2.split(\"/\")[2];\n } else if (previousIndex === 5) {\n this.delayDateTime2 = '01/' + this.delayDateTime2;\n }\n }\n }\n }\n // this.delayDateTime1 = undefined;\n // this.delayDateTime2 = undefined;\n }\n\n delayDate1TextChange(event) {\n this.delayDateTime1 = event;\n if (typeof (this.delayDateTime1) !== 'undefined') {\n if (this.delayDateTime1.length < 11 && (this.groupingDelaySelectOption === 0 || this.groupingDelaySelectOption === 1 || this.groupingDelaySelectOption === 6)) {\n this.groupingDelayInput.date1 = this.delayDateTime1\n } else if (this.delayDateTime1.length < 8 && (this.groupingDelaySelectOption === 2 || this.groupingDelaySelectOption === 3 || this.groupingDelaySelectOption === 4)) {\n this.groupingDelayInput.date1 = this.delayDateTime1\n } else if (this.delayDateTime1.length < 5) {\n this.groupingDelayInput.date1 = this.delayDateTime1\n }\n }\n }\n\n delayDate2TextChange(event) {\n this.delayDateTime2 = event;\n if (typeof (this.delayDateTime2) !== 'undefined') {\n if (this.delayDateTime2.length < 11 && (this.groupingDelaySelectOption === 0 || this.groupingDelaySelectOption === 1 || this.groupingDelaySelectOption === 6)) {\n this.groupingDelayInput.date2 = this.delayDateTime2\n } else if (this.delayDateTime2.length < 8 && (this.groupingDelaySelectOption === 2 || this.groupingDelaySelectOption === 3 || this.groupingDelaySelectOption === 4)) {\n this.groupingDelayInput.date2 = this.delayDateTime2\n } else if (this.delayDateTime2.length < 5) {\n this.groupingDelayInput.date2 = this.delayDateTime2\n }\n }\n }\n\n onDelay() {\n if (this.groupSection || this.populateSection) {\n this.editGroupingDelay = false;\n this.groupingDelayInput = { date1: '', date2: '', value: '', ddValue: '', diffValue: '', diffTextValue: '' };\n this.selectedDelayDate1 = undefined;\n this.selectedDelayDate2 = undefined;\n this.delayDate2Check1 = false;\n this.delayDate2Check2 = false;\n this.delayDate1Check1 = false;\n this.delayDate1Check2 = false;\n this.delayDateTime1 = undefined;\n this.delayDateTime2 = undefined;\n\n this.groupingDelaySelectOption = 0;\n this.groupingDelayCheckVal = 0;\n this.selectedItemValue = undefined;\n this.selectedItemValue = 'Delay';\n this.selectedItemType = undefined;\n\n setTimeout(() => {\n var objDiv = document.getElementById('scrollframe');\n objDiv.scrollTop = objDiv.scrollHeight;\n }, 10);\n\n\n this.blnDelay = true;\n }\n }\n\n loadDelayData() {\n this.blnDelay = false;\n this.delayDate1Data = [];\n this.delayDate2Data = [];\n\n let delayDateList = [];\n\n const filterVal = this.criteriaListOringinal.filter(a => a.typeOfField === 3);\n for (const iterator of filterVal) {\n\n if (this.isShowHiddenList) {\n this.delayDate1Data.push(iterator.longLabel.split(this.splitChar, 2)[this.getLangIndex(this.lang)]);\n this.delayDate2Data.push(iterator.longLabel.split(this.splitChar, 2)[this.getLangIndex(this.lang)]);\n } else {\n if (iterator.longLabel.split(this.splitChar, 2)[this.getLangIndex(this.lang)][0] !== '_') {\n this.delayDate1Data.push(iterator.longLabel.split(this.splitChar, 2)[this.getLangIndex(this.lang)]);\n this.delayDate2Data.push(iterator.longLabel.split(this.splitChar, 2)[this.getLangIndex(this.lang)]);\n }\n }\n }\n this.delayDate1Data = this.delayDate1Data.sort(this.utilService.sortArray);\n this.delayDate2Data = this.delayDate2Data.sort(this.utilService.sortArray);\n\n if (this.selectedTable !== 'LEX') {\n this.getDaysValue();\n }\n }\n\n drop(event: CdkDragDrop) {\n // //console.log('event.container.id', event.container.id);\n // // //console.log(\"vent.previousContainer1111111\", event.previousContainer.data, event.container.data);\n // //console.log('event.previousContainer === event.container', event.previousContainer === event.container, event.previousIndex, event.currentIndex, event.item)\n // if (event.previousContainer === event.container) {\n\n // this.selectedItemValue = event.previousContainer.data[event.previousIndex];\n // //console.log('this.selectedItemValue', this.selectedItemValue, typeof (this.selectedItemValue));\n // if (typeof (this.selectedItemValue) === 'string') {\n // this.moveRight();\n // }\n // // //console.log(\"vent.previousContainer\", event.previousContainer, event.container);\n // } else {\n // this.selectedItemValue = event.previousContainer.data[event.previousIndex];\n // //console.log('this.selectedItemValuedddddddddd', this.selectedItemValue);\n // // this.moveRight();\n // }\n // // //console.log(\"eventeventeventevent\", event.container.data[event.previousIndex], this.criteriaListOringinal[event.previousIndex], event);\n // if (event.previousContainer === event.container) {\n // // //console.log('clickasdddddddddsdssss', this.selectedItemValue, event.previousContainer.data[event.previousIndex], event.previousIndex);\n\n\n // // //console.log('dataaaa', this.criteriaListOringinal.filter(a => a.longLabel.split(this.splitChar, 2)[0] === event.previousContainer.data[event.previousIndex])[0])\n // // // moveItemInArray(event.container.data, event.previousIndex, event.currentIndex);\n // }\n }\n\n // scrollBottom(id) {\n // setTimeout(() => {\n // var objDiv = document.getElementById('scrollframe');\n // objDiv.scrollTop = objDiv.scrollHeight;\n // return objDiv.scrollTop;\n // },10);\n // }\n\n scrollEvent(index, id, key) {\n setTimeout(() => {\n if (this.groupingSelectedList.length)\n var objDiv = document.getElementById('scrollframe');\n objDiv.scrollTop = objDiv.scrollHeight;\n }, 10);\n\n this.removeSelectedItem(index, id, key);\n this.selectedItemValue = undefined;\n this.selectedGroupItemValue = undefined;\n this.vueEditValue = undefined\n this.blnMoveRight = false;\n }\n\n dblClickVue(indexval) {\n this.scrollEvent(indexval, 'vueDetailList', '');\n if (this.vueList[indexval].name.indexOf('[') > -1) {\n this.selectedGroupItemValue = this.vueList[indexval].name.substr(0, this.vueList[indexval].name.indexOf('['));\n this.vueEditValue = this.vueList[indexval].name.substr(this.vueList[indexval].name.indexOf('[') + 1, (this.vueList[indexval].name.length - this.vueList[indexval].name.indexOf('[') - 2));\n // this.selectedItemType = this.criteriaListOringinal.filter(a => a.longLabel.split(this.splitChar, 2)[this.getLangIndex(this.lang)] === this.selectedGroupItemValue)[0].typeOfField;\n this.selectedItemType = this.vueList[indexval].type;\n this.blnVueEdit = true;\n this.vueEditIndex = indexval;\n this.displayGrouping();\n } else {\n this.selectedGroupItemValue = this.vueList[indexval].name;\n this.vueEditValue = undefined;\n // this.selectedItemType = this.criteriaListOringinal.filter(a => a.longLabel.split(this.splitChar, 2)[this.getLangIndex(this.lang)] === this.selectedGroupItemValue)[0].typeOfField;\n this.selectedItemType = this.vueList[indexval].type;\n if (this.selectedItemType === 4 || this.selectedItemType === 5) {\n this.selectedItemType = undefined;\n this.blnVueEdit = true;\n this.vueEditIndex = indexval;\n }\n }\n }\n\n dblClickCharacterList(indexval, num, key, ind, event) {\n // event.stopPropagation();\n let idx = num.toString() + ind.toString() + indexval.toString();\n this.scrollEvent(indexval, 'characterListId', idx);\n this.groupingEditValue = undefined;\n this.vueEditIndex = undefined;\n this.vueEditIndex = indexval;\n this.selectedKey = key;\n let characterType;\n if (num === 1) {\n characterType = 'characterListType1';\n } else if (num === 2) {\n characterType = 'characterListType2';\n } else {\n characterType = 'characterListType3';\n }\n\n let currentArray = this.characterList[characterType][this.selectedKey][indexval];\n\n if (currentArray.type === 99) {\n this.onDelay();\n this.groupingDelayCheckVal = currentArray.delay;\n this.blnDelay = true;\n this.editGroupingDelay = true;\n const delayName = currentArray.name;\n this.selectedItemValue = delayName;\n this.groupingDelayInput.date1 = delayName.split('-')[0];\n this.groupingDelayInput.date2 = delayName.split('-')[1];\n if (currentArray.delay === 1 || currentArray.delay === 2) {\n if (this.groupingDelayInput.date1 === 'DATEDUJOUR') {\n this.delayDate1Check1 = true;\n } else if (currentArray.delay !== 0) {\n this.delayDate1Check2 = true;\n this.delayDateTime1 = this.groupingDelayInput.date1;\n }\n } else if (currentArray.delay !== 3 || currentArray.delay !== 4) {\n this.selectedDelayDate1 = this.groupingDelayInput.date1;\n }\n if (currentArray.delay === 3 || currentArray.delay === 4) {\n if (this.groupingDelayInput.date2 === 'DATEDUJOUR') {\n this.delayDate2Check1 = true;\n } else if (currentArray.delay !== 0) {\n this.delayDate2Check2 = true;\n this.delayDateTime2 = this.groupingDelayInput.date2;\n }\n } else if (currentArray.delay !== 1 || currentArray.delay !== 2) {\n this.selectedDelayDate2 = this.groupingDelayInput.date2;\n }\n const delayValue = currentArray.value.split(' ');\n this.groupingDelayInput.value = delayValue;\n return;\n }\n this.selectedGroupItemValue = this.characterList[characterType][this.selectedKey][indexval].name;\n const criteriaFilterVal = this.criteriaListOringinal.filter(a => a.GCOName === this.characterList[characterType][this.selectedKey][indexval].GCOName)[0];\n this.selectedItemType = criteriaFilterVal.typeOfField;\n this.GCOName = criteriaFilterVal.GCOName;\n this.getCharacterData(criteriaFilterVal);\n if (this.selectedItemType === 2 || this.selectedItemType === 1 || this.selectedItemType === 0 || this.selectedItemType === 6) {\n this.groupingEditValue = this.characterList[characterType][this.selectedKey][indexval];\n } else {\n this.groupingEditValue = this.characterList[characterType][this.selectedKey][indexval].value.split(' ');\n }\n }\n\n dblClickReGroupment(indexval) {\n this.delayDateTime1 = undefined;\n this.delayDateTime2 = undefined;\n this.blnMoveRight = false;\n this.selectedItemType = undefined;\n setTimeout(() => {\n var objDiv = document.getElementById('scrollframe');\n objDiv.scrollTop = objDiv.scrollHeight;\n }, 10);\n this.removeSelectedItem(indexval, 'groupingList', '');\n if (this.groupList[indexval].type === 99) {\n this.groupingEditIndex = indexval;\n this.onDelay();\n this.groupingDelayCheckVal = this.groupList[indexval].delay;\n this.blnDelay = true;\n this.editGroupingDelay = true;\n const delayName = this.groupList[indexval].name.substr(0, this.groupList[indexval].name.indexOf('['));\n this.selectedItemValue = delayName;\n this.groupingDelayInput.date1 = delayName.split('-')[0];\n this.groupingDelayInput.date2 = delayName.split('-')[1];\n if (this.groupList[indexval].delay === 1 || this.groupList[indexval].delay === 2) {\n if (this.groupingDelayInput.date1 === 'DATEDUJOUR') {\n this.delayDate1Check1 = true;\n } else if (this.groupList[indexval].delay !== 0) {\n this.delayDate1Check2 = true;\n this.delayDateTime1 = this.groupingDelayInput.date1;\n }\n } else if (this.groupList[indexval].delay !== 3 || this.groupList[indexval].delay !== 4) {\n this.selectedDelayDate1 = this.groupingDelayInput.date1;\n }\n if (this.groupList[indexval].delay === 3 || this.groupList[indexval].delay === 4) {\n if (this.groupingDelayInput.date2 === 'DATEDUJOUR') {\n this.delayDate2Check1 = true;\n } else if (this.groupList[indexval].delay !== 0) {\n this.delayDate2Check2 = true;\n this.delayDateTime2 = this.groupingDelayInput.date2;\n }\n } else if (this.groupList[indexval].delay !== 1 || this.groupList[indexval].delay !== 2) {\n this.selectedDelayDate2 = this.groupingDelayInput.date2;\n }\n const delayValue = this.groupList[indexval].name.substr(this.groupList[indexval].name.indexOf('[') + 1, (this.groupList[indexval].name.length - this.groupList[indexval].name.indexOf('[') - 2));\n if (!isNaN(delayValue.split(' ')[1])) {\n this.groupingDelayInput.value = this.utilService.getTranslateName(`NEW_QUERY.DELAY_LIST.JOUR_SAVE`);\n this.groupingDelayInput.ddValue = delayValue.split(' ')[1];\n } else {\n this.groupingDelayInput.value = delayValue;\n this.groupingDelayInput.ddValue = '';\n }\n\n return;\n }\n this.selectedItemValue = undefined;\n this.selectedGroupItemValue = undefined;\n this.groupingEditValue = undefined\n if (this.groupList[indexval].name.indexOf('[') > -1) {\n this.selectedGroupItemValue = this.groupList[indexval].name.substr(0, this.groupList[indexval].name.indexOf('['));\n this.groupingEditValue = this.groupList[indexval].name.substr(this.groupList[indexval].name.indexOf('[') + 1, (this.groupList[indexval].name.length - this.groupList[indexval].name.indexOf('[') - 2));\n // this.selectedItemType = this.criteriaListOringinal.filter(a => a.longLabel.split(this.splitChar, 2)[this.getLangIndex(this.lang)] === this.selectedGroupItemValue)[0].typeOfField;\n this.selectedItemType = this.groupList[indexval].type;\n this.blnGroupingEdit = true;\n this.groupingEditIndex = indexval;\n this.blnMoveRight = false;\n this.displayGrouping();\n } else {\n this.selectedGroupItemValue = this.groupList[indexval].name;\n this.groupingEditValue = undefined;\n // this.selectedItemType = this.criteriaListOringinal.filter(a => a.longLabel.split(this.splitChar, 2)[this.getLangIndex(this.lang)] === this.selectedGroupItemValue)[0].typeOfField;\n this.selectedItemType = this.groupList[indexval].type;\n if (this.selectedItemType === 4 || this.selectedItemType === 5) {\n this.blnGroupingEdit = true;\n this.groupingEditIndex = indexval;\n }\n }\n }\n\n removeSelectedItem(index, id, key) {\n if (key === '') {\n var selectList = document.getElementById(id);\n var selectOptions = selectList.getElementsByTagName('mat-list-option');\n for (var i = 0; i < selectOptions.length; i++) {\n if (i !== index && selectOptions[i].getAttribute('aria-selected') === 'true') {\n let div = selectOptions[i].getAttribute('id');\n document.getElementById(div).click()\n } else if (i === index && selectOptions[i].getAttribute('aria-selected') === 'false') {\n let div = selectOptions[i].getAttribute('id');\n document.getElementById(div).click()\n }\n }\n } else {\n var selectList = document.getElementById(id);\n var selectOptions = selectList.getElementsByTagName('mat-list-option');\n for (var i = 0; i < selectOptions.length; i++) {\n let num = selectOptions[i].getAttribute('id');\n let selectedIndex = 'character_data_' + key;\n if (num !== selectedIndex && selectOptions[i].getAttribute('aria-selected') === 'true') {\n let div = selectOptions[i].getAttribute('id');\n document.getElementById(div).click()\n } else if (num === selectedIndex && selectOptions[i].getAttribute('aria-selected') === 'false') {\n let div = selectOptions[i].getAttribute('id');\n document.getElementById(div).click()\n return;\n }\n }\n }\n }\n\n clickList(item, index, key, num, idx) {\n // let idx = num.toString() + ind.toString() + indexval.toString();\n if (this.characterId !== undefined) {\n this.characterId.selectionChange.subscribe((s: MatSelectionListChange) => {\n if (this.selectedId === undefined) {\n if (s.source._value.length > 0) {\n this.characterId.deselectAll();\n s.option.selected = true;\n } else {\n this.characterId.deselectAll();\n }\n }\n });\n }\n item.isSelected = false;\n this.selectedItemType = undefined;\n if (key === '') {\n if (this.groupingSelectedList.indexOf(item) > -1) {\n this.groupingSelectedList.splice(item, 1);\n } else {\n this.groupingSelectedList.push(item);\n }\n } else {\n this.groupingSelectedList = [];\n this.groupingSelectedList.push(item);\n }\n if (this.populateSection) {\n this.selectedIndexForMove = '';\n this.selectedIndexForMove = num.toString() + idx.toString() + index.toString();\n }\n this.blnDelay = false;\n // this.selectedItemValue = item.name;\n this.selectedKey = key;\n\n if (key !== '') {\n this.groupingSelectedList = [];\n // //console.log('this.groupingSelectedList11111111111', this.selectedCharacterNumber, key);\n let selectedId = 'character_data_' + this.selectedIndexForMove;\n setTimeout(() => {\n var selectList = document.getElementById('characterList_' + this.selectedCharacterNumber);\n var selectOptions = selectList.getElementsByTagName('mat-list-option');\n for (let i = 0; i < selectOptions.length; i++) {\n let div = selectOptions[i].getAttribute('id');\n if (div === selectedId && selectOptions[i].getAttribute('aria-selected') === 'true') {\n this.groupingSelectedList.push(item);\n // //console.log('this.groupingSelectedList', this.groupingSelectedList, this.selectedCharacterNumber);\n break;\n }\n }\n }, 0);\n }\n\n\n // if (key !== '') {\n // //console.log(\"this.groupingSelectedList\", this.groupingSelectedList);\n // var selectList = document.getElementById('characterList');\n // var selectOptions = selectList.getElementsByTagName('mat-list-option');\n // for (var i = 0; i < selectOptions.length; i++) {\n\n\n // if (selectOptions[i].getAttribute('aria-selected') === 'true') {\n // let div = selectOptions[i].getAttribute('id');\n // document.getElementById(div).click()\n // // //console.log('selectOptions[i]', selectOptions.length, selectOptions[i], item)\n // break\n // }\n // }\n // }\n\n if (this.groupList.indexOf(item) > -1) {\n // this.selectedItemValue = item;\n // this.selectedGroupItemValue = item.name;\n this.selectedItemIndex = index;\n this.selectedGroupItemValue = undefined;\n this.selectedItemValue = undefined\n this.groupingEditValue = undefined\n this.blnMoveRight = false;\n }\n }\n\n moveRight() {\n if (!this.blnDelay) {\n setTimeout(() => {\n var objDiv = document.getElementById('scrollframe');\n if (objDiv) {\n objDiv.scrollTop = objDiv.scrollHeight;\n }\n }, 10);\n if (typeof (this.selectedItemValue) !== 'undefined') {\n const criteriaFilterVal = this.criteriaListOringinal.filter(a => a.longLabel.split(this.splitChar, 2).length > 1 ? a.longLabel.split(this.splitChar, 2)[this.getLangIndex(this.lang)] === this.selectedItemValue : a.longLabel === this.selectedItemValue)[0];\n this.GCOName = criteriaFilterVal.GCOName;\n\n if (this.populateSection) {\n if ((criteriaFilterVal.typeOfField === 0 || criteriaFilterVal.typeOfField === 6) && (this.GCOName === \"I\" || this.GCOName === \"A_Chassis\" || this.GCOName === \"A_Ident\")) {\n // //console.log(\"this.GCOName\", this.GCOName, criteriaFilterVal.typeOfField);\n this.toastyService.warning(this.utilService.getTranslateName(`ERROR.VIRTUAL_COLUMNS`));\n return;\n }\n }\n\n this.selectedItemType = criteriaFilterVal.typeOfField;\n this.selectedGroupItemValue = this.selectedItemValue;\n this.blnMoveRight = true;\n this.getCharacterData(criteriaFilterVal);\n if (this.selectedItemType !== 3 && this.selectedItemType !== 1) {\n if (this.groupSection) {\n if (this.selectedItemValue === \"Volume\" || this.selectedItemValue === 'Volume prevu') {\n this.groupList.push({ \"name\": this.selectedItemValue + '[Sum]', \"type\": this.selectedItemType, 'GCOName': criteriaFilterVal.GCOName, \"size\": criteriaFilterVal.size });\n this.requestService.addRequestReGroupment(this.groupList, this.reqActive)\n } else {\n this.groupList.push({ \"name\": this.selectedItemValue, \"type\": this.selectedItemType, 'GCOName': criteriaFilterVal.GCOName, \"size\": criteriaFilterVal.size });\n this.requestService.addRequestReGroupment(this.groupList, this.reqActive)\n }\n } else if (this.vueSection) {\n this.vueList.push({ \"name\": this.selectedItemValue, \"type\": this.selectedItemType, 'GCOName': criteriaFilterVal.GCOName, \"size\": criteriaFilterVal.size, \"visible\": true });\n this.requestService.addRequestVue(this.vueList, this.reqActive)\n }\n // this.selectedItemValue = undefined;\n // this.selectedItemType = undefined;\n }\n this.displayGrouping();\n }\n this.groupingEditValue = undefined\n }\n }\n\n getCharacterData(criteriaFilterVal) {\n this.selectedCharacterList = {\n 'longLabel': criteriaFilterVal.longLabel,\n 'size': criteriaFilterVal.size,\n 'selectedTable': this.selectedTable,\n 'ipn': this.ipn,\n 'region': this.region,\n 'selectedGroupItemValue': this.selectedGroupItemValue\n };\n }\n clickCriteriaList(item, index) {\n this.selectedItemValue = item; this.selectedItemIndex = index; this.selectedItemType = undefined;\n this.selectedItemType4Color = this.criteriaListOringinal.filter(a => a.longLabel.split(this.splitChar, 2).length > 1 ? a.longLabel.split(this.splitChar, 2)[this.getLangIndex(this.lang)] === this.selectedItemValue : a.longLabel === this.selectedItemValue)[0].typeOfField;\n const criteriaFilterVal = this.criteriaListOringinal.filter(a => a.longLabel.split(this.splitChar, 2).length > 1 ? a.longLabel.split(this.splitChar, 2)[this.getLangIndex(this.lang)] === item : a.longLabel === item)[0];\n let selectedField = criteriaFilterVal.longLabel.split('§');\n selectedField = selectedField[this.getLangIndex(this.lang)] !== undefined && selectedField[this.getLangIndex(this.lang)] !== null ? selectedField[this.getLangIndex(this.lang)] : selectedField[0];\n if (selectedField.charAt(0) !== '_') {\n selectedField = selectedField.replace(' ', '%20');\n this.navigateUrl = 'https://grouperenault.sharepoint.com/sites/Doc_Pilotage/en-US/Pages/Aide%20en%20ligne/' + this.selectedTable + '/' + selectedField + '.aspx';\n } else {\n this.navigateUrl = '';\n }\n }\n\n navigateField() {\n if (this.navigateUrl !== '' && this.navigateUrl !== undefined) {\n window.open(this.navigateUrl, '_blank');\n }\n }\n\n moveLeft(event) {\n event.stopPropagation();\n if (!this.blnDelay) {\n if (this.groupingSelectedList.length > 0) {\n if (this.populateSection) {\n let selectedId = 'character_data_' + this.selectedIndexForMove;\n var selectList = document.getElementById('characterList_' + this.selectedCharacterNumber);\n var selectOptions = selectList.getElementsByTagName('mat-list-option');\n for (let i = 0; i < selectOptions.length; i++) {\n if (selectOptions[i].getAttribute('aria-selected') === 'true') {\n let div = selectOptions[i].getAttribute('id');\n if (div === selectedId) {\n document.getElementById(selectedId).click();\n }\n }\n }\n }\n for (const item of this.groupingSelectedList) {\n if (this.vueSection) {\n if (this.vueList.indexOf(item) > -1) {\n this.vueList.splice(this.vueList.indexOf(item), 1);\n this.requestService.addRequestVue(this.vueList, this.reqActive);\n }\n } else if (this.groupSection) {\n if (this.groupList.indexOf(item) > -1) {\n this.groupList.splice(this.groupList.indexOf(item), 1);\n this.requestService.addRequestReGroupment(this.groupList, this.reqActive);\n }\n } else {\n if (!item.isSaufGroup) {\n if (item.type === 1 || item.type === 2 || item.type === 0 || item.type === 6) {\n if (this.characterList.characterListType1[this.selectedKey].length > 1) {\n let arr = this.characterList.characterListType1[this.selectedKey];\n for (let i = 0; i < arr.length; i++) {\n if (arr.includes(item)) {\n let itemiInd = arr.indexOf(item);\n if (itemiInd === 0) {\n arr[1].conditionType = '2';\n break;\n }\n }\n }\n this.characterList.characterListType1[this.selectedKey].splice(this.characterList.characterListType1[this.selectedKey].indexOf(item), 1);\n } else {\n this.characterList.characterListType1 = this.joinArray(1, this.selectedKey, '', 'remove');\n }\n !this.characterList.characterListType1.hasOwnProperty('group0') ? this.characterList.characterListType1.group0 = [] : this.characterList.characterListType1;\n this.requestService.addRequestCharacter(this.characterList.characterListType1, this.reqActive, 1);\n } else if (item.type === 3 || item.type === 4 || item.type === 5) {\n if (this.characterList.characterListType2[this.selectedKey].length > 1) {\n let arr = this.characterList.characterListType2[this.selectedKey];\n for (let i = 0; i < arr.length; i++) {\n if (arr.includes(item)) {\n let itemiInd = arr.indexOf(item);\n if (itemiInd === 0) {\n arr[1].conditionType = '2';\n break;\n }\n }\n }\n this.characterList.characterListType2[this.selectedKey].splice(this.characterList.characterListType2[this.selectedKey].indexOf(item), 1);\n } else {\n this.characterList.characterListType2 = this.joinArray(2, this.selectedKey, '', 'remove');\n }\n !this.characterList.characterListType2.hasOwnProperty('group0') ? this.characterList.characterListType2.group0 = [] : this.characterList.characterListType2;\n this.requestService.addRequestCharacter(this.characterList['characterListType2'], this.reqActive, 2);\n } else {\n if (this.characterList.characterListType3[this.selectedKey].length > 1) {\n let arr = this.characterList.characterListType3[this.selectedKey];\n for (let i = 0; i < arr.length; i++) {\n if (arr.includes(item)) {\n let itemiInd = arr.indexOf(item);\n if (itemiInd === 0) {\n arr[1].conditionType = '2';\n break;\n }\n }\n }\n this.characterList.characterListType3[this.selectedKey].splice(this.characterList.characterListType3[this.selectedKey].indexOf(item), 1);\n } else {\n this.characterList.characterListType3 = this.joinArray(3, this.selectedKey, '', 'remove');\n }\n !this.characterList.characterListType3.hasOwnProperty('group0') ? this.characterList.characterListType3.group0 = [] : this.characterList.characterListType3;\n this.requestService.addRequestCharacter(this.characterList.characterListType3, this.reqActive, 3);\n }\n } else {\n this.toastyService.warning(\"This item has been grouped, so user can't remove\");\n }\n }\n }\n this.selectedGroupItemValue = undefined;\n this.groupingEditValue = undefined;\n this.selectedGroupItemIndex = undefined;\n this.blnMoveRight = false;\n this.selectedItemType = undefined;\n this.vueEditValue = undefined;\n this.blnDelay = false;\n this.groupingSelectedList = [];\n }\n }\n }\n\n onGroupDateCancel(event) {\n this.selectedItemType = undefined;\n this.selectedItemValue = undefined;\n this.blnGroupingEdit = false;\n this.selectedGroupItemValue = undefined;\n this.groupingEditValue = undefined\n this.blnMoveRight = false;\n this.selectedGroupItemIndex = undefined;\n this.vueEditValue = undefined\n this.blnVueEdit = false;\n }\n\n createNewGroup(num) {\n let indexName, lastIndex;\n if (Object.keys(this.characterList['characterListType' + num]).length > 1) {\n lastIndex = Object.keys(this.characterList['characterListType' + num]).length - 1;\n } else {\n lastIndex = 'group0'.match(/\\d/g)[0];\n lastIndex = parseInt(lastIndex);\n }\n let incrementNumber = lastIndex + 1;\n if (this.characterList['characterListType' + num]['group0'].length > 0) {\n indexName = 'group' + incrementNumber;\n } else {\n indexName = 'group0';\n }\n return indexName;\n }\n\n onGroupDateOk(event, section) {\n if (event.value !== '') {\n const criteriaFilterVal = this.criteriaListOringinal.filter(a => a.longLabel.split(this.splitChar, 2).length > 1 ? a.longLabel.split(this.splitChar, 2)[this.getLangIndex(this.lang)] === this.selectedGroupItemValue : a.longLabel === this.selectedGroupItemValue)[0];\n if (section === 'regroupment') {\n this.displayGroupingForm = event.displayGroupingForm;\n if (event.value !== '') {\n if (!this.blnMoveRight) {\n if (typeof (event.value) !== \"undefined\") {\n this.groupList[this.groupingEditIndex].name = this.selectedGroupItemValue + `[${event.value}]`;\n } else {\n this.groupList[this.groupingEditIndex].name = this.selectedGroupItemValue + `[${event}]`;\n }\n this.requestService.addRequestReGroupment(this.groupList, this.reqActive)\n } else {\n if (typeof (event.value) !== \"undefined\") {\n this.groupList.push({ \"name\": this.selectedGroupItemValue + `[${event.value}]`, \"type\": this.selectedItemType, 'GCOName': criteriaFilterVal.GCOName, 'size': criteriaFilterVal.size });\n } else {\n this.groupList.push({ \"name\": this.selectedGroupItemValue + `[${event}]`, \"type\": this.selectedItemType, 'GCOName': criteriaFilterVal.GCOName, 'size': criteriaFilterVal.size });\n }\n this.requestService.addRequestReGroupment(this.groupList, this.reqActive)\n }\n }\n } else if (section === 'vue') {\n if (!this.blnMoveRight) {\n if (typeof (event.value) !== \"undefined\") {\n this.vueList[this.vueEditIndex].name = this.selectedGroupItemValue + `[${event.value}]`;\n } else {\n this.vueList[this.vueEditIndex].name = this.selectedGroupItemValue + `[${event}]`;\n }\n this.requestService.addRequestVue(this.vueList, this.reqActive)\n } else {\n if (typeof (event.value) !== \"undefined\") {\n this.vueList.push({ \"name\": this.selectedGroupItemValue + `[${event.value}]`, \"type\": this.selectedItemType, 'GCOName': criteriaFilterVal.GCOName, 'size': criteriaFilterVal.size, \"visible\": true });\n } else {\n this.vueList.push({ \"name\": this.selectedGroupItemValue + `[${event}]`, \"type\": this.selectedItemType, 'GCOName': criteriaFilterVal.GCOName, 'size': criteriaFilterVal.size, \"visible\": true });\n }\n this.requestService.addRequestVue(this.vueList, this.reqActive)\n }\n } else if (section === 'population') {\n let value, format;\n this.displayGroupingForm = event.displayGroupingForm;\n if (event.value !== '') {\n if (this.selectedItemType === 1 || this.selectedItemType === 2 || this.selectedItemType === 0 || this.selectedItemType === 6) {\n if (this.selectedItemType === 2 || this.selectedItemType === 0 || this.selectedItemType === 6) {\n value = !event.hasOwnProperty('format') ? event.value.join('/') : event.format + ' ' + event.value;\n // value = ' ' + value;\n value = value;\n format = event.formatType;\n } else {\n value = '[' + event.value.join('] ou [') + ']';\n format = '';\n }\n let lastIndex = this.createNewGroup(1);\n console.log(\"sri\", this.characterList.characterListType1);\n if (!this.blnMoveRight) {\n console.log(value);\n this.characterList.characterListType1[this.selectedKey][this.vueEditIndex].value = value;\n this.characterList.characterListType1[this.selectedKey][this.vueEditIndex].format = format;\n this.requestService.addRequestCharacter(this.characterList.characterListType1, this.reqActive, 1)\n } else {\n this.characterList.characterListType1[lastIndex] = new Array();\n console.log(this.characterList.characterListType1[lastIndex]);\n this.characterList.characterListType1[lastIndex].push({ \"name\": this.selectedGroupItemValue, 'value': value, format: format, conditionType: '2', group: false, \"type\": this.selectedItemType, 'GCOName': criteriaFilterVal.GCOName, 'size': criteriaFilterVal.size });\n console.log(this.characterList.characterListType1[lastIndex]);\n this.requestService.addRequestCharacter(this.characterList.characterListType1, this.reqActive, 1)\n }\n\n } else if (this.selectedItemType === 3) {\n let startDateVal: string;\n let endDateVal: string;\n if (event.date1) {\n startDateVal = `>=${event.date1}`;\n if (event.date2) {\n startDateVal = `${startDateVal} et `;\n }\n }\n if (event.date2) {\n endDateVal = `<=${event.date2}`;\n }\n let lastIndex = this.createNewGroup(2);\n let value = `${startDateVal ? startDateVal : ''}${endDateVal ? endDateVal : ''}`;\n if (!this.blnMoveRight) {\n // this.characterList.characterListType2[this.selectedKey][this.vueEditIndex].conditionType = '2';\n // this.characterList.characterListType2[this.selectedKey][this.vueEditIndex].group = false;\n this.characterList.characterListType2[this.selectedKey][this.vueEditIndex].name = `${this.selectedGroupItemValue.substr(0, this.selectedGroupItemValue.indexOf('[') - 1)} [${event.value}]`;\n if (event.date1 || event.date2) {\n this.characterList.characterListType2[this.selectedKey][this.vueEditIndex].value = value;\n } else {\n this.characterList.characterListType2[this.selectedKey][this.vueEditIndex].value = `=${event.conneValue}`;\n }\n this.requestService.addRequestCharacter(this.characterList.characterListType2, this.reqActive, 2)\n } else {\n this.characterList.characterListType2[lastIndex] = new Array();\n if (event.date1 || event.date2) {\n this.characterList.characterListType2[lastIndex].push({ \"name\": `${this.selectedGroupItemValue} [${event.value}]`, 'value': value, conditionType: '2', group: false, \"type\": this.selectedItemType, 'GCOName': criteriaFilterVal.GCOName, 'size': criteriaFilterVal.size });\n this.requestService.addRequestCharacter(this.characterList.characterListType2, this.reqActive, 2)\n } else {\n this.characterList.characterListType2[lastIndex].push({ \"name\": `${this.selectedGroupItemValue} [${event.value}]`, 'value': `=${event.conneValue}`, conditionType: '2', group: false, \"type\": this.selectedItemType, 'GCOName': criteriaFilterVal.GCOName, 'size': criteriaFilterVal.size });\n this.requestService.addRequestCharacter(this.characterList.characterListType2, this.reqActive, 2)\n }\n }\n } else if (this.selectedItemType === 4 || this.selectedItemType === 5) {\n let lastIndex = this.createNewGroup(2);\n this.characterList.characterListType2[lastIndex] = new Array();\n let value = event.format ? ' ' + event.format + event.value : '= ' + event.value;\n if (!this.blnMoveRight) {\n // this.characterList.characterListType2[this.selectedKey][this.vueEditIndex].conditionType = '2';\n // this.characterList.characterListType2[this.selectedKey][this.vueEditIndex].group = false;\n this.characterList.characterListType2[this.selectedKey][this.vueEditIndex].value = value;\n this.characterList.characterListType2[this.selectedKey][this.vueEditIndex].format = event.format;\n this.requestService.addRequestCharacter(this.characterList.characterListType2, this.reqActive, 2)\n } else {\n this.characterList.characterListType2[lastIndex] = new Array();\n this.characterList.characterListType2[lastIndex].push({ \"name\": this.selectedGroupItemValue, 'value': value, conditionType: '2', 'format': event.format, group: false, \"type\": this.selectedItemType, 'GCOName': criteriaFilterVal.GCOName, 'size': criteriaFilterVal.size });\n this.requestService.addRequestCharacter(this.characterList.characterListType2, this.reqActive, 2)\n }\n } else {\n let lastIndex = this.createNewGroup(3);\n this.characterList.characterListType3[lastIndex] = new Array();\n let value = !event.hasOwnProperty('format') ? event.join('/') : event.format + ' ' + event.value;\n if (!this.blnMoveRight) {\n // this.characterList.characterListType3[this.selectedKey][this.vueEditIndex].conditionType = '2';\n // this.characterList.characterListType3[this.selectedKey][this.vueEditIndex].group = false;\n this.characterList.characterListType3[this.selectedKey][this.vueEditIndex].value = value;\n this.requestService.addRequestCharacter(this.characterList.characterListType3, this.reqActive, 3)\n } else {\n this.characterList.characterListType2[lastIndex] = new Array();\n this.characterList.characterListType3[lastIndex].push({ \"name\": this.selectedGroupItemValue, 'value': value, conditionType: '2', group: false, \"type\": this.selectedItemType, 'GCOName': criteriaFilterVal.GCOName, 'size': criteriaFilterVal.size });\n this.requestService.addRequestCharacter(this.characterList.characterListType3, this.reqActive, 3)\n }\n }\n }\n }\n }\n this.selectedItemType = undefined;\n this.selectedItemValue = undefined;\n this.selectedGroupItemValue = undefined;\n this.blnMoveRight = false;\n this.groupingEditValue = undefined;\n this.vueEditValue = undefined;\n this.selectedGroupItemIndex = undefined;\n }\n\n resetAllValues() {\n this.blnMoveRight = false;\n this.searchText = undefined;\n this.selPopulateDept = this.utilService.getTranslateName(`COMMON.ALL`);\n this.selPopulateEntity = undefined;\n this.selPopulatePays = undefined;\n this.selPopulateDate = undefined;\n this.selPopulateDefination = undefined;\n this.selectedItemType = undefined;\n this.selectedItemValue = undefined;\n this.groupList = [];\n this.populationList = [];\n this.blnGroupingEdit = false;\n this.selectedGroupItemValue = undefined;\n this.groupingEditValue = undefined\n this.selectedGroupItemIndex = undefined;\n this.selectedVueIPNDetail = undefined;\n this.isExecute = false;\n this.toggle = false;\n }\n\n log(event) {\n this.arrowUpDisplay = event;\n }\n\n ngOnDestroy() {\n }\n\n wait(ms) {\n var start = new Date().getTime();\n var end = start;\n while (end < start + ms) {\n end = new Date().getTime();\n }\n }\n\n ngOnInit() {\n this.requestStoresData = undefined;\n this.requestStoresData = this.requestService.getAllRequestData();\n if (this.requestStoresData.length === 0) {\n this.router.navigateByUrl('/home');\n } else {\n this.onLoad();\n }\n this.utilService.$showQuickLink$.next(true);\n }\n\n onLoad() {\n if ((this.requestStoresData.length < 4)) {\n if (this.requestStoresData[this.requestStoresData.length - 1] != null) {\n this.reqActive = this.requestStoresData.length - 1;\n this.selectedTable = this.requestStoresData[this.requestStoresData.length - 1].table;\n this.region = this.requestStoresData[this.requestStoresData.length - 1].region;\n this.getSelectedStoreData(this.requestStoresData[this.requestStoresData.length - 1]);\n }\n }\n }\n\n characterListTypeStatus(num) {\n if (this.characterList && this.characterList['characterListType' + num]) {\n for (let key in this.characterList['characterListType' + num]) {\n if (this.characterList['characterListType' + num][key].length > 0) {\n return true;\n }\n }\n }\n return false;\n }\n\n isEmptyCharacter() {\n // if (this.characterList['characterListType1'].hasOwnProperty('group0') && \n // this.characterList['characterListType2'].hasOwnProperty('group0') && \n // this.characterList['characterListType3'].hasOwnProperty('group0') && \n // this.characterList['characterListType1'].group0.length ===0 && this.characterList['characterListType2'].group0.length ===0\n // && this.characterList['characterListType3'].group0.length ===0) {\n // return true;\n // } else {\n // return false;\n // }\n\n if (typeof (this.characterList['characterListType1'].group0) !== 'undefined') {\n if (this.characterList['characterListType1'].group0.length === 0 && this.characterList['characterListType2'].group0.length === 0\n && this.characterList['characterListType3'].group0.length === 0) {\n return true;\n } else {\n return false;\n }\n } else {\n return false;\n }\n\n }\n\n characterListTypeSeprateStatus(num) {\n if (num < 3) {\n if (this.characterList['characterListType1'].hasOwnProperty('group0') &&\n this.characterList['characterListType2'].hasOwnProperty('group0') &&\n this.characterList['characterListType3'].hasOwnProperty('group0')) {\n if (num === 1) {\n if (this.characterList['characterListType2']['group0'].length > 0 || this.characterList['characterListType3']['group0'].length > 0) {\n return true;\n }\n } else {\n if (this.characterList['characterListType' + (num + 1)]['group0'].length > 0) {\n return true;\n }\n }\n }\n }\n return false;\n }\n\n enableJoinCondition(array, key, previousNumber) {\n if (previousNumber < 0) {\n previousNumber = 0;\n }\n if ((array['group' + previousNumber].length === 1 && array['group' + previousNumber][0].sauf) ||\n (!array[key][0].hasOwnProperty('isSaufGroup') && array['group' + previousNumber][0].hasOwnProperty('isSaufGroup'))) {\n return false;\n } else {\n return true;\n }\n }\n\n enableCondition(item, event, type, condition, index, key) {\n let currentValueNumber;\n event.stopPropagation();\n // event.preventDefault();\n let currentArray = this.characterList['characterListType' + type];\n let previousIndex = index - 1;\n let currentNumber = parseInt(key.match(/\\d/g));\n let previousNumber = currentNumber - 1;\n if (previousIndex < 0) {\n previousIndex = 0;\n }\n if (previousNumber < 0) {\n previousNumber = 0;\n }\n if (currentNumber > Object.keys(currentArray).length - 1) {\n currentNumber = Object.keys(currentArray).length - 1;\n }\n for (let i = currentNumber; i <= Object.keys(currentArray).length - 1; i++) {\n if (currentArray['group' + i].some(el => el.sauf)) {\n currentValueNumber = i;\n break;\n }\n }\n let previousIndexValue = currentArray['group' + previousNumber];\n let currentIndexValue = currentArray['group' + currentNumber];\n let conditionForArrayLengthOne = previousIndexValue.length === 1 && previousIndexValue[0].sauf && currentIndexValue.length === 1 && !currentIndexValue[0].sauf;\n let currentGroupLength = currentNumber === 0 && currentArray[key][index].sauf && !currentArray[key][previousIndex].sauf;\n let conditionForPreviousArray = previousIndexValue.length > 1 && previousIndexValue.some(el => el.conditionType === '3');\n let conditionForCurrentArray = currentIndexValue.some(el => el.group) && currentNumber <= currentValueNumber && index === 0;\n let conditionForCurrentArrayWithLengthTwo = currentIndexValue.length === 2 && !currentIndexValue[0].sauf && currentIndexValue[1] && currentIndexValue[1]['sauf'] && index !== 0;\n if (condition === 'and') {\n item['conditionType'] = '2';\n if (currentArray[key][index].sauf && currentArray[key][previousIndex].sauf) {\n item['conditionType'] = '2';\n } else {\n this.characterList['characterListType' + type] = this.splitArray(type, index, key, 0);\n }\n } else if (condition === 'or') {\n if (conditionForArrayLengthOne || currentGroupLength || (conditionForCurrentArray && conditionForPreviousArray) || conditionForCurrentArrayWithLengthTwo) {\n if (previousNumber !== 0 && currentNumber !== 0) {\n //console.log('locked');\n }\n } else if (currentArray['group' + currentNumber].length !== 1 && index !== 0 && currentArray['group' + currentNumber][index].sauf &&\n currentArray['group' + currentNumber][previousIndex].sauf) {\n if (item.conditionType === '1') {\n item['conditionType'] = '2';\n } else {\n item['conditionType'] = '1';\n }\n } else {\n if (item.conditionType === '1') {\n item['conditionType'] = '2';\n } else {\n item['conditionType'] = '1';\n }\n this.characterList['characterListType' + type] = this.joinArray(type, key, index, 'add');\n }\n }\n this.requestService.addRequestCharacter(this.characterList['characterListType' + type], this.reqActive, type)\n }\n\n joinArray(num, key, index, type) {\n let currentArray = this.characterList['characterListType' + num];\n let clonedArray = { ...currentArray };\n let currentNumber, previousValue, previousArray;\n currentNumber = parseInt(key.match(/\\d/g));\n previousValue = currentNumber - 1;\n previousArray = currentArray['group' + previousValue];\n if (previousValue < 0) {\n previousValue = currentNumber;\n }\n if (index !== '') {\n let nextNumber = index + 1;\n if (nextNumber > currentArray[key].length - 1) {\n nextNumber = index;\n }\n if (currentArray[key][nextNumber].sauf) {\n currentArray[key][nextNumber].conditionType = '3';\n }\n }\n if (type !== 'remove') {\n if (currentArray['group' + previousValue].filter(el => el.sauf && el.conditionType === '3').length > 0) {\n if (currentArray['group' + currentNumber][0].sauf && currentArray['group' + currentNumber].length === 1) {\n currentArray['group' + currentNumber][0].conditionType = '2';\n currentArray[key].forEach(item => {\n currentArray['group' + previousValue].push(item);\n });\n currentArray['group' + previousValue].forEach(item => {\n item.group = true;\n })\n } else {\n currentArray[key].forEach(item => {\n item.conditionType = '1';\n item.isSaufGroup = !item.isSaufGroup;\n let index = currentArray['group' + previousValue].findIndex(el => el.conditionType === '3');\n item.group = true;\n currentArray['group' + previousValue].splice(index, 0, item);\n });\n }\n currentArray['group' + previousValue].forEach(element => {\n element.group = true;\n });\n } else {\n currentArray[key].forEach(item => {\n currentArray['group' + previousValue].push(item);\n });\n if (currentArray['group' + previousValue].some(el => el.sauf)) {\n currentArray['group' + previousValue].forEach(item => {\n item.group = true;\n })\n }\n }\n // }\n Object.entries(currentArray).forEach(([keyVal, value], objIndex) => {\n if (currentNumber === objIndex) {\n for (let i = objIndex; i < Object.keys(clonedArray).length - 1; i++) {\n currentArray['group' + i] = currentArray['group' + (i + 1)];\n }\n }\n });\n let lastIndex = Object.keys(clonedArray).length - 1;\n delete currentArray['group' + lastIndex];\n this.characterList['characterListType' + type] = this.enableSaufCheckbox(this.characterList['characterListType' + num], 'add');\n } else {\n Object.entries(currentArray).forEach(([keyVal, value], objIndex) => {\n if (currentNumber === objIndex) {\n for (let i = objIndex; i < Object.keys(clonedArray).length - 1; i++) {\n currentArray['group' + i] = currentArray['group' + (i + 1)];\n }\n }\n });\n let lastIndex = Object.keys(clonedArray).length - 1;\n delete currentArray['group' + lastIndex];\n }\n return currentArray;\n }\n\n getArray(type) {\n return Object.keys(type);\n }\n\n splitArray(type, index, key, code) {\n let currentArray = this.characterList['characterListType' + type];\n let clonedArray = { ...currentArray };\n let currentNumber = parseInt(key.match(/\\d/g));\n let incrementNumber = currentNumber + 1;\n Object.entries(currentArray).forEach(([keyVal, value], objIndex) => {\n if (currentArray.hasOwnProperty('group' + incrementNumber)) {\n if (incrementNumber === objIndex) {\n for (let i = Object.keys(clonedArray).length - 1; i >= objIndex; i--) {\n currentArray['group' + (i + 1)] = currentArray['group' + i];\n }\n if ((index + code) < currentArray['group' + currentNumber].length) {\n currentArray['group' + objIndex] = currentArray['group' + currentNumber].splice(index + code);\n } else {\n currentArray['group' + objIndex] = currentArray['group' + currentNumber].splice(index - code);\n }\n currentArray['group' + objIndex][0]['conditionType'] = '2';\n }\n } else {\n if ((index + code) < currentArray['group' + currentNumber].length) {\n currentArray['group' + incrementNumber] = currentArray['group' + currentNumber].splice(index + code);\n } else {\n currentArray['group' + incrementNumber] = currentArray['group' + currentNumber].splice(index - code);\n }\n currentArray['group' + incrementNumber][0]['conditionType'] = '2';\n }\n });\n // this.characterList['characterListType' + type] = this.enableSaufCheckbox(this.characterList['characterListType' + type], 'add');\n return this.characterList['characterListType' + type];\n }\n\n getBorderClass(type, key, index) {\n let currentArray = this.characterList['characterListType' + type];\n let currentNumber = parseInt(key.match(/\\d/g));\n let previousNumber = currentNumber - 1;\n let previousIndex = index - 1;\n if (previousNumber < 0) {\n previousNumber = 0;\n }\n if (previousIndex < 0) {\n previousIndex = 0;\n }\n if (index === 0) {\n if (currentArray['group' + currentNumber][0].group && currentArray['group' + previousNumber][0].group && currentArray['group' + previousNumber].filter(el => el.sauf).length === 0 && key !== 'group0') {\n return true;\n } else {\n return false;\n }\n } else if (currentArray[key][index].group && currentArray[key][previousIndex].group) {\n return true;\n } else {\n return false;\n }\n }\n\n getBorderBottomClass(type, key, index) {\n let currentArray = this.characterList['characterListType' + type];\n let currentNumber = parseInt(key.match(/\\d/g));\n let nextNumber = currentNumber + 1;\n let nextIndex = index + 1;\n if (nextNumber > Object.keys(currentArray).length - 1) {\n nextNumber = Object.keys(currentArray).length - 1;\n }\n if (nextIndex > currentArray[key].length - 1) {\n nextIndex = currentArray[key].length - 1;\n }\n if (index === currentArray[key].length - 1) {\n if (currentArray['group' + currentNumber][0].group && currentArray['group' + nextNumber][0].group &&\n currentArray['group' + currentNumber].filter(el => el.sauf).length === 0\n && key !== Object.keys(currentArray)[Object.keys(currentArray).length - 1]) {\n return true;\n } else {\n return false;\n }\n } else if ((currentArray[key][index].group && currentArray[key][nextIndex].group)) {\n return true;\n } else {\n return false;\n }\n }\n\n enableToggle(item, index, type, key, idx) {\n // event.stopImmediatePropagation();\n // event.preventDefault();\n item['sauf'] = !item['sauf'];\n let currentArray = this.characterList['characterListType' + type][key];\n let clonedArray = { ...this.characterList['characterListType' + type] };\n let arrObj = this.characterList['characterListType' + type];\n let currentNumber = parseInt(key.match(/\\d/g));\n let incrementNumber = currentNumber + 1;\n let previousNumber = currentNumber - 1;\n if (previousNumber < 0) {\n previousNumber = currentNumber;\n }\n let previousIndex = index - 1;\n let nextIndex = index + 1;\n if (previousIndex < 0) {\n previousIndex = index;\n }\n if (incrementNumber > Object.keys(arrObj).length) {\n incrementNumber = Object.keys(arrObj).length;\n }\n if (nextIndex > currentArray.length - 1) {\n nextIndex = currentArray.length - 1;\n }\n if (item['sauf']) {\n if (key === 'group0' && index === 0) {\n item.group = false;\n if (currentArray.length !== 1) {\n if (Object.keys(clonedArray).length === 1 && !currentArray[nextIndex].sauf) {\n arrObj['group' + incrementNumber] = this.characterList['characterListType' + type]['group' + currentNumber].splice(index + 1, currentArray.length - 1);\n } else if (currentArray[nextIndex].sauf && currentArray[index].sauf) {\n currentArray[index].conditionType = '2';\n } else {\n for (let i = Object.keys(clonedArray).length - 1; i >= incrementNumber; i--) {\n this.characterList['characterListType' + type]['group' + (i + 1)] = this.characterList['characterListType' + type]['group' + i];\n }\n arrObj['group' + incrementNumber] = this.characterList['characterListType' + type]['group' + currentNumber].splice(index + 1, 1);\n }\n arrObj['group' + incrementNumber][0].conditionType = '2';\n } else if (currentArray.length === 1 && item['sauf']) {\n item.conditionType = '2';\n } else {\n if (currentArray.filter(el => !el.sauf).length === 0) {\n currentArray.forEach(el => {\n el.group = false;\n el.conditionType = '1';\n })\n }\n }\n // clonedArray['group' + incrementNumber][0].conditionType = '2';\n // if (currentArray)\n // arrObj = this.splitArray(type, index, key, 1);\n } else {\n if (currentArray[previousIndex]['sauf'] && previousIndex !== 0) {\n item.conditionType = '2';\n } else if (clonedArray['group' + previousNumber].some(el => el.sauf) && currentArray.length === 1) {\n this.characterList['characterListType' + type] = this.joinArray(type, key, index, 'add');\n } else {\n if (item['conditionType'] !== '1') {\n if (currentArray.length === 1) {\n item['conditionType'] = '3';\n arrObj = this.joinArray(type, key, index, 'add');\n if (item.sauf && currentArray[nextIndex].sauf && currentArray.length > 1) {\n currentArray[nextIndex].conditionType = '2';\n }\n } else if (currentArray.length >= 2) {\n currentArray[nextIndex].conditionType = '2';\n let splicedData = currentArray.splice(index, 1);\n if (arrObj['group' + previousNumber][arrObj['group' + previousNumber].length - 1].sauf) {\n splicedData[0].conditionType = '2';\n } else {\n splicedData[0].conditionType = '3';\n }\n splicedData.forEach(item => {\n arrObj['group' + previousNumber].push(item);\n })\n if (currentArray.filter(el => !el.sauf).length === 0) {\n currentArray.forEach(el => {\n el.group = false;\n el.conditionType = '1';\n })\n currentArray[0].conditionType = '2';\n }\n arrObj['group' + previousNumber].forEach(el => el.group = true);\n }\n } else {\n if (currentArray.length === 2) {\n item['conditionType'] = '3';\n }\n if (currentArray.length > 2) {\n if (currentArray[index].sauf && currentArray[nextIndex].sauf) {\n if (index !== nextIndex) {\n currentArray[index].conditionType = '3';\n currentArray[nextIndex].conditionType = '2';\n } else {\n currentArray[index].conditionType = '3';\n }\n } else {\n arrObj = this.splitArray(type, index, key, 1);\n if (arrObj[key][index].sauf) {\n arrObj[key][index].conditionType = '3';\n }\n }\n }\n currentArray.forEach(el => {\n el.group = true;\n })\n }\n }\n }\n } else {\n if (key === 'group0' && index === 0) {\n item['conditionType'] = '2';\n if (clonedArray['group' + incrementNumber][0].sauf) {\n clonedArray['group' + incrementNumber][0].conditionType = '3';\n }\n } else {\n if (currentArray[index].sauf && currentArray[(index - 1) > 0 ? index - 1 : 0].sauf) {\n if (item.conditionType === '2') {\n item.conditionType = '1';\n } else {\n item['conditionType'] = '2';\n arrObj = this.splitArray(type, index, key, 0);\n if (arrObj['group' + incrementNumber][0].sauf) {\n arrObj['group' + incrementNumber][0].conditionType = '3';\n } else if (arrObj['group' + incrementNumber].length > 1 && arrObj['group' + incrementNumber][1].sauf && !arrObj['group' + incrementNumber][0].sauf) {\n arrObj['group' + incrementNumber][1].conditionType = '3';\n }\n if (currentArray.filter(el => el.sauf).length === 0) {\n currentArray.forEach(el => {\n el.group = false;\n })\n }\n if (arrObj['group' + incrementNumber].filter(el => el.sauf).length === 0) {\n arrObj['group' + incrementNumber].forEach(element => {\n element.group = false;\n });\n }\n }\n if (arrObj['group' + incrementNumber].filter(el => el.sauf).length === 0) {\n arrObj['group' + incrementNumber].forEach(element => {\n element.group = false;\n });\n }\n } else {\n if (currentArray[previousIndex].sauf || currentArray[nextIndex].sauf) {\n if (currentArray[previousIndex].sauf) {\n currentArray[nextIndex].conditionType = '2';\n } else {\n currentArray[nextIndex].conditionType = '3';\n }\n let splicedData = currentArray.splice(index, 1);\n splicedData[0].conditionType = '2';\n let clonedData = { ...this.characterList['characterListType' + type] };\n for (let i = Object.keys(clonedData).length - 1; i >= 0; i--) {\n if (clonedData['group' + i].some(el => el.sauf)) {\n key = i;\n break;\n }\n }\n for (let i = Object.keys(clonedData).length - 1; i >= incrementNumber; i--) {\n arrObj['group' + (i + 1)] = arrObj['group' + (i)];\n }\n arrObj['group' + incrementNumber] = splicedData;\n if (incrementNumber > key) {\n arrObj['group' + incrementNumber].forEach(data => {\n data.group = false;\n delete data.isSaufGroup;\n })\n }\n } else if (currentArray.length === 1) {\n item.conditionType = '2';\n } else {\n arrObj = this.splitArray(type, index, key, 0);\n }\n }\n }\n }\n let ind_val = type.toString() + idx.toString() + index.toString();\n this.clickSelectedToggle(ind_val);\n this.characterList['characterListType' + type] = this.enableSaufCheckbox(this.characterList['characterListType' + type], 'add');\n this.requestService.addRequestCharacter(this.characterList['characterListType' + type], this.reqActive, type);\n }\n\n clickSelectedToggle(ind_val) {\n var selectList = document.getElementById('characterListId');\n var selectOptions = selectList.getElementsByTagName('mat-list-option');\n for (let i = 0; i < selectOptions.length; i++) {\n let num = selectOptions[i].getAttribute('id');\n let selectedIndex = 'character_data_' + ind_val;\n if (num === selectedIndex && selectOptions[i].getAttribute('aria-selected') === 'true') {\n let div = selectOptions[i].getAttribute('id');\n document.getElementById(div).click();\n setTimeout(() => {\n selectOptions[i].setAttribute('aria-selected', 'false');\n }, 50);\n }\n }\n }\n\n enableSaufCheckbox(array, type) {\n let key;\n for (let i = Object.keys(array).length - 1; i >= 0; i--) {\n if (array['group' + i].some(el => el.sauf)) {\n key = i;\n break;\n }\n }\n Object.entries(array).forEach(([keyVal, value], objIndex) => {\n if (objIndex === key) {\n for (let i = objIndex; i >= 0; i--) {\n if (!array['group' + i][array['group' + i].length - 1]['group']) {\n array['group' + i].forEach(el => {\n el.isSaufGroup = false;\n });\n } else {\n array['group' + i].forEach(el => {\n el.isSaufGroup = true;\n });\n }\n }\n if ((objIndex + 1) <= (Object.keys(array).length - 1)) {\n for (let i = (objIndex + 1); i <= Object.keys(array).length - 1; i++) {\n if (array['group' + i].filter(el => !el.sauf).length > 0) {\n array['group' + i].forEach(item => {\n item.group = false;\n delete item.isSaufGroup\n })\n }\n }\n // } else {\n // for (let i = (objIndex - 1); i >= 0; i--) {\n // if (array['group' + i].filter(el => !el.sauf).length > 0) {\n // array['group' + i].forEach(item => {\n // item.group = false;\n // // delete item.isSaufGroup\n // });\n // }\n // }\n }\n }\n if (key === undefined) {\n for (let i = 0; i <= Object.keys(array).length - 1; i++) {\n array['group' + i].forEach(item => {\n item.group = false;\n delete item.isSaufGroup\n })\n }\n }\n });\n return array;\n }\n\n saufCheckBoxCondition(type, key) {\n let array = this.characterList['characterListType' + type];\n if (array[key].some(el => el.hasOwnProperty('isSaufGroup'))) {\n return true;\n } else {\n return false;\n }\n }\n\n checkSauf(num, key, event) {\n event.preventDefault();\n event.stopPropagation();\n let previousIndex, splicedData;\n let currentNumber = parseInt(key.match(/\\d/g));\n let currentArray = this.characterList['characterListType' + num];\n let previousNumber = currentNumber - 1;\n let nextNumber = currentNumber + 1;\n if (previousNumber < 0) {\n previousNumber = 0;\n }\n if (nextNumber > Object.keys(currentArray).length) {\n nextNumber = Object.keys(currentArray).length;\n }\n currentArray[key].forEach(item => {\n item.isSaufGroup = !item.isSaufGroup;\n item.group = !item.group;\n });\n if (currentArray[key].filter(el => el.sauf).length > 0) {\n if (currentArray[key][0].isSaufGroup) {\n for (let i = 0; i < currentArray[key].length; i++) {\n previousIndex = i - 1;\n if (previousIndex < 0) {\n previousIndex = i;\n }\n let item = currentArray[key][i];\n if (item.sauf && !currentArray[key][previousIndex].sauf) {\n item.conditionType = '3';\n }\n }\n } else {\n if (currentNumber !== 0 && currentArray[key].filter(el => el.sauf).length > 0) {\n for (let i = 0; i < currentArray[key].length; i++) {\n if (currentArray[key][i].sauf) {\n splicedData = currentArray[key].splice(i, 1);\n } else {\n currentArray[key][i].group = false;\n currentArray[key][i].isSaufGroup = false;\n }\n }\n if (currentArray['group' + previousNumber].filter(el => el.sauf).length > 0) {\n splicedData.forEach(item => {\n item.conditionType = '1';\n item.group = true;\n item.isSaufGroup = true;\n });\n } else {\n splicedData.forEach(item => {\n item.conditionType = '3';\n item.group = true;\n item.isSaufGroup = true;\n });\n }\n if (currentArray['group' + previousNumber].filter(el => !el.sauf).length > 0) {\n currentArray['group' + previousNumber].forEach(el => {\n el.group = true;\n el.isSaufGroup = true;\n })\n }\n splicedData.forEach(item => {\n currentArray['group' + previousNumber].push(item);\n })\n } else {\n currentArray[key].forEach(item => {\n if (item.sauf) {\n item.conditionType = '2';\n }\n });\n }\n currentArray = this.disableSaufCheckBox(currentArray);\n }\n } else {\n\n let isGroupEnabled = false;\n const selectedGroup = Number(key.replace('group', ''));\n for (const grKey in currentArray) {\n if (Number(grKey.replace('group', '')) > selectedGroup && currentArray[grKey][0].group) {\n isGroupEnabled = true;\n break;\n }\n }\n\n if (isGroupEnabled && currentArray[key][0].group) {\n for (const grKey in currentArray) {\n if (Number(grKey.replace('group', '')) > selectedGroup) {\n const j = Number(grKey.replace('group', ''));\n if (!currentArray[grKey][0].group) {\n const currentGroup = currentArray[`group${j - 1}`];\n currentArray[`group${j - 1}`] = currentArray[`group${j}`];\n currentArray[`group${j}`] = currentGroup;\n } else {\n break;\n }\n }\n }\n } else if (isGroupEnabled && !currentArray[key][0].group) {\n for (let i = Object.keys(currentArray).length - 1; i >= 0; i--) {\n if (currentArray['group' + i].some(el => el.sauf)) {\n key = i;\n break;\n }\n }\n for (const grKey in currentArray) {\n if (Number(grKey.replace('group', '')) > selectedGroup) {\n const j = Number(grKey.replace('group', ''));\n if (j <= key) {\n const currentGroup = currentArray[`group${j - 1}`];\n currentArray[`group${j - 1}`] = currentArray[`group${j}`];\n currentArray[`group${j}`] = currentGroup;\n if (j >= key) {\n currentGroup.forEach(el => {\n el.group = false;\n delete el.isSaufGroup;\n });\n }\n } else {\n break;\n }\n }\n }\n }\n }\n this.requestService.addRequestCharacter(currentArray, this.reqActive, num);\n }\n\n disableSaufCheckBox(array) {\n let key;\n for (let i = Object.keys(array).length - 1; i >= 0; i--) {\n if (array['group' + i].some(el => el.sauf)) {\n key = i;\n break;\n }\n }\n Object.entries(array).forEach(([keyVal, value], objIndex) => {\n if (objIndex === key) {\n for (let i = objIndex; i >= 0; i--) {\n if (array['group' + i][array['group' + i].length - 1].conditionType === '3' && array['group' + i].length > 1) {\n array['group' + i].forEach(el => {\n el.isSaufGroup = true;\n key = i;\n });\n } else if (array['group' + key].filter(el => !el.group).length > 0) {\n array['group' + i].forEach(el => {\n el.isSaufGroup = false;\n el.group = false;\n });\n }\n }\n }\n if (key < objIndex) {\n for (let i = objIndex; i <= Object.keys(array).length - 1; i++) {\n if (array['group' + i].filter(el => el.sauf).length === 0) {\n array['group' + i].forEach(item => {\n item.group = false;\n delete item.isSaufGroup\n })\n }\n }\n }\n\n });\n return array;\n }\n\n getSelectedStoreData(req) {\n if (req) {\n //console.log(req)\n this.selectedTable = req.table;\n this.region = req.region;\n this.groupList = req.regroupment;\n this.populationList = req.populationList;\n this.queryName = req.queryName ? req.queryName : '';\n this.characterList = {\n 'characterListType1': { 'group0': [] },\n 'characterListType2': { 'group0': [] },\n 'characterListType3': { 'group0': [] },\n };\n for (let key in this.characterList) {\n for (let key2 in req.characterList) {\n if (key === key2) {\n this.characterList[key] = req.characterList[key];\n }\n }\n }\n this.vueList = req.vue;\n this.selectedVueIPNDetail = req.vuePrivateIPNData;\n }\n if (typeof (this.groupList) === 'undefined') {\n this.groupList = [];\n }\n if (typeof (this.vueList) === 'undefined') {\n this.vueList = [];\n }\n if (typeof (this.populationList) === 'undefined') {\n this.populationList = [];\n }\n if (typeof (this.characterList) === 'undefined') {\n this.characterList = {\n 'characterListType1': { 'group0': [] },\n 'characterListType2': { 'group0': [] },\n 'characterListType3': { 'group0': [] },\n };\n }\n this.utilService.$favoriteConnecton$.next(this.region);\n this.getFilterCategoryDetails();\n this.getFilterCriteriaListDetails();\n this.getPrivateFilterCategoryDetails();\n this.getPopulationSectionValues();\n this.getPrivateVueDetailsIPNs();\n this.enableExecuteButton();\n this.allowAllHistoricalData();\n this.showHiddenCriteriaList();\n }\n\n enableExecuteButton() {\n if (this.region === \"Europe\") {\n if (this.profile['roles'].indexOf('PIL_EXEC_REQ') > -1 && this.getFavoriteRegion() === 'PIL') {\n this.isAllowExecute = true;\n }\n } else {\n if (this.profile['roles'].indexOf('PIM_EXEC_REQ') > -1 && this.getFavoriteRegion() === 'PIM') {\n this.isAllowExecute = true;\n }\n }\n }\n\n allowAllHistoricalData() {\n if (this.region === \"Europe\") {\n if (this.profile['roles'].includes('PIL_TOUTES_POP') && this.getFavoriteRegion() === 'PIL') {\n this.isAllowAllHisData = true;\n }\n } else {\n if (this.profile['roles'].includes('PIM_TOUTES_POP') && this.getFavoriteRegion() === 'PIM') {\n this.isAllowAllHisData = true;\n }\n }\n }\n\n enableAllTextBoxInGrouping() {\n if (this.region === \"Europe\") {\n // if (this.role['role-pil-irn6804'].includes('pil_toutes_pop') && this.role['role-pil-irn6804'].includes('pil_dump')\n // && this.role['role-pil-irn6804'].includes('pil_obj_syst')) {\n // this.isEnableAllTextBox = true;\n // }\n // } else {\n // if (this.role['role-pim-irn9207'].includes('pim_toutes_pop') && this.role['role-pim-irn9207'].includes('pim_dump')\n // && this.role['role-pim-irn9207'].includes('pim_obj_syst')) {\n // this.isEnableAllTextBox = true;\n // }\n // }\n if (this.profile['roles'].includes('PIL_TOUTES_POP') && this.profile['roles'].includes('PIL_DUMP')\n && this.profile['roles'].includes('PIL_OBJ_SYST') && this.getFavoriteRegion() === 'PIL') {\n this.isEnableAllTextBox = true;\n }\n } else {\n if (this.profile['roles'].includes('PIM_TOUTES_POP') && this.profile['roles'].includes('PIM_DUMP')\n && this.profile['roles'].includes('PIM_OBJ_SYST') && this.getFavoriteRegion() === 'PIM') {\n this.isEnableAllTextBox = true;\n }\n }\n }\n\n showHiddenCriteriaList() {\n if (this.region === \"Europe\") {\n if (this.profile['roles'].indexOf('PIL_OBJ_SYST') > -1 && this.getFavoriteRegion() === 'PIL') {\n this.isShowHiddenList = true;\n }\n } else {\n if (this.profile['roles'].indexOf('PIM_OBJ_SYST') > -1 && this.getFavoriteRegion() === 'PIM') {\n this.isShowHiddenList = true;\n }\n }\n }\n\n getFavoriteRegion() {\n if (this.region === \"Europe\") {\n return \"PIL\";\n } else {\n return \"PIM\";\n }\n }\n\n getFilterCategoryDetails() {\n this.filterCategory = [];\n const queryParam = { \"input\": `FILTRE@system@${this.selectedTable}@@`, \"region\": this.getFavoriteRegion() };\n this.apiService.getObjectSize(queryParam).subscribe(res => {\n if (res.noObjects > 0) {\n this.delayName = this.utilService.getTranslateName(\"NEW_QUERY.DELAY\");\n const queryParam1 = { \"input\": `FILTRE@system@${this.selectedTable}@@0@${res.noObjects}@`, \"region\": this.getFavoriteRegion() };\n this.apiService.getChoiceTableDetails(queryParam1).subscribe(res1 => {\n this.filterCategory = res1.lists;\n this.filterCategory = this.filterCategory.sort(this.utilService.sortArray)\n },\n error => {\n //console.log(\"error\", error.message);\n });\n }\n },\n error => {\n //console.log(\"error\", error.message);\n });\n\n }\n\n getPrivateFilterCategoryDetails() {\n this.filterPrivateCategory = undefined;\n const queryParam = { \"input\": `FILTRE@${this.ipn}@${this.selectedTable}@@`, \"region\": this.getFavoriteRegion() };\n this.apiService.getObjectSize(queryParam).subscribe(res => {\n if (res.noObjects > 0) {\n const queryParam1 = { \"input\": `FILTRE@${this.ipn}@${this.selectedTable}@@0@${res.noObjects}@`, \"region\": this.getFavoriteRegion() };\n this.apiService.getChoiceTableDetails(queryParam1).subscribe(res1 => {\n this.filterPrivateCategory = res1.lists;\n this.filterPrivateCategory = this.filterPrivateCategory.sort(this.utilService.sortArray)\n },\n error => {\n //console.log(\"error\", error.message);\n });\n }\n },\n error => {\n //console.log(\"error\", error.message);\n });\n\n }\n\n dynamicHeight() {\n let height;\n let populationScreenDiv = document.getElementById('populationscreen');\n if (populationScreenDiv) {\n data.forEach(list => {\n if (list.name === this.selectedTable) {\n height = populationScreenDiv.clientHeight / list.fields.length * (list.fields.length + 1);\n }\n });\n return height;\n }\n }\n\n getPopulationSectionValues() {\n let all;\n setTimeout(() => {\n all = this.utilService.getTranslateName(`COMMON.ALL`);\n data.forEach(item => {\n if (item.name === this.selectedTable) {\n item.fields.forEach(fields => {\n if (fields.type !== 'textarea' && fields.field_name !== \"TCM\" && fields.field_name !== \"DLC\") {\n fields.selectedOption = this.getSelectedValues(fields.field_name, false) ? this.getSelectedValues(fields.field_name, false) : all;\n } else if (fields.type !== 'textarea') {\n fields.selectedOption = this.getSelectedValues(fields.field_name, false) ? this.getSelectedValues(fields.field_name, false) : this.utilService.getTranslateName(`NEW_QUERY.ALLDATA`);\n } else {\n fields.selectedOption = this.getSelectedValues(fields.field_name, false);\n }\n fields.isSelected = false;\n if (fields.type === 'dropdown' && fields.field_name !== \"TCM\" && fields.field_name !== \"DLC\") {\n if (typeof (fields.input) !== 'undefined') {\n const queryParam = { \"input\": `DICO@${this.ipn}${fields.input}`, \"region\": this.getFavoriteRegion() };\n this.apiService.getObjectSize(queryParam).subscribe(res => {\n if (res.noObjects > 0) {\n const queryParam1 = { \"input\": `DICO@${this.ipn}${fields.input}0@${res.noObjects}@`, \"region\": this.getFavoriteRegion() };\n this.apiService.getChoiceTableDetails(queryParam1).subscribe(res1 => {\n fields['options'] = res1.lists;\n // const sorter = this.utilService.MySort(' ?*!@_.()#^&%-=+01234567989abcdefghijklmnopqrstuvwxyz');\n fields['options'] = fields['options'].sort(this.utilService.sortArraySpecial);\n },\n error => {\n //console.log(\"error\", error.message);\n });\n }\n },\n error => {\n //console.log(\"error\", error.message);\n });\n }\n } else if (fields.field_name === \"TCM\" || fields.field_name === \"DLC\") {\n fields['options'] = [this.utilService.getTranslateName(`NEW_QUERY.3MONTHS`),\n this.utilService.getTranslateName(`NEW_QUERY.6MONTHS`),\n this.utilService.getTranslateName(`NEW_QUERY.12MONTHS`),\n this.utilService.getTranslateName(`NEW_QUERY.ALLDATA`)];\n }\n })\n }\n })\n }, 0)\n }\n\n getSelectedValues(field, getrequest) {\n let selectedValue;\n this.populationList.forEach((list, index) => {\n for (var key in list) {\n if (field === key && !getrequest) {\n selectedValue = list[key];\n } else if (field === key && getrequest) {\n selectedValue = index;\n }\n }\n })\n return selectedValue;\n }\n\n selectPopulationCriteria(field, item) {\n if (item === '') {\n item = this.utilService.getTranslateName(`COMMON.ALL`);\n } else {\n item = item;\n }\n setTimeout(() => {\n if (field.type !== 'textarea') {\n field.selectedOption = item;\n }\n let index = this.getSelectedValues(field.field_name, true);\n if (index >= 0) {\n this.populationList[index][field.field_name] = field.selectedOption.toUpperCase();\n } else {\n this.populationList.push({ [field.field_name]: field.selectedOption.toUpperCase() });\n }\n this.requestService.addPopulationRequest(this.populationList, this.reqActive);\n }, 0)\n }\n\n getCriteriaName(label, lang) {\n if (label.split(this.splitChar, 2).length > 1) {\n return label.split(this.splitChar, 2)[this.getLangIndex(this.lang)];\n } else {\n return label;\n }\n }\n\n editDateVal(name) {\n let dateVal;\n if (name !== 'CONNUE' && name !== 'INCONNUE' && name !== 'Y') {\n dateVal = this.utilService.getTranslateName(`NEW_QUERY.DATE_GROUPING.${name}_SAVE`);\n } else {\n dateVal = this.utilService.getTranslateName(`NEW_QUERY.DATE_GROUPING.${name}`);\n }\n return dateVal;\n }\n\n groupDateLangData() {\n return [{ 'en': 'days', 'fr': 'jours' },\n { 'en': 'day/week./year', 'fr': 'jour/prog./année' },\n { 'en': 'program', 'fr': 'programmes' },\n { 'en': 'industrial month', 'fr': 'mois industriels' },\n { 'en': 'calendar month', 'fr': 'mois calendaires' },\n { 'en': 'year', 'fr': 'année' },\n { 'en': 'flag', 'fr': 'flag' }]\n }\n groupDelayLangData() {\n return [{ 'en': 'Known', 'fr': 'Connue' },\n { 'en': 'Unknown', 'fr': 'Inconnue' },\n { 'en': 'Days', 'fr': 'Jours' },\n { 'en': 'Day', 'fr': 'Jour' },\n { 'en': 'ASL', 'fr': 'ASL' },\n { 'en': 'Program', 'fr': 'programme' },\n { 'en': 'Industrial month', 'fr': 'Mois industriel' },\n { 'en': 'Calendar month', 'fr': 'Mois calendaire' },\n { 'en': 'Year', 'fr': 'Année' },\n { 'en': 'Working days', 'fr': 'Jour ouver' },\n { 'en': 'Week', 'fr': 'Semaine' }]\n }\n languageChanged() {\n let reqData = this.requestStoresData[this.reqActive];\n if (reqData.lang !== this.lang) {\n if (this.criteriaListOringinal) {\n const preLang = reqData.lang;\n reqData.lang = this.lang;\n this.requestService.updateReqDataLang(this.lang, this.reqActive);\n if (reqData.regroupment) {\n this.groupList = reqData.regroupment;\n for (const item of this.groupList) {\n const preName = item.name.substring(0, item.name.indexOf('['));\n\n // //console.log('prename', preName);\n if (item.type !== 99) {\n // //console.log('prename111', item);\n const filterVal = this.criteriaListOringinal.filter(a => a.GCOName.toUpperCase() === item.GCOName.toUpperCase() && a.typeOfField == item.type);\n for (const iterator of filterVal) {\n if (item.type === 3) {\n let operator = item.name.split('[')[1];\n operator = operator.slice(0, -1);\n for (let i = 0; i < this.groupDateLangData().length; i++) {\n let el = this.groupDateLangData()[i];\n for (const [key, value] of Object.entries(el)) {\n if (key !== this.lang) {\n if (el[key].toLowerCase() === operator.toLowerCase()) {\n item.name = item.name.replace(operator, el[this.lang]);\n break;\n }\n }\n }\n }\n }\n if (item.name.indexOf('[') > -1) {\n let changeVal;\n if (this.lang === 'fr') {\n changeVal = 'Somme';\n } else {\n changeVal = 'Sum';\n }\n if (item.type === 1) {\n\n const enLangValue = [\"Compact Code\", \"All\", \"Index\"];\n const frLangValue = [\"Code Compact\", \"Tous\", \"Indice\"];\n const preVal = item.name.substring(item.name.indexOf('[') + 1, item.name.indexOf(']')).split(\",\")[0];\n let changeVal;\n if (enLangValue.includes(preVal) || frLangValue.includes(preVal)) {\n if (this.lang === 'fr') {\n changeVal = frLangValue[enLangValue.indexOf(preVal)];\n } else {\n changeVal = enLangValue[frLangValue.indexOf(preVal)];\n }\n if (typeof (changeVal) !== 'undefined') {\n item.name = item.name.replace(preVal, changeVal);\n // //console.log(\"item.name.indexOf('[')\", preVal, changeVal, item.name.substring(item.name.indexOf('[') + 1, item.name.indexOf('[') + 1), item.name.substring(item.name.indexOf('[') + 1, item.name.indexOf(']')));\n }\n }\n } else {\n let operator = item.name.split('[')[1];\n operator = operator.slice(0, -1);\n item.name = item.name.replace(preName, this.getCriteriaName(iterator.longLabel, this.lang));\n item.name = item.name.replace(operator, changeVal);\n }\n } else {\n item.name = this.getCriteriaName(iterator.longLabel, this.lang);\n }\n }\n } else {\n let dateName1, dateName2, dateDelayName1, dateDelayName2;\n dateName1 = item.name.split('-')[0];\n dateName2 = item.name.split('-')[1].substring(0, item.name.split('-')[1].indexOf('['));\n item.name = this.getLangValueChange(item, 'group');\n if (item.delay === 0) {\n dateDelayName1 = this.getCriteriaName(this.criteriaListOringinal.filter(a => a.longLabel.split(this.splitChar, 2).length > 1 ? a.longLabel.split(this.splitChar, 2)[this.getLangIndex(preLang)] === dateName1 : a.longLabel === dateName1)[0]['longLabel'], this.lang);\n dateDelayName2 = this.getCriteriaName(this.criteriaListOringinal.filter(a => a.longLabel.split(this.splitChar, 2).length > 1 ? a.longLabel.split(this.splitChar, 2)[this.getLangIndex(preLang)] === dateName2 : a.longLabel === dateName2)[0]['longLabel'], this.lang);\n // //console.log('delay1111', dateDelayName1, dateDelayName2);\n if (dateDelayName1) {\n item.name = item.name.replace(dateName1, dateDelayName1);\n item.name = item.name.replace(dateName2, dateDelayName2);\n }\n } else {\n if (item.delay === 1 || item.delay === 2) {\n dateDelayName1 = dateName1;\n dateDelayName2 = this.getCriteriaName(this.criteriaListOringinal.filter(a => a.longLabel.split(this.splitChar, 2).length > 1 ? a.longLabel.split(this.splitChar, 2)[this.getLangIndex(preLang)] === dateName2 : a.longLabel === dateName2)[0]['longLabel'], this.lang);\n } else {\n dateDelayName1 = this.getCriteriaName(this.criteriaListOringinal.filter(a => a.longLabel.split(this.splitChar, 2).length > 1 ? a.longLabel.split(this.splitChar, 2)[this.getLangIndex(preLang)] === dateName1 : a.longLabel === dateName1)[0]['longLabel'], this.lang);\n dateDelayName2 = dateName2;\n }\n if (dateDelayName1) {\n item.name = item.name.replace(dateName1, dateDelayName1);\n item.name = item.name.replace(dateName2, dateDelayName2);\n }\n }\n // //console.log('prelang', dateDelayName1);\n\n }\n this.requestService.addRequestReGroupment(this.groupList, this.reqActive);\n }\n }\n if (reqData.vue) {\n this.vueList = reqData.vue;\n for (const item of this.vueList) {\n const preName = item.name.substring(0, item.name.indexOf('['));\n const filterVal = this.criteriaListOringinal.filter(a => a.GCOName.toUpperCase() === item.GCOName.toUpperCase() && a.typeOfField == item.type);\n for (const iterator of filterVal) {\n if (item.name.indexOf('[') > -1) {\n if (item.type === 3) {\n let operator = item.name.split('[')[1];\n operator = operator.slice(0, -1);\n for (let i = 0; i < this.groupDateLangData().length; i++) {\n let el = this.groupDateLangData()[i];\n for (const [key, value] of Object.entries(el)) {\n if (key !== this.lang) {\n if (el[key].toLowerCase() === operator.toLowerCase()) {\n item.name = item.name.replace(operator, el[this.lang]);\n }\n }\n }\n }\n }\n if (item.type === 1) {\n\n const enLangValue = [\"Compact Code\", \"All\", \"Index\"];\n const frLangValue = [\"Code Compact\", \"Tous\", \"Indice\"];\n const preVal = item.name.substring(item.name.indexOf('[') + 1, item.name.indexOf(']')).split(\",\")[0];\n let changeVal;\n if (this.lang === 'fr') {\n changeVal = frLangValue[enLangValue.indexOf(preVal)];\n } else {\n changeVal = enLangValue[frLangValue.indexOf(preVal)];\n }\n if (typeof (changeVal) !== 'undefined') {\n item.name = item.name.replace(preVal, changeVal);\n // //console.log(\"item.name.indexOf('[')\", preVal, changeVal, item.name.substring(item.name.indexOf('[') + 1, item.name.indexOf('[') + 1), item.name.substring(item.name.indexOf('[') + 1, item.name.indexOf(']')));\n }\n }\n item.name = item.name.replace(preName, this.getCriteriaName(iterator.longLabel, this.lang));\n } else {\n item.name = this.getCriteriaName(iterator.longLabel, this.lang);\n }\n }\n this.requestService.addRequestVue(this.vueList, this.reqActive);\n }\n }\n\n if (reqData.characterList) {\n this.characterList = reqData.characterList;\n // //console.log('iterator', this.characterList);\n\n let k = 0;\n for (let key in this.characterList) {\n k = k + 1;\n if (key !== 'characterListType3') {\n for (let subKey1 in this.characterList[key]) {\n // //console.log('key1', subKey1);\n for (let subKey2 in this.characterList[key][subKey1]) {\n const preName = this.characterList[key][subKey1][subKey2].name.substring(0, this.characterList[key][subKey1][subKey2].name.indexOf('['));\n // //console.log('key2', this.characterList[key][subKey1][subKey2]);\n\n const filterVal = this.criteriaListOringinal.filter(a => a.GCOName.toUpperCase() === this.characterList[key][subKey1][subKey2].GCOName.toUpperCase() && a.typeOfField == this.characterList[key][subKey1][subKey2].type);\n if (this.getLangValueChange(this.characterList[key][subKey1][subKey2], 'group')) {\n this.characterList[key][subKey1][subKey2].name = this.getLangValueChange(this.characterList[key][subKey1][subKey2], 'group');\n }\n if (preName !== '') {\n for (const iterator of filterVal) {\n this.characterList[key][subKey1][subKey2].name = this.characterList[key][subKey1][subKey2].name.replace(preName, this.getCriteriaName(iterator.longLabel, this.lang));\n }\n } else {\n for (const iterator of filterVal) {\n this.characterList[key][subKey1][subKey2].name = this.getCriteriaName(iterator.longLabel, this.lang);\n }\n }\n }\n }\n } else {\n for (let subKey1 in this.characterList[key]) {\n // //console.log('key1Delay', subKey1);\n for (let subKey2 in this.characterList[key][subKey1]) {\n // //console.log('key2Delay', this.characterList[key][subKey1][subKey2]);\n\n\n\n let dateName1, dateName2, dateDelayName1, dateDelayName2;\n\n dateName1 = this.characterList[key][subKey1][subKey2].name.split('-')[0];\n dateName2 = this.characterList[key][subKey1][subKey2].name.split('-')[1];\n this.characterList[key][subKey1][subKey2].value = this.getLangValueChange(this.characterList[key][subKey1][subKey2], 'condition');\n // //console.log('delay', dateName1, dateName2);\n if (this.characterList[key][subKey1][subKey2].delay === 0) {\n dateDelayName1 = this.getCriteriaName(this.criteriaListOringinal.filter(a => a.longLabel.split(this.splitChar, 2).length > 1 ? a.longLabel.split(this.splitChar, 2)[this.getLangIndex(preLang)] === dateName1 : a.longLabel === dateName1)[0]['longLabel'], this.lang);\n dateDelayName2 = this.getCriteriaName(this.criteriaListOringinal.filter(a => a.longLabel.split(this.splitChar, 2).length > 1 ? a.longLabel.split(this.splitChar, 2)[this.getLangIndex(preLang)] === dateName2 : a.longLabel === dateName2)[0]['longLabel'], this.lang);\n // //console.log('delay1111', dateDelayName1, dateDelayName2);\n if (dateDelayName1) {\n this.characterList[key][subKey1][subKey2].name = this.characterList[key][subKey1][subKey2].name.replace(dateName1, dateDelayName1);\n this.characterList[key][subKey1][subKey2].name = this.characterList[key][subKey1][subKey2].name.replace(dateName2, dateDelayName2);\n }\n } else {\n if (this.characterList[key][subKey1][subKey2].delay === 1 || this.characterList[key][subKey1][subKey2].delay === 2) {\n dateDelayName1 = dateName1;\n dateDelayName2 = this.getCriteriaName(this.criteriaListOringinal.filter(a => a.longLabel.split(this.splitChar, 2).length > 1 ? a.longLabel.split(this.splitChar, 2)[this.getLangIndex(preLang)] === dateName2 : a.longLabel === dateName2)[0]['longLabel'], this.lang);\n } else {\n dateDelayName1 = this.getCriteriaName(this.criteriaListOringinal.filter(a => a.longLabel.split(this.splitChar, 2).length > 1 ? a.longLabel.split(this.splitChar, 2)[this.getLangIndex(preLang)] === dateName1 : a.longLabel === dateName1)[0]['longLabel'], this.lang);\n dateDelayName2 = dateName2;\n }\n if (dateDelayName1) {\n this.characterList[key][subKey1][subKey2].name = this.characterList[key][subKey1][subKey2].name.replace(dateName1, dateDelayName1);\n this.characterList[key][subKey1][subKey2].name = this.characterList[key][subKey1][subKey2].name.replace(dateName2, dateDelayName2);\n }\n }\n // //console.log('prelang', dateDelayName1);\n\n\n }\n }\n\n\n\n }\n\n this.requestService.addRequestCharacter(this.characterList[key], this.reqActive, k);\n\n }\n }\n\n }\n }\n }\n\n getLangValueChange(item, type) {\n if (item.name.includes('[') && type !== 'condition') {\n let operator = item.name.split('[')[1];\n operator = operator.slice(0, -1);\n // //console.log('delay', dateName1, dateName2);\n for (let i = 0; i < this.groupDelayLangData().length; i++) {\n let el = this.groupDelayLangData()[i];\n for (const [key, value] of Object.entries(el)) {\n if (key !== this.lang) {\n if (el[key].toLowerCase() === operator.toLowerCase()) {\n item.name = item.name.replace(operator, el[this.lang]);\n }\n }\n }\n }\n return item.name;\n } else if (type === 'condition') {\n for (let i = 0; i < this.groupDelayLangData().length; i++) {\n let el = this.groupDelayLangData()[i];\n for (const [key, value] of Object.entries(el)) {\n if (key !== this.lang) {\n let operator = item.value.split(' ');\n if (operator[3] && isNaN(operator[3]) && operator.length > 2) {\n if (el[key].toLowerCase() === `${operator[2]} ${operator[3]}`.toLowerCase()) {\n item.value = item.value.replace(`${operator[2]} ${operator[3]}`, el[this.lang]);\n }\n } else if (el[key].toLowerCase() === operator[2].toLowerCase()) {\n item.value = item.value.replace(operator[2], el[this.lang]);\n }\n }\n }\n }\n return item.value;\n }\n }\n\n getFilterCriteriaListDetails() {\n this.displayCriteriaList = [];\n this.criteriaList = [];\n const queryParam = { \"input\": `CHAMP ETENDU@${this.ipn}@${this.selectedTable}@@`, \"region\": this.getFavoriteRegion() };\n this.apiService.getObjectSize(queryParam).subscribe(res => {\n if (res.noObjects > 0) {\n const queryParam1 = { \"input\": `CHAMP ETENDU@${this.ipn}@${this.selectedTable}@@0@${res.noObjects}@`, \"region\": this.getFavoriteRegion() };\n this.apiService.getChoiceTableDetails(queryParam1).subscribe(res1 => {\n this.criteriaListOringinal = res1.lists;\n this.selectedQuery = this.requestStoresData[this.requestStoresData.length - 1].selectedQuery;\n let roleQuery = this.requestStoresData[this.requestStoresData.length - 1].roleBasedQuery;\n this.enableAllTextBoxInGrouping();\n if (roleQuery !== undefined && roleQuery !== '') {\n this.roleBasedQuery = roleQuery;\n } else {\n this.roleBasedQuery = '';\n }\n for (const item of this.criteriaListOringinal) {\n if (typeof (item.longLabel.split(this.splitChar, 2)[this.getLangIndex(this.lang)]) === 'undefined') {\n item.longLabel = `${item.longLabel}${this.splitChar}${item.longLabel}`;\n\n if (this.isShowHiddenList) {\n this.displayCriteriaList.push(item.longLabel.split(this.splitChar, 2)[this.getLangIndex(this.lang)]);\n this.criteriaList.push(item.longLabel.split(this.splitChar, 2)[this.getLangIndex(this.lang)]);\n } else {\n if (item.longLabel.split(this.splitChar, 2)[this.getLangIndex(this.lang)][0] !== '_') {\n this.displayCriteriaList.push(item.longLabel.split(this.splitChar, 2)[this.getLangIndex(this.lang)]);\n this.criteriaList.push(item.longLabel.split(this.splitChar, 2)[this.getLangIndex(this.lang)]);\n }\n }\n\n\n } else {\n // this.displayCriteriaList.push(item.longLabel.split(this.splitChar, 2)[this.getLangIndex(this.lang)]);\n // this.criteriaList.push(item.longLabel.split(this.splitChar, 2)[this.getLangIndex(this.lang)]);\n\n if (this.isShowHiddenList) {\n this.displayCriteriaList.push(item.longLabel.split(this.splitChar, 2)[this.getLangIndex(this.lang)]);\n this.criteriaList.push(item.longLabel.split(this.splitChar, 2)[this.getLangIndex(this.lang)]);\n } else {\n if (item.longLabel.split(this.splitChar, 2)[this.getLangIndex(this.lang)][0] !== '_') {\n this.displayCriteriaList.push(item.longLabel.split(this.splitChar, 2)[this.getLangIndex(this.lang)]);\n this.criteriaList.push(item.longLabel.split(this.splitChar, 2)[this.getLangIndex(this.lang)]);\n }\n }\n\n }\n }\n if (this.selectedQuery !== '' && this.selectedQuery !== undefined) {\n this.formSelectedQueryRequest();\n }\n this.displayCriteriaList = this.displayCriteriaList.sort(this.utilService.sortArray);\n this.languageChanged();\n\n //Load Delay Data\n this.loadDelayData();\n },\n error => {\n //console.log(\"error\", error.message);\n });\n }\n },\n error => {\n //console.log(\"error\", error.message);\n });\n }\n\n getSearchCategory(ipnValue) {\n this.searchText = undefined;\n this.categoryList = [];\n this.displayCriteriaList = [];\n this.criteriaList = [];\n if (this.selectedCategory === this.utilService.getTranslateName(`COMMON.ALL`)) {\n for (const item of this.criteriaListOringinal) {\n // if (typeof (item.longLabel.split(this.splitChar, 2)[this.getLangIndex(this.lang)]) !== 'undefined') {\n // this.displayCriteriaList.push(item.longLabel.split(this.splitChar, 2)[this.getLangIndex(this.lang)])\n // this.criteriaList.push(item.longLabel.split(this.splitChar, 2)[this.getLangIndex(this.lang)])\n // }\n\n if (typeof (item.longLabel.split(this.splitChar, 2)[this.getLangIndex(this.lang)]) === 'undefined') {\n item.longLabel = `${item.longLabel}${this.splitChar}${item.longLabel}`;\n\n if (this.isShowHiddenList) {\n this.displayCriteriaList.push(item.longLabel.split(this.splitChar, 2)[this.getLangIndex(this.lang)]);\n this.criteriaList.push(item.longLabel.split(this.splitChar, 2)[this.getLangIndex(this.lang)]);\n } else {\n if (item.longLabel.split(this.splitChar, 2)[this.getLangIndex(this.lang)][0] !== '_') {\n this.displayCriteriaList.push(item.longLabel.split(this.splitChar, 2)[this.getLangIndex(this.lang)]);\n this.criteriaList.push(item.longLabel.split(this.splitChar, 2)[this.getLangIndex(this.lang)]);\n }\n }\n\n\n } else {\n // this.displayCriteriaList.push(item.longLabel.split(this.splitChar, 2)[this.getLangIndex(this.lang)]);\n // this.criteriaList.push(item.longLabel.split(this.splitChar, 2)[this.getLangIndex(this.lang)]);\n\n if (this.isShowHiddenList) {\n this.displayCriteriaList.push(item.longLabel.split(this.splitChar, 2)[this.getLangIndex(this.lang)]);\n this.criteriaList.push(item.longLabel.split(this.splitChar, 2)[this.getLangIndex(this.lang)]);\n } else {\n if (item.longLabel.split(this.splitChar, 2)[this.getLangIndex(this.lang)][0] !== '_') {\n this.displayCriteriaList.push(item.longLabel.split(this.splitChar, 2)[this.getLangIndex(this.lang)]);\n this.criteriaList.push(item.longLabel.split(this.splitChar, 2)[this.getLangIndex(this.lang)]);\n }\n }\n\n }\n\n\n }\n this.displayCriteriaList = this.displayCriteriaList.sort(this.utilService.sortArray);\n } else {\n const queryParam = { \"input\": `FILTRE@${ipnValue}@${this.selectedTable}@${this.selectedCategory}@`, \"region\": this.getFavoriteRegion() };\n this.apiService.getObjectGet(queryParam).subscribe(res => {\n\n const dataRes = res.data.split('@');\n for (let i = 0; i < dataRes.length; i = i + 4) {\n if (i > 0) {\n this.categoryList.push(dataRes[i - 1]);\n }\n }\n\n for (const iterator of this.categoryList) {\n const filterVal = this.criteriaListOringinal.filter(a => a.GCOName.toUpperCase() === iterator.substring(0, iterator.length - 2).toUpperCase() && a.typeOfField == iterator.slice(-1));\n for (const item of filterVal) {\n // if (typeof (iterator.longLabel.split(this.splitChar, 2)[this.getLangIndex(this.lang)]) !== 'undefined') {\n // this.displayCriteriaList.push(iterator.longLabel.split(this.splitChar, 2)[this.getLangIndex(this.lang)]);\n // this.criteriaList.push(iterator.longLabel.split(this.splitChar, 2)[this.getLangIndex(this.lang)]);\n // }\n\n if (typeof (item.longLabel.split(this.splitChar, 2)[this.getLangIndex(this.lang)]) === 'undefined') {\n item.longLabel = `${item.longLabel}${this.splitChar}${item.longLabel}`;\n\n if (this.isShowHiddenList) {\n this.displayCriteriaList.push(item.longLabel.split(this.splitChar, 2)[this.getLangIndex(this.lang)]);\n this.criteriaList.push(item.longLabel.split(this.splitChar, 2)[this.getLangIndex(this.lang)]);\n } else {\n if (item.longLabel.split(this.splitChar, 2)[this.getLangIndex(this.lang)][0] !== '_') {\n this.displayCriteriaList.push(item.longLabel.split(this.splitChar, 2)[this.getLangIndex(this.lang)]);\n this.criteriaList.push(item.longLabel.split(this.splitChar, 2)[this.getLangIndex(this.lang)]);\n }\n }\n\n\n } else {\n // this.displayCriteriaList.push(item.longLabel.split(this.splitChar, 2)[this.getLangIndex(this.lang)]);\n // this.criteriaList.push(item.longLabel.split(this.splitChar, 2)[this.getLangIndex(this.lang)]);\n\n if (this.isShowHiddenList) {\n this.displayCriteriaList.push(item.longLabel.split(this.splitChar, 2)[this.getLangIndex(this.lang)]);\n this.criteriaList.push(item.longLabel.split(this.splitChar, 2)[this.getLangIndex(this.lang)]);\n } else {\n if (item.longLabel.split(this.splitChar, 2)[this.getLangIndex(this.lang)][0] !== '_') {\n this.displayCriteriaList.push(item.longLabel.split(this.splitChar, 2)[this.getLangIndex(this.lang)]);\n this.criteriaList.push(item.longLabel.split(this.splitChar, 2)[this.getLangIndex(this.lang)]);\n }\n }\n\n }\n\n }\n }\n this.displayCriteriaList = this.displayCriteriaList.sort(this.utilService.sortArray);\n\n },\n error => {\n //console.log(\"error\", error.message);\n });\n }\n }\n\n onCategoryChange(val, type) {\n if (val === '') {\n this.selectedCategory = this.utilService.getTranslateName(`COMMON.ALL`);\n } else {\n this.selectedCategory = val;\n }\n if (type === 'private') {\n this.getSearchCategory(this.ipn);\n } else {\n this.getSearchCategory('system');\n }\n }\n\n getSelectedList(selectedItem) {\n if (selectedItem === this.utilService.getTranslateName(`COMMON.ALL`)) {\n return true;\n } else {\n return false;\n }\n }\n searchFilter() {\n this.displayCriteriaList = this.criteriaList.filter(a => a.toUpperCase().includes(this.searchText.toUpperCase()));\n this.displayCriteriaList = this.displayCriteriaList.sort(this.utilService.sortArray);\n }\n\n requestClose(req, index) {\n this.selectedCategory = this.utilService.getTranslateName(`COMMON.ALL`);\n const dialogRef = this.dialog.open(AlertConfirmationComponent, {\n disableClose: true,\n width: '550px',\n data: { 'display': this.utilService.getTranslateName(`ERROR.CLOSE_QUERY`), 'isText': false }\n });\n\n dialogRef.afterClosed().subscribe(result => {\n if (result) {\n this.isExecute = false;\n if (this.requestStoresData.length === 0) {\n localStorage.removeItem(\"region\")\n this.utilService.$favoriteConnecton$.next(\"\");\n\n const pathName = window.location.pathname;\n this.utilService.removeOpenedWindowName(pathName);\n const openedWindowNameList = this.utilService.getOpenedWindowNameList()\n if (openedWindowNameList.length > 0) {\n this.requestStoresData = this.requestService.getAllRequestData();\n if (this.requestStoresData.length === 0) {\n this.utilService.$showQuickLink$.next(false);\n }\n this.router.navigate([openedWindowNameList[openedWindowNameList.length - 1]]);\n } else {\n this.utilService.$showQuickLink$.next(false);\n this.router.navigateByUrl('/home');\n }\n // this.router.navigateByUrl('/home');\n } else {\n this.saveExecuteQuery('close-tab', index);\n }\n } else {\n this.isExecute = false;\n this.selectedTable = undefined;\n this.requestStoresData.splice(index, 1);\n this.requestService.removeRequestData(index + 1);\n this.reqActive = this.requestStoresData.length - 1;\n if ((this.requestStoresData.length < 4)) {\n this.getSelectedStoreData(this.requestStoresData[this.requestStoresData.length - 1]);\n }\n if (this.requestStoresData.length === 0) {\n localStorage.removeItem(\"region\")\n this.utilService.$favoriteConnecton$.next(\"\");\n\n const pathName = window.location.pathname;\n this.utilService.removeOpenedWindowName(pathName);\n const openedWindowNameList = this.utilService.getOpenedWindowNameList()\n if (openedWindowNameList.length > 0) {\n this.requestStoresData = this.requestService.getAllRequestData();\n if (this.requestStoresData.length === 0) {\n this.utilService.$showQuickLink$.next(false);\n }\n this.router.navigate([openedWindowNameList[openedWindowNameList.length - 1]]);\n } else {\n this.utilService.$showQuickLink$.next(false);\n this.router.navigateByUrl('/home');\n }\n // this.router.navigateByUrl('/home');\n }\n }\n });\n }\n\n getSelectedRequest(req, index) {\n if (this.reqActive !== index) {\n this.resetAllValues();\n this.reqActive = index;\n this.selectedTable = undefined;\n this.selectedCategory = this.utilService.getTranslateName(`COMMON.ALL`);\n this.requestStoresData = this.requestService.getAllRequestData();\n this.getSelectedStoreData(this.requestStoresData[index]);\n }\n }\n\n moveUp(id, element, section_id) {\n if (this.groupingSelectedList.length > 0) {\n let array, request;\n if (element === 'groupList') {\n array = this.groupList;\n request = 'addRequestReGroupment';\n } else {\n array = this.vueList;\n request = 'addRequestVue';\n }\n document.getElementById(id).scrollBy(0, -10);\n var selectList = document.getElementById(section_id);\n var selectOptions = selectList.getElementsByTagName('mat-list-option');\n for (var i = 0; i < array.length; i++) {\n if (i > 0) {\n if (selectOptions[i].getAttribute('aria-selected') === 'true') {\n let old_value = array.splice(i, 1)[0];\n array.splice(i - 1, 0, old_value);\n }\n } else if (i === 0 && selectOptions[i].getAttribute('aria-selected') === 'true') {\n let old_value = array.splice(i, 1)[0];\n array.splice(i, 0, old_value);\n let div = selectOptions[i].getAttribute('id');\n document.getElementById(div).click();\n }\n }\n this.requestService[request](array, this.reqActive)\n }\n }\n\n moveDown(id, element, section_id) {\n if (this.groupingSelectedList.length > 0) {\n let array, request;\n if (element === 'groupList') {\n array = this.groupList;\n request = 'addRequestReGroupment';\n } else {\n array = this.vueList;\n request = 'addRequestVue';\n }\n document.getElementById(id).scrollBy(0, 10);\n var selectList = document.getElementById(section_id);\n var selectOptions = selectList.getElementsByTagName('mat-list-option');\n for (var i = array.length - 1; i >= 0; i--) {\n if (i < array.length - 1) {\n if (selectOptions[i].getAttribute('aria-selected') === 'true') {\n let old_value = array.splice(i, 1)[0];\n array.splice(i + 1, 0, old_value);\n }\n } else if (i === array.length - 1 && selectOptions[i].getAttribute('aria-selected') === 'true') {\n let old_value = array.splice(i, 1)[0];\n array.splice(i, 0, old_value);\n let div = selectOptions[i].getAttribute('id');\n document.getElementById(div).click();\n }\n }\n this.requestService[request](array, this.reqActive)\n }\n }\n\n move(arr, new_index, old_index) {\n arr.splice(new_index, 0, arr.splice(old_index, 1)[0]);\n return arr;\n }\n\n moveUpConditionBlock(id) {\n if (this.groupingSelectedList.length > 0) {\n var selectList = document.getElementById('characterList_' + this.selectedCharacterNumber);\n var selectOptions = selectList.getElementsByTagName('mat-list-option');\n let array = this.characterList['characterListType' + this.selectedCharacterNumber];\n let i = 0;\n let selectedIndex;\n let selectedId;\n let isGroup = false;\n let isSAUF = false;\n for (let key in array) {\n for (let j = 0; j < array[key].length; j++) {\n const item = array[key][j]\n if (selectOptions[i].getAttribute('aria-selected') === 'true') {\n document.getElementById(id).scrollBy(0, -75);\n selectedIndex = Number(key.replace('group', ''));\n // selectedId = selectOptions[i].getAttribute('id');\n\n if (item['group']) {\n isSAUF = true;\n } else {\n if (array[key].length > 1 && array[key][array[key].length - 1].conditionType !== \"1\") {\n isSAUF = true;\n }\n }\n\n break;\n }\n i += 1;\n }\n if (selectedIndex >= 0) {\n break;\n }\n }\n\n let arrangedArray = new Array;\n let arrayInd = 0;\n let currentElement;\n for (let key in array) {\n\n // if (selectedIndex === 0) {\n\n // for (let j = 0; j < array[key].length; j++) {\n // if (selectOptions[i].getAttribute('aria-selected') === 'true') {\n // let div = selectOptions[i].getAttribute('id');\n // document.getElementById(div).click();\n // break;\n // }\n // }\n // this.requestService.addRequestCharacter(array, this.reqActive, this.selectedCharacterNumber);\n // return\n // }\n\n if (!isSAUF) {\n // //console.log('arrangedArray1', arrangedArray, selectedIndex);\n if (arrayInd + 1 === selectedIndex) {\n if (array[key][0].group && !array[`group${selectedIndex}`][0].group) {\n for (let index = selectedIndex; index >= 0; index--) {\n if (array[`group${index - 1}`]) {\n const element1 = array[`group${index - 1}`];\n if (element1[0].group) {\n // //console.log('h22222', index, selectedIndex)\n array[`group${index - 1}`] = new Array;\n array[`group${index - 1}`] = array[`group${index}`];\n\n if (element1.length === 1) {\n if (element1[0].sauf) {\n element1[0].conditionType = \"2\";\n }\n }\n\n // if (element1[element1.length - 1].sauf) {\n // element1[element1.length - 1].conditionType = 2;\n // }\n\n array[`group${index}`] = new Array;\n array[`group${index}`] = element1;\n } else {\n // //console.log('hillll', index, selectedIndex, element1, array[`group${index}`])\n const updateElement1 = array[`group${index}`];\n // updateElement1[0].isSaufGroup = false;\n for (let b = 0; b < updateElement1.length; b++) {\n updateElement1[b].isSaufGroup = false;\n }\n array[`group${index}`] = new Array;\n array[`group${index}`] = updateElement1;\n this.requestService.addRequestCharacter(array, this.reqActive, this.selectedCharacterNumber);\n index = -1;\n break;\n }\n } else {\n const updateElement1 = array[`group${index}`];\n for (let b = 0; b < updateElement1.length; b++) {\n updateElement1[b].isSaufGroup = false;\n // //console.log('updateElemen222', updateElement1[b])\n }\n this.requestService.addRequestCharacter(array, this.reqActive, this.selectedCharacterNumber);\n // return;\n }\n }\n } else {\n currentElement = array[key];\n\n const updateElement1 = array[`group${selectedIndex}`];\n // if (array[key][array[key].length - 1].sauf){\n if (this.saufCheckBoxCondition(this.selectedCharacterNumber, key)) {\n // updateElement1[0].isSaufGroup = false;\n for (let b = 0; b < updateElement1.length; b++) {\n updateElement1[b].isSaufGroup = false;\n }\n }\n\n array[key] = new Array;\n array[key] = updateElement1; // array[`group${selectedIndex}`];\n\n if (currentElement.length === 1) {\n if (currentElement[0].sauf) {\n currentElement[0].conditionType = \"2\";\n }\n }\n\n // if (currentElement[currentElement.length - 1].sauf) {\n // currentElement[currentElement.length - 1].conditionType = 2;\n // }\n\n array[`group${selectedIndex}`] = new Array;\n array[`group${selectedIndex}`] = currentElement;\n // //console.log('arrangedArraysss', array, selectedIndex);\n this.requestService.addRequestCharacter(array, this.reqActive, this.selectedCharacterNumber);\n\n // if (Number(key.replace('group', '')) === 0) {\n // for (let j = 0; j < array[key].length; j++) {\n // if (selectOptions[i].getAttribute('aria-selected') === 'true') {\n // let div = selectOptions[i].getAttribute('id');\n // document.getElementById(div).click();\n // }\n // }\n // }\n\n break;\n }\n }\n } else {\n // //console.log('arrangedArray2', arrangedArray, selectedIndex);\n if (arrayInd === selectedIndex) {\n if (array[`group${selectedIndex}`][0].group || array[`group${selectedIndex}`][array[`group${selectedIndex}`].length - 1].sauf) {\n this.toastyService.warning(this.utilService.getTranslateName(`ERROR.MOVE_BLOCK`));\n // //console.log(\"array[key][0]hasown\", array[key][0])\n // for (let j = 0; j < array[key].length; j++) {\n // if (selectOptions[i].getAttribute('aria-selected') === 'true') {\n // let div = selectOptions[i].getAttribute('id');\n // document.getElementById(div).click();\n // }\n // }\n } else {\n // //console.log(\"array[key][0]\", key, array[`group${selectedIndex}`].length, array[key])\n if (array[key][0].group && array[`group${selectedIndex}`][0].group) {\n currentElement = array[key];\n array[key] = new Array;\n array[key] = array[`group${selectedIndex}`];\n\n if (currentElement.length === 1) {\n if (currentElement[0].sauf) {\n currentElement[0].conditionType = \"2\";\n }\n }\n\n // if (currentElement[currentElement.length - 1].sauf) {\n // currentElement[currentElement.length - 1].conditionType = 2;\n // }\n\n array[`group${selectedIndex}`] = new Array;\n array[`group${selectedIndex}`] = currentElement;\n // //console.log('arrangedArrayfff', array, selectedIndex);\n this.requestService.addRequestCharacter(array, this.reqActive, this.selectedCharacterNumber);\n break;\n } else {\n for (let j = 0; j < array[key].length; j++) {\n if (selectOptions[i].getAttribute('aria-selected') === 'true') {\n let div = selectOptions[i].getAttribute('id');\n document.getElementById(div).click();\n }\n }\n }\n }\n }\n }\n arrayInd += 1;\n }\n if (selectedIndex === 0) {\n // for (let j = 0; j < array[`group${selectedIndex}`].length; j++) {\n // if (selectOptions[selectedIndex].getAttribute('aria-selected') === 'true') {\n // let div = selectOptions[selectedIndex].getAttribute('id');\n // document.getElementById(div).click();\n // }\n // }\n for (let i = 0; i < selectOptions.length; i++) {\n if (selectOptions[i].getAttribute('aria-selected') === 'true') {\n let div = selectOptions[i].getAttribute('id');\n document.getElementById(div).click()\n }\n }\n }\n // let indx;\n setTimeout(() => {\n let selectedIndex = this.selectedIndexForMove.split('');\n selectedIndex[1] = parseInt(selectedIndex[1]) - 1 > 0 ? parseInt(selectedIndex[1]) - 1 : 0;\n this.selectedIndexForMove = selectedIndex.join('');\n this.selectedId = 'character_data_' + selectedIndex.join('');\n for (let i = 0; i < selectOptions.length; i++) {\n if (selectOptions[i].getAttribute('aria-selected') === 'true') {\n let div = selectOptions[i].getAttribute('id');\n if (div !== this.selectedId && selectOptions[i].getAttribute('aria-selected') === 'true') {\n // selectOptions[i].setAttribute('aria-selected', 'false');\n document.getElementById(div).click();\n }\n }\n }\n this.selectedId = undefined;\n }, 0);\n }\n }\n\n deSelectSelectedOptions(list) {\n let selectedNumber = this.selectedCharacterNumber;\n [1, 2, 3].forEach(item => {\n if (item !== this.selectedCharacterNumber) {\n var selectList = document.getElementById('characterList_' + item);\n var selectOptions = selectList.getElementsByTagName('mat-list-option');\n let array = this.characterList['characterListType' + item];\n if (list === 1) {\n for (var i = 0; i < array.length; i++) {\n if (selectOptions[i].getAttribute('aria-selected') === 'true') {\n let div = selectOptions[i].getAttribute('id');\n document.getElementById(div).click();\n this.selectedCharacterNumber = selectedNumber;\n }\n }\n } else {\n for (var i = array.length - 1; i >= 0; i--) {\n if (selectOptions[i].getAttribute('aria-selected') === 'true') {\n let div = selectOptions[i].getAttribute('id');\n document.getElementById(div).click();\n this.selectedCharacterNumber = selectedNumber;\n }\n }\n }\n }\n })\n }\n\n moveDownConditionBlock(id) {\n if (this.groupingSelectedList.length > 0) {\n var selectList = document.getElementById('characterList_' + this.selectedCharacterNumber);\n var selectOptions = selectList.getElementsByTagName('mat-list-option');\n let array = this.characterList['characterListType' + this.selectedCharacterNumber];\n let i = 0;\n let selectedIndex, selectedId;\n let isGroup = false;\n let isSAUF = false;\n for (let key in array) {\n for (let j = 0; j < array[key].length; j++) {\n const item = array[key][j]\n if (selectOptions[i].getAttribute('aria-selected') === 'true') {\n document.getElementById(id).scrollBy(0, 75);\n selectedIndex = Number(key.replace('group', ''));\n // selectedId = selectOptions[i].getAttribute('id');\n\n if (item['group']) {\n isSAUF = true;\n } else {\n // if (this.saufCheckBoxCondition(this.selectedCharacterNumber, key)) {\n if (array[key].length > 1 && array[key][array[key].length - 1].conditionType !== \"1\") {\n isSAUF = true;\n }\n }\n\n break;\n }\n i += 1;\n }\n if (selectedIndex >= 0) {\n break;\n }\n }\n\n let arrangedArray = new Array;\n let arrayInd = 0;\n let currentElement;\n for (let key in array) {\n // //console.log('selectedIndex', selectedIndex, array[`group${selectedIndex + 1}`])\n\n // if (!array[`group${selectedIndex + 1}`]) {\n\n // for (let j = 0; j < array[key].length; j++) {\n // if (selectOptions[i].getAttribute('aria-selected') === 'true') {\n // let div = selectOptions[i].getAttribute('id');\n // document.getElementById(div).click();\n // }\n // }\n // this.requestService.addRequestCharacter(array, this.reqActive, this.selectedCharacterNumber);\n // return\n // }\n\n\n if (!isSAUF) {\n if (array[`group${Number(key.replace('group', '')) + 1}`]) {\n if (arrayInd === selectedIndex) {\n // //console.log('fffffffffffffffffff', `group${Number(key.replace('group', '')) + 1}`, selectedIndex)\n if (array[`group${Number(key.replace('group', '')) + 1}`][0].group && !array[`group${selectedIndex}`][0].group) {\n for (let index = selectedIndex; index <= 1000; index++) {\n if (array[`group${index + 1}`]) {\n const element1 = array[`group${index + 1}`];\n if (element1[0].group) {\n // //console.log('h22222', index, selectedIndex)\n array[`group${index + 1}`] = new Array;\n array[`group${index + 1}`] = array[`group${index}`];\n array[`group${index}`] = new Array;\n array[`group${index}`] = element1;\n } else {\n // //console.log('hillll', index, selectedIndex, element1, array[`group${index}`])\n const updateElement1 = array[`group${index}`];\n if (!element1[0].hasOwnProperty(\"isSaufGroup\")) {\n for (let b = 0; b < updateElement1.length; b++) {\n delete updateElement1[b]['isSaufGroup']\n // //console.log('updateElement1', updateElement1[b])\n }\n }\n array[`group${index}`] = new Array;\n array[`group${index}`] = updateElement1;\n this.requestService.addRequestCharacter(array, this.reqActive, this.selectedCharacterNumber);\n index = -1;\n break;\n }\n } else {\n // for (let j = 0; j < array[key].length; j++) {\n // if (selectOptions[i].getAttribute('aria-selected') === 'true') {\n // let div = selectOptions[i].getAttribute('id');\n // document.getElementById(div).click();\n // }\n // }\n\n\n for (let i = 0; i < selectOptions.length; i++) {\n if (selectOptions[i].getAttribute('aria-selected') === 'true') {\n selectedId = selectOptions[i].getAttribute('id');\n }\n }\n setTimeout(() => {\n for (let i = 0; i < selectOptions.length; i++) {\n if (selectOptions[i].getAttribute('aria-selected') === 'true') {\n let div = selectOptions[i].getAttribute('id');\n if (selectedId !== div) {\n document.getElementById(div).click()\n // selectOptions[i].setAttribute('aria-selected', 'false');\n }\n }\n }\n }, 0)\n\n\n const updateElement1 = array[`group${index}`];\n for (let b = 0; b < updateElement1.length; b++) {\n delete updateElement1[b]['isSaufGroup']\n // //console.log('updateElement111', updateElement1[b])\n }\n this.requestService.addRequestCharacter(array, this.reqActive, this.selectedCharacterNumber);\n // return;\n }\n }\n } else {\n const checkElement = array[`group${Number(key.replace('group', '')) + 2}`];\n currentElement = array[`group${Number(key.replace('group', '')) + 1}`];\n\n const updateElement1 = array[`group${selectedIndex}`];\n if (typeof (checkElement) !== 'undefined') {\n if (!checkElement[0].hasOwnProperty(\"isSaufGroup\")) {\n for (let b = 0; b < updateElement1.length; b++) {\n delete updateElement1[b]['isSaufGroup']\n // //console.log('updateElement1', updateElement1[b])\n }\n }\n } else {\n for (let b = 0; b < updateElement1.length; b++) {\n delete updateElement1[b]['isSaufGroup']\n // //console.log('updateElement1', updateElement1[b])\n }\n }\n\n array[`group${Number(key.replace('group', '')) + 1}`] = new Array;\n array[`group${Number(key.replace('group', '')) + 1}`] = array[`group${selectedIndex}`];\n array[key] = new Array;\n array[key] = currentElement;\n // //console.log('arrangedArraysss', key, array, selectedIndex);\n this.requestService.addRequestCharacter(array, this.reqActive, this.selectedCharacterNumber);\n\n // if (Number(key.replace('group', '')) === 0) {\n // for (let j = 0; j < array[key].length; j++) {\n // if (selectOptions[i].getAttribute('aria-selected') === 'true') {\n // let div = selectOptions[i].getAttribute('id');\n // document.getElementById(div).click();\n // }\n // }\n // }\n\n break;\n }\n }\n }\n } else {\n if (array[`group${Number(key.replace('group', '')) + 1}`]) {\n // //console.log('arrangedArray2', arrangedArray, selectedIndex);\n if (arrayInd === selectedIndex) {\n if (array[`group${selectedIndex}`][0].group || array[`group${selectedIndex}`][array[`group${selectedIndex}`].length - 1].sauf) {\n this.toastyService.warning(this.utilService.getTranslateName(`ERROR.MOVE_BLOCK`));\n // //console.log(\"array[key][0]hasown\", array[key][0])\n // for (let j = 0; j < array[key].length; j++) {\n // if (selectOptions[i].getAttribute('aria-selected') === 'true') {\n // let div = selectOptions[i].getAttribute('id');\n // document.getElementById(div).click();\n // }\n // }\n } else {\n // //console.log(\"array[key][0]\", key, array[`group${selectedIndex}`].length, array[key])\n if (array[`group${Number(key.replace('group', '')) + 1}`][0].group && array[`group${selectedIndex}`][0].group) {\n currentElement = array[`group${Number(key.replace('group', '')) + 1}`];\n array[`group${Number(key.replace('group', '')) + 1}`] = new Array;\n array[`group${Number(key.replace('group', '')) + 1}`] = array[`group${selectedIndex}`];\n array[key] = new Array;\n array[key] = currentElement;\n // //console.log('arrangedArrayfff', array, selectedIndex);\n this.requestService.addRequestCharacter(array, this.reqActive, this.selectedCharacterNumber);\n break;\n } else {\n for (let j = 0; j < array[key].length; j++) {\n if (selectOptions[i].getAttribute('aria-selected') === 'true') {\n let div = selectOptions[i].getAttribute('id');\n document.getElementById(div).click();\n }\n }\n\n }\n }\n }\n }\n }\n arrayInd += 1;\n }\n\n if (arrayInd - 1 === selectedIndex) {\n // for (let j = 0; j < array[`group${selectedIndex}`].length; j++) {\n // if (selectOptions[selectedIndex].getAttribute('aria-selected') === 'true') {\n // let div = selectOptions[selectedIndex].getAttribute('id');\n // document.getElementById(div).click();\n // }\n // }\n for (let i = 0; i < selectOptions.length; i++) {\n if (selectOptions[i].getAttribute('aria-selected') === 'true') {\n let div = selectOptions[i].getAttribute('id');\n document.getElementById(div).click()\n }\n }\n }\n let indx;\n setTimeout(() => {\n let selectedIndex = this.selectedIndexForMove.split('');\n selectedIndex[1] = parseInt(selectedIndex[1]) + 1 < Object.keys(array).length ? parseInt(selectedIndex[1]) + 1 : Object.keys(array).length - 1;\n this.selectedIndexForMove = selectedIndex.join('');\n this.selectedId = 'character_data_' + selectedIndex.join('');\n for (let i = 0; i < selectOptions.length; i++) {\n if (selectOptions[i].getAttribute('aria-selected') === 'true') {\n let div = selectOptions[i].getAttribute('id');\n if (div !== this.selectedId && selectOptions[i].getAttribute('aria-selected') === 'true') {\n // selectOptions[i].setAttribute('aria-selected', 'false');\n document.getElementById(div).click();\n }\n }\n }\n this.selectedId = undefined;\n }, 0);\n }\n }\n\n // moveDownConditionBlock(id) {\n // document.getElementById(id).scrollBy(0, 10);\n // var selectList = document.getElementById('characterList_' + this.selectedCharacterNumber);\n // var selectOptions = selectList.getElementsByTagName('mat-list-option');\n // let array = this.characterList['characterListType' + this.selectedCharacterNumber];\n // for (var i = array.length - 1; i >= 0; i--) {\n // if (i < array.length - 1) {\n // if (selectOptions[i].getAttribute('aria-selected') === 'true') {\n // let old_value = array.splice(i, 1)[0];\n // array.splice(i + 1, 0, old_value);\n // }\n // } else if (i === array.length - 1 && selectOptions[i].getAttribute('aria-selected') === 'true') {\n // let old_value = array.splice(i, 1)[0];\n // array.splice(i, 0, old_value);\n // let div = selectOptions[i].getAttribute('id');\n // document.getElementById(div).click();\n // }\n // }\n // setTimeout(() => {\n // this.deSelectSelectedOptions(-1);\n // }, 0);\n // this.requestService.addRequestCharacter(array, this.reqActive, this.selectedCharacterNumber);\n // }\n\n displayGrouping() {\n if (this.selectedItemType === 1) {\n this.displayGroupingForm = true;\n }\n return this.displayGroupingForm;\n }\n\n updateSomme(event) {\n const criteriaFilterVal = this.criteriaListOringinal.filter(a => a.longLabel.split(this.splitChar, 2).length > 1 ? a.longLabel.split(this.splitChar, 2)[this.getLangIndex(this.lang)] === this.selectedGroupItemValue : a.longLabel === this.selectedGroupItemValue)[0];\n if (!event.blnCancel) {\n if (this.groupSection) {\n if (!this.blnMoveRight) {\n this.groupList[this.groupingEditIndex].name = this.selectedGroupItemValue + `${event.value ? `[${this.utilService.getTranslateName('COMMON.SUM')}]` : ''}`;\n this.requestService.addRequestReGroupment(this.groupList, this.reqActive)\n } else {\n this.groupList.push({ \"name\": this.selectedGroupItemValue, \"type\": this.selectedItemType, 'GCOName': criteriaFilterVal.GCOName, \"size\": criteriaFilterVal.size });\n this.requestService.addRequestReGroupment(this.groupList, this.reqActive)\n }\n } else if (this.vueSection) {\n if (!this.blnMoveRight) {\n this.vueList[this.vueEditIndex].name = this.selectedGroupItemValue + `${event.value ? `[${this.utilService.getTranslateName('COMMON.SUM')}]` : ''}`;\n this.requestService.addRequestVue(this.vueList, this.reqActive)\n } else {\n this.vueList.push({ \"name\": this.selectedGroupItemValue, \"type\": this.selectedItemType, 'GCOName': criteriaFilterVal.GCOName, \"size\": criteriaFilterVal.size, \"visible\": true });\n this.requestService.addRequestVue(this.vueList, this.reqActive)\n }\n }\n }\n this.selectedItemType = undefined;\n this.selectedItemValue = undefined;\n this.selectedGroupItemValue = undefined;\n this.blnMoveRight = false;\n this.groupingEditValue = undefined;\n this.vueEditValue = undefined;\n this.selectedGroupItemIndex = undefined;\n }\n\n checkPopulationEmpty() {\n this.isCheckPopulationEmpty = true;\n // this.isExecute = false;\n if (!this.isAllowAllHisData) {\n for (let elem of this.dataList) {\n if (elem.name === this.selectedTable) {\n for (const items of elem.fields) {\n const selOption = items.selectedOption;\n if (selOption === 'ALL' || selOption === 'TOUS'\n || selOption === '' || typeof (selOption) === 'undefined'\n || selOption === 'ALL HISTORIC DATA'\n || selOption === `TOUT L'HISTORIQUE`\n || selOption === 'All' || selOption === 'Tous'\n || selOption === '' || typeof (selOption) === 'undefined'\n || selOption === 'All Historic Data'\n || selOption === `Tout l'historique`) {\n this.isCheckPopulationEmpty = false;\n } else {\n this.isCheckPopulationEmpty = true;\n break;\n }\n }\n }\n }\n }\n }\n\n executeGetEvent(event) {\n this.getResultInput['getEvent'] = event;\n }\n\n currentResultPage(event) {\n this.getResultInput['currentPage'] = event;\n }\n\n emitSecondPageData(event) {\n this.getResultInput['secondPageData'] = event;\n }\n\n clickExport() {\n const dialogRef = this.dialog.open(ExportFileComponent, {\n disableClose: true,\n width: '600px',\n data: { 'table': this.selectedTable, 'tcm': this.tcm, queryName: this.queryName, 'getResultInput': this.getResultInput, 'executeQuery': this.executeQuery, 'ipn': this.ipn, 'region': this.region, 'totalRowsLength': this.rtnTotalRowsLength, 'resultColumns': this.rtnRsultColumns }\n });\n\n dialogRef.afterClosed().subscribe(result => {\n if (result) {\n } else {\n }\n });\n }\n\n execute(event) {\n if (this.isVueDisable) {\n if (this.groupList.length < 2) {\n // this.toastyService.warning(this.utilService.getTranslateName(`ERROR.TTB_GROUPBY_MIN_LIST_LENGTH`));\n this.alertErrorMsg(this.utilService.getTranslateName(`ERROR.TTB_GROUPBY_MIN_LIST_LENGTH`))\n return;\n }\n }\n this.executeBtn = true;\n event.stopPropagation();\n this.checkPopulationEmpty();\n if (!this.isCheckPopulationEmpty) {\n this.toastyService.warning(this.utilService.getTranslateName(`ERROR.POPULATION_RIGHTS`));\n return;\n }\n let isDateFieldFound = true;\n let isVolumeFieldFound = true;\n let allowExecute = true;\n isDateFieldFound = this.groupList.some(el => el.type === 3);\n isVolumeFieldFound = this.groupList.some(el => el.type === 5);\n if (this.region === \"Europe\") {\n if (this.profile['roles'].indexOf('PIL_TOUTES_POP') > -1 && this.getFavoriteRegion() === 'PIL') {\n allowExecute = true;\n }\n } else {\n if (this.profile['roles'].indexOf('PIM_TOUTES_POP') > -1 && this.getFavoriteRegion() === 'PIM') {\n allowExecute = true;\n }\n }\n if (this.selectedTable.toLowerCase() === 'carnets') {\n if (!isDateFieldFound) {\n // return this.toastyService.warning(this.utilService.getTranslateName(`ERROR.DATE_FIELD_MISSING`));\n this.toastyService.warning(this.utilService.getTranslateName(`ERROR.DATE_FIELD_MISSING`));\n }\n if (!isVolumeFieldFound) {\n // return this.toastyService.warning(this.utilService.getTranslateName(`ERROR.VOLUME_FIELD_MISSING`));\n this.toastyService.warning(this.utilService.getTranslateName(`ERROR.VOLUME_FIELD_MISSING`));\n }\n if (!isDateFieldFound && !isVolumeFieldFound) {\n // return this.toastyService.warning(this.utilService.getTranslateName(`ERROR.DATE_AND_VOLUME_MISSING`));\n this.toastyService.warning(this.utilService.getTranslateName(`ERROR.DATE_AND_VOLUME_MISSING`));\n }\n if (isDateFieldFound && isVolumeFieldFound) {\n this.isExecute = true;\n this.disableExecuteSection = true;\n this.detailCharacterList = JSON.parse(JSON.stringify(this.characterList));\n this.detailGroupList = JSON.parse(JSON.stringify(this.groupList));\n this.detailVueList = JSON.parse(JSON.stringify(this.vueList));\n this.executeQuery = `${this.generateCommonFirstExecute()}${this.generateConditionExecute()}${this.generateGroupExecute('group')}${this.generateCommonLastExecute()}`;\n this.detailExecute = `${this.generateGroupExecute('vue')}`;\n }\n }\n data.forEach(item => {\n if (item.name === this.selectedTable) {\n item.fields.forEach(fields => {\n if (fields.field_name === \"TCM\") {\n this.tcm = fields.selectedOption;\n }\n });\n }\n });\n if ((this.selectedTable.toLowerCase() === 'pdfv' || this.selectedTable.toLowerCase() === 'pdft') && allowExecute) {\n // if (!isVolumeFieldFound) {\n // // return this.toastyService.warning(this.utilService.getTranslateName(`ERROR.VOLUME_FIELD_MSG`));\n // this.toastyService.warning(this.utilService.getTranslateName(`ERROR.VOLUME_FIELD_MSG`));\n // }\n // if (isVolumeFieldFound) {\n this.isExecute = true;\n this.disableExecuteSection = true;\n this.detailCharacterList = JSON.parse(JSON.stringify(this.characterList));\n this.detailGroupList = JSON.parse(JSON.stringify(this.groupList));\n this.detailVueList = JSON.parse(JSON.stringify(this.vueList));\n this.executeQuery = `${this.generateCommonFirstExecute()}${this.generateConditionExecute()}${this.generateGroupExecute('group')}${this.generateCommonLastExecute()}`;\n this.detailExecute = `${this.generateGroupExecute('vue')}`;\n // }\n } else {\n this.isExecute = true;\n this.disableExecuteSection = true;\n this.detailCharacterList = JSON.parse(JSON.stringify(this.characterList));\n this.detailGroupList = JSON.parse(JSON.stringify(this.groupList));\n this.detailVueList = JSON.parse(JSON.stringify(this.vueList));\n this.executeQuery = `${this.generateCommonFirstExecute()}${this.generateConditionExecute()}${this.generateGroupExecute('group')}${this.generateCommonLastExecute()}`;\n this.detailExecute = `${this.generateGroupExecute('vue')}`;\n }\n\n this.executePreviewData = {\n table: this.selectedTable,\n population: this.populationList,\n characterList: this.characterList,\n group: this.groupList,\n vue: this.vueList\n }\n this.matomoTracker.trackEvent(\"Query\", `Execute ${this.region} - ${this.selectedTable} query`, this.profile['login']);\n }\n\n generateCommonFirstExecute() {\n let rtnValue: string;\n rtnValue = `${this.generatePopulationExecute()}`;\n rtnValue += \"\\n\";\n rtnValue += `TPO@${this.ipn}@${this.selectedTable}@@${this.ipn}.EXP@`;\n return rtnValue;\n }\n\n generateRoleBasedBracket(popData) {\n // let actualArr, arrCount;\n // if (this.roleBasedQuery !== '') {\n // let splitCount = this.roleBasedQuery.split('@');\n // let counting = splitCount.slice(0, 8);\n // actualArr = splitCount.slice(8);\n // let emptySelectedOptionArr = [...actualArr];\n // arrCount = parseInt(counting[1]);\n // for (let i = 0; i < arrCount; i++) {\n // for (const item of popData.fields) {\n // if (emptySelectedOptionArr[4] === (item.GCOName + '_' + item.GCOType)) {\n // item['isRole'] = true;\n // }\n // }\n // emptySelectedOptionArr = emptySelectedOptionArr.slice(10);\n // }\n // }\n // let data = {\n // 'actualArr': actualArr,\n // 'count': arrCount,\n // 'popData': popData\n // }\n // return data;\n\n let actualArr, arrCount;\n if (this.roleBasedQuery !== '') {\n let splitCount = this.roleBasedQuery.split('@');\n let counting = splitCount.slice(0, 4);\n actualArr = splitCount.slice(4);\n let emptySelectedOptionArr = [...actualArr];\n arrCount = parseInt(counting[1]);\n for (let i = 0; i < arrCount; i++) {\n if (emptySelectedOptionArr[2] !== \"0\") {\n const innerArrCount = emptySelectedOptionArr[2];\n emptySelectedOptionArr = emptySelectedOptionArr.slice(4);\n for (let j = 0; j < innerArrCount; j++) {\n for (const item of popData.fields) {\n if (emptySelectedOptionArr[4] === (item.GCOName + '_' + item.GCOType)) {\n item['isRole'] = true;\n }\n }\n emptySelectedOptionArr = emptySelectedOptionArr.slice(6);\n }\n // emptySelectedOptionArr = emptySelectedOptionArr.slice(10);\n } else {\n const innerArrCount = emptySelectedOptionArr[3];\n emptySelectedOptionArr = emptySelectedOptionArr.slice(4);\n for (let j = 0; j < innerArrCount; j++) {\n for (const item of popData.fields) {\n if (emptySelectedOptionArr[2] === (item.GCOName + '_' + item.GCOType)) {\n item['isRole'] = true;\n }\n }\n const intCount = Number(emptySelectedOptionArr[4]);\n emptySelectedOptionArr = emptySelectedOptionArr.slice(5 + (intCount * 3));\n }\n }\n }\n }\n let data = {\n 'actualArr': actualArr,\n 'count': arrCount,\n 'popData': popData\n }\n return data;\n }\n\n generatePopulationExecute() {\n let popData = this.dataList.filter(a => a.name === this.selectedTable)[0];\n popData = this.generateRoleBasedBracket(popData).popData;\n let date, count = 0;\n let string = `@(@(@(@(@(`;\n let index = 0;\n let rtnValue = `TEMP@${this.ipn}@${this.selectedTable}@${this.ipn}.EXP@${this.ipn}@${this.selectedTable}@${this.ipn}.EXP@`;\n for (const item of popData.fields) {\n if (item.selectedOption !== undefined && item.selectedOption !== '' && item.selectedOption.toLowerCase() !== this.utilService.getTranslateName(`COMMON.ALL`).toLowerCase() && item.field_name !== 'TCM' && item.field_name !== 'DLC') {\n index = index + 1;\n if (item.GCOType !== '1') {\n string += `@(@${index - 1}@)@E`\n } else {\n string += `@(@(@${index - 1}@)@)@E`\n }\n }\n }\n if (string.charAt(string.length - 1) === 'E') {\n string = string.slice(0, -2);\n }\n if (popData.name === 'BCV' || popData.name === 'CDE' || popData.name === 'VEH') {\n for (const item of popData.fields) {\n if (item.field_name === 'TCM' || item.field_name === 'DLC') {\n if (item.selectedOption) {\n if (item.selectedOption.indexOf('3') > -1) {\n date = moment.default().subtract(3, 'months');\n date = moment.default(date).format('DD/MM/YYYY')\n } else if (item.selectedOption.indexOf('6') > -1) {\n date = moment.default().subtract(6, 'months');\n date = moment.default(date).format('DD/MM/YYYY')\n } else if (item.selectedOption.indexOf('12') > -1) {\n date = moment.default().subtract(12, 'months');\n date = moment.default(date).format('DD/MM/YYYY')\n } else {\n date = undefined;\n }\n if (date !== undefined && index === 0) {\n if (item.selectedOption && (item.selectedOption.includes('3') || item.selectedOption.includes('6') || item.selectedOption.includes('12'))) {\n index = index + 1;\n string += `@(@(@${index - 1}@)@)@)@)@O@(@(@(@(@${(index + 1) - 1}@)@E@(@${(index + 2) - 1}@)@)@)@)@)@)@)`;\n index = index + 2;\n }\n } else if (date !== undefined && index !== 0) {\n index = index + 1;\n string += `@)@)@)@)@E@(@(@(@(@(@(@${index - 1}@)@)@)@)@O@(@(@(@(@${(index + 1) - 1}@)@E@(@${(index + 2) - 1}@)@)@)@)@)@)@)`;\n index = index + 2;\n } else if (date === undefined) {\n string += `@)@)@)@)@)`;\n }\n }\n }\n }\n } else {\n string += `@)@)@)@)@)`;\n }\n let actualArr = this.generateRoleBasedBracket(popData).actualArr;\n let arrCount = this.generateRoleBasedBracket(popData).count;\n if (actualArr !== undefined) {\n let emptySelectedOptionArr = [...this.generateRoleBasedBracket(popData).actualArr];\n if (index === 0) {\n string = `@(@)${this.roleBasedExecuteBracketsCount(emptySelectedOptionArr, arrCount, index)}`\n } else {\n string += this.roleBasedExecuteBracketsCount(emptySelectedOptionArr, arrCount, index);\n }\n }\n let atCount = string.match(/@/gi).length;\n rtnValue += `${atCount}${string}`;\n string = '';\n for (let item of popData.fields) {\n if (item.selectedOption !== undefined && item.selectedOption !== '' && item.selectedOption.toLowerCase() !== this.utilService.getTranslateName(`COMMON.ALL`).toLowerCase() &&\n item.selectedOption.toLowerCase() !== this.utilService.getTranslateName(`NEW_QUERY.ALLDATA`).toLowerCase()) {\n const affichDataType = item.GCOType === '1' ? \"2\" : item.GCOType === '3' ? '3' : '1';\n if (affichDataType === '1') {\n count = count + 1;\n if (string === '') {\n string += `@`;\n }\n string += `${affichDataType}@1@1@${item.GCOName}@0@E@0@${item.selectedOption}@0@`;\n } else if (affichDataType === '2') {\n count = count + 1;\n if (string === '') {\n string += `@`;\n }\n string += `${affichDataType}@0@1@${item.GCOName}@0@?@0@${item.selectedOption}@0@`;\n } else if (affichDataType === '3') {\n if (string === '') {\n string += `@`;\n }\n count = count + 1;\n string += `${affichDataType}@1@1@${item.GCOName}@0@s@0@${date}@0@`;\n if (item.field_name === 'TCM') {\n count = count + 1;\n string += `3@0@1@D_Tcm@0@s@0@0@0@`;\n count = count + 1;\n string += `3@0@1@D_Tcm@0@i@0@0@0@`;\n } else if (item.field_name === 'DLC') {\n count = count + 1;\n string += `3@0@1@D_LivClt@0@s@0@0@0@`;\n count = count + 1;\n string += `3@0@1@D_LivClt@0@i@0@0@0@`;\n }\n }\n }\n }\n if (actualArr !== undefined) {\n let emptySelectedOptionArr = [...actualArr];\n if (string === '') {\n string += `@`\n }\n string += `${this.getRoleBasedValues(emptySelectedOptionArr, arrCount, popData.fields, count).string}`;\n count = this.getRoleBasedValues(emptySelectedOptionArr, arrCount, popData.fields, count).count;\n }\n if (string !== '') {\n rtnValue += `@${count}${string}`;\n // rtnValue = `TEMP@${this.ipn}@${this.selectedTable}@${this.ipn}.EXP@${this.ipn}@${this.selectedTable}@${this.ipn}.EXP@2@(@)@0@`;\n } else {\n if (this.roleBasedQuery === '') {\n rtnValue = `TEMP@${this.ipn}@${this.selectedTable}@${this.ipn}.EXP@${this.ipn}@${this.selectedTable}@${this.ipn}.EXP@2@(@)@0@`;\n }\n }\n return rtnValue;\n }\n getTypeForPop(arr) {\n let type;\n if (arr[0] === '2' || arr[0] === '6') {\n type = 1;\n } else if (arr[0] === '4') {\n type = 6;\n } else if (arr[0] === '3') {\n type = 3;\n } else if (arr[0] === '1') {\n type = 2;\n } else if (arr[0] === '99') {\n type = 5;\n } else {\n type = 4;\n }\n return type;\n }\n\n getRoleBasedValues(arr, count, actualArr, noCount) {\n let type, string = '';\n let totalInnerArrCount = 0;\n for (let i = 0; i < count; i++) {\n if (arr[2] !== \"0\") {\n const innerArrCount = Number(arr[2]) + Number(arr[3]);\n totalInnerArrCount = totalInnerArrCount + Number(arr[2]);\n arr = arr.slice(4);\n for (let j = 0; j < innerArrCount; j++) {\n if (j === 0) {\n const gcoName = arr[4];\n let isFound = actualArr.some(obj => (obj.GCOName + '_' + obj.GCOType) === arr[4]);\n type = this.getTypeForPop(arr);\n if (isFound) {\n for (const item of actualArr) {\n if (item['isRole'] !== undefined && item['isRole'] && item['GCOName'] + '_' + item['GCOType'] === gcoName) {\n noCount = noCount + 1;\n if (arr[0] === '1') {\n string += `${arr[0]}@1@1@${item.GCOName}@0@E@${arr[2].split(\"/\").length - 1}@${arr[2]}@0@`;\n } else if (arr[0] === '2') {\n arr[2] += `/`;\n string += `${type}@3@1@${item.GCOName}@0@?@${arr[2].split(\"/\").length - 1}@${arr[2]}@0@`;\n }\n }\n }\n } else {\n let replacableTxt = '_' + arr[5];\n let gcoName = arr[4].replace(replacableTxt, '');\n noCount = noCount + 1;\n if (arr[0] === '1') {\n string += `${arr[0]}@1@1@${gcoName}@0@E@${arr[2].split(\"/\").length - 1}@${arr[2]}@0@`;\n } else if (arr[0] === '2') {\n arr[2] += `/`;\n string += `${type}@3@1@${gcoName}@0@?@${arr[2].split(\"/\").length - 1}@${arr[2]}@0@`;\n }\n }\n arr = arr.slice(6);\n } else {\n if (isNaN(arr[4])) {\n const gcoName = arr[4];\n let isFound = actualArr.some(obj => (obj.GCOName + '_' + obj.GCOType) === arr[4]);\n type = this.getTypeForPop(arr);\n if (isFound) {\n for (const item of actualArr) {\n if (item['isRole'] !== undefined && item['isRole'] && item['GCOName'] + '_' + item['GCOType'] === gcoName) {\n noCount = noCount + 1;\n if (arr[0] === '1') {\n string += `${arr[0]}@1@1@${item.GCOName}@0@E@${arr[2].split(\"/\").length - 1}@${arr[2]}@0@`;\n } else if (arr[0] === '2') {\n arr[2] += `/`;\n string += `${type}@3@1@${item.GCOName}@0@?@${arr[2].split(\"/\").length - 1}@${arr[2]}@0@`;\n }\n }\n }\n } else {\n let replacableTxt = '_' + arr[5];\n let gcoName = arr[4].replace(replacableTxt, '');\n noCount = noCount + 1;\n if (arr[0] === '1') {\n string += `${arr[0]}@1@1@${gcoName}@0@E@${arr[2].split(\"/\").length - 1}@${arr[2]}@0@`;\n } else if (arr[0] === '2') {\n arr[2] += `/`;\n string += `${type}@3@1@${gcoName}@0@?@${arr[2].split(\"/\").length - 1}@${arr[2]}@0@`;\n }\n }\n arr = arr.slice(6);\n } else {\n\n\n let isFound = actualArr.some(obj => (obj.GCOName + '_' + obj.GCOType) === arr[2]);\n const gcoName = arr[2];\n const intCount = Number(arr[4]);\n totalInnerArrCount = totalInnerArrCount + Number(arr[4]);\n type = this.getTypeForPop(arr);\n const arrType = arr[0];\n if (isFound) {\n arr = arr.slice(5);\n for (const item of actualArr) {\n if (item['isRole'] !== undefined && item['isRole'] && item['GCOName'] + '_' + item['GCOType'] === gcoName) {\n for (let k = 0; k < intCount; k++) {\n noCount = noCount + 1;\n if (arrType === '1') {\n string += `${arrType}@0@1@${item.GCOName}@0@E@0@${arr[2]}@0@`;\n } else if (arrType === '2') {\n string += `${arrType}@0@1@${item.GCOName}@0@?@0@${arr[2]}@0@`;\n }\n arr = arr.slice(3);\n }\n }\n }\n } else {\n let replacableTxt = '_' + arr[3];\n let gcoName = arr[2].replace(replacableTxt, '');\n arr = arr.slice(5);\n for (let k = 0; k < intCount; k++) {\n noCount = noCount + 1;\n if (arrType === '1') {\n string += `${arrType}@0@1@${gcoName}@0@E@0@${arr[2]}@0@`;\n } else if (arrType === '2') {\n string += `${arrType}@0@1@${gcoName}@0@?@0@${arr[2]}@0@`;\n }\n arr = arr.slice(3);\n }\n }\n\n\n }\n }\n }\n // arr = arr.slice(10);\n } else {\n const innerArrCount = arr[3];\n arr = arr.slice(4);\n for (let j = 0; j < innerArrCount; j++) {\n let isFound = actualArr.some(obj => (obj.GCOName + '_' + obj.GCOType) === arr[2]);\n const gcoName = arr[2];\n const intCount = Number(arr[4]);\n totalInnerArrCount = totalInnerArrCount + Number(arr[4]);\n type = this.getTypeForPop(arr);\n const arrType = arr[0];\n if (isFound) {\n arr = arr.slice(5);\n for (const item of actualArr) {\n if (item['isRole'] !== undefined && item['isRole'] && item['GCOName'] + '_' + item['GCOType'] === gcoName) {\n for (let k = 0; k < intCount; k++) {\n noCount = noCount + 1;\n if (arrType === '1') {\n string += `${arrType}@0@1@${item.GCOName}@0@E@0@${arr[2]}@0@`;\n } else if (arrType === '2') {\n string += `${arrType}@0@1@${item.GCOName}@0@?@0@${arr[2]}@0@`;\n }\n arr = arr.slice(3);\n }\n }\n }\n } else {\n let replacableTxt = '_' + arr[3];\n let gcoName = arr[2].replace(replacableTxt, '');\n arr = arr.slice(5);\n for (let k = 0; k < intCount; k++) {\n noCount = noCount + 1;\n if (arrType === '1') {\n string += `${arrType}@0@1@${gcoName}@0@E@0@${arr[2]}@0@`;\n } else if (arrType === '2') {\n string += `${arrType}@0@1@${gcoName}@0@?@0@${arr[2]}@0@`;\n }\n arr = arr.slice(3);\n }\n }\n }\n }\n }\n let data = {\n 'string': string,\n // 'count': totalInnerArrCount\n 'count': noCount\n }\n return data;\n }\n\n roleBasedExecuteBracketsCount(roleArr, count, index) {\n // let type;\n // type = this.getTypeForPop(roleArr);\n // let string = `@E@(@(`;\n // for (let i = 0; i < count; i++) {\n // string += `@(@(@(`;\n // index = index + 1;\n // if (type !== '1') {\n // string += `@(@${index - 1}@)@)@)@)@O`\n // } else {\n // string += `@(@(@${index - 1}@)@)@)@)@)@O`\n // }\n // roleArr = roleArr.slice(10);\n // }\n // if (string.charAt(string.length - 1) === 'O') {\n // string = string.slice(0, -2);\n // }\n // string += `@)@)`;\n // return string;\n\n let type;\n let string = `@E@(@(`;\n // index = 0;\n let isSauf = 'T';\n for (let i = 0; i < count; i++) {\n if (roleArr[2] !== \"0\") {\n const innerArrCount = Number(roleArr[2]) + Number(roleArr[3]);\n if (isSauf === 'T') {\n isSauf = roleArr[1];\n }\n if (roleArr[1] === \"S\") {\n if (string.charAt(string.length - 1) === 'O') {\n if (type !== 1) {\n string = string.slice(0, -4);\n string += `@E@(@N@(`;\n } else {\n string = string.slice(0, -4);\n string += `@E@(@N@(`;\n }\n }\n } else {\n string += `@(@(@(`;\n }\n roleArr = roleArr.slice(4);\n for (let j = 0; j < innerArrCount; j++) {\n type = this.getTypeForPop(roleArr);\n if (j === 0) {\n index = index + 1;\n if (type !== 1) {\n if (j < innerArrCount - 1) {\n string += `@(@${index - 1}@)@E`;\n } else {\n string += `@(@${index - 1}@)@)@)@)@O`;\n }\n } else {\n if (j < innerArrCount - 1) {\n string += `@(@${index - 1}@)@E`;\n } else {\n string += `@(@${index - 1}@)@)@)@)@O`;\n }\n }\n roleArr = roleArr.slice(6);\n } else {\n if (isNaN(roleArr[4])) {\n index = index + 1;\n if (type !== 1) {\n if (j < innerArrCount - 1) {\n string += `@(@${index - 1}@)@E`;\n } else {\n string += `@(@${index - 1}@)@)@)@)@O`;\n }\n } else {\n if (j < innerArrCount - 1) {\n string += `@(@${index - 1}@)@E`;\n } else {\n string += `@(@${index - 1}@)@)@)@)@O`;\n }\n }\n roleArr = roleArr.slice(6);\n } else {\n\n const intCount = roleArr[4];\n roleArr = roleArr.slice(5);\n // string += `@(`;\n for (let k = 0; k < intCount; k++) {\n index = index + 1;\n if (isSauf !== \"S\") {\n if (k === intCount - 1 && j !== innerArrCount - 1) {\n string += `@(@${index - 1}@)@)@E`;\n } else {\n string += `@(@${index - 1}@)@O`;\n }\n } else {\n if (k === intCount - 1 && j !== innerArrCount - 1) {\n string += `@(@${index - 1}@)@)@E`;\n } else {\n if (k === 0 && j !== 0) {\n string += `@(@(@${index - 1}@)@O`;\n } else {\n string += `@(@${index - 1}@)@O`;\n }\n }\n }\n roleArr = roleArr.slice(3);\n }\n if (j === innerArrCount - 1) {\n if (string.charAt(string.length - 1) === 'O') {\n string = string.slice(0, -2);\n }\n string += `@)@)@)@)@O`;\n }\n\n\n }\n }\n }\n // roleArr = roleArr.slice(10);\n } else {\n const innerArrCount = roleArr[3];\n if (isSauf === 'T') {\n isSauf = roleArr[1];\n }\n if (roleArr[1] === \"S\") {\n if (string.charAt(string.length - 1) === 'O') {\n if (type !== 1) {\n string = string.slice(0, -4);\n string += `@E@(@N@(@(`;\n } else {\n string = string.slice(0, -4);\n string += `@E@(@N@(@(`;\n }\n }\n } else {\n if (type !== 1) {\n string += `@(@(@(@(`;\n } else {\n string += `@(@(@(@(`;\n }\n }\n roleArr = roleArr.slice(4);\n for (let j = 0; j < innerArrCount; j++) {\n type = this.getTypeForPop(roleArr);\n const intCount = roleArr[4];\n roleArr = roleArr.slice(5);\n // string += `@(`;\n for (let k = 0; k < intCount; k++) {\n index = index + 1;\n if (isSauf !== \"S\") {\n if (k === intCount - 1 && j !== innerArrCount - 1) {\n string += `@(@(@${index - 1}@)@)@E`;\n } else {\n // string += `@(@${index - 1}@)@O`;\n if (k === 0 && j !== 0) {\n string += `@(@(@${index - 1}@)@O`;\n } else {\n string += `@(@${index - 1}@)@O`;\n }\n }\n } else {\n if (k === intCount - 1 && j !== innerArrCount - 1) {\n string += `@(@${index - 1}@)@)@E`;\n } else {\n if (k === 0 && j !== 0) {\n string += `@(@(@${index - 1}@)@O`;\n } else {\n string += `@(@${index - 1}@)@O`;\n }\n }\n }\n roleArr = roleArr.slice(3);\n }\n if (j === innerArrCount - 1) {\n if (string.charAt(string.length - 1) === 'O') {\n string = string.slice(0, -2);\n }\n string += `@)@)@)@)@O`;\n }\n }\n }\n }\n if (string.charAt(string.length - 1) === 'O') {\n string = string.slice(0, -2);\n }\n string += `@)@)`;\n return string;\n }\n\n getConditionBlock() {\n let rtnValue = '@(', index = 0, count;\n // string += `@(`\n //console.log(\"sri\",this.characterList.characterListType1.group0)\n if (this.characterList.characterListType1.group0.length !== 0) {\n let result = this.getConditionStringData(this.characterList.characterListType1, index);\n rtnValue += `${result.val}`;\n index = result.idx;\n }\n if (this.characterList.characterListType2.group0.length !== 0) {\n let result = this.getConditionStringData(this.characterList.characterListType2, index);\n rtnValue += `${result.val}`;\n index = result.idx\n }\n if (this.characterList.characterListType3.group0.length !== 0) {\n let result = this.getConditionStringData(this.characterList.characterListType3, index);\n index = result.idx\n rtnValue += `${result.val}`;\n }\n if (rtnValue.charAt(rtnValue.length - 1) === 'E') {\n rtnValue = rtnValue.slice(0, -2);\n }\n if (this.characterList.characterListType1.group0.length === 0 && this.characterList.characterListType2.group0.length === 0 &&\n this.characterList.characterListType3.group0.length === 0 && this.roleBasedQuery === '') {\n rtnValue = `@(@)`;\n } else {\n rtnValue += '@)';\n }\n let popData = this.dataList.filter(a => a.name === this.selectedTable)[0];\n let actualArr = this.generateRoleBasedBracket(popData).actualArr;\n let arrCount = this.generateRoleBasedBracket(popData).count;\n popData = this.generateRoleBasedBracket(popData).popData;\n if (actualArr !== undefined) {\n let emptySelectedOptionArr = [...this.generateRoleBasedBracket(popData).actualArr];\n if (this.characterList.characterListType1.group0.length === 0 && this.characterList.characterListType2.group0.length === 0 &&\n this.characterList.characterListType3.group0.length === 0 && this.roleBasedQuery !== '') {\n rtnValue = `@(@)${this.roleBasedExecuteBracketsCount(emptySelectedOptionArr, arrCount, index)}`\n } else {\n rtnValue += this.roleBasedExecuteBracketsCount(emptySelectedOptionArr, arrCount, index);\n }\n }\n count = rtnValue.match(/@/gi).length;\n let data = {\n 'val': `${count}${rtnValue}`,\n 'index': index\n }\n return data;\n }\n\n getConditionStringData(input, index) {\n let firstDate, string = '';\n string += `@(@(`\n for (let item in input) {\n let iterator = input[item];\n iterator.forEach((el, idx) => {\n index = index + 1;\n if (el.conditionType === '2' && !el.sauf) {\n string += `@(@(`;\n } else if (el.sauf) {\n // debugger\n //Sh Changes\n // if (string.charAt(string.length - 1) === 'E' && el.sauf && el.conditionType !== '1') {\n // string = string.slice(0, -2)\n // }\n // if (el.conditionType === '2' && !iterator[iterator.length - 1].sauf && idx !== 0) {\n // string += `@)@)@)@O@(@E@(@N@(`;\n // } else if (el.conditionType !== '1' && idx !== 0) {\n // string += `@)@)@E@(@N@(`;\n // }\n // // else if (el.conditionType === '1' && idx !== 0) {\n // // string += `@)`;\n // // }\n // if (idx === 0 && el.conditionType === '2') {\n // string += `@(@N@(@(`\n // }\n //Sh Changes\n\n\n\n\n if (string.charAt(string.length - 1) === 'E' && el.sauf && el.conditionType !== '1') {\n string = string.slice(0, -2)\n }\n // if (el.conditionType === '2' && !iterator[iterator.length - 1].sauf && idx !== 0) {\n if (el.conditionType === '2' && idx !== 0 && !iterator[idx - 1].sauf) {\n string += `@)@)@)@O@(@E@(@N@(`;\n // } else if (el.conditionType === '3' && !iterator[idx - 1].sauf && idx !== 0) {\n // string += `@)@)@)@O@(@E@(@N@(`;\n } else if (el.conditionType !== '1' && idx !== 0) {\n string += `@)@)@E@(@N@(`;\n }\n // else if (el.conditionType === '1' && idx !== 0) {\n // string += `@)`;\n // }\n if (idx === 0 && el.conditionType === '2') {\n // string += `@(@N@(@(`\n string += `@(@N@(`\n }\n\n if (idx === 0 && el.conditionType === '3') {\n // string += `@(@N@(@(`\n string += `@(@N@(`\n }\n // if (idx === 0 && el.conditionType === '1' && iterator.length === 1) {\n // string += `@(@N@(`\n // }\n }\n if (el.type === 1) {\n let value = el.value.split('ou');\n let ind;\n string += `@(`\n value.forEach((item, idx) => {\n ind = idx + (index - 1);\n string += `@(@${ind}@)@O`;\n })\n index = ind + 1;\n if (string.charAt(string.length - 1) === 'O') {\n string = string.slice(0, -2);\n }\n string += `@)@E`;\n } else if (el.type === 3) {\n let val = el.name.split('[');\n val = val[1].replace(']', '');\n let dateVal = el.value.split('et');\n if (val === this.utilService.getTranslateName(`NEW_QUERY.DATE_GROUPING.CONNUE`) || val === this.utilService.getTranslateName(`NEW_QUERY.DATE_GROUPING.INCONNUE`) || dateVal.length > 1) {\n firstDate = index + 1;\n string += `@(@(@${index - 1}@)@E@(@${firstDate - 1}@)@)@E`;\n index = firstDate;\n } else if (el.conditionType === '1') {\n string += `@(@(@${index - 1}@)@)@E`;\n } else if (el.conditionType === '2') {\n string += `@(@(@${index - 1}@)@)@E`;\n }\n } else {\n string += `@(@${index - 1}@)@E`;\n }\n })\n if (string.charAt(string.length - 1) === 'E') {\n string = string.slice(0, -2)\n }\n string += `@)@)@O`;\n }\n if (string.charAt(string.length - 1) === 'O') {\n string = string.slice(0, -2);\n }\n string += `@)@)@E`;\n let data = {\n val: string,\n idx: index\n }\n return data;\n }\n\n generateConditionExecute() {\n let rtnValue: string;\n rtnValue = \"\\n\";\n rtnValue += `TEMP@${this.ipn}@${this.selectedTable}@${this.ipn}.EXP@${this.ipn}@${this.selectedTable}@${this.ipn}.EXP@${this.getConditionBlock().val}@`;\n //1@1@3@1@A_Modele @0@?@4@CL2/CL3/CL4 / CL5 /@0@\n\n const condCharacterValue = [\n { \"cond\": \"=\", \"format\": \"1\", \"comprator\": \"E\" },\n { \"cond\": \"Dans liste\", \"format\": \"3\", \"comprator\": \"?\" },\n { \"cond\": \">=\", \"format\": \"1\", \"comprator\": \"s\" },\n { \"cond\": \"<=\", \"format\": \"1\", \"comprator\": \"i\" },\n { \"cond\": \"Cont\", \"format\": \"5\", \"comprator\": \"?\" },\n { \"cond\": \"position\", \"format\": \"2\", \"comprator\": \"E\" },\n { \"cond\": \"<>\", \"format\": \"1\", \"comprator\": \"D\" },\n ];\n\n\n let rtnOutput = '';\n // for (let key in this.characterList) {\n // if (key !== 'characterListType3') {\n for (let item in this.characterList.characterListType1) {\n let listForm = \"\";\n let iterator = this.characterList.characterListType1[item];\n // ////console.log('key1', subKey1);\n iterator.forEach(el => {\n const affichDataType = el.type === 1 ? \"2\" : el.type === 3 ? el.type.toString() : (el.type === 4 || el.type === 5) ? el.type.toString() : el.type === 99 ? \"5\" : \"1\";\n if (affichDataType === '1') {\n const contFormat = condCharacterValue.filter(f => f.cond === el.format);\n if (contFormat[0].format === \"2\") {\n let value, emptySpace = ' ';\n value = el.value.split(' ')[2].trim();\n for (let i = 0; i < el.size; i++) {\n if (value[i] === '' || value[i] === undefined) {\n value += `${emptySpace}`;\n }\n }\n listForm += `${affichDataType}@${contFormat[0].format}@1@${el.GCOName}@0@${contFormat[0].comprator}@1@${value}@0@`;\n } else if (contFormat[0].format === \"5\") {\n let value, emptySpace = ' ';\n value = el.value.split('Cont')[1].trim();\n for (let i = 0; i < el.size; i++) {\n if (value[i] === '' || value[i] === undefined) {\n value += `${emptySpace}`;\n }\n }\n listForm += `${affichDataType}@${contFormat[0].format}@1@${el.GCOName}@0@${contFormat[0].comprator}@0@${value}@0@`;\n } else if (contFormat[0].format === \"3\") {\n if (el.value.length > 1) {\n if (el.value.substr(0, 2) === \" \" && el.value.substr(0, 3) !== \" \") {\n listForm += `${affichDataType}@${contFormat[0].format}@1@${el.GCOName}@0@${contFormat[0].comprator}@${el.value.split(\"/\").length}@${(el.value.replace(\" \", \"\") + '/')}@0@`;\n } else if (el.value.substr(0, 1) === \" \" && el.value.substr(0, 2) !== \" \") {\n listForm += `${affichDataType}@${contFormat[0].format}@1@${el.GCOName}@0@${contFormat[0].comprator}@${el.value.split(\"/\").length}@${(el.value.replace(\" \", \"\") + '/')}@0@`;\n } else {\n listForm += `${affichDataType}@${contFormat[0].format}@1@${el.GCOName}@0@${contFormat[0].comprator}@${el.value.split(\"/\").length}@${(el.value + '/')}@0@`;\n }\n } else {\n listForm += `${affichDataType}@${contFormat[0].format}@1@${el.GCOName}@0@${contFormat[0].comprator}@${el.value.split(\"/\").length}@${(el.value + '/')}@0@`;\n }\n // listForm += `${affichDataType}@${contFormat[0].format}@1@${el.GCOName}@0@${contFormat[0].comprator}@${el.value.split(\"/\").length}@${(el.value.replace(\" \", \"\") + '/')}@0@`;\n } else {\n let value, emptySpace = ' ';\n value = el.value.split(el.format)[1].trim();\n for (let i = 0; i < el.size; i++) {\n if (value[i] === '' || value[i] === undefined) {\n value += `${emptySpace}`;\n }\n }\n listForm += `${affichDataType}@${contFormat[0].format}@1@${el.GCOName}@0@${contFormat[0].comprator}@0@${value}@0@`;\n }\n } else if (affichDataType === '2') {\n let arr = el.value.split('ou');\n for (let item of arr) {\n let replaceData = item.replace(/\\[/g, '').replace(/\\]/g, '');\n listForm += `${affichDataType}@0@1@${el.GCOName}@0@?@0@${replaceData.trim()}@0@`;\n }\n }\n });\n rtnOutput += `${listForm}`;\n }\n for (let item in this.characterList.characterListType2) {\n let listForm = \"\";\n let iterator = this.characterList.characterListType2[item];\n // //console.log('key1', subKey1);\n iterator.forEach(el => {\n const affichDataType = el.type === 1 ? \"2\" : el.type === 3 ? el.type.toString() : (el.type === 4 || el.type === 5) ? el.type.toString() : el.type === 99 ? \"6\" : \"1\";\n const contFormat = condCharacterValue.filter(f => f.cond === el.format);\n if (affichDataType === '4') {\n if (el.GCOName.substring(0, 2) !== 'N_') {\n listForm += `${affichDataType}@0@1@${el.GCOName}@0@E@${el.value.split(\" \")[1].trim() === \"1\" ? \"1\" : \"0\"}@?@0@`;\n } else {\n listForm += `${affichDataType}@0@1@${el.GCOName}@0@${contFormat[0].comprator}@${el.value.split(contFormat[0].cond)[1].trim()}@?@0@`;\n }\n } else if (affichDataType === '3') {\n let condItemValue;\n const itemValue = el.name.substr(el.name.indexOf('[') + 1, (el.name.length - el.name.indexOf('[') - 2));\n for (let i = 0; i < this.getDataFormat().length; i++) {\n let date = this.getDataFormat()[i];\n let translatedText = this.utilService.getTranslateName(`NEW_QUERY.DATE_GROUPING.${date.name}`);\n if (translatedText.toLowerCase() === itemValue.toLowerCase()) {\n condItemValue = `${date.index}`;\n break;\n }\n }\n const condValue = el.value;\n const condValueSplit = el.value.split(' ');\n if (condValue === '=0' || condValue === '=1') {\n listForm += `${affichDataType}@${condItemValue}@1@${el.GCOName}@0@s@0@${condValue.replace('=', '')}@0@`;\n listForm += `${affichDataType}@${condItemValue}@1@${el.GCOName}@0@i@0@${condValue.replace('=', '')}@0@`;\n } else if (condValueSplit.length === 1) {\n if (condValue.split('=')[0] === '>') {\n listForm += `${affichDataType}@${condItemValue}@1@${el.GCOName}@0@s@0@${condValue.replace('>=', '')}@0@`;\n } else if (condValue.split('=')[0] === '<') {\n listForm += `${affichDataType}@${condItemValue}@1@${el.GCOName}@0@i@0@${condValue.replace('<=', '')}@0@`;\n }\n } else if (condValueSplit.length > 1) {\n listForm += `${affichDataType}@${condItemValue}@1@${el.GCOName}@0@s@0@${condValueSplit[0].replace('>=', '')}@0@`;\n listForm += `${affichDataType}@${condItemValue}@1@${el.GCOName}@0@i@0@${condValueSplit[2].replace('<=', '')}@0@`;\n }\n }\n });\n rtnOutput += `${listForm}`;\n }\n // }\n // } else if (key === 'characterListType3') {\n for (let item in this.characterList.characterListType3) {\n let listForm = '';\n let iterator = this.characterList.characterListType3[item];\n // //console.log('key1', subKey1);\n iterator.forEach(el => {\n const delayDateNames = el.name.split('-');\n const delayValue = el.value.split(' ');\n const contFormat = condCharacterValue.filter(f => f.cond === delayValue[0]);\n let delayDateName1 = undefined;\n let delayDateName2 = undefined;\n if (el.delay === 0) {\n const criteriaFilterVal1 = this.criteriaListOringinal.filter(a => a.longLabel.split(this.splitChar, 2).length > 1 ? a.longLabel.split(this.splitChar, 2)[this.getLangIndex(this.lang)] === delayDateNames[0] : a.longLabel === delayDateNames[0])[0];\n delayDateName1 = criteriaFilterVal1.GCOName;\n const criteriaFilterVal2 = this.criteriaListOringinal.filter(a => a.longLabel.split(this.splitChar, 2).length > 1 ? a.longLabel.split(this.splitChar, 2)[this.getLangIndex(this.lang)] === delayDateNames[1] : a.longLabel === delayDateNames[1])[0];\n delayDateName2 = criteriaFilterVal2.GCOName;\n } else if (el.delay === 1 || el.delay === 2) {\n const criteriaFilterVal = this.criteriaListOringinal.filter(a => a.longLabel.split(this.splitChar, 2).length > 1 ? a.longLabel.split(this.splitChar, 2)[this.getLangIndex(this.lang)] === delayDateNames[1] : a.longLabel === delayDateNames[1])[0];\n delayDateName1 = delayDateNames[0];\n delayDateName2 = criteriaFilterVal.GCOName;\n } else if (el.delay === 3 || el.delay === 4) {\n const criteriaFilterVal = this.criteriaListOringinal.filter(a => a.longLabel.split(this.splitChar, 2).length > 1 ? a.longLabel.split(this.splitChar, 2)[this.getLangIndex(this.lang)] === delayDateNames[0] : a.longLabel === delayDateNames[0])[0];\n delayDateName1 = criteriaFilterVal.GCOName;\n delayDateName2 = delayDateNames[1];\n }\n for (let i = 0; i < this.getDataFormat().length; i++) {\n let text = this.getDataFormat()[i];\n // this.getDataFormat().forEach(el => {\n let translatedText = this.utilService.getTranslateName(`NEW_QUERY.DATE_GROUPING.${text.name}`);\n if (translatedText.toLowerCase() === el.format.toLowerCase()) {\n if (delayValue[3] && isNaN(delayValue[3]) && delayValue.length > 2) {\n listForm += `5@${text.index}@1@${delayDateName1}@1@${delayDateName2}@${contFormat[0].comprator}@${delayValue[1]}@?@0@`;\n break;\n } else if (text.value === 'Free Format' && delayValue.length > 2) {\n listForm += `5@${text.index}@1@${delayDateName1}@1@${delayDateName2}@${contFormat[0].comprator}@${delayValue[1]}@${delayValue[3]}@0@`;\n break;\n } else {\n listForm += `5@${text.index}@1@${delayDateName1}@1@${delayDateName2}@${contFormat[0].comprator}@${delayValue[1]}@?@0@`;\n break;\n }\n }\n }\n // if (delayValue.length > 4) {\n // listForm += `5@7@1@${delayDateName1}@1@$${delayDateName2}@${contFormat[0].comprator}@${delayValue[1]}@${delayValue[4]}@0@`;\n // } else if (delayValue.length === 4) {\n // const delayIndex = this.delayOptionValue.indexOf(`${delayValue[2]} ${delayValue[3]}`);\n // listForm += `5@${delayIndex + 1}@1@${delayDateName1}@1@$${delayDateName2}@${contFormat[0].comprator}@${delayValue[1]}@?@0@`;\n // } else if (delayValue.length < 4) {\n // const delayIndex = this.delayOptionValue.indexOf(`${delayValue[2]}`);\n // listForm += `5@${delayIndex + 1}@1@${delayDateName1}@1@$${delayDateName2}@${contFormat[0].comprator}@${delayValue[1]}@?@0@`;\n // }\n })\n rtnOutput += `${listForm}`;\n }\n // }\n let popData = this.dataList.filter(a => a.name === this.selectedTable)[0];\n let actualArr = this.generateRoleBasedBracket(popData).actualArr;\n let arrCount = this.generateRoleBasedBracket(popData).count;\n popData = this.generateRoleBasedBracket(popData).popData;\n let count = this.getConditionBlock().index;\n if (actualArr !== undefined) {\n let emptySelectedOptionArr = [...actualArr];\n rtnOutput += `${this.getRoleBasedValues(emptySelectedOptionArr, arrCount, popData.fields, count).string}`;\n count = this.getRoleBasedValues(emptySelectedOptionArr, arrCount, popData.fields, count).count;\n }\n if (this.characterList.characterListType1.group0.length === 0 && this.characterList.characterListType2.group0.length === 0 &&\n this.characterList.characterListType3.group0.length === 0 && this.roleBasedQuery === '') {\n rtnValue += `0@`;\n } else {\n rtnValue += `${count}@${rtnOutput}`;\n }\n\n rtnValue += \"\\n\";\n rtnValue += `TPO@${this.ipn}@${this.selectedTable}@un100000@${this.ipn}.EXP@`;\n rtnValue += \"\\n\";\n rtnValue += `TEMP@${this.ipn}@${this.selectedTable}@${this.ipn}.CND@${this.ipn}@${this.selectedTable}@${this.ipn}.CND@2@(@)@0@`;\n return rtnValue;\n }\n\n generateGroupExecute(type) {\n let rtnValue: string;\n let noList, array;\n if (type === 'group') {\n array = this.groupList;\n noList = this.groupList.length;\n rtnValue = \"\\n\";\n rtnValue += `TEMP@${this.ipn}@${this.selectedTable}@${this.ipn}.GRP@${this.ipn}@${this.selectedTable}@${this.ipn}.GRP@${noList}@`;\n } else {\n array = this.vueList;\n noList = this.vueList.length;\n rtnValue = \"\\n\";\n rtnValue += `TEMP@${this.ipn}@${this.selectedTable}@${this.ipn}.AFF@${this.ipn}@${this.selectedTable}@${this.ipn}.AFF@${noList}@`;\n }\n\n let listForm = \"\";\n for (const item of array) {\n const affichDataType = item.type === 1 ? \"2\" : item.type === 3 ? item.type.toString() : (item.type === 4 || item.type === 5) ? item.type.toString() : item.type === 99 ? \"5\" : \"1\";\n\n if (affichDataType === '1') {\n listForm = `${listForm}${affichDataType}@1@1@${item.GCOName}@0@?@0@?@0@`;\n } else if (affichDataType === '2') {\n let itemValue = item.name.substr(item.name.indexOf('[') + 1, (item.name.length - item.name.indexOf('[') - 2));\n // //console.log('itemValue.split(\",\")1111111', itemValue.split(\",\"), itemValue.split(\",\")[1], itemValue.split(',')[0] === this.utilService.getTranslateName(`NEW_QUERY.CHARACTER_LIST.COMPACT`));\n if (itemValue.split(',')[0] === this.utilService.getTranslateName(`NEW_QUERY.CHARACTER_LIST.COMPACT`)) {\n listForm = `${listForm}${affichDataType}@2@1@${item.GCOName}@1@A_MilBE@?@0@007@0@`;\n } else if (itemValue.split(',')[0] === this.utilService.getTranslateName(`NEW_QUERY.CHARACTER_LIST.INDEX`)) {\n listForm = `${listForm}${affichDataType}@3@1@${item.GCOName}@0@?@0@@0@`;\n } else if (itemValue.split(',')[0] === this.utilService.getTranslateName(`NEW_QUERY.CHARACTER_LIST.ALL`)) {\n if (itemValue.split(',').length > 1) {\n // //console.log('itemValue.split(\",\")', itemValue.split(\",\"), itemValue.split(\",\")[1]);\n listForm = `${listForm}${affichDataType}@1@1@${item.GCOName}@0@?@${itemValue.split(\",\")[1]}@@0@`;\n } else {\n listForm = `${listForm}${affichDataType}@1@1@${item.GCOName}@0@?@0@@0@`;\n }\n } else {\n if (itemValue.split(',').length > 0) {\n let ll = 0;\n listForm = `${listForm}${affichDataType}@0@1@${item.GCOName}@0@?@0@`;\n for (const valItem of itemValue.split(',')) {\n if (valItem.length !== 6) {\n let emptySpace = '';\n for (let x = 0; x < (6 - valItem.length); x++) {\n emptySpace = `${emptySpace} `;\n }\n if (ll === 0) {\n listForm = `${listForm}${valItem}${emptySpace}/`;\n }\n\n } else {\n if (ll === 0) {\n listForm = `${listForm}${valItem}/`;\n }\n }\n }\n listForm = listForm.slice(0, -1)\n listForm = `${listForm}@0@`\n }\n }\n } else if (affichDataType === '4' || (item.type === 5 && affichDataType === '5')) {\n let itemValue = item.name.split(\"[\");\n if (itemValue.length > 1) {\n listForm = `${listForm}6@1@1@${item.GCOName}@0@?@0@?@0@`;\n } else {\n if ((item.GCOName === 'N_Volume' || item.GCOName === 'N_VolumePrev') && affichDataType === '5') {\n listForm = `${listForm}4@4@1@${item.GCOName}@0@?@0@?@0@`;\n } else {\n listForm = `${listForm}${affichDataType}@4@1@${item.GCOName}@0@?@0@?@0@`;\n }\n }\n } else if (affichDataType === '3') {\n // let indexval;\n let itemValue = item.name.substr(item.name.indexOf('[') + 1, (item.name.length - item.name.indexOf('[') - 2));\n let foundElement = this.getGroupDate().find(el => this.utilService.getTranslateName(`NEW_QUERY.DATE_GROUPING.${el.value}`) === itemValue);\n if (foundElement !== undefined) {\n listForm = `${listForm}${affichDataType}@${foundElement.index}@1@${item.GCOName}@0@?@0@?@0@`;\n } else {\n listForm = `${listForm}${affichDataType}@9@1@${item.GCOName}@0@?@0@${itemValue}@0@`;\n }\n // for (let i = 0; i < this.getGroupDate().length; i++) {\n // let el = this.getGroupDate()[i];\n // if (this.utilService.getTranslateName(`NEW_QUERY.DATE_GROUPING.${el.value}`) === itemValue && isNaN(itemValue)) {\n // listForm = `${listForm}${affichDataType}@${el.index}@1@${item.GCOName}@0@?@0@?@0@`;\n // break;\n // } else if (!isNaN(itemValue)) {\n // listForm = `${listForm}${affichDataType}@9@1@${item.GCOName}@0@?@0@${itemValue}@0@`;\n // break;\n // }\n // }\n } else if (affichDataType === '5' && item.type === 99) {\n let itemValue = item.name.substr(item.name.indexOf('[') + 1, (item.name.length - item.name.indexOf('[') - 2))\n let delayIndex;\n const delayDateNames = item.name.split('-');\n const delayDateNames2 = delayDateNames[1].split('[')[0];\n let delayDateName1 = undefined;\n let delayDateName2 = undefined;\n if (item.delay === 0) {\n const criteriaFilterVal1 = this.criteriaListOringinal.filter(a => a.longLabel.split(this.splitChar, 2).length > 1 ? a.longLabel.split(this.splitChar, 2)[this.getLangIndex(this.lang)] === delayDateNames[0] : a.longLabel === delayDateNames[0])[0];\n delayDateName1 = criteriaFilterVal1.GCOName;\n const criteriaFilterVal2 = this.criteriaListOringinal.filter(a => a.longLabel.split(this.splitChar, 2).length > 1 ? a.longLabel.split(this.splitChar, 2)[this.getLangIndex(this.lang)] === delayDateNames2 : a.longLabel === delayDateNames2)[0];\n delayDateName2 = criteriaFilterVal2.GCOName;\n } else if (item.delay === 1 || item.delay === 2) {\n const criteriaFilterVal = this.criteriaListOringinal.filter(a => a.longLabel.split(this.splitChar, 2).length > 1 ? a.longLabel.split(this.splitChar, 2)[this.getLangIndex(this.lang)] === delayDateNames2 : a.longLabel === delayDateNames2)[0];\n delayDateName1 = delayDateNames[0];\n delayDateName2 = criteriaFilterVal.GCOName;\n } else if (item.delay === 3 || item.delay === 4) {\n const criteriaFilterVal = this.criteriaListOringinal.filter(a => a.longLabel.split(this.splitChar, 2).length > 1 ? a.longLabel.split(this.splitChar, 2)[this.getLangIndex(this.lang)] === delayDateNames[0] : a.longLabel === delayDateNames[0])[0];\n delayDateName1 = criteriaFilterVal.GCOName;\n delayDateName2 = delayDateNames2;\n }\n for (let i = 0; i < this.getDataFormat().length; i++) {\n let el = this.getDataFormat()[i];\n // this.getDataFormat().forEach(el => {\n let translatedText = this.utilService.getTranslateName(`NEW_QUERY.DATE_GROUPING.${el.name}`);\n if (translatedText.toLowerCase() === itemValue.toLowerCase()) {\n delayIndex = el.index;\n }\n }\n if (itemValue.split(' ').length > 1 && !isNaN(itemValue.split(' ')[1])) {\n listForm += `5@7@1@${delayDateName1}@1@${delayDateName2}@?@0@${itemValue.split(' ')[1]}@0@`;\n } else {\n listForm += `5@${delayIndex}@1@${delayDateName1}@1@${delayDateName2}@?@0@?@0@`;\n }\n }\n }\n // rtnValue += \"\\n\";\n rtnValue += listForm;\n // rtnValue += \"\\n\";\n // rtnValue += `TSI@${this.ipn}@${this.selectedTable}@un100001@${this.ipn}.CND@${this.ipn}.GRP@0@0@`;\n // //console.log('Group Value', rtnValue);\n return rtnValue;\n }\n\n generateCommonLastExecute() {\n let rtnValue: string;\n rtnValue = \"\\n\";\n let isFlagFound = false;\n if (this.groupList.some(el => el.type === 4)) {\n this.groupList.forEach(el => {\n let data = el.name.split('[');\n data = data.slice(0, -1);\n if (data.length > 0 && data[0].toLowerCase() === this.utilService.getTranslateName('COMMON.SUM').toLowerCase()) {\n isFlagFound = true;\n }\n })\n }\n\n if (this.groupList.some(el => el.type === 5) || isFlagFound) {\n rtnValue += `${this.groupExecuteTypeValue}@${this.ipn}@${this.selectedTable}@un100001@${this.ipn}.CND@${this.ipn}.GRP@N@N@`;\n } else {\n rtnValue += `${this.groupExecuteTypeValue}@${this.ipn}@${this.selectedTable}@un100001@${this.ipn}.CND@${this.ipn}.GRP@O@O@`;\n }\n return rtnValue;\n }\n\n checkDelay1CheckboxOptions(chk) {\n this.groupingDelayCheckVal = 0;\n this.groupingDelayInput.date1 = '';\n if (chk === 1 && this.delayDate1Check1) {\n this.groupingDelayCheckVal = 1;\n this.groupingDelayInput.date1 = 'DATEDUJOUR'\n if (this.delayDate2Check1 || this.delayDate2Check2) {\n this.groupingDelayInput.date2 = '';\n }\n this.selectedDelayDate1 = undefined;\n this.delayDate1Check2 = false;\n this.delayDate2Check1 = false;\n this.delayDate2Check2 = false;\n } else if (chk === 2 && this.delayDate1Check2) {\n this.groupingDelayCheckVal = 2;\n this.groupingDelayInput.date1 = this.delayDateTime1;\n if (this.delayDate2Check1 || this.delayDate2Check2) {\n this.groupingDelayInput.date2 = '';\n }\n this.selectedDelayDate1 = undefined;\n this.delayDate1Check1 = false;\n this.delayDate2Check1 = false;\n this.delayDate2Check2 = false;\n }\n }\n\n checkDelay2CheckboxOptions(chk) {\n this.groupingDelayCheckVal = 0;\n this.groupingDelayInput.date2 = '';\n if (chk === 1 && this.delayDate2Check1) {\n this.groupingDelayCheckVal = 3;\n this.groupingDelayInput.date2 = 'DATEDUJOUR'\n if (this.delayDate1Check1 || this.delayDate1Check2) {\n this.groupingDelayInput.date1 = '';\n }\n this.selectedDelayDate2 = undefined;\n this.delayDate2Check2 = false;\n this.delayDate1Check1 = false;\n this.delayDate1Check2 = false;\n } else if (chk === 2 && this.delayDate2Check2) {\n this.groupingDelayCheckVal = 4;\n this.groupingDelayInput.date2 = this.delayDateTime2;\n if (this.delayDate1Check1 || this.delayDate1Check2) {\n this.groupingDelayInput.date1 = '';\n }\n this.selectedDelayDate2 = undefined;\n this.delayDate2Check1 = false;\n this.delayDate1Check1 = false;\n this.delayDate1Check2 = false;\n }\n }\n\n updateGroupingDelay(event) {\n if (event.value !== '') {\n let lastIndex = this.createNewGroup(3);\n if (this.groupSection) {\n if (this.editGroupingDelay) {\n this.groupList[this.groupingEditIndex].name = `${event.date1}-${event.date2}[${event.value}]`;\n this.groupList[this.groupingEditIndex].delay = this.groupingDelayCheckVal;\n this.groupList[this.groupingEditIndex].format = event.value;\n this.requestService.addRequestReGroupment(this.groupList, this.reqActive);\n this.editGroupingDelay = false;\n } else {\n this.groupList.push({ \"name\": `${event.date1}-${event.date2}[${event.value}]`, \"type\": 99, \"delay\": this.groupingDelayCheckVal, \"format\": event.value });\n this.requestService.addRequestReGroupment(this.groupList, this.reqActive);\n }\n } else if (this.populateSection) {\n if (this.editGroupingDelay) {\n this.characterList.characterListType3[this.selectedKey][this.vueEditIndex].name = `${event.date1}-${event.date2}`;\n this.characterList.characterListType3[this.selectedKey][this.vueEditIndex].value = `${event.diffValue} ${event.diffTextVal} ${event.value}`;\n this.characterList.characterListType3[this.selectedKey][this.vueEditIndex].delay = this.groupingDelayCheckVal;\n this.characterList.characterListType3[this.selectedKey][this.vueEditIndex].format = event.format;\n // this.characterList.characterListType3[this.selectedKey][this.vueEditIndex].conditionType = '2';\n // this.characterList.characterListType3[this.selectedKey][this.vueEditIndex].group = false;\n this.requestService.addRequestCharacter(this.characterList.characterListType3, this.reqActive, 3);\n this.editGroupingDelay = false;\n } else {\n this.characterList.characterListType3[lastIndex] = new Array();\n this.characterList.characterListType3[lastIndex].push({ \"name\": `${event.date1}-${event.date2}`, conditionType: '2', group: false, \"delay\": this.groupingDelayCheckVal, \"format\": event.format, \"type\": 99, value: `${event.diffValue} ${event.diffTextVal} ${event.value}` });\n this.requestService.addRequestCharacter(this.characterList.characterListType3, this.reqActive, 3);\n }\n }\n } else {\n this.blnDelay = false;\n }\n this.selectedItemIndex = undefined;\n this.selectedItemType = undefined;\n this.selectedItemValue = undefined;\n this.selectedGroupItemValue = undefined;\n this.blnMoveRight = false;\n this.groupingEditValue = undefined\n this.selectedGroupItemIndex = undefined;\n this.blnDelay = false;\n this.groupingDelayInput = { date1: '', date2: '', value: '', ddValue: '', diffValue: '', diffTextValue: '' };\n this.selectedDelayDate1 = undefined;\n this.selectedDelayDate2 = undefined;\n this.delayDate2Check1 = false;\n this.delayDate2Check2 = false;\n this.delayDate1Check1 = false;\n this.delayDate1Check2 = false;\n this.delayDateTime1 = undefined;\n this.delayDateTime2 = undefined;\n this.editGroupingDelay = false;\n }\n\n addDelayDateEvent(event: MatDatepickerInputEvent) {\n const dateVal = ((event.value.getDate() < 10) ? '0' + event.value.getDate().toString() : event.value.getDate().toString()) + '/' + ((event.value.getMonth() < 10) ? '0' + event.value.getMonth() : event.value.getMonth()) + '/' + event.value.getFullYear();\n if (this.delayDate1Check2) {\n this.groupingDelayInput.date1 = dateVal;\n } else {\n this.groupingDelayInput.date2 = dateVal;\n }\n }\n\n getDaysValue() {\n const queryParam = { \"input\": `CAL_DPTM@${this.ipn}@${this.selectedTable}@@`, \"region\": this.getFavoriteRegion() };\n this.apiService.getObjectSize(queryParam).subscribe(res => {\n if (res.noObjects > 0) {\n const queryParam1 = { \"input\": `CAL_DPTM@${this.ipn}@${this.selectedTable}@@0@${res.noObjects}@`, \"region\": this.getFavoriteRegion() };\n this.apiService.getChoiceTableDetails(queryParam1).subscribe(res1 => {\n this.daysData = res1.lists;\n const sorter = this.utilService.MySort(' ?*!@_.()#^&%-=+01234567989abcdefghijklmnopqrstuvwxyz');\n this.daysData = this.daysData.sort(sorter);\n },\n error => {\n //console.log(\"error\", error.message);\n });\n }\n },\n error => {\n //console.log(\"error\", error.message);\n });\n }\n\n showPreview() {\n let previewData = {\n table: this.selectedTable,\n population: this.populationList,\n characterList: this.characterList,\n group: this.groupList,\n vue: this.vueList\n }\n\n // xfvxc\n const dialogRef = this.dialog.open(PreviewDialogComponent, {\n width: '450px',\n data: { value: previewData }\n });\n\n dialogRef.afterClosed().subscribe(result => {\n //console.log('The dialog was closed');\n });\n }\n\n getPrivateVueDetailsIPNs() {\n this.vuePrivateIPNDetails = undefined;\n const queryParam = { \"input\": `AFFICH@${this.ipn}@${this.selectedTable}@@`, \"region\": this.getFavoriteRegion() };\n this.apiService.getObjectSize(queryParam).subscribe(res => {\n if (res.noObjects > 0) {\n const queryParam1 = { \"input\": `AFFICH@${this.ipn}@${this.selectedTable}@@0@${res.noObjects}@`, \"region\": this.getFavoriteRegion() };\n this.apiService.getChoiceTableDetails(queryParam1).subscribe(res1 => {\n this.vuePrivateIPNDetails = res1.lists;\n // const sorter = this.utilService.MySort(' ?*!@_.()#^&%-=+01234567989abcdefghijklmnopqrstuvwxyz');\n this.vuePrivateIPNDetails = this.vuePrivateIPNDetails.sort(this.utilService.sortArray);\n if (this.selectedVueIPNDetail) {\n if (this.vuePrivateIPNDetails.indexOf(this.selectedVueIPNDetail) === -1) {\n this.selectedVueIPNDetail = undefined;\n this.vueList = [];\n this.previousVueList = [];\n }\n }\n },\n error => {\n //console.log(\"error\", error.message);\n });\n }\n },\n error => {\n //console.log(\"error\", error.message);\n });\n }\n\n openDialog(item): void {\n const dialogRef = this.dialog.open(AlertConfirmationComponent, {\n disableClose: true,\n width: '350px',\n data: { 'display': this.utilService.getTranslateName(`NEW_QUERY.DISPLAY_NAME`), 'isText': true }\n });\n\n dialogRef.afterClosed().subscribe(result => {\n if (result) {\n const queryParam = { \"input\": `AFFICH@${this.ipn}@${this.selectedTable}@${result}@${this.saveVueDetailsData()}`, \"region\": this.getFavoriteRegion() };\n this.apiService.saveObject(queryParam).subscribe(resp => {\n if (!this.isVueDetailSave) {\n this.loadVuePrivateIPNData(item);\n } else {\n this.isVueDetailSave = false;\n this.selectedVueIPNDetail = result;\n this.getPrivateVueDetailsIPNs();\n this.loadVuePrivateIPNData(this.selectedVueIPNDetail);\n }\n },\n error => {\n //console.log(\"error\", error.message);\n });\n } else {\n if (!this.isVueDetailSave) {\n this.loadVuePrivateIPNData(item);\n }\n this.isVueDetailSave = false;\n }\n });\n }\n\n openDialogUpdate(item): void {\n const dialogRef = this.dialog.open(AlertConfirmationComponent, {\n disableClose: true,\n width: '350px',\n // data: { 'display': \"This is valid changes?\", 'isText': false }\n data: { 'display': `${this.utilService.getTranslateName(`NAVBAR.VUEMODIFY`)}\"${this.selectedVueIPNDetail}\"${this.utilService.getTranslateName(`NAVBAR.VUEUPDATE`)}`, 'isText': false }\n });\n\n dialogRef.afterClosed().subscribe(result => {\n if (result) {\n const queryParam = { \"input\": `AFFICH@${this.ipn}@${this.selectedTable}@${this.selectedVueIPNDetail}@${this.saveVueDetailsData()}`, \"region\": this.getFavoriteRegion() };\n this.apiService.saveObject(queryParam).subscribe(resp => {\n if (!this.isVueDetailSave) {\n this.loadVuePrivateIPNData(item);\n }\n this.isVueDetailSave = false;\n },\n error => {\n //console.log(\"error\", error.message);\n });\n } else {\n if (!this.isVueDetailSave && item !== this.selectedVueIPNDetail) {\n this.loadVuePrivateIPNData(item);\n }\n this.isVueDetailSave = false;\n }\n });\n }\n\n loadVuePrivateIPNData(item) {\n this.selectedVueIPNDetail = item;\n if (this.selectedVueIPNDetail !== '') {\n this.vueList = [];\n this.previousVueList = [];\n const queryParam = { \"input\": `AFFICH@${this.ipn}@${this.selectedTable}@${this.selectedVueIPNDetail}@`, \"region\": this.getFavoriteRegion() };\n this.apiService.getObjectGet(queryParam).subscribe(res => {\n const data = this.dataSplitFromViewSavedQuery(res.data);\n for (const item of data) {\n if (typeof (item.value) === 'undefined') {\n this.vueList.push({ 'name': item[this.lang], 'type': item.typeOfField, 'GCOName': item.GCOName, 'size': item.size, visible: true });\n this.previousVueList.push({ 'name': item[this.lang], 'type': item.typeOfField, 'GCOName': item.GCOName, 'size': item.size, visible: true });\n } else {\n if (item.typeOfField === 3) {\n\n\n for (let i = 0; i < this.groupDateLangData().length; i++) {\n let el = this.groupDateLangData()[i];\n for (const [key, value] of Object.entries(el)) {\n if (key !== this.lang) {\n if (el[key].toLowerCase() === item['value'].toLowerCase()) {\n item['value'] = item['value'].replace(item['value'], el[this.lang]);\n break;\n }\n }\n }\n }\n\n // this.vueList.push({ \"name\": item[this.lang] + `[${this.utilService.getTranslateName(`NEW_QUERY.DATE_GROUPING.` + item['value'])}]`, \"type\": item.typeOfField, 'GCOName': item.GCOName, 'size': item.size, visible: true });\n // this.previousVueList.push({ \"name\": item[this.lang] + `[${this.utilService.getTranslateName(`NEW_QUERY.DATE_GROUPING.` + item['value'])}]`, \"type\": item.typeOfField, 'GCOName': item.GCOName, 'size': item.size, visible: true });\n this.vueList.push({ \"name\": item[this.lang] + `[${item['value']}]`, \"type\": item.typeOfField, 'GCOName': item.GCOName, 'size': item.size, visible: true });\n this.previousVueList.push({ \"name\": item[this.lang] + `[${item['value']}]`, \"type\": item.typeOfField, 'GCOName': item.GCOName, 'size': item.size, visible: true });\n }\n if (item.typeOfField === 1) {\n const enLangValue = [\"Compact Code\", \"All\", \"Index\"];\n const frLangValue = [\"Code Compact\", \"Tous\", \"Indice\"];\n // const preVal = item.value.substring(item.name.indexOf('[') + 1, item.name.indexOf(']')).split(\",\")[0];\n let changeVal;\n if (this.lang === 'fr') {\n changeVal = frLangValue[enLangValue.indexOf(item.value)];\n } else {\n changeVal = enLangValue[frLangValue.indexOf(item.value)];\n }\n if (typeof (changeVal) !== 'undefined') {\n item.value = changeVal;\n }\n this.vueList.push({ \"name\": item[this.lang] + `[${item['value']}]`, \"type\": item.typeOfField, 'GCOName': item.GCOName, 'size': item.size, visible: true });\n this.previousVueList.push({ \"name\": item[this.lang] + `[${item['value']}]`, \"type\": item.typeOfField, 'GCOName': item.GCOName, 'size': item.size, visible: true });\n }\n }\n }\n this.requestService.addRequestVue(this.vueList, this.reqActive);\n this.requestService.addRequestVuePrivateIPNData(this.selectedVueIPNDetail, this.reqActive);\n },\n error => {\n //console.log(\"error\", error.message);\n });\n } else if (this.selectedVueIPNDetail === '') {\n this.vueList = [];\n this.requestService.addRequestVue(this.vueList, this.reqActive);\n this.requestService.addRequestVuePrivateIPNData(undefined, this.reqActive);\n }\n }\n\n selectVuePrivateIPN(item) {\n this.selectedItemType = undefined;\n this.selectedItemValue = undefined;\n this.selectedItemIndex = undefined;\n this.vueEditIndex = undefined;\n this.vueEditValue = undefined;\n\n if (this.selectedVueIPNDetail !== item && this.vueList.length > 0) {\n if (!_.isEqual(this.vueList, this.previousVueList)) {\n this.openDialogUpdate(item)\n } else if (this.selectedVueIPNDetail) {\n this.loadVuePrivateIPNData(item);\n }\n } else {\n this.loadVuePrivateIPNData(item);\n }\n }\n\n checkVueTypeSeelct(event) {\n this.selectedItemType = undefined;\n this.selectedItemValue = undefined;\n this.selectedItemIndex = undefined;\n this.vueEditIndex = undefined;\n this.vueEditValue = undefined;\n this.executeBtn = false;\n this.isExecute = false;\n this.isVueDisable = event.checked;\n this.groupExecuteTypeValue = \"TSI\";\n if (event.checked) {\n this.groupExecuteTypeValue = \"TTB\";\n }\n if (event.checked) {\n this.vueList.some(list => {\n list.visible = false;\n });\n } else {\n this.vueList.some(list => {\n list.visible = true;\n });\n }\n this.requestService.addRequestVue(this.vueList, this.reqActive);\n this.requestService.addRequestVueAffichStatus(!event.checked, this.reqActive);\n }\n\n dataSplitFromViewSavedQuery(queryData) {\n let i: number;\n let returnVal = [];\n if (queryData) {\n const splitData = queryData.split(\"@\");\n for (i = 1; i < splitData.length; i++) {\n if (splitData[i] === '1') {\n i = i + 3;\n let criteriaListVal = this.getCriteriaDetailsFromriteriaListOriginal(splitData[i].substring(0, splitData[i].length - 2), splitData[i].substr(splitData[i].length - 1, 1));\n returnVal.push({ 'GCOName': criteriaListVal.GCOName, 'longLabel': criteriaListVal.longLabel, 'typeOfField': criteriaListVal.typeOfField, 'size': criteriaListVal.size, 'shortLabel': criteriaListVal.shortLabel });\n returnVal[returnVal.length - 1]['en'] = criteriaListVal.longLabel.split(this.splitChar)[1];\n returnVal[returnVal.length - 1]['fr'] = criteriaListVal.longLabel.split(this.splitChar)[0];\n returnVal[returnVal.length - 1]['value'] = undefined;\n returnVal[returnVal.length - 1]['size'] = criteriaListVal.size;\n i = i + 1;\n }\n else if (splitData[i] === '2') {\n i = i + 2;\n let criteriaListVal = this.getCriteriaDetailsFromriteriaListOriginal(splitData[i].substring(0, splitData[i].length - 2), splitData[i].substr(splitData[i].length - 1, 1));\n returnVal.push({ 'GCOName': criteriaListVal.GCOName, 'longLabel': criteriaListVal.longLabel, 'typeOfField': criteriaListVal.typeOfField, 'size': criteriaListVal.size, 'shortLabel': criteriaListVal.shortLabel });\n returnVal[returnVal.length - 1]['en'] = criteriaListVal.longLabel.split(this.splitChar)[1];\n returnVal[returnVal.length - 1]['fr'] = criteriaListVal.longLabel.split(this.splitChar)[0];\n let listVal = undefined;\n returnVal[returnVal.length - 1]['size'] = criteriaListVal.size;\n i = i + 2;\n const subType = splitData[i];\n if (subType === '0') {\n i = i + 1;\n listVal = [];\n const loopVal = splitData[i];\n criteriaListVal['value'] = [];\n for (let k = 0; k < loopVal; k++) {\n i = i + 3;\n listVal.push(splitData[i].trim());\n }\n returnVal[returnVal.length - 1]['value'] = listVal;\n } else if (subType === '1') {\n returnVal[returnVal.length - 1]['value'] = this.utilService.getTranslateName(`NEW_QUERY.CHARACTER_LIST.ALL`) + ',0';\n } else if (subType === '2') {\n returnVal[returnVal.length - 1]['value'] = this.utilService.getTranslateName(`NEW_QUERY.CHARACTER_LIST.COMPACT`);\n } else if (subType === '3') {\n returnVal[returnVal.length - 1]['value'] = this.utilService.getTranslateName(`NEW_QUERY.CHARACTER_LIST.INDEX`);\n }\n }\n else if (splitData[i] === '3') {\n i = i + 1;\n const dateFormat = splitData[i];\n if (dateFormat === '9') {\n i = i + 2;\n let criteriaListVal = this.getCriteriaDetailsFromriteriaListOriginal(splitData[i].substring(0, splitData[i].length - 2), splitData[i].substr(splitData[i].length - 1, 1));\n returnVal.push({ 'GCOName': criteriaListVal.GCOName, 'longLabel': criteriaListVal.longLabel, 'typeOfField': criteriaListVal.typeOfField, 'size': criteriaListVal.size, 'shortLabel': criteriaListVal.shortLabel });\n returnVal[returnVal.length - 1]['en'] = criteriaListVal.longLabel.split(this.splitChar)[1];\n returnVal[returnVal.length - 1]['fr'] = criteriaListVal.longLabel.split(this.splitChar)[0];\n returnVal[returnVal.length - 1]['value'] = splitData[i - 1];\n returnVal[returnVal.length - 1]['size'] = criteriaListVal.size;\n i = i + 1;\n } else {\n i = i + 2;\n let criteriaListVal = this.getCriteriaDetailsFromriteriaListOriginal(splitData[i].substring(0, splitData[i].length - 2), splitData[i].substr(splitData[i].length - 1, 1));\n returnVal.push({ 'GCOName': criteriaListVal.GCOName, 'longLabel': criteriaListVal.longLabel, 'typeOfField': criteriaListVal.typeOfField, 'size': criteriaListVal.size, 'shortLabel': criteriaListVal.shortLabel });\n returnVal[returnVal.length - 1]['en'] = criteriaListVal.longLabel.split(this.splitChar)[1];\n returnVal[returnVal.length - 1]['fr'] = criteriaListVal.longLabel.split(this.splitChar)[0];\n returnVal[returnVal.length - 1]['value'] = this.dateVueValue[dateFormat];\n returnVal[returnVal.length - 1]['size'] = criteriaListVal.size;\n i = i + 1;\n }\n }\n else if (splitData[i] === '4') {\n i = i + 2;\n let criteriaListVal = this.getCriteriaDetailsFromriteriaListOriginal(splitData[i].substring(0, splitData[i].length - 2), splitData[i].substr(splitData[i].length - 1, 1));\n returnVal.push({ 'GCOName': criteriaListVal.GCOName, 'longLabel': criteriaListVal.longLabel, 'typeOfField': criteriaListVal.typeOfField, 'size': criteriaListVal.size, 'shortLabel': criteriaListVal.shortLabel });\n returnVal[returnVal.length - 1]['en'] = criteriaListVal.longLabel.split(this.splitChar)[1];\n returnVal[returnVal.length - 1]['fr'] = criteriaListVal.longLabel.split(this.splitChar)[0];\n returnVal[returnVal.length - 1]['value'] = undefined;\n returnVal[returnVal.length - 1]['size'] = criteriaListVal.size;\n i = i + 1;\n }\n }\n }\n return returnVal;\n }\n\n getCriteriaDetailsFromriteriaListOriginal(data, type) {\n const filterData = this.criteriaListOringinal.filter(z => z.GCOName === data && z.typeOfField.toString() === type.toString());\n if (filterData.length > 0) {\n return filterData[0];\n }\n }\n\n saveVueDetails() {\n\n this.selectedItemType = undefined;\n this.selectedItemValue = undefined;\n this.selectedItemIndex = undefined;\n this.vueEditIndex = undefined;\n this.vueEditValue = undefined;\n\n this.isVueDetailSave = true;\n this.openDialog(undefined);\n }\n\n updateVueDetails() {\n\n this.selectedItemType = undefined;\n this.selectedItemValue = undefined;\n this.selectedItemIndex = undefined;\n this.vueEditIndex = undefined;\n this.vueEditValue = undefined;\n\n this.openDialogUpdate(this.selectedVueIPNDetail);\n }\n\n saveVueDetailsData(): string {\n let saveQuery: string;\n if (this.vueList.length > 0) {\n const listCount = this.vueList.length;\n saveQuery = listCount.toString();\n for (const item of this.vueList) {\n const affichDataType = item.type === 1 ? \"2\" : item.type === 3 ? item.type.toString() : (item.type === 4 || item.type === 5) ? item.type.toString() : \"1\";\n if (affichDataType === '1') {\n saveQuery = `${saveQuery}@${affichDataType}@0@${item.size}@${item.GCOName}_${item.type}@${item.type}`;\n } else if (affichDataType === '2') {\n let itemValue = item.name.substr(item.name.indexOf('[') + 1, (item.name.length - item.name.indexOf('[') - 2));\n if (itemValue === this.utilService.getTranslateName(`NEW_QUERY.CHARACTER_LIST.COMPACT`)) {\n saveQuery = `${saveQuery}@${affichDataType}@0@${item.GCOName}_1@1@2@0`;\n } else if (itemValue === this.utilService.getTranslateName(`NEW_QUERY.CHARACTER_LIST.INDEX`)) {\n saveQuery = `${saveQuery}@${affichDataType}@0@${item.GCOName}_1@1@3@0`;\n } else if (itemValue.split(',')[0] === this.utilService.getTranslateName(`NEW_QUERY.CHARACTER_LIST.ALL`)) {\n saveQuery = `${saveQuery}@${affichDataType}@0@${item.GCOName}_1@1@1@0`;\n } else {\n if (itemValue.split(',').length > 0) {\n saveQuery = `${saveQuery}@${affichDataType}@0@${item.GCOName}_1@1@0@${itemValue.split(',').length}`;\n for (const valItem of itemValue.split(',')) {\n if (valItem.length !== 6) {\n let emptySpace = '';\n for (let x = 0; x < (6 - valItem.length); x++) {\n emptySpace = `${emptySpace} `;\n }\n saveQuery = `${saveQuery}@0@0@${valItem}${emptySpace}`;\n } else {\n saveQuery = `${saveQuery}@0@0@${valItem}`;\n }\n }\n }\n }\n } else if (affichDataType === '4') {\n saveQuery = `${saveQuery}@${affichDataType}@0@${item.GCOName}_4@4`;\n } else if (affichDataType === '3') {\n let itemValue = item.name.substr(item.name.indexOf('[') + 1, (item.name.length - item.name.indexOf('[') - 2))\n const indexval = this.dateVueValue.indexOf(itemValue);\n if (indexval !== -1) {\n saveQuery = `${saveQuery}@${affichDataType}@${indexval}@0@${item.GCOName}_3@3`;\n } else {\n saveQuery = `${saveQuery}@${affichDataType}@9@${itemValue}@${item.GCOName}_3@3`;\n }\n }\n }\n if (saveQuery.length > 5) {\n saveQuery = `${saveQuery}@`;\n return saveQuery;\n }\n }\n }\n\n clickRegroupmentSec(event) {\n event.stopPropagation();\n this.executeBtn = false;\n this.checkPopulationEmpty();\n if (!this.isCheckPopulationEmpty) {\n this.toastyService.warning(this.utilService.getTranslateName(`ERROR.POPULATION_RIGHTS`));\n return;\n }\n this.disableExecuteSection = false;\n this.populateSection = false;\n this.groupSection = true;\n this.vueSection = false;\n this.blnDelay = false;\n this.selectedItemType = undefined;\n this.selectedItemValue = undefined;\n this.groupingSelectedList = [];\n this.groupList = [];\n this.requestStoresData = this.requestService.getAllRequestData();\n if (typeof (this.requestStoresData[this.reqActive].regroupment) !== 'undefined') {\n this.groupList = this.requestStoresData[this.reqActive].regroupment;\n }\n }\n\n clickPopulationSec(event) {\n event.stopPropagation();\n this.populateSection = true;\n this.groupSection = false;\n this.vueSection = false;\n this.blnDelay = false;\n this.selectedItemType = undefined;\n this.selectedItemValue = undefined;\n this.groupingSelectedList = [];\n }\n\n clickVueSec(event) {\n event.stopPropagation();\n this.executeBtn = false;\n this.checkPopulationEmpty();\n if (!this.isCheckPopulationEmpty) {\n this.toastyService.warning(this.utilService.getTranslateName(`ERROR.POPULATION_RIGHTS`));\n return;\n }\n this.disableExecuteSection = false;\n this.populateSection = false;\n this.groupSection = false;\n this.vueSection = true;\n this.blnDelay = false;\n this.selectedItemType = undefined;\n this.selectedItemValue = undefined;\n this.groupingSelectedList = [];\n this.vueList = [];\n this.requestStoresData = this.requestService.getAllRequestData();\n if (typeof (this.requestStoresData[this.requestStoresData.length - 1].vue) !== 'undefined') {\n this.vueList = this.requestStoresData[this.requestStoresData.length - 1].vue;\n }\n }\n\n getImageData() {\n if (!this.toggle) {\n return '../../assets/images/maximize.png';\n } else {\n return '../../assets/images/minimize.png';\n }\n }\n\n close() {\n this.isExecute = false;\n this.toggle = false;\n }\n\n saveExecuteQuery(type, index) {\n if (this.queryName === '' || this.queryName === undefined || type === 'saveas') {\n let saveQuery = {\n ipn: this.ipn,\n table: this.selectedTable,\n region: this.getFavoriteRegion(),\n isPublic: this.getPublicList()\n }\n const dialogRef = this.dialog.open(SaveQueryNameComponent, {\n width: '450px',\n data: { value: saveQuery }\n });\n //console.log(dialogRef,saveQuery);\n dialogRef.afterClosed().subscribe(res => {\n if (res) {\n if (res.name !== '') {\n this.queryName = res.name;\n this.saveQuery(res.name, res.isPublic);\n this.requestService.setTabName(this.queryName, this.reqActive);\n this.requestStoresData = this.requestService.getAllRequestData();\n //console.log(this.requestStoresData)\n if (type === 'close-tab') {\n this.selectedTable = undefined;\n this.isExecute = false;\n this.requestStoresData.splice(index, 1);\n this.requestService.removeRequestData(index + 1);\n this.reqActive = this.requestStoresData.length - 1;\n //console.log(this.requestStoresData);\n if ((this.requestStoresData.length < 4)) {\n this.getSelectedStoreData(this.requestStoresData[this.requestStoresData.length - 1]);\n }\n if (this.requestStoresData.length === 0) {\n localStorage.removeItem(\"region\")\n this.utilService.$favoriteConnecton$.next(\"\");\n\n\n\n const pathName = window.location.pathname;\n this.utilService.removeOpenedWindowName(pathName);\n const openedWindowNameList = this.utilService.getOpenedWindowNameList()\n if (openedWindowNameList.length > 0) {\n this.router.navigate([openedWindowNameList[openedWindowNameList.length - 1]]);\n } else {\n this.router.navigateByUrl('/home');\n }\n\n // this.router.navigateByUrl('/home');\n }\n }\n }\n }\n });\n } else {\n this.saveQuery(this.queryName, false);\n if (type === 'close-tab') {\n this.selectedTable = undefined;\n this.requestStoresData.splice(index, 1);\n this.requestService.removeRequestData(index + 1);\n this.reqActive = this.requestStoresData.length - 1;\n if ((this.requestStoresData.length < 4)) {\n this.getSelectedStoreData(this.requestStoresData[this.requestStoresData.length - 1]);\n }\n if (this.requestStoresData.length === 0) {\n localStorage.removeItem(\"region\")\n this.utilService.$favoriteConnecton$.next(\"\");\n\n const pathName = window.location.pathname;\n this.utilService.removeOpenedWindowName(pathName);\n const openedWindowNameList = this.utilService.getOpenedWindowNameList()\n if (openedWindowNameList.length > 0) {\n this.router.navigate([openedWindowNameList[openedWindowNameList.length - 1]]);\n } else {\n this.router.navigateByUrl('/home');\n }\n // this.router.navigateByUrl('/home');\n }\n }\n }\n }\n\n getPublicList() {\n if (this.region === 'Europe') {\n if (this.profile['roles'].includes('PIL_SAVE_PUBLIC') && this.getFavoriteRegion() === 'PIL') {\n return true;\n }\n } else {\n if (this.profile['roles'].includes('PIM_SAVE_PUBLIC') && this.getFavoriteRegion() === 'PIM') {\n return true;\n }\n }\n }\n\n saveQuery(name, isPublic) {\n this.saveQueryList = `${this.generatePopulationSectionSaveQuery(name, isPublic)}${this.generateConditionSaveQuery()}${this.generateGroupSaveQuery()}`;\n\n let queryParam = { \"input\": this.saveQueryList, \"region\": this.getFavoriteRegion() };\n\n this.apiService.saveObject(queryParam).subscribe(res => {\n this.matomoTracker.trackEvent(\"Query\", `Save ${this.region} - ${this.selectedTable} query name ${name}`, this.profile['login']);\n\n })\n }\n\n formSelectedQueryRequest() {\n let group = this.selectedQuery.split('CGroupBy')[1];\n let conditionGroup = this.selectedQuery.split('CGroupBy')[0];\n let condition = conditionGroup.split('CCond')[1];\n let populationGroup = conditionGroup.split('CCond')[0];\n let popfields = populationGroup.split('CPreReq')[1];\n let populationarr = popfields.split('@');\n const popData = this.dataList.filter(a => a.name === this.selectedTable)[0];\n\n for (const item of popData.fields) {\n let index = populationarr.indexOf(item.GCOName + '_' + item.GCOType);\n if (index > -1) {\n let value = populationarr[index + 1];\n if (item.field_name === 'TCM' || item.field_name === 'DLC') {\n if (value === '3') {\n value = this.utilService.getTranslateName(`NEW_QUERY.3MONTHS`);\n } else if (value === '6') {\n value = this.utilService.getTranslateName(`NEW_QUERY.6MONTHS`);\n } else if (value === '12') {\n value = this.utilService.getTranslateName(`NEW_QUERY.12MONTHS`);\n } else {\n value = this.utilService.getTranslateName(`NEW_QUERY.ALLDATA`);\n }\n }\n if (value !== '' && value !== undefined && value !== this.utilService.getTranslateName(`NEW_QUERY.ALLDATA`)) {\n item.selectedOption = value;\n this.populationList.push({ [item.field_name]: value.toUpperCase() });\n }\n }\n }\n this.characterList.characterListType1 = { 'group0': [] };\n this.characterList.characterListType2 = { 'group0': [] };\n this.characterList.characterListType3 = { 'group0': [] };\n\n this.requestService.addPopulationRequest(this.populationList, this.reqActive);\n let conditionArr = condition.split('@');\n conditionArr.splice(conditionArr.length - 2);\n let characterCount = conditionArr[2];\n let flagCount = conditionArr[3];\n let delayCount = conditionArr[4];\n conditionArr = conditionArr.slice(5);\n this.commonArr(conditionArr);\n if (group !== undefined && group !== '') {\n this.decodeGroupByData(group);\n }\n this.requestService.selectedQuery('', this.reqActive);\n this.requestService.duplicateSelectedQuery(this.selectedQuery, this.reqActive);\n this.selectedQuery = '';\n }\n\n commonArr(arr) {\n if (arr.length > 1) {\n let groupedData = arr.slice(0, 4);\n arr = arr.slice(4);\n let arrLen = parseInt(groupedData[2]) + parseInt(groupedData[3]);\n if (arr[4].includes('_2') || arr[2].includes('_1')) {\n this.commonConditionCharType(arr, arrLen, groupedData);\n } else if (arr[3].includes('_4') || arr[2].includes('_3')) {\n this.commonConditionFlagType(arr, arrLen, groupedData);\n } else if (arr[3].toLowerCase() === 'nchamp' || arr[3].toLowerCase() === 'ndate') {\n arrLen = parseInt(groupedData[2]);\n this.commonConditionDelayType(arr, arrLen, groupedData);\n }\n }\n }\n\n characterMTC() {\n return [{ name: 'EQUAL', value: '=' },\n { name: 'DANLIST', value: 'Dans liste' },\n { name: 'SUPERIOR', value: '>=' },\n { name: 'INFERIOR', value: '<=' },\n { name: 'CONTENT', value: 'Cont' },\n { name: 'POSITION', value: 'position' },\n { name: 'DIFFERENT', value: '<>' }];\n }\n\n commonConditionCharType(arr, arrLen, groupData) {\n let saufGroup = false;\n let lastIndex;\n if (groupData[1] !== 'S') {\n lastIndex = this.createNewGroup(1);\n this.characterList.characterListType1[lastIndex] = new Array();\n } else {\n saufGroup = true;\n lastIndex = Object.keys(this.characterList.characterListType1)[Object.keys(this.characterList.characterListType1).length - 1]\n }\n // let lastIndex = this.createNewGroup(1);\n // this.characterList.characterListType1[lastIndex] = new Array();\n for (let i = 0; i < arrLen; i++) {\n if ((arr[0] === '' || arr[0] === 'B') && (arr[1] === 'T' || arr[1] === 'S')) {\n groupData = arr.slice(0, 4);\n arr = arr.slice(4);\n saufGroup = true;\n }\n let value = '', format;\n if (arr[4].includes('_2')) {\n let obj = {\n operator: arr[0],\n posLen: arr[1],\n val: arr[2],\n size: arr[3],\n gcoName: arr[4],\n type: arr[5]\n }\n this.characterMTC().forEach((el, index) => {\n if (index + 1 === parseInt(obj.operator)) {\n format = el.value;\n }\n })\n obj.gcoName = obj.gcoName.replace('_2', '');\n let item = this.criteriaListOringinal.filter(el => obj.gcoName === el.GCOName);\n let name = item[0].longLabel.split(this.splitChar, 2)[this.getLangIndex(this.lang)] === undefined ? item[0].longLabel : item[0].longLabel.split(this.splitChar, 2)[this.getLangIndex(this.lang)];\n if (format === 'position') {\n value = `(${obj.posLen})= ${obj.val}`;\n } else if (format === 'Dans liste') {\n value = `${obj.val}`;\n const valueLenStr = `${obj.val}`;\n // for (let index5 = 0; index5 < obj.val.split(\"/\")[0].length; index5++) {\n // value = value.replace(\" \", \"\");\n // }\n if (valueLenStr.split(\"/\")[0].length > Number(obj.size)) {\n for (let index5 = 0; index5 < valueLenStr.split(\"/\")[0].length - Number(obj.size); index5++) {\n value = value.replace(\" \", \"\");\n }\n } else {\n let fValue = valueLenStr.split(\"/\")[0];\n for (let index = fValue.length; index < Number(obj.size); index++) {\n fValue = fValue + \" \";\n value = fValue;\n for (let i = 1; i < valueLenStr.split(\"/\").length; i++) {\n const element = valueLenStr.split(\"/\")[i];\n value = value + \"/\" + element;\n }\n }\n }\n } else {\n value = `${obj.val}`;\n }\n let isPreviousSauf = false;\n if (this.decodeSaufData[1] === 'S' && i === 0) {\n isPreviousSauf = true;\n } else {\n isPreviousSauf = false;\n }\n this.characterList.characterListType1[lastIndex].push({ \"name\": name, 'value': format !== 'Dans liste' && format !== 'position' ? format + ' ' + value : value, format: format, conditionType: (groupData[0] === '' && groupData[1] === 'S' && saufGroup && !isPreviousSauf) ? '3' : ((groupData[0] === 'B' && groupData[1] === 'S') || i === 0 || isPreviousSauf) ? '2' : (groupData[0] === '' && groupData[1] === 'S') ? '1' : '1', group: (groupData[0] === 'B' || (groupData[0] === '' && groupData[1] === 'S')) ? true : false, sauf: groupData[1] === 'T' ? false : true, \"type\": parseInt(obj.type), 'GCOName': item[0].GCOName, 'size': parseInt(obj.size) })\n this.decodeSaufData = groupData;\n saufGroup = false;\n arr = arr.slice(6);\n } else {\n let obj = {\n operator: arr[0],\n posLen: arr[1],\n gcoName: arr[2],\n type: arr[3]\n }\n let index = 4;\n for (let j = 0; j < arr[4]; j++) {\n value += ` [${arr[index + 3]}] ou`;\n index += 3;\n }\n if (value.slice(-2) === 'ou') {\n value = value.slice(0, -3)\n }\n obj.gcoName = obj.gcoName.replace('_1', '');\n let item = this.criteriaListOringinal.filter(el => obj.gcoName === el.GCOName);\n let name = item[0].longLabel.split(this.splitChar, 2)[this.getLangIndex(this.lang)] === undefined ? item[0].longLabel : item[0].longLabel.split(this.splitChar, 2)[this.getLangIndex(this.lang)];\n let isPreviousSauf = false;\n if (this.decodeSaufData[1] === 'S' && i === 0) {\n isPreviousSauf = true;\n } else {\n isPreviousSauf = false;\n }\n console.log(value);\n this.characterList.characterListType1[lastIndex].push({ \"name\": name, 'value': value, format: '', conditionType: (groupData[0] === '' && groupData[1] === 'S' && saufGroup && !isPreviousSauf) ? '3' : ((groupData[0] === 'B' && groupData[1] === 'S') || i === 0 || isPreviousSauf) ? '2' : (groupData[0] === '' && groupData[1] === 'S') ? '1' : '1', group: (groupData[0] === 'B' || (groupData[0] === '' && groupData[1] === 'S')) ? true : false, sauf: groupData[1] === 'T' ? false : true, \"type\": parseInt(obj.type), 'GCOName': item[0].GCOName, 'size': 0 })\n this.decodeSaufData = groupData;\n saufGroup = false;\n arr = arr.slice(index + 1);\n }\n }\n if (arr.length > 1) {\n this.commonArr(arr);\n }\n this.characterList.characterListType1 = this.enableSaufCheckbox(this.characterList.characterListType1, 'add');\n this.requestService.addRequestCharacter(this.characterList.characterListType1, this.reqActive, 1);\n }\n\n commonConditionFlagType(arr, arrLen, groupData) {\n let lastIndex, saufGroup = false;\n if (groupData[1] !== 'S') {\n lastIndex = this.createNewGroup(2);\n this.characterList.characterListType2[lastIndex] = new Array();\n } else {\n saufGroup = true;\n lastIndex = Object.keys(this.characterList.characterListType2)[Object.keys(this.characterList.characterListType2).length - 1]\n }\n for (let i = 0; i < arrLen; i++) {\n if ((arr[0] === '' || arr[0] === 'B') && (arr[1] === 'T' || arr[1] === 'S')) {\n groupData = arr.slice(0, 4);\n arr = arr.slice(4);\n saufGroup = true;\n }\n let value = '', formatVal = '', format;\n if (arr[3].includes('_4')) {\n let obj = {\n operator: arr[0],\n val: arr[1],\n size: arr[2],\n gcoName: arr[3],\n type: arr[4]\n }\n obj.gcoName = obj.gcoName.replace('_4', '');\n this.characterMTC().forEach((el, index) => {\n if (index + 1 === parseInt(obj.operator)) {\n format = el.value;\n }\n })\n if (obj.gcoName.charAt(0) !== 'N') {\n value = `= ${obj.val}`;\n } else {\n value = format + ' ' + obj.val;\n }\n let item = this.criteriaListOringinal.filter(el => obj.gcoName === el.GCOName);\n let name = item[0].longLabel.split(this.splitChar, 2)[this.getLangIndex(this.lang)] === undefined ? item[0].longLabel : item[0].longLabel.split(this.splitChar, 2)[this.getLangIndex(this.lang)];\n let isPreviousSauf = false;\n if (this.decodeSaufData[1] === 'S' && i === 0) {\n isPreviousSauf = true;\n } else {\n isPreviousSauf = false;\n }\n this.characterList.characterListType2[lastIndex].push({ \"name\": name, 'value': value, format: format, conditionType: (groupData[0] === '' && groupData[1] === 'S' && saufGroup && !isPreviousSauf) ? '3' : ((groupData[0] === 'B' && groupData[1] === 'S') || i === 0 || isPreviousSauf) ? '2' : (groupData[0] === '' && groupData[1] === 'S') ? '1' : '1', group: (groupData[0] === 'B' || (groupData[0] === '' && groupData[1] === 'S')) ? true : false, sauf: groupData[1] === 'T' ? false : true, \"type\": parseInt(obj.type), 'GCOName': item[0].GCOName, 'size': parseInt(obj.size) })\n this.decodeSaufData = groupData;\n saufGroup = false;\n arr = arr.slice(5);\n } else {\n let obj = {\n operator: arr[0],\n size: arr[1],\n gcoName: arr[2],\n type: arr[3]\n }\n if (arr[4] !== '') {\n obj['startday'] = arr[4].trim();\n obj['startweek'] = arr[5].trim();\n obj['startmonth'] = arr[6].trim();\n obj['startindMonth'] = arr[7].trim();\n obj['startyear'] = arr[8].trim();\n }\n if (arr[4] === '') {\n obj['endday'] = arr[5].trim();\n obj['endweek'] = arr[6].trim();\n obj['endmonth'] = arr[7].trim();\n obj['endindMonth'] = arr[8].trim();\n obj['endyear'] = arr[9].trim();\n }\n if (arr[4] !== '' && arr[9] !== '') {\n obj['endday'] = arr[9].trim();\n obj['endweek'] = arr[10].trim();\n obj['endmonth'] = arr[11].trim();\n obj['endindMonth'] = arr[12].trim();\n obj['endyear'] = arr[13].trim();\n }\n obj.gcoName = obj.gcoName.replace('_3', '');\n this.getDataFormat().forEach(el => {\n if (el.value !== 'week') {\n if (el.index === parseInt(obj.operator)) {\n if (parseInt(obj.operator) === 0) {\n if (obj['startday'] === '1') {\n format = this.utilService.getTranslateName(`NEW_QUERY.DATE_GROUPING.CONNUE`);\n formatVal = 'connue';\n } else if (obj['startday'] === '0') {\n format = this.utilService.getTranslateName(`NEW_QUERY.DATE_GROUPING.INCONNUE`);\n formatVal = 'inconnue';\n }\n } else {\n format = this.utilService.getTranslateName(`NEW_QUERY.DATE_GROUPING.${el.name}`);\n formatVal = el.value;\n }\n }\n }\n })\n value = this.decodeDateFormat(formatVal, obj, 3);\n let item = this.criteriaListOringinal.filter(el => obj.gcoName === el.GCOName);\n let name = item[0].longLabel.split(this.splitChar, 2)[this.getLangIndex(this.lang)] === undefined ? item[0].longLabel : item[0].longLabel.split(this.splitChar, 2)[this.getLangIndex(this.lang)];\n let isPreviousSauf = false;\n if (this.decodeSaufData[1] === 'S' && i === 0) {\n isPreviousSauf = true;\n } else {\n isPreviousSauf = false;\n }\n this.characterList.characterListType2[lastIndex].push({ \"name\": name + ` [${format}]`, 'value': value, conditionType: (groupData[0] === '' && groupData[1] === 'S' && saufGroup && !isPreviousSauf) ? '3' : ((groupData[0] === 'B' && groupData[1] === 'S') || i === 0 || isPreviousSauf) ? '2' : (groupData[0] === '' && groupData[1] === 'S') ? '1' : '1', group: (groupData[0] === 'B' || (groupData[0] === '' && groupData[1] === 'S')) ? true : false, sauf: groupData[1] === 'T' ? false : true, \"type\": parseInt(obj.type), 'GCOName': item[0].GCOName, 'size': parseInt(obj.size) });\n saufGroup = false;\n this.decodeSaufData = groupData;\n if (arr[4] !== '' && arr[9] !== '') {\n arr = arr.slice(14);\n } else {\n arr = arr.slice(10);\n }\n }\n }\n if (arr.length > 1) {\n this.commonArr(arr);\n }\n this.characterList.characterListType2 = this.enableSaufCheckbox(this.characterList.characterListType2, 'add');\n this.requestService.addRequestCharacter(this.characterList.characterListType2, this.reqActive, 2);\n }\n\n commonConditionDelayType(arr, arrLen, groupData) {\n let lastIndex;\n let saufGroup = false;\n if (groupData[1] !== 'S') {\n lastIndex = this.createNewGroup(3);\n this.characterList.characterListType3[lastIndex] = new Array();\n } else {\n saufGroup = true;\n lastIndex = Object.keys(this.characterList.characterListType3)[Object.keys(this.characterList.characterListType3).length - 1]\n }\n // let lastIndex = this.createNewGroup(3);\n // this.characterList.characterListType3[lastIndex] = new Array();\n for (let i = 0; i < arrLen; i++) {\n if ((arr[0] === '' || arr[0] === 'B') && (arr[1] === 'T' || arr[1] === 'S')) {\n groupData = arr.slice(0, 4);\n arr = arr.slice(4);\n saufGroup = true;\n }\n if (arr[0] === 'NClDelai_V2') {\n arr = arr.slice(1);\n }\n let value = '', operator = '', formatVal = '', format, name;\n let obj = {};\n this.characterMTC().forEach((el, index) => {\n if ((index + 1) === parseInt(arr[0])) {\n operator = el.value;\n }\n })\n for (let i = 0; i < this.getDataFormat().length; i++) {\n let el = this.getDataFormat()[i];\n if (el.value !== 'programme') {\n if (el.index === parseInt(arr[1])) {\n format = this.utilService.getTranslateName(`NEW_QUERY.DATE_GROUPING.${el.name}`);\n formatVal = el.value;\n }\n }\n }\n obj = this.delayObjFormat(arr, obj, formatVal);\n obj['operator'] = arr[0];\n obj['format'] = arr[1];\n obj['val'] = arr[2];\n let startName, endName;\n if (obj['startgcoName']) {\n obj['startgcoName'] = obj['startgcoName'].replace('_3', '');\n let item = this.criteriaListOringinal.filter(el => obj['startgcoName'] === el.GCOName);\n startName = item[0].longLabel.split(this.splitChar, 2)[this.getLangIndex(this.lang)] === undefined ? item[0].longLabel : item[0].longLabel.split(this.splitChar, 2)[this.getLangIndex(this.lang)];\n }\n if (obj['endgcoName']) {\n obj['endgcoName'] = obj['endgcoName'].replace('_3', '');\n let item = this.criteriaListOringinal.filter(el => obj['endgcoName'] === el.GCOName);\n endName = item[0].longLabel.split(this.splitChar, 2)[this.getLangIndex(this.lang)] === undefined ? item[0].longLabel : item[0].longLabel.split(this.splitChar, 2)[this.getLangIndex(this.lang)];\n }\n value = this.decodeDateFormat(formatVal, obj, 99);\n if (obj['starttext'] && obj['endtext']) {\n name = `${startName}-${endName}`;\n } else if (obj['starttext'] && obj['endday'] && obj['endday'] !== 'jj') {\n name = `${startName}-${value}`;\n } else if ((obj['starttext'] && obj['endday'] === 'jj')) {\n name = `${startName}-DATEDUJOUR`;\n } else if (obj['startday'] && obj['startday'] !== 'jj' && obj['endtext']) {\n name = `${value}-${endName}`;\n } else if (obj['startday'] === 'jj' && obj['endtext']) {\n name = `DATEDUJOUR-${endName}`;\n }\n let delayValue = operator + ' ' + obj['val'] + ' ' + format;\n if (formatVal === 'Free Format') {\n delayValue += ` ${obj['dayVal']}`;\n }\n let isPreviousSauf = false;\n if (this.decodeSaufData[1] === 'S' && i === 0) {\n isPreviousSauf = true;\n } else {\n isPreviousSauf = false;\n }\n this.characterList.characterListType3[lastIndex].push({ \"name\": name, 'value': delayValue, format: format, conditionType: (groupData[0] === '' && groupData[1] === 'S' && saufGroup && !isPreviousSauf) ? '3' : ((groupData[0] === 'B' && groupData[1] === 'S') || i === 0 || isPreviousSauf) ? '2' : (groupData[0] === '' && groupData[1] === 'S') ? '1' : '1', group: (groupData[0] === 'B' || (groupData[0] === '' && groupData[1] === 'S')) ? true : false, sauf: groupData[1] === 'T' ? false : true, 'delay': obj['delay'], type: 99 })\n this.decodeSaufData = groupData;\n if (arr[3].toLowerCase() === 'nchamp' && arr[7].toLowerCase() === 'nchamp' && formatVal === 'Free Format') {\n arr = arr.slice(12);\n } else if (arr[3].toLowerCase() === 'nchamp' && arr[7].toLowerCase() === 'nchamp' && formatVal !== 'Free Format') {\n arr = arr.slice(12);\n } else if ((arr[3].toLowerCase() === 'nchamp' && arr[7].toLowerCase() === 'ndate' || arr[3].toLowerCase() === 'ndate' && arr[9].toLowerCase() === 'nchamp') && formatVal === 'Free Format') {\n arr = arr.slice(15);\n } else if ((arr[3].toLowerCase() === 'nchamp' && arr[7].toLowerCase() === 'ndate' || arr[3].toLowerCase() === 'ndate' && arr[9].toLowerCase() === 'nchamp') && formatVal !== 'Free Format') {\n arr = arr.slice(14);\n }\n }\n saufGroup = false;\n if (arr.length > 1) {\n this.commonArr(arr);\n }\n this.characterList.characterListType3 = this.enableSaufCheckbox(this.characterList.characterListType3, 'add');\n this.requestService.addRequestCharacter(this.characterList.characterListType3, this.reqActive, 3);\n }\n\n decodeGroupByData(group) {\n let arrGroup = group.split('@');\n let groupLen = arrGroup.length / 5; // parseInt(arrGroup[2]);\n let actualGroupArr = arrGroup.slice(3);\n for (let i = 0; i < groupLen; i++) {\n let obj = {};\n if (actualGroupArr[0] === '1' || actualGroupArr[0] === '6') {\n obj = {\n 'gcoName': actualGroupArr[3],\n 'size': parseInt(actualGroupArr[2]),\n 'type': parseInt(actualGroupArr[4])\n }\n if (actualGroupArr[4] === '2') {\n obj['gcoName'] = obj['gcoName'].replace('_2', '');\n } else if (actualGroupArr[4] === '6') {\n obj['gcoName'] = obj['gcoName'].replace('_6', '');\n } else if (actualGroupArr[4] === '5') {\n obj['gcoName'] = obj['gcoName'].replace('_5', '');\n } else {\n obj['gcoName'] = obj['gcoName'].replace('_4', '');\n }\n let item = this.criteriaListOringinal.filter(el => obj['gcoName'] === el.GCOName);\n let name = item[0].longLabel.split(this.splitChar, 2)[this.getLangIndex(this.lang)] === undefined ? item[0].longLabel : item[0].longLabel.split(this.splitChar, 2)[this.getLangIndex(this.lang)];\n if (actualGroupArr[0] === '6') {\n if (actualGroupArr[1] === '1') {\n name += `[${this.utilService.getTranslateName('COMMON.SUM')}]`;\n }\n }\n this.groupList.push({ 'GCOName': obj['gcoName'], 'name': name, size: obj['size'], type: obj['type'] });\n actualGroupArr = actualGroupArr.slice(5);\n } else if (actualGroupArr[0] === '3') {\n let format;\n if (parseInt(actualGroupArr[1]) !== 9) {\n obj = {\n 'gcoName': actualGroupArr[3],\n 'operator': actualGroupArr[1],\n 'size': parseInt(actualGroupArr[2]),\n 'type': parseInt(actualGroupArr[4])\n }\n } else {\n obj = {\n 'gcoName': actualGroupArr[4],\n 'operator': actualGroupArr[1],\n 'size': parseInt(actualGroupArr[3]),\n 'type': parseInt(actualGroupArr[5]),\n 'val': actualGroupArr[2]\n }\n }\n this.getGroupDate().forEach(el => {\n if (el.index === parseInt(obj['operator'])) {\n format = this.utilService.getTranslateName(`NEW_QUERY.DATE_GROUPING.${el.value}`);\n }\n if (parseInt(obj['operator']) === 9) {\n format = 'Free Format';\n }\n })\n obj['gcoName'] = obj['gcoName'].replace('_3', '');\n if (obj['gcoName'].length > 1) {\n let item = this.criteriaListOringinal.filter(el => obj['gcoName'] === el.GCOName);\n if (item.length > 0) {\n let name = item[0].longLabel.split(this.splitChar, 2)[this.getLangIndex(this.lang)] === undefined ? item[0].longLabel : item[0].longLabel.split(this.splitChar, 2)[this.getLangIndex(this.lang)];\n if (format === 'Free Format') {\n name += `[${obj['val']}]`;\n } else {\n name += `[${format}]`;\n }\n this.groupList.push({ 'GCOName': obj['gcoName'], 'name': name, size: obj['size'], type: obj['type'] });\n }\n }\n if (format === 'Free Format') {\n actualGroupArr = actualGroupArr.slice(6);\n } else {\n actualGroupArr = actualGroupArr.slice(5);\n }\n } else if (actualGroupArr[0] === '2') {\n let index;\n obj = {\n 'gcoName': actualGroupArr[2],\n 'size': parseInt(actualGroupArr[1]),\n 'type': parseInt(actualGroupArr[3])\n }\n obj['gcoName'] = obj['gcoName'].replace('_1', '');\n let item = this.criteriaListOringinal.filter(el => obj['gcoName'] === el.GCOName);\n\n if (actualGroupArr[4] !== '0') {\n if (item.length > 0) {\n let name = item[0].longLabel.split(this.splitChar, 2)[this.getLangIndex(this.lang)] === undefined ? item[0].longLabel : item[0].longLabel.split(this.splitChar, 2)[this.getLangIndex(this.lang)];\n if (actualGroupArr[4] === '1') {\n if (!this.isEnableAllTextBox) {\n name += `[${this.utilService.getTranslateName(`NEW_QUERY.CHARACTER_LIST.ALL`)},10]`;\n } else {\n if (actualGroupArr[5] === \"0\") {\n name += `[${this.utilService.getTranslateName(`NEW_QUERY.CHARACTER_LIST.ALL`)}]`;\n } else {\n name += `[${this.utilService.getTranslateName(`NEW_QUERY.CHARACTER_LIST.ALL`)},${actualGroupArr[5]}]`;\n }\n }\n } else if (actualGroupArr[4] === '2') {\n name += `[${this.utilService.getTranslateName(`NEW_QUERY.CHARACTER_LIST.COMPACT`)}]`;\n } else {\n name += `[${this.utilService.getTranslateName(`NEW_QUERY.CHARACTER_LIST.INDEX`)}]`;\n }\n this.groupList.push({ 'GCOName': obj['gcoName'], 'name': name, size: obj['size'], type: obj['type'] });\n }\n } else {\n index = 5;\n if (item.length > 0) {\n let name = item[0].longLabel.split(this.splitChar, 2)[this.getLangIndex(this.lang)] === undefined ? item[0].longLabel : item[0].longLabel.split(this.splitChar, 2)[this.getLangIndex(this.lang)];\n name += `[`;\n for (let i = 0; i < parseInt(actualGroupArr[5]); i++) {\n name += `${actualGroupArr[index + 3]},`;\n index += 3;\n }\n if (name.slice(-1) === ',') {\n name = name.slice(0, -1)\n }\n name += `]`;\n this.groupList.push({ 'GCOName': obj['gcoName'], 'name': name, size: obj['size'], type: obj['type'] });\n }\n if (index) {\n actualGroupArr = actualGroupArr.slice(index + 1);\n }\n }\n if (index === undefined) {\n actualGroupArr = actualGroupArr.slice(6);\n }\n } else if (actualGroupArr[0] === '5') {\n let format, formatVal, value, name;\n for (let i = 0; i < this.getDataFormat().length; i++) {\n let el = this.getDataFormat()[i];\n if (el.value !== 'programme') {\n if (el.index === parseInt(actualGroupArr[2])) {\n format = this.utilService.getTranslateName(`NEW_QUERY.DATE_GROUPING.${el.name}`);\n formatVal = el.value;\n }\n }\n }\n obj = this.delayObjFormat(actualGroupArr, obj, formatVal);\n obj['format'] = actualGroupArr[2];\n let startName, endName;\n if (obj['startgcoName']) {\n obj['startgcoName'] = obj['startgcoName'].replace('_3', '');\n let item = this.criteriaListOringinal.filter(el => obj['startgcoName'] === el.GCOName);\n startName = item[0].longLabel.split(this.splitChar, 2)[this.getLangIndex(this.lang)] === undefined ? item[0].longLabel : item[0].longLabel.split(this.splitChar, 2)[this.getLangIndex(this.lang)];\n }\n if (obj['endgcoName']) {\n obj['endgcoName'] = obj['endgcoName'].replace('_3', '');\n let item = this.criteriaListOringinal.filter(el => obj['endgcoName'] === el.GCOName);\n endName = item[0].longLabel.split(this.splitChar, 2)[this.getLangIndex(this.lang)] === undefined ? item[0].longLabel : item[0].longLabel.split(this.splitChar, 2)[this.getLangIndex(this.lang)];\n }\n value = this.decodeDateFormat(formatVal, obj, 99);\n if (obj['starttext'] && obj['endtext']) {\n name = `${startName}-${endName}`;\n } else if (obj['starttext'] && obj['endday'] && obj['endday'] !== 'jj') {\n name = `${startName}-${value}`;\n } else if ((obj['starttext'] && obj['endday'] === 'jj')) {\n name = `${startName}-DATEDUJOUR`;\n } else if (obj['startday'] && obj['startday'] !== 'jj' && obj['endtext']) {\n name = `${value}-${endName}`;\n } else if (obj['startday'] === 'jj' && obj['endtext']) {\n name = `DATEDUJOUR-${endName}`;\n\n }\n if (formatVal === 'Free Format') {\n name += `[${format} ${obj['dayVal']}]`;\n format = format + ' ' + obj['dayVal'];\n } else {\n name += `[${format}]`;\n }\n this.groupList.push({ delay: obj['delay'], format: format, isSelected: false, name: name, type: 99 });\n if (actualGroupArr[3].toLowerCase() === 'nchamp' && actualGroupArr[7].toLowerCase() === 'nchamp' && formatVal === 'Free Format') {\n actualGroupArr = actualGroupArr.slice(12);\n } else if (actualGroupArr[3].toLowerCase() === 'nchamp' && actualGroupArr[7].toLowerCase() === 'nchamp' && formatVal !== 'Free Format') {\n actualGroupArr = actualGroupArr.slice(12);\n } else if ((actualGroupArr[3].toLowerCase() === 'nchamp' && actualGroupArr[7].toLowerCase() === 'ndate' || actualGroupArr[3].toLowerCase() === 'ndate' && actualGroupArr[9].toLowerCase() === 'nchamp') && formatVal === 'Free Format') {\n actualGroupArr = actualGroupArr.slice(15);\n } else if ((actualGroupArr[3].toLowerCase() === 'nchamp' && actualGroupArr[7].toLowerCase() === 'ndate' || actualGroupArr[3].toLowerCase() === 'ndate' && actualGroupArr[9].toLowerCase() === 'nchamp') && formatVal !== 'Free Format') {\n actualGroupArr = actualGroupArr.slice(14);\n }\n }\n }\n this.requestService.addRequestReGroupment(this.groupList, this.reqActive);\n }\n\n delayObjFormat(arr, obj, formatVal) {\n if (arr[3].toLowerCase() === 'nchamp' && arr[7].toLowerCase() === 'nchamp') {\n obj['endtext'] = arr[4].trim();\n obj['endgcoName'] = arr[5].trim();\n obj['endtype'] = arr[6].trim();\n obj['starttext'] = arr[8].trim();\n obj['startgcoName'] = arr[9].trim();\n obj['starttype'] = arr[10].trim();\n obj['delay'] = 0;\n if (formatVal === 'Free Format') {\n obj['dayVal'] = arr[11].trim();\n }\n }\n\n if (arr[3].toLowerCase() === 'nchamp' && arr[7].toLowerCase() === 'ndate') {\n obj['endtext'] = arr[4].trim();\n obj['endgcoName'] = arr[5].trim();\n obj['endtype'] = arr[6].trim();\n obj['startday'] = arr[8].trim();\n obj['startweek'] = arr[9].trim();\n obj['startmonth'] = arr[10].trim();\n obj['startindMonth'] = arr[11].trim();\n obj['startyear'] = arr[12].trim();\n obj['delay'] = 2;\n if (formatVal === 'Free Format') {\n obj['dayVal'] = arr[13].trim();\n }\n }\n\n if (arr[3].toLowerCase() === 'ndate' && arr[9].toLowerCase() === 'nchamp') {\n obj['endday'] = arr[4].trim();\n obj['endweek'] = arr[5].trim();\n obj['endmonth'] = arr[6].trim();\n obj['endindMonth'] = arr[7].trim();\n obj['endyear'] = arr[8].trim();\n obj['starttext'] = arr[10].trim();\n obj['startgcoName'] = arr[11].trim();\n obj['starttype'] = arr[12].trim();\n if (formatVal === 'Free Format') {\n obj['dayVal'] = arr[13].trim();\n }\n obj['delay'] = 4;\n }\n if (obj['startday'] === 'jj') {\n obj['delay'] = 1;\n }\n if (obj['endday'] === 'jj') {\n obj['delay'] = 3;\n }\n return obj;\n }\n\n decodeDateFormat(formatVal, obj, type) {\n let value = '', startOp, endOp;\n if (type === 3) {\n startOp = '>=';\n endOp = '<='\n } else {\n startOp = '';\n endOp = '';\n }\n if (formatVal === 'connue') {\n value = '=1';\n } else if (formatVal === 'inconnue') {\n value = '=0';\n } else if (formatVal === 'jour') {\n value = obj['startday'] !== undefined ? `${startOp}${obj['startday']}/${obj['startmonth']}/${obj['startyear']}` : '';\n value += obj['startday'] !== undefined && obj['endday'] !== undefined ? ' et ' : '';\n value += obj['endday'] !== undefined ? `${endOp}${obj['endday']}/${obj['endmonth']}/${obj['endyear']}` : '';\n } else if (formatVal === 'ASJ') {\n value = obj['startday'] !== undefined ? `${startOp}${obj['startday']}/${obj['startweek']}/${obj['startyear']}` : '';\n value += obj['startday'] !== undefined && obj['endday'] !== undefined ? ' et ' : '';\n value += obj['endday'] !== undefined ? `${endOp}${obj['endday']}/${obj['endweek']}/${obj['endyear']}` : '';\n } else if (formatVal === 'programme' || formatVal === 'week') {\n value = obj['startday'] !== undefined ? `${startOp}${obj['startweek']}/${obj['startyear']}` : '';\n value += obj['startday'] !== undefined && obj['endday'] !== undefined ? ' et ' : '';\n value += obj['endday'] !== undefined ? `${endOp}${obj['endweek']}/${obj['endyear']}` : '';\n } else if (formatVal === 'mois insustriel') {\n value = obj['startday'] !== undefined ? `${startOp}${obj['startindMonth']}/${obj['startyear']}` : '';\n value += obj['startday'] !== undefined && obj['endday'] !== undefined ? ' et ' : '';\n value += obj['endday'] !== undefined ? `${endOp}${obj['endindMonth']}/${obj['endyear']}` : '';\n } else if (formatVal === 'mois calendaire' || formatVal === 'semaines') {\n value = obj['startday'] !== undefined ? `${startOp}${obj['startmonth']}/${obj['startyear']}` : '';\n value += obj['startday'] !== undefined && obj['endday'] !== undefined ? ' et ' : '';\n value += obj['endday'] !== undefined ? `${endOp}${obj['endmonth']}/${obj['endyear']}` : '';\n } else if (formatVal === 'année') {\n value = obj['startday'] !== undefined ? `${startOp}${obj['startyear']}` : '';\n value += obj['startday'] !== undefined && obj['endday'] !== undefined ? ' et ' : '';\n value += obj['endday'] !== undefined ? `${endOp}${obj['endyear']}` : '';\n }\n return value;\n }\n\n generatePopulationSectionSaveQuery(name, isPublic) {\n const popData = this.dataList.filter(a => a.name === this.selectedTable)[0];\n let textVal, ipn;\n if (isPublic) {\n ipn = 'system';\n } else {\n ipn = this.ipn;\n }\n\n let rtnQuery = `REQU@${ipn}@${this.selectedTable}@${name}@CReq@3@CPreReq@`;\n let popQuery = `@${this.ipn}@${this.selectedTable}@1@${popData.fields.length}@`;\n for (const item of popData.fields) {\n if (item.field_name === 'TCM' || item.field_name === 'DLC') {\n if (item.selectedOption) {\n if (item.selectedOption.indexOf('3') > -1) {\n textVal = 3;\n } else if (item.selectedOption.indexOf('6') > -1) {\n textVal = 6;\n } else if (item.selectedOption.indexOf('12') > -1) {\n textVal = 12;\n } else {\n textVal = 0;\n }\n }\n }\n if (item.selectedOption === undefined || item.selectedOption.toLowerCase() === this.utilService.getTranslateName(`COMMON.ALL`).toLowerCase() && item.field_name !== 'TCM' && item.field_name !== 'DLC') {\n textVal = '';\n } else if (item.field_name !== 'TCM' && item.field_name !== 'DLC') {\n textVal = item.selectedOption;\n }\n popQuery += `${item.GCOName}_${item.GCOType}@${textVal}@`;\n }\n rtnQuery += `${5 + (popData.fields.length * 2)}${popQuery}`;\n\n return rtnQuery;\n }\n\n getCount(arr, count, type) {\n let firstCount = 0, secondCount = 0, data = {};\n if (count < arr.length) {\n for (let i = count; i < arr.length; i++) {\n if (arr[i].sauf) {\n count = i;\n break;\n }\n if (arr[i].type !== type && (i === 0 || arr[i].conditionType === '1')) {\n firstCount += 1;\n } else if (arr[i].type === type && (i === 0 || arr[i].conditionType === '1')) {\n secondCount += 1;\n }\n }\n data = {\n 'firstCount': firstCount,\n 'secondCount': secondCount,\n 'iterateItem': count\n }\n return data;\n }\n }\n\n getSaufCount(arr, count, type) {\n let firstCount = 0, secondCount = 0, data = {};\n if (count < arr.length) {\n for (let i = count; i < arr.length; i++) {\n if (!arr[i].sauf || (arr[i].conditionType === '2' && i !== count)) {\n if (count === arr.length - 1) {\n count = i + 1;\n } else {\n count = i;\n }\n break;\n }\n if (arr[i].type !== type && arr[i].sauf) {\n firstCount += 1;\n } else if (arr[i].type === type && arr[i].sauf) {\n secondCount += 1;\n }\n }\n data = {\n 'firstCount': firstCount,\n 'secondCount': secondCount,\n 'iterateItem': count\n }\n return data;\n }\n }\n\n generateConditionSaveQuery() {\n const characterMTC = [{ name: 'EQUAL', value: '=' },\n { name: 'DANLIST', value: 'Dans liste' },\n { name: 'SUPERIOR', value: '>=' },\n { name: 'INFERIOR', value: '<=' },\n { name: 'CONTENT', value: 'Cont' },\n { name: 'POSITION', value: 'position' },\n { name: 'DIFFERENT', value: '<>' }];\n\n let rtnValue = \"\";\n console.log(this.characterList.characterListType1);\n for (let item in this.characterList.characterListType1) {\n let commonList = \"\";\n let countChar = 0;\n let countMTC = 0;\n let count = 0;\n // for (let i = 0;i < this.characterList.characterListType1[item].length; i++) {\n // let iterator = this.characterList.characterListType1[item][i];\n // if (iterator.type !== 1) {\n // countChar += 1;\n // } else {\n // countMTC += 1;\n // }\n // }\n //console.log(this.characterList.characterListType1[item]);\n for (let i = 0; i < this.characterList.characterListType1[item].length; i++) {\n let iterator = this.characterList.characterListType1[item][i];\n console.log(\"srii\", \"tyie1\", this.characterList.characterListType1);\n console.log(this.characterList.characterListType1[item][i])\n if (iterator.conditionType === '2' && !iterator.sauf) {\n commonList = '';\n commonList = `${!iterator.isSaufGroup || iterator.isSaufGroup === undefined ? '' : 'B'}@${!iterator.sauf || iterator.sauf === undefined ? 'T' : 'S'}@${this.getCount(this.characterList.characterListType1[item], count, 1)['firstCount']}@${this.getCount(this.characterList.characterListType1[item], count, 1)['secondCount']}`;\n count = this.getCount(this.characterList.characterListType1[item], count, 1)['iterateItem'];\n }\n if (iterator.sauf) {\n commonList = `${!iterator.isSaufGroup && iterator.conditionType === '2' ? 'B' : ''}@${'S'}@${this.getSaufCount(this.characterList.characterListType1[item], count, 1)['firstCount']}@${this.getSaufCount(this.characterList.characterListType1[item], count, 1)['secondCount']}`;\n count = this.getSaufCount(this.characterList.characterListType1[item], count, 1)['iterateItem'];\n }\n let listForm = \"\";\n let operatorVal;\n if (iterator.type !== 1) {\n characterMTC.forEach((el, index) => {\n if (iterator.format === el.value) {\n listForm += `${index + 1}@`;\n operatorVal = el.value;\n }\n })\n if (iterator.format === 'Dans liste') {\n let val = iterator.value.split('/');\n listForm += `${val.length}@`;\n listForm += `${iterator.value}@${iterator.size}@${iterator.GCOName}_${iterator.type}@${iterator.type}@`;\n\n } else if (iterator.format === 'position') {\n let val = iterator.value.split(' ');\n // let pos = val[1].match(/\\((.*)\\)/)[1].replace('=', '');\n let pos = val[0].match(/\\((.*)\\)/)[0].replace('=', '').replace('(', '').replace(')', '');\n listForm += `${pos}@`;\n let value, emptySpace = ' ';\n // value = iterator.value.split(' ')[2].trim();\n value = iterator.value.split(' ')[1];\n for (let i = 0; i < iterator.size; i++) {\n if (value[i] === '' || value[i] === undefined) {\n value += `${emptySpace}`;\n }\n }\n listForm += `${value}@${iterator.size}@${iterator.GCOName}_${iterator.type}@${iterator.type}@`;\n\n } else {\n listForm += `0@`;\n let value, emptySpace = ' ';\n value = iterator.value.split(iterator.format)[1].trim();\n for (let i = 0; i < iterator.size; i++) {\n if (value[i] === '' || value[i] === undefined) {\n value += `${emptySpace}`;\n }\n }\n\n\n listForm += `${value}@${iterator.size}@${iterator.GCOName}_${iterator.type}@${iterator.type}@`;\n }\n } else {\n let arr = iterator.value.split('ou');\n listForm += `2@0@${iterator.GCOName}_${iterator.type}@${iterator.type}@${arr.length}@`\n for (let el of arr) {\n let replaceData = el.replace(/\\[/g, '').replace(/\\]/g, '');\n listForm += `0@0@${replaceData}@`;\n }\n }\n if (iterator.conditionType === '2' || iterator.conditionType === '3') {\n rtnValue += `${commonList}@${listForm}`;\n } else {\n rtnValue += `${listForm}`;\n }\n }\n }\n for (let item in this.characterList.characterListType2) {\n let commonList = \"\";\n let count = 0;\n for (let i = 0; i < this.characterList.characterListType2[item].length; i++) {\n let iterator = this.characterList.characterListType2[item][i];\n if (iterator.conditionType === '2' && !iterator.sauf) {\n commonList = '';\n commonList = `${!iterator.isSaufGroup || iterator.isSaufGroup === undefined ? '' : 'B'}@${!iterator.sauf || iterator.sauf === undefined ? 'T' : 'S'}@${this.getCount(this.characterList.characterListType2[item], count, 3)['secondCount']}@${this.getCount(this.characterList.characterListType2[item], count, 3)['firstCount']}`;\n count = this.getCount(this.characterList.characterListType2[item], count, 3)['iterateItem'];\n }\n if (iterator.sauf) {\n commonList = `${!iterator.isSaufGroup && iterator.conditionType === '2' ? 'B' : ''}@${'S'}@${this.getSaufCount(this.characterList.characterListType2[item], count, 3)['secondCount']}@${this.getSaufCount(this.characterList.characterListType2[item], count, 3)['firstCount']}`;\n count = this.getSaufCount(this.characterList.characterListType2[item], count, 3)['iterateItem'];\n }\n let listForm = \"\";\n if (iterator.GCOName.charAt(0) !== 'N' && iterator.type === 4) {\n let condVal = iterator.value.split(' ')[1];\n listForm += `1@${condVal}@0@${iterator.GCOName}_${iterator.type}@${iterator.type}@`;\n } else if (iterator.GCOName.charAt(0) === 'N') {\n let operatorVal;\n characterMTC.forEach((el, index) => {\n if (iterator.format === el.value) {\n listForm += `${index + 1}@`;\n operatorVal = el.value;\n }\n })\n let condVal = iterator.value.split(operatorVal)[1];\n listForm += `${condVal}@0@${iterator.GCOName}_${iterator.type}@${iterator.type}@`;\n } else {\n let date, startDate, endDate;\n let val = iterator.name.split('[');\n val = val[1].slice(0, -1);\n for (let i = 0; i < this.getDataFormat().length; i++) {\n let el = this.getDataFormat()[i];\n if (val === this.utilService.getTranslateName(`NEW_QUERY.DATE_GROUPING.${el.name}`)) {\n listForm += `${el.index}@`;\n break;\n }\n }\n listForm += `0@${iterator.GCOName}_${iterator.type}@${iterator.type}@`\n date = iterator.value.split(' et ');\n if (date.length > 1) {\n startDate = date[0].split('>=')[1];\n startDate = this.getFormatedDate(startDate, val);\n endDate = date[1].split('<=')[1];\n endDate = this.getFormatedDate(endDate, val);\n } else {\n if (date[0][0] === '>') {\n startDate = date[0].split('>=')[1];\n startDate = this.getFormatedDate(startDate, val);\n } else if (date[0][0] === '<') {\n endDate = date[0].split('<=')[1];\n endDate = this.getFormatedDate(endDate, val);\n } else {\n startDate = date[0].split('=')[1];\n startDate = endDate = this.getFormatedDate(startDate, val);\n }\n }\n listForm += `${startDate !== undefined ? startDate : ``}@${endDate === undefined ? `@` : `${endDate}@`}`;\n }\n if (iterator.conditionType === '2' || iterator.conditionType === '3') {\n rtnValue += `${commonList}@${listForm}`;\n } else {\n rtnValue += `${listForm}`;\n }\n }\n }\n for (let item in this.characterList.characterListType3) {\n let commonList = \"\";\n let count = 0;\n for (let i = 0; i < this.characterList.characterListType3[item].length; i++) {\n let iterator = this.characterList.characterListType3[item][i];\n commonList = '';\n if (item !== 'group0') {\n commonList += `@`;\n }\n if (iterator.conditionType === '2' && !iterator.sauf) {\n if (item === 'group0') {\n commonList += `${!iterator.isSaufGroup || iterator.isSaufGroup === undefined ? 'B' : 'B'}@${!iterator.sauf || iterator.sauf === undefined ? 'T' : 'S'}@${this.getCount(this.characterList.characterListType3[item], count, 99)['secondCount']}`;\n } else {\n commonList += `${!iterator.isSaufGroup || iterator.isSaufGroup === undefined ? '' : 'B'}@${!iterator.sauf || iterator.sauf === undefined ? 'T' : 'S'}@${this.getCount(this.characterList.characterListType3[item], count, 99)['secondCount']}`;\n }\n count = this.getCount(this.characterList.characterListType3[item], count, 99)['iterateItem'];\n }\n if (iterator.sauf) {\n commonList += `${!iterator.isSaufGroup && iterator.conditionType === '2' ? 'B' : ''}@${'S'}@${this.getSaufCount(this.characterList.characterListType3[item], count, 99)['secondCount']}`;\n count = this.getSaufCount(this.characterList.characterListType3[item], count, 99)['iterateItem'];\n }\n let listForm = \"\";\n let delayDateName1 = undefined;\n let delayDateName2 = undefined;\n let freeFormat = false;\n let valueData = iterator.value.split(' ');\n characterMTC.forEach((el, index) => {\n if (valueData[0] === el.value) {\n listForm += `${index + 1}@`\n }\n })\n for (let i = 0; i < this.getDataFormat().length; i++) {\n let el = this.getDataFormat()[i];\n // this.getDataFormat().forEach(el => {\n let translatedText = this.utilService.getTranslateName(`NEW_QUERY.DATE_GROUPING.${el.name}`);\n if (translatedText.toLowerCase() === iterator.format.toLowerCase()) {\n if (valueData[3] && isNaN(valueData[3]) && valueData.length > 2) {\n listForm += `${el.index}@`;\n break;\n } else if (el.value === 'Free Format' && valueData.length > 2) {\n freeFormat = true;\n listForm += `${el.index}@`;\n break;\n } else {\n listForm += `${el.index}@`;\n break;\n }\n }\n }\n listForm += `${valueData[1]}@`;\n let fieldText, startDate, endDate;\n startDate = iterator.name.split('-')[0];\n endDate = iterator.name.split('-')[1];\n if (iterator.delay === 0) {\n const criteriaFilterVal1 = this.criteriaListOringinal.filter(a => a.longLabel.split(this.splitChar, 2).length > 1 ? a.longLabel.split(this.splitChar, 2)[this.getLangIndex(this.lang)] === startDate : a.longLabel === startDate)[0];\n delayDateName1 = criteriaFilterVal1.GCOName;\n const criteriaFilterVal2 = this.criteriaListOringinal.filter(a => a.longLabel.split(this.splitChar, 2).length > 1 ? a.longLabel.split(this.splitChar, 2)[this.getLangIndex(this.lang)] === endDate : a.longLabel === endDate)[0];\n delayDateName2 = criteriaFilterVal2.GCOName;\n } else if (iterator.delay === 1 || iterator.delay === 2) {\n const criteriaFilterVal = this.criteriaListOringinal.filter(a => a.longLabel.split(this.splitChar, 2).length > 1 ? a.longLabel.split(this.splitChar, 2)[this.getLangIndex(this.lang)] === endDate : a.longLabel === endDate)[0];\n delayDateName1 = startDate;\n delayDateName2 = criteriaFilterVal.GCOName;\n } else if (iterator.delay === 3 || iterator.delay === 4) {\n const criteriaFilterVal = this.criteriaListOringinal.filter(a => a.longLabel.split(this.splitChar, 2).length > 1 ? a.longLabel.split(this.splitChar, 2)[this.getLangIndex(this.lang)] === startDate : a.longLabel === startDate)[0];\n delayDateName1 = criteriaFilterVal.GCOName;\n delayDateName2 = endDate;\n }\n if (endDate.includes('/') || endDate === 'DATEDUJOUR') {\n fieldText = 'NDate';\n endDate = this.getFormatedDate(endDate, iterator.format);\n } else {\n fieldText = 'NChamp';\n listForm += `${fieldText}@0@${delayDateName2}_3@3@`;\n }\n if (fieldText === 'NDate') {\n listForm += `${fieldText}@${endDate}@`;\n }\n if (startDate.includes('/') || startDate === 'DATEDUJOUR') {\n fieldText = 'NDate';\n startDate = this.getFormatedDate(startDate, iterator.format);\n } else {\n fieldText = 'NChamp';\n listForm += `${fieldText}@0@${delayDateName1}_3@3@`;\n }\n if (fieldText === 'NDate') {\n listForm += `${fieldText}@${startDate}@`;\n }\n if (freeFormat) {\n // listForm += `${valueData[3]}@`;\n listForm += `${valueData[3]}`;\n }\n if (iterator.conditionType === '2' || iterator.conditionType === '3') {\n rtnValue += `${commonList}@NClDelai_V2@${listForm}`;\n } else {\n rtnValue += `@NClDelai_V2@${listForm}`;\n }\n }\n }\n rtnValue += `@`;\n let commonCondQuery;\n if (rtnValue !== '') {\n let count = rtnValue.match(/@/gi).length;\n // if (this.this.characterList.characterListType1.group0)\n commonCondQuery = `@CCond@${count + 4}@${this.getCharacterLength()}`;\n commonCondQuery += rtnValue;\n } else {\n commonCondQuery = `@CCond@${4}@${this.getCharacterLength()}`;\n }\n return commonCondQuery;\n }\n\n // getSaufData(array) {\n // let type = array.filter(el => el.conditionType === '3' || el.sauf);\n // if (type.length && type[0].conditionType === '3') {\n // return false;\n // } else {\n // return true;\n // }\n // }\n\n getCharacterLength() {\n let listType = '';\n if (Object.keys(this.characterList.characterListType1).length === 1 && this.characterList.characterListType1.group0.length === 0) {\n listType += `0@`;\n } else {\n listType += `${this.generateCharCount(this.characterList.characterListType1)}@`;\n }\n if (Object.keys(this.characterList.characterListType2).length === 1 && this.characterList.characterListType2.group0.length === 0) {\n listType += `0@`;\n } else {\n listType += `${this.generateCharCount(this.characterList.characterListType2)}@`;\n }\n if (Object.keys(this.characterList.characterListType3).length === 1 && this.characterList.characterListType3.group0.length === 0) {\n listType += `0@`;\n } else {\n listType += `${this.generateCharCount(this.characterList.characterListType3)}@`;\n }\n return listType;\n }\n generateCharCount(iterator) {\n let count = 0;\n for (let item in iterator) {\n for (let i = 0; i < iterator[item].length; i++) {\n let elem = iterator[item][i];\n if (elem.conditionType === '2' || elem.conditionType === '3') {\n count += 1;\n }\n }\n }\n return count;\n }\n getFormatedDate(dateFormat, val) {\n let formatedDate;\n dateFormat = dateFormat.split('/');\n for (let i = 0; i < this.getDataFormat().length; i++) {\n let el = this.getDataFormat()[i];\n let translatedText = this.utilService.getTranslateName(`NEW_QUERY.DATE_GROUPING.${el.name}`);\n if (val.toLowerCase() === translatedText.toLowerCase()) {\n if (el.value === 'connue') {\n formatedDate = `${dateFormat}@0@0@0@0`;\n break;\n } else if (el.value === 'inconnue') {\n formatedDate = `${dateFormat}@0@0@0@0`;\n break;\n } else if (el.value === 'année' && dateFormat[0] !== 'DATEDUJOUR') {\n formatedDate = `0@0@0@0@${dateFormat[0]}`;\n break;\n } else if (el.value === 'mois insustriel' && dateFormat[0] !== 'DATEDUJOUR') {\n formatedDate = `0@0@0@${dateFormat[0]}@${dateFormat[1]}`;\n break;\n } else if (el.value === 'mois calendaire' && dateFormat[0] !== 'DATEDUJOUR') {\n formatedDate = `0@0@${dateFormat[0]}@0@${dateFormat[1]}`;\n break;\n } else if ((el.value === 'programme' || el.value === 'week') && dateFormat[0] !== 'DATEDUJOUR') {\n formatedDate = `0@${dateFormat[0]}@0@0@${dateFormat[1]}`;\n break;\n } if (el.value === 'ASJ' && dateFormat[0] !== 'DATEDUJOUR') {\n formatedDate = `${dateFormat[0]}@${dateFormat[1]}@0@0@${dateFormat[2]}`;\n break;\n } else if (dateFormat[0] === 'DATEDUJOUR') {\n formatedDate = `jj@ss@mm@mm@aaaa`;\n break;\n } else if (dateFormat[0] !== 'DATEDUJOUR') {\n formatedDate = `${dateFormat[0]}@0@${dateFormat[1]}@0@${dateFormat[2]}`;\n break;\n }\n }\n }\n return formatedDate;\n }\n\n getDataFormat() {\n return [{ name: 'CONNUE', value: 'connue', index: 0 },\n { name: 'JOUR_SAVE', value: 'jour', index: 1 },\n { name: 'PROGRAM_SAVE', value: 'programme', index: 2 },\n { name: 'WEEK_SAVE', value: 'week', index: 2 },\n { name: 'INDUSTRIAL_SAVE', value: 'mois insustriel', index: 3 },\n { name: 'CALENDAR_SAVE', value: 'mois calendaire', index: 4 },\n { name: 'Y', value: 'année', index: 5 },\n { name: 'WORKING_SAVE', value: 'semaines', index: 6 },\n { name: 'FF_SAVE', value: 'Free Format', index: 7 },\n { name: 'ASL_SAVE', value: 'ASJ', index: 8 },\n { name: 'INCONNUE', value: 'inconnue', index: 0 },\n ];\n }\n\n getGroupDate() {\n return [{ name: 'DCMY', value: 'jours', index: 1 },\n { name: 'DWY', value: 'jour/prog./année', index: 8 },\n { name: 'PY', value: 'programmes', index: 2 },\n { name: 'IMY', value: 'mois industriels', index: 3 },\n { name: 'CMY', value: 'mois calendaires', index: 4 },\n { name: 'Y', value: 'année', index: 5 },\n { name: 'FF', value: 'Free Format', index: 9 },\n { name: 'FKD', value: 'flag', index: 0 }];\n }\n\n\n generateGroupSaveQuery() {\n let type, listForm = \"\";\n for (let item of this.groupList) {\n if (item.type === 2 || item.type === 6) {\n type = 1;\n } else if (item.type === 4 || item.type === 5) {\n type = 6;\n } else if (item.type === 3) {\n type = 3;\n } else if (item.type === 1) {\n type = 2;\n } else if (item.type === 99) {\n type = 5;\n } else {\n type = 4;\n }\n let data, fieldType;\n if (item.type === 2 || item.type === 6) {\n listForm += `${type}@0@${item.size}@${item.GCOName}_${item.type}@${item.type}@`;\n } else if (item.type === 4 || item.type === 5) {\n data = item.name.split('[');\n if (data.length > 1 && (data[1].toLowerCase().includes(this.utilService.getTranslateName('COMMON.SUM').toLowerCase()))) {\n fieldType = 1;\n } else {\n fieldType = -1\n }\n listForm += `${type}@${fieldType}@${item.size}@${item.GCOName}_${item.type}@${item.type}@`;\n } else if (item.type === 3) {\n data = item.name.split('[');\n data = data[1].replace(']', '');\n let foundElement = this.getGroupDate().find(el => this.utilService.getTranslateName(`NEW_QUERY.DATE_GROUPING.${el.value}`) === data);\n if (foundElement !== undefined) {\n fieldType = foundElement.index;\n listForm += `${type}@${fieldType}@${item.size}@${item.GCOName}_${item.type}@${item.type}@`;\n } else {\n fieldType = '9';\n listForm += `${type}@${fieldType}@${data}@${item.size}@${item.GCOName}_${item.type}@${item.type}@`;\n }\n // for (let i = 0; i < this.getGroupDate().length; i++) {\n // let el = this.getGroupDate()[i];\n // if (this.utilService.getTranslateName(`NEW_QUERY.DATE_GROUPING.${el.value}`) === data) {\n // fieldType = el.index;\n // listForm += `${type}@${fieldType}@${item.size}@${item.GCOName}_${item.type}@${item.type}@`;\n // break;\n // } else if (this.getGroupDate().some(el => this.utilService.getTranslateName(`NEW_QUERY.DATE_GROUPING.${el.value}`) !== data)) {\n\n // break;\n // }\n // }\n } else if (item.type === 1) {\n let itemValue = item.name.substr(item.name.indexOf('[') + 1, (item.name.length - item.name.indexOf('[') - 2));\n listForm += `${type}@${item.size}@${item.GCOName}_${item.type}@${item.type}`;\n if (itemValue.split(',')[0] === this.utilService.getTranslateName(`NEW_QUERY.CHARACTER_LIST.COMPACT`)) {\n listForm += `@2@0@`;\n } else if (itemValue.split(',')[0] === this.utilService.getTranslateName(`NEW_QUERY.CHARACTER_LIST.INDEX`)) {\n listForm += `@3@0@`;\n } else if (itemValue.split(',')[0] === this.utilService.getTranslateName(`NEW_QUERY.CHARACTER_LIST.ALL`)) {\n if (typeof (itemValue.split(',')[1]) === 'undefined') {\n listForm += `@1@0@`;\n } else {\n listForm += `@1@${itemValue.split(',')[1]}@`;\n }\n } else if (itemValue.split(',').length > 0) {\n data = itemValue.split(',');\n listForm += `@0@${data.length}@`;\n for (let item of data) {\n listForm += `0@0@${item}@`\n }\n }\n } else if (item.type === 99) {\n let isFreeFormat = false, dayVal, formattedType;\n listForm += `${type}@NGDelai_V1@`;\n for (let i = 0; i < this.getDataFormat().length; i++) {\n let el = this.getDataFormat()[i];\n let translatedText = this.utilService.getTranslateName(`NEW_QUERY.DATE_GROUPING.${el.name}`);\n dayVal = item.format.split(' ');\n if (!isNaN(dayVal[1])) {\n formattedType = dayVal[0];\n } else {\n formattedType = item.format;\n }\n if (translatedText.toLowerCase() === formattedType.toLowerCase() && isNaN(dayVal[1])) {\n listForm += `${el.index}@`;\n break;\n } else if (translatedText.toLowerCase() === formattedType.toLowerCase() && !isNaN(dayVal[1])) {\n isFreeFormat = true;\n listForm += `${el.index}@`;\n break;\n }\n }\n // this.getDataFormat().forEach(el => {\n // let translatedText = this.utilService.getTranslateName(`NEW_QUERY.DATE_GROUPING.${el.name}`);\n // if (translatedText.toLowerCase() === item.format.toLowerCase()) {\n // listForm += `${el.index}@`;\n // break;\n // }\n // });\n let fieldText, startDate, endDate, delayDateName1, delayDateName2;\n startDate = item.name.split('-')[0];\n endDate = item.name.split('-')[1];\n endDate = endDate.split('[')[0];\n if (item.delay === 0) {\n const criteriaFilterVal1 = this.criteriaListOringinal.filter(a => a.longLabel.split(this.splitChar, 2).length > 1 ? a.longLabel.split(this.splitChar, 2)[this.getLangIndex(this.lang)] === startDate : a.longLabel === startDate)[0];\n delayDateName1 = criteriaFilterVal1.GCOName;\n const criteriaFilterVal2 = this.criteriaListOringinal.filter(a => a.longLabel.split(this.splitChar, 2).length > 1 ? a.longLabel.split(this.splitChar, 2)[this.getLangIndex(this.lang)] === endDate : a.longLabel === endDate)[0];\n delayDateName2 = criteriaFilterVal2.GCOName;\n } else if (item.delay === 1 || item.delay === 2) {\n const criteriaFilterVal = this.criteriaListOringinal.filter(a => a.longLabel.split(this.splitChar, 2).length > 1 ? a.longLabel.split(this.splitChar, 2)[this.getLangIndex(this.lang)] === endDate : a.longLabel === endDate)[0];\n delayDateName1 = startDate;\n delayDateName2 = criteriaFilterVal.GCOName;\n } else if (item.delay === 3 || item.delay === 4) {\n const criteriaFilterVal = this.criteriaListOringinal.filter(a => a.longLabel.split(this.splitChar, 2).length > 1 ? a.longLabel.split(this.splitChar, 2)[this.getLangIndex(this.lang)] === startDate : a.longLabel === startDate)[0];\n delayDateName1 = criteriaFilterVal.GCOName;\n delayDateName2 = endDate;\n }\n if (endDate.includes('/') || endDate === 'DATEDUJOUR' || (item.format.toLowerCase() === 'year' && !isNaN(endDate))) {\n fieldText = 'NDate';\n endDate = this.getFormatedDate(endDate, item.format);\n } else {\n fieldText = 'NChamp';\n listForm += `${fieldText}@0@${delayDateName2}_3@3@`;\n }\n if (fieldText === 'NDate') {\n listForm += `${fieldText}@${endDate}@`;\n }\n if (startDate.includes('/') || startDate === 'DATEDUJOUR' || (item.format.toLowerCase() === 'year' && !isNaN(startDate))) {\n fieldText = 'NDate';\n startDate = this.getFormatedDate(startDate, item.format);\n } else {\n fieldText = 'NChamp';\n if (dayVal.length > 1) {\n listForm += `${fieldText}@0@${delayDateName1}_3@3@`;\n } else {\n listForm += `${fieldText}@0@${delayDateName1}_3@3@@`;\n }\n }\n if (fieldText === 'NDate') {\n listForm += `${fieldText}@${startDate}@@`;\n }\n if (isFreeFormat) {\n listForm += `${dayVal[1]}@`;\n }\n }\n }\n let commonCondQuery;\n if (this.groupList.length > 0) {\n let count = listForm.match(/@/gi).length;\n commonCondQuery = `@CGroupBy@${count + 2}@${this.groupList.length}@${listForm}@`;\n } else {\n commonCondQuery = `@CGroupBy@${2}@${this.groupList.length}@@`;\n }\n return commonCondQuery;\n }\n\n rtnDataStatus(event) {\n this.blnExecuteDataStatus = event;\n }\n\n rtnTotalRowsData(event) {\n this.rtnTotalRowsLength = event;\n }\n\n rtnResultColumns(event) {\n this.rtnRsultColumns = event;\n }\n\n rtnExecErr(event) {\n if (event) {\n this.isExecute = false;\n }\n }\n\n alertErrorMsg(displayMsg): void {\n\n const dialogRef = this.dialog.open(AlertConfirmationComponent, {\n disableClose: true,\n width: '550px',\n data: { 'display': displayMsg, 'isText': false, 'isAlert': true }\n });\n\n dialogRef.afterClosed().subscribe(result => {\n if (result === true) {\n // this.dialogRef.close({ name: this.queryName, isPublic: this.isPublic });\n return;\n }\n })\n }\n\n\n moveRtSection() {\n //console.log(\"double click\");\n this.moveRight()\n }\n}\n","export default \".close-icon {\\n float: right;\\n cursor: pointer;\\n}\\n\\n.custom-scroll-bar {\\n height: 250px;\\n overflow-y: scroll;\\n overflow-x: hidden;\\n margin-right: 5px;\\n}\\n\\n.custom-scroll-bar::-webkit-scrollbar {\\n width: 10px;\\n}\\n\\n.custom-scroll-bar::-webkit-scrollbar-thumb {\\n background-color: #E9EEF0;\\n border-radius: 5px;\\n}\\n\\n.row {\\n display: inline-flex;\\n width: 100%;\\n height: 30px;\\n}\\n\\n.column1 {\\n width: 62%;\\n}\\n\\n.column2 {\\n width: 35%;\\n line-height: 30px;\\n}\\n\\n.condition-class {\\n font-size: 12px;\\n font-weight: 500;\\n}\\n\\n.condition-space {\\n margin-left: 5%;\\n}\\n\\n.condition-space-bracket {\\n margin-left: 2%;\\n}\\n\\n.last {\\n display: none;\\n}\\n\\n.mat-dialog-container {\\n height: 430px;\\n}\\n\\n.custom-delay-scroll-bar::-webkit-scrollbar-thumb {\\n background-color: #E9EEF0;\\n border-radius: 5px;\\n}\\n\\n.list-options a {\\n display: block;\\n padding: 7px;\\n text-decoration: none !important;\\n font-family: Roboto, \\\"Helvetica Neue\\\", sans-serif;\\n font-size: 12px;\\n font-weight: 400;\\n}\\n\\n.list-options a:hover {\\n background-color: #f5f5ff;\\n}\\n\\n.button-style {\\n width: 60px;\\n height: 36px;\\n font-family: Roboto, \\\"Helvetica Neue\\\", sans-serif;\\n font-size: 13px;\\n font-weight: 500;\\n text-align: center;\\n border: 0px solid;\\n background-color: #FFCC33;\\n padding: 0 !important;\\n float: right;\\n cursor: pointer;\\n}\\n/*# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi91c3Ivc3JjL3NyYy9hcHAvY29tcG9uZW50L3F1ZXJ5L3ByZXZpZXctZGlhbG9nL3ByZXZpZXctZGlhbG9nLmNvbXBvbmVudC5zY3NzIiwic3JjL2FwcC9jb21wb25lbnQvcXVlcnkvcHJldmlldy1kaWFsb2cvcHJldmlldy1kaWFsb2cuY29tcG9uZW50LnNjc3MiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUE7RUFDSSxZQUFBO0VBQ0EsZUFBQTtBQ0NKOztBRENBO0VBRUUsYUFBQTtFQUNBLGtCQUFBO0VBQ0Esa0JBQUE7RUFDQSxpQkFBQTtBQ0NGOztBREVBO0VBQ0UsV0FBQTtBQ0NGOztBREVBO0VBRUUseUJBQUE7RUFDQSxrQkFBQTtBQ0FGOztBREVBO0VBQ0Usb0JBQUE7RUFDQSxXQUFBO0VBQ0EsWUFBQTtBQ0NGOztBRENBO0VBQ0ksVUFBQTtBQ0VKOztBREFBO0VBQ0UsVUFBQTtFQUNBLGlCQUFBO0FDR0Y7O0FEREE7RUFDRSxlQUFBO0VBQ0EsZ0JBQUE7QUNJRjs7QURGQTtFQUNFLGVBQUE7QUNLRjs7QURIQTtFQUNFLGVBQUE7QUNNRjs7QURKQTtFQUNFLGFBQUE7QUNPRjs7QURMQTtFQUNFLGFBQUE7QUNRRjs7QUROQTtFQUNFLHlCQUFBO0VBQ0Esa0JBQUE7QUNTRjs7QUROQTtFQUNFLGNBQUE7RUFDQSxZQUFBO0VBQ0EsZ0NBQUE7RUFDQSxpREFBQTtFQUNBLGVBQUE7RUFDQSxnQkFBQTtBQ1NGOztBRE5BO0VBQ0UseUJBQUE7QUNTRjs7QUROQTtFQUNFLFdBQUE7RUFDQSxZQUFBO0VBQ0EsaURBQUE7RUFDQSxlQUFBO0VBQ0EsZ0JBQUE7RUFDQSxrQkFBQTtFQUNBLGlCQUFBO0VBQ0EseUJBQUE7RUFDQSxxQkFBQTtFQUNBLFlBQUE7RUFDQSxlQUFBO0FDU0YiLCJmaWxlIjoic3JjL2FwcC9jb21wb25lbnQvcXVlcnkvcHJldmlldy1kaWFsb2cvcHJldmlldy1kaWFsb2cuY29tcG9uZW50LnNjc3MiLCJzb3VyY2VzQ29udGVudCI6WyIuY2xvc2UtaWNvbiB7XG4gICAgZmxvYXQ6IHJpZ2h0O1xuICAgIGN1cnNvcjogcG9pbnRlcjtcbn1cbi5jdXN0b20tc2Nyb2xsLWJhcntcbiAgLy8gaGVpZ2h0Ojcwdmg7XG4gIGhlaWdodDogMjUwcHg7XG4gIG92ZXJmbG93LXk6c2Nyb2xsO1xuICBvdmVyZmxvdy14OiBoaWRkZW47XG4gIG1hcmdpbi1yaWdodDogNXB4O1xufVxuXG4uY3VzdG9tLXNjcm9sbC1iYXI6Oi13ZWJraXQtc2Nyb2xsYmFye1xuICB3aWR0aDogMTBweDtcbn1cblxuLmN1c3RvbS1zY3JvbGwtYmFyOjotd2Via2l0LXNjcm9sbGJhci10aHVtYntcbiAgLy8gYmFja2dyb3VuZDogcmdiYSgwLDAsMCwuMjYpO1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjRTlFRUYwO1xuICBib3JkZXItcmFkaXVzOiA1cHg7XG59XG4ucm93IHtcbiAgZGlzcGxheTogaW5saW5lLWZsZXg7XG4gIHdpZHRoOiAxMDAlO1xuICBoZWlnaHQ6IDMwcHg7XG59XG4uY29sdW1uMSB7XG4gICAgd2lkdGg6IDYyJTtcbn1cbi5jb2x1bW4yIHtcbiAgd2lkdGg6IDM1JTtcbiAgbGluZS1oZWlnaHQ6IDMwcHg7XG59XG4uY29uZGl0aW9uLWNsYXNzIHtcbiAgZm9udC1zaXplOiAxMnB4O1xuICBmb250LXdlaWdodDogNTAwO1xufVxuLmNvbmRpdGlvbi1zcGFjZSB7XG4gIG1hcmdpbi1sZWZ0OiA1JTtcbn1cbi5jb25kaXRpb24tc3BhY2UtYnJhY2tldCB7XG4gIG1hcmdpbi1sZWZ0OiAyJTtcbn1cbi5sYXN0IHtcbiAgZGlzcGxheTogbm9uZTtcbn1cbi5tYXQtZGlhbG9nLWNvbnRhaW5lciB7XG4gIGhlaWdodDogNDMwcHg7XG59XG4uY3VzdG9tLWRlbGF5LXNjcm9sbC1iYXI6Oi13ZWJraXQtc2Nyb2xsYmFyLXRodW1ie1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjRTlFRUYwO1xuICBib3JkZXItcmFkaXVzOiA1cHg7XG59XG5cbi5saXN0LW9wdGlvbnMgYXtcbiAgZGlzcGxheTogYmxvY2s7XG4gIHBhZGRpbmc6IDdweDtcbiAgdGV4dC1kZWNvcmF0aW9uOiBub25lICFpbXBvcnRhbnQ7XG4gIGZvbnQtZmFtaWx5OiBSb2JvdG8sIFwiSGVsdmV0aWNhIE5ldWVcIiwgc2Fucy1zZXJpZjtcbiAgZm9udC1zaXplOiAxMnB4O1xuICBmb250LXdlaWdodDogNDAwO1xufVxuXG4ubGlzdC1vcHRpb25zIGE6aG92ZXIge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjZjVmNWZmO1xufVxuXG4uYnV0dG9uLXN0eWxlIHtcbiAgd2lkdGg6IDYwcHg7IFxuICBoZWlnaHQ6IDM2cHg7IFxuICBmb250LWZhbWlseTogUm9ib3RvLFwiSGVsdmV0aWNhIE5ldWVcIixzYW5zLXNlcmlmO1xuICBmb250LXNpemU6IDEzcHg7XG4gIGZvbnQtd2VpZ2h0OiA1MDA7XG4gIHRleHQtYWxpZ246IGNlbnRlcjsgXG4gIGJvcmRlcjogMHB4IHNvbGlkOyBcbiAgYmFja2dyb3VuZC1jb2xvcjogI0ZGQ0MzMztcbiAgcGFkZGluZzogMCAhaW1wb3J0YW50O1xuICBmbG9hdDogcmlnaHQ7XG4gIGN1cnNvcjogcG9pbnRlcjtcbn0iLCIuY2xvc2UtaWNvbiB7XG4gIGZsb2F0OiByaWdodDtcbiAgY3Vyc29yOiBwb2ludGVyO1xufVxuXG4uY3VzdG9tLXNjcm9sbC1iYXIge1xuICBoZWlnaHQ6IDI1MHB4O1xuICBvdmVyZmxvdy15OiBzY3JvbGw7XG4gIG92ZXJmbG93LXg6IGhpZGRlbjtcbiAgbWFyZ2luLXJpZ2h0OiA1cHg7XG59XG5cbi5jdXN0b20tc2Nyb2xsLWJhcjo6LXdlYmtpdC1zY3JvbGxiYXIge1xuICB3aWR0aDogMTBweDtcbn1cblxuLmN1c3RvbS1zY3JvbGwtYmFyOjotd2Via2l0LXNjcm9sbGJhci10aHVtYiB7XG4gIGJhY2tncm91bmQtY29sb3I6ICNFOUVFRjA7XG4gIGJvcmRlci1yYWRpdXM6IDVweDtcbn1cblxuLnJvdyB7XG4gIGRpc3BsYXk6IGlubGluZS1mbGV4O1xuICB3aWR0aDogMTAwJTtcbiAgaGVpZ2h0OiAzMHB4O1xufVxuXG4uY29sdW1uMSB7XG4gIHdpZHRoOiA2MiU7XG59XG5cbi5jb2x1bW4yIHtcbiAgd2lkdGg6IDM1JTtcbiAgbGluZS1oZWlnaHQ6IDMwcHg7XG59XG5cbi5jb25kaXRpb24tY2xhc3Mge1xuICBmb250LXNpemU6IDEycHg7XG4gIGZvbnQtd2VpZ2h0OiA1MDA7XG59XG5cbi5jb25kaXRpb24tc3BhY2Uge1xuICBtYXJnaW4tbGVmdDogNSU7XG59XG5cbi5jb25kaXRpb24tc3BhY2UtYnJhY2tldCB7XG4gIG1hcmdpbi1sZWZ0OiAyJTtcbn1cblxuLmxhc3Qge1xuICBkaXNwbGF5OiBub25lO1xufVxuXG4ubWF0LWRpYWxvZy1jb250YWluZXIge1xuICBoZWlnaHQ6IDQzMHB4O1xufVxuXG4uY3VzdG9tLWRlbGF5LXNjcm9sbC1iYXI6Oi13ZWJraXQtc2Nyb2xsYmFyLXRodW1iIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogI0U5RUVGMDtcbiAgYm9yZGVyLXJhZGl1czogNXB4O1xufVxuXG4ubGlzdC1vcHRpb25zIGEge1xuICBkaXNwbGF5OiBibG9jaztcbiAgcGFkZGluZzogN3B4O1xuICB0ZXh0LWRlY29yYXRpb246IG5vbmUgIWltcG9ydGFudDtcbiAgZm9udC1mYW1pbHk6IFJvYm90bywgXCJIZWx2ZXRpY2EgTmV1ZVwiLCBzYW5zLXNlcmlmO1xuICBmb250LXNpemU6IDEycHg7XG4gIGZvbnQtd2VpZ2h0OiA0MDA7XG59XG5cbi5saXN0LW9wdGlvbnMgYTpob3ZlciB7XG4gIGJhY2tncm91bmQtY29sb3I6ICNmNWY1ZmY7XG59XG5cbi5idXR0b24tc3R5bGUge1xuICB3aWR0aDogNjBweDtcbiAgaGVpZ2h0OiAzNnB4O1xuICBmb250LWZhbWlseTogUm9ib3RvLCBcIkhlbHZldGljYSBOZXVlXCIsIHNhbnMtc2VyaWY7XG4gIGZvbnQtc2l6ZTogMTNweDtcbiAgZm9udC13ZWlnaHQ6IDUwMDtcbiAgdGV4dC1hbGlnbjogY2VudGVyO1xuICBib3JkZXI6IDBweCBzb2xpZDtcbiAgYmFja2dyb3VuZC1jb2xvcjogI0ZGQ0MzMztcbiAgcGFkZGluZzogMCAhaW1wb3J0YW50O1xuICBmbG9hdDogcmlnaHQ7XG4gIGN1cnNvcjogcG9pbnRlcjtcbn0iXX0= */\"","import { Component, Inject } from '@angular/core';\nimport { MatDialog, MatDialogRef, MAT_DIALOG_DATA } from '@angular/material/dialog';\n// var moment = require('moment-timezone');\nimport 'moment/min/locales.min';\nimport moment from 'moment';\n\n@Component({\n selector: 'app-preview-dialog',\n templateUrl: './preview-dialog.component.html',\n styleUrls: ['./preview-dialog.component.scss'],\n })\n export class PreviewDialogComponent {\n previewData;\n constructor(\n public dialogRef: MatDialogRef,\n @Inject(MAT_DIALOG_DATA) public data: any) {\n this.previewData = data.value;\n }\n\n copyInputMessage() {\n var elm = document.getElementById('dialog_content'); \n if(window.getSelection) { \n var selection = window.getSelection();\n var range = document.createRange();\n range.selectNodeContents(elm);\n selection.removeAllRanges();\n selection.addRange(range);\n document.execCommand(\"Copy\");\n }\n }\n\n getLocalTime() {\n return moment.utc().format(\"DD-MM-YYYY HH:mm:ss\");\n }\n\n characterListTypeStatus(num) {\n if (this.previewData.characterList && this.previewData.characterList['characterListType' + num]) {\n for (let key in this.previewData.characterList['characterListType' + num]) {\n if (this.previewData.characterList['characterListType' + num][key].length > 0) {\n return true;\n }\n }\n }\n return false;\n }\n\n // keyPress(event) {\n // alert(event);\n // console.log('eeeeeee', event.key);\n // }\n characterListTypeSeprateStatus(num) {\n if (num < 3) {\n if (num === 1) {\n if (this.previewData.characterList['characterListType2']['group0'].length > 0 || this.previewData.characterList['characterListType3']['group0'].length > 0) {\n return true;\n }\n } else {\n if (this.previewData.characterList['characterListType' + (num + 1)]['group0'].length > 0) {\n return true;\n }\n }\n }\n return false;\n }\n\n getObjectKey(item) {\n return Object.keys(item);\n }\n\n getObjectValue(item) {\n return Object.values(item);\n }\n \n closePanel(): void {\n this.dialogRef.close();\n }\n \n }","import { NgModule, CUSTOM_ELEMENTS_SCHEMA } from '@angular/core';\nimport { CommonModule } from '@angular/common';\nimport { HttpClientModule, HttpClient } from '@angular/common/http';\nimport { FormsModule, ReactiveFormsModule } from '@angular/forms';\nimport { NgxPaginationModule } from 'ngx-pagination';\n\nimport { TranslateLoader, TranslateModule } from '@ngx-translate/core';\nimport { TranslateHttpLoader } from '@ngx-translate/http-loader';\nimport { AppRoutingModule } from '../../app-routing.module';\nimport { AppMaterialModule } from '../../material-module';\nimport { QueryMainScreenComponent } from './main-screen/main-screen.component';\nimport { GoupingListComponent } from './grouping/grouping-list/grouping-list.component';\nimport { DateGroupingComponent } from './grouping/date-grouping/date-grouping.component';\nimport { FlagGroupingComponent } from './grouping/flag-grouping/flag-grouping.component';\nimport { DelayGroupingComponent } from './grouping/delay-grouping/delay-grouping.component';\n\nimport { DayMaskDirective } from '../directives/day-mask.directive';\nimport { WeekMaskDirective } from '../directives/week-directive';\nimport { YearMaskDirective } from '../directives/year-mask.directive';\nimport { DayWeekMaskDirective } from '../directives/day-week-mask.directive';\nimport { DisableControlDirective } from '../directives/disableControl.directive';\nimport { PreviewDialogComponent } from './preview-dialog/preview-dialog.component';\nimport { CharacterListComponent } from './grouping/character-list/character-list.component';\nimport { characterGroupingList } from './grouping/character-grouping-list/character-grouping-list.component';\nimport { CharacterFlagListComponent } from './grouping/character-flag-list/character-flag-list.component';\nimport { DelayConditionComponent } from './grouping/delay-condition/delay-condition.component';\nimport { CharacterNumberListComponent } from './grouping/character-number-list/character-number-list.component';\nimport { CreatePrivateGroupComponent } from './grouping/create-private-group/create-private-group.component';\nimport { ColumnSegmentThreeComponent } from './column-segment-three/column-segment-three.component';\nimport { SaveQueryNameComponent } from './save-query-name/save-query-name.component';\nimport { ExportFileComponent } from './export-file/export-file.component';\n// export function HttpLoaderFactory(http: HttpClient) {\n// return new TranslateHttpLoader(http);\n\nimport { ResizeColumnDirective } from 'src/app/resize-column.directive';\n\nexport function createTranslateLoader(http: HttpClient) {\n return new TranslateHttpLoader(http, './assets/i18n/', '.json');\n}\n\n@NgModule({\n imports: [\n CommonModule,\n HttpClientModule,\n FormsModule,\n NgxPaginationModule,\n ReactiveFormsModule,\n AppMaterialModule,\n AppRoutingModule,\n TranslateModule.forRoot({\n loader: {\n provide: TranslateLoader,\n // useFactory: HttpLoaderFactory,\n useFactory: (createTranslateLoader),\n deps: [HttpClient]\n }\n })\n ],\n declarations: [\n QueryMainScreenComponent,\n GoupingListComponent,\n DateGroupingComponent,\n FlagGroupingComponent,\n DelayGroupingComponent,\n PreviewDialogComponent,\n SaveQueryNameComponent,\n DayMaskDirective,\n WeekMaskDirective,\n YearMaskDirective,\n DayWeekMaskDirective,\n DisableControlDirective,\n CharacterListComponent,\n characterGroupingList,\n CharacterFlagListComponent,\n DelayConditionComponent,\n CharacterNumberListComponent,\n CreatePrivateGroupComponent,\n ColumnSegmentThreeComponent,\n ExportFileComponent,\n ResizeColumnDirective,\n\n ], exports: [\n DayMaskDirective,\n WeekMaskDirective,\n YearMaskDirective,\n DisableControlDirective\n ],\n entryComponents: [\n PreviewDialogComponent,\n SaveQueryNameComponent,\n ExportFileComponent\n ],\n schemas: [CUSTOM_ELEMENTS_SCHEMA]\n})\nexport class QueryScreenModule { }","export default \".label {\\n display: block;\\n margin-bottom: 2%;\\n font-weight: 600;\\n}\\n\\n.mat-dialog-container {\\n height: 320px !important;\\n}\\n\\n.mat-dialog-title {\\n margin: 0 0 10px !important;\\n}\\n\\n.custom-scroll-bar {\\n height: 130px;\\n overflow-y: scroll;\\n overflow-x: hidden;\\n margin-right: 5px;\\n}\\n\\n.custom-scroll-bar::-webkit-scrollbar {\\n width: 10px;\\n}\\n\\n.custom-scroll-bar::-webkit-scrollbar-thumb {\\n background-color: #E9EEF0;\\n border-radius: 5px;\\n}\\n\\n.input-cls {\\n width: 70%;\\n height: 25px;\\n margin-bottom: 2%;\\n background-color: #ffffff;\\n border: 1px solid #E9EEF0;\\n color: #000000;\\n font-size: 12px;\\n}\\n\\n.public-check {\\n font-size: 12px;\\n}\\n\\n.button-style {\\n width: 70px;\\n height: 36px;\\n font-family: Roboto, \\\"Helvetica Neue\\\", sans-serif;\\n font-size: 11px;\\n font-weight: 500;\\n text-align: center;\\n border: 0px solid;\\n background-color: #FFCC33;\\n padding: 0 !important;\\n float: right;\\n cursor: pointer;\\n}\\n\\n.save-page {\\n height: 261px !important;\\n}\\n\\n.private-page {\\n height: 100px;\\n}\\n/*# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi91c3Ivc3JjL3NyYy9hcHAvY29tcG9uZW50L3F1ZXJ5L3NhdmUtcXVlcnktbmFtZS9zYXZlLXF1ZXJ5LW5hbWUuY29tcG9uZW50LnNjc3MiLCJzcmMvYXBwL2NvbXBvbmVudC9xdWVyeS9zYXZlLXF1ZXJ5LW5hbWUvc2F2ZS1xdWVyeS1uYW1lLmNvbXBvbmVudC5zY3NzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBO0VBQ0ksY0FBQTtFQUNBLGlCQUFBO0VBQ0EsZ0JBQUE7QUNDSjs7QURDQTtFQUNJLHdCQUFBO0FDRUo7O0FEQUE7RUFDSSwyQkFBQTtBQ0dKOztBRERBO0VBRUksYUFBQTtFQUNBLGtCQUFBO0VBQ0Esa0JBQUE7RUFDQSxpQkFBQTtBQ0dKOztBRERBO0VBQ0ksV0FBQTtBQ0lKOztBREZBO0VBQ0kseUJBQUE7RUFDQSxrQkFBQTtBQ0tKOztBREhBO0VBQ0ksVUFBQTtFQUNBLFlBQUE7RUFDQSxpQkFBQTtFQUNBLHlCQUFBO0VBQ0EseUJBQUE7RUFDQSxjQUFBO0VBQ0EsZUFBQTtBQ01KOztBREpBO0VBQ0ksZUFBQTtBQ09KOztBRExBO0VBQ0ksV0FBQTtFQUNBLFlBQUE7RUFDQSxpREFBQTtFQUNBLGVBQUE7RUFDQSxnQkFBQTtFQUNBLGtCQUFBO0VBQ0EsaUJBQUE7RUFDQSx5QkFBQTtFQUNBLHFCQUFBO0VBQ0EsWUFBQTtFQUNBLGVBQUE7QUNRSjs7QUROQTtFQUNJLHdCQUFBO0FDU0o7O0FEUEE7RUFDSSxhQUFBO0FDVUoiLCJmaWxlIjoic3JjL2FwcC9jb21wb25lbnQvcXVlcnkvc2F2ZS1xdWVyeS1uYW1lL3NhdmUtcXVlcnktbmFtZS5jb21wb25lbnQuc2NzcyIsInNvdXJjZXNDb250ZW50IjpbIi5sYWJlbCB7XG4gICAgZGlzcGxheTogYmxvY2s7XG4gICAgbWFyZ2luLWJvdHRvbTogMiU7XG4gICAgZm9udC13ZWlnaHQ6IDYwMDtcbn1cbi5tYXQtZGlhbG9nLWNvbnRhaW5lciB7XG4gICAgaGVpZ2h0OiAzMjBweCAhaW1wb3J0YW50O1xufVxuLm1hdC1kaWFsb2ctdGl0bGUge1xuICAgIG1hcmdpbjogMCAwIDEwcHggIWltcG9ydGFudDtcbn1cbi5jdXN0b20tc2Nyb2xsLWJhcntcbiAgICAvLyBoZWlnaHQ6NzB2aDtcbiAgICBoZWlnaHQ6IDEzMHB4O1xuICAgIG92ZXJmbG93LXk6c2Nyb2xsO1xuICAgIG92ZXJmbG93LXg6IGhpZGRlbjtcbiAgICBtYXJnaW4tcmlnaHQ6IDVweDtcbn1cbi5jdXN0b20tc2Nyb2xsLWJhcjo6LXdlYmtpdC1zY3JvbGxiYXJ7XG4gICAgd2lkdGg6IDEwcHg7XG59XG4uY3VzdG9tLXNjcm9sbC1iYXI6Oi13ZWJraXQtc2Nyb2xsYmFyLXRodW1ie1xuICAgIGJhY2tncm91bmQtY29sb3I6ICNFOUVFRjA7XG4gICAgYm9yZGVyLXJhZGl1czogNXB4O1xufVxuLmlucHV0LWNscyB7XG4gICAgd2lkdGg6IDcwJTtcbiAgICBoZWlnaHQ6IDI1cHg7XG4gICAgbWFyZ2luLWJvdHRvbTogMiU7IFxuICAgIGJhY2tncm91bmQtY29sb3I6ICNmZmZmZmY7IFxuICAgIGJvcmRlcjogMXB4IHNvbGlkICNFOUVFRjA7XG4gICAgY29sb3I6ICMwMDAwMDA7XG4gICAgZm9udC1zaXplOiAxMnB4O1xufVxuLnB1YmxpYy1jaGVjayB7XG4gICAgZm9udC1zaXplOiAxMnB4O1xufVxuLmJ1dHRvbi1zdHlsZSB7XG4gICAgd2lkdGg6IDcwcHg7IFxuICAgIGhlaWdodDogMzZweDsgXG4gICAgZm9udC1mYW1pbHk6IFJvYm90byxcIkhlbHZldGljYSBOZXVlXCIsc2Fucy1zZXJpZjtcbiAgICBmb250LXNpemU6IDExcHg7XG4gICAgZm9udC13ZWlnaHQ6IDUwMDtcbiAgICB0ZXh0LWFsaWduOiBjZW50ZXI7IFxuICAgIGJvcmRlcjogMHB4IHNvbGlkOyBcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjRkZDQzMzO1xuICAgIHBhZGRpbmc6IDAgIWltcG9ydGFudDtcbiAgICBmbG9hdDogcmlnaHQ7XG4gICAgY3Vyc29yOiBwb2ludGVyO1xufVxuLnNhdmUtcGFnZSB7XG4gICAgaGVpZ2h0OiAyNjFweCAhaW1wb3J0YW50O1xufVxuLnByaXZhdGUtcGFnZSB7XG4gICAgaGVpZ2h0OiAxMDBweDtcbn1cbiIsIi5sYWJlbCB7XG4gIGRpc3BsYXk6IGJsb2NrO1xuICBtYXJnaW4tYm90dG9tOiAyJTtcbiAgZm9udC13ZWlnaHQ6IDYwMDtcbn1cblxuLm1hdC1kaWFsb2ctY29udGFpbmVyIHtcbiAgaGVpZ2h0OiAzMjBweCAhaW1wb3J0YW50O1xufVxuXG4ubWF0LWRpYWxvZy10aXRsZSB7XG4gIG1hcmdpbjogMCAwIDEwcHggIWltcG9ydGFudDtcbn1cblxuLmN1c3RvbS1zY3JvbGwtYmFyIHtcbiAgaGVpZ2h0OiAxMzBweDtcbiAgb3ZlcmZsb3cteTogc2Nyb2xsO1xuICBvdmVyZmxvdy14OiBoaWRkZW47XG4gIG1hcmdpbi1yaWdodDogNXB4O1xufVxuXG4uY3VzdG9tLXNjcm9sbC1iYXI6Oi13ZWJraXQtc2Nyb2xsYmFyIHtcbiAgd2lkdGg6IDEwcHg7XG59XG5cbi5jdXN0b20tc2Nyb2xsLWJhcjo6LXdlYmtpdC1zY3JvbGxiYXItdGh1bWIge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjRTlFRUYwO1xuICBib3JkZXItcmFkaXVzOiA1cHg7XG59XG5cbi5pbnB1dC1jbHMge1xuICB3aWR0aDogNzAlO1xuICBoZWlnaHQ6IDI1cHg7XG4gIG1hcmdpbi1ib3R0b206IDIlO1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjZmZmZmZmO1xuICBib3JkZXI6IDFweCBzb2xpZCAjRTlFRUYwO1xuICBjb2xvcjogIzAwMDAwMDtcbiAgZm9udC1zaXplOiAxMnB4O1xufVxuXG4ucHVibGljLWNoZWNrIHtcbiAgZm9udC1zaXplOiAxMnB4O1xufVxuXG4uYnV0dG9uLXN0eWxlIHtcbiAgd2lkdGg6IDcwcHg7XG4gIGhlaWdodDogMzZweDtcbiAgZm9udC1mYW1pbHk6IFJvYm90bywgXCJIZWx2ZXRpY2EgTmV1ZVwiLCBzYW5zLXNlcmlmO1xuICBmb250LXNpemU6IDExcHg7XG4gIGZvbnQtd2VpZ2h0OiA1MDA7XG4gIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgYm9yZGVyOiAwcHggc29saWQ7XG4gIGJhY2tncm91bmQtY29sb3I6ICNGRkNDMzM7XG4gIHBhZGRpbmc6IDAgIWltcG9ydGFudDtcbiAgZmxvYXQ6IHJpZ2h0O1xuICBjdXJzb3I6IHBvaW50ZXI7XG59XG5cbi5zYXZlLXBhZ2Uge1xuICBoZWlnaHQ6IDI2MXB4ICFpbXBvcnRhbnQ7XG59XG5cbi5wcml2YXRlLXBhZ2Uge1xuICBoZWlnaHQ6IDEwMHB4O1xufSJdfQ== */\"","import { Component, Inject, AfterViewInit, OnChanges } from '@angular/core';\nimport { MatDialog, MatDialogRef, MAT_DIALOG_DATA } from '@angular/material/dialog';\nimport { BackendApiService } from '../../../services/backend-api/backend-api.service';\nimport { AlertConfirmationComponent } from '../../alert-confirmation/alert-confirmation.component';\nimport { UtilService } from '../../../services/util/util.service';\nimport { ToastyService } from 'ng2-toasty';\n\n@Component({\n selector: 'app-save-query-name',\n templateUrl: './save-query-name.component.html',\n styleUrls: ['./save-query-name.component.scss'],\n })\n export class SaveQueryNameComponent {\n dataObj;\n queryName: string;\n queryNameList: Array;\n isPublic: boolean = false;\n constructor(public dialogRef: MatDialogRef, @Inject(MAT_DIALOG_DATA) public data: any,\n readonly apiService: BackendApiService, public dialog: MatDialog, readonly utilService: UtilService,\n readonly toastyService: ToastyService) {\n this.dataObj = data.value;\n this.getNameList();\n if (this.data.type === 'private') {\n this.queryName = this.dataObj;\n }\n }\n \n getNameList() {\n let ipn;\n if (!this.isPublic) {\n ipn = this.dataObj.ipn;\n } else {\n ipn = 'system';\n }\n let queryParam = {\"input\" : `REQU@${ipn}@${this.dataObj.table}@@`, \"region\": this.dataObj.region };\n this.apiService.getSaveQueryName(queryParam).subscribe(res => {\n if (res.noObjects > 0) {\n let queryList = {\"input\" : `REQU@${ipn}@${this.dataObj.table}@@0@${res.noObjects}@`, \"region\": this.dataObj.region };\n this.apiService.getSaveQueryNameList(queryList).subscribe(elem => {\n this.queryNameList = elem.lists;\n }, error => {\n console.log(\"error\", error.message);\n });\n }\n }, error => {\n console.log(\"error\", error.message);\n });\n }\n\n changeNameList() {\n this.getNameList();\n }\n\n submit() {\n let queryList = [];\n if (this.queryNameList && this.queryNameList.length > 0) {\n this.queryNameList.forEach(el => {\n queryList.push(el.toLowerCase());\n });\n if (queryList.includes(this.queryName.toLowerCase())) {\n this.saveConfirmation();\n } else {\n this.dialogRef.close({name: this.queryName, isPublic : this.isPublic});\n }\n } else {\n this.dialogRef.close({name: this.queryName, isPublic : this.isPublic});\n }\n }\n\n saveConfirmation(): void {\n const dialogRef = this.dialog.open(AlertConfirmationComponent, {\n disableClose: true,\n width: '550px',\n data: { 'display': this.utilService.getTranslateName(`NEW_QUERY.QUERY_NAME_OVERWRITE`), 'isText': false }\n });\n \n dialogRef.afterClosed().subscribe(result => {\n if (result === true) {\n this.dialogRef.close({name: this.queryName, isPublic : this.isPublic});\n }\n })\n }\n\n cancel() {\n this.queryName = '';\n this.dialogRef.close({name: this.queryName});\n }\n }","export default \".realignment-data {\\n height: 540px;\\n width: 100%;\\n overflow-y: auto;\\n overflow-x: hidden;\\n font-family: Roboto, \\\"Helvetica Neue\\\", sans-serif;\\n font-size: 13px;\\n font-weight: 500;\\n}\\n.realignment-data .dialog-title {\\n padding: 0px 15px 0px 0px;\\n color: #000000;\\n font-family: Roboto, \\\"Helvetica Neue\\\", sans-serif;\\n font-size: 15px;\\n font-weight: 600;\\n line-height: 17px;\\n width: 146px;\\n text-align: left;\\n}\\n.realignment-data .realignment-table {\\n border-bottom: 1px solid #ccc;\\n width: 100%;\\n}\\n.realignment-data .realignment-table td,\\n.realignment-data .realignment-table tr {\\n border: 0px solid;\\n}\\n.realignment-data .item-right {\\n float: right;\\n}\\n.realignment-data .hrline-top {\\n width: 100%;\\n height: 10px;\\n border-bottom: 1px solid #ccc;\\n}\\n.realignment-data .hrline-bottom {\\n width: 100%;\\n height: 2px;\\n border-top: 1px solid #ccc;\\n}\\n.realignment-data .criteriaClass {\\n height: calc(100% - 235px);\\n}\\n.realignment-data .custom-scroll-bar {\\n margin-top: 10px;\\n height: 40vh;\\n overflow-y: scroll;\\n overflow-x: hidden;\\n margin-right: 5px;\\n}\\n.realignment-data .custom-scroll-bar::-webkit-scrollbar {\\n width: 10px;\\n}\\n.realignment-data .custom-scroll-bar::-webkit-scrollbar-thumb {\\n background-color: #E9EEF0;\\n border-radius: 5px;\\n}\\n.realignment-data ::ng-deep.mat-pseudo-checkbox {\\n display: none !important;\\n}\\n.realignment-data ::ng-deep .mat-list-base .mat-list-item .mat-list-item-content,\\n.realignment-data .mat-list-base .mat-list-option .mat-list-item-content {\\n padding: 0px 3px !important;\\n font-family: Roboto, \\\"Helvetica Neue\\\", sans-serif;\\n font-size: 11px;\\n font-weight: 400;\\n line-height: 13px !important;\\n}\\n.realignment-data .buttons {\\n width: 85px;\\n height: 30px !important;\\n font-family: Roboto, \\\"Helvetica Neue\\\", sans-serif;\\n font-size: 13px;\\n font-weight: 500;\\n text-align: center;\\n border: 0px solid;\\n background-color: #FFCC33;\\n padding: 0 !important;\\n border-radius: 0px;\\n cursor: pointer;\\n}\\n.realignment-data .select-list-blue {\\n background-color: #0077C8;\\n color: #ffffff;\\n}\\n.realignment-data .select-list-blue:hover {\\n background-color: #0077C8;\\n color: #ffffff;\\n}\\n.realignment-data .select-list-green {\\n background-color: #009B77;\\n color: #ffffff;\\n}\\n.realignment-data .select-list-green:hover {\\n background-color: #009B77;\\n color: #ffffff;\\n}\\n.realignment-data::-webkit-scrollbar {\\n width: 1px;\\n}\\n.realignment-data::-webkit-scrollbar-thumb {\\n background-color: transparent;\\n border-radius: 5px;\\n}\\n.cls-displaynone {\\n display: none !important;\\n}\\n/*# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi91c3Ivc3JjL3NyYy9hcHAvY29tcG9uZW50L3JlYWxpZ25tZW50LW1haW4vcmVhbGlnbm1lbnQtZGF0YS9yZWFsaWdubWVudC1kYXRhLmNvbXBvbmVudC5zY3NzIiwic3JjL2FwcC9jb21wb25lbnQvcmVhbGlnbm1lbnQtbWFpbi9yZWFsaWdubWVudC1kYXRhL3JlYWxpZ25tZW50LWRhdGEuY29tcG9uZW50LnNjc3MiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUE7RUFDSSxhQUFBO0VBQ0EsV0FBQTtFQUNBLGdCQUFBO0VBQ0Esa0JBQUE7RUFFQSxpREFBQTtFQUNBLGVBQUE7RUFDQSxnQkFBQTtBQ0FKO0FERUk7RUFDSSx5QkFBQTtFQUNBLGNBQUE7RUFDQSxpREFBQTtFQUNBLGVBQUE7RUFDQSxnQkFBQTtFQUNBLGlCQUFBO0VBQ0EsWUFBQTtFQUNBLGdCQUFBO0FDQVI7QURHSTtFQUNJLDZCQUFBO0VBQ0EsV0FBQTtBQ0RSO0FER1E7O0VBRUksaUJBQUE7QUNEWjtBREtJO0VBQ0ksWUFBQTtBQ0hSO0FETUk7RUFDSSxXQUFBO0VBQ0EsWUFBQTtFQUNBLDZCQUFBO0FDSlI7QURPSTtFQUNJLFdBQUE7RUFDQSxXQUFBO0VBQ0EsMEJBQUE7QUNMUjtBRFFJO0VBQ0ksMEJBQUE7QUNOUjtBRFNJO0VBQ0ksZ0JBQUE7RUFDQSxZQUFBO0VBRUEsa0JBQUE7RUFDQSxrQkFBQTtFQUNBLGlCQUFBO0FDUlI7QURZSTtFQUNJLFdBQUE7QUNWUjtBRGFJO0VBRUkseUJBQUE7RUFDQSxrQkFBQTtBQ1pSO0FEZUk7RUFDSSx3QkFBQTtBQ2JSO0FEZ0JJOztFQUVJLDJCQUFBO0VBQ0EsaURBQUE7RUFDQSxlQUFBO0VBQ0EsZ0JBQUE7RUFDQSw0QkFBQTtBQ2RSO0FEaUJJO0VBQ0ksV0FBQTtFQUNBLHVCQUFBO0VBQ0EsaURBQUE7RUFDQSxlQUFBO0VBQ0EsZ0JBQUE7RUFDQSxrQkFBQTtFQUNBLGlCQUFBO0VBQ0EseUJBQUE7RUFDQSxxQkFBQTtFQUNBLGtCQUFBO0VBQ0EsZUFBQTtBQ2ZSO0FEbUJJO0VBQ0kseUJBQUE7RUFDQSxjQUFBO0FDakJSO0FEb0JJO0VBQ0kseUJBQUE7RUFDQSxjQUFBO0FDbEJSO0FEcUJJO0VBQ0kseUJBQUE7RUFDQSxjQUFBO0FDbkJSO0FEc0JJO0VBQ0kseUJBQUE7RUFDQSxjQUFBO0FDcEJSO0FEd0JBO0VBQ0ksVUFBQTtBQ3JCSjtBRHdCQTtFQUVJLDZCQUFBO0VBQ0Esa0JBQUE7QUN0Qko7QUR3QkE7RUFDSSx3QkFBQTtBQ3JCSiIsImZpbGUiOiJzcmMvYXBwL2NvbXBvbmVudC9yZWFsaWdubWVudC1tYWluL3JlYWxpZ25tZW50LWRhdGEvcmVhbGlnbm1lbnQtZGF0YS5jb21wb25lbnQuc2NzcyIsInNvdXJjZXNDb250ZW50IjpbIi5yZWFsaWdubWVudC1kYXRhIHtcbiAgICBoZWlnaHQ6IDU0MHB4O1xuICAgIHdpZHRoOiAxMDAlO1xuICAgIG92ZXJmbG93LXk6IGF1dG87XG4gICAgb3ZlcmZsb3cteDogaGlkZGVuO1xuXG4gICAgZm9udC1mYW1pbHk6IFJvYm90bywgXCJIZWx2ZXRpY2EgTmV1ZVwiLCBzYW5zLXNlcmlmO1xuICAgIGZvbnQtc2l6ZTogMTNweDtcbiAgICBmb250LXdlaWdodDogNTAwO1xuXG4gICAgLmRpYWxvZy10aXRsZSB7XG4gICAgICAgIHBhZGRpbmc6IDBweCAxNXB4IDBweCAwcHg7XG4gICAgICAgIGNvbG9yOiAjMDAwMDAwO1xuICAgICAgICBmb250LWZhbWlseTogUm9ib3RvLCBcIkhlbHZldGljYSBOZXVlXCIsIHNhbnMtc2VyaWY7XG4gICAgICAgIGZvbnQtc2l6ZTogMTVweDtcbiAgICAgICAgZm9udC13ZWlnaHQ6IDYwMDtcbiAgICAgICAgbGluZS1oZWlnaHQ6IDE3cHg7XG4gICAgICAgIHdpZHRoOiAxNDZweDtcbiAgICAgICAgdGV4dC1hbGlnbjogbGVmdDtcbiAgICB9XG5cbiAgICAucmVhbGlnbm1lbnQtdGFibGUge1xuICAgICAgICBib3JkZXItYm90dG9tOiAxcHggc29saWQgI2NjYztcbiAgICAgICAgd2lkdGg6IDEwMCU7XG5cbiAgICAgICAgdGQsXG4gICAgICAgIHRyIHtcbiAgICAgICAgICAgIGJvcmRlcjogMHB4IHNvbGlkO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgLml0ZW0tcmlnaHQge1xuICAgICAgICBmbG9hdDogcmlnaHQ7XG4gICAgfVxuXG4gICAgLmhybGluZS10b3Age1xuICAgICAgICB3aWR0aDogMTAwJTtcbiAgICAgICAgaGVpZ2h0OiAxMHB4O1xuICAgICAgICBib3JkZXItYm90dG9tOiAxcHggc29saWQgI2NjYztcbiAgICB9XG5cbiAgICAuaHJsaW5lLWJvdHRvbSB7XG4gICAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgICBoZWlnaHQ6IDJweDtcbiAgICAgICAgYm9yZGVyLXRvcDogMXB4IHNvbGlkICNjY2M7XG4gICAgfVxuXG4gICAgLmNyaXRlcmlhQ2xhc3Mge1xuICAgICAgICBoZWlnaHQ6IGNhbGMoMTAwJSAtIDIzNXB4KTtcbiAgICB9XG5cbiAgICAuY3VzdG9tLXNjcm9sbC1iYXIge1xuICAgICAgICBtYXJnaW4tdG9wOiAxMHB4O1xuICAgICAgICBoZWlnaHQ6IDQwdmg7XG4gICAgICAgIC8vIGhlaWdodDogY2FsYygxMDAlIC0gNzBweCk7XG4gICAgICAgIG92ZXJmbG93LXk6IHNjcm9sbDtcbiAgICAgICAgb3ZlcmZsb3cteDogaGlkZGVuO1xuICAgICAgICBtYXJnaW4tcmlnaHQ6IDVweDtcbiAgICAgICAgLy8gcGFkZGluZy1sZWZ0OiA1cHg7XG4gICAgfVxuXG4gICAgLmN1c3RvbS1zY3JvbGwtYmFyOjotd2Via2l0LXNjcm9sbGJhciB7XG4gICAgICAgIHdpZHRoOiAxMHB4O1xuICAgIH1cblxuICAgIC5jdXN0b20tc2Nyb2xsLWJhcjo6LXdlYmtpdC1zY3JvbGxiYXItdGh1bWIge1xuICAgICAgICAvLyBiYWNrZ3JvdW5kOiByZ2JhKDAsMCwwLC4yNik7XG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6ICNFOUVFRjA7XG4gICAgICAgIGJvcmRlci1yYWRpdXM6IDVweDtcbiAgICB9XG5cbiAgICA6Om5nLWRlZXAubWF0LXBzZXVkby1jaGVja2JveCB7XG4gICAgICAgIGRpc3BsYXk6IG5vbmUgIWltcG9ydGFudDtcbiAgICB9XG5cbiAgICA6Om5nLWRlZXAgLm1hdC1saXN0LWJhc2UgLm1hdC1saXN0LWl0ZW0gLm1hdC1saXN0LWl0ZW0tY29udGVudCxcbiAgICAubWF0LWxpc3QtYmFzZSAubWF0LWxpc3Qtb3B0aW9uIC5tYXQtbGlzdC1pdGVtLWNvbnRlbnQge1xuICAgICAgICBwYWRkaW5nOiAwcHggM3B4ICFpbXBvcnRhbnQ7XG4gICAgICAgIGZvbnQtZmFtaWx5OiBSb2JvdG8sIFwiSGVsdmV0aWNhIE5ldWVcIiwgc2Fucy1zZXJpZjtcbiAgICAgICAgZm9udC1zaXplOiAxMXB4O1xuICAgICAgICBmb250LXdlaWdodDogNDAwO1xuICAgICAgICBsaW5lLWhlaWdodDogMTNweCAhaW1wb3J0YW50O1xuICAgIH1cblxuICAgIC5idXR0b25zIHtcbiAgICAgICAgd2lkdGg6IDg1cHg7XG4gICAgICAgIGhlaWdodDogMzBweCAhaW1wb3J0YW50O1xuICAgICAgICBmb250LWZhbWlseTogUm9ib3RvLCBcIkhlbHZldGljYSBOZXVlXCIsIHNhbnMtc2VyaWY7XG4gICAgICAgIGZvbnQtc2l6ZTogMTNweDtcbiAgICAgICAgZm9udC13ZWlnaHQ6IDUwMDtcbiAgICAgICAgdGV4dC1hbGlnbjogY2VudGVyO1xuICAgICAgICBib3JkZXI6IDBweCBzb2xpZDtcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogI0ZGQ0MzMztcbiAgICAgICAgcGFkZGluZzogMCAhaW1wb3J0YW50O1xuICAgICAgICBib3JkZXItcmFkaXVzOiAwcHg7XG4gICAgICAgIGN1cnNvcjogcG9pbnRlcjtcbiAgICAgICAgLy8gbGluZS1oZWlnaHQ6IDM2cHggIWltcG9ydGFudDtcbiAgICB9XG5cbiAgICAuc2VsZWN0LWxpc3QtYmx1ZSB7XG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6ICMwMDc3Qzg7XG4gICAgICAgIGNvbG9yOiAjZmZmZmZmO1xuICAgIH1cblxuICAgIC5zZWxlY3QtbGlzdC1ibHVlOmhvdmVyIHtcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogIzAwNzdDODtcbiAgICAgICAgY29sb3I6ICNmZmZmZmY7XG4gICAgfVxuXG4gICAgLnNlbGVjdC1saXN0LWdyZWVuIHtcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogIzAwOUI3NztcbiAgICAgICAgY29sb3I6ICNmZmZmZmY7XG4gICAgfVxuXG4gICAgLnNlbGVjdC1saXN0LWdyZWVuOmhvdmVyIHtcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogIzAwOUI3NztcbiAgICAgICAgY29sb3I6ICNmZmZmZmY7XG4gICAgfVxufVxuXG4ucmVhbGlnbm1lbnQtZGF0YTo6LXdlYmtpdC1zY3JvbGxiYXIge1xuICAgIHdpZHRoOiAxcHg7XG59XG5cbi5yZWFsaWdubWVudC1kYXRhOjotd2Via2l0LXNjcm9sbGJhci10aHVtYiB7XG4gICAgLy8gYmFja2dyb3VuZDogcmdiYSgwLDAsMCwuMjYpO1xuICAgIGJhY2tncm91bmQtY29sb3I6IHRyYW5zcGFyZW50O1xuICAgIGJvcmRlci1yYWRpdXM6IDVweDtcbn1cbi5jbHMtZGlzcGxheW5vbmV7XG4gICAgZGlzcGxheTpub25lICFpbXBvcnRhbnQ7XG59IiwiLnJlYWxpZ25tZW50LWRhdGEge1xuICBoZWlnaHQ6IDU0MHB4O1xuICB3aWR0aDogMTAwJTtcbiAgb3ZlcmZsb3cteTogYXV0bztcbiAgb3ZlcmZsb3cteDogaGlkZGVuO1xuICBmb250LWZhbWlseTogUm9ib3RvLCBcIkhlbHZldGljYSBOZXVlXCIsIHNhbnMtc2VyaWY7XG4gIGZvbnQtc2l6ZTogMTNweDtcbiAgZm9udC13ZWlnaHQ6IDUwMDtcbn1cbi5yZWFsaWdubWVudC1kYXRhIC5kaWFsb2ctdGl0bGUge1xuICBwYWRkaW5nOiAwcHggMTVweCAwcHggMHB4O1xuICBjb2xvcjogIzAwMDAwMDtcbiAgZm9udC1mYW1pbHk6IFJvYm90bywgXCJIZWx2ZXRpY2EgTmV1ZVwiLCBzYW5zLXNlcmlmO1xuICBmb250LXNpemU6IDE1cHg7XG4gIGZvbnQtd2VpZ2h0OiA2MDA7XG4gIGxpbmUtaGVpZ2h0OiAxN3B4O1xuICB3aWR0aDogMTQ2cHg7XG4gIHRleHQtYWxpZ246IGxlZnQ7XG59XG4ucmVhbGlnbm1lbnQtZGF0YSAucmVhbGlnbm1lbnQtdGFibGUge1xuICBib3JkZXItYm90dG9tOiAxcHggc29saWQgI2NjYztcbiAgd2lkdGg6IDEwMCU7XG59XG4ucmVhbGlnbm1lbnQtZGF0YSAucmVhbGlnbm1lbnQtdGFibGUgdGQsXG4ucmVhbGlnbm1lbnQtZGF0YSAucmVhbGlnbm1lbnQtdGFibGUgdHIge1xuICBib3JkZXI6IDBweCBzb2xpZDtcbn1cbi5yZWFsaWdubWVudC1kYXRhIC5pdGVtLXJpZ2h0IHtcbiAgZmxvYXQ6IHJpZ2h0O1xufVxuLnJlYWxpZ25tZW50LWRhdGEgLmhybGluZS10b3Age1xuICB3aWR0aDogMTAwJTtcbiAgaGVpZ2h0OiAxMHB4O1xuICBib3JkZXItYm90dG9tOiAxcHggc29saWQgI2NjYztcbn1cbi5yZWFsaWdubWVudC1kYXRhIC5ocmxpbmUtYm90dG9tIHtcbiAgd2lkdGg6IDEwMCU7XG4gIGhlaWdodDogMnB4O1xuICBib3JkZXItdG9wOiAxcHggc29saWQgI2NjYztcbn1cbi5yZWFsaWdubWVudC1kYXRhIC5jcml0ZXJpYUNsYXNzIHtcbiAgaGVpZ2h0OiBjYWxjKDEwMCUgLSAyMzVweCk7XG59XG4ucmVhbGlnbm1lbnQtZGF0YSAuY3VzdG9tLXNjcm9sbC1iYXIge1xuICBtYXJnaW4tdG9wOiAxMHB4O1xuICBoZWlnaHQ6IDQwdmg7XG4gIG92ZXJmbG93LXk6IHNjcm9sbDtcbiAgb3ZlcmZsb3cteDogaGlkZGVuO1xuICBtYXJnaW4tcmlnaHQ6IDVweDtcbn1cbi5yZWFsaWdubWVudC1kYXRhIC5jdXN0b20tc2Nyb2xsLWJhcjo6LXdlYmtpdC1zY3JvbGxiYXIge1xuICB3aWR0aDogMTBweDtcbn1cbi5yZWFsaWdubWVudC1kYXRhIC5jdXN0b20tc2Nyb2xsLWJhcjo6LXdlYmtpdC1zY3JvbGxiYXItdGh1bWIge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjRTlFRUYwO1xuICBib3JkZXItcmFkaXVzOiA1cHg7XG59XG4ucmVhbGlnbm1lbnQtZGF0YSA6Om5nLWRlZXAubWF0LXBzZXVkby1jaGVja2JveCB7XG4gIGRpc3BsYXk6IG5vbmUgIWltcG9ydGFudDtcbn1cbi5yZWFsaWdubWVudC1kYXRhIDo6bmctZGVlcCAubWF0LWxpc3QtYmFzZSAubWF0LWxpc3QtaXRlbSAubWF0LWxpc3QtaXRlbS1jb250ZW50LFxuLnJlYWxpZ25tZW50LWRhdGEgLm1hdC1saXN0LWJhc2UgLm1hdC1saXN0LW9wdGlvbiAubWF0LWxpc3QtaXRlbS1jb250ZW50IHtcbiAgcGFkZGluZzogMHB4IDNweCAhaW1wb3J0YW50O1xuICBmb250LWZhbWlseTogUm9ib3RvLCBcIkhlbHZldGljYSBOZXVlXCIsIHNhbnMtc2VyaWY7XG4gIGZvbnQtc2l6ZTogMTFweDtcbiAgZm9udC13ZWlnaHQ6IDQwMDtcbiAgbGluZS1oZWlnaHQ6IDEzcHggIWltcG9ydGFudDtcbn1cbi5yZWFsaWdubWVudC1kYXRhIC5idXR0b25zIHtcbiAgd2lkdGg6IDg1cHg7XG4gIGhlaWdodDogMzBweCAhaW1wb3J0YW50O1xuICBmb250LWZhbWlseTogUm9ib3RvLCBcIkhlbHZldGljYSBOZXVlXCIsIHNhbnMtc2VyaWY7XG4gIGZvbnQtc2l6ZTogMTNweDtcbiAgZm9udC13ZWlnaHQ6IDUwMDtcbiAgdGV4dC1hbGlnbjogY2VudGVyO1xuICBib3JkZXI6IDBweCBzb2xpZDtcbiAgYmFja2dyb3VuZC1jb2xvcjogI0ZGQ0MzMztcbiAgcGFkZGluZzogMCAhaW1wb3J0YW50O1xuICBib3JkZXItcmFkaXVzOiAwcHg7XG4gIGN1cnNvcjogcG9pbnRlcjtcbn1cbi5yZWFsaWdubWVudC1kYXRhIC5zZWxlY3QtbGlzdC1ibHVlIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogIzAwNzdDODtcbiAgY29sb3I6ICNmZmZmZmY7XG59XG4ucmVhbGlnbm1lbnQtZGF0YSAuc2VsZWN0LWxpc3QtYmx1ZTpob3ZlciB7XG4gIGJhY2tncm91bmQtY29sb3I6ICMwMDc3Qzg7XG4gIGNvbG9yOiAjZmZmZmZmO1xufVxuLnJlYWxpZ25tZW50LWRhdGEgLnNlbGVjdC1saXN0LWdyZWVuIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogIzAwOUI3NztcbiAgY29sb3I6ICNmZmZmZmY7XG59XG4ucmVhbGlnbm1lbnQtZGF0YSAuc2VsZWN0LWxpc3QtZ3JlZW46aG92ZXIge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjMDA5Qjc3O1xuICBjb2xvcjogI2ZmZmZmZjtcbn1cblxuLnJlYWxpZ25tZW50LWRhdGE6Oi13ZWJraXQtc2Nyb2xsYmFyIHtcbiAgd2lkdGg6IDFweDtcbn1cblxuLnJlYWxpZ25tZW50LWRhdGE6Oi13ZWJraXQtc2Nyb2xsYmFyLXRodW1iIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogdHJhbnNwYXJlbnQ7XG4gIGJvcmRlci1yYWRpdXM6IDVweDtcbn1cblxuLmNscy1kaXNwbGF5bm9uZSB7XG4gIGRpc3BsYXk6IG5vbmUgIWltcG9ydGFudDtcbn0iXX0= */\"","import { Component, OnInit, Inject, Input, AfterViewInit } from '@angular/core';\nimport { MatDialog, MatDialogRef, MAT_DIALOG_DATA } from '@angular/material/dialog';\nimport { CdkDragDrop, moveItemInArray, transferArrayItem } from '@angular/cdk/drag-drop';\nimport { ToastyService } from 'ng2-toasty';\nimport { BackendApiService } from 'src/app/services/backend-api/backend-api.service';\nimport { UtilService } from 'src/app/services/util/util.service';\n\nimport * as XLSX from 'xlsx';\nimport { element } from 'protractor';\nimport { query } from '@angular/animations';\nimport { AlertConfirmationComponent } from '../../alert-confirmation/alert-confirmation.component';\nimport moment from 'moment';\n\ntype AOA = any[][];\n\n@Component({\n selector: 'app-realignment-data',\n templateUrl: './realignment-data.component.html',\n styleUrls: ['./realignment-data.component.scss']\n})\nexport class RealignmentDataComponent implements OnInit, AfterViewInit {\n\n tableData;\n selectedTable;\n selectedRegion;\n ipn;\n selectedFileName;\n listCriteria;\n listData;\n fileData;\n file: File;\n\n criteriaValues = {\n \"selectedCategory\": \"Tous\",\n \"filterCategory\": [], \"displayGroupingForm\": false, \"groupingSelectedList\": [], \"searchText\": undefined,\n \"filterPrivateCategory\": [], \"mnuOpen\": false, \"selectedGroupItemValue\": undefined, \"selectedCharacterList\": undefined, \"blnGroupingEdit\": undefined,\n \"categoryList\": [], \"displayCriteriaList\": [], \"criteriaList\": [], \"criteriaListOringinal\": [], \"blnMoveRight\": false, \"GCOName\": undefined,\n \"splitChar\": \"§\", \"lang\": 'fr', \"selectedItemValue\": undefined, \"selectedItemType4Color\": undefined, \"selectedItemType\": undefined, \"selectedItemSize\": undefined\n }\n\n todo = ['Get to work', 'Pick up groceries', 'Go home', 'Fall asleep'];\n selectedCriteriaListItem: any;\n selectedDataListItem: any;\n uploadData: AOA;\n newData: any;\n selectedFile: string;\n saveData: any;\n\n constructor(public dialogRef: MatDialogRef,\n @Inject(MAT_DIALOG_DATA) public data: any, readonly apiService: BackendApiService, readonly utilService: UtilService,\n readonly toastyService: ToastyService, public dialog: MatDialog) { }\n\n ngOnInit() {\n this.selectedRegion = this.data.region;\n this.ipn = this.data.ipn;\n this.getTableDetails();\n // this.listCriteria =this.data.criterialist;\n // console.log(\"checkcriteria\",this.listCriteria);\n // this.listData = this.data.datalist;\n // console.log(\"checkdata\",this.listData);\n this.listCriteria = [];\n this.listData = [];\n this.criteriaValues.lang = sessionStorage.getItem(\"selectedLang\");\n }\n\n ngAfterViewInit() {\n\n }\n\n getFavoriteRegion() {\n if (this.selectedRegion === \"Europe\") {\n return \"PIL\";\n } else {\n return \"PIM\";\n }\n }\n\n getLangIndex(lang) {\n if (lang === 'en') {\n return 1;\n } else {\n return 0;\n }\n }\n\n dropCriteria(event: CdkDragDrop) {\n if (event.previousContainer === event.container) {\n moveItemInArray(event.container.data, event.previousIndex, event.currentIndex);\n } else {\n transferArrayItem(\n event.previousContainer.data,\n event.container.data,\n event.previousIndex,\n event.currentIndex,\n );\n }\n }\n\n dropData(event: CdkDragDrop) {\n if (event.previousContainer === event.container) {\n moveItemInArray(event.container.data, event.previousIndex, event.currentIndex);\n } else {\n transferArrayItem(\n event.previousContainer.data,\n event.container.data,\n event.previousIndex,\n event.currentIndex,\n );\n }\n }\n\n getTableDetails() {\n this.tableData = undefined;\n\n const queryParam = { \"input\": `MAJ@${this.ipn}@@@0@11@`, \"region\": this.getFavoriteRegion() };\n this.apiService.getChoiceTableDetails(queryParam).subscribe(res => {\n if (res.lists) {\n if (res.noOfLists > 0) {\n this.getTableNamesList(res);\n }\n }\n },\n error => {\n this.toastyService.error(this.utilService.getTranslateName(`ERROR.TABLE_ERROR`));\n console.log(\"error\", error.message);\n });\n }\n\n getTableNamesList(res) {\n const queryParam1 = { \"input\": `TABGEN@${this.ipn}@@@0@${res.noOfLists}@`, \"region\": this.getFavoriteRegion() };\n this.apiService.getChoiceTableDetails(queryParam1).subscribe(res1 => {\n let tabData = [];\n tabData = res1.lists;\n if (tabData) {\n this.tableData = [];\n let i = 0;\n for (const item of tabData) {\n const td = res.lists.filter(a => String(a.table).toLocaleUpperCase() === String(item).toLocaleUpperCase());\n if (td.length > 0) {\n this.tableData.push({ \"name\": String(item).toLocaleUpperCase(), \"fileRecvdDate\": td[0].fileRecvdDate, \"fileUpdtdDate\": td[0].fileUpdtdDate })\n }\n i = i + 1;\n }\n this.tableData = this.tableData.sort();\n this.selectedTable = this.tableData[0].name;\n this.onSelectedTable();\n console.log(\"tableData\", this.tableData)\n }\n },\n error => {\n this.toastyService.error(this.utilService.getTranslateName(`ERROR.TABLE_ERROR`));\n console.log(\"error\", error.message);\n });\n }\n\n onSelectedTable() {\n this.getFilterCategoryDetails();\n this.getPrivateFilterCategoryDetails();\n setTimeout(() => {\n this.criteriaValues.selectedCategory = this.utilService.getTranslateName(`COMMON.ALL`);\n }, 0);\n\n this.loadCriteriaListDetails();\n }\n\n onFileSelected(event) {\n this.selectedFileName = undefined;\n if (event.target.files.length > 0) {\n this.selectedFileName = event.target.files[0].name;\n console.log(event.target.files[0].name);\n this.file = event.target.files[0];\n // this.selectedFile = this.selectedFileName + '&' + new Date().getTime();\n const CurrentDate = moment().format(\"DDMMYYHHmmss\");\n this.selectedFile = this.selectedFileName + '&' + CurrentDate;\n console.log(\"select\", this.selectedFile);\n\n\n /* wire up file reader */\n const target: DataTransfer = (event.target);\n if (target.files.length !== 1) throw new Error('Cannot use multiple files');\n const reader: FileReader = new FileReader();\n reader.onload = (e: any) => {\n /* read workbook */\n const bstr: string = e.target.result;\n const wb: XLSX.WorkBook = XLSX.read(bstr, { type: 'binary' });\n\n /* grab first sheet */\n const wsname: string = wb.SheetNames[0];\n const ws: XLSX.WorkSheet = wb.Sheets[wsname];\n\n /* save data */\n this.uploadData = undefined;\n this.uploadData = (XLSX.utils.sheet_to_json(ws, { header: 1 }));\n console.log(\"excel\", this.uploadData);\n };\n reader.readAsBinaryString(target.files[0]);\n }\n }\n\n openHelpFile() {\n window.open('https://grouperenault.sharepoint.com/sites/Doc_Pilotage/en-US/Pages/Aide%20en%20ligne/maj_libelle.aspx', '_blank');\n }\n\n clickClose(): void {\n this.dialogRef.close();\n }\n\n getFilterCategoryDetails() {\n this.criteriaValues.filterCategory = [];\n const queryParam = { \"input\": `FILTRE@system@${this.selectedTable}@@`, \"region\": this.getFavoriteRegion() };\n this.apiService.getObjectSize(queryParam).subscribe(res => {\n if (res.noObjects > 0) {\n const queryParam1 = { \"input\": `FILTRE@system@${this.selectedTable}@@0@${res.noObjects}@`, \"region\": this.getFavoriteRegion() };\n this.apiService.getChoiceTableDetails(queryParam1).subscribe(res1 => {\n this.criteriaValues.filterCategory = res1.lists;\n this.criteriaValues.filterCategory = this.criteriaValues.filterCategory.sort(this.utilService.sortArray);\n },\n error => {\n this.toastyService.error(this.utilService.getTranslateName(`ERROR.TECHNICAL_ERROR`));\n console.log(\"error\", error.message);\n });\n }\n },\n error => {\n this.toastyService.error(this.utilService.getTranslateName(`ERROR.TECHNICAL_ERROR`));\n console.log(\"error\", error.message);\n });\n }\n\n getPrivateFilterCategoryDetails() {\n this.criteriaValues.filterPrivateCategory = undefined;\n const queryParam = { \"input\": `FILTRE@${this.ipn}@${this.selectedTable}@@`, \"region\": this.getFavoriteRegion() };\n this.apiService.getObjectSize(queryParam).subscribe(res => {\n if (res.noObjects > 0) {\n const queryParam1 = { \"input\": `FILTRE@${this.ipn}@${this.selectedTable}@@0@${res.noObjects}@`, \"region\": this.getFavoriteRegion() };\n this.apiService.getChoiceTableDetails(queryParam1).subscribe(res1 => {\n this.criteriaValues.filterPrivateCategory = res1.lists;\n this.criteriaValues.filterPrivateCategory = this.criteriaValues.filterPrivateCategory.sort(this.utilService.sortArray)\n },\n error => {\n this.toastyService.error(this.utilService.getTranslateName(`ERROR.TECHNICAL_ERROR`));\n console.log(\"error\", error.message);\n });\n }\n },\n error => {\n this.toastyService.error(this.utilService.getTranslateName(`ERROR.TECHNICAL_ERROR`));\n console.log(\"error\", error.message);\n });\n\n }\n\n onCategoryChange(val, type) {\n this.criteriaValues.selectedCategory = val;\n if (type === 'private') {\n this.getSearchCategory(this.ipn);\n } else {\n this.getSearchCategory('system');\n }\n }\n\n\n getSearchCategory(ipnValue) {\n this.criteriaValues.categoryList = [];\n this.criteriaValues.displayCriteriaList = [];\n this.criteriaValues.criteriaList = [];\n if (this.criteriaValues.selectedCategory === 'Tous' || this.criteriaValues.selectedCategory === 'All') {\n for (const item of this.criteriaValues.criteriaListOringinal) {\n // if (typeof (item.longLabel.split(this.criteriaValues.splitChar, 2)[this.getLangIndex(this.criteriaValues.lang)]) !== 'undefined') {\n // this.criteriaValues.displayCriteriaList.push(item.longLabel.split(this.criteriaValues.splitChar, 2)[this.getLangIndex(this.criteriaValues.lang)])\n // this.criteriaValues.criteriaList.push(item.longLabel.split(this.criteriaValues.splitChar, 2)[this.getLangIndex(this.criteriaValues.lang)])\n // }\n\n if (typeof (item.longLabel.split(this.criteriaValues.splitChar, 2)[this.getLangIndex(this.criteriaValues.lang)]) === 'undefined') {\n item.longLabel = `${item.longLabel}${this.criteriaValues.splitChar}${item.longLabel}`;\n\n // if (this.isShowHiddenList) {\n // this.criteriaValues.displayCriteriaList.push(item.longLabel.split(this.criteriaValues.splitChar, 2)[this.getLangIndex(this.criteriaValues.lang)]);\n // this.criteriaValues.criteriaList.push(item.longLabel.split(this.criteriaValues.splitChar, 2)[this.getLangIndex(this.criteriaValues.lang)]);\n // } else {\n // if (item.longLabel.split(this.criteriaValues.splitChar, 2)[this.getLangIndex(this.criteriaValues.lang)][0] !== '_') {\n this.criteriaValues.displayCriteriaList.push(item.longLabel.split(this.criteriaValues.splitChar, 2)[this.getLangIndex(this.criteriaValues.lang)]);\n this.criteriaValues.criteriaList.push(item.longLabel.split(this.criteriaValues.splitChar, 2)[this.getLangIndex(this.criteriaValues.lang)]);\n // }\n // }\n\n // this.criteriaValues.displayCriteriaList.push(item.longLabel.split(this.criteriaValues.splitChar, 2)[this.getLangIndex(this.criteriaValues.lang)]);\n // this.criteriaValues.criteriaList.push(item.longLabel.split(this.criteriaValues.splitChar, 2)[this.getLangIndex(this.criteriaValues.lang)]);\n } else {\n // this.criteriaValues.displayCriteriaList.push(item.longLabel.split(this.criteriaValues.splitChar, 2)[this.getLangIndex(this.criteriaValues.lang)]);\n // this.criteriaValues.criteriaList.push(item.longLabel.split(this.criteriaValues.splitChar, 2)[this.getLangIndex(this.criteriaValues.lang)]);\n\n // if (this.isShowHiddenList) {\n // this.criteriaValues.displayCriteriaList.push(item.longLabel.split(this.criteriaValues.splitChar, 2)[this.getLangIndex(this.criteriaValues.lang)]);\n // this.criteriaValues.criteriaList.push(item.longLabel.split(this.criteriaValues.splitChar, 2)[this.getLangIndex(this.criteriaValues.lang)]);\n // } else {\n // if (item.longLabel.split(this.criteriaValues.splitChar, 2)[this.getLangIndex(this.criteriaValues.lang)][0] !== '_') {\n this.criteriaValues.displayCriteriaList.push(item.longLabel.split(this.criteriaValues.splitChar, 2)[this.getLangIndex(this.criteriaValues.lang)]);\n this.criteriaValues.criteriaList.push(item.longLabel.split(this.criteriaValues.splitChar, 2)[this.getLangIndex(this.criteriaValues.lang)]);\n // }\n // }\n }\n\n }\n this.criteriaValues.displayCriteriaList = this.criteriaValues.displayCriteriaList.sort(this.utilService.sortArray);\n } else {\n const queryParam = { \"input\": `FILTRE@${ipnValue}@${this.selectedTable}@${this.criteriaValues.selectedCategory}@`, \"region\": this.getFavoriteRegion() };\n this.apiService.getObjectGet(queryParam).subscribe(res => {\n\n const dataRes = res.data.split('@');\n for (let i = 0; i < dataRes.length; i = i + 4) {\n if (i > 0) {\n this.criteriaValues.categoryList.push(dataRes[i - 1]);\n }\n }\n\n for (const iterator of this.criteriaValues.categoryList) {\n const filterVal = this.criteriaValues.criteriaListOringinal.filter(a => a.GCOName.toUpperCase() === iterator.substring(0, iterator.length - 2).toUpperCase() && a.typeOfField == iterator.slice(-1));\n for (const item of filterVal) {\n // if (typeof (iterator.longLabel.split(this.criteriaValues.splitChar, 2)[this.getLangIndex(this.criteriaValues.lang)]) !== 'undefined') {\n // this.criteriaValues.displayCriteriaList.push(iterator.longLabel.split(this.criteriaValues.splitChar, 2)[this.getLangIndex(this.criteriaValues.lang)]);\n // this.criteriaValues.criteriaList.push(iterator.longLabel.split(this.criteriaValues.splitChar, 2)[this.getLangIndex(this.criteriaValues.lang)]);\n // }\n\n if (typeof (item.longLabel.split(this.criteriaValues.splitChar, 2)[this.getLangIndex(this.criteriaValues.lang)]) === 'undefined') {\n item.longLabel = `${item.longLabel}${this.criteriaValues.splitChar}${item.longLabel}`;\n\n // if (this.isShowHiddenList) {\n // this.criteriaValues.displayCriteriaList.push(item.longLabel.split(this.criteriaValues.splitChar, 2)[this.getLangIndex(this.criteriaValues.lang)]);\n // this.criteriaValues.criteriaList.push(item.longLabel.split(this.criteriaValues.splitChar, 2)[this.getLangIndex(this.criteriaValues.lang)]);\n // } else {\n // if (item.longLabel.split(this.criteriaValues.splitChar, 2)[this.getLangIndex(this.criteriaValues.lang)][0] !== '_') {\n this.criteriaValues.displayCriteriaList.push(item.longLabel.split(this.criteriaValues.splitChar, 2)[this.getLangIndex(this.criteriaValues.lang)]);\n this.criteriaValues.criteriaList.push(item.longLabel.split(this.criteriaValues.splitChar, 2)[this.getLangIndex(this.criteriaValues.lang)]);\n // }\n // }\n\n // this.criteriaValues.displayCriteriaList.push(item.longLabel.split(this.criteriaValues.splitChar, 2)[this.getLangIndex(this.criteriaValues.lang)]);\n // this.criteriaValues.criteriaList.push(item.longLabel.split(this.criteriaValues.splitChar, 2)[this.getLangIndex(this.criteriaValues.lang)]);\n } else {\n // this.criteriaValues.displayCriteriaList.push(item.longLabel.split(this.criteriaValues.splitChar, 2)[this.getLangIndex(this.criteriaValues.lang)]);\n // this.criteriaValues.criteriaList.push(item.longLabel.split(this.criteriaValues.splitChar, 2)[this.getLangIndex(this.criteriaValues.lang)]);\n\n // if (this.isShowHiddenList) {\n // this.criteriaValues.displayCriteriaList.push(item.longLabel.split(this.criteriaValues.splitChar, 2)[this.getLangIndex(this.criteriaValues.lang)]);\n // this.criteriaValues.criteriaList.push(item.longLabel.split(this.criteriaValues.splitChar, 2)[this.getLangIndex(this.criteriaValues.lang)]);\n // } else {\n // if (item.longLabel.split(this.criteriaValues.splitChar, 2)[this.getLangIndex(this.criteriaValues.lang)][0] !== '_') {\n this.criteriaValues.displayCriteriaList.push(item.longLabel.split(this.criteriaValues.splitChar, 2)[this.getLangIndex(this.criteriaValues.lang)]);\n this.criteriaValues.criteriaList.push(item.longLabel.split(this.criteriaValues.splitChar, 2)[this.getLangIndex(this.criteriaValues.lang)]);\n // }\n // }\n }\n\n\n }\n }\n this.criteriaValues.displayCriteriaList = this.criteriaValues.displayCriteriaList.sort(this.utilService.sortArray);\n\n },\n error => {\n this.toastyService.error(this.utilService.getTranslateName(`ERROR.SEARCH_LIST`));\n console.log(\"error\", error.message);\n });\n }\n }\n\n\n loadCriteriaListDetails() {\n this.criteriaValues.displayCriteriaList = [];\n this.criteriaValues.criteriaList = [];\n this.criteriaValues.criteriaListOringinal = [];\n const queryParam = { \"input\": `CHAMP ETENDU@${this.ipn}@${this.selectedTable}@@`, \"region\": this.getFavoriteRegion() };\n this.apiService.getObjectSize(queryParam).subscribe(res => {\n if (res.noObjects > 0) {\n const queryParam1 = { \"input\": `CHAMP ETENDU@${this.ipn}@${this.selectedTable}@@0@${res.noObjects}@`, \"region\": this.getFavoriteRegion() };\n this.apiService.getChoiceTableDetails(queryParam1).subscribe(res1 => {\n this.criteriaValues.criteriaListOringinal = res1.lists;\n\n\n\n if (this.data.criterialist) {\n for (const item of this.data.criterialist) {\n const criteriaFilterVal = this.criteriaValues.criteriaListOringinal.filter(a => a.longLabel.split(this.criteriaValues.splitChar, 2).length > 1 ? a.longLabel.split(this.criteriaValues.splitChar, 2)[this.getLangIndex(this.criteriaValues.lang)] === item : a.longLabel === item)[0];\n // // console.log(\"criteriaFilterVal\", criteriaFilterVal);\n // this.criteriaValues.selectedItemValue = criteriaFilterVal.longLabel.split(this.criteriaValues.splitChar, 2).length > 1 ? criteriaFilterVal.longLabel.split(this.criteriaValues.splitChar, 2)[this.getLangIndex(this.criteriaValues.lang)] : criteriaFilterVal.longLabel;\n // this.criteriaValues.selectedItemSize = criteriaFilterVal.size;\n // this.criteriaValues.selectedItemType4Color = this.criteriaValues.criteriaListOringinal.filter(a => a.longLabel.split(this.criteriaValues.splitChar, 2).length > 1 ? a.longLabel.split(this.criteriaValues.splitChar, 2)[this.getLangIndex(this.criteriaValues.lang)] === item : a.longLabel === item)[0].typeOfField;\n\n this.listCriteria.push({\n name: criteriaFilterVal.longLabel.split(this.criteriaValues.splitChar, 2).length > 1 ? criteriaFilterVal.longLabel.split(this.criteriaValues.splitChar, 2)[this.getLangIndex(this.criteriaValues.lang)] : criteriaFilterVal.longLabel,\n size: criteriaFilterVal.size,\n type: criteriaFilterVal.typeOfField,\n GCOName: criteriaFilterVal.GCOName\n });\n }\n }\n\n if (this.data.datalist) {\n for (const item of this.data.datalist) {\n const criteriaFilterVal = this.criteriaValues.criteriaListOringinal.filter(a => a.longLabel.split(this.criteriaValues.splitChar, 2).length > 1 ? a.longLabel.split(this.criteriaValues.splitChar, 2)[this.getLangIndex(this.criteriaValues.lang)] === item : a.longLabel === item)[0];\n // // console.log(\"criteriaFilterVal\", criteriaFilterVal);\n // this.criteriaValues.selectedItemValue = criteriaFilterVal.longLabel.split(this.criteriaValues.splitChar, 2).length > 1 ? criteriaFilterVal.longLabel.split(this.criteriaValues.splitChar, 2)[this.getLangIndex(this.criteriaValues.lang)] : criteriaFilterVal.longLabel;\n // this.criteriaValues.selectedItemSize = criteriaFilterVal.size;\n // this.criteriaValues.selectedItemType4Color = this.criteriaValues.criteriaListOringinal.filter(a => a.longLabel.split(this.criteriaValues.splitChar, 2).length > 1 ? a.longLabel.split(this.criteriaValues.splitChar, 2)[this.getLangIndex(this.criteriaValues.lang)] === item : a.longLabel === item)[0].typeOfField;\n\n this.listData.push({\n name: criteriaFilterVal.longLabel.split(this.criteriaValues.splitChar, 2).length > 1 ? criteriaFilterVal.longLabel.split(this.criteriaValues.splitChar, 2)[this.getLangIndex(this.criteriaValues.lang)] : criteriaFilterVal.longLabel,\n size: criteriaFilterVal.size,\n type: criteriaFilterVal.typeOfField,\n GCOName: criteriaFilterVal.GCOName\n });\n }\n }\n\n\n\n for (const item of this.criteriaValues.criteriaListOringinal) {\n if (typeof (item.longLabel.split(this.criteriaValues.splitChar, 2)[this.getLangIndex(this.criteriaValues.lang)]) === 'undefined') {\n item.longLabel = `${item.longLabel}${this.criteriaValues.splitChar}${item.longLabel}`;\n\n // if (this.isShowHiddenList) {\n // this.criteriaValues.displayCriteriaList.push(item.longLabel.split(this.criteriaValues.splitChar, 2)[this.getLangIndex(this.criteriaValues.lang)]);\n // this.criteriaValues.criteriaList.push(item.longLabel.split(this.criteriaValues.splitChar, 2)[this.getLangIndex(this.criteriaValues.lang)]);\n // } else {\n // if (item.longLabel.split(this.criteriaValues.splitChar, 2)[this.getLangIndex(this.criteriaValues.lang)][0] !== '_') {\n if (item.GCOName === \"I\" || item.GCOName === \"A_Chassis\" || item.GCOName === \"A_Ident\") {\n } else {\n this.criteriaValues.displayCriteriaList.push(item.longLabel.split(this.criteriaValues.splitChar, 2)[this.getLangIndex(this.criteriaValues.lang)]);\n this.criteriaValues.criteriaList.push(item.longLabel.split(this.criteriaValues.splitChar, 2)[this.getLangIndex(this.criteriaValues.lang)]);\n }\n // }\n // }\n\n // this.criteriaValues.displayCriteriaList.push(item.longLabel.split(this.criteriaValues.splitChar, 2)[this.getLangIndex(this.criteriaValues.lang)]);\n // this.criteriaValues.criteriaList.push(item.longLabel.split(this.criteriaValues.splitChar, 2)[this.getLangIndex(this.criteriaValues.lang)]);\n } else {\n // this.criteriaValues.displayCriteriaList.push(item.longLabel.split(this.criteriaValues.splitChar, 2)[this.getLangIndex(this.criteriaValues.lang)]);\n // this.criteriaValues.criteriaList.push(item.longLabel.split(this.criteriaValues.splitChar, 2)[this.getLangIndex(this.criteriaValues.lang)]);\n\n // if (this.isShowHiddenList) {\n // this.criteriaValues.displayCriteriaList.push(item.longLabel.split(this.criteriaValues.splitChar, 2)[this.getLangIndex(this.criteriaValues.lang)]);\n // this.criteriaValues.criteriaList.push(item.longLabel.split(this.criteriaValues.splitChar, 2)[this.getLangIndex(this.criteriaValues.lang)]);\n // } else {\n // if (item.longLabel.split(this.criteriaValues.splitChar, 2)[this.getLangIndex(this.criteriaValues.lang)][0] !== '_') {\n // if (item.GCOName === \"A_Chassis\") {\n // debugger\n // }\n if (item.GCOName === \"I\" || item.GCOName === \"A_Chassis\" || item.GCOName === \"A_Ident\") {\n } else {\n this.criteriaValues.displayCriteriaList.push(item.longLabel.split(this.criteriaValues.splitChar, 2)[this.getLangIndex(this.criteriaValues.lang)]);\n this.criteriaValues.criteriaList.push(item.longLabel.split(this.criteriaValues.splitChar, 2)[this.getLangIndex(this.criteriaValues.lang)]);\n }\n // }\n // }\n }\n }\n this.criteriaValues.displayCriteriaList = this.criteriaValues.displayCriteriaList.sort(this.utilService.sortArray);\n },\n error => {\n this.toastyService.error(this.utilService.getTranslateName(`ERROR.TECHNICAL_ERROR`));\n console.log(\"error\", error.message);\n });\n }\n },\n error => {\n this.toastyService.error(this.utilService.getTranslateName(`ERROR.TECHNICAL_ERROR`));\n console.log(\"error\", error.message);\n });\n }\n\n clickCriteriaList(item) {\n // debugger\n const criteriaFilterVal = this.criteriaValues.criteriaListOringinal.filter(a => a.longLabel.split(this.criteriaValues.splitChar, 2).length > 1 ? a.longLabel.split(this.criteriaValues.splitChar, 2)[this.getLangIndex(this.criteriaValues.lang)] === item : a.longLabel === item)[0];\n // console.log(\"criteriaFilterVal\", criteriaFilterVal);\n this.criteriaValues.selectedItemValue = criteriaFilterVal.longLabel.split(this.criteriaValues.splitChar, 2).length > 1 ? criteriaFilterVal.longLabel.split(this.criteriaValues.splitChar, 2)[this.getLangIndex(this.criteriaValues.lang)] : criteriaFilterVal.longLabel;\n this.criteriaValues.selectedItemSize = criteriaFilterVal.size;\n this.criteriaValues.selectedItemType = criteriaFilterVal.typeOfField;\n this.criteriaValues.GCOName = criteriaFilterVal.GCOName;\n this.criteriaValues.selectedItemType4Color = this.criteriaValues.criteriaListOringinal.filter(a => a.longLabel.split(this.criteriaValues.splitChar, 2).length > 1 ? a.longLabel.split(this.criteriaValues.splitChar, 2)[this.getLangIndex(this.criteriaValues.lang)] === item : a.longLabel === item)[0].typeOfField;\n }\n\n onAddCriteria() {\n if (this.criteriaValues.selectedItemValue) {\n this.listCriteria.push({\n name: this.criteriaValues.selectedItemValue,\n size: this.criteriaValues.selectedItemSize,\n type: this.criteriaValues.selectedItemType,\n GCOName: this.criteriaValues.GCOName\n });\n this.criteriaValues.selectedItemValue = undefined;\n console.log(\"this.listCriteria\", this.listCriteria)\n }\n }\n\n onAddData() {\n if (this.criteriaValues.selectedItemValue) {\n this.listData.push({\n name: this.criteriaValues.selectedItemValue,\n size: this.criteriaValues.selectedItemSize,\n type: this.criteriaValues.selectedItemType,\n GCOName: this.criteriaValues.GCOName\n });\n this.criteriaValues.selectedItemValue = undefined;\n console.log(\"this.listData\", this.listData)\n }\n }\n\n onSelectCriteria(item) {\n console.log(\"select criteria\", item);\n this.selectedCriteriaListItem = item;\n }\n\n onSelectData(item) {\n console.log(\"select data\", item);\n this.selectedDataListItem = item;\n }\n\n onDelCriteria() {\n if (this.selectedCriteriaListItem) {\n for (let index = 0; index < this.listCriteria.length; index++) {\n const element = this.listCriteria[index];\n if (element === this.selectedCriteriaListItem) {\n this.listCriteria.splice(index, 1)\n }\n }\n this.selectedCriteriaListItem = undefined;\n }\n }\n\n onDelData() {\n if (this.selectedDataListItem) {\n for (let index = 0; index < this.listData.length; index++) {\n const element = this.listData[index];\n if (element === this.selectedDataListItem) {\n this.listData.splice(index, 1)\n }\n }\n this.selectedDataListItem = undefined;\n }\n }\n\n searchFilter() {\n this.criteriaValues.displayCriteriaList = this.criteriaValues.criteriaList.filter(a => a.toUpperCase().includes(this.criteriaValues.searchText.toUpperCase()));\n this.criteriaValues.displayCriteriaList = this.criteriaValues.displayCriteriaList.sort(this.utilService.sortArray);\n }\n\n checkColumnLength() {\n for (let index = 0; index < this.uploadData.length; index++) {\n const element = this.uploadData[index];\n if (element.length !== (this.listCriteria.length + this.listData.length)) {\n return true;\n }\n // return true;\n }\n }\n alertPopup(msg) {\n const dialogRef = this.dialog.open(AlertConfirmationComponent, {\n disableClose: true,\n width: '550px',\n data: { 'display': msg }\n });\n\n dialogRef.afterClosed().subscribe(result => {\n if (result == true) {\n\n if (this.selectedFileName.length > 20) {\n\n this.toastyService.warning(\"The file name is more than 20 characters\");\n return;\n }\n\n for (var i = 0; i < this.selectedFileName.length; i++) {\n console.log(\"check\", this.selectedFileName[i]);\n if (this.selectedFileName[i] == \" \") {\n this.toastyService.warning(\"Please change the file name spaces are not allowed\")\n return;\n }\n }\n\n if (this.checkColumnLength()) {\n\n this.toastyService.warning(\"The length of one criteria is not the same accoring to the request\");\n return;\n }\n\n else {\n let blnErr = false;\n for (let index = 0; index < this.uploadData.length; index++) {\n blnErr = false;\n const element = this.uploadData[index];\n console.log(\"element\", element)\n for (let i = 0; i < element.length; i++) {\n const innerElement = element[i];\n if (i < this.listCriteria.length) {\n console.log(\"innerElement\", innerElement, this.listCriteria[i])\n if (innerElement.toString().length !== this.listCriteria[i].size && this.listCriteria[i].size !== 0) {\n blnErr = true;\n }\n\n }\n else {\n if (innerElement.toString().length !== this.listData[i - this.listCriteria.length].size && this.listData[i - this.listCriteria.length].size !== 0) {\n blnErr = true;\n }\n }\n }\n if (blnErr) {\n this.toastyService.warning(\"The number of criteria/data on the text file is not the same accoring to the request\");\n return;\n // break;\n }\n }\n if (!blnErr) {\n let concatCriteria = \"\";\n let concatData = \"\";\n let totalCriteriaSize = 0;\n let sLisCriGCO = \"\";\n let sLisDataGCO = \"\";\n let rsChaine = \"\";\n for (let index = 0; index < this.listCriteria.length; index++) {\n if (index === 0) {\n concatCriteria = this.listCriteria[index].name;\n totalCriteriaSize = totalCriteriaSize + this.listCriteria[index].size;\n if (this.listCriteria[index].type === 3) {\n sLisCriGCO = sLisCriGCO + this.listCriteria[index].GCOName + \"@8@\";\n } else {\n sLisCriGCO = sLisCriGCO + this.listCriteria[index].GCOName + \"@\" + this.listCriteria[index].size + \"@\";\n }\n\n if (this.listCriteria[index].type === 3) {\n rsChaine = rsChaine + this.listCriteria[index].type + \"@9@1@\" + this.listCriteria[index].GCOName + \"@0@?@0@amj@0@\";\n } else if (this.listCriteria[index].type === 4) {\n rsChaine = rsChaine + this.listCriteria[index].type + \"@0@1@\" + this.listCriteria[index].GCOName + \"@0@?@0@?@0@\";\n } else {\n rsChaine = rsChaine + \"1\" + \"@1@1@\" + this.listCriteria[index].GCOName + \"@0@?@0@?@0@\";\n }\n } else {\n concatCriteria = concatCriteria + \"@\" + this.listCriteria[index].name;\n totalCriteriaSize = totalCriteriaSize + this.listCriteria[index].size;\n if (this.listCriteria[index].type === 3) {\n sLisCriGCO = sLisCriGCO + this.listCriteria[index].GCOName + \"@8@\";\n } else {\n sLisCriGCO = sLisCriGCO + this.listCriteria[index].GCOName + \"@\" + this.listCriteria[index].size + \"@\";\n }\n\n\n if (this.listCriteria[index].type === 3) {\n rsChaine = rsChaine + this.listCriteria[index].type + \"@9@1@\" + this.listCriteria[index].GCOName + \"@0@?@0@amj@0@\";\n } else if (this.listCriteria[index].type === 4) {\n rsChaine = rsChaine + this.listCriteria[index].type + \"@0@1@\" + this.listCriteria[index].GCOName + \"@0@?@0@?@0@\";\n } else {\n rsChaine = rsChaine + \"1\" + \"@1@1@\" + this.listCriteria[index].GCOName + \"@0@?@0@?@0@\";\n }\n }\n }\n for (let index = 0; index < this.listData.length; index++) {\n if (index === 0) {\n concatData = this.listData[index].name;\n if (this.listData[index].type === 3) {\n sLisDataGCO = sLisDataGCO + this.listData[index].GCOName + \"@8@\";\n } else {\n sLisDataGCO = sLisDataGCO + this.listData[index].GCOName + \"@\" + this.listData[index].size + \"@\";\n }\n } else {\n concatData = concatData + \"@\" + this.listData[index].name;\n if (this.listData[index].type === 3) {\n sLisDataGCO = sLisDataGCO + this.listData[index].GCOName + \"@8@\";\n } else {\n sLisDataGCO = sLisDataGCO + this.listData[index].GCOName + \"@\" + this.listData[index].size + \"@\";\n }\n }\n }\n let formData = new FormData();\n formData.append(\"file\", this.file);\n this.apiService.uploadFile(formData).subscribe(res => {\n this.fileData = res;\n console.log(\"uploadfileRes\", res);\n\n const queryParam2 = {\n \"inputLists\": [\n `FileName@${res.fileName}`,\n `IPN@${this.ipn}`,\n `Table@${this.selectedTable}`,\n \"Action@UPLOAD_FILE\",\n \"FileType@REA_DATA\"\n ],\n // \"input\": \"REALIGNMENT - Download log file\",\n \"region\": this.getFavoriteRegion()\n }\n\n this.apiService.writingLogs(queryParam2).subscribe(res => {\n this.fileData = res;\n console.log(\"writingLogs\", res);\n if (res.status === 200) {\n let queryParam = { \"input\": `REALIGNEMENT@system@rea@${this.selectedTable}§${this.selectedFile}§C§p@${this.selectedTable}@CRITERE@${concatCriteria}@DATA@${concatData}@FIN_DATA@`, \"region\": this.getFavoriteRegion() };\n this.apiService.saveObject(queryParam).subscribe(res1 => {\n this.newData = res1;\n console.log(\"newdata\", this.newData);\n },\n\n error => {\n console.log(\"newdata\", error);\n })\n\n let queryParam1 = {\n \"input\": `REALIGNEMENT@system@rea@${this.selectedTable}§${this.selectedFile}§S@Table@${this.selectedTable}@\nTaille de la clef@${totalCriteriaSize}\nNombre de critere@${this.listCriteria.length}\nNombre de data@${this.listData.length}\nCRITERE_GCO@${sLisCriGCO}\nDATA_GCO@${sLisDataGCO}\nClause§>I {\n this.saveData = res2;\n this.dialogRef.close(true);\n console.log(\"savedata\", this.saveData);\n },\n\n error => {\n console.log(\"savedata\", error);\n })\n }\n },\n\n error => {\n console.log(\"writingLogs\", error);\n\n })\n },\n\n error => {\n console.log(\"uploadfileRes\", error);\n\n })\n\n\n\n\n\n }\n\n else {\n this.toastyService.warning(\"No data found\");\n return;\n }\n\n\n\n }\n\n\n }\n })\n }\n\n\n\n async onSend() {\n\n if (this.uploadData) {\n\n if (this.listCriteria.length == 0) {\n this.toastyService.warning(\"You may choose at least a criteria\");\n return;\n }\n\n if (this.listData.length == 0) {\n this.toastyService.warning(\"You may choose at least a data\");\n return;\n }\n\n this.alertPopup(\"ATTENTION. you will send a request of realignment on the server. Are you sure you want to carry out this action?\");\n\n // if(this.selectedFileName.length > 20){\n\n // this.toastyService.warning(\"The file name is more than 20 characters\");\n // return; \n // }\n\n\n // for(var i=0; i {\n // this.fileData = res;\n // console.log(\"uploadfileRes\", res)\n // },\n // error => {\n // console.log(error);\n // })\n // }\n\n // }\n // } else {\n // this.toastyService.warning(\"No data found\");\n // return;\n // }\n }\n }\n\n changeValue() {\n console.log(\"tab\", this.selectedTable.name);\n return this.selectedTable.name;\n }\n}\n","export default \".realignment-management-style {\\n width: 75%;\\n max-height: 610px;\\n border: 1px solid;\\n padding: 15px;\\n background-color: #ffffff;\\n font-family: Roboto, \\\"Helvetica Neue\\\", sans-serif;\\n font-size: 14px;\\n}\\n.realignment-management-style .item-right {\\n float: right;\\n}\\n.realignment-management-style .img-size-20 {\\n height: 18px;\\n width: 18px;\\n cursor: pointer;\\n}\\n.realignment-management-style .example-radio-group {\\n display: flex;\\n margin: 15px 0;\\n}\\n.realignment-management-style .example-radio-button {\\n margin-right: 20px;\\n}\\n.realignment-management-style .content-font {\\n color: #000000;\\n font-family: Roboto, \\\"Helvetica Neue\\\", sans-serif;\\n font-size: 13px;\\n font-weight: 400;\\n line-height: 17px;\\n width: 59px;\\n text-align: left;\\n}\\n.realignment-management-style .hr-line {\\n width: 5px;\\n margin-top: 5px;\\n margin-left: 5px;\\n height: 40px;\\n border-right: 1px solid;\\n border-right-color: #ccc;\\n}\\n.realignment-management-style .radio-toolbar {\\n margin-top: 5px;\\n}\\n.realignment-management-style .radio-toolbar input[type=radio] {\\n opacity: 0;\\n position: fixed;\\n width: 20px;\\n}\\n.realignment-management-style .radio-toolbar label {\\n display: inline-block;\\n text-align: center;\\n padding: 5px;\\n font-family: Roboto, \\\"Helvetica Neue\\\", sans-serif;\\n font-size: 13px;\\n font-weight: 500;\\n border: 1px solid #cccccc;\\n width: 70px;\\n min-width: 70px;\\n margin-right: 5px;\\n margin-bottom: 5px;\\n}\\n.realignment-management-style .radio-toolbar label:hover {\\n background-color: #dfd;\\n}\\n.realignment-management-style .radio-toolbar input[type=radio]:checked + label {\\n background-color: #0077C8;\\n color: #ffffff;\\n}\\n.realignment-management-style .table-items {\\n overflow: auto;\\n border: 1px solid #ccc;\\n border-collapse: collapse;\\n margin-top: 10px;\\n}\\n.realignment-management-style .table-items th {\\n align-items: center;\\n justify-items: center;\\n border-right: 1px solid #ccc;\\n background-color: #2d4557;\\n color: #ffffff;\\n font-weight: 500 !important;\\n height: 25px;\\n}\\n.realignment-management-style .table-items tr {\\n height: 30px;\\n}\\n.realignment-management-style .table-items td {\\n border: 1px solid #ccc;\\n text-align: center;\\n}\\n.realignment-management-style .table-items tr:nth-child(even) {\\n background-color: #f2f2f2;\\n}\\n.realignment-management-style .btn {\\n min-width: 100px;\\n height: 30px !important;\\n font-family: Roboto, \\\"Helvetica Neue\\\", sans-serif;\\n font-size: 13px;\\n font-weight: 500;\\n text-align: center;\\n border: 0px solid;\\n background-color: #FFCC33;\\n padding: 3px !important;\\n border-radius: 0px;\\n margin-top: 10px;\\n cursor: pointer;\\n}\\n.realignment-management-style .bottom-btn {\\n display: flex;\\n flex-direction: row;\\n /* This aligns items to the end line on main-axis */\\n justify-content: flex-end;\\n -moz-column-gap: 10px;\\n column-gap: 10px;\\n}\\n.realignment-management-style .selected-row {\\n background-color: #0077C8 !important;\\n color: #ffffff;\\n}\\n.cls-displaynone {\\n display: none !important;\\n}\\n/*# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi91c3Ivc3JjL3NyYy9hcHAvY29tcG9uZW50L3JlYWxpZ25tZW50LW1haW4vcmVhbGlnbm1lbnQtbWFpbi5jb21wb25lbnQuc2NzcyIsInNyYy9hcHAvY29tcG9uZW50L3JlYWxpZ25tZW50LW1haW4vcmVhbGlnbm1lbnQtbWFpbi5jb21wb25lbnQuc2NzcyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQTtFQUNJLFVBQUE7RUFDQSxpQkFBQTtFQUNBLGlCQUFBO0VBQ0EsYUFBQTtFQUNBLHlCQUFBO0VBQ0EsaURBQUE7RUFDQSxlQUFBO0FDQ0o7QURDSTtFQUNJLFlBQUE7QUNDUjtBREVJO0VBQ0ksWUFBQTtFQUNBLFdBQUE7RUFFQSxlQUFBO0FDRFI7QURJSTtFQUNJLGFBQUE7RUFFQSxjQUFBO0FDSFI7QURNSTtFQUVJLGtCQUFBO0FDTFI7QURRSTtFQUNJLGNBQUE7RUFDQSxpREFBQTtFQUNBLGVBQUE7RUFDQSxnQkFBQTtFQUNBLGlCQUFBO0VBQ0EsV0FBQTtFQUNBLGdCQUFBO0FDTlI7QURTSTtFQUNJLFVBQUE7RUFDQSxlQUFBO0VBQ0EsZ0JBQUE7RUFDQSxZQUFBO0VBQ0EsdUJBQUE7RUFDQSx3QkFBQTtBQ1BSO0FEVUk7RUFDSSxlQUFBO0FDUlI7QURXSTtFQUNJLFVBQUE7RUFDQSxlQUFBO0VBQ0EsV0FBQTtBQ1RSO0FEWUk7RUFDSSxxQkFBQTtFQUVBLGtCQUFBO0VBQ0EsWUFBQTtFQUNBLGlEQUFBO0VBQ0EsZUFBQTtFQUNBLGdCQUFBO0VBQ0EseUJBQUE7RUFFQSxXQUFBO0VBQ0EsZUFBQTtFQUNBLGlCQUFBO0VBQ0Esa0JBQUE7QUNaUjtBRGVJO0VBQ0ksc0JBQUE7QUNiUjtBRG9CSTtFQUNJLHlCQUFBO0VBRUEsY0FBQTtBQ25CUjtBRHNCSTtFQUNJLGNBQUE7RUFDQSxzQkFBQTtFQUNBLHlCQUFBO0VBQ0EsZ0JBQUE7QUNwQlI7QURzQlE7RUFDSSxtQkFBQTtFQUNBLHFCQUFBO0VBQ0EsNEJBQUE7RUFDQSx5QkFBQTtFQUNBLGNBQUE7RUFDQSwyQkFBQTtFQUNBLFlBQUE7QUNwQlo7QUR1QlE7RUFDSSxZQUFBO0FDckJaO0FEd0JRO0VBQ0ksc0JBQUE7RUFDQSxrQkFBQTtBQ3RCWjtBRHlCUTtFQUNJLHlCQUFBO0FDdkJaO0FENEJJO0VBQ0ksZ0JBQUE7RUFDQSx1QkFBQTtFQUNBLGlEQUFBO0VBQ0EsZUFBQTtFQUNBLGdCQUFBO0VBQ0Esa0JBQUE7RUFDQSxpQkFBQTtFQUNBLHlCQUFBO0VBQ0EsdUJBQUE7RUFDQSxrQkFBQTtFQUNBLGdCQUFBO0VBQ0EsZUFBQTtBQzFCUjtBRDZCSTtFQUNJLGFBQUE7RUFFQSxtQkFBQTtFQUNBLG1EQUFBO0VBQ0EseUJBQUE7RUFFQSxxQkFBQTtPQUFBLGdCQUFBO0FDN0JSO0FEZ0NJO0VBQ0ksb0NBQUE7RUFDQSxjQUFBO0FDOUJSO0FEa0NBO0VBQ0ksd0JBQUE7QUMvQkoiLCJmaWxlIjoic3JjL2FwcC9jb21wb25lbnQvcmVhbGlnbm1lbnQtbWFpbi9yZWFsaWdubWVudC1tYWluLmNvbXBvbmVudC5zY3NzIiwic291cmNlc0NvbnRlbnQiOlsiLnJlYWxpZ25tZW50LW1hbmFnZW1lbnQtc3R5bGUge1xuICAgIHdpZHRoOiA3NSU7XG4gICAgbWF4LWhlaWdodDogNjEwcHg7XG4gICAgYm9yZGVyOiAxcHggc29saWQ7XG4gICAgcGFkZGluZzogMTVweDtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjZmZmZmZmO1xuICAgIGZvbnQtZmFtaWx5OiBSb2JvdG8sIFwiSGVsdmV0aWNhIE5ldWVcIiwgc2Fucy1zZXJpZjtcbiAgICBmb250LXNpemU6IDE0cHg7XG5cbiAgICAuaXRlbS1yaWdodCB7XG4gICAgICAgIGZsb2F0OiByaWdodDtcbiAgICB9XG5cbiAgICAuaW1nLXNpemUtMjAge1xuICAgICAgICBoZWlnaHQ6IDE4cHg7XG4gICAgICAgIHdpZHRoOiAxOHB4O1xuICAgICAgICAvLyBtYXJnaW4tdG9wOiA3cHg7XG4gICAgICAgIGN1cnNvcjogcG9pbnRlcjtcbiAgICB9XG5cbiAgICAuZXhhbXBsZS1yYWRpby1ncm91cCB7XG4gICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgIC8vICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcbiAgICAgICAgbWFyZ2luOiAxNXB4IDA7XG4gICAgfVxuXG4gICAgLmV4YW1wbGUtcmFkaW8tYnV0dG9uIHtcbiAgICAgICAgLy8gICBtYXJnaW46IDVweDtcbiAgICAgICAgbWFyZ2luLXJpZ2h0OiAyMHB4O1xuICAgIH1cblxuICAgIC5jb250ZW50LWZvbnQge1xuICAgICAgICBjb2xvcjogIzAwMDAwMDtcbiAgICAgICAgZm9udC1mYW1pbHk6IFJvYm90bywgXCJIZWx2ZXRpY2EgTmV1ZVwiLCBzYW5zLXNlcmlmO1xuICAgICAgICBmb250LXNpemU6IDEzcHg7XG4gICAgICAgIGZvbnQtd2VpZ2h0OiA0MDA7XG4gICAgICAgIGxpbmUtaGVpZ2h0OiAxN3B4O1xuICAgICAgICB3aWR0aDogNTlweDtcbiAgICAgICAgdGV4dC1hbGlnbjogbGVmdDtcbiAgICB9XG5cbiAgICAuaHItbGluZSB7XG4gICAgICAgIHdpZHRoOiA1cHg7XG4gICAgICAgIG1hcmdpbi10b3A6IDVweDtcbiAgICAgICAgbWFyZ2luLWxlZnQ6IDVweDtcbiAgICAgICAgaGVpZ2h0OiA0MHB4O1xuICAgICAgICBib3JkZXItcmlnaHQ6IDFweCBzb2xpZDtcbiAgICAgICAgYm9yZGVyLXJpZ2h0LWNvbG9yOiAjY2NjO1xuICAgIH1cblxuICAgIC5yYWRpby10b29sYmFyIHtcbiAgICAgICAgbWFyZ2luLXRvcDogNXB4O1xuICAgIH1cblxuICAgIC5yYWRpby10b29sYmFyIGlucHV0W3R5cGU9XCJyYWRpb1wiXSB7XG4gICAgICAgIG9wYWNpdHk6IDA7XG4gICAgICAgIHBvc2l0aW9uOiBmaXhlZDtcbiAgICAgICAgd2lkdGg6IDIwcHg7XG4gICAgfVxuXG4gICAgLnJhZGlvLXRvb2xiYXIgbGFiZWwge1xuICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgIC8vIGJhY2tncm91bmQtY29sb3I6ICNkZGQ7XG4gICAgICAgIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgICAgICAgcGFkZGluZzogNXB4O1xuICAgICAgICBmb250LWZhbWlseTogUm9ib3RvLCBcIkhlbHZldGljYSBOZXVlXCIsIHNhbnMtc2VyaWY7XG4gICAgICAgIGZvbnQtc2l6ZTogMTNweDtcbiAgICAgICAgZm9udC13ZWlnaHQ6IDUwMDtcbiAgICAgICAgYm9yZGVyOiAxcHggc29saWQgI2NjY2NjYztcbiAgICAgICAgLy8gYm9yZGVyLXJhZGl1czogNHB4O1xuICAgICAgICB3aWR0aDogNzBweDtcbiAgICAgICAgbWluLXdpZHRoOiA3MHB4O1xuICAgICAgICBtYXJnaW4tcmlnaHQ6IDVweDtcbiAgICAgICAgbWFyZ2luLWJvdHRvbTogNXB4O1xuICAgIH1cblxuICAgIC5yYWRpby10b29sYmFyIGxhYmVsOmhvdmVyIHtcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogI2RmZDtcbiAgICB9XG5cbiAgICAvLyAucmFkaW8tdG9vbGJhciBpbnB1dFt0eXBlPVwicmFkaW9cIl06Zm9jdXMgKyBsYWJlbCB7XG4gICAgLy8gICAgIGJvcmRlcjogMnB4IGRhc2hlZCAjNDQ0O1xuICAgIC8vIH1cblxuICAgIC5yYWRpby10b29sYmFyIGlucHV0W3R5cGU9XCJyYWRpb1wiXTpjaGVja2VkK2xhYmVsIHtcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogIzAwNzdDODtcbiAgICAgICAgLy8gYm9yZGVyLWNvbG9yOiAjNGM0O1xuICAgICAgICBjb2xvcjogI2ZmZmZmZjtcbiAgICB9XG5cbiAgICAudGFibGUtaXRlbXMge1xuICAgICAgICBvdmVyZmxvdzogYXV0bztcbiAgICAgICAgYm9yZGVyOiAxcHggc29saWQgI2NjYztcbiAgICAgICAgYm9yZGVyLWNvbGxhcHNlOiBjb2xsYXBzZTtcbiAgICAgICAgbWFyZ2luLXRvcDogMTBweDtcblxuICAgICAgICB0aCB7XG4gICAgICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgICAgICAgICAganVzdGlmeS1pdGVtczogY2VudGVyO1xuICAgICAgICAgICAgYm9yZGVyLXJpZ2h0OiAxcHggc29saWQgI2NjYztcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICMyZDQ1NTc7XG4gICAgICAgICAgICBjb2xvcjogI2ZmZmZmZjtcbiAgICAgICAgICAgIGZvbnQtd2VpZ2h0OiA1MDAgIWltcG9ydGFudDtcbiAgICAgICAgICAgIGhlaWdodDogMjVweDtcbiAgICAgICAgfVxuXG4gICAgICAgIHRyIHtcbiAgICAgICAgICAgIGhlaWdodDogMzBweDtcbiAgICAgICAgfVxuXG4gICAgICAgIHRkIHtcbiAgICAgICAgICAgIGJvcmRlcjogMXB4IHNvbGlkICNjY2M7XG4gICAgICAgICAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gICAgICAgIH1cblxuICAgICAgICB0cjpudGgtY2hpbGQoZXZlbikge1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogI2YyZjJmMjtcbiAgICAgICAgfVxuXG4gICAgfVxuXG4gICAgLmJ0biB7XG4gICAgICAgIG1pbi13aWR0aDogMTAwcHg7XG4gICAgICAgIGhlaWdodDogMzBweCAhaW1wb3J0YW50O1xuICAgICAgICBmb250LWZhbWlseTogUm9ib3RvLCBcIkhlbHZldGljYSBOZXVlXCIsIHNhbnMtc2VyaWY7XG4gICAgICAgIGZvbnQtc2l6ZTogMTNweDtcbiAgICAgICAgZm9udC13ZWlnaHQ6IDUwMDtcbiAgICAgICAgdGV4dC1hbGlnbjogY2VudGVyO1xuICAgICAgICBib3JkZXI6IDBweCBzb2xpZDtcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogI0ZGQ0MzMztcbiAgICAgICAgcGFkZGluZzogM3B4ICFpbXBvcnRhbnQ7XG4gICAgICAgIGJvcmRlci1yYWRpdXM6IDBweDtcbiAgICAgICAgbWFyZ2luLXRvcDogMTBweDtcbiAgICAgICAgY3Vyc29yOiBwb2ludGVyO1xuICAgIH1cblxuICAgIC5ib3R0b20tYnRuIHtcbiAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgLy8gZmxleC1mbG93OiByb3cgd3JhcDtcbiAgICAgICAgZmxleC1kaXJlY3Rpb246IHJvdztcbiAgICAgICAgLyogVGhpcyBhbGlnbnMgaXRlbXMgdG8gdGhlIGVuZCBsaW5lIG9uIG1haW4tYXhpcyAqL1xuICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IGZsZXgtZW5kO1xuICAgICAgICAvLyBqdXN0aWZ5LWNvbnRlbnQ6IHNwYWNlLWFyb3VuZDtcbiAgICAgICAgY29sdW1uLWdhcDogMTBweDtcbiAgICB9XG5cbiAgICAuc2VsZWN0ZWQtcm93IHtcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogIzAwNzdDOCAhaW1wb3J0YW50O1xuICAgICAgICBjb2xvcjogI2ZmZmZmZjtcbiAgICB9XG5cbn1cbi5jbHMtZGlzcGxheW5vbmV7XG4gICAgZGlzcGxheTpub25lICFpbXBvcnRhbnQ7XG59IiwiLnJlYWxpZ25tZW50LW1hbmFnZW1lbnQtc3R5bGUge1xuICB3aWR0aDogNzUlO1xuICBtYXgtaGVpZ2h0OiA2MTBweDtcbiAgYm9yZGVyOiAxcHggc29saWQ7XG4gIHBhZGRpbmc6IDE1cHg7XG4gIGJhY2tncm91bmQtY29sb3I6ICNmZmZmZmY7XG4gIGZvbnQtZmFtaWx5OiBSb2JvdG8sIFwiSGVsdmV0aWNhIE5ldWVcIiwgc2Fucy1zZXJpZjtcbiAgZm9udC1zaXplOiAxNHB4O1xufVxuLnJlYWxpZ25tZW50LW1hbmFnZW1lbnQtc3R5bGUgLml0ZW0tcmlnaHQge1xuICBmbG9hdDogcmlnaHQ7XG59XG4ucmVhbGlnbm1lbnQtbWFuYWdlbWVudC1zdHlsZSAuaW1nLXNpemUtMjAge1xuICBoZWlnaHQ6IDE4cHg7XG4gIHdpZHRoOiAxOHB4O1xuICBjdXJzb3I6IHBvaW50ZXI7XG59XG4ucmVhbGlnbm1lbnQtbWFuYWdlbWVudC1zdHlsZSAuZXhhbXBsZS1yYWRpby1ncm91cCB7XG4gIGRpc3BsYXk6IGZsZXg7XG4gIG1hcmdpbjogMTVweCAwO1xufVxuLnJlYWxpZ25tZW50LW1hbmFnZW1lbnQtc3R5bGUgLmV4YW1wbGUtcmFkaW8tYnV0dG9uIHtcbiAgbWFyZ2luLXJpZ2h0OiAyMHB4O1xufVxuLnJlYWxpZ25tZW50LW1hbmFnZW1lbnQtc3R5bGUgLmNvbnRlbnQtZm9udCB7XG4gIGNvbG9yOiAjMDAwMDAwO1xuICBmb250LWZhbWlseTogUm9ib3RvLCBcIkhlbHZldGljYSBOZXVlXCIsIHNhbnMtc2VyaWY7XG4gIGZvbnQtc2l6ZTogMTNweDtcbiAgZm9udC13ZWlnaHQ6IDQwMDtcbiAgbGluZS1oZWlnaHQ6IDE3cHg7XG4gIHdpZHRoOiA1OXB4O1xuICB0ZXh0LWFsaWduOiBsZWZ0O1xufVxuLnJlYWxpZ25tZW50LW1hbmFnZW1lbnQtc3R5bGUgLmhyLWxpbmUge1xuICB3aWR0aDogNXB4O1xuICBtYXJnaW4tdG9wOiA1cHg7XG4gIG1hcmdpbi1sZWZ0OiA1cHg7XG4gIGhlaWdodDogNDBweDtcbiAgYm9yZGVyLXJpZ2h0OiAxcHggc29saWQ7XG4gIGJvcmRlci1yaWdodC1jb2xvcjogI2NjYztcbn1cbi5yZWFsaWdubWVudC1tYW5hZ2VtZW50LXN0eWxlIC5yYWRpby10b29sYmFyIHtcbiAgbWFyZ2luLXRvcDogNXB4O1xufVxuLnJlYWxpZ25tZW50LW1hbmFnZW1lbnQtc3R5bGUgLnJhZGlvLXRvb2xiYXIgaW5wdXRbdHlwZT1yYWRpb10ge1xuICBvcGFjaXR5OiAwO1xuICBwb3NpdGlvbjogZml4ZWQ7XG4gIHdpZHRoOiAyMHB4O1xufVxuLnJlYWxpZ25tZW50LW1hbmFnZW1lbnQtc3R5bGUgLnJhZGlvLXRvb2xiYXIgbGFiZWwge1xuICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgcGFkZGluZzogNXB4O1xuICBmb250LWZhbWlseTogUm9ib3RvLCBcIkhlbHZldGljYSBOZXVlXCIsIHNhbnMtc2VyaWY7XG4gIGZvbnQtc2l6ZTogMTNweDtcbiAgZm9udC13ZWlnaHQ6IDUwMDtcbiAgYm9yZGVyOiAxcHggc29saWQgI2NjY2NjYztcbiAgd2lkdGg6IDcwcHg7XG4gIG1pbi13aWR0aDogNzBweDtcbiAgbWFyZ2luLXJpZ2h0OiA1cHg7XG4gIG1hcmdpbi1ib3R0b206IDVweDtcbn1cbi5yZWFsaWdubWVudC1tYW5hZ2VtZW50LXN0eWxlIC5yYWRpby10b29sYmFyIGxhYmVsOmhvdmVyIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogI2RmZDtcbn1cbi5yZWFsaWdubWVudC1tYW5hZ2VtZW50LXN0eWxlIC5yYWRpby10b29sYmFyIGlucHV0W3R5cGU9cmFkaW9dOmNoZWNrZWQgKyBsYWJlbCB7XG4gIGJhY2tncm91bmQtY29sb3I6ICMwMDc3Qzg7XG4gIGNvbG9yOiAjZmZmZmZmO1xufVxuLnJlYWxpZ25tZW50LW1hbmFnZW1lbnQtc3R5bGUgLnRhYmxlLWl0ZW1zIHtcbiAgb3ZlcmZsb3c6IGF1dG87XG4gIGJvcmRlcjogMXB4IHNvbGlkICNjY2M7XG4gIGJvcmRlci1jb2xsYXBzZTogY29sbGFwc2U7XG4gIG1hcmdpbi10b3A6IDEwcHg7XG59XG4ucmVhbGlnbm1lbnQtbWFuYWdlbWVudC1zdHlsZSAudGFibGUtaXRlbXMgdGgge1xuICBhbGlnbi1pdGVtczogY2VudGVyO1xuICBqdXN0aWZ5LWl0ZW1zOiBjZW50ZXI7XG4gIGJvcmRlci1yaWdodDogMXB4IHNvbGlkICNjY2M7XG4gIGJhY2tncm91bmQtY29sb3I6ICMyZDQ1NTc7XG4gIGNvbG9yOiAjZmZmZmZmO1xuICBmb250LXdlaWdodDogNTAwICFpbXBvcnRhbnQ7XG4gIGhlaWdodDogMjVweDtcbn1cbi5yZWFsaWdubWVudC1tYW5hZ2VtZW50LXN0eWxlIC50YWJsZS1pdGVtcyB0ciB7XG4gIGhlaWdodDogMzBweDtcbn1cbi5yZWFsaWdubWVudC1tYW5hZ2VtZW50LXN0eWxlIC50YWJsZS1pdGVtcyB0ZCB7XG4gIGJvcmRlcjogMXB4IHNvbGlkICNjY2M7XG4gIHRleHQtYWxpZ246IGNlbnRlcjtcbn1cbi5yZWFsaWdubWVudC1tYW5hZ2VtZW50LXN0eWxlIC50YWJsZS1pdGVtcyB0cjpudGgtY2hpbGQoZXZlbikge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjZjJmMmYyO1xufVxuLnJlYWxpZ25tZW50LW1hbmFnZW1lbnQtc3R5bGUgLmJ0biB7XG4gIG1pbi13aWR0aDogMTAwcHg7XG4gIGhlaWdodDogMzBweCAhaW1wb3J0YW50O1xuICBmb250LWZhbWlseTogUm9ib3RvLCBcIkhlbHZldGljYSBOZXVlXCIsIHNhbnMtc2VyaWY7XG4gIGZvbnQtc2l6ZTogMTNweDtcbiAgZm9udC13ZWlnaHQ6IDUwMDtcbiAgdGV4dC1hbGlnbjogY2VudGVyO1xuICBib3JkZXI6IDBweCBzb2xpZDtcbiAgYmFja2dyb3VuZC1jb2xvcjogI0ZGQ0MzMztcbiAgcGFkZGluZzogM3B4ICFpbXBvcnRhbnQ7XG4gIGJvcmRlci1yYWRpdXM6IDBweDtcbiAgbWFyZ2luLXRvcDogMTBweDtcbiAgY3Vyc29yOiBwb2ludGVyO1xufVxuLnJlYWxpZ25tZW50LW1hbmFnZW1lbnQtc3R5bGUgLmJvdHRvbS1idG4ge1xuICBkaXNwbGF5OiBmbGV4O1xuICBmbGV4LWRpcmVjdGlvbjogcm93O1xuICAvKiBUaGlzIGFsaWducyBpdGVtcyB0byB0aGUgZW5kIGxpbmUgb24gbWFpbi1heGlzICovXG4gIGp1c3RpZnktY29udGVudDogZmxleC1lbmQ7XG4gIGNvbHVtbi1nYXA6IDEwcHg7XG59XG4ucmVhbGlnbm1lbnQtbWFuYWdlbWVudC1zdHlsZSAuc2VsZWN0ZWQtcm93IHtcbiAgYmFja2dyb3VuZC1jb2xvcjogIzAwNzdDOCAhaW1wb3J0YW50O1xuICBjb2xvcjogI2ZmZmZmZjtcbn1cblxuLmNscy1kaXNwbGF5bm9uZSB7XG4gIGRpc3BsYXk6IG5vbmUgIWltcG9ydGFudDtcbn0iXX0= */\"","import { Component, EventEmitter, OnInit, Output } from '@angular/core';\nimport { Router } from '@angular/router';\nimport { MatDialog } from '@angular/material/dialog';\nimport { BackendApiService } from 'src/app/services/backend-api/backend-api.service';\nimport { UtilService } from 'src/app/services/util/util.service';\nimport { RealignmentDataComponent } from './realignment-data/realignment-data.component';\nimport { ToastyService } from 'ng2-toasty';\nimport { DatePipe } from '@angular/common';\nimport { AlertConfirmationComponent } from '../alert-confirmation/alert-confirmation.component';\nimport { Observable, of } from 'rxjs';\n\n@Component({\n selector: 'app-realignment-main',\n templateUrl: './realignment-main.component.html',\n styleUrls: ['./realignment-main.component.scss'],\n providers: [DatePipe]\n})\nexport class RealignmentMainComponent implements OnInit {\n profile: any;\n region: string[];\n selectedRegion: string;\n lostLogDetails: any;\n data1: any;\n tabData: any;\n tableData: [];\n selectedRow: any;\n modData: any;\n rawData: any;\n criteriaList: any;\n dataList: any;\n modData1: any;\n criteriaData: any;\n selectedCriteria: any;\n selectedData: any;\n runData: any;\n getRun: any;\n\n\n constructor(readonly utilService: UtilService, readonly router: Router, readonly apiService: BackendApiService, public dialog: MatDialog,\n readonly toastyService: ToastyService, public datepipe: DatePipe) { }\n\n ngOnInit() {\n this.utilService.$showIcon$.next(false);\n this.profile = this.utilService.getUserProfile();\n // const role = this.profile['roles'];\n //console.log(this.profile['roles']);\n //console.log(this.region)\n let regionRole = this.utilService.getUserProfile()['roles'].filter(item => item.includes('ACC_PIL'));\n regionRole = { ...regionRole};\n if (regionRole.length > 1 && this.profile['roles'].includes('PIL_ADMIN') && this.profile['roles'].includes('PIM_ADMIN')) {\n \n this.region = [];\n if(this.profile['roles'].includes('GR_PIL_TOUT'))\n this.region.push('Europe');\n if(this.profile['roles'].includes('GR_PIM_TOUT'))\n this.region.push('Mercosur');\n \n this.selectedRegion = this.profile['roles'].includes('GR_PIL_TOUT') ? \"Europe\" : \"Mercosur\";\n } else {\n \n let reg = (this.profile['roles'].includes('ACC_PIL_EUROPE') && this.profile['roles'].includes('PIL_ADMIN') && this.profile['roles'].includes('GR_PIL_TOUT')) ? 'Europe' : 'Mercosur';\n this.region = [reg];\n this.selectedRegion = reg;\n }\n this.getLostLog();\n this.getRealignmentData();\n }\n\n getFavoriteRegion() {\n if (this.selectedRegion === \"Europe\") {\n return \"PIL\";\n } else {\n return \"PIM\";\n }\n }\n\n getLostLog() {\n this.lostLogDetails = undefined;\n const queryParam = { \"input\": `REALIGNEMENT@system@rea@info@0@55@`, \"region\": this.getFavoriteRegion() };\n this.apiService.getObjectGet(queryParam).subscribe(resData => {\n // if(resData.data){\n this.lostLogDetails = resData.data.replace('§', ' ').replace('&', ' ');\n console.log(\"lostlogin\", this.lostLogDetails);\n // } \n })\n }\n\n getRealignmentData() {\n this.lostLogDetails = undefined;\n let test1;\n this.tabData = [];\n const queryParam = { \"input\": `REALIGNEMENT@system@rea@info@0@55@`, \"region\": this.getFavoriteRegion() };\n this.apiService.getChoiceTableDetails(queryParam).subscribe(resData1 => {\n console.log(\"data0\", resData1.lists)\n this.data1 = resData1.lists;\n\n for (var i = 0; i < this.data1.length; i++) {\n if (this.data1[i].split(\"§\")[2] === \"C\") {\n console.log(\"check\", this.data1[i])\n this.rawData = resData1.lists[i];\n console.log(\"try\", this.rawData)\n test1 = resData1.lists[i].split('§');\n console.log(\"tabledata\", test1)\n // test1.push(this.data1[i]);\n // if (test1[3] !== \"OK\") {\n this.tabData.push({ \"rawdata\": this.rawData, \"table\": test1[0], \"demande\": test1[1], \"etat\": test1[3] === 'p' ? 'PENDING' : test1[3] === 's' ? 'OK' : test1[3] === 'c' ? 'CREATE' : test1[3] });\n // }\n // this.selectedRow = this.tabData;\n console.log(\"dataa\", this.tabData)\n }\n }\n\n })\n }\n\n onRefresh() {\n this.getLostLog();\n this.getRealignmentData();\n }\n\n onChangedRegion(item) {\n this.selectedRegion = item;\n this.getLostLog();\n this.getRealignmentData();\n }\n\n openHelpFile() {\n window.open('https://grouperenault.sharepoint.com/sites/Doc_Pilotage/en-US/Pages/Aide%20en%20ligne/maj_libelle.aspx', '_blank');\n }\n\n clickClose() {\n const pathName = window.location.pathname;\n this.utilService.removeOpenedWindowName(pathName);\n this.utilService.$showIcon$.next(true);\n const openedWindowNameList = this.utilService.getOpenedWindowNameList()\n if (openedWindowNameList.length > 0) {\n this.router.navigate([openedWindowNameList[openedWindowNameList.length - 1]]);\n } else {\n this.router.navigate(['home']);\n }\n }\n\n onAdd() {\n const dialogRef = this.dialog.open(RealignmentDataComponent, {\n disableClose: true,\n width: '900px',\n data: { 'title': this.utilService.getTranslateName(`REALIGNMENT.REALIGNMENT_DATA_TITLE`), 'region': this.selectedRegion, 'ipn': this.profile['login'] }\n });\n\n dialogRef.afterClosed().subscribe(result => {\n if (result) {\n // const queryParam = { \"input\": `REALIGNEMENT@system@rea@@0@55@`, \"region\": this.getFavoriteRegion() };\n // this.apiService.getChoiceTableDetails(queryParam).subscribe(res => {\n // console.log(\"data\", res);\n\n // })\n this.onRefresh()\n }\n })\n }\n\n onModify() {\n this.criteriaList = [];\n console.log(\"rowData\", this.selectedRow)\n let queryParam = { \"input\": `REALIGNEMENT@system@rea@${this.rawData}@`, \"region\": this.getFavoriteRegion(), 'ipn': this.profile['login'] };\n this.apiService.getObjectGet(queryParam).subscribe(res1 => {\n this.modData = res1.data;\n console.log(\"modData\", this.modData);\n let selectedCriteriaList = [], selectedDataList = [], isData: boolean;\n this.modData1 = this.modData.split(\"@\");\n console.log(\"modData1\", this.modData1);\n for (var i = 2; i < this.modData1.length - 2; i++) {\n if (this.modData1[i] === \"DATA\") {\n isData = true;\n } else {\n if (!isData) {\n selectedCriteriaList.push(this.modData1[i]);\n } else {\n selectedDataList.push(this.modData1[i]);\n }\n }\n this.selectedCriteria = selectedCriteriaList;\n console.log(\"criterialist\", selectedCriteriaList);\n this.selectedData = selectedDataList;\n console.log(\"datalist\", selectedDataList);\n }\n // console.log(\"modData1\",this.modData1);\n // this.criteriaData=this.modData1[1].split(\"@\");\n // console.log(\"criteria\",this.criteriaData);\n\n // for(var i=0; i {\n console.log(\"lock_recopie\", res1);\n const currentDate = this.datepipe.transform(new Date(), 'yyyyMMdd');\n if (currentDate !== res1.data) {\n this.toastyService.warning(this.utilService.getTranslateName(`ERROR.RUNNING_DATE`));\n return;\n } else {\n this.runPopUp();\n }\n },\n\n error => {\n console.log(\"rundataErr\", error);\n // this.toastyService.warning()\n })\n return of(false);\n }\n }\n\n // if (!this.checkCondRunBackup()) {\n // const queryParam1 = { \"input\": `${this.profile['uid']}@LIB@REA_RUN@${this.selectedRow.table}§${this.selectedRow.demande}@@`, \"region\": this.getFavoriteRegion() };\n // console.log(\"rundata queryParam1\", queryParam1);\n // this.apiService.specialBases(queryParam1).subscribe(res1 => {\n // this.runData = res1;\n // console.log(\"rundata\", this.runData);\n // },\n\n // error => {\n // console.log(\"rundataErr\", error);\n // })\n // }\n }\n }\n\n\n runPopUp() {\n const dialogRef = this.dialog.open(AlertConfirmationComponent, {\n disableClose: true,\n width: '550px',\n data: { 'display': this.utilService.getTranslateName(`REALIGNMENT.RUN_CONF`) }\n });\n\n dialogRef.afterClosed().subscribe(result => {\n if (result) {\n if (this.selectedRow.etat === \"OK\" || this.selectedRow.etat === \"RUNNING\" || this.selectedRow.etat === \"KO\") {\n this.toastyService.warning(this.utilService.getTranslateName(`ERROR.RUN_STATUS`));\n return;\n } else {\n\n const queryParam1 = { \"input\": `${this.profile['login']}@LIB@REA_RUN@${this.selectedRow.table}§${this.selectedRow.demande}@@`, \"region\": this.getFavoriteRegion() };\n console.log(\"rundata queryParam1\", queryParam1);\n this.apiService.specialBases(queryParam1).subscribe(res1 => {\n this.runData = res1;\n console.log(\"rundata\", this.runData);\n },\n\n error => {\n console.log(\"rundataErr\", error);\n });\n }\n this.onRefresh()\n }\n })\n }\n\n onBackup() {\n if (this.selectedRow) {\n\n for (let index = 0; index < this.tabData.length; index++) {\n const element = this.tabData[index];\n if (element.etat === \"RUNNING\") {\n this.toastyService.warning(this.utilService.getTranslateName(`ERROR.RUN_RUNNING`));\n return;\n }\n if (index === this.tabData.length - 1) {\n const queryParam1 = {\n \"input\": \"REALIGNEMENT@system@rea@lock_recopie@0@55@\", \"region\": this.getFavoriteRegion()\n };\n this.apiService.getObjectGet(queryParam1).subscribe(res1 => {\n console.log(\"lock_recopie\", res1);\n const currentDate = this.datepipe.transform(new Date(), 'yyyyMMdd');\n if (currentDate !== res1.data) {\n this.toastyService.warning(this.utilService.getTranslateName(`ERROR.RUNNING_DATE`));\n return;\n } else {\n this.backupPopUp();\n }\n },\n\n error => {\n console.log(\"rundataErr\", error);\n // this.toastyService.warning()\n })\n return of(false);\n }\n }\n }\n }\n\n\n backupPopUp() {\n const dialogRef = this.dialog.open(AlertConfirmationComponent, {\n disableClose: true,\n width: '550px',\n data: { 'display': this.utilService.getTranslateName(`REALIGNMENT.BACKUP_ALERT`) }\n });\n\n dialogRef.afterClosed().subscribe(result => {\n if (result) {\n const queryParam1 = { \"input\": `${this.profile['login']}@LIB@REA_BACKUP@@@`, \"region\": this.getFavoriteRegion() };\n console.log(\"backupata queryParam1\", queryParam1);\n this.apiService.specialBases(queryParam1).subscribe(res1 => {\n this.runData = res1;\n console.log(\"backupata\", this.runData);\n },\n\n error => {\n console.log(\"backupataErr\", error);\n });\n this.onRefresh()\n }\n })\n }\n\n onDelete() {\n const dialogRef = this.dialog.open(AlertConfirmationComponent, {\n disableClose: true,\n width: '550px',\n data: { 'display': this.utilService.getTranslateName(`REALIGNMENT.DELETE_CONF`) }\n });\n\n dialogRef.afterClosed().subscribe(result => {\n if (result == true) {\n if (this.selectedRow.etat.toLocaleUpperCase() !== \"PENDING\") {\n this.toastyService.warning(this.utilService.getTranslateName(`ERROR.DELETE_ALERT`));\n return;\n } else {\n const queryParam1 = { \"input\": `${this.profile['login']}@LIB@REA_DEL@${this.selectedRow.table}§${this.selectedRow.demande}@@`, \"region\": this.getFavoriteRegion() };\n\n this.apiService.specialBases(queryParam1).subscribe(res1 => {\n this.runData = res1;\n console.log(\"deletedata\", this.runData);\n this.onRefresh();\n },\n\n error => {\n console.log(\"deletedataErr\", error);\n });\n }\n }\n })\n }\n\n onLog() {\n // debugger\n if (this.selectedRow) {\n if (this.selectedRow.etat !== \"OK\" && this.selectedRow.etat !== \"KO\") {\n this.toastyService.warning(this.utilService.getTranslateName(`ERROR.LOG_ERROR`));\n return;\n }\n const queryParam2 = {\n \"inputLists\": [\n `FileName@${this.selectedRow.table}§${this.selectedRow.demande}.log`,\n `IPN@${this.profile['login']}`,\n `Table@${this.selectedRow.table}`,\n \"Action@DOWNLOAD_FILE\",\n \"FileType@REA_LOG\"\n ],\n // \"input\": \"REALIGNMENT - Download log file\",\n \"region\": this.getFavoriteRegion()\n }\n\n this.apiService.writingLogs(queryParam2).subscribe(res => {\n // this.fileData = res;\n console.log(\"writingLogssss\", res);\n if (res.status === 200) {\n\n var tempFile = window.location.protocol + '//' + window.location.hostname + \"/pil-api-s3/downloadfile/\" + res.fileName;\n // this.downloadFileNew(res.fileName, window.location.protocol + '//' + window.location.hostname + \"/pil-api-s3/downloadfile/\")\n window.open(tempFile);\n }\n // error => {\n // console.log(\"savedata\", error);\n // }\n })\n }\n\n }\n}\n","export default \".page-style {\\n width: 350px;\\n border: 1px solid;\\n padding: 15px;\\n background-color: #ffffff;\\n}\\n\\n.div-width {\\n width: 100%;\\n}\\n\\n.item-right {\\n float: right;\\n}\\n\\n.div-flex {\\n display: flex;\\n}\\n\\n.margin-bot-10 {\\n margin-bottom: 10px;\\n}\\n\\n.dot-style {\\n width: 0px;\\n margin-top: 4px;\\n color: #ffffff;\\n}\\n\\n.example-radio-group {\\n display: flex;\\n margin: 15px 0;\\n}\\n\\n.example-radio-button {\\n margin-right: 20px;\\n}\\n\\n.img-size-20 {\\n height: 18px;\\n width: 18px;\\n cursor: pointer;\\n}\\n\\n.title-font {\\n color: #000000;\\n font-family: Roboto, \\\"Helvetica Neue\\\", sans-serif;\\n font-size: 14px;\\n font-weight: 500;\\n line-height: 17px;\\n width: 210px;\\n text-align: left;\\n}\\n\\n.content-font {\\n color: #000000;\\n font-family: Roboto, \\\"Helvetica Neue\\\", sans-serif;\\n font-size: 13px;\\n font-weight: 400;\\n line-height: 17px;\\n width: 59px;\\n text-align: left;\\n}\\n\\n.radio-toolbar {\\n margin-top: 10px;\\n}\\n\\n.radio-toolbar input[type=radio] {\\n opacity: 0;\\n position: fixed;\\n width: 20px;\\n}\\n\\n.radio-toolbar label {\\n display: inline-block;\\n transition: background-color 0.5s ease;\\n text-align: center;\\n padding: 5px;\\n font-family: Roboto, \\\"Helvetica Neue\\\", sans-serif;\\n font-size: 13px;\\n font-weight: 500;\\n border: 1px solid #cccccc;\\n width: 70px;\\n min-width: 70px;\\n margin-right: 5px;\\n margin-bottom: 5px;\\n}\\n\\n.radio-toolbar label:hover {\\n background-color: #dfd;\\n}\\n\\n.radio-toolbar input[type=radio]:checked + label {\\n background-color: #0077C8;\\n color: #ffffff;\\n}\\n\\n.label-checked {\\n background-color: #0077C8;\\n color: #ffffff;\\n}\\n\\nspan {\\n font-family: \\\"Helvetica\\\", Times, serif;\\n font-size: 13px;\\n}\\n\\n.dot {\\n margin-top: 5px;\\n height: 15px;\\n width: 15px;\\n background-color: #bbb;\\n border-radius: 50%;\\n display: inline-block;\\n margin-right: 10px;\\n}\\n\\n.dot-backcolour-green {\\n background-color: #6BCC6F;\\n}\\n\\n.dot-backcolour-red {\\n background-color: #FF0000;\\n}\\n\\n.dot-backcolour-orange {\\n background-color: #FFA500;\\n}\\n\\n.button-style {\\n width: 100px;\\n height: 36px;\\n font-family: Roboto, \\\"Helvetica Neue\\\", sans-serif;\\n font-size: 13px;\\n font-weight: 500;\\n text-align: center;\\n border: 0px solid;\\n background-color: #FFCC33;\\n padding: 0 !important;\\n border-radius: 0px;\\n}\\n/*# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi91c3Ivc3JjL3NyYy9hcHAvY29tcG9uZW50L3RhYmxlL2Nob2ljZS10YWJsZS9jaG9pY2UtdGFibGUuY29tcG9uZW50LnNjc3MiLCJzcmMvYXBwL2NvbXBvbmVudC90YWJsZS9jaG9pY2UtdGFibGUvY2hvaWNlLXRhYmxlLmNvbXBvbmVudC5zY3NzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBO0VBQ0UsWUFBQTtFQUNBLGlCQUFBO0VBQ0EsYUFBQTtFQUNBLHlCQUFBO0FDQ0Y7O0FERUE7RUFDRSxXQUFBO0FDQ0Y7O0FERUE7RUFDRSxZQUFBO0FDQ0Y7O0FERUE7RUFDRSxhQUFBO0FDQ0Y7O0FERUE7RUFDRSxtQkFBQTtBQ0NGOztBREVBO0VBQ0UsVUFBQTtFQUVBLGVBQUE7RUFDQSxjQUFBO0FDQUY7O0FER0E7RUFDRSxhQUFBO0VBRUEsY0FBQTtBQ0RGOztBRElBO0VBRUUsa0JBQUE7QUNGRjs7QURLQTtFQUNFLFlBQUE7RUFDQSxXQUFBO0VBRUEsZUFBQTtBQ0hGOztBRE1BO0VBQ0UsY0FBQTtFQUNBLGlEQUFBO0VBQ0EsZUFBQTtFQUNBLGdCQUFBO0VBQ0EsaUJBQUE7RUFDQSxZQUFBO0VBQ0EsZ0JBQUE7QUNIRjs7QURNQTtFQUNFLGNBQUE7RUFDQSxpREFBQTtFQUNBLGVBQUE7RUFDQSxnQkFBQTtFQUNBLGlCQUFBO0VBQ0EsV0FBQTtFQUNBLGdCQUFBO0FDSEY7O0FETUE7RUFDRSxnQkFBQTtBQ0hGOztBRE1BO0VBQ0UsVUFBQTtFQUNBLGVBQUE7RUFDQSxXQUFBO0FDSEY7O0FETUE7RUFDSSxxQkFBQTtFQUNBLHNDQUFBO0VBQ0Esa0JBQUE7RUFDQSxZQUFBO0VBQ0EsaURBQUE7RUFDQSxlQUFBO0VBQ0EsZ0JBQUE7RUFDQSx5QkFBQTtFQUVBLFdBQUE7RUFDQSxlQUFBO0VBQ0EsaUJBQUE7RUFDQSxrQkFBQTtBQ0pKOztBRE9BO0VBQ0Usc0JBQUE7QUNKRjs7QURXQTtFQUNJLHlCQUFBO0VBRUEsY0FBQTtBQ1RKOztBRFlBO0VBQ0kseUJBQUE7RUFFQSxjQUFBO0FDVko7O0FEYUE7RUFDRSxzQ0FBQTtFQUNBLGVBQUE7QUNWRjs7QURhQTtFQUNFLGVBQUE7RUFDQSxZQUFBO0VBQ0EsV0FBQTtFQUNBLHNCQUFBO0VBQ0Esa0JBQUE7RUFDQSxxQkFBQTtFQUNBLGtCQUFBO0FDVkY7O0FEYUE7RUFDQSx5QkFBQTtBQ1ZBOztBRGFBO0VBQ0EseUJBQUE7QUNWQTs7QURhQTtFQUNBLHlCQUFBO0FDVkE7O0FEYUE7RUFDRSxZQUFBO0VBQ0UsWUFBQTtFQUNGLGlEQUFBO0VBQ0EsZUFBQTtFQUNBLGdCQUFBO0VBQ0Usa0JBQUE7RUFDQSxpQkFBQTtFQUNBLHlCQUFBO0VBQ0EscUJBQUE7RUFDQSxrQkFBQTtBQ1ZKIiwiZmlsZSI6InNyYy9hcHAvY29tcG9uZW50L3RhYmxlL2Nob2ljZS10YWJsZS9jaG9pY2UtdGFibGUuY29tcG9uZW50LnNjc3MiLCJzb3VyY2VzQ29udGVudCI6WyIucGFnZS1zdHlsZXtcbiAgd2lkdGg6IDM1MHB4OyBcbiAgYm9yZGVyOiAxcHggc29saWQ7IFxuICBwYWRkaW5nOiAxNXB4OyBcbiAgYmFja2dyb3VuZC1jb2xvcjogI2ZmZmZmZjtcbn1cblxuLmRpdi13aWR0aHtcbiAgd2lkdGg6IDEwMCU7XG59XG5cbi5pdGVtLXJpZ2h0e1xuICBmbG9hdDogcmlnaHQ7XG59XG5cbi5kaXYtZmxleHtcbiAgZGlzcGxheTogZmxleDtcbn1cblxuLm1hcmdpbi1ib3QtMTB7XG4gIG1hcmdpbi1ib3R0b206IDEwcHg7XG59XG5cbi5kb3Qtc3R5bGV7XG4gIHdpZHRoOiAwcHg7IFxuICAvLyBtYXJnaW4tbGVmdDogMTBweDsgXG4gIG1hcmdpbi10b3A6IDRweDsgXG4gIGNvbG9yOiAjZmZmZmZmO1xufVxuXG4uZXhhbXBsZS1yYWRpby1ncm91cCB7XG4gIGRpc3BsYXk6IGZsZXg7XG4vLyAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XG4gIG1hcmdpbjogMTVweCAwO1xufVxuXG4uZXhhbXBsZS1yYWRpby1idXR0b24ge1xuLy8gICBtYXJnaW46IDVweDtcbiAgbWFyZ2luLXJpZ2h0OiAyMHB4O1xufVxuXG4uaW1nLXNpemUtMjB7XG4gIGhlaWdodDogMThweDtcbiAgd2lkdGg6IDE4cHg7XG4gIC8vIG1hcmdpbi10b3A6IDdweDtcbiAgY3Vyc29yOiBwb2ludGVyO1xufVxuXG4udGl0bGUtZm9udHtcbiAgY29sb3I6ICMwMDAwMDA7XG4gIGZvbnQtZmFtaWx5OiBSb2JvdG8sXCJIZWx2ZXRpY2EgTmV1ZVwiLHNhbnMtc2VyaWY7XG4gIGZvbnQtc2l6ZTogMTRweDtcbiAgZm9udC13ZWlnaHQ6IDUwMDtcbiAgbGluZS1oZWlnaHQ6IDE3cHg7XG4gIHdpZHRoOiAyMTBweDtcbiAgdGV4dC1hbGlnbjogbGVmdDtcbn1cblxuLmNvbnRlbnQtZm9udHtcbiAgY29sb3I6ICMwMDAwMDA7XG4gIGZvbnQtZmFtaWx5OiBSb2JvdG8sXCJIZWx2ZXRpY2EgTmV1ZVwiLHNhbnMtc2VyaWY7XG4gIGZvbnQtc2l6ZTogMTNweDtcbiAgZm9udC13ZWlnaHQ6IDQwMDtcbiAgbGluZS1oZWlnaHQ6IDE3cHg7XG4gIHdpZHRoOiA1OXB4O1xuICB0ZXh0LWFsaWduOiBsZWZ0O1xufVxuXG4ucmFkaW8tdG9vbGJhciB7XG4gIG1hcmdpbi10b3A6IDEwcHg7XG59XG5cbi5yYWRpby10b29sYmFyIGlucHV0W3R5cGU9XCJyYWRpb1wiXSB7XG4gIG9wYWNpdHk6IDA7XG4gIHBvc2l0aW9uOiBmaXhlZDtcbiAgd2lkdGg6IDIwcHg7XG59XG5cbi5yYWRpby10b29sYmFyIGxhYmVsIHtcbiAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgdHJhbnNpdGlvbjogYmFja2dyb3VuZC1jb2xvciAwLjVzIGVhc2U7XG4gICAgdGV4dC1hbGlnbjogY2VudGVyO1xuICAgIHBhZGRpbmc6IDVweDtcbiAgICBmb250LWZhbWlseTogUm9ib3RvLFwiSGVsdmV0aWNhIE5ldWVcIixzYW5zLXNlcmlmO1xuICAgIGZvbnQtc2l6ZTogMTNweDtcbiAgICBmb250LXdlaWdodDogNTAwO1xuICAgIGJvcmRlcjogMXB4IHNvbGlkICNjY2NjY2M7XG4gICAgLy8gYm9yZGVyLXJhZGl1czogNHB4O1xuICAgIHdpZHRoOiA3MHB4O1xuICAgIG1pbi13aWR0aDogNzBweDtcbiAgICBtYXJnaW4tcmlnaHQ6IDVweDtcbiAgICBtYXJnaW4tYm90dG9tOiA1cHg7XG59XG5cbi5yYWRpby10b29sYmFyIGxhYmVsOmhvdmVyIHsgIFxuICBiYWNrZ3JvdW5kLWNvbG9yOiAjZGZkO1xufVxuXG4vLyAucmFkaW8tdG9vbGJhciBpbnB1dFt0eXBlPVwicmFkaW9cIl06Zm9jdXMgKyBsYWJlbCB7XG4vLyAgICAgYm9yZGVyOiAycHggZGFzaGVkICM0NDQ7XG4vLyB9XG5cbi5yYWRpby10b29sYmFyIGlucHV0W3R5cGU9XCJyYWRpb1wiXTpjaGVja2VkICsgbGFiZWwge1xuICAgIGJhY2tncm91bmQtY29sb3I6ICMwMDc3Qzg7XG4gICAgLy8gYm9yZGVyLWNvbG9yOiAjNGM0O1xuICAgIGNvbG9yOiAjZmZmZmZmO1xufVxuXG4ubGFiZWwtY2hlY2tlZCB7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogIzAwNzdDODtcbiAgICAvLyBib3JkZXItY29sb3I6ICM0YzQ7XG4gICAgY29sb3I6ICNmZmZmZmY7XG59XG5cbnNwYW57XG4gIGZvbnQtZmFtaWx5OiBcIkhlbHZldGljYVwiLCBUaW1lcywgc2VyaWY7XG4gIGZvbnQtc2l6ZTogMTNweDtcbn1cblxuLmRvdCB7XG4gIG1hcmdpbi10b3A6IDVweDtcbiAgaGVpZ2h0OiAxNXB4O1xuICB3aWR0aDogMTVweDtcbiAgYmFja2dyb3VuZC1jb2xvcjogI2JiYjtcbiAgYm9yZGVyLXJhZGl1czogNTAlO1xuICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gIG1hcmdpbi1yaWdodDogMTBweDsgXG59XG5cbi5kb3QtYmFja2NvbG91ci1ncmVlbntcbmJhY2tncm91bmQtY29sb3I6ICM2QkNDNkY7XG59XG5cbi5kb3QtYmFja2NvbG91ci1yZWR7XG5iYWNrZ3JvdW5kLWNvbG9yOiAjRkYwMDAwO1xufVxuXG4uZG90LWJhY2tjb2xvdXItb3Jhbmdle1xuYmFja2dyb3VuZC1jb2xvcjogI0ZGQTUwMDtcbn1cblxuLmJ1dHRvbi1zdHlsZXtcbiAgd2lkdGg6IDEwMHB4O1xuICAgIGhlaWdodDogMzZweDtcbiAgZm9udC1mYW1pbHk6IFJvYm90byxcIkhlbHZldGljYSBOZXVlXCIsc2Fucy1zZXJpZjtcbiAgZm9udC1zaXplOiAxM3B4O1xuICBmb250LXdlaWdodDogNTAwO1xuICAgIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgICBib3JkZXI6IDBweCBzb2xpZDtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjRkZDQzMzO1xuICAgIHBhZGRpbmc6IDAgIWltcG9ydGFudDtcbiAgICBib3JkZXItcmFkaXVzOiAwcHg7XG59IiwiLnBhZ2Utc3R5bGUge1xuICB3aWR0aDogMzUwcHg7XG4gIGJvcmRlcjogMXB4IHNvbGlkO1xuICBwYWRkaW5nOiAxNXB4O1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjZmZmZmZmO1xufVxuXG4uZGl2LXdpZHRoIHtcbiAgd2lkdGg6IDEwMCU7XG59XG5cbi5pdGVtLXJpZ2h0IHtcbiAgZmxvYXQ6IHJpZ2h0O1xufVxuXG4uZGl2LWZsZXgge1xuICBkaXNwbGF5OiBmbGV4O1xufVxuXG4ubWFyZ2luLWJvdC0xMCB7XG4gIG1hcmdpbi1ib3R0b206IDEwcHg7XG59XG5cbi5kb3Qtc3R5bGUge1xuICB3aWR0aDogMHB4O1xuICBtYXJnaW4tdG9wOiA0cHg7XG4gIGNvbG9yOiAjZmZmZmZmO1xufVxuXG4uZXhhbXBsZS1yYWRpby1ncm91cCB7XG4gIGRpc3BsYXk6IGZsZXg7XG4gIG1hcmdpbjogMTVweCAwO1xufVxuXG4uZXhhbXBsZS1yYWRpby1idXR0b24ge1xuICBtYXJnaW4tcmlnaHQ6IDIwcHg7XG59XG5cbi5pbWctc2l6ZS0yMCB7XG4gIGhlaWdodDogMThweDtcbiAgd2lkdGg6IDE4cHg7XG4gIGN1cnNvcjogcG9pbnRlcjtcbn1cblxuLnRpdGxlLWZvbnQge1xuICBjb2xvcjogIzAwMDAwMDtcbiAgZm9udC1mYW1pbHk6IFJvYm90bywgXCJIZWx2ZXRpY2EgTmV1ZVwiLCBzYW5zLXNlcmlmO1xuICBmb250LXNpemU6IDE0cHg7XG4gIGZvbnQtd2VpZ2h0OiA1MDA7XG4gIGxpbmUtaGVpZ2h0OiAxN3B4O1xuICB3aWR0aDogMjEwcHg7XG4gIHRleHQtYWxpZ246IGxlZnQ7XG59XG5cbi5jb250ZW50LWZvbnQge1xuICBjb2xvcjogIzAwMDAwMDtcbiAgZm9udC1mYW1pbHk6IFJvYm90bywgXCJIZWx2ZXRpY2EgTmV1ZVwiLCBzYW5zLXNlcmlmO1xuICBmb250LXNpemU6IDEzcHg7XG4gIGZvbnQtd2VpZ2h0OiA0MDA7XG4gIGxpbmUtaGVpZ2h0OiAxN3B4O1xuICB3aWR0aDogNTlweDtcbiAgdGV4dC1hbGlnbjogbGVmdDtcbn1cblxuLnJhZGlvLXRvb2xiYXIge1xuICBtYXJnaW4tdG9wOiAxMHB4O1xufVxuXG4ucmFkaW8tdG9vbGJhciBpbnB1dFt0eXBlPXJhZGlvXSB7XG4gIG9wYWNpdHk6IDA7XG4gIHBvc2l0aW9uOiBmaXhlZDtcbiAgd2lkdGg6IDIwcHg7XG59XG5cbi5yYWRpby10b29sYmFyIGxhYmVsIHtcbiAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICB0cmFuc2l0aW9uOiBiYWNrZ3JvdW5kLWNvbG9yIDAuNXMgZWFzZTtcbiAgdGV4dC1hbGlnbjogY2VudGVyO1xuICBwYWRkaW5nOiA1cHg7XG4gIGZvbnQtZmFtaWx5OiBSb2JvdG8sIFwiSGVsdmV0aWNhIE5ldWVcIiwgc2Fucy1zZXJpZjtcbiAgZm9udC1zaXplOiAxM3B4O1xuICBmb250LXdlaWdodDogNTAwO1xuICBib3JkZXI6IDFweCBzb2xpZCAjY2NjY2NjO1xuICB3aWR0aDogNzBweDtcbiAgbWluLXdpZHRoOiA3MHB4O1xuICBtYXJnaW4tcmlnaHQ6IDVweDtcbiAgbWFyZ2luLWJvdHRvbTogNXB4O1xufVxuXG4ucmFkaW8tdG9vbGJhciBsYWJlbDpob3ZlciB7XG4gIGJhY2tncm91bmQtY29sb3I6ICNkZmQ7XG59XG5cbi5yYWRpby10b29sYmFyIGlucHV0W3R5cGU9cmFkaW9dOmNoZWNrZWQgKyBsYWJlbCB7XG4gIGJhY2tncm91bmQtY29sb3I6ICMwMDc3Qzg7XG4gIGNvbG9yOiAjZmZmZmZmO1xufVxuXG4ubGFiZWwtY2hlY2tlZCB7XG4gIGJhY2tncm91bmQtY29sb3I6ICMwMDc3Qzg7XG4gIGNvbG9yOiAjZmZmZmZmO1xufVxuXG5zcGFuIHtcbiAgZm9udC1mYW1pbHk6IFwiSGVsdmV0aWNhXCIsIFRpbWVzLCBzZXJpZjtcbiAgZm9udC1zaXplOiAxM3B4O1xufVxuXG4uZG90IHtcbiAgbWFyZ2luLXRvcDogNXB4O1xuICBoZWlnaHQ6IDE1cHg7XG4gIHdpZHRoOiAxNXB4O1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjYmJiO1xuICBib3JkZXItcmFkaXVzOiA1MCU7XG4gIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgbWFyZ2luLXJpZ2h0OiAxMHB4O1xufVxuXG4uZG90LWJhY2tjb2xvdXItZ3JlZW4ge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjNkJDQzZGO1xufVxuXG4uZG90LWJhY2tjb2xvdXItcmVkIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogI0ZGMDAwMDtcbn1cblxuLmRvdC1iYWNrY29sb3VyLW9yYW5nZSB7XG4gIGJhY2tncm91bmQtY29sb3I6ICNGRkE1MDA7XG59XG5cbi5idXR0b24tc3R5bGUge1xuICB3aWR0aDogMTAwcHg7XG4gIGhlaWdodDogMzZweDtcbiAgZm9udC1mYW1pbHk6IFJvYm90bywgXCJIZWx2ZXRpY2EgTmV1ZVwiLCBzYW5zLXNlcmlmO1xuICBmb250LXNpemU6IDEzcHg7XG4gIGZvbnQtd2VpZ2h0OiA1MDA7XG4gIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgYm9yZGVyOiAwcHggc29saWQ7XG4gIGJhY2tncm91bmQtY29sb3I6ICNGRkNDMzM7XG4gIHBhZGRpbmc6IDAgIWltcG9ydGFudDtcbiAgYm9yZGVyLXJhZGl1czogMHB4O1xufSJdfQ== */\"","import { Component, OnInit } from '@angular/core';\nimport { ActivatedRoute, Params, Router } from \"@angular/router\";\nimport { MatDialog, MatDialogRef, MAT_DIALOG_DATA } from '@angular/material/dialog';\nimport { ToastyService } from 'ng2-toasty';\nimport role from '../role.json';\n\nimport { BackendApiService } from '../../../services/backend-api/backend-api.service';\nimport { UtilService } from '../../../services/util/util.service';\nimport { RequestService } from '../../../services/request/request.service';\nimport { TranslateService } from '@ngx-translate/core';\n\nimport { AlertConfirmationComponent } from '../../alert-confirmation/alert-confirmation.component';\nimport { AlertMessageComponent } from '../../query/alert-message/alert-message.component';\n\nimport { tableValue } from '../../../services/tableClass'\nimport { MatomoTracker } from 'ngx-matomo';\nimport { timer } from 'rxjs';\n\n@Component({\n selector: 'app-choice-table',\n templateUrl: './choice-table.component.html',\n styleUrls: ['./choice-table.component.scss']\n})\n\nexport class ChoiceTableComponent implements OnInit {\n role = role;\n alertMsg = [{ 'EUROPE': [] },\n { 'MERCOSUR': [] }];\n tableValues = {\n \"ipn\": undefined, \"region\": undefined, \"responseData\": undefined,\n \"tableData\": undefined, \"selectedRegion\": undefined, \"selectedTable\": undefined, \"selectedTableDetails\": undefined,\n \"dateDiff\": undefined, \"requestDatas\": undefined, \"roleBasedTableList\": undefined\n };\n profile = this.utilService.getUserProfile();\n isAdmin = false;\n roleBasedGroupList;\n\n isLink: boolean;\n\n sorter = this.utilService.MySort(' ?*!@_.()#^&%-=+01234567989abcdefghijklmnopqrstuvwxyz');\n blnQuickLink: boolean;\n\n constructor(readonly router: Router, readonly activatedRoute: ActivatedRoute, public dialog: MatDialog,\n readonly apiService: BackendApiService, readonly utilService: UtilService,\n private translateService: TranslateService,\n readonly requestService: RequestService, readonly toastyService: ToastyService, private matomoTracker: MatomoTracker) {\n this.utilService.$showIcon$.next(false);\n }\n\n ngOnInit() {\n\n //IDP\n /*const role = this.utilService.getUserProfile()['role-acc-pil-irn6804'];\n const role = this.utilService.getUserProfile()['roles'].filter(item => item.indexOf('ACC_P') > -1);\n let regionRole = role.replace('[', '').replace(']', '');\n regionRole = regionRole.split(',');*/\n\n //OKTA\n let regionRole = this.utilService.getUserProfile()['roles'].filter(item => item.indexOf('ACC_P') > -1);\n if (regionRole.length > 1) {\n this.tableValues.region = ['Europe', 'Mercosur'];\n this.tableValues.selectedRegion = \"Europe\";\n } else {\n //IDP\n // if (regionRole[0] === 'acc_pil_europe') {\n\n //OKTA\n // if (regionRole[0] === 'ACC_PIL_EUROPE') {\n // this.tableValues.region = ['Europe'];\n // this.tableValues.selectedRegion = \"Europe\";\n // } else {\n // this.tableValues.region = ['Mercosur'];\n // this.tableValues.selectedRegion = \"Mercosur\";\n // }\n \n let region: string;\n regionRole[0] === 'ACC_PIL_EUROPE' ? region = 'Europe' : region = 'Mercosur';\n this.tableValues.region = [region];\n this.tableValues.selectedRegion = region;\n }\n\n //IDP\n //this.tableValues.ipn = this.profile['uid']; // sessionStorage.getItem(\"ipn\");\n\n //OKTA\n this.tableValues.ipn = this.profile['login']; // sessionStorage.getItem(\"ipn\");\n\n if (sessionStorage.getItem(\"request1\") === null) {\n [1,2,3].forEach(cnt => sessionStorage.setItem(\"request\"+cnt, undefined));\n }\n this.tableValues.requestDatas = this.requestService.getAllRequestData();\n this.getChoiceTableDetails(this.tableValues.selectedRegion);\n\n\n this.utilService.$showQuickLink$.subscribe(urlLink => {\n this.blnQuickLink = urlLink;\n });\n\n this.matomoTracker.trackPageView(`New request`);\n\n }\n\n getRegionVal() {\n let region = this.requestService.getRegionMsg()\n }\n\n allowAllHistoricalData() {\n //IDP\n /*if (this.tableValues.selectedRegion === \"Europe\") {\n if (this.profile['role-pil-irn6804'].indexOf('pil_admin') > -1) {\n this.isAdmin = true;\n }\n } else {\n if (this.profile['role-pim-irn9207'].indexOf('pim_admin') > -1) {\n this.isAdmin = true;\n }\n }*/\n\n //OKTA\n if (this.tableValues.selectedRegion === \"Europe\") {\n if (this.profile['roles'].indexOf('PIL_ADMIN') > -1) {\n this.isAdmin = true;\n }\n } else {\n if (this.profile['roles'].indexOf('PIM_ADMIN') > -1) {\n this.isAdmin = true;\n }\n }\n }\n\n getUserRole4TabeList() {\n let rtnValue;\n\n //IDP\n /*if (this.tableValues.selectedRegion === \"Europe\") {\n rtnValue = this.profile['role-gr-pil-irn6804'];\n } else {\n rtnValue = this.profile['role-gr-pim-irn9207'];\n }*/\n\n //OKTA\n if (this.tableValues.selectedRegion === \"Europe\") {\n // rtnValue = this.profile['roles'].filter(item => item.indexOf('GR_PIL_TOUT') > -1)[0];\n rtnValue = this.profile['roles'].find(item => item.startsWith('GR_PIL'));\n } else {\n rtnValue = this.profile['roles'].find(item => item.startsWith('GR_PIM'));\n }\n return rtnValue;\n }\n\n getFavoriteRegion() {\n if (this.tableValues.selectedRegion === \"Europe\") {\n return \"PIL\";\n } else {\n return \"PIM\";\n }\n }\n\n getChoiceTableDetails(item) {\n this.tableValues.tableData = undefined;\n this.tableValues.selectedRegion = item;\n this.allowAllHistoricalData();\n this.getRoleBasedTableNamesList();\n\n const queryParam = { \"input\": `MAJ@${this.tableValues.ipn}@@@0@11@`, \"region\": this.getFavoriteRegion() };\n this.apiService.getChoiceTableDetails(queryParam).subscribe(res => {\n this.tableValues.responseData = res;\n \n if (this.tableValues.responseData.lists && this.getUserRole4TabeList()) {\n this.tableValues.selectedTable = String(this.tableValues.responseData.lists[0].table.toLocaleUpperCase());\n let date = this.tableValues.responseData.lists[0].fileUpdtdDate.split(' ');\n this.tableValues.selectedTableDetails = this.utilService.getTranslateName(`NEW_QUERY.DATE_UPDATED`) + String(date[1]) + this.utilService.getTranslateName(`NEW_QUERY.AT`) + String(date[3]);\n const strUpdDate = String(this.tableValues.responseData.lists[0].fileUpdtdDate).substring(3, 13);\n const strRecDate = String(this.tableValues.responseData.lists[0].fileRecvdDate).substring(3, 13);\n const updDate = new Date(`${strUpdDate.substring(3, 5)}/${strUpdDate.substring(0, 2)}/${strUpdDate.substring(6, 10)}`);\n const recDate = new Date(`${strRecDate.substring(3, 5)}/${strRecDate.substring(0, 2)}/${strRecDate.substring(6, 10)}`);\n\n const strServerDate = String(this.tableValues.responseData.lists[0].serverDate);\n const serverDate = new Date(`${strServerDate.substring(3, 5)}/${strServerDate.substring(0, 2)}/${strServerDate.substring(6, 10)}`);\n\n const diff = Math.abs(updDate.getTime() - serverDate.getTime());\n const diffDays = Math.floor(diff / (1000 * 3600 * 24));\n // console.log(\"server Date\", diffDays, serverDate, updDate);\n this.tableValues.dateDiff = diffDays;\n if (this.tableValues.responseData.noOfLists > 0) {\n this.getTableNamesList();\n\n let region = this.requestService.getRegionMsg();\n let queryParam = { \"input\": \"MESS@system@Message@@0@1@\", \"region\": this.tableValues.selectedRegion.toLowerCase() === 'europe' ? 'PIL' : 'PIM' };\n this.apiService.getMessageObjectList(queryParam).subscribe(res => {\n if (res.lists !== undefined && res.lists.length > 0) {\n if (res.lists[0] === 'tmp') {\n if (region['europe'] === 'false' || region['mercosur'] === 'false') {\n this.displayMessage(region, res.lists[0]);\n }\n } else {\n if (this.tableValues.selectedRegion.toLowerCase() === 'europe') {\n this.requestService.addRegionMsg('false', region['mercosur']);\n this.getEuropeMsg(res.lists[0]);\n } else {\n this.requestService.addRegionMsg(region['europe'], 'false');\n this.getMercosurMsg(res.lists[0]);\n }\n }\n }\n });\n }\n }\n },\n error => {\n this.toastyService.error(this.utilService.getTranslateName(`ERROR.TABLE_ERROR`));\n console.log(\"error\", error.message);\n });\n }\n\n getRoleBasedTableNamesList() {\n let role;\n this.tableValues.roleBasedTableList = [];\n if (this.getUserRole4TabeList()) {\n if (this.getUserRole4TabeList().split(\"_\")[2].toLowerCase() !== 'tout') {\n role = this.getUserRole4TabeList().toLowerCase().replace(`gr_${this.getFavoriteRegion().toLowerCase()}_`, '');\n const queryParam1 = { \"input\": `PROFIL@system@profil@${role.toLocaleUpperCase()}@`, \"region\": this.getFavoriteRegion() };\n this.apiService.getObjectGet(queryParam1).subscribe(res => {\n if (res && res.data) {\n this.roleBasedGroupList = res.data;\n for (const item of res.data.split('§')) {\n if (item.split(\"@\")[1] === \"0\") {\n this.tableValues.roleBasedTableList.push(item.split(\"@\")[0]);\n }\n }\n }\n },\n error => {\n this.toastyService.error(this.utilService.getTranslateName(`ERROR.TABLE_ERROR`));\n console.log(\"error\", error.message);\n });\n } else {\n this.roleBasedGroupList = '';\n }\n }\n }\n\n getTableNamesList() {\n const queryParam1 = { \"input\": `TABGEN@${this.tableValues.ipn}@@@0@${this.tableValues.responseData.noOfLists}@`, \"region\": this.getFavoriteRegion() };\n this.apiService.getChoiceTableDetails(queryParam1).subscribe(res => {\n let tabData = [];\n tabData = res.lists;\n if (tabData) {\n this.tableValues.tableData = [];\n let i = 0;\n for (const item of tabData) {\n const td = this.tableValues.responseData.lists.filter(a => String(a.table).toLocaleUpperCase() === String(item).toLocaleUpperCase());\n const roleTable = this.tableValues.roleBasedTableList.filter(a => String(a).toLocaleUpperCase() === String(item).toLocaleUpperCase());\n if (td.length > 0 && roleTable.length === 0) {\n this.tableValues.tableData.push({ \"name\": String(item).toLocaleUpperCase(), \"fileRecvdDate\": td[0].fileRecvdDate, \"fileUpdtdDate\": td[0].fileUpdtdDate })\n }\n i = i + 1;\n }\n this.tableValues.tableData = this.tableValues.tableData.sort();\n if (this.tableValues.tableData.length > 0) {\n if (this.tableValues.tableData.indexOf('BCV') < 0) {\n this.tableSelection(this.tableValues.tableData[0]);\n }\n }\n }\n },\n error => {\n this.toastyService.error(this.utilService.getTranslateName(`ERROR.TABLE_ERROR`));\n console.log(\"error\", error.message);\n });\n }\n\n tableSelection(item) {\n this.tableValues.dateDiff = undefined;\n setTimeout(() => { this.tableValues.selectedTable = item.name; }, 1);\n\n let region = this.requestService.getRegionMsg();\n this.utilService.$favoriteConnecton$.next(this.tableValues.selectedRegion);\n\n\n // this.tableValues.selectedTableDetails = this.utilService.getTranslateName(`NEW_QUERY.DATE_UPDATED`) + ' ' + String(item.fileUpdtdDate)\n // this.tableValues.selectedTableDetails = this.utilService.getTranslateName(`NEW_QUERY.DATE_UPDATED`) + ' ' + String(item.fileUpdtdDate);\n let date = item.fileUpdtdDate.split(' ');\n this.tableValues.selectedTableDetails = this.utilService.getTranslateName(`NEW_QUERY.DATE_UPDATED`) + String(date[1]) + this.utilService.getTranslateName(`NEW_QUERY.AT`) + String(date[3]);\n const strUpdDate = String(item.fileUpdtdDate).substring(3, 13);\n const strRecDate = String(item.fileRecvdDate).substring(3, 13);\n const updDate = new Date(`${strUpdDate.substring(3, 5)}/${strUpdDate.substring(0, 2)}/${strUpdDate.substring(6, 10)}`);\n const recDate = new Date(`${strRecDate.substring(3, 5)}/${strRecDate.substring(0, 2)}/${strRecDate.substring(6, 10)}`);\n\n const strServerDate = String(this.tableValues.responseData.lists[0].serverDate);\n const serverDate = new Date(`${strServerDate.substring(3, 5)}/${strServerDate.substring(0, 2)}/${strServerDate.substring(6, 10)}`);\n\n const diff = Math.abs(updDate.getTime() - serverDate.getTime());\n // const diff = Math.abs(updDate.getTime() - new Date().getTime());\n const diffDays = Math.floor(diff / (1000 * 3600 * 24));\n // console.log(\"server Date\", diffDays, serverDate, updDate);\n this.tableValues.dateDiff = diffDays;\n }\n\n submit() {\n if (this.tableValues.selectedTable !== 'CARNETS' && this.tableValues.selectedTable !== 'LEX' && this.tableValues.dateDiff > 0) {\n this.openDialog();\n } else {\n if (this.tableValues.requestDatas) {\n this.matomoTracker.trackEvent(\"New request\", `Create ${this.tableValues.selectedRegion} - ${this.tableValues.selectedTable} new query`, this.profile['login']);\n if (this.tableValues.requestDatas.length < 3) {\n this.requestService.addRequestData(this.tableValues.selectedRegion, this.tableValues.selectedTable, this.tableValues.requestDatas);\n // this.removeQueryWindowNameInList();\n this.setOpenedWindow('/home/query');\n this.router.navigateByUrl('/home/query');\n this.utilService.$showQuickLink$.next(true);\n } else {\n // this.removeQueryWindowNameInList();\n this.setOpenedWindow('/home/query');\n this.router.navigateByUrl('/home/query');\n this.toastyService.info(this.utilService.getTranslateName(`ERROR.MAX_REQ`));\n this.utilService.$showQuickLink$.next(true);\n // alert(\"User can create request maximum 3.\")\n }\n } else {\n this.matomoTracker.trackEvent(\"New request\", `Create ${this.tableValues.selectedRegion} - ${this.tableValues.selectedTable} new query`, this.profile['login']);\n this.requestService.addRequestData(this.tableValues.selectedRegion, this.tableValues.selectedTable, this.tableValues.requestDatas);\n // this.removeQueryWindowNameInList();\n this.setOpenedWindow('/home/query');\n this.router.navigateByUrl('/home/query');\n this.utilService.$showQuickLink$.next(true);\n }\n let reqActive;\n if ((this.tableValues.requestDatas.length < 4)) {\n if (this.tableValues.requestDatas[this.tableValues.requestDatas.length - 1] != null) {\n reqActive = this.tableValues.requestDatas.length;\n } else {\n reqActive = 0;\n }\n }\n if (this.roleBasedGroupList !== '') {\n let tablesList = this.roleBasedGroupList.split('§');\n tablesList.forEach(item => {\n if (item.split('@')[0] === this.tableValues.selectedTable) {\n if (item.split('@')[1] !== '0') {\n this.requestService.roleBasedQuery(item, reqActive);\n } else {\n this.requestService.roleBasedQuery('', reqActive);\n }\n }\n })\n }\n }\n }\n\n setOpenedWindow(windowPathName) {\n this.utilService.addOpenedWindowName(windowPathName);\n }\n\n reset() {\n const queryParam = { \"input\": `${this.tableValues.selectedTable}@`, \"region\": this.getFavoriteRegion() };\n this.apiService.memoryReleaseObject(queryParam).subscribe(resp => {\n this.toastyService.success(\"Memory released successfully\");\n },\n error => {\n this.toastyService.error(this.utilService.getTranslateName(`ERROR.DELETE`));\n console.log(\"error\", error.message);\n });\n }\n\n openDialog(): void {\n const dialogRef = this.dialog.open(AlertConfirmationComponent, {\n disableClose: true,\n width: '550px',\n data: { 'display': this.utilService.getTranslateName(`ERROR.OLD_DATA`), 'isText': false }\n });\n\n dialogRef.afterClosed().subscribe(result => {\n if (result === true) {\n if (this.tableValues.requestDatas) {\n if (this.tableValues.requestDatas.length < 3) {\n this.requestService.addRequestData(this.tableValues.selectedRegion, this.tableValues.selectedTable, this.tableValues.requestDatas);\n // this.removeQueryWindowNameInList();\n this.setOpenedWindow('/home/query');\n this.router.navigateByUrl('/home/query');\n } else {\n // this.removeQueryWindowNameInList();\n this.setOpenedWindow('/home/query');\n this.router.navigateByUrl('/home/query');\n this.toastyService.info(this.utilService.getTranslateName(`ERROR.MAX_REQ`));\n // alert(\"User can create request maximum 3.\")\n }\n } else {\n this.requestService.addRequestData(this.tableValues.selectedRegion, this.tableValues.selectedTable, this.tableValues.requestDatas);\n // this.removeQueryWindowNameInList();\n this.setOpenedWindow('/home/query');\n this.router.navigateByUrl('/home/query');\n }\n let reqActive;\n if ((this.tableValues.requestDatas.length < 4)) {\n if (this.tableValues.requestDatas[this.tableValues.requestDatas.length - 1] != null) {\n reqActive = this.tableValues.requestDatas.length;\n } else {\n reqActive = 0;\n }\n }\n let tablesList = this.roleBasedGroupList.split('§');\n tablesList.forEach(item => {\n if (item.split('@')[0] === this.tableValues.selectedTable) {\n if (item.split('@')[1] !== '0') {\n this.requestService.roleBasedQuery(item, reqActive);\n } else {\n this.requestService.roleBasedQuery('', reqActive);\n }\n }\n })\n }\n });\n }\n\n displayMessage(region, msgType) {\n if (this.tableValues.selectedRegion.toLowerCase() === 'europe') {\n if (region['mercosur'] === 'false') {\n this.requestService.addRegionMsg('true', 'false');\n } else {\n this.requestService.addRegionMsg('true', 'true');\n }\n if (region['europe'] === 'false') {\n this.getEuropeMsg(msgType)\n }\n }\n if (this.tableValues.selectedRegion.toLowerCase() === 'mercosur') {\n if (region['europe'] === 'false') {\n this.requestService.addRegionMsg('false', 'true');\n } else {\n this.requestService.addRegionMsg('true', 'true');\n }\n if (region['mercosur'] === 'false') {\n this.getMercosurMsg(msgType)\n }\n }\n }\n\n linkIndex = [];\n getEuropeMsg(msgType) {\n this.linkIndex = [];\n let queryParam1 = { \"input\": `MESS@system@Message@${msgType}@`, \"region\": 'PIL' };\n this.apiService.getMessageObject(queryParam1).subscribe(res => {\n\n if (res.data !== '') {\n this.alertMsg[0].EUROPE[0] = res.data;\n if (this.alertMsg[0].EUROPE[0].includes('
')) {\n const splitVal = this.alertMsg[0].EUROPE[0].split('
');\n for (let index = 0; index < splitVal.length; index++) {\n const element = splitVal[index];\n if (element !== \"\") {\n this.isLink = element.indexOf(\"http\") === -1 ? false : true;\n if (element.indexOf(\"http\") !== -1) {\n this.linkIndex.push(index);\n }\n }\n // console.log(\"element\", element, element.indexOf(\"http\"));\n if (index === splitVal.length - 1) {\n if (element !== \"\") {\n this.alertMsg[0].EUROPE[index] = element;\n }\n } else {\n this.alertMsg[0].EUROPE[index] = element;\n }\n }\n // this.alertMsg[0].EUROPE = this.alertMsg[0].EUROPE[0].split('
');\n // this.alertMsg[0].EUROPE[1] = this.alertMsg[0].EUROPE[1];\n }\n this.displayPopup();\n }\n });\n }\n\n getMercosurMsg(msgType) {\n this.linkIndex = [];\n let queryParam1 = { \"input\": `MESS@system@Message@${msgType}@`, \"region\": 'PIM' };\n this.apiService.getMessageObject(queryParam1).subscribe(res => {\n if (res.data !== '') {\n this.alertMsg[1].MERCOSUR[0] = res.data;\n // if (this.alertMsg[1].MERCOSUR[0].includes('
')) {\n // this.alertMsg[1].MERCOSUR = this.alertMsg[1].MERCOSUR[0].split('
');\n // this.alertMsg[1].MERCOSUR[1] = this.alertMsg[1].MERCOSUR[1];\n // }\n if (this.alertMsg[1].MERCOSUR[0].includes('
')) {\n const splitVal = this.alertMsg[1].MERCOSUR[0].split('
');\n for (let index = 0; index < splitVal.length; index++) {\n const element = splitVal[index];\n if (element !== \"\") {\n this.isLink = element.indexOf(\"http\") === -1 ? false : true;\n if (element.indexOf(\"http\") !== -1) {\n this.linkIndex.push(index);\n }\n }\n if (index === splitVal.length - 1) {\n if (element !== \"\") {\n this.alertMsg[1].MERCOSUR[index] = element;\n }\n } else {\n this.alertMsg[1].MERCOSUR[index] = element;\n }\n // this.alertMsg[1].MERCOSUR[index] = element;\n }\n }\n\n this.displayPopup();\n }\n });\n }\n\n displayPopup() {\n if (this.alertMsg.length > 0) {\n // console.log(\"this.alertMsg\", this.linkIndex, this.alertMsg)\n const dialogRef = this.dialog.open(AlertMessageComponent, {\n disableClose: true,\n width: '800px',\n data: { 'display': this.alertMsg, \"linkIndex\": this.linkIndex, region: this.tableValues.selectedRegion.toLowerCase(), type: 'region', isLink: this.isLink }\n });\n\n dialogRef.afterClosed().subscribe(result => {\n if (result === true) {\n }\n })\n }\n }\n\n clickClose() {\n const pathName = window.location.pathname;\n this.utilService.removeOpenedWindowName(pathName);\n this.utilService.$showIcon$.next(true);\n const openedWindowNameList = this.utilService.getOpenedWindowNameList()\n if (openedWindowNameList.length > 0) {\n this.router.navigate([openedWindowNameList[openedWindowNameList.length - 1]]);\n } else {\n this.router.navigate(['home']);\n }\n }\n\n reDirectURL(url) {\n this.router.navigateByUrl(url);\n }\n}\n","import { NgModule } from '@angular/core';\nimport { CommonModule } from '@angular/common';\nimport { HttpClientModule, HttpClient } from '@angular/common/http';\nimport { FormsModule, ReactiveFormsModule } from '@angular/forms';\nimport { TranslateLoader, TranslateModule } from '@ngx-translate/core';\nimport { TranslateHttpLoader } from '@ngx-translate/http-loader';\nimport { AppRoutingModule } from '../../app-routing.module';\nimport { AppMaterialModule } from '../../material-module';\nimport { ChoiceTableComponent } from './choice-table/choice-table.component';\n// export function HttpLoaderFactory(http: HttpClient) {\n// return new TranslateHttpLoader(http);\n// }\n\nexport function createTranslateLoader(http: HttpClient) {\n return new TranslateHttpLoader(http, './assets/i18n/', '.json');\n}\n\n@NgModule({\n imports: [\n CommonModule,\n HttpClientModule,\n FormsModule,\n ReactiveFormsModule,\n AppRoutingModule,\n AppMaterialModule,\n TranslateModule.forRoot({\n loader: {\n provide: TranslateLoader,\n // useFactory: HttpLoaderFactory,\n useFactory: (createTranslateLoader),\n deps: [HttpClient]\n }\n })\n ],\n declarations: [\n ChoiceTableComponent\n ]\n})\nexport class TableModule { }","export default \".user-msg-dialog-title {\\n padding: 0px 15px 0px 0px;\\n color: #000000;\\n font-family: Roboto, \\\"Helvetica Neue\\\", sans-serif;\\n font-size: 15px;\\n font-weight: 600;\\n line-height: 17px;\\n width: 146px;\\n text-align: left;\\n}\\n\\n.textbox {\\n position: relative;\\n height: 130px;\\n margin-top: 10px;\\n margin-right: 10px;\\n width: 99%;\\n border: 1px solid #cccccc;\\n font-family: Roboto, \\\"Helvetica Neue\\\", sans-serif;\\n font-size: 13px;\\n font-weight: 500;\\n overflow: auto;\\n white-space: nowrap;\\n}\\n\\n.mat-button {\\n width: 100px;\\n height: 30px !important;\\n font-family: Roboto, \\\"Helvetica Neue\\\", sans-serif;\\n font-size: 13px;\\n font-weight: 500;\\n text-align: center;\\n border: 0px solid;\\n background-color: #FFCC33;\\n padding: 0 !important;\\n border-radius: 0px;\\n margin-top: 5px;\\n}\\n\\n.item-right {\\n float: right;\\n}\\n\\n.cls-displaynone {\\n display: none !important;\\n}\\n/*# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi91c3Ivc3JjL3NyYy9hcHAvY29tcG9uZW50L3VzZXItbWVzc2FnZS91c2VyLW1lc3NhZ2Utc2VuZGluc3RhbnRseS91c2VyLW1lc3NhZ2Utc2VuZGluc3RhbnRseS5jb21wb25lbnQuc2NzcyIsInNyYy9hcHAvY29tcG9uZW50L3VzZXItbWVzc2FnZS91c2VyLW1lc3NhZ2Utc2VuZGluc3RhbnRseS91c2VyLW1lc3NhZ2Utc2VuZGluc3RhbnRseS5jb21wb25lbnQuc2NzcyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQTtFQUNJLHlCQUFBO0VBQ0EsY0FBQTtFQUNBLGlEQUFBO0VBQ0EsZUFBQTtFQUNBLGdCQUFBO0VBQ0EsaUJBQUE7RUFDQSxZQUFBO0VBQ0EsZ0JBQUE7QUNDSjs7QURDQTtFQUNJLGtCQUFBO0VBQ0UsYUFBQTtFQUNBLGdCQUFBO0VBQ0Esa0JBQUE7RUFDQSxVQUFBO0VBQ0EseUJBQUE7RUFDQSxpREFBQTtFQUNBLGVBQUE7RUFDQSxnQkFBQTtFQUNBLGNBQUE7RUFDQSxtQkFBQTtBQ0VOOztBRENFO0VBQ0UsWUFBQTtFQUNBLHVCQUFBO0VBQ0EsaURBQUE7RUFDQSxlQUFBO0VBQ0EsZ0JBQUE7RUFDQSxrQkFBQTtFQUNBLGlCQUFBO0VBQ0EseUJBQUE7RUFDQSxxQkFBQTtFQUNBLGtCQUFBO0VBQ0EsZUFBQTtBQ0VKOztBRENFO0VBQ0UsWUFBQTtBQ0VKOztBREdFO0VBQ0Usd0JBQUE7QUNBSiIsImZpbGUiOiJzcmMvYXBwL2NvbXBvbmVudC91c2VyLW1lc3NhZ2UvdXNlci1tZXNzYWdlLXNlbmRpbnN0YW50bHkvdXNlci1tZXNzYWdlLXNlbmRpbnN0YW50bHkuY29tcG9uZW50LnNjc3MiLCJzb3VyY2VzQ29udGVudCI6WyIudXNlci1tc2ctZGlhbG9nLXRpdGxle1xuICAgIHBhZGRpbmc6IDBweCAxNXB4IDBweCAwcHg7XG4gICAgY29sb3I6ICMwMDAwMDA7XG4gICAgZm9udC1mYW1pbHk6IFJvYm90byxcIkhlbHZldGljYSBOZXVlXCIsc2Fucy1zZXJpZjtcbiAgICBmb250LXNpemU6IDE1cHg7XG4gICAgZm9udC13ZWlnaHQ6IDYwMDtcbiAgICBsaW5lLWhlaWdodDogMTdweDtcbiAgICB3aWR0aDogMTQ2cHg7XG4gICAgdGV4dC1hbGlnbjogbGVmdDtcbn1cbi50ZXh0Ym94e1xuICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgIGhlaWdodDogMTMwcHg7XG4gICAgICBtYXJnaW4tdG9wOiAxMHB4O1xuICAgICAgbWFyZ2luLXJpZ2h0OiAxMHB4O1xuICAgICAgd2lkdGg6IDk5JTtcbiAgICAgIGJvcmRlcjogMXB4IHNvbGlkICNjY2NjY2M7XG4gICAgICBmb250LWZhbWlseTogUm9ib3RvLCBcIkhlbHZldGljYSBOZXVlXCIsIHNhbnMtc2VyaWY7XG4gICAgICBmb250LXNpemU6IDEzcHg7XG4gICAgICBmb250LXdlaWdodDogNTAwO1xuICAgICAgb3ZlcmZsb3c6IGF1dG87XG4gICAgICB3aGl0ZS1zcGFjZTogbm93cmFwO1xuICBcbiAgfVxuICAubWF0LWJ1dHRvbntcbiAgICB3aWR0aDogMTAwcHg7XG4gICAgaGVpZ2h0OiAzMHB4ICFpbXBvcnRhbnQ7XG4gICAgZm9udC1mYW1pbHk6IFJvYm90bywgXCJIZWx2ZXRpY2EgTmV1ZVwiLCBzYW5zLXNlcmlmO1xuICAgIGZvbnQtc2l6ZTogMTNweDtcbiAgICBmb250LXdlaWdodDogNTAwO1xuICAgIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgICBib3JkZXI6IDBweCBzb2xpZDtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjRkZDQzMzO1xuICAgIHBhZGRpbmc6IDAgIWltcG9ydGFudDtcbiAgICBib3JkZXItcmFkaXVzOiAwcHg7XG4gICAgbWFyZ2luLXRvcDogNXB4O1xuXG4gIH1cbiAgLml0ZW0tcmlnaHR7XG4gICAgZmxvYXQ6IHJpZ2h0O1xuICAgIC8vIG1hcmdpbi1yaWdodDogMTBweDtcbiAgICAvLyBtYXJnaW4tdG9wOiA1cHg7XG4gIH1cblxuICAuY2xzLWRpc3BsYXlub25le1xuICAgIGRpc3BsYXk6bm9uZSAhaW1wb3J0YW50O1xuICB9IiwiLnVzZXItbXNnLWRpYWxvZy10aXRsZSB7XG4gIHBhZGRpbmc6IDBweCAxNXB4IDBweCAwcHg7XG4gIGNvbG9yOiAjMDAwMDAwO1xuICBmb250LWZhbWlseTogUm9ib3RvLCBcIkhlbHZldGljYSBOZXVlXCIsIHNhbnMtc2VyaWY7XG4gIGZvbnQtc2l6ZTogMTVweDtcbiAgZm9udC13ZWlnaHQ6IDYwMDtcbiAgbGluZS1oZWlnaHQ6IDE3cHg7XG4gIHdpZHRoOiAxNDZweDtcbiAgdGV4dC1hbGlnbjogbGVmdDtcbn1cblxuLnRleHRib3gge1xuICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gIGhlaWdodDogMTMwcHg7XG4gIG1hcmdpbi10b3A6IDEwcHg7XG4gIG1hcmdpbi1yaWdodDogMTBweDtcbiAgd2lkdGg6IDk5JTtcbiAgYm9yZGVyOiAxcHggc29saWQgI2NjY2NjYztcbiAgZm9udC1mYW1pbHk6IFJvYm90bywgXCJIZWx2ZXRpY2EgTmV1ZVwiLCBzYW5zLXNlcmlmO1xuICBmb250LXNpemU6IDEzcHg7XG4gIGZvbnQtd2VpZ2h0OiA1MDA7XG4gIG92ZXJmbG93OiBhdXRvO1xuICB3aGl0ZS1zcGFjZTogbm93cmFwO1xufVxuXG4ubWF0LWJ1dHRvbiB7XG4gIHdpZHRoOiAxMDBweDtcbiAgaGVpZ2h0OiAzMHB4ICFpbXBvcnRhbnQ7XG4gIGZvbnQtZmFtaWx5OiBSb2JvdG8sIFwiSGVsdmV0aWNhIE5ldWVcIiwgc2Fucy1zZXJpZjtcbiAgZm9udC1zaXplOiAxM3B4O1xuICBmb250LXdlaWdodDogNTAwO1xuICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gIGJvcmRlcjogMHB4IHNvbGlkO1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjRkZDQzMzO1xuICBwYWRkaW5nOiAwICFpbXBvcnRhbnQ7XG4gIGJvcmRlci1yYWRpdXM6IDBweDtcbiAgbWFyZ2luLXRvcDogNXB4O1xufVxuXG4uaXRlbS1yaWdodCB7XG4gIGZsb2F0OiByaWdodDtcbn1cblxuLmNscy1kaXNwbGF5bm9uZSB7XG4gIGRpc3BsYXk6IG5vbmUgIWltcG9ydGFudDtcbn0iXX0= */\"","import { Component, OnInit, Inject } from '@angular/core';\nimport { MatDialog, MatDialogRef, MAT_DIALOG_DATA } from '@angular/material/dialog';\nimport { Router } from '@angular/router';\nimport { UtilService } from 'src/app/services/util/util.service';\nimport { AlertConfirmationComponent } from '../../alert-confirmation/alert-confirmation.component';\n\n@Component({\n selector: 'app-user-message-sendinstantly',\n templateUrl: './user-message-sendinstantly.component.html',\n styleUrls: ['./user-message-sendinstantly.component.scss']\n})\nexport class UserMessageSendinstantlyComponent implements OnInit {\n blnQuickLink: boolean;\n txtMsg: string;\n\n\n constructor(public dialogRef: MatDialogRef,\n @Inject(MAT_DIALOG_DATA) public data: any, readonly router: Router, readonly utilService: UtilService,\n public dialog: MatDialog) { }\n\n ngOnInit() {\n } \n \nalertPopup(msg, isAlert) {\n const dialogRef = this.dialog.open(AlertConfirmationComponent, {\n disableClose: true,\n width: '550px',\n data: { 'display': msg, isAlert: isAlert }\n });\n}\n\n onNoClick(): void {\n this.dialogRef.close();\n }\n onClickValid(){\n if(this.txtMsg.length > 248){\n this.alertPopup(this.utilService.getTranslateName(\"USER_MESSAGE_SEND_INSTANTLY.MESSAGE_POPUP\"), true);\n return;\n }\n if(this.txtMsg.toString().trim()===\"\"){\n this.alertPopup(this.utilService.getTranslateName(\"USER_MESSAGE_SEND_INSTANTLY.EMPTY_MESSAGE\"), true);\n this.txtMsg=\"\";\n return; \n }\n if(this.txtMsg.length < 248){\n this.alertPopup(this.utilService.getTranslateName(\"USER_MESSAGE_SEND_INSTANTLY.IMPORTANT_MESSAGE\"), false);\n return;\n }\n }\n\n}\n","export default \".msg-container {\\n background-color: white;\\n height: 320px;\\n width: 825px;\\n font-family: Roboto, \\\"Helvetica Neue\\\", sans-serif;\\n font-size: 13px;\\n font-weight: 500;\\n border: 1px solid;\\n padding: 15px;\\n}\\n.msg-container .wrapper {\\n display: inline-flex;\\n justify-content: space-around;\\n width: 100%;\\n}\\n.msg-container .mat-button {\\n width: 100px;\\n height: 30px !important;\\n font-family: Roboto, \\\"Helvetica Neue\\\", sans-serif;\\n font-size: 13px;\\n font-weight: 500;\\n text-align: center;\\n border: 0px solid;\\n background-color: #FFCC33;\\n padding: 0 !important;\\n border-radius: 0px;\\n}\\n.msg-container legend {\\n display: block;\\n -webkit-padding-start: 2px;\\n padding-inline-start: 2px;\\n -webkit-padding-end: 2px;\\n padding-inline-end: 2px;\\n border-width: initial;\\n border-style: none;\\n border-color: initial;\\n -o-border-image: initial;\\n border-image: initial;\\n}\\n.msg-container .scrollabletextbox {\\n position: relative;\\n overflow: auto;\\n height: 130px;\\n margin-top: 10px;\\n margin-right: 10px;\\n width: 99%;\\n border: 1px solid #cccccc;\\n font-family: Roboto, \\\"Helvetica Neue\\\", sans-serif;\\n font-size: 13px;\\n font-weight: 500;\\n white-space: nowrap;\\n}\\n.msg-container .item-right {\\n float: right;\\n cursor: pointer;\\n}\\n.cls-displaynone {\\n display: none !important;\\n}\\n/*# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi91c3Ivc3JjL3NyYy9hcHAvY29tcG9uZW50L3VzZXItbWVzc2FnZS91c2VyLW1lc3NhZ2UuY29tcG9uZW50LnNjc3MiLCJzcmMvYXBwL2NvbXBvbmVudC91c2VyLW1lc3NhZ2UvdXNlci1tZXNzYWdlLmNvbXBvbmVudC5zY3NzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBO0VBQ0UsdUJBQUE7RUFDQSxhQUFBO0VBQ0EsWUFBQTtFQUNBLGlEQUFBO0VBQ0EsZUFBQTtFQUNBLGdCQUFBO0VBQ0EsaUJBQUE7RUFDQSxhQUFBO0FDQ0Y7QURFRTtFQUNFLG9CQUFBO0VBQ0EsNkJBQUE7RUFDQSxXQUFBO0FDQUo7QURHRTtFQUNFLFlBQUE7RUFDQSx1QkFBQTtFQUNBLGlEQUFBO0VBQ0EsZUFBQTtFQUNBLGdCQUFBO0VBQ0Esa0JBQUE7RUFDQSxpQkFBQTtFQUNBLHlCQUFBO0VBQ0EscUJBQUE7RUFDQSxrQkFBQTtBQ0RKO0FEZUU7RUFDRSxjQUFBO0VBQ0EsMEJBQUE7VUFBQSx5QkFBQTtFQUNBLHdCQUFBO1VBQUEsdUJBQUE7RUFDQSxxQkFBQTtFQUNBLGtCQUFBO0VBQ0EscUJBQUE7RUFDQSx3QkFBQTtLQUFBLHFCQUFBO0FDYko7QURnQkU7RUFDRSxrQkFBQTtFQUNBLGNBQUE7RUFDQSxhQUFBO0VBQ0EsZ0JBQUE7RUFDQSxrQkFBQTtFQUNBLFVBQUE7RUFDQSx5QkFBQTtFQUNBLGlEQUFBO0VBQ0EsZUFBQTtFQUNBLGdCQUFBO0VBQ0EsbUJBQUE7QUNkSjtBRG9CRTtFQUNFLFlBQUE7RUFDQSxlQUFBO0FDbEJKO0FEdUJBO0VBQ0Usd0JBQUE7QUNwQkYiLCJmaWxlIjoic3JjL2FwcC9jb21wb25lbnQvdXNlci1tZXNzYWdlL3VzZXItbWVzc2FnZS5jb21wb25lbnQuc2NzcyIsInNvdXJjZXNDb250ZW50IjpbIi5tc2ctY29udGFpbmVyIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogd2hpdGU7XG4gIGhlaWdodDogMzIwcHg7XG4gIHdpZHRoOiA4MjVweDtcbiAgZm9udC1mYW1pbHk6IFJvYm90bywgXCJIZWx2ZXRpY2EgTmV1ZVwiLCBzYW5zLXNlcmlmO1xuICBmb250LXNpemU6IDEzcHg7XG4gIGZvbnQtd2VpZ2h0OiA1MDA7XG4gIGJvcmRlcjogMXB4IHNvbGlkO1xuICBwYWRkaW5nOiAxNXB4O1xuXG5cbiAgLndyYXBwZXIge1xuICAgIGRpc3BsYXk6IGlubGluZS1mbGV4O1xuICAgIGp1c3RpZnktY29udGVudDogc3BhY2UtYXJvdW5kO1xuICAgIHdpZHRoOiAxMDAlO1xuICB9XG5cbiAgLm1hdC1idXR0b24ge1xuICAgIHdpZHRoOiAxMDBweDtcbiAgICBoZWlnaHQ6IDMwcHggIWltcG9ydGFudDtcbiAgICBmb250LWZhbWlseTogUm9ib3RvLCBcIkhlbHZldGljYSBOZXVlXCIsIHNhbnMtc2VyaWY7XG4gICAgZm9udC1zaXplOiAxM3B4O1xuICAgIGZvbnQtd2VpZ2h0OiA1MDA7XG4gICAgdGV4dC1hbGlnbjogY2VudGVyO1xuICAgIGJvcmRlcjogMHB4IHNvbGlkO1xuICAgIGJhY2tncm91bmQtY29sb3I6ICNGRkNDMzM7XG4gICAgcGFkZGluZzogMCAhaW1wb3J0YW50O1xuICAgIGJvcmRlci1yYWRpdXM6IDBweDtcbiAgICAvLyBtYXJnaW4tdG9wOiA4MHB4O1xuICAgIC8vIG1hcmdpbi1yaWdodDogMTBweDtcblxuICB9XG5cbiAgLy8gLmRldGFpbHN7XG4gIC8vICAgbWFyZ2luLWxlZnQ6IDkwcHg7XG4gIC8vICAgbWFyZ2luLXJpZ2h0OiA3MHB4O1xuICAvLyAgIHdpZHRoOiAyNXB4O1xuICAvLyB9XG4gIC8vIC5kZXRhaWxzMXtcbiAgLy8gICBtYXJnaW4tcmlnaHQ6NzBweDtcbiAgLy8gfVxuICBsZWdlbmQge1xuICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgIHBhZGRpbmctaW5saW5lLXN0YXJ0OiAycHg7XG4gICAgcGFkZGluZy1pbmxpbmUtZW5kOiAycHg7XG4gICAgYm9yZGVyLXdpZHRoOiBpbml0aWFsO1xuICAgIGJvcmRlci1zdHlsZTogbm9uZTtcbiAgICBib3JkZXItY29sb3I6IGluaXRpYWw7XG4gICAgYm9yZGVyLWltYWdlOiBpbml0aWFsO1xuICB9XG5cbiAgLnNjcm9sbGFibGV0ZXh0Ym94IHtcbiAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgb3ZlcmZsb3c6IGF1dG87XG4gICAgaGVpZ2h0OiAxMzBweDtcbiAgICBtYXJnaW4tdG9wOiAxMHB4O1xuICAgIG1hcmdpbi1yaWdodDogMTBweDtcbiAgICB3aWR0aDogOTklO1xuICAgIGJvcmRlcjogMXB4IHNvbGlkICNjY2NjY2M7XG4gICAgZm9udC1mYW1pbHk6IFJvYm90bywgXCJIZWx2ZXRpY2EgTmV1ZVwiLCBzYW5zLXNlcmlmO1xuICAgIGZvbnQtc2l6ZTogMTNweDtcbiAgICBmb250LXdlaWdodDogNTAwO1xuICAgIHdoaXRlLXNwYWNlOiBub3dyYXA7XG5cbiAgfVxuXG5cblxuICAuaXRlbS1yaWdodCB7XG4gICAgZmxvYXQ6IHJpZ2h0O1xuICAgIGN1cnNvcjogcG9pbnRlcjtcbiAgICAvLyBtYXJnaW4tcmlnaHQ6IDEwcHg7XG4gICAgLy8gbWFyZ2luLXRvcDogNXB4O1xuICB9XG59XG4uY2xzLWRpc3BsYXlub25le1xuICBkaXNwbGF5Om5vbmUgIWltcG9ydGFudDtcbn0iLCIubXNnLWNvbnRhaW5lciB7XG4gIGJhY2tncm91bmQtY29sb3I6IHdoaXRlO1xuICBoZWlnaHQ6IDMyMHB4O1xuICB3aWR0aDogODI1cHg7XG4gIGZvbnQtZmFtaWx5OiBSb2JvdG8sIFwiSGVsdmV0aWNhIE5ldWVcIiwgc2Fucy1zZXJpZjtcbiAgZm9udC1zaXplOiAxM3B4O1xuICBmb250LXdlaWdodDogNTAwO1xuICBib3JkZXI6IDFweCBzb2xpZDtcbiAgcGFkZGluZzogMTVweDtcbn1cbi5tc2ctY29udGFpbmVyIC53cmFwcGVyIHtcbiAgZGlzcGxheTogaW5saW5lLWZsZXg7XG4gIGp1c3RpZnktY29udGVudDogc3BhY2UtYXJvdW5kO1xuICB3aWR0aDogMTAwJTtcbn1cbi5tc2ctY29udGFpbmVyIC5tYXQtYnV0dG9uIHtcbiAgd2lkdGg6IDEwMHB4O1xuICBoZWlnaHQ6IDMwcHggIWltcG9ydGFudDtcbiAgZm9udC1mYW1pbHk6IFJvYm90bywgXCJIZWx2ZXRpY2EgTmV1ZVwiLCBzYW5zLXNlcmlmO1xuICBmb250LXNpemU6IDEzcHg7XG4gIGZvbnQtd2VpZ2h0OiA1MDA7XG4gIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgYm9yZGVyOiAwcHggc29saWQ7XG4gIGJhY2tncm91bmQtY29sb3I6ICNGRkNDMzM7XG4gIHBhZGRpbmc6IDAgIWltcG9ydGFudDtcbiAgYm9yZGVyLXJhZGl1czogMHB4O1xufVxuLm1zZy1jb250YWluZXIgbGVnZW5kIHtcbiAgZGlzcGxheTogYmxvY2s7XG4gIHBhZGRpbmctaW5saW5lLXN0YXJ0OiAycHg7XG4gIHBhZGRpbmctaW5saW5lLWVuZDogMnB4O1xuICBib3JkZXItd2lkdGg6IGluaXRpYWw7XG4gIGJvcmRlci1zdHlsZTogbm9uZTtcbiAgYm9yZGVyLWNvbG9yOiBpbml0aWFsO1xuICBib3JkZXItaW1hZ2U6IGluaXRpYWw7XG59XG4ubXNnLWNvbnRhaW5lciAuc2Nyb2xsYWJsZXRleHRib3gge1xuICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gIG92ZXJmbG93OiBhdXRvO1xuICBoZWlnaHQ6IDEzMHB4O1xuICBtYXJnaW4tdG9wOiAxMHB4O1xuICBtYXJnaW4tcmlnaHQ6IDEwcHg7XG4gIHdpZHRoOiA5OSU7XG4gIGJvcmRlcjogMXB4IHNvbGlkICNjY2NjY2M7XG4gIGZvbnQtZmFtaWx5OiBSb2JvdG8sIFwiSGVsdmV0aWNhIE5ldWVcIiwgc2Fucy1zZXJpZjtcbiAgZm9udC1zaXplOiAxM3B4O1xuICBmb250LXdlaWdodDogNTAwO1xuICB3aGl0ZS1zcGFjZTogbm93cmFwO1xufVxuLm1zZy1jb250YWluZXIgLml0ZW0tcmlnaHQge1xuICBmbG9hdDogcmlnaHQ7XG4gIGN1cnNvcjogcG9pbnRlcjtcbn1cblxuLmNscy1kaXNwbGF5bm9uZSB7XG4gIGRpc3BsYXk6IG5vbmUgIWltcG9ydGFudDtcbn0iXX0= */\"","import { THIS_EXPR } from '@angular/compiler/src/output/output_ast';\nimport { Component, OnInit } from '@angular/core';\nimport { MaxLengthValidator } from '@angular/forms';\nimport { MatDialog } from '@angular/material';\nimport { ActivatedRoute, Router } from '@angular/router';\nimport { TranslateService } from '@ngx-translate/core';\nimport { ToastyService } from 'ng2-toasty';\nimport { MatomoTracker } from 'ngx-matomo';\nimport { BackendApiService } from 'src/app/services/backend-api/backend-api.service';\nimport { RequestService } from 'src/app/services/request/request.service';\nimport { UtilService } from 'src/app/services/util/util.service';\nimport { AlertConfirmationComponent } from '../alert-confirmation/alert-confirmation.component';\nimport { UserMessageSendinstantlyComponent } from './user-message-sendinstantly/user-message-sendinstantly.component';\n\n@Component({\n selector: 'app-user-message',\n templateUrl: './user-message.component.html',\n styleUrls: ['./user-message.component.scss']\n})\nexport class UserMessageComponent implements OnInit {\n\n alertMsg = [{ 'EUROPE': [] },\n { 'MERCOSUR': [] }];\n userValues = {\n \"ipn\": undefined, \"region\": undefined, \"responseData\": undefined,\n \"tableData\": undefined, \"selectedRegion\": undefined, \"selectedTable\": undefined, \"selectedTableDetails\": undefined,\n \"dateDiff\": undefined, \"requestDatas\": undefined, \"roleBasedTableList\": undefined\n };\n\n profile = this.utilService.getUserProfile();\n isAdmin = false;\n roleBasedGroupList;\n\n messageTypes = [];\n selectedMsgType;\n isPriority = false;\n\n blnQuickLink: boolean;\n textMsg: string;\n\n\n constructor(readonly router: Router, readonly activatedRoute: ActivatedRoute, public dialog: MatDialog,\n readonly apiService: BackendApiService, readonly utilService: UtilService,\n private translateService: TranslateService,\n readonly requestService: RequestService, readonly toastyService: ToastyService, private matomoTracker: MatomoTracker) {\n this.utilService.$showIcon$.next(false);\n }\n\n ngOnInit() {\n // alert(\"user Managemenat component\")\n // const role = this.utilService.getUserProfile()['role-acc-pil-irn6804'];\n\n // let regionRole = role.replace('[', '').replace(']', '');\n // let isEuroAdmin = false;\n // let isMercAdmin = false;\n // if (this.profile['role-pil-irn6804'] || this.profile['role-pim-irn9207']) {\n // if (this.profile['role-pil-irn6804'].indexOf('pil_admin') > -1) {\n // isEuroAdmin = true;\n // }\n // if (this.profile['role-pim-irn9207'].indexOf('pim_admin') > -1) {\n // isMercAdmin = true;\n // }\n // }\n\n // regionRole = regionRole.split(',');\n // if (regionRole.length > 1 && isMercAdmin && isEuroAdmin) {\n // this.userValues.region = ['Europe', 'Mercosur'];\n // this.userValues.selectedRegion = \"Europe\";\n // } else {\n // if (regionRole[0] === 'acc_pil_europe' && isEuroAdmin) {\n // this.userValues.region = ['Europe'];\n // this.userValues.selectedRegion = \"Europe\";\n // } else {\n // if (isMercAdmin) {\n // this.userValues.region = ['Mercosur'];\n // this.userValues.selectedRegion = \"Mercosur\";\n // }\n // }\n // }\n\n // okta\n let regionRole = this.utilService.getUserProfile()['roles'].filter(item => item.indexOf('ACC_PI') > -1);\n if (regionRole.length > 1) {\n this.userValues.region = ['Europe', 'Mercosur'];\n this.userValues.selectedRegion = \"Europe\";\n } else {\n let region: string;\n regionRole[0] === 'ACC_PIL_EUROPE' ? region = 'Europe' : region = 'Mercosur';\n this.userValues.region = [region];\n this.userValues.selectedRegion = region;\n }\n\n this.getMsg(this.userValues.selectedRegion);\n this.matomoTracker.trackPageView(`Management of user message`);\n }\n\n getMsg(region) {\n this.isPriority = false;\n this.userValues.selectedRegion = region;\n this.textMsg = \"\";\n const queryParam = { \"input\": \"MESS@system@Message@@0@1@\", \"region\": this.getFavoriteRegion() };\n this.apiService.getMessageObjectList(queryParam).subscribe(res => {\n // console.log(\"res\", res);\n this.selectedMsgType = \"none\";\n let queryMsgType;\n if (res.lists.length > 0) {\n queryMsgType = res.lists[0];\n if (res.lists[0].split(\"_\").length > 1) {\n this.selectedMsgType = res.lists[0].split(\"_\")[0];\n this.isPriority = true;\n } else {\n this.selectedMsgType = res.lists[0];\n }\n }\n const queryParam1 = { \"input\": `MESS@system@Message@${queryMsgType}@`, \"region\": this.getFavoriteRegion() };\n this.apiService.getMessageObject(queryParam1).subscribe(res1 => {\n // console.log(\"res1\", res1);\n if (res1.data) {\n const splitVal = res1.data.split(\"
\");\n this.textMsg = \"\";\n for (const item of splitVal) {\n this.textMsg = this.textMsg + item + \"\\n\";\n }\n this.textMsg = this.textMsg.toString().substr(0, this.textMsg.length - 1);\n }\n },\n error => {\n // this.toastyService.error(this.utilService.getTranslateName(`ERROR.TABLE_ERROR`));\n console.log(\"error\", error.message);\n });\n\n },\n error => {\n // this.toastyService.error(this.utilService.getTranslateName(`ERROR.TABLE_ERROR`));\n console.log(\"error\", error.message);\n });\n }\n\n getFavoriteRegion() {\n if (this.userValues.selectedRegion === \"Europe\") {\n return \"PIL\";\n } else {\n return \"PIM\";\n }\n }\n\n clickClose() {\n const pathName = window.location.pathname;\n this.utilService.removeOpenedWindowName(pathName);\n this.utilService.$showIcon$.next(true);\n const openedWindowNameList = this.utilService.getOpenedWindowNameList()\n if (openedWindowNameList.length > 0) {\n this.router.navigate([openedWindowNameList[openedWindowNameList.length - 1]]);\n } else {\n this.router.navigate(['home']);\n }\n }\n\n alertPopup(msg, isAlert) {\n const dialogRef = this.dialog.open(AlertConfirmationComponent, {\n disableClose: true,\n width: '550px',\n data: { 'display': msg, isAlert: isAlert }\n });\n\n dialogRef.afterClosed().subscribe(result => {\n if (result === true) {\n if (!isAlert) {\n\n if (this.selectedMsgType === \"perm\") {\n if (this.isPriority === true) {\n this.deleteMessage(\"perm_prio\");\n }\n else {\n this.deleteMessage(\"perm\");\n }\n }\n else if (this.selectedMsgType === \"tmp\") {\n if (this.isPriority === true) {\n this.deleteMessage(\"tmp_prio\");\n }\n else {\n this.deleteMessage(\"tmp\");\n }\n }\n else {\n this.deleteMessage(\"none\");\n }\n }\n }\n })\n }\n\n onClickValid() {\n if (this.textMsg.toString().trim() === \"\") {\n this.alertPopup(this.utilService.getTranslateName(\"USER_MESSAGE.MESSAGE_EMPTY\"), true);\n this.textMsg = \"\";\n return;\n }\n if (this.textMsg.length > 500) {\n this.alertPopup(this.utilService.getTranslateName(\"USER_MESSAGE.ATTENTION_MESSAGE\"), true);\n return;\n }\n if (this.selectedMsgType === \"perm\") {\n if (this.isPriority === true) {\n this.alertPopup(`${this.utilService.getTranslateName(\"USER_MESSAGE.ATTENTION_PRIORITY\")} ${this.utilService.getTranslateName(\"USER_MESSAGE.ATTENTION_PERMANENT\")}`, false);\n // this.deleteMessage();\n }\n else {\n this.alertPopup(this.utilService.getTranslateName(\"USER_MESSAGE.ATTENTION_PERMANENT\"), false);\n }\n }\n else if (this.selectedMsgType === \"tmp\") {\n if (this.isPriority === true) {\n this.alertPopup(`${this.utilService.getTranslateName(\"USER_MESSAGE.ATTENTION_PRIORITY\")} ${this.utilService.getTranslateName(\"USER_MESSAGE.ATTENTION_TEMPORARY\")}`, false);\n }\n else {\n this.alertPopup(this.utilService.getTranslateName(\"USER_MESSAGE.ATTENTION_TEMPORARY\"), false);\n }\n }\n else {\n this.alertPopup(this.utilService.getTranslateName(\"USER_MESSAGE.ATTENTION_NONE\"), false);\n }\n }\n onClickSend() {\n const dialogRef = this.dialog.open(UserMessageSendinstantlyComponent, {\n disableClose: true,\n width: '550px',\n data: {}\n });\n\n dialogRef.afterClosed().subscribe(result => {\n if (result === true) {\n }\n })\n }\n deleteMessage(type) {\n const queryParam = { \"input\": \"MESS@system@Message@@0@4@\", \"region\": this.getFavoriteRegion() };\n this.apiService.getMessageObjectList(queryParam).subscribe(res1 => {\n // console.log(\"res1\", res1);\n if (res1) {\n if (res1.noOfLists === 0) {\n this.addMessage(type);\n } else {\n for (let index = 0; index < res1.noOfLists; index++) {\n const element = res1.lists[index];\n const queryParam1 = { \"input\": `MESS@system@Message@${element}@`, \"region\": this.getFavoriteRegion() };\n this.apiService.deleteObject(queryParam1).subscribe(resDel => {\n // console.log(\"resDel\", resDel);\n if (index === res1.noOfLists - 1 && this.selectedMsgType !== \"none\") {\n this.addMessage(type);\n }\n if (this.selectedMsgType === \"none\") {\n this.textMsg = \"\";\n }\n },\n error => {\n // this.toastyService.error(this.utilService.getTranslateName(`ERROR.TABLE_ERROR`));\n console.log(\"error\", error.message);\n });\n // console.log(this.textMsg.replace(\"\\n\", \"
\"));\n }\n }\n }\n },\n error => {\n // this.toastyService.error(this.utilService.getTranslateName(`ERROR.TABLE_ERROR`));\n console.log(\"error\", error.message);\n });\n }\n\n addMessage(type) {\n\n const splitVal = this.textMsg.split('\\n');\n let textVal = \"\";\n for (let index = 0; index < splitVal.length; index++) {\n const element = splitVal[index];\n textVal = textVal + element + \"
\";\n\n if (index === splitVal.length - 1) {\n textVal = textVal.substr(0, textVal.length - 4);\n const queryParam1 = { \"input\": `MESS@system@Message@${type}@${textVal}`, \"region\": this.getFavoriteRegion() };\n this.apiService.saveObject(queryParam1).subscribe(resAdd => {\n // console.log(\"resAdd\", resAdd);\n this.matomoTracker.trackPageView(`Management of user message`);\n this.matomoTracker.trackEvent(\"Management of user message\", `Create new user message`, this.profile['login']);\n },\n error => {\n // this.toastyService.error(this.utilService.getTranslateName(`ERROR.TABLE_ERROR`));\n console.log(\"error\", error.message);\n });\n }\n }\n\n }\n}","export default \".load-text-message {\\n font-size: 14px;\\n text-align: left;\\n color: #00080f;\\n padding-left: 79px;\\n}\\n\\n.overlay {\\n position: fixed;\\n display: block;\\n width: 100%;\\n height: 100%;\\n top: 0;\\n left: 0;\\n background-color: rgba(74, 74, 74, 0.8);\\n z-index: 99999;\\n}\\n\\n.load-spinner {\\n position: absolute;\\n top: 30%;\\n left: 45%;\\n border: 1px solid transparent !important;\\n z-index: 999;\\n}\\n\\n.load-spinner-step {\\n width: 50px;\\n height: 50px;\\n padding-top: 87px;\\n padding-left: 79px;\\n font-size: 14px;\\n color: #7c878e;\\n margin-bottom: 20px;\\n border: 1px solid transparent !important;\\n}\\n\\n@keyframes spinner {\\n to {\\n transform: rotate(360deg);\\n }\\n}\\n\\n@-webkit-keyframes spinner {\\n to {\\n -webkit-transform: rotate(360deg);\\n }\\n}\\n\\n.spinner {\\n min-width: 30px;\\n min-height: 30px;\\n position: relative;\\n width: 30px;\\n height: 30px;\\n}\\n\\n.spinner:before {\\n content: \\\"\\\";\\n position: absolute;\\n top: 50%;\\n left: 50%;\\n width: 80px;\\n height: 80px;\\n margin-top: -13px;\\n margin-left: -13px;\\n}\\n\\n.spinner:not(:required):before {\\n content: \\\"\\\";\\n border-radius: 50%;\\n border: 10px solid #f3f3f3;\\n border-top-color: #FF5F00;\\n animation: spinner 2s linear infinite;\\n -webkit-animation: spinner 2s linear infinite;\\n}\\n\\n/* New CSS */\\n\\n.button-style {\\n width: 82px;\\n height: 36px;\\n font-family: Roboto, \\\"Helvetica Neue\\\", sans-serif;\\n font-size: 13px;\\n font-weight: 500;\\n text-align: center;\\n border: 0px solid;\\n background-color: #FFCC33;\\n padding: 0 !important;\\n}\\n\\n.link {\\n color: blue;\\n text-decoration: underline;\\n cursor: pointer;\\n}\\n\\n.title {\\n padding: 10px 0;\\n}\\n/*# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi91c3Ivc3JjL3NyYy9hcHAvY29yZS9hdXRoZW50aWZpY2F0aW9uL2F1dGhlbnRpZmljYXRpb24uY29tcG9uZW50LnNjc3MiLCJzcmMvYXBwL2NvcmUvYXV0aGVudGlmaWNhdGlvbi9hdXRoZW50aWZpY2F0aW9uLmNvbXBvbmVudC5zY3NzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQWtQQTtFQUNJLGVBQUE7RUFDQSxnQkFBQTtFQUNBLGNBQUE7RUFDQSxrQkFBQTtBQ2pQSjs7QURtUEE7RUFDSSxlQUFBO0VBQ0EsY0FBQTtFQUNBLFdBQUE7RUFDQSxZQUFBO0VBQ0EsTUFBQTtFQUNBLE9BQUE7RUFDQSx1Q0FBQTtFQUNBLGNBQUE7QUNoUEo7O0FEbVBBO0VBQ0ksa0JBQUE7RUFDQSxRQUFBO0VBQ0EsU0FBQTtFQUNBLHdDQUFBO0VBQ0EsWUFBQTtBQ2hQSjs7QURtUEU7RUFFRSxXQUFBO0VBQ0EsWUFBQTtFQUNBLGlCQUFBO0VBQ0Esa0JBQUE7RUFDQSxlQUFBO0VBQ0EsY0FBQTtFQUNBLG1CQUFBO0VBQ0Esd0NBQUE7QUNqUEo7O0FEb1BFO0VBQ0U7SUFBSSx5QkFBQTtFQ2hQTjtBQUNGOztBRGtQQTtFQUNJO0lBQUksaUNBQUE7RUMvT047QUFDRjs7QURpUEE7RUFDSSxlQUFBO0VBQ0EsZ0JBQUE7RUFFQSxrQkFBQTtFQUNBLFdBQUE7RUFDQSxZQUFBO0FDaFBKOztBRG1QQTtFQUNJLFdBQUE7RUFDQSxrQkFBQTtFQUNBLFFBQUE7RUFDQSxTQUFBO0VBQ0EsV0FBQTtFQUNBLFlBQUE7RUFDQSxpQkFBQTtFQUNBLGtCQUFBO0FDaFBKOztBRG1QQTtFQUNJLFdBQUE7RUFDQSxrQkFBQTtFQUNBLDBCQUFBO0VBQ0EseUJBQUE7RUFDQSxxQ0FBQTtFQUNBLDZDQUFBO0FDaFBKOztBRG1QQSxZQUFBOztBQUlBO0VBQ0ksV0FBQTtFQUNBLFlBQUE7RUFDQSxpREFBQTtFQUNBLGVBQUE7RUFDQSxnQkFBQTtFQUNBLGtCQUFBO0VBQ0EsaUJBQUE7RUFDQSx5QkFBQTtFQUNBLHFCQUFBO0FDblBKOztBRHNQQTtFQUNJLFdBQUE7RUFDQSwwQkFBQTtFQUNBLGVBQUE7QUNuUEo7O0FEc1BBO0VBQ0ksZUFBQTtBQ25QSiIsImZpbGUiOiJzcmMvYXBwL2NvcmUvYXV0aGVudGlmaWNhdGlvbi9hdXRoZW50aWZpY2F0aW9uLmNvbXBvbmVudC5zY3NzIiwic291cmNlc0NvbnRlbnQiOlsiLy8gLmNvbnRlbnQge1xuLy8gICB3aWR0aDogMTAwJTtcbi8vICAgaGVpZ2h0OiAxMDAlO1xuLy8gICAvKiBiYWNrZ3JvdW5kOiAjZmZjYzAwOyAqL1xuLy8gICBwb3NpdGlvbjogYWJzb2x1dGU7XG4vLyAgIHRyYW5zaXRpb246IGFsbCAwLjVzIGVhc2Utb3V0O1xuLy8gfVxuLy8gLmNvbnRlbnRCbG9je1xuLy8gICB0b3A6IDUwJTtcbi8vICAgbGVmdDogNTAlO1xuLy8gICBtYXJnaW4tcmlnaHQ6IC01MCU7XG4vLyAgIHRyYW5zZm9ybTogdHJhbnNsYXRlKC01MCUsIC01MCUpO1xuLy8gICB3aWR0aDozMDBweDtcbi8vICAgaGVpZ2h0OjMwMHB4O1xuLy8gICBwb3NpdGlvbjogYWJzb2x1dGU7XG4vLyB9XG4vLyAuY29udGVudCBoM3tcbi8vICAgZm9udC1mYW1pbHk6IFwiUmVuYXVsdExpZmVcIjtcbi8vICAgZm9udC13ZWlnaHQ6IDQwMDtcbi8vICAgZm9udC1zaXplOiAyMHB4IWltcG9ydGFudDtcbi8vICAgdGV4dC10cmFuc2Zvcm06IHVwcGVyY2FzZTtcbi8vICAgbWFyZ2luLXRvcDogMjAlO1xuLy8gICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4vLyAgIGNvbG9yOiAjMDAwMDAwIWltcG9ydGFudDtcbi8vIH1cbi8vIC5jb250ZW50IGgzIHNwYW57XG4vLyAgIGZvbnQtc2l6ZTogMzBweCFpbXBvcnRhbnQ7XG4vLyB9XG4vLyAvKiogTG9hZGluZyBQYWdlICoqL1xuLy8gLyogZGVmYXVsdCAubG9hZGluZyBzdHlsZXMsIC5sb2FkaW5nIHNob3VsZCBiZSBpbnZpc2libGUsIG9wYWNpdHk6IDAsIHotaW5kZXg6IC0xICovXG4vLyAubG9hZGluZyB7XG4vLyAgIG9wYWNpdHk6IDE7XG4vLyAgIHRyYW5zaXRpb246IG9wYWNpdHkgLjhzIGVhc2UtaW4tb3V0O1xuLy8gICBwb3NpdGlvbjogZml4ZWQ7XG4vLyAgIGhlaWdodDogMTAwJTtcbi8vICAgd2lkdGg6IDEwMCU7XG4vLyAgIHRvcDogMDtcbi8vICAgbGVmdDogMDtcbi8vICAgYmFja2dyb3VuZDogI2ZmY2MwMDtcbi8vICAgY29sb3I6ICMwMDAwMDAhaW1wb3J0YW50O1xuLy8gICB6LWluZGV4OiAtMTtcbi8vIH1cbi8vIC5sb2FkaW5nIGgxe1xuLy8gICBmb250LWZhbWlseTogXCJSZW5hdWx0TGlmZVwiO1xuLy8gICBmb250LXdlaWdodDogNDAwO1xuLy8gICBmb250LXNpemU6IDMwcHghaW1wb3J0YW50O1xuLy8gICB0ZXh0LXRyYW5zZm9ybTogdXBwZXJjYXNlO1xuLy8gICBtYXJnaW4tdG9wOiAyMCU7XG4vLyAgIHRleHQtYWxpZ246IGNlbnRlcjtcbi8vICAgY29sb3I6ICMwMDAwMDAhaW1wb3J0YW50O1xuLy8gfVxuLy8gLmxvYWRpbmcgcHtcbi8vICAgZm9udC1mYW1pbHk6IFwiUmVuYXVsdExpZmVcIjtcbi8vICAgZm9udC13ZWlnaHQ6IDQwMDtcbi8vICAgZm9udC1zaXplOiAxMnB4IWltcG9ydGFudDtcbi8vICAgY29sb3I6ICMwMDAwMDAhaW1wb3J0YW50O1xuLy8gICB0ZXh0LXRyYW5zZm9ybTogdXBwZXJjYXNlO1xuLy8gICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4vLyB9XG5cbi8vIEBrZXlmcmFtZXMgZG90cyB7XG4vLyAgIDUwJSB7XG4vLyAgICAgdHJhbnNmb3JtOiB0cmFuc2xhdGVZKC0uNHJlbSk7XG4vLyAgIH1cbi8vICAgMTAwJSB7XG4vLyAgICAgdHJhbnNmb3JtOiB0cmFuc2xhdGVZKDApO1xuLy8gICB9XG4vLyB9XG5cbi8vIEAtd2Via2l0LWtleWZyYW1lcyBzcGlubmVyUm90YXRlXG4vLyB7XG4vLyAgIGZyb217LXdlYmtpdC1yYW5zZm9ybTogdHJhbnNsYXRlWSgwcmVtKTt9XG4vLyAgIHRvey13ZWJraXQtcmFuc2Zvcm06IHRyYW5zbGF0ZVkoLS40cmVtKTt9XG4vLyB9XG4vLyBALW1vei1rZXlmcmFtZXMgc3Bpbm5lclJvdGF0ZVxuLy8ge1xuLy8gICBmcm9tey1tb3otdHJhbnNmb3JtOiB0cmFuc2xhdGVZKDByZW0pO31cbi8vICAgdG97LW1vei10cmFuc2Zvcm06IHRyYW5zbGF0ZVkoLS40cmVtKTt9XG4vLyB9XG4vLyBALW1zLWtleWZyYW1lcyBzcGlubmVyUm90YXRlXG4vLyB7XG4vLyAgIGZyb217LW1zLXRyYW5zZm9ybTogdHJhbnNsYXRlWSgwcmVtKTt9XG4vLyAgIHRvey1tcy10cmFuc2Zvcm06IHRyYW5zbGF0ZVkoLS40cmVtKTt9XG4vLyB9XG5cbi8vIC5kIHtcbi8vICAgYW5pbWF0aW9uOiBkb3RzIDEuNXMgZWFzZS1vdXQgaW5maW5pdGU7XG4vLyAgIGNvbG9yOiAjMDAwMDAwIWltcG9ydGFudDtcbi8vIH1cbi8vIC5kLTIge1xuLy8gICBhbmltYXRpb24tZGVsYXk6IC41cztcbi8vICAgY29sb3I6ICMwMDAwMDAhaW1wb3J0YW50O1xuLy8gfVxuLy8gLmQtMyB7XG4vLyAgIGFuaW1hdGlvbi1kZWxheTogMXM7XG4vLyAgIGNvbG9yOiAjMDAwMDAwIWltcG9ydGFudDtcbi8vIH1cblxuLy8gLyoqIEluaXQgVGFibGUgKiovXG4vLyAucmVzcG9uc2l2ZXtcbi8vICAgZGlzcGxheTogbm9uZTtcbi8vIH1cblxuLy8gLyoqIEEgcmVtZXR0cmUgYXUgZm9ybWF0IFNBU1MgKiovXG4vLyAubG9hZGluZyBpbWd7XG4vLyAgIGFuaW1hdGlvbi1uYW1lOiBzcGluO1xuLy8gICBhbmltYXRpb24tZHVyYXRpb246IDQwMDBtcztcbi8vICAgYW5pbWF0aW9uLWl0ZXJhdGlvbi1jb3VudDogaW5maW5pdGU7XG4vLyAgIGFuaW1hdGlvbi10aW1pbmctZnVuY3Rpb246IGxpbmVhcjtcblxuLy8gICAtd2Via2l0LWFuaW1hdGlvbi1uYW1lOiBzcGluO1xuLy8gICAtd2Via2l0LWFuaW1hdGlvbi1kdXJhdGlvbjogNTAwMG1zO1xuLy8gICAtd2Via2l0LWFuaW1hdGlvbi1pdGVyYXRpb24tY291bnQ6IGluZmluaXRlO1xuLy8gICAtd2Via2l0LWFuaW1hdGlvbi10aW1pbmctZnVuY3Rpb246IGxpbmVhcjtcblxuLy8gICAtbW96LWFuaW1hdGlvbi1uYW1lOiBzcGluO1xuLy8gICAtbW96LWFuaW1hdGlvbi1kdXJhdGlvbjogNTAwMG1zO1xuLy8gICAtbW96LWFuaW1hdGlvbi1pdGVyYXRpb24tY291bnQ6IGluZmluaXRlO1xuLy8gICAtbW96LWFuaW1hdGlvbi10aW1pbmctZnVuY3Rpb246IGxpbmVhcjtcblxuLy8gICAtbXMtYW5pbWF0aW9uLW5hbWU6IHNwaW47XG4vLyAgIC1tcy1hbmltYXRpb24tZHVyYXRpb246IDUwMDBtcztcbi8vICAgLW1zLWFuaW1hdGlvbi1pdGVyYXRpb24tY291bnQ6IGluZmluaXRlO1xuLy8gICAtbXMtYW5pbWF0aW9uLXRpbWluZy1mdW5jdGlvbjogbGluZWFyO1xuXG5cblxuLy8gICBvcGFjaXR5OiAxIWltcG9ydGFudDtcblxuLy8gfVxuXG4vLyAvKiogQ2hyb21lICovXG4vLyAqOjotd2Via2l0LXNjcm9sbGJhci10cmFjayB7XG4vLyAgIC13ZWJraXQtYm94LXNoYWRvdzogaW5zZXQgMCAwIDZweCByZ2JhKDAsIDAsIDAsIDAuMyk7XG4vLyAgIGJhY2tncm91bmQtY29sb3I6ICNmNmY2ZjY7XG4vLyB9XG5cbi8vICo6Oi13ZWJraXQtc2Nyb2xsYmFyIHtcbi8vICAgd2lkdGg6IDEycHg7XG4vLyAgIGhlaWdodDogMTJweDtcbi8vICAgYmFja2dyb3VuZC1jb2xvcjogI2Y2ZjZmNjtcbi8vIH1cblxuLy8gKjo6LXdlYmtpdC1zY3JvbGxiYXItdGh1bWIge1xuLy8gICAtd2Via2l0LWJvcmRlci1yYWRpdXM6IDVweDtcbi8vICAgLW1vei1ib3JkZXItcmFkaXVzOiA1cHg7XG4vLyAgIC1tcy1ib3JkZXItcmFkaXVzOiA1cHg7XG4vLyAgIGJvcmRlci1yYWRpdXM6IDVweDtcbi8vICAgLXdlYmtpdC1ib3gtc2hhZG93OiBpbnNldCAwIDAgNnB4IHJnYmEoMCwgMCwgMCwgMC4zKTtcbi8vICAgYmFja2dyb3VuZC1jb2xvcjogI2ZmY2MzMztcbi8vIH1cblxuXG5cblxuLy8gQC1tb3ota2V5ZnJhbWVzIHNwaW4ge1xuLy8gICBmcm9tIHsgLW1vei10cmFuc2Zvcm06IHJvdGF0ZTNkKDAsIDEsIDAsMGRlZyk7IH1cbi8vICAgdG8geyAtbW96LXRyYW5zZm9ybTogcm90YXRlM2QoMCwgMSwgMCwzNjBkZWcpOyB9XG4vLyB9XG4vLyBALXdlYmtpdC1rZXlmcmFtZXMgc3BpbiB7XG4vLyAgIGZyb20geyAtd2Via2l0LXRyYW5zZm9ybTogcm90YXRlM2QoMCwgMSwgMCwwZGVnKTsgfVxuLy8gICB0byB7IC13ZWJraXQtdHJhbnNmb3JtOiByb3RhdGUzZCgwLCAxLCAwLDM2MGRlZyk7IH1cbi8vIH1cbi8vIEAtbXMta2V5ZnJhbWVzIHNwaW4ge1xuLy8gICBmcm9tIHsgLW1zLXRyYW5zZm9ybTogcm90YXRlM2QoMCwgMSwgMCwgMGRlZyk7IH1cbi8vICAgdG8geyAtbXMtdHJhbnNmb3JtOiByb3RhdGUzZCgwLCAxLCAwLCAzNjBkZWcpOyB9XG4vLyB9XG4vLyBAa2V5ZnJhbWVzIHNwaW4ge1xuLy8gICBmcm9tIHtcbi8vICAgICB0cmFuc2Zvcm06cm90YXRlM2QoMCwgMSwgMCwwZGVnKTtcbi8vICAgfVxuLy8gICB0byB7XG4vLyAgICAgdHJhbnNmb3JtOnJvdGF0ZTNkKDAsIDEsIDAsMzYwZGVnKTtcbi8vICAgfVxuLy8gfVxuLy8gLyoqIEh6Y2sgVGVtcG9yYWlyZSAqKi9cbi8vIC5jb21wb25lbnQuZGFzaGJvYXJke1xuLy8gICBkaXNwbGF5OiBub25lIWltcG9ydGFudDtcbi8vIH1cblxuXG4vLyAubG9hZC1zcGlubmVyIHtcbi8vICAgICBwb3NpdGlvbjphYnNvbHV0ZTtcbi8vICAgICB0b3A6IDEwJTtcbi8vICAgICBsZWZ0OiAzJTtcbi8vICAgICBib3JkZXI6IDFweCBzb2xpZCB0cmFuc3BhcmVudCAhaW1wb3J0YW50O1xuLy8gICB9XG4gIFxuLy8gICAubG9hZC1zcGlubmVyLXN0ZXB7XG4vLyAgICAgYmFja2dyb3VuZC1pbWFnZTogdXJsKFwiLi4vLi4vLi4vYXNzZXRzL2ltYWdlcy9zcGxpdExvYWRlci5naWZcIik7XG4vLyAgICAgd2lkdGg6IDE4MnB4O1xuLy8gICAgIGhlaWdodDogMTgycHg7XG4vLyAgICAgcGFkZGluZy10b3A6IDg3cHg7XG4vLyAgICAgcGFkZGluZy1sZWZ0OiA3OXB4O1xuLy8gICAgIGZvbnQtc2l6ZTogMTRweDtcbi8vICAgICBjb2xvcjogIzdjODc4ZTtcbi8vICAgICBtYXJnaW4tYm90dG9tOiAyMHB4O1xuLy8gICAgIGJvcmRlcjogMXB4IHNvbGlkIHRyYW5zcGFyZW50ICFpbXBvcnRhbnQ7XG4vLyAgIH1cblxuLy8gICBAa2V5ZnJhbWVzIHNwaW5uZXIge1xuLy8gICAgIHRvIHt0cmFuc2Zvcm06IHJvdGF0ZSgzNjBkZWcpO31cbi8vIH1cbiBcbi8vIEAtd2Via2l0LWtleWZyYW1lcyBzcGlubmVyIHtcbi8vICAgICB0byB7LXdlYmtpdC10cmFuc2Zvcm06IHJvdGF0ZSgzNjBkZWcpO31cbi8vIH1cbiBcbi8vIC5zcGlubmVyIHtcbi8vICAgICBtaW4td2lkdGg6IDMwcHg7XG4vLyAgICAgbWluLWhlaWdodDogMzBweDtcbi8vIH1cbiBcbi8vIC5zcGlubmVyOmJlZm9yZSB7XG4vLyAgICAgY29udGVudDogJyc7XG4vLyAgICAgcG9zaXRpb246IGFic29sdXRlO1xuLy8gICAgIHRvcDogNTAlO1xuLy8gICAgIGxlZnQ6IDUwJTtcbi8vICAgICB3aWR0aDogMjA0cHg7XG4vLyAgICAgaGVpZ2h0OiAyMDRweDtcbi8vICAgICBtYXJnaW4tdG9wOiAtMTNweDtcbi8vICAgICBtYXJnaW4tbGVmdDogLTEzcHg7XG4vLyB9XG4gXG4vLyAuc3Bpbm5lcjpub3QoOnJlcXVpcmVkKTpiZWZvcmUge1xuLy8gICAgIGNvbnRlbnQ6ICcnO1xuLy8gICAgIGJvcmRlci1yYWRpdXM6IDUwJTtcbi8vICAgICBib3JkZXI6IDEwcHggc29saWQgI2YzZjNmMztcbi8vICAgICBib3JkZXItdG9wLWNvbG9yOiAjRkY1RjAwO1xuLy8gICAgIGFuaW1hdGlvbjogc3Bpbm5lciAycyBsaW5lYXIgaW5maW5pdGU7XG4vLyAgICAgLXdlYmtpdC1hbmltYXRpb246IHNwaW5uZXIgMnMgbGluZWFyIGluZmluaXRlO1xuLy8gfVxuXG4vLyAvKiBOZXcgQ1NTICovXG5cbi8vIC5zcGlubmVyIHtcbi8vICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4vLyAgICAgd2lkdGg6IDMwcHg7XG4vLyAgICAgaGVpZ2h0OiAzMHB4O1xuLy8gfVxuXG5cbi5sb2FkLXRleHQtbWVzc2FnZXtcbiAgICBmb250LXNpemU6IDE0cHg7XG4gICAgdGV4dC1hbGlnbjogbGVmdDtcbiAgICBjb2xvcjogIzAwMDgwZjtcbiAgICBwYWRkaW5nLWxlZnQ6IDc5cHg7XG59XG4ub3ZlcmxheSB7XG4gICAgcG9zaXRpb246Zml4ZWQ7XG4gICAgZGlzcGxheTpibG9jaztcbiAgICB3aWR0aDoxMDAlO1xuICAgIGhlaWdodDoxMDAlO1xuICAgIHRvcDowO1xuICAgIGxlZnQ6MDtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOnJnYmEoNzQsNzQsNzQsLjgpO1xuICAgIHotaW5kZXg6OTk5OTk7XG4gIH1cblxuLmxvYWQtc3Bpbm5lciB7XG4gICAgcG9zaXRpb246YWJzb2x1dGU7XG4gICAgdG9wOiAzMCU7XG4gICAgbGVmdDogNDUlO1xuICAgIGJvcmRlcjogMXB4IHNvbGlkIHRyYW5zcGFyZW50ICFpbXBvcnRhbnQ7XG4gICAgei1pbmRleDogOTk5O1xuICB9XG4gIFxuICAubG9hZC1zcGlubmVyLXN0ZXB7XG4gICAgLy8gYmFja2dyb3VuZC1pbWFnZTogdXJsKFwiLi4vLi4vYXNzZXRzL2ltYWdlcy9zcGxpdExvYWRlci5naWZcIik7XG4gICAgd2lkdGg6IDUwcHg7XG4gICAgaGVpZ2h0OiA1MHB4O1xuICAgIHBhZGRpbmctdG9wOiA4N3B4O1xuICAgIHBhZGRpbmctbGVmdDogNzlweDtcbiAgICBmb250LXNpemU6IDE0cHg7XG4gICAgY29sb3I6ICM3Yzg3OGU7XG4gICAgbWFyZ2luLWJvdHRvbTogMjBweDtcbiAgICBib3JkZXI6IDFweCBzb2xpZCB0cmFuc3BhcmVudCAhaW1wb3J0YW50O1xuICB9XG5cbiAgQGtleWZyYW1lcyBzcGlubmVyIHtcbiAgICB0byB7dHJhbnNmb3JtOiByb3RhdGUoMzYwZGVnKTt9XG59XG4gXG5ALXdlYmtpdC1rZXlmcmFtZXMgc3Bpbm5lciB7XG4gICAgdG8gey13ZWJraXQtdHJhbnNmb3JtOiByb3RhdGUoMzYwZGVnKTt9XG59XG4gXG4uc3Bpbm5lciB7XG4gICAgbWluLXdpZHRoOiAzMHB4O1xuICAgIG1pbi1oZWlnaHQ6IDMwcHg7XG4gICAgXG4gICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgIHdpZHRoOiAzMHB4O1xuICAgIGhlaWdodDogMzBweDtcbn1cbiBcbi5zcGlubmVyOmJlZm9yZSB7XG4gICAgY29udGVudDogJyc7XG4gICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgIHRvcDogNTAlO1xuICAgIGxlZnQ6IDUwJTtcbiAgICB3aWR0aDogODBweDtcbiAgICBoZWlnaHQ6IDgwcHg7XG4gICAgbWFyZ2luLXRvcDogLTEzcHg7XG4gICAgbWFyZ2luLWxlZnQ6IC0xM3B4O1xufVxuIFxuLnNwaW5uZXI6bm90KDpyZXF1aXJlZCk6YmVmb3JlIHtcbiAgICBjb250ZW50OiAnJztcbiAgICBib3JkZXItcmFkaXVzOiA1MCU7XG4gICAgYm9yZGVyOiAxMHB4IHNvbGlkICNmM2YzZjM7XG4gICAgYm9yZGVyLXRvcC1jb2xvcjogI0ZGNUYwMDtcbiAgICBhbmltYXRpb246IHNwaW5uZXIgMnMgbGluZWFyIGluZmluaXRlO1xuICAgIC13ZWJraXQtYW5pbWF0aW9uOiBzcGlubmVyIDJzIGxpbmVhciBpbmZpbml0ZTtcbn1cblxuLyogTmV3IENTUyAqL1xuXG5cblxuLmJ1dHRvbi1zdHlsZXtcbiAgICB3aWR0aDogODJweDsgXG4gICAgaGVpZ2h0OiAzNnB4OyBcbiAgICBmb250LWZhbWlseTogUm9ib3RvLFwiSGVsdmV0aWNhIE5ldWVcIixzYW5zLXNlcmlmO1xuICAgIGZvbnQtc2l6ZTogMTNweDtcbiAgICBmb250LXdlaWdodDogNTAwO1xuICAgIHRleHQtYWxpZ246IGNlbnRlcjsgXG4gICAgYm9yZGVyOiAwcHggc29saWQ7IFxuICAgIGJhY2tncm91bmQtY29sb3I6ICNGRkNDMzM7XG4gICAgcGFkZGluZzogMCAhaW1wb3J0YW50O1xufVxuXG4ubGluayB7XG4gICAgY29sb3I6IGJsdWU7XG4gICAgdGV4dC1kZWNvcmF0aW9uOiB1bmRlcmxpbmU7XG4gICAgY3Vyc29yOiBwb2ludGVyO1xufVxuXG4udGl0bGUge1xuICAgIHBhZGRpbmc6IDEwcHggMDtcbn0iLCIubG9hZC10ZXh0LW1lc3NhZ2Uge1xuICBmb250LXNpemU6IDE0cHg7XG4gIHRleHQtYWxpZ246IGxlZnQ7XG4gIGNvbG9yOiAjMDAwODBmO1xuICBwYWRkaW5nLWxlZnQ6IDc5cHg7XG59XG5cbi5vdmVybGF5IHtcbiAgcG9zaXRpb246IGZpeGVkO1xuICBkaXNwbGF5OiBibG9jaztcbiAgd2lkdGg6IDEwMCU7XG4gIGhlaWdodDogMTAwJTtcbiAgdG9wOiAwO1xuICBsZWZ0OiAwO1xuICBiYWNrZ3JvdW5kLWNvbG9yOiByZ2JhKDc0LCA3NCwgNzQsIDAuOCk7XG4gIHotaW5kZXg6IDk5OTk5O1xufVxuXG4ubG9hZC1zcGlubmVyIHtcbiAgcG9zaXRpb246IGFic29sdXRlO1xuICB0b3A6IDMwJTtcbiAgbGVmdDogNDUlO1xuICBib3JkZXI6IDFweCBzb2xpZCB0cmFuc3BhcmVudCAhaW1wb3J0YW50O1xuICB6LWluZGV4OiA5OTk7XG59XG5cbi5sb2FkLXNwaW5uZXItc3RlcCB7XG4gIHdpZHRoOiA1MHB4O1xuICBoZWlnaHQ6IDUwcHg7XG4gIHBhZGRpbmctdG9wOiA4N3B4O1xuICBwYWRkaW5nLWxlZnQ6IDc5cHg7XG4gIGZvbnQtc2l6ZTogMTRweDtcbiAgY29sb3I6ICM3Yzg3OGU7XG4gIG1hcmdpbi1ib3R0b206IDIwcHg7XG4gIGJvcmRlcjogMXB4IHNvbGlkIHRyYW5zcGFyZW50ICFpbXBvcnRhbnQ7XG59XG5cbkBrZXlmcmFtZXMgc3Bpbm5lciB7XG4gIHRvIHtcbiAgICB0cmFuc2Zvcm06IHJvdGF0ZSgzNjBkZWcpO1xuICB9XG59XG5ALXdlYmtpdC1rZXlmcmFtZXMgc3Bpbm5lciB7XG4gIHRvIHtcbiAgICAtd2Via2l0LXRyYW5zZm9ybTogcm90YXRlKDM2MGRlZyk7XG4gIH1cbn1cbi5zcGlubmVyIHtcbiAgbWluLXdpZHRoOiAzMHB4O1xuICBtaW4taGVpZ2h0OiAzMHB4O1xuICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gIHdpZHRoOiAzMHB4O1xuICBoZWlnaHQ6IDMwcHg7XG59XG5cbi5zcGlubmVyOmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXCI7XG4gIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgdG9wOiA1MCU7XG4gIGxlZnQ6IDUwJTtcbiAgd2lkdGg6IDgwcHg7XG4gIGhlaWdodDogODBweDtcbiAgbWFyZ2luLXRvcDogLTEzcHg7XG4gIG1hcmdpbi1sZWZ0OiAtMTNweDtcbn1cblxuLnNwaW5uZXI6bm90KDpyZXF1aXJlZCk6YmVmb3JlIHtcbiAgY29udGVudDogXCJcIjtcbiAgYm9yZGVyLXJhZGl1czogNTAlO1xuICBib3JkZXI6IDEwcHggc29saWQgI2YzZjNmMztcbiAgYm9yZGVyLXRvcC1jb2xvcjogI0ZGNUYwMDtcbiAgYW5pbWF0aW9uOiBzcGlubmVyIDJzIGxpbmVhciBpbmZpbml0ZTtcbiAgLXdlYmtpdC1hbmltYXRpb246IHNwaW5uZXIgMnMgbGluZWFyIGluZmluaXRlO1xufVxuXG4vKiBOZXcgQ1NTICovXG4uYnV0dG9uLXN0eWxlIHtcbiAgd2lkdGg6IDgycHg7XG4gIGhlaWdodDogMzZweDtcbiAgZm9udC1mYW1pbHk6IFJvYm90bywgXCJIZWx2ZXRpY2EgTmV1ZVwiLCBzYW5zLXNlcmlmO1xuICBmb250LXNpemU6IDEzcHg7XG4gIGZvbnQtd2VpZ2h0OiA1MDA7XG4gIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgYm9yZGVyOiAwcHggc29saWQ7XG4gIGJhY2tncm91bmQtY29sb3I6ICNGRkNDMzM7XG4gIHBhZGRpbmc6IDAgIWltcG9ydGFudDtcbn1cblxuLmxpbmsge1xuICBjb2xvcjogYmx1ZTtcbiAgdGV4dC1kZWNvcmF0aW9uOiB1bmRlcmxpbmU7XG4gIGN1cnNvcjogcG9pbnRlcjtcbn1cblxuLnRpdGxlIHtcbiAgcGFkZGluZzogMTBweCAwO1xufSJdfQ== */\"","import { Component, OnInit, ViewChild, Inject } from '@angular/core';\nimport { ActivatedRoute, Router } from '@angular/router';\nimport { HttpClient } from '@angular/common/http';\nimport { Subscription } from 'rxjs';\nimport { OAuthService } from 'angular-oauth2-oidc';\nimport { ToastyService } from 'ng2-toasty';\nimport { RequestService } from './../../services/request/request.service';\nimport { TranslateService } from '@ngx-translate/core';\nimport 'moment/min/locales.min';\nimport * as moment from 'moment';\nimport { UtilService } from '../../services/util/util.service';\nimport { BackendApiService } from '../../services/backend-api/backend-api.service';\nimport { MatomoTracker, MatomoInjector } from 'ngx-matomo';\nimport { environment } from '../../../environments/environment.prod';\nimport * as pkg from '../../../../package.json';\n\n@Component({\n selector: 'app-authentification',\n templateUrl: './authentification.component.html',\n styleUrls: ['./authentification.component.scss'],\n\n})\nexport class AuthentificationComponent implements OnInit {\n\n @ViewChild('userUnauthorizedModal', { static: true })\n\n processing = false; // login processing\n isAuthorized: boolean;\n isAuthorizedSubscription: Subscription;\n apiResult: string;\n ipn: string;\n userrole: any;\n\n constructor(private oauthService: OAuthService, private matomoTracker: MatomoTracker, private matomoInjector: MatomoInjector, readonly translateService: TranslateService, readonly toastyService: ToastyService,\n private router: Router, readonly utilService: UtilService, readonly apiService: BackendApiService,\n private http: HttpClient, readonly requestService: RequestService) {\n this.isAuthorized = false;\n\n }\n\n ngOnInit() {\n this.IDPLoginAndStartSession();\n // if (this.oauthService.hasValidIdToken()) {\n // // console.log(this.oauthService.hasValidIdToken(), \"this.oauthService.hasValidIdToken()\", this.oauthService.getAccessToken());\n\n // this.checkFirstAccces();\n // } else {\n // this.login();\n // }\n }\n\n /** Check is first Acces **/\n private checkFirstAccces() {\n this.processing = true;\n console.log(\"this.oauthService.getIdentityClaims()\", this.oauthService.getIdentityClaims());\n this.oauthService.loadUserProfile().then(() => {\n const claims = this.oauthService.getIdentityClaims();\n\n sessionStorage.setItem(\"start_ts\", sessionStorage.getItem(\"expires_at\"));\n if (claims['preferredLanguage'].split(',').length > 1) {\n this.requestService.addLang('fr');\n this.translateService.setDefaultLang('fr');\n } else {\n const supportedLanguages = ['en', 'fr'];\n if (supportedLanguages.indexOf(claims['preferredLanguage']) > -1) {\n this.requestService.addLang(claims['preferredLanguage'].toLocaleLowerCase());\n this.translateService.setDefaultLang(claims['preferredLanguage'].toLocaleLowerCase());\n } else {\n this.requestService.addLang('fr');\n this.translateService.setDefaultLang('fr');\n }\n }\n\n let selectedLang = this.requestService.getSelectedLang();\n const supportedLanguages = ['en', 'fr'];\n // if ((selectedLang === undefined || selectedLang === null) && supportedLanguages.indexOf(selectedLang) <= -1) {\n // this.translateService.setDefaultLang('fr');\n // this.requestService.addLang('fr')\n // } else {\n // this.translateService.setDefaultLang(selectedLang);\n // }\n if (selectedLang !== undefined && selectedLang !== null && supportedLanguages.indexOf(selectedLang) > -1) {\n this.translateService.setDefaultLang(selectedLang);\n } else {\n this.translateService.setDefaultLang('fr');\n this.requestService.addLang('fr');\n // this.translateService.use('fr');\n }\n if (this.translateService.currentLang) {\n const currentLanguage =\n supportedLanguages.indexOf(this.translateService.currentLang) >= 0 ?\n this.translateService.currentLang :\n this.translateService.getBrowserLang();\n this.translateService.addLangs(supportedLanguages);\n this.translateService.use(currentLanguage);\n moment.locale(currentLanguage);\n }\n\n ////IDP\n /*if (!claims['role-acc-pil-irn6804']) {\n this.processing = false;\n this.toastyService.warning('Unauthorized user');\n this.router.navigate(['/unauthorized']);\n } else {\n this.processing = false;\n let region = this.requestService.getRegionMsg();\n if (region['europe'] === null && region['mercosur'] === null) {\n this.requestService.addRegionMsg('false', 'false');\n }\n\n\n\n this.matomoPageTrack();\n this.utilService.setExpired(false);\n\n const lastURL = localStorage.getItem(\"lURL\");\n if (lastURL) {\n localStorage.removeItem(\"lURL\");\n\n Object.keys(localStorage).forEach((key) => {\n // console.log(\"sessionStorage[key]\", sessionStorage[key])\n if (sessionStorage[key] === undefined) {\n sessionStorage[key] = localStorage.getItem(key);\n }\n localStorage.removeItem(key);\n });\n this.router.navigate([lastURL]);\n } else {\n this.router.navigate(['/home']);\n }\n // this.goToFirstScreen();\n }*/\n\n ////OKTA\n if (!claims['roles']) {\n this.processing = false;\n this.toastyService.warning('Unauthorized user');\n this.router.navigate(['/unauthorized']);\n } else {\n this.processing = false;\n let region = this.requestService.getRegionMsg();\n if (region['europe'] === null && region['mercosur'] === null) {\n this.requestService.addRegionMsg('false', 'false');\n }\n\n\n\n this.matomoPageTrack();\n this.utilService.setExpired(false);\n\n const lastURL = localStorage.getItem(\"lURL\");\n if (lastURL) {\n localStorage.removeItem(\"lURL\");\n\n Object.keys(localStorage).forEach((key) => {\n // console.log(\"sessionStorage[key]\", sessionStorage[key])\n if (sessionStorage[key] === undefined) {\n sessionStorage[key] = localStorage.getItem(key);\n }\n localStorage.removeItem(key);\n });\n this.router.navigate([lastURL]);\n } else {\n this.router.navigate(['/home']);\n }\n // this.goToFirstScreen();\n }\n });\n }\n /**\n * Redirect to execute module\n */\n login() {\n this.oauthService.initCodeFlow();\n }\n\n logOut() {\n localStorage.clear();\n sessionStorage.clear();\n //this.oauthService.logOut();\n this.router.navigate(['']);\n }\n\n closeShownModalAndLogout() {\n // this.shownModal.close();\n this.logOut();\n }\n\n IDPLoginAndStartSession() {\n // this.oauthService.setupAutomaticSilentRefresh();\n this.oauthService.loadDiscoveryDocumentAndTryLogin().catch(err => {\n console.error(err);\n }).then(() => {\n console.log(\"validation\", this.oauthService.hasValidAccessToken())\n if (!this.oauthService.hasValidAccessToken()) {\n console.log(\"validation login\")\n this.login(); // Code flow\n } else {\n this.checkFirstAccces();\n }\n });\n }\n\n\n matomoPageTrack(): void {\n // debugger;\n const claims = this.oauthService.getIdentityClaims();\n const ipm = `${claims['firstname']} ${claims['lastname']}`;\n // console.log(\"${claims['uid']} ${claims['firstname']} ${claims['lastname']}\", `${claims['uid']} ${claims['firstname']} ${claims['lastname']}`)\n this.matomoTracker.setUserId(ipm);\n // this.matomoTracker.setCustomDimension(1, `${claims['firstname']} ${claims['lastname']}.`);\n this.matomoTracker.trackEvent(\"Login\", \"Login\", claims['login']);\n // this.matomoInjector.init('https://piwik.renault-digital.com/', 2342);\n if ((window.location.hostname.indexOf('pil.app.renault.com') !== -1)\n || (window.location.hostname.indexOf('pil-app.gke2.ope.gcp.renault.com') !== -1)) {\n this.matomoInjector.init('https://matomo.dt.renault.com/', environment.idp.prod.ope.piwikID);\n } else if (window.location.hostname.indexOf('pil-app.gke2.int.gcp.renault.com') !== -1) {\n this.matomoInjector.init('https://matomo.dt.renault.com/', environment.idp.prod.re7.piwikID);\n } else if (window.location.hostname.indexOf('pil-app.gke2.dev.gcp.renault.com') !== -1) {\n this.matomoInjector.init('https://matomo.dt.renault.com/', environment.idp.prod.dev.piwikID);\n } else {\n this.matomoInjector.init('https://matomo.dt.renault.com/', environment.idp.prod.dev.piwikID);\n }\n sessionStorage.setItem('isMatomo', \"1\");\n const queryParam = { \"userIpn\": claims['uid'], \"clientVersion\": pkg.version };\n console.log(\"test1\", pkg.version);\n this.apiService.createuserlogin(queryParam).subscribe(res => {\n console.log(\"test\", res)\n },\n error => {\n console.log(\"error\", error.message);\n });\n // this.matomoTracker.setCustomDimension(2, `${claims['uid']} ${claims['firstname']} ${claims['lastname']}`);\n }\n\n}\n\n","\nimport { NgModule,CUSTOM_ELEMENTS_SCHEMA } from '@angular/core';\nimport { CommonModule } from '@angular/common';\nimport { HttpClient, HttpClientModule } from '@angular/common/http';\nimport { TranslateLoader, TranslateModule } from '@ngx-translate/core';\nimport { TranslateHttpLoader } from '@ngx-translate/http-loader';\nimport { AuthentificationComponent } from './authentification.component';\nimport { UnauthorizedAccessComponent } from './unauthorized-access.component';\nimport { AppMaterialModule } from '../../material-module';\n\nexport function createTranslateLoader(http: HttpClient) {\n return new TranslateHttpLoader(http, './assets/i18n/', '.json');\n}\n@NgModule({\n imports: [\n CommonModule,\n HttpClientModule,\n AppMaterialModule,\n TranslateModule.forRoot({\n loader: {\n provide: TranslateLoader,\n // useFactory: HttpLoaderFactory,\n useFactory: (createTranslateLoader),\n deps: [HttpClient]\n }\n })\n ],\n declarations: [AuthentificationComponent, UnauthorizedAccessComponent],\n exports: [AuthentificationComponent],\n entryComponents: [AuthentificationComponent],\n schemas: [CUSTOM_ELEMENTS_SCHEMA]\n})\nexport class AuthentificationModule { }\n","import {Component} from '@angular/core';\n\n@Component({\n selector: 'app-unauthorized-access',\n template: `Unauthorized-access`\n})\n\nexport class UnauthorizedAccessComponent {\n}\n","export default \".list-container {\\n height: 430px;\\n width: 830px;\\n font-family: Roboto, \\\"Helvetica Neue\\\", sans-serif;\\n font-size: 13px;\\n font-weight: 500;\\n border: 1px solid;\\n padding: 15px;\\n background-color: #ffffff;\\n}\\n\\n.content-font {\\n color: #000000;\\n font-family: Roboto, \\\"Helvetica Neue\\\", sans-serif;\\n font-size: 13px;\\n font-weight: 400;\\n line-height: 17px;\\n width: 59px;\\n text-align: left;\\n}\\n\\ntable {\\n margin-top: 50px;\\n}\\n\\ntable th {\\n border-right: 1px solid #ccc;\\n padding: 3px;\\n text-align: center;\\n background-color: #2d4557;\\n color: #ffffff;\\n}\\n\\ntable td {\\n border: 1px solid #ccc;\\n padding: 3px;\\n text-align: center;\\n}\\n\\ntable tr:nth-child(even) {\\n background-color: #f2f2f2;\\n}\\n\\ntable thead {\\n background-color: #eee;\\n position: -webkit-sticky;\\n position: sticky;\\n top: -2px;\\n}\\n\\n.pagination {\\n font-size: 14px;\\n text-align: right;\\n margin: 20px auto;\\n}\\n\\n::ng-deep .pagination-next a,\\n::ng-deep .pagination-previous a {\\n outline: none;\\n}\\n\\n::ng-deep .ngx-pagination .current {\\n border-radius: 4px;\\n}\\n\\n::ng-deep .ngx-pagination {\\n padding: 0 !important;\\n}\\n\\n::ng-deep .ngx-pagination a:hover,\\n::ng-deep .ngx-pagination button:hover {\\n border-radius: 4px;\\n}\\n\\n::ng-deep .ngx-pagination a,\\n::ng-deep .ngx-pagination button {\\n border-radius: 4px;\\n outline: none;\\n}\\n\\n.item-right {\\n float: right;\\n cursor: pointer;\\n}\\n\\n.mat-button {\\n width: 100px;\\n height: 30px !important;\\n font-family: Roboto, \\\"Helvetica Neue\\\", sans-serif;\\n font-size: 13px;\\n font-weight: 500;\\n text-align: center;\\n border: 0px solid;\\n background-color: #FFCC33;\\n padding: 0 !important;\\n border-radius: 0px;\\n margin-top: 10px;\\n}\\n\\n.wrapper {\\n display: inline-flex;\\n justify-content: space-around;\\n width: 100%;\\n}\\n\\n.label {\\n margin-left: 130px;\\n}\\n\\n.search {\\n margin-left: 20px;\\n}\\n\\n.button-panel2[_ngcontent-glu-c20] {\\n width: 75px;\\n height: 36px !important;\\n font-family: Roboto, \\\"Helvetica Neue\\\", sans-serif;\\n font-size: 13px;\\n font-weight: 500;\\n text-align: center;\\n border: 0px solid;\\n background-color: #FFCC33;\\n padding: 0 !important;\\n border-radius: 0px;\\n line-height: 36px !important;\\n margin-bottom: 10px;\\n}\\n/*# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi91c3Ivc3JjL3NyYy9hcHAvbGlzdC1jb25uZWN0aW9uL2xpc3QtY29ubmVjdGlvbi5jb21wb25lbnQuc2NzcyIsInNyYy9hcHAvbGlzdC1jb25uZWN0aW9uL2xpc3QtY29ubmVjdGlvbi5jb21wb25lbnQuc2NzcyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQTtFQUNFLGFBQUE7RUFDQSxZQUFBO0VBQ0EsaURBQUE7RUFDQSxlQUFBO0VBQ0EsZ0JBQUE7RUFDQSxpQkFBQTtFQUNBLGFBQUE7RUFDQSx5QkFBQTtBQ0NGOztBREVBO0VBQ0UsY0FBQTtFQUNBLGlEQUFBO0VBQ0EsZUFBQTtFQUNBLGdCQUFBO0VBQ0EsaUJBQUE7RUFDQSxXQUFBO0VBQ0EsZ0JBQUE7QUNDRjs7QURFQTtFQUdFLGdCQUFBO0FDREY7O0FER0U7RUFDRSw0QkFBQTtFQUNBLFlBQUE7RUFDQSxrQkFBQTtFQUNBLHlCQUFBO0VBQ0EsY0FBQTtBQ0RKOztBREtFO0VBQ0Usc0JBQUE7RUFDQSxZQUFBO0VBQ0Esa0JBQUE7QUNISjs7QURNRTtFQUNFLHlCQUFBO0FDSko7O0FET0U7RUFDRSxzQkFBQTtFQUNBLHdCQUFBO0VBQUEsZ0JBQUE7RUFDQSxTQUFBO0FDTEo7O0FEU0E7RUFDRSxlQUFBO0VBQ0EsaUJBQUE7RUFDQSxpQkFBQTtBQ05GOztBRFNBOztFQUVFLGFBQUE7QUNORjs7QURTQTtFQUNFLGtCQUFBO0FDTkY7O0FEU0E7RUFDRSxxQkFBQTtBQ05GOztBRFNBOztFQUVFLGtCQUFBO0FDTkY7O0FEU0E7O0VBRUUsa0JBQUE7RUFDQSxhQUFBO0FDTkY7O0FEaUJBO0VBQ0UsWUFBQTtFQUNBLGVBQUE7QUNkRjs7QURtQkE7RUFDRSxZQUFBO0VBQ0EsdUJBQUE7RUFDQSxpREFBQTtFQUNBLGVBQUE7RUFDQSxnQkFBQTtFQUNBLGtCQUFBO0VBQ0EsaUJBQUE7RUFDQSx5QkFBQTtFQUNBLHFCQUFBO0VBQ0Esa0JBQUE7RUFDQSxnQkFBQTtBQ2hCRjs7QURtQkE7RUFDRSxvQkFBQTtFQUNBLDZCQUFBO0VBQ0EsV0FBQTtBQ2hCRjs7QURxQkE7RUFDRSxrQkFBQTtBQ2xCRjs7QURxQkE7RUFDRSxpQkFBQTtBQ2xCRjs7QURxQkE7RUFDRSxXQUFBO0VBQ0EsdUJBQUE7RUFDQSxpREFBQTtFQUNBLGVBQUE7RUFDQSxnQkFBQTtFQUNBLGtCQUFBO0VBQ0EsaUJBQUE7RUFDQSx5QkFBQTtFQUNBLHFCQUFBO0VBQ0Esa0JBQUE7RUFDQSw0QkFBQTtFQUNBLG1CQUFBO0FDbEJGIiwiZmlsZSI6InNyYy9hcHAvbGlzdC1jb25uZWN0aW9uL2xpc3QtY29ubmVjdGlvbi5jb21wb25lbnQuc2NzcyIsInNvdXJjZXNDb250ZW50IjpbIi5saXN0LWNvbnRhaW5lciB7XG4gIGhlaWdodDogNDMwcHg7XG4gIHdpZHRoOiA4MzBweDtcbiAgZm9udC1mYW1pbHk6IFJvYm90bywgXCJIZWx2ZXRpY2EgTmV1ZVwiLCBzYW5zLXNlcmlmO1xuICBmb250LXNpemU6IDEzcHg7XG4gIGZvbnQtd2VpZ2h0OiA1MDA7XG4gIGJvcmRlcjogMXB4IHNvbGlkO1xuICBwYWRkaW5nOiAxNXB4O1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjZmZmZmZmO1xufVxuXG4uY29udGVudC1mb250IHtcbiAgY29sb3I6ICMwMDAwMDA7XG4gIGZvbnQtZmFtaWx5OiBSb2JvdG8sIFwiSGVsdmV0aWNhIE5ldWVcIiwgc2Fucy1zZXJpZjtcbiAgZm9udC1zaXplOiAxM3B4O1xuICBmb250LXdlaWdodDogNDAwO1xuICBsaW5lLWhlaWdodDogMTdweDtcbiAgd2lkdGg6IDU5cHg7XG4gIHRleHQtYWxpZ246IGxlZnQ7XG59XG5cbnRhYmxlIHtcblxuICAvLyBoZWlnaHQ6IDQwMHB4ICFpbXBvcnRhbnQ7XG4gIG1hcmdpbi10b3A6IDUwcHg7XG5cbiAgdGgge1xuICAgIGJvcmRlci1yaWdodDogMXB4IHNvbGlkICNjY2M7XG4gICAgcGFkZGluZzogM3B4O1xuICAgIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjMmQ0NTU3O1xuICAgIGNvbG9yOiAjZmZmZmZmO1xuXG4gIH1cblxuICB0ZCB7XG4gICAgYm9yZGVyOiAxcHggc29saWQgI2NjYztcbiAgICBwYWRkaW5nOiAzcHg7XG4gICAgdGV4dC1hbGlnbjogY2VudGVyO1xuICB9XG5cbiAgdHI6bnRoLWNoaWxkKGV2ZW4pIHtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjZjJmMmYyO1xuICB9XG5cbiAgdGhlYWQge1xuICAgIGJhY2tncm91bmQtY29sb3I6ICNlZWU7XG4gICAgcG9zaXRpb246IHN0aWNreTtcbiAgICB0b3A6IC0ycHg7XG4gIH1cbn1cblxuLnBhZ2luYXRpb24ge1xuICBmb250LXNpemU6IDE0cHg7XG4gIHRleHQtYWxpZ246IHJpZ2h0O1xuICBtYXJnaW46IDIwcHggYXV0bztcbn1cblxuOjpuZy1kZWVwIC5wYWdpbmF0aW9uLW5leHQgYSxcbjo6bmctZGVlcCAucGFnaW5hdGlvbi1wcmV2aW91cyBhIHtcbiAgb3V0bGluZTogbm9uZTtcbn1cblxuOjpuZy1kZWVwIC5uZ3gtcGFnaW5hdGlvbiAuY3VycmVudCB7XG4gIGJvcmRlci1yYWRpdXM6IDRweDtcbn1cblxuOjpuZy1kZWVwIC5uZ3gtcGFnaW5hdGlvbiB7XG4gIHBhZGRpbmc6IDAgIWltcG9ydGFudDtcbn1cblxuOjpuZy1kZWVwIC5uZ3gtcGFnaW5hdGlvbiBhOmhvdmVyLFxuOjpuZy1kZWVwIC5uZ3gtcGFnaW5hdGlvbiBidXR0b246aG92ZXIge1xuICBib3JkZXItcmFkaXVzOiA0cHg7XG59XG5cbjo6bmctZGVlcCAubmd4LXBhZ2luYXRpb24gYSxcbjo6bmctZGVlcCAubmd4LXBhZ2luYXRpb24gYnV0dG9uIHtcbiAgYm9yZGVyLXJhZGl1czogNHB4O1xuICBvdXRsaW5lOiBub25lO1xufVxuXG4vLyAubmd4LXBhZ2luYXRpb24gYSwgLm5neC1wYWdpbmF0aW9uIGJ1dHRvbntcbi8vICAgY29sb3I6ICMwMDAwMDAgIWltcG9ydGFudDtcbi8vIH1cbi8vIC5uZ3gtcGFnaW5hdGlvbiAuZGlzYWJsZWQge1xuLy8gICBwYWRkaW5nOiAwLjE4NzVyZW0gMC42MjVyZW07XG4vLyAgIGNvbG9yOiAjMDAwMDAwO1xuLy8gICBjdXJzb3I6IGRlZmF1bHQ7XG4vLyB9XG4uaXRlbS1yaWdodCB7XG4gIGZsb2F0OiByaWdodDtcbiAgY3Vyc29yOiBwb2ludGVyO1xuICAvLyBtYXJnaW4tcmlnaHQ6IDEwcHg7XG4gIC8vIG1hcmdpbi10b3A6IDVweDtcbn1cblxuLm1hdC1idXR0b24ge1xuICB3aWR0aDogMTAwcHg7XG4gIGhlaWdodDogMzBweCAhaW1wb3J0YW50O1xuICBmb250LWZhbWlseTogUm9ib3RvLCBcIkhlbHZldGljYSBOZXVlXCIsIHNhbnMtc2VyaWY7XG4gIGZvbnQtc2l6ZTogMTNweDtcbiAgZm9udC13ZWlnaHQ6IDUwMDtcbiAgdGV4dC1hbGlnbjogY2VudGVyO1xuICBib3JkZXI6IDBweCBzb2xpZDtcbiAgYmFja2dyb3VuZC1jb2xvcjogI0ZGQ0MzMztcbiAgcGFkZGluZzogMCAhaW1wb3J0YW50O1xuICBib3JkZXItcmFkaXVzOiAwcHg7XG4gIG1hcmdpbi10b3A6IDEwcHg7XG59XG5cbi53cmFwcGVyIHtcbiAgZGlzcGxheTogaW5saW5lLWZsZXg7XG4gIGp1c3RpZnktY29udGVudDogc3BhY2UtYXJvdW5kO1xuICB3aWR0aDogMTAwJTtcbiAgLy8gbWFyZ2luLWxlZnQ6IDEwcHg7XG4gIC8vIG1hcmdpbi1yaWdodDogMTBweDtcbn1cblxuLmxhYmVsIHtcbiAgbWFyZ2luLWxlZnQ6IDEzMHB4O1xufVxuXG4uc2VhcmNoIHtcbiAgbWFyZ2luLWxlZnQ6IDIwcHg7XG59XG5cbi5idXR0b24tcGFuZWwyW19uZ2NvbnRlbnQtZ2x1LWMyMF0ge1xuICB3aWR0aDogNzVweDtcbiAgaGVpZ2h0OiAzNnB4ICFpbXBvcnRhbnQ7XG4gIGZvbnQtZmFtaWx5OiBSb2JvdG8sIFwiSGVsdmV0aWNhIE5ldWVcIiwgc2Fucy1zZXJpZjtcbiAgZm9udC1zaXplOiAxM3B4O1xuICBmb250LXdlaWdodDogNTAwO1xuICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gIGJvcmRlcjogMHB4IHNvbGlkO1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjRkZDQzMzO1xuICBwYWRkaW5nOiAwICFpbXBvcnRhbnQ7XG4gIGJvcmRlci1yYWRpdXM6IDBweDtcbiAgbGluZS1oZWlnaHQ6IDM2cHggIWltcG9ydGFudDtcbiAgbWFyZ2luLWJvdHRvbTogMTBweDtcbn0iLCIubGlzdC1jb250YWluZXIge1xuICBoZWlnaHQ6IDQzMHB4O1xuICB3aWR0aDogODMwcHg7XG4gIGZvbnQtZmFtaWx5OiBSb2JvdG8sIFwiSGVsdmV0aWNhIE5ldWVcIiwgc2Fucy1zZXJpZjtcbiAgZm9udC1zaXplOiAxM3B4O1xuICBmb250LXdlaWdodDogNTAwO1xuICBib3JkZXI6IDFweCBzb2xpZDtcbiAgcGFkZGluZzogMTVweDtcbiAgYmFja2dyb3VuZC1jb2xvcjogI2ZmZmZmZjtcbn1cblxuLmNvbnRlbnQtZm9udCB7XG4gIGNvbG9yOiAjMDAwMDAwO1xuICBmb250LWZhbWlseTogUm9ib3RvLCBcIkhlbHZldGljYSBOZXVlXCIsIHNhbnMtc2VyaWY7XG4gIGZvbnQtc2l6ZTogMTNweDtcbiAgZm9udC13ZWlnaHQ6IDQwMDtcbiAgbGluZS1oZWlnaHQ6IDE3cHg7XG4gIHdpZHRoOiA1OXB4O1xuICB0ZXh0LWFsaWduOiBsZWZ0O1xufVxuXG50YWJsZSB7XG4gIG1hcmdpbi10b3A6IDUwcHg7XG59XG50YWJsZSB0aCB7XG4gIGJvcmRlci1yaWdodDogMXB4IHNvbGlkICNjY2M7XG4gIHBhZGRpbmc6IDNweDtcbiAgdGV4dC1hbGlnbjogY2VudGVyO1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjMmQ0NTU3O1xuICBjb2xvcjogI2ZmZmZmZjtcbn1cbnRhYmxlIHRkIHtcbiAgYm9yZGVyOiAxcHggc29saWQgI2NjYztcbiAgcGFkZGluZzogM3B4O1xuICB0ZXh0LWFsaWduOiBjZW50ZXI7XG59XG50YWJsZSB0cjpudGgtY2hpbGQoZXZlbikge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjZjJmMmYyO1xufVxudGFibGUgdGhlYWQge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjZWVlO1xuICBwb3NpdGlvbjogc3RpY2t5O1xuICB0b3A6IC0ycHg7XG59XG5cbi5wYWdpbmF0aW9uIHtcbiAgZm9udC1zaXplOiAxNHB4O1xuICB0ZXh0LWFsaWduOiByaWdodDtcbiAgbWFyZ2luOiAyMHB4IGF1dG87XG59XG5cbjo6bmctZGVlcCAucGFnaW5hdGlvbi1uZXh0IGEsXG46Om5nLWRlZXAgLnBhZ2luYXRpb24tcHJldmlvdXMgYSB7XG4gIG91dGxpbmU6IG5vbmU7XG59XG5cbjo6bmctZGVlcCAubmd4LXBhZ2luYXRpb24gLmN1cnJlbnQge1xuICBib3JkZXItcmFkaXVzOiA0cHg7XG59XG5cbjo6bmctZGVlcCAubmd4LXBhZ2luYXRpb24ge1xuICBwYWRkaW5nOiAwICFpbXBvcnRhbnQ7XG59XG5cbjo6bmctZGVlcCAubmd4LXBhZ2luYXRpb24gYTpob3Zlcixcbjo6bmctZGVlcCAubmd4LXBhZ2luYXRpb24gYnV0dG9uOmhvdmVyIHtcbiAgYm9yZGVyLXJhZGl1czogNHB4O1xufVxuXG46Om5nLWRlZXAgLm5neC1wYWdpbmF0aW9uIGEsXG46Om5nLWRlZXAgLm5neC1wYWdpbmF0aW9uIGJ1dHRvbiB7XG4gIGJvcmRlci1yYWRpdXM6IDRweDtcbiAgb3V0bGluZTogbm9uZTtcbn1cblxuLml0ZW0tcmlnaHQge1xuICBmbG9hdDogcmlnaHQ7XG4gIGN1cnNvcjogcG9pbnRlcjtcbn1cblxuLm1hdC1idXR0b24ge1xuICB3aWR0aDogMTAwcHg7XG4gIGhlaWdodDogMzBweCAhaW1wb3J0YW50O1xuICBmb250LWZhbWlseTogUm9ib3RvLCBcIkhlbHZldGljYSBOZXVlXCIsIHNhbnMtc2VyaWY7XG4gIGZvbnQtc2l6ZTogMTNweDtcbiAgZm9udC13ZWlnaHQ6IDUwMDtcbiAgdGV4dC1hbGlnbjogY2VudGVyO1xuICBib3JkZXI6IDBweCBzb2xpZDtcbiAgYmFja2dyb3VuZC1jb2xvcjogI0ZGQ0MzMztcbiAgcGFkZGluZzogMCAhaW1wb3J0YW50O1xuICBib3JkZXItcmFkaXVzOiAwcHg7XG4gIG1hcmdpbi10b3A6IDEwcHg7XG59XG5cbi53cmFwcGVyIHtcbiAgZGlzcGxheTogaW5saW5lLWZsZXg7XG4gIGp1c3RpZnktY29udGVudDogc3BhY2UtYXJvdW5kO1xuICB3aWR0aDogMTAwJTtcbn1cblxuLmxhYmVsIHtcbiAgbWFyZ2luLWxlZnQ6IDEzMHB4O1xufVxuXG4uc2VhcmNoIHtcbiAgbWFyZ2luLWxlZnQ6IDIwcHg7XG59XG5cbi5idXR0b24tcGFuZWwyW19uZ2NvbnRlbnQtZ2x1LWMyMF0ge1xuICB3aWR0aDogNzVweDtcbiAgaGVpZ2h0OiAzNnB4ICFpbXBvcnRhbnQ7XG4gIGZvbnQtZmFtaWx5OiBSb2JvdG8sIFwiSGVsdmV0aWNhIE5ldWVcIiwgc2Fucy1zZXJpZjtcbiAgZm9udC1zaXplOiAxM3B4O1xuICBmb250LXdlaWdodDogNTAwO1xuICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gIGJvcmRlcjogMHB4IHNvbGlkO1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjRkZDQzMzO1xuICBwYWRkaW5nOiAwICFpbXBvcnRhbnQ7XG4gIGJvcmRlci1yYWRpdXM6IDBweDtcbiAgbGluZS1oZWlnaHQ6IDM2cHggIWltcG9ydGFudDtcbiAgbWFyZ2luLWJvdHRvbTogMTBweDtcbn0iXX0= */\"","import { HttpClient } from '@angular/common/http';\nimport { Component, OnInit } from '@angular/core';\nimport { MatDialog } from '@angular/material';\nimport { Router, ActivatedRoute } from '@angular/router';\nimport { TranslateService } from '@ngx-translate/core';\nimport { ToastyService } from 'ng2-toasty';\nimport { BackendApiService } from '../services/backend-api/backend-api.service';\nimport { RequestService } from '../services/request/request.service';\nimport { UtilService } from '../services/util/util.service';\nimport { DatePipe } from '@angular/common';\n// import { NgxPaginationModule } from 'ngx-pagination';\nimport * as XLSX from 'xlsx';\nimport moment from 'moment';\n\n\n@Component({\n selector: 'app-list-connection',\n templateUrl: './list-connection.component.html',\n styleUrls: ['./list-connection.component.scss']\n})\nexport class ListConnectionComponent implements OnInit {\n fileName = 'ExcelSheet.xlsx';\n alertMsg = [{ 'EUROPE': [] },\n { 'MERCOSUR': [] }];\n userValues = {\n \"ipn\": undefined, \"region\": undefined, \"responseData\": undefined,\n \"tableData\": undefined, \"selectedRegion\": undefined, \"selectedTable\": undefined, \"selectedTableDetails\": undefined,\n \"dateDiff\": undefined, \"requestDatas\": undefined, \"roleBasedTableList\": undefined\n };\n\n profile = this.utilService.getUserProfile();\n isAdmin = false;\n roleBasedGroupList;\n\n messageTypes = [];\n selectedMsgType;\n isPriority = false;\n dateConnection: any;\n blnQuickLink: boolean;\n textMsg: string;\n page = 1;\n pageSize = 5;\n items = [];\n listConnectionData;\n constructor(private http: HttpClient, readonly router: Router, readonly activatedRoute: ActivatedRoute, public dialog: MatDialog,\n readonly apiService: BackendApiService, readonly utilService: UtilService,\n private translateService: TranslateService,\n readonly requestService: RequestService, readonly toastyService: ToastyService, public datepipe: DatePipe) {\n this.utilService.$showIcon$.next(false);\n }\n ngOnInit() {\n let regionRole = this.utilService.getUserProfile()['roles'].filter(item => item.includes('ACC_PIL'));\n let regionRoleArr = { ...regionRole};\n \n if (regionRoleArr.length > 1) {\n this.userValues.region = ['Europe', 'Mercosur'];\n this.userValues.selectedRegion = \"Europe\";\n } else {\n let region = regionRole.includes('ACC_PIL_EUROPE') ? 'Europe' : 'Mercosur' ;\n \n this.userValues.region = [region];\n this.userValues.selectedRegion = region;\n }\n this.apiService.getlostloginlist().subscribe(res => {\n this.listConnectionData = res;\n console.log(this.listConnectionData.data);\n for (let index = 0; index < this.listConnectionData.data.length; index++) {\n this.listConnectionData.data[index].lastLoginDateTime = this.listConnectionData.data[index].lastLoginDateTime.replace(\"T\", \" \") + \" UTC\";\n }\n console.log(this.listConnectionData.data);\n\n },\n error => {\n console.log(\"error\", error.message);\n });\n }\n clickClose() {\n const pathName = window.location.pathname;\n this.utilService.removeOpenedWindowName(pathName);\n this.utilService.$showIcon$.next(true);\n const openedWindowNameList = this.utilService.getOpenedWindowNameList()\n if (openedWindowNameList.length > 0) {\n this.router.navigate([openedWindowNameList[openedWindowNameList.length - 1]]);\n } else {\n this.router.navigate(['home']);\n }\n }\n // clickExport() {\n // const dialogRef = this.dialog.open(ExportFileComponent, {\n // disableClose: true,\n // width: '600px',\n // data: {'UserID':this.listConnectionData, 'Date connexion':this.listConnectionData, 'Version':this.listConnectionData }\n // });\n // dialogRef.afterClosed().subscribe(result => {\n // if (result) {\n // } else {\n // }\n // });\n // }\n clickExport() {\n if (!this.listConnectionData) {\n return;\n }\n /* pass here the table id */\n // let element = document.getElementById('List');\n let mappedJson = [];\n mappedJson = this.listConnectionData.data.map(item => {\n return {\n User_ID: item.userIpn,\n Connection_Date: item.lastLoginDateTime ? moment(item.lastLoginDateTime).format('ddd MMM DD HH:mm:ss YYYY') : '',\n Version: item.clientVersion\n }\n }\n )\n\n // const ws: XLSX.WorkSheet = XLSX.utils.table_to_sheet(element);\n const ws: XLSX.WorkSheet = XLSX.utils.json_to_sheet(mappedJson);\n\n /* generate workbook and add the worksheet */\n const wb: XLSX.WorkBook = XLSX.utils.book_new();\n // console.log(\"asdasd\", wb, ws);\n XLSX.utils.book_append_sheet(wb, ws, 'Sheet1');\n\n /* save to file */\n XLSX.writeFile(wb, this.fileName);\n\n }\n}\n","export default \".load-text-message {\\n font-size: 14px;\\n text-align: left;\\n color: #00080f;\\n padding-left: 79px;\\n}\\n\\n.overlay {\\n position: fixed;\\n display: block;\\n width: 100%;\\n height: 100%;\\n top: 0;\\n left: 0;\\n background-color: rgba(74, 74, 74, 0.8);\\n z-index: 99999;\\n}\\n\\n.load-spinner {\\n position: absolute;\\n top: 30%;\\n left: 45%;\\n border: 1px solid transparent !important;\\n z-index: 999;\\n}\\n\\n.load-spinner-step {\\n width: 50px;\\n height: 50px;\\n padding-top: 87px;\\n padding-left: 79px;\\n font-size: 14px;\\n color: #7c878e;\\n margin-bottom: 20px;\\n border: 1px solid transparent !important;\\n}\\n\\n@keyframes spinner {\\n to {\\n transform: rotate(360deg);\\n }\\n}\\n\\n@-webkit-keyframes spinner {\\n to {\\n -webkit-transform: rotate(360deg);\\n }\\n}\\n\\n.spinner {\\n min-width: 30px;\\n min-height: 30px;\\n}\\n\\n.spinner:before {\\n content: \\\"\\\";\\n position: absolute;\\n top: 50%;\\n left: 50%;\\n width: 80px;\\n height: 80px;\\n margin-top: -13px;\\n margin-left: -13px;\\n}\\n\\n.spinner:not(:required):before {\\n content: \\\"\\\";\\n border-radius: 50%;\\n border: 10px solid #f3f3f3;\\n border-top-color: #FF5F00;\\n animation: spinner 2s linear infinite;\\n -webkit-animation: spinner 2s linear infinite;\\n}\\n\\n/* New CSS */\\n\\n.spinner {\\n position: relative;\\n width: 30px;\\n height: 30px;\\n}\\n/*# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi91c3Ivc3JjL3NyYy9hcHAvbG9hZC1zcGlubmVyL2xvYWQtc3Bpbm5lci5jb21wb25lbnQuc2NzcyIsInNyYy9hcHAvbG9hZC1zcGlubmVyL2xvYWQtc3Bpbm5lci5jb21wb25lbnQuc2NzcyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQTtFQUNJLGVBQUE7RUFDQSxnQkFBQTtFQUNBLGNBQUE7RUFDQSxrQkFBQTtBQ0NKOztBRENBO0VBQ0ksZUFBQTtFQUNBLGNBQUE7RUFDQSxXQUFBO0VBQ0EsWUFBQTtFQUNBLE1BQUE7RUFDQSxPQUFBO0VBQ0EsdUNBQUE7RUFDQSxjQUFBO0FDRUo7O0FEQ0E7RUFDSSxrQkFBQTtFQUNBLFFBQUE7RUFDQSxTQUFBO0VBQ0Esd0NBQUE7RUFDQSxZQUFBO0FDRUo7O0FEQ0U7RUFFRSxXQUFBO0VBQ0EsWUFBQTtFQUNBLGlCQUFBO0VBQ0Esa0JBQUE7RUFDQSxlQUFBO0VBQ0EsY0FBQTtFQUNBLG1CQUFBO0VBQ0Esd0NBQUE7QUNDSjs7QURFRTtFQUNFO0lBQUkseUJBQUE7RUNFTjtBQUNGOztBREFBO0VBQ0k7SUFBSSxpQ0FBQTtFQ0dOO0FBQ0Y7O0FEREE7RUFDSSxlQUFBO0VBQ0EsZ0JBQUE7QUNHSjs7QURBQTtFQUNJLFdBQUE7RUFDQSxrQkFBQTtFQUNBLFFBQUE7RUFDQSxTQUFBO0VBQ0EsV0FBQTtFQUNBLFlBQUE7RUFDQSxpQkFBQTtFQUNBLGtCQUFBO0FDR0o7O0FEQUE7RUFDSSxXQUFBO0VBQ0Esa0JBQUE7RUFDQSwwQkFBQTtFQUNBLHlCQUFBO0VBQ0EscUNBQUE7RUFDQSw2Q0FBQTtBQ0dKOztBREFBLFlBQUE7O0FBRUE7RUFDSSxrQkFBQTtFQUNBLFdBQUE7RUFDQSxZQUFBO0FDRUoiLCJmaWxlIjoic3JjL2FwcC9sb2FkLXNwaW5uZXIvbG9hZC1zcGlubmVyLmNvbXBvbmVudC5zY3NzIiwic291cmNlc0NvbnRlbnQiOlsiLmxvYWQtdGV4dC1tZXNzYWdle1xuICAgIGZvbnQtc2l6ZTogMTRweDtcbiAgICB0ZXh0LWFsaWduOiBsZWZ0O1xuICAgIGNvbG9yOiAjMDAwODBmO1xuICAgIHBhZGRpbmctbGVmdDogNzlweDtcbn1cbi5vdmVybGF5IHtcbiAgICBwb3NpdGlvbjpmaXhlZDtcbiAgICBkaXNwbGF5OmJsb2NrO1xuICAgIHdpZHRoOjEwMCU7XG4gICAgaGVpZ2h0OjEwMCU7XG4gICAgdG9wOjA7XG4gICAgbGVmdDowO1xuICAgIGJhY2tncm91bmQtY29sb3I6cmdiYSg3NCw3NCw3NCwuOCk7XG4gICAgei1pbmRleDo5OTk5OTtcbiAgfVxuXG4ubG9hZC1zcGlubmVyIHtcbiAgICBwb3NpdGlvbjphYnNvbHV0ZTtcbiAgICB0b3A6IDMwJTtcbiAgICBsZWZ0OiA0NSU7XG4gICAgYm9yZGVyOiAxcHggc29saWQgdHJhbnNwYXJlbnQgIWltcG9ydGFudDtcbiAgICB6LWluZGV4OiA5OTk7XG4gIH1cbiAgXG4gIC5sb2FkLXNwaW5uZXItc3RlcHtcbiAgICAvLyBiYWNrZ3JvdW5kLWltYWdlOiB1cmwoXCIuLi8uLi9hc3NldHMvaW1hZ2VzL3NwbGl0TG9hZGVyLmdpZlwiKTtcbiAgICB3aWR0aDogNTBweDtcbiAgICBoZWlnaHQ6IDUwcHg7XG4gICAgcGFkZGluZy10b3A6IDg3cHg7XG4gICAgcGFkZGluZy1sZWZ0OiA3OXB4O1xuICAgIGZvbnQtc2l6ZTogMTRweDtcbiAgICBjb2xvcjogIzdjODc4ZTtcbiAgICBtYXJnaW4tYm90dG9tOiAyMHB4O1xuICAgIGJvcmRlcjogMXB4IHNvbGlkIHRyYW5zcGFyZW50ICFpbXBvcnRhbnQ7XG4gIH1cblxuICBAa2V5ZnJhbWVzIHNwaW5uZXIge1xuICAgIHRvIHt0cmFuc2Zvcm06IHJvdGF0ZSgzNjBkZWcpO31cbn1cbiBcbkAtd2Via2l0LWtleWZyYW1lcyBzcGlubmVyIHtcbiAgICB0byB7LXdlYmtpdC10cmFuc2Zvcm06IHJvdGF0ZSgzNjBkZWcpO31cbn1cbiBcbi5zcGlubmVyIHtcbiAgICBtaW4td2lkdGg6IDMwcHg7XG4gICAgbWluLWhlaWdodDogMzBweDtcbn1cbiBcbi5zcGlubmVyOmJlZm9yZSB7XG4gICAgY29udGVudDogJyc7XG4gICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgIHRvcDogNTAlO1xuICAgIGxlZnQ6IDUwJTtcbiAgICB3aWR0aDogODBweDtcbiAgICBoZWlnaHQ6IDgwcHg7XG4gICAgbWFyZ2luLXRvcDogLTEzcHg7XG4gICAgbWFyZ2luLWxlZnQ6IC0xM3B4O1xufVxuIFxuLnNwaW5uZXI6bm90KDpyZXF1aXJlZCk6YmVmb3JlIHtcbiAgICBjb250ZW50OiAnJztcbiAgICBib3JkZXItcmFkaXVzOiA1MCU7XG4gICAgYm9yZGVyOiAxMHB4IHNvbGlkICNmM2YzZjM7XG4gICAgYm9yZGVyLXRvcC1jb2xvcjogI0ZGNUYwMDtcbiAgICBhbmltYXRpb246IHNwaW5uZXIgMnMgbGluZWFyIGluZmluaXRlO1xuICAgIC13ZWJraXQtYW5pbWF0aW9uOiBzcGlubmVyIDJzIGxpbmVhciBpbmZpbml0ZTtcbn1cblxuLyogTmV3IENTUyAqL1xuXG4uc3Bpbm5lciB7XG4gICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgIHdpZHRoOiAzMHB4O1xuICAgIGhlaWdodDogMzBweDtcbn0iLCIubG9hZC10ZXh0LW1lc3NhZ2Uge1xuICBmb250LXNpemU6IDE0cHg7XG4gIHRleHQtYWxpZ246IGxlZnQ7XG4gIGNvbG9yOiAjMDAwODBmO1xuICBwYWRkaW5nLWxlZnQ6IDc5cHg7XG59XG5cbi5vdmVybGF5IHtcbiAgcG9zaXRpb246IGZpeGVkO1xuICBkaXNwbGF5OiBibG9jaztcbiAgd2lkdGg6IDEwMCU7XG4gIGhlaWdodDogMTAwJTtcbiAgdG9wOiAwO1xuICBsZWZ0OiAwO1xuICBiYWNrZ3JvdW5kLWNvbG9yOiByZ2JhKDc0LCA3NCwgNzQsIDAuOCk7XG4gIHotaW5kZXg6IDk5OTk5O1xufVxuXG4ubG9hZC1zcGlubmVyIHtcbiAgcG9zaXRpb246IGFic29sdXRlO1xuICB0b3A6IDMwJTtcbiAgbGVmdDogNDUlO1xuICBib3JkZXI6IDFweCBzb2xpZCB0cmFuc3BhcmVudCAhaW1wb3J0YW50O1xuICB6LWluZGV4OiA5OTk7XG59XG5cbi5sb2FkLXNwaW5uZXItc3RlcCB7XG4gIHdpZHRoOiA1MHB4O1xuICBoZWlnaHQ6IDUwcHg7XG4gIHBhZGRpbmctdG9wOiA4N3B4O1xuICBwYWRkaW5nLWxlZnQ6IDc5cHg7XG4gIGZvbnQtc2l6ZTogMTRweDtcbiAgY29sb3I6ICM3Yzg3OGU7XG4gIG1hcmdpbi1ib3R0b206IDIwcHg7XG4gIGJvcmRlcjogMXB4IHNvbGlkIHRyYW5zcGFyZW50ICFpbXBvcnRhbnQ7XG59XG5cbkBrZXlmcmFtZXMgc3Bpbm5lciB7XG4gIHRvIHtcbiAgICB0cmFuc2Zvcm06IHJvdGF0ZSgzNjBkZWcpO1xuICB9XG59XG5ALXdlYmtpdC1rZXlmcmFtZXMgc3Bpbm5lciB7XG4gIHRvIHtcbiAgICAtd2Via2l0LXRyYW5zZm9ybTogcm90YXRlKDM2MGRlZyk7XG4gIH1cbn1cbi5zcGlubmVyIHtcbiAgbWluLXdpZHRoOiAzMHB4O1xuICBtaW4taGVpZ2h0OiAzMHB4O1xufVxuXG4uc3Bpbm5lcjpiZWZvcmUge1xuICBjb250ZW50OiBcIlwiO1xuICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gIHRvcDogNTAlO1xuICBsZWZ0OiA1MCU7XG4gIHdpZHRoOiA4MHB4O1xuICBoZWlnaHQ6IDgwcHg7XG4gIG1hcmdpbi10b3A6IC0xM3B4O1xuICBtYXJnaW4tbGVmdDogLTEzcHg7XG59XG5cbi5zcGlubmVyOm5vdCg6cmVxdWlyZWQpOmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXCI7XG4gIGJvcmRlci1yYWRpdXM6IDUwJTtcbiAgYm9yZGVyOiAxMHB4IHNvbGlkICNmM2YzZjM7XG4gIGJvcmRlci10b3AtY29sb3I6ICNGRjVGMDA7XG4gIGFuaW1hdGlvbjogc3Bpbm5lciAycyBsaW5lYXIgaW5maW5pdGU7XG4gIC13ZWJraXQtYW5pbWF0aW9uOiBzcGlubmVyIDJzIGxpbmVhciBpbmZpbml0ZTtcbn1cblxuLyogTmV3IENTUyAqL1xuLnNwaW5uZXIge1xuICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gIHdpZHRoOiAzMHB4O1xuICBoZWlnaHQ6IDMwcHg7XG59Il19 */\"","import { Component, OnInit } from '@angular/core';\nimport { Subject } from 'rxjs';\n\nimport { LoaderService } from '../services/loader/loader.service';\n\n@Component({\n selector: 'app-load-spinner',\n templateUrl: './load-spinner.component.html',\n styleUrls: ['./load-spinner.component.scss']\n})\nexport class LoadSpinnerComponent implements OnInit {\n isLoading: Subject = this.loaderService.isLoading;\n\n constructor(readonly loaderService: LoaderService) {\n // this.isLoading.subscribe(a => console.log(\"testetst\", a));\n }\n\n ngOnInit() {\n }\n\n}\n","import { NgModule } from '@angular/core';\nimport { A11yModule } from '@angular/cdk/a11y';\nimport { DragDropModule } from '@angular/cdk/drag-drop';\nimport { PortalModule } from '@angular/cdk/portal';\nimport { ScrollingModule } from '@angular/cdk/scrolling';\nimport { CdkStepperModule } from '@angular/cdk/stepper';\nimport { CdkTableModule } from '@angular/cdk/table';\nimport { CdkTreeModule } from '@angular/cdk/tree';\nimport { MatAutocompleteModule } from '@angular/material/autocomplete';\nimport { MatBadgeModule } from '@angular/material/badge';\nimport { MatBottomSheetModule } from '@angular/material/bottom-sheet';\nimport { MatButtonModule } from '@angular/material/button';\nimport { MatButtonToggleModule } from '@angular/material/button-toggle';\nimport { MatCardModule } from '@angular/material/card';\nimport { MatCheckboxModule } from '@angular/material/checkbox';\nimport { MatChipsModule } from '@angular/material/chips';\nimport { MatStepperModule } from '@angular/material/stepper';\nimport { MatDatepickerModule } from '@angular/material/datepicker';\nimport { MatDialogModule } from '@angular/material/dialog';\nimport { MatDividerModule } from '@angular/material/divider';\nimport { MatExpansionModule } from '@angular/material/expansion';\nimport { MatGridListModule } from '@angular/material/grid-list';\nimport { MatIconModule } from '@angular/material/icon';\nimport { MatInputModule } from '@angular/material/input';\nimport { MatListModule } from '@angular/material/list';\nimport { MatMenuModule } from '@angular/material/menu';\nimport { MatNativeDateModule, MatRippleModule } from '@angular/material/core';\nimport { MatPaginatorModule } from '@angular/material/paginator';\nimport { MatProgressBarModule } from '@angular/material/progress-bar';\nimport { MatProgressSpinnerModule } from '@angular/material/progress-spinner';\nimport { MatRadioModule } from '@angular/material/radio';\nimport { MatSelectModule } from '@angular/material/select';\nimport { MatSidenavModule } from '@angular/material/sidenav';\nimport { MatSliderModule } from '@angular/material/slider';\nimport { MatSlideToggleModule } from '@angular/material/slide-toggle';\nimport { MatSnackBarModule } from '@angular/material/snack-bar';\nimport { MatSortModule } from '@angular/material/sort';\nimport { MatTableModule } from '@angular/material/table';\nimport { MatTabsModule } from '@angular/material/tabs';\nimport { MatToolbarModule } from '@angular/material/toolbar';\nimport { MatTooltipModule } from '@angular/material/tooltip';\nimport { MatTreeModule } from '@angular/material/tree';\n\n@NgModule({\n exports: [\n A11yModule,\n CdkStepperModule,\n CdkTableModule,\n CdkTreeModule,\n DragDropModule,\n MatAutocompleteModule,\n MatBadgeModule,\n MatBottomSheetModule,\n MatButtonModule,\n MatButtonToggleModule,\n MatCardModule,\n MatCheckboxModule,\n MatChipsModule,\n MatStepperModule,\n MatDatepickerModule,\n MatDialogModule,\n MatDividerModule,\n MatExpansionModule,\n MatGridListModule,\n MatIconModule,\n MatInputModule,\n MatListModule,\n MatMenuModule,\n MatNativeDateModule,\n MatPaginatorModule,\n MatProgressBarModule,\n MatProgressSpinnerModule,\n MatRadioModule,\n MatRippleModule,\n MatSelectModule,\n MatSidenavModule,\n MatSliderModule,\n MatSlideToggleModule,\n MatSnackBarModule,\n MatSortModule,\n MatTableModule,\n MatTabsModule,\n MatToolbarModule,\n MatTooltipModule,\n MatTreeModule,\n PortalModule,\n ScrollingModule,\n ]\n})\nexport class AppMaterialModule { }\n\n\n/** Copyright 2019 Google LLC. All Rights Reserved.\n Use of this source code is governed by an MIT-style license that\n can be found in the LICENSE file at http://angular.io/license */","export default \"button {\\n font-family: Roboto, \\\"Helvetica Neue\\\", sans-serif;\\n font-size: 12px;\\n}\\n\\n.header-cls {\\n background-color: #333333;\\n color: #ffffff;\\n}\\n\\n.header-title {\\n vertical-align: super;\\n margin-left: 5px;\\n text-transform: uppercase;\\n}\\n\\n.home {\\n padding-top: 5px !important;\\n}\\n\\n.left-panel {\\n float: right;\\n padding-top: 5px;\\n cursor: pointer;\\n}\\n\\n.username {\\n padding: 0 10px !important;\\n}\\n\\n.mat-divider {\\n padding: 5px 0;\\n}\\n/*# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi91c3Ivc3JjL3NyYy9hcHAvbmF2LWJhci9uYXYtYmFyLmNvbXBvbmVudC5zY3NzIiwic3JjL2FwcC9uYXYtYmFyL25hdi1iYXIuY29tcG9uZW50LnNjc3MiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUE7RUFDRSxpREFBQTtFQUNBLGVBQUE7QUNDRjs7QURDQTtFQUNDLHlCQUFBO0VBQ0EsY0FBQTtBQ0VEOztBREFBO0VBQ0UscUJBQUE7RUFDQSxnQkFBQTtFQUNBLHlCQUFBO0FDR0Y7O0FEREE7RUFDRSwyQkFBQTtBQ0lGOztBREZBO0VBQ0UsWUFBQTtFQUNBLGdCQUFBO0VBQ0EsZUFBQTtBQ0tGOztBREhBO0VBQ0UsMEJBQUE7QUNNRjs7QURKQTtFQUNFLGNBQUE7QUNPRiIsImZpbGUiOiJzcmMvYXBwL25hdi1iYXIvbmF2LWJhci5jb21wb25lbnQuc2NzcyIsInNvdXJjZXNDb250ZW50IjpbImJ1dHRvbntcbiAgZm9udC1mYW1pbHk6IFJvYm90byxcIkhlbHZldGljYSBOZXVlXCIsc2Fucy1zZXJpZjtcbiAgZm9udC1zaXplOiAxMnB4O1xufVxuLmhlYWRlci1jbHMge1xuIGJhY2tncm91bmQtY29sb3I6ICMzMzMzMzM7XG4gY29sb3I6ICNmZmZmZmY7XG59XG4uaGVhZGVyLXRpdGxlIHtcbiAgdmVydGljYWwtYWxpZ246IHN1cGVyO1xuICBtYXJnaW4tbGVmdDogNXB4O1xuICB0ZXh0LXRyYW5zZm9ybTogdXBwZXJjYXNlO1xufVxuLmhvbWUge1xuICBwYWRkaW5nLXRvcDogNXB4ICFpbXBvcnRhbnQ7XG59XG4ubGVmdC1wYW5lbCB7XG4gIGZsb2F0OiByaWdodDtcbiAgcGFkZGluZy10b3A6IDVweDtcbiAgY3Vyc29yOiBwb2ludGVyO1xufVxuLnVzZXJuYW1lIHtcbiAgcGFkZGluZzogMCAxMHB4ICFpbXBvcnRhbnQ7XG59XG4ubWF0LWRpdmlkZXIge1xuICBwYWRkaW5nOiA1cHggMDtcbn1cbiIsImJ1dHRvbiB7XG4gIGZvbnQtZmFtaWx5OiBSb2JvdG8sIFwiSGVsdmV0aWNhIE5ldWVcIiwgc2Fucy1zZXJpZjtcbiAgZm9udC1zaXplOiAxMnB4O1xufVxuXG4uaGVhZGVyLWNscyB7XG4gIGJhY2tncm91bmQtY29sb3I6ICMzMzMzMzM7XG4gIGNvbG9yOiAjZmZmZmZmO1xufVxuXG4uaGVhZGVyLXRpdGxlIHtcbiAgdmVydGljYWwtYWxpZ246IHN1cGVyO1xuICBtYXJnaW4tbGVmdDogNXB4O1xuICB0ZXh0LXRyYW5zZm9ybTogdXBwZXJjYXNlO1xufVxuXG4uaG9tZSB7XG4gIHBhZGRpbmctdG9wOiA1cHggIWltcG9ydGFudDtcbn1cblxuLmxlZnQtcGFuZWwge1xuICBmbG9hdDogcmlnaHQ7XG4gIHBhZGRpbmctdG9wOiA1cHg7XG4gIGN1cnNvcjogcG9pbnRlcjtcbn1cblxuLnVzZXJuYW1lIHtcbiAgcGFkZGluZzogMCAxMHB4ICFpbXBvcnRhbnQ7XG59XG5cbi5tYXQtZGl2aWRlciB7XG4gIHBhZGRpbmc6IDVweCAwO1xufSJdfQ== */\"","import { Component, OnInit, Input, OnDestroy } from '@angular/core';\nimport { ActivatedRoute, Params, Router } from \"@angular/router\";\nimport { TranslateService } from '@ngx-translate/core';\nimport { RequestService } from '../services/request/request.service';\nimport { UtilService } from '../services/util/util.service'\nimport { MatDialog } from '@angular/material/dialog';\nimport { BackendApiService } from '../services/backend-api/backend-api.service';\nimport { AlertMessageComponent } from '../component/query/alert-message/alert-message.component';\nimport moment from 'moment';\n\n@Component({\n selector: 'app-nav-bar',\n templateUrl: './nav-bar.component.html',\n styleUrls: ['./nav-bar.component.scss']\n})\nexport class NavBarComponent implements OnInit, OnDestroy {\n supportedLangs = [\n { display: 'FRENCH', value: 'fr' },\n { display: 'ENGLISH', value: 'en' }\n ];\n selectedLang = \"fr\";\n profile = this.utilService.getUserProfile();\n favoriteConnecton: string;\n isTrace = false;\n isAdmin = false;\n\n constructor(readonly utilService: UtilService,\n private translateService: TranslateService, readonly apiService: BackendApiService,\n readonly requestService: RequestService, public dialog: MatDialog,\n readonly router: Router, readonly activatedRoute: ActivatedRoute) { }\n\n ngOnInit() {\n this.utilService.$favoriteConnecton$.subscribe(urlLink => {\n this.favoriteConnecton = urlLink;\n });\n this.selectedLang = this.requestService.getSelectedLang();\n if (this.requestService.getAllRequestData().length > 0) {\n this.utilService.$showQuickLink$.next(true);\n }\n if (sessionStorage.getItem('trace') === '') {\n this.isTrace = true;\n }\n // idp\n // if (this.profile['role-pil-irn6804'] || this.profile['role-pim-irn9207']) {\n // if (this.profile['role-pil-irn6804'].indexOf('pil_admin') > -1) {\n // this.isAdmin = true;\n // } else if (this.profile['role-pim-irn9207'].indexOf('pim_admin') > -1) {\n // this.isAdmin = true;\n // }\n // }\n \n // okta\n if (this.profile['roles'] ) {\n if (this.profile['roles'].indexOf('PIL_ADMIN') > -1) {\n this.isAdmin = true;\n } else if (this.profile['roles'].indexOf('PIM_ADMIN') > -1) {\n this.isAdmin = true;\n }\n }\n }\n\n\n createTrace() {\n sessionStorage.setItem('trace', \"\");\n sessionStorage.setItem('traceCount', \"2\");\n this.isTrace = true;\n }\n\n downloadTrace() {\n // // Get the data from each element on the form.\n // const name = document.getElementById('txtName');\n // const age = document.getElementById('txtAge');\n // const email = document.getElementById('txtEmail');\n // const country = document.getElementById('selCountry');\n // const msg = document.getElementById('msg');\n\n // This variable stores all the data.\n const traceCount = sessionStorage.getItem('traceCount');\n for (let index = Number(traceCount); index >= 0; index--) {\n this.utilService.setTrace(`#H ${moment.utc().format(\"HH:mm:ss\")}`);\n this.utilService.setTrace(`>A< svc_delhdle`);\n this.utilService.setTrace(`>I< un10000${index}@`);\n this.utilService.setTrace(`>O< `);\n if (index === 0) {\n let data = sessionStorage.getItem('trace');\n // '\\r Name: ' + name.value + ' \\r\\n ' +\n // 'Age: ' + age.value + ' \\r\\n ' +\n // 'Email: ' + email.value + ' \\r\\n ' +\n // 'Country: ' + country.value + ' \\r\\n ' +\n // 'Message: ' + msg.value;\n\n // Convert the text to BLOB.\n const textToBLOB = new Blob([data], { type: 'text/plain' });\n const sFileName = 'trace.txt';\t // The file to save the data.\n\n let newLink = document.createElement(\"a\");\n newLink.download = sFileName;\n\n // if (window.webkitURL != null) {\n // newLink.href = window.webkitURL.createObjectURL(textToBLOB);\n // }\n // else {\n newLink.href = window.URL.createObjectURL(textToBLOB);\n newLink.style.display = \"none\";\n document.body.appendChild(newLink);\n // }\n\n newLink.click();\n sessionStorage.removeItem('trace');\n sessionStorage.removeItem('traceCount');\n this.isTrace = false;\n\n }\n }\n }\n\n selectLang(lang: string) {\n // set current lang\n this.selectedLang = lang;\n this.requestService.addLang(this.selectedLang)\n location.reload();\n }\n\n ngOnDestroy() {\n this.utilService.$favoriteConnecton$.unsubscribe();\n }\n\n groupProfile() {\n let rtnValue;\n rtnValue = {\n 'europe': this.profile['roles'].includes('GR_PIL_TOUT') ? \"TOUT\" : \"\",\n 'mercosur': this.profile['roles'].includes('GR_PIM_TOUT') ? \"TOUT\" : \"\"\n }\n return rtnValue;\n }\n\n redirectUrl(page) {\n if (page === 'help') {\n window.open('https://grouperenault.sharepoint.com/sites/Doc_Pilotage/en-US/Pages/Aide%20en%20ligne/Pilotage.aspx', '_blank');\n } else if (page === 'site') {\n window.open('https://grouperenault.sharepoint.com/sites/Doc_Pilotage/en-US/Pages/Site%20Intranet/pilotage_menu.aspx', '_blank')\n } else if (page === 'msg') {\n if (this.favoriteConnecton.toLowerCase() === 'europe') {\n window.open('https://grouperenault.sharepoint.com/sites/Doc_Pilotage/en-US/Pages/Site%20Intranet/messages.aspx', '_blank')\n } else if (this.favoriteConnecton.toLowerCase() === 'mercosur') {\n window.open('https://grouperenault.sharepoint.com/sites/Doc_Pilotage/en-US/Pages/Site%20Intranet/messages_merco.aspx', '_blank')\n }\n }\n }\n\n openDialog() {\n const dialogRef = this.dialog.open(AlertMessageComponent, {\n disableClose: true,\n width: '380px',\n data: { type: 'pilotage' }\n });\n dialogRef.afterClosed().subscribe(result => {\n if (result) {\n }\n });\n }\n\n setOpenedWindow(windowPathName) {\n this.utilService.addOpenedWindowName(windowPathName);\n }\n}\n","import { Directive, OnInit, Renderer2, Input, ElementRef } from \"@angular/core\";\n\n@Directive({\n selector: \"[resizeColumn]\"\n})\nexport class ResizeColumnDirective implements OnInit {\n @Input(\"resizeColumn\") resizable: boolean;\n\n @Input() index: number;\n\n private startX: number;\n\n private startWidth: number;\n\n private column: HTMLElement;\n\n private table: HTMLElement;\n\n private pressed: boolean;\n\n private columnWidthDetails = [];\n\n private tableOffsetWidth: number;\n\n private colIndex: number\n tableStartOffsetWidth: number;\n\n constructor(private renderer: Renderer2, private el: ElementRef) {\n this.column = this.el.nativeElement;\n }\n\n ngOnInit() {\n if (this.resizable) {\n if (this.column['cellIndex'] !== 0) {\n const row = this.renderer.parentNode(this.column);\n const thead = this.renderer.parentNode(row);\n this.table = this.renderer.parentNode(thead);\n\n this.tableStartOffsetWidth = this.table.offsetWidth;\n\n const resizer = this.renderer.createElement(\"th\");\n this.renderer.addClass(resizer, \"resize-holder\");\n this.renderer.appendChild(this.column, resizer);\n this.renderer.listen(resizer, \"mousedown\", this.onMouseDown);\n this.renderer.listen(this.table, \"mousemove\", this.onMouseMove);\n this.renderer.listen(\"document\", \"mouseup\", this.onMouseUp);\n }\n }\n }\n\n onMouseDown = (event: MouseEvent) => {\n this.pressed = true;\n this.startX = event.pageX;\n this.startWidth = this.column.offsetWidth;\n this.tableOffsetWidth = this.table.offsetWidth;\n this.colIndex = this.column['cellIndex'];\n const offset = 100;\n\n\n for (let index = 0; index < 100; index++) {\n // const element = array[index];\n\n }\n\n if (this.pressed && event.buttons) {\n this.renderer.addClass(this.table, \"resizing\");\n // Calculate width of column\n let width =\n this.startWidth + (event.pageX - this.startX - offset);\n\n\n // const tableCells = Array.from(this.table.querySelectorAll(\".mat-row\")).map(\n // (row: any) => row.querySelectorAll(\".mat-cell\").item(this.index)\n // );\n\n // // Set table header width\n // if (this.column['cellIndex'] !== 0) {\n // this.renderer.setStyle(this.column, \"width\", `${width}px`);\n // }\n\n // // // Set table cells width\n // // for (const cell of tableCells) {\n // // if (cell.cellIndex !== 0) {\n // // this.renderer.setStyle(cell, \"width\", `${width}px`);\n // // }\n // // }\n }\n };\n\n onMouseMove = (event: MouseEvent) => {\n const offset = 100;\n if (this.pressed && event.buttons) {\n this.renderer.addClass(this.column, \"resizing\");\n\n // Calculate width of column\n let width =\n this.startWidth + (event.pageX - this.startX);\n\n // const tableCells = Array.from(this.table.querySelectorAll(\".mat-row\")).map(\n // (row: any) => row.querySelectorAll(\".mat-cell\").item(this.index)\n // );\n\n // Set table header width\n if (this.column['cellIndex'] === this.colIndex) {\n this.renderer.setStyle(this.column, \"width\", `${width}px`);\n // console.log(\"this.column.offsetWidth < width\", this.startWidth, width, this.column['cellIndex'])\n if (this.startWidth < width) {\n this.renderer.setStyle(this.table, \"width\", `${this.tableOffsetWidth + (width - this.startWidth)}px`);\n } else if (this.tableStartOffsetWidth < this.tableOffsetWidth - (this.startWidth - width)) {\n this.renderer.setStyle(this.table, \"width\", `${this.tableOffsetWidth - (this.startWidth - width)}px`);\n }\n }\n\n // // Set table cells width\n // for (const cell of tableCells) {\n // if (cell.cellIndex !== 0) {\n // this.renderer.setStyle(cell, \"width\", `${width}px`);\n // }\n // }\n }\n };\n\n onMouseUp = (event: MouseEvent) => {\n if (this.pressed) {\n this.pressed = false;\n this.renderer.removeClass(this.table, \"resizing\");\n }\n };\n}\n","import { Injectable } from '@angular/core';\nimport { ActivatedRouteSnapshot, CanActivate, Router, RouterStateSnapshot } from '@angular/router';\nimport { OAuthService } from 'angular-oauth2-oidc';\nimport { ToastyService } from 'ng2-toasty';\n\n@Injectable({\n providedIn: 'root'\n})\nexport class AuthGuard implements CanActivate {\n\n constructor(private oAuthService: OAuthService, private router: Router, readonly toastyService: ToastyService) { }\n\n canActivate(route: ActivatedRouteSnapshot, state: RouterStateSnapshot): boolean {\n // if (this.oauthService.hasValidIdToken()) {\n // return true;\n // }\n\n // this.router.navigate(['']);\n // return false;\n let returnFlag:boolean;\n const identity = this.oAuthService.getIdentityClaims();\n\n // identity is available\n if (identity) {\n // get the current time and check if identity is expired\n const now = new Date().getTime();\n const expired = now > identity['exp'] * 1000;\n\n // user is not expired\n if (!expired) {\n // console.log('not expired', expired, location.pathname, identity['exp'] * 1000, identity);\n returnFlag= true;\n }\n\n // console.log('expired', expired, location.pathname, identity['exp'] * 1000, identity);\n } else {\n // this.toastyService.warning('Unauthorized user');\n this.router.navigate(['']);\n }\n\n\n returnFlag = true;\n\n return returnFlag;\n }\n}\n","import { Injectable } from '@angular/core';\nimport { HttpClient, HttpHeaders, HttpParams } from '@angular/common/http';\nimport { Observable } from 'rxjs';\nimport { OAuthService } from 'angular-oauth2-oidc';\n\nimport { environment } from '../../../environments/environment.prod';\n@Injectable({\n providedIn: 'root'\n})\nexport class BackendApiService {\n\n apiBaseURL: string;\n apisBaseURL: string;\n idpVersion;\n apiLastLoginURL: string;\n uploadURL: string;\n constructor(readonly http: HttpClient, readonly oauthService: OAuthService) {\n this.apiLastLoginURL = window.location.origin + \"/pil-connection/\";\n if ((window.location.hostname.indexOf('pil.app.renault.com') !== -1) ||\n (window.location.hostname.indexOf('pil.app.renault.com') !== -1)) {\n // OPE\n this.idpVersion = 'ope';\n this.apiBaseURL = environment.idp.prod[this.idpVersion].apiURL;\n this.apisBaseURL = environment.idp.prod[this.idpVersion].apisBaseUrl;\n // this.apiLastLoginURL = \"https://pil-app.gke2.dev.gcp.renault.com/pil-connection/\";\n } else if (window.location.hostname.indexOf('pil-app.gke2.int.gcp.renault.com') !== -1) {\n // RE7\n this.idpVersion = 're7';\n this.apiBaseURL = environment.idp.prod[this.idpVersion].apiURL;\n this.apisBaseURL = environment.idp.prod[this.idpVersion].apisBaseUrl;\n // this.apiLastLoginURL = \"https://pil-app.gke2.int.gcp.renault.com/pil-connection/\";\n this.uploadURL = \"https://pil-app.gke2.int.gcp.renault.com/pil-api-s3/uploadfile\";\n } else if (window.location.hostname.indexOf('pil-app.gke2.dev.gcp.renault.com') !== -1) {\n // DEV\n this.idpVersion = 'dev';\n this.apiBaseURL = environment.idp.prod[this.idpVersion].apiURL;\n this.apisBaseURL = environment.idp.prod[this.idpVersion].apisBaseUrl;\n this.uploadURL = \"https://pil-app.gke2.dev.gcp.renault.com/pil-api-s3/uploadfile\";\n this.apiLastLoginURL = \"https://pil-app.gke2.dev.gcp.renault.com/pil-connection/\";\n } else {\n // LOCALHOST\n this.idpVersion = 're7';\n this.apiBaseURL = environment.idp.prod[this.idpVersion].apiURL;\n this.apisBaseURL = environment.idp.prod[this.idpVersion].apisBaseUrl;\n this.uploadURL = \"https://pil-app.gke2.int.gcp.renault.com/pil-api-s3/uploadfile\";\n this.apiLastLoginURL = \"https://pil-app.gke2.int.gcp.renault.com/pil-connection/\";\n // this.uploadURL = \"https://pil-app.gke2.dev.gcp.renault.com/pil-api-s3/uploadfile\";\n // this.apiLastLoginURL = \"https://pil-app.gke2.dev.gcp.renault.com/pil-connection/\";\n }\n }\n\n headers() {\n return new HttpHeaders({\n 'Content-Type': 'application/json',\n 'Cache-Control': 'no-cache',\n 'Pragma': 'no-cache',\n 'apikey': environment.idp.prod[this.idpVersion].apikey,\n 'authorization': `Bearer ${sessionStorage.getItem('access_token')}`\n });\n }\n\n headers4FileUpload() {\n return new HttpHeaders({\n 'Cache-Control': 'no-cache',\n 'Pragma': 'no-cache',\n 'apikey': environment.idp.prod[this.idpVersion].apikey,\n 'authorization': `Bearer ${sessionStorage.getItem('access_token')}`\n });\n }\n\n\n public getChoiceTableDetails(queryParam: any): Observable {\n // return this.http.post(this.apiBaseURL + 'svc_objliste', queryParam, { headers: headers });\n // return this.http.post(this.apiBaseURL + 'object-lists', queryParam, { headers: this.headers() });\n let queryParam1 = \n { \n \"payLoad\": {\n input: queryParam.input, \n region: queryParam.region\n },\n \"endPoint\": this.apisBaseURL + 'object-lists', \n \"jwtToken\": \"eyJraWQiOiJEVXBTQWFUREtQRHphS19mV0NJcldxUUVOVTQ4bzM2ZXR5ZlV5eG9PaFY0IiwiYWxnIjoiUlMyNTYifQ.eyJ2ZXIiOjEsImp0aSI6IkFULkY0VTUwV19fY2tfVGpLU3FOdHMxa09DeWx1Y0xnNXBXcnp5MkRlelZhQjQiLCJpc3MiOiJodHRwczovL3Nzby11YXQucmVuYXVsdC5jb20vb2F1dGgyL2F1c3R3b2VzaGJDa1BKeXcxNDE2IiwiYXVkIjoiaHR0cHM6Ly9hcGlzLnJlbmF1bHQuY29tIiwiaWF0IjoxNjk3Njk4NjMyLCJleHAiOjE2OTc3MDIyMzIsImNpZCI6Imlybi03NjY1OF91YXRfcGtjZV9qZ2F3Z2d4cXViMmEiLCJ1aWQiOiIwMHU2c3p4a3JwQ01uNmR6VjQxNyIsInNjcCI6WyJhcGlzLmRlZmF1bHQiLCJsZWdhY3kiLCJhbGxpYW5jZV9wcm9maWxlIiwib3BlbmlkIl0sImF1dGhfdGltZSI6MTY5NzY5MjEwMCwiYXBwcm92ZXIiOiJSQU5KQU4gUmFqZWV2IiwibGFzdE5hbWUiOiJWZWVyYXJhZ2F2YW4iLCJzdWIiOiJ6MDQwNzgzIiwicGVyc29uYWxVbmlxdWVJZCI6IjAwMDBGVkI0IiwicHJlZmVycmVkTGFuZ3VhZ2UiOiJlbiIsImFwcHJvdmVyTWFpbCI6IlJhamVldi5SYW5qYW5Acm50YmNpLmNvbSIsIm1haWwiOiJzcmltYXRoaS52ZWVyYXJhZ2F2YW4tZXh0ZXJuQHJudGJjaS5jb20iLCJpcm4iOiJJUk4tNzY2NTgiLCJkaXNwbGF5TmFtZSI6IlZFRVJBUkFHQVZBTiBTcmltYXRoaSIsImNvc3RDZW50ZXIiOiJRUTEzMDA3IiwiYXBwcm92ZXJJZCI6InowMDAzMzMiLCJyb2xlcyI6WyJQSUxfQURNSU4iLCJQSUxfQ1VNVUwiLCJQSUxfRFVNUCIsIlBJTF9FWEVDX1JFUSIsIlBJTF9PQkpfU1lTVCIsIlBJTF9TQVZFX1BVQkxJQyIsIlBJTF9UT1VURVNfUE9QIiwiQUNDX1BJTF9FVVJPUEUiLCJBQ0NfUElMX01FUkNPU1VSIiwiR1JfUElMX1RPVVQiLCJQSU1fQ1VNVUwiLCJQSU1fRFVNUCIsIlBJTV9FWEVDX1JFUSIsIlBJTV9PQkpfU1lTVCIsIlBJTV9TQVZFX1BVQkxJQyIsIlBJTV9UT1VURVNfUE9QIiwiR1JfUElNX1RPVVQiXSwibGFuZ3VhZ2UiOiJlbl9JTiIsImxvZ2luIjoiejA0MDc4MyIsImNlcnQtdWlkIjoiIiwiZmlyc3ROYW1lIjoiU3JpbWF0aGkiLCJwb3N0T2ZmaWNlQm94IjoiSU5NQUFNSEEwMDAiLCJjb3VudHJ5Q29kZSI6IklOIiwicGVyaW1ldGVyIjoiTm9uZSIsImNvbXBhbnkiOiIwNzc0IiwidXNlclR5cGUiOiJCMkVfQ29udHJhY3RvciIsInBlcnNvblR5cGUiOiJjYXRwcmp2In0.JcpmurZxwI0B60aBbI8mDu2DVwKVbDleRVDu8_xs4hqXVWA6ypCXvAk5v9NLIhvwubPySBThPO1WdPJckvSyp9Rri3Exe75Jsw4RMB5nyd87QXA8Hm87Uv2vlLFtdo7qQEmloUoFUV0ya-KxAbUF6-KPqchGtKUCv7Z9IsPErSzjy2ldF2SC6FrOK-jJ-CDjo7vPOQMRRwm7k9xAnQTFhlyWwNuUYtQfFafqGaQ8SQN02sPEpwyyLlPASv2AvJ2_grANBfaiwEx2wLfM4BsksWbf_O06Uo5myyggztY5rw7sYpPtpa9NdC9TdNbDO1bELrr0tkkSGLDnwFfbTR-H5Q\"\n };\n return this.http.post(this.apiBaseURL, queryParam1, { headers: this.headers()});\n }\n\n public getMessageObjectList(queryParam: any): Observable {\n // return this.http.post(this.apiBaseURL + 'svc_objliste', queryParam, { headers: headers });\n // return this.http.post(this.apiBaseURL + 'object-lists', queryParam, { headers: this.headers() });\n let queryParam1 = \n { \n \"payLoad\": {\n input: queryParam.input, \n region: queryParam.region\n }, \n \"endPoint\": this.apisBaseURL + 'object-lists', \n \"jwtToken\": \"eyJraWQiOiJEVXBTQWFUREtQRHphS19mV0NJcldxUUVOVTQ4bzM2ZXR5ZlV5eG9PaFY0IiwiYWxnIjoiUlMyNTYifQ.eyJ2ZXIiOjEsImp0aSI6IkFULkY0VTUwV19fY2tfVGpLU3FOdHMxa09DeWx1Y0xnNXBXcnp5MkRlelZhQjQiLCJpc3MiOiJodHRwczovL3Nzby11YXQucmVuYXVsdC5jb20vb2F1dGgyL2F1c3R3b2VzaGJDa1BKeXcxNDE2IiwiYXVkIjoiaHR0cHM6Ly9hcGlzLnJlbmF1bHQuY29tIiwiaWF0IjoxNjk3Njk4NjMyLCJleHAiOjE2OTc3MDIyMzIsImNpZCI6Imlybi03NjY1OF91YXRfcGtjZV9qZ2F3Z2d4cXViMmEiLCJ1aWQiOiIwMHU2c3p4a3JwQ01uNmR6VjQxNyIsInNjcCI6WyJhcGlzLmRlZmF1bHQiLCJsZWdhY3kiLCJhbGxpYW5jZV9wcm9maWxlIiwib3BlbmlkIl0sImF1dGhfdGltZSI6MTY5NzY5MjEwMCwiYXBwcm92ZXIiOiJSQU5KQU4gUmFqZWV2IiwibGFzdE5hbWUiOiJWZWVyYXJhZ2F2YW4iLCJzdWIiOiJ6MDQwNzgzIiwicGVyc29uYWxVbmlxdWVJZCI6IjAwMDBGVkI0IiwicHJlZmVycmVkTGFuZ3VhZ2UiOiJlbiIsImFwcHJvdmVyTWFpbCI6IlJhamVldi5SYW5qYW5Acm50YmNpLmNvbSIsIm1haWwiOiJzcmltYXRoaS52ZWVyYXJhZ2F2YW4tZXh0ZXJuQHJudGJjaS5jb20iLCJpcm4iOiJJUk4tNzY2NTgiLCJkaXNwbGF5TmFtZSI6IlZFRVJBUkFHQVZBTiBTcmltYXRoaSIsImNvc3RDZW50ZXIiOiJRUTEzMDA3IiwiYXBwcm92ZXJJZCI6InowMDAzMzMiLCJyb2xlcyI6WyJQSUxfQURNSU4iLCJQSUxfQ1VNVUwiLCJQSUxfRFVNUCIsIlBJTF9FWEVDX1JFUSIsIlBJTF9PQkpfU1lTVCIsIlBJTF9TQVZFX1BVQkxJQyIsIlBJTF9UT1VURVNfUE9QIiwiQUNDX1BJTF9FVVJPUEUiLCJBQ0NfUElMX01FUkNPU1VSIiwiR1JfUElMX1RPVVQiLCJQSU1fQ1VNVUwiLCJQSU1fRFVNUCIsIlBJTV9FWEVDX1JFUSIsIlBJTV9PQkpfU1lTVCIsIlBJTV9TQVZFX1BVQkxJQyIsIlBJTV9UT1VURVNfUE9QIiwiR1JfUElNX1RPVVQiXSwibGFuZ3VhZ2UiOiJlbl9JTiIsImxvZ2luIjoiejA0MDc4MyIsImNlcnQtdWlkIjoiIiwiZmlyc3ROYW1lIjoiU3JpbWF0aGkiLCJwb3N0T2ZmaWNlQm94IjoiSU5NQUFNSEEwMDAiLCJjb3VudHJ5Q29kZSI6IklOIiwicGVyaW1ldGVyIjoiTm9uZSIsImNvbXBhbnkiOiIwNzc0IiwidXNlclR5cGUiOiJCMkVfQ29udHJhY3RvciIsInBlcnNvblR5cGUiOiJjYXRwcmp2In0.JcpmurZxwI0B60aBbI8mDu2DVwKVbDleRVDu8_xs4hqXVWA6ypCXvAk5v9NLIhvwubPySBThPO1WdPJckvSyp9Rri3Exe75Jsw4RMB5nyd87QXA8Hm87Uv2vlLFtdo7qQEmloUoFUV0ya-KxAbUF6-KPqchGtKUCv7Z9IsPErSzjy2ldF2SC6FrOK-jJ-CDjo7vPOQMRRwm7k9xAnQTFhlyWwNuUYtQfFafqGaQ8SQN02sPEpwyyLlPASv2AvJ2_grANBfaiwEx2wLfM4BsksWbf_O06Uo5myyggztY5rw7sYpPtpa9NdC9TdNbDO1bELrr0tkkSGLDnwFfbTR-H5Q\"\n };\n return this.http.post(this.apiBaseURL, queryParam1, { headers: this.headers()});\n \n }\n\n public getMessageObject(queryParam: any): Observable {\n // return this.http.post(this.apiBaseURL + 'svc_objliste', queryParam, { headers: headers });\n // return this.http.post(this.apiBaseURL + 'getting-objects', queryParam, { headers: this.headers() });\n let queryParam1 = \n { \n \"payLoad\": {\n input: queryParam.input, \n region: queryParam.region\n },\n \"endPoint\": this.apisBaseURL + 'getting-objects', \n \"jwtToken\": \"eyJraWQiOiJEVXBTQWFUREtQRHphS19mV0NJcldxUUVOVTQ4bzM2ZXR5ZlV5eG9PaFY0IiwiYWxnIjoiUlMyNTYifQ.eyJ2ZXIiOjEsImp0aSI6IkFULkY0VTUwV19fY2tfVGpLU3FOdHMxa09DeWx1Y0xnNXBXcnp5MkRlelZhQjQiLCJpc3MiOiJodHRwczovL3Nzby11YXQucmVuYXVsdC5jb20vb2F1dGgyL2F1c3R3b2VzaGJDa1BKeXcxNDE2IiwiYXVkIjoiaHR0cHM6Ly9hcGlzLnJlbmF1bHQuY29tIiwiaWF0IjoxNjk3Njk4NjMyLCJleHAiOjE2OTc3MDIyMzIsImNpZCI6Imlybi03NjY1OF91YXRfcGtjZV9qZ2F3Z2d4cXViMmEiLCJ1aWQiOiIwMHU2c3p4a3JwQ01uNmR6VjQxNyIsInNjcCI6WyJhcGlzLmRlZmF1bHQiLCJsZWdhY3kiLCJhbGxpYW5jZV9wcm9maWxlIiwib3BlbmlkIl0sImF1dGhfdGltZSI6MTY5NzY5MjEwMCwiYXBwcm92ZXIiOiJSQU5KQU4gUmFqZWV2IiwibGFzdE5hbWUiOiJWZWVyYXJhZ2F2YW4iLCJzdWIiOiJ6MDQwNzgzIiwicGVyc29uYWxVbmlxdWVJZCI6IjAwMDBGVkI0IiwicHJlZmVycmVkTGFuZ3VhZ2UiOiJlbiIsImFwcHJvdmVyTWFpbCI6IlJhamVldi5SYW5qYW5Acm50YmNpLmNvbSIsIm1haWwiOiJzcmltYXRoaS52ZWVyYXJhZ2F2YW4tZXh0ZXJuQHJudGJjaS5jb20iLCJpcm4iOiJJUk4tNzY2NTgiLCJkaXNwbGF5TmFtZSI6IlZFRVJBUkFHQVZBTiBTcmltYXRoaSIsImNvc3RDZW50ZXIiOiJRUTEzMDA3IiwiYXBwcm92ZXJJZCI6InowMDAzMzMiLCJyb2xlcyI6WyJQSUxfQURNSU4iLCJQSUxfQ1VNVUwiLCJQSUxfRFVNUCIsIlBJTF9FWEVDX1JFUSIsIlBJTF9PQkpfU1lTVCIsIlBJTF9TQVZFX1BVQkxJQyIsIlBJTF9UT1VURVNfUE9QIiwiQUNDX1BJTF9FVVJPUEUiLCJBQ0NfUElMX01FUkNPU1VSIiwiR1JfUElMX1RPVVQiLCJQSU1fQ1VNVUwiLCJQSU1fRFVNUCIsIlBJTV9FWEVDX1JFUSIsIlBJTV9PQkpfU1lTVCIsIlBJTV9TQVZFX1BVQkxJQyIsIlBJTV9UT1VURVNfUE9QIiwiR1JfUElNX1RPVVQiXSwibGFuZ3VhZ2UiOiJlbl9JTiIsImxvZ2luIjoiejA0MDc4MyIsImNlcnQtdWlkIjoiIiwiZmlyc3ROYW1lIjoiU3JpbWF0aGkiLCJwb3N0T2ZmaWNlQm94IjoiSU5NQUFNSEEwMDAiLCJjb3VudHJ5Q29kZSI6IklOIiwicGVyaW1ldGVyIjoiTm9uZSIsImNvbXBhbnkiOiIwNzc0IiwidXNlclR5cGUiOiJCMkVfQ29udHJhY3RvciIsInBlcnNvblR5cGUiOiJjYXRwcmp2In0.JcpmurZxwI0B60aBbI8mDu2DVwKVbDleRVDu8_xs4hqXVWA6ypCXvAk5v9NLIhvwubPySBThPO1WdPJckvSyp9Rri3Exe75Jsw4RMB5nyd87QXA8Hm87Uv2vlLFtdo7qQEmloUoFUV0ya-KxAbUF6-KPqchGtKUCv7Z9IsPErSzjy2ldF2SC6FrOK-jJ-CDjo7vPOQMRRwm7k9xAnQTFhlyWwNuUYtQfFafqGaQ8SQN02sPEpwyyLlPASv2AvJ2_grANBfaiwEx2wLfM4BsksWbf_O06Uo5myyggztY5rw7sYpPtpa9NdC9TdNbDO1bELrr0tkkSGLDnwFfbTR-H5Q\"\n };\n return this.http.post(this.apiBaseURL, queryParam1, { headers: this.headers()});\n \n }\n\n public getExecuteData(queryParam: any): Observable {\n // return this.http.post(this.apiBaseURL + 'results-lines', queryParam, { headers: this.headers() });\n let queryParam1 = \n { \n \"payLoad\": {\n inputLists: queryParam.inputLists, \n region: queryParam.region\n },\n \"endPoint\": this.apisBaseURL + 'results-lines', \n \"jwtToken\": \"eyJraWQiOiJEVXBTQWFUREtQRHphS19mV0NJcldxUUVOVTQ4bzM2ZXR5ZlV5eG9PaFY0IiwiYWxnIjoiUlMyNTYifQ.eyJ2ZXIiOjEsImp0aSI6IkFULkY0VTUwV19fY2tfVGpLU3FOdHMxa09DeWx1Y0xnNXBXcnp5MkRlelZhQjQiLCJpc3MiOiJodHRwczovL3Nzby11YXQucmVuYXVsdC5jb20vb2F1dGgyL2F1c3R3b2VzaGJDa1BKeXcxNDE2IiwiYXVkIjoiaHR0cHM6Ly9hcGlzLnJlbmF1bHQuY29tIiwiaWF0IjoxNjk3Njk4NjMyLCJleHAiOjE2OTc3MDIyMzIsImNpZCI6Imlybi03NjY1OF91YXRfcGtjZV9qZ2F3Z2d4cXViMmEiLCJ1aWQiOiIwMHU2c3p4a3JwQ01uNmR6VjQxNyIsInNjcCI6WyJhcGlzLmRlZmF1bHQiLCJsZWdhY3kiLCJhbGxpYW5jZV9wcm9maWxlIiwib3BlbmlkIl0sImF1dGhfdGltZSI6MTY5NzY5MjEwMCwiYXBwcm92ZXIiOiJSQU5KQU4gUmFqZWV2IiwibGFzdE5hbWUiOiJWZWVyYXJhZ2F2YW4iLCJzdWIiOiJ6MDQwNzgzIiwicGVyc29uYWxVbmlxdWVJZCI6IjAwMDBGVkI0IiwicHJlZmVycmVkTGFuZ3VhZ2UiOiJlbiIsImFwcHJvdmVyTWFpbCI6IlJhamVldi5SYW5qYW5Acm50YmNpLmNvbSIsIm1haWwiOiJzcmltYXRoaS52ZWVyYXJhZ2F2YW4tZXh0ZXJuQHJudGJjaS5jb20iLCJpcm4iOiJJUk4tNzY2NTgiLCJkaXNwbGF5TmFtZSI6IlZFRVJBUkFHQVZBTiBTcmltYXRoaSIsImNvc3RDZW50ZXIiOiJRUTEzMDA3IiwiYXBwcm92ZXJJZCI6InowMDAzMzMiLCJyb2xlcyI6WyJQSUxfQURNSU4iLCJQSUxfQ1VNVUwiLCJQSUxfRFVNUCIsIlBJTF9FWEVDX1JFUSIsIlBJTF9PQkpfU1lTVCIsIlBJTF9TQVZFX1BVQkxJQyIsIlBJTF9UT1VURVNfUE9QIiwiQUNDX1BJTF9FVVJPUEUiLCJBQ0NfUElMX01FUkNPU1VSIiwiR1JfUElMX1RPVVQiLCJQSU1fQ1VNVUwiLCJQSU1fRFVNUCIsIlBJTV9FWEVDX1JFUSIsIlBJTV9PQkpfU1lTVCIsIlBJTV9TQVZFX1BVQkxJQyIsIlBJTV9UT1VURVNfUE9QIiwiR1JfUElNX1RPVVQiXSwibGFuZ3VhZ2UiOiJlbl9JTiIsImxvZ2luIjoiejA0MDc4MyIsImNlcnQtdWlkIjoiIiwiZmlyc3ROYW1lIjoiU3JpbWF0aGkiLCJwb3N0T2ZmaWNlQm94IjoiSU5NQUFNSEEwMDAiLCJjb3VudHJ5Q29kZSI6IklOIiwicGVyaW1ldGVyIjoiTm9uZSIsImNvbXBhbnkiOiIwNzc0IiwidXNlclR5cGUiOiJCMkVfQ29udHJhY3RvciIsInBlcnNvblR5cGUiOiJjYXRwcmp2In0.JcpmurZxwI0B60aBbI8mDu2DVwKVbDleRVDu8_xs4hqXVWA6ypCXvAk5v9NLIhvwubPySBThPO1WdPJckvSyp9Rri3Exe75Jsw4RMB5nyd87QXA8Hm87Uv2vlLFtdo7qQEmloUoFUV0ya-KxAbUF6-KPqchGtKUCv7Z9IsPErSzjy2ldF2SC6FrOK-jJ-CDjo7vPOQMRRwm7k9xAnQTFhlyWwNuUYtQfFafqGaQ8SQN02sPEpwyyLlPASv2AvJ2_grANBfaiwEx2wLfM4BsksWbf_O06Uo5myyggztY5rw7sYpPtpa9NdC9TdNbDO1bELrr0tkkSGLDnwFfbTR-H5Q\"\n };\n return this.http.post(this.apiBaseURL, queryParam1, { headers: this.headers()});\n \n }\n\n public getDetailExecuteData(queryParam: any): Observable {\n // return this.http.post(this.apiBaseURL + 'results-vehicle-lists', queryParam, { headers: this.headers() });\n let queryParam1 = \n { \n \"payLoad\": {\n inputLists: queryParam.inputLists, \n region: queryParam.region\n },\n \"endPoint\": this.apisBaseURL + 'results-vehicle-lists', \n \"jwtToken\": \"eyJraWQiOiJEVXBTQWFUREtQRHphS19mV0NJcldxUUVOVTQ4bzM2ZXR5ZlV5eG9PaFY0IiwiYWxnIjoiUlMyNTYifQ.eyJ2ZXIiOjEsImp0aSI6IkFULkY0VTUwV19fY2tfVGpLU3FOdHMxa09DeWx1Y0xnNXBXcnp5MkRlelZhQjQiLCJpc3MiOiJodHRwczovL3Nzby11YXQucmVuYXVsdC5jb20vb2F1dGgyL2F1c3R3b2VzaGJDa1BKeXcxNDE2IiwiYXVkIjoiaHR0cHM6Ly9hcGlzLnJlbmF1bHQuY29tIiwiaWF0IjoxNjk3Njk4NjMyLCJleHAiOjE2OTc3MDIyMzIsImNpZCI6Imlybi03NjY1OF91YXRfcGtjZV9qZ2F3Z2d4cXViMmEiLCJ1aWQiOiIwMHU2c3p4a3JwQ01uNmR6VjQxNyIsInNjcCI6WyJhcGlzLmRlZmF1bHQiLCJsZWdhY3kiLCJhbGxpYW5jZV9wcm9maWxlIiwib3BlbmlkIl0sImF1dGhfdGltZSI6MTY5NzY5MjEwMCwiYXBwcm92ZXIiOiJSQU5KQU4gUmFqZWV2IiwibGFzdE5hbWUiOiJWZWVyYXJhZ2F2YW4iLCJzdWIiOiJ6MDQwNzgzIiwicGVyc29uYWxVbmlxdWVJZCI6IjAwMDBGVkI0IiwicHJlZmVycmVkTGFuZ3VhZ2UiOiJlbiIsImFwcHJvdmVyTWFpbCI6IlJhamVldi5SYW5qYW5Acm50YmNpLmNvbSIsIm1haWwiOiJzcmltYXRoaS52ZWVyYXJhZ2F2YW4tZXh0ZXJuQHJudGJjaS5jb20iLCJpcm4iOiJJUk4tNzY2NTgiLCJkaXNwbGF5TmFtZSI6IlZFRVJBUkFHQVZBTiBTcmltYXRoaSIsImNvc3RDZW50ZXIiOiJRUTEzMDA3IiwiYXBwcm92ZXJJZCI6InowMDAzMzMiLCJyb2xlcyI6WyJQSUxfQURNSU4iLCJQSUxfQ1VNVUwiLCJQSUxfRFVNUCIsIlBJTF9FWEVDX1JFUSIsIlBJTF9PQkpfU1lTVCIsIlBJTF9TQVZFX1BVQkxJQyIsIlBJTF9UT1VURVNfUE9QIiwiQUNDX1BJTF9FVVJPUEUiLCJBQ0NfUElMX01FUkNPU1VSIiwiR1JfUElMX1RPVVQiLCJQSU1fQ1VNVUwiLCJQSU1fRFVNUCIsIlBJTV9FWEVDX1JFUSIsIlBJTV9PQkpfU1lTVCIsIlBJTV9TQVZFX1BVQkxJQyIsIlBJTV9UT1VURVNfUE9QIiwiR1JfUElNX1RPVVQiXSwibGFuZ3VhZ2UiOiJlbl9JTiIsImxvZ2luIjoiejA0MDc4MyIsImNlcnQtdWlkIjoiIiwiZmlyc3ROYW1lIjoiU3JpbWF0aGkiLCJwb3N0T2ZmaWNlQm94IjoiSU5NQUFNSEEwMDAiLCJjb3VudHJ5Q29kZSI6IklOIiwicGVyaW1ldGVyIjoiTm9uZSIsImNvbXBhbnkiOiIwNzc0IiwidXNlclR5cGUiOiJCMkVfQ29udHJhY3RvciIsInBlcnNvblR5cGUiOiJjYXRwcmp2In0.JcpmurZxwI0B60aBbI8mDu2DVwKVbDleRVDu8_xs4hqXVWA6ypCXvAk5v9NLIhvwubPySBThPO1WdPJckvSyp9Rri3Exe75Jsw4RMB5nyd87QXA8Hm87Uv2vlLFtdo7qQEmloUoFUV0ya-KxAbUF6-KPqchGtKUCv7Z9IsPErSzjy2ldF2SC6FrOK-jJ-CDjo7vPOQMRRwm7k9xAnQTFhlyWwNuUYtQfFafqGaQ8SQN02sPEpwyyLlPASv2AvJ2_grANBfaiwEx2wLfM4BsksWbf_O06Uo5myyggztY5rw7sYpPtpa9NdC9TdNbDO1bELrr0tkkSGLDnwFfbTR-H5Q\"\n };\n return this.http.post(this.apiBaseURL, queryParam1, { headers: this.headers()});\n \n }\n\n public getVehicleDetailExecuteData(queryParam: any): Observable {\n // return this.http.post(this.apiBaseURL + 'results-vehicle-details', queryParam, { headers: this.headers() });\n let queryParam1 = \n { \n \"payLoad\": {\n inputLists: queryParam.inputLists, \n region: queryParam.region\n },\n \"endPoint\": this.apisBaseURL + 'results-vehicle-details', \n \"jwtToken\": \"eyJraWQiOiJEVXBTQWFUREtQRHphS19mV0NJcldxUUVOVTQ4bzM2ZXR5ZlV5eG9PaFY0IiwiYWxnIjoiUlMyNTYifQ.eyJ2ZXIiOjEsImp0aSI6IkFULkY0VTUwV19fY2tfVGpLU3FOdHMxa09DeWx1Y0xnNXBXcnp5MkRlelZhQjQiLCJpc3MiOiJodHRwczovL3Nzby11YXQucmVuYXVsdC5jb20vb2F1dGgyL2F1c3R3b2VzaGJDa1BKeXcxNDE2IiwiYXVkIjoiaHR0cHM6Ly9hcGlzLnJlbmF1bHQuY29tIiwiaWF0IjoxNjk3Njk4NjMyLCJleHAiOjE2OTc3MDIyMzIsImNpZCI6Imlybi03NjY1OF91YXRfcGtjZV9qZ2F3Z2d4cXViMmEiLCJ1aWQiOiIwMHU2c3p4a3JwQ01uNmR6VjQxNyIsInNjcCI6WyJhcGlzLmRlZmF1bHQiLCJsZWdhY3kiLCJhbGxpYW5jZV9wcm9maWxlIiwib3BlbmlkIl0sImF1dGhfdGltZSI6MTY5NzY5MjEwMCwiYXBwcm92ZXIiOiJSQU5KQU4gUmFqZWV2IiwibGFzdE5hbWUiOiJWZWVyYXJhZ2F2YW4iLCJzdWIiOiJ6MDQwNzgzIiwicGVyc29uYWxVbmlxdWVJZCI6IjAwMDBGVkI0IiwicHJlZmVycmVkTGFuZ3VhZ2UiOiJlbiIsImFwcHJvdmVyTWFpbCI6IlJhamVldi5SYW5qYW5Acm50YmNpLmNvbSIsIm1haWwiOiJzcmltYXRoaS52ZWVyYXJhZ2F2YW4tZXh0ZXJuQHJudGJjaS5jb20iLCJpcm4iOiJJUk4tNzY2NTgiLCJkaXNwbGF5TmFtZSI6IlZFRVJBUkFHQVZBTiBTcmltYXRoaSIsImNvc3RDZW50ZXIiOiJRUTEzMDA3IiwiYXBwcm92ZXJJZCI6InowMDAzMzMiLCJyb2xlcyI6WyJQSUxfQURNSU4iLCJQSUxfQ1VNVUwiLCJQSUxfRFVNUCIsIlBJTF9FWEVDX1JFUSIsIlBJTF9PQkpfU1lTVCIsIlBJTF9TQVZFX1BVQkxJQyIsIlBJTF9UT1VURVNfUE9QIiwiQUNDX1BJTF9FVVJPUEUiLCJBQ0NfUElMX01FUkNPU1VSIiwiR1JfUElMX1RPVVQiLCJQSU1fQ1VNVUwiLCJQSU1fRFVNUCIsIlBJTV9FWEVDX1JFUSIsIlBJTV9PQkpfU1lTVCIsIlBJTV9TQVZFX1BVQkxJQyIsIlBJTV9UT1VURVNfUE9QIiwiR1JfUElNX1RPVVQiXSwibGFuZ3VhZ2UiOiJlbl9JTiIsImxvZ2luIjoiejA0MDc4MyIsImNlcnQtdWlkIjoiIiwiZmlyc3ROYW1lIjoiU3JpbWF0aGkiLCJwb3N0T2ZmaWNlQm94IjoiSU5NQUFNSEEwMDAiLCJjb3VudHJ5Q29kZSI6IklOIiwicGVyaW1ldGVyIjoiTm9uZSIsImNvbXBhbnkiOiIwNzc0IiwidXNlclR5cGUiOiJCMkVfQ29udHJhY3RvciIsInBlcnNvblR5cGUiOiJjYXRwcmp2In0.JcpmurZxwI0B60aBbI8mDu2DVwKVbDleRVDu8_xs4hqXVWA6ypCXvAk5v9NLIhvwubPySBThPO1WdPJckvSyp9Rri3Exe75Jsw4RMB5nyd87QXA8Hm87Uv2vlLFtdo7qQEmloUoFUV0ya-KxAbUF6-KPqchGtKUCv7Z9IsPErSzjy2ldF2SC6FrOK-jJ-CDjo7vPOQMRRwm7k9xAnQTFhlyWwNuUYtQfFafqGaQ8SQN02sPEpwyyLlPASv2AvJ2_grANBfaiwEx2wLfM4BsksWbf_O06Uo5myyggztY5rw7sYpPtpa9NdC9TdNbDO1bELrr0tkkSGLDnwFfbTR-H5Q\"\n };\n return this.http.post(this.apiBaseURL, queryParam1, { headers: this.headers()});\n \n }\n\n public getObjectSize(queryParam: any): Observable {\n // return this.http.post(this.apiBaseURL + 'svc_objnbre', queryParam, { headers: headers });\n // return this.http.post(this.apiBaseURL + 'object-numbers', queryParam, { headers: this.headers() });\n let queryParam1 = \n { \n \"payLoad\": {\n input: queryParam.input, \n region: queryParam.region\n },\n \"endPoint\": this.apisBaseURL + 'object-numbers', \n \"jwtToken\": \"eyJraWQiOiJEVXBTQWFUREtQRHphS19mV0NJcldxUUVOVTQ4bzM2ZXR5ZlV5eG9PaFY0IiwiYWxnIjoiUlMyNTYifQ.eyJ2ZXIiOjEsImp0aSI6IkFULkY0VTUwV19fY2tfVGpLU3FOdHMxa09DeWx1Y0xnNXBXcnp5MkRlelZhQjQiLCJpc3MiOiJodHRwczovL3Nzby11YXQucmVuYXVsdC5jb20vb2F1dGgyL2F1c3R3b2VzaGJDa1BKeXcxNDE2IiwiYXVkIjoiaHR0cHM6Ly9hcGlzLnJlbmF1bHQuY29tIiwiaWF0IjoxNjk3Njk4NjMyLCJleHAiOjE2OTc3MDIyMzIsImNpZCI6Imlybi03NjY1OF91YXRfcGtjZV9qZ2F3Z2d4cXViMmEiLCJ1aWQiOiIwMHU2c3p4a3JwQ01uNmR6VjQxNyIsInNjcCI6WyJhcGlzLmRlZmF1bHQiLCJsZWdhY3kiLCJhbGxpYW5jZV9wcm9maWxlIiwib3BlbmlkIl0sImF1dGhfdGltZSI6MTY5NzY5MjEwMCwiYXBwcm92ZXIiOiJSQU5KQU4gUmFqZWV2IiwibGFzdE5hbWUiOiJWZWVyYXJhZ2F2YW4iLCJzdWIiOiJ6MDQwNzgzIiwicGVyc29uYWxVbmlxdWVJZCI6IjAwMDBGVkI0IiwicHJlZmVycmVkTGFuZ3VhZ2UiOiJlbiIsImFwcHJvdmVyTWFpbCI6IlJhamVldi5SYW5qYW5Acm50YmNpLmNvbSIsIm1haWwiOiJzcmltYXRoaS52ZWVyYXJhZ2F2YW4tZXh0ZXJuQHJudGJjaS5jb20iLCJpcm4iOiJJUk4tNzY2NTgiLCJkaXNwbGF5TmFtZSI6IlZFRVJBUkFHQVZBTiBTcmltYXRoaSIsImNvc3RDZW50ZXIiOiJRUTEzMDA3IiwiYXBwcm92ZXJJZCI6InowMDAzMzMiLCJyb2xlcyI6WyJQSUxfQURNSU4iLCJQSUxfQ1VNVUwiLCJQSUxfRFVNUCIsIlBJTF9FWEVDX1JFUSIsIlBJTF9PQkpfU1lTVCIsIlBJTF9TQVZFX1BVQkxJQyIsIlBJTF9UT1VURVNfUE9QIiwiQUNDX1BJTF9FVVJPUEUiLCJBQ0NfUElMX01FUkNPU1VSIiwiR1JfUElMX1RPVVQiLCJQSU1fQ1VNVUwiLCJQSU1fRFVNUCIsIlBJTV9FWEVDX1JFUSIsIlBJTV9PQkpfU1lTVCIsIlBJTV9TQVZFX1BVQkxJQyIsIlBJTV9UT1VURVNfUE9QIiwiR1JfUElNX1RPVVQiXSwibGFuZ3VhZ2UiOiJlbl9JTiIsImxvZ2luIjoiejA0MDc4MyIsImNlcnQtdWlkIjoiIiwiZmlyc3ROYW1lIjoiU3JpbWF0aGkiLCJwb3N0T2ZmaWNlQm94IjoiSU5NQUFNSEEwMDAiLCJjb3VudHJ5Q29kZSI6IklOIiwicGVyaW1ldGVyIjoiTm9uZSIsImNvbXBhbnkiOiIwNzc0IiwidXNlclR5cGUiOiJCMkVfQ29udHJhY3RvciIsInBlcnNvblR5cGUiOiJjYXRwcmp2In0.JcpmurZxwI0B60aBbI8mDu2DVwKVbDleRVDu8_xs4hqXVWA6ypCXvAk5v9NLIhvwubPySBThPO1WdPJckvSyp9Rri3Exe75Jsw4RMB5nyd87QXA8Hm87Uv2vlLFtdo7qQEmloUoFUV0ya-KxAbUF6-KPqchGtKUCv7Z9IsPErSzjy2ldF2SC6FrOK-jJ-CDjo7vPOQMRRwm7k9xAnQTFhlyWwNuUYtQfFafqGaQ8SQN02sPEpwyyLlPASv2AvJ2_grANBfaiwEx2wLfM4BsksWbf_O06Uo5myyggztY5rw7sYpPtpa9NdC9TdNbDO1bELrr0tkkSGLDnwFfbTR-H5Q\"\n };\n return this.http.post(this.apiBaseURL, queryParam1, { headers: this.headers()});\n\n }\n\n public getSaveQueryName(queryParam: any): Observable {\n // return this.http.post(this.apiBaseURL + 'object-numbers', queryParam, { headers: this.headers() });\n let queryParam1 = \n { \n \"payLoad\": {\n input: queryParam.input, \n region: queryParam.region\n },\n \"endPoint\": this.apisBaseURL + 'object-numbers', \n \"jwtToken\": \"eyJraWQiOiJEVXBTQWFUREtQRHphS19mV0NJcldxUUVOVTQ4bzM2ZXR5ZlV5eG9PaFY0IiwiYWxnIjoiUlMyNTYifQ.eyJ2ZXIiOjEsImp0aSI6IkFULkY0VTUwV19fY2tfVGpLU3FOdHMxa09DeWx1Y0xnNXBXcnp5MkRlelZhQjQiLCJpc3MiOiJodHRwczovL3Nzby11YXQucmVuYXVsdC5jb20vb2F1dGgyL2F1c3R3b2VzaGJDa1BKeXcxNDE2IiwiYXVkIjoiaHR0cHM6Ly9hcGlzLnJlbmF1bHQuY29tIiwiaWF0IjoxNjk3Njk4NjMyLCJleHAiOjE2OTc3MDIyMzIsImNpZCI6Imlybi03NjY1OF91YXRfcGtjZV9qZ2F3Z2d4cXViMmEiLCJ1aWQiOiIwMHU2c3p4a3JwQ01uNmR6VjQxNyIsInNjcCI6WyJhcGlzLmRlZmF1bHQiLCJsZWdhY3kiLCJhbGxpYW5jZV9wcm9maWxlIiwib3BlbmlkIl0sImF1dGhfdGltZSI6MTY5NzY5MjEwMCwiYXBwcm92ZXIiOiJSQU5KQU4gUmFqZWV2IiwibGFzdE5hbWUiOiJWZWVyYXJhZ2F2YW4iLCJzdWIiOiJ6MDQwNzgzIiwicGVyc29uYWxVbmlxdWVJZCI6IjAwMDBGVkI0IiwicHJlZmVycmVkTGFuZ3VhZ2UiOiJlbiIsImFwcHJvdmVyTWFpbCI6IlJhamVldi5SYW5qYW5Acm50YmNpLmNvbSIsIm1haWwiOiJzcmltYXRoaS52ZWVyYXJhZ2F2YW4tZXh0ZXJuQHJudGJjaS5jb20iLCJpcm4iOiJJUk4tNzY2NTgiLCJkaXNwbGF5TmFtZSI6IlZFRVJBUkFHQVZBTiBTcmltYXRoaSIsImNvc3RDZW50ZXIiOiJRUTEzMDA3IiwiYXBwcm92ZXJJZCI6InowMDAzMzMiLCJyb2xlcyI6WyJQSUxfQURNSU4iLCJQSUxfQ1VNVUwiLCJQSUxfRFVNUCIsIlBJTF9FWEVDX1JFUSIsIlBJTF9PQkpfU1lTVCIsIlBJTF9TQVZFX1BVQkxJQyIsIlBJTF9UT1VURVNfUE9QIiwiQUNDX1BJTF9FVVJPUEUiLCJBQ0NfUElMX01FUkNPU1VSIiwiR1JfUElMX1RPVVQiLCJQSU1fQ1VNVUwiLCJQSU1fRFVNUCIsIlBJTV9FWEVDX1JFUSIsIlBJTV9PQkpfU1lTVCIsIlBJTV9TQVZFX1BVQkxJQyIsIlBJTV9UT1VURVNfUE9QIiwiR1JfUElNX1RPVVQiXSwibGFuZ3VhZ2UiOiJlbl9JTiIsImxvZ2luIjoiejA0MDc4MyIsImNlcnQtdWlkIjoiIiwiZmlyc3ROYW1lIjoiU3JpbWF0aGkiLCJwb3N0T2ZmaWNlQm94IjoiSU5NQUFNSEEwMDAiLCJjb3VudHJ5Q29kZSI6IklOIiwicGVyaW1ldGVyIjoiTm9uZSIsImNvbXBhbnkiOiIwNzc0IiwidXNlclR5cGUiOiJCMkVfQ29udHJhY3RvciIsInBlcnNvblR5cGUiOiJjYXRwcmp2In0.JcpmurZxwI0B60aBbI8mDu2DVwKVbDleRVDu8_xs4hqXVWA6ypCXvAk5v9NLIhvwubPySBThPO1WdPJckvSyp9Rri3Exe75Jsw4RMB5nyd87QXA8Hm87Uv2vlLFtdo7qQEmloUoFUV0ya-KxAbUF6-KPqchGtKUCv7Z9IsPErSzjy2ldF2SC6FrOK-jJ-CDjo7vPOQMRRwm7k9xAnQTFhlyWwNuUYtQfFafqGaQ8SQN02sPEpwyyLlPASv2AvJ2_grANBfaiwEx2wLfM4BsksWbf_O06Uo5myyggztY5rw7sYpPtpa9NdC9TdNbDO1bELrr0tkkSGLDnwFfbTR-H5Q\"\n };\n return this.http.post(this.apiBaseURL, queryParam1, { headers: this.headers()});\n\n }\n\n public getSaveQueryNameList(queryParam: any): Observable {\n // return this.http.post(this.apiBaseURL + 'object-lists', queryParam, { headers: this.headers() });\n let queryParam1 = \n { \n \"payLoad\": {\n input: queryParam.input, \n region: queryParam.region\n },\n \"endPoint\": this.apisBaseURL + 'object-lists', \n \"jwtToken\": \"eyJraWQiOiJEVXBTQWFUREtQRHphS19mV0NJcldxUUVOVTQ4bzM2ZXR5ZlV5eG9PaFY0IiwiYWxnIjoiUlMyNTYifQ.eyJ2ZXIiOjEsImp0aSI6IkFULkY0VTUwV19fY2tfVGpLU3FOdHMxa09DeWx1Y0xnNXBXcnp5MkRlelZhQjQiLCJpc3MiOiJodHRwczovL3Nzby11YXQucmVuYXVsdC5jb20vb2F1dGgyL2F1c3R3b2VzaGJDa1BKeXcxNDE2IiwiYXVkIjoiaHR0cHM6Ly9hcGlzLnJlbmF1bHQuY29tIiwiaWF0IjoxNjk3Njk4NjMyLCJleHAiOjE2OTc3MDIyMzIsImNpZCI6Imlybi03NjY1OF91YXRfcGtjZV9qZ2F3Z2d4cXViMmEiLCJ1aWQiOiIwMHU2c3p4a3JwQ01uNmR6VjQxNyIsInNjcCI6WyJhcGlzLmRlZmF1bHQiLCJsZWdhY3kiLCJhbGxpYW5jZV9wcm9maWxlIiwib3BlbmlkIl0sImF1dGhfdGltZSI6MTY5NzY5MjEwMCwiYXBwcm92ZXIiOiJSQU5KQU4gUmFqZWV2IiwibGFzdE5hbWUiOiJWZWVyYXJhZ2F2YW4iLCJzdWIiOiJ6MDQwNzgzIiwicGVyc29uYWxVbmlxdWVJZCI6IjAwMDBGVkI0IiwicHJlZmVycmVkTGFuZ3VhZ2UiOiJlbiIsImFwcHJvdmVyTWFpbCI6IlJhamVldi5SYW5qYW5Acm50YmNpLmNvbSIsIm1haWwiOiJzcmltYXRoaS52ZWVyYXJhZ2F2YW4tZXh0ZXJuQHJudGJjaS5jb20iLCJpcm4iOiJJUk4tNzY2NTgiLCJkaXNwbGF5TmFtZSI6IlZFRVJBUkFHQVZBTiBTcmltYXRoaSIsImNvc3RDZW50ZXIiOiJRUTEzMDA3IiwiYXBwcm92ZXJJZCI6InowMDAzMzMiLCJyb2xlcyI6WyJQSUxfQURNSU4iLCJQSUxfQ1VNVUwiLCJQSUxfRFVNUCIsIlBJTF9FWEVDX1JFUSIsIlBJTF9PQkpfU1lTVCIsIlBJTF9TQVZFX1BVQkxJQyIsIlBJTF9UT1VURVNfUE9QIiwiQUNDX1BJTF9FVVJPUEUiLCJBQ0NfUElMX01FUkNPU1VSIiwiR1JfUElMX1RPVVQiLCJQSU1fQ1VNVUwiLCJQSU1fRFVNUCIsIlBJTV9FWEVDX1JFUSIsIlBJTV9PQkpfU1lTVCIsIlBJTV9TQVZFX1BVQkxJQyIsIlBJTV9UT1VURVNfUE9QIiwiR1JfUElNX1RPVVQiXSwibGFuZ3VhZ2UiOiJlbl9JTiIsImxvZ2luIjoiejA0MDc4MyIsImNlcnQtdWlkIjoiIiwiZmlyc3ROYW1lIjoiU3JpbWF0aGkiLCJwb3N0T2ZmaWNlQm94IjoiSU5NQUFNSEEwMDAiLCJjb3VudHJ5Q29kZSI6IklOIiwicGVyaW1ldGVyIjoiTm9uZSIsImNvbXBhbnkiOiIwNzc0IiwidXNlclR5cGUiOiJCMkVfQ29udHJhY3RvciIsInBlcnNvblR5cGUiOiJjYXRwcmp2In0.JcpmurZxwI0B60aBbI8mDu2DVwKVbDleRVDu8_xs4hqXVWA6ypCXvAk5v9NLIhvwubPySBThPO1WdPJckvSyp9Rri3Exe75Jsw4RMB5nyd87QXA8Hm87Uv2vlLFtdo7qQEmloUoFUV0ya-KxAbUF6-KPqchGtKUCv7Z9IsPErSzjy2ldF2SC6FrOK-jJ-CDjo7vPOQMRRwm7k9xAnQTFhlyWwNuUYtQfFafqGaQ8SQN02sPEpwyyLlPASv2AvJ2_grANBfaiwEx2wLfM4BsksWbf_O06Uo5myyggztY5rw7sYpPtpa9NdC9TdNbDO1bELrr0tkkSGLDnwFfbTR-H5Q\"\n };\n return this.http.post(this.apiBaseURL, queryParam1, { headers: this.headers()});\n\n }\n\n public getObjectGet(queryParam: any): Observable {\n // return this.http.post(this.apiBaseURL + 'svc_objget', queryParam, { headers: headers });\n // return this.http.post(this.apiBaseURL + 'getting-objects', queryParam, { headers: this.headers() });\n let queryParam1 = \n { \n \"payLoad\": {\n input: queryParam.input, \n region: queryParam.region\n },\n \"endPoint\": this.apisBaseURL + 'getting-objects', \n \"jwtToken\": \"eyJraWQiOiJEVXBTQWFUREtQRHphS19mV0NJcldxUUVOVTQ4bzM2ZXR5ZlV5eG9PaFY0IiwiYWxnIjoiUlMyNTYifQ.eyJ2ZXIiOjEsImp0aSI6IkFULkY0VTUwV19fY2tfVGpLU3FOdHMxa09DeWx1Y0xnNXBXcnp5MkRlelZhQjQiLCJpc3MiOiJodHRwczovL3Nzby11YXQucmVuYXVsdC5jb20vb2F1dGgyL2F1c3R3b2VzaGJDa1BKeXcxNDE2IiwiYXVkIjoiaHR0cHM6Ly9hcGlzLnJlbmF1bHQuY29tIiwiaWF0IjoxNjk3Njk4NjMyLCJleHAiOjE2OTc3MDIyMzIsImNpZCI6Imlybi03NjY1OF91YXRfcGtjZV9qZ2F3Z2d4cXViMmEiLCJ1aWQiOiIwMHU2c3p4a3JwQ01uNmR6VjQxNyIsInNjcCI6WyJhcGlzLmRlZmF1bHQiLCJsZWdhY3kiLCJhbGxpYW5jZV9wcm9maWxlIiwib3BlbmlkIl0sImF1dGhfdGltZSI6MTY5NzY5MjEwMCwiYXBwcm92ZXIiOiJSQU5KQU4gUmFqZWV2IiwibGFzdE5hbWUiOiJWZWVyYXJhZ2F2YW4iLCJzdWIiOiJ6MDQwNzgzIiwicGVyc29uYWxVbmlxdWVJZCI6IjAwMDBGVkI0IiwicHJlZmVycmVkTGFuZ3VhZ2UiOiJlbiIsImFwcHJvdmVyTWFpbCI6IlJhamVldi5SYW5qYW5Acm50YmNpLmNvbSIsIm1haWwiOiJzcmltYXRoaS52ZWVyYXJhZ2F2YW4tZXh0ZXJuQHJudGJjaS5jb20iLCJpcm4iOiJJUk4tNzY2NTgiLCJkaXNwbGF5TmFtZSI6IlZFRVJBUkFHQVZBTiBTcmltYXRoaSIsImNvc3RDZW50ZXIiOiJRUTEzMDA3IiwiYXBwcm92ZXJJZCI6InowMDAzMzMiLCJyb2xlcyI6WyJQSUxfQURNSU4iLCJQSUxfQ1VNVUwiLCJQSUxfRFVNUCIsIlBJTF9FWEVDX1JFUSIsIlBJTF9PQkpfU1lTVCIsIlBJTF9TQVZFX1BVQkxJQyIsIlBJTF9UT1VURVNfUE9QIiwiQUNDX1BJTF9FVVJPUEUiLCJBQ0NfUElMX01FUkNPU1VSIiwiR1JfUElMX1RPVVQiLCJQSU1fQ1VNVUwiLCJQSU1fRFVNUCIsIlBJTV9FWEVDX1JFUSIsIlBJTV9PQkpfU1lTVCIsIlBJTV9TQVZFX1BVQkxJQyIsIlBJTV9UT1VURVNfUE9QIiwiR1JfUElNX1RPVVQiXSwibGFuZ3VhZ2UiOiJlbl9JTiIsImxvZ2luIjoiejA0MDc4MyIsImNlcnQtdWlkIjoiIiwiZmlyc3ROYW1lIjoiU3JpbWF0aGkiLCJwb3N0T2ZmaWNlQm94IjoiSU5NQUFNSEEwMDAiLCJjb3VudHJ5Q29kZSI6IklOIiwicGVyaW1ldGVyIjoiTm9uZSIsImNvbXBhbnkiOiIwNzc0IiwidXNlclR5cGUiOiJCMkVfQ29udHJhY3RvciIsInBlcnNvblR5cGUiOiJjYXRwcmp2In0.JcpmurZxwI0B60aBbI8mDu2DVwKVbDleRVDu8_xs4hqXVWA6ypCXvAk5v9NLIhvwubPySBThPO1WdPJckvSyp9Rri3Exe75Jsw4RMB5nyd87QXA8Hm87Uv2vlLFtdo7qQEmloUoFUV0ya-KxAbUF6-KPqchGtKUCv7Z9IsPErSzjy2ldF2SC6FrOK-jJ-CDjo7vPOQMRRwm7k9xAnQTFhlyWwNuUYtQfFafqGaQ8SQN02sPEpwyyLlPASv2AvJ2_grANBfaiwEx2wLfM4BsksWbf_O06Uo5myyggztY5rw7sYpPtpa9NdC9TdNbDO1bELrr0tkkSGLDnwFfbTR-H5Q\"\n };\n return this.http.post(this.apiBaseURL, queryParam1, { headers: this.headers()});\n\n }\n\n public saveObject(queryParam: any): Observable {\n // return this.http.post(this.apiBaseURL + 'svc_objsave', queryParam, { headers: headers });\n // return this.http.post(this.apiBaseURL + 'saving-objects', queryParam, { headers: this.headers() });\n let queryParam1 = \n { \n \"payLoad\": {\n input: queryParam.input, \n region: queryParam.region\n },\n \"endPoint\": this.apisBaseURL + 'saving-objects', \n \"jwtToken\": \"eyJraWQiOiJEVXBTQWFUREtQRHphS19mV0NJcldxUUVOVTQ4bzM2ZXR5ZlV5eG9PaFY0IiwiYWxnIjoiUlMyNTYifQ.eyJ2ZXIiOjEsImp0aSI6IkFULkY0VTUwV19fY2tfVGpLU3FOdHMxa09DeWx1Y0xnNXBXcnp5MkRlelZhQjQiLCJpc3MiOiJodHRwczovL3Nzby11YXQucmVuYXVsdC5jb20vb2F1dGgyL2F1c3R3b2VzaGJDa1BKeXcxNDE2IiwiYXVkIjoiaHR0cHM6Ly9hcGlzLnJlbmF1bHQuY29tIiwiaWF0IjoxNjk3Njk4NjMyLCJleHAiOjE2OTc3MDIyMzIsImNpZCI6Imlybi03NjY1OF91YXRfcGtjZV9qZ2F3Z2d4cXViMmEiLCJ1aWQiOiIwMHU2c3p4a3JwQ01uNmR6VjQxNyIsInNjcCI6WyJhcGlzLmRlZmF1bHQiLCJsZWdhY3kiLCJhbGxpYW5jZV9wcm9maWxlIiwib3BlbmlkIl0sImF1dGhfdGltZSI6MTY5NzY5MjEwMCwiYXBwcm92ZXIiOiJSQU5KQU4gUmFqZWV2IiwibGFzdE5hbWUiOiJWZWVyYXJhZ2F2YW4iLCJzdWIiOiJ6MDQwNzgzIiwicGVyc29uYWxVbmlxdWVJZCI6IjAwMDBGVkI0IiwicHJlZmVycmVkTGFuZ3VhZ2UiOiJlbiIsImFwcHJvdmVyTWFpbCI6IlJhamVldi5SYW5qYW5Acm50YmNpLmNvbSIsIm1haWwiOiJzcmltYXRoaS52ZWVyYXJhZ2F2YW4tZXh0ZXJuQHJudGJjaS5jb20iLCJpcm4iOiJJUk4tNzY2NTgiLCJkaXNwbGF5TmFtZSI6IlZFRVJBUkFHQVZBTiBTcmltYXRoaSIsImNvc3RDZW50ZXIiOiJRUTEzMDA3IiwiYXBwcm92ZXJJZCI6InowMDAzMzMiLCJyb2xlcyI6WyJQSUxfQURNSU4iLCJQSUxfQ1VNVUwiLCJQSUxfRFVNUCIsIlBJTF9FWEVDX1JFUSIsIlBJTF9PQkpfU1lTVCIsIlBJTF9TQVZFX1BVQkxJQyIsIlBJTF9UT1VURVNfUE9QIiwiQUNDX1BJTF9FVVJPUEUiLCJBQ0NfUElMX01FUkNPU1VSIiwiR1JfUElMX1RPVVQiLCJQSU1fQ1VNVUwiLCJQSU1fRFVNUCIsIlBJTV9FWEVDX1JFUSIsIlBJTV9PQkpfU1lTVCIsIlBJTV9TQVZFX1BVQkxJQyIsIlBJTV9UT1VURVNfUE9QIiwiR1JfUElNX1RPVVQiXSwibGFuZ3VhZ2UiOiJlbl9JTiIsImxvZ2luIjoiejA0MDc4MyIsImNlcnQtdWlkIjoiIiwiZmlyc3ROYW1lIjoiU3JpbWF0aGkiLCJwb3N0T2ZmaWNlQm94IjoiSU5NQUFNSEEwMDAiLCJjb3VudHJ5Q29kZSI6IklOIiwicGVyaW1ldGVyIjoiTm9uZSIsImNvbXBhbnkiOiIwNzc0IiwidXNlclR5cGUiOiJCMkVfQ29udHJhY3RvciIsInBlcnNvblR5cGUiOiJjYXRwcmp2In0.JcpmurZxwI0B60aBbI8mDu2DVwKVbDleRVDu8_xs4hqXVWA6ypCXvAk5v9NLIhvwubPySBThPO1WdPJckvSyp9Rri3Exe75Jsw4RMB5nyd87QXA8Hm87Uv2vlLFtdo7qQEmloUoFUV0ya-KxAbUF6-KPqchGtKUCv7Z9IsPErSzjy2ldF2SC6FrOK-jJ-CDjo7vPOQMRRwm7k9xAnQTFhlyWwNuUYtQfFafqGaQ8SQN02sPEpwyyLlPASv2AvJ2_grANBfaiwEx2wLfM4BsksWbf_O06Uo5myyggztY5rw7sYpPtpa9NdC9TdNbDO1bELrr0tkkSGLDnwFfbTR-H5Q\"\n };\n return this.http.post(this.apiBaseURL, queryParam1, { headers: this.headers()});\n\n }\n\n public deleteObject(queryParam: any): Observable {\n // return this.http.post(this.apiBaseURL + 'svc_objsave', queryParam, { headers: headers });\n // return this.http.post(this.apiBaseURL + 'deleting-objects', queryParam, { headers: this.headers() });\n let queryParam1 = \n { \n \"payLoad\": {\n input: queryParam.input, \n region: queryParam.region\n },\n \"endPoint\": this.apisBaseURL + 'deleting-objects', \n \"jwtToken\": \"eyJraWQiOiJEVXBTQWFUREtQRHphS19mV0NJcldxUUVOVTQ4bzM2ZXR5ZlV5eG9PaFY0IiwiYWxnIjoiUlMyNTYifQ.eyJ2ZXIiOjEsImp0aSI6IkFULkY0VTUwV19fY2tfVGpLU3FOdHMxa09DeWx1Y0xnNXBXcnp5MkRlelZhQjQiLCJpc3MiOiJodHRwczovL3Nzby11YXQucmVuYXVsdC5jb20vb2F1dGgyL2F1c3R3b2VzaGJDa1BKeXcxNDE2IiwiYXVkIjoiaHR0cHM6Ly9hcGlzLnJlbmF1bHQuY29tIiwiaWF0IjoxNjk3Njk4NjMyLCJleHAiOjE2OTc3MDIyMzIsImNpZCI6Imlybi03NjY1OF91YXRfcGtjZV9qZ2F3Z2d4cXViMmEiLCJ1aWQiOiIwMHU2c3p4a3JwQ01uNmR6VjQxNyIsInNjcCI6WyJhcGlzLmRlZmF1bHQiLCJsZWdhY3kiLCJhbGxpYW5jZV9wcm9maWxlIiwib3BlbmlkIl0sImF1dGhfdGltZSI6MTY5NzY5MjEwMCwiYXBwcm92ZXIiOiJSQU5KQU4gUmFqZWV2IiwibGFzdE5hbWUiOiJWZWVyYXJhZ2F2YW4iLCJzdWIiOiJ6MDQwNzgzIiwicGVyc29uYWxVbmlxdWVJZCI6IjAwMDBGVkI0IiwicHJlZmVycmVkTGFuZ3VhZ2UiOiJlbiIsImFwcHJvdmVyTWFpbCI6IlJhamVldi5SYW5qYW5Acm50YmNpLmNvbSIsIm1haWwiOiJzcmltYXRoaS52ZWVyYXJhZ2F2YW4tZXh0ZXJuQHJudGJjaS5jb20iLCJpcm4iOiJJUk4tNzY2NTgiLCJkaXNwbGF5TmFtZSI6IlZFRVJBUkFHQVZBTiBTcmltYXRoaSIsImNvc3RDZW50ZXIiOiJRUTEzMDA3IiwiYXBwcm92ZXJJZCI6InowMDAzMzMiLCJyb2xlcyI6WyJQSUxfQURNSU4iLCJQSUxfQ1VNVUwiLCJQSUxfRFVNUCIsIlBJTF9FWEVDX1JFUSIsIlBJTF9PQkpfU1lTVCIsIlBJTF9TQVZFX1BVQkxJQyIsIlBJTF9UT1VURVNfUE9QIiwiQUNDX1BJTF9FVVJPUEUiLCJBQ0NfUElMX01FUkNPU1VSIiwiR1JfUElMX1RPVVQiLCJQSU1fQ1VNVUwiLCJQSU1fRFVNUCIsIlBJTV9FWEVDX1JFUSIsIlBJTV9PQkpfU1lTVCIsIlBJTV9TQVZFX1BVQkxJQyIsIlBJTV9UT1VURVNfUE9QIiwiR1JfUElNX1RPVVQiXSwibGFuZ3VhZ2UiOiJlbl9JTiIsImxvZ2luIjoiejA0MDc4MyIsImNlcnQtdWlkIjoiIiwiZmlyc3ROYW1lIjoiU3JpbWF0aGkiLCJwb3N0T2ZmaWNlQm94IjoiSU5NQUFNSEEwMDAiLCJjb3VudHJ5Q29kZSI6IklOIiwicGVyaW1ldGVyIjoiTm9uZSIsImNvbXBhbnkiOiIwNzc0IiwidXNlclR5cGUiOiJCMkVfQ29udHJhY3RvciIsInBlcnNvblR5cGUiOiJjYXRwcmp2In0.JcpmurZxwI0B60aBbI8mDu2DVwKVbDleRVDu8_xs4hqXVWA6ypCXvAk5v9NLIhvwubPySBThPO1WdPJckvSyp9Rri3Exe75Jsw4RMB5nyd87QXA8Hm87Uv2vlLFtdo7qQEmloUoFUV0ya-KxAbUF6-KPqchGtKUCv7Z9IsPErSzjy2ldF2SC6FrOK-jJ-CDjo7vPOQMRRwm7k9xAnQTFhlyWwNuUYtQfFafqGaQ8SQN02sPEpwyyLlPASv2AvJ2_grANBfaiwEx2wLfM4BsksWbf_O06Uo5myyggztY5rw7sYpPtpa9NdC9TdNbDO1bELrr0tkkSGLDnwFfbTR-H5Q\"\n };\n return this.http.post(this.apiBaseURL, queryParam1, { headers: this.headers()});\n\n }\n\n public memoryReleaseObject(queryParam: any): Observable {\n // return this.http.post(this.apiBaseURL + 'svc_objsave', queryParam, { headers: headers });\n // return this.http.post(this.apiBaseURL + 'memory-releases', queryParam, { headers: this.headers() });\n let queryParam1 = \n { \n \"payLoad\": {\n input: queryParam.input, \n region: queryParam.region\n },\n \"endPoint\": this.apisBaseURL + 'memory-releases', \n \"jwtToken\": \"eyJraWQiOiJEVXBTQWFUREtQRHphS19mV0NJcldxUUVOVTQ4bzM2ZXR5ZlV5eG9PaFY0IiwiYWxnIjoiUlMyNTYifQ.eyJ2ZXIiOjEsImp0aSI6IkFULkY0VTUwV19fY2tfVGpLU3FOdHMxa09DeWx1Y0xnNXBXcnp5MkRlelZhQjQiLCJpc3MiOiJodHRwczovL3Nzby11YXQucmVuYXVsdC5jb20vb2F1dGgyL2F1c3R3b2VzaGJDa1BKeXcxNDE2IiwiYXVkIjoiaHR0cHM6Ly9hcGlzLnJlbmF1bHQuY29tIiwiaWF0IjoxNjk3Njk4NjMyLCJleHAiOjE2OTc3MDIyMzIsImNpZCI6Imlybi03NjY1OF91YXRfcGtjZV9qZ2F3Z2d4cXViMmEiLCJ1aWQiOiIwMHU2c3p4a3JwQ01uNmR6VjQxNyIsInNjcCI6WyJhcGlzLmRlZmF1bHQiLCJsZWdhY3kiLCJhbGxpYW5jZV9wcm9maWxlIiwib3BlbmlkIl0sImF1dGhfdGltZSI6MTY5NzY5MjEwMCwiYXBwcm92ZXIiOiJSQU5KQU4gUmFqZWV2IiwibGFzdE5hbWUiOiJWZWVyYXJhZ2F2YW4iLCJzdWIiOiJ6MDQwNzgzIiwicGVyc29uYWxVbmlxdWVJZCI6IjAwMDBGVkI0IiwicHJlZmVycmVkTGFuZ3VhZ2UiOiJlbiIsImFwcHJvdmVyTWFpbCI6IlJhamVldi5SYW5qYW5Acm50YmNpLmNvbSIsIm1haWwiOiJzcmltYXRoaS52ZWVyYXJhZ2F2YW4tZXh0ZXJuQHJudGJjaS5jb20iLCJpcm4iOiJJUk4tNzY2NTgiLCJkaXNwbGF5TmFtZSI6IlZFRVJBUkFHQVZBTiBTcmltYXRoaSIsImNvc3RDZW50ZXIiOiJRUTEzMDA3IiwiYXBwcm92ZXJJZCI6InowMDAzMzMiLCJyb2xlcyI6WyJQSUxfQURNSU4iLCJQSUxfQ1VNVUwiLCJQSUxfRFVNUCIsIlBJTF9FWEVDX1JFUSIsIlBJTF9PQkpfU1lTVCIsIlBJTF9TQVZFX1BVQkxJQyIsIlBJTF9UT1VURVNfUE9QIiwiQUNDX1BJTF9FVVJPUEUiLCJBQ0NfUElMX01FUkNPU1VSIiwiR1JfUElMX1RPVVQiLCJQSU1fQ1VNVUwiLCJQSU1fRFVNUCIsIlBJTV9FWEVDX1JFUSIsIlBJTV9PQkpfU1lTVCIsIlBJTV9TQVZFX1BVQkxJQyIsIlBJTV9UT1VURVNfUE9QIiwiR1JfUElNX1RPVVQiXSwibGFuZ3VhZ2UiOiJlbl9JTiIsImxvZ2luIjoiejA0MDc4MyIsImNlcnQtdWlkIjoiIiwiZmlyc3ROYW1lIjoiU3JpbWF0aGkiLCJwb3N0T2ZmaWNlQm94IjoiSU5NQUFNSEEwMDAiLCJjb3VudHJ5Q29kZSI6IklOIiwicGVyaW1ldGVyIjoiTm9uZSIsImNvbXBhbnkiOiIwNzc0IiwidXNlclR5cGUiOiJCMkVfQ29udHJhY3RvciIsInBlcnNvblR5cGUiOiJjYXRwcmp2In0.JcpmurZxwI0B60aBbI8mDu2DVwKVbDleRVDu8_xs4hqXVWA6ypCXvAk5v9NLIhvwubPySBThPO1WdPJckvSyp9Rri3Exe75Jsw4RMB5nyd87QXA8Hm87Uv2vlLFtdo7qQEmloUoFUV0ya-KxAbUF6-KPqchGtKUCv7Z9IsPErSzjy2ldF2SC6FrOK-jJ-CDjo7vPOQMRRwm7k9xAnQTFhlyWwNuUYtQfFafqGaQ8SQN02sPEpwyyLlPASv2AvJ2_grANBfaiwEx2wLfM4BsksWbf_O06Uo5myyggztY5rw7sYpPtpa9NdC9TdNbDO1bELrr0tkkSGLDnwFfbTR-H5Q\"\n };\n return this.http.post(this.apiBaseURL, queryParam1, { headers: this.headers()});\n\n }\n\n public exportResultObject(queryParam: any): Observable {\n // return this.http.post(this.apiBaseURL + 'svc_objsave', queryParam, { headers: headers });\n // return this.http.post(this.apiBaseURL + 'export-results', queryParam, { headers: this.headers() });\n let queryParam1 = \n { \n \"payLoad\": {\n inputLists: queryParam.inputLists, \n region: queryParam.region\n },\n \"endPoint\": this.apisBaseURL + 'export-results', \n \"jwtToken\": \"eyJraWQiOiJEVXBTQWFUREtQRHphS19mV0NJcldxUUVOVTQ4bzM2ZXR5ZlV5eG9PaFY0IiwiYWxnIjoiUlMyNTYifQ.eyJ2ZXIiOjEsImp0aSI6IkFULkY0VTUwV19fY2tfVGpLU3FOdHMxa09DeWx1Y0xnNXBXcnp5MkRlelZhQjQiLCJpc3MiOiJodHRwczovL3Nzby11YXQucmVuYXVsdC5jb20vb2F1dGgyL2F1c3R3b2VzaGJDa1BKeXcxNDE2IiwiYXVkIjoiaHR0cHM6Ly9hcGlzLnJlbmF1bHQuY29tIiwiaWF0IjoxNjk3Njk4NjMyLCJleHAiOjE2OTc3MDIyMzIsImNpZCI6Imlybi03NjY1OF91YXRfcGtjZV9qZ2F3Z2d4cXViMmEiLCJ1aWQiOiIwMHU2c3p4a3JwQ01uNmR6VjQxNyIsInNjcCI6WyJhcGlzLmRlZmF1bHQiLCJsZWdhY3kiLCJhbGxpYW5jZV9wcm9maWxlIiwib3BlbmlkIl0sImF1dGhfdGltZSI6MTY5NzY5MjEwMCwiYXBwcm92ZXIiOiJSQU5KQU4gUmFqZWV2IiwibGFzdE5hbWUiOiJWZWVyYXJhZ2F2YW4iLCJzdWIiOiJ6MDQwNzgzIiwicGVyc29uYWxVbmlxdWVJZCI6IjAwMDBGVkI0IiwicHJlZmVycmVkTGFuZ3VhZ2UiOiJlbiIsImFwcHJvdmVyTWFpbCI6IlJhamVldi5SYW5qYW5Acm50YmNpLmNvbSIsIm1haWwiOiJzcmltYXRoaS52ZWVyYXJhZ2F2YW4tZXh0ZXJuQHJudGJjaS5jb20iLCJpcm4iOiJJUk4tNzY2NTgiLCJkaXNwbGF5TmFtZSI6IlZFRVJBUkFHQVZBTiBTcmltYXRoaSIsImNvc3RDZW50ZXIiOiJRUTEzMDA3IiwiYXBwcm92ZXJJZCI6InowMDAzMzMiLCJyb2xlcyI6WyJQSUxfQURNSU4iLCJQSUxfQ1VNVUwiLCJQSUxfRFVNUCIsIlBJTF9FWEVDX1JFUSIsIlBJTF9PQkpfU1lTVCIsIlBJTF9TQVZFX1BVQkxJQyIsIlBJTF9UT1VURVNfUE9QIiwiQUNDX1BJTF9FVVJPUEUiLCJBQ0NfUElMX01FUkNPU1VSIiwiR1JfUElMX1RPVVQiLCJQSU1fQ1VNVUwiLCJQSU1fRFVNUCIsIlBJTV9FWEVDX1JFUSIsIlBJTV9PQkpfU1lTVCIsIlBJTV9TQVZFX1BVQkxJQyIsIlBJTV9UT1VURVNfUE9QIiwiR1JfUElNX1RPVVQiXSwibGFuZ3VhZ2UiOiJlbl9JTiIsImxvZ2luIjoiejA0MDc4MyIsImNlcnQtdWlkIjoiIiwiZmlyc3ROYW1lIjoiU3JpbWF0aGkiLCJwb3N0T2ZmaWNlQm94IjoiSU5NQUFNSEEwMDAiLCJjb3VudHJ5Q29kZSI6IklOIiwicGVyaW1ldGVyIjoiTm9uZSIsImNvbXBhbnkiOiIwNzc0IiwidXNlclR5cGUiOiJCMkVfQ29udHJhY3RvciIsInBlcnNvblR5cGUiOiJjYXRwcmp2In0.JcpmurZxwI0B60aBbI8mDu2DVwKVbDleRVDu8_xs4hqXVWA6ypCXvAk5v9NLIhvwubPySBThPO1WdPJckvSyp9Rri3Exe75Jsw4RMB5nyd87QXA8Hm87Uv2vlLFtdo7qQEmloUoFUV0ya-KxAbUF6-KPqchGtKUCv7Z9IsPErSzjy2ldF2SC6FrOK-jJ-CDjo7vPOQMRRwm7k9xAnQTFhlyWwNuUYtQfFafqGaQ8SQN02sPEpwyyLlPASv2AvJ2_grANBfaiwEx2wLfM4BsksWbf_O06Uo5myyggztY5rw7sYpPtpa9NdC9TdNbDO1bELrr0tkkSGLDnwFfbTR-H5Q\"\n };\n return this.http.post(this.apiBaseURL, queryParam1, { headers: this.headers()});\n \n }\n\n downloadFile(url): Observable {\n // return this.http.get(url, { responseType: 'blob' });\n return this.http.get(url, { observe: 'response', responseType: 'blob' as 'json' })\n }\n\n uploadFile(queryParam: any): Observable {\n // return this.http.get(url, { responseType: 'blob' });\n return this.http.post(this.uploadURL, queryParam, { headers: this.headers4FileUpload() });\n }\n\n public specialBases(queryParam: any): Observable {\n // return this.http.post(this.apiBaseURL + 'svc_objsave', queryParam, { headers: headers });\n // return this.http.post(this.apiBaseURL + 'special-bases', queryParam, { headers: this.headers() });\n let queryParam1 = \n { \n \"payLoad\": {\n input: queryParam.input, \n region: queryParam.region\n },\n \"endPoint\": this.apisBaseURL + 'special-bases', \n \"jwtToken\": \"eyJraWQiOiJEVXBTQWFUREtQRHphS19mV0NJcldxUUVOVTQ4bzM2ZXR5ZlV5eG9PaFY0IiwiYWxnIjoiUlMyNTYifQ.eyJ2ZXIiOjEsImp0aSI6IkFULkY0VTUwV19fY2tfVGpLU3FOdHMxa09DeWx1Y0xnNXBXcnp5MkRlelZhQjQiLCJpc3MiOiJodHRwczovL3Nzby11YXQucmVuYXVsdC5jb20vb2F1dGgyL2F1c3R3b2VzaGJDa1BKeXcxNDE2IiwiYXVkIjoiaHR0cHM6Ly9hcGlzLnJlbmF1bHQuY29tIiwiaWF0IjoxNjk3Njk4NjMyLCJleHAiOjE2OTc3MDIyMzIsImNpZCI6Imlybi03NjY1OF91YXRfcGtjZV9qZ2F3Z2d4cXViMmEiLCJ1aWQiOiIwMHU2c3p4a3JwQ01uNmR6VjQxNyIsInNjcCI6WyJhcGlzLmRlZmF1bHQiLCJsZWdhY3kiLCJhbGxpYW5jZV9wcm9maWxlIiwib3BlbmlkIl0sImF1dGhfdGltZSI6MTY5NzY5MjEwMCwiYXBwcm92ZXIiOiJSQU5KQU4gUmFqZWV2IiwibGFzdE5hbWUiOiJWZWVyYXJhZ2F2YW4iLCJzdWIiOiJ6MDQwNzgzIiwicGVyc29uYWxVbmlxdWVJZCI6IjAwMDBGVkI0IiwicHJlZmVycmVkTGFuZ3VhZ2UiOiJlbiIsImFwcHJvdmVyTWFpbCI6IlJhamVldi5SYW5qYW5Acm50YmNpLmNvbSIsIm1haWwiOiJzcmltYXRoaS52ZWVyYXJhZ2F2YW4tZXh0ZXJuQHJudGJjaS5jb20iLCJpcm4iOiJJUk4tNzY2NTgiLCJkaXNwbGF5TmFtZSI6IlZFRVJBUkFHQVZBTiBTcmltYXRoaSIsImNvc3RDZW50ZXIiOiJRUTEzMDA3IiwiYXBwcm92ZXJJZCI6InowMDAzMzMiLCJyb2xlcyI6WyJQSUxfQURNSU4iLCJQSUxfQ1VNVUwiLCJQSUxfRFVNUCIsIlBJTF9FWEVDX1JFUSIsIlBJTF9PQkpfU1lTVCIsIlBJTF9TQVZFX1BVQkxJQyIsIlBJTF9UT1VURVNfUE9QIiwiQUNDX1BJTF9FVVJPUEUiLCJBQ0NfUElMX01FUkNPU1VSIiwiR1JfUElMX1RPVVQiLCJQSU1fQ1VNVUwiLCJQSU1fRFVNUCIsIlBJTV9FWEVDX1JFUSIsIlBJTV9PQkpfU1lTVCIsIlBJTV9TQVZFX1BVQkxJQyIsIlBJTV9UT1VURVNfUE9QIiwiR1JfUElNX1RPVVQiXSwibGFuZ3VhZ2UiOiJlbl9JTiIsImxvZ2luIjoiejA0MDc4MyIsImNlcnQtdWlkIjoiIiwiZmlyc3ROYW1lIjoiU3JpbWF0aGkiLCJwb3N0T2ZmaWNlQm94IjoiSU5NQUFNSEEwMDAiLCJjb3VudHJ5Q29kZSI6IklOIiwicGVyaW1ldGVyIjoiTm9uZSIsImNvbXBhbnkiOiIwNzc0IiwidXNlclR5cGUiOiJCMkVfQ29udHJhY3RvciIsInBlcnNvblR5cGUiOiJjYXRwcmp2In0.JcpmurZxwI0B60aBbI8mDu2DVwKVbDleRVDu8_xs4hqXVWA6ypCXvAk5v9NLIhvwubPySBThPO1WdPJckvSyp9Rri3Exe75Jsw4RMB5nyd87QXA8Hm87Uv2vlLFtdo7qQEmloUoFUV0ya-KxAbUF6-KPqchGtKUCv7Z9IsPErSzjy2ldF2SC6FrOK-jJ-CDjo7vPOQMRRwm7k9xAnQTFhlyWwNuUYtQfFafqGaQ8SQN02sPEpwyyLlPASv2AvJ2_grANBfaiwEx2wLfM4BsksWbf_O06Uo5myyggztY5rw7sYpPtpa9NdC9TdNbDO1bELrr0tkkSGLDnwFfbTR-H5Q\"\n };\n return this.http.post(this.apiBaseURL, queryParam1, { headers: this.headers()});\n\n }\n\n public getlostloginlist(): Observable {\n // return this.http.post(this.apiBaseURL + 'svc_objsave', queryParam, { headers: headers });\n return this.http.get(this.apiLastLoginURL + \"lostloginlist\", { headers: this.headers() });\n }\n\n public createuserlogin(queryParam: any): Observable {\n // return this.http.post(this.apiBaseURL + 'svc_objsave', queryParam, { headers: headers });\n return this.http.post(this.apiLastLoginURL + \"loginentry\", queryParam, { headers: this.headers() });\n }\n\n public writingLogs(queryParam: any): Observable {\n //console.log(\"writing log param\", queryParam);\n // return this.http.post(this.apiBaseURL + 'svc_objsave', queryParam, { headers: headers });\n // return this.http.post(this.apiBaseURL + 'writing-logs', queryParam, { headers: this.headers() });\n let queryParam1 = \n { \n \"payLoad\": {\n inputLists: queryParam.inputLists, \n region: queryParam.region\n },\n \"endPoint\": this.apisBaseURL + 'writing-logs', \n \"jwtToken\": \"eyJraWQiOiJEVXBTQWFUREtQRHphS19mV0NJcldxUUVOVTQ4bzM2ZXR5ZlV5eG9PaFY0IiwiYWxnIjoiUlMyNTYifQ.eyJ2ZXIiOjEsImp0aSI6IkFULkY0VTUwV19fY2tfVGpLU3FOdHMxa09DeWx1Y0xnNXBXcnp5MkRlelZhQjQiLCJpc3MiOiJodHRwczovL3Nzby11YXQucmVuYXVsdC5jb20vb2F1dGgyL2F1c3R3b2VzaGJDa1BKeXcxNDE2IiwiYXVkIjoiaHR0cHM6Ly9hcGlzLnJlbmF1bHQuY29tIiwiaWF0IjoxNjk3Njk4NjMyLCJleHAiOjE2OTc3MDIyMzIsImNpZCI6Imlybi03NjY1OF91YXRfcGtjZV9qZ2F3Z2d4cXViMmEiLCJ1aWQiOiIwMHU2c3p4a3JwQ01uNmR6VjQxNyIsInNjcCI6WyJhcGlzLmRlZmF1bHQiLCJsZWdhY3kiLCJhbGxpYW5jZV9wcm9maWxlIiwib3BlbmlkIl0sImF1dGhfdGltZSI6MTY5NzY5MjEwMCwiYXBwcm92ZXIiOiJSQU5KQU4gUmFqZWV2IiwibGFzdE5hbWUiOiJWZWVyYXJhZ2F2YW4iLCJzdWIiOiJ6MDQwNzgzIiwicGVyc29uYWxVbmlxdWVJZCI6IjAwMDBGVkI0IiwicHJlZmVycmVkTGFuZ3VhZ2UiOiJlbiIsImFwcHJvdmVyTWFpbCI6IlJhamVldi5SYW5qYW5Acm50YmNpLmNvbSIsIm1haWwiOiJzcmltYXRoaS52ZWVyYXJhZ2F2YW4tZXh0ZXJuQHJudGJjaS5jb20iLCJpcm4iOiJJUk4tNzY2NTgiLCJkaXNwbGF5TmFtZSI6IlZFRVJBUkFHQVZBTiBTcmltYXRoaSIsImNvc3RDZW50ZXIiOiJRUTEzMDA3IiwiYXBwcm92ZXJJZCI6InowMDAzMzMiLCJyb2xlcyI6WyJQSUxfQURNSU4iLCJQSUxfQ1VNVUwiLCJQSUxfRFVNUCIsIlBJTF9FWEVDX1JFUSIsIlBJTF9PQkpfU1lTVCIsIlBJTF9TQVZFX1BVQkxJQyIsIlBJTF9UT1VURVNfUE9QIiwiQUNDX1BJTF9FVVJPUEUiLCJBQ0NfUElMX01FUkNPU1VSIiwiR1JfUElMX1RPVVQiLCJQSU1fQ1VNVUwiLCJQSU1fRFVNUCIsIlBJTV9FWEVDX1JFUSIsIlBJTV9PQkpfU1lTVCIsIlBJTV9TQVZFX1BVQkxJQyIsIlBJTV9UT1VURVNfUE9QIiwiR1JfUElNX1RPVVQiXSwibGFuZ3VhZ2UiOiJlbl9JTiIsImxvZ2luIjoiejA0MDc4MyIsImNlcnQtdWlkIjoiIiwiZmlyc3ROYW1lIjoiU3JpbWF0aGkiLCJwb3N0T2ZmaWNlQm94IjoiSU5NQUFNSEEwMDAiLCJjb3VudHJ5Q29kZSI6IklOIiwicGVyaW1ldGVyIjoiTm9uZSIsImNvbXBhbnkiOiIwNzc0IiwidXNlclR5cGUiOiJCMkVfQ29udHJhY3RvciIsInBlcnNvblR5cGUiOiJjYXRwcmp2In0.JcpmurZxwI0B60aBbI8mDu2DVwKVbDleRVDu8_xs4hqXVWA6ypCXvAk5v9NLIhvwubPySBThPO1WdPJckvSyp9Rri3Exe75Jsw4RMB5nyd87QXA8Hm87Uv2vlLFtdo7qQEmloUoFUV0ya-KxAbUF6-KPqchGtKUCv7Z9IsPErSzjy2ldF2SC6FrOK-jJ-CDjo7vPOQMRRwm7k9xAnQTFhlyWwNuUYtQfFafqGaQ8SQN02sPEpwyyLlPASv2AvJ2_grANBfaiwEx2wLfM4BsksWbf_O06Uo5myyggztY5rw7sYpPtpa9NdC9TdNbDO1bELrr0tkkSGLDnwFfbTR-H5Q\"\n };\n return this.http.post(this.apiBaseURL, queryParam1, { headers: this.headers()});\n \n }\n\n}\n\n","import { Injectable } from '@angular/core';\nimport { Workbook } from 'exceljs';\nimport * as fs from 'file-saver';\n// import * as logoFile from './carlogo.js';\nimport { DatePipe } from '@angular/common';\n@Injectable({\n providedIn: 'root'\n})\nexport class ExcelService {\n\n constructor(private datePipe: DatePipe) {\n\n }\n\n async generateExcel(headerVal, data, numOfCol) {\n\n\n // const ExcelJS = await import('exceljs');\n // console.log(ExcelJS);\n // const Workbook: any = {};\n\n // Excel Title, Header, Data\n const alphaNum = \"ABCDEFGHIJKLMNOPQRSTUVWXYZ\";\n const title = 'Information extraction';\n const header = headerVal; // ['Year', 'Month', 'Make', 'Model', 'Quantity', 'Pct'];\n // const data = [\n // [2007, 1, 'Volkswagen ', 'Volkswagen Passat', 1267, 10],\n // [2007, 1, 'Toyota ', 'Toyota Rav4', 819, 6.5],\n // [2007, 1, 'Toyota ', 'Toyota Avensis', 787, 6.2],\n // [2007, 1, 'Volkswagen ', 'Volkswagen Golf', 720, 5.7],\n // [2007, 1, 'Toyota ', 'Toyota Corolla', 691, 5.4],\n // [2007, 1, 'Peugeot ', 'Peugeot 307', 481, 3.8],\n // [2008, 1, 'Toyota ', 'Toyota Prius', 217, 2.2],\n // [2008, 1, 'Skoda ', 'Skoda Octavia', 216, 2.2],\n // [2008, 1, 'Peugeot ', 'Peugeot 308', 135, 1.4],\n // [2008, 2, 'Ford ', 'Ford Mondeo', 624, 5.9],\n // [2008, 2, 'Volkswagen ', 'Volkswagen Passat', 551, 5.2],\n // [2008, 2, 'Volkswagen ', 'Volkswagen Golf', 488, 4.6],\n // [2008, 2, 'Volvo ', 'Volvo V70', 392, 3.7],\n // [2008, 2, 'Toyota ', 'Toyota Auris', 342, 3.2],\n // [2008, 2, 'Volkswagen ', 'Volkswagen Tiguan', 340, 3.2],\n // [2008, 2, 'Toyota ', 'Toyota Avensis', 315, 3],\n // [2008, 2, 'Nissan ', 'Nissan Qashqai', 272, 2.6],\n // [2008, 2, 'Nissan ', 'Nissan X-Trail', 271, 2.6],\n // [2008, 2, 'Mitsubishi ', 'Mitsubishi Outlander', 257, 2.4],\n // [2008, 2, 'Toyota ', 'Toyota Rav4', 250, 2.4],\n // [2008, 2, 'Ford ', 'Ford Focus', 235, 2.2],\n // [2008, 2, 'Skoda ', 'Skoda Octavia', 225, 2.1],\n // [2008, 2, 'Toyota ', 'Toyota Yaris', 222, 2.1],\n // [2008, 2, 'Honda ', 'Honda CR-V', 219, 2.1],\n // [2008, 2, 'Audi ', 'Audi A4', 200, 1.9],\n // [2008, 2, 'BMW ', 'BMW 3-serie', 184, 1.7],\n // [2008, 2, 'Toyota ', 'Toyota Prius', 165, 1.6],\n // [2008, 2, 'Peugeot ', 'Peugeot 207', 144, 1.4]\n // ];\n\n // Create workbook and worksheet\n const workbook = new Workbook();\n const worksheet = workbook.addWorksheet('Extraction');\n\n\n // Add Row and formatting\n const titleRow = worksheet.addRow([title]);\n // titleRow.font = { name: 'Comic Sans MS', family: 4, size: 16, underline: 'double', bold: true };\n titleRow.font = { size: 14, bold: true };\n worksheet.addRow([]);\n // const subTitleRow = worksheet.addRow(['Date : ' + this.datePipe.transform(new Date(), 'medium')]);\n\n\n // // Add Image\n // const logo = workbook.addImage({\n // base64: logoFile.logoBase64,\n // extension: 'png',\n // });\n\n // worksheet.addImage(logo, 'E1:F3');\n // worksheet.mergeCells('A1:D2');\n\n let alphaNumIndex = alphaNum[numOfCol - 1];\n worksheet.mergeCells(`A1:${alphaNumIndex}1`);\n\n // Blank Row\n worksheet.addRow([]);\n\n // Add Header Row\n const headerRow = worksheet.addRow(header);\n\n // Cell Style : Fill and Border\n headerRow.eachCell((cell, number) => {\n // cell.fill = {\n // type: 'pattern',\n // pattern: 'solid',\n // fgColor: { argb: 'FFFFFF00' },\n // bgColor: { argb: 'FF0000FF' }\n // };\n cell.font = { bold: true };\n\n cell.border = { top: { style: 'thin' }, left: { style: 'thin' }, bottom: { style: 'thin' }, right: { style: 'thin' } };\n });\n // worksheet.addRows(data);\n\n\n // Add Data and Conditional Formatting\n data.forEach(d => {\n const row = worksheet.addRow(d);\n const qty = row.getCell(5);\n // let color = 'FF99FF99';\n // if (+qty.value < 500) {\n // color = 'FF9999';\n // }\n // if (row.cellCount < 7) {\n // row.border = { left: { style: 'thin' }, right: { style: 'thin' } };\n // }\n\n row.eachCell((cell, number) => {\n cell.border = { left: { style: 'thin' }, bottom: { style: 'thin' }, right: { style: 'thin' } };\n\n });\n\n // qty.fill = {\n // type: 'pattern',\n // pattern: 'solid',\n // fgColor: { argb: color }\n // };\n }\n\n );\n\n worksheet.columns.forEach(function (column, i) {\n // if (i !== 0) {\n var maxLength = 0;\n column[\"eachCell\"]({ includeEmpty: true }, function (cell) {\n var columnLength = cell.value ? cell.value.toString().length : 10;\n if (columnLength > maxLength) {\n maxLength = columnLength;\n }\n });\n column.width = maxLength < 10 ? 10 : maxLength;\n // }\n });\n\n // worksheet.getColumn(3).width = 30;\n // worksheet.getColumn(4).width = 30;\n worksheet.addRow([]);\n\n\n // // Footer Row\n // const footerRow = worksheet.addRow(['This is system generated excel sheet.']);\n // footerRow.getCell(1).fill = {\n // type: 'pattern',\n // pattern: 'solid',\n // fgColor: { argb: 'FFCCFFE5' }\n // };\n // footerRow.getCell(1).border = { top: { style: 'thin' }, left: { style: 'thin' }, bottom: { style: 'thin' }, right: { style: 'thin' } };\n\n // // Merge Cells\n // worksheet.mergeCells(`A${footerRow.number}:F${footerRow.number}`);\n\n // Generate Excel File with given name\n workbook.xlsx.writeBuffer().then((data: any) => {\n const blob = new Blob([data], { type: 'application/vnd.openxmlformats-officedocument.spreadsheetml.sheet' });\n fs.saveAs(blob, 'Extraction.xlsx');\n });\n\n }\n}","import { Injectable, Inject } from '@angular/core';\nimport { HttpErrorResponse, HttpEvent, HttpHandler, HttpInterceptor, HttpRequest } from '@angular/common/http';\nimport { Observable, of, throwError } from 'rxjs';\nimport { catchError } from 'rxjs/operators';\nimport { Router } from '@angular/router';\nimport { OAuthService } from 'angular-oauth2-oidc';\nimport { finalize, mergeMap, delay, retryWhen } from \"rxjs/operators\";\nimport { LoaderService } from '../loader/loader.service';\nimport { AlertConfirmationComponent } from 'src/app/component/alert-confirmation/alert-confirmation.component';\nimport { UtilService } from '../util/util.service';\n\n@Injectable({\n providedIn: 'root'\n})\nexport class InterceptService implements HttpInterceptor {\n\n constructor(private router: Router,\n private oauthService: OAuthService, readonly loaderService: LoaderService, readonly utilService: UtilService) {\n }\n\n /**\n * Intercept request to handle error cases\n * @param request\n * @param next\n */\n private loaderCount: number = 0;\n intercept(request: HttpRequest, next: HttpHandler): Observable> {\n // request.\n\n /**\n * continues request execution\n */\n //request = request.clone({ url: `${this.baseUrl}/${request.url}` });\n // request = request.clone({\n // setHeaders: {\n // Authorization: `Bearer ${this.oidcSecurityService.getToken()}`\n // }\n // });\n\n if (this.loaderCount == 0) {\n this.loaderService.show();\n }\n this.loaderCount++;\n return next.handle(request).pipe(\n // finalize(() => {\n // this.loaderCount--;\n // if (this.loaderCount == 0) {\n // this.loaderService.hide();\n // }\n\n // })\n retryWhen((error) => {\n return error.pipe(\n mergeMap((error, index) => {\n // console.log(\"interceptor error\", error, error.error.errors[0].errorMessage);\n if(error.error.errors){\n if (error.error.errors[0].errorMessage === \"The received access_token is expired.\") {\n\n // const lastURL = localStorage.getItem(\"lURL\");\n // if (!lastURL) {\n // const claims = this.oauthService.getIdentityClaims();\n // // console.log(\"this.difference(new Date(claims['exp'] * 1000), new Date()) < 28\", this.difference(new Date(claims['exp'] * 1000), new Date()) < 28, new Date(claims['exp'] * 1000), new Date())\n // // if (this.difference(new Date(claims['exp'] * 1000), new Date()) < 28) {\n // if (new Date() > new Date(claims['exp'] * 1000)) {\n // // console.log(\"datediff\", this.difference(new Date(claims['exp'] * 1000), new Date()));\n // const store = window.sessionStorage;\n // Object.keys(store).forEach((key) => {\n // localStorage[key] = store.getItem(key);\n // });\n sessionStorage.setItem(\"lURL\", window.location.pathname);\n this.utilService.setExpired(true);\n alert(this.utilService.getTranslateName(`COMMON.sessionexp`));\n // const dialogRef = this.dialog.open(AlertConfirmationComponent, {\n // disableClose: true,\n // width: '550px',\n // data: { 'display': this.utilService.getTranslateName(`COMMON.sessionexp`), 'isAlert': true, 'isText': false }\n // });\n\n // dialogRef.afterClosed().subscribe(result => {\n // // this.oauthService.logOut();\n\n this.router.navigate([\"\"]);\n // window.location.reload();\n // })\n // }\n // }\n\n }\n }\n throw error;\n })\n )\n }\n ),\n\n finalize(() => {\n this.loaderCount--;\n if (this.loaderCount == 0) {\n this.loaderService.hide();\n }\n\n })\n\n );\n\n\n return next.handle(request).pipe(catchError((error, caught) => {\n // send the code error received from back end to translation service in a toast\n if (error.status === 401 || error.status === 403) {\n if (request.url !== '/api/v1/user') {\n this.router.navigate(['']);\n } else {\n return throwError(error);\n }\n } else if (request.responseType === 'json' && error.error instanceof Array) {\n this.handleJsonError(error);\n } else {\n this.handleError(error);\n }\n return of(error);\n\n }) as any);\n }\n\n /**\n * manage errors\n * @param err\n * @returns {any}\n */\n private handleError(error: HttpErrorResponse): Observable {\n\n // // handle error and rethrow\n // const toastOptions: ToastOptions = {\n // title: error.name,\n // msg: error.message,\n // showClose: true,\n // timeout: 5000\n // };\n\n // this.toastyService.error(toastOptions);\n\n throw error;\n }\n\n /**\n * manage errors\n * @param err\n * @returns {any}\n */\n private handleJsonError(error: HttpErrorResponse): Observable {\n // handle error and rethrow\n // const toastOptions: ToastOptions = {\n // title: this.translatePipe.transform(error.error[0].code),\n // msg: this.translatePipe.transform(error.error[0].code + '_DSC', error.error[0].variables),\n // showClose: true,\n // timeout: 5000\n // };\n\n // this.toastyService.error(toastOptions);\n\n throw error;\n }\n\n}\n","import { Injectable } from '@angular/core';\nimport { Subject } from 'rxjs';\n\n@Injectable()\nexport class LoaderService {\n isLoading = new Subject();\n show() {\n this.isLoading.next(true);\n }\n hide() {\n this.isLoading.next(false);\n }\n}","import { Injectable } from '@angular/core';\nimport { stringify } from 'querystring';\n\n@Injectable({\n providedIn: 'root'\n})\nexport class RequestService {\n\n constructor() { }\n\n getAllRequestData() {\n let requestStoresData = [];\n const req1 = sessionStorage.getItem(\"request1\");\n const req2 = sessionStorage.getItem(\"request2\");\n const req3 = sessionStorage.getItem(\"request3\");\n\n if (req1 !== 'undefined' && req1 !== null) {\n requestStoresData.push(JSON.parse(req1));\n }\n\n if (req2 !== 'undefined' && req2 !== null) {\n requestStoresData.push(JSON.parse(req2));\n }\n\n if (req3 !== 'undefined' && req3 !== null) {\n requestStoresData.push(JSON.parse(req3));\n }\n\n return requestStoresData;\n }\n\n getSelectedLang() {\n let selectedLang;\n const lang = sessionStorage.getItem(\"selectedLang\");\n if (selectedLang !== 'undefined' && selectedLang !== null) {\n selectedLang = lang;\n }\n return selectedLang;\n }\n\n addLang(lang) {\n sessionStorage.setItem(\"selectedLang\", lang);\n }\n\n getRegionMsg() {\n let selectedRegion = {};\n const europe = sessionStorage.getItem(\"europeRegion\");\n const mercosur = sessionStorage.getItem(\"mercosurRegion\");\n if (selectedRegion !== 'undefined' && selectedRegion !== null) {\n selectedRegion = {\n 'europe': europe,\n 'mercosur': mercosur\n };\n }\n return selectedRegion;\n }\n\n addRegionMsg(europeBool, mercosurBool) {\n sessionStorage.setItem(\"europeRegion\", europeBool);\n sessionStorage.setItem(\"mercosurRegion\", mercosurBool);\n }\n\n addRequestData(regionName, tableName, requestStoresData) {\n let reqId = [1, 2, 3];\n\n for (const item of reqId) {\n if (requestStoresData.filter(a => a.id === item).length < 1) {\n const reqData = {\n \"id\": item, \"region\": regionName, \"table\": tableName, 'lang': this.getSelectedLang(), 'characterList': {\n 'characterListType1': { 'group0': [] },\n 'characterListType2': { 'group0': [] },\n 'characterListType3': { 'group0': [] }\n }\n };\n // const reqData = { \"id\": item, \"region\": regionName, \"table\": tableName, 'lang': this.getSelectedLang(), 'characterList': {} };\n\n sessionStorage.setItem(\"request\" + item, JSON.stringify(reqData));\n break;\n }\n }\n }\n\n updateReqDataLang(lang, requestID) {\n let req: any = JSON.parse(sessionStorage.getItem('request' + (requestID + 1)));\n req['lang'] = lang;\n sessionStorage.setItem(\"request\" + (requestID + 1), JSON.stringify(req));\n }\n\n removeRequestData(requestID) {\n sessionStorage.setItem(\"request\" + requestID, undefined);\n const reqData = this.getAllRequestData();\n for (let index = 0; index < reqData.length; index++) {\n const element = reqData[index];\n if (index < element.id - 1) {\n element.id = index + 1;\n sessionStorage.setItem(\"request\" + element.id, JSON.stringify(element));\n sessionStorage.setItem(\"request\" + (index + 2), undefined);\n }\n }\n }\n\n addRequestReGroupment(value, requestID) {\n let reGroupment: any = JSON.parse(sessionStorage.getItem('request' + (requestID + 1)));\n reGroupment['regroupment'] = value;\n sessionStorage.setItem(\"request\" + (requestID + 1), JSON.stringify(reGroupment));\n }\n\n addPopulationRequest(data, requestID) {\n let populationList: any = JSON.parse(sessionStorage.getItem('request' + (requestID + 1)));\n populationList['populationList'] = data;\n sessionStorage.setItem(\"request\" + (requestID + 1), JSON.stringify(populationList));\n }\n\n addRequestVuePrivateIPNData(value, requestID) {\n let vue: any = JSON.parse(sessionStorage.getItem('request' + (requestID + 1)));\n vue['vuePrivateIPNData'] = value;\n sessionStorage.setItem(\"request\" + (requestID + 1), JSON.stringify(vue));\n }\n\n addRequestVueAffichStatus(value, requestID) {\n let vue: any = JSON.parse(sessionStorage.getItem('request' + (requestID + 1)));\n vue['vueAffichStatus'] = value;\n sessionStorage.setItem(\"request\" + (requestID + 1), JSON.stringify(vue));\n }\n\n addRequestVue(value, requestID) {\n let vue: any = JSON.parse(sessionStorage.getItem('request' + (requestID + 1)));\n vue['vue'] = value;\n sessionStorage.setItem(\"request\" + (requestID + 1), JSON.stringify(vue));\n }\n\n addRequestCharacter(value, requestID, type) {\n let character: any = JSON.parse(sessionStorage.getItem('request' + (requestID + 1)));\n character['characterList']['characterListType' + type] = value;\n sessionStorage.setItem(\"request\" + (requestID + 1), JSON.stringify(character));\n }\n\n setTabName(val, requestID) {\n let request: any = JSON.parse(sessionStorage.getItem('request' + (requestID + 1)));\n request['queryName'] = val;\n sessionStorage.setItem(\"request\" + (requestID + 1), JSON.stringify(request));\n }\n\n selectedQuery(val, requestID) {\n let request: any = JSON.parse(sessionStorage.getItem('request' + (requestID + 1)));\n request['selectedQuery'] = val;\n sessionStorage.setItem(\"request\" + (requestID + 1), JSON.stringify(request));\n }\n\n duplicateSelectedQuery(val, requestID) {\n let request: any = JSON.parse(sessionStorage.getItem('request' + (requestID + 1)));\n request['duplicateSelectedQuery'] = val;\n sessionStorage.setItem(\"request\" + (requestID + 1), JSON.stringify(request));\n }\n\n roleBasedQuery(val, requestID) {\n let request: any = JSON.parse(sessionStorage.getItem('request' + (requestID + 1)));\n request['roleBasedQuery'] = val;\n sessionStorage.setItem(\"request\" + (requestID + 1), JSON.stringify(request));\n }\n}\n","import { NativeDateAdapter, DateAdapter, MAT_DATE_FORMATS, MatDateFormats } from \"@angular/material\";\n\n\nexport class AppDateAdapter extends NativeDateAdapter {\n\n parse(value: any): Date | null {\n if ((typeof value === 'string') && (value.indexOf('/') > -1)) {\n const str = value.split('/');\n const year = Number(str[2]);\n const month = Number(str[1]) - 1;\n const date = Number(str[0]);\n return new Date(year, month, date);\n }\n const timestamp = typeof value === 'number' ? value : Date.parse(value);\n return isNaN(timestamp) ? null : new Date(timestamp);\n }\n format(date: Date, displayFormat: string): string {\n if (displayFormat == \"input\") {\n let day = date.getDate();\n let month = date.getMonth() + 1;\n let year = date.getFullYear();\n return this._to2digit(day) + '/' + this._to2digit(month) + '/' + year;\n } else if (displayFormat == \"inputMonth\") {\n let month = date.getMonth() + 1;\n let year = date.getFullYear();\n return this._to2digit(month) + '/' + year;\n } else {\n return date.toDateString();\n }\n }\n\n private _to2digit(n: number) {\n return ('00' + n).slice(-2);\n }\n}\n\nexport const APP_DATE_FORMATS =\n{\n parse: {\n dateInput: { month: 'short', year: 'numeric', day: 'numeric' }\n },\n display: {\n // dateInput: { month: 'short', year: 'numeric', day: 'numeric' },\n dateInput: 'input',\n // monthYearLabel: { month: 'short', year: 'numeric', day: 'numeric' },\n monthYearLabel: 'inputMonth',\n dateA11yLabel: { year: 'numeric', month: 'long', day: 'numeric' },\n monthYearA11yLabel: { year: 'numeric', month: 'long' },\n }\n}","import { Injectable } from '@angular/core';\nimport { BehaviorSubject } from 'rxjs';\nimport moment from 'moment';\nimport { RequestService } from '../request/request.service';\nimport { TranslateService } from '@ngx-translate/core';\nimport { OAuthService } from 'angular-oauth2-oidc';\nimport { JwtHelperService } from '@auth0/angular-jwt';\n\n@Injectable({\n providedIn: 'root'\n})\nexport class UtilService {\n\n public $favoriteConnecton$: BehaviorSubject;\n public $showIcon$: BehaviorSubject;\n helper = new JwtHelperService();\n $showQuickLink$: BehaviorSubject;\n\n isExpired;\n\n constructor(readonly requestService: RequestService, readonly translateService: TranslateService, private oauthService: OAuthService) {\n this.getSelectedLang();\n this.$favoriteConnecton$ = new BehaviorSubject('');\n this.$showIcon$ = new BehaviorSubject(true);\n this.$showQuickLink$ = new BehaviorSubject(false);\n }\n\n getUserProfile() {\n // const claims = sessionStorage.getItem('claims');\n // // console.log('claims', JSON.parse(claims))\n // return JSON.parse(claims);\n // console.log('this.helper.decodeToken(sessionStorage.getItem', this.helper.decodeToken(sessionStorage.getItem('access_token')));\n return this.helper.decodeToken(sessionStorage.getItem('access_token'));\n // this.$claimsDetails$.subscribe(a => {\n // if (a !== '') {\n // console.log('aaaaaaaaaa', JSON.parse(a));\n // return JSON.parse(a);\n // } else {\n // // const claims = this.oauthService.getIdentityClaims();\n // return this.oauthService.getIdentityClaims();\n // }\n // })\n // return this.oauthService.getIdentityClaims();\n }\n\n getSelectedLang() {\n const selectedLang = this.requestService.getSelectedLang();\n return selectedLang;\n }\n\n getTranslateName(label) {\n let transName;\n this.translateService.get(label).subscribe(a => {\n // console.log('ttttttttttttttt', a);\n transName = a;\n })\n return transName;\n }\n\n setExpired(val) {\n this.isExpired = val;\n }\n\n getExpired() {\n console.log(\"expired\", this.isExpired);\n return this.isExpired;\n }\n\n sortLangArray(lang) {\n return function (a, b) {\n if (a[lang] && b[lang]) {\n if (a[lang].match(/\\w/) && b[lang].match(/\\w/)) {\n return a[lang].toLowerCase().localeCompare(b[lang].toLowerCase());\n } else {\n return 0;\n }\n }\n }\n }\n\n\n sortArray(a, b) {\n if (a.match(/\\w/) && b.match(/\\w/)) {\n return a.toLowerCase().localeCompare(b.toLowerCase());\n } else {\n return 0;\n }\n }\n\n sortArrayCriteriaListGCOName(a, b) {\n if (a.GCOName.match(/\\w/) && b.GCOName.match(/\\w/)) {\n return a.GCOName.toLowerCase().localeCompare(b.GCOName.toLowerCase());\n } else {\n return 0;\n }\n }\n\n sortArrayCriteriaListGCONameDesc(a, b) {\n if (b.GCOName.match(/\\w/) && a.GCOName.match(/\\w/)) {\n return b.GCOName.toLowerCase().localeCompare(a.GCOName.toLowerCase());\n } else {\n return 0;\n }\n }\n\n sortArrayCriteriaListLongFR(a, b) {\n if (a.longFR.match(/\\w/) && b.longFR.match(/\\w/)) {\n return a.longFR.toLowerCase().localeCompare(b.longFR.toLowerCase());\n } else {\n return 0;\n }\n }\n\n sortArrayCriteriaListLongFRDesc(a, b) {\n if (b.longFR.match(/\\w/) && a.longFR.match(/\\w/)) {\n return b.longFR.toLowerCase().localeCompare(a.longFR.toLowerCase());\n } else {\n return 0;\n }\n }\n\n sortArrayCriteriaListLongEN(a, b) {\n if (a.longEN.match(/\\w/) && b.longEN.match(/\\w/)) {\n return a.longEN.toLowerCase().localeCompare(b.longEN.toLowerCase());\n } else {\n return 0;\n }\n }\n\n sortArrayCriteriaListLongENDesc(a, b) {\n if (b.longEN.match(/\\w/) && a.longEN.match(/\\w/)) {\n return b.longEN.toLowerCase().localeCompare(a.longEN.toLowerCase());\n } else {\n return 0;\n }\n }\n\n sortArrayCriteriaListShortFR(a, b) {\n if (a.shortFR.match(/\\w/) && b.shortFR.match(/\\w/)) {\n return a.shortFR.toLowerCase().localeCompare(b.shortFR.toLowerCase());\n } else {\n return 0;\n }\n }\n\n sortArrayCriteriaListShortFRDesc(a, b) {\n if (b.shortFR.match(/\\w/) && a.shortFR.match(/\\w/)) {\n return b.shortFR.toLowerCase().localeCompare(a.shortFR.toLowerCase());\n } else {\n return 0;\n }\n }\n\n sortArrayCriteriaListShortEN(a, b) {\n if (a.shortEN && b.shortEN) {\n if (a.shortEN.match(/\\w/) && b.shortEN.match(/\\w/)) {\n return a.shortEN.toLowerCase().localeCompare(b.shortEN.toLowerCase());\n } else {\n return 0;\n }\n } else {\n return 0;\n }\n }\n\n sortArrayCriteriaListShortENDesc(a, b) {\n if (a.shortEN && b.shortEN) {\n if (b.shortEN.match(/\\w/) && a.shortEN.match(/\\w/)) {\n return b.shortEN.toLowerCase().localeCompare(a.shortEN.toLowerCase());\n } else {\n return 0;\n }\n } else {\n return 0;\n }\n }\n\n\n sortArrayCriteriaList(a, b) {\n if (a.label.match(/\\w/) && b.label.match(/\\w/)) {\n return a.label.toLowerCase().localeCompare(b.label.toLowerCase());\n } else {\n return 0;\n }\n }\n\n\n sortArrayValueList(a, b) {\n if (a.table.match(/\\w/) && b.table.match(/\\w/)) {\n return a.table.toLowerCase().localeCompare(b.table.toLowerCase());\n } else {\n return 0;\n }\n }\n\n MySort(alphabet) {\n return function (a, b) {\n var index_a = alphabet.indexOf(a[0]),\n index_b = alphabet.indexOf(b[0]);\n\n if (index_a === index_b) {\n // same first character, sort regular\n if (a < b) {\n return -1;\n } else if (a > b) {\n return 1;\n }\n return 0;\n } else {\n return index_a - index_b;\n }\n }\n }\n\n sortArraySpecial(a, b) {\n let digitRegex = /^\\d/;\n let alphabetRegex = /^[a-zA-Z]/;\n let symbolRegex = /^[^\\w\\s]/;\n\n let scoreA = +symbolRegex.test(a) * 1 || +digitRegex.test(a) * 10 || +alphabetRegex.test(a) * 100;\n let scoreB = +symbolRegex.test(b) * 1 || +digitRegex.test(b) * 10 || +alphabetRegex.test(b) * 100;\n\n if (scoreA !== scoreB) {\n return scoreA - scoreB;\n }\n\n if (a < b) {\n return -1;\n } else if (a > b) {\n return 1;\n }\n\n return 0;\n }\n\n convertUTCDateToLocalDate(date) {\n const utcTime = date;\n const utcText = moment(utcTime).format(\"L hh:mm:ss A\");\n return new Date(utcText);\n }\n\n addOpenedWindowName(pathName) {\n this.removeQueryWindowNameInList(pathName);\n let openedWindowNameList = this.getOpenedWindowNameList();\n if (openedWindowNameList[openedWindowNameList.length - 1] !== pathName) {\n openedWindowNameList.push(pathName);\n sessionStorage.setItem(\"openedWindow\", JSON.stringify(openedWindowNameList));\n }\n }\n\n removeQueryWindowNameInList(pathName) {\n let openedWindow = sessionStorage.getItem(\"openedWindow\") ? JSON.parse(sessionStorage.getItem(\"openedWindow\")) : [];\n if (openedWindow.length > 0) {\n if (openedWindow.indexOf(pathName) >= 0) {\n openedWindow.splice(openedWindow.indexOf(pathName), 1);\n }\n sessionStorage.setItem('openedWindow', JSON.stringify(openedWindow));\n }\n }\n\n getOpenedWindowNameList() {\n const nList = sessionStorage.getItem(\"openedWindow\");\n if (nList) {\n if (nList.length > 0) {\n return JSON.parse(nList);\n } else {\n return [];\n }\n }\n return [];\n }\n\n removeOpenedWindowName(pathName) {\n let openedWindowNameList = this.getOpenedWindowNameList();\n if (openedWindowNameList.length > 0) {\n if (openedWindowNameList[openedWindowNameList.length - 1] === pathName) {\n openedWindowNameList.splice(openedWindowNameList.length - 1, 1);\n }\n sessionStorage.setItem(\"openedWindow\", JSON.stringify(openedWindowNameList));\n }\n }\n\n setTrace(msg) {\n let data = sessionStorage.getItem('trace');\n if (typeof (msg) === 'object') {\n data = data + '\\r\\n' + JSON.stringify(msg, null, 4);\n } else {\n if (data === \"\") {\n data = data + msg;\n } else {\n data = data + '\\r\\n' + msg;\n }\n }\n sessionStorage.setItem('trace', data)\n }\n}\n","export const environment = {\n production: true,\n idp: {\n // scope: 'openid arcaX role-pil-irn6804',\n scope: 'openid alliance_profile apis.default legacy',\n silentRefreshRedirectUri: window.location.origin + '/silent-refresh.html',\n redirectUri: window.location.origin.replace('https://', 'http://'),\n prod: {\n openIdEndPoint: 'https://idp.renault.com/nidp/oauth/nam/.well-known/openid-configuration',\n loginUrl: 'https://idp.renault.com/nidp/oauth/nam/authz',\n logoutUrl: 'https://idp.renault.com/nidp/oauth/nam/authz',\n userinfoEndpoint: 'https://idp.renault.com/nidp/oauth/nam/userinfo',\n issuer: 'https://idp.renault.com/nidp/oauth/nam/authz',\n responseType: 'id_token token',\n postLoginRoute: '',\n forbiddenRoute: '',\n unauthorizedRoute: '',\n dev: {\n ///IDP\n /*loginUrl: 'https://idp2.renault.com/nidp/oauth/nam/authz',\n logoutUrl: 'https://idp2.renault.com/nidp/app/logout',\n userinfoEndpoint: 'https://idp2.renault.com/nidp/oauth/nam/userinfo',\n issuer: 'https://idp2.renault.com/nidp/oauth/nam',\n client_id: 'ed066280-a724-4b16-aeba-b97f98d4f51e',*/\n\n //OKTA\n issuer: 'https://sso-uat.renault.com/oauth2/austwoeshbCkPJyw1416',\n loginUrl: 'https://sso-uat.renault.com/oauth2/austwoeshbCkPJyw1416/v1/authorize',\n userinfoEndpoint: 'https://sso-uat.renault.com/oauth2/austwoeshbCkPJyw1416/v1/userinfo',\n logoutUrl: '',\n client_id: 'irn-76658_uat_pkce_jgawggxqub2a',\n\n redirect_uri: 'https://pil-app.gke2.dev.gcp.renault.com/',\n baseUrl: 'https://pil-app.gke2.dev.gcp.renault.com/',\n apiURL: 'https://pil-app.gke2.dev.gcp.renault.com/common-backend-api/common-api-request',\n apikey: 'XM789pzBwYkchgTWJwdk3In0veoqFUct',\n // apiURL: '/pil/',\n piwikID: 2342,\n apisBaseUrl: 'https://apis-qa.renault.com/pil/v1/'\n },\n re7: {\n\n //IDP\n /*loginUrl: 'https://idp2.renault.com/nidp/oauth/nam/authz',\n logoutUrl: 'https://idp2.renault.com/nidp/app/logout',\n userinfoEndpoint: 'https://idp2.renault.com/nidp/oauth/nam/userinfo',\n issuer: 'https://idp2.renault.com/nidp/oauth/nam',\n client_id: '3cafd93b-e110-4788-bc68-330f17a096ab',*/\n\n //OKTA\n issuer: 'https://sso-uat.renault.com/oauth2/austwoeshbCkPJyw1416',\n loginUrl: 'https://sso-uat.renault.com/oauth2/austwoeshbCkPJyw1416/v1/authorize',\n userinfoEndpoint: 'https://sso-uat.renault.com/oauth2/austwoeshbCkPJyw1416/v1/userinfo',\n logoutUrl: '',\n client_id: 'irn-76658_uat_pkce_jgawggxqub2a',\n\n\n redirect_uri: 'https://pil-app.gke2.int.gcp.renault.com/',\n baseUrl: 'https://pil-app.gke2.int.gcp.renault.com/',\n // apiURL: '/pil/',\n apiURL: 'https://pil-app.gke2.int.gcp.renault.com/common-backend-api/common-api-request',\n apikey: 'XM789pzBwYkchgTWJwdk3In0veoqFUct',\n piwikID: 2341,\n apisBaseUrl: 'https://apis-qa.renault.com/pil/v1/'\n },\n localhost: {\n\n //IDP\n /*loginUrl: 'https://idp2.renault.com/nidp/oauth/nam/authz',\n logoutUrl: 'https://idp2.renault.com/nidp/app/logout',\n userinfoEndpoint: 'https://idp2.renault.com/nidp/oauth/nam/userinfo',\n issuer: 'https://idp2.renault.com/nidp/oauth/nam',\n client_id: '3cafd93b-e110-4788-bc68-330f17a096ab',*/\n\n //OKTA\n issuer: 'https://sso-uat.renault.com/oauth2/austwoeshbCkPJyw1416',\n loginUrl: 'https://sso-uat.renault.com/oauth2/austwoeshbCkPJyw1416/v1/authorize',\n userinfoEndpoint: 'https://sso-uat.renault.com/oauth2/austwoeshbCkPJyw1416/v1/userinfo',\n logoutUrl: '',\n client_id: 'irn-76658_uat_pkce_jgawggxqub2a',\n\n\n redirect_uri: 'http://localhost:4200/',\n baseUrl: 'https://pil-app.gke2.int.gcp.renault.com/',\n // apiURL: '/pil/',\n apiURL: 'https://pil-app.gke2.int.gcp.renault.com/common-backend-api/common-api-request',\n apikey: 'XM789pzBwYkchgTWJwdk3In0veoqFUct',\n piwikID: 2341,\n apisBaseUrl: 'https://apis-qa.renault.com/pil/v1/'\n },\n ope: {\n // IDP\n /* loginUrl: 'https://idp.renault.com/nidp/oauth/nam/authz',\n logoutUrl: 'https://idp.renault.com/nidp/app/logout',\n userinfoEndpoint: 'https://idp.renault.com/nidp/oauth/nam/userinfo',\n issuer: 'https://idp.renault.com/nidp/oauth/nam',\n client_id: 'b5572c06-4e2a-408c-8cab-a6c97ea96a2e', */\n\n // OKTA\n issuer: 'https://sso.renault.com/oauth2/aus133y6mks4ptDss417',\n loginUrl: 'https://sso.renault.com/oauth2/aus133y6mks4ptDss417/v1/authorize',\n userinfoEndpoint: 'https://sso.renault.com/oauth2/aus133y6mks4ptDss417/v1/userinfo',\n logoutUrl: '',\n client_id: 'irn-76658_ope_pkce_9idgcotpigco',\n\n redirect_uri: 'https://pil.app.renault.com/',\n baseUrl: 'https://pil.app.renault.com/',\n // apiURL: 'https://apis.renault.com/pil/v1/',\n apiURL: 'https://pil.app.renault.com/common-backend-api/common-api-request',\n apikey: 'eicXN1S2aTscGJrRfExQM5oA3M24IGMB',\n // apiURL: '/pil/',\n piwikID: 2343,\n apisBaseUrl: 'https://apis.renault.com/pil/v1/'\n }\n }\n },\n timeOutwhenNotInteractive: 60,\n maxIdAllowed: 60,\n};\n\n","// This file can be replaced during build by using the `fileReplacements` array.\n// `ng build --prod` replaces `environment.ts` with `environment.prod.ts`.\n// The list of file replacements can be found in `angular.json`.\n\nexport const environment = {\n production: false\n};\n\n/*\n * For easier debugging in development mode, you can import the following file\n * to ignore zone related error stack frames such as `zone.run`, `zoneDelegate.invokeTask`.\n *\n * This import should be commented out in production mode because it will have a negative impact\n * on performance if an error is thrown.\n */\n// import 'zone.js/dist/zone-error'; // Included with Angular CLI.\n","import { enableProdMode } from '@angular/core';\nimport { platformBrowserDynamic } from '@angular/platform-browser-dynamic';\n\nimport { AppModule } from './app/app.module';\nimport { environment } from './environments/environment';\n\nif (environment.production) {\n enableProdMode();\n}\n\nplatformBrowserDynamic().bootstrapModule(AppModule)\n .catch(err => console.error(err));\n","/* (ignored) */","/* (ignored) */","/* (ignored) */"],"sourceRoot":"webpack:///"}