{"version":3,"file":"main.js","mappings":"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AACpD;AACqB;AACZ;AACwB;AACvC;AACmB;AACO;AAC4B;AACvC;AACwB;AACY;AACF;AACtB;AACkB;AAC3B;AACmB;AACL;AACU;AACzC;AACc;AACwB;AACtC;AACiB;AACH;AACM;AACqB;AACpB;AACH;AACiB;AACnB;AACf;AACyB;AACT;AACb;AACC;AACY;AACT;AACwB;AACjD;AACoC;AACY;AACxB;AACoB;AACnC;AACgB;AACgC;AACnD;AACiB;AACC;AACC;AAC+B;AACY;AAGnC;AACqB;AACf;AACoC;AACtC;AACrC;AACI;AACoC;AAEW;AACY;AACiB;AACA;AAC6B;AACF;AAC3E;AAC4E;AAChH;AACM;AACA;AACA;AAC+C;AAC1B;AACoB;AACN;AACH;AACiB;AACA;AACvB;AACS;AACT;AACpB;AACoD;AACvB;AACY;AACG;AAC0B;AACtB;AACZ;AACkD;AAC9C;AACoB;AAC7B;AACkB;AACxC;AAC0B;AAC8B;AACjC;AACM;AAElB;AACkC;AACtB;AACW;AACK;AACe;AAC9C;AACoD;AACnD;AACmB;AACzB;AACiB;AACH;AACwB;AAClB;AACS;AACR;AACrC;AAC2B;AACS;AACW;AAEsC;AAE3C;AACH;AACmC;AACrB;AAChD;AACmB;AACA;;;;;;;;;;;;;;;AAGxE,SAAS,iBAAiB,CAAC,UAAsB;IACtD,OAAO,IAAI,6EAAmB,CAAC,UAAU,EAAE,gBAAgB,EAAE,OAAO,CAAC,CAAC;AACxE,CAAC;AAyLM,MAAM,SAAS;;kEAAT,SAAS;wGAAT,SAAS,cAFR,wDAAY;6GATb;QACT,EAAE,OAAO,EAAE,yDAAY,EAAE,QAAQ,EAAE,mEAAkB,EAAE;QACvD,EAAE,OAAO,EAAE,qEAAiB,EAAE,QAAQ,EAAE,yEAAqB,EAAE,KAAK,EAAE,IAAI,EAAE;QAC5E,EAAE,OAAO,EAAE,+DAAgB,EAAE,QAAQ,EAAE,mEAAoB,EAAE;QAC7D,EAAE,OAAO,EAAE,uEAAe,EAAE,QAAQ,EAAE,EAAE,EAAE;QAC1C,+DAAa;QACb,wEAAc;KACf,YArCC,yDAAW;QACX,iEAAmB;QACnB,sEAAa;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0E;AAC1E,gEAAgE;AAEzD,MAAM,WAAW,GAAG;IACzB,UAAU,EAAE,KAAK;IACjB,IAAI,EAAE,0CAA0C;IAChD,OAAO,EAAE,MAAM,CAAC,QAAQ,CAAC,MAAM;IAC/B,QAAQ,EAAE,MAAM,CAAC,QAAQ,CAAC,MAAM;IAChC,uCAAuC;IACvC,uCAAuC;IACvC,wCAAwC;IACxC,oDAAoD;IACpD,wCAAwC;IACxC,sCAAsC;IACtC,sCAAsC;IACtC,6CAA6C;IAC7C,8CAA8C;IAC9C,gCAAgC;IAChC,gCAAgC;CAEjC,CAAC;AAEF;;;;;;GAMG;AACH,sEAAsE;;;;;;;;;;;;;;;;;;AC9BvB;AAGF;AACY;AAEzD,IAAI,6EAAsB,EAAE;IAC1B,6DAAc,EAAE,CAAC;CAClB;AAED,wEAAwB,CAAC,eAAe,CAAC,sDAAS,CAAC;KAChD,KAAK,CAAC,GAAG,CAAC,EAAE,CAAC,OAAO,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC;;;;;;;;;;;ACXpC;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;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;;;AAGA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;;ACnSA;;;;;;;;;;ACAA;;;;;;;;;;ACAA","sources":["./src/app/app-routing.module.ts","./src/app/app.component.ts","./src/app/app.component.html","./src/app/app.module.ts","./src/app/components/action-dialog/action-dialog/action-dialog.component.ts","./src/app/components/action-dialog/action-dialog/action-dialog.component.html","./src/app/components/ag-grid-table/ag-grid-table.component.ts","./src/app/components/ag-grid-table/ag-grid-table.component.html","./src/app/components/app-card/app-card.component.ts","./src/app/components/app-card/app-card.component.html","./src/app/components/available-widget-selection/available-widget-selection.component.ts","./src/app/components/available-widget-selection/available-widget-selection.component.html","./src/app/components/avatar-group/avatar-group.component.ts","./src/app/components/avatar-group/avatar-group.component.html","./src/app/components/bread-crumb/bread-crumb.component.ts","./src/app/components/bread-crumb/bread-crumb.component.html","./src/app/components/bussion-login/bussion-login.component.ts","./src/app/components/bussion-login/bussion-login.component.html","./src/app/components/bussion-main/bussion-main.component.ts","./src/app/components/bussion-main/bussion-main.component.html","./src/app/components/card-with-actions/card-with-actions.component.ts","./src/app/components/card-with-actions/card-with-actions.component.html","./src/app/components/chatbot/chatbot.component.ts","./src/app/components/chatbot/chatbot.component.html","./src/app/components/code-editor/code-editor.component.ts","./src/app/components/code-editor/code-editor.component.html","./src/app/components/column-select-dialog/column-select-dialog.component.ts","./src/app/components/column-select-dialog/column-select-dialog.component.html","./src/app/components/console-screen/console-screen.component.ts","./src/app/components/console-screen/console-screen.component.html","./src/app/components/custom-badge-with-clear/custom-badge-with-clear.component.ts","./src/app/components/custom-badge-with-clear/custom-badge-with-clear.component.html","./src/app/components/custom-card-with-desc/custom-card-with-desc.component.ts","./src/app/components/custom-card-with-desc/custom-card-with-desc.component.html","./src/app/components/custom-color-picker/custom-color-picker.component.ts","./src/app/components/custom-color-picker/custom-color-picker.component.html","./src/app/components/custom-context-menu/custom-context-menu.component.ts","./src/app/components/custom-context-menu/custom-context-menu.component.html","./src/app/components/custom-dropdown-menu-with-search/custom-dropdown-menu-with-search.component.ts","./src/app/components/custom-dropdown-menu-with-search/custom-dropdown-menu-with-search.component.html","./src/app/components/custom-header/custom-header.component.ts","./src/app/components/custom-header/custom-header.component.html","./src/app/components/custom-leftmenu/custom-leftmenu.component.ts","./src/app/components/custom-leftmenu/custom-leftmenu.component.html","./src/app/components/custom-loading/custom-loading.component.ts","./src/app/components/custom-loading/custom-loading.component.html","./src/app/components/custom-title-box/custom-title-box.component.ts","./src/app/components/custom-title-box/custom-title-box.component.html","./src/app/components/dashboard-header/dashboard-header.component.ts","./src/app/components/dashboard-header/dashboard-header.component.html","./src/app/components/dashboard-opener/dashboard-opener.component.ts","./src/app/components/dashboard-opener/dashboard-opener.component.html","./src/app/components/dashboard-performance-info/dashboard-performance-info.component.ts","./src/app/components/dashboard-performance-info/dashboard-performance-info.component.html","./src/app/components/dashboard-preview/dashboard-preview.component.ts","./src/app/components/dashboard-preview/dashboard-preview.component.html","./src/app/components/dashboard-selection/dashboard-selection.component.ts","./src/app/components/dashboard-selection/dashboard-selection.component.html","./src/app/components/data-app-design/data-app-design.component.ts","./src/app/components/data-app-design/data-app-design.component.html","./src/app/components/data-list/data-list.component.ts","./src/app/components/data-list/data-list.component.html","./src/app/components/data-table/data-table.component.ts","./src/app/components/data-table/data-table.component.html","./src/app/components/dynamic-home/dynamic-home.component.ts","./src/app/components/dynamic-login/dynamic-login.component.ts","./src/app/components/edit-table/edit-table.component.ts","./src/app/components/edit-table/edit-table.component.html","./src/app/components/expand-table/expand-table.component.ts","./src/app/components/expand-table/expand-table.component.html","./src/app/components/filter-badge/filter-badge.component.ts","./src/app/components/filter-badge/filter-badge.component.html","./src/app/components/filter-form/filter-form.component.ts","./src/app/components/filter-form/filter-form.component.html","./src/app/components/filter-list/filter-list.component.ts","./src/app/components/filter-list/filter-list.component.html","./src/app/components/filter-selection/filter-selection.component.ts","./src/app/components/filter-selection/filter-selection.component.html","./src/app/components/flow-draw/flow-draw.component.ts","./src/app/components/flow-draw/flow-draw.component.html","./src/app/components/gridster/gridster.component.ts","./src/app/components/gridster/gridster.component.html","./src/app/components/header/header.component.ts","./src/app/components/header/header.component.html","./src/app/components/image-selectbox/image-selectbox.component.ts","./src/app/components/image-selectbox/image-selectbox.component.html","./src/app/components/language-form/language-form.component.ts","./src/app/components/language-form/language-form.component.html","./src/app/components/language-management/language-management.component.ts","./src/app/components/language-management/language-management.component.html","./src/app/components/list-item-with-icon/list-item-with-icon.component.ts","./src/app/components/list-item-with-icon/list-item-with-icon.component.html","./src/app/components/loading/loading.component.ts","./src/app/components/loading/loading.component.html","./src/app/components/mail-scedule-form/mail-scedule-form.component.ts","./src/app/components/mail-scedule-form/mail-scedule-form.component.html","./src/app/components/modal-title/modal-title.component.ts","./src/app/components/modal-title/modal-title.component.html","./src/app/components/modals/custom-modal/custom-modal.component.ts","./src/app/components/modals/custom-modal/custom-modal.component.html","./src/app/components/modals/expanded-widget/expanded-widget.component.ts","./src/app/components/modals/expanded-widget/expanded-widget.component.html","./src/app/components/modals/log/log.component.ts","./src/app/components/modals/log/log.component.html","./src/app/components/modals/messages/messages.component.ts","./src/app/components/modals/messages/messages.component.html","./src/app/components/modals/share-form/share-form.component.ts","./src/app/components/modals/share-form/share-form.component.html","./src/app/components/modals/views/views.component.ts","./src/app/components/modals/views/views.component.html","./src/app/components/photo-upload/photo-upload.component.ts","./src/app/components/photo-upload/photo-upload.component.html","./src/app/components/popover/popover-container/popover-container.component.ts","./src/app/components/popover/popover-container/popover-container.component.html","./src/app/components/popover/popover.directive.ts","./src/app/components/popover/popover.module.ts","./src/app/components/popover/popover.service.ts","./src/app/components/preview-widget/preview-widget.component.ts","./src/app/components/preview-widget/preview-widget.component.html","./src/app/components/search-input/search-input.component.ts","./src/app/components/search-input/search-input.component.html","./src/app/components/selection-list-with-search/selection-list-with-search.component.ts","./src/app/components/selection-list-with-search/selection-list-with-search.component.html","./src/app/components/self-service-dashboard-form/self-service-dashboard-form.component.ts","./src/app/components/self-service-dashboard-form/self-service-dashboard-form.component.html","./src/app/components/self-service-dashboardList/self-service-dashboard-list/self-service-dashboard-list.component.ts","./src/app/components/self-service-dashboardList/self-service-dashboard-list/self-service-dashboard-list.component.html","./src/app/components/self-service-dataStoreList/self-service-data-store-list/self-service-data-store-list.component.ts","./src/app/components/self-service-dataStoreList/self-service-data-store-list/self-service-data-store-list.component.html","./src/app/components/self-service-datastore-file/self-service-datastore-file/self-service-datastore-file.component.ts","./src/app/components/self-service-datastore-file/self-service-datastore-file/self-service-datastore-file.component.html","./src/app/components/self-service-datastore-form/self-service-datastore-form.component.ts","./src/app/components/self-service-datastore-form/self-service-datastore-form.component.html","./src/app/components/self-service-designer/self-service-designer.component.ts","./src/app/components/self-service-designer/self-service-designer.component.html","./src/app/components/self-service-main/self-service-main.component.ts","./src/app/components/self-service-main/self-service-main.component.html","./src/app/components/self-service/self-service-analyze/self-service-analyze.component.ts","./src/app/components/self-service/self-service-analyze/self-service-analyze.component.html","./src/app/components/share-person-form/share-person-form.component.ts","./src/app/components/share-person-form/share-person-form.component.html","./src/app/components/share-preview-modal/share-preview-modal.component.ts","./src/app/components/share-preview-modal/share-preview-modal.component.html","./src/app/components/speech-microphone/speech-microphone.component.ts","./src/app/components/speech-microphone/speech-microphone.component.html","./src/app/components/splash-screen/splash-screen.component.ts","./src/app/components/splash-screen/splash-screen.component.html","./src/app/components/sub-header/sub-header.component.ts","./src/app/components/sub-header/sub-header.component.html","./src/app/components/title/title.component.ts","./src/app/components/title/title.component.html","./src/app/components/toast/toast.component.ts","./src/app/components/toast/toast.component.html","./src/app/components/upload-configuration-form/upload-configuration-form.component.ts","./src/app/components/upload-configuration-form/upload-configuration-form.component.html","./src/app/components/user-card/user-card.component.ts","./src/app/components/user-card/user-card.component.html","./src/app/components/view-button/view-button.component.ts","./src/app/components/view-button/view-button.component.html","./src/app/components/widget-preview/widget-preview.component.ts","./src/app/components/widget-preview/widget-preview.component.html","./src/app/constants/endpoints.ts","./src/app/constants/enums.ts","./src/app/constants/filterTypes.ts","./src/app/core/auth.guard.ts","./src/app/core/error.handler.ts","./src/app/core/http.interceptor.ts","./src/app/core/permission.guard.ts","./src/app/core/speechTypes.ts","./src/app/core/utils.ts","./src/app/material.module.ts","./src/app/models/globals/languages.ts","./src/app/pages/flow/flow-designer/flow-designer.component.ts","./src/app/pages/flow/flow-designer/flow-designer.component.html","./src/app/pages/flow/flow-form/flow-form.component.ts","./src/app/pages/flow/flow-form/flow-form.component.html","./src/app/pages/flow/flow-line-rule-form/flow-line-rule-form.component.ts","./src/app/pages/flow/flow-line-rule-form/flow-line-rule-form.component.html","./src/app/pages/flow/flow-list/flow-list.component.ts","./src/app/pages/flow/flow-list/flow-list.component.html","./src/app/pages/flow/flow-log/flow-log.component.ts","./src/app/pages/flow/flow-log/flow-log.component.html","./src/app/pages/flow/flow-node-parameter-form/flow-node-parameter-form.component.ts","./src/app/pages/flow/flow-node-parameter-form/flow-node-parameter-form.component.html","./src/app/pages/flow/flow.component.ts","./src/app/pages/flow/flow.component.html","./src/app/pages/flow/script-form/script-form.component.ts","./src/app/pages/flow/script-form/script-form.component.html","./src/app/pages/home/home.component.ts","./src/app/pages/login/login.component.ts","./src/app/pages/main/main.component.ts","./src/app/pages/main/main.component.html","./src/app/pages/manage/bussion-logs/bussion-logs.component.ts","./src/app/pages/manage/bussion-logs/bussion-logs.component.html","./src/app/pages/manage/color-palette/color-palette-form/color-palette-form.component.ts","./src/app/pages/manage/color-palette/color-palette-form/color-palette-form.component.html","./src/app/pages/manage/color-palette/color-palette.component.ts","./src/app/pages/manage/color-palette/color-palette.component.html","./src/app/pages/manage/connector/connector-form/connector-form.component.ts","./src/app/pages/manage/connector/connector-form/connector-form.component.html","./src/app/pages/manage/connector/connector.component.ts","./src/app/pages/manage/connector/connector.component.html","./src/app/pages/manage/dashboard/dashboard-designer/dashboard-designer.component.ts","./src/app/pages/manage/dashboard/dashboard-designer/dashboard-designer.component.html","./src/app/pages/manage/dashboard/dashboard-designer/widget-form/setting-section/setting-section.component.ts","./src/app/pages/manage/dashboard/dashboard-designer/widget-form/setting-section/setting-section.component.html","./src/app/pages/manage/dashboard/dashboard-designer/widget-form/widget-form.component.ts","./src/app/pages/manage/dashboard/dashboard-designer/widget-form/widget-form.component.html","./src/app/pages/manage/dashboard/dashboard-filter/dashboard-filter.component.ts","./src/app/pages/manage/dashboard/dashboard-filter/dashboard-filter.component.html","./src/app/pages/manage/dashboard/dashboard-form/dashboard-form.component.ts","./src/app/pages/manage/dashboard/dashboard-form/dashboard-form.component.html","./src/app/pages/manage/dashboard/dashboard.component.ts","./src/app/pages/manage/dashboard/dashboard.component.html","./src/app/pages/manage/datastore/datastore-form/datastore-form.component.ts","./src/app/pages/manage/datastore/datastore-form/datastore-form.component.html","./src/app/pages/manage/datastore/datastore.component.ts","./src/app/pages/manage/datastore/datastore.component.html","./src/app/pages/manage/datastore/index-form/index-form.component.ts","./src/app/pages/manage/datastore/index-form/index-form.component.html","./src/app/pages/manage/deploy-app/create-app/create-app.component.ts","./src/app/pages/manage/deploy-app/create-app/create-app.component.html","./src/app/pages/manage/deploy-app/deploy-app.component.ts","./src/app/pages/manage/deploy-app/deploy-app.component.html","./src/app/pages/manage/global-function/function-form/function-form.component.ts","./src/app/pages/manage/global-function/function-form/function-form.component.html","./src/app/pages/manage/global-function/global-function.component.ts","./src/app/pages/manage/global-function/global-function.component.html","./src/app/pages/manage/group/group-form/group-form.component.ts","./src/app/pages/manage/group/group-form/group-form.component.html","./src/app/pages/manage/group/group.component.ts","./src/app/pages/manage/group/group.component.html","./src/app/pages/manage/landing/landing/landing.component.ts","./src/app/pages/manage/landing/landing/landing.component.html","./src/app/pages/manage/ldap-config/ldap-config.component.ts","./src/app/pages/manage/ldap-config/ldap-config.component.html","./src/app/pages/manage/license/license.component.ts","./src/app/pages/manage/license/license.component.html","./src/app/pages/manage/manage.component.ts","./src/app/pages/manage/manage.component.html","./src/app/pages/manage/node/node-form/node-form.component.ts","./src/app/pages/manage/node/node-form/node-form.component.html","./src/app/pages/manage/node/node.component.ts","./src/app/pages/manage/node/node.component.html","./src/app/pages/manage/node/server-arch/server-arch.component.ts","./src/app/pages/manage/node/server-arch/server-arch.component.html","./src/app/pages/manage/password-policy/password-policy.component.ts","./src/app/pages/manage/password-policy/password-policy.component.html","./src/app/pages/manage/role/role-form/role-form.component.ts","./src/app/pages/manage/role/role-form/role-form.component.html","./src/app/pages/manage/role/role.component.ts","./src/app/pages/manage/role/role.component.html","./src/app/pages/manage/scripts/script-form/script-form/script-form.component.ts","./src/app/pages/manage/scripts/script-form/script-form/script-form.component.html","./src/app/pages/manage/scripts/scripts.component.ts","./src/app/pages/manage/scripts/scripts.component.html","./src/app/pages/manage/system-parameters/system-parameters.component.ts","./src/app/pages/manage/system-parameters/system-parameters.component.html","./src/app/pages/manage/user/create-user/create-user.component.ts","./src/app/pages/manage/user/create-user/create-user.component.html","./src/app/pages/manage/user/user.component.ts","./src/app/pages/manage/user/user.component.html","./src/app/pages/manage/visual/visual-form/visual-form.component.ts","./src/app/pages/manage/visual/visual-form/visual-form.component.html","./src/app/pages/manage/visual/visual.component.ts","./src/app/pages/manage/visual/visual.component.html","./src/app/pages/manage/widget-library/widget-library-form/widget-library-form.component.ts","./src/app/pages/manage/widget-library/widget-library-form/widget-library-form.component.html","./src/app/pages/manage/widget-library/widget-library.component.ts","./src/app/pages/manage/widget-library/widget-library.component.html","./src/app/pages/not-auth/not-auth.component.ts","./src/app/pages/not-auth/not-auth.component.html","./src/app/pages/register/register.component.ts","./src/app/pages/register/register.component.html","./src/app/pages/self-service/grid-analytics/grid-analytics.component.ts","./src/app/pages/self-service/grid-analytics/grid-analytics.component.html","./src/app/pages/self-service/self-service.component.ts","./src/app/pages/self-service/self-service.component.html","./src/app/pages/share-preview/share-preview.component.ts","./src/app/pages/share-preview/share-preview.component.html","./src/app/services/architecture/architecture.service.ts","./src/app/services/auth/auth.service.ts","./src/app/services/bussion-main/bussion-main.service.ts","./src/app/services/chatbot/chatbot.service.ts","./src/app/services/color-palette/color-palette.service.ts","./src/app/services/connector/connector.service.ts","./src/app/services/core/core.service.ts","./src/app/services/dashboard/dashboard.service.ts","./src/app/services/dataStore/data-store.service.ts","./src/app/services/deploy-app/deploy-app.service.ts","./src/app/services/filter-ai/filter-ai.service.ts","./src/app/services/flow-scripts/flow-script.service.ts","./src/app/services/global-function/global-function.service.ts","./src/app/services/group/group.service.ts","./src/app/services/license/license.service.ts","./src/app/services/login/login.service.ts","./src/app/services/mail/mail-service.service.ts","./src/app/services/message/message.service.ts","./src/app/services/modal/modal.service.ts","./src/app/services/node/node.service.ts","./src/app/services/permission/permission.service.ts","./src/app/services/role/role.service.ts","./src/app/services/script-loader/script-loader.service.ts","./src/app/services/scripts/scripts.service.ts","./src/app/services/self-service/self.service.ts","./src/app/services/share/share.service.ts","./src/app/services/sweet-alert/sweet-alert.service.ts","./src/app/services/system-parameters/system-parameters.service.ts","./src/app/services/translate/custom-translate-loader.service.ts","./src/app/services/user/user.service.ts","./src/app/services/visual/visual.service.ts","./src/app/services/widget-library/widget-library.service.ts","./src/app/services/widget/widget.service.ts","./src/assets/fonts/Montserrat.ts","./src/assets/fonts/MontserratBold.ts","./src/environments/environment.ts","./src/main.ts","./node_modules/moment/locale/ sync ^\\.\\/.*$","ignored|/Users/ideateknoloji/Desktop/BussionFrontend/node_modules/crypto-js|crypto","ignored|/Users/ideateknoloji/Desktop/BussionFrontend/node_modules/pptxgenjs/dist|fs","ignored|/Users/ideateknoloji/Desktop/BussionFrontend/node_modules/pptxgenjs/dist|https"],"sourcesContent":["import { Component, NgModule } from '@angular/core';\nimport { Routes, RouterModule } from '@angular/router';\nimport { MainComponent } from './pages/main/main.component';\nimport { AuthGuard, LoginGuard } from './core/auth.guard';\nimport { LoginComponent } from './pages/login/login.component';\nimport { ManageComponent } from './pages/manage/manage.component';\nimport { UserComponent } from './pages/manage/user/user.component';\nimport { GroupComponent } from './pages/manage/group/group.component';\nimport { RoleComponent } from './pages/manage/role/role.component';\nimport { WidgetLibraryComponent } from './pages/manage/widget-library/widget-library.component';\nimport { VisualComponent } from './pages/manage/visual/visual.component';\nimport { DatastoreComponent } from './pages/manage/datastore/datastore.component';\nimport { NodeComponent } from './pages/manage/node/node.component';\nimport { ColorPaletteComponent } from './pages/manage/color-palette/color-palette.component';\nimport { DashboardComponent } from './pages/manage/dashboard/dashboard.component';\nimport { DashboardDesignerComponent } from './pages/manage/dashboard/dashboard-designer/dashboard-designer.component';\nimport { GlobalFunctionComponent } from './pages/manage/global-function/global-function.component';\nimport { ConnectorComponent } from './pages/manage/connector/connector.component';\nimport { SharePreviewComponent } from './pages/share-preview/share-preview.component';\nimport { PermissionGuard } from './core/permission.guard';\nimport { LicenseComponent } from './pages/manage/license/license.component';\nimport { LdapConfigComponent } from './pages/manage/ldap-config/ldap-config.component';\nimport { PasswordPolicyComponent } from './pages/manage/password-policy/password-policy.component';\nimport { DeployApp } from './pages/manage/deploy-app/deploy-app.component';\nimport { HomeComponent } from './pages/home/home.component';\nimport { ScriptsComponent } from './pages/manage/scripts/scripts.component';\nimport { LandingComponent } from './pages/manage/landing/landing/landing.component';\nimport { SystemParametersComponent } from './pages/manage/system-parameters/system-parameters.component';\nimport { BussionLogsComponent } from './pages/manage/bussion-logs/bussion-logs.component';\nimport { DashboardOpenerComponent } from './components/dashboard-opener/dashboard-opener.component';\nimport { BussionMainComponent } from './components/bussion-main/bussion-main.component';\nimport { BussionLoginComponent } from './components/bussion-login/bussion-login.component';\nimport { SelfServiceMainComponent } from './components/self-service-main/self-service-main.component';\nimport { SelfServiceDesignerComponent } from './components/self-service-designer/self-service-designer.component';\nimport { SelfServiceDataStoreListComponent } from './components/self-service-dataStoreList/self-service-data-store-list/self-service-data-store-list.component';\nimport { SelfServiceDashboardListComponent } from './components/self-service-dashboardList/self-service-dashboard-list/self-service-dashboard-list.component';\nimport { SelfServiceComponent } from './pages/self-service/self-service.component';\nimport { SelfServiceAnalyzeComponent } from './components/self-service/self-service-analyze/self-service-analyze.component';\n\nimport { FlowDesignerComponent } from './pages/flow/flow-designer/flow-designer.component';\nimport { SharePreviewModalComponent } from './components/share-preview-modal/share-preview-modal.component';\nimport { DataAppDesignComponent } from './components/data-app-design/data-app-design.component';\nimport { LanguageManagementComponent } from './components/language-management/language-management.component';\nimport { ServerArchComponent } from './pages/manage/node/server-arch/server-arch.component';\nimport { EditTableComponent } from './components/edit-table/edit-table.component';\nimport { GridAnalyticsComponent } from './pages/self-service/grid-analytics/grid-analytics.component';\nimport { FlowListComponent } from './pages/flow/flow-list/flow-list.component';\nimport { FlowComponent } from './pages/flow/flow.component';\n\n\nconst routes: Routes = [\n {\n path: '',\n component: HomeComponent,\n canActivate: [AuthGuard, PermissionGuard]\n },\n {\n path: 'main',\n component: MainComponent,\n canActivate: [AuthGuard]\n\n },\n {\n path: 'flow',\n component: FlowComponent,\n canActivate: [AuthGuard],\n children: [\n { path: '', component: FlowListComponent, canActivate: [AuthGuard], },\n { path: 'flow-designer', component: FlowDesignerComponent, canActivate: [AuthGuard, PermissionGuard], },\n { path: 'flow-designer/:flowId', component: FlowDesignerComponent, canActivate: [AuthGuard, PermissionGuard] },\n ]\n\n },\n {\n path: 'selfservice',\n component: SelfServiceComponent,\n canActivate: [AuthGuard],\n children: [\n { path: 'data-store-list', component: SelfServiceDataStoreListComponent, canActivate: [AuthGuard, PermissionGuard], },\n { path: 'dashboard-list', component: SelfServiceDashboardListComponent, canActivate: [AuthGuard, PermissionGuard], },\n { path: 'self-service-design/:dashboardId', component: SelfServiceDesignerComponent, canActivate: [AuthGuard, PermissionGuard], },\n { path: 'self-service-design', component: SelfServiceDesignerComponent, canActivate: [AuthGuard, PermissionGuard], },\n { path: 'analyze', component: SelfServiceAnalyzeComponent, canActivate: [AuthGuard, PermissionGuard], },\n \n { path: 'analyze/grid-analytics/:dataStoreId', component: GridAnalyticsComponent, canActivate: [AuthGuard, PermissionGuard] },\n { path: '', component: SelfServiceMainComponent, canActivate: [AuthGuard], },\n ]\n\n },\n {\n path: 'landing',\n component: LandingComponent,\n canActivate: [AuthGuard, PermissionGuard],\n children: [\n { path: 'user', component: UserComponent, canActivate: [AuthGuard, PermissionGuard], },\n { path: 'group', component: GroupComponent, canActivate: [AuthGuard, PermissionGuard], },\n { path: 'role', component: RoleComponent, canActivate: [AuthGuard, PermissionGuard], },\n { path: 'deploy-app', component: DeployApp, canActivate: [AuthGuard, PermissionGuard] },\n { path: 'widget-library', component: WidgetLibraryComponent, canActivate: [AuthGuard, PermissionGuard] },\n { path: 'visual', component: VisualComponent, canActivate: [AuthGuard, PermissionGuard] },\n { path: 'datastore', component: DatastoreComponent, canActivate: [AuthGuard, PermissionGuard] },\n { path: 'node', component: NodeComponent, canActivate: [AuthGuard, PermissionGuard] },\n { path: 'color-palette', component: ColorPaletteComponent, canActivate: [AuthGuard, PermissionGuard] },\n { path: 'dashboard', component: DashboardComponent, canActivate: [AuthGuard, PermissionGuard] },\n { path: 'dashboard/designer/:dashboardId', component: DashboardDesignerComponent, canActivate: [AuthGuard, PermissionGuard] },\n { path: 'global-functions', component: GlobalFunctionComponent, canActivate: [AuthGuard, PermissionGuard] },\n { path: 'scripts', component: ScriptsComponent, canActivate: [AuthGuard, PermissionGuard] },\n { path: 'connectors', component: ConnectorComponent, canActivate: [AuthGuard, PermissionGuard] },\n { path: 'license', component: LicenseComponent, canActivate: [AuthGuard, PermissionGuard] },\n { path: 'ldap-config', component: LdapConfigComponent, canActivate: [AuthGuard, PermissionGuard] },\n { path: 'password-policy', component: PasswordPolicyComponent, canActivate: [AuthGuard, PermissionGuard] },\n { path: 'system-parameters', component: SystemParametersComponent, canActivate: [AuthGuard, PermissionGuard] },\n { path: 'bussion-logs', component: BussionLogsComponent, canActivate: [AuthGuard, PermissionGuard] },\n { path: 'bussion-main', component: BussionMainComponent, canActivate: [AuthGuard, PermissionGuard] },\n { path: 'bussion-login', component: BussionLoginComponent, canActivate: [AuthGuard, PermissionGuard] },\n { path: 'language-setting', component: LanguageManagementComponent, canActivate: [AuthGuard, PermissionGuard] },\n { path: 'architecture', component: ServerArchComponent, canActivate: [AuthGuard, PermissionGuard] }\n\n\n\n\n\n ]\n },\n\n {\n path: 'manage',\n component: ManageComponent,\n canActivate: [AuthGuard],\n children: [\n { path: 'user', component: UserComponent, canActivate: [AuthGuard, PermissionGuard], },\n { path: 'group', component: GroupComponent, canActivate: [AuthGuard, PermissionGuard], },\n { path: 'role', component: RoleComponent, canActivate: [AuthGuard, PermissionGuard], },\n { path: 'deploy-app', component: DeployApp, canActivate: [AuthGuard, PermissionGuard] },\n { path: 'widget-library', component: WidgetLibraryComponent, canActivate: [AuthGuard, PermissionGuard] },\n { path: 'visual', component: VisualComponent, canActivate: [AuthGuard, PermissionGuard] },\n { path: 'datastore', component: DatastoreComponent, canActivate: [AuthGuard, PermissionGuard] },\n { path: 'node', component: NodeComponent, canActivate: [AuthGuard, PermissionGuard] },\n { path: 'color-palette', component: ColorPaletteComponent, canActivate: [AuthGuard, PermissionGuard] },\n { path: 'dashboard', component: DashboardComponent, canActivate: [AuthGuard, PermissionGuard] },\n { path: 'dashboard/designer/:dashboardId', component: DashboardDesignerComponent, canActivate: [AuthGuard, PermissionGuard] },\n { path: 'global-functions', component: GlobalFunctionComponent, canActivate: [AuthGuard, PermissionGuard] },\n { path: 'scripts', component: ScriptsComponent, canActivate: [AuthGuard, PermissionGuard] },\n { path: 'connectors', component: ConnectorComponent, canActivate: [AuthGuard, PermissionGuard] },\n { path: 'license', component: LicenseComponent, canActivate: [AuthGuard, PermissionGuard] },\n { path: 'ldap-config', component: LdapConfigComponent, canActivate: [AuthGuard, PermissionGuard] },\n { path: 'password-policy', component: PasswordPolicyComponent, canActivate: [AuthGuard, PermissionGuard] },\n { path: 'system-parameters', component: SystemParametersComponent, canActivate: [AuthGuard, PermissionGuard] },\n { path: 'bussion-logs', component: BussionLogsComponent, canActivate: [AuthGuard, PermissionGuard] },\n { path: 'bussion-main', component: BussionMainComponent, canActivate: [AuthGuard, PermissionGuard] },\n { path: 'bussion-login', component: BussionLoginComponent, canActivate: [AuthGuard, PermissionGuard] },\n { path: 'architecture', component: ServerArchComponent, canActivate: [AuthGuard, PermissionGuard] }\n\n\n ]\n },\n {\n path: 'share/:shareId/:filter',\n component: SharePreviewComponent\n },\n {\n path: 'dashboard-opener/:dashboardId',\n component: DashboardOpenerComponent\n },\n {\n path: 'share/:shareId',\n component: SharePreviewComponent\n },\n {\n path: 'login',\n component: LoginComponent,\n canActivate: [LoginGuard]\n },\n {\n path: 'data-app/:appId',\n component: DataAppDesignComponent,\n canActivate: [AuthGuard, PermissionGuard]\n },\n {\n path: 'main/:appId',\n component: MainComponent,\n canActivate: [AuthGuard, PermissionGuard]\n },\n {\n path: '**',\n component: MainComponent,\n canActivate: [AuthGuard]\n }\n];\n\n\n@NgModule({\n imports: [RouterModule.forRoot(routes)],\n exports: [RouterModule]\n})\nexport class AppRoutingModule { }\n","import { Component, HostListener } from '@angular/core';\nimport { AuthService } from './services/auth/auth.service';\nimport { TranslateService } from '@ngx-translate/core';\nimport { GlobalFunctionService } from './services/global-function/global-function.service';\nimport { ScriptLoaderService } from './services/script-loader/script-loader.service';\nimport { CoreService } from './services/core/core.service';\nimport { ChatbotComponent } from './components/chatbot/chatbot.component';\nimport { MatDialog } from '@angular/material/dialog';\nimport { NavigationEnd, Router } from '@angular/router';\nimport { MatSnackBar } from '@angular/material/snack-bar';\n\n\n@Component({\n selector: 'app-root',\n templateUrl: './app.component.html',\n styleUrls: ['./app.component.scss'],\n})\nexport class AppComponent {\n\n title = 'Bussion';\n showHeader: boolean = false;\n isChatboxOpen: boolean = false;\n permissions: string[] = []\n roles: string[] = []\n currentRoute: string = ''\n licencePermissions = localStorage.getItem('licence') ?? ''\n\n constructor(\n private authService: AuthService,\n private translate: TranslateService,\n private coreService: CoreService,\n private scriptService: ScriptLoaderService,\n private dialog: MatDialog,\n private router: Router,\n private snackBar: MatSnackBar\n ) {\n this.checkSession();\n this.setLangulage();\n this.coreService.loadCustomSVG();\n this.getHeaderStatus();\n\n\n }\n\n ngOnInit(): void {\n\n this.permissions = this.authService.getPermissions()\n this.roles = this.authService.getRoles()\n this.authService.setLanguage(this.authService.getUserLanguage())\n this.router.events.subscribe((event) => {\n if (event instanceof NavigationEnd) {\n this.currentRoute = event.url;\n }\n });\n }\n\n\n @HostListener('document:click', ['$event'])\n handleClick(event: MouseEvent) {\n // Toast mesajı dışında bir yere tıklandığında Snackbar'ı kapat\n if (!Array.from((event.target as HTMLElement).classList).some(x => x.includes('snack-bar')))\n this.snackBar.dismiss()\n }\n\n\n getHeaderStatus() {\n this.coreService.headerStatus().subscribe(status => {\n this.showHeader = status;\n })\n }\n // openChatbox() {\n // this.dialog.open(ChatbotComponent, {\n // width: '80%',\n // height: '80%',\n // panelClass: 'chat-dialog-container',\n // });\n // }\n\n\n toggleChatbox() {\n if (this.isChatboxOpen) {\n this.dialog.closeAll(); // Tüm açık dialogları kapat\n } else {\n this.openChatbox();\n }\n }\n openChatbox() {\n this.isChatboxOpen = true;\n this.dialog.open(ChatbotComponent, {\n width: '80%',\n height: '80%',\n panelClass: 'chat-dialog-container',\n }).afterClosed().subscribe(() => {\n this.isChatboxOpen = false;\n });\n }\n\n\n\n private setLangulage() {\n let lang = this.authService.getUserLanguage();\n this.translate.addLangs(['en', 'tr']);\n this.translate.setDefaultLang(lang);\n }\n\n checkSession() {\n this.authService.isLoggedIn().subscribe(result => {\n this.showHeader = result;\n });\n }\n\n}\n","\n\n\n\n\n\n","import { BrowserModule } from '@angular/platform-browser';\nimport { FormsModule, ReactiveFormsModule } from '@angular/forms';\nimport { NgModule, CUSTOM_ELEMENTS_SCHEMA, ErrorHandler } from '@angular/core';\nimport { AppRoutingModule } from './app-routing.module';\nimport { AppComponent } from './app.component';\nimport { BrowserAnimationsModule } from '@angular/platform-browser/animations';\nimport { HttpClientModule, HTTP_INTERCEPTORS, HttpClient } from '@angular/common/http';\nimport { CustomHttpInterceptor } from './core/http.interceptor';\nimport { NgxSpinnerModule } from 'ngx-spinner';\nimport { CustomErrorHandler } from './core/error.handler';\nimport { MonacoEditorModule } from 'ngx-monaco-editor';\nimport { ColorPickerModule } from 'ngx-color-picker';\nimport { GridsterModule } from 'angular-gridster2';\n\nimport { LoginComponent } from './pages/login/login.component';\nimport { MainComponent } from './pages/main/main.component';\nimport { ManageComponent } from './pages/manage/manage.component';\nimport { HeaderComponent } from './components/header/header.component';\nimport { SubHeaderComponent } from './components/sub-header/sub-header.component';\nimport { UserComponent } from './pages/manage/user/user.component';\nimport { GroupComponent } from './pages/manage/group/group.component';\nimport { RoleComponent } from './pages/manage/role/role.component';\nimport { CreateUserComponent } from './pages/manage/user/create-user/create-user.component';\n\nimport { TranslateModule, TranslateLoader } from '@ngx-translate/core';\nimport { TranslateHttpLoader } from '@ngx-translate/http-loader';\nimport { RoleFormComponent } from './pages/manage/role/role-form/role-form.component';\nimport { GroupFormComponent } from './pages/manage/group/group-form/group-form.component';\nimport { ActionDialogComponent } from './components/action-dialog/action-dialog/action-dialog.component';\nimport { WidgetLibraryComponent } from './pages/manage/widget-library/widget-library.component';\nimport { WidgetLibraryFormComponent } from './pages/manage/widget-library/widget-library-form/widget-library-form.component';\nimport { VisualComponent } from './pages/manage/visual/visual.component';\nimport { VisualFormComponent } from './pages/manage/visual/visual-form/visual-form.component';\nimport { DatastoreComponent } from './pages/manage/datastore/datastore.component';\nimport { DatastoreFormComponent } from './pages/manage/datastore/datastore-form/datastore-form.component';\nimport { NodeComponent } from './pages/manage/node/node.component';\nimport { NodeFormComponent } from './pages/manage/node/node-form/node-form.component';\nimport { ColorPaletteComponent } from './pages/manage/color-palette/color-palette.component';\nimport { ColorPaletteFormComponent } from './pages/manage/color-palette/color-palette-form/color-palette-form.component';\nimport { DashboardComponent } from './pages/manage/dashboard/dashboard.component';\nimport { DashboardFormComponent } from './pages/manage/dashboard/dashboard-form/dashboard-form.component';\nimport { DashboardDesignerComponent } from './pages/manage/dashboard/dashboard-designer/dashboard-designer.component';\nimport { WidgetFormComponent } from './pages/manage/dashboard/dashboard-designer/widget-form/widget-form.component';\nimport { PreviewWidgetComponent } from './components/preview-widget/preview-widget.component';\nimport { DashboardFilterComponent } from './pages/manage/dashboard/dashboard-filter/dashboard-filter.component';\nimport { CodeEditorComponent } from './components/code-editor/code-editor.component';\nimport { ExpandedWidgetComponent } from './components/modals/expanded-widget/expanded-widget.component';\nimport { GlobalFunctionComponent } from './pages/manage/global-function/global-function.component';\nimport { FunctionFormComponent } from './pages/manage/global-function/function-form/function-form.component';\nimport { ToastComponent } from './components/toast/toast.component';\nimport { ConnectorComponent } from './pages/manage/connector/connector.component';\nimport { ConnectorFormComponent } from './pages/manage/connector/connector-form/connector-form.component';\nimport { TitleComponent } from './components/title/title.component';\nimport { FilterListComponent } from './components/filter-list/filter-list.component';\nimport { DataTableComponent } from './components/data-table/data-table.component';\nimport { PhotoUploadComponent } from './components/photo-upload/photo-upload.component';\nimport { DashboardSelectionComponent } from './components/dashboard-selection/dashboard-selection.component';\nimport { ShareFormComponent } from './components/modals/share-form/share-form.component';\nimport { SharePreviewComponent } from './pages/share-preview/share-preview.component';\nimport { DashboardPreviewComponent } from './components/dashboard-preview/dashboard-preview.component';\nimport { MessagesComponent } from './components/modals/messages/messages.component';\nimport { LogComponent } from './components/modals/log/log.component';\nimport { WidgetPreviewComponent } from './components/widget-preview/widget-preview.component';\nimport { ModalTitleComponent } from './components/modal-title/modal-title.component';\nimport { RegisterComponent } from './pages/register/register.component';\nimport { LocationStrategy, HashLocationStrategy } from '@angular/common';\nimport { FilterFormComponent } from './components/filter-form/filter-form.component';\nimport { LicenseComponent } from './pages/manage/license/license.component';\nimport { FilterSelectionComponent } from './components/filter-selection/filter-selection.component';\nimport { CookieService } from 'ngx-cookie-service';\nimport { LdapConfigComponent } from './pages/manage/ldap-config/ldap-config.component';\nimport { PasswordPolicyComponent } from './pages/manage/password-policy/password-policy.component';\nimport { DeployApp } from './pages/manage/deploy-app/deploy-app.component';\nimport { CreateAppComponent } from './pages/manage/deploy-app/create-app/create-app.component';\nimport { HomeComponent } from './pages/home/home.component';\nimport { AppCardComponent } from './components/app-card/app-card.component';\nimport { SharePreviewModalComponent } from './components/share-preview-modal/share-preview-modal.component';\nimport { NgxCaptchaModule } from '@binssoft/ngx-captcha';\nimport { LoadingComponent } from './components/loading/loading.component';\nimport { ViewsComponent } from './components/modals/views/views.component';\nimport { ScriptsComponent } from './pages/manage/scripts/scripts.component';\nimport { ScriptFormComponent } from './pages/manage/scripts/script-form/script-form/script-form.component';\nimport { ScriptFormComponent as SelfServiceScriptFormComponent } from './pages/flow/script-form/script-form.component';\n\n\nimport { LandingComponent } from './pages/manage/landing/landing/landing.component';\nimport { SystemParametersComponent } from './pages/manage/system-parameters/system-parameters.component';\nimport { BussionLogsComponent } from './pages/manage/bussion-logs/bussion-logs.component';\nimport { UploadConfigurationFormComponent } from './components/upload-configuration-form/upload-configuration-form.component';\nimport { BussionMainComponent } from './components/bussion-main/bussion-main.component';\nimport { MaterialModule } from './material.module';\nimport { MatIconModule } from '@angular/material/icon';\nimport { BussionLoginComponent } from './components/bussion-login/bussion-login.component';\n\nimport { SelfServiceMainComponent } from './components/self-service-main/self-service-main.component';\nimport { SelfServiceDesignerComponent } from './components/self-service-designer/self-service-designer.component';\nimport { SelfServiceDatastoreFormComponent } from './components/self-service-datastore-form/self-service-datastore-form.component';\nimport { SelfServiceDashboardFormComponent } from './components/self-service-dashboard-form/self-service-dashboard-form.component';\nimport { SelfServiceDataStoreListComponent } from './components/self-service-dataStoreList/self-service-data-store-list/self-service-data-store-list.component';\nimport { SelfServiceDashboardListComponent } from './components/self-service-dashboardList/self-service-dashboard-list/self-service-dashboard-list.component';\nimport { SelfServiceComponent } from './pages/self-service/self-service.component';\nimport { SelfServiceDatastoreFileComponent } from './components/self-service-datastore-file/self-service-datastore-file/self-service-datastore-file.component';\nimport { AgGridModule } from 'ag-grid-angular';\nimport { ColorSketchModule } from 'ngx-color/sketch';\nimport { ColorSliderModule } from 'ngx-color/slider';\nimport { ColorChromeModule } from 'ngx-color/chrome';\nimport { DashboardOpenerComponent } from './components/dashboard-opener/dashboard-opener.component';\nimport { ChatbotComponent } from './components/chatbot/chatbot.component';\nimport { ConsoleScreenComponent } from './components/console-screen/console-screen.component';\nimport { SearchInputComponent } from './components/search-input/search-input.component';\nimport { BreadCrumbComponent } from './components/bread-crumb/bread-crumb.component';\nimport { MailSceduleFormComponent } from './components/mail-scedule-form/mail-scedule-form.component';\nimport { SharePersonFormComponent } from './components/share-person-form/share-person-form.component';\nimport { UserCardComponent } from './components/user-card/user-card.component';\nimport { AvatarGroupComponent } from './components/avatar-group/avatar-group.component';\nimport { DataListComponent } from './components/data-list/data-list.component';\nimport { MAT_DIALOG_DATA } from '@angular/material/dialog';\nimport { ColumnSelectDialogComponent } from './components/column-select-dialog/column-select-dialog.component';\nimport { FilterBadgeComponent } from './components/filter-badge/filter-badge.component';\nimport { DashboardHeaderComponent } from './components/dashboard-header/dashboard-header.component';\nimport { SpeechMicrophoneComponent } from './components/speech-microphone/speech-microphone.component';\nimport { AvailableWidgetSelectionComponent } from './components/available-widget-selection/available-widget-selection.component';\nimport { ListItemWithIConComponent } from './components/list-item-with-icon/list-item-with-icon.component';\nimport { CustomModalComponent } from './components/modals/custom-modal/custom-modal.component';\nimport { CustomDropdownMenuWithSearchComponent } from './components/custom-dropdown-menu-with-search/custom-dropdown-menu-with-search.component';\nimport { CustomTitleBoxComponent } from './components/custom-title-box/custom-title-box.component';\nimport { CustomBadgeWithClearComponent } from './components/custom-badge-with-clear/custom-badge-with-clear.component';\nimport { AgGridTableComponent } from './components/ag-grid-table/ag-grid-table.component';\nimport { CustomColorPickerComponent } from './components/custom-color-picker/custom-color-picker.component';\nimport { PopoverModule } from './components/popover/popover.module';\nimport { CustomLoadingComponent } from './components/custom-loading/custom-loading.component';\nimport { SelfServiceAnalyzeComponent } from './components/self-service/self-service-analyze/self-service-analyze.component';\nimport { CustomHeaderComponent } from './components/custom-header/custom-header.component';\nimport { CustomLeftmenuComponent } from './components/custom-leftmenu/custom-leftmenu.component';\n\nimport { FlowDrawComponent } from './components/flow-draw/flow-draw.component';\nimport { CustomCardWithDescComponent } from './components/custom-card-with-desc/custom-card-with-desc.component';\nimport { FlowDesignerComponent } from './pages/flow/flow-designer/flow-designer.component';\nimport { CardWithActionsComponent } from './components/card-with-actions/card-with-actions.component';\nimport { FlowLineRuleFormComponent } from './pages/flow/flow-line-rule-form/flow-line-rule-form.component';\nimport { FlowNodeParameterFormComponent } from './pages/flow/flow-node-parameter-form/flow-node-parameter-form.component';\nimport { FlowLogComponent } from './pages/flow/flow-log/flow-log.component';\nimport { SelectionListWithSearchComponent } from './components/selection-list-with-search/selection-list-with-search.component';\nimport { GridsterComponent } from './components/gridster/gridster.component';\nimport { DataAppDesignComponent } from './components/data-app-design/data-app-design.component';\nimport { NotAuthComponent } from './pages/not-auth/not-auth.component';\nimport { ExpandTableComponent } from './components/expand-table/expand-table.component';\nimport { ViewButtonComponent } from './components/view-button/view-button.component';\nimport { LanguageManagementComponent } from './components/language-management/language-management.component';\nimport { LanguageFormComponent } from './components/language-form/language-form.component';\nimport { CustomTranslateLoaderService } from './services/translate/custom-translate-loader.service';\nimport { ServerArchComponent } from './pages/manage/node/server-arch/server-arch.component';\nimport { HotTableModule } from '@handsontable/angular';\nimport { EditTableComponent } from './components/edit-table/edit-table.component';\nimport { SplashScreenComponent } from './components/splash-screen/splash-screen.component';\nimport { GridAnalyticsComponent } from './pages/self-service/grid-analytics/grid-analytics.component';\n\nimport { SettingSectionComponent } from './pages/manage/dashboard/dashboard-designer/widget-form/setting-section/setting-section.component';\n\nimport { ImageSelectboxComponent } from './components/image-selectbox/image-selectbox.component';\nimport { IndexFormComponent } from './pages/manage/datastore/index-form/index-form.component';\nimport { DashboardPerformanceInfoComponent } from './components/dashboard-performance-info/dashboard-performance-info.component';\nimport { CustomContextMenuComponent } from './components/custom-context-menu/custom-context-menu.component';\nimport { FlowComponent } from './pages/flow/flow.component';\nimport { FlowListComponent } from './pages/flow/flow-list/flow-list.component';\nimport { FlowFormComponent } from './pages/flow/flow-form/flow-form.component';\n\n\nexport function HttpLoaderFactory(httpClient: HttpClient) {\n return new TranslateHttpLoader(httpClient, './assets/i18n/', '.json');\n}\n\n@NgModule({\n declarations: [\n AppComponent,\n LoginComponent,\n MainComponent,\n HomeComponent,\n ManageComponent,\n CreateAppComponent,\n HeaderComponent,\n SubHeaderComponent,\n UserComponent,\n GroupComponent,\n RoleComponent,\n CreateUserComponent,\n RoleFormComponent,\n GroupFormComponent,\n ActionDialogComponent,\n WidgetLibraryComponent,\n WidgetLibraryFormComponent,\n VisualComponent,\n VisualFormComponent,\n DatastoreComponent,\n DatastoreFormComponent,\n NodeComponent,\n NodeFormComponent,\n ColorPaletteComponent,\n ColorPaletteFormComponent,\n DashboardComponent,\n DashboardFormComponent,\n DashboardDesignerComponent,\n WidgetFormComponent,\n PreviewWidgetComponent,\n DashboardFilterComponent,\n CodeEditorComponent,\n ExpandedWidgetComponent,\n GlobalFunctionComponent,\n FunctionFormComponent,\n ToastComponent,\n ConnectorComponent,\n ConnectorFormComponent,\n TitleComponent,\n FilterListComponent,\n DataTableComponent,\n PhotoUploadComponent,\n DashboardSelectionComponent,\n ShareFormComponent,\n SharePreviewComponent,\n DashboardPreviewComponent,\n MessagesComponent,\n LogComponent,\n WidgetPreviewComponent,\n ModalTitleComponent,\n RegisterComponent,\n FilterFormComponent,\n LicenseComponent,\n FilterSelectionComponent,\n LdapConfigComponent,\n PasswordPolicyComponent,\n DeployApp,\n AppCardComponent,\n SharePreviewModalComponent,\n LoadingComponent,\n ViewsComponent,\n ScriptsComponent,\n ScriptFormComponent,\n LandingComponent,\n SystemParametersComponent,\n BussionLogsComponent,\n UploadConfigurationFormComponent,\n BussionMainComponent,\n BussionLoginComponent,\n SelfServiceMainComponent,\n SelfServiceDesignerComponent,\n SelfServiceDataStoreListComponent,\n SelfServiceDashboardListComponent,\n SelfServiceDatastoreFormComponent,\n DashboardOpenerComponent,\n BreadCrumbComponent,\n ChatbotComponent,\n SelfServiceDashboardFormComponent,\n SelfServiceDataStoreListComponent,\n SelfServiceDashboardListComponent,\n SelfServiceComponent,\n SelfServiceDatastoreFileComponent,\n ConsoleScreenComponent,\n SearchInputComponent,\n BreadCrumbComponent,\n MailSceduleFormComponent,\n SharePersonFormComponent,\n UserCardComponent,\n AvatarGroupComponent,\n DataListComponent,\n ViewsComponent,\n ColumnSelectDialogComponent,\n FilterBadgeComponent,\n DashboardHeaderComponent,\n SpeechMicrophoneComponent,\n AvailableWidgetSelectionComponent,\n ListItemWithIConComponent,\n CustomModalComponent,\n CustomDropdownMenuWithSearchComponent,\n CustomTitleBoxComponent,\n CustomBadgeWithClearComponent,\n AgGridTableComponent,\n CustomColorPickerComponent,\n CustomLoadingComponent,\n SelfServiceAnalyzeComponent,\n CustomHeaderComponent,\n CustomLeftmenuComponent,\n FlowDrawComponent,\n CustomCardWithDescComponent,\n SelfServiceScriptFormComponent,\n FlowFormComponent,\n FlowDesignerComponent,\n CardWithActionsComponent,\n FlowLineRuleFormComponent,\n FlowNodeParameterFormComponent,\n FlowLogComponent,\n SelectionListWithSearchComponent,\n GridsterComponent,\n DataAppDesignComponent,\n NotAuthComponent,\n ExpandTableComponent,\n ViewButtonComponent,\n LanguageManagementComponent,\n LanguageFormComponent,\n ServerArchComponent,\n EditTableComponent,\n SplashScreenComponent,\n GridAnalyticsComponent,\n SettingSectionComponent,\n ImageSelectboxComponent,\n IndexFormComponent,\n DashboardPerformanceInfoComponent,\n CustomContextMenuComponent,\n FlowComponent,\n FlowListComponent\n\n\n\n ],\n imports: [\n FormsModule,\n ReactiveFormsModule,\n BrowserModule,\n AppRoutingModule,\n BrowserAnimationsModule,\n PopoverModule,\n \n\n TranslateModule.forRoot({\n loader: {\n provide: TranslateLoader,\n // useFactory: HttpLoaderFactory,\n useClass: CustomTranslateLoaderService,\n deps: [HttpClient]\n }\n }),\n MonacoEditorModule.forRoot(),\n HttpClientModule,\n NgxSpinnerModule,\n ColorPickerModule,\n GridsterModule,\n NgxCaptchaModule,\n MaterialModule,\n MatIconModule,\n AgGridModule,\n ColorSketchModule,\n ColorSliderModule,\n ColorChromeModule,\n HotTableModule\n ],\n providers: [\n { provide: ErrorHandler, useClass: CustomErrorHandler },\n { provide: HTTP_INTERCEPTORS, useClass: CustomHttpInterceptor, multi: true },\n { provide: LocationStrategy, useClass: HashLocationStrategy },\n { provide: MAT_DIALOG_DATA, useValue: {} },\n CookieService,\n LoginComponent\n ],\n schemas: [CUSTOM_ELEMENTS_SCHEMA],\n bootstrap: [AppComponent]\n})\nexport class AppModule { }\n","import { Component, OnInit, Inject } from '@angular/core';\nimport { MAT_DIALOG_DATA, MatDialogRef } from '@angular/material/dialog';\n\n@Component({\n selector: 'app-action-dialog',\n templateUrl: './action-dialog.component.html',\n styleUrls: ['./action-dialog.component.scss']\n})\nexport class ActionDialogComponent implements OnInit {\n\n constructor(\n public dialogRef: MatDialogRef,\n @Inject(MAT_DIALOG_DATA) public data: {\n title: string,\n Buttons:string[],\n text:string\n }) { }\n\n ngOnInit(): void {\n }\n\n action(type: boolean): void {\n this.dialogRef.close(type);\n }\n\n}\n","\n
\n

{{ data?.text?(data.text|translate): ('ActionDialogComponent.Message'|translate) }}

\n
\n
0\">\n\n \n
\n\n
\n \n \n
","import { Component, Input, OnChanges, OnInit, SimpleChanges } from '@angular/core';\nimport { ColDef, GridReadyEvent } from 'ag-grid-community';\nimport { Columns } from 'src/app/models/responses/dataStoreResponse';\n\n@Component({\n selector: 'app-ag-grid-table',\n templateUrl: './ag-grid-table.component.html',\n styleUrls: ['./ag-grid-table.component.scss']\n})\nexport class AgGridTableComponent implements OnInit, OnChanges {\n\n _rowData: any[] = [\n { make: 'Toyota', model: 'Celica', price: 35000 },\n { make: 'Ford', model: 'Mondeo', price: 32000 },\n { make: 'Porsche', model: 'Boxster', price: 72000 }\n ];\n @Input() columnTypes: Columns[] = []\n columnDefs: ColDef[] = [];\n\n @Input() height:string='100%'\n\n @Input()\n set rowData(value: any) {\n // Değişkenin değeri değiştiğinde bu işlem çalışır\n this._rowData = value;\n\n // Değişiklikleri işle\n if (value[0])\n this.columnDefs = Object.keys(value[0]).map((key) => {\n var selectedtype = this.columnTypes.find(x => x.fieldName == key)?.fieldType?.toLowerCase()\n var icon = selectedtype?.includes('string') ? 'Text' : selectedtype?.includes('number') ? 'Numbers' : selectedtype?.includes('fx') ? 'fx' : 'Calendar'\n return {\n headerName: key,\n sortable: true,\n headerComponentParams: {\n template: `\n
\n \n \n ${key}\n \n
`\n },\n field: key\n };\n });\n\n\n\n\n\n }\n\n\n\n\n\n // DefaultColDef sets props common to all Columns\n public defaultColDef: ColDef = {\n sortable: true,\n filter: true,\n suppressAutoSize: true,\n minWidth: 200\n // minWidth: 100,\n };\n\n\n constructor() { }\n\n ngOnInit(): void {\n }\n\n ngOnChanges(changes: SimpleChanges): void {\n // console.log(changes)\n }\n\n // Example load data from server\n onGridReady(params: GridReadyEvent) {\n params.api.sizeColumnsToFit();\n }\n\n\n}\n","","import { Component, Input } from \"@angular/core\";\nimport { environment } from \"src/environments/environment\";\n\n@Component({\n selector: 'app-card',\n templateUrl: './app-card.component.html',\n styleUrls: ['./app-card.component.scss']\n})\n\nexport class AppCardComponent { \n @Input() item\n baseUrl = environment.imageUrl;\n}","
\n
\n
\n
\n {{item.owner}}\n
\n
\n {{item.creationDate}}\n
\n \n
\n
\n

{{item.name}}

\n
\n \n
\n
\n \n
\n
\n
\n
Awards
\n \n
2
\n
\n
\n
Matches
\n \n
27
\n
\n
\n
Pals
\n \n
123
\n
\n
\n
Coffee
\n \n
\n
\n
\n
\n
\n
\n

{{item.name}}

\n

{{item.title}}

\n

{{item.description}}

\n
\n
\n","import { Component, EventEmitter, Inject, OnInit, Output } from '@angular/core';\nimport { MAT_DIALOG_DATA, MatDialogRef } from '@angular/material/dialog';\nimport { GridsterWidget, Widget } from 'src/app/models/responses/widgetLibraryResponse';\nimport { ScriptLoaderService } from 'src/app/services/script-loader/script-loader.service';\nimport { WidgetService } from 'src/app/services/widget/widget.service';\n\n\n@Component({\n selector: 'app-available-widget-selection',\n templateUrl: './available-widget-selection.component.html',\n styleUrls: ['./available-widget-selection.component.scss']\n})\nexport class AvailableWidgetSelectionComponent implements OnInit {\n\n allWidgets: GridsterWidget[] = []\n query: string = ''\n selectedElement: GridsterWidget\n selectedWidgets: GridsterWidget[] = []\n loading: boolean = false\n // @Output() saveselectedWidgets:EventEmitter=new EventEmitter()\n\n constructor(\n @Inject(MAT_DIALOG_DATA) public data: {\n saveselectedWidgets: Function\n }, private dialogRef: MatDialogRef, private widgetService: WidgetService, private scriptLoader: ScriptLoaderService) { }\n\n\n ngOnInit(): void {\n\n }\n\n getWidgets() {\n this.loading = true\n\n this.widgetService.getWidgetRepository(this.query).subscribe(res => {\n this.loading = false\n\n res.map((widget, key) => {\n if (document.getElementById(widget.widgetId)) {\n document.getElementById(widget.widgetId).remove()\n }\n\n console.log(this.allWidgets)\n if (!this.allWidgets.some(x => x.designerContainer.widgetId == widget.widgetId)) {\n this.allWidgets.push({ cols: widget.widget.layout.cols, rows: widget.widget.layout.rows, y: widget.widget.layout.y, x: widget.widget.layout.x, designerContainer: widget });\n this.createWidget(widget);\n }\n })\n })\n }\n\n\n private createWidget(widgetResponse: any) {\n this.scriptLoader.addScriptFileToHead(widgetResponse.widgetLibraries);\n this.scriptLoader.runWidgetCode(widgetResponse);\n }\n\n closeDialog() {\n this.dialogRef.close()\n }\n\n clearTextBox() {\n this.query = ''\n this.selectedElement = null\n this.allWidgets = []\n }\n\n selectWidget(event: HTMLElement, widget: GridsterWidget) {\n if (this.selectedWidgets.some(x => x.designerContainer.widgetId == widget.designerContainer.widgetId)) {\n this.selectedWidgets = this.selectedWidgets.filter(x => x.designerContainer.widgetId !== widget.designerContainer.widgetId)\n } else {\n this.selectedWidgets.push(widget)\n }\n }\n\n getclasname(widget: any) {\n if (this.selectedWidgets.some(x => x.designerContainer.widgetId == widget.designerContainer.widgetId)) {\n return 'selected-Widget'\n } else {\n return 'none'\n }\n }\n\n clearAllSelectedItems() {\n this.selectedWidgets = []\n }\n\n saveSelectedItems() {\n this.closeDialog()\n this.data.saveselectedWidgets(this.selectedWidgets)\n }\n\n zoomWidget(widget: GridsterWidget) {\n this.loading = true\n if (this.selectedElement)\n this.allWidgets.push(this.selectedElement)\n\n this.allWidgets = this.allWidgets.filter(x => x.designerContainer.widgetId !== widget.designerContainer.widgetId)\n this.selectedElement = widget\n\n this.allWidgets.map(item => {\n this.createWidget(item.designerContainer)\n })\n\n this.createWidget(this.selectedElement.designerContainer)\n this.loading = false\n }\n}\n","\n
\n
\n
\n \n \n
\n
\n \n 0\" (click)=\"clearTextBox() \">clear\n\n search\n
\n
\n
\n
\n
\n \n {{\"FilterComponent.WidgetSelectionImgText\"|translate}}\n
\n
\n \n
\n
\n
0||selectedWidgets.length>0\">\n
0?allWidgets:selectedWidgets\"\n style=\"width: 90%;height: 250px;\">\n
\n \n\n \n \n\n
\n\n \n
\n
\n
\n
\n\n \n \n\n
\n \n
\n
\n
\n
","import { Component, Input, OnChanges, OnInit, SimpleChanges } from '@angular/core';\nimport { environment } from 'src/environments/environment';\n\n@Component({\n selector: 'app-avatar-group',\n templateUrl: './avatar-group.component.html',\n styleUrls: ['./avatar-group.component.scss']\n})\nexport class AvatarGroupComponent implements OnInit,OnChanges {\n @Input() list: any\n @Input() top:string='-12px'\n @Input() width:string='38px'\n @Input() fontsize:string=''\n @Input() avatarKeys: any = { avatar: 'avatar', tooltip: 'mail', avatartext: 'firstName', avatartext2: 'lastName' }\n env: string = environment.imageUrl\n iserrorimage: boolean = false\n constructor() { }\n\n ngOnInit(): void {\n }\n\n ngOnChanges(changes: SimpleChanges): void {\n // console.log(this.avatarKeys,this.list)\n }\n\n errorimage(ev: any) {\n this.iserrorimage = true\n }\n\n}\n","
\n
1?rc[avatarKeys.tooltip?.split(' ')[0]]+' '+rc[avatarKeys.tooltip?.split(' ')[1]]: rc[avatarKeys?.tooltip]\">\n
\n \n
{{rc[avatarKeys.avatartext2]!==''?\n rc[avatarKeys.avatartext]?.substring(0,1).toUpperCase()+\n rc[avatarKeys.avatartext2]?.substring(0,1)?.toUpperCase():rc[avatarKeys.avatartext]?.substring(0,2)?.toUpperCase()}}\n
\n
\n
\n
","import { Component, Input, OnInit } from '@angular/core';\nimport { Router } from '@angular/router';\n\n@Component({\n selector: 'app-bread-crumb',\n templateUrl: './bread-crumb.component.html',\n styleUrls: ['./bread-crumb.component.scss']\n})\nexport class BreadCrumbComponent implements OnInit {\n\n constructor(private router: Router) { }\n _elements: any[] = [{ path: '', name: 'Home' }, { path: '', name: 'Home' }, { path: '', name: 'Title' }]\n lastelement: any\n @Input('elements')\n set in(elements) {\n this.lastelement = elements[elements.length - 1]\n this._elements = elements.slice(0, -1);\n }\n\n ngOnInit(): void {\n\n\n }\n\n redirectPage(selectedEelement) {\n this.router.navigate([selectedEelement.path])\n }\n\n}\n","
\n
\n {{item.name|translate}}\n \n \n \n
\n
\n {{lastelement.name|translate}}\n
\n\n
","import { Component, OnInit } from '@angular/core';\nimport { MatDialog } from '@angular/material/dialog';\nimport { BussionMainService } from 'src/app/services/bussion-main/bussion-main.service';\nimport { CoreService } from 'src/app/services/core/core.service';\nimport { CodeEditorComponent } from '../code-editor/code-editor.component';\n\n@Component({\n selector: 'app-bussion-login',\n templateUrl: './bussion-login.component.html',\n // template:'',\n styleUrls: ['./bussion-login.component.scss']\n})\nexport class BussionLoginComponent implements OnInit {\n\n constructor(\n private bussionMainService: BussionMainService,\n private coreService: CoreService,\n private dialog: MatDialog\n ) { }\n editorOptions = { theme: 'vs-dark', language: 'html' };\n code: string = 'function x() {\\nconsole.log(\"Hello world!\");\\n}';\n fileType: string = 'html'\n ngOnInit(): void {\n this.getBussionLogin('html');\n }\n\n getBussionLogin(fileType: string) {\n this.bussionMainService.getBussionLogin(fileType).subscribe(res => {\n this.code = res;\n })\n }\n\n setBussionLogin(content) {\n this.bussionMainService.setBussionLogin(this.code, this.fileType).subscribe(res => {\n if (res)\n this.coreService.showSuccessMessage(\"Kod güncellendi\")\n else {\n this.coreService.showErrorMessage(\"Hata oluştu.\")\n }\n })\n }\n\n openBiggerEditor() {\n const dialogRef = this.dialog.open(CodeEditorComponent, {\n height: '100%',\n width: '100%',\n data: {\n code: this.code,\n widget: {},\n debug: () => { },\n editorOptions: { theme: 'vs-dark', language: 'html' }\n },\n });\n\n\n dialogRef.afterClosed().subscribe(result => {\n if (result) {\n this.code = result;\n }\n });\n }\n\n\n changeEditor(fileType: string) {\n this.fileType = fileType\n this.editorOptions.language=fileType\n console.log(this.editorOptions)\n this.getBussionLogin(fileType)\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
","import { Component, OnInit } from '@angular/core';\nimport { MatDialog } from '@angular/material/dialog';\nimport { BussionMainService } from 'src/app/services/bussion-main/bussion-main.service';\nimport { CoreService } from 'src/app/services/core/core.service';\nimport { CodeEditorComponent } from '../code-editor/code-editor.component';\n\n@Component({\n selector: 'app-bussion-main',\n templateUrl: './bussion-main.component.html',\n styleUrls: ['./bussion-main.component.scss']\n})\nexport class BussionMainComponent implements OnInit {\n\n constructor(\n private bussionMainService: BussionMainService,\n private coreService: CoreService,\n private dialog: MatDialog\n ) { }\n\n editorOptions = { theme: 'vs-dark', language: 'html' };\n code: string = 'function x() {\\nconsole.log(\"Hello world!\");\\n}';\n fileType: string = 'html'\n\n ngOnInit(): void {\n this.getBussionMain(this.fileType)\n\n }\n\n getBussionMain(fileType: string) {\n this.bussionMainService.getBussionMain(fileType).subscribe((res: any) => {\n if (res)\n this.code = res\n })\n }\n\n\n setBussionMain(setCode) {\n this.bussionMainService.setBussionMain(this.code, this.fileType).subscribe((res: any) => {\n if (res)\n this.coreService.showSuccessMessage(\"Kod güncellendi\")\n else {\n this.coreService.showErrorMessage(\"Hata oluştu.\")\n }\n\n })\n }\n\n\n openBiggerEditor() {\n const dialogRef = this.dialog.open(CodeEditorComponent, {\n height: '100%',\n width: '100%',\n data: {\n code: this.code,\n widget: {},\n debug: () => { },\n editorOptions: { theme: 'vs-dark', language: 'html' }\n },\n });\n\n\n dialogRef.afterClosed().subscribe(result => {\n if (result) {\n this.code = result;\n }\n });\n }\n\n changeEditor(fileType: string) {\n this.fileType = fileType\n this.editorOptions.language = fileType\n this.getBussionMain(fileType)\n }\n}\n","
\n
\n
\n\n \n\n \n\n \n
\n \n \n
\n
\n \n
\n\n
","import { Component, EventEmitter, Input, OnInit, Output } from '@angular/core';\n\n@Component({\n selector: 'app-card-with-actions',\n templateUrl: './card-with-actions.component.html',\n styleUrls: ['./card-with-actions.component.scss']\n})\nexport class CardWithActionsComponent implements OnInit {\n @Input() item: any\n @Input() icons: { function: Function, icon: string }[] = []\n @Input() imageAvatarKeys: { avatar: string, tooltip: string, avatartext: string, avatartext2: string } = { avatar: 'ownerId', tooltip: 'mail', avatartext: 'firstName', avatartext2: 'lastName' }\n @Input() keys: { avatarKey: string, titleKey: string, descKey: string, smallKey: string, smallKey2: string, badgeKey: string } = { avatarKey: 'deneme deneme', descKey: '', titleKey: '', smallKey: '', smallKey2: '', badgeKey: '' }\n @Output() cardTitleClick: EventEmitter = new EventEmitter()\n constructor() { }\n\n ngOnInit(): void {\n }\n\n\n cardClick(selected:any) {\n this.cardTitleClick.emit(selected);\n }\n\n}\n","
\n
\n\n
\n
{{ item[keys.avatarKey].slice(0, 2).toUpperCase() }}
\n
\n
\n
\n {{item[keys.titleKey]}}\n
\n \n
\n
\n
\n {{item[keys.smallKey]}}\n {{keys?.smallKey2}}:{{item[keys?.smallKey2]}}\n\n
\n\n
\n \n
\n
\n {{item[keys.descKey]}}\n
\n
\n \n
\n {{item[keys.badgeKey]?.length}} {{keys.badgeKey}}\n
\n
\n
","import { Component, OnInit, ElementRef, ViewChild, OnDestroy, TemplateRef } from '@angular/core';\nimport { MatDialog, MatDialogRef } from '@angular/material/dialog';\nimport { NavigationEnd, Router } from '@angular/router';\nimport { Dashboard } from 'src/app/models/responses/dashboardResponse';\nimport { AuthService } from 'src/app/services/auth/auth.service';\nimport { ChatbotService } from 'src/app/services/chatbot/chatbot.service';\nimport { environment } from 'src/environments/environment';\nimport { DashboardOpenerComponent } from '../dashboard-opener/dashboard-opener.component';\nimport { SpeechProcces } from 'src/app/core/speechTypes';\nimport { ModalService } from 'src/app/services/modal/modal.service';\nimport { TranslateService } from '@ngx-translate/core';\nimport { ScriptLoaderService } from 'src/app/services/script-loader/script-loader.service';\nimport { Overlay } from '@angular/cdk/overlay';\nimport { GridsterWidget, WidgetPreview } from 'src/app/models/responses/widgetLibraryResponse';\n\n\ninterface AIDashboardSuggestion {\n dashboard: Dashboard,\n isAccessable: number,\n message: string\n percentage: number,\n weight: number\n}\n\ninterface AnswerMessage {\n answer: string,\n messageId: string\n question: string\n}\n@Component({\n selector: 'app-chatbot',\n templateUrl: './chatbot.component.html',\n styleUrls: ['./chatbot.component.scss']\n})\nexport class ChatbotComponent implements OnInit, OnDestroy {\n @ViewChild('chatListContainer') chatListContainer?: ElementRef;\n @ViewChild('chatInput') chatInput?: ElementRef;\n\n @ViewChild('modalTemplate') modalTemplate!: TemplateRef;\n dialogRef!: MatDialogRef;\n\n chatInputMessage: string = \"\";\n human = {\n id: 1,\n name: localStorage.getItem('name') ?? 'Visitor',\n profileImageUrl: environment.imageUrl + localStorage.getItem('avatar')\n }\n\n permissions: string[] = []\n licencePermissions = localStorage.getItem('licence') ?? ''\n\n\n\n bot = {\n id: 2,\n profileImageUrl: \"../../../assets/images/logoAI.png\"\n }\n\n chatMessages: {\n user: any,\n message: any,\n messageType: string\n }[] = [];\n suggestionDashboard: Dashboard[] = []\n filteredSuggestions: AIDashboardSuggestion[] = [];\n selectedPage: any[] = []\n baseUrl: string = environment.baseUrl\n avatar: string = \"\";\n\n functionList: { type: number, function: Function }[] = [\n { type: SpeechProcces.TextToChatBot, function: (text) => this.setChatMessage(text) },\n { type: SpeechProcces.Delete, function: (text) => this.clearChat() }\n ]\n micenable: boolean = true\n chatVisible: boolean = false\n isBig: boolean = false\n\n constructor(\n private chatbotService: ChatbotService,\n private authService: AuthService,\n private router: Router,\n private dialog: MatDialog,\n private dialogService: ModalService,\n private translate: TranslateService,\n private scriptLoader: ScriptLoaderService,\n private overlay: Overlay\n ) { }\n\n ngOnInit(): void {\n this.permissions = this.authService.getPermissions()\n\n this.getChatbotMessage();\n this.avatar = environment.imageUrl + this.authService.getUserAvatar();\n this.getStoredMessages();\n if ('SpeechRecognition' in window || 'webkitSpeechRecognition' in window) {\n this.micenable = true\n } else {\n this.micenable = false\n }\n\n }\n\n ngOnDestroy(): void {\n this.scriptLoader.selectedFilters.next([])\n }\n\n\n loadingMessage: Boolean = false\n\n getChatbotMessage() {\n if (this.chatInputMessage.length === 0) {\n return\n }\n else {\n const userMessage = {\n user: this.human,\n message: this.chatInputMessage,\n messageType: 'Text'\n };\n\n this.chatMessages.push(userMessage);\n setTimeout(() => {\n this.scrollToBottom();\n }, 100);\n\n\n var tempmessage = this.chatInputMessage\n\n this.chatInputMessage = '';\n this.loadingMessage = true\n\n this.chatbotService.getSuggesstion(tempmessage).subscribe((result: { object: string, message: AIDashboardSuggestion[] | string | WidgetPreview[] | AnswerMessage, result: boolean }) => {\n this.loadingMessage = false\n\n const botMessage: {\n message: AIDashboardSuggestion[] | (GridsterWidget & { height: string; }) | string,\n user: {\n id: number,\n profileImageUrl: string\n },\n messageType: string\n } = {\n user: this.bot,\n message: '',\n messageType: ''\n };\n\n if (result.result) {\n botMessage.messageType = result.object\n if (result.object == 'Widget') {\n var widget = (result.message as (WidgetPreview)[])[0]\n var uniqid = Date.now()\n if (!widget.widgetId.includes('-')) {\n widget.widgetId = uniqid + '-' + widget.widgetId;\n widget.widget.widgetId = uniqid + '-' + widget.widget.widgetId;\n }\n botMessage.message = { cols: widget.widget.layout.cols, rows: widget.widget.layout.rows, y: widget.widget.layout.y, x: widget.widget.layout.x, designerContainer: widget, height: widget.widget.layout.rows <= 5 ? '50%' : '90%' }\n console.log('first', botMessage.message)\n } else if (result.object == 'Dashboard') {\n this.suggestionDashboard = (result.message as AIDashboardSuggestion[]).map(item => { return item.dashboard })\n botMessage.message = (result.message as AIDashboardSuggestion[]).sort((a, b) => b.percentage - a.percentage);\n } else {\n var answer = (result.message as AnswerMessage).answer || result.message as string\n botMessage.message = answer.replace(/\\n/g, '
').replace(/\\t/g, ' ');\n }\n } else {\n if (botMessage.message == '') {\n botMessage.messageType = 'Text'\n botMessage.message = this.translate.instant('Common.ChatBotMessage')\n }\n\n }\n\n\n\n this.chatMessages.push(botMessage);\n\n localStorage.setItem('chatMessages', JSON.stringify(this.chatMessages));\n setTimeout(() => {\n this.scrollToBottom();\n }, 100);\n\n this.chatInputMessage = '';\n });\n }\n }\n\n\n\n\n\n setChatMessage(text: string) {\n\n this.chatInputMessage = text\n this.chatInput.nativeElement.focus()\n this.getChatbotMessage();\n if (this.suggestionDashboard.length > 0 && this.suggestionDashboard.some(x => x.title.toLowerCase().includes(text.toLowerCase()))) {\n var selectedDashboard = this.suggestionDashboard?.find(x => x.title.toLowerCase().includes(text.toLowerCase()))\n if (selectedDashboard) {\n this.router.navigate([\"/main\"], { state: selectedDashboard });\n this.closeChatBot()\n }\n\n }\n }\n\n stringfyer(filter) {\n return JSON.stringify(filter)\n }\n\n getStoredMessages() {\n const storedMessages = localStorage.getItem('chatMessages');\n if (storedMessages) {\n this.chatMessages = JSON.parse(storedMessages);\n }\n }\n\n scrollToBottom() {\n const maxScroll = this.chatListContainer?.nativeElement.scrollHeight;\n this.chatListContainer?.nativeElement.scrollTo({ top: maxScroll, behavior: 'smooth' });\n }\n\n generateFakeId(): string {\n const current = new Date();\n const timestamp = current.getTime();\n return timestamp.toString()\n }\n\n addedModalList(addedfilters) {\n const currentModals = this.scriptLoader.openedModals.getValue();\n var currentIndex = currentModals.length > 0 ? currentModals[currentModals.length - 1].modal + 1 : 1\n\n var currentModalFilter = []\n\n currentModalFilter = addedfilters\n\n\n\n this.scriptLoader.changeModalList(currentModalFilter, currentIndex)\n }\n\n openDashboard(dashboard: any, filter: any) {\n this.scriptLoader.selectedFilters.next(filter)\n this.addedModalList(filter)\n this.dialogService.openModal({\n url: '/dashboard-opener/' + dashboard.dashboardId + '?' + this.stringfyer(filter),\n filter: filter,\n param: dashboard.dashboardId,\n drag: false\n }, DashboardOpenerComponent, '100%', '100%', 'overflow-hidden').subscribe(res => {\n this.scriptLoader.openedModals.getValue().pop()\n })\n // this.dialog.open(DashboardOpenerComponent, {\n // width: '100%',\n // height:'100%',\n // data: {\n // url: '/dashboard-opener/' + dashboard.dashboardId + '?' + this.stringfyer(filter),\n // filter: filter,\n // param: dashboard.dashboardId,\n // drag: false\n // },\n // });\n\n }\n\n closeChatBot() {\n this.dialog.closeAll()\n }\n\n clearChat() {\n this.chatMessages = [];\n localStorage.removeItem('chatMessages');\n }\n\n\n focusChatInput(message: string) {\n this.chatInputMessage = message;\n if (this.chatInput) {\n this.chatInput.nativeElement.focus();\n this.chatInput.nativeElement.select();\n }\n }\n\n\n\n\n openDialog(): void {\n\n if (this.dialogRef) {\n // getState() === 1 -> Dialog zaten açık\n return; // Dialog açıksa yeni bir tane açmayı engeller\n }\n\n this.dialogRef = this.dialog.open(this.modalTemplate, {\n scrollStrategy: this.overlay.scrollStrategies.noop(),\n width: '25%',\n height: '75%',\n enterAnimationDuration: '0ms', // Açılırken animasyonu devre dışı bırak\n exitAnimationDuration: '0ms',\n panelClass: 'chat-container',\n backdropClass: 'chat-backdrop'\n\n });\n\n // Dialog kapandıktan sonra referansı temizle\n this.dialogRef.afterClosed().subscribe(() => {\n this.dialogRef = null; // Dialog kapandığında referansı sıfırla\n });\n\n this.dialogRef.afterOpened().subscribe(res => {\n this.scrollToBottom();\n })\n }\n\n closeDialog(): void {\n this.dialogRef.close();\n\n }\n\n biggerScreen() {\n this.isBig = !this.isBig\n if (this.isBig) {\n this.dialogRef.updateSize('50%', '90%')\n } else {\n this.dialogRef.updateSize('25%', '75%')\n }\n\n }\n\n}","
\n \n \n
\n\n\n \n
\n
\n \n
Data Assistant
\n
\n
\n remove\n \n
\n
\n
\n\n\n
\n
\n \n

{{\"Common.EmptyChat\"|translate}}

\n
\n \n\n
\n
\n
\n
\n
\n\n
\n
\n \n
\n
{{ suggestion.dashboard.title }}
\n

{{ suggestion.message }}

\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 Clear all chat..\n
\n
\n
\n
\n
\n
\n
\n \n
\n
\n
","import { Component, OnInit, Inject } from '@angular/core';\nimport { MatDialogRef, MAT_DIALOG_DATA } from '@angular/material/dialog';\n\n@Component({\n selector: 'app-code-editor',\n templateUrl: './code-editor.component.html',\n styleUrls: ['./code-editor.component.scss']\n})\nexport class CodeEditorComponent implements OnInit {\n\n code: string = '';\n title: string = \"Editor\"\n editorOptions = { theme: 'vs-dark', language: 'javascript' };\n debugDisplay: boolean = false\n message: [\n [\n {\n \"name\": \"Function\",\n \"value\": \"function callfilter(key:string,val:string):void\"\n }\n ],\n [\n {\n \"name\": \"Function\",\n \"value\": \"function ChartLangTurkish(chart:object):void\"\n }\n ],\n [\n {\n \"name\": \"Function\",\n \"value\": \"function IsResponsiveActive(widget:object):bool\"\n }\n ],\n [\n {\n \"name\": \"Function\",\n \"value\": \"function AsAmChartData(widget, data):object\"\n }\n ],\n [\n {\n \"name\": \"Function\",\n \"value\": \"function BigDataPrefixes():void\"\n }\n ],\n [\n {\n \"name\": \"Function\",\n \"value\": \"function ColorLuminance(hex,lum):string\"\n }\n ],\n [\n {\n \"name\": \"Function\",\n \"value\": \"function CreateSeries(chart:object, widget:object, serietype:string, index:number,color:string):object\"\n }\n ]\n ];\n constructor(\n public dialogRef: MatDialogRef,\n @Inject(MAT_DIALOG_DATA) public data: any) { }\n\n ngOnInit(): void {\n // debugger;\n monaco.languages.typescript.typescriptDefaults.addExtraLib(\"this.message\")\n if (this.data) {\n this.code = this.data.code;\n if (this.data.editorOptions) {\n this.editorOptions = this.data.editorOptions\n }\n }\n }\n\n action(type: boolean): void {\n this.dialogRef.close(this.code);\n }\n compile() {\n this.data.widget.code = this.code\n this.debugDisplay = !this.debugDisplay\n }\n\n\n}\n","\n \n \n\n
\n
\n \n \n
\n \n\n
","import { Component, Inject } from '@angular/core';\nimport { MAT_DIALOG_DATA, MatDialogRef } from '@angular/material/dialog';\n\n@Component({\n selector: 'app-column-select-dialog',\n templateUrl: './column-select-dialog.component.html',\n styleUrls: ['./column-select-dialog.component.scss']\n})\nexport class ColumnSelectDialogComponent {\n selectedType: string;\n\n constructor(\n public dialogRef: MatDialogRef,\n @Inject(MAT_DIALOG_DATA) public data: any\n ) {\n this.selectedType = data.oldType;\n }\n ngOnInit(): void {\n this.selectedType = this.data.oldType;\n this.selectedType=this.data.columnType\n }\n\n onCancelClick(): void {\n this.dialogRef.close();\n }\n}","

Please select column type

\n
\n \n Column Type\n \n {{ type }}\n \n \n
\n
\n \n \n
","import { Component, Input, OnInit } from '@angular/core';\nimport { DashboardService } from 'src/app/services/dashboard/dashboard.service';\nimport { ScriptLoaderService } from 'src/app/services/script-loader/script-loader.service';\n\n@Component({\n selector: 'app-console-screen',\n templateUrl: './console-screen.component.html',\n styleUrls: ['./console-screen.component.scss']\n})\nexport class ConsoleScreenComponent implements OnInit {\n widgetPreviewData:any\n @Input() widget:any\n\n constructor(private dashboardService:DashboardService,private scriptLoader:ScriptLoaderService) { }\n\n ngOnInit(): void {\n this.compileCode()\n }\n\n debugCodeResult: any = ''\n debugDisplay: boolean = false\n\n async compileCode() {\n this.debugCodeResult=''\n this.debugDisplay = true\n this.dashboardService.widgetPreview(this.widget).subscribe(result => {\n this.widgetPreviewData = result;\n try {\n this.scriptLoader.runwidgetCodeForCompiler(this.widgetPreviewData)\n\n } catch (error) {\n this.debugCodeResult = error\n console.log('error', error)\n this.DebugError(this.widget.code,error)\n }\n });\n\n }\n\n GetErrorPosition(error) {\n\n var line = error.stack.match(new RegExp(\":\" + \"(.*)\" + \"\\n\"));\n if (line[0] != undefined) {\n line[0] = line[0].toString().replace(\":\", \"\").replace(\"\\n\", \"\");\n }\n var rst = [];\n rst = line[0].split(\":\");\n return rst;\n\n }\n\n DebugError(code, error) {\n debugger;\n var startIdex = 0;\n var endIndex = 0;\n var rst = this.GetErrorPosition(error);\n var lines = code.split(\"\\n\");\n if (rst[0] >= 4)\n startIdex = rst[0] - 4;\n\n rst[0] = startIdex + 2;\n endIndex = startIdex + 2;\n lines = lines.slice(startIdex, endIndex);\n\n var ErrorMessage = \"\";\n ErrorMessage += error.message;\n ErrorMessage += \"Details\";\n ErrorMessage += \"Line : \" + rst[0] + \" Position : \" + rst[1];\n ErrorMessage += `[${lines.join(\"\\n \")}]`;\n \n this.debugCodeResult=ErrorMessage\n }\n}\n","
\n\n
\n > Checking code ...
\n \n Your code have errors.
\n {{debugCodeResult}}\n
\n \n Code complied without errors.
\n
\n
\n
","import { Component, EventEmitter, Input, OnInit, Output } from '@angular/core';\nimport { customBadgeProps } from 'src/app/models/globals/customDropdownProps';\n\n\n@Component({\n selector: 'app-custom-badge-with-clear',\n templateUrl: './custom-badge-with-clear.component.html',\n styleUrls: ['./custom-badge-with-clear.component.scss']\n})\nexport class CustomBadgeWithClearComponent implements OnInit {\n\n @Input() badges: customBadgeProps[] = []\n @Output() editSave: EventEmitter = new EventEmitter()\n\n inputvalue: string \n constructor() { }\n\n ngOnInit(): void {\n }\n\n inputOpen(id) {\n this.inputvalue=id\n document.getElementById('input-' + id).style.width = id.length * 8 + 'px'\n document.getElementById('input-' + id).style.display = 'block'\n document.getElementById('open-' + id).style.display = 'none'\n document.getElementById('save-' + id).style.display = 'block'\n document.getElementById('label-' + id).style.display = 'none'\n\n\n }\n\n save(item) {\n document.getElementById('input-' + item.name).style.display = 'none'\n document.getElementById('open-' + item.name).style.display = 'block'\n document.getElementById('save-' + item.name).style.display = 'none'\n document.getElementById('label-' + item.name).style.display = 'block'\n this.editSave.emit({item:item,inputValue:this.inputvalue})\n }\n\n}\n","
\n
\n
\n
{{item.name}}
\n \n {{item.detail[item.subTextKey]}}\n
\n edit\n save\n\n\n \n
\n
","import { Component, EventEmitter, Input, OnInit, Output } from '@angular/core';\n\n\n@Component({\n selector: 'app-custom-card-with-desc',\n templateUrl: './custom-card-with-desc.component.html',\n styleUrls: ['./custom-card-with-desc.component.scss']\n})\nexport class CustomCardWithDescComponent implements OnInit {\n\n @Input() item: any\n @Input() CardInfo: {\n img: string, \n smallText1: string, \n smallText2: string, \n title: string, \n desc: string,\n icons: {function:Function,icon:string}[]\n } =\n {\n img: '',\n smallText1: '',\n smallText2: '',\n title: '',\n desc: '',\n icons: []\n }\n iserrorimage:boolean=false\n\n\n\n constructor() { }\n\n ngOnInit(): void {\n }\n\n errorimage(ev: any) {\n this.iserrorimage = true\n }\n}\n","
\n
\n
\n
\n \n \n
\n
\n \n {{item[CardInfo.title]}}\n
\n
\n
\n \n
\n
\n
\n
\n \n
{{item[CardInfo.desc]}}
\n
\n
\n
","import { Component, ElementRef, EventEmitter, Input, OnInit, Output } from '@angular/core';\nimport { FormControl, FormGroup, Validators } from '@angular/forms';\nimport { ColorPalette } from 'src/app/models/responses/colorPaletteResponse';\nimport { BussionFilterDefinition } from 'src/app/models/responses/dataStoreResponse';\nimport { ColorItem } from 'src/app/models/responses/widgetLibraryResponse';\nimport { ColorPaletteService } from 'src/app/services/color-palette/color-palette.service';\nimport { ScriptLoaderService } from 'src/app/services/script-loader/script-loader.service';\n\n\n\ninterface ModifiedColorPalette extends Omit {\n palettes: { color: string; selected: number }[];\n}\n\n@Component({\n selector: 'app-custom-color-picker',\n templateUrl: './custom-color-picker.component.html',\n styleUrls: ['./custom-color-picker.component.scss']\n})\nexport class CustomColorPickerComponent implements OnInit {\n @Input() colorList: { color: string, key: string, selected?: boolean }[] = [\n { color: 'red', key: '1', selected: false },\n { color: 'blue', key: '2', selected: false },\n { color: 'purple', key: '3', selected: false },\n { color: 'yellow', key: '4', selected: false },\n { color: 'green', key: '5', selected: false },\n { color: 'red', key: '6', selected: false },\n\n ]\n // @Input() dimension: BussionFilterDefinition[] = []\n _widgetData\n @Input() set widgetData(data: { data: any[], dimension: BussionFilterDefinition[], colors: { type: number, onlyWidget: number, colors: ColorItem[], dashboardWidgetColors: ColorItem[] } }) {\n\n this._widgetData = data\n this.selectedColorType = data.colors.type\n\n\n\n\n this.selectedColors = JSON.parse(JSON.stringify(data.colors.colors))\n\n\n\n this.onlyWidget = data.colors.onlyWidget == 1 ? true : false\n\n\n var item = data.dimension[data.dimension.length - 1]\n\n data.data.map((dt, key) => {\n if (!this.dimensionTableData.some(x => x.text == dt[item.fieldName]))\n this.dimensionTableData.push({ text: dt[item.fieldName], palette: '', color: data.colors.colors.find(x => x.text == dt[item.fieldName])?.color || '' })\n else\n this.dimensionTableData.find(x => x.text == dt[item.fieldName]).color = data.colors.colors.find(x => x.text == dt[item.fieldName])?.color || '';\n })\n\n\n\n }\n displayedColumns: string[] = ['name', 'color']\n dimensionTableData: ColorItem[] = []\n @Input() selectedColorsForUpdate: { type: number, colors: ColorItem[] } = { type: 0, colors: [] }\n\n colorTypes = [\n { type: 'samecolor', img: 'samecolor', value: 0 },\n { type: 'highttolow', img: \"highttolow\", value: 1 },\n { type: 'lowtohigh', img: \"lowtohigh\", value: 2 },\n { type: 'multicolor', img: \"multicolor\", value: 3 },\n // { type: 'specialColor', img: \"multicolorcustom\", value: 4 },\n ]\n\n selectedColorType: number = 0\n\n\n @Output() selectColor: EventEmitter = new EventEmitter()\n @Output() getPaletColors: EventEmitter = new EventEmitter()\n\n\n\n\n rgbForm = new FormGroup({\n r: new FormControl('', [Validators.required]),\n g: new FormControl('', [Validators.required]),\n b: new FormControl('', [Validators.required]),\n });\n\n hexForm = new FormGroup({\n hex: new FormControl('', [Validators.required]),\n });\n\n createdColors: { color: string, key: string, selected?: boolean }[] = []\n\n colorType: string = 'rgb'\n colorPalettesVisible: boolean = true\n dimensionColors: boolean = false\n\n colorPalettes: ModifiedColorPalette[] = []\n\n selectedColorPalettes: ColorPalette[] = []\n selectedPaletColors: { paletId: string, color: string, key: string }[] = []\n selectedColors: ColorItem[] = []\n onlyWidget: boolean = false\n warningText: boolean = false\n\n constructor(private colorPaletteService: ColorPaletteService, private scriptLoader: ScriptLoaderService\n ) { }\n\n ngOnInit(): void {\n this.getColorPalettes()\n\n\n }\n\n\n\n\n\n\n getColorPalettes() {\n this.colorPaletteService.getColorPalettes().subscribe(res => {\n this.colorPalettes = res.map(item => {\n return {\n ...item, palettes: item.palettes.map(pitem => {\n return { color: pitem, selected: 0 }\n })\n }\n })\n\n // if (this.selectedColorsForUpdate)\n // this.SetForUpdate()\n })\n }\n\n allColorDeselect() {\n this.colorPalettes.forEach(palette => {\n palette.palettes.forEach(color => {\n if (color.selected === 1) {\n color.selected = 0;\n }\n });\n });\n }\n\n\n selectColorFunc(selectedcolor: { color: string; selected: number, key?: string }, colorPaletteId: string, multiple?: boolean) {\n this.warningText = false\n if (multiple == null) {\n if (this.selectedColorType == 0 || this.selectedColorType == 1 || this.selectedColorType == 2) {\n multiple = false\n } else {\n multiple = true\n }\n }\n\n\n if (selectedcolor.selected == 1) {\n if (colorPaletteId)\n this.colorPalettes.find(x => x.colorPaletteId == colorPaletteId).palettes.find(x => x.color == selectedcolor.color).selected = 0\n\n this.selectedColors = this.selectedColors.filter(x => !(x.palette == colorPaletteId && x.color == selectedcolor.color))\n this.applyColors()\n } else {\n //bunlarda tek color seçmek lazım bir seçim olduğunda diğeri iptal edilir\n if (!multiple) {\n this.allColorDeselect()\n if (!selectedcolor.key)\n this.selectedColors = []\n }\n if (selectedcolor.key) {\n this.dimensionTableData.find(x => x.text == selectedcolor.key).color = selectedcolor.color\n this.selectedColors = this.selectedColors.filter(x => x.text !== selectedcolor.key)\n }\n\n if (this.selectedColors.length >= this.dimensionTableData.length) {\n this.warningText = true\n return\n }\n\n\n const dim = this.dimensionTableData.find(item =>\n !this.selectedColors.some(x => x.text == item.text)\n );\n\n var colorText = selectedcolor.key || dim.text\n this.selectedColors.push({ palette: colorPaletteId, color: selectedcolor.color, text: colorText })\n\n\n this.colorPalettes.find(x => x.colorPaletteId == colorPaletteId).palettes.find(x => x.color == selectedcolor.color).selected = 1\n\n }\n\n }\n\n\n applyColors(popover?: any) {\n if (!this.dimensionColors) {\n this.onlyWidget = true\n }\n this.selectColor.emit({ selectedColors: this.selectedColors, colorType: this.selectedColorType, onlyWidget: this.onlyWidget })\n\n }\n\n selectColorType(item) {\n\n this.selectedColorType = item.value\n if (this.selectedColorType !== 3) {\n this.dimensionColors = false\n this.selectedColors = this.selectedColors.length > 0 ? [this.selectedColors[0]] : []\n\n } else {\n this.selectedColors = this._widgetData.dashboardWidgetColors\n }\n\n this.applyColors()\n }\n\n\n\n sendColorPaletForLoader() {\n var visibleColors = []\n this.selectedColorPalettes.map(palet => {\n return palet.palettes.map(cl => {\n return visibleColors.push({ paletId: palet.colorPaletteId, color: cl, key: palet.colorPaletteId })\n })\n })\n\n this.getPaletColors.emit(visibleColors)\n }\n\n\n\n\n setColorForDim(item: ColorItem) {\n this.warningText = false\n this.allColorDeselect();\n this.colorPalettes.map(cl => {\n if (cl.palettes.find(x => x.color == item.color)) {\n cl.palettes.find(x => x.color == item.color).selected = 1\n }\n })\n }\n\n onPopoverClosed() {\n\n var widgetColorText: string = this._widgetData.colors.colors.map(cl => {\n return cl.color;\n }).join(',')\n\n var selectedColorText = this.selectedColors.map(cl => {\n return cl.color;\n }).join(',')\n\n if (selectedColorText !== widgetColorText) {\n this.applyColors()\n }\n\n\n }\n clearAllSelection() {\n this.selectedColors = []\n }\n\n changeOnlyWidget() {\n this.onlyWidget = !this.onlyWidget\n this.applyColors()\n }\n\n\n\n}\n\n","
\n
{{\"WidgetFormPage.Color\"|translate}}
\n \n
\n
\n {{\"ColorPaletteFormPage.ColorType\"|translate}}\n
\n
\n
\n \n
\n
\n\n
\n
\n\n {{\"ColorPaletteFormPage.ColumnBased\" | translate}}\n\n\n\n \n \n \n\n\n \n
\n\n
\n \n {{\"WidgetFormPage.OnlyThisWidget\"|translate}}\n
\n \n \n \n
\n \n \n \n \n \n \n \n
{{item.text}}\n
\n
 
\n
\n \n
\n
\n\n\n
\n
\n
\n \n \n \n
\n
\n \n
\n
0\" (click)=\"clearAllSelection()\" class=\"mini-action-button\">\n \n {{\"Common.ClearAll\"|translate}}\n
\n
\n
\n
\n\n\n
\n
\n\n
\n \n
\n
\n {{item.color}}\n {{item.text}}\n
\n clear\n
\n\n
\n
\n\n\n\n\n\n\n
\n
\n
\n \n \n {{data?.key||(\"ColorPaletteFormPage.ColorPalettes\" | translate)}}\n \n \n
\n
\n {{\"ColorPaletteFormPage.WarningText\" | translate}}\n
\n\n
\n
\n
\n {{ item.name }}\n
\n
\n check_circle_outline\n
\n
\n
\n
\n
\n\n
","import { Component, Input, OnInit } from '@angular/core';\n\n@Component({\n selector: 'app-custom-context-menu',\n templateUrl: './custom-context-menu.component.html',\n styleUrls: ['./custom-context-menu.component.scss']\n})\nexport class CustomContextMenuComponent implements OnInit {\n @Input() menuList:any[]=[]\n\n constructor() { }\n\n ngOnInit(): void {\n }\n\n}\n","

custom-context-menu works!

\n","import { moveItemInArray } from '@angular/cdk/drag-drop';\nimport { Component, EventEmitter, Input, OnChanges, OnInit, Output, SimpleChanges } from '@angular/core';\nimport { customDropdownProps, customDropdownSettingProps } from 'src/app/models/globals/customDropdownProps';\nimport { environment } from 'src/environments/environment';\n\n@Component({\n selector: 'app-custom-dropdown-menu-with-search',\n templateUrl: './custom-dropdown-menu-with-search.component.html',\n styleUrls: ['./custom-dropdown-menu-with-search.component.scss']\n})\nexport class CustomDropdownMenuWithSearchComponent implements OnInit, OnChanges {\n _menudata: customDropdownProps[] = []\n _filteredMenuData: customDropdownProps[] = []\n _initialData: any\n baseUrl: string = environment.baseUrl\n @Input() error: { text: string, active: boolean } = { text: '', active: false }\n @Input() dragActive: boolean = false\n @Input() sortChangeDisable: boolean = false\n @Input() disableIconFilter: boolean = false\n\n @Input()\n set menudata(value: any) {\n\n // Değişkenin değeri değiştiğinde bu işlem çalışır\n this._menudata = value;\n // Değişiklikleri işle\n this._filteredMenuData = value\n\n if (this._menudata.length > 0)\n this.sortForSelectedEelement()\n }\n\n\n\n\n\n @Input() enableCheckBox: boolean = false\n @Input() enableSearch: boolean = true\n @Input() checkIcon: boolean = false\n\n @Input() imageCard: boolean = false\n\n\n\n\n @Input() height: number | string = 300\n // @Input() multipleSelection: boolean = false\n @Input() dropDownSettings: customDropdownSettingProps = {\n name: '',\n id: '',\n imageCard: false,\n placeholder: '',\n iconMenuActive: true,\n triggerMenuIcon: { icon: 'measure.png', tooltip: '' },\n multipleSelection: false,\n dragActive: false,\n searchActive: true,\n changeSortWithDrop: (e) => { },\n input: [{\n inputType: 'none',\n title: '',\n visible: true,\n getValueFunction: (e) => { console.log(e) },\n defaultValue: '',\n\n }],\n topButtons: [],\n checkIcon: { icon: '', function: (e) => { console.log(e) } },\n selectElement: (e) => { },\n progressValue: 0,\n errorValues: { text: '', active: false }\n\n\n }\n\n\n\n\n\n\n @Output() selectElement: EventEmitter = new EventEmitter()\n @Output() iconMenuEemitter: EventEmitter = new EventEmitter()\n @Output() endIconEmitter: EventEmitter = new EventEmitter()\n @Output() changeSortWithDrop: EventEmitter = new EventEmitter()\n\n\n\n constructor() { }\n\n ngOnInit(): void {\n\n }\n\n ngOnChanges(changes: SimpleChanges): void {\n console.log('dropDownSettings', this.dropDownSettings)\n }\n\n\n\n selection(selectedid: any, initial: boolean) {\n\n if (!this.dropDownSettings.multipleSelection) {\n if (this._menudata.some(x => x.selected == true)) {\n this._menudata.find(x => x.selected == true).selected = false\n }\n }\n\n if (this._menudata.find(x => x.id == selectedid)) {\n if (!initial) {\n this._menudata.find(x => x.id == selectedid).selected = !this._menudata.find(x => x.id == selectedid)?.selected\n }\n else {\n this._menudata.find(x => x.id == selectedid).selected = true\n\n }\n\n }\n\n this.sortForSelectedEelement()\n }\n\n\n\n sortForSelectedEelement() {\n\n if (!this.sortChangeDisable) {\n this._menudata.sort((a, b) => (b.selectedMenuItem ? 1 : 0) - (a.selectedMenuItem ? 1 : 0));\n this._menudata.sort((a, b) => (b.selected ? 1 : 0) - (a.selected ? 1 : 0));\n }\n\n }\n\n select(element: any) {\n if (this.selectElement.observers.length > 0) {\n this.selection(element.id, false)\n\n if (this.dropDownSettings.multipleSelection) {\n var selectedList = this._menudata.filter(x => x.selected == true).map(item => {\n return item.element\n })\n this.selectElement.emit({ selectedElement: element, selectedList: selectedList })\n }\n else {\n this.selectElement.emit(element)\n }\n }\n\n }\n\n iconMenuFunction(selectedElement: customDropdownProps, SelectedMenuItem: string) {\n this.iconMenuSelection(selectedElement, SelectedMenuItem, false)\n this.iconMenuEemitter.emit(this._menudata)\n }\n\n iconMenuFunction2(selectedElement: customDropdownProps, SelectedMenuItem: string) {\n this.iconMenuSelection2(selectedElement, SelectedMenuItem, false)\n this.iconMenuEemitter.emit(this._menudata)\n }\n\n iconMenuSelection2(selectedElement: customDropdownProps, SelectedMenuItem: string, initial: boolean) {\n var element = this._menudata.find(x => x.id == selectedElement.id).selectedMenuItem2\n if (element == SelectedMenuItem) {\n this._menudata.find(x => x.id == selectedElement.id).selectedMenuItem2 = ''\n } else\n this._menudata.find(x => x.id == selectedElement.id).selectedMenuItem2 = SelectedMenuItem\n\n\n\n }\n\n iconMenuSelection(selectedElement: customDropdownProps, SelectedMenuItem: string, initial: boolean) {\n var element = this._menudata.find(x => x.id == selectedElement.id).selectedMenuItem\n if (element == SelectedMenuItem && !initial) {\n this._menudata.find(x => x.id == selectedElement.id).selectedMenuItem = ''\n } else\n this._menudata.find(x => x.id == selectedElement.id).selectedMenuItem = SelectedMenuItem\n\n this.sortForSelectedEelement()\n }\n\n searchData(event: any) {\n const filterValue = (event.target as HTMLInputElement).value.trim().toLowerCase();\n\n if (filterValue == '') {\n this._filteredMenuData = this._menudata\n return\n }\n var filteredList = this._menudata.filter(x => x.title.trim().toLowerCase().includes(filterValue))\n this._filteredMenuData = filteredList\n\n }\n\n endIconFunction(selectedElement: any) {\n this.endIconEmitter.emit(selectedElement)\n }\n\n toggleItem(item: any) {\n this._menudata.find(x => x.id == item.id).toggle = this._menudata.find(x => x.id == item.id).toggle ? !this._menudata.find(x => x.id == item.id).toggle : true\n\n this.dropDownSettings.checkIcon.function(item)\n }\n\n drop(event) {\n moveItemInArray(this._filteredMenuData, event.previousIndex, event.currentIndex);\n var selectedMenuList = this._filteredMenuData.filter(x => x.selected).map(item => {\n return item.element\n })\n this.changeSortWithDrop.emit(this._filteredMenuData)\n }\n\n}\n","
\n
\n \n \n \n
\n
\n
\n
{{dropDownSettings.name|translate}}
\n \n \n
\n
\n
\n
    \n \n
    \n
    \n \n {{button.title|translate}}\n
    \n\n
    \n \n
  • \n\n
    \n
    {{input.title|translate}}
    \n
    \n \n\n \n\n \n\n \n {{opt.key}}\n \n \n
  • \n
    \n\n
  • \n \n
    \n
    \n \n
    \n
    \n
    {{item.title|translate}}
    \n {{item.subtitle}}\n
    \n
    \n\n\n\n\n \n
    0||(dropDownSettings.iconMenuActive&&item?.menu2?.length>0&&!item.menu2Disable)||\n (dropDownSettings.iconMenuActive&&item?.menu?.length>0&&!item.selected)||checkIcon&&item.selected\"\n style=\"max-width: 30%;display: flex;flex-direction: row-reverse;\">\n \n \n\n\n\n \n 1&&!item.selected\" width=\"20\"\n height=\"20\" class=\"before-icon\"\n [src]=\"'/assets/images/icons/'+dropDownSettings.triggerMenuIcon.icon\" [matMenuTriggerFor]=\"menu\"\n [matTooltip]=\"item.selectedMenuItem?item.selectedMenuItem:dropDownSettings.triggerMenuIcon.tooltip|translate\" />\n\n \n\n\n\n \n \n\n\n \n \n \n\n \n \n \n\n \n 0&&!item.menu2Disable\" width=\"20\"\n height=\"20\" class=\"before-icon\" [src]=\"'/assets/images/icons/groupBy.png'\"\n [matMenuTriggerFor]=\"menu2\" [matTooltip]=\"dropDownSettings.triggerMenuIcon.tooltip|translate\" />\n\n
    \n\n\n\n\n
  • \n
\n
\n \n
\n \n \n
\n\n
\n\n
\n
","import { Component, Input, OnInit } from '@angular/core';\nimport { Router } from '@angular/router';\nimport { TranslateService } from '@ngx-translate/core';\n\nimport { BreadCrumElement } from 'src/app/models/globals/customLeftMenuProps';\nimport { User } from 'src/app/models/responses/loginResponse';\nimport { CreateUserComponent } from 'src/app/pages/manage/user/create-user/create-user.component';\nimport { AuthService } from 'src/app/services/auth/auth.service';\nimport { CoreService } from 'src/app/services/core/core.service';\nimport { DashboardService } from 'src/app/services/dashboard/dashboard.service';\nimport { ModalService } from 'src/app/services/modal/modal.service';\nimport { SweetAlertService } from 'src/app/services/sweet-alert/sweet-alert.service';\nimport { UserService } from 'src/app/services/user/user.service';\nimport { environment } from 'src/environments/environment';\n\n@Component({\n selector: 'app-custom-header',\n templateUrl: './custom-header.component.html',\n styleUrls: ['./custom-header.component.scss']\n})\nexport class CustomHeaderComponent implements OnInit {\n\n @Input() title: string = \"My Bussion\"\n @Input() searchareaActive: boolean = false\n avatar: string = \"\"\n\n\n _elements: BreadCrumElement[] = [{ path: '', name: 'Home' }, { path: '', name: 'Home' }, { path: '', name: 'Analysis' }]\n\n @Input() set elements(value: any[]) {\n this._elements = value\n }\n roles: string[] = this.authService.getRoles()\n\n constructor(private authService: AuthService, private translate: TranslateService,\n private userService: UserService, private dashboardService: DashboardService,\n private sweetalertService: SweetAlertService,\n private router: Router, private modalService: ModalService, private coreService: CoreService) { }\n\n ngOnInit(): void {\n this.avatar = environment.imageUrl + this.authService.getUserAvatar();\n }\n\n\n routetoPage(item: BreadCrumElement) {\n this.router.navigate([item.path])\n }\n\n showUserInfo() {\n let data = {\n type: \"update\",\n user: this.authService.getUser() as User,\n ownUser: true\n }\n this.modalService.openModal(data, CreateUserComponent, 'auto', '1000px').subscribe(result => {\n if (result) {\n this.getUserInfo();\n this.coreService.showSuccessMessage(result);\n }\n });\n }\n\n getUserInfo() {\n this.userService.getUserById(this.authService.getUserId()).subscribe(user => {\n this.authService.saveUserInfos(user);\n\n this.avatar = environment.imageUrl + this.authService.getUserAvatar();\n // if (user.language == 'English') {\n // this.translate.use('en');\n // } else {\n // this.translate.use('tr');\n // }\n })\n }\n\n logout() {\n this.sweetalertService.open(\n this.translate.instant(\"HeaderComponent.LogoutConfirm\"),\n this.translate.instant(\"HeaderComponent.LogoutConfirmText\"),\n 'question',\n this.translate.instant(\"Common.Yes\"),\n (res) => {\n if (res.isConfirmed) {\n this.authService.logout().subscribe(result => {\n this.dashboardService.setCacheData({ authorizedDashboard: [], activeDashboard: [] })\n\n });\n }\n },\n true\n )\n\n }\n\n goHome(){\n this.router.navigate(['/'])\n }\n\n goManage() {\n // this.router.navigate(['/manage/user'])\n this.router.navigate(['/landing'])\n }\n\n}\n","
\n
\n
\n \n {{item.name |translate}}\n /\n \n\n
\n
{{title |translate}}
\n
\n
\n
\n \n\n \n
\n
\n \n \n \n \n\n \n
\n
\n
\n\n\n {{ 'HeaderComponent.UpdateInfo' | translate }}\n {{ 'HeaderComponent.Manage' | translate }}\n {{ 'HeaderComponent.Logout' | translate }}\n","import { Component, Input, OnInit } from '@angular/core';\nimport { NavigationEnd, Router } from '@angular/router';\nimport { LeftMenuProps } from 'src/app/models/globals/customLeftMenuProps';\n\n@Component({\n selector: 'app-custom-leftmenu',\n templateUrl: './custom-leftmenu.component.html',\n styleUrls: ['./custom-leftmenu.component.scss']\n})\nexport class CustomLeftmenuComponent implements OnInit {\n\n _menuList: LeftMenuProps[] = []\n @Input() set menuList(value: LeftMenuProps[]) {\n this._menuList = value.filter(x => x.visible)\n }\n\n constructor(private router: Router) { }\n\n\n ngOnInit(): void {\n if (this._menuList.some(x => x.path == this.router.url))\n this._menuList.find(x => x.path == this.router.url).active = true\n }\n\n clickMenu(selectedItem: LeftMenuProps) {\n if (this._menuList.find(x => x.active))\n this._menuList.find(x => x.active).active = false\n\n if (this.router.url.includes(selectedItem.path)) {\n selectedItem.active = true\n }\n\n selectedItem.function()\n }\n}\n","
\n
\n \n \n \n
\n
\n
\n
\n \n
\n
\n
\n
","import { Component, OnInit } from '@angular/core';\n\n@Component({\n selector: 'app-custom-loading',\n templateUrl: './custom-loading.component.html',\n styleUrls: ['./custom-loading.component.scss']\n})\nexport class CustomLoadingComponent implements OnInit {\n\n constructor() { }\n\n ngOnInit(): void {\n }\n\n}\n","\n
\n
\n
\n
\n
\n
\n
\n
\n
\n
\n
\n
\n
\n
\n
\n
","import { Component, EventEmitter, Input, OnChanges, OnInit, Output } from '@angular/core';\nimport { SettingAreas } from 'src/app/constants/enums';\n\n@Component({\n selector: 'app-custom-title-box',\n templateUrl: './custom-title-box.component.html',\n styleUrls: ['./custom-title-box.component.scss']\n})\n\nexport class CustomTitleBoxComponent implements OnInit {\n @Input() title: string = ''\n @Input() status: boolean = false\n @Input() element: string = ''\n @Input() controlValue: number = 0\n\n\n @Output() clickIcon: EventEmitter = new EventEmitter()\n constructor() { }\n\n ngOnInit(): void {\n document.getElementById(this.element).style.display = this.status ? 'block' : 'none'\n\n\n }\n\n clickIconEmitter() {\n // document.getElementById(this.element).style.display = document.getElementById(this.element).style.display == 'none' ? 'block' : 'none'\n // this.closeOther()\n\n console.log('burdayım1')\n this.clickIcon.emit(this.element)\n }\n\n closeOther() {\n Object.keys(SettingAreas).map(item => {\n if (this.element !== SettingAreas[item] && document.getElementById(SettingAreas[item])) {\n\n document.getElementById(SettingAreas[item]).style.display = 'none'\n document.getElementById('img-' + SettingAreas[item]).classList.add('close-icon')\n\n\n } else {\n if (document.getElementById('img-' + SettingAreas[item]).classList.contains('close-icon'))\n document.getElementById('img-' + SettingAreas[item]).classList.remove('close-icon')\n else\n document.getElementById('img-' + SettingAreas[item]).classList.add('close-icon')\n\n\n }\n\n })\n }\n}\n","
\n
\n
{{title|translate}}
\n \n \n \n
\n \n
","import { Component, ContentChild, ElementRef, EventEmitter, Input, OnChanges, OnInit, Output, SimpleChanges, ViewChild } from '@angular/core';\nimport { MatDialog } from '@angular/material/dialog';\nimport { Router } from '@angular/router';\nimport { TranslateService } from '@ngx-translate/core';\nimport { gridTypes } from 'angular-gridster2/lib/gridsterConfig.interface';\nimport { SpeechProcces } from 'src/app/core/speechTypes';\nimport { Dashboard, Dimension } from 'src/app/models/responses/dashboardResponse';\nimport { User } from 'src/app/models/responses/loginResponse';\nimport { Share } from 'src/app/models/responses/shareResponse';\nimport { CreateUserComponent } from 'src/app/pages/manage/user/create-user/create-user.component';\nimport { AuthService } from 'src/app/services/auth/auth.service';\nimport { CoreService } from 'src/app/services/core/core.service';\nimport { DashboardService } from 'src/app/services/dashboard/dashboard.service';\nimport { ModalService } from 'src/app/services/modal/modal.service';\nimport { ScriptLoaderService } from 'src/app/services/script-loader/script-loader.service';\nimport { UserService } from 'src/app/services/user/user.service';\nimport { environment } from 'src/environments/environment';\nimport { MailSceduleFormComponent } from '../mail-scedule-form/mail-scedule-form.component';\nimport { filterString } from 'src/app/core/utils';\nimport { Clipboard } from '@angular/cdk/clipboard';\nimport { ShareService } from 'src/app/services/share/share.service';\nimport { BussionFilterDefinition } from 'src/app/models/responses/dataStoreResponse';\nimport { ShareFormComponent } from '../modals/share-form/share-form.component';\nimport { DeviceDetectorService } from 'ngx-device-detector';\n\n\n@Component({\n selector: 'app-dashboard-header',\n templateUrl: './dashboard-header.component.html',\n styleUrls: ['./dashboard-header.component.scss']\n})\n\nexport class DashboardHeaderComponent implements OnInit, OnChanges {\n firstName: string = \"\";\n lastName: string = \"\";\n avatar: string = \"\";\n mic: boolean = false\n permissions: string[] = []\n _mySharesForList: { core: Share, listitem: { text: string, small: string } }[] = []\n mySharesCore: Share[] = []\n @Input() isShownFilterAI: boolean = false\n @Input() changeViewList: boolean = false;\n @Input() selectedFilterGroup: any[] = []\n @Input() disableAvatar: boolean = false\n @Input() disableViews: boolean = false\n @Input() disableMessages: boolean = false\n @Input() disableFit: boolean = false\n @Input() disableFilter: boolean = false\n @Input() disableDashboardList: boolean = false\n @Input() selectedFilters: BussionFilterDefinition[] = []\n @Input() closeButton: boolean = false\n disableDownload: boolean = true\n @Input() redirection: string = '/'\n @Output() redirectionFunc: EventEmitter = new EventEmitter();\n\n roles: string[] = this.authService.getRoles()\n\n\n\n // @Input() myShares: any[] = []\n buttonsList: { icon: string, function: Function, tooltip: string, class: string }[] = [\n { icon: 'mail.svg', function: (e) => this.sendMail(e), tooltip: '', class: 'bg-light-success' },\n { icon: 'copy.svg', function: (e) => this.copyshareLink(e), tooltip: '', class: 'bg-light-info' },\n { icon: 'editShare.svg', function: (e) => this.updateShare(e), tooltip: '', class: 'bg-light-info' },\n { icon: 'deleteShare.svg', function: (e) => this.deleteShare(e), tooltip: '', class: 'bg-light-danger' }\n ]\n\n @Input()\n set myShares(value: Share[]) {\n this.mySharesCore = value\n this._mySharesForList = value.map(item => {\n return { core: item, listitem: { small: item.sharedBy, text: item.name } }\n })\n }\n micenable: boolean = true\n\n\n searchText: string = ''\n inputvalue: string = ''\n wordCommand: string = ''\n @ViewChild('tooltip') tooltip\n processingCommand: boolean = false\n isMobile: boolean = false\n\n @Input() groupedData: {\n [key: string]: {\n content: BussionFilterDefinition & { visibleName: string, parameter: string, lockedFilter: number }[];\n dimension: Dimension;\n priority: number;\n isinitial: number\n }\n }\n\n @Input() selectedDashboard: Dashboard\n @Input() dashboardList: Dashboard[] = []\n @Output() changeDashboardLayout: EventEmitter = new EventEmitter()\n @Output() getFilteredDashboardFunc: EventEmitter = new EventEmitter()\n @Output() showFullScreenFunc: EventEmitter = new EventEmitter()\n @Output() dashboardSelectedFunc: EventEmitter = new EventEmitter()\n @Output() openDashboardFilterFunc: EventEmitter = new EventEmitter()\n @Output() addActiveDashboardFunc: EventEmitter = new EventEmitter()\n @Output() openSideNavFunc: EventEmitter = new EventEmitter()\n @Output() getShares: EventEmitter = new EventEmitter()\n @Output() resetFilterFunc: EventEmitter = new EventEmitter()\n @Output() applyDropdownFilter: EventEmitter = new EventEmitter()\n @Output() clearSelectedFilterGroup: EventEmitter = new EventEmitter()\n @Output() downloadDashboardFunction: EventEmitter = new EventEmitter()\n @Output() refreshWidgetFunction: EventEmitter = new EventEmitter()\n\n\n\n\n\n\n\n functionList: { type: number, function: Function }[] = [\n { type: SpeechProcces.FilterDashboard, function: (text) => this.getFilteredDashboard(text) },\n { type: SpeechProcces.Delete, function: () => this.resetInput() },\n { type: SpeechProcces.Refresh, function: () => this.resetDashboard() }]\n\n\n\n\n\n constructor(\n private authService: AuthService,\n private modalService: ModalService,\n private coreService: CoreService,\n private userService: UserService,\n private translate: TranslateService,\n private router: Router,\n private clipboard: Clipboard,\n private shareService: ShareService,\n private dashboardService: DashboardService,\n private deviceService: DeviceDetectorService,\n private scriptLoader: ScriptLoaderService,\n ) { }\n\n ngOnInit(): void {\n this.isMobile = this.deviceService.isMobile()\n this.firstName = this.authService.getUserFirstName();\n this.lastName = this.authService.getUserLastName();\n this.avatar = environment.imageUrl + this.authService.getUserAvatar();\n // this.dashboardService.selectedDasboard.subscribe((res => {\n // this.selectedDashboard = res\n // }))\n console.log('selectedDashboard', this.selectedDashboard)\n this.permissions = this.authService.getPermissions()\n if ('SpeechRecognition' in window || 'webkitSpeechRecognition' in window) {\n this.micenable = true\n } else {\n this.micenable = false\n }\n\n if (this.permissions.includes('DashboardExport')) {\n this.disableDownload = false\n } else {\n this.disableDownload = true\n }\n\n }\n\n ngOnChanges(changes: SimpleChanges): void {\n }\n\n openSelfServisMain() {\n this.router.navigate(['selfservice'])\n }\n\n logout() {\n this.authService.logout().subscribe(result => {\n this.scriptLoader.selectedFilters.next([])\n this.dashboardService.setCacheData({ authorizedDashboard: [], activeDashboard: [] })\n\n });\n }\n\n goManage() {\n // this.router.navigate(['/manage/user'])\n this.router.navigate(['/landing'])\n }\n\n showUserInfo() {\n let data = {\n type: \"update\",\n user: this.authService.getUser() as User,\n ownUser: true\n }\n this.modalService.openModal(data, CreateUserComponent, 'auto', '1000px').subscribe(result => {\n if (result) {\n this.getUserInfo();\n this.coreService.showSuccessMessage(result);\n }\n });\n }\n\n getUserInfo() {\n this.userService.getUserById(this.authService.getUserId()).subscribe(user => {\n this.authService.saveUserInfos(user);\n this.firstName = this.authService.getUserFirstName();\n this.avatar = environment.imageUrl + this.authService.getUserAvatar();\n // if (user.language == 'English') {\n // this.translate.use('en');\n // } else {\n // this.translate.use('tr');\n // }\n })\n }\n\n changeDashboardLayoutFunc(layout: string) {\n this.changeDashboardLayout.emit(layout)\n }\n\n showFullScreen(status: boolean) {\n this.showFullScreenFunc.emit(status)\n }\n\n dashboardSelected(dashboard: Dashboard) {\n this.dashboardService.setLastDashboardId(dashboard.dashboardId)\n this.dashboardSelectedFunc.emit(dashboard)\n }\n\n resetFilter() {\n this.resetFilterFunc.emit([])\n }\n\n clearSelectedFilterGroupFunc(filter) {\n this.clearSelectedFilterGroup.emit(filter)\n }\n\n openDashboardFilter() {\n this.openDashboardFilterFunc.emit()\n }\n\n addActiveDashboard() {\n this.addActiveDashboardFunc.emit()\n }\n applyDropdownFilterFunc(filter: BussionFilterDefinition[]) {\n\n var editedfilterList = []\n\n filter?.map(item => {\n if (item.fieldValue == '' && item.operator == '') {\n return;\n } else {\n editedfilterList.push({ fieldName: item.fieldName, fieldValue: item.fieldValue, operator: item.operator })\n\n }\n })\n this.applyDropdownFilter.emit(editedfilterList)\n }\n\n openSideNav() {\n this.openSideNavFunc.emit()\n }\n\n getFilteredDashboard(event) {\n this.scriptLoader.selectedFilters.getValue()\n\n if (event.target) {\n this.getFilteredDashboardFunc.emit(event.target.value)\n event.target.value = ''\n\n }\n else {\n this.wordCommand = event\n this.inputvalue = event\n if (event.includes('sorgula'))\n event = event.replace('sorgula', '')\n if (event.includes('sorgul'))\n event = event.replace('sorgul', '')\n else if (event.includes('sorgul'))\n event = event.replace('sorgu', '')\n else if (event.includes('sorg'))\n event = event.replace('sorg', '')\n\n this.getFilteredDashboardFunc.emit(event)\n }\n\n }\n\n resetInput() {\n this.inputvalue = ''\n // this.getFilteredDashboard('')\n }\n\n resetDashboard() {\n this.getFilteredDashboard('')\n }\n\n\n sendMail(item: Share) {\n var data = {\n url: window.origin + `/#/share/${item.shareKey}?filters=${filterString(item.filter)}`,\n dashboardId: item.dashboardId\n }\n this.modalService.openModal(data, MailSceduleFormComponent, '80%', '60%').subscribe(res => {\n\n })\n }\n\n copyshareLink(item: Share) {\n item.filter = item.filter.map(item => {\n return {\n fieldName: item.fieldName,\n fieldValue: item.fieldValue,\n operator: item.operator\n }\n })\n let filter = filterString(item.filter)\n var filterencode = encodeURIComponent(filter)\n const result = this.clipboard.copy(window.origin + `/#/share/${item.shareKey}?filters=` + filterencode).valueOf()\n\n if (result)\n this.coreService.showSuccessMessage('Copied!');\n\n\n\n\n }\n\n deleteShare(item: Share) {\n this.modalService.openDeleteConfirm().subscribe(isOk => {\n if (isOk) {\n this.shareService.deleteShare(item.shareId).subscribe(result => {\n this.getShares.emit();\n });\n }\n })\n }\n\n updateShare(item: Share) {\n let data = {\n objectType: item.objectType,\n objectId: item.sharedObjectId,\n dashboardId: this.selectedDashboard.dashboardId,\n filter: this.selectedDashboard.filter,\n function: () => {\n this.changeViewList = !this.changeViewList\n },\n data: item\n };\n\n this.modalService.openModal(data, ShareFormComponent, 'auto', '600px').subscribe(result => {\n if (result) {\n // this.getShares.emit();\n }\n })\n }\n\n applyFilterForViews(share: Share) {\n this.scriptLoader.setFilter(share.filter, false)\n }\n\n\n downloadDashboard(type: string) {\n this.downloadDashboardFunction.emit(type)\n }\n\n redirectHomePage() {\n if (this.redirectionFunc.observers.length > 0) {\n this.redirectionFunc.emit()\n } else {\n this.router.navigate([this.redirection])\n }\n }\n\n\n refreshWidget() {\n this.refreshWidgetFunction.emit();\n }\n}\n","
\n
\n \n \n \n
\n {{\n selectedDashboard.title}}\n
\n
\n\n
\n
\n
\n\n
\n \n \n \n \n keyboard_arrow_down\n \n\n
\n
\n \n\n \n search\n
\n\n\n\n \n \n \n\n\n \n \n \n \n
\n
\n\n
\n
\n {{\n 'HeaderComponent.Hello' | translate }}, {{firstName}} {{lastName}}\n \n
\n \n
\n\n
\n
\n
\n
\n \n\n \n search\n
\n
\n
0&&!disableFilter\">\n\n\n
\n
\n \n
\n
\n
0\"\n style=\"margin-right: 10px;margin-left: 20px;\">\n \n
\n
\n\n\n {{ 'HeaderComponent.UpdateInfo' | translate }}\n {{ 'HeaderComponent.Manage' | translate\n }}\n {{ 'HeaderComponent.Logout' | translate }}\n\n\n\n {{ 'MainPage.FitToScreen' | translate\n }}\n {{ 'MainPage.ScrollVertical' |\n translate }}\n {{ 'MainPage.FullScreen' | translate }}\n\n\n\n
\n {{dashboard.title}}\n
\n\n\n \n \n pdf\n \n \n \n pptx\n \n\n\n\n","import { Component, Inject, OnDestroy, OnInit } from '@angular/core';\nimport { ActivatedRoute } from '@angular/router';\nimport { ShareService } from 'src/app/services/share/share.service';\nimport { Share } from 'src/app/models/responses/shareResponse';\nimport { DashboardService } from 'src/app/services/dashboard/dashboard.service';\nimport { Dashboard } from 'src/app/models/responses/dashboardResponse';\nimport { GlobalFunctionService } from 'src/app/services/global-function/global-function.service';\nimport { ScriptLoaderService } from 'src/app/services/script-loader/script-loader.service';\nimport { BussionFilterDefinition } from 'src/app/models/responses/dataStoreResponse';\nimport { GridsterConfig, GridsterItem, GridType, CompactType, DisplayGrid } from 'angular-gridster2';\nimport { interval, Subscription } from 'rxjs';\nimport { WidgetService } from 'src/app/services/widget/widget.service';\nimport { MAT_DIALOG_DATA } from '@angular/material/dialog';\nimport { ModalService } from 'src/app/services/modal/modal.service';\nimport { ExpandedWidgetComponent } from 'src/app/components/modals/expanded-widget/expanded-widget.component';\nimport { ShareFormComponent } from 'src/app/components/modals/share-form/share-form.component';\n\n@Component({\n selector: 'app-dashboard-opener',\n templateUrl: './dashboard-opener.component.html',\n styleUrls: ['./dashboard-opener.component.scss']\n})\nexport class DashboardOpenerComponent implements OnInit, OnDestroy {\n isShownDashboardTitle: boolean = true\n isShownFilter: boolean = false\n dashboardId: string = \"\";\n widgets: any[] = [];\n dashboard: Dashboard;\n sharedWidget: any;\n dropdownData: any\n myShares: Share[] = [];\n domain: string = null;\n enableTitle: boolean = false;\n enableFilter: boolean = true;\n filters: any[] = [];\n selectedDashboardInitialFilters: BussionFilterDefinition[] = [];\n shareId: string = null;\n shareEncryptKey: string = ''\n options: GridsterConfig;\n dashboardWidgets: Array = [];\n isDeviceMobile: boolean = false;\n selectedDashboard: any;\n subscriptionCheckDashboardInterval: Subscription;\n isFirstForCheckDashboardData: boolean = true;\n checkDashboardInterval = interval(30000);\n dashboardChangesId: string = \"\";\n right = ((100 - parseInt('100')) / 2)\n constructor(\n private activatedRoute: ActivatedRoute,\n private shareService: ShareService,\n private dashboardService: DashboardService,\n private globalFunctionService: GlobalFunctionService,\n private scriptLoader: ScriptLoaderService,\n private widgetService: WidgetService,\n private modalService: ModalService,\n @Inject(MAT_DIALOG_DATA) public data: {\n url: string,\n filter: any,\n param: string,\n drag: boolean\n },\n ) {\n\n }\n ngOnInit(): void {\n this.customizeDashboard();\n if (!this.data.drag) {\n this.options.draggable.enabled = false;\n this.options.resizable.enabled = false\n this.options.api?.optionsChanged();\n }\n if (this.activatedRoute.snapshot.paramMap.get('dashboardId'))\n this.dashboardId = this.activatedRoute.snapshot.paramMap.get('dashboardId');\n else\n this.dashboardId = this.data.param\n\n var urlfilter = ''\n\n if (this.activatedRoute.snapshot.queryParamMap.get('filter'))\n urlfilter = this.activatedRoute.snapshot.queryParamMap.get('filter')\n else\n this.filters = this.data.filter\n\n if (urlfilter)\n this.filters = JSON.parse(urlfilter);\n\n\n if (this.dashboardId)\n this.getDashboardById(this.dashboardId);\n\n this.selectedDashboardInitialFilters = this.filters\n\n\n }\n\n \n\n ngOnDestroy(): void {\n // Component yok edildiğinde aboneliği sonlandır\n if (this.subscriptionCheckDashboardInterval) {\n this.subscriptionCheckDashboardInterval.unsubscribe();\n }\n }\n\n\n openDashboardFilter() {\n this.isShownFilter = true;\n }\n\n getDashboardById(dashboardId: string) {\n this.dashboardService.getDashboardById(dashboardId).subscribe((response) => {\n\n this.selectedDashboard = response;\n this.dashboard = response\n this.getGlobalFunctions();\n })\n\n }\n\n createObjectList(filter: any) {\n if (filter && Object.keys(filter).length > 0) {\n let filterobj = ''\n let filterkey = []\n if (filter.includes('equal')) {\n filterobj = JSON.parse(filter.replace('equal', '='))\n filterkey = Object.keys(JSON.parse(filter.replace('equal', '=')))\n }\n let list = []\n filterkey.map((item) => {\n list.push(filterobj[item])\n })\n\n this.filters = list\n }\n return this.filters\n }\n\n getGlobalFunctions() {\n this.globalFunctionService.getGlobalFunctions(this.domain).subscribe(result => {\n result.forEach(f => {\n this.scriptLoader.runGlobalFunction(f.code);\n });\n this.getDashboardWidgets();\n });\n }\n\n\n getDashboardWidgets() {\n // this.options.minCols = this.selectedDashboard?.gridSize\n // console.log('dashboardbyId', this.dashboardWidgets)\n\n // this.options.minRows = this.selectedDashboard?.gridSize\n\n this.options.gridType = GridType[this.selectedDashboard.layout]\n this.options?.api?.optionsChanged()\n this.dashboardWidgets = []\n this.dashboardService.getWidgetsForDashboard(this.dashboardId, this.filters).subscribe(result => {\n this.widgets = result\n this.subscribeDashboardChanges(true);\n\n result.forEach(widget => {\n\n this.dashboardWidgets.push({\n\n cols: this.isDeviceMobile ? 1 : widget.widget.layout.cols,\n rows: this.isDeviceMobile ? 1 : widget.widget.layout.rows,\n y: widget.widget.layout.y,\n x: widget.widget.layout.x,\n designerContainer: widget\n });\n // this.createWidget(widget);\n })\n\n\n });\n\n }\n\n expandWidget(widgetData: any) {\n let data = {\n widgetData: widgetData.designerContainer,\n shareModalOpen: (e) => this.openShareForm({ ...e, filter: this.selectedDashboard.filter }),\n selectedFilters: this.selectedDashboard.filter,\n selectedDashboard: this.selectedDashboard\n }\n this.modalService.openModal(data, ExpandedWidgetComponent, '90%', '100%', 'overflow-hidden').subscribe(result => { });\n }\n\n openShareForm(shareData: any) {\n let data = {\n objectType: shareData.objectType,\n objectId: shareData.objectId,\n dashboardId: this.selectedDashboard.dashboardId,\n filter: this.selectedDashboard.filter,\n function: () => this.getMyShares()\n };\n\n this.modalService.openModal(data, ShareFormComponent, 'auto', '600px').subscribe(result => {\n if (result) {\n }\n })\n }\n\n getMyShares() {\n this.shareService.getMyShare(this.dropdownData.objectId).subscribe(myShares => {\n this.myShares = myShares;\n })\n }\n\n\n\n subscribeDashboardChanges(isFirstForCheckDashboardData) {\n if (this.subscriptionCheckDashboardInterval) {\n this.subscriptionCheckDashboardInterval.unsubscribe();\n }\n this.isFirstForCheckDashboardData = isFirstForCheckDashboardData;\n this.checkDashboardInterval = interval(this.selectedDashboard?.refreshInterval * 1000);\n this.subscriptionCheckDashboardInterval = this.checkDashboardInterval.subscribe(() => {\n this.checkDashboardChanges();\n });\n }\n\n private createWidget(widgetResponse: any) {\n this.scriptLoader.addScriptFileToHead(widgetResponse.widgetLibraries);\n this.scriptLoader.runWidgetCode(widgetResponse);\n }\n\n checkDashboardChanges() {\n this.dashboardService.checkDashboardUpdateTime(this.selectedDashboard.dashboardId).subscribe(res => {\n if (this.isFirstForCheckDashboardData) {\n this.isFirstForCheckDashboardData = false;\n this.dashboardChangesId = res.message;\n return;\n }\n if (this.dashboardChangesId != res.message) {\n // this.dashboardWidgets = [];\n //eğer herhangi bir widgetta değişiklik varsa update time değişiklik olan widgetları dönecek\n if (res?.changedWidgets?.length > 0)\n this.refreshWidget(res.changedWidgets)\n // this.getDashboardsWidgets(this.selectedDashboard.dashboardId);\n this.dashboardChangesId = res.message;\n }\n });\n }\n\n refreshWidget(changedWidgets) {\n var idlist = []\n // değişen widgetların idsini liste olarak atıroruz servise\n changedWidgets.map(item => {\n idlist.push(item.widgetId)\n })\n\n this.widgetService.getWidgetById(idlist, this.selectedDashboard.dashboardId, this.selectedDashboard.filter).\n subscribe(res => {\n res.map((item) => {\n\n var index = this.dashboardWidgets.findIndex(x => x.designerContainer.widgetId == item.widgetId)\n if (index !== undefined) {\n this.dashboardWidgets[index].designerContainer = item\n // this.createWidget(item);\n this.scriptLoader.runWidgetCode(item, true);\n\n\n }\n })\n })\n\n }\n\n\n\n getSharedWidget(sharedObject: Share) {\n this.shareService.getSharedWidget(sharedObject.shareId, sharedObject.domain).subscribe(widget => {\n this.sharedWidget = widget;\n })\n }\n\n closeFilterForm(event: any) {\n this.isShownFilter = false;\n }\n\n saveFilter(newFilters: BussionFilterDefinition[]) {\n this.closeFilterForm(null);\n this.filters = newFilters\n this.getDashboardWidgets();\n // console.log(\"Filters Enis: \", newFilters);\n // this.dashboard.filter = newFilters;\n // this.dashboardWidgets = [];\n // if (this.shareId) {\n // this.shareService.getSharedDashboardWidgets(this.shareId, this.getUser().language, this.domain, newFilters, this.shareEncryptKey).subscribe(result => {\n // result.forEach(widget => {\n // this.dashboardWidgets.push({ cols: widget.widget.layout.cols, rows: widget.widget.layout.rows, y: widget.widget.layout.y, x: widget.widget.layout.x, designerContainer: widget });\n // this.createWidget(widget);\n // })\n // })\n // } else\n // this.dashboardService.getWidgetsForDashboard(this.dashboard.dashboardId, newFilters).subscribe(result => {\n // result.forEach(widget => {\n // this.dashboardWidgets.push({ cols: widget.widget.layout.cols, rows: widget.widget.layout.rows, y: widget.widget.layout.y, x: widget.widget.layout.x, designerContainer: widget });\n // this.createWidget(widget);\n // })\n // })\n }\n\n getWidgets(shareObject: Share) {\n this.shareService.getSharedDashboardWidgets(shareObject.shareId, shareObject.lang, shareObject.domain, this.filters, shareObject.shareEncryptKey, shareObject.authentication).subscribe(result => {\n this.widgets = result;\n })\n }\n\n private customizeDashboard() {\n this.options = {\n gridType: GridType.ScrollVertical,\n compactType: CompactType.CompactUp,\n margin: 10,\n outerMargin: true,\n outerMarginTop: null,\n outerMarginRight: null,\n outerMarginBottom: null,\n outerMarginLeft: null,\n useTransformPositioning: true,\n mobileBreakpoint: 640,\n minCols: 5,\n maxCols: 200,\n minRows: 5,\n maxRows: 200,\n maxItemCols: 200,\n minItemCols: 1,\n maxItemRows: 200,\n minItemRows: 1,\n maxItemArea: 2500,\n minItemArea: 1,\n defaultItemCols: 1,\n defaultItemRows: 1,\n // fixedColWidth: 200,\n // fixedRowHeight: 200,\n keepFixedHeightInMobile: false,\n keepFixedWidthInMobile: false,\n scrollSensitivity: 10,\n scrollSpeed: 20,\n enableEmptyCellClick: false,\n enableEmptyCellContextMenu: false,\n enableEmptyCellDrop: false,\n enableEmptyCellDrag: false,\n enableOccupiedCellDrop: false,\n emptyCellDragMaxCols: 50,\n emptyCellDragMaxRows: 50,\n ignoreMarginInRow: false,\n draggable: {\n enabled: true,\n },\n resizable: {\n enabled: true,\n },\n swap: false,\n pushItems: true,\n disablePushOnDrag: false,\n disablePushOnResize: false,\n pushDirections: { north: true, east: true, south: true, west: true },\n pushResizeItems: true,\n displayGrid: DisplayGrid.None,\n disableWindowResize: false,\n disableWarnings: false,\n scrollToNewItems: true,\n\n };\n }\n\n}","\n\n\n\n","import { Component, Inject, OnInit } from '@angular/core';\nimport { MAT_DIALOG_DATA } from '@angular/material/dialog';\nimport { WidgetPreview } from 'src/app/models/responses/widgetLibraryResponse';\nimport { IndexFormComponent } from 'src/app/pages/manage/datastore/index-form/index-form.component';\nimport { DataStoreService } from 'src/app/services/dataStore/data-store.service';\nimport { ModalService } from 'src/app/services/modal/modal.service';\n\n@Component({\n selector: 'app-dashboard-performance-info',\n templateUrl: './dashboard-performance-info.component.html',\n styleUrls: ['./dashboard-performance-info.component.scss']\n})\nexport class DashboardPerformanceInfoComponent implements OnInit {\n list: { listitem: { small: string | number, text: string }, core: WidgetPreview, open: boolean }[] = []\n\n constructor(@Inject(MAT_DIALOG_DATA) public data: {\n widgets: WidgetPreview[],\n }, private modalService: ModalService, private dataStoreService: DataStoreService) { }\n\n buttonsList: { icon: string, function: Function, tooltip: string, class: string, type: string }[] = [\n { icon: 'dataStore', function: (e) => this.openIndexForm(e), tooltip: '', class: 'bg-light-success', type: 'mat-icon' },\n { icon: 'chevron-down', function: (e) => this.openCollapse(e), tooltip: '', class: 'bg-light-info', type: 'mat-icon' }\n ]\n\n ngOnInit(): void {\n\n this.list = this.data.widgets.filter(x => x.widget.isFilter == 0).map(item => {\n return { core: item, listitem: { small: item.executionTimeInMiliSeconds, text: item.widget.title }, open: false }\n })\n this.list = this.list.sort((a, b) => b.core.executionTimeInMiliSeconds - a.core.executionTimeInMiliSeconds)\n }\n\n clickItem() {\n\n }\n\n openCollapse(e) {\n // console.log(e)\n\n this.list.find(x => x.core.widgetId == e.widgetId).open = !this.list.find(x => x.core.widgetId == e.widgetId).open\n }\n openIndexForm(element) {\n\n this.modalService.openModal({ dataStore: null, dataStoreId: element.widget.dataStoreId }, IndexFormComponent, '70%', '50%', 'overflow-hidden').subscribe(result => {\n if (result === true) {\n // this.getDatastores();\n }\n });\n }\n\n expandAll() {\n this.list.map(item => {\n item.open = false\n })\n\n\n\n }\n}\n","
\n
\n {{\"DataStoreFormPage.DashboardPerformance\"|translate}}\n clear\n
\n
\n\n
\n fullscreen_exit\n {{\"Common.ExpandAll\"|translate}}\n
\n
\n
\n\n
\n \n
\n
\n
0\">\n
\n \n
{{\"WidgetFormPage.StepThree\"|translate}}
\n
\n {{measure.name}}\n
\n
0\">\n
\n \n
{{\"WidgetFormPage.StepTwo\"|translate}}
\n
\n {{dimension.fieldName}}\n
\n
\n\n\n
\n\n
\n
\n\n
","import { Component, OnInit, Input, OnDestroy } from '@angular/core';\nimport { GridsterConfig, GridsterItem, GridType, CompactType, DisplayGrid } from 'angular-gridster2';\nimport { ScriptLoaderService } from 'src/app/services/script-loader/script-loader.service';\nimport { Dashboard, Dimension } from 'src/app/models/responses/dashboardResponse';\nimport { DashboardService } from 'src/app/services/dashboard/dashboard.service';\nimport { interval, Subscription } from 'rxjs';\nimport { ModalService } from 'src/app/services/modal/modal.service';\nimport { DashboardFilterComponent } from 'src/app/pages/manage/dashboard/dashboard-filter/dashboard-filter.component';\nimport { BussionFilterDefinition } from 'src/app/models/responses/dataStoreResponse';\nimport { Share } from 'src/app/models/responses/shareResponse';\nimport { ShareService } from 'src/app/services/share/share.service';\nimport { WidgetService } from 'src/app/services/widget/widget.service';\nimport { PermissionService } from 'src/app/services/permission/permission.service';\nimport { FilterAiService } from 'src/app/services/filter-ai/filter-ai.service';\nimport { ExpandedWidgetComponent } from '../modals/expanded-widget/expanded-widget.component';\nimport { ShareFormComponent } from '../modals/share-form/share-form.component';\nimport { DeviceDetectorService } from 'ngx-device-detector';\nimport { WidgetPreview } from 'src/app/models/responses/widgetLibraryResponse';\n\n\n\n@Component({\n selector: 'app-dashboard-preview',\n templateUrl: './dashboard-preview.component.html',\n styleUrls: ['./dashboard-preview.component.scss']\n})\nexport class DashboardPreviewComponent implements OnInit, OnDestroy {\n\n\n @Input() set widgets(value: any[]) {\n\n\n if (value.length !== 0 && this.dashboard) {\n this.serviceWidgets = value\n this.getDashboardsWidgets(value);\n }\n }\n @Input() window: { width: string, height: string }\n\n @Input() showExitButton: boolean = false\n @Input() showAvatar: boolean = false\n serviceWidgets: WidgetPreview[] = []\n\n\n\n @Input() dashboard: Dashboard;\n @Input() showFilter: boolean;\n @Input() isShownDashboardTitle: boolean = false;\n @Input() domain: string = null;\n @Input() shareId: string = null;\n @Input() authType: number = 0;\n @Input() shareEncryptKey: string = ''\n @Input() sharedToken: string = ''\n @Input() selectedDashboardInitialFilters: BussionFilterDefinition[] = [];\n isShownFilter: boolean = false;\n\n\n options: GridsterConfig;\n dashboardWidgets: Array = [];\n opened: boolean;\n checkDashboardInterval = interval(30000);\n subscriptionCheckDashboardInterval: Subscription;\n dashboardChangesId: string = \"\";\n isDeviceMobile: boolean = false;\n isFirstForCheckDashboardData: boolean = true;\n initialFilter: BussionFilterDefinition[] = []\n selectedFilters: BussionFilterDefinition[] = []\n selectedFilterGroup: any[] = []\n groupedData: {\n [key: string]: {\n content: BussionFilterDefinition[];\n dimension: Dimension;\n priority: number;\n isinitial: number\n }\n } = {}\n uniqTimeStemp: number = 0\n\n\n\n constructor(\n private scriptLoader: ScriptLoaderService,\n private dashboardService: DashboardService,\n private modalService: ModalService,\n private shareService: ShareService,\n private widgetService: WidgetService,\n private permissionService: PermissionService,\n private filterAIService: FilterAiService,\n private deviceService: DeviceDetectorService,\n\n ) {\n };\n\n\n getUser() {\n if (localStorage.getItem('user'))\n return JSON.parse(localStorage.getItem('user'))\n else\n return 'English'\n\n }\n ngOnInit(): void {\n this.uniqTimeStemp = Date.now()\n this.customizeDashboard();\n if (this.dashboard.title.includes('{')) {\n var newValue = ''\n let replacedText = this.dashboard.title.replace(/\\{([^}]*)\\}/, (match, group) => {\n // Burada yerine geçecek yeni değeri belirleyin\n let matchText = this.dashboard.title.match(/\\{([^}]*)\\}/);\n if (matchText[1] == 'ShowFilter') {\n newValue = this.selectedDashboardInitialFilters[0].fieldValue\n } else if (matchText[1]) {\n var matchedinitfilter = this.selectedDashboardInitialFilters.filter(x => x.fieldValue !== '' && x.fieldName.toLowerCase() == matchText[1].toLowerCase())\n if (matchedinitfilter.length > 0)\n newValue = matchedinitfilter[0].fieldValue;\n }\n return newValue;\n });\n if (newValue.length > 0)\n this.dashboard.title = replacedText\n }\n\n this.isDeviceMobile = window.innerWidth < 600;\n\n this.dimensionValuTypeControl()\n this.createPinToFilter(this.selectedDashboardInitialFilters, true)\n\n }\n\n ngOnDestroy(): void {\n // Component yok edildiğinde aboneliği sonlandır\n if (this.subscriptionCheckDashboardInterval) {\n this.subscriptionCheckDashboardInterval.unsubscribe();\n }\n }\n\n dimensionValuTypeControl() {\n this.dashboard.dimensions.map(dim => {\n if (dim.type.includes('String') && dim.value.some(x => typeof (x) !== 'string')) {\n dim.value = dim.value.map(val => String(val));\n } else if (dim.type.includes('Number') && dim.value.some(x => typeof (x) !== 'number')) {\n dim.value = dim.value.map(val => +val);\n\n }\n })\n }\n\n changeDashboardLayout(layout: string) {\n if (layout) {\n this.options.gridType = GridType[layout];\n } else {\n this.options.gridType = GridType.ScrollVertical\n }\n this.options?.api?.optionsChanged()\n\n }\n\n\n\n private getDashboardsWidgets(result: any[]) {\n\n\n this.subscribeDashboardChanges(true);\n\n this.createDashboardWidgets(result);\n\n }\n\n widgetLayoutEdit(widgetLayout: { x: number, y: number, cols: number, rows: number }, sequence: number, prevWidget: { x: number, y: number, cols: number, rows: number }, layoutType: string) {\n var serviceWidgetsCopy = [...this.serviceWidgets];\n var heightSort = serviceWidgetsCopy.sort((a, b) => a.widget.layout.rows - b.widget.layout.rows);\n var longest = heightSort[heightSort.length - 1].widget;\n var shortest = heightSort[0].widget;\n\n\n\n var editedWidgetLayout = { x: widgetLayout.x, y: widgetLayout.y, cols: widgetLayout.cols, rows: widgetLayout.rows }\n\n\n\n if (layoutType == 'mobileLayout') {\n return editedWidgetLayout\n }\n\n\n\n if (!this.deviceService.isDesktop())\n if (screen.orientation.type.includes('landscape') && this.deviceService.isMobile()) {\n //col ve row değerlerini sabit bir değere çekerek konumve col row değerini daha kolay kontrol edebiliyorun\n\n\n this.options.minCols = 12\n this.options.maxCols = 12\n this.options.minRows = 5\n this.options.api.optionsChanged()\n //enküçük widget rowu 2 ye bölünür 1 fazlası alınır\n\n if (widgetLayout.rows == shortest.layout.rows || widgetLayout.rows <= shortest.layout.rows + 1) {\n editedWidgetLayout.rows = Math.round(editedWidgetLayout.rows / 2)\n } else if (widgetLayout.rows > shortest.layout.rows && widgetLayout.rows < longest.layout.rows) {\n editedWidgetLayout.rows = Math.round(widgetLayout.rows / 1.2)\n }\n //length 1 den büyükse 2 li collara bölecek ama tek widget varsa bunu tamamına yayacak\n if (serviceWidgetsCopy.length > 1) {\n //telefon ve tablette ortak olarak yatay modda col 2 li olacak şekilde dağılır\n editedWidgetLayout.cols = 6\n }\n\n //kli bldüğümüz için x eksaninde ve y ekseninde yerini değiştirmemiz lazım 2 col a böldüğümüz için mod 2 alıyoruz \n //ve bir öncekinin konumunu saptamak için prevwidget kullanıyoruz\n\n if ((sequence + 1) % 2 == 0 && prevWidget) {\n editedWidgetLayout.x = prevWidget.x + 6\n }\n\n if (widgetLayout.rows > 4) {\n editedWidgetLayout.rows = 5\n }\n } else {\n if (this.deviceService.isMobile()) {\n //Mobilde portrait durumda en küçük widget 1 tane kolon kapalayacak çünkü fixedheight 205 olarak verildi\n if (widgetLayout.rows == shortest.layout.rows || widgetLayout.rows <= shortest.layout.rows + 1) {\n editedWidgetLayout.rows = 1\n } else if (widgetLayout.rows > shortest.layout.rows && widgetLayout.rows < longest.layout.rows) {\n editedWidgetLayout.rows = Math.round(widgetLayout.rows / 1.2)\n }\n //row 4 ten büyük olunca 4*205 den mobil boyutunu aşıyor boyutu aşanlar ekrana sığacak şekilde küçültülecek\n if (widgetLayout.rows > 4) {\n editedWidgetLayout.rows = 3\n }\n }\n else if (this.deviceService.isTablet()) {\n\n }\n }\n\n return editedWidgetLayout\n }\n\n\n\n subscribeDashboardChanges(isFirstForCheckDashboardData) {\n\n\n this.isFirstForCheckDashboardData = isFirstForCheckDashboardData;\n this.checkDashboardInterval = interval(this.dashboard.refreshInterval * 1000);\n\n this.subscriptionCheckDashboardInterval = this.checkDashboardInterval.subscribe(() => {\n this.checkDashboardChanges();\n });\n }\n\n\n\n checkDashboardChanges() {\n this.dashboardService.checkDashboardUpdateTime(this.dashboard.dashboardId, this.domain).subscribe(res => {\n if (this.isFirstForCheckDashboardData) {\n this.isFirstForCheckDashboardData = false;\n this.dashboardChangesId = res.message;\n return;\n }\n if (this.dashboardChangesId != res.message) {\n // this.dashboardWidgets = [];\n if (this.shareId != null) {\n // this.getSharedWidgets();\n if (res?.changedWidgets?.length > 0)\n this.refreshWidget(res.changedWidgets)\n } else {\n // this.fetchDashboardsWidgets(this.dashboard.dashboardId);\n if (res?.changedWidgets?.length > 0)\n this.refreshWidget(res.changedWidgets)\n }\n this.dashboardChangesId = res.message;\n }\n });\n }\n\n refreshWidget(changedWidgets) {\n var idlist = []\n // değişen widgetların idsini liste olarak atıroruz servise\n changedWidgets.map(item => {\n idlist.push(item.widgetId)\n })\n\n this.widgetService.getWidgetById(idlist, this.dashboard.dashboardId, this.dashboard.filter).\n subscribe(res => {\n res.map((item) => {\n\n var index = this.dashboardWidgets.findIndex(x => x.designerContainer.widgetId == item.widgetId)\n if (index !== undefined) {\n this.dashboardWidgets[index].designerContainer = item\n // this.createWidget(item);\n this.scriptLoader.runWidgetCode(item, true);\n\n\n }\n })\n })\n\n }\n\n\n\n openDashboardFilter() {\n this.isShownFilter = true;\n }\n\n saveFilter(newFilters: BussionFilterDefinition[]) {\n\n this.closeFilterForm(null);\n //this.getDashboardForFilter(this.selectedDashboard.dashboardId, newFilters);\n this.dashboard.filter = newFilters;\n\n this.filterGroup(this.dashboard.filter)\n if (this.shareId) {\n this.getSharedDashboardWidgets(newFilters)\n } else\n this.getWidgetsForFilter(newFilters)\n }\n\n addUniqTimeStamp(result) {\n this.uniqTimeStemp = Date.now()\n var newresult = result.map(item => {\n if (!item.widgetId.includes('-')) {\n return { ...item, widgetId: this.uniqTimeStemp + '-' + item.widgetId, widget: { ...item.widget, widgetId: this.uniqTimeStemp + '-' + item.widgetId } }\n } else {\n return item\n }\n })\n\n return newresult;\n }\n\n\n createDashboardWidgets(widgets: WidgetPreview[]) {\n widgets = this.addUniqTimeStamp(widgets)\n\n widgets = widgets.filter(x => x.widget.isFilter == 0)\n\n\n var layoutkey = 'layout'\n\n\n if (this.deviceService.isMobile() || this.deviceService.isTablet()) {\n if (widgets[0].widget.mobileLayout.cols > 0) {\n layoutkey = 'mobileLayout'\n\n this.options.mobileBreakpoint = 0\n if (window.orientation == 0) {\n this.options.rowHeightRatio = 0.8\n } else {\n this.options.rowHeightRatio = 0.4\n }\n this.options.maxCols = 500\n this.options.margin = 5\n\n this.options.maxRows = 500\n\n this.options.maxItemRows = 500\n }\n this.options.gridType = GridType.ScrollVertical\n this.options.api.optionsChanged()\n\n\n } else {\n this.changeDashboardLayout(this.dashboard.layout)\n }\n\n\n widgets.forEach((widget, key) => {\n\n\n if (this.dashboardWidgets.length > 0) {\n var prevWidget = this.dashboardWidgets[key - 1]\n }\n\n this.dashboardWidgets.push({\n ...this.widgetLayoutEdit(widget.widget[layoutkey], key, prevWidget, layoutkey),\n designerContainer: widget\n });\n this.createWidget(widget);\n\n })\n }\n\n getSharedDashboardWidgets(newFilters: BussionFilterDefinition[]) {\n this.dashboardWidgets = [];\n this.shareService.getSharedDashboardWidgets(this.shareId, this.getUser().language, this.domain, newFilters, this.shareEncryptKey, this.authType, this.sharedToken).subscribe(result => {\n this.createDashboardWidgets(result);\n })\n }\n\n getWidgetsForFilter(newFilters: BussionFilterDefinition[]) {\n this.dashboardWidgets = [];\n\n\n\n\n this.dashboardService.getWidgetsForDashboard(this.dashboard.dashboardId, newFilters).subscribe(result => {\n this.createDashboardWidgets(result)\n })\n }\n\n getFilteredDashboard(text: string) {\n\n this.filterAIService.getSuggestionForDashboard(text, this.dashboard.dashboardId).subscribe((res) => {\n this.selectedDashboardInitialFilters = this.selectedDashboardInitialFilters.concat(this.scriptLoader.selectedFilters.getValue())\n\n this.selectedFilters.map(filter => {\n if (!this.selectedDashboardInitialFilters.some(x => x.fieldValue == filter.fieldValue && x.fieldName == filter.fieldName))\n this.selectedDashboardInitialFilters.push(filter)\n })\n\n var suggestfilter = res[0].dashboard.filter\n suggestfilter.map(filter => {\n if (!this.selectedDashboardInitialFilters.some(x => x.fieldValue == filter.fieldValue && x.fieldName == filter.fieldName))\n this.selectedDashboardInitialFilters.push(filter)\n })\n\n this.selectedDashboardInitialFilters = this.selectedDashboardInitialFilters.filter(x => x.fieldValue !== '')\n\n this.filterGroup(this.selectedDashboardInitialFilters)\n\n this.getWidgetsForFilter(this.selectedDashboardInitialFilters)\n // this.scriptLoader.SetFilterForDashboard(this.dashboard.dashboardId, this.selectedDashboardInitialFilters)\n\n\n });\n\n }\n\n applyDropdownFilter(filter: BussionFilterDefinition[]) {\n if (filter.length > 0) {\n if (this.shareId) {\n this.getSharedDashboardWidgets(filter)\n\n\n this.selectedFilters = this.selectedFilters.concat(filter.filter(item =>\n !this.selectedFilters.some(x => x.fieldName === item.fieldName && x.fieldValue === item.fieldValue)\n ))\n\n\n\n } else {\n // this.scriptLoader.SetFilterForDashboard(this.dashboard.dashboardId, filter)\n this.selectedFilters = this.selectedFilters.concat(filter)\n this.getWidgetsForFilter(filter)\n }\n\n }\n\n }\n\n clearSelectedFilterGroup(filter) {\n\n this.selectedFilters = filter\n this.filterGroup(this.selectedFilters)\n\n this.createPinToFilter(this.selectedDashboardInitialFilters, false)\n\n if (this.shareId) {\n this.getSharedDashboardWidgets(filter)\n } else\n this.getWidgetsForFilter(filter)\n\n // this.scriptLoader.SetFilterForDashboard(this.dashboard.dashboardId, filter)\n }\n\n\n clearAllFilter(filterlist: any[]) {\n this.filterGroup(this.initialFilter)\n\n var filter = []\n\n if (this.initialFilter.length > 0) {\n var editinitfilter = this.initialFilter.filter(x => x.fieldValue !== '')\n filter = editinitfilter\n } else {\n filter = []\n }\n\n // this.scriptLoader.SetFilterForDashboard(this.dashboard.dashboardId, filter)\n\n if (this.shareId) {\n this.getSharedDashboardWidgets(filter)\n } else\n this.getWidgetsForFilter(filter)\n }\n\n createPinToFilter(initfilter: BussionFilterDefinition[], first: boolean) {\n var selecteddimensiontofilter: Dimension[] = this.dashboard.dimensions.filter(x => x.pintoPanel == 1)\n var bsf: BussionFilterDefinition[] = selecteddimensiontofilter.map(item => {\n return {\n fieldName: item.name,\n operator: '',\n fieldValue: ''\n }\n })\n if (first)\n this.initialFilter = initfilter.concat(bsf)\n this.filterGroup(initfilter.concat(bsf))\n }\n\n filterGroup(newFilters: BussionFilterDefinition[]) {\n this.selectedFilters = newFilters\n this.selectedDashboardInitialFilters = newFilters\n this.groupedData = {}\n this.selectedFilters.map((item: BussionFilterDefinition, key) => {\n const fieldkey = item['fieldName'];\n\n if (!this.groupedData[fieldkey]) {\n this.groupedData[fieldkey] = {\n content: [],\n dimension: null,\n priority: this.dashboard.dimensions.findIndex(x => x.name == fieldkey),\n isinitial: this.dashboard.filter.some(x => x.fieldName == fieldkey) ? 1 : 0\n }\n }\n this.groupedData[fieldkey].content.push(item);\n this.groupedData[fieldkey].dimension = this.dashboard.dimensions.find(x => x.name == fieldkey)\n });\n var keys = Object.keys(this.groupedData)\n this.selectedFilterGroup = []\n this.dashboard.dimensions.map(item => {\n if (keys.some(x => x == item.name)) {\n this.selectedFilterGroup.push(item.name)\n }\n })\n\n }\n\n\n expandWidget(widgetData: any) {\n let data = {\n widgetData: widgetData.designerContainer,\n shareModalOpen: (e) => this.openShareForm({ ...e, filter: this.selectedFilters }),\n selectedFilters: this.selectedFilters,\n selectedDashboard: this.dashboard\n }\n this.modalService.openModal(data, ExpandedWidgetComponent, '90%', '100%', 'overflow-hidden').subscribe(result => { });\n }\n\n openShareForm(shareData: any) {\n let data = {\n objectType: shareData.objectType,\n objectId: shareData.objectId,\n dashboardId: this.dashboard.dashboardId,\n filter: this.dashboard.filter,\n function: () => { }\n };\n\n this.modalService.openModal(data, ShareFormComponent, 'auto', '600px').subscribe(result => {\n if (result) {\n }\n })\n }\n\n closeFilterForm(event: any) {\n this.isShownFilter = false;\n }\n\n private createWidget(widgetResponse: any) {\n this.scriptLoader.addScriptFileToHead(widgetResponse.widgetLibraries);\n this.scriptLoader.runWidgetCode(widgetResponse);\n }\n\n private customizeDashboard() {\n\n var gridtype = this.dashboard.layout ? GridType[this.dashboard.layout] : GridType.ScrollVertical\n this.options = {\n itemChangeCallback: (opened) => {\n this.options?.api.optionsChanged()\n },\n gridType: gridtype,\n compactType: CompactType.CompactUp,\n margin: (this.deviceService.isTablet() && window.orientation != 0) || this.deviceService.isMobile() ? 5 : 10,\n outerMargin: true,\n outerMarginTop: null,\n outerMarginRight: null,\n outerMarginBottom: null,\n outerMarginLeft: null,\n useTransformPositioning: true,\n mobileBreakpoint: 600,\n minCols: 2,\n maxCols: 100,\n minRows: this.dashboardWidgets.length,\n maxRows: 100,\n maxItemCols: 100,\n minItemCols: 1,\n maxItemRows: 100,\n minItemRows: 1,\n maxItemArea: 2500,\n minItemArea: 1,\n defaultItemCols: 1,\n defaultItemRows: 1,\n fixedColWidth: 105,\n fixedRowHeight: 205,\n keepFixedHeightInMobile: true,\n keepFixedWidthInMobile: false,\n scrollSensitivity: 10,\n scrollSpeed: 20,\n enableEmptyCellClick: false,\n enableEmptyCellContextMenu: false,\n enableEmptyCellDrop: false,\n enableEmptyCellDrag: false,\n enableOccupiedCellDrop: false,\n emptyCellDragMaxCols: 50,\n emptyCellDragMaxRows: 50,\n ignoreMarginInRow: false,\n draggable: {\n enabled: false,\n },\n resizable: {\n enabled: false,\n },\n swap: false,\n pushItems: true,\n disablePushOnDrag: false,\n disablePushOnResize: false,\n pushDirections: { north: true, east: true, south: true, west: true },\n pushResizeItems: false,\n displayGrid: DisplayGrid.None,\n disableWindowResize: false,\n disableWarnings: false,\n scrollToNewItems: false,\n };\n }\n\n}","\n\n
\n clear\n
\n
\n\n
\n \n \n
\n\n
0?'calc(100% - 90px)': 'calc(100% - 50px)' }\">\n \n \n \n \n\n \n \n
","import { Component, OnInit, Inject } from '@angular/core';\nimport { Dashboard } from 'src/app/models/responses/dashboardResponse';\nimport { MAT_DIALOG_DATA, MatDialogRef } from '@angular/material/dialog';\n\n@Component({\n selector: 'app-dashboard-selection',\n templateUrl: './dashboard-selection.component.html',\n styleUrls: ['./dashboard-selection.component.scss']\n})\nexport class DashboardSelectionComponent implements OnInit {\n\n dashboards: any[] = [\"asdad\", \"asdasda\"];\n selectedDashboards: string[] = [];\n compareFunctionForDashboard = (o1: any, o2: any) => o1 === o2;\n\n constructor(\n @Inject(MAT_DIALOG_DATA) public data: any,\n private dialogRef: MatDialogRef,\n ) { }\n\n ngOnInit(): void {\n if (this.data.dashboards) {\n this.dashboards = this.data.dashboards;\n this.selectedDashboards = this.data.activeDashboardIds\n }\n\n }\n\n addSelection() {\n\n\n this.dialogRef.close(this.selectedDashboards);\n }\n}\n","\n\n \n \n \n {{dash.title}}\n \n \n
\n
\n\n \n \n","import { Component, Input, OnDestroy, OnInit } from '@angular/core';\nimport { ActivatedRoute, Router } from '@angular/router';\nimport { cerateCssFile, deleteCssFile, idKeyword } from 'src/app/core/utils';\nimport { App } from 'src/app/models/responses/appsResponse';\nimport { Dashboard } from 'src/app/models/responses/dashboardResponse';\nimport { AuthService } from 'src/app/services/auth/auth.service';\nimport { DashboardService } from 'src/app/services/dashboard/dashboard.service';\nimport { PermissionService } from 'src/app/services/permission/permission.service';\nimport { environment } from 'src/environments/environment';\n\n@Component({\n selector: 'app-data-app-design',\n templateUrl: './data-app-design.component.html',\n styleUrls: ['./data-app-design.component.scss']\n})\nexport class DataAppDesignComponent implements OnInit, OnDestroy {\n\n @Input() data: { app: App } = {\n app: {\n name: '',\n icon: '',\n appCode: '',\n applicationStatus: '',\n description: '',\n domain: '',\n access: 0,\n owner: '',\n ownerId: '',\n groups: [],\n applicationId: '',\n openerMethod: 0,\n applicationLink: '',\n dashboards: [],\n appType: 0,\n creationDate: '',\n appCSS: '',\n options: ''\n }\n }\n @Input() ismodal: boolean = false;\n appLink: string = ''\n\n contentIdKeyword = idKeyword.app\n\n dashboardList: (Dashboard & { tagList: string[] })[] = []\n filteredDashboardList: (Dashboard & { tagList: string[] })[] = []\n widgetCount: number = 0\n appId: string = ''\n env: string = environment.imageUrl\n dashboardWidgets: any[] = []\n selectedDashboard: Dashboard\n avatar: string = ''\n showGrid: boolean = false\n isTopSectionShrinked: boolean = false\n tabs: Dashboard[] = []\n permissions: string[] = []\n\n constructor(private dashboardService: DashboardService, private activatedRoute: ActivatedRoute,\n private authService: AuthService, private permissionService: PermissionService, private navigation: Router) { }\n\n ngOnInit(): void {\n this.appId = this.activatedRoute.snapshot.paramMap.get('appId');\n if (this.appId) {\n this.data.app = JSON.parse(localStorage.getItem('app'))\n this.appLink = '/data-app/' + this.appId\n } else {\n this.appId = this.data.app.applicationId\n }\n this.getAllDashboards()\n this.avatar = environment.imageUrl + this.authService.getUserAvatar();\n this.getUserRoleList()\n\n cerateCssFile(this.data.app.appCSS, this.data.app.applicationId, this.contentIdKeyword)\n }\n\n ngOnDestroy(): void {\n if (this.appId)\n deleteCssFile(this.appId)\n }\n\n\n getUserRoleList() {\n this.permissionService.getUserRoleList().subscribe(roleList => {\n this.permissions = roleList;\n });\n }\n\n\n\n\n getAllDashboards() {\n if (this.dashboardService.cachedData.getValue().authorizedDashboard.length > 0) {\n this.sortedDashboardList(this.dashboardService.cachedData.getValue().authorizedDashboard)\n\n\n this.filteredDashboardList = this.dashboardList\n this.tabs = this.dashboardList\n } else {\n this.dashboardService.getAuthorizedDashboards().subscribe(res => {\n this.sortedDashboardList(res)\n\n this.filteredDashboardList = this.dashboardList\n this.tabs = this.dashboardList\n })\n }\n\n\n }\n\n sortedDashboardList(list: Dashboard[]) {\n this.data.app.dashboards.map(item => {\n var selectedobject = list.find(x => x.dashboardId == item)\n if (selectedobject) {\n this.dashboardList.push({ ...selectedobject, tagList: selectedobject.tags.split(' ').filter(x => x !== '') })\n this.widgetCount = this.widgetCount + selectedobject.widgets.length\n }\n })\n }\n\n\n changeSelectedDashboard(dashboard: Dashboard) {\n this.isTopSectionShrinked = true\n this.showGrid = true\n this.selectedDashboard = dashboard\n\n if (this.data.app.openerMethod == 2) {\n this.navigation.navigate(['/main/' + this.data.app.applicationId], { state: this.selectedDashboard })\n } else {\n sessionStorage.setItem('selectedDashboard', JSON.stringify(this.selectedDashboard))\n }\n\n\n\n // if (!this.tabs.some(x => x.dashboardId == this.selectedDashboard.dashboardId))\n // this.tabs.push(this.selectedDashboard)\n // this.navigation.navigate(['/main/' + this.data.app.applicationId], { state: this.selectedDashboard })\n }\n\n searchTextChange(text) {\n if (text == '') {\n this.filteredDashboardList = this.dashboardList\n } else\n this.filteredDashboardList = this.dashboardList.filter(x => x.title.toLowerCase().includes(text.toLowerCase()))\n }\n\n\n gotoAppsPage() {\n this.navigation.navigate(['/landing/deploy-app'])\n }\n\n\n returnApp() {\n this.showGrid = false\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
{{data.app.name}}
\n

\n {{data.app.description}}\n

\n
\n
\n\n
\n \n {{data.app.creationDate.split(' ')[0]}}\n
\n
\n \n {{data.app.owner}}\n
\n
\n \n {{dashboardList.length}} {{\"AppPage.Dashboards\"|translate}}\n
\n
\n \n {{widgetCount}} {{\"AppPage.Widgets\"|translate}}\n
\n
\n
\n\n\n\n
\n
\n
\n
\n
\n
\n

{{\"AppPage.DashboardList\"|translate}}

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

{{item.title}}

\n

{{item.description}}

\n
0\">\n
{{tg}}
\n
\n
\n
\n
\n
\n \n {{item.creationDate.split(' ')[0]}}\n
\n
\n \n {{item.owner}}\n\n
\n\n\n
\n
\n
\n
\n\n
\n\n\n
\n \n \n
\n\n","import { CdkDragDrop, moveItemInArray } from '@angular/cdk/drag-drop';\nimport { Component, EventEmitter, Input, OnChanges, OnInit, Output, SimpleChanges } from '@angular/core';\nimport { DeviceDetectorService } from 'ngx-device-detector';\nimport { environment } from 'src/environments/environment';\n\n@Component({\n selector: 'app-data-list',\n templateUrl: './data-list.component.html',\n styleUrls: ['./data-list.component.scss']\n})\nexport class DataListComponent implements OnInit, OnChanges {\n @Input() datas: any[] = []\n @Input() columns: any[] = []\n @Input() previewButton: boolean = false\n @Input() dragConfig:boolean=false\n\n @Output() changedSort:EventEmitter = new EventEmitter()\n @Output() dataFunction: EventEmitter = new EventEmitter()\n ismobile: boolean = this.device.isMobile()\n @Input() itemsPerPage: number = 5\n totalPages: number = 0\n currentPage: number = 0\n paginatedData: any[] = []\n constructor(private device: DeviceDetectorService) { }\n avatarKeys = { avatar: 'avatar', tooltip: '', avatartext: 'firstName', avatartext2: 'lastName' }\n env: string = environment.imageUrl\n\n\n ngOnInit(): void {\n\n\n }\n ngOnChanges(changes: SimpleChanges): void {\n this.updatePagination()\n }\n\n\n updatePagination() {\n this.totalPages = Math.ceil(this.datas.length / this.itemsPerPage);\n this.currentPage = 0;\n this.paginatedData = this.datas.slice(\n this.currentPage * this.itemsPerPage,\n (this.currentPage + 1) * this.itemsPerPage\n );\n }\n\n paginateDatas(event: any) {\n this.currentPage = event.pageIndex;\n this.paginatedData = this.datas.slice(\n event.pageIndex * event.pageSize,\n (event.pageIndex + 1) * event.pageSize\n );\n }\n\n sendDataToParent(data) {\n this.dataFunction.emit(data)\n }\n\n drop(event: CdkDragDrop) {\n moveItemInArray(this.paginatedData, event.previousIndex, event.currentIndex);\n this.changedSort.emit(this.paginatedData)\n }\n\n}\n","
\n
\n
\n {{item.title | translate}}\n\n
\n
\n
\n
    \n\n
  • \n
    \n
    \n
    \n
    {{ item[columns[1].selector].slice(0, 2).toUpperCase() }}
    \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 {{item[cl.selector]}}\n
    \n
    \n \n\n
  • \n
\nitemsPerPage\" [length]=\"datas.length\" [pageSize]=\"itemsPerPage\" [pageSizeOptions]=\"[]\"\n (page)=\"paginateDatas($event)\">","import { Component, OnInit, Input, Output, EventEmitter, ViewChild } from '@angular/core';\nimport { MatTableDataSource } from '@angular/material/table';\nimport { MatPaginator } from '@angular/material/paginator';\nimport { MatSort } from '@angular/material/sort';\nimport { environment } from 'src/environments/environment';\n\n@Component({\n selector: 'app-data-table',\n templateUrl: './data-table.component.html',\n styleUrls: ['./data-table.component.scss']\n})\nexport class DataTableComponent implements OnInit {\n\n @Input() title: string;\n @Input() addButtonText: string;\n @Input() secondButtonText: string;\n @Input() secondButtonIcon: string = 'flow';\n\n @Input() filterPlaceholder: string;\n @Input() displayedColumns: string[];\n @Input() displayedColumnsName: string[];\n @Input() columnWidth: string[] = [];\n @Input() pageSizeOptions: number[] = [10, 25, 100]\n @Input() listTypeButton: boolean = false\n\n @Input() showRunTask: boolean;\n @Input() showDesigner: boolean;\n @Input() showCreator:boolean=false\n @Input() showStopTask: boolean;\n @Input() buttonActive: boolean = true;\n @Input() paginationActive: boolean = true;\n @Input() butonIcon: string = 'add_dashboard';\n @Input() exportLogButton: boolean = false;\n @Input() imageWidth: string; // Görüntü genişliği için giriş özelliği\n @Input() imageHeight: string; // Görüntü yüksekliği için giriş özelliği\n @Input() set data(value: any) {\n if (value) {\n this.createDataTable(value);\n\n }\n }\n inputValue: string = ''\n\n @Input() actionButtonsList: { icon: string, text: string, actionFunction: Function }[] = []\n\n @Output() openModal = new EventEmitter();\n @Output() deleteRow = new EventEmitter();\n @Output() runTaskEvent = new EventEmitter();\n @Output() stopTaskEvent = new EventEmitter();\n @Output() exportLog = new EventEmitter();\n @Output() openDashboards = new EventEmitter();\n @Output() secondButtonFunc = new EventEmitter();\n @Output() changeListStyleFunction = new EventEmitter();\n\n\n listStyleButton: string = 'list'\n\n\n @ViewChild(MatPaginator, { static: true }) paginator: MatPaginator;\n @ViewChild(MatSort, { static: true }) sort: MatSort;\n\n dataSource: MatTableDataSource;\n baseUrl = environment.imageUrl;\n constructor() { }\n\n ngOnInit(): void {\n\n }\n\n private createDataTable(result: any[]) {\n const dataTable = result;\n this.dataSource = new MatTableDataSource(dataTable);\n this.dataSource.paginator = this.paginator;\n this.dataSource.sort = this.sort;\n\n if (this.inputValue) {\n var event = {\n target: {\n value: this.inputValue\n }\n }\n this.applyFilter(event)\n }\n }\n\n applyFilter(event: any) {\n const filterValue = (event.target as HTMLInputElement).value;\n this.dataSource.filter = filterValue.trim().toLowerCase();\n this.inputValue = (event.target as HTMLInputElement).value;\n if (this.dataSource.paginator) {\n this.dataSource.paginator.firstPage();\n }\n }\n\n open(data: any, type: string) {\n this.openModal.emit({ data: data, type: type });\n }\n openDashboard(item: any) {\n this.openDashboards.emit(item);\n }\n export(item: any) {\n this.exportLog.emit(item);\n }\n delete(item: any) {\n this.deleteRow.emit(item);\n }\n\n runTask(item: any) {\n this.runTaskEvent.emit(item);\n }\n\n stopTask(item: any) {\n this.stopTaskEvent.emit(item);\n }\n\n secondButton() {\n this.secondButtonFunc.emit()\n }\n\n changeListStyle() {\n this.changeListStyleFunction.emit(this.listStyleButton)\n }\n\n\n}\n","
\n
\n
\n {{title}}\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\n\n \n\n \n \n \n
\n
{{displayedColumnsName[i]}}
\n
{{displayedColumnsName[i]}}
\n
\n
\n \n \n
\n
0?columnWidth[i]:''\"> {{displayedColumnsName[i]}} \n {{row[item]}}\n 0?columnWidth[i]:''\"> {{displayedColumnsName[i]}} \n
\n
\n
\n
\n
\n
{{displayedColumnsName[i]}} \n 0&& (+row['errorCount'])>=(+row['disableThreshold'])\">error_outline\n \n \n\n
\n
{{displayedColumnsName[i]}} \n\n \n\n \n \n \n\n \n \n \n \n\n \n \n \n\n \n
\n\n \n
\n
","import { Component, EventEmitter, Injectable, Input, OnInit, Output, ViewChild } from '@angular/core';\nimport \"@angular/compiler\";\nimport { DashboardService } from 'src/app/services/dashboard/dashboard.service';\nimport { Dashboard } from 'src/app/models/responses/dashboardResponse';\nimport { AuthService } from 'src/app/services/auth/auth.service';\nimport { HomeComponent, Msg } from 'src/app/pages/home/home.component';\nimport { Group } from 'src/app/models/responses/groupsResponse';\nimport { forkJoin } from 'rxjs';\nimport { User } from 'src/app/models/responses/usersResponse';\nimport { environment } from 'src/environments/environment';\nimport { App } from 'src/app/models/responses/appsResponse';\n\n@Component({\n selector: 'app-dynamic-home',\n // templateUrl: './dynamic-home.component.html',\n template: '',\n styleUrls: ['./dynamic-home.component.scss'],\n standalone: true\n})\n\nexport class DynamicHomeComponent implements OnInit {\n @ViewChild(HomeComponent) home: HomeComponent;\n constructor() {\n }\n\n\n saveUserStorageCallBack: (selectedOption) => void;\n selectedPage: any[] = []\n selectedPageAllData: any[] = []\n selectedList: any[] = []\n Dashboards: Dashboard[] = []\n baseUrl: string = ''\n dashboardService: any;\n scriptLoader: any;\n router: any;\n cssFolder: any;\n page: number = 1\n groups: Group[] = []\n Applications: any[]\n ActiveDashboards: Dashboard[] = []\n classNameAll: string = 'filter-active'\n classNameDash: string = ''\n classNameApp: string = ''\n roles: string[] = []\n licencePermissions = localStorage.getItem('licence') ?? ''\n showFirst: HTMLElement\n cacheddata: any\n passVisible: boolean = false\n loading: boolean = true\n selectedGroupOption: string | number = 'All'\n savedHomeOption: string | number = 'All'\n\n\n\n selectedMenu = 'All'\n\n ngOnInit(): void {\n this.baseUrl = environment.imageUrl;\n this.roles = this.getPermissions()\n this.setCachedPage();\n\n this.dashboardService = Msg.DashboardService;\n this.scriptLoader = Msg.ScriptLoader;\n this.router = Msg.Router;\n\n }\n\n saveUserStorage() {\n if (this.saveUserStorageCallBack) {\n this.saveUserStorageCallBack(this.selectedGroupOption);\n }\n }\n\n getPermissions() {\n if (localStorage.getItem('user'))\n return JSON.parse(localStorage.getItem('user'))?.permissions\n else\n return []\n }\n\n setCachedPage(ishome?: string) {\n\n var homeData = localStorage.getItem('selectedHome')\n var user = localStorage.getItem('user')\n var userObj: User = user ? JSON.parse(user) : null\n\n\n\n if (ishome == 'home') {\n history.replaceState({ apply: 'nolocalstorage' }, '')\n\n }\n\n if (history.state?.apply == 'nolocalstorage' && userObj.defaultDashboardAppId) {\n this.savedHomeOption = userObj.defaultDashboardAppId\n this.changeGroupSelection(userObj.defaultDashboardAppId)\n } else if (homeData) {\n var jsonhome: { 'selectedTab': string, 'selectedOption': string } = JSON.parse(homeData)\n if (history.state?.apply == 'nolocalstorage' || jsonhome.selectedOption == userObj?.defaultDashboardAppId) {\n this.savedHomeOption = jsonhome.selectedOption\n }\n this.select(jsonhome.selectedOption);\n this.changeGroupSelection(jsonhome.selectedOption)\n } else {\n this.select('All')\n }\n\n\n }\n\n\n\n saveLocalStorage() {\n var storageItem = { 'selectedTab': this.selectedMenu, 'selectedOption': this.selectedGroupOption }\n localStorage.setItem('selectedHome', JSON.stringify(storageItem))\n }\n\n changeGroupSelection(event) {\n var selectedValue = event?.target?.value || event\n this.selectedGroupOption = selectedValue\n console.log('first bura neden çalışıyor222')\n\n if (this.selectedMenu !== 'Dashboard')\n this.select('Dashboard')\n\n if (selectedValue == 'AppView') {\n this.selectedPage = this.groups\n this.selectedPageAllData = this.groups\n } else if (selectedValue == 'All') {\n this.selectedList = this.Dashboards.concat(this.Applications)\n this.selectedPage = this.Dashboards.concat(this.Applications)\n this.selectedPageAllData = this.Dashboards.concat(this.Applications)\n } else if (selectedValue == 'My') {\n var userId = localStorage.getItem('userId')\n this.selectedList = this.Dashboards.filter(x => x.ownerId == userId)\n this.selectedPage = this.Dashboards.filter(x => x.ownerId == userId)\n this.selectedPageAllData = this.Dashboards.filter(x => x.ownerId == userId)\n\n } else if (selectedValue == 'Favorite') {\n this.selectedList = this.ActiveDashboards\n this.selectedPage = this.ActiveDashboards\n this.selectedPageAllData = this.ActiveDashboards\n\n } else {\n this.selectedPage = []\n this.selectedList = []\n this.selectedPageAllData = []\n\n var groupSelecteddashboards = this.groups.find(x => x.groupId == selectedValue)?.dashboards || []\n groupSelecteddashboards.map(item => {\n var selectedDash = this.Dashboards.find(x => x.dashboardId == item)\n if (selectedDash) {\n this.selectedPage.push(selectedDash)\n this.selectedList.push(selectedDash)\n this.selectedPageAllData.push(selectedDash)\n }\n })\n\n }\n\n this.saveLocalStorage()\n\n }\n\n searchElements(e) {\n // var key = 'title'\n // if (this.selectedPageAllData[0]?.groupName) {\n // key = 'groupName'\n // } else if (this.selectedPageAllData[0]?.name) {\n // key = 'name'\n\n // }\n\n\n this.selectedPage = this.selectedPageAllData.filter(x => x?.name?.toLowerCase().includes(e.target.value.toLowerCase())\n || x?.title?.toLowerCase().includes(e.target.value.toLowerCase())\n || x?.groupName?.toLowerCase().includes(e.target.value.toLowerCase()))\n\n }\n\n navigation(item: any) {\n var anchor = document.createElement('a');\n // this.setCacheddata()\n if (item.groupId) {\n this.changeGroupSelection(item.groupId)\n } else if (item.applicationLink) {\n localStorage.setItem('app', JSON.stringify(item))\n let options = {\n type: 'centerWindow', //newWindow,centerWindow,rightWindow,leftWindow\n windowWidth: '100%',\n windowHeight: '100%',\n isapp: 'true',\n app: item\n }\n\n if (item.options) {\n options = JSON.parse(item.options)\n options.windowHeight = options.windowHeight + '%'\n options.windowWidth = options.windowWidth + '%'\n\n options['isapp'] = 'true'\n options['app'] = item\n\n }\n if (item.appType == 0) {\n this.scriptLoader.openWindow(`${this.baseUrl}/Apps/${item.applicationLink}`, options)\n return\n }else if(item.appType==2){\n localStorage.setItem('selectedAppId',item.applicationId)\n anchor.href = `${this.baseUrl}/AppDesigner/#/creator`;\n anchor.target = \"_blank\";\n anchor.click();\n return\n }\n\n if (item.openerMethod == 1) {//internal\n window.open(`${this.baseUrl}/Apps/${item.applicationLink}`, \"_blank\");\n } else if (item.openerMethod == 2) {//newtab\n anchor.href = `${this.baseUrl}/Apps/${item.applicationLink}`;\n anchor.target = \"_blank\";\n anchor.click();\n\n } else if (item.openerMethod == 3) {//popup\n this.scriptLoader.openWindow(`${this.baseUrl}/Apps/${item.applicationLink}`, options)\n }\n } else {\n // this.cookieService.setItem('lastDashboards',)\n // this.dashboardService.setLastDashboardId(item.dashboardId)\n this.router.navigate([\"/main\"], { state: item });\n }\n }\n\n pagination(pageNumber: number) {\n this.selectedPage = this.selectedList.slice((pageNumber - 1) * 8, ((pageNumber - 1) * 8) + 8)\n }\n\n openSelfServisMain() {\n this.router.navigate(['selfservice'])\n }\n\n\n\n select(type: string) {\n this.selectedMenu = type\n if (type === 'All') {\n this.selectedList = this.Dashboards.concat(this.Applications)\n this.selectedPage = this.Dashboards.concat(this.Applications)\n this.selectedPageAllData = this.Dashboards.concat(this.Applications)\n // this.pagination(this.page = 1)\n this.classNameAll = 'filter-active'\n this.classNameDash = ''\n this.classNameApp = ''\n this.selectedGroupOption = 'All'\n } else if (type === 'Dashboard') {\n this.selectedList = this.Dashboards\n this.selectedPage = this.Dashboards\n this.selectedPageAllData = this.Dashboards\n // this.pagination(this.page = 1)\n this.classNameAll = ''\n this.classNameApp = ''\n this.classNameDash = 'filter-active'\n } else if (type === 'App') {\n this.selectedList = this.Applications\n this.selectedPage = this.Applications\n this.selectedPageAllData = this.Applications\n // this.pagination(this.page = 1)\n this.classNameDash = ''\n this.classNameAll = ''\n this.classNameApp = 'filter-active'\n }\n }\n\n\n\n\n}\n","import { Component, Inject, OnInit, Optional, ViewChild, inject, ElementRef, AfterViewInit, AfterContentInit, AfterViewChecked } from '@angular/core';\nimport { LoginRequest } from 'src/app/models/requests/loginRequest';\nimport { LoginComponent } from 'src/app/pages/login/login.component';\nimport { NgModel, UntypedFormControl, UntypedFormGroup, Validators } from '@angular/forms';\nimport { User, UserForm } from 'src/app/models/responses/loginResponse';\nimport { LoginService } from 'src/app/services/login/login.service';\nimport { environment } from 'src/environments/environment';\nimport { UserHomePage } from 'src/app/models/responses/usersResponse';\nimport { App } from 'src/app/models/responses/appsResponse';\n@Component({\n selector: 'app-dynamic-login',\n templateUrl: './dynamic-login.component.html',\n // template: '',\n styleUrls: ['./dynamic-login.component.scss'],\n standalone: true\n})\nexport class DynamicLoginComponent implements OnInit, AfterViewInit {\n constructor(\n ) {\n this.local = inject(LoginService)\n if (this.local) {\n this.loginRequest = this.local.getLoginRequest();\n this.authService = this.local.getAuthService();\n this.licenseService = this.local.getLicenseService()\n this.spinner = this.local.getSpinner();\n this.translate = this.local.getTranslate();\n this.router = this.local.getRouter();\n this.coreService = this.local.getCoreService();\n }\n\n\n }\n username: string\n password: string\n logo: string = environment.logo;\n spinner: any;\n authService: any;\n licenseService: any;\n chaptcaEnabled: boolean = false;\n captchaService: any;\n captchaStatus: any = null;\n warntext: string = '';\n translate: any;\n router: any;\n local: any;\n coreService: any;\n loginRequest: LoginRequest = {\n Username: '',\n Password: ''\n };\n passwordAgain: string;\n pageForm: UntypedFormGroup;\n isShownCreateAccount: boolean = false;\n loginForm: boolean = true;\n loginImage: string = ''\n user: UserForm = {\n firstName: \"\",\n lastName: \"\",\n email: \"\",\n password: \"\",\n\n };\n\n config: any = {\n type: 1,\n length: 6,\n cssClass: 'custom',\n back: {\n stroke: \"#2F9688\",\n solid: \"#f2efd2\"\n },\n font: {\n color: \"#000000\",\n size: \"35px\"\n }\n };\n captchaText: string = '';\n ngOnInit(): void {\n\n this.getChaptcaEnabled()\n this.getLoginImage()\n }\n\n\n\n ngAfterViewInit(): void {\n\n\n this.createCaptcha();\n this.getLoginImage()\n\n }\n\n getLoginImage() {\n this.authService.getLoginImage('').subscribe(res => {\n this.loginImage = res\n\n document.getElementById('login-left-area').style.backgroundImage = \"url(\" + environment.baseUrl + this.loginImage + \")\"\n document.getElementById('login-left-area').style.backgroundPosition = \"center\"\n })\n }\n\n getChaptcaEnabled() {\n this.authService.isChaptchaEnabled().subscribe((res) => {\n this.chaptcaEnabled = res\n if (this.chaptcaEnabled)\n document.getElementsByClassName(\"parent\")[0].setAttribute('style', 'visibility:visible;height:auto')\n })\n\n this.captchaService.captchStatus.subscribe((status) => {\n this.captchaStatus = status;\n if (this.captchaStatus !== null && !this.captchaStatus)\n this.warntext = 'Please check code!'\n else\n this.warntext = ''\n });\n }\n code: string = ''\n check: boolean = false\n\n warnText: string = 'Your Text Incorrect!'\n\n createCaptcha() {\n //clear the contents of captcha div first \n document.getElementById('captchacontainer').innerHTML = \"\";\n var charsArray =\n \"0123456789abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ\";\n var lengthOtp = 6;\n var captcha = [];\n for (var i = 0; i < lengthOtp; i++) {\n //below code will not allow Repetition of Characters\n var index = Math.floor(Math.random() * charsArray.length + 1); //get the next character from the array\n if (captcha.indexOf(charsArray[index]) == -1)\n captcha.push(charsArray[index]);\n else i--;\n }\n var canv = document.createElement(\"canvas\");\n canv.id = \"captcha\";\n canv.width = 100;\n canv.height = 50;\n var ctx = canv.getContext(\"2d\");\n ctx.font = \"25px Georgia\";\n ctx.strokeText(captcha.join(\"\"), 0, 30);\n //storing captcha so that can validate you can save it somewhere else according to your specific requirements\n this.code = captcha.join(\"\");\n document.getElementById(\"captchacontainer\").appendChild(canv); // adds the canvas to the body element\n if (!this.chaptcaEnabled)\n document.getElementsByClassName(\"parent\")[0].setAttribute('style', 'visibility:hidden;height:0')\n }\n\n checkCaptcha() {\n var inputvalue = document.getElementById('cpatchaTextBox') as HTMLInputElement\n this.check = true\n\n if (inputvalue.value == '' || inputvalue.value !== this.code) {\n this.captchaStatus = false\n } else {\n document.getElementById('parent').classList.add('custom-blur')\n this.captchaStatus = true\n }\n\n }\n\n changePasswords(event: any) {\n this.password = event.target.value;\n this.loginRequest.Password = this.password;\n }\n updatePassword(event: any) {\n this.password = event.target.value;\n this.login();\n }\n\n changeUserName(event: any) {\n this.username = event.target.value;\n this.loginRequest.Username = this.username;\n }\n changeName(event: any) {\n this.user.firstName = event.target.value;\n }\n changeLastName(event: any) {\n this.user.lastName = event.target.value;\n }\n changeMail(event: any) {\n this.user.email = event.target.value;\n }\n changePasswordCreateAcount(event: any) {\n this.user.password = event.target.value;\n }\n // updatePasswordCreateAcount(event: any) {\n // this.user.passwordAgain = event.target.value;\n // this.createAccount();\n // }\n deneme(event: any) {\n this.passwordAgain = event.target.value;\n }\n\n login() {\n this.spinner.show();\n\n if (this.chaptcaEnabled && !this.captchaStatus) {\n this.spinner.hide();\n this.check = true\n return;\n }\n\n if (!this.username || !this.password || this.username == '' || this.password == '') {\n this.spinner.hide();\n this.coreService.showFormFillError()\n return;\n }\n\n this.loginRequest = {\n Username: this.username,\n Password: this.password\n };\n\n this.authService.login(this.loginRequest).subscribe((result: any) => {\n if (result.result) {\n this.spinner.hide();\n // if (result.message.language == 'English') {\n // this.translate.use('en');\n // } else {\n // this.translate.use('tr');\n // }\n this.authService.saveToken(result.message.token);\n this.licenseService.getLicense().subscribe(res => {\n if (res?.bussionModules)\n localStorage.setItem('licence', JSON.stringify(res.bussionModules.split(',')))\n\n if (result.message.homePage[0])\n this.navigateUserMainPage(result.message.homePage[0])\n else\n this.router.navigate(['/'], { state: { apply: 'nolocalstorage' } });\n })\n\n }\n });\n }\n\n\n\n\n navigateUserMainPage(mainpage: UserHomePage) {\n\n if (mainpage) {\n if (mainpage.type == 1) {\n localStorage.setItem('app', mainpage.object)\n var appobj = JSON.parse(mainpage.object)\n if (appobj.appType == 0) {\n this.router.navigate(['/data-app/' + mainpage.objectId]);\n } else {\n window.location.replace(`${environment.baseUrl}/Apps/${appobj.applicationLink}`);\n\n // this.router.navigate(['/Apps/' + appobj.applicationLink]);\n }\n }\n } else {\n this.router.navigate(['/']);\n }\n }\n\n\n\n\n createAccount() {\n debugger;\n if (this.user.password == this.passwordAgain) {\n this.authService.createAccount(this.user).subscribe(result => {\n this.authService.saveToken(result.token);\n this.coreService.showSuccessMessage(this.translate.instant(\"Common.Success\"))\n // this.router.navigate(['/']);\n window.location.href = window.location.origin + '/';\n })\n }\n else {\n this.coreService.showErrorMessage(this.translate.instant(\"ErrorMessages.PasswordNotSame\"));\n }\n }\n\n\n}\n","import { Component, OnInit } from '@angular/core';\n\n@Component({\n selector: 'app-edit-table',\n templateUrl: './edit-table.component.html',\n styleUrls: ['./edit-table.component.scss']\n})\nexport class EditTableComponent implements OnInit {\n splashVisible: boolean = true\n\n constructor() { }\n\n ngOnInit(): void {\n }\n\n\n closeSplash() {\n this.splashVisible = false\n }\n\n}\n","\n\n\n","import { Component, EventEmitter, Input, OnInit, Output, ViewChild } from '@angular/core';\nimport { MatPaginator } from '@angular/material/paginator';\nimport { MatSort } from '@angular/material/sort';\nimport { MatTableDataSource } from '@angular/material/table';\nimport { environment } from 'src/environments/environment';\n\n\n@Component({\n selector: 'app-expand-table',\n templateUrl: './expand-table.component.html',\n styleUrls: ['./expand-table.component.scss']\n})\nexport class ExpandTableComponent implements OnInit {\n\n @Input() title: string;\n @Input() addButtonText: string;\n @Input() secondButtonText: string;\n @Input() columnsWidth:any\n\n @Input() filterPlaceholder: string;\n @Input() displayedColumns: string[];\n @Input() displayedColumnsName: string[];\n @Input() columnWidth: string[] = [];\n @Input() pageSizeOptions: number[] = [10, 25, 100]\n\n @Input() listTypeButton:boolean=false\n\n listStyleButton:string='folder'\n\n @Input() showRunTask: boolean;\n @Input() showDesigner: boolean;\n @Input() showStopTask: boolean;\n @Input() buttonActive: boolean = true;\n @Input() paginationActive: boolean = true;\n @Input() butonIcon: string = 'add_dashboard';\n @Input() exportLogButton: boolean = false;\n _treeData: any[] = []\n @Input() set treedataSource(value) {\n this._treeData = value\n\n this._treeData.map(item => {\n item.children = this.createDataTable(item.children);\n })\n\n }\n\n @Input() imageWidth: string; // Görüntü genişliği için giriş özelliği\n @Input() imageHeight: string; // Görüntü yüksekliği için giriş özelliği\n @Input() set data(value: any) {\n if (value) {\n this.createDataTable(value);\n\n }\n }\n inputValue: string = ''\n\n @Output() openModal = new EventEmitter();\n @Output() deleteRow = new EventEmitter();\n @Output() runTaskEvent = new EventEmitter();\n @Output() stopTaskEvent = new EventEmitter();\n @Output() exportLog = new EventEmitter();\n @Output() openDashboards = new EventEmitter();\n @Output() secondButtonFunc = new EventEmitter();\n @Output() changeListStyleFunction= new EventEmitter();\n\n\n\n @ViewChild(MatPaginator, { static: true }) paginator: MatPaginator;\n @ViewChild(MatSort, { static: true }) sort: MatSort;\n\n dataSource: MatTableDataSource;\n baseUrl = environment.imageUrl;\n\n panelOpenState: boolean = false\n\n constructor() { }\n\n ngOnInit(): void {\n\n }\n\n private createDataTable(result: any[]) {\n const dataTable = result;\n this.dataSource = new MatTableDataSource(dataTable);\n // this.dataSource.paginator = this.paginator;\n this.dataSource.sort = this.sort;\n\n if (this.inputValue) {\n var event = {\n target: {\n value: this.inputValue\n }\n }\n this.applyFilter(event)\n }\n return this.dataSource\n }\n\n applyFilter(event: any) {\n\n const filterValue = (event.target as HTMLInputElement).value;\n this.dataSource.filter = filterValue.trim().toLowerCase();\n this.inputValue = (event.target as HTMLInputElement).value;\n\n\n // if (this.dataSource.paginator) {\n // this.dataSource.paginator.firstPage();\n // }\n }\n\n open(data: any, type: string) {\n this.openModal.emit({ data: data, type: type });\n }\n openDashboard(item: any) {\n this.openDashboards.emit(item);\n }\n export(item: any) {\n this.exportLog.emit(item);\n }\n delete(item: any) {\n this.deleteRow.emit(item);\n }\n\n runTask(item: any) {\n this.runTaskEvent.emit(item);\n }\n\n stopTask(item: any) {\n this.stopTaskEvent.emit(item);\n }\n\n secondButton() {\n this.secondButtonFunc.emit()\n }\n\n changeListStyle(){\n this.changeListStyleFunction.emit(this.listStyleButton)\n }\n\n}\n","
\n
\n
\n {{title}}\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 {{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
Avatar
\n
İcon
\n
\n
\n \n \n
\n
0?columnWidth[i]:''\">\n {{displayedColumnsName[i]}} \n {{row[item]}}\n 0?columnWidth[i]:''\">\n {{displayedColumnsName[i]}} \n
\n
\n
\n
\n
\n
{{displayedColumnsName[i]}}\n \n 0&& (+row['errorCount'])>=(+row['disableThreshold'])\">error_outline\n \n \n\n
\n
Action \n backup\n \n\n \n\n \n ondemand_video\n stop\n\n \n
\n
\n
\n
\n
\n\n\n \n
\n
","import { Component, EventEmitter, Input, OnChanges, OnInit, Output, SimpleChanges } from '@angular/core';\nimport { MatDatepickerInputEvent } from '@angular/material/datepicker';\nimport { filter_options } from 'src/app/constants/filterTypes';\nimport { dateEditor } from 'src/app/core/utils';\nimport { Dimension } from 'src/app/models/responses/dashboardResponse';\nimport { BussionFilterDefinition } from 'src/app/models/responses/dataStoreResponse';\nimport { ScriptLoaderService } from 'src/app/services/script-loader/script-loader.service';\n\n@Component({\n selector: 'app-filter-badge',\n templateUrl: './filter-badge.component.html',\n styleUrls: ['./filter-badge.component.scss']\n})\nexport class FilterBadgeComponent implements OnInit, OnChanges {\n\n @Input()\n set selectedFilter(value: { content: BussionFilterDefinition[], dimension: Dimension, isinitial: number, priority: number }) {\n // selectedFilter değeri her değiştiğinde buradaki kod çalışır\n // value, yeni gelen değeri temsil eder\n\n // Burada yeni değeri işleyebilirsiniz.\n // Örneğin, yeni değeri bir değişkene atayabilirsiniz.\n this.concatfilter = []\n this._selectedFilter = value;\n\n console.log('this._selectedFilter.dimension', this._selectedFilter)\n if (this._selectedFilter.dimension.isOrdered) {\n this.sortType = 'none'\n } else {\n if (this._selectedFilter.dimension.type.includes('DateTime')) {\n this.sortType = 'desc'\n } else {\n this.sortType = 'asc'\n }\n }\n\n // this._selectedFilter.content = this._selectedFilter.content.filter(x => x.fieldValue !== '' && x.operator.length <= 2 && this._selectedFilter.dimension.value.includes(x.fieldValue))\n this._selectedFilter.content = this._selectedFilter.content.filter(x => (x.fieldValue !== '' && x.operator.length <= 2) || (x.fieldValue == '' && x.operator.length > 3) || (x.fieldValue !== '' && x.operator.length > 3))\n\n this.selectboxValue = this.createSelectBoxValue(this._selectedFilter.dimension.value)\n\n\n this._selectedFilter.content.map(con => {\n if (con.operator.length > 3 && !this.selectboxValue.some(x => x.operator == con.operator)) {\n this.selectboxValue.push({ name: con.operator, operator: '' })\n }\n })\n\n this.changeSort()\n\n if (this._selectedFilter.dimension.type.includes('Date')) {\n this.dateOptions = filter_options.filter(x => (x.type.includes('System.DateTime') || x.type.length <= 0) && x.valueField == false).map(item => {\n return { text: item.text, value: item.value, selected: this._selectedFilter.content.some(x => x.operator == item.value) }\n })\n }\n\n\n }\n\n rangeStart: Date\n rangeEnd: Date\n numberInput: number = null\n dateOptions: { text: string, value: string, selected: boolean }[] = []\n\n @Input() selectedFilters: BussionFilterDefinition[] = []\n\n @Output() applyDropdownFilter: EventEmitter = new EventEmitter()\n @Output() clearSelectedFilterGroup: EventEmitter = new EventEmitter()\n\n filterserachText: string = ''\n sortType: string = 'asc'\n\n // Özel bir değişken kullanarak değeri saklayabilirsiniz\n _selectedFilter: { content: BussionFilterDefinition[], dimension: Dimension, isinitial: number, priority: number };\n selectboxValue: { name: string, operator: string }[] = []\n concatfilter: BussionFilterDefinition[] = []\n searchTextInput: string = ''\n constructor(private scriptLoader: ScriptLoaderService) { }\n\n\n ngOnInit(): void {\n this.concatfilter = this.selectedFilters\n }\n\n ngOnChanges(changes: SimpleChanges): void {\n }\n\n filterselect(filter: BussionFilterDefinition) {\n\n }\n\n createSelectBoxValue(dimensionsValue: string[]) {\n if (this._selectedFilter.dimension.type.includes('String')) {\n return dimensionsValue.map(item => {\n var currentFilter = this._selectedFilter.content.find(x => x.fieldValue == item)\n if (currentFilter && currentFilter.operator !== '=')\n return { name: item, operator: currentFilter.operator }\n else\n return { name: item, operator: '' }\n })\n } else {\n return this._selectedFilter.content.map(item => {\n if (item.operator !== '=')\n return { name: item.fieldValue, operator: item.operator }\n else\n return { name: item.fieldValue, operator: '' }\n })\n }\n }\n\n getClasname(filter: string) {\n if (this._selectedFilter.content.some(x => x.fieldValue == filter || (x.operator.length > 3 && x.operator == filter)))\n return 'selected-element'\n else\n return ''\n }\n\n onMenuClosed(event: Event) {\n // event.preventDefault(); // Menünün kapanmasını engeller.\n\n\n\n var currentFilter = this.selectedFilters.filter(x => x.fieldName !== this._selectedFilter.dimension.name).concat(this._selectedFilter.content)\n\n const mapCurrent = new Map(currentFilter.map(item => [`${item.fieldValue}-${item.operator}`, item]));\n const mapSelected = new Map(this.selectedFilters.map(item => [`${item.fieldValue}-${item.operator}`, item]));\n\n var dif = currentFilter.filter(({ fieldValue, operator }) =>\n !mapSelected.has(`${fieldValue}-${operator}`)\n );\n\n var dif2 = this.selectedFilters.filter(({ fieldValue, operator }) =>\n !mapCurrent.has(`${fieldValue}-${operator}`)\n );\n\n if (dif.length > 0 || dif2.length > 0) {\n // this.selectedFilters = this.selectedFilters.concat(this.concatfilter)\n this.applyDropdownFilter.emit(currentFilter)\n }\n\n // this.scriptLoader.setFilter(this.concatfilter, false)\n\n }\n\n clearSelectedFilter(filter: { content: BussionFilterDefinition[], dimension: Dimension }) {\n var currentFilter = this.selectedFilters\n var newFilter = currentFilter.filter(x => x.fieldName !== filter.dimension.name)\n\n this.concatfilter = newFilter\n this.clearSelectedFilterGroup.emit(this.concatfilter)\n // this.scriptLoader.selectedFilters.next(newFilter)\n // this.scriptLoader.filterChanges.next(newFilter)\n }\n\n selectFilter(filter: { name: string, operator: string }, type: string) {\n\n if (!this._selectedFilter.dimension.lockedFilter) {\n this.searchTextInput = ''\n\n if (type !== 'selected-element') {\n let currentFilter: BussionFilterDefinition =\n {\n fieldName: this._selectedFilter.dimension.name,\n fieldValue: filter.name,\n operator: '='\n }\n this._selectedFilter.content.push(currentFilter)\n this.concatfilter = this.selectedFilters.filter(x => x.fieldName !== this._selectedFilter.dimension.name).concat(this._selectedFilter.content)\n } else {\n let currentFilter: BussionFilterDefinition[] = []\n\n if (filter.name) {\n this._selectedFilter.content = this._selectedFilter.content.filter(x => x.fieldValue !== filter.name)\n currentFilter = this._selectedFilter.content.filter(x => x.fieldValue !== filter.name)\n } else if (filter.operator) {\n this._selectedFilter.content = this._selectedFilter.content.filter(x => x.operator !== filter.operator)\n currentFilter = this._selectedFilter.content.filter(x => x.operator !== filter.operator)\n }\n\n this.concatfilter = this.selectedFilters.filter(x => x.fieldName !== this._selectedFilter.dimension.name).concat(currentFilter)\n\n }\n\n this.searchText('')\n // this.changeSort()\n }\n }\n\n\n\n searchText(event: any) {\n\n if (event == '') {\n this.selectboxValue = this.createSelectBoxValue(this._selectedFilter.dimension.value)\n } else {\n var filtereddim = this._selectedFilter.dimension.value.filter(x => x.toLocaleLowerCase('tr').includes(event.target.value.toLocaleLowerCase('tr')))\n this.selectboxValue = this.createSelectBoxValue(filtereddim)\n }\n this.changeSort()\n }\n\n changeSort() {\n var selectedValues = []\n this._selectedFilter.content.map(item => {\n if (this.selectboxValue.some(x => (item.operator.length <= 2 && x.name == item.fieldValue) || (item.operator.length > 3 && x.name == item.operator)))\n selectedValues.push(this.selectboxValue.find(x => (item.operator.length <= 2 && x.name == item.fieldValue) || (item.operator.length > 3 && x.name == item.operator)))\n\n this.selectboxValue = this.selectboxValue.filter(x => (item.operator.length <= 2 && x.name !== item.fieldValue) || (item.operator.length > 3 && x.name !== item.operator))\n if (this.sortType !== 'none') {\n this.selectboxValue = this.sortType == 'asc' ? this.selectboxValue.sort((a, b) => a.name.localeCompare(b.name)) : this.selectboxValue.sort((a, b) => b.name.localeCompare(a.name))\n }\n })\n this.selectboxValue = selectedValues.concat(this.selectboxValue)\n }\n\n dateSelected(item?: { value: string, text: string, selected: boolean }) {\n var startTimeISOString = this.rangeStart?.toISOString();\n var endTimeISOString = this.rangeEnd?.toISOString();\n var time\n var rangeStartFilter\n var rangeEndFilter\n\n\n let currentFilter: BussionFilterDefinition =\n {\n fieldName: this._selectedFilter.dimension.name,\n fieldValue: '',\n operator: ''\n }\n\n if (startTimeISOString && endTimeISOString) {\n\n rangeStartFilter = dateEditor(startTimeISOString, 'start')\n\n rangeEndFilter = dateEditor(endTimeISOString, 'end')\n\n currentFilter.fieldValue = rangeStartFilter + '/' + rangeEndFilter;\n currentFilter.operator = 'between'\n\n } else if (startTimeISOString) {\n\n currentFilter.fieldValue = dateEditor(startTimeISOString, 'start')\n currentFilter.operator = '='\n } else if (item.value) {\n if (!item.selected) {\n //bir text operator seçildi ise diğerlerini kaldır\n this._selectedFilter.content = this._selectedFilter.content.filter(x => x.fieldValue.length > 0 && x.operator.length < 3)\n this.dateOptions = this.dateOptions.map(dt => { return { ...dt, selected: false } })\n\n currentFilter.operator = item.value\n currentFilter.fieldValue = ''\n item.selected = true\n this.dateOptions.find(x => x.value == item.value).selected = true\n } else {\n currentFilter.fieldName = ''\n this._selectedFilter.content = this._selectedFilter.content.filter(x => x.operator !== item.value)\n item.selected = false\n this.dateOptions.find(x => x.value == item.value).selected = false\n }\n\n }\n\n if (currentFilter.operator == 'between') {\n const [startDate, endDate] = currentFilter.fieldValue.split('/');\n const startFilter = {\n fieldName: currentFilter.fieldName,\n fieldValue: startDate,\n operator: '>'\n };\n const endFilter = {\n fieldName: currentFilter.fieldName,\n fieldValue: endDate,\n operator: '<'\n };\n\n this._selectedFilter.content.push(startFilter)\n this._selectedFilter.content.push(endFilter)\n } else if (currentFilter?.fieldName) {\n this._selectedFilter.content.push(currentFilter)\n\n }\n\n this.selectboxValue = this.createSelectBoxValue(this._selectedFilter.dimension.value)\n\n this.concatfilter = this.selectedFilters.filter(x => x.fieldName !== this._selectedFilter.dimension.name).concat(this._selectedFilter.content)\n\n this.rangeStart = null\n this.rangeEnd = null\n }\n\n numberselected(event) {\n let currentFilter: BussionFilterDefinition =\n {\n fieldName: this._selectedFilter.dimension.name,\n fieldValue: event.target.value,\n operator: '='\n }\n\n this._selectedFilter.content.push(currentFilter)\n this.selectboxValue = this.createSelectBoxValue(this._selectedFilter.dimension.value)\n\n this.concatfilter = this.selectedFilters.filter(x => x.fieldName !== this._selectedFilter.dimension.name).concat(this._selectedFilter.content)\n this.numberInput = null\n }\n\n\n\n\n}\n","
\n
\n
\n \n {{this._selectedFilter.dimension.visibleName||this._selectedFilter.dimension?.name}}\n \n 1||this._selectedFilter.content.length==0\">\n {{this._selectedFilter.content.length}} of\n {{this._selectedFilter.dimension.value.length}}\n \n {{this._selectedFilter.content[0]?.fieldValue?this._selectedFilter.content[0]?.fieldValue:this._selectedFilter.content[0]?.operator}}\n\n
\n
0&&!this._selectedFilter.dimension.lockedFilter\"\n class=\"clearfilter\" (click)=\"clearSelectedFilter(this._selectedFilter)\">\n X\n
\n
\n \n
\n\n
\n
\n
\n \n search\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 {{filter.name}}\n {{(\"FilterComponent.\"+filter.operator)|translate}}\n
\n
","import { Component, EventEmitter, Input, OnInit, Output } from '@angular/core';\nimport { MatDatepickerInputEvent } from '@angular/material/datepicker';\nimport { TranslateService } from '@ngx-translate/core';\nimport { filter_options } from 'src/app/constants/filterTypes';\nimport { dateEditor } from 'src/app/core/utils';\nimport { Dimension } from 'src/app/models/responses/dashboardResponse';\nimport { BussionFilterDefinition, Columns } from 'src/app/models/responses/dataStoreResponse';\nimport { CoreService } from 'src/app/services/core/core.service';\n\n@Component({\n selector: 'app-filter-form',\n templateUrl: './filter-form.component.html',\n styleUrls: ['./filter-form.component.scss']\n})\nexport class FilterFormComponent implements OnInit {\n\n @Input() fields: Columns[] = [];\n searchValues = [];\n queryFilterFieldType: string = \"System.String\";\n selectedFilterType: string = \"System.String\";\n isShownFieldValueForm: boolean = true;\n requiredFieldValue: boolean = true\n rangeStart: string = ''\n rangeEnd: string = ''\n\n @Input() clearButton: boolean = false\n\n @Output() add = new EventEmitter();\n\n\n queryFilter: BussionFilterDefinition = {\n fieldName: '',\n fieldValue: '',\n operator: ''\n }\n\n constructor(private coreService: CoreService, private translate: TranslateService) { }\n operatorOptions: { text: string, value: string, type: string[], valueField: boolean, valueFieldType?: string }[] = filter_options.filter(x => x.type.includes(this.queryFilterFieldType) || x.type.length <= 0)\n\n\n ngOnInit(): void {\n\n }\n\n filterFieldSelected(fieldName: string) {\n this.queryFilter.fieldValue = '';\n this.queryFilter.operator = '';\n this.queryFilterFieldType = this.getSelectedFieldType(fieldName);\n this.selectedFilterType = this.getSelectedFieldType(fieldName);\n this.operatorOptions = filter_options.filter(x => x.type.includes(this.queryFilterFieldType) || x.type.length <= 0)\n\n }\n\n getSelectedFieldType(fieldName: string): string {\n if (this.fields.length > 0) {\n let field = this.fields.find(c => c.fieldName == fieldName);\n return field.fieldType;\n } else {\n return this.selectedFilterType;\n }\n }\n\n operatorSelected(operator: string) {\n this.queryFilter.fieldValue = '';\n this.setFieldValueFormDisplayStatus(operator);\n }\n\n addFilter() {\n\n if ((this.isShownFieldValueForm && this.queryFilter.fieldValue && this.queryFilter.operator)\n ||\n (!this.isShownFieldValueForm && this.queryFilter.fieldValue == \"\" && this.queryFilter.operator)) {\n\n this.add.emit(this.queryFilter);\n this.queryFilter = {\n fieldName: '',\n fieldValue: '',\n operator: ''\n }\n this.isShownFieldValueForm = true\n } else {\n this.coreService.showErrorMessage(this.translate.instant('Common.FormFill'));\n }\n\n }\n\n searchFilter(text: any) {\n\n }\n\n // dateSelected(date: MatDatepickerInputEvent) {\n // var startTimeISOString = date.value.toISOString();\n // var time = new Date(startTimeISOString);\n // time = new Date(time.getTime() - (time.getTimezoneOffset() * 60000));\n // this.queryFilter.fieldValue = time.toISOString();\n // }\n\n\n\n dateSelected(date: MatDatepickerInputEvent, range: boolean, rangeType?: string) {\n var startTimeISOString = date.value.toISOString();\n var time = new Date(startTimeISOString);\n\n if (range) {\n if (rangeType == 'start') {\n\n this.rangeStart = dateEditor(startTimeISOString, 'start')\n\n } else {\n\n this.rangeEnd = dateEditor(startTimeISOString, 'end')\n\n this.queryFilter.fieldValue = this.rangeStart + '/' + this.rangeEnd;\n }\n } else {\n // time = new Date(time.getTime() - (time.getTimezoneOffset() * 60000));\n this.queryFilter.fieldValue = dateEditor(startTimeISOString, 'start')\n }\n\n\n if (this.queryFilter.operator == 'between' && this.rangeStart && this.rangeEnd) {\n const [startDate, endDate] = this.queryFilter.fieldValue.split('/');\n const startFilter = {\n fieldName: this.queryFilter.fieldName,\n fieldValue: startDate,\n operator: '>'\n };\n const endFilter = {\n fieldName: this.queryFilter.fieldName,\n fieldValue: endDate,\n operator: '<'\n };\n this.add.emit(startFilter);\n this.add.emit(endFilter);\n\n }\n\n }\n\n private setFieldValueFormDisplayStatus(operator: string) {\n\n this.isShownFieldValueForm = this.operatorOptions.find(x => x.value == operator).valueField\n this.queryFilterFieldType = this.operatorOptions.find(x => x.value == operator)?.valueFieldType ? this.operatorOptions.find(x => x.value == operator)?.valueFieldType : this.getSelectedFieldType(this.queryFilter.fieldName)\n\n // if (this.getSelectedFieldType(this.queryFilter.fieldName) == 'System.DateTime') {\n // if (operator == \"today\" ||\n // operator == \"yesterday\" ||\n // operator == \"thishour\" ||\n // operator == \"thisweek\" ||\n // operator == \"thismonth\" ||\n // operator == \"thisyear\" ||\n // operator == \"lasthour\" ||\n // operator == \"lastweek\" ||\n // operator == \"lastmonth\" ||\n // operator == \"lastyear\") {\n // this.queryFilter.fieldValue = '';\n // this.isShownFieldValueForm = false;\n // this.requiredFieldValue = false\n // }\n // else if (operator == \"beforendays\" ||\n // operator == \"lastnadays\" ||\n // operator == \"lastnhours\" ||\n // operator == \"lastnminutes\" ||\n // operator == \"lastnyears\") {\n // this.queryFilterFieldType = \"System.Number\";\n // this.isShownFieldValueForm = true;\n // }\n // else {\n // this.queryFilterFieldType = \"System.DateTime\";\n // this.isShownFieldValueForm = true;\n // }\n // } else if (operator == \"empty\" ||\n // operator == \"nempty\") {\n // this.requiredFieldValue = false\n // this.isShownFieldValueForm = false;\n // } else {\n // this.isShownFieldValueForm = true;\n // }\n\n }\n\n clearClick() {\n this.queryFilter = {\n fieldName: '',\n fieldValue: '',\n operator: ''\n }\n }\n\n changeFieldType(type: string) {\n this.queryFilterFieldType = type\n this.operatorOptions = filter_options.filter(x => x.type.includes(this.queryFilterFieldType) || x.type.length <= 0)\n\n\n }\n\n}\n","
\n
\n \n {{ 'FilterComponent.Field' | translate }}\n \n 0\" [(ngModel)]=\"queryFilter.fieldName\"\n (ngModelChange)=\"filterFieldSelected($event)\">\n \n \n {{field.fieldName}}\n \n \n \n
\n\n \n {{ 'FilterComponent.Type' | translate }}\n \n {{ 'FilterComponent.String' | translate }}\n {{ 'FilterComponent.DateTime' | translate }}\n {{ 'FilterComponent.Number' | translate }}\n \n \n
\n\n \n {{ 'FilterComponent.Operator' | translate }}\n \n {{\n 'FilterComponent.'+item.text | translate }}\n \n \n \n
\n\n
\n \n {{ 'FilterComponent.Value' | translate }}\n \n\n \n \n {{option}}\n \n \n \n\n \n {{ 'FilterComponent.Value' | translate }}\n \n\n \n \n {{option}}\n \n \n \n\n \n {{ 'FilterComponent.Value' | translate }}\n \n \n \n \n\n \n {{ 'FilterComponent.Value' | translate }}\n \n \n \n \n MM/DD/YYYY – MM/DD/YYYY\n \n \n \n
\n
\n
\n
\n
\n \n \n\n \n
\n
","import { Component, OnInit, Input, Output, EventEmitter } from '@angular/core';\nimport { BussionFilterDefinition } from 'src/app/models/responses/dataStoreResponse';\nimport { MatTableDataSource } from '@angular/material/table';\nimport { TranslateService } from '@ngx-translate/core';\nimport { filter_options } from 'src/app/constants/filterTypes';\n\n@Component({\n selector: 'app-filter-list',\n templateUrl: './filter-list.component.html',\n styleUrls: ['./filter-list.component.scss']\n})\nexport class FilterListComponent implements OnInit {\n\n displayedColumns: string[] = ['position', 'name', 'weight', 'symbol'];\n\n @Input() set data(value: any) {\n console.log('değişti', value)\n value = value.map(vl => {\n return { ...vl, operatorText: this.operatorOptions.find(x => x.value == vl.operator).text }\n })\n if (value) {\n this.sourceData = value;\n this.createDataTable(value);\n }\n }\n @Input() scrollarea: boolean = false\n @Input() disableDelete = false\n\n @Output() delete = new EventEmitter();\n private sourceData = [];\n dataSource: MatTableDataSource;\n operatorOptions: { text: string, value: string, type: string[], valueField: boolean, valueFieldType?: string }[] = filter_options\n\n\n constructor(\n private translate: TranslateService\n ) { }\n\n ngOnInit(): void {\n\n }\n\n private createDataTable(result: any[]) {\n const dataTable = result;\n\n this.dataSource = new MatTableDataSource(dataTable);\n }\n\n\n deleteFilter(query: any) {\n this.delete.emit(query);\n this.createDataTable(this.sourceData);\n }\n\n\n\n}\n","
\n \n \n {{ 'FilterComponent.Field' | translate }}\n {{element.fieldName}} \n \n\n \n {{ 'FilterComponent.Operator' | translate }} \n {{element.operatorText}} \n \n\n \n {{ 'FilterComponent.Value' | translate }} \n {{element.fieldValue}} \n \n\n \n \n \n \n \n \n\n \n \n \n
","import { CdkDragDrop, moveItemInArray } from '@angular/cdk/drag-drop';\nimport { ChangeDetectorRef, Component, ElementRef, EventEmitter, Input, OnChanges, OnInit, Output, SimpleChanges, ViewChild } from '@angular/core';\nimport { FormControl, UntypedFormControl } from '@angular/forms';\nimport { MatAutocompleteTrigger } from '@angular/material/autocomplete';\nimport { MatDatepickerInputEvent } from '@angular/material/datepicker';\nimport { MatInput } from '@angular/material/input';\nimport { MatSlideToggleChange } from '@angular/material/slide-toggle';\nimport { TooltipPosition } from '@angular/material/tooltip';\nimport { TranslateService } from '@ngx-translate/core';\nimport { DeviceDetectorService } from 'ngx-device-detector';\nimport { Observable, merge, of } from 'rxjs';\nimport { startWith, map, tap } from 'rxjs/operators';\nimport { filter_options } from 'src/app/constants/filterTypes';\nimport { dateEditor } from 'src/app/core/utils';\nimport { Dashboard, Dimension, cacheDashboard } from 'src/app/models/responses/dashboardResponse';\nimport { BussionFilterDefinition } from 'src/app/models/responses/dataStoreResponse';\nimport { CoreService } from 'src/app/services/core/core.service';\nimport { DashboardService } from 'src/app/services/dashboard/dashboard.service';\nimport { ModalService } from 'src/app/services/modal/modal.service';\n\n@Component({\n selector: 'app-filter-selection',\n templateUrl: './filter-selection.component.html',\n styleUrls: ['./filter-selection.component.scss']\n})\nexport class FilterSelectionComponent implements OnInit {\n\n @ViewChild(MatAutocompleteTrigger) autocomplete: MatAutocompleteTrigger;\n @ViewChild('dateInput', { read: MatInput }) dateInput: MatInput;\n autoComplateControl = new UntypedFormControl();\n filteredOptions: Observable = new Observable();\n options: string[] = [];\n\n\n\n\n filter: BussionFilterDefinition = {\n fieldName: '',\n fieldValue: '',\n operator: '='\n }\n\n @Input() filters: BussionFilterDefinition[];\n @Input() initialFilters: BussionFilterDefinition[];\n @Input() dimensions: Dimension[] = [];\n @Input() isHeaderShown: boolean\n @Input() hideButtonActive: boolean\n @Input() selectedDashboardId: string;\n @Input() selectedDashboard: Dashboard;\n\n\n @Input() manage: boolean = false;\n @Input() savebuttonvisible = true\n @ViewChild('editinput', { static: false }) inputEl: ElementRef;\n\n @Output() delete = new EventEmitter();\n @Output() save = new EventEmitter();\n @Output() close = new EventEmitter();\n @Output() openShareForm = new EventEmitter();\n @Output() saveDimensions = new EventEmitter();\n @Output() hideDimension = new EventEmitter();\n\n\n @Output() saveQueryPanelState = new EventEmitter();\n @Output() resetFilter = new EventEmitter();\n\n\n\n selectedDimension: Dimension = {\n dimensionId: '',\n name: '',\n type: '',\n value: [],\n visibleName: '',\n lockedFilter: 0,\n showAllValues: 0,\n pintoPanel: 0,\n isFilterExist: true,\n isOrdered: 0,\n allowSearch: 0\n\n\n };\n selectedDimensionFilter: BussionFilterDefinition[] = [];\n isDimensionSelected: boolean = false;\n isShownFieldValueForm: boolean = true;\n selectedDimensionId: string = \"\";\n isDeviceMobile: boolean = false;\n dimensiondragactive: boolean = false\n\n\n\n queryFilterFieldType: string = \"System.String\";\n selectedFilterType: string = \"System.String\";\n\n constructor(private dashboardService: DashboardService, private translate: TranslateService,\n private deviceService: DeviceDetectorService, private coreService: CoreService) { }\n\n positionOptions: TooltipPosition[] = ['after', 'before', 'above', 'below', 'left', 'right'];\n position = new UntypedFormControl(this.positionOptions[2]);\n newDimensionValue = new UntypedFormControl();\n\n selectedDimensi: string\n\n operatorOptions: { text: string, value: string, type: string[], valueField: boolean, valueFieldType?: string }[] = []\n\n ngOnInit(): void {\n var uniqFilter = []\n\n this.filters.filter(x => (x.operator.length <= 2 && x.fieldValue !== '') || (x.operator.length > 3 && x.operator !== '')).map(item => {\n if (!uniqFilter.some(x => x.fieldValue == item.fieldValue && x.fieldName == item.fieldName && x.operator == item.operator)) {\n uniqFilter.push(item)\n }\n })\n this.filters = uniqFilter\n // if (this.initialFilters)\n // this.filters = this.initialFilters.filter(x => x.fieldValue !== '')\n\n\n\n this.checkFilterExist();\n\n this.isDeviceMobile = this.deviceService.isMobile();\n\n\n console.log('this.selectedFilters', this.filters)\n }\n\n\n\n\n addFilter() {\n\n let fCopy = Object.assign({}, this.filter);\n\n if (!(this.filters.some(x => x.fieldValue == fCopy.fieldValue && x.fieldName == fCopy.fieldName && fCopy.operator && fCopy.operator == x.operator)) && (this.isShownFieldValueForm && fCopy.fieldValue !== '') || (!this.isShownFieldValueForm && fCopy.fieldValue == '')) {\n\n if (this.queryFilterFieldType == 'System.Number' && !(fCopy.operator == 'empty' || fCopy.operator == 'nempty')) {\n if (!this.isNumeric(fCopy.fieldValue)) {\n this.coreService.showErrorMessage(this.translate.instant('FilterComponent.NumericField'))\n return\n } else {\n fCopy.fieldValue = parseInt(fCopy.fieldValue)\n }\n }\n\n if (fCopy.operator == 'between') {\n const [startDate, endDate] = fCopy.fieldValue.split('/');\n const startFilter = {\n fieldName: fCopy.fieldName,\n fieldValue: startDate,\n operator: '>'\n };\n const endFilter = {\n fieldName: fCopy.fieldName,\n fieldValue: endDate,\n operator: '<'\n };\n this.filters.push(startFilter, endFilter);\n } else {\n this.filters.push({\n fieldName: fCopy.fieldName,\n fieldValue: fCopy.fieldValue,\n operator: fCopy.operator\n });\n }\n\n\n\n this.clearFilterForm();\n this.checkFilterExist();\n this.selectedDimensionFilter = this.filters.filter(f => f.fieldName === fCopy.fieldName);\n if (this.autocomplete !== undefined) {\n this.autocomplete.closePanel();\n }\n } else {\n // this.coreService.showErrorMessage(this.translate.instant(\"FilterComponent.PleaseSelectDifValue\"))\n }\n }\n\n isNumeric(input) {\n return !isNaN(parseFloat(input)) && isFinite(input);\n }\n\n deleteFilter(deletedFilter: BussionFilterDefinition) {\n\n let index = this.filters.findIndex(f => {\n return f.fieldName === deletedFilter.fieldName &&\n f.operator === deletedFilter.operator &&\n f.fieldValue === deletedFilter.fieldValue;\n });\n if (index !== -1) {\n this.filters.splice(index, 1);\n }\n this.selectedDimensionFilter = this.filters.filter(f => f.fieldName == this.filter.fieldName);\n this.checkFilterExist();\n }\n\n selectDimension(d: Dimension) {\n this.isDimensionSelected = true;\n this.selectedDimension = d;\n if (!this.manage && this.selectedDimension.lockedFilter == 1)\n this.autoComplateControl.disable()\n else\n this.autoComplateControl.enable()\n\n\n this.filter.fieldName = d.name;\n this.clearFilterForm();\n this.options = this.selectedDimension.value.filter(x => x !== null);\n this.selectedDimensionFilter = this.filters.filter(f => f.fieldName == d.name);\n this.queryFilterFieldType = d.type;\n this.operatorOptions = filter_options.filter(x => x.type.includes(this.queryFilterFieldType) || x.type.length <= 0)\n\n\n this.filteredOptions = this.autoComplateControl.valueChanges\n .pipe(\n startWith(''),\n map(value => this._filter(value))\n );\n }\n\n\n searchValueOnEnter(searchkey: string) {\n\n }\n\n areListsDifferent(list1, list2) {\n // Uzunlukları kontrol ediyoruz\n if (list1.length !== list2.length) {\n return false;\n }\n\n // Elemanların sırasını kontrol ediyoruz\n for (let i = 0; i < list1.length; i++) {\n if (list1[i] !== list2[i]) {\n return true;\n }\n }\n\n // Tüm elemanlar aynı sırayla bulunuyorsa, listeler aynıdır\n return false;\n }\n\n closedMenu() {\n this.filteredOptions.subscribe(res => {\n const result = this.areListsDifferent(this.dimensions.find(x => x.name == this.selectedDimension.name).value, res);\n if (this.selectedDimension.isOrdered == 1 && result) {\n this.dimensions.find(x => x.name == this.selectedDimension.name).value = res\n this.saveDimensions.emit(this.dimensions)\n }\n })\n }\n\n\n drop(event: CdkDragDrop, type: string) {\n if (type == 'option') {\n this.filteredOptions.subscribe(res => {\n moveItemInArray(res, event.previousIndex, event.currentIndex);\n this.filteredOptions = of(res)\n })\n } else {\n moveItemInArray(this.dimensions, event.previousIndex, event.currentIndex);\n }\n }\n\n saveDimensionSorting() {\n this.dimensiondragactive = !this.dimensiondragactive\n if (!this.dimensiondragactive)\n this.saveDimensions.emit(this.dimensions)\n }\n\n searchDimensionValue() {\n var selecteddimension = this.dimensions.find(x => x.dimensionId == this.selectedDimension.dimensionId)\n\n if (this.newDimensionValue.value == '') {\n this.filteredOptions = of(selecteddimension.value)\n\n } else {\n var filtereddim = [];\n\n if (this.selectedDashboard?.contentLanguage == 'Turkish' || this.selectedDashboard?.contentLanguage.toLowerCase() == 'tr') {\n filtereddim = selecteddimension.value.filter(x => x.toLocaleLowerCase('tr-TR').trim().includes(this.newDimensionValue.value.toLocaleLowerCase('tr-TR').trim()))\n console.log('first', filtereddim, selecteddimension.value)\n } else {\n filtereddim = selecteddimension.value.filter(x => x.toLowerCase().trim().includes(this.newDimensionValue.value.toLowerCase().trim()))\n }\n\n this.filteredOptions = of(filtereddim)\n }\n\n\n\n }\n\n addDimensionValue() {\n if (this.newDimensionValue.value && this.newDimensionValue.value !== '') {\n var selecteddimension = this.dimensions.find(x => x.dimensionId == this.selectedDimension.dimensionId)\n if (!selecteddimension.value.some(x => x == this.newDimensionValue.value)) {\n selecteddimension.value.push(this.newDimensionValue.value)\n this.filteredOptions = of(this.selectedDimension.value)\n this.newDimensionValue.patchValue('')\n this.saveDimensions.emit(this.dimensions)\n } else {\n this.coreService.showErrorMessage(this.translate.instant('FilterComponent.SameValue'))\n }\n\n }\n\n }\n\n\n deleteDimensionValue(deleteText: string) {\n var selecteddimension = this.dimensions.find(x => x.dimensionId == this.selectedDimension.dimensionId)\n selecteddimension.value = selecteddimension.value.filter(x => x.toString() !== deleteText)\n this.filteredOptions = of(this.selectedDimension.value)\n this.saveDimensions.emit(this.dimensions)\n }\n\n\n checkFilterExist() {\n this.dimensions.forEach(d => {\n d.isFilterExist = false;\n this.filters.forEach(f => {\n if (d.name == f.fieldName) {\n d.isFilterExist = true;\n }\n })\n });\n }\n\n private clearFilterForm() {\n this.filter.fieldValue = '';\n this.filter.operator = '=';\n if (this.selectedDimension.type == 'System.DateTime' && this.dateInput != undefined) {\n this.dateInput.value = '';\n }\n this.isShownFieldValueForm = true\n }\n\n clearAllFilter() {\n this.filters = [];\n this.checkFilterExist();\n }\n\n resetFilterFunc() {\n this.resetFilter.emit()\n this.filters = this.initialFilters;\n this.checkFilterExist();\n }\n\n openSelected(d: string) {\n this.selectedDimensionId = d\n setTimeout(() => {\n this.inputEl.nativeElement.focus()\n }, 100);\n\n }\n\n lockFilter(dim: Dimension) {\n var selectedLocked = this.dimensions.find(x => x.dimensionId == dim.dimensionId).lockedFilter\n this.dimensions.find(x => x.dimensionId == dim.dimensionId).lockedFilter = selectedLocked == 0 ? 1 : 0\n this.saveDimensions.emit(this.dimensions)\n\n }\n\n deleteDimension(d: Dimension) {\n this.hideDimension.emit(d)\n }\n\n saveSortState(dim: Dimension) {\n var selectedOrdered = this.dimensions.find(x => x.dimensionId == dim.dimensionId).isOrdered\n this.dimensions.find(x => x.dimensionId == dim.dimensionId).isOrdered = selectedOrdered == 0 ? 1 : 0\n\n if (dim.type.includes('Number') && dim.value.length > 1) {\n if (selectedOrdered == 1) {\n this.dimensions.find(x => x.dimensionId == dim.dimensionId).value = this.dimensions.find(x => x.dimensionId == dim.dimensionId).value.sort((a, b) => {\n return a - b\n })\n }\n else {\n this.dimensions.find(x => x.dimensionId == dim.dimensionId).value = this.dimensions.find(x => x.dimensionId == dim.dimensionId).value.sort((a, b) => {\n return b - a\n })\n }\n }\n\n this.saveDimensions.emit(this.dimensions)\n this.selectedDimensionId = ''\n }\n\n hidePanel(event: MatSlideToggleChange) {\n this.saveQueryPanelState.emit(event.checked)\n }\n\n pinToPanel(d: Dimension) {\n var selecteddimension = this.dimensions.find(x => x.dimensionId == d.dimensionId)\n this.dimensions.find(x => x.dimensionId == d.dimensionId).pintoPanel = selecteddimension.pintoPanel == 0 ? 1 : 0\n\n this.saveDimensions.emit(this.dimensions)\n }\n\n showAllValues(d: Dimension) {\n var selecteddimension = this.dimensions.find(x => x.dimensionId == d.dimensionId)\n this.dimensions.find(x => x.dimensionId == d.dimensionId).showAllValues = selecteddimension.showAllValues == 0 ? 1 : 0\n\n\n this.saveDimensions.emit(this.dimensions)\n }\n\n saveVisibleName(e: any, dim: Dimension) {\n this.dimensions.find(x => x.dimensionId == dim.dimensionId).visibleName = e.target.value\n\n this.saveDimensions.emit(this.dimensions)\n this.selectedDimensionId = ''\n }\n\n\n closeFilter() {\n this.close.emit(this.filters);\n }\n\n makeQuery() {\n this.save.emit(this.filters);\n }\n\n rangeStart: string = ''\n rangeEnd: string = ''\n\n //TO DO\n // dateSelected(date: MatDatepickerInputEvent, range: boolean, rangeType?: string) {\n // var startTimeISOString = date.value.toISOString();\n\n // var time = new Date(startTimeISOString);\n // time = new Date(time.getTime() - (time.getTimezoneOffset() * 60000));\n // if (range) {\n // if (rangeType == 'start') {\n // this.rangeStart = time.toISOString()\n // } else {\n // this.rangeEnd = time.toISOString()\n // this.filter.fieldValue = this.rangeStart + '/' + this.rangeEnd\n // }\n // } else {\n // this.filter.fieldValue = time.toISOString();\n // }\n\n // }\n dateSelected(date: MatDatepickerInputEvent, range: boolean, rangeType?: string) {\n var startTimeISOString = date.value.toISOString();\n var time = new Date(startTimeISOString);\n\n if (range) {\n if (rangeType == 'start') {\n\n this.rangeStart = dateEditor(startTimeISOString, 'start')\n } else {\n\n this.rangeEnd = dateEditor(startTimeISOString, 'end')\n\n this.filter.fieldValue = this.rangeStart + '/' + this.rangeEnd;\n }\n } else {\n // time = new Date(time.getTime() - (time.getTimezoneOffset() * 60000));\n this.filter.fieldValue = dateEditor(startTimeISOString, 'start')\n }\n }\n\n private setFieldValueFormDisplayStatus(operator: string) {\n\n this.isShownFieldValueForm = this.operatorOptions.find(x => x.value == operator).valueField\n this.queryFilterFieldType = this.operatorOptions.find(x => x.value == operator)?.valueFieldType ? this.operatorOptions.find(x => x.value == operator)?.valueFieldType : this.getSelectedFieldType(this.filter.fieldName)\n\n // if (operator == \"empty\" || operator == \"nempty\") {\n // this.isShownFieldValueForm = false;\n // return;\n // }\n\n // if (this.getSelectedFieldType(this.filter.fieldName) == 'System.DateTime') {\n // if (operator == \"today\" ||\n // operator == \"yesterday\" ||\n // operator == \"thishour\" ||\n // operator == \"thisweek\" ||\n // operator == \"thismonth\" ||\n // operator == \"thisyear\" ||\n // operator == \"lasthour\" ||\n // operator == \"lastweek\" ||\n // operator == \"lastmonth\" ||\n // operator == \"lastyear\") {\n // this.filter.fieldValue = '';\n // this.isShownFieldValueForm = false;\n // }\n // else if (operator == \"beforendays\" ||\n // operator == \"lastnadays\" ||\n // operator == \"lastnhours\" ||\n // operator == \"lastnminutes\") {\n // this.queryFilterFieldType = \"System.Number\";\n // this.isShownFieldValueForm = true;\n // }\n\n // else {\n // this.queryFilterFieldType = \"System.DateTime\";\n // this.isShownFieldValueForm = true;\n // }\n // }\n // else {\n // this.isShownFieldValueForm = true;\n // }\n }\n\n getSelectedFieldType(fieldName: string): string {\n let field = this.dimensions.find(c => c.name == fieldName);\n return field.type;\n }\n\n operatorSelected(operator: string) {\n this.filter.fieldValue = '';\n this.setFieldValueFormDisplayStatus(operator);\n }\n\n openShareModal(shareData: any) {\n this.openShareForm.emit(shareData)\n }\n\n\n private _filter(value: string): string[] {\n const filterValue = value.toLowerCase();\n\n if (typeof (this.options[0]) == 'string')\n return this.options.filter(option => option.toLowerCase().includes(filterValue));\n else return this.options\n }\n\n disableSearch(d: Dimension) {\n var selecteddimension = this.dimensions.find(x => x.dimensionId == d.dimensionId)\n this.dimensions.find(x => x.dimensionId == d.dimensionId).allowSearch = selecteddimension.allowSearch == 0 ? 1 : 0\n\n // this.refreshCache(this.dimensions)\n\n\n this.saveDimensions.emit(this.dimensions)\n }\n\n // refreshCache(newDimensions) {\n // this.dashboardService.refreshCache(newDimensions,this.selectedDashboardId,'dimensions')\n // }\n\n\n\n}\n","
\n
\n
\n

{{\"FilterComponent.Title\"|translate}}

\n {{\n 'FilterComponent.HidePanel' |translate }}\n
\n
\n\n \n\n clear\n
\n
\n\n
\n
\n\n \n \n\n \n \n\n \n\n {{d.lockedFilter?\n 'lock':'lock_open'}}\n\n \n\n \n\n \n\n \n\n\n\n
\n {{d.visibleName?d.visibleName:d.name}}\n lock\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 {{\"FilterComponent.EmptyFilter\"|translate}}\n
\n\n
\n \n {{ 'FilterComponent.Operator' | translate }}\n \n {{\n 'FilterComponent.'+item.text | translate }}\n \n \n \n\n
\n \n {{ 'FilterComponent.Value' | translate }}\n
\n\n\n \n\n 500\" matInput type=\"text\" [(ngModel)]=\"filter.fieldValue\"\n (keyup.enter)=\"searchDimensionValue()\" [formControl]=\"newDimensionValue\"\n [matAutocomplete]=\"auto\">\n\n \n
\n
\n \n
\n \n search\n add\n\n \n
\n\n
\n \n \n
\n \n \n \n \n
\n {{v}}\n
\n \n
\n\n
\n
\n \n \n {{'FilterComponent.TooManyOptions'|translate}}\n \n \n
\n\n\n \n\n\n
\n
\n
\n \n
\n
\n \n
\n \n search\n add\n\n \n
\n
\n \n \n
\n
\n \n \n \n \n {{v}}\n
\n \n
\n\n
\n
\n \n \n {{'FilterComponent.TooManyOptions'|translate}}\n \n \n
\n
\n
\n\n\n\n
\n\n \n {{ 'FilterComponent.Value' | translate }}\n \n \n\n \n {{ 'FilterComponent.Value' | translate }}\n \n \n \n \n\n \n {{ 'FilterComponent.Value' | translate }}\n \n \n \n \n MM/DD/YYYY – MM/DD/YYYY\n \n \n \n\n\n
\n\n \n
\n
\n \n
\n\n
\n
","import { AfterViewInit, Component, ElementRef, EventEmitter, Input, OnChanges, OnInit, Output, SimpleChanges, ViewChild } from '@angular/core';\nimport { Router } from '@angular/router';\nimport { TranslateService } from '@ngx-translate/core';\nimport Drawflow, { DrawflowConnection } from 'drawflow';\nimport { FlowScriptResponse } from 'src/app/models/responses/flowScript';\nimport { environment } from 'src/environments/environment';\n\n@Component({\n selector: 'app-flow-draw',\n templateUrl: './flow-draw.component.html',\n styleUrls: ['./flow-draw.component.scss']\n})\nexport class FlowDrawComponent implements OnInit, AfterViewInit, OnChanges {\n\n flowchart: Drawflow & { createCurvature?: any, contextmenu?: any, nodeId?: number } | undefined;\n // flowchart: any;\n overlayBox: any\n selectedConnection: any\n // addedNodeList: { item: FlowScriptResponse, pos_x: number, pos_y: number }[] = []\n\n\n @Input() Nodes: { item: FlowScriptResponse, pos_x: number, pos_y: number, nodeId: number }[] = []\n @Input() flowImportObject: string = ''\n @Input() flowTitle: string = ''\n @Input() titleClass: string = ''\n @Input() runlock: boolean = false\n @Input() loaderValue: number = 0\n\n @Output() SaveFlowEmitter: EventEmitter = new EventEmitter()\n @Output() NodeRemovedEmitter: EventEmitter = new EventEmitter()\n\n @Output() runFlowEmitter: EventEmitter = new EventEmitter()\n\n @Output() onImport: EventEmitter = new EventEmitter()\n @Output() clearFunction: EventEmitter = new EventEmitter()\n\n\n @Output() connectionSelected: EventEmitter = new EventEmitter()\n @Output() connectionRemove: EventEmitter = new EventEmitter()\n\n @Output() NodeSettingSelected: EventEmitter = new EventEmitter()\n @Output() getExecutionLogFunc: EventEmitter = new EventEmitter()\n\n @Output() stopButtonFunction: EventEmitter = new EventEmitter()\n\n\n\n\n constructor(private translate: TranslateService, private router: Router) { }\n\n ngOnInit() {\n\n\n }\n\n ngAfterViewInit() {\n this.initDrawFlow();\n\n this.flowchart.editor_mode = 'edit'; // Default\n this.flowchart.zoom_out()\n this.flowchart.zoom_out()\n this.flowchart.zoom_out()\n\n this.initExistFlow()\n // this.flowchart.editor_mode = 'fixed';\n }\n\n\n initExistFlow() {\n if (this.flowImportObject !== '') {\n var flowJson = JSON.parse(this.flowImportObject)\n\n if (this.flowchart && flowJson.flow) {\n this.flowchart.import(flowJson.flow)\n }\n }\n }\n\n clearFlow() {\n // this.flowchart.clear()\n this.clearFunction.emit()\n }\n\n\n setHtmlForNode(e: { html: HTMLObjectElement, id: string }) {\n\n Object.keys(this.flowchart.drawflow.drawflow.Home.data).map(item => {\n\n\n if (item == e.id.split('-')[1]) {\n this.flowchart.drawflow.drawflow.Home.data[item].html = e.html.outerHTML\n }\n })\n }\n\n\n flowChartClick(e) {\n if (e.target.classList[0] === 'parameter-button') {\n\n var selectedNodeId = e.target.closest('.drawflow_content_node').parentElement.id\n var selectedNode = this.flowchart.drawflow.drawflow.Home.data[`${selectedNodeId.slice(5)}`];\n\n this.flowchart.editor_mode = 'fixed'\n this.NodeSettingSelected.emit({ selectedNode: selectedNode, selectedNodeId: selectedNodeId, flowData: this.flowchart.drawflow.drawflow.Home.data, type: 'parameter', drawFlowExport: this.flowchart.export() });\n setTimeout(() => {\n this.flowchart.editor_mode = 'edit';\n\n }, 1000);\n } else if (e.target.classList[0] == \"script-edit-button\") {\n var selectedNodeId = e.target.closest('.drawflow_content_node').parentElement.id\n var selectedNode = this.flowchart.drawflow.drawflow.Home.data[`${selectedNodeId.slice(5)}`];\n this.flowchart.editor_mode = 'fixed'\n this.NodeSettingSelected.emit({\n selectedNode: selectedNode,\n selectedNodeId: selectedNodeId,\n flowData: this.flowchart.drawflow.drawflow.Home.data,\n type: 'script-edit',\n Nodefunction: (e) => this.setHtmlForNode(e),\n drawFlowExport: this.flowchart.export()\n });\n\n\n setTimeout(() => {\n this.flowchart.editor_mode = 'edit';\n\n }, 1000);\n } else if (e.target.classList[0] === \"main-path\") {\n setTimeout(() => {\n this.showConextMenu(e.clientX, e.clientY);\n }, 25);\n\n } else if (e.target.classList[0] == \"context-delete\" || e.target?.parentElement?.classList[0] == \"context-delete\") {\n this.connectionRemove.emit(this.selectedConnection)\n this.flowchart.removeSingleConnection(this.selectedConnection.output_id, this.selectedConnection.input_id, this.selectedConnection.output_class, this.selectedConnection.input_class)\n } else if (e.target.classList[0] == \"context-edit\" || e.target?.parentElement?.classList[0] == \"context-edit\") {\n this.connectionSelected.emit({ selectedConnection: this.selectedConnection, flow: this.flowchart.export() })\n\n }\n\n }\n\n showConextMenu(x, y) {\n var pos_x = x * (this.flowchart.precanvas.clientWidth / (this.flowchart.precanvas.clientWidth * this.flowchart.zoom)) - (this.flowchart.precanvas.getBoundingClientRect().x * (this.flowchart.precanvas.clientWidth / (this.flowchart.precanvas.clientWidth * this.flowchart.zoom)));\n var pos_y = y * (this.flowchart.precanvas.clientHeight / (this.flowchart.precanvas.clientHeight * this.flowchart.zoom)) - (this.flowchart.precanvas.getBoundingClientRect().y * (this.flowchart.precanvas.clientHeight / (this.flowchart.precanvas.clientHeight * this.flowchart.zoom)));\n\n var contextmenu = document.createElement('div');\n contextmenu.id = \"contextmenu\";\n contextmenu.innerHTML = `
\n \n
`;\n contextmenu.style.display = \"block\";\n\n contextmenu.style.left = pos_x + \"px\";\n contextmenu.style.top = pos_y + \"px\";\n\n\n this.flowchart.precanvas.appendChild(contextmenu);\n\n }\n\n unShowConextMenu() {\n var contextmenu = document.getElementById('contextmenu')\n if (contextmenu != null) {\n contextmenu.remove();\n }\n\n }\n\n\n initDrawFlow() {\n this.flowchart = new Drawflow(document.getElementById('drawflowDiv'));\n this.flowchart.start();\n\n\n\n this.flowchart.on('connectionSelected', (e) => {\n console.log(e)\n this.selectedConnection = e\n // this.connectionSelected.emit({ selectedConnection: e, flow: this.flowchart.export() })\n\n })\n\n this.flowchart.on('connectionCreated', (e) => {\n this.selectedConnection = e\n this.connectionSelected.emit({ selectedConnection: this.selectedConnection, flow: this.flowchart.export(), conName: 'default' })\n\n\n })\n\n\n\n\n\n this.flowchart.on('import', () => {\n this.onImport.emit()\n })\n\n this.flowchart.on('click', (e: any) => {\n\n this.flowChartClick(e)\n var contextmenu = document.getElementById('contextmenu')\n\n if (contextmenu != null) {\n contextmenu.remove();\n }\n\n });\n\n\n this.flowchart.on('nodeRemoved', (e: any) => {\n\n this.NodeRemovedEmitter.emit(e)\n\n });\n\n\n\n\n\n\n this.flowchart.createCurvature = (start_pos_x, start_pos_y, end_pos_x, end_pos_y, curvature_value, type) => {\n var line_x = start_pos_x;\n var line_y = start_pos_y;\n\n var x = end_pos_x;\n var y = end_pos_y;\n var curvature = curvature_value;\n //type openclose open close other\n switch (type) {\n case 'open':\n if (start_pos_x >= end_pos_x) {\n var hx1 = line_x + Math.abs(x - line_x) * curvature;\n var hx2 = x - Math.abs(x - line_x) * (curvature * -1);\n } else {\n var hx1 = line_x + Math.abs(x - line_x) * curvature;\n var hx2 = x - Math.abs(x - line_x) * curvature;\n }\n return ' M ' + line_x + ' ' + line_y + ' C ' + hx1 + ' ' + line_y + ' ' + hx2 + ' ' + y + ' ' + x + ' ' + y;\n\n break\n case 'close':\n if (start_pos_x >= end_pos_x) {\n var hx1 = line_x + Math.abs(x - line_x) * (curvature * -1);\n var hx2 = x - Math.abs(x - line_x) * curvature;\n } else {\n var hx1 = line_x + Math.abs(x - line_x) * curvature;\n var hx2 = x - Math.abs(x - line_x) * curvature;\n } //M0 75H10L5 80L0 75Z\n\n return ' M ' + line_x + ' ' + line_y + ' C ' + hx1 + ' ' + line_y + ' ' + hx2 + ' ' + y + ' ' + x + ' ' + y + ' M ' + (x - 11) + ' ' + y + ' L' + (x - 20) + ' ' + (y - 5) + ' L' + (x - 20) + ' ' + (y + 5) + 'Z';\n break;\n case 'other':\n if (start_pos_x >= end_pos_x) {\n var hx1 = line_x + Math.abs(x - line_x) * (curvature * -1);\n var hx2 = x - Math.abs(x - line_x) * (curvature * -1);\n } else {\n var hx1 = line_x + Math.abs(x - line_x) * curvature;\n var hx2 = x - Math.abs(x - line_x) * curvature;\n }\n return ' M ' + line_x + ' ' + line_y + ' C ' + hx1 + ' ' + line_y + ' ' + hx2 + ' ' + y + ' ' + x + ' ' + y;\n break;\n default:\n\n var hx1 = line_x + Math.abs(x - line_x) * curvature;\n var hx2 = x - Math.abs(x - line_x) * curvature;\n\n //return ' M '+ line_x +' '+ line_y +' C '+ hx1 +' '+ line_y +' '+ hx2 +' ' + y +' ' + x +' ' + y;\n return ' M ' + line_x + ' ' + line_y + ' C ' + hx1 + ' ' + line_y + ' ' + hx2 + ' ' + y + ' ' + x + ' ' + y + ' M ' + (x - 11) + ' ' + y + ' L' + (x - 20) + ' ' + (y - 5) + ' L' + (x - 20) + ' ' + (y + 5) + 'Z';\n }\n\n }\n\n\n }\n\n\n ngOnChanges(changes: SimpleChanges): void {\n\n if (changes.Nodes && this.Nodes.length > 0) {\n\n if (changes.Nodes.previousValue[changes.Nodes.previousValue.length - 1]?.nodeId !== this.Nodes[this.Nodes.length - 1]?.nodeId)\n this.addNodeToDrawBoard(this.Nodes[this.Nodes.length - 1].pos_x, this.Nodes[this.Nodes.length - 1].pos_y, this.Nodes[this.Nodes.length - 1].item)\n }\n\n // var changesobj = this.findChanges(changes.Nodes.currentValue, changes.Nodes.previousValue)\n // if (changesobj)\n // console.log(changes.Nodes)\n\n\n if (changes.flowImportObject)\n this.initExistFlow()\n\n\n\n\n }\n\n findChanges(oldArray, newArray) {\n const changes = [];\n\n // Dizilerin her bir öğesini kontrol et\n oldArray.forEach((oldItem, index) => {\n const newItem = newArray[index];\n\n // İki öğeyi karşılaştır\n if (!this.areObjectsEqual(oldItem, newItem)) {\n changes.push({ oldItem, newItem, index });\n }\n });\n\n return changes;\n }\n\n areObjectsEqual(obj1, obj2) {\n // Bu örnekte objelerin basit bir karşılaştırması yapılıyor\n // Daha karmaşık bir karşılaştırma yapmanız gerekiyorsa bu fonksiyonu özelleştirebilirsiniz\n return JSON.stringify(obj1) === JSON.stringify(obj2);\n }\n\n zoom(type: string) {\n if (type == 'in')\n this.flowchart.zoom_out();\n else\n this.flowchart.zoom_in();\n\n }\n\n\n addNodeToDrawBoard(pos_x: number, pos_y: number, item: FlowScriptResponse) {\n item.nodeId = 'node-' + this.flowchart.nodeId\n if (this.flowchart?.editor_mode === 'edit') {\n pos_x =\n pos_x * (this.flowchart.precanvas.clientWidth / (this.flowchart.precanvas.clientWidth * this.flowchart.zoom)) -\n this.flowchart.precanvas.getBoundingClientRect().x *\n (this.flowchart.precanvas.clientWidth / (this.flowchart.precanvas.clientWidth * this.flowchart.zoom));\n\n pos_y =\n pos_y * (this.flowchart.precanvas.clientHeight / (this.flowchart.precanvas.clientHeight * this.flowchart.zoom)) -\n this.flowchart.precanvas.getBoundingClientRect().y *\n (this.flowchart.precanvas.clientHeight / (this.flowchart.precanvas.clientHeight * this.flowchart.zoom));\n var htmlTemplate = ''\n if (item.parameters.length > 0) {\n htmlTemplate = `
\n
${'node-' + this.flowchart.nodeId}
\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
\n
\n
${item.description}
\n
\n
\n
`;\n } else {\n htmlTemplate = `
\n
${'node-' + this.flowchart.nodeId}
\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
${item.description}
\n
\n
\n
`;\n }\n this.flowchart.addNode(\n 'node-' + this.flowchart.nodeId,\n 1,\n 1,\n pos_x,\n pos_y,\n 'custom-draw-flow-card',\n item,\n htmlTemplate,\n false\n );\n\n }\n }\n\n clickSetting(item) {\n console.log(item)\n }\n\n saveFlow() {\n this.SaveFlowEmitter.emit(this.flowchart.export())\n }\n\n runFlow() {\n this.runFlowEmitter.emit(this.flowchart.export())\n\n }\n\n getExecutionLog() {\n this.getExecutionLogFunc.emit()\n }\n routeToFLow() {\n this.router.navigate([\"/flow\"])\n\n }\n stopFlow() {\n this.stopButtonFunction.emit()\n }\n\n}\n","
\n \n
\n

{{flowTitle|uppercase}}

\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","import { Component, Input, OnChanges, OnInit, SimpleChanges } from '@angular/core';\nimport { CompactType, DisplayGrid, GridType, GridsterConfig, GridsterItem } from 'angular-gridster2';\nimport { Dashboard } from 'src/app/models/responses/dashboardResponse';\nimport { ExpandedWidgetComponent } from '../modals/expanded-widget/expanded-widget.component';\nimport { ModalService } from 'src/app/services/modal/modal.service';\nimport { ShareFormComponent } from '../modals/share-form/share-form.component';\nimport { ScriptLoaderService } from 'src/app/services/script-loader/script-loader.service';\nimport { WidgetPreview } from 'src/app/models/responses/widgetLibraryResponse';\nimport { DashboardService } from 'src/app/services/dashboard/dashboard.service';\n\n@Component({\n selector: 'app-gridster',\n templateUrl: './gridster.component.html',\n styleUrls: ['./gridster.component.scss']\n})\nexport class GridsterComponent implements OnInit {\n\n options: GridsterConfig={\n itemChangeCallback: (opened) => {\n this.options?.api.optionsChanged()\n },\n gridType: GridType.ScrollVertical,\n compactType: CompactType.None,\n margin: 10,\n outerMargin: true,\n outerMarginTop: null,\n outerMarginRight: null,\n outerMarginBottom: null,\n outerMarginLeft: null,\n useTransformPositioning: true,\n mobileBreakpoint: 600,\n minCols: 2,\n maxCols: 100,\n minRows: 100,\n maxRows: 100,\n maxItemCols: 100,\n minItemCols: 1,\n maxItemRows: 100,\n minItemRows: 1,\n maxItemArea: 2500,\n minItemArea: 1,\n defaultItemCols: 1,\n defaultItemRows: 1,\n fixedColWidth: 105,\n fixedRowHeight: 105,\n keepFixedHeightInMobile: false,\n keepFixedWidthInMobile: false,\n scrollSensitivity: 10,\n scrollSpeed: 20,\n enableEmptyCellClick: false,\n enableEmptyCellContextMenu: false,\n enableEmptyCellDrop: false,\n enableEmptyCellDrag: false,\n enableOccupiedCellDrop: false,\n emptyCellDragMaxCols: 50,\n emptyCellDragMaxRows: 50,\n ignoreMarginInRow: false,\n draggable: {\n enabled: false,\n },\n resizable: {\n enabled: false,\n },\n swap: false,\n pushItems: true,\n disablePushOnDrag: false,\n disablePushOnResize: false,\n pushDirections: { north: true, east: true, south: true, west: true },\n pushResizeItems: false,\n displayGrid: DisplayGrid.OnDragAndResize,\n disableWindowResize: false,\n disableWarnings: false,\n scrollToNewItems: false,\n };\n dashboardWidgets: Array = [];\n _dashboard: Dashboard\n\n @Input() set dashboard(value: Dashboard) {\n this._dashboard = value\n this.options.gridType = value.layout ? GridType[value.layout] : GridType.ScrollVertical\n this.options?.api?.optionsChanged()\n\n this.getWidgets(value.dashboardId)\n }\n @Input() showFilter: boolean = false\n isDeviceMobile: boolean = false\n\n // [ngStyle]=\"{'height':showFilter?'calc(100vh - 90px)': 'calc(100vh - 50px)' }\"\n\n constructor(private modalService: ModalService, private scriptLoader: ScriptLoaderService, private dashboardService: DashboardService) { }\n\n ngOnInit(): void {\n\n this.customizeDashboard();\n\n\n this.isDeviceMobile = window.innerWidth < 600;\n }\n\n getWidgets(dashboardId: string) {\n this.dashboardWidgets = []\n this.dashboardService.getWidgetsForDesigner(dashboardId, '', true).subscribe(result => {\n result.forEach((widget, index) => {\n var wd = {\n\n cols: widget.widget.layout.cols,\n rows: widget.widget.layout.rows,\n y: widget.widget.layout.y,\n x: widget.widget.layout.x,\n designerContainer: widget\n }\n this.dashboardWidgets.push(wd);\n this.createWidget(widget)\n })\n });\n }\n\n\n\n\n expandWidget(widgetData: any) {\n let data = {\n widgetData: widgetData.designerContainer,\n shareModalOpen: (e) => this.openShareForm({ ...e, filter: this.dashboard.filter}),\n selectedFilters:this.dashboard.filter,\n selectedDashboard:this.dashboard\n\n }\n this.modalService.openModal(data, ExpandedWidgetComponent, '90%', '100%', 'overflow-hidden').subscribe(result => { });\n }\n\n openShareForm(shareData: any) {\n let data = {\n objectType: shareData.objectType,\n objectId: shareData.objectId,\n dashboardId: this.dashboard.dashboardId,\n filter: this.dashboard.filter,\n function: () => { }\n };\n\n this.modalService.openModal(data, ShareFormComponent, 'auto', '600px').subscribe(result => {\n if (result) {\n }\n })\n }\n\n\n\n private createWidget(widgetResponse: any) {\n this.scriptLoader.addScriptFileToHead(widgetResponse.widgetLibraries);\n this.scriptLoader.runWidgetCode(widgetResponse);\n }\n\n\n private customizeDashboard() {\n\n\n this.options = {\n itemChangeCallback: (opened) => {\n this.options?.api.optionsChanged()\n },\n gridType: GridType.ScrollVertical,\n compactType: CompactType.None,\n margin: 10,\n outerMargin: true,\n outerMarginTop: null,\n outerMarginRight: null,\n outerMarginBottom: null,\n outerMarginLeft: null,\n useTransformPositioning: true,\n mobileBreakpoint: 600,\n minCols: 2,\n maxCols: 100,\n minRows: 100,\n maxRows: 100,\n maxItemCols: 100,\n minItemCols: 1,\n maxItemRows: 100,\n minItemRows: 1,\n maxItemArea: 2500,\n minItemArea: 1,\n defaultItemCols: 1,\n defaultItemRows: 1,\n fixedColWidth: 105,\n fixedRowHeight: 105,\n keepFixedHeightInMobile: false,\n keepFixedWidthInMobile: false,\n scrollSensitivity: 10,\n scrollSpeed: 20,\n enableEmptyCellClick: false,\n enableEmptyCellContextMenu: false,\n enableEmptyCellDrop: false,\n enableEmptyCellDrag: false,\n enableOccupiedCellDrop: false,\n emptyCellDragMaxCols: 50,\n emptyCellDragMaxRows: 50,\n ignoreMarginInRow: false,\n draggable: {\n enabled: false,\n },\n resizable: {\n enabled: false,\n },\n swap: false,\n pushItems: true,\n disablePushOnDrag: false,\n disablePushOnResize: false,\n pushDirections: { north: true, east: true, south: true, west: true },\n pushResizeItems: false,\n displayGrid: DisplayGrid.OnDragAndResize,\n disableWindowResize: false,\n disableWarnings: false,\n scrollToNewItems: false,\n };\n }\n\n}\n","
\n \n \n \n \n \n \n
","import { Component, Input, OnInit, ViewChild } from '@angular/core';\nimport { AuthService } from 'src/app/services/auth/auth.service';\nimport { environment } from 'src/environments/environment';\nimport { ModalService } from 'src/app/services/modal/modal.service';\nimport { CreateUserComponent } from 'src/app/pages/manage/user/create-user/create-user.component';\nimport { CoreService } from 'src/app/services/core/core.service';\nimport { User } from 'src/app/models/responses/loginResponse';\nimport { UserService } from 'src/app/services/user/user.service';\nimport { TranslateService } from '@ngx-translate/core';\nimport { Router } from '@angular/router';\nimport { MatSidenav } from '@angular/material/sidenav';\nimport { DashboardService } from 'src/app/services/dashboard/dashboard.service';\nimport { ChatbotComponent } from '../chatbot/chatbot.component';\nimport { MatDialog } from '@angular/material/dialog';\nimport { ChatbotService } from 'src/app/services/chatbot/chatbot.service';\nimport { SpeechProcces } from 'src/app/core/speechTypes';\n@Component({\n selector: 'app-header',\n templateUrl: './header.component.html',\n styleUrls: ['./header.component.scss']\n})\nexport class HeaderComponent implements OnInit {\n\n firstName: string = \"\";\n lastName: string = \"\";\n avatar: string = \"\";\n @Input() disableMic:boolean=false\n @ViewChild('sidenav') sidenav: MatSidenav;\n @Input() disableUserMenu:boolean=false\n \n selectedDashboard: any\n permissions: string[] = []\n visibleManagement:boolean=false\n mic: boolean = false\n micenable:boolean=true\n roles:string[]=this.authService.getRoles()\n @Input() navigateTo:string='/'\n\n functionList = [\n { type: SpeechProcces.OpenDashboard, function: (event) => this.openDashboard(event) },\n { type: SpeechProcces.AssistantOpen, function: (event) => this.openChatbox() }\n ]\n\n constructor(\n private authService: AuthService,\n private modalService: ModalService,\n private coreService: CoreService,\n private userService: UserService,\n private translate: TranslateService,\n private router: Router,\n private dashboardService: DashboardService,\n private dialog: MatDialog\n ) { }\n\n ngOnInit(): void {\n this.firstName = this.authService.getUserFirstName();\n this.lastName = this.authService.getUserLastName();\n this.avatar = environment.imageUrl + this.authService.getUserAvatar();\n this.dashboardService.selectedDasboard.subscribe((res => {\n this.selectedDashboard = res\n }))\n this.permissions = this.authService.getPermissions()\n\n if(this.permissions.some(x=>x.toLowerCase().includes('management'))){\n this.visibleManagement=true\n }else{\n this.visibleManagement=false\n }\n\n console.log('this.permissions',this.permissions)\n if ('SpeechRecognition' in window|| 'webkitSpeechRecognition' in window) {\n this.micenable=true\n }else{\n this.micenable= false\n }\n }\n\n openSelfServisMain() {\n this.router.navigate(['selfservice'])\n }\n\n logout() {\n this.authService.logout().subscribe(result => {\n this.dashboardService.setCacheData({ authorizedDashboard: [], activeDashboard: [] })\n \n });\n }\n\n goManage() {\n // this.router.navigate(['/manage/user'])\n this.router.navigate(['/landing'])\n }\n\n showUserInfo() {\n let data = {\n type: \"update\",\n user: this.authService.getUser() as User,\n ownUser: true\n }\n this.modalService.openModal(data, CreateUserComponent, 'auto', '1000px').subscribe(result => {\n if (result) {\n this.getUserInfo();\n // console.log(result)\n // this.coreService.showSuccessMessage(result);\n }\n });\n }\n\n getUserInfo() {\n this.userService.getUserById(this.authService.getUserId()).subscribe(user => {\n this.authService.saveUserInfos(user);\n this.firstName = this.authService.getUserFirstName();\n this.avatar = environment.imageUrl + this.authService.getUserAvatar();\n // if (user.language == 'English') {\n // this.translate.use('en');\n // } else {\n // this.translate.use('tr');\n // }\n })\n }\n\n\n openDashboard(text: string) {\n var selecteddashboard = this.dashboardService.cachedData.getValue().authorizedDashboard.find(x => x.title.toLocaleLowerCase().includes(text.toLocaleLowerCase()))\n if (selecteddashboard)\n this.router.navigate([\"/main\"], { state: selecteddashboard });\n }\n\n openChatbox() {\n this.dialog.open(ChatbotComponent, {\n width: '80%',\n height: '80%',\n panelClass: 'chat-dialog-container',\n });\n }\n\n\n\n}\n","
\n \n \n \n
\n\n \n
\n \n \n
\n
\n
\n {{ 'HeaderComponent.Hello' | translate }}, {{firstName}} {{lastName}}\n \n
\n\n
\n \n\n
\n
\n\n\n {{ 'HeaderComponent.UpdateInfo' | translate }}\n {{ 'HeaderComponent.Manage' | translate\n }}\n {{ 'HeaderComponent.Logout' | translate }}\n","import { Component, ElementRef, OnInit, TemplateRef, ViewChild } from '@angular/core';\nimport { TranslateService } from '@ngx-translate/core';\nimport { CoreService } from 'src/app/services/core/core.service';\nimport { DashboardService } from 'src/app/services/dashboard/dashboard.service';\nimport { environment } from 'src/environments/environment';\nimport { Clipboard } from '@angular/cdk/clipboard';\nimport { MatDialog } from '@angular/material/dialog';\n\n\n@Component({\n selector: 'app-image-selectbox',\n templateUrl: './image-selectbox.component.html',\n styleUrls: ['./image-selectbox.component.scss']\n})\nexport class ImageSelectboxComponent implements OnInit {\n @ViewChild('fileInput') fileInput: ElementRef;\n @ViewChild('imageDialog') imageDialog: TemplateRef;\n formData = new FormData();\n images: string[] = []\n imageBaseUrl: string = environment.imageUrl\n selectedImage: string = ''\n\n _albums = [\n {\n src: 'path-to-your-image.jpg',\n caption: 'Image caption',\n thumb: 'path-to-your-thumbnail.jpg'\n }\n ];\n\n\n constructor(private dashboardService: DashboardService, private coreService: CoreService,\n private translate: TranslateService, private clipboard: Clipboard, private dialog: MatDialog) { }\n\n ngOnInit(): void {\n this.getImages()\n }\n\n\n getImages() {\n this.dashboardService.ListPictures().subscribe(res => {\n this.images = res\n this._albums[0].src = res[0]\n })\n }\n\n imageSelect(fileInput) {\n var fileData = fileInput.target.files[0];\n if (fileData.size > 3145728) {\n this.coreService.showErrorMessage(this.translate.instant(\"ErrorMessages.SmallPhoto\"));\n return;\n }\n var mimeType = fileData.type;\n if (mimeType.match(/image\\/*/) == null) {\n this.coreService.showErrorMessage(this.translate.instant(\"ErrorMessages.WrongFormatPhoto\"));\n this.fileInput.nativeElement.value = \"\";\n return;\n }\n\n var reader = new FileReader();\n reader.readAsDataURL(fileData);\n this.addImage(fileData)\n // reader.onload = (_event) => {\n // var avatar = reader.result;\n // // debugger;\n // //let base64 = new String((reader.result as string).split(',')[1]);\n // // this.photoLoaded.emit(reader.result);\n // this.addImage(reader.result)\n // }\n }\n\n addImage(result) {\n this.dashboardService.addPictures(result).subscribe(res => {\n this.getImages();\n })\n }\n\n copyLink(link) {\n const result = this.clipboard.copy(link)\n\n if (result)\n this.coreService.showSuccessMessage('Copied!');\n }\n\n deleteImage(item) {\n this.dashboardService.deletePictures(item?.split('/')[2]).subscribe(res => {\n this.getImages();\n\n })\n }\n\n\n openImage(image: string) {\n this.selectedImage = this.imageBaseUrl+image\n console.log(this.selectedImage)\n let dialogRef = this.dialog.open(this.imageDialog);\n dialogRef.afterClosed().subscribe(result => {\n // Note: If the user clicks outside the dialog or presses the escape key, there'll be no result\n if (result !== undefined) {\n if (result === 'yes') {\n // TODO: Replace the following line with your code.\n console.log('User clicked yes.');\n } else if (result === 'no') {\n // TODO: Replace the following line with your code.\n console.log('User clicked no.');\n }\n }\n })\n }\n\n\n}\n","
\n
\n \n
\n \n
\n \n \n
\n
\n
\n \n \n
\n
\n \n open_in_new\n link\n\n
\n\n\n\n
\n
\n
\n\n\n\n
\n clear\n
\n \n \n \n
","import { Component, Inject, OnInit } from '@angular/core';\nimport { FormControl, FormGroup, UntypedFormControl, Validators } from '@angular/forms';\nimport { MAT_DIALOG_DATA, MatDialogRef } from '@angular/material/dialog';\nimport { TranslateService } from '@ngx-translate/core';\nimport { languagePacts } from 'src/app/models/responses/languagePacts';\nimport { CoreService } from 'src/app/services/core/core.service';\nimport { SystemParametersService } from 'src/app/services/system-parameters/system-parameters.service';\n\n@Component({\n selector: 'app-language-form',\n templateUrl: './language-form.component.html',\n styleUrls: ['./language-form.component.scss']\n})\nexport class LanguageFormComponent implements OnInit {\n pageForm: FormGroup\n language: languagePacts = {\n name: '',\n content: '',\n type: ''\n }\n validationResponse: boolean = true\n\n constructor(@Inject(MAT_DIALOG_DATA) public data: {\n language: languagePacts,\n type: string\n }, public dialogRef: MatDialogRef,\n private systemService: SystemParametersService,\n private coreService: CoreService,\n private translate: TranslateService) { }\n\n ngOnInit(): void {\n Object.assign(this.language, this.data.language)\n\n this.pageForm = new FormGroup({\n name: new UntypedFormControl(this.language.name, [Validators.required]),\n type: new UntypedFormControl(this.language.type, [Validators.required]),\n content: new UntypedFormControl(this.beautifyJSON(this.language.content), [Validators.required])\n \n })\n\n }\n\n\n upsertLanguage() {\n if (this.beautifyJSON(this.language.content)) {\n this.systemService.upsertLanguagePacts(this.language).subscribe(res => {\n if (res.name) {\n this.dialogRef.close(res)\n this.coreService.showSuccessMessage(this.translate.instant(\"Common.Success\"))\n } else {\n this.coreService.showErrorMessage(this.translate.instant(\"Common.Error\"))\n }\n })\n } else {\n this.coreService.showErrorMessage(this.translate.instant(\"LanguageForm.InValidJson\"))\n\n }\n\n }\n\n beautifyJSON(jsonData) {\n\n try {\n this.validationResponse = true\n const beautifiedJSON = JSON.stringify(JSON.parse(jsonData), null, 4);\n this.language.content = beautifiedJSON\n return beautifiedJSON;\n } catch (error) {\n console.error(\"Invalid JSON data:\", error);\n this.validationResponse = false\n\n return null;\n }\n\n }\n\n\n\n}\n","\n
\n
\n \n {{ 'LanguageForm.Name' | translate }}\n \n \n
\n \n\n \n {{ 'LanguageForm.Type' | translate }}\n\n \n Client\n Server\n \n \n
\n\n \n {{ 'LanguageForm.Content' | translate }}\n \n \n
\n\n 0&& validationResponse\">{{\"LanguageForm.ValidJson\"|translate}}\n 0&&!validationResponse\">{{\"LanguageForm.InValidJson\"|translate}}\n\n \n\n
\n\n
\n \n \n \n
\n
\n
","import { Component, OnInit } from '@angular/core';\nimport { TranslateService } from '@ngx-translate/core';\nimport { languagePacts } from 'src/app/models/responses/languagePacts';\nimport { ModalService } from 'src/app/services/modal/modal.service';\nimport { SystemParametersService } from 'src/app/services/system-parameters/system-parameters.service';\nimport { LanguageFormComponent } from '../language-form/language-form.component';\nimport { CoreService } from 'src/app/services/core/core.service';\n\n@Component({\n selector: 'app-language-management',\n templateUrl: './language-management.component.html',\n styleUrls: ['./language-management.component.scss']\n})\nexport class LanguageManagementComponent implements OnInit {\n\n languages: languagePacts[] = []\n\n displayedColumns: string[] = ['name', 'type', 'action'];\n columnWidth: string[] = ['30%', '40%', '30%']\n displayedColumnsName: string[] = [this.translate.instant(\"LanguageForm.LanguageName\"), this.translate.instant(\"LanguageForm.Type\")];\n\n constructor(private systemService: SystemParametersService,\n private modalService: ModalService,\n private coreService: CoreService,\n private translate: TranslateService) { }\n\n ngOnInit(): void {\n this.getLanguages()\n }\n\n\n getLanguages() {\n this.systemService.getLanguagePacts().subscribe(res => {\n this.languages = res\n })\n }\n\n openLanguageForm(selectedLanguage: any) {\n let data = {\n type: event.type as string,\n language: selectedLanguage.data\n }\n\n this.modalService.openModal(data, LanguageFormComponent, '80%', '60%', 'overflow-hidden').subscribe(result => {\n if (result) {\n this.getLanguages()\n }\n });\n }\n\n\n deleteLanguage(lang: languagePacts) {\n this.modalService.openDeleteConfirm().subscribe(result => {\n if (result) {\n this.systemService.deleteLanguage(lang.name).subscribe(res => {\n if (res.result) {\n this.coreService.showSuccessMessage(this.translate.instant(\"Common.Success\"))\n this.getLanguages()\n } else {\n this.coreService.showErrorMessage(res.message)\n }\n })\n }\n })\n\n }\n\n}\n","\n\n\n \n\n","import { Clipboard } from '@angular/cdk/clipboard';\nimport { Component, EventEmitter, Input, OnInit, Output } from '@angular/core';\nimport { BussionFilterDefinition } from 'src/app/models/responses/dataStoreResponse';\nimport { Share } from 'src/app/models/responses/shareResponse';\nimport { CoreService } from 'src/app/services/core/core.service';\nimport { ModalService } from 'src/app/services/modal/modal.service';\nimport { ShareService } from 'src/app/services/share/share.service';\nimport { MailSceduleFormComponent } from '../mail-scedule-form/mail-scedule-form.component';\n\n@Component({\n selector: 'app-list-item-with-icon',\n templateUrl: './list-item-with-icon.component.html',\n styleUrls: ['./list-item-with-icon.component.scss']\n})\nexport class ListItemWithIConComponent implements OnInit {\n\n @Input() item: { core: any, listitem: { text: string, small: string } }\n @Input() smallTitle = ''\n @Input() buttonsList: { icon: string, function: Function, tooltip: string, type: string }[] = [\n { icon: 'mail.svg', function: () => { }, tooltip: '', type: '' }\n ]\n\n @Output() itemOnclickEvent: EventEmitter = new EventEmitter()\n\n\n\n\n\n constructor() { }\n\n ngOnInit(): void {\nconsole.log(this.buttonsList)\n }\n\n\n itemOnclick(item: any, event: any) {\n this.itemOnclickEvent.emit(item)\n }\n\n}\n","
\n
\n
{{item.listitem.text}}
\n \n Created By:\n {{smallTitle}}:\n {{item.listitem.small}} miliseconds\n
\n
\n
\n
\n \n \n
\n
\n
\n
","import { Component, Input, OnInit } from '@angular/core';\n\n@Component({\n selector: 'app-loading',\n templateUrl: './loading.component.html',\n styleUrls: ['./loading.component.scss']\n})\nexport class LoadingComponent implements OnInit {\n\n @Input() display\n constructor() { }\n\n ngOnInit(): void {\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
","import { Component, Inject, OnInit } from '@angular/core';\nimport { FormControl, FormGroup, Validators } from '@angular/forms';\nimport { MAT_DIALOG_DATA, MatDialogRef } from '@angular/material/dialog';\nimport { TranslateService } from '@ngx-translate/core';\nimport { Sceduler } from 'src/app/models/requests/Sceduler';\n\nimport { CoreService } from 'src/app/services/core/core.service';\nimport { MailServiceService } from 'src/app/services/mail/mail-service.service';\n\n\n@Component({\n selector: 'app-mail-scedule-form',\n templateUrl: './mail-scedule-form.component.html',\n styleUrls: ['./mail-scedule-form.component.scss']\n})\nexport class MailSceduleFormComponent implements OnInit {\n MailForm: FormGroup;\n email: string = '';\n emailList: string[] = [];\n\n Sceduler: Sceduler = {\n scheduleId: \"\",\n status: 1,\n type: 0,\n hour: \"\",\n minute: \"\",\n link: '',\n receivers: \"\",\n subject: \"\",\n template: \"\",\n format: 2\n };\n currentPage: number = 0;\n showcreateform: boolean = false;\n Scedules: any[] = [];\n paginatedScedulers: any[] = [];\n emailError: string = ''; \n Formats: any[] = [\n { id: 0, type: this.translate.instant('MailForm.Link'), text: 'Link', class: 'badge-warn' },\n { id: 1, type: this.translate.instant('MailForm.HTML'), text: 'Html', class: 'badge-prp' },\n { id: 2, type: this.translate.instant('MailForm.Picture'), text: 'Picture', class: 'badge-succes' },\n { id: 3, type: this.translate.instant('MailForm.Presentation'), text: 'Presentation', class: 'badge-info' }\n\n ];\n\n constructor(\n private mailService: MailServiceService,\n private translate: TranslateService,\n private coreService: CoreService,\n private dialogRef: MatDialogRef,\n\n \n @Inject(MAT_DIALOG_DATA)\n public data: {\n url: string,\n dashboardId: string\n }\n ) {}\n\n ngOnInit(): void {\n this.MailForm = new FormGroup({\n hour: new FormControl(\"\", [\n Validators.required,\n Validators.min(0),\n Validators.max(23)\n ]),\n minute: new FormControl(\"\", [\n Validators.required,\n Validators.min(0),\n Validators.max(59)\n ]),\n link: new FormControl(this.data.url),\n receivers: new FormControl(\"\", Validators.required),\n subject: new FormControl(\"\", Validators.required),\n format: new FormControl(\"\")\n });\n this.getSceduler(this.data.dashboardId);\n }\n\n writeEmail(): void {\n const receiversControl = this.MailForm.get('receivers');\n if (receiversControl && receiversControl.value) {\n const emails = receiversControl.value.split(',').map(email => email.trim());\n this.emailList = [];\n this.emailError = ''; // Hata mesajını sıfırla\n \n for (let i = 0; i < emails.length; i++) {\n const email = emails[i];\n if (Validators.email(new FormControl(email)) === null) {\n this.emailList.push(email);\n } else {\n this.emailError = 'Geçerli bir e-posta adresi giriniz.';\n }\n }\n }\n }\n\nsaveScedule() {\n this.emailError = ''; // Hata mesajını sıfırla\n\n if (this.MailForm.valid) {\n const receiversControl = this.MailForm.get('receivers');\n if (receiversControl && receiversControl.invalid) {\n this.emailError = 'Geçerli bir e-posta adresi giriniz.';\n } else {\n const hour = this.MailForm.get('hour').value;\n const minute = this.MailForm.get('minute').value;\n\n // Hour ve minute değerlerinin sınırların dışında olup olmadığını kontrol et\n if (hour < 0 || hour > 23 || minute < 0 || minute > 59) {\n this.emailError = 'Geçerli saat ve dakika değerleri giriniz.';\n } else {\n // E-posta alanı geçerli olduğunda işlemleri devam ettir\n const SceduleObject = { ...this.Sceduler, ...this.MailForm.value };\n SceduleObject.receivers = this.emailList.join(','); // Geçerli e-posta adreslerini kullanarak receivers değerini güncelle\n \n this.mailService.upsertMailSceduler(SceduleObject).subscribe(res => {\n if (res === 'OK') {\n this.getSceduler(this.data.dashboardId);\n this.coreService.showSuccessMessage(this.translate.instant('Common.Success'));\n this.showcreateform = false;\n } else {\n this.coreService.showErrorMessage(res);\n }\n });\n }\n }\n } else {\n this.coreService.showErrorMessage(this.translate.instant('Common.FormFill'));\n }\n}\n\n\ngetSceduler(dashboardId: string) {\n this.MailForm.reset();\n this.MailForm.patchValue({\n link: this.data.url\n });\n this.mailService.getMailSceduler(dashboardId).subscribe((res) => {\n this.Scedules = res.map(item => {\n return {\n ...item,\n scedularType: this.Formats.find(x => x.id == item.format).text,\n badgeClass: this.Formats.find(x => x.id == item.format).class,\n receiverList: item.receivers ? item.receivers.split(',').map(rc => {\n return {\n mail: rc,\n avatar: rc.includes('.')\n ? rc.split('.')[0]?.substring(0, 1).toUpperCase() + rc.split('.')[1]?.substring(0, 1).toUpperCase()\n : rc.substring(0, 2).toUpperCase()\n };\n }) : []\n };\n });\n this.paginatedScedulers = this.Scedules.slice(0, 5);\n });\n}\n\n paginateItems(event) {\n this.currentPage = event.pageIndex;\n this.paginatedScedulers = this.Scedules.slice(\n event.pageIndex * event.pageSize,\n (event.pageIndex + 1) * event.pageSize\n );\n }\n\n openEditScreen(item) {\n this.MailForm.patchValue({\n hour: item.hour,\n minute: item.minute,\n link: item.link,\n receivers: item.receivers,\n subject: item.subject,\n format: item.format\n });\n this.showcreateform = true;\n this.Sceduler = { ...item };\n }\n\n openFormScreen() {\n this.MailForm.reset();\n this.MailForm.patchValue({\n link: this.data.url\n });\n this.showcreateform = !this.showcreateform;\n this.Sceduler = {\n scheduleId: \"\",\n status: 1,\n type: 0,\n hour: \"\",\n minute: \"\",\n link: '',\n receivers: \"\",\n subject: \"\",\n template: \"\",\n format: 2\n };\n }\n\n deleteScedule(item) {\n this.mailService.deleteMailSceduler(item.scheduleId).subscribe(res => {\n if (res === 'OK') {\n this.getSceduler(this.data.dashboardId);\n this.coreService.showSuccessMessage(this.translate.instant('Common.Success'));\n } else {\n this.coreService.showErrorMessage(res);\n }\n });\n }\n}","\n\n
\n
\n \n
\n
\n
{{'MailForm.Subject'|translate}}
\n
{{'MailForm.ScedularType'|translate}}
\n
{{'MailForm.Receivers'|translate}}
\n
{{'MailForm.Time'|translate}}
\n
\n\n
\n
    \n
  • \n
    {{item.subject}}
    \n
    \n {{item.scedularType}}
    \n
    \n
    \n
    {{ rc.avatar !== undefined ? rc.avatar : rc.mail.substring(0, 2).toUpperCase() }}
    \n
    \n
    \n
    {{item.hour}}H {{item.minute}}M
    \n
    \n \n \n\n \n \n \n
    \n
  • \n
\n \n
\n
\n
\n \n
\n\n
\n \n\n \n {{ 'MailForm.Receiver' | translate }}\n \n \n \n \n {{\"MailForm.ValidMail\" | translate}}\n \n \n {{\"MailForm.InvalidMail\" | translate}}\n \n \n \n\n \n {{ 'MailForm.Subject' | translate }}\n \n\n \n
{{ 'MailForm.ShippingTime' | translate }}
\n
\n \n \n {{ 'MailForm.Hour' | translate }}\n \n \n \n {{ 'MailForm.Minute' | translate }}\n \n \n
\n \n {{ 'MailForm.SharedDashboard' | translate }}\n \n\n \n \n {{ 'MailForm.Format' | translate }}\n \n \n {{option.type}}\n \n \n \n
\n \n \n \n \n
\n
","import { Component, OnInit, Input } from '@angular/core';\n\n@Component({\n selector: 'app-modal-title',\n templateUrl: './modal-title.component.html',\n styleUrls: ['./modal-title.component.scss']\n})\nexport class ModalTitleComponent implements OnInit {\n\n @Input() title: string;\n\n constructor() { }\n\n ngOnInit(): void {\n }\n\n}\n","
\n {{title}}\n
\n \n clear\n
\n
","import { Component, Inject, Input, OnInit } from '@angular/core';\nimport { MAT_DIALOG_DATA, MatDialogRef } from '@angular/material/dialog';\n\n@Component({\n selector: 'app-custom-modal',\n templateUrl: './custom-modal.component.html',\n styleUrls: ['./custom-modal.component.scss']\n})\nexport class CustomModalComponent implements OnInit {\n\n @Input() title:string=''\n @Input() subtitle:string=''\n @Input() img:string=''\n\n\n\n constructor(\n private dialogRef: MatDialogRef) { }\n\n\n ngOnInit(): void {\n\n }\n\n closeDialog() {\n this.dialogRef.close()\n }\n\n\n\n\n\n\n\n}\n","
\n
\n
\n \n
\n
\n
{{title|translate}}
\n {{subtitle|translate}}\n
\n
\n
\n \n
\n
\n clear\n
\n\n\n\n
\n
\n \n
\n","import { Component, OnInit, Inject, ViewChild, ElementRef } from '@angular/core';\nimport { MatDialogRef, MAT_DIALOG_DATA } from '@angular/material/dialog';\nimport html2canvas from 'html2canvas';\nimport { Dashboard } from 'src/app/models/responses/dashboardResponse';\nimport { BussionFilterDefinition } from 'src/app/models/responses/dataStoreResponse';\nimport { Widget } from 'src/app/models/responses/widgetLibraryResponse';\nimport { AuthService } from 'src/app/services/auth/auth.service';\nimport { ScriptLoaderService } from 'src/app/services/script-loader/script-loader.service';\n\n@Component({\n selector: 'app-expanded-widget',\n templateUrl: './expanded-widget.component.html',\n styleUrls: ['./expanded-widget.component.scss']\n})\nexport class ExpandedWidgetComponent implements OnInit {\n @ViewChild('widgetContent') screen: ElementRef;\n @ViewChild('canvas') canvas: ElementRef;\n @ViewChild('downloadLink') downloadLink: ElementRef;\n downloadLoading: boolean = false\n\n showFilter:boolean=false\n\n groupedData = {};\n groupedDataKeys: string[] = []\n\n canvasId: string = \"id\";\n widgetData: any;\n permissions: string[] = []\n widget: Widget;\n coreWidgetId: string = ''\n constructor(\n public dialogRef: MatDialogRef,\n private scriptLoader: ScriptLoaderService, private authService: AuthService,\n @Inject(MAT_DIALOG_DATA) public data:\n {\n widgetData: any,\n shareModalOpen: Function,\n selectedFilters: BussionFilterDefinition[],\n selectedDashboard: Dashboard\n }\n ) { }\n\n ngOnInit(): void {\n if (this.data.widgetData) {\n this.widgetData = Object.assign({}, this.data.widgetData);\n this.widget = this.data.widgetData.widget;\n this.coreWidgetId = this.widget.widgetId\n this.createWidget();\n }\n this.permissions = this.authService.getPermissions()\n this.groupFilters()\n }\n\n private createWidget() {\n this.widgetData.widget.widgetId = \"widget-\" + this.widgetData.widget.widgetId;\n this.widgetData.widgetId = this.widgetData.widget.widgetId;\n this.canvasId = this.widgetData.widget.widgetId\n this.scriptLoader.addScriptFileToHead(this.widgetData.widgetLibraries);\n this.scriptLoader.runWidgetCode(this.widgetData);\n }\n\n\n action(type: boolean): void {\n this.dialogRef.close(type);\n }\n\n\n shareWidget() {\n if (this.data.shareModalOpen)\n this.data.shareModalOpen({ objectId: this.coreWidgetId, objectType: 'Widget' })\n }\n\n downloadWidget(widget: any, type: string) {\n\n if (type == 'csv') {\n\n let csvData = this.jsonToCsv(this.widgetData.widgetData); // Add .items.data\n // Create a CSV file and allow the user to download it\n let blob = new Blob([csvData], { type: 'text/csv' });\n let url = window.URL.createObjectURL(blob);\n let a = document.createElement('a');\n a.href = url;\n a.download = widget.title + '.csv';\n document.body.appendChild(a);\n a.click();\n } else {\n html2canvas(this.screen.nativeElement).then(canvas => {\n this.canvas.nativeElement.src = canvas.toDataURL();\n this.downloadLink.nativeElement.href = canvas.toDataURL('image/png');\n this.downloadLink.nativeElement.download = widget.title + '.png';\n this.downloadLink.nativeElement.click();\n\n\n }).finally(() => {\n\n this.downloadLoading = false\n\n });\n }\n }\n\n jsonToCsv(jsonData) {\n let csv = '';\n // Get the headers\n let headers = Object.keys(jsonData[0]);\n csv += headers.join(',') + '\\n';\n // Add the data\n jsonData.forEach(function (row) {\n let data = headers.map(header => JSON.stringify(row[header])).join(','); // Add JSON.stringify statement\n csv += data + '\\n';\n });\n return csv;\n }\n\n groupFilters() {\n this.data.selectedFilters.forEach(item => {\n var visibleName = this.data.selectedDashboard.dimensions.find(x => x.name == item.fieldName)?.visibleName ?? item.fieldName\n if (!this.groupedData[visibleName]) {\n this.groupedData[visibleName] = {};\n }\n\n\n\n // this.groupedData[item.fieldName].push(item);\n\n if (!this.groupedData[visibleName][item.operator]) {\n this.groupedData[visibleName][item.operator] = [];\n }\n this.groupedData[visibleName][item.operator].push(item);\n\n });\n\n\n this.groupedDataKeys = Object.keys(this.groupedData)\n }\n\n DownloadFilter(checkbox) {\n this.showFilter = checkbox.checked\n }\n\n getObjectKeys(obj: any): string[] {\n return Object.keys(obj);\n }\n\n}\n","
\n
\n
\n {{widget.title}}\n
\n \n\n 0?DownloadFilter({checked:true}):''\">more_vert\n\n close\n\n
\n
\n
\n {{widget.subTitle}}
\n\n
\n
\n
0&&showFilter\">\n \n
\n \n {{item}}\n
\n {{(\"FilterComponent.\"+op|translate)}}\n
\n {{d.fieldValue}},\n
\n
\n
\n
\n
\n
\n\n
\n\n\n
\n \n \n
\n\n\n0?DownloadFilter({checked:false}):''\">\n \n {{ 'WidgetButtons.Share' | translate }}\n \n
\n\n \n
\n {{ 'WidgetButtons.Download' | translate }}\n
\n\n
\n
\n\n\n\n\n \n \n","import { Component, OnInit, Inject } from '@angular/core';\nimport { MAT_DIALOG_DATA, MatDialogRef } from '@angular/material/dialog';\nimport { ConnectorService } from 'src/app/services/connector/connector.service';\nimport { interval } from 'rxjs';\n\n@Component({\n selector: 'app-log',\n templateUrl: './log.component.html',\n styleUrls: ['./log.component.scss']\n})\nexport class LogComponent implements OnInit {\n\n public taskInterval = interval(2000);\n private subscriptionInterval;\n taskId: string;\n logs: string[] = [];\n constructor(\n @Inject(MAT_DIALOG_DATA) public data: { visibleButton?: boolean , taskId: string },\n public dialogRef: MatDialogRef,\n private connectorService: ConnectorService\n ) { }\n\n ngOnInit(): void {\n if (this.data.taskId) {\n this.taskId = this.data.taskId;\n this.runTaskInterval();\n }\n }\n\n ngOnDestroy(): void {\n this.subscriptionInterval.unsubscribe();\n }\n\n runTaskInterval() {\n this.subscriptionInterval = this.taskInterval.subscribe(() => this.getLogs());\n }\n\n getLogs() {\n this.connectorService.getTaskStatus(this.taskId).subscribe(logs => {\n if (logs.includes(\"EOF\")) {\n this.subscriptionInterval.unsubscribe();\n }\n this.logs = logs;\n });\n }\n\n stopTask() {\n this.connectorService.stopTask(this.taskId).subscribe(result => {\n console.log(\"Task Stoped\");\n });\n }\n\n}\n","\n
\n\n
\n
\n

{{log}}

\n
\n
\n\n
\n \n \n
\n\n
\n\n
\n","import { Component, OnInit, Inject, ViewChild, ElementRef, Input } from '@angular/core';\nimport { MAT_DIALOG_DATA, MatDialogRef } from '@angular/material/dialog';\nimport { MessageService } from 'src/app/services/message/message.service';\nimport { BussionMessage } from 'src/app/models/responses/messageResponse';\nimport { environment } from 'src/environments/environment';\nimport { ModalService } from 'src/app/services/modal/modal.service';\n\n@Component({\n selector: 'app-messages',\n templateUrl: './messages.component.html',\n styleUrls: ['./messages.component.scss']\n})\nexport class MessagesComponent implements OnInit {\n\n @ViewChild('messageList') private myScrollContainer: ElementRef;\n baseImageUrl: string = environment.imageUrl;\n dashboardId: string = \"\"\n @Input() set selectedDashboardId(value: string) {\n if (value) {\n this.dashboardId = value;\n this.getMessages();\n }\n }\n @Input() sidenavRef:any\n messages: BussionMessage[] = [];\n message: BussionMessage = {\n creationDate: new Date(),\n ownerAvatar: '',\n ownerId: '',\n ownerName: '',\n tags: [],\n text: '',\n };\n constructor(\n private messageService: MessageService,\n private modalService: ModalService\n ) { }\n\n ngOnInit(): void {\n /* if (this.data.dashboardId) {\n this.dashboardId = this.data.dashboardId;\n this.getMessages()\n } */\n }\n\n getMessages() {\n this.messageService.getMessages(this.dashboardId).subscribe(messages => {\n this.messages = messages;\n this.scrollToBottom();\n })\n }\n\n sendMessage() {\n this.messageService.upsertMessage(this.dashboardId, this.message).subscribe(result => {\n this.getMessages();\n this.message.text = '';\n });\n }\n\n deleteMessage(message: BussionMessage) {\n this.modalService.openDeleteConfirm().subscribe(selection => {\n if (selection) {\n this.messageService.deleteMessage(this.dashboardId, message.messageId).subscribe(result => {\n this.getMessages();\n })\n }\n })\n\n }\n\n private scrollToBottom(): void {\n\n try {\n setTimeout(() => {\n this.myScrollContainer.nativeElement.scrollTop = this.myScrollContainer.nativeElement.scrollHeight;\n }, 500);\n } catch (err) { }\n }\n\n}\n","
\n
\n

{{'MainPage.MessageButton'|translate}}

\n

X

\n\n
\n
\n
\n
\n
\n \n {{message.ownerName}}\n
\n
\n
\n
\n {{message.creationDate | date:'medium' }}\n \n
\n

{{message.text}}

\n
\n \n
\n
\n \n
\n
\n\n
\n
\n \n send\n
\n \n
\n
","import { Component, OnInit, Inject, Output, EventEmitter } from '@angular/core';\nimport { Share } from 'src/app/models/responses/shareResponse';\nimport { MAT_DIALOG_DATA, MatDialogRef } from '@angular/material/dialog';\nimport { ShareService } from 'src/app/services/share/share.service';\nimport { ModalService } from 'src/app/services/modal/modal.service';\nimport { CoreService } from 'src/app/services/core/core.service';\nimport { Router } from '@angular/router';\nimport { Clipboard } from '@angular/cdk/clipboard';\nimport { BussionFilterDefinition } from 'src/app/models/responses/dataStoreResponse';\nimport { UserService } from 'src/app/services/user/user.service';\nimport { User } from 'src/app/models/responses/loginResponse';\nimport { AuthService } from 'src/app/services/auth/auth.service';\n\n@Component({\n selector: 'app-share-form',\n templateUrl: './share-form.component.html',\n styleUrls: ['./share-form.component.scss']\n})\nexport class ShareFormComponent implements OnInit {\n share: Share = {\n name: \"\",\n sharedObjectId: \"\",\n objectType: \"\",\n shareState: \"\",\n shareKey: \"\",\n sharedBy: \"\",\n sharedUserId: \"\",\n domain: \"\",\n sharedDate: new Date(),\n sharedData: \"\",\n dashboardId: \"\",\n lang: \"English\",\n enableFilter: 1,\n enableTitle: 0,\n filter: [],\n shareType: 0,\n lockedFilter: 0,\n shareEncryptKey: '',\n authenticatedUsers: '',\n authentication: 0\n }\n authenticatedUsers: string[] = []\n users: User[] = []\n filteredUsers: User[] = []\n\n compareFunction = (o1: any, o2: any) => o1 === o2.toString();\n compareFunction2 = (o1: any, o2: any) => o1 === o2.toString();\n\n constructor(\n @Inject(MAT_DIALOG_DATA) public data: any,\n private dialogRef: MatDialogRef,\n private shareService: ShareService,\n private modalService: ModalService,\n private coreService: CoreService,\n private router: Router,\n private authService: AuthService,\n private userService: UserService\n ) { }\n\n ngOnInit(): void {\n if (this.data) {\n this.share.objectType = this.data.objectType;\n this.share.sharedObjectId = this.data.objectId;\n this.share.dashboardId = this.data.dashboardId;\n this.share.filter = this.data.filter;\n }\n this.authenticatedUsers.push(this.authService.getUserId())\n\n if (this.data.data) {\n Object.assign(this.share, this.data.data)\n this.authenticatedUsers = this.share.authenticatedUsers.split(',')\n }\n\n this.getUsers()\n }\n\n getUsers() {\n if (this.userService.users.getValue().length <= 0) {\n this.userService.getUsers().subscribe(res => {\n this.users = res\n this.filteredUsers = this.users\n })\n } else {\n this.users = this.userService.users.getValue()\n this.filteredUsers = this.userService.users.getValue()\n\n }\n }\n\n createShare() {\n if (this.share.name.length == 0) {\n this.coreService.showFormFillError();\n return;\n }\n if (this.authenticatedUsers.length > 0) {\n this.share.authenticatedUsers = this.authenticatedUsers.reduce(function (acc, current) {\n return acc + ',' + current;\n });\n } else {\n this.share.authenticatedUsers = ''\n }\n this.shareService.upsertShare(this.share).subscribe(shareResult => {\n\n let filter = shareResult.filter?.length > 0 ? this.filterString(shareResult.filter) : ''\n\n //window.open(`/#/share/${shareResult.shareKey}/${filter}`, '_blank');\n this.data.function()\n this.coreService.showSuccessMessage(\"İşlem başarılı...\");\n this.dialogRef.close(true)\n })\n }\n\n filterString(filter: any[]) {\n let filterString = JSON.stringify(Object.assign({}, filter))\n var stringFilter = '[' + filter.map(item => {\n return JSON.stringify(item)\n }) + ']'\n return stringFilter\n }\n\n searchUser(event) {\n this.filteredUsers = this.users.filter(x => x.firstName.toLowerCase().includes(event.target.value.toLowerCase()) || x.lastName.toLowerCase().includes(event.target.value.toLowerCase()))\n\n if (event.target.value == '') {\n this.filteredUsers = this.users\n }\n }\n\n}\n","\n\n \n
\n\n \n {{ 'ShareComponent.Name' | translate }}\n \n \n
\n\n \n {{ 'ShareComponent.ShowTitle' | translate }}\n \n True\n False\n \n \n
\n\n \n {{ 'ShareComponent.ApplyFilter' | translate }}\n \n True\n False\n \n \n
\n\n \n {{ 'ShareComponent.LockedFilter' | translate }}\n \n True\n False\n \n \n
\n\n \n {{ 'ShareComponent.shareType' | translate }}\n \n Public\n Private\n \n \n\n \n {{ 'ShareComponent.AuthType' | translate }}\n \n No Authentication\n OTP Authentication\n Bussion Authentication\n \n \n\n \n {{ 'ShareComponent.AuthUser' | translate }}\n \n\n
\n {{ 'Common.Search' | translate }}\n \n
\n
\n \n
\n
\n\n {{item.firstName+ ' '\n +item.lastName}}\n
\n\n\n\n\n
\n
\n\n \n \n \n \n \n \n
\n
","import { Component, EventEmitter, Inject, Input, OnInit, Output } from '@angular/core';\nimport { MAT_DIALOG_DATA, MatDialogRef } from '@angular/material/dialog';\nimport { BussionFilterDefinition } from 'src/app/models/responses/dataStoreResponse';\nimport { Share } from 'src/app/models/responses/shareResponse';\nimport { CoreService } from 'src/app/services/core/core.service';\nimport { ModalService } from 'src/app/services/modal/modal.service';\nimport { ShareService } from 'src/app/services/share/share.service';\nimport { Clipboard } from '@angular/cdk/clipboard';\nimport { MailSceduleFormComponent } from '../../mail-scedule-form/mail-scedule-form.component';\n\n@Component({\n selector: 'app-views',\n templateUrl: './views.component.html',\n styleUrls: ['./views.component.scss']\n})\nexport class ViewsComponent implements OnInit {\n\n mySharesCore: Share[] = []\n _mySharesForList: { core: Share, listitem: { small: string, text: string } }[] = []\n\n buttonsList: { icon: string, function: Function, tooltip: string, class: string, type: string }[] = [\n { icon: 'mail.svg', function: (e) => this.sendMail(e), tooltip: '', class: 'bg-light-success', type: 'img' },\n { icon: 'copy.svg', function: (e) => this.copyshareLink(e), tooltip: '', class: 'bg-light-info', type: 'img' },\n { icon: 'deleteShare.svg', function: (e) => this.deleteShare(e), tooltip: '', class: 'bg-light-danger', type: 'img' }\n ]\n\n\n\n\n constructor(\n @Inject(MAT_DIALOG_DATA) public data: { myShares: Share[], applyFilterForViews: Function, getShares: Function },\n private shareService: ShareService,\n private modalService: ModalService,\n private clipboard: Clipboard,\n private coreService: CoreService) { }\n\n ngOnInit(): void {\n\n this._mySharesForList = this.data.myShares.map(item => {\n return { core: item, listitem: { small: item.sharedBy, text: item.name } }\n })\n\n }\n\n\n\n deleteShare(item: Share) {\n this.modalService.openDeleteConfirm().subscribe(isOk => {\n if (isOk) {\n this.shareService.deleteShare(item.shareId).subscribe(result => {\n this.data.getShares()\n this.closeModal()\n });\n }\n })\n }\n\n filterString(filter: any[]) {\n let filterString = JSON.stringify(Object.assign({}, filter))\n var stringFilter = '[' + filter.map(item => {\n return JSON.stringify(item)\n }) + ']'\n return stringFilter\n }\n\n copyshareLink(item: Share) {\n let filter = this.filterString(item.filter)\n var link = encodeURIComponent(window.origin + `/#/share/${item.shareKey}?filters=${filter}`)\n\n const result = this.clipboard.copy(link).valueOf()\n\n if (result)\n this.coreService.showSuccessMessage('Copied!');\n\n\n }\n\n\n applyFilter(item: Share) {\n this.data.applyFilterForViews(item)\n this.closeModal()\n }\n\n\n\n\n\n sendMail(item: Share) {\n var data = {\n url: window.origin + `/#/share/${item.shareKey}?filters=${this.filterString(item.filter)}`,\n dashboardId: item.dashboardId\n }\n this.modalService.openModal(data, MailSceduleFormComponent, '80%', '60%').subscribe(res => {\n\n })\n }\n\n closeModal() {\n this.modalService.dissmissAll()\n }\n\n\n}\n","
\n\n
\n

Views

\n

X

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

{{'ShareComponent.noShares'|translate}}

\n
\n\n\n\n
\n\n","import { Component, OnInit, ViewChild, ElementRef, Input, Output, EventEmitter } from '@angular/core';\nimport { TranslateService } from '@ngx-translate/core';\nimport { CoreService } from 'src/app/services/core/core.service';\nimport { environment } from 'src/environments/environment';\n\n@Component({\n selector: 'app-photo-upload',\n templateUrl: './photo-upload.component.html',\n styleUrls: ['./photo-upload.component.scss']\n})\nexport class PhotoUploadComponent implements OnInit {\n\n\n @ViewChild('photoUpload') photoFile: ElementRef;\n fileData: File = null;\n avatar: any = \"../../../../../assets/images/user.png\";\n\n @Input() set photoUrl(value: string) {\n if(this.type=='icon'){\n if (value==''||value==null) {\n this.avatar = '/assets/images/defaultIcon.png';\n }else{\n if (value && !value.startsWith('data:image')) {\n this.avatar = environment.imageUrl + value;\n }\n }\n }else{\n if (value && !value.startsWith('data:image')) {\n this.avatar = environment.imageUrl + value;\n }\n }\n }\n\n @Input() type\n @Input() width\n\n\n @Output() photoLoaded = new EventEmitter();\n\n constructor(\n private translate: TranslateService,\n private coreService: CoreService\n ) { }\n\n ngOnInit(): void {\n }\n\n uploadFile(fileInput: any) {\n this.fileData = fileInput.target.files[0];\n if (this.fileData.size > 3145728) {\n this.coreService.showErrorMessage(this.translate.instant(\"ErrorMessages.SmallPhoto\"));\n return;\n }\n var mimeType = this.fileData.type;\n if (mimeType.match(/image\\/*/) == null) {\n this.coreService.showErrorMessage(this.translate.instant(\"ErrorMessages.WrongFormatPhoto\"));\n this.photoFile.nativeElement.value = \"\";\n return;\n }\n\n var reader = new FileReader();\n reader.readAsDataURL(this.fileData);\n reader.onload = (_event) => {\n this.avatar = reader.result;\n // debugger;\n //let base64 = new String((reader.result as string).split(',')[1]);\n this.photoLoaded.emit(reader.result);\n }\n }\n\n\n}\n","
\n
\n \n \n
\n \n
","import { Component, OnInit } from '@angular/core';\n\n@Component({\n selector: 'app-popover-container',\n templateUrl: './popover-container.component.html',\n styleUrls: ['./popover-container.component.scss']\n})\nexport class PopoverContainerComponent implements OnInit {\n\n constructor() { }\n\n ngOnInit(): void {\n }\n\n}\n","
\n \n
","import { TemplatePortal } from '@angular/cdk/portal';\nimport { Directive, ElementRef, EventEmitter, HostListener, Input, Output, TemplateRef, ViewContainerRef } from '@angular/core';\nimport { takeUntil } from 'rxjs/operators';\nimport { PopoverService } from './popover.service';\nimport { Overlay, OverlayRef } from '@angular/cdk/overlay';\nimport { Subject } from 'rxjs';\n\n@Directive({\n selector: '[popoverTrigger]'\n})\nexport class PopoverDirective {\n\n @Input()\n popoverTrigger!: TemplateRef;\n\n @Input()\n closeOnClickOutside: boolean = false;\n\n @Input()\n popoverContext: any;\n\n @Output()\n popoverClosed: EventEmitter = new EventEmitter(); // Popover kapandığını bildirmek için EventEmitter\n\n\n\n private unsubscribe = new Subject();\n private overlayRef!: OverlayRef;\n\n constructor(\n private elementRef: ElementRef,\n private overlay: Overlay,\n private vcr: ViewContainerRef,\n private popoverService: PopoverService\n ) { }\n\n ngOnInit(): void {\n this.createOverlay();\n this.popoverService.getState().subscribe(resp => {\n if (resp) {\n this.detachOverlay();\n }\n });\n }\n\n ngOnDestroy(): void {\n this.detachOverlay();\n this.unsubscribe.next();\n this.unsubscribe.complete();\n }\n\n @HostListener(\"click\") clickou() {\n this.attachOverlay();\n }\n\n private createOverlay(): void {\n const scrollStrategy = this.overlay.scrollStrategies.block();\n const positionStrategy = this.overlay.position()\n .flexibleConnectedTo(this.elementRef)\n .withPositions([\n {\n originX: 'end', // Butonun sağ kenarını referans al\n originY: 'top', // Butonun üst kenarını referans al\n overlayX: 'start', // Popover'ın sol kenarını butonun sağ kenarına hizala\n overlayY: 'top' // Popover'ın üst kenarını butonun üst kenarına hizala\n }\n // { originX: 'start', originY: 'bottom', overlayX: 'end', overlayY: 'center' },\n // { originX: \"start\", originY: \"bottom\" },\n // { overlayX: \"start\", overlayY: \"top\" }\n ])\n\n this.overlayRef = this.overlay.create({\n positionStrategy,\n scrollStrategy,\n hasBackdrop: true,\n backdropClass: \"\",\n });\n\n this.overlayRef\n .backdropClick()\n .pipe(takeUntil(this.unsubscribe))\n .subscribe(() => {\n if (this.closeOnClickOutside) {\n this.detachOverlay();\n }\n });\n }\n\n public attachOverlay(): void {\n if (!this.overlayRef.hasAttached()) {\n const periodSelectorPortal = new TemplatePortal(\n this.popoverTrigger,\n this.vcr,\n this.popoverContext\n );\n\n this.overlayRef.attach(periodSelectorPortal);\n }\n }\n\n private detachOverlay(): void {\n if (this.overlayRef.hasAttached()) {\n this.overlayRef.detach();\n this.popoverClosed.emit();\n }\n }\n\n}\n","import { NgModule } from '@angular/core';\nimport { CommonModule } from '@angular/common';\nimport { PopoverContainerComponent } from './popover-container/popover-container.component';\nimport { PopoverDirective } from './popover.directive';\nimport { Overlay, OverlayModule } from '@angular/cdk/overlay';\nimport { PopoverService } from './popover.service';\n\n\n\n@NgModule({\n declarations: [\n PopoverContainerComponent,\n PopoverDirective\n ],\n imports: [\n CommonModule,\n OverlayModule\n ],\n exports: [PopoverDirective, PopoverContainerComponent],\n providers: [Overlay, PopoverService]\n})\nexport class PopoverModule { }\n","import { Injectable } from '@angular/core';\nimport { BehaviorSubject, Observable } from 'rxjs';\n\n@Injectable({\n providedIn: 'root'\n})\nexport class PopoverService {\n\n private state: BehaviorSubject = new BehaviorSubject(false);\n\n constructor() {}\n\n getState(): Observable {\n return this.state.asObservable();\n }\n\n setState(value: boolean) {\n return this.state.next(value);\n }\n}\n","import { Component, OnInit, Inject, Input } from '@angular/core';\nimport { Dashboard } from 'src/app/models/responses/dashboardResponse';\nimport { Share } from 'src/app/models/responses/shareResponse';\nimport { Widget } from 'src/app/models/responses/widgetLibraryResponse';\nimport { DashboardService } from 'src/app/services/dashboard/dashboard.service';\nimport { ScriptLoaderService } from 'src/app/services/script-loader/script-loader.service';\n\n@Component({\n selector: 'app-preview-widget',\n templateUrl: './preview-widget.component.html',\n styleUrls: ['./preview-widget.component.scss']\n})\nexport class PreviewWidgetComponent implements OnInit {\n\n widget: Widget\n groupedData = {};\n groupedDataKeys: string[] = []\n\n selectedDashboard: Dashboard\n\n @Input() set data(value: any) {\n if (value) {\n this.widget = value.widget\n this.createWidget(value);\n }\n }\n @Input() shareObject: Share\n canvasId: string = \"id\";\n constructor(\n private dashboardService: DashboardService,\n private scriptLoader: ScriptLoaderService\n ) { }\n\n ngOnInit(): void {\n this.getDashboard()\n \n }\n\n private createWidget(widgetResponse: any) {\n widgetResponse.widget.widgetId = \"widget-\" + this.canvasId;\n this.scriptLoader.addScriptFileToHead(widgetResponse.widgetLibraries);\n this.scriptLoader.runWidgetCode(widgetResponse);\n }\n\n getDashboard() {\n \n if (this.shareObject?.dashboardId)\n this.dashboardService.getDashboardById(this.shareObject.dashboardId).subscribe(res => {\n this.selectedDashboard = res\n this.groupFilters()\n })\n }\n\n getObjectKeys(obj: any): string[] {\n return Object.keys(obj);\n }\n\n\n groupFilters() {\n if (this.widget.filter)\n this.widget.filter.forEach(item => {\n var visibleName = this.selectedDashboard.dimensions.find(x => x.name == item.fieldName)?.visibleName ?? item.fieldName\n if (!this.groupedData[visibleName]) {\n this.groupedData[visibleName] = {};\n }\n\n\n\n // this.groupedData[item.fieldName].push(item);\n\n if (!this.groupedData[visibleName][item.operator]) {\n this.groupedData[visibleName][item.operator] = [];\n }\n this.groupedData[visibleName][item.operator].push(item);\n\n });\n\n\n this.groupedDataKeys = Object.keys(this.groupedData)\n }\n\n\n}\n","
\n
\n
\n {{widget.title}}\n
\n
\n {{widget.subTitle}}
\n\n
0&&shareObject&&this.shareObject?.enableFilter\">\n \n
\n \n {{item}}\n
\n {{(\"FilterComponent.\"+op|translate)}}\n
\n {{d.fieldValue}},\n
\n
\n
\n
\n\n
\n\n
\n\n
\n\n","import { Component, EventEmitter, Input, OnInit, Output } from '@angular/core';\n\n\n@Component({\n selector: 'app-search-input',\n templateUrl: './search-input.component.html',\n styleUrls: ['./search-input.component.scss']\n})\nexport class SearchInputComponent implements OnInit {\n\n constructor() { }\n @Output() filterData = new EventEmitter();\n @Output() changeText = new EventEmitter();\n\n @Input() datas: any[] = []\n @Input() height: string = '40px'\n\n @Input() searchColumns: string[] = []\n\n\n ngOnInit(): void {\n }\n\n filterSearchData(event: any) {\n var filteredData = []\n this.changeText.emit((event.target as HTMLInputElement).value)\n if ((event.target as HTMLInputElement).value !== '') {\n const filterValue = (event.target as HTMLInputElement).value?.trim().toLowerCase();\n // this.dataSource.filter = filterValue.trim().toLowerCase();\n\n this.datas.map((data) => {\n return this.searchColumns.map(cl => {\n if (data[cl].toLowerCase().includes(filterValue))\n filteredData.push(data)\n })\n })\n\n } else {\n filteredData = this.datas\n }\n this.filterData.emit(filteredData)\n }\n\n}\n","
\n
\n \n
\n
\n \n \n \n
\n
","import { CdkDragDrop, moveItemInArray } from '@angular/cdk/drag-drop';\nimport { Component, EventEmitter, Input, OnInit, Output } from '@angular/core';\n\n@Component({\n selector: 'app-selection-list-with-search',\n templateUrl: './selection-list-with-search.component.html',\n styleUrls: ['./selection-list-with-search.component.scss']\n})\nexport class SelectionListWithSearchComponent implements OnInit {\n\n constructor() { }\n currentPage: number = 1\n _data: any[] = []\n @Input() pageSize: number = 5\n @Input() title: string = ''\n @Input() selectedDatas: string[] = []\n\n\n @Input() dragable: boolean = false\n dragEnable: boolean = false\n\n\n totalPage: number = 1\n @Input() set data(value: any[]) {\n this._data = value;\n this.filteredData = value\n this.totalPage = Math.ceil(this.filteredData.length / this.pageSize);\n\n this.updatePaginate(this.pageSize)\n }\n\n @Input() keys: { valueKey: string, titleKey: string } = { valueKey: '', titleKey: '' }\n compareFunction = (o1: any, o2: any) => { o1 === o2 };\n\n filteredData: any[] = []\n paginatedData: any[] = []\n\n @Output() changeselectedList: EventEmitter = new EventEmitter()\n\n\n\n\n ngOnInit(): void {\n }\n\n previousPage() {\n this.currentPage--;\n this.updatePaginate(this.pageSize);\n }\n nextPage() {\n this.currentPage++;\n this.updatePaginate(this.pageSize);\n }\n\n updatePaginate(pageSize: number) {\n const start = (this.currentPage - 1) * pageSize;\n const end = start + pageSize;\n var list = []\n var selectedList = []\n\n this.filteredData.map(item => {\n if (!this.selectedDatas.some(x => x == item[this.keys.valueKey]))\n list.push({ ...item, selected: this.selectedDatas.some(x => x == item[this.keys.valueKey]) })\n // else\n // selectedList.push({ ...item, selected: this.selectedDatas.some(x => x == item[this.keys.valueKey]) })\n })\n\n this.selectedDatas.map(item => {\n var selectedObject = this.filteredData.find(x => x[this.keys.valueKey] == item)\n selectedList.push({ ...selectedObject, selected: true })\n })\n\n list = selectedList.concat(list)\n this.paginatedData = list.slice(start, end);\n }\n\n\n applyFilter(filtervalue: string) {\n this.filteredData = this._data.filter((dashboard) => {\n return dashboard.title.toLowerCase().includes(filtervalue.toLowerCase());\n });\n this.totalPage = Math.ceil(this.filteredData.length / this.totalPage);\n this.currentPage = 1;\n this.updatePaginate(this.pageSize);\n }\n\n\n changeselectedListFunc(event: any) {\n if (event.options[0]._selected) {\n this.selectedDatas.push(event.options[0]._value)\n } else {\n this.selectedDatas = this.selectedDatas.filter(x => x !== event.options[0]._value)\n }\n this.changeselectedList.emit(this.selectedDatas)\n }\n\n drop(event: CdkDragDrop) {\n moveItemInArray(this.filteredData, event.previousIndex, event.currentIndex);\n moveItemInArray(this.paginatedData, event.previousIndex, event.currentIndex);\n this.saveSort()\n }\n\n saveSort() {\n var sortedList = []\n \n\n this.paginatedData.map(d => {\n if (d.selected)\n sortedList.push(d[this.keys.valueKey])\n })\n\n this.selectedDatas = sortedList\n this.changeselectedList.emit(sortedList)\n }\n\n openCloseDrag() {\n this.dragEnable = !this.dragEnable;\n if (this.dragEnable) {\n this.updatePaginate(this._data.length)\n } else {\n this.saveSort()\n this.updatePaginate(this.pageSize)\n }\n\n }\n\n}\n","\n\n\n\n \n\n\n \n {{item[keys.titleKey]}}\n \n\n\n\n
\n \n {{ currentPage }}\n \n
","import { Component, Inject, OnInit } from '@angular/core';\nimport { UntypedFormControl, UntypedFormGroup, Validators } from '@angular/forms';\nimport { MAT_DIALOG_DATA, MatDialogRef } from '@angular/material/dialog';\nimport { TranslateService } from '@ngx-translate/core';\nimport { NgxSpinnerService } from 'ngx-spinner';\nimport { Dashboard } from 'src/app/models/responses/dashboardResponse';\nimport { Widget } from 'src/app/models/responses/widgetLibraryResponse';\nimport { CoreService } from 'src/app/services/core/core.service';\nimport { DashboardService } from 'src/app/services/dashboard/dashboard.service';\n\n@Component({\n selector: 'app-self-service-dashboard-form',\n templateUrl: './self-service-dashboard-form.component.html',\n styleUrls: ['./self-service-dashboard-form.component.scss']\n})\nexport class SelfServiceDashboardFormComponent implements OnInit {\n\n constructor(\n @Inject(MAT_DIALOG_DATA) public data: {\n type: string,\n widget: Widget[],\n dashboard: Dashboard[]\n },\n private coreService: CoreService,\n private translate: TranslateService,\n private dashboardService: DashboardService,\n private spinner: NgxSpinnerService,\n private dialogRef: MatDialogRef,\n ) {\n\n }\n pageForm: UntypedFormGroup;\n dashboard: Dashboard = {\n title: \"\",\n icon: \"\",\n dashboardStatus: 1,\n order: 1,\n description: \"\",\n layoutConfig: \"\",\n domain: \"\",\n access: 2,\n owner: \"\",\n creationDate: new Date(),\n updatedBy: \"\",\n updateDate: new Date(),\n colorPalette: \"\",\n filter: [],\n widgets: this.data.widget ?? [],//Widget,\n dimensions: [], //Dimension,\n messages: [], //BussionMessage\n auditEnabled: 0,\n autoRefresh: 1,\n refreshInterval: 30,\n isMainDashboard: 1,\n hideBorders: 'false',\n gridSize: 6,\n tags: \"\",\n css: \"\",\n isSelfService: 1,\n contentLanguage: '',\n hideAdvancedQueryPanel: 0,\n layout: '',\n colors: []\n }\n compareFunctionForLanguage = (o1: any, o2: any) => o1 === o2.toString();\n\n ngOnInit(): void {\n if (this.data.dashboard) {\n Object.assign(this.dashboard, this.data.dashboard)\n }\n\n this.pageForm = new UntypedFormGroup({\n title: new UntypedFormControl(this.dashboard.title, [Validators.required]),\n description: new UntypedFormControl(this.dashboard.description, [Validators.required]),\n contentLanguage: new UntypedFormControl(this.dashboard.description, [Validators.required]),\n });\n\n }\n saveDashboard() {\n if (this.pageForm.invalid) {\n this.coreService.showFormFillError();\n return;\n }\n this.spinner.show();\n\n this.dashboard.widgets = this.data.widget\n this.dashboard.icon = this.dashboard.icon || '/BussionImages/Dashboard/Dashboard.png'\n\n this.dashboardService.upsertDashboard(this.dashboard).subscribe(result => {\n this.spinner.hide();\n this.dialogRef.close(result);\n });\n }\n\n uploadIconImage(fileInput: any) {\n let file = fileInput.target.files[0];\n if (file.size > 3145728) {\n this.coreService.showErrorMessage(this.translate.instant(\"ErrorMessages.SmallPhoto\"));\n return;\n }\n var mimeType = file.type;\n if (mimeType.match(/image\\/*/) == null) {\n this.coreService.showErrorMessage(this.translate.instant(\"ErrorMessages.WrongFormatPhoto\"));\n return;\n }\n\n var reader = new FileReader();\n reader.readAsDataURL(file);\n reader.onload = (_event) => {\n this.dashboard.icon = reader.result;\n }\n }\n}\n","\n\n\n
\n
\n \n
\n \n
\n\n
\n \n {{ 'DashboardFormPage.Title' | translate }}\n \n \n
\n \n {{ 'DashboardFormPage.Description' | translate }}\n \n \n
\n \n {{ 'DashboardFormPage.ContentLanguage' | translate }}\n \n {{ 'DashboardFormPage.en' | translate }}\n {{ 'DashboardFormPage.tr' | translate }}\n \n \n
\n
\n\n
\n\n \n \n \n","import { Component, OnInit } from '@angular/core';\nimport { ModalService } from 'src/app/services/modal/modal.service';\nimport { Dashboard } from 'src/app/models/responses/dashboardResponse';\nimport { SelfServiceDesignerComponent } from '../../self-service-designer/self-service-designer.component';\nimport { environment } from \"src/environments/environment\";\nimport { NgxSpinnerService } from 'ngx-spinner';\nimport { DashboardService } from 'src/app/services/dashboard/dashboard.service';\nimport { deleteCssFile } from 'src/app/core/utils';\nimport { Router } from '@angular/router';\nimport { GlobalFunctionService } from 'src/app/services/global-function/global-function.service';\nimport { SharePersonFormComponent } from '../../share-person-form/share-person-form.component';\nimport { CoreService } from 'src/app/services/core/core.service';\nimport { TranslateService } from '@ngx-translate/core';\n\n\n@Component({\n selector: 'app-self-service-dashboard-list',\n templateUrl: './self-service-dashboard-list.component.html',\n styleUrls: ['./self-service-dashboard-list.component.scss']\n})\nexport class SelfServiceDashboardListComponent implements OnInit {\n\n constructor(\n private modalService: ModalService,\n private spinner: NgxSpinnerService,\n private dashboardService: DashboardService,\n private router: Router,\n private translate: TranslateService,\n private coreService: CoreService,\n private globalFunctionService: GlobalFunctionService\n ) { }\n\n searchColumns: string[] = ['title']\n paginatedDashboards: Dashboard[] = [];\n baseUrl = environment.imageUrl;\n dashboards: Dashboard[] = [];\n allDashboards: Dashboard[] = []\n currentPage = 0;\n itemsPerPage = 5;\n totalPages = 0;\n userDash: string;\n routeList = [{ path: \"/selfservice\", name: this.translate.instant(\"SelfServicePage.SelfServiceHome\") }, { path: \"/selfservice/dashboard-list\", name: this.translate.instant(\"SelfServicePage.DashboardList\") }]\n displayLoading = false; // Başlangıçta yüklenme ekranını gizle\n showNoDashboards = false;\n\n ngOnInit(): void {\n this.displayLoading = true; // Yükleme ekranını göster\n this.getDashboards()\n }\n avatarKeys = { avatar: 'avatar', tooltip: 'firstName lastName', avatartext: 'firstName', avatartext2: 'lastName' }\n\n columns: any[] = [{ title: '', width: '5%', selector: 'icon', mobile: true }, { title: 'DataStorePage.title', width: '30%', selector: 'title', mobile: true },\n { title: 'DataStorePage.Description', width: '40%', selector: 'description', mobile: false }, { title: 'Shared', width: '15%', selector: 'avatar', avatarselector: 'users', avatarKeys: this.avatarKeys, mobile: true }, { title: '', width: '5%', selector: 'actionicon', mobile: true },\n { title: 'DataStorePage.Action', width: '5%', selector: 'action', mobile: true }]\n\n\n openDesigner(dashboardId?: Dashboard) {\n if (dashboardId)\n this.router.navigate(['selfservice/self-service-design', dashboardId]);\n\n else\n this.router.navigate(['selfservice/self-service-design']);\n }\n\n deleteDashboard(dashboard: Dashboard) {\n this.modalService.openDeleteConfirm().subscribe(result => {\n if (result === true) {\n this.spinner.show();\n this.dashboardService.deleteDashboard(dashboard).subscribe(result => {\n this.spinner.hide();\n this.getDashboards();\n })\n }\n });\n }\n\n getDashboards() {\n this.displayLoading = true;\n\n this.dashboardService.getAuthorizedDashboards().subscribe(result => {\n // this.dashboards = result;\n this.userDash = localStorage?.getItem('userId');\n const filteredDashboards = result.filter(dashboard => dashboard.ownerId == this.userDash && dashboard.isSelfService == 1).map(item => {\n return { ...item, users: item.users ? JSON.parse(item.users) : '' }\n });\n\n this.dashboards = filteredDashboards\n this.allDashboards = filteredDashboards\n\n\n\n this.displayLoading = false;\n this.showNoDashboards = true;\n\n\n this.updatePaginationDashboards();\n\n });\n }\n\n\n\n paginateDashboards(event: any) {\n this.currentPage = event.pageIndex;\n this.paginatedDashboards = this.dashboards.slice(\n event.pageIndex * event.pageSize,\n (event.pageIndex + 1) * event.pageSize\n );\n }\n\n updatePaginationDashboards() {\n this.totalPages = Math.ceil(this.dashboards.length / this.itemsPerPage);\n this.currentPage = 0;\n this.paginatedDashboards = this.dashboards.slice(\n this.currentPage * this.itemsPerPage,\n (this.currentPage + 1) * this.itemsPerPage\n );\n }\n\n\n filterData(filteredDatas: Dashboard[]) {\n this.dashboards = filteredDatas\n this.updatePaginationDashboards();\n }\n\n // getRouteElements() {\n // return [{ path: \"/selfservice\", name: \"Self Service Home\" }, { path: \"/selfservice/dashboard-list\", name: \"Dashboard List\" }]\n // }\n\n updateDashboardUsers(dashboard: Dashboard) {\n this.dashboardService.upsertDashboard(dashboard).subscribe(result => {\n if (result) {\n this.coreService.showSuccessMessage(result.message);\n this.getDashboards()\n }\n });\n }\n\n openShareForm(selected: Dashboard) {\n var data = {\n selectedUsers: selected.users,\n title: 'UserCard.ShareDashboard'\n }\n this.modalService.openModalBeforeClosed(data, SharePersonFormComponent, '90%', '40%', 'responsive-modal').subscribe(result => {\n\n if (result.length > 0) {\n var dashboard = { ...selected, users: JSON.stringify(result) }\n this.updateDashboardUsers(dashboard)\n\n } else {\n var dashboard = { ...selected, users: '[]' }\n this.updateDashboardUsers(dashboard)\n }\n });\n }\n\n actionButtonsClick(data: any) {\n if (data.type == 'edit')\n this.openDesigner(data.data.dashboardId)\n else if (data.type == 'delete')\n this.deleteDashboard(data.data)\n else if (data.type == 'share')\n this.openShareForm(data.data)\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

{{'DashboardPage.NoDashboardsYet' | translate\n }}\n

\n

{{'DashboardPage.NoDashboardsYetParagraph' | translate\n }}

\n
\n
\n \n \n
\n
","import { Component, OnInit } from '@angular/core';\nimport { ModalService } from 'src/app/services/modal/modal.service';\nimport { SelfServiceDatastoreFormComponent } from '../../self-service-datastore-form/self-service-datastore-form.component';\nimport { DataList, DataStore } from 'src/app/models/responses/dataStoreResponse';\nimport { DataStoreService } from 'src/app/services/dataStore/data-store.service';\nimport { NgxSpinnerService } from 'ngx-spinner';\nimport { SelfService } from 'src/app/services/self-service/self.service';\nimport { concatMap, tap } from 'rxjs/operators';\nimport { DatastoreFormComponent } from 'src/app/pages/manage/datastore/datastore-form/datastore-form.component';\nimport { SharePersonFormComponent } from '../../share-person-form/share-person-form.component';\nimport { CoreService } from 'src/app/services/core/core.service';\nimport { AuthService } from 'src/app/services/auth/auth.service';\nimport { TranslateService } from '@ngx-translate/core';\n\n@Component({\n selector: 'app-self-service-data-store-list',\n templateUrl: './self-service-data-store-list.component.html',\n styleUrls: ['./self-service-data-store-list.component.scss']\n})\nexport class SelfServiceDataStoreListComponent implements OnInit {\n\n constructor(\n private modalService: ModalService,\n private dataStoreService: DataStoreService,\n private spinner: NgxSpinnerService,\n private selfService: SelfService,\n private translate: TranslateService,\n private coreService: CoreService,\n private authService: AuthService\n ) { }\n\n dataStores: DataStore[] = [];\n formData = new FormData()\n formDatacolumns: { FieldName: string, FieldType: string, FieldFilter: string }[] = [];\n userData = {\n Status: 1,\n UserDataId: \"\",\n NodeId: \"\",\n Name: \"\",\n CollectionName: \"\",\n DataDefinition: \"\",\n UserId: \"\",\n Columns: [],\n Users: \"\"\n };\n dataList: DataList[] = []\n allDataStores: DataStore[] = []\n userId: string;\n currentPage = 0;\n itemsPerPage = 5;\n totalPages = 0;\n paginatedDataStores: DataStore[] = [];\n searchColumns: string[] = ['name'];\n routeList = [{ path: \"/selfservice\", name: this.translate.instant(\"SelfServicePage.SelfServiceHome\") }, { path: \"/selfservice/data-store-list\", name: this.translate.instant(\"SelfServicePage.MyDatas\") }]\n displayLoading = false; // Başlangıçta yüklenme ekranını gizle\n showNoDataStores = false;\n\n ngOnInit(): void {\n\n this.getDatastores();\n }\n avatarKeys = { avatar: 'avatar', tooltip: 'firstName lastName', avatartext: 'firstName', avatartext2: 'lastName' }\n columns: any[] = [{ title: 'DataStorePage.icon', width: '10%', selector: 'image', mobile: true }, { title: 'DataStorePage.title', width: '40%', selector: 'name', mobile: true },\n { title: 'DataStorePage.Description', width: '40%', selector: 'description', mobile: false }, { title: 'Shared', width: '15%', selector: 'avatar', avatarselector: 'users', avatarKeys: this.avatarKeys, mobile: true }, { title: '', width: '5%', selector: 'actionicon', mobile: true },\n { title: 'DataStorePage.Action', width: '5%', selector: 'action', mobile: true }]\n\n\n openDataStoreComponent(event: any, onlyPreview: boolean) {\n let data = {\n type: event.type as string,\n dataStore: event.data as DataStore,\n onlyPreview: onlyPreview\n }\n this.modalService.openModal(data, SelfServiceDatastoreFormComponent, '100%', '90%', 'fullScreen').subscribe(result => {\n\n if (result === true) {\n this.getDatastores();\n\n // this.selfService.addDataStore();\n }\n });\n }\n openEditModal(datastore: any, onlyPreview: boolean) {\n let data = {\n type: 'update',\n data: datastore,\n onlyPreview: onlyPreview\n }\n // this.modalService.openModal(data, DatastoreFormComponent, 'auto', '1000px').subscribe(result => {\n\n // this.getDatastores();\n // });\n this.openDataStoreComponent(data, onlyPreview)\n\n }\n\n\n getDatastores() {\n this.displayLoading = true;\n this.selfService.getDataList().pipe(\n tap(res => this.dataList = res),\n tap(res => console.log('fi')),\n concatMap(res => this.dataStoreService.getDataSourceForUser())\n ).subscribe(result => {\n this.dataStores = result\n\n this.dataList.map(item => {\n var commonElement = this.dataStores.find(x => x.dataStoreId == item.userDataId)\n if (commonElement) {\n Object.assign(commonElement, item)\n }\n })\n\n this.userId = localStorage?.getItem('userId');\n let filteredDataStore = this.dataStores.filter(dataStore => dataStore.ownerId === this.userId && dataStore.isSelfService == 1);\n this.allDataStores = filteredDataStore\n this.dataStores = filteredDataStore.map(item => {\n return { ...item, users: item.users ? JSON.parse(item.users) : '' }\n });\n\n this.displayLoading = false;\n this.showNoDataStores = true;\n\n\n this.updatePagination();\n })\n\n }\n\n updatePagination() {\n this.totalPages = Math.ceil(this.dataStores.length / this.itemsPerPage);\n this.currentPage = 0;\n this.paginatedDataStores = this.dataStores.slice(\n this.currentPage * this.itemsPerPage,\n (this.currentPage + 1) * this.itemsPerPage\n );\n }\n\n paginateDataStores(event: any) {\n this.currentPage = event.pageIndex;\n this.paginatedDataStores = this.dataStores.slice(\n event.pageIndex * event.pageSize,\n (event.pageIndex + 1) * event.pageSize\n );\n }\n\n deleteDataStore(dataStore: DataStore) {\n this.modalService.openDeleteConfirm().subscribe(result => {\n if (result === true) {\n this.spinner.show();\n this.dataStoreService.deleteDataStore(dataStore).subscribe(result => {\n this.spinner.hide();\n this.getDatastores();\n });\n }\n });\n }\n\n updateDatastoreUser(datastore: DataStore) {\n this.formData = new FormData();\n this.formData.append('File', '')\n this.formData.append('Name', datastore.name)\n this.formData.append('Token', this.authService.getToken())\n this.formData.append('NodeId', '0')\n this.formData.append('append', '0')\n this.userData.UserDataId = datastore.dataStoreId;\n this.userData.Name = datastore.name\n this.userData.UserId = localStorage.getItem('userId')\n this.userData.Columns = this.formDatacolumns\n this.userData.Users = datastore.users\n\n this.formData.append('UserData', JSON.stringify(this.userData))\n\n this.selfService.addDataStore(this.formData).subscribe(result => {\n if (result) {\n this.coreService.showSuccessMessage(result);\n this.getDatastores();\n }\n\n })\n }\n\n\n\n\n filterData(filteredDatas: DataStore[]) {\n this.dataStores = filteredDatas\n\n this.updatePagination();\n }\n\n // getRouteElements() {\n // return [{ path: \"/selfservice\", name: \"Self Service Home\" }, { path: \"/selfservice/data-store-list\", name: \"My Datas\" }]\n // }\n openShareForm(selected: DataStore) {\n \n var data = {\n selectedUsers: selected.users,\n title: 'UserCard.ShareDataStore'\n }\n this.modalService.openModalBeforeClosed(data, SharePersonFormComponent, '90%', '40%', 'responsive-modal').subscribe(result => {\n\n if (result.length > 0) {\n var datastore = { ...selected, users: JSON.stringify(result) }\n this.updateDatastoreUser(datastore)\n }else{\n var datastore = { ...selected, users: '[]' }\n this.updateDatastoreUser(datastore)\n }\n\n });\n }\n\n actionButtonClick(data: any) {\n if (data.type == 'edit')\n this.openEditModal(data.data, false)\n else if (data.type == 'delete')\n this.deleteDataStore(data.data)\n else if (data.type == 'share')\n this.openShareForm(data.data)\n else if (data.type == \"preview\") {\n this.openEditModal(data.data, true)\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

{{ 'DataStorePage.NoData' | translate }}

\n

{{ 'DataStorePage.UploadData' | translate }}

\n
\n \n
\n\n
\n
","import { Component, Inject, OnInit, ViewChild } from '@angular/core';\nimport { MatDialogRef, MAT_DIALOG_DATA } from '@angular/material/dialog';\nimport { AgGridAngular } from 'ag-grid-angular';\nimport { CellClickedEvent, ColDef, GridReadyEvent } from 'ag-grid-community';\nimport * as XLSX from 'xlsx';\nimport { Observable } from 'rxjs';\nimport { HttpClient } from '@angular/common/http';\nimport { MatStepper } from '@angular/material/stepper';\nimport { FormGroup, UntypedFormGroup } from '@angular/forms';\n\n@Component({\n selector: 'app-self-service-datastore-file',\n templateUrl: './self-service-datastore-file.component.html',\n styleUrls: ['./self-service-datastore-file.component.scss']\n})\nexport class SelfServiceDatastoreFileComponent implements OnInit {\n @ViewChild('stepper') private formStepper: MatStepper;\n\n firstForm: FormGroup;\n secondForm: FormGroup;\n thirdForm: FormGroup;\n modalTitle: string;\n showFileTypeSelection: boolean = true;\n showFileSelectModal: boolean = false;\n showHandsoneTable: boolean = false;\n fileAccept: string;\n file: File;\n formData = new FormData();\n fileName: string;\n rowData: any[];\n\n constructor(\n public dialogRef: MatDialogRef,\n @Inject(MAT_DIALOG_DATA) public data: {\n title: string,\n Buttons: string[],\n text: string\n },\n private httpClient: HttpClient\n ) { }\n\n ngOnInit(): void {\n // this.modalTitle = this.data.title;\n }\n\n // Each Column Definition results in one Column.\n public columnDefs: ColDef[] = [];\n\n // DefaultColDef sets props common to all Columns\n public defaultColDef: ColDef = {\n sortable: true,\n filter: true,\n };\n\n // Example load data from server\n onGridReady(params: GridReadyEvent) {\n params.api.sizeColumnsToFit();\n }\n\n // Example of consuming Grid Event\n onCellClicked(e: CellClickedEvent): void {\n console.log('cellClicked', e);\n }\n\n openFileSelect(fileType: string): void {\n this.fileAccept = fileType;\n this.showFileTypeSelection = false;\n this.showFileSelectModal = true;\n }\n\n onFileChange(event: any): void {\n this.file = event.target.files[0];\n this.fileName = event.target.files[0].name;\n }\n\n getFileExtension(fileName: string): string {\n const extension = fileName.split('.').pop();\n return extension.toLowerCase();\n }\n\n uploadFile(): void {\n const extension = this.getFileExtension(this.fileName);\n \n if (this.file && extension) {\n if (extension === 'xls' || extension === 'xlsx') {\n const reader = new FileReader();\n reader.onload = (event) => {\n const data = reader.result as ArrayBuffer;\n const arrayBuffer = new Uint8Array(data);\n const workbook = XLSX.read(arrayBuffer, { type: 'array' });\n \n const jsonData = XLSX.utils.sheet_to_json(workbook.Sheets[workbook.SheetNames[0]]);\n \n this.columnDefs = this.generateColumnDefs(jsonData[0]);\n this.rowData = jsonData;\n \n this.showFileSelectModal = false;\n this.showHandsoneTable = true;\n };\n reader.readAsArrayBuffer(this.file);\n } else if (extension === 'csv') {\n const reader = new FileReader();\n reader.onload = (event) => {\n const csvData = reader.result as string;\n const jsonData = this.convertCsvToJson(csvData);\n \n this.columnDefs = this.generateColumnDefs(jsonData[0]);\n this.rowData = jsonData;\n \n this.showFileSelectModal = false;\n this.showHandsoneTable = true;\n };\n reader.readAsText(this.file);\n } else if (extension === 'json') {\n const reader = new FileReader();\n reader.onload = (event) => {\n const jsonData = JSON.parse(reader.result as string);\n \n this.columnDefs = this.generateColumnDefs(jsonData[0]);\n this.rowData = jsonData;\n \n this.showFileSelectModal = false;\n this.showHandsoneTable = true;\n };\n reader.readAsText(this.file);\n } else if (extension === 'txt') {\n const reader = new FileReader();\n reader.onload = (event) => {\n const txtData = reader.result as string;\n \n // TXT ile ilgili işlemler ?\n \n this.showFileSelectModal = false;\n this.showHandsoneTable = true;\n };\n reader.readAsText(this.file);\n } else if (extension === 'xml') {\n const reader = new FileReader();\n reader.onload = (event) => {\n const xmlData = reader.result as string;\n \n // XML ile ilgili işlemler ?\n \n this.showFileSelectModal = false;\n this.showHandsoneTable = true;\n };\n reader.readAsText(this.file);\n } else {\n // Unsupported file extension\n console.error('Unsupported file extension.');\n }\n } else {\n // File or extension is missing\n console.error('File or extension is missing.');\n }\n }\n\n generateColumnDefs(data: any): ColDef[] {\n if (data) { // Add null check here\n return Object.keys(data).map((key) => {\n return { field: key };\n });\n } else {\n return [];\n }\n }\n convertCsvToJson(csvData: string): any[] {\n const lines = csvData.split('\\n');\n const result = [];\n const headers = lines[0].split(',');\n\n for (let i = 1; i < lines.length; i++) {\n const obj = {};\n const currentLine = lines[i].split(',');\n\n for (let j = 0; j < headers.length; j++) {\n obj[headers[j]] = currentLine[j];\n }\n\n result.push(obj);\n }\n\n return result;\n }\n\n\n}","\n\n \n Step 1\n
\n
\n

Please select the file type you want to open.

\n
\n\n
\n
    \n
  • \n \"let's\n

    XLS/XLSX

    \n
  • \n\n
  • \n \"The\n

    JSON

    \n
  • \n\n
  • \n \"Jane\n

    CSV

    \n
  • \n
  • \n \"The\n

    TXT

    \n
  • \n\n
  • \n \"Jane\n

    XML

    \n
  • \n
\n
\n
\n\n
\n\n\n Step 2\n
\n
\n

Please choose a file.

\n
\n \n \n
\n\n
\n\n
\n \n
\n
\n
\n\n\n Step 3\n
\n \n \n
\n
\n
","import { Component, OnInit, ViewChild, Inject, ElementRef } from '@angular/core';\nimport { FormBuilder, FormGroup, Validators } from '@angular/forms';\nimport { AuthService } from 'src/app/services/auth/auth.service';\nimport { ModalService } from 'src/app/services/modal/modal.service';\nimport { SelfService } from 'src/app/services/self-service/self.service';\nimport * as XLSX from 'xlsx';\nimport { CoreService } from 'src/app/services/core/core.service';\nimport { SelfServiceDatastoreFileComponent } from '../self-service-datastore-file/self-service-datastore-file/self-service-datastore-file.component';\n\nimport { CellClickedEvent, ColDef, GridReadyEvent } from 'ag-grid-community';\nimport { MatStepper } from '@angular/material/stepper';\nimport { MAT_DIALOG_DATA, MatDialogRef, MatDialog } from '@angular/material/dialog';\nimport { DataStore } from 'src/app/models/responses/dataStoreResponse';\nimport { TranslateService } from '@ngx-translate/core';\nimport { ColumnSelectDialogComponent } from '../column-select-dialog/column-select-dialog.component';\n\n\n\n@Component({\n selector: 'app-self-service-datastore-form',\n templateUrl: './self-service-datastore-form.component.html',\n styleUrls: ['./self-service-datastore-form.component.scss']\n})\nexport class SelfServiceDatastoreFormComponent implements OnInit {\n @ViewChild('stepper') stepper: MatStepper;\n name = 'Bussion Analytics XLSX TO JSON CONVERTER';\n willDownload = false;\n @ViewChild('fileInput', { static: false }) fileInput: ElementRef;\n modalTitle: string;\n showFileTypeSelection: boolean = true;\n showFileSelectModal: boolean = false;\n showHandsoneTable: boolean = false;\n public columnDefs: ColDef[] = [];\n rowData: any\n warntext: string = ''\n selectedCardIndex: number = -1;\n fileName: string = null;\n file: File;\n formData = new FormData()\n columnTypes: string[] = ['String', 'Number', 'DateTime'];\n columnTypeForm: FormGroup;\n columns: { FieldName: string, FieldType: string, FieldFilter: string }[] = [];\n userData = {\n Status: 1,\n UserDataId: \"\",\n NodeId: \"\",\n Name: \"\",\n CollectionName: \"\",\n DataDefinition: \"\",\n UserId: \"\",\n Columns: [],\n };\n\n fileAccept: string;\n acceptFileTypes: any[] = [\n { index: 0, title: 'XLS/XLSX', type: '.xlsx, .xls', img: '../../../../assets/images/xls.png' },\n { index: 1, title: 'JSON', type: '.json', img: '../../../../assets/images/json-3.png' },\n { index: 2, title: 'TEXT', type: '.txt', img: '../../../../assets/images/txt-file-symbol.png' },\n { index: 3, title: 'CSV', type: '.csv', img: '../../../../assets/images/csv-4.png' },\n { index: 4, title: 'XML', type: '.xml', img: '../../../../assets/images/xml-file-format-symbol.png' }\n\n\n ]\n public defaultColDef: ColDef = {\n sortable: true,\n filter: true,\n minWidth: 160\n };\n\n showLoading: boolean = false\n\n constructor(\n private selfService: SelfService,\n private authService: AuthService,\n private dialogRef: MatDialogRef,\n private modalService: ModalService,\n private coreService: CoreService,\n private formBuilder: FormBuilder,\n private translate: TranslateService,\n private dialog: MatDialog,\n @Inject(MAT_DIALOG_DATA) public data: {\n type: string,\n dataStore: any,\n onlyPreview: boolean\n },\n\n ) {\n this.columnTypeForm = this.formBuilder.group({\n type: ['']\n });\n }\n\n ngOnInit(): void {\n\n\n this.dataStoreForm = this.formBuilder.group({\n FileName: ['', Validators.required],\n append: ['', Validators.required],\n nodeId: [''],\n ApiKey: ['']\n });\n if (this.data.dataStore) {\n this.dataStoreForm.patchValue({\n FileName: this.data.dataStore.name,\n append: '0',\n nodeId: this.data.dataStore.nodeId,\n ApiKey: this.data.dataStore.apiKey\n })\n this.userData.UserDataId = this.data.dataStore.dataStoreId\n if (this.data.dataStore?.sampleData)\n this.rowData = this.data.dataStore?.sampleData\n\n \n if (this.rowData)\n this.columnDefs = Object.keys(this.rowData[0]).map((key) => {\n var icon = 'String'\n if (this.data.dataStore.columns.find(x => x.fieldName === key)?.fieldType)\n icon = this.data.dataStore.columns.find(x => x.fieldName === key)?.fieldType.toLowerCase().includes('string') ? 'String' : this.data.dataStore.columns.find(x => x.fieldName === key)?.fieldType.toLowerCase().includes('number') ? 'Number' : 'DateTime'\n return {\n headerName: key,\n sortable: true,\n headerComponentParams: {\n template: `\n
\n \n \n ${key}\n \n
`},\n field: key\n };\n });\n\n }\n\n\n }\n\n\n // nextStep() {\n // const currentIndex = this.stepper.selectedIndex;\n // const nextIndex = currentIndex + 1;\n // this.stepper.selectedIndex = nextIndex;\n\n // }\n nextStep() {\n const currentIndex = this.stepper.selectedIndex;\n const nextIndex = currentIndex + 1;\n\n if (currentIndex === 0) {\n if (this.dataStoreForm.controls.FileName.invalid || this.dataStoreForm.controls.append.invalid) {\n this.coreService.showFormFillError(this.translate.instant('ErrorMessages.FillFields'))\n return;\n }\n }\n if (this.stepper.selectedIndex === 1) {\n if (!this.data.dataStore) {\n if (!this.file) {\n this.coreService.showFormFillError(this.translate.instant('DataStoreFormPage.ChooseFileTypeParagraph'));\n return;\n }\n }\n\n\n }\n\n\n if (nextIndex < this.stepper.steps.length) {\n this.stepper.selectedIndex = nextIndex;\n }\n }\n\n\n backStep() {\n const currentIndex = this.stepper.selectedIndex;\n const prevIndex = currentIndex - 1;\n if (prevIndex >= 0) {\n this.stepper.selectedIndex = prevIndex;\n }\n }\n\n saveDataStoreFile() {\n if (!this.dataStoreForm.valid)\n this.coreService.showFormFillError(this.translate.instant('ErrorMessages.FillFields'))\n\n else {\n if (this.file)\n this.formData.append('File', this.file)\n\n this.formData.append('Name', this.dataStoreForm.value.FileName)\n this.formData.append('Token', this.authService.getToken())\n this.formData.append('NodeId', '')\n this.formData.append('append', this.dataStoreForm.value.append)\n if (this.data.type == 'update') {\n this.userData.UserDataId = this.data.dataStore.dataStoreId;\n if (!this.file)\n this.formData.append('File', '')\n }\n\n this.userData.Name = this.dataStoreForm.value.FileName\n this.userData.UserId = localStorage.getItem('userId')\n\n this.userData.Columns = this.columnDefs.map((colDef: ColDef) => {\n const columnData: {\n FieldFilter: Number\n FieldName: string\n FieldType: string\n } = this.userData.Columns.find(col => col.FieldName === colDef.field);\n\n var fieldType = ''\n if (columnData) {\n\n if (columnData.FieldType.includes('System')) {\n fieldType = columnData.FieldType\n } else {\n fieldType = 'System.' + columnData.FieldType\n }\n } else {\n fieldType = 'System.String'\n }\n\n return { FieldName: colDef.field, FieldType: fieldType, FieldFilter: 1 };\n });\n\n\n // if (!this.file)\n this.formData.append('UserData', JSON.stringify(this.userData))\n this.addDatastoreAsFile()\n\n }\n\n }\n\n\n getCardStyle(index: number) {\n return index === this.selectedCardIndex ? 'selected' : '';\n }\n\n\n\n upsertDataStore() {\n }\n dataStoreForm: FormGroup;\n\n\n\n\n openFileSelect(fileType: string, index: number): void {\n this.fileAccept = fileType;\n this.showFileTypeSelection = false;\n this.showFileSelectModal = true;\n this.selectedCardIndex = index;\n this.fileInput.nativeElement.accept = fileType\n\n this.fileInput.nativeElement.click();\n }\n\n\n\n // DefaultColDef sets props common to all Columns\n\n\n onFileChange(event: any): void {\n this.file = event.target.files[0];\n this.fileName = event.target.files[0].name;\n\n this.formData = new FormData()\n this.uploadFile()\n }\n\n\n\n\n uploadFile(): void {\n const extension = this.getFileExtension(this.fileName);\n this.userData.Name = this.dataStoreForm.value.FileName\n this.userData.UserId = localStorage.getItem('userId')\n\n if (this.file && extension) {\n if (extension === 'xls' || extension === 'xlsx') {\n const reader = new FileReader();\n reader.onload = (event) => {\n const data = reader.result as ArrayBuffer;\n const arrayBuffer = new Uint8Array(data);\n const workbook = XLSX.read(arrayBuffer, { type: 'array' });\n\n const jsonData = XLSX.utils.sheet_to_json(workbook.Sheets[workbook.SheetNames[0]]);\n\n\n var types = Object.keys(jsonData[0]).map(item => {\n return { key: item, type: typeof jsonData[0][item] }\n })\n\n this.columnDefs = this.generateColumnDefs(jsonData[0], types);\n this.rowData = jsonData;\n\n this.showFileSelectModal = false;\n this.showHandsoneTable = true;\n\n const worksheetName: string = workbook.SheetNames[0];\n const worksheet: XLSX.WorkSheet = workbook.Sheets[worksheetName];\n\n\n // this.userData.Columns = Object.keys(jsonData[0]).map(column => {\n // return { FieldName: column, FieldType: 'System.String', FieldFilter: 1 }\n // });\n // this.userData.Columns = JSON.stringify(jsonData);\n // const userdata = JSON.stringify(jsonData);\n // this.formData.append('UserData', JSON.stringify(this.userData))\n\n\n };\n reader.readAsArrayBuffer(this.file);\n } else if (extension === 'csv') {\n const reader = new FileReader();\n reader.onload = (event) => {\n const csvData = reader.result as string;\n var splitbracket = this.FindDelimiter(csvData)\n \n const jsonData = this.convertCsvToJson(csvData, splitbracket);\n \n\n var types = Object.keys(jsonData[0]).map(item => {\n return { key: item, type: 'System.String' }\n })\n\n this.userData.Columns = Object.keys(jsonData[0]).map(column => {\n return { FieldName: column, FieldType: types.find(x => x.key == column).type, FieldFilter: 1 }\n });\n // this.formData.append('UserData', JSON.stringify(this.userData))\n this.columnDefs = this.generateColumnDefs(jsonData[0], types);\n this.rowData = jsonData;\n // this.rowData = csvData;\n this.showFileSelectModal = false;\n this.showHandsoneTable = true;\n\n };\n reader.readAsText(this.file);\n\n } else if (extension === 'json') {\n const reader = new FileReader();\n reader.onload = (event) => {\n const jsonData = JSON.parse(reader.result as string);\n\n // this.formData.append('UserData', JSON.stringify(this.userData))\n\n var types = Object.keys(jsonData[0]).map(item => {\n return { key: item, type: 'System.String' }\n })\n this.userData.Columns = Object.keys(jsonData[0]).map(column => {\n return { FieldName: column, FieldType: types.find(x => x.key == column).type, FieldFilter: 1 }\n });\n\n this.columnDefs = this.generateColumnDefs(jsonData[0], types);\n this.rowData = jsonData;\n\n this.showFileSelectModal = false;\n this.showHandsoneTable = true;\n };\n\n reader.readAsText(this.file);\n } else if (extension === 'txt') {\n const reader = new FileReader();\n reader.onload = (event) => {\n const txtData = reader.result as string;\n\n // TXT ile ilgili işlemler ?\n\n this.showFileSelectModal = false;\n this.showHandsoneTable = true;\n };\n reader.readAsText(this.file);\n } else if (extension === 'xml') {\n const reader = new FileReader();\n reader.onload = (event) => {\n const xmlData = reader.result as string;\n\n // XML ile ilgili işlemler ?\n\n this.showFileSelectModal = false;\n this.showHandsoneTable = true;\n };\n reader.readAsText(this.file);\n } else {\n // Unsupported file extension\n console.error('Unsupported file extension.');\n }\n } else {\n // File or extension is missing\n console.error('File or extension is missing.');\n }\n\n }\n\n private FindDelimiter(stringText: string) {\n var index = 0;\n var max = 0;\n var delimiterlist = [\",\", \";\", \" \", \"\\t\", \"|\", \"-\"];\n for (var i = 0; i < delimiterlist.length; i++) {\n if (stringText.split(delimiterlist[i]).length > max) {\n index = i;\n max = stringText.split(delimiterlist[i]).length;\n }\n\n\n }\n return delimiterlist[index];\n }\n\n onGridReady(params: GridReadyEvent) {\n params.api.sizeColumnsToFit();\n }\n\n\n onCellClicked(event: CellClickedEvent): void {\n\n if (this.data.type == 'update') {\n return;\n }\n const column = event.colDef?.field;\n const oldValue = event.value;\n const columnType = event.colDef['fieldType']\n\n var data = {\n column,\n oldValue,\n types: this.columnTypes,\n columnType\n }\n\n const dialogRef = this.dialog.open(ColumnSelectDialogComponent, {\n data: data\n });\n\n dialogRef.afterClosed().subscribe((newType: string) => {\n if (newType) {\n const columnDefs = this.columnDefs.map((colDef: ColDef) => {\n if (colDef.field === column) {\n return {\n ...colDef,\n type: newType,\n sortable: true,\n minWidth: 160,\n headerComponentParams: {\n template: `\n
\n \n \n ${colDef.field}\n \n
`},\n\n };\n }\n return colDef;\n });\n this.columnDefs = columnDefs;\n\n const columnData = this.userData.Columns.find(col => col.FieldName === column);\n\n if (columnData) {\n columnData.FieldType = newType;\n } else {\n this.userData.Columns.push({ FieldName: column, FieldType: newType, FieldFilter: 1 });\n }\n }\n });\n }\n\n\n getFileExtension(fileName: string): string {\n const extension = fileName.split('.').pop();\n return extension.toLowerCase();\n }\n\n\n generateColumnDefs(data: any, types): ColDef[] {\n return Object.keys(data).map((key) => {\n var icon = 'String'\n icon = types.find(x => x.key == key)?.type?.toLowerCase().includes('string') ? 'String' : types.find(x => x.key == key)?.type?.toLowerCase().includes('number') ? 'Number' : 'DateTime'\n return {\n field: key,\n minWidth: 160,\n fieldType: icon,\n headerComponentParams: {\n template: `\n
\n \n \n ${key}\n \n
`},\n };\n });\n }\n\n addDatastoreAsFile() {\n this.showLoading = true\n this.selfService.addDataStore(this.formData).subscribe(\n (response) => {\n this.dialogRef.close(true)\n this.showLoading = false\n this.coreService.showSuccessMessage(response)\n // Dosya yükleme işlemi başarılı \n\n\n },\n (error) => {\n // Dosya yükleme işlemi sırasında hata oluştu\n this.showLoading = false\n console.error(error);\n this.coreService.showErrorMessage(error)\n }\n );\n }\n\n\n\n convertCsvToJson(csvData: string, delimiter: string): any[] {\n const lines = csvData.split('\\n');\n const result = [];\n const headers = lines[0].replace(/\\r/g, '').split(delimiter);\n\n for (let i = 1; i < lines.length; i++) {\n const obj = {};\n const currentLine = lines[i].split(delimiter);\n\n for (let j = 0; j < headers.length; j++) {\n var cleanedData = currentLine[j]\n if (currentLine[j]?.includes('\\r')) {\n cleanedData = currentLine[j].replace(/\\r/g, '');\n }\n obj[headers[j]] = cleanedData;\n }\n\n result.push(obj);\n }\n\n return result;\n }\n\n\n}","\n\n\n\n\n\n
\n \n \n \n \n
\n\n
\n
\n
","import { Component, Inject, Input, OnDestroy, OnInit } from '@angular/core';\nimport { UntypedFormControl, UntypedFormGroup, Validators } from '@angular/forms';\nimport { MAT_DIALOG_DATA } from '@angular/material/dialog';\nimport { ActivatedRoute, Router } from '@angular/router';\nimport { CompactType, DisplayGrid, GridType, GridsterConfig, GridsterItem } from 'angular-gridster2';\nimport { Dashboard, Dimension } from 'src/app/models/responses/dashboardResponse';\nimport { BussionFilterDefinition } from 'src/app/models/responses/dataStoreResponse';\nimport { WidgetFormComponent } from 'src/app/pages/manage/dashboard/dashboard-designer/widget-form/widget-form.component';\nimport { DashboardService } from 'src/app/services/dashboard/dashboard.service';\nimport { ModalService } from 'src/app/services/modal/modal.service';\nimport { ScriptLoaderService } from 'src/app/services/script-loader/script-loader.service';\nimport { SelfServiceDashboardFormComponent } from '../self-service-dashboard-form/self-service-dashboard-form.component';\nimport { ShareFormComponent } from '../modals/share-form/share-form.component';\nimport { DesignerContiner, GridsterWidget, Widget } from 'src/app/models/responses/widgetLibraryResponse';\nimport { deleteCssFile } from 'src/app/core/utils';\nimport { CoreService } from 'src/app/services/core/core.service';\nimport { ExpandedWidgetComponent } from '../modals/expanded-widget/expanded-widget.component';\nimport { GlobalFunctionService } from 'src/app/services/global-function/global-function.service';\nimport { DeviceDetectorService } from 'ngx-device-detector';\nimport { AvailableWidgetSelectionComponent } from '../available-widget-selection/available-widget-selection.component';\nimport { TranslateService } from '@ngx-translate/core';\n\n@Component({\n selector: 'app-self-service-designer',\n templateUrl: './self-service-designer.component.html',\n styleUrls: ['./self-service-designer.component.scss']\n})\nexport class SelfServiceDesignerComponent implements OnInit, OnDestroy {\n @Input() data: {\n type: string,\n dashboard: Dashboard\n }\n\n\n dashboard: Dashboard = {\n dashboardId: \"\",\n title: \"\",\n icon: \"\",\n auditEnabled: 0,\n order: 1,\n dashboardStatus: 0,\n description: \"\",\n layoutConfig: \"\",\n domain: \"\",\n access: 0,\n owner: \"\",\n creationDate: \"\",\n updatedBy: \"\",\n updateDate: \"\",\n colorPalette: \"\",\n contentLanguage: '',\n filter: [],\n widgets: [],//Widget,\n dimensions: [], //Dimension,\n messages: [], //BussionMessage\n autoRefresh: 0,\n refreshInterval: 0,\n isMainDashboard: 0,\n hideBorders: \"false\",\n gridSize: 0,\n tags: \"\",\n css: \"\",\n ownerId: '',\n users: '',\n hideAdvancedQueryPanel: 0,\n layout: '',\n colors: []\n\n };\n widget: Widget = {\n visualComponentId: \"\",\n title: \"\",\n subTitle: \"\",\n footNote: \"\",\n access: 1,\n dateGroup: 0,\n customizeCode: 0,\n type: \"\",\n dataStoreId: \"\",\n owner: null,\n includeZeroValues: 1,\n domain: \"\",\n limitData: \"500\",\n code: \"\",\n sharedData: null,\n sort: {\n sortField: \"\",\n sortOrder: \"\",\n sortType: \"\"\n },\n colors: {\n type: 0,\n colors: [],\n onlyWidget: 0\n },\n dimensions: [],\n measures: [],\n filter: [],\n widgetParameters: [],\n dimensionsData: [],\n layout: {\n cols: 1,\n rows: 1,\n x: 0,\n y: 0,\n designerContainer: null\n },\n mobileLayout: {\n cols: 0,\n rows: 1,\n x: 0,\n y: 0,\n designerContainer: null\n },\n freezeFilter: 0,\n drillDownDashboard: '',\n drillDownLink: '',\n drillDown: {\n dashboard: '',\n dashboardFilter: 0,\n height: 0,\n width: 0,\n link: '',\n openerMethod: '',\n widgetFilter: 0,\n shareKey: ''\n\n },\n config: [],\n params: {},\n calculatedFields: [],\n isFilter: 0,\n offSet: -1,\n widgetQuery: '',\n ignoreFilterList: [],\n disableInMemoryCache: 0,\n widgetJoin: [],\n tags: []\n };\n\n firstForm: UntypedFormGroup;\n secondForm: UntypedFormGroup;\n thirdForm: UntypedFormGroup;\n loadingWidgets: boolean = false\n options: GridsterConfig;\n dashboardWidgets: Array = [];\n isShownFilter: boolean = false;\n private widgetList = [];\n dashboardId: string = \"\";\n pageForm: UntypedFormGroup;\n selectedDashboardId: string\n domain: string = null;\n visibletoggle: boolean = false\n\n routeList = [{ path: \"/selfservice\", name: this.translate.instant(\"SelfServicePage.SelfServiceHome\") }, { path: \"/selfservice/dashboard-list\", name: this.translate.instant(\"SelfServicePage.DashboardList\") }, { path: \"/selfservice\", name: this.translate.instant(\"SelfServicePage.DashboardDesigner\") }]\n\n constructor(\n private activerouter: ActivatedRoute,\n private router: Router,\n private dashboardService: DashboardService,\n private modalService: ModalService,\n private translate: TranslateService,\n private scriptLoader: ScriptLoaderService,\n private coreService: CoreService,\n private deviceService: DeviceDetectorService,\n private globalFunctionService: GlobalFunctionService\n ) { }\n ngOnInit(): void {\n // this.pageForm = new UntypedFormGroup({\n // title: new UntypedFormControl(this.dashboard.title, [Validators.required]),\n // description: new UntypedFormControl(this.dashboard.description, [Validators.required]),\n // });\n this.visibletoggle = this.deviceService.isTablet() || this.deviceService.isMobile() ? true : false\n // if (!this.visibletoggle) {\n // this.options.draggable.enabled = true\n // this.options?.api?.optionsChanged()\n // }\n\n this.customizeDashboard()\n if (this.activerouter.snapshot.paramMap.get('dashboardId') || this.data?.dashboard?.dashboardId)\n this.selectedDashboardId = this.activerouter.snapshot.paramMap.get('dashboardId') ?? this.data?.dashboard?.dashboardId\n if (this.selectedDashboardId) {\n this.getDashboard(this.selectedDashboardId)\n this.getDashboardsWidgets(this.selectedDashboardId)\n }\n\n\n this.domain = this.dashboard.domain\n this.globalFunctionService.getGlobalFunctions(this.domain).subscribe(result => {\n result.forEach(f => {\n this.scriptLoader.runGlobalFunction(f.code);\n });\n })\n\n\n }\n\n ngOnDestroy(): void {\n if (this.selectedDashboardId)\n deleteCssFile(this.selectedDashboardId)\n }\n\n openAvailableWidgetScreen() {\n let data = {\n saveselectedWidgets: (widgets) => this.saveselectedWidgets(widgets)\n }\n this.modalService.openModal(data, AvailableWidgetSelectionComponent, '90%', '90%', 'overflow-hidden').subscribe(result => {\n\n\n });\n }\n\n saveselectedWidgets(items: GridsterWidget[]) {\n this.dashboardWidgets = this.dashboardWidgets.concat(items)\n var widgetsLocal = items.map(item => {\n return item.designerContainer.widget\n })\n this.widgets = this.widgets.concat(widgetsLocal)\n\n\n this.dashboardWidgets.map(item => {\n this.createWidget(item.designerContainer);\n\n })\n items.map(async (item) => {\n //Bu servisi çağıracağız\n await this.dashboardService.upsertWidgetToDashboard(item.designerContainer.widget, this.selectedDashboardId).subscribe(result => {\n\n });\n })\n this.saveDashboardLayout()\n\n\n }\n\n\n openSaveDashboardModal() {\n let data = {\n widget: this.widgets,\n type: this.selectedDashboardId ? 'update' : 'create',\n dashboard: this.dashboard\n }\n\n this.modalService.openModal(data, SelfServiceDashboardFormComponent, 'auto', '50%').subscribe(result => {\n if (result) {\n if (!this.selectedDashboardId) {\n this.dashboard.dashboardId = result.object\n this.router.navigate(['selfservice/self-service-design', this.dashboard.dashboardId]);\n }\n this.saveDashboardLayout();\n }\n });\n\n\n }\n\n\n\n saveDashboardLayout() {\n // this.upsertWidget();\n this.dashboardService.updateDashboardLayout(this.dashboard.dashboardId, this.dashboardWidgets, 0).subscribe(result => {\n if (result) {\n this.coreService.showSuccessMessage(result);\n }\n });\n }\n\n\n // upsertWidget() {\n // this.dashboard.widgets = this.dashboardWidgets.map(item => item.designerContainer.widget);\n // this.dashboardService.upsertDashboard(this.dashboard).subscribe(result => {\n // if (result) {\n // this.coreService.showSuccessMessage(result.message);\n // }\n // });\n // }\n\n\n openDashboardDimensions() {\n this.isShownFilter = true;\n }\n closeFilterForm(event: any) {\n this.isShownFilter = false;\n }\n\n saveFilter(newFilters: BussionFilterDefinition[]) {\n this.closeFilterForm(null);\n this.dashboard.filter = newFilters;\n this.dashboard.widgets = this.dashboardWidgets\n // this.dashboardService.upsertDashboard(this.dashboard).subscribe(result => {\n // this.getDashboard(this.data.dashboard.dashboardId);\n // this.dashboardWidgets = [];\n // this.getDashboardsWidgets(this.data.dashboard.dashboardId);\n // })\n }\n private getDashboardsWidgets(dashboardId: string) {\n this.dashboardWidgets = []\n this.loadingWidgets = true\n this.dashboardService.getWidgetsForDesigner(dashboardId).subscribe(result => {\n this.loadingWidgets = false\n this.widgetList = result\n\n if (result)\n this.widgets = result.map(item => {\n return item.widget\n });\n\n result.forEach(widget => {\n this.dashboardWidgets.push({ cols: widget.widget.layout.cols, rows: widget.widget.layout.rows, y: widget.widget.layout.y, x: widget.widget.layout.x, designerContainer: widget });\n this.createWidget(widget);\n })\n });\n }\n\n\n private getDashboard(dashboardId: string) {\n this.dashboardService.getDashboard(dashboardId).subscribe(result => {\n\n this.dashboard = result;\n this.options.gridType = GridType[this.dashboard.layout]\n // this.options.api.optionsChanged()\n\n if (this.dashboard.css !== \"\") {\n // this.cerateCssFile(this.dashboard.css);\n }\n // this.options.minCols = this.dashboard?.gridSize\n // this.options.minRows = this.dashboard?.gridSize\n // this.options?.api?.optionsChanged()\n });\n }\n\n openShareForm(shareData: any) {\n let data = {\n objectType: shareData.objectType,\n objectId: shareData.objectId,\n dashboardId: this.dashboard.dashboardId,\n filter: this.dashboard.filter,\n // function: (filters) => this.saveFilterFromShares(filters)\n };\n\n this.modalService.openModal(data, ShareFormComponent, 'auto', '600px').subscribe(result => {\n if (result) {\n\n }\n })\n }\n\n\n\n\n widgets: Widget[] = []\n\n openWidgetForm(event: any) {\n let data = {\n type: event.type,\n widget: event.widget,\n dashboardId: this.dashboard?.dashboardId,\n widgetList: this.widgetList\n }\n this.modalService.openModal(data, WidgetFormComponent, '100%', '90%').subscribe((result: { type: string, widget: DesignerContiner }) => {\n\n if (result) {\n if (!result.widget?.widgetId)\n result.widget.widgetId = Date.now().toString();\n\n\n\n if (result.type == 'update') {\n let index = this.dashboardWidgets.findIndex(w => w.designerContainer.widgetId == event.widget.widgetId);\n if (index !== -1) {\n // this.dashboardWidgets[index].designerContainer = result.widget;\n this.dashboardWidgets.splice(index, 1);\n this.saveDashboardLayout();\n\n }\n }\n setTimeout(() => {\n\n\n let layout = result.widget.widget.layout;\n this.widgets.push(result.widget.widget)\n this.dashboardWidgets.push({ cols: layout.cols, rows: layout.rows, y: layout.y, x: layout.x, designerContainer: result.widget });\n\n this.createWidget(result.widget);\n // this.saveDashboard();\n }, 1000);\n\n // this.getDashboardsWidgets(this.selectedDashboardId)\n }\n });\n }\n private createWidget(widgetResponse: DesignerContiner) {\n this.scriptLoader.addScriptFileToHead(widgetResponse.widgetLibraries);\n this.scriptLoader.runWidgetCode(widgetResponse);\n }\n\n DragModeChange() {\n this.options.draggable.enabled = !this.options.draggable.enabled\n this.options?.api?.optionsChanged()\n\n }\n\n\n private customizeDashboard() {\n this.options = {\n responsiveOptions: [\n {\n breakpoint: 'sm',\n options: {\n maxCols: 1,\n maxRows: 1\n }\n },\n {\n breakpoint: 'md',\n options: {\n maxCols: 2,\n maxRows: 2\n }\n }],\n gridType: GridType.ScrollVertical,\n compactType: CompactType.None,\n margin: 10,\n outerMargin: true,\n outerMarginTop: null,\n outerMarginRight: null,\n outerMarginBottom: null,\n outerMarginLeft: null,\n useTransformPositioning: true,\n mobileBreakpoint: 640,\n minCols: 24,\n maxCols: 100,\n minRows: 24,\n maxRows: 100,\n maxItemCols: 100,\n minItemCols: 1,\n maxItemRows: 100,\n minItemRows: 1,\n maxItemArea: 2500,\n minItemArea: 1,\n defaultItemCols: 1,\n defaultItemRows: 1,\n fixedColWidth: 105,\n fixedRowHeight: 105,\n keepFixedHeightInMobile: false,\n keepFixedWidthInMobile: false,\n scrollSensitivity: 10,\n scrollSpeed: 20,\n enableEmptyCellClick: false,\n enableEmptyCellContextMenu: false,\n enableEmptyCellDrop: false,\n enableEmptyCellDrag: false,\n enableOccupiedCellDrop: false,\n emptyCellDragMaxCols: 50,\n emptyCellDragMaxRows: 50,\n ignoreMarginInRow: false,\n draggable: {\n enabled: true,\n },\n resizable: {\n enabled: true,\n },\n swap: false,\n pushItems: true,\n disablePushOnDrag: false,\n disablePushOnResize: false,\n pushDirections: { north: true, east: true, south: true, west: true },\n pushResizeItems: false,\n displayGrid: DisplayGrid.Always,\n disableWindowResize: false,\n disableWarnings: false,\n scrollToNewItems: false,\n };\n }\n\n // getRouteElements() {\n // return [{ path:\"/selfservice\", name:\"Self Service Home\" },{ path:\"/selfservice/dashboard-list\", name:\"Dashboard List\" },{ path:\"/selfservice\", name:\"Dashboard Designer\" }]\n // }\n\n // openShareForm(shareData: any) {\n // let data = {\n // objectType: shareData.objectType,\n // objectId: shareData.objectId,\n // dashboardId: this.dashboard.dashboardId,\n // filter: this.dashboard.filter,\n // // function: (filters) => this.saveFilterFromShares(filters)\n // };\n\n // this.modalService.openModal(data, ShareFormComponent, 'auto', '600px').subscribe(result => {\n // if (result) {\n\n // }\n // })\n // }\n removeWidget(item: any) {\n this.modalService.openDeleteConfirm().subscribe(result => {\n if (result === true) {\n this.dashboardService.deleteWidgetFromDashboard(this.dashboard.dashboardId, item.designerContainer.widgetId).subscribe(result => {\n this.dashboardWidgets.splice(this.dashboardWidgets.indexOf(item), 1);\n\n this.widgets = this.widgets.filter(x => x.widgetId !== item.designerContainer.widgetId)\n });\n }\n });\n }\n expandWidget(widgetData) {\n let data = {\n widgetData: widgetData.designerContainer,\n shareModalOpen: (e) => this.openShareForm({ ...e, filter: this.dashboard.filter }),\n selectedFilters: this.dashboard.filter,\n selectedDashboard: this.dashboard\n\n }\n this.modalService.openModal(data, ExpandedWidgetComponent, '600px', '90%', 'overflow-hidden').subscribe(result => { });\n }\n\n changeGrid(type) {\n this.options.gridType = GridType[type]\n this.options.api.optionsChanged()\n this.dashboard.layout = type\n this.dashboardService.upsertDashboard(this.dashboard).subscribe(result => {\n });\n }\n\n\n}\n","
\n\n \n \n

{{dashboard.title}}

\n
\n\n {{'DashboardDesignerPage.EditMode'|translate}}\n\n\n \n\n \n\n \n\n \n \n\n
\n
\n\n\n\n\n
0\"\n style=\"width: 100%; height: calc(90% - 10px) !important;overflow: scroll !important;\">\n \n \n \n \n \n \n\n
\n
\n \n\n

{{ 'DashboardDesignerPage.Paragraph' |\n translate }}

\n
\n\n
\n
\n
\n\n\n\n\n\n {{\n 'MainPage.FitToScreen' | translate\n }}\n {{ 'MainPage.FullScreen' | translate }}\n\n \n {{ 'MainPage.ScrollVertical' |translate }}\n \n\n {{ 'MainPage.VerticalFixed' | translate }}\n\n {{ 'MainPage.ScrollHorizontal' | translate }}\n\n {{ 'MainPage.HorizontalFixed' | translate }}\n\n\n\n","\nimport { Component, OnInit } from '@angular/core';\nimport { Router } from '@angular/router';\nimport { TranslateService } from '@ngx-translate/core';\nimport { NgxSpinnerService } from 'ngx-spinner';\nimport { Dashboard } from 'src/app/models/responses/dashboardResponse';\nimport { DataStore } from 'src/app/models/responses/dataStoreResponse';\nimport { DashboardFormComponent } from 'src/app/pages/manage/dashboard/dashboard-form/dashboard-form.component';\nimport { DatastoreFormComponent } from 'src/app/pages/manage/datastore/datastore-form/datastore-form.component';\nimport { DashboardService } from 'src/app/services/dashboard/dashboard.service';\nimport { DataStoreService } from 'src/app/services/dataStore/data-store.service';\nimport { ModalService } from 'src/app/services/modal/modal.service';\nimport { SelfServiceDatastoreFormComponent } from '../self-service-datastore-form/self-service-datastore-form.component';\nimport { SelfService } from 'src/app/services/self-service/self.service';\nimport { SelfServiceDesignerComponent } from '../self-service-designer/self-service-designer.component';\nimport { MatDialogRef } from '@angular/material/dialog';\nimport { deleteCssFile } from 'src/app/core/utils';\nimport { MatPaginatorModule } from '@angular/material/paginator';\nimport { environment } from \"src/environments/environment\";\n\n\n@Component({\n selector: 'app-self-service-main',\n templateUrl: './self-service-main.component.html',\n styleUrls: ['./self-service-main.component.scss']\n})\nexport class SelfServiceMainComponent implements OnInit {\n\n constructor(\n private router:Router\n ) {}\n ngOnInit(): void {\n \n }\n\n redirectToDataStoreList(){\n this.router.navigate(['selfservice/data-store-list']);\n }\n\n}\n","
\n
\n \"\"\n

{{'SelfServicePage.MainDescription'|translate}}

\n
{{'SelfServicePage.MainParagraph'|translate}}
\n \n
\n
","import { Component, OnInit } from '@angular/core';\nimport { TranslateService } from '@ngx-translate/core';\n\n@Component({\n selector: 'app-self-service-analyze',\n templateUrl: './self-service-analyze.component.html',\n styleUrls: ['./self-service-analyze.component.scss']\n})\nexport class SelfServiceAnalyzeComponent implements OnInit {\n routeList = [{ path: \"/selfservice\", name: this.translate.instant(\"SelfServicePage.SelfServiceHome\") }, { path: \"/selfservice\", name: this.translate.instant(\"SelfServicePage.VisualAnalytics\") }]\n\n constructor(private translate:TranslateService) { }\n\n ngOnInit(): void {\n }\n\n}\n","
\n \n \n
","import { Component, Inject, Input, OnInit } from '@angular/core';\nimport { MAT_DIALOG_DATA, MatDialogRef } from '@angular/material/dialog';\nimport { User } from 'src/app/models/responses/loginResponse';\nimport { UserService } from 'src/app/services/user/user.service';\n\n@Component({\n selector: 'app-share-person-form',\n templateUrl: './share-person-form.component.html',\n styleUrls: ['./share-person-form.component.scss']\n})\nexport class SharePersonFormComponent implements OnInit {\n\n\n constructor(private userService: UserService, private dialogRef: MatDialogRef,\n @Inject(MAT_DIALOG_DATA) public data: {\n selectedUsers: any[],\n title: string\n }) { }\n allUsers: any[] = []\n FilteredUsers: any[] = []\n searchColumns = ['firstName', 'lastName']\n selectedUserList: any[] = []\n\n ngOnInit(): void {\n \n if (this.data.selectedUsers.length > 0) {\n this.selectedUserList = this.data.selectedUsers\n this.visibleSelected = true\n }\n\n\n }\n\n getUsers(searchText: string) {\n this.userService.getUsersWithSearchText(searchText).subscribe(res => {\n this.allUsers = res.map(item => {\n var isAvailable = this.selectedUserList.some(x => x.userId == item.userId)\n return { ...item, selected: isAvailable ? this.selectedUserList.find(x => x.userId == item.userId).selected : 0 }\n })\n this.FilteredUsers = this.allUsers\n })\n }\n\n filterData(filteredDatas) {\n this.FilteredUsers = filteredDatas\n }\n\n visibleSelected: boolean = false\n\n serversideSearch(text) {\n if (text == '' || text.length == 0) {\n this.visibleSelected = true\n } else {\n this.visibleSelected = false\n }\n if (text.length < 3)\n return\n else if (text.length == 3)\n this.getUsers(text)\n else\n return\n\n }\n\n\n saveSharedUsers() {\n // if (this.selectedUserList.length > 0) {\n // var selecteduserlistText = ''\n // selecteduserlistText = this.selectedUserList.map(item => item.userId).join(', ')\n // }\n this.dialogRef.close(this.selectedUserList)\n }\n\n selectUser(selectedUser: any) {\n var user = this.FilteredUsers.find(x => x.userId == selectedUser.userId) ?? this.selectedUserList.find(x => x.userId == selectedUser.userId)\n if (user.selected == 1) {\n this.selectedUserList = this.selectedUserList.filter(x => x.userId !== user.userId)\n if (this.FilteredUsers.length > 0)\n this.FilteredUsers.find(x => x.userId == selectedUser.userId).selected = 0\n } else {\n this.selectedUserList.push(user)\n if (this.FilteredUsers.length > 0)\n this.FilteredUsers.find(x => x.userId == selectedUser.userId).selected = 1\n }\n }\n\n}\n","
X
\n
\n
\n

{{data.title|translate}}

\n

{{'UserCard.FindPeople'|translate}}

\n \n
\n
0||selectedUserList.length>0\">\n
\n \n
\n
\n \n
\n\n
\n
\n \n {{'UserCard.SearchPeople'|translate}}\n
\n\n\n\n
\n
\n \n
","import { Component, Inject, OnInit, SecurityContext } from '@angular/core';\nimport { ScriptLoaderService } from 'src/app/services/script-loader/script-loader.service';\nimport { TranslateService } from '@ngx-translate/core';\nimport { DomSanitizer, SafeResourceUrl } from '@angular/platform-browser';\nimport { ShareService } from 'src/app/services/share/share.service';\nimport { MAT_DIALOG_DATA, MatDialogRef } from '@angular/material/dialog';\nimport { App } from 'src/app/models/responses/appsResponse';\nimport { DashboardService } from 'src/app/services/dashboard/dashboard.service';\nimport { Dashboard } from 'src/app/models/responses/dashboardResponse';\nimport { environment } from 'src/environments/environment';\nimport { AuthService } from 'src/app/services/auth/auth.service';\n\n@Component({\n selector: 'app-share-preview-modal',\n templateUrl: './share-preview-modal.component.html',\n styleUrls: ['./share-preview-modal.component.scss']\n})\nexport class SharePreviewModalComponent implements OnInit {\n\n\n\n\n url: string = \"\";\n urlSafe: SafeResourceUrl;\n width: string = ''\n height: string = ''\n right: number = 0\n top: number = 0\n iframeactive: boolean = false\n dashboardList: Dashboard[] = []\n env: string = environment.imageUrl\n dashboardWidgets: any[] = []\n selectedDashboard: Dashboard\n domain: string = this.authService.getUserDomain()\n loadingHeader: boolean = true\n\n\n constructor(\n private scriptLoader: ScriptLoaderService,\n private translate: TranslateService,\n public sanitizer: DomSanitizer,\n private authService: AuthService,\n private dashboardService: DashboardService,\n public dialogRef: MatDialogRef,\n @Inject(MAT_DIALOG_DATA) public data: {\n app: App\n }\n\n ) {\n this.url = scriptLoader.url\n if (this.scriptLoader.screenOptions.isapp == 'true') {\n this.iframeactive = true\n } else {\n this.iframeactive = false\n\n }\n if (this.scriptLoader.screenOptions.position == 'leftwindow')\n this.right = 100 - parseInt(this.scriptLoader.screenOptions.width.split('%')[0])\n if (this.scriptLoader.screenOptions.position == 'rightwindow')\n this.right = 0\n if (this.scriptLoader.screenOptions.position == 'centerwindow')\n this.right = ((100 - parseInt(this.scriptLoader.screenOptions.width.split('%')[0])) / 2)\n\n this.top = ((100 - parseInt(this.scriptLoader.screenOptions.height.split('%')[0])) / 2)\n\n\n }\n\n iframestack: {\n url: string, screenOptions: {\n width: string,\n height: string,\n position: string\n }\n }[] = []\n\n title: string\n\n ngOnInit(): void {\n\n\n\n this.urlSafe = this.sanitizer.bypassSecurityTrustResourceUrl(this.sanitizer.sanitize(SecurityContext.URL, this.url))\n\n setTimeout(() => {\n this.loadingHeader = false\n }, 300);\n }\n\n\n\n\n}\n","
\n clear\n
\n\n
\n \n \n\n \n\n \n
\n
\n","import { Component, Input, OnInit } from '@angular/core';\nimport { Router } from '@angular/router';\nimport { SpeechProcces, SpeechStatus } from 'src/app/core/speechTypes';\nimport { AuthService } from 'src/app/services/auth/auth.service';\nimport { ChatbotService } from 'src/app/services/chatbot/chatbot.service';\ndeclare let window: any;\n\n\n@Component({\n selector: 'app-speech-microphone',\n templateUrl: './speech-microphone.component.html',\n styleUrls: ['./speech-microphone.component.scss']\n})\n\n\nexport class SpeechMicrophoneComponent implements OnInit {\n mic: boolean = false\n processingCommand: boolean = false\n proccessText: string = ''\n proceessCommand: string = ''\n hearing: boolean = false\n @Input() activeAssistan: boolean = false\n @Input() functionList: { type: number, function: Function }[]\n QueryTextList: string[] = ['sorg', 'quer', 'get']\n permissions: string[] = this.authService.getPermissions()\n\n constructor(protected chatbotService: ChatbotService, public router: Router, private authService: AuthService) { }\n\n\n ngOnInit(): void {\n\n this.openSpeech()\n this.mic = localStorage.getItem('micActive') == 'true' ? true : false\n this.hearing = this.mic\n if (this.chatbotService.recognition) {\n this.chatbotService.recognition.onend = (e) => {\n if (this.proceessCommand.toLowerCase() !== 'kapat') {\n localStorage.setItem('micActive', 'true')\n this.mic = true\n this.chatbotService.recognition.start();\n } else {\n this.hearing = false\n localStorage.setItem('micActive', 'false')\n this.mic = false\n }\n\n }\n } else {\n const { webkitSpeechRecognition } = window \n if ('SpeechRecognition' in window) {\n \n\n var recognition = new webkitSpeechRecognition();\n this.chatbotService.recognition = recognition\n this.chatbotService.recognition.lang = `${this.authService.getUserLangName()}-${this.authService.getUserLangName().toUpperCase()}`\n if (localStorage.getItem('micActive') == 'true')\n this.openSpeech()\n }\n }\n }\n\n startSpeech() {\n this.mic = true\n this.hearing = true\n try {\n this.chatbotService.recognition.start();\n } catch (error) {\n console.error(error)\n }\n }\n\n openSpeech() {\n // var recognition = this.chatbotService.openSpeech()\n // this.chatbotService.recognition\n // this.mic = true\n // this.hearing=true\n if (this.chatbotService.recognition)\n this.chatbotService.recognition.onresult = (result) => {\n this.chatbotService.speechStatus.next(SpeechStatus.Processing)\n this.proccessText = result.results[0][0].transcript\n this.proceessCommand = result.results[0][0].transcript\n this.speechCommands(result.results[0][0].transcript)\n }\n\n }\n\n closeSpeech(value) {\n this.mic = false\n this.hearing = false\n this.proceessCommand = 'kapat'\n this.chatbotService.closeSpeech(value)\n setTimeout(() => {\n this.proccessText = ''\n }, 3000);\n }\n\n speechCommands(sentences) {\n\n\n var word = sentences.split(' ')[0].toLowerCase()\n\n switch (word) {\n case 'sil':\n case 'si':\n case 'delete':\n this.functionList.find(x => x.type == SpeechProcces.Delete).function()\n break;\n case 'anasayfa':\n case 'anasay':\n case 'ana sayfa':\n case 'homepage':\n if (this.functionList.some(x => x.type == SpeechProcces.HomePage))\n this.functionList.find(x => x.type == SpeechProcces.HomePage).function()\n this.router.navigate(['/'])\n break;\n case 'yenile':\n case 'yeni':\n case 'refresh':\n case 'reset':\n case 'sıfırla':\n case 'sıfırl':\n this.functionList.find(x => x.type == SpeechProcces.Refresh).function()\n break;\n case 'yardım':\n case 'yard':\n case 'help':\n this.functionList.find(x => x.type == SpeechProcces.Help).function()\n break;\n case 'kapat':\n case 'kap':\n case 'close':\n if (this.functionList.some(x => x.type == SpeechProcces.Close))\n this.functionList.find(x => x.type == SpeechProcces.Close).function()\n this.mic = false\n this.hearing = false\n this.chatbotService.closeSpeech('kapat')\n break;\n // case 'asistan':\n // case 'asist':\n // case 'assistant':\n // this.activeAssistan = true\n // if (this.functionList.some(x => x.type == SpeechProcces.AssistantOpen))\n // this.functionList.find(x => x.type == SpeechProcces.AssistantOpen).function()\n // break;\n\n default:\n this.otherFunction(sentences)\n break;\n }\n\n this.mic = false\n }\n\n otherFunction(sentences: string) {\n\n if (this.activeAssistan) {\n if (sentences.includes('temi')) {\n if (this.functionList.some(x => x.type == SpeechProcces.Delete)) {\n this.functionList.find(x => x.type == SpeechProcces.Delete).function(sentences)\n }\n } else if (this.functionList.some(x => x.type == SpeechProcces.TextToChatBot)) {\n this.functionList.find(x => x.type == SpeechProcces.TextToChatBot).function(sentences)\n }\n }\n if (this.router.url == '/') {\n if (this.functionList.some(x => x.type == SpeechProcces.OpenDashboard)) {\n this.functionList.find(x => x.type == SpeechProcces.OpenDashboard).function(sentences)\n }\n } else if (this.router.url == '/main') {\n if (this.functionList.some(x => x.type == SpeechProcces.FilterDashboard) && this.QueryTextList.some(kelime => sentences.includes(kelime))) {\n this.functionList.find(x => x.type == SpeechProcces.FilterDashboard).function(sentences)\n }\n }\n }\n\n\n\n}\n","
\n
\n
\n
\n
\n
\n
\n
\n
\n
\n
\n
\n
\n
\n
\n\n mic\n mic_off\n\n \n\n
\n
{{proccessText}}
","import { Component, EventEmitter, OnInit, Output } from '@angular/core';\nimport { interval } from 'rxjs';\n\n@Component({\n selector: 'app-splash-screen',\n templateUrl: './splash-screen.component.html',\n styleUrls: ['./splash-screen.component.scss']\n})\nexport class SplashScreenComponent implements OnInit {\n progressValue: number = 0\n progressinterval: any\n\n @Output() closeEmitter: EventEmitter = new EventEmitter()\n\n constructor() { }\n\n\n ngOnInit(): void {\n\n this.progressinterval = setInterval(() => {\n this.progressValue = this.progressValue + 10\n console.log('girdi', this.progressValue)\n if (this.progressValue == 100) {\n clearInterval(this.progressinterval)\n this.closeEmitter.emit()\n }\n }, 500);\n\n\n }\n\n}\n","
\n
\n
\n \n \n \n
\n\n
\n

{{\"Common.SplashTitle\"|translate}}

\n
{{\"Common.SplashText\"|translate}}
\n
\n
\n\n
","import { Component, OnInit } from '@angular/core';\n\n@Component({\n selector: 'app-sub-header',\n templateUrl: './sub-header.component.html',\n styleUrls: ['./sub-header.component.scss']\n})\nexport class SubHeaderComponent implements OnInit {\n\n constructor() { }\n\n ngOnInit(): void {\n }\n\n}\n","

sub-header works!

\n","import { Component, OnInit, Input, Output, EventEmitter } from '@angular/core';\n\n\n@Component({\n selector: 'app-title',\n templateUrl: './title.component.html',\n styleUrls: ['./title.component.scss']\n})\nexport class TitleComponent implements OnInit {\n\n @Input() public title: string;\n @Input() buttonTitle: string;\n @Input() buttonTitle2: string;\n\n @Input() isDisabled: boolean = false;\n @Input() isDisabled2: boolean = false;\n\n @Output() btnEvent = new EventEmitter();\n @Output() btnEvent2 = new EventEmitter();\n\n\n\n constructor() { }\n\n ngOnInit(): void {\n }\n\n btnClick() {\n this.btnEvent.emit();\n }\n\n btnClick2() {\n this.btnEvent2.emit();\n }\n\n}\n","
\n {{title}}\n
\n \n \n
\n
","import { Component, OnInit } from '@angular/core';\n\n@Component({\n selector: 'app-toast',\n templateUrl: './toast.component.html',\n styleUrls: ['./toast.component.scss']\n})\nexport class ToastComponent implements OnInit {\n\n constructor() { }\n\n ngOnInit(): void {\n }\n\n}\n","\n Pizza party!!! 🍕\n ","import { Component, OnInit } from '@angular/core';\nimport { MatDialog } from '@angular/material/dialog';\nimport { AuthService } from 'src/app/services/auth/auth.service';\nimport { CoreService } from 'src/app/services/core/core.service';\nimport { SystemParametersService } from 'src/app/services/system-parameters/system-parameters.service';\n\n@Component({\n selector: 'app-upload-configuration-form',\n templateUrl: './upload-configuration-form.component.html',\n styleUrls: ['./upload-configuration-form.component.scss']\n})\nexport class UploadConfigurationFormComponent implements OnInit {\n\n constructor(\n private systemParametersService: SystemParametersService,\n private authService:AuthService,\n private dialogRef:MatDialog,\n private coreService:CoreService\n ) { }\n\n ngOnInit(): void {\n }\n file: File\n filename:string\n changeFile(event: any) {\n this.file = event.target.files[0];\n this.filename=this.file.name\n\n }\n\n formData = new FormData()\n\n uploadFile() {\n if (this.file) {\n this.formData.append('File', this.file)\n this.formData.append('Token', this.authService.getToken())\n this.systemParametersService.uploadConfiguration(this.formData).subscribe(response => {\n this.coreService.showSuccessMessage('İşlem Başarılı');\n this.dialogRef.closeAll()\n\n }, error => {\n console.error('Error uploading file', error);\n this.coreService.showErrorMessage('İşlem Başarısız')\n });\n }\n }\n\n\n}\n","\n\n
\n
\n *{{ 'AppFormPage.Hint' | translate }}\n \n
\n
\n \n {{'SystemParametersPage.FileName'|translate}} : {{filename}}\n \n \n \n \n \n
\n
\n
","import { Component, EventEmitter, Input, OnInit, Output } from '@angular/core';\nimport { BehaviorSubject } from 'rxjs';\nimport { User } from 'src/app/models/responses/usersResponse';\nimport { environment } from 'src/environments/environment';\n\n@Component({\n selector: 'app-user-card',\n templateUrl: './user-card.component.html',\n styleUrls: ['./user-card.component.scss']\n})\nexport class UserCardComponent implements OnInit {\n @Input() user: any\n @Output() selectUser: EventEmitter = new EventEmitter()\n env: string = environment.imageUrl\n\n constructor() { }\n\n\n ngOnInit(): void {\n this.user.groups = this.user.groups.sort()\n }\n\n select(ev: any) {\n this.selectUser.emit(ev)\n }\n\n\n}\n","
\n
\n
\n \n
\n
\n
\n
\n

{{user.firstName}} {{user.lastName}}

\n

{{user.email}}

\n
\n \n \n \n \n \n \n \n \n
\n
{{'UserCard.MemberOfGroup'|translate}}:
\n
\n
\n {{item}}\n
\n\n
\n
\n
\n\n
","import { Component, EventEmitter, Input, OnInit, Output } from '@angular/core';\nimport { filterString } from 'src/app/core/utils';\nimport { Share } from 'src/app/models/responses/shareResponse';\nimport { ModalService } from 'src/app/services/modal/modal.service';\nimport { MailSceduleFormComponent } from '../mail-scedule-form/mail-scedule-form.component';\nimport { ShareService } from 'src/app/services/share/share.service';\nimport { Clipboard } from '@angular/cdk/clipboard';\nimport { CoreService } from 'src/app/services/core/core.service';\nimport { Dashboard } from 'src/app/models/responses/dashboardResponse';\nimport { ShareFormComponent } from '../modals/share-form/share-form.component';\n\n@Component({\n selector: 'app-view-button',\n templateUrl: './view-button.component.html',\n styleUrls: ['./view-button.component.scss']\n})\nexport class ViewButtonComponent implements OnInit {\n _mySharesForList: { core: Share, listitem: { text: string, small: string } }[] = []\n\n @Output() applyFilterForViews: EventEmitter = new EventEmitter()\n\n // @Output() getShares: EventEmitter = new EventEmitter()\n\n @Input() buttonClass: string = ''\n\n _selectedDashboard: Dashboard\n @Input() set selectedDashboard(value: Dashboard) {\n if (value.dashboardId) {\n this._selectedDashboard = value;\n this.getShares()\n\n }\n\n }\n\n @Input() set changeViewList(value: boolean) {\n if (this._selectedDashboard.dashboardId) {\n this.getShares()\n }\n }\n\n buttonsList: { icon: string, function: Function, tooltip: string, class: string, type: string }[] = [\n { icon: 'mail.svg', function: (e) => this.sendMail(e), tooltip: '', class: 'bg-light-success' , type: 'img'},\n { icon: 'copy.svg', function: (e) => this.copyshareLink(e), tooltip: '', class: 'bg-light-info' , type: 'img'},\n { icon: 'editShare.svg', function: (e) => this.updateShare(e), tooltip: '', class: 'bg-light-info', type: 'img' },\n { icon: 'deleteShare.svg', function: (e) => this.deleteShare(e), tooltip: '', class: 'bg-light-danger', type: 'img' }\n ]\n\n constructor(private modalService: ModalService, private clipboard: Clipboard,\n private shareService: ShareService, private coreService: CoreService) { }\n\n ngOnInit(): void {\n }\n\n\n\n\n getShares() {\n this.shareService.getMyShare(this._selectedDashboard.dashboardId).subscribe(res => {\n this._mySharesForList = res.map(item => {\n return { core: item, listitem: { small: item.sharedBy, text: item.name } }\n })\n })\n }\n\n\n applyFilterForViewsFunction(filter) {\n this.applyFilterForViews.emit(filter)\n }\n\n\n sendMail(item: Share) {\n var data = {\n url: window.origin + `/#/share/${item.shareKey}?filters=${filterString(item.filter)}`,\n dashboardId: item.dashboardId\n }\n this.modalService.openModal(data, MailSceduleFormComponent, '80%', '60%').subscribe(res => {\n\n })\n }\n\n copyshareLink(item: Share) {\n item.filter = item.filter.map(item => {\n return {\n fieldName: item.fieldName,\n fieldValue: item.fieldValue,\n operator: item.operator\n }\n })\n let filter = filterString(item.filter)\n var filterencode = encodeURIComponent(filter)\n const result = this.clipboard.copy(window.origin + `/#/share/${item.shareKey}?filters=` + filterencode).valueOf()\n\n if (result)\n this.coreService.showSuccessMessage('Copied!');\n\n\n\n\n }\n\n deleteShare(item: Share) {\n this.modalService.openDeleteConfirm().subscribe(isOk => {\n if (isOk) {\n this.shareService.deleteShare(item.shareId).subscribe(result => {\n this.getShares();\n });\n }\n })\n }\n\n updateShare(item: Share) {\n let data = {\n objectType: item.objectType,\n objectId: item.sharedObjectId,\n dashboardId: this._selectedDashboard.dashboardId,\n filter: this._selectedDashboard.filter,\n function: () => {\n \n },\n data: item\n };\n\n this.modalService.openModal(data, ShareFormComponent, 'auto', '600px').subscribe(result => {\n if (result) {\n this.getShares();\n }\n })\n }\n\n}\n","\n \n\n\n\n\n
\n
{{'ShareComponent.noShares'|translate}}
\n
\n \n
","import { Component, OnInit, Input, Output, EventEmitter, ViewChild, ElementRef, OnChanges, SimpleChanges, AfterViewInit } from '@angular/core';\nimport { PermissionService } from 'src/app/services/permission/permission.service';\nimport html2canvas from 'html2canvas';\nimport { Dashboard } from 'src/app/models/responses/dashboardResponse';\nimport { DashboardService } from 'src/app/services/dashboard/dashboard.service';\nimport { GridsterWidget, Widget, WidgetPreview } from 'src/app/models/responses/widgetLibraryResponse';\nimport { BussionFilterDefinition } from 'src/app/models/responses/dataStoreResponse';\nimport { ScriptLoaderService } from 'src/app/services/script-loader/script-loader.service';\nimport { ExpandedWidgetComponent } from '../modals/expanded-widget/expanded-widget.component';\nimport { ModalService } from 'src/app/services/modal/modal.service';\n\n@Component({\n selector: 'app-widget-preview',\n templateUrl: './widget-preview.component.html',\n styleUrls: ['./widget-preview.component.scss']\n})\nexport class WidgetPreviewComponent implements OnInit, OnChanges {\n\n @Input() widget: GridsterWidget;\n @Input() create: boolean = false\n @Input() authType: number = 0\n // 0 No Authentication\n // 1 OTP Authentication\n // 2 Bussion Authentication\n\n @Output() shareEvent = new EventEmitter();\n @Output() expandEvent = new EventEmitter();\n @Output() openForm = new EventEmitter();\n @Output() deleteWidget = new EventEmitter();\n downloadLoading: boolean = false\n @Input() noDataLoading: boolean = true\n\n\n\n\n\n @Input() showMenu: boolean = true;\n @Input() showDelete: boolean = false;\n @Input() showTitle: boolean = true;\n @Input() showShare: boolean = false;\n @Input() showZoom: boolean = false;\n @Input() showEdit: boolean = false;\n @Input() selectedFilters: BussionFilterDefinition[] = []\n @Input() selectedDashboard: Dashboard = {\n dashboardId: '',\n title: '',\n icon: '',\n auditEnabled: 0,\n order: 1,\n dashboardStatus: 0,\n description: '',\n layoutConfig: '',\n domain: '',\n access: 0,\n owner: '',\n creationDate: '',\n updatedBy: '',\n updateDate: '',\n colorPalette: '',\n filter: [],\n widgets: [],//Widget,\n dimensions: [], //Dimension,\n messages: [], //BussionMessage\n autoRefresh: 0,\n refreshInterval: 0,\n isMainDashboard: 0,\n hideBorders: 'false',\n contentLanguage: '',\n gridSize: 0,\n tags: '',\n css: '',\n ownerId: '',\n isSelfService: 0,\n users: '',\n hideAdvancedQueryPanel: 0,\n layout: '',\n colors: []\n\n }\n\n @ViewChild('widgetContent') screen: ElementRef;\n @ViewChild('canvas') canvas: ElementRef;\n @ViewChild('downloadLink') downloadLink: ElementRef;\n\n permissions: string[] = [];\n groupedData = {};\n groupedDataKeys: string[] = []\n groupedOperatorKeys: string[] = []\n\n showFilter: boolean = false\n\n constructor(\n private permissionService: PermissionService,\n private scriptLoaderService: ScriptLoaderService,\n private modalService: ModalService\n ) {\n }\n\n ngOnInit(): void {\n if (this.authType !== 0) {\n this.getPermissions();\n }\n\n\n }\n\n\n\n\n\n ngOnChanges(changes: SimpleChanges): void {\n\n this.groupFilters()\n\n if (this.create && this.widget) {\n this.createWidget(this.widget);\n }\n\n }\n\n private createWidget(widgetResponse: GridsterWidget) {\n this.scriptLoaderService.addScriptFileToHead(widgetResponse.designerContainer.widgetLibraries);\n this.scriptLoaderService.runWidgetCode(widgetResponse.designerContainer);\n }\n\n groupFilters() {\n this.selectedFilters.forEach(item => {\n var visibleName = this.selectedDashboard.dimensions.find(x => x.name == item.fieldName)?.visibleName ?? item.fieldName\n if (!this.groupedData[visibleName]) {\n this.groupedData[visibleName] = {};\n }\n\n\n\n // this.groupedData[item.fieldName].push(item);\n\n if (!this.groupedData[visibleName][item.operator]) {\n this.groupedData[visibleName][item.operator] = [];\n }\n this.groupedData[visibleName][item.operator].push(item);\n\n });\n\n\n this.groupedDataKeys = Object.keys(this.groupedData)\n }\n\n getObjectKeys(obj: any): string[] {\n return Object.keys(obj);\n }\n\n getPermissions() {\n this.permissionService.getUserRoleList().subscribe(permissions => {\n this.permissions = permissions;\n });\n }\n\n shareWidget(widgetId: string, type: string) {\n this.shareEvent.emit({ objectId: widgetId, objectType: type });\n }\n\n expandWidget(widgetData: any) {\n if (this.expandEvent.observers.length <= 0) {\n let data = {\n widgetData: widgetData.designerContainer,\n // shareModalOpen: (e) => this.openShareForm({ ...e, filter: this.selectedFilters }),\n selectedFilters: this.selectedFilters,\n selectedDashboard: this.selectedDashboard\n }\n this.modalService.openModal(data, ExpandedWidgetComponent, '90%', '100%', 'overflow-hidden').subscribe(result => { });\n } else {\n this.expandEvent.emit(widgetData);\n }\n }\n\n openWidgetForm(widget: any, type: string) {\n this.openForm.emit({ widget: widget, type: type });\n\n }\n\n removeWidget(widget: any) {\n this.deleteWidget.emit(widget);\n }\n\n downloadWidget(widget: any, type: string) {\n if (type == 'csv') {\n console.log('first', this.widget.designerContainer.widgetData)\n\n let csvData = this.jsonToCsv(this.widget.designerContainer.widgetData); // Add .items.data\n // Create a CSV file and allow the user to download it\n let blob = new Blob([csvData], { type: 'text/csv' });\n let url = window.URL.createObjectURL(blob);\n let a = document.createElement('a');\n a.href = url;\n a.download = widget.designerContainer.widget.title + '.csv';\n document.body.appendChild(a);\n a.click();\n } else {\n html2canvas(this.screen.nativeElement).then(canvas => {\n this.canvas.nativeElement.src = canvas.toDataURL();\n this.downloadLink.nativeElement.href = canvas.toDataURL('image/png');\n this.downloadLink.nativeElement.download = widget.designerContainer.widget.title + '.png';\n this.downloadLink.nativeElement.click();\n\n\n }).finally(() => {\n\n this.downloadLoading = false\n\n });\n }\n }\n\n jsonToCsv(jsonData) {\n let csv = '';\n // Get the headers\n let headers = Object.keys(jsonData[0]);\n csv += headers.join(',') + '\\n';\n // Add the data\n jsonData.forEach(function (row) {\n let data = headers.map(header => JSON.stringify(row[header])).join(','); // Add JSON.stringify statement\n csv += data + '\\n';\n });\n return csv;\n }\n\n DownloadFilter(checkbox) {\n this.showFilter = checkbox.checked\n }\n\n\n\n}\n","
\n
\n\n
\n more_horiz\n\n
\n\n
\n
\n
\n\n\n
\n
\n
\n {{widget.designerContainer.widget.title}}\n
\n \n 0?DownloadFilter({checked:true}):''\">{{widget.designerContainer.widget.type.toLowerCase().includes('filter')?'more_horiz':'more_vert'}}\n
\n\n
\n
\n {{widget.designerContainer.widget.subTitle}}
\n\n
0&&showFilter\">\n \n
\n \n {{item}}\n
\n {{(\"FilterComponent.\"+op|translate)}}\n
\n {{d.fieldValue}},\n
\n
\n
\n
\n\n\n
\n
\n
\n \n {{\"MainPage.NoData\"|translate}}\n
\n
\n\n\n
\n\n
\n \n \n
\n\n\n0?DownloadFilter({checked:false}):''\">\n \n {{ 'WidgetButtons.Share' | translate }}\n \n \n {{ 'WidgetButtons.Zoom' | translate }}\n \n \n {{ 'WidgetButtons.Edit' | translate }}\n \n
\n\n \n
\n {{ 'WidgetButtons.Download' | translate }}\n
\n\n
\n \n {{ 'WidgetButtons.Delete' | translate }}\n \n
\n\n\n\n \n \n \n","import { environment } from 'src/environments/environment';\n\nexport const ServerURLs = {\n bussion: environment.baseUrl + '/api/V3/',\n connector: window.location.protocol + '//' + window.location.hostname + ':**port**/api/V3/',\n connectorUrl: environment.baseUrl + ':7000/api/V3/'\n}\n\nexport const Endpoints = {\n login: ServerURLs.bussion + 'Logon/Login',\n register: ServerURLs.bussion + 'Register/CreateAccount',\n getUsers: ServerURLs.bussion + 'Users/GetUsers',\n getUserId: ServerURLs.bussion + 'Users/GetUserById',\n upsertUser: ServerURLs.bussion + 'Users/UpsertUser',\n deleteUser: ServerURLs.bussion + 'Users/DeleteUser',\n uploadAvatar: ServerURLs.bussion + 'FileOps/UploadImage',\n getGroups: ServerURLs.bussion + 'Groups/GetGroups',\n getUserGroups: ServerURLs.bussion + 'Groups/GetGroupsOfUserByUserId',\n upsertGroup: ServerURLs.bussion + 'Groups/UpsertGroup',\n deleteGroup: ServerURLs.bussion + 'Groups/DeleteGroupById',\n getRoles: ServerURLs.bussion + 'Roles/GetRoles',\n getUserRoles: ServerURLs.bussion + 'Roles/GetRolesOfUserByUserId',\n upsertRole: ServerURLs.bussion + 'Roles/UpsertRole',\n deleteRole: ServerURLs.bussion + 'Roles/DeleteRoleById',\n getDashboards: ServerURLs.bussion + 'Dashboards/GetDashboards',\n getUserActiveDashboards: ServerURLs.bussion + 'Dashboards/GetUserActiveDashboards',\n getAuthorizedDashboards: ServerURLs.bussion + 'Dashboards/GetAuthorizedDashboards',\n getDashboardById: ServerURLs.bussion + 'Dashboards/GetDashboardById',\n upsertDashboard: ServerURLs.bussion + 'Dashboards/UpsertDashboard',\n deleteDashboard: ServerURLs.bussion + 'Dashboards/DeleteDashboardById',\n upsertWidgetToDashboard: ServerURLs.bussion + 'Dashboards/UpsertWidgetInDesigner',\n previewWidget: ServerURLs.bussion + 'Widgets/PreviewWidget',\n getWidgetsForDesigner: ServerURLs.bussion + 'Dashboards/GetWidgetsForDesigner',\n addDashboardToUser: ServerURLs.bussion + 'Dashboards/AddDashboardToUser',\n getWidgetsForDashboard: ServerURLs.bussion + 'Dashboards/GetWidgetsForDashboard',\n updateDashboardLayout: ServerURLs.bussion + 'Dashboards/UpdateDashboardLayout',\n deleteWidgetFromDashboard: ServerURLs.bussion + 'Dashboards/DeleteWidgetFromDashboard',\n checkDashboardUpdateTime: ServerURLs.bussion + 'Dashboards/CheckDashboardUpdateTime',\n getDataStore: ServerURLs.bussion + 'DataStore/GetDataStores',\n getDataStoreById: ServerURLs.bussion + 'DataStore/GetDataStoreById',\n getDataStoreForUser: ServerURLs.bussion + 'DataStore/GetDataSourceForUser',\n upsertDataStore: ServerURLs.bussion + 'DataStore/UpsertDataStore',\n deleteDataStore: ServerURLs.bussion + 'DataStore/DeleteDataStore',\n getUniverses: ServerURLs.bussion + 'DataStore/GetUniverses',\n getCollections: ServerURLs.bussion + 'DataStore/GetCollections',\n getColumns: ServerURLs.bussion + 'DataStore/GetColumnsForDataSource',\n getColumnsByNode: ServerURLs.bussion + 'DataStore/GetColumnsForDataSourceByNodeId',\n getColumnsForDataSourceById: ServerURLs.bussion + 'DataStore/GetColumnsForDataSourceById',\n getValuesForField: ServerURLs.bussion + 'DataStore/GetValuesForField',\n getValuesForFieldByUniverse: ServerURLs.bussion + 'DataStore/GetValuesForFieldByUniverse',\n getWidgetLibraries: ServerURLs.bussion + 'WidgetLibrary/GetWidgetLibraries',\n upsertWidgetLibrary: ServerURLs.bussion + 'WidgetLibrary/UpsertWidgetLibrary',\n deleteWidgetLibrary: ServerURLs.bussion + 'WidgetLibrary/DeleteWidgetLibrary',\n uploadJavascriptFile: ServerURLs.bussion + 'FileOps/UploadLibraryFiles',\n getFilesPathOfLibrary: ServerURLs.bussion + 'FileOps/GetFilesPathOfLibrary',\n deleteFilePath: ServerURLs.bussion + 'WidgetLibrary/DeleteFileFromLibrary',\n getVisualComponents: ServerURLs.bussion + 'VisualComponent/GetVisualComponents',\n upsertVisualComponent: ServerURLs.bussion + 'VisualComponent/UpsertVisualComponent',\n deleteVisualComponent: ServerURLs.bussion + 'VisualComponent/DeleteVisualComponent',\n getNodes: ServerURLs.bussion + 'Node/GetNodes',\n getNodesType: ServerURLs.bussion + 'Node/GetDataNodeTypes',\n getDataNodes: ServerURLs.bussion + 'Node/GetDataNodes',\n upsertNode: ServerURLs.bussion + 'Node/UpsertNode',\n deleteNode: ServerURLs.bussion + 'Node/DeleteNodeById',\n CheckNodeConnectivity: ServerURLs.bussion + 'Node/CheckNodeConnectivity',\n getAllColorPalettes: ServerURLs.bussion + 'ColorPalette/GetColorPalettes',\n upsertColorPalette: ServerURLs.bussion + 'ColorPalette/UpsertColorPalette',\n deleteColorPalette: ServerURLs.bussion + 'ColorPalette/DeleteColorPalette',\n getGlobalFunctions: ServerURLs.bussion + 'GlobalFunctions/GetGlobalFunctions',\n upsertGlobalFunction: ServerURLs.bussion + 'GlobalFunctions/UpsertGlobalFunction',\n deleteGlobalFunction: ServerURLs.bussion + 'GlobalFunctions/DeleteGlobalFunction',\n getGlobalFunctionDefinitions: ServerURLs.bussion + 'GlobalFunctions/GetFunctionDefinitions',\n initiliazeConnector: ServerURLs.bussion + 'Connector/InitiliazeConnection',\n getBussionConnector: ServerURLs.bussion + 'Connector/GetBussionConnectors',\n deleteBussionConnector: ServerURLs.bussion + 'Connector/DeleteBussionConnectors',\n getConnectorTasks: ServerURLs.bussion + 'Connector/GetConnectorTasks',\n executeQuery: ServerURLs.bussion + 'Connector/ExecuteQuery',\n upsertConnectorTask: ServerURLs.bussion + 'Connector/UpsertConnectorTask',\n deleteConnectorTask: ServerURLs.bussion + 'Connector/DeleteConnectorTask',\n runConnectorTask: ServerURLs.bussion + 'Connector/RunConnectorTask',\n stopConnectorTask: ServerURLs.bussion + 'Connector/StopConnectorTask',\n getTaskLogs: ServerURLs.bussion + 'Connector/GetTaskStatus',\n upsertShare: ServerURLs.bussion + 'ShareObject/UpsertShare',\n getShare: ServerURLs.bussion + 'ShareObject/GetShareByKey',\n getSharedDashboardWidgets: ServerURLs.bussion + 'ShareObject/GetWidgetsForDashboard',\n RequestDynamicalShareToken: ServerURLs.bussion + 'ShareObject/RequestDynamicalShareToken',\n RemoveDynamicToken: ServerURLs.bussion + 'ShareObject/RemoveSharedToken',\n getWidgetForShare: ServerURLs.bussion + 'ShareObject/GetWidgetForShare',\n getMyShares: ServerURLs.bussion + 'ShareObject/GetShareOfObjects',\n deleteMyShare: ServerURLs.bussion + 'ShareObject/DeleteShare',\n getMessages: ServerURLs.bussion + 'Message/GetMessages',\n upsertMessage: ServerURLs.bussion + 'Message/UpsertMessage',\n deleteMessage: ServerURLs.bussion + 'Message/DeleteMessageById',\n getUserPermissions: ServerURLs.bussion + 'Roles/GetUserPermissions',\n getPermissions: ServerURLs.bussion + 'Roles/GetPermissions',\n upsertLicense: ServerURLs.bussion + 'License/UpsertLicense',\n getLicense: ServerURLs.bussion + 'License/GetLicense',\n sendAuditLogs: ServerURLs.bussion + 'Applications/AddAuditLog',\n getMultiTenantStatus: ServerURLs.bussion + 'Applications/MultiTenantEnabled',\n getldapconfig: ServerURLs.bussion + 'Applications/GetLdapConfig',\n updateldapconfig: ServerURLs.bussion + 'Applications/UpdateLdapConfig',\n getPasswordPolicy: ServerURLs.bussion + 'Applications/GetPasswordPolicy',\n updatePasswordPolicy: ServerURLs.bussion + 'Applications/UpdatePasswordPolicy',\n logout: ServerURLs.bussion + 'Logon/Logout',\n getUserLibraries: ServerURLs.bussion + 'Dashboards/GetUserLibrariesPreLoad',\n getApps: ServerURLs.bussion + 'Applications/GetApplications',\n deleteApps: ServerURLs.bussion + 'Applications/DeleteApplicationById',\n upsertApp: ServerURLs.bussion + 'Applications/UpsertApplication',\n deployApp: ServerURLs.bussion + 'Applications/DeployBussionApplication',\n getAuthorizedApps: ServerURLs.bussion + 'Applications/GetAuthorizedApplications',\n chaptcha: ServerURLs.bussion + 'Applications/CaptchaEnabled',\n clearWidgetFolder: ServerURLs.bussion + 'WidgetLibrary/ClearFolder',\n getWidgetById: ServerURLs.bussion + 'Dashboards/GetWidgetData',\n getAllowedScript: ServerURLs.bussion + 'AI/GetScriptsAllowed',\n upsertAllowedScript: ServerURLs.bussion + 'AI/UpsertScriptsAllowed',\n setParam: ServerURLs.bussion + 'Applications/SaveParam',\n getParam: ServerURLs.bussion + 'Applications/GetParam',\n deleteParam: ServerURLs.bussion + 'Applications/DeleteParam',\n debugeState: ServerURLs.bussion + 'Applications/ChangeDebugState',\n getBussionVersion: ServerURLs.bussion + 'Applications/GetBussionVersion',\n maxIllegalTries: ServerURLs.bussion + 'Applications/SetMaxIllegalTriesForDataOps',\n getSystemParameters: ServerURLs.bussion + 'Applications/GetSystemParameters',\n getCaptcha: ServerURLs.bussion + 'Applications/CaptchaEnabled',\n setCaptcha: ServerURLs.bussion + 'Applications/EnableCaptcha',\n getLogs: ServerURLs.bussion + 'Applications/GetBussionLogs',\n backupBussionConfiguration: ServerURLs.bussion + 'Applications/BackupBussionConfiguration',\n restoreBussionConfiguration: ServerURLs.bussion + 'Applications/RestoreBussionConfiguration',\n downloadCurrentConfiguration: ServerURLs.bussion + 'Applications/DownloadBussionConfiguration',\n uploadConfiguration: ServerURLs.bussion + 'Applications/UploadBussionConfiguration',\n getBussionMain: ServerURLs.bussion + 'Applications/GetBussionMain',\n getLanguagePacts: ServerURLs.bussion + 'Applications/GetLanguagePacts',\n deleteLanguage: ServerURLs.bussion + 'Applications/DeleteLanguagePacts',\n setLanguagePacts: ServerURLs.bussion + 'Applications/SetLanguagePacts',\n setBussionMain: ServerURLs.bussion + 'Applications/SetBussionMain',\n getBussionLogin: ServerURLs.bussion + 'Applications/GetBussionLogin',\n setBussionLogin: ServerURLs.bussion + 'Applications/SetBussionLogin',\n getSuggesstion: ServerURLs.bussion + 'AI/GetSuggestion',\n getSuggestionForDashboard: ServerURLs.bussion + 'AI/GetSuggestionForDashboard',\n addDatastoreFile: ServerURLs.bussion + 'SelfService/AddDataAsFile',\n getDataList: ServerURLs.bussion + 'SelfService/GetDataList',\n startScript: ServerURLs.bussion + 'AI/StartScript',\n sceduleDashboard: ServerURLs.bussion + 'Dashboards/UpsertDashboardScheduler',\n getSceduleDashboard: ServerURLs.bussion + 'Dashboards/GetDashboardScheduler',\n DeleteDashboardScheduler: ServerURLs.bussion + 'Dashboards/DeleteDashboardScheduler',\n GetWidgetRepository: ServerURLs.bussion + 'Dashboards/GetWidgetRepository',\n NotifyDataStore: ServerURLs.bussion + 'Datastore/NotifyDataStore',\n GetSampleDataForDataStore: ServerURLs.bussion + 'DataStore/GetSampleDataForDataStore',\n CreateIndex: ServerURLs.bussion + 'DataStore/CreateIndex',\n GetIndex: ServerURLs.bussion + 'DataStore/GetIndex',\n DropIndex: ServerURLs.bussion + 'DataStore/DropIndex',\n GetScriptFlows: ServerURLs.bussion + 'DataAnalytics/GetScriptFlows',\n UpsertFlowScript: ServerURLs.bussion + 'DataAnalytics/UpsertPythonScript',\n GetFlowScripts: ServerURLs.bussion + 'DataAnalytics/GetPythonScripts',\n UpsertFlow: ServerURLs.bussion + 'DataAnalytics/UpsertScriptFlow',\n GetFlows: ServerURLs.bussion + 'DataAnalytics/GetScriptFlows',\n GetFlowById: ServerURLs.bussion + 'DataAnalytics/GetScriptFlowId',\n DeleteFlow: ServerURLs.bussion + 'DataAnalytics/DeleteFlowById',\n DeletePythonScript: ServerURLs.bussion + 'DataAnalytics/DeletePythonScriptById',\n RunFlowById: ServerURLs.bussion + 'DataAnalytics/RunFlowById',\n GetPythonPackages: ServerURLs.bussion + 'DataAnalytics/GetPythonPackages',\n GetSessions: ServerURLs.bussion + 'DataAnalytics/GetSessionsForFlowById',\n GetPythonScriptTemplate: ServerURLs.bussion + 'DataAnalytics/GetPythonScriptTemplate',\n DeleteSessionById: ServerURLs.bussion + 'DataAnalytics/DeleteSessionById',\n PreviewWidgetFast: ServerURLs.bussion + 'Widgets/PreviewWidget',\n GetLoginPagePicture: ServerURLs.bussion + 'Pictures/GetLoginPagePicture',\n GetExternalEngineTemplate: ServerURLs.bussion + 'BussionConnector/GetExternalEngineTemplate',\n UpsertExternalEngine: ServerURLs.bussion + 'BussionConnector/UpsertExternalEngine',\n DeleteExternalEngine: ServerURLs.bussion + 'BussionConnector/DeleteExternalEngine',\n GetExternalEngines: ServerURLs.bussion + 'BussionConnector/GetExternalEngines',\n GetExternalEngineCode: ServerURLs.bussion + 'BussionConnector/GetExternalEngineCode',\n ArchRefreshData: ServerURLs.bussion + 'Arctitecture/RefreshData',\n ArchGetBussionServers: ServerURLs.bussion + 'Arctitecture/GetBussionServers',\n ArchBussionDataNodes: ServerURLs.bussion + 'Arctitecture/BussionDataNodes',\n ArchConnectorTasks: ServerURLs.bussion + 'Arctitecture/ConnectorTasks',\n ArchDataStores: ServerURLs.bussion + 'Arctitecture/DataStores',\n ArchBussionConnectors: ServerURLs.bussion + 'Arctitecture/BussionConnectors',\n ArchDataFlows: ServerURLs.bussion + 'Arctitecture/DataFlows',\n GetCredidentials: ServerURLs.bussion + 'Connector/GetCredidentials',\n ListPictures: ServerURLs.bussion + 'Dashboard/ListPictures',\n AddPicture: ServerURLs.bussion + 'Dashboard/AddPicture',\n DeletePicture: ServerURLs.bussion + 'Dashboard/DeletePicture'\n\n\n\n\n\n\n\n\n\n};","export enum SettingAreas {\n visual = 'visaulSetting',\n data = 'dataSetting',\n event = 'eventSetting',\n agregation='aggregationSettings'\n\n}\n\nexport const dropdownMenus = {\n visual_component: 'Visual Components',\n data_store:'Data Store',\n data_store_column:'Data Store Column',\n sort_and_limit:'Sort And Limit',\n dril_down:'Dril Down',\n config:'Config'\n};","export const filter_options = [\n { text: 'Equal', value: '=', type: [], valueField: true },\n { text: 'NotEqual', value: '!=', type: [], valueField: true },\n { text: 'GreaterThan', value: '>', type: [], valueField: true },\n { text: 'GreaterThanEqual', value: '>=', type: [], valueField: true },\n { text: 'Little', value: '<', type: [], valueField: true },\n { text: 'LittleEqual', value: '<=', type: [], valueField: true },\n { text: 'DayOf', value: 'dayof', type: ['System.DateTime'], valueField: true },\n { text: 'StartsWith', value: 'starts', type: ['System.String', 'System.Number'], valueField: true },\n { text: 'EndsWith', value: 'ends', type: ['System.String', 'System.Number'], valueField: true },\n { text: 'Contains', value: 'in', type: ['System.String', 'System.Number'], valueField: true },\n { text: 'NotContains', value: 'nin', type: ['System.String', 'System.Number'], valueField: true },\n { text: 'IsEmpty', value: 'empty', type: [], valueField: false },\n { text: 'NotEmpty', value: 'nempty', type: [], valueField: false },\n { text: 'Between', value: 'between', type: ['System.DateTime'], valueField: true },\n { text: 'Today', value: 'today', type: ['System.DateTime'], valueField: false },\n { text: 'Yesterday', value: 'yesterday', type: ['System.DateTime'], valueField: false },\n { text: 'ThisHour', value: 'thishour', type: ['System.DateTime'], valueField: false },\n { text: 'ThisWeek', value: 'thisweek', type: ['System.DateTime'], valueField: false },\n { text: 'ThisMonth', value: 'thismonth', type: ['System.DateTime'], valueField: false },\n { text: 'ThisYear', value: 'thisyear', type: ['System.DateTime'], valueField: false },\n { text: 'LastHour', value: 'lasthour', type: ['System.DateTime'], valueField: false },\n { text: 'LastWeek', value: 'lastweek', type: ['System.DateTime'], valueField: false },\n { text: 'LastMonth', value: 'lastmonth', type: ['System.DateTime'], valueField: false },\n { text: 'LastYear', value: 'lastyear', type: ['System.DateTime'], valueField: false },\n { text: 'BeforeNDays', value: 'beforendays', type: ['System.DateTime'], valueField: true, valueFieldType: \"System.Number\" },\n { text: 'LastNDays', value: 'lastnadays', type: ['System.DateTime'], valueField: true, valueFieldType: \"System.Number\" },\n { text: 'LastNHours', value: 'lastnhours', type: ['System.DateTime'], valueField: true, valueFieldType: \"System.Number\" },\n { text: 'LastNMinutes', value: 'lastnminutes', type: ['System.DateTime'], valueField: true, valueFieldType: \"System.Number\" }\n];","import { Injectable } from '@angular/core';\nimport { CanActivate, Router } from '@angular/router';\nimport { AuthService } from '../services/auth/auth.service';\n\n@Injectable({\n\tprovidedIn: 'root'\n})\nexport class AuthGuard implements CanActivate {\n\n\tconstructor(\n\t\tprivate authService: AuthService\n\t) { }\n\n\tcanActivate(): boolean {\n\t\tlet token = localStorage.getItem('token');\n\t\tthis.authService.checkSession();\n\t\tif (!token) {\n\t\t\tthis.authService.logout().subscribe(result => {});;\n\t\t\treturn false;\n\t\t}\n\t\treturn true;\n\t}\n\n}\n\n@Injectable({\n\tprovidedIn: 'root'\n})\nexport class LoginGuard implements CanActivate {\n\n\tconstructor(\n\t\tprivate authService: AuthService,\n\t\tprivate router: Router\n\t) { }\n\n\tcanActivate(): boolean {\n\t\tlet token = localStorage.getItem('token');\n\t\tthis.authService.checkSession();\n\t\tif (token) {\n\t\t\t//this.authService.logout().subscribe(result => {});;\n\t\t\tthis.router.navigate(['']);\n\t\t\treturn false;\n\t\t}\n\t\treturn true;\n\t}\n\n}","import { Injectable, ErrorHandler, Injector, NgZone } from '@angular/core';\nimport { HttpErrorResponse } from '@angular/common/http';\nimport { throwError } from 'rxjs';\nimport { NgxSpinnerService } from 'ngx-spinner';\nimport { CoreService } from '../services/core/core.service';\nimport { Router } from '@angular/router';\nimport { AuthService } from '../services/auth/auth.service';\n\nexport enum BussionErrorTypes {\n\tServer = \"ServerError\"\n}\n\n@Injectable({\n\tprovidedIn: 'root'\n})\nexport class CustomErrorHandler implements ErrorHandler {\n\n\tconstructor(\n\t\tprivate injector: Injector,\n\t\tprivate zone: NgZone\n\t) { }\n\n\thandleError(error: Error | HttpErrorResponse) {\n\t\tconst coreService = this.injector.get(CoreService);\n\t\tconst spinner = this.injector.get(NgxSpinnerService);\n\t\tconst authService = this.injector.get(AuthService);\n\t\tif (error instanceof HttpErrorResponse) {\n\t\t\tspinner.hide();\n\t\t\tlet er = new Error();\n\t\t\ter.message = error.message;\n\t\t\ter.name = error.name;\n\t\t\ter.stack = error.error;\n\t\t\n\n\n\t\t} else {\n\t\t\tspinner.hide();\n\t\n\n\t\t\tif (error.name === BussionErrorTypes.Server) {\n\t\t\t\tthis.zone.run(() => coreService.showErrorMessage(error.message));\n\t\t\t\tif (error.stack === \"19511952\") {\n\t\t\t\t\tauthService.logout().subscribe(result => {});;\n\t\t\t\t}\n\t\t\t}else{\n\t\t\t\tif (error.stack.includes(\"19511952\") ) {\n\t\t\t\t\tauthService.logout().subscribe(result => {});;\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t\treturn;\n\t}\n}\n","import { Injectable, Injector } from '@angular/core';\nimport { HttpRequest, HttpHandler, HttpEvent, HttpInterceptor, HttpResponse, HttpErrorResponse } from '@angular/common/http';\nimport { Observable, throwError } from 'rxjs';\nimport { map, catchError, retry, tap } from 'rxjs/operators';\n\nimport { environment } from '../../environments/environment';\nimport { AuthService } from '../services/auth/auth.service';\nimport { BussionErrorTypes } from './error.handler';\nimport { CoreService } from '../services/core/core.service';\n//import { NgxSpinnerService } from 'ngx-spinner';\n\n\n@Injectable()\nexport class CustomHttpInterceptor implements HttpInterceptor {\n\n constructor(\n private authService: AuthService,\n private coreService: CoreService\n ) { }\n\n intercept(request: HttpRequest, next: HttpHandler): Observable> {\n\n var token = this.authService.getToken();\n var requestURL = request.url\n if (requestURL == \"/assets/i18n/en.json\" || requestURL == \"/assets/i18n/tr.json\") {\n \n }\n else {\n request = request.clone({\n url: `${request.url}`,\n setHeaders: {\n //'Content-Type': 'application/json',\n //Authorization: `Bearer ${token}`\n }\n });\n }\n \n\n //return next.handle(request);\n\n return next.handle(request).pipe(\n tap(\n (event: HttpEvent) => {\n if (!(event instanceof HttpResponse)) {\n return;\n }\n\n if(event.body.result === true && event.body.messageId !== 0) {\n this.coreService.showSuccessMessage(event.body.message);\n }\n\n if(event.body.result === false) {\n let error = new Error()\n error.name = BussionErrorTypes.Server;\n error.message = event.body.message;\n error.stack = event.body.messageId.toString();\n throw error;\n }\n },\n (error: Error) => {\n // hide spinner\n //this.spinner.hide();\n }\n )\n );\n }\n\n\n}\n","import { Injectable } from '@angular/core';\nimport { CanActivate, Router } from '@angular/router';\nimport { AuthService } from '../services/auth/auth.service';\nimport { PermissionService } from '../services/permission/permission.service';\nimport { ActivatedRouteSnapshot, CanActivateChild, RouterStateSnapshot } from '@angular/router';\nimport { Observable, of } from 'rxjs';\nimport { concatMap, map, mergeMap, tap } from 'rxjs/operators';\nimport { CoreService } from '../services/core/core.service';\nimport { TranslateService } from '@ngx-translate/core';\n\n@Injectable({\n providedIn: 'root'\n})\nexport class PermissionGuard implements CanActivate {\n\n constructor(\n private permissionService: PermissionService,\n private router: Router,\n private coreService: CoreService,\n private translate: TranslateService\n ) { }\n\n localpermissions: any[] = []\n\n\n canActivate(route: ActivatedRouteSnapshot, state: RouterStateSnapshot): Observable {\n\n return this.permissionService.getAuthApp().pipe(\n mergeMap(res => this.permissionService.getUserPermissions()),\n map(permissions => {\n console.log(route)\n let hasPermission = this.checkPermissions(route.routeConfig.path, permissions, route);\n if (!hasPermission) {\n this.coreService.showErrorMessage(this.translate.instant(\"ErrorMessages.NoPermission\"));\n if (!this.permissionService.getUserPermissionForApp()) {\n this.permissionService.getUserHomePage()\n // this.router.navigate([this.permissionService.getUserHomePage()]);\n } else\n this.router.navigate(['']);\n }\n return hasPermission\n })\n )\n }\n\n\n checkPermissions(path: string, permissions: string[], route: ActivatedRouteSnapshot): boolean {\n\n\n if (path == 'group') {\n return permissions.includes('GroupManagement');\n }\n else if (path == 'user') {\n return permissions.includes('UserManagement');\n }\n else if (path == 'role') {\n return permissions.includes('RoleManagement');\n }\n else if (path == 'visual') {\n return permissions.includes('VisualComponentManagement');\n }\n else if (path == 'connectors') {\n return permissions.includes('BussionConnectorManagement');\n }\n else if (path == 'color-palette') {\n return permissions.includes('ColorPaletteManagement');\n }\n else if (path == 'dashboard') {\n return permissions.includes('DashboardDesign');\n }\n else if (path == 'datastore') {\n return permissions.includes('DataStoreManagement');\n }\n else if (path == 'global-functions') {\n return permissions.includes('GlobalFunctionManagement');\n }\n else if (path == 'widget-library') {\n return permissions.includes('WidgetLibraryManagement');\n }\n else if (path == 'widget-library') {\n return permissions.includes('ApplicationManagement');\n }\n else if (path == 'dashboard/designer/:dashboardId') {\n return permissions.includes('DashboardDesign');\n }\n else if (path == 'license') {\n return permissions.includes('LicenseManagement');\n }\n else if (path == 'ldap-config') {\n return permissions.includes('SystemConfiguration');\n }\n else if (path == 'password-policy') {\n return permissions.includes('SystemConfiguration');\n }\n else if (path == 'scripts') {\n return permissions.includes('SystemConfiguration');\n }\n else if (path == 'deploy-app') {\n return permissions.includes('ApplicationManagement') && this.bussionModulePermission('Bussion Apps');\n }\n else if (path == 'node') {\n return permissions.includes('NodeManagement');\n }\n else if (path.includes('flow')) {\n return permissions.includes('DataEngineer') && this.bussionModulePermission('Data Flow');\n }\n else if (path.includes('selfservice') || path.includes('analyze') || path.includes('dashboard-list') || path.includes('data-store-list')) {\n return permissions.includes('DataEngineer') || permissions.includes('SelfService');\n\n } else if (path.includes('system-parameters')) {\n\n return permissions.includes('MaxTries') || permissions.includes('Debugger') || permissions.includes('Captcha')\n } else if (path.includes(\"bussion-logs\")) {\n\n return permissions.includes('SystemConfiguration')\n }\n else if (path.includes('data-app')) {\n return true\n } else if (path.includes('main/:appId')) {\n return this.permissionService.appIdPermission(route.params['appId'])\n }\n else if (path == \"\" || path.includes('landing')) {\n\n if (this.managementPanelRoles.some(eleman1 => permissions.includes(eleman1))) {\n return true\n } else {\n return this.permissionService.getUserPermissionForApp() && true\n }\n }\n else {\n return true;\n }\n }\n\n managementPanelRoles: string[] = ['GroupManagement',\n 'UserManagement',\n 'RoleManagement',\n 'VisualComponentManagement',\n 'BussionConnectorManagement',\n 'ColorPaletteManagement',\n 'DashboardDesign',\n 'DataStoreManagement',\n 'GlobalFunctionManagement',\n 'WidgetLibraryManagement',\n 'ApplicationManagement',\n 'DashboardDesign',\n 'LicenseManagement',\n 'SystemConfiguration',\n 'NodeManagement',\n 'DataEngineer',\n 'MaxTries',\n 'Debugger',\n 'Captcha',\n 'Data Flow',\n 'SelfService'\n ]\n\n\n\n\n bussionModulePermission(keyword) {\n var licencePermissions = localStorage.getItem('licence')\n if (licencePermissions) {\n // licencePermissions = JSON.parse(localStorage.getItem('licence'));\n return licencePermissions.includes(keyword)\n }\n else return false\n }\n}","export enum SpeechProcces {\n Delete = 1,\n Show = 2,\n Close = 3,\n AssistantOpen = 4,\n AssistantClose = 5,\n HomePage = 6,\n Refresh = 7,\n Help = 8,\n OpenDashboard = 9,\n FilterDashboard = 10,\n TextToChatBot=11\n}\n\nexport enum SpeechStatus {\n Hearing='Hearing',\n Stoped='Stoped',\n Processing='Processing',\n Processed='Processed'\n\n}\n","import { BussionFilterDefinition } from \"../models/responses/dataStoreResponse\";\n\nexport enum idKeyword {\n dashboard = 'dashboard',\n app = 'app'\n}\n\nexport function cerateCssFile(css: string, dashboardid: string, keyword: string) {\n var style = document.createElement('style');\n style.type = 'text/css';\n var csstext = '#' + keyword + dashboardid + '{' + css + '}'\n style.innerHTML = csstext;\n style.id = dashboardid;\n\n document.getElementsByTagName('head')[0].appendChild(style);\n}\n\n\nexport function deleteCssFile(styleid: string) {\n var selectedStyle = document.getElementsByTagName('style')\n if (selectedStyle) {\n if (Array.from(selectedStyle).find(x => x.id == styleid))\n Array.from(selectedStyle).find(x => x.id == styleid).remove()\n }\n}\n\n\nexport function filterString(filter: BussionFilterDefinition[]) {\n let filterString = JSON.stringify(Object.assign({}, filter))\n var stringFilter = '[' + filter.map(item => {\n return JSON.stringify(item)\n }) + ']'\n return stringFilter\n}\n\n\n\nexport function dateEditor(timeISOString: string, type: string) {\n var time = new Date(timeISOString);\n var dateTime = new Date(time);\n if (type == 'end') {\n dateTime.setHours(23, 59, 59, 0);\n } else {\n dateTime.setHours(0, 0, 0, 0);\n }\n dateTime.setMinutes(dateTime.getMinutes() - dateTime.getTimezoneOffset())\n\n var timeString = dateTime.toISOString();\n var editedDate = timeString.split('.')[0] + 'Z'\n\n return editedDate;\n}\n","import {NgModule} from '@angular/core';\nimport {A11yModule} from '@angular/cdk/a11y';\nimport {ClipboardModule} from '@angular/cdk/clipboard';\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 ClipboardModule,\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 MatGridListModule,\n ScrollingModule,\n ]\n})\nexport class MaterialModule {}","export const LanguagesShortCode = [\n {\n \"code\": \"ab\",\n \"name\": \"Abkhaz\"\n },\n {\n \"code\": \"aa\",\n \"name\": \"Afar\"\n },\n {\n \"code\": \"af\",\n \"name\": \"Afrikaans\"\n },\n {\n \"code\": \"ak\",\n \"name\": \"Akan\"\n },\n {\n \"code\": \"sq\",\n \"name\": \"Albanian\"\n },\n {\n \"code\": \"am\",\n \"name\": \"Amharic\"\n },\n {\n \"code\": \"ar\",\n \"name\": \"Arabic\"\n },\n {\n \"code\": \"an\",\n \"name\": \"Aragonese\"\n },\n {\n \"code\": \"hy\",\n \"name\": \"Armenian\"\n },\n {\n \"code\": \"as\",\n \"name\": \"Assamese\"\n },\n {\n \"code\": \"av\",\n \"name\": \"Avaric\"\n },\n {\n \"code\": \"ae\",\n \"name\": \"Avestan\"\n },\n {\n \"code\": \"ay\",\n \"name\": \"Aymara\"\n },\n {\n \"code\": \"az\",\n \"name\": \"Azerbaijani\"\n },\n {\n \"code\": \"bm\",\n \"name\": \"Bambara\"\n },\n {\n \"code\": \"ba\",\n \"name\": \"Bashkir\"\n },\n {\n \"code\": \"eu\",\n \"name\": \"Basque\"\n },\n {\n \"code\": \"be\",\n \"name\": \"Belarusian\"\n },\n {\n \"code\": \"bn\",\n \"name\": \"Bengali; Bangla\"\n },\n {\n \"code\": \"bh\",\n \"name\": \"Bihari\"\n },\n {\n \"code\": \"bi\",\n \"name\": \"Bislama\"\n },\n {\n \"code\": \"bs\",\n \"name\": \"Bosnian\"\n },\n {\n \"code\": \"br\",\n \"name\": \"Breton\"\n },\n {\n \"code\": \"bg\",\n \"name\": \"Bulgarian\"\n },\n {\n \"code\": \"my\",\n \"name\": \"Burmese\"\n },\n {\n \"code\": \"ca\",\n \"name\": \"Catalan; Valencian\"\n },\n {\n \"code\": \"ch\",\n \"name\": \"Chamorro\"\n },\n {\n \"code\": \"ce\",\n \"name\": \"Chechen\"\n },\n {\n \"code\": \"ny\",\n \"name\": \"Chichewa; Chewa; Nyanja\"\n },\n {\n \"code\": \"zh\",\n \"name\": \"Chinese\"\n },\n {\n \"code\": \"cv\",\n \"name\": \"Chuvash\"\n },\n {\n \"code\": \"kw\",\n \"name\": \"Cornish\"\n },\n {\n \"code\": \"co\",\n \"name\": \"Corsican\"\n },\n {\n \"code\": \"cr\",\n \"name\": \"Cree\"\n },\n {\n \"code\": \"hr\",\n \"name\": \"Croatian\"\n },\n {\n \"code\": \"cs\",\n \"name\": \"Czech\"\n },\n {\n \"code\": \"da\",\n \"name\": \"Danish\"\n },\n {\n \"code\": \"dv\",\n \"name\": \"Divehi; Dhivehi; Maldivian;\"\n },\n {\n \"code\": \"nl\",\n \"name\": \"Dutch\"\n },\n {\n \"code\": \"dz\",\n \"name\": \"Dzongkha\"\n },\n {\n \"code\": \"en\",\n \"name\": \"English\"\n },\n {\n \"code\": \"eo\",\n \"name\": \"Esperanto\"\n },\n {\n \"code\": \"et\",\n \"name\": \"Estonian\"\n },\n {\n \"code\": \"ee\",\n \"name\": \"Ewe\"\n },\n {\n \"code\": \"fo\",\n \"name\": \"Faroese\"\n },\n {\n \"code\": \"fj\",\n \"name\": \"Fijian\"\n },\n {\n \"code\": \"fi\",\n \"name\": \"Finnish\"\n },\n {\n \"code\": \"fr\",\n \"name\": \"French\"\n },\n {\n \"code\": \"ff\",\n \"name\": \"Fula; Fulah; Pulaar; Pular\"\n },\n {\n \"code\": \"gl\",\n \"name\": \"Galician\"\n },\n {\n \"code\": \"ka\",\n \"name\": \"Georgian\"\n },\n {\n \"code\": \"de\",\n \"name\": \"German\"\n },\n {\n \"code\": \"el\",\n \"name\": \"Greek, Modern\"\n },\n {\n \"code\": \"gn\",\n \"name\": \"Guaraní\"\n },\n {\n \"code\": \"gu\",\n \"name\": \"Gujarati\"\n },\n {\n \"code\": \"ht\",\n \"name\": \"Haitian; Haitian Creole\"\n },\n {\n \"code\": \"ha\",\n \"name\": \"Hausa\"\n },\n {\n \"code\": \"he\",\n \"name\": \"Hebrew (modern)\"\n },\n {\n \"code\": \"hz\",\n \"name\": \"Herero\"\n },\n {\n \"code\": \"hi\",\n \"name\": \"Hindi\"\n },\n {\n \"code\": \"ho\",\n \"name\": \"Hiri Motu\"\n },\n {\n \"code\": \"hu\",\n \"name\": \"Hungarian\"\n },\n {\n \"code\": \"ia\",\n \"name\": \"Interlingua\"\n },\n {\n \"code\": \"id\",\n \"name\": \"Indonesian\"\n },\n {\n \"code\": \"ie\",\n \"name\": \"Interlingue\"\n },\n {\n \"code\": \"ga\",\n \"name\": \"Irish\"\n },\n {\n \"code\": \"ig\",\n \"name\": \"Igbo\"\n },\n {\n \"code\": \"ik\",\n \"name\": \"Inupiaq\"\n },\n {\n \"code\": \"io\",\n \"name\": \"Ido\"\n },\n {\n \"code\": \"is\",\n \"name\": \"Icelandic\"\n },\n {\n \"code\": \"it\",\n \"name\": \"Italian\"\n },\n {\n \"code\": \"iu\",\n \"name\": \"Inuktitut\"\n },\n {\n \"code\": \"ja\",\n \"name\": \"Japanese\"\n },\n {\n \"code\": \"jv\",\n \"name\": \"Javanese\"\n },\n {\n \"code\": \"kl\",\n \"name\": \"Kalaallisut, Greenlandic\"\n },\n {\n \"code\": \"kn\",\n \"name\": \"Kannada\"\n },\n {\n \"code\": \"kr\",\n \"name\": \"Kanuri\"\n },\n {\n \"code\": \"ks\",\n \"name\": \"Kashmiri\"\n },\n {\n \"code\": \"kk\",\n \"name\": \"Kazakh\"\n },\n {\n \"code\": \"km\",\n \"name\": \"Khmer\"\n },\n {\n \"code\": \"ki\",\n \"name\": \"Kikuyu, Gikuyu\"\n },\n {\n \"code\": \"rw\",\n \"name\": \"Kinyarwanda\"\n },\n {\n \"code\": \"ky\",\n \"name\": \"Kyrgyz\"\n },\n {\n \"code\": \"kv\",\n \"name\": \"Komi\"\n },\n {\n \"code\": \"kg\",\n \"name\": \"Kongo\"\n },\n {\n \"code\": \"ko\",\n \"name\": \"Korean\"\n },\n {\n \"code\": \"ku\",\n \"name\": \"Kurdish\"\n },\n {\n \"code\": \"kj\",\n \"name\": \"Kwanyama, Kuanyama\"\n },\n {\n \"code\": \"la\",\n \"name\": \"Latin\"\n },\n {\n \"code\": \"lb\",\n \"name\": \"Luxembourgish, Letzeburgesch\"\n },\n {\n \"code\": \"lg\",\n \"name\": \"Ganda\"\n },\n {\n \"code\": \"li\",\n \"name\": \"Limburgish, Limburgan, Limburger\"\n },\n {\n \"code\": \"ln\",\n \"name\": \"Lingala\"\n },\n {\n \"code\": \"lo\",\n \"name\": \"Lao\"\n },\n {\n \"code\": \"lt\",\n \"name\": \"Lithuanian\"\n },\n {\n \"code\": \"lu\",\n \"name\": \"Luba-Katanga\"\n },\n {\n \"code\": \"lv\",\n \"name\": \"Latvian\"\n },\n {\n \"code\": \"gv\",\n \"name\": \"Manx\"\n },\n {\n \"code\": \"mk\",\n \"name\": \"Macedonian\"\n },\n {\n \"code\": \"mg\",\n \"name\": \"Malagasy\"\n },\n {\n \"code\": \"ms\",\n \"name\": \"Malay\"\n },\n {\n \"code\": \"ml\",\n \"name\": \"Malayalam\"\n },\n {\n \"code\": \"mt\",\n \"name\": \"Maltese\"\n },\n {\n \"code\": \"mi\",\n \"name\": \"MÄori\"\n },\n {\n \"code\": \"mr\",\n \"name\": \"Marathi (MarÄá¹­hÄ«)\"\n },\n {\n \"code\": \"mh\",\n \"name\": \"Marshallese\"\n },\n {\n \"code\": \"mn\",\n \"name\": \"Mongolian\"\n },\n {\n \"code\": \"na\",\n \"name\": \"Nauru\"\n },\n {\n \"code\": \"nv\",\n \"name\": \"Navajo, Navaho\"\n },\n {\n \"code\": \"nb\",\n \"name\": \"Norwegian BokmÃ¥l\"\n },\n {\n \"code\": \"nd\",\n \"name\": \"North Ndebele\"\n },\n {\n \"code\": \"ne\",\n \"name\": \"Nepali\"\n },\n {\n \"code\": \"ng\",\n \"name\": \"Ndonga\"\n },\n {\n \"code\": \"nn\",\n \"name\": \"Norwegian Nynorsk\"\n },\n {\n \"code\": \"no\",\n \"name\": \"Norwegian\"\n },\n {\n \"code\": \"ii\",\n \"name\": \"Nuosu\"\n },\n {\n \"code\": \"nr\",\n \"name\": \"South Ndebele\"\n },\n {\n \"code\": \"oc\",\n \"name\": \"Occitan\"\n },\n {\n \"code\": \"oj\",\n \"name\": \"Ojibwe, Ojibwa\"\n },\n {\n \"code\": \"cu\",\n \"name\": \"Old Church Slavonic, Church Slavic, Church Slavonic, Old Bulgarian, Old Slavonic\"\n },\n {\n \"code\": \"om\",\n \"name\": \"Oromo\"\n },\n {\n \"code\": \"or\",\n \"name\": \"Oriya\"\n },\n {\n \"code\": \"os\",\n \"name\": \"Ossetian, Ossetic\"\n },\n {\n \"code\": \"pa\",\n \"name\": \"Panjabi, Punjabi\"\n },\n {\n \"code\": \"pi\",\n \"name\": \"PÄli\"\n },\n {\n \"code\": \"fa\",\n \"name\": \"Persian (Farsi)\"\n },\n {\n \"code\": \"pl\",\n \"name\": \"Polish\"\n },\n {\n \"code\": \"ps\",\n \"name\": \"Pashto, Pushto\"\n },\n {\n \"code\": \"pt\",\n \"name\": \"Portuguese\"\n },\n {\n \"code\": \"qu\",\n \"name\": \"Quechua\"\n },\n {\n \"code\": \"rm\",\n \"name\": \"Romansh\"\n },\n {\n \"code\": \"rn\",\n \"name\": \"Kirundi\"\n },\n {\n \"code\": \"ro\",\n \"name\": \"Romanian, [])\"\n },\n {\n \"code\": \"ru\",\n \"name\": \"Russian\"\n },\n {\n \"code\": \"sa\",\n \"name\": \"Sanskrit (Saá¹ská¹›ta)\"\n },\n {\n \"code\": \"sc\",\n \"name\": \"Sardinian\"\n },\n {\n \"code\": \"sd\",\n \"name\": \"Sindhi\"\n },\n {\n \"code\": \"se\",\n \"name\": \"Northern Sami\"\n },\n {\n \"code\": \"sm\",\n \"name\": \"Samoan\"\n },\n {\n \"code\": \"sg\",\n \"name\": \"Sango\"\n },\n {\n \"code\": \"sr\",\n \"name\": \"Serbian\"\n },\n {\n \"code\": \"gd\",\n \"name\": \"Scottish Gaelic; Gaelic\"\n },\n {\n \"code\": \"sn\",\n \"name\": \"Shona\"\n },\n {\n \"code\": \"si\",\n \"name\": \"Sinhala, Sinhalese\"\n },\n {\n \"code\": \"sk\",\n \"name\": \"Slovak\"\n },\n {\n \"code\": \"sl\",\n \"name\": \"Slovene\"\n },\n {\n \"code\": \"so\",\n \"name\": \"Somali\"\n },\n {\n \"code\": \"st\",\n \"name\": \"Southern Sotho\"\n },\n {\n \"code\": \"es\",\n \"name\": \"Spanish; Castilian\"\n },\n {\n \"code\": \"su\",\n \"name\": \"Sundanese\"\n },\n {\n \"code\": \"sw\",\n \"name\": \"Swahili\"\n },\n {\n \"code\": \"ss\",\n \"name\": \"Swati\"\n },\n {\n \"code\": \"sv\",\n \"name\": \"Swedish\"\n },\n {\n \"code\": \"ta\",\n \"name\": \"Tamil\"\n },\n {\n \"code\": \"te\",\n \"name\": \"Telugu\"\n },\n {\n \"code\": \"tg\",\n \"name\": \"Tajik\"\n },\n {\n \"code\": \"th\",\n \"name\": \"Thai\"\n },\n {\n \"code\": \"ti\",\n \"name\": \"Tigrinya\"\n },\n {\n \"code\": \"bo\",\n \"name\": \"Tibetan Standard, Tibetan, Central\"\n },\n {\n \"code\": \"tk\",\n \"name\": \"Turkmen\"\n },\n {\n \"code\": \"tl\",\n \"name\": \"Tagalog\"\n },\n {\n \"code\": \"tn\",\n \"name\": \"Tswana\"\n },\n {\n \"code\": \"to\",\n \"name\": \"Tonga (Tonga Islands)\"\n },\n {\n \"code\": \"tr\",\n \"name\": \"Turkish\"\n },\n {\n \"code\": \"ts\",\n \"name\": \"Tsonga\"\n },\n {\n \"code\": \"tt\",\n \"name\": \"Tatar\"\n },\n {\n \"code\": \"tw\",\n \"name\": \"Twi\"\n },\n {\n \"code\": \"ty\",\n \"name\": \"Tahitian\"\n },\n {\n \"code\": \"ug\",\n \"name\": \"Uyghur, Uighur\"\n },\n {\n \"code\": \"uk\",\n \"name\": \"Ukrainian\"\n },\n {\n \"code\": \"ur\",\n \"name\": \"Urdu\"\n },\n {\n \"code\": \"uz\",\n \"name\": \"Uzbek\"\n },\n {\n \"code\": \"ve\",\n \"name\": \"Venda\"\n },\n {\n \"code\": \"vi\",\n \"name\": \"Vietnamese\"\n },\n {\n \"code\": \"vo\",\n \"name\": \"Volapük\"\n },\n {\n \"code\": \"wa\",\n \"name\": \"Walloon\"\n },\n {\n \"code\": \"cy\",\n \"name\": \"Welsh\"\n },\n {\n \"code\": \"wo\",\n \"name\": \"Wolof\"\n },\n {\n \"code\": \"fy\",\n \"name\": \"Western Frisian\"\n },\n {\n \"code\": \"xh\",\n \"name\": \"Xhosa\"\n },\n {\n \"code\": \"yi\",\n \"name\": \"Yiddish\"\n },\n {\n \"code\": \"yo\",\n \"name\": \"Yoruba\"\n },\n {\n \"code\": \"za\",\n \"name\": \"Zhuang, Chuang\"\n },\n {\n \"code\": \"zu\",\n \"name\": \"Zulu\"\n }\n]","import { AfterViewInit, Component, OnChanges, OnDestroy, OnInit, SimpleChanges } from '@angular/core';\nimport { DrawflowConnection, DrawflowExport, DrawflowModuleData, DrawflowNode } from 'drawflow';\nimport { ExecutionRule, Flow, FlowScriptResponse, FlowSession, FlowSriptParameter } from 'src/app/models/responses/flowScript';\nimport { FlowFormComponent } from '../flow-form/flow-form.component';\nimport { ScriptFormComponent } from '../script-form/script-form.component';\nimport { ModalService } from 'src/app/services/modal/modal.service';\nimport { FlowScriptService } from 'src/app/services/flow-scripts/flow-script.service';\nimport { FlowLineRuleFormComponent } from '../flow-line-rule-form/flow-line-rule-form.component';\nimport { ActivatedRoute, NavigationExtras, Router } from '@angular/router';\nimport { FlowNodeParameterFormComponent } from '../flow-node-parameter-form/flow-node-parameter-form.component';\nimport { SweetAlertService } from 'src/app/services/sweet-alert/sweet-alert.service';\nimport { TranslateService } from '@ngx-translate/core';\nimport { CoreService } from 'src/app/services/core/core.service';\nimport { FlowLogComponent } from '../flow-log/flow-log.component';\nimport { AuthService } from 'src/app/services/auth/auth.service';\nimport { environment } from 'src/environments/environment';\nimport { Location } from '@angular/common';\nimport { ConnectorService } from 'src/app/services/connector/connector.service';\nimport { LogComponent } from 'src/app/components/modals/log/log.component';\n\n@Component({\n selector: 'app-flow-designer',\n templateUrl: './flow-designer.component.html',\n styleUrls: ['./flow-designer.component.scss']\n})\nexport class FlowDesignerComponent implements OnInit, OnDestroy {\n\n scriptList: FlowScriptResponse[] = []\n filteredScriptList: FlowScriptResponse[] = []\n changedData: boolean = false\n\n showScriptArea: boolean = true\n currentUserId: string = this.authService.getUserId()\n currentUserRoles: string = this.authService.getRoles()\n executionInterval: any\n loaderInterval: any\n currentSessionId: string = ''\n\n ruleList: { rule: ExecutionRule, input_id: string, output_id: string, ruleid: number }[] = []\n selectedFlowId: string = ''\n updetedScriptList: FlowScriptResponse[] = []\n flowMetaData: string = ''\n runningFlow: boolean = false\n loaderValue: number = 0\n scriptPackages: string[] = []\n selectedPackages: string[] = []\n\n executionLogs: FlowSession[] = []\n allExecutionLogs: FlowSession[] = []\n\n flowObject: Flow = {\n flowId: '',\n name: '',\n description: '',\n bussionConnectorId: '',\n type: 0,//0: Private 1: Public\n version: 0,\n owner: '',\n ownerId: '',\n updateDate: '',\n createDate: '',\n updatedBy: '',\n updateScriptsBeforeRun: 0,\n duration: 0,\n scripts: [],\n flowMetaData: '',\n isStatic: 1\n }\n\n flowScripts: FlowScriptResponse[] = []\n\n cardInfo: {\n img: string,\n smallText1: string,\n smallText2: string,\n title: string,\n desc: string,\n icons: { function: Function, icon: string, condition?: string }[]\n } =\n {\n img: '/assets/images/python.svg',\n smallText1: 'createDate',\n smallText2: 'owner',\n title: 'name',\n desc: 'description',\n icons: [\n // { icon: 'delete-box', function: (e) => this.deleteConfirm(e), condition: 'secret' },\n { icon: 'edit-box', function: (e) => this.openScriptModal(e), condition: 'all' },\n ]\n }\n\n\n\n\n\n nodeList: { item: any, pos_x: number, pos_y: number, nodeId: number }[] = []\n selecteddragelement: HTMLElement\n runlock: boolean = false\n\n constructor(private dialogService: ModalService, private flowScriptService: FlowScriptService, private coreService: CoreService,\n private activerouter: ActivatedRoute, private location: Location, private router: Router, private authService: AuthService, private sweetalertService: SweetAlertService, private translate: TranslateService,\n private connectorService: ConnectorService) { }\n\n ngOnInit(): void {\n this.getScripts();\n\n var locationstate = this.location.getState() as { flow: any };\n\n if (this.activerouter.snapshot.paramMap.get('flowId'))\n this.selectedFlowId = this.activerouter.snapshot.paramMap.get('flowId')\n\n if (locationstate?.flow) {\n // this.flowObject = history.state\n this.flowObject = locationstate?.flow\n this.flowMetaData = this.flowObject.flowMetaData\n this.flowScripts = this.flowObject.scripts\n\n this.setNodeListForUpdate()\n this.getExecutionLogAndChangeBg()\n\n\n } else {\n this.getSelectedFlowData()\n }\n\n this.getScriptPackages()\n\n\n\n }\n\n getScriptPackages() {\n this.flowScriptService.GetPythonPackages().subscribe(res => {\n this.scriptPackages = res\n })\n }\n\n ngOnDestroy(): void {\n clearInterval(this.executionInterval)\n clearInterval(this.loaderInterval)\n\n }\n\n\n\n executionLogTime(selectedFlow: Flow, sessionId: string) {\n var interval = 10\n if (selectedFlow.duration == 0) {\n interval = 10\n } else if (selectedFlow.duration > 1200) {\n interval = 1 * 60\n }\n\n\n this.executionInterval = setInterval(() => this.executedNodeChangeBg(sessionId),\n interval * 1000);\n\n this.loaderInterval = setInterval(() => this.loaderIncrement(selectedFlow), 1000);\n }\n\n loaderIncrement(selectedFlow: Flow) {\n var incrementValue = 100 / (selectedFlow.duration);\n\n\n this.loaderValue = this.loaderValue + incrementValue\n }\n\n\n lastRunnedObject: FlowScriptResponse\n executedNodeChangeBg(sessionId: string) {\n\n this.flowScriptService.getExecutionLogForFlow(sessionId, 'session').subscribe((res: FlowSession[]) => {\n var element\n this.runlock = true\n var selectedSessionList = res.filter(x => x.sessionId == sessionId)\n var executedNodes = selectedSessionList.sort((a, b) => b.sequenceId - a.sequenceId);\n this.currentSessionId = sessionId\n var lastIndex = executedNodes.length - 1\n\n\n\n\n console.log(this.flowObject)\n\n if (executedNodes.length > 0 && executedNodes[0].script.nextStep == -1 && executedNodes[0].state == 0) {\n //flow sona gelmişse durdurur\n clearInterval(this.executionInterval)\n clearInterval(this.loaderInterval)\n\n element = document.getElementById(executedNodes[0].script.nodeId)\n this.runlock = false\n } else if (executedNodes.length > 0 && executedNodes[0]?.script?.nextStep == -1 && executedNodes[0].state == 1) {\n // flow devam ediyorsa\n element = document.getElementById(executedNodes[0].script.nodeId)\n }\n else {\n element = document.getElementById(this.flowObject.scripts[0].nodeId)\n }\n\n //yeşil\n if (element) {\n var currentRunnedObject = this.flowObject.scripts.find(x => x.nodeId == element.id)\n\n if (currentRunnedObject) {\n element = document.getElementById(currentRunnedObject.nodeId)\n element.style.setProperty('background', '#D3F6DB', 'important');\n element.classList.add('colored-node')\n }\n\n if (this.lastRunnedObject) {\n var calisacak = this.lastRunnedObject?.nextExecutions?.find(x => x.scriptId == currentRunnedObject.nodeId)?.exitCode\n\n this.lastRunnedObject?.nextExecutions?.map(item => {\n if (item?.exitCode == calisacak) {\n var el = document.getElementById(item.scriptId)\n el.style.setProperty('background', '#D3F6DB', 'important');\n el.classList.add('colored-node')\n }\n })\n } else {\n element.style.setProperty('background', '#D3F6DB', 'important');\n element.classList.add('colored-node')\n }\n\n\n if (currentRunnedObject && currentRunnedObject.parameters.some(x => x.key == 'ConnectorId')) {\n this.addConnectorLogIcon(element, currentRunnedObject.parameters.find(x => x.key == 'ConnectorId').value)\n }\n\n\n\n this.lastRunnedObject = currentRunnedObject\n }\n\n executedNodes.map(node => {\n var selectednode = document.getElementById(node.script.nodeId)\n if (node.state == 0) {\n if (selectednode.getElementsByClassName('conectorlogeye')) {\n selectednode.getElementsByClassName('conectorlogeye')[0]?.remove()\n }\n\n if (node.executionResult == 0) {\n //mavi\n document.getElementById(node.script.nodeId).style.setProperty('background', '#92D5E6', 'important');\n document.getElementById(node.script.nodeId).classList.add('colored-node')\n } else {\n //kırmızı\n document.getElementById(node.script.nodeId).style.setProperty('background', '#FFA69E', 'important');\n document.getElementById(node.script.nodeId).classList.add('colored-node')\n\n }\n }\n\n })\n\n })\n }\n\n removeConnectorIcon(element: any) {\n var removeElement = element.getElementById('conectorlogeye')\n if (removeElement)\n removeElement.remove()\n }\n\n addConnectorLogIcon(element: any, connectorId: string) {\n var connectorLog = document.createElement('div')\n connectorLog.id = \"conectorlogeye\"\n connectorLog.classList.add(\"conectorlogeye\")\n\n\n if (Array.from(element.getElementsByClassName('conectorlogeye')).length <= 0) {\n connectorLog.innerHTML = ' '\n element.getElementsByClassName('action-area')[0].appendChild(connectorLog)\n connectorLog.onclick = () => {\n this.openTaskLogs(connectorId)\n\n }\n }\n\n }\n\n private openTaskLogs(taskId: string) {\n let data = {\n taskId: taskId,\n visibleButton: false\n\n }\n this.dialogService.openModal(data, LogComponent, '600px', '600px', 'overflow-hidden', 'center').subscribe(status => {\n // this.getBussionConnectorTasks();\n });\n }\n\n setNodeListForUpdate() {\n try {\n const jsonMeta = JSON.parse(this.flowMetaData)?.flow?.drawflow?.Home?.data;\n\n this.nodeList = []; // Mevcut listeyi temizle\n\n if (jsonMeta) {\n // Ara bir dizi oluşturup atama yap\n this.nodeList = Object.keys(jsonMeta).map(item => ({\n item: jsonMeta[item].data,\n pos_x: jsonMeta[item].pos_x,\n pos_y: jsonMeta[item].pos_y,\n nodeId: jsonMeta[item].id\n }));\n }\n } catch (error) {\n console.error(\"setNodeListForUpdate sırasında hata oluştu:\", error);\n }\n }\n\n\n createConnectionForEdit() {\n var metadata = JSON.parse(this.flowObject.flowMetaData)\n if (metadata.ruleList) {\n this.ruleList = metadata.ruleList\n this.ruleList = this.ruleList.filter(x => !x.ruleid).length > 0 ? this.ruleList.map((item, key) => {\n return { ...item, ruleid: key + 1 }\n }) : this.ruleList\n }\n\n\n this.ruleList.map(item => {\n let label1 = document.querySelector('.connection.node_in_node-' + item.input_id + '.node_out_node-' + item.output_id + '.output_1.input_1');\n\n\n this.addLabelText(label1, item.rule.name + ' (exitCode=' + item.rule.exitCode + ')');\n })\n\n\n\n }\n\n getSelectedFlowData() {\n if (this.selectedFlowId)\n this.flowScriptService.getFlowById(this.selectedFlowId).subscribe(res => {\n if (res) {\n this.flowObject = res\n this.flowMetaData = this.flowObject.flowMetaData;\n this.flowScripts = this.flowObject.scripts\n this.setNodeListForUpdate()\n this.getExecutionLogAndChangeBg()\n }\n })\n }\n\n\n\n openScriptModal(selectedElement?: FlowScriptResponse) {\n var data = selectedElement ? selectedElement : null\n this.dialogService.openModal({\n script: data,\n type: data ? 'fromscriptinsert' : 'fromscriptedit',\n deleteFunction: (e) => this.deleteConfirm(e)\n }, ScriptFormComponent, 'auto', 'auto', 'overflow-hidden', 'center').subscribe(res => {\n if (res) {\n this.getScripts()\n this.getScriptPackages()\n\n }\n })\n }\n\n deleteConfirm(selectedElement?: FlowScriptResponse) {\n this.sweetalertService.open(\n this.translate.instant(\"ActionDialogComponent.Message\"),\n this.translate.instant(selectedElement.name + this.translate.instant('Common.DeleteConfirmText')),\n 'question',\n this.translate.instant(\"Common.Done\"),\n (res) => {\n if (res.isConfirmed) {\n this.deleteScript(selectedElement.scriptId);\n this.dialogService.dissmissAll()\n }\n },\n true\n )\n }\n\n deleteScript(scriptId: string) {\n this.flowScriptService.deleteFlowScript(scriptId).subscribe(res => {\n if (res.result) {\n this.coreService.showSuccessMessage(res.message)\n this.getScripts();\n }\n\n })\n }\n\n\n\n dragStarted(event) {\n this.selecteddragelement = event.source.element.nativeElement.getBoundingClientRect()\n event.source.element.nativeElement.style.position = 'absolute'\n\n }\n\n getScripts() {\n this.flowScriptService.getFlowScripts().subscribe(res => {\n if (res) {\n this.scriptList = res\n this.filteredScriptList = res\n }\n })\n }\n\n filterScripts(text: any, filterkey?: string) {\n if (!filterkey) {\n if (text == '')\n this.filteredScriptList = this.scriptList\n else\n this.filteredScriptList = this.scriptList.filter(x => x.name.toLowerCase().includes(text.toLowerCase()) || x.description.toLowerCase().includes(text.toLowerCase()))\n } else {\n if (text.length > 0) {\n this.filteredScriptList = this.scriptList.filter(script =>\n text.some(txt =>\n script.package.includes(txt)\n )\n );\n } else {\n this.selectedPackages = []\n this.filteredScriptList = this.scriptList\n }\n }\n }\n\n\n\n dragEnd(event: any, item: FlowScriptResponse) {\n if (event.event.target.className == 'drawflow') {\n this.nodeList = [...this.nodeList, { item: item, pos_x: event.dropPoint.x, pos_y: event.dropPoint.y, nodeId: this.nodeList.length <= 0 ? 1 : this.nodeList[this.nodeList.length - 1].nodeId + 1 }]\n }\n\n document.getElementById(event.source.element.nativeElement.id).style.position = 'relative'\n event.source._dragRef.reset();\n\n\n }\n\n\n openFlowModal(selectedElement: Flow, openModal: boolean) {\n var data = { flow: selectedElement ? selectedElement : null, deleteFunction: null }\n if (openModal) {\n this.dialogService.openModal(data, FlowFormComponent, '50%', '50%', 'overflow-hidden', 'center').subscribe(res => {\n if (res) {\n this.flowScriptService.getFlows().subscribe((response: Flow[]) => {\n if (response) {\n const navigationExtras: NavigationExtras = {\n state: { flow: response.find(x => x.flowId == res), flowId: response.find(x => x.flowId == res).flowId },\n skipLocationChange: false,\n };\n if (this.router.url !== `/flow/flow-designer/${res}`)\n this.router.navigate(['/flow/flow-designer', res], navigationExtras).then(res => {\n window.location.reload()\n })\n\n }\n })\n }\n })\n } else {\n if (selectedElement.flowId)\n this.flowScriptService.upsertFlow(selectedElement).subscribe(res => {\n if (res) {\n this.getSelectedFlowData()\n }\n })\n }\n }\n\n nodeRemoved(selectedId: number) {\n this.ruleList = this.ruleList.filter(x => x.input_id !== selectedId.toString() && x.output_id !== selectedId.toString())\n\n }\n\n connectionRemoved(\n selectedConnection: {\n output_id: string,\n input_id: string,\n output_class: string,\n input_class: string\n }\n ) {\n var deletedİndex = this.ruleList.findIndex(x => x.input_id == selectedConnection.input_id && x.output_id == selectedConnection.output_id)\n if (deletedİndex > -1) { // only splice array when item is found\n this.ruleList.splice(deletedİndex, 1); // 2nd parameter means remove one item only\n }\n\n\n }\n\n createCardInfo(item: FlowScriptResponse) {\n if (this.currentUserId == item.ownerId || this.currentUserRoles.includes('Admin')) {\n if (item.icon) {\n this.cardInfo.img = environment.baseUrl + item.icon\n }\n return this.cardInfo\n }\n else {\n var filtered = { ...this.cardInfo, icons: this.cardInfo.icons.filter(x => x.condition == 'all') }\n if (item.icon) {\n filtered.img = environment.baseUrl + item.icon\n }\n return filtered;\n }\n }\n\n clearFunction() {\n //burada clear ediyoruz renkleri sileceğiz\n // this.ruleList = []\n Array.from(document.getElementsByClassName('colored-node')).forEach(item => {\n (item as HTMLElement).style.setProperty('background', 'white', 'important');\n })\n }\n\n\n saveFlow(flow: DrawflowExport | any, openmodal: boolean = true) {\n\n var scriptList: FlowScriptResponse[] = []\n var firstElementList: FlowScriptResponse[] = []\n var flowData = flow.drawflow.Home.data\n var connectionCount = 0\n\n //üstüne kural tanımlanmamış line varsa hata verecek\n Object.keys(flowData).map(item => {\n connectionCount = connectionCount + flowData[item].outputs.output_1.connections.length\n })\n\n if (connectionCount !== this.ruleList.length) {\n this.sweetalertService.open(\n this.translate.instant(\"FlowPage.NoLineRule\"),\n this.translate.instant(\"FlowPage.NoLineRuleText\"),\n 'warning',\n this.translate.instant(\"Common.Done\"),\n (res) => { },\n false\n )\n return;\n }\n\n if (Object.keys(flowData)) {\n Object.keys(flowData).map(item => {\n var rules = this.ruleList.filter(x => x.output_id == flowData[item].id.toString())\n if (this.updetedScriptList.some(x => x.nodeId == flowData[item].name)) {\n flowData[item].data = this.updetedScriptList.find(x => x.nodeId == flowData[item].name)\n }\n\n flowData[item].data.nextExecutions = rules.map(ru => {\n ru.rule.scriptId = 'node-' + ru.input_id\n return ru.rule\n })\n\n\n\n //listede akışın ilk elemanını bulup başa atıyoruz\n if (flowData[item].inputs.input_1.connections.length <= 0) {\n firstElementList.push({ ...flowData[item].data, nodeId: 'node-' + flowData[item].id, dependency: [] })\n\n // var addedIndex = firstElementList.indexOf(flowData[item].data)\n // flowData[item].name = 'sequence-' + (addedIndex+1)\n\n }\n else {\n scriptList.push({\n ...flowData[item].data, nodeId: 'node-' + flowData[item].id, dependency: flowData[item].inputs.input_1.connections.map(con => {\n return 'node-' + con.node\n }) || []\n })\n\n // var addedIndex = scriptList.indexOf(flowData[item].data)\n // console.log(firstElementList.length,addedIndex)\n // flowData[item].name = 'sequence-' + (firstElementList.length + addedIndex)\n }\n\n })\n // console.log('scriptListilk', scriptList)\n scriptList = firstElementList.concat(scriptList);\n // scriptList.unshift(firstElement);\n\n\n this.flowObject.scripts = scriptList\n\n }\n\n\n var metaData = {\n flow: flow,\n ruleList: this.ruleList\n }\n\n this.flowObject.flowMetaData = JSON.stringify(metaData)\n\n this.openFlowModal(this.flowObject, openmodal)\n\n\n }\n\n addLabelText(bgPath, labelText) {\n if (bgPath) {\n if (bgPath.getElementsByTagName('text').length > 0) {\n Array.from(bgPath.getElementsByTagName('text')).forEach(function (element: HTMLElement) {\n element.remove();\n });\n }\n const newid = [bgPath.classList].join().replace(/\\s/g, '');\n bgPath.childNodes[0].id = newid;\n let textElem = document.createElementNS(bgPath.namespaceURI, \"text\");\n let textElemPath = document.createElementNS(bgPath.namespaceURI, \"textPath\");\n textElemPath.setAttribute(\"href\", `#${newid}`);\n textElemPath.setAttribute(\"text-anchor\", \"middle\");\n textElemPath.setAttribute(\"startOffset\", \"50%\");\n textElemPath.classList.add(\"label-text\");\n textElemPath.textContent = labelText;\n textElem.setAttribute(\"font-size\", \"15\"); // Varsayılan 12px\n textElem.setAttribute(\"fill\", \"#black\");\n textElem.setAttribute(\"y\", \"20\");\n textElem.appendChild(textElemPath);\n\n bgPath.appendChild(textElem);\n }\n }\n\n connectionSelected(selectedelement: {\n selectedConnection: {\n output_id: string,\n input_id: string,\n output_class: string,\n input_class: string\n }, flow: DrawflowExport,\n conName?: string\n }) {\n\n var selectedRule = this.ruleList.find(x => x.input_id == selectedelement.selectedConnection.input_id && x.output_id == selectedelement.selectedConnection.output_id) || null\n if (selectedelement?.conName == 'default') {\n // ruleList'i ruleid'ye göre sırala\n this.ruleList.sort((a, b) => a.ruleid - b.ruleid);\n\n // En son sıradaki öğeyi al\n const lastRuleId = this.ruleList[this.ruleList.length - 1]?.ruleid || 0;\n var newExecRule: ExecutionRule = {\n exitCode: 0,\n name: 'rule-' + (lastRuleId + 1),\n scriptId: selectedelement.flow.drawflow.Home.data[selectedelement.selectedConnection.input_id].data.scriptId\n }\n this.addNewRule(newExecRule, selectedelement.selectedConnection)\n\n } else {\n\n this.dialogService.openModal({ selectedRule: selectedRule, selectedConnection: selectedelement.selectedConnection, ruleList: this.ruleList }, FlowLineRuleFormComponent, '30%', '20%', 'responsive-modal', 'center').subscribe((res: ExecutionRule) => {\n if (res) {\n res.scriptId = selectedelement.flow.drawflow.Home.data[selectedelement.selectedConnection.input_id].data.scriptId\n\n if (selectedRule)\n this.ruleList = this.ruleList.filter(x => !(x.input_id == selectedRule.input_id && x.output_id == selectedRule.output_id))\n\n\n this.addNewRule(res, selectedelement.selectedConnection)\n\n }\n })\n }\n\n }\n\n addNewRule(newExecutionRule: ExecutionRule, selectedConnection: {\n output_id: string,\n input_id: string,\n output_class: string,\n input_class: string\n }) {\n this.ruleList.push({ rule: newExecutionRule, input_id: selectedConnection.input_id, output_id: selectedConnection.output_id, ruleid: this.ruleList.length > 0 ? this.ruleList[this.ruleList.length - 1].ruleid + 1 : 0 })\n\n let label1 = document.querySelector('.connection.node_in_node-' + selectedConnection.input_id + '.node_out_node-' + selectedConnection.output_id + '.output_1.input_1');\n this.addLabelText(label1, newExecutionRule.name + ' (exitCode=' + newExecutionRule.exitCode + ')');\n }\n\n\n\n nodeSettingSelected(data: { selectedNode: DrawflowNode, selectedNodeId: string, flowData: DrawflowModuleData, type: string, Nodefunction?: Function, drawFlowExport: DrawflowExport }) {\n\n if (data.type.includes('parameter')) {\n if (data.selectedNode.data.parameters.length <= 0) {\n this.sweetalertService.open(\n this.translate.instant(\"FlowPage.NoParameters\"),\n this.translate.instant(\"FlowPage.NoParametersText\"),\n 'warning',\n this.translate.instant(\"Common.Done\"),\n (res) => { },\n false\n )\n } else {\n\n var newData = this.updetedScriptList.find(x => x.nodeId == data.selectedNodeId) ?? data.selectedNode.data;\n\n this.dialogService.openModal(newData, FlowNodeParameterFormComponent, 'auto', '30%', 'padding-0-modal', 'center').subscribe(res => {\n if (res) {\n console.log('nodeList', this.nodeList, 'flowScripts', this.flowScripts)\n var changedobj = this.nodeList.find(x => x.item.nodeId == data.selectedNodeId)\n changedobj.item = {\n ...changedobj.item, parameters: changedobj.item.parameters.map(item => {\n return { ...item, value: res[item.key] }\n })\n };\n\n if (this.updetedScriptList.some(x => x.nodeId == newData.nodeId)) {\n this.updetedScriptList = this.updetedScriptList.filter(x => x.nodeId !== newData.nodeId)\n }\n this.updetedScriptList.push(changedobj.item)\n\n var savedata = { drawflow: { Home: { data: data.flowData } } }\n this.saveFlow(savedata, false)\n\n }\n })\n }\n } else {\n this.dialogService.openModal({ script: data.selectedNode.data, type: 'fromflow' }, ScriptFormComponent, 'auto', 'auto', 'overflow-hidden', 'center').subscribe((res: FlowScriptResponse) => {\n if (res) {\n //burada flowdaki script set ediliyor\n\n data.selectedNode.data = res\n document.querySelector('#' + data.selectedNodeId + ' .drawflow_content_node' + ' .bottom-title').innerHTML = res.name\n document.querySelector('#' + data.selectedNodeId + ' .drawflow_content_node' + ' .small-text').innerHTML = res.description\n\n this.nodeList.find(x => 'node-' + x.nodeId == data.selectedNodeId).item = res\n Object.keys(data.flowData).map(item => {\n if (data.flowData[item].id == data.selectedNodeId) {\n data.flowData[item].data = res\n }\n })\n var htmldiv = document.querySelector('#' + data.selectedNodeId + ' .drawflow_content_node .custom-card-container')\n data.Nodefunction({ html: htmldiv, id: data.selectedNodeId })\n var savedata = { drawflow: { Home: { data: data.flowData } } }\n this.saveFlow(savedata, false)\n }\n\n })\n }\n }\n\n runFlow(e) {\n if (this.flowObject.flowId) {\n this.lastRunnedObject = null\n Array.from(document.getElementsByClassName('colored-node')).forEach(item => {\n (item as HTMLElement).style.setProperty('background', 'white', 'important');\n })\n this.flowScriptService.runFlow(this.flowObject.flowId, '').subscribe(res => {\n if (res.result) {\n this.coreService.showSuccessMessage(this.translate.instant(\"FlowPage.RunnedFlow\"))\n this.executionLogTime(this.flowObject, res.message)\n this.executedNodeChangeBg(res.message)\n }\n })\n }\n }\n\n stopFlow(taskId: string) {\n\n this.connectorService.stopTask(this.currentSessionId, this.flowObject.bussionConnectorId).subscribe(res => {\n this.runlock = false\n clearInterval(this.executionInterval)\n clearInterval(this.loaderInterval)\n })\n\n\n }\n\n getExecutionLogAndChangeBg() {\n if (this.flowObject.flowId)\n this.flowScriptService.getExecutionLogForFlow(this.flowObject.flowId, 'flow').subscribe((res) => {\n this.executionLogs = res\n\n var selectedSessionList = res.filter(x => x.sessionId == this.executionLogs[this.executionLogs.length - 1].sessionId)\n var executedNodes = selectedSessionList.sort((a, b) => b.sequenceId - a.sequenceId);\n\n if (executedNodes.length > 0 && executedNodes[0].script.nextStep !== -1 || executedNodes[0].state == 1) {\n this.runlock = true\n this.executionLogTime(this.flowObject, this.executionLogs[this.executionLogs.length - 1].sessionId)\n this.executedNodeChangeBg(this.executionLogs[this.executionLogs.length - 1].sessionId)\n } else {\n this.runlock = false\n }\n })\n }\n\n\n\n getExecutionLog(openmodal: boolean = true) {\n if (this.flowObject.flowId)\n this.flowScriptService.getExecutionLogForFlow(this.flowObject.flowId, 'flow').subscribe((res) => {\n this.allExecutionLogs = res\n this.executionLogs = res\n\n if (res.length > 0 && openmodal)\n this.dialogService.openModal({ session: this.allExecutionLogs, flow: this.flowObject }, FlowLogComponent, '100%', '100%', 'overflow-hidden', 'center').subscribe(res => {\n\n })\n else\n this.coreService.showFormFillError(this.translate.instant(\"FlowPage.NoSessionText\"))\n })\n }\n\n\n\n}\n","
\n
\n\n \n\n
\n
\n\n
\n
\n {{'ManagePage.Scripts' |translate}}\n \n \n add\n \n
\n \n
\n\n
\n \n \n\n \n \n {{scriptPackages || ''}}\n 1\" class=\"example-additional-selection\">\n (+{{(scriptPackages.length || 0) - 1}} {{scriptPackages.length === 2 ? 'other' :\n 'others'}})\n \n \n
\n\n \n \n
\n\n {{package}}\n\n
\n
\n
\n
\n
\n \n
\n
{{\"Common.EmptyData\"|translate}}
\n
\n
\n
\n \n
\n
\n
\n \n
\n
","import { Component, Inject, OnInit } from '@angular/core';\nimport { FormControl, FormGroup, Validators } from '@angular/forms';\nimport { MAT_DIALOG_DATA, MatDialogRef } from '@angular/material/dialog';\nimport { Flow } from 'src/app/models/responses/flowScript';\nimport { Node } from 'src/app/models/responses/nodeResponse';\nimport { ConnectorService } from 'src/app/services/connector/connector.service';\nimport { CoreService } from 'src/app/services/core/core.service';\nimport { FlowScriptService } from 'src/app/services/flow-scripts/flow-script.service';\n\n@Component({\n selector: 'app-flow-form',\n templateUrl: './flow-form.component.html',\n styleUrls: ['./flow-form.component.scss']\n})\nexport class FlowFormComponent implements OnInit {\n flowForm = new FormGroup({\n name: new FormControl('', [Validators.required]),\n description: new FormControl('', [Validators.required]),\n bussionConnectorId: new FormControl('', [Validators.required]),\n type: new FormControl(false),\n updateScriptsBeforeRun: new FormControl(false),\n isStatic: new FormControl(true)\n\n });\n connectors: Node[] = []\n\n\n constructor(@Inject(MAT_DIALOG_DATA) public data: { flow: Flow, deleteFunction: Function },\n private flowScriptService: FlowScriptService,\n private dialogRef: MatDialogRef, private coreService: CoreService,\n private connectorService: ConnectorService\n ) { }\n\n\n\n ngOnInit(): void {\n this.getConnectors();\n if (this.data.flow) {\n this.flowForm.patchValue({\n bussionConnectorId: this.data.flow.bussionConnectorId,\n description: this.data.flow.description,\n name: this.data.flow.name,\n type: this.data.flow.type && this.data.flow.type == 1 ? true : false,\n updateScriptsBeforeRun: this.data.flow.updateScriptsBeforeRun && this.data.flow.updateScriptsBeforeRun == 1 ? true : false,\n isStatic: this.data.flow.isStatic && this.data.flow.isStatic == 1 ? true : false\n })\n }\n }\n\n getConnectors() {\n this.connectorService.getConnectors().subscribe(res => {\n this.connectors = res\n })\n }\n\n deleteElement() {\n this.data.deleteFunction(this.data.flow)\n }\n\n upsertFlow(type?: string) {\n if (!this.flowForm.valid) {\n this.coreService.showFormFillError()\n return;\n }\n var upsertObject: Flow = Object.assign(this.data.flow, this.flowForm.value);\n upsertObject.type = this.flowForm.value.type ? 1 : 0;\n upsertObject.isStatic = this.flowForm.value.isStatic ? 1 : 0;\n upsertObject.updateScriptsBeforeRun = this.flowForm.value.updateScriptsBeforeRun ? 1 : 0;\n\n if (upsertObject.flowId == '')\n upsertObject.version = 1\n if (type && type == 'copy') {\n upsertObject.flowId = ''\n }\n\n this.flowScriptService.upsertFlow(upsertObject).subscribe(res => {\n if (res) {\n this.dialogRef.close(res)\n }\n })\n\n }\n\n closeModal() {\n this.dialogRef.close()\n }\n\n}\n","\n
\n
\n
\n
\n \n {{ 'FlowForm.Name' | translate }}\n \n \n \n {{ 'FlowForm.Connector' | translate }}\n \n {{item.name}}\n \n \n \n {{ 'FlowForm.Desc' | translate }}\n \n \n \n {{\"FlowForm.Type\"|translate}}\n \n \n {{\"FlowForm.updateScriptsBeforeRun\"|translate}}\n \n \n {{\"FlowForm.IsStatic\"|translate}}\n \n
\n
\n
\n \n
\n \n \n \n \n
\n\n
\n\n
","import { Component, Inject, OnInit } from '@angular/core';\nimport { FormControl, FormGroup, Validators } from '@angular/forms';\nimport { MAT_DIALOG_DATA, MatDialogRef } from '@angular/material/dialog';\nimport { TranslateService } from '@ngx-translate/core';\nimport { ExecutionRule } from 'src/app/models/responses/flowScript';\nimport { CoreService } from 'src/app/services/core/core.service';\n\n@Component({\n selector: 'app-flow-line-rule-form',\n templateUrl: './flow-line-rule-form.component.html',\n styleUrls: ['./flow-line-rule-form.component.scss']\n})\nexport class FlowLineRuleFormComponent implements OnInit {\n\n executionRule: ExecutionRule = {\n name: '',\n exitCode: 0,\n scriptId: ''\n }\n\n ruleForm = new FormGroup({\n name: new FormControl('', [Validators.required]),\n exitCode: new FormControl(0, [Validators.required])\n });\n\n constructor(private coreService: CoreService,\n @Inject(MAT_DIALOG_DATA) public data: {\n selectedRule: {\n rule: ExecutionRule;\n input_id: string;\n output_id: string;\n ruleid: number;\n }, selectedConnection: {\n output_id: string,\n input_id: string,\n output_class: string,\n input_class: string\n }, ruleList: { rule: ExecutionRule, input_id: string, output_id: string, ruleid: number; }[]\n },\n private dialogRef: MatDialogRef,\n private translate: TranslateService) { }\n\n ngOnInit(): void {\n if (this.data.selectedRule) {\n Object.assign(this.executionRule, this.data)\n this.ruleForm.patchValue({\n name: this.data.selectedRule.rule.name,\n exitCode: this.data.selectedRule.rule.exitCode\n\n })\n }\n }\n\n\n saveRule() {\n if (!this.ruleForm.valid) {\n this.coreService.showFormFillError()\n return;\n }\n //aynı output kodu ile kural tanımlanamaz\n // var sameexitcode = this.data.ruleList.find(x => x.output_id == this.data.selectedConnection.output_id && x.rule.exitCode == this.ruleForm.value.exitCode)\n\n // if (this.data.selectedRule && sameexitcode && sameexitcode.ruleid !== this.data.selectedRule.ruleid) {\n // this.coreService.showErrorMessage(this.translate.instant(\"FlowPage.RuleError\"))\n // return;\n // } else if (!this.data.selectedRule && this.data.ruleList.some(x => x.output_id == this.data.selectedConnection.output_id && x.rule.exitCode == this.ruleForm.value.exitCode)) {\n // this.coreService.showErrorMessage(this.translate.instant(\"FlowPage.RuleError\"))\n // return;\n // }\n\n this.dialogRef.close(this.ruleForm.value)\n\n }\n\n}\n","
\n
\n Bir Kural ekleyin\n clear\n
\n
\n
\n \n {{ 'FlowForm.RuleName' | translate }}\n \n \n \n {{ 'FlowForm.Rule' | translate }}\n \n \n
\n
\n
\n
\n \n \n
\n
\n
","import { Component, OnInit } from '@angular/core';\nimport { MatTableDataSourcePageEvent } from '@angular/material/table';\nimport { NavigationExtras, Router } from '@angular/router';\nimport { TranslateService } from '@ngx-translate/core';\nimport { ScriptFlow } from 'src/app/models/responses/bussionConncetorResponse';\nimport { Flow } from 'src/app/models/responses/flowScript';\nimport { AuthService } from 'src/app/services/auth/auth.service';\nimport { CoreService } from 'src/app/services/core/core.service';\nimport { FlowScriptService } from 'src/app/services/flow-scripts/flow-script.service';\nimport { ModalService } from 'src/app/services/modal/modal.service';\nimport { SweetAlertService } from 'src/app/services/sweet-alert/sweet-alert.service';\nimport { FlowFormComponent } from '../flow-form/flow-form.component';\n\n@Component({\n selector: 'app-flow-list',\n templateUrl: './flow-list.component.html',\n styleUrls: ['./flow-list.component.scss']\n})\nexport class FlowListComponent implements OnInit {\n flowList: Flow[] = []\n paginatedFlowList: Flow[] = []\n currentUserId: string = this.authService.getUserId()\n currentUserRoles: string = this.authService.getRoles()\n\n cardKeys: { avatarKey: string, titleKey: string, descKey: string, smallKey: string, smallKey2: string, badgeKey: string } = { avatarKey: 'name', titleKey: 'name', descKey: 'description', smallKey: 'createDate', smallKey2: 'version', badgeKey: 'scripts' }\n imageAvatarKeys: { avatar: string, tooltip: string, avatartext: string, avatartext2: string } = { avatar: 'owner', tooltip: 'owner', avatartext: 'owner', avatartext2: 'owner' }\n cardIcons: { function: Function, icon: string, condition?: string }[] =\n [\n // { function: (e) => this.openEditDesigner(e), icon: 'edit-box' },\n // { function: (e) => this.openEditDesigner(e), icon: 'change-flow', condition: 'all' },\n { function: (e) => this.runFlow(e), icon: 'playgray', condition: 'all' },\n\n { function: (e) => this.editFlow(e), icon: 'edit-box', condition: 'all' },\n // { function: (e) => this.deleteFlowConfirm(e), icon: 'delete-box', condition: 'secret' },\n\n\n\n ]\n pageVariables = {\n pageCount: 0,\n itemPerPage: 12,\n currentPage: 0,\n listLength: 0\n }\n\n\n constructor(private flowScriptServive: FlowScriptService, private router: Router, private sweetalertService: SweetAlertService,\n private translate: TranslateService, private coreService: CoreService, private authService: AuthService,\n private dialogService: ModalService) { }\n\n ngOnInit(): void {\n this.getFlows()\n }\n\n\n getFlows() {\n this.flowScriptServive.getFlows().subscribe(res => {\n if (res) {\n this.flowList = res\n\n this.paginatedFlowList = this.flowList\n\n this.pageVariables.pageCount = Math.ceil(this.flowList.length / this.pageVariables.itemPerPage)\n this.pageVariables.listLength = this.flowList.length\n this.paginateData(this.paginatedFlowList)\n }\n })\n }\n\n paginateData(list: Flow[]) {\n var start = 0\n start = (this.pageVariables.currentPage) * this.pageVariables.itemPerPage\n this.paginatedFlowList = list.slice(start, start + this.pageVariables.itemPerPage)\n\n\n }\n\n handlePageEvent(e: MatTableDataSourcePageEvent) {\n this.pageVariables.currentPage = e.pageIndex\n console.log(e)\n this.paginateData(this.flowList)\n }\n\n\n routeToDesigner() {\n this.router.navigate(['/flow/flow-designer'])\n }\n\n openEditDesigner(selectedFlow: Flow) {\n const navigationExtras: NavigationExtras = {\n state: { flow: selectedFlow, flowId: selectedFlow.flowId }\n };\n this.router.navigate(['/flow/flow-designer', selectedFlow.flowId], navigationExtras)\n }\n\n deleteFlowConfirm(selectedFlow: Flow) {\n this.sweetalertService.open(\n this.translate.instant(\"ActionDialogComponent.Message\"),\n this.translate.instant(selectedFlow.name + this.translate.instant('Common.DeleteConfirmText')),\n 'question',\n this.translate.instant(\"Common.Done\"),\n (res) => {\n if (res.isConfirmed)\n this.deleteFlow(selectedFlow)\n },\n true\n )\n\n }\n\n deleteFlow(selectedFlow: Flow) {\n this.flowScriptServive.deleteFlow(selectedFlow.flowId).subscribe(res => {\n this.getFlows()\n this.dialogService.dissmissAll()\n })\n }\n\n searchData(text: string) {\n\n this.pageVariables.currentPage = 0\n text = text.toLowerCase()\n\n var searcData = this.flowList.filter((x) => x.description.toLowerCase().includes(text) || x.name.toLowerCase().includes(text))\n\n if (text) {\n this.pageVariables.listLength = searcData.length\n } else {\n this.pageVariables.listLength = this.flowList.length\n }\n this.paginateData(searcData)\n\n\n }\n runFlow(selectedFlow: ScriptFlow) {\n if (selectedFlow.flowId)\n this.flowScriptServive.runFlow(selectedFlow.flowId, '').subscribe(res => {\n if (res.result)\n this.coreService.showSuccessMessage('Flow Çalıştırıldı.')\n })\n }\n\n createCardInfo(ownerId: string) {\n if (this.currentUserId == ownerId || this.currentUserRoles.includes('Admin')) {\n return this.cardIcons\n }\n else {\n var filtered = this.cardIcons.filter(x => x.condition == 'all')\n return filtered;\n }\n }\n\n\n editFlow(flow: Flow) {\n\n var data = flow ? flow : null\n\n this.dialogService.openModal({ flow: data, deleteFunction: (e) => this.deleteFlowConfirm(e) }, FlowFormComponent, '50%', '50%', 'overflow-hidden', 'center').subscribe(res => {\n if (res) {\n this.getFlows()\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
","import { Component, Inject, OnChanges, OnInit, SimpleChanges } from '@angular/core';\nimport { MAT_DIALOG_DATA, MatDialogRef } from '@angular/material/dialog';\nimport { TranslateService } from '@ngx-translate/core';\nimport { customDropdownProps, customDropdownSettingProps } from 'src/app/models/globals/customDropdownProps';\nimport { Flow, FlowSession } from 'src/app/models/responses/flowScript';\nimport { CoreService } from 'src/app/services/core/core.service';\nimport { FlowScriptService } from 'src/app/services/flow-scripts/flow-script.service';\nimport { SweetAlertService } from 'src/app/services/sweet-alert/sweet-alert.service';\n\n@Component({\n selector: 'app-flow-log',\n templateUrl: './flow-log.component.html',\n styleUrls: ['./flow-log.component.scss']\n})\nexport class FlowLogComponent implements OnInit {\n\n flowLogDropdownSettings: customDropdownSettingProps = {\n name: 'Flow',\n multipleSelection: false,\n imageCard: false,\n dragActive: false,\n changeSortWithDrop: (e) => { },\n id: 'flow-dropdown',\n iconMenuActive: false,\n searchActive: true,\n placeholder: \"FlowPage.SearchSession\",\n triggerMenuIcon: { icon: 'measure.png', tooltip: '' },\n\n checkIcon: { icon: 'filter.png', function: (e) => { }, tooltip: \"WidgetFormPage.FieldFilter\" },\n endIcons: [\n {\n icon: 'delete-box',\n clickFunction: (e) => this.deleteSession(e),\n enable: true,\n popover: ''\n }\n ],\n topButtons: [\n {\n title: \"Common.ClearAll\",\n icon: 'clear_all',\n id: 'reset',\n eventFunction: () => {\n\n this.deleteAllSession(this.flowLogDropdownMenu)\n\n\n }\n }\n ],\n selectElement: (e) => this.sessionSelected(e),\n progressValue: 0,\n errorValues: { text: '', active: false }\n\n\n\n }\n\n flowLogDropdownMenu: customDropdownProps[] = []\n selectedSessions: FlowSession[] = []\n groupedData: any\n\n tabs: any[] = [\n // { title: 'Session Details', icon: 'activity', dataKey: '', messageKey: 'sessionLog', messageKey2: 'startDate', messageKey3: 'endDate', arrayfrom: '' },\n { title: 'Execution Log', icon: 'document', messageKey: 'message', messageKey2: '', arrayfrom: 'executionLog', messageTitle: 'scriptName' },\n { title: 'Explainations', icon: 'chat', messageKey: 'value', arrayfrom: 'explainations', messageTitle: 'scriptName' },\n { title: 'Variables', icon: 'variable', messageKey: 'value', arrayfrom: 'variables', messageTitle: 'scriptName', messageTitle2: 'key' }\n\n\n\n ]\n\n constructor(@Inject(MAT_DIALOG_DATA) public data: { session: FlowSession[], flow: Flow },\n private dialogRef: MatDialogRef,\n private flowScriptService: FlowScriptService,\n private translate: TranslateService,\n private sweetalertService: SweetAlertService, private coreService: CoreService) { }\n\n ngOnInit(): void {\n // this.flowScriptService.allExecutionLogs.subscribe(res => {\n // var groupedData = this.groupData(res);\n // })\n this.groupData(this.data.session);\n\n\n }\n\n createDropDownData(groupedData) {\n\n this.flowLogDropdownMenu = Object.keys(groupedData).map((item, key) => {\n\n return {\n id: groupedData[item][0].sessionId,\n title: groupedData[item][0].endDate.split('T')[0] + '/' + groupedData[item][0].endDate.split('T')[1].split('.')[0],\n subtitle: groupedData[item][0].sessionId,\n element: groupedData[item],\n icon: groupedData[item][0].executionResult == 1 ? 'error' : null\n }\n })\n\n this.flowLogDropdownMenu = this.flowLogDropdownMenu.sort((a, b) => b.title.localeCompare(a.title))\n\n // if(this.flowLogDropdownMenu.length<=0){\n // this.dialogRef.close()\n // }\n }\n\n\n groupData(data: FlowSession[]) {\n\n\n data = data.map(item => {\n return {\n ...item, executionLog: item.executionLog.sort((a, b) => {\n if (a.logDate < b.logDate) {\n return -1;\n }\n if (a.logDate > b.logDate) {\n return 1;\n }\n return 0;\n })\n }\n }).sort((a, b) => a.sequenceId - b.sequenceId);\n\n\n const groupedData = data.reduce((acc, item) => {\n const sessionId = item.sessionId\n\n // Create an array for the sessionId if it doesn't exist\n acc[sessionId] = acc[sessionId] || [];\n\n // Push the current item to the array\n acc[sessionId].push(item);\n\n return acc;\n }, {});\n this.createDropDownData(groupedData)\n this.groupedData = groupedData\n return groupedData\n }\n\n getdesc(id, session) {\n\n\n var selectedscript = session.script.find(x => x.scriptId == id)\n\n return selectedscript.description\n }\n\n sessionSelected(session: { element: FlowSession[] }) {\n this.selectedSessions = session.element\n\n //todo burayı grupla\n // var groupedData: FlowSession[] = []\n\n // this.selectedSessions.map(session => {\n // if (groupedData.some(x => x.executionLog[0].scriptId == session.executionLog[0].scriptId))\n // groupedData.find(x => x.executionLog[0].scriptId).executionLog = groupedData.find(x => x.executionLog[0].scriptId).executionLog.concat(session.executionLog)\n // else\n // groupedData.push(session)\n\n\n // })\n\n // this.selectedSessions=groupedData\n // console.log(groupedData)\n\n\n\n }\n\n deleteAllSession(data: any[]) {\n this.sweetalertService.open(\n this.translate.instant(\"ActionDialogComponent.Message\"),\n this.translate.instant(this.translate.instant('Common.DeleteAllConfirmText')),\n 'question',\n this.translate.instant(\"Common.Done\"),\n (res) => {\n if (res.isConfirmed) {\n data.map(session => {\n this.flowScriptService.deleteSession(session.element[0].sessionId).subscribe(res => {\n if (res) {\n this.coreService.showSuccessMessage(res)\n this.flowScriptService.getExecutionLogForFlow(session.element[0].flowId, 'flow').subscribe(res => {\n var groupedData = this.groupData(res);\n\n })\n\n }\n })\n })\n\n }\n\n },\n true)\n }\n\n deleteSession(session: any) {\n\n this.sweetalertService.open(\n this.translate.instant(\"ActionDialogComponent.Message\"),\n this.translate.instant(session.title + this.translate.instant('Common.DeleteConfirmText')),\n 'question',\n this.translate.instant(\"Common.Done\"),\n (res) => {\n if (res.isConfirmed) {\n this.flowScriptService.deleteSession(session.element[0].sessionId).subscribe(res => {\n if (res) {\n this.coreService.showSuccessMessage(res)\n this.flowScriptService.getExecutionLogForFlow(session.element[0].flowId, 'flow').subscribe(res => {\n var groupedData = this.groupData(res);\n if (res.length <= 0) {\n this.dialogRef.close()\n }\n })\n }\n })\n }\n\n },\n true)\n\n\n }\n\n TimeConverter(time: string) {\n return time?.split('T')[0] + ' ' + time?.split('T')[1]?.split('.')[0]\n }\n\n\n}\n","\n
\n
\n
\n \n {{\"FlowPage.NoSessionText\"|translate}}\n
\n
0\">\n \n \n
\n
0\">\n
\n \n {{\"FlowPage.NoLogText\"|translate}}\n
\n \n \n \n \n {{item.title}}\n \n
\n
\n
\n
\n

{{data?.flow?.name}}

\n
\n
\n \n \n {{TimeConverter(selectedSession[item.messageKey2])}}\n {{TimeConverter(selectedSession[item.messageKey3])}}\n
\n
\n
\n \n \n {{selectedSession[item.messageKey]}}\n
\n
\n
\n
\n\n \n\n
    0\">\n
  • \n
    \n {{arritem[item.messageKey2]?\n arritem[item.messageKey2]+' @ '+arritem[item.messageTitle]:\n arritem[item.messageTitle]}}
    \n\n
    \n {{selectedSession.script.description}}
    \n\n

    \n \n {{arritem[item.messageTitle2]}}\n :\n {{ arritem[item.messageKey] }}\n

    \n
  • \n\n
\n\n
\n
\n
\n\n\n
\n \n \n
\n\n
\n\n \n \n\n\n\n
","import { Component, EventEmitter, Inject, OnInit, Output } from '@angular/core';\nimport { FormControl, FormGroup, Validators } from '@angular/forms';\nimport { MAT_DIALOG_DATA, MatDialogRef } from '@angular/material/dialog';\nimport { BussionConnector } from 'src/app/models/responses/bussionConncetorResponse';\nimport { DataStore } from 'src/app/models/responses/dataStoreResponse';\nimport { FlowScriptResponse, FlowSriptParameter } from 'src/app/models/responses/flowScript';\nimport { Node } from 'src/app/models/responses/nodeResponse';\nimport { ConnectorFormComponent } from 'src/app/pages/manage/connector/connector-form/connector-form.component';\nimport { DatastoreFormComponent } from 'src/app/pages/manage/datastore/datastore-form/datastore-form.component';\nimport { NodeFormComponent } from 'src/app/pages/manage/node/node-form/node-form.component';\nimport { ConnectorService } from 'src/app/services/connector/connector.service';\nimport { DataStoreService } from 'src/app/services/dataStore/data-store.service';\nimport { ModalService } from 'src/app/services/modal/modal.service';\nimport { NodeService } from 'src/app/services/node/node.service';\nimport { PermissionService } from 'src/app/services/permission/permission.service';\n\n@Component({\n selector: 'app-flow-node-parameter-form',\n templateUrl: './flow-node-parameter-form.component.html',\n styleUrls: ['./flow-node-parameter-form.component.scss']\n})\nexport class FlowNodeParameterFormComponent implements OnInit {\n showValue: { key: string, show: boolean }[] = [{ key: '', show: false }]\n newParameters: FlowSriptParameter[] = []\n\n Idkeys = ['ConnectorId', 'NodeId', 'DataStoreId']\n dataStores: DataStore[] = []\n connectors: BussionConnector[] = []\n dataNodes: Node[] = [];\n\n permissions: string[] = [];\n\n options: any = { ConnectorId: [], NodeId: [], DataStoreId: [] }\n\n\n parameterFormGroup: FormGroup = new FormGroup({})\n\n constructor(@Inject(MAT_DIALOG_DATA) public data: FlowScriptResponse,\n private dialogRef: MatDialogRef,\n private dataStoreService: DataStoreService, private connectorService: ConnectorService,\n private nodeService: NodeService,\n private modalService: ModalService,\n private permissionService: PermissionService) { }\n\n ngOnInit(): void {\n this.newParameters = Object.assign([], this.data.parameters)\n\n this.newParameters.map(item => {\n item.showForForm = item.shown == 0 ? false : true;\n item.typeForForm = item.type.toLowerCase().includes('string') ? 'text' : item.type.toLowerCase().includes('number') ? 'number' : 'date'\n this.parameterFormGroup.addControl(item.key, new FormControl(item.value, item.mandatory ? [Validators.required] : []))\n })\n if (this.data.parameters.some(x => x.key.includes('ConnectorId'))) {\n this.getConnectors()\n }\n if (this.data.parameters.some(x => x.key.includes('DataStoreId'))) {\n this.getDataStores();\n }\n if (this.data.parameters.some(x => x.key.includes('NodeId'))) {\n this.getNodes()\n }\n\n this.getUserPermissionList()\n\n }\n\n\n saveParameters() {\n var parameters = this.parameterFormGroup.value\n // this.newParameters = Object.assign([], this.data.parameters)\n\n // this.newParameters.map(item => {\n // item.value = parameters[item.key]\n // delete item[\"showForForm\"];\n // delete item[\"typeForForm\"];\n // })\n this.dialogRef.close(parameters)\n }\n\n getConnectors() {\n if (this.connectors.length <= 0) {\n this.connectorService.getConnectorTasks().subscribe(res => {\n this.connectors = res\n this.createOptions(this.connectors, 'connectorId', 'name', 'ConnectorId')\n\n })\n } else {\n this.createOptions(this.connectors, 'connectorId', 'name', 'ConnectorId')\n }\n }\n\n getNodes() {\n if (this.dataNodes.length <= 0) {\n this.nodeService.getDataNodes().subscribe(res => {\n this.dataNodes = res\n this.createOptions(this.dataNodes, 'nodeId', 'name', 'NodeId')\n })\n } else {\n this.createOptions(this.dataNodes, 'nodeId', 'name', 'NodeId')\n\n }\n }\n\n createOptions(data, valueKey, optionKey, dataKey) {\n this.options[dataKey] = data.map(item => {\n return {\n key: item[optionKey],\n value: item[valueKey],\n data: dataKey\n }\n })\n }\n\n getDataStores() {\n if (this.dataStores.length <= 0)\n this.dataStoreService.getDataSourceForUser().subscribe(res => {\n this.dataStores = res\n this.createOptions(this.dataStores, 'dataStoreId', 'name', 'DataStoreId')\n\n })\n else {\n this.createOptions(this.dataStores, 'dataStoreId', 'name', 'DataStoreId')\n\n }\n\n }\n\n closeDialog() {\n this.dialogRef.close(false)\n\n }\n\n\n getUserPermissionList() {\n this.permissionService.getUserRoleList().subscribe(roleList => {\n this.permissions = roleList;\n });\n }\n\n\n openModal(modal, value) {\n value = value ? value : this.parameterFormGroup.value[modal]\n\n if (modal == \"ConnectorId\") {\n let data = {\n type: 'update',\n task: this.connectors.find(x => x.connectorId == value),\n folderList: Array.from(new Set(this.connectors.map(item => item.folder))).filter(x => x !== '')\n\n }\n this.modalService.openModal(data, ConnectorFormComponent, '900px', '1000px').subscribe(result => {\n if (result) {\n this.getConnectors()\n }\n });\n } else if (modal == \"NodeId\") {\n let data = {\n type: 'update',\n node: this.dataNodes.find(x => x.nodeId == value)\n }\n this.modalService.openModal(data, NodeFormComponent, 'auto', '1000px').subscribe(result => {\n if (result) {\n this.getNodes()\n }\n });\n } else {\n let data = {\n type: 'update',\n dataStore: this.dataStores.find(x => x.dataStoreId == value)\n }\n this.modalService.openModal(data, DatastoreFormComponent, 'auto', '1000px').subscribe(result => {\n if (result) {\n this.getDataStores()\n }\n });\n }\n }\n\n\n}\n","
\n
\n {{'FlowPage.AddParameter'|translate}}\n clear\n
\n
\n
\n
\n \n {{ item.key}}\n
\n \n \n {{opt.key}}\n \n \n
\n
\n \n \n
\n *{{item.description}}\n
\n \n
\n
\n
\n
\n
\n \n \n
\n
\n\n
","import { Component, OnInit } from '@angular/core';\n\n@Component({\n selector: 'app-flow',\n templateUrl: './flow.component.html',\n styleUrls: ['./flow.component.scss']\n})\nexport class FlowComponent implements OnInit {\n\n constructor() { }\n\n ngOnInit(): void {\n }\n\n}\n","
\n \n
","import { CdkDragDrop, moveItemInArray } from '@angular/cdk/drag-drop';\nimport { Component, Inject, OnInit } from '@angular/core';\nimport { FormControl, FormGroup, Validators } from '@angular/forms';\nimport { MAT_DIALOG_DATA, MatDialog, MatDialogRef } from '@angular/material/dialog';\nimport { TranslateService } from '@ngx-translate/core';\nimport { Observable } from 'rxjs';\nimport { map, startWith } from 'rxjs/operators';\nimport { CodeEditorComponent } from 'src/app/components/code-editor/code-editor.component';\nimport { FlowScriptRequest, FlowScriptResponse, FlowSriptParameter } from 'src/app/models/responses/flowScript';\nimport { CoreService } from 'src/app/services/core/core.service';\nimport { FlowScriptService } from 'src/app/services/flow-scripts/flow-script.service';\n\n@Component({\n selector: 'app-script-form',\n templateUrl: './script-form.component.html',\n styleUrls: ['./script-form.component.scss']\n})\nexport class ScriptFormComponent implements OnInit {\n\n editorOptions = { theme: 'vs-dark', language: 'python' };\n selectedTabIndex: number = 0\n showConsole: boolean = false\n\n\n scriptForm = new FormGroup({\n name: new FormControl('', [Validators.required]),\n description: new FormControl('', [Validators.required]),\n package: new FormControl('', [Validators.required]),\n timeout: new FormControl(0, [Validators.required]),\n pythonExecuteable: new FormControl('', [Validators.required]),\n stopIfFailed: new FormControl(false, [Validators.required])\n });\n\n parameterForm = new FormGroup({\n key: new FormControl('', [Validators.required]),\n value: new FormControl(''),\n description: new FormControl(''),\n type: new FormControl('', [Validators.required]),\n shown: new FormControl(false),\n mandatory: new FormControl(false)\n });\n\n scriptObject: FlowScriptRequest = {\n scriptId: '',\n icon: '',\n name: '',\n description: '',\n package: '',\n code: '',\n parameters: [],\n pythonExecuteable: '',\n stopIfFailed: 0,\n timeout: 0\n }\n parameterList: FlowSriptParameter[] = []\n pythonPackages: string[] = []\n pythonPackagesfilteredOptions: Observable;\n\n visibleParameterForm: boolean = false\n parameterIsUpdate: boolean = false\n\n options: string[] = ['ConnectorId', 'NodeId', 'DataStoreId'];\n filteredOptions: Observable;\n\n constructor(\n @Inject(MAT_DIALOG_DATA) public data: { script: FlowScriptResponse, type: string, deleteFunction: Function },\n private flowScriptService: FlowScriptService,\n private coreService: CoreService,\n private translate: TranslateService,\n private dialog: MatDialog,\n private dialogRef: MatDialogRef) { }\n\n ngOnInit(): void {\n\n if (this.data) {\n Object.assign(this.scriptObject, this.data.script)\n if (this.data.script) {\n this.editScript(this.data.script)\n\n if (this.data.script.parameters) {\n this.parameterList = this.data.script.parameters\n }\n }\n\n }\n\n this.getPythonScriptTemplate()\n\n this.createFilteredOptions()\n this.getPythonPackages()\n\n }\n\n getPythonPackages() {\n this.flowScriptService.GetPythonPackages().subscribe(res => {\n this.pythonPackages = res\n\n this.pythonPackagesfilteredOptions = this.scriptForm.get('package').valueChanges.pipe(\n startWith(''),\n map(value => this._filter(value || '', this.pythonPackages)),\n );\n })\n }\n\n getPythonScriptTemplate() {\n if (!this.data.script && this.flowScriptService.pythonScriptTemplate.getValue() == '')\n this.flowScriptService.GetPythonScriptTemplate().subscribe(res => {\n\n this.scriptObject.code = this.flowScriptService.pythonScriptTemplate.getValue()\n\n })\n }\n\n\n createFilteredOptions() {\n this.filteredOptions = this.parameterForm.get('key').valueChanges.pipe(\n startWith(''),\n map(value => this._filter(value || '', this.options)),\n );\n }\n\n private _filter(value: string, options: any[]): string[] {\n const filterValue = value.toLowerCase();\n\n return options.filter(option => option.toLowerCase().includes(filterValue));\n }\n\n\n selectIdKey() {\n this.parameterForm.patchValue({\n type: 'System.String'\n })\n }\n\n editorInit(eventInit: any) {\n (window as any).monaco.languages.typescript.javascriptDefaults.setDiagnosticsOptions({\n noSemanticValidation: true,\n noSyntaxValidation: true\n });\n\n (window as any).monaco.languages.typescript.javascriptDefaults.setCompilerOptions({\n target: monaco.languages.typescript.ScriptTarget.ES2016,\n allowNonTsExtensions: true\n });\n\n }\n\n editScript(selectedScript: FlowScriptResponse) {\n this.scriptForm.patchValue({\n name: selectedScript.name,\n description: selectedScript.description,\n package: selectedScript.package,\n pythonExecuteable: selectedScript.pythonExecuteable,\n stopIfFailed: selectedScript.stopIfFailed == 0 ? false : true,\n timeout: selectedScript.timeout\n })\n }\n\n\n upsertScript(type?: string) {\n if (type == 'saveAs') {\n this.scriptObject.scriptId = ''\n }\n Object.assign(this.scriptObject, this.scriptForm.value)\n this.scriptObject.parameters = this.parameterList\n this.scriptObject.stopIfFailed = this.scriptForm.value.stopIfFailed == false ? 0 : 1\n\n if (!this.data.type.includes('flow')) {\n if (!this.scriptForm.valid) {\n this.coreService.showFormFillError()\n return;\n }\n\n this.flowScriptService.upsertScript(this.scriptObject).subscribe(res => {\n this.dialogRef.close(true)\n })\n } else {\n this.dialogRef.close(this.scriptObject)\n }\n\n }\n\n\n addParameterElement() {\n if (this.parameterForm.valid) {\n var obj: FlowSriptParameter = {\n key: '',\n value: '',\n description: '',\n type: '',\n shown: 0,\n mandatory: 0,\n }\n Object.assign(obj, this.parameterForm.value)\n\n if (!this.parameterIsUpdate && this.parameterList.some(x => x.key == obj.key)) {\n this.coreService.showErrorMessage('Bu key ile tanımlanmış bir parametre mevcuttur.Lütfen farklı bir key değeri kullanın!')\n return;\n } else if (this.parameterIsUpdate && this.parameterList.filter(x => x.key == obj.key).length > 1) {\n this.coreService.showErrorMessage('Bu key ile tanımlanmış bir parametre mevcuttur.Lütfen farklı bir key değeri kullanın!')\n return;\n }\n\n if (this.parameterIsUpdate) {\n this.parameterList = this.parameterList.filter(x => x.key !== obj.key)\n\n }\n\n obj.mandatory = this.parameterForm.value.mandatory == false ? 0 : 1\n obj.shown = this.parameterForm.value.shown == false ? 1 : 0\n\n\n\n this.parameterList.push(obj)\n\n // this.parameterForm.reset()\n this.parameterForm.patchValue({\n shown: false,\n mandatory: false,\n description: '',\n value: '',\n key: '',\n type: ''\n })\n\n this.visibleParameterForm = false\n this.parameterIsUpdate = false\n }\n else {\n this.coreService.showFormFillError()\n }\n\n\n }\n\n deleteParameter(event: Event, selectedItem: FlowSriptParameter) {\n event.stopPropagation();\n this.parameterList = this.parameterList.filter(x => x.key !== selectedItem.key)\n\n }\n\n editParameter(selectedItem: FlowSriptParameter, event?: Event,) {\n event.stopPropagation();\n this.visibleParameterForm = true;\n\n this.parameterForm.patchValue({\n key: selectedItem.key,\n value: selectedItem.value,\n description: selectedItem.description,\n type: selectedItem.type,\n mandatory: selectedItem.mandatory == 1 ? true : false,\n shown: selectedItem.shown == 0 ? true : false\n })\n this.parameterIsUpdate = true\n\n\n }\n\n openBiggerEditor() {\n const dialogRef = this.dialog.open(CodeEditorComponent, {\n height: '100%',\n width: '100%',\n data: {\n code: this.scriptObject.code,\n widget: this.scriptObject,\n debug: () => { this.selectedTabIndex = 2 },\n editorOptions: { theme: 'vs-dark', language: 'python' }\n },\n });\n\n\n dialogRef.afterClosed().subscribe(result => {\n if (result) {\n this.scriptObject.code = result;\n }\n });\n }\n\n getStarCount(item): number {\n // String içindeki harf sayısını döndüren bir fonksiyon\n if (item?.value) {\n if (item.value.length <= 0) {\n return 1\n }\n else {\n return item.value.replace(/ /g, '').length;\n }\n } else {\n return 1\n }\n }\n\n closeModal() {\n this.dialogRef.close()\n }\n\n uploadIconImage(fileInput: any) {\n this.scriptObject.icon = fileInput\n }\n\n deleteElement() {\n this.data.deleteFunction(this.data.script)\n\n }\n drop(event: CdkDragDrop) {\n moveItemInArray(this.parameterList, event.previousIndex, event.currentIndex);\n }\n\n\n\n}\n","\n
\n\n
\n
\n
\n \n
\n
\n \n
\n \n
\n \n {{ 'ScriptForm.Name' | translate }}\n \n \n \n {{ 'ScriptForm.Package' | translate }}\n \n \n \n \n {{option}}\n \n \n \n \n {{ 'ScriptForm.Timeout' | translate }}\n \n \n \n {{ 'ScriptForm.PythonExecuteable' | translate }}\n \n \n
\n \n
\n\n\n\n
\n \n {{ 'ScriptForm.Desc' | translate }}\n \n \n
\n \n {{\"ScriptForm.StopIfFailed\"|translate}}\n \n
\n\n
\n\n \n
\n \n \n
\n
\n {{\"FlowPage.EmptyParameter\"|translate}}\n
\n 0\">\n
\n \n \n \n {{item?.key}}\n \n \n {{item?.value}}\n
\n *\n
\n\n
\n \n \n
\n

{{item?.description}}

\n
\n
\n
\n
\n \n
\n
\n
\n
\n \n \n\n\n\n \n \n \n \n \n {{option}}\n \n \n \n
\n
\n \n \n String\n Date Time\n Number\n \n
\n
\n
\n
\n \n \n
\n
\n \n \n
\n
\n
\n
\n \n {{\"ScriptForm.MandatoryParameter\"|translate}}\n \n \n {{\"ScriptForm.ShowParameter\"|translate}}\n \n
\n\n \n
\n\n
\n\n
\n\n
\n
\n
\n\n
\n
\n \n
{{scriptObject.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","import { NO_ERRORS_SCHEMA, AfterViewInit, Component, ComponentFactoryResolver, OnDestroy, OnInit, ViewContainerRef, ɵcompileComponent, ComponentRef } from \"@angular/core\";\nimport { Router } from \"@angular/router\";\nimport { CookieService } from \"ngx-cookie-service\";\nimport { NgxSpinnerService } from \"ngx-spinner\";\nimport { cerateCssFile, idKeyword } from \"src/app/core/utils\";\nimport { App } from \"src/app/models/responses/appsResponse\";\nimport { Dashboard, DashboardResponse } from \"src/app/models/responses/dashboardResponse\";\nimport { User } from \"src/app/models/responses/usersResponse\";\nimport { BussionMainService } from \"src/app/services/bussion-main/bussion-main.service\";\nimport { DashboardService } from \"src/app/services/dashboard/dashboard.service\";\nimport { DeployAppService } from \"src/app/services/deploy-app/deploy-app.service\";\nimport { ScriptLoaderService } from \"src/app/services/script-loader/script-loader.service\";\nimport { UserService } from \"src/app/services/user/user.service\";\nimport { environment } from \"src/environments/environment\";\nimport { BrowserModule, DomSanitizer, SafeHtml } from '@angular/platform-browser';\nimport { CommonModule, NgClass, NgFor, NgIf } from \"@angular/common\";\nimport { DynamicHomeComponent } from \"src/app/components/dynamic-home/dynamic-home.component\";\nimport { TranslateModule, TranslatePipe } from \"@ngx-translate/core\";\nimport { MaterialModule } from \"src/app/material.module\";\nimport { MatIconModule } from \"@angular/material/icon\";\nimport { GroupService } from \"src/app/services/group/group.service\";\nimport { Group } from \"src/app/models/responses/groupsResponse\";\nimport { forkJoin } from \"rxjs\";\nimport { concatMap, filter, finalize, map, take, tap } from \"rxjs/operators\";\n\n@Component({\n\n selector: 'app-home',\n template: '',\n // templateUrl: './home.component.html',\n styleUrls: ['./home.component.scss']\n})\nexport class HomeComponent implements OnInit {\n page: number = 1\n // dynamicContent: string;\n roles = []\n classNameAll: string = 'filter-active'\n classNameDash: string = ''\n classNameApp: string = ''\n dframe: string = 'none'\n dlist: string = 'flex'\n users: User[]\n selectedGroupOption: string = 'All'\n groups: Group[] = []\n selectedDashboard: any;\n selectedPage: any[] = []\n Applications: any[] = []\n Dashboards: Dashboard[] = []\n ActiveDashboards: Dashboard[] = []\n selectedPageAllData: any[] = []\n openerMethod = [\n { 1: 'internal' },\n { 2: 'newtab' },\n { 3: 'pupop' }\n\n ]\n\n savedHomeOption: string | number = 'All'\n\n\n\n constructor(private deployAppService: DeployAppService,\n private dashboardService: DashboardService,\n private spinner: NgxSpinnerService,\n private groupService: GroupService,\n private router: Router,\n private userService: UserService,\n private bussionMainService: BussionMainService,\n private scriptLoader: ScriptLoaderService, private cookieService: CookieService,\n private viewContainerRef: ViewContainerRef\n ) { }\n baseUrl = environment.imageUrl;\n dynamicComponentRef: ComponentRef\n src: string\n dynamicContent: string;\n loading: boolean = true\n selectedMenu: string = 'All'\n ngOnInit(): void {\n // AOS.init();\n // this.getApps()\n // this.getDashboards()\n\n this.getAllDatasFromHttp()\n // this.getDashboard()\n // if(this.dashboard?.css)\n\n\n }\n\n getAllDatasFromHttp() {\n this.spinner.show();\n\n forkJoin([\n this.getApps(),\n this.getUserActiveDashboards().pipe(concatMap(res => { return this.getDashboards() })),\n this.getGroups()\n ]).subscribe({\n next: ([appsResult, dashboardsResult, groupsResult]) => {\n this.spinner.hide();\n\n this.Dashboards = dashboardsResult\n this.Applications = appsResult\n this.groups = groupsResult\n\n this.groupAddDashImage();\n\n\n\n this.getBussionMain();\n\n\n\n\n this.setCachedPage()\n\n },\n error: (err) => {\n this.spinner.hide();\n console.error('Bir hata oluştu:', err);\n }\n });\n\n }\n\n setCachedPage(ishome?: string) {\n\n var homeData = localStorage.getItem('selectedHome')\n var user = localStorage.getItem('user')\n var userObj: User = user ? JSON.parse(user) : null\n\n\n\n if (ishome == 'home') {\n history.replaceState({ apply: 'nolocalstorage' }, '')\n\n }\n\n if (history.state?.apply == 'nolocalstorage' && userObj.defaultDashboardAppId) {\n this.savedHomeOption = userObj.defaultDashboardAppId\n this.changeGroupSelection(userObj.defaultDashboardAppId)\n } else if (homeData) {\n var jsonhome: { 'selectedTab': string, 'selectedOption': string } = JSON.parse(homeData)\n if (history.state?.apply == 'nolocalstorage') {\n this.savedHomeOption = jsonhome.selectedOption\n }\n this.select(jsonhome.selectedOption);\n this.changeGroupSelection(jsonhome.selectedOption)\n } else {\n this.select('All')\n }\n\n\n }\n\n getData() {\n debugger;\n Msg.DataHandler = this.selectedPage;\n // Msg.BaseUrl = this.baseUrl;\n\n //return s.selectedPagthie;\n }\n\n\n groupAddDashImage() {\n\n this.groups = this.groups.map(item => {\n var groupDashboard = this.Dashboards.filter(x => item.dashboards.includes(x.dashboardId))\n return {\n ...item,\n createdDate: item.createdDate?.split(' ')?.length > 0 ? item.createdDate.split(' ')[0] : '',\n dashImages: groupDashboard.map(dash => { return dash.icon }).slice(0, 5),\n dashCount: groupDashboard.length > 5 ? groupDashboard.length - 5 : 0\n }\n });\n }\n\n\n\n getGroups() {\n return this.groupService.getGroups().pipe(\n map(res => {\n var selectedUser = localStorage.getItem('user')\n var selectedUserGroups = []\n\n if (selectedUser) {\n selectedUserGroups = JSON.parse(selectedUser).groups\n console.log('first', selectedUserGroups)\n this.groups = res.filter(x => selectedUserGroups.includes(x.groupName))\n }\n\n const sortedGroups = this.groups.filter(x => x.showInAppView == 1).sort((a, b) => {\n if (a.displayOrder === 0 && b.displayOrder !== 0) {\n return 1; // `a` sona gider\n } else if (b.displayOrder === 0 && a.displayOrder !== 0) {\n return -1; // `b` sona gider\n } else {\n return a.displayOrder - b.displayOrder; // Normal sıralama\n }\n });\n\n return sortedGroups\n\n })\n )\n\n }\n\n changeGroupSelection(event) {\n var selectedValue = event?.target?.value || event\n this.selectedGroupOption = selectedValue\n console.log('first bura neden çalışıyor')\n\n if (this.selectedMenu !== 'Dashboard')\n this.select('Dashboard')\n\n if (selectedValue == 'AppView') {\n this.selectedPage = this.groups\n this.selectedPageAllData = this.groups\n } else if (selectedValue == 'All') {\n this.selectedList = this.Dashboards.concat(this.Applications)\n this.selectedPage = this.Dashboards.concat(this.Applications)\n this.selectedPageAllData = this.Dashboards.concat(this.Applications)\n } else if (selectedValue == 'My') {\n var userId = localStorage.getItem('userId')\n this.selectedList = this.Dashboards.filter(x => x.ownerId == userId)\n this.selectedPage = this.Dashboards.filter(x => x.ownerId == userId)\n this.selectedPageAllData = this.Dashboards.filter(x => x.ownerId == userId)\n\n } else if (selectedValue == 'Favorite') {\n this.selectedList = this.ActiveDashboards\n this.selectedPage = this.ActiveDashboards\n this.selectedPageAllData = this.ActiveDashboards\n\n } else {\n this.selectedPage = []\n this.selectedList = []\n this.selectedPageAllData = []\n\n var groupSelecteddashboards = this.groups.find(x => x.groupId == selectedValue)?.dashboards || []\n groupSelecteddashboards.map(item => {\n var selectedDash = this.Dashboards.find(x => x.dashboardId == item)\n if (selectedDash) {\n this.selectedPage.push(selectedDash)\n this.selectedList.push(selectedDash)\n this.selectedPageAllData.push(selectedDash)\n }\n })\n\n }\n\n this.saveLocalStorage()\n\n }\n\n saveLocalStorage() {\n var storageItem = { 'selectedTab': this.selectedMenu, 'selectedOption': this.selectedGroupOption }\n localStorage.setItem('selectedHome', JSON.stringify(storageItem))\n }\n\n saveUserStorage(selectedOption?: string) {\n var user = localStorage.getItem('user')\n if (user) {\n var userObj: User = JSON.parse(user);\n userObj.defaultDashboardAppId = selectedOption ?? this.selectedGroupOption\n this.userService.upsertUser(userObj, [], [], 1).subscribe(res => {\n if (res) {\n localStorage.setItem('user', JSON.stringify(userObj))\n }\n })\n\n }\n }\n\n getBussionMain() {\n this.bussionMainService.getBussionMain('html').subscribe((res: any) => {\n this.dynamicContent = res\n this.createMainPage();\n // this.dynamicContent = this.sanitizer.bypassSecurityTrustHtml(res) as SafeHtml\n })\n }\n\n openSelfServisMain() {\n this.router.navigate(['selfservice'])\n }\n\n\n\n createMainPage() {\n\n ɵcompileComponent(DynamicHomeComponent, {\n //jit:true,\n template: this.dynamicContent,\n standalone: true,\n imports: [NgFor, NgIf, NgClass, TranslateModule, MaterialModule, CommonModule, MatIconModule],\n providers: [],\n schemas: [NO_ERRORS_SCHEMA]\n });\n\n this.viewContainerRef.clear();\n\n\n this.dynamicComponentRef = this.viewContainerRef.createComponent(DynamicHomeComponent);\n this.dynamicComponentRef.instance.groups = this.groups\n this.dynamicComponentRef.instance.Dashboards = this.Dashboards\n this.dynamicComponentRef.instance.Applications = this.Applications\n this.dynamicComponentRef.instance.ActiveDashboards = this.ActiveDashboards\n\n Msg.DashboardService = this.dashboardService;\n Msg.ScriptLoader = this.scriptLoader;\n Msg.Router = this.router;\n\n this.dynamicComponentRef.instance.saveUserStorageCallBack = (selectedOption) => {\n this.saveUserStorage(selectedOption)\n }\n\n }\n\n\n\n\n\n\n\n getLastApp() {\n let lastusedapp = JSON.parse(localStorage.getItem('app'))\n return lastusedapp;\n }\n\n getApps() {\n\n if (this.dashboardService.cachedData.getValue().authorizedApps.length > 0) {\n return this.dashboardService.getCachedDataObservable().pipe(\n take(1),\n map(res => {\n return res.authorizedApps.map(x => {\n return { ...x, creationDate: x.creationDate.split(' ')[0] || '' }\n })\n })\n )\n } else {\n return this.deployAppService.GetAuthorizedApp().pipe(\n map(res => {\n var filtered = res.map(x => {\n return { ...x, creationDate: x.creationDate.split(' ')[0] || '' }\n })\n return filtered;\n }))\n }\n }\n\n selectedList: any[] = []\n contentIdKeyword = idKeyword.dashboard\n\n\n getUserActiveDashboards() {\n if (this.dashboardService.cachedData.getValue().activeDashboard.length > 0) {\n return this.dashboardService.getCachedDataObservable().pipe(\n take(1),\n map(res => {\n var filtered = res.activeDashboard.filter(x => x.isMainDashboard === 1).map(x => {\n return { ...x, creationDate: x.creationDate.split(' ')[0] || '' }\n })\n this.ActiveDashboards = filtered\n return filtered\n }))\n } else {\n return this.dashboardService.getUserActiveDashboards().pipe(map(res => {\n var filtered = res.filter(x => x.isMainDashboard === 1).map(x => {\n return { ...x, creationDate: x.creationDate.split(' ')[0] || '' }\n })\n this.ActiveDashboards = filtered\n return filtered\n }))\n }\n }\n\n getDashboards() {\n if (this.dashboardService.cachedData.getValue().authorizedDashboard.length > 0) {\n return this.dashboardService.getCachedDataObservable().pipe(\n take(1),\n map(res => {\n return res.authorizedDashboard.filter(x => x.isMainDashboard === 1).map(x => {\n return { ...x, creationDate: x.creationDate.split(' ')[0] || '' }\n })\n })\n )\n } else {\n return this.dashboardService.getAuthorizedDashboards(1).pipe(\n map(res => {\n var filtered = res.filter(x => x.isMainDashboard === 1).filter(x => x.isMainDashboard === 1).map(x => {\n return { ...x, creationDate: x.creationDate.split(' ')[0] || '' }\n })\n return filtered;\n }))\n }\n\n // if (this.dashboardService.cachedData.getValue().authorizedDashboard.length > 0) {\n\n // this.Dashboards = this.dashboardService.cachedData.getValue().authorizedDashboard.filter(x => x.isMainDashboard === 1).map(x => {\n // return { ...x, creationDate: x.creationDate.split(' ')[0] || '' }\n // });;\n\n\n // this.selectedList = this.Dashboards.concat(this.Applications)\n // this.selectedPage = this.Dashboards.concat(this.Applications)\n // this.pagination(this.page)\n // this.spinner.hide()\n // this.loading = false\n // debugger;\n // Msg.DataHandler = this.selectedPage;\n // Msg.SelectList = this.selectedList;\n // Msg.Application = this.Applications;\n // Msg.BaseUrl = this.baseUrl;\n // Msg.DashboardService = this.dashboardService;\n // Msg.ScriptLoader = this.scriptLoader;\n // Msg.Router = this.router;\n // Msg.Loading = this.loading\n // Msg.CssFolder = cerateCssFile(this.dashboard?.css, this.selectedDashboard?.dashboardId, this.contentIdKeyword);\n // this.getBussionMain();\n // } else\n // this.dashboardService.getAuthorizedDashboards(1).subscribe(result => {\n // this.Dashboards = result.filter(x => x.isMainDashboard === 1).map(x => {\n // return { ...x, creationDate: x.creationDate.split(' ')[0] || '' }\n // });\n // this.selectedList = this.Dashboards.concat(this.Applications)\n // this.selectedPage = this.Dashboards.concat(this.Applications)\n // this.pagination(this.page)\n // this.spinner.hide()\n // debugger;\n // Msg.DataHandler = this.selectedPage;\n\n // this.loading = false\n // Msg.Dashboards = this.Dashboards\n // Msg.SelectList = this.selectedList;\n // Msg.Application = this.Applications;\n // Msg.BaseUrl = this.baseUrl;\n // Msg.DashboardService = this.dashboardService;\n // Msg.ScriptLoader = this.scriptLoader;\n // Msg.Router = this.router;\n // Msg.Loading = this.loading\n\n // Msg.CssFolder = cerateCssFile(this.dashboard?.css, this.selectedDashboard?.dashboardId, this.contentIdKeyword);\n // this.getBussionMain();\n\n // });\n\n }\n\n select(type: string) {\n this.selectedMenu = type\n if (type === 'All') {\n this.selectedList = this.Dashboards.concat(this.Applications)\n this.selectedPage = this.Dashboards.concat(this.Applications)\n this.pagination(this.page = 1)\n this.classNameAll = 'filter-active'\n this.classNameDash = ''\n this.classNameApp = ''\n } else if (type === 'Dashboard') {\n this.selectedList = this.Dashboards\n this.selectedPage = this.Dashboards\n this.pagination(this.page = 1)\n this.classNameAll = ''\n this.classNameApp = ''\n this.classNameDash = 'filter-active'\n } else if (type === 'App') {\n this.selectedList = this.Applications\n this.selectedPage = this.Applications\n this.pagination(this.page = 1)\n this.classNameDash = ''\n this.classNameAll = ''\n this.classNameApp = 'filter-active'\n }\n }\n\n\n searchElements(e) {\n // var key = 'title'\n // if (this.selectedPageAllData[0]?.groupName) {\n // key = 'groupName'\n // } else if (this.selectedPageAllData[0]?.name) {\n // key = 'name'\n\n // }\n\n\n this.selectedPage = this.selectedPageAllData.filter(x => x?.name?.toLowerCase().includes(e.target.value.toLowerCase())\n || x?.title?.toLowerCase().includes(e.target.value.toLowerCase())\n || x?.groupName?.toLowerCase().includes(e.target.value.toLowerCase()))\n\n }\n\n navigation(item: any) {\n if (item.groupId) {\n this.changeGroupSelection(item.groupId)\n } else if (item.applicationLink) {\n localStorage.setItem('app', JSON.stringify(item))\n if (item.openerMethod == 1) {//internal\n window.open(`${this.baseUrl}/Apps/${item.applicationLink}`, \"_blank\");\n } else if (item.openerMethod == 2) {//newtab\n window.open(`${this.baseUrl}/Apps/${item.applicationLink}`, \"_blank\");\n } else if (item.openerMethod == 3) {//popup\n let options = {\n type: 'leftWindow', //newWindow,centerWindow,rightWindow,leftWindow\n windowWidth: '100%',\n windowHeight: '100%',\n isapp: 'true',\n }\n this.scriptLoader.openWindow(`${this.baseUrl}/Apps/${item.applicationLink}`, options)\n }\n } else {\n // this.cookieService.setItem('lastDashboards',)\n this.dashboardService.setLastDashboardId(item.dashboardId)\n this.router.navigate([\"/main\"], { state: item });\n }\n }\n\n\n\n pagination(pageNumber: number) {\n // if (pageNumber * 6 <= this.selectedList.length) {\n this.selectedPage = this.selectedList.slice((pageNumber - 1) * 8, ((pageNumber - 1) * 8) + 8)\n\n // }\n\n }\n getUserImage(ownerId: string) {\n let avatar = this.users.find(x => x.userId == ownerId)?.avatar\n return this.baseUrl + avatar\n }\n\n\n returnSavedHome() {\n this.setCachedPage()\n }\n}\n\n\n\nexport class Msg {\n public static BaseUrl: string;\n public static DataHandler;\n public static DashboardService;\n public static ScriptLoader;\n public static Router;\n public static CssFolder;\n public static Pagination;\n public static SelectList;\n public static Application;\n public static Dashboards;\n public static Loading;\n\n\n}","import { Component, OnDestroy, OnInit, ɵcompileComponent, NO_ERRORS_SCHEMA, ViewContainerRef } from '@angular/core';\n\nimport { LoginRequest } from '../../models/requests/loginRequest';\nimport { AuthService } from 'src/app/services/auth/auth.service';\nimport { Router } from '@angular/router';\nimport { NgxSpinnerService } from 'ngx-spinner';\nimport { PermissionService } from 'src/app/services/permission/permission.service';\nimport { User, UserHomePage } from 'src/app/models/responses/usersResponse';\nimport { CoreService } from 'src/app/services/core/core.service';\nimport { TranslateModule, TranslateService } from '@ngx-translate/core';\nimport { NgxCaptchaService } from '@binssoft/ngx-captcha';\nimport { Subject, Subscription } from 'rxjs';\nimport { concatMap, takeUntil, tap } from 'rxjs/operators';\nimport { HttpClient } from '@angular/common/http';\nimport { BussionMainService } from 'src/app/services/bussion-main/bussion-main.service';\nimport { DynamicLoginComponent } from 'src/app/components/dynamic-login/dynamic-login.component';\nimport { CommonModule, NgFor, NgIf, NgStyle } from '@angular/common';\nimport { MaterialModule } from 'src/app/material.module';\nimport { MatIconModule } from '@angular/material/icon';\nimport { FormsModule, NgModel, ReactiveFormsModule, UntypedFormControl, UntypedFormGroup, Validators } from '@angular/forms';\nimport { LicenseService } from 'src/app/services/license/license.service';\nimport { environment } from 'src/environments/environment';\n\n@Component({\n selector: 'app-login',\n // templateUrl: './login.component.html',\n template: '',\n styleUrls: ['./login.component.scss']\n})\nexport class LoginComponent implements OnInit, OnDestroy {\n\n loginForm: boolean = true;\n loginRequest: LoginRequest = {\n Username: '',\n Password: ''\n };\n dynamicContent: string;\n chaptcaEnabled: boolean;\n\n\n\n user: User = {\n avatar: \"\",\n userId: \"\",\n lastLogin: new Date(),\n accountStatus: 1,\n language: \"\",\n activeDashboards: [],\n firstName: \"\",\n lastName: \"\",\n email: \"\",\n password: \"\",\n domain: \"\",\n token: \"\",\n organization: \"\",\n homePage: []\n };\n\n passwordAgain: string = \"\";\n isShownCreateAccount: boolean = false;\n warntext: string = ''\n captchaStatus: any = null;\n captchaConfig: any = {\n type: 1,\n length: 6,\n cssClass: 'custom',\n back: {\n stroke: \"#2F9688\",\n solid: \"#f2efd2\"\n },\n font: {\n color: \"#000000\",\n size: \"35px\"\n }\n };\n\n swiperList = [\n {\n id: 1,\n title: 'NEXT GENERATION DASHBOARDS',\n text: 'Create beautiful & visually appealing dashboards with drilldown and collabration capabilities.',\n img: '/assets/images/stats (1).png'\n },\n {\n id: 2,\n title: 'KPI MANAGEMENT',\n text: 'Track all the metrics that matter to your team, customers and bussinessPrevious.',\n img: '/assets/images/stats.png'\n },\n {\n id: 3,\n title: 'INSTANT ANALYTICS',\n text: 'Take the advantage of hot trends, oppurtunities, promotions and more. Identify events, patterns or run anomaly detection routines.',\n img: '/assets/images/pie-chart.png'\n }\n ]\n\n currentSwiper = 1\n displayLoading = 'flex'\n loginImage: string = ''\n\n\n constructor(\n private authService: AuthService,\n private licenseService: LicenseService,\n private router: Router,\n private spinner: NgxSpinnerService,\n private permissionService: PermissionService,\n private coreService: CoreService,\n private translate: TranslateService,\n private captchaService: NgxCaptchaService,\n private http: HttpClient,\n private bussionMainService: BussionMainService,\n private viewContainerRef: ViewContainerRef\n ) {\n this.captchaStatus = false;\n this.permissionService.clearPermissions();\n this.getMultiTenantStatus();\n this.getChaptcaEnabled();\n this.myinterval = setInterval(() => {\n this.displayLoading = 'none'\n if (this.displayLoading == 'none') {\n clearInterval(this.myinterval);\n }\n }, 2000);\n this.getBussionLoginCss();\n this.getLoginRequest();\n this.getLoginRequest();\n this.getLoginImage()\n }\n\n myinterval: any\n\n getAuthService() {\n return this.authService;\n }\n getLicenseService() {\n return this.licenseService\n }\n getRouter() {\n return this.router;\n }\n getSpinner() {\n return this.spinner;\n }\n getTranslate() {\n return this.translate\n }\n getLoginRequest() {\n return this.loginRequest;\n }\n getCoreService() {\n return this.coreService;\n }\n getLoginImageForDynamic() {\n return this.loginImage\n }\n getLoginImage() {\n this.authService.getLoginImage('').subscribe(res => {\n this.loginImage = res\n })\n }\n pageForm: UntypedFormGroup\n ngOnInit(): void {\n this.pageForm = new UntypedFormGroup({\n name: new UntypedFormControl('', [Validators.required]),\n });\n\n }\n\n setLogo(img: string) {\n environment.logo = img\n }\n\n getBussionLoginCss() {\n this.bussionMainService.getBussionLogin('javascript').pipe(\n tap(res => {\n this.createLoginJsFunction(res)\n }),\n concatMap(res => this.bussionMainService.getBussionLogin('html')),\n ).subscribe(res => {\n this.dynamicContent = res;\n this.createLoginPage();\n })\n }\n\n createLoginJsFunction(code) {\n try {\n var loginFunction = new Function('loginPage', code)\n var returnedValue = loginFunction(this)\n } catch (error) {\n console.log(error)\n }\n\n }\n\n\n\n\n\n\n\n createLoginPage() {\n ɵcompileComponent(DynamicLoginComponent, {\n // jit:true,\n template: this.dynamicContent,\n standalone: true,\n imports: [NgFor, NgIf, NgStyle, TranslateModule, MaterialModule, CommonModule, MatIconModule, ReactiveFormsModule, FormsModule],\n providers: [],\n schemas: [NO_ERRORS_SCHEMA],\n\n });\n\n this.viewContainerRef.clear();\n this.viewContainerRef.createComponent(DynamicLoginComponent);\n }\n\n ngOnDestroy() {\n if (this.displayLoading == 'none') {\n clearInterval(this.myinterval);\n }\n }\n\n getMultiTenantStatus() {\n this.coreService.getMultiTenantStatus().subscribe(status => {\n this.isShownCreateAccount = status;\n });\n }\n\n getChaptcaEnabled() {\n this.authService.isChaptchaEnabled().subscribe((res) => {\n this.chaptcaEnabled = res\n })\n this.captchaService.captchStatus.subscribe((status) => {\n this.captchaStatus = status;\n if (this.captchaStatus !== null && !this.captchaStatus)\n this.warntext = 'Please check code!'\n else\n this.warntext = ''\n });\n }\n\n\n\n\n login() {\n this.spinner.show();\n this.getChaptcaEnabled()\n if (this.chaptcaEnabled && !this.captchaStatus) {\n this.spinner.hide();\n this.warntext = 'Please check code!'\n return\n }\n this.authService.login(this.loginRequest).subscribe(result => {\n if (result.result) {\n this.spinner.hide();\n // if (result.message.language == 'English') {\n // this.translate.use('en');\n // } else {\n // this.translate.use('tr');\n // }\n this.authService.saveToken(result.message.token);\n this.navigateUserMainPage(result.message.homePage[0])\n }\n });\n this.captchaService.setCaptchaStatus('')\n }\n\n\n navigateUserMainPage(mainpage: UserHomePage) {\n if (mainpage) {\n if (mainpage.type == 1) {\n this.router.navigate(['/data-app/' + mainpage.objectId]);\n }\n } else {\n this.router.navigate(['/']);\n }\n }\n\n createAccount() {\n if (this.user.password == this.passwordAgain) {\n this.authService.createAccount(this.user).subscribe(result => {\n this.authService.saveToken(result.token);\n this.router.navigate(['/']);\n })\n }\n else {\n this.coreService.showErrorMessage(this.translate.instant(\"ErrorMessages.PasswordNotSame\"));\n }\n }\n\n redirect(url: string) {\n window.location.href = url\n }\n\n}\n\n","// import { dti } from 'dom-to-image';\nimport { ViewsComponent } from './../../components/modals/views/views.component';\nimport { Component, OnInit, ChangeDetectionStrategy, ViewEncapsulation, ViewChild, ElementRef, OnDestroy, HostListener, Input, Output, EventEmitter, OnChanges, SimpleChanges, ChangeDetectorRef } from '@angular/core';\nimport { DashboardService } from 'src/app/services/dashboard/dashboard.service';\nimport { Dashboard, Dimension } from 'src/app/models/responses/dashboardResponse';\nimport { GridType, CompactType, GridsterConfig, GridsterItem, DisplayGrid } from 'angular-gridster2';\nimport { ScriptLoaderService } from 'src/app/services/script-loader/script-loader.service';\nimport { ExpandedWidgetComponent } from 'src/app/components/modals/expanded-widget/expanded-widget.component';\nimport { GlobalFunctionService } from 'src/app/services/global-function/global-function.service';\nimport { ModalService } from 'src/app/services/modal/modal.service';\nimport { DashboardFilterComponent } from '../manage/dashboard/dashboard-filter/dashboard-filter.component';\nimport { DashboardSelectionComponent } from 'src/app/components/dashboard-selection/dashboard-selection.component';\nimport { ShareFormComponent } from 'src/app/components/modals/share-form/share-form.component';\nimport { MessagesComponent } from 'src/app/components/modals/messages/messages.component';\nimport { gridTypes } from 'angular-gridster2/lib/gridsterConfig.interface';\nimport { PermissionService } from 'src/app/services/permission/permission.service';\nimport { CoreService } from 'src/app/services/core/core.service';\nimport { interval, Subject, Subscription } from 'rxjs';\nimport { environment } from 'src/environments/environment';\nimport { BussionFilterDefinition } from 'src/app/models/responses/dataStoreResponse';\nimport { skip, takeUntil } from 'rxjs/operators';\nimport { DeviceDetectorService } from 'ngx-device-detector';\nimport { ActivatedRoute, Router } from '@angular/router';\nimport { WidgetService } from 'src/app/services/widget/widget.service';\nimport { ShareService } from 'src/app/services/share/share.service';\nimport { Share } from 'src/app/models/responses/shareResponse';\nimport { cerateCssFile, deleteCssFile, idKeyword } from 'src/app/core/utils';\nimport { TooltipPosition } from '@angular/material/tooltip';\nimport { UntypedFormControl } from '@angular/forms';\nimport { FilterAiService } from 'src/app/services/filter-ai/filter-ai.service';\nimport { ChatbotComponent } from 'src/app/components/chatbot/chatbot.component';\nimport { MatDialog, MatDialogRef } from '@angular/material/dialog';\nimport { ChatbotService } from 'src/app/services/chatbot/chatbot.service';\nimport html2canvas from 'html2canvas';\nimport { Widget, WidgetPreview } from 'src/app/models/responses/widgetLibraryResponse';\n\n\n\nimport * as htmlToImage from 'html-to-image';\nimport jsPDF from 'jspdf';\nimport { Montserrat } from 'src/assets/fonts/Montserrat';\nimport { MontserratBold } from 'src/assets/fonts/MontserratBold';\nimport PptxGenJS from 'pptxgenjs';\nimport { AuthService } from 'src/app/services/auth/auth.service';\nimport { DashboardPerformanceInfoComponent } from 'src/app/components/dashboard-performance-info/dashboard-performance-info.component';\n// import JSPDF from 'jspdf';\n\n@Component({\n selector: 'app-main',\n templateUrl: './main.component.html',\n styleUrls: ['./main.component.scss'],\n changeDetection: ChangeDetectionStrategy.Default,\n encapsulation: ViewEncapsulation.None,\n host: {\n '(document:click)': 'onClick($event)',\n },\n})\nexport class MainComponent implements OnInit, OnDestroy {\n\n @ViewChild('dashboardPage')\n dashboardPage!: ElementRef;\n @ViewChild('sidenav') sidenav: any\n @ViewChild('viewsModal') viewsModal: any;\n @ViewChild('filterModal') filterModal: any;\n isFilterModal: boolean = false\n isShownFilter: boolean = false;\n isShownFilterAI: boolean = false\n isDeviceMobile: boolean = false;\n isDeviceTablet: boolean = false;\n showMessages = false;\n baseImageUrl: string = environment.imageUrl;\n isFilterActive: boolean = false;\n isAutoPlaying: boolean = false;\n isFullscreen: boolean = false;\n dashboardType: string = \"fit\";\n dashboards: Dashboard[] = [];\n authorizedDashboards: Dashboard[] = [];\n options: GridsterConfig;\n dashboardWidgets: Array = [];\n widgetList: Array = [];\n serviceWidgets: WidgetPreview[] = []\n selectedDashboard: Dashboard;\n permissions: string[] = [];\n checkDashboardInterval = interval(30000);\n subscriptionCheckDashboardInterval: Subscription;\n dashboardChangesId: string = \"\";\n isFirstForCheckDashboardData: boolean = true;\n isDashboardHeaderVisible = true;\n\n selectedDashboardInitialFilters: BussionFilterDefinition[] = [];\n sugesstionFilter: BussionFilterDefinition[] = [];\n infoDialogRef: MatDialogRef | null = null;\n\n\n\n\n autoPlayDashboardInterval = interval(60000);\n subscriptionAutoPlayDashboardInterval: Subscription;\n displayDropDown: boolean = false\n dropdownData: any\n myShares: Share[] = [];\n filterLoading: boolean = true\n\n permissionPath: string = '';\n button = true\n button_ = true\n fullscreen: boolean\n\n\n userInput: string = \"\";\n dashboardId: any\n @Input() appId: string = ''\n redirectApp: string = ''\n private unsubscribe = new Subject();\n\n @ViewChild('gridcontainer') screen: any;\n @ViewChild('canvas') canvas: ElementRef;\n @ViewChild('downloadLink') downloadLink: ElementRef;\n\n @Output() returnApp: EventEmitter = new EventEmitter();\n visibleInfoBox: boolean = false\n\n onClick(event) {\n\n this.displayDropDown = false\n }\n\n constructor(\n private dashboardService: DashboardService,\n private scriptLoader: ScriptLoaderService,\n private globalFunctionService: GlobalFunctionService,\n private modalService: ModalService,\n private permissionService: PermissionService,\n private coreService: CoreService,\n private deviceService: DeviceDetectorService,\n private router: Router,\n private route: ActivatedRoute,\n private widgetService: WidgetService,\n private authService: AuthService,\n private shareService: ShareService,\n private filterAIService: FilterAiService,\n private dialog: MatDialog,\n private dialogService: ModalService,\n private cdr: ChangeDetectorRef\n\n\n ) {\n this.selectedDashboard = router.getCurrentNavigation()?.extras?.state as Dashboard\n }\n positionOptions: TooltipPosition[] = ['after', 'before', 'above', 'below', 'left', 'right'];\n position = new UntypedFormControl(this.positionOptions[3]);\n contentIdKeyword = idKeyword.dashboard\n\n ngOnInit(): void {\n this.customizeDashboard();\n if ((this.appId && this.appId == '') || this.route.snapshot.paramMap.get('appId'))\n this.route.params.subscribe(params => {\n if (params['appId']) {\n this.appId = params['appId'];\n this.redirectApp = '/data-app/' + this.appId\n }\n });\n\n\n\n this.handleSelectedDashboard();\n\n this.getUserLibraries();\n this.isDeviceMobile = this.deviceService.isMobile();\n this.isDeviceTablet = this.deviceService.isTablet();\n this.dropdownData = {\n objectId: this.selectedDashboard.dashboardId,\n objectType: 'Dashboard',\n dashboardId: this.selectedDashboard.dashboardId,\n filter: this.selectedDashboard.filter,\n };\n if (this.selectedDashboard.css !== \"\") {\n cerateCssFile(this.selectedDashboard.css, this.selectedDashboard.dashboardId, this.contentIdKeyword);\n }\n\n\n this.getMyShares()\n\n // this.changeGridOptions()\n if (this.selectedDashboard) {\n this.dashboardService.selectedDasboard.next(this.selectedDashboard)\n\n // this.dashboardWidgets = [];\n // this.getDashboardsWidgets(this.selectedDashboard.dashboardId);\n // console.log(this.selectedDashboard)\n\n }\n\n var roleList = this.getUserRoles()\n if (roleList.includes('Admin')) {\n this.visibleInfoBox = true\n }\n\n\n }\n\n\n changeGridOptions() {\n if (this.selectedDashboard.gridSize) {\n this.options.maxCols = this.selectedDashboard.gridSize;\n this.options.minCols = this.selectedDashboard.gridSize;\n\n }\n\n this.changeDashboardLayout(this.selectedDashboard.layout)\n\n this.options?.api?.optionsChanged()\n }\n\n\n getFilteredDashboard(text: string) {\n if (text.length === 0) {\n this.scriptLoader.setFilter(this.selectedFilters)\n return;\n }\n\n this.filterAIService.getSuggestionForDashboard(text, this.selectedDashboard.dashboardId).subscribe((res) => {\n\n res[0].dashboard.filter.map(item => {\n\n if (!this.sugesstionFilter.some(x => x.fieldValue == item.fieldValue)\n && !this.selectedDashboardInitialFilters.some(x => x.fieldValue == item.fieldValue)) {\n this.sugesstionFilter.push(item)\n }\n })\n\n\n this.scriptLoader.setFilter(this.sugesstionFilter)\n // this.getDashboardForFilter(this.selectedDashboard.dashboardId, res[0].dashboard.filter)\n\n\n });\n\n }\n\n\n\n shortTitle(maxLength: number): string {\n if (this.selectedDashboard.title.length > maxLength) {\n return this.selectedDashboard.title.substring(0, maxLength) + '...';\n }\n return this.selectedDashboard.title;\n }\n\n toggleDashboardHeaderVisibilityMobile(): void {\n this.isDashboardHeaderVisible = !this.isDashboardHeaderVisible;\n this.fullscreen = !this.fullscreen\n }\n\n toggleDashboardHeaderVisibility(): void {\n this.isDashboardHeaderVisible = !this.isDashboardHeaderVisible;\n this.button = !this.button\n this.fullscreen = !this.fullscreen\n }\n\n changeinitFilter() {\n this.selectedDashboardInitialFilters = Object.assign([], this.selectedDashboard.filter.slice());\n\n }\n\n\n handleSelectedDashboard() {\n\n if (this.selectedDashboard) {\n sessionStorage.setItem('selectedDashboard', JSON.stringify(this.selectedDashboard));\n } else {\n this.selectedDashboard = JSON.parse(sessionStorage.getItem('selectedDashboard'))\n this.dashboardService.selectedDasboard.next(this.selectedDashboard)\n this.changeinitFilter()\n }\n this.changeGridOptions()\n\n }\n\n\n\n ngOnDestroy(): void {\n if (this.subscriptionCheckDashboardInterval) {\n this.subscriptionCheckDashboardInterval.unsubscribe();\n }\n if (this.subscriptionAutoPlayDashboardInterval) {\n this.subscriptionAutoPlayDashboardInterval.unsubscribe();\n }\n deleteCssFile(this.selectedDashboard.dashboardId)\n this.scriptLoader.selectedFilters.next([])\n\n this.unsubscribe.next();\n this.unsubscribe.complete();\n\n\n }\n\n private getUserLibraries() {\n this.dashboardService.getUserLibraries().subscribe(result => {\n // console.log(\"Libraries: \", result);\n this.scriptLoader.addScriptFileToHead(result);\n this.setupPage();\n })\n }\n\n private setupPage() {\n // this.customizeDashboard();\n this.getAuthorizedDashboards();\n this.getGlobalFunctions();\n this.getPermissionForMainPage();\n this.listenFilterClick();\n this.listenDashboardNavigateEvent();\n this.scriptLoader.selectedFilters.subscribe(res => {\n // if (res.length > 0) {\n // this.filterGroup(res)\n // } else {\n this.dimensionValuTypeControl()\n this.createPinToFilter(res)\n\n // }\n this.selectedFilters = res\n this.sugesstionFilter = res\n })\n }\n\n dimensionValuTypeControl() {\n this.selectedDashboard.dimensions.map(dim => {\n if (dim.type.includes('String') && dim.value.some(x => typeof (x) !== 'string')) {\n dim.value = dim.value.map(val => String(val));\n } else if (dim.type.includes('Number') && dim.value.some(x => typeof (x) !== 'number')) {\n dim.value = dim.value.map(val => +val);\n\n }\n })\n }\n\n createPinToFilter(initfilter: BussionFilterDefinition[]) {\n var selecteddimensiontofilter: Dimension[] = this.selectedDashboard.dimensions.filter(x => x.pintoPanel == 1)\n var bsf: BussionFilterDefinition[] = selecteddimensiontofilter.map(item => {\n return {\n fieldName: item.name,\n operator: '',\n fieldValue: ''\n }\n })\n this.filterGroup(initfilter.concat(bsf))\n }\n\n getUserRoles() {\n var user = localStorage.getItem('user')\n var userobj\n if (user) {\n userobj = JSON.parse(user)\n }\n if (userobj)\n return userobj.roles\n else\n return []\n }\n\n getPermissionForMainPage() {\n this.permissionService.getUserRoleList().subscribe(permissions => {\n this.permissions = permissions;\n console.log('this.permissions', this.permissions)\n this.permissionPath = this.permissionService.getPermissionPath();\n })\n }\n\n getGlobalFunctions() {\n this.globalFunctionService.getGlobalFunctions().subscribe(result => {\n result.forEach(f => {\n this.scriptLoader.runGlobalFunction(f.code);\n });\n\n this.getDashboards();\n });\n }\n\n getAuthorizedDashboards() {\n if (this.dashboardService.cachedData.getValue().authorizedDashboard.length > 0) {\n this.authorizedDashboards = this.dashboardService.cachedData.getValue().authorizedDashboard;\n\n } else\n this.dashboardService.getAuthorizedDashboards(1).subscribe(result => {\n this.authorizedDashboards = result;\n });\n }\n\n changeAppDashbboard(dashboardList: Dashboard[]) {\n //dashboards change too app dashboard if app id is not empty\n var app: any = localStorage.getItem('app')\n var appDashboards = []\n if (app) {\n app = JSON.parse(app)\n if (app.dashboards) {\n dashboardList.map(item => {\n if (app.dashboards.some(x => x == item.dashboardId)) {\n appDashboards.push({ ...item, tagList: item.tags.split(' ').filter(x => x !== '') })\n }\n })\n }\n }\n\n return appDashboards\n }\n\n\n getDashboards() {\n\n if (this.dashboardService.cachedData.getValue().activeDashboard.length > 0) {\n this.dashboards = this.dashboardService.cachedData.getValue().activeDashboard;\n\n if (this.appId !== '') {\n this.dashboards = this.changeAppDashbboard(this.dashboards)\n }\n\n if (this.dashboards.length !== 0) {\n this.changeinitFilter()\n\n let selectedDashboardId = this.selectedDashboard.dashboardId;\n this.dashboardWidgets = [];\n this.getDashboardsWidgets(selectedDashboardId);\n }\n\n\n } else {\n this.getActiveDashboard()\n }\n\n }\n getActiveDashboard() {\n this.dashboardService.getUserActiveDashboards(1).subscribe(result => {\n this.dashboards = result;\n\n if (this.appId !== '') {\n this.dashboards = this.changeAppDashbboard(this.dashboards)\n }\n\n if (this.dashboards.length !== 0) {\n\n // this.selectedDashboard = this.dashboards[this.lastDashboardIndex()];\n\n this.changeinitFilter()\n //todo for empty useractive dashboard list\n let selectedDashboardId = this.selectedDashboard.dashboardId;\n this.dashboardWidgets = [];\n\n this.getDashboardsWidgets(selectedDashboardId);\n }\n\n });\n }\n\n lastDashboardIndex(): number {\n let index = this.dashboards.findIndex(f => f.dashboardId == this.dashboardService.getLastDashboardId());\n // debugger;\n if (index == -1) {\n return 0;\n } else {\n return index;\n }\n }\n\n @HostListener('window:orientationchange', ['$event'])\n onOrientationChange(event) {\n // this.customizeDashboard()\n\n\n if (this.deviceService.isMobile() || this.deviceService.isTablet()) {\n setTimeout(() => {\n\n // var rowcol = this.MobileWidgetSettings()\n\n // var currentY = 0\n // var currentX = 0\n\n\n\n // this.dashboardWidgets = this.dashboardWidgets.map((item, key) => {\n // key % 2 == 0 && key !== 0 ? currentY += 30 : '' ? currentY += 30 : ''\n // var newwd: any = {\n // ...item,\n // cols: this.isDeviceMobile || (this.isDeviceTablet && window.orientation == 0) ? rowcol.cols : item.designerContainer.widget.layout.cols,\n // rows: this.isDeviceMobile || (this.isDeviceTablet && window.orientation == 0) ? rowcol.rows : item.designerContainer.widget.layout.rows,\n // y: this.isDeviceTablet && window.orientation == 0 ? currentY : item.designerContainer.widget.layout.y,\n // x: this.isDeviceTablet && window.orientation == 0 ? (currentX += 6) - 6 : item.designerContainer.widget.layout.x,\n // }\n\n // this.createWidget(newwd.designerContainer)\n // return newwd\n // })\n\n\n this.widgetLayoutEdit(this.serviceWidgets, this.options)\n }, 250);\n\n }\n }\n\n widgetLayoutEdit(widgets, options) {\n\n this.dashboardWidgets = []\n this.widgetList = []\n let currentX = 0;\n let currentY = 0;\n\n var selectedlayout = 'layout'\n\n widgets = widgets.filter(x => x.widget.isFilter == 0)\n\n\n if (this.isDeviceMobile && widgets[0].widget.mobileLayout.cols > 0) {\n selectedlayout = 'mobileLayout'\n this.options.mobileBreakpoint = 0\n if (this.isDeviceMobile && window.orientation == 0) {\n this.options.rowHeightRatio = 0.8\n } else {\n this.options.rowHeightRatio = 0.4\n }\n this.options.maxCols = 500\n this.options.margin = 5\n\n this.options.maxRows = 500\n\n this.options.maxItemRows = 500\n this.options.gridType = GridType.ScrollVertical\n this.options.api.optionsChanged()\n\n }\n\n\n widgets.forEach((widget, index) => {\n if (widget.widget.isFilter == 0) {\n // index % 2 == 0 ? currentY += 30 : ''\n\n\n var newrows = widget.widget[selectedlayout].rows\n currentY = widget.widget[selectedlayout].y\n var newCols = widget.widget[selectedlayout].cols\n currentX = widget.widget[selectedlayout].x\n\n\n var wd = {\n cols: newCols,\n rows: newrows,\n y: currentY,\n x: currentX,\n designerContainer: widget,\n }\n // this.dashboardWidgets.push(wd);\n\n // this.dashboardWidgets.push(options?.api?.getFirstPossiblePosition(wd));\n\n this.dashboardWidgets.push(wd);\n this.widgetList.push(wd)\n\n this.createWidget(widget);\n }\n })\n\n }\n\n shrinkRate(widgetLayout: { x: number, y: number, cols: number, rows: number }) {\n var serviceWidgetsCopy = [...this.serviceWidgets];\n var heightSort = serviceWidgetsCopy.sort((a, b) => a.widget.layout.rows - b.widget.layout.rows);\n\n\n if ((this.deviceService.isTablet() && this.isDeviceTablet && window.orientation == 0)) {\n if (widgetLayout.rows == heightSort[0].widget.layout.rows) {\n return { x: widgetLayout.x, y: widgetLayout.y, rows: Math.round(widgetLayout.rows / 2), cols: widgetLayout.cols }\n } if (widgetLayout.rows < heightSort[heightSort.length - 1].widget.layout.rows && widgetLayout.rows > heightSort[0].widget.layout.rows) {\n return { x: widgetLayout.x, y: widgetLayout.y, rows: Math.round(widgetLayout.rows / 1.2), cols: widgetLayout.cols }\n }\n if (widgetLayout.rows == heightSort[heightSort.length - 1].widget.layout.rows) {\n return { x: widgetLayout.x, y: widgetLayout.y, rows: Math.round(widgetLayout.rows / 1.8), cols: widgetLayout.cols }\n }\n else {\n return { x: widgetLayout.x, y: widgetLayout.y, rows: widgetLayout.rows, cols: widgetLayout.cols }\n }\n } else if (this.deviceService.isMobile()) {\n if (widgetLayout.rows == heightSort[0].widget.layout.rows) {\n return { x: widgetLayout.x, y: widgetLayout.y, rows: Math.round(widgetLayout.rows / 6), cols: widgetLayout.cols }\n } else {\n return { x: widgetLayout.x, y: widgetLayout.y, rows: Math.round(widgetLayout.rows / 4), cols: widgetLayout.cols }\n\n }\n }\n\n return { x: widgetLayout.x, y: widgetLayout.y, rows: widgetLayout.rows, cols: widgetLayout.cols }\n }\n\n\n private getDashboardsWidgets(dashboardId: string) {\n // this.chatbotService.changeRecognitionLang(this.selectedDashboard.contentLanguage)\n\n this.options.minCols = this.selectedDashboard?.gridSize\n\n this.options.minRows = this.selectedDashboard?.gridSize\n\n this.options?.api?.optionsChanged()\n\n if (this.selectedFilters.length > 0)\n this.scriptLoader.selectedFilters.next(this.selectedFilters)\n else\n this.scriptLoader.selectedFilters.next(this.selectedDashboardInitialFilters)\n\n\n var endUserScreen = true\n this.dashboardService.getWidgetsForDesigner(dashboardId, '', endUserScreen).pipe(takeUntil(this.unsubscribe)).subscribe(result => {\n\n this.serviceWidgets = result\n this.subscribeDashboardChanges(true);\n this.widgetLayoutEdit(this.serviceWidgets, this.options)\n\n });\n }\n\n\n\n\n\n\n\n\n MobileWidgetSettings() {\n const isLandscape = window.innerWidth > window.innerHeight;\n\n if (this.deviceService.isMobile() || (this.deviceService.isTablet() && !isLandscape)) {\n this.options.gridType = GridType.ScrollVertical\n this.options?.api?.optionsChanged()\n } else {\n this.changeDashboardLayout(this.selectedDashboard.layout)\n }\n if (this.deviceService.isMobile()) {\n this.options.minCols = 10\n this.options.maxCols = 10\n this.options.minRows = 10\n this.options?.api.optionsChanged()\n return { cols: 5, rows: 5 }\n } else if (this.deviceService.isTablet()) {\n if (window.orientation == 0) {\n this.options.minCols = 12\n this.options.maxCols = 12\n this.options.minRows = 12\n this.options?.api.optionsChanged()\n }\n else {\n // this.customizeDashboard()\n this.options.minCols = this.selectedDashboard?.gridSize\n this.options.maxCols = this.selectedDashboard?.gridSize\n this.options.minRows = this.selectedDashboard?.gridSize\n\n this.options?.api?.optionsChanged()\n }\n\n return { cols: 6, rows: 6 }\n } else {\n return { cols: 1, rows: 1 }\n }\n }\n\n private createWidget(widgetResponse: any) {\n this.scriptLoader.addScriptFileToHead(widgetResponse.widgetLibraries);\n this.scriptLoader.runWidgetCode(widgetResponse);\n }\n\n expandWidget(widgetData: any) {\n let data = {\n widgetData: widgetData.designerContainer,\n shareModalOpen: (e) => this.openShareForm({ ...e, filter: this.selectedFilters }),\n selectedFilters: this.selectedFilters,\n selectedDashboard: this.selectedDashboard\n }\n this.modalService.openModal(data, ExpandedWidgetComponent, '90%', '100%', 'overflow-hidden').subscribe(result => { });\n }\n\n dashboardSelected(dash: Dashboard) {\n deleteCssFile(this.selectedDashboard.dashboardId)\n // this.selectedDashboard.filter = this.selectedDashboardInitialFilters;\n\n\n this.selectedDashboard = dash;\n\n sessionStorage.setItem('selectedDashboard', JSON.stringify(this.selectedDashboard));\n this.dashboardService.selectedDasboard.next(this.selectedDashboard)\n cerateCssFile(this.selectedDashboard.css, this.selectedDashboard.dashboardId, this.contentIdKeyword)\n\n this.changeinitFilter()\n\n\n let selectedDashboardId = dash.dashboardId;\n this.dashboardService.setLastDashboardId(selectedDashboardId);\n this.dashboardWidgets = [];\n this.selectedFilters = []\n this.selectedFilterGroup = []\n this.subscriptionCheckDashboardInterval.unsubscribe();\n this.changeGridOptions()\n this.getDashboardsWidgets(selectedDashboardId);\n this.showMessages = false;\n this.getMyShares()\n\n }\n\n //TO DO-----------------------------------------------------------\n subscribeDashboardChanges(isFirstForCheckDashboardData) {\n if (this.subscriptionCheckDashboardInterval) {\n this.subscriptionCheckDashboardInterval.unsubscribe();\n }\n this.isFirstForCheckDashboardData = isFirstForCheckDashboardData;\n this.checkDashboardInterval = interval(this.selectedDashboard.refreshInterval * 1000);\n\n this.subscriptionCheckDashboardInterval = this.checkDashboardInterval.subscribe(() => {\n // var currentDate = new Date();\n\n // // Tarih ve saat bilgisini belirli bir formatta yazdır\n // var formattedDate = currentDate.toLocaleString();\n // console.log('çalıştı',formattedDate)\n this.checkDashboardChanges();\n });\n }\n\n checkDashboardChanges() {\n this.dashboardService.checkDashboardUpdateTime(this.selectedDashboard.dashboardId).subscribe(res => {\n if (this.isFirstForCheckDashboardData) {\n this.isFirstForCheckDashboardData = false;\n this.dashboardChangesId = res.message;\n return;\n }\n if (this.dashboardChangesId != res.message) {\n // this.dashboardWidgets = [];\n //eğer herhangi bir widgetta değişiklik varsa update time değişiklik olan widgetları dönecek\n if (res?.changedWidgets?.length > 0)\n this.refreshWidget(res.changedWidgets)\n // this.getDashboardsWidgets(this.selectedDashboard.dashboardId);\n this.dashboardChangesId = res.message;\n }\n });\n }\n\n refreshWidget(changedWidgets) {\n var idlist = []\n // değişen widgetların idsini liste olarak atıroruz servise\n changedWidgets.map(item => {\n idlist.push(item.widgetId)\n })\n\n this.widgetService.getWidgetById(idlist, this.selectedDashboard.dashboardId, this.selectedDashboard.filter).\n subscribe(res => {\n res.map((item) => {\n\n var index = this.dashboardWidgets.findIndex(x => x.designerContainer.widgetId == item.widgetId)\n if (index !== undefined) {\n this.dashboardWidgets[index].designerContainer = item\n // this.createWidget(item);\n this.scriptLoader.runWidgetCode(item, true);\n\n\n }\n })\n })\n\n }\n //----------------------------------------------------------------------\n\n openDashboardFilter() {\n this.isShownFilter = true;\n }\n\n\n openViewsModal() {\n var data = {\n myShares: this.myShares,\n applyFilterForViews: (share) => this.applyFilterForViews(share),\n getShares: () => this.getMyShares()\n }\n this.modalService.openModal(data, ViewsComponent, '100%', '100%', 'viewsModal').subscribe(res => {\n\n })\n }\n\n applyFilterForViews(share: Share) {\n this.scriptLoader.setFilter(share.filter, false)\n }\n\n\n\n\n openDashboardFilterAI() {\n this.isShownFilterAI = !this.isShownFilterAI;\n }\n\n selectedFilters: BussionFilterDefinition[] = []\n selectedFilterGroup: any[] = []\n groupedData: any = {}\n\n saveFilter(newFilters: BussionFilterDefinition[]) {\n this.closeFilterForm(null);\n this.selectedFilters = newFilters\n\n this.scriptLoader.selectedFilters.next(newFilters)\n\n this.getDashboardForFilter(this.selectedDashboard.dashboardId, newFilters);\n\n }\n\n\n clearSelectedFilterGroup(filter) {\n this.selectedFilters = filter\n this.sugesstionFilter = filter\n this.scriptLoader.setFilter(filter, false)\n }\n\n\n\n filterGroup(newFilters: BussionFilterDefinition[]) {\n this.selectedFilters = newFilters\n\n this.groupedData = {}\n this.selectedFilters.map((item: BussionFilterDefinition, key) => {\n const fieldkey = item['fieldName'];\n\n\n if (!this.groupedData[fieldkey]) {\n this.groupedData[fieldkey] = {\n content: [],\n dimension: null,\n priority: this.selectedDashboard.dimensions.findIndex(x => x.name == fieldkey),\n isinitial: this.selectedDashboard.filter.some(x => x.fieldName == fieldkey) ? 1 : 0\n }\n }\n this.groupedData[fieldkey].content.push(item);\n this.groupedData[fieldkey].dimension = this.selectedDashboard.dimensions.find(x => x.name == fieldkey)\n });\n var keys = Object.keys(this.groupedData)\n this.selectedFilterGroup = []\n this.selectedDashboard.dimensions.map(item => {\n if (keys.some(x => x == item.name)) {\n this.selectedFilterGroup.push(item.name)\n }\n })\n\n }\n\n resetFilter(event: any) {\n this.changeinitFilter()\n this.sugesstionFilter = []\n this.selectedFilters = []\n\n this.scriptLoader.setFilter(this.selectedDashboardInitialFilters)\n }\n\n clearAllFilter(filter: any[]) {\n // this.selectedDashboard.filter = []\n this.sugesstionFilter = []\n this.selectedFilters = []\n this.scriptLoader.setFilter([])\n }\n\n saveFilterFromShares(newFilters: BussionFilterDefinition[]) {\n\n this.handleSelectedDashboard()\n this.modalService.dissmissAll()\n this.getDashboardForFilter(this.selectedDashboard.dashboardId, newFilters);\n\n }\n\n closeFilterModal(event: any) {\n this.dialog.closeAll()\n }\n\n\n closeFilterForm(event: any) {\n this.isShownFilter = false;\n\n }\n\n applyDropdownFilter(filter: BussionFilterDefinition[]) {\n this.selectedDashboardInitialFilters = this.selectedDashboard.filter\n this.selectedFilters = []\n filter.map(item => {\n if (!this.selectedFilters.some(x => x.fieldName == item.fieldName && x.fieldValue == item.fieldValue && x.operator == item.operator))\n this.selectedFilters.push(item)\n })\n\n\n\n if (filter.length > 0)\n this.scriptLoader.setFilter(this.selectedFilters, false)\n else if (this.selectedFilters.length <= 0)\n this.scriptLoader.setFilter([], false)\n\n }\n\n listenDashboardNavigateEvent() {\n this.scriptLoader.navigateToDashboard.pipe(skip(1)).subscribe(data => {\n this.getDashboardForFilter(data.dashboardId, data.filters);\n });\n }\n\n listenFilterClick() {\n this.scriptLoader.filterChanges.pipe(skip(1)).pipe(takeUntil(this.unsubscribe)).subscribe(filter => {\n let newFilterList = [];\n this.selectedDashboard.filter.forEach(f => {\n if (filter.findIndex(newF => newF.fieldName == f.fieldName) == -1) {\n newFilterList.push(f);\n }\n });\n newFilterList = [...filter];\n // this.selectedDashboard.filter = newFilterList\n this.selectedFilters = newFilterList\n this.getDashboardForFilter(this.selectedDashboard.dashboardId, this.selectedFilters);\n });\n }\n\n getDashboardForFilter(dashboardID, filters) {\n console.log('subsciption dışarı')\n\n if (filters) {\n this.isFilterActive = filters.length > 0;\n // this.selectedDashboard.filter = filters;\n\n this.dashboardWidgets = [];\n\n\n\n\n this.dashboardService.getWidgetsForDashboard(dashboardID, filters).pipe(takeUntil(this.unsubscribe)).subscribe(result => {\n console.log('subsciption')\n this.serviceWidgets = result\n this.subscribeDashboardChanges(false);\n this.widgetLayoutEdit(this.serviceWidgets, this.options)\n })\n }\n }\n\n\n addActiveDashboard() {\n let data = {\n dashboards: this.authorizedDashboards.filter(x => x.isMainDashboard === 1),\n activeDashboardIds: this.dashboards.filter(x => x.isMainDashboard === 1).map(dash => { return dash.dashboardId })\n }\n this.modalService.openModal(data, DashboardSelectionComponent, 'auto', '600px').subscribe(ids => {\n\n if (ids) {\n this.addDashboardToActiveDashboardList(ids);\n }\n });\n }\n openSideNav() {\n this.sidenav.toggle()\n }\n\n private addDashboardToActiveDashboardList(ids: string[]) {\n this.dashboardService.addDashboardToUser(ids).subscribe(result => {\n // this.getDashboards();\n this.getActiveDashboard();\n })\n }\n changeViewList: boolean = false\n openShareForm(shareData: any) {\n\n let data = {\n objectType: shareData.objectType,\n objectId: shareData.objectId,\n dashboardId: this.selectedDashboard.dashboardId,\n filter: this.selectedFilters,\n function: () => {\n this.changeViewList = !this.changeViewList\n },\n };\n\n\n this.modalService.openModal(data, ShareFormComponent, 'auto', '600px').subscribe(result => {\n if (result) {\n }\n })\n }\n\n\n\n getMyShares() {\n this.shareService.getMyShare(this.selectedDashboard.dashboardId).subscribe(myShares => {\n this.myShares = myShares;\n })\n }\n\n\n headerShown: boolean = true\n showFullScreen(status: boolean) {\n this.isFullscreen = !status;\n this.showMessages = false;\n this.coreService.changeHeaderStatus(status);\n this.headerShown = !this.headerShown\n if (status) {\n this.subscriptionAutoPlayDashboardInterval.unsubscribe();\n }\n }\n\n changeDashboardLayout(layout: string) {\n\n if (layout) {\n this.selectedDashboard.layout = layout\n\n this.options.gridType = GridType[layout];\n } else {\n this.options.gridType = GridType.ScrollVertical\n }\n this.options?.api?.optionsChanged()\n }\n\n autoPlay() {\n this.isAutoPlaying = true;\n this.subscriptionAutoPlayDashboardInterval = this.autoPlayDashboardInterval.subscribe(() => {\n this.changeDashboard();\n });\n }\n\n stopAutoPlay() {\n this.isAutoPlaying = false;\n this.subscriptionAutoPlayDashboardInterval.unsubscribe();\n }\n\n changeDashboard() {\n let index = this.dashboards.indexOf(this.selectedDashboard);\n let nextIndex = index + 1;\n nextIndex = (this.dashboards.length - 1) < nextIndex ? 0 : nextIndex;\n\n let nextDashboard = this.dashboards[nextIndex];\n this.dashboardSelected(nextDashboard);\n }\n\n\n addTextToPdf(pdf, fontSize, font, fontType, text, ypos) {\n const pageWidth = pdf.internal.pageSize.getWidth();\n pdf.setFontSize(fontSize);\n pdf.setFont(font, fontType);\n pdf.setTextColor('#131523');\n\n var maxWidth = pageWidth - 10;\n var lines = pdf.splitTextToSize(text, maxWidth);\n\n pdf.text(lines, 10, ypos);\n\n var lineHeight = fontSize * 0.5 * 0.5;\n var totalHeight = ypos + (lines.length * lineHeight) + 30;\n var newYPosition = totalHeight;\n\n return newYPosition\n }\n\n exportAsPdf() {\n const pdf = new jsPDF(\"portrait\", \"mm\", \"a4\");\n\n //font dosyasını ekliyoruz\n pdf.addFileToVFS(\"Montserrat.ttf\", Montserrat);\n pdf.addFileToVFS(\"MontserratBold.ttf\", MontserratBold);\n pdf.addFont(\"MontserratBold.ttf\", \"MontserratBold\", \"bold\");\n pdf.addFont(\"Montserrat.ttf\", \"Montserrat\", \"normal\");\n pdf.setLanguage('tr')\n\n let yOffset = 20;\n const pageHeight = pdf.internal.pageSize.getHeight();\n\n //dashboard title\n yOffset = this.addTextToPdf(pdf, 40, 'MontserratBold', 'bold', this.selectedDashboard.title, yOffset)\n\n\n //dashboard desc\n yOffset = this.addTextToPdf(pdf, 20, 'Montserrat', 'normal', this.selectedDashboard.description, yOffset)\n\n // pdf.setFontSize(20);\n // pdf.setFont('Montserrat', 'normal');\n // pdf.setTextColor('#131523');\n\n // lines = pdf.splitTextToSize(this.selectedDashboard.description, maxWidth);\n\n // pdf.text(lines, 10, yOffset);\n\n // lineHeight = pdf.getFontSize() * 0.8 * 0.8; // Satır yüksekliği (1.2 çarpanı satır boşluğu için)\n // totalHeight = totalHeight + (lines.length * lineHeight);\n\n // newYPosition = totalHeight;\n // yOffset = yOffset + newYPosition\n\n\n const promises = this.dashboardWidgets.map(item => {\n const element = document.getElementById(item.designerContainer.widgetId);\n if (element) {\n\n return htmlToImage.toPng(element).then(imgData => {\n var imageWidth = (element.clientWidth * 190) / window.innerWidth;\n var imageHeight = (element.clientHeight * imageWidth) / element.clientWidth; // Sayfadaki resim yüksekliği (genişlik 190 mm olacak şekilde ölçekleniyor)\n\n // Eğer resim mevcut sayfaya sığmazsa yeni sayfa ekle\n if (yOffset + imageHeight > pageHeight - 10) { // 10 mm kenar boşluğu\n pdf.addPage();\n yOffset = 30; // Yeni sayfanın başına yerleştir\n }\n\n if (imageHeight > pageHeight) {\n imageHeight = pageHeight - 30\n }\n\n // Resmi ekle ve yOffset'i güncelle\n pdf.setFontSize(20);\n pdf.setFont('MontserratBold', 'bold');\n pdf.setTextColor('#131523');\n pdf.text(item.designerContainer.widget.title, 10, yOffset - 8);\n\n if (item.designerContainer.widget.subTitle) {\n pdf.setFontSize(10);\n pdf.setFont('Montserrat', 'normal');\n pdf.setTextColor('#131523');\n pdf.text(item.designerContainer.widget.subTitle, 10, yOffset - 4);\n }\n pdf.addImage(imgData, 'PNG', 10, yOffset, imageWidth, imageHeight);\n yOffset += imageHeight + 20; // Resmin altına 20 mm boşluk ekle\n });\n }\n });\n\n // Tüm Promiseler tamamlandığında PDF'yi kaydedin\n Promise.all(promises).then(() => {\n pdf.save(this.selectedDashboard.title + '.pdf');\n }).catch(error => {\n console.error(\"Error generating PDF: \", error);\n });\n }\n\n exportAsPptx() {\n let pptx = new PptxGenJS();\n let slide = pptx.addSlide();\n\n slide.addText(this.selectedDashboard.title, {\n x: 0.5,\n y: 0.5,\n w: \"80%\",\n h: 250,\n margin: 0.5,\n fontFace: \"Arial\",\n fontSize: 34,\n color: \"#00000\",\n bold: true,\n isTextBox: true,\n });\n\n slide.addText(this.selectedDashboard.description, {\n x: 0.8,\n y: 1.0,\n w: \"80%\",\n h: 200,\n margin: 0.5,\n fontFace: \"Arial\",\n fontSize: 14,\n color: \"#00000\",\n bold: false,\n isTextBox: true,\n });\n\n var user = this.authService.getUserFirstName() + ' ' + this.authService.getUserLastName();\n\n const now = new Date();\n const dateTimeString = now.toLocaleString();\n\n slide.addText(\"By \" + user, {\n x: 7.4,\n y: 5.3,\n w: \"90%\",\n h: 200,\n margin: 0.5,\n fontFace: \"Arial\",\n fontSize: 18,\n color: \"#00000\",\n bold: false,\n isTextBox: false,\n });\n\n slide.addText(\"Generated by Bussion Analytics, Published on : \" + dateTimeString, {\n x: 0.5,\n y: 5.5,\n w: \"90%\",\n h: 200,\n margin: 0.5,\n fontFace: \"Arial\",\n fontSize: 9,\n color: \"#00000\",\n bold: false,\n //italic: true,\n isTextBox: false,\n });\n\n const promises = this.dashboardWidgets.map(item => {\n const element = document.getElementById(item.designerContainer.widgetId);\n if (element) {\n\n return htmlToImage.toPng(element).then(imgData => {\n let slide = pptx.addSlide();\n\n var imageWidth = element.clientWidth / 1024\n var imageHeight = element.clientHeight / 768\n\n slide.addText(item.designerContainer.widget.title, {\n x: 0.5,\n y: 0.5,\n w: \"80%\",\n h: 100,\n margin: 0.5,\n fontFace: \"Arial\",\n fontSize: 24,\n color: \"#00000\",\n bold: true,\n isTextBox: true,\n });\n\n slide.addText(item.designerContainer.widget.subTitle, {\n x: 0.8,\n y: 1.0,\n w: \"80%\",\n h: 100,\n margin: 0.5,\n fontFace: \"Arial\",\n fontSize: 14,\n color: \"#00000\",\n bold: false,\n isTextBox: true,\n });\n\n slide.addImage({\n data: imgData,\n x: 0.5,\n y: 1.5,\n // w: `${imageWidth * 100}%`,\n // h: `${imageHeight * 100}%`,\n w: \"80%\",\n h: \"70%\"\n });\n });\n }\n });\n\n // Tüm Promiseler tamamlandığında PDF'yi kaydedin\n Promise.all(promises).then(() => {\n pptx.writeFile({ fileName: this.selectedDashboard.title + \".pptx\" });\n }).catch(error => {\n console.error(\"Error generating PDF: \", error);\n });\n }\n\n exportDashboard(type: string) {\n if (type == 'pdf') {\n this.exportAsPdf()\n } else if (type == 'pptx') {\n this.exportAsPptx()\n }\n // var capture = document.getElementById('capture')\n // html2canvas(capture).then(canvas => {\n // this.canvas.nativeElement.src = canvas.toDataURL();\n // this.downloadLink.nativeElement.href = canvas.toDataURL('image/png');\n // this.downloadLink.nativeElement.download = this.selectedDashboard.title + '.png';\n // this.downloadLink.nativeElement.click();\n // })\n }\n\n\n async refreshWidgetRender() {\n this.dashboardWidgets = []\n \n for (const widget of this.widgetList) {\n this.dashboardWidgets.push(widget);\n await this.createWidget(widget.designerContainer);\n this.cdr.detectChanges();\n }\n\n }\n\n redirection() {\n if (this.returnApp.observers.length > 0) {\n this.returnApp.emit()\n } else if (this.redirectApp) {\n this.router.navigate([this.redirectApp])\n } else {\n this.router.navigate(['/'])\n }\n }\n\n openInfoBox() {\n if (this.infoDialogRef) {\n this.infoDialogRef.close(); // Mevcut dialogu kapat\n this.infoDialogRef = null; // Referansı temizle\n }\n var perfWidgets = this.serviceWidgets\n if (this.scriptLoader.openedModals.getValue().length > 0) {\n perfWidgets = this.scriptLoader.openedModals.getValue()[this.scriptLoader.openedModals.getValue().length - 1].widgets\n }\n this.infoDialogRef = this.dialogService.openModalWithRef({ widgets: perfWidgets }, DashboardPerformanceInfoComponent, '50%', '30%', 'right-modal', { bottom: '35px', right: '0px' })\n }\n\n\n private customizeDashboard() {\n this.options = {\n gridType: GridType.ScrollVertical,\n compactType: CompactType.None,\n margin: this.deviceService.isTablet() && window.orientation != 0 ? 5 : 10,\n outerMargin: true,\n outerMarginTop: null,\n outerMarginRight: null,\n outerMarginBottom: null,\n outerMarginLeft: null,\n useTransformPositioning: true,\n mobileBreakpoint: 640,\n minCols: 24,\n maxCols: 100,\n minRows: 5,\n maxRows: 100,\n maxItemCols: 100,\n minItemCols: 1,\n maxItemRows: 100,\n minItemRows: 1,\n maxItemArea: 2500,\n minItemArea: 1,\n defaultItemCols: 1,\n defaultItemRows: 1,\n fixedColWidth: 105,\n fixedRowHeight: 205,\n keepFixedHeightInMobile: true,\n keepFixedWidthInMobile: false,\n scrollSensitivity: 10,\n scrollSpeed: 20,\n enableEmptyCellClick: false,\n enableEmptyCellContextMenu: false,\n enableEmptyCellDrop: false,\n enableEmptyCellDrag: false,\n enableOccupiedCellDrop: false,\n emptyCellDragMaxCols: 50,\n emptyCellDragMaxRows: 50,\n ignoreMarginInRow: false,\n draggable: {\n enabled: false,\n },\n resizable: {\n enabled: false,\n },\n swap: false,\n pushItems: true,\n disablePushOnDrag: false,\n disablePushOnResize: false,\n pushDirections: { north: true, east: true, south: true, west: true },\n pushResizeItems: false,\n displayGrid: DisplayGrid.None,\n disableWindowResize: false,\n disableWarnings: false,\n scrollToNewItems: false,\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 {{selectedDashboard.title}}\n keyboard_arrow_down\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 {{dashboard.title}}\n \n\n \n {{ 'MainPage.FitToScreen' | translate\n }}\n {{ 'MainPage.ScrollVertical' |\n translate }}\n {{ 'MainPage.FullScreen' | 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
\n\n\n
\n \n \n
","import { Component, OnInit } from '@angular/core';\nimport { MatTableDataSource } from '@angular/material/table';\nimport { TranslateService } from '@ngx-translate/core';\nimport { SystemParametersService } from 'src/app/services/system-parameters/system-parameters.service';\nimport * as XLSX from 'xlsx';\nimport * as FileSaver from 'file-saver';\n\n@Component({\n selector: 'app-bussion-logs',\n templateUrl: './bussion-logs.component.html',\n styleUrls: ['./bussion-logs.component.scss']\n})\nexport class BussionLogsComponent implements OnInit {\n\n constructor(\n private systemParametersService: SystemParametersService,\n private translate: TranslateService\n\n ) { }\n serverLogs: any[] = [];\n connectorLogs: any[] = [];\n displayedColumns = ['no', 'message'];\n displayedColumnsName: string[] = [this.translate.instant(\"LogsPage.No\"), this.translate.instant(\"LogsPage.LogsMessage\")]\n\n ngOnInit(): void {\n this.getServerLogs()\n this.getConnectorLogs()\n }\n refreshServerLogTable(event: any) {\n this.getServerLogs()\n }\n refreshConnectorLogTable(event: any) {\n this.getConnectorLogs()\n }\n getServerLogs() {\n this.systemParametersService.getLogs('Server').subscribe(res => {\n this.serverLogs = res.map((item, key) => {\n return { message: item, no: key + 1 }\n })\n\n })\n }\n getConnectorLogs() {\n this.systemParametersService.getLogs('Connector').subscribe(res => {\n this.connectorLogs = res.map((item, key) => {\n return { message: item, no: key + 1 }\n })\n })\n }\n\n exportToExcelServerLog() {\n const worksheet = XLSX.utils.json_to_sheet(this.serverLogs);\n const workbook = { Sheets: { 'data': worksheet }, SheetNames: ['data'] };\n const excelBuffer = XLSX.write(workbook, { bookType: 'xlsx', type: 'array' });\n const data = new Blob([excelBuffer], { type: 'application/octet-stream' });\n FileSaver.saveAs(data, 'ServerLogs.xlsx');\n }\n exportToExcelConnector() {\n const worksheet2 = XLSX.utils.json_to_sheet(this.connectorLogs);\n const workbook2 = { Sheets: { 'data': worksheet2 }, SheetNames: ['data'] };\n const excelBuffer2 = XLSX.write(workbook2, { bookType: 'xlsx', type: 'array' });\n const data2 = new Blob([excelBuffer2], { type: 'application/octet-stream' });\n FileSaver.saveAs(data2, 'ConnectorLogs.xlsx');\n }\n\n}\n","
\n \n
\n \n \n
\n \n \n
\n\n
\n \n
\n \n \n\n
\n
\n
\n
\n
","import { Component, OnInit, Inject } from '@angular/core';\nimport { ColorPalette } from 'src/app/models/responses/colorPaletteResponse';\nimport { ColorPaletteService } from 'src/app/services/color-palette/color-palette.service';\nimport { MAT_DIALOG_DATA, MatDialogRef } from '@angular/material/dialog';\nimport { NgxSpinnerService } from 'ngx-spinner';\nimport { UntypedFormGroup, UntypedFormControl, Validators } from '@angular/forms';\nimport { CoreService } from 'src/app/services/core/core.service';\nimport { TranslateService } from '@ngx-translate/core';\nimport chroma from \"chroma-js\";\n\n@Component({\n selector: 'app-color-palette-form',\n templateUrl: './color-palette-form.component.html',\n styleUrls: ['./color-palette-form.component.scss']\n})\nexport class ColorPaletteFormComponent implements OnInit {\n\n pageForm: UntypedFormGroup;\n title: string = \"\";\n isShownForm: boolean = false;\n color: string = \"\";\n colorSuggestion: string[] = []\n colorSuggestionForPicker: string[] = []\n selectedColorsForSuggestion: string[] = []\n colorSuggestCount: number = 7\n\n isCreateForm: boolean = true;\n colorPalette: ColorPalette = {\n name: \"\",\n palettes: []\n }\n constructor(\n @Inject(MAT_DIALOG_DATA) public data: any,\n private dialogRef: MatDialogRef,\n private spinner: NgxSpinnerService,\n private colorService: ColorPaletteService,\n private translate: TranslateService,\n private coreService: CoreService\n ) { }\n\n ngOnInit(): void {\n this.pageForm = new UntypedFormGroup({\n name: new UntypedFormControl(this.colorPalette.name, [Validators.required]),\n });\n\n this.title = this.data.type == 'update' ? this.translate.instant(\"ColorPaletteFormPage.TitleUpdate\") : this.translate.instant(\"ColorPaletteFormPage.TitleCreate\");\n this.isCreateForm = this.data.type == 'update' ? false : true;\n if (this.data.color) {\n this.colorPalette = Object.assign({}, this.data.color);\n }\n\n this.selectedColorsForSuggestion = [this.colorPalette.palettes[0], this.colorPalette.palettes[this.colorPalette.palettes.length - 1]]\n this.createSuggestion(this.colorSuggestCount)\n\n\n }\n\n\n createSuggestion(suggestionCount: number) {\n this.colorSuggestion = chroma.scale(this.selectedColorsForSuggestion)\n .mode('lch').colors(suggestionCount)\n }\n\n changeSuggestionForPicker() {\n var brigtlist = [0.5, 1, 1.5, 2, 2.5, 3, 3.5, 4, 4.5]\n var darklist = [0.5, 0.8, 1, 1.3, 1.8, 2, 2.5, 2.8, 3]\n\n this.colorSuggestionForPicker = darklist.map(item => {\n return chroma(this.color).darken(item).hex()\n })\n\n var brigthen = brigtlist.map(item => {\n return chroma(this.color).brighten(item).hex()\n })\n this.colorSuggestionForPicker = this.colorSuggestionForPicker.concat(brigthen)\n }\n\n selectColorForSuggestion(selectedcolor: string) {\n this.selectedColorsForSuggestion.push(selectedcolor)\n this.selectedColorsForSuggestion.shift()\n this.createSuggestion(this.colorSuggestCount)\n }\n\n upsertColorPalette() {\n if (this.pageForm.invalid) {\n this.coreService.showFormFillError();\n return;\n }\n this.spinner.show();\n this.colorService.upsertColorPalette(this.colorPalette).subscribe(result => {\n this.spinner.hide();\n this.dialogRef.close(true);\n });\n }\n\n addColor(color?: string) {\n if (color) {\n this.colorPalette.palettes.unshift(color)\n } else\n this.colorPalette.palettes.unshift(this.color)\n }\n\n deleteColor(index: number) {\n this.colorPalette.palettes.splice(index, 1);\n }\n\n}\n","\n\n\n\n
\n
\n
\n \n {{ 'ColorPaletteFormPage.Name' | translate }}\n \n \n
\n
\n
\n
\n \n \n
\n
\n
0\">\n \n
\n
\n {{color}}\n control_point\n
\n
\n
\n
0\">\n \n
\n\n
\n {{color}}\n \n
\n \n
\n
\n\n
\n\n
\n
\n\n \n \n \n \n \n\n
\n
","import { Component, OnInit, ViewChild } from '@angular/core';\nimport { NgxSpinnerService } from 'ngx-spinner';\nimport { ColorPaletteService } from 'src/app/services/color-palette/color-palette.service';\nimport { ColorPaletteFormComponent } from './color-palette-form/color-palette-form.component';\nimport { MatTableDataSource } from '@angular/material/table';\nimport { MatPaginator } from '@angular/material/paginator';\nimport { MatSort } from '@angular/material/sort';\nimport { MatDialog } from '@angular/material/dialog';\nimport { ActionDialogComponent } from 'src/app/components/action-dialog/action-dialog/action-dialog.component';\nimport { ColorPalette } from 'src/app/models/responses/colorPaletteResponse';\nimport { ModalService } from 'src/app/services/modal/modal.service';\nimport { TranslateService } from '@ngx-translate/core';\n\n@Component({\n selector: 'app-color-palette',\n templateUrl: './color-palette.component.html',\n styleUrls: ['./color-palette.component.scss']\n})\nexport class ColorPaletteComponent implements OnInit {\n\n displayedColumns: string[] = ['name', 'palettes','action'];\n columnWidth:string[]=['30%','40%','30%']\n displayedColumnsName: string[] = [this.translate.instant(\"ColorPalettePage.Name\"),this.translate.instant(\"ColorPalettePage.Palettes\"),this.translate.instant(\"ColorPalettePage.Action\")];\n colorPalettes: ColorPalette[] = [];\n\n constructor(\n private dialog: MatDialog,\n private spinner: NgxSpinnerService,\n private colorService: ColorPaletteService,\n private modalService: ModalService,\n private translate: TranslateService\n ) { }\n\n ngOnInit(): void {\n this.getColorPalettes()\n }\n\n getColorPalettes() {\n this.colorService.getColorPalettes().subscribe(result => {\n this.colorPalettes = result;\n });\n }\n\n deleteColorPalette(color: ColorPalette) {\n this.modalService.openDeleteConfirm().subscribe(result => {\n if (result === true) {\n this.spinner.show();\n this.colorService.deleteColorPalette(color).subscribe(result => {\n this.spinner.hide();\n this.getColorPalettes();\n });\n }\n });\n }\n\n openColorPalette(event: any) {\n let data = {\n type: event.type as string,\n color: event.data as ColorPalette\n }\n this.modalService.openModal(data, ColorPaletteFormComponent, '70%', '60%','overflow-hidden').subscribe(result => {\n if (result === true) {\n this.getColorPalettes();\n }\n });\n }\n\n\n}\n","
\n \n \n
","import { Component, OnInit, Inject, ViewChild, TemplateRef } from '@angular/core';\nimport { MAT_DIALOG_DATA, MatDialog, MatDialogRef } from '@angular/material/dialog';\nimport { BussionConnector, BParameter, RunPeriod, ScriptFlow } from 'src/app/models/responses/bussionConncetorResponse';\nimport { MatStepper } from '@angular/material/stepper';\nimport { NodeService } from 'src/app/services/node/node.service';\nimport { Node } from 'src/app/models/responses/nodeResponse';\nimport { ConnectorService } from 'src/app/services/connector/connector.service';\nimport { UntypedFormGroup, Validators, UntypedFormControl, ValidationErrors, FormControl } from '@angular/forms';\nimport { CoreService } from 'src/app/services/core/core.service';\nimport { TranslateService } from '@ngx-translate/core';\nimport { GlobalFunctionService } from 'src/app/services/global-function/global-function.service';\nimport { MatRadioChange } from '@angular/material/radio';\nimport { CodeEditorComponent } from 'src/app/components/code-editor/code-editor.component';\nimport { Observable } from 'rxjs';\nimport { catchError, map, startWith } from 'rxjs/operators';\nimport { DataStoreService } from 'src/app/services/dataStore/data-store.service';\n\ndeclare var monaco: any;\n\n@Component({\n selector: 'app-connector-form',\n templateUrl: './connector-form.component.html',\n styleUrls: ['./connector-form.component.scss']\n})\nexport class ConnectorFormComponent implements OnInit {\n @ViewChild('passwordDialog') passwordDialog: TemplateRef;\n passwordinputtype: string = 'password'\n password: string = ''\n dataPreview: any[] = []\n dataDataPreviewColumns: { fieldName: string, fieldType: string }[] = []\n previewScreen: boolean = false\n\n stepCount: number = 5;\n isCreateForm: boolean = true;\n title: string = \"\";\n @ViewChild('stepper') private formStepper: MatStepper;\n editorOptions = { theme: 'vs-dark', language: 'sql' };\n dataNodes: Node[] = [];\n connectors: Node[] = [];\n orgNodeId: string;\n showInMemory = false;\n checked = false;\n useConnectionString = false\n scriptFlows: ScriptFlow[] = []\n selectedScriptFlow: any\n bulkInsert: boolean = true\n externalEngineCodeTemp: string = ''\n externalEngineCodeTemplate: string = ''\n\n externalEnginesByConnector: any[] = []\n\n compareFunctionForTaskType = (o1: any, o2: any) => o1 === o2.toString();\n compareFunctionForTaskStatus = (o1: any, o2: any) => o1 === o2.toString();\n compareFunctionForTaskSourceType = (o1: any, o2: any) => o1 === o2.toString();\n compareFunctionForFlow = (o1: any, o2: any) => { o1 === o2.toString(); }\n compareFunctionForTaskFrequency = (o1: any, o2: any) => o1 === o2.toString();\n\n firstForm: UntypedFormGroup;\n secondForm: UntypedFormGroup;\n thirdForm: UntypedFormGroup;\n fourthForm: UntypedFormGroup;\n\n parameter: BParameter = {\n parameterName: '',\n parameterValue: ''\n };\n\n universes: string[] = [];\n collections: string[] = [];\n columns: any[] = [];\n\n task: BussionConnector = {\n status: 1, //0: Passive 1: Active\n ownerId: \"\",\n icon: \"\",\n name: \"\",\n domain: \"\",\n type: 0,\n state: 0,\n connectionString: \"\",\n sourceType: -1,\n sourceDatabase: \"\",\n sourceServer: \"\",\n sourceUser: \"\",\n sourcePassword: \"\",\n sourcePort: \"\",\n node: \"\",\n bussionConnector: \"\",\n universe: \"\",\n collection: \"\",\n query: \"\",\n queryParameter: [],\n keyField: \"\",\n reportEmails: \"\",\n updateField: \"\",\n keepExistingSchema: 0,\n commandTimeOut: 30,\n inMemory: 0,\n runAtPeriod: {\n type: -1,\n seconds: -1,\n minute: -1,\n hour: -1,\n day: -1,\n month: -1,\n year: -1\n },\n disableThreshold: 3,\n bufferSize: 10000,\n bulkInsert: 1,\n folder: \"\"\n\n }\n\n autoComplete = new FormControl('');\n columnAutoComplete = new FormControl('');\n columnAutoComplete2 = new FormControl('');\n folderAutoComplete = new FormControl('');\n\n\n\n filteredOptions: Observable;\n filteredUniverseOption: Observable;\n filteredCollectionOption: Observable;\n filteredColumnOption: Observable;\n filteredColumnOption2: Observable;\n filteredFolderOptions: Observable;\n\n constructor(\n @Inject(MAT_DIALOG_DATA) public data: {\n type: string,\n task: BussionConnector,\n folderList: string[]\n },\n private dialogRef: MatDialogRef,\n private nodeService: NodeService,\n private connectorService: ConnectorService,\n private coreService: CoreService,\n private translate: TranslateService,\n private functionService: GlobalFunctionService,\n private dialog: MatDialog,\n private dataStoreService: DataStoreService\n ) { }\n\n ngOnInit(): void {\n this.setupValidations();\n this.title = this.data.type == 'update' ? this.translate.instant(\"ConnectorFormPage.TitleUpdate\") : this.translate.instant(\"ConnectorFormPage.TitleCreate\");\n this.isCreateForm = this.data.type == 'update' ? false : true;\n\n if (this.data.task) {\n this.task = Object.assign({}, this.data.task);\n this.task.status = this.task.status == 'Active' ? 1 : 0;\n this.task.state = this.task.state == 'Working' ? 1 : 0;\n this.task.type = this.getTypeValue(this.task.type);\n this.stepCount = this.task.type === 2 ? 4 : 5;\n this.useConnectionString = this.task.connectionString.length > 0 ? true : false\n\n if (this.task.sourceType == 10) {\n this.stepCount = 4\n this.useConnectionString = false\n this.getExternalEngines();\n this.getExternalEngineCode()\n this.getExternalEngineCodeTemplate()\n }\n this.bulkInsert = this.task.bulkInsert == 1 ? true : false\n //this.runPeriod = this.task.runAtPeriod;\n if (this.task.sourceType == 9) {\n this.getDataFlows()\n }\n }\n this.getDataNodes();\n this.getBussionConnectors();\n\n this.filteredFolderOptions = this.folderAutoComplete.valueChanges.pipe(\n startWith(''),\n map(value => this._filter(value || '', this.data.folderList)),\n );\n }\n\n private _filter(value: string, data: any[]): string[] {\n const filterValue = value.toLowerCase();\n\n return data.filter(option => option.toLowerCase().includes(filterValue));\n }\n\n editorInit(eventInit: any) {\n (window as any).monaco.languages.typescript.javascriptDefaults.setDiagnosticsOptions({\n noSemanticValidation: true,\n noSyntaxValidation: true\n });\n\n (window as any).monaco.languages.typescript.javascriptDefaults.setCompilerOptions({\n target: monaco.languages.typescript.ScriptTarget.ES6,\n allowNonTsExtensions: true\n });\n\n this.getGlobalFunctionDefinitions();\n\n }\n\n getGlobalFunctionDefinitions() {\n this.functionService.getGlobalFunctionsDefinitions().subscribe(code => {\n (window as any).monaco.languages.typescript.javascriptDefaults.addExtraLib(code);\n })\n }\n\n getDataFlows() {\n this.connectorService.getDataFlows().subscribe(res => {\n this.scriptFlows = res\n this.selectedScriptFlow = this.scriptFlows.find(x => x.flowId == this.task.connectionString)\n })\n }\n\n selectFlow(selected: string) {\n this.selectedScriptFlow = this.scriptFlows.find(x => x.flowId == selected)\n\n\n }\n\n changeSecondFormValidation(event: any) {\n this.task.sourceType = parseInt(this.task.sourceType.toString())\n this.stepCount = this.task.sourceType == 8 || this.task.sourceType == 9 ? 3 : parseInt(this.task.type) !== 2 ? 5 : 4\n\n if (this.task.sourceType == 10) {\n this.stepCount = 4;\n this.useConnectionString = false\n if (!this.data.task)\n this.getExternalEngineCodeTemplate()\n }\n\n if (this.task.sourceType == 9) {\n this.getDataFlows()\n }\n\n if (this.task.sourceType == 0) {\n this.useConnectionString = true\n }\n\n if (this.useConnectionString) {\n this.secondForm.get('connectionString').setValidators(Validators.required);\n this.secondForm.get('sourceType').clearValidators();\n this.secondForm.get('sourceServer').clearValidators();\n this.secondForm.get('sourcePort').clearValidators();\n this.secondForm.get('sourceDatabase').clearValidators();\n this.secondForm.get('sourceUser').clearValidators();\n this.secondForm.get('sourcePassword').clearValidators();\n\n this.secondForm.get('connectionString').updateValueAndValidity();\n this.secondForm.get('sourceType').updateValueAndValidity();\n this.secondForm.get('sourceServer').updateValueAndValidity();\n this.secondForm.get('sourcePort').updateValueAndValidity();\n this.secondForm.get('sourceDatabase').updateValueAndValidity();\n this.secondForm.get('sourceUser').updateValueAndValidity();\n this.secondForm.get('sourcePassword').updateValueAndValidity();\n\n } else {\n this.secondForm.get('connectionString').clearValidators();\n this.secondForm.get('sourceType').setValidators(Validators.required);\n this.secondForm.get('sourceServer').setValidators(Validators.required);\n this.secondForm.get('sourcePort').setValidators(Validators.required);\n this.secondForm.get('sourceDatabase').setValidators(Validators.required);\n this.secondForm.get('sourceUser').setValidators(Validators.required);\n this.secondForm.get('sourcePassword').setValidators(Validators.required);\n\n\n this.secondForm.get('connectionString').updateValueAndValidity();\n this.secondForm.get('sourceType').updateValueAndValidity();\n this.secondForm.get('sourceServer').updateValueAndValidity();\n this.secondForm.get('sourcePort').updateValueAndValidity();\n this.secondForm.get('sourceDatabase').updateValueAndValidity();\n this.secondForm.get('sourceUser').updateValueAndValidity();\n this.secondForm.get('sourcePassword').updateValueAndValidity();\n\n }\n if (this.task.sourceType == 8 || this.task.sourceType == 9 || this.task.sourceType == 10 || this.task.sourceType == 4) {\n if (this.task.sourceType !== 4)\n this.useConnectionString = true\n this.secondForm.get('connectionString').setValidators(Validators.required);\n this.secondForm.get('sourceType').clearValidators();\n this.secondForm.get('sourceServer').clearValidators();\n this.secondForm.get('sourcePort').clearValidators();\n this.secondForm.get('sourceDatabase').clearValidators();\n this.secondForm.get('sourceUser').clearValidators();\n this.secondForm.get('sourcePassword').clearValidators();\n this.thirdForm.get('node').clearValidators();\n this.thirdForm.get('universe').clearValidators();\n this.thirdForm.get('collection').clearValidators();\n this.thirdForm.get('keepExistingSchema').clearValidators();\n\n\n this.secondForm.get('connectionString').updateValueAndValidity();\n this.secondForm.get('sourceType').updateValueAndValidity();\n this.secondForm.get('sourceServer').updateValueAndValidity();\n this.secondForm.get('sourcePort').updateValueAndValidity();\n this.secondForm.get('sourceDatabase').updateValueAndValidity();\n this.secondForm.get('sourceUser').updateValueAndValidity();\n this.secondForm.get('sourcePassword').updateValueAndValidity();\n this.thirdForm.get('node').updateValueAndValidity();\n this.thirdForm.get('universe').updateValueAndValidity();\n this.thirdForm.get('collection').updateValueAndValidity();\n this.thirdForm.get('keepExistingSchema').updateValueAndValidity();\n\n }\n }\n\n setupValidations() {\n this.firstForm = new UntypedFormGroup({\n name: new UntypedFormControl(this.task.name, [Validators.required]),\n });\n\n this.secondForm = new UntypedFormGroup({\n sourceType: new UntypedFormControl(this.task.sourceType, [Validators.required]),\n sourceServer: new UntypedFormControl(this.task.sourceServer, [Validators.required]),\n sourcePort: new UntypedFormControl(this.task.sourcePort, [Validators.required]),\n sourceDatabase: new UntypedFormControl(this.task.sourceDatabase, [Validators.required]),\n sourceUser: new UntypedFormControl(this.task.sourceUser, [Validators.required]),\n sourcePassword: new UntypedFormControl(this.task.sourcePassword, [Validators.required]),\n connectionString: new UntypedFormControl(this.task.connectionString),\n commandTimeOut: new UntypedFormControl(this.task.commandTimeOut, [Validators.required]),\n disableThreshold: new UntypedFormControl(this.task.disableThreshold)\n\n });\n\n this.thirdForm = new UntypedFormGroup({\n node: new UntypedFormControl(this.task.node, [Validators.required]),\n universe: new UntypedFormControl(this.task.universe, [Validators.required]),\n collection: new UntypedFormControl(this.task.collection, [Validators.required]),\n keepExistingSchema: new UntypedFormControl(this.task.keepExistingSchema, [Validators.required]),\n bulkInsert: new UntypedFormControl(this.task.bulkInsert, [Validators.required]),\n bufferSize: new UntypedFormControl(this.task.bufferSize, [Validators.required])\n });\n if (this.task.node != \"\")\n this.orgNodeId = this.task.node;\n this.fourthForm = new UntypedFormGroup({\n bussionConnector: new UntypedFormControl(this.task.bussionConnector, [Validators.required]),\n });\n\n\n }\n\n getDataNodes() {\n this.nodeService.getDataNodes().pipe().subscribe(result => {\n this.dataNodes = result;\n var currentNode = this.dataNodes.find(x => x.nodeId == this.orgNodeId);\n if (currentNode.dataNodeType.toLowerCase() == \"clickhouse\")\n this.showInMemory = true;\n if (this.task.inMemory == 1)\n this.checked = true;\n });\n }\n\n getBussionConnectors() {\n this.connectorService.getConnectors().subscribe(result => {\n this.connectors = result;\n });\n }\n\n getCredentials() {\n if (this.task.sourceServer && this.task.sourcePort) {\n this.connectorService.getCredentials(this.task.sourceServer, this.task.sourcePort).subscribe(res => {\n if (res) {\n this.task.sourceUser = res.split(' ')[0]\n this.task.sourcePassword = res.split(' ')[1]\n this.password = this.task.sourcePassword\n\n }\n })\n }\n }\n\n saveTask(saveAs: boolean) {\n if (!this.checkValidation(5)) {\n this.coreService.showFormFillError();\n return\n }\n if (saveAs) {\n delete this.task.connectorId\n if (this.data.task.name == this.task.name) {\n this.task.name = this.task.name + '_Copy'\n }\n }\n this.task.bulkInsert = this.bulkInsert ? 1 : 0\n if (this.task.sourceType.toString() !== '8' && this.task.sourceType.toString() !== '9' && this.task.sourceType.toString() !== '10' &&\n this.task.sourceType.toString() !== '4')\n this.task.connectionString = this.useConnectionString ? this.task.connectionString : ''\n\n this.connectorService.upsertConnectorTask(this.task).subscribe(result => {\n this.dialogRef.close(true);\n if (this.task.sourceType == 10)\n this.upsertExternalEngine(this.task.bussionConnector, this.task.connectionString, this.externalEngineCodeTemp)\n });\n\n }\n\n\n\n addParameter() {\n this.task.queryParameter.push(this.parameter);\n this.parameter = {\n parameterName: '',\n parameterValue: ''\n }\n }\n\n deleteParameter(param: BParameter) {\n let index = this.task.queryParameter.findIndex(x => {\n return x.parameterName == param.parameterName && x.parameterValue == param.parameterValue;\n });\n if (index !== -1) {\n this.task.queryParameter.splice(index, 1);\n }\n }\n\n goToNextStep() {\n\n if (this.checkValidation(this.formStepper.selectedIndex)) {\n this.formStepper.next();\n }\n else {\n this.coreService.showFormFillError();\n }\n }\n\n backToPreviousStep() {\n this.formStepper.previous();\n }\n\n checkValidation(index: number): boolean {\n if (index == 0) {\n return this.firstForm.valid;\n }\n else if (index == 1) {\n return this.secondForm.valid;\n }\n else if (index == 2) {\n return this.thirdForm.valid;\n }\n else if (index == 3) {\n if (this.task.sourceType == 8)\n return this.checkSchuleValidation();\n else\n return this.fourthForm.valid;\n }\n else if (index == 5) {\n return this.checkSchuleValidation();\n }\n else {\n return true;\n }\n }\n\n periodTypeChanged(event: any) {\n this.task.runAtPeriod.seconds = -1;\n this.task.runAtPeriod.minute = -1;\n this.task.runAtPeriod.hour = -1;\n this.task.runAtPeriod.day = -1;\n this.task.runAtPeriod.month = -1;\n this.task.runAtPeriod.year = -1;\n }\n\n private getTypeValue(type: string): number {\n\n if (type == 'Batch') {\n return 0;\n }\n else if (type == 'Periodically') {\n return 1;\n }\n else if (type == 'Direct') {\n return 2;\n } else {\n return parseInt(type)\n }\n }\n\n private checkSchuleValidation(): boolean {\n if (this.task.type == 2) {\n return true;\n }\n else {\n if (this.task.runAtPeriod.type == -1) {\n return true;\n }\n else if (this.task.runAtPeriod.type == 0) {\n return this.task.runAtPeriod.seconds != -1;\n }\n else if (this.task.runAtPeriod.type == 1) {\n return this.task.runAtPeriod.minute != -1;\n }\n else if (this.task.runAtPeriod.type == 2) {\n return this.task.runAtPeriod.hour != -1;\n }\n else if (this.task.runAtPeriod.type == 3) {\n return this.task.runAtPeriod.day != -1 && this.task.runAtPeriod.hour != -1 && this.task.runAtPeriod.minute != -1;\n }\n else if (this.task.runAtPeriod.type == 4) {\n return this.task.runAtPeriod.day != -1 && this.task.runAtPeriod.hour != -1 && this.task.runAtPeriod.minute != -1;\n }\n else if (this.task.runAtPeriod.type == 5) {\n return this.task.runAtPeriod.day != -1 && this.task.runAtPeriod.hour != -1 && this.task.runAtPeriod.minute != -1;\n }\n else {\n return false;\n }\n }\n }\n\n taskTypeChanged(type) {\n this.stepCount = type === \"2\" ? 3 : 4;\n\n }\n\n openBiggerEditor() {\n const dialogRef = this.dialog.open(CodeEditorComponent, {\n height: '100%',\n width: '100%',\n data: {\n code: this.task.query,\n debug: () => { }\n },\n });\n\n\n dialogRef.afterClosed().subscribe(result => {\n if (result) {\n this.task.query = result;\n }\n });\n }\n\n\n\n checkInMemoryInDataNodeChange(selecteddatanode: any) {\n if (this.dataNodes.length == 0)\n return true;\n var currentNode = this.dataNodes.find(x => x.nodeId == selecteddatanode.value);\n if (currentNode.dataNodeType.toLowerCase() == \"clickhouse\")\n this.showInMemory = true;\n else\n this.showInMemory = false;\n\n if (this.orgNodeId == undefined) {\n this.orgNodeId = this.task.node;\n if (this.task.inMemory == 1) {\n this.checked = true;\n }\n else\n this.checked = false;\n }\n if (currentNode == undefined) {\n this.task.inMemory = 0;\n this.checked = false;\n\n }\n\n if (currentNode.dataNodeType.toLowerCase() == \"clickhouse\") {\n if (currentNode.nodeId != this.orgNodeId) {\n this.task.inMemory = 0;\n this.checked = false;\n this.task.node = currentNode.nodeId;\n }\n\n\n } else {\n this.task.inMemory = 0;\n this.checked = false;\n this.task.node = currentNode.nodeId;\n //return this.checked;\n // return localStorage.getItem('myFormControlValue') !== null;\n }\n this.getUniverse()\n\n }\n checkInMemory() {\n if (this.checked)\n this.task.inMemory = 0;\n else\n this.task.inMemory = 1;\n }\n\n checkConnection(event) {\n\n if (event.checked) {\n this.useConnectionString = true;\n } else {\n this.useConnectionString = false;\n this.task.connectionString = \"\";\n\n }\n this.changeSecondFormValidation(event)\n }\n\n\n\n getExrenalEngineCode() {\n this.connectorService.GetExternalEngineCode(this.task.bussionConnector, this.task.connectionString).subscribe\n }\n\n getExternalEngineCodeTemplate() {\n if (this.task.bussionConnector !== '') {\n this.connectorService.GetExternalEngineTemplate(this.task.bussionConnector).subscribe(res => {\n this.externalEngineCodeTemp = res\n this.externalEngineCodeTemplate = res\n })\n }\n }\n loadingEngines: boolean = false\n getExternalEngines() {\n\n if (this.fourthForm.value.bussionConnector !== '' || this.task.bussionConnector !== '') {\n this.task.bussionConnector = this.fourthForm.value.bussionConnector ? this.fourthForm.value.bussionConnector : this.task.bussionConnector\n this.loadingEngines = true\n this.connectorService.GetExternalEngines(this.task.bussionConnector).pipe(\n catchError(error => {\n console.error('Hata:', error);\n this.loadingEngines = false;\n this.coreService.showErrorMessage(error)\n this.externalEnginesByConnector = [];\n this.filteredOptions = this.autoComplete.valueChanges.pipe(\n startWith(''),\n map(value => this._filter(value || '', this.externalEnginesByConnector)),\n );\n return error;\n })\n ).subscribe(res => {\n this.loadingEngines = false;\n this.externalEnginesByConnector = res;\n this.filteredOptions = this.autoComplete.valueChanges.pipe(\n startWith(''),\n map(value => this._filter(value || '', this.externalEnginesByConnector)),\n );\n\n });\n }\n }\n\n getExternalEngineCode() {\n if (this.externalEnginesByConnector.some(x => x == this.task.connectionString)) {\n this.connectorService.GetExternalEngineCode(this.task.bussionConnector, this.task.connectionString).subscribe(res => {\n this.externalEngineCodeTemp = res\n })\n }\n else {\n this.externalEngineCodeTemp = this.externalEngineCodeTemplate\n\n }\n }\n\n openCodeScreen() {\n\n\n const dialogRef = this.dialog.open(CodeEditorComponent, {\n height: '100%',\n width: '100%',\n data: {\n code: this.externalEngineCodeTemp,\n compileVisible: false,\n editorOptions: { theme: 'vs-dark', language: 'csharp' }\n },\n });\n\n\n dialogRef.afterClosed().subscribe(result => {\n if (result) {\n this.externalEngineCodeTemp = result\n }\n });\n }\n\n upsertExternalEngine(nodeID: string, engine: string, code: string) {\n\n this.connectorService.UpsertExternalEngine(nodeID, engine, code).subscribe(res => {\n\n })\n }\n\n bussionConnectorChange() {\n\n this.getExternalEngines();\n }\n\n\n fillAutoCompleteArea() {\n\n\n this.filteredUniverseOption = this.thirdForm.get('node').valueChanges.pipe(\n startWith(''),\n map(value => this._filter(value || '', this.universes)),\n );\n\n this.filteredCollectionOption = this.thirdForm.get('universe').valueChanges.pipe(\n startWith(''),\n map(value => this._filter(value || '', this.collections)),\n );\n\n this.filteredColumnOption = this.columnAutoComplete.valueChanges.pipe(\n startWith(''),\n map(value => this._filter(value || '', this.columns)),\n );\n\n this.filteredColumnOption2 = this.columnAutoComplete2.valueChanges.pipe(\n startWith(''),\n map(value => this._filter(value || '', this.columns)),\n );\n\n\n }\n\n\n\n private getUniverse() {\n if (this.task.node)\n this.dataStoreService.getUniverses(this.task.node).pipe(\n catchError(res => {\n this.universes = []\n this.columns = []\n this.collections = []\n this.coreService.showErrorMessage(res)\n this.fillAutoCompleteArea()\n return res\n })\n ).subscribe((result: string[]) => {\n\n this.universes = result;\n\n this.fillAutoCompleteArea()\n\n });\n }\n\n universeSelection() {\n\n this.getCollections();\n }\n\n private getCollections() {\n this.task.universe = this.task.universe ? this.task.universe : this.thirdForm.value.universe\n if (this.task.node && this.universes.includes(this.task.universe))\n this.dataStoreService.getCollections(this.task.node, this.task.universe).pipe(\n catchError(res => {\n this.collections = []\n this.columns = []\n this.coreService.showErrorMessage(res)\n this.fillAutoCompleteArea()\n\n return res\n })\n ).subscribe(result => {\n this.collections = result;\n\n this.fillAutoCompleteArea()\n\n });\n }\n\n collectionSelection() {\n this.getColumns();\n }\n\n private getColumns() {\n this.task.collection = this.task.collection ? this.task.collection : this.thirdForm.value.collection\n\n if (this.task.node && this.universes.includes(this.task.universe) && this.collections.includes(this.task.collection))\n this.dataStoreService.getColumnsByNodeId(this.task.node, this.task.universe, this.task.collection)\n .pipe(\n catchError(res => {\n this.columns = []\n this.coreService.showErrorMessage(res)\n this.fillAutoCompleteArea()\n return res\n })\n )\n .subscribe(result => {\n this.columns = result.map(cl => {\n return cl.fieldName\n })\n this.fillAutoCompleteArea()\n\n });\n }\n\n runQuery() {\n this.connectorService.ExecuteQuery(this.task, this.password).subscribe(res => {\n this.dataPreview = res\n this.previewScreen = true\n this.dataDataPreviewColumns = Object.keys(this.dataPreview[0]).map(item => {\n return { fieldName: item, fieldType: typeof this.dataPreview[0][item] }\n })\n })\n }\n\n PassModal() {\n if (this.password) {\n this.runQuery()\n } else {\n var passDialogRef = this.dialog.open(this.passwordDialog);\n passDialogRef.afterClosed().subscribe(res => {\n if (res) {\n this.runQuery()\n }\n })\n }\n\n }\n\n\n\n\n}","\n\n\n \n \n done\n \n\n \n {{ 'ConnectorFormPage.StepOne' | translate }}\n\n
\n \n {{ 'ConnectorFormPage.Name' | translate }}\n \n \n
\n
\n\n \n {{ 'ConnectorFormPage.Type' | translate }}\n \n Batch\n Periodically\n Direct\n \n \n
\n\n \n {{ 'ConnectorFormPage.Status' | translate }}\n \n Passive\n Active\n \n \n
\n\n \n {{ 'ConnectorFormPage.Folder' | translate }}\n \n \n \n {{option}}\n \n \n \n
\n\n \n {{ 'ConnectorFormPage.StepTwo' | translate }}\n\n
\n \n {{ 'ConnectorFormPage.DataFrom' | translate }}\n \n Oracle\n Microsoft SQL Server\n My SQL\n Postgress\n ODBC\n Vertica\n Excel\n CSV\n Python Script\n Data Flow\n External Engine\n \n \n
\n \n \n {{ 'ConnectorFormPage.RunTaskIn' | translate }}\n \n {{node.name}}\n \n \n
\n
\n
\n
\n \n {{ 'ConnectorFormPage.ScriptFlow' | translate }}\n \n {{item.name}}\n \n \n
\n\n\n \n {{ 'ConnectorFormPage.ScriptPath' | translate\n }}\n {{ 'ConnectorFormPage.FlowId' | translate\n }}\n {{ 'ConnectorFormPage.EngineName' | translate\n }}\n\n \n\n\n \n
\n \n \n \n {{option}}\n \n \n
\n\n
\n\n \n\n
\n \n
\n *{{\"ConnectorFormPage.selectNode\"|translate}}\n
\n \n {{ 'ConnectorFormPage.Host' | translate }}\n \n \n
\n\n \n {{ 'ConnectorFormPage.Port' | translate }}\n \n \n
\n\n \n {{ 'ConnectorFormPage.Database' | translate }}\n \n \n
\n\n \n {{ 'ConnectorFormPage.Username' | translate }}\n \n \n
\n\n \n {{ 'ConnectorFormPage.Password' | translate }}\n \n \n
\n
\n\n\n\n \n {{ 'ConnectorFormPage.DsnNumber' | translate\n }}\n {{ 'ConnectorFormPage.ConnectionString' | translate }}\n \n \n \n
\n\n
\n \n
\n \n {{ 'ConnectorFormPage.ConnectionString' | translate }}\n \n \n
\n
\n {{ 'ConnectorFormPage.UseConnectionString' | translate }}\n \n\n\n
\n \n description\n {{selectedScriptFlow.description}}\n \n \n person\n {{selectedScriptFlow.owner}}\n \n \n calendar_today\n {{selectedScriptFlow.createDate}}\n \n \n\n
\n\n\n \n
\n\n\n \n {{ 'ConnectorFormPage.Timeout' | translate }}\n \n \n
\n\n \n {{ 'ConnectorFormPage.DisableThreshold' | translate }}\n \n \n
\n\n \n\n\n
\n\n \n {{ 'ConnectorFormPage.StepThree' | translate }}\n
\n \n {{ 'ConnectorFormPage.DataNode' | translate }}\n \n {{node.name}}\n \n \n
\n\n \n {{ 'ConnectorFormPage.Universe' | translate }}\n \n \n \n {{option}}\n \n \n \n
\n\n \n {{ 'ConnectorFormPage.Collection' | translate }}\n \n \n \n {{option}}\n \n \n \n
\n\n \n {{ 'ConnectorFormPage.keepExistingSchema' | translate }}\n \n Update Data Structure\n Keep Existing Data Structure\n\n \n \n
\n \n {{'ConnectorFormPage.RunInMemory' | translate}}\n \n
\n \n\n \n \n {{'ConnectorFormPage.BulkInsert' | translate}}\n \n\n \n {{ 'ConnectorFormPage.BufferSize' | translate }}\n \n
\n
\n\n
\n
\n \n
\n
\n\n \n {{ 'ConnectorFormPage.StepFour' | translate }}\n
\n \n {{ 'ConnectorFormPage.RunTaskIn' | translate }}\n \n {{node.name}}\n \n \n
\n
\n
\n\n \n {{ 'ConnectorFormPage.StepFive' | translate }}\n
\n \n {{ 'ConnectorFormPage.KeyField' | translate }}\n \n \n \n {{option}}\n \n \n \n info\n
\n
\n
\n \n {{ 'ConnectorFormPage.UpdateField' | translate }}\n \n \n \n {{option}}\n \n \n \n info\n
\n
\n
\n
\n\n \n \n\n
\n
\n \n
\n \n \n
\n\n\n\n
\n
\n
\n\n \n {{ 'ConnectorFormPage.ParameterKey' | translate }}\n \n \n
\n\n \n {{ 'ConnectorFormPage.ParameterValue' | translate }}\n \n \n
\n\n\n
\n
\n \n
\n
\n\n
\n
\n {{parameter.parameterName}} {{parameter.parameterValue}}\n delete_outline\n \n
\n
\n
\n
\n\n
\n\n \n {{ 'ConnectorFormPage.StepSix' | translate }}\n\n \n {{\"ConnectorFormPage.ScheduleTask\" |translate}}\n \n {{\"ConnectorFormPage.NotSceduled\"|translate}}\n {{\"ConnectorFormPage.PerSecond\"|translate}}\n {{\"ConnectorFormPage.PerMinute\"|translate}}\n {{\"ConnectorFormPage.PerHour\"|translate}}\n {{\"ConnectorFormPage.PerDay\"|translate}}\n {{\"ConnectorFormPage.PerWeek\"|translate}}\n {{\"ConnectorFormPage.PerMonth\"|translate}}\n \n \n
\n\n
\n \n {{\"ConnectorFormPage.EverySecond\"|translate}}\n \n 5\n 10\n 15\n 20\n 25\n 30\n 35\n 40\n 45\n 55\n \n \n
\n\n
\n \n {{\"ConnectorFormPage.EveryMinute\"|translate}}\n \n 5\n 10\n 15\n 20\n 25\n 30\n 35\n 40\n 45\n 55\n \n \n
\n\n
\n \n {{\"ConnectorFormPage.EveryHour\"|translate}}\n \n 1\n 2\n 3\n 4\n 5\n 6\n 7\n 8\n 9\n 10\n 11\n 12\n 13\n 14\n 15\n 16\n 17\n 18\n 19\n 20\n 21\n 22\n 23\n 24\n \n \n
\n\n
\n \n {{\"ConnectorFormPage.EveryDay\"|translate}}\n \n 1\n 2\n 3\n 4\n 5\n 6\n 7\n 8\n 9\n 10\n 11\n 12\n 13\n 14\n 15\n 16\n 17\n 18\n 19\n 20\n 21\n 22\n 23\n 24\n 25\n 26\n 27\n 28\n 29\n 30\n \n \n
\n\n
\n \n {{\"ConnectorFormPage.ThisWeekDay\"|translate}}\n \n {{\"ConnectorFormPage.Monday\"|translate}}\n {{\"ConnectorFormPage.Tuesday\"|translate}}\n {{\"ConnectorFormPage.Wednesday\"|translate}}\n {{\"ConnectorFormPage.Thursday\"|translate}}\n {{\"ConnectorFormPage.Friday\"|translate}}\n {{\"ConnectorFormPage.Saturday\"|translate}}\n {{\"ConnectorFormPage.Sunday\"|translate}}\n \n \n
\n\n \n {{\"ConnectorFormPage.ThisMonthDay\"|translate}}\n \n 1\n 2\n 3\n 4\n 5\n 6\n 7\n 8\n 9\n 10\n 11\n 12\n 13\n 14\n 15\n 16\n 17\n 18\n 19\n 20\n 21\n 22\n 23\n 24\n 25\n 26\n 27\n 28\n 29\n 30\n \n \n\n
\n \n {{'ConnectorFormPage.ThisHour'|translate}}\n \n 00\n 01\n 02\n 03\n 04\n 05\n 06\n 07\n 08\n 09\n 10\n 11\n 12\n 13\n 14\n 15\n 16\n 17\n 18\n 19\n 20\n 21\n 22\n 23\n 24\n \n \n\n \n {{\"ConnectorFormPage.ThisMinute\" |translate}}\n \n 00\n 05\n 10\n 15\n 30\n 45\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 {{ 'ConnectorFormPage.EnterPassword' | translate }}\n clear\n
\n
\n
\n \n {{ 'ConnectorFormPage.Password' | translate }}\n \n \n \n
\n
\n\n \n \n
\n
","import { Component, OnInit, ViewChild } from '@angular/core';\nimport { ConnectorFormComponent } from './connector-form/connector-form.component';\nimport { MatPaginator } from '@angular/material/paginator';\nimport { MatSort } from '@angular/material/sort';\nimport { MatDialog } from '@angular/material/dialog';\nimport { NgxSpinnerService } from 'ngx-spinner';\nimport { ConnectorService } from 'src/app/services/connector/connector.service';\nimport { Node } from 'src/app/models/responses/nodeResponse';\nimport { BussionConnector } from 'src/app/models/responses/bussionConncetorResponse';\nimport { CoreService } from 'src/app/services/core/core.service';\nimport { environment } from 'src/environments/environment';\nimport { ModalService } from 'src/app/services/modal/modal.service';\nimport { LogComponent } from 'src/app/components/modals/log/log.component';\nimport { TranslateService } from '@ngx-translate/core';\nimport { Router } from '@angular/router';\nimport { AuthService } from 'src/app/services/auth/auth.service';\nimport { tap } from 'rxjs/operators';\nimport { MatTreeNestedDataSource } from '@angular/material/tree';\n\nenum ConnectorType {\n Batch = 0,\n Periodically = 1,\n Direct = 2\n}\n\n@Component({\n selector: 'app-connector',\n templateUrl: './connector.component.html',\n styleUrls: ['./connector.component.scss']\n})\nexport class ConnectorComponent implements OnInit {\n\n\n baseUrl: string = environment.imageUrl;\n displayedColumns: string[] = ['icon', 'errorIcon', 'connectorId', 'name', 'type', 'state', 'status', 'nextRunTime', 'action'];\n columnsWidth: any = { icon: '1%', errorIcon: '1%', connectorId: '18%', name: '30%', type: '5%', state: '10%', status: '10%', nextRunTime: '15%', action: '15%' }\n displayedColumnsName: string[] = [this.translate.instant(\"Common.Icon\"), this.translate.instant(\"ConnectorPage.Error\"), this.translate.instant(\"ConnectorPage.ConnectorId\"), this.translate.instant(\"ConnectorPage.Name\"), this.translate.instant(\"ConnectorPage.Type\"), this.translate.instant(\"ConnectorPage.State\"), this.translate.instant(\"ConnectorPage.Status\"), \"Next Run\", this.translate.instant(\"ConnectorPage.Action\")];\n connectors: BussionConnector[] = [];\n roles: string[] = this.authService.getPermissions();\n folderList: string[] = []\n\n treeDataSource: any[] = [];\n\n liststyle: string = 'list'\n\n @ViewChild(MatPaginator, { static: true }) paginator: MatPaginator;\n @ViewChild(MatSort, { static: true }) sort: MatSort;\n constructor(\n private dialog: MatDialog,\n private spinner: NgxSpinnerService,\n private connectorService: ConnectorService,\n private coreService: CoreService,\n private modalService: ModalService,\n private authService: AuthService,\n private translate: TranslateService,\n private router: Router\n ) { }\n\n ngOnInit(): void {\n this.getBussionConnectorTasks()\n }\n\n customSort(a: any, b: any): number {\n if (parseInt(a.disableThreshold) > 0 && parseInt(a.errorCount) >= parseInt(a.disableThreshold)) {\n return -1; // a, 'B' ise a'yı b'den önce getir\n } else if (parseInt(b.disableThreshold) > 0 && parseInt(b.errorCount) >= parseInt(b.disableThreshold)) {\n return 1; // b, 'B' ise b'yi a'dan önce getir\n } else if (a.state == 'Working') {\n return -1\n } else if (b.state == 'Working') {\n return 1\n } else if (a.nextRunTime > b.nextRunTime) {\n return -1\n } else if (b.nextRunTime > a.nextRunTime) {\n return 1\n } else {\n a.name - b.name\n }\n }\n\n getBussionConnectorTasks() {\n this.connectorService.getConnectorTasks().subscribe(result => {\n result.map(r => {\n r.status = r.status == 1 ? \"Active\" : \"Passive\";\n r.state = r.state == 0 ? \"Not Working\" : \"Working\";\n\n r.type = ConnectorType[r.type];\n return r;\n });\n\n\n this.connectors = result;\n this.connectors = this.connectors.sort(this.customSort)\n\n this.folderList = Array.from(new Set(this.connectors.map(item => item.folder)))\n // .filter(x => x !== '');\n\n this.treeDataSource = this.folderList.map(item => {\n\n return { name: item == '' ? this.translate.instant('ConnectorPage.NoFolder') : item, children: this.connectors.filter(x => x.folder == item) }\n })\n\n \n this.connectors.map(c => { c.icon = '/BussionImages/Pictures/BussionConnector.png'; return c; });\n });\n }\n\n\n deleteConnectorComponent(task: BussionConnector) {\n this.modalService.openDeleteConfirm().subscribe(result => {\n if (result === true) {\n this.spinner.show();\n this.connectorService.deleteConnectorTask(task.connectorId).pipe(\n tap(res => {\n if (task.sourceType == 10) {\n this.connectorService.DeleteExternalEngine(task.bussionConnector, task.connectionString).subscribe(res => {\n\n })\n }\n })\n ).subscribe(result => {\n this.getBussionConnectorTasks();\n this.spinner.hide();\n });\n }\n });\n }\n\n openConnector(event: any) {\n let data = {\n type: event.type as string,\n task: event.data as BussionConnector,\n folderList: this.folderList\n }\n this.modalService.openModal(data, ConnectorFormComponent, '900px', '1000px').subscribe(result => {\n if (result === true) {\n this.getBussionConnectorTasks();\n }\n });\n }\n\n runTask(task: BussionConnector) {\n this.connectorService.runTask(task.connectorId).subscribe(taskId => {\n this.coreService.showSuccessMessage('Task is running now!');\n this.openTaskLogs(taskId);\n });\n }\n\n private openTaskLogs(taskId: string) {\n let data = {\n taskId: taskId,\n visibleButton:true\n }\n this.modalService.openModal(data, LogComponent, '600px', '600px','overflow-hidden', 'center').subscribe(status => {\n this.getBussionConnectorTasks();\n });\n }\n\n stopTask(task: BussionConnector) {\n this.connectorService.stopTask(task.connectorId).subscribe(message => {\n this.coreService.showSuccessMessage(message);\n this.getBussionConnectorTasks();\n });\n }\n\n navigateToFlow() {\n this.router.navigate(['/flow'])\n }\n\n changeListStyle(style: string) {\n this.liststyle = style\n }\n}\n","
\n \n \n\n \n
","import { Component, OnInit, ChangeDetectionStrategy, ViewEncapsulation, OnDestroy, ViewChild } from '@angular/core';\nimport { GridsterConfig, GridsterItem, DisplayGrid, CompactType, GridType, GridsterComponent } from 'angular-gridster2';\nimport { ActivatedRoute, Router } from '@angular/router';\nimport { Dashboard, Dimension } from 'src/app/models/responses/dashboardResponse';\nimport { WidgetFormComponent } from './widget-form/widget-form.component';\nimport { DashboardService } from 'src/app/services/dashboard/dashboard.service';\nimport { ActionDialogComponent } from 'src/app/components/action-dialog/action-dialog/action-dialog.component';\nimport { DashboardFilterComponent } from '../dashboard-filter/dashboard-filter.component';\nimport { ScriptLoaderService } from 'src/app/services/script-loader/script-loader.service';\nimport { ExpandedWidgetComponent } from 'src/app/components/modals/expanded-widget/expanded-widget.component';\nimport { ModalService } from 'src/app/services/modal/modal.service';\nimport { GlobalFunctionService } from 'src/app/services/global-function/global-function.service';\nimport { BussionFilterDefinition } from 'src/app/models/responses/dataStoreResponse';\nimport { ShareFormComponent } from 'src/app/components/modals/share-form/share-form.component';\nimport { deleteCssFile } from 'src/app/core/utils';\nimport { DeviceDetectorService } from 'ngx-device-detector';\nimport { AvailableWidgetSelectionComponent } from 'src/app/components/available-widget-selection/available-widget-selection.component';\nimport { GridsterWidget, Widget, WidgetPreview } from 'src/app/models/responses/widgetLibraryResponse';\nimport { gridTypes } from 'angular-gridster2/lib/gridsterConfig.interface';\nimport { concatMap, tap } from 'rxjs/operators';\nimport { Share } from 'src/app/models/responses/shareResponse';\nimport { AuthService } from 'src/app/services/auth/auth.service';\n\n@Component({\n selector: 'app-dashboard-designer',\n templateUrl: './dashboard-designer.component.html',\n styleUrls: ['./dashboard-designer.component.scss'],\n changeDetection: ChangeDetectionStrategy.Default,\n encapsulation: ViewEncapsulation.None\n})\nexport class DashboardDesignerComponent implements OnInit, OnDestroy {\n @ViewChild(GridsterComponent) gridster: GridsterComponent;\n isShownFilter: boolean = false;\n options: GridsterConfig;\n opened: boolean = true;\n dashboard: Dashboard;\n dashboardId: string = \"\";\n dashboardWidgets: Array = [];\n unvisibleWidgets: Array = [];\n unvisibleSelectedList: any[] = []\n private widgetList: WidgetPreview[] = [];\n visibletoggle: boolean = false\n mobileDesign: boolean = false;\n\n permissions = this.authService.getPermissions()\n\n changeViewList: boolean = false\n constructor(\n private activatedRoute: ActivatedRoute,\n private scriptLoader: ScriptLoaderService,\n private dashboardService: DashboardService,\n private globalFunctionService: GlobalFunctionService,\n private modalService: ModalService,\n private deviceService: DeviceDetectorService,\n private authService: AuthService\n ) {\n this.dashboardId = this.activatedRoute.snapshot.paramMap.get('dashboardId');\n }\n\n ngOnInit() {\n this.visibletoggle = this.deviceService.isTablet() || this.deviceService.isMobile() ? true : false\n\n let didFunctionLoad = this.globalFunctionService.didFunctionLoad();\n if (didFunctionLoad) {\n this.customizeDashboard();\n this.designDashboard();\n this.getDashboardsWidgets();\n } else {\n this.getGlobalFunction();\n }\n\n this.dashboardService.openedClosedbtn.subscribe(res => {\n this.changedOptions()\n });\n\n\n }\n\n ngOnDestroy(): void {\n deleteCssFile(this.dashboard.dashboardId)\n }\n\n DragModeChange() {\n this.options.draggable.enabled = !this.options.draggable.enabled\n this.options?.api?.optionsChanged()\n\n }\n\n cerateCssFile(css: string) {\n var style = document.createElement('style');\n style.type = 'text/css';\n style.id = this.dashboard.dashboardId\n style.innerHTML = css;\n document.getElementsByTagName('head')[0].appendChild(style);\n }\n\n\n\n private getGlobalFunction() {\n this.globalFunctionService.getGlobalFunctions().subscribe(result => {\n result.forEach(f => {\n this.scriptLoader.runGlobalFunction(f.code);\n });\n this.customizeDashboard();\n this.designDashboard();\n this.getDashboardsWidgets();\n })\n }\n\n\n getDashboard() {\n return this.dashboardService.getDashboard(this.dashboardId).pipe(\n tap(res => this.dashboard = res),\n tap(res => this.dashboardService.getAuthorizedDashboards(1)),\n tap(res => this.dashboardService.getUserActiveDashboards(1))\n )\n }\n\n optionsChange() {\n if (this.dashboard?.gridSize) {\n this.options.minCols = this.dashboard?.gridSize\n this.options.minRows = this.dashboard?.gridSize\n this.options.maxCols = this.dashboard?.gridSize\n }\n if (this.mobileDesign) {\n this.options.draggable.enabled = true\n this.options.displayGrid = DisplayGrid.Always\n this.options.mobileBreakpoint = 0\n this.options.margin = 5\n this.options.maxRows = 1000\n // this.options.compactType=CompactType.None\n\n this.options.gridType = GridType.ScrollVertical\n } else {\n if (this.dashboard?.gridSize) {\n this.options.defaultItemCols = Math.round(this.dashboard?.gridSize / 2)\n this.options.defaultItemRows = Math.round(this.dashboard?.gridSize / 2)\n }\n if (this.dashboard.layout) {\n this.options.gridType = GridType[this.dashboard.layout]\n }\n }\n this.options?.api?.optionsChanged()\n\n }\n\n private designDashboard() {\n this.getDashboard().subscribe(result => {\n // this.dashboard = result;\n this.dashboardService.selectedDasboard.next(this.dashboard)\n if (this.dashboard.css !== \"\") {\n // this.cerateCssFile(this.dashboard.css);\n }\n this.optionsChange();\n });\n }\n\n private getDashboardsWidgets() {\n this.dashboardService.getWidgetsForDesigner(this.dashboardId).subscribe((result: WidgetPreview[]) => {\n this.widgetList = result;\n result.forEach(widget => {\n if (widget.widget.isFilter) {\n this.unvisibleWidgets.push({ cols: widget.widget.layout.cols, rows: widget.widget.layout.rows, y: widget.widget.layout.y, x: widget.widget.layout.x, designerContainer: widget })\n } else {\n this.dashboardWidgets.push({ cols: widget.widget.layout.cols, rows: widget.widget.layout.rows, y: widget.widget.layout.y, x: widget.widget.layout.x, designerContainer: widget });\n this.createWidget(widget);\n }\n\n })\n\n\n });\n }\n\n changedOptions() {\n this.options?.api.optionsChanged();\n }\n\n openAvailableWidgetScreen() {\n let data = {\n saveselectedWidgets: (widgets) => this.saveselectedWidgets(widgets)\n }\n this.modalService.openModal(data, AvailableWidgetSelectionComponent, '90%', '90%', 'overflow-hidden').subscribe(result => {\n this.removeFocusAllButton()\n\n });\n }\n\n removeFocusAllButton() {\n Array.from(document.getElementsByTagName('button')).map(item => {\n item.blur()\n })\n }\n\n saveselectedWidgets(items: GridsterWidget[]) {\n this.dashboardWidgets = this.dashboardWidgets.concat(items)\n\n\n this.dashboardWidgets.map(item => {\n this.createWidget(item.designerContainer);\n\n })\n items.map(async (item) => {\n //Bu servisi çağıracağız\n await this.dashboardService.upsertWidgetToDashboard(item.designerContainer.widget, this.dashboardId).subscribe(result => {\n\n });\n })\n\n\n }\n\n\n\n openWidgetForm(event: { widget: Widget, type: string }) {\n\n var dashboardfilter = this.dashboard.filter.map(item => {\n return { fieldValue: item.fieldValue, fieldName: item.fieldName, operator: item.operator }\n })\n\n let data = {\n type: event.type,\n widget: JSON.parse(JSON.stringify(event.widget)),\n dashboardId: this.dashboard.dashboardId,\n widgetList: this.widgetList,\n dashboardFilter: dashboardfilter,\n deleteWidget: (e) => this.removeWidget(e)\n }\n this.modalService.openModal(data, WidgetFormComponent, '960px', '90%', 'overflow-hidden').subscribe((result: { type: string, widget: WidgetPreview }) => {\n if (result) {\n var isdif = false\n if (result.type == 'update' && event.widget.isFilter == 0) {\n\n let index = this.dashboardWidgets.findIndex(w => w.designerContainer.widgetId == result.widget.widgetId);\n if (index !== -1) {\n this.dashboardWidgets.splice(index, 1);\n }\n\n\n index = this.widgetList.findIndex(w => w.widgetId == event.widget.widgetId)\n if (index !== -1) { // Eğer öğe bulunduysa\n this.widgetList.splice(index, 1, {\n ...this.widgetList[index], // Mevcut özellikleri koru\n widget: result.widget.widget // Yeni widget ile değiştir\n });\n }\n isdif = JSON.stringify(event.widget.colors.colors) !== JSON.stringify(result.widget.widget.colors.colors)\n } else {\n\n this.widgetList.push(result.widget)\n\n }\n\n\n setTimeout(async () => {\n let layout = result.widget.widget.layout;\n\n if (result.widget.widget.isFilter) {\n this.unvisibleWidgets = this.unvisibleWidgets.filter(x => x.designerContainer.widgetId !== result.widget.widgetId)\n this.unvisibleWidgets.push({\n cols: layout.cols,\n rows: layout.rows,\n y: layout.y,\n x: layout.x,\n designerContainer: result.widget\n });\n } else {\n this.dashboardWidgets.push({\n cols: layout.cols,\n rows: layout.rows,\n y: layout.y,\n x: layout.x,\n designerContainer: result.widget\n });\n await this.createWidget(result.widget);\n\n if (!result.widget.widget.colors.onlyWidget && isdif) {\n this.refreshWidget(false)\n }\n this.saveDashboard();\n }\n\n this.getDashboard().subscribe(res => { })\n }, 1000);\n }\n\n this.removeFocusAllButton()\n });\n }\n\n openDashboardDimensions() {\n this.isShownFilter = true;\n /* let data = {\n dimensions: this.dashboard.dimensions,\n filters: this.dashboard.filter\n }\n \n this.modalService.openModal(data, DashboardFilterComponent, 'auto', '90%').subscribe(result => {\n if (result) {\n this.dashboard.filter = result;\n this.dashboardService.upsertDashboard(this.dashboard).subscribe(result => {\n this.getDashboard();\n this.dashboardWidgets = [];\n this.getDashboardsWidgets();\n })\n }\n }); */\n }\n\n saveFilter(newFilters: BussionFilterDefinition[]) {\n this.closeFilterForm(null);\n this.dashboard.filter = newFilters;\n this.dashboardService.upsertDashboard(this.dashboard).subscribe(result => {\n this.dashboardService.selectedDasboard.next(this.dashboard)\n this.getDashboard().subscribe(res => { });\n this.dashboardWidgets = [];\n this.getDashboardsWidgets();\n })\n }\n\n openShareForm(shareData: any) {\n let data = {\n objectType: shareData.objectType,\n objectId: shareData.objectId,\n dashboardId: this.dashboard.dashboardId,\n filter: this.dashboard.filter,\n function: (filters) => {\n // this.dashboard=this.dashboard\n this.changeViewList = !this.changeViewList\n }\n };\n\n this.modalService.openModal(data, ShareFormComponent, 'auto', '600px').subscribe(result => {\n if (result) {\n\n }\n })\n }\n\n\n\n\n closeFilterForm(event: any) {\n this.isShownFilter = false;\n }\n\n expandWidget(widgetData) {\n let data = {\n widgetData: widgetData.designerContainer,\n shareModalOpen: (e) => this.openShareForm({ ...e, filter: this.dashboard.filter }),\n selectedFilters: this.dashboard.filter,\n selectedDashboard: this.dashboard\n\n }\n this.modalService.openModal(data, ExpandedWidgetComponent, '600px', '90%', 'overflow-hidden').subscribe(result => { });\n }\n\n private createWidget(widgetResponse: any) {\n this.scriptLoader.addScriptFileToHead(widgetResponse.widgetLibraries);\n this.scriptLoader.runWidgetCode(widgetResponse);\n }\n\n hideDimension(dim: Dimension) {\n this.dashboard.widgets.map((widget: Widget) => {\n if (widget.dimensions.some(x => x.fieldName == dim.name))\n widget.dimensions.find(x => x.fieldName == dim.name).fieldFilter = 0\n })\n this.dashboard.dimensions = this.dashboard.dimensions.filter(x => x.dimensionId !== dim.dimensionId)\n this.dashboardService.upsertDashboard(this.dashboard).subscribe(result => {\n });\n }\n\n saveDashboard() {\n var ismobile = 0\n if (this.mobileDesign) {\n ismobile = 1\n }\n this.dashboardService.updateDashboardLayout(this.dashboard.dashboardId, this.dashboardWidgets, ismobile).subscribe(result => {\n this.widgetList = this.dashboardWidgets.map(dw => {\n return { ...dw.designerContainer, widget: { ...dw.designerContainer.widget, layout: { ...dw.designerContainer.widget, cols: dw.cols, rows: dw.rows, x: dw.x, y: dw.y } } }\n })\n });\n }\n\n saveDashboardForDimensionVisibleName(dimensions: Dimension[]) {\n this.dashboard.dimensions = dimensions\n this.dashboardService.upsertDashboard(this.dashboard).subscribe(result => {\n });\n }\n\n saveQueryPanelState(queryPanelState: boolean) {\n this.dashboard.hideAdvancedQueryPanel = queryPanelState ? 1 : 0\n\n this.dashboardService.upsertDashboard(this.dashboard).subscribe(result => {\n });\n }\n\n removeWidget(item: any) {\n if (this.dashboardWidgets.some(x => x.designerContainer.widgetId == item.designerContainer.widgetId))\n item = this.dashboardWidgets.find(x => x.designerContainer.widgetId == item.designerContainer.widgetId)\n else\n item = this.unvisibleWidgets.find(x => x.designerContainer.widgetId == item.designerContainer.widgetId)\n\n this.modalService.openDeleteConfirm().subscribe(result => {\n if (result === true) {\n this.dashboardService.deleteWidgetFromDashboard(this.dashboard.dashboardId, item.designerContainer.widgetId).subscribe(result => {\n if (this.dashboardWidgets.indexOf(item) !== -1) {\n this.dashboardWidgets.splice(this.dashboardWidgets.indexOf(item), 1);\n this.widgetList = this.widgetList.filter(x => x.widgetId !== item.designerContainer.widgetId);\n this.modalService.dissmissAll();\n } else {\n this.unvisibleWidgets = this.unvisibleWidgets.filter(x => x.designerContainer.widgetId !== item.designerContainer.widgetId)\n this.modalService.dissmissAll();\n }\n });\n }\n });\n }\n\n\n\n changeGrid(type) {\n this.options.gridType = GridType[type]\n this.options.api.optionsChanged()\n this.dashboard.layout = type\n this.dashboardService.upsertDashboard(this.dashboard).subscribe(result => {\n });\n }\n\n applyFilterForViews(share: Share) {\n }\n\n\n refreshWidget(all: boolean = true) {\n if (all == true) {\n this.dashboardWidgets = []\n\n\n this.widgetList.filter(x => x.widget.isFilter == 0).map(widget => {\n if (widget.widget.colors.onlyWidget == 0) {\n widget.widget.colors.colors = []\n }\n this.dashboardWidgets.push({ cols: widget.widget.layout.cols, rows: widget.widget.layout.rows, y: widget.widget.layout.y, x: widget.widget.layout.x, designerContainer: widget });\n this.createWidget(widget);\n\n })\n } else {\n this.dashboardWidgets = this.dashboardWidgets.filter(x => x.designerContainer.widget.colors.onlyWidget == 1)\n this.widgetList.filter(x => x.widget.isFilter == 0 && x.widget.colors.onlyWidget == 0).map(widget => {\n if (widget.widget.colors.onlyWidget == 0) {\n widget.widget.colors.colors = []\n }\n this.dashboardWidgets.push({ cols: widget.widget.layout.cols, rows: widget.widget.layout.rows, y: widget.widget.layout.y, x: widget.widget.layout.x, designerContainer: widget });\n this.createWidget(widget);\n\n })\n }\n }\n\n\n redesign() {\n this.mobileDesign = !this.mobileDesign\n let selectedLayoutkey = 'layout'\n\n if (this.mobileDesign) {\n if (this.widgetList.filter(x => x.widget.isFilter == 0)[0].widget.mobileLayout.cols > 1) {\n selectedLayoutkey = 'mobileLayout'\n }\n this.options.draggable.enabled = true\n this.options.displayGrid = DisplayGrid.Always\n this.options.mobileBreakpoint = 0\n this.options.margin = 5\n this.options.maxRows = 550\n\n this.options.gridType = GridType.ScrollVertical\n // displayGrid: DisplayGrid.OnDragAndResize,\n this.options.api.optionsChanged();\n } else {\n this.optionsChange()\n }\n this.dashboardWidgets = []\n\n this.widgetList.filter(x => x.widget.isFilter == 0).map(widget => {\n this.dashboardWidgets.push({ cols: widget.widget[selectedLayoutkey].cols, rows: widget.widget[selectedLayoutkey].rows, y: widget.widget[selectedLayoutkey].y, x: widget.widget[selectedLayoutkey].x, designerContainer: widget });\n this.createWidget(widget);\n\n })\n }\n\n\n\n\n private customizeDashboard() {\n this.options = {\n gridType: GridType.ScrollVertical,\n compactType: CompactType.None,\n margin: 10,\n outerMargin: true,\n outerMarginTop: null,\n outerMarginRight: null,\n outerMarginBottom: null,\n outerMarginLeft: null,\n useTransformPositioning: true,\n mobileBreakpoint: 640,\n minCols: 24,\n maxCols: 100,\n minRows: 24,\n maxRows: 100,\n maxItemCols: 100,\n minItemCols: 1,\n maxItemRows: 100,\n minItemRows: 1,\n maxItemArea: 2500,\n minItemArea: 1,\n defaultItemCols: 20,\n defaultItemRows: 20,\n fixedColWidth: 105,\n fixedRowHeight: 205,\n keepFixedHeightInMobile: false,\n keepFixedWidthInMobile: false,\n scrollSensitivity: 10,\n scrollSpeed: 20,\n enableEmptyCellClick: false,\n enableEmptyCellContextMenu: false,\n enableEmptyCellDrop: false,\n enableEmptyCellDrag: false,\n enableOccupiedCellDrop: false,\n emptyCellDragMaxCols: 50,\n emptyCellDragMaxRows: 50,\n ignoreMarginInRow: false,\n draggable: {\n enabled: true,\n },\n resizable: {\n enabled: true,\n },\n swap: false,\n pushItems: true,\n disablePushOnDrag: false,\n disablePushOnResize: false,\n pushDirections: { north: true, east: true, south: true, west: true },\n pushResizeItems: false,\n displayGrid: DisplayGrid.OnDragAndResize,\n disableWindowResize: false,\n disableWarnings: false,\n scrollToNewItems: false,\n };\n }\n}\n","
\n
\n
\n {{dashboard.title}}\n
\n
\n\n\n\n {{'DashboardDesignerPage.EditMode'|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
\n
\n \n \n \n \n \n
\n\n
\n\n
\n\n\n {{\n 'MainPage.FitToScreen' | translate\n }}\n {{ 'MainPage.FullScreen' | translate }}\n\n \n {{ 'MainPage.ScrollVertical' |translate }}\n \n\n {{ 'MainPage.VerticalFixed' | translate }}\n\n {{ 'MainPage.ScrollHorizontal' | translate }}\n\n {{ 'MainPage.HorizontalFixed' | translate }}\n\n\n\n\n\n\n\n \n \n {{item.designerContainer.widget.title}}\n\n \n \n\n","import { Component, EventEmitter, Input, OnChanges, OnInit, Output, SimpleChanges, TemplateRef } from '@angular/core';\nimport { SettingAreas, dropdownMenus } from 'src/app/constants/enums';\nimport { customDropdownProps, customDropdownSettingProps } from 'src/app/models/globals/customDropdownProps';\nimport { ScriptLoaderService } from 'src/app/services/script-loader/script-loader.service';\n\n@Component({\n selector: 'app-setting-section',\n templateUrl: './setting-section.component.html',\n styleUrls: ['./setting-section.component.scss']\n})\nexport class SettingSectionComponent implements OnInit, OnChanges {\n\n selectedTab: { name: string, icon: string, selected: boolean, contentTemplate: TemplateRef, dropdown?: { setting: customDropdownSettingProps, data: customDropdownProps[] } };\n\n\n\n errorValues: any = {\n [SettingAreas.data]: { text: '', active: false },\n [SettingAreas.agregation]: { text: '', active: false },\n [SettingAreas.visual]: { text: '', active: false },\n [SettingAreas.event]: { text: '', active: false },\n\n }\n\n\n @Input() dropdownSettings: customDropdownSettingProps;\n @Input() dropdownMenuData: customDropdownProps;\n @Input() selectedSettingArea: SettingAreas = SettingAreas.data\n _tabs: { name: string, icon: string, selected: boolean, contentTemplate: TemplateRef, dropdown?: { setting: customDropdownSettingProps, data: customDropdownProps[] } }[] = []\n @Input() set tabs(value) {\n if (value) {\n this._tabs = value\n this.selectedTab = value[0]\n }\n\n\n }\n\n\n\n\n @Output() setSelectedSettingAreaFunction: EventEmitter = new EventEmitter()\n\n\n constructor(private scriptLoader: ScriptLoaderService) { }\n\n ngOnInit(): void {\n }\n\n\n ngOnChanges(changes: SimpleChanges): void {\n console.log('değişti', changes)\n }\n\n\n setSelectedSettingArea(settingArea: SettingAreas) {\n this.setSelectedSettingAreaFunction.emit(settingArea)\n }\n\n\n selectTab(item: { selected: boolean, icon: string, name: string, contentTemplate: any }) {\n\n this._tabs.find(x => x.name == item.name).selected = true\n this.selectedTab = item\n\n this._tabs.filter(x => x.name !== item.name).map(tab => {\n tab.selected = false\n })\n\n this.scriptLoader._selectedTabForClick.next(this.selectedTab.name)\n }\n\n\n\n}\n","\n\n
\n \n
0\">\n
\n \n
\n
\n \n\n 0 && selectedTab.dropdown\"\n [enableSearch]=\"dropdownSettings.searchActive\"\n [multipleSelection]=\"selectedTab.dropdown.setting.multipleSelection\" [error]=\"dropdownSettings.errorValues\"\n [dropDownSettings]=\"selectedTab.dropdown.setting\" [menudata]=\"selectedTab.dropdown.data\"\n (selectElement)=\"selectedTab.dropdown.setting.selectElement($event)\"\n [dragActive]=\"selectedTab.dropdown.setting.dragActive\"\n (changeSortWithDrop)=\"selectedTab.dropdown.setting.changeSortWithDrop($event)\"\n (iconMenuEemitter)=\"selectedTab.dropdown.setting.iconMenuEmitter($event)\"\n [imageCard]=\"dropdownSettings.imageCard\">\n\n \n \n \n\n\n
","import { Component, OnInit, Inject, ViewChild, Input, Optional, ElementRef, HostListener, OnDestroy, TemplateRef, AfterViewInit } from '@angular/core';\nimport { VisualService } from 'src/app/services/visual/visual.service';\nimport { VisualComp } from 'src/app/models/responses/visualComponentResponse';\nimport { environment } from 'src/environments/environment';\nimport { Widget, WidgetMeasure, ColorRuleItem, WidgetPreview, ColorItem } from 'src/app/models/responses/widgetLibraryResponse';\nimport { MatDialogRef, MAT_DIALOG_DATA, MatDialog } from '@angular/material/dialog';\nimport { DataStoreService } from 'src/app/services/dataStore/data-store.service';\nimport { DataStore, Columns, BussionFilterDefinition } from 'src/app/models/responses/dataStoreResponse';\nimport { MatDatepickerInputEvent } from '@angular/material/datepicker';\nimport { DashboardService } from 'src/app/services/dashboard/dashboard.service';\nimport { CdkDragDrop, moveItemInArray, transferArrayItem } from '@angular/cdk/drag-drop';\nimport { PreviewWidgetComponent } from 'src/app/components/preview-widget/preview-widget.component';\nimport { MatStepper } from '@angular/material/stepper';\nimport { CodeEditorComponent } from 'src/app/components/code-editor/code-editor.component';\nimport { UntypedFormGroup, UntypedFormControl, Validators, FormControl } from '@angular/forms';\nimport { CoreService } from 'src/app/services/core/core.service';\nimport { TranslateService } from '@ngx-translate/core';\nimport { GlobalFunctionService } from 'src/app/services/global-function/global-function.service';\nimport { SelfService } from 'src/app/services/self-service/self.service';\nimport { ScriptLoaderService } from 'src/app/services/script-loader/script-loader.service';\nimport { AuthService } from 'src/app/services/auth/auth.service';\nimport { Dashboard, Dimension } from 'src/app/models/responses/dashboardResponse';\nimport { ShareService } from 'src/app/services/share/share.service';\nimport { Share } from 'src/app/models/responses/shareResponse';\nimport { filterString } from 'src/app/core/utils';\nimport { customBadgeProps, customDropdownProps, customDropdownSettingProps } from 'src/app/models/globals/customDropdownProps';\nimport { SweetAlertService } from 'src/app/services/sweet-alert/sweet-alert.service';\nimport { SettingAreas, dropdownMenus } from 'src/app/constants/enums';\nimport html2canvas from 'html2canvas';\nimport { NgxSpinnerService } from 'ngx-spinner';\nimport { WidgetConfig } from 'src/app/models/responses/widgetConfig';\nimport * as _ from 'lodash';\nimport { MatButtonToggle } from '@angular/material/button-toggle';\nimport { Router } from '@angular/router';\nimport { map, skip, startWith, switchMap, takeWhile, tap } from 'rxjs/operators';\nimport { combineLatest, Observable, of } from 'rxjs';\nimport { MatSelect } from '@angular/material/select';\ndeclare let monaco: any;\n\n\n\n@Component({\n selector: 'app-widget-form',\n templateUrl: './widget-form.component.html',\n styleUrls: ['./widget-form.component.scss']\n})\nexport class WidgetFormComponent implements OnInit, OnDestroy, AfterViewInit {\n _notDialog: boolean = false\n @ViewChild('optionselection') optionselection?: MatSelect;\n\n\n\n @Input() set notDialog(value) {\n\n this._notDialog = value\n if (value)\n this.dataStoresDropdownSettings.endIcons.push({\n icon: 'open',\n clickFunction: (e) => this.openEditTable(e),\n enable: true,\n popover: 'WidgetFormPage.DataEdit'\n })\n else\n this.dataStoresDropdownSettings.endIcons = this.dataStoresDropdownSettings.endIcons.filter(x => x.icon !== 'open')\n\n\n }\n\n freezeFilter: boolean = false\n widgetIsFilter: boolean = false\n\n\n saveAsActive: boolean = false\n settingAreaIds: string[] = [SettingAreas.visual, SettingAreas.data, SettingAreas.event]\n loadingPreview: boolean = false\n isFirstLoad: boolean = true;\n title: string = \"\"\n disablePreview: boolean = false\n widgetPreviewData: WidgetPreview;\n\n searchValues = [];\n dateGroupByTextList = ['None', 'Yearly', 'Monthly', 'Daily', 'Hourly', 'Minutely']\n editorOptions = { theme: 'vs-dark', language: 'javascript' };\n useDirectQuery: boolean = false\n sqlcodeScreen: boolean = false\n dashboardWidgetColors: ColorItem[] = []\n\n isShownQueryForm: boolean = true;\n queryFilter: BussionFilterDefinition = {\n fieldName: '',\n fieldValue: '',\n operator: ''\n }\n widget: Widget = {\n visualComponentId: \"\",\n title: \"\",\n subTitle: \"\",\n footNote: \"\",\n access: 1,\n dateGroup: 0,\n customizeCode: 0,\n type: \"\",\n dataStoreId: \"\",\n owner: null,\n includeZeroValues: 1,\n domain: \"\",\n limitData: \"500\",\n code: \"\",\n sharedData: null,\n sort: {\n sortField: \"\",\n sortOrder: \"\",\n sortType: \"\"\n },\n colors: {\n type: 0,\n colors: [],\n onlyWidget: 0\n },\n dimensions: [],\n measures: [],\n filter: [],\n widgetParameters: [],\n dimensionsData: [],\n layout: {\n cols: 1,\n rows: 1,\n x: 0,\n y: 0,\n designerContainer: null\n },\n mobileLayout: {\n cols: 0,\n rows: 1,\n x: 0,\n y: 0,\n designerContainer: null\n },\n freezeFilter: 0,\n drillDownDashboard: '',\n drillDownLink: '',\n drillDown: {\n dashboard: '',\n dashboardFilter: 0,\n height: 0,\n width: 0,\n link: '',\n openerMethod: '',\n widgetFilter: 0,\n shareKey: ''\n\n },\n config: [],\n params: {},\n calculatedFields: [],\n isFilter: 0,\n offSet: -1,\n disableInMemoryCache: 0,\n ignoreFilterList: [],\n widgetJoin: [],\n widgetQuery: '',\n tags: []\n };\n\n infoBadgeList: customBadgeProps[] = []\n queryFilterFieldType: string = \"System.String\";\n\n baseImageUrl = environment.imageUrl;\n visualComponents: VisualComp[] = [];\n visualComponentsForDropdownMenu: customDropdownProps[] = [];\n visualComponentsDropdownSettings: customDropdownSettingProps = {\n name: 'Visual Components',\n imageCard: true,\n multipleSelection: false,\n id: SettingAreas.visual,\n iconMenuActive: false,\n searchActive: true,\n placeholder: \"WidgetFormPage.SearchComponentType\",\n dragActive: false,\n changeSortWithDrop: (e) => { },\n selectElement: (e) => this.changevisualComponent(e),\n progressValue: 0,\n errorValues: { text: '', active: false }\n\n\n }\n oldWidget: WidgetPreview\n\n dataStores: DataStore[] = [];\n dataStoresForDropdownMenu: customDropdownProps[] = []\n dataStoresDropdownSettings: customDropdownSettingProps = {\n name: 'WidgetFormPage.DataSettings',\n multipleSelection: false,\n dragActive: false,\n imageCard: false,\n searchActive: true,\n changeSortWithDrop: (e) => { },\n endIcons: [\n {\n icon: 'file-preview',\n clickFunction: (e) => this.showPreviewData(e),\n enable: true,\n popover: 'WidgetFormPage.DataPreview'\n\n }],\n id: SettingAreas.data,\n iconMenuActive: false,\n placeholder: \"WidgetFormPage.SearchDataStore\",\n selectElement: (e) => this.dataStoreSelected(e),\n progressValue: 0,\n errorValues: { text: '', active: false }\n\n\n }\n\n sortAndLimitDropdownSettings: customDropdownSettingProps = {\n name: \"WidgetFormPage.SortAndLimit\",\n imageCard: false,\n id: dropdownMenus['Sort And Limit'],\n iconMenuActive: true,\n searchActive: false,\n iconMenuEmitter: (e) => this.sortAndLimitSelection(e),\n placeholder: 'Bir Data Limit Değeri Giriniz',\n triggerMenuIcon: { icon: 'menu-icon.svg', tooltip: '' },\n selectElement: (e) => { },\n dragActive: false,\n changeSortWithDrop: (e) => { },\n multipleSelection: false,\n topButtons: [{\n title: \"Common.ClearAll\",\n icon: 'clear_all',\n id: 'reset',\n eventFunction: () => {\n\n (document.getElementById('limitData') as HTMLInputElement).value = '500';\n document.querySelectorAll('#sortType mat-button-toggle').forEach(item => {\n item.classList.remove('mat-button-toggle-checked')\n })\n document.querySelectorAll('#sortOrder mat-button-toggle').forEach(item => {\n item.classList.remove('mat-button-toggle-checked')\n })\n\n\n\n this.widget.sort = {\n sortField: \"\",\n sortOrder: \"\",\n sortType: \"\"\n }\n this.widget.limitData = '500'\n\n this.controlForPreview(this.widget)\n }\n }],\n input: [\n {\n inputType: 'number',\n defaultValue: this.data?.widget?.limitData,\n inputId: 'limitData',\n title: this.translate.instant('WidgetFormPage.LimitData'),\n visible: true,\n getValueFunction: (e) => {\n if (e.length > 0) {\n this.widget.limitData = e\n this.controlForPreview(this.widget)\n this.sortAndLimitDropdownSettings.input[0].defaultValue = this.widget.limitData;\n\n }\n }\n },\n {\n inputType: 'button-toggle',\n defaultValue: this.data?.widget?.sort?.sortType ? this.data?.widget?.sort?.sortType : null,\n width: '90%',\n inputId: 'sortType',\n visible: false,\n options: [{ key: 'Alph', value: '0' }, { key: 'Num', value: '1' }],\n title: this.translate.instant('WidgetFormPage.SortType'),\n getValueFunction: (e) => {\n this.widget.sort.sortType = e\n this.controlForPreview(this.widget)\n this.sortAndLimitDropdownSettings.input[1].defaultValue = this.widget.sort.sortType;\n\n }\n },\n {\n inputType: 'select',\n defaultValue: this.data?.widget?.sort?.sortField ?? null,\n width: '90%',\n inputId: 'sortField',\n visible: true,\n options: [],\n title: this.translate.instant('WidgetFormPage.SortField'),\n getValueFunction: (e) => {\n this.widget.sort.sortField = e\n this.sortAndLimitDropdownSettings.input[2].defaultValue = this.widget.sort.sortField;\n\n }\n },\n {\n inputType: 'button-toggle',\n defaultValue: this.data?.widget?.sort?.sortOrder ? this.data?.widget?.sort?.sortOrder : null,\n width: '90%',\n inputId: 'sortOrder',\n options: [{ key: 'Asc', value: '0' }, { key: 'Desc', value: '1' }],\n title: this.translate.instant('WidgetFormPage.SortOrder'),\n visible: true,\n getValueFunction: (e) => {\n this.widget.sort.sortOrder = e\n this.controlForPreview(this.widget)\n this.sortAndLimitDropdownSettings.input[3].defaultValue = this.widget.sort.sortOrder;\n\n\n }\n },\n ],\n progressValue: 0,\n errorValues: { text: '', active: false }\n\n\n }\n\n\n\n\n sortAndLimitForDropdownMenu: customDropdownProps[] = []\n\n\n\n sampleDataForDataStore: any[] = []\n dataStoreColumns: Columns[] = [];\n dataStoreColumnsForDropdownMenu: customDropdownProps[] = []\n dataStoreColumnsDropdownSettings: customDropdownSettingProps = {\n name: 'WidgetFormPage.aggregationSettings',\n imageCard: false,\n id: SettingAreas.agregation,\n iconMenuActive: true,\n searchActive: true,\n iconMenuEmitter: (e) => this.addMeasurement(e),\n multipleSelection: true,\n dragActive: true,\n changeSortWithDrop: (e) => this.changeDimensionSort(e),\n placeholder: \"WidgetFormPage.SearchColumn\",\n triggerMenuIcon: { icon: 'measure.png', tooltip: '' },\n selectElement: (e) => this.dimensionSelected(e),\n checkIcon: { icon: 'filter.png', function: (e) => this.changeDimensionFilterStatus(e), tooltip: \"WidgetFormPage.FieldFilter\" },\n progressValue: 0,\n errorValues: { text: '', active: false }\n\n\n }\n\n\n\n selectedPreviewScreen: string = 'widget'\n selectedDataPreviewColumns: Columns[] = []\n\n selectedDataPreviewColumnsForAggregation: Columns[] = []\n dataPreviewColumnsForQuery: Columns[] = []\n queryColumnsForDropdownMenu: customDropdownProps[] = []\n\n\n codeScreen: boolean = false\n chartRerenderLoading: boolean = false\n\n filterScreen: boolean = false\n codeString: string = ''\n\n\n\n\n\n configDropdownSettings: customDropdownSettingProps = {\n name: \"WidgetFormPage.Config\",\n imageCard: false,\n id: dropdownMenus['Config'],\n iconMenuActive: false,\n placeholder: 'Config',\n dragActive: false,\n searchActive: false,\n changeSortWithDrop: (e) => { },\n multipleSelection: false,\n triggerMenuIcon: { icon: 'menu-icon.svg', tooltip: '' },\n input: [],\n selectElement: (e) => { },\n progressValue: 0,\n errorValues: { text: '', active: false }\n\n\n\n }\n calculatedFieldList: { name: string, formula: string, id: number }[] = []\n calculatedFieldNameError: boolean = false\n calculatedFieldUpdate: { name: string, formula: string, id: number } = null\n\n\n dataStoreColumnsForFilter: Columns[] = [];\n isCreateForm: boolean = true;\n\n\n widgetMeasure: WidgetMeasure = {\n label: \"\",\n name: \"\",\n function: \"\",\n formula: \"\",\n isCalculatedField: 0\n }\n\n colorRule: ColorRuleItem = {\n colorCode: \"\",\n operator: \"\",\n text: \"\",\n value: \"\"\n }\n\n dashboardId: string = \"\";\n widgetList = [];\n\n\n calculatedForm: UntypedFormGroup;\n ignoreForm: UntypedFormGroup;\n tagForm: UntypedFormGroup;\n joinForm: UntypedFormGroup;\n\n\n color: string = \"\";\n selectedColorDimension: string = \"\";\n colorDimensionData: string[] = [];\n\n filterParam: number\n dashboards: Dashboard[] = []\n selectedDashboardForViews: Dashboard\n myShares: Share[] = []\n selectedShare: Share\n dashboardShares: Share[] = []\n dynamicFilterForChart: BussionFilterDefinition = {\n fieldName: '',\n fieldValue: 'Selected',\n operator: ''\n }\n dataSettingsTab: boolean = true\n useDynamicFilter: boolean = false\n titleBoxVisible: boolean = false\n\n drilDownDropdownSettings: customDropdownSettingProps = {\n name: 'WidgetFormPage.EventSettings',\n imageCard: false,\n id: SettingAreas.event,\n iconMenuActive: false,\n multipleSelection: false,\n dragActive: false,\n searchActive: false,\n changeSortWithDrop: (e) => { },\n placeholder: 'Bir Data Limit Değeri Giriniz',\n selectElement: (e) => { },\n topButtons: [{\n title: \"Common.ClearAll\",\n icon: 'clear_all',\n id: 'reset',\n eventFunction: () => {\n (document.getElementById('dashboardSelect1') as HTMLSelectElement).selectedIndex = 0;\n (document.getElementById('viewsSelect1') as HTMLSelectElement).selectedIndex = 0;\n this.drilDownDropdownSettings.input.map(item => {\n item.defaultValue = ''\n })\n\n this.resetDrillDown();\n this.controlProgressValue();\n this.updateAllDropdownSettings();\n\n }\n }],\n input: [\n {\n inputType: 'select',\n id: 'dashboard',\n width: '80%',\n visible: true,\n inputId: 'dashboardSelect1',\n title: this.translate.instant('WidgetFormPage.Dashboard'),\n getValueFunction: (e) => {\n this.widget.drillDownDashboard = e\n this.widget.drillDown.dashboard = e\n this.widget.drillDown.link = ''\n this.widget.drillDownLink = ''\n if (this.dashboardId == e)\n this.drilDownDropdownSettings.input.find(x => x.id == 'modalStyle').options.push(\n { key: 'Self Window', value: 'selfWindow' }\n )\n\n this.getDashboardViews(e)\n this.changePreviewData()\n this.controlProgressValue()\n\n this.drilDownDropdownSettings.input.find(x => x.id == 'dashboard').defaultValue = this.widget.drillDownDashboard;\n this.updateAllDropdownSettings();\n },\n defaultValue: this.data?.widget?.drillDownDashboard,\n options: []\n },\n {\n inputType: 'select',\n id: 'views',\n width: '80%',\n visible: true,\n inputId: 'viewsSelect1',\n title: this.translate.instant('WidgetFormPage.Views'),\n getValueFunction: (e) => {\n // this.controlProgressValue()\n this.changeView(e)\n this.drilDownDropdownSettings.input.find(x => x.id == 'dynamicFilter').disabled = false\n document.getElementById('dynamicFilterToggle1').classList.remove('mat-checked')\n this.widget.drillDown.widgetFilter = 0\n\n this.drilDownDropdownSettings.input.find(x => x.id == 'dynamicFilter2').disabled = false\n this.controlProgressValue()\n\n this.drilDownDropdownSettings.input.find(x => x.id == 'views').defaultValue = this.widget.drillDown.shareKey;\n this.updateAllDropdownSettings();\n },\n defaultValue: this.data?.widget?.drillDown?.shareKey,\n options: []\n },\n {\n inputType: 'select',\n id: 'modalStyle',\n width: '80%',\n visible: true,\n inputId: 'modalSelect',\n title: this.translate.instant('WidgetFormPage.WindowType'),\n getValueFunction: (e) => {\n this.widget.drillDown.openerMethod = e\n this.changePreviewData()\n this.controlProgressValue()\n\n this.drilDownDropdownSettings.input.find(x => x.id == 'modalStyle').defaultValue = this.widget.drillDown.openerMethod;\n this.updateAllDropdownSettings();\n\n },\n defaultValue: this.data?.widget?.drillDown?.openerMethod,\n options: [\n { key: 'Center', value: 'centerWindow' },\n { key: 'Left Window', value: 'leftWindow' },\n { key: 'Right Window', value: 'rightWindow' },\n { key: 'New Tab', value: 'newWindow' },\n\n ]\n },\n {\n inputType: 'number',\n id: 'windowWidth',\n visible: true,\n inputId: 'windowWidth',\n disabled: false,\n title: this.translate.instant('WidgetFormPage.WindowWidth') + ' %',\n getValueFunction: (e) => {\n this.widget.drillDown.width = e\n this.changePreviewData()\n\n this.drilDownDropdownSettings.input.find(x => x.id == 'windowWidth').defaultValue = this.widget.drillDown.width;\n this.updateAllDropdownSettings();\n\n },\n defaultValue: this.data?.widget?.drillDown?.width ? this.data?.widget?.drillDown?.width : 0,\n },\n {\n inputType: 'number',\n id: 'windowHeight',\n visible: true,\n inputId: 'windowHeight',\n disabled: false,\n title: this.translate.instant('WidgetFormPage.WindowHeight') + ' %',\n getValueFunction: (e) => {\n this.widget.drillDown.height = e\n this.changePreviewData()\n\n this.drilDownDropdownSettings.input.find(x => x.id == 'windowHeight').defaultValue = this.widget.drillDown.height;\n this.updateAllDropdownSettings();\n\n },\n defaultValue: this.data?.widget?.drillDown?.height ? this.data?.widget?.drillDown?.height : 0,\n },\n {\n inputType: 'toggle',\n id: 'dynamicFilter',\n visible: true,\n inputId: 'dynamicFilterToggle1',\n disabled: true,\n title: this.translate.instant('WidgetFormPage.useWidgetFilter'),\n getValueFunction: (e) => {\n\n this.widget.drillDown.widgetFilter = e.checked ? 1 : 0\n\n this.ChangeUrlForDynamic(e.checked, 'widget')\n\n this.drilDownDropdownSettings.input.find(x => x.id == 'dynamicFilter').defaultValue = this.widget.drillDown.widgetFilter == 1 ? true : false;\n this.updateAllDropdownSettings();\n\n },\n defaultValue: this.data?.widget?.drillDown?.widgetFilter && this.data.widget.drillDown.widgetFilter == 1 ? true : false,\n options: []\n },\n {\n inputType: 'toggle',\n id: 'dynamicFilter2',\n visible: true,\n inputId: 'dynamicFilterToggle2',\n disabled: true,\n title: this.translate.instant('WidgetFormPage.useDashboardFilter'),\n getValueFunction: (e) => {\n\n this.widget.drillDown.dashboardFilter = e.checked ? 1 : 0\n this.ChangeUrlForDynamic(e.checked, 'dashboard')\n\n this.drilDownDropdownSettings.input.find(x => x.id == 'dynamicFilter2').defaultValue = this.widget.drillDown.dashboardFilter == 1 ? true : false;\n this.updateAllDropdownSettings();\n\n },\n defaultValue: this.data?.widget?.drillDown?.dashboardFilter && this.data.widget.drillDown.dashboardFilter == 1 ? 'true' : 'false',\n options: []\n }\n ],\n progressValue: 0,\n errorValues: { text: '', active: false }\n\n\n }\n\n\n\n // progressValues: any = {\n // [SettingAreas.data]: 0,\n // [SettingAreas.event]: 0,\n // [SettingAreas.visual]: 0,\n // [SettingAreas.agregation]: 0\n\n // }\n selectedSettingArea = SettingAreas.data\n\n\n\n filteredOptions: Observable<{ value: string, desc: string }[]>;\n options: { value: string, desc: string }[] = [{ value: 'sum()', desc: '' }, { value: 'avg()', desc: '' }, { value: 'max()', desc: '' }, { value: 'min()', desc: '' }, { value: 'percent()', desc: '' }, { value: '+', desc: '' }, { value: '-', desc: '' }, { value: '/', desc: '' }, { value: '*', desc: '' }];\n allOptions: { value: string, desc: string }[] = [{ value: 'sum()', desc: '' }, { value: 'avg()', desc: '' }, { value: 'max()', desc: '' }, { value: 'min()', desc: '' }, { value: 'percent()', desc: '' }, { value: '+', desc: '' }, { value: '-', desc: '' }, { value: '/', desc: '' }, { value: '*', desc: '' }];\n\n @ViewChild('calculated') calculated: TemplateRef;\n @ViewChild('paint') paint: TemplateRef;\n\n dataStoreColumnsSettingTabs = [\n { name: 'measure', icon: 'measure', selected: true, dropdown: { setting: this.dataStoreColumnsDropdownSettings, data: this.dataStoreColumnsForDropdownMenu } },\n { name: 'limit', icon: 'sort2', selected: false, dropdown: { setting: this.sortAndLimitDropdownSettings, data: this.sortAndLimitForDropdownMenu } },\n { name: 'calculated', icon: 'fx', contentTemplate: null, selected: false, },\n ]\n\n visualSettingTabs = [\n { name: 'chart', icon: 'chart2', selected: true, dropdown: { setting: this.visualComponentsDropdownSettings, data: this.visualComponentsForDropdownMenu } },\n { name: 'paint', icon: 'paint', selected: false, contentTemplate: null },\n { name: 'config', icon: 'custom', selected: false, dropdown: { setting: this.configDropdownSettings, data: [] } },\n ]\n\n allDropdownSettings: {\n id: string, setting: customDropdownSettingProps, data: customDropdownProps[],\n tabs: any\n }[] = [\n { id: SettingAreas.data, setting: this.dataStoresDropdownSettings, data: this.dataStoresForDropdownMenu, tabs: [] },\n { id: SettingAreas.agregation, setting: this.dataStoreColumnsDropdownSettings, data: this.dataStoreColumnsForDropdownMenu, tabs: this.dataStoreColumnsSettingTabs },\n { id: SettingAreas.visual, setting: this.visualComponentsDropdownSettings, data: this.visualComponentsForDropdownMenu, tabs: this.visualSettingTabs },\n { id: SettingAreas.event, setting: this.drilDownDropdownSettings, data: [], tabs: [] }\n ]\n\n constructor(\n @Inject(MAT_DIALOG_DATA) public data: {\n widget: Widget,\n dashboardId: string,\n widgetList: any[],\n type: string,\n dashboardFilter: BussionFilterDefinition[],\n deleteWidget: Function\n },\n private dialog: MatDialog,\n @Optional() private dialogRef: MatDialogRef,\n private spinner: NgxSpinnerService,\n private visualService: VisualService,\n private dataStoreService: DataStoreService,\n private dashboardService: DashboardService,\n private coreService: CoreService,\n private translate: TranslateService,\n private functionService: GlobalFunctionService,\n private scriptLoader: ScriptLoaderService,\n private shareService: ShareService,\n private sweetalertService: SweetAlertService\n ) { }\n\n ngAfterViewInit(): void {\n this.dataStoreColumnsSettingTabs.find(x => x.name == 'calculated').contentTemplate = this.calculated\n this.visualSettingTabs.find(x => x.name == 'paint').contentTemplate = this.paint\n\n }\n\n ngOnInit(): void {\n this.setupValidation();\n this.updateInsertFormSetting()\n this.getVisualComponents();\n this.getDataStores();\n this.getDashboards()\n this.changedConfig()\n\n }\n\n updateInsertFormSetting() {\n\n this.dashboardId = this.data.dashboardId;\n this.widgetList = this.data.widgetList;\n\n if (this.data.type == 'update') {\n\n this.title = \"WidgetFormPage.TitleUpdate\";\n this.isCreateForm = false;\n } else {\n this.isCreateForm = true;\n this.title = \"WidgetFormPage.TitleCreate\";\n }\n\n if (this.data.widget) {\n this.calculatedFieldList = this.data.widget.calculatedFields.map((item, key) => {\n return { ...item, id: key + 1 }\n })\n\n if (this.data.widget.drillDownLink) {\n // this.data.widget.drilDownShareKey = this.data.widget.drillDownLink.split('?')[0].split('/')[1]\n\n\n if (this.dashboardId == this.data.widget.drillDownDashboard)\n this.drilDownDropdownSettings.input.find(x => x.id == 'modalStyle').options.push({ key: 'Self Window', value: 'selfWindow' })\n }\n if (this.data.widget.dataStoreId) {\n this.freezeFilter = this.data.widget.freezeFilter == 0 ? false : true\n this.widgetIsFilter = this.data.widget.isFilter == 0 ? false : true\n this.getSelectedDsColumns(this.data.widget.dataStoreId)\n this.getSampleData(this.data.widget.dataStoreId)\n }\n if (this.data.widget.measures) {\n this.infoBadgeList = this.data.widget.measures.map(item => { return { name: item.label, detail: item, subTextKey: 'function', disableEdit: item.isCalculatedField == 1 ? true : false } })\n }\n\n if (this.data.widget.widgetQuery) {\n this.useDirectQuery = true;\n this.allDropdownSettings.find(x => x.id == SettingAreas.agregation).tabs = [];\n }\n\n if (this.data.widget.colors) {\n this.dashboardWidgetColors = this.data.widget.colors.colors\n }\n\n\n this.widget = Object.assign({}, this.data.widget);\n this.sortAndLimitDropdownSettings.input.find(x => x.inputId == 'sortField').options = this.widget.dimensions.map(dim => {\n return { key: dim.fieldName, value: dim.fieldName }\n })\n this.sortFieldVisible();\n this.controlForPreview(this.data.widget)\n\n //this.dataStoreSelected();\n if (this.widget.dimensions.length > 0)\n this.dynamicFilterForChart = {\n fieldName: this.widget.dimensions[0].fieldName,\n fieldValue: 'Selected',\n operator: '='\n }\n this.changeCalculatedOptions();\n this.getDashboardViews(this.data.widget.drillDownDashboard)\n }\n }\n\n setSelectedSettingArea(settingArea: SettingAreas) {\n if (settingArea == SettingAreas.agregation && !this.widget.dataStoreId) {\n return;\n }\n if (settingArea == SettingAreas.visual && this.widget.dimensions.length == 0 && this.widget.measures.length == 0) {\n return;\n\n }\n if (settingArea == SettingAreas.event && !this.widget.visualComponentId) {\n return;\n\n }\n\n this.selectedSettingArea = settingArea\n this.scriptLoader._selectedTabForClick.next(settingArea)\n\n }\n\n private _filter(value: string): { value: string, desc: string }[] {\n const filterValue = value.toLowerCase(); // Küçük harfe dönüştürerek filtreleme işlemi yapıyoruz\n return this.options.filter(option => option.value.toLowerCase().includes(filterValue)); // Seçenekleri filtreliyoruz\n }\n\n\n\n onOptionSelected(event: any) {\n\n\n var selectedValue = event.value;\n\n const lastSpaceIndex = this.calculatedForm.value.formula.lastIndexOf(' ');\n var firstPart = this.calculatedForm.value.formula\n\n if (lastSpaceIndex !== -1) {\n firstPart = this.calculatedForm.value.formula.substring(0, lastSpaceIndex); // Boşluktan önceki kısmı alır\n }\n\n\n this.calculatedForm.patchValue({\n formula: firstPart + ' ' + selectedValue\n })\n\n this.optionselection.writeValue(null);\n }\n\n changedConfig() {\n\n this.scriptLoader.changedConfigs.pipe(\n skip(1),\n takeWhile(() => this.alive) // Aboneliği sonlandırmak için bayrağı kontrol et\n ).subscribe(res => {\n\n if (res.config) {\n this.widget[res.configtype] = res.config\n if (this.dashboardWidgetColors.length == 0) {\n this.dashboardWidgetColors = this.widget.colors.colors\n }\n }\n })\n }\n alive = true\n ngOnDestroy(): void {\n this.scriptLoader._selectedTabForClick.next('')\n this.alive = false;\n }\n\n\n\n changePreviewData() {\n if (this.widgetPreviewData)\n this.widgetPreviewData['widget'].drillDown = this.widget.drillDown\n\n }\n\n\n\n\n getDashboards() {\n if (this.dashboardService.cachedData.getValue().authorizedDashboard.length > 0) {\n this.dashboards = this.dashboardService.cachedData.getValue().authorizedDashboard\n this.selectedDashboardForViews = this.dashboards.find(x => x.dashboardId == this.data.widget?.drillDownDashboard)\n\n this.drilDownDropdownSettings.input.find(x => x.id == 'dashboard').options = this.dashboards.map(dash => {\n return { key: dash.title, value: dash.dashboardId }\n })\n } else {\n this.dashboardService.getAuthorizedDashboards(1).pipe(\n takeWhile(() => this.alive) // Aboneliği sonlandırmak için bayrağı kontrol et\n ).subscribe(res => {\n this.dashboards = res\n this.selectedDashboardForViews = this.dashboards.find(x => x.dashboardId == this.data.widget?.drillDownDashboard)\n this.drilDownDropdownSettings.input.find(x => x.id == 'dashboard').options = this.dashboards.map(dash => {\n return { key: dash.title, value: dash.dashboardId }\n })\n })\n }\n }\n\n getDashboardViews(dashboardId: string) {\n this.selectedDashboardForViews = this.dashboards.find(x => x.dashboardId == dashboardId)\n this.dashboardShares = []\n var selectedShares = this.myShares.filter(x => x.dashboardId == dashboardId)\n if (selectedShares.length > 0) {\n this.dashboardShares = selectedShares\n if (this.data.widget.drillDown.shareKey) {\n this.setSelectedView(this.data.widget.drillDown.shareKey)\n }\n } else {\n this.shareService.getMyShare(dashboardId).pipe(\n takeWhile(() => this.alive) // Aboneliği sonlandırmak için bayrağı kontrol et\n ).subscribe((myShares: Share[]) => {\n myShares = myShares.map(share => {\n let filter = filterString(share.filter)\n return { ...share, url: `/${share.shareKey}?filters=${filter}` }\n // window.origin +/#/share\n })\n this.drilDownDropdownSettings.input.find(x => x.id == 'views').options = myShares.map(share => {\n return { key: share.name, value: share.shareKey }\n })\n this.myShares = this.myShares.concat(myShares)\n this.dashboardShares = this.myShares.filter(x => x.dashboardId == dashboardId)\n if (this.data?.widget && this.data.widget.drillDown.shareKey) {\n this.setSelectedView(this.data.widget.drillDown.shareKey)\n // this.changeView(this.data.widget.drilDownShareKey)\n }\n })\n }\n }\n\n setSelectedView(sharekey: string) {\n this.drilDownDropdownSettings.input.find(x => x.id == 'dynamicFilter').disabled = false\n this.drilDownDropdownSettings.input.find(x => x.id == 'dynamicFilter2').disabled = false\n this.selectedShare = this.dashboardShares.find(x => x.shareKey == sharekey)\n this.updateAllDropdownSettings()\n }\n\n openEditTable(ds: customDropdownProps) {\n var baseUrl = environment.baseUrl\n var link = document.createElement('a');\n // link.href = `/#/selfservice/analyze/grid-analytics/${ds.id}`;\n link.href = baseUrl + `/Apps/gridAnalytics-47681312178742151388-155152/?${ds.id}`\n link.target = \"_blank\";\n var event = new MouseEvent('click', {\n view: window,\n bubbles: true,\n cancelable: true\n });\n link.dispatchEvent(event);\n }\n\n\n ChangeUrlForDynamic(use: boolean, type: string) {\n let filter = this.selectedShare.filter\n\n if (this.widget.drillDown?.link?.includes('filters')) {\n filter = JSON.parse(this.widget.drillDown?.link.split('filters=')[1])\n }\n var filterstringText = filterString(filter)\n\n if (type == 'widget') {\n if (use) {\n\n if (!filter.some(x => x.fieldValue == \"Selected\")) {\n this.dynamicFilterForChart = {\n fieldName: this.widget.dimensions[0].fieldName,\n fieldValue: 'Selected',\n operator: '='\n }\n filter.push(this.dynamicFilterForChart)\n }\n\n } else {\n if (filter.some(x => x.fieldValue == \"Selected\")) {\n filter = filter.filter(x => x.fieldValue !== \"Selected\")\n this.selectedShare.filter = filter\n }\n }\n }\n\n filterstringText = filterString(filter)\n var createdUrl = `/${this.selectedShare.shareKey}?filters=${filterstringText}`\n\n this.selectedShare.filter = filter\n this.widget.drillDown.link = createdUrl\n this.widget.drillDownLink = createdUrl\n this.changePreviewData();\n\n }\n\n changeView(shareKey: string) {\n // this.widget.drilDownShareKey = shareKey\n this.widget.drillDown.shareKey = shareKey\n\n this.selectedShare = this.dashboardShares.find(x => x.shareKey == shareKey)\n\n // if (this.widget.drillDownLink) {\n this.widget.drillDownLink = this.selectedShare.url\n this.widget.drillDown.link = this.selectedShare.url\n this.drilDownDropdownSettings.input.find(x => x.id == 'dynamicFilter').disabled = false\n this.drilDownDropdownSettings.input.find(x => x.id == 'dynamicFilter2').disabled = false\n this.widget.drillDown.dashboard = this.widget.drillDownDashboard\n\n // }\n this.changePreviewData()\n\n if (this.selectedShare.url.includes('Selected')) {\n this.useDynamicFilter = true\n }\n\n\n\n }\n\n resetDrillDown() {\n // this.widget.drilDownShareKey = ''\n this.widget.drillDownDashboard = ''\n this.widget.drillDownLink = ''\n this.widget.drillDown = {\n dashboard: '',\n dashboardFilter: 0,\n height: 0,\n width: 0,\n link: '',\n openerMethod: '',\n widgetFilter: 0,\n shareKey: ''\n\n }\n this.useDynamicFilter = false\n this.selectedShare = {\n shareId: '',\n name: '',\n sharedObjectId: '',\n objectType: '',\n dashboardId: '',\n shareState: '',\n shareKey: '',\n sharedBy: '',\n sharedUserId: '',\n lang: '',\n domain: '',\n sharedDate: '',\n sharedData: '',\n enableFilter: 0,\n enableTitle: 0,\n filter: [],\n shareType: 0,\n shareEncryptKey: '',\n url: '',\n lockedFilter: 0,\n authenticatedUsers: '',\n authentication: 0\n }\n }\n\n\n\n editorInit(eventInit: any) {\n (window as any).monaco.languages.typescript.javascriptDefaults.setDiagnosticsOptions({\n noSemanticValidation: true,\n noSyntaxValidation: true\n });\n\n (window as any).monaco.languages.typescript.javascriptDefaults.setCompilerOptions({\n target: monaco.languages.typescript.ScriptTarget.ES6,\n allowNonTsExtensions: true\n });\n\n this.getGlobalFunctionDefinitions();\n\n }\n\n getGlobalFunctionDefinitions() {\n this.functionService.getGlobalFunctionsDefinitions().pipe(\n takeWhile(() => this.alive) // Aboneliği sonlandırmak için bayrağı kontrol et\n ).subscribe(code => {\n (window as any).monaco.languages.typescript.javascriptDefaults.addExtraLib(code);\n })\n }\n\n\n private setupValidation() {\n\n\n this.calculatedForm = new UntypedFormGroup({\n name: new UntypedFormControl('', [Validators.required]),\n formula: new UntypedFormControl('', [Validators.required]),\n });\n this.ignoreForm = new UntypedFormGroup({\n ignoreKey: new UntypedFormControl('', [Validators.required]),\n });\n this.tagForm = new UntypedFormGroup({\n tagKey: new UntypedFormControl('', [Validators.required]),\n });\n\n this.joinForm = new UntypedFormGroup({\n source: new UntypedFormControl('', [Validators.required]),\n destination: new UntypedFormControl('', [Validators.required])\n });\n\n\n\n this.filteredOptions = this.calculatedForm.controls.formula.valueChanges.pipe(\n startWith(''),\n map(value => {\n var splittedValue = value.split(' '); // Boşluklara göre ayır\n\n if (value.includes('(') && !value.includes(')')) {\n splittedValue = value.split('(')\n }\n return this._filter(splittedValue[splittedValue.length - 1] || '')\n }),\n );\n }\n\n changeCalculatedOptions() {\n this.options = this.options.filter(x => x.desc == '')\n this.widget.measures.filter(x => x.isCalculatedField == 0).map(item => {\n if (this.options.some(x => x.value !== item.name))\n this.options.push({ desc: item.formula, value: item.name })\n else {\n this.options.find(x => x.value == item.name).value = item.name\n }\n\n })\n this.widget.dimensions.map(item => {\n if (this.options.some(x => x.value !== item.fieldName))\n this.options.push({ desc: item.fieldName, value: item.fieldName })\n else {\n this.options.find(x => x.value == item.fieldName).value = item.fieldName\n }\n })\n }\n\n AddCalculatedField() {\n if (this.calculatedForm.valid && !this.calculatedFieldList.some(x => x.name == this.calculatedForm.value.name)) {\n var id = this.calculatedFieldList.length > 0 ? (this.calculatedFieldList[this.calculatedFieldList.length - 1].id + 1) : 1\n this.calculatedFieldList.push({ ...this.calculatedForm.value, id: id })\n this.widget.calculatedFields = this.calculatedFieldList.map(item => {\n return { name: item.name, formula: item.formula }\n })\n\n this.getCalculatedFieldsForDropdown().map(item => {\n if (!this.dataStoreColumnsForDropdownMenu.some(x => x.id == item.id))\n this.dataStoreColumnsForDropdownMenu.push(item)\n else\n this.dataStoreColumnsForDropdownMenu.find(x => x.id == item.id).element = item.element\n })\n\n this.controlForPreview(this.widget)\n this.calculatedForm.reset()\n }\n }\n\n deleteCalculatedField(field: { name: string, formula: string, id: number }) {\n if (this.calculatedFieldUpdate?.id == field.id) {\n this.calculatedFieldUpdate = null\n }\n this.calculatedFieldList = this.calculatedFieldList.filter(x => x.name !== field.name)\n this.widget.calculatedFields = this.calculatedFieldList.map(item => {\n return { name: item.name, formula: item.formula }\n })\n\n this.dataStoreColumnsForDropdownMenu = this.dataStoreColumnsForDropdownMenu.filter(x => x.id !== field.name)\n this.widget.measures = this.widget.measures.filter(x => x.name !== field.name)\n\n this.controlForPreview(this.widget)\n }\n\n editCalculatedField(field: { name: string, formula: string, id: number }) {\n this.calculatedFieldUpdate = field\n this.calculatedForm.patchValue({\n name: field.name,\n formula: field.formula\n })\n }\n\n updateCalculatedField() {\n if (this.calculatedFieldUpdate.id) {\n this.calculatedFieldList.find(x => x.id == this.calculatedFieldUpdate.id).formula = this.calculatedForm.value.formula\n this.calculatedFieldList.find(x => x.id == this.calculatedFieldUpdate.id).name = this.calculatedForm.value.name\n\n this.widget.calculatedFields = this.calculatedFieldList.map(item => {\n return { name: item.name, formula: item.formula }\n })\n\n if (this.widget.measures.some(x => x.name == this.calculatedForm.value.name)) {\n this.widget.measures.find(x => x.name == this.calculatedForm.value.name).formula = this.calculatedForm.value.formula\n this.controlForPreview(this.widget)\n }\n\n this.calculatedForm.reset()\n }\n\n\n }\n\n\n\n controlNameForCalculated() {\n if (this.calculatedFieldList.some(x => x.name == this.calculatedForm.value.name)) {\n this.calculatedFieldNameError = true\n } else {\n this.calculatedFieldNameError = false\n\n }\n }\n\n private getDataStores() {\n this.dataStoreService.getDataSourceForUser().pipe(\n takeWhile(() => this.alive) // Aboneliği sonlandırmak için bayrağı kontrol et\n ).subscribe(result => {\n this.dataStores = result;\n this.dataStoresForDropdownMenu = this.dataStores.map(item => {\n return {\n id: item.dataStoreId,\n title: item.name,\n subtitle: item.description == '' ? item.creationDate?.split(' ')[0] : item.description,\n element: item,\n selected: this.widget.dataStoreId == item.dataStoreId ? true : false\n\n }\n })\n this.updateAllDropdownSettings();\n\n });\n }\n\n private getVisualComponents() {\n this.visualService.getVisualComponents().pipe(\n takeWhile(() => this.alive) // Aboneliği sonlandırmak için bayrağı kontrol et\n ).subscribe(result => {\n this.visualComponents = result;\n\n if (this.data?.widget?.visualComponentId) {\n var selected = this.visualComponents.find(x => x.visualComponentId == this.data.widget.visualComponentId)\n this.settingForVisualComponentConfig(selected)\n }\n\n\n this.visualComponentsForDropdownMenu = this.visualComponents.map(item => {\n return {\n id: item.visualComponentId,\n title: item.name,\n img: item.icon,\n element: item,\n selected: this.widget.visualComponentId == item.visualComponentId ? true : false\n\n }\n })\n\n\n this.visualSettingTabs.find(x => x.name == 'chart').dropdown.data = this.visualComponentsForDropdownMenu\n\n this.updateAllDropdownSettings()\n\n\n\n });\n }\n\n ChangePreviewScreen(screenName: string) {\n this.selectedPreviewScreen = screenName;\n\n }\n\n getCalculatedFieldsForDropdown() {\n return this.widget.calculatedFields.map(item => {\n var measure = {\n label: item.name,\n name: item.name,\n function: '',\n formula: item.formula,\n isCalculatedField: 1\n }\n return {\n id: item.name,\n title: item.name,\n subtitle: item.formula,\n element: measure,\n menu: [''],\n menu2: [],\n icon: 'fx',\n toggle: false,\n selectedMenuItem2: '',\n selectedMenuItem: this.widget.measures.some(x => x.name == item.name) ? item.name : '',\n selected: false\n }\n })\n }\n\n\n getSelectedDsColumns(dataStoreId: string) {\n\n this.dataStoreService.getColomnsForDataStore(dataStoreId).pipe(\n takeWhile(() => this.alive) // Aboneliği sonlandırmak için bayrağı kontrol et\n ).subscribe(result => {\n this.dataStoreColumns = result;\n this.dataStoreColumnsForFilter = [...result];\n if (!this.isFirstLoad) {\n this.widget.dimensions = [];\n }\n this.isFirstLoad = false;\n this.dataStoreColumnsForDropdownMenu = this.createDropdownDataForColumns(this.dataStoreColumns, this.widget.dimensions, this.widget.measures)\n\n this.dataStoreColumnsForDropdownMenu = this.dataStoreColumnsForDropdownMenu.concat(this.getCalculatedFieldsForDropdown())\n this.dataStoreColumnsSettingTabs.find(x => x.name == 'measure').dropdown.data = this.dataStoreColumnsForDropdownMenu;\n\n\n });\n }\n\n\n dataStoreSelected(selected: { element: DataStore }) {\n this.widget.dataStoreId = selected.element.dataStoreId\n //Datastore seçimi değişitiğinde diğer elemanları sıfırlamalıyız ki preview oluşmasın\n this.widget.measures = []\n this.widget.dimensions = []\n\n this.dataStoreColumnsForDropdownMenu = []\n this.dataStoreColumns = []\n // this.sortAndLimitForDropdownMenu.find(x => x.id == 'sortField').menu = []\n\n\n this.controlForPreview(this.widget)\n //datastore seç,ildiğinde sample datayı set edmeliyiz ki kullanıcıya gösterelim\n this.getSampleData(this.widget.dataStoreId)\n this.selectedPreviewScreen = 'data'\n\n if (this.widget.dataStoreId == '') {\n return;\n }\n this.getSelectedDsColumns(this.widget.dataStoreId)\n //to do\n this.widget.filter = []\n }\n\n sortFieldVisible() {\n if (this.widget.measures.length > 0) {\n this.sortAndLimitDropdownSettings.input.find(x => x.inputId == 'sortField').visible = false\n this.sortAndLimitDropdownSettings.input.find(x => x.inputId == 'sortType').visible = true\n\n } else {\n this.sortAndLimitDropdownSettings.input.find(x => x.inputId == 'sortField').visible = true\n this.sortAndLimitDropdownSettings.input.find(x => x.inputId == 'sortType').visible = false\n\n }\n }\n\n addMeasurement(dataList: customDropdownProps[]) {\n if (dataList.some(x => x.selectedMenuItem2)) {\n var selectedmenuitem2 = dataList.find(x => x.selectedMenuItem2).selectedMenuItem2\n this.widget.dateGroup = dataList.find(x => x.selectedMenuItem2).menu2.findIndex(x => x == selectedmenuitem2)\n this.dataStoreColumnsForDropdownMenu.filter(x => x.selectedMenuItem2 == '').map(item => {\n item.menu2Disable = true\n })\n } else {\n this.widget.dateGroup = 0\n this.dataStoreColumnsForDropdownMenu.map(item => {\n item.menu2Disable = false\n })\n }\n\n var calculatedElements = dataList.filter(x => x.selectedMenuItem == x.title)\n var calculatedmeasures = []\n if (calculatedElements.length > 0) {\n dataList = dataList.filter(x => x.selectedMenuItem !== x.title)\n calculatedmeasures = calculatedElements.map(item => {\n return {\n label: item.id.toString(),\n name: item.id.toString(),\n function: '',\n formula: item.element.formula,\n isCalculatedField: 1\n }\n })\n }\n\n var measurments = dataList.filter(x => x.selectedMenuItem).map(item => {\n return {\n label: item.id.toString(),\n name: item.id.toString(),\n function: item.selectedMenuItem == 'Count Distinct' ? 'cdisct' : item.selectedMenuItem,\n formula: \"\",\n isCalculatedField: 0\n }\n })\n\n if (calculatedmeasures.length > 0) {\n measurments = measurments.concat(calculatedmeasures)\n }\n this.infoBadgeList = measurments.map(item => { return { name: item.label, detail: item, subTextKey: 'function', disableEdit: item.isCalculatedField == 1 ? true : false } })\n\n this.widget.measures = measurments\n this.changeCalculatedOptions()\n this.sortFieldVisible()\n this.controlForPreview(this.widget)\n // this.widget.measures.push(this.widgetMeasure);\n // this.widgetMeasure = {\n // label: \"\",\n // name: \"\",\n // function: \"\",\n // formula: \"\",\n // }\n }\n\n\n deleteMeasure(measure: WidgetMeasure) {\n let index = this.widget.measures.findIndex(x => {\n return x.formula === measure.formula && x.function === measure.function && x.name === measure.name;\n });\n if (index !== -1) {\n this.widget.measures.splice(index, 1);\n }\n }\n\n getDashboard() {\n return this.dashboardService.getDashboard(this.dashboardId).pipe(\n tap((result: Dashboard) => {\n console.log('selectedDasboardresult', result)\n this.dashboardService.selectedDasboard.next(result)\n\n const cachedData = this.dashboardService.cachedData.getValue();\n const activeDashboard = cachedData.activeDashboard.find(x => x.dashboardId === result.dashboardId);\n const authorizedDashboard = cachedData.authorizedDashboard.find(x => x.dashboardId === result.dashboardId);\n\n if (activeDashboard && authorizedDashboard) {\n // Update dimensions and colors\n activeDashboard.dimensions = result.dimensions;\n authorizedDashboard.dimensions = result.dimensions;\n\n activeDashboard.colors = result.colors;\n authorizedDashboard.colors = result.colors;\n }\n // if (this.widget.colors.onlyWidget == 0) {\n // this.dashboardWidgetColors = result.colors\n // }\n })\n )\n\n\n }\n\n upsertWidget() {\n this.spinner.show()\n if (this.saveAsActive) {\n delete this.widget.widgetId;\n\n }\n\n this.widget.freezeFilter = this.freezeFilter == false ? 0 : 1\n this.widget.isFilter = this.widgetIsFilter == false ? 0 : 1\n this.widget.widgetQuery = this.useDirectQuery ? this.widget.widgetQuery : '';\n this.widget.disableInMemoryCache = this.widget.disableInMemoryCache ? 1 : 0;\n\n if (this.dashboardId) {\n this.dashboardService.upsertWidgetToDashboard(this.widget, this.dashboardId).pipe(\n takeWhile(() => this.alive), // Aboneliği sonlandırmak için bayrağı kontrol et\n switchMap(res =>\n combineLatest([of(res), this.getDashboard()])\n )\n ).subscribe(async ([initialResponse, result]) => {\n if (initialResponse.widgetId) {\n await this.coreService.showSuccessMessage(this.translate.instant('Common.Success'));\n await this.dialogRef.close({ type: this.data.widget ? this.saveAsActive ? 'saveas' : 'update' : 'insert', widget: { ...initialResponse, widget: { ...this.widget, widgetId: initialResponse.widget.widgetId } } })\n } else {\n this.coreService.showErrorMessage(this.translate.instant('Common.Error'));\n }\n this.saveAsActive = false\n this.spinner.hide()\n });\n } else {\n this.spinner.hide()\n this.dialogRef.close({ type: this.data.widget ? this.saveAsActive ? 'saveas' : 'update' : 'insert', widget: { ...this.widgetPreviewData, widget: { ...this.widget, widgetId: this.widgetPreviewData.widgetId } } })\n }\n }\n\n changevisualComponent(element: customDropdownProps) {\n if (this.widget.visualComponentId !== element.id) {\n this.widget.params = {}\n this.widget.config = []\n }\n var selectedvisualcomp = this.visualComponents.find(x => x.visualComponentId == element.id)\n this.settingForVisualComponentConfig(selectedvisualcomp)\n this.widget.code = selectedvisualcomp.code\n this.widget.visualComponentId = element.id.toString();\n this.controlForPreview(this.widget);\n }\n\n settingForVisualComponentConfig(selectedvisualcomp: VisualComp) {\n\n this.configDropdownSettings.input = selectedvisualcomp.config.map(item => {\n return {\n getValueFunction: (e) => this.createWidgetConfig(e, item),\n inputType: item.values.length > 1 ? 'select' : item.type.toLowerCase() == 'boolean' ? 'toggle' : item.type,\n options: item.values.length > 1 ? item.values.map(opt => { return { key: opt, value: opt } }) : [],\n title: item.visibleName,\n id: item.name,\n visible: true,\n tooltip: item.description,\n defaultValue:\n this.data?.widget?.config.some(x => x.name == item.name) ?\n this.data?.widget?.config.find(x => x.name == item.name).value :\n item.type.toLowerCase() == 'boolean' && typeof (item.value) == 'string' ? item.value == 'true' ? true : false : item.value,\n\n }\n })\n\n\n this.visualSettingTabs.find(x => x.name == 'config').dropdown.setting = this.configDropdownSettings\n this.updateAllDropdownSettings();\n\n }\n\n createWidgetConfig(e, item: WidgetConfig) {\n\n if (this.widget.config.some(x => x.name == item.name))\n this.widget.config = this.widget.config.filter(x => x.name !== item.name)\n\n if (e.source) {\n item.value = e.checked\n } else {\n item.value = e\n }\n\n this.widget.config.push(item)\n\n this.configDropdownSettings.input.find(x => x.id == item.name).defaultValue = this.widget?.config.find(x => x.name == item.name).value\n\n this.widget.params = { ...this.widget.params, [item.name]: item.value }\n\n this.controlForPreview(this.widget, true)\n }\n\n upsertDashboard() {\n\n }\n\n addFilter(filter: any) {\n this.widget.filter.push(filter);\n this.widget.filter = [...this.widget.filter];\n this.queryFilter = {\n fieldName: '',\n fieldValue: '',\n operator: ''\n }\n }\n\n deleteQuery(query: any) {\n let index = this.widget.filter.findIndex(x => {\n return x.fieldName === query.fieldName && x.operator === query.operator && x.fieldValue === query.fieldValue;\n });\n if (index !== -1) {\n this.widget.filter.splice(index, 1);\n }\n this.applyFilter(false)\n }\n\n searchValuesForQueryFilter(searchText: string) {\n if (searchText.length < 2) { return };\n this.dataStoreService.getValuesForField(this.widget.dataStoreId, this.queryFilter.fieldName, searchText).pipe(\n takeWhile(() => this.alive) // Aboneliği sonlandırmak için bayrağı kontrol et\n ).subscribe(result => {\n this.searchValues = result;\n })\n }\n\n debugCodeResult: any = ''\n debugDisplay: boolean = false\n\n async compileCode() {\n this.debugDisplay = true\n }\n\n filterFieldSelected(fieldName: string) {\n this.queryFilter.fieldValue = '';\n this.queryFilter.operator = '';\n let column = this.dataStoreColumns.find(c => c.fieldName == fieldName);\n this.queryFilterFieldType = column.fieldType;\n }\n\n dateSelected(date: MatDatepickerInputEvent) {\n this.queryFilter.fieldValue = date.value.toISOString();\n }\n\n drop(event: CdkDragDrop) {\n if (event.previousContainer === event.container) {\n moveItemInArray(event.container.data, event.previousIndex, event.currentIndex);\n } else {\n transferArrayItem(event.previousContainer.data,\n event.container.data,\n event.previousIndex,\n event.currentIndex);\n }\n this.isExistDateInDimension();\n }\n\n private isExistDateInDimension() {\n if (this.widget.dimensions.length == 0) { return };\n if (this.widget.dimensions[0].fieldType != \"System.DateTime\") {\n this.widget.dateGroup = 0;\n if (this.dataStoreColumnsForDropdownMenu.some(x => x.selectedMenuItem2))\n this.dataStoreColumnsForDropdownMenu.find(x => x.selectedMenuItem2).selectedMenuItem2 = ''\n }\n }\n\n dimensionSelected(element: { selectedElement: { element: Columns }, selectedList: Columns[] }) {\n // if (!element.selectedList.some(x => x.fieldType.toLowerCase().includes('date'))) {\n // this.widget.dateGroup = 0\n // }\n\n\n this.widget.measures.map(item => {\n if (element.selectedList.some(x => x.fieldName == item.name)) {\n this.widget.measures = this.widget.measures.filter(x => x.name !== item.name)\n this.dataStoreColumnsForDropdownMenu.find(x => x.title == item.name).selectedMenuItem = ''\n\n }\n })\n // if(this.widget.measures.some(x=>x.function==))\n\n this.widget.dimensions = element.selectedList\n this.sortAndLimitDropdownSettings.input.find(x => x.inputId == 'sortField').options = this.widget.dimensions.map(dim => {\n return { key: dim.fieldName, value: dim.fieldName }\n })\n\n this.isExistDateInDimension()\n this.controlForPreview(this.widget)\n this.changeCalculatedOptions()\n }\n\n changeDimensionSort(list: any[]) {\n //dimension sırlama\n this.widget.dimensions = list.filter(x => x.selected).map(item => {\n return item.element\n })\n var newlist = list.filter(x => !x.selected)\n\n this.widget.measures = newlist.filter(x => x.selectedMenuItem !== '').map(item => {\n return {\n label: item.id.toString(),\n name: item.id.toString(),\n function: item.selectedMenuItem == 'Count Distinct' ? 'cdisct' : item.selectedMenuItem,\n formula: \"\",\n isCalculatedField: 0\n }\n })\n // this.widget.dimensions = list\n this.controlForPreview(this.widget)\n }\n\n areObjectsEqual(obj1, obj2) {\n const keys1 = Object.keys(obj1);\n const keys2 = Object.keys(obj2);\n\n if (keys1.length !== keys2.length) {\n return false;\n }\n\n for (const key of keys1) {\n if (obj1[key] !== obj2[key]) {\n return false;\n }\n }\n\n return true;\n }\n\n isEqualWithOrder(arr1, arr2) {\n return _.isEqualWith(arr1, arr2, (val1, val2) => {\n if (_.isArray(val1) && _.isArray(val2)) {\n return _.isEqual(val1, val2); // Derin karşılaştırma\n }\n return undefined; // Sıralama dikkate alınacak\n });\n };\n\n createWidgetDataColumns(widgetPreview: WidgetPreview) {\n this.selectedDataPreviewColumnsForAggregation = []\n\n if (widgetPreview && widgetPreview.widgetData.length > 0) {\n Object.keys(widgetPreview.widgetData[0]).map(item => {\n if (widgetPreview.widget.calculatedFields.some(x => x.name == item)) {\n this.selectedDataPreviewColumnsForAggregation.push({ fieldFilter: 0, fieldName: item, fieldType: 'fx', tags: '', visibleName: '' })\n } else {\n // var otherColumn = this.selectedDataPreviewColumns.find(x => x.fieldName == item)\n var otherColumn = this.dataStoreColumns.find(x => x.fieldName == item)\n this.selectedDataPreviewColumnsForAggregation.push(otherColumn)\n\n }\n })\n }\n }\n\n\n showPreview(fastpreview?: boolean) {\n // this.filterScreen = false\n\n fastpreview = fastpreview ? fastpreview : false\n\n if (!this.disablePreview) {\n\n //rerender for chart\n if (fastpreview) {\n this.chartRerenderLoading = true\n this.dashboardService.widgetPreviewFast(this.widget, this.widgetPreviewData.widgetData).pipe(\n takeWhile(() => this.alive) // Aboneliği sonlandırmak için bayrağı kontrol et\n ).subscribe(res => {\n\n this.widgetPreviewData = res\n this.createWidgetDataColumns(this.widgetPreviewData)\n this.oldWidget = res\n // if (this.widget.widgetId)\n // this.widget = this.widgetPreviewData.widget\n\n\n // this.widget = Object.assign(this.widget, this.widgetPreviewData.widget)\n\n setTimeout(() => {\n this.chartRerenderLoading = false\n }, 1000);\n })\n return;\n }\n\n\n this.loadingPreview = true\n // this.spinner.show();\n this.chartRerenderLoading = true\n\n this.dashboardService.widgetPreview(this.widget).pipe(\n takeWhile(() => this.alive) // Aboneliği sonlandırmak için bayrağı kontrol et\n ).subscribe(result => {\n this.widgetPreviewData = result;\n this.createWidgetDataColumns(this.widgetPreviewData)\n\n\n\n\n this.widget.config = this.widgetPreviewData.widget.config\n this.widget.params = this.widgetPreviewData.widget.params\n\n if (this.widget.widgetQuery) {\n this.queryColumnsForDropdownMenu = this.createDropdownDataForColumns(this.widgetPreviewData.widget.dimensions, this.widgetPreviewData.widget.dimensions, this.widgetPreviewData.widget.measures)\n var measureToColumn: Columns[] = this.widgetPreviewData.widget.measures.map(item => {\n return { fieldFilter: 0, fieldName: item.name, fieldType: 'fx', tags: '', visibleName: '' }\n })\n var dropdownMeasure = this.createDropdownDataForColumns(measureToColumn, measureToColumn, this.widgetPreviewData.widget.measures)\n this.queryColumnsForDropdownMenu = this.queryColumnsForDropdownMenu.concat(dropdownMeasure)\n this.dataPreviewColumnsForQuery = measureToColumn.concat(this.widgetPreviewData.widget.dimensions)\n\n this.dataStoreColumnsSettingTabs.find(x => x.name == 'measure').dropdown.data = this.queryColumnsForDropdownMenu\n this.allDropdownSettings.find(x => x.id == SettingAreas.agregation).data = this.queryColumnsForDropdownMenu\n this.allDropdownSettings.find(x => x.id == SettingAreas.agregation).tabs = [];\n\n\n\n }\n\n setTimeout(() => {\n this.loadingPreview = false\n this.chartRerenderLoading = false\n // this.spinner.hide();\n\n }, 1000);\n //this.openWidgetPreview(result);\n });\n }\n }\n\n createDropdownDataForColumns(columns: Columns[], selectedDimensions: Columns[], selectedmeasure: WidgetMeasure[]) {\n var list = columns.map(item => {\n var currentDimension = selectedDimensions.find(x => x.fieldName == item.fieldName)\n return {\n id: item.fieldName,\n title: item.fieldName,\n element: currentDimension ? currentDimension : item,\n menu: item.fieldType.toLowerCase().includes('number') ? ['Count', 'Count Distinct', 'Sum', 'Avg', 'Max', 'Min'] : ['count', 'count distinct'],\n menu2: item.fieldType.toLowerCase().includes('date') ? this.dateGroupByTextList : [],\n icon: item.fieldType.toLowerCase().includes('string') ? 'Text' : item.fieldType.toLowerCase().includes('number') ? 'Numbers' : item.fieldType.toLowerCase().includes('fx') ? 'fx' : 'Calendar',\n toggle: currentDimension?.fieldFilter == 0 ? false : true,\n selectedMenuItem2: this.dateGroupByTextList[this.widget.dateGroup],\n selectedMenuItem: selectedmeasure.find(x => x.name == item.fieldName) ? selectedmeasure.find(x => x.name == item.fieldName).function : '',\n selected: selectedDimensions.find(x => x.fieldName == item.fieldName) ? true : false\n\n }\n })\n\n return list;\n }\n\n openCustomizeCode(value) {\n this.codeString = value\n if (this.editorOptions.language == 'javascript') {\n if (this.widget.customizeCode == 0) {\n this.widget.customizeCode = 1\n }\n this.widget.code = this.codeString\n } else {\n this.widget.widgetQuery = this.codeString\n }\n }\n\n openWidgetCodeScreen() {\n this.codeScreen = true\n this.sqlcodeScreen = false\n this.filterScreen = false\n this.codeString = this.widget.code\n this.editorOptions = { theme: 'vs-dark', language: 'javascript' };\n }\n\n\n\n\n\n openBiggerEditor() {\n const dialogRef = this.dialog.open(CodeEditorComponent, {\n height: '100%',\n width: '100%',\n data: {\n code: this.widget.code,\n widget: this.widget,\n debug: () => this.compileCode()\n },\n });\n\n\n dialogRef.afterClosed().pipe(\n takeWhile(() => this.alive) // Aboneliği sonlandırmak için bayrağı kontrol et\n ).subscribe(result => {\n if (result) {\n this.widget.code = result;\n this.codeString = result\n }\n });\n }\n\n addColorRule(selectedColor: { selectedColors: ColorItem[], colorType: number, onlyWidget: boolean }) {\n var typeChange: boolean = false\n\n if (this.widget.colors.type !== selectedColor.colorType) {\n this.widget.colors.type = selectedColor.colorType\n typeChange = true\n }\n\n this.widget.colors.onlyWidget = selectedColor.onlyWidget ? 1 : 0\n\n\n\n\n var widgetColorText: string = this.widget.colors.colors.map(cl => {\n return cl.color;\n }).join(',')\n\n var selectedColorText = selectedColor.selectedColors.map(cl => {\n return cl.color;\n }).join(',')\n\n\n\n if (typeChange) {\n this.widget.colors.onlyWidget = 0\n this.widget.colors.colors = selectedColor.selectedColors\n this.showPreview(true)\n } else if (selectedColorText.length > 0 && selectedColorText !== widgetColorText) {\n this.widget.colors.colors = selectedColor.selectedColors\n this.showPreview(true)\n }\n\n\n }\n\n // removeColorRule(rule: ColorRuleItem) {\n // let index = this.widget.colors.colors.findIndex(x => {\n // return x.text === rule.text && x.colorCode === rule.colorCode;\n // });\n // if (index !== -1) {\n // this.widget.colors.colorRuleItems.splice(index, 1);\n // }\n // }\n\n // colorRuleSelected() {\n // if (this.widget.colors.type == 0) {\n // this.widget.colors.colorCode = \"\";\n // this.widget.colors.colorRuleItems = [];\n // }\n // }\n\n showCopyIDText() {\n this.coreService.showSuccessMessage(\"ID kopyalandı!\");\n }\n\n colorDimensionSelected() {\n let dimensionData = this.widget.dimensionsData.find(d => d.name == this.selectedColorDimension);\n if (dimensionData) {\n this.colorDimensionData = dimensionData.value;\n }\n }\n\n\n\n changeDimensionFilterStatus(selected: customDropdownProps) {\n var dimension = selected.element\n this.widget.dimensions.find(x => x.fieldName == selected.id).fieldFilter = selected.toggle ? 1 : 0\n // dimension.fieldFilter = dimension.fieldFilter === 1 ? 0 : 1;\n // this.widget.dimensions = [...this.widget.dimensions];\n // this.filterParam = dimension.fieldFilter;\n }\n\n closeDataSettingsTab() {\n this.dataSettingsTab = !this.dataSettingsTab\n }\n\n getSampleData(datastoreid: string) {\n return this.dataStoreService.getSampleData(datastoreid).pipe(\n takeWhile(() => this.alive) // Aboneliği sonlandırmak için bayrağı kontrol et\n ).subscribe(sampleres => {\n this.dataStoreService.getColomnsForDataStore(datastoreid).pipe(\n takeWhile(() => this.alive) // Aboneliği sonlandırmak için bayrağı kontrol et\n ).subscribe(res => {\n this.selectedDataPreviewColumns = res\n this.sampleDataForDataStore = sampleres\n\n })\n })\n }\n\n showPreviewData(selectedDataStore: customDropdownProps) {\n this.getSampleData(selectedDataStore.id.toString())\n this.selectedPreviewScreen = 'data'\n }\n\n\n controlForPreview(widgetObject: Widget, fastpreview?: boolean, updateDropdown: boolean = true) {\n fastpreview = fastpreview ? fastpreview : false\n this.controlProgressValue(updateDropdown)\n\n if (this.allDropdownSettings.some(x => x.setting.errorValues.active == true))\n this.controlAndOpenTitleBox(false, false)\n\n if (widgetObject.dataStoreId && widgetObject.visualComponentId) {\n this.showPreview(fastpreview)\n this.selectedPreviewScreen = 'widget'\n\n } else {\n this.selectedPreviewScreen = 'data'\n this.widgetPreviewData = null\n }\n\n }\n\n expandAllSettings() {\n this.settingAreaIds.map(item => {\n if (document.getElementById(item))\n document.getElementById(item).style.display = 'none'\n })\n }\n\n clearAllSelection() {\n this.widget = {\n visualComponentId: \"\",\n title: \"\",\n subTitle: \"\",\n footNote: \"\",\n access: 1,\n dateGroup: 0,\n customizeCode: 0,\n type: \"\",\n dataStoreId: \"\",\n owner: null,\n includeZeroValues: 1,\n domain: \"\",\n limitData: \"500\",\n code: \"\",\n sharedData: null,\n sort: {\n sortField: \"\",\n sortOrder: \"\",\n sortType: \"\"\n },\n colors: {\n type: 0,\n colors: [],\n onlyWidget: 0\n },\n dimensions: [],\n measures: [],\n filter: [],\n widgetParameters: [],\n dimensionsData: [],\n layout: {\n cols: 1,\n rows: 1,\n x: 0,\n y: 0,\n designerContainer: null\n },\n mobileLayout: {\n cols: 0,\n rows: 1,\n x: 0,\n y: 0,\n designerContainer: null\n },\n freezeFilter: 0,\n drillDownDashboard: '',\n drillDownLink: '',\n drillDown: {\n dashboard: '',\n dashboardFilter: 0,\n height: 0,\n width: 0,\n link: '',\n openerMethod: '',\n widgetFilter: 0,\n shareKey: ''\n\n },\n config: [],\n params: {},\n calculatedFields: [],\n isFilter: 0,\n offSet: -1,\n disableInMemoryCache: 0,\n ignoreFilterList: [],\n widgetJoin: [],\n widgetQuery: '',\n tags: []\n };\n this.controlProgressValue()\n if (this.dataStoresForDropdownMenu.find(x => x.selected == true))\n this.dataStoresForDropdownMenu.find(x => x.selected == true).selected = false\n\n if (this.dataStoreColumnsForDropdownMenu.find(x => x.selected == true))\n this.dataStoreColumnsForDropdownMenu.find(x => x.selected == true).selected = false\n\n this.dataStoreColumnsForDropdownMenu.filter(x => x.selectedMenuItem !== '').map(item => {\n item.selectedMenuItem = ''\n })\n if (this.visualComponentsForDropdownMenu.find(x => x.selected == true))\n this.visualComponentsForDropdownMenu.find(x => x.selected == true).selected = false\n\n\n }\n\n sortAndLimitSelection(event: customDropdownProps[]) {\n event.map(item => {\n if (item.selectedMenuItem) {\n if (item.id == \"sortType\" || item.id == \"sortOrder\") {\n this.widget.sort[item.id] = item.menu.findIndex(x => x == item.selectedMenuItem).toString()\n } else\n this.widget.sort[item.id] = item.selectedMenuItem\n } else {\n this.widget.sort[item.id] = ''\n }\n })\n this.controlForPreview(this.widget)\n }\n\n\n\n getPaletColors(paletcolors) {\n\n this.scriptLoader._paletColors.next(paletcolors)\n }\n\n checkDirectQuery(value) {\n this.useDirectQuery = value\n\n if (!value) {\n this.sqlcodeScreen = false;\n this.codeScreen = false;\n this.dataStoreColumnsSettingTabs.find(x => x.name == 'measure').dropdown.data = this.dataStoreColumnsForDropdownMenu\n this.updateAllDropdownSettings()\n } else {\n this.openSqlCodeEditor()\n this.dataStoreColumnsSettingTabs.find(x => x.name == 'measure').dropdown.data = []\n this.allDropdownSettings.find(x => x.id == SettingAreas.agregation).tabs = [];\n this.allDropdownSettings.find(x => x.id == SettingAreas.agregation).data = [];\n this.allDropdownSettings.find(x => x.id == SettingAreas.agregation).data = this.queryColumnsForDropdownMenu\n\n }\n\n\n\n }\n\n addIgnoreKey() {\n var ignoreValue = this.ignoreForm.get('ignoreKey').value\n if (ignoreValue.length > 0 && !this.widget.ignoreFilterList.some(x => x == ignoreValue)) {\n this.widget.ignoreFilterList.push(ignoreValue)\n this.ignoreForm.reset()\n } else {\n this.coreService.showFormFillError()\n }\n }\n\n deleteIgnoreKey(key) {\n this.widget.ignoreFilterList = this.widget.ignoreFilterList.filter(x => x !== key)\n\n }\n\n addTag() {\n var tagValue: string = this.tagForm.get('tagKey').value\n if (tagValue.length > 0 && !this.widget.tags.some(x => x.toLowerCase().trim() == tagValue.toLowerCase().trim())) {\n this.widget.tags.push(tagValue)\n this.tagForm.reset()\n } else {\n this.coreService.showFormFillError()\n }\n }\n\n\n\n deleteTag(key: string) {\n this.widget.tags = this.widget.tags.filter(x => x !== key)\n\n }\n\n addJoinList() {\n\n if (!this.widget.widgetJoin.some(x => x.source == this.joinForm.value.source && x.destination == this.joinForm.value.destination)) {\n this.widget.widgetJoin.push(this.joinForm.value)\n this.joinForm.reset()\n } else {\n this.coreService.showErrorMessage(this.translate.instant(\"FilterComponent.PleaseSelectDifValue\"))\n }\n }\n\n deleteJoinKey(joinItem: { source: string, destination: string }) {\n this.widget.widgetJoin = this.widget.widgetJoin.filter(x => !(x.destination == joinItem.destination && x.source == joinItem.source))\n\n }\n\n openSqlCodeEditor() {\n this.sqlcodeScreen = true\n this.codeScreen = false\n this.filterScreen = false\n this.codeString = this.widget.widgetQuery\n this.editorOptions = { theme: 'vs-dark', language: 'sql' };\n\n }\n\n\n\n controlProgressValue(updateDropdown: boolean = true) {\n var selectioncount = 0\n if (this.widget.dataStoreId) {\n this.widget.dataStoreId !== '' ? selectioncount++ : ''\n\n this.dataStoresDropdownSettings.progressValue = (100 * selectioncount) / 1\n } else {\n\n this.dataStoresDropdownSettings.progressValue = 0\n }\n\n if (this.widget.measures.length || this.widget.dimensions.length) {\n this.widget.measures.length > 0 ? selectioncount++ : ''\n this.widget.dimensions.length > 0 ? selectioncount++ : ''\n\n this.dataStoreColumnsDropdownSettings.progressValue = (100 * selectioncount) / 2\n\n } else {\n\n this.dataStoreColumnsDropdownSettings.progressValue = 0\n\n\n }\n\n if (this.widget.visualComponentId) {\n this.widget.visualComponentId !== '' ? selectioncount++ : ''\n\n this.visualComponentsDropdownSettings.progressValue = (100 * selectioncount) / 1\n\n } else {\n\n this.visualComponentsDropdownSettings.progressValue = 0\n\n }\n\n if (this.widget.drillDown.shareKey || this.widget.drillDownDashboard) {\n this.widget.drillDown.shareKey !== '' ? selectioncount++ : ''\n this.widget.drillDownDashboard !== '' ? selectioncount++ : ''\n this.drilDownDropdownSettings.progressValue = (100 * selectioncount) / 2\n }\n else {\n this.drilDownDropdownSettings.progressValue = 0\n\n }\n if (updateDropdown)\n this.updateAllDropdownSettings();\n\n }\n\n runDirectQuery() {\n this.openSqlCodeEditor()\n if (!this.widget.visualComponentId) {\n this.widget.visualComponentId = this.visualComponentsForDropdownMenu[0].id.toString()\n }\n if (this.widget.widgetQuery.length > 0) {\n this.controlForPreview(this.widget, false, false)\n\n } else {\n this.coreService.showFormFillError()\n }\n }\n\n\n updateAllDropdownSettings() {\n\n this.allDropdownSettings.find(x => x.id == SettingAreas.data).setting = this.dataStoresDropdownSettings;\n this.allDropdownSettings.find(x => x.id == SettingAreas.data).data = this.dataStoresForDropdownMenu;\n\n this.allDropdownSettings.find(x => x.id == SettingAreas.agregation).setting = this.dataStoreColumnsDropdownSettings;\n this.allDropdownSettings.find(x => x.id == SettingAreas.agregation).data = this.dataStoreColumnsForDropdownMenu;\n this.allDropdownSettings.find(x => x.id == SettingAreas.agregation).tabs = this.dataStoreColumnsSettingTabs;\n\n\n this.allDropdownSettings.find(x => x.id == SettingAreas.event).setting = this.drilDownDropdownSettings;\n\n this.allDropdownSettings.find(x => x.id == SettingAreas.visual).setting = this.visualComponentsDropdownSettings;\n this.allDropdownSettings.find(x => x.id == SettingAreas.visual).data = this.visualComponentsForDropdownMenu;\n this.allDropdownSettings.find(x => x.id == SettingAreas.visual).tabs = this.visualSettingTabs;\n\n\n if (this.widget.widgetQuery && this.useDirectQuery) {\n this.allDropdownSettings.find(x => x.id == SettingAreas.agregation).tabs = [];\n this.allDropdownSettings.find(x => x.id == SettingAreas.agregation).data = this.queryColumnsForDropdownMenu\n }\n\n\n\n }\n\n\n controlAndOpenTitleBox(saveas: boolean, opentitleBox: boolean = true) {\n this.saveAsActive = saveas\n if (this.widget.dataStoreId == '') {\n this.dataStoresDropdownSettings.errorValues = { text: 'Lütfen Bir DataStore seçiniz', active: true }\n\n } else {\n this.dataStoresDropdownSettings.errorValues = { text: 'Lütfen Bir DataStore seçiniz', active: false }\n\n\n }\n if (this.widget.measures.length <= 0) {\n this.dataStoreColumnsDropdownSettings.errorValues = { text: 'Lütfen Bir Ölçü seçiniz', active: true }\n\n } else {\n this.dataStoreColumnsDropdownSettings.errorValues = { text: 'Lütfen Bir Ölçü seçiniz', active: false }\n\n\n }\n if (this.widget.dimensions.length <= 0) {\n this.dataStoreColumnsDropdownSettings.errorValues = { text: 'Lütfen Bir dimension seçiniz', active: true }\n } else {\n this.dataStoreColumnsDropdownSettings.errorValues = { text: 'Lütfen Bir dimension seçiniz', active: false }\n }\n if (this.widget.visualComponentId == '') {\n this.visualComponentsDropdownSettings.errorValues = { text: 'Lütfen Bir dimension seçiniz', active: true }\n } else {\n this.visualComponentsDropdownSettings.errorValues = { text: 'Lütfen Bir dimension seçiniz', active: false }\n\n }\n\n\n if (opentitleBox) {\n if (this.widget.dataStoreId == '' || this.widget.visualComponentId == '') {\n this.sweetalertService.open(this.translate.instant(\"ErrorMessages.MissinfFields\"), this.translate.instant(\"ErrorMessages.FillFields\"), 'error', this.translate.instant(\"Common.Done\"), (res) => { console.log(res) })\n return\n } else {\n this.filterScreen = false\n this.titleBoxVisible = true\n }\n }\n\n }\n\n applyFilter(closescreen: boolean) {\n this.showPreview()\n if (closescreen)\n this.filterScreen = false\n }\n\n toggleChange() {\n this.disablePreview = !this.disablePreview;\n if (this.disablePreview) {\n this.selectedPreviewScreen = 'widget'\n this.widgetPreviewData = null\n }\n else\n this.controlForPreview(this.widget)\n }\n\n @ViewChild('downloadLink') downloadLink: ElementRef;\n downloadLoading: boolean = false\n\n downloadWidget(type) {\n if (type == 'image') {\n this.downloadLoading = true\n var screen = document.getElementsByClassName('widget-preview')[0] as HTMLElement\n html2canvas(screen).then(canvas => {\n this.downloadLink.nativeElement.href = canvas.toDataURL('image/png');\n this.downloadLink.nativeElement.download = 'widget' + '.png';\n this.downloadLink.nativeElement.click();\n this.downloadLoading = false\n\n });\n } else {\n this.downloadLoading = true\n var sJson = JSON.stringify(this.widgetPreviewData.widgetData);\n this.downloadLink.nativeElement.href = \"data:text/json;charset=UTF-8,\" + encodeURIComponent(sJson)\n this.downloadLink.nativeElement.download = 'widget' + '.json';\n this.downloadLink.nativeElement.click();\n this.downloadLoading = false\n\n }\n\n }\n\n closeDialog() {\n this.dialogRef.close()\n }\n\n changeMeasureLabel(element: { item: any, inputValue: string }) {\n\n this.widget.measures.find(x => x.name == element.item.name).label = element.inputValue\n this.infoBadgeList = this.widget.measures.map(item => { return { name: item.label, detail: item, subTextKey: 'function', disableEdit: item.isCalculatedField == 1 ? true : false } })\n\n }\n\n\n closeFilterScreen(type?) {\n if (type && 'close') {\n this.filterScreen = false\n } else\n this.filterScreen = !this.filterScreen;\n\n this.titleBoxVisible = false\n if (!this.filterScreen && this.widget.filter.length > 0) {\n this.controlForPreview(this.widget)\n }\n }\n\n resetCode() {\n var selectedvisualcomp = this.visualComponents.find(x => x.visualComponentId == this.widget.visualComponentId)\n this.widget.code = selectedvisualcomp.code\n this.widget.customizeCode = 0\n }\n\n}\n","\n
\n
\n
\n {{ \"WidgetFormPage.DataPreview\" |translate}}\n
\n
\n {{\"WidgetFormPage.ChartPreview\" | translate}}\n
\n
\n
\n \n \n {{\"WidgetFormPage.DisablePreview\" |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 fullscreen_exit\n {{\"Common.ExpandAll\"|translate}}\n
\n
\n \n {{\"Common.ClearAll\"|translate}}\n
\n\n
\n\n \n
\n \n {{\"WidgetFormPage.UseQuery\"|translate}}\n \n \n \n \n
\n
\n\n \n
\n \n {{ 'ScriptForm.FormulaName' | translate }}\n \n \n {{'ScriptForm.CalculatedError'|translate}}\n \n {{ 'ScriptForm.Formula' | translate }}\n \n \n \n \n {{option.value}}\n \n \n *{{\"WidgetFormPage.CalculatedFieldDesc\"|translate}}\n
\n \n
\n\n
\n
\n
\n
\n
{{item.name}} : {{item.formula}}
\n\n
\n
\n edit\n clear\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 clear\n
\n
\n \n \n \n \n
\n \n \n \n \n
\n\n
0\">\n \n
\n
\n
\n
\n \n \n
\n
\n \n {{ 'WidgetFormPage.IgnoreKey' | translate\n }}\n \n \n
\n \n
\n
\n
0\"\n style=\"display: flex;flex-wrap: wrap;gap: 10px;\">\n
\n
{{item}}
\n \n
\n
\n\n
\n\n
\n \n
\n
\n \n {{ 'WidgetFormPage.Source' | translate\n }}\n\n \n\n \n \n {{ 'WidgetFormPage.Destination' | translate\n }}\n\n \n \n {{option.id}}\n \n \n \n
\n \n
\n
\n
0\"\n style=\"display: flex;flex-wrap: wrap;gap: 10px;\">\n
\n
\n \n {{'WidgetFormPage.Source'|\n translate}}\n \n {{item.source}}\n \n arrow_right_alt\n \n\n \n {{'WidgetFormPage.Destination'|\n translate}}\n\n {{item.destination}}\n \n\n
\n \n
\n
\n\n
\n \n
\n
\n \n {{ 'WidgetFormPage.TagValue' | translate\n }}\n \n \n
\n \n
\n
\n
0\"\n style=\"display: flex;flex-wrap: wrap;gap: 10px;\">\n
\n
{{item}}
\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 0\">\n
\n
\n
\n
\n \n
\n\n \n\n
\n
\n
\n \n \n
\n
\n \n
\n {{\"WidgetFormPage.PreviewText\"|translate}}\n
\n
\n {{\"WidgetFormPage.PreviewDisabled\"|translate}}\n
\n
\n
\n\n \n\n \n
\n
\n clear\n
\n
\n \n \n
\n
\n \n \n
\n
\n {{\n 'WidgetFormPage.DisableInMemoryCache' | translate }}\n
\n
\n {{\n 'WidgetFormPage.UseForFilter' | translate }}\n
\n
\n \n
\n\n
\n \n \n\n
\n \n\n\n \n\n
","import { Component, OnInit, Inject } from '@angular/core';\nimport { MAT_DIALOG_DATA, MatDialogRef } from '@angular/material/dialog';\nimport { BussionFilterDefinition } from 'src/app/models/responses/dataStoreResponse';\n\n@Component({\n selector: 'app-dashboard-filter',\n templateUrl: './dashboard-filter.component.html',\n styleUrls: ['./dashboard-filter.component.scss']\n})\nexport class DashboardFilterComponent implements OnInit {\n\n dimensions: any[] = [];\n field: any;\n values: any[] = [];\n filters: BussionFilterDefinition[] = [];\n filtersForList: string[] = [];\n initialFilters: BussionFilterDefinition[] = [];\n\n filter: BussionFilterDefinition = {\n fieldName: '',\n fieldValue: '',\n operator: ''\n }\n\n constructor(\n @Inject(MAT_DIALOG_DATA) public data: any,\n private dialogRef: MatDialogRef,\n ) { }\n\n ngOnInit(): void {\n if (this.data.dimensions) {\n this.dimensions = [...this.data.dimensions];\n this.filters = [...this.data.filters];\n this.initialFilters = this.data.initialFilters;\n this.filters.forEach(f => {\n let filterConcat = f.fieldName + \"**\" + f.fieldValue;\n this.filtersForList.push(filterConcat);\n })\n }\n }\n\n selectFilterItem(field: any, val: string): void {\n this.filter = {\n fieldName: field.name,\n fieldValue: val,\n operator: '='\n }\n let index = this.filters.findIndex(f => f.fieldName == this.filter.fieldName && f.fieldValue == this.filter.fieldValue);\n if (index != -1) {\n this.removeFilter(index);\n } else {\n this.addFilter();\n }\n\n }\n\n addFilter() {\n this.filters.push(this.filter);\n let filterConcat = this.filter.fieldName + \"**\" + this.filter.fieldValue;\n this.filtersForList.push(filterConcat);\n this.filter = {\n fieldName: '',\n fieldValue: '',\n operator: ''\n }\n }\n\n removeFilter(index) {\n this.filters.splice(index, 1);\n }\n\n saveFilters() {\n this.dialogRef.close(this.filters);\n }\n\n clearAllFilter() {\n this.filters = [];\n this.filtersForList = [];\n }\n\n resetFilter() {\n this.filters = this.data.initialFilters.slice();\n this.filtersForList = [];\n this.filters.forEach(f => {\n let filterConcat = f.fieldName + \"**\" + f.fieldValue;\n this.filtersForList.push(filterConcat);\n })\n }\n\n clearDimensionFilter(dimension: any) {\n let f = this.filters.filter(f => { return f.fieldName != dimension.name });\n let fx = this.filtersForList.filter(fx => {\n if (!fx.includes(dimension.name)) {\n return fx\n }\n });\n this.filtersForList = fx;\n this.filters = f;\n }\n\n}\n","\n\n\n
\n
\n \n
\n \n \n {{val}}\n \n \n
\n
\n
\n\n
\n\n
\n \n \n
\n
\n \n \n
\n
","import { Component, OnInit, Inject } from '@angular/core';\nimport { DashboardService } from 'src/app/services/dashboard/dashboard.service';\nimport { MAT_DIALOG_DATA, MatDialogRef, MatDialog } from '@angular/material/dialog';\nimport { NgxSpinnerService } from 'ngx-spinner';\nimport { Dashboard, Dimension } from 'src/app/models/responses/dashboardResponse';\nimport { ColorPalette } from 'src/app/models/responses/colorPaletteResponse';\nimport { ColorPaletteService } from 'src/app/services/color-palette/color-palette.service';\nimport { environment } from 'src/environments/environment';\nimport { BussionFilterDefinition, Columns } from 'src/app/models/responses/dataStoreResponse';\nimport { DataStoreService } from 'src/app/services/dataStore/data-store.service';\nimport { MatDatepickerInputEvent } from '@angular/material/datepicker';\nimport { UntypedFormGroup, UntypedFormControl, Validators } from '@angular/forms';\nimport { CoreService } from 'src/app/services/core/core.service';\nimport { TranslateService } from '@ngx-translate/core';\nimport { MatChipInputEvent } from '@angular/material/chips';\nimport { COMMA, ENTER } from '@angular/cdk/keycodes';\nimport { CodeEditorComponent } from 'src/app/components/code-editor/code-editor.component';\nimport { cerateCssFile, deleteCssFile } from 'src/app/core/utils';\nimport { Router } from '@angular/router';\nimport { languagePacts } from 'src/app/models/responses/languagePacts';\nimport { SystemParametersService } from 'src/app/services/system-parameters/system-parameters.service';\nimport { AuthService } from 'src/app/services/auth/auth.service';\n\ndeclare let monaco: any;\n\n@Component({\n selector: 'app-dashboard-form',\n templateUrl: './dashboard-form.component.html',\n styleUrls: ['./dashboard-form.component.scss']\n})\n\nexport class DashboardFormComponent implements OnInit {\n\n eeditorOptions = { theme: 'vs-dark', language: 'css', automaticLayout: true };\n\n pageForm: UntypedFormGroup;\n title: string = \"\";\n compareFunctionForAccessStatus = (o1: any, o2: any) => o1 === o2.toString();\n compareFunctionForMainDashboard = (o1: any, o2: any) => o1 === o2.toString();\n compareFunctionForDashStatus = (o1: any, o2: any) => o1 === o2.toString();\n compareFunctionForLanguage = (o1: any, o2: any) => o1 === o2.toString();\n\n isShownForm: boolean = false;\n color: string = \"\";\n isCreateForm: boolean = true;\n colorPalettes: ColorPalette[] = [];\n searchValues = [];\n\n dashboardFilterFields: Columns[] = [];\n\n queryFilter: BussionFilterDefinition = {\n fieldName: '',\n fieldValue: '',\n operator: ''\n }\n isShownQueryForm: boolean = false;\n queryFilterFieldType: string = \"System.String\";\n\n\n dashboard: Dashboard = {\n title: \"\",\n icon: \"\",\n dashboardStatus: 1,\n order: 1,\n description: \"\",\n layoutConfig: \"\",\n domain: \"\",\n access: 2,\n owner: \"\",\n creationDate: new Date(),\n updatedBy: \"\",\n updateDate: new Date(),\n colorPalette: \"\",\n filter: [],\n widgets: [],//Widget,\n dimensions: [], //Dimension,\n messages: [], //BussionMessage\n auditEnabled: 0,\n autoRefresh: 1,\n refreshInterval: 30,\n isMainDashboard: 1,\n hideBorders: 'false',\n gridSize: 12,\n contentLanguage: '',\n tags: \"\",\n css: \"\",\n hideAdvancedQueryPanel: 0,\n layout: '',\n colors: []\n }\n customcss: string = '0'\n\n defaultcss: string = `.widget-header .title { \n color: #1f1f1f;\n} \n\n.widget-header span { \n\nvisibility: inherit;\n\n} \n\n.widget-header .sub-title { \n\ncolor: #1f1f1f; \nfont-style: italic; \n\n} \n.toolbar{\n background-color: white !important;\n}\n.widget-container {\n background-color: white;\n }\n \n \n`\n\n tags: string[] = []\n languages: languagePacts[] = []\n\n\n constructor(\n @Inject(MAT_DIALOG_DATA) public data: any,\n private dialogRef: MatDialogRef,\n private dialog: MatDialog,\n private spinner: NgxSpinnerService,\n private dashboardService: DashboardService,\n private colorService: ColorPaletteService,\n private dataStoreService: DataStoreService,\n private coreService: CoreService,\n private translate: TranslateService,\n private router: Router,\n private systemService: SystemParametersService,\n private authService: AuthService\n ) { }\n\n ngOnInit(): void {\n this.pageForm = new UntypedFormGroup({\n title: new UntypedFormControl(this.dashboard.title, [Validators.required]),\n refreshInterval: new UntypedFormControl(this.dashboard.refreshInterval, [Validators.required, Validators.min(5)]),\n contentLanguage: new UntypedFormControl(this.dashboard.contentLanguage, [Validators.required]),\n description: new UntypedFormControl(this.dashboard.description, []),\n });\n this.tags = []\n let currentTags = this.data?.dashboard?.tags?.split(' ')\n\n currentTags = currentTags?.filter(x => x !== '')\n for (var i = 0; i < currentTags.length; i++) {\n this.tags.push(currentTags[i])\n }\n\n\n this.title = this.data.type == 'update' ? this.translate.instant(\"DashboardFormPage.TitleUpdate\") : this.translate.instant(\"DashboardFormPage.TitleCreate\");\n this.isCreateForm = this.data.type == 'update' ? false : true;\n if (this.data.dashboard) {\n this.dashboard = Object.assign({}, this.data.dashboard);\n this.dashboard.icon = environment.imageUrl + this.dashboard.icon;\n this.setFilterList(this.dashboard.dimensions);\n }\n\n this.customcss = this.dashboard.css == \"\" ? '0' : \"1\"\n\n\n // this.getColorPalettes()\n this.getLanguages()\n }\n\n // getColorPalettes() {\n // this.colorService.getColorPalettes().subscribe(result => {\n // this.colorPalettes = result;\n // });\n // }\n\n getLanguages() {\n this.systemService.getLanguagePacts().subscribe((res: languagePacts[]) => {\n this.languages = res.filter(x => x.type.toLowerCase().includes('client'))\n })\n }\n\n upsertDashboard(isSaveAs: boolean) {\n\n if (this.tags.length == 0) {\n this.dashboard.tags = \"\"\n }\n var concatstring = ''\n for (var i = 0; i < this.tags.length; i++) {\n concatstring = concatstring.concat(this.tags[i], ' ')\n this.dashboard.tags = concatstring\n }\n\n if (this.pageForm.invalid) {\n this.coreService.showFormFillError();\n return;\n }\n this.spinner.show();\n // this.dashboard.icon = this.dashboard.icon.split(',')[1];\n this.dashboard.dashboardId = isSaveAs ? \"\" : this.dashboard.dashboardId;\n\n if (this.customcss == \"0\") {\n this.dashboard.css = \"\"\n } else {\n if (this.dashboard.css.length < 2) {\n this.dashboard.css = this.defaultcss\n }\n }\n\n this.dashboardService.upsertDashboard(this.dashboard).subscribe(result => {\n if (result) {\n this.spinner.hide();\n this.dialogRef.close(true);\n if (!this.dashboard.dashboardId)\n this.router.navigate(['landing/dashboard/designer', result.object]);\n }\n\n });\n }\n\n completeJson(event: any) {\n\n const input = event.target; // input elementini al\n\n if (!input.files || input.files.length === 0) {\n console.error(\"Dosya seçilmedi.\");\n return;\n }\n\n const selectedFile = input.files[0]; // İlk seçilen dosyayı alın\n\n const reader = new FileReader();\n var jsonData = ''\n\n reader.onload = (e) => {\n const fileContent: string | ArrayBuffer = e.target.result; // Dosya içeriğini alın\n try {\n jsonData = JSON.parse(fileContent as string); // JSON dosyasını ayrıştırın\n console.log(\"JSON dosyasının içeriği:\", jsonData);\n Object.assign(this.dashboard, jsonData)\n this.dashboard.dashboardId = ''\n } catch (error) {\n console.error(\"JSON dosyası ayrıştırılamadı:\", error);\n }\n };\n\n\n reader.readAsText(selectedFile); // Dosyayı metin olarak okuyun\n }\n\n uploadIconImage(fileInput: any) {\n let file = fileInput.target.files[0];\n if (file.size > 3145728) {\n this.coreService.showErrorMessage(this.translate.instant(\"ErrorMessages.SmallPhoto\"));\n return;\n }\n var mimeType = file.type;\n if (mimeType.match(/image\\/*/) == null) {\n this.coreService.showErrorMessage(this.translate.instant(\"ErrorMessages.WrongFormatPhoto\"));\n return;\n }\n\n var reader = new FileReader();\n reader.readAsDataURL(file);\n reader.onload = (_event) => {\n this.dashboard.icon = reader.result;\n }\n }\n\n addFilter(filter: BussionFilterDefinition) {\n this.dashboard.filter = [...this.dashboard.filter, filter]\n this.isShownQueryForm = false;\n this.queryFilter = {\n fieldName: '',\n fieldValue: '',\n operator: ''\n }\n }\n addOnBlur = true;\n readonly separatorKeysCodes = [ENTER, COMMA] as const;\n\n add(event: MatChipInputEvent): void {\n const value = (event.value || '').trim();\n const isAvailable = this.tags.some(x => x == value)\n if (value && !isAvailable) {\n this.tags.push(value);\n\n // Clear the input value\n event.input.value = ''\n } else {\n this.coreService.showFormFillError(this.translate.instant(\"FilterComponent.SameValue\"))\n }\n\n }\n\n remove(tag: string): void {\n this.tags = this.tags.filter(x => x !== tag)\n }\n\n openBiggerEditor() {\n const dialogRef = this.dialog.open(CodeEditorComponent, {\n height: 'auto',\n width: '90%',\n data: {\n code: this.dashboard.css,\n },\n });\n\n\n dialogRef.afterClosed().subscribe(result => {\n if (result) {\n this.dashboard.css = result;\n }\n });\n }\n\n setFilterList(list: Dimension[]) {\n this.dashboardFilterFields = list.map(d => {\n let f: Columns = {\n fieldName: d.name,\n fieldType: d.type,\n fieldFilter: 1,\n tags:'',\n visibleName:''\n }\n return f\n });\n }\n\n deleteQuery(query: any) {\n\n let index = this.dashboard.filter.findIndex(x => {\n return x.fieldName === query.fieldName && x.operator === query.operator && x.fieldValue === query.fieldValue;\n });\n if (index !== -1) {\n this.dashboard.filter.splice(index, 1);\n }\n\n }\n\n searchValuesForQueryFilter(searchText: string) {\n if (searchText.length < 2) { return };\n /* this.dataStoreService.getValuesForFieldByUniverse(this.dataStore.node, this.dataStore.universe, this.dataStore.collection, this.queryFilter.fieldName, searchText).subscribe(result => {\n this.searchValues = result;\n }) */\n }\n\n filterFieldSelected(fieldName: string) {\n this.queryFilter.fieldValue = '';\n this.queryFilter.operator = '';\n let dimension = this.dashboard.dimensions.find(c => c.name == fieldName);\n this.searchValues = dimension.value;\n //this.queryFilterFieldType = column.fieldType;\n }\n\n dateSelected(date: MatDatepickerInputEvent) {\n this.queryFilter.fieldValue = date.value.toISOString();\n }\n\n editorInit(eventInit: any) {\n (window as any).monaco.languages.typescript.javascriptDefaults.setDiagnosticsOptions({\n noSemanticValidation: true,\n noSyntaxValidation: true\n });\n\n (window as any).monaco.languages.typescript.javascriptDefaults.setCompilerOptions({\n target: monaco.languages.typescript.ScriptTarget.ES6,\n allowNonTsExtensions: true\n });\n\n // this.getGlobalFunctionDefinitions();\n\n }\n\n}","\n\n\n \n \n
\n
\n \n
\n \n
\n \n \n
\n \n {{ 'DashboardFormPage.Title' | translate }}\n \n \n
\n\n \n {{ 'DashboardFormPage.Description' | translate }}\n \n \n
\n\n \n \n {{ 'DashboardFormPage.ContentLanguage' | translate }}\n \n {{item.name}}\n English\n Türkçe\n \n \n
\n
\n \n {{ 'DashboardFormPage.isCustomCss' | translate }}\n \n Yes\n No\n \n \n
\n\n \n {{ 'DashboardFormPage.isMainDashboard' | translate }}\n \n Yes\n No\n \n \n\n \n {{ 'DashboardFormPage.Access' | translate }}\n \n Private\n Public\n Open\n \n \n
\n\n \n {{ 'DashboardFormPage.Status' | translate }}\n \n Active\n Passive\n \n \n
\n\n\n\n \n\n \n {{ 'DashboardFormPage.HideBorders' | translate }}\n \n {{ 'Common.Visible' | translate }}\n {{ 'Common.Hide' | translate }}\n \n \n\n \n {{'DashboardFormPage.GridSize' | translate}}\n \n \n\n \n {{ 'DashboardFormPage.Audit' | translate }}\n \n {{ 'Common.Yes' | translate }}\n {{ 'Common.No' | translate }}\n \n \n
\n\n \n {{ 'DashboardFormPage.AutoRefresh' | translate }}\n \n {{ 'Common.Yes' | translate }}\n {{ 'Common.No' | translate }}\n \n \n
\n\n
\n \n {{ 'DashboardFormPage.RefreshInterval' | translate }}\n \n \n {{ 'DashboardFormPage.IntervalErrorMessage' | translate }}\n \n \n
\n
\n\n \n {{ 'DashboardFormPage.Tags' | translate }}\n \n \n {{item}}\n \n \n \n \n \n
\n\n\n \n {{ 'DashboardFormPage.Owner' | translate }}\n \n \n
\n\n \n {{ 'DashboardFormPage.CreateDate' | translate }}\n \n \n
\n\n \n {{ 'DashboardFormPage.UpdatedBy' | translate }}\n \n \n
\n\n \n {{ 'DashboardFormPage.UpdateTime' | translate }}\n \n \n
\n\n \n \n\n\n \n \n\n
0\">\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","import { Component, EventEmitter, OnInit, Output, ViewChild } from '@angular/core';\nimport { DashboardService } from 'src/app/services/dashboard/dashboard.service';\nimport { MatTableDataSource } from '@angular/material/table';\nimport { MatPaginator } from '@angular/material/paginator';\nimport { MatSort } from '@angular/material/sort';\nimport { MatDialog } from '@angular/material/dialog';\nimport { NgxSpinnerService } from 'ngx-spinner';\nimport { ActionDialogComponent } from 'src/app/components/action-dialog/action-dialog/action-dialog.component';\nimport { Dashboard } from 'src/app/models/responses/dashboardResponse';\nimport { DashboardFormComponent } from './dashboard-form/dashboard-form.component';\nimport { environment } from 'src/environments/environment';\nimport { ModalService } from 'src/app/services/modal/modal.service';\nimport { TranslateService } from '@ngx-translate/core';\nimport { Router } from '@angular/router';\n\n@Component({\n selector: 'app-dashboard',\n templateUrl: './dashboard.component.html',\n styleUrls: ['./dashboard.component.scss']\n})\nexport class DashboardComponent implements OnInit {\n\n\n baseUrl = environment.imageUrl;\n displayedColumns: string[] = ['icon', 'title', 'dashboardId', 'description', 'action'];\n displayedColumnsName: string[] = [this.translate.instant(\"Common.Icon\"), this.translate.instant(\"DashboardPage.DashTitle\"), this.translate.instant(\"DashboardPage.DashboardId\"), this.translate.instant(\"DashboardPage.Description\"), this.translate.instant(\"DashboardPage.Action\")];\n dashboards: Dashboard[] = [];\n\n constructor(\n private dialog: MatDialog,\n private spinner: NgxSpinnerService,\n private dashboardService: DashboardService,\n private modalService: ModalService,\n private translate: TranslateService,\n private router: Router\n ) { }\n\n ngOnInit(): void {\n this.getDashboards();\n }\n\n getDashboards() {\n this.dashboardService.getAllDashboards().subscribe(result => {\n this.dashboards = result;\n });\n }\n\n deleteDashboard(dashboard: Dashboard) {\n this.modalService.openDeleteConfirm().subscribe(result => {\n if (result === true) {\n this.spinner.show();\n this.dashboardService.deleteDashboard(dashboard).subscribe(result => {\n this.spinner.hide();\n this.getDashboards();\n })\n }\n });\n }\n\n openDashboard(event: any) {\n let data = {\n type: event.type as string,\n dashboard: event.data as Dashboard\n }\n this.modalService.openModal(data, DashboardFormComponent, 'auto', '1000px').subscribe(result => {\n if (result === true) {\n this.getDashboards();\n }\n });\n }\n\n open(event: any) {\n this.router.navigate(['landing/dashboard/designer', event.dashboardId]);\n }\n\n exportDashboard(dashboard: Dashboard) {\n this.downloadJson(dashboard)\n }\n\n downloadJson(dashboard: Dashboard) {\n var sJson = JSON.stringify(dashboard);\n var element = document.createElement('a');\n element.setAttribute('href', \"data:text/json;charset=UTF-8,\" + encodeURIComponent(sJson));\n element.setAttribute('download', dashboard.title + \".json\");\n element.style.display = 'none';\n document.body.appendChild(element);\n element.click(); // simulate click\n document.body.removeChild(element);\n }\n\n}\n","
\n \n \n
","import { Component, OnInit, Inject, ElementRef, ViewChild } from '@angular/core';\nimport { DataStore, BussionFilterDefinition, preparedStatement, Columns } from 'src/app/models/responses/dataStoreResponse';\nimport { MAT_DIALOG_DATA, MatDialogRef } from '@angular/material/dialog';\nimport { DataStoreService } from 'src/app/services/dataStore/data-store.service';\nimport { NodeService } from 'src/app/services/node/node.service';\nimport { Node } from 'src/app/models/responses/nodeResponse';\nimport { MatDatepickerInputEvent } from '@angular/material/datepicker';\nimport { UntypedFormGroup, UntypedFormControl, Validators } from '@angular/forms';\nimport { CoreService } from 'src/app/services/core/core.service';\n\nimport { ModalService } from 'src/app/services/modal/modal.service';\nimport { TranslateService } from '@ngx-translate/core';\n\n@Component({\n selector: 'app-datastore-form',\n templateUrl: './datastore-form.component.html',\n styleUrls: ['./datastore-form.component.scss']\n})\nexport class DatastoreFormComponent implements OnInit {\n\n pageForm: UntypedFormGroup;\n title: string = \"\";\n isShownQueryForm: boolean = false;\n nodes: Node[] = [];\n universes: string[] = [];\n collections: string[] = [];\n columns: any[] = [];\n searchValues = [];\n selectedNode: Node;\n visibleKey: boolean = false\n querylists = { blacklist: [], whitelist: [], preparedQueryList: [] }\n\n selectedItem: preparedStatement = { statementId: '', query: '', name: '', type: 0, params: [] }\n queryFilter: BussionFilterDefinition = {\n fieldName: '',\n fieldValue: '',\n operator: ''\n }\n\n selectedDataPreviewColumns: Columns[] = []\n sampleDataForDataStore = []\n showTable: boolean = false\n\n queryFilterFieldType: string = \"System.String\";\n\n compareFunctionForColumns = (o1: any, o2: any) => o1.fieldName === o2.fieldName;\n\n isCreateForm: boolean = true;\n dataStore: DataStore = {\n name: \"\",\n description: \"\",\n createdBy: \"\",\n creationDate: new Date(),\n node: \"\",\n nodeId: \"\",\n userName: \"\",\n password: \"\",\n universe: \"\",\n collection: \"\",\n refCollection: \"\",\n type: \"\",\n lastUpdatedTime: new Date(),\n domain: \"\",\n query: [],\n columns: [],\n apiEncrypted: 0,\n apiEnable: 1,\n apiKey: '',\n wbListingEnable: 0,\n whiteLists: [],\n blackLists: [],\n preparedStatementEnable: 0,\n preparedStatement: [],\n plainQueryEnabled: 0\n }\n\n @ViewChild('staticqueryid') private staticqueryidref: ElementRef;\n @ViewChild('tagsModal') private tagsModal: any;\n selectedColumns: Columns\n\n\n constructor(\n @Inject(MAT_DIALOG_DATA) public data: any,\n private dialogRef: MatDialogRef,\n private dataStoreService: DataStoreService,\n private nodeService: NodeService,\n private coreService: CoreService,\n private translate: TranslateService,\n private modalService: ModalService\n ) { }\n\n ngOnInit(): void {\n this.title = this.data.type == 'update' ? this.translate.instant(\"DataStoreFormPage.TitleUpdate\") : this.translate.instant(\"DataStoreFormPage.TitleCreate\");\n if (this.data.dataStore) {\n this.isCreateForm = false;\n this.dataStore = Object.assign({}, this.data.dataStore);\n this.getUniverse();\n this.getCollections();\n this.getColumns();\n }\n\n this.getNodes();\n\n this.pageForm = new UntypedFormGroup({\n name: new UntypedFormControl(this.dataStore.name, [Validators.required]),\n });\n\n console.log('this.dataStore',this.dataStore)\n\n }\n\n controlPreparedStatementId(statementId: string) {\n return this.dataStore.preparedStatement.some(x => x.statementId == statementId)\n }\n\n createPreparedStatementId(preparedstatement: preparedStatement) {\n //to-do\n var statementId = (Math.floor(1000 + Math.random() * 9000)).toString();\n if (this.controlPreparedStatementId(statementId)) {\n this.createPreparedStatementId(preparedstatement)\n } else {\n return { ...preparedstatement, statementId: statementId }\n }\n\n }\n\n private getNodes() {\n this.nodeService.getDataNodes().subscribe(result => {\n this.nodes = result;\n this.nodes.forEach(n => {\n if (n.nodeId == this.dataStore.nodeId) {\n this.selectedNode = n;\n }\n })\n // console.log(this.nodes,this.dataStore,this.selectedNode)\n\n });\n }\n\n nodeSelection(n: Node) {\n this.dataStore.nodeId = n.nodeId;\n this.dataStore.node = n.host;\n this.dataStore.collection = \"\";\n this.dataStore.universe = \"\";\n this.dataStore.columns = []\n\n this.universes = [];\n this.collections = [];\n this.columns = [];\n\n this.getUniverse();\n }\n\n private getUniverse() {\n this.dataStoreService.getUniverses(this.dataStore.nodeId).subscribe(result => {\n this.universes = result;\n });\n }\n\n universeSelection() {\n this.dataStore.collection = \"\";\n this.dataStore.columns = []\n this.collections = [];\n this.columns = [];\n\n this.getCollections();\n }\n\n private getCollections() {\n this.dataStoreService.getCollections(this.dataStore.nodeId, this.dataStore.universe).subscribe(result => {\n this.collections = result;\n });\n }\n\n collectionSelection() {\n this.dataStore.columns = []\n this.columns = [];\n\n this.getColumns();\n }\n\n private getColumns() {\n this.dataStoreService.getColumnsByNodeId(this.dataStore.nodeId, this.dataStore.universe, this.dataStore.collection).subscribe(result => {\n\n this.columns = result.map(item => {\n var slectedcol = this.dataStore.columns.find(x => x.fieldName == item.fieldName)\n if (slectedcol) {\n return slectedcol\n } else {\n return item\n }\n\n });\n\n if (!this.data.dataStore) {\n this.dataStore.columns = this.columns\n }\n });\n }\n\n upsertDataStore() {\n this.dataStore.whiteLists = this.querylists.whitelist.concat(this.dataStore.whiteLists)\n this.dataStore.blackLists = this.querylists.blacklist.concat(this.dataStore.blackLists)\n this.dataStore.preparedStatement = this.querylists.preparedQueryList.concat(this.dataStore.preparedStatement)\n\n if (this.pageForm.invalid) {\n this.coreService.showFormFillError();\n return;\n }\n this.dataStoreService.upsertDataStore(this.dataStore).subscribe(result => {\n this.dialogRef.close(true);\n });\n }\n\n check(event: string, property: string) {\n\n this.dataStore[property] = event ? 1 : 0\n\n }\n\n updatedList: any[] = []\n\n clearArea() {\n this.staticqueryidref.nativeElement.value = ''\n this.selectedItem = { statementId: '', query: '', type: 0, params: [], name: '' }\n }\n\n addElement(event: any, listtype: string) {\n if (listtype == 'preparedQueryList') {\n if (this.selectedItem.statementId !== '') {\n this.dataStore.preparedStatement.find(x => x.statementId == this.selectedItem.statementId).query = event.target.value.replace('\\n', '')\n event.target.value = ''\n this.updatedList.push(this.selectedItem.statementId)\n this.selectedItem = { statementId: '', query: '', type: 0, params: [], name: '' }\n } else {\n var preparedstatement\n if (this.staticqueryidref.nativeElement.value && this.staticqueryidref.nativeElement.value !== '') {\n if (this.controlPreparedStatementId(this.staticqueryidref.nativeElement.value)) {\n this.modalService.openConfirm().subscribe(result => {\n\n });\n return\n }\n preparedstatement = { params: '', query: event.target.value.replace('\\n', ''), statementId: this.staticqueryidref.nativeElement.value }\n this.staticqueryidref.nativeElement.value = ''\n }\n else\n preparedstatement = this.createPreparedStatementId({ params: '', query: event.target.value.replace('\\n', ''), statementId: '', name: this.selectedItem.name, type: this.selectedItem.type })\n\n this.querylists[listtype].push(preparedstatement)\n event.target.value = ''\n }\n\n } else {\n this.querylists[listtype].push(event.target.value.replace('\\n', ''))\n event.target.value = ''\n }\n\n }\n\n editOldElement(item: preparedStatement) {\n this.selectedItem = item\n }\n\n deleteElement(item: string, listtype: string) {\n this.querylists[listtype] = this.querylists[listtype].filter(x => x !== item)\n }\n\n deleteOldElement(item: string, listtype: string) {\n this.dataStore[listtype] = this.dataStore[listtype].filter(x => x !== item)\n }\n\n addFilter(filter: BussionFilterDefinition) {\n this.dataStore.query.push(filter);\n this.isShownQueryForm = false;\n this.queryFilter = {\n fieldName: '',\n fieldValue: '',\n operator: ''\n }\n }\n\n\n\n deleteQuery(query: any) {\n\n let index = this.dataStore.query.findIndex(x => {\n return x.fieldName === query.fieldName && x.operator === query.operator && x.fieldValue === query.fieldValue;\n });\n if (index !== -1) {\n this.dataStore.query.splice(index, 1);\n this.dataStore.query = this.dataStore.query;\n }\n\n }\n\n searchValuesForQueryFilter(searchText: string) {\n if (searchText.length < 2) { return };\n this.dataStoreService.getValuesForFieldByUniverse(this.dataStore.node, this.dataStore.universe, this.dataStore.collection, this.queryFilter.fieldName, searchText).subscribe(result => {\n this.searchValues = result;\n })\n }\n\n filterFieldSelected(fieldName: string) {\n this.queryFilter.fieldValue = '';\n this.queryFilter.operator = '';\n let column = this.dataStore.columns.find(c => c.fieldName == fieldName);\n this.queryFilterFieldType = column.fieldType;\n }\n\n dateSelected(date: MatDatepickerInputEvent) {\n this.queryFilter.fieldValue = date.value.toISOString();\n }\n\n notifyDs() {\n if (this.dataStore.dataStoreId)\n this.dataStoreService.notifyDatastore(this.dataStore.dataStoreId).subscribe(res => {\n if (res)\n this.coreService.showSuccessMessage(this.translate.instant('Common.Success'))\n else\n this.coreService.showErrorMessage(this.translate.instant('Common.Error'))\n\n })\n\n }\n\n\n getsampleData() {\n this.showTable = true\n if (this.selectedDataPreviewColumns.length <= 0 || this.sampleDataForDataStore.length <= 0) {\n this.dataStoreService.getSampleData(this.dataStore.dataStoreId).subscribe(sampleres => {\n this.dataStoreService.getColomnsForDataStore(this.dataStore.dataStoreId).subscribe(res => {\n this.selectedDataPreviewColumns = res\n this.sampleDataForDataStore = sampleres\n })\n })\n }\n\n }\n\n\n editTags(event: Event, column: Columns) {\n event.stopPropagation();\n\n this.selectedColumns = column\n if (this.selectedColumns) {\n this.modalService.openModal('', this.tagsModal, '25%', '30%').subscribe(res => {\n if (res) {\n this.dataStore.columns.find(x => x.fieldName == this.selectedColumns.fieldName).tags = this.selectedColumns.tags\n }\n })\n }\n }\n\n}\n","\n\n
\n \n\n
\n \n {{ \"DataStoreFormPage.Name\" | translate }}\n \n \n
\n\n \n {{ \"DataStoreFormPage.Description\" | translate }}\n \n \n
\n\n \n {{ \"DataStoreFormPage.CreatedBy\" | translate }}\n \n \n
\n\n \n {{ \"DataStoreFormPage.CreateTime\" | translate }}\n \n \n
\n\n \n {{ \"DataStoreFormPage.Nodes\" | translate }}\n \n \n {{ node.name }}\n \n \n \n
\n\n \n {{ \"DataStoreFormPage.Type\" | translate }}\n \n Master\n View\n External\n Direct\n Query\n \n \n
\n\n \n {{ \"DataStoreFormPage.Universes\" | translate }}\n \n \n {{ universe }}\n \n \n \n
\n\n \n {{ \"DataStoreFormPage.Collections\" | translate }}\n \n \n {{ collection }}\n \n \n \n
\n\n \n {{ \"DataStoreFormPage.Columns\" | translate }}\n \n \n {{ itemds.fieldName }},\n \n \n
\n
\n \n {{ column.fieldName }}\n {{\n column.tags\n }}\n
\n \n
\n
\n \n
\n
\n\n
\n \n {{ \"DataStoreFormPage.Enable\" | translate }}\n \n
\n\n
\n
\n \n {{ \"DataStoreFormPage.EnablePlainQuery\" | translate }}\n \n
\n
\n \n \n {{ \"DataStoreFormPage.Encrypt\" | translate }}\n \n
\n
\n
\n \n {{ \"DataStoreFormPage.ApiKey\" | translate }}\n \n \n \n
\n
\n\n
\n \n {{ \"DataStoreFormPage.wbListingEnable\" | translate }}\n \n
\n
\n \n
\n \n \n \n \n {{ \"DataStoreFormPage.whiteList\" | translate }}\n \n \n \n {{\n \"DataStoreFormPage.createwhitelist\" | translate\n }}\n \n \n
\n {{\n \"DataStoreFormPage.new\" | translate\n }}\n {{ item }}\n highlight_off\n
\n \n {{ i + 1 }}-) {{ item }}\n highlight_off\n
\n \n \n \n
\n \n \n \n \n {{ \"DataStoreFormPage.blackList\" | translate }}\n \n \n \n {{\n \"DataStoreFormPage.createblacklist\" | translate\n }}\n \n \n
\n {{\n \"DataStoreFormPage.new\" | translate\n }}\n {{ item }}\n highlight_off\n
\n \n {{ i + 1 }}-) {{ item }}\n highlight_off\n
\n \n \n \n \n
\n
\n \n {{ \"DataStoreFormPage.preparedStatementEnable\" | translate }}\n \n
\n
\n \n
\n \n \n \n \n {{ \"DataStoreFormPage.queries\" | translate }}\n \n \n \n {{\n \"DataStoreFormPage.queryId\" | translate\n }}\n \n \n
\n
\n \n {{\n \"DataStoreFormPage.QueryName\" | translate\n }}\n \n \n \n {{\"DataStoreFormPage.Type\" | translate}}\n \n {{\"DataStoreFormPage.Read\" | translate}}\n {{\"DataStoreFormPage.Write\" | translate}}\n \n \n
\n
\n \n {{\n \"DataStoreFormPage.createQuery\" | translate\n }}\n \n \n
\n \n \n {{ \"Common.Clear\" | translate }}\n \n
\n \n {{\n \"DataStoreFormPage.new\" | translate\n }}\n ( {{ item.statementId }} )\n {{item.name}}\n {{ item.query }}\n highlight_off\n \n \n {{ \"DataStoreFormPage.updated\" | translate }}\n {{ i + 1 }}-( {{ item.statementId }} )\n {{item.name}}\n {{ item.query }}\n highlight_off\n edit\n \n \n \n \n \n \n\n \n \n\n \n\n \n \n\n
0\">\n \n
\n
\n \n
\n \n
\n
\n\n \n
\n \n {{ \"DataStoreFormPage.DataPreview\" | translate }}\n
\n
\n {{ \"Common.Form\" | translate }}\n
\n \n \n \n {{ \"Common.Update\" | translate }}\n \n \n {{ \"Common.Create\" | translate }}\n \n
\n\n\n

\n {{ \"DataStoreFormPage.Name\" | translate }} : {{ selectedColumns.fieldName }}\n

\n \n \n {{ \"DataStoreFormPage.Description\" | translate }}\n \n \n \n \n \n \n \n
\n","import { Component, OnInit, ViewChild } from '@angular/core';\nimport { MatDialog } from '@angular/material/dialog';\nimport { NgxSpinnerService } from 'ngx-spinner';\nimport { DataStoreService } from 'src/app/services/dataStore/data-store.service';\nimport { DataStore } from 'src/app/models/responses/dataStoreResponse';\nimport { DatastoreFormComponent } from './datastore-form/datastore-form.component';\nimport { ModalService } from 'src/app/services/modal/modal.service';\nimport { TranslateService } from '@ngx-translate/core';\nimport { CustomModalComponent } from 'src/app/components/modals/custom-modal/custom-modal.component';\nimport { IndexFormComponent } from './index-form/index-form.component';\n\n@Component({\n selector: 'app-datastore',\n templateUrl: './datastore.component.html',\n styleUrls: ['./datastore.component.scss']\n})\nexport class DatastoreComponent implements OnInit {\n\n displayedColumns: string[] = ['icon', 'dataStoreId', 'name', 'description', 'node', 'universe', 'collection', 'action'];\n displayedColumnsName: string[] = [this.translate.instant(\"Common.Icon\"), \"DataStore Id\", this.translate.instant(\"DataStorePage.Name\"), this.translate.instant(\"DataStorePage.Description\"), this.translate.instant(\"DataStorePage.Node\"), this.translate.instant(\"DataStorePage.Universe\"), this.translate.instant(\"DataStorePage.Collection\"), this.translate.instant(\"DataStorePage.Action\")];\n dataStores: DataStore[] = [];\n\n actionButtonsList: { icon: string, text: string, actionFunction: Function }[] = [{ icon: 'hash', text: 'Edit', actionFunction: (element) => this.openIndexForm(element) }]\n\n\n constructor(\n private spinner: NgxSpinnerService,\n private dataStoreService: DataStoreService,\n private modalService: ModalService,\n private translate: TranslateService\n ) { }\n\n ngOnInit(): void {\n this.getDatastores()\n }\n\n getDatastores() {\n this.dataStoreService.getDatasources().subscribe(result => {\n this.dataStores = result;\n this.dataStores.map(d => {\n d.icon = \"/BussionImages/Pictures/DataStore.png\";\n return d;\n })\n });\n }\n\n deleteDataStoreComponent(dataStore: DataStore) {\n this.modalService.openDeleteConfirm().subscribe(result => {\n if (result === true) {\n this.spinner.show();\n this.dataStoreService.deleteDataStore(dataStore).subscribe(result => {\n this.spinner.hide();\n this.getDatastores();\n });\n }\n });\n }\n\n openDataStoreComponent(event: any) {\n let data = {\n type: event.type as string,\n dataStore: event.data as DataStore\n }\n this.modalService.openModal(data, DatastoreFormComponent, 'auto', '1000px').subscribe(result => {\n if (result === true) {\n this.getDatastores();\n }\n });\n }\n\n\n openIndexForm(element) {\n \n this.modalService.openModal({dataStore:element}, IndexFormComponent, '70%', '50%','overflow-hidden').subscribe(result => {\n if (result === true) {\n this.getDatastores();\n }\n });\n }\n\n\n}\n","
\n \n \n
","import { Component, Inject, OnInit } from '@angular/core';\nimport { MAT_DIALOG_DATA, MatDialogRef } from '@angular/material/dialog';\nimport { MatSelectionListChange } from '@angular/material/list';\nimport { tap } from 'rxjs/operators';\nimport { DataStore } from 'src/app/models/responses/dataStoreResponse';\nimport { CoreService } from 'src/app/services/core/core.service';\nimport { DataStoreService } from 'src/app/services/dataStore/data-store.service';\n\n@Component({\n selector: 'app-index-form',\n templateUrl: './index-form.component.html',\n styleUrls: ['./index-form.component.scss']\n})\nexport class IndexFormComponent implements OnInit {\n\n compareFunctionForSelectList = (o1: any, o2: any) => o1 === o2;\n columns: any[] = [];\n loadingDatastores: boolean = false\n\n columnsForList = []\n indexedColumnsForList = []\n indexedColumnsForListinitValue = []\n dropIndexColumnList = []\n\n constructor(@Inject(MAT_DIALOG_DATA) public data: { dataStore: DataStore, dataStoreId: string },\n public dialogRef: MatDialogRef,\n private dataStoreService: DataStoreService, private coreService: CoreService) { }\n\n ngOnInit(): void {\n\n if (this.data.dataStore == null) {\n this.getDataStoreById()\n } else {\n this.getColumnInfo()\n }\n\n }\n\n getColumnInfo() {\n this.getColumns().toPromise().then(res => {\n this.getIndexedColumns()\n });\n }\n\n private getDataStoreById() {\n this.loadingDatastores = true\n this.dataStoreService.getDatasourceById(this.data.dataStoreId).subscribe(result => {\n this.loadingDatastores = false\n if (this.data.dataStoreId) {\n this.data.dataStore = result\n this.getColumnInfo()\n }\n });\n }\n\n\n private getColumns() {\n return this.dataStoreService.getColumnsByNodeId(this.data.dataStore.nodeId, this.data.dataStore.universe, this.data.dataStore.collection).pipe(\n tap(result => {\n this.columns = result;\n this.data.dataStore.columns = this.columns.filter(x => x.fieldName !== undefined)\n })\n );\n }\n\n getIndexedColumns() {\n this.indexedColumnsForList = []\n\n this.dataStoreService.getIndexColumns(this.data.dataStore.dataStoreId).subscribe(res => {\n res.map(col => {\n var indexnameprefix = `idx_${this.data.dataStore.collection}_`\n var selectedCol = this.data.dataStore.columns.find(x => indexnameprefix + x.fieldName == col)\n\n if (selectedCol) {\n this.indexedColumnsForList.push(selectedCol)\n this.indexedColumnsForListinitValue.push(selectedCol)\n } else {\n var externalcolumn = col\n\n if (col.includes(indexnameprefix)) {\n externalcolumn = col.split(indexnameprefix)[1]\n this.data.dataStore.columns.push({ fieldFilter: 0, fieldName: externalcolumn, fieldType: '', tags: '', visibleName: '' })\n }\n\n this.indexedColumnsForListinitValue.push({ fieldName: externalcolumn, fieldFilter: 0, fieldType: \"System.String\", visibleName: \"\" })\n this.indexedColumnsForList.push({ fieldName: externalcolumn, fieldFilter: 0, fieldType: \"System.String\", visibleName: \"\" })\n }\n\n })\n\n this.columnsForList = this.findDifference(this.columns, this.indexedColumnsForList)\n })\n }\n\n dropIndexes() {\n return this.dataStoreService.DropIndex(this.data.dataStore.dataStoreId, this.dropIndexColumnList)\n .subscribe(res => {\n if (res.result) {\n this.coreService.showSuccessMessage(res.message)\n this.dialogRef.close(true);\n } else {\n this.coreService.showErrorMessage(res.message)\n\n }\n })\n }\n\n\n createIndexes() {\n var currentindexed = this.indexedColumnsForList.map(item => { return item.fieldName })\n var initindexed = this.indexedColumnsForListinitValue.map(item => { return item.fieldName })\n\n var unselected = this.columnsForList.map(item => { return item.fieldName })\n var newaddedList = []\n\n let differentElements = this.findDifference(currentindexed, initindexed);\n differentElements.map(item => {\n if (!currentindexed.some(x => x == item)) {\n this.dropIndexColumnList.push(item)\n } else {\n newaddedList.push(item)\n }\n })\n if (this.dropIndexColumnList.length > 0) {\n this.dropIndexes()\n }\n\n\n\n if (newaddedList.length > 0) {\n this.dataStoreService.createIndex(this.data.dataStore.dataStoreId, currentindexed).subscribe(res => {\n if (res.result) {\n this.coreService.showSuccessMessage(res.message)\n this.dialogRef.close(true)\n } else {\n this.coreService.showErrorMessage(res.message)\n\n }\n })\n }\n }\n\n selectionChangeSelect(event: MatSelectionListChange) {\n\n\n this.columnsForList = this.columnsForList.filter(x => x.fieldName !== event.options[0].value)\n\n this.indexedColumnsForList.unshift({ fieldName: event.options[0].value, fieldFilter: 0, fieldType: \"System.String\", visibleName: \"\" })\n }\n\n selectionChangeUnSelect(event: MatSelectionListChange) {\n\n this.columnsForList.unshift({ fieldName: event.options[0].value, fieldFilter: 0, fieldType: \"System.String\", visibleName: \"\" })\n\n this.indexedColumnsForList = this.indexedColumnsForList.filter(x => x.fieldName !== event.options[0].value)\n }\n\n\n\n findDifference(arr1, arr2) {\n let difference = arr1.filter(x => !arr2.includes(x)).concat(arr2.filter(x => !arr1.includes(x)));\n return difference;\n }\n\n}\n","\n
\n \n\n
\n \n {{ 'DataStoreFormPage.Name' | translate }}\n \n \n\n \n {{ 'DataStoreFormPage.Type' | translate }}\n \n\n \n\n \n {{ 'DataStoreFormPage.Universes' | translate }}\n \n\n \n\n \n {{ 'DataStoreFormPage.Collections' | translate }}\n \n\n \n\n\n
\n
\n {{\n 'DataStoreFormPage.Columns' | translate }}\n \n \n
\n {{column.fieldName}}\n {{column.fieldType}}\n
\n\n
\n
\n
\n
\n\n {{\n 'DataStoreFormPage.IndexedColumns' | translate }}\n \n \n
\n {{column.fieldName}}\n {{column.fieldType}}\n
\n\n
\n
\n
\n
\n\n\n\n\n
\n
\n \n \n
\n
\n\n\n
","import { Component, ElementRef, Inject, OnInit, ViewChild } from \"@angular/core\";\nimport { FormControl, UntypedFormControl, UntypedFormGroup, Validators } from \"@angular/forms\";\nimport { MatDialogRef, MAT_DIALOG_DATA } from \"@angular/material/dialog\";\nimport { MatTabChangeEvent } from \"@angular/material/tabs\";\nimport { TranslateService } from \"@ngx-translate/core\";\nimport { NgxSpinnerService } from \"ngx-spinner\";\nimport { App } from \"src/app/models/responses/appsResponse\";\nimport { ColorPalette } from \"src/app/models/responses/colorPaletteResponse\";\nimport { Dashboard } from \"src/app/models/responses/dashboardResponse\";\nimport { Group } from \"src/app/models/responses/groupsResponse\";\nimport { AuthService } from \"src/app/services/auth/auth.service\";\nimport { ColorPaletteService } from \"src/app/services/color-palette/color-palette.service\";\nimport { CoreService } from \"src/app/services/core/core.service\";\nimport { DashboardService } from \"src/app/services/dashboard/dashboard.service\";\nimport { DeployAppService } from \"src/app/services/deploy-app/deploy-app.service\";\nimport { GroupService } from \"src/app/services/group/group.service\";\n\n@Component({\n selector: 'app-create-app',\n templateUrl: './create-app.component.html',\n styleUrls: ['./create-app.component.scss']\n})\n\nexport class CreateAppComponent implements OnInit {\n isCreateForm: boolean = true;\n title: string = '';\n appForm: UntypedFormGroup;\n deployForm: UntypedFormGroup;\n selectedApp: App\n appStatus: number = 0\n appAccess: string\n appOpenerMethod: string\n image: any = ''\n selectedTabIndex: number = 0\n groups: Group[] = [];\n appType: string = '0'\n selectedGroups: Group[] = [];\n colorPalettes: ColorPalette[] = []\n paletcolors: string[] = []\n paletColorArea: boolean = false\n selectedColorPalette: ColorPalette\n compareFunctionForGroups = (o1: any, o2: any) => {\n o1 === o2\n };\n selectedDashboards: string[] = []\n compareFunctionForDashboard = (o1: any, o2: any) => o1 === o2;\n\n dashboards: Dashboard[] = []\n primaryColor: string = ''\n primaryColorControl: FormControl = new FormControl(this.primaryColor)\n\n appOptions: {\n windowWidth: number,\n windowHeight: number,\n type: string\n\n } =\n {\n windowWidth: 100,\n windowHeight: 100,\n type: 'centerWindow'\n }\n\n app: App = {\n name: '',\n appCode: '',\n icon: this.image,\n applicationStatus: 0,\n description: '',\n access: 0,\n applicationId: '',\n domain: '',\n owner: '',\n ownerId: '',\n groups: [],\n openerMethod: 0,\n applicationLink: '',\n dashboards: [],\n appType: 0,\n creationDate: '',\n appCSS: '',\n options: ''\n }\n\n constructor(@Inject(MAT_DIALOG_DATA) public data: { app: App, type: string }, private groupService: GroupService,\n private deployAppService: DeployAppService,\n private translate: TranslateService, private authService: AuthService,\n private spinner: NgxSpinnerService,\n private coreService: CoreService,\n private dialogRef: MatDialogRef,\n private colorPaletteService: ColorPaletteService,\n private dashboardService: DashboardService) {\n }\n\n ngOnInit(): void {\n this.title = this.data.type == 'update' ? this.translate.instant(\"AppFormPage.TitleUpdate\") : this.translate.instant(\"AppFormPage.TitleCreate\");\n this.isCreateForm = this.data.type == 'update' ? false : true;\n\n\n \n\n\n\n if (this.data.app) {\n\n\n\n this.selectedApp = this.data.app;\n this.app = Object.assign({}, this.data.app);\n this.appStatus = this.app.applicationStatus.toString()\n this.appAccess = this.app.access.toString()\n this.appOpenerMethod = this.app.openerMethod.toString()\n this.selectedGroups = this.app.groups\n this.selectedDashboards = this.app.dashboards\n this.appType = this.app.appType.toString()\n\n if (this.data.app.appCSS.includes('background-color')) {\n this.primaryColor = this.data.app.appCSS.split('background-color: ')[1]?.slice(0, 7)\n this.primaryColorControl.patchValue(this.primaryColor)\n }\n\n if (this.app.options == \"\") {\n this.appOptions = {\n windowWidth: 0,\n windowHeight: 0,\n type: ''\n }\n } else {\n this.appOptions = JSON.parse(this.app.options)\n }\n }\n\n this.appForm = new UntypedFormGroup({\n // applicationId: new UntypedFormControl(this.app.applicationId, [Validators.required]),\n name: new UntypedFormControl(this.app.name, [Validators.required]),\n appCode: new UntypedFormControl(this.app.appCode, [Validators.required]),\n description: new UntypedFormControl(this.app.description, [Validators.required]),\n applicationLink: new UntypedFormControl(this.app.applicationLink),\n appAccess: new UntypedFormControl(this.app.access, [Validators.required]),\n applicationStatus: new UntypedFormControl(this.app.applicationStatus, [Validators.required]),\n appOpenerMethod: new UntypedFormControl(this.app.openerMethod, [Validators.required])\n });\n\n\n\n this.getGroups()\n this.getDashboards()\n this.getColorPalettes()\n }\n\n isSelected(group) {\n return this.app.groups.includes(group.groupId)\n }\n\n handleUpload(event: any) {\n const file = event.target.files[0];\n const reader = new FileReader();\n reader.readAsDataURL(file);\n reader.onload = () => {\n this.image = reader.result\n };\n }\n\n private getGroups() {\n this.groupService.getGroups().subscribe(result => {\n this.groups = result\n });\n }\n\n tabChanged(tabChangeEvent: MatTabChangeEvent): void {\n this.selectedTabIndex = tabChangeEvent.index\n }\n\n photoUploaded(photo: string) {\n // console.log(photo)\n // var imageStr = photo.split(',')[1] == undefined ? ' ' : photo.split(',')[1];\n this.app.icon = photo;\n }\n\n upsertApp() {\n if (!this.appForm.valid) {\n setTimeout(() => {\n this.coreService.showFormFillError();\n }, 100);\n return;\n }\n this.spinner.show()\n // var selectedGroups = this.app.groups.concat(this.selectedGroups)\n this.app.groups = this.selectedGroups;\n this.app.applicationStatus = this.appStatus;\n this.app.access = parseInt(this.appAccess)\n this.app.openerMethod = parseInt(this.appOpenerMethod)\n this.app.appType = parseInt(this.appType)\n this.app.ownerId = localStorage.getItem('serId')\n this.app.owner = localStorage.getItem('name') + localStorage.getItem('lastName')\n\n\n this.app.options = JSON.stringify(this.appOptions)\n\n\n if (this.primaryColor) {\n this.app.appCSS = `.application-dashboard .top-section {\n background-color: ${this.primaryColor} !important;\n }`;\n } else {\n this.app.appCSS = ''\n }\n\n this.deployAppService.upSertApp(this.app).subscribe(response => {\n\n if (response.result) {\n this.deployAppService.getApps()\n // this.selectedTabIndex = '1'\n this.app.applicationLink = response.message.toString()\n this.spinner.hide()\n this.dialogRef.close(true)\n this.refreshStorage(this.app)\n // this.dashboardService.cacheData()\n }\n\n })\n }\n\n refreshStorage(app: App) {\n var cachedData = this.dashboardService.getCachedData();\n if (cachedData) {\n\n if (cachedData['authorizedApps']) {\n cachedData['authorizedApps'] = cachedData['authorizedApps'].filter(x => x.applicationId !== app.applicationId)\n cachedData['authorizedApps'].push(app)\n this.dashboardService.setCacheData(cachedData)\n }\n }\n }\n\n\n formData = new FormData()\n fileData: File;\n\n changeFile(fileInput: any) {\n this.fileData = fileInput.target.files[0];\n }\n\n\n uploadFile() {\n this.spinner.show()\n this.formData.append('File', this.fileData)\n this.formData.append('Token', this.authService.getToken())\n this.formData.append('ApplicationLink', this.app.applicationLink)\n this.deployAppService.deployApp(this.formData).subscribe(response => {\n this.spinner.hide()\n this.coreService.showSuccessMessage(response);\n\n })\n }\n\n deleteEmptyDashboard() {\n this.app.dashboards.map(dash => {\n if (!this.dashboards.some(x => x.dashboardId == dash))\n this.app.dashboards = this.app.dashboards.filter(x => x !== dash)\n })\n }\n\n\n private getDashboards() {\n if (this.dashboardService.cachedData.getValue().authorizedDashboard.length > 0) {\n this.dashboards = this.dashboardService.cachedData.getValue().authorizedDashboard\n this.deleteEmptyDashboard()\n }\n else\n this.dashboardService.getAuthorizedDashboards().subscribe(result => {\n this.dashboards = result\n this.deleteEmptyDashboard()\n\n });\n }\n\n\n changeselectedDahboardlist(list: any[]) {\n\n this.app.dashboards = list\n\n }\n\n changeselectedGrouplist(list: any[]) {\n console.log(list)\n this.selectedGroups = list\n }\n\n changeColor(event: any) {\n this.primaryColor = event.target.value\n // this.primaryColor = event.color.hex\n }\n\n getColorPalettes() {\n this.colorPaletteService.getColorPalettes().subscribe(res => {\n this.colorPalettes = res\n this.paletcolors = []\n this.colorPalettes.map(item => {\n return item.palettes.map(c => {\n return this.paletcolors.push(c)\n })\n })\n })\n }\n\n selectColor(color) {\n this.primaryColor = color\n\n }\n\n changeWindowOptions(optionType: string, event) {\n\n this.appOptions[optionType] = event\n\n }\n\n resetOptions() {\n this.appOptions = {\n windowWidth: 100,\n windowHeight: 100,\n type: 'centerWindow'\n }\n this.app.options = \"\"\n }\n\n\n}","\n\n \n \n \n \n\n
\n
\n\n \n {{ 'AppFormPage.AppCode' | translate }}\n \n \n
\n\n \n {{ 'AppFormPage.Name' | translate }}\n \n \n
\n\n \n {{ 'AppFormPage.Description' | translate }}\n \n \n
\n\n \n {{ 'AppFormPage.AppStatus' | translate }}\n \n Aktif\n pasif\n \n \n
\n\n \n {{ 'AppFormPage.AppAccess' | translate }}\n \n Public\n Private\n Open\n \n \n
\n\n \n {{ 'AppFormPage.OpenerMethod' | translate }}\n \n New Tab\n Pop Up\n \n \n
\n\n
\n \n {{ 'WidgetFormPage.WindowType'| translate }}\n \n Center\n Left\n Right\n \n \n\n \n {{ 'WidgetFormPage.WindowWidth' | translate }}\n \n \n\n \n {{ 'WidgetFormPage.WindowHeight' | translate }}\n \n \n\n \n
\n
\n\n
\n \n\n {{ 'AppFormPage.PrimaryColor' | translate }}\n \n \n \n
\n \n
\n
\n clear\n
\n
\n
\n\n check_circle_outline\n
\n
\n
\n
\n\n
\n\n\n
\n\n\n \n {{ 'AppFormPage.AppType' | translate }}\n \n Data App\n Form App\n Bussion App\n\n \n \n
\n\n \n\n \n\n\n
\n
\n\n\n\n \n\n\n
\n \n
\n
\n *{{ 'AppFormPage.Hint' | translate }}\n \n\n
\n
\n \n {{ 'AppFormPage.AppLink' | translate }}\n \n \n {{ fileData?.name }}\n \n \n
\n\n
\n
\n\n
\n
\n\n \n\n \n \n\n\n","import { Component, OnInit } from \"@angular/core\";\nimport { Router } from \"@angular/router\";\nimport { TranslateService } from \"@ngx-translate/core\";\nimport { App } from \"src/app/models/responses/appsResponse\";\nimport { DeployAppService } from \"src/app/services/deploy-app/deploy-app.service\";\nimport { ModalService } from \"src/app/services/modal/modal.service\";\nimport { RoleFormComponent } from \"../role/role-form/role-form.component\";\nimport { CreateAppComponent } from \"./create-app/create-app.component\";\nimport { environment } from \"src/environments/environment\";\n\n@Component({\n selector: 'app-deploy-app',\n templateUrl: './deploy-app.component.html',\n styleUrls: ['deploy-app.component.scss']\n})\nexport class DeployApp implements OnInit {\n Applications: any\n displayedColumns: string[] = ['icon', 'name', 'owner', 'action',];\n displayedColumnsName = [this.translate.instant(\"Common.Icon\"), this.translate.instant(\"AppPage.Name\"), this.translate.instant(\"AppPage.Owner\"), this.translate.instant(\"AppPage.Action\")]\n\n\n\n constructor(private deployAppService: DeployAppService, private router: Router\n , private modalService: ModalService,\n private translate: TranslateService) {\n }\n\n ngOnInit(): void {\n this.init()\n }\n\n init() {\n this.getApps()\n }\n\n getApps() {\n this.deployAppService.getApps().subscribe(apps => {\n this.Applications = apps\n // this.Applications = this.deployAppService.apps\n\n })\n }\n\n openApp(event: any) {\n if (event.type == 'update') {\n let data = {\n type: event.type as string,\n app: event.data as App\n }\n this.modalService.openModal(data, CreateAppComponent, 'auto', '1000px').subscribe(result => {\n // if (result === true) {\n this.getApps();\n // this.permissionService.getUserPermissions(true).subscribe(r => { });\n // }\n });\n } else {\n this.gotoAppDesigner(event.data.applicationId)\n }\n }\n\n selectApp(App: any) {\n if (App.type == 'app') {\n this.router.navigate([\"/\"], { state: App });\n } else if (App.type == 'deploy') {\n this.router.navigate([\"/upload\"], { state: App });\n }\n }\n\n\n deleteApp(App: any) {\n this.modalService.openDeleteConfirm().subscribe(selection => {\n if (selection === true) {\n this.deployAppService.deleteApp(App.applicationId).subscribe(res => {\n this.getApps();\n })\n }\n })\n\n }\n\n\n gotoAppDesigner(applicationId?: string) {\n var anchor = document.createElement('a');\n\n if (applicationId)\n localStorage.setItem('selectedAppId', applicationId)\n\n anchor.href = `${environment.baseUrl}/AppDesigner/#/`;\n anchor.target = \"_blank\";\n anchor.click();\n }\n}","
\n \n \n \n \n \n
","import { Component, OnInit, Inject } from '@angular/core';\nimport { CodeEditorComponent } from 'src/app/components/code-editor/code-editor.component';\nimport { WidgetLibrary } from 'src/app/models/responses/widgetLibraryResponse';\nimport { VisualComp } from 'src/app/models/responses/visualComponentResponse';\nimport { MAT_DIALOG_DATA, MatDialogRef, MatDialog } from '@angular/material/dialog';\nimport { VisualFormComponent } from '../../visual/visual-form/visual-form.component';\nimport { NgxSpinnerService } from 'ngx-spinner';\nimport { environment } from 'src/environments/environment';\nimport { GlobalFunctionService } from 'src/app/services/global-function/global-function.service';\nimport { UntypedFormGroup, Validators, UntypedFormControl } from '@angular/forms';\nimport { CoreService } from 'src/app/services/core/core.service';\nimport { TranslateService } from '@ngx-translate/core';\n\ndeclare var monaco: any;\n\n@Component({\n selector: 'app-function-form',\n templateUrl: './function-form.component.html',\n styleUrls: ['./function-form.component.scss']\n})\nexport class FunctionFormComponent implements OnInit {\n\n pageForm: UntypedFormGroup;\n editorOptions = { theme: 'vs-dark', language: 'javascript' };\n code: string = 'function x() {\\nconsole.log(\"Hello world!\");\\n}';\n title: string = \"\";\n libraries: WidgetLibrary[] = [];\n selectedLibraries: any[] = [];\n compareFunctionForLibraries = (o1: any, o2: any) => o1 === o2;\n\n isCreateForm: boolean = true;\n visual: VisualComp = {\n name: \"\",\n description: \"\",\n version: 0,\n icon: \"\",\n createdby: \"\",\n updatedby: \"\",\n creationDate: new Date(),\n updateDate: new Date(),\n code: \"\",\n domain: \"\",\n widgetLibraries: [],\n revisions: [],\n access:1,\n config:[]\n }\n\n constructor(\n @Inject(MAT_DIALOG_DATA) public data: any,\n private dialogRef: MatDialogRef,\n private dialog: MatDialog,\n private globalFunction: GlobalFunctionService,\n private spinner: NgxSpinnerService,\n private coreService: CoreService,\n private translate: TranslateService,\n private functionService: GlobalFunctionService\n ) { }\n\n ngOnInit(): void {\n this.pageForm = new UntypedFormGroup({\n name: new UntypedFormControl(this.visual.name, [Validators.required]),\n });\n\n this.title = this.data.type == 'update' ? this.translate.instant(\"GlobalFunctionFormPage.TitleUpdate\") : this.translate.instant(\"GlobalFunctionFormPage.TitleCreate\");\n this.isCreateForm = this.data.type == 'update' ? false : true;\n if (this.data.visual) {\n this.visual = Object.assign({}, this.data.visual);\n this.selectedLibraries = this.visual.widgetLibraries;\n this.visual.icon = environment.imageUrl + this.visual.icon;\n }\n }\n\n editorInit(eventInit: any) {\n (window as any).monaco.languages.typescript.javascriptDefaults.setDiagnosticsOptions({\n noSemanticValidation: true,\n noSyntaxValidation: true\n });\n\n (window as any).monaco.languages.typescript.javascriptDefaults.setCompilerOptions({\n target: monaco.languages.typescript.ScriptTarget.ES6,\n allowNonTsExtensions: true\n });\n\n this.getGlobalFunctionDefinitions();\n\n }\n\n getGlobalFunctionDefinitions() {\n this.functionService.getGlobalFunctionsDefinitions().subscribe(code => {\n (window as any).monaco.languages.typescript.javascriptDefaults.addExtraLib(code);\n })\n }\n\n upsertGlobalFunction() {\n if (this.pageForm.invalid) {\n this.coreService.showFormFillError();\n return;\n }\n this.spinner.show();\n this.visual.widgetLibraries = this.selectedLibraries;\n // this.visual.icon = this.visual.icon.split(',')[1];\n this.globalFunction.upsertGlobalFunction(this.visual).subscribe(result => {\n this.spinner.hide();\n this.dialogRef.close(true);\n });\n }\n\n uploadIconImage(fileInput: any) {\n let file = fileInput.target.files[0];\n if (file.size > 3145728) {\n this.coreService.showErrorMessage(this.translate.instant(\"ErrorMessages.SmallPhoto\"));\n return;\n }\n var mimeType = file.type;\n if (mimeType.match(/image\\/*/) == null) {\n this.coreService.showErrorMessage(this.translate.instant(\"ErrorMessages.WrongFormatPhoto\"));\n return;\n }\n\n var reader = new FileReader();\n reader.readAsDataURL(file);\n reader.onload = (_event) => {\n this.visual.icon = reader.result;\n }\n }\n\n openBiggerEditor() {\n const dialogRef = this.dialog.open(CodeEditorComponent, {\n height: 'auto',\n width: '90%',\n data: {\n code: this.visual.code,\n },\n });\n\n\n dialogRef.afterClosed().subscribe(result => {\n if (result) {\n this.visual.code = result;\n }\n });\n }\n\n}\n","\n\n\n \n
\n \n {{ 'GlobalFunctionFormPage.Name' | translate }}\n \n \n
\n
\n\n \n {{ 'GlobalFunctionFormPage.Description' | translate }}\n \n \n
\n\n \n {{ 'GlobalFunctionFormPage.Version' | translate }}\n \n \n
\n\n \n {{ 'GlobalFunctionFormPage.CreatedBy' | translate }}\n \n \n
\n\n \n {{ 'GlobalFunctionFormPage.UpdatedBy' | translate }}\n \n \n
\n\n \n {{ 'GlobalFunctionFormPage.UpdateTime' | translate }}\n \n \n
\n\n \n
\n \n \n
\n\n\n
\n\n \n \n \n","import { Component, OnInit, ViewChild } from '@angular/core';\nimport { GlobalFunctionService } from 'src/app/services/global-function/global-function.service';\nimport { environment } from 'src/environments/environment';\nimport { MatTableDataSource } from '@angular/material/table';\nimport { MatPaginator } from '@angular/material/paginator';\nimport { MatSort } from '@angular/material/sort';\nimport { MatDialog } from '@angular/material/dialog';\nimport { VisualService } from 'src/app/services/visual/visual.service';\nimport { NgxSpinnerService } from 'ngx-spinner';\nimport { VisualComp } from 'src/app/models/responses/visualComponentResponse';\nimport { ActionDialogComponent } from 'src/app/components/action-dialog/action-dialog/action-dialog.component';\nimport { FunctionFormComponent } from './function-form/function-form.component';\nimport { ModalService } from 'src/app/services/modal/modal.service';\nimport { TranslateService } from '@ngx-translate/core';\n\n@Component({\n selector: 'app-global-function',\n templateUrl: './global-function.component.html',\n styleUrls: ['./global-function.component.scss']\n})\nexport class GlobalFunctionComponent implements OnInit {\n\n baseUrl: string = environment.imageUrl;\n displayedColumns: string[] = ['icon', 'name', 'visualComponentId','description', 'action'];\n displayedColumnsName: string[] = [this.translate.instant(\"Common.Icon\"), this.translate.instant(\"GlobalFunctionPage.Name\"), this.translate.instant(\"GlobalFunctionPage.GlobalFunctionId\"), this.translate.instant(\"GlobalFunctionPage.Description\") , this.translate.instant(\"GlobalFunctionPage.Action\")];\n functionList: VisualComp[] = [];\n\n constructor(\n private dialog: MatDialog,\n private globalFunctionService: GlobalFunctionService,\n private spinner: NgxSpinnerService,\n private modalService: ModalService,\n private translate: TranslateService\n ) { }\n\n ngOnInit(): void {\n this.getGlobalFunctions()\n }\n\n getGlobalFunctions() {\n this.spinner.show();\n this.globalFunctionService.getGlobalFunctions().subscribe(result => {\n this.functionList = result;\n this.spinner.hide();\n });\n }\n\n deleteVisualComponent(globalFunction: VisualComp) {\n this.modalService.openDeleteConfirm().subscribe(result => {\n if (result === true) {\n this.spinner.show();\n this.globalFunctionService.deleteGlobalFunction(globalFunction).subscribe(result => {\n this.getGlobalFunctions();\n });\n }\n });\n }\n\n openVisualComponent(event) {\n let data = {\n type: event.type as string,\n visual: event.data as VisualComp\n }\n this.modalService.openModal(data, FunctionFormComponent, 'auto', '1000px').subscribe(result => {\n if (result === true) {\n this.getGlobalFunctions();\n }\n });\n }\n\n}\n","
\n \n \n
","import { Component, OnInit, Inject } from '@angular/core';\nimport { MAT_DIALOG_DATA, MatDialogRef } from '@angular/material/dialog';\nimport { Group } from 'src/app/models/responses/groupsResponse';\nimport { User } from 'src/app/models/responses/usersResponse';\nimport { UserService } from 'src/app/services/user/user.service';\nimport { GroupService } from 'src/app/services/group/group.service';\nimport { DashboardService } from 'src/app/services/dashboard/dashboard.service';\nimport { DataStoreService } from 'src/app/services/dataStore/data-store.service';\nimport { FormGroup, FormControl, Validators } from '@angular/forms';\nimport { CoreService } from 'src/app/services/core/core.service';\nimport { TranslateService } from '@ngx-translate/core';\nimport { Dashboard } from 'src/app/models/responses/dashboardResponse';\nimport { BussionFilterDefinition, DataStore } from 'src/app/models/responses/dataStoreResponse';\n\nimport { App } from 'src/app/models/responses/appsResponse';\nimport { DeployAppService } from 'src/app/services/deploy-app/deploy-app.service';\nimport { AuthService } from 'src/app/services/auth/auth.service';\nimport { CdkDragDrop, moveItemInArray } from '@angular/cdk/drag-drop';\nimport { Column } from 'ag-grid-community';\n\n@Component({\n selector: 'app-group-form',\n templateUrl: './group-form.component.html',\n styleUrls: ['./group-form.component.scss']\n})\nexport class GroupFormComponent implements OnInit {\n\n pageForm: FormGroup;\n title: string = \"\";\n isCreateForm: boolean = false;\n isShownFilterForm: boolean = false;\n groupFilterFields: Column[] = []\n\n users: User[] = [];\n selectedUser: any[] = [];\n compareFunctionForUser = (o1: any, o2: any) => o1 === o2;\n\n filterMembersGroup = this.users\n\n dashboards: Dashboard[] = [];\n selectedDashboards: string[] = [];\n compareFunctionForDashboard = (o1: any, o2: any) => o1 === o2;\n\n\n dataStores: any[] = [];\n selectedDataStores: any[] = [];\n compareFunctionForDataStores = (o1: any, o2: any) => o1 === o2;\n\n\n\n\n filteredMembersGroup: User[] = [];\n paginatedMembersGroup: any[] = [];\n pageSize: number = 5;\n currentPage: number = 1;\n totalPages: number = 1;\n\n filterDashboardsGroup: Dashboard[] = [];\n paginatedDashboarGroup: Dashboard[] = [];\n totalPages1: number = 1;\n currentPage1: number = 1;\n sorting: boolean = false\n\n paginatedDataSource: DataStore[] = [];\n filterDataStores: DataStore[] = [];\n totalPages2: number = 1;\n currentPage2: number = 1;\n\n group: Group = {\n groupId: \"\",\n icon: \"\",\n groupName: \"\",\n description: \"\",\n domain: \"\",\n createdBy: \"\",\n updatedBy: new Date().toLocaleString(),\n createdDate: new Date().toLocaleString(),\n updatedDate: new Date().toLocaleString(),\n users: [],\n dataSources: [],\n dashboards: [],\n isSelfRegistration: 0,\n homePage: [],\n filter: [],\n displayOrder: 0,\n showInAppView: 0\n }\n\n appList: App[] = []\n mainpage: string = ''\n constructor(\n @Inject(MAT_DIALOG_DATA) public data: any,\n private dialogRef: MatDialogRef,\n private userService: UserService,\n private groupService: GroupService,\n private dashboardService: DashboardService,\n private dataSourceService: DataStoreService,\n private coreService: CoreService,\n private translate: TranslateService,\n private appService: DeployAppService,\n private authService: AuthService\n ) { }\n\n ngOnInit(): void {\n\n this.pageForm = new FormGroup({\n groupName: new FormControl(this.group.groupName, [Validators.required]),\n displayOrder: new FormControl(this.group.displayOrder),\n });\n\n this.title = this.data.type == 'update' ? this.translate.instant(\"GroupFormPage.TitleUpdate\") : this.translate.instant(\"GroupFormPage.TitleCreate\");\n if (this.data.group) {\n this.group = Object.assign({}, this.data.group);\n this.selectedUser = this.group.users;\n this.selectedDashboards = this.group.dashboards;\n this.selectedDataStores = this.group.dataSources;\n if (this.group.homePage[0])\n this.mainpage = this.group.homePage[0].objectId\n }\n this.getUsers();\n this.getDashboards();\n this.getDatasources();\n this.getApps()\n }\n\n getApps() {\n this.appService.getApps().subscribe(res => {\n this.appList = res\n })\n }\n\n //filter MembersGroup\n applyFilterMembersOfGroup(filterValue: string) {\n this.filteredMembersGroup = this.users.filter((user) => {\n const fullName = user.firstName + \" \" + user.lastName;\n return fullName.toLowerCase().includes(filterValue.toLowerCase());\n });\n this.totalPages = Math.ceil(this.filteredMembersGroup.length / this.pageSize);\n this.currentPage = 1;\n this.updatePaginatedMembersGroup();\n }\n //pagination members Group\n updatePaginatedMembersGroup() {\n const start = (this.currentPage - 1) * this.pageSize;\n const end = start + this.pageSize;\n\n var list = this.filteredMembersGroup.map(item => {\n return { ...item, selected: this.selectedUser.some(x => x == item.userId) }\n })\n this.paginatedMembersGroup = list.slice(start, end);\n\n }\n previousPage() {\n this.currentPage--;\n this.updatePaginatedMembersGroup();\n\n }\n nextPage() {\n this.currentPage++;\n this.updatePaginatedMembersGroup();\n\n }\n\n\n changeselectedlist(event: any) {\n if (event.options[0]._selected) {\n this.selectedUser.push(event.options[0]._value)\n } else {\n this.selectedUser = this.selectedUser.filter(x => x !== event.options[0]._value)\n }\n }\n\n //---\n //filter dashboard group\n applyFilterDashboardOfGroup(filtervalue: string) {\n this.filterDashboardsGroup = this.dashboards.filter((dashboard) => {\n return dashboard.title.toLowerCase().includes(filtervalue.toLowerCase());\n });\n this.totalPages1 = Math.ceil(this.filterDashboardsGroup.length / this.pageSize);\n this.currentPage1 = 1;\n this.updatePaginateDashboardGroup();\n }\n\n updatePaginateDashboardGroup(allList?) {\n const start = (this.currentPage1 - 1) * this.pageSize;\n const end = start + this.pageSize;\n\n\n\n var list = this.changeSort()\n\n if (allList) {\n this.paginatedDashboarGroup = list.filter(x => x.selected)\n } else {\n this.paginatedDashboarGroup = list.slice(start, end);\n }\n\n\n }\n\n changeSort() {\n var unselectedList = this.filterDashboardsGroup.filter(x => !this.selectedDashboards.includes(x.dashboardId)).map(item => {\n return { ...item, selected: this.selectedDashboards.some(x => x == item.dashboardId) }\n })\n\n\n var selectedList = this.selectedDashboards.map(item => {\n var element = this.filterDashboardsGroup.find(x => x.dashboardId == item)\n return { ...element, selected: true }\n })\n\n // var selectedList = this.filterDashboardsGroup.filter(x => this.selectedDashboards.includes(x.dashboardId)).map(item => {\n\n // return { ...item, selected: true };\n // })\n\n\n\n var list = selectedList.concat(unselectedList)\n return list\n }\n\n sortActive() {\n this.sorting = !this.sorting\n if (this.sorting) {\n this.updatePaginateDashboardGroup(true)\n this.currentPage1 = 1\n } else {\n this.saveCurrentSort(this.paginatedDashboarGroup)\n this.updatePaginateDashboardGroup()\n\n }\n }\n\n saveCurrentSort(sortedArray: Dashboard[]) {\n console.log('this.dashboards', sortedArray)\n // sortedArray.map((item, key) => {\n // this.dashboards.splice(key, 1, item);\n // })\n\n console.log('this.dashboards', sortedArray)\n\n\n this.selectedDashboards = sortedArray.map(item => {\n return item.dashboardId\n })\n }\n\n drop(event: CdkDragDrop) {\n\n moveItemInArray(this.paginatedDashboarGroup, event.previousIndex, event.currentIndex);\n\n }\n\n\n previousPageDashboard() {\n this.currentPage1--;\n this.updatePaginateDashboardGroup();\n }\n nextPageDashboard() {\n this.currentPage1++;\n this.updatePaginateDashboardGroup();\n }\n\n changeselectedDahboardlist(event: any) {\n if (event.options[0]._selected) {\n this.selectedDashboards.push(event.options[0]._value)\n } else {\n this.selectedDashboards = this.selectedDashboards.filter(x => x !== event.options[0]._value)\n }\n\n this.updatePaginateDashboardGroup()\n }\n\n //DatasourceOfGroup filter\n applyFilterDatasourceOfGroup(filtervalue: string) {\n this.filterDataStores = this.dataStores.filter((data => {\n return data.name.toLowerCase().includes(filtervalue.toLowerCase())\n }));\n this.totalPages2 = Math.ceil(this.filterDataStores.length / this.pageSize);\n this.currentPage2 = 1;\n this.updatePaginateDataSource();\n\n }\n updatePaginateDataSource() {\n const start = (this.currentPage2 - 1) * this.pageSize;\n const end = start + this.pageSize;\n var list = this.filterDataStores.map(item => {\n return { ...item, selected: this.selectedDataStores.some(x => x == item.dataStoreId) }\n\n })\n this.paginatedDataSource = list.slice(start, end);\n }\n previousPageDataSource() {\n this.currentPage2--;\n this.updatePaginateDataSource();\n }\n nextPageDataSource() {\n this.currentPage2++;\n this.updatePaginateDataSource();\n }\n\n changeselectedDatalist(event: any) {\n if (event.options[0]._selected) {\n this.selectedDataStores.push(event.options[0]._value)\n } else {\n this.selectedDataStores = this.selectedDataStores.filter(x => x !== event.options[0]._value)\n }\n }\n\n\n private getUsers() {\n this.userService.getUsers().subscribe(result => {\n this.users = result;\n this.filteredMembersGroup = result;\n this.totalPages = Math.ceil(this.filteredMembersGroup.length / this.pageSize);\n this.updatePaginatedMembersGroup();\n });\n }\n\n private getDashboards() {\n this.dashboardService.getDashboards().subscribe(result => {\n this.dashboards = result\n //silinen dashboardlar hala listede ise hariç tutuyoruz\n this.selectedDashboards = this.group.dashboards.filter(item =>\n this.dashboards.some(x => x.dashboardId === item)\n );\n\n this.filterDashboardsGroup = result;\n this.totalPages1 = Math.ceil(this.filterDashboardsGroup.length / this.pageSize);\n this.updatePaginateDashboardGroup();\n });\n }\n\n private getDatasources() {\n this.dataSourceService.getDatasources().subscribe(result => {\n this.dataStores = result\n this.filterDataStores = this.dataStores;\n this.totalPages2 = Math.ceil(this.filterDataStores.length / this.pageSize);\n this.updatePaginateDataSource();\n });\n }\n\n upsertGroup() {\n if (this.pageForm.invalid) {\n this.coreService.showFormFillError();\n return;\n }\n if (this.mainpage) {\n var date = new Date();\n\n this.group.homePage = [{\n assignDate: date.toISOString(),\n assignedBy: this.authService.getUser()?.userId,\n objectId: this.mainpage,\n type: 1,\n object: JSON.stringify(this.appList.find(x => x.applicationId == this.mainpage))\n }]\n } else {\n this.group.homePage = []\n }\n this.group.isSelfRegistration = this.group.isSelfRegistration ? 1 : 0\n this.group.showInAppView = this.group.showInAppView ? 1 : 0\n this.group.users = this.selectedUser;\n this.group.dashboards = this.selectedDashboards;\n this.group.dataSources = this.selectedDataStores;\n this.groupService.upsertGroup(this.group).subscribe(result => {\n this.dialogRef.close(true);\n });\n }\n\n addFilter(e: BussionFilterDefinition) {\n\n if (!this.group.filter.some(x => x.fieldName == e.fieldName && x.fieldValue == e.fieldValue)) {\n this.group.filter = [...this.group.filter, e]\n } else {\n this.coreService.showFormFillError(this.translate.instant(\"FilterComponent.SameValue\"));\n }\n }\n\n deleteFilter(e: BussionFilterDefinition) {\n this.group.filter = this.group.filter.filter(x => !(x.fieldValue == e.fieldValue && e.fieldName == x.fieldName))\n }\n\n\n uploadIconImage(fileInput: any) {\n let file = fileInput.target.files[0];\n if (file.size > 3145728) {\n this.coreService.showErrorMessage(this.translate.instant(\"ErrorMessages.SmallPhoto\"));\n return;\n }\n var mimeType = file.type;\n if (mimeType.match(/image\\/*/) == null) {\n this.coreService.showErrorMessage(this.translate.instant(\"ErrorMessages.WrongFormatPhoto\"));\n return;\n }\n\n var reader = new FileReader();\n reader.readAsDataURL(file);\n reader.onload = (_event) => {\n this.group.icon = reader.result;\n }\n }\n\n}\n","\n\n\n \n
\n
\n
\n \n
\n \n
\n \n {{ 'GroupFormPage.Name' | translate }}\n \n \n
\n\n \n {{ 'GroupFormPage.Description' | translate }}\n \n \n
\n\n
\n \n {{ 'GroupFormPage.ShowInAppView' | translate }}\n \n
\n
\n\n \n {{ 'GroupFormPage.DisplayOrder' | translate }}\n \n \n
\n\n
\n \n {{ 'UserFormPage.MainPage' | translate }}\n \n {{'Common.Select'|translate}}\n {{item.name}}\n \n \n \n
\n
\n\n
\n \n {{ 'GroupFormPage.SelfRegistiration' | translate }}\n \n
\n
\n\n\n \n\n \n \n \n\n \n \n {{user.firstName}} {{user.lastName}}\n \n \n\n
\n \n {{ currentPage }}\n \n
\n
\n\n \n \n \n \n
\n \n
\n \n \n
\n \n \n {{dashboard.title}}\n
\n\n
\n
\n
\n \n {{ currentPage1 }}\n \n
\n
\n \n \n \n \n \n \n {{data.name}}\n \n \n
\n \n {{ currentPage2 }}\n \n
\n
\n\n \n \n\n\n \n \n\n
0\">\n \n
\n
\n
\n\n
\n\n \n \n \n","import { Component, OnInit, ViewChild } from '@angular/core';\nimport { GroupService } from 'src/app/services/group/group.service';\nimport { NgxSpinnerService } from 'ngx-spinner';\nimport { Group } from 'src/app/models/responses/groupsResponse';\nimport { GroupFormComponent } from './group-form/group-form.component';\nimport { ModalService } from 'src/app/services/modal/modal.service';\nimport { TranslateService } from '@ngx-translate/core';\n\n@Component({\n selector: 'app-group',\n templateUrl: './group.component.html',\n styleUrls: ['./group.component.scss']\n})\nexport class GroupComponent implements OnInit {\n\n displayedColumns: string[] = ['icon', 'groupName', 'groupId', 'description', 'createdBy', 'displayOrderText', 'action'];\n displayedColumnsName: string[] = [this.translate.instant(\"Common.icon\"), this.translate.instant(\"GroupsPage.GroupName\"), this.translate.instant(\"GroupsPage.GroupId\"), this.translate.instant(\"GroupsPage.Description\"), this.translate.instant(\"GroupsPage.CreatedBy\"), this.translate.instant('WidgetFormPage.SortOrder'), this.translate.instant(\"GroupsPage.Action\")];\n groups: Group[] = [];\n\n constructor(\n private groupService: GroupService,\n private spinner: NgxSpinnerService,\n private modalService: ModalService,\n private translate: TranslateService\n ) { }\n\n ngOnInit() {\n this.getGroups();\n }\n\n getGroups() {\n this.spinner.show();\n this.groupService.getGroups().subscribe(groups => {\n this.groups = groups.map(item => {\n return { ...item, displayOrderText: item.showInAppView == 0 ? '-' : item.displayOrder }\n });\n this.spinner.hide();\n });\n }\n\n openGroup(event: any) {\n let data = {\n type: event.type as string,\n group: event.data as Group\n }\n\n this.modalService.openModal(data, GroupFormComponent, 'auto', '1000px').subscribe(closeData => {\n if (closeData === true) {\n this.getGroups();\n }\n })\n }\n\n deleteGroup(group: Group) {\n this.modalService.openDeleteConfirm().subscribe(selection => {\n if (selection === true) {\n this.spinner.show();\n this.groupService.deleteGroup(group.groupId).subscribe(result => {\n this.getGroups();\n });\n }\n })\n }\n\n}\n","
\n \n \n
","import { Component, OnInit } from '@angular/core';\nimport { PermissionService } from 'src/app/services/permission/permission.service';\nimport { ActivatedRoute, NavigationEnd, Router } from '@angular/router';\nimport { DashboardPreviewComponent } from 'src/app/components/dashboard-preview/dashboard-preview.component';\nimport { BehaviorSubject } from 'rxjs';\nimport { DashboardService } from 'src/app/services/dashboard/dashboard.service';\nimport { ChatbotComponent } from 'src/app/components/chatbot/chatbot.component';\nimport { MatDialog } from '@angular/material/dialog';\n\n@Component({\n selector: 'app-landing',\n templateUrl: './landing.component.html',\n styleUrls: ['./landing.component.scss']\n})\nexport class LandingComponent implements OnInit {\n\n tile: string = 'lightgreen';\n links = [\"Users\", \"Groups\", \"Roles\"];\n opened: boolean = true;\n permissions: string[] = [];\n showSection = false;\n licencePermissions = localStorage.getItem('licence')??''\n\n\n\n constructor(\n private permissionService: PermissionService,\n private route: ActivatedRoute, private router: Router,\n private dashboardService: DashboardService,\n private dialog: MatDialog\n ) { }\n\n ngOnInit(): void {\n // this.showSection = true;\n this.getUserRoleList();\n // this.permissionService.openedClosedbtn$.subscribe(openedClosedbtn => this.opened = openedClosedbtn);\n\n this.router.events.subscribe((event) => {\n if (event instanceof NavigationEnd) {\n const url = event.url;\n if (url === '/landing') {\n this.showSection = true;\n } else {\n this.showSection = false;\n }\n }\n });\n\n\n // Check if the current route is the same as the component's route\n const currentUrl = this.router.url;\n if (currentUrl === '/landing') {\n this.showSection = true;\n }\n }\n\n toggleGridster() {\n this.opened = !this.opened\n\n this.dashboardService.openedClosedbtn.next(false)\n }\n\n getUserRoleList() {\n this.permissionService.getUserRoleList().subscribe(roleList => {\n this.permissions = roleList;\n });\n }\n openChatbox() {\n this.dialog.open(ChatbotComponent, {\n width: '80%',\n height: '80%',\n panelClass: 'chat-dialog-container',\n });\n }\n\n\n}\n\n","
\n \n
\n
\n \n \n \n \n \n \n {{ 'ManagePage.Users' | translate }}\n \n \n\n \n \n {{ 'ManagePage.Groups' | translate }}\n \n \n\n \n \n {{ 'ManagePage.Roles' | translate }}\n \n \n\n \n \n {{ 'ManagePage.Node' | translate }}\n \n \n\n \n \n {{ 'ManagePage.DataStore' | translate }}\n \n \n\n \n\n \n \n {{ 'ManagePage.WidgetLibrary' | translate }}\n \n \n\n \n \n {{ 'ManagePage.VisualComponent' | translate }}\n \n \n\n\n \n \n {{ 'ManagePage.Dashboard' | translate }}\n \n \n\n \n \n {{ 'ManagePage.DeployApp' | translate }}\n \n \n\n \n \n {{ 'ManagePage.GlobalFunction' | translate }}\n \n \n\n\n \n \n {{ 'ManagePage.BussionConnector' | translate }}\n \n \n\n \n redeem\n {{ 'ManagePage.License' | translate }}\n \n \n \n\n \n admin_panel_settings\n {{ 'ManagePage.LDAPConfig' | translate }}\n \n \n\n \n security\n {{ 'ManagePage.PasswordPolicy' | translate }}\n \n \n\n \n\n \n \n \n \n {{ 'ManagePage.ColorPalette' | translate }}\n \n \n\n \n \n {{ 'ManagePage.Scripts' | translate }}\n \n \n\n \n folder\n {{'LogsPage.Logs'|translate}}\n \n \n\n \n settings\n {{'ManagePage.SystemParameters' | translate}}\n \n \n\n \n \n\n \n
\n
\n
\n

{{'LandingPage.ManagementPanel' | translate}}

\n

{{'LandingPage.BUSSİONANALYTİC' |\n translate}}

{{'LandingPage.text' | translate}}

\n\n
\n
\n \"monitoring\"\n \n
\n \n
\n\n
\n\n
","import { Component, OnInit } from '@angular/core';\nimport { UntypedFormControl, UntypedFormGroup, Validators } from '@angular/forms';\nimport { TranslateService } from '@ngx-translate/core';\nimport { LDAPConfig } from 'src/app/models/requests/ldapConfig';\nimport { CoreService } from 'src/app/services/core/core.service';\nimport { LicenseService } from 'src/app/services/license/license.service';\n\n@Component({\n selector: 'app-ldap-config',\n templateUrl: './ldap-config.component.html',\n styleUrls: ['./ldap-config.component.scss']\n})\nexport class LdapConfigComponent implements OnInit {\n\n pageForm: UntypedFormGroup;\n config: LDAPConfig = {\n domainName: \"\",\n port: \"\",\n server: \"\",\n timeout: 3000\n }\n\n constructor(\n private licenseService: LicenseService,\n private coreService: CoreService,\n private translate: TranslateService\n ) { }\n\n ngOnInit(): void {\n this.getLDAPConfig()\n\n this.pageForm = new UntypedFormGroup({\n domainName: new UntypedFormControl(this.config.domainName, [Validators.required]),\n port: new UntypedFormControl(this.config.port, [Validators.required]),\n server: new UntypedFormControl(this.config.server, [Validators.required]),\n timeout: new UntypedFormControl(this.config.domainName, [Validators.required]),\n });\n }\n\n private getLDAPConfig() {\n this.licenseService.getLDAPConfig().subscribe(result => {\n this.config = result;\n })\n }\n\n updateLDAP() {\n if (this.pageForm.valid) {\n this.licenseService.updateLDAP(this.config).subscribe(result => {\n this.coreService.showSuccessMessage(this.translate.instant(\"ErrorMessages.LDAPUpdated\"));\n })\n } else {\n this.coreService.showErrorMessage(this.translate.instant(\"ErrorMessages.FillFields\"));\n }\n\n }\n\n}\n","
\n \n
\n
\n \n {{ 'LDAPConfigPage.DomainName' | translate }}\n \n \n
\n\n \n {{ 'LDAPConfigPage.Port' | translate }}\n \n \n
\n\n \n {{ 'LDAPConfigPage.Server' | translate }}\n \n \n
\n\n \n {{ 'LDAPConfigPage.Timeout' | translate }}\n \n \n
\n\n\n
\n
\n \n
","import { Component, OnInit } from '@angular/core';\nimport { TranslateService } from '@ngx-translate/core';\nimport { License } from 'src/app/models/responses/licenseResponse';\nimport { User } from 'src/app/models/responses/usersResponse';\nimport { CoreService } from 'src/app/services/core/core.service';\nimport { LicenseService } from 'src/app/services/license/license.service';\n\n@Component({\n selector: 'app-license',\n templateUrl: './license.component.html',\n styleUrls: ['./license.component.scss']\n})\nexport class LicenseComponent implements OnInit {\n\n title: string = \"License Update\";\n\n license: License = {\n customer: '',\n dashboardCount: 0,\n domain: '',\n host: '',\n licenseDate: '',\n licenseKey: '',\n scope: '',\n type: '',\n userCount: 0,\n adminUserCount: 0,\n bussionModules: ''\n }\n\n constructor(\n private licenseService: LicenseService,\n private coreService: CoreService,\n private translate: TranslateService\n ) { }\n\n ngOnInit(): void {\n this.getLicense();\n }\n\n getLicense() {\n this.licenseService.getLicense().subscribe(license => {\n this.license = license;\n if (license?.bussionModules)\n localStorage.setItem('licence', JSON.stringify(license.bussionModules.split(',')))\n });\n }\n\n upsertLicense() {\n this.licenseService.upsertLicense(this.license.licenseKey).subscribe(result => {\n this.coreService.showSuccessMessage(this.translate.instant(\"ErrorMessages.LicenseUpdate\"));\n });\n }\n\n}\n","
\n \n
\n
\n \n {{ 'LicensePage.Customer' | translate }}\n \n \n
\n\n \n {{ 'LicensePage.Domain' | translate }}\n \n \n
\n\n \n {{ 'LicensePage.Host' | translate }}\n \n \n
\n\n \n {{ 'LicensePage.Scope' | translate }}\n \n \n
\n\n \n {{ 'LicensePage.Type' | translate }}\n \n \n
\n \n {{ 'LicensePage.Modules' | translate }}\n \n \n
\n
\n \n {{ 'LicensePage.adminUserCount' | translate }}\n \n \n \n \n {{ 'LicensePage.UserCount' | translate }}\n \n \n
\n\n
\n\n \n {{ 'LicensePage.DashboardCount' | translate }}\n \n \n
\n\n \n {{ 'LicensePage.LicenseDate' | translate }}\n \n \n
\n\n \n {{ 'LicensePage.LicenseKey' | translate }}\n \n \n
\n
\n
\n \n
","import { Component, OnInit } from '@angular/core';\nimport { MatDialog } from '@angular/material/dialog';\nimport { ChatbotComponent } from 'src/app/components/chatbot/chatbot.component';\nimport { PermissionService } from 'src/app/services/permission/permission.service';\n\n@Component({\n selector: 'app-manage',\n templateUrl: './manage.component.html',\n styleUrls: ['./manage.component.scss']\n})\nexport class ManageComponent implements OnInit {\n\n tile: string = 'lightgreen';\n links = [\"Users\", \"Groups\", \"Roles\"];\n opened: boolean = false;\n permissions: string[] = [];\n\n constructor(\n private permissionService: PermissionService,\n \n ) { }\n\n ngOnInit(): void {\n this.getUserRoleList();\n }\n\n getUserRoleList() {\n this.permissionService.getUserRoleList().subscribe(roleList => {\n this.permissions = roleList;\n });\n }\n\n\n\n}\n","\n\n","import { Component, OnInit, Inject } from '@angular/core';\nimport { Node, NodeType } from 'src/app/models/responses/nodeResponse';\nimport { MAT_DIALOG_DATA, MatDialogRef } from '@angular/material/dialog';\nimport { NgxSpinnerService } from 'ngx-spinner';\nimport { NodeService } from 'src/app/services/node/node.service';\nimport { ConnectorService } from 'src/app/services/connector/connector.service';\nimport { UntypedFormGroup, UntypedFormControl, Validators } from '@angular/forms';\nimport { CoreService } from 'src/app/services/core/core.service';\nimport { TranslateService } from '@ngx-translate/core';\nimport { MatCheckboxChange } from '@angular/material/checkbox';\n\n@Component({\n selector: 'app-node-form',\n templateUrl: './node-form.component.html',\n styleUrls: ['./node-form.component.scss']\n})\nexport class NodeFormComponent implements OnInit {\n\n pageForm: UntypedFormGroup;\n compareFunctionForNodeType = (o1: any, o2: any) => o1 === o2.toString();\n isCreateForm: boolean = true;\n title: string = \"\";\n nodeTypes: NodeType[] = [];\n useConnectionString: boolean = false\n selfServiceEnabled: boolean = false\n defaultdbvalues: any[] = [\n { db: 'PostgreSQL', default: 'postgres' },\n { db: 'MySQL', default: 'information_schema' },\n { db: 'Clickhouse', default: 'system' },\n { db: 'MongoDB', default: 'none' },\n ]\n node: Node = {\n nodeId: \"\",\n nodeType: 0,\n dataNodeType: \"\",\n name: \"\",\n host: \"\",\n port: \"27017\",\n userName: \"\",\n password: \"\",\n ssl: 0,\n timeOut: 5,\n defaultDatabase: \"\",\n connectionString: \"\",\n selfServiceEnabled: 0\n }\n constructor(\n @Inject(MAT_DIALOG_DATA) public data: any,\n private dialogRef: MatDialogRef,\n private spinner: NgxSpinnerService,\n private nodeService: NodeService,\n private connectorService: ConnectorService,\n private coreService: CoreService,\n private translate: TranslateService\n ) { }\n\n ngOnInit(): void {\n this.pageForm = new UntypedFormGroup({\n name: new UntypedFormControl(this.node.name, [Validators.required]),\n host: new UntypedFormControl(this.node.host, [Validators.required]),\n port: new UntypedFormControl(this.node.port, [Validators.required]),\n timeOut: new UntypedFormControl(this.node.timeOut, [Validators.required, Validators.min(1)]),\n userName: new UntypedFormControl(this.node.userName, [Validators.required]),\n password: new UntypedFormControl(this.node.password, [Validators.required]),\n defaultDatabase: new UntypedFormControl(this.node.defaultDatabase, [Validators.required]),\n connectionString: new UntypedFormControl(this.node.connectionString)\n\n });\n this.title = this.data.type == 'update' ? this.translate.instant(\"NodeFormPage.TitleUpdate\") : this.translate.instant(\"NodeFormPage.TitleCreate\");\n this.isCreateForm = this.data.type == 'update' ? false : true;\n if (this.data.node) {\n this.node = Object.assign({}, this.data.node);\n this.selfServiceEnabled = this.node.selfServiceEnabled == 1 ? true : false\n\n if (this.node.defaultDatabase == \"\")\n this.node.defaultDatabase = this.defaultdbvalues.find(x => x.db.includes(this.data.node.dataNodeType)).default\n\n this.node.password = \"\";\n\n if (this.node.connectionString !== \"\") {\n this.useConnectionString = true\n }\n this.changeFormValidator()\n\n }\n this.getNodesType();\n }\n\n changedefaultdb(dataNodeType: string) {\n if (this.node.defaultDatabase == \"\")\n this.node.defaultDatabase = this.defaultdbvalues.find(x => x.db.includes(dataNodeType))?.default\n\n\n var selectednodetype = this.nodeTypes.find(x => x.name == dataNodeType)\n this.node.port = selectednodetype.port.toString()\n\n\n }\n\n getNodesType() {\n this.nodeService.getDataNodeTypes().subscribe((types: NodeType[]) => {\n\n this.nodeTypes = types\n })\n }\n\n nodeTypeSelected() {\n this.node.port = this.node.nodeType == 0 ? \"27017\" : \"7000\";\n }\n\n saveNode() {\n if (this.node.nodeType == 0) {\n this.upsertNode();\n } else {\n this.initiliazeConnector();\n }\n }\n\n upsertNode() {\n if (this.pageForm.invalid) {\n this.coreService.showFormFillError();\n return;\n }\n this.spinner.show();\n this.nodeService.upsertNode(this.node).subscribe(result => {\n this.spinner.hide();\n this.dialogRef.close(true);\n });\n }\n\n initiliazeConnector() {\n this.connectorService.initiliazeConnector(this.node.userName, this.node.password, this.node.port, this.node.host).subscribe(result => {\n this.upsertNode();\n });\n }\n\n changeFormValidator() {\n if (this.useConnectionString) {\n this.pageForm.controls[\"host\"].clearValidators();\n this.pageForm.controls[\"port\"].clearValidators();\n this.pageForm.controls[\"timeOut\"].clearValidators();\n this.pageForm.controls[\"userName\"].clearValidators();\n this.pageForm.controls[\"password\"].clearValidators();\n this.pageForm.controls[\"defaultDatabase\"].clearValidators();\n this.pageForm.controls[\"connectionString\"].addValidators([Validators.required]);\n } else {\n this.pageForm.controls[\"host\"].addValidators([Validators.required]);\n this.pageForm.controls[\"port\"].addValidators([Validators.required]);\n this.pageForm.controls[\"timeOut\"].addValidators([Validators.required]);\n this.pageForm.controls[\"userName\"].addValidators([Validators.required]);\n this.pageForm.controls[\"password\"].addValidators([Validators.required]);\n this.pageForm.controls[\"defaultDatabase\"].addValidators([Validators.required]);\n this.pageForm.controls[\"connectionString\"].clearValidators()\n }\n\n ['host', 'port', 'timeOut', 'userName', 'password', 'defaultDatabase', 'connectionString'].forEach(field => {\n this.pageForm.controls[field].updateValueAndValidity();\n });\n }\n\n\n checkNodeConnectivity() {\n if (this.node.password) {\n this.nodeService.checkNodeConnectivity(this.node).subscribe(res => {\n this.coreService.showSuccessMessage(res)\n })\n } else {\n this.coreService.showErrorMessage(this.translate.instant(\"NodeFormPage.EnterPassword\"))\n }\n\n\n }\n\n checkConnection(con: MatCheckboxChange) {\n this.useConnectionString = con.checked\n if (!this.useConnectionString) {\n this.node.connectionString = \"\"\n }\n\n\n this.changeFormValidator()\n }\n\n selfServiceToggle(event) {\n this.node.selfServiceEnabled = event.checked ? 1 : 0\n }\n\n}\n\n","\n\n\n \n\n
\n \n {{ 'NodeFormPage.Type' | translate }}\n \n Node\n Connector\n \n \n
\n\n \n {{ 'NodeFormPage.SSL' | translate }}\n \n Disable\n Enable\n \n \n
\n\n \n {{ 'NodeFormPage.DataNode' | translate }}\n \n {{type.name}}\n \n \n
\n\n \n {{ 'NodeFormPage.Name' | translate }}\n \n \n
\n\n \n {{\"NodeFormPage.SelfServiceEnabled\"|translate}}\n \n
\n\n \n Use\n Connection String\n \n
\n
\n \n {{ 'NodeFormPage.ConnectionString' | translate }}\n \n \n
\n
\n\n
\n \n {{ 'NodeFormPage.Host' | translate }}\n \n \n
\n\n \n {{ 'NodeFormPage.Port' | translate }}\n \n \n
\n\n \n {{ 'NodeFormPage.TimeOut' | translate }}\n \n \n
\n\n \n {{ 'NodeFormPage.Username' | translate }}\n \n \n
\n\n \n {{ 'NodeFormPage.Password' | translate }}\n \n \n
\n\n \n {{ 'NodeFormPage.DefaultDatabase' | translate }}\n \n \n
\n
\n\n\n
\n\n\n
\n\n \n \n \n","import { Component, OnInit, ViewChild } from '@angular/core';\nimport { NodeService } from 'src/app/services/node/node.service';\nimport { Node } from 'src/app/models/responses/nodeResponse';\nimport { NgxSpinnerService } from 'ngx-spinner';\nimport { MatDialog } from '@angular/material/dialog';\nimport { MatTableDataSource } from '@angular/material/table';\nimport { MatPaginator } from '@angular/material/paginator';\nimport { MatSort } from '@angular/material/sort';\nimport { ActionDialogComponent } from 'src/app/components/action-dialog/action-dialog/action-dialog.component';\nimport { NodeFormComponent } from './node-form/node-form.component';\nimport { ModalService } from 'src/app/services/modal/modal.service';\nimport { TranslateService } from '@ngx-translate/core';\nimport { Router } from '@angular/router';\n\n@Component({\n selector: 'app-node',\n templateUrl: './node.component.html',\n styleUrls: ['./node.component.scss']\n})\nexport class NodeComponent implements OnInit {\n\n displayedColumns: string[] = ['icon', 'name', 'nodeId', 'host', 'port', 'action'];\n displayedColumnsName: string[] = [this.translate.instant(\"Common.Icon\"), this.translate.instant(\"NodePage.Name\"), this.translate.instant(\"NodePage.Id\"), this.translate.instant(\"NodePage.Host\"), this.translate.instant(\"NodePage.Port\"), this.translate.instant(\"NodePage.Action\")];\n nodes: Node[] = [];\n\n constructor(\n private dialog: MatDialog,\n private spinner: NgxSpinnerService,\n private nodeService: NodeService,\n private modalService: ModalService,\n private translate: TranslateService,\n private rouuter: Router\n ) { }\n\n ngOnInit(): void {\n this.getNodes();\n }\n\n getNodes() {\n this.spinner.show();\n this.nodeService.getNodes().subscribe(result => {\n this.nodes = result.map(item => {\n return { ...item, icon: item.port == '7000' ? '/assets/images/icons/node7000.jpeg' : '/assets/images/icons/node.jpeg' }\n });\n this.spinner.hide();\n });\n }\n\n deleteNodeComponent(node: Node) {\n this.modalService.openDeleteConfirm().subscribe(result => {\n if (result === true) {\n this.spinner.show();\n this.nodeService.deleteNode(node).subscribe(result => {\n this.getNodes();\n this.spinner.hide();\n });\n }\n });\n }\n\n openNode(event: any) {\n let data = {\n type: event.type as string,\n node: event.data as Node\n }\n this.modalService.openModal(data, NodeFormComponent, 'auto', '1000px').subscribe(result => {\n if (result === true) {\n this.getNodes();\n }\n });\n }\n\n\n gotoArchPage() {\n this.rouuter.navigate(['/landing/architecture'])\n }\n\n}\n","
\n \n \n \n \n
","import { FlatTreeControl, NestedTreeControl } from '@angular/cdk/tree';\nimport { AfterViewInit, Component, OnInit } from '@angular/core';\nimport { MatTreeFlatDataSource, MatTreeFlattener, MatTreeNestedDataSource } from '@angular/material/tree';\nimport Drawflow from 'drawflow';\nimport { concatMap } from 'rxjs/operators';\nimport { DataStore } from 'src/app/models/responses/dataStoreResponse';\nimport { Flow } from 'src/app/models/responses/flowScript';\nimport { Node } from 'src/app/models/responses/nodeResponse';\nimport { ArchitectureService } from 'src/app/services/architecture/architecture.service';\n\n\n\n\ninterface ExampleFlatNode {\n expandable: boolean;\n name: string;\n level: number;\n data: any;\n}\n\n\n@Component({\n selector: 'app-server-arch',\n templateUrl: './server-arch.component.html',\n styleUrls: ['./server-arch.component.scss']\n})\n\n\nexport class ServerArchComponent implements OnInit {\n\n TREE_DATA: {\n name: string;\n children?: any[];\n icon: string,\n }[] = [];\n\n bussionServers: string[] = []\n bussionConnectors: any[] = []\n bussionDataNodes: Node[] = []\n dataFlows: Flow[] = []\n dataStores: DataStore[] = []\n\n\n\n private _transformer = (node: {\n name: string;\n children?: any[];\n }, level: number) => {\n return {\n expandable: !!node.children && node.children.length > 0,\n name: node.name,\n level: level,\n data: node\n };\n };\n\n treeControl = new FlatTreeControl(\n node => node.level,\n node => node.expandable,\n );\n\n treeFlattener = new MatTreeFlattener(\n this._transformer,\n node => node.level,\n node => node.expandable,\n node => node.children,\n );\n\n dataSource = new MatTreeFlatDataSource(this.treeControl, this.treeFlattener);\n\n constructor(private archService: ArchitectureService) {\n\n }\n\n hasChild = (_: number, node: ExampleFlatNode) => node.expandable;\n\n\n ngOnInit(): void {\n this.getTree()\n }\n\n getTree() {\n\n\n this.archService.refreshData().pipe(\n concatMap(response => {\n if (response.result === true) {\n console.log('refreshed')\n }\n return this.archService.getBussionServers();\n }),\n concatMap(response => {\n if (response.result === true) {\n this.bussionServers = response.message\n }\n return this.archService.getBussionConnectors();\n }),\n concatMap(response => {\n if (response.result === true) {\n this.bussionConnectors = response.message\n }\n return this.archService.getBussionDataNodes();\n }),\n concatMap(response => {\n if (response.result === true) {\n this.bussionDataNodes = response.message\n }\n return this.archService.getBussionDataFlows();\n }),\n concatMap(response => {\n if (response.result === true) {\n this.dataFlows = response.message\n }\n return this.archService.getBussionDataStores();\n }),\n concatMap(response => {\n if (response.result === true) {\n this.dataStores = response.message\n }\n return this.archService.getBussionConnectorTasks();\n })\n ).subscribe(res => {\n\n this.bussionServers.map(item => {\n this.TREE_DATA.push({\n name: item,\n icon: 'server',\n children: this.bussionConnectors.map(con => {\n return {\n name: con.name,\n icon: 'connection',\n children: this.dataFlows.filter(x => x.bussionConnectorId == con.nodeId).map(flow => {\n return {\n name: flow.name,\n icon: 'flow',\n children: []\n }\n })\n }\n }).concat(\n this.bussionDataNodes.map(nd => {\n return {\n name: nd.name,\n icon: 'node',\n children: this.dataStores.map(ds => {\n return {\n name: ds.name,\n icon: 'dataStore',\n children: []\n }\n })\n }\n })\n\n )\n })\n })\n \n this.dataSource.data = this.TREE_DATA;\n })\n }\n\n \n}\n","
\n \n \n \n \n \n
\n \n {{node.name}}\n
\n
\n \n \n \n \n
\n \n {{node.name}}\n
\n
\n
\n
","import { Component, OnInit } from '@angular/core';\nimport { UntypedFormGroup, UntypedFormControl, Validators } from '@angular/forms';\nimport { TranslateService } from '@ngx-translate/core';\nimport { PasswordPolicy } from 'src/app/models/requests/passwordPolicy';\nimport { CoreService } from 'src/app/services/core/core.service';\nimport { LicenseService } from 'src/app/services/license/license.service';\n\n@Component({\n selector: 'app-password-policy',\n templateUrl: './password-policy.component.html',\n styleUrls: ['./password-policy.component.scss']\n})\nexport class PasswordPolicyComponent implements OnInit {\n\n pageForm: UntypedFormGroup;\n\n passwordPolicies: PasswordPolicy[] = [];\n constructor(\n private licenseService: LicenseService,\n private coreService: CoreService,\n private translate: TranslateService) { }\n\n ngOnInit(): void {\n this.getPasswordPolicy();\n\n this.pageForm = new UntypedFormGroup({\n minLength: new UntypedFormControl([Validators.required, Validators.min(8)])\n });\n }\n\n private getPasswordPolicy() {\n this.licenseService.getPasswordPolicy().subscribe(result => {\n this.passwordPolicies = result;\n });\n }\n\n\n updatePasswordPolicy() {\n if (this.checkValidation()) {\n this.licenseService.updatePasswordPolicy(this.passwordPolicies).subscribe(result => {\n \n });\n }\n else {\n this.coreService.showErrorMessage(this.translate.instant(\"ErrorMessages.PasswordPolicyMinLength\"));\n }\n \n }\n\n private checkValidation(): Boolean {\n var result = true\n this.passwordPolicies.forEach(p => { \n if (p.minLength < 4) {\n result = false\n }\n });\n return result\n }\n\n}","
\n
\n
\n\n \n \n {{ 'PasswordPolicyPage.MinLength' | translate }}\n \n \n
\n\n {{ 'PasswordPolicyPage.HasBigLetter' | translate }}\n {{ 'PasswordPolicyPage.HasNumber' | translate }}\n {{ 'PasswordPolicyPage.HasSmallLetter' | translate }}\n {{ 'PasswordPolicyPage.HasSpecialChar' | translate }}\n\n
\n
\n \n
","import { Component, OnInit, ViewChild, Inject } from '@angular/core';\nimport { MAT_DIALOG_DATA, MatDialogRef } from '@angular/material/dialog';\nimport { UntypedFormControl, UntypedFormGroup, Validators } from '@angular/forms';\nimport { Role } from 'src/app/models/responses/rolesResponse';\nimport { UserService } from 'src/app/services/user/user.service';\nimport { User } from 'src/app/models/responses/usersResponse';\nimport { RoleService } from 'src/app/services/role/role.service';\nimport { NgxSpinnerService } from 'ngx-spinner';\nimport { PermissionService } from 'src/app/services/permission/permission.service';\nimport { CoreService } from 'src/app/services/core/core.service';\nimport { TranslateService } from '@ngx-translate/core';\nimport { MatSelectionListChange } from '@angular/material/list';\n\n@Component({\n selector: 'app-role-form',\n templateUrl: './role-form.component.html',\n styleUrls: ['./role-form.component.scss']\n})\nexport class RoleFormComponent implements OnInit {\n\n pageForm: UntypedFormGroup;\n title: string = \"\";\n isCreateForm: boolean = false;\n users: User[] = []\n selectedUsers: any[] = [];\n selectedPermissons: any[] = [];\n permissions: string[] = [];\n compareFunctionForUser = (o1: any, o2: any) => o1 === o2;\n\n\n\n paginatedMembers: User[] = [];\n filteredMembers: User[] = [];\n totalPages1: number = 1;\n currentPage1: number = 1;\n pageSize: number = 5;\n\n paginatedPermission: { item: string, selected: boolean }[] = [];\n filteredPermissions: string[] = [];\n totalPages: number = 1;\n currentPage: number = 1;\n\n role: Role = {\n roleId: \"\",\n roleName: \"\",\n description: \"\",\n domain: \"\",\n createdBy: \"\",\n updatedBy: \"\",\n createdDate: \"\",\n updatedDate: \"\",\n users: [],\n permisions: []\n }\n constructor(\n @Inject(MAT_DIALOG_DATA) public data: any,\n private dialogRef: MatDialogRef,\n private spinner: NgxSpinnerService,\n private userService: UserService,\n private roleService: RoleService,\n private permissionService: PermissionService,\n private coreService: CoreService,\n private translate: TranslateService\n ) { }\n\n ngOnInit(): void {\n this.pageForm = new UntypedFormGroup({\n roleName: new UntypedFormControl(this.role.roleName, [Validators.required]),\n });\n\n this.title = this.data.type == 'update' ? this.translate.instant(\"RoleFormPage.TitleUpdate\") : this.translate.instant(\"RoleFormPage.TitleCreate\");\n if (this.data.role) {\n this.role = Object.assign({}, this.data.role);\n this.selectedUsers = this.role.users;\n this.selectedPermissons = this.role.permisions;\n\n }\n this.getUsers();\n this.getPermissions();\n }\n //PermissionOfRole search\n applyFilterPermission(filterValue: string) {\n this.filteredPermissions = this.permissions.filter((permission) => {\n return permission.toLowerCase().includes(filterValue.toLowerCase())\n });\n this.totalPages = Math.ceil(this.filteredPermissions.length / this.pageSize);\n this.currentPage = 1;\n this.updatePaginatedPermissionRole();\n }\n //pagination members Group\n updatePaginatedPermissionRole() {\n const start = (this.currentPage - 1) * this.pageSize;\n const end = start + this.pageSize;\n var list = this.filteredPermissions.map(item => {\n return { item, selected: this.selectedPermissons.some(x => x == item) }\n })\n this.paginatedPermission = list.slice(start, end);\n }\n previousPermission() {\n this.currentPage--;\n this.updatePaginatedPermissionRole();\n }\n nextPermission() {\n this.currentPage++;\n this.updatePaginatedPermissionRole();\n }\n\n\n changeselectedPermissionslist(event: any) {\n if (event.options[0]._selected) {\n this.selectedPermissons.push(event.options[0]._value)\n } else {\n this.selectedPermissons = this.selectedPermissons.filter(x => x !== event.options[0]._value)\n }\n\n // if (localStorage.getItem('user')) {\n // var user = JSON.parse(localStorage.getItem('user'))\n // user.permissions = this.selectedPermissons\n // localStorage.setItem('user', JSON.stringify(user))\n // }\n }\n\n permissionSelectionChange(change: MatSelectionListChange) {\n // do something when permission selection changes\n }\n\n applyFilterMembers(filterValue: string) {\n this.filteredMembers = this.users.filter((user) => {\n const fullName = user.firstName + \" \" + user.lastName;\n return fullName.toLowerCase().includes(filterValue.toLowerCase());\n });\n this.totalPages1 = Math.ceil(this.filteredMembers.length / this.pageSize);\n this.currentPage1 = 1;\n this.updatePaginatedMembersRole();\n }\n //pagination members Group\n updatePaginatedMembersRole() {\n const start = (this.currentPage1 - 1) * this.pageSize;\n const end = start + this.pageSize;\n var list = this.filteredMembers.map(item => {\n return { ...item, selected: this.selectedUsers.some(x => x == item.userId) }\n })\n this.paginatedMembers = list.slice(start, end);\n }\n previousMembers() {\n this.currentPage1--;\n this.updatePaginatedMembersRole();\n }\n nextMembers() {\n this.currentPage1++;\n this.updatePaginatedMembersRole();\n }\n\n\n\n changeselectedlist(event: any) {\n if (event.options[0]._selected) {\n this.selectedUsers.push(event.options[0]._value)\n } else {\n this.selectedUsers = this.selectedUsers.filter(x => x !== event.options[0]._value)\n }\n }\n\n\n private getUsers() {\n this.userService.getUsers().subscribe(result => {\n this.users = result;\n this.filteredMembers = result;\n this.totalPages1 = Math.ceil(this.filteredMembers.length / this.pageSize);\n this.updatePaginatedMembersRole();\n });\n }\n\n private getPermissions() {\n this.permissionService.getPermissions().subscribe(permissions => {\n this.permissions = permissions;\n this.filteredPermissions = permissions;\n this.totalPages = Math.ceil(this.filteredPermissions.length / this.pageSize);\n this.updatePaginatedPermissionRole();\n })\n }\n\n upsertRole() {\n this.role.users = this.selectedUsers\n this.role.users = [...new Set(this.role.users)];\n this.role.permisions = this.selectedPermissons\n this.role.permisions = [...new Set(this.role.permisions)];\n\n // console.log(\"upsert\",this.role)\n var user = JSON.parse(localStorage.getItem('user'))\n\n if (user) {\n if (user.roles.includes(this.role.roleName)) {\n user.permissions = this.role.permisions\n }\n localStorage.setItem('user', JSON.stringify(user))\n }\n\n if (this.pageForm.invalid) {\n this.coreService.showFormFillError();\n return;\n }\n this.spinner.show();\n this.roleService.upsertRole(this.role).subscribe(result => {\n console.log(result)\n if (result) {\n this.coreService.showSuccessMessage(this.translate.instant('Common.Success'))\n this.spinner.hide();\n this.dialogRef.close(true);\n }\n\n });\n }\n\n}\n","\n\n\n \n
\n \n {{ 'RoleFormPage.Name' | translate }}\n \n \n
\n\n \n {{ 'RoleFormPage.Description' | translate }}\n \n \n
\n
\n\n \n \n Search\n \n \n \n \n {{p.item}}\n \n \n
\n \n {{ currentPage }}\n \n
\n
\n\n \n \n Search\n \n \n \n \n {{user.firstName}} {{user.lastName}}\n \n \n
\n \n {{ currentPage1 }}\n \n
\n
\n\n
\n\n \n \n \n","import { Component, OnInit, ViewChild } from '@angular/core';\nimport { MatPaginator } from '@angular/material/paginator';\nimport { MatSort } from '@angular/material/sort';\nimport { MatTableDataSource } from '@angular/material/table';\nimport { RoleService } from 'src/app/services/role/role.service';\nimport { NgxSpinnerService } from 'ngx-spinner';\nimport { Role } from 'src/app/models/responses/rolesResponse';\nimport { MatDialog } from '@angular/material/dialog';\nimport { RoleFormComponent } from './role-form/role-form.component';\nimport { ActionDialogComponent } from 'src/app/components/action-dialog/action-dialog/action-dialog.component';\nimport { ModalService } from 'src/app/services/modal/modal.service';\nimport { PermissionService } from 'src/app/services/permission/permission.service';\nimport { TranslateService } from '@ngx-translate/core';\n\n@Component({\n selector: 'app-role',\n templateUrl: './role.component.html',\n styleUrls: ['./role.component.scss']\n})\nexport class RoleComponent implements OnInit {\n\n displayedColumns: string[] = ['roleName','roleId', 'description', 'action'];\n displayedColumnsName: string[] = [this.translate.instant(\"RolesPage.RoleName\"), this.translate.instant(\"RolesPage.RoleId\"),this.translate.instant(\"RolesPage.Description\"), this.translate.instant(\"RolesPage.Action\")];\n roles: Role[] = [];\n\n constructor(\n private roleService: RoleService,\n private spinner: NgxSpinnerService,\n private modalService: ModalService,\n private permissionService: PermissionService,\n private translate: TranslateService\n ) { }\n\n ngOnInit(): void {\n this.getRoles();\n }\n\n private getRoles(): void {\n this.spinner.show();\n this.roleService.getRoles().subscribe(roles => {\n this.roles = roles;\n this.spinner.hide();\n });\n }\n\n openRole(event: any) {\n let data = {\n type: event.type as string,\n role: event.data as Role\n }\n\n this.modalService.openModal(data, RoleFormComponent, 'auto', '1000px').subscribe(result => {\n if (result === true) {\n this.getRoles();\n this.permissionService.getUserPermissions(true).subscribe(r => { });\n }\n });\n }\n\n deleteRole(role: Role) {\n this.modalService.openDeleteConfirm().subscribe(selection => {\n if (selection === true) {\n this.spinner.show();\n this.roleService.deleteRole(role).subscribe(result => {\n this.getRoles();\n });\n }\n })\n }\n\n}\n","
\n \n \n
","import { Component, Inject, OnInit } from '@angular/core';\nimport { UntypedFormControl, UntypedFormGroup, Validators } from '@angular/forms';\nimport { MatDialogRef, MAT_DIALOG_DATA } from '@angular/material/dialog';\nimport { TranslateService } from '@ngx-translate/core';\nimport { NgxSpinnerService } from 'ngx-spinner';\nimport { AllowedScript } from 'src/app/models/responses/allowedScriptResponse';\nimport { CoreService } from 'src/app/services/core/core.service';\nimport { ScriptsService } from 'src/app/services/scripts/scripts.service';\n\n@Component({\n selector: 'app-script-form',\n templateUrl: './script-form.component.html',\n styleUrls: ['./script-form.component.scss']\n})\nexport class ScriptFormComponent implements OnInit {\n\n pageForm: UntypedFormGroup;\n script: AllowedScript = {\n scriptName: ''\n }\n title: string = ''\n isCreateForm: boolean = false;\n newScripts: AllowedScript[] = []\n\n constructor(@Inject(MAT_DIALOG_DATA) public data: any, private translate: TranslateService,\n private coreService: CoreService, private spinner: NgxSpinnerService, private scriptService: ScriptsService,\n private dialogRef: MatDialogRef,\n ) { }\n\n ngOnInit(): void {\n\n if (this.data.type == 'update') {\n this.script = Object.assign({}, this.data.script);\n this.isCreateForm = false\n } else {\n this.isCreateForm = true\n }\n\n this.pageForm = new UntypedFormGroup({\n scriptName: new UntypedFormControl(this.script.scriptName, [Validators.required]),\n });\n\n\n\n this.title = this.data.type == 'update' ? this.translate.instant(\"ScriptsPage.TitleUpdate\") : this.translate.instant(\"ScriptsPage.TitleCreate\");\n\n\n\n }\n\n upsertScript() {\n\n if (this.pageForm.invalid || (this.isCreateForm && this.newScripts.length <= 0)) {\n this.coreService.showFormFillError();\n return;\n }\n this.spinner.show();\n var upsertedScripts: AllowedScript[] = []\n\n if (this.data.script) {\n this.data.oldScripts.find(x => x.id == this.script.id).scriptName = this.pageForm.value.scriptName\n }\n\n\n var oldscriptsforinsert: AllowedScript[] = this.data.oldScripts.map(item => {\n return {\n scriptName: item.scriptName\n }\n })\n\n\n upsertedScripts = this.newScripts.concat(oldscriptsforinsert)\n\n\n this.scriptService.upsertScript(upsertedScripts).subscribe(result => {\n this.spinner.hide();\n this.dialogRef.close(true);\n });\n }\n\n addElement( listtype: string) {\n if (listtype === 'newScripts' && this.pageForm.get('scriptName').valid) {\n const scriptName = this.pageForm.get('scriptName').value;\n this.newScripts.push({ scriptName: scriptName.replace('\\n', '') });\n // this.pageForm.get('scriptName').reset(); // Değeri sıfırlayınca newScript boş algılıyor validasyona takılıyor \n \n }\n }\n deleteElement(selectedscript: AllowedScript, listtype: string) {\n if (listtype == 'newScripts') {\n this.newScripts = this.newScripts.filter(x => x.scriptName !== selectedscript.scriptName)\n \n // event.target.value = ''\n }\n }\n\n}\n","\n\n\n \n
\n \n {{ 'ScriptsPage.Name' | translate }}\n \n \n \n
\n
\n {{i+1}}-){{item.scriptName}}\n highlight_off\n
\n\n
\n\n
\n\n \n \n \n","import { Component, OnInit } from '@angular/core';\nimport { TranslateService } from '@ngx-translate/core';\nimport { NgxSpinnerService } from 'ngx-spinner';\nimport { AllowedScript } from 'src/app/models/responses/allowedScriptResponse';\nimport { ModalService } from 'src/app/services/modal/modal.service';\nimport { ScriptsService } from 'src/app/services/scripts/scripts.service';\nimport { ScriptFormComponent } from './script-form/script-form/script-form.component';\n\n@Component({\n selector: 'app-scripts',\n templateUrl: './scripts.component.html',\n styleUrls: ['./scripts.component.scss']\n})\nexport class ScriptsComponent implements OnInit {\n\n constructor(private scriptService: ScriptsService, private modalService: ModalService,\n private translate: TranslateService, private spinner: NgxSpinnerService) { }\n\n displayedColumns: string[] = ['scriptName', 'action'];\n displayedColumnsName: string[] = [this.translate.instant(\"ScriptsPage.ScriptName\"), this.translate.instant(\"RolesPage.Action\")];\n allScripts: AllowedScript[] = []\n \n\n ngOnInit(): void {\n this.getAllAllowedScripts()\n }\n\n\n getAllAllowedScripts() {\n this.scriptService.getAllowedScripts().subscribe(res => {\n this.allScripts = res.map((item, key) => {\n return {\n scriptName: item.scriptName,\n id: key\n }\n })\n })\n }\n\n openScript(event: any) {\n let data = {\n type: event.type as string,\n script: event.data as AllowedScript,\n oldScripts: this.allScripts\n }\n\n this.modalService.openModal(data, ScriptFormComponent, 'auto', '1000px').subscribe(result => {\n if (result === true) {\n this.getAllAllowedScripts();\n }\n });\n }\n\n\n deleteScript(script: AllowedScript) {\n this.modalService.openDeleteConfirm().subscribe(selection => {\n if (selection === true) {\n this.spinner.show();\n var scriptsforupdate=this.allScripts.filter(x=>x.id!==script.id).map(item=>{\n return{\n scriptName:item.scriptName\n }\n })\n this.scriptService.upsertScript(scriptsforupdate).subscribe(result => {\n this.spinner.hide()\n this.getAllAllowedScripts()\n });\n }\n })\n }\n\n}\n","
\n \n \n
\n\n ","import { Component, OnInit } from '@angular/core';\nimport { UntypedFormBuilder, UntypedFormControl, UntypedFormGroup } from '@angular/forms';\nimport { TranslateService } from '@ngx-translate/core';\nimport { CoreService } from 'src/app/services/core/core.service';\nimport { tap, switchMap } from 'rxjs/operators'\nimport { of } from 'rxjs'\nimport { SystemParametersService } from 'src/app/services/system-parameters/system-parameters.service';\nimport { PermissionService } from 'src/app/services/permission/permission.service';\nimport { MatSlideToggleChange } from '@angular/material/slide-toggle';\nimport { HttpClient, HttpHeaders } from '@angular/common/http';\nimport { environment } from 'src/environments/environment';\nimport { DashboardFormComponent } from '../dashboard/dashboard-form/dashboard-form.component';\nimport { ModalService } from 'src/app/services/modal/modal.service';\nimport { Dashboard } from 'src/app/models/responses/dashboardResponse';\nimport { UploadConfigurationFormComponent } from 'src/app/components/upload-configuration-form/upload-configuration-form.component';\nimport { BussionLoginComponent } from 'src/app/components/bussion-login/bussion-login.component';\nimport { BussionMainService } from 'src/app/services/bussion-main/bussion-main.service';\nimport { Router } from '@angular/router';\n\n@Component({\n selector: 'app-system-parameters',\n templateUrl: './system-parameters.component.html',\n styleUrls: ['./system-parameters.component.scss']\n})\nexport class SystemParametersComponent implements OnInit {\n\n constructor(\n private systemParametersService: SystemParametersService,\n private formBuilder: UntypedFormBuilder,\n private coreService: CoreService,\n private permissionService: PermissionService,\n private translate: TranslateService,\n private http: HttpClient,\n private modalService: ModalService,\n private bussionMainService: BussionMainService,\n private router:Router,\n ) { }\n isDebugger: boolean;\n isCaptcha: boolean;\n pageForm: UntypedFormGroup;\n maxTries: string;\n version: string;\n permissions: string[] = [];\n backupConfiguration: string;\n restoreConfiguration: string;\n downloadConfiguration: string;\n\n ngOnInit(): void {\n this.pageForm = new UntypedFormGroup({\n debuggerControl: new UntypedFormControl(this.isDebugger),\n maxTriesControl: new UntypedFormControl(this.maxTries),\n captchaControl: new UntypedFormControl(this.isCaptcha)\n })\n\n this.getSystemParameters()\n this.getBussionVersion()\n\n this.getCaptcha()\n\n this.getUserRoleList()\n }\n openBussionLogin(event) {\n this.router.navigate(['/landing/bussion-login'])\n }\n\n openLanguageSetting(event){\n this.router.navigate(['/landing/language-setting'])\n\n }\n \n openBussionMain() {\n if(this.permissions.includes('SystemConfiguration')){\n this.router.navigate(['/landing/bussion-main'])\n }\n }\n \n getCaptcha() {\n this.systemParametersService.getCaptcha().subscribe((res) => {\n if (res == false) {\n\n this.isCaptcha = false\n } else {\n this.isCaptcha = true\n }\n this.pageForm.patchValue({ captchaControl: this.isCaptcha })\n })\n }\n\n getBussionVersion() {\n this.systemParametersService.getBussionVersion().subscribe((res) => {\n this.version = res;\n })\n }\n\n getSystemParameters() {\n this.systemParametersService.getSystemParameters().subscribe((res: any) => {\n if (res[0].DebuggerEnabled == 'False') {\n this.isDebugger = false;\n } else {\n this.isDebugger = true;\n }\n this.pageForm.patchValue({ debuggerControl: this.isDebugger })\n\n if (res[0].MaxIllegalTriesForDataOps) {\n this.maxTries = res[0].MaxIllegalTriesForDataOps;\n this.pageForm.patchValue({ maxTriesControl: this.maxTries })\n }\n\n })\n }\n\n getUserRoleList() {\n this.permissionService.getUserRoleList().subscribe(roleList => {\n this.permissions = roleList;\n });\n }\n\n saveCaptcha(event: MatSlideToggleChange) {\n this.isCaptcha = event.checked;\n\n this.systemParametersService.setCaptcha(this.isCaptcha)\n .subscribe(res => {\n if (res) {\n this.coreService.showSuccessMessage(this.translate.instant('SystemParametersPage.SystemParametersConfig'))\n }\n else {\n this.coreService.showErrorMessage(this.translate.instant('SystemParametersPage.SystemParametersConfigFaild'))\n }\n });\n }\n\n saveDebugger(event: MatSlideToggleChange) {\n this.isDebugger = event.checked;\n\n this.systemParametersService.changeDebugState(this.isDebugger ? 'TRUE' : 'FALSE')\n .subscribe(res => {\n if (res) {\n this.coreService.showSuccessMessage(this.translate.instant('SystemParametersPage.SystemParametersConfig'))\n }\n else {\n this.coreService.showErrorMessage(this.translate.instant('SystemParametersPage.SystemParametersConfigFaild'))\n }\n });\n }\n\n saveMaxTries() {\n this.systemParametersService.setMaxIllegalTries(this.maxTries)\n .subscribe(res => {\n if (res) {\n this.coreService.showSuccessMessage(this.translate.instant('SystemParametersPage.SystemParametersConfig'))\n }\n else {\n this.coreService.showErrorMessage(this.translate.instant('SystemParametersPage.SystemParametersConfigFaild'))\n }\n });\n }\n\n backupBussionConfiguration() {\n this.systemParametersService.backupBussionConfiguration().subscribe(res => {\n this.backupConfiguration = res\n })\n }\n restoreBussionConfiguration() {\n this.systemParametersService.restoreBussionConfiguration().subscribe(res => {\n this.restoreConfiguration = res\n })\n }\n downloadCurrentConfiguration() {\n this.systemParametersService.downloadCurrentConfiguration().subscribe(res => {\n this.downloadConfiguration = res\n })\n }\n\n downloadZipFile() {\n this.systemParametersService.downloadCurrentConfiguration().subscribe(res => {\n // this.downloadConfiguration = res\n const downloadUrl = environment.baseUrl + res;\n let headers = new HttpHeaders();\n headers = headers.set('Accept', 'application/zip');\n const options = { headers: headers, responseType: 'blob' as 'json' };\n this.http.get(downloadUrl, options).subscribe(blob => {\n const downloadLink = document.createElement('a');\n const url = URL.createObjectURL(blob);\n downloadLink.href = url;\n downloadLink.download = 'backup.zip';\n downloadLink.click();\n URL.revokeObjectURL(url);\n });\n })\n }\n\n onFileSelected(event) {\n const file: File = event.target.files[0];\n }\n openDashboard(event: any) {\n let data = {\n type: event.type as string,\n }\n this.modalService.openModal(data, UploadConfigurationFormComponent, 'auto', '800px').subscribe(result => {\n if (result === true) {\n\n }\n });\n }\n}","
\n \n
\n \n \n
\n\n
    \n
  • \n \n {{'SystemParametersPage.Debugstate'|translate}}\n
  • \n
  • \n \n {{'SystemParametersPage.CaptcaState'|translate}}\n
  • \n
  • \n \n {{'SystemParametersPage.MaxTries'|translate}}\n \n \n
  • \n
\n\n
\n
    \n
  • \n \n
  • \n
  • {{'SystemParametersPage.LastBuild'|translate}} {{version}}\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
","import { Component, OnInit, Inject } from '@angular/core';\nimport { MAT_DIALOG_DATA, MatDialogRef } from '@angular/material/dialog';\nimport { User } from 'src/app/models/responses/usersResponse';\nimport { GroupService } from 'src/app/services/group/group.service';\n\nimport { Group } from 'src/app/models/responses/groupsResponse';\nimport { Role } from 'src/app/models/responses/rolesResponse';\nimport { RoleService } from 'src/app/services/role/role.service';\nimport { UserService } from 'src/app/services/user/user.service';\nimport { NgxSpinnerService } from 'ngx-spinner';\nimport { UntypedFormGroup, UntypedFormControl, Validators } from '@angular/forms';\nimport { CoreService } from 'src/app/services/core/core.service';\nimport { TranslateService } from '@ngx-translate/core';\nimport { DeployAppService } from 'src/app/services/deploy-app/deploy-app.service';\nimport { App } from 'src/app/models/responses/appsResponse';\nimport { AuthService } from 'src/app/services/auth/auth.service';\nimport { SystemParametersService } from 'src/app/services/system-parameters/system-parameters.service';\nimport { languagePacts } from 'src/app/models/responses/languagePacts';\n\n@Component({\n selector: 'create-user',\n templateUrl: './create-user.component.html',\n styleUrls: ['./create-user.component.scss']\n})\nexport class CreateUserComponent implements OnInit {\n\n pageForm: UntypedFormGroup;\n title: string = \"\";\n passwordAgain: string = \"\";\n selectedGroups: Group[] = [];\n compareFunctionForGroups = (o1: any, o2: any) => o1.item.groupId === o2.item.groupId;\n selectedRoles: Role[] = [];\n compareFunctionForRoles = (o1: any, o2: any) => o1.roleId === o2.roleId;\n compareFunctionForAccountStatus = (o1: any, o2: any) => o1 === o2.toString();\n groups: Group[] = [];\n roles: Role[] = [];\n user: User = {\n avatar: \"\",\n userId: \"\",\n lastLogin: new Date(),\n accountStatus: 1,\n language: \"\",\n activeDashboards: [],\n firstName: \"\",\n lastName: \"\",\n email: \"\",\n password: \"\",\n domain: \"\",\n token: \"\",\n organization: \"\",\n homePage: []\n };\n isCreateForm: boolean = true;\n isOwnUser: boolean = false;\n pageVeriable: any = {\n group: { list: [], filtered: [], paginated: [], totalPages: 0, currentPage: 1, search: 'groupName', selected: [], key: 'groupId' },\n role: { list: [], filtered: [], paginated: [], totalPages: 0, currentPage: 1, search: 'roleName', selected: [], key: 'roleId' }\n }\n\n paginatedGroups: { item: Group, selected: boolean }[] = [];\n pageSize: number = 5\n filteredGroups: { item: Group, selected: boolean }[] = []\n mainpage: string = ''\n appList: App[] = []\n languages: languagePacts[] = []\n\n constructor(\n @Inject(MAT_DIALOG_DATA) public data: any,\n private dialogRef: MatDialogRef,\n private groupService: GroupService,\n private roleService: RoleService,\n private userService: UserService,\n private spinner: NgxSpinnerService,\n private coreService: CoreService,\n private translate: TranslateService,\n private appService: DeployAppService,\n private authService: AuthService,\n private systemService: SystemParametersService\n ) { }\n\n ngOnInit(): void {\n this.pageForm = new UntypedFormGroup({\n firstName: new UntypedFormControl(this.user.firstName, [Validators.required]),\n lastName: new UntypedFormControl(this.user.lastName, [Validators.required]),\n email: new UntypedFormControl(this.user.email, [Validators.required])\n });\n\n this.title = this.data.type == 'update' ? this.translate.instant(\"UserFormPage.TitleUpdate\") : this.translate.instant(\"UserFormPage.TitleCreate\");\n this.isCreateForm = this.data.type == 'update' ? false : true;\n this.isOwnUser = this.data.ownUser;\n if (this.data.user) {\n this.user = Object.assign({}, this.data.user);\n this.user.password = \"\";\n if (this.user.homePage[0])\n this.mainpage = this.user.homePage[0].objectId\n\n }\n this.getGroups();\n this.getRoles();\n this.getApps();\n this.getLanguages();\n }\n\n\n getLanguages() {\n this.systemService.getLanguagePacts().subscribe((res: languagePacts[]) => {\n this.languages = res.filter(x => x.type.toLowerCase().includes('client'))\n })\n }\n\n getApps() {\n this.appService.getApps().subscribe(res => {\n this.appList = res\n })\n }\n\n private getRoles() {\n this.roleService.getRoles().subscribe(result => {\n this.roles = result;\n this.pageVeriable['role'].list = this.roles\n this.getUserRoles();\n });\n }\n\n private getUserRoles() {\n this.roleService.getUsersRoles(this.user.userId).subscribe(result => {\n this.selectedRoles = result;\n this.pageVeriable['role'].selected = this.selectedRoles\n this.pageVeriable['role'].filtered = this.roles.map(item => {\n return { item: item, selected: this.selectedRoles.some(x => x.roleId == item.roleId) }\n })\n this.pageVeriable['role'].totalPages = Math.ceil(this.pageVeriable['role'].filtered.length / this.pageSize);\n this.updatePaginated('role')\n });\n }\n\n private getGroups() {\n this.groupService.getGroups().subscribe(result => {\n this.groups = result;\n this.pageVeriable['group'].list = this.groups\n this.getUsersGroups();\n\n });\n }\n\n private getUsersGroups() {\n this.groupService.getUserGroups(this.user.userId).subscribe(result => {\n this.selectedGroups = result;\n this.pageVeriable['group'].selected = this.selectedGroups\n this.pageVeriable['group'].filtered = this.groups.map(item => {\n return { item: item, selected: this.selectedGroups.some(x => x.groupId == item.groupId) }\n })\n this.pageVeriable['group'].totalPages = Math.ceil(this.pageVeriable['group'].filtered.length / this.pageSize);\n this.updatePaginated('group')\n });\n\n }\n\n upsertUser() {\n if (this.pageForm.invalid) {\n this.coreService.showFormFillError();\n return;\n }\n if (this.user.password !== this.passwordAgain) {\n this.coreService.showErrorMessage(this.translate.instant(\"ErrorMessages.PasswordNotSame\"));\n return;\n }\n\n if (this.mainpage) {\n var date = new Date();\n\n this.user.homePage = [{\n assignDate: date.toISOString(),\n assignedBy: this.authService.getUser()?.userId,\n objectId: this.mainpage,\n type: 1,\n object: JSON.stringify(this.appList.find(x => x.applicationId == this.mainpage))\n }]\n } else {\n this.user.homePage = []\n }\n\n this.spinner.show();\n let selectedGroups = this.pageVeriable['group'].selected.map((i: Group) => i.groupId)\n let selectedRoles = this.pageVeriable['role'].selected.map((i: Role) => i.roleId);\n // this.user.avatar = this.user.avatar.split(',')[1] == undefined ? this.user.avatar : this.user.avatar.split(',')[1];\n\n // debugger;\n\n this.userService.upsertUser(this.user, selectedRoles, selectedGroups).subscribe(result => {\n if (result) {\n this.spinner.hide();\n this.dialogRef.close(true);\n }\n });\n this.changeSystemLanguage(this.user)\n\n }\n\n changeSystemLanguage(user: User) {\n var currentUser = this.authService.getUserId()\n if (currentUser == user.userId) {\n this.authService.setLanguage(user.language)\n }\n }\n\n photoUploaded(photo: string) {\n this.user.avatar = photo;\n }\n currentPage: number = 1\n totalPages: number = 0\n currentPage2: number = 1\n totalPages2: number = 0\n\n previous(type: string) {\n this.pageVeriable[type].currentPage = this.pageVeriable[type].currentPage - 1\n this.updatePaginated(type)\n }\n next(type: string) {\n this.pageVeriable[type].currentPage = this.pageVeriable[type].currentPage + 1\n this.updatePaginated(type)\n }\n\n\n changeselected(event: any, type) {\n var selectedpageveriable = this.pageVeriable[type]\n\n if (event.options[0]._selected) {\n selectedpageveriable.filtered.find(x => x.item[selectedpageveriable.key] == event.options[0]._value[selectedpageveriable.key]).selected = true\n selectedpageveriable.selected.push(event.options[0]._value)\n } else {\n selectedpageveriable.filtered.find(x => x.item[selectedpageveriable.key] == event.options[0]._value[selectedpageveriable.key]).selected = false\n selectedpageveriable.selected = selectedpageveriable.selected.filter(x => x[selectedpageveriable.key] !== event.options[0]._value[selectedpageveriable.key])\n }\n\n }\n\n updatePaginated(type: string) {\n var selectedpageveriable = this.pageVeriable[type]\n const start = (selectedpageveriable.currentPage - 1) * this.pageSize;\n const end = start + this.pageSize;\n var list = selectedpageveriable.filtered\n selectedpageveriable.paginated = list.slice(start, end);\n }\n\n applyFilter(filterValue: string, type: string) {\n var selectedpageveriable = this.pageVeriable[type]\n var filtered = selectedpageveriable.list.filter((group) => {\n return group[selectedpageveriable.search].toLowerCase().includes(filterValue.toLowerCase())\n });\n selectedpageveriable.filtered = filtered.map(item => {\n return { item, selected: selectedpageveriable.selected.some(x => x[selectedpageveriable.key] == item[selectedpageveriable.key]) }\n })\n selectedpageveriable.totalPages = Math.ceil(selectedpageveriable.filtered.length / this.pageSize);\n selectedpageveriable.currentPage = 1;\n this.updatePaginated(type);\n }\n\n\n}\n","\n\n\n \n \n\n
\n
\n \n {{ 'UserFormPage.Name' | translate }}\n \n \n
\n\n \n {{ 'UserFormPage.Surname' | translate }}\n \n \n
\n\n \n {{ 'UserFormPage.Email' | translate }}\n \n \n
\n\n \n {{ 'UserFormPage.Password' | translate }}\n \n \n
\n\n \n {{ 'UserFormPage.PasswordAgain' | translate }}\n \n \n
\n\n \n {{ 'UserFormPage.Language' | translate }}\n \n {{item.name}}\n English\n Türkçe\n \n \n
\n\n\n
\n \n {{ 'UserFormPage.MainPage' | translate }}\n \n {{'Common.Select'|translate}}\n {{item.name}}\n \n \n \n
\n\n
\n\n \n {{ 'UserFormPage.AccountStatus' | translate }}\n \n Passive\n Active\n \n \n
\n\n \n {{ 'UserFormPage.Organization' | translate }}\n \n \n
\n\n \n {{ 'UserFormPage.Domain' | translate }}\n \n \n
\n
\n
\n\n\n
\n \n \n Search\n \n \n \n \n {{group.item.groupName}}\n \n \n
\n \n {{ pageVeriable['group'].currentPage }}\n \n
\n
\n\n \n \n Search\n \n \n \n \n {{role.item.roleName}}\n \n \n
\n \n {{ pageVeriable['role'].currentPage }}\n \n
\n
\n
\n\n\n\n\n
\n\n \n \n \n","import { Component, OnInit, ViewChild } from '@angular/core';\n\nimport { UserService } from 'src/app/services/user/user.service';\nimport { NgxSpinnerService } from 'ngx-spinner';\nimport { CreateUserComponent } from './create-user/create-user.component';\nimport { User } from 'src/app/models/responses/usersResponse';\nimport { ActionDialogComponent } from 'src/app/components/action-dialog/action-dialog/action-dialog.component';\nimport { ModalService } from 'src/app/services/modal/modal.service';\nimport { TranslateService } from '@ngx-translate/core';\n\n@Component({\n selector: 'app-user',\n templateUrl: './user.component.html',\n styleUrls: ['./user.component.scss']\n})\nexport class UserComponent implements OnInit {\n\n displayedColumns: string[] = ['avatar','userId', 'firstName', 'lastName', 'email', 'lastLogin', 'action'];\n displayedColumnsName: string[] = ['Avatar',this.translate.instant(\"UsersPage.userId\"), this.translate.instant(\"UsersPage.FirstName\"), this.translate.instant(\"UsersPage.LastName\"), this.translate.instant(\"UsersPage.Email\"), this.translate.instant(\"UsersPage.LastLogin\"), this.translate.instant(\"UsersPage.Action\")];\n users: User[] = [];\n\n constructor(\n private userService: UserService,\n private spinner: NgxSpinnerService,\n private modalService: ModalService,\n private translate: TranslateService\n ) { }\n\n ngOnInit(): void {\n this.init()\n }\n\n init() {\n this.getUsers()\n }\n\n getUsers() {\n this.spinner.show();\n this.userService.getUsers().subscribe(result => {\n this.spinner.hide();\n this.users = result;\n });\n }\n\n openUser(event: any) {\n let data = {\n type: event.type as string,\n user: event.data as User\n }\n this.modalService.openModal(data, CreateUserComponent, 'auto', '1000px').subscribe(result => {\n if (result === true) {\n this.getUsers();\n }\n });\n }\n\n deleteUser(user: User) {\n\n this.modalService.openDeleteConfirm().subscribe(result => {\n if (result === true) {\n this.spinner.show();\n this.userService.deleteUser(user).subscribe(result => {\n this.getUsers();\n });\n }\n });\n }\n\n}\n","
\n \n \n
","import { Component, OnInit, Inject, ViewChild } from '@angular/core';\nimport { MAT_DIALOG_DATA, MatDialogRef, MatDialog } from '@angular/material/dialog';\nimport { VisualComp } from 'src/app/models/responses/visualComponentResponse';\nimport { VisualService } from 'src/app/services/visual/visual.service';\nimport { NgxSpinnerService } from 'ngx-spinner';\nimport { WidgetLibraryService } from 'src/app/services/widget-library/widget-library.service';\nimport { WidgetLibrary } from 'src/app/models/responses/widgetLibraryResponse';\nimport { environment } from 'src/environments/environment';\nimport { CodeEditorComponent } from 'src/app/components/code-editor/code-editor.component';\nimport { UntypedFormGroup, UntypedFormControl, Validators, FormGroup, FormControl, FormBuilder } from '@angular/forms';\nimport { CoreService } from 'src/app/services/core/core.service';\nimport { TranslateService } from '@ngx-translate/core';\nimport { GlobalFunctionService } from 'src/app/services/global-function/global-function.service';\nimport { customDropdownProps, customDropdownSettingProps } from 'src/app/models/globals/customDropdownProps';\nimport { WidgetConfig } from 'src/app/models/responses/widgetConfig';\nimport { MatStepper } from '@angular/material/stepper';\n\ndeclare let monaco: any;\n\n@Component({\n selector: 'app-visual-form',\n templateUrl: './visual-form.component.html',\n styleUrls: ['./visual-form.component.scss']\n})\nexport class VisualFormComponent implements OnInit {\n @ViewChild('stepper') stepper: MatStepper;\n\n pageForm: UntypedFormGroup;\n configSelectionForm: FormGroup = new FormGroup({})\n\n configForm: FormGroup = new FormGroup({\n name: new FormControl('', [Validators.required]),\n visibleName: new FormControl('', [Validators.required]),\n type: new FormControl('', [Validators.required]),\n value: new FormControl(''),\n description: new FormControl('')\n });\n steppercount: number = 2\n configType: string[] = [\n 'Number', 'Text', 'Boolean', 'Color'\n ]\n configFormType: string = 'add'\n\n selectionList: any[] = []\n addMultipleValue: boolean = false\n\n\n\n\n\n displayedColumns: any[] = [\n { title: this.translate.instant(\"VisualCompFormPage.ConfigName\"), width: '20%', selector: 'name', mobile: true },\n { title: this.translate.instant(\"VisualCompFormPage.VisibleName\"), width: '30%', selector: 'visibleName', mobile: true },\n { title: this.translate.instant(\"VisualCompFormPage.Type\"), width: '20%', selector: 'type', mobile: true },\n { title: this.translate.instant(\"VisualCompFormPage.Value\"), width: '25%', selector: 'value', mobile: true },\n { title: 'DataStorePage.Action', width: '5%', selector: 'action', mobile: true }\n\n\n\n ]\n // ['name', 'visibleName', 'type', 'value', 'action'];\n // displayedColumnsName: string[] = [this.translate.instant(\"VisualCompFormPage.ConfigName\"), this.translate.instant(\"VisualCompFormPage.VisibleName\"),\n // this.translate.instant(\"VisualCompFormPage.Type\"), this.translate.instant(\"VisualCompFormPage.Value\"), this.translate.instant(\"VisualCompPage.Action\")];\n\n\n // configFormVisible: boolean = this.configList.length <= 0 ? true : false\n configFormVisible: boolean = false\n\n\n title: string = \"\";\n editorOptions = { theme: 'vs-dark', language: 'javascript' };\n code: string = 'function x() {\\nconsole.log(\"Hello world!\");\\n}';\n libraries: WidgetLibrary[] = [];\n selectedLibraries: any[] = [];\n compareFunctionForLibraries = (o1: any, o2: any) => o1 === o2;\n\n libraryDropdownSettings: customDropdownSettingProps = {\n name: 'Library',\n id: 'Library',\n imageCard: false,\n multipleSelection: true,\n dragActive: false,\n changeSortWithDrop: (e) => { },\n iconMenuActive: false,\n searchActive:true,\n placeholder: this.translate.instant(\"VisualCompFormPage.SearchLibrary\"),\n selectElement: (e) => this.selectLibrary(e),\n progressValue: 0,\n errorValues: { text: '', active: false }\n\n\n }\n librarForDropdownMenu: customDropdownProps[] = []\n\n isCreateForm: boolean = true;\n visual: VisualComp = {\n name: \"\",\n description: \"\",\n version: 0,\n icon: \"\",\n createdby: \"\",\n updatedby: \"\",\n creationDate: new Date(),\n updateDate: new Date(),\n code: \"\",\n domain: \"\",\n widgetLibraries: [],\n revisions: [],\n access: 0,\n config: []\n }\n libContent = `function Aykutadd(a: number, b: number):number \n function BussionNavigateDashboard(DashboardId:string,Filter:string):bool\n declare var $test: TEST\n`;\n constructor(\n @Inject(MAT_DIALOG_DATA) public data: any,\n private dialogRef: MatDialogRef,\n private dialog: MatDialog,\n private visualService: VisualService,\n private widgetLibraryService: WidgetLibraryService,\n private spinner: NgxSpinnerService,\n private coreService: CoreService,\n private translate: TranslateService,\n private functionService: GlobalFunctionService,\n private fb: FormBuilder\n ) { }\n\n editorInit(eventInit: any) {\n (window as any).monaco.languages.typescript.javascriptDefaults.setDiagnosticsOptions({\n noSemanticValidation: true,\n noSyntaxValidation: true\n });\n\n (window as any).monaco.languages.typescript.javascriptDefaults.setCompilerOptions({\n target: monaco.languages.typescript.ScriptTarget.ES6,\n allowNonTsExtensions: true\n });\n\n this.getGlobalFunctionDefinitions();\n\n }\n ngOnInit(): void {\n this.pageForm = new UntypedFormGroup({\n name: new UntypedFormControl(this.visual.name, [Validators.required]),\n });\n this.isCreateForm = this.data.type == 'update' ? false : true;\n this.title = this.data.type == 'update' ? this.translate.instant(\"VisualCompFormPage.TitleUpdate\") : this.translate.instant(\"VisualCompFormPage.TitleCreate\");\n if (this.data.visual) {\n this.visual = Object.assign({}, this.data.visual);\n this.selectedLibraries = this.visual.widgetLibraries;\n this.visual.icon = environment.imageUrl + this.visual.icon;\n }\n this.getWidgetLibraries();\n }\n\n getWidgetLibraries() {\n this.widgetLibraryService.getWidgetLibraries().subscribe(result => {\n this.libraries = result;\n this.librarForDropdownMenu = this.libraries.map(item => {\n return {\n id: item.widgetLibraryId,\n title: item.name,\n subtitle: item.createdby,\n element: item,\n selected: this.visual.widgetLibraries.some(x => x == item.widgetLibraryId)\n }\n\n })\n });\n }\n\n upsertVisualComponent() {\n if (this.pageForm.invalid) {\n this.coreService.showFormFillError();\n return;\n }\n this.spinner.show();\n this.visual.widgetLibraries = this.selectedLibraries;\n // this.visual.icon = this.visual.icon.split(',')[1];\n this.visualService.upsertVisualComponent(this.visual).subscribe(result => {\n this.spinner.hide();\n this.dialogRef.close(true);\n });\n }\n\n uploadIconImage(fileInput: any) {\n let file = fileInput.target.files[0];\n if (file.size > 3145728) {\n this.coreService.showErrorMessage(this.translate.instant(\"ErrorMessages.SmallPhoto\"));\n return;\n }\n var mimeType = file.type;\n if (mimeType.match(/image\\/*/) == null) {\n this.coreService.showErrorMessage(this.translate.instant(\"ErrorMessages.WrongFormatPhoto\"));\n return;\n }\n\n var reader = new FileReader();\n reader.readAsDataURL(file);\n reader.onload = (_event) => {\n this.visual.icon = reader.result;\n }\n }\n\n openBiggerEditor() {\n const dialogRef = this.dialog.open(CodeEditorComponent, {\n height: 'auto',\n width: '90%',\n data: {\n code: this.visual.code,\n },\n });\n\n\n dialogRef.afterClosed().subscribe(result => {\n if (result) {\n this.visual.code = result;\n }\n });\n }\n\n getGlobalFunctionDefinitions() {\n this.functionService.getGlobalFunctionsDefinitions().subscribe(code => {\n (window as any).monaco.languages.typescript.javascriptDefaults.addExtraLib(code);\n })\n }\n\n selectLibrary(selected: { selectedList: WidgetLibrary[], selectedElement: WidgetLibrary }) {\n this.selectedLibraries = selected.selectedList.map(item => {\n return item.widgetLibraryId\n })\n }\n\n addConfigToList() {\n if (this.configFormType == 'add' && this.visual.config.some(x => x.name == this.configForm.value.name)) {\n this.coreService.showErrorMessage('eror')\n return\n }\n\n\n var configElement: WidgetConfig = this.configForm.value\n var index = -1\n if (this.selectedConfig)\n index = this.visual.config.findIndex(item => item.name === this.selectedConfig.name);\n\n if (this.configSelectionForm.value)\n configElement.values = Object.keys(this.configSelectionForm.value).map(key => {\n return this.configSelectionForm.value[key]\n })\n\n if (this.configFormType !== 'add' && index !== -1) {\n this.visual.config[index] = configElement\n }\n // if (this.visual.config.some(x => x.name == configElement.name)) {\n // this.visual.config = this.visual.config.filter(x => x.name !== configElement.name)\n // }\n if (this.configFormType == 'add')\n this.visual.config.push(configElement)\n\n\n\n this.coreService.showSuccessMessage(this.translate.instant('Common.Success'))\n this.changeFormVisible()\n // this.configList.push(configElement)\n\n\n }\n\n changeStep(type: string) {\n if (type == 'back') {\n const currentIndex = this.stepper.selectedIndex;\n const prevIndex = currentIndex - 1;\n if (prevIndex >= 0) {\n this.stepper.selectedIndex = prevIndex;\n }\n } else {\n const currentIndex = this.stepper.selectedIndex;\n const prevIndex = currentIndex + 1;\n if (prevIndex <= this.steppercount) {\n this.stepper.selectedIndex = prevIndex;\n }\n }\n }\n\n changeToggle(event) {\n this.addMultipleValue = event\n if (this.addMultipleValue && this.selectionList.length <= 0) {\n this.addSelectionElement()\n }\n }\n\n addSelectionElement(item?: string) {\n\n if (this.selectionList.length > 0) {\n this.selectionList.push({ id: this.selectionList[this.selectionList.length - 1].id + 1, key: item ? item : '' })\n }\n else\n this.selectionList.push({ id: 1, key: item ? item : '' })\n\n\n\n this.configSelectionForm.addControl(this.selectionList[this.selectionList.length - 1].id, this.fb.control(item ? item : ''))\n\n\n }\n\n deleteSelectionElement(item) {\n this.selectionList = this.selectionList.filter(x => x.id !== item.id)\n }\n\n deleteConfig(item) {\n this.visual.config = this.visual.config.filter(x => x.name !== item.name)\n }\n selectedConfig: WidgetConfig\n\n actionButtonsClick(data: any) {\n if (data.type == 'edit') {\n this.selectedConfig = data.data\n this.configForm.patchValue({\n name: data.data.name,\n visibleName: data.data.visibleName,\n type: data.data.type,\n value: data.data.value,\n description: data.data.description\n })\n\n if (data.data.values.length > 0) {\n\n this.selectionList = []\n\n data.data.values.map((item, key) => {\n\n this.addSelectionElement(item)\n })\n this.changeToggle(true)\n }\n\n this.configFormVisible = true\n this.configFormType = 'update'\n }\n else if (data.type == 'delete')\n this.deleteConfig(data.data)\n }\n\n changeFormVisible() {\n\n\n this.configFormVisible = !this.configFormVisible\n while (Object.keys(this.configSelectionForm.controls).length) {\n const toRemove = Object.keys(this.configSelectionForm.controls)[0];\n this.configSelectionForm.removeControl(toRemove)\n }\n this.addMultipleValue = false\n this.selectionList = []\n this.configFormType = 'add'\n this.configForm.reset()\n }\n\n changedSort(sortingList: WidgetConfig[]) {\n this.visual.config = sortingList;\n }\n}\n","\n\n\n
\n \n \n
\n
\n
\n \n
\n \n
\n
\n\n
\n \n {{ 'VisualCompFormPage.Name' | translate }}\n \n \n
\n
\n\n \n {{ 'VisualCompFormPage.Description' | translate }}\n \n \n
\n\n \n {{ 'VisualCompFormPage.CompStatus' | translate }}\n \n Public\n Private\n \n \n
\n
\n
\n
\n \n {{ 'VisualCompFormPage.Version' | translate }}\n \n \n
\n\n \n {{ 'VisualCompFormPage.CreatedBy' | translate }}\n \n \n
\n\n \n {{ 'VisualCompFormPage.UpdatedBy' | translate }}\n \n \n
\n\n \n {{ 'VisualCompFormPage.UpdateTime' | translate }}\n \n \n
\n
\n
\n \n \n
\n
\n \n \n
\n
\n \n
\n\n
\n
\n \n {{ 'VisualCompFormPage.ConfigName' | translate }}\n \n \n \n {{ 'VisualCompFormPage.VisibleName' | translate }}\n \n \n \n {{ 'VisualCompFormPage.Type' | translate }}\n \n {{item}}\n \n \n \n {{ 'VisualCompFormPage.Value' | translate }}\n \n \n \n {{ 'VisualCompFormPage.Description' | translate }}\n \n \n
\n Çoklu\n Seçim\n
\n \n
\n \n \n \n \n delete\n
\n
\n \n
\n \n
\n
\n \n
\n\n
\n \n
\n
\n \n
\n 0\" (dataFunction)=\"actionButtonsClick($event)\"\n [columns]=\"displayedColumns\" [datas]=\"this.visual.config\">\n
\n \n \n \n \n \n \n \n \n\n {{\"VisualCompFormPage.NoData\"|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\n\n
\n\n \n \n \n \n","import { Component, OnInit, ViewChild } from '@angular/core';\nimport { MatTableDataSource } from '@angular/material/table';\nimport { MatPaginator } from '@angular/material/paginator';\nimport { MatSort } from '@angular/material/sort';\nimport { VisualService } from 'src/app/services/visual/visual.service';\nimport { VisualComp } from 'src/app/models/responses/visualComponentResponse';\nimport { MatDialog } from '@angular/material/dialog';\nimport { VisualFormComponent } from './visual-form/visual-form.component';\nimport { ActionDialogComponent } from 'src/app/components/action-dialog/action-dialog/action-dialog.component';\nimport { NgxSpinnerService } from 'ngx-spinner';\nimport { environment } from 'src/environments/environment';\nimport { ModalService } from 'src/app/services/modal/modal.service';\nimport { TranslateService } from '@ngx-translate/core';\n\n@Component({\n selector: 'app-visual',\n templateUrl: './visual.component.html',\n styleUrls: ['./visual.component.scss']\n})\nexport class VisualComponent implements OnInit {\n\n baseUrl: string = environment.imageUrl;\n displayedColumns: string[] = ['icon', 'name','visualComponentId', 'description', 'action'];\n displayedColumnsName: string[] = [this.translate.instant(\"Common.Icon\"), this.translate.instant(\"VisualCompPage.Name\"),this.translate.instant(\"VisualCompPage.VisualComponentId\"), this.translate.instant(\"VisualCompPage.Description\"), this.translate.instant(\"VisualCompPage.Action\")];\n visualComps: VisualComp[] = [];\n\n constructor(\n private dialog: MatDialog,\n private visualService: VisualService,\n private spinner: NgxSpinnerService,\n private modalService: ModalService,\n private translate: TranslateService\n ) { }\n\n ngOnInit(): void {\n this.getVisualComponents()\n }\n\n getVisualComponents() {\n this.spinner.show();\n this.visualService.getVisualComponents().subscribe(result => {\n this.visualComps = result;\n this.spinner.hide();\n });\n }\n\n deleteVisualComponent(visualComp: VisualComp) {\n this.modalService.openDeleteConfirm().subscribe(result => {\n if (result === true) {\n this.spinner.show();\n this.visualService.deleteComponent(visualComp).subscribe(result => {\n this.getVisualComponents();\n });\n }\n });\n }\n\n openVisualComponent(event: any) {\n let data = {\n type: event.type as String,\n visual: event.data as VisualComp\n }\n\n this.modalService.openModal(data, VisualFormComponent, '90%', '70%','with-action-area').subscribe(result => {\n if (result === true) {\n this.getVisualComponents();\n }\n });\n }\n\n}\n","
\n \n \n
","import { Component, OnInit, Inject } from '@angular/core';\nimport { MAT_DIALOG_DATA, MatDialogRef, MatDialog } from '@angular/material/dialog';\nimport { WidgetLibrary } from 'src/app/models/responses/widgetLibraryResponse';\nimport { WidgetLibraryService } from 'src/app/services/widget-library/widget-library.service';\nimport { NgxSpinnerService } from 'ngx-spinner';\nimport { environment } from 'src/environments/environment';\nimport { ActionDialogComponent } from 'src/app/components/action-dialog/action-dialog/action-dialog.component';\nimport { CdkDragDrop, moveItemInArray, transferArrayItem } from '@angular/cdk/drag-drop';\nimport { UntypedFormGroup, UntypedFormControl, Validators } from '@angular/forms';\nimport { CoreService } from 'src/app/services/core/core.service';\nimport { TranslateService } from '@ngx-translate/core';\nimport { MatSelectionListChange } from '@angular/material/list';\n\n@Component({\n selector: 'app-widget-library-form',\n templateUrl: './widget-library-form.component.html',\n styleUrls: ['./widget-library-form.component.scss']\n})\nexport class WidgetLibraryFormComponent implements OnInit {\n\n pageForm: UntypedFormGroup;\n title: string = \"\";\n fileData: File = null;\n isCreateForm: boolean = true;\n selectedPaths: string[] = [];\n filePaths: string[] = [];\n iconImage;\n widgetLibrary: WidgetLibrary = {\n widgetLibraryId: \"\",\n name: \"\",\n icon: \"\",\n folder: \"\",\n javaScriptLibrary: [],\n javaScriptLibraryPaths: [],\n creationDate: new Date(),\n updateDate: new Date,\n createdby: \"\",\n updatedby: \"\"\n }\n constructor(\n @Inject(MAT_DIALOG_DATA) public data: any,\n private dialog: MatDialog,\n private dialogRef: MatDialogRef,\n private widgetLibraryService: WidgetLibraryService,\n private spinner: NgxSpinnerService,\n private coreService: CoreService,\n private translate: TranslateService\n ) { }\n\n ngOnInit(): void {\n this.pageForm = new UntypedFormGroup({\n name: new UntypedFormControl(this.widgetLibrary.name, [Validators.required]),\n folder: new UntypedFormControl(this.widgetLibrary.folder, [Validators.required])\n });\n\n this.title = this.data.type == 'update' ? this.translate.instant(\"WidgetLibraryFormPage.TitleUpdate\") : this.translate.instant(\"WidgetLibraryFormPage.TitleCreate\");\n if (this.data.widgetLibrary) {\n this.widgetLibrary = Object.assign({}, this.data.widgetLibrary);\n this.selectedPaths = this.widgetLibrary.javaScriptLibraryPaths;\n this.widgetLibrary.icon = environment.imageUrl + this.widgetLibrary.icon;\n }\n this.getFilePaths();\n }\n\n getFilePaths() {\n if (this.widgetLibrary.folder == \"\") { return; }\n this.spinner.show();\n this.widgetLibraryService.getJavascriptFiles(this.widgetLibrary.folder).subscribe(result => {\n this.spinner.hide();\n this.filePaths = this.mergeList(result);\n });\n }\n\n mergeList(folderFiles: string[]) {\n let paths = [];\n folderFiles.forEach(file => {\n let isExist = this.selectedPaths.includes(file);\n if (!isExist) paths.push(file);\n })\n return paths;\n }\n\n deleteFilePath(path: string) {\n\n const dialogRef = this.dialog.open(ActionDialogComponent, {\n height: 'auto',\n width: 'auto',\n data: {\n title: 'ActionDialogComponent.Warning',\n Buttons:[\n ],\n text:'ActionDialogComponent.Message'\n },\n });\n\n dialogRef.afterClosed().subscribe(result => {\n \n if (result === true) {\n this.spinner.show();\n this.widgetLibraryService.deleteFilePath(this.widgetLibrary.folder, [path]).subscribe(result => {\n this.getFilePaths();\n });\n }\n });\n }\n\n upsertWidgetLibrary() {\n if (this.pageForm.invalid) {\n this.coreService.showFormFillError();\n return;\n }\n this.widgetLibrary.javaScriptLibraryPaths = this.selectedPaths;\n // this.widgetLibrary.icon = this.widgetLibrary.icon.split(',')[1];\n this.widgetLibraryService.upsertWidgetLibrary(this.widgetLibrary).subscribe(result => {\n this.dialogRef.close(true);\n });\n }\n\n uploadFile(fileInput: any) {\n this.fileData = fileInput.target.files[0];\n const formData = new FormData();\n formData.append('Files', this.fileData);\n formData.append('FileFolder', this.widgetLibrary.folder);\n if (this.fileData.size > 9145728) {\n this.coreService.showErrorMessage(this.translate.instant(\"ErrorMessages.SmallFile\"));\n return;\n }\n this.spinner.show();\n this.widgetLibraryService.uploadJavascriptFile(formData).subscribe(result => {\n this.getFilePaths();\n });\n }\n\n uploadIconImage(fileInput: any) {\n let file = fileInput.target.files[0];\n if (file.size > 3145728) {\n this.coreService.showErrorMessage(this.translate.instant(\"ErrorMessages.SmallPhoto\"));\n return;\n }\n var mimeType = file.type;\n if (mimeType.match(/image\\/*/) == null) {\n this.coreService.showErrorMessage(this.translate.instant(\"ErrorMessages.WrongFormatPhoto\"));\n return;\n }\n\n var reader = new FileReader();\n reader.readAsDataURL(file);\n reader.onload = (_event) => {\n this.widgetLibrary.icon = reader.result;\n }\n }\n\n drop(event: CdkDragDrop) {\n if (event.previousContainer === event.container) {\n moveItemInArray(event.container.data, event.previousIndex, event.currentIndex);\n } else {\n transferArrayItem(event.previousContainer.data,\n event.container.data,\n event.previousIndex,\n event.currentIndex);\n }\n\n }\n\n onSelection(event: MatSelectionListChange) {\n if (event.options[0].selected) {\n this.selectedPaths.push(event.options[0].value);\n let index = this.filePaths.indexOf(event.options[0].value);\n this.filePaths.splice(index, 1);\n\n }\n else {\n this.filePaths.push(event.options[0].value);\n }\n \n\n }\n\n deleteAllFile() {\n const dialogRef = this.dialog.open(ActionDialogComponent, {\n height: 'auto',\n width: 'auto',\n data: {\n title: 'ActionDialogComponent.Warning',\n Buttons:[\n ],\n text:'ActionDialogComponent.Message'\n },\n });\n dialogRef.afterClosed().subscribe(result => {\n if (result === true) {\n this.spinner.show();\n this.widgetLibraryService.deleteAllWidgetLibrary(this.widgetLibrary.folder).subscribe(() => {\n this.spinner.hide()\n this.getFilePaths()\n })\n }\n })\n }\n\n}\n","\n\n\n \n\n
\n
\n \n
\n \n
\n\n
\n \n {{ 'WidgetLibraryFormPage.Name' | translate }}\n \n \n
\n\n \n {{ 'WidgetLibraryFormPage.Folder' | translate }}\n \n \n
\n
\n\n \n CreatedBy\n \n \n
\n\n \n UpdatedBy\n \n \n
\n\n \n Update Time\n \n \n
\n\n\n \n \n\n
\n
\n \n
\n \n {{path}}\n \n
\n
\n
\n
\n\n
\n \n
\n \n {{path}}\n \n delete_outline\n
\n
\n
\n\n\n
\n\n \n \n \n","import { Component, OnInit, ViewChild } from '@angular/core';\nimport { WidgetLibraryService } from 'src/app/services/widget-library/widget-library.service';\nimport { MatTableDataSource } from '@angular/material/table';\nimport { MatPaginator } from '@angular/material/paginator';\nimport { MatSort } from '@angular/material/sort';\nimport { WidgetLibraryFormComponent } from './widget-library-form/widget-library-form.component';\nimport { MatDialog } from '@angular/material/dialog';\nimport { WidgetLibrary, WidgetLibraryResponse } from 'src/app/models/responses/widgetLibraryResponse';\nimport { NgxSpinnerService } from 'ngx-spinner';\nimport { ActionDialogComponent } from 'src/app/components/action-dialog/action-dialog/action-dialog.component';\nimport { environment } from 'src/environments/environment';\nimport { ModalService } from 'src/app/services/modal/modal.service';\nimport { TranslateService } from '@ngx-translate/core';\n\n@Component({\n selector: 'app-widget-library',\n templateUrl: './widget-library.component.html',\n styleUrls: ['./widget-library.component.scss']\n})\nexport class WidgetLibraryComponent implements OnInit {\n\n baseUrl = environment.imageUrl;\n displayedColumns: string[] = ['icon', 'name', 'widgetLibraryId','folder', 'action'];\n displayedColumnsName: string[] = [this.translate.instant(\"Common.Icon\"), this.translate.instant(\"WidgetLibraryPage.Name\"), this.translate.instant(\"WidgetLibraryPage.WidgetLibraryId\"),this.translate.instant(\"WidgetLibraryPage.Folder\"), this.translate.instant(\"WidgetLibraryPage.Action\")];\n widgetLibraries: WidgetLibrary[] = [];\n\n constructor(\n private dialog: MatDialog,\n private widgetLibraryService: WidgetLibraryService,\n private spinner: NgxSpinnerService,\n private modalService: ModalService,\n private translate: TranslateService\n ) { }\n\n ngOnInit(): void {\n this.init();\n }\n\n init() {\n this.getWidgetLibraries();\n }\n\n getWidgetLibraries() {\n this.spinner.show();\n this.widgetLibraryService.getWidgetLibraries().subscribe(result => {\n this.widgetLibraries = result;\n this.spinner.hide();\n })\n }\n\n openWidgetLibrary(event: any) {\n let data = {\n type: event.type as string,\n widgetLibrary: event.data as WidgetLibrary\n }\n\n this.modalService.openModal(data, WidgetLibraryFormComponent, 'auto', '1000px').subscribe(result => {\n if (result === true) {\n this.getWidgetLibraries();\n }\n });\n\n }\n\n deleteWidgetLibrary(widgetLibrary: WidgetLibrary) {\n this.modalService.openDeleteConfirm().subscribe(selection => {\n if (selection === true) {\n this.spinner.show();\n this.widgetLibraryService.deleteWidgetLibrary(widgetLibrary).subscribe(result => {\n this.spinner.hide();\n this.getWidgetLibraries();\n });\n }\n })\n }\n\n}\n","
\n \n \n
","import { Component, Input, OnInit } from '@angular/core';\nimport { Router } from '@angular/router';\nimport { ModalService } from 'src/app/services/modal/modal.service';\nimport { environment } from 'src/environments/environment';\n\n@Component({\n selector: 'app-not-auth',\n templateUrl: './not-auth.component.html',\n styleUrls: ['./not-auth.component.scss']\n})\nexport class NotAuthComponent implements OnInit {\n\n @Input() showExitButton = false\n\n env: string = environment.imageUrl\n\n constructor(private router: Router, private dialogService: ModalService) { }\n\n ngOnInit(): void {\n }\n\n navigateToLogin() {\n this.router.navigate(['/login'])\n this.dialogService.dissmissAll()\n }\n\n}\n","
\n
\n clear\n
\n
\n

{{\"Common.PermisionDenied\"|translate}}

\n {{\"Common.PleaseLogin\"|translate}}\n \n \n
\n
","import { Component, OnInit } from '@angular/core';\n\n@Component({\n selector: 'app-register',\n templateUrl: './register.component.html',\n styleUrls: ['./register.component.scss']\n})\nexport class RegisterComponent implements OnInit {\n\n constructor() { }\n\n ngOnInit(): void {\n }\n\n}\n","

register works!

\n","import { Component, OnInit } from '@angular/core';\nimport { ActivatedRoute } from '@angular/router';\nimport { DataStoreService } from 'src/app/services/dataStore/data-store.service';\n\n@Component({\n selector: 'app-grid-analytics',\n templateUrl: './grid-analytics.component.html',\n styleUrls: ['./grid-analytics.component.scss']\n})\nexport class GridAnalyticsComponent implements OnInit {\n selectedDsId: string = ''\n selectedDataPreviewColumns: any[] = []\n sampleDataForDataStore: any[] = []\n samplecount:number=50\n\n constructor(private activatedRoute: ActivatedRoute, private dataStoreService: DataStoreService) { }\n\n ngOnInit(): void {\n\n this.selectedDsId = this.activatedRoute.snapshot.paramMap.get('dataStoreId')\n this.getDatas()\n }\n\n getDatas() {\n return this.dataStoreService.getSampleData(this.selectedDsId,this.samplecount).subscribe(sampleres => {\n this.dataStoreService.getColomnsForDataStore(this.selectedDsId).subscribe(res => {\n this.selectedDataPreviewColumns = res\n this.sampleDataForDataStore = sampleres\n\n })\n })\n }\n\n}\n","
\n\n \n
","import { Component, OnInit } from '@angular/core';\nimport { MatDialog } from '@angular/material/dialog';\nimport { NavigationEnd, Router } from '@angular/router';\nimport { TranslateService } from '@ngx-translate/core';\nimport { NgxSpinnerService } from 'ngx-spinner';\nimport { ChatbotComponent } from 'src/app/components/chatbot/chatbot.component';\nimport { SelfServiceDatastoreFormComponent } from 'src/app/components/self-service-datastore-form/self-service-datastore-form.component';\nimport { SelfServiceDesignerComponent } from 'src/app/components/self-service-designer/self-service-designer.component';\nimport { deleteCssFile } from 'src/app/core/utils';\nimport { BreadCrumElement, LeftMenuProps } from 'src/app/models/globals/customLeftMenuProps';\nimport { Dashboard } from 'src/app/models/responses/dashboardResponse';\nimport { DataStore } from 'src/app/models/responses/dataStoreResponse';\nimport { AuthService } from 'src/app/services/auth/auth.service';\nimport { DashboardService } from 'src/app/services/dashboard/dashboard.service';\nimport { DataStoreService } from 'src/app/services/dataStore/data-store.service';\nimport { ModalService } from 'src/app/services/modal/modal.service';\nimport { SelfService } from 'src/app/services/self-service/self.service';\nimport { environment } from 'src/environments/environment';\n\n@Component({\n selector: 'app-self-service',\n templateUrl: './self-service.component.html',\n styleUrls: ['./self-service.component.scss']\n})\nexport class SelfServiceComponent implements OnInit {\n constructor(\n private translate: TranslateService,\n private dashboardService: DashboardService,\n private dataStoreService: DataStoreService,\n private modalService: ModalService,\n private spinner: NgxSpinnerService,\n private router: Router,\n private authService: AuthService,\n private dialog: MatDialog\n\n ) {\n }\n roles: string[] = this.authService.getPermissions();\n licencePermissions = localStorage.getItem('licence') ?? ''\n\n menuList: LeftMenuProps[] = [\n\n { name: this.translate.instant(\"SelfServicePage.VisualAnalytics\"), icon: 'statIcon', function: () => this.showAnalyzePage(), active: false, path: '/selfservice/analyze', visible: this.roles.some(x => x.includes('SelfService')) },\n // { name: this.translate.instant(\"SelfServicePage.Flow\"), icon: 'flow', function: () => this.showFlow(), active: false, path: '/selfservice/flow', visible: this.roles.some(x => x.includes('DataEngineer')) && this.licencePermissions.includes(\"Data Flow\") },\n // { name: this.translate.instant(\"SelfServicePage.GridAnalytics\"), icon: 'grid', function: () => this.gotoGridAnalytics(), active: false, path: '/Apps/gridAnalytics-47681312178742151388-155152/', visible: this.roles.some(x => x.includes('SelfService')) },\n { name: this.translate.instant(\"SelfServicePage.DashboardList\"), icon: 'dashboardIcon', function: () => this.showDashboardTable(), active: false, path: '/selfservice/dashboard-list', visible: this.roles.some(x => x.includes('SelfService')) },\n { name: this.translate.instant(\"SelfServicePage.MyDatas\"), icon: 'dataStore', function: () => this.showDataStoreTable(), active: false, path: '/selfservice/data-store-list', visible: this.roles.some(x => x.includes('SelfService')) },\n\n\n\n ]\n\n\n breadcrumbTitle: string = this.translate.instant('HomePage.SelfService')\n\n breadcrumbElementList: BreadCrumElement[] = [\n { path: \"/selfservice\", name: this.translate.instant(\"SelfServicePage.SelfServiceHome\") }\n ]\n\n dashboards: Dashboard[] = [];\n dataStores: DataStore[] = [];\n paginatedDataStores: DataStore[] = [];\n paginatedDashboards: Dashboard[] = [];\n baseUrl = environment.imageUrl;\n currentPage = 0;\n itemsPerPage = 6;\n totalPages = 0;\n userDash: string;\n\n displayedColumns: string[] = ['icon', 'title', 'description', 'action'];\n displayedColumnsName: string[] = [this.translate.instant(\"Common.Icon\"), 'Title', 'Description', this.translate.instant(\"DashboardPage.Action\")];\n displayedColumnsDataStore: string[] = [this.translate.instant(\"Common.Icon\"), 'name', 'action'];\n displayedColumnsNameDataStore: string[] = ['Avatar', 'Name', this.translate.instant(\"DataStorePage.Action\")];\n\n showDashboard: boolean = true;\n dataStoreVisible = true;\n showDataStore: boolean = false;\n\n ngOnInit(): void {\n\n\n this.getDashboards();\n this.getDatastores();\n console.log(this.router.url)\n this.getPageTitle(this.router.url)\n\n this.router.events.subscribe((val) => {\n // see also \n if (val instanceof NavigationEnd) {\n this.getPageTitle(val.url)\n }\n });\n }\n\n getPageTitle(url) {\n this.breadcrumbElementList = this.breadcrumbElementList.filter(x => x.path == '/selfservice')\n if (url.includes('self-service-design')) {\n\n this.breadcrumbElementList.push(\n { path: \"/selfservice/dashboard-list\", name: this.translate.instant(\"SelfServicePage.DashboardList\") }\n )\n this.breadcrumbTitle = \"SelfServicePage.DashboardDesigner\"\n return;\n } else if (url.includes('flow-designer')) {\n this.breadcrumbElementList.push(\n { path: \"/selfservice/flow\", name: this.translate.instant('SelfServicePage.FlowPageTitle') }\n )\n this.breadcrumbTitle = \"SelfServicePage.FlowDesigner\"\n return;\n }\n\n switch (url) {\n case \"/selfservice/flow\":\n this.breadcrumbTitle = 'SelfServicePage.FlowPageTitle'\n break;\n\n case '/selfservice/dashboard-list':\n this.breadcrumbTitle = \"SelfServicePage.DashboardList\"\n break;\n\n case '/selfservice/data-store-list':\n this.breadcrumbTitle = \"SelfServicePage.MyDatas\"\n break;\n\n case '/selfservice/analyze':\n this.breadcrumbTitle = 'HomePage.SelfService'\n break;\n\n case '':\n\n break;\n\n default:\n break;\n }\n }\n\n\n\n\n showDashboardTable() {\n this.dataStoreVisible = false;\n this.router.navigate(['selfservice/dashboard-list']);\n }\n\n\n gotoGridAnalytics() {\n var baseUrl = environment.baseUrl\n var link = document.createElement('a');\n // link.href = `/#/selfservice/analyze/grid-analytics/${ds.id}`;\n link.href = baseUrl + `/Apps/gridAnalytics-47681312178742151388-155152/`\n link.target = \"_blank\";\n var event = new MouseEvent('click', {\n view: window,\n bubbles: true,\n cancelable: true\n });\n link.dispatchEvent(event);\n }\n\n showDataStoreTable() {\n this.dataStoreVisible = true;\n this.router.navigate(['selfservice/data-store-list']);\n }\n\n showFlow() {\n this.router.navigate(['selfservice/flow']);\n\n }\n\n showAnalyzePage() {\n this.router.navigate(['selfservice/analyze']);\n }\n\n toggleMenu(): void {\n const menu = document.querySelector('.menu') as HTMLElement;\n menu.classList.toggle('active');\n }\n openChatbox() {\n this.dialog.open(ChatbotComponent, {\n width: '80%',\n height: '80%',\n panelClass: 'chat-dialog-container',\n });\n }\n\n\n getDashboards() {\n this.dashboardService.getAuthorizedDashboards().subscribe(result => {\n\n // this.dashboards = result;\n this.userDash = localStorage?.getItem('userId');\n const filteredDashboards = result.filter(dashboard => dashboard.ownerId == this.userDash);\n\n this.dashboards = filteredDashboards\n this.updatePaginationDashboards();\n });\n }\n\n updatePaginationDashboards() {\n this.totalPages = Math.ceil(this.dashboards.length / this.itemsPerPage);\n this.currentPage = 0;\n this.paginatedDashboards = this.dashboards.slice(\n this.currentPage * this.itemsPerPage,\n (this.currentPage + 1) * this.itemsPerPage\n );\n }\n\n paginateDashboards(event: any) {\n this.currentPage = event.pageIndex;\n this.paginatedDashboards = this.dashboards.slice(\n event.pageIndex * event.pageSize,\n (event.pageIndex + 1) * event.pageSize\n );\n }\n userDataStore: string;\n getDatastores() {\n // this.dataStoreService.getDataSourceForUser().subscribe(result => {\n // this.dataStores = result;\n\n // console.log(result.filter(x => x.name.includes('post')))\n // this.userDataStore = localStorage?.getItem('userId');\n // let filteredDataStore = result.filter(dataStore => dataStore.ownerId === this.userDataStore);\n\n // this.dataStores = filteredDataStore;\n // this.updatePagination();\n // });\n }\n\n updatePagination() {\n this.totalPages = Math.ceil(this.dataStores.length / this.itemsPerPage);\n this.currentPage = 0;\n this.paginatedDataStores = this.dataStores.slice(\n this.currentPage * this.itemsPerPage,\n (this.currentPage + 1) * this.itemsPerPage\n );\n }\n\n paginateDataStores(event: any) {\n this.currentPage = event.pageIndex;\n this.paginatedDataStores = this.dataStores.slice(\n event.pageIndex * event.pageSize,\n (event.pageIndex + 1) * event.pageSize\n );\n }\n\n\n openDataStoreComponent(event: any) {\n let data = {\n type: event.type as string,\n dataStore: event.data as DataStore\n }\n this.modalService.openModal(data, SelfServiceDatastoreFormComponent, 'auto', '1000px').subscribe(result => {\n if (result === true) {\n this.getDatastores();\n\n // this.selfService.addDataStore();\n }\n });\n }\n deleteDataStoreComponent(dataStore: DataStore) {\n this.modalService.openDeleteConfirm().subscribe(result => {\n if (result === true) {\n this.spinner.show();\n this.dataStoreService.deleteDataStore(dataStore).subscribe(result => {\n this.spinner.hide();\n this.getDatastores();\n });\n }\n });\n }\n open(event: any) {\n this.router.navigate(['landing/dashboard/designer', event.dashboardId]);\n }\n deleteDashboard(dashboard: Dashboard) {\n this.modalService.openDeleteConfirm().subscribe(result => {\n if (result === true) {\n this.spinner.show();\n this.dashboardService.deleteDashboard(dashboard).subscribe(result => {\n this.spinner.hide();\n this.getDashboards();\n })\n }\n });\n }\n openDashboard(event: any) {\n\n let data = {\n type: event.type as string,\n dashboard: event.data as Dashboard,\n }\n this.modalService.openModal(data, SelfServiceDesignerComponent, '70vh', '90vw', 'fullScreen').subscribe(result => {\n if (result === true) {\n this.getDashboards();\n\n }\n deleteCssFile(data.dashboard?.dashboardId);\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","import { Component, HostListener, Inject, OnDestroy, OnInit } from '@angular/core';\nimport { ActivatedRoute } from '@angular/router';\nimport { ShareService } from 'src/app/services/share/share.service';\nimport { Share } from 'src/app/models/responses/shareResponse';\nimport { DashboardService } from 'src/app/services/dashboard/dashboard.service';\nimport { Dashboard } from 'src/app/models/responses/dashboardResponse';\nimport { GlobalFunctionService } from 'src/app/services/global-function/global-function.service';\nimport { ScriptLoaderService } from 'src/app/services/script-loader/script-loader.service';\nimport { BussionFilterDefinition } from 'src/app/models/responses/dataStoreResponse';\nimport { MAT_DIALOG_DATA, MatDialogRef } from '@angular/material/dialog';\nimport { catchError, concatMap, tap } from 'rxjs/operators';\nimport { Widget } from 'src/app/models/responses/widgetLibraryResponse';\nimport { deleteCssFile, idKeyword } from 'src/app/core/utils';\n\n@Component({\n selector: 'app-share-preview',\n templateUrl: './share-preview.component.html',\n styleUrls: ['./share-preview.component.scss']\n})\nexport class SharePreviewComponent implements OnInit, OnDestroy {\n\n shareKey: string = \"\";\n shareObject: any\n widgets: any[] = [];\n loading: boolean = false\n dashboard: Dashboard;\n sharedWidget: any;\n domain: string = null;\n enableTitle: boolean = false;\n enableFilter: boolean = false;\n filters: BussionFilterDefinition[] = [];\n selectedDashboardInitialFilters: BussionFilterDefinition[] = this.dashboardService.selectedDasboard.getValue().filter;\n shareId: string = null;\n authType: number = 0\n shareEncryptKey: string = ''\n uniqTimeStemp: number = 0\n notAuth: boolean = false\n sharedToken: string = ''\n currentModalFilters: BussionFilterDefinition[] = []\n contentIdKeyword = idKeyword.dashboard\n\n constructor(\n @Inject(MAT_DIALOG_DATA) public data: {\n exitButton: boolean,\n showAvatar: boolean,\n dashboard: Share,\n clickedWidget: Widget,\n currentModalIndex: number,\n window: { height: string, width: string }\n },\n private activatedRoute: ActivatedRoute,\n private shareService: ShareService,\n private dashboardService: DashboardService,\n private globalFunctionService: GlobalFunctionService,\n private scriptLoader: ScriptLoaderService,\n ) {\n }\n ngOnInit(): void {\n this.uniqTimeStemp = Date.now()\n var decryptedText = ''\n\n this.shareKey = this.activatedRoute.snapshot.paramMap.get('shareId');\n if (!this.shareKey) {\n this.shareKey = this.scriptLoader.url?.split('/')[5]\n }\n\n if (this.shareKey.includes('?')) {\n this.shareKey = this.shareKey.split('?')[0]\n }\n\n this.shareId = this.shareKey?.split(\"-\")[0];\n this.domain = this.shareKey?.split(\"-\")[1];\n if (this.domain.includes('?')) {\n this.domain = this.domain.split('?')[0]\n }\n\n\n if (this.activatedRoute.snapshot.queryParamMap.get('filters') || this.scriptLoader.url.split('filters=')[1]) {\n\n if (this.activatedRoute.snapshot.queryParamMap.get('filters')?.includes('encrypt')) {\n decryptedText = this.shareService.getDecrypt(this.activatedRoute.snapshot.queryParamMap.get('filters').split('encrypt_')[1], this.shareId, this.domain)\n if (decryptedText) {\n this.filters = JSON.parse(decryptedText)\n }\n } else {\n if (this.activatedRoute.snapshot.queryParamMap.get('filters') == null) {\n this.filters = JSON.parse(this.scriptLoader.url.split('filters=')[1])\n\n } else {\n this.filters = JSON.parse(this.activatedRoute.snapshot.queryParamMap.get('filters'))\n if (this.scriptLoader.url.split('filters=')[1]) {\n var scripturlfiltre = JSON.parse(this.scriptLoader.url.split('filters=')[1])\n if (scripturlfiltre)\n this.filters = this.filters.concat(scripturlfiltre)\n }\n }\n }\n }\n\n if (this.activatedRoute.snapshot.queryParamMap.get('sharedToken')) {\n this.sharedToken = this.activatedRoute.snapshot.queryParamMap.get('sharedToken')\n }\n // else {\n\n // }\n this.currentModalFilters = Object.assign([], this.filters)\n this.addCurrentFilterOpenModal()\n\n\n // this.deleteCurrentFilterOnCloseModal()\n // if (this.scriptLoader.url.includes('sharedToken=')) {\n // this.sharedToken = this.scriptLoader.url.split('sharedToken=')[1]\n // console.log('this.sharedToken', this.sharedToken)\n // }\n\n\n // if (!this.shareKey) {\n // this.shareKey = this.scriptLoader.url?.split('/')[5]\n // }\n // let filter = this.activatedRoute.snapshot.paramMap.get('filter');\n\n // if (this.activatedRoute.snapshot.paramMap.get('filter') == null)\n // filter = this.scriptLoader.url.split('filters=')[1]\n\n // console.log('parammap', this.scriptLoader.url.split('filters=')[1], filter)\n\n // if (decryptedText) {\n // this.filters = JSON.parse(decryptedText)\n // }\n // if (this.shareKey.indexOf(\"filters=\") != -1) {\n // filter = JSON.parse(this.shareKey?.split(\"filters=\")[1]);\n // this.shareKey = this.shareKey?.split(\"filters=\")[0]?.split(\"?\")[0];\n // }\n\n // console.log('typeof', Object.keys(filter))\n // if (filter) {\n // this.filters = typeof (filter) == 'string' ? JSON.parse(filter) : Object.keys(filter)[0] == '0' ? filter : this.createObjectList(filter)\n // }\n\n // this.domain = this.shareKey?.split('-')[1];\n this.getGlobalFunctions();\n\n\n\n }\n\n ngOnDestroy(): void {\n if (this.dashboard?.dashboardId)\n deleteCssFile(this.dashboard.dashboardId)\n }\n\n addCurrentFilterOpenModal() {\n var allOpenedModals = this.scriptLoader.openedModals.getValue()\n\n\n\n var selecteddashboardFilter = this.scriptLoader.selectedFilters.getValue().map(item => {\n return { fieldValue: item.fieldValue, operator: item.operator, fieldName: item.fieldName }\n })\n\n if (this.data.clickedWidget && this.data.clickedWidget.drillDown.dashboardFilter) {\n selecteddashboardFilter.map(item => {\n if (!this.filters.some(x => x.fieldName === item.fieldName && x.fieldValue === item.fieldValue)\n && !this.currentModalFilters.some(x => x.fieldName == item.fieldName))\n this.filters.push(item)\n })\n // this.filters = this.filters.concat(selecteddashboardFilter.filter(item =>\n // !this.filters.some(x => x.fieldName === item.fieldName && x.fieldValue === item.fieldValue)\n // ))\n\n if (this.data.currentModalIndex > 1) {\n var insideModalFilter = allOpenedModals.find(x => x.modal == this.data.currentModalIndex - 1).filter\n insideModalFilter.map(item => {\n if (!this.filters.some(x => x.fieldName === item.fieldName && x.fieldValue === item.fieldValue)\n && !this.currentModalFilters.some(x => x.fieldName == item.fieldName))\n this.filters.push(item)\n })\n }\n }\n\n\n\n // var selecteddashboardFilter = this.selectedDashboardInitialFilters.map(item => {\n // return { fieldValue: item.fieldValue, operator: item.operator, fieldName: item.fieldName }\n // })\n\n // this.filters = this.filters.concat(selecteddashboardFilter.filter(item =>\n // !this.filters.some(x => x.fieldName === item.fieldName && x.fieldValue === item.fieldValue)\n // ));\n\n // if (this.data.clickedWidget && this.data.clickedWidget.drillDown.dashboardFilter) {\n // this.filters = this.filters.concat(this.scriptLoader.modalFilters.getValue().filter(item =>\n // !this.filters.some(x => x.fieldName === item.fieldName && x.fieldValue === item.fieldValue)\n // ))\n // }\n\n // this.scriptLoader.modalFilters.next(this.filters)\n }\n\n // deleteCurrentFilterOnCloseModal() {\n // if (this.dialogRef)\n // this.dialogRef.afterClosed().subscribe(res => {\n // if (this.data.clickedWidget && this.data.clickedWidget.drillDown.dashboardFilter) {\n // this.currentModalFilters.map(item => {\n // if (this.filters.some(x => x.fieldName == item.fieldName && x.fieldValue == item.fieldValue)) {\n // this.filters = this.filters.filter(x => !(x.fieldName == item.fieldName && x.fieldValue == item.fieldValue))\n // }\n // })\n // this.scriptLoader.modalFilters.next(this.filters)\n // }\n // })\n // }\n\n\n @HostListener('window:beforeunload', ['$event'])\n unloadHandler(event: Event) {\n // Tarayıcı sekmesi kapatıldığında bu fonksiyon çağrılır\n this.removeToken()\n }\n\n removeToken() {\n if (this.sharedToken)\n this.shareService.removeDynamicToken(this.sharedToken).subscribe()\n }\n\n\n createObjectList(filter: any) {\n if (filter && Object.keys(filter).length > 0) {\n let filterobj = ''\n let filterkey = []\n if (filter.includes('equal')) {\n filterobj = JSON.parse(filter.replace('equal', '='))\n filterkey = Object.keys(JSON.parse(filter.replace('equal', '=')))\n }\n let list = []\n filterkey.map((item) => {\n list.push(filterobj[item])\n })\n\n this.filters = list\n }\n return this.filters\n }\n\n getGlobalFunctions() {\n this.globalFunctionService.getGlobalFunctions(this.domain).subscribe(result => {\n result.forEach(f => {\n this.scriptLoader.runGlobalFunction(f.code);\n });\n this.getShareObject();\n });\n }\n\n async getShareObject() {\n\n if (!this.data?.dashboard) {\n this.shareService.getShareObject(this.shareKey).subscribe(shareObject => {\n (shareObject.objectType);\n this.enableFilter = shareObject.enableFilter == 0 ? false : true;\n this.enableTitle = shareObject.enableTitle == 0 ? false : true;\n this.shareId = shareObject.shareId\n this.authType = shareObject.authentication\n this.shareObject = shareObject\n\n\n this.shareEncryptKey = shareObject.shareEncryptKey\n if (shareObject.objectType == 'Dashboard') {\n this.getDashboard(shareObject.sharedObjectId).pipe(\n tap(res => this.getWidgets(shareObject))\n ).subscribe();\n }\n else {\n this.getSharedWidget(shareObject);\n }\n });\n } else {\n this.enableFilter = this.data.dashboard.enableFilter == 0 ? false : true;\n this.enableTitle = this.data.dashboard.enableTitle == 0 ? false : true;\n this.shareId = this.data.dashboard.shareId\n this.shareEncryptKey = this.data.dashboard.shareEncryptKey\n this.authType = this.data.dashboard.authentication\n\n\n if (this.authType == 1 && this.sharedToken == '') {\n this.sharedToken = await this.shareService.getDynamicToken(this.shareId).toPromise()\n }\n\n if (this.data.dashboard.objectType == 'Dashboard') {\n this.getDashboard(this.data.dashboard.sharedObjectId).pipe(\n tap(res => this.getWidgets(this.data.dashboard))\n ).subscribe();\n // await this.getWidgets(this.data.dashboard);\n }\n else {\n await this.getSharedWidget(this.data.dashboard);\n }\n }\n }\n\n getSharedWidget(sharedObject: Share) {\n\n this.shareService.getSharedWidget(sharedObject.shareId, sharedObject.domain).subscribe(widget => {\n this.sharedWidget = widget;\n })\n }\n\n getDashboard(dashboardId: string) {\n return this.dashboardService.getDashboard(dashboardId, this.domain).pipe(\n tap(dashboard => {\n this.dashboard = dashboard;\n // this.dashboard.filter = [...this.filters];\n })\n )\n\n // .subscribe(dashboard => {\n // this.dashboard = dashboard;\n // this.dashboard.filter = [...this.filters];\n // })\n }\n\n getWidgets(shareObject: Share) {\n this.loading = true\n\n this.shareService.getSharedDashboardWidgets(shareObject.shareId, shareObject.lang, shareObject.domain, this.filters, shareObject.shareEncryptKey, shareObject.authentication, this.sharedToken).pipe(\n catchError((error: any) => {\n this.loading = false\n this.notAuth = true\n return error\n })\n ).subscribe(result => {\n this.loading = false\n \n this.widgets = result.map(item => {\n return { ...item, widgetId: this.uniqTimeStemp + '-' + item.widgetId, widget: { ...item.widget, widgetId: this.uniqTimeStemp + '-' + item.widgetId } }\n });\n \n\n\n this.data.currentModalIndex\n this.scriptLoader.openedModals.getValue().find(x => x.modal == this.data.currentModalIndex).widgets = this.widgets\n })\n }\n\n}","\n\n
\n \n\n \n\n\n\n
\n\n","import { Injectable } from '@angular/core';\nimport { AuthService } from '../auth/auth.service';\nimport { HttpClient } from '@angular/common/http';\nimport { map } from 'rxjs/operators';\nimport { Endpoints } from 'src/app/constants/endpoints';\n\n@Injectable({\n providedIn: 'root'\n})\nexport class ArchitectureService {\n\n constructor(\n private authService: AuthService,\n private http: HttpClient,\n ) { }\n\n\n getBussionServers() {\n let param = {\n Token: this.authService.getToken()\n };\n return this.http.post(Endpoints.ArchGetBussionServers, param).pipe(\n map((res: any) => {\n return res\n })\n )\n }\n\n\n getBussionConnectors() {\n let param = {\n Token: this.authService.getToken()\n };\n return this.http.post(Endpoints.ArchBussionConnectors, param).pipe(\n map((res: any) => {\n return res\n })\n )\n }\n\n refreshData() {\n let param = {\n Token: this.authService.getToken()\n };\n return this.http.post(Endpoints.ArchRefreshData, param).pipe(\n map((res: any) => {\n return res\n })\n )\n }\n\n getBussionDataNodes() {\n let param = {\n Token: this.authService.getToken()\n };\n return this.http.post(Endpoints.ArchBussionDataNodes, param).pipe(\n map((res: any) => {\n return res\n })\n )\n }\n\n getBussionDataFlows() {\n let param = {\n Token: this.authService.getToken()\n };\n return this.http.post(Endpoints.ArchDataFlows, param).pipe(\n map((res: any) => {\n return res\n })\n )\n }\n\n getBussionDataStores() {\n let param = {\n Token: this.authService.getToken()\n };\n return this.http.post(Endpoints.ArchDataStores, param).pipe(\n map((res: any) => {\n return res\n })\n )\n }\n\n getBussionConnectorTasks() {\n let param = {\n Token: this.authService.getToken()\n };\n return this.http.post(Endpoints.ArchConnectorTasks, param).pipe(\n map((res: any) => {\n return res\n })\n )\n }\n}\n","import { Injectable } from '@angular/core';\nimport { Router } from '@angular/router';\nimport { HttpClient } from '@angular/common/http';\nimport { LoginRequest } from 'src/app/models/requests/loginRequest';\nimport { map } from 'rxjs/operators';\nimport { Endpoints } from 'src/app/constants/endpoints';\nimport { LoginResponse, User } from 'src/app/models/responses/loginResponse';\nimport { BehaviorSubject } from 'rxjs';\nimport { DashboardService } from '../dashboard/dashboard.service';\nimport { LanguagesShortCode } from 'src/app/models/globals/languages';\nimport { LicenseService } from '../license/license.service';\nimport { TranslateService } from '@ngx-translate/core';\nimport { MatSnackBar } from '@angular/material/snack-bar';\nimport { MatDialog } from '@angular/material/dialog';\n\n@Injectable({\n providedIn: 'root'\n})\nexport class AuthService {\n\n private loggedIn: BehaviorSubject = new BehaviorSubject(false);\n storageKeys: string[] = [\n 'user', 'token', 'domain', 'userId', 'name', 'lastName', 'avatar', 'micActive', 'licence', 'app', 'chatMessages','cachedData'\n ]\n\n constructor(\n private router: Router,\n private http: HttpClient,\n private snackBar: MatSnackBar,\n private dialog:MatDialog,\n private translate: TranslateService\n ) { }\n\n checkSession() {\n let token = this.getToken();\n if (token) {\n this.loggedIn.next(true);\n }\n else {\n this.loggedIn.next(false);\n }\n }\n\n isLoggedIn() {\n return this.loggedIn.asObservable();\n }\n\n isChaptchaEnabled() {\n let param = {\n Token: this.getToken()\n }\n return this.http.post(Endpoints.chaptcha, param).pipe(\n map((response: any) => {\n return response.message;\n })\n );\n }\n\n saveToken(token: string) {\n localStorage.setItem('token', token);\n }\n\n getToken() {\n return localStorage.getItem('token');\n }\n\n logout() {\n let param = {\n Token: this.getToken()\n }\n return this.http.post(Endpoints.logout, param).pipe(\n map((response: any) => {\n this.loggedIn.next(false);\n this.clearStorage()\n // localStorage.clear();\n \n this.router.navigate(['/login']);\n this.snackBar.dismiss()\n this.dialog.closeAll()\n return response;\n })\n );\n\n }\n\n clearStorage() {\n this.storageKeys.map(key => {\n localStorage.removeItem(key)\n })\n }\n\n login(loginRequest: LoginRequest) {\n\n return this.http.post(Endpoints.login, loginRequest).pipe(\n map((response: LoginResponse) => {\n\n this.saveUserInfos(response.message);\n this.loggedIn.next(true);\n this.setLanguage(response.message.language)\n return response;\n })\n );\n }\n\n\n setLanguage(lang: string) {\n this.translate.use(lang);\n }\n\n\n\n createAccount(user: User) {\n return this.http.post(Endpoints.register, user).pipe(\n map((response: LoginResponse) => {\n this.saveUserInfos(response.message);\n this.loggedIn.next(true);\n return response.message;\n })\n );\n }\n\n getLoginImage(domain: string) {\n return this.http.post(Endpoints.GetLoginPagePicture, {}).pipe(\n map((response: string) => {\n return response;\n })\n );\n }\n\n saveUserInfos(user: User) {\n localStorage.setItem('user', JSON.stringify(user));\n localStorage.setItem('domain', user.domain);\n localStorage.setItem('userId', user.userId);\n localStorage.setItem('name', user.firstName);\n localStorage.setItem('lastName', user.lastName);\n localStorage.setItem('avatar', user.avatar);\n\n }\n\n getuserOrganization() {\n let user = this.getUser();\n if (user) {\n var selectedOrg = user.organization\n return selectedOrg\n } else {\n return ''\n }\n }\n\n getUserDomain() {\n return localStorage.getItem('domain');\n }\n\n getUserId() {\n return localStorage.getItem('userId');\n }\n\n getUserFirstName() {\n return localStorage.getItem('name');\n }\n\n getUserLastName() {\n return localStorage.getItem('lastName');\n }\n\n getUserAvatar() {\n return localStorage.getItem('avatar');\n }\n\n getUserLanguage() {\n let user = this.getUser();\n if (user)\n return user.language;\n else return 'English'\n }\n\n getUserLangName() {\n let user = this.getUser();\n if (user) {\n var selectedLang = this.getShortCodeForLang(user.language)\n return selectedLang.code\n } else {\n return 'tr'\n }\n\n }\n\n getShortCodeForLang(lang) {\n return LanguagesShortCode.find(x => x.name == lang)\n }\n\n getUser() {\n let user = JSON.parse(localStorage.getItem('user'));\n return user;\n }\n\n getPermissions() {\n if (localStorage.getItem('user'))\n return JSON.parse(localStorage.getItem('user'))?.permissions\n else\n return []\n }\n\n getRoles() {\n if (localStorage.getItem('user'))\n return JSON.parse(localStorage.getItem('user'))?.roles\n else\n return []\n }\n\n}\n","import { Injectable } from '@angular/core';\nimport { AuthService } from '../auth/auth.service';\nimport { HttpClient } from '@angular/common/http';\nimport { Endpoints } from 'src/app/constants/endpoints';\nimport { map } from 'rxjs/operators';\n\n@Injectable({\n providedIn: 'root'\n})\nexport class BussionMainService {\n\n constructor(\n private authService: AuthService,\n private http: HttpClient,\n ) { }\n\n\n getBussionMain(fileType:string) {\n let param = {\n Token: this.authService.getToken(),\n FileType: fileType\n };\n return this.http.post(Endpoints.getBussionMain, param).pipe(\n map((res: any) => {\n return res.message\n })\n )\n }\n\n setBussionMain(Content: String, fileType: string) {\n let param = {\n Token: this.authService.getToken(),\n Content: Content,\n FileType: fileType\n };\n return this.http.post(Endpoints.setBussionMain, param).pipe(\n map((res: any) => {\n return res.message\n })\n )\n }\n\n getBussionLogin(fileType: string) {\n return this.http.post(Endpoints.getBussionLogin, { FileType: fileType }).pipe(\n map((res: any) => {\n return res.message;\n })\n )\n }\n\n setBussionLogin(Content: string, fileType: string) {\n let param = {\n Token: this.authService.getToken(),\n Content: Content,\n FileType: fileType\n };\n return this.http.post(Endpoints.setBussionLogin, param).pipe(\n map((res: any) => {\n return res.message;\n })\n )\n }\n\n\n}\n","import { HttpClient } from '@angular/common/http';\nimport { Injectable } from '@angular/core';\nimport { Endpoints } from 'src/app/constants/endpoints';\nimport { AuthService } from '../auth/auth.service';\nimport { map } from 'rxjs/operators';\nimport { BehaviorSubject } from 'rxjs';\nimport { SpeechStatus } from 'src/app/core/speechTypes';\ndeclare let window: any;\n\n\n\n@Injectable({\n providedIn: 'root'\n})\nexport class ChatbotService {\n recognition: any\n public speechStatus: BehaviorSubject = new BehaviorSubject(SpeechStatus.Stoped);\n constructor(\n private http: HttpClient,\n private authService: AuthService) {\n if ('SpeechRecognition' in window) {\n let SpeechRecognition = window.SpeechRecognition || window.webkitSpeechRecognition;\n\n this.recognition = new SpeechRecognition();\n this.recognition.lang = `${this.authService.getUserLangName()}-${this.authService.getUserLangName().toUpperCase()}`\n if (localStorage.getItem('micActive') == 'true')\n this.openSpeech()\n }\n }\n\n\n getSuggesstion(message: string) {\n let param = {\n Token: this.authService.getToken(),\n Question: message,\n };\n\n return this.http.post(Endpoints.getSuggesstion, param).pipe(\n map((response: any) => {\n return response\n })\n );\n\n\n }\n\n closeSpeech(value) {\n this.recognition.stop();\n localStorage.setItem('micActive', 'false')\n }\n\n\n openSpeech() {\n\n // this.recognition.lang = 'tr-TR';\n\n this.recognition.onstart = () => {\n localStorage.setItem('micActive', 'true')\n }\n\n try {\n this.recognition.start();\n } catch (error) {\n console.error(error)\n }\n\n\n return this.recognition\n }\n\n changeRecognitionLang(lang: string) {\n // var langname = this.authService.getShortCodeForLang(lang)\n this.recognition.lang = `${lang}-${lang.toUpperCase()}`\n }\n\n}\n\n","import { Injectable } from '@angular/core';\nimport { HttpClient } from '@angular/common/http';\nimport { AuthService } from '../auth/auth.service';\nimport { Endpoints } from 'src/app/constants/endpoints';\nimport { map } from 'rxjs/operators';\nimport { ColorPaletteResponse, ColorPalette} from 'src/app/models/responses/colorPaletteResponse';\n\n@Injectable({\n providedIn: 'root'\n})\nexport class ColorPaletteService {\n\n constructor(\n private http: HttpClient,\n private authService: AuthService\n ) { }\n\n getColorPalettes() {\n let param = { Token: this.authService.getToken() };\n return this.http.post(Endpoints.getAllColorPalettes, param).pipe(\n map((response: ColorPaletteResponse) => {\n return response.message;\n })\n );\n }\n\n upsertColorPalette(colorPalette: ColorPalette) {\n let param = { \n Token: this.authService.getToken(),\n ColorPalette: colorPalette\n };\n return this.http.post(Endpoints.upsertColorPalette, param).pipe(\n map((response: ColorPaletteResponse) => {\n return response.message;\n })\n );\n }\n\n deleteColorPalette(colorPalette: ColorPalette) {\n let param = { \n Token: this.authService.getToken(),\n ColorPaletteId: colorPalette.colorPaletteId\n };\n return this.http.post(Endpoints.deleteColorPalette, param).pipe(\n map((response: ColorPaletteResponse) => {\n return response.message;\n })\n );\n }\n\n}\n","import { Injectable } from '@angular/core';\nimport { HttpClient } from '@angular/common/http';\nimport { AuthService } from '../auth/auth.service';\nimport { Endpoints } from 'src/app/constants/endpoints';\nimport { map } from 'rxjs/operators';\nimport { NodeResponse } from 'src/app/models/responses/nodeResponse';\nimport { BussionConnector } from 'src/app/models/responses/bussionConncetorResponse';\nimport { User } from 'src/app/models/responses/loginResponse';\n\n@Injectable({\n providedIn: 'root'\n})\nexport class ConnectorService {\n\n constructor(\n private http: HttpClient,\n private authService: AuthService\n ) { }\n\n initiliazeConnector(username: string, password: string, port: string, node: string) {\n let param = {\n UserName: username,\n Password: password,\n UserId: username,\n Domain: this.authService.getUserDomain(),\n Port: port,\n Node: node\n };\n let url = Endpoints.initiliazeConnector\n return this.http.post(url, param).pipe(\n map((response: any) => {\n return response.message;\n })\n );\n }\n\n getConnectors() {\n let param = {\n Token: this.authService.getToken(),\n };\n\n return this.http.post(Endpoints.getBussionConnector, param).pipe(\n map((response: NodeResponse) => {\n return response.message;\n })\n );\n\n }\n\n deleteConnector(connectorId: string) {\n let param = {\n Token: this.authService.getToken(),\n BussionConnectorId: connectorId\n };\n\n return this.http.post(Endpoints.deleteBussionConnector, param).pipe(\n map((response: NodeResponse) => {\n return response.message;\n })\n );\n }\n\n getCredentials(host: string, port: string) {\n let param = {\n Token: this.authService.getToken(),\n Host: host,\n Port: port\n };\n\n return this.http.post(Endpoints.GetCredidentials, param).pipe(\n map((response: any) => {\n return response.message;\n })\n );\n }\n\n getConnectorTasks() {\n let param = {\n Token: this.authService.getToken(),\n };\n\n return this.http.post(Endpoints.getConnectorTasks, param).pipe(\n map((response: any) => {\n return response.message;\n })\n );\n }\n\n upsertConnectorTask(task: BussionConnector) {\n task.domain = this.authService.getUserDomain();\n let param = {\n Token: this.authService.getToken(),\n ConnectorTask: task\n };\n\n return this.http.post(Endpoints.upsertConnectorTask, param).pipe(\n map((response: any) => {\n return response.message;\n })\n );\n }\n\n deleteConnectorTask(taskId: string) {\n let param = {\n Token: this.authService.getToken(),\n ConnectorTaskId: taskId\n };\n\n return this.http.post(Endpoints.deleteConnectorTask, param).pipe(\n map((response: any) => {\n return response.message;\n })\n );\n }\n\n runTask(taskId: string) {\n let param = {\n Token: this.authService.getToken(),\n ConnectorTaskId: taskId\n };\n\n return this.http.post(Endpoints.runConnectorTask, param).pipe(\n map((response: any) => {\n return response.message;\n })\n );\n }\n\n stopTask(taskId: string, ConnectorNodeId?: string) {\n var param: any = {\n Token: this.authService.getToken(),\n TaskId: taskId\n };\n if (ConnectorNodeId) {\n param = {\n Token: this.authService.getToken(),\n TaskId: taskId,\n ConnectorNodeId: ConnectorNodeId\n }\n }\n\n\n return this.http.post(Endpoints.stopConnectorTask, param).pipe(\n map((response: any) => {\n return response.message;\n })\n );\n }\n\n getTaskStatus(taskId: string) {\n let param = {\n Token: this.authService.getToken(),\n TaskId: taskId\n };\n\n let url = Endpoints.getTaskLogs;\n\n return this.http.post(url, param).pipe(\n map((response: any) => {\n return response.message;\n })\n );\n }\n\n getDataFlows() {\n let param = {\n Token: this.authService.getToken()\n };\n\n return this.http.post(Endpoints.GetScriptFlows, param).pipe(\n map((response: any) => {\n return response.message;\n })\n );\n }\n\n GetExternalEngineCode(nodeId: string, engine: string) {\n let param = {\n Token: this.authService.getToken(),\n NodeId: nodeId,\n Engine: engine\n };\n\n return this.http.post(Endpoints.GetExternalEngineCode, param).pipe(\n map((response: any) => {\n return response.message;\n })\n );\n }\n\n GetExternalEngineTemplate(nodeId: string) {\n let param = {\n Token: this.authService.getToken(),\n NodeId: nodeId\n };\n\n return this.http.post(Endpoints.GetExternalEngineTemplate, param).pipe(\n map((response: any) => {\n return response.message;\n })\n );\n }\n\n UpsertExternalEngine(nodeId: string, engine: string, code: string) {\n let param = {\n Token: this.authService.getToken(),\n NodeId: nodeId,\n Engine: engine,\n Code: code\n };\n\n return this.http.post(Endpoints.UpsertExternalEngine, param).pipe(\n map((response: any) => {\n return response.message;\n })\n );\n }\n\n\n DeleteExternalEngine(nodeId: string, engine: string) {\n let param = {\n Token: this.authService.getToken(),\n NodeId: nodeId,\n Engine: engine\n };\n\n return this.http.post(Endpoints.DeleteExternalEngine, param).pipe(\n map((response: any) => {\n return response.message;\n })\n );\n }\n\n GetExternalEngines(nodeId: string) {\n let param = {\n Token: this.authService.getToken(),\n NodeId: nodeId\n };\n\n return this.http.post(Endpoints.GetExternalEngines, param).pipe(\n map((response: any) => {\n return response.message;\n })\n );\n }\n\n ExecuteQuery(connector: BussionConnector, password: string) {\n connector.type = -1\n connector.sourcePassword = password\n let param = {\n Token: this.authService.getToken(),\n Connector: connector\n };\n\n return this.http.post(Endpoints.executeQuery, param).pipe(\n map((response: any) => {\n return response.message;\n })\n );\n }\n}\n","import { Injectable } from '@angular/core';\nimport { HttpClient } from '@angular/common/http';\nimport { MatSnackBar } from '@angular/material/snack-bar';\nimport { MatIconRegistry } from \"@angular/material/icon\";\nimport { DomSanitizer } from '@angular/platform-browser';\nimport { BehaviorSubject, ReplaySubject } from 'rxjs';\nimport { TranslateService } from '@ngx-translate/core';\nimport { Endpoints } from 'src/app/constants/endpoints';\nimport { map } from 'rxjs/operators';\n\n@Injectable({\n providedIn: 'root'\n})\nexport class CoreService {\n\n private headerShown: ReplaySubject = new ReplaySubject();\n constructor(\n private http: HttpClient,\n private snackBar: MatSnackBar,\n private matIconRegistry: MatIconRegistry,\n private domSanitizer: DomSanitizer,\n private translate: TranslateService\n ) { }\n\n getMultiTenantStatus() {\n return this.http.post(Endpoints.getMultiTenantStatus, null).pipe(\n map((response: any) => {\n return response.message;\n })\n );\n }\n\n\n showErrorMessage(message: string) {\n this.snackBar.open(message, this.translate.instant('Common.Close'), {\n // duration: 2000,\n verticalPosition: 'top',\n horizontalPosition: 'right',\n panelClass: ['mat-toolbar', 'mat-warn']\n });\n }\n\n showSuccessMessage(message: string) {\n this.snackBar.open(message, null, {\n duration: 2000,\n verticalPosition: 'top',\n horizontalPosition: 'right',\n panelClass: ['mat-toolbar', 'mat-primary']\n });\n }\n\n showFormFillError(message?: string) {\n this.snackBar.open(message ? message : this.translate.instant(\"ErrorMessages.FillFields\"), null, {\n duration: 2000,\n verticalPosition: 'top',\n horizontalPosition: 'right',\n panelClass: ['mat-toolbar', 'mat-primary']\n });\n }\n\n headerStatus() {\n return this.headerShown.asObservable();\n }\n\n changeHeaderStatus(status: boolean) {\n this.headerShown.next(status);\n }\n\n loadCustomSVG() {\n this.matIconRegistry.addSvgIcon(\n `add_dashboard`,\n this.domSanitizer.bypassSecurityTrustResourceUrl(\"/assets/images/icons/add_dashboard.svg\")\n );\n\n this.matIconRegistry.addSvgIcon(\n `clear_all`,\n this.domSanitizer.bypassSecurityTrustResourceUrl(\"/assets/images/icons/clearAll.svg\")\n );\n\n this.matIconRegistry.addSvgIcon(\n `custom_dashboard`,\n this.domSanitizer.bypassSecurityTrustResourceUrl(\"/assets/images/icons/custom-dashboard.svg\")\n );\n\n this.matIconRegistry.addSvgIcon(\n `search`,\n this.domSanitizer.bypassSecurityTrustResourceUrl(\"/assets/images/icons/search.svg\")\n );\n\n this.matIconRegistry.addSvgIcon(\n `file-preview`,\n this.domSanitizer.bypassSecurityTrustResourceUrl(\"/assets/images/icons/file-preview.svg\")\n );\n\n this.matIconRegistry.addSvgIcon(\n `eye-svgrepo-com`,\n this.domSanitizer.bypassSecurityTrustResourceUrl(\"/assets/images/icons/eye-svgrepo-com.svg\")\n );\n\n this.matIconRegistry.addSvgIcon(\n `bussion_connector`,\n this.domSanitizer.bypassSecurityTrustResourceUrl(\"/assets/images/icons/BussionConnector.svg\")\n );\n\n this.matIconRegistry.addSvgIcon(\n `color_palette`,\n this.domSanitizer.bypassSecurityTrustResourceUrl(\"/assets/images/icons/color_palette.svg\")\n );\n\n this.matIconRegistry.addSvgIcon(\n `comment`,\n this.domSanitizer.bypassSecurityTrustResourceUrl(\"/assets/images/icons/comment.svg\")\n );\n\n this.matIconRegistry.addSvgIcon(\n `dashboard`,\n this.domSanitizer.bypassSecurityTrustResourceUrl(\"/assets/images/icons/dashboard.svg\")\n );\n\n this.matIconRegistry.addSvgIcon(\n `data_store`,\n this.domSanitizer.bypassSecurityTrustResourceUrl(\"/assets/images/icons/data_store.svg\")\n );\n\n this.matIconRegistry.addSvgIcon(\n `delete`,\n this.domSanitizer.bypassSecurityTrustResourceUrl(\"/assets/images/icons/delete.svg\")\n );\n this.matIconRegistry.addSvgIcon(\n `deletemessage`,\n this.domSanitizer.bypassSecurityTrustResourceUrl(\"/assets/images/icons/deletemessage.svg\")\n );\n\n this.matIconRegistry.addSvgIcon(\n `pin`,\n this.domSanitizer.bypassSecurityTrustResourceUrl(\"/assets/images/icons/pin.svg\")\n );\n this.matIconRegistry.addSvgIcon(\n `pin-green`,\n this.domSanitizer.bypassSecurityTrustResourceUrl(\"/assets/images/icons/pin-green.svg\")\n );\n\n this.matIconRegistry.addSvgIcon(\n `filter`,\n this.domSanitizer.bypassSecurityTrustResourceUrl(\"/assets/images/icons/filter.svg\")\n );\n\n this.matIconRegistry.addSvgIcon(\n `global_function`,\n this.domSanitizer.bypassSecurityTrustResourceUrl(\"/assets/images/icons/GlobalFunctions.svg\")\n );\n\n this.matIconRegistry.addSvgIcon(\n `script`,\n this.domSanitizer.bypassSecurityTrustResourceUrl(\"/assets/images/icons/script.svg\")\n );\n\n\n this.matIconRegistry.addSvgIcon(\n `groups`,\n this.domSanitizer.bypassSecurityTrustResourceUrl(\"/assets/images/icons/groups.svg\")\n );\n\n this.matIconRegistry.addSvgIcon(\n `main_page`,\n this.domSanitizer.bypassSecurityTrustResourceUrl(\"/assets/images/icons/main_page.svg\")\n );\n\n this.matIconRegistry.addSvgIcon(\n `menu`,\n this.domSanitizer.bypassSecurityTrustResourceUrl(\"/assets/images/icons/menu.svg\")\n );\n\n this.matIconRegistry.addSvgIcon(\n `node`,\n this.domSanitizer.bypassSecurityTrustResourceUrl(\"/assets/images/icons/node.svg\")\n );\n\n this.matIconRegistry.addSvgIcon(\n `roles`,\n this.domSanitizer.bypassSecurityTrustResourceUrl(\"/assets/images/icons/roles.svg\")\n );\n\n this.matIconRegistry.addSvgIcon(\n `run`,\n this.domSanitizer.bypassSecurityTrustResourceUrl(\"/assets/images/icons/run.svg\")\n );\n\n this.matIconRegistry.addSvgIcon(\n `scale_screen`,\n this.domSanitizer.bypassSecurityTrustResourceUrl(\"/assets/images/icons/scale_screen.svg\")\n );\n\n this.matIconRegistry.addSvgIcon(\n `share`,\n this.domSanitizer.bypassSecurityTrustResourceUrl(\"/assets/images/icons/share.svg\")\n );\n\n this.matIconRegistry.addSvgIcon(\n `users`,\n this.domSanitizer.bypassSecurityTrustResourceUrl(\"/assets/images/icons/users.svg\")\n );\n\n this.matIconRegistry.addSvgIcon(\n `visual_component`,\n this.domSanitizer.bypassSecurityTrustResourceUrl(\"/assets/images/icons/visual_component.svg\")\n );\n\n this.matIconRegistry.addSvgIcon(\n `widget_library`,\n this.domSanitizer.bypassSecurityTrustResourceUrl(\"/assets/images/icons/WidgetLibrary.svg\")\n );\n\n this.matIconRegistry.addSvgIcon(\n `deploy_app`,\n this.domSanitizer.bypassSecurityTrustResourceUrl(\"/assets/images/icons/app.svg\")\n );\n\n this.matIconRegistry.addSvgIcon(\n `zoom`,\n this.domSanitizer.bypassSecurityTrustResourceUrl(\"/assets/images/icons/zoom.svg\")\n );\n this.matIconRegistry.addSvgIcon(\n `refresh`,\n this.domSanitizer.bypassSecurityTrustResourceUrl(\"/assets/images/icons/refresh-icon.svg\")\n );\n this.matIconRegistry.addSvgIcon(\n `export`,\n this.domSanitizer.bypassSecurityTrustResourceUrl(\"/assets/images/icons/export-icon.svg\")\n );\n this.matIconRegistry.addSvgIcon(\n `download`,\n this.domSanitizer.bypassSecurityTrustResourceUrl(\"/assets/images/icons/download-icon.svg\")\n );\n this.matIconRegistry.addSvgIcon(\n `upload`,\n this.domSanitizer.bypassSecurityTrustResourceUrl(\"/assets/images/icons/upload-icon.svg\")\n );\n this.matIconRegistry.addSvgIcon(\n `restore`,\n this.domSanitizer.bypassSecurityTrustResourceUrl(\"/assets/images/icons/restore-icon.svg\")\n );\n this.matIconRegistry.addSvgIcon(\n `backup`,\n this.domSanitizer.bypassSecurityTrustResourceUrl(\"/assets/images/icons/backup-icon.svg\")\n );\n this.matIconRegistry.addSvgIcon(\n `edit`,\n this.domSanitizer.bypassSecurityTrustResourceUrl(\"/assets/images/icons/edit-icon.svg\")\n );\n this.matIconRegistry.addSvgIcon(\n `draghand`,\n this.domSanitizer.bypassSecurityTrustResourceUrl(\"/assets/images/icons/draghand.svg\")\n );\n this.matIconRegistry.addSvgIcon(\n `sort`,\n this.domSanitizer.bypassSecurityTrustResourceUrl(\"/assets/images/icons/sort.svg\")\n );\n this.matIconRegistry.addSvgIcon(\n `sort-green`,\n this.domSanitizer.bypassSecurityTrustResourceUrl(\"/assets/images/icons/sort-green.svg\")\n );\n this.matIconRegistry.addSvgIcon(\n `show-all`,\n this.domSanitizer.bypassSecurityTrustResourceUrl(\"/assets/images/icons/show-all.svg\")\n );\n this.matIconRegistry.addSvgIcon(\n `show-all-green`,\n this.domSanitizer.bypassSecurityTrustResourceUrl(\"/assets/images/icons/show-all-green.svg\")\n );\n this.matIconRegistry.addSvgIcon(\n\n `message`,\n this.domSanitizer.bypassSecurityTrustResourceUrl(\"/assets/images/icons/message-icon.svg\")\n );\n this.matIconRegistry.addSvgIcon(\n `hide`,\n this.domSanitizer.bypassSecurityTrustResourceUrl(\"/assets/images/icons/hide-icon.svg\")\n );\n this.matIconRegistry.addSvgIcon(\n `main`,\n this.domSanitizer.bypassSecurityTrustResourceUrl(\"/assets/images/icons/Bmain-icon.svg\")\n );\n this.matIconRegistry.addSvgIcon(\n `login`,\n this.domSanitizer.bypassSecurityTrustResourceUrl(\"/assets/images/icons/login-icon.svg\")\n );\n this.matIconRegistry.addSvgIcon(\n `logout`,\n this.domSanitizer.bypassSecurityTrustResourceUrl(\"/assets/images/icons/logout.svg\")\n );\n this.matIconRegistry.addSvgIcon(\n `play`,\n this.domSanitizer.bypassSecurityTrustResourceUrl(\"/assets/images/icons/play.svg\")\n );\n this.matIconRegistry.addSvgIcon(\n `playgray`,\n this.domSanitizer.bypassSecurityTrustResourceUrl(\"/assets/images/icons/playgray.svg\")\n );\n this.matIconRegistry.addSvgIcon(\n `setting-custom`,\n this.domSanitizer.bypassSecurityTrustResourceUrl(\"/assets/images/icons/setting-custom.svg\")\n );\n this.matIconRegistry.addSvgIcon(\n `dataStore`,\n this.domSanitizer.bypassSecurityTrustResourceUrl(\"/assets/images/icons/dataStore-icon.svg\")\n );\n this.matIconRegistry.addSvgIcon(\n `dashboardIcon`,\n this.domSanitizer.bypassSecurityTrustResourceUrl(\"/assets/images/icons/dashboard-icon.svg\")\n );\n this.matIconRegistry.addSvgIcon(\n `robot`,\n this.domSanitizer.bypassSecurityTrustResourceUrl(\"/assets/images/icons/robot.svg\")\n );\n this.matIconRegistry.addSvgIcon(\n `statIcon`,\n this.domSanitizer.bypassSecurityTrustResourceUrl(\"/assets/images/icons/stat.svg\")\n );\n this.matIconRegistry.addSvgIcon(\n `setting`,\n this.domSanitizer.bypassSecurityTrustResourceUrl(\"/assets/images/icons/setting.svg\")\n );\n this.matIconRegistry.addSvgIcon(\n `moon`,\n this.domSanitizer.bypassSecurityTrustResourceUrl(\"/assets/images/icons/moon.svg\")\n );\n this.matIconRegistry.addSvgIcon(\n `flow`,\n this.domSanitizer.bypassSecurityTrustResourceUrl(\"/assets/images/icons/flow.svg\")\n );\n this.matIconRegistry.addSvgIcon(\n `scriptIcon`,\n this.domSanitizer.bypassSecurityTrustResourceUrl(\"/assets/images/icons/scriptIcon.svg\")\n );\n this.matIconRegistry.addSvgIcon(\n `edit-box`,\n this.domSanitizer.bypassSecurityTrustResourceUrl(\"/assets/images/icons/edit-box.svg\")\n );\n this.matIconRegistry.addSvgIcon(\n `delete-box`,\n this.domSanitizer.bypassSecurityTrustResourceUrl(\"/assets/images/icons/delete-box.svg\")\n );\n this.matIconRegistry.addSvgIcon(\n `change-flow`,\n this.domSanitizer.bypassSecurityTrustResourceUrl(\"/assets/images/icons/change-flow.svg\")\n );\n this.matIconRegistry.addSvgIcon(\n `zoom-in`,\n this.domSanitizer.bypassSecurityTrustResourceUrl(\"/assets/images/icons/zoom-in.svg\")\n );\n this.matIconRegistry.addSvgIcon(\n `zoom-out`,\n this.domSanitizer.bypassSecurityTrustResourceUrl(\"/assets/images/icons/zoom-out.svg\")\n );\n this.matIconRegistry.addSvgIcon(\n `settings`,\n this.domSanitizer.bypassSecurityTrustResourceUrl(\"/assets/images/icons/settings.svg\")\n );\n this.matIconRegistry.addSvgIcon(\n `error`,\n this.domSanitizer.bypassSecurityTrustResourceUrl(\"/assets/images/icons/error.svg\")\n );\n this.matIconRegistry.addSvgIcon(\n `success`,\n this.domSanitizer.bypassSecurityTrustResourceUrl(\"/assets/images/icons/success.svg\")\n );\n this.matIconRegistry.addSvgIcon(\n `arrow-right`,\n this.domSanitizer.bypassSecurityTrustResourceUrl(\"/assets/images/icons/arrow-right.svg\")\n );\n this.matIconRegistry.addSvgIcon(\n `color-palette`,\n this.domSanitizer.bypassSecurityTrustResourceUrl(\"/assets/images/icons/color-palette.svg\")\n );\n this.matIconRegistry.addSvgIcon(\n `paint`,\n this.domSanitizer.bypassSecurityTrustResourceUrl(\"/assets/images/icons/paint.svg\")\n );\n this.matIconRegistry.addSvgIcon(\n `chart2`,\n this.domSanitizer.bypassSecurityTrustResourceUrl(\"/assets/images/icons/chart2.svg\")\n );\n this.matIconRegistry.addSvgIcon(\n `custom`,\n this.domSanitizer.bypassSecurityTrustResourceUrl(\"/assets/images/icons/custom.svg\")\n );\n this.matIconRegistry.addSvgIcon(\n `arrow-down`,\n this.domSanitizer.bypassSecurityTrustResourceUrl(\"/assets/images/icons/arrow-down.svg\")\n );\n this.matIconRegistry.addSvgIcon(\n `multicolor`,\n this.domSanitizer.bypassSecurityTrustResourceUrl(\"/assets/images/icons/multicolor.svg\")\n );\n this.matIconRegistry.addSvgIcon(\n `samecolor`,\n this.domSanitizer.bypassSecurityTrustResourceUrl(\"/assets/images/icons/samecolor.svg\")\n );\n this.matIconRegistry.addSvgIcon(\n `highttolow`,\n this.domSanitizer.bypassSecurityTrustResourceUrl(\"/assets/images/icons/highttolow.svg\")\n );\n this.matIconRegistry.addSvgIcon(\n `lowtohigh`,\n this.domSanitizer.bypassSecurityTrustResourceUrl(\"/assets/images/icons/lowtohigh.svg\")\n );\n this.matIconRegistry.addSvgIcon(\n `measure`,\n this.domSanitizer.bypassSecurityTrustResourceUrl(\"/assets/images/icons/measure.svg\")\n );\n this.matIconRegistry.addSvgIcon(\n `sort2`,\n this.domSanitizer.bypassSecurityTrustResourceUrl(\"/assets/images/icons/sort2.svg\")\n );\n this.matIconRegistry.addSvgIcon(\n `chat`,\n this.domSanitizer.bypassSecurityTrustResourceUrl(\"/assets/images/icons/chat.svg\")\n );\n this.matIconRegistry.addSvgIcon(\n `variable`,\n this.domSanitizer.bypassSecurityTrustResourceUrl(\"/assets/images/icons/variable.svg\")\n );\n this.matIconRegistry.addSvgIcon(\n `document`,\n this.domSanitizer.bypassSecurityTrustResourceUrl(\"/assets/images/icons/document.svg\")\n );\n this.matIconRegistry.addSvgIcon(\n `activity`,\n this.domSanitizer.bypassSecurityTrustResourceUrl(\"/assets/images/icons/activity.svg\")\n );\n this.matIconRegistry.addSvgIcon(\n `calendar`,\n this.domSanitizer.bypassSecurityTrustResourceUrl(\"/assets/images/icons/calendar.svg\")\n );\n this.matIconRegistry.addSvgIcon(\n `calculate`,\n this.domSanitizer.bypassSecurityTrustResourceUrl(\"/assets/images/icons/calculate.svg\")\n );\n this.matIconRegistry.addSvgIcon(\n `Number`,\n this.domSanitizer.bypassSecurityTrustResourceUrl(\"/assets/images/icons/Number.svg\")\n );\n this.matIconRegistry.addSvgIcon(\n `String`,\n this.domSanitizer.bypassSecurityTrustResourceUrl(\"/assets/images/icons/String.svg\")\n );\n this.matIconRegistry.addSvgIcon(\n `DateTime`,\n this.domSanitizer.bypassSecurityTrustResourceUrl(\"/assets/images/icons/DateTime.svg\")\n );\n this.matIconRegistry.addSvgIcon(\n `fx`,\n this.domSanitizer.bypassSecurityTrustResourceUrl(\"/assets/images/icons/fx.svg\")\n );\n this.matIconRegistry.addSvgIcon(\n `file-preview-white`,\n this.domSanitizer.bypassSecurityTrustResourceUrl(\"/assets/images/icons/file-preview-white.svg\")\n );\n this.matIconRegistry.addSvgIcon(\n `list`,\n this.domSanitizer.bypassSecurityTrustResourceUrl(\"/assets/images/icons/list.svg\")\n );\n this.matIconRegistry.addSvgIcon(\n `stop`,\n this.domSanitizer.bypassSecurityTrustResourceUrl(\"/assets/images/icons/stop.svg\")\n );\n this.matIconRegistry.addSvgIcon(\n `folder`,\n this.domSanitizer.bypassSecurityTrustResourceUrl(\"/assets/images/icons/folder.svg\")\n );\n this.matIconRegistry.addSvgIcon(\n `person`,\n this.domSanitizer.bypassSecurityTrustResourceUrl(\"/assets/images/icons/person.svg\")\n );\n this.matIconRegistry.addSvgIcon(\n `disableSearch`,\n this.domSanitizer.bypassSecurityTrustResourceUrl(\"/assets/images/icons/disableSearch.svg\")\n );\n this.matIconRegistry.addSvgIcon(\n `filter-outline`,\n this.domSanitizer.bypassSecurityTrustResourceUrl(\"/assets/images/icons/filter-outline.svg\")\n );\n this.matIconRegistry.addSvgIcon(\n `dashboards`,\n this.domSanitizer.bypassSecurityTrustResourceUrl(\"/assets/images/icons/dashboards.svg\")\n );\n this.matIconRegistry.addSvgIcon(\n `server`,\n this.domSanitizer.bypassSecurityTrustResourceUrl(\"/assets/images/icons/server.svg\")\n );\n this.matIconRegistry.addSvgIcon(\n `connection`,\n this.domSanitizer.bypassSecurityTrustResourceUrl(\"/assets/images/icons/connection.svg\")\n );\n this.matIconRegistry.addSvgIcon(\n `open`,\n this.domSanitizer.bypassSecurityTrustResourceUrl(\"/assets/images/icons/open.svg\")\n );\n this.matIconRegistry.addSvgIcon(\n `grid`,\n this.domSanitizer.bypassSecurityTrustResourceUrl(\"/assets/images/icons/grid.svg\")\n );\n this.matIconRegistry.addSvgIcon(\n `sortasc`,\n this.domSanitizer.bypassSecurityTrustResourceUrl(\"/assets/images/icons/sortasc.svg\")\n );\n this.matIconRegistry.addSvgIcon(\n `sortdesc`,\n this.domSanitizer.bypassSecurityTrustResourceUrl(\"/assets/images/icons/sortdesc.svg\")\n );\n this.matIconRegistry.addSvgIcon(\n `hash`,\n this.domSanitizer.bypassSecurityTrustResourceUrl(\"/assets/images/icons/hash.svg\")\n );\n this.matIconRegistry.addSvgIcon(\n `upload-cloud`,\n this.domSanitizer.bypassSecurityTrustResourceUrl(\"/assets/images/icons/upload-cloud.svg\")\n );\n this.matIconRegistry.addSvgIcon(\n `play-tv`,\n this.domSanitizer.bypassSecurityTrustResourceUrl(\"/assets/images/icons/play-tv.svg\")\n );\n this.matIconRegistry.addSvgIcon(\n `stop-square`,\n this.domSanitizer.bypassSecurityTrustResourceUrl(\"/assets/images/icons/stop-square.svg\")\n );\n this.matIconRegistry.addSvgIcon(\n `info`,\n this.domSanitizer.bypassSecurityTrustResourceUrl(\"/assets/images/icons/info.svg\")\n );\n this.matIconRegistry.addSvgIcon(\n `dimension`,\n this.domSanitizer.bypassSecurityTrustResourceUrl(\"/assets/images/icons/dimension.svg\")\n );\n this.matIconRegistry.addSvgIcon(\n `chevron-down`,\n this.domSanitizer.bypassSecurityTrustResourceUrl(\"/assets/images/icons/chevron-down.svg\")\n );\n this.matIconRegistry.addSvgIcon(\n `chevron-up`,\n this.domSanitizer.bypassSecurityTrustResourceUrl(\"/assets/images/icons/chevron-up.svg\")\n );\n this.matIconRegistry.addSvgIcon(\n `home`,\n this.domSanitizer.bypassSecurityTrustResourceUrl(\"/assets/images/icons/home.svg\")\n );\n this.matIconRegistry.addSvgIcon(\n `messagebot`,\n this.domSanitizer.bypassSecurityTrustResourceUrl(\"/assets/images/icons/messagebot.svg\")\n );\n this.matIconRegistry.addSvgIcon(\n `analytic`,\n this.domSanitizer.bypassSecurityTrustResourceUrl(\"/assets/images/icons/analytic.svg\")\n );\n this.matIconRegistry.addSvgIcon(\n `send`,\n this.domSanitizer.bypassSecurityTrustResourceUrl(\"/assets/images/icons/send.svg\")\n );\n this.matIconRegistry.addSvgIcon(\n `phoneScreen`,\n this.domSanitizer.bypassSecurityTrustResourceUrl(\"/assets/images/icons/phoneScreen.svg\")\n );\n this.matIconRegistry.addSvgIcon(\n `eye`,\n this.domSanitizer.bypassSecurityTrustResourceUrl(\"/assets/images/icons/eye.svg\")\n );\n this.matIconRegistry.addSvgIcon(\n `favorite`,\n this.domSanitizer.bypassSecurityTrustResourceUrl(\"/assets/images/icons/favorite.svg\")\n );\n this.matIconRegistry.addSvgIcon(\n `zoom1`,\n this.domSanitizer.bypassSecurityTrustResourceUrl(\"/assets/images/icons/zoom1.svg\")\n );\n this.matIconRegistry.addSvgIcon(\n `edit1`,\n this.domSanitizer.bypassSecurityTrustResourceUrl(\"/assets/images/icons/edit1.svg\")\n );\n this.matIconRegistry.addSvgIcon(\n `image`,\n this.domSanitizer.bypassSecurityTrustResourceUrl(\"/assets/images/icons/image.svg\")\n );\n this.matIconRegistry.addSvgIcon(\n `csv`,\n this.domSanitizer.bypassSecurityTrustResourceUrl(\"/assets/images/icons/csv.svg\")\n );\n this.matIconRegistry.addSvgIcon(\n `download1`,\n this.domSanitizer.bypassSecurityTrustResourceUrl(\"/assets/images/icons/download1.svg\")\n );\n this.matIconRegistry.addSvgIcon(\n `multicolorcustom`,\n this.domSanitizer.bypassSecurityTrustResourceUrl(\"/assets/images/icons/multicolorcustom.svg\")\n );\n this.matIconRegistry.addSvgIcon(\n `refresh2`,\n this.domSanitizer.bypassSecurityTrustResourceUrl(\"/assets/images/icons/refresh-icon2.svg\")\n );\n this.matIconRegistry.addSvgIcon(\n `color-picker`,\n this.domSanitizer.bypassSecurityTrustResourceUrl(\"/assets/images/icons/color-picker.svg\")\n );\n this.matIconRegistry.addSvgIcon(\n `select`,\n this.domSanitizer.bypassSecurityTrustResourceUrl(\"/assets/images/icons/select.svg\")\n );\n this.matIconRegistry.addSvgIcon(\n `fullScreen`,\n this.domSanitizer.bypassSecurityTrustResourceUrl(\"/assets/images/icons/o_fullScreen.svg\")\n ),\n this.matIconRegistry.addSvgIcon(\n `quitFullScreen`,\n this.domSanitizer.bypassSecurityTrustResourceUrl(\"/assets/images/icons/q_fullScreen.svg\")\n )\n this.matIconRegistry.addSvgIcon(\n `menuIcon`,\n this.domSanitizer.bypassSecurityTrustResourceUrl(\"/assets/images/icons/menuIcon.svg\")\n )\n\n this.matIconRegistry.addSvgIcon(\n `chevron-right`,\n this.domSanitizer.bypassSecurityTrustResourceUrl(\"/assets/images/icons/chevron-right.svg\")\n )\n this.matIconRegistry.addSvgIcon(\n `chevron-left`,\n this.domSanitizer.bypassSecurityTrustResourceUrl(\"/assets/images/icons/chevron-left.svg\")\n )\n this.matIconRegistry.addSvgIcon(\n `app_stuido`,\n this.domSanitizer.bypassSecurityTrustResourceUrl(\"/assets/images/icons/app_stuido.svg\")\n )\n }\n\n\n}\n","import { Injectable } from '@angular/core';\nimport { HttpClient } from '@angular/common/http';\nimport { AuthService } from '../auth/auth.service';\nimport { Endpoints } from 'src/app/constants/endpoints';\nimport { map, tap } from 'rxjs/operators';\nimport { DashboardResponse, Dashboard, cacheDashboard } from 'src/app/models/responses/dashboardResponse';\nimport { Widget } from 'src/app/models/responses/widgetLibraryResponse';\nimport { CookieService } from 'ngx-cookie-service';\nimport { BehaviorSubject } from 'rxjs';\nimport * as CryptoJS from 'crypto-js';\nimport { cerateCssFile, deleteCssFile, idKeyword } from 'src/app/core/utils';\nimport { App } from 'src/app/models/responses/appsResponse';\n\n@Injectable({\n providedIn: 'root'\n})\nexport class DashboardService {\n selectedDasboard: BehaviorSubject = new BehaviorSubject({\n dashboardId: '',\n title: '',\n icon: '',\n auditEnabled: 0,\n dashboardStatus: 0,\n order: 1,\n description: '',\n layoutConfig: '',\n domain: '',\n access: 0,\n owner: '',\n creationDate: '',\n updatedBy: '',\n updateDate: '',\n colorPalette: '',\n filter: [],\n widgets: [],//Widget,\n dimensions: [], //Dimension,\n messages: [], //BussionMessage\n autoRefresh: 0,\n refreshInterval: 0,\n isMainDashboard: 0,\n hideBorders: '',\n contentLanguage: '',\n gridSize: 0,\n tags: '',\n css: '',\n hideAdvancedQueryPanel: 0,\n layout: '',\n colors: []\n });\n\n openedClosedbtn: BehaviorSubject = new BehaviorSubject(false);\n\n cachedData: BehaviorSubject<{ authorizedDashboard: Dashboard[], activeDashboard: Dashboard[], authorizedApps: App[] }> = new BehaviorSubject<{ authorizedDashboard: Dashboard[], activeDashboard: Dashboard[], authorizedApps: App[] }>({ authorizedDashboard: [], activeDashboard: [], authorizedApps: [] })\n\n constructor(\n private http: HttpClient,\n private authService: AuthService,\n private cookieService: CookieService\n ) { }\n\n toggleGridster() {\n this.openedClosedbtn.next(false);\n }\n\n setLastDashboardId(dashboardId: string) {\n this.cookieService.set('lastDashboardId', dashboardId);\n }\n\n getLastDashboardId(): string {\n return this.cookieService.get('lastDashboardId');\n }\n\n getDashboards() {\n let param = { Token: this.authService.getToken() };\n return this.http.post(Endpoints.getDashboards, param).pipe(\n map((response: DashboardResponse) => {\n return response.message;\n })\n );\n }\n\n getAllDashboards() {\n let param = { Token: this.authService.getToken(), ShowAll: 1 };\n return this.http.post(Endpoints.getDashboards, param).pipe(\n map((response: DashboardResponse) => {\n return response.message;\n })\n );\n }\n\n getUserActiveDashboards(summary: number = 0) {\n let param = {\n Token: this.authService.getToken(),\n Summary: summary\n };\n\n return this.http.post(Endpoints.getUserActiveDashboards, param).pipe(\n map((response: DashboardResponse) => {\n this.setCacheData({ ...this.cachedData.getValue(), activeDashboard: response.message.filter(x => x.isMainDashboard === 1) });\n return response.message.filter(x => x.isMainDashboard === 1);\n })\n );\n }\n\n setCacheData(newValue: any) {\n this.cachedData.next(newValue);\n // this.cacheData(newValue)\n\n }\n\n getCachedDataObservable() {\n this.cachedData.next(this.cachedData.getValue())\n return this.cachedData.asObservable()\n }\n\n\n\n getAuthorizedDashboards(summary: number = 0) {\n let param = {\n Token: this.authService.getToken(),\n Summary: summary\n };\n\n return this.http.post(Endpoints.getAuthorizedDashboards, param).pipe(\n map((response: DashboardResponse) => {\n this.setCacheData({ ...this.cachedData.getValue(), authorizedDashboard: response.message })\n return response.message;\n })\n );\n }\n\n getCachedData() {\n if (this.cachedData)\n return this.cachedData.getValue();\n else\n return null\n\n }\n\n cacheData(cacheData) {\n try {\n localStorage.setItem('cachedData', JSON.stringify(cacheData))\n\n } catch (error) {\n console.log('error', error)\n }\n }\n\n refreshCache(newValue, dashboardId, changedKey) {\n var cacheData: cacheDashboard = this.getCachedData();\n if (cacheData) {\n if (changedKey !== '') {\n if (cacheData.activeDashboard.find(x => x.dashboardId == dashboardId))\n cacheData.activeDashboard.find(x => x.dashboardId == dashboardId)[changedKey] = newValue\n if (cacheData.authorizedDashboard.find(x => x.dashboardId == dashboardId))\n cacheData.authorizedDashboard.find(x => x.dashboardId == dashboardId)[changedKey] = newValue\n } else {\n if (cacheData.activeDashboard.some(x => x.dashboardId == dashboardId)) {\n cacheData.activeDashboard = cacheData.activeDashboard.filter(x => x.dashboardId !== dashboardId);\n cacheData.activeDashboard.push(newValue)\n }\n if (cacheData.authorizedDashboard.some(x => x.dashboardId == dashboardId)) {\n cacheData.authorizedDashboard = cacheData.authorizedDashboard.filter(x => x.dashboardId !== dashboardId);\n cacheData.authorizedDashboard.push(newValue)\n }\n }\n this.setCacheData(cacheData)\n }\n }\n\n upsertDashboard(dashboard: Dashboard) {\n let param = {\n Token: this.authService.getToken(),\n Dashboard: dashboard\n };\n return this.http.post(Endpoints.upsertDashboard, param).pipe(\n map((response: any) => {\n if (dashboard.dashboardId)\n this.refreshCache(dashboard, dashboard.dashboardId, '')\n return response;\n })\n );\n }\n\n deleteDashboard(dashboard: Dashboard) {\n let param = {\n Token: this.authService.getToken(),\n DashboardId: dashboard.dashboardId\n };\n return this.http.post(Endpoints.deleteDashboard, param).pipe(\n map((response: any) => {\n return response.message;\n })\n );\n }\n\n upsertWidgetToDashboard(widget: Widget, dashboardId: string) {\n let param = {\n Token: this.authService.getToken(),\n Widget: widget,\n DashboardId: dashboardId\n };\n return this.http.post(Endpoints.upsertWidgetToDashboard, param).pipe(\n map((response: any) => {\n return response.message;\n })\n );\n }\n\n widgetPreview(widget: Widget) {\n let param = {\n Token: this.authService.getToken(),\n Widget: widget,\n };\n return this.http.post(Endpoints.previewWidget, param).pipe(\n map((response: any) => {\n return response.message;\n })\n );\n }\n\n widgetPreviewFast(widget: Widget, WidgetData: any) {\n let param = {\n Token: this.authService.getToken(),\n WidgetData: JSON.stringify(WidgetData),\n Widget: widget\n };\n return this.http.post(Endpoints.PreviewWidgetFast, param).pipe(\n map((response: any) => {\n return response.message;\n })\n );\n }\n\n getDashboard(dashboardId: string, domain?: string) {\n let param = {\n Token: domain ? \"SHAREDOBJECT-\" + domain : this.authService.getToken(),\n DashboardId: dashboardId\n };\n\n return this.http.post(Endpoints.getDashboardById, param).pipe(\n map((response: any) => {\n\n cerateCssFile(response.message.css, response.message.dashboardId, idKeyword.dashboard);\n\n return response.message;\n })\n );\n }\n\n\n getDashboardById(dashboardId: string) {\n let param = {\n Token: this.authService.getToken(),\n DashboardId: dashboardId\n };\n\n return this.http.post(Endpoints.getDashboardById, param).pipe(\n map((response: any) => {\n cerateCssFile(response.message.css, response.message.dashboardId, idKeyword.dashboard);\n return response.message;\n })\n );\n }\n // getCssDashboard(dashboardId: string, domain?: string) {\n // let param = {\n // Token: domain ? \"SHAREDOBJECT-\" + domain : this.authService.getToken(),\n // DashboardId: dashboardId\n // };\n\n // return this.http.post(Endpoints.getDashboardById, param).pipe(\n // map((response: any) => {\n // cerateCssFile(response.message.css,response.message.dashboardId);\n // console.log(\"response.message.css\",response.message)\n // return response.message;\n // })\n // );\n // }\n\n getWidgetsForDesigner(dashboardId: string, domain?: string, endUser?: boolean) {\n var enduserlocal = !this.authService.getRoles().includes('Admin') && endUser\n\n let param = {\n Token: domain ? domain : this.authService.getToken(),\n DashboardId: dashboardId\n };\n\n let paramUser = {\n Token: domain ? domain : this.authService.getToken(),\n DashboardId: dashboardId,\n EndUserScreen: true\n };\n\n return this.http.post(Endpoints.getWidgetsForDesigner, enduserlocal ? paramUser : param).pipe(\n map((response: any) => {\n return response.message;\n })\n );\n }\n\n addDashboardToUser(ids: string[]) {\n let param = {\n Token: this.authService.getToken(),\n UserId: this.authService.getUserId(),\n DashboardIds: ids\n };\n return this.http.post(Endpoints.addDashboardToUser, param).pipe(\n map((response: any) => {\n //burası\n this.getUserActiveDashboards(1).subscribe()\n return response.message;\n })\n );\n }\n\n\n\n getWidgetsForDashboard(dashboardId, filter: any[]) {\n var key = CryptoJS.enc.Utf8.parse('000000000000' + dashboardId);\n var iv = CryptoJS.enc.Utf8.parse('0000000000' + this.authService.getUserDomain());\n var tmpKey = \"\";\n\n if (filter.length <= 0)\n tmpKey = \"NO_FILTER_DEFINED\"\n else\n for (let index = 0; index < filter.length; index++) {\n tmpKey += filter[index].fieldValue;\n }\n\n var encryptData = CryptoJS.AES.encrypt(CryptoJS.enc.Utf8.parse(tmpKey), key,\n {\n keySize: 128 / 8,\n iv: iv,\n mode: CryptoJS.mode.CBC,\n padding: CryptoJS.pad.Pkcs7\n });\n\n filter = filter.filter(x => x.fieldName !== \"SecureKey\")\n\n // if (!filter.some(x => x.fieldName == \"SecureKey\")) {\n filter.push(\n { fieldName: \"SecureKey\", operator: \"=\", fieldValue: encryptData.toString() }\n )\n // }\n\n let param = {\n Token: this.authService.getToken(),\n DashboardId: dashboardId,\n Filter: filter\n };\n return this.http.post(Endpoints.getWidgetsForDashboard, param).pipe(\n map((response: any) => {\n return response.message;\n })\n );\n }\n\n getWidgetsForDashboardShare(dashboardId, filter: any[]) {\n\n let param = {\n Token: this.authService.getToken(),\n DashboardId: dashboardId,\n Filter: filter\n };\n return this.http.post(Endpoints.getWidgetsForDashboard, param).pipe(\n map((response: any) => {\n return response.message;\n })\n );\n }\n\n updateDashboardLayout(dashboardId: string, layoutList: any[], ismobile: number) {\n let param = {\n Token: this.authService.getToken(),\n DashboardId: dashboardId,\n WidgetLayout: layoutList,\n IsMobileLayout: ismobile\n };\n return this.http.post(Endpoints.updateDashboardLayout, param).pipe(\n map((response: any) => {\n return response.message;\n })\n );\n }\n\n deleteWidgetFromDashboard(dashboardId: string, widgetId: string) {\n let param = {\n Token: this.authService.getToken(),\n DashboardId: dashboardId,\n WidgetId: widgetId\n\n };\n return this.http.post(Endpoints.deleteWidgetFromDashboard, param).pipe(\n map((response: any) => {\n return response.message;\n })\n );\n }\n\n checkDashboardUpdateTime(dashboardId: string, domain?: string) {\n let param = {\n Token: domain ? domain : this.authService.getToken(),\n DashboardId: dashboardId\n };\n return this.http.post(Endpoints.checkDashboardUpdateTime, param).pipe(\n map((response: any) => {\n return response;\n })\n );\n }\n\n getUserLibraries() {\n let param = {\n Token: this.authService.getToken()\n }\n return this.http.post(Endpoints.getUserLibraries, param).pipe(\n map((response: any) => {\n return response.message;\n })\n );\n }\n\n ListPictures() {\n let param = {\n Token: this.authService.getToken()\n }\n return this.http.post(Endpoints.ListPictures, param).pipe(\n map((response: any) => {\n return response.message;\n })\n );\n }\n\n addPictures(photo: string) {\n var formData = new FormData()\n formData.append('File', photo)\n formData.append('Token', this.authService.getToken())\n\n return this.http.post(Endpoints.AddPicture, formData).pipe(\n map((response: any) => {\n return response.message;\n })\n );\n }\n\n\n deletePictures(photo: string) {\n let param = {\n Token: this.authService.getToken(),\n FileName: photo\n }\n\n return this.http.post(Endpoints.DeletePicture, param).pipe(\n map((response: any) => {\n return response.message;\n })\n );\n }\n}\n","import { Injectable } from '@angular/core';\nimport { HttpClient } from '@angular/common/http';\nimport { AuthService } from '../auth/auth.service';\nimport { Endpoints } from 'src/app/constants/endpoints';\nimport { map } from 'rxjs/operators';\nimport { DataStoreResponse, DataStore } from 'src/app/models/responses/dataStoreResponse';\n\n@Injectable({\n providedIn: 'root'\n})\nexport class DataStoreService {\n\n constructor(\n private http: HttpClient,\n private authService: AuthService\n ) { }\n\n getDatasources() {\n let param = { Token: this.authService.getToken() };\n return this.http.post(Endpoints.getDataStore, param).pipe(\n map((response: DataStoreResponse) => {\n return response.message;\n })\n );\n }\n\n getDatasourceById(datastoreId:string){\n let param = { Token: this.authService.getToken(),DSId:datastoreId };\n return this.http.post(Endpoints.getDataStoreById, param).pipe(\n map((response: any) => {\n return response.message;\n })\n );\n }\n\n getDataSourceForUser() {\n let param = {\n Token: this.authService.getToken()\n };\n return this.http.post(Endpoints.getDataStoreForUser, param).pipe(\n map((response: DataStoreResponse) => {\n return response.message;\n })\n );\n }\n\n upsertDataStore(dataStore: DataStore) {\n let param = {\n Token: this.authService.getToken(),\n DataStore: dataStore\n };\n return this.http.post(Endpoints.upsertDataStore, param).pipe(\n map((response: any) => {\n return response.message;\n })\n );\n }\n\n deleteDataStore(dataStore: DataStore) {\n let param = {\n Token: this.authService.getToken(),\n DataStoreId: dataStore.dataStoreId\n };\n return this.http.post(Endpoints.deleteDataStore, param).pipe(\n map((response: any) => {\n return response.message;\n })\n );\n }\n\n\n getUniverses(host: String) {\n let param = {\n Token: this.authService.getToken(),\n Node: host\n };\n return this.http.post(Endpoints.getUniverses, param).pipe(\n map((response: any) => {\n return response.message as string[];\n })\n );\n }\n\n getCollections(host: String, universe: string) {\n let param = {\n Token: this.authService.getToken(),\n Node: host,\n Universe: universe\n };\n return this.http.post(Endpoints.getCollections, param).pipe(\n map((response: any) => {\n return response.message;\n })\n );\n }\n\n getColumns(host: String, universe: string, collection: string) {\n let param = {\n Token: this.authService.getToken(),\n Node: host,\n Universe: universe,\n Collection: collection\n };\n return this.http.post(Endpoints.getColumns, param).pipe(\n map((response: any) => {\n return response.message;\n })\n );\n }\n\n getColumnsByNodeId(host: String, universe: string, collection: string) {\n let param = {\n Token: this.authService.getToken(),\n Node: host,\n Universe: universe,\n Collection: collection\n };\n return this.http.post(Endpoints.getColumnsByNode, param).pipe(\n map((response: any) => {\n return response.message;\n })\n );\n }\n\n getColomnsForDataStore(dataStoreId: string) {\n let param = {\n Token: this.authService.getToken(),\n DataStoreId: dataStoreId\n };\n return this.http.post(Endpoints.getColumnsForDataSourceById, param).pipe(\n map((response: any) => {\n return response.message;\n })\n );\n }\n\n getValuesForField(dataStoreId: string, fieldName: string, searchValue: string) {\n let param = {\n Token: this.authService.getToken(),\n DataStoreId: dataStoreId,\n FieldName: fieldName,\n SearchValue: searchValue\n };\n return this.http.post(Endpoints.getValuesForField, param).pipe(\n map((response: any) => {\n return response.message;\n })\n );\n }\n\n getValuesForFieldByUniverse(node: string, universe: string, collection: string, fieldName: string, searchValue: string) {\n let param = {\n Token: this.authService.getToken(),\n Node: node,\n Universe: universe,\n Collection: collection,\n FieldName: fieldName,\n SearchValue: searchValue\n };\n return this.http.post(Endpoints.getValuesForFieldByUniverse, param).pipe(\n map((response: any) => {\n return response.message;\n })\n );\n }\n\n notifyDatastore(dataStoreId: string) {\n let param = {\n Domain: this.authService.getUserDomain(),\n DSId: dataStoreId\n };\n return this.http.post(Endpoints.NotifyDataStore, param).pipe(\n map((response: any) => {\n return response;\n })\n );\n }\n\n getSampleData(DatastoreId: string, sampleDataCount?: number) {\n let param = {\n Token: this.authService.getToken(),\n DataStoreId: DatastoreId,\n SampleCount: sampleDataCount ?? 50\n }\n return this.http.post(Endpoints.GetSampleDataForDataStore, param).pipe(\n map((response: any) => {\n return response.message;\n })\n );\n }\n\n\n createIndex(DatastoreId: string, Fields: string[]) {\n let param = {\n Token: this.authService.getToken(),\n DataStoreId: DatastoreId,\n Fields: Fields\n }\n return this.http.post(Endpoints.CreateIndex, param).pipe(\n map((response: any) => {\n return response;\n })\n );\n }\n\n getIndexColumns(DatastoreId: string) {\n let param = {\n Token: this.authService.getToken(),\n DataStoreId: DatastoreId\n }\n return this.http.post(Endpoints.GetIndex, param).pipe(\n map((response: any) => {\n return response.message;\n })\n );\n }\n\n\n DropIndex(DatastoreId: string, Fields: string[]) {\n let param = {\n Token: this.authService.getToken(),\n DataStoreId: DatastoreId,\n Fields: Fields\n }\n return this.http.post(Endpoints.DropIndex, param).pipe(\n map((response: any) => {\n return response;\n })\n );\n }\n\n}\n","import { Injectable } from '@angular/core';\nimport { AuthService } from '../auth/auth.service';\nimport { HttpClient } from '@angular/common/http';\nimport { Endpoints } from '../../constants/endpoints';\nimport { map } from 'rxjs/operators';\nimport { App, AppResponse } from 'src/app/models/responses/appsResponse';\nimport { CoreService } from '../core/core.service';\nimport { DashboardService } from '../dashboard/dashboard.service';\n\n@Injectable({\n providedIn: 'root'\n})\nexport class DeployAppService {\n\n apps: App[]\n\n constructor(\n private http: HttpClient,\n private authService: AuthService,\n private coreService: CoreService,\n private dashboardService: DashboardService\n ) { }\n\n upSertApp(app: App) {\n const body = {\n Token: this.authService.getToken(),\n Application: app\n }\n\n return this.http.post(Endpoints.upsertApp, body).pipe(\n map((response: AppResponse) => {\n if (response.result) {\n this.coreService.showSuccessMessage('App Succesfully Created');\n }\n return response\n })\n );\n }\n\n GetAuthorizedApp() {\n let body = {\n 'Token': this.authService.getToken()\n }\n return this.http.post(Endpoints.getAuthorizedApps, body).pipe(\n map((response: any) => {\n this.dashboardService.cachedData.next({ ...this.dashboardService.cachedData.getValue(), authorizedApps: response.message })\n return response.message\n })\n );\n }\n\n getApps() {\n let body = {\n Token: this.authService.getToken()\n }\n return this.http.post(Endpoints.getApps, body).pipe(\n map((response: AppResponse) => {\n this.apps = response.message\n return response.message\n })\n );\n }\n\n deleteApp(AppId: number) {\n let body = {\n 'Token': this.authService.getToken(),\n 'ApplicationId': AppId\n }\n return this.http.post(Endpoints.deleteApps, body).pipe(\n map((response: any) => {\n return response.message\n })\n );\n }\n\n deployApp(Form: FormData) {\n let body = {\n 'Token': this.authService.getToken(),\n 'File': File,\n 'ApplicationLink': 'test'\n }\n\n return this.http.post(Endpoints.deployApp, Form).pipe(\n map((response: any) => {\n return response.message\n })\n );\n }\n}\n","import { HttpClient } from '@angular/common/http';\nimport { Injectable } from '@angular/core';\nimport { Endpoints } from 'src/app/constants/endpoints';\nimport { AuthService } from '../auth/auth.service';\nimport { map } from 'rxjs/operators';\n\n@Injectable({\n providedIn: 'root'\n})\nexport class FilterAiService {\n\n constructor(\n private http: HttpClient,\n private authService: AuthService\n ) { }\n\n getSuggestionForDashboard(message: string, dashboardId) {\n let param = {\n Token: this.authService.getToken(),\n Question: message,\n DashboardId: dashboardId,\n };\n return this.http.post(Endpoints.getSuggestionForDashboard, param).pipe(\n map((response: any) => {\n return response.message;\n \n })\n );\n\n\n }\n\n}\n","import { Injectable } from '@angular/core';\nimport { AuthService } from '../auth/auth.service';\nimport { HttpClient } from '@angular/common/http';\nimport { Endpoints } from 'src/app/constants/endpoints';\nimport { map } from 'rxjs/operators';\nimport { FlowScriptRequest, FlowSession } from 'src/app/models/responses/flowScript';\nimport { BehaviorSubject } from 'rxjs';\n\n@Injectable({\n providedIn: 'root'\n})\nexport class FlowScriptService {\n\n constructor(private authService: AuthService, private http: HttpClient) { }\n public pythonScriptTemplate: BehaviorSubject = new BehaviorSubject('');\n public executionLogs: BehaviorSubject = new BehaviorSubject([]);\n public allExecutionLogs: BehaviorSubject = new BehaviorSubject([]);\n\n\n\n\n\n upsertScript(script: FlowScriptRequest) {\n let param =\n {\n Token: this.authService.getToken(),\n PythonScript: script\n };\n return this.http.post(Endpoints.UpsertFlowScript, param).pipe(\n map((response: any) => {\n return response.message;\n })\n );\n }\n\n getFlowScripts() {\n let param =\n {\n Token: this.authService.getToken()\n };\n return this.http.post(Endpoints.GetFlowScripts, param).pipe(\n map((response: any) => {\n return response.message;\n })\n );\n }\n\n getFlowById(flowId: string) {\n let param =\n {\n Token: this.authService.getToken(),\n FlowId: flowId\n\n };\n return this.http.post(Endpoints.GetFlowById, param).pipe(\n map((response: any) => {\n return response.message;\n })\n );\n }\n\n deleteFlow(flowId: string) {\n let param =\n {\n Token: this.authService.getToken(),\n FlowId: flowId\n\n };\n return this.http.post(Endpoints.DeleteFlow, param).pipe(\n map((response: any) => {\n return response.message;\n })\n );\n }\n\n upsertFlow(flow) {\n let param =\n {\n Token: this.authService.getToken(),\n ScriptFlow: flow\n };\n return this.http.post(Endpoints.UpsertFlow, param).pipe(\n map((response: any) => {\n return response.message;\n })\n );\n }\n\n getFlows() {\n let param =\n {\n Token: this.authService.getToken(),\n };\n return this.http.post(Endpoints.GetFlows, param).pipe(\n map((response: any) => {\n return response.message;\n })\n );\n }\n\n deleteFlowScript(scriptId: string) {\n let param =\n {\n Token: this.authService.getToken(),\n ScriptId: scriptId\n };\n return this.http.post(Endpoints.DeletePythonScript, param).pipe(\n map((response: any) => {\n return response;\n })\n );\n }\n\n runFlow(flowId: string, SessionId: string) {\n let param =\n {\n Token: this.authService.getToken(),\n FlowId: flowId,\n SessionId: SessionId\n\n };\n return this.http.post(Endpoints.RunFlowById, param).pipe(\n map((response: any) => {\n return response;\n })\n );\n }\n\n\n\n GetPythonPackages() {\n let param =\n {\n Token: this.authService.getToken()\n\n };\n return this.http.post(Endpoints.GetPythonPackages, param).pipe(\n map((response: any) => {\n return response.message;\n })\n );\n }\n\n getExecutionLogForFlow(flowId: string, idType: string) {\n let param =\n {\n Token: this.authService.getToken(),\n [idType == 'flow' ? 'FlowId' : 'SessionId']: flowId,\n };\n return this.http.post(Endpoints.GetSessions, param).pipe(\n map((response: any) => {\n // this.executionLogs.next(response.message)\n // response.message.map(item => {\n // var list = this.allExecutionLogs.getValue()\n // if (this.allExecutionLogs.getValue().some(x => x.sessionId == item.sessionId)) {\n\n // list = list.filter(x => x.sessionId !== item.sessionId)\n // }\n\n // list.push(item)\n // this.allExecutionLogs.next(list)\n\n // })\n // console.log(this.allExecutionLogs.getValue())\n\n return response.message;\n })\n );\n }\n\n deleteSession(sessionId: string) {\n let param =\n {\n Token: this.authService.getToken(),\n SessionId: sessionId,\n };\n return this.http.post(Endpoints.DeleteSessionById, param).pipe(\n map((response: any) => {\n return response.message;\n })\n );\n }\n\n GetPythonScriptTemplate() {\n let param =\n {\n Token: this.authService.getToken()\n };\n return this.http.post(Endpoints.GetPythonScriptTemplate, param).pipe(\n map((response: any) => {\n if (response.result) {\n this.pythonScriptTemplate.next(response.message)\n }\n return response.message;\n })\n );\n }\n}\n","import { Injectable } from '@angular/core';\nimport { HttpClient } from '@angular/common/http';\nimport { AuthService } from '../auth/auth.service';\nimport { Endpoints } from 'src/app/constants/endpoints';\nimport { map } from 'rxjs/operators';\nimport { VisualComp, VisualComponentResponse } from 'src/app/models/responses/visualComponentResponse';\n\n@Injectable({\n providedIn: 'root'\n})\nexport class GlobalFunctionService {\n\n private loadedFunctions: any[] = [];\n constructor(\n private http: HttpClient,\n private authService: AuthService\n ) { }\n\n getGlobalFunctions(domain?: string) {\n let param = {\n Token: domain ? \"SHAREDOBJECT-\" + domain : this.authService.getToken()\n };\n return this.http.post(Endpoints.getGlobalFunctions, param).pipe(\n map((response: VisualComponentResponse) => {\n this.loadedFunctions = response.message;\n return response.message;\n })\n );\n }\n\n upsertGlobalFunction(globalFunction: VisualComp) {\n let param = {\n Token: this.authService.getToken(),\n GlobalFunction: globalFunction\n };\n return this.http.post(Endpoints.upsertGlobalFunction, param).pipe(\n map((response: any) => {\n return response.message;\n })\n );\n }\n\n deleteGlobalFunction(globalFunction: VisualComp) {\n let param = {\n Token: this.authService.getToken(),\n GlobalFunctionId: globalFunction.visualComponentId\n };\n return this.http.post(Endpoints.deleteGlobalFunction, param).pipe(\n map((response: any) => {\n return response.message;\n })\n );\n }\n\n didFunctionLoad() {\n return this.loadedFunctions.length == 0 ? false : true;\n }\n\n getGlobalFunctionsDefinitions() {\n let param = {\n Token: this.authService.getToken(),\n };\n return this.http.post(Endpoints.getGlobalFunctionDefinitions, param).pipe(\n map((response: any) => {\n return response.message;\n })\n );\n }\n\n}\n","import { Injectable } from '@angular/core';\nimport { HttpClient } from '@angular/common/http';\nimport { AuthService } from '../auth/auth.service';\nimport { Endpoints } from 'src/app/constants/endpoints';\nimport { map } from 'rxjs/operators';\nimport { GroupsResponse, Group } from 'src/app/models/responses/groupsResponse';\nimport { DashboardService } from '../dashboard/dashboard.service';\n\n@Injectable({\n providedIn: 'root'\n})\nexport class GroupService {\n\n constructor(\n private http: HttpClient,\n private authService: AuthService,\n private dashboardService: DashboardService\n ) { }\n\n getGroups() {\n let param = { Token: this.authService.getToken() };\n return this.http.post(Endpoints.getGroups, param).pipe(\n map((response: GroupsResponse) => {\n return response.message;\n })\n );\n }\n\n getUserGroups(userId: string) {\n let param = {\n Token: this.authService.getToken(),\n UserId: userId\n };\n return this.http.post(Endpoints.getUserGroups, param).pipe(\n map((response: GroupsResponse) => {\n return response.message;\n })\n );\n }\n\n upsertGroup(group: Group) {\n let param = {\n Token: this.authService.getToken(),\n Group: group\n };\n return this.http.post(Endpoints.upsertGroup, param).pipe(\n map((response: GroupsResponse) => {\n this.dashboardService.getUserActiveDashboards(1).subscribe()\n this.dashboardService.getAuthorizedDashboards(1).subscribe()\n return response.message;\n })\n );\n }\n\n deleteGroup(groupId: string) {\n let param = {\n Token: this.authService.getToken(),\n GroupId: groupId\n };\n return this.http.post(Endpoints.deleteGroup, param).pipe(\n map((response: GroupsResponse) => {\n return response.message;\n })\n );\n }\n\n}\n","import { Injectable } from '@angular/core';\nimport { HttpClient } from '@angular/common/http';\nimport { AuthService } from '../auth/auth.service';\nimport { Endpoints } from 'src/app/constants/endpoints';\nimport { map } from 'rxjs/operators';\nimport { BehaviorSubject } from 'rxjs';\n\n@Injectable({\n providedIn: 'root'\n})\nexport class LicenseService {\n\n constructor(\n private http: HttpClient,\n private authService: AuthService\n ) { }\n\n\n getLicense() {\n let param = { Token: this.authService.getToken() };\n return this.http.post(Endpoints.getLicense, param).pipe(\n map((response: any) => {\n return response.message;\n })\n );\n }\n\n upsertLicense(key: string) {\n let param = { \n Token: this.authService.getToken(),\n LicenseKey: key\n };\n return this.http.post(Endpoints.upsertLicense, param).pipe(\n map((response: any) => {\n return response.message;\n })\n );\n }\n\n getLDAPConfig() {\n let param = { Token: this.authService.getToken() };\n return this.http.post(Endpoints.getldapconfig, param).pipe(\n map((response: any) => {\n return response.message;\n })\n );\n }\n\n updateLDAP(ldapConfig: any) {\n let param = { \n Token: this.authService.getToken(),\n LdapConfig: ldapConfig\n };\n return this.http.post(Endpoints.updateldapconfig, param).pipe(\n map((response: any) => {\n return response.message;\n })\n );\n }\n \n getPasswordPolicy() {\n let param = { Token: this.authService.getToken() };\n return this.http.post(Endpoints.getPasswordPolicy, param).pipe(\n map((response: any) => {\n return response.message;\n })\n );\n }\n\n updatePasswordPolicy(passwordPolicies: any) {\n let param = { \n Token: this.authService.getToken(),\n PasswordPolicies: passwordPolicies\n };\n return this.http.post(Endpoints.updatePasswordPolicy, param).pipe(\n map((response: any) => {\n return response.message;\n })\n );\n }\n\n}\n","import { Injectable } from '@angular/core';\nimport { AuthService } from '../auth/auth.service';\nimport { Router } from '@angular/router';\nimport { NgxSpinnerService } from 'ngx-spinner';\nimport { PermissionService } from '../permission/permission.service';\nimport { CoreService } from '../core/core.service';\nimport { TranslateService } from '@ngx-translate/core';\nimport { NgxCaptchaService } from '@binssoft/ngx-captcha';\nimport { HttpClient } from '@angular/common/http';\nimport { BussionMainService } from '../bussion-main/bussion-main.service';\nimport { LoginRequest } from 'src/app/models/requests/loginRequest';\nimport { DashboardService } from '../dashboard/dashboard.service';\nimport { LicenseService } from '../license/license.service';\nimport { DeployAppService } from '../deploy-app/deploy-app.service';\n\n@Injectable({\n providedIn: 'root'\n})\nexport class LoginService {\n loginRequest: LoginRequest = {\n Username: '',\n Password: ''\n };\n\n constructor(private authService: AuthService,\n private router: Router,\n private spinner: NgxSpinnerService,\n private permissionService: PermissionService,\n private coreService: CoreService,\n private translate: TranslateService,\n private appService: DeployAppService,\n private licenseService: LicenseService,\n private captchaService: NgxCaptchaService,\n private http: HttpClient,\n private bussionMainService: BussionMainService,) { }\n\n\n getAuthService() {\n return this.authService;\n }\n // getDashboardService() {\n // return this.dashboardService;\n // }\n\n getAppService() {\n return this.appService;\n }\n getLicenseService() {\n return this.licenseService\n }\n getRouter() {\n return this.router;\n }\n getSpinner() {\n return this.spinner;\n }\n getTranslate() {\n return this.translate\n }\n getLoginRequest() {\n return this.loginRequest;\n }\n getCoreService() {\n return this.coreService;\n }\n\n\n}\n","import { HttpClient } from '@angular/common/http';\nimport { Injectable } from '@angular/core';\nimport { AuthService } from '../auth/auth.service';\nimport { Endpoints } from 'src/app/constants/endpoints';\nimport { map } from 'rxjs/operators';\nimport { Share } from 'src/app/models/responses/shareResponse';\n\n@Injectable({\n providedIn: 'root'\n})\nexport class MailServiceService {\n\n constructor(private http: HttpClient, private authService: AuthService) { }\n\n upsertMailSceduler(item: any) {\n let param = {\n Token: this.authService.getToken(),\n Scheduler:item\n }\n\n return this.http.post(Endpoints.sceduleDashboard, param).pipe(\n map((response: any) => {\n return response.message;\n\n\n })\n );\n\n\n }\n\n getMailSceduler(DashboardId: any) {\n let param = {\n Token: this.authService.getToken(),\n DashboardId:DashboardId\n }\n\n return this.http.post(Endpoints.getSceduleDashboard, param).pipe(\n map((response: any) => {\n return response.message;\n\n\n })\n );\n\n\n }\n\n deleteMailSceduler(SceduleId: any) {\n let param = {\n Token: this.authService.getToken(),\n ScheduleId:SceduleId\n }\n\n return this.http.post(Endpoints.DeleteDashboardScheduler, param).pipe(\n map((response: any) => {\n return response.message;\n\n\n })\n );\n\n\n }\n}\n","import { Injectable } from '@angular/core';\nimport { HttpClient } from '@angular/common/http';\nimport { AuthService } from '../auth/auth.service';\nimport { Endpoints } from 'src/app/constants/endpoints';\nimport { map } from 'rxjs/operators';\nimport { BussionMessage } from 'src/app/models/responses/messageResponse';\n\n@Injectable({\n providedIn: 'root'\n})\nexport class MessageService {\n\n constructor(\n private http: HttpClient,\n private authService: AuthService\n ) { }\n\n getMessages(dashboardId: string) {\n let param = {\n Token: this.authService.getToken(),\n DashboardId: dashboardId\n };\n return this.http.post(Endpoints.getMessages, param).pipe(\n map((response: any) => {\n return response.message;\n })\n );\n }\n\n upsertMessage(dashboardId: string, message: BussionMessage) {\n let param = {\n Token: this.authService.getToken(),\n DashboardId: dashboardId,\n Message: message\n };\n return this.http.post(Endpoints.upsertMessage, param).pipe(\n map((response: any) => {\n return response.message;\n })\n );\n }\n\n deleteMessage(dashboardId: string, messageId: string) {\n let param = {\n Token: this.authService.getToken(),\n DashboardId: dashboardId,\n MessageId: messageId\n };\n return this.http.post(Endpoints.deleteMessage, param).pipe(\n map((response: any) => {\n return response.message;\n })\n );\n }\n\n\n\n}\n","import { Injectable } from '@angular/core';\nimport { MatDialog } from '@angular/material/dialog';\nimport { ComponentType } from '@angular/cdk/portal';\nimport { ActionDialogComponent } from 'src/app/components/action-dialog/action-dialog/action-dialog.component';\n\n@Injectable({\n providedIn: 'root'\n})\nexport class ModalService {\n\n constructor(\n private dialog: MatDialog\n ) { }\n\n openModal(data: any, component: ComponentType, height: string, width: string, customclassName?: string,position?:any) {\n\n const dialogRef = this.dialog.open(component, {\n height: height,\n width: width,\n data: data,\n panelClass:customclassName,\n position\n });\n\n return dialogRef.afterClosed();\n\n }\n\n openModalWithRef(data: any, component: ComponentType, height: string, width: string, customclassName?: string,position?:any) {\n\n const dialogRef = this.dialog.open(component, {\n height: height,\n width: width,\n data: data,\n panelClass:customclassName,\n position\n });\n\n return dialogRef\n\n }\n\n openModalBeforeClosed(data: any, component: ComponentType, height: string, width: string, customclassName?: string,position?:any) {\n\n const dialogRef = this.dialog.open(component, {\n height: height,\n width: width,\n data: data,\n panelClass:customclassName,\n position\n });\n\n return dialogRef.beforeClosed();\n\n }\n\n openConfirm() {\n const dialogRef = this.dialog.open(ActionDialogComponent, {\n data: {\n title: 'ActionDialogComponent.Warning',\n Buttons:[\n 'ActionDialogComponent.Ok'\n ],\n text:'ActionDialogComponent.statementIdDuplicate'\n },\n height: '200px',\n width: '400px',\n });\n\n return dialogRef.afterClosed();\n }\n\n openDeleteConfirm() {\n const dialogRef = this.dialog.open(ActionDialogComponent, {\n height: '200px',\n width: '400px',\n });\n\n return dialogRef.afterClosed();\n }\n\n dissmissAll() {\n this.dialog.closeAll()\n }\n\n\n}\n","import { Injectable } from '@angular/core';\nimport { HttpClient } from '@angular/common/http';\nimport { AuthService } from '../auth/auth.service';\nimport { Endpoints } from 'src/app/constants/endpoints';\nimport { map } from 'rxjs/operators';\nimport { NodeResponse, Node } from 'src/app/models/responses/nodeResponse';\n\n@Injectable({\n providedIn: 'root'\n})\nexport class NodeService {\n\n constructor(\n private http: HttpClient,\n private authService: AuthService\n ) { }\n\n getNodes() {\n let param = { Token: this.authService.getToken() };\n return this.http.post(Endpoints.getNodes, param).pipe(\n map((response: NodeResponse) => {\n return response.message;\n })\n );\n }\n\n getDataNodes() {\n let param = { Token: this.authService.getToken() };\n return this.http.post(Endpoints.getDataNodes, param).pipe(\n map((response: NodeResponse) => {\n return response.message;\n })\n );\n }\n\n getDataNodeTypes() {\n let param = { Token: this.authService.getToken() };\n return this.http.post(Endpoints.getNodesType, param).pipe(\n map((response: any) => {\n return response.message;\n })\n );\n }\n\n upsertNode(node: Node) {\n let param = {\n Token: this.authService.getToken(),\n Node: node\n };\n return this.http.post(Endpoints.upsertNode, param).pipe(\n map((response: NodeResponse) => {\n return response.message;\n })\n );\n }\n\n deleteNode(node: Node) {\n let param = {\n Token: this.authService.getToken(),\n NodeId: node.nodeId\n };\n return this.http.post(Endpoints.deleteNode, param).pipe(\n map((response: NodeResponse) => {\n return response.message;\n })\n );\n }\n\n checkNodeConnectivity(node: Node) {\n let param = {\n Token: this.authService.getToken(),\n Node: node\n };\n return this.http.post(Endpoints.CheckNodeConnectivity, param).pipe(\n map((response: any) => {\n return response.message;\n })\n );\n }\n\n}\n","import { Injectable } from '@angular/core';\nimport { HttpClient } from '@angular/common/http';\nimport { AuthService } from '../auth/auth.service';\nimport { Endpoints } from 'src/app/constants/endpoints';\nimport { map, tap } from 'rxjs/operators';\nimport { BehaviorSubject } from 'rxjs';\nimport { User } from 'src/app/models/responses/usersResponse';\nimport { DashboardService } from '../dashboard/dashboard.service';\nimport { DeployAppService } from '../deploy-app/deploy-app.service';\nimport { App } from 'src/app/models/responses/appsResponse';\nimport { environment } from 'src/environments/environment';\nimport { Router } from '@angular/router';\n\n@Injectable({\n providedIn: 'root'\n})\nexport class PermissionService {\n\n private permissions: BehaviorSubject = new BehaviorSubject([]);\n private authApps: App[] = []\n\n\n constructor(\n private http: HttpClient,\n private authService: AuthService,\n private appService: DeployAppService,\n private router: Router\n ) { }\n\n\n\n getUserRoleList() {\n if (this.permissions.value.length == 0) {\n this.getUserPermissions().subscribe(r => { });\n }\n return this.permissions.asObservable();\n }\n\n getUserPermissions(isNew?: boolean) {\n if (this.permissions.value.length != 0 && !isNew) { return this.permissions.asObservable(); }\n\n let param = { Token: this.authService.getToken() };\n return this.http.post(Endpoints.getUserPermissions, param).pipe(\n map((response: any) => {\n this.permissions.next(response.message);\n return response.message;\n })\n );\n }\n\n getPermissions() {\n let param = { Token: this.authService.getToken() };\n return this.http.post(Endpoints.getPermissions, param).pipe(\n map((response: any) => {\n return response.message;\n })\n );\n }\n\n getPermissionListValue() {\n return this.permissions.value;\n }\n\n clearPermissions() {\n this.permissions.next([]);\n }\n\n getUserPermissionForApp() {\n var user: User = this.authService.getUser()\n var authApp = this.authApps\n if (user.homePage.length > 0)\n authApp = this.authApps.filter(x => x.applicationId !== user.homePage[0].objectId)\n\n if (user.homePage.length > 0 && authApp.length <= 0) {\n //kendine tanımlanan app homepageden başkasına yetkisi yok\n return false\n } else {\n return true\n }\n\n }\n\n appIdPermission(appId: string) {\n var user: User = this.authService.getUser()\n var authApp = this.authApps\n if (user.homePage.length > 0)\n authApp = this.authApps.filter(x => x.applicationId !== user.homePage[0].objectId)\n\n if (user.homePage.length > 0 && authApp.length <= 0 && user.homePage[0].objectId == appId) {\n //kendine tanımlanan app homepageden başkasına yetkisi yok\n return true\n } else if (user.homePage.length <= 0 && authApp.some(x => x.applicationId == appId)) {\n return true\n } else {\n false\n }\n\n }\n\n getUserHomePage() {\n var user: User = this.authService.getUser()\n var appObject: App = JSON.parse(user.homePage[0].object)\n if (appObject.appType == 0) {\n this.router.navigate(['/data-app/' + appObject.applicationId]);\n return '/data-app/' + appObject.applicationId;\n } else {\n window.location.replace(environment.baseUrl + '/Apps/' + appObject.applicationLink)\n return environment.baseUrl + '/Apps/' + appObject.applicationLink\n }\n }\n\n getAuthApp() {\n return this.appService.GetAuthorizedApp().pipe(\n tap(res => {\n console.log(res)\n this.authApps = res\n })\n )\n }\n\n\n getPermissionPath() {\n if (this.permissions.value.includes('UserManagement')) {\n return '/landing/user';\n }\n else if (this.permissions.value.includes('GroupManagement')) {\n return '/manage/group';\n }\n else if (this.permissions.value.includes('RoleManagement')) {\n return '/manage/role';\n }\n else if (this.permissions.value.includes('DeployAppManagement')) {\n return '/manage/deploy-app';\n }\n else if (this.permissions.value.includes('WidgetLibraryManagement')) {\n return '/manage/widget-library';\n }\n else if (this.permissions.value.includes('VisualComponentManagement')) {\n return '/manage/widget-library';\n }\n else if (this.permissions.value.includes('DataStoreManagement')) {\n return '/manage/datastore';\n }\n else if (this.permissions.value.includes('NodeManagement')) {\n return '/manage/node';\n }\n else if (this.permissions.value.includes('ColorPaletteManagement')) {\n return '/manage/color-palette';\n }\n else if (this.permissions.value.includes('DashboardDesign')) {\n return '/manage/dashboard';\n }\n else if (this.permissions.value.includes('GlobalFunctionManagement')) {\n return '/manage/global-functions';\n }\n else if (this.permissions.value.includes('BussionConnectorManagement')) {\n return '/manage/visual';\n }\n else if (this.permissions.value.includes('LicenseManagement')) {\n return '/manage/license';\n }\n else if (this.permissions.value.includes('SystemConfiguration')) {\n return '/manage/ldap-config';\n }\n else if (this.permissions.value.includes('SystemConfiguration')) {\n return '/manage/password-policy';\n }\n else {\n return '/landing/user';\n }\n }\n}\n","import { Injectable } from '@angular/core';\nimport { AuthService } from '../auth/auth.service';\nimport { HttpClient } from '@angular/common/http';\nimport { Endpoints } from 'src/app/constants/endpoints';\nimport { map } from 'rxjs/operators';\nimport { RoleResponse, Role } from 'src/app/models/responses/rolesResponse';\n\n@Injectable({\n providedIn: 'root'\n})\nexport class RoleService {\n\n constructor(\n private http: HttpClient,\n private authService: AuthService\n ) { }\n\n getRoles() {\n let param = { Token: this.authService.getToken() };\n return this.http.post(Endpoints.getRoles, param).pipe(\n map((response: RoleResponse) => {\n return response.message;\n })\n );\n }\n\n getUsersRoles(userID: string) {\n let param = { \n Token: this.authService.getToken(),\n UserId: userID\n };\n return this.http.post(Endpoints.getUserRoles, param).pipe(\n map((response: RoleResponse) => {\n return response.message;\n })\n );\n }\n\n upsertRole(role: Role) {\n let param = { \n Token: this.authService.getToken(),\n Role: role\n };\n return this.http.post(Endpoints.upsertRole, param).pipe(\n map((response: RoleResponse) => {\n return response.message;\n })\n );\n }\n\n deleteRole(role: Role) {\n let param = { \n Token: this.authService.getToken(),\n RoleId: role.roleId\n };\n return this.http.post(Endpoints.deleteRole, param).pipe(\n map((response: any) => {\n return response.message;\n })\n );\n }\n}\n","import { ComponentRef, Injectable } from '@angular/core';\nimport { environment } from 'src/environments/environment';\nimport { BehaviorSubject } from 'rxjs';\nimport { PermissionService } from '../permission/permission.service';\nimport { AuthService } from '../auth/auth.service';\nimport { Endpoints } from 'src/app/constants/endpoints';\nimport { HttpClient } from '@angular/common/http';\nimport { catchError, map, take } from 'rxjs/operators';\nimport { BussionFilterDefinition } from 'src/app/models/responses/dataStoreResponse';\nimport { ModalService } from '../modal/modal.service';\nimport { CreateUserComponent } from 'src/app/pages/manage/user/create-user/create-user.component';\nimport { User } from 'src/app/models/responses/loginResponse';\nimport { SharePreviewComponent } from 'src/app/pages/share-preview/share-preview.component';\nimport { MainComponent } from 'src/app/pages/main/main.component';\nimport { UserComponent } from 'src/app/pages/manage/user/user.component';\nimport { dashboardOptions } from 'src/app/models/globals/dashboardOptions';\nimport { SharePreviewModalComponent } from 'src/app/components/share-preview-modal/share-preview-modal.component';\nimport { Dashboard } from 'src/app/models/responses/dashboardResponse';\nimport { DashboardService } from '../dashboard/dashboard.service';\nimport { ShareService } from '../share/share.service';\nimport { Router } from '@angular/router';\nimport { Widget } from 'src/app/models/responses/widgetLibraryResponse';\nimport { DeviceDetectorService } from 'ngx-device-detector';\n\n\n@Injectable({\n providedIn: 'root'\n})\nexport class ScriptLoaderService {\n\n private uploadedFiles: string[] = [];\n private didNewFileLoad: boolean = false;\n filterChanges: BehaviorSubject = new BehaviorSubject([]);\n selectedFilters: BehaviorSubject = new BehaviorSubject([]);\n modalFilters: BehaviorSubject = new BehaviorSubject([]);\n runnedWidgetCode: BehaviorSubject = new BehaviorSubject('');\n\n openedModals: BehaviorSubject<{ modal: number, filter: BussionFilterDefinition[], widgets: any[] }[]> = new BehaviorSubject<{ modal: number, filter: BussionFilterDefinition[], widgets: any[] }[]>([]);\n\n\n changedConfigs: BehaviorSubject<{ configtype: string, config: any }> = new BehaviorSubject<{ configtype: string, config: any }>({ configtype: '', config: '' });\n\n\n _selectedTabForClick: BehaviorSubject = new BehaviorSubject('');\n _paletColors: BehaviorSubject<{ paletId: string, color: string, key: string }[]> = new BehaviorSubject<{ paletId: string, color: string, key: string }[]>([]);\n\n\n\n navigateToDashboard: BehaviorSubject = new BehaviorSubject({});\n selecteddashboard: Dashboard\n selectedTabForClick: string = ''\n paletColors: { paletId: string, color: string, key: string }[] = []\n\n constructor(\n private dashboardService: DashboardService,\n private http: HttpClient,\n private shareService: ShareService,\n private authService: AuthService,\n private modalService: ModalService,\n private router: Router,\n private device: DeviceDetectorService\n ) {\n\n\n }\n\n addScriptFileToHead(scripts: string[]) {\n scripts.forEach(url => {\n if (url.includes(\".js\")) {\n this.addJSFile(url);\n }\n else if (url.includes(\".css\")) {\n this.addCSSFile(url);\n }\n else { }\n });\n }\n\n private addJSFile(fileURL: string) {\n if (this.isFileExist(fileURL)) { return };\n let script = document.createElement('script');\n script.src = environment.imageUrl + fileURL;\n script.type = 'text/javascript';\n script.async = false;\n script.charset = 'utf-8';\n document.getElementsByTagName('head')[0].appendChild(script);\n }\n\n private addCSSFile(fileURL: string) {\n if (this.isFileExist(fileURL)) { return };\n var link = document.createElement('link');\n link.rel = 'stylesheet';\n link.type = 'text/css';\n link.href = environment.imageUrl + fileURL;\n link.media = 'all';\n document.getElementsByTagName('head')[0].appendChild(link);\n }\n\n private isFileExist(url: string) {\n let urlItems = url.split('/');\n let lastIindex = url.split('/').length - 1;\n let fileName = urlItems[lastIindex];\n this.didNewFileLoad = this.uploadedFiles.includes(fileName);\n if (!this.didNewFileLoad) {\n this.uploadedFiles.push(fileName);\n }\n return this.didNewFileLoad;\n }\n\n changeWidgetConfig(config, configtype) {\n\n this.changedConfigs.next({ configtype: configtype, config: config[configtype] })\n\n }\n\n\n runWidgetCode(widgetResponse: any, refresh?) {\n\n this.selecteddashboard = this.dashboardService.selectedDasboard.getValue()\n this._selectedTabForClick.subscribe(res => this.selectedTabForClick = res)\n this._paletColors.subscribe(res => this.paletColors = res)\n let timeout = this.didNewFileLoad ? 1000 : 1000;\n let user = this.authService.getUser();\n var refreshSend = refresh;\n setTimeout(() => {\n var runScriptCode = new Function('data', 'refresh', 'widget', 'dashboard', 'user', widgetResponse.code);\n runScriptCode(widgetResponse.widgetData, refreshSend, widgetResponse.widget, this, user);\n this.runnedWidgetCode.next(widgetResponse.widgetId)\n }, timeout);\n }\n\n runwidgetCodeForCompiler(widgetResponse: any, refresh?) {\n\n let user = this.authService.getUser();\n var refreshSend = refresh == undefined ? false : true\n var runScriptCode = new Function('data', 'refresh', 'widget', 'dashboard', 'user', widgetResponse.code);\n runScriptCode(widgetResponse.widgetData, refreshSend, widgetResponse.widget, this, user);\n }\n\n\n setFilter(filters: any[], rerender?) {\n // if (rerender) {\n console.log('burdayım2', filters)\n this.filterChanges.next(filters);\n this.selectedFilters.next(filters)\n // } else {\n // this.selectedFilters.next(filters)\n\n // this.dashboardService.getWidgetsForDashboard(this.selecteddashboard.dashboardId, filters).subscribe((res) => {\n // res.map(item => {\n // // if (!item.widget.type.toLowerCase().includes('filter'))\n // // document.getElementById(item.widgetId).innerHTML=''\n // this.runWidgetCode(item)\n // })\n\n // })\n // }\n }\n\n SetFilterForDashboard(dashboardid: string, filters: BussionFilterDefinition[]) {\n this.dashboardService.getWidgetsForDashboard(dashboardid, filters).subscribe(res => {\n res.map(item => {\n this.runWidgetCode(item)\n })\n\n })\n }\n\n\n screenOptions: any = {\n width: '',\n height: '',\n position: '',\n isapp: 'false'\n }\n url: string = ''\n\n\n async setParam(Key: string, Value: string) {\n var Token = this.authService.getToken();\n var rst = await this.setParamInternal(Token, Key, Value);\n return rst;\n }\n\n async setParamInternal(Token: string, Key: string, Value: string) {\n const payload = { Token: Token, Key: Key, Value: Value };\n return this.http.post(Endpoints.setParam, payload).toPromise();\n }\n\n\n\n async getParam(Key: string) {\n let param = { \"Token\": this.authService.getToken(), \"Key\": Key };\n return await this.http.post(Endpoints.getParam, param).toPromise().\n then(async (res: any) => {\n // await this.atama(res);\n return res.message\n })\n\n }\n\n\n async deleteParam(Key: string) {\n const Token = this.authService.getToken()\n var rst = await this.deleteParamInternal(Token, Key)\n return rst;\n }\n async deleteParamInternal(Token: string, Key: string) {\n\n const payload = { Token: Token, Key: Key };\n this.http.post(Endpoints.deleteParam, payload).subscribe(\n (response: any) => {\n const value = response.Value;\n return true;\n },\n (error) => {\n console.error('Bir hata oluştu.');\n }\n );\n }\n\n async openWindow(url: string, options: {\n type: string;\n windowWidth: string;\n windowHeight: string;\n isapp: string;\n app?: any;\n clickedWidget?: Widget\n }) {\n options.isapp = options.isapp ? options.isapp : 'false'\n this.url = url\n let type = ''\n this.screenOptions.position = options?.type?.toLowerCase()\n this.screenOptions.isapp = options?.isapp ? options?.isapp : 'false'\n let position;\n\n\n\n if (this.device.isMobile()) {\n options.windowHeight = '100%'\n options.windowWidth = '100%'\n\n } else if (this.device.isTablet() && screen.orientation.type.includes('landscape') && parseInt(options.windowWidth?.split('%')[0]) < 60) {\n options.windowWidth = '60%'\n } else if (this.device.isTablet() && screen.orientation.type.includes('portrait')) {\n options.windowWidth = '100%'\n\n }\n\n\n if (options) {\n if (options?.type.toLowerCase() == 'newwindow') {\n var a = document.createElement('a');\n a.href = '/#/share' + url;\n a.setAttribute('target', '_blank');\n a.click();\n } else {\n // this.dashboardOptions.shareKey = options.shareKey\n // this.dashboardOptions.domain = options.domain\n // this.dashboardOptions.filters = JSON.parse(options.filters)\n if (!this.url?.split('/')[5] && options?.isapp?.toString() == 'false') {\n this.url = environment.baseUrl + '/#/share' + url\n }\n this.screenOptions.width = options.windowWidth\n this.screenOptions.height = options.windowHeight\n if (options?.type.toLowerCase() == 'centerwindow') {\n type = 'center'\n\n } else if (options?.type.toLowerCase() == 'rightwindow') {\n type = 'rightSideBar'\n position = {\n right: '0'\n }\n } else if (options?.type.toLowerCase() == 'leftwindow') {\n type = 'leftSideBar'\n position = {\n left: '0'\n }\n }\n\n\n if (options?.isapp?.toString() == 'false') {\n var dashboard = await this.getShareObject()\n\n if (this.selecteddashboard?.dashboardId == dashboard.dashboardId && options?.type == 'selfWindow') {\n if (this.url.split('filters=')[1]) {\n var dashboardfilter = JSON.parse(this.url.split('filters=')[1])\n this.setFilter(dashboardfilter)\n }\n return;\n }\n\n const currentModals = this.openedModals.getValue();\n var currentIndex = currentModals.length > 0 ? currentModals[currentModals.length - 1].modal + 1 : 1\n\n var currentModalFilter = []\n if (this.url.includes('filters=')) {\n currentModalFilter = JSON.parse(this.url.split('filters=')[1])\n }\n\n\n this.changeModalList(currentModalFilter, currentIndex)\n\n\n this.modalService.openModal({ exitButton: true, showAvatar: true, dashboard: dashboard, clickedWidget: options.clickedWidget, currentModalIndex: currentIndex, window: { height: options.windowHeight, width: options.windowWidth } }, SharePreviewComponent, this.screenOptions.height, this.screenOptions.width, type, position).subscribe(result => {\n this.deleteCurrentFilterOnCloseModal(options.clickedWidget, currentModalFilter)\n this.openedModals.getValue().pop()\n });\n } else {\n if (options.app.appType == 0 && options.app.openerMethod == 2) {\n this.router.navigate(['data-app/' + options.app.applicationId])\n } else {\n this.modalService.openModal(options, SharePreviewModalComponent, this.screenOptions.height, this.screenOptions.width, type, position).subscribe(result => {\n });\n }\n }\n\n }\n } else {\n // let a = document.createElement('a');\n // a.target = '_blank';\n // a.href = url;\n // a.click();\n this.screenOptions.width = '100%'\n this.screenOptions.height = '100%'\n type = 'center'\n position = {\n left: '0'\n }\n this.modalService.openModal({ exitButton: true, showAvatar: true }, SharePreviewComponent, this.screenOptions.height, this.screenOptions.width, type, position).subscribe(result => {\n });\n }\n }\n\n changeModalList(modalfilter: BussionFilterDefinition[], modalIndex: number, widgets = []) {\n const currentModals = this.openedModals.getValue(); // Mevcut modalleri al\n currentModals.push({ modal: modalIndex, filter: modalfilter, widgets: widgets }); // Yeni modalı ekle\n this.openedModals.next(currentModals);\n }\n\n deleteCurrentFilterOnCloseModal(clickedWidget: Widget, currentModalFilters: BussionFilterDefinition[]) {\n // if (this.dialogRef)\n // this.dialogRef.afterClosed().subscribe(res => {\n console.log(currentModalFilters)\n if (clickedWidget && clickedWidget.drillDown.dashboardFilter) {\n var filters = this.modalFilters.getValue()\n currentModalFilters.map(item => {\n if (filters.some(x => x.fieldName == item.fieldName && x.fieldValue == item.fieldValue)) {\n filters = filters.filter(x => !(x.fieldName == item.fieldName && x.fieldValue == item.fieldValue))\n }\n })\n this.modalFilters.next(filters)\n }\n console.log('kalan', this.modalFilters.getValue())\n // })\n }\n\n getShareObject() {\n var shareKey = this.url?.split('/')[5]\n if (shareKey.includes('?')) {\n shareKey = shareKey.split('?')[0]\n }\n return new Promise((resolve, reject) => {\n this.shareService.getShareObject(shareKey).subscribe(\n res => {\n resolve(res);\n },\n error => {\n reject(error);\n }\n );\n });\n }\n\n\n\n sendLog(type: string, message: string) {\n let params = {\n Token: this.authService.getToken(),\n Type: type,\n Message: message\n }\n this.http.post(Endpoints.sendAuditLogs, params).pipe(\n map((response: any) => {\n return response.message;\n })\n ).subscribe(r => { });\n }\n\n runScript(scriptName: string) {\n let params = {\n Token: this.authService.getToken(),\n BussionScript: scriptName\n }\n this.http.post(Endpoints.startScript, params).pipe(\n map((response: any) => {\n return response.message;\n })\n ).subscribe(r => { });\n }\n\n navigateDashboard(dashboardId: string, filters: Array) {\n let mappedFilter = [];\n filters.forEach(f => {\n let filter = {\n fieldName: f.fieldName,\n operator: \"=\",\n fieldValue: f.fieldValue\n }\n mappedFilter.push(filter);\n });\n let data = {\n dashboardId: dashboardId,\n filters: mappedFilter\n }\n this.navigateToDashboard.next(data);\n }\n\n getDataWithOffset(widget: Widget, offset: number): Promise {\n return new Promise((resolve, reject) => {\n widget.offSet = offset;\n this.dashboardService.widgetPreview(widget).subscribe(\n (res) => {\n resolve(res); // Başarılı olduğunda resolve edilir\n },\n (error) => {\n reject(error); // Hata oluştuğunda reject edilir\n }\n );\n });\n }\n\n\n\n runGlobalFunction(globalFunction: string) {\n var script = document.createElement(\"script\");\n script.type = \"text/javascript\";\n script.innerHTML = globalFunction;\n document.getElementsByTagName('head')[0].appendChild(script);\n }\n\n\n\n}\n","import { HttpClient } from '@angular/common/http';\nimport { Injectable } from '@angular/core';\nimport { map } from 'rxjs/operators';\nimport { Endpoints } from 'src/app/constants/endpoints';\nimport { AllowedScript, AllowedScriptResponse } from 'src/app/models/responses/allowedScriptResponse';\nimport { AuthService } from '../auth/auth.service';\n\n@Injectable({\n providedIn: 'root'\n})\nexport class ScriptsService {\n\n constructor(private http:HttpClient,private authService:AuthService) { }\n\n\n getAllowedScripts() {\n let param = { Token: this.authService.getToken() };\n return this.http.post(Endpoints.getAllowedScript, param).pipe(\n map((response: AllowedScriptResponse) => {\n return response.message;\n })\n );\n }\n\n upsertScript(scripts:AllowedScript[]){\n let param = { Token: this.authService.getToken(),AllowedScripts: scripts};\n return this.http.post(Endpoints.upsertAllowedScript, param).pipe(\n map((response: AllowedScriptResponse) => {\n return response.message;\n })\n );\n }\n\n deleteScript(role: AllowedScript[]) {\n let param = { \n Token: this.authService.getToken(),\n scriptId: ''\n };\n return this.http.post(Endpoints.deleteRole, param).pipe(\n map((response: any) => {\n return response.message;\n })\n );\n }\n}\n","import { Injectable } from '@angular/core';\nimport { AuthService } from '../auth/auth.service';\nimport { HttpClient } from '@angular/common/http';\nimport { Endpoints } from 'src/app/constants/endpoints';\nimport { map } from 'rxjs/operators';\n\n@Injectable({\n providedIn: 'root'\n})\nexport class SelfService {\n\n constructor(\n private authService: AuthService,\n private http: HttpClient,\n ) { }\n\n addDataStore(formdata: FormData) {\n // let param = {\n // File:File,\n // NodeId: NodeId,\n // Token: this.authService.getToken(),\n // UserData: UserData,\n // append:append,\n // }\n return this.http.post(Endpoints.addDatastoreFile, formdata).pipe(\n map((res: any) => {\n return res.message\n })\n )\n }\n getDataList() {\n let param = {\n Token: this.authService.getToken()\n }\n return this.http.post(Endpoints.getDataList, param).pipe(\n map((res: any) => {\n return res.message\n })\n )\n }\n}\n","import { Injectable } from '@angular/core';\nimport { HttpClient } from '@angular/common/http';\nimport { AuthService } from '../auth/auth.service';\nimport { map, switchMap, tap } from 'rxjs/operators';\nimport { Endpoints } from 'src/app/constants/endpoints';\nimport { Share } from 'src/app/models/responses/shareResponse';\nimport * as CryptoJS from 'crypto-js';\nimport { BussionFilterDefinition } from 'src/app/models/responses/dataStoreResponse';\n\n@Injectable({\n providedIn: 'root'\n})\nexport class ShareService {\n\n constructor(\n private http: HttpClient,\n private authService: AuthService\n ) { }\n\n upsertShare(share: Share) {\n share.domain = this.authService.getUserDomain();\n let param = {\n Token: this.authService.getToken(),\n Share: share\n };\n return this.http.post(Endpoints.upsertShare, param).pipe(\n map((response: any) => {\n return response.message;\n })\n );\n }\n\n getShareObject(shareKey: string) {\n let param = {\n ShareObjectId: shareKey\n };\n return this.http.post(Endpoints.getShare, param).pipe(\n map((response: any) => {\n return response.message as Share;\n })\n );\n }\n\n CreateSecureKeyForService(shareid, domain, filters) {\n\n\n\n var key = CryptoJS.enc.Utf8.parse('000000000000' + shareid);\n var iv = CryptoJS.enc.Utf8.parse('0000000000' + domain);\n var FltArr = filters.filter(x => x.fieldName == 'SecureKey')\n var Keyval = '';\n for (var i = 0; i < FltArr.length; i++) {\n Keyval += FltArr[i]['fieldValue'];\n }\n\n var encryptData = CryptoJS.AES.encrypt(CryptoJS.enc.Utf8.parse(Keyval), key,\n {\n keySize: 128 / 8,\n iv: iv,\n mode: CryptoJS.mode.CBC,\n padding: CryptoJS.pad.Pkcs7\n });\n\n\n var json = {};\n json[\"fieldName\"] = \"SecureKey\";\n json[\"operator\"] = \"=\";\n json[\"fieldValue\"] = encryptData.toString();\n FltArr.push(json);\n return JSON.stringify(FltArr);\n }\n\n\n\n\n\n getSharedDashboardWidgets(shareId: string, lang: string, domain: string, filters: BussionFilterDefinition[], shareEncryptKey: string, authType: number, sharedToken?: string) {\n filters = filters.filter(x => x.fieldName !== \"SecureKey\")\n\n\n var key = CryptoJS.enc.Utf8.parse('000000000000' + shareId);\n var iv = CryptoJS.enc.Utf8.parse('0000000000' + domain);\n\n if (filters.length <= 0)\n tmpKey = \"NO_FILTER_DEFINED\"\n else\n var tmpKey = \"\";\n\n for (let index = 0; index < filters.length; index++) {\n tmpKey += filters[index].fieldValue;\n }\n\n var encryptData = CryptoJS.AES.encrypt(CryptoJS.enc.Utf8.parse(tmpKey), key,\n {\n keySize: 128 / 8,\n iv: iv,\n mode: CryptoJS.mode.CBC,\n padding: CryptoJS.pad.Pkcs7\n });\n\n // if (!filters.some(x => x.fieldName == \"SecureKey\") && shareEncryptKey)\n // filters.push(\n // { fieldName: \"SecureKey\", operator: \"=\", fieldValue: encryptData.toString() }\n // )\n // else\n if (!filters.some(x => x.fieldName == \"SecureKey\")) {\n filters.push(\n { fieldName: \"SecureKey\", operator: \"=\", fieldValue: encryptData.toString() }\n )\n }\n\n\n\n\n let param: any = {\n ShareId: shareId,\n Domain: domain,\n Lang: lang ? lang : 'English',\n Filter: filters,\n };\n\n if (authType == 2) {\n param.Token = this.authService.getToken()\n } else if (authType == 1) {\n if (sharedToken) {\n var dynamictoken = sharedToken\n param.ShareRequestToken = dynamictoken;\n }\n // return this.getSharedDashboardWidgetsRequest(param)\n\n }\n\n\n\n return this.getSharedDashboardWidgetsRequest(param)\n }\n\n getSharedDashboardWidgetsRequest(param) {\n return this.http.post(Endpoints.getSharedDashboardWidgets, param).pipe(\n map((response: any) => {\n return response.message;\n })\n );\n }\n\n getDynamicToken(shareObjectId: string) {\n let param = {\n Token: this.authService.getToken(),\n ShareObjectId: shareObjectId\n }\n return this.http.post(Endpoints.RequestDynamicalShareToken, param).pipe(\n map((response: any) => {\n return response.message;\n })\n );\n }\n\n\n removeDynamicToken(ShareRequestToken: string) {\n let param = {\n ShareRequestToken: ShareRequestToken\n }\n return this.http.post(Endpoints.RemoveDynamicToken, param).pipe(\n map((response: any) => {\n return response.message;\n })\n );\n }\n\n wordToByteArray(wordArray) {\n var byteArray = [], word, i, j;\n for (i = 0; i < wordArray.length; ++i) {\n word = wordArray[i];\n for (j = 3; j >= 0; --j) {\n byteArray.push((word >> 8 * j) & 0xFF);\n }\n }\n return byteArray;\n }\n\n byteArrayToString(byteArray) {\n var str = \"\", i;\n for (i = 0; i < byteArray.length; ++i) {\n str += escape(String.fromCharCode(byteArray[i]));\n }\n return str;\n }\n\n getDecrypt(encryptedData: string, sharedkey: string, domain: string) {\n // var encryptedData=url.split('encrypt_')[1]\n encryptedData = encryptedData.replace(/ /g, '+')\n var shareId = sharedkey;\n var domain = domain;\n var key = CryptoJS.enc.Utf8.parse('000000000000' + shareId);\n var iv = CryptoJS.enc.Utf8.parse('0000000000' + domain);\n // key = CryptoJS.enc.Base64.parse(key);\n // //key is now e8b7b40e031300000000da247441226a, length=32\n // iv = CryptoJS.enc.Base64.parse(iv);\n // //iv is now 987185c4436764b6e27a72f2fffffffd, length=32\n // var data = CryptoJS.AES.decrypt(encryptedData, key, { iv: iv });\n // var bytes = CryptoJS.AES.decrypt(encryptedData);\n // var originalText = bytes.toString(CryptoJS.enc.Utf8);\n // console.log(originalText);\n var decrypted = CryptoJS.AES.decrypt(\n encryptedData,\n key,\n {\n iv: iv\n }\n );\n // var byteArray = this.wordToByteArray(decrypted.words)\n // var string=this.byteArrayToString(byteArray)\n return decrypted.toString(CryptoJS.enc.Utf8);\n }\n\n\n getSharedWidget(shareId: string, domain: string) {\n let param = {\n ShareId: shareId,\n Domain: domain,\n };\n return this.http.post(Endpoints.getWidgetForShare, param).pipe(\n map((response: any) => {\n return response.message;\n })\n );\n }\n\n getMyShare(shareObjectId: string) {\n let param = {\n Token: this.authService.getToken(),\n ShareObjectId: shareObjectId\n };\n return this.http.post(Endpoints.getMyShares, param).pipe(\n map((response: any) => {\n return response.message.filter(x => x.shareType == 1 || x.sharedUserId == this.authService.getUserId());\n })\n );\n }\n\n deleteShare(shareId: string) {\n let param = {\n Token: this.authService.getToken(),\n SharedObjectId: shareId\n };\n return this.http.post(Endpoints.deleteMyShare, param).pipe(\n map((response: any) => {\n return response.message;\n })\n );\n }\n\n\n\n\n\n}\n","import { Injectable } from '@angular/core';\nimport { TranslateService } from '@ngx-translate/core';\nimport Swal from 'sweetalert2';\n\n@Injectable({\n providedIn: 'root'\n})\nexport class SweetAlertService {\n\n constructor(private translate:TranslateService) { }\n\n open(title: string, text: string, icon, confirmbuttontext: string, callbackfunction: Function,showCancelButton?:boolean) {\n Swal.fire({\n title: title,\n text: text,\n icon: icon,\n heightAuto:false,\n showCancelButton: showCancelButton||false,\n cancelButtonText:this.translate.instant('Common.Cancel'),\n confirmButtonColor: \"#3085d6\",\n cancelButtonColor: \"#d33\",\n confirmButtonText: confirmbuttontext,\n allowOutsideClick: icon == 'info' || icon == 'question' ? false : true\n }).then((result) => {\n callbackfunction(result)\n })\n }\n\n\n}\n","import { Injectable } from '@angular/core';\nimport { AuthService } from '../auth/auth.service';\nimport { HttpClient } from '@angular/common/http';\nimport { Endpoints } from 'src/app/constants/endpoints';\nimport { map } from 'rxjs/operators';\nimport { languagePacts } from 'src/app/models/responses/languagePacts';\n\n\n@Injectable({\n providedIn: 'root'\n})\nexport class SystemParametersService {\n\n constructor(\n private authService: AuthService,\n private http: HttpClient\n ) { }\n getLogs(type) {\n let param = { Token: this.authService.getToken(), Type: type };\n return this.http.post(Endpoints.getLogs, param).pipe(\n map((res: any) => {\n return res.message\n })\n )\n }\n getSystemParameters() {\n let param = { Token: this.authService.getToken() };\n return this.http.post(Endpoints.getSystemParameters, param).pipe(\n map((res: any) => {\n return res.message\n })\n )\n }\n getBussionVersion() {\n let param = { Token: this.authService.getToken() };\n return this.http.post(Endpoints.getBussionVersion, param).pipe(\n map((res: any) => {\n return res.message\n })\n )\n }\n changeDebugState(state) {\n let param = { Token: this.authService.getToken(), State: state };\n return this.http.post(Endpoints.debugeState, param).pipe(\n map((res: any) => {\n return res.result\n })\n )\n }\n setMaxIllegalTries(count) {\n let param = { Token: this.authService.getToken(), Count: count };\n return this.http.post(Endpoints.maxIllegalTries, param).pipe(\n map((res: any) => {\n return res.result\n })\n )\n }\n\n getCaptcha() {\n let param = { Token: this.authService.getToken() };\n return this.http.post(Endpoints.getCaptcha, param).pipe(\n map((res: any) => {\n return res.message\n })\n )\n }\n\n setCaptcha(state) {\n let param = { Token: this.authService.getToken(), State: state };\n return this.http.post(Endpoints.setCaptcha, param).pipe(\n map((res: any) => {\n return res.result\n })\n )\n }\n\n backupBussionConfiguration() {\n let param = { Token: this.authService.getToken() };\n return this.http.post(Endpoints.backupBussionConfiguration, param).pipe(\n map((res: any) => {\n return res.message\n })\n )\n }\n\n restoreBussionConfiguration() {\n let param = { Token: this.authService.getToken() };\n return this.http.post(Endpoints.restoreBussionConfiguration, param).pipe(\n map((res: any) => {\n return res.message\n })\n )\n }\n downloadCurrentConfiguration() {\n let param = { Token: this.authService.getToken() };\n return this.http.post(Endpoints.downloadCurrentConfiguration, param).pipe(\n map((res: any) => {\n return res.message\n })\n )\n }\n\n uploadConfiguration(form) {\n return this.http.post(Endpoints.uploadConfiguration, form).pipe(\n map((res: any) => {\n return res\n })\n )\n }\n\n\n getLanguagePacts() {\n let param = { Token: this.authService.getToken() };\n\n\n return this.http.post(Endpoints.getLanguagePacts, param).pipe(\n map((res: any) => {\n return res.message\n })\n )\n }\n\n upsertLanguagePacts(languagePack: languagePacts) {\n let param = {\n Token: this.authService.getToken(),\n LanguagePack: languagePack\n };\n\n\n return this.http.post(Endpoints.setLanguagePacts, param).pipe(\n map((res: any) => {\n return res.message\n })\n )\n }\n\n\n getLanguageFile(LangName: string) {\n\n let param = {\n Token: this.authService.getToken(),\n LangName: LangName\n };\n\n\n return this.http.post(Endpoints.getLanguagePacts, param).pipe(\n map((res: any) => {\n return res.message\n })\n )\n }\n\n deleteLanguage(LangName: string) {\n\n let param = {\n Token: this.authService.getToken(),\n LangName: LangName\n };\n\n\n return this.http.post(Endpoints.deleteLanguage, param).pipe(\n map((res: any) => {\n return res\n })\n )\n }\n}","import { HttpClient, HttpHeaders } from '@angular/common/http';\nimport { Injectable } from '@angular/core';\nimport { TranslateLoader } from '@ngx-translate/core';\nimport { Observable } from 'rxjs';\nimport { catchError, map, tap } from 'rxjs/operators';\nimport { SystemParametersService } from '../system-parameters/system-parameters.service';\nimport { environment } from 'src/environments/environment';\n\n@Injectable({\n providedIn: 'root'\n})\nexport class CustomTranslateLoaderService implements TranslateLoader {\n\n constructor(private httpClient: HttpClient, private systemService: SystemParametersService) { }\n\n contentHeader = new HttpHeaders({\n 'Content-Type': 'application/json',\n 'Access-Control-Allow-Origin': '*',\n });\n\n getTranslation(lang: string): Observable {\n\n\n\n return this.httpClient.get(environment.baseUrl + `/Localization/${lang}.json`, { headers: this.contentHeader })\n .pipe(\n tap(res=>console.log(res)),\n map((res:any) => res),\n // tap((res) => { this.scriptLoader.languageObject.next(JSON.parse(res as string)) }),\n catchError(_ => this.httpClient.get( `/assets/i18n/${lang}.json`)),\n catchError(_ => this.httpClient.get(`/assets/i18n/tr.json`))\n\n\n );\n\n\n\n }\n\n\n\n // setTranslationObject() {\n // var language = localStorage.getItem('lang') ? localStorage.getItem('lang') : 'tr'\n // // const apiAddress = environment.baseUrl + `/assets/language/${language?.toLowerCase()}.json`;\n\n // const apiAddress = environment.baseUrl + `/Apps/Lex1234-74757766416345884368-528275/AppFiles/${language?.toLowerCase()}.json`\n // return this.httpClient.get(apiAddress, { headers: this.contentHeader })\n // .pipe(\n // map((res) => JSON.parse(res as string)),\n // catchError(_ => this.httpClient.get(environment.baseUrl + '/Apps/Lex1234-74757766416345884368-528275' + `/assets/i18n/${language?.toLocaleLowerCase()}.json`)),\n // catchError(_ => this.httpClient.get(environment.baseUrl + '/Apps/Lex1234-74757766416345884368-528275' + `/assets/i18n/tr.json`))\n\n // // tap((res) => { this.scriptLoader.languageObject.next(JSON.parse(res as string)) }),\n // );\n // }\n}\n","import { Injectable } from '@angular/core';\nimport { HttpClient } from '@angular/common/http';\nimport { Endpoints } from 'src/app/constants/endpoints';\nimport { AuthService } from '../auth/auth.service';\nimport { map } from 'rxjs/operators';\nimport { UsersResponse, User } from 'src/app/models/responses/usersResponse';\nimport { BehaviorSubject } from 'rxjs';\n\n@Injectable({\n providedIn: 'root'\n})\nexport class UserService {\n public users: BehaviorSubject = new BehaviorSubject([]);\n\n\n constructor(\n private http: HttpClient,\n private authService: AuthService\n ) { }\n\n getUsers() {\n let param = { Token: this.authService.getToken() };\n return this.http.post(Endpoints.getUsers, param).pipe(\n map((response: UsersResponse) => {\n this.users.next(response.message)\n return response.message;\n })\n );\n }\n\n\n\n getUsersWithSearchText(searchText: string) {\n let param = { Token: this.authService.getToken(), SearchName: searchText };\n return this.http.post(Endpoints.getUsers, param).pipe(\n map((response: UsersResponse) => {\n return response.message;\n })\n );\n }\n\n getUserById(userId: string) {\n let param = {\n Token: this.authService.getToken(),\n UserId: userId\n };\n return this.http.post(Endpoints.getUserId, param).pipe(\n map((response: any) => {\n return response.message;\n })\n );\n }\n\n upsertUser(user: User, role: string[], group: string[], keepRolesAndGroups: number = 0) {\n\n var param\n\n if (keepRolesAndGroups == 1) {\n param = {\n Token: this.authService.getToken(),\n User: user,\n KeepRolesAndGroups: keepRolesAndGroups\n };\n } else {\n param = {\n Token: this.authService.getToken(),\n User: user,\n Roles: role,\n Groups: group\n };\n }\n return this.http.post(Endpoints.upsertUser, param).pipe(\n map((response: UsersResponse) => {\n return response.result;\n })\n );\n }\n\n deleteUser(user: User) {\n let param = {\n Token: this.authService.getToken(),\n UserId: user.userId\n };\n return this.http.post(Endpoints.deleteUser, param).pipe(\n map((response: UsersResponse) => {\n return response.message;\n })\n );\n }\n}\n","import { Injectable } from '@angular/core';\nimport { HttpClient } from '@angular/common/http';\nimport { AuthService } from '../auth/auth.service';\nimport { Endpoints } from 'src/app/constants/endpoints';\nimport { map } from 'rxjs/operators';\nimport { VisualComponentResponse, VisualComp } from 'src/app/models/responses/visualComponentResponse';\n\n@Injectable({\n providedIn: 'root'\n})\nexport class VisualService {\n\n constructor(\n private http: HttpClient,\n private authService: AuthService\n ) { }\n\n getVisualComponents() {\n let param = { Token: this.authService.getToken() };\n return this.http.post(Endpoints.getVisualComponents, param).pipe(\n map((response: VisualComponentResponse) => {\n return response.message;\n })\n );\n }\n\n upsertVisualComponent(visualComponent: VisualComp) {\n let param = { \n Token: this.authService.getToken(),\n VisualComponent: visualComponent\n };\n return this.http.post(Endpoints.upsertVisualComponent, param).pipe(\n map((response: VisualComponentResponse) => {\n return response.message;\n })\n );\n }\n\n deleteComponent(visualComponent: VisualComp) {\n let param = { \n Token: this.authService.getToken(),\n VisualComponentId: visualComponent.visualComponentId\n };\n return this.http.post(Endpoints.deleteVisualComponent, param).pipe(\n map((response: VisualComponentResponse) => {\n return response.message;\n })\n );\n }\n\n}","import { Injectable } from '@angular/core';\nimport { HttpClient } from '@angular/common/http';\nimport { AuthService } from '../auth/auth.service';\nimport { Endpoints } from 'src/app/constants/endpoints';\nimport { map } from 'rxjs/operators';\nimport { WidgetLibraryResponse, WidgetLibrary } from 'src/app/models/responses/widgetLibraryResponse';\n\n@Injectable({\n providedIn: 'root'\n})\nexport class WidgetLibraryService {\n\n constructor(\n private http: HttpClient,\n private authService: AuthService\n ) { }\n\n getWidgetLibraries() {\n let param = { Token: this.authService.getToken() };\n return this.http.post(Endpoints.getWidgetLibraries, param).pipe(\n map((response: WidgetLibraryResponse) => {\n if (response.result === true) {\n return response.message;\n } else {\n return [];\n }\n })\n );\n }\n\n upsertWidgetLibrary(widgetLibrary: WidgetLibrary) {\n let param = {\n Token: this.authService.getToken(),\n WidgetLibrary: widgetLibrary\n };\n return this.http.post(Endpoints.upsertWidgetLibrary, param).pipe(\n map((response: WidgetLibraryResponse) => {\n return response.message;\n })\n );\n }\n\n deleteWidgetLibrary(widgetLibrary: WidgetLibrary) {\n let param = {\n Token: this.authService.getToken(),\n WidgetLibraryId: widgetLibrary.widgetLibraryId\n };\n return this.http.post(Endpoints.deleteWidgetLibrary, param).pipe(\n map((response: any) => {\n return response.message;\n })\n );\n }\n\n deleteAllWidgetLibrary(widgetFolder: string) {\n let param = {\n Token: this.authService.getToken(),\n Folder: widgetFolder\n };\n return this.http.post(Endpoints.clearWidgetFolder, param).pipe(\n map((response: any) => {\n return response.message;\n })\n );\n }\n\n uploadJavascriptFile(formData: FormData) {\n formData.append('Token', this.authService.getToken());\n return this.http.post(Endpoints.uploadJavascriptFile, formData).pipe(\n map((response: any) => {\n return response.message;\n })\n );\n }\n\n getJavascriptFiles(folder: string) {\n let param = {\n Token: this.authService.getToken(),\n FileFolder: folder\n };\n return this.http.post(Endpoints.getFilesPathOfLibrary, param).pipe(\n map((response: any) => {\n return response.message as string[];\n })\n );\n }\n\n deleteFilePath(folder: string, files: string[]) {\n let param = {\n Token: this.authService.getToken(),\n Folder: folder,\n Files: files\n };\n return this.http.post(Endpoints.deleteFilePath, param).pipe(\n map((response: any) => {\n return response.message as string[];\n })\n );\n }\n\n}\n","import { HttpClient } from '@angular/common/http';\nimport { Injectable } from '@angular/core';\nimport { map } from 'rxjs/operators';\nimport { Endpoints } from 'src/app/constants/endpoints';\nimport { AuthService } from '../auth/auth.service';\n\n@Injectable({\n providedIn: 'root'\n})\nexport class WidgetService {\n\n constructor(private http: HttpClient, private authService: AuthService) { }\n\n getWidgetById(widgetId:string[], dashboardId, filter?) {\n let param = {\n Token: this.authService.getToken(),\n WidgetId: widgetId,\n DashboardId: dashboardId,\n Filter: filter\n };\n return this.http.post(Endpoints.getWidgetById, param).pipe(\n map((response: any) => {\n return response.message;\n })\n );\n }\n \n getWidgetRepository(query:string){\n let param = {\n Token: this.authService.getToken(),\n OnlyMain:1,\n Query:query\n };\n return this.http.post(Endpoints.GetWidgetRepository, param).pipe(\n map((response: any) => {\n return response;\n })\n );\n }\n}\n","export const Montserrat = 'AAEAAAAQAQAABAAAR0RFRj6kOmsAAcdEAAADtkdQT1O+hJ/9AAHK/AABEfRHU1VCtV7s0AAC3PAAACiiT1MvMndNXi0AAWJsAAAAYFNUQVTlHMwkAAMFlAAAAERjbWFweePSoAABYswAAArqZ2FzcAAAABAAAcc8AAAACGdseWYlB4sUAAABDAABNCRoZWFkGBWy5wABRDwAAAA2aGhlYQkaCYUAAWJIAAAAJGhtdHjPxsjYAAFEdAAAHdRsb2NhQeuL9wABNVAAAA7sbWF4cAeJALYAATUwAAAAIG5hbWV38KN/AAFtwAAABFBwb3N0brG8rAABchAAAFUqcHJlcGgGjIUAAW24AAAABwACACgAAAIjArwAAwAHAABzESERJSERISgB+/5VAVv+pQK8/URGAjAAAv//AAAC3QK8AAcACwAAYwEzASMBMwE3NyEXAQE9YwE+af7lKP7lIBsBih0CvP1EAoT9fK9QUP////8AAALdA3cGJgABAAAABgcgQgD/////AAAC3QN3BiYAAQAAAAYHJ0IA/////wAAAt0D4QYmAAEAAAAGB1xCAP//////PALdA3cGJgABAAAAJgcAQgAABgcnQgD/////AAAC3QPhBiYAAQAAAAYHXUIA/////wAAAt0D7QYmAAEAAAAGB15CAP////8AAALdA+EGJgABAAAABgdfQgD/////AAAC3QN3BiYAAQAAAAYHJUIA/////wAAAt0DdwYmAAEAAAAGByRCAP////8AAALdA70GJgABAAAABgdgQgD//////zwC3QN3BiYAAQAAACYHAEIAAAYHJEIA/////wAAAt0DvQYmAAEAAAAGB2FCAP////8AAALdA9MGJgABAAAABgdiQgD/////AAAC3QPnBiYAAQAAAAYHY0IA/////wAAAt0DdwYmAAEAAAAGBzFCAP////8AAALdA20GJgABAAAABgcYQgD//////zwC3QK8BiYAAQAAAAYHAEIA/////wAAAt0DdwYmAAEAAAAGBx5CAP////8AAALdA7sGJgABAAAABgcwQgD/////AAAC3QN9BiYAAQAAAAYHMkIA/////wAAAt0DVAYmAAEAAAAGByxCAP//////IALzArwGJgABAAAABwcEAbAAAP////8AAALdA9YGJgABAAAABwbxAEIAqv////8AAALdBB0GJgAB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ERQGBw4CFRQWMzI2NxcGBiMiJjU0NjY3BwYGIyImNREzERQWMzI2NQJSYWJTOz4XIxsQIQwTEy4ZOEAbPjYDChYLip5kZ15fZwK8/nJ6jh4VKykTGRsKBzELDTgtGzc0FSYBAZ6YAY7+dnVsbHX//wBj//gCswPWBiYAxAAAAAcG8QBgAKr//wBj//gCswN3BiYAxAAAAAYHKGAA//8AY//4ArMD8wYmAMQAAAAGBypgAAAB//8AAALJArwABwAAYQEzASMBMwEBM/7MbAEbPgEdZP7NArz9egKG/UQAAAEAIAAABEYCvAAPAABhAzMTIxMzEyMTMwMjAzMDAQrqZ9c031zaMtpf6mnMG80CvP16Aob9egKG/UQCV/2pAP//ACAAAARGA3cGJgDdAAAABwcgAQgAAP//ACAAAARGA3cGJgDdAAAABwckAQgAAP//ACAAAARGA20GJgDdAAAABwcYAQgAAP//ACAAAARGA3cGJgDdAAAABwceAQgAAAABAA0AAAKUArwADwAAcwEVATMTBxMzATUBIwMzAw0BI/7tctot2W3+7wEjc+gs5QGNTQF8/tUBASz+ikj+cgE//sEAAAH//AAAAosCvAALAABhERcBMxMjEzMBNxEBEhf+02v9Ov5j/tQWAQw+Ae7+XwGh/hI+/vQA/////AAAAosDdwYmAOMAAAAGByAYAP////wAAAKLA3cGJgDjAAAABgckGAD////8AAACiwNtBiYA4wAAAAYHGBgA/////AAAAosDfQYmAOMAAAAGBxwYAP////z/PAKLArwGJgDjAAAABgcAGAD////8AAACiwN3BiYA4wAAAAYHHhgA/////AAAAosDuwYmAOMAAAAGBzAYAP////wAAAKLA1QGJgDjAAAABgcsGAD////8AAACiwN3BiYA4wAAAAYHKBgAAAEAKwAAAnQCvAALAABzNQEXITUhFQEnIRUrAdcL/iUCNf4rDAHuRAJIJ1dE/bgnVwD//wArAAACdAN3BiYA7QAAAAYHICQA//8AKwAAAnQDdwYmAO0AAAAGByUkAP//ACsAAAJ0A30GJgDtAAAABgccJAD//wAr/zwCdAK8BiYA7QAAAAYHACoAAAQAV//6Av0DdwAQABQAGAAcAABFIiYnNxYWMzI2NREzERQGBgERMxEDNzMHITczBwFHR3suJytnNF9m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AAAABgb3JAD//wBU/zgCSQLhBiYCygAAAAYG8yQAAAIALQAAAekCEgALABMAAHM1ARchNSEVASchFScnIzUzFzMVLQFUE/6fAa7+rBYBctoboL4Zlj4BpiFPP/5bIU/lAUwBTP//AC0AAAHpAuEGJgLUAAAABgbo3AD//wAtAAAB6QLhBiYC1AAAAAYG7twA//8ALQAAAekC5wYmAtQAAAAGBuTcAP//AC3/PAHpAhIGJgLUAAAABgcA3AAAAgAEAAAEWwK8AAcAHgAAcxEjNSEVIREBMhYWFREjETQmIyIGBhURIxEzESc2NvTwAmn+6gInQWM5YEtFMkwpYGAUG2sCZVdX/ZsCFzJmTv7PASZNTihOOv7vArz+xyY0Ov//AA8AAAItAvUEJgHMAAAABwHbAWEAAP//AA8AAAIdAuwEJgHMAAAABwHzAWEAAP//AFsAAAIgAvUEJgKyAAAABwHbAVMAAAACAA//lgKLAuwAHwAjAABFIiY1ETQmIyIGFREjETQ2NjMyFhYVERQWMzI2NxcGBgE1IRUCRk1VOjM0OmAzXT9CWy8qKA4ZCAYRI/24AVJqVUwB7Dw8PDz93QIYRF8xMV9E/igsLQUETwUGAi1PTwAAAv//AAACaAI4AAcACwAAYwEzASMDMwM3NyEXAQEEYAEFYuMh5hgaATgaAjj9yAIF/fuHTU3/////AAACaAMIBiYC3gAAAAYG6Acn/////wAAAmgDCAYmAt4AAAAGBvAHJ/////8AAAJoA3IGJgLeAAAABgdUByf//////zwCaAMIBiYC3gAAACYHAAcAAAYG8Acn/////wAAAmgDcgYmAt4AAAAGB1UHJ/////8AAAJoA34GJgLeAAAABgdWByf/////AAACaANyBiYC3gAAAAYHVwcn/////wAAAmgDCAYmAt4AAAAGBu4HJ/////8AAAJoAwgGJgLeAAAABgbtByf/////AAACegNOBiYC3gAAAAYHWAcn//////88AmgDCAYmAt4AAAAmBwAHAAAGBu0HJ/////8AAAJoA04GJgLeAAAABgdZByf/////AAACaANjBiYC3gAAAAYHWgcn/////wAAAmgDdwYmAt4AAAAGB1sHJ/////8AAAJoAwgGJgLeAAAABgb8Byf/////AAACaAL9BiYC3gAAAAYG4Acn//////88AmgCOAYm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YtxjBGMMYzxjh2OTY59jq2PiY+5kEmQeZEdkU2ReZGlkcWR8ZLZkwWTMZNdlB2USZR1lKGVgZWtldmWBZYxll2WiZa1luGXnZhpmP2aFZr5mxmblZw5nU2d4Z4Rn0mgTaBtoUmiWaJ5oqWi0aNVo6mjyaPppAmklaTFpbGl4aahp3moaai9qOmpFalBqmGqgaqhqs2r1av1rBWsNaxhrI2tIa1NrYmtta6RrrGu0a79r72wlbFxsrWzdbRRtH20qbTJtPW11bYBti22WbaFtrG23bcJt+W4UbkxudW6hbuNu628dby1vW2+Lb6dv2HAgcDdwiHDQcQJxEnE/cW9xi3G8ccRx3HHkcexyHnI2cmZylnKycuZzMnNJc5pz5nQYdDB0XnSOdKp03nTmdP51BnVSdVp1YnVqdXJ1enWCdYp1knWadaJ1x3Xfdgh2N3ZSdoB2wnbYdyJ3ZHdtd3Z3f3eId5F3mnejd6x3tXe+d8d30HfZd+J363f0d/14BngPeBh4Jng2eEZ4VnhmeHZ4hniWeKZ4tnjMeOl49XkBeRF5LnlMeYZ5wXnXefN6HXpAek96XXplem16g3qSeqB6tnrQeul7H3tUe2V7dXt9e4V7jXuVe517pXuxe7l7xXvRe9575nvue/p8AnwKfBJ8L3w7fEd8U3xxfI98m3ynfLd8xnzSfOB86HzwfPh9AH0WfTN9UX2JfcJ9333rffd+A34hfj9+S35Xfmd+dn6Cfo9+oX6zfrN+s36zfrN+s36zfrN+s37tfyN/ZX+5gAGAS4CLgMKA3oEegXGBlYHFgeqCFII5gkmCf4KqgtuDBoMeg0GDboOXg5+DzIPUg+eD9IQMhDiES4RmhHmEjYSmhMGE2oUghUeFV4VrhaWF+4Ylhi2GNYZIhmmGf4aHhtGHK4eqh8GH24fyiA2IJIg+iFSIboiOiK6IxYjciPOJCYkZiTGJR4lUiWmJdomDiZCJnYmwicSJ2InsimWKuorWiz6LoIv6jCWMV4xljHqMh4ybjNqM740MjVWNmY2hje+OPY5Fjk2OWY5mjnSOgo6ejrqOx47Tjt+PBY8Rjx2PKY9Aj0yPWo9mj3OPf4+Lj5+PrI++j9CP24/2kCKQVZB8kIiQlJCgkK2QuZDFkNGQ8pEGkSCRPZFZkW+RlJGxkdaR+pITkh+SLJI5kkeSVpJekmaSbpJ2kn6ShpKOkpaSnpKmkq6StpK+kseS0JLZkuKS65L0kv2TBpMPkxiTIZMqkzOTPJNFk06TV5Ngk2mTcpN7k4STjZOWk5+TqJOxk76TzJPbk+ST+5QclEKUWZRnlHSUhpSYlLOU2JTllQaVLJU+lVeVfJWJlaGVrZW6lcmV1pXjlf2WDJYmljWWRJZTll6WaZZ0ln+Wi5aXlqOWr5a4lsGWypbTltyW5ZbulveW95cDlw+XH5cvl2eXppflmCCYbpi7mQGZMJlmmaWZ3JoSAAEAAAAIAAA2g2LbXw889QADA+gAAAAA1gv+RgAAAADdnHDE/1b+/QX5A/0AAAAGAAIAAAAAAAACSwAoAtz//wLc//8C3P//Atz//wLc//8C3P//Atz//wLc//8C3P//Atz//wLc//8C3P//Atz//wLc//8C3P//Atz//wLc//8C3P//Atz//wLc//8C3P//Atz//wLc//8C3P//Atz//wLc//8EF///BBf//wL1AGkC0wAwAtMAMALTADAC0wAwAtMAMALTADAC0wAwAzoAaQWuAGkDQgAKAzoAaQNCAAoDOgBpAzoAaQVDAGkCngBpAp4AaQKeAGkCngBpAp4AaQKeAGkCngBpAp4AaQKeAGkCngBpAp4AaQKeAGkCngBpAp4AaQKeAGkCngBpAp4AaQKeAGkCngBpAp4AaQKeAGkCngBpAp4AaQJvAB8CbwAfAnsAaQMEADADBAAwAwQAMAMEADADBAAwAwQAMAMEADADJwAwAywAaQM7AAkDLABpAywAaQMsAGkDLABpATYAaQLQAFcBNgBPATb/+AE2/+gBNv+uATYACwE2AA8BNgBgATYAZwE2/+QBNgA/ATb/+AE2ABYBNgBOATb/8wIB//cCAf/3As8AaQLPAGkCzwBpAlIAaQRTAGkCUgBPAlIAaQJSAGkCUgBpAlIAaQNtAGkCUgBpAlkACAO7AGkDuwBpAywAaQUtAGkDLABpAywAaQMsAGkDLABpAywAaQMsAGkERwBpAywAaQMsAGkDSAAwA0gAMANIADADSAAwA0gAMANIADADSAAwA0gAMANIADADSAAwA0gAMANIADADSAAwA0gAMANIADADSAAwA0gAMANIADADSAAwA0gAMANIADADSAAwA0gAMANIADADSAAwA0gAMANIADADSAAwA0gAMANIADADSAAwA0gAMANIADADSAAwBGYAMALSAGkC0gBpA0gAMALXAGkC1wBpAtcAaQLXAGkC1wBpAtcAaQLXAGkC1wBpAm0AKQJtACkCbQApAQIAUAJtACkCbQApAm0AKQJtACkCbQApAm0AKQJtACkCbQApAvsAYwMxADACSwAEAksABAJLAAQCSwAEAksABAJLAAQCSwAEAxcAYwMXAGMDFwBjAxcAYwMXAGMDFwBjAxcAYwMXAGMDFwBjAxcAYwMeAGMDHgBjAx4AYwMeAGMDHgBjAx4AYwMXAGMDFwBjAxcAYwMXAGMDFwBjAxcAYwMXAGMDFwBjAsj//wRmACAEZgAgBGYAIARmACAEZgAgAqEADQKH//wCh//8Aof//AKH//wCh//8Aof//AKH//wCh//8Aof//AKH//wCkQArApEAKwKRACsCkQArApEAKwLQAFcDIABjAyAAYwMgAGMDIABjAyAAYwMgAGMDIABjAyAAYwMgAGMDIABjAyAAYwMgAGMDIABjAyAAYwMgAGMDIABjAyAAYwMgAGMDIABjAyAAYwMgAGMDIABjAyAAYwMgAGMDIABjAyAAYwQyAFoEMgBaBa4AaQVNAGkChAAzAoQAMwKEADMChAAzAoQAMwKEADMChAAzAoQAMwKEADMChAAzAoQAMwKEADMChAAzAoQAMwKEADMChAAzAoQAMwKEADMChAAzAoQAMwKEADMChAAzAoQAMwJeAGMDBAAwAwQAMAMEADADBAAwAwQAMAMEADADBAAwAywAMAHIACsC0ABXAcgAKwLQAFcByAArAcgAKwHI//cByAArAcgAKwHIACsByAArAcgAKwHIACsByAArAcgAKwHIACsByAArAf//9wH///cEbgBpBMsAaQTLAGkDHgBpBR0AaQMeAGkDHgBpAx4AaQMeAGkDHgBpAx4AaQQ6AGkDHgBpAx4AaQNIADADMQBFAlb//AJW//wCVv/8Alb//AJW//wCVv/8Alb//AMaAGMDGgBjAxoAYwMaAGMDGgBjAxoAYwMaAGMDGgBjAxoAYwMaAGMDGgBjAxoAYwMaAGMDGgBjAxoAYwMaAGMDGgBjAxoAYwMaAGMDGgBjAxoAYwMaAGMDGgBjAxoAYwSmAGMEpgBjBKYAYwSmAGMEpgBjAxMAXgMTAF4DEwBeAxMAXgMTAF4DEwBeAxMAXgMTAF4DEwBeAxMAXgKbADACmwAwApsAMAKbADACmwAwAlYAMgJWADICVgAyAlYAMgJWADICVgAyAlYAMgJWADICVgAyAlYAMgJWADICVgAyAlYAMgJWADICVgAyAlYAMgJWADICVgAyAlYAMgJWADICVgAyAlYAMgJWADICVgAyAlYAMgJWADID3QAyA90AMgKqAFsCOwAqAjsAKgI7ACoCOwAqAjsAKgI7ACoCOwAqAqoAKgKAACoCqgAqAqoAKgKqACoCqgAqBLsAKgJkACoCZAAqAmQAKgJkACoCZAAqAmQAKgJkACoCZAAqAmQAKgJkACoCZAAqAmQAKgJkACoCZAAqAmQAKgJkACoCZAAqAmQAKgJkACoCZAAqAmQAKgJkACoCZAAqAmQAKgIP/+wCD//sAWEADwKyACoCsgAqArIAKgKyACoCsgAqArIAKgKyACoCugAqAqkAWwKpAAACqQBbAqn/2QKp/9kCqQBbARcASwEXAFsBFwBAARcAAgEX//IBF/+eARcAEwEX//8BFwBQARcASwEX/9QBFwAwARcAAgIyAEsBFwAGARcAPQEX//wBHP+kARz/pAEc/6QCaABbAmj/2QJoAFsCXgBbARcAWwEXAEABFwBbARcAWAFZAFsBFwBYAjIAWwEX/+gBJv/5BCEAWwQhAFsCqQBbAqkAWwLYAAICqQBbAqkAWwKpAFsCqQBbAqkAWwPEAFsCqQBbAqkAWwJ7ACoCewAqAnsAKgJ7ACoCewAqAnsAKgJ7ACoCewAqAnsAKgJ7ACoCewAqAnsAKgJ7ACoCewAqAnsAKgJ7ACoCewAqAnsAKgJ7ACoCewAqAnsAKgJ/ACoCewAqAnsAKgJ7ACoCewAqAnsAKgJ7ACoCewAqAnsAKgJ7ACoCewAqAnsAKgJ7ACoEKwAqAqoAWwKqAFsCqgAqAZoAWwGaAFsBmgA3AZoAWAGa//wBmgBYAZoARwGa/+gB9QAYAfUAGAH1ABgA/wBQAfUAGAH1ABgB9QAYAfUAGAH1ABgB9QAYAfUAGAH1ABgCpABbATIAGQGeAA8BqAAUAZ4ADwGeAA8BngAPAZ4ACQGeAA8BngAPAqUAVgKlAFYCpQBWAqUAVgKlAFYCpQBWAqUAVgKlAFYCpQBWAqUAVgKtAFYCrQBWAq0AVgKtAFYCrQBWAq0AVgKlAFYCpQBWAqUAVgKlAFYCpQBWAqUAVgKlAFYCpQBWAi///gODAAYDgwAGA4MABgODAAYDgwAGAigADgIv/+oCL//qAi//6gIv/+oCL//qAi//6gIv/+oCL//qAi//6gIv/+oCCQAoAgkAKAIJACgCCQAoAgkAKAIyAEgCigBbAqoAKgKqACoCqgAqAqoAKgKqACoCqgAqAqoAKgKqACoCqgAqAqoAKgKqACoCqgAqAqoAKgKqACoCqgAqAqoAKgKqACoCqgAqAqoAKgKqACoCqgAqAqoAKgKqACoCqgAqAqoAKgKqACoD3QAyA90AMgS9ACoCZAAqAmQAKgJkACoCZAAqAmQAKgJkACoCZAAqAmQAKgJkACoCZAAqAmQAKgJkACoCZAAqAmQAKgJkACoCZAAqAmQAKgJkACoCZAAqAmQAKgJkACoCZAAqAmQAKgJkACoBUwBbAUEAWwFBAEABQQBbAUEAWwFtAFsBQQBbAjUAWwFBACkBQf/xBDoAKgGLAFYBlQAMAYsAVgGLAFYBiwBWAYv/9gGLAFYBiwBIA9kAVgPZAFYD2QBWA9kAVgPZAFYCpQBUAqUAVAKlAFQCpQBUAqUAVAKlAFQCpQBUAqUAVAKlAFQCpQBUAhMALQITAC0CEwAtAhMALQITAC0EsQAEAngADwJ4AA8CagBbAosADwJn//8CZ///Amf//wJn//8CZ///Amf//wJn//8CZ///Amf//wJn//8CZ///Amf//wJn//8CZ///Amf//wJn//8CZ///Amf//wJn//8CZ///Amf//wJn//8CZ///Amf//wJn//8CZ///A2z//wNs//8ChABhAmEALAJhACwCYQAsAmEALAJhACwCYQAsAmEALAK+AGEC0gAgAr4AYQLSACACvgBhAr4AYQTOAGECOgBhAjoAYQI6AGECOgBhAjoAYQI6AGECOgBhAjoAYQI6AGECOgBhAjoAYQI6AEMCOgBhAjoAYQI6AGECOgBhAjoAYQI6AGECOgBhAjoAYQI6AGECOgBhAjoAYQKcACwCMAAlAjAAJQIgAGECjgAsAo4ALAKOACwCjgAsAo4ALAKOACwCjgAsAq8ALAK7AGEC4wAiArsAYQK7AGECuwBhArsAYQEiAGEBIgBhASIARQJQAEEBIgAHASL/9wEi/6MBIgAYASIABQEiAFYBIgBdASL/2gEiADUBIgAHAm8ATAEiAAwBIgBDASIAAgHB//wBwf/8AmwAYQJsAGECbABhAmwAYQH7AGEB+wBGAfsAYQH7AGEB+wBhAfsAYQO8AGEB+wBhAfv/9wMyAGEDMgBhArsAYQK7AGECuwBhArsAYQK7AGECuwBhArsAYQR8AGECuwBhArsAYQLCACwCwgAsAsIALALCACwCwgAsAsIALALCACwCwgAsAsIALALCACwCwgAsAsIALALCACwCwgAsAsIALALCACwCwgAsAsIALALCACwCwgAsAsIALALCACwCwgAsAsIALALCACwCwgAsAsIALALCACwCwgAsAsIALALCACwCwgAsAsIALALCACwDqwAsAm8AYQJvAGECwgAsAnYAYQJ2AGECdgBhAnYAYQJ2AFQCdgBhAnYAYQJ2AGECEwAlAhMAJQITACUA/wBQAhMAJQITACUCEwAlAhMAJQITACUCEwAlAhMAJQITACUB7QAEAe0ABAHtAAQB7QAEAe0ABAHtAAQB7QAEAe0ABAKoAFsCqABbAqgAWwKoAFsCqABbAqgAWwKoAFsCqABbAqgAWwKoAFsCsABbArAAWwKwAFsCsABbArAAWwKwAFsCqABbAqgAWwKoAFsCqABbAqgAWwKoAFsCqABbAqgAWwJpAAgDvQAiA70AIgO9ACIDvQAiA70AIgI8AAwCOQACAjkAAgI5AAICOQACAjkAAgI5AAICOQACAjkAAgI5AAICOQACAisAKQIrACkCKwApAisAKQIrACkCrwBbAq8AWwKvAFsCrwBbAq8AWwKvAFsCrwBbAq8AWwKvAFsCrwBbAq8AWwKvAFsCrwBbAq8AWwKvAFsCrwBbAq8AWwKvAFsCrwBbAq8AWwKvAFsCrwBbAq8AWwKvAFsCrwBbAq8AWwOZAFUDmQBVBOgAYQInACoCJwAqAicAKgInACoCJwAqAicAKgInACoCJwAqAicAKgInACoCJwAqAicAKgInACoCJwAqAicAKgInACoCJwAqAicAKgInACoCJwAqAicAKgInACoCJwAqApwAOQIIAFsCjgAsAo4ALAKOACwCjgAsAo4ALAKOACwCjgAsArQALAGqADkBqgA5AaoAOQJvAEEBqgA5AaoAOQGq/+gBqgA5AaoAOQGqADkBqgAfAaoAOQGqADkCbwBMAaoAOQGqADkBqgA5AcH//AHB//wDvABhBAAAYQQAAGECrgBhAq4AYQKuAGECrgBhAq4AYQKuAGECrgBhBG8AYQKuAGECrgBhAsIALAH3//wB9//8Aff//AH3//wB9//8Aff//AH3//wB9//8Aq4AWwKuAFsCrgBbAq4AWwKuAFsCrgBbAq4AWwKuAFsCrgBbAq4AWwK3AFsCtwBbArcAWwK3AFsCtwBbArcAWwKuAFsCrgBbAq4AWwKuAFsCrgBbAq4AWwKuAFsCrgBbA/8AWwP/AFsD/wBbA/8AWwP/AFsCowBWAqMAVgKjAFYCowBWAqMAVgKjAFYCowBWAqMAVgKjAFYCowBWAisAKQIrACkCKwApAisAKQIrACkBlAAlAaIAIAL2AAwC2wBtAusAbQJCAG0CQgBtAkUAbQMkAA0CmQBtApkAbQKZAG0EBQATAoIAIAM3AG0DNwBtAzcAbQNUAG0CxwBtAscAbQMWAA0DwwBtAzQAbQNQADMDNQBtAsoAbQLOADQCWwANArMAEAKzABADngAtApwAEQLgADYDPQBtBEcAbQRhAG0DJwBtAskAbQM8AA0D4QBtBKMADQScAG0CfAAxAsQANQLDAB0BPQBtATYACwIcABMDSgANBEsAbQLbADoDQQAOAysAEwOEABIDUAAzAvkADgJqAB4CvwBtBCsAEwKCACAC8wBtAuQAbQLdACMDOwANA08AbQQ/AG0DUABtA84AOQLOADQCWwANApsABwKbAAcCwQARA84ADgL7ADYC4AA1AuAAbQMlAG0D3QAdA90AHQE+AG0EBQATAsoAbQMvAG0DUABtAtwAMwPoAG0C9gAMAvYADAQWAAYCmQBtAzcAKQM3ACkEBQATAoIAIAJvAB8DNwBtAzcAbQNQADMDUAAzA1AAMwLDAB0CswAQArMAEAKzABAC4AA2AkIAbQPhAG0CawAdAqAADgKsABoCggA5AxcADANWADMEPQAVAuMAHwLdAG0DMP+0AzEADQMZAA4C5QANA50AMQJPAG0CggAgAs4ANALOADQDIABjA0QAHgKEADMChAAzAoQAMwMaAGMDGgBjAxoAYwMaAGMDFgAgAs0AXAJ3AAwDEwBeAxMAXgOfADICzABfA2gADgPhAF8EnwAMBIwAbQH///cDOwATAncADAMgAGMDIABjBDIAWgKEADMDMQBFAzEARQMaAGMDGgBjAxMAXgMTAF4DEwBeA+EAXwNIADAC7wAaAk0AMAKWAD4CZgBdAegAXQHoAF0B0gBdApgACAJ0ACwCdwAsAnQALANRAA0CIAAcArYAXQK2AF0CtgBdAswAXQJWAF0CVgBdAoEABQMeAF0CqQBdAoEALAKlAF0CsABeAjsALAHtAAQCO//wAjv/8AMlACsCHQAJAmEAKgKyAF0DrQBdA60AXQKGAF0CPwBdAn8ABAMnAF0DpQAFA7gAXQIYACsCQQAsAj8AGAEbAE0BFwATARz/ogKi/9wDbABdAmQAMAKj//YCZQAAAsAADwKKACwCVAAFAgQAKwJZAF0DcgANAiAAHAJWAF0CZgBbAlUAAAKeAAQCvQBdA3YAXQKlAF0DJgAvAjsALAHtAAQCPgAGAj4ABgIdAAkDAwAFAnoAKgJhACkCogBeArwAXQMDABEDAwARARsAXgNRAA0CVgBdApcABQKvAF0CvgBdAl4AJwM9AF0CTQAwAk0AMAPjADACdwAsAnMAOAJzADgDUQANAiAAHAIP/+wCtgBdArYAXQKBACwCigAsAooALAI/ABgCO//wAjv/8AI7//ACYQAqAegAXQMnAF0B7AANAh0ACwI5ABYCIAA1AoEABQKwAC4DqgAJAl4AFgK7AF4Cqf+lApYABQJ+AEwCIQAuArMAKQNRAA0B7v/3Ap4ATQKeAE0CngBNAlUAXgI8AAUCqQBdAqIAXQQbAF0CYwAsArYATQQbAE4ENABOAkAAUAKcAAUDVwBeAfQAXQIgABwCOwAsAegAXQJuACcBFwAGArMAJwKlAFYEGwBOAqoAKgKzACkCZAAqAmQAKgJkACoCngBNAp4ATQKeAE0CngBNApYARgQbAF0CpQBUAqUAVAJJAFACpQAFAygAUAOtAAgDsgBdAnr//AKqACoCqgAqA90AMgJkACoCZAAqAmQAKgKeAE0CngBNAqUAVAKlAFQCpQBUAygAUAJrABEC3P//A4IACQKqAFsC1P/4Atz//wLPAGkCmwAwAXIACAI+AA4CPAAFAp0AJgI+ABECaQAwAlYAHgKEACwCaQAcAqwAMgFyAAgCPgAGAjwABgKdACYCPgARAmkAMAJWAB4ChAAsAmkAHAK8AD0CvACQArwAPAK8AD4CvAA1ArwAQQK8AEoCvABJArwAOwK8AEECvAA8ArwAkAK8AEcCvAA+ArwANQK8AEECvABKArwASQK8ADsCvABBAa4AHAGuAFEBrgAcAa4AGwGuABYBrgAbAa4AJQGuACQBrgAcAa4AIAGuABwBrgBRAa4AHAGuABsBrgAWAa4AGwGuACUBrgAkAa4AHAGuACABrgAcAa4AUQGuABwBrgAbAa4AFgGuABsBrgAlAa4AJAGuABwBrgAgAa4AHAGuAFEBrgAcAa4AGwGuABYBrgAbAa4AJQGuACQBrgAcAa4AIACu/0IECgBRBAoAUQQKABwECgBRBAoAGwQKAFEECgAbBAoAGwQKACQA4wAuAOMAMADjAC4A4wAuArMALgEMAEUBDABFAj0ACQI9AEUBCwBCAToAQgGQABMCvwAbAWD/5AFg/9oBHwBMAU4ATAFYAH4BYP/kAWD/2gCBAC0BUQBfAVIAIAFfADkBXwATAU0AaQFNABMBZQBpAWYAKgFzAEMBcwAdAWEAcwFhAB0BfwA5AX8AOQH0AAAD6AAAArwALwPoAAABfwA5AfQAAAGTAEMB9AAAA+gAAADjADABoAAwAaAALgGgADAA4wAuAOMAMAH4AC4B+AAiATgALgE4ACIBhwA/ANIAPwIMADgCDAAsAUwAOAFMACwA5wAzAQwARQEMAEUCCgAIAgkARQDjADABnwAwAZ8ALgGfADAA4gAuAOIAMAHcAC4B3QAiASIALgEjACIBhwA/ANIAPwFJACQBSQArArwAAABkAAAA4wAAAQ0AAAENAAAAhgAAAAAAAAENAAAC0wAwAjsAKgLTADACvAAfAm0AKQKqACoDJwAeAcH/pAKXAB4DBAAwAzgAVwKUAB4ChgAeAsgAHgOUAGkDcAAeBmoAaQNLAB4C7gAeAtAAHQKGAB4C0QBMAqoAMwSqAB4Cw//8AR8ATAIaAEwBYP/kAkYAQwJGAEMCRgBrAkYAQwJGAEMCRgBDAkYAQwJGAEMCRgBDAkYAQwJGAEMCRgA6AkYAOgJGAEMCRwBLAkYAJQObACoBj//dA4IACQLc//8DLABpApEAKwMjAEMCqgBbArwASANLACUEugAlAlgAYAJYAHgCWABDAlgAeQJYAGoCWABuAlgAYAJYAG8C2QAyAlgAXwJYAGACWABDAlgAagJYAGACWAAZAlgAGQH0ACoCWABqAlgAagJYAFcCWABzAlgAVwJZADoCWABXAlgAcwJYAFcCWAA6BAoAMAKuAC0CiAATAfQAGgMiADADIgAw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BxEHFgcVBxcHEwbmBugG7QbzBvcG8AbkBuAG+wbxBusG7gRsBG0ElQRoBI0EjASPBJAEkQSKBIsEkgR1BHIEfwSGBGQEZQRmBGcEagRrBG4EbwRwBHEEdASABIEEgwSCBIQEhQSIBIkEhwSOBJMElAUFBQYFBwUIBQsFDAUPBRAFEQUSBRUFIQUiBSQFIwUlBSYFKQUqBSgFLwU0BTUFDQUOBTYFCQUuBS0FMAUxBTIFKwUsBTMFFgUTBSAFJwSWBTcElwU4BJgFOQSZBToEcwUUBNUFdwTWBXgEaQUKBJoFOwSbBTwEnAU9BJ0FPgSeBT8EnwVABKAFQQShBUIEogVDBKMFRAdpB3EEpQVGBKYFRwSnBUgEqAVJBKkFSgSqBUsEqwVMBKwFTQStBU4ErgVPBLAFUQSxBVIEsgSzBVQEtAVVBVYEtQVXBLYFWAS3BVkEuAVaBVMEuQVbBLoFXAS7BV0EvAVeBL0FXwS+BWAEvwVhBMAFYgTBBWMEwgVkBMMFZQTEBWYExQVnBMYFaATHBWkEyAVqBMkFawTKBWwEywVtBMwFbgTNBW8EzgVwBM8FcQTQBXIE0QVzBNIFdATTBXUE1AV2BKQFRQSvBVAE1wV5BNgFegAiAagAKgGvACsBsABBAcYAQAHFADEBtgBNAdMAVAHaAFEB1wBcAeIAcAH4AHIB+gB1Af0AewIDAHwCBAB/AgcAoAIoAKECKQCbAiMAmgIiAKwCNACuAjYAuAJAALkCQQCxAjkAtAI8ALoCQgDCAksAwwJMANsCZADXAmAA4QJqAN4CZwDgAmkA5wJwAPECegASAZgAFAGaAAsBkQANAZMADgGUAA8BlQAMAZIABAGKAAYBjAAHAY0ACAGOAAUBiwA7AcAAPQHCAEMByAAzAbgANQG6ADYBuwA3AbwANAG5AGAB5gBeAeQAjgIWAJACGACFAg0AhwIPAIgCEACJAhEAhgIOAJICGgCUAhwAlQIdAJYCHgCTAhsAywJUAM0CVgDPAlgA0QJaANICWwDTAlwA0AJZAOkCcgDoAnEA6gJzAOwCdQZnBmkGbAZoBm0GPQY7BjwGPgZIBkkGRAZGBkcGRQbOBs8GIgZ3BnsGdAZ1BnoGhQaABngGeQZvBoQGggZ8Bn0GgQW9BbwGrAamBqgGqgauBq8GrQanBqkGqwaaBp4GoAaMBogGoQaUBpMGuQa9BroGvga7Br8GvAbAALICOgAAuAH/hbAEjQAAAAAUAPYAAwABBAkAAACwAAAAAwABBAkAAQAiALAAAwABBAkAAgAOANIAAwABBAkAAwA2AOAAAwABBAkABAAiALAAAwABBAkABQAaARYAAwABBAkABgAiATAAAwABBAkACAAiAVIAAwABBAkACQAiAVIAAwABBAkACwAyAXQAAwABBAkADAAyAXQAAwABBAkADQEgAaYAAwABBAkADgA0AsYAAwABBAkAEAAUAvoAAwABBAkAEQAMAw4AAwABBAkAGQAeAxoAAwABBAkBAAAMAzgAAwABBAkBBQAMAw4AAwABBAkBEwAMA0QAAwABBAkBFAAKA1AAQwBvAHAAeQByAGkAZwBoAHQAIAAyADAAMQAxACAAVABoAGUAIABNAG8AbgB0AHMAZQByAHIAYQB0ACAAUAByAG8AagBlAGMAdAAgAEEAdQB0AGgAbwByAHMAIAAoAGgAdAB0AHAAcwA6AC8ALwBnAGkAdABoAHUAYgAuAGMAbwBtAC8ASgB1AGwAaQBlAHQAYQBVAGwAYQAvAE0AbwBuAHQAcwBlAHIAcgBhAHQAKQBNAG8AbgB0AHMAZQByAHIAYQB0ACAATQBlAGQAaQB1AG0AUgBlAGcAdQBsAGEAcgA4AC4AMAAwADAAOwBVAEwAQQA7AE0AbwBuAHQAcwBlAHIAcgBhAHQALQBNAGUAZABpAHUAbQBWAGUAcgBzAGkAbwBuACAAOAAuADAAMAAwAE0AbwBuAHQAcwBlAHIAcgBhAHQALQBNAGUAZABpAHUAbQBKAHUAbABpAGUAdABhACAAVQBsAGEAbgBvAHYAcwBrAHkAaAB0AHQAcAA6AC8ALwB3AHcAdwAuAHoAawB5AHMAawB5AC4AYwBvAG0ALgBhAHIALwBUAGgAaQBzACAARgBvAG4AdAAgAFMAbwBmAHQAdwBhAHIAZQAgAGkAcwAgAGwAaQBjAGUAbgBzAGUAZAAgAHUAbgBkAGUAcgAgAHQAaABlACAAUwBJAEwAIABPAHAAZQBuACAARgBvAG4AdAAgAEwAaQBjAGUAbgBzAGUALAAgAFYAZQByAHMAaQBvAG4AIAAxAC4AMQAuACAAVABoAGkAcwAgAGwAaQBjAGUAbgBzAGUAIABpAHMAIABhAHYAYQBpAGwAYQBiAGwAZQAgAHcAaQB0AGgAIABhACAARgBBAFEAIABhAHQAOgAgAGgAdAB0AHAAOgAvAC8AcwBjAHIAaQBwAHQAcwAuAHMAaQBsAC4AbwByAGcALwBPAEYATABoAHQAdABwADoALwAvAHMAYwByAGkAcAB0AHMALgBzAGkAbAAuAG8AcgBnAC8ATwBGAEwATQBvAG4AdABzAGUAcgByAGEAdABNAGUAZABpAHUAbQBNAG8AbgB0AHMAZQByAHIAYQB0AFIAbwBtAGEAbgBXAGUAaQBnAGgAdABJAHQAYQBsAGkAYwBSAG8AbQBhAG4AAgAAAAAAAP+cADIAAAAAAAAAAAAAAAAAAAAAAAAAAAd1AAAAJADJAQIBAwEEAQUBBgEHAQgAxwEJAQoBCwEMAQ0BDgBiAQ8ArQEQAREBEgETAGMBFACuAJABFQAlACYA/QD/AGQBFgEXARgAJwEZAOkBGgEbARwBHQEeACgAZQEfASABIQDIASIBIwEkASUBJgEnAMoBKAEpAMsBKgErASwBLQEuAS8BMAExATIAKQAqAPgBMwE0ATUBNgE3ATgAKwE5AToBOwE8AT0ALAE+AMwBPwDNAUAAzgFBAPoBQgDPAUMBRAFFAUYBRwAtAUgALgFJAUoALwFLAUwBTQFOAU8BUAFRAVIA4gAwAVMAMQFUAVUBVgFXAVgBWQFaAVsBXABmADIA0AFdANEBXgFfAWABYQFiAWMAZwFkAWUBZgDTAWcBaAFpAWoBawFsAW0BbgFvAXABcQFyAXMAkQF0AK8BdQF2AXcAsAAzAO0ANAA1AXgBeQF6AXsBfAF9AX4ANgF/AYABgQDkAYIA+wGDAYQBhQGGAYcBiAGJADcBigGLAYwBjQGOAY8AOADUAZABkQDVAZIAaAGTANYBlAGVAZYBlwGYAZkBmgGbAZwBnQGeAZ8BoAGhAaIAOQA6AaMBpAGlAaYAOwA8AOsBpwC7AagBqQGqAasBrAGtAD0BrgDmAa8BsAGxAbIBswG0AbUBtgG3AbgBuQG6AbsBvAG9Ab4BvwHAAcEBwgHDAcQBxQHGAccByAHJAcoBywHMAc0BzgHPAdAB0QHSAdMB1AHVAdYB1wHYAdkB2gHbAdwB3QHeAd8B4AHhAeIB4wHkAeUB5gHnAegB6QHqAesB7AHtAe4B7wHwAfEB8gHzAfQB9QH2AfcB+AH5AfoB+wH8Af0B/gH/AgACAQICAgMCBAIFAgYCBwIIAgkCCgILAgwCDQIOAg8CEAIRAhICEwIUAhUCFgIXAhgCGQIaAhsCHAIdAh4CHwIgAiECIgIjAiQCJQImAicCKAIpAioCKwIsAi0CLgIvAjACMQIyAjMCNAI1AjYCNwI4AjkCOgI7AjwCPQI+Aj8CQAJBAkICQwJEAkUARABpAkYCRwJIAkkCSgJLAkwAawJNAk4CTwJQAlECUgBsAlMAagJUAlUCVgJXAG4CWABtAKACWQBFAEYA/gEAAG8CWgJbAlwARwDqAl0BAQJeAl8CYABIAHACYQJiAmMAcgJkAmUCZgJnAmgCaQBzAmoCawBxAmwCbQJuAm8CcAJxAnICcwJ0AnUASQBKAPkCdgJ3AngCeQJ6AnsASwJ8An0CfgJ/AoAATADXAHQCgQB2AoIAdwKDAoQChQB1AoYChwKIAokCigKLAE0CjAKNAE4CjgKPApAATwKRApICkwKUApUClgKXAOMAUAKYAFECmQKaApsCnAKdAp4CnwKgAqEAeABSAHkCogB7AqMCpAKlAqYCpwKoAHwCqQKqAqsAegKsAq0CrgKvArACsQKyArMCtAK1ArYCtwK4AKECuQB9AroCuwK8ALEAUwDuAFQAVQK9Ar4CvwLAAsECwgLDAFYCxALFAsYA5QLHAPwCyALJAsoCywLMAIkCzQBXAs4CzwLQAtEC0gLTAtQAWAB+AtUC1gCAAtcAgQLYAH8C2QLaAtsC3ALdAt4C3wLgAuEC4gLjAuQC5QLmAucAWQBaAugC6QLqAusAWwBcAOwC7AC6Au0C7gLvAvAC8QLyAF0C8wDnAvQC9QL2AvcC+AL5AvoC+wL8Av0C/gL/AwADAQMCAwMDBAMFAwYDBwMIAwkDCgMLAwwDDQMOAw8DEAMRAxIDEwMUAxUDFgMXAxgDGQMaAxsDHAMdAx4DHwMgAyEDIgMjAyQDJQMmAycDKAMpAyoDKwMsAy0DLgMvAzADMQMyAzMDNAM1AzYDNwM4AzkDOgM7AzwDPQM+Az8DQANBA0IDQwNEA0UDRgNHA0gDSQNKA0sDTANNA04DTwNQA1EDUgNTA1QAwADBA1UDVgNXA1gDWQNaA1sDXANdA14DXwNgA2EDYgNjA2QDZQNmA2cDaANpA2oDawNsA20DbgNvA3ADcQNyA3MDdAN1A3YDdwN4A3kDegN7A3wDfQN+A38DgAOBA4IDgwOEA4UDhgOHA4gDiQOKA4sDjAONA44DjwOQA5EDkgOTA5QDlQOWA5cDmAOZA5oDmwOcA50DngOfA6ADoQOiA6MDpAOlA6YDpwOoA6kDqgOrA6wDrQOuA68DsAOxA7IDswO0A7UDtgO3A7gDuQO6A7sDvAO9A74DvwPAA8EDwgPDA8QDxQPGA8cDyAPJA8oDywPMA80DzgPPA9AD0QPSA9MD1APVA9YD1wPYA9kD2gPbA9wD3QPeA98D4APhA+ID4wPkA+UD5gPnA+gD6QPqA+sD7APtA+4D7wPwA/ED8gPzA/QD9QP2A/cD+AP5A/oD+wP8A/0D/gP/BAAEAQQCBAMEBAQFBAYEBwQIBAkECgQLBAwEDQQOBA8EEAQRBBIEEwQUBBUEFgQXBBgEGQQaBBsEHAQdBB4EHwQgBCEEIgQjBCQEJQQmBCcEKAQpBCoEKwQsBC0ELgQvBDAEMQQyBDMENAQ1BDYENwQ4BDkEOgQ7BDwEPQQ+BD8EQARBBEIEQwREBEUERgRHBEgESQRKBEsETARNBE4ETwRQBFEEUgRTBFQEVQRWBFcEWARZBFoEWwRcBF0EXgRfBGAEYQRiBGMEZARlBGYEZwRoBGkEagRrBGwEbQRuBG8EcARxBHIEcwR0BHUEdgR3BHgEeQR6BHsEfAR9BH4EfwSABIEEggSDBIQEhQSGBIcEiASJBIoEiwSMBI0EjgSPBJAEkQSSBJMElASVBJYElwSYBJkEmgSbBJwEnQSeBJ8EoAShBKIEowSkBKUEpgSnBKgEqQSqBKsErAStBK4ErwSwBLEEsgSzBLQEtQS2BLcEuAS5BLoEuwS8BL0EvgS/BMAEwQTCBMMExATFBMYExwTIBMkEygTLBMwEzQTOBM8E0ATRBNIE0wTUBNUE1gTXBNgE2QTaAJ0AngTbBNwE3QTeBN8E4AThBOIE4wTkBOUE5gTnBOgE6QTqBOsE7ATtBO4E7wTwBPEE8gTzBPQE9QT2BPcE+AT5BPoE+wT8BP0E/gT/BQAFAQUCBQMFBAUFBQYFBwUIBQkFCgULBQwFDQUOBQ8FEAURBRIFEwUUBRUFFgUXBRgFGQUaBRsFHAUdBR4FHwUgBSEFIgUjBSQFJQUmBScFKAUpBSoFKwUsBS0FLgUvBTAFMQUyBTMFNAU1BTYFNwU4BTkFOgU7BTwFPQU+BT8FQAVBBUIFQwVEBUUFRgVHBUgFSQVKBUsFTAVNBU4FTwVQBVEFUgVTBVQFVQVWBVcFWAVZBVoFWwVcBV0FXgVfBWAFYQViBWMFZAVlBWYFZwVoBWkFagVrBWwFbQVuBW8FcAVxBXIFcwV0BXUFdgV3BXgFeQV6BXsFfAV9BX4FfwWABYEFggWDBYQFhQWGBYcFiAWJBYoFiwWMBY0FjgWPBZAFkQWSBZMFlAWVBZYFlwWYBZkFmgWbBZwFnQWeBZ8FoAWhBaIFowWkBaUFpgWnBagFqQWqBasFrAWtBa4FrwWwBbEFsgWzBbQFtQW2BbcFuAW5BboFuwW8Bb0FvgW/BcAFwQXCBcMFxAXFBcYFxwXIBckFygXLBcwFzQXOBc8F0AXRBdIF0wXUBdUF1gXXBdgF2QXaBdsF3AXdBd4F3wXgBeEF4gXjBeQF5QXmBecF6AXpBeoF6wXsBe0F7gXvBfAF8QXyBfMF9AX1BfYF9wX4BfkF+gX7BfwF/QX+Bf8GAAYBBgIGAwYEBgUGBgYHBggGCQYKBgsGDAYNBg4GDwYQBhEGEgYTBhQGFQYWBhcGGAYZBhoGGwYcBh0GHgYfBiAGIQYiBiMGJAYlBiYGJwYoBikGKgYrBiwGLQYuBi8GMAYxAJsGMgYzABMAFAAVABYAFwAYABkAGgAbABwGNAY1BjYGNwY4BjkGOgY7BjwGPQY+Bj8GQAZBBkIGQwZEBkUGRgZHBkgGSQZKBksGTAZNBk4GTwZQBlEGUgZTBlQGVQZWBlcGWAZZBloGWwZcBl0GXgZfBmAGYQZiBmMGZAZlBmYGZwZoBmkGagZrBmwGbQZuBm8GcAZxBnIGcwZ0BnUGdgZ3BngGeQC8APQGegZ7APUA9gZ8Bn0GfgZ/ABEADwAdAB4AqwAEAKMAIgCiAMMAhwANAAYAEgA/BoAGgQaCBoMGhAaFAAsADABeAGAAPgBABoYGhwaIBokGigaLABAGjACyALMGjQaOBo8AQgaQBpEGkgDEAMUAtAC1ALYAtwCpAKoAvgC/AAUACgaTBpQGlQaWBpcGmAaZBpoGmwacBp0GngafBqAGoQaiBqMGpAalBqYGpwaoBqkGqgarBqwAAwatBq4GrwawBrEAhAayAL0ABwazBrQApgD3BrUGtga3BrgGuQa6BrsGvAa9Br4GvwCFBsAGwQbCAJYGwwbEBsUADgDvAPAAuAAgAI8AIQAfAJUAlACTAKcAYQCkAEEGxgCSAJwGxwbIAJoAmQClBskAmAAIAMYGygbLBswGzQbOBs8G0AbRBtIG0wbUBtUG1gbXBtgG2QC5BtoG2wbcBt0G3gbfBuAG4QbiBuMAIwAJAIgAhgCLAIoAjACDBuQG5QBfAOgG5gCCAMIG5wboBukG6gbrBuwG7QbuBu8G8AbxBvIG8wb0BvUG9gb3BvgG+Qb6BvsG/Ab9Bv4G/wcABwEHAgcDBwQHBQcGBwcHCAcJBwoHCwcMBw0HDgcPBxAHEQcSBxMHFAcVBxYHFwcYBxkHGgcbBxwHHQceBx8HIAchAI0A2wDhAN4A2ACOANwAQwDfANoA4ADdANkHIgcjByQHJQcmBycHKAcpByoHKwcsBy0HLgcvBzAHMQcyBzMHNAc1BzYHNwc4BzkHOgc7BzwHPQc+Bz8HQAdBB0IHQwdEB0UHRgdHB0gHSQdKB0sHTAdNB04HTwdQB1EHUgdTB1QHVQdWB1cHWAdZB1oHWwdcB10HXgdfB2AHYQdiB2MHZAdlB2YHZwdoB2kHagdrB2wHbQduB28HcAdxB3IHcwd0B3UHdgd3B3gHeQd6B3sHfAd9B34GQWJyZXZlB3VuaTFFQUUHdW5pMUVCNgd1bmkxRUIwB3VuaTFFQjIHdW5pMUVCNAd1bmkwMUNEB3VuaTFFQTQHdW5pMUVBQwd1bmkxRUE2B3VuaTFFQTgHdW5pMUVBQQd1bmkwMjAwB3VuaTFFQTAHdW5pMUVBMgd1bmkwMjAyB0FtYWNyb24HQW9nb25lawpBcmluZ2FjdXRlB0FFYWN1dGUHdW5pMUUwOAtDY2lyY3VtZmxleApDZG90YWNjZW50B3VuaTAxQzQGRGNhcm9uBkRjcm9hdAd1bmkxRTBDB3VuaTFFMEUHdW5pMDFDNQZFYnJldmUGRWNhcm9uB3VuaTFFMUMHdW5pMUVCRQd1bmkxRUM2B3VuaTFFQzAHdW5pMUVDMgd1bmkxRUM0B3VuaTAyMDQKRWRvdGFjY2VudAd1bmkxRUI4B3VuaTFFQkEHdW5pMDIwNgdFbWFjcm9uB3VuaTFFMTYHdW5pMUUxNAdFb2dvbmVrB3VuaTFFQkMHdW5pMDFCNwd1bmkwMUVFBkdjYXJvbgtHY2lyY3VtZmxleAd1bmkwMTIyCkdkb3RhY2NlbnQHdW5pMUUyMAd1bmkwMUU0BEhiYXIHdW5pMUUyQQd1bmkwMjFFC0hjaXJjdW1mbGV4B3VuaTFFMjQCSUoGSWJyZXZlB3VuaTAyMDgHdW5pMUUyRQd1bmkxRUNBB3VuaTFFQzgHdW5pMDIwQQdJbWFjcm9uB0lvZ29uZWsGSXRpbGRlC0pjaXJjdW1mbGV4B3VuaTAxRTgHdW5pMDEzNgd1bmkwMUM3BkxhY3V0ZQZMY2Fyb24HdW5pMDEzQgRMZG90B3VuaTFFMzYHdW5pMDFDOAd1bmkxRTNBB3VuaTFFNDIHdW5pMDFDQQZOYWN1dGUGTmNhcm9uB3VuaTAxNDUHdW5pMUU0NAd1bmkxRTQ2A0VuZwd1bmkwMUNCB3VuaTFFNDgGT2JyZXZlB3VuaTFFRDAHdW5pMUVEOAd1bmkxRUQyB3VuaTFFRDQHdW5pMUVENgd1bmkwMjBDB3VuaTAyMkEHdW5pMDIzMAd1bmkxRUNDB3VuaTFFQ0UFT2hvcm4HdW5pMUVEQQd1bmkxRUUyB3VuaTFFREMHdW5pMUVERQd1bmkxRUUwDU9odW5nYXJ1bWxhdXQHdW5pMDIwRQdPbWFjcm9uB3VuaTFFNTIHdW5pMUU1MAd1bmkwMUVBC09zbGFzaGFjdXRlB3VuaTFFNEMHdW5pMUU0RQd1bmkwMjJDBlJhY3V0ZQZSY2Fyb24HdW5pMDE1Ngd1bmkwMjEwB3VuaTFFNUEHdW5pMDIxMgd1bmkxRTVFBlNhY3V0ZQd1bmkxRTY0B3VuaUE3OEIHdW5pMUU2NgtTY2lyY3VtZmxleAd1bmkwMjE4B3VuaTFFNjAHdW5pMUU2Mgd1bmkxRTY4B3VuaTFFOUUHdW5pMDE4RgRUYmFyBlRjYXJvbgd1bmkwMTYyB3VuaTAyMUEHdW5pMUU2Qwd1bmkxRTZFBlVicmV2ZQd1bmkwMUQzB3VuaTAyMTQHdW5pMUVFNAd1bmkxRUU2BVVob3JuB3VuaTFFRTgHdW5pMUVGMAd1bmkxRUVBB3VuaTFFRUMHdW5pMUVFRQ1VaHVuZ2FydW1sYXV0B3VuaTAyMTYHVW1hY3Jvbgd1bmkxRTdBB1VvZ29uZWsFVXJpbmcGVXRpbGRlB3VuaTFFNzgGV2FjdXRlC1djaXJjdW1mbGV4CVdkaWVyZXNpcwZXZ3JhdmULWWNpcmN1bWZsZXgHdW5pMUU4RQd1bmkxRUY0BllncmF2ZQd1bmkxRUY2B3VuaTAyMzIHdW5pMUVGOAZaYWN1dGUKWmRvdGFjY2VudAd1bmkxRTkyEElhY3V0ZV9KLmxvY2xOTEQGQS5zczAxC0FhY3V0ZS5zczAxC0FicmV2ZS5zczAxDHVuaTFFQUUuc3MwMQx1bmkxRUI2LnNzMDEMdW5pMUVCMC5zczAxDHVuaTFFQjIuc3MwMQx1bmkxRUI0LnNzMDEMdW5pMDFDRC5zczAxEEFjaXJjdW1mbGV4LnNzMDEMdW5pMUVBNC5zczAxDHVuaTFFQUMuc3MwMQx1bmkxRUE2LnNzMDEMdW5pMUVBOC5zczAxDHVuaTFFQUEuc3MwMQx1bmkwMjAwLnNzMDEOQWRpZXJlc2lzLnNzMDEMdW5pMUVBMC5zczAxC0FncmF2ZS5zczAxDHVuaTFFQTIuc3MwMQx1bmkwMjAyLnNzMDEMQW1hY3Jvbi5zczAxDEFvZ29uZWsuc3MwMQpBcmluZy5zczAxD0FyaW5nYWN1dGUuc3MwMQtBdGlsZGUuc3MwMQdBRS5zczAxDEFFYWN1dGUuc3MwMQx1bmkwMUM0LnNzMDEMdW5pMDFDNS5zczAxBkUuc3MwMQtFYWN1dGUuc3MwMQtFYnJldmUuc3MwMQtFY2Fyb24uc3MwMQx1bmkxRTFDLnNzMDEQRWNpcmN1bWZsZXguc3MwMQx1bmkxRUJFLnNzMDEMdW5pMUVDNi5zczAxDHVuaTFFQzAuc3MwMQx1bmkxRUMyLnNzMDEMdW5pMUVDNC5zczAxDHVuaTAyMDQuc3MwMQ5FZGllcmVzaXMuc3MwMQ9FZG90YWNjZW50LnNzMDEMdW5pMUVCOC5zczAxC0VncmF2ZS5zczAxDHVuaTFFQkEuc3MwMQx1bmkwMjA2LnNzMDEMRW1hY3Jvbi5zczAxDHVuaTFFMTYuc3MwMQx1bmkxRTE0LnNzMDEMRW9nb25lay5zczAxDHVuaTFFQkMuc3MwMQZGLnNzMDEGRy5zczAxC0dicmV2ZS5zczAxC0djYXJvbi5zczAxEEdjaXJjdW1mbGV4LnNzMDEMdW5pMDEyMi5zczAxD0dkb3RhY2NlbnQuc3MwMQx1bmkxRTIwLnNzMDEMdW5pMDFFNC5zczAxBkkuc3MwMQdJSi5zczAxC0lhY3V0ZS5zczAxFUlhY3V0ZV9KLmxvY2xOTEQuc3MwMQtJYnJldmUuc3MwMRBJY2lyY3VtZmxleC5zczAxDHVuaTAyMDguc3MwMQ5JZGllcmVzaXMuc3MwMQx1bmkxRTJFLnNzMDEPSWRvdGFjY2VudC5zczAxDHVuaTFFQ0Euc3MwMQtJZ3JhdmUuc3MwMQx1bmkxRUM4LnNzMDEMdW5pMDIwQS5zczAxDEltYWNyb24uc3MwMQxJb2dvbmVrLnNzMDELSXRpbGRlLnNzMDEGSi5zczAxEEpjaXJjdW1mbGV4LnNzMDEMdW5pMDFDNy5zczAxBk0uc3MwMQx1bmkxRTQyLnNzMDEGTi5zczAxDHVuaTAxQ0Euc3MwMQtOYWN1dGUuc3MwMQtOY2Fyb24uc3MwMQx1bmkwMTQ1LnNzMDEMdW5pMUU0NC5zczAxDHVuaTFFNDYuc3MwMQhFbmcuc3MwMQx1bmkwMUNCLnNzMDEMdW5pMUU0OC5zczAxC050aWxkZS5zczAxBlEuc3MwMQx1bmkwMThGLnNzMDEGVC5zczAxCVRiYXIuc3MwMQtUY2Fyb24uc3MwMQx1bmkwMTYyLnNzMDEMdW5pMDIxQS5zczAxDHVuaTFFNkMuc3MwMQx1bmkxRTZFLnNzMDEGVS5zczAxC1VhY3V0ZS5zczAxC1VicmV2ZS5zczAxDHVuaTAxRDMuc3MwMRBVY2lyY3VtZmxleC5zczAxDHVuaTAyMTQuc3MwMQ5VZGllcmVzaXMuc3MwMQx1bmkxRUU0LnNzMDELVWdyYXZlLnNzMDEMdW5pMUVFNi5zczAxClVob3JuLnNzMDEMdW5pMUVFOC5zczAxDHVuaTFFRjAuc3MwMQx1bmkxRUVBLnNzMDEMdW5pMUVFQy5zczAxDHVuaTFFRUUuc3MwMRJVaHVuZ2FydW1sYXV0LnNzMDEMdW5pMDIxNi5zczAxDFVtYWNyb24uc3MwMQx1bmkxRTdBLnNzMDEMVW9nb25lay5zczAxClVyaW5nLnNzMDELVXRpbGRlLnNzMDEMdW5pMUU3OC5zczAxBlcuc3MwMQtXYWN1dGUuc3MwMRBXY2lyY3VtZmxleC5zczAxDldkaWVyZXNpcy5zczAxC1dncmF2ZS5zczAxBlkuc3MwMQtZYWN1dGUuc3MwMRBZY2lyY3VtZmxleC5zczAxDllkaWVyZXNpcy5zczAxDHVuaTFFOEUuc3MwMQx1bmkxRUY0LnNzMDELWWdyYXZlLnNzMDEMdW5pMUVGNi5zczAxDHVuaTAyMzIuc3MwMQx1bmkxRUY4LnNzMDEGWi5zczAxC1phY3V0ZS5zczAxC1pjYXJvbi5zczAxD1pkb3RhY2NlbnQuc3MwMQx1bmkxRTkyLnNzMDEGYWJyZXZlB3VuaTFFQUYHdW5pMUVCNwd1bmkxRUIxB3VuaTFFQjMHdW5pMUVCNQd1bmkwMUNFB3VuaTFFQTUHdW5pMUVBRAd1bmkxRUE3B3VuaTFFQTkHdW5pMUVBQgd1bmkwMjAxB3VuaTFFQTEHdW5pMUVBMwd1bmkwMjAzB2FtYWNyb24HYW9nb25lawphcmluZ2FjdXRlB2FlYWN1dGUHdW5pMUUwOQtjY2lyY3VtZmxleApjZG90YWNjZW50BmRjYXJvbgd1bmkxRTBEB3VuaTFFMEYHdW5pMDFDNgZlYnJldmUGZWNhcm9uB3VuaTFFMUQHdW5pMUVCRgd1bmkxRUM3B3VuaTFFQzEHdW5pMUVDMwd1bmkxRUM1B3VuaTAyMDUKZWRvdGFjY2VudAd1bmkxRUI5B3VuaTFFQkIHdW5pMDIwNwdlbWFjcm9uB3VuaTFFMTcHdW5pMUUxNQdlb2dvbmVrB3VuaTFFQkQHdW5pMDI1OQd1bmkwMjkyB3VuaTAxRUYGZ2Nhcm9uC2djaXJjdW1mbGV4B3VuaTAxMjMKZ2RvdGFjY2VudAd1bmkxRTIxB3VuaTAxRTUEaGJhcgd1bmkxRTJCB3VuaTAyMUYLaGNpcmN1bWZsZXgHdW5pMUUyNQZpYnJldmUHdW5pMDIwOQd1bmkxRTJGCWkubG9jbFRSSwd1bmkxRUNCB3VuaTFFQzkHdW5pMDIwQgJpagdpbWFjcm9uB2lvZ29uZWsGaXRpbGRlB3VuaTAyMzcLamNpcmN1bWZsZXgHdW5pMDFFOQd1bmkwMTM3DGtncmVlbmxhbmRpYwZsYWN1dGUGbGNhcm9uB3VuaTAxM0MEbGRvdAd1bmkxRTM3B3VuaTAxQzkHdW5pMUUzQgd1bmkxRTQzBm5hY3V0ZQtuYXBvc3Ryb3BoZQZuY2Fyb24HdW5pMDE0Ngd1bmkxRTQ1B3VuaTFFNDcDZW5nB3VuaTAxQ0MHdW5pMUU0OQZvYnJldmUHdW5pMUVEMQd1bmkxRUQ5B3VuaTFFRDMHdW5pMUVENQd1bmkxRUQ3B3VuaTAyMEQHdW5pMDIyQgd1bmkwMjMxB3VuaTFFQ0QHdW5pMUVDRgVvaG9ybgd1bmkxRURCB3VuaTFFRTMHdW5pMUVERAd1bmkxRURGB3VuaTFFRTENb2h1bmdhcnVtbGF1dAd1bmkwMjBGB29tYWNyb24HdW5pMUU1Mwd1bmkxRTUxB3VuaTAxRUILb3NsYXNoYWN1dGUHdW5pMUU0RAd1bmkxRTRGB3VuaTAyMkQGcmFjdXRlBnJjYXJvbgd1bmkwMTU3B3VuaTAyMTEHdW5pMUU1Qgd1bmkwMjEzB3VuaTFFNUYGc2FjdXRlB3VuaTFFNjUHdW5pQTc4Qwd1bmkxRTY3C3NjaXJjdW1mbGV4B3VuaTAyMTkHdW5pMUU2MQd1bmkxRTYzB3VuaTFFNjkFbG9uZ3MEdGJhcgZ0Y2Fyb24HdW5pMDE2Mwd1bmkwMjFCB3VuaTFFOTcHdW5pMUU2RAd1bmkxRTZGBnVicmV2ZQd1bmkwMUQ0B3VuaTAyMTUHdW5pMUVFNQd1bmkxRUU3BXVob3JuB3VuaTFFRTkHdW5pMUVGMQd1bmkxRUVCB3VuaTFFRUQHdW5pMUVFRg11aHVuZ2FydW1sYXV0B3VuaTAyMTcHdW1hY3Jvbgd1bmkxRTdCB3VvZ29uZWsFdXJpbmcGdXRpbGRlB3VuaTFFNzkGd2FjdXRlC3djaXJjdW1mbGV4CXdkaWVyZXNpcwZ3Z3JhdmULeWNpcmN1bWZsZXgHdW5pMUU4Rgd1bmkxRUY1BnlncmF2ZQd1bmkxRUY3B3VuaTAyMzMHdW5pMUVGOQZ6YWN1dGUKemRvdGFjY2VudAd1bmkxRTkzEGlhY3V0ZV9qLmxvY2xOTEQNZ2VybWFuZGJscy5zYwZhLnNzMDELYWFjdXRlLnNzMDELYWJyZXZlLnNzMDEMdW5pMUVBRi5zczAxDHVuaTFFQjcuc3MwMQx1bmkxRUIxLnNzMDEMdW5pMUVCMy5zczAxDHVuaTFFQjUuc3MwMQx1bmkwMUNFLnNzMDEQYWNpcmN1bWZsZXguc3MwMQx1bmkxRUE1LnNzMDEMdW5pMUVBRC5zczAxDHVuaTFFQTcuc3MwMQx1bmkxRUE5LnNzMDEMdW5pMUVBQi5zczAxDHVuaTAyMDEuc3MwMQ5hZGllcmVzaXMuc3MwMQx1bmkxRUExLnNzMDELYWdyYXZlLnNzMDEMdW5pMUVBMy5zczAxDHVuaTAyMDMuc3MwMQxhbWFjcm9uLnNzMDEMYW9nb25lay5zczAxCmFyaW5nLnNzMDEPYXJpbmdhY3V0ZS5zczAxC2F0aWxkZS5zczAxB2FlLnNzMDEMYWVhY3V0ZS5zczAxDHVuaTAxQzYuc3MwMQZlLnNzMDELZWFjdXRlLnNzMDELZWJyZXZlLnNzMDELZWNhcm9uLnNzMDEMdW5pMUUxRC5zczAxEGVjaXJjdW1mbGV4LnNzMDEMdW5pMUVCRi5zczAxDHVuaTFFQzcuc3MwMQx1bmkxRUMxLnNzMDEMdW5pMUVDMy5zczAxDHVuaTFFQzUuc3MwMQx1bmkwMjA1LnNzMDEOZWRpZXJlc2lzLnNzMDEPZWRvdGFjY2VudC5zczAxDHVuaTFFQjkuc3MwMQtlZ3JhdmUuc3MwMQx1bmkxRUJCLnNzMDEMdW5pMDIwNy5zczAxDGVtYWNyb24uc3MwMQx1bmkxRTE3LnNzMDEMdW5pMUUxNS5zczAxDGVvZ29uZWsuc3MwMQx1bmkxRUJELnNzMDEMdW5pMDI1OS5zczAxBmYuc3MwMQZsLnNzMDELbGFjdXRlLnNzMDELbGNhcm9uLnNzMDEMdW5pMDEzQy5zczAxCWxkb3Quc3MwMQx1bmkxRTM3LnNzMDEMdW5pMDFDOS5zczAxDHVuaTFFM0Iuc3MwMQtsc2xhc2guc3MwMQdvZS5zczAxBnQuc3MwMQl0YmFyLnNzMDELdGNhcm9uLnNzMDEMdW5pMDE2My5zczAxDHVuaTAyMUIuc3MwMQx1bmkxRTk3LnNzMDEMdW5pMUU2RC5zczAxDHVuaTFFNkYuc3MwMQZ3LnNzMDELd2FjdXRlLnNzMDEQd2NpcmN1bWZsZXguc3MwMQ53ZGllcmVzaXMuc3MwMQt3Z3JhdmUuc3MwMQZ5LnNzMDELeWFjdXRlLnNzMDEQeWNpcmN1bWZsZXguc3MwMQ55ZGllcmVzaXMuc3MwMQx1bmkxRThGLnNzMDEMdW5pMUVGNS5zczAxC3lncmF2ZS5zczAxDHVuaTFFRjcuc3MwMQx1bmkwMjMzLnNzMDEMdW5pMUVGOS5zczAxBnouc3MwMQt6YWN1dGUuc3MwMQt6Y2Fyb24uc3MwMQ96ZG90YWNjZW50LnNzMDEMdW5pMUU5My5zczAxA1RfaAdmaS5zczAxB2ZsLnNzMDEEYS5zYwlhYWN1dGUuc2MJYWJyZXZlLnNjCnVuaTFFQUYuc2MKdW5pMUVCNy5zYwp1bmkxRUIxLnNjCnVuaTFFQjMuc2MKdW5pMUVCNS5zYwp1bmkwMUNFLnNjDmFjaXJjdW1mbGV4LnNjCnVuaTFFQTUuc2MKdW5pMUVBRC5zYwp1bmkxRUE3LnNjCnVuaTFFQTkuc2MKdW5pMUVBQi5zYwp1bmkwMjAxLnNjDGFkaWVyZXNpcy5zYwp1bmkxRUExLnNjCWFncmF2ZS5zYwp1bmkxRUEzLnNjCnVuaTAyMDMuc2MKYW1hY3Jvbi5zYwphb2dvbmVrLnNjCGFyaW5nLnNjDWFyaW5nYWN1dGUuc2MJYXRpbGRlLnNjBWFlLnNjCmFlYWN1dGUuc2MEYi5zYwRjLnNjCWNhY3V0ZS5zYwljY2Fyb24uc2MLY2NlZGlsbGEuc2MKdW5pMUUwOS5zYw5jY2lyY3VtZmxleC5zYw1jZG90YWNjZW50LnNjBGQuc2MGZXRoLnNjCWRjYXJvbi5zYwlkY3JvYXQuc2MKdW5pMUUwRC5zYwp1bmkxRTBGLnNjCnVuaTAxQzYuc2MEZS5zYwllYWN1dGUuc2MJZWJyZXZlLnNjCWVjYXJvbi5zYwp1bmkxRTFELnNjDmVjaXJjdW1mbGV4LnNjCnVuaTFFQkYuc2MKdW5pMUVDNy5zYwp1bmkxRUMxLnNjCnVuaTFFQzMuc2MKdW5pMUVDNS5zYwp1bmkwMjA1LnNjDGVkaWVyZXNpcy5zYw1lZG90YWNjZW50LnNjCnVuaTFFQjkuc2MJZWdyYXZlLnNjCnVuaTFFQkIuc2MKdW5pMDIwNy5zYwplbWFjcm9uLnNjCnVuaTFFMTcuc2MKdW5pMUUxNS5zYwplb2dvbmVrLnNjCnVuaTFFQkQuc2MKdW5pMDI1OS5zYwp1bmkwMjkyLnNjCnVuaTAxRUYuc2MEZi5zYwRnLnNjCWdicmV2ZS5zYwlnY2Fyb24uc2MOZ2NpcmN1bWZsZXguc2MKdW5pMDEyMy5zYw1nZG90YWNjZW50LnNjCnVuaTFFMjEuc2MKdW5pMDFFNS5zYwRoLnNjB2hiYXIuc2MKdW5pMUUyQi5zYwp1bmkwMjFGLnNjDmhjaXJjdW1mbGV4LnNjCnVuaTFFMjUuc2MEaS5zYwtkb3RsZXNzaS5zYwlpYWN1dGUuc2MTaWFjdXRlX2oubG9jbE5MRC5zYwlpYnJldmUuc2MOaWNpcmN1bWZsZXguc2MKdW5pMDIwOS5zYwxpZGllcmVzaXMuc2MKdW5pMUUyRi5zYwxpLmxvY2xUUksuc2MKdW5pMUVDQi5zYwlpZ3JhdmUuc2MKdW5pMUVDOS5zYwp1bmkwMjBCLnNjBWlqLnNjCmltYWNyb24uc2MKaW9nb25lay5zYwlpdGlsZGUuc2MEai5zYw5qY2lyY3VtZmxleC5zYwRrLnNjCnVuaTAxRTkuc2MKdW5pMDEzNy5zYw9rZ3JlZW5sYW5kaWMuc2MEbC5zYwlsYWN1dGUuc2MJbGNhcm9uLnNjCnVuaTAxM0Muc2MHbGRvdC5zYwp1bmkxRTM3LnNjCnVuaTAxQzkuc2MKdW5pMUUzQi5zYwlsc2xhc2guc2MEbS5zYwp1bmkxRTQzLnNjBG4uc2MJbmFjdXRlLnNjCW5jYXJvbi5zYwp1bmkwMTQ2LnNjCnVuaTFFNDUuc2MKdW5pMUU0Ny5zYwZlbmcuc2MKdW5pMDFDQy5zYwp1bmkxRTQ5LnNjCW50aWxkZS5zYwRvLnNjCW9hY3V0ZS5zYwlvYnJldmUuc2MOb2NpcmN1bWZsZXguc2MKdW5pMUVEMS5zYwp1bmkxRUQ5LnNjCnVuaTFFRDMuc2MKdW5pMUVENS5zYwp1bmkxRUQ3LnNjCnVuaTAyMEQuc2MMb2RpZXJlc2lzLnNjCnVuaTAyMkIuc2MKdW5pMDIzMS5zYwp1bmkxRUNELnNjCW9ncmF2ZS5zYwp1bmkxRUNGLnNjCG9ob3JuLnNjCnVuaTFFREIuc2MKdW5pMUVFMy5zYwp1bmkxRURELnNjCnVuaTFFREYuc2MKdW5pMUVFMS5zYxBvaHVuZ2FydW1sYXV0LnNjCnVuaTAyMEYuc2MKb21hY3Jvbi5zYwp1bmkxRTUzLnNjCnVuaTFFNTEuc2MKdW5pMDFFQi5zYwlvc2xhc2guc2MOb3NsYXNoYWN1dGUuc2MJb3RpbGRlLnNjCnVuaTFFNEQuc2MKdW5pMUU0Ri5zYwp1bmkwMjJELnNjBW9lLnNjBHAuc2MIdGhvcm4uc2MEcS5zYwRyLnNjCXJhY3V0ZS5zYwlyY2Fyb24uc2MKdW5pMDE1Ny5zYwp1bmkwMjExLnNjCnVuaTFFNUIuc2MKdW5pMDIxMy5zYwp1bmkxRTVGLnNjBHMuc2MJc2FjdXRlLnNjCnVuaTFFNjUuc2MKdW5pQTc4Qy5zYwlzY2Fyb24uc2MKdW5pMUU2Ny5zYwtzY2VkaWxsYS5zYw5zY2lyY3VtZmxleC5zYwp1bmkwMjE5LnNjCnVuaTFFNjEuc2MKdW5pMUU2My5zYwp1bmkxRTY5LnNjBHQuc2MHdGJhci5zYwl0Y2Fyb24uc2MKdW5pMDE2My5zYwp1bmkwMjFCLnNjCnVuaTFFOTcuc2MKdW5pMUU2RC5zYwp1bmkxRTZGLnNjBHUuc2MJdWFjdXRlLnNjCXVicmV2ZS5zYwp1bmkwMUQ0LnNjDnVjaXJjdW1mbGV4LnNjCnVuaTAyMTUuc2MMdWRpZXJlc2lzLnNjCnVuaTFFRTUuc2MJdWdyYXZlLnNjCnVuaTFFRTcuc2MIdWhvcm4uc2MKdW5pMUVFOS5zYwp1bmkxRUYxLnNjCnVuaTFFRUIuc2MKdW5pMUVFRC5zYwp1bmkxRUVGLnNjEHVodW5nYXJ1bWxhdXQuc2MKdW5pMDIxNy5zYwp1bWFjcm9uLnNjCnVuaTFFN0Iuc2MKdW9nb25lay5zYwh1cmluZy5zYwl1dGlsZGUuc2MKdW5pMUU3OS5zYwR2LnNjBHcuc2MJd2FjdXRlLnNjDndjaXJjdW1mbGV4LnNjDHdkaWVyZXNpcy5zYwl3Z3JhdmUuc2MEeC5zYwR5LnNjCXlhY3V0ZS5zYw55Y2lyY3VtZmxleC5zYwx5ZGllcmVzaXMuc2MKdW5pMUU4Ri5zYwp1bmkxRUY1LnNjCXlncmF2ZS5zYwp1bmkxRUY3LnNjCnVuaTAyMzMuc2MKdW5pMUVGOS5zYwR6LnNjCXphY3V0ZS5zYwl6Y2Fyb24uc2MNemRvdGFjY2VudC5zYwp1bmkxRTkzLnNjCWEuc2Muc3MwMQ5hYWN1dGUuc2Muc3MwMQ5hYnJldmUuc2Muc3MwMQ91bmkxRUFGLnNjLnNzMDEPdW5pMUVCNy5zYy5zczAxD3VuaTFFQjEuc2Muc3MwMQ91bmkxRUIzLnNjLnNzMDEPdW5pMUVCNS5zYy5zczAxD3VuaTAxQ0Uuc2Muc3MwMRNhY2lyY3VtZmxleC5zYy5zczAxD3VuaTFFQTUuc2Muc3MwMQ91bmkxRUFELnNjLnNzMDEPdW5pMUVBNy5zYy5zczAxD3VuaTFFQTkuc2Muc3MwMQ91bmkxRUFCLnNjLnNzMDEPdW5pMDIwMS5zYy5zczAxEWFkaWVyZXNpcy5zYy5zczAxD3VuaTFFQTEuc2Muc3MwMQ5hZ3JhdmUuc2Muc3MwMQ91bmkxRUEzLnNjLnNzMDEPdW5pMDIwMy5zYy5zczAxD2FtYWNyb24uc2Muc3MwMQ9hb2dvbmVrLnNjLnNzMDENYXJpbmcuc2Muc3MwMRJhcmluZ2FjdXRlLnNjLnNzMDEOYXRpbGRlLnNjLnNzMDEKYWUuc2Muc3MwMQ9hZWFjdXRlLnNjLnNzMDEPdW5pMDFDNi5zYy5zczAxCWUuc2Muc3MwMQ5lYWN1dGUuc2Muc3MwMQ5lYnJldmUuc2Muc3MwMQ5lY2Fyb24uc2Muc3MwMQ91bmkxRTFELnNjLnNzMDETZWNpcmN1bWZsZXguc2Muc3MwMQ91bmkxRUJGLnNjLnNzMDEPdW5pMUVDNy5zYy5zczAxD3VuaTFFQzEuc2Muc3MwMQ91bmkxRUMzLnNjLnNzMDEPdW5pMUVDNS5zYy5zczAxD3VuaTAyMDUuc2Muc3MwMRFlZGllcmVzaXMuc2Muc3MwMRJlZG90YWNjZW50LnNjLnNzMDEPdW5pMUVCOS5zYy5zczAxDmVncmF2ZS5zYy5zczAxD3VuaTFFQkIuc2Muc3MwMQ91bmkwMjA3LnNjLnNzMDEPZW1hY3Jvbi5zYy5zczAxD3VuaTFFMTcuc2Muc3MwMQ91bmkxRTE1LnNjLnNzMDEPZW9nb25lay5zYy5zczAxD3VuaTFFQkQuc2Muc3MwMQ91bmkwMjU5LnNjLnNzMDEJZi5zYy5zczAxCWcuc2Muc3MwMQ5nYnJldmUuc2Muc3MwMQ5nY2Fyb24uc2Muc3MwMRNnY2lyY3VtZmxleC5zYy5zczAxD3VuaTAxMjMuc2Muc3MwMRJnZG90YWNjZW50LnNjLnNzMDEPdW5pMUUyMS5zYy5zczAxD3VuaTAxRTUuc2Muc3MwMQlpLnNjLnNzMDEQZG90bGVzc2kuc2Muc3MwMQ5pYWN1dGUuc2Muc3MwMRhpYWN1dGVfai5sb2NsTkxELnNjLnNzMDEOaWJyZXZlLnNjLnNzMDETaWNpcmN1bWZsZXguc2Muc3MwMQ91bmkwMjA5LnNjLnNzMDERaWRpZXJlc2lzLnNjLnNzMDEPdW5pMUUyRi5zYy5zczAxD3VuaTFFQ0Iuc2Muc3MwMQ5pZ3JhdmUuc2Muc3MwMQ91bmkxRUM5LnNjLnNzMDEPdW5pMDIwQi5zYy5zczAxCmlqLnNjLnNzMDEPaW1hY3Jvbi5zYy5zczAxD2lvZ29uZWsuc2Muc3MwMQ5pdGlsZGUuc2Muc3MwMQlqLnNjLnNzMDETamNpcmN1bWZsZXguc2Muc3MwMQ91bmkwMUM5LnNjLnNzMDEJbS5zYy5zczAxD3VuaTFFNDMuc2Muc3MwMQluLnNjLnNzMDEObmFjdXRlLnNjLnNzMDEObmNhcm9uLnNjLnNzMDEPdW5pMDE0Ni5zYy5zczAxD3VuaTFFNDUuc2Muc3MwMQ91bmkxRTQ3LnNjLnNzMDELZW5nLnNjLnNzMDEPdW5pMDFDQy5zYy5zczAxD3VuaTFFNDkuc2Muc3MwMQ5udGlsZGUuc2Muc3MwMQlxLnNjLnNzMDEJdC5zYy5zczAxDHRiYXIuc2Muc3MwMQ50Y2Fyb24uc2Muc3MwMQ91bmkwMTYzLnNjLnNzMDEPdW5pMDIxQi5zYy5zczAxD3VuaTFFOTcuc2Muc3MwMQ91bmkxRTZELnNjLnNzMDEPdW5pMUU2Ri5zYy5zczAxCXUuc2Muc3MwMQ51YWN1dGUuc2Muc3MwMQ51YnJldmUuc2Muc3MwMQ91bmkwMUQ0LnNjLnNzMDETdWNpcmN1bWZsZXguc2Muc3MwMQ91bmkwMjE1LnNjLnNzMDERdWRpZXJlc2lzLnNjLnNzMDEPdW5pMUVFNS5zYy5zczAxDnVncmF2ZS5zYy5zczAxD3VuaTFFRTcuc2Muc3MwMQ11aG9ybi5zYy5zczAxD3VuaTFFRTkuc2Muc3MwMQ91bmkxRUYxLnNjLnNzMDEPdW5pMUVFQi5zYy5zczAxD3VuaTFFRUQuc2Muc3MwMQ91bmkxRUVGLnNjLnNzMDEVdWh1bmdhcnVtbGF1dC5zYy5zczAxD3VuaTAyMTcuc2Muc3MwMQ91bWFjcm9uLnNjLnNzMDEPdW5pMUU3Qi5zYy5zczAxD3VvZ29uZWsuc2Muc3MwMQ11cmluZy5zYy5zczAxDnV0aWxkZS5zYy5zczAxD3VuaTFFNzkuc2Muc3MwMQl3LnNjLnNzMDEOd2FjdXRlLnNjLnNzMDETd2NpcmN1bWZsZXguc2Muc3MwMRF3ZGllcmVzaXMuc2Muc3MwMQ53Z3JhdmUuc2Muc3MwMQl5LnNjLnNzMDEOeWFjdXRlLnNjLnNzMDETeWNpcmN1bWZsZXguc2Muc3MwMRF5ZGllcmVzaXMuc2Muc3MwMQ91bmkxRThGLnNjLnNzMDEPdW5pMUVGNS5zYy5zczAxDnlncmF2ZS5zYy5zczAxD3VuaTFFRjcuc2Muc3MwMQ91bmkwMjMzLnNjLnNzMDEPdW5pMUVGOS5zYy5zczAxCXouc2Muc3MwMQ56YWN1dGUuc2Muc3MwMQ56Y2Fyb24uc2Muc3MwMRJ6ZG90YWNjZW50LnNjLnNzMDEPdW5pMUU5My5zYy5zczAxB3VuaTA0MTAHdW5pMDQxMQd1bmkwNDEyB3VuaTA0MTMHdW5pMDQwMwd1bmkwNDkwB3VuaTA0MTQHdW5pMDQxNQd1bmkwNDAwB3VuaTA0MDEHdW5pMDQxNgd1bmkwNDE3B3VuaTA0MTgHdW5pMDQxOQd1bmkwNDBEB3VuaTA0OEEHdW5pMDQxQQd1bmkwNDBDB3VuaTA0MUIHdW5pMDQxQwd1bmkwNDFEB3VuaTA0MUUHdW5pMDQxRgd1bmkwNDIwB3VuaTA0MjEHdW5pMDQyMgd1bmkwNDIzB3VuaTA0MEUHdW5pMDQyNAd1bmkwNDI1B3VuaTA0MjcHdW5pMDQyNgd1bmkwNDI4B3VuaTA0MjkHdW5pMDQwRgd1bmkwNDJDB3VuaTA0MkEHdW5pMDQyQgd1bmkwNDA5B3VuaTA0MEEHdW5pMDQwNQd1bmkwNDA0B3VuaTA0MkQHdW5pMDQwNgd1bmkwNDA3B3VuaTA0MDgHdW5pMDQwQgd1bmkwNDJFB3VuaTA0MkYHdW5pMDQwMgd1bmkwNDYyB3VuaTA0NkEHdW5pMDQ3Mgd1bmkwNDc0B3VuaTA0OTIHdW5pMDQ5NAd1bmkwNDk2B3VuaTA0OTgHdW5pMDQ5QQd1bmkwNDlDB3VuaTA0OUUHdW5pMDRBMAd1bmkwNEEyB3VuaTA0QTQHdW5pMDUyNAd1bmkwNEE4B3VuaTA0QUEHdW5pMDRBQwlVc3RyYWl0Y3kPVXN0cmFpdHN0cm9rZWN5B3VuaTA0QjIHdW5pMDRCNAd1bmkwNEI2B3VuaTA0QjgHdW5pMDRCQQd1bmkwNTI2B3VuaTA0QkMHdW5pMDRCRQd1bmkwNEMwB3VuaTA0QzEHdW5pMDRDMwd1bmkwNEM3B3VuaTA0QzkHdW5pMDRDQgd1bmkwNENEB3VuaTA0RDAHdW5pMDREMgd1bmkwNEQ0B3VuaTA0RDYHdW5pMDREOAd1bmkwNERBB3VuaTA0REMHdW5pMDRERQd1bmkwNEUwB3VuaTA0RTIHdW5pMDRFNAd1bmkwNEU2B3VuaTA0RTgHdW5pMDRFQQd1bmkwNEVDB3VuaTA0RUUHdW5pMDRGMAd1bmkwNEYyB3VuaTA0RjQHdW5pMDRGNgd1bmkwNEY4B3VuaTA0RkEHdW5pMDRGQwd1bmkwNEZFB3VuaTA1MTAHdW5pMDUxMgd1bmkwNTFBB3VuaTA1MUMHdW5pMDQ4Qwd1bmkwNDhFB3VuaTA1MjgHdW5pMDUyRQ91bmkwNDE0LmxvY2xCR1IPdW5pMDQxQi5sb2NsQkdSD3VuaTA0MjQubG9jbEJHUg91bmkwNDkyLmxvY2xCU0gPdW5pMDQ5OC5sb2NsQlNID3VuaTA0QUEubG9jbEJTSA91bmkwNEFBLmxvY2xDSFUMdW5pMDQxMC5zczAxDHVuaTA0MTQuc3MwMQx1bmkwNDE1LnNzMDEMdW5pMDQwMC5zczAxDHVuaTA0MDEuc3MwMQx1bmkwNDE4LnNzMDEMdW5pMDQxOS5zczAxDHVuaTA0OEEuc3MwMQx1bmkwNDBELnNzMDEMdW5pMDQxQi5zczAxDHVuaTA0MjAuc3MwMQx1bmkwNDIyLnNzMDEMdW5pMDQyMy5zczAxDHVuaTA0MEUuc3MwMQx1bmkwNDI0LnNzMDEMdW5pMDQyQy5zczAxDHVuaTA0MkEuc3MwMQx1bmkwNDJCLnNzMDEMdW5pMDQwOS5zczAxDHVuaTA0MEEuc3MwMQx1bmkwNDA4LnNzMDEMdW5pMDQ2Mi5zczAxDHVuaTA0QUMuc3MwMQx1bmkwNEQwLnNzMDEMdW5pMDREMi5zczAxDHVuaTA0RDQuc3MwMQx1bmkwNEQ2LnNzMDEMdW5pMDREOC5zczAxDHVuaTA0REEuc3MwMQx1bmkwNEUyLnNzMDEMdW5pMDRFNC5zczAxDHVuaTA0RUUuc3MwMQx1bmkwNEYwLnNzMDEMdW5pMDRGMi5zczAxDHVuaTA0Rjguc3MwMQx1bmkwNTFBLnNzMDEMdW5pMDQ4Qy5zczAxB3VuaTA0MzAHdW5pMDQzMQd1bmkwNDMyB3VuaTA0MzMHdW5pMDQ1Mwd1bmkwNDkxB3VuaTA0MzQHdW5pMDQzNQd1bmkwNDUwB3VuaTA0NTEHdW5pMDQzNgd1bmkwNDM3B3VuaTA0MzgHdW5pMDQzOQd1bmkwNDVEB3VuaTA0OEIHdW5pMDQzQQd1bmkwNDVDB3VuaTA0M0IHdW5pMDQzQwd1bmkwNDNEB3VuaTA0M0UHdW5pMDQzRgd1bmkwNDQwB3VuaTA0NDEHdW5pMDQ0Mgd1bmkwNDQzB3VuaTA0NUUHdW5pMDQ0NAd1bmkwNDQ1B3VuaTA0NDcHdW5pMDQ0Ngd1bmkwNDQ4B3VuaTA0NDkHdW5pMDQ1Rgd1bmkwNDRDB3VuaTA0NEEHdW5pMDQ0Qgd1bmkwNDU5B3VuaTA0NUEHdW5pMDQ1NQd1bmkwNDU0B3VuaTA0NEQHdW5pMDQ1Ngd1bmkwNDU3B3VuaTA0NTgHdW5pMDQ1Qgd1bmkwNDRFB3VuaTA0NEYHdW5pMDQ1Mgd1bmkwNDYzB3VuaTA0NkIHdW5pMDQ3Mwd1bmkwNDc1B3VuaTA0OTMHdW5pMDQ5NQd1bmkwNDk3B3VuaTA0OTkHdW5pMDQ5Qgd1bmkwNDlEB3VuaTA0OUYHdW5pMDRBMQd1bmkwNEEzB3VuaTA0QTUHdW5pMDUyNQd1bmkwNEE5B3VuaTA0QUIHdW5pMDRBRAl1c3RyYWl0Y3kPdXN0cmFpdHN0cm9rZWN5B3VuaTA0QjMHdW5pMDRCNQd1bmkwNEI3B3VuaTA0QjkHdW5pMDRCQgd1bmkwNTI3B3VuaTA0QkQHdW5pMDRCRgd1bmkwNENGB3VuaTA0QzIHdW5pMDRDNAd1bmkwNEM2B3VuaTA0QzgHdW5pMDRDQQd1bmkwNENDB3VuaTA0Q0UHdW5pMDREMQd1bmkwNEQzB3VuaTA0RDUHdW5pMDRENwd1bmkwNEQ5B3VuaTA0REIHdW5pMDRERAd1bmkwNERGB3VuaTA0RTEHdW5pMDRFMwd1bmkwNEU1B3VuaTA0RTcHdW5pMDRFOQd1bmkwNEVCB3VuaTA0RUQHdW5pMDRFRgd1bmkwNEYxB3VuaTA0RjMHdW5pMDRGNQd1bmkwNEY3B3VuaTA0RjkHdW5pMDRGQgd1bmkwNEZEB3VuaTA0RkYHdW5pMDUxMQd1bmkwNTEzB3VuaTA1MUIHdW5pMDUxRAd1bmkwNDhEB3VuaTA0OEYHdW5pMDUyOQd1bmkwNTJGD3VuaTA0MzIubG9jbEJHUg91bmkwNDMzLmxvY2xCR1IPdW5pMDQzNC5sb2NsQkdSD3VuaTA0MzYubG9jbEJHUg91bmkwNDM3LmxvY2xCR1IPdW5pMDQzOC5sb2NsQkdSD3VuaTA0MzkubG9jbEJHUg91bmkwNDVELmxvY2xCR1IPdW5pMDQzQS5sb2NsQkdSD3VuaTA0M0IubG9jbEJHUg91bmkwNDNELmxvY2xCR1IPdW5pMDQzRi5sb2NsQkdSD3VuaTA0NDIubG9jbEJHUg91bmkwNDQ3LmxvY2xCR1IPdW5pMDQ0Ni5sb2NsQkdSD3VuaTA0NDgubG9jbEJHUg91bmkwNDQ5LmxvY2xCR1IPdW5pMDQ0Qy5sb2NsQkdSD3VuaTA0NEEubG9jbEJHUg91bmkwNDRFLmxvY2xCR1IPdW5pMDQ5My5sb2NsQlNID3VuaTA0OTkubG9jbEJTSA91bmkwNEFCLmxvY2xDSFUPdW5pMDQ1My5sb2NsTUtED3VuaTA0MzEubG9jbFNSQg91bmkwNDMzLmxvY2xTUkIPdW5pMDQzNC5sb2NsU1JCD3VuaTA0M0YubG9jbFNSQg91bmkwNDQyLmxvY2xTUkIMdW5pMDQzMC5zczAxDHVuaTA0MzQuc3MwMQx1bmkwNDM1LnNzMDEMdW5pMDQ1MC5zczAxDHVuaTA0NTEuc3MwMQx1bmkwNDM4LnNzMDEMdW5pMDQzOS5zczAxDHVuaTA0OEIuc3MwMQx1bmkwNDVELnNzMDEMdW5pMDQ0MC5zczAxDHVuaTA0NDIuc3MwMQx1bmkwNDQzLnNzMDEMdW5pMDQ1RS5zczAxDHVuaTA0NEMuc3MwMQx1bmkwNDRBLnNzMDEMdW5pMDQ0Qi5zczAxDHVuaTA0NTkuc3MwMQx1bmkwNDVBLnNzMDEMdW5pMDQ2My5zczAxDHVuaTA0RDEuc3MwMQx1bmkwNEQzLnNzMDEMdW5pMDRENS5zczAxDHVuaTA0RDcuc3MwMQx1bmkwNEQ5LnNzMDEMdW5pMDREQi5zczAxDHVuaTA0RTMuc3MwMQx1bmkwNEU1LnNzMDEMdW5pMDRFRi5zczAxDHVuaTA0RjEuc3MwMQx1bmkwNEYzLnNzMDEMdW5pMDRGOS5zczAxDHVuaTA0OEQuc3MwMQd1bmkwMzk0B3VuaTAzQTkHdW5pMDNCQwd1bmkyMTJCB3VuaTIxMkEIemVyby5vc2YHb25lLm9zZgd0d28ub3NmCXRocmVlLm9zZghmb3VyLm9zZghmaXZlLm9zZgdzaXgub3NmCXNldmVuLm9zZgllaWdodC5vc2YIbmluZS5vc2YHemVyby50ZgZvbmUudGYGdHdvLnRmCHRocmVlLnRmB2ZvdXIudGYHZml2ZS50ZgZzaXgudGYIc2V2ZW4udGYIZWlnaHQudGYHbmluZS50Zgl6ZXJvLnRvc2YIb25lLnRvc2YIdHdvLnRvc2YKdGhyZWUudG9zZglmb3VyLnRvc2YJZml2ZS50b3NmCHNpeC50b3NmCnNldmVuLnRvc2YKZWlnaHQudG9zZgluaW5lLnRvc2YHdW5pMjA4MAd1bmkyMDgxB3VuaTIwODIHdW5pMjA4Mwd1bmkyMDg0B3VuaTIwODUHdW5pMjA4Ngd1bmkyMDg3B3VuaTIwODgHdW5pMjA4OQl6ZXJvLmRub20Ib25lLmRub20IdHdvLmRub20KdGhyZWUuZG5vbQlmb3VyLmRub20JZml2ZS5kbm9tCHNpeC5kbm9tCnNldmVuLmRub20KZWlnaHQuZG5vbQluaW5lLmRub20JemVyby5udW1yCG9uZS5udW1yCHR3by5udW1yCnRocmVlLm51bXIJZm91ci5udW1yCWZpdmUubnVtcghzaXgubnVtcgpzZXZlbi5udW1yCmVpZ2h0Lm51bXIJbmluZS5udW1yB3VuaTIwNzAHdW5pMDBCOQd1bmkwMEIyB3VuaTAwQjMHdW5pMjA3NAd1bmkyMDc1B3VuaTIwNzYHdW5pMjA3Nwd1bmkyMDc4B3VuaTIwNzkHdW5pMjE1Mwd1bmkyMTU0CW9uZWVpZ2h0aAx0aHJlZWVpZ2h0aHMLZml2ZWVpZ2h0aHMMc2V2ZW5laWdodGhzE3BlcmlvZGNlbnRlcmVkLmNhc2ULYnVsbGV0LmNhc2UbcGVyaW9kY2VudGVyZWQubG9jbENBVC5jYXNlCnNsYXNoLmNhc2UOYmFja3NsYXNoLmNhc2UWcGVyaW9kY2VudGVyZWQubG9jbENBVA5wYXJlbmxlZnQuY2FzZQ9wYXJlbnJpZ2h0LmNhc2UOYnJhY2VsZWZ0LmNhc2UPYnJhY2VyaWdodC5jYXNlEGJyYWNrZXRsZWZ0LmNhc2URYnJhY2tldHJpZ2h0LmNhc2UHdW5pMDBBRApmaWd1cmVkYXNoB3VuaTIwMTUHdW5pMjAxMAtoeXBoZW4uY2FzZQtlbmRhc2guY2FzZQtlbWRhc2guY2FzZRJndWlsbGVtb3RsZWZ0LmNhc2UTZ3VpbGxlbW90cmlnaHQuY2FzZRJndWlsc2luZ2xsZWZ0LmNhc2UTZ3VpbHNpbmdscmlnaHQuY2FzZQlwZXJpb2Quc2MJZXhjbGFtLnNjDWV4Y2xhbWRvd24uc2MLcXVlc3Rpb24uc2MPcXVlc3Rpb25kb3duLnNjEXF1b3Rlc2luZ2xiYXNlLnNjD3F1b3RlZGJsYmFzZS5zYw9xdW90ZWRibGxlZnQuc2MQcXVvdGVkYmxyaWdodC5zYwxxdW90ZWxlZnQuc2MNcXVvdGVyaWdodC5zYxBndWlsbGVtb3RsZWZ0LnNjEWd1aWxsZW1vdHJpZ2h0LnNjEGd1aWxzaW5nbGxlZnQuc2MRZ3VpbHNpbmdscmlnaHQuc2MLcXVvdGVkYmwuc2MOcXVvdGVzaW5nbGUuc2MHdW5pMjdFOAd1bmkyN0U5B3VuaTIwMDcHdW5pMjAwQQd1bmkyMDA4B3VuaTAwQTAHdW5pMjAwOQd1bmkyMDBCAkNSB3VuaTIwQjUNY29sb25tb25ldGFyeQRkb25nBEV1cm8HdW5pMjBCMgd1bmkyMEI0B3VuaTIwQUQEbGlyYQd1bmkyMEJBB3VuaTIwQkMHdW5pMjBBNgZwZXNldGEHdW5pMjBCMQd1bmkyMEJEB3VuaTIwQjkHdW5pMjBCOAd1bmkyMEFFB3VuaTIwQTkHdW5pMjIxOQd1bmkyMDUyB3VuaTIyMTUIZW1wdHlzZXQHdW5pMjEyNgd1bmkyMjA2B3VuaTAwQjUHYXJyb3d1cAd1bmkyMTk3CmFycm93cmlnaHQHdW5pMjE5OAlhcnJvd2Rvd24HdW5pMjE5OQlhcnJvd2xlZnQHdW5pMjE5NglhcnJvd2JvdGgJYXJyb3d1cGRuDGFycm93dXAuY2FzZQ9hcnJvd3JpZ2h0LmNhc2UOYXJyb3dkb3duLmNhc2UOYXJyb3dsZWZ0LmNhc2UHdW5pMjVDNgd1bmkyNUM3CWZpbGxlZGJveAd1bmkyNUExB3RyaWFndXAHdW5pMjVCNgd0cmlhZ2RuB3VuaTI1QzAHdW5pMjVCMwd1bmkyNUI3B3VuaTI1QkQHdW5pMjVDMQZtaW51dGUGc2Vjb25kB3VuaTIxMTMJZXN0aW1hdGVkB3VuaTIxMTYHYXQuY2FzZQx1bmkyMTE2LnNzMDEMYW1wZXJzYW5kLnNjB3VuaTAyQkMHdW5pMDJCQgd1bmkwMkJBB3VuaTAyQzkHdW5pMDJDQgd1bmkwMkI5B3VuaTAyQkYHdW5pMDJCRQd1bmkwMkNBB3VuaTAyQ0MHdW5pMDJDOAd1bmkwMzA4C3VuaTAzMDgwMzAwC3VuaTAzMDgwMzAxC3VuaTAzMDgwMzA0B3VuaTAzMDcLdW5pMDMwNzAzMDQJZ3JhdmVjb21iC3VuaTAzMDAwMzA0CWFjdXRlY29tYgt1bmkwMzAxMDMwNwt1bmkwMzAxMDMwNAd1bmkwMzBCC3VuaTAzMEMuYWx0B3VuaTAzMDIHdW5pMDMwQwt1bmkwMzBDMDMwNwd1bmkwMzA2B3VuaTAzMEELdW5pMDMwQTAzMDEJdGlsZGVjb21iC3VuaTAzMDMwMzA4E3RpbGRlY29tYl9hY3V0ZWNvbWILdW5pMDMwMzAzMDQHdW5pMDMwNAt1bmkwMzA0MDMwOAt1bmkwMzA0MDMwMAt1bmkwMzA0MDMwMQ1ob29rYWJvdmVjb21iB3VuaTAzMEYHdW5pMDMxMQd1bmkwMzEyB3VuaTAzMUIMZG90YmVsb3djb21iB3VuaTAzMjQHdW5pMDMyNgd1bmkwMzI3B3VuaTAzMjgHdW5pMDMyRQd1bmkwMzMxB3VuaTAzMzUHdW5pMDMzNgd1bmkwMzM3B3VuaTAzMzgMdW5pMDMwOC5jYXNlEHVuaTAzMDgwMzAwLmNhc2UQdW5pMDMwODAzMDEuY2FzZRB1bmkwMzA4MDMwNC5jYXNlDHVuaTAzMDcuY2FzZRB1bmkwMzA3MDMwNC5jYXNlDmdyYXZlY29tYi5jYXNlEHVuaTAzMDAwMzA0LmNhc2UOYWN1dGVjb21iLmNhc2UQdW5pMDMwMTAzMDcuY2FzZRB1bmkwMzAxMDMwNC5jYXNlDHVuaTAzMEIuY2FzZQx1bmkwMzAyLmNhc2UMdW5pMDMwQy5jYXNlEHVuaTAzMEMwMzA3LmNhc2UMdW5pMDMwNi5jYXNlDnRpbGRlY29tYi5jYXNlEHVuaTAzMDMwMzA4LmNhc2UYdGlsZGVjb21iX2FjdXRlY29tYi5jYXNlEHVuaTAzMDMwMzA0LmNhc2UMdW5pMDMwNC5jYXNlEHVuaTAzMDQwMzA4LmNhc2UQdW5pMDMwNDAzMDAuY2FzZRB1bmkwMzA0MDMwMS5jYXNlEmhvb2thYm92ZWNvbWIuY2FzZQx1bmkwMzBGLmNhc2UMdW5pMDMxMS5jYXNlDHVuaTAzMzUuY2FzZQx1bmkwMzM3LmNhc2UMdW5pMDMzOC5jYXNlE3VuaTAzMDQubmFycm93LmNhc2UJdW5pMDMwNy5pCXVuaTAzMjguaRB1bmkwMzA4LmxvY2xWSUVUEHVuaTAzMDcubG9jbFZJRVQSZ3JhdmVjb21iLmxvY2xWSUVUEmFjdXRlY29tYi5sb2NsVklFVBB1bmkwMzAyLmxvY2xWSUVUEHVuaTAzMEMubG9jbFZJRVQQdW5pMDMwNi5sb2NsVklFVBJ0aWxkZWNvbWIubG9jbFZJRVQQdW5pMDMwNC5sb2NsVklFVBZob29rYWJvdmVjb21iLmxvY2xWSUVUDnVuaTAzMDgubmFycm93DnVuaTAzMDIubmFycm93DnVuaTAzMDYubmFycm93EHRpbGRlY29tYi5uYXJyb3cOdW5pMDMwNC5uYXJyb3cOdW5pMDMxMS5uYXJyb3cKdW5pMDMzNS5zYwp1bmkwMzM2LnNjCnVuaTAzMzguc2MRdW5pMDMwQy5hbHQuc2hvcnQJdW5pMDMzNS50C2JyZXZlY29tYmN5C2Rlc2NlbmRlcmN5EGJyZXZlY29tYmN5LmNhc2UQZGVzY2VuZGVyY3kuY2FzZRZkZXNjZW5kZXJjeS5jYXNlLnNob3J0EWRlc2NlbmRlcmN5LnNob3J0C3VuaTAzMDYwMzAxC3VuaTAz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AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAANAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD/+gAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA//YAAAAAAAAAAAAAAAAAAAAAAAAAAAAA//YAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD/xAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD/+gAA//UAAAAAAAD/8wAAAAAAAAAAAAAAAAAAAAAAAAAA//v/+//5AAD/6QAAAAAAAP/vAAAAAAAAAAD/5QAA//b/7v/v//YAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAP/4AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAP/2AAAAAAAAAAAAAAAA//MAAAAAAAAAAP/2AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAKAAAAAAAA/8IAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA//kAAAAAAAAAAAAAAAAAAAAAAAAAAAAA//T/8AAAAAD/9AALAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA//kAAP/5AAAAFgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD/+QAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD/9gAA//YAAP/z//MAAAARAAAAAAAA//H/9gAAAAAAAP/sAAAAAAAAAAD/+P/6AAAAFAAAAAD/7v/0//YAAAAA/+r/4gAA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AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABwAAAAD/9gAAAAD/8QAAAAAAAAAAAAD/2AAA/+b/9AAA//8AAP/nAAAAAP/iAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABwAAAAD/awAA/6j/mwAAAAAAAAAA//n/ewAAAAAAAAAAAAD/mwAAAAAAAAAAAAAAAP81AAAAAAAAAAD/mQAAAAAAAAAAAAAAAAAAAAAAAP96AAD/SQAA/2T/qP+iAAAAAAAA/+wAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA/5b/LgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD/2gAAAAAAAAAAAAAAAAAAAAD/ZgAAAAAAAAAAAAAAAAAA//kAAAAAAAAAAAAAAAAAAAAAAAAAAP/6AAAAAAAA/+MAAP/oAAAAAAAAAAAAAAAAAAAAAAAA/+YAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAP/5AAD/2AAAAAAAAAAA/+wAAAAAAAD/2wAAAAAAAAAAAAD/+QAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAP/jAAD/3AAA/+kAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAP/0AAAAAP/GAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD/1wAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAP/0AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA/84AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD/+QAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAP/2AAAAAP/5AAD/5QAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD/7//5//j/9v/v//gAAP/v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AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA/9sACgAAAAAAAAAAAAAAAAAA//YAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD/7P/sAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA//gAAAAAAAD/9AAAAAcAAP/s//b/3///AAAABwAAAAAAAP/f//YACgAA/+3/9gAAAAD//wAA//EAAP/n//QAAAAAAAAAAAAAAAD/+AAAAAf/6f/OAAcAAAAA/+z/7AAAAAAAAAAAAAAAAAAAAAAAAP/0/+IAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAP/sAAD/4gAAAAD/+QAA//YAAAAAAAAAAP/sAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA//P/9AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD/2wAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD/3wAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFwAAAAAAAAAAAAAAAAAAAAAAAAAMAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAUAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAHgAAAAAAAAAAAAAAAAAAAAD/5QAAAAD/zv/sAAAAAP/bAAAAAAAAAAAAFAAAAAAAAAAAAAAAAAAA/4cAAAAA/+wAAAAAAAAAAAAAAB8AAP/lAAAAAAAAAAAAAAAUAAAAAAAhAB4AAAAK/+z/7AAAAAD/7AAA/8f/4gAAAAAAAP/v//kACv/3AAAACgAHAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAoAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA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AAAAAAAAAAAAFAAH/8L/4gAAACoANAARACEAAAAeACUAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD/7wAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACgAAAAAAGwAAAAAAAAAUAAsAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAgAAAAAAAAAAAAAAAAAAAAAAAgAAAAAAAAAAAAAAAAAAP/5AAAADAAAADIAMgAAAAAAAAAAABsAAAAAAAAAAAAuABsACgAAAAAAHQAHAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA/+4AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAoAAAAHAAD/9gAAAAAAAAAUAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAKAAAAAAAAAAAAAAAAAAAAFAAAAAAAAAAAAAAAAAAHAAAAAP/2AAAAGwAAAAAAAAAAAAAAAP/5AAD/+QAAAAAAAAAH//kAAAAbAAAAAP/sAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAoAAAAAAAAAFAAAAAAAFAAAAAAAAAAAAAAAFAAAAAAAAAAAAAAAAAAAAAAAAAAUAAAACgAAAAAAAAAAAAAAAAAAAAAAAAAAABf/9AAHAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADf/2AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACgAAAAAACgAUAAAAAAAAAAAAAAAAAAAAAAAAAAcAEQAAAAAACAAAAAoAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAsAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAgAAAAAAAAAAAAAAAAAAAAAAAAAAAAIAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACAAAAAAAFAAAAAAAFv/tAAAAAAAAAAAAAAAAAAAAAAAKAAj/9gAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAUAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAP/sAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAoAAAAAAAAACgAAAAAAAP/sAAD/9gAIAAAAAAAAAAAAAP/YAAAABgAAAAD/9gAAAAAAAAAA/+wAAP/iAAAAAAAAAAAAAP/2AAAARAAAAAAACgAUAAAAAAAAACj/yQAAAAgAAAAAAAAAAAAAAAAAAAAUAAoAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAGQAAAAUAAAAAP/sAAoAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAALAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD/7AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAIAAAAAAARAAAAAAAb/+0AAAAAAAAAAAAAAAAAAAAAAAoACAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD/9gAAAAAACAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA/+wAAAAAAAAAAAAAAAAAAAAAAAcAAAAAAAAAAAAAAAAAAAABAAD/+AAA//YAAP/0AAAAAAAAAAAAAAAA//j/+AAAAAAAAAAAAAAAAAAAAAAAAAAA//kAAAAAAAAAAAAAAAAAAAAAAAAAAP/2/9X/9gAAAAAAAP/2AAAAAAAAAAAAAAAAAAAAAAAAAAD/8wAA//YAAAAAAAAAAAAAAAAAAAAAAAAAAP/0AAAAAAAAAAAAAP/7AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA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/+wAAAAAAAD/6gAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAP/qAAD/7v/V/+wAAAAAAAAAAP/5AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAP/sAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA//cAAAAAAAAAAAAAAAAAAP/5AAAAAAAAAAAAAP/5AAAAAAAAAAAAAAAAAAAAAP/zAAD/1wAAAAAAAAAA//QAAAAAAAD/7QAAAAAAAAAAAAAAAAAAAAAAAP/hAAD/7QAAAAAAAAAA/+kAAAAAACb/3//0AAAAAAAA//AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD/6QAA//P/yf/rAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA/98AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAP/5AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFAAAAAAAAAAAAAAAAAAAAAAAFAAAAAAAAAAAAAAAHgAoAA4ADgAAAAAAAAAAAAD/+f/5AAAAAAAAAAAAAAAAAAgAAAAAAAAAAAAAAAAAAAAAAAgAAAAAAAAAAAAAAAAAAP/v//4AAAAAAB4ACgAAAAAACwAA//kAAAAAAAAAAAAI//4ACAAAAAAADQAAADwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA/+IAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAP/sAAAAAAAAAAAAAAAA//kAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD/yP/cAAAAAAAMABcAAAAAAAAAAAAAAAD/7P/sAAAABwAAAAAAAAAAAAAAAAAAAAAAAAAA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APEA1ADzAScA4wEpATEBGAEzATMBIQE1AUEBIgFEAU0BLwFPAVEBOQFTAaIBPAGkAasBjAGtAcsBlAHVAesBswHvAgQBygIGAjkB4AI7AkICFAJFAmoCHAJsAnoCQgJ9ApYCUQKZArECawKzAtgChALaAtwCqgLeAyICrQMkAzQC8gM2Az8DAwNBA0MDDQNGA1oDEANcA3kDJQN7A4EDQwOFA48DSgORA7QDVQO2A7gDeQO6A74DfAPABAADgQQCBAMDwgQFBA8DxAQRBBkDzwQbBB0D2AQgBCgD2wQqBCwD5AQuBGED5wRkBGQEGwRmBGgEHARrBHoEHwR8BH0ELwSBBIIEMQSEBIUEMwSHBIcENQSJBIoENgSMBI0EOASPBJAEOgSWBJYEPASYBJgEPQSaBJoEPgScBJ4EPwSgBKQEQgSmBLMERwS2BLYEVQS4BLwEVgS/BMAEWwTCBMYEXQTLBM0EYgTVBNUEZQTYBNgEZgTcBOAEZwTiBOkEbATrBO0EdAT1BQEEdwUEBQUEhAUHBQkEhgUMBSAEiQUiBSMEngUlBSYEoAUoBSgEogUqBSsEowUtBS4EpQUwBTEEpwUzBTMEqQU7BTsEqgU9BT0EqwU/BT8ErAVBBUUErQVHBUsEsgVNBU8EtwVRBVQEugVWBVYEvgVYBVgEvwVaBWIEwAVkBWYEyQVqBW8EzAV0BXYE0gV6BXoE1QWABYIE1gWFBYsE2QWQBZIE4AWUBZQE4wWWBZgE5AWaBaQE5wWrBawE8gWuBbUE9AW8Bb0E/AZ/Bn8E/gdpB2kE/wCmAaT/2gGl/9oBpv/aAaf/2gGo/9oBqf/aAar/2gGr/9oBrP/aAa3/2gGu/9oBr//aAbD/2gGx/9oBsv/aAbP/2gG0/9oBtf/aAbb/2gG3/9oBuP/aAbn/2gG6/9oBu//aAbz/2gG9/9oBvv/aAb//2gHA/9oBwf/aAcL/2gHD/9oBxP/aAcX/2gHG/9oBx//aAcj/2gHJ/9oBzf/aAc7/2gHP/9oB0P/aAdH/2gHS/9oB0//aAdT/2gIJ/9oCCv/aAgv/2gIM/9oCDf/aAg7/2gIP/9oCEP/aAhH/2gIS/9oCE//aAhT/2gIV/9oCFv/aAhf/2gIY/9oCGf/aAhr/2gIb/9oCHP/aAh3/2gIe/9oCH//aAiD/2gIh/9oCIv/aAiP/2gIk/9oCJf/aAib/2gIn/9oCKP/aAin/2gIq/9oCK//aAi7/2gJ9/9oCfv/aAn//2gKA/9oCgf/aAoL/2gKD/9oChP/aAoX/2gKG/9oCh//aAoj/2gKJ/9oCiv/aAov/2gKM/9oCjf/aAo7/2gKP/9oCkP/aApH/2gKS/9oCk//aApT/2gKV/9oClv/aApn/2gKa/9oCm//aApz/2gKd/9oCnv/aAp//2gKg/9oCof/aAqL/2gKj/9oCpP/aAqX/2gKm/9oCp//aAqj/2gKp/9oCqv/aAqv/2gKs/9oCrf/aAq7/2gKv/9oCsP/aArH/2gK8/9oFDP/aBQ3/2gUO/9oFGv/aBR3/2gUh/9oFLv/aBTn/2gVG/9oFR//aBV7/2gVf/9oFYP/aBWb/2gVn/9oFaP/aBXX/2gV7/9oFff/aBZH/2gWV/9oFmP/aBZn/2gWa/9oFm//aBZz/2gWr/9oFrP/aBa7/2gWv/9oGcP/aBnT/2gT1VbhVuFW4VaBVuFWgVZpVoFW4VbhVplW4VaZVrFWyVbhVuFW4VbhVuFW4VbhVuGCAYIBVuF6gXqBeOlW+Vb5VvlW+Vb5VvlW+YJhVxGCYVcpgmGCYVehV6FXoVehV6FXoVdBV6FXQVdZV3FXoVehV6FXoVehV6FXoVehV4lXiVehV6F4iXiJeWF5YXlheWF5YXlheWF5YYJJeTGCSYJJgkmCSYJ5V7mCeYJ5gnmCeYJ5V9GCeYJ5gnmCeYJ5gnmCeYJ5V+lX6YIZghmCGYJ5gnmCeYJ5gnmCeYJ5WAFYGVgZgkmCSYJJgkmCSYJJgkmCSVjBWMFYwVjBWDFYwVgxWElYYVjBWMFYkVh5WMFYwVjBWMFYwVjBWMFYwVjBWMFYwVjBWJFYkVjBWMFYwVjBWJFYkViRWKlYwVjZWNlY2VjZWNlY2VjZWNlZIVkhWPFZIVkJWSFZIVkhWSFZIVkhg1FZOVk5WTlZOVk5WTlZOVmBWYFZgVmBWYFZgVmBWYFZgVmBWYFZgVmBWYFZgVmBWYFZgVmBWVFZaVmBWZlZsVmxWbFZsVmxWclZyVnJWclZyVnJWclZyVnJWcloCWgJaAloCWgJesl6yXrJWfl6yVn5WeFZ+XrJeslaEXrJWhFaKVpBesl6yXrJesl6yXrJesl6yVpZWll6yXqBeoF6mXqZepl6mXqZeplacXqZWnFaiVqhepl6mXqZepl6mXqZepl6mVq5Wrl6mXqZeWF5YXlheWF5YXlheWF5YVsBWtFbAVsBWwFbAVsBWulbAVsBWwFbAVsBWwFbAVsBelF6UVsZWxmCkYKRgpGCkYKRgpGCkYKRerFbMVsxWzFbMVsxWzFbMVt5W3lbeVt5W3lbeVt5W3lbeVt5W3lbeVt5W3lbeVt5W3lbeVt5W0lbeVthW3lbkVupW6lbqVupW6lbwVvBW8FbwVvBW8FbwVvBW8FbwVvZW9lb2VvZW9lcyVyBXPlcCVz5XAlb8VwJXPlc+VwhXPlcIVw5XFFcgVxpXMlcgVyZXPlcsVzJXOFc4Vz5XRFdKV1BXVldcV1BXVldcXhZXYmBQV4BXnleeV55XnldoV55XaFduV3RXgGBWV3pgUFeAV4ZXnleMV5JXkleYV55XpFeqV7BXtle8V7xXvFfCV8hXzmC2YLZgtlgKYLZgtmCqV9RX5lfyV/JX5l8SV9pX4GCqV+ZX7FfyX/BgqlfyV/hX/lgEYLZYCmC2WBBgtlnMYLZgtmC2YLZgtlgWYLBYHFgiWC5gsFgoYLBgsFguWHBYZFiCWIJYNFiCWDRYOlhAWGRYRliIWExYcFhkWFJYoFhYWKBYWFheWKBYZFiCWGpYiFiIWHBYdlh8WIJYiFiIWIhYjliUWJpYoFiyWKZYrFiyWKZYslisWLJfNli4WL5YyljEXzZYyl82WNBfNljQWOJY1ljiWOJY4ljcWOJY4mAsYHRaDloOWg5gdGBuYCxgdFoIYCxgdGAsYHRaCFoOYHRaDmBoWO5gLFjoWg5Y7lj0WPpZDFkAWQZZDFkYWR5ZMFkSXf5ZGFkeWSRZKlkwWUhZNlk8WUJZSGA4WWxZhFlUWYRZVFlOWVRZhFmEWVpZhFlaWWBZZllsYD5gOFlsWXJZhFl4YDhZfll+WYRgRFmKWZBgSmAIWcZZxlnGWcZZllnGWZZZnFmiYAhgDlmoYEpgCFmuWcZZtFm6WbpZwFnGYFBgtlnMYLZgtmC2YLZgtmC2WdJZ5FnYWeRZ5FnkWd5Z5FnkWepZ/FnwWfZZ/GAsYHRaDmBuWgJgLGB0WghgaFoOWiZaFFoaWiBaJlosWjJaOFp0WmJagFpEWoBaRFo+WkRagFqAWkpagFpKWlBaVlpiWlxadFpiWmhagFpuWnRaelp6WoBahlqMWpJdAlqYXPBdAlqYXPBc9mDCWp5bOlqkYMJgwlrgWsha5lrmWuZa5lqqWuZaqlqwWrZayFq8WsJa4FrIWs5a5lrUWtpa2lrgWuZc6lrsWvJdAlzwXPBc8F0CXPZc/F0CYLxa+GC8W15bXmC8WyJbIlsQWyhbKFsQWv5bBFsKWyJbEFsWWyhdIFscWyJbKFsuWzRgwls6YMJgwmDIW0BgyGDIYMhgyGDIW0ZbTFtMYLxbUlteYLxbWGC8YLxbXluUW4hbmluaW2RbmltkW2pbcFuIW3ZboFt8W5RbiFuCW5RbiFuUW4hbgluaW4hbmluOW6BboFuUYM5dSluaW6BboFugW6ZbrFu+W7JbuFu+W7Jbvlu4W75b3FvEW8pb1lvQW9xb1lvcW+Jb3FviW/Rb9FvoW/Rb9FvuW/Rb9F2GXXpdkl2SXZJdel1uXYZdel10XYZdel2GXXpddF2SXXpdkl2AXZhdjF2SXZhb+lwMXABcBlwMXB5cJFw2XBJcGFweXCRcKlwwXDZcTlw8XEJcSFxOXIpceFyWXFpcllxaXFRcWlyWXJZcYFyWXGBcZlxsXHhcclyKXHhcflyWXIRcilyQXJBcllycXKJc3lzGXORc5FzkXORcqFzkXKhcrly0XMZculzAXN5cxlzMXORc0lzYXNhc3lzkXOpdAlzwXPBc8F0CXPZc/F0CXSxdLF0UXTJdMl0UXQhdDl0sXRRdGl0yXSBdJl0sXTJdOF0+XURdRGDOXUpdVmDOXVBgzmDOXVZdaF1oXVxdaF1oXWJdaF1oXYZdel2SXZJdkl16XW5dhl16XXRdhl16XYZdel10XZJdel2SXYBdmF2GXYxdkl2YXZ5dsF2kXapdsF3CXchd2l22Xbxdwl3IXc5d1F3aXfJd4F3mXexd8l46Xgpegl6CXkZeRl5GXlJeiF5YXlheWF5YXgReBF40YNRefF6OXhZeZF5kXmpecF6CXl5eLl34Xf5efF5GXlJeiF4EXgpeEGDUXo5eFl4cXhxeIl5qXmReKF4oXi5eUmDUXjReOl46XkBeRl5MXkxeUl6IXlheWF58XnxefF5eXmReZF5kXmpegl5wXnZefF6CXohejl6OXrJepl6mXqZesl6yXrJesl6aXrheuF6+XpReml6yXrJeoF6mXqxerF6yXrJeuF64Xrhevl9gXsRfwF/qX3Jeyl7QX1RgjF7W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Ba0FrQAMBa4FrwACBbEFtgAGBbcFtwBLBbgFuAALBbwFvAALBb0FvQABBb4FvgA3Bb8FvwBeBcAFwABuBcEFwQBrBcIFwgBaBcMFwwBXBcQFxAA3BcUFxQBpBcYFxgA+BccFxwBcBcgFyAB/BckFyQBfBcoFygBvBcsFywBsBcwFzABbBc0FzQBYBc4FzgA3Bc8FzwBqBdAF0AA+BdEF0QBdBhgGGQApBhoGGwA8BhwGHAApBh0GHQBSBh4GHgBUBh8GHwBkBiAGIABmBiEGIgAYBiMGIwA1BiUGJQA4BiYGJgA5BicGKAAvBioGKgA4BisGKwA5Bi0GLQBhBi4GLgBiBjAGMAA6BjEGMQBQBjIGMgA6BjQGNABjBjYGNgA7BjgGOAA7BjkGOgAYBj8GPwAYBkAGQABwBkEGQQAvBkQGRQApBkYGRgA2BkcGRwBJBkgGSAA2BkkGSQBJBkoGSgAYBksGSwBABkwGTAAYBk0GTQBABk4GTwAyBlAGUAAvBlEGUQBBBlIGUgAvBlMGUwBBBlQGVAApBlUGVQBTBlYGVgBVBlcGVwBlBlgGWABnBlkGWgApBlsGWwBIBlwGXABKBl0GXQBIBl4GXgBKBl8GXwAYBmAGYABCBmEGYQAYBmIGYgBCBmMGZABHBm8GbwAEBnAGcAACBnEGcQAEBnIGcgAlBnMGcwAaBnQGdAACBnUGdQAlBnYGdgBZBncGdwAlBngGeAAEBnoGegAlBnsGewBFBnwGfAAlBn0GfQABBn4GfgAlBn8GfwABBoAGgQAlBoIGggB8BoMGgwBFBoYGhgAlBocGhwB+BooGigA4BosGjAAYBo4GjgAYBpcGmAAYBp4GngALBp8GnwABBqEGoQAYBqIGogAFBqQGpQBGBsEGwQAEBsIGwgBOBsMGwwBgBsQGxABoBsUGxgAEBscGxwBtBsgGyABRBskGygAyBs4GzwA9BtAG0AAEBtEG0QABBtIG0gAEBtQG1ABPBtYG1gA2B2kHaQABB3EHcQAFAAIB8gABABoACgAbABwACQAdAB0ALgAeACQAGAAlACUAAgAmACYAJAAnACsAAgAsACwAHgAtAEMACQBFAEUALgBGAEYARgBHAE4AEwBPAFUAAQBWAFYABwBXAGQAAQBlAGYABwBnAGkAOgBqAGoAMgBrAGsABwBsAHAAMgByAHMAMgB0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BTgAFAU5BTkABgU6BToAEQU7BTsASgU8BTwARAU9BT0AFAU+BT4AMAU/BUAAFAVBBUEAOwVCBUIAFAVEBUQASgVGBUYABgVHBUcAIgVIBUgAJwVJBUoAEQVLBUsAFAVPBVAABQVRBVIABAVTBVMAHAVUBVUAFAVbBVwABQVdBV4ABAVfBWAABgVhBWEAFAViBWMAMAVmBWkABgVqBWwAEQVwBXAAJwVxBXIAFAVzBXMAIgV2BXYAEQV3BXcARAV4BXgABgV7BXsAMAV8BXwAHQV+BX4AFAV/BX8AMAWDBYMAOwWFBYcABQWMBY0ALQWOBY4ABgWQBZAAMAWRBZEAIgWSBZIAJwWTBZMABgWaBZwABAWhBaEABgWlBaYALQWoBakALQWqBaoARAWtBa4ABAWvBa8ABgW3BbcARAW4BbgACgW8BbwACgW9Bb0AOgW+Bb4AXwW/Bb8AeQXABcAAiQXBBcEAhgXCBcIAdgXDBcMAcwXEBcQAZgXFBcUAgwXGBcYAWQXHBccAXwXIBcgAkwXJBckAegXKBcoAigXLBcsAhwXMBcwAdwXNBc0AdAXOBc4AZgXPBc8AhAXQBdAAWQXRBdEAeAYYBhkANAYaBhsAVgYcBhwANAYdBh0AbwYeBh4AcQYfBh8AfgYgBiAAgAYhBiIAIQYjBiMAQQYlBiUATwYmBiYAUwYnBigAQgYqBioATwYrBisAUwYtBi0AfAYuBi4AYAYvBi8AVAYxBjEAVAYyBjIAawYzBjMAfQY1BjUAVQY3BjcAVQY5BjoAIQY/Bj8AIQZABkAAiwZBBkEAQgZEBkUANAZGBkYATgZHBkcAZAZIBkgATgZJBkkAZAZKBkoAXAZLBksAIQZMBkwAXAZNBk0AIQZOBk8ASQZQBlAAXQZRBlEAQgZSBlIAXQZTBlMAQgZUBlQANAZVBlUAcAZWBlYAcgZXBlcAfwZYBlgAgQZZBloANAZbBlsAYwZcBlwAZQZdBl0AYwZeBl4AZQZfBl8AXgZgBmAAIQZhBmEAXgZiBmIAIQZjBmQAYgZvBm8AGAZwBnAAIgZxBnEAGAZyBnIARwZzBnMAHwZ0BnQAbQZ1BnUAGAZ2BnYAdQZ3BncARgZ4BngAEwZ6BnoAjgZ7BnsATQZ8BnwAkAZ9Bn0AAQZ+Bn4ARwZ/Bn8AHQaABoAARwaBBoEAQAaCBoIAjwaDBoMATQaGBoYARwaHBocAkgaKBooATwaLBowAIQaOBo4AIQaXBpcAIQaeBp4ACgafBp8AAQakBqUAYQbBBsEAAgbCBsIAaQbDBsMAAQbEBsQAggbFBsYAAgbHBscAiAbIBsgAbAbJBsoASQbNBs0AYAbOBs8AVwbQBtAAAgbRBtEAQQbSBtIAAgbTBtMAQQbUBtQAagbWBtYATgdpB2kAZwABASz/agABASz/bwABASz/YwABASz/cgABASwAAAACDOwVLBU+FUQAAgziFSIVQBVGAAIM3gAAFUIAAAACDNQAABU+AAAAAgy+AAAVOgAAAAIMtAAAFTYAAAACDLAU8BUyFTgAAgymFOYVNBU6AAIMogAAFTYAAAACDJ4AABUyAAAAAgyUAAAVLgAAAAIAABTEAAAVKgACDIYAABUmAAAAAgyIAAAVHAAAAAIMeAAAFRgAAAACAAAUnAAAFRQAAgxqAAAVEAAAAAIMbBSOFQwVEgACDGgAABUOAAAAAgxSAAAVCgAAAAIMThRwFQYVDAACDEoAABUIAAAAAgxGAAAVBAAAAAIMQgAAFQAAAAACDD4AABT8AAAAAhT4FP4VBBUKAAEAuwGrAAEAZwEXAAEBLAKsAAEBLQAAAAEBLAG2AAEBtQG2AAEBNwEKAAEBLAFkAAEAzwGCAAEBlQFeAAEA9wEiAAEBbgFjAAEBTQEcAAEBLAISAAEBLAKjAAEBLAMwAAEBLAMZAAEBLAL9AAEBLAKfAAEBLAMtAAEBLAMDAAEBLAK9AAEBLAKzAAEBLALfAAEBLAPGAAEBLAOvAAEBLAPDAAEBLAMmAAEBLAMbAAEB1AL3AAEBrgMLAAEBLAMhAAEBLAO8AAEBLAOxAAEB1AONAAEBrgOhAAEBLAO3AAEBLAK8AAEBLAK7AAEBbgO8AAEBbgOxAAECFgONAAEB8AOhAAEBbgO3AAEBbgK8AAEBmwK8AAEBgwK7AAEBdQK8AAECCQONAAEB4wOhAAEBYQO3AAEBYQPDAAEBYQK8AAEAmQK8AAEAmwPDAAEA7wK8AAEAogK8AAEB3QK8AAECTQONAAECJgOhAAEBpQO3AAEBpQPGAAEBpQPDAAECYgK8AAEBpQK8AAEBcwK8AAEBQgPGAAEBQgOvAAEBQgK8AAEBJQK8AAEBjAPEAAEBjAOnAAEBjAK8AAEBjAPDAAECNAK8AAEBRAK8AAEBjwO8AAEBjwOxAAECOAONAAECEQOhAAEBjwO3AAEBjwOnAAECBgONAAEB4AOhAAEBXgO3AAEBXgPDAAEAqAK8AAEA5QPDAAEA5QK8AAECaQK8AAEBLQK8AAEBiAPEAAEBiAOnAAEBiAK8AAEBiAPDAAECUgK8AAEBhwK8AAEBUgK8AAEBIwMmAAEBIwMbAAEBywL3AAEBpAMLAAEBIwMhAAEBIwKjAAEBIwK9AAEBIwMDAAEBIwKfAAEBIwISAAEBIwL9AAEBIwKzAAEBzwISAAEBzwK9AAEBLwISAAEBLwK9AAEBLwKzAAEDrQKzAAEB2wL3AAEBtAMLAAEBMwMhAAEBMwK8AAEBMwK9AAEBMwMDAAEBMwKfAAEBMwMtAAEBOgISAAEBMwKzAAEBMgISAAEA4gISAAEA4gKzAAEBSQISAAEBSQKzAAEBSQLfAAEBSQK8AAEBSQKfAAEAiwISAAEAiwMtAAEAiwK8AAEAiwK9AAEAiwMDAAEAiwKzAAEAkALFAAEAkAISAAEAkAKzAAEAiwOIAAEBIAISAAEAkwLmAAEBVwK9AAEBhgISAAEBVwK8AAEBVwKzAAEB5QL3AAEBvgMLAAEBPQMhAAEBPQKjAAEBPQMwAAEBPQMDAAEBPgK9AAEBPgMDAAEBPQK9AAEBPQKfAAEBPQISAAEBOwISAAEBOwK9AAEBPQKzAAEBPQMtAAECHwISAAEBbAISAAEBfwISAAEBPgISAAEA6gK9AAEA6gKzAAEA6gISAAEA+AK9AAEA+AMwAAEA+AMZAAEA+AKzAAEA+AK8AAEAngKGAAEAmQMXAAEAmQKGAAEBUAL9AAEBUAMtAAEBFwISAAEBvwIQAAEBvwKyAAEBvwKhAAEBvwK8AAEBCgKjAAEBCgISAAEBCgK9AAEBCgMDAAEBCgKfAAEBCgKzAAEBBgK9AAEBBgKzAAEBBgK8AAEBBgISAAEBTwMmAAEBTwMbAAEB9wL3AAEB0AMLAAEBTwMhAAEBTwK9AAEBTwMDAAEBTwKfAAEBTwL9AAEBTwKzAAEB5QK9AAEDsgKzAAEB2AL3AAEBsgMLAAEBMAMhAAEBMAK8AAEBMAMDAAEBMAKfAAEBMAMtAAEBOAISAAEBMAKzAAEAiwOSAAECHQISAAEAiwKGAAEAhgMXAAEAhgKGAAEB7AISAAEB7AKzAAEB7AKjAAEB7AK9AAEBUAK8AAEBUAMDAAEBUAKzAAEBCAK9AAEBCAKzAAEBCAK8AAEBCAISAAEB7QLFAAEB7QLmAAEB3wLFAAEBMwNMAAEBMwNCAAEB2wMeAAEBtQMyAAEBMwNHAAEBMwLJAAEBMwLkAAEBMwMqAAEBMwLGAAEBMwI4AAEBMwMjAAEBMwLaAAEBwgI4AAEBwgLkAAEBSAI4AAEBWwLlAAEBWQI4AAEBTwI4AAEB2AMeAAEBsgMyAAEBMANHAAEBMALJAAEBMALjAAEBMALkAAEBMAMqAAEBMALGAAEBMANUAAEBMAI4AAEBMALaAAEBEAI4AAEBEALaAAEBcQI4AAEAkQLJAAEAkQNUAAEAkQLjAAEAkQLkAAEAkQMqAAEAkQLGAAEAkQI4AAEAkQLaAAEA0AI4AAEA0ALaAAEBRQLaAAEAkgLkAAEApQI4AAEBmQI4AAEBXQLkAAEBXQLjAAEBXQLaAAECCQMeAAEB4gMyAAEBYQNHAAEBYQLJAAEBYQNXAAEBYQMqAAEBYQLkAAEBYQLGAAEBYQI4AAEBYQLaAAEBYQNUAAECAgI4AAEBYgI4AAEBQQLkAAEBQQLaAAEBQQI4AAEBEwLkAAEBEwNXAAEBEwNAAAEBEwLaAAEBEwI4AAEBEwLjAAEA9gLaAAEA9gLJAAEA9gI4AAEB3wI4AAEB3wLaAAEB3wLJAAEB3wLkAAEBHALJAAEBHALjAAEBHAI4AAEBHALkAAEBHAMqAAEBHALGAAEBHALaAAEBHQLkAAEBHQLaAAEBHQLjAAEBHQI4AAEBVwNMAAEBVwNCAAECAAMeAAEB2QMyAAEBVwNHAAEBVwLJAAEBVwLkAAEBVwMqAAEBVwLGAAEBVwI4AAEBVwMjAAEBVwLaAAEByAI4AAEByALkAAEBzwMeAAEBqAMyAAEBJwNHAAEBJwLJAAEBJwLjAAEBJwLkAAEBJwMqAAEBJwLGAAEBJwNUAAEBJwI4AAEBJwLaAAEBTgI4AAEBWwLbAAEBWwLkAAEBWwLHAAEBWwI5AAEA1gLJAAEA1gNUAAEA1gLkAAEA1gMqAAEAjwI4AAEA1gLGAAEA1gI4AAEA1gLaAAEAzwI4AAEAzwLaAAECBAI4AAEBWgLkAAEBWgLjAAEBWgLaAAEA+wLbAAEA+wLKAAEA+wI5AAEBVQLJAAEBVQMqAAEBVQLkAAEBVQLGAAEBVQI4AAEBVQMjAAEBVQLaAAEBVQNUAAECDQI3AAECDQLZAAECDQLJAAECDQLjAAEBUALJAAEBUALjAAEBUAI4AAEBUALkAAEBUAMqAAEBUALGAAEBUALaAAEBGwLkAAEBGwLaAAEBGwLjAAEBGwI4AAEAmwM5AAEBCgK8AAEBZwK8AAEBfQK8AAEB8AK9AAEBLwK8AAEBTgK8AAEBLgK8AAECTwK/AAEAnwK8AAEB4QK8AAEBewK8AAECGwK8AAEBZQK8AAEBnQK8AAECBAK8AAEBmgK8AAEBQAK8AAEBVAK8AAEBVQK8AAEB8gK8AAEBZgK8AAEBqAK8AAEBSgK8AAEBPwK8AAEBnwK8AAEA7AK8AAEBPgK8AAECFAK8AAEBXgK8AAEBmAK8AAEBjwK8AAEBigK8AAEB8QK8AAEBOAITAAEBNQK9AAEBNQKjAAEBVQISAAEBVQK9AAEBVQKzAAEBNAK9AAEBPwISAAEBbgISAAEBEAISAAEBoAISAAEBCwISAAEAjQLFAAEAiwKjAAEAjgLFAAEAkALmAAEBMgIQAAEBNAISAAEBigISAAEA+AISAAEBFAISAAEBEwISAAEBygIQAAEAjgLmAAEBqAISAAEBjwISAAEBIQISAAEBIQKjAAEBzgISAAEBNQISAAEBPwIRAAEBqAKjAAEBVQKfAAEBVQKjAAEBPwKjAAEBRQISAAEBRQKjAAEBBwKjAAEBEAKfAAEBEAKjAAEBEAK9AAEBFAKjAAEBIwIQAAEBoAKjAAEBQQISAAEB1AISAAEBMQISAAEBWQISAAEBLgISAAEBIwK8AAEAiwKfAAEBRwISAAECBgIQAAEBSAISAAEBMAK9AAEBMAKjAAEBRgISAAEBRgKzAAEBRgK9AAEBVgISAAEBUAISAAEBlQISAAEBTwISAAEBTwKjAAEB5QISAAEBMAISAAEBMwISAAEBMwKjAAEBRgKfAAEBRgKjAAEBUAKfAAEBUAKjAAEBUAK9AAEBlQKjAAEBbgOnAAEBdwK8AAEBBwISAAEBlQK8AAEBewK7AAEAmwK8AAEBkgK8AAEAiwLFAAEBVwISAAEAiwLmAAEBXQI4AAEBRQI4AAEAkgI4AAEBWgI4AAEBmQK8AAEBUgISAAEBbv9vAAEBkgAAAAEA0gFkAAEBhwAAAAEAxgFeAAEBkAAAAAEBf/9vAAEBf/9yAAEBa/9vAAEBawAAAAECZQAAAAEBnQIpAAEBnQAAAAEBlf9jAAEBlQIpAAEAm/9vAAEBd/9vAAEBZP9vAAEBZP9yAAEBywGJAAEAogF4AAEBvQK8AAEBbAAAAAEB3QAAAAEB3f9vAAEBlf9vAAEBlf9yAAEBlQAAAAEBpf9vAAEBpQFeAAECfgK8AAEBpQAAAAEB8gAAAAECYgAAAAEBc/9vAAEBcwAAAAEBc/9yAAEBQgAAAAEBQv9vAAEBJQAAAAEBJf9vAAEBJQFTAAEBJf9yAAEBjP9vAAEClAK8AAEBjAAAAAECNAAAAAEBRP9vAAEBQQD5AAEBRAAAAAEBVgAAAAEBVv9vAAEBj/9vAAEAywFkAAEBXv9vAAEBlf9wAAEBlQABAAEA5f9vAAEA5QAAAAEBFgAAAAEBxAGJAAEAmwF4AAEBtgK8AAEBZAAAAAECaf9vAAEBkf9vAAEBkf9yAAEBkQAAAAEBK/9vAAEBKgFKAAEBK/9yAAEBiP9vAAEBiAAAAAECUwAAAAECl/9vAAEB/wAAAAEB2wAAAAEBW/9vAAEBW/9yAAECBwAAAAEBMgAAAAEAXQISAAEA4gAAAAEBV/9jAAEAxgJ6AAEBAgISAAEA/QISAAEBOf9vAAEBFALmAAEBPwFmAAEAkwFmAAEBGwLmAAEAkwAAAAECEgAAAAECEv9vAAEBhgAAAAEBV/9yAAEBPf9vAAEBPv9vAAEBPgAAAAEBxQISAAEBPQEJAAEBxgISAAEBPQAAAAECHwAAAAEBgAAAAAEBKwAAAAEAi/9vAAEAi/9yAAEA+P9vAAEAvgEgAAEBIgLmAAEBAgAAAAEA/QAAAAEA/f9vAAEAuQEgAAEBHQLmAAEA/f9yAAEBUP9vAAEBFwAAAAEBvwAAAAEBmv9vAAEBmgAAAAEBDAAAAAEBDP9vAAEBT/9vAAEB5AJ6AAECqALmAAEBMP9vAAEAzP9vAAEAzP9yAAEBOAFmAAEAiwFmAAEAzAAAAAECHQAAAAEAqgEgAAEBEgLmAAEA8AAAAAEA6wAAAAEA6/9vAAEApQEgAAEBDQLmAAEA6/9yAAEB7AAAAAEClf9vAAEBCAAAAAEBCP9vAAECHAAAAAECmQFmAAEB7QFmAAECdQLmAAEB7QAAAAECDgAAAAECaAAAAAEBwgAAAAEAygEgAAEBXAAAAAEAvwEdAAEBYwAAAAEBSP9vAAEBSP9yAAEBOP9vAAECCwAAAAEBEAAAAAEBcQHEAAEBcQAAAAEBXf9jAAEBXQHEAAEAkf9vAAEAkQAAAAEAwgAAAAEBRf9vAAEBRQAAAAEBM/9vAAEBM/9yAAEBeQFBAAEBigI4AAEBIAAAAAEBmQAAAAEBmf9vAAEBXf9vAAEBXf9yAAEBXQAAAAEBYf9vAAEBWgAAAAEBYQEcAAECDwI4AAEBYQAAAAEBpgAAAAECAgAAAAEBQf9vAAEBQf9yAAEBEwAAAAEBE/9vAAEA9gAAAAEA9v9vAAEA9gEQAAEA9v9yAAECLgI4AAEB/QAAAAEB3wAAAAEBHP9vAAEBHAAAAAEBIQAAAAEBIf9vAAEBV/9vAAEBVwAAAAECVAAAAAEByAAAAAEAtgEgAAEBJ/9vAAEBJwAAAAEBVf9wAAEBVQABAAEA1v9vAAEA1gAAAAEBBgAAAAEBjwFEAAEAkgE0AAEBdQI4AAECBAAAAAECBP9vAAEBWf9vAAEBWf9yAAEA+/9vAAEA+wEIAAEA+/9yAAEBVf9vAAECJAI4AAEBVQAAAAECTgAAAAECDQAAAAECPP90AAECPAAFAAEBH/9vAAEBfQAAAAECiAJKAAEBSgAAAAEBhAAAAAEA0AAAAAEAmwAAAAEAzQAAAAEB8AAAAAEBLwFTAAEBSwD5AAEBTgAAAAEBLgFTAAEBLgAAAAECVQAAAAEAnwAAAAEA0QAAAAEBmQIpAAEB4QAAAAEBewAAAAEC6gAAAAECGwAAAAEBbwAAAAECaQAAAAEBqAFeAAECggK8AAEBqAAAAAEB9QAAAAEArgJKAAEDQwAAAAEDdAAAAAEAxwJKAAEBlgAAAAEBDgJKAAEBOwFKAAEBPAAAAAECvQAAAAEBXgAAAAECUQAAAAEBmAAAAAECjgK8AAECsQAAAAEClwAAAAEAwwJKAAEBOAAAAAEBggAAAAECAAG6AAEBCwAAAAEBOQAAAAEAjQAAAAEAvQAAAAEAwwJ5AAEBQQAAAAEBigAAAAEA+AD8AAEA+AAAAAEBHgAFAAEAyAJ6AAEBBQISAAEB0AAAAAEBOgFmAAEAjgFmAAEBFgLmAAEAjgAAAAEBjwAAAAEBHwAAAAEB/gAAAAEB2QAAAAEBNQAAAAECCQAAAAEAawIRAAEBPwEJAAEByAISAAEBPwAAAAEBogAAAAEBoAAAAAEAmgG6AAEBLwAAAAEB1AAAAAEBUgGmAAEBUgAAAAEBWQAAAAEA+wAAAAEBOgAAAAEAiwAAAAEAuwAAAAECGgISAAEBUAAAAAECSQAAAAEBaQAAAAECFAAAAAEBTwAAAAECTwAAAAEBMAAAAAEBvQAAAAEBMwAAAAEApwISAAECEQISAAEBRwAAAAECQAAAAAEClQAAAAEBbgAAAAEC3QAAAAEBdwAAAAEDjwEgAAED9ALmAAEBfwAAAAEBWwAAAAEBSAAAAAEEaAK8AAEEbQAAAAEEQAKzAAEERgAAAAEDQAK8AAEC4gLFAAEEGgK8AAEDvALFAAEEaQK8AAEEbwAAAAEEQgKzAAEEQgAAAAEDXAK8AAEECgK8AAEDrwLFAAEDswAAAAEBpwLFAAEDOQLFAAEDsgAAAAEBvgLFAAEDzQLaAAED0gAAAAECywI4AAEDigI4AAEDzALaAAEDzwAAAAECygI4AAEDfQI4AAEDRAK8AAECsQIQAAEDcAKGAAED1AAAAAEFbQISAAEFbQAAAAEAAQAOAIgAIgAAAAAAA0RGTFQBTmN5cmwBUmxhdG4BdAAyAZoBogLOAaoBqgGyAboBugHCAcoB0gHaAeIB6gHyAfIB+gH6AfoB+gH6AgICCgISAhoCIgIqAioCMgJKAjoCQgJKAroCUgJSAsQCWgJiAmoCcgJ6AoICigKSApoCogKqArICsgAjYWFsdAMqYzJzYwJ2Y2FzZQJ8Y2NtcANEY2NtcANQZGxpZwKCZG5vbQKIZnJhYwM6bGlnYQKObG51bQKUbG9jbAKabG9jbAKgbG9jbAKmbG9jbAKsbG9jbAKybG9jbAK4bG9jbAK+bG9jbALEbG9jbALKbG9jbALQbG9jbALWbG9jbALcbG9jbALibG9jbALobnVtcgLub251bQL0b3JkbgMycG51bQL6c2FsdAMAc2luZgMGc21jcAMMc3MwMQMSc3VicwMYc3VwcwMedG51bQMkApoAAAKWAAVCR1IgAsRCU0ggAoZDSFUgAo5NS0QgAvRTUkIgAyQDugAJQVpFIAQSQ0FUIARCQ1JUIARyS0FaIASiTU9MIATSTkxEIAUCUk9NIAUyVEFUIAViVFJLIAWSAAEAAAABEeQAAwAAAAEL6gABAAAAAQbkAAYAAAABBXAAAQAAAAEGggAEAAAAAQYiAAQAAAABA34ABAAAAAEDNAAGAAAAAQMMAAEAAAABArAAAQAAAAECrgABAAAAAQNkAAEAAAABAqQAAQAAAAEGBgABAAAAAQKaAAEAAAABBSAAAQAAAAEC9gABAAAAAQUgAAEAAAABAoAAAQAAAAECfgABAAAAAQJ8AAEAAAABAnoAAQAAAAECeAABAAAAAQJ2AAEAAAABAwoABAAAAAECjAABAAAAAQJkAAEAAAABAmIAAQAAAAECYAABAAAAAQJeAAEAAAABBtoAAQAAAAEI5gABAAAAAQZKAAQAAAABAlQABAAAAAECVAABAAAAAQ0wAAYAAAACBJgEqgAGAAAAAgSyBMQABgAAAAQEzAUCBN4E8AAAAAEAKwAAAAEALQAAAAEALgAAAAEAHgAAAAEALwAAAAEAJwAAAAEAFAAAAAEAFQAAAAEAGQAAAAEACwAAAAEAGAAAAAEAEwAAAAEAEAAAAAEAFgAAAAEADwAAAAEACgAAAAEADgAAAAEAFwAAAAEAEQAAAAEAEgAAAAEAHQAAAAEAKgAAAAEAKAAAAAEAMAAAAAEAGwAAAAEALAAAAAEAMQAAAAEAGgAAAAEAHAAAAAEAKQAAAAIAAAABAAAAAgAkACYAAAADAB8AIAAhAAAABAACAAUACAAJAAAABQACAAUACAAJAAkAAP//AAEADAAA//8AAQAOAAD//wAUAAAAAQACAAMABQAGAAcACAAJABgAGQAaABsAHAAdAB4AHwAgACEAIgAA//8AFQAAAAEAAgADAAUABgAHAAgACQALABgAGQAaABsAHAAdAB4AHwAgACEAIgAA//8AFQAAAAEAAgADAAUABgAHAAgACQARABgAGQAaABsAHAAdAB4AHwAgACEAIgAA//8AFQAAAAEAAgADAAUABgAHAAgACQAVABgAGQAaABsAHAAdAB4AHwAgACEAIgABE1gACwABE1IACAABEzoACAABEzoAiQABE4oAKAABE4QARgABE34AMgABEyj/6QABE3IAPAABE2L/9gABEz7/9gABE0L/7AABE0YAFAABE2YACgABEwQAARMSAAEh7gABEwIAASHYAAES/gABIfAAARMAAAEh+gACEv4TAgACEy4AAgTfBZEAAP//ABQAAAABAAIABAAFAAYABwAIAAkAGAAZABoAGwAcAB0AHgAfACAAIQAiAAEiQAAEExQTHhMoEzIAAhMuAAQAtwDBAj8CSQACEywABARiBGMEYgRjAAD//wAVAAAAAQACAAMABQAGAAcACAAJAAoAGAAZABoAGwAcAB0AHgAfACAAIQAiAAD//wAVAAAAAQACAAMABQAGAAcACAAJAA0AGAAZABoAGwAcAB0AHgAfACAAIQAiAAD//wAVAAAAAQACAAMABQAGAAcACAAJAA8AGAAZABoAGwAcAB0AHgAfACAAIQAiAAD//wAVAAAAAQACAAMABQAGAAcACAAJABAAGAAZABoAGwAcAB0AHgAfACAAIQAiAAD//wAVAAAAAQACAAMABQAGAAcACAAJABIAGAAZABoAGwAcAB0AHgAfACAAIQAiAAD//wAVAAAAAQACAAMABQAGAAcACAAJABMAGAAZABoAGwAcAB0AHgAfACAAIQAiAAD//wAVAAAAAQACAAMABQAGAAcACAAJABQAGAAZABoAGwAcAB0AHgAfACAAIQAiAAD//wAVAAAAAQACAAMABQAGAAcACAAJABYAGAAZABoAGwAcAB0AHgAfACAAIQAiAAD//wAVAAAAAQACAAMABQAGAAcACAAJABcAGAAZABoAGwAcAB0AHgAfACAAIQAiAAISehG2ElIRtgACAAARNAACEYAABQWTBZQFlQWWBZcAAhF+AAUE3ATdBN4FjwWQAAMAARFKAAEQ2AAAAAEAAAAiAAMAARFqAAEQxgAAAAEAAAAjAAMAARC+AAERLAAAAAEAAAAlAAMAARCsAAERIgAAAAEAAAAlAAMAAAABEU4AARIqAAEAAAADAAMAARHwAAER8AAAAAEAAAADAAMAARGaAAER3gAAAAEAAAAEAAMAAAABERgAAhE8EfQAAQAAAAQAASB6AA8RRBEMERAROBEUERgRTBFUEVwRHBEgET4RJBFkEWwAAhHeABcE2QTaBNsFewV8BX0FfgV/BYAFgQWCBYMFhAWFBYYFhwWIBYkFigWLBYwFjQWOAAIRYAAmBxgHGQcaBxsHHAcdBx4HHwcgByEHIgcjByQHJQcmBycHKAcpByoHKwcsBy0HLgcvBzAHMQcyBzMHNAc1B1wHXQdeB18HYAdhB2IHYwACEYoAKAHcAe0HGAcZBxoHGwccBx0HHgcfByAHIQciByMHJAclByYHJwcoBykHKgcrBywHLQcuBy8HMAcxBzIHMwc0BzUHXAddB14HXwdgB2EHYgdjAAIRaAA9BicGKAYqBisGKQYzBjQGNQY2BjcGOAZBBkIGQwZQBlEGUgZTBrAGsQayBrMG0gcYBxkHGgcbBxwHHQceBx8HIAchByIHIwckByUHJgcnBygHKQcqBysHLActBy4HLwcwBzEHMgczBzQHNQdcB10HXgdfB2AHYQdiB2MAAhFSAQcC3gLfAuAC4QLiAuMC5ALlAuYC5wLoAukC6gLrAuwC7QLuAu8C8ALxAvIC8wL0AvUC9gL3AvgC+QL6AvsC/AL9Av4C/wMAAwEDAgMIAwMDBAMFAwYDBwMIAwkDCgMLAwwDDQMOAw8DEAMRAxIDEwMUAxUDFgMXAxgDGQMaAxsDHAMdAx4DHwMhAyIDIwMkAyUDJgMnAygDKQMqAysDLAMtAy4DLwMwAzEDMgNAAzQDNgM3AzgDOQM6AzsDPAM9Az4DPwNBA0IDQwNEA0UDRgNHA0gDSgNQA0sDTANNA04DTwNQA1EDUgNTA1QDVQNcA1YDVwNYA1kDWgNbA1wDXQNeA18DYANhA2IDYwNkA2UDZgNnA2gDaQNqA2sDbANtA24DbwNwA3EDcgNzA3QDdQN2A3cDeAN5A3oDewN8A30DfgN/A4ADgQOCA4MDhAOFA4YDhwOIA4kDigOLA4wDjQOOA48DkAORA5IDkwOUA5UDlgOXA5gCfAMgA5kDmgObA5wDnQOfA6ADoQOiA6MDpAOlA6YDpwOoA6kDqgOrA6wDrQOuA68DsAOxA7IDswO0A7UDtgO3A7gDuQO6A7sDvAO9A74DvwPAA8EDwgPDA8QDxQPGA8cDyAPJA8oDywPMA80DzgM1BlQGVQZWBlcGWAZZBloGWwZcBl0GXgZfBmAGYQZiBmMGZAbUB0kHSgdLAAIPbAEHAt4C3wLgAuEC4gLjAuQC5QLmAucC6ALpAuoC6wLsAu0C7gLvAvAC8QLyAvMC9AL1AvYC9wL4AvkC+gL7AvwC/QL+Av8DAAMBAwIDAwMEAwUDBgMHAwgDCQMKAwsDDAMNAw4DDwMQAxEDEgMTAxQDFQMWAxcDGAMZAxoDGwMcAx0DHgMfAyADIQMiAyMDJAMlAyYDJwMoAykDKgMrAywDLQMuAy8DMAMxAzIDMwM0AzYDNwM4AzkDOgM7AzwDPQM+Az8DQANBA0IDQwNEA0UDRgNHA0gDSQNKA0sDTANNA04DTwNQA1EDUgNTA1QDVQNWA1cDWANZA1oDWwNcA10DXgNfA2ADYQNiA2MDZANlA2YDZwNoA2kDagNrA2wDbQNuA28DcANxA3IDcwN0A3UDdgN3A3gDeQN6A3sDfAN9A34DfwOAA4EDggODA4QDhQOGA4cDiAOJA4oDiwOMA40DjgOPA5ADkQOSA5MDlAOVA5YDlwOYAnwDmQOaA5sDnAOdA54DnwOgA6EDogOjA6QDpQOmA6cDqAOpA6oDqwOsA60DrgOvA7ADsQOyA7MDtAO1A7YDtwO4A7kDugO7A7wDvQO+A78DwAPBA8IDwwPEA8UDxgPHA8gDyQPKA8sDzAPNA84DNQZUBlUGVgZXBlgGWQZaBlsGXAZdBl4GXwZgBmEGYgZjBmQG1AdJB0oHSwABFKQBKBPgDZgNng2kDaoNsA22DbwNwg3IDc4N1A3aDeAN5g3sDfIN+A3+DgQOCg4QDhYOHA4iDigOLg40DjoOQA5GDkwOUg5YDl4OZA5qDnAOdg58DoIOiA6ODpQOmg6gDqYOrA6yDrgOvg7EDsoO0A7WDtwO4g7oDu4O9A76DwAPBg8MDxIPGA8eDyQPKg8wDzYPPA9CD0gPTg9UD1oPYA9mD2wPcg94D34PhA+KD5APlg+cD6IPqA+uD7QPug/AEoQPxg/MD9IP2A/eD+QT6A/qD/AP9g/8EAIQCBAOEBQQGhAgECYQLBAyEDgQPhBEEEoQUBBWEFwQYhBoEG4QdBB6EIAQhhCMEJIQmBCeEKQQqhCwELYQvBDCEMgQzhDUENoQ4BDmEOwQ8hD4EP4RBBPwEQoREBEWERwRIhEoES4RNBE6EUARRhFMEVIRWBFeEWQRahFwEXYRfBGCEYgRjhGUEZoRoBGmEawRshG4Eb4RxBHKEdAR1hHcEeIR6BHuEfQR+hIAEgYSDBISEhgSHhIkEioSMBI2EjwSQhJIEk4SVBJaEmASZhJsEnISeBJ+EoQSihKQEpYSnBKiE/gSqBKuErQSuhLAEsYSzBLSEtgS3hLkEuoS8BL2EvwTAhMIEw4TFBMaEyATJhMsEzITOBM+E0QTShNQFAATVhNcE2ITaBQIE24TdBQYFCYUNBRCFFAUXhRsFHoUiBSWE3oTgBOGE4wTkhOYE54TpBOqE7ATehOAE4YTjBOSE5gTnhOkE6oTsBQQE7YTvBPCE8gTzhPUE9oAAhM8AcsA8wD0APUA9gD3APgA+QD6APsA/AD9AP4A/wEAAQEBAgEDAQQBBQEGAQcBCAEJAQoBCwEMAQ0BDgEPARABEQESARMBFAEVARYBFwEYARkBGgEbARwBHQEeAR8BIAEhASIBIwEkASUBJgEnASgBKQEqASsBLAEtAS4BLwEwATEBMgEzATUBNgE3ATgBOQE6ATsBPAE9AT4BPwFAAUEBQgFDAUQBRQFGAUcBSAFJAUoBSwFMAU0BTgFPAVABUQFSAVMBVAFVAVYBVwFYAVkBWgFbAVwBXQFeAV8BYAFhAWIBYwFkAWUBZgFnAWgBaQFqAWsBbAFtAW4BbwFwAXEBcgFzAXQBdQF2AXcBeAF5AXoBewF8AX0BfgF/AYABgQGCAYMBhAGFAYYBNAJ9An4CfwKAAoECggKDAoQChQKGAocCiAKJAooCiwKMAo0CjgKPApACkQKSApMClAKVApYClwKYApkCmgKbApwCnQKeAp8CoAKhAqICowKkAqUCpgKnAqgCqQKqAqsCrAKtAq4CrwKwArECsgKzArQCtQK2ArcCuAK5AroCuwK8Ar0CvgK/AsACwQLCAsMCxALFAsYCxwLIAskCygLLAswCzQLOAs8C0ALRAtIC0wLUAtUC1gLXAtgC3ALdA88D0APRA9ID0wPUA9UD1gPXA9gD2QPaA9sD3APdA94D3wPgA+ED4gPjA+QD5QPmA+cD6APpA+oD6wPsA+0D7gPvA/AD8QPyA/MD9AP1A/YD9wP4A/kD+gP7A/wD/QP+A/8EAAQBBAIEAwQEBAUEBgQHBAgECQQKBAsEDAQNBA4EDwQQBBEEEgQTBBQEFQQWBBcEGAQZBBoEGwQcBB0EHgQfBCAEIQQiBCMEJAQlBCYEJwQoBCkEKgQrBCwELQQuBC8EMAQxBDIEMwQ0BDUENgQ3BDgEOQQ6BDsEPAQ9BD4EPwRABEEEQgRDBEQERQRGBEcESARJBEoESwRMBE0ETgRPBFAEUQRSBFMEVARVBFYEVwRYBFkEWgRbBFwEXQReBF8EYARhBOAE4QTiBOME5ATlBOYE6ATnBOkE6gTrBOwE7QTuBO8E8ATxBPIE8wT0BPUE9gT3BPgE+QT6BPsE/AT9BP4E/wUABQEFAgUDBQQFmAWZBZoFmwWcBZ0FngWgBZ8FoQWiBaMFpAWlBaYFpwWoBakFqgWrBawFrQWuBa8FsAWxBbIFswW0BbUFtgW3BtMAAhEMAioC+gL7AvwC/QL+Av8DAAMBAwIDAwMEAwUDBgMHAyEDIgMsAy0DLgMvAzADMQNGA0cDSANKA0sDTANNA04DTwNQA1EDUgNgA2EDYgNjA2QDZQNmA2cDaANpA2oDawNsA20DbgNvA3ADcQNyA3MDdAN1A3YDdwN4A3kDegN7A3wDfQN+A38DgAOBA4IDgwOFA4YDhwOIA4kDigOLA4wDjQOOA48DkAORA5IDlAOVA5YDlwOYAnwDuQO/AvoC+wL8Av0C/gL/AwADAQMCAwMDBAMFAwYDBwMhAyIDJAMlAyYDJwMoAykDKgMrAywDLQMuAy8DMAMxAzMDNAM2AzcDOAM5AzoDOwM8Az0DPgM/A0ADQQNCA0MDRANFA0YDRwNIA0kDUwNUA1UDVgNXA1gDWQNaA1sDXANdA14DYANhA2IDYwNkA2UDZgNnA2gDaQNqA2sDbANtA24DbwNwA3EDcgNzA3QDdQN2A3cDeAN5A3oDewN8A30DfgN/A4ADggODA4QDhQOGA4cDiAOJA4oDiwOMA40DjgOPA5ADkQOSA5QDlQOWA5cDmAJ8A6EDogOjA6QDpQOmA6cDqAOpA6oDqwOsA60DrgOvA7ADsQOyA7MDtAO1A7YDtwO4A7kDvwM1AtwC3QPPA9AD0QPSA9MD1APVA9YD1wPYA9kD2gPbA9wD3QPeA98D4APhA+ID4wPkA+UD5gPnA+gD6QPqA+sD7APtA+4D7wPwA/ED8gPzA/QD9QP2A/cD+AP5A/oD+wP8A/0D/gP/BAAEAQQCBAMEBAQFBAYEBwQIBAkECgQLBAwEDQQOBA8EEAQRBBIEEwQUBBUEFgQXBBgEGQQaBBsEHAQdBB4EHwQgBCEEIgQjBCQEJQQmBCcEKAQpBCoEKwQsBC0ELgQvBDAEMQQyBDMENAQ1BDYENwQ4BDkEOgQ7BDwEPQQ+BD8EQARBBEIEQwREBEUERgRHBEgESQRKBEsETARNBE4ETwRQBFEEUgRTBFQEVQRWBFcEWARZBFoEWwRcBF0EXgRfBGAEYQTgBOIE4wTkBOUE5gToBOcE6gTrBOwE7QTvBPAE8QTyBPME9AT1BNwE3QT2BPcE+AT5BPoE+wT8BP0E/gT/BQAFAQUCBQMFBAWYBZMFewWSBZoFmwWcBX4FfwWfBYMFhAWFBaEFowWkBYgFiQWKBYsFpwWoBakFjgWqBY8FkAWRBasFrAWtBa4FrwWwBbEFsgWzBbQFtQW2BbcFyAXJBcoFywXMBc0FzgXPBdAF0QXwBfEF8gXzBfQF9QX2BfcF+AX5BlQGVQZWBlcGWAYoBisGKQYzBjQGNQY2BjcGOAZBBkIGQwZZBloGWwZcBl0GXgZjBmQGsAaxBrIGswbSBtQG0wcYBxkHGgcbBxwHHQceBx8HIAchByIHIwckByUHJgcnBygHKQcqBysHLActBy4HLwcwBzEHMgdKBzQHXAddB14HXwdgB2EHYgdjAAEAAQHbAAEAAQUJAAEAAQYlAAEAAQYhAAEO5AABDtQAAg8QDyAAAg7kDuoAAQ7wAAEO8gACAAEFyAXRAAAAAgABBdIF5QAAAAIAAQW+BdEAAAACAAEF+gYDAAAAAgABBb4FxwAAAAEAAgSmBUcAAgACBb4FxwAABdIF2wAKAAIPPg9MAAQOzA7SDtgO3gAEDtoO4A7mDuwABA7oDu4O9A76AAQO9g78DwIPCAABAAQAtQDAAj0CSAABAAQAAQCBAYcCCQABAAEGDgABAAIAAQGHAAEAAgCBAgkAAQAFBQYFCAULBRsFHgABAAUEmgSdBKYFOwU+AAIAAQXwBfkAAAACAAIHGAc1AAEHXAdjAAEAAQACAdsB7AABDsAAAQ7CAAEOxAABDsYAAQ7IAAEOygABDswAAgACBv8HAQAABwMHCgADAAIOvg7EAAIOxA7KAAMOyg7QDtYAAw7UDtoO4AADDt4O5A7qAAMO6A7uDvQAAw7yDvgO/gADDvwPAg8IAAIABAABAYYAAARkBQQBhgW4BbkCJwW8Bb0CKQACAAYG4AbrAAEG7QbwAAEG8wb9AAEHBwcHAAEHCQcKAAEHVAdbAAEAAgAGBuAG6wAABu0G8AAMBvMG/QAQBwcHBwAbBwkHCgAcB1QHWwAeAAEADwbgBuQG5gboBusG7QbuBvAG8QbzBvcG+wb8Bv0G/gABABcEagR2BIAFBwUIBQsFDwUQBREFEgUTBRUFFwUZBRsFHgUjBSQFJQUmBSgFKQU0AAIACAHbAdsAAAHsAewAAQbgBusAAgbtBvAADgbzBv0AEgcHBwcAHQcJBwoAHgdUB1sAIAACABEGIQYiAAAGJQYmAAIGLAYyAAQGOQY5AAsGOwY8AAwGSgZNAA4GpgamABIGqAaoABMGqgaqABQGrAasABUGwQbBABYG4AbrABcG7QbwACMG8wb9ACcHBwcHADIHCQcKADMHVAdbADUAAgAHAAEA8gAABhgGGADyBh0GIADzBkQGTwD3BsIGwgEDBwcHCAEEBwoHCgEGAAIACgGHAewAAAHuAf8AZgIBAkMAeAJFAnsAuwYYBhgA8gYdBiAA8wZEBk8A9wbCBsIBAwcHBwgBBAcKBwoBBgACAPQC3wACAPUC4AACAPYC4QACAPcC4gACAPgC4wACAPkC5AACAPoC5QACAPsC5gACAPwC5wACAP0C6AACAP4C6QACAP8C6gACAQAC6wACAQEC7AACAQIC7QACAQMC7gACAQQC7wACAQUC8AACAQYC8QACAQcC8gACAQgC8wACAQkC9AACAQoC9QACAQsC9gACAQwC9wACAQ0C+AACAQ4C+QACAQ8DCAACARADCAACAREDCQACARIDCgACARMDCwACARQDDAACARUDDQACARYDDgACARcDDwACARgDEAACARkDEQACARoDEgACARsDEwACARwDFAACAR0DFQACAR4DFgACAR8DFwACASADGAACASEDGQACASIDGgACASMDGwACASQDHAACASUDHQACASYDHgACAScDHwACASgDIwACASkDJAACASoDJQACASsDJgACASwDJwACAS0DKAACAS4DKQACAS8DKgACATADKwACATEDMgACATIDQAACATMDNAACATUDNgACATYDNwACATcDOAACATgDOQACATkDOgACAToDOwACATsDPAACATwDPQACAT0DPgACAT4DPwACAT8DQQACAUADQgACAUEDQwACAUIDRAACAUMDRQACAUQDUAACAUUDUwACAUYDVAACAUcDVQACAUgDXAACAUkDVgACAUoDVwACAUsDWAACAUwDWQACAU0DWgACAU4DWwACAU8DXAACAVADXQACAVEDXgACAVIDhAACALcDkwACAVMDIAACAVQDmQACAVUDmgACAVYDmwACAVgDnQACAVkDnwACAVoDoAACAVsDoQACAVwDogACAV0DowACAV4DpAACAV8DpQACAWADpgACAWEDpwACAWIDqAACAWMDqQACAWQDqgACAWUDqwACAWYDrAACAWcDrQACAWgDrgACAWkDrwACAWoDsAACAWsDsQACAWwDsgACAW0DswACAW4DtAACAW8DtQACAXADtgACAXEDtwACAXIDuAACAXMDugACAXQDuwACAXUDvAACAXYDvQACAXcDvgACAXgDwAACAXkDwQACAXoDwgACAXsDwwACAXwDxAACAX0DxQACAX4DxgACAX8DxwACAYADyAACAYEDyQACAYIDygACAYMDywACAYQDzAACAYUDzQACAYYDzgACATQDNQACAn4C3wACAn8C4AACAoAC4QACAoEC4gACAoIC4wACAoMC5AACAoQC5QACAoUC5gACAoYC5wACAocC6AACAogC6QACAokC6gACAooC6wACAosC7AACAowC7QACAo0C7gACAo4C7wACAo8C8AACApAC8QACApEC8gACApIC8wACApMC9AACApQC9QACApUC9gACApYC9wACApcC+AACApgC+QACApkDCAACApoDCQACApsDCgACApwDCwACAp0DDAACAp4DDQACAp8DDgACAqADDwACAqEDEAACAqIDEQACAqMDEgACAqQDEwACAqUDFAACAqYDFQACAqcDFgACAqgDFwACAqkDGAACAqoDGQACAqsDGgACAqwDGwACAq0DHAACAq4DHQACAq8DHgACArADHwACArEDIAACArIDIwACAeMDMgACArMDSgACArQDSwACArUDTAACArYDTQACArcDTgACArgDTwACArkDUAACAroDUQACArsDUgACA18EYwACArwDgQACAj8DkwACAr0DmQACAr4DmgACAr8DmwACAsEDnQACAsIDngACAsMDnwACAsQDoAACAsUDugACAsYDuwACAscDvAACAsgDvQACAskDvgACAsoDwAACAssDwQACAswDwgACAs0DwwACAs4DxAACAs8DxQACAtADxgACAtEDxwACAtIDyAACAtMDyQACAtQDygACAtUDywACAtYDzAACAtcDzQACAtgDzgACBNkE4QACBNoE6QACBNsE7gACBN4E3wACBXwFlAACBYAFnQACBYEFngACBYIFoAACBYYFlgACBYwFpQACBY0FpgACBb4F3AACBb8F3QACBcAF3gACBcEF3wACBcIF4AACBcMF4QACBcQF4gACBcUF4wACBcYF5AACBccF5QACBg4GKgACBlAGXwACBlEGYAACBlIGYQACBlMGYgACBzMHSQACBzUHSwADAPMC3gRiAAMAwQFXA5wAAwJ9At4EYgADAkkCwAOcAAMFfQWVBZkAAwWHBZcFogADBicGKQYsAAYFyAXSBeYF8AX6BgQABgXJBdMF5wXxBfsGBQAGBcoF1AXoBfIF/AYGAAYFywXVBekF8wX9BgcABgXMBdYF6gX0Bf4GCAAGBc0F1wXrBfUF/wYJAAYFzgXYBewF9gYABgoABgXPBdkF7QX3BgEGCwAGBdAF2gXuBfgGAgYMAAYF0QXbBe8F+QYDBg0AAgAnAAEAHAAAACYAJgAcACwAQwAdAEYATgA1AFUAZgA+AGsAawBQAHQAgQBRAKYApgBfALUAtQBgALwA2wBhAN0A4QCBAOMA8gCGAYcBogCWAbEByQCyAcwBzADLAdsB2wDMAfMB+wDNAgkCCQDWAisCKwDXAj0CPQDYAkUCTADZAmYCagDhAmwCegDmBGoEagD1BHYEdgD2BIAEgAD3BKYEpgD4BQgFCAD5BQsFCwD6BREFEwD7BRsFGwD+BR4FHgD/BSgFKQEABb4F2wECBiEGIQEgBiUGJQEhBkoGTQEiBwcHBwEmBwoHCgEnAAIAPAABABwAAAAmACYAHAAsAEMAHQBGAE4ANQBVAGYAPgBrAGsAUAB0AIAAUQCmAKYAXgC8ANsAXwDdAOEAfwDjAPIAhAGHAaIAlAGxAckAsAHMAcwAyQHzAfsAygIrAisA0wJFAkwA1AJmAmoA3AJsAnoA4QLaAtsA8ALeAvkA8gMIAyABDgMjAysBJwMyAzoBMAM8A0UBOQNQA1ABQwNTA14BRAOEA4QBUAOZA7gBUQO6A74BcQPAA84BdgRkBGQBhQRqBG0BhgRwBHMBigR2BHYBjgR7BHsBjwR9BIABkASHBIsBlASRBJEBmQSWBJYBmgSnBKcBmwS5BL4BnATCBMMBogTIBMoBpATNBM0BpwTTBNMBqATVBNUBqQUFBQUBqgULBQ4BqwURBRQBrwUcBRwBswUeBSABtAUoBSwBtwU3BTcBvAVbBWABvQVkBWUBwwVqBWwBxQVvBW8ByAV3BXcByQbRBtEBygACAF8AHQAlAAAAJwArAAkARABFAA4ATwBUABAAZwBqABYAbABzABoAggClACIApwC0AEYAtgC7AFQA3ADcAFoA4gDiAFsBowGwAFwBygHLAGoBzQHaAGwB3AHsAHoB7gHyAIsB/AH/AJACAQIIAJQCCgIqAJwCLAI8AL0CPgJDAM4CTQJlANQCawJrAO0CewJ7AO4C2gLbAO8C3gL5APEDCAMgAQ0DIwMrASYDMgM6AS8DPANFATgDUANQAUIDUwNeAUMDhAOEAU8DmQO4AVADugO+AXADwAPOAXUEZARkAYQEawRtAYUEcARzAYgEewR7AYwEfQR/AY0EhwSLAZAEkQSRAZUElgSWAZYEmgSaAZcEnQSdAZgEpwSnAZkEuQS+AZoEwgTDAaAEyATKAaIEzQTNAaUE0wTTAaYE1QTVAacFBQUHAagFCQUJAasFDAUQAawFFAUVAbEFFwUXAbMFGQUZAbQFHAUcAbUFHwUgAbYFIwUmAbgFKgUsAbwFNAU0Ab8FNwU3AcAFOwU7AcEFPgU+AcIFRwVHAcMFWwVgAcQFZAVlAcoFagVsAcwFbwVvAc8FdwV3AdAF3AXlAdEF+gYDAdsGGAYYAeUGHQYgAeYGIgYiAeoGJgYmAesGLAYyAewGOQY5AfMGOwY8AfQGRAZJAfYGTgZPAfwGpgamAf4GqAaoAf8GqgaqAgAGrAasAgEGwQbCAgIG0QbRAgQG4AbrAgUG7QbwAhEG8wb9AhUHCAcJAiAHVAdbAiIC2QACAdUAAQABAL0G0QADAgkGGAABAAEAdgLaAAIB2wLbAAIB8wABAAEBzADyAAIAZQJ7AAIB7AABAAIAVwHdAAEB8wABAAEB8wABAAAADAABAGoAAQABAGoAAQAAAA0HWAACBugHWQACBuYHWgACBvsHWwACBvMHVAACBugHVQACBuYHVgACBvsHVwACBvMHYAACByAHYQACBx4HYgACBzAHYwACBygHXAACByAHXQACBx4HXgACBzAHXwACBygAAQAEBu0G8AckBycAAAABAAEAAQABAAAABgABAAEAAQAAAAEAAAAHBuUAAgb3BucAAgb3Bu8AAgbkBvIAAgboBx0AAgcsBx8AAgcsByYAAgccBukAAgbkBuoAAgb3ByEAAgccByIAAgcsBuIAAgboBuEAAgbmBuMAAgb3BvUAAgboBvQAAgbgBvYAAgb3BvoAAgboBvgAAgbgBvkAAgbmBxoAAgcgBxkAAgceBxsAAgcsByoAAgcgBykAAgcYBysAAgcsBy8AAgcgBy0AAgcYBy4AAgceAAEADwbgBuQG5gboBu4G8QbzBvcHGAccBx4HIAclBygHLAAAAAEAAQAIAAIAAAAUAAIAAAAkAAJ3Z2h0AQAAAGl0YWwBEwABAAQAEAABAAAAAAEFAfQAAAADAAEAAgEUAAAAAAABAAA='","export const MontserratBold='AAEAAAAQAQAABAAAR0RFRj6kOmsAAccEAAADtkdQT1PQ/hlXAAHKvAABEbJHU1VCwqQ5gwAC3HAAACkCT1MvMngVXg0AAWJgAAAAYFNUQVTl5MwmAAMFdAAAAERjbWFweePSoAABYsAAAArqZ2FzcAAAABAAAcb8AAAACGdseWacdk5oAAABDAABNBZoZWFkGBay5wABRDAAAAA2aGhlYQkaCYUAAWI8AAAAJGhtdHhE8mZ/AAFEaAAAHdRsb2NhG5ZlnQABNUQAAA7sbWF4cAeJALYAATUkAAAAIG5hbWVtb5aRAAFttAAABBpwb3N0brG8rAABcdAAAFUqcHJlcGgGjIUAAW2sAAAABwACACgAAAIjArwAAwAHAABzESERJSERISgB+/5VAVv+pQK8/URGAjAAAv/3AAADCAK8AAcACwAAYwEzASMBMwEnNyEXCQE4oAE5qv8AQP7/CisBaCwCvP1EAmr9lpZ7e/////cAAAMIA4UGJgABAAAABgcgUwD////3AAADCAOFBiYAAQAAAAYHJ1MA////9wAAAwgD/gYmAAEAAAAGB1xTAP////f/LgMIA4UGJgABAAAAJgcAUwAABgcnUwD////3AAADCAP+BiYAAQAAAAYHXVMA////9wAAAwgEDwYmAAEAAAAGB15TAP////cAAAMIBAcGJgABAAAABgdfUwD////3AAADCAOFBiYAAQAAAAYHJVMA////9wAAAwgDhQYmAAEAAAAGByRTAP////cAAAMIA84GJgABAAAABgdgUwD////3/y4DCAOFBiYAAQAAACYHAFMAAAYHJFMA////9wAAAwgDzgYmAAEAAAAGB2FTAP////cAAAMIA+gGJgABAAAABgdiUwD////3AAADCAQNBiYAAQAAAAYHY1MA////9wAAAwgDhQYmAAEAAAAGBzFTAP////cAAAMIA4QGJgABAAAABgcYUwD////3/y4DCAK8BiYAAQAAAAYHAFMA////9wAAAwgDhQYmAAEAAAAGBx5TAP////cAAAMIA9QGJgABAAAABgcwUwD////3AAADCAONBiYAAQAAAAYHMlMA////9wAAAwgDaQYmAAEAAAAGByxTAP////f/GAMfArwGJgABAAAABwcEAdsAAP////cAAAMIA+QGJgABAAAABwbxAFMAov////cAAAMIBDQGJgAB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NgGPQGU6nDk0JTshnJwjHWwCIjNpUv7MARxBPh9AMv72Aub+ny02Ov//AAAAAAJuAuYGJgHVAAAABwcH/6IAyv//AEj/JwJuAuYGJgHVAAAABgcFMAD////NAAACbgO7BiYB1QAAAAcG7v9qAMz////NAAACbgOvBiYB1QAAAAcHJP9qACr//wBI/y4CbgLmBiYB1QAAAAYHADAA//8ANQAAAPgDEwYmAdwAAAAHBzf/agAAAAEASAAAAOQCGgADAABzETMRSJwCGv3m//8APAAAAWoC7wYmAdwAAAAHBuj/agAA////9wAAATYC7wYmAdwAAAAHB0X/agAA////5gAAAUYC7wYmAdwAAAAHB0T/agAA////kAAAATUC7wYmAdwAAAAHBvz/agAA//8AAwAAASkC7QYmAdwAAAAHB0P/agAA////8gAAAU4DeQYmAdwAAAAHBuL/agAA//8AQgAAAOsDDQYmAdwAAAAHBuT/agAA//8ANf8uAPgDEwYmAdsAAAAHBwD/agAA////wgAAAPEC7wYmAdwAAAAHBub/agAA//8ALAAAARADPgYmAdwAAAAHBvv/agAA////9wAAATYC9wYmAdwAAAAHB0j/agAA//8ANf82AisDEwQmAdsAAAAHAewBLQAA//8AAAAAASwC0wYmAdwAAAAHB0f/agAA//8ANf8YAQMDEwYmAdwAAAAnBzf/agAAAAYHOLgA////8QAAATsC9QYmAdwAAAAHB0b/agAA////o/82AP4DEwYmAe0AAAAHBzf/cQAAAAH/o/82AOsCGgAOAABXIiYnNxYzMjY1ETMRFAYgJEIXKhsnHSOcasoPD3ETJycCGv3nXW4A////o/82AU0C7wYmAe0AAAAHB0T/cQAAAAMASAAAApYC5gAFAAkADQAAdzc3Mw8CETMRMyc3AckE+7rxUfic9bZiARFuvu71QuMC5v0a4nn+pf///80AAAKWA7sGJgHvAAAABwbu/2oAzP//AEj+9gKWAuYGJgHvAAAABgcCEgAAAwBIAAAClgIaAAUACQANAAB3NzczDwIRMxEzJzcByQT7uvFR+Jz1tmIBEW6+7vVC4wIa/ebief6lAAEASAAAAOQC5gADAABzETMRSJwC5v0a//8APAAAAWoDuwYmAfMAAAAHBuj/agDM//8ASAAAAakDDwYmAfMAAAAG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AsoAAAAGBvMpAAACACgAAAIIAhoACwATAABzNQEXITUhFQEnIRUnJyM1MxczFSgBPhv+rgHQ/sIcAWPjKbLaKZheAXg0eF7+iDR42wFoAWj//wAoAAACCALvBiYC1AAAAAYG6OgA//8AKAAAAggC7wYmAtQAAAAGBu7oAP//ACgAAAIIAw0GJgLUAAAABgbk6AD//wAo/y4CCAIaBiYC1AAAAAYHAOgAAAIABAAABJcCvAAHAB4AAHMRIzUhFSERATIWFhURIxE0JiMiBgYVESMRMxEnNjbk4AKC/wACMUBlO5w6MyY6IZycIx1rAjiEhP3IAiIzaVL+zAEcQT4fQDL+9gK8/sktNjr//wAIAAAChAMTBCYBzAAAAAcB2wGNAAD//wAIAAACcQLuBCYBzAAAAAcB8wGNAAD//wBIAAACcQMTBCYCsgAAAAcB2wF6AAAAAgAI/5MCyALuAB8AIwAARSImNRE0JiMiBhURIxE0NjYzMhYWFREUFjMyNjcXBgYBNSEVAnZaZzItLTKcO3FQUnA4IyANGAgHFSj9fQF1bWBaAb40MzM0/fUCAUlqOjpqSf5WIyUGBHkGBwIDeHgAAAL/9wAAApgCPwAHAAsAAGMBMwEjAzMDJzchFwkBApwBA5zPNdIMKQEcKQI//cEB8/4NcnJy////9wAAApgDFAYmAt4AAAAGBugbJf////cAAAKYAxQGJgLeAAAABgbwGyX////3AAACmAONBiYC3gAAAAYHVBsl////9/8uApgDFAYmAt4AAAAmBwAbAAAGBvAbJf////cAAAKYA40GJgLeAAAABgdVGyX////3AAACmAOeBiYC3gAAAAYHVhsl////9wAAApgDlgYmAt4AAAAGB1cbJf////cAAAKYAxQGJgLeAAAABgbuGyX////3AAACmAMUBiYC3gAAAAYG7Rsl////9wAAAs0DXQYmAt4AAAAGB1gbJf////f/LgKYAxQGJgLeAAAAJgcAGwAABgbtGyX////3AAACmANdBiYC3gAAAAYHWRsl////9wAAApgDdwYmAt4AAAAGB1obJf////cAAAKYA5wGJgLeAAAABgdbGyX////3AAACmAMUBiYC3gAAAAYG/Bsl////9wAAApgDEwYmAt4AAAAGBuAbJf////f/LgKYAj8GJgLeAAAABgcAGwD////3AAACmAMU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Y5FjnWPUY+BkA2QPZDlkRWRQZFtkY2RuZKlktGTAZMtk+mUFZRBlG2VTZV5laWV0ZX9limWVZaBlrGXbZg5mM2Z5ZrJmumbZZwBnRWdpZ3Vnw2gEaAxoQmiGaI5omWikaMVo2mjiaOpo8mkVaSFpXGloaZhpzmoKah9qKmo1akBqiGqQaphqo2rlau1q9Wr9awhrE2s4a0NrUmtda5RrnGuka69r32wVbExsnGzLbQJtDW0YbSBtK21jbW5teW2EbY9tmm2lbbFt6G4DbjtuZG6PbtFu2W8LbxtvSG93b5RvxXANcCRwdXC9cO9w/3EscVtxeHGpcbFxyXHRcdlyC3IjclJygXKectJzHnM1c4Zz0nQEdBx0SXR4dJV0yXTRdOl08XU9dUV1TXVVdV11ZXVtdXV1fXWFdY11snXKdfN2IXY8dmp2rHbCdwx3TndXd2B3aXdyd3t3hHeNd5Z3n3eod7F3unfDd8x31Xfed+d38Hf5eAJ4EHggeDB4QHhQeGB4cHiAeJB4oHi2eNN433jrePt5GHk2eXB5q3nBed16B3oqejl6R3pPeld6bXp8eop6oHq6etN7CXs+e097YXtpe3F7eXuBe4l7kXude6V7sXu9e8p70nvae+Z77nv2e/58G3wnfDN8P3xdfHt8h3yTfKN8sny+fMx81HzcfOR87H0CfR99PX11fa59y33XfeN9734Nfit+N35DflN+Yn5ufnt+jX6ffp9+n36ffp9+n36ffp9+n37Zfw9/UX+lf+2AOIB4gK+Ay4ELgV6BgoGzgdmCA4IogjiCboKagsuC9oMOgzGDXoOHg4+DvYPFg9iD5YP9hCmEPIRXhGqEfoSXhLKEy4URhTeFR4VbhZWF64YVhh2GJYY4hlmGb4Z3hsGHG4eah7CHzIfjh/+IFogyiEiIY4iDiKOIuojRiOiI/okOiSaJPIlJiVyJaYl2iYOJkImiibWJyInbilSKqYrFiy2Lj4vpjBOMRYxTjGiMdYyJjMeM3Iz5jUKNho2OjdyOKo4yjjuOR45UjmKOcI6MjqiOtY7Bjs2O847/jwuPF48ujzqPSI9Uj2GPbY95j42Pmo+sj76Pyo/lkBGQRJBrkHeQg5CPkJyQqJC0kMCQ4ZD1kQ+RLJFIkV6Rg5GfkcSR6JICkg6SG5IokjaSRZJNklWSXZJlkm2SdZJ9koWSjZKVkp2SpZKtkraSv5LIktGS2pLjkuyS9ZL+kweTEJMZkyKTK5M0kz2TRpNPk1iTYZNqk3OTfJOFk46Tl5Ogk62Tu5PKk9OT6pQLlDGUSJRWlGOUdZSHlKKUx5TUlPWVG5UtlUeVbJV5lZKVnpWrlbqVx5XUle2V/JYWliaWNpZFllGWXZZolnSWgJaMlpiWpJatlraWv5bIltGW2pbjluyW7Jb4lwSXFZcll12XnJfbmBaYZJixmPeZJplcmZ2Z1JoLAAEAAAAIAAB8W33JXw889QADA+gAAAAA1gv+RgAAAADdnHDE/1b+/QX5A/0AAQAGAAIAAAAAAAACSwAoAv7/9wL+//cC/v/3Av7/9wL+//cC/v/3Av7/9wL+//cC/v/3Av7/9wL+//cC/v/3Av7/9wL+//cC/v/3Av7/9wL+//cC/v/3Av7/9wL+//cC/v/3Av7/9wL+//cC/v/3Av7/9wL+//cEOP/3BDj/9wL9AFMC3QAnAt0AJwLdACcC3QAnAt0AJwLdACcC3QAnAzoAUwWpAFMDRwABAzoAUwNHAAEDOgBTAzoAUwVZAFMCnwBTAp8AUwKfAFMCnwBTAp8AUwKfAFMCnwBTAp8AUwKfAFMCnwBTAp8AUwKfAFMCnwBTAp8AUwKfAFMCnwBTAp8AUwKfAFMCnwBTAp8AUwKfAFMCnwBTAp8AUwJ+ABkCfgAZAn8AUwMDACcDAwAnAwMAJwMDACcDAwAnAwMAJwMDACcDKwAnAygAUwNDAAEDKABTAygAUwMoAFMDKABTAUgAUwLUAD0BSABKAUj/7AFI/9sBSP+eAUj/+QFIAAABSABQAUgAUwFI/9ABSAA6AUj/7AFIAA4BSABSAUj/5AId//ACHf/wAuQAUwLkAFMC5ABTAlwAUwR6AFMCXABKAlwAUwJcAFMCXABTAlwAUwOPAFMCXABTAmr/8wO7AFMDuwBTAygAUwVGAFMDKABTAygAUwMoAFMDKABTAygAUwMoAFMEWwBTAygAUwMoAFMDTAAnA0wAJwNMACcDTAAnA0wAJwNMACcDTAAnA0wAJwNMACcDTAAnA0wAJwNMACcDTAAnA0wAJwNMACcDTAAnA0wAJwNMACcDTAAnA0wAJwNMACcDTAAnA0wAJwNMACcDTAAnA0wAJwNMACcDTAAnA0wAJwNMACcDTAAnA0wAJwNMACcDTAAnBHAAJwLcAFMC3ABTA0wAJwLfAFMC3wBTAt8AUwLfAFMC3wBTAt8AUwLfAFMC3wBTAn4AHAJ+ABwCfgAcASkARAJ+ABwCfgAcAn4AHAJ+ABwCfgAcAn4AHAJ+ABwCfgAcAwsATQMxACcCagAEAmoABAJqAAQCagAEAmoABAJqAAQCagAEAxQATQMUAE0DFABNAxQATQMUAE0DFABNAxQATQMUAE0DFABNAxQATQMhAE0DIQBNAyEATQMhAE0DIQBNAyEATQMUAE0DFABNAxQATQMUAE0DFABNAxQATQMUAE0DFABNAur/9wSLABYEiwAWBIsAFgSLABYEiwAWAsoAAwKk//ICpP/yAqT/8gKk//ICpP/yAqT/8gKk//ICpP/yAqT/8gKk//ICnwAmAp8AJgKfACYCnwAmAp8AJgLUAD0DHABNAxwATQMcAE0DHABNAxwATQMcAE0DHABNAxwATQMcAE0DHABNAxwATQMcAE0DHABNAxwATQMcAE0DHABNAxwATQMcAE0DHABNAxwATQMcAE0DHABNAxwATQMcAE0DHABNAxwATQQ+AEYEPgBGBakAUwVjAFMCmwAnApsAJwKbACcCmwAnApsAJwKbACcCmwAnApsAJwKbACcCmwAnApsAJwKbACcCmwAnApsAJwKbACcCmwAnApsAJwKbACcCmwAnApsAJwKbACcCmwAnApsAJwJnAE0DAwAnAwMAJwMDACcDAwAnAwMAJwMDACcDAwAnAzAAJwHjACcC1AA9AeMAJwLUAD0B4wAnAeMAJwHj/+wB4wAnAeMAJwHjACcB4wAnAeMAHgHjACcB4wAnAeMAJwHjACcB4wAnAhz/8AIc//AElgBTBMUAUwTFAFMDHABTBTgAUwMcAFMDHABTAxwAUwMcAFMDHABTAxwAUwRPAFMDHABTAxwAUwNMACcDMQA3An7/9QJ+//UCfv/1An7/9QJ+//UCfv/1An7/9QMYAE0DGABNAxgATQMYAE0DGABNAxgATQMYAE0DGABNAxgATQMYAE0DGABNAxgATQMYAE0DGABNAxgATQMYAE0DGABNAxgATQMYAE0DGABNAxgATQMYAE0DGABNAxgATQSxAE0EsQBNBLEATQSxAE0EsQBNAxEASAMRAEgDEQBIAxEASAMRAEgDEQBIAxEASAMRAEgDEQBIAxEASAKpACsCqQArAqkAKwKpACsCqQArAmkAJQJpACUCaQAlAmkAJQJpACUCaQAlAmkAJQJpACUCaQAlAmkAJQJpACUCaQAlAmkAJQJpACUCaQAlAmkAJQJpACUCaQAlAmkAJQJpACUCaQAlAmkAJQJpACUCaQAlAmkAJQJpACUD5AAlA+QAJQKyAEgCTwAgAk8AIAJPACACTwAgAk8AIAJPACACTwAgArQAIgKRACACtAAiArQAIgK0ACICtAAiBNEAIgJ3ACACdwAgAncAIAJ3ACACdwAgAncAIAJ3ACACdwAgAncAIAJ3ACACdwAgAncAIAJ3ACACdwAgAncAIAJ3ACACdwAgAncAIAJ3ACACdwAgAncAIAJ3ACACdwAgAncAIAIq/+4CKv/uAYMACAK8ACACvAAgArwAIAK8ACACvAAgArwAIAK8ACACxwAgArMASAKzAAACswBIArP/zQKz/80CswBIAS0ANQEtAEgBLQA8AS3/9wEt/+YBLf+QAS0AAwEt//IBLQBCAS0ANQEt/8IBLQAsAS3/9wJgADUBLQAAAS0ANQEt//EBM/+jATP/owEz/6MClABIApT/zQKUAEgChQBIAS0ASAEtADwBLQBIAS0ASAGkAEgBLQBIAmAASAEt/94BR//lBBkASAQZAEgCswBIArMASAMY/+4CswBIArMASAKzAEgCswBIArMASAPlAEgCswBIArMASAKPACACjwAgAo8AIAKPACACjwAgAo8AIAKPACACjwAgAo8AIAKPACACjwAgAo8AIAKPACACjwAgAo8AIAKPACACjwAgAo8AIAKPACACjwAgAo8AIAKPACACjwAgAo8AIAKPACACjwAgAo8AIAKPACACjwAgAo8AIAKPACACjwAgAo8AIAKPACAEKAAgArIASAKyAEgCsgAgAa8ASAGvAEgBrwAmAa8ASAGv/+kBrwBIAa8ANwGv/94CEwAUAhMAFAITABQBJABEAhMAFAITABQCEwAUAhMAFAITABQCEwAUAhMAFAITABQCtQBIAU0AEwGzAAgBvQANAbMACAGzAAgBswAIAbP//gGzAAgBswAIAq8ARQKvAEUCrwBFAq8ARQKvAEUCrwBFAq8ARQKvAEUCrwBFAq8ARQK9AEUCvQBFAr0ARQK9AEUCvQBFAr0ARQKvAEUCrwBFAq8ARQKvAEUCrwBFAq8ARQKvAEUCrwBFAlb/+AOpAAEDqQABA6kAAQOpAAEDqQABAlMABAJW//YCVv/2Alb/9gJW//YCVv/2Alb/9gJW//YCVv/2Alb/9gJW//YCHwAjAh8AIwIfACMCHwAjAh8AIwJeAEECoQBHArIAIAKyACACsgAgArIAIAKyACACsgAgArIAIAKyACACsgAgArIAIAKyACACsgAgArIAIAKyACACsgAgArIAIAKyACACsgAgArIAIAKyACACsgAgArIAIAKyACACsgAgArIAIAKyACAD4wAlA+MAJQTeACICdwAgAncAIAJ3ACACdwAgAncAIAJ3ACACdwAgAncAIAJ3ACACdwAgAncAIAJ3ACACdwAgAncAIAJ3ACACdwAgAncAIAJ3ACACdwAgAncAIAJ3ACACdwAgAncAIAJ3ACABcABIAV8ASAFfADwBXwBIAV8ASAGuAEgBXwBIAnoASAFfACABX//YBDUAIAGcAEUBpgACAZwARQGcAEUBnABFAZz/6AGcAEUBnAA4A98ARQPfAEUD3wBFA98ARQPfAEUCrwBAAq8AQAKvAEACrwBAAq8AQAKvAEACrwBAAq8AQAKvAEACrwBAAikAKAIpACgCKQAoAikAKAIpACgE2wAEArkACAK5AAgCpgBIAswACAKP//cCj//3Ao//9wKP//cCj//3Ao//9wKP//cCj//3Ao//9wKP//cCj//3Ao//9wKP//cCj//3Ao//9wKP//cCj//3Ao//9wKP//cCj//3Ao//9wKP//cCj//3Ao//9wKP//cCj//3A5f/9wOX//cCkgBNAnIAIwJyACMCcgAjAnIAIwJyACMCcgAjAnIAIwLGAE0C2gATAsYATQLaABMCxgBNAsYATQTmAE0CQgBNAkIATQJCAE0CQgBNAkIATQJCAE0CQgBNAkIATQJCAE0CQgBNAkIATQJCACkCQgBNAkIATQJCAE0CQgBNAkIATQJCAE0CQgBNAkIATQJCAE0CQgBNAkIATQKkACMCPwAdAj8AHQIqAE0CkwAjApMAIwKTACMCkwAjApMAIwKTACMCkwAjArUAIwLAAE0C6AAUAsAATQLAAE0CwABNAsAATQE3AE0BNwBNATcAQQJcACoBN//8ATf/6wE3/5UBNwAIATf/9wE3AEcBNwBNATf/xwE3ADEBN//8AngAMgE3AAUBNwBIATf/9gHg//MB4P/zAocATQKHAE0ChwBNAocATQIMAE0CDABBAgwATQIMAE0CDABNAgwATQPsAE0CDABNAgz/3QM7AE0DOwBNAsAATQLAAE0CwABNAsAATQLAAE0CwABNAsAATQSgAE0CwABNAsAATQLMACMCzAAjAswAIwLMACMCzAAjAswAIwLMACMCzAAjAswAIwLMACMCzAAjAswAIwLMACMCzAAjAswAIwLMACMCzAAjAswAIwLMACMCzAAjAswAIwLMACMCzAAjAswAIwLMACMCzAAjAswAIwLMACMCzAAjAswAIwLMACMCzAAjAswAIwLMACMDwAAjAn0ATQJ9AE0CzAAjAoQATQKEAE0ChABNAoQATQKEAEMChABNAoQATQKEAE0CJwAZAicAGQInABkBJABEAicAGQInABkCJwAZAicAGQInABkCJwAZAicAGQInABkCEAAEAhAABAIQAAQCEAAEAhAABAIQAAQCEAAEAhAABAKuAEcCrgBHAq4ARwKuAEcCrgBHAq4ARwKuAEcCrgBHAq4ARwKuAEcCvABHArwARwK8AEcCvABHArwARwK8AEcCrgBHAq4ARwKuAEcCrgBHAq4ARwKuAEcCrgBHAq4ARwKI//wD5wAVA+cAFQPnABUD5wAVA+cAFQJpAAICWf/1Aln/9QJZ//UCWf/1Aln/9QJZ//UCWf/1Aln/9QJZ//UCWf/1AkEAJAJBACQCQQAkAkEAJAJBACQCtQBHArUARwK1AEcCtQBHArUARwK1AEcCtQBHArUARwK1AEcCtQBHArUARwK1AEcCtQBHArUARwK1AEcCtQBHArUARwK1AEcCtQBHArUARwK1AEcCtQBHArUARwK1AEcCtQBHArUARwOuAEEDrgBBBQEATQJAAB8CQAAfAkAAHwJAAB8CQAAfAkAAHwJAAB8CQAAfAkAAHwJAAB8CQAAfAkAAHwJAAB8CQAAfAkAAHwJAAB8CQAAfAkAAHwJAAB8CQAAfAkAAHwJAAB8CQAAfAqQALAIVAEcCkwAjApMAIwKTACMCkwAjApMAIwKTACMCkwAjArgAIwG/ADEBvwAxAb8AMQJ4ACoBvwAxAb8AMAG//9oBvwAxAb8AMQG/ADEBvwAMAb8AMQG/ADECeAAyAb8AMQG/ADEBvwAxAeD/8wHg//MD7ABNBA8ATQQPAE0CtQBNArUATQK1AE0CtQBNArUATQK1AE0CtQBNBJUATQK1AE0CtQBNAswAIwIj//UCI//1AiP/9QIj//UCI//1AiP/9QIj//UCI//1ArUARwK1AEcCtQBHArUARwK1AEcCtQBHArUARwK1AEcCtQBHArUARwLDAEcCwwBHAsMARwLDAEcCwwBHAsMARwK1AEcCtQBHArUARwK1AEcCtQBHArUARwK1AEcCtQBHBAwARwQMAEcEDABHBAwARwQMAEcCqwBCAqsAQgKrAEICqwBCAqsAQgKrAEICqwBCAqsAQgKrAEICqwBCAkUAJgJFACYCRQAmAkUAJgJFACYBnAAcAasAGAMfAAcC4gBXAukAVwJRAFcCUQBXAlMAVwM/AA8CoQBXAqEAVwKhAFcENwANApAAGAM1AFcDNQBXAzUAVwNdAFcC3wBVAt8AVQMfAA4DwwBXAzEAVwNKACYDLABXAtQAVwLWACcCfQAPAtQACQLUAAkDtgAiAtIACgLtACoDSQBXBEoAVwRqAFcDKABXAtEAVwNNAA8EBABXBKEADgSTAFcCjQAlAssAKALKABMBTwBXAUj/+QI4AAsDWQAPBFoAVwLeACkDUQAPAz0AEQOxAAwDSgAmAxkACQKAABYCwgBXBFcADQKQABgDBABVAwcAVQL2ABkDXQAPA1QAVwQ2AFcDTwBXA9EAKwLWACcCfQAPAsgAAwLIAAMC7wAKA+EAEAMRACoC7QAqAu0AVwM2AFcD+gAXA/oAFwFRAFcENwANAugAVwMuAFcDWABXAugAJwP5AFcDHwAHAx8ABwRDAAQCoQBXAzUAIAM1ACAENwANApAAGAJ+ABkDNQBXAzUAVwNKACYDSgAmA0oAJgLKABMC1AAJAtQACQLUAAkC7QAqAlEAVwQEAFcCgQAUAs8ACALbAA4CkAApAx8ADQNPACYEZwANAvAAFwLfAFcDLf+tA0IADgNEABADDgAIA7gAJAJbAFcCkAAYAtYAJwLWACcDHABNA1oAFwKbACcCmwAnApsAJwMYAE0DGABNAxgATQMYAE0DIQAYAtQASAKmAAoDEQBIAxEASAO6ACUC1ABLA3AAEAQEAEsEnAANBIIAVwIc//ADTAARAqYACgMcAE0DHABNBD4ARgKbACcDMQA3AzEANwMYAE0DGABNAxEASAMRAEgDEQBIBAQASwNMACcC/AAUAlwAIQKhAC4CbgBLAgIASwICAEsB9gBLAr0ACgKDAB8CgwAfAoMAHwORAAYCMgAUAsYASwLGAEsCxgBLAuEASwKCAEsCggBLApoABwMvAEsCtgBLAo4AHwKtAEsCtgBLAlAAHwIXAAgCZv/9Amb//QNRAB8CUAACAnoAIQLAAEsDywBLA8sASwKVAEsCXQBLAqoACANbAEsDxQAHA8wASwInACACUAAgAk4ADgExADcBLQADATL/nwKt/9IDhwBLAnQAHwKt/+sCiAAAAwMABwKVAB8CiAABAiUAHQJzAEsDrAAGAjIAFAKCAEsCkQBGAoD/8wLYAAgC0QBLA4cASwKtAEsDQQAjAlAAHwIXAAgCaAABAmgAAQJQAAIDHwAJApsAIQJ6ACECrQBLAtIASwMvAAoDLwAKATEASwORAAYCggBLArUABwK5AEsC0gBLAnUAHQNaAEsCXAAhAlwAIQPjACACgwAfAoMALQKDAC0DkQAGAjIAFAIq/+4CxgBLAsYASwKOAB8ClQAfApUAHwJOAA4CZv/9Amb//QJm//0CegAhAgIASwNbAEsCCgAQAlIABAJhAAoCMgAlApoABwK2ACIDygAEAoEAEAK/AEsCt/+hArQABwKGADsCLAAgArsAHgORAAYCAf/3AqgAPAKoADwCqAA8AoAASwJnAAECtgBLAq0ASwQUAEsCewAjAsoAPAQUAD0ENQA9AlkAPwLGAAkDeQBLAg0ASwIyABQCUAAfAgIASwJ5ABsBLQAAArsAHAKvAEUEFAA9ArIAIAK7AB4CdwAgAncAIAJ3ACACqAA8AqgAPAKoADwCqAA8Ap4ANgQUAEsCrwBAAq8AQAJjAD8CzwAJA14APwPJAAoDzABLApj//gKyACACsgAgA+MAJQJ3ACACdwAgAncAIAKoADwCqAA8Aq8AQAKvAEACrwBAA14APwKMAA4C/v/3A3kACQKyAEgC2P/xAv7/9wLkAFMCpwAnAYgABwJOAAECUP//ArEAHwJTAAoCfQAnAmwAGgKUACMCfQAUArYAKgGIAAcCTv/+AlD//wKxAB8CUwAKAn0AJwJsABoClAAjAn0AFAK8AC0CvACEArwALAK8AC4CvAAkArwALwK8ADUCvAA+ArwALgK8AC0CvAAsArwAhAK8ADMCvAAuArwAJAK8AC8CvAA1ArwAPgK8AC4CvAAtAa4AEwGuAEkBrgASAa4AEgGuAAwBrgARAa4AGAGuABwBrgAUAa4AFgGuABMBrgBJAa4AEgGuABIBrgAMAa4AEQGuABgBrgAcAa4AFAGuABYBrgATAa4ASQGuABIBrgASAa4ADAGuABEBrgAYAa4AHAGuABQBrgAWAa4AEwGuAEkBrgASAa4AEgGuAAwBrgARAa4AGAGuABwBrgAUAa4AFgC4/zIEFABJBBQASQQUABIEFABJBBQAEgQUAEkEFAASBBQAEQQUABwBBgAiAQYAIwEGACIBBgAiAx4AIgEhADEBIQAxAk3//wJNADQBLgA2AWYANgGyAA0C0AAUAYj/3wGI/9UBQgBAAXoAQAFcAG4BiP/fAYj/1QCtACYBZQBJAWYACgGHADQBhwAPAXAAUwFwAA8BeQBTAXoAFAGbAD4BmwAZAYQAXQGEABkBggA0AYIANAH0AAAD6AAAArwALAPoAAABggA0AfQAAAGWAD4B9AAAA+gAAAEGACMB8gAjAfIAIgHyACMBBgAiAQYAIwI4ACQCOAAZAVYAJAFWABkBtQAxAOYAMQJMAC4CTAAjAWoALgFqACMBDQAnASEAMQEhADECFf/+AhUANgEGACMB8gAjAfIAIgHyACMBBgAiAQYAIwIQACQCEQAZATsAJAE8ABkBtQAxAOYAMQFsABgBbAAeArwAAABkAAABBgAAARsAAAEbAAAAjgAAAAAAAAEbAAAC3QAnAk8AIALdACcCvAAZAn4AHAK0ACIDNAAeAeH/owKrAB4DAwAnAzoARALhAB4CnAAeAvAAHgOPAFMDhwAeBqYAUwNkAB4DCAAeAtQAKgKcAB4C2QA/Ar4ALgTfAB4C4P/yAUIAQAJSADYBiP/fAlcAPgJXAD4CVwBaAlcAPgJXAD4CVwA+AlcAPgJXAD4CVwA+AlcAPgJXAD4CVwAyAlcAMgJXAD4CWAA5AlcAGwOjACABsv/hA3kACQL+//cDKABTAp8AJgM0AD4CsgBIArwANgNtABsE6gAbAlgATAJYAFwCWAAyAlgAXQJYAFECWABYAlgASgJYAFkDPwAyAlgASwJYAEwCWAAyAlgAUQJYAEoCWAAZAlgAGQHxACACWABqAlgAagJYAFcCWABzAlgAVwJZADoCWABXAlgAcwJYAFcCWAA6BAsAJwLYACQCrgAOAgoAFQMRACcDEQAnBBYABAGiACEA5gAx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BugG7QbzBvcG8AbkBuAG+wbxBusG7gRsBG0ElQRoBI0EjASPBJAEkQSKBIsEkgR1BHIEfwSGBGQEZQRmBGcEagRrBG4EbwRwBHEEdASABIEEgwSCBIQEhQSIBIkEhwSOBJMElAUFBQYFBwUIBQsFDAUPBRAFEQUSBRUFIQUiBSQFIwUlBSYFKQUqBSgFLwU0BTUFDQUOBTYFCQUuBS0FMAUxBTIFKwUsBTMFFgUTBSAFJwSWBTcElwU4BJgFOQSZBToEcwUUBNUFdwTWBXgEaQUKBJoFOwSbBTwEnAU9BJ0FPgSeBT8EnwVABKAFQQShBUIEogVDBKMFRAdpB3EEpQVGBKYFRwSnBUgEqAVJBKkFSgSqBUsEqwVMBKwFTQStBU4ErgVPBLAFUQSxBVIEsgSzBVQEtAVVBVYEtQVXBLYFWAS3BVkEuAVaBVMEuQVbBLoFXAS7BV0EvAVeBL0FXwS+BWAEvwVhBMAFYgTBBWMEwgVkBMMFZQTEBWYExQVnBMYFaATHBWkEyAVqBMkFawTKBWwEywVtBMwFbgTNBW8EzgVwBM8FcQTQBXIE0QVzBNIFdATTBXUE1AV2BKQFRQSvBVAE1wV5BNgFegAiAagAKgGvACsBsABBAcYAQAHFADEBtgBNAdMAVAHaAFEB1wBcAeIAcAH4AHIB+gB1Af0AewIDAHwCBAB/AgcAoAIoAKECKQCbAiMAmgIiAKwCNACuAjYAuAJAALkCQQCxAjkAtAI8ALoCQgDCAksAwwJMANsCZADXAmAA4QJqAN4CZwDgAmkA5wJwAPECegASAZgAFAGaAAsBkQANAZMADgGUAA8BlQAMAZIABAGKAAYBjAAHAY0ACAGOAAUBiwA7AcAAPQHCAEMByAAzAbgANQG6ADYBuwA3AbwANAG5AGAB5gBeAeQAjgIWAJACGACFAg0AhwIPAIgCEACJAhEAhgIOAJICGgCUAhwAlQIdAJYCHgCTAhsAywJUAM0CVgDPAlgA0QJaANICWwDTAlwA0AJZAOkCcgDoAnEA6gJzAOwCdQZnBmkGbAZoBm0GPQY7BjwGPgZIBkkGRAZGBkcGRQbOBs8GIgZ3BnsGdAZ1BnoGhQaABngGeQZvBoQGggZ8Bn0GgQW9BbwGrAamBqgGqgauBq8GrQanBqkGqwaaBp4GoAaMBogGoQaUBpMGuQa9BroGvga7Br8GvAbAALICOgAAuAH/hbAEjQAAAAASAN4AAwABBAkAAACwAAAAAwABBAkAAQAUALAAAwABBAkAAgAIAMQAAwABBAkAAwAyAMwAAwABBAkABAAeAP4AAwABBAkABQAaARwAAwABBAkABgAeATYAAwABBAkACAAiAVQAAwABBAkACQAiAVQAAwABBAkACwAyAXYAAwABBAkADAAyAXYAAwABBAkADQEgAagAAwABBAkADgA0AsgAAwABBAkAGQAeAvwAAwABBAkBAAAMAxoAAwABBAkBBwAIAMQAAwABBAkBEwAMAyYAAwABBAkBFAAKAzIAQwBvAHAAeQByAGkAZwBoAHQAIAAyADAAMQAxACAAVABoAGUAIABNAG8AbgB0AHMAZQByAHIAYQB0ACAAUAByAG8AagBlAGMAdAAgAEEAdQB0AGgAbwByAHMAIAAoAGgAdAB0AHAAcwA6AC8ALwBnAGkAdABoAHUAYgAuAGMAbwBtAC8ASgB1AGwAaQBlAHQAYQBVAGwAYQAvAE0AbwBuAHQAcwBlAHIAcgBhAHQAKQBNAG8AbgB0AHMAZQByAHIAYQB0AEIAbwBsAGQAOAAuADAAMAAwADsAVQBMAEEAOwBNAG8AbgB0AHMAZQByAHIAYQB0AC0AQgBvAGwAZABNAG8AbgB0AHMAZQByAHIAYQB0ACAAQgBvAGwAZABWAGUAcgBzAGkAbwBuACAAOAAuADAAMAAwAE0AbwBuAHQAcwBlAHIAcgBhAHQALQBCAG8AbABkAEoAdQBsAGkAZQB0AGEAIABVAGwAYQBuAG8AdgBzAGsAeQBoAHQAdABwADoALwAvAHcAdwB3AC4AegBrAHkAcwBrAHkALgBjAG8AbQAuAGEAcgAvAFQAaABpAHMAIABGAG8AbgB0ACAAUwBvAGYAdAB3AGEAcgBlACAAaQBzACAAbABpAGMAZQBuAHMAZQBkACAAdQBuAGQAZQByACAAdABoAGUAIABTAEkATAAgAE8AcABlAG4AIABGAG8AbgB0ACAATABpAGMAZQBuAHMAZQAsACAAVgBlAHIAcwBpAG8AbgAgADEALgAxAC4AIABUAGgAaQBzACAAbABpAGMAZQBuAHMAZQAgAGkAcwAgAGEAdgBhAGkAbABhAGIAbABlACAAdwBpAHQAaAAgAGEAIABGAEEAUQAgAGEAdAA6ACAAaAB0AHQAcAA6AC8ALwBzAGMAcgBpAHAAdABzAC4AcwBpAGwALgBvAHIAZwAvAE8ARgBMAGgAdAB0AHAAOgAvAC8AcwBjAHIAaQBwAHQAcwAuAHMAaQBsAC4AbwByAGcALwBPAEYATABNAG8AbgB0AHMAZQByAHIAYQB0AFIAbwBtAGEAbgBXAGUAaQBnAGgAdABJAHQAYQBsAGkAYwBSAG8AbQBhAG4AAAACAAAAAAAA/5wAMgAAAAAAAAAAAAAAAAAAAAAAAAAAB3UAAAAkAMkBAgEDAQQBBQEGAQcBCADHAQkBCgELAQwBDQEOAGIBDwCtARABEQESARMAYwEUAK4AkAEVACUAJgD9AP8AZAEWARcBGAAnARkA6QEaARsBHAEdAR4AKABlAR8BIAEhAMgBIgEjASQBJQEmAScAygEoASkAywEqASsBLAEtAS4BLwEwATEBMgApACoA+AEzATQBNQE2ATcBOAArATkBOgE7ATwBPQAsAT4AzAE/AM0BQADOAUEA+gFCAM8BQwFEAUUBRgFHAC0BSAAuAUkBSgAvAUsBTAFNAU4BTwFQAVEBUgDiADABUwAxAVQBVQFWAVcBWAFZAVoBWwFcAGYAMgDQAV0A0QFeAV8BYAFhAWIBYwBnAWQBZQFmANMBZwFoAWkBagFrAWwBbQFuAW8BcAFxAXIBcwCRAXQArwF1AXYBdwCwADMA7QA0ADUBeAF5AXoBewF8AX0BfgA2AX8BgAGBAOQBggD7AYMBhAGFAYYBhwGIAYkANwGKAYsBjAGNAY4BjwA4ANQBkAGRANUBkgBoAZMA1gGUAZUBlgGXAZgBmQGaAZsBnAGdAZ4BnwGgAaEBogA5ADoBowGkAaUBpgA7ADwA6wGnALsBqAGpAaoBqwGsAa0APQGuAOYBrwGwAbEBsgGzAbQBtQG2AbcBuAG5AboBuwG8Ab0BvgG/AcABwQHCAcMBxAHFAcYBxwHIAckBygHLAcwBzQHOAc8B0AHRAdIB0wHUAdUB1gHXAdgB2QHaAdsB3AHdAd4B3wHgAeEB4gHjAeQB5QHmAecB6AHpAeoB6wHsAe0B7gHvAfAB8QHyAfMB9AH1AfYB9wH4AfkB+gH7AfwB/QH+Af8CAAIBAgICAwIEAgUCBgIHAggCCQIKAgsCDAINAg4CDwIQAhECEgITAhQCFQIWAhcCGAIZAhoCGwIcAh0CHgIfAiACIQIiAiMCJAIlAiYCJwIoAikCKgIrAiwCLQIuAi8CMAIxAjICMwI0AjUCNgI3AjgCOQI6AjsCPAI9Aj4CPwJAAkECQgJDAkQCRQBEAGkCRgJHAkgCSQJKAksCTABrAk0CTgJPAlACUQJSAGwCUwBqAlQCVQJWAlcAbgJYAG0AoAJZAEUARgD+AQAAbwJaAlsCXABHAOoCXQEBAl4CXwJgAEgAcAJhAmICYwByAmQCZQJmAmcCaAJpAHMCagJrAHECbAJtAm4CbwJwAnECcgJzAnQCdQBJAEoA+QJ2AncCeAJ5AnoCewBLAnwCfQJ+An8CgABMANcAdAKBAHYCggB3AoMChAKFAHUChgKHAogCiQKKAosATQKMAo0ATgKOAo8CkABPApECkgKTApQClQKWApcA4wBQApgAUQKZApoCmwKcAp0CngKfAqACoQB4AFIAeQKiAHsCowKkAqUCpgKnAqgAfAKpAqoCqwB6AqwCrQKuAq8CsAKxArICswK0ArUCtgK3ArgAoQK5AH0CugK7ArwAsQBTAO4AVABVAr0CvgK/AsACwQLCAsMAVgLEAsUCxgDlAscA/ALIAskCygLLAswAiQLNAFcCzgLPAtAC0QLSAtMC1ABYAH4C1QLWAIAC1wCBAtgAfwLZAtoC2wLcAt0C3gLfAuAC4QLiAuMC5ALlAuYC5wBZAFoC6ALpAuoC6wBbAFwA7ALsALoC7QLuAu8C8ALxAvIAXQLzAOcC9AL1AvYC9wL4AvkC+gL7AvwC/QL+Av8DAAMBAwIDAwMEAwUDBgMHAwgDCQMKAwsDDAMNAw4DDwMQAxEDEgMTAxQDFQMWAxcDGAMZAxoDGwMcAx0DHgMfAyADIQMiAyMDJAMlAyYDJwMoAykDKgMrAywDLQMuAy8DMAMxAzIDMwM0AzUDNgM3AzgDOQM6AzsDPAM9Az4DPwNAA0EDQgNDA0QDRQNGA0cDSANJA0oDSwNMA00DTgNPA1ADUQNSA1MDVADAAMEDVQNWA1cDWANZA1oDWwNcA10DXgNfA2ADYQNiA2MDZANlA2YDZwNoA2kDagNrA2wDbQNuA28DcANxA3IDcwN0A3UDdgN3A3gDeQN6A3sDfAN9A34DfwOAA4EDggODA4QDhQOGA4cDiAOJA4oDiwOMA40DjgOPA5ADkQOSA5MDlAOVA5YDlwOYA5kDmgObA5wDnQOeA58DoAOhA6IDowOkA6UDpgOnA6gDqQOqA6sDrAOtA64DrwOwA7EDsgOzA7QDtQO2A7cDuAO5A7oDuwO8A70DvgO/A8ADwQPCA8MDxAPFA8YDxwPIA8kDygPLA8wDzQPOA88D0APRA9ID0wPUA9UD1gPXA9gD2QPaA9sD3APdA94D3wPgA+ED4gPjA+QD5QPmA+cD6APpA+oD6wPsA+0D7gPvA/AD8QPyA/MD9AP1A/YD9wP4A/kD+gP7A/wD/QP+A/8EAAQBBAIEAwQEBAUEBgQHBAgECQQKBAsEDAQNBA4EDwQQBBEEEgQTBBQEFQQWBBcEGAQZBBoEGwQcBB0EHgQfBCAEIQQiBCMEJAQlBCYEJwQoBCkEKgQrBCwELQQuBC8EMAQxBDIEMwQ0BDUENgQ3BDgEOQQ6BDsEPAQ9BD4EPwRABEEEQgRDBEQERQRGBEcESARJBEoESwRMBE0ETgRPBFAEUQRSBFMEVARVBFYEVwRYBFkEWgRbBFwEXQReBF8EYARhBGIEYwRkBGUEZgRnBGgEaQRqBGsEbARtBG4EbwRwBHEEcgRzBHQEdQR2BHcEeAR5BHoEewR8BH0EfgR/BIAEgQSCBIMEhASFBIYEhwSIBIkEigSLBIwEjQSOBI8EkASRBJIEkwSUBJUElgSXBJgEmQSaBJsEnASdBJ4EnwSgBKEEogSjBKQEpQSmBKcEqASpBKoEqwSsBK0ErgSvBLAEsQSyBLMEtAS1BLYEtwS4BLkEugS7BLwEvQS+BL8EwATBBMIEwwTEBMUExgTHBMgEyQTKBMsEzATNBM4EzwTQBNEE0gTTBNQE1QTWBNcE2ATZBNoAnQCeBNsE3ATdBN4E3wTgBOEE4gTjBOQE5QTmBOcE6ATpBOoE6wTsBO0E7gTvBPAE8QTyBPME9AT1BPYE9wT4BPkE+gT7BPwE/QT+BP8FAAUBBQIFAwUEBQUFBgUHBQgFCQUKBQsFDAUNBQ4FDwUQBREFEgUTBRQFFQUWBRcFGAUZBRoFGwUcBR0FHgUfBSAFIQUiBSMFJAUlBSYFJwUoBSkFKgUrBSwFLQUuBS8FMAUxBTIFMwU0BTUFNgU3BTgFOQU6BTsFPAU9BT4FPwVABUEFQgVDBUQFRQVGBUcFSAVJBUoFSwVMBU0FTgVPBVAFUQVSBVMFVAVVBVYFVwVYBVkFWgVbBVwFXQVeBV8FYAVhBWIFYwVkBWUFZgVnBWgFaQVqBWsFbAVtBW4FbwVwBXEFcgVzBXQFdQV2BXcFeAV5BXoFewV8BX0FfgV/BYAFgQWCBYMFhAWFBYYFhwWIBYkFigWLBYwFjQWOBY8FkAWRBZIFkwWUBZUFlgWXBZgFmQWaBZsFnAWdBZ4FnwWgBaEFogWjBaQFpQWmBacFqAWpBaoFqwWsBa0FrgWvBbAFsQWyBbMFtAW1BbYFtwW4BbkFugW7BbwFvQW+Bb8FwAXBBcIFwwXEBcUFxgXHBcgFyQXKBcsFzAXNBc4FzwXQBdEF0gXTBdQF1QXWBdcF2AXZBdoF2wXcBd0F3gXfBeAF4QXiBeMF5AXlBeYF5wXoBekF6gXrBewF7QXuBe8F8AXxBfIF8wX0BfUF9gX3BfgF+QX6BfsF/AX9Bf4F/wYABgEGAgYDBgQGBQYGBgcGCAYJBgoGCwYMBg0GDgYPBhAGEQYSBhMGFAYVBhYGFwYYBhkGGgYbBhwGHQYeBh8GIAYhBiIGIwYkBiUGJgYnBigGKQYqBisGLAYtBi4GLwYwBjEAmwYyBjMAEwAUABUAFgAXABgAGQAaABsAHAY0BjUGNgY3BjgGOQY6BjsGPAY9Bj4GPwZABkEGQgZDBkQGRQZGBkcGSAZJBkoGSwZMBk0GTgZPBlAGUQZSBlMGVAZVBlYGVwZYBlkGWgZbBlwGXQZeBl8GYAZhBmIGYwZkBmUGZgZnBmgGaQZqBmsGbAZtBm4GbwZwBnEGcgZzBnQGdQZ2BncGeAZ5ALwA9AZ6BnsA9QD2BnwGfQZ+Bn8AEQAPAB0AHgCrAAQAowAiAKIAwwCHAA0ABgASAD8GgAaBBoIGgwaEBoUACwAMAF4AYAA+AEAGhgaHBogGiQaKBosAEAaMALIAswaNBo4GjwBCBpAGkQaSAMQAxQC0ALUAtgC3AKkAqgC+AL8ABQAKBpMGlAaVBpYGlwaYBpkGmgabBpwGnQaeBp8GoAahBqIGowakBqUGpganBqgGqQaqBqsGrAADBq0GrgavBrAGsQCEBrIAvQAHBrMGtACmAPcGtQa2BrcGuAa5BroGuwa8Br0Gvga/AIUGwAbBBsIAlgbDBsQGxQAOAO8A8AC4ACAAjwAhAB8AlQCUAJMApwBhAKQAQQbGAJIAnAbHBsgAmgCZAKUGyQCYAAgAxgbKBssGzAbNBs4GzwbQBtEG0gbTBtQG1QbWBtcG2AbZALkG2gbbBtwG3QbeBt8G4AbhBuIG4wAjAAkAiACGAIsAigCMAIMG5AblAF8A6AbmAIIAwgbnBugG6QbqBusG7AbtBu4G7wbwBvEG8gbzBvQG9Qb2BvcG+Ab5BvoG+wb8Bv0G/gb/BwAHAQcCBwMHBAcFBwYHBwcIBwkHCgcLBwwHDQcOBw8HEAcRBxIHEwcUBxUHFgcXBxgHGQcaBxsHHAcdBx4HHwcgByEAjQDbAOEA3gDYAI4A3ABDAN8A2gDgAN0A2QciByMHJAclByYHJwcoBykHKgcrBywHLQcuBy8HMAcxBzIHMwc0BzUHNgc3BzgHOQc6BzsHPAc9Bz4HPwdAB0EHQgdDB0QHRQdGB0cHSAdJB0oHSwdMB00HTgdPB1AHUQdSB1MHVAdVB1YHVwdYB1kHWgdbB1wHXQdeB18HYAdhB2IHYwdkB2UHZgdnB2gHaQdqB2sHbAdtB24HbwdwB3EHcgdzB3QHdQd2B3cHeAd5B3oHewd8B30HfgZBYnJldmUHdW5pMUVBRQd1bmkxRUI2B3VuaTFFQjAHdW5pMUVCMgd1bmkxRUI0B3VuaTAxQ0QHdW5pMUVBNAd1bmkxRUFDB3VuaTFFQTYHdW5pMUVBOAd1bmkxRUFBB3VuaTAyMDAHdW5pMUVBMAd1bmkxRUEyB3VuaTAyMDIHQW1hY3JvbgdBb2dvbmVrCkFyaW5nYWN1dGUHQUVhY3V0ZQd1bmkxRTA4C0NjaXJjdW1mbGV4CkNkb3RhY2NlbnQHdW5pMDFDNAZEY2Fyb24GRGNyb2F0B3VuaTFFMEMHdW5pMUUwRQd1bmkwMUM1BkVicmV2ZQZFY2Fyb24HdW5pMUUxQwd1bmkxRUJFB3VuaTFFQzYHdW5pMUVDMAd1bmkxRUMyB3VuaTFFQzQHdW5pMDIwNApFZG90YWNjZW50B3VuaTFFQjgHdW5pMUVCQQd1bmkwMjA2B0VtYWNyb24HdW5pMUUxNgd1bmkxRTE0B0VvZ29uZWsHdW5pMUVCQwd1bmkwMUI3B3VuaTAxRUUGR2Nhcm9uC0djaXJjdW1mbGV4B3VuaTAxMjIKR2RvdGFjY2VudAd1bmkxRTIwB3VuaTAxRTQESGJhcgd1bmkxRTJBB3VuaTAyMUULSGNpcmN1bWZsZXgHdW5pMUUyNAJJSgZJYnJldmUHdW5pMDIwOAd1bmkxRTJFB3VuaTFFQ0EHdW5pMUVDOAd1bmkwMjBBB0ltYWNyb24HSW9nb25lawZJdGlsZGULSmNpcmN1bWZsZXgHdW5pMDFFOAd1bmkwMTM2B3VuaTAxQzcGTGFjdXRlBkxjYXJvbgd1bmkwMTNCBExkb3QHdW5pMUUzNgd1bmkwMUM4B3VuaTFFM0EHdW5pMUU0Mgd1bmkwMUNBBk5hY3V0ZQZOY2Fyb24HdW5pMDE0NQd1bmkxRTQ0B3VuaTFFNDYDRW5nB3VuaTAxQ0IHdW5pMUU0OAZPYnJldmUHdW5pMUVEMAd1bmkxRUQ4B3VuaTFFRDIHdW5pMUVENAd1bmkxRUQ2B3VuaTAyMEMHdW5pMDIyQQd1bmkwMjMwB3VuaTFFQ0MHdW5pMUVDRQVPaG9ybgd1bmkxRURBB3VuaTFFRTIHdW5pMUVEQwd1bmkxRURFB3VuaTFFRTANT2h1bmdhcnVtbGF1dAd1bmkwMjBFB09tYWNyb24HdW5pMUU1Mgd1bmkxRTUwB3VuaTAxRUELT3NsYXNoYWN1dGUHdW5pMUU0Qwd1bmkxRTRFB3VuaTAyMkMGUmFjdXRlBlJjYXJvbgd1bmkwMTU2B3VuaTAyMTAHdW5pMUU1QQd1bmkwMjEyB3VuaTFFNUUGU2FjdXRlB3VuaTFFNjQHdW5pQTc4Qgd1bmkxRTY2C1NjaXJjdW1mbGV4B3VuaTAyMTgHdW5pMUU2MAd1bmkxRTYyB3VuaTFFNjgHdW5pMUU5RQd1bmkwMThGBFRiYXIGVGNhcm9uB3VuaTAxNjIHdW5pMDIxQQd1bmkxRTZDB3VuaTFFNkUGVWJyZXZlB3VuaTAxRDMHdW5pMDIxNAd1bmkxRUU0B3VuaTFFRTYFVWhvcm4HdW5pMUVFOAd1bmkxRUYwB3VuaTFFRUEHdW5pMUVFQwd1bmkxRUVFDVVodW5nYXJ1bWxhdXQHdW5pMDIxNgdVbWFjcm9uB3VuaTFFN0EHVW9nb25lawVVcmluZwZVdGlsZGUHdW5pMUU3OAZXYWN1dGULV2NpcmN1bWZsZXgJV2RpZXJlc2lzBldncmF2ZQtZY2lyY3VtZmxleAd1bmkxRThFB3VuaTFFRjQGWWdyYXZlB3VuaTFFRjYHdW5pMDIzMgd1bmkxRUY4BlphY3V0ZQpaZG90YWNjZW50B3VuaTFFOTIQSWFjdXRlX0oubG9jbE5MRAZBLnNzMDELQWFjdXRlLnNzMDELQWJyZXZlLnNzMDEMdW5pMUVBRS5zczAxDHVuaTFFQjYuc3MwMQx1bmkxRUIwLnNzMDEMdW5pMUVCMi5zczAxDHVuaTFFQjQuc3MwMQx1bmkwMUNELnNzMDEQQWNpcmN1bWZsZXguc3MwMQx1bmkxRUE0LnNzMDEMdW5pMUVBQy5zczAxDHVuaTFFQTYuc3MwMQx1bmkxRUE4LnNzMDEMdW5pMUVBQS5zczAxDHVuaTAyMDAuc3MwMQ5BZGllcmVzaXMuc3MwMQx1bmkxRUEwLnNzMDELQWdyYXZlLnNzMDEMdW5pMUVBMi5zczAxDHVuaTAyMDIuc3MwMQxBbWFjcm9uLnNzMDEMQW9nb25lay5zczAxCkFyaW5nLnNzMDEPQXJpbmdhY3V0ZS5zczAxC0F0aWxkZS5zczAxB0FFLnNzMDEMQUVhY3V0ZS5zczAxDHVuaTAxQzQuc3MwMQx1bmkwMUM1LnNzMDEGRS5zczAxC0VhY3V0ZS5zczAxC0VicmV2ZS5zczAxC0VjYXJvbi5zczAxDHVuaTFFMUMuc3MwMRBFY2lyY3VtZmxleC5zczAxDHVuaTFFQkUuc3MwMQx1bmkxRUM2LnNzMDEMdW5pMUVDMC5zczAxDHVuaTFFQzIuc3MwMQx1bmkxRUM0LnNzMDEMdW5pMDIwNC5zczAxDkVkaWVyZXNpcy5zczAxD0Vkb3RhY2NlbnQuc3MwMQx1bmkxRUI4LnNzMDELRWdyYXZlLnNzMDEMdW5pMUVCQS5zczAxDHVuaTAyMDYuc3MwMQxFbWFjcm9uLnNzMDEMdW5pMUUxNi5zczAxDHVuaTFFMTQuc3MwMQxFb2dvbmVrLnNzMDEMdW5pMUVCQy5zczAxBkYuc3MwMQZHLnNzMDELR2JyZXZlLnNzMDELR2Nhcm9uLnNzMDEQR2NpcmN1bWZsZXguc3MwMQx1bmkwMTIyLnNzMDEPR2RvdGFjY2VudC5zczAxDHVuaTFFMjAuc3MwMQx1bmkwMUU0LnNzMDEGSS5zczAxB0lKLnNzMDELSWFjdXRlLnNzMDEVSWFjdXRlX0oubG9jbE5MRC5zczAxC0licmV2ZS5zczAxEEljaXJjdW1mbGV4LnNzMDEMdW5pMDIwOC5zczAxDklkaWVyZXNpcy5zczAxDHVuaTFFMkUuc3MwMQ9JZG90YWNjZW50LnNzMDEMdW5pMUVDQS5zczAxC0lncmF2ZS5zczAxDHVuaTFFQzguc3MwMQx1bmkwMjBBLnNzMDEMSW1hY3Jvbi5zczAxDElvZ29uZWsuc3MwMQtJdGlsZGUuc3MwMQZKLnNzMDEQSmNpcmN1bWZsZXguc3MwMQx1bmkwMUM3LnNzMDEGTS5zczAxDHVuaTFFNDIuc3MwMQZOLnNzMDEMdW5pMDFDQS5zczAxC05hY3V0ZS5zczAxC05jYXJvbi5zczAxDHVuaTAxNDUuc3MwMQx1bmkxRTQ0LnNzMDEMdW5pMUU0Ni5zczAxCEVuZy5zczAxDHVuaTAxQ0Iuc3MwMQx1bmkxRTQ4LnNzMDELTnRpbGRlLnNzMDEGUS5zczAxDHVuaTAxOEYuc3MwMQZULnNzMDEJVGJhci5zczAxC1RjYXJvbi5zczAxDHVuaTAxNjIuc3MwMQx1bmkwMjFBLnNzMDEMdW5pMUU2Qy5zczAxDHVuaTFFNkUuc3MwMQZVLnNzMDELVWFjdXRlLnNzMDELVWJyZXZlLnNzMDEMdW5pMDFEMy5zczAxEFVjaXJjdW1mbGV4LnNzMDEMdW5pMDIxNC5zczAxDlVkaWVyZXNpcy5zczAxDHVuaTFFRTQuc3MwMQtVZ3JhdmUuc3MwMQx1bmkxRUU2LnNzMDEKVWhvcm4uc3MwMQx1bmkxRUU4LnNzMDEMdW5pMUVGMC5zczAxDHVuaTFFRUEuc3MwMQx1bmkxRUVDLnNzMDEMdW5pMUVFRS5zczAxElVodW5nYXJ1bWxhdXQuc3MwMQx1bmkwMjE2LnNzMDEMVW1hY3Jvbi5zczAxDHVuaTFFN0Euc3MwMQxVb2dvbmVrLnNzMDEKVXJpbmcuc3MwMQtVdGlsZGUuc3MwMQx1bmkxRTc4LnNzMDEGVy5zczAxC1dhY3V0ZS5zczAxEFdjaXJjdW1mbGV4LnNzMDEOV2RpZXJlc2lzLnNzMDELV2dyYXZlLnNzMDEGWS5zczAxC1lhY3V0ZS5zczAxEFljaXJjdW1mbGV4LnNzMDEOWWRpZXJlc2lzLnNzMDEMdW5pMUU4RS5zczAxDHVuaTFFRjQuc3MwMQtZZ3JhdmUuc3MwMQx1bmkxRUY2LnNzMDEMdW5pMDIzMi5zczAxDHVuaTFFRjguc3MwMQZaLnNzMDELWmFjdXRlLnNzMDELWmNhcm9uLnNzMDEPWmRvdGFjY2VudC5zczAxDHVuaTFFOTIuc3MwMQZhYnJldmUHdW5pMUVBRgd1bmkxRUI3B3VuaTFFQjEHdW5pMUVCMwd1bmkxRUI1B3VuaTAxQ0UHdW5pMUVBNQd1bmkxRUFEB3VuaTFFQTcHdW5pMUVBOQd1bmkxRUFCB3VuaTAyMDEHdW5pMUVBMQd1bmkxRUEzB3VuaTAyMDMHYW1hY3Jvbgdhb2dvbmVrCmFyaW5nYWN1dGUHYWVhY3V0ZQd1bmkxRTA5C2NjaXJjdW1mbGV4CmNkb3RhY2NlbnQGZGNhcm9uB3VuaTFFMEQHdW5pMUUwRgd1bmkwMUM2BmVicmV2ZQZlY2Fyb24HdW5pMUUxRAd1bmkxRUJGB3VuaTFFQzcHdW5pMUVDMQd1bmkxRUMzB3VuaTFFQzUHdW5pMDIwNQplZG90YWNjZW50B3VuaTFFQjkHdW5pMUVCQgd1bmkwMjA3B2VtYWNyb24HdW5pMUUxNwd1bmkxRTE1B2VvZ29uZWsHdW5pMUVCRAd1bmkwMjU5B3VuaTAyOTIHdW5pMDFFRgZnY2Fyb24LZ2NpcmN1bWZsZXgHdW5pMDEyMwpnZG90YWNjZW50B3VuaTFFMjEHdW5pMDFFNQRoYmFyB3VuaTFFMkIHdW5pMDIxRgtoY2lyY3VtZmxleAd1bmkxRTI1BmlicmV2ZQd1bmkwMjA5B3VuaTFFMkYJaS5sb2NsVFJLB3VuaTFFQ0IHdW5pMUVDOQd1bmkwMjBCAmlqB2ltYWNyb24HaW9nb25lawZpdGlsZGUHdW5pMDIzNwtqY2lyY3VtZmxleAd1bmkwMUU5B3VuaTAxMzcMa2dyZWVubGFuZGljBmxhY3V0ZQZsY2Fyb24HdW5pMDEzQwRsZG90B3VuaTFFMzcHdW5pMDFDOQd1bmkxRTNCB3VuaTFFNDMGbmFjdXRlC25hcG9zdHJvcGhlBm5jYXJvbgd1bmkwMTQ2B3VuaTFFNDUHdW5pMUU0NwNlbmcHdW5pMDFDQwd1bmkxRTQ5Bm9icmV2ZQd1bmkxRUQxB3VuaTFFRDkHdW5pMUVEMwd1bmkxRUQ1B3VuaTFFRDcHdW5pMDIwRAd1bmkwMjJCB3VuaTAyMzEHdW5pMUVDRAd1bmkxRUNGBW9ob3JuB3VuaTFFREIHdW5pMUVFMwd1bmkxRUREB3VuaTFFREYHdW5pMUVFMQ1vaHVuZ2FydW1sYXV0B3VuaTAyMEYHb21hY3Jvbgd1bmkxRTUzB3VuaTFFNTEHdW5pMDFFQgtvc2xhc2hhY3V0ZQd1bmkxRTREB3VuaTFFNEYHdW5pMDIyRAZyYWN1dGUGcmNhcm9uB3VuaTAxNTcHdW5pMDIxMQd1bmkxRTVCB3VuaTAyMTMHdW5pMUU1RgZzYWN1dGUHdW5pMUU2NQd1bmlBNzhDB3VuaTFFNjcLc2NpcmN1bWZsZXgHdW5pMDIxOQd1bmkxRTYxB3VuaTFFNjMHdW5pMUU2OQVsb25ncwR0YmFyBnRjYXJvbgd1bmkwMTYzB3VuaTAyMUIHdW5pMUU5Nwd1bmkxRTZEB3VuaTFFNkYGdWJyZXZlB3VuaTAxRDQHdW5pMDIxNQd1bmkxRUU1B3VuaTFFRTcFdWhvcm4HdW5pMUVFOQd1bmkxRUYxB3VuaTFFRUIHdW5pMUVFRAd1bmkxRUVGDXVodW5nYXJ1bWxhdXQHdW5pMDIxNwd1bWFjcm9uB3VuaTFFN0IHdW9nb25lawV1cmluZwZ1dGlsZGUHdW5pMUU3OQZ3YWN1dGULd2NpcmN1bWZsZXgJd2RpZXJlc2lzBndncmF2ZQt5Y2lyY3VtZmxleAd1bmkxRThGB3VuaTFFRjUGeWdyYXZlB3VuaTFFRjcHdW5pMDIzMwd1bmkxRUY5BnphY3V0ZQp6ZG90YWNjZW50B3VuaTFFOTMQaWFjdXRlX2oubG9jbE5MRA1nZXJtYW5kYmxzLnNjBmEuc3MwMQthYWN1dGUuc3MwMQthYnJldmUuc3MwMQx1bmkxRUFGLnNzMDEMdW5pMUVCNy5zczAxDHVuaTFFQjEuc3MwMQx1bmkxRUIzLnNzMDEMdW5pMUVCNS5zczAxDHVuaTAxQ0Uuc3MwMRBhY2lyY3VtZmxleC5zczAxDHVuaTFFQTUuc3MwMQx1bmkxRUFELnNzMDEMdW5pMUVBNy5zczAxDHVuaTFFQTkuc3MwMQx1bmkxRUFCLnNzMDEMdW5pMDIwMS5zczAxDmFkaWVyZXNpcy5zczAxDHVuaTFFQTEuc3MwMQthZ3JhdmUuc3MwMQx1bmkxRUEzLnNzMDEMdW5pMDIwMy5zczAxDGFtYWNyb24uc3MwMQxhb2dvbmVrLnNzMDEKYXJpbmcuc3MwMQ9hcmluZ2FjdXRlLnNzMDELYXRpbGRlLnNzMDEHYWUuc3MwMQxhZWFjdXRlLnNzMDEMdW5pMDFDNi5zczAxBmUuc3MwMQtlYWN1dGUuc3MwMQtlYnJldmUuc3MwMQtlY2Fyb24uc3MwMQx1bmkxRTFELnNzMDEQZWNpcmN1bWZsZXguc3MwMQx1bmkxRUJGLnNzMDEMdW5pMUVDNy5zczAxDHVuaTFFQzEuc3MwMQx1bmkxRUMzLnNzMDEMdW5pMUVDNS5zczAxDHVuaTAyMDUuc3MwMQ5lZGllcmVzaXMuc3MwMQ9lZG90YWNjZW50LnNzMDEMdW5pMUVCOS5zczAxC2VncmF2ZS5zczAxDHVuaTFFQkIuc3MwMQx1bmkwMjA3LnNzMDEMZW1hY3Jvbi5zczAxDHVuaTFFMTcuc3MwMQx1bmkxRTE1LnNzMDEMZW9nb25lay5zczAxDHVuaTFFQkQuc3MwMQx1bmkwMjU5LnNzMDEGZi5zczAxBmwuc3MwMQtsYWN1dGUuc3MwMQtsY2Fyb24uc3MwMQx1bmkwMTNDLnNzMDEJbGRvdC5zczAxDHVuaTFFMzcuc3MwMQx1bmkwMUM5LnNzMDEMdW5pMUUzQi5zczAxC2xzbGFzaC5zczAxB29lLnNzMDEGdC5zczAxCXRiYXIuc3MwMQt0Y2Fyb24uc3MwMQx1bmkwMTYzLnNzMDEMdW5pMDIxQi5zczAxDHVuaTFFOTcuc3MwMQx1bmkxRTZELnNzMDEMdW5pMUU2Ri5zczAxBncuc3MwMQt3YWN1dGUuc3MwMRB3Y2lyY3VtZmxleC5zczAxDndkaWVyZXNpcy5zczAxC3dncmF2ZS5zczAxBnkuc3MwMQt5YWN1dGUuc3MwMRB5Y2lyY3VtZmxleC5zczAxDnlkaWVyZXNpcy5zczAxDHVuaTFFOEYuc3MwMQx1bmkxRUY1LnNzMDELeWdyYXZlLnNzMDEMdW5pMUVGNy5zczAxDHVuaTAyMzMuc3MwMQx1bmkxRUY5LnNzMDEGei5zczAxC3phY3V0ZS5zczAxC3pjYXJvbi5zczAxD3pkb3RhY2NlbnQuc3MwMQx1bmkxRTkzLnNzMDEDVF9oB2ZpLnNzMDEHZmwuc3MwMQRhLnNjCWFhY3V0ZS5zYwlhYnJldmUuc2MKdW5pMUVBRi5zYwp1bmkxRUI3LnNjCnVuaTFFQjEuc2MKdW5pMUVCMy5zYwp1bmkxRUI1LnNjCnVuaTAxQ0Uuc2MOYWNpcmN1bWZsZXguc2MKdW5pMUVBNS5zYwp1bmkxRUFELnNjCnVuaTFFQTcuc2MKdW5pMUVBOS5zYwp1bmkxRUFCLnNjCnVuaTAyMDEuc2MMYWRpZXJlc2lzLnNjCnVuaTFFQTEuc2MJYWdyYXZlLnNjCnVuaTFFQTMuc2MKdW5pMDIwMy5zYwphbWFjcm9uLnNjCmFvZ29uZWsuc2MIYXJpbmcuc2MNYXJpbmdhY3V0ZS5zYwlhdGlsZGUuc2MFYWUuc2MKYWVhY3V0ZS5zYwRiLnNjBGMuc2MJY2FjdXRlLnNjCWNjYXJvbi5zYwtjY2VkaWxsYS5zYwp1bmkxRTA5LnNjDmNjaXJjdW1mbGV4LnNjDWNkb3RhY2NlbnQuc2MEZC5zYwZldGguc2MJZGNhcm9uLnNjCWRjcm9hdC5zYwp1bmkxRTBELnNjCnVuaTFFMEYuc2MKdW5pMDFDNi5zYwRlLnNjCWVhY3V0ZS5zYwllYnJldmUuc2MJZWNhcm9uLnNjCnVuaTFFMUQuc2MOZWNpcmN1bWZsZXguc2MKdW5pMUVCRi5zYwp1bmkxRUM3LnNjCnVuaTFFQzEuc2MKdW5pMUVDMy5zYwp1bmkxRUM1LnNjCnVuaTAyMDUuc2MMZWRpZXJlc2lzLnNjDWVkb3RhY2NlbnQuc2MKdW5pMUVCOS5zYwllZ3JhdmUuc2MKdW5pMUVCQi5zYwp1bmkwMjA3LnNjCmVtYWNyb24uc2MKdW5pMUUxNy5zYwp1bmkxRTE1LnNjCmVvZ29uZWsuc2MKdW5pMUVCRC5zYwp1bmkwMjU5LnNjCnVuaTAyOTIuc2MKdW5pMDFFRi5zYwRmLnNjBGcuc2MJZ2JyZXZlLnNjCWdjYXJvbi5zYw5nY2lyY3VtZmxleC5zYwp1bmkwMTIzLnNjDWdkb3RhY2NlbnQuc2MKdW5pMUUyMS5zYwp1bmkwMUU1LnNjBGguc2MHaGJhci5zYwp1bmkxRTJCLnNjCnVuaTAyMUYuc2MOaGNpcmN1bWZsZXguc2MKdW5pMUUyNS5zYwRpLnNjC2RvdGxlc3NpLnNjCWlhY3V0ZS5zYxNpYWN1dGVfai5sb2NsTkxELnNjCWlicmV2ZS5zYw5pY2lyY3VtZmxleC5zYwp1bmkwMjA5LnNjDGlkaWVyZXNpcy5zYwp1bmkxRTJGLnNjDGkubG9jbFRSSy5zYwp1bmkxRUNCLnNjCWlncmF2ZS5zYwp1bmkxRUM5LnNjCnVuaTAyMEIuc2MFaWouc2MKaW1hY3Jvbi5zYwppb2dvbmVrLnNjCWl0aWxkZS5zYwRqLnNjDmpjaXJjdW1mbGV4LnNjBGsuc2MKdW5pMDFFOS5zYwp1bmkwMTM3LnNjD2tncmVlbmxhbmRpYy5zYwRsLnNjCWxhY3V0ZS5zYwlsY2Fyb24uc2MKdW5pMDEzQy5zYwdsZG90LnNjCnVuaTFFMzcuc2MKdW5pMDFDOS5zYwp1bmkxRTNCLnNjCWxzbGFzaC5zYwRtLnNjCnVuaTFFNDMuc2MEbi5zYwluYWN1dGUuc2MJbmNhcm9uLnNjCnVuaTAxNDYuc2MKdW5pMUU0NS5zYwp1bmkxRTQ3LnNjBmVuZy5zYwp1bmkwMUNDLnNjCnVuaTFFNDkuc2MJbnRpbGRlLnNjBG8uc2MJb2FjdXRlLnNjCW9icmV2ZS5zYw5vY2lyY3VtZmxleC5zYwp1bmkxRUQxLnNjCnVuaTFFRDkuc2MKdW5pMUVEMy5zYwp1bmkxRUQ1LnNjCnVuaTFFRDcuc2MKdW5pMDIwRC5zYwxvZGllcmVzaXMuc2MKdW5pMDIyQi5zYwp1bmkwMjMxLnNjCnVuaTFFQ0Quc2MJb2dyYXZlLnNjCnVuaTFFQ0Yuc2MIb2hvcm4uc2MKdW5pMUVEQi5zYwp1bmkxRUUzLnNjCnVuaTFFREQuc2MKdW5pMUVERi5zYwp1bmkxRUUxLnNjEG9odW5nYXJ1bWxhdXQuc2MKdW5pMDIwRi5zYwpvbWFjcm9uLnNjCnVuaTFFNTMuc2MKdW5pMUU1MS5zYwp1bmkwMUVCLnNjCW9zbGFzaC5zYw5vc2xhc2hhY3V0ZS5zYwlvdGlsZGUuc2MKdW5pMUU0RC5zYwp1bmkxRTRGLnNjCnVuaTAyMkQuc2MFb2Uuc2MEcC5zYwh0aG9ybi5zYwRxLnNjBHIuc2MJcmFjdXRlLnNjCXJjYXJvbi5zYwp1bmkwMTU3LnNjCnVuaTAyMTEuc2MKdW5pMUU1Qi5zYwp1bmkwMjEzLnNjCnVuaTFFNUYuc2MEcy5zYwlzYWN1dGUuc2MKdW5pMUU2NS5zYwp1bmlBNzhDLnNjCXNjYXJvbi5zYwp1bmkxRTY3LnNjC3NjZWRpbGxhLnNjDnNjaXJjdW1mbGV4LnNjCnVuaTAyMTkuc2MKdW5pMUU2MS5zYwp1bmkxRTYzLnNjCnVuaTFFNjkuc2MEdC5zYwd0YmFyLnNjCXRjYXJvbi5zYwp1bmkwMTYzLnNjCnVuaTAyMUIuc2MKdW5pMUU5Ny5zYwp1bmkxRTZELnNjCnVuaTFFNkYuc2MEdS5zYwl1YWN1dGUuc2MJdWJyZXZlLnNjCnVuaTAxRDQuc2MOdWNpcmN1bWZsZXguc2MKdW5pMDIxNS5zYwx1ZGllcmVzaXMuc2MKdW5pMUVFNS5zYwl1Z3JhdmUuc2MKdW5pMUVFNy5zYwh1aG9ybi5zYwp1bmkxRUU5LnNjCnVuaTFFRjEuc2MKdW5pMUVFQi5zYwp1bmkxRUVELnNjCnVuaTFFRUYuc2MQdWh1bmdhcnVtbGF1dC5zYwp1bmkwMjE3LnNjCnVtYWNyb24uc2MKdW5pMUU3Qi5zYwp1b2dvbmVrLnNjCHVyaW5nLnNjCXV0aWxkZS5zYwp1bmkxRTc5LnNjBHYuc2MEdy5zYwl3YWN1dGUuc2MOd2NpcmN1bWZsZXguc2MMd2RpZXJlc2lzLnNjCXdncmF2ZS5zYwR4LnNjBHkuc2MJeWFjdXRlLnNjDnljaXJjdW1mbGV4LnNjDHlkaWVyZXNpcy5zYwp1bmkxRThGLnNjCnVuaTFFRjUuc2MJeWdyYXZlLnNjCnVuaTFFRjcuc2MKdW5pMDIzMy5zYwp1bmkxRUY5LnNjBHouc2MJemFjdXRlLnNjCXpjYXJvbi5zYw16ZG90YWNjZW50LnNjCnVuaTFFOTMuc2MJYS5zYy5zczAxDmFhY3V0ZS5zYy5zczAxDmFicmV2ZS5zYy5zczAxD3VuaTFFQUYuc2Muc3MwMQ91bmkxRUI3LnNjLnNzMDEPdW5pMUVCMS5zYy5zczAxD3VuaTFFQjMuc2Muc3MwMQ91bmkxRUI1LnNjLnNzMDEPdW5pMDFDRS5zYy5zczAxE2FjaXJjdW1mbGV4LnNjLnNzMDEPdW5pMUVBNS5zYy5zczAxD3VuaTFFQUQuc2Muc3MwMQ91bmkxRUE3LnNjLnNzMDEPdW5pMUVBOS5zYy5zczAxD3VuaTFFQUIuc2Muc3MwMQ91bmkwMjAxLnNjLnNzMDERYWRpZXJlc2lzLnNjLnNzMDEPdW5pMUVBMS5zYy5zczAxDmFncmF2ZS5zYy5zczAxD3VuaTFFQTMuc2Muc3MwMQ91bmkwMjAzLnNjLnNzMDEPYW1hY3Jvbi5zYy5zczAxD2FvZ29uZWsuc2Muc3MwMQ1hcmluZy5zYy5zczAxEmFyaW5nYWN1dGUuc2Muc3MwMQ5hdGlsZGUuc2Muc3MwMQphZS5zYy5zczAxD2FlYWN1dGUuc2Muc3MwMQ91bmkwMUM2LnNjLnNzMDEJZS5zYy5zczAxDmVhY3V0ZS5zYy5zczAxDmVicmV2ZS5zYy5zczAxDmVjYXJvbi5zYy5zczAxD3VuaTFFMUQuc2Muc3MwMRNlY2lyY3VtZmxleC5zYy5zczAxD3VuaTFFQkYuc2Muc3MwMQ91bmkxRUM3LnNjLnNzMDEPdW5pMUVDMS5zYy5zczAxD3VuaTFFQzMuc2Muc3MwMQ91bmkxRUM1LnNjLnNzMDEPdW5pMDIwNS5zYy5zczAxEWVkaWVyZXNpcy5zYy5zczAxEmVkb3RhY2NlbnQuc2Muc3MwMQ91bmkxRUI5LnNjLnNzMDEOZWdyYXZlLnNjLnNzMDEPdW5pMUVCQi5zYy5zczAxD3VuaTAyMDcuc2Muc3MwMQ9lbWFjcm9uLnNjLnNzMDEPdW5pMUUxNy5zYy5zczAxD3VuaTFFMTUuc2Muc3MwMQ9lb2dvbmVrLnNjLnNzMDEPdW5pMUVCRC5zYy5zczAxD3VuaTAyNTkuc2Muc3MwMQlmLnNjLnNzMDEJZy5zYy5zczAxDmdicmV2ZS5zYy5zczAxDmdjYXJvbi5zYy5zczAxE2djaXJjdW1mbGV4LnNjLnNzMDEPdW5pMDEyMy5zYy5zczAxEmdkb3RhY2NlbnQuc2Muc3MwMQ91bmkxRTIxLnNjLnNzMDEPdW5pMDFFNS5zYy5zczAxCWkuc2Muc3MwMRBkb3RsZXNzaS5zYy5zczAxDmlhY3V0ZS5zYy5zczAxGGlhY3V0ZV9qLmxvY2xOTEQuc2Muc3MwMQ5pYnJldmUuc2Muc3MwMRNpY2lyY3VtZmxleC5zYy5zczAxD3VuaTAyMDkuc2Muc3MwMRFpZGllcmVzaXMuc2Muc3MwMQ91bmkxRTJGLnNjLnNzMDEPdW5pMUVDQi5zYy5zczAxDmlncmF2ZS5zYy5zczAxD3VuaTFFQzkuc2Muc3MwMQ91bmkwMjBCLnNjLnNzMDEKaWouc2Muc3MwMQ9pbWFjcm9uLnNjLnNzMDEPaW9nb25lay5zYy5zczAxDml0aWxkZS5zYy5zczAxCWouc2Muc3MwMRNqY2lyY3VtZmxleC5zYy5zczAxD3VuaTAxQzkuc2Muc3MwMQltLnNjLnNzMDEPdW5pMUU0My5zYy5zczAxCW4uc2Muc3MwMQ5uYWN1dGUuc2Muc3MwMQ5uY2Fyb24uc2Muc3MwMQ91bmkwMTQ2LnNjLnNzMDEPdW5pMUU0NS5zYy5zczAxD3VuaTFFNDcuc2Muc3MwMQtlbmcuc2Muc3MwMQ91bmkwMUNDLnNjLnNzMDEPdW5pMUU0OS5zYy5zczAxDm50aWxkZS5zYy5zczAxCXEuc2Muc3MwMQl0LnNjLnNzMDEMdGJhci5zYy5zczAxDnRjYXJvbi5zYy5zczAxD3VuaTAxNjMuc2Muc3MwMQ91bmkwMjFCLnNjLnNzMDEPdW5pMUU5Ny5zYy5zczAxD3VuaTFFNkQuc2Muc3MwMQ91bmkxRTZGLnNjLnNzMDEJdS5zYy5zczAxDnVhY3V0ZS5zYy5zczAxDnVicmV2ZS5zYy5zczAxD3VuaTAxRDQuc2Muc3MwMRN1Y2lyY3VtZmxleC5zYy5zczAxD3VuaTAyMTUuc2Muc3MwMRF1ZGllcmVzaXMuc2Muc3MwMQ91bmkxRUU1LnNjLnNzMDEOdWdyYXZlLnNjLnNzMDEPdW5pMUVFNy5zYy5zczAxDXVob3JuLnNjLnNzMDEPdW5pMUVFOS5zYy5zczAxD3VuaTFFRjEuc2Muc3MwMQ91bmkxRUVCLnNjLnNzMDEPdW5pMUVFRC5zYy5zczAxD3VuaTFFRUYuc2Muc3MwMRV1aHVuZ2FydW1sYXV0LnNjLnNzMDEPdW5pMDIxNy5zYy5zczAxD3VtYWNyb24uc2Muc3MwMQ91bmkxRTdCLnNjLnNzMDEPdW9nb25lay5zYy5zczAxDXVyaW5nLnNjLnNzMDEOdXRpbGRlLnNjLnNzMDEPdW5pMUU3OS5zYy5zczAxCXcuc2Muc3MwMQ53YWN1dGUuc2Muc3MwMRN3Y2lyY3VtZmxleC5zYy5zczAxEXdkaWVyZXNpcy5zYy5zczAxDndncmF2ZS5zYy5zczAxCXkuc2Muc3MwMQ55YWN1dGUuc2Muc3MwMRN5Y2lyY3VtZmxleC5zYy5zczAxEXlkaWVyZXNpcy5zYy5zczAxD3VuaTFFOEYuc2Muc3MwMQ91bmkxRUY1LnNjLnNzMDEOeWdyYXZlLnNjLnNzMDEPdW5pMUVGNy5zYy5zczAxD3VuaTAyMzMuc2Muc3MwMQ91bmkxRUY5LnNjLnNzMDEJei5zYy5zczAxDnphY3V0ZS5zYy5zczAxDnpjYXJvbi5zYy5zczAxEnpkb3RhY2NlbnQuc2Muc3MwMQ91bmkxRTkzLnNjLnNzMDEHdW5pMDQxMAd1bmkwNDExB3VuaTA0MTIHdW5pMDQxMwd1bmkwNDAzB3VuaTA0OTAHdW5pMDQxNAd1bmkwNDE1B3VuaTA0MDAHdW5pMDQwMQd1bmkwNDE2B3VuaTA0MTcHdW5pMDQxOAd1bmkwNDE5B3VuaTA0MEQHdW5pMDQ4QQd1bmkwNDFBB3VuaTA0MEMHdW5pMDQxQgd1bmkwNDFDB3VuaTA0MUQHdW5pMDQxRQd1bmkwNDFGB3VuaTA0MjAHdW5pMDQyMQd1bmkwNDIyB3VuaTA0MjMHdW5pMDQwRQd1bmkwNDI0B3VuaTA0MjUHdW5pMDQyNwd1bmkwNDI2B3VuaTA0MjgHdW5pMDQyOQd1bmkwNDBGB3VuaTA0MkMHdW5pMDQyQQd1bmkwNDJCB3VuaTA0MDkHdW5pMDQwQQd1bmkwNDA1B3VuaTA0MDQHdW5pMDQyRAd1bmkwNDA2B3VuaTA0MDcHdW5pMDQwOAd1bmkwNDBCB3VuaTA0MkUHdW5pMDQyRgd1bmkwNDAyB3VuaTA0NjIHdW5pMDQ2QQd1bmkwNDcyB3VuaTA0NzQHdW5pMDQ5Mgd1bmkwNDk0B3VuaTA0OTYHdW5pMDQ5OAd1bmkwNDlBB3VuaTA0OUMHdW5pMDQ5RQd1bmkwNEEwB3VuaTA0QTIHdW5pMDRBNAd1bmkwNTI0B3VuaTA0QTgHdW5pMDRBQQd1bmkwNEFDCVVzdHJhaXRjeQ9Vc3RyYWl0c3Ryb2tlY3kHdW5pMDRCMgd1bmkwNEI0B3VuaTA0QjYHdW5pMDRCOAd1bmkwNEJBB3VuaTA1MjYHdW5pMDRCQwd1bmkwNEJFB3VuaTA0QzAHdW5pMDRDMQd1bmkwNEMzB3VuaTA0QzcHdW5pMDRDOQd1bmkwNENCB3VuaTA0Q0QHdW5pMDREMAd1bmkwNEQyB3VuaTA0RDQHdW5pMDRENgd1bmkwNEQ4B3VuaTA0REEHdW5pMDREQwd1bmkwNERFB3VuaTA0RTAHdW5pMDRFMgd1bmkwNEU0B3VuaTA0RTYHdW5pMDRFOAd1bmkwNEVBB3VuaTA0RUMHdW5pMDRFRQd1bmkwNEYwB3VuaTA0RjIHdW5pMDRGNAd1bmkwNEY2B3VuaTA0RjgHdW5pMDRGQQd1bmkwNEZDB3VuaTA0RkUHdW5pMDUxMAd1bmkwNTEyB3VuaTA1MUEHdW5pMDUxQwd1bmkwNDhDB3VuaTA0OEUHdW5pMDUyOAd1bmkwNTJFD3VuaTA0MTQubG9jbEJHUg91bmkwNDFCLmxvY2xCR1IPdW5pMDQyNC5sb2NsQkdSD3VuaTA0OTIubG9jbEJTSA91bmkwNDk4LmxvY2xCU0gPdW5pMDRBQS5sb2NsQlNID3VuaTA0QUEubG9jbENIVQx1bmkwNDEwLnNzMDEMdW5pMDQxNC5zczAxDHVuaTA0MTUuc3MwMQx1bmkwNDAwLnNzMDEMdW5pMDQwMS5zczAxDHVuaTA0MTguc3MwMQx1bmkwNDE5LnNzMDEMdW5pMDQ4QS5zczAxDHVuaTA0MEQuc3MwMQx1bmkwNDFCLnNzMDEMdW5pMDQyMC5zczAxDHVuaTA0MjIuc3MwMQx1bmkwNDIzLnNzMDEMdW5pMDQwRS5zczAxDHVuaTA0MjQuc3MwMQx1bmkwNDJDLnNzMDEMdW5pMDQyQS5zczAxDHVuaTA0MkIuc3MwMQx1bmkwNDA5LnNzMDEMdW5pMDQwQS5zczAxDHVuaTA0MDguc3MwMQx1bmkwNDYyLnNzMDEMdW5pMDRBQy5zczAxDHVuaTA0RDAuc3MwMQx1bmkwNEQyLnNzMDEMdW5pMDRENC5zczAxDHVuaTA0RDYuc3MwMQx1bmkwNEQ4LnNzMDEMdW5pMDREQS5zczAxDHVuaTA0RTIuc3MwMQx1bmkwNEU0LnNzMDEMdW5pMDRFRS5zczAxDHVuaTA0RjAuc3MwMQx1bmkwNEYyLnNzMDEMdW5pMDRGOC5zczAxDHVuaTA1MUEuc3MwMQx1bmkwNDhDLnNzMDEHdW5pMDQzMAd1bmkwNDMxB3VuaTA0MzIHdW5pMDQzMwd1bmkwNDUzB3VuaTA0OTEHdW5pMDQzNAd1bmkwNDM1B3VuaTA0NTAHdW5pMDQ1MQd1bmkwNDM2B3VuaTA0MzcHdW5pMDQzOAd1bmkwNDM5B3VuaTA0NUQHdW5pMDQ4Qgd1bmkwNDNBB3VuaTA0NUMHdW5pMDQzQgd1bmkwNDNDB3VuaTA0M0QHdW5pMDQzRQd1bmkwNDNGB3VuaTA0NDAHdW5pMDQ0MQd1bmkwNDQyB3VuaTA0NDMHdW5pMDQ1RQd1bmkwNDQ0B3VuaTA0NDUHdW5pMDQ0Nwd1bmkwNDQ2B3VuaTA0NDgHdW5pMDQ0OQd1bmkwNDVGB3VuaTA0NEMHdW5pMDQ0QQd1bmkwNDRCB3VuaTA0NTkHdW5pMDQ1QQd1bmkwNDU1B3VuaTA0NTQHdW5pMDQ0RAd1bmkwNDU2B3VuaTA0NTcHdW5pMDQ1OAd1bmkwNDVCB3VuaTA0NEUHdW5pMDQ0Rgd1bmkwNDUyB3VuaTA0NjMHdW5pMDQ2Qgd1bmkwNDczB3VuaTA0NzUHdW5pMDQ5Mwd1bmkwNDk1B3VuaTA0OTcHdW5pMDQ5OQd1bmkwNDlCB3VuaTA0OUQHdW5pMDQ5Rgd1bmkwNEExB3VuaTA0QTMHdW5pMDRBNQd1bmkwNTI1B3VuaTA0QTkHdW5pMDRBQgd1bmkwNEFECXVzdHJhaXRjeQ91c3RyYWl0c3Ryb2tlY3kHdW5pMDRCMwd1bmkwNEI1B3VuaTA0QjcHdW5pMDRCOQd1bmkwNEJCB3VuaTA1MjcHdW5pMDRCRAd1bmkwNEJGB3VuaTA0Q0YHdW5pMDRDMgd1bmkwNEM0B3VuaTA0QzYHdW5pMDRDOAd1bmkwNENBB3VuaTA0Q0MHdW5pMDRDRQd1bmkwNEQxB3VuaTA0RDMHdW5pMDRENQd1bmkwNEQ3B3VuaTA0RDkHdW5pMDREQgd1bmkwNEREB3VuaTA0REYHdW5pMDRFMQd1bmkwNEUzB3VuaTA0RTUHdW5pMDRFNwd1bmkwNEU5B3VuaTA0RUIHdW5pMDRFRAd1bmkwNEVGB3VuaTA0RjEHdW5pMDRGMwd1bmkwNEY1B3VuaTA0RjcHdW5pMDRGOQd1bmkwNEZCB3VuaTA0RkQHdW5pMDRGRgd1bmkwNTExB3VuaTA1MTMHdW5pMDUxQgd1bmkwNTFEB3VuaTA0OEQHdW5pMDQ4Rgd1bmkwNTI5B3VuaTA1MkYPdW5pMDQzMi5sb2NsQkdSD3VuaTA0MzMubG9jbEJHUg91bmkwNDM0LmxvY2xCR1IPdW5pMDQzNi5sb2NsQkdSD3VuaTA0MzcubG9jbEJHUg91bmkwNDM4LmxvY2xCR1IPdW5pMDQzOS5sb2NsQkdSD3VuaTA0NUQubG9jbEJHUg91bmkwNDNBLmxvY2xCR1IPdW5pMDQzQi5sb2NsQkdSD3VuaTA0M0QubG9jbEJHUg91bmkwNDNGLmxvY2xCR1IPdW5pMDQ0Mi5sb2NsQkdSD3VuaTA0NDcubG9jbEJHUg91bmkwNDQ2LmxvY2xCR1IPdW5pMDQ0OC5sb2NsQkdSD3VuaTA0NDkubG9jbEJHUg91bmkwNDRDLmxvY2xCR1IPdW5pMDQ0QS5sb2NsQkdSD3VuaTA0NEUubG9jbEJHUg91bmkwNDkzLmxvY2xCU0gPdW5pMDQ5OS5sb2NsQlNID3VuaTA0QUIubG9jbENIVQ91bmkwNDUzLmxvY2xNS0QPdW5pMDQzMS5sb2NsU1JCD3VuaTA0MzMubG9jbFNSQg91bmkwNDM0LmxvY2xTUkIPdW5pMDQzRi5sb2NsU1JCD3VuaTA0NDIubG9jbFNSQgx1bmkwNDMwLnNzMDEMdW5pMDQzNC5zczAxDHVuaTA0MzUuc3MwMQx1bmkwNDUwLnNzMDEMdW5pMDQ1MS5zczAxDHVuaTA0Mzguc3MwMQx1bmkwNDM5LnNzMDEMdW5pMDQ4Qi5zczAxDHVuaTA0NUQuc3MwMQx1bmkwNDQwLnNzMDEMdW5pMDQ0Mi5zczAxDHVuaTA0NDMuc3MwMQx1bmkwNDVFLnNzMDEMdW5pMDQ0Qy5zczAxDHVuaTA0NEEuc3MwMQx1bmkwNDRCLnNzMDEMdW5pMDQ1OS5zczAxDHVuaTA0NUEuc3MwMQx1bmkwNDYzLnNzMDEMdW5pMDREMS5zczAxDHVuaTA0RDMuc3MwMQx1bmkwNEQ1LnNzMDEMdW5pMDRENy5zczAxDHVuaTA0RDkuc3MwMQx1bmkwNERCLnNzMDEMdW5pMDRFMy5zczAxDHVuaTA0RTUuc3MwMQx1bmkwNEVGLnNzMDEMdW5pMDRGMS5zczAxDHVuaTA0RjMuc3MwMQx1bmkwNEY5LnNzMDEMdW5pMDQ4RC5zczAxB3VuaTAzOTQHdW5pMDNBOQd1bmkwM0JDB3VuaTIxMkIHdW5pMjEyQQh6ZXJvLm9zZgdvbmUub3NmB3R3by5vc2YJdGhyZWUub3NmCGZvdXIub3NmCGZpdmUub3NmB3NpeC5vc2YJc2V2ZW4ub3NmCWVpZ2h0Lm9zZghuaW5lLm9zZgd6ZXJvLnRmBm9uZS50ZgZ0d28udGYIdGhyZWUudGYHZm91ci50ZgdmaXZlLnRmBnNpeC50ZghzZXZlbi50ZghlaWdodC50ZgduaW5lLnRmCXplcm8udG9zZghvbmUudG9zZgh0d28udG9zZgp0aHJlZS50b3NmCWZvdXIudG9zZglmaXZlLnRvc2YIc2l4LnRvc2YKc2V2ZW4udG9zZgplaWdodC50b3NmCW5pbmUudG9zZgd1bmkyMDgwB3VuaTIwODEHdW5pMjA4Mgd1bmkyMDgzB3VuaTIwODQHdW5pMjA4NQd1bmkyMDg2B3VuaTIwODcHdW5pMjA4OAd1bmkyMDg5CXplcm8uZG5vbQhvbmUuZG5vbQh0d28uZG5vbQp0aHJlZS5kbm9tCWZvdXIuZG5vbQlmaXZlLmRub20Ic2l4LmRub20Kc2V2ZW4uZG5vbQplaWdodC5kbm9tCW5pbmUuZG5vbQl6ZXJvLm51bXIIb25lLm51bXIIdHdvLm51bXIKdGhyZWUubnVtcglmb3VyLm51bXIJZml2ZS5udW1yCHNpeC5udW1yCnNldmVuLm51bXIKZWlnaHQubnVtcgluaW5lLm51bXIHdW5pMjA3MAd1bmkwMEI5B3VuaTAwQjIHdW5pMDBCMwd1bmkyMDc0B3VuaTIwNzUHdW5pMjA3Ngd1bmkyMDc3B3VuaTIwNzgHdW5pMjA3OQd1bmkyMTUzB3VuaTIxNTQJb25lZWlnaHRoDHRocmVlZWlnaHRocwtmaXZlZWlnaHRocwxzZXZlbmVpZ2h0aHMTcGVyaW9kY2VudGVyZWQuY2FzZQtidWxsZXQuY2FzZRtwZXJpb2RjZW50ZXJlZC5sb2NsQ0FULmNhc2UKc2xhc2guY2FzZQ5iYWNrc2xhc2guY2FzZRZwZXJpb2RjZW50ZXJlZC5sb2NsQ0FUDnBhcmVubGVmdC5jYXNlD3BhcmVucmlnaHQuY2FzZQ5icmFjZWxlZnQuY2FzZQ9icmFjZXJpZ2h0LmNhc2UQYnJhY2tldGxlZnQuY2FzZRFicmFja2V0cmlnaHQuY2FzZQd1bmkwMEFECmZpZ3VyZWRhc2gHdW5pMjAxNQd1bmkyMDEwC2h5cGhlbi5jYXNlC2VuZGFzaC5jYXNlC2VtZGFzaC5jYXNlEmd1aWxsZW1vdGxlZnQuY2FzZRNndWlsbGVtb3RyaWdodC5jYXNlEmd1aWxzaW5nbGxlZnQuY2FzZRNndWlsc2luZ2xyaWdodC5jYXNlCXBlcmlvZC5zYwlleGNsYW0uc2MNZXhjbGFtZG93bi5zYwtxdWVzdGlvbi5zYw9xdWVzdGlvbmRvd24uc2MRcXVvdGVzaW5nbGJhc2Uuc2MPcXVvdGVkYmxiYXNlLnNjD3F1b3RlZGJsbGVmdC5zYxBxdW90ZWRibHJpZ2h0LnNjDHF1b3RlbGVmdC5zYw1xdW90ZXJpZ2h0LnNjEGd1aWxsZW1vdGxlZnQuc2MRZ3VpbGxlbW90cmlnaHQuc2MQZ3VpbHNpbmdsbGVmdC5zYxFndWlsc2luZ2xyaWdodC5zYwtxdW90ZWRibC5zYw5xdW90ZXNpbmdsZS5zYwd1bmkyN0U4B3VuaTI3RTkHdW5pMjAwNwd1bmkyMDBBB3VuaTIwMDgHdW5pMDBBMAd1bmkyMDA5B3VuaTIwMEICQ1IHdW5pMjBCNQ1jb2xvbm1vbmV0YXJ5BGRvbmcERXVybwd1bmkyMEIyB3VuaTIwQjQHdW5pMjBBRARsaXJhB3VuaTIwQkEHdW5pMjBCQwd1bmkyMEE2BnBlc2V0YQd1bmkyMEIxB3VuaTIwQkQHdW5pMjBCOQd1bmkyMEI4B3VuaTIwQUUHdW5pMjBBOQd1bmkyMjE5B3VuaTIwNTIHdW5pMjIxNQhlbXB0eXNldAd1bmkyMTI2B3VuaTIyMDYHdW5pMDBCNQdhcnJvd3VwB3VuaTIxOTcKYXJyb3dyaWdodAd1bmkyMTk4CWFycm93ZG93bgd1bmkyMTk5CWFycm93bGVmdAd1bmkyMTk2CWFycm93Ym90aAlhcnJvd3VwZG4MYXJyb3d1cC5jYXNlD2Fycm93cmlnaHQuY2FzZQ5hcnJvd2Rvd24uY2FzZQ5hcnJvd2xlZnQuY2FzZQd1bmkyNUM2B3VuaTI1QzcJZmlsbGVkYm94B3VuaTI1QTEHdHJpYWd1cAd1bmkyNUI2B3RyaWFnZG4HdW5pMjVDMAd1bmkyNUIzB3VuaTI1QjcHdW5pMjVCRAd1bmkyNUMxBm1pbnV0ZQZzZWNvbmQHdW5pMjExMwllc3RpbWF0ZWQHdW5pMjExNgdhdC5jYXNlDHVuaTIxMTYuc3MwMQxhbXBlcnNhbmQuc2MHdW5pMDJCQwd1bmkwMkJCB3VuaTAyQkEHdW5pMDJDOQd1bmkwMkNCB3VuaTAyQjkHdW5pMDJCRgd1bmkwMkJFB3VuaTAyQ0EHdW5pMDJDQwd1bmkwMkM4B3VuaTAzMDgLdW5pMDMwODAzMDALdW5pMDMwODAzMDELdW5pMDMwODAzMDQHdW5pMDMwNwt1bmkwMzA3MDMwNAlncmF2ZWNvbWILdW5pMDMwMDAzMDQJYWN1dGVjb21iC3VuaTAzMDEwMzA3C3VuaTAzMDEwMzA0B3VuaTAzMEILdW5pMDMwQy5hbHQHdW5pMDMwMgd1bmkwMzBDC3VuaTAzMEMwMzA3B3VuaTAzMDYHdW5pMDMwQQt1bmkwMzBBMDMwMQl0aWxkZWNvbWILdW5pMDMwMzAzMDgTdGlsZGVjb21iX2FjdXRlY29tYgt1bmkwMzAzMDMwNAd1bmkwMzA0C3VuaTAzMDQwMzA4C3VuaTAzMDQwMzAwC3VuaTAzMDQwMzAxDWhvb2thYm92ZWNvbWIHdW5pMDMwRgd1bmkwMzExB3VuaTAzMTIHdW5pMDMxQgxkb3RiZWxvd2NvbWIHdW5pMDMyNAd1bmkwMzI2B3VuaTAzMjcHdW5pMDMyOAd1bmkwMzJFB3VuaTAzMzEHdW5pMDMzNQd1bmkwMzM2B3VuaTAzMzcHdW5pMDMzOAx1bmkwMzA4LmNhc2UQdW5pMDMwODAzMDAuY2FzZRB1bmkwMzA4MDMwMS5jYXNlEHVuaTAzMDgwMzA0LmNhc2UMdW5pMDMwNy5jYXNlEHVuaTAzMDcwMzA0LmNhc2UOZ3JhdmVjb21iLmNhc2UQdW5pMDMwMDAzMDQuY2FzZQ5hY3V0ZWNvbWIuY2FzZRB1bmkwMzAxMDMwNy5jYXNlEHVuaTAzMDEwMzA0LmNhc2UMdW5pMDMwQi5jYXNlDHVuaTAzMDIuY2FzZQx1bmkwMzBDLmNhc2UQdW5pMDMwQzAzMDcuY2FzZQx1bmkwMzA2LmNhc2UOdGlsZGVjb21iLmNhc2UQdW5pMDMwMzAzMDguY2FzZRh0aWxkZWNvbWJfYWN1dGVjb21iLmNhc2UQdW5pMDMwMzAzMDQuY2FzZQx1bmkwMzA0LmNhc2UQdW5pMDMwNDAzMDguY2FzZRB1bmkwMzA0MDMwMC5jYXNlEHVuaTAzMDQwMzAxLmNhc2USaG9va2Fib3ZlY29tYi5jYXNlDHVuaTAzMEYuY2FzZQx1bmkwMzExLmNhc2UMdW5pMDMzNS5jYXNlDHVuaTAzMzcuY2FzZQx1bmkwMzM4LmNhc2UTdW5pMDMwNC5uYXJyb3cuY2FzZQl1bmkwMzA3LmkJdW5pMDMyOC5pEHVuaTAzMDgubG9jbFZJRVQQdW5pMDMwNy5sb2NsVklFVBJncmF2ZWNvbWIubG9jbFZJRVQSYWN1dGVjb21iLmxvY2xWSUVUEHVuaTAzMDIubG9jbFZJRVQQdW5pMDMwQy5sb2NsVklFVBB1bmkwMzA2LmxvY2xWSUVUEnRpbGRlY29tYi5sb2NsVklFVBB1bmkwMzA0LmxvY2xWSUVUFmhvb2thYm92ZWNvbWIubG9jbFZJRVQOdW5pMDMwOC5uYXJyb3cOdW5pMDMwMi5uYXJyb3cOdW5pMDMwNi5uYXJyb3cQdGlsZGVjb21iLm5hcnJvdw51bmkwMzA0Lm5hcnJvdw51bmkwMzExLm5hcnJvdwp1bmkwMzM1LnNjCnVuaTAzMzYuc2MKdW5pMDMzOC5zYxF1bmkwMzBDLmFsdC5zaG9ydAl1bmkwMzM1LnQLYnJldmVjb21iY3kLZGVzY2VuZGVyY3kQYnJldmVjb21iY3kuY2FzZRBkZXNjZW5kZXJjeS5jYXNlFmRlc2NlbmRlcmN5LmNhc2Uuc2hvcnQRZGVzY2VuZGVyY3kuc2hvcnQLdW5pMDMwNjAzMDELdW5pMDMwNjAzMDALdW5pMDMwNjAzMDkLdW5pMDMwNjAzMDMLdW5pMDMwMjAzMDELdW5pMDMwMjAzMDALdW5pMDMwMjAzMDkLdW5pMDMwMjAzMDMQdW5pMDMwNjAzMDEuY2FzZRB1bmkwMzA2MDMwMC5jYXNlEHVuaTAzMDYwMzA5LmNhc2UQdW5pMDMwNjAzMDMuY2FzZRB1bmkwMzAyMDMwMS5jYXNlEHVuaTAzMDIwMzAwLmNhc2UQdW5pMDMwMjAzMDkuY2FzZRB1bmkwMzAyMDMwMy5jYXNlBE5VTEwSdmVydGljYWxiYXJjeS5jYXNlDXZlcnRpY2FsYmFyY3kPZGVzY1RhaWxjeS5jYXNlCmRlc2NUYWlsY3kHdW5pMDRBNhJRLnNzMDEuQlJBQ0tFVC4xNzAJdW5pMjBCNS4xEGNlbnQuQlJBQ0tFVC4xNzkPY29sb25tb25ldGFyeS4xEmRvbGxhci5CUkFDS0VULjE3OQl1bmkyMEIyLjEJdW5pMjBBNi4xB3VuaTA0QTcJdW5pMjBCMS4xFXEuc2Muc3MwMS5CUkFDS0VULjE3MAl1bmkyMEE5LjEAAAABAAH//wAPAAEAAgAOAAAAAAAAA34AAgCSAAEAJQABACYAJgACACcAKwABACwALAACAC0ARQABAEcAagABAGsAawACAGwAcAABAHEAcQACAHIAdgABAHcAdwACAHgAfAABAH4AfgACAH8AowABAKYAsQABALMAugABALwA1wABANkA2wABAN0A4QABAOMA8QABAPMBDgABAQ8BEAACAREBJwABASkBMwABATUBQwABAUQBRAACAUUBRwABAUgBSAACAUkBTQABAU8BTwACAVABUQABAVMBogABAaQBqwABAa0BsAABAbEBsQACAbIBywABAc0B0wABAdUB5wABAegB6AACAekB+AABAfkB+QACAfoCBAABAgYCBgACAgcCOQABAjsCQgABAkUCagABAmwCegABAn0CmAABApkCmQACApoCsQABArMCuAABArkCuQACAroC2AABAtoC3AABAt4DBwABAwgDCAACAwkDIgABAyQDNAABAzYDTwABA1ADUAACA1EDWgABA1wDXAACA10DgQABA4QDjwABA5EDtAABA7YDuAABA7oDvgABA8AD6gABA+sD6wACA+wEAwABBAUEDwABBBEEHwABBCAEIAACBCEEKAABBCoEKgACBCsELAABBC4EYQABBGQEZAABBGYEaAABBGsEegABBHwEfwABBIEEggABBIQEhQABBIcEhwABBIkEigABBIwEkQABBJYElgABBJgEmAABBJoEmgABBJwEngABBKAEogABBKMEowACBKQEpAABBKYEswABBLYEtgABBLgEwAABBMIEzgABBNME0wABBNUE1QABBNgE2AABBNwE4AABBOIE6QABBOsE7QABBPEE8QABBPQFAgABBQQFBQABBQcFCQABBQwFIAABBSIFIwABBSUFJgABBSgFKAABBSoFKwABBS0FMwABBTkFOQABBTsFOwABBT0FPQABBT8FPwABBUEFQwABBUQFRAACBUUFRQABBUcFSwABBU0FTwABBVEFVAABBVYFVgABBVgFWAABBVoFYgABBWQFbwABBXQFdgABBXoFegABBX0FfQABBYAFgwABBYUFiwABBZAFkgABBZQFpAABBacFpwABBasFtgABBbwFvQABBikGKQADBiwGLAADBn8GfwACBuAG6wADBu0HCgADBxgHNQADB0kHSwADB1QHYwADB2kHaQABAAEAAgAAAAwAAAAcAAEABgcABwEHAgcDBwUHBgACAAQG4AbrAAAG7Qb+AAwHGAcyAB4HVAdjADkAAAABAAAAGAAsAAoABgBOADYAPgBGAFgAYgADREZMVABeY3lybABebGF0bgBeAANrZXJuAE5tYXJrAFxta21rAFQABAAAAAEAUgAEAAAAAQBWAAUAAAABAFoAAgAIAAIAggFkAAYAEAABAFQAAAAGABAAAQBWAAEAWAAAAAAAAQAAAAAAAgAEAAUAAAADAAEAAgADAAGVfp/QAAGZ3qesAAGVjqJiAAWWjLGMAAGVqpYIAAKbPpXSAAGVMJUiAAGVQJUWAAGVTpYoAAGZrpa+AAD//wADAAAAAQACAAGcTAAEAAAAbJjKl0SYgpkimSKZIpkimSKZIpkimVCZUJlQmVCZUJlQmKCYoJigmKCYoJigmKCYoJigmKCYaJhOmE6YTphOmE6YTphOmAyXTpdil+CdKJdYl6qXgJeOl/aXWJdimPSYOJ4SmAyYIp0opMqXvJfOl86ZIplQmVCZUJjKmSKYoJigmVCZUJlQmSKZUJjKmE6YTpg4mryXIJc+lz6Xzpd2l3aXJpcslyyXPpc+lz6XbJecl5yXPpc+lziXMpc4lz6XOJc+mMqYaJhol3aXPpc+lz6XPpfOl86XnAAC4nAABAAA7mDjoACUAIAAAAAAAAAAAAAAAAAAAAAA//kAAAAAAAAAAAAAAAAAAAAAAAAAAP/AAAD/3wAAAAAAAAAA//gAAP/YAAAAAAAAAAAAAAAAAAAAAAAAAAD/+//zAAD/9gAAAAAAAAAAAAAAAP/bAAAAAAAAAAAAAAAAAAD/wAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD//P/qAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAP/8//wAAAAAAAAAAAAaAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA//sAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD//AAAAAAAAP/7AAAAAAAAAAD/7AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA//z/+//7AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD/+gAAAAAACAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD/9gAAAAAAAP/2AAAAAAAA//b/+//nAAD/+wAEAAAAAAAA/+L/8AAFAAD/+f/2AAAAAP/8AAD/9v/v/+n/7P/s/+7/7P/5//YABABQ//H/7//x/+IAAP/5AAD/7P/sAAgAAAAAAAAAAAAAAAAAAAAA//b/7AAAAAAAAAAA//EAAP/0AAD/7wAAAAAAAAAKAAAAAAAAAAAAAAAAAAAAAAAA/+wAAAAK//YAAAAAAAAABwAI/+IAAP/sAAAAAAAAAAD/8wAAAAX/9gAA/+IAAAAAAAAAAAAAAAAAAAAAAAD/+QAAAAD/+wAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD/zwAAAAAAAAAAAAAAAAAAAAAAAAAA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AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACcAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAP/2AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD/9gAAAAAAAAAAAAAAAAAAAAAAAAAAAAD/9gAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAP/EAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAP/2AAD/7AAAAAAAAP/0AAAAAAAAAAAAAAAAAAAAAAAAAAD/+//7//wAAP/qAAAAAAAA//IAAAAAAAAAAP/oAAD/9v/v//L/9gAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA//kAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA//YAAAAAAAAAAAAAAAD/9AAAAAAAAAAA//YAAgAAAAAAAAAAAAAAAAAAAAAAAAAAAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAoAAAAAAAD/xwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD//AAAAAAAAAAAAAAAAAAAAAAAAAAAAAD/+f/4AAAAAP/5AA8AAAAAAAAAAAAAAAAAAAAAAAAAAAAEAAD//AAA//wAAAARAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAP/8AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAP/2AAD/9gAA//T/8AAAAA4AAAAAAAD/8f/2AAAAAAAA/+wAAAAAAAAAAP/5//YAAAAUAAAAAP/v//P/9gAAAAD/6f/iAAD/4v/s/+cAAAAA//YAAAAA//sAAAAAAAAAAAAAAAAAAP/nAAAAAAAAAAD/9gAA//H/3//sAAAAAAAA//EAAAAA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AB4AIgARAC///P/5AAAAAAAAAAAAHQAAAAAAAAAAAAAADgAAABT/+AAAAAD/6gAAAAAAAAAAAAAAAAAAAAD/0wAAAAAAAAAAAAAAAwAAAAAAAP/YAAAAAP/2AAAAAAAA/+n/+wAAAAAAAAAAAAAAAAAAAAAAAP/5//P/y//8/9n/1QAFAAAAAAAA//YAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA4AAP/7AAD/9gAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD/8wAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD/5gAA/+0AAAAAAAAAAAAAAAD/6AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAP++AAAAAAAAAAAAAAAAAAAAAP/VAAAAAAAAAAAAAAAAAAAAAAAA/9sAAP/YAAAAAAAAAAAAAAAAAAAAAP/zAAAAAAAAAAD/9gAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAP/oAAD/7gAA//YAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABkAAAAAAAAAGQAAAAAABQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD/4v/s//T/7P/o/+AAAP/sAAD/0//Y/+f/7P+5/9n/7P/EAAAAAP/2AAAAAP/i//H/9v/YAAr/5//s/90AAP/5/9v/2P/sAAAAAAAAAAD//AAAAAD/+QAA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AA0AAAANAAQAAAAAACsAHgAAAAAAAAAAAAAAAAAAAAAAAAAAABQAAAAAAAAAAAAAAAD/6P/o/90AAAAAAAAAAAAEAAAABAAAAAAAAAAAAF3/8P/8AAAAAAAXABQABAAAAA0AAAANAAAAAAAAAAAAFAAAAAQABAA1AAQAAAAhAAAAAAAAAAD/+AAw//YAAAAA/+wAAAAHAAQAGgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAeAAAAAAAAAAAAAAAAAAAADQAAAAQAAAAAAAAAAAAAAAAAFAAAAAAAAAAAAAAAAAAAAAAAAAANAAAAFAAAAAAAAAAAAAAAAAAAAAAAAAAEAAAAFwAAAAAAAAArACsAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABAAAAA0AAAAAAAAAAABC/+z/+QAAAAAADQAAAAAAAAANAAAAAAAAAAD//AAAAA0AAAAAAAAAIQAAAAAAIQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAB4AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACgAAAAAAAAAAAAAABAAA//YAAP/4ABQAAAAAAAAAAAAA/9r/9gANAAAAAP/4AAAAAAAAAAD/9gAA/+YAAAAAAAAAAAAAAAAAAAAAAAAACgAiAAQAAAAAAAAANf/rAAAAAAAAAAAAAAAAAAAAAAAEAB4AAAAAAAAAAAAAAAAAAAAUAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAQAAAAKAAAAFAAAAAAAAAAA//YABAAAAAAAAAAEABQAAAAAAAAAAAAKAAoAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD//P/YAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABQAAAAAAAAAAAAAAAAAAAAAAAAAAP/s//YAKAAAAAAAAAAAAAAAAAAA//YAAP/sAAAAAAAAAAAAAAAAAAAAAAAAAAAACgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA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AAAAAAAAAAAAAP/s/+wAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD/9QAAAAAAAP/zAAAABAAA/+z/9v/cAAQAAAAEAAAAAAAA/9z/9gAKAAD/8f/2AAAAAAAAAAD/8QAA/+f/8wAAAAAAAAAA//wAAP/4AAAABP/m/84ABAAAAAD/7P/sAAAAAAAAAAAAAAAAAAAAAAAA//P/4gAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA//wAAAAAAAAAAAAA/+wAAP/iAAAAAP/8AAD/9gAAAAD//AAA/+wAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD/8P/zAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAP/eAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAP/gAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAaAAAAAAAAAAAAAAAAAAAAAAAAAAcAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAeAAAAAAAAAAAAAAAAAAAAAP/oAAAAAP/O/+wAAAAA/94AAAAAAAAAAAAUAAAAAAAAAAAAAAAAAAD/gwAAAAD/7AAAAAAAAAAAAAAAKAAA/+gAAAAAAAAAAAAAABQAAAAAACAAHgAAAAr/7P/sAAAAAP/sAAD/yv/iAAAAAAAA//L//AAK//sAAAAKAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD/7AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFAAAAAD/7AAe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AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAKAAAAAAAYAAAAAAAAABQAFAAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADQAAAAAAAAAAAAAAAAAAAAAADQAAAAAAAAAAAAAAAAAA//wAAAAHAAAAMgAyAAAAAAAEAAAAGAAAAAAAAAAAACIAGAAKAAAAAAAUAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD/7wAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACgAAAAQAAP/2AAAAAAAAABQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAoAAAAAAAAAAAAAAAAAAAAUAAAAAAAAAAAAAAAAAAQAAAAA//YAAAAYAAAAAAAAAAAAAAAA//wAAP/8AAAAAAAAAAT//AAAABgAAAAA/+wAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACgAAAAAAAAAUAAAAAAAUAAAAAAAAAAAAAAAUAAAAAAAAAAAABAAAAAAAAAAAABQAAAAKAAQAAAAAAAAAAAAEAAAAAAAAAAQAFv/5AAgABAAAAAAAAAAEAAQAAAAAAAAAAAAAAAAAAAAQ//YAAAAAAAAAAAAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAKAAAAAAAKABQAAAAAAAAAAAAAAAAAAAAAAAAABAAOAAAAAAANAAAACgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADQAAAAAAAAAAAAAAAAAAAAAAAAAAAA0AAAAAAAAAAAAAAAAAAAAEAAAAAAAAAAAABAAAAAAAAAANAAAAAAAUAAQAAAAR//YAAAAAAAAAAAAAAAAAAAAAAAoADf/2AAAAAAAEAAQABAAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA/+wAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACgAAAAAAAAAKAAAAAAAA/+wAAP/2AA0AAAAAAAAAAAAA/9gAAAAKAAAAAP/2AAAAAAAAAAD/7AAA/+IABAAAAAAAAAAA//YAAABJAAAAAAAKABQAAAAEAAAAKP/JAAQADQAAAAAAAAAAAAAAAAAAABQACgAAAAAAAAAAAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAZAAAABQAAAAA/+wACgAAAAAAAAAE//wAAAAAAAAAAAAAAAAAAAAA//wAAAAAABQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAP/sAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABAAAAAAAAAAAAAAAAAAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAQAAAAAAAAAAAAAAAAAAAAAAA0AAAAAAA4ABAAAABj/9gAAAAAAAAAAAAAAAAAAAAAACgANAAQAAAAAAAQABAAEAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABwAAAAAAAAAAAAQAAAAAAAAAAAAAAAAAAP/2AAAAAAANAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD/7AAAAAAAAAAAAAAAAAAAAAAABAAAAAAAAAAAAAAAAAAA//wAAP/1AAD/9gAA//MAAAAAAAAAAAAAAAD/+f/1AAAAAAAAAAAAAAAAAAAAAAAAAAD/+AAAAAAAAAAAAAAAAAAAAAAAAAAA//b/0v/2AAAAAAAA//YAAAAAAAAAAAAAAAAAAAAAAAD//P/wAAD/9gAAAAAAAAAAAAAAAAAAAAAAAAAA//kAAAAAAAAAAAAA//sAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA//QAAP/7AAAAAP/7AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAP/8AAAAAAAAAAAAAAAA//gAAAAAAAAAAAAAAAAAAAAPAAAAAAAEAAAAAAAA//wAAAAAAAAAAAAAAAAAAAAA//EAAAAAAAAAAAAAAAAAAAAAAAAAAAAA//AACgAAAAAAAAAAAAQAAAAUAAAAAAAPAAAAAAAAAAAAKP/eAAAAAAAAAAAAAAAAAAAAAAAAABQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA//IAAP/2AAAAAAAAAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAP/2AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD/4gAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA/8QAAAAAAAAAAAAAAAAAAAAAABQAAAAAABgAAAAA//YARgAiABT/7AAAAAAAAAAAAAD/7AAAAAAAAAAAAAAAAAAUAAAAAAAAAAAAAAAAAAAAAAAN/+wAAP/sAAAAAP/2AAD/3P/EAAAAAAAsABQAAAAAACEABAAKAAD/xP/YAAAAHgAKAA4AAAAAAAcAAP/sAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAP/sAAAAAAAQAAAACgAAAAAACgAAAAAAAAAAABsAAAAUABQAAP/pAAr/ywAA//X//P/2AAoAAP/8AAD/qP/wAAIAAP/8AAQAAAAAAAQACv/LAAD/yAAUAAAAAAAAAAAADQAAAAAAAP/iAAT//P/s/+YAAAAY/84AAAAAAAgAAAAKAAAAAAAAAAAABP/yAAr/4gAAAAD/9gAAAAAAAAAAABQAAAAA/+IAAAAAAAAAAAAAAAAAAAAUAAAAAP/8AAD/5wAA/+kAAAAAAAD/yAAAAAoAAAAZ/9YAAP/5AAD/7AAAAAAAFAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAN//YAAAAAAAAAAAAA//YAAAAAAAQAAAAAAAAAGQAYAAAAAAAeAAD/5AAE/+MAAP/8//D/+QAEAAAAAgAK/78ACgAAAAAAEP/jAAAACgAHABT/yQAA/8YAHAAAAAAAAAAA/+kAAAAXAAD/3gApAA3/7P/mAAAAKP/KAAAAAAAPAAAAAAAAAAoAAAAAAC4AFAAK/+IAAAAA/+IAAAAAAAAAAAAKAAAAAP/YABQAAAAUAAAAAAAAAAAAPAAAAAQAAP/8AAD/8f/kAAAAAAAA/8kAAAAAAAAAAAAA/88AAP/7/+gAAAAFAB4AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFP/sAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAQABAAAAAD//AAAAAAAAP/sAAD/+AAA//YACgAAAAAAAP/iAAAACgAAAAD/8wAAAAAAAAAE/+4AAP/mAAoAAAAAAAAAAP/zAAAAAAAAAAAAAv/sAAD//AAAABT/3gAAAAAAAAAAAAAAAAAAAAAAAAAA//MAAP/2AAAAAAAAAAAAAAAAAAAAAAAAAAD/7AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD//AAAAAAAAP/iAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAP/8AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA//kAAAAAAAAAAAAAAAAAAAAA//YAAAAAAAAAAAAAAAAAAAAAAAAAAAAA//YAAAAAAAAAAAAAAAAAAAAAAAAAAAAA//kAAAAAAAAAAP/8AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA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//wAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA/+wAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD/+wAAAAAAAAAAAAAAAAAA//wAAAAAAAAAAAAA//wAAAAAAAAAAAAAAAAAAAAA//AAAP/OAAAAAAAAAAD/+QAAAAAAAP/2AAAAAAAAAAAAAAAAAAAAAAAA/9gAAP/2AAAAAAAAAAD/5gAAAAAAFf/c//kAAAAAAAD/+AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAP/mAAD/9P/F/+IAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD/3AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA//wAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAUAAAAAAAAAAAAAAAAAAAAAAAUAAAAAAAAAAAAAAAeACgAGgAaAAAAAAAAAAAAAP/8//wAAAAAAAAAAAAAAAAADQAAAAAAAAAAAAAAAAAAAAAADQAAAAQAAAAAAAAAAAAA//IABAAEAAAAHgAKAAAAAAAUAAT//AAAAAAAAAAAAA0ABAANAAQAAAAQAAAAPAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD/4gAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA/+wAAAAAAAAAAAAAAAD//AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAP/U/+QAAAAAAAcAFgAAAAAAAAAAAAAAAP/s/+wAAAAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA/+gAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA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ABoFQwAaBUQAGgVFABoFVQAaBVcAGgVYABoFWgAaBWQAGgVlABoFbgAaBW8AGgVwABoFeAAaBXkAFAWFABoFhgAaBYcAGgWPABoFkgAaBZQAGgWpABoGogAaB3EAGgACAG8AAQAlAAAAJwArACUALQBFACoARwBqAEMAbABwAGcAcgB2AGwAeAB8AHEAfwCjAHYApgCxAJsAswC6AKcAvADXAK8A2QDbAMsA3QDhAM4A4wDxANMA8wEOAOIBEQEnAP4BKQEzARUBNQFDASABRQFHAS8BSQFNATIBUAFRATcBUwGiATkBpAGqAYkBsQHLAZABzQHTAasB1QHnAbIB6QH4AcUB+gH7AdUB/gIEAdcCBwI5Ad4COwJCAhECRQJqAhkCbAJ6Aj8CfQKxAk4CswK4AoMCugLYAokC2gLcAqgC3gMHAqsDCQMiAtUDJAM0Au8DNgNPAwADUQNaAxoDXQOBAyQDhAOPA0kDkQO0A1UDtgO4A3kDugO+A3wDwAPqA4ED7AQDA6wEBQQPA8QEEQQfA88EIQQoA94EKwQsA+YELgRhA+gEZARkBBwEZgRoBB0EawR1BCAEdwR5BCsEfAR/BC4EggSCBDIEiQSJBDMEjASMBDQEjgSRBDUEmASYBDkEmgSaBDoEnASeBDsEoASiBD4EpgSpBEEEqwStBEUEsASzBEgEtgS2BEwEuATABE0EwgTOBFYE0wTTBGME3ATgBGQE4gToBGkE6wTtBHAE8QTxBHME9AT0BHQE9gUCBHUFBQUFBIIFBwUJBIMFDAUWBIYFGAUaBJEFHAUgBJQFIwUjBJkFKgUqBJoFLQUtBJsFLwUzBJwFOQU5BKEFOwU7BKIFPQU9BKMFPwU/BKQFQQVDBKUFRwVIBKgFTQVPBKoFUQVUBK0FWAVYBLEFWgViBLIFZAVvBLsFdQV2BMcFfQV9BMkFgAWDBMoFhQWGBM4FiQWLBNAFkAWSBNMFlAWhBNYFowWkBOQFpwWnBOYFqwW2BOcFvAW9BPMAAgBwAAEARQAAAEcAVQBFAFcAZABUAGcAfABiAH4AmwB4AJ0AowCWAKcAsQCdALMAugCoALwA1wCwANkA2wDMAN0A4QDPAOMA8QDUAPMBJwDjASkBMQEYATMBMwEhATUBQQEiAUQBTQEvAU8BUQE5AVMBogE8AaQBqwGMAa0BywGUAdUB6wGzAe8CBAHKAgYCOQHgAjsCQgIUAkUCagIcAmwCegJCAn0ClgJRApkCsQJrArMC2AKEAtoC3AKqAt4DIgKtAyQDNALyAzYDPwMDA0EDQwMNA0YDWgMQA1wDeQMlA3sDgQNDA4UDjwNKA5EDtANVA7YDuAN5A7oDvgN8A8AEAAOBBAIEAwPCBAUEDwPEBBEEGQPPBBsEHQPYBCAEKAPbBCoELAPkBC4EYQPnBGQEZAQbBGYEaAQcBGsEegQfBHwEfQQvBIEEggQxBIQEhQQzBIcEhwQ1BIkEigQ2BIwEjQQ4BI8EkAQ6BJYElgQ8BJgEmAQ9BJoEmgQ+BJwEngQ/BKAEpARCBKYEswRHBLYEtgRVBLgEvARWBL8EwARbBMIExgRdBMsEzQRiBNUE1QRlBNgE2ARmBNwE4ARnBOIE6QRsBOsE7QR0BPUFAQR3BQQFBQSEBQcFCQSGBQwFIASJBSIFIwSeBSUFJgSgBSgFKASiBSoFKwSjBS0FLgSlBTAFMQSnBTMFMwSpBTsFOwSqBT0FPQSrBT8FPwSsBUEFRQStBUcFSwSyBU0FTwS3BVEFVAS6BVYFVgS+BVgFWAS/BVoFYgTABWQFZgTJBWoFbwTMBXQFdgTSBXoFegTVBYAFggTWBYUFiwTZBZAFkgTgBZQFlATjBZYFmATkBZoFpATnBasFrATyBa4FtQT0BbwFvQT8Bn8GfwT+B2kHaQT/AKYBpP/WAaX/1gGm/9YBp//WAaj/1gGp/9YBqv/WAav/1gGs/9YBrf/WAa7/1gGv/9YBsP/WAbH/1gGy/9YBs//WAbT/1gG1/9YBtv/WAbf/1gG4/9YBuf/WAbr/1gG7/9YBvP/WAb3/1gG+/9YBv//WAcD/1gHB/9YBwv/WAcP/1gHE/9YBxf/WAcb/1gHH/9YByP/WAcn/1gHN/9YBzv/WAc//1gHQ/9YB0f/WAdL/1gHT/9YB1P/WAgn/1gIK/9YCC//WAgz/1gIN/9YCDv/WAg//1gIQ/9YCEf/WAhL/1gIT/9YCFP/WAhX/1gIW/9YCF//WAhj/1gIZ/9YCGv/WAhv/1gIc/9YCHf/WAh7/1gIf/9YCIP/WAiH/1gIi/9YCI//WAiT/1gIl/9YCJv/WAif/1gIo/9YCKf/WAir/1gIr/9YCLv/WAn3/1gJ+/9YCf//WAoD/1gKB/9YCgv/WAoP/1gKE/9YChf/WAob/1gKH/9YCiP/WAon/1gKK/9YCi//WAoz/1gKN/9YCjv/WAo//1gKQ/9YCkf/WApL/1gKT/9YClP/WApX/1gKW/9YCmf/WApr/1gKb/9YCnP/WAp3/1gKe/9YCn//WAqD/1gKh/9YCov/WAqP/1gKk/9YCpf/WAqb/1gKn/9YCqP/WAqn/1gKq/9YCq//WAqz/1gKt/9YCrv/WAq//1gKw/9YCsf/WArz/1gUM/9YFDf/WBQ7/1gUa/9YFHf/WBSH/1gUu/9YFOf/WBUb/1gVH/9YFXv/WBV//1gVg/9YFZv/WBWf/1gVo/9YFdf/WBXv/1gV9/9YFkf/WBZX/1gWY/9YFmf/WBZr/1gWb/9YFnP/WBav/1gWs/9YFrv/WBa//1gZw/9YGdP/WBPVdzl3OXc5VlF3OVZRVjlWUXc5dzlWaXc5VmlWgVaZdzl3OXc5dzl3OXc5dzl3OYD5gPl3OVaxVrFWyXnBecF5wXnBecF5wXnBgYlW4YGJeWGBiYGJW5FbkVuRW5FbkVuRVvlbkVb5VxFXKVuRW5FbkVuRW5FbkVuRW5FXQVdBW5FbkVdZV1laiVqJWolaiVqJWolaiVqJgXFaiYFxgXGBcYFxgaFXcYGhgaGBoYGhgaFXiYGhgaGBoYGhgaGBoYGhgaFXoVehgRGBEYERgaGBoYGhgaGBoYGhgaFXuVfRV9GBcYFxgXGBcYFxgXGBcYFxWElYSVhJWElX6VhJV+lYAVgZWElYSVhhWDFYSVhJWElYSVhJWElYSVhJWElYSVhJWElYYVhhWElYSVhJWElYYVhhWGFYeViRd5l3mXeZd5l3mXeZd5l3mXmReZFYqXmRWMF5kXmReZF5kXmReZFY2VjxWPFY8VjxWPFY8VjxWSFZIVkhWSFZIVkhWSFZIVkhWSFZIVkhWSFZIVkhWSFZIVkhWSFZOVkJWSFZOVlRWVFZUVlRWVFZaVlpWWlZaVlpWWlZaVlpWWlZaVmBWYFZgVmBWYF6OXo5ejlZsXo5WbFZmVmxejl6OVnJejlZyVnhWfl6OXo5ejl6OXo5ejl6OXo5WhFaEXo5egl6CXoheiF6IXoheiF6IVopeiFaKVpBWll6IXoheiF6IXoheiF6IXohWnFacXoheiFaiVqJWolaiVqJWolaiVqJWtFaoVrRWtFa0VrRWtFauVrRWtFa0VrRWtFa0VrRWtF52XnZWula6YG5gbmBuYG5gbmBuYG5gbmCeVsBWwFbAVsBWwFbAVsBWzFbMVsxWzFbMVsxWzFbMVsxWzFbMVsxWzFbMVsxWzFbMVsxWzFbSVsxWxlbMVtJW2FbYVthW2FbYVt5W3lbeVt5W3lbeVt5W3lbeVt5W5FbkVuRW5FbkX6JXDlcmVvBXJlbwVupW8FcmVyZW9lcmVvZW/FcCVw5XCF+iVw5XFFcmVxpfolcgVyBXJlcsVzJXOFc+V0RXOFc+V0RXSldQV2hXbleGV4ZXhleGWWZXhllmWWxXVlduV1xXYldoV25XdFeGV3pXgFeAX5ZXhl8wV4xXkl/qWd5Z3lneV5hZ0mAmYIBggGCAV9RggGCAYHRXnlewV7xXvFewXtxXpFeqYHRXsFe2V7xfrmB0V7xXwlfIV85ggFfUYIBX2mCAWZxggGCAYIBggGCAV+BgelfmV+xX+GB6V/JgemB6V/hYOlguWExYTFf+WExX/lgEWApYLlgQWFJYFlg6WC5YHF82WCJfNlgiWChfNlguWExYNFhSWFJYOlhAWEZYTFhSWFJYUlhYWF5YZF82WHZYalhwWHZYalh2WHBYdliUWHxYgliOWIhYlFiOWJRYmliUWJpYrFigWKxYrFisWKZYrFisX+pgMlneWd5Z3mAyYCxf6mAyWdhf6mAyX+pgMlnYWd5gMlneYCZYuF/qWLJZ3li4WL5YxFjWWMpY0FjWWOhY7lkAWNxY4ljoWO5Y9Fj6WQBZGFkGWQxZElkYX/ZZPFlUWSRZVFkkWR5ZJFlUWVRZKllUWSpZMFk2WTxf/F/2WTxZQllUWUhf9llOWU5ZVGACWVpZYGAIX8ZZllmWWZZZlllmWZZZZllsWXJfxl/MWXhgCF/GWX5ZllmEWYpZilmQWZZgDmCAWZxggGCAYIBggGCAYIBZolm0WahZtFm0WbRZrlm0WbRZulnMWcBZxlnMX+pgMlneYCxZ0l/qYDJZ2GAmWd5Z9lnkWepZ8Fn2WfxaAloIWkRaMlpQWhRaUFoUWg5aFFpQWlBaGlpQWhpaIFomWjJaLFpEWjJaOFpQWj5aRFpKWkpaUFpWWlxbEFpiWmhablpiWmhablp0YIxdmFp6WoBgjGCMWrxapFrCWsJawlrCWoZawlqGWoxaklqkWphanlq8WqRaqlrCWrBatlq2WrxawlzAWshazlzYXMZcxlzGXNhczFzSXNhghmBWYIZbNFs0YIZa8lryWuBa+Fr4WuBe6FrUWtpa8lrgWuZa+Fz2Wuxa8lr4Wv5bBFsQWwpbEFsQYJJbFmCSYJJgkmCSYJJbHFsiWyJghlsoWzRghlsuYIZghls0W2pbXlt8W3xbOlt8WzpbQFtGW15bTFuCW1JbalteW1hbalteW2pbXltYW3xbXlt8W2RbgluCW2pbcFt2W3xbgluCW4JbiFuOW6BblFuaW6BblFugW5pboFu+W6ZbrFu4W7Jbvlu4W75bxFu+W8Rb1lvWW8pb1lvWW9Bb1lvWXVxdUF1oXWhdaF1QXURdXF1QXUpdXF1QXVxdUF1KXWhdUF1oXVZdbl1iXWhdblvcW+5b4lvoW+5cAFV8XBJb9Fv6XABVfFwGXAxcElwqXBhcHlwkXCpcZlxUXHJcNlxyXDZcMFw2XHJcclw8XHJcPFxCXEhcVFxOXGZcVFxaXHJcYFxmXGxcbFxyXHhcfly0XJxculy6XLpculyEXLpchFyKXJBcnGBQXJZctFycXKJculyoXK5crly0XLpcwFzYXMZcxlzGXNhczFzSXNhdAl0CXOpdCF0IXOpc3lzkXQJc6lzwXQhc9lz8XQJdCF0OXRRdGl0aYJhdIF0sYJhdJmCYYJhdLF0+XT5dMl0+XT5dOF0+XT5dXF1QXWhdaF1oXVBdRF1cXVBdSl1cXVBdXF1QXUpdaF1QXWhdVl1uXVxdYl1oXW5ddF2GXXpdgF2GXZhdnl2wXYxdkl2YXZ5dpF2qXbBdyF22Xbxdwl3IXhxdzl5kXmReKF4oXiheNF5qXjpeOl46Xjpd5l3mXhZgnl5eXnBd8l5GXkZeTF5SXdReQF4QXdpd4F5eXoheNF5qXeZejl3sYJ5ecF3yXfhd+F3+XkxeBF4KXgpeEF40YJ5eFl4cXhxeIl4oXi5eLl40XmpeOl46Xl5eXl5eXkBeRl5GXkZeTF5kXlJeWF5eXmReal5wXnBejl6IXoheiF6OXo5ejl6OXnxelF6UXppedl58Xo5ejl6CXohgnmCeXo5ejl6UXpRelF6aVPheoF+EX6hfMF6mXqxfHmBKX+Rf5F6yXrhe9F6+XyRgpF+WXsRfol8AXspeyl8GXtBe1mBKXuJe3F7iXuhfWl7uXx5e9F9aXvpgpF+iXwBfBl8M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ACwE0wTTAAQE1ATUACgE1QTXAAEE2ATZACwE2gTaAAsE2wTbAAQE3ATcAAEE3gTfAAQE4ATgAA0E4QThAHEE4gTkAA4E5QToAAEE6QTpAHIE6gTqAA0E6wTrACYE7ATtABcE7gTuAAQE7wTvAAgE8ATwABME8QTxAAgE8gTyACwE8wTzAAEE9AT0ADQE9QT1AHcE9gT2ACYE9wT4AA0E+QT5AAsE+gT6AA4E/QT+AAEE/wUBABcFAwUDAAQFBAUEAAgFBQUFAAwFBgUGAAQFBwUKAAUFCwULACsFDAUOAAIFDwUPAB0FEAUQACcFEQUWAAUFFwUXACsFGAUZAAUFGgUaAAIFGwUcAAUFHQUdAAIFHgUeAC0FHwUgABEFIQUhAAIFIgUiAB0FIwUjAAYFJAUoAAUFKQUpAC0FKgUqAAUFKwUrACsFLAUsAAUFLQUtABsFLgUuAAIFLwUvACcFMAUxAAUFMgUyADAFMwUzAHYFNAU0AAUFNQU1AB0FNgU2AAoFNwU3AC0FOAU4AB0FOQU5AAIFOgU6ABEFOwU7AHkFPAU8AAUFPQU9AB0FPgU+ACcFPwVAAAUFQQVBAAoFQgVCAC0FQwVFAAUFRgVHAAIFSAVIAC0FSQVKABEFSwVLAB0FTAVMAC0FTQVOAAYFTwVQAAoFUQVSAE0FUwVTAAoFVAVUAB0FVQVVAAUFVgVWACsFVwVYAAUFWQVZAAYFWgVaAAUFWwVdAAwFXgVgAAIFYQVhAB0FYgVjACcFZAVlAAUFZgVoAAIFaQVpACcFagVsABEFbQVtAAYFbgVwAAUFcQVyAB0FcwVzAHoFdAV0ACsFdQV1AAIFdgV2ABEFdwV3AEsFeAV4AAUFeQV5ADAFegV6ACsFewV7AAIFfAV8ABsFfQV9AAIFfgV+AB0FfwV/ACcFgAWCAAYFgwWDAAoFhAWEACsFhQWHAAUFiAWMAAYFjQWNAC0FjgWOAAoFjwWPAAUFkAWQACcFkQWRAAIFkgWSAAUFkwWTAHMFlAWUAAUFlQWVAAIFlgWXAAYFmAWcAAIFnQWgAAYFoQWhAHQFowWlAAYFpgWmAHUFpwWnAAYFqAWoACsFqQWpAAUFqwWsAAIFrQWtAAwFrgWvAAIFsQW2AAYFtwW3AEsFuAW4AAsFvAW8AAsFvQW9AAEFvgW+ADcFvwW/AF4FwAXAAG4FwQXBAGsFwgXCAFoFwwXDAFcFxAXEADcFxQXFAGkFxgXGAD4FxwXHAFwFyAXIAH8FyQXJAF8FygXKAG8FywXLAGwFzAXMAFsFzQXNAFgFzgXOADcFzwXPAGoF0AXQAD4F0QXRAF0GGAYZACkGGgYbADwGHAYcACkGHQYdAFIGHgYeAFQGHwYfAGQGIAYgAGYGIQYiABgGIwYjADUGJQYlADgGJgYmADkGJwYoAC8GKgYqADgGKwYrADkGLQYtAGEGLgYuAGIGMAYwADoGMQYxAFAGMgYyADoGNAY0AGMGNgY2ADsGOAY4ADsGOQY6ABgGPwY/ABgGQAZAAHAGQQZBAC8GRAZFACkGRgZGADYGRwZHAEkGSAZIADYGSQZJAEkGSgZKABgGSwZLAEAGTAZMABgGTQZNAEAGTgZPADIGUAZQAC8GUQZRAEEGUgZSAC8GUwZTAEEGVAZUACkGVQZVAFMGVgZWAFUGVwZXAGUGWAZYAGcGWQZaACkGWwZbAEgGXAZcAEoGXQZdAEgGXgZeAEoGXwZfABgGYAZgAEIGYQZhABgGYgZiAEIGYwZkAEcGbwZvAAQGcAZwAAIGcQZxAAQGcgZyACUGcwZzABoGdAZ0AAIGdQZ1ACUGdgZ2AFkGdwZ3ACUGeAZ4AAQGegZ6ACUGewZ7AEUGfAZ8ACUGfQZ9AAEGfgZ+ACUGfwZ/AAEGgAaBACUGggaCAHwGgwaDAEUGhgaGACUGhwaHAH4GigaKADgGiwaMABgGjgaOABgGlwaYABgGngaeAAsGnwafAAEGoQahABgGogaiAAUGpAalAEYGwQbBAAQGwgbCAE4GwwbDAGAGxAbEAGgGxQbGAAQGxwbHAG0GyAbIAFEGyQbKADIGzgbPAD0G0AbQAAQG0QbRAAEG0gbSAAQG1AbUAE8G1gbWADYHaQdpAAEHcQdxAAUAAgHyAAEAGgAKABsAHAAJAB0AHQAuAB4AJAAYACUAJQACACYAJgAkACcAKwACACwALAAeAC0AQwAJAEUARQAuAEYARgBGAEcATgATAE8AVQABAFYAVgAHAFcAZAABAGUAZgAHAGcAaQA6AGoAagAyAGsAawAHAGwAcAAyAHIAcwAyAHQAdgABAHcAdwAHAHgAfQABAH8AgAABAIEAogACAKMAowAJAKQApABAAKUApQBoAKYApgACAKcArgAzAK8AsQAf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BUYFRgAGBUcFRwAiBUgFSAAnBUkFSgARBUsFSwAUBU8FUAAFBVEFUgAEBVMFUwAcBVQFVQAUBVsFXAAFBV0FXgAEBV8FYAAGBWEFYQAUBWIFYwAwBWYFaQAGBWoFbAARBXAFcAAnBXEFcgAUBXMFcwAiBXYFdgARBXcFdwBEBXgFeAAGBXsFewAwBXwFfAAdBX4FfgAUBX8FfwAwBYMFgwA7BYUFhwAFBYwFjQAtBY4FjgAGBZAFkAAwBZEFkQAiBZIFkgAnBZMFkwAGBZoFnAAEBaEFoQAGBaUFpgAtBagFqQAtBaoFqgBEBa0FrgAEBa8FrwAGBbcFtwBEBbgFuAAKBbwFvAAKBb0FvQA6Bb4FvgBfBb8FvwB5BcAFwACJBcEFwQCGBcIFwgB2BcMFwwBzBcQFxABmBcUFxQCDBcYFxgBZBccFxwBfBcgFyACTBckFyQB6BcoFygCKBcsFywCHBcwFzAB3Bc0FzQB0Bc4FzgBmBc8FzwCEBdAF0ABZBdEF0QB4BhgGGQA0BhoGGwBWBhwGHAA0Bh0GHQBvBh4GHgBxBh8GHwB+BiAGIACABiEGIgAhBiMGIwBBBiUGJQBPBiYGJgBTBicGKABCBioGKgBPBisGKwBTBi0GLQB8Bi4GLgBgBi8GLwBUBjEGMQBUBjIGMgBrBjMGMwB9BjUGNQBVBjcGNwBVBjkGOgAhBj8GPwAhBkAGQACLBkEGQQBCBkQGRQA0BkYGRgBOBkcGRwBkBkgGSABOBkkGSQBkBkoGSgBcBksGSwAhBkwGTABcBk0GTQAhBk4GTwBJBlAGUABdBlEGUQBCBlIGUgBdBlMGUwBCBlQGVAA0BlUGVQBwBlYGVgByBlcGVwB/BlgGWACBBlkGWgA0BlsGWwBjBlwGXABlBl0GXQBjBl4GXgBlBl8GXwBeBmAGYAAhBmEGYQBeBmIGYgAhBmMGZABiBm8GbwAYBnAGcAAiBnEGcQAYBnIGcgBHBnMGcwAfBnQGdABtBnUGdQAYBnYGdgB1BncGdwBGBngGeAATBnoGegCOBnsGewBNBnwGfACQBn0GfQABBn4GfgBHBn8GfwAdBoAGgABHBoEGgQBABoIGggCPBoMGgwBNBoYGhgBHBocGhwCSBooGigBPBosGjAAhBo4GjgAhBpcGlwAhBp4GngAKBp8GnwABBqQGpQBhBsEGwQAC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BWgAAQAAAAECpAABAAAAAQKiAAEAAAABAqAAAQAAAAECngABAAAAAQKcAAEAAAABApoAAQAAAAEFAgAEAAAAAQK2AAEAAAABAogAAQAAAAEChgABAAAAAQKEAAEAAAABAoIAAQAAAAEHIgABAAAAAQkuAAEAAAABBpIABAAAAAECfgAEAAAAAQJ+AAEAAAABDXgAAQAAAAECUAABAAAAAQKCAAYAAAACBNAE4gAGAAAAAgTqBPwABgAAAAQFBAU6BRYFKAAAAAEAKwAAAAEALQAAAAEALgAAAAEAHgAAAAEALwAAAAEAJwAAAAEAFAAAAAEAFQAAAAEAGQAAAAEACwAAAAEAGAAAAAEAEwAAAAEAEAAAAAEAFgAAAAEADwAAAAEACgAAAAEADgAAAAEAFwAAAAEAEQAAAAEAEgAAAAEAHQAAAAEAKgAAAAEAKAAAAAEAMAAAAAEAGwAAAAEALAAAAAEAMQAAAAEAGgAAAAEAHAAAAAEAKQAAAAIAAAABAAAAAgAkACYAAAACADIAMwAAAAMAHwAgACEAAAAEAAIABQAIAAkAAAAFAAIABQAIAAkACQAA//8AAgAMABwAAP//AAIADgAcAAD//wAVAAAAAQACAAMABQAGAAcACAAJABgAGQAaABsAHQAeAB8AIAAhACIAIwAcAAD//wAWAAAAAQACAAMABQAGAAcACAAJAAsAGAAZABoAGwAdAB4AHwAgACEAIgAjABwAAP//ABYAAAABAAIAAwAFAAYABwAIAAkAEQAYABkAGgAbAB0AHgAfACAAIQAiACMAHAAA//8AFgAAAAEAAgADAAUABgAHAAgACQAVABgAGQAaABsAHQAeAB8AIAAhACIAIwAcAAETggALAAETfAAIAAETXgAIAAETXgCJAAETtAAoAAETrgBGAAETqAAyAAETTP/pAAETnAA8AAETjP/2AAETaP/2AAETbP/sAAETcAAUAAETmAAKAAETKADyAAETKAABEzYAASIaAAETJgABIgQAARMiAAEiHAABEyQAASImAAITIhMmAAITUgACBN8FkQACE1AAAgdyB3QAAP//ABUAAAABAAIABAAFAAYABwAIAAkAGAAZABoAGwAdAB4AHwAgACEAIgAjABwAAP//ABYAAAABAAIAAwAFAAYABwAIAAkACgAYABkAGgAbAB0AHgAfACAAIQAiACMAHAAA//8AFgAAAAEAAgADAAUABgAHAAgACQANABgAGQAaABsAHQAeAB8AIAAhACIAIwAcAAD//wAWAAAAAQACAAMABQAGAAcACAAJAA8AGAAZABoAGwAdAB4AHwAgACEAIgAjABwAAP//ABYAAAABAAIAAwAFAAYABwAIAAkAEAAYABkAGgAbAB0AHgAfACAAIQAiACMAHAAA//8AFgAAAAEAAgADAAUABgAHAAgACQASABgAGQAaABsAHQAeAB8AIAAhACIAIwAcAAD//wAWAAAAAQACAAMABQAGAAcACAAJABMAGAAZABoAGwAdAB4AHwAgACEAIgAjABwAAP//ABYAAAABAAIAAwAFAAYABwAIAAkAFAAYABkAGgAbAB0AHgAfACAAIQAiACMAHAAA//8AFgAAAAEAAgADAAUABgAHAAgACQAWABgAGQAaABsAHQAeAB8AIAAhACIAIwAcAAD//wAWAAAAAQACAAMABQAGAAcACAAJABcAGAAZABoAGwAdAB4AHwAgACEAIgAjABwAASCeAAQRchF8EYYRkAACEYwABAC3AMECPwJJAAIRigAEBGIEYwRiBGMAAhKIEcQSYBHEAAIAABFCAAIRjgAFBZMFlAWVBZYFlwACEYwABQTcBN0E3gWPBZAAAwABEVgAARDeAAAAAQAAACIAAwABEXgAARDMAAAAAQAAACMAAwABEMQAARE6AAAAAQAAACUAAwABELIAAREwAAAAAQAAACUAAwAAAAERXAABEjgAAQAAAAMAAwABEf4AARH+AAAAAQAAAAMAAwABEagAARHsAAAAAQAAAAQAAwAAAAERJgACEUoSAgABAAAABAABIIgADxFSERoRHhFGESIRJhFaEWIRahEqES4RTBEyEXIRegACEewAFwTZBNoE2wV7BXwFfQV+BX8FgAWBBYIFgwWEBYUFhgWHBYgFiQWKBYsFjAWNBY4AAhFuACYHGAcZBxoHGwccBx0HHgcfByAHIQciByMHJAclByYHJwcoBykHKgcrBywHLQcuBy8HMAcxBzIHMwc0BzUHXAddB14HXwdgB2EHYgdjAAIRmAAoAdwB7QcYBxkHGgcbBxwHHQceBx8HIAchByIHIwckByUHJgcnBygHKQcqBysHLActBy4HLwcwBzEHMgczBzQHNQdcB10HXgdfB2AHYQdiB2MAAhF2AD0GJwYoBioGKwYpBjMGNAY1BjYGNwY4BkEGQgZDBlAGUQZSBlMGsAaxBrIGswbSBxgHGQcaBxsHHAcdBx4HHwcgByEHIgcjByQHJQcmBycHKAcpByoHKwcsBy0HLgcvBzAHMQcyBzMHNAc1B1wHXQdeB18HYAdhB2IHYwACEWABBwLeAt8C4ALhAuIC4wLkAuUC5gLnAugC6QLqAusC7ALtAu4C7wLwAvEC8gLzAvQC9QL2AvcC+AL5AvoC+wL8Av0C/gL/AwADAQMCAwgDAwMEAwUDBgMHAwgDCQMKAwsDDAMNAw4DDwMQAxEDEgMTAxQDFQMWAxcDGAMZAxoDGwMcAx0DHgMfAyEDIgMjAyQDJQMmAycDKAMpAyoDKwMsAy0DLgMvAzADMQMyA0ADNAM2AzcDOAM5AzoDOwM8Az0DPgM/A0EDQgNDA0QDRQNGA0cDSANKA1ADSwNMA00DTgNPA1ADUQNSA1MDVANVA1wDVgNXA1gDWQNaA1sDXANdA14DXwNgA2EDYgNjA2QDZQNmA2cDaANpA2oDawNsA20DbgNvA3ADcQNyA3MDdAN1A3YDdwN4A3kDegN7A3wDfQN+A38DgAOBA4IDgwOEA4UDhgOHA4gDiQOKA4sDjAONA44DjwOQA5EDkgOTA5QDlQOWA5cDmAJ8AyADmQOaA5sDnAOdA58DoAOhA6IDowOkA6UDpgOnA6gDqQOqA6sDrAOtA64DrwOwA7EDsgOzA7QDtQO2A7cDuAO5A7oDuwO8A70DvgO/A8ADwQPCA8MDxAPFA8YDxwPIA8kDygPLA8wDzQPOAzUGVAZVBlYGVwZYBlkGWgZbBlwGXQZeBl8GYAZhBmIGYwZkBtQHSQdKB0sAAg96AQcC3gLfAuAC4QLiAuMC5ALlAuYC5wLoAukC6gLrAuwC7QLuAu8C8ALxAvIC8wL0AvUC9gL3AvgC+QL6AvsC/AL9Av4C/wMAAwEDAgMDAwQDBQMGAwcDCAMJAwoDCwMMAw0DDgMPAxADEQMSAxMDFAMVAxYDFwMYAxkDGgMbAxwDHQMeAx8DIAMhAyIDIwMkAyUDJgMnAygDKQMqAysDLAMtAy4DLwMwAzEDMgMzAzQDNgM3AzgDOQM6AzsDPAM9Az4DPwNAA0EDQgNDA0QDRQNGA0cDSANJA0oDSwNMA00DTgNPA1ADUQNSA1MDVANVA1YDVwNYA1kDWgNbA1wDXQNeA18DYANhA2IDYwNkA2UDZgNnA2gDaQNqA2sDbANtA24DbwNwA3EDcgNzA3QDdQN2A3cDeAN5A3oDewN8A30DfgN/A4ADgQOCA4MDhAOFA4YDhwOIA4kDigOLA4wDjQOOA48DkAORA5IDkwOUA5UDlgOXA5gCfAOZA5oDmwOcA50DngOfA6ADoQOiA6MDpAOlA6YDpwOoA6kDqgOrA6wDrQOuA68DsAOxA7IDswO0A7UDtgO3A7gDuQO6A7sDvAO9A74DvwPAA8EDwgPDA8QDxQPGA8cDyAPJA8oDywPMA80DzgM1BlQGVQZWBlcGWAZZBloGWwZcBl0GXgZfBmAGYQZiBmMGZAbUB0kHSgdLAAEUsgEoE+4Npg2sDbINuA2+DcQNyg3QDdYN3A3iDegN7g30DfoOAA4GDgwOEg4YDh4OJA4qDjAONg48DkIOSA5ODlQOWg5gDmYObA5yDngOfg6EDooOkA6WDpwOog6oDq4OtA66DsAOxg7MDtIO2A7eDuQO6g7wDvYO/A8CDwgPDg8UDxoPIA8mDywPMg84Dz4PRA9KD1APVg9cD2IPaA9uD3QPeg+AD4YPjA+SD5gPng+kD6oPsA+2D7wPwg/ID84Skg/UD9oP4A/mD+wP8hP2D/gP/hAEEAoQEBAWEBwQIhAoEC4QNBA6EEAQRhBMEFIQWBBeEGQQahBwEHYQfBCCEIgQjhCUEJoQoBCmEKwQshC4EL4QxBDKENAQ1hDcEOIQ6BDuEPQQ+hEAEQYRDBESE/4RGBEeESQRKhEwETYRPBFCEUgRThFUEVoRYBFmEWwRchF4EX4RhBGKEZARlhGcEaIRqBGuEbQRuhHAEcYRzBHSEdgR3hHkEeoR8BH2EfwSAhIIEg4SFBIaEiASJhIsEjISOBI+EkQSShJQElYSXBJiEmgSbhJ0EnoSgBKGEowSkhKYEp4SpBKqErAUBhK2ErwSwhLIEs4S1BLaEuAS5hLsEvIS+BL+EwQTChMQExYTHBMiEygTLhM0EzoTQBNGE0wTUhNYE14UDhNkE2oTcBN2FBYTfBOCFCYUNBRCFFAUXhRsFHoUiBSWFKQTiBOOE5QTmhOgE6YTrBOyE7gTvhOIE44TlBOaE6ATphOsE7ITuBO+FB4TxBPKE9AT1hPcE+IT6AACE0oBywDzAPQA9QD2APcA+AD5APoA+wD8AP0A/gD/AQABAQECAQMBBAEFAQYBBwEIAQkBCgELAQwBDQEOAQ8BEAERARIBEwEUARUBFgEXARgBGQEaARsBHAEdAR4BHwEgASEBIgEjASQBJQEmAScBKAEpASoBKwEsAS0BLgEvATABMQEyATMBNQE2ATcBOAE5AToBOwE8AT0BPgE/AUABQQFCAUMBRAFFAUYBRwFIAUkBSgFLAUwBTQFOAU8BUAFRAVIBUwFUAVUBVgFXAVgBWQFaAVsBXAFdAV4BXwFgAWEBYgFjAWQBZQFmAWcBaAFpAWoBawFsAW0BbgFvAXABcQFyAXMBdAF1AXYBdwF4AXkBegF7AXwBfQF+AX8BgAGBAYIBgwGEAYUBhgE0An0CfgJ/AoACgQKCAoMChAKFAoYChwKIAokCigKLAowCjQKOAo8CkAKRApICkwKUApUClgKXApgCmQKaApsCnAKdAp4CnwKgAqECogKjAqQCpQKmAqcCqAKpAqoCqwKsAq0CrgKvArACsQKyArMCtAK1ArYCtwK4ArkCugK7ArwCvQK+Ar8CwALBAsICwwLEAsUCxgLHAsgCyQLKAssCzALNAs4CzwLQAtEC0gLTAtQC1QLWAtcC2ALcAt0DzwPQA9ED0gPTA9QD1QPWA9cD2APZA9oD2wPcA90D3gPfA+AD4QPiA+MD5APlA+YD5wPoA+kD6gPrA+wD7QPuA+8D8APxA/ID8wP0A/UD9gP3A/gD+QP6A/sD/AP9A/4D/wQABAEEAgQDBAQEBQQGBAcECAQJBAoECwQMBA0EDgQPBBAEEQQSBBMEFAQVBBYEFwQYBBkEGgQbBBwEHQQeBB8EIAQhBCIEIwQkBCUEJgQnBCgEKQQqBCsELAQtBC4ELwQwBDEEMgQzBDQENQQ2BDcEOAQ5BDoEOwQ8BD0EPgQ/BEAEQQRCBEMERARFBEYERwRIBEkESgRLBEwETQROBE8EUARRBFIEUwRUBFUEVgRXBFgEWQRaBFsEXARdBF4EXwRgBGEE4AThBOIE4wTkBOUE5gToBOcE6QTqBOsE7ATtBO4E7wTwBPEE8gTzBPQE9QT2BPcE+AT5BPoE+wT8BP0E/gT/BQAFAQUCBQMFBAWYBZkFmgWbBZwFnQWeBaAFnwWhBaIFowWkBaUFpgWnBagFqQWqBasFrAWtBa4FrwWwBbEFsgWzBbQFtQW2BbcG0wACERoCKgL6AvsC/AL9Av4C/wMAAwEDAgMDAwQDBQMGAwcDIQMiAywDLQMuAy8DMAMxA0YDRwNIA0oDSwNMA00DTgNPA1ADUQNSA2ADYQNiA2MDZANlA2YDZwNoA2kDagNrA2wDbQNuA28DcANxA3IDcwN0A3UDdgN3A3gDeQN6A3sDfAN9A34DfwOAA4EDggODA4UDhgOHA4gDiQOKA4sDjAONA44DjwOQA5EDkgOUA5UDlgOXA5gCfAO5A78C+gL7AvwC/QL+Av8DAAMBAwIDAwMEAwUDBgMHAyEDIgMkAyUDJgMnAygDKQMqAysDLAMtAy4DLwMwAzEDMwM0AzYDNwM4AzkDOgM7AzwDPQM+Az8DQANBA0IDQwNEA0UDRgNHA0gDSQNTA1QDVQNWA1cDWANZA1oDWwNcA10DXgNgA2EDYgNjA2QDZQNmA2cDaANpA2oDawNsA20DbgNvA3ADcQNyA3MDdAN1A3YDdwN4A3kDegN7A3wDfQN+A38DgAOCA4MDhAOFA4YDhwOIA4kDigOLA4wDjQOOA48DkAORA5IDlAOVA5YDlwOYAnwDoQOiA6MDpAOlA6YDpwOoA6kDqgOrA6wDrQOuA68DsAOxA7IDswO0A7UDtgO3A7gDuQO/AzUC3ALdA88D0APRA9ID0wPUA9UD1gPXA9gD2QPaA9sD3APdA94D3wPgA+ED4gPjA+QD5QPmA+cD6APpA+oD6wPsA+0D7gPvA/AD8QPyA/MD9AP1A/YD9wP4A/kD+gP7A/wD/QP+A/8EAAQBBAIEAwQEBAUEBgQHBAgECQQKBAsEDAQNBA4EDwQQBBEEEgQTBBQEFQQWBBcEGAQZBBoEGwQcBB0EHgQfBCAEIQQiBCMEJAQlBCYEJwQoBCkEKgQrBCwELQQuBC8EMAQxBDIEMwQ0BDUENgQ3BDgEOQQ6BDsEPAQ9BD4EPwRABEEEQgRDBEQERQRGBEcESARJBEoESwRMBE0ETgRPBFAEUQRSBFMEVARVBFYEVwRYBFkEWgRbBFwEXQReBF8EYARhBOAE4gTjBOQE5QTmBOgE5wTqBOsE7ATtBO8E8ATxBPIE8wT0BPUE3ATdBPYE9wT4BPkE+gT7BPwE/QT+BP8FAAUBBQIFAwUEBZgFkwV7BZIFmgWbBZwFfgV/BZ8FgwWEBYUFoQWjBaQFiAWJ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AMEBVwOcAAMCfQLeBGIAAwJJAsADnAADBX0FlQWZAAMFhwWXBaIAAwYnBikGLAAGBcgF0gXmBfAF+gYEAAYFyQXTBecF8QX7BgUABgXKBdQF6AXyBfwGBgAGBcsF1QXpBfMF/QYHAAYFzAXWBeoF9AX+BggABgXNBdcF6wX1Bf8GCQAGBc4F2AXsBfYGAAYKAAYFzwXZBe0F9wYBBgsABgXQBdoF7gX4BgIGDAAGBdEF2wXvBfkGAwYNAAIAJwABABwAAAAmACYAHAAsAEMAHQBGAE4ANQBVAGYAPgBrAGsAUAB0AIEAUQCmAKYAXwC1ALUAYAC8ANsAYQDdAOEAgQDjAPIAhgGHAaIAlgGxAckAsgHMAcwAywHbAdsAzAHzAfsAzQIJAgkA1gIrAisA1wI9Aj0A2AJFAkwA2QJmAmoA4QJsAnoA5gRqBGoA9QR2BHYA9gSABIAA9wSmBKYA+AUIBQgA+QULBQsA+gURBRMA+wUbBRsA/gUeBR4A/wUoBSkBAAW+BdsBAgYhBiEBIAYlBiUBIQZKBk0BIgcHBwcBJgcKBwoBJwACADwAAQAcAAAAJgAmABwALABDAB0ARgBOADUAVQBmAD4AawBrAFAAdACAAFEApgCmAF4AvADbAF8A3QDhAH8A4wDyAIQBhwGiAJQBsQHJALABzAHMAMkB8wH7AMoCKwIrANMCRQJMANQCZgJqANwCbAJ6AOEC2gLbAPAC3gL5APIDCAMgAQ4DIwMrAScDMgM6ATADPANFATkDUANQAUMDUwNeAUQDhAOEAVADmQO4AVEDugO+AXEDwAPOAXYEZARkAYUEagRtAYYEcARzAYoEdgR2AY4EewR7AY8EfQSAAZAEhwSLAZQEkQSRAZkElgSWAZoEpwSnAZsEuQS+AZwEwgTDAaIEyATKAaQEzQTNAacE0wTTAagE1QTVAakFBQUFAaoFCwUOAasFEQUUAa8FHAUcAbMFHgUgAbQFKAUsAbcFNwU3AbwFWwVgAb0FZAVlAcMFagVsAcUFbwVvAcgFdwV3AckG0QbRAcoAAgBfAB0AJQAAACcAKwAJAEQARQAOAE8AVAAQAGcAagAWAGwAcwAaAIIApQAiAKcAtABGALYAuwBUANwA3ABaAOIA4gBbAaMBsABcAcoBywBqAc0B2gBsAdwB7AB6Ae4B8gCLAfwB/wCQAgECCACUAgoCKgCcAiwCPAC9Aj4CQwDOAk0CZQDUAmsCawDtAnsCewDuAtoC2wDvAt4C+QDxAwgDIAENAyMDKwEmAzIDOgEvAzwDRQE4A1ADUAFCA1MDXgFDA4QDhAFPA5kDuAFQA7oDvgFwA8ADzgF1BGQEZAGEBGsEbQGFBHAEcwGIBHsEewGMBH0EfwGNBIcEiwGQBJEEkQGVBJYElgGWBJoEmgGXBJ0EnQGYBKcEpwGZBLkEvgGaBMIEwwGgBMgEygGiBM0EzQGlBNME0wGmBNUE1QGnBQUFBwGoBQkFCQGrBQwFEAGsBRQFFQGxBRcFFwGzBRkFGQG0BRwFHAG1BR8FIAG2BSMFJgG4BSoFLAG8BTQFNAG/BTcFNwHABTsFOwHBBT4FPgHCBUcFRwHDBVsFYAHEBWQFZQHKBWoFbAHMBW8FbwHPBXcFdwHQBdwF5QHRBfoGAwHbBhgGGAHlBh0GIAHmBiIGIgHqBiYGJgHrBiwGMgHsBjkGOQHzBjsGPAH0BkQGSQH2Bk4GTwH8BqYGpgH+BqgGqAH/BqoGqgIABqwGrAIBBsEGwgICBtEG0QIEBuAG6wIFBu0G8AIRBvMG/QIVBwgHCQIgB1QHWwIiAtkAAgHVAAEAAQC9BtEAAwIJBhgAAQABAHYC2gACAdsC2wACAfMAAQABAcwA8gACAGUCewACAewAAQACAFcB3QABAfMAAQABAfMAAQAAAAwAAQBqAAEAAQBqAAEAAAANB1gAAgboB1kAAgbmB1oAAgb7B1sAAgbzB1QAAgboB1UAAgbmB1YAAgb7B1cAAgbzB2AAAgcgB2EAAgceB2IAAgcwB2MAAgcoB1wAAgcgB10AAgceB14AAgcwB18AAgcoAAEABAbtBvAHJAcnAAAAAQABAAEAAQAAAAYAAQABAAEAAAABAAAABwblAAIG9wbnAAIG9wbvAAIG5AbyAAIG6AcdAAIHLAcfAAIHLAcmAAIHHAbpAAIG5AbqAAIG9wchAAIHHAciAAIHLAbiAAIG6AbhAAIG5gbjAAIG9wb1AAIG6Ab0AAIG4Ab2AAIG9wb6AAIG6Ab4AAIG4Ab5AAIG5gcaAAIHIAcZAAIHHgcbAAIHLAcqAAIHIAcpAAIHGAcrAAIHLAcvAAIHIActAAIHGAcuAAIHHgABAA8G4AbkBuYG6AbuBvEG8wb3BxgHHAceByAHJQcoBywAAAABAAEACAACAAAAFAACAAAAJAACd2dodAEAAABpdGFsARMAAQAEABAAAQAAAAABBwK8AAAAAwABAAIBFAAAAAAAAQAA'","// 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 logo: '/assets/images/output-onlinepngtools.png',\n baseUrl: window.location.origin,\n imageUrl: window.location.origin,\n // baseUrl: 'http://10.0.3.225/' //tcdd\n // baseUrl: 'https://demo.bussion.com',\n // imageUrl: 'https://demo.bussion.com',\n // baseUrl:'http://152.89.36.234:5000',//hospitadent\n // imageUrl:'http://152.89.36.234:5000',\n // baseUrl: 'https://dev.bussion.com',\n // imageUrl: 'https://dev.bussion.com'\n // baseUrl: 'http://rapor.turkiyemaarif.org',\n // imageUrl: 'http://rapor.turkiyemaarif.org',\n // baseUrl: 'http://10.5.1.175',\n // imageUrl: 'http://10.5.1.175'\n\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/plugins/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","var map = {\n\t\"./af\": 58685,\n\t\"./af.js\": 58685,\n\t\"./ar\": 254,\n\t\"./ar-dz\": 4312,\n\t\"./ar-dz.js\": 4312,\n\t\"./ar-kw\": 32614,\n\t\"./ar-kw.js\": 32614,\n\t\"./ar-ly\": 18630,\n\t\"./ar-ly.js\": 18630,\n\t\"./ar-ma\": 28674,\n\t\"./ar-ma.js\": 28674,\n\t\"./ar-sa\": 49032,\n\t\"./ar-sa.js\": 49032,\n\t\"./ar-tn\": 24730,\n\t\"./ar-tn.js\": 24730,\n\t\"./ar.js\": 254,\n\t\"./az\": 53052,\n\t\"./az.js\": 53052,\n\t\"./be\": 60150,\n\t\"./be.js\": 60150,\n\t\"./bg\": 63069,\n\t\"./bg.js\": 63069,\n\t\"./bm\": 13466,\n\t\"./bm.js\": 13466,\n\t\"./bn\": 18516,\n\t\"./bn-bd\": 90557,\n\t\"./bn-bd.js\": 90557,\n\t\"./bn.js\": 18516,\n\t\"./bo\": 26273,\n\t\"./bo.js\": 26273,\n\t\"./br\": 9588,\n\t\"./br.js\": 9588,\n\t\"./bs\": 19815,\n\t\"./bs.js\": 19815,\n\t\"./ca\": 83331,\n\t\"./ca.js\": 83331,\n\t\"./cs\": 21320,\n\t\"./cs.js\": 21320,\n\t\"./cv\": 72219,\n\t\"./cv.js\": 72219,\n\t\"./cy\": 68266,\n\t\"./cy.js\": 68266,\n\t\"./da\": 66427,\n\t\"./da.js\": 66427,\n\t\"./de\": 67435,\n\t\"./de-at\": 52871,\n\t\"./de-at.js\": 52871,\n\t\"./de-ch\": 12994,\n\t\"./de-ch.js\": 12994,\n\t\"./de.js\": 67435,\n\t\"./dv\": 82357,\n\t\"./dv.js\": 82357,\n\t\"./el\": 95649,\n\t\"./el.js\": 95649,\n\t\"./en-au\": 59961,\n\t\"./en-au.js\": 59961,\n\t\"./en-ca\": 19878,\n\t\"./en-ca.js\": 19878,\n\t\"./en-gb\": 3924,\n\t\"./en-gb.js\": 3924,\n\t\"./en-ie\": 70864,\n\t\"./en-ie.js\": 70864,\n\t\"./en-il\": 91579,\n\t\"./en-il.js\": 91579,\n\t\"./en-in\": 30940,\n\t\"./en-in.js\": 30940,\n\t\"./en-nz\": 16181,\n\t\"./en-nz.js\": 16181,\n\t\"./en-sg\": 44301,\n\t\"./en-sg.js\": 44301,\n\t\"./eo\": 85291,\n\t\"./eo.js\": 85291,\n\t\"./es\": 54529,\n\t\"./es-do\": 53764,\n\t\"./es-do.js\": 53764,\n\t\"./es-mx\": 12584,\n\t\"./es-mx.js\": 12584,\n\t\"./es-us\": 63425,\n\t\"./es-us.js\": 63425,\n\t\"./es.js\": 54529,\n\t\"./et\": 35203,\n\t\"./et.js\": 35203,\n\t\"./eu\": 70678,\n\t\"./eu.js\": 70678,\n\t\"./fa\": 83483,\n\t\"./fa.js\": 83483,\n\t\"./fi\": 96262,\n\t\"./fi.js\": 96262,\n\t\"./fil\": 52521,\n\t\"./fil.js\": 52521,\n\t\"./fo\": 34555,\n\t\"./fo.js\": 34555,\n\t\"./fr\": 63131,\n\t\"./fr-ca\": 88239,\n\t\"./fr-ca.js\": 88239,\n\t\"./fr-ch\": 21702,\n\t\"./fr-ch.js\": 21702,\n\t\"./fr.js\": 63131,\n\t\"./fy\": 267,\n\t\"./fy.js\": 267,\n\t\"./ga\": 23821,\n\t\"./ga.js\": 23821,\n\t\"./gd\": 71753,\n\t\"./gd.js\": 71753,\n\t\"./gl\": 4074,\n\t\"./gl.js\": 4074,\n\t\"./gom-deva\": 92762,\n\t\"./gom-deva.js\": 92762,\n\t\"./gom-latn\": 5969,\n\t\"./gom-latn.js\": 5969,\n\t\"./gu\": 82809,\n\t\"./gu.js\": 82809,\n\t\"./he\": 45402,\n\t\"./he.js\": 45402,\n\t\"./hi\": 315,\n\t\"./hi.js\": 315,\n\t\"./hr\": 10410,\n\t\"./hr.js\": 10410,\n\t\"./hu\": 38288,\n\t\"./hu.js\": 38288,\n\t\"./hy-am\": 67928,\n\t\"./hy-am.js\": 67928,\n\t\"./id\": 71334,\n\t\"./id.js\": 71334,\n\t\"./is\": 86959,\n\t\"./is.js\": 86959,\n\t\"./it\": 34864,\n\t\"./it-ch\": 51124,\n\t\"./it-ch.js\": 51124,\n\t\"./it.js\": 34864,\n\t\"./ja\": 36141,\n\t\"./ja.js\": 36141,\n\t\"./jv\": 29187,\n\t\"./jv.js\": 29187,\n\t\"./ka\": 42136,\n\t\"./ka.js\": 42136,\n\t\"./kk\": 94332,\n\t\"./kk.js\": 94332,\n\t\"./km\": 18607,\n\t\"./km.js\": 18607,\n\t\"./kn\": 84305,\n\t\"./kn.js\": 84305,\n\t\"./ko\": 70234,\n\t\"./ko.js\": 70234,\n\t\"./ku\": 16003,\n\t\"./ku.js\": 16003,\n\t\"./ky\": 75061,\n\t\"./ky.js\": 75061,\n\t\"./lb\": 32786,\n\t\"./lb.js\": 32786,\n\t\"./lo\": 66183,\n\t\"./lo.js\": 66183,\n\t\"./lt\": 50029,\n\t\"./lt.js\": 50029,\n\t\"./lv\": 24169,\n\t\"./lv.js\": 24169,\n\t\"./me\": 68577,\n\t\"./me.js\": 68577,\n\t\"./mi\": 68177,\n\t\"./mi.js\": 68177,\n\t\"./mk\": 50337,\n\t\"./mk.js\": 50337,\n\t\"./ml\": 65260,\n\t\"./ml.js\": 65260,\n\t\"./mn\": 39428,\n\t\"./mn.js\": 39428,\n\t\"./mr\": 14695,\n\t\"./mr.js\": 14695,\n\t\"./ms\": 75334,\n\t\"./ms-my\": 37151,\n\t\"./ms-my.js\": 37151,\n\t\"./ms.js\": 75334,\n\t\"./mt\": 63570,\n\t\"./mt.js\": 63570,\n\t\"./my\": 97963,\n\t\"./my.js\": 97963,\n\t\"./nb\": 88028,\n\t\"./nb.js\": 88028,\n\t\"./ne\": 86638,\n\t\"./ne.js\": 86638,\n\t\"./nl\": 50302,\n\t\"./nl-be\": 66782,\n\t\"./nl-be.js\": 66782,\n\t\"./nl.js\": 50302,\n\t\"./nn\": 33501,\n\t\"./nn.js\": 33501,\n\t\"./oc-lnc\": 50563,\n\t\"./oc-lnc.js\": 50563,\n\t\"./pa-in\": 50869,\n\t\"./pa-in.js\": 50869,\n\t\"./pl\": 65302,\n\t\"./pl.js\": 65302,\n\t\"./pt\": 49687,\n\t\"./pt-br\": 74884,\n\t\"./pt-br.js\": 74884,\n\t\"./pt.js\": 49687,\n\t\"./ro\": 79107,\n\t\"./ro.js\": 79107,\n\t\"./ru\": 33627,\n\t\"./ru.js\": 33627,\n\t\"./sd\": 30355,\n\t\"./sd.js\": 30355,\n\t\"./se\": 83427,\n\t\"./se.js\": 83427,\n\t\"./si\": 11848,\n\t\"./si.js\": 11848,\n\t\"./sk\": 54590,\n\t\"./sk.js\": 54590,\n\t\"./sl\": 20184,\n\t\"./sl.js\": 20184,\n\t\"./sq\": 56361,\n\t\"./sq.js\": 56361,\n\t\"./sr\": 78965,\n\t\"./sr-cyrl\": 81287,\n\t\"./sr-cyrl.js\": 81287,\n\t\"./sr.js\": 78965,\n\t\"./ss\": 25456,\n\t\"./ss.js\": 25456,\n\t\"./sv\": 70451,\n\t\"./sv.js\": 70451,\n\t\"./sw\": 77558,\n\t\"./sw.js\": 77558,\n\t\"./ta\": 51356,\n\t\"./ta.js\": 51356,\n\t\"./te\": 73693,\n\t\"./te.js\": 73693,\n\t\"./tet\": 21243,\n\t\"./tet.js\": 21243,\n\t\"./tg\": 42500,\n\t\"./tg.js\": 42500,\n\t\"./th\": 55768,\n\t\"./th.js\": 55768,\n\t\"./tk\": 77761,\n\t\"./tk.js\": 77761,\n\t\"./tl-ph\": 35780,\n\t\"./tl-ph.js\": 35780,\n\t\"./tlh\": 29590,\n\t\"./tlh.js\": 29590,\n\t\"./tr\": 33807,\n\t\"./tr.js\": 33807,\n\t\"./tzl\": 93857,\n\t\"./tzl.js\": 93857,\n\t\"./tzm\": 60654,\n\t\"./tzm-latn\": 8806,\n\t\"./tzm-latn.js\": 8806,\n\t\"./tzm.js\": 60654,\n\t\"./ug-cn\": 30845,\n\t\"./ug-cn.js\": 30845,\n\t\"./uk\": 19232,\n\t\"./uk.js\": 19232,\n\t\"./ur\": 47052,\n\t\"./ur.js\": 47052,\n\t\"./uz\": 77967,\n\t\"./uz-latn\": 32233,\n\t\"./uz-latn.js\": 32233,\n\t\"./uz.js\": 77967,\n\t\"./vi\": 98615,\n\t\"./vi.js\": 98615,\n\t\"./x-pseudo\": 12320,\n\t\"./x-pseudo.js\": 12320,\n\t\"./yo\": 31313,\n\t\"./yo.js\": 31313,\n\t\"./zh-cn\": 64490,\n\t\"./zh-cn.js\": 64490,\n\t\"./zh-hk\": 55910,\n\t\"./zh-hk.js\": 55910,\n\t\"./zh-mo\": 98262,\n\t\"./zh-mo.js\": 98262,\n\t\"./zh-tw\": 44223,\n\t\"./zh-tw.js\": 44223\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 = 46700;","/* (ignored) */","/* (ignored) */","/* (ignored) */"],"names":["DashboardService","ScriptLoaderService","i0","ConsoleScreenComponent","constructor","dashboardService","scriptLoader","ngOnInit","compileCode","debugCodeResult","debugDisplay","widgetPreview","widget","subscribe","result","widgetPreviewData","runwidgetCodeForCompiler","error","console","log","DebugError","code","GetErrorPosition","line","stack","match","RegExp","undefined","toString","replace","rst","split","startIdex","endIndex","lines","slice","ErrorMessage","message","join","selectors","inputs","decls","vars","consts","template","moveItemInArray","ElementRef","EventEmitter","UntypedFormControl","MatAutocompleteTrigger","MatInput","TranslateService","DeviceDetectorService","Observable","of","startWith","map","filter_options","dateEditor","Dashboard","Dimension","CoreService","ctx_r39","_r5","objectId","objectType","filter","ctx_r84","_r86","ctx_r85","$event","ctx_r104","v_r105","_r102","v_r124","_r116","ctx_r8","FilterSelectionComponent","translate","deviceService","coreService","fieldName","fieldValue","operator","dimensionId","name","type","value","visibleName","lockedFilter","showAllValues","pintoPanel","isFilterExist","isOrdered","allowSearch","positionOptions","uniqFilter","filters","x","length","item","some","push","checkFilterExist","isDeviceMobile","isMobile","addFilter","fCopy","Object","assign","isShownFieldValueForm","queryFilterFieldType","isNumeric","showErrorMessage","instant","parseInt","startDate","endDate","startFilter","endFilter","clearFilterForm","selectedDimensionFilter","f","autocomplete","closePanel","input","isNaN","parseFloat","isFinite","deleteFilter","deletedFilter","index","findIndex","splice","selectDimension","d","isDimensionSelected","selectedDimension","manage","autoComplateControl","disable","enable","options","operatorOptions","includes","filteredOptions","valueChanges","pipe","_filter","searchValueOnEnter","searchkey","areListsDifferent","list1","list2","i","closedMenu","res","dimensions","find","saveDimensions","emit","drop","event","previousIndex","currentIndex","saveDimensionSorting","dimensiondragactive","searchDimensionValue","selecteddimension","newDimensionValue","filtereddim","selectedDashboard","contentLanguage","toLowerCase","toLocaleLowerCase","trim","addDimensionValue","patchValue","deleteDimensionValue","deleteText","forEach","dateInput","clearAllFilter","resetFilterFunc","resetFilter","initialFilters","openSelected","selectedDimensionId","setTimeout","inputEl","nativeElement","focus","lockFilter","dim","selectedLocked","deleteDimension","hideDimension","saveSortState","selectedOrdered","sort","a","b","hidePanel","saveQueryPanelState","checked","pinToPanel","saveVisibleName","e","target","closeFilter","close","makeQuery","save","dateSelected","date","range","rangeType","startTimeISOString","toISOString","time","Date","rangeStart","rangeEnd","setFieldValueFormDisplayStatus","valueField","valueFieldType","getSelectedFieldType","field","c","operatorSelected","openShareModal","shareData","openShareForm","filterValue","option","disableSearch","viewQuery","ctx","UntypedFormGroup","ActivatedRoute","Router","CompactType","DisplayGrid","GridType","WidgetFormComponent","ModalService","SelfServiceDashboardFormComponent","ShareFormComponent","deleteCssFile","ExpandedWidgetComponent","GlobalFunctionService","AvailableWidgetSelectionComponent","item_r8","ctx_r7","SelfServiceDesignerComponent","activerouter","router","modalService","globalFunctionService","dashboardId","title","icon","auditEnabled","order","dashboardStatus","description","layoutConfig","domain","access","owner","creationDate","updatedBy","updateDate","colorPalette","widgets","messages","autoRefresh","refreshInterval","isMainDashboard","hideBorders","gridSize","tags","css","ownerId","users","hideAdvancedQueryPanel","layout","colors","visualComponentId","subTitle","footNote","dateGroup","customizeCode","dataStoreId","includeZeroValues","limitData","sharedData","sortField","sortOrder","sortType","onlyWidget","measures","widgetParameters","dimensionsData","cols","rows","y","designerContainer","mobileLayout","freezeFilter","drillDownDashboard","drillDownLink","drillDown","dashboard","dashboardFilter","height","width","link","openerMethod","widgetFilter","shareKey","config","params","calculatedFields","isFilter","offSet","widgetQuery","ignoreFilterList","disableInMemoryCache","widgetJoin","path","visibletoggle","isTablet","customizeDashboard","snapshot","paramMap","get","data","selectedDashboardId","getDashboard","getDashboardsWidgets","getGlobalFunctions","runGlobalFunction","ngOnDestroy","openAvailableWidgetScreen","saveselectedWidgets","openModal","items","dashboardWidgets","concat","widgetsLocal","createWidget","upsertWidgetToDashboard","saveDashboardLayout","openSaveDashboardModal","object","navigate","updateDashboardLayout","showSuccessMessage","openDashboardDimensions","isShownFilter","closeFilterForm","saveFilter","newFilters","loadingWidgets","getWidgetsForDesigner","widgetList","gridType","openWidgetForm","widgetId","now","w","widgetResponse","addScriptFileToHead","widgetLibraries","runWidgetCode","DragModeChange","draggable","enabled","api","optionsChanged","responsiveOptions","breakpoint","maxCols","maxRows","ScrollVertical","compactType","None","margin","outerMargin","outerMarginTop","outerMarginRight","outerMarginBottom","outerMarginLeft","useTransformPositioning","mobileBreakpoint","minCols","minRows","maxItemCols","minItemCols","maxItemRows","minItemRows","maxItemArea","minItemArea","defaultItemCols","defaultItemRows","fixedColWidth","fixedRowHeight","keepFixedHeightInMobile","keepFixedWidthInMobile","scrollSensitivity","scrollSpeed","enableEmptyCellClick","enableEmptyCellContextMenu","enableEmptyCellDrop","enableEmptyCellDrag","enableOccupiedCellDrop","emptyCellDragMaxCols","emptyCellDragMaxRows","ignoreMarginInRow","resizable","swap","pushItems","disablePushOnDrag","disablePushOnResize","pushDirections","north","east","south","west","pushResizeItems","displayGrid","Always","disableWindowResize","disableWarnings","scrollToNewItems","removeWidget","openDeleteConfirm","deleteWidgetFromDashboard","indexOf","expandWidget","widgetData","shareModalOpen","selectedFilters","changeGrid","upsertDashboard","FormControl","FormGroup","Validators","MAT_DIALOG_DATA","MatDialog","MatDialogRef","CodeEditorComponent","FlowScriptService","ctx_r5","ScriptFormComponent","flowScriptService","dialog","dialogRef","theme","language","required","package","timeout","pythonExecuteable","stopIfFailed","key","shown","mandatory","scriptId","parameters","scriptObject","script","editScript","parameterList","getPythonScriptTemplate","createFilteredOptions","getPythonPackages","GetPythonPackages","pythonPackages","pythonPackagesfilteredOptions","scriptForm","pythonScriptTemplate","getValue","GetPythonScriptTemplate","parameterForm","selectIdKey","editorInit","eventInit","window","monaco","languages","typescript","javascriptDefaults","setDiagnosticsOptions","noSemanticValidation","noSyntaxValidation","setCompilerOptions","ScriptTarget","ES2016","allowNonTsExtensions","selectedScript","upsertScript","valid","showFormFillError","addParameterElement","obj","parameterIsUpdate","visibleParameterForm","deleteParameter","selectedItem","stopPropagation","editParameter","openBiggerEditor","open","debug","selectedTabIndex","editorOptions","afterClosed","getStarCount","closeModal","uploadIconImage","fileInput","deleteElement","deleteFunction","ViewsComponent","ChangeDetectorRef","DashboardSelectionComponent","PermissionService","interval","Subject","environment","skip","takeUntil","WidgetService","ShareService","cerateCssFile","idKeyword","FilterAiService","WidgetPreview","htmlToImage","jsPDF","Montserrat","MontserratBold","PptxGenJS","AuthService","DashboardPerformanceInfoComponent","ctx_r2","ctx_r4","ctx_r6","ctx_r51","item_r53","ctx_r12","MainComponent","permissionService","route","widgetService","authService","shareService","filterAIService","dialogService","cdr","imageUrl","getCurrentNavigation","extras","state","onClick","displayDropDown","appId","redirectApp","handleSelectedDashboard","getUserLibraries","isDeviceTablet","dropdownData","contentIdKeyword","getMyShares","selectedDasboard","next","roleList","getUserRoles","visibleInfoBox","changeGridOptions","changeDashboardLayout","getFilteredDashboard","text","setFilter","getSuggestionForDashboard","sugesstionFilter","selectedDashboardInitialFilters","shortTitle","maxLength","substring","toggleDashboardHeaderVisibilityMobile","isDashboardHeaderVisible","fullscreen","toggleDashboardHeaderVisibility","button","changeinitFilter","sessionStorage","setItem","JSON","stringify","parse","getItem","subscriptionCheckDashboardInterval","unsubscribe","subscriptionAutoPlayDashboardInterval","complete","setupPage","getAuthorizedDashboards","getPermissionForMainPage","listenFilterClick","listenDashboardNavigateEvent","dimensionValuTypeControl","createPinToFilter","val","String","initfilter","selecteddimensiontofilter","bsf","filterGroup","user","localStorage","userobj","roles","getUserRoleList","permissions","permissionPath","getPermissionPath","getDashboards","cachedData","authorizedDashboard","authorizedDashboards","changeAppDashbboard","dashboardList","app","appDashboards","dashboards","tagList","activeDashboard","getActiveDashboard","getUserActiveDashboards","lastDashboardIndex","getLastDashboardId","onOrientationChange","widgetLayoutEdit","serviceWidgets","currentX","currentY","selectedlayout","orientation","rowHeightRatio","newrows","newCols","wd","shrinkRate","widgetLayout","serviceWidgetsCopy","heightSort","Math","round","endUserScreen","subscribeDashboardChanges","MobileWidgetSettings","isLandscape","innerWidth","innerHeight","dashboardSelected","dash","setLastDashboardId","selectedFilterGroup","showMessages","isFirstForCheckDashboardData","checkDashboardInterval","checkDashboardChanges","checkDashboardUpdateTime","dashboardChangesId","changedWidgets","refreshWidget","idlist","getWidgetById","openDashboardFilter","openViewsModal","myShares","applyFilterForViews","share","getShares","openDashboardFilterAI","isShownFilterAI","getDashboardForFilter","clearSelectedFilterGroup","groupedData","fieldkey","content","dimension","priority","isinitial","keys","saveFilterFromShares","dissmissAll","closeFilterModal","closeAll","applyDropdownFilter","navigateToDashboard","filterChanges","newFilterList","newF","dashboardID","isFilterActive","getWidgetsForDashboard","addActiveDashboard","activeDashboardIds","ids","addDashboardToActiveDashboardList","openSideNav","sidenav","toggle","addDashboardToUser","function","changeViewList","getMyShare","showFullScreen","status","isFullscreen","changeHeaderStatus","headerShown","autoPlay","isAutoPlaying","autoPlayDashboardInterval","changeDashboard","stopAutoPlay","nextIndex","nextDashboard","addTextToPdf","pdf","fontSize","font","fontType","ypos","pageWidth","internal","pageSize","getWidth","setFontSize","setFont","setTextColor","maxWidth","splitTextToSize","lineHeight","totalHeight","newYPosition","exportAsPdf","addFileToVFS","addFont","setLanguage","yOffset","pageHeight","getHeight","promises","element","document","getElementById","toPng","then","imgData","imageWidth","clientWidth","imageHeight","clientHeight","addPage","addImage","Promise","all","catch","exportAsPptx","pptx","slide","addSlide","addText","h","fontFace","color","bold","isTextBox","getUserFirstName","getUserLastName","dateTimeString","toLocaleString","writeFile","fileName","exportDashboard","refreshWidgetRender","detectChanges","redirection","returnApp","observers","openInfoBox","infoDialogRef","perfWidgets","openedModals","openModalWithRef","bottom","right","TemplateRef","BussionConnector","BParameter","ScriptFlow","MatStepper","NodeService","ConnectorService","catchError","DataStoreService","ctx_r38","_r44","_r73","_r75","ctx_r14","ctx_r101","_r106","ctx_r102","_r111","ctx_r103","ctx_r127","ctx_r23","ConnectorFormComponent","nodeService","connectorService","functionService","dataStoreService","o1","o2","parameterName","parameterValue","connectionString","sourceType","sourceDatabase","sourceServer","sourceUser","sourcePassword","sourcePort","node","bussionConnector","universe","collection","query","queryParameter","keyField","reportEmails","updateField","keepExistingSchema","commandTimeOut","inMemory","runAtPeriod","seconds","minute","hour","day","month","year","disableThreshold","bufferSize","bulkInsert","folder","setupValidations","isCreateForm","task","getTypeValue","stepCount","useConnectionString","getExternalEngines","getExternalEngineCode","getExternalEngineCodeTemplate","getDataFlows","getDataNodes","getBussionConnectors","filteredFolderOptions","folderAutoComplete","folderList","ES6","getGlobalFunctionDefinitions","getGlobalFunctionsDefinitions","addExtraLib","scriptFlows","selectedScriptFlow","flowId","selectFlow","selected","changeSecondFormValidation","secondForm","setValidators","clearValidators","updateValueAndValidity","thirdForm","firstForm","orgNodeId","fourthForm","dataNodes","currentNode","nodeId","dataNodeType","showInMemory","getConnectors","connectors","getCredentials","password","saveTask","saveAs","checkValidation","connectorId","upsertConnectorTask","upsertExternalEngine","externalEngineCodeTemp","addParameter","parameter","param","goToNextStep","formStepper","selectedIndex","backToPreviousStep","previous","checkSchuleValidation","periodTypeChanged","taskTypeChanged","checkInMemoryInDataNodeChange","selecteddatanode","getUniverse","checkInMemory","checkConnection","getExrenalEngineCode","GetExternalEngineCode","GetExternalEngineTemplate","externalEngineCodeTemplate","loadingEngines","GetExternalEngines","externalEnginesByConnector","autoComplete","openCodeScreen","compileVisible","nodeID","engine","UpsertExternalEngine","bussionConnectorChange","fillAutoCompleteArea","filteredUniverseOption","universes","filteredCollectionOption","collections","filteredColumnOption","columnAutoComplete","columns","filteredColumnOption2","columnAutoComplete2","getUniverses","universeSelection","getCollections","collectionSelection","getColumns","getColumnsByNodeId","cl","runQuery","ExecuteQuery","dataPreview","previewScreen","dataDataPreviewColumns","fieldType","PassModal","passDialogRef","passwordDialog","_r3","GridsterComponent","tap","DashboardDesignerComponent","activatedRoute","getPermissions","didFunctionLoad","designDashboard","getGlobalFunction","openedClosedbtn","changedOptions","style","createElement","id","innerHTML","getElementsByTagName","appendChild","optionsChange","mobileDesign","unvisibleWidgets","removeFocusAllButton","Array","from","blur","dashboardfilter","deleteWidget","isdif","saveDashboard","fieldFilter","ismobile","dw","saveDashboardForDimensionVisibleName","queryPanelState","redesign","selectedLayoutkey","OnDragAndResize","VisualService","transferArrayItem","filterString","SweetAlertService","SettingAreas","dropdownMenus","html2canvas","NgxSpinnerService","_","switchMap","takeWhile","combineLatest","MatSelect","item_r21","ctx_r43","ctx_r49","ctx_r120","ctx_r121","ctx_r135","spinner","visualService","sweetalertService","visual","imageCard","multipleSelection","iconMenuActive","searchActive","placeholder","dragActive","changeSortWithDrop","selectElement","changevisualComponent","progressValue","errorValues","active","endIcons","clickFunction","showPreviewData","popover","dataStoreSelected","iconMenuEmitter","sortAndLimitSelection","triggerMenuIcon","tooltip","topButtons","eventFunction","querySelectorAll","classList","remove","controlForPreview","inputType","defaultValue","inputId","visible","getValueFunction","sortAndLimitDropdownSettings","agregation","addMeasurement","changeDimensionSort","dimensionSelected","checkIcon","changeDimensionFilterStatus","label","formula","isCalculatedField","colorCode","drilDownDropdownSettings","resetDrillDown","controlProgressValue","updateAllDropdownSettings","getDashboardViews","changePreviewData","changeView","disabled","ChangeUrlForDynamic","desc","dropdown","setting","dataStoreColumnsDropdownSettings","dataStoreColumnsForDropdownMenu","sortAndLimitForDropdownMenu","contentTemplate","visualComponentsDropdownSettings","visualComponentsForDropdownMenu","configDropdownSettings","dataStoresDropdownSettings","dataStoresForDropdownMenu","tabs","dataStoreColumnsSettingTabs","visualSettingTabs","notDialog","_notDialog","openEditTable","ngAfterViewInit","calculated","paint","setupValidation","updateInsertFormSetting","getVisualComponents","getDataStores","changedConfig","calculatedFieldList","widgetIsFilter","getSelectedDsColumns","getSampleData","infoBadgeList","detail","subTextKey","disableEdit","useDirectQuery","allDropdownSettings","dashboardWidgetColors","sortFieldVisible","dynamicFilterForChart","changeCalculatedOptions","setSelectedSettingArea","settingArea","selectedSettingArea","_selectedTabForClick","onOptionSelected","selectedValue","lastSpaceIndex","calculatedForm","lastIndexOf","firstPart","optionselection","writeValue","changedConfigs","alive","configtype","selectedDashboardForViews","dashboardShares","selectedShares","setSelectedView","url","sharekey","selectedShare","ds","baseUrl","href","MouseEvent","view","bubbles","cancelable","dispatchEvent","use","filterstringText","createdUrl","useDynamicFilter","shareId","sharedObjectId","shareState","sharedBy","sharedUserId","lang","sharedDate","enableFilter","enableTitle","shareType","shareEncryptKey","authenticatedUsers","authentication","ignoreForm","ignoreKey","tagForm","tagKey","joinForm","source","destination","controls","splittedValue","AddCalculatedField","getCalculatedFieldsForDropdown","reset","deleteCalculatedField","calculatedFieldUpdate","editCalculatedField","updateCalculatedField","controlNameForCalculated","calculatedFieldNameError","getDataSourceForUser","dataStores","subtitle","visualComponents","settingForVisualComponentConfig","img","ChangePreviewScreen","screenName","selectedPreviewScreen","measure","menu","menu2","selectedMenuItem2","selectedMenuItem","getColomnsForDataStore","dataStoreColumns","dataStoreColumnsForFilter","isFirstLoad","createDropdownDataForColumns","dataList","selectedmenuitem2","menu2Disable","calculatedElements","calculatedmeasures","measurments","deleteMeasure","upsertWidget","show","saveAsActive","initialResponse","hide","selectedvisualcomp","createWidgetConfig","values","opt","queryFilter","deleteQuery","applyFilter","searchValuesForQueryFilter","searchText","getValuesForField","searchValues","filterFieldSelected","column","previousContainer","container","isExistDateInDimension","selectedList","list","newlist","areObjectsEqual","obj1","obj2","keys1","keys2","isEqualWithOrder","arr1","arr2","isEqualWith","val1","val2","isArray","isEqual","createWidgetDataColumns","selectedDataPreviewColumnsForAggregation","otherColumn","showPreview","fastpreview","disablePreview","chartRerenderLoading","widgetPreviewFast","oldWidget","loadingPreview","queryColumnsForDropdownMenu","measureToColumn","dropdownMeasure","dataPreviewColumnsForQuery","selectedDimensions","selectedmeasure","currentDimension","dateGroupByTextList","openCustomizeCode","codeString","openWidgetCodeScreen","codeScreen","sqlcodeScreen","filterScreen","addColorRule","selectedColor","typeChange","colorType","widgetColorText","selectedColorText","selectedColors","showCopyIDText","colorDimensionSelected","dimensionData","selectedColorDimension","colorDimensionData","closeDataSettingsTab","dataSettingsTab","datastoreid","sampleres","selectedDataPreviewColumns","sampleDataForDataStore","selectedDataStore","widgetObject","updateDropdown","controlAndOpenTitleBox","expandAllSettings","settingAreaIds","display","clearAllSelection","getPaletColors","paletcolors","_paletColors","checkDirectQuery","openSqlCodeEditor","addIgnoreKey","ignoreValue","deleteIgnoreKey","addTag","tagValue","deleteTag","addJoinList","deleteJoinKey","joinItem","selectioncount","runDirectQuery","saveas","opentitleBox","titleBoxVisible","closescreen","toggleChange","downloadWidget","downloadLoading","screen","getElementsByClassName","canvas","downloadLink","toDataURL","download","click","sJson","encodeURIComponent","closeDialog","changeMeasureLabel","inputValue","closeFilterScreen","resetCode","ctx_r3","SharePreviewComponent","uniqTimeStemp","decryptedText","queryParamMap","getDecrypt","scripturlfiltre","sharedToken","currentModalFilters","addCurrentFilterOpenModal","allOpenedModals","selecteddashboardFilter","clickedWidget","currentModalIndex","insideModalFilter","modal","unloadHandler","removeToken","removeDynamicToken","createObjectList","filterobj","filterkey","getShareObject","shareObject","authType","getWidgets","getSharedWidget","getDynamicToken","toPromise","sharedObject","sharedWidget","loading","getSharedDashboardWidgets","notAuth","hostBindings","BehaviorSubject","Endpoints","HttpClient","SharePreviewModalComponent","http","device","position","isapp","scripts","addJSFile","addCSSFile","fileURL","isFileExist","src","async","charset","rel","media","urlItems","lastIindex","didNewFileLoad","uploadedFiles","changeWidgetConfig","refresh","selecteddashboard","selectedTabForClick","paletColors","getUser","refreshSend","runScriptCode","Function","runnedWidgetCode","rerender","SetFilterForDashboard","dashboardid","setParam","Key","Value","Token","getToken","setParamInternal","payload","post","getParam","deleteParam","deleteParamInternal","response","openWindow","screenOptions","windowHeight","windowWidth","setAttribute","left","currentModals","currentModalFilter","changeModalList","exitButton","showAvatar","deleteCurrentFilterOnCloseModal","pop","appType","applicationId","modalfilter","modalIndex","modalFilters","resolve","reject","sendLog","Type","Message","sendAuditLogs","r","runScript","scriptName","BussionScript","startScript","navigateDashboard","mappedFilter","getDataWithOffset","offset","globalFunction","factory","providedIn"],"sourceRoot":"webpack:///","x_google_ignoreList":[317,318,319,320]}