bpm-core 0.0.76 → 0.0.78
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/esm2022/lib/components/shared-components/form-field/attachment-section/attachment-section.component.mjs +3 -3
- package/esm2022/lib/components/shared-components/form-field/checkbox/checkbox.component.mjs +3 -3
- package/esm2022/lib/components/shared-components/form-field/info-item/info-item.component.mjs +3 -3
- package/esm2022/lib/components/shared-components/table/table.component.mjs +3 -3
- package/fesm2022/bpm-core.mjs +8 -8
- package/fesm2022/bpm-core.mjs.map +1 -1
- package/package.json +1 -1
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"bpm-core.mjs","sources":["../../../projects/bpm-core/src/lib/constants/constants.ts","../../../projects/bpm-core/src/lib/i18n/en.ts","../../../projects/bpm-core/src/lib/i18n/ar.ts","../../../projects/bpm-core/src/lib/services/i18n.service.ts","../../../projects/bpm-core/src/lib/services/sidenav.service.ts","../../../projects/bpm-core/src/lib/services/feedBack.service.ts","../../../projects/bpm-core/src/lib/hooks/save-form.ts","../../../projects/bpm-core/src/lib/services/core.service.ts.ts","../../../projects/bpm-core/src/lib/services/action.service.ts.ts","../../../projects/bpm-core/src/lib/components/shared-components/dialogs/delete-dialog/delete-dialog.component.ts","../../../projects/bpm-core/src/lib/components/shared-components/dialogs/delete-dialog/delete-dialog.component.html","../../../projects/bpm-core/src/lib/components/shared-components/dialogs/submit-dialog/submit-dialog.component.ts","../../../projects/bpm-core/src/lib/components/shared-components/dialogs/submit-dialog/submit-dialog.component.html","../../../projects/bpm-core/src/lib/components/shared-components/dialogs/confirm-dialog/confirm-dialog.component.ts","../../../projects/bpm-core/src/lib/components/shared-components/dialogs/confirm-dialog/confirm-dialog.component.html","../../../projects/bpm-core/src/lib/pipes/format-as-password.pipe.ts","../../../projects/bpm-core/src/lib/pipes/currency.pipe.ts","../../../projects/bpm-core/src/lib/components/shared-components/form-field/date-picker/date-format.ts","../../../projects/bpm-core/src/lib/components/shared-components/form-field/base-component/base-component.component.ts","../../../projects/bpm-core/src/lib/components/shared-components/form-field/control-value-accessor.directive.ts","../../../projects/bpm-core/src/lib/components/shared-components/terms-conditions/terms-conditions.component.ts","../../../projects/bpm-core/src/lib/components/shared-components/terms-conditions/terms-conditions.component.html","../../../projects/bpm-core/src/lib/pipes/translate.pipe.ts","../../../projects/bpm-core/src/lib/components/shared-components/form-field/form-label/form-label.component.ts","../../../projects/bpm-core/src/lib/components/shared-components/form-field/form-label/form-label.component.html","../../../projects/bpm-core/src/lib/regex/regex-patterns.ts","../../../projects/bpm-core/src/lib/components/shared-components/form-field/validation-errors/validation-errors.component.ts","../../../projects/bpm-core/src/lib/components/shared-components/form-field/validation-errors/validation-errors.component.html","../../../projects/bpm-core/src/lib/components/shared-components/form-field/info-item/info-item.component.ts","../../../projects/bpm-core/src/lib/components/shared-components/form-field/info-item/info-item.component.html","../../../projects/bpm-core/src/lib/directives/en.directive.ts","../../../projects/bpm-core/src/lib/directives/ar.directive.ts","../../../projects/bpm-core/src/lib/components/shared-components/form-field/shared-imports.ts","../../../projects/bpm-core/src/lib/components/shared-components/form-field/checkbox/checkbox.component.ts","../../../projects/bpm-core/src/lib/components/shared-components/form-field/checkbox/checkbox.component.html","../../../projects/bpm-core/src/lib/components/shared-components/form-field/custom-searchable-autocomplete/custom-searchable.component.ts","../../../projects/bpm-core/src/lib/components/shared-components/form-field/custom-searchable-autocomplete/custom-searchable.component.html","../../../projects/bpm-core/src/lib/components/shared-components/form-field/date-picker/date-picker.component.ts","../../../projects/bpm-core/src/lib/components/shared-components/form-field/date-picker/date-picker.component.html","../../../projects/bpm-core/src/lib/components/shared-components/form-field/date-range-picker/date-range-picker.component.ts","../../../projects/bpm-core/src/lib/components/shared-components/form-field/date-range-picker/date-range-picker.component.html","../../../projects/bpm-core/src/lib/components/shared-components/form-field/input/input.component.ts","../../../projects/bpm-core/src/lib/components/shared-components/form-field/input/input.component.html","../../../projects/bpm-core/src/lib/directives/number.directive.ts","../../../projects/bpm-core/src/lib/components/shared-components/form-field/input-number/input-number.component.ts","../../../projects/bpm-core/src/lib/components/shared-components/form-field/input-number/input-number.component.html","../../../projects/bpm-core/src/lib/components/shared-components/form-field/input-email/input-email.component.ts","../../../projects/bpm-core/src/lib/components/shared-components/form-field/input-email/input-email.component.html","../../../projects/bpm-core/src/lib/components/shared-components/form-field/input-mask/input-mask.component.ts","../../../projects/bpm-core/src/lib/components/shared-components/form-field/input-mask/input-mask.component.html","../../../projects/bpm-core/src/lib/directives/currency.directive.ts","../../../projects/bpm-core/src/lib/components/shared-components/form-field/input-currency/input-currency.component.ts","../../../projects/bpm-core/src/lib/components/shared-components/form-field/input-currency/input-currency.component.html","../../../projects/bpm-core/src/lib/components/shared-components/form-field/input-autocomplete/index.ts","../../../projects/bpm-core/src/lib/components/shared-components/form-field/input-telephone/input-telephone.component.ts","../../../projects/bpm-core/src/lib/components/shared-components/form-field/input-telephone/input-telephone.component.html","../../../projects/bpm-core/src/lib/components/shared-components/form-field/search-employee/search-employee.component.ts","../../../projects/bpm-core/src/lib/components/shared-components/form-field/search-employee/search-employee.component.html","../../../projects/bpm-core/src/lib/components/shared-components/form-field/select/select.component.ts","../../../projects/bpm-core/src/lib/components/shared-components/form-field/select/select.component.html","../../../projects/bpm-core/src/lib/components/shared-components/form-field/textarea/textarea.component.ts","../../../projects/bpm-core/src/lib/components/shared-components/form-field/textarea/textarea.component.html","../../../projects/bpm-core/src/lib/components/shared-components/form-field/textarea/special-chars.directive.ts","../../../projects/bpm-core/src/lib/components/shared-components/form-field/toggle-button/toggle-button.component.ts","../../../projects/bpm-core/src/lib/components/shared-components/form-field/toggle-button/toggle-button.component.html","../../../projects/bpm-core/src/lib/components/shared-components/form-field/repeated-list/repeated-list.component.ts","../../../projects/bpm-core/src/lib/components/shared-components/form-field/repeated-list/repeated-list.component.html","../../../projects/bpm-core/src/lib/components/shared-components/form-field/table-list/table-list.component.ts","../../../projects/bpm-core/src/lib/components/shared-components/form-field/table-list/table-list.component.html","../../../projects/bpm-core/src/lib/components/shared-components/form-field/doc-uploader/docs-uploader.component.ts","../../../projects/bpm-core/src/lib/components/shared-components/form-field/doc-uploader/docs-uploader.component.html","../../../projects/bpm-core/src/lib/components/shared-components/form-field/add-attachment-section/add-attachment-section.component.ts","../../../projects/bpm-core/src/lib/components/shared-components/form-field/add-attachment-section/add-attachment-section.component.html","../../../projects/bpm-core/src/lib/components/shared-components/form-field/attachment-section/attachment-section.component.ts","../../../projects/bpm-core/src/lib/components/shared-components/form-field/attachment-section/attachment-section.component.html","../../../projects/bpm-core/src/lib/components/shared-components/form-field/radio/radio.component.ts","../../../projects/bpm-core/src/lib/components/shared-components/form-field/radio/radio.component.html","../../../projects/bpm-core/src/lib/helpers/shared.helper.ts","../../../projects/bpm-core/src/lib/enums/colors.enum.ts","../../../projects/bpm-core/src/lib/enums/events.enum.ts","../../../projects/bpm-core/src/lib/enums/actions.enum.ts","../../../projects/bpm-core/src/lib/directives/skip-location.directive.ts","../../../projects/bpm-core/src/lib/components/shared-components/table/table.component.ts","../../../projects/bpm-core/src/lib/components/shared-components/table/table.component.html","../../../projects/bpm-core/src/lib/components/app-component-sections/approvals/approvals.component.ts","../../../projects/bpm-core/src/lib/components/app-component-sections/approvals/approvals.component.html","../../../projects/bpm-core/src/lib/components/app-component-sections/approvals-workflow/approvals-workflow.component.ts","../../../projects/bpm-core/src/lib/components/app-component-sections/approvals-workflow/approvals-workflow.component.html","../../../projects/bpm-core/src/lib/components/shared-components/action-buttons/action-buttons.component.ts","../../../projects/bpm-core/src/lib/components/shared-components/action-buttons/action-buttons.component.html","../../../projects/bpm-core/src/lib/components/app-component-sections/faqs/faqs.component.ts","../../../projects/bpm-core/src/lib/components/app-component-sections/faqs/faqs.component.html","../../../projects/bpm-core/src/lib/components/app-component-sections/faq-sidenav/faq-sidenav.component.ts","../../../projects/bpm-core/src/lib/components/app-component-sections/faq-sidenav/faq-sidenav.component.html","../../../projects/bpm-core/src/lib/components/shared-components/title-section/title-section.component.ts","../../../projects/bpm-core/src/lib/components/shared-components/title-section/title-section.component.html","../../../projects/bpm-core/src/lib/components/app-component-sections/profile-section/profile-section.component.ts","../../../projects/bpm-core/src/lib/components/app-component-sections/profile-section/profile-section.component.html","../../../projects/bpm-core/src/lib/interfaces/form.interface.ts","../../../projects/bpm-core/src/lib/components/app-component-sections/feedback-section/feedback-section.component.ts","../../../projects/bpm-core/src/lib/components/app-component-sections/feedback-section/feedback-section.component.html","../../../projects/bpm-core/src/lib/components/app-component-sections/activities/activities.component.ts","../../../projects/bpm-core/src/lib/components/app-component-sections/activities/activities.component.html","../../../projects/bpm-core/src/lib/pipes/status-style.pipe.ts","../../../projects/bpm-core/src/lib/components/app-component-sections/previous-requests/previous-requests.component.ts","../../../projects/bpm-core/src/lib/components/app-component-sections/previous-requests/previous-requests.component.html","../../../projects/bpm-core/src/lib/components/app-component-sections/service-header/service-header.component.ts","../../../projects/bpm-core/src/lib/components/app-component-sections/service-header/service-header.component.html","../../../projects/bpm-core/src/lib/components/app-component-sections/status/status.component.ts","../../../projects/bpm-core/src/lib/components/app-component-sections/status/status.component.html","../../../projects/bpm-core/src/lib/components/app-component-sections/form-section/form-section.component.ts","../../../projects/bpm-core/src/lib/components/app-component-sections/form-section/form-section.component.html","../../../projects/bpm-core/src/lib/components/app-component-sections/main-request-details/main-request-details.component.ts","../../../projects/bpm-core/src/lib/components/app-component-sections/main-request-details/main-request-details.component.html","../../../projects/bpm-core/src/lib/components/app-component-sections/workflow-section/workflow-section.component.ts","../../../projects/bpm-core/src/lib/components/app-component-sections/workflow-section/workflow-section.component.html","../../../projects/bpm-core/src/lib/components/app-component-sections/layout/header/header.component.ts","../../../projects/bpm-core/src/lib/components/app-component-sections/layout/header/header.component.html","../../../projects/bpm-core/src/lib/components/app-component-sections/layout/side-nav/side-nav.component.ts","../../../projects/bpm-core/src/lib/components/app-component-sections/layout/side-nav/side-nav.component.html","../../../projects/bpm-core/src/lib/components/app-component-sections/layout/layout.component.ts","../../../projects/bpm-core/src/lib/components/app-component-sections/layout/layout.component.html","../../../projects/bpm-core/src/lib/testComponent/request-details-section/request-details-section.component.ts","../../../projects/bpm-core/src/lib/testComponent/request-details-section/request-details-section.component.html","../../../projects/bpm-core/src/lib/testComponent/general-approver-section/general-approver-section.component.ts","../../../projects/bpm-core/src/lib/testComponent/general-approver-section/general-approver-section.component.html","../../../projects/bpm-core/src/lib/testComponent/config/segment-dynamic-loader.config.ts","../../../projects/bpm-core/src/lib/testComponent/services/i18n.service.ts","../../../projects/bpm-core/src/lib/testComponent/services/segment-dynamic-loader.service.ts","../../../projects/bpm-core/src/lib/app/app.component.ts","../../../projects/bpm-core/src/lib/app/app.component.html","../../../projects/bpm-core/src/lib/functions/encode-password.ts","../../../projects/bpm-core/src/lib/functions/is-valid-data.ts","../../../projects/bpm-core/src/lib/functions/handel-error-response.ts","../../../projects/bpm-core/src/lib/functions/data-to-blob.ts","../../../projects/bpm-core/src/lib/classes/form-validation.ts","../../../projects/bpm-core/src/lib/hooks/load-form.ts","../../../projects/bpm-core/src/lib/validators/id.validator.ts","../../../projects/bpm-core/src/lib/validators/text.directive.ts","../../../projects/bpm-core/src/lib/validators/string-to-boolean.pipe.ts","../../../projects/bpm-core/src/lib/validators/timer.pipe.ts","../../../projects/bpm-core/src/lib/validators/index.ts","../../../projects/bpm-core/src/public-api.ts","../../../projects/bpm-core/src/bpm-core.ts"],"sourcesContent":["// Constant for basic validations\r\nexport const DONT_SHOW = null;\r\nexport const NO_COMMENTS = false;\r\nexport const HAS_COMMENTS = true;\r\nexport const URL_SEPARATOR = '/';\r\nexport const READ_ONLY = true;\r\nexport const WRITE_MODE = false;\r\nexport const NO_VALUE = null;\r\nexport const TRUE_STRING = 'TRUE';\r\nexport const FALSE_STRING = 'FALSE';\r\nexport const TRUE_BOOL = true;\r\nexport const FALSE_BOOL = false;\r\n\r\n// State Machine statuses\r\nexport const STATE_MACHINE_STATUS_IDLE = 'idle';\r\nexport const STATE_MACHINE_STATUS_FETCHING = 'fetching';\r\nexport const STATE_MACHINE_STATUS_SENDING = 'sending';\r\nexport const STATE_MACHINE_STATUS_RESULT = 'result';\r\nexport const STATE_MACHINE_STATUS_ERROR = 'error';\r\n\r\n// State Machine actions\r\nexport const STATE_MACHINE_ACTION_LOAD_FORM = 'loadForm';\r\nexport const STATE_MACHINE_ACTION_SUBMIT_FORM = 'submitForm';\r\nexport const STATE_MACHINE_ACTION_SEARCH_EMPLOYEE = 'searchEmployee';\r\nexport const STATE_MACHINE_ACTION_EMPLOYEE_PROFILE = 'employeeProfile';\r\nexport const STATE_MACHINE_ACTION_SUCCESS_WM = 'successWm';\r\nexport const STATE_MACHINE_ACTION_SUCCESS_RESPONSE = 'serviceResponce';\r\nexport const STATE_MACHINE_ACTION_SUCCESS_USERS = 'successUsers';\r\nexport const STATE_MACHINE_ACTION_CONVERT = 'convert';\r\nexport const STATE_MACHINE_ACTION_SUCCESS = 'success';\r\nexport const STATE_MACHINE_ACTION_FAILURE = 'failure';\r\nexport const STATE_MACHINE_ACTION_HANDLE_ERROR = 'handleError';\r\nexport const STATE_MACHINE_ACTION_LOAD_FILE = 'loadFile';\r\nexport const STATE_MACHINE_ACTION_USER_MAF = 'userDetails';\r\nexport const STATE_MACHINE_ACTION_USER_CEP = 'user';\r\nexport const STATE_MACHINE_ACTION_CALC = 'calc';\r\n\r\n\r\nexport const STATE_MACHINE_ACTION_SHOW_PRINT = 'showPrint';\r\nexport const STATE_MACHINE_ACTION_SUCCESS_PRINT = 'successPrint';\r\nexport const SERVICE_NAME_WM_HTML_GENERATOR = 'htmlGenerator';\r\n\r\n// Process name code\r\nexport const PROCESS_NAME_CODE = 'SCR';\r\n\r\n// HTTP protocols that are available\r\nexport const HTTP_PROTOCOL_HTTP = 'http://';\r\nexport const HTTP_PROTOCOL_HTTPS = 'https://';\r\n\r\n// Liferay constants\r\n// export const LR_AUTH_SERVICE_URL_PATH = '/group/i-gate/wm-bpm/forms/-/proxy/authenticate';\r\n// export const LR_SERVICE_URL_PATH = '/group/i-gate/wm-bpm/forms/-/proxy/execute';\r\n// export const LR_SERVICE_URL_HOST = '10.0.0.48';\r\n// export const LR_SERVICE_URL_HOST_DEV = '10.0.0.156';\r\n// export const LR_SERVICE_URL_PORT_DEV = '8000';\r\n// export const LR_SERVICE_URL_PATH_DEV = '/new.json';\r\n// export const LR_SERVICE_URL_PORT = '17899';\r\n\r\n// HTTP methods that are available are\r\nexport const HTTP_METHOD_GET = 'GET';\r\nexport const HTTP_METHOD_POST = 'POST';\r\nexport const HTTP_METHOD_PUT = 'PUT';\r\n\r\n// Available servers to the UI\r\nexport const TARGET_SERVER_WM = 'WM';\r\nexport const TARGET_SERVER_DP = 'DP';\r\n\r\n// Service Names that are available\r\nexport const SERVICE_NAME_WM_FORM = 'form';\r\nexport const SERVICE_NAME_WM_CHILD_FORM = '';\r\nexport const SERVICE_NAME_DP_SEARCH_EMPLOYEE = 'igate.users.search.v3';\r\n\r\n// Languages codes available in the application\r\nexport const LANGUAGE_CODE_EN = 'en';\r\nexport const LANGUAGE_CODE_AR = 'ar';\r\n\r\n// URLs form static assets\r\nexport const IGATE_STATIC_ASSET_PROFILE_PHOTO_URL = '/group/i-gate/wm-bpm/forms/-/proxy/portrait?email=';\r\nexport const HEADER_CONTENT_TYPE_FORM = 'application/x-www-form-urlencoded';\r\n\r\n// Roles constants\r\nexport const ROLE_REQUESTER = 'R';\r\n\r\n// Section IDs\r\nexport const SECTION_ID_REQUEST_DETAILS = 'requestDetails';\r\nexport const SECTION_ID_GM_PARTIAL_ROLE = 'GM';\r\nexport const SECTION_ID_SM_PARTIAL_ROLE = 'SM';\r\nexport const SECTION_ID_DM_PARTIAL_ROLE = 'DM';\r\nexport const SECTION_ID_VP_PARTIAL_ROLE = 'VP';\r\nexport const SECTION_ID_SVP_PARTIAL_ROLE = 'SVP';\r\nexport const SECTION_ID_EXECUTE_PARTIAL_ROLE = 'GovtRelationsLead';\r\nexport const SECTION_ID_PERFORM_PARTIAL_ROLE = 'GovtRelationsMember';\r\nexport const SECTION_ID_EMP_INFO_APPROVAL_PARTIAL_ROLE = 'EmpInfo';\r\nexport const SECTION_ID_PAYROLL_APPROVAL_PARTIAL_ROLE = 'Payroll';\r\n\r\nexport const SECTION_ID_REQUESTER_PARTIAL_NAME = 'Requester';\r\nexport const SECTION_ID_APPROVAL_PARTIAL_NAME = 'Approval';\r\nexport const SECTION_ID_NOTHING_PARTIAL_NAME = '';\r\n\r\nexport const SECTION_STATUS_PENDING = 'PENDING';\r\nexport const SECTION_STATUS_APPROVED = 'APPROVED';\r\nexport const SECTION_STATUS_UNSATISFIED = 'UNSATISFIED';\r\n\r\nexport const WM_ACTION_SAVE = 'SAVE';\r\nexport const WM_ACTION_SUBMIT = 'SUBMIT';\r\n\r\nexport const FORM_STATUS_NEW = 'NEW';\r\nexport const FORM_STATUS_PENDING = 'PENDING';\r\nexport const FORM_STATUS_APPROVED = 'APPROVED';\r\nexport const FORM_STATUS_APPROVE = 'APPROVE';\r\nexport const FORM_STATUS_REJECTED = 'REJECTED';\r\nexport const FORM_STATUS_REJECT = 'REJECT';\r\nexport const FORM_STATUS_SEND_BACK = 'SENDBACK';\r\nexport const FORM_STATUS_CANCELLED= 'CANCELLED';\r\nexport const FORM_STATUS_CANCEL= 'CANCEL';\r\nexport const FORM_STATUS_COMPLETED = 'COMPLETED';\r\n\r\nexport const STATE_MACHINE_ACTION_LOAD_HISTORY = 'loadHistory';\r\nexport const STATE_MACHINE_ACTION_SUCCESS_HISTORY = 'successHistory';\r\nexport const SERVICE_NAME_DP_LOAD_HISTORY = 'igate.get.inbox.item.workflow';\r\nexport const WM_ACTION_SAVE_CHANGES = 'SAVE_CHANGES';\r\nexport const SERVICE_NAME_WM_DRAFT_FORM = 'draft';\r\n\r\n// feedback and flag\r\nexport const STATE_MACHINE_ACTION_GET_INBOX_ITEM = 'getInboxItem';\r\nexport const SERVICE_NAME_DP_INBOX_ITEM = 'igate.get.inbox.item';\r\nexport const STATE_MACHINE_ACTION_SUCCESS_INBOX_ITEM = 'successInboxItem';\r\n\r\nexport const STATE_MACHINE_ACTION_SET_FLAG = 'setFlagPriority';\r\nexport const SERVICE_NAME_DP_UPDATE_INBOX_ITEM = 'igate.update.inbox.item';\r\nexport const STATE_MACHINE_ACTION_INBOX_ITEM_RESPONSE = 'inboxItemResponse';\r\n\r\nexport const FEEDBACK_STATUS_REQUEST = 'requestFeedback';\r\nexport const FEEDBACK_STATUS_RESPOND = 'respondToFeedback';\r\nexport const FEEDBACK_STATUS_WAITING = 'waitingFeedback';\r\nexport const FEEDBACK_STATUS_RESPONDED = 'feedbackResponded';\r\n\r\n\r\nexport const STATE_MACHINE_ACTION_SUBMIT_FEEDBACK = 'submitFeedback';\r\nexport const STATE_MACHINE_ACTION_GET_FEEDBACK = 'getFeedback';\r\nexport const STATE_MACHINE_ACTION_UPDATE_FEEDBACK = 'submitFeedbackResponse';\r\nexport const SERVICE_NAME_DP_CREATE_FEEDBACK = 'igate.create.inbox.item.feedback';\r\nexport const STATE_NAME_DP_GET_FEEDBACK = 'igate.get.inbox.item.feedback';\r\nexport const SERVICE_NAME_DP_UPDATE_FEEDBACK = 'igate.update.inbox.item.feedback';\r\n\r\n\r\nexport const PROFILE_CONTAINER = '#profileFormContent';\r\nexport const COMMENT_CONTAINER = '#commentsFormContent';\r\nexport const FEEDBACK_CONTAINER = '#feedbackFormContent';\r\nexport const INBOX_STATUS_PENDING = 'pending';\r\nexport const INBOX_STATUS_PROCESSED = 'processed';\r\nexport const INBOX_STATUS_SENT = 'sent';\r\nexport const REPORT = 'report';\r\nexport const DATE_TIME = 'DD/MM/YYYY HH:mm:ss';\r\nexport const DATE_DASH = 'DD-MMM-YYYY';\r\nexport const DATE_SLASH = 'DD/MM/YYYY';\r\n\r\n\r\nexport const SERVICE_NAME_WM_GET_APPROVED_REQUEST = 'requests' ;\r\nexport const SERVICE_NAME_WM_GET_MY_APPROVED_REQUEST = 'myRequests' ;\r\nexport const STATE_MACHINE_ACTION_GET_APPROVED_REQUEST = 'getApprovedRequest';\r\nexport const STATE_MACHINE_ACTION_GET_APPROVED_REQUEST_RESPONSE = 'getApprovedRequestResponse' ;\r\n\r\n\r\nexport const STATE_MACHINE_ACTION_PROJECT_MAF = 'projectDetails';\r\nexport const STATE_MACHINE_ACTION_PROJECT_CEP = 'project';\r\nexport const STATE_MACHINE_ACTION_COMMONAPI = 'commonApi';\r\nexport const STATE_MACHINE_ACTION_SEARCH = 'search';\r\nexport const STATE_MACHINE_ACTION_PPROVED_REQUESTS = 'approvedRequests';\r\nexport const GETSIPORTENTRYGROUPS = 'getSiportEntryGroups';\r\nexport const GETSIPORTENTRYLOCATIONS = 'getSiportEntryLocations';\r\nexport const STATE_MACHINE_ACTION_SUCCESS_SERVICES= 'serviceResponce';\r\nexport const SERVICE_NAME_MAF = 'MAF';\r\nexport const SERVICE_NAME_CEP = 'CEP';\r\nexport const STATE_MACHINE_ACTION_PDF = 'pdfAttachments';\r\n\r\nexport const LOGOUT_URL = '/c/portal/logout';\r\n\r\nexport const WORKFLOW_ITEMS = 'workflowItems';\r\nexport const APPROVERS = 'approvers';\r\n","export default {\r\n \"pageTimeOut\": 'Looks like the server is taking too long to respond, this can be caused by either poor connectivity or an error with our servers. Please try again in a while',\r\n \"pageErrorLoading\":'An error occurred, Please try after sometimes. If the error continues, please contact the IT Helpdesk',\r\n // Buttons\r\n \"reset\": \"Reset\",\r\n \"submit\": \"Submit\",\r\n // Select\r\n \"selectYourOption\": \"Select your option\",\r\n // Labels\r\n \"optional\": \"Optional\",\r\n \"Optional\": \"Optional\",\r\n //Buttons\r\n \"browse\": \"Browse\",\r\n // Request Details Title\r\n \"requestDetailsTitle\":\"Request Details\",\r\n \"hrRequestDetailsTitle\":\"Request Details (Grievance Employee)\",\r\n \"applyRequestFor\": 'Apply Request For',\r\n \"searchForEmployee\":'Search for employee',\r\n // Profile Info Labels\r\n \"directManager\": \"Direct Manager\",\r\n \"employeeEmail\": \"Email\",\r\n \"generalDepartmentName\": \"General Dep.Name\",\r\n \"departmentName\": \"Department\",\r\n \"generalDepartmentCode\": \"General Dep. Code\",\r\n \"humanResourcesLocation\": \"HR location\",\r\n \"nationality\": \"Nationality\",\r\n \"businessPhone\": \"Business Phone\",\r\n \"viewAllDetails\": \"View All Details\",\r\n \"jobPosition\": \"Job Position\",\r\n \"sector\": \"Sector\",\r\n // Form Section labels\r\n \"delegateTo\": \"Delegated to\",\r\n \"processedBy\":\"Processed by\",\r\n // Datepicker labels\r\n \"gregorian\": \"Gregorian\",\r\n \"hijri\": \"Hijri\",\r\n // Messages\r\n \"successSubmited\": \"Thank you for submitting this form\",\r\n \"lenghtMin15Max500\":\"Please enter minimum 15 characters and maximum 500 characters\",\r\n \"lenghtMin15Max1000\":\"Please enter minimum 15 characters and maximum 1000 characters\",\r\n \"minLength15\": \"Please enter a minimum of 15 characters\",\r\n \"maxlength500\": \"500 is the maximum number of characters supported\",\r\n \"maxSize\": \"Maximum file size is 10MB\",\r\n \"unsupportedType\": \"Maximum file size allowed is 10MB and accepted extensions are (pdf, doc, docx, ppt, pptx, pps, ppsx, odt, xls, xlsx, zip, msg, csv, txt, rtf, html, mp4, m4v, mov, wmv, avi, mpg, ogv, 3gp, 3g2, jpg, jpej, png, gif, bmp)\",\r\n \"unsupportedTypeImgPdf\": \"Maximum file size allowed is 10MB and accepted extensions are (pdf, jpg, jpej, png, bmp)\",\r\n \"unsupportedTypeImgPdf2\": \"Maximum file size allowed is 10MB and accepted extensions are (pdf, docx, xlsx, jpg, email, pptx)\",\r\n \"unsupportedTypeImg\": \"Maximum file size allowed is 10MB and accepted extensions are (jpg, jpej, png, bmp)\",\r\n \"unsupportedTypePdf\": \"Maximum file size allowed is 10MB and accepted extension is (pdf)\",\r\n \"noUsersFound\": \"Please enter valid search data\",\r\n // Submit Table\r\n \"formTableFormId\": \"Form ID\",\r\n \"formTableFormStatus\": \"Form Status\",\r\n \"formTableCreationDate\": \"Creation Date\",\r\n \"formTablePendingWith\": \"Pending With\",\r\n \"formTableBackToInbox\": \"Back to Inbox\",\r\n // feedback\r\n \"requestFeedback\": \"Request Feedback\",\r\n \"requestTo\": \"Request To\",\r\n \"feedback\": \"Feedback\",\r\n \"viewFeedback\": \"View Feedback\",\r\n \"requestFrom\": \"Request From\",\r\n \"feedbackQuestion\": \"Feedback Question\",\r\n \"employeeSearch\": \"Employee Search\",\r\n \"searchEmployeeTooltip_1\": \"Enter minimum 3 character to start employee search\",\r\n \"searchEmployeeTooltip_2\": \"Type umber to search by employee number\",\r\n \"searchEmployeeTooltip_3\": \"To search by email. use @ before or after search character\",\r\n \"searchEmployeeTooltip_4\": \"Seperate First name, Second Name, Family Name with space to search by First Name, Second Name and Family Name\",\r\n \"onBehalfFlag\":\"Request On-behalf\",\r\n \"onBehalfOfEmail\":\"Employee Name\",\r\n \"commentHistory\":\"Comments History\",\r\n \"NODATA\": 'No Data',\r\n \"termsAndConditions\": 'Terms And Conditions',\r\n \"no-files\": \" No documents attached\",\r\n \"drag-files\": \"Drag and drop file here\",\r\n \"limit-error\": \"limit error\",\r\n \"size-error\": \"size error\",\r\n \"type-error\": \"type error\",\r\n \"duplicated-error\": \"This file already exist\",\r\n \"thisIsInvalidFile\": 'This is invalid file',\r\n \"add\": \"Add\",\r\n \"addAttachments\": \"Add Attachments\",\r\n \"attachmentdescription\": \"File Description\",\r\n \"attachmentcomment\": \"Comments\",\r\n // \"attachment\": \"Attachment\",\r\n \"addAttachment\": \"Add Attachment\",\r\n \"locationOfIncident\": \"Location Of The Incident\",\r\n \"FileName\": \"File Name\",\r\n \"FileDescription\": \"File Description\",\r\n // \"delete\": \"Delete\",\r\n \"Attachments\":\"Attachments\",\r\n \"Attachment\":\"Attachment\",\r\n \"comment\":\"Comments\",\r\n \"comments\":\"Comments\",\r\n \"description\":\"Description\",\r\n \"MyRequests\": \"My Requests\",\r\n \"processingDate\":\"Processing Date\",\r\n \"Approvals\":\"Approvals\",\r\n \"submittedSuccessfully\": \"Your request submitted successfully\",\r\n \"support\": \" Supported files: JPG,PNG & PDF\",\r\n \"support2\": \"Maximum file size allowed is \",\r\n \"mb\": \"MB\",\r\n \"support3\": \"Maximum file size is 300 KB\",\r\n \"maxAllowedSize\": \"Maximum file size allowed is 10MB\",\r\n \"ViewDetails\":\"View Details\",\r\n \"NoData2\": \"No Data found\",\r\n \"NoData1\": \"No Comments found\",\r\n \"NoData\": \"No Data found\",\r\n \"Filters\": \"Filter\",\r\n \"ApplyFilters\": \"Apply\",\r\n \"Discard\": \"Discard\",\r\n \"employeeID\": \"Employee ID\",\r\n \"Delete\": \"Delete\",\r\n \"fullName\":\"Full Name\",\r\n \"welcomeBack\": \"Welcome back\",\r\n \"welcome\": \"Welcome \",\r\n \"logout\": \"Logout\",\r\n \"otherLang\": \"العربية\",\r\n \"Hello\": \"Hello\",\r\n \"Cancel\":\"Cancel\",\r\n \"validEmailError\": 'Please enter valid Email ',\r\n \"validFieldError\": 'Please enter valid ',\r\n \"validSelectError\": 'Please select ',\r\n \"validSearchError\": 'Please search for valid ',\r\n \"delete\": \"Delete\",\r\n \"Areyousureyouwantdelete\":\"Are you sure you want to delete?\",\r\n \"drf-confirmatton-msg\":\"There are still pending stakeholders actions. Please confirm if you want to move to the next level without these actions.\",\r\n \"Yes-Proceed\":\" Yes - Proceed\",\r\n \"No-Discard\":\"No - Discard\",\r\n \"yes\":\" Yes, Delete\",\r\n \"NoAttachments\": \"There are no Attachments\",\r\n \"cancel\": \"Cancel\",\r\n \"View\":\"View\",\r\n \"edit\":\"Edit\",\r\n \"Viewapprovalcycle\": \"View Approval Cycle\",\r\n \"approvalCycle\": \"Approval Cycle\",\r\n \"link\":\"Link\",\r\n\r\n\r\n AttachmentInvoices: 'Attachment Invoices',\r\n AttachmentsOfBank:'Attachments of Bank Statement or Credit Card',\r\n DepositVoucherAttachments:'Deposit Voucher Attachments',\r\n placeholder: 'Enter value here',\r\n approve:'Approve',\r\n downloadLink:\"Download Link\",\r\n serviceBrief : \"Service Brief\",\r\n PreviousRequests:\"Previous Requests\",\r\n 'Product Implementation': 'Product Implementation',\r\n 'Sales Order and Quality Assurance':'Sales Order and Quality Assurance',\r\n 'Billing Support and Contracts':'Billing Support and Contracts',\r\n 'Sales Excellence':'Sales Excellence',\r\n 'Order Engineering and Delivery Management':'Order Engineering and Delivery Management',\r\n 'Third Party Control and Projects':'Third Party Control and Projects',\r\n 'Enterprise Customer Care':'Enterprise Customer Care',\r\n 'Enterprise Account Sales':'Enterprise Account Sales',\r\n 'Government Accounts Sales':'Government Accounts Sales',\r\n 'Marketing Communications':'Marketing Communications',\r\n 'Customer Experience Excellence':'Customer Experience Excellence',\r\n 'Commercial Regulation':'Commercial Regulation',\r\n 'Enterprise Commercial Finance':'Enterprise Commercial Finance',\r\n 'Product Pricing and Profitability':'Product Pricing and Profitability',\r\n 'Data Protection and Privacy':'Data Protection and Privacy',\r\n 'Customer Value Management':'Customer Value Management',\r\n\r\n termNote1: \"1. The requesting department is responsible for the validity of the attached papers and supervision of labor\",\r\n termNote2: \"2. The worker must be on the sponsorship of the contracting company. In the case of subcontracting, the contract between the two parties must be attached, signed, stamped and updated. And the worker must be on the sponsorship of the subcontracting company\",\r\n termNote3: \"3. The profession of the worker in his residence must be identical to his work and in accordance with the nature of his work\",\r\n termNote4: \"4. For persons who attend a visit visa, a valid visit visa must be attached, with attachment of proof of the relationship with the stc company, either (contract / or letter from the requesting party stating the mission of the visit to the company (stc)). They will be granted a permission for the duration of their stay with the visa.\",\r\n termNote5: \"5. The entry permit card must not be used by someone else, and should be returned to the security department once you're finished. In case it is lost, please call Security and Safety Department 8001231616 or 0114251616 (the main center). A new entry permit application is required to be exchanged for a lost card. With a fine of 500 riyals for the first time and 1000 riyals for the second time, and on the third time it is forbidden to enter and referred to the relevant government agencies.\",\r\n termNote6: \"6. The contracting company bears all legal consequences of any damage caused by the worker inside the work sites of the company (stc).\",\r\n termNote7: \"7. We hope to print the form (from the print button at the top of the form) after approval by the Card Services Division, and bring it upon review to issue a card.\",\r\n termNote8: \"8. The main contractor and subcontractors shall comply with safety and security instructions as stipulated in the contracts concluded with all the contractors of the company (stc) and subject to periodic inspection procedures for the sites by safety inspectors to ensure compliance with safety instructions and safe work policy and violations. Financial violations and fines will be released if they are shown and described in financial values via vendor relations department:\",\r\n termNote9: \"9. The requesting department shall include the technical reports recommended for exchange and safety violations, if any. It is deducted from the entitlement, in implementation of the list of fines and penalties for safety violations against contractors signed by the Vice President for Procurement.\",\r\n termNote10: \"10. Collecting the ID cards of the main center in the card-issuing center-Gate 3 , as for the rest of the regions, you can collect it from the Department of Security of Regions.\",\r\n termNote11: \"11. The list of penalties and fines is applied to vehicles violators inside the STC sites where the violating vehicles are stopped by putting the brakes on them, and the company fully disclaims any damage caused by the brake upon tying or untying\",\r\n \"messageErrorPhoneNumber\": \"Please enter valid mobile number.\",\r\n serviceAgreement: \"Service agreement\",\r\n lengthError: \"can't upload more than\",\r\n userAlreadyExist: \"User already exists\",\r\n INTERNAL: 'Internal: Make the document/record available for viewing within the company only',\r\n SPECIFIC_OR_CONFIDENTIAL: 'Specific or confidential: Publication of the document/record with viewing permit limited to: <br>* Specific Names <br>* Specific organizational unit <br>* Specific administrative levels',\r\n AVAILABLE: 'Available: make the document/record available for viewing within and outside the company.',\r\n other:'Other',\r\n others:'Others',\r\n selectAll:'Select All',\r\n URGENT: '1 day',\r\n NORMAL: '3 days',\r\n select: 'Select',\r\n addMultiAttachments:\"Add Multi Attachments\",\r\n flagStatusUpdated:\"Flag status updated successfully\",\r\n \"AllRequests\": \"All Requests\",\r\n \"applyFilters\": \"Apply Filters\",\r\n \"clear\": \"Clear\",\r\n \"filters\": \"Filters\",\r\n month: \"Month\",\r\n year: \"Year\",\r\n status: \"Status\",\r\n downloadAll:'Download All Attachment',\r\n itemsPerPage:\"Items per page\",\r\n thisFieldIsRequired: \"This field is required\",\r\n thisFieldMaxLength: \"This field max length\",\r\n thisFieldMinLength: \"This field min length\",\r\n pleaseEnterValidNumber: \"Please enter valid number\",\r\n startDate: \"Start Date\",\r\n endDate: \"End Date\",\r\n textArea: \"Text area\"\r\n}\r\n","export default {\r\n pageErrorLoading: \"حدث خطأ، يرجى المحاولة لاحقا. إذا استمر الخطأ، يرجى الاتصال بمكتب مساعدة تقنية المعلومات\",\r\n pageTimeOut:\"يبدو أن الخادم يستغرق وقتًا طويلاً للرد، وقد يحدث هذا بسبب ضعف الاتصال أو خطأ في خوادمنا. يرجى المحاولة مرة أخرى بعد قليل\",\r\n // Buttons\r\n \"reset\": \"إعادة تهيئة\",\r\n \"submit\": \"إرسال\",\r\n // Select\r\n \"selectYourOption\": \"الرجاء الإختيار\",\r\n // Labels\r\n \"optional\": \"إختياري\",\r\n \"Optional\": \"إختياري\",\r\n //Buttons\r\n \"browse\": \"تصفح\",\r\n \"MyRequests\": \"طلباتي\",\r\n \"maxAllowedSize\": \"حجم الملف يجب ألا يتعدى 10 ميغابايت\",\r\n // Request Details Title\r\n \"requestDetailsTitle\":\"تفاصيل الطلب\",\r\n \"hrRequestDetailsTitle\":\"تفاصيل الطلب (الموارد البشرية)\",\r\n \"applyRequestFor\": \"تقديم الطلب لـ\",\r\n \"searchForEmployee\":\"البحث عن موظف\",\r\n // Profile Info labels\r\n \"directManager\": \"المدير المباشر\",\r\n \"employeeEmail\": \"البريد الإلكتروني\",\r\n \"generalDepartmentName\": \"الإدارة العامة\",\r\n \"departmentName\": \"القسم\",\r\n \"generalDepartmentCode\": \"رمز الإدارة العامة\",\r\n \"humanResourcesLocation\": \"شئون الموظفين\",\r\n \"nationality\": \"الجنسية\",\r\n \"businessPhone\": \"هاتف العمل\",\r\n \"Viewapprovalcycle\": \"عرض دورة الموافقة\",\r\n \"approvalCycle\": \" دورة الموافقة\",\r\n \"viewAllDetails\": \"عرض جميع التفاصيل\",\r\n \"jobPosition\": \"الوظيفة\",\r\n \"sector\": \"القطاع\",\r\n // Form Section labels\r\n \"delegateTo\": \"فوض\",\r\n \"processedBy\":\"تمت معالجته بواسطة\",\r\n // Datepicker labels\r\n \"gregorian\": \"ميلادي\",\r\n \"hijri\": \"هجري\",\r\n // Messages\r\n \"successSubmited\": \".شكراً لإرسالك النموذج\",\r\n \"lenghtMin15Max500\":\"الرجاء إدخال 15 حرف كحد أدنى و 500 حرف كحد أقصى\",\r\n \"lenghtMin15Max1000\":\"الرجاء إدخال 15 حرف كحد أدنى و 1000 حرف كحد أقصى\",\r\n \"minLength15\": \"الرجاء كتابة 15 حرف بحد أدنى\",\r\n \"maxlength500\": \"الحد الأقصى المسموح 500 حرف\",\r\n \"maxSize\": \"حجم الملف يجب ألا يتعدى 10 ميغابايت\",\r\n \"unsupportedType\": \"الحد الأقصى المسموح لحجم الملف 10 ميجابيت و أنواع الملفات المسموح إضافتها pdf, doc, docx, ppt, pptx, pps, ppsx, odt, xls, xlsx, zip, csv, txt, rtf, html, mp4, m4v, mov, wmv, avi, mpg, ogv, 3gp, 3g2, jpg, jpej, png, gif, bmp\",\r\n \"unsupportedTypeImgPdf\": \"الحد الأقصى المسموح لحجم الملف 10 ميجابيت و أنواع الملفات المسموح إضافتها (pdf, jpg, jpej, png, bmp)\",\r\n \"unsupportedTypeImgPdf2\": \"الحد الأقصى المسموح لحجم الملف 10 ميجابيت و أنواع الملفات المسموح إضافتها (pdf, docx, xlsx, jpg, email, pptx)\",\r\n \"unsupportedTypeImg\": \"الحد الأقصى المسموح لحجم الملف 10 ميجابيت و أنواع الملفات المسموح إضافتها (jpg, jpej, png, bmp)\",\r\n \"unsupportedTypePdf\": \"الحد الأقصى المسموح لحجم الملف 10 ميجابيت و أنواع الملفات المسموح إضافتها (pdf)\",\r\n \"noUsersFound\": \"الرجاء إدخال بيانات البحث بشكل صحيح\",\r\n // Submit Table\r\n \"formTableFormId\": \"رقم النموذج\",\r\n \"formTableFormStatus\": \"حالة النموذج\",\r\n \"formTableCreationDate\": \"تاريخ النموذج\",\r\n \"formTablePendingWith\": \"في انتظار\",\r\n \"formTableBackToInbox\": \"عودة إلى البريد الوارد\",\r\n // feedback\r\n \"requestFeedback\":\"طلب إفادة\",\r\n \"requestTo\": \"أرسل الى\",\r\n \"feedback\": \"إفادة\",\r\n \"viewFeedback\": \"إظهار الإفادة\",\r\n \"requestFrom\": \"مرسلة من\",\r\n \"feedbackQuestion\": \"سؤال الإفادة\",\r\n \"employeeSearch\": \"البحث عن موظف\",\r\n \"searchEmployeeTooltip_1\": \"أدخل ثلاثة أحرف بحد أدنى لتبدأ البحث عن الموظف\",\r\n \"searchEmployeeTooltip_2\": \"أدخل رقم للبحث برقم الموظف\",\r\n \"searchEmployeeTooltip_3\": \"للبحث بالعنوان البريدي أدخل @ قبل أو بعد حرف\",\r\n \"searchEmployeeTooltip_4\": \"أترك مسافة للبحث بالإسم الأول أو الثاني أو الأخير\",\r\n \"onBehalfFlag\":\"طلب بالانابة عن\",\r\n \"onBehalfOfEmail\":\"إسم الموظف\",\r\n \"commentHistory\":\"سجل التعليقات\",\r\n \"NODATA\": \"لا يوجد بيانات\",\r\n \"termsAndConditions\":\"الشروط والاحكام\",\r\n \"no-files\": \" لا توجد مرفقات\",\r\n \"drag-files\": \"إسحب المرفقات هنا\",\r\n \"limit-error\": \"عدد المرفقات تجاوز المطلوب\",\r\n \"size-error\": \"حجم المرفقات تجاوز المطلوب\",\r\n \"type-error\": \"توع المرفقات غير مناسب\",\r\n \"duplicated-error\": \"تم إرفاق الملف بالفعل\",\r\n \"thisIsInvalidFile\": 'هذا ملف غير صالح',\r\n \"add\": \"اضافة\",\r\n \"addAttachments\": \"اضافة مرفقات\",\r\n \"attachmentdescription\": \"وصف الملف\",\r\n \"attachmentcomment\": \"التعليقات\",\r\n // \"attachment\": \"المرفق\",\r\n \"addAttachment\": \"اضافة المرفق\",\r\n \"locationOfIncident\": \"موقع البلاغ\",\r\n \"FileName\": \"اسم الملف\",\r\n \"FileDescription\": \"وصف الملف\",\r\n // \"delete\": \"حذف\",\r\n \"Attachments\": \"المرفقات\",\r\n \"Attachment\": \"المرفق\",\r\n \"comment\":\"ملاحظات\",\r\n \"comments\":\"ملاحظات\",\r\n \"description\":\"الوصف\",\r\n \"processingDate\":\"تاريخ معالجة الطلب\",\r\n \"Approvals\":\"الموافقات\",\r\n \"submittedSuccessfully\":\"تم تقديم الطلب بنجاح\",\r\n \"support\": \"الملفات المسموحة : PNG & JPG & PDF\",\r\n \"support2\": \"الحد الأقصى لحجم الملف المسموح به هو \",\r\n \"mb\": \"ميغابايت\",\r\n \"support3\": \" الحد الأقصى لحجم الملف المسموح به هو 300 كيلوبايت\",\r\n \"employeeID\": \"الرقم الوظيفي \",\r\n \"NoData\": \"لا توجد طلبات\",\r\n \"NoData1\": \"لا توجد تعليقات\",\r\n \"NoData2\": \"لا توجد بيانات\",\r\n \"Delete\": \"حذف\",\r\n \"ViewDetails\":\"عرض التفاصيل\",\r\n \"fullName\":\"الإسم\",\r\n \"welcomeBack\": \"مرحبا بعودتك\",\r\n \"Hello\": \"مرحبا\",\r\n \"Cancel\":\"إلغاء\",\r\n \"validEmailError\": 'يجب إدخال بريد الكتروني صحيح ',\r\n \"validFieldError\": 'يجب إدخال ',\r\n \"validSelectError\": 'برجاء اختيار ',\r\n \"validSearchError\": 'برجاء البحث عن ',\r\n \"delete\": \"حذف\",\r\n \"Areyousureyouwantdelete\": \"هل أنت متأكد من أنك تريد حذف هذا الطلب؟\",\r\n \"drf-confirmatton-msg\":\"يوجد طلبات لم تتم حتى الان .. الرجاء التأكيد اذا رغبت بنقل الطلب للمرحله التالية بدون مدخلاتهم\",\r\n \"Yes-Proceed\":\" نعم – اكمل الطلب\",\r\n \"No-Discard\":\" لا – الغاء\",\r\n \"yes\": \" نعم\",\r\n \"NoAttachments\": \"لا توجد مرفقات\",\r\n \"cancel\" : \"إلغاء\",\r\n \"View\":\"عرض\",\r\n \"edit\":\"تعديل\",\r\n placeholder: 'أملا هذا الحقل',\r\n downloadLink:\"تحميل الرابط\",\r\n \"link\":\"الرابط\",\r\n\r\n\r\n\r\n AttachmentInvoices: 'مرفقات الفواتير',\r\n AttachmentsOfBank: 'مرفقات كشف الحساب البنكي أو البطاقة الإئتمانية',\r\n DepositVoucherAttachments: 'مرفقات قسيمة الإيداع',\r\n serviceBrief : \"وصف الخدمة\",\r\n PreviousRequests:\"الطلبات السابقة\",\r\n 'Product Implementation': 'Product Implementation',\r\n 'Sales Order and Quality Assurance':'Sales Order and Quality Assurance',\r\n 'Billing Support and Contracts':'Billing Support and Contracts',\r\n 'Sales Excellence':'Sales Excellence',\r\n 'Order Engineering and Delivery Management':'Order Engineering and Delivery Management',\r\n 'Third Party Control and Projects':'Third Party Control and Projects',\r\n 'Enterprise Customer Care':'Enterprise Customer Care',\r\n 'Enterprise Account Sales':'Enterprise Account Sales',\r\n 'Government Accounts Sales':'Government Accounts Sales',\r\n 'Marketing Communications':'Marketing Communications',\r\n 'Customer Experience Excellence':'Customer Experience Excellence',\r\n 'Commercial Regulation':'Commercial Regulation',\r\n 'Enterprise Commercial Finance':'Enterprise Commercial Finance',\r\n 'Product Pricing and Profitability':'Product Pricing and Profitability',\r\n 'Data Protection and Privacy':'Data Protection and Privacy',\r\n 'Customer Value Management':'Customer Value Management',\r\n\r\n\r\n termNote1: \"1. الإدارة الطالبة مسئولة عن صحة الأوراق المرفقة، والإشراف على العمالة.\",\r\n termNote2: \"2.\tيجب أن يكون العامل على كفالة الشركة المقاولة ، وفي حالة التعاقد من الباطن يجب ارفاق العقد بين الطرفين موقعا ومختوما وحديثا ، وأن يكون العامل على كفالة الشركة المتعاقد من الباطن .\",\r\n termNote3: \"3. يجب أن تكون مهنة العامل في إقامته مطابقة لما يقوم به من أعمال وبما يتوافق مع طبيعة عمله\",\r\n termNote4: \"4. بالنسبة للأشخاص الذين يحضرون بتأشيرة زيارة يلزم ارفاق تأشيرة الزيارة سارية المفعول ، مع إرفاق مايثبت العلاقة مع شركة (stc) .إما عقد / أو خطاب من الجهة الطالبة موضحاً مهام الزيارة لشركة (stc). ويمنح فترة تصريح بمدة أقامته بالتأشيرة\",\r\n termNote5: \"5. يمنع استخدام بطاقة تصريح الدخول من قبل شخص أخر ، ويجب إعادتها عند الإنتهاء إلى إدارة الأمن . وفي حال ضياعها يجب إبلاغ إدارة الأمن والسلامة على الهاتف 8001231616 أو 0114251616 ( المركز الرئيسي ). ثم يلزم تقديم طلب تصريح دخول جديد ليتم صرف بطاقة بدل فاقد مع فرض غرامة مالية 500 ريال للمرة الأولى و1000 ريال للمرة الثانية ، وفي المرة الثالثة يمنع من الدخول ويحال للجهات الحكومية ذات العلاقة.\",\r\n termNote6: \"6. تتحمل الشركة المقاولة كافة التبعات القانونية لأي اضرار يحدثها العامل داخل مواقع العمل بشركة (stc)\",\r\n termNote7: \"7. نأمل طباعة النموذج (من زر الطباعة أعلى النموذج) بعد الموافقة عليه من قبل شعبة خدمات البطاقات، وإحضاره عند المراجعة ليتم إصدار البطاقة\",\r\n termNote8: \"8. يلتزم المقاول الرئيسي ومقاولي الباطن بتعليمات الأمن والسلامة كما نصت على ذلك العقود المبرمة مع جميع مقاولي شركة (stc) والخضوع لإجراءات التفتيش الدورية للمواقع من قبل مفتشي السلامة للتأكد من الإلتزام بتعليمات السلامة وسياسة العمل الآمن وسوف يتم تحرير مخالفات وغرامات مالية في حال وجودها موضحة وموصوفة بالقيم المالية عبر علاقات الموردين على الرابط :\",\r\n termNote9: \"9. تلتزم الإدارة الطالبة بتضمين التقارير الفنية الموصية بالصرف مخالفات السلامة إن وجدت وتخصم من الاستحقاق وذلك تطبيقاً لإجراء لائحة الغرامات والجزاءات لمخالفات السلامة على المقاولين\",\r\n termNote10: \"10. تسليم بطاقات المركز الرئيسي في مركز إصدار البطاقات بوابة رقم 3 , أما بقية المناطق تسلم في إدارة أمن المناطق\",\r\n termNote11: \"11. يتم تطبيق لائحة الجزاءات والغرامات على المخالفين داخل مواقع STC حيث يتم إيقاف المركبات المخالفة عن طريق وضع الكوابح عليها، وتخلي الشركة مسؤوليتها بشكل كامل عن أي أضرار يتسبب بها الكابح عند التركيب أو الفك\",\r\n messageErrorPhoneNumber: \"الرجاء ادخال رقم جوال صحيح\",\r\n\r\n serviceAgreement: \" الشروط و الضوابط\",\r\n lengthError: \"لا يمكن أدخال أكثر من\",\r\n userAlreadyExist: \"هذا المستخدم موجود مسبقاً\",\r\n INTERNAL: 'داخلي: إتاحة الوثيقة/السجل للإطلاع داخل الشركة فقط',\r\n SPECIFIC_OR_CONFIDENTIAL: 'محدد/سري: نشر الوثيقة/السجل بصلاحية إطلاع مقصورة على: <br> أسماء محددة <br> وحدة تنظيمية محددة<br> مستويات إدارية محددة',\r\n AVAILABLE: 'متاح: إتاحة الوثيقة/السجل للإطلاع داخل و خارج الشركة',\r\n other:'آخر',\r\n others:'آحرون',\r\n selectAll:'اختر الكل',\r\n URGENT: '1 يوم',\r\n NORMAL: '3 أيام',\r\n select: 'اختر',\r\n addMultiAttachments:\"إضافة أكثر من ملف\",\r\n \"welcome\": \"مرحبا \",\r\n \"logout\": \"تسجيل خروج\",\r\n \"otherLang\": \"English\",\r\n flagStatusUpdated:\"تم التحديث بنجاح\",\r\n \"AllRequests\": \"عدد الطلبات\",\r\n \"clear\": \"مسح\",\r\n \"applyFilters\": \"تصفية\",\r\n \"filters\": \"تصفية\",\r\n month: \"الشهر\",\r\n year: \"السنة\",\r\n status:\"الحالة\",\r\n downloadAll:'تحميل جميع المرفقات',\r\n itemsPerPage:\"عدد العناصر بالصفحة\",\r\n thisFieldIsRequired: \"هذه الخانة مطلوبه\",\r\n thisFieldMaxLength: \"الحد الأقصى لهذه الخانة\",\r\n thisFieldMinLength: \"الحد الأدنى لهذه الخانة\",\r\n pleaseEnterValidNumber: \"برجاء إدخال رقم صحيح\",\r\n startDate: \"تاريخ البداية\",\r\n endDate: \"تاريخ النهاية\",\r\n textArea: \"خانة النص\"\r\n\r\n\r\n\r\n\r\n\r\n}\r\n","/* eslint-disable @typescript-eslint/no-explicit-any */\r\nimport { Injectable } from '@angular/core';\r\nimport * as coreEn from '../i18n/en';\r\nimport * as coreAr from '../i18n/ar';\r\n\r\n@Injectable({\r\n providedIn: 'any',\r\n})\r\nexport class CoreI18nService {\r\n private coreLocales: { [key: string]: { [key: string]: string } };\r\n public language: string;\r\n\r\n constructor() {\r\n // this.language = \"en\";\r\n this.language = (window as any).wmConfig.language;\r\n this.coreLocales = { en: coreEn.default, ar: coreAr.default };\r\n }\r\n\r\n translate(key) {\r\n let result = null;\r\n try {\r\n result = this.coreLocales[this.language][key];\r\n } catch (e) {\r\n result = null;\r\n }\r\n return result || key;\r\n }\r\n\r\n getLanguage() {\r\n return this.language;\r\n }\r\n}\r\n","/*\r\n/!* eslint-disable @typescript-eslint/ban-types *!/\r\n/!* eslint-disable @typescript-eslint/no-empty-function *!/\r\n/!* eslint-disable @typescript-eslint/no-explicit-any *!/\r\nimport {Injectable} from '@angular/core';\r\nimport {BehaviorSubject, Subject} from \"rxjs\";\r\n\r\n@Injectable({\r\n providedIn: 'root'\r\n})\r\nexport class SidenavService {\r\n public subject = new BehaviorSubject({});\r\n public data: any;\r\n public sideNavOpened = new BehaviorSubject(false);\r\n constructor() { }\r\n\r\n publish(eventName: string, componentName: any , position: any = 'end', mode: any = 'over', data?: any) {\r\n this.subject.next({ eventName, componentName, position, mode, data });\r\n }\r\n\r\n}\r\n*/\r\nimport { Injectable } from '@angular/core';\r\nimport { BehaviorSubject, ReplaySubject, Subject } from 'rxjs';\r\n\r\n@Injectable({\r\n providedIn: 'any',\r\n})\r\nexport class SidenavService {\r\n public subject = new Subject<{}>();\r\n public subjectNav = new Subject<{}>();\r\n public sideNavServiceCode = new Subject<{}>();\r\n public subjectNavEditTable = new ReplaySubject<{}>();\r\n public subjectNavAfterEditTable = new ReplaySubject<{}>();\r\n public subjectTabledata = new ReplaySubject<{}>();\r\n public subjectNavWeekDuration = new BehaviorSubject({});\r\n public sideNavOpened = new BehaviorSubject(false);\r\n public data: any = new ReplaySubject();\r\n public field: any = new ReplaySubject();\r\n public mode: any = new ReplaySubject();\r\n public index: any = new ReplaySubject();\r\n public value: any = new BehaviorSubject(false);\r\n public discountTable = new Subject<{}>();\r\n public resolveMode: boolean = false;\r\n public confirmMode: boolean = false;\r\n public formGroup: any = new BehaviorSubject(null);\r\n public unsubscribeSubject: any = new Subject<boolean>();\r\n public contentData: any = {};\r\n public afterClosed: ReplaySubject<any> = new ReplaySubject();\r\n\r\n publish(eventName: string, componentName: any, position: any = 'end', mode: any = 'over', content?: any) {\r\n this.sideNavOpened.next(true);\r\n if (content) {\r\n this.contentData = content;\r\n }\r\n this.subject.next({ eventName, componentName, position, mode, content });\r\n }\r\n\r\n closeSidenav(data?: any) {\r\n this.publish('close', null);\r\n this.afterClosed.next(data);\r\n this.afterClosed = new ReplaySubject();\r\n this.contentData = {};\r\n }\r\n}\r\n","import {HttpClient, HttpHeaders} from \"@angular/common/http\";\r\nimport {map} from \"rxjs/operators\";\r\nimport {Inject, Injectable} from \"@angular/core\";\r\nimport {catchError, throwError} from \"rxjs\";\r\nimport * as constants from '../constants'\r\nimport type {MyLibConfig} from \"../interfaces/shared.interface\";\r\nimport {MY_LIB_CONFIG_TOKEN} from \"../../public-api\";\r\n\r\n@Injectable({\r\n providedIn: \"any\"\r\n})\r\nexport class FeedBackService {\r\n apiUrl: string = ''\r\n\r\n constructor(private http: HttpClient,\r\n @Inject(MY_LIB_CONFIG_TOKEN) private config: MyLibConfig) {\r\n const language = (window as any)?.wmConfig?.language ? (window as any).wmConfig.language : 'en';\r\n this.apiUrl = this.config.proxyServiceBaseUrl + language + this.config.proxyFullAddress + this.config.proxyServiceExecute;\r\n console.log('Config: ', this.config); // for testing purposes only\r\n }\r\n\r\n feedbackForm: boolean = false;\r\n feedBackSent: boolean = false;\r\n pendingForm: boolean = false;\r\n responderForm: boolean = false;\r\n feedbackResponse: any = {\r\n requestFrom: null,\r\n requestTo: null,\r\n requestFeedback: null,\r\n responseFeedback: null\r\n };\r\n\r\n private createRequestBody(method: string, serviceName: string, urlParameters, requestBody = null) {\r\n return {\r\n method: method,\r\n destination: constants.TARGET_SERVER_DP,\r\n serviceName: serviceName,\r\n formName: this.config.formName,\r\n urlParameters: {\r\n inboxid: this.config.formId,\r\n ...urlParameters\r\n },\r\n body: requestBody\r\n };\r\n }\r\n\r\n private performPostRequest(body) {\r\n return this.http.post(this.apiUrl, body, {\r\n headers: new HttpHeaders({\r\n authToken: this.config.authToken,\r\n \"Content-Type\": \"application/x-www-form-urlencoded\"\r\n }),\r\n observe: \"body\"\r\n }).pipe(\r\n map((response: any) => response),\r\n catchError((err: any) => throwError(err))\r\n );\r\n }\r\n\r\n getFeedback(email: string) {\r\n const body = this.createRequestBody(constants.HTTP_METHOD_GET, constants.STATE_NAME_DP_GET_FEEDBACK, {email});\r\n return this.performPostRequest(body);\r\n }\r\n\r\n submitFeedback(data) {\r\n const [email, question] = data;\r\n const body = this.createRequestBody(constants.HTTP_METHOD_POST, constants.SERVICE_NAME_DP_CREATE_FEEDBACK, {}, {request: question, to: email});\r\n return this.performPostRequest(body);\r\n }\r\n\r\n addResponse(data) {\r\n const [feedbackId, feedbackResponse] = data;\r\n const body = this.createRequestBody(constants.HTTP_METHOD_PUT, constants.SERVICE_NAME_DP_UPDATE_FEEDBACK, {}, {\r\n response: feedbackResponse,\r\n feedbackId: feedbackId\r\n });\r\n return this.performPostRequest(body);\r\n }\r\n\r\n}\r\n","import { Section } from \"../interfaces\";\r\n\r\nexport default {\r\n beforeTranspileSection (section: Section): Section {\r\n const hookResult = section;\r\n // Here should be the code to manipulate the section object before the transpile stage\r\n return hookResult;\r\n },\r\n\r\n beforeSendPayload (submitPayload: {[key: string]: any}): {[key: string]: any} {\r\n const hookResult = submitPayload;\r\n // Here should be the code to manipulate the submit payload before the request to backend\r\n return hookResult;\r\n },\r\n\r\n afterSendPayload (responsePayload: {[key: string]: any}): {[key: string]: any} {\r\n const hookResult = responsePayload;\r\n // Here should be the code to manipulate the response payload to a submit of a form\r\n return hookResult;\r\n }\r\n}\r\n","import {HttpClient, HttpHeaders} from \"@angular/common/http\";\r\nimport {DestroyRef, inject, Inject, Injectable} from \"@angular/core\";\r\nimport type {MyLibConfig} from \"../interfaces/shared.interface\";\r\nimport {CommentsDrop, Form, Header, InboxItem, Messages, MY_LIB_CONFIG_TOKEN, ProfileInfoDrop, Section, SectionHeader} from \"../../public-api\";\r\nimport * as constants from '../constants'\r\nimport {catchError, from, Observable, switchMap, throwError} from \"rxjs\";\r\nimport {map} from \"rxjs/operators\";\r\nimport saveFormHooks from '../hooks/save-form';\r\nimport { takeUntilDestroyed } from \"@angular/core/rxjs-interop\";\r\n\r\n@Injectable({\r\n providedIn: \"root\"\r\n})\r\nexport class CoreService {\r\n apiUrl: string = ''\r\n private authToken: string;\r\n private refreshToken: string;\r\n private readonly projectConfig: string;\r\n public userData: string;\r\n private readonly localUser: {};\r\n public loggedInUserData: {};\r\n currentActor: string\r\n private authorizedEmail!: string;\r\n private requesterEmail!: string;\r\n private currentSubmitter: any;\r\n language: string\r\n activities = []\r\n approvals: any\r\n historyDataLoaded: boolean\r\n historyData: any[] = []\r\n private readonly isMobile: boolean;\r\n destroyRef = inject(DestroyRef);\r\n\r\n\r\n constructor(private readonly http: HttpClient,\r\n @Inject(MY_LIB_CONFIG_TOKEN) private readonly config: MyLibConfig) {\r\n const language = (window as any)?.wmConfig?.language ? (window as any).wmConfig.language : 'en';\r\n this.apiUrl = this.config.proxyServiceBaseUrl + language + this.config.proxyFullAddress + this.config.proxyServiceExecute;\r\n console.log('Config: ', this.config);\r\n this.localUser = {\r\n \"formPrefix\": \"CEP\",\r\n \"formId\": \"CEP5595432\",\r\n \"inboxUri\": \"\\/group\\/hub\\/inbox\",\r\n \"baseUrl\": \"\\/group\\/i-gate\\/wm-bpm\\/forms\\/-\\/proxy\",\r\n \"showPrint\": true,\r\n \"language\": \"en\",\r\n \"isMobile\": true,\r\n \"outlook\": false,\r\n \"loggedInUserEmail\": \"ibrahimmaa.c@stc.com.sa\"\r\n }\r\n this.projectConfig = (this.config.production) ? (window as any)['wmConfig'] : btoa(JSON.stringify(this.localUser));\r\n this.userData = this.projectConfig;\r\n this.language = (window as any)?.wmConfig?.language ? (window as any).wmConfig.language : \"en\";\r\n this.isMobile = this.projectConfig?.['isMobile'];\r\n }\r\n\r\n public getLoggedInUserData() {\r\n let loggedInEmail = this.loggedInUserId()\r\n this.employeeProfile(loggedInEmail).pipe(\r\n takeUntilDestroyed(this.destroyRef)\r\n ).subscribe((response: any) => {\r\n this.loggedInUserData = response?.[\"Users\"]?.[0]\r\n console.log('getLoggedInUserData', response)\r\n })\r\n }\r\n\r\n public loadForm() {\r\n const authUrl = this.buildAuthUrl();\r\n return this.http.get(authUrl, {observe: 'response'}).pipe(\r\n map((res: any) => {\r\n const tokenInformation = res.body;\r\n this.authToken = tokenInformation.token;\r\n this.getLoggedInUserData();\r\n this.refreshToken = tokenInformation.refreshToken;\r\n const body = this.buildBody();\r\n const options = this.getRequestOptions();\r\n return this.callPost(body, options);\r\n }),\r\n switchMap(postObservable => postObservable),\r\n catchError((httpError: any) => {\r\n return throwError(httpError);\r\n })\r\n );\r\n }\r\n\r\n private buildAuthUrl(): string {\r\n const baseUrl = this.config.proxyServiceBaseUrl;\r\n const language = (window as any)?.wmConfig?.language ? (window as any).wmConfig.language : 'en';\r\n const fullAddress = this.config.proxyFullAddress;\r\n const authPart = this.config.proxyServiceAuthorization;\r\n return `${baseUrl}${language}${fullAddress}${authPart}?ts=${(new Date()).valueOf()}`;\r\n }\r\n\r\n private buildBody(): object {\r\n const baseBody = {\r\n method: constants.HTTP_METHOD_GET,\r\n destination: constants.TARGET_SERVER_WM,\r\n serviceName: constants.SERVICE_NAME_WM_FORM,\r\n formName: this.config.formName,\r\n formId: \"\",\r\n // queryParameters: null\r\n };\r\n if (!this.config.formId) {\r\n delete baseBody.formId;\r\n } else {\r\n baseBody.formId = this.config.formId;\r\n }\r\n return baseBody;\r\n }\r\n\r\n public employeeProfile(employeeEmail: any) {\r\n let body = {\r\n method: constants.HTTP_METHOD_GET,\r\n formName: this.config.formName,\r\n destination: constants.TARGET_SERVER_DP,\r\n serviceName: constants.SERVICE_NAME_DP_SEARCH_EMPLOYEE,\r\n parameters: {\r\n q: employeeEmail\r\n }\r\n };\r\n return this.http.post(this.apiUrl, body, {\r\n headers: new HttpHeaders({\r\n authToken: this.authToken,\r\n \"Content-Type\": \"application/x-www-form-urlencoded\"\r\n }),\r\n observe: \"body\"\r\n }).pipe(\r\n map((response: any) => {\r\n return response\r\n })\r\n , catchError((err: any) => {\r\n return throwError(err)\r\n }));\r\n }\r\n\r\n private getRequestOptions() {\r\n const isMobile = /iPhone|iPad|iPod|Android/i.test(navigator.userAgent);\r\n const ts = (new Date()).valueOf().toString();\r\n const userAgent = navigator.userAgent;\r\n return {\r\n headers: new HttpHeaders({\r\n authToken: this.authToken,\r\n 'Content-Type': constants.HEADER_CONTENT_TYPE_FORM,\r\n 'feHeader': '{\"isMobile\":' + this.isMobile + ', \",aIsMobile\":' + isMobile + ',ts:' + ts + ',loggedInUserEmail:' + this.loggedInUserId() + ',formName:' + this.config.formName + ',user-agent:' + userAgent + '}'\r\n }),\r\n observe: 'body'\r\n }\r\n }\r\n\r\n private getDraftId(val) {\r\n return val.toUpperCase().startsWith('DRAFT');\r\n }\r\n\r\n public submitForm(...args) {\r\n const [section, action] = args;\r\n const method = this.getHttpMethod();\r\n let sectionId = this.beforeTranspileSectionWrapper(section).id;\r\n let serviceName = this.getServiceName(action);\r\n let formName = this.getFormName(action);\r\n let body = this.getBodyObject(method, serviceName, action, formName, this.populatedPayload(sectionId, section), this.config.formId);\r\n const options = this.getRequestOptions();\r\n\r\n return this.submit(body, options);\r\n }\r\n\r\n private getHttpMethod() {\r\n return (this.config.formId && !this.getDraftId(this.config.formId)) ? constants.HTTP_METHOD_PUT : constants.HTTP_METHOD_POST;\r\n }\r\n\r\n private beforeTranspileSectionWrapper(section) {\r\n return saveFormHooks.beforeTranspileSection ? saveFormHooks.beforeTranspileSection(section) : section;\r\n }\r\n\r\n private getServiceName(action) {\r\n if (action === constants.WM_ACTION_SAVE_CHANGES) {\r\n return constants.SERVICE_NAME_WM_DRAFT_FORM\r\n } else {\r\n return constants.SERVICE_NAME_WM_FORM\r\n }\r\n }\r\n\r\n private getFormName(action) {\r\n if (action === constants.WM_ACTION_SAVE_CHANGES) {\r\n return 'common';\r\n } else {\r\n return this.config.formName;\r\n }\r\n }\r\n\r\n private populatedPayload(sectionId, section) {\r\n let payload;\r\n if (sectionId === constants.SECTION_ID_REQUEST_DETAILS) {\r\n payload = {request: {details: section.body.details}};\r\n } else {\r\n payload = {workflowSteps: {}};\r\n payload.workflowSteps.details = section.body.details;\r\n payload.workflowSteps.actor = this.currentSubmitter.actor;\r\n payload.workflowSteps.actor.email = this.currentActor;\r\n payload.workflowSteps.status = constants.SECTION_STATUS_PENDING;\r\n }\r\n return payload;\r\n }\r\n\r\n private getBodyObject(method, serviceName, action, formName, payload, formId) {\r\n let body = {\r\n method: method,\r\n destination: constants.TARGET_SERVER_WM,\r\n serviceName: serviceName,\r\n parameters: {\r\n action: action\r\n },\r\n formName: formName,\r\n body: payload,\r\n formId: formId,\r\n queryParameters: {},\r\n // payload\r\n }\r\n\r\n if (this.config.formId) {\r\n body.formId = this.config.formId;\r\n }\r\n\r\n if (!this.authorizedEmail || !this.authorizedEmail.length || this.authorizedEmail === this.requesterEmail) {\r\n delete body.queryParameters;\r\n }\r\n\r\n if (saveFormHooks.beforeSendPayload) {\r\n body.body.payload = saveFormHooks.beforeSendPayload(body.body.payload);\r\n }\r\n\r\n return body;\r\n }\r\n\r\n\r\n private callPost(body, options): Observable<any> {\r\n const language = (window as any)?.wmConfig?.language ? (window as any).wmConfig.language : \"en\";\r\n let apiUrl = this.config.proxyServiceBaseUrl + language + this.config.proxyFullAddress + this.config.proxyServiceExecute;\r\n\r\n return this.http.post(apiUrl, encodeURIComponent(JSON.stringify(body)), options).pipe(\r\n map((responseObject: any) => this.successWm(responseObject)),\r\n catchError((httpError: any) => throwError(httpError))\r\n );\r\n }\r\n\r\n private submit(body: any, options: any) {\r\n const language = (window as any)?.wmConfig?.language ? (window as any).wmConfig.language : \"en\";\r\n const apiUrl = this.config.proxyServiceBaseUrl + language + this.config.proxyFullAddress + this.config.proxyServiceExecute;\r\n\r\n return from(\r\n this.http.post(apiUrl, encodeURIComponent(JSON.stringify(body)), options).toPromise().then(\r\n (responseObject: any) => {\r\n let formResponse = responseObject.data.form;\r\n if (saveFormHooks.afterSendPayload) {\r\n formResponse = saveFormHooks.afterSendPayload(formResponse);\r\n }\r\n let result = {\r\n id: null,\r\n status: null,\r\n nextApprover: {\r\n name: null,\r\n email: null,\r\n role: null\r\n },\r\n creationDate: null\r\n };\r\n result.id = formResponse.formId;\r\n result.status = formResponse['formStatus'];\r\n if (formResponse.currentActor) {\r\n result.nextApprover = {\r\n name: formResponse.currentActor.name,\r\n email: formResponse.currentActor.email,\r\n role: formResponse['formStep']\r\n }\r\n }\r\n result.creationDate = formResponse.creationDate;\r\n return result;\r\n }, (httpError: any) => {\r\n throw httpError;\r\n }\r\n )\r\n );\r\n }\r\n\r\n private successWm(...args) {\r\n let [payload] = args;\r\n let wasSendBack = false;\r\n let result = new Form(\r\n constants.NO_VALUE,\r\n constants.NO_VALUE,\r\n constants.NO_VALUE,\r\n constants.NO_VALUE,\r\n constants.NO_VALUE,\r\n constants.NO_VALUE,\r\n constants.NO_VALUE\r\n );\r\n this.requesterEmail = payload.data['requester'].employeeEmail;\r\n this.authorizedEmail = payload.data['requester'].authorizedEmail;\r\n /* Generate Header Object */\r\n let payloadFormDetails = payload.data.form;\r\n let isReadOnly = (payloadFormDetails.readOnly.toUpperCase() === constants.TRUE_STRING ? constants.TRUE_BOOL : (payloadFormDetails.readOnly.toUpperCase() === constants.FALSE_STRING ? constants.FALSE_BOOL : constants.NO_VALUE))\r\n result.header = new Header(\r\n payload.data['requester'].fullName,\r\n constants.IGATE_STATIC_ASSET_PROFILE_PHOTO_URL + payload.data['requester'].employeeEmail,\r\n (payloadFormDetails.formId ? payloadFormDetails.formId : constants.DONT_SHOW),\r\n (payloadFormDetails.creationDate ? payloadFormDetails.creationDate : constants.DONT_SHOW),\r\n payloadFormDetails['formStatus'],\r\n payloadFormDetails.details\r\n );\r\n /* Generate Profile Information Object */\r\n let payloadProfileInfo = payload.data['requester'];\r\n result.profileInfoDrop = new ProfileInfoDrop(\r\n (payloadProfileInfo['onBehalfAuthorized'] ? JSON.parse(payloadProfileInfo['onBehalfAuthorized']) : null),\r\n payloadProfileInfo['employeeId'],\r\n payloadProfileInfo.employeeEmail,\r\n payloadProfileInfo.fullName,\r\n payloadProfileInfo.generalDepartmentName,\r\n payloadProfileInfo.jobPosition,\r\n payloadProfileInfo['sectorName'],\r\n payloadProfileInfo.departmentName,\r\n payloadProfileInfo.generalDepartmentCode,\r\n payloadProfileInfo['humanResourceLocation'],\r\n payloadProfileInfo.nationality,\r\n payloadProfileInfo.businessPhone,\r\n payloadProfileInfo['directManagerName'],\r\n payloadProfileInfo.seniorSectorName\r\n );\r\n result.sections = [];\r\n let requestDetailsHasComment = false;\r\n if (payload.data.request.details.comment) {\r\n requestDetailsHasComment = true;\r\n }\r\n result.sections.push(\r\n new Section(\r\n constants.SECTION_ID_REQUEST_DETAILS,\r\n new SectionHeader(constants.DONT_SHOW, constants.DONT_SHOW, constants.DONT_SHOW, constants.DONT_SHOW, constants.DONT_SHOW, constants.DONT_SHOW, constants.DONT_SHOW, requestDetailsHasComment, (payload.data['workflowSteps'] ? constants.READ_ONLY : isReadOnly)),\r\n payload.data.request\r\n )\r\n );\r\n\r\n if (result.header.formId) {\r\n result.commentsDrop = (!result.commentsDrop ? [] : result.commentsDrop);\r\n this.loadHistory(result.header.formId).pipe(\r\n takeUntilDestroyed(this.destroyRef)\r\n ).subscribe(\r\n (response: any) => {\r\n if (response) {\r\n response.items.forEach((item: any) => {\r\n if (item.sequenceNumber !== '0' && item.processedBy) {\r\n const name = item.processedBy['firstName'] + ' ' + item.processedBy['secondMiddleName'] + ' ' + item.processedBy['familyName'];\r\n result.commentsDrop.push(new CommentsDrop(\r\n constants.IGATE_STATIC_ASSET_PROFILE_PHOTO_URL + item.processedBy.email,\r\n name,\r\n item.comments,\r\n item['modifiedDate'],\r\n item.attachments,\r\n item.processedBy.job\r\n ));\r\n }\r\n });\r\n }\r\n },\r\n );\r\n }\r\n\r\n\r\n const inboxType = this.getInboxType(result);\r\n if (result.header.formId && (!this.isOpenOnInbox())) {\r\n this.getInboxItem(result.header.formId, inboxType).pipe(\r\n takeUntilDestroyed(this.destroyRef)\r\n ).subscribe(\r\n (response: any) => {\r\n if (response) {\r\n const item = response.item;\r\n result.inboxItem = new InboxItem(\r\n item['flagging'].flagPriority,\r\n item['flagging']['isFlagged'],\r\n item.feedback['canRequestFeedback'],\r\n item.feedback['hasFeedback'],\r\n item.feedback['isPending'],\r\n item.feedback['isRequested'],\r\n item.feedback['isResponded']\r\n );\r\n }\r\n },\r\n );\r\n }\r\n\r\n let payloadWorkflowSteps = payload.data.workflowSteps;\r\n if (payloadWorkflowSteps && payloadWorkflowSteps.constructor === Array && payloadWorkflowSteps.length > 0) {\r\n payloadWorkflowSteps.forEach((step, index) => {\r\n let currentIsRequesterSendBack = JSON.stringify(step.details) === JSON.stringify({});\r\n let hasComments = (!currentIsRequesterSendBack && (step.details.comment || step.comment) ? constants.HAS_COMMENTS : constants.NO_COMMENTS);\r\n let currentActor = (step.actor.email === step.actor.recipient.email ? step.actor.recipient : (step.actor.delegate ? step.actor.delegate : null))\r\n if (wasSendBack && step.actor.recipient.role === 'REQUESTER') {\r\n console.log(\"wasSendBack && REQUESTER\")\r\n result.sections = [new Section(\r\n constants.SECTION_ID_REQUEST_DETAILS,\r\n new SectionHeader(\r\n constants.DONT_SHOW,\r\n constants.DONT_SHOW,\r\n constants.DONT_SHOW,\r\n constants.DONT_SHOW,\r\n constants.DONT_SHOW,\r\n constants.DONT_SHOW,\r\n constants.DONT_SHOW,\r\n requestDetailsHasComment,\r\n (payload.data.workflowSteps ? constants.READ_ONLY : isReadOnly)\r\n ),\r\n payload.data.request\r\n )]\r\n } else if (wasSendBack) {\r\n console.log(\"Pop\")\r\n if (result.sections.length > 1) {\r\n result.sections.pop();\r\n }\r\n wasSendBack = false;\r\n }\r\n\r\n\r\n if (step.details.decision && step.details.decision.key === constants.FORM_STATUS_SEND_BACK) {\r\n wasSendBack = true;\r\n } else if (JSON.stringify(step.details) !== JSON.stringify({})) {\r\n\r\n let date = step.date\r\n let currentActorName = currentActor ? this.getShortName(currentActor.name).toString() : \"\"\r\n let shortName = step.actor.recipient?.name ? this.getShortName(step.actor.recipient.name).toString() : \"\"\r\n let delegateName= step.actor.delegate?.name ? this.getShortName(step.actor.delegate.name).toString() : \"\"\r\n let image = constants.IGATE_STATIC_ASSET_PROFILE_PHOTO_URL + step.actor.recipient.email\r\n let delegateImage = step.actor.delegate?.email ? constants.IGATE_STATIC_ASSET_PROFILE_PHOTO_URL + step.actor.delegate.email : \"\"\r\n let status = step.actor.status\r\n result.sections.push(\r\n new Section(\r\n step.actor.recipient.role.toLowerCase() + constants.SECTION_ID_APPROVAL_PARTIAL_NAME,\r\n new SectionHeader(\r\n currentActorName,\r\n date,\r\n shortName,\r\n image,\r\n delegateName,\r\n delegateImage,\r\n status,\r\n hasComments,\r\n (index < payloadWorkflowSteps.length - 1 ? constants.READ_ONLY : isReadOnly)\r\n ),\r\n {details: step.details, processingDate: step.date}\r\n )\r\n );\r\n this.currentSubmitter = {actor: step.actor, recipient: step.recipient, delegate: step.actor.delegate};\r\n }\r\n });\r\n }\r\n /* Create Lov Sections */\r\n result.lovs = (payload?.meta?.lovs ? payload.meta.lovs : null);\r\n\r\n if (payload?.meta?.messages) {\r\n result.messages = new Messages(\r\n {},\r\n [],\r\n [],\r\n []\r\n );\r\n payload.meta.messages.forEach((message) => {\r\n result.messages.originalMsgs.push(message);\r\n result.messages[message.type].push(message.message);\r\n });\r\n }\r\n result.sections[result.sections.length - 1].header.readOnly = isReadOnly;\r\n return result;\r\n }\r\n\r\n public loadFile(...args: any): Observable<any> {\r\n const [id] = args;\r\n return this.http.get(\r\n `${this.config.proxyFullAddress}${this.config.proxyServiceForms}${this.config.formId}${this.config.proxyServiceAttachment}${id}`,\r\n {observe: 'response'}\r\n );\r\n }\r\n\r\n public dataURItoBlob(dataURI: any) {\r\n const byteString = atob(dataURI);\r\n const arrayBuffer = new ArrayBuffer(byteString.length);\r\n const int8Array = new Uint8Array(arrayBuffer);\r\n for (let i = 0; i < byteString.length; i++) {\r\n int8Array[i] = byteString.charCodeAt(i);\r\n }\r\n return new Blob([arrayBuffer], {type: 'image/jpeg'});\r\n }\r\n\r\n saveFile(fileInformation) {\r\n const fileBlob = this.dataURItoBlob(fileInformation.fileContents);\r\n const file = new File([fileBlob], fileInformation.fileName, {type: fileInformation.mimeType});\r\n const blobUrl = URL.createObjectURL(file);\r\n const link = document.createElement('a');\r\n link.href = blobUrl;\r\n link.download = fileInformation.fileName;\r\n link.click();\r\n URL.revokeObjectURL(blobUrl);\r\n }\r\n\r\n setFlagPriority(id: string) {\r\n let body = {\r\n method: constants.HTTP_METHOD_PUT,\r\n destination: constants.TARGET_SERVER_DP,\r\n serviceName: constants.SERVICE_NAME_DP_UPDATE_INBOX_ITEM,\r\n formName: this.config.formName,\r\n urlParameters: {\r\n inboxid: this.config.formId\r\n },\r\n body: {\r\n flag: id\r\n }\r\n }\r\n let options = this.getRequestOptions();\r\n return this.generalCallApi(body, constants.STATE_MACHINE_ACTION_SUCCESS_INBOX_ITEM, options);\r\n }\r\n\r\n public loadHistory(...args) {\r\n const [id] = args;\r\n const body = {\r\n method: constants.HTTP_METHOD_GET,\r\n destination: constants.TARGET_SERVER_WM,\r\n serviceName: constants.WORKFLOW_ITEMS,\r\n formId: id || this.config.formId,\r\n formName: \"bpm\",\r\n };\r\n let options = this.getRequestOptions();\r\n return this.generalCallApi(body, constants.STATE_MACHINE_ACTION_LOAD_HISTORY, options);\r\n }\r\n\r\n public getInboxItem(...args) {\r\n const [id, inboxType] = args;\r\n const body = {\r\n formName: this.config.formName,\r\n method: constants.HTTP_METHOD_GET,\r\n destination: constants.TARGET_SERVER_DP,\r\n serviceName: constants.SERVICE_NAME_DP_INBOX_ITEM,\r\n urlParameters: {\r\n inboxid: id,\r\n inboxtype: inboxType\r\n }\r\n }\r\n let options = this.getRequestOptions();\r\n return this.generalCallApi(body, constants.STATE_MACHINE_ACTION_GET_INBOX_ITEM, options);\r\n }\r\n\r\n public perspectiveApproves(details) {\r\n if (!this.config.production) {\r\n details = {}\r\n }\r\n let serviceName = \"form/\" + this.config.formName\r\n if (this.config.formId) {\r\n serviceName = \"form/\" + this.config.formId\r\n }\r\n let body = {\r\n method: constants.HTTP_METHOD_POST,\r\n destination: constants.TARGET_SERVER_WM,\r\n serviceName: serviceName\r\n , formName: constants.APPROVERS\r\n , body: {\r\n \"request\": {\r\n \"details\":\r\n details\r\n }\r\n }\r\n }\r\n let options = this.getRequestOptions();\r\n return this.generalCallApi(body, constants.STATE_MACHINE_ACTION_SUCCESS_RESPONSE, options);\r\n }\r\n\r\n getAttachments(data: any, ...args: any) {\r\n let body = {\r\n method: constants.HTTP_METHOD_POST,\r\n destination: constants.TARGET_SERVER_WM,\r\n serviceName: 'attachment'\r\n , formName: 'common'\r\n , body: {\r\n attachment: {\r\n fileName: this.config.production ? data.fileName : '',\r\n mimeType: this.config.production ? data.mimeType : '',\r\n fileContents: this.config.production ? data.fileContents : '',\r\n }\r\n , comment: data.attachmentcomment\r\n , description: data.fileDescription,\r\n }\r\n }\r\n let options = this.getRequestOptions();\r\n return this.generalCallApi(body, constants.STATE_MACHINE_ACTION_SUCCESS_RESPONSE, options);\r\n }\r\n\r\n searchEmployee(...args) {\r\n let [searchString] = args;\r\n let body = {\r\n method: constants.HTTP_METHOD_GET,\r\n formName: this.config.formName,\r\n destination: constants.TARGET_SERVER_DP,\r\n serviceName: constants.SERVICE_NAME_DP_SEARCH_EMPLOYEE,\r\n parameters: {\r\n q: searchString,\r\n limit: 10\r\n }\r\n }\r\n let options = this.getRequestOptions();\r\n return this.generalCallApi(body, constants.STATE_MACHINE_ACTION_SUCCESS_RESPONSE, options);\r\n }\r\n\r\n public myRequests(details) {\r\n let body = {\r\n method: constants.HTTP_METHOD_GET,\r\n destination: constants.TARGET_SERVER_WM,\r\n serviceName: \"form\" //, //this.getServiceName(),\r\n , formName: \"history\"\r\n , queryParameters: {\r\n formName: this.config.formName,\r\n year: details.year,\r\n month: details.month,\r\n email: this.loggedInUserId()\r\n }\r\n }\r\n let options = this.getRequestOptions();\r\n return this.generalCallApi(body, constants.STATE_MACHINE_ACTION_SUCCESS_RESPONSE, options);\r\n }\r\n\r\n generalCallApi(body, type: string, options) {\r\n let apiUrl = this.config.proxyServiceBaseUrl + this.language + this.config.proxyFullAddress + this.config.proxyServiceExecute;\r\n return this.http.post(apiUrl, encodeURIComponent(JSON.stringify(body)), options).pipe(\r\n map((responseObject: any) => {\r\n return responseObject\r\n }),\r\n catchError((httpError: any) => {\r\n return throwError(httpError);\r\n })\r\n );\r\n }\r\n\r\n public loggedInUserId() {\r\n return this.userData['loggedInUserEmail'];\r\n }\r\n\r\n public getShortName(name: string) {\r\n if (name) {\r\n let nameTokens = name.split(' ');\r\n if (nameTokens.length == 1) {\r\n return [nameTokens[0]]\r\n } else if (nameTokens[nameTokens.length - 2].toLowerCase() == 'al') {\r\n return [nameTokens[0], nameTokens[nameTokens.length - 2], nameTokens[nameTokens.length - 1]].join(' ');\r\n } else {\r\n return [nameTokens[0], nameTokens[nameTokens.length - 1]].join(' ');\r\n }\r\n } else {\r\n return null;\r\n }\r\n }\r\n\r\n public isMobileApp() {\r\n return (window as any).wmConfig.isMobile;\r\n }\r\n\r\n public getInboxType(result) {\r\n let rtn = null;\r\n if (this.loggedInUserId() === result.profileInfoDrop.employeeEmail) {\r\n rtn = constants.INBOX_STATUS_SENT;\r\n } else {\r\n rtn = constants.INBOX_STATUS_PENDING;\r\n }\r\n return rtn;\r\n }\r\n\r\n public isOpenOnInbox() {\r\n return (window as any).wmConfig.outlook;\r\n }\r\n}\r\n","import {Injectable} from '@angular/core';\r\nimport {BehaviorSubject, Subject} from 'rxjs';\r\n\r\n@Injectable({\r\n providedIn: \"any\"\r\n})\r\nexport class ActionStateService {\r\n private actionStatesSubject = new BehaviorSubject<{ [action: string]: boolean }>({});\r\n\r\n actionStates$ = this.actionStatesSubject.asObservable();\r\n resetAction$ = new Subject<void>()\r\n \r\n\r\n setActionValid(action: string, isValid: boolean) {\r\n const currentState = this.actionStatesSubject.value;\r\n currentState[action] = isValid;\r\n this.actionStatesSubject.next(currentState);\r\n }\r\n\r\n resetForm(){\r\n return this.resetAction$\r\n }\r\n}\r\n","/* eslint-disable @typescript-eslint/no-explicit-any */\r\n/* eslint-disable @angular-eslint/component-selector */\r\nimport {MatDialogClose, MatDialogContent, MatDialogRef, MatDialogTitle} from '@angular/material/dialog';\r\nimport {Component, CUSTOM_ELEMENTS_SCHEMA} from '@angular/core';\r\nimport {CoreI18nService} from '../../../../services';\r\n\r\n@Component({\r\n selector: 'app-delete-dialog',\r\n templateUrl: './delete-dialog.component.html',\r\n styleUrls: ['./delete-dialog.component.scss'],\r\n schemas: [CUSTOM_ELEMENTS_SCHEMA],\r\n standalone: true,\r\n imports: [\r\n MatDialogContent,\r\n MatDialogClose,\r\n MatDialogTitle\r\n ]\r\n})\r\nexport class DeleteDialogComponent {\r\n\r\n constructor(\r\n public dialogRef: MatDialogRef<any>,\r\n public i18n: CoreI18nService\r\n ) { }\r\n\r\n\r\n delete() {\r\n this.dialogRef.close('yes');\r\n }\r\n\r\n}\r\n","<div class=\"popup-container\">\r\n <div class=\"d-flex align-items-center justify-content-between\" mat-dialog-title>\r\n <h3> {{i18n.translate('delete')}}</h3>\r\n <ds-button matDialogClose icon>\r\n <ds-icon icon=\"close\" class=\"fs-20 fc-black\"></ds-icon>\r\n </ds-button>\r\n </div>\r\n <mat-dialog-content>\r\n <div class=\"d-flex flex-column align-items-center justify-content-center py-4\">\r\n <h2 class=\"fs-16 fw-medium fc-black mb-4\">\r\n {{i18n.translate('Areyousureyouwantdelete')}}\r\n </h2>\r\n\r\n <div class=\"d-flex align-items-center gap-3\">\r\n <ds-button shape=\"outline\" color=\"dark-gray\" matDialogClose>{{i18n.translate('Cancel')}}</ds-button>\r\n <ds-button color=\"red\" (click)=\"delete()\">{{i18n.translate('yes')}}</ds-button>\r\n </div>\r\n </div>\r\n </mat-dialog-content>\r\n</div>","import {MAT_DIALOG_DATA, MatDialogClose, MatDialogContent, MatDialogTitle} from '@angular/material/dialog';\r\nimport {Component, CUSTOM_ELEMENTS_SCHEMA, Inject} from '@angular/core';\r\nimport {CoreI18nService, CoreService} from '../../../../services';\r\nimport {NgIf} from \"@angular/common\";\r\n\r\n@Component({\r\n selector: 'app-submit-dialog',\r\n templateUrl: './submit-dialog.component.html',\r\n styleUrls: ['./submit-dialog.component.scss'],\r\n schemas: [CUSTOM_ELEMENTS_SCHEMA],\r\n standalone: true,\r\n imports: [\r\n MatDialogClose,\r\n MatDialogContent,\r\n NgIf,\r\n MatDialogTitle\r\n ]\r\n})\r\nexport class SubmitDialogComponent {\r\n successData: any;\r\n inboxUri;\r\n\r\n constructor(\r\n @Inject(MAT_DIALOG_DATA) public data: any,\r\n public i18n: CoreI18nService,\r\n public coreService: CoreService\r\n ) {\r\n this.successData = data;\r\n this.inboxUri = (window as any).wmConfig.inboxUri\r\n }\r\n getImage(email: string) {\r\n if (email) {\r\n return '/group/i-gate/wm-bpm/forms/-/proxy/portrait?email=' + email;\r\n } else {\r\n return '';\r\n }\r\n }\r\n\r\n viewForm(formId: string, formName?: string) {\r\n if (formId) {\r\n if (formId?.toLowerCase().includes('draft')) {\r\n window.open(`/group/i-gate/wm-bpm/forms?formName=${formName}&formId=${formId}`);\r\n return;\r\n }\r\n window.open('/group/i-gate/wm-bpm/forms?formId=' + formId);\r\n }\r\n }\r\n\r\n getStatus(statusKey: string) {\r\n switch (statusKey) {\r\n case 'APPROVED':\r\n return 'success';\r\n case 'COMPLETED':\r\n return 'success';\r\n case 'REJECTED':\r\n return 'danger';\r\n case 'CANCELLED':\r\n return 'danger';\r\n case 'PENDING':\r\n return 'warning';\r\n default:\r\n return 'success';\r\n }\r\n }\r\n}\r\n","<div class=\"popup-container\">\r\n <div class=\"d-flex align-items-center justify-content-end\" mat-dialog-title>\r\n <ds-button matDialogClose icon>\r\n <ds-icon icon=\"close\" class=\"fs-20 fc-black\"></ds-icon>\r\n </ds-button>\r\n </div>\r\n <mat-dialog-content>\r\n <div class=\"d-flex flex-column align-items-center justify-content-center py-4\">\r\n <div class=\"text-center mb-4\">\r\n <svg width=\"79\" height=\"76\" viewBox=\"0 0 79 76\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\">\r\n <path\r\n d=\"M59.9804 0.0998676L1.39239 19.2479C1.02223 19.3692 0.69498 19.5948 0.44999 19.8976C0.205 20.2005 0.0526985 20.5676 0.0113985 20.955C-0.0299016 21.3423 0.0415576 21.7333 0.217184 22.081C0.39281 22.4287 0.665128 22.7183 1.00139 22.9149L23.1454 35.7899C23.487 35.9886 23.8794 36.0828 24.274 36.0608C24.6686 36.0388 25.0481 35.9014 25.3654 35.6659L31.5894 31.0439L26.9674 37.2679C26.7318 37.5852 26.5944 37.9646 26.5722 38.3591C26.5499 38.7537 26.6439 39.1461 26.8424 39.4879L39.7174 61.6289C39.9138 61.9652 40.2031 62.2377 40.5506 62.4135C40.8981 62.5894 41.289 62.6611 41.6763 62.6201C42.0636 62.5791 42.4308 62.4272 42.7338 62.1825C43.0369 61.9378 43.2628 61.6108 43.3844 61.2409L62.5294 2.65187C62.6458 2.29686 62.6615 1.91654 62.5749 1.55313C62.4883 1.18971 62.3026 0.857401 62.0386 0.593071C61.7746 0.328741 61.4425 0.142726 61.0792 0.0556665C60.7159 -0.0313933 60.3355 -0.0160937 59.9804 0.0998676ZM40.9434 55.6999L31.0014 38.6069L42.9894 22.4689C43.2797 22.0798 43.4202 21.5993 43.3852 21.1152C43.3502 20.631 43.142 20.1757 42.7988 19.8325C42.4556 19.4893 42.0002 19.2811 41.5161 19.2461C41.032 19.2111 40.5514 19.3516 40.1624 19.6419L24.0254 31.6279L6.93339 21.6889L57.4514 5.18087L40.9434 55.6999ZM21.2134 44.2759L7.80139 57.6909C7.42253 58.0701 6.90853 58.2833 6.37246 58.2836C5.83638 58.2839 5.32215 58.0712 4.94289 57.6924C4.56363 57.3135 4.35041 56.7995 4.35013 56.2634C4.34985 55.7274 4.56253 55.2131 4.94139 54.8339L18.3564 41.4189C18.7353 41.04 19.2491 40.8272 19.7849 40.8272C20.3207 40.8272 20.8345 41.04 21.2134 41.4189C21.5923 41.7977 21.8051 42.3116 21.8051 42.8474C21.8051 43.3832 21.5923 43.897 21.2134 44.2759ZM3.49139 44.7839C3.30378 44.5963 3.15495 44.3736 3.05341 44.1285C2.95187 43.8834 2.89961 43.6207 2.89961 43.3554C2.89961 43.0901 2.95187 42.8274 3.05341 42.5823C3.15495 42.3371 3.30378 42.1144 3.49139 41.9269L8.78439 36.6339C9.16326 36.255 9.6771 36.0422 10.2129 36.0422C10.7487 36.0422 11.2625 36.255 11.6414 36.6339C12.0203 37.0127 12.2331 37.5266 12.2331 38.0624C12.2331 38.5982 12.0203 39.112 11.6414 39.4909L6.34939 44.7839C6.1618 44.9716 5.93903 45.1206 5.69384 45.2222C5.44864 45.3238 5.18582 45.3762 4.92039 45.3762C4.65497 45.3762 4.39215 45.3238 4.14695 45.2222C3.90176 45.1206 3.67899 44.9716 3.49139 44.7839ZM26.0014 50.9899C26.189 51.1774 26.3378 51.4001 26.4394 51.6453C26.5409 51.8904 26.5932 52.1531 26.5932 52.4184C26.5932 52.6837 26.5409 52.9464 26.4394 53.1915C26.3378 53.4366 26.189 53.6593 26.0014 53.8469L20.7014 59.1409C20.3225 59.5197 19.8087 59.7326 19.2729 59.7326C18.7371 59.7326 18.2233 59.5197 17.8444 59.1409C17.4655 58.762 17.2527 58.2482 17.2527 57.7124C17.2527 57.1766 17.4655 56.6627 17.8444 56.2839L23.1374 50.9909C23.325 50.8032 23.5477 50.6544 23.7928 50.5529C24.0379 50.4513 24.3006 50.3991 24.5659 50.3991C24.8312 50.3991 25.0939 50.4513 25.339 50.5529C25.5841 50.6544 25.8068 50.8032 25.9944 50.9909L26.0014 50.9899Z\"\r\n fill=\"#8E9AA0\"/>\r\n <path\r\n d=\"M58.0015 75.3119C69.0472 75.3119 78.0015 66.3576 78.0015 55.3119C78.0015 44.2662 69.0472 35.3119 58.0015 35.3119C46.9558 35.3119 38.0015 44.2662 38.0015 55.3119C38.0015 66.3576 46.9558 75.3119 58.0015 75.3119Z\"\r\n fill=\"#00C48C\"/>\r\n <path\r\n d=\"M56.8804 57.3183L54.0346 54.4725L52.9743 55.5336L56.8774 59.4367L65.8354 50.5267L65.4927 50.0138C63.8557 47.5812 61.1134 46.002 58.0015 46.002C53.0313 46.002 49.0015 50.031 49.0015 55.002C49.0015 59.9729 53.0305 64.002 58.0015 64.002C62.9716 64.002 67.0007 59.9729 67.0015 55.0035H65.5017C65.5017 55.005 65.5017 55.0072 65.5017 55.0095C65.5017 59.1503 62.1453 62.5067 58.0045 62.5067C53.8637 62.5067 50.5072 59.1503 50.5072 55.0095C50.5072 50.8686 53.8637 47.5122 58.0045 47.5122C60.3793 47.5122 62.4962 48.6168 63.87 50.3392L63.882 50.3542L56.8804 57.3183Z\"\r\n fill=\"white\"/>\r\n </svg>\r\n\r\n </div>\r\n <h2 class=\"fs-16 fw-medium fc-black mb-4 text-center\">\r\n {{ i18n.translate('submittedSuccessfully') }}\r\n </h2>\r\n\r\n <div class=\"info-section reverse w-100\">\r\n <div class=\"info-item px-3\">\r\n <span class=\"name fs-16-imp\">{{ i18n.translate('formTableFormId') }}</span>\r\n <span class=\"disc fs-16-imp\">\r\n <a class=\"cursor-pointer fc-black underline\" (click)=\"viewForm(successData.id, successData?.['formName'])\">\r\n {{ successData.id }}\r\n </a>\r\n </span>\r\n </div>\r\n <div class=\"info-item px-3\">\r\n <span class=\"name fs-16-imp\">{{ i18n.translate('formTableFormStatus') }}</span>\r\n <ds-status class=\"disc\" status=\"{{getStatus(successData?.status?.['key'])}}\">\r\n {{ successData.status?.['value'] }}\r\n </ds-status>\r\n </div>\r\n @if (successData?.status?.['key'] === 'PENDING') {\r\n <div class=\"info-item px-3\">\r\n <div class=\"d-flex align-items-center mt-2\">\r\n <div class=\"img-card circled-img small\">\r\n <img\r\n [src]=\"getImage(successData?.['nextApprover']?.['email'])\"\r\n onerror=\"this.onerror=null;this.src='assets/images/user.svg';\" alt=\"\">\r\n </div>\r\n <div class=\"line-height-1 mx-2\">\r\n <h5 class=\"fs-14 fw-bold fc-black mb-0\">{{ successData?.['nextApprover']?.['name'] }}</h5>\r\n <span class=\"fs-12 text-color-dark-gray\">{{ successData?.['nextApprover']?.['email'] }}</span>\r\n </div>\r\n </div>\r\n </div>\r\n }\r\n </div>\r\n @if (!coreService.isMobileApp()) {\r\n <div class=\"d-flex align-items-center gap-3 mt-3\">\r\n <ds-button>\r\n <a class=\"inboxUri\" href=\"{{inboxUri}}\">\r\n {{ i18n.translate('formTableBackToInbox') }}</a>\r\n </ds-button>\r\n </div>\r\n }\r\n </div>\r\n </mat-dialog-content>\r\n</div>\r\n","/* eslint-disable @typescript-eslint/no-explicit-any */\r\n/* eslint-disable @angular-eslint/component-selector */\r\nimport {MatDialogClose, MatDialogContent, MatDialogRef} from '@angular/material/dialog';\r\nimport {Component, CUSTOM_ELEMENTS_SCHEMA} from '@angular/core';\r\nimport {CoreI18nService} from '../../../../services';\r\n\r\n//import { CoreI18nService} from '../../../../services';\r\n\r\n@Component({\r\n selector: 'app-confirm-dialog',\r\n templateUrl: './confirm-dialog.component.html',\r\n styleUrls: ['./confirm-dialog.component.scss'],\r\n schemas: [CUSTOM_ELEMENTS_SCHEMA],\r\n standalone: true,\r\n imports: [\r\n MatDialogContent,\r\n MatDialogClose\r\n ]\r\n})\r\nexport class ConfirmDialogComponent {\r\n\r\n constructor(\r\n public dialogRef: MatDialogRef<any>,\r\n public i18n: CoreI18nService\r\n ) { }\r\n\r\n\r\n confirm() {\r\n this.dialogRef.close('yes');\r\n\r\n\r\n //////\r\n }\r\n\r\n}\r\n","<div class=\"popup-container\">\r\n <div class=\"d-flex align-items-center justify-content-between\" mat-dialog-title>\r\n <h3> {{i18n.translate('delete')}}</h3>\r\n <ds-button matDialogClose icon>\r\n <ds-icon icon=\"close\" class=\"fs-20 fc-black\"></ds-icon>\r\n </ds-button>\r\n </div>\r\n <mat-dialog-content>\r\n <div class=\"d-flex flex-column align-items-center justify-content-center py-4\">\r\n <h2 class=\"fs-16 fw-medium fc-black mb-4\">\r\n {{i18n.translate('drf-confirmatton-msg')}}\r\n </h2>\r\n\r\n <div class=\"d-flex align-items-center gap-3\">\r\n <ds-button shape=\"outline\" color=\"dark-gray\" matDialogClose>{{i18n.translate('No-Discard')}}</ds-button>\r\n <ds-button color=\"red\" (click)=\"confirm()\">{{i18n.translate('Yes-Proceed')}}</ds-button>\r\n </div>\r\n </div>\r\n </mat-dialog-content>\r\n</div>","import { Pipe, PipeTransform } from '@angular/core';\r\n\r\n@Pipe({\r\n name: 'formatAsPassword'\r\n})\r\nexport class FormatAsPasswordPipe implements PipeTransform {\r\n\r\n transform(value: string | number): unknown {\r\n if(typeof value === 'number') value = value.toString();\r\n const length = value.length;\r\n return '*'.repeat(length);\r\n }\r\n\r\n}\r\n","/* eslint-disable no-useless-escape */\r\nimport { Pipe, PipeTransform } from '@angular/core';\r\n\r\n@Pipe({\r\n name: 'mycurrency'\r\n})\r\nexport class MycurrencyPipe implements PipeTransform {\r\n private prefix: string;\r\n private decimal_separator:string;\r\n private thousands_separator:string;\r\n private suffix:string;\r\n\r\n constructor(){\r\n this.prefix='';\r\n this.suffix='';\r\n this.decimal_separator='.';\r\n this.thousands_separator = ',';\r\n }\r\n transform(value: string, allowNegative = false, decimalPrecision: number = 2) {\r\n if (value == undefined || value === '') {\r\n return null;\r\n }\r\n if (allowNegative) {\r\n value = value.toString();\r\n if (value.startsWith('(') || value.startsWith('-')) {\r\n value = '-' + value.substr(1, value.length).replace(/\\(|\\)|\\$|\\-/g, '');\r\n } else {\r\n value = value.replace(/\\(|\\)|\\$|\\-/g, '');\r\n }\r\n }\r\n let [integer, fraction = ''] = (value || '').toString().split(this.decimal_separator);\r\n fraction = decimalPrecision > 0 ? this.decimal_separator + (fraction + '000000').substring(0, 2) : '';\r\n integer = integer.replace(/\\B(?=(\\d{3})+(?!\\d))/g, this.thousands_separator);\r\n // If user types .xx we can display 0.xx\r\n if (integer === '') {\r\n integer = '0';\r\n } else if (integer.startsWith('$')) {\r\n // If there are multiple transforms, remove the previous dollar sign (blur and change at the same time)\r\n integer = integer.substr(1, integer.length);\r\n } else if (allowNegative && integer.startsWith('-')) {\r\n // If user inputs negative number set to paranthesis format\r\n integer = integer.substr(1, integer.length);\r\n return '(' + this.prefix + integer + fraction + ')';\r\n }\r\n return this.prefix + integer + fraction;\r\n }\r\n\r\n parse(value: string, allowNegative = false) {\r\n let [integer, fraction = ''] = (value || '').split(this.decimal_separator);\r\n integer = integer.replace(new RegExp(/[^\\d\\.]/, 'g'), '');\r\n fraction = parseInt(fraction, 10) > 0 && 2 > 0 ? this.decimal_separator + (fraction + '000000').substring(0, 2) : '';\r\n if (allowNegative && value.startsWith('(') && value.endsWith(')')) {\r\n return (-1 * parseFloat(integer + fraction)).toString();\r\n } else {\r\n return integer + fraction;\r\n }\r\n }\r\n\r\n}\r\n","export interface DateParse { dateInput: string; }\r\nexport type DateDisplay = DateParse & {\r\n monthYearLabel?: string,\r\n dateA11yLabel?: string,\r\n monthYearA11yLabel?: string,\r\n};\r\n\r\nexport class CustomDateFormat {\r\n private _parse: DateParse = {\r\n dateInput: 'DD/MM/YYYY'\r\n };\r\n private _display: DateDisplay = {\r\n dateInput: 'DD/MM/YYYY',\r\n monthYearLabel: 'DD MMM YYYY',\r\n dateA11yLabel: 'LL',\r\n monthYearA11yLabel: 'MMMM YYYY'\r\n };\r\n\r\n set parse(parse: DateParse) {\r\n this._parse = Object.assign({}, this._parse, parse);\r\n }\r\n\r\n get parse(): DateParse {\r\n return this._parse;\r\n }\r\n\r\n set display(display: DateDisplay) {\r\n this._display = Object.assign({}, this._display, display);\r\n }\r\n\r\n get display(): DateDisplay {\r\n return this._display;\r\n }\r\n\r\n updateDateFormat(parse: DateParse, display?: DateDisplay) {\r\n this.parse = parse;\r\n if (!display) {\r\n display = parse;\r\n }\r\n this.display = display;\r\n }\r\n}","import { DateAdapter, MAT_DATE_FORMATS } from '@angular/material/core';\r\nimport { FormControl } from '@angular/forms';\r\nimport { MatDialog, MatDialogRef, MAT_DIALOG_DATA } from '@angular/material/dialog';\r\nimport {\r\n Component,\r\n Input,\r\n Output,\r\n EventEmitter,\r\n forwardRef,\r\n ChangeDetectorRef,\r\n Inject,\r\n} from '@angular/core';\r\nimport {\r\n ControlContainer,\r\n NgForm,\r\n NG_VALUE_ACCESSOR,\r\n FormBuilder,\r\n} from '@angular/forms';\r\nimport { HttpClient } from '@angular/common/http';\r\nimport { Section } from '../../../../interfaces';\r\nimport {\r\n CoreI18nService\r\n} from '../../../../services';\r\nimport { MycurrencyPipe } from '../../../../pipes';\r\nimport { DomSanitizer } from '@angular/platform-browser';\r\nimport { CustomDateFormat } from '../date-picker/date-format';\r\n\r\nconst CUSTOM_INPUT_CONTROL_VALUE_ACCESSOR = {\r\n provide: NG_VALUE_ACCESSOR,\r\n useExisting: forwardRef(() => BaseComponent),\r\n multi: true,\r\n};\r\n@Component({\r\n selector: 'app-base-component',\r\n template: '',\r\n styleUrls: ['./base-component.component.scss'],\r\n providers: [CUSTOM_INPUT_CONTROL_VALUE_ACCESSOR],\r\n viewProviders: [{provide: ControlContainer, useExisting: NgForm}],\r\n standalone: true\r\n})\r\nexport class BaseComponent {\r\n @Input() hideOption = false;\r\n // hideOption: InputSignal<boolean> = input(false);\r\n @Input() type = 'text';\r\n // hideOption: InputSignal<string> = input('text');\r\n @Input() loading!: boolean;\r\n // loading: InputSignal<boolean>;\r\n @Input() field: any;\r\n // loafieldding: InputSignal<any>;\r\n @Input() labelTextReadMode: string;\r\n // labelTextReadMode: InputSignal<string>\r\n @Input() labelTextWriteMode: string;\r\n // labelTextWriteMode: InputSignal<string>\r\n @Input() isReadOnly: boolean;\r\n // isReadOnly: InputSignal<boolean>;\r\n @Input() name: string;\r\n // name: InputSignal<string>\r\n @Input() required = true;\r\n // required: InputSignal<boolean> = input(true);\r\n @Input() mask: string;\r\n // mask: InputSignal<string>\r\n @Input() allowedExtensions = '';\r\n // allowedExtensions: InputSignal<string> = input('');\r\n @Input() link: boolean;\r\n // link: InputSignal<boolean>;\r\n @Input() multiple: boolean;\r\n // multiple: InputSignal<boolean>;\r\n @Input() insideTable: boolean;\r\n // insideTable: InputSignal<boolean>;\r\n @Input() showIfEmpty = false;\r\n // showIfEmpty: InputSignal<boolean> = input(false);\r\n @Input() showErrorMessage: boolean;\r\n // showErrorMessage: InputSignal<boolean>;\r\n @Input() showHint = false;\r\n // showHint: InputSignal<boolean> = input(false);\r\n @Input() hint = '';\r\n // hint: InputSignal<string> = input('');\r\n @Input() errorMessage: string;\r\n // errorMessage: InputSignal<string>\r\n @Input() placeholder: string\r\n // placeholder: InputSignal<string>\r\n @Input() maxLength: number;\r\n // maxLength: InputSignal<number>\r\n @Input() minLength: number;\r\n // minLength: InputSignal<number>\r\n @Input() maxValue: string;\r\n // maxValue: InputSignal<string>\r\n @Input() minValue: string;\r\n // minValue: InputSignal<string>\r\n @Input() disabled = false;\r\n // disabled: InputSignal<boolean> = input(false);\r\n @Input() lov: any;\r\n // lov: InputSignal<any>\r\n @Input() hasLabel = true;\r\n // hasLabel: InputSignal<boolean> = input(true);\r\n @Input() section: Section;\r\n // section: InputSignal<Section>\r\n @Input() controller: FormControl = new FormControl();\r\n value: any;\r\n @Output() emitedValue = new EventEmitter();\r\n\r\n filesize: string;\r\n // public options: any;\r\n public randomID: number =\r\n Math.floor(Math.random() * (999999 - 100000)) + 100000;\r\n constructor(\r\n public i18n: CoreI18nService,\r\n public http: HttpClient,\r\n public fb: FormBuilder,\r\n private dateAdapter: DateAdapter<Date>,\r\n public cdRef: ChangeDetectorRef,\r\n public dialog: MatDialog,\r\n public dialogRef: MatDialogRef<any>,\r\n @Inject(MAT_DIALOG_DATA) public dialogData: any,\r\n public mycurrencyPipe: MycurrencyPipe,\r\n @Inject(MAT_DATE_FORMATS) public dateFormat: CustomDateFormat,\r\n public sanitizer: DomSanitizer\r\n ) {\r\n this.dateAdapter.setLocale(this.i18n.language);\r\n this.value = this.field;\r\n this.emitedValue = new EventEmitter();\r\n if (this.shouldSetDateFormateInAr) {\r\n dateFormat.display = {dateInput: 'YYYY/MM/DD'};\r\n dateFormat.parse = {dateInput: 'YYYY/MM/DD'};\r\n }\r\n }\r\n\r\n get shouldSetDateFormateInAr(): boolean {\r\n return this.i18n.language == 'ar';\r\n }\r\n\r\n resetData() {\r\n if (!this.isReadOnly) {\r\n this.field = '';\r\n this.controller.setValue(this.field)\r\n this.controller.markAsUntouched()\r\n this.emitedValue.emit(this.field);\r\n }\r\n }\r\n}\r\n","import {Directive, Injector, Input, OnInit} from '@angular/core';\r\nimport {ControlValueAccessor, FormBuilder, FormControl, FormControlDirective, FormControlName, FormGroupDirective, NgControl, Validators,} from '@angular/forms';\r\nimport {ActionStateService, CoreI18nService, CoreService} from '../../../services';\r\nimport {DomSanitizer} from \"@angular/platform-browser\";\r\nimport {ToastrService} from \"ngx-toastr\";\r\nimport { MatDialogRef } from '@angular/material/dialog';\r\n\r\n@Directive({\r\n selector: '[appControlValueAccessor]',\r\n})\r\nexport class ControlValueAccessorDirective<Type>\r\n implements ControlValueAccessor, OnInit\r\n{\r\n @Input() tooltip;\r\n @Input() isReadOnly: boolean;\r\n @Input() hint = '';\r\n @Input() loading!: boolean;\r\n @Input() placeholder: string;\r\n @Input() type: string;\r\n @Input() showErrorMessage: string;\r\n @Input() showHint: string;\r\n @Input() showIfEmpty: string;\r\n @Input() insideTable: any;\r\n @Input() mask: any;\r\n @Input() label!: string;\r\n @Input() matSuffix: boolean;\r\n @Input() hasTooltip = false;\r\n @Input() name!: string;\r\n @Input() randomID!: string;\r\n @Input() multiple: boolean = false;\r\n searchControl = new FormControl();\r\n employeeSearchControl = new FormControl();\r\n telephoneControl = new FormControl();\r\n attachments = [];\r\n\r\n\r\n startDateControl = new FormControl();\r\n endDateControl = new FormControl();\r\n Validators = Validators;\r\n\r\n\r\n\r\n\r\n minDateValue: any\r\n maxDateValue: any\r\n @Input() maxDate: string;\r\n // @ViewChild('default')\r\n public datepickerObj!: any;\r\n @Input() minDate: string;\r\n @Input() customMaxDate: any\r\n @Input() customMinDate: any\r\n\r\n value: any;\r\n control: FormControl | undefined;\r\n required:boolean;\r\n maxLength: any;\r\n\r\n isDisabled = false;\r\n constructor(\r\n private readonly injector: Injector, public i18n: CoreI18nService,\r\n public toasterService: ToastrService,\r\n public coreService: CoreService, public sanitizer: DomSanitizer,\r\n public fb: FormBuilder,\r\n public actionStateService: ActionStateService\r\n ) {\r\n\r\n }\r\n\r\n ngOnInit() {\r\n this.setFormControl();\r\n }\r\n\r\n setFormControl() {\r\n try {\r\n const formControl = this.injector.get(NgControl);\r\n switch (formControl.constructor) {\r\n case FormControlName:\r\n this.control = this.injector\r\n .get(FormGroupDirective)\r\n .getControl(formControl as FormControlName);\r\n break;\r\n default:\r\n this.control = (formControl as FormControlDirective)\r\n .form as FormControl;\r\n break;\r\n }\r\n } catch (err) {\r\n this.control = new FormControl();\r\n }\r\n this.setFormValidators();\r\n }\r\n\r\n setFormValidators(){\r\n\r\n this.required = this.control?.hasValidator(Validators.required) ?? false;\r\n if (this.required){\r\n this.searchControl.setValidators(Validators.required);\r\n this.employeeSearchControl.setValidators(Validators.required);\r\n } else {\r\n this.searchControl.clearValidators();\r\n this.employeeSearchControl.clearValidators();\r\n }\r\n this.searchControl.updateValueAndValidity();\r\n this.employeeSearchControl.updateValueAndValidity();\r\n }\r\n\r\n\r\n writeValue(value: Type): void {\r\n this.value = value;\r\n if(!this.value){\r\n this.startDateControl.reset();\r\n this.endDateControl.reset();\r\n this.telephoneControl.reset();\r\n this.attachments = [];\r\n this.searchControl.reset();\r\n this.employeeSearchControl.reset();\r\n } else {\r\n this.startDateControl.setValue(this.value?.startDate);\r\n this.endDateControl.setValue(this.value?.endDate);\r\n this.searchControl.setValue(value['value']);\r\n this.telephoneControl.setValue(value)\r\n if(this.value['value'] === ''){\r\n this.control.reset()\r\n }\r\n this.employeeSearchControl.setValue(value['personName'])\r\n }\r\n }\r\n\r\n registerOnChange(fn: (val: Type | null) => Type): void {\r\n\r\n }\r\n\r\n registerOnTouched(fn: () => Type): void {\r\n }\r\n\r\n setDisabledState?(isDisabled: boolean): void {\r\n this.isDisabled = isDisabled;\r\n }\r\n}\r\n","import {Component, CUSTOM_ELEMENTS_SCHEMA, Inject} from '@angular/core';\r\nimport {MAT_DIALOG_DATA, MatDialogClose, MatDialogContent, MatDialogRef, MatDialogTitle} from '@angular/material/dialog';\r\nimport {CoreI18nService} from '../../../services';\r\n\r\n@Component({\r\n selector: 'app-terms-conditions',\r\n templateUrl: './terms-conditions.component.html',\r\n styleUrls: ['./terms-conditions.component.scss'],\r\n schemas: [CUSTOM_ELEMENTS_SCHEMA],\r\n imports: [\r\n MatDialogContent,\r\n MatDialogClose,\r\n MatDialogTitle\r\n ],\r\n standalone: true\r\n})\r\nexport class TermsConditionsComponent {\r\n termsBody: string = null;\r\n\r\n constructor(\r\n public dialogRef: MatDialogRef<TermsConditionsComponent>,\r\n public i18n: CoreI18nService,\r\n @Inject(MAT_DIALOG_DATA) public data: any\r\n ) {\r\n this.termsBody = data;\r\n }\r\n}\r\n","<div class=\"popup-container\">\r\n <div class=\"d-flex align-items-center justify-content-between\" mat-dialog-title>\r\n <h3 class=\"mb-0 font-16 fw-medium\" >{{i18n.translate('termsAndConditions')}}</h3>\r\n <ds-button matDialogClose icon>\r\n <ds-icon icon=\"close\" class=\"fs-20 fc-black\"></ds-icon>\r\n </ds-button>\r\n </div>\r\n <mat-dialog-content>\r\n <div class=\"px-md-4\">\r\n <p class=\"fs-15 fw-normal bg-color-light-gray p-3 text-break\" [innerHTML]='termsBody' > </p>\r\n </div>\r\n </mat-dialog-content>\r\n</div>\r\n","import { Pipe, PipeTransform } from '@angular/core';\r\nimport { TranslateService } from '@ngx-translate/core';\r\nimport * as en from '../i18n/en';\r\nimport * as ar from '../i18n/ar';\r\n\r\n@Pipe({\r\n name: 'translate',\r\n standalone: true\r\n})\r\nexport class TranslatePipe implements PipeTransform {\r\n private coreLocales: { [key: string]: { [key: string]: string } };\r\n public language: string;\r\n\r\n constructor() {\r\n // this.language = \"en\";\r\n this.language = (window as any).wmConfig.language;\r\n this.coreLocales = { en: en.default, ar: ar.default };\r\n }\r\n\r\n transform(key) {\r\n let result = null;\r\n try {\r\n result = this.coreLocales[this.language][key];\r\n } catch (e) {\r\n result = null;\r\n }\r\n return result || key;\r\n }\r\n\r\n getLanguage() {\r\n return this.language;\r\n }\r\n}","/* eslint-disable @angular-eslint/component-selector */\r\nimport { CoreI18nService } from '../../../../services';\r\nimport { Component, Input } from '@angular/core';\r\nimport {NgIf} from \"@angular/common\";\r\nimport {SatPopoverModule} from \"@ncstate/sat-popover\";\r\nimport {TranslatePipe} from \"../../../../pipes/translate.pipe\";\r\n\r\n\r\n@Component({\r\n selector: 'app-form-label',\r\n templateUrl: './form-label.component.html',\r\n styleUrls: ['./form-label.component.scss'],\r\n imports: [\r\n NgIf,\r\n SatPopoverModule,\r\n TranslatePipe\r\n\r\n ],\r\n standalone: true\r\n})\r\nexport class FormLabelComponent {\r\n @Input() tooltip;\r\n @Input() label = '';\r\n @Input() optional = false;\r\n constructor( public i18n: CoreI18nService) { }\r\n\r\n\r\n\r\n\r\n}\r\n","<div class=\"d-flex justify-content-between\">\r\n <div class=\"d-flex\">\r\n <span class=\"form-label mb-0\">{{ label }}</span>\r\n @if(tooltip) {\r\n <span class=\"form-label mb-0 mx-1\">\r\n <ds-icon\r\n icon=\"info fs-18\"\r\n class=\"cursor-pointer\"\r\n [satPopoverAnchor]=\"popover\"\r\n (click)=\"popover.toggle(); $event.stopImmediatePropagation()\"\r\n ></ds-icon>\r\n </span>\r\n }\r\n </div>\r\n <span *ngIf=\"optional\" class=\"optional-input\">\r\n {{ 'optional' | translate }}\r\n </span>\r\n</div>\r\n<sat-popover #popover [hasBackdrop]=\"true\" verticalAlign=\"below\">\r\n <div class=\"default-popover p-3 fs-14\">\r\n <span class=\"fs-14 fw-bold signature-notes\" [innerHTML]=\"tooltip\"></span>\r\n </div>\r\n</sat-popover>","export const RegexPatterns = {\r\n email: '^[a-z0-9._%+-]+@[a-z0-9.-]+\\\\.[a-z]{2,4}$', // Email validation\r\n };","import { CommonModule } from '@angular/common';\r\nimport { Component, Input, SimpleChanges } from '@angular/core';\r\nimport { MatError } from '@angular/material/form-field';\r\nimport { ControlValueAccessorDirective } from '../control-value-accessor.directive';\r\nimport {RegexPatterns} from \"../../../../regex/regex-patterns\";\r\n\r\n@Component({\r\n selector: 'app-validation-errors',\r\n templateUrl: './validation-errors.component.html',\r\n styleUrls: ['./validation-errors.component.scss'],\r\n standalone: true,\r\n imports: [\r\n CommonModule,\r\n MatError\r\n ]\r\n})\r\nexport class ValidationErrorsComponent<Type> extends ControlValueAccessorDirective<Type> {\r\n @Input() errors = {};\r\n @Input() customErrorMessages = {};\r\n errorMessages = {\r\n required: this.i18n.translate('thisFieldIsRequired'),\r\n maxlength: this.i18n.translate('thisFieldMaxLength'),\r\n minlength: this.i18n.translate('thisFieldMinLength'),\r\n validatePhoneNumber: this.i18n.translate('pleaseEnterValidNumber')\r\n };\r\n\r\n ngOnChanges(changes: SimpleChanges): void {\r\n const { customErrorMessages } = changes;\r\n if (customErrorMessages) {\r\n this.errorMessages = {\r\n ...this.errorMessages,\r\n ...customErrorMessages.currentValue,\r\n };\r\n }\r\n if (this.errors?.['pattern']?.requiredPattern === RegexPatterns.email){\r\n this.errorMessages['pattern'] = 'You must enter email'\r\n }\r\n }\r\n}\r\n"," @if(control.touched) {\r\n @for(error of errors | keyvalue; track error ) {\r\n <mat-error class=\"mb-2\">\r\n {{ errorMessages[error.key] }} {{errors['maxlength']?.requiredLength}} {{errors['minlength']?.requiredLength}}\r\n </mat-error>\r\n }\r\n }","import { Component, CUSTOM_ELEMENTS_SCHEMA, Input, OnInit } from '@angular/core';\r\nimport { CoreI18nService } from '../../../../services';\r\nimport { MatSlideToggle } from '@angular/material/slide-toggle';\r\nimport { DatePipe, DecimalPipe, NgClass, NgForOf, NgIf, NgSwitch, NgSwitchCase, NgSwitchDefault } from '@angular/common';\r\nimport {TranslatePipe} from \"../../../../pipes/translate.pipe\";\r\n\r\n@Component({\r\n selector: 'app-info-item',\r\n templateUrl: './info-item.component.html',\r\n styleUrls: ['./info-item.component.scss'],\r\n standalone: true,\r\n imports: [\r\n MatSlideToggle,\r\n NgSwitchCase,\r\n DecimalPipe,\r\n DatePipe,\r\n NgClass,\r\n NgSwitchDefault,\r\n NgSwitch,\r\n TranslatePipe\r\n ],\r\n schemas: [CUSTOM_ELEMENTS_SCHEMA]\r\n})\r\nexport class InfoItemComponent implements OnInit {\r\n @Input() label!: string;\r\n @Input() value!: any;\r\n @Input() name!: any;\r\n @Input() type = 'text';\r\n @Input() dateType!: string;\r\n @Input() multiple!: boolean;\r\n @Input() insideTable!: boolean;\r\n @Input() hasLabel = true;\r\n @Input() arrayList!: any[];\r\n @Input() actionType!: string;\r\n @Input() download!: boolean;\r\n\r\n constructor(public i18n: CoreI18nService) { }\r\n\r\n ngOnInit() {\r\n if (this.type == 'currency') {\r\n this.value = this.value.replaceAll(',', '');\r\n }\r\n }\r\n\r\n viewForm(url: string) {\r\n window.open('/group/i-gate/wm-bpm/forms?formId=' + url);\r\n }\r\n\r\n getImage(email: string) {\r\n return '/group/i-gate/wm-bpm/forms/-/proxy/portrait?email=' + email;\r\n }\r\n\r\n}\r\n","<ng-container [ngSwitch]=\"type\">\r\n @if(label){\r\n <span class=\"name \">{{ label }}</span>\r\n }\r\n\r\n <!-- class=\"disc\" -->\r\n <span *ngSwitchCase=\"'attach'\">\r\n<!-- <app-docs-uploader [field]=\"value\" styleHeight=\"mini\" display=\"only-files\"></app-docs-uploader>-->\r\n </span>\r\n <span class=\"disc mt-2 \" *ngSwitchCase=\"'user-picker'\">\r\n @if(!multiple){\r\n <div class=\"d-flex align-items-center\">\r\n <div class=\"img-card circled-img small\">\r\n <img [src]=\"getImage(value)\" onerror=\"this.onerror=null;this.src='assets/images/user.svg';\" alt=\"\">\r\n </div>\r\n <div class=\"line-height-1 mx-2\" [ngClass]=\"{'flex-grow-1': actionType === 'delete'}\">\r\n <h6 class=\"fs-14 fw-bold fc-onyx mb-0\">{{name}}</h6>\r\n <span class=\"fs-12 fc-dark-gray\">{{value}}</span>\r\n </div>\r\n </div>\r\n }\r\n\r\n @if(multiple){\r\n @if(multiple){\r\n <ng-container>\r\n @for (emails of arrayList; track $index; let ind = $index) {\r\n <div class=\"d-flex flex-wrap\">\r\n <ng-container>\r\n <div class=\"img-card circled-img small mb-3\">\r\n <img [src]=\"getImage(value)\" onerror=\"this.onerror=null;this.src='assets/images/user.svg';\" alt=\"\">\r\n </div>\r\n <div class=\"line-height-1 mx-2 mb-3\" [ngClass]=\"{'flex-grow-1': actionType === 'delete'}\">\r\n <h6 class=\"fs-14 fw-bold fc-onyx mb-0\"> {{(emails?.['personName'])}}</h6>\r\n <span class=\"fs-12 fc-dark-gray\"> {{emails?.['personEmail']}}</span>\r\n </div>\r\n </ng-container>\r\n </div>\r\n }\r\n </ng-container>\r\n }\r\n }\r\n </span>\r\n\r\n <span class=\"disc\" *ngSwitchCase=\"'toggle'\">\r\n <mat-slide-toggle [checked]=\"value\"></mat-slide-toggle>\r\n </span>\r\n\r\n <span class=\"disc\" *ngSwitchCase=\"'toggleBtn'\">\r\n <span>{{value}}</span>\r\n </span>\r\n <span class=\"disc\" *ngSwitchCase=\"'telephone'\">\r\n <div class=\"d-flex align-items-center\">\r\n <bdi>{{ value }}</bdi>\r\n </div>\r\n </span>\r\n\r\n <span class=\"disc\" *ngSwitchCase=\"'currency'\">\r\n <span>{{value | number:'1.2-2'}}</span>\r\n </span>\r\n\r\n <span class=\"disc\" *ngSwitchCase=\"'date'\">\r\n @if(dateType === 'hijri'){\r\n <span>\r\n {{ value }}\r\n </span>\r\n }\r\n @if(dateType === 'yearOnly'){\r\n <span>\r\n {{ value }}\r\n </span>\r\n }\r\n@if(dateType !== 'hijri' && dateType !== 'yearOnly' && !value?.startDate){\r\n <span>\r\n {{value | date :'dd/MM/yyyy'}}\r\n </span>\r\n}\r\n @if(dateType !== 'hijri' && dateType !== 'yearOnly' && value?.startDate){\r\n <span>\r\n {{value?.['startDate'] | date :'dd/MM/yyyy'}}\r\n -\r\n {{value?.['endDate'] | date :'dd/MM/yyyy'}}\r\n </span>\r\n }\r\n\r\n </span>\r\n\r\n <span class=\"disc\" *ngSwitchCase=\"'dateHijri'\">\r\n {{ value }}\r\n </span>\r\n\r\n <span class=\"disc breakLine\" *ngSwitchCase=\"'link'\">\r\n <a [href]=\"value\" target=\"_blank\">{{'View' | translate}} {{ label }} </a>\r\n </span>\r\n <span class=\"disc breakLine\" *ngSwitchCase=\"'formIdLink'\">\r\n <a (click)=\"viewForm(value)\">{{ value }} </a>\r\n </span>\r\n <span [ngClass]=\"{'breakLine': !insideTable}\" class=\"disc \" *ngSwitchCase=\"'text'\">\r\n {{ value }}\r\n </span>\r\n <span [ngClass]=\"{'breakLine': !insideTable}\" class=\"disc \" *ngSwitchCase=\"'multipleSelect'\">\r\n @for(item of value; track $index; let i =$index){\r\n <span>{{item.value}}\r\n @if(!(i === value.length-1)){\r\n <span>, </span>\r\n }\r\n </span>\r\n }\r\n\r\n </span>\r\n <span [ngClass]=\"{'breakLine': !insideTable}\" class=\"disc \" [innerHTML]=\"value\" *ngSwitchDefault>\r\n </span>\r\n</ng-container>\r\n","/* eslint-disable @angular-eslint/directive-selector */\r\n/* eslint-disable @typescript-eslint/no-empty-function */\r\nimport { Directive, HostListener } from '@angular/core';\r\n\r\n@Directive({\r\n selector: '[enOnly]',\r\n standalone: true\r\n})\r\nexport class EnOnlyDirective {\r\n private specialKeys = ['Backspace', 'ArrowRight', 'ArrowLeft', 'ArrowUp', 'ArrowDown', 'Control']\r\n\r\n constructor() {\r\n\r\n }\r\n\r\n regex = /^[~`!@#$%^&*()_+=[\\]\\{}|;':\",.\\/<>?a-zA-Z0-9- ]+$/;\r\n\r\n @HostListener('keydown', ['$event'])\r\n onKeyDown(event) {\r\n const text = event.key; \r\n const english = /^[a-zA-Z ]*$/;\r\n if (this.regex.test(text) || text == \" \" || text == 'Backspace' || (event.ctrlKey && (text == 'c' || text == 'ؤ' || text == 'v' || text == 'ر' || text == 'x' || text == 'ء' || text == 'a' || text == 'ش' || text == 'z' || text == 'ئ'))) {\r\n return;\r\n }\r\n else {\r\n event.preventDefault();\r\n }\r\n \r\n }\r\n\r\n\r\n\r\n\r\n @HostListener('paste', ['$event'])\r\n onPaste(event) {\r\n const data = event.clipboardData.getData('text/plain');\r\n if ( !(this.regex.test(data)) ) {\r\n event.preventDefault();\r\n }\r\n\r\n }\r\n\r\n\r\n\r\n\r\n\r\n @HostListener('drop', ['$event'])\r\n onDrop(event) {\r\n const data = event.dataTransfer.getData(\"text/plain\");\r\n if (!(this.regex.test(data))) {\r\n event.preventDefault();\r\n }\r\n }\r\n\r\n}\r\n","/* eslint-disable @typescript-eslint/no-empty-function */\r\n/* eslint-disable @angular-eslint/directive-selector */\r\nimport { Directive,HostListener } from '@angular/core';\r\n\r\n@Directive({\r\n selector: '[arOnly]',\r\n standalone: true\r\n})\r\nexport class ArOnlyDirective {\r\n private specialKeys = ['Backspace', 'ArrowRight', 'ArrowLeft', 'ArrowUp', 'ArrowDown', 'Control']\r\n\r\n constructor() {\r\n\r\n }\r\n\r\n regex = /^[~`!@#$%^&*()_+=[\\]\\{}|;':\",.\\/<>?0-9-]+$/;\r\n\r\n @HostListener('keydown', ['$event'])\r\n onKeyDown(event) {\r\n const text = event.key;\r\n if (event.ctrlKey && (text == 'c' || text == 'v' || text == 'x' || text == 'a' || text == 'z' )) {\r\n return;\r\n }\r\n const arabicAlphabetDigits = /[\\u0600-\\u06ff]|[\\u0750-\\u077f]|[\\ufb50-\\ufc3f]|[\\ufe70-\\ufefc]|[\\u0200]|[\\u00A0]/g;\r\n if (arabicAlphabetDigits.test(text) || text == \" \" || text == 'Backspace' || this.regex.test(text)) {\r\n return;\r\n }\r\n else {\r\n event.preventDefault();\r\n }\r\n \r\n }\r\n\r\n @HostListener('paste', ['$event'])\r\n onPaste(event) {\r\n const data = event.clipboardData.getData('text/plain');\r\n if (!(/[\\u0600-\\u06ff]|[\\u0750-\\u077f]|[\\ufb50-\\ufc3f]|[\\ufe70-\\ufefc]|[\\u0200]|[\\u00A0]/g.test(data))) {\r\n event.preventDefault();\r\n }\r\n\r\n }\r\n\r\n @HostListener('drop', ['$event'])\r\n onDrop(event) {\r\n const data = event.dataTransfer.getData(\"text/plain\");\r\n if (!(/[\\u0600-\\u06ff]|[\\u0750-\\u077f]|[\\ufb50-\\ufc3f]|[\\ufe70-\\ufefc]|[\\u0200]|[\\u00A0]/g.test(data))) {\r\n event.preventDefault();\r\n }\r\n }\r\n\r\n}\r\n","import { MatDatepickerInput, MatDatepickerModule, MatDatepickerToggle } from \"@angular/material/datepicker\";\r\nimport { MatFormField, MatFormFieldModule } from \"@angular/material/form-field\";\r\nimport { MatInput } from \"@angular/material/input\";\r\nimport { FormLabelComponent } from \"./form-label/form-label.component\";\r\nimport { ValidationErrorsComponent } from \"./validation-errors/validation-errors.component\";\r\nimport { ReactiveFormsModule } from \"@angular/forms\";\r\nimport { InfoItemComponent } from \"./info-item/info-item.component\";\r\nimport { EnOnlyDirective } from \"../../../directives/en.directive\";\r\nimport { ArOnlyDirective } from \"../../../directives/ar.directive\";\r\nimport { NgClass } from \"@angular/common\";\r\nimport { TranslatePipe } from \"../../../pipes/translate.pipe\";\r\nimport { MatNativeDateModule } from \"@angular/material/core\";\r\n\r\nexport const MatDatePickerImports = [\r\n MatDatepickerToggle,\r\n MatDatepickerInput,\r\n MatDatepickerModule,\r\n MatNativeDateModule\r\n]\r\n\r\nexport const MatFormImports = [\r\n MatFormFieldModule,\r\n MatFormField,\r\n MatInput,\r\n]\r\n\r\nexport const Shareds = [\r\n FormLabelComponent,\r\n ValidationErrorsComponent,\r\n InfoItemComponent,\r\n ReactiveFormsModule,\r\n NgClass,\r\n TranslatePipe\r\n]\r\n\r\nexport const TextLanguageDirectives = [\r\n EnOnlyDirective,\r\n ArOnlyDirective\r\n]\r\n\r\n","import { Component, CUSTOM_ELEMENTS_SCHEMA, DestroyRef, EventEmitter, forwardRef, inject, Input, OnInit, Output } from '@angular/core';\r\nimport {MatCheckbox} from \"@angular/material/checkbox\";\r\nimport {FormsModule, NG_VALUE_ACCESSOR} from \"@angular/forms\";\r\nimport { ControlValueAccessorDirective } from '../control-value-accessor.directive';\r\nimport { TermsConditionsComponent } from '../../terms-conditions/terms-conditions.component';\r\nimport { MatDialog } from '@angular/material/dialog';\r\nimport { Shareds } from '../shared-imports';\r\nimport { takeUntilDestroyed } from '@angular/core/rxjs-interop';\r\n\r\n@Component({\r\n selector: 'app-checkbox',\r\n templateUrl: './checkbox.component.html',\r\n styleUrls: ['./checkbox.component.scss'],\r\n schemas: [CUSTOM_ELEMENTS_SCHEMA],\r\n imports: [\r\n MatCheckbox,\r\n FormsModule,\r\n ...Shareds\r\n ],\r\n standalone: true,\r\n providers: [\r\n {\r\n provide: NG_VALUE_ACCESSOR,\r\n useExisting: forwardRef(() => CheckBoxComponent),\r\n multi: true,\r\n },\r\n ]\r\n\r\n})\r\nexport class CheckBoxComponent<Type> extends ControlValueAccessorDirective<Type> implements OnInit {\r\n @Input() containTerms: boolean;\r\n @Input() termsLabel: string;\r\n @Input() linkText: string;\r\n @Input() hrefLink: string;\r\n @Input() link: string;\r\n @Input() termsBody: any;\r\n @Output() downloadCheckBox = new EventEmitter();\r\n destroyRef = inject(DestroyRef);\r\n dialog = inject(MatDialog);\r\n override ngOnInit(): void {\r\n super.ngOnInit()\r\n if (this.control.value == 'true'){\r\n this.control.setValue(true)\r\n }\r\n\r\n\r\n this.actionStateService.resetAction$\r\n .pipe(takeUntilDestroyed(this.destroyRef))\r\n .subscribe(res => {\r\n if (!this.isReadOnly && this.control.enabled) {\r\n this.control.reset();\r\n }\r\n });\r\n \r\n }\r\n\r\n openUrl(){\r\n window.open(this.hrefLink)\r\n }\r\n\r\n valueChange(event: any) {\r\n const checked = event.checked;\r\n this.control.setValue(checked)\r\n }\r\n\r\n openTermsPopup(): void {\r\n const dialogRef = this.dialog.open(TermsConditionsComponent, {\r\n data: this.termsBody,\r\n width: '700px',\r\n panelClass: ['main-popup'],\r\n });\r\n\r\n dialogRef.afterClosed().subscribe(() => {\r\n });\r\n }\r\n}\r\n","<mat-checkbox\r\n [ngClass]=\"{'mx-4': isReadOnly}\"\r\n class=\"mb-3\"\r\n [disabled]=\"isDisabled || isReadOnly\"\r\n id=\"{{ name }}{{ randomID }}\"\r\n [name]=\"name\"\r\n (change)=\"valueChange($event)\"\r\n [checked]=\"control.value ? control.value : false\"\r\n [formControl]=\"control\">\r\n \r\n <div class=\"d-flex\">\r\n @if(label){\r\n <app-form-label [label]=\"label\" [optional]=\"!control.hasValidator(Validators['required'])\" [tooltip]=\"tooltip\"></app-form-label>\r\n }\r\n \r\n @if(containTerms) {\r\n <span\r\n class=\"fs-12 fw-bold fc-coral cursor-pointer mx-1\"\r\n (click)=\"openTermsPopup(); false\">\r\n {{ termsLabel ? termsLabel : 'termsAndConditions' | translate }}\r\n </span>\r\n }\r\n </div>\r\n \r\n @if(link) {\r\n <ng-container>\r\n <span> | </span>\r\n <a \r\n class=\"fs-12 fw-bold fc-coral cursor-pointer mx-1 d-inline-flex align-items-center gap-1\" \r\n href=\"{{ hrefLink }}\" \r\n target=\"_blank\">\r\n <ds-icon icon=\"external-link\"></ds-icon>\r\n <span class=\"underline\">{{ linkText }}</span>\r\n </a>\r\n </ng-container>\r\n }\r\n</mat-checkbox>\r\n<app-validation-errors [errors]=\"control.errors\"></app-validation-errors>","import {NG_VALUE_ACCESSOR} from '@angular/forms';\r\nimport { Component, Input, Output, EventEmitter, SimpleChanges, CUSTOM_ELEMENTS_SCHEMA, forwardRef, OnInit, DestroyRef, inject } from '@angular/core';\r\nimport {NgClass} from \"@angular/common\";\r\nimport {MatAutocomplete, MatAutocompleteTrigger, MatOption} from \"@angular/material/autocomplete\";\r\nimport { ControlValueAccessorDirective } from '../control-value-accessor.directive';\r\nimport { MatInputModule } from '@angular/material/input';\r\nimport { Shareds } from '../shared-imports';\r\nimport { takeUntilDestroyed } from '@angular/core/rxjs-interop';\r\n\r\n\r\n@Component({\r\n selector: 'app-custom-searchable',\r\n templateUrl: './custom-searchable.component.html',\r\n styleUrls: ['./custom-searchable.component.scss'],\r\n schemas: [CUSTOM_ELEMENTS_SCHEMA],\r\n imports: [\r\n NgClass,\r\n MatAutocomplete,\r\n MatOption,\r\n MatAutocompleteTrigger,\r\n MatInputModule,\r\n ...Shareds\r\n],\r\n standalone: true,\r\n providers: [\r\n {\r\n provide: NG_VALUE_ACCESSOR,\r\n useExisting: forwardRef(() => CustomSearchableComponent),\r\n multi: true,\r\n },\r\n ]\r\n})\r\n\r\n\r\n\r\nexport class CustomSearchableComponent <Type> extends ControlValueAccessorDirective<Type> implements OnInit {\r\n @Input() options!: any;\r\n @Output() selectedValue = new EventEmitter();\r\n @Output() isLengthGreaterThan4 = new EventEmitter();\r\n @Input() disabled = false;\r\n @Input() displayedLabel: string= 'description';\r\n @Input() key: string = 'description';\r\n @Input() floatLabel: any = 'auto';\r\n @Input() className = 'bordered-input';\r\n destroyRef = inject(DestroyRef);\r\n override ngOnInit(): void {\r\n super.ngOnInit()\r\n this.actionStateService.resetAction$\r\n .pipe(takeUntilDestroyed(this.destroyRef))\r\n .subscribe(res => {\r\n if (!this.isReadOnly && this.control.enabled) {\r\n this.control.reset();\r\n }\r\n });\r\n\r\n }\r\n\r\n noData = false;\r\n filteredOptions!: any;\r\n\r\n clearInput() {\r\n this.control.reset()\r\n this.searchControl.reset()\r\n if (!this.isReadOnly) {\r\n this.setFilteredOptions()\r\n }\r\n }\r\n\r\n onFocusOut(){\r\n this.control.markAsTouched()\r\n }\r\n\r\n onKeyDown(e: KeyboardEvent, input: HTMLInputElement){\r\n setTimeout(() => {\r\n //reset in case no value and delete or backspace pressed\r\n if( (e.keyCode == 8 || e.keyCode == 46) && !this.control.value){\r\n if(this.control){\r\n this.control.reset()\r\n this.control.markAsTouched()\r\n }\r\n input.focus();\r\n }\r\n })\r\n }\r\n\r\n ngOnChanges(changes: SimpleChanges) {\r\n this.setFilteredOptions()\r\n }\r\n onValueChange(data) {\r\n this.setFilteredOptions(data)\r\n }\r\n\r\n setFilteredOptions(data?) {\r\n if (this.options?.length > 0) {\r\n this.noData = false\r\n // this.loading = false\r\n this.filteredOptions = data?.target?.value ? this._filter(data.target.value) : this.options.slice(0, 30)\r\n this.filteredOptions\r\n } else {\r\n this.noData = true\r\n }\r\n }\r\n\r\n private _filter(value: any): any {\r\n const filterValue = typeof value === 'string' ? value?.toLowerCase() : value;\r\n return this.options?.filter((option: any) => Object.values(option).join('')?.toLowerCase().includes(filterValue)).slice(0, 30);\r\n }\r\n\r\n displayFn(option: any): string {\r\n return option ? option : '';\r\n }\r\n\r\n getAutoComplete(value: any) {\r\n this.control.setValue({key:value[this.key],value:value[this.displayedLabel]});\r\n this.searchControl.setValue(value[this.displayedLabel]);\r\n this.selectedValue.emit(value)\r\n }\r\n\r\n}\r\n","@if(isReadOnly && control?.value) {\r\n<ng-container>\r\n <app-info-item\r\n class=\"info-item w-100\"\r\n [label]=\"label\"\r\n [insideTable]=\"insideTable\"\r\n [hasLabel]=\"!!label\"\r\n [value]=\"control?.value.value\"\r\n ></app-info-item>\r\n</ng-container>\r\n} @if(!isReadOnly) {\r\n<ng-container>\r\n @if(label) {\r\n <app-form-label\r\n [label]=\"label\"\r\n [optional]=\"!control.hasValidator(Validators['required'])\"\r\n [tooltip]=\"tooltip\"\r\n ></app-form-label>\r\n }\r\n\r\n <mat-form-field\r\n class=\"primary-form {{ className }}\"\r\n [ngClass]=\"{ 'input-disabled': disabled || loading,\r\n 'custom-validation': !control.hasValidator(Validators['required'])\r\n }\"\r\n [floatLabel]=\"floatLabel\"\r\n >\r\n <span class=\"sfi sfi-search fc-coral fs-18\" matPrefix></span>\r\n <label class=\"mat-form-content\">\r\n <input\r\n #autocompleteInput\r\n type=\"text\"\r\n (keydown)=\"onKeyDown($event, autocompleteInput)\"\r\n [attr.disabled]=\"disabled\"\r\n [placeholder]=\"label\"\r\n aria-label=\"Number\"\r\n matInput\r\n (input)=\"onValueChange($event)\"\r\n [formControl]=\"searchControl\"\r\n [name]=\"name\"\r\n [matAutocomplete]=\"auto\"\r\n [value]=\"value?.key\"\r\n (focusout)=\"onFocusOut()\"\r\n />\r\n </label>\r\n\r\n @if(loading) {\r\n <span class=\"sfi sfi-spinner d-inline-block spin fc-coral\" matSuffix></span>\r\n } @if(!loading && searchControl?.value) {\r\n <span\r\n class=\"sfi sfi-close d-inline-block fc-coral cursor-pointer fs-12\"\r\n (click)=\"clearInput()\"\r\n matSuffix\r\n ></span>\r\n }\r\n\r\n <mat-autocomplete\r\n autoActiveFirstOption\r\n #auto=\"matAutocomplete\"\r\n [displayWith]=\"displayFn\"\r\n (optionSelected)=\"getAutoComplete($event.option.value)\">\r\n \r\n \r\n \r\n\r\n @if(!noData) {\r\n <ng-container>\r\n @for(option of filteredOptions; track option) {\r\n <mat-option [value]=\"option\">\r\n <div class=\"d-flex align-items-center\">\r\n @if(option['avatar_url']) {\r\n <figure class=\"img-card small circled-img p-0 m-0\">\r\n <img [src]=\"option['avatar_url']\" alt=\"\" />\r\n </figure>\r\n } @if(option['avatar_url']) {\r\n <span class=\"mx-2\"></span>\r\n }\r\n\r\n {{ option[displayedLabel] }}\r\n </div>\r\n </mat-option>\r\n }\r\n </ng-container>\r\n } @if(noData) {\r\n <ng-container>\r\n <mat-option [disabled]=\"true\" class=\"text-center\">No Data</mat-option>\r\n </ng-container>\r\n }\r\n </mat-autocomplete>\r\n\r\n <!-- <mat-error class=\"mb-2\" *ngIf=\"(!control?.valid)\">{{ 'validSelectError' | translate }}{{ label }}</mat-error> -->\r\n\r\n @if(showHint) {\r\n <mat-hint>\r\n <span\r\n class=\"sfi sfi-check-circle font-10 fc-dark-gray\"\r\n [ngClass]=\"{ 'fc-oasis-light-imp': value }\"\r\n ></span>\r\n <span class=\"mx-1\"></span>\r\n <span class=\"fs-12 fc-onyx\">{{ hint }}</span>\r\n </mat-hint>\r\n }\r\n </mat-form-field>\r\n\r\n <app-validation-errors [errors]=\"control.errors\"></app-validation-errors>\r\n</ng-container>\r\n}\r\n","import {\r\n FormControl,\r\n NG_VALUE_ACCESSOR,\r\n Validators,\r\n} from '@angular/forms';\r\nimport {\r\n AfterViewInit,\r\n Component,\r\n CUSTOM_ELEMENTS_SCHEMA,\r\n DestroyRef,\r\n EventEmitter,\r\n forwardRef,\r\n inject,\r\n Inject,\r\n Input,\r\n Output,\r\n SimpleChanges,\r\n ViewChild,\r\n} from '@angular/core';\r\nimport { CustomDateFormat } from './date-format';\r\nimport { ControlValueAccessorDirective } from '../control-value-accessor.directive';\r\nimport { format } from 'date-fns';\r\nimport { MatDatePickerImports, MatFormImports, Shareds } from '../shared-imports';\r\nimport { MAT_DATE_FORMATS } from '@angular/material/core';\r\nimport { MatDatepicker } from '@angular/material/datepicker';\r\nimport { takeUntilDestroyed } from '@angular/core/rxjs-interop';\r\n\r\nconst YEAR_ONLY_FORMAT = {\r\n parse: {\r\n dateInput: 'YYYY',\r\n },\r\n display: {\r\n dateInput: 'YYYY',\r\n monthYearLabel: 'YYYY',\r\n dateA11yLabel: 'LL',\r\n monthYearA11yLabel: 'YYYY',\r\n },\r\n};\r\n\r\n@Component({\r\n selector: 'app-datepicker',\r\n templateUrl: './date-picker.component.html',\r\n styleUrls: ['./date-picker.component.scss'],\r\n standalone: true,\r\n schemas: [CUSTOM_ELEMENTS_SCHEMA],\r\n providers: [\r\n {\r\n provide: NG_VALUE_ACCESSOR,\r\n useExisting: forwardRef(() => DatePickerComponent),\r\n multi: true,\r\n },\r\n {\r\n provide: MAT_DATE_FORMATS,\r\n useClass: CustomDateFormat,\r\n },\r\n ],\r\n\r\n imports: [\r\n MatDatepicker,\r\n ...MatDatePickerImports,\r\n ...MatFormImports,\r\n ...Shareds\r\n ],\r\n})\r\nexport class DatePickerComponent<Type>\r\n extends ControlValueAccessorDirective<Type>\r\n implements AfterViewInit\r\n{\r\n date = new FormControl();\r\n @Input() className!: string;\r\n @Input() calendarType!: string;\r\n @Input() yearOnly: boolean;\r\n @Output() dateValue: EventEmitter<any> = new EventEmitter();\r\n showIslamic = false;\r\n @Input() error!: string;\r\n @Inject(MAT_DATE_FORMATS) public dateFormat: CustomDateFormat;\r\n destroyRef = inject(DestroyRef);\r\n\r\n @Input() set format(_format: string) {\r\n if (_format) {\r\n this.dateFormat.updateDateFormat(\r\n { dateInput: _format },\r\n { dateInput: _format }\r\n );\r\n }\r\n }\r\n\r\n @ViewChild(MatDatepicker) datepicker: MatDatepicker<any>;\r\n floatLabel: any = 'auto';\r\n override ngOnInit(): void {\r\n super.ngOnInit()\r\n this.actionStateService.resetAction$\r\n .pipe(takeUntilDestroyed(this.destroyRef))\r\n .subscribe(res => {\r\n if (!this.isReadOnly && this.control.enabled) {\r\n this.control.reset();\r\n }\r\n });\r\n\r\n }\r\n\r\n ngAfterViewInit(): void {\r\n if (!this.isReadOnly && this.yearOnly) this.activateYearOnlyMode();\r\n }\r\n\r\n ngOnChanges(changes: SimpleChanges) {\r\n this.setDateFormControl();\r\n }\r\n\r\n setDateFormControl() {\r\n const today = new Date();\r\n const currentYear = today.getFullYear();\r\n const currentMonth = today.getMonth();\r\n const currentDay = today.getDate();\r\n if (this.minDate) {\r\n if (this.minDate == 'today') {\r\n this.minDateValue = new Date(currentYear, currentMonth, currentDay);\r\n }\r\n }\r\n\r\n if (this.maxDate) {\r\n if (this.maxDate == 'today') {\r\n this.maxDateValue = new Date(currentYear, currentMonth, currentDay);\r\n } else if (this.maxDate == 'oneYear') {\r\n this.maxDateValue = new Date(\r\n currentYear + 1,\r\n currentMonth,\r\n currentDay - 1\r\n );\r\n }\r\n }\r\n if (this.customMaxDate) {\r\n const date = new Date(this.customMaxDate);\r\n this.maxDateValue = new Date(\r\n date.getFullYear(),\r\n date.getMonth(),\r\n date.getDate()\r\n );\r\n }\r\n if (this.customMinDate) {\r\n const date = new Date(this.customMinDate);\r\n this.minDateValue = new Date(\r\n date.getFullYear(),\r\n date.getMonth(),\r\n date.getDate()\r\n );\r\n }\r\n if (this.required) this.control.addValidators(Validators.required);\r\n }\r\n\r\n focusPicker(picker) {\r\n picker.open();\r\n }\r\n\r\n dateChange(event: any) {\r\n if (event?.value && !this.isDisabled) {\r\n let inputValue;\r\n inputValue = format(\r\n new Date(event.value),\r\n \"yyyy-MM-dd'T'HH:mm:ss.SSSxxx\"\r\n );\r\n this.control.setValue(inputValue);\r\n }\r\n }\r\n\r\n clearDateValue(event): void {\r\n this.control.reset();\r\n this.control.markAsTouched();\r\n }\r\n\r\n private activateYearOnlyMode(): void {\r\n this.dateFormat.updateDateFormat(\r\n YEAR_ONLY_FORMAT.parse,\r\n YEAR_ONLY_FORMAT.display\r\n );\r\n if (this.control) {\r\n this.control.setValue(format(new Date(this.control.value), 'yyyy'));\r\n }\r\n this.datepicker.startView = 'multi-year';\r\n this.datepicker.yearSelected.subscribe((e) => {\r\n this.control.setValue(format(new Date(e), 'yyyy'));\r\n this.datepicker.close();\r\n });\r\n this.datepicker.openedStream.subscribe(() => {\r\n document.body.classList.add('year-only');\r\n });\r\n this.datepicker.closedStream.subscribe(() => {\r\n document.body.classList.remove('year-only');\r\n });\r\n }\r\n}\r\n","@if(!isReadOnly) {\r\n <ng-container>\r\n @if(label) {\r\n <app-form-label [label]=\"label\" [optional]=\"!control.hasValidator(Validators['required'])\" [tooltip]=\"tooltip\"></app-form-label>\r\n }\r\n\r\n <div class=\"datePicker justify-content-between mb-1\">\r\n <mat-form-field\r\n [ngClass]=\"{ 'input-disabled': isDisabled }\"\r\n [floatLabel]=\"floatLabel\"\r\n >\r\n <label class=\"mat-form-content\">\r\n <input\r\n matInput\r\n (dateInput)=\"dateChange($event)\"\r\n [placeholder]=\"label ? ('select' | translate) + ' ' + label : ''\"\r\n (click)=\"focusPicker(dp)\"\r\n [min]=\"minDateValue\"\r\n [max]=\"maxDateValue\"\r\n readonly\r\n [matDatepicker]=\"dp\"\r\n [formControl]=\"control\"\r\n />\r\n </label>\r\n\r\n @if(control?.value) {\r\n <ds-icon\r\n matSuffix\r\n icon=\"close\"\r\n class=\"fc-coral fs-10 mx-2 cursor-pointer\"\r\n (click)=\"clearDateValue($event)\"\r\n ></ds-icon>\r\n }\r\n\r\n <mat-datepicker-toggle matSuffix [for]=\"dp\">\r\n <ds-icon\r\n icon=\"calendar-o\"\r\n class=\"fc-black fs-18\"\r\n matDatepickerToggleIcon\r\n ></ds-icon>\r\n </mat-datepicker-toggle>\r\n\r\n <mat-datepicker #dp></mat-datepicker>\r\n <!-- <mat-error *ngIf=\"errorMessage\">{{errorMessage}}</mat-error> -->\r\n </mat-form-field>\r\n </div>\r\n <app-validation-errors [errors]=\"control.errors\"></app-validation-errors>\r\n\r\n </ng-container>\r\n}\r\n\r\n@if(isReadOnly && control.value) {\r\n <ng-container>\r\n <app-info-item\r\n class=\"info-item w-100\"\r\n type=\"date\"\r\n [insideTable]=\"insideTable\"\r\n [dateType]=\"calendarType\"\r\n [label]=\"label\"\r\n [value]=\"control.value\"\r\n [hasLabel]=\"!!label\"\r\n >\r\n </app-info-item>\r\n </ng-container>\r\n}\r\n","/* eslint-disable @angular-eslint/component-selector */\r\n/* eslint-disable @typescript-eslint/no-empty-function */\r\nimport {\r\n Component,\r\n CUSTOM_ELEMENTS_SCHEMA,\r\n DestroyRef,\r\n forwardRef,\r\n inject,\r\n Inject,\r\n Input,\r\n SimpleChanges,\r\n ViewChild,\r\n} from '@angular/core';\r\nimport { ControlValueAccessorDirective } from '../control-value-accessor.directive';\r\nimport {\r\n NG_VALUE_ACCESSOR,\r\n Validators,\r\n} from '@angular/forms';\r\nimport { MatDatepicker } from '@angular/material/datepicker';\r\nimport { MAT_DATE_FORMATS } from '@angular/material/core';\r\nimport { CustomDateFormat } from '../date-picker/date-format';\r\nimport { format } from 'date-fns';\r\nimport { MatDatePickerImports, MatFormImports, Shareds } from '../shared-imports';\r\nimport { takeUntilDestroyed } from '@angular/core/rxjs-interop';\r\n\r\nconst YEAR_ONLY_FORMAT = {\r\n parse: {\r\n dateInput: 'YYYY',\r\n },\r\n display: {\r\n dateInput: 'YYYY',\r\n monthYearLabel: 'YYYY',\r\n dateA11yLabel: 'LL',\r\n monthYearA11yLabel: 'YYYY',\r\n },\r\n};\r\n\r\n@Component({\r\n selector: 'app-date-range-picker',\r\n templateUrl: './date-range-picker.component.html',\r\n styleUrls: ['./date-range-picker.component.scss'],\r\n schemas: [CUSTOM_ELEMENTS_SCHEMA],\r\n standalone: true,\r\n providers: [\r\n {\r\n provide: NG_VALUE_ACCESSOR,\r\n useExisting: forwardRef(() => DateRangePickerComponent),\r\n multi: true,\r\n },\r\n {\r\n provide: MAT_DATE_FORMATS,\r\n useClass: CustomDateFormat,\r\n },\r\n ],\r\n imports: [\r\n ...MatDatePickerImports,\r\n ...MatFormImports,\r\n ...Shareds\r\n ],\r\n})\r\nexport class DateRangePickerComponent<\r\n Type\r\n> extends ControlValueAccessorDirective<Type> {\r\n @Input() className = 'white-input';\r\n @Input() yearOnly: boolean;\r\n @Inject(MAT_DATE_FORMATS) public dateFormat: CustomDateFormat;\r\n @ViewChild(MatDatepicker) datepicker: MatDatepicker<any>;\r\n @Input() calendarType!: string;\r\n startInputValue: string;\r\n endInputValue: string;\r\n destroyRef = inject(DestroyRef);\r\n dateRange: any;\r\n override ngOnInit(): void {\r\n super.ngOnInit()\r\n this.actionStateService.resetAction$\r\n .pipe(takeUntilDestroyed(this.destroyRef))\r\n .subscribe(res => {\r\n if (!this.isReadOnly && this.control.enabled) {\r\n this.control.reset();\r\n }\r\n });\r\n\r\n }\r\n\r\n ngAfterViewInit(): void {\r\n if (!this.isReadOnly && this.yearOnly) this.activateYearOnlyMode();\r\n }\r\n\r\n ngOnChanges(changes: SimpleChanges) {\r\n this.setDateFormControl();\r\n }\r\n\r\n setDateFormControl() {\r\n const today = new Date();\r\n const currentYear = today.getFullYear();\r\n const currentMonth = today.getMonth();\r\n const currentDay = today.getDate();\r\n if (this.minDate) {\r\n if (this.minDate == 'today') {\r\n this.minDateValue = new Date(currentYear, currentMonth, currentDay);\r\n }\r\n }\r\n\r\n if (this.maxDate) {\r\n if (this.maxDate == 'today') {\r\n this.maxDateValue = new Date(currentYear, currentMonth, currentDay);\r\n }\r\n if (this.maxDate == 'oneYear') {\r\n this.maxDateValue = new Date(\r\n currentYear + 1,\r\n currentMonth,\r\n currentDay - 1\r\n );\r\n }\r\n }\r\n if (this.customMaxDate) {\r\n const date = new Date(this.customMaxDate);\r\n this.maxDateValue = new Date(\r\n date.getFullYear(),\r\n date.getMonth(),\r\n date.getDate()\r\n );\r\n }\r\n if (this.customMinDate) {\r\n const date = new Date(this.customMinDate);\r\n this.minDateValue = new Date(\r\n date.getFullYear(),\r\n date.getMonth(),\r\n date.getDate()\r\n );\r\n }\r\n\r\n if (this.required) this.control.addValidators(Validators.required);\r\n }\r\n\r\n focusPicker(picker) {\r\n picker.open();\r\n this.control.markAsTouched();\r\n }\r\n\r\n startDateChange(event: any) {\r\n if (event?.value && !this.isDisabled) {\r\n if (this.startDateControl.value) {\r\n this.startDateControl.setValue(\r\n format(new Date(event.value), \"yyyy-MM-dd'T'HH:mm:ss.SSSxxx\")\r\n );\r\n }\r\n }\r\n }\r\n\r\n endDateChange(event: any) {\r\n if (event?.value && !this.isDisabled) {\r\n if (this.startDateControl.value && this.endDateControl.value) {\r\n this.endDateControl.setValue(\r\n format(new Date(event.value), \"yyyy-MM-dd'T'HH:mm:ss.SSSxxx\")\r\n );\r\n this.setDateRangeControlValue();\r\n }\r\n }\r\n }\r\n\r\n setDateRangeControlValue() {\r\n this.dateRange = {\r\n startDate: this.startDateControl.value,\r\n endDate: this.endDateControl.value,\r\n };\r\n this.control.setValue(this.dateRange);\r\n }\r\n\r\n clearDateValue(event): void {\r\n this.dateRange = null;\r\n this.startInputValue = null;\r\n this.endInputValue = null;\r\n this.control.reset();\r\n this.endDateControl.reset();\r\n this.startDateControl.reset();\r\n this.control.markAsTouched();\r\n this.endDateControl.markAsTouched();\r\n this.startDateControl.markAsTouched();\r\n }\r\n\r\n private activateYearOnlyMode(): void {\r\n this.dateFormat.updateDateFormat(\r\n YEAR_ONLY_FORMAT.parse,\r\n YEAR_ONLY_FORMAT.display\r\n );\r\n if (this.control) {\r\n this.control.setValue(format(new Date(this.control.value), 'yyyy'));\r\n }\r\n this.datepicker.startView = 'multi-year';\r\n this.datepicker.yearSelected.subscribe((e) => {\r\n this.control.setValue(format(new Date(e), 'yyyy'));\r\n this.datepicker.close();\r\n });\r\n this.datepicker.openedStream.subscribe(() => {\r\n document.body.classList.add('year-only');\r\n });\r\n this.datepicker.closedStream.subscribe(() => {\r\n document.body.classList.remove('year-only');\r\n });\r\n }\r\n}\r\n","@if(!isReadOnly) {\r\n @if(label) {\r\n <app-form-label [label]=\"label\" [optional]=\"!control.hasValidator(Validators['required'])\" [tooltip]=\"tooltip\"></app-form-label>\r\n }\r\n\r\n<div class=\"datePicker\">\r\n <mat-form-field class=\"date-range primary-form {{ className }}\"\r\n [ngClass]=\"{\r\n 'custom-validation-error': !startDateControl.value && !endDateControl.value && startDateControl.touched\r\n }\">\r\n <label class=\"mat-form-content\">\r\n <mat-date-range-input\r\n [rangePicker]=\"picker\"\r\n [min]=\"minDateValue\"\r\n [max]=\"maxDateValue\"\r\n >\r\n <input\r\n matStartDate\r\n placeholder=\"{{ 'startDate' | translate }}\"\r\n [formControl]=\"startDateControl\"\r\n (dateInput)=\"startDateChange($event)\"\r\n (click)=\"focusPicker(picker)\"\r\n readonly\r\n />\r\n <input\r\n matEndDate\r\n placeholder=\"{{ 'endDate' | translate }}\"\r\n [formControl]=\"endDateControl\"\r\n (dateInput)=\"endDateChange($event)\"\r\n (click)=\"focusPicker(picker)\"\r\n readonly\r\n />\r\n </mat-date-range-input>\r\n </label>\r\n\r\n @if(control?.value) {\r\n <ds-icon\r\n matSuffix\r\n icon=\"close\"\r\n class=\"fc-coral fs-10 mx-2 cursor-pointer\"\r\n (click)=\"clearDateValue($event)\"\r\n ></ds-icon>\r\n }\r\n\r\n <mat-datepicker-toggle matSuffix [for]=\"picker\" [disableRipple]=\"true\">\r\n <i class=\"sfi sfi-calendar-o fc-black font-18\" matDatepickerToggleIcon></i>\r\n </mat-datepicker-toggle>\r\n\r\n <mat-date-range-picker #picker></mat-date-range-picker>\r\n </mat-form-field>\r\n</div>\r\n<app-validation-errors [errors]=\"control.errors\"></app-validation-errors>\r\n\r\n\r\n} @else if(isReadOnly && control.value) {\r\n<ng-container>\r\n <app-info-item\r\n class=\"info-item w-100\"\r\n type=\"date\"\r\n [insideTable]=\"insideTable\"\r\n [dateType]=\"calendarType\"\r\n [label]=\"label\"\r\n [value]=\"{\r\n startDate: control?.value?.startDate,\r\n endDate: control?.value?.endDate\r\n }\"\r\n [hasLabel]=\"!!label\"\r\n >\r\n </app-info-item>\r\n</ng-container>\r\n}\r\n","import {NG_VALUE_ACCESSOR} from '@angular/forms';\r\nimport { Component, CUSTOM_ELEMENTS_SCHEMA, Input, EventEmitter, forwardRef, inject, DestroyRef } from '@angular/core';\r\nimport {MatHint} from '@angular/material/form-field';\r\nimport { ControlValueAccessorDirective } from '../control-value-accessor.directive';\r\nimport { MatFormImports, Shareds, TextLanguageDirectives } from '../shared-imports';\r\nimport { takeUntilDestroyed } from '@angular/core/rxjs-interop';\r\n\r\n@Component({\r\n selector: 'app-input',\r\n templateUrl: './input.component.html',\r\n styleUrls: ['./input.component.scss'],\r\n schemas: [CUSTOM_ELEMENTS_SCHEMA],\r\n imports: [\r\n MatHint,\r\n ...TextLanguageDirectives,\r\n ...Shareds,\r\n ...MatFormImports\r\n ],\r\n standalone: true,\r\n providers: [\r\n {\r\n provide: NG_VALUE_ACCESSOR,\r\n useExisting: forwardRef(() => InputComponent),\r\n multi: true,\r\n },\r\n ]\r\n\r\n})\r\nexport class InputComponent<Type> extends ControlValueAccessorDirective<Type> {\r\n @Input() floatLabel: any = 'auto';\r\n @Input() className = 'bordered-input';\r\n @Input() iconPrefixName!: string;\r\n @Input() iconSuffixName!: string;\r\n @Input() emitedChangedValue1 = new EventEmitter();\r\n @Input() customErrorMessages;\r\n destroyRef = inject(DestroyRef);\r\n \r\n\r\n override ngOnInit(): void {\r\n super.ngOnInit()\r\n this.actionStateService.resetAction$\r\n .pipe(takeUntilDestroyed(this.destroyRef))\r\n .subscribe(res => {\r\n if (!this.isReadOnly && this.control.enabled) {\r\n this.control.reset();\r\n }\r\n });\r\n }\r\n\r\n}\r\n","@if(!isReadOnly){\r\n@if(label){\r\n<app-form-label [label]=\"label\" [optional]=\"!control.hasValidator(Validators['required'])\" [tooltip]=\"tooltip\"></app-form-label>\r\n}\r\n<mat-form-field\r\n class=\"primary-form {{ className }}\"\r\n [ngClass]=\"{ 'input-disabled': control.disabled }\"\r\n [floatLabel]=\"floatLabel\"\r\n>\r\n @if(iconPrefixName){<span class=\"sfi {{ iconPrefixName }}\"></span>}\r\n <label class=\"mat-form-content\">\r\n <!-- add input for ar && en custom directive with add type = arOnly || type = enOnly-->\r\n @if(type === 'arOnly'){\r\n <input\r\n arOnly\r\n matInput\r\n [value]=\"value\"\r\n oninput=\"validity.valid || (value='');\"\r\n [formControl]=\"control\"\r\n [required]=\"required\"\r\n [placeholder]=\"placeholder\"\r\n />\r\n } @else if(type === 'enOnly'){\r\n <input\r\n enOnly\r\n matInput\r\n [value]=\"value\"\r\n oninput=\"validity.valid || (value='');\"\r\n [formControl]=\"control\"\r\n [required]=\"required\"\r\n [placeholder]=\"placeholder\"\r\n />\r\n }\r\n @else{\r\n <input\r\n matInput\r\n [value]=\"value\"\r\n oninput=\"validity.valid || (value='');\"\r\n [formControl]=\"control\"\r\n [type]=\"type\"\r\n [placeholder]=\"placeholder\"\r\n />\r\n }\r\n </label>\r\n \r\n @if(iconSuffixName){<span matSuffix class=\"sfi {{ iconSuffixName }}\"></span>}\r\n @if(hint){\r\n <mat-hint class=\"d-flex align-items-center gap-1 mt-1\">\r\n <span\r\n class=\"sfi sfi-info fs-17 fc-dark-gray\"\r\n [ngClass]=\"{ 'fc-oasis-light-imp': value }\"\r\n ></span>\r\n <span class=\"fs-12 fc-black line-height-1\">{{ hint }}</span>\r\n </mat-hint>\r\n }\r\n</mat-form-field>\r\n<app-validation-errors [errors]=\"control.errors\" [customErrorMessages]=\"customErrorMessages\"></app-validation-errors>\r\n\r\n} @if(isReadOnly && control.value && (showIfEmpty || control)){\r\n<ng-container class=\"info-section\">\r\n <app-info-item\r\n class=\"info-item w-100\"\r\n [label]=\"label\"\r\n [insideTable]=\"insideTable\"\r\n [hasLabel]=\"!!label\"\r\n [type]=\"type\"\r\n [value]=\"control.value\"\r\n ></app-info-item>\r\n</ng-container>\r\n}","/* eslint-disable @typescript-eslint/no-unused-vars */\r\n/* eslint-disable @angular-eslint/directive-selector */\r\n\r\nimport {Directive, ElementRef, HostListener, Input} from \"@angular/core\";\r\n\r\n@Directive({\r\n selector: \"[numberOnly]\",\r\n standalone: true\r\n})\r\nexport class NumberDirective {\r\n @Input() decimals = 0;\r\n\r\n constructor(private el: ElementRef) { }\r\n\r\nprivate check(value: string) {\r\n if (this.decimals <= 0) {\r\n // Updated RegExp to allow for decimal\r\n return String(value).match(new RegExp(/^\\d*\\.?\\d*$/));\r\n } else {\r\n const regExpString =\r\n \"^\\\\s*((\\\\d+(\\\\.\\\\d{0,\" +\r\n this.decimals +\r\n \"})?)|((\\\\d*(\\\\.\\\\d{1,\" +\r\n this.decimals +\r\n \"}))))\\\\s*$\";\r\n return String(value).match(new RegExp(regExpString));\r\n }\r\n}\r\n\r\n @HostListener('keypress', ['$event'])\r\n onKeyPress(event: KeyboardEvent) {\r\n const char = event.key;\r\n const currentValue: string = this.el.nativeElement.value;\r\n const nextValue: string = currentValue + char;\r\n if (nextValue !== '' && !this.check(nextValue)) {\r\n event.preventDefault();\r\n }\r\n }\r\n\r\n private run(oldValue: any) {\r\n setTimeout(() => {\r\n const currentValue: string = this.el.nativeElement.value;\r\n if (currentValue !== '' && !this.check(currentValue)) {\r\n this.el.nativeElement.value = oldValue;\r\n }\r\n });\r\n }\r\n\r\n\r\n @HostListener(\"keydown\", [\"$event\"])\r\n onKeyDown() {\r\n this.run(this.el.nativeElement.value);\r\n }\r\n\r\n @HostListener(\"paste\", [\"$event\"])\r\n onPaste() {\r\n this.run(this.el.nativeElement.value);\r\n }\r\n}\r\n","/* eslint-disable @angular-eslint/use-lifecycle-interface */\r\n/* eslint-disable @typescript-eslint/no-explicit-any */\r\n/* eslint-disable @angular-eslint/component-selector */\r\nimport {NG_VALUE_ACCESSOR} from '@angular/forms';\r\nimport { Component, CUSTOM_ELEMENTS_SCHEMA, DestroyRef, EventEmitter, forwardRef, inject, Input, Output } from '@angular/core';\r\nimport {NgClass} from \"@angular/common\";\r\nimport { ControlValueAccessorDirective } from '../control-value-accessor.directive';\r\nimport {NumberDirective} from \"../../../../directives/number.directive\";\r\nimport { MatFormImports, Shareds } from '../shared-imports';\r\nimport { takeUntilDestroyed } from '@angular/core/rxjs-interop';\r\n\r\n@Component({\r\n selector: 'app-input-number',\r\n templateUrl: './input-number.component.html',\r\n styleUrls: ['./input-number.component.scss'],\r\n schemas: [CUSTOM_ELEMENTS_SCHEMA],\r\n standalone: true,\r\n imports: [\r\n NumberDirective,\r\n ...Shareds,\r\n ...MatFormImports\r\n ],\r\n providers: [\r\n {\r\n provide: NG_VALUE_ACCESSOR,\r\n useExisting: forwardRef(() => InputNumberComponent),\r\n multi: true,\r\n },\r\n ],\r\n})\r\nexport class InputNumberComponent<Type> extends ControlValueAccessorDirective<Type> {\r\n @Input() floatLabel: any = 'auto';\r\n @Input() className = 'bordered-input';\r\n @Input() iconPrefixName!: string;\r\n @Input() iconSuffixName!: string;\r\n @Input() numberSuffixName!: string;\r\n @Input() allowedPattern = '';\r\n destroyRef = inject(DestroyRef);\r\n @Output() emitedChangedValue = new EventEmitter();\r\n override ngOnInit(): void {\r\n super.ngOnInit()\r\n this.actionStateService.resetAction$\r\n .pipe(takeUntilDestroyed(this.destroyRef))\r\n .subscribe(res => {\r\n if (!this.isReadOnly && this.control.enabled) {\r\n this.control.reset();\r\n }\r\n });\r\n\r\n }\r\n\r\n}\r\n","@if(!isReadOnly){\r\n @if(label){\r\n <app-form-label [label]=\"label\" [optional]=\"!control.hasValidator(Validators['required'])\" [tooltip]=\"tooltip\"></app-form-label>\r\n }\r\n <mat-form-field\r\n class=\"primary-form {{ className }}\"\r\n [ngClass]=\"{ 'input-disabled': control.disabled }\"\r\n [floatLabel]=\"floatLabel\"\r\n >\r\n @if(iconPrefixName){<span class=\"sfi {{ iconPrefixName }}\"></span>}\r\n @if(loading){<span\r\n class=\"sfi sfi-spinner d-inline-block spin fc-coral\"\r\n matSuffix\r\n ></span\r\n >}\r\n <label class=\"mat-form-content\">\r\n <!-- add input for ar && en custom directive with add type = arOnly || type = enOnly-->\r\n <input\r\n matInput\r\n [value]=\"value\"\r\n oninput=\"validity.valid || (value='');\"\r\n [formControl]=\"control\"\r\n [type]=\"type\"\r\n [placeholder]=\"placeholder\"\r\n numberOnly\r\n />\r\n </label>\r\n @if(iconSuffixName){<span matSuffix class=\"sfi {{ iconSuffixName }}\"></span>}\r\n @if(hint){\r\n <mat-hint class=\"d-flex align-items-center gap-1 mt-1\">\r\n <span\r\n class=\"sfi sfi-info fs-17 fc-dark-gray\"\r\n [ngClass]=\"{ 'fc-oasis-light-imp': value }\"\r\n ></span>\r\n <span class=\"fs-12 fc-black line-height-1\">{{ hint }}</span>\r\n </mat-hint>\r\n }\r\n </mat-form-field>\r\n <app-validation-errors [errors]=\"control.errors\"></app-validation-errors>\r\n } @if(isReadOnly && control.value && (showIfEmpty || control)){\r\n <ng-container class=\"info-section\">\r\n <app-info-item\r\n class=\"info-item w-100\"\r\n [label]=\"label\"\r\n [insideTable]=\"insideTable\"\r\n [hasLabel]=\"!!label\"\r\n [type]=\"type\"\r\n [value]=\"control.value\"\r\n ></app-info-item>\r\n </ng-container>\r\n }","import {NG_VALUE_ACCESSOR} from '@angular/forms';\r\nimport { Component, CUSTOM_ELEMENTS_SCHEMA, DestroyRef, forwardRef, inject, Input } from '@angular/core';\r\nimport {NgClass} from \"@angular/common\";\r\nimport { ControlValueAccessorDirective } from '../control-value-accessor.directive';\r\nimport { MatFormImports, Shareds } from '../shared-imports';\r\nimport { takeUntilDestroyed } from '@angular/core/rxjs-interop';\r\n\r\n@Component({\r\n selector: 'app-input-email',\r\n templateUrl: './input-email.component.html',\r\n styleUrls: ['./input-email.component.scss'],\r\n schemas: [CUSTOM_ELEMENTS_SCHEMA],\r\n standalone: true,\r\n imports: [\r\n ...Shareds,\r\n ...MatFormImports\r\n ],\r\n providers: [\r\n {\r\n provide: NG_VALUE_ACCESSOR,\r\n useExisting: forwardRef(() => InputEmailComponent),\r\n multi: true,\r\n },\r\n ]\r\n})\r\nexport class InputEmailComponent<Type> extends ControlValueAccessorDirective<Type> {\r\n @Input() floatLabel: any = 'auto';\r\n @Input() className = 'bordered-input';\r\n @Input() matPrefix!: boolean;\r\n @Input() iconPrefixName!: string;\r\n @Input() iconSuffixName!: string;\r\n @Input() numberSuffixName!: string;\r\n destroyRef = inject(DestroyRef);\r\n displayErrors(data){\r\n console.log(this.control.errors)\r\n }\r\n\r\n override ngOnInit(): void {\r\n super.ngOnInit()\r\n this.actionStateService.resetAction$\r\n .pipe(takeUntilDestroyed(this.destroyRef))\r\n .subscribe(res => {\r\n if (!this.isReadOnly && this.control.enabled) {\r\n this.control.reset();\r\n }\r\n });\r\n\r\n }\r\n}\r\n","@if(!isReadOnly){\r\n @if(label){\r\n <app-form-label [label]=\"label\" [optional]=\"!control.hasValidator(Validators['required'])\" [tooltip]=\"tooltip\"></app-form-label>\r\n }\r\n <mat-form-field\r\n class=\"primary-form {{ className }}\"\r\n [ngClass]=\"{ 'input-disabled': control.disabled }\"\r\n [floatLabel]=\"floatLabel\"\r\n >\r\n @if(iconPrefixName){<span class=\"sfi {{ iconPrefixName }}\"></span>}\r\n @if(loading){<span\r\n class=\"sfi sfi-spinner d-inline-block spin fc-coral\"\r\n matSuffix\r\n ></span\r\n >}\r\n <label class=\"mat-form-content\">\r\n <!-- add input for ar && en custom directive with add type = arOnly || type = enOnly-->\r\n <input\r\n matInput\r\n [value]=\"value\"\r\n oninput=\"validity.valid || (value='');\"\r\n [formControl]=\"control\"\r\n [type]=\"type\"\r\n [placeholder]=\"placeholder\"\r\n (change)=\"displayErrors($event)\"\r\n />\r\n </label>\r\n @if(iconSuffixName){<span matSuffix class=\"sfi {{ iconSuffixName }}\"></span>}\r\n @if(hint){\r\n <mat-hint class=\"d-flex align-items-center gap-1 mt-1\">\r\n <span\r\n class=\"sfi sfi-info fs-17 fc-dark-gray\"\r\n [ngClass]=\"{ 'fc-oasis-light-imp': value }\"\r\n ></span>\r\n <span class=\"fs-12 fc-black line-height-1\">{{ hint }}</span>\r\n </mat-hint>\r\n }\r\n </mat-form-field>\r\n <app-validation-errors [errors]=\"control.errors\"></app-validation-errors>\r\n } @if(isReadOnly && control.value && (showIfEmpty || control)){\r\n <ng-container class=\"info-section\">\r\n <app-info-item\r\n class=\"info-item w-100\"\r\n [label]=\"label\"\r\n [insideTable]=\"insideTable\"\r\n [hasLabel]=\"!!label\"\r\n [type]=\"type\"\r\n [value]=\"control.value\"\r\n ></app-info-item>\r\n </ng-container>\r\n }","/* eslint-disable @angular-eslint/use-lifecycle-interface */\r\n/* eslint-disable @typescript-eslint/no-explicit-any */\r\n/* eslint-disable @angular-eslint/component-selector */\r\n// import { Validators } from '@angular/forms';\r\nimport {\r\n Component,\r\n CUSTOM_ELEMENTS_SCHEMA,\r\n forwardRef,\r\n Input,\r\n SimpleChanges,\r\n} from '@angular/core';\r\nimport { MatFormField } from '@angular/material/form-field';\r\nimport { SatPopoverModule } from '@ncstate/sat-popover';\r\nimport { NgxMaskDirective } from 'ngx-mask';\r\nimport { NgClass, NgIf } from '@angular/common';\r\nimport { InfoItemComponent } from '../info-item/info-item.component';\r\nimport { NG_VALUE_ACCESSOR, ReactiveFormsModule } from '@angular/forms';\r\nimport { ControlValueAccessorDirective } from '../control-value-accessor.directive';\r\n\r\n@Component({\r\n selector: 'app-input-mask',\r\n templateUrl: './input-mask.component.html',\r\n styleUrls: ['./input-mask.component.scss'],\r\n schemas: [CUSTOM_ELEMENTS_SCHEMA],\r\n standalone: true,\r\n providers: [\r\n {\r\n provide: NG_VALUE_ACCESSOR,\r\n useExisting: forwardRef(() => InputMaskComponent),\r\n multi: true,\r\n },\r\n ],\r\n imports: [\r\n SatPopoverModule,\r\n MatFormField,\r\n NgxMaskDirective,\r\n InfoItemComponent,\r\n ReactiveFormsModule,\r\n NgClass,\r\n ],\r\n})\r\nexport class InputMaskComponent<\r\n Type\r\n> extends ControlValueAccessorDirective<Type> {\r\n @Input() floatLabel: any = 'auto';\r\n @Input() className = 'bordered-input';\r\n @Input() matPrefix!: boolean;\r\n @Input() iconPrefixName!: string;\r\n @Input() iconSuffixName!: string;\r\n @Input() numberSuffixName!: string;\r\n // ngOnInit(): void {\r\n // this.resetPropagator.subscribe(this, this.resetData);\r\n\r\n // code\tmeaning\r\n // 0\tdigits (like 0 to 9 numbers)\r\n // 9\tdigits (like 0 to 9 numbers), but optional\r\n // A\tletters (uppercase or lowercase) and digits\r\n // S\tonly letters (uppercase or lowercase)\r\n // U\tonly letters uppercase\r\n // L\tonly letters lowercase\r\n\r\n // }\r\n}\r\n","\r\n@if(!isReadOnly){\r\n <ng-container>\r\n <!-- <app-form-label [label]=\"label\" [optional]=\"!control.hasValidator(Validators['required'])\" [hideOption]=\"hideOption\" [showLabel]=\"showLabel\"></app-form-label> -->\r\n @if(label){\r\n <div class=\"d-flex justify-content-between mb-1\">\r\n <span class=\"form-label mb-0\">{{label}}</span>\r\n @if(!required){\r\n <span class=\"fs-11 fc-dark-gray\">{{i18n.translate('Optional')}}\r\n </span>\r\n }\r\n </div>\r\n }\r\n \r\n <mat-form-field class=\"primary-form {{className}}\" [ngClass]=\"{'input-disabled' : isDisabled }\"\r\n [floatLabel]=\"floatLabel\">\r\n \r\n @if(iconPrefixName){\r\n <span matPrefix class=\"sfi {{iconPrefixName}}\"></span>\r\n }\r\n <label class=\"mat-form-content\">\r\n <input matInput [placeholder]=\"placeholder\" [value]=\"value\" [attr.disabled]=\"isDisabled\" [mask]=\"mask\"\r\n [showMaskTyped]=\"false\" oninput=\"validity.valid || (value='');\" [formControl]=\"control\"\r\n [required]=\"required\" [placeholder]=\"placeholder\">\r\n </label>\r\n \r\n @if(matSuffix){\r\n <span matSuffix class=\"sfi {{iconSuffixName}}\"></span>\r\n }\r\n @if(type === 'number'){\r\n <div matSuffix class=\"d-flex align-items-center gap-2\">\r\n @if(numberSuffixName){\r\n <span class=\"fs-14 fw-medium\">{{numberSuffixName}}</span>\r\n }\r\n <!-- <span class=\"sfi sfi-minus p-2 bc-light-gray fc-black\"></span>\r\n <span class=\"sfi sfi-plus p-2 bc-light-gray fc-black\"></span> -->\r\n </div>\r\n }\r\n <!-- @if((!control?.valid)){\r\n <mat-error class=\"mb-2\">\r\n {{i18n.translate('validFieldError')}}{{label}}\r\n </mat-error>\r\n } -->\r\n \r\n \r\n <!-- <mat-error *ngIf=\"(type ==='email' && !control?.valid)\">\r\n {{i18n.translate('validEmailError')}}\r\n </mat-error> -->\r\n @if(showHint){\r\n <mat-hint>\r\n <span class=\"sfi sfi-check-circle font-10 fc-dark-gray\" [ngClass]=\"{'fc-oasis-light-imp':value}\"></span>\r\n <span class=\"mx-1\"></span>\r\n <span class=\"fs-12 fc-onyx\">{{hint}}</span>\r\n </mat-hint>\r\n }\r\n </mat-form-field>\r\n <!-- <span class=\"fc-coral\" style=\"color:#f44336\" *ngIf=\"( showErrorMessage && control.value)\">\r\n {{errorMessage}}\r\n </span> -->\r\n \r\n </ng-container>\r\n}\r\n\r\n@if(isReadOnly && control.value){\r\n <ng-container class=\"info-section\">\r\n <app-info-item class=\"info-item w-100\" [label]=\"label\" [insideTable]=\"insideTable\" [hasLabel]=\"label ? true: false\"\r\n [value]=\"control\"></app-info-item>\r\n </ng-container>\r\n \r\n}\r\n\r\n\r\n<!-- section tooltip -->\r\n<sat-popover #popover [hasBackdrop]=\"true\" verticalAlign=\"below\">\r\n <div class=\"deafult-tooltip\">\r\n {{tooltip}}\r\n </div>\r\n</sat-popover>\r\n","/* eslint-disable @typescript-eslint/no-explicit-any */\r\n/* eslint-disable @angular-eslint/directive-selector */\r\nimport {Directive, HostListener, ElementRef, OnInit, Input} from '@angular/core';\r\nimport {MycurrencyPipe} from \"../pipes\";\r\n@Directive({\r\n selector: '[appMycurrency]',\r\n standalone: true\r\n})\r\nexport class MycurrencyDirective implements OnInit{\r\n private el: any;\r\n @Input() decimals!: number;\r\n\r\n constructor(\r\n private elementRef:ElementRef,\r\n private formatcurrencypipe:MycurrencyPipe\r\n ) {\r\n this.el = this.elementRef.nativeElement;\r\n }\r\n ngOnInit(){\r\n this.el.value = this.formatcurrencypipe.transform(this.el.value);\r\n }\r\n @HostListener(\"focus\",[\"$event.target.value\",\"$event\"])\r\n onFocus(value,event) {\r\n this.el.value = this.formatcurrencypipe.parse(value); // opossite of transform\r\n if(event.which== 9)\r\n {\r\n return false;\r\n }\r\n return this.el.select();\r\n\r\n }\r\n\r\n @HostListener(\"blur\", [\"$event.target.value\"])\r\n onBlur(value) {\r\n this.el.value = this.formatcurrencypipe.transform(value);\r\n }\r\n @HostListener('keydown', ['$event']) onKeyDown(event) {\r\n const e = <KeyboardEvent> event;\r\n if(e.key == 'و' || e.key == 'ز'){\r\n e.preventDefault();\r\n }\r\n if ([46, 8, 9, 27, 13, 110, 190].indexOf(e.keyCode) !== -1 ||\r\n // Allow: Ctrl+A\r\n (e.keyCode === 65 && (e.ctrlKey || e.metaKey)) ||\r\n // Allow: Ctrl+C\r\n (e.keyCode === 67 && (e.ctrlKey || e.metaKey)) ||\r\n // Allow: Ctrl+V\r\n (e.keyCode === 86 && (e.ctrlKey || e.metaKey)) ||\r\n // Allow: Ctrl+X\r\n (e.keyCode === 88 && (e.ctrlKey || e.metaKey)) ||\r\n (e.keyCode === 188 ) ||\r\n // Allow: home, end, left, right\r\n (e.keyCode >= 35 && e.keyCode <= 39)) {\r\n // let it happen, don't do anything\r\n return;\r\n }\r\n // Ensure that it is a number and stop the keypress\r\n if ((e.shiftKey || (e.keyCode < 48 || e.keyCode > 57)) && (e.keyCode < 96 || e.keyCode > 105 )) {\r\n e.preventDefault();\r\n }\r\n }\r\n\r\n}\r\n","import {NG_VALUE_ACCESSOR} from '@angular/forms';\r\nimport { Component, CUSTOM_ELEMENTS_SCHEMA, DestroyRef, forwardRef, inject, Input } from '@angular/core';\r\nimport {MatHint} from '@angular/material/form-field';\r\nimport {NgClass,} from \"@angular/common\";\r\nimport { ControlValueAccessorDirective } from '../control-value-accessor.directive';\r\nimport {MycurrencyPipe} from \"../../../../pipes\";\r\nimport {MycurrencyDirective} from \"../../../../directives/currency.directive\";\r\nimport { MatFormImports, Shareds } from '../shared-imports';\r\nimport { takeUntilDestroyed } from '@angular/core/rxjs-interop';\r\n\r\n@Component({\r\n selector: 'app-input-currency',\r\n templateUrl: './input-currency.component.html',\r\n styleUrls: ['./input-currency.component.scss'],\r\n schemas: [CUSTOM_ELEMENTS_SCHEMA],\r\n standalone: true,\r\n imports: [\r\n NgClass,\r\n MatHint,\r\n MycurrencyDirective,\r\n ...Shareds,\r\n ...MatFormImports\r\n ],\r\n providers: [\r\n {\r\n provide: NG_VALUE_ACCESSOR,\r\n useExisting: forwardRef(() => InputCurrencyComponent),\r\n multi: true,\r\n\r\n },\r\n MycurrencyPipe\r\n ]\r\n})\r\nexport class InputCurrencyComponent<Type> extends ControlValueAccessorDirective<Type> {\r\n @Input() floatLabel: any = 'auto';\r\n @Input() className = 'bordered-input';\r\n @Input() iconPrefixName!: string;\r\n @Input() iconSuffixName!: string;\r\n @Input() numberSuffixName!: string;\r\n destroyRef = inject(DestroyRef);\r\n public mycurrencyPipe: MycurrencyPipe\r\n override ngOnInit(): void {\r\n super.ngOnInit()\r\n this.actionStateService.resetAction$\r\n .pipe(takeUntilDestroyed(this.destroyRef))\r\n .subscribe(res => {\r\n if (!this.isReadOnly && this.control.enabled) {\r\n this.control.reset();\r\n }\r\n });\r\n }\r\n\r\n \r\n\r\n}\r\n","@if(!isReadOnly){\r\n @if(label){\r\n <app-form-label [label]=\"label\" [optional]=\"!control.hasValidator(Validators['required'])\" [tooltip]=\"tooltip\"></app-form-label>\r\n }\r\n <mat-form-field\r\n class=\"primary-form {{ className }}\"\r\n [ngClass]=\"{ 'input-disabled': control.disabled }\"\r\n [floatLabel]=\"floatLabel\"\r\n >\r\n @if(iconPrefixName){<span class=\"sfi {{ iconPrefixName }}\"></span>}\r\n @if(loading){<span\r\n class=\"sfi sfi-spinner d-inline-block spin fc-coral\"\r\n matSuffix\r\n ></span\r\n >}\r\n <label class=\"mat-form-content\">\r\n <!-- add input for ar && en custom directive with add type = arOnly || type = enOnly-->\r\n <input\r\n matInput\r\n [value]=\"value\"\r\n oninput=\"validity.valid || (value='');\"\r\n [formControl]=\"control\"\r\n [type]=\"type\"\r\n [placeholder]=\"placeholder\"\r\n appMycurrency\r\n />\r\n </label>\r\n @if(iconSuffixName){<span matSuffix class=\"sfi {{ iconSuffixName }}\"></span>}\r\n @if(hint){\r\n <mat-hint class=\"d-flex align-items-center gap-1 mt-1\">\r\n <span\r\n class=\"sfi sfi-info fs-17 fc-dark-gray\"\r\n [ngClass]=\"{ 'fc-oasis-light-imp': value }\"\r\n ></span>\r\n <span class=\"fs-12 fc-black line-height-1\">{{ hint }}</span>\r\n </mat-hint>\r\n }\r\n </mat-form-field>\r\n <app-validation-errors [errors]=\"control.errors\"></app-validation-errors>\r\n } @if(isReadOnly && control.value && (showIfEmpty || control)){\r\n <ng-container class=\"info-section\">\r\n <app-info-item\r\n class=\"info-item w-100\"\r\n [label]=\"label\"\r\n [insideTable]=\"insideTable\"\r\n [hasLabel]=\"!!label\"\r\n [type]=\"type\"\r\n [value]=\"control.value\"\r\n ></app-info-item>\r\n </ng-container>\r\n }","// export * from './input-autocomplete.module';\r\nexport * from './input-autocomplete.model';","import { NgxIntlTelInputModule } from 'ngx-intl-tel-input-gg';\r\nimport { CountryISO, SearchCountryField } from 'ngx-intl-tel-input-gg';\r\nimport { FormsModule, NG_VALUE_ACCESSOR, ReactiveFormsModule} from '@angular/forms';\r\nimport { Component, Input, CUSTOM_ELEMENTS_SCHEMA, forwardRef, OnInit, inject, DestroyRef } from '@angular/core';\r\nimport {InfoItemComponent} from \"../info-item/info-item.component\";\r\nimport {CommonModule} from \"@angular/common\";\r\nimport { ControlValueAccessorDirective } from '../control-value-accessor.directive';\r\nimport { ValidationErrorsComponent } from '../validation-errors/validation-errors.component';\r\nimport { Shareds } from '../shared-imports';\r\nimport { takeUntilDestroyed } from '@angular/core/rxjs-interop';\r\n\r\n@Component({\r\n selector: 'app-input-telephone',\r\n templateUrl: './input-telephone.component.html',\r\n styleUrls: ['./input-telephone.component.scss'],\r\n schemas: [CUSTOM_ELEMENTS_SCHEMA],\r\n standalone: true,\r\n imports: [\r\n CommonModule,\r\n FormsModule,\r\n NgxIntlTelInputModule,\r\n ...Shareds\r\n ],\r\n providers: [\r\n {\r\n provide: NG_VALUE_ACCESSOR,\r\n useExisting: forwardRef(() => InputTelephoneComponent),\r\n multi: true,\r\n },\r\n ]\r\n})\r\nexport class InputTelephoneComponent<Type> extends ControlValueAccessorDirective<Type> implements OnInit {\r\n @Input() floatLabel: any = 'auto';\r\n @Input() className = 'bordered-input';\r\n controlValue:string = '';\r\n destroyRef = inject(DestroyRef);\r\n errorMessages = {\r\n required: this.i18n.translate('thisFieldIsRequired'),\r\n validatePhoneNumber: this.i18n.translate('pleaseEnterValidNumber')\r\n };\r\n\r\n\r\noverride ngOnInit(): void {\r\n super.ngOnInit();\r\n if(this.control.hasValidator(this.Validators.required)){\r\n this.telephoneControl.setValidators(this.Validators.required)\r\n } else {\r\n this.telephoneControl.setValidators(null)\r\n }\r\n this.telephoneControl.updateValueAndValidity\r\n\r\n this.actionStateService.resetAction$\r\n .pipe(takeUntilDestroyed(this.destroyRef))\r\n .subscribe(res => {\r\n if (!this.isReadOnly && this.control.enabled) {\r\n this.control.reset();\r\n }\r\n });\r\n\r\n \r\n}\r\n CountryISO = CountryISO;\r\n SearchCountryField = SearchCountryField;\r\n show:boolean = false;\r\n \r\n setControlValue(controlValue){\r\n console.log(this.telephoneControl.errors)\r\n if (this.telephoneControl.valid && controlValue){\r\n this.control.setValue(controlValue['internationalNumber'])\r\n this.telephoneControl.setValue(controlValue['internationalNumber'])\r\n } \r\n if(!controlValue){\r\n this.control.reset()\r\n }\r\n\r\n if ( this.telephoneControl.invalid && this.telephoneControl.touched){\r\n this.control.markAsTouched()\r\n }\r\n }\r\n}\r\n","@if(!isReadOnly){\r\n <ng-container>\r\n @if(label){\r\n <app-form-label [label]=\"label\" [optional]=\"!control.hasValidator(Validators['required'])\" [tooltip]=\"tooltip\"></app-form-label>\r\n }\r\n <!-- <mat-form-field style=\"height: 50px;\" class=\"primary-form input-telephone {{className}}\" floatLabel=\"always\"> -->\r\n <div class=\"primary-form input-telephone {{className}}\" floatLabel=\"always\">\r\n <label class=\"mat-form-content\">\r\n <!-- [placeholder]=\"label\" -->\r\n <!-- <input matInput [disabled]=\"disabled\" ng2TelInput numberOnly #phone\r\n [ng2TelInputOptions]=\"{initialCountry: 'sa', utilsScript: 'assets/js/utils.js'}\" (hasError)=\"hasError($event)\"\r\n (ng2TelOutput)=\"getNumber($event)\" (intlTelInputObject)=\"telInputObject($event)\"\r\n (countryChange)=\"onCountryChange($event)\" [(ngModel)]=\"field\" [name]=\"name\"\r\n oninput=\"this.value.replace(/[^0-9.]/g, ''); this.value = this.value.replace(/(\\..*)\\./g, '$1');\"\r\n [maxlength]=\"maxLength\" [minLength]=\"minLength\" />-->\r\n <!-- <input matInput [hidden]=\"true\"/> -->\r\n <ngx-intl-tel-input\r\n (input)=\"setControlValue(telephoneControl.value)\"\r\n [formControl]=\"telephoneControl\"\r\n [cssClass]=\"'custom'\"\r\n [preferredCountries]=\"[CountryISO.UnitedStates, CountryISO.UnitedKingdom]\"\r\n [enableAutoCountrySelect]=\"false\"\r\n [enablePlaceholder]=\"true\"\r\n [searchCountryFlag]=\"true\"\r\n [searchCountryField]=\"[SearchCountryField.Iso2, SearchCountryField.Name]\"\r\n [selectFirstCountry]=\"false\"\r\n [selectedCountryISO]=\"CountryISO.SaudiArabia\"\r\n [maxLength]=\"17\"\r\n [phoneValidation]=\"true\"\r\n [inputId]=\"\"\r\n name=\"phone\"\r\n ></ngx-intl-tel-input>\r\n </label>\r\n </div>\r\n <!-- </mat-form-field> -->\r\n <!-- <app-validation-errors [errors]=\"telephoneControl.errors\"></app-validation-errors> -->\r\n @if(telephoneControl.touched){\r\n @for(error of telephoneControl.errors | keyvalue; track error ) {\r\n <mat-error class=\"mb-2\">\r\n {{ errorMessages[error.key] }}\r\n </mat-error>\r\n }\r\n }\r\n \r\n </ng-container>\r\n}\r\n@if(isReadOnly && control.value){\r\n <ng-container>\r\n <app-info-item class=\"info-item w-100\" [type]=\"'telephone'\" [label]=\"label\"\r\n [value]=\"control.value\"></app-info-item>\r\n </ng-container>\r\n}\r\n\r\n\r\n","import {\r\n FormsModule,\r\n NG_VALUE_ACCESSOR,\r\n} from '@angular/forms';\r\nimport {\r\n Component,\r\n CUSTOM_ELEMENTS_SCHEMA,\r\n DestroyRef,\r\n EventEmitter,\r\n forwardRef,\r\n inject,\r\n Input,\r\n Output,\r\n} from '@angular/core';\r\nimport { NgClass } from '@angular/common';\r\nimport { MatAutocompleteModule } from '@angular/material/autocomplete';\r\nimport { ControlValueAccessorDirective } from '../control-value-accessor.directive';\r\nimport { MatFormField } from '@angular/material/form-field';\r\nimport { MatInput } from '@angular/material/input';\r\nimport { SatPopoverModule } from '@ncstate/sat-popover';\r\nimport { Shareds } from '../shared-imports';\r\nimport { takeUntilDestroyed } from '@angular/core/rxjs-interop';\r\n\r\n@Component({\r\n selector: 'app-search-employee',\r\n templateUrl: './search-employee.component.html',\r\n styleUrls: ['./search-employee.component.scss'],\r\n schemas: [CUSTOM_ELEMENTS_SCHEMA],\r\n standalone: true,\r\n imports: [\r\n MatFormField,\r\n MatInput,\r\n NgClass,\r\n MatAutocompleteModule,\r\n FormsModule,\r\n SatPopoverModule,\r\n ...Shareds,\r\n ],\r\n providers: [\r\n {\r\n provide: NG_VALUE_ACCESSOR,\r\n useExisting: forwardRef(() => SearchEmployeeComponent),\r\n multi: true,\r\n },\r\n ],\r\n})\r\nexport class SearchEmployeeComponent<\r\n Type\r\n> extends ControlValueAccessorDirective<Type> {\r\n @Input() valueName!: string;\r\n @Input() className = 'bordered-input';\r\n @Input() optional = false;\r\n @Input() data!: any[];\r\n @Input() floatLabel: any = 'auto';\r\n @Input() error!: string;\r\n selected = false;\r\n @Output() selectedEmp = new EventEmitter();\r\n @Output() onInputChange = new EventEmitter();\r\n @Input() showEdit = false;\r\n @Output() editDirectManger: EventEmitter<any> = new EventEmitter();\r\n @Output() deleteDirectManger: EventEmitter<any> = new EventEmitter();\r\n @Input() arrayList: any[] = [];\r\n @Input() isUniqueUsers = false;\r\n userAlreadyExist = false;\r\n @Output() emitedDeletedValue = new EventEmitter();\r\n destroyRef = inject(DestroyRef);\r\n override ngOnInit(): void {\r\n super.ngOnInit()\r\n this.actionStateService.resetAction$\r\n .pipe(takeUntilDestroyed(this.destroyRef))\r\n .subscribe(res => {\r\n if (!this.isReadOnly && this.control.enabled) {\r\n this.control.reset();\r\n }\r\n });\r\n\r\n }\r\n \r\n\r\n deleteRow(ind: number, rowData) {\r\n if (!this.isReadOnly) {\r\n this.arrayList = this.arrayList?.filter((item: any, index) => {\r\n return index != ind;\r\n });\r\n const obj = {\r\n rowData: rowData,\r\n arrayList: this.arrayList,\r\n };\r\n this.emitedDeletedValue.emit(obj);\r\n }\r\n if(!this.arrayList?.length && this.multiple){\r\n this.employeeSearchControl.markAsTouched();\r\n this.control.setValue([]);\r\n this.control.setValidators(this.Validators['required'])\r\n this.control.updateValueAndValidity()\r\n } \r\n }\r\n\r\n onLoadOptions(event: any) {\r\n const input = event.target.value;\r\n this.data = [];\r\n if (input.length >= 3) {\r\n this.selected = false;\r\n this.loading = true;\r\n this.coreService\r\n .searchEmployee(input)\r\n .pipe(takeUntilDestroyed(this.destroyRef))\r\n .subscribe({\r\n next: (form: any) => {\r\n this.loading = false;\r\n this.data = form.Users;\r\n },\r\n error: (err) => {},\r\n complete: () => {},\r\n });\r\n } else if (input.length == 0) {\r\n if (this.multiple) {\r\n } else {\r\n this.control.reset();\r\n this.control.markAsTouched();\r\n }\r\n }\r\n }\r\n\r\n includeData(option: any, filterValue: string) {\r\n if (\r\n option?.email.toLowerCase().includes(filterValue) ||\r\n option?.name.toLowerCase().includes(filterValue)\r\n ) {\r\n return option;\r\n } else {\r\n return false;\r\n }\r\n }\r\n\r\n getImage(id: string): string {\r\n return '/group/i-gate/wm-bpm/forms/-/proxy/portrait?email=' + id;\r\n }\r\n\r\n selectOption(object: any, ev: any) {\r\n this.userAlreadyExist = false;\r\n this.selected = true;\r\n this.data = [];\r\n if (this.multiple) {\r\n if (this.arrayList?.some((item) => item?.personEmail === object?.email)) {\r\n this.userAlreadyExist = true;\r\n return;\r\n }\r\n let obj = {\r\n personName: object.name,\r\n personEmail: object.email,\r\n // job: object.job.name,\r\n // jobCode: object.job.code,\r\n // manager: object.manager,\r\n // department: object.department,\r\n // generalDepartment: object.generalDepartment,\r\n // sector: object.sector,\r\n // section: object.section,\r\n // seniorSectorName: object.seniorSectorName,\r\n };\r\n this.arrayList?.push(obj);\r\n this.control.setValue(this.arrayList);\r\n \r\n } else {\r\n const controlValue = {\r\n personName: object.name,\r\n personEmail: object.email,\r\n };\r\n this.control.setValue(controlValue);\r\n this.employeeSearchControl.setValue(object.name);\r\n }\r\n }\r\n}\r\n\r\nexport interface searchEmp {\r\n personName?: string;\r\n personEmail?: string;\r\n contact?: string;\r\n employeeNumber?: string;\r\n}\r\n","@if (!isReadOnly) {\r\n<ng-container>\r\n @if(label) {\r\n <app-form-label\r\n [label]=\"label\"\r\n [optional]=\"!control.hasValidator(Validators['required'])\" \r\n [tooltip]=\"tooltip\"\r\n ></app-form-label>\r\n }\r\n <mat-form-field\r\n class=\"primary-form {{ className }}\"\r\n [floatLabel]=\"floatLabel\"\r\n [ngClass]=\"{\r\n 'custom-validation': !control.errors\r\n }\"\r\n >\r\n <mat-label>{{ label }}</mat-label>\r\n <ds-icon icon=\"search\" class=\"fc-coral fs-18\"></ds-icon>\r\n <label class=\"mat-form-content\">\r\n <input\r\n type=\"text\"\r\n aria-label=\"Number\"\r\n (input)=\"onLoadOptions($event)\"\r\n matInput\r\n [disabled]=\"isDisabled\"\r\n [matAutocomplete]=\"auto\"\r\n [formControl]=\"employeeSearchControl\"\r\n />\r\n </label>\r\n @if (loading) {\r\n <span class=\"sfi sfi-spinner d-inline-block spin fc-coral\" matSuffix></span>\r\n }\r\n <mat-autocomplete #auto=\"matAutocomplete\">\r\n @for (option of data; track option) {\r\n <mat-option\r\n [value]=\"option?.['personName']\"\r\n (onSelectionChange)=\"selectOption(option, $event)\"\r\n >\r\n <div class=\"d-flex align-items-center gap-3\">\r\n <div class=\"dropdown-img\">\r\n <ds-avatar\r\n [image]=\"getImage(option?.email)\"\r\n onerror=\"this.onerror=null;this.src='assets/images/user.svg';\"\r\n slot=\"prefix\"\r\n class=\"avatar\"\r\n size=\"small\"\r\n >\r\n </ds-avatar>\r\n </div>\r\n <div class=\"line-height-1\">\r\n <h6 class=\"fs-14 fw-medium fc-onyx mb-0 line-height-1\">\r\n {{ option?.name }}\r\n </h6>\r\n <span class=\"fs-13 fw-normal fc-dark-gray\">{{\r\n option?.description\r\n }}</span>\r\n </div>\r\n </div>\r\n </mat-option>\r\n \r\n }\r\n </mat-autocomplete>\r\n @if (showHint) {\r\n <mat-hint>\r\n <span\r\n class=\"sfi sfi-check-circle font-10 fc-dark-gray\"\r\n [ngClass]=\"{ 'fc-oasis-light-imp': value }\"\r\n ></span>\r\n <span class=\"mx-1\"></span>\r\n <span class=\"fs-12 fc-onyx\">{{ hint }}</span>\r\n </mat-hint>\r\n }\r\n </mat-form-field>\r\n \r\n \r\n <!-- <app-validation-errors [errors]=\"customErrorMessage || employeeSearchControl.errors\" [isEmployeeSearchControl]=\"multiple? true: false\"></app-validation-errors> -->\r\n @if(control.invalid && employeeSearchControl.touched){\r\n <mat-error class=\"mb-2\">\r\n this filed is required\r\n </mat-error>\r\n }\r\n \r\n\r\n \r\n @if (userAlreadyExist) {\r\n <mat-error class=\"mb-2\">{{ \"userAlreadyExist\" | translate }}</mat-error>\r\n } @if (arrayList?.length && !isReadOnly && multiple) {\r\n <div class=\"col-12 mt-2\">\r\n <div class=\"example-list n-results\">\r\n @for (emails of arrayList; track $index) {\r\n <div class=\"example-box n-col px-3\" [ngClass]=\"{ 'mt-0': $index === 0 }\">\r\n <div class=\"d-flex flex-grow-1 w-100\">\r\n <div class=\"user-info flex-grow-1\">\r\n <ds-avatar\r\n [image]=\"getImage(emails?.['personEmail'])\"\r\n onerror=\"this.onerror=null;this.src='assets/images/user.svg';\"\r\n slot=\"prefix\"\r\n class=\"avatar prof-img\"\r\n >\r\n </ds-avatar>\r\n @if (emails?.['personName']) {\r\n <label>\r\n {{ emails?.['personName'] }}\r\n <span class=\"title\">{{ emails?.['personEmail'] }}</span>\r\n </label>\r\n }\r\n </div>\r\n @if (!isReadOnly) {\r\n <ds-button\r\n class=\"ds-btn-action\"\r\n size=\"small\"\r\n (click)=\"deleteRow($index, emails)\"\r\n icon\r\n >\r\n <ds-icon icon=\"trash\" class=\"fc-coral fs-20\"></ds-icon>\r\n </ds-button>\r\n }\r\n </div>\r\n </div>\r\n }\r\n </div>\r\n </div>\r\n }\r\n</ng-container>\r\n} @if (isReadOnly && control.value) {\r\n<ng-container>\r\n <app-info-item\r\n class=\"info-item\"\r\n type=\"user-picker\"\r\n [hasLabel]=\"!!label\"\r\n [multiple]=\"multiple\"\r\n [ngClass]=\"{ 'user-picker': !isReadOnly }\"\r\n [actionType]=\"!isReadOnly ? 'delete' : 'edit'\"\r\n [label]=\"label\"\r\n [name]=\"control.value['personName']\"\r\n [value]=\"control.value['personEmail']\"\r\n [arrayList]=\"arrayList\"\r\n >\r\n </app-info-item>\r\n</ng-container>\r\n}\r\n\r\n<sat-popover #searchEmpPopover [hasBackdrop]=\"true\" verticalAlign=\"below\">\r\n <div class=\"default-popover p-3\">\r\n <ol class=\"px-3 m-0\">\r\n <li>{{ \"searchEmployeeTooltip_1\" | translate }}</li>\r\n <li>{{ \"searchEmployeeTooltip_2\" | translate }}</li>\r\n <li>{{ \"searchEmployeeTooltip_3\" | translate }}</li>\r\n <li>{{ \"searchEmployeeTooltip_4\" | translate }}</li>\r\n </ol>\r\n </div>\r\n</sat-popover>\r\n","import {ReactiveFormsModule, Validators} from '@angular/forms';\r\n/* eslint-disable @angular-eslint/component-selector */\r\n/* eslint-disable @angular-eslint/use-lifecycle-interface */\r\n/* eslint-disable @typescript-eslint/no-explicit-any */\r\n/* eslint-disable @angular-eslint/no-output-on-prefix */\r\nimport { BaseComponent } from './../base-component/base-component.component';\r\nimport {MatError, MatFormField, MatLabel, MatOption, MatSelect, MatSelectChange} from '@angular/material/select';\r\nimport {\r\n Component,\r\n Input,\r\n Output,\r\n EventEmitter,\r\n SimpleChanges,\r\n ElementRef,\r\n ViewChild,\r\n CUSTOM_ELEMENTS_SCHEMA,\r\n} from '@angular/core';\r\nimport {MatProgressSpinner} from \"@angular/material/progress-spinner\";\r\nimport {NgForOf, NgIf} from \"@angular/common\";\r\nimport {InfoItemComponent} from \"../info-item/info-item.component\";\r\nimport {FormLabelComponent} from \"../form-label/form-label.component\";\r\n\r\n@Component({\r\n selector: 'app-select',\r\n templateUrl: './select.component.html',\r\n styleUrls: ['./select.component.scss'],\r\n schemas: [CUSTOM_ELEMENTS_SCHEMA],\r\n standalone: true,\r\n imports: [\r\n ReactiveFormsModule,\r\n MatSelect,\r\n MatOption,\r\n MatLabel,\r\n MatProgressSpinner,\r\n MatError,\r\n NgIf,\r\n NgForOf,\r\n InfoItemComponent,\r\n FormLabelComponent,\r\n MatFormField\r\n ]\r\n})\r\nexport class SelectComponent extends BaseComponent {\r\n emitedValues = [];\r\n @Input() valueName: any = 'description';\r\n @Input() parentKey = '';\r\n @Input() label!: string;\r\n @Input() tooltip!: string;\r\n @Input() className = 'bordered-input';\r\n @Input() showLabel = true;\r\n @Input() readonly = false;\r\n @Input() optional = false;\r\n @Input() data!: any[];\r\n @Output() onChange = new EventEmitter();\r\n @Input() error!: string;\r\n @Input() optionAr!: string;\r\n @Input() optionEn!: string;\r\n @Input() hasPlaceHolder = false;\r\n @Output() emitedMultiValue = new EventEmitter();\r\n @ViewChild('selectCtrl') selectCtrl!: ElementRef;\r\n selectAllEnabled = true;\r\n @ViewChild('selectAllOption') selectAllOption;\r\n selectedValues: string[] = [];\r\n @Input() parentValue: string;\r\n ngOnInit(): void {\r\n // this.resetPropagator.subscribe(this, this.resetKeyValue);\r\n if (this.field?.key) {\r\n this.controller.setValue(this.field.key);\r\n } else {\r\n this.controller.setValue('');\r\n }\r\n\r\n if (this.field?.length > 0) {\r\n this.controller.setValue(this.field);\r\n }\r\n\r\n if (this.required) {\r\n this.controller.setValidators([Validators.required]);\r\n }\r\n\r\n // send back case\r\n if (\r\n this.lov && this.lov?.options?.length &&\r\n Array.isArray(this.controller?.value) &&\r\n this.controller?.value?.length === this.lov?.options?.length\r\n ) {\r\n this.selectAllOption?.select();\r\n this.toggleAllOptions(true);\r\n }\r\n }\r\n\r\n ngOnChanges(changes: SimpleChanges) {\r\n if (changes?.['field'] && !this.multiple) {\r\n if (changes['field'].currentValue?.key == null) {\r\n this.controller.setValue('');\r\n } else {\r\n this.controller.setValue(changes['field'].currentValue.key);\r\n }\r\n }\r\n }\r\n\r\n resetKeyValue() {\r\n if (!this.isReadOnly) {\r\n this.controller.reset();\r\n this.controller.markAsUntouched();\r\n if (this.multiple) {\r\n this.field = [];\r\n this.emitedValues = [];\r\n this.emitedValue.emit(this.emitedValues);\r\n } else {\r\n this.field = {\r\n value: null,\r\n key: null,\r\n };\r\n this.emitedValue.emit(this.field);\r\n }\r\n }\r\n }\r\n\r\n toggleAllOptions(value: any) {\r\n this.selectCtrl['options'].forEach((option) => {\r\n if (value.selected) {\r\n option.select();\r\n } else {\r\n option.deselect();\r\n }\r\n });\r\n }\r\n\r\n transformSelectedData(value) {\r\n if (!value) {\r\n return '';\r\n }\r\n if (value[0] === 'all') {\r\n return this.lov.options[1]['description'];\r\n } else {\r\n const selectedOption = this.lov?.options?.find((option) => {\r\n let val = value[0];\r\n if (typeof val !== 'string') {\r\n val = val && val['value'];\r\n }\r\n return option.value === val;\r\n });\r\n return selectedOption?.description;\r\n }\r\n }\r\n\r\n handleOnOptionSelected(value: any) {\r\n value = value.filter((value) => value !== 'all'); // without all\r\n\r\n const selectedValues = value.map((val: any) => {\r\n const item = this.lov?.options?.find((element) => element.value == val);\r\n\r\n return {\r\n key: val,\r\n value: item.description,\r\n };\r\n });\r\n\r\n this.emitedMultiValue.emit(selectedValues);\r\n }\r\n\r\n emitSelectedValue(event: MatSelectChange): void {\r\n const index = this.lov.options.findIndex(\r\n (option) => option.value === event.value\r\n );\r\n this.controller.setValue(event.value);\r\n this.emitedValue.emit({\r\n key: event.value,\r\n value: this.lov.options[index].description,\r\n });\r\n }\r\n}\r\n","<ng-container *ngIf=\"!isReadOnly\">\r\n <app-form-label [label]=\"label\" [optional]=\"optional\" [hideOption]=\"hideOption\" [showLabel]=\"showLabel\">\r\n </app-form-label>\r\n <mat-form-field class=\"{{className}}\" [floatLabel]=\"'auto'\">\r\n <mat-label>\r\n {{ hasPlaceHolder ? placeholder : i18n.translate('selectYourOption')}}\r\n </mat-label>\r\n <label class=\"mat-form-content\">\r\n <ng-container *ngIf=\"!multiple\">\r\n <mat-select disableOptionCentering [disabled]=\"disabled\" [formControl]=\"controller\"\r\n (selectionChange)=\"emitSelectedValue($event)\"\r\n [placeholder]=\"hasPlaceHolder ? placeholder : i18n.translate('selectYourOption')\">\r\n <ng-container *ngIf=\"parentKey !== ''\">\r\n <ng-container *ngFor=\"let element of lov?.options\">\r\n <mat-option *ngIf=\"element?.parentValue === parentKey\" [value]=\"element.value\">\r\n {{element.description}}\r\n </mat-option>\r\n </ng-container>\r\n </ng-container>\r\n <ng-container *ngIf=\"parentKey ===''\">\r\n <mat-option *ngFor=\"let element of lov?.options\" [value]=\"element.value\">\r\n {{element.description}}\r\n </mat-option>\r\n </ng-container>\r\n </mat-select>\r\n </ng-container>\r\n <ng-container *ngIf=\"multiple\">\r\n <mat-select #selectCtrl [disabled]=\"disabled\" [formControl]=\"controller\" multiple\r\n (selectionChange)=\"handleOnOptionSelected($event?.value)\"\r\n [placeholder]=\"hasPlaceHolder ? placeholder : i18n.translate('selectYourOption')\">\r\n\r\n <mat-select-trigger *ngIf=\"selectAllEnabled\">\r\n {{ transformSelectedData(controller?.getRawValue())}}\r\n <span *ngIf=\"(controller.value?.length || 0) > 1\" >\r\n (+{{ (controller.value?.length || 0) - 1 }} {{ controller.value?.length === 2 ? i18n.translate('other') : i18n.translate('others') }})\r\n </span>\r\n </mat-select-trigger>\r\n\r\n <ng-container *ngIf=\"parentKey !== ''\" >\r\n <ng-container *ngFor=\"let element of lov?.options\" class=\"mx-2\">\r\n <mat-option *ngIf=\"element?.parentValue === parentKey\" [value]=\"element.value\">\r\n {{element.description}}\r\n </mat-option>\r\n </ng-container>\r\n </ng-container>\r\n <ng-container *ngIf=\"parentKey ===''\" >\r\n\r\n <mat-option #selectAllOption *ngIf=\"selectAllEnabled && lov?.options?.length\" value=\"all\" class=\"mx-2\" (click)=\"toggleAllOptions(selectAllOption)\">\r\n {{i18n.translate('selectAll')}}\r\n </mat-option>\r\n\r\n <mat-option *ngFor=\"let element of lov?.options\" [value]=\"element.value\" class=\"mx-2\">\r\n {{element.description}}\r\n </mat-option>\r\n\r\n\r\n </ng-container>\r\n </mat-select>\r\n </ng-container>\r\n\r\n\r\n\r\n\r\n\r\n <mat-label *ngIf=\"loading\">\r\n <div class=\"select-placeholder-container\">\r\n <!-- <span>Loading...</span> -->\r\n <mat-spinner class=\"spinner\" diameter=\"20\"></mat-spinner>\r\n </div>\r\n </mat-label>\r\n\r\n </label>\r\n\r\n <mat-error class=\"mb-2\" *ngIf=\"(!controller?.valid)\">{{i18n.translate('validSelectError')}}{{label}}\r\n </mat-error>\r\n\r\n <mat-hint *ngIf=\"showHint && hint\" class=\"mb-2\">\r\n <span class=\"mat-error\">{{hint}}</span>\r\n </mat-hint>\r\n\r\n <!-- <mat-error *ngIf=\"!controller.valid\">{{error}}</mat-error> -->\r\n </mat-form-field>\r\n</ng-container>\r\n\r\n<ng-container *ngIf=\"isReadOnly && (showIfEmpty || field?.value)\" class=\"info-section\">\r\n <app-info-item class=\"info-item w-100\" [label]=\"label\" [hasLabel]=\"hasLabel\" [insideTable]=\"insideTable\"\r\n [value]=\"field?.value || field?.key\"></app-info-item>\r\n</ng-container>\r\n\r\n<ng-container *ngIf=\"isReadOnly && multiple\" class=\"info-section\">\r\n <app-info-item class=\"info-item w-100\" [label]=\"label\" [type]=\"'multipleSelect'\" [hasLabel]=\"hasLabel\" [insideTable]=\"insideTable\"\r\n [value]=\"field\"></app-info-item>\r\n</ng-container>\r\n","import {NG_VALUE_ACCESSOR} from '@angular/forms';\r\nimport {Component, CUSTOM_ELEMENTS_SCHEMA, DestroyRef, forwardRef, inject, Input} from '@angular/core';\r\nimport { ControlValueAccessorDirective } from '../control-value-accessor.directive';\r\nimport { MatFormImports, Shareds, TextLanguageDirectives } from '../shared-imports';\r\nimport { takeUntilDestroyed } from '@angular/core/rxjs-interop';\r\n\r\n@Component({\r\n selector: 'app-textarea',\r\n templateUrl: './textarea.component.html',\r\n styleUrls: ['./textarea.component.scss'],\r\n schemas: [CUSTOM_ELEMENTS_SCHEMA],\r\n imports: [\r\n ...MatFormImports,\r\n ...Shareds,\r\n ...TextLanguageDirectives\r\n ],\r\n standalone: true,\r\n providers: [\r\n {\r\n provide: NG_VALUE_ACCESSOR,\r\n useExisting: forwardRef(() => TextareaComponent),\r\n multi: true,\r\n },\r\n ]\r\n})\r\nexport class TextareaComponent<Type> extends ControlValueAccessorDirective<Type> {\r\n @Input() className!: string;\r\n @Input() preventSpecailChar!: boolean;\r\n destroyRef = inject(DestroyRef);\r\n override ngOnInit(): void {\r\n super.ngOnInit()\r\n this.actionStateService.resetAction$\r\n .pipe(takeUntilDestroyed(this.destroyRef))\r\n .subscribe(res => {\r\n if (!this.isReadOnly && this.control.enabled) {\r\n this.control.reset();\r\n }\r\n });\r\n\r\n }\r\n}\r\n","@if(!isReadOnly){\r\n <ng-container>\r\n @if(label){\r\n <app-form-label [label]=\"label\" [optional]=\"!control.hasValidator(Validators['required'])\" [tooltip]=\"tooltip\"></app-form-label>\r\n }\r\n <mat-form-field class=\"custom-textarea bordered-input {{className}}\">\r\n <mat-label>{{ label }}</mat-label>\r\n <label class=\"mat-form-content\">\r\n @if (type === 'arOnly'){\r\n <textarea [placeholder]=\"placeholder\" min=\"minlength\" arOnly max=\"maxValue\"\r\n [formControl]=\"control\" matInput></textarea>\r\n }\r\n @if (type === 'enOnly'){\r\n <textarea [placeholder]=\"placeholder\" min=\"minlength\" enOnly max=\"maxValue\"\r\n [formControl]=\"control\" matInput></textarea>\r\n }\r\n @if (type !== 'enOnly' && type !== 'arOnly' ){\r\n <textarea [placeholder]=\"placeholder\" \r\n [maxlength]=\"maxLength\" min=\"minlength\" specialIsAlphaNumeric max=\"maxValue\"\r\n [formControl]=\"control\" matInput></textarea>\r\n }\r\n \r\n </label>\r\n @if (showHint){\r\n <mat-hint class=\"d-flex align-items-center gap-1 mt-1\">\r\n <span class=\"sfi sfi-info fs-17 fc-dark-gray\" [ngClass]=\"{'fc-oasis-light-imp':value}\"></span>\r\n <span class=\"fs-12 fc-black line-height-1\">{{ hint }}</span>\r\n </mat-hint>\r\n }\r\n \r\n </mat-form-field>\r\n <app-validation-errors [errors]=\"control.errors\"></app-validation-errors>\r\n \r\n </ng-container>\r\n}\r\n@if (isReadOnly && control.value && (showIfEmpty || control)){\r\n <ng-container>\r\n <app-info-item class=\"info-item w-100\" [insideTable]=\"insideTable\" [label]=\"label\" [value]=\"control?.value\" [type]=\"type\"></app-info-item>\r\n </ng-container>\r\n}\r\n\r\n","/* eslint-disable @angular-eslint/directive-selector */\r\n/* eslint-disable @typescript-eslint/no-empty-function */\r\nimport { Directive, HostListener } from '@angular/core';\r\n\r\n@Directive({\r\n selector: '[specialIsAlphaNumeric]'\r\n})\r\nexport class SpecialCharacterDirective {\r\n regexStr = '^[a-zA-Z0-9]*$';\r\n\r\n constructor() {\r\n\r\n }\r\n\r\n @HostListener('input', ['$event']) onInputChange(event) {\r\n const inputElement = event.target as HTMLInputElement;\r\n inputElement.value = inputElement.value.replace(/[\\'\\`]/g, '');\r\n }\r\n\r\n @HostListener('paste', ['$event'])\r\n blockPaste(event: ClipboardEvent) {\r\n const inputElement = event.target as HTMLInputElement;\r\n inputElement.value = inputElement.value.replace(/[\\'\\`]/g, '');\r\n }\r\n\r\n @HostListener('drop', ['$event'])\r\n onDrop(event) {\r\n const inputElement = event.target as HTMLInputElement;\r\n inputElement.value = inputElement.value.replace(/[\\'\\`]/g, '');\r\n }\r\n\r\n}\r\n","import { Component, Input, Output, EventEmitter, forwardRef, inject, DestroyRef } from '@angular/core';\r\nimport {MatButtonToggle, MatButtonToggleGroup} from \"@angular/material/button-toggle\";\r\nimport {SatPopoverModule} from \"@ncstate/sat-popover\";\r\nimport { ControlValueAccessorDirective } from '../control-value-accessor.directive';\r\nimport { NG_VALUE_ACCESSOR } from '@angular/forms';\r\nimport { Shareds } from '../shared-imports';\r\nimport { takeUntilDestroyed } from '@angular/core/rxjs-interop';\r\n\r\n@Component({\r\n selector: 'app-toggle-button',\r\n templateUrl: './toggle-button.component.html',\r\n styleUrls: ['./toggle-button.component.scss'],\r\n imports: [\r\n MatButtonToggleGroup,\r\n MatButtonToggle,\r\n SatPopoverModule,\r\n ...Shareds\r\n ],\r\n providers: [\r\n {\r\n provide: NG_VALUE_ACCESSOR,\r\n useExisting: forwardRef(() => ToggleButtonComponent),\r\n multi: true,\r\n },\r\n ],\r\n standalone: true\r\n})\r\nexport class ToggleButtonComponent<Type> extends ControlValueAccessorDirective<Type> {\r\n @Input() className = 'bordered-input';\r\n @Input() data!: any[];\r\n @Output() onChange = new EventEmitter();\r\n @Input() error!: string;\r\n @Input() optionAr!: string;\r\n @Input() optionEn!: string;\r\n @Input() hasHint = false;\r\n @Input() options:any[];\r\n @Input() displayedLabel: string;\r\n @Input() key: string;\r\n destroyRef = inject(DestroyRef);\r\n override ngOnInit(): void {\r\n super.ngOnInit()\r\n this.actionStateService.resetAction$\r\n .pipe(takeUntilDestroyed(this.destroyRef))\r\n .subscribe(res => {\r\n if (!this.isReadOnly && this.control.enabled) {\r\n this.control.reset();\r\n }\r\n });\r\n\r\n }\r\n\r\n\r\n\r\n}\r\n","@if(!isReadOnly){\r\n <ng-container>\r\n @if(label){\r\n <app-form-label [label]=\"label\" [optional]=\"!control.hasValidator(Validators['required'])\" [tooltip]=\"tooltip\"></app-form-label>\r\n }\r\n\r\n @if(options){\r\n <mat-button-toggle-group class=\"Toggle__buttons d-flex align-items-center gap-3\" [value]=\"control.value\" [formControl]=\"control\"\r\n aria-label=\"Font Style\" [multiple]=\"multiple\">\r\n @for(item of options; track item){\r\n <mat-button-toggle [value]=\"item[key]\" (click)=\"hasHint ? hintSection?.toggle() : null\" [satPopoverAnchor]=\"hintSection\">\r\n <span>\r\n {{item[displayedLabel]}}\r\n </span>\r\n <sat-popover #hintSection [hasBackdrop]=\" true\" verticalAlign=\"below\">\r\n <div class=\"default-tooltip\">\r\n <p class=\"m-0\" [innerHTML]=\"item[displayedLabel]\"></p>\r\n </div>\r\n </sat-popover>\r\n </mat-button-toggle>\r\n }\r\n\r\n </mat-button-toggle-group>\r\n }\r\n </ng-container>\r\n}\r\n\r\n@if(isReadOnly && control.value){\r\n <ng-container>\r\n <app-info-item class=\"info-item w-100\" [insideTable]=\"insideTable\" [type]=\"'toggleBtn'\" [label]=\"label\" [value]=\"control?.value\"></app-info-item>\r\n </ng-container>\r\n\r\n}\r\n","/* eslint-disable @typescript-eslint/no-explicit-any */\r\n/* eslint-disable @angular-eslint/component-selector */\r\n/* eslint-disable @typescript-eslint/no-empty-function */\r\nimport {Component, CUSTOM_ELEMENTS_SCHEMA, Input} from '@angular/core';\r\nimport {NgClass, NgForOf, NgIf} from \"@angular/common\";\r\nimport {SatPopoverModule} from \"@ncstate/sat-popover\";\r\n\r\n@Component({\r\n selector: 'app-repeated-list',\r\n templateUrl: './repeated-list.component.html',\r\n styleUrls: ['./repeated-list.component.scss'],\r\n schemas: [CUSTOM_ELEMENTS_SCHEMA],\r\n standalone: true,\r\n imports: [\r\n NgForOf,\r\n SatPopoverModule,\r\n NgClass,\r\n NgIf\r\n ]\r\n})\r\nexport class RepeatedListComponent {\r\n @Input() listOfItems: any;\r\n @Input() type = ''; // users-avatar, categories\r\n constructor() { }\r\n\r\n getImage(email: string) {\r\n return \"/group/i-gate/wm-bpm/forms/-/proxy/portrait?email=\" + email;\r\n }\r\n\r\n\r\n}\r\n","<div class=\"{{type}}\">\r\n <ng-container *ngFor=\"let item of listOfItems; let i = index\">\r\n <div class=\"item\" *ngIf=\"i <= 1\">\r\n <span class=\"img-card circled-img x-small\" *ngIf=\"item.image\">\r\n <img [src]=\"item.image\" [alt]=\"item.personName\">\r\n </span>\r\n <span class=\"name font-12\">\r\n {{item.personName}}\r\n </span>\r\n </div>\r\n </ng-container>\r\n\r\n <span class=\"text-color-onyx font-14 font-weight-medium cursor-pointer more\" *ngIf=\"listOfItems.length > 2\"\r\n [satPopoverAnchor]=\"tooltipOfItems\" (mouseenter)=\"tooltipOfItems.open()\" (mouseleave)=\"tooltipOfItems.close()\">\r\n {{listOfItems.length - 2 !== 0 ? '+' + (listOfItems.length - 2) : ''}}\r\n </span>\r\n <sat-popover #tooltipOfItems horizontalAlign=\"center\" verticalAlign=\"above\">\r\n <div class=\"border bg-color-white\">\r\n <div class=\"d-flex align-items-center border-bottom p-2\" [ngClass]=\"{'border-0': last}\"\r\n *ngFor=\"let item of listOfItems; let i = index; let last = last\">\r\n <span class=\"img-card circled-img x-small\" *ngIf=\"item.image\">\r\n <img [src]=\"item.image\" [alt]=\"item.personName\">\r\n </span>\r\n <span class=\"mx-1\" *ngIf=\"item.image\"></span>\r\n <span class=\"name font-12\">\r\n {{item.personName}}\r\n </span>\r\n\r\n </div>\r\n </div>\r\n </sat-popover>\r\n\r\n\r\n</div>\r\n","/* eslint-disable @angular-eslint/use-lifecycle-interface */\r\n/* eslint-disable @typescript-eslint/no-explicit-any */\r\n/* eslint-disable @angular-eslint/component-selector */\r\nimport {CUSTOM_ELEMENTS_SCHEMA, EventEmitter} from '@angular/core';\r\nimport {BaseComponent} from './../base-component/base-component.component';\r\nimport {Component, Input, Output} from '@angular/core';\r\nimport {MatTableDataSource, MatTableModule} from '@angular/material/table';\r\nimport {MatPaginatorModule} from '@angular/material/paginator';\r\nimport {DatePipe, NgClass, NgForOf, NgIf, NgSwitch, NgSwitchCase, NgSwitchDefault} from \"@angular/common\";\r\nimport {RouterLink} from \"@angular/router\";\r\nimport {RepeatedListComponent} from \"../repeated-list/repeated-list.component\";\r\nimport {MatButton} from \"@angular/material/button\";\r\nimport {MatMenu, MatMenuItem, MatMenuTrigger} from \"@angular/material/menu\";\r\n\r\n// import { ConfirmationPopupComponent } from '../../confirmation-popup/confirmation-popup.component';\r\n\r\n\r\n@Component({\r\n selector: 'app-table-list',\r\n templateUrl: './table-list.component.html',\r\n styleUrls: ['./table-list.component.scss'],\r\n schemas: [CUSTOM_ELEMENTS_SCHEMA],\r\n standalone: true,\r\n imports: [\r\n MatPaginatorModule,\r\n MatTableModule,\r\n NgForOf,\r\n NgClass,\r\n NgSwitchCase,\r\n RouterLink,\r\n NgSwitch,\r\n NgIf,\r\n DatePipe,\r\n RepeatedListComponent,\r\n MatButton,\r\n MatMenu,\r\n MatMenuTrigger,\r\n MatMenuItem,\r\n NgSwitchDefault\r\n ]\r\n})\r\nexport class TableListComponent extends BaseComponent {\r\n @Input() columns: any;\r\n @Input() columnsConfig: any;\r\n @Input() rows: any;\r\n @Input() actions: any = [];\r\n @Input() totalRecords !: number;\r\n @Input() className = '';\r\n public dataSource = new MatTableDataSource<any>();\r\n @Output() pageChanged: EventEmitter<any> = new EventEmitter();\r\n @Output() buttonAction: EventEmitter<any> = new EventEmitter();\r\n @Output() emitDataRow: EventEmitter<any> = new EventEmitter();\r\n\r\n // constructor(public dialog: MatDialog) { }\r\n\r\n ngOnInit(): void {\r\n this.dataSource.data = this.rows;\r\n }\r\n\r\n truncateName(text: string) {\r\n if (text) {\r\n const characters = text.match(/\\b(\\w)/g);\r\n if (characters) {\r\n return characters.join('');\r\n } else {\r\n return '';\r\n }\r\n } else {\r\n return '';\r\n }\r\n }\r\n\r\n onPageChange(event: any) {\r\n this.pageChanged.emit(event)\r\n }\r\n\r\n\r\n delete(): void {\r\n // const dialogRef = this.dialog.open(ConfirmationPopupComponent, {\r\n // width: '700px',\r\n // panelClass: ['confirm-popup', 'main-popup'],\r\n // data: {\r\n // title: 'Delete Match',\r\n // message: 'Are you sure you want delete',\r\n // confirmText: 'match making example name',\r\n // moreText: '',\r\n // type: 'delete',\r\n // icon: 'delete-match',\r\n // }\r\n // });\r\n\r\n // dialogRef.afterClosed().subscribe(() => {\r\n // // closed\r\n // });\r\n }\r\n\r\n buttonClicked(element, fn: string, $event: MouseEvent) {\r\n\r\n }\r\n\r\n selectedRow(row) {\r\n\r\n }\r\n\r\n getSlaColor(value: any, max: number) {\r\n\r\n }\r\n\r\n sentBack() {\r\n\r\n }\r\n}\r\n","<div class=\"overflow-auto\">\r\n <!-- #table (scroll)=\"onPageChange($event)\" -->\r\n <ng-container >\r\n <!-- (matSortChange)=\"sortData($event)\" -->\r\n <table mat-table [dataSource]=\"dataSource\" class=\"primary-table {{className}}\" matSort >\r\n <ng-container *ngFor=\"let column of columns; let i = index;\">\r\n <ng-container [matColumnDef]=\"column\">\r\n <th mat-header-cell *matHeaderCellDef [ngClass]=\"{'last-column' : columnsConfig[i].type === 'actions', 'sortArrow': columnsConfig[i]?.sortName?.length }\" mat-sort-header>\r\n {{i18n.translate(columnsConfig[i].label)}} </th>\r\n \r\n <td mat-cell [ngClass]=\"{'account-disabled': element?.user?.disabledCleanUp===true}\" *matCellDef=\"let element\">\r\n <ng-container [ngSwitch]=\"columnsConfig[i].type\" *ngIf=\"rows.length\">\r\n <a [ngClass]=\"columnsConfig[i].type\" [href]=\"element[column]\" *ngSwitchCase=\"'link'\">\r\n {{ element[column] }}\r\n </a>\r\n \r\n <a [ngClass]=\"columnsConfig[i].type\" [routerLink]=\"[element.id]\" [href]=\"element[column]\"\r\n *ngSwitchCase=\"'rout'\">\r\n {{ element[column] }}\r\n </a>\r\n \r\n <span class=\"d-inline-flex align-items-center\" [ngClass]=\"columnsConfig[i].type\" *ngSwitchCase=\"'date'\">\r\n <span class=\"sfi sfi-clock text-color-coral\" *ngIf=\"!loading\"></span>\r\n <span class=\"mx-2\">\r\n <!-- {{ element?.Date.from }}\r\n <ng-container *ngIf=\"element?.Date.to\">\r\n : {{ element?.Date.to }}\r\n </ng-container> -->\r\n {{ element[column] | date: 'dd/MM/YYYY' }}\r\n </span>\r\n </span>\r\n \r\n <div class=\"d-inline-flex align-items-center\" [ngClass]=\"columnsConfig[i].type\" *ngSwitchCase=\"'sla'\">\r\n <app-sla [value]=\"element?.SLA.value\" [maxValue]=\"element?.SLA.max\" [canvasScale]=\"45\"\r\n [outerLineColor]=\"getSlaColor(element?.SLA.value, element?.SLA.max)\"></app-sla>\r\n </div>\r\n \r\n <div class=\"img-card table-img\" [ngClass]=\"columnsConfig[i].type\" *ngSwitchCase=\"'image'\">\r\n <img [src]=\"element?.image\" alt=\"\">\r\n </div>\r\n \r\n <span class=\"{{ element[column].type }}\" [ngClass]=\"columnsConfig[i].type\" *ngSwitchCase=\"'status'\">\r\n {{ element[column].label }}\r\n </span>\r\n \r\n \r\n <div class=\"d-flex mx-n1\" *ngSwitchCase=\"'RequestType'\">\r\n <div class=\"request-type mx-1 {{item.status}}\" *ngFor=\"let item of element?.RequestType\">\r\n {{ item.label }}\r\n <span class=\"mx-1\" *ngIf=\"item.status === 'need-action'\"></span>\r\n <span class=\"sfi sfi-info \" *ngIf=\"item.status === 'need-action'\"></span>\r\n </div>\r\n </div>\r\n \r\n \r\n <span class=\"{{ element[column].type }} {{ element[column] ? 'text-color-coral underline' : '' }}\"\r\n [ngClass]=\"columnsConfig[i].type\" *ngSwitchCase=\"'number'\">\r\n {{ element[column] ? element[column] : '-' }}\r\n </span>\r\n \r\n <div class=\"text-nowrap d-flex align-items-center\" [ngClass]=\"columnsConfig[i].type\"\r\n *ngSwitchCase=\"'group'\">\r\n <span>{{element?.Group.groupName}}</span>\r\n <span class=\"mx-2\"></span>\r\n <app-repeated-list type=\"users-avatar\" [listOfItems]=\"element?.Group.users\"></app-repeated-list>\r\n </div>\r\n \r\n <div class=\"d-flex align-items-center gap-2\" [ngClass]=\"columnsConfig[i].type\" *ngSwitchCase=\"'user'\">\r\n <span class=\"img-card circled-img small\" *ngIf=\"!loading\">\r\n <img src=\"{{'data:image/png;base64,' + element?.user?.personalPhoto}}\"\r\n onerror=\"this.onerror=null;this.src='assets/images/user.svg';\" alt=\"\">\r\n </span>\r\n <div class=\"d-flex flex-column\">\r\n <span class=\"font-14 font-weight-medium\">{{element?.user?.name}}</span>\r\n <span class=\"font-12 font-weight-normal text-color-dark-gray mt-1\">{{element?.user?.email}}</span>\r\n </div>\r\n </div>\r\n \r\n \r\n <div class=\"delegate d-flex align-items-center\" [ngClass]=\"columnsConfig[i].type\"\r\n *ngSwitchCase=\"'assigned'\">\r\n <div class=\"img-card x-small circled-img\">\r\n <img [src]=\"element?.AssignedTo.image\" alt=\"\">\r\n </div>\r\n <span class=\"mx-1\"></span>\r\n <span class=\"font-14 font-weight-medium text-color-onyx\">{{element?.AssignedTo.name}}</span>\r\n <span class=\"sfi sfi-close text-color-coral\"></span>\r\n </div>\r\n \r\n \r\n <ng-container *ngSwitchCase=\"'statusAction'\">\r\n <div class=\"table-action\">\r\n \r\n <div class=\"count-down mx-n1\" *ngIf=\"element[column] === 'need-action'\">\r\n <div class=\"item mx-1\">\r\n <span class=\"font-12 font-weight-medium text-color-onyx d-block\">01</span>\r\n <span class=\"font-8 font-weight-light text-color-onyx d-block\">Days</span>\r\n </div>\r\n <div class=\"item mx-1\">\r\n <span class=\"font-12 font-weight-medium text-color-onyx d-block\">18</span>\r\n <span class=\"font-8 font-weight-light text-color-onyx d-block\">Hours</span>\r\n </div>\r\n <div class=\"item mx-1\">\r\n <span class=\"font-12 font-weight-medium text-color-onyx d-block\">44</span>\r\n <span class=\"font-8 font-weight-light text-color-onyx d-block\">Mins</span>\r\n </div>\r\n </div>\r\n \r\n <div class=\"d-flex align-items-center\" *ngIf=\"element[column] === 'approved'\">\r\n <span class=\"status approved\">\r\n Approved\r\n </span>\r\n </div>\r\n \r\n <div class=\"d-flex align-items-center\" *ngIf=\"element[column] === 'sent-back'\">\r\n <span class=\"status rejected\">\r\n Sent Back\r\n </span>\r\n <span class=\"mx-2\"></span>\r\n <button mat-stroked-button class=\"btn button-primary square br-w-1 font-14 font-weight-medium\"\r\n (click)=\"sentBack()\">\r\n <span class=\"sfi sfi-chat-o\"></span>\r\n </button>\r\n </div>\r\n \r\n <div class=\"d-flex align-items-center\" *ngIf=\"element[column] === 'pending'\">\r\n <span class=\"status pending\">\r\n Pending\r\n </span>\r\n <span class=\"mx-2\"></span>\r\n \r\n <div class=\"d-flex align-items-center mx-n1\">\r\n <div class=\"img-card circled-img x-small mx-1\">\r\n <img [src]=\"element?.pendingWith.image\" alt=\"\">\r\n </div>\r\n \r\n <div class=\"d-flex flex-column mx-1\">\r\n <span class=\"font-8 font-weight-medium text-color-yellow text-nowrap\">Pending With</span>\r\n <span class=\"font-11 font-weight-medium text-nowrap\">{{element?.pendingWith.name}}</span>\r\n </div>\r\n </div>\r\n </div>\r\n \r\n \r\n </div>\r\n </ng-container>\r\n \r\n \r\n <ng-container *ngSwitchCase=\"'actions'\">\r\n \r\n <div class=\"d-flex justify-content-between mx-n2\">\r\n <ng-container *ngFor=\"let action of element[column]\">\r\n \r\n <div class=\"flex-grow-1\">\r\n <ng-container *ngIf=\"action.type.buttonType === 'stroked'\">\r\n <button mat-stroked-button (click)=\"buttonClicked(element,action.fn, $event)\"\r\n class=\"btn button-{{action.type.buttonClass}} mx-2\">\r\n {{action.label}}\r\n </button>\r\n </ng-container>\r\n \r\n <ng-container *ngIf=\"action.type.buttonType === 'flat'\">\r\n <button mat-flat-button (click)=\"buttonClicked(element,action.fn, $event)\"\r\n class=\"btn button-{{action.type.buttonClass}} mx-2\">\r\n {{action.label}}\r\n </button>\r\n </ng-container>\r\n \r\n <ng-container *ngIf=\"action.type.buttonType === 'icon'\">\r\n <button mat-icon-button (click)=\"buttonClicked(element,action.fn, $event)\"\r\n class=\"btn button-{{action.type.buttonClass}} mx-2\">\r\n <span class=\"sfi sfi-{{action.type.icon}}\"></span>\r\n </button>\r\n </ng-container>\r\n </div>\r\n \r\n <ng-container *ngIf=\"action.type.buttonType === 'all'\">\r\n <button mat-icon-button class=\"btn button-transparent square medium mx-2 text-end\"\r\n [matMenuTriggerFor]=\"menuAction\" (click)=\"$event.stopPropagation()\">\r\n <span class=\"sfi sfi-dots text-color-onyx\"></span>\r\n </button>\r\n <mat-menu #menuAction=\"matMenu\" xPosition=\"before\" class=\"actions-menu\">\r\n <button *ngIf=\"!element?.user?.email && element?.user?.disabledCleanUp!==true\" mat-menu-item class=\"text-color-onyx font-12\"\r\n (click)=\"buttonClicked(element,'CreateEmail', $event)\">\r\n {{i18n.translate('createEmail')}} \r\n </button>\r\n <button *ngIf=\"element?.user?.email && element?.user?.enabled==='true'\" mat-menu-item class=\"text-color-red font-12\"\r\n (click)=\"buttonClicked(element,'DisableEmail', $event)\">\r\n {{ i18n.translate('disableEmail')}}\r\n </button>\r\n <button *ngIf=\"element?.user?.email && element?.user?.disabledCleanUp===true\" mat-menu-item class=\"text-color-red font-12\"\r\n (click)=\"buttonClicked(element,'EnableEmail', $event)\">\r\n {{ i18n.translate('enableEmail')}}\r\n </button>\r\n <button *ngIf=\"element?.user!==null && element?.user?.disabledCleanUp!==true\" mat-menu-item class=\"text-color-onyx font-12\"\r\n (click)=\"buttonClicked(element,'CreateEntryPermission', $event)\">\r\n {{ i18n.translate('createCEP')}}\r\n </button>\r\n <!-- <button *ngIf=\"!element?.user?.email\" mat-menu-item class=\"text-color-red font-12\"\r\n (click)=\"buttonClicked(element,'DisableEntryPermission', $event)\">\r\n {{i18n.translate('disableEntryPermission')}}\r\n </button> -->\r\n <button *ngIf=\"!element?.user?.email && element?.user?.disabledCleanUp!==true\" mat-menu-item class=\"text-color-red font-12\"\r\n (click)=\"buttonClicked(element,'DeleteAccount', $event)\">\r\n {{i18n.translate('deleteAccount')}}\r\n </button>\r\n\r\n <button *ngIf=\"element?.user?.email && element?.user?.disabledCleanUp!==true\" [disabled]=\"!element?.mailExtensionAllowed\" mat-menu-item class=\"text-color-onyx font-12\"\r\n (click)=\"buttonClicked(element,'ExtendAccount', $event)\">\r\n {{ i18n.translate('extendAccount')}}\r\n </button>\r\n <button mat-menu-item class=\"text-color-onyx font-12\" *ngIf=\"element?.user?.disabledCleanUp!==true\" (click)=\"buttonClicked(element,'update', $event)\">\r\n {{ i18n.translate('updateEmploymentInformation')}}\r\n </button>\r\n </mat-menu>\r\n </ng-container>\r\n </ng-container>\r\n </div>\r\n </ng-container>\r\n \r\n <span class=\"text-nowrap\" [ngClass]=\"columnsConfig[i].type\" *ngSwitchDefault>\r\n {{ element[column] }}\r\n </span>\r\n </ng-container>\r\n <ng-container *ngIf=\"loading\">\r\n <span class=\" d-block loading-bg\"></span>\r\n </ng-container>\r\n \r\n </td>\r\n \r\n \r\n </ng-container>\r\n </ng-container>\r\n \r\n <tr mat-header-row *matHeaderRowDef=\"columns\"></tr>\r\n <tr mat-row *matRowDef=\"let row; columns: columns;\" class=\"cursor-pointer\" (click)=\"selectedRow(row)\"></tr>\r\n </table>\r\n </ng-container>\r\n <!-- <ng-container *ngIf=\"loading\">\r\n <span>loading...</span>\r\n </ng-container> -->\r\n <!-- <ng-container *ngIf=\"loading\">-->\r\n <!-- <td *matCellDef=\"let element\" >loading....</td>-->\r\n <!-- </ng-container>-->\r\n <!--{{this.rows | json}}-->\r\n \r\n<!-- <app-no-data-placeholder *ngIf=\"noData && !loading\" [noDataPlaceholder]=\"noDataObj\"></app-no-data-placeholder> -->\r\n\r\n <mat-paginator [pageSize]=\"10\" [length]=\"totalRecords\" (page)=\"onPageChange($event)\" \r\n [pageSizeOptions]=\"[5, 10, 25, 100]\" aria-label=\"Select page of users\"></mat-paginator>\r\n <!-- style-paginator -->\r\n <!-- showFirstLastButtons -->\r\n</div>","import {DeleteDialogComponent} from '../../dialogs/delete-dialog/delete-dialog.component';\r\nimport {NoopScrollStrategy} from '@angular/cdk/overlay';\r\nimport {\r\n Component,\r\n CUSTOM_ELEMENTS_SCHEMA,\r\n DestroyRef,\r\n ElementRef,\r\n EventEmitter,\r\n forwardRef,\r\n inject,\r\n Input,\r\n OnChanges,\r\n OnInit,\r\n Output,\r\n SimpleChanges,\r\n ViewChild\r\n} from '@angular/core';\r\nimport * as FileSaver from 'file-saver';\r\nimport {DocumentFile} from '../../../../interfaces';\r\nimport {FormGroup, NG_VALUE_ACCESSOR} from '@angular/forms';\r\nimport {NgClass, NgTemplateOutlet} from \"@angular/common\";\r\nimport {MatError, MatHint} from \"@angular/material/form-field\";\r\nimport {ControlValueAccessorDirective} from '../control-value-accessor.directive';\r\nimport {MatDialog} from '@angular/material/dialog';\r\nimport {MatTooltip} from \"@angular/material/tooltip\";\r\nimport {FormLabelComponent} from '../form-label/form-label.component';\r\nimport {takeUntilDestroyed} from '@angular/core/rxjs-interop';\r\nimport {TranslatePipe} from \"../../../../pipes/translate.pipe\";\r\n\r\n\r\n@Component({\r\n selector: 'app-file-uploader',\r\n templateUrl: './docs-uploader.component.html',\r\n styleUrls: ['./docs-uploader.component.scss'],\r\n schemas: [CUSTOM_ELEMENTS_SCHEMA],\r\n standalone: true,\r\n imports: [\r\n NgClass,\r\n MatError,\r\n NgTemplateOutlet,\r\n MatHint,\r\n MatTooltip,\r\n FormLabelComponent,\r\n TranslatePipe\r\n ],\r\n providers: [\r\n {\r\n provide: NG_VALUE_ACCESSOR,\r\n useExisting: forwardRef(() => DocsUploaderComponent),\r\n multi: true,\r\n },\r\n ]\r\n})\r\nexport class DocsUploaderComponent<Type> extends ControlValueAccessorDirective<Type> implements OnInit, OnChanges {\r\n maxSizeFlag = true;\r\n maxSizeValue: any;\r\n wrongExtensionFlag = true;\r\n @Input() useCrop: boolean;\r\n @Input() formKey!: string;\r\n @Input() showLabel = true;\r\n @Input() downloadLink = false;\r\n @Input() showActions = true;\r\n @Input() styleHeight = ''; // medium, mini\r\n @Input() fileInputHeight = ''; // medium, mini\r\n @Input() styleWidth = '6';\r\n @Input() hints!: any;\r\n @Input() allowedExtensions = '';\r\n @Input() callApi: boolean = true;\r\n @Input() display = '';\r\n validExtension = true;\r\n @Input() attachType = '';\r\n @Input() error!: string;\r\n @Input() displayedFiles: DocumentFile[] = [];\r\n @Output() selectedTemplateAttachment = new EventEmitter();\r\n fileNotDuplicated = true;\r\n allowedFileSize = true;\r\n @Input() getDataFromTemplate = false;\r\n @Input() allowFileContentsWithMultiAttachments = false;\r\n @Input() accept: string[];\r\n filesize: string;\r\n wrongFile = {\r\n mimeType: \"\",\r\n fileContents: \"\",\r\n fileName: this.i18n.language == 'ar' ? \"امتداد الملف خاطىء\" : \"Wrong File Extension\",\r\n name: this.i18n.language == 'ar' ? \"امتداد الملف خاطىء\" : \"Wrong File Extension\"\r\n }\r\n allAttachments = [];\r\n\r\n uploadForm: FormGroup;\r\n @Input() signType = 'Sign';\r\n @Input() customDownload: boolean;\r\n @Input() showSignButton = false;\r\n @Input() printType = 'Print';\r\n @Input() showPrintButton = false;\r\n @Input() downloadType = 'Download';\r\n @Input() showDownloadButton = false;\r\n @Input() preventFileContents = false;\r\n @Output() addSignatureClicked = new EventEmitter();\r\n @Output() printActionClicked = new EventEmitter();\r\n @Output() emitedValue = new EventEmitter();\r\n @Output() downloadActionClicked = new EventEmitter();\r\n @Input() maxSize = '10';\r\n @ViewChild('inputFile') inputFile: ElementRef;\r\n dialog: MatDialog = inject(MatDialog)\r\n destroyRef = inject(DestroyRef);\r\n\r\n\r\n private readonly validImageTypes = {\r\n jpg: ['image/jpeg', 'image/pjpeg'],\r\n JPG: ['image/jpeg', 'image/pjpeg'],\r\n jpeg: ['image/jpeg', 'image/pjpeg'],\r\n png: ['image/png']\r\n }\r\n\r\n validImgPdfTypes = {\r\n pdf: ['application/pdf'],\r\n jpg: ['image/jpeg', 'image/pjpeg'],\r\n JPG: ['image/jpeg', 'image/pjpeg'],\r\n jpeg: ['image/jpeg', 'image/pjpeg'],\r\n bmp: ['image/bmp', 'image/x-windows-bmp'],\r\n png: ['image/png']\r\n }\r\n\r\n validFileTypes = {\r\n 'pdf': ['application/pdf'],\r\n 'doc': ['application/msword'],\r\n 'docx': ['application/vnd.openxmlformats-officedocument.wordprocessingml.document'],\r\n 'ppt': ['application/vnd.ms-powerpoint'],\r\n 'pptx': ['application/vnd.openxmlformats-officedocument.presentationml.presentation'],\r\n 'pps': ['application/vnd.ms-powerpoint'],\r\n 'ppsx': ['application/vnd.openxmlformats-officedocument.presentationml.slideshow'],\r\n 'odt': ['application/vnd.oasis.opendocument.text'],\r\n 'xls': ['application/vnd.ms-excel'],\r\n 'xlsx': ['application/vnd.openxmlformats-officedocument.spreadsheetml.sheet'],\r\n 'zip': ['application/zip', 'application/x-zip-compressed', 'multipart/x-zip', 'application/zip'],\r\n 'msg': ['application/vnd.ms-outlook', 'application/msg'],\r\n 'csv': ['text/csv'],\r\n 'txt': ['text/plain'],\r\n 'rtf': ['application/rtf', 'application/x-rtf', 'text/richtext'],\r\n 'html': ['text/html'],\r\n // 'mp4': ['video/mp4'],\r\n // 'm4v': ['video/mp4'],\r\n 'mov': ['video/quicktime'],\r\n 'wmv': ['video/x-ms-wmv'],\r\n // 'avi': ['video/x-msvideo'],\r\n 'mpg': ['mpg'],\r\n 'rmvb': ['rmvb'],\r\n // 'ogv': ['video/ogg'],\r\n // '3gp': ['video/3gpp', 'audio/3gpp'],\r\n // '3g2': ['video/3gpp2', 'audio/3gpp'],\r\n 'jpg': ['image/jpeg', 'image/pjpeg'],\r\n 'jpeg': ['image/jpeg', 'image/pjpeg'],\r\n 'png': ['image/png'],\r\n 'gif': ['image/gif'],\r\n 'bmp': ['image/bmp', 'image/x-windows-bmp']\r\n }\r\n\r\n\r\n private readonly validPdfTypes = {\r\n 'pdf': ['application/pdf'],\r\n }\r\n uploading: boolean;\r\n lengthError: boolean;\r\n\r\n ngOnChanges(changes: SimpleChanges): void {\r\n if (this.attachments?.length) {\r\n this.allAttachments = [...this.attachments];\r\n }\r\n }\r\n\r\n override ngOnInit(): void {\r\n super.ngOnInit();\r\n this.actionStateService.resetAction$\r\n .pipe(takeUntilDestroyed(this.destroyRef))\r\n .subscribe(res => {\r\n if (!this.isReadOnly && this.control.enabled) {\r\n this.control.reset();\r\n }\r\n });\r\n }\r\n\r\n getFileType(attachment: any): string {\r\n if (!attachment.fileName?.includes('.') && attachment.mimeType.includes('.')) {\r\n return this.checkFileType(attachment.mimeType);\r\n } else if (attachment.fileName) {\r\n return this.checkFileType(attachment.fileName);\r\n } else {\r\n return attachment.mimeType;\r\n }\r\n }\r\n\r\n private checkFileType(attachmentData: string): string {\r\n if (attachmentData.split('.').pop() == 'msg') {\r\n return 'email-icon'\r\n } else if (attachmentData.split('.').pop() == 'jpeg') {\r\n return 'jpg'\r\n } else if (attachmentData.split('.').pop() == 'xlsx' || attachmentData.split('.').pop() == 'xls') {\r\n return 'application/vnd.ms-excel;charset=utf-8';\r\n }\r\n return attachmentData.split('.').pop();\r\n }\r\n\r\n attachmentAction(type: any, index: number, field: any) {\r\n if (type == \"download\") {\r\n if (this.downloadLink) {\r\n window.open(field?.attachmentId, '_blank', 'top=0,left=0,height=auto,width=auto');\r\n } else if (field?.attachmentId) {\r\n this.downloadFile(type, field);\r\n } else if (field?.fileContents) {\r\n this.downloadFileNew(field);\r\n }\r\n }\r\n if (type == \"delete\") {\r\n if (this.validExtension) {\r\n if (this.multiple) {\r\n this.confirmDelete(index)\r\n } else {\r\n this.removeAttachedFile()\r\n }\r\n } else {\r\n this.validExtension = true;\r\n }\r\n }\r\n }\r\n\r\n confirmDelete(index: number) {\r\n const dialogRef = this.dialog.open(DeleteDialogComponent, {\r\n panelClass: ['main-popup', 'confirm-dialog'],\r\n scrollStrategy: new NoopScrollStrategy(),\r\n });\r\n\r\n dialogRef.afterClosed().subscribe((returnValue) => {\r\n if (returnValue == 'yes') {\r\n this.removeMulti(index)\r\n }\r\n });\r\n }\r\n\r\n removeMulti(index: number) {\r\n this.displayedFiles.splice(index, 1);\r\n this.allAttachments.splice(index, 1);\r\n }\r\n\r\n downloadFileNew(fileData: any) {\r\n const fileType = this.getFileType(fileData);\r\n const blob = new Blob([fileData.fileContents], {type: fileType});\r\n FileSaver.saveAs(blob, `${fileData.fileName}`);\r\n }\r\n\r\n onValueChange(event: any) {\r\n const input = event.target;\r\n this.control.reset()\r\n if (input?.files?.length > 0) {\r\n this.handleFileInput(input);\r\n this.processUploadedFile(input);\r\n }\r\n }\r\n\r\n private handleFileInput(input: any): void {\r\n if (input.files && this.formKey === 'TSV') {\r\n this.selectedTemplateAttachment.emit(input.files[0]);\r\n }\r\n\r\n const file: File = input.files[0];\r\n let fileType = file.name?.endsWith(\".msg\") ? 'application/vnd.ms-outlook' : file.type;\r\n\r\n if (this.accept?.length && !this.accept.includes(fileType)) {\r\n alert(this.i18n.translate('thisIsInvalidFile'));\r\n return;\r\n }\r\n\r\n this.uploadForm?.get('file')?.setValue(file);\r\n this.uploadForm?.get('name')?.setValue(file?.name);\r\n }\r\n\r\n private processUploadedFile(input: any): void {\r\n if (!this.uploading) {\r\n const fileData = new FileInfo(\r\n input.files[0].name,\r\n input.files[0].name,\r\n input.files[0].type,\r\n '',\r\n this.filesize\r\n );\r\n this.updateFileProperties(input, fileData);\r\n if (!this.lengthError && +this.filesize < +this.maxSize) {\r\n this.allowedFileSize = true;\r\n this.uploadValidAndNonDuplicateFile(input, fileData);\r\n } else {\r\n this.allowedFileSize = false;\r\n }\r\n\r\n input.value = '';\r\n }\r\n }\r\n\r\n private updateFileProperties(input: any, fileInfo: FileInfo): void {\r\n this.maxSizeValue = this.maxSize ? this.maxSize : 1;\r\n this.filesize = ((input.files[0].size / 1024) / 1024).toFixed(4);\r\n this.maxSizeFlag = +this.filesize < +this.maxSize;\r\n this.lengthError = this.displayedFiles?.length >= +this.maxLength;\r\n this.wrongExtensionFlag = this.isValidMimeType(input.files[0].type);\r\n this.validExtension = this.isValidExtension(input.files[0].name.split('.').pop(), this.type);\r\n this.value = fileInfo;\r\n }\r\n\r\n private uploadValidAndNonDuplicateFile(input: any, fileData: FileInfo): void {\r\n if (this.validExtension) {\r\n if (this.getDataFromTemplate) this.selectedTemplateAttachment.emit(input);\r\n this.readFileAndUpload(input.files[0], fileData);\r\n } else if (!this.multiple) {\r\n this.emitEmptyFile();\r\n }\r\n }\r\n\r\n private readFileAndUpload(file: File, fileInfo: FileInfo): void {\r\n const reader = new FileReader();\r\n reader.onload = () => {\r\n const fileContents = (reader.result as string).split(',')[1];\r\n fileInfo.fileContents = fileContents;\r\n fileInfo.filesize = this.filesize;\r\n if (!this.multiple) {\r\n this.uploadSingleFile(fileContents, fileInfo);\r\n } else if (this.isFileNotDuplicate(fileInfo)) {\r\n this.addMultiAttachments(fileInfo);\r\n }\r\n };\r\n reader.readAsDataURL(file);\r\n }\r\n\r\n private uploadSingleFile(fileContents: string, fileInfo: FileInfo): void {\r\n this.fileNotDuplicated = this.isFileNotDuplicate(fileInfo);\r\n if (!this.fileNotDuplicated) {\r\n return;\r\n }\r\n this.value.fileContents = fileContents;\r\n this.control.setValue(this.value)\r\n this.emitedValue.emit(this.value)\r\n if (this.callApi) {\r\n this.addAttachments()\r\n } else {\r\n this.selectedTemplateAttachment.emit(this.value);\r\n }\r\n }\r\n\r\n private emitEmptyFile(): void {\r\n const emptyObj = {\r\n mimeType: \"\",\r\n fileContents: \"\",\r\n fileName: \"\",\r\n }\r\n this.emit(emptyObj)\r\n this.selectedTemplateAttachment.emit(null);\r\n }\r\n\r\n processAttachments(field: any, allowMultiAttachments: boolean) {\r\n const data = {\r\n \"fileDescription\": \"\",\r\n \"attachmentcomment\": \"\",\r\n \"fileName\": field.fileName,\r\n \"mimeType\": field.mimeType,\r\n \"fileContents\": field.fileContents,\r\n }\r\n this.uploading = true;\r\n this.coreService.getAttachments(data).pipe(\r\n takeUntilDestroyed(this.destroyRef)\r\n ).subscribe({\r\n next: (form: any) => {\r\n const newObj = {\r\n \"fileName\": field.fileName,\r\n \"attachmentId\": form.attachment.attachmentId,\r\n \"mimeType\": form.attachment.mimeType,\r\n \"fileContents\": field.fileContents\r\n }\r\n if (allowMultiAttachments) {\r\n if (this.allowFileContentsWithMultiAttachments) newObj['fileContents'] = field.fileContents;\r\n this.displayedFiles = this.displayedFiles?.length ? this.displayedFiles : []\r\n this.displayedFiles.push(newObj);\r\n this.allAttachments.push(newObj);\r\n this.emit(this.displayedFiles);\r\n this.control.setValue(this.displayedFiles)\r\n } else {\r\n this.control.setValue(newObj)\r\n this.emitedValue.emit(newObj)\r\n }\r\n this.uploading = false;\r\n },\r\n error: (err) => {\r\n this.uploading = false;\r\n err?.error?.meta?.messages?.forEach((msg) => {\r\n this.toasterService.error(msg.message);\r\n });\r\n }\r\n });\r\n }\r\n\r\n addAttachments() {\r\n this.processAttachments(this.control.value, false);\r\n }\r\n\r\n addMultiAttachments(field: any) {\r\n this.processAttachments(field, true);\r\n }\r\n\r\n\r\n isFileNotDuplicate(file: FileInfo): boolean {\r\n if (this.allAttachments?.length) {\r\n return this.allAttachments?.findIndex(($file) => (file.fileName === $file.fileName)) === -1;\r\n } else {\r\n return true;\r\n }\r\n }\r\n\r\n\r\n isValidMimeType(value: any) {\r\n if (this.attachType == 'pdf') {\r\n return ([] as string[]).concat(...Object.values(this.validPdfTypes)).includes(value);\r\n } else if (this.attachType == 'image') {\r\n return ([] as string[]).concat(...Object.values(this.validImageTypes)).includes(value);\r\n } else {\r\n return true\r\n }\r\n }\r\n\r\n isValidExtension(value: string, type: string) {\r\n if (type == 'image') {\r\n return [].concat(...Object.keys(this.validImageTypes)).includes(value.toLowerCase());\r\n } else if (type == \"imagePdf\") {\r\n return [].concat(...Object.keys(this.validImgPdfTypes)).includes(value.toLowerCase());\r\n } else if (type === \"pdf\") {\r\n return [].concat(...Object.keys(this.validPdfTypes)).includes(value.toLowerCase());\r\n } else {\r\n return [].concat(...Object.keys(this.validFileTypes)).includes(value.toLowerCase());\r\n }\r\n }\r\n\r\n removeAttachedFile() {\r\n this.control.setValue(new FileInfo(null, null, null, null, null))\r\n if (this.inputFile) {\r\n this.inputFile.nativeElement.value = null;\r\n }\r\n this.emit(this.value)\r\n this.control.reset()\r\n this.selectedTemplateAttachment.emit(null);\r\n }\r\n\r\n downloadFile(event, field) {\r\n if (this.customDownload) {\r\n this.downloadActionClicked.emit(field)\r\n } else {\r\n this.coreService.loadFile(field.attachmentId).pipe(\r\n takeUntilDestroyed(this.destroyRef)\r\n ).subscribe(\r\n (responseObject: { body: any; }) => {\r\n const fileInformation = responseObject.body;\r\n this.coreService.saveFile(fileInformation)\r\n },\r\n error => {\r\n this.toasterService.error(error.error?.['message'])\r\n }\r\n );\r\n\r\n }\r\n }\r\n\r\n private emit<T>(value: T | T[]) {\r\n if (this.preventFileContents) {\r\n value = JSON.parse(JSON.stringify(value));\r\n this.deleteFileContents(value);\r\n }\r\n }\r\n\r\n private deleteFileContents(data: any) {\r\n if (typeof data === 'object' && 'fileContents' in data) {\r\n delete data.fileContents;\r\n } else if (Array.isArray(data)) {\r\n data.forEach(elem => this.deleteFileContents(elem));\r\n }\r\n }\r\n}\r\n\r\nclass FileInfo {\r\n constructor(\r\n public fileName: string,\r\n public name: string,\r\n public mimeType: string,\r\n public fileContents: string,\r\n public filesize: string\r\n ) { }\r\n}\r\n","@if (!isReadOnly) {\r\n <ng-container>\r\n @if(label) {\r\n <app-form-label [label]=\"label\" [optional]=\"!control?.hasValidator(Validators['required'])\" [tooltip]=\"tooltip\"></app-form-label>\r\n }\r\n <section\r\n (click)=\"fileAttached.click()\"\r\n [ngClass]=\"insideTable ? 'file-uploader-table' : 'file-uploader'\" class=\" mb-2\"\r\n [class.insideTableStyle]=\"insideTable\">\r\n <div\r\n [ngClass]=\"insideTable ? 'file-uploader-table-dev' : ''\" class=\"file-uploader-input\"\r\n >\r\n @if (!uploading) {\r\n <div class=\"icon mb-1\">\r\n <svg\r\n [ngClass]=\"insideTable ? 'file-uploader-table-svg' : ''\" width=\"41\" height=\"38\" viewBox=\"0 0 41 38\"\r\n fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\">\r\n <path\r\n d=\"M0 22.1947V20.6736C0.0971303 20.1019 0.070094 19.5141 0.276371 18.9533C1.28372 16.2086 3.21231 14.5023 6.0421 13.8094C6.70499 13.6472 6.68497 13.6632 6.69899 12.9843C6.73203 11.3321 6.99839 9.71992 7.62423 8.17986C8.86289 5.13678 10.9467 2.83969 13.8816 1.39175C17.168 -0.230424 20.5956 -0.450719 24.0553 0.81598C27.4929 2.07467 29.9622 4.41581 31.4802 7.74828C31.7786 8.40316 32.027 9.08307 32.1712 9.79202C32.2402 10.1315 32.4035 10.2566 32.7529 10.3107C36.7012 10.9165 39.3358 13.1255 40.6946 16.8735C40.9069 17.4603 40.9199 18.0731 40.9599 18.6829C40.9649 18.7601 40.9389 18.8442 41 18.9113V20.5124C40.9109 20.995 40.969 21.4937 40.8608 21.9734C40.5244 23.4614 39.8454 24.7821 38.8501 25.9297C37.4522 27.5418 35.7059 28.5882 33.6161 29.0519C32.791 29.2351 31.9499 29.2521 31.1117 29.2922C30.6571 29.3142 30.584 29.193 30.592 28.7484C30.6451 25.8446 29.802 23.2571 27.8624 21.0591C25.9979 18.9463 23.6597 17.7167 20.867 17.4012C18.8553 17.1739 16.9057 17.4593 15.0612 18.3395C11.8319 19.8816 9.81416 22.4069 8.96102 25.8696C8.74273 26.7538 8.68265 27.658 8.70568 28.5702C8.7217 29.2111 8.60254 29.3122 7.95968 29.2972C5.95098 29.2511 4.10551 28.7234 2.58146 27.3596C1.07644 26.0168 0.0680913 24.3996 0.0400537 22.3028C0.0400537 22.2607 0.0250336 22.2257 0 22.1937V22.1947Z\"\r\n fill=\"#DEE0E2\"/>\r\n <path\r\n d=\"M29.0303 28.2632C29.0604 33.4031 24.8657 37.6187 19.6838 37.6548C14.5169 37.6908 10.2852 33.4952 10.2521 28.3042C10.2201 23.1403 14.4297 18.9126 19.6227 18.8946C24.8037 18.8766 28.9993 23.0542 29.0303 28.2632Z\"\r\n fill=\"#8E9AA0\"/>\r\n <path\r\n d=\"M20.5573 25.2644C20.4622 25.4477 20.5012 25.5939 20.5012 25.734C20.4982 28.2154 20.5002 30.6957 20.4982 33.177C20.4982 33.8099 20.2339 34.1704 19.7462 34.2234C19.2645 34.2765 18.88 33.9831 18.8169 33.5025C18.7959 33.3443 18.7969 33.183 18.7969 33.0238C18.7959 30.5826 18.7969 28.1423 18.7969 25.701C18.7969 25.5728 18.7969 25.4447 18.7969 25.2003C18.1971 25.8031 17.6774 26.3288 17.1527 26.8505C17.0115 26.9907 16.8683 27.1349 16.7061 27.2471C16.3566 27.4864 15.9341 27.4413 15.6457 27.154C15.3643 26.8746 15.3203 26.442 15.5486 26.0925C15.6207 25.9824 15.7128 25.8832 15.8069 25.7891C16.8613 24.7307 17.9167 23.6733 18.9732 22.6179C19.4017 22.1893 19.8784 22.1763 20.3039 22.5988C21.3914 23.6803 22.4739 24.7667 23.5533 25.8572C23.9809 26.2898 24.0129 26.8065 23.6534 27.167C23.299 27.5214 22.7753 27.4844 22.3437 27.0568C21.7499 26.47 21.1661 25.8732 20.5603 25.2644H20.5573Z\"\r\n fill=\"#F9F9F9\"/>\r\n </svg>\r\n </div>\r\n }\r\n @if (uploading) {\r\n <ds-icon class=\"sfi sfi-spinner d-inline-block spin fc-coral fs-30-imp\"></ds-icon>\r\n }\r\n\r\n <div class=\"f-14 fc-black fw-normal\">\r\n <span class=\"fc-coral fw-medium\">{{ 'browse' | translate }}</span>\r\n </div>\r\n <div class=\"fs-10 fc-dark-gray\">\r\n {{ allowedExtensions ? allowedExtensions : '' }}\r\n </div>\r\n\r\n <input type=\"file\" #inputFile [accept]=\"accept\" class=\"d-none\" #fileAttached (change)=\"onValueChange($event)\">\r\n </div>\r\n </section>\r\n\r\n @if (hints) {\r\n <div class=\"d-flex align-items-center gap-3 mb-3\">\r\n @for (hint of hints; track hint) {\r\n <ng-container>\r\n <div class=\"d-flex align-items-center gap-1 fs-12\">\r\n <ds-icon\r\n icon=\"{{ hint.valid ? 'check-circle-f' : 'check-circle-o' }}\"\r\n class=\"fs-24 {{ hint.valid ? 'fc-green' : 'fc-dark-gray' }}\"></ds-icon>\r\n <span class=\"{{ hint.valid ? 'fc-black' : 'fc-dark-gray' }}\">{{ hint.label }}</span>\r\n </div>\r\n </ng-container>\r\n }\r\n </div>\r\n }\r\n\r\n @if (hint) {\r\n <mat-hint class=\"d-flex align-items-center gap-1\">\r\n <ds-icon icon=\"info\" class=\"fs-17 fc-dark-gray\"></ds-icon>\r\n <span class=\"fs-12 fc-black line-height-1\">{{ hint }}</span>\r\n </mat-hint>\r\n }\r\n\r\n @if (multiple) {\r\n <section class=\"files-list\">\r\n @for (file of displayedFiles; track file; let i = $index) {\r\n <div class=\"file-item-container\">\r\n <ds-attachments\r\n [matTooltip]=\"file?.fileName\"\r\n [file]=\"{ name: file.fileName }\"\r\n (downloadEvent)=\"attachmentAction('download', i, file)\"\r\n (deleteEvent)=\"attachmentAction('delete', i, file)\"\r\n [showActions]=\"showActions\">\r\n </ds-attachments>\r\n </div>\r\n }\r\n </section>\r\n }\r\n\r\n @if (!multiple && (control?.value?.fileContents || control?.value?.attachmentId)) {\r\n <section class=\"files-list\">\r\n <div class=\"file-item-container file-item-container-actions\">\r\n <ds-attachments\r\n [matTooltip]=\"control?.value?.fileName\"\r\n [file]=\"{ name: control?.value.fileName }\"\r\n (downloadEvent)=\"attachmentAction('download', null, control?.value)\"\r\n (deleteEvent)=\"attachmentAction('delete', null, control?.value)\"\r\n [showActions]=\"showActions\">\r\n </ds-attachments>\r\n </div>\r\n </section>\r\n }\r\n\r\n <div class=\"attachments-error\">\r\n @if (!validExtension) {\r\n <section class=\"files-list mt-2\">\r\n <div class=\"file-item-container \">\r\n <ds-attachments\r\n [file]=\"wrongFile\" error [showActions]=\"false\">\r\n </ds-attachments>\r\n </div>\r\n </section>\r\n }\r\n\r\n @if (!allowedFileSize) {\r\n <mat-error class=\"fs-12 my-2\">\r\n {{ maxSize === \"0.3\" ? ('support3' | translate ): ('support2' | translate) + maxSize + ('mb' | translate) }}\r\n </mat-error>\r\n }\r\n\r\n @if (!fileNotDuplicated) {\r\n <mat-error class=\"fs-12 my-2\">{{ 'duplicated-error' | translate }}</mat-error>\r\n }\r\n\r\n @if (lengthError) {\r\n <mat-error class=\"fs-12\">{{ 'lengthError' | translate }} :{{ maxLength }}</mat-error>\r\n }\r\n\r\n @if (showErrorMessage) {\r\n <!-- <mat-error class=\"fs-12\">{{errorMessage}} </mat-error> -->\r\n }\r\n </div>\r\n </ng-container>\r\n}\r\n\r\n@if (isReadOnly) {\r\n <ng-container>\r\n @if (multiple && displayedFiles) {\r\n <ng-container>\r\n <div class=\"info-item\">\r\n @if (label) {\r\n <span class=\"name\">{{ label }}</span>\r\n }\r\n @if (displayedFiles?.length) {\r\n <span>\r\n @for (file of displayedFiles; track file; let i = $index) {\r\n <div class=\"file-item-container\">\r\n <ds-attachments\r\n [matTooltip]=\"file?.fileName\"\r\n class=\"my-2\" [file]=\"{ name: file.fileName }\" readOnly (downloadEvent)=\"downloadFile($event, file)\"\r\n [showActions]=\"showActions\">\r\n </ds-attachments>\r\n </div>\r\n }\r\n </span>\r\n }\r\n @if (!displayedFiles?.length) {\r\n <span class=\"disc\">\r\n {{ 'NoAttachments' | translate }}\r\n </span>\r\n }\r\n </div>\r\n </ng-container>\r\n }\r\n\r\n @if (!multiple && (control?.value?.['attachmentId'] || control?.value?.['fileContents'])) {\r\n <ng-container>\r\n <div class=\"info-item\">\r\n @if (label) {\r\n <span class=\"name\">{{ label }}</span>\r\n }\r\n <div class=\"disc file-item-container file-item-container-actions\" [ngClass]=\"{'insideTableWidth': insideTable}\">\r\n @if (control?.value?.['attachmentId'] || control?.value?.['fileContents']) {\r\n <ds-attachments\r\n [matTooltip]=\"control?.value?.fileName\" [file]=\"{ name: control?.value.fileName }\" [showActions]=\"showActions\"\r\n (downloadEvent)=\"attachmentAction('download', null, control?.value)\"\r\n (deleteEvent)=\"attachmentAction('delete', null, control?.value)\"\r\n readOnly>\r\n </ds-attachments>\r\n }\r\n </div>\r\n </div>\r\n </ng-container>\r\n }\r\n </ng-container>\r\n}","import {\r\n Component,\r\n CUSTOM_ELEMENTS_SCHEMA,\r\n DestroyRef,\r\n forwardRef,\r\n inject,\r\n Inject,\r\n Injector,\r\n Input,\r\n} from '@angular/core';\r\nimport { TextareaComponent } from '../textarea/textarea.component';\r\nimport {\r\n MAT_DIALOG_DATA,\r\n MatDialogActions,\r\n MatDialogClose,\r\n MatDialogContent,\r\n MatDialogModule,\r\n MatDialogRef,\r\n} from '@angular/material/dialog';\r\nimport { NgIf } from '@angular/common';\r\nimport { ControlValueAccessorDirective } from '../control-value-accessor.directive';\r\nimport { Section } from '../../../../interfaces';\r\nimport {\r\n FormBuilder,\r\n FormControl,\r\n FormGroup,\r\n NG_VALUE_ACCESSOR,\r\n ReactiveFormsModule,\r\n Validators,\r\n} from '@angular/forms';\r\nimport { DocsUploaderComponent } from '../doc-uploader/docs-uploader.component';\r\nimport { ToastrService } from 'ngx-toastr';\r\nimport { DomSanitizer } from '@angular/platform-browser';\r\nimport {ActionStateService, CoreI18nService, CoreService} from \"../../../../services\";\r\nimport { takeUntilDestroyed } from '@angular/core/rxjs-interop';\r\nimport {TranslatePipe} from \"../../../../pipes/translate.pipe\";\r\n\r\n@Component({\r\n selector: 'app-add-attachment-section',\r\n templateUrl: './add-attachment-section.component.html',\r\n styleUrls: ['./add-attachment-section.component.scss'],\r\n standalone: true,\r\n schemas: [CUSTOM_ELEMENTS_SCHEMA],\r\n imports: [\r\n TextareaComponent,\r\n MatDialogContent,\r\n DocsUploaderComponent,\r\n MatDialogActions,\r\n NgIf,\r\n MatDialogModule,\r\n ReactiveFormsModule,\r\n MatDialogClose,\r\n TranslatePipe\r\n ],\r\n providers: [\r\n {\r\n provide: NG_VALUE_ACCESSOR,\r\n useExisting: forwardRef(() => AttachmentSectionDataComponent),\r\n multi: true,\r\n },\r\n ],\r\n})\r\nexport class AttachmentSectionDataComponent<\r\n Type\r\n> extends ControlValueAccessorDirective<Type> {\r\n popupData: any = {};\r\n popupDataOrg: any = {};\r\n uploading: boolean;\r\n editMode: boolean;\r\n @Input() hasColumnBreak: boolean;\r\n @Input() section: Section;\r\n formGroup: FormGroup;\r\n destroyRef = inject(DestroyRef);\r\n\r\n\r\n constructor(\r\n injector: Injector,\r\n i18n: CoreI18nService,\r\n toasterService: ToastrService,\r\n coreService: CoreService,\r\n sanitizer: DomSanitizer,\r\n fb: FormBuilder,\r\n actionStateService: ActionStateService,\r\n public dialogRef: MatDialogRef<any>,\r\n @Inject(MAT_DIALOG_DATA) public dialogData: any\r\n ) {\r\n super(injector, i18n, toasterService, coreService, sanitizer, fb, actionStateService);\r\n }\r\n\r\n override ngOnInit() {\r\n // super.ngOnInit()\r\n this.createForm();\r\n if (this.dialogData?.attachmentListData) {\r\n this.popupData = this.dialogData.attachmentListData;\r\n this.popupDataOrg = Object.assign({}, this.popupData);\r\n this.formGroup.controls['file'].setValue(\r\n this.dialogData.attachmentListData\r\n );\r\n this.formGroup.controls['description'].setValue(\r\n this.dialogData.attachmentListData.fileDescription\r\n );\r\n this.formGroup.controls['comments'].setValue(\r\n this.dialogData.attachmentListData.fileComments\r\n );\r\n this.editMode = true;\r\n }\r\n }\r\n createForm() {\r\n this.formGroup = this.fb.group({\r\n file: new FormControl(null, Validators.required),\r\n description: new FormControl(null,this.dialogData.descriptionRequired ? Validators.required: null),\r\n comments: new FormControl(null, this.dialogData.commentsRequired ? Validators.required: null),\r\n });\r\n }\r\n\r\n close() {\r\n this.dialogRef.close(this.popupDataOrg);\r\n }\r\n\r\n handleEmitValue(data: any, fieldName: string) {\r\n this.popupData[fieldName] = data;\r\n }\r\n\r\n handleAttachmentEmitValue(data: any) {\r\n this.popupData = {\r\n fileContents: data?.fileContents,\r\n fileName: data?.fileName,\r\n mimeType: data?.mimeType,\r\n fileDescription: this.popupData?.fileDescription,\r\n attachmentcomment: this.popupData?.attachmentcomment,\r\n fileComments: this.popupData?.attachmentcomment,\r\n };\r\n }\r\n\r\n addAttachments() {\r\n const data = {\r\n fileDescription: this.formGroup.controls['description'].value,\r\n attachmentcomment: this.formGroup.controls['comments'].value,\r\n fileComments: this.formGroup.controls['comments'].value,\r\n fileName: this.formGroup.controls['file'].value.fileName,\r\n mimeType: this.formGroup.controls['file'].value.mimeType,\r\n fileContents: this.formGroup.controls['file'].value.fileContents,\r\n };\r\n this.uploading = true;\r\n this.coreService.getAttachments(data).pipe(\r\n takeUntilDestroyed(this.destroyRef)\r\n ).subscribe((Response: any) => {\r\n this.uploading = false;\r\n if (Response) {\r\n const newObj = {\r\n fileDescription: this.formGroup.controls['description'].value,\r\n attachmentcomment: this.formGroup.controls['comments'].value,\r\n fileComments: this.formGroup.controls['comments'].value,\r\n fileName: this.formGroup.controls['file'].value.fileName,\r\n attachmentId: Response.attachment.attachmentId,\r\n mimeType: this.formGroup.controls['file'].value.mimeType,\r\n };\r\n this.dialogRef.close(newObj);\r\n }\r\n });\r\n }\r\n}\r\n","<div class=\"popup-container\">\r\n <div class=\"d-flex align-items-center justify-content-end\" mat-dialog-title>\r\n <h3 class=\"mb-0 font-16 fw-medium\">{{ 'addAttachments' | translate }}</h3>\r\n <ds-button icon matDialogClose>\r\n <ds-icon icon=\"close\" class=\"fs-20 fc-black\"></ds-icon>\r\n </ds-button>\r\n </div>\r\n <mat-dialog-content>\r\n <div class=\"px-md-4 mt-3\">\r\n <form [formGroup]=\"formGroup\">\r\n <app-file-uploader class=\"section-item full\" [field]=\"popupData\" name=\"file\" [attachments]=\"dialogData?.attachments\"\r\n [labelTextReadMode]=\"'Attachment' | translate\" [labelTextWriteMode]=\"'Attachment' | translate\"\r\n [hasColumnBreak]=\"false\" [label]=\"'Attachment' | translate\" [required]=\"true\" [multiple]=\"false\" \r\n [allowedExtensions]=\"dialogData?.data\"\r\n [isReadOnly]=\"section?.header?.readOnly\" [showActions]=\"false\"\r\n formControlName=\"file\">\r\n </app-file-uploader>\r\n\r\n <app-textarea class=\"section-item d-block mt-4 mb-4\" [section]=\"section\" [field]=\"popupData?.fileDescription\" name=\"fileDescription\"\r\n [labelTextReadMode]=\"'description' | translate\" [labelTextWriteMode]=\"'description' | translate\"\r\n [hasColumnBreak]=\"false\" (emitedValue)=\"handleEmitValue($event,'fileDescription')\"\r\n [label]=\"'description' | translate\" [required]=\"dialogData?.isRequired\" [minLength]='1' [maxLength]='500'\r\n [isReadOnly]=\"section?.header?.readOnly\" [errorMessage]=\"'lenghtMin1Max500' | translate\"\r\n formControlName=\"description\">\r\n </app-textarea>\r\n\r\n <app-textarea class=\"section-item\" [section]=\"section\" [field]=\"popupData?.attachmentcomment\" name=\"attachmentcomment\"\r\n [labelTextReadMode]=\"'comments' | translate\" [labelTextWriteMode]=\"'comments' | translate\"\r\n [hasColumnBreak]=\"false\" (emitedValue)=\"handleEmitValue($event,'attachmentcomment')\" \r\n [label]=\"'comments' | translate\" [required]=\"false\" [minLength]='1' [maxLength]='500' \r\n [isReadOnly]=\"section?.header?.readOnly\" [errorMessage]=\"'lenghtMin1Max500' | translate\"\r\n formControlName=\"comments\">\r\n </app-textarea>\r\n </form>\r\n </div>\r\n </mat-dialog-content>\r\n <mat-dialog-actions class=\"default-footer justify-content-end gap-3\">\r\n <ds-button shape=\"outline\" matDialogClose [disabled]=\"uploading\">{{ 'cancel' | translate }}</ds-button>\r\n <ds-button (click)=\"addAttachments()\" [loading]=\"uploading\"\r\n [disabled]=\"(!(formGroup?.value?.file?.fileContents || formGroup?.value?.file?.attachmentId ) || (dialogData?.isRequired && !formGroup?.value?.description) || uploading || !formGroup.valid)\">\r\n <ng-container *ngIf=\"!editMode; else editTemplate\">\r\n <span>{{ 'add' | translate }}</span>\r\n </ng-container>\r\n <ng-template #editTemplate>\r\n <span>{{ 'edit' | translate }}</span>\r\n </ng-template>\r\n </ds-button>\r\n </mat-dialog-actions>\r\n</div>","import {AfterViewInit, Component, CUSTOM_ELEMENTS_SCHEMA, DestroyRef, EventEmitter, forwardRef, inject, Input, OnDestroy, Output, ViewChild} from '@angular/core';\r\nimport {AttachmentSectionDataComponent} from '../add-attachment-section/add-attachment-section.component';\r\nimport {CdkDrag, CdkDragDrop, CdkDropList, moveItemInArray} from '@angular/cdk/drag-drop';\r\nimport {SatPopoverModule} from '@ncstate/sat-popover';\r\nimport {MatTooltip} from \"@angular/material/tooltip\";\r\nimport {NgClass, NgForOf, NgIf, SlicePipe} from \"@angular/common\";\r\nimport {DocsUploaderComponent} from '../doc-uploader/docs-uploader.component';\r\nimport {DeleteDialogComponent} from \"../../dialogs/delete-dialog/delete-dialog.component\";\r\nimport {ControlValueAccessorDirective} from \"../control-value-accessor.directive\";\r\nimport {MatDialog} from \"@angular/material/dialog\";\r\nimport {NG_VALUE_ACCESSOR} from '@angular/forms';\r\nimport {MatPaginator} from \"@angular/material/paginator\";\r\nimport {\r\n MatCell,\r\n MatCellDef,\r\n MatColumnDef,\r\n MatHeaderCell,\r\n MatHeaderCellDef,\r\n MatHeaderRow,\r\n MatHeaderRowDef,\r\n MatRow,\r\n MatRowDef,\r\n MatTable,\r\n MatTableDataSource\r\n} from \"@angular/material/table\";\r\nimport { FormLabelComponent } from '../form-label/form-label.component';\r\nimport { takeUntilDestroyed } from '@angular/core/rxjs-interop';\r\nimport {TranslatePipe} from \"../../../../pipes/translate.pipe\";\r\n\r\n\r\n@Component({\r\n selector: 'app-attachment-section',\r\n templateUrl: './attachment-section.component.html',\r\n styleUrls: ['./attachment-section.component.scss'],\r\n schemas: [CUSTOM_ELEMENTS_SCHEMA],\r\n providers: [\r\n {\r\n provide: NG_VALUE_ACCESSOR,\r\n useExisting: forwardRef(() => AttachmentSectionComponent),\r\n multi: true,\r\n },\r\n ],\r\n imports: [\r\n SatPopoverModule,\r\n MatTooltip,\r\n NgClass,\r\n CdkDropList,\r\n DocsUploaderComponent,\r\n CdkDrag,\r\n SlicePipe,\r\n MatPaginator,\r\n MatTable,\r\n MatColumnDef,\r\n MatCell,\r\n MatCellDef,\r\n MatHeaderCellDef,\r\n MatHeaderCell,\r\n MatRow,\r\n MatHeaderRow,\r\n MatHeaderRowDef,\r\n MatRowDef,\r\n FormLabelComponent,\r\n TranslatePipe\r\n ],\r\n standalone: true\r\n})\r\nexport class AttachmentSectionComponent extends ControlValueAccessorDirective<any> implements AfterViewInit {\r\n @Input() className = 'info-section';\r\n @Output() downloadActionClicked = new EventEmitter();\r\n @Input() customDownload: boolean;\r\n\r\n @Input() attachmentsMax = 1000;\r\n @Input() isSortable = false;\r\n @Input() downloadAll = false;\r\n popupData: any = {};\r\n @Input() isRequired: boolean = false;\r\n @Input() descriptionRequired: boolean;\r\n @Input() commentsRequired: boolean;\r\n @Input() allowedExtensions = '';\r\n @Output() emitedValue = new EventEmitter();\r\n dialog = inject(MatDialog);\r\n displayedColumns: string[] = [\"index\", \"file\", \"description\", \"comment\", \"actions\"];\r\n dataSource: MatTableDataSource<any>;\r\n @ViewChild('paginator') paginator: MatPaginator;\r\n totalRecords: number = 0;\r\n pageSize: number = 5;\r\n pageNumber: number = 0;\r\n destroyRef = inject(DestroyRef);\r\n\r\n override ngOnInit(): void {\r\n super.ngOnInit()\r\n if (this.control.value) {\r\n this.attachments = this.control.value\r\n }\r\n if (this.attachments) {\r\n this.attachments.forEach(element => {\r\n element.name = element.fileName;\r\n });\r\n }\r\n this.actionStateService.resetAction$\r\n .pipe(takeUntilDestroyed(this.destroyRef))\r\n .subscribe(res => {\r\n if (!this.isReadOnly && this.control.enabled) {\r\n this.control.reset();\r\n }\r\n });\r\n }\r\n\r\n ngAfterViewInit() {\r\n this.addDataToTable();\r\n this.paginator._intl.itemsPerPageLabel = this.i18n.translate('itemsPerPage')\r\n }\r\n\r\n onPaginateChange(event: any) {\r\n this.pageNumber = event.pageIndex\r\n }\r\n\r\n drop(event: CdkDragDrop<string[]>) {\r\n moveItemInArray(this.attachments, event.previousIndex, event.currentIndex);\r\n }\r\n\r\n\r\n resetAttachmentData() {\r\n if (!this.isReadOnly) {\r\n this.attachments = [];\r\n this.emitedValue.emit(this.attachments);\r\n }\r\n }\r\n\r\n addDataToTable(){\r\n this.dataSource = new MatTableDataSource(this.attachments);\r\n this.totalRecords = this.dataSource.data.length;\r\n this.dataSource.paginator = this.paginator;\r\n }\r\n\r\n handleEmitValue(data: any, fieldName: string) {\r\n this.popupData[fieldName] = data;\r\n }\r\n\r\n addAttachment(): void {\r\n const dialogRef = this.dialog.open(AttachmentSectionDataComponent, {\r\n panelClass: ['main-popup', 'add-attachment-dialog'],\r\n data: {\r\n attachmentListData: null,\r\n data: this.allowedExtensions,\r\n isRequired: this.isRequired,\r\n multiple: this.multiple,\r\n attachments: this.attachments,\r\n descriptionRequired: this.descriptionRequired,\r\n commentsRequired: this.commentsRequired\r\n }\r\n });\r\n dialogRef.afterClosed().subscribe((resultData) => {\r\n if (resultData != 'close') {\r\n if (resultData?.attachmentId) {\r\n this.attachments.push(resultData);\r\n this.addDataToTable();\r\n\r\n }\r\n }\r\n this.control.setValue(this.attachments)\r\n });\r\n }\r\n\r\n deleteAttachments(index: number, item: any) {\r\n const dialogRef = this.dialog.open(DeleteDialogComponent, {\r\n panelClass: ['main-popup', 'add-attachment-dialog']\r\n });\r\n dialogRef.afterClosed().subscribe((resultData) => {\r\n if (resultData == 'yes') {\r\n this.deleteAttachment(index, item);\r\n }\r\n });\r\n }\r\n\r\n deleteAttachment(index: number, item: any) {\r\n this.attachments = this.attachments.filter((row: any) => {\r\n return row.attachmentId != item.attachmentId;\r\n });\r\n this.addDataToTable();\r\n this.control.setValue(this.attachments)\r\n }\r\n\r\n editRow(rowData, index): void {\r\n const dialogRef = this.dialog.open(AttachmentSectionDataComponent, {\r\n panelClass: ['main-popup', 'add-attachment-dialog'],\r\n data: {\r\n attachmentListData: Object.assign(rowData),\r\n data: this.allowedExtensions,\r\n isRequired: this.isRequired,\r\n multiple: this.multiple,\r\n attachments: this.attachments,\r\n\r\n }\r\n });\r\n dialogRef.afterClosed().subscribe((resultData) => {\r\n if (resultData != 'close') {\r\n if (resultData?.attachmentId) {\r\n this.attachments[index] = resultData;\r\n this.emitedValue.emit(this.attachments);\r\n this.addDataToTable();\r\n }\r\n }\r\n });\r\n }\r\n\r\n downloadAllAttachments(event) {\r\n this.loading = true\r\n const downloads = this.attachments.map((file) => this.downloadFile(event, file));\r\n Promise.all(downloads)\r\n .then(() => {\r\n this.loading = false\r\n })\r\n .catch((error) => {\r\n this.loading = false\r\n });\r\n }\r\n\r\n downloadFile(event, field): Promise<void> {\r\n return new Promise((resolve, reject) => {\r\n this.coreService.loadFile(field.attachmentId).pipe(\r\n takeUntilDestroyed(this.destroyRef)\r\n ).subscribe(\r\n (responseObject: { body: any; }) => {\r\n const fileInformation = responseObject.body;\r\n this.coreService.saveFile(fileInformation)\r\n resolve();\r\n },\r\n error => {\r\n this.toasterService.error(error.error?.['message']);\r\n }\r\n );\r\n });\r\n }\r\n\r\n customDownloadAction(event){\r\n this.downloadActionClicked.emit(event);\r\n }\r\n\r\n}\r\n","<div class=\"mt-2 p-0\">\r\n @if(label){\r\n <app-form-label [label]=\"label\" [optional]=\"!control.hasValidator(Validators['required'])\" [tooltip]=\"tooltip\"></app-form-label>\r\n }\r\n\r\n @if (!attachments?.length && !isReadOnly) {\r\n <section\r\n [ngClass]=\"insideTable ? 'file-uploader-table' : 'file-uploader'\"\r\n class=\"mb-2\"\r\n [class.insideTableStyle]=\"insideTable\"\r\n (click)=\"addAttachment()\">\r\n <div\r\n [ngClass]=\"insideTable ? 'file-uploader-table-dev' : ''\"\r\n class=\"file-uploader-input\">\r\n <div class=\"icon mb-1\">\r\n <svg\r\n [ngClass]=\"insideTable ? 'file-uploader-table-svg' : ''\"\r\n width=\"41\"\r\n height=\"38\"\r\n viewBox=\"0 0 41 38\"\r\n fill=\"none\"\r\n xmlns=\"http://www.w3.org/2000/svg\">\r\n <path\r\n d=\"M0 22.1947V20.6736C0.0971303 20.1019 0.070094 19.5141 0.276371 18.9533C1.28372 16.2086 3.21231 14.5023 6.0421 13.8094C6.70499 13.6472 6.68497 13.6632 6.69899 12.9843C6.73203 11.3321 6.99839 9.71992 7.62423 8.17986C8.86289 5.13678 10.9467 2.83969 13.8816 1.39175C17.168 -0.230424 20.5956 -0.450719 24.0553 0.81598C27.4929 2.07467 29.9622 4.41581 31.4802 7.74828C31.7786 8.40316 32.027 9.08307 32.1712 9.79202C32.2402 10.1315 32.4035 10.2566 32.7529 10.3107C36.7012 10.9165 39.3358 13.1255 40.6946 16.8735C40.9069 17.4603 40.9199 18.0731 40.9599 18.6829C40.9649 18.7601 40.9389 18.8442 41 18.9113V20.5124C40.9109 20.995 40.969 21.4937 40.8608 21.9734C40.5244 23.4614 39.8454 24.7821 38.8501 25.9297C37.4522 27.5418 35.7059 28.5882 33.6161 29.0519C32.791 29.2351 31.9499 29.2521 31.1117 29.2922C30.6571 29.3142 30.584 29.193 30.592 28.7484C30.6451 25.8446 29.802 23.2571 27.8624 21.0591C25.9979 18.9463 23.6597 17.7167 20.867 17.4012C18.8553 17.1739 16.9057 17.4593 15.0612 18.3395C11.8319 19.8816 9.81416 22.4069 8.96102 25.8696C8.74273 26.7538 8.68265 27.658 8.70568 28.5702C8.7217 29.2111 8.60254 29.3122 7.95968 29.2972C5.95098 29.2511 4.10551 28.7234 2.58146 27.3596C1.07644 26.0168 0.0680913 24.3996 0.0400537 22.3028C0.0400537 22.2607 0.0250336 22.2257 0 22.1937V22.1947Z\"\r\n fill=\"#DEE0E2\"/>\r\n <path\r\n d=\"M29.0303 28.2632C29.0604 33.4031 24.8657 37.6187 19.6838 37.6548C14.5169 37.6908 10.2852 33.4952 10.2521 28.3042C10.2201 23.1403 14.4297 18.9126 19.6227 18.8946C24.8037 18.8766 28.9993 23.0542 29.0303 28.2632Z\"\r\n fill=\"#8E9AA0\"/>\r\n <path\r\n d=\"M20.5573 25.2644C20.4622 25.4477 20.5012 25.5939 20.5012 25.734C20.4982 28.2154 20.5002 30.6957 20.4982 33.177C20.4982 33.8099 20.2339 34.1704 19.7462 34.2234C19.2645 34.2765 18.88 33.9831 18.8169 33.5025C18.7959 33.3443 18.7969 33.183 18.7969 33.0238C18.7959 30.5826 18.7969 28.1423 18.7969 25.701C18.7969 25.5728 18.7969 25.4447 18.7969 25.2003C18.1971 25.8031 17.6774 26.3288 17.1527 26.8505C17.0115 26.9907 16.8683 27.1349 16.7061 27.2471C16.3566 27.4864 15.9341 27.4413 15.6457 27.154C15.3643 26.8746 15.3203 26.442 15.5486 26.0925C15.6207 25.9824 15.7128 25.8832 15.8069 25.7891C16.8613 24.7307 17.9167 23.6733 18.9732 22.6179C19.4017 22.1893 19.8784 22.1763 20.3039 22.5988C21.3914 23.6803 22.4739 24.7667 23.5533 25.8572C23.9809 26.2898 24.0129 26.8065 23.6534 27.167C23.299 27.5214 22.7753 27.4844 22.3437 27.0568C21.7499 26.47 21.1661 25.8732 20.5603 25.2644H20.5573Z\"\r\n fill=\"#F9F9F9\"/>\r\n </svg>\r\n </div>\r\n <div class=\"f-14 fc-black fw-normal\">\r\n <span class=\"fc-coral fw-medium\">{{ 'browse' | translate }}</span>\r\n </div>\r\n <div class=\"fs-10 fc-dark-gray\">\r\n {{ 'addMultiAttachments' | translate }}\r\n </div>\r\n </div>\r\n </section>\r\n }\r\n\r\n @if (attachments?.length) {\r\n <div\r\n class=\"table-responsive full\"\r\n cdkDropList\r\n [cdkDropListData]=\"attachments\"\r\n (cdkDropListDropped)=\"drop($event)\"\r\n >\r\n <table mat-table [dataSource]=\"dataSource\">\r\n\r\n <!-- index Column -->\r\n <ng-container matColumnDef=\"index\">\r\n <th mat-header-cell *matHeaderCellDef>\r\n <ds-button\r\n [matTooltip]=\"'downloadAll' | translate\"\r\n square icon size=\"small\"\r\n (click)=\"downloadAllAttachments($event)\"\r\n class=\"icon-btn-shadow\">\r\n @if (loading) {\r\n <ds-icon class=\"sfi sfi-spinner d-inline-block spin fc-coral fs-30-imp\"></ds-icon>\r\n } @else {\r\n <ds-icon\r\n icon=\"download\"\r\n class=\"fs-20 fs-md-17 fc-purple\"></ds-icon>\r\n }\r\n </ds-button>\r\n </th>\r\n <td mat-cell *matCellDef=\"let element; let i = index\">{{ i + 1 + pageSize * (pageNumber) }}</td>\r\n </ng-container>\r\n\r\n <!-- Name Column -->\r\n <ng-container matColumnDef=\"file\">\r\n <th mat-header-cell *matHeaderCellDef>{{ 'FileName' | translate }}</th>\r\n <td mat-cell *matCellDef=\"let element\">\r\n <app-file-uploader\r\n [allowedExtensions]=\"allowedExtensions\"\r\n [displayedFiles]=\"[element]\"\r\n name=\"attachment\"\r\n [showActions]=\"true\"\r\n [isReadOnly]=\"true\"\r\n [customDownload]=\"customDownload\"\r\n (downloadActionClicked)=\"customDownloadAction($event)\"\r\n [multiple]=\"true\">\r\n </app-file-uploader>\r\n </td>\r\n </ng-container>\r\n\r\n <!-- Description Column -->\r\n <ng-container matColumnDef=\"description\">\r\n <th mat-header-cell *matHeaderCellDef>{{ 'FileDescription' | translate }}</th>\r\n <td mat-cell *matCellDef=\"let element\">\r\n <a\r\n class=\"fw-medium fc-black underline cursor-pointer fs-12\"\r\n [hidden]=\"!element?.['fileDescription']\"\r\n (click)=\"$event.stopPropagation(); fileDescriptionAnchor.popover.open()\"\r\n [satPopoverAnchor]=\"fileDescriptionPopover\"\r\n #fileDescriptionAnchor=\"satPopoverAnchor\"\r\n [matTooltip]=\"element?.['fileDescription']\">\r\n {{ element?.['fileDescription']?.length > 10 ? (element?.['fileDescription'] | slice : 0 : 10) + '....' : element?.['fileDescription'] }}\r\n </a>\r\n <sat-popover\r\n #fileDescriptionPopover\r\n [anchor]=\"fileDescriptionAnchor\"\r\n [hasBackdrop]=\"true\"\r\n [restoreFocus]=\"false\"\r\n verticalAlign=\"below\"\r\n horizontalAlign=\"center\">\r\n <div class=\"default-popover p-3 fs-14 text-break view-note-popover\">\r\n <bdi class=\"fc-black\">{{ element?.['fileDescription'] }}</bdi>\r\n </div>\r\n </sat-popover>\r\n </td>\r\n </ng-container>\r\n\r\n <!-- Comment Column -->\r\n <ng-container matColumnDef=\"comment\">\r\n <th mat-header-cell *matHeaderCellDef>{{ 'comment' | translate }}</th>\r\n <td mat-cell *matCellDef=\"let element\">\r\n <a\r\n class=\"fw-medium fc-black underline cursor-pointer fs-12\"\r\n [hidden]=\"!element?.['attachmentcomment']\"\r\n (click)=\"$event.stopPropagation(); commentsAnchor.popover.open()\"\r\n [satPopoverAnchor]=\"commentsPopover\"\r\n [matTooltip]=\"element?.['attachmentcomment']\"\r\n #commentsAnchor=\"satPopoverAnchor\">\r\n {{ element?.['attachmentcomment']?.length > 10 ? (element?.['attachmentcomment'] | slice : 0 : 10) + '....' : element?.['attachmentcomment'] }}\r\n </a>\r\n <sat-popover\r\n #commentsPopover\r\n [anchor]=\"commentsAnchor\"\r\n [hasBackdrop]=\"true\"\r\n [restoreFocus]=\"false\"\r\n verticalAlign=\"below\"\r\n horizontalAlign=\"center\">\r\n <div class=\"default-popover p-3 fs-14 text-break view-note-popover\">\r\n <bdi class=\"fc-black\">{{ element?.['attachmentcomment'] }}</bdi>\r\n </div>\r\n </sat-popover>\r\n </td>\r\n </ng-container>\r\n\r\n <ng-container matColumnDef=\"actions\">\r\n <th mat-header-cell *matHeaderCellDef></th>\r\n <td mat-cell *matCellDef=\"let element; let i = index\">\r\n @if (!isReadOnly) {\r\n <td>\r\n <div class=\"d-flex gap-2\">\r\n <ds-button\r\n square\r\n icon\r\n size=\"small\"\r\n (click)=\"deleteAttachments(i, element)\"\r\n class=\"icon-btn-shadow\">\r\n <ds-icon icon=\"trash\" class=\"fs-20 fs-md-17 fc-coral\"></ds-icon>\r\n </ds-button>\r\n\r\n <ds-button\r\n square\r\n icon\r\n size=\"small\"\r\n (click)=\"editRow(element, i)\"\r\n class=\"icon-btn-shadow\">\r\n <ds-icon icon=\"pen\" class=\"fs-20 fs-md-17 fc-purple\"></ds-icon>\r\n </ds-button>\r\n </div>\r\n </td>\r\n }\r\n </td>\r\n </ng-container>\r\n\r\n <tr mat-header-row *matHeaderRowDef=\"displayedColumns\"></tr>\r\n <tr mat-row *matRowDef=\"let row; columns: displayedColumns;\"></tr>\r\n </table>\r\n\r\n <mat-paginator\r\n #paginator\r\n [pageSizeOptions]=\"[5]\"\r\n (page)=\"onPaginateChange($event)\"\r\n [length]=\"attachments.length\"\r\n [pageSize]=\"pageSize\"\r\n showFirstLastButtons></mat-paginator>\r\n </div>\r\n }\r\n\r\n @if (!isReadOnly && attachments?.length && attachments?.length < attachmentsMax) {\r\n <div class=\"text-center full mt-3\">\r\n <ds-button\r\n shape=\"{{ attachments?.length ? 'outline' : '' }}\"\r\n [ngClass]=\"{ 'full-add-btn w-100 pt-1': attachments?.length }\"\r\n (click)=\"addAttachment(); $event.stopPropagation()\">\r\n <ds-icon slot=\"prefix\" icon=\"plus\" class=\"fs-22 pb-1\"></ds-icon>\r\n {{ 'addAttachments' | translate }}\r\n </ds-button>\r\n </div>\r\n }\r\n</div>\r\n","import { Component, CUSTOM_ELEMENTS_SCHEMA, DestroyRef, forwardRef, inject, Input } from '@angular/core';\r\nimport {MatRadioButton, MatRadioGroup} from '@angular/material/radio';\r\nimport {FormsModule, NG_VALUE_ACCESSOR} from \"@angular/forms\";\r\nimport { ControlValueAccessorDirective } from '../control-value-accessor.directive';\r\nimport {NgSwitchCase} from \"@angular/common\";\r\nimport { Shareds } from '../shared-imports';\r\nimport { takeUntilDestroyed } from '@angular/core/rxjs-interop';\r\n\r\n@Component({\r\n selector: 'app-radio',\r\n templateUrl: './radio.component.html',\r\n styleUrls: ['./radio.component.scss'],\r\n schemas: [CUSTOM_ELEMENTS_SCHEMA],\r\n standalone: true,\r\n imports: [\r\n MatRadioButton,\r\n MatRadioGroup,\r\n FormsModule,\r\n NgSwitchCase,\r\n ...Shareds\r\n ],\r\n providers: [\r\n {\r\n provide: NG_VALUE_ACCESSOR,\r\n useExisting: forwardRef(() => RadioComponent),\r\n multi: true,\r\n },\r\n ]\r\n})\r\nexport class RadioComponent<Type> extends ControlValueAccessorDirective<Type> {\r\n @Input() options:any;\r\n destroyRef = inject(DestroyRef);\r\n override ngOnInit(): void {\r\n super.ngOnInit()\r\n this.actionStateService.resetAction$\r\n .pipe(takeUntilDestroyed(this.destroyRef))\r\n .subscribe(res => {\r\n if (!this.isReadOnly && this.control.enabled) {\r\n this.control.reset();\r\n }\r\n });\r\n\r\n }\r\n}\r\n","@if(!isReadOnly){\r\n @if(label){\r\n <app-form-label [label]=\"label\" [optional]=\"!control.hasValidator(Validators['required'])\" [tooltip]=\"tooltip\"></app-form-label>\r\n }\r\n <mat-radio-group\r\n aria-label=\"Select an option\"\r\n [formControl]=\"control\"\r\n id=\"{{ name }}{{ randomID }}\"\r\n name=\"{{ name }}{{ randomID }}\"\r\n >\r\n @for(option of options; track $index){\r\n <mat-radio-button\r\n [disabled]=\"isReadOnly || isDisabled\"\r\n [value]=\"option\"\r\n [checked]=\"option === control.value\"\r\n >\r\n <span class=\"fs-12 fw-medium fc-onyx\">\r\n {{ option }}\r\n </span>\r\n </mat-radio-button>\r\n }\r\n </mat-radio-group>\r\n\r\n}@else if(isReadOnly && control.value) {\r\n <ng-container>\r\n <app-info-item\r\n class=\"info-item w-100\"\r\n [insideTable]=\"insideTable\"\r\n [label]=\"label\"\r\n [type]=\"'toggleBtn'\"\r\n [value]=\"control.value\"\r\n [hasLabel]=\"!!label\"\r\n >\r\n </app-info-item>\r\n </ng-container>\r\n}\r\n","export function mapTo(path: string, source: any, allowUndefined = false, allowArrayWithSingleValue = false): any {\r\n let toBeReturned: any;\r\n if (source) {\r\n const attributes: string[] = path.split('.');\r\n toBeReturned = source[attributes[0]];\r\n for (let i = 1; i < attributes.length && toBeReturned != null; i++) toBeReturned = toBeReturned[attributes[i]];\r\n }\r\n\r\n\r\n // Check if the value is a valid date\r\n if (toBeReturned instanceof Date) {\r\n return toBeReturned;\r\n }\r\n\r\n // Return null for undefined or missing date values\r\n if (toBeReturned === undefined || toBeReturned === null) {\r\n return allowUndefined ? toBeReturned : null;\r\n }\r\n\r\n // Return '-' for other missing values\r\n let toReturn = toBeReturned || toBeReturned === 0 ? toBeReturned : '-';\r\n\r\n\r\n // // to make sure that if the returned data is undefined, we will override it by -\r\n // let toReturn = toBeReturned || toBeReturned === 0 ? toBeReturned : allowUndefined ? toBeReturned : '-';\r\n\r\n if (Array.isArray(toReturn) && toReturn.length == 1 && !allowArrayWithSingleValue) {\r\n toReturn = toReturn[0];\r\n }\r\n\r\n return toReturn;\r\n}","export enum Colors {\r\n RED = '#CA102F',\r\n GREEN = '#02C389',\r\n}","export enum Events {\r\n SCROLL = 'scroll',\r\n ENTER = 'enter',\r\n}","export enum Actions {\r\n VIEW = 'view',\r\n COPY = 'copy',\r\n EDIT = 'edit',\r\n DELETE = 'delete',\r\n DELETEPENDING = 'deletePendingContract',\r\n CHART = 'chart',\r\n APPROVE = 'approve',\r\n REJECT = 'reject',\r\n DETAILS = 'Details',\r\n START = 'Start',\r\n PREPARE = 'Prepare',\r\n CUSTOMACTION = 'customAction',\r\n CUSTOMACTIONMANAGE = 'customActionManage',\r\n CUSTOMACTIONEXTEND = 'customActionExtend',\r\n CUSTOMACTIONDETAILS = 'customActionDetails',\r\n STATUS = 'status',\r\n ALLOCATE = 'allocate'\r\n}\r\n","import {Directive, HostListener, Input} from '@angular/core';\r\nimport {Router} from '@angular/router';\r\n\r\n@Directive({\r\n standalone: true,\r\n selector: '[appSkipLocation]'\r\n})\r\nexport class SkipLocationDirective {\r\n @Input() appSkipLocation: any;\r\n\r\n constructor(private router: Router) {\r\n }\r\n\r\n @HostListener('click')\r\n onClick() {\r\n this.router.navigate([this.appSkipLocation], {skipLocationChange: true});\r\n }\r\n}\r\n","import {Component, CUSTOM_ELEMENTS_SCHEMA, ElementRef, EventEmitter, Input, OnInit, Output, ViewChild} from '@angular/core';\r\nimport {FormBuilder, FormControl, FormGroup, FormsModule, ReactiveFormsModule, Validators} from '@angular/forms';\r\nimport {MatDialog} from '@angular/material/dialog';\r\nimport {MatPaginator, PageEvent} from '@angular/material/paginator';\r\nimport {MatSort, Sort} from '@angular/material/sort';\r\nimport {\r\n MatCell,\r\n MatCellDef,\r\n MatColumnDef,\r\n MatHeaderCell,\r\n MatHeaderCellDef,\r\n MatHeaderRow,\r\n MatHeaderRowDef,\r\n MatRow,\r\n MatRowDef,\r\n MatTable,\r\n MatTableDataSource\r\n} from '@angular/material/table';\r\nimport {TranslateModule, TranslateService} from '@ngx-translate/core';\r\nimport {debounceTime, fromEvent, Subject} from 'rxjs';\r\n\r\nimport {DatePipe, JsonPipe, NgClass, NgFor, NgIf, NgSwitch, NgSwitchCase, NgSwitchDefault} from \"@angular/common\";\r\nimport {MatCheckbox} from \"@angular/material/checkbox\";\r\nimport {MatTooltip} from \"@angular/material/tooltip\";\r\nimport {MatMenu, MatMenuItem, MatMenuTrigger} from \"@angular/material/menu\";\r\nimport {MatSlideToggle} from \"@angular/material/slide-toggle\";\r\nimport {RouterLink} from \"@angular/router\";\r\n\r\nimport {ActionModel} from '../../../interfaces/action.interface';\r\nimport {mapTo} from '../../../helpers/shared.helper';\r\nimport {CustomSearchableComponent, InputComponent} from '../form-field';\r\nimport {Colors} from '../../../enums/colors.enum';\r\nimport {Events} from '../../../enums/events.enum';\r\nimport {Actions} from '../../../enums/actions.enum';\r\nimport {SkipLocationDirective} from '../../../directives/skip-location.directive';\r\n\r\nconst matModules = [\r\n MatTable,\r\n MatColumnDef, MatHeaderCellDef,\r\n MatCheckbox, NgSwitch, MatCellDef, NgSwitchCase,\r\n NgClass, DatePipe, InputComponent, ReactiveFormsModule, MatTooltip,\r\n MatMenu, MatSlideToggle, MatMenuTrigger, MatMenuItem, MatSort, MatHeaderRowDef, MatHeaderRow, MatRow, MatRowDef,\r\n MatHeaderCell, MatCell, CustomSearchableComponent\r\n]\r\n\r\n@Component({\r\n selector: 'app-table',\r\n standalone: true,\r\n imports: [NgFor, TranslateModule, NgIf, matModules, FormsModule, NgSwitchDefault, SkipLocationDirective, MatPaginator],\r\n templateUrl: './table.component.html',\r\n styleUrl: './table.component.scss',\r\n schemas: [CUSTOM_ELEMENTS_SCHEMA],\r\n})\r\nexport class TableComponent implements OnInit {\r\n @ViewChild('table', {read: ElementRef}) public matTableRef!: ElementRef;\r\n control = new FormControl(null);\r\n serviceDetailForm!: FormGroup;\r\n @Input() columns: any;\r\n @Input() isError: any = false;\r\n @Input() isLoading: any = false;\r\n @Input() customMessage!: string;\r\n @Input() columnsConfig: any;\r\n @Input() loadData: any;\r\n @Input() actions: ActionModel[] = [];\r\n @Input() className = '';\r\n @Input() totalElements: number = 0;\r\n @Input() showPagination: boolean = false;\r\n @Input() pageIndex: number = 0;\r\n @Input() pageSize: number = 15;\r\n @Input() sortDisabled: boolean = false;\r\n @Input() useScroll: boolean = false;\r\n @Output() serviceRowSelect = new EventEmitter<any>();\r\n @Output() selectPage = new EventEmitter<any>();\r\n @Output() rowClicked = new EventEmitter<any>();\r\n @Output() autoCompleteValueSelected = new EventEmitter<any>();\r\n @Output() selectValueSelected = new EventEmitter<any>();\r\n @Output() sortChanged = new EventEmitter<Sort>();\r\n @Output() inputCellChanged = new EventEmitter<any>()\r\n @Output() pageScroll = new EventEmitter<any>();\r\n @Output() toggleChanged = new EventEmitter<any>();\r\n @Output() eventClicked = new EventEmitter<any>();\r\n public dataSource = new MatTableDataSource<any>();\r\n @ViewChild('tableSort') tableSort = new MatSort();\r\n localControl = new FormControl()\r\n lang: string = '';\r\n spans = [];\r\n ctrl = new FormControl();\r\n protected readonly Actions = Actions;\r\n private unSubscribe = new Subject;\r\n @Input() hasPaginator = false;\r\n @Input() currentPage = 0;\r\n @Output() pageChange = new EventEmitter<any>();\r\n form: FormGroup;\r\n\r\n constructor(\r\n public dialog: MatDialog,\r\n public translateService: TranslateService,\r\n private fb: FormBuilder\r\n ) {}\r\n\r\n @Input() set keyWord(value: string) {\r\n this.applyFilter(value)\r\n };\r\n\r\n _rows: any;\r\n\r\n get rows(): any {\r\n return this._rows;\r\n }\r\n\r\n @Input() set rows(value: any) {\r\n this._rows = value;\r\n this.dataSource = new MatTableDataSource(this.rows);\r\n }\r\n\r\n ngOnInit(): void {\r\n console.log(this.rows)\r\n }\r\n\r\n pageChanged(event: PageEvent) {\r\n this.pageSize = event.pageSize;\r\n this.currentPage = event.pageIndex;\r\n this.pageChange.emit({pageSize: this.pageSize, pageIndex: this.currentPage})\r\n }\r\n\r\n ngAfterViewInit() {\r\n // this.tableSort.disableClear = true;\r\n // this.tableSort.disabled = this.sortDisabled;\r\n this.dataSource.sort = this.tableSort;\r\n //this.dataSource.paginator = this.paginator;\r\n this.handleScroll()\r\n }\r\n\r\n applyFilter(keyWord: string) {\r\n this.dataSource.filter = keyWord\r\n }\r\n\r\n truncateName(text: string) {\r\n if (text) {\r\n let characters = text.match(/\\b(\\w)/g);\r\n if (characters) {\r\n return characters.join('');\r\n } else {\r\n return '';\r\n }\r\n } else {\r\n return '';\r\n }\r\n }\r\n\r\n sortChange(sortState: Sort) {\r\n const data = this.dataSource.data.slice();\r\n if (!sortState.active || sortState.direction === '') {\r\n this.dataSource.data = data;\r\n return;\r\n }\r\n this.sortChanged.emit(sortState);\r\n }\r\n\r\n mapText(path: string, source: any) {\r\n return mapTo(path, source);\r\n }\r\n\r\n getSlaColor(min: number, max: number): string {\r\n const slaColor = min >= max ? Colors.RED : Colors.GREEN;\r\n return slaColor\r\n }\r\n\r\n\r\n clickRow(row: any) {\r\n this.rowClicked.emit(row)\r\n }\r\n\r\n emitElement(row: any) {\r\n this.eventClicked.emit(row)\r\n }\r\n\r\n toggleValueChange(e: any, element?: any) {\r\n this.toggleChanged.emit({e, element})\r\n }\r\n\r\n ngOnDestroy() {\r\n this.unSubscribe.next;\r\n this.unSubscribe.complete();\r\n }\r\n\r\n\r\n parseInt(value: string) {\r\n return parseInt(value)\r\n }\r\n\r\n private handleScroll() {\r\n fromEvent(this.matTableRef.nativeElement, Events.SCROLL)\r\n .pipe(debounceTime(200))\r\n .subscribe((e: any) => this.onTableScroll(e));\r\n }\r\n\r\n viewForm(url: string) {\r\n window.open('/group/i-gate/wm-bpm/forms?formId=' + url);\r\n }\r\n\r\n private onTableScroll(e: any): void {\r\n const tableViewHeight = e.target.offsetHeight // viewport: ~500px\r\n const tableScrollHeight = e.target.scrollHeight // length of all table\r\n const scrollLocation = e.target.scrollTop; // how far user scrolled\r\n const scrollDownLimit = tableScrollHeight - tableViewHeight;\r\n const isScrollingVertically = e.target.scrollHeight > e.target.offsetHeight;\r\n if (isScrollingVertically && (scrollLocation + 2) > scrollDownLimit) {\r\n this.pageScroll.emit(true)\r\n }\r\n }\r\n}\r\n","<div #table class=\"table-container table-responsive sticky-table\">\r\n @if(!isLoading){\r\n <ng-container>\r\n @if(dataSource.filteredData?.length! > 0){\r\n <table\r\n #tableSort=\"matSort\"\r\n (matSortChange)=\"sortChange($event)\"\r\n [dataSource]=\"dataSource\"\r\n class=\"primary-table {{ className }}\"\r\n mat-table\r\n matSort\r\n >\r\n @for(column of columns; track $index; let i =$index){\r\n <ng-container>\r\n <!-- Add a check to ensure 'columnsConfig' and 'columnsConfig[i]' are defined before using them -->\r\n\r\n @if(columnsConfig && columnsConfig[i]){\r\n <ng-container>\r\n <ng-container\r\n [matColumnDef]=\"column\"\r\n [stickyEnd]=\"!!columnsConfig[i].stickyEnd!\"\r\n >\r\n @if(!columnsConfig[i].notSortable){\r\n <ng-container>\r\n <th\r\n *matHeaderCellDef\r\n [ngClass]=\"{ 'text-end': columnsConfig[i].type === 'actions' }\"\r\n mat-header-cell\r\n mat-sort-header\r\n >\r\n @if(columnsConfig[i].type !== 'checkbox' || (\r\n this.columnsConfig[i]?.type! == 'actions' &&\r\n this.columnsConfig[i]?.actions?.length === 0) ){\r\n <ng-container>\r\n @if(!( this.columnsConfig[i].type == 'actions' &&\r\n this.columnsConfig[i].actions.length === 0)){\r\n <div class=\"d-flex align-items-center\">\r\n <div class=\"mx-1 fc-{{ columnsConfig[i].fontColor }}\">\r\n {{ columnsConfig[i].label | translate }}\r\n </div>\r\n @if(columnsConfig[i].slaMax){\r\n <ds-sla\r\n [canvasScale]=\"'40'\"\r\n [innerLineWidth]=\"'3'\"\r\n [maxValue]=\"columnsConfig[i].slaMax\"\r\n [outerLineColor]=\"'limegreen'\"\r\n [outerLineWidth]=\"'3'\"\r\n [value]=\"columnsConfig[i].slaValue\"\r\n class=\"table-header-sla my-1\"\r\n ></ds-sla>\r\n }\r\n </div>\r\n }\r\n </ng-container>\r\n } @if(columnsConfig[i].type == 'checkbox' ){\r\n <mat-checkbox class=\"checkbox\"> </mat-checkbox>\r\n }\r\n </th>\r\n </ng-container>\r\n } @if(columnsConfig[i].notSortable){\r\n <ng-container>\r\n <th\r\n *matHeaderCellDef\r\n [ngClass]=\"{ 'text-end': columnsConfig[i].type === 'actions' }\"\r\n mat-header-cell\r\n >\r\n <div class=\"d-flex align-items-center\">\r\n <div class=\"mx-1\">\r\n {{ columnsConfig[i].label | translate }}\r\n </div>\r\n @if(columnsConfig[i].slaMax){\r\n <ds-sla\r\n [canvasScale]=\"'50'\"\r\n [innerLineWidth]=\"'3'\"\r\n [maxValue]=\"columnsConfig[i].slaMax\"\r\n [outerLineColor]=\"'limegreen'\"\r\n [outerLineWidth]=\"'3'\"\r\n [value]=\"columnsConfig[i].slaValue\"\r\n class=\"table-header-sla my-1\"\r\n ></ds-sla>\r\n }\r\n </div>\r\n </th>\r\n </ng-container>\r\n }\r\n\r\n <td *matCellDef=\"let element; let j = index\" mat-cell>\r\n <ng-container [ngSwitch]=\"columnsConfig[i].type\">\r\n <!-- <a target=\"_blank\"-->\r\n <!-- routerLink=\"/inbox\" [queryParams]=\"{ id: element[column] }\"-->\r\n <!-- class=\"fc-black text-decoration-underline fw-medium\" [ngClass]=\"columnsConfig[i].type\" *ngSwitchCase=\"'link'\">-->\r\n <!-- {{ element[column] }}-->\r\n <!-- </a>-->\r\n <span *ngSwitchCase=\"'formId'\"\r\n (click)=\"viewForm(element[column])\"\r\n [ngClass]=\"columnsConfig[i].type\"\r\n class=\"fc-coral text-decoration-underline fw-medium\">\r\n {{ element[column] }}\r\n </span>\r\n <!-- <span\r\n *ngSwitchCase=\"'link'\"\r\n [ngClass]=\"columnsConfig[i].type\"\r\n class=\"fc-black text-decoration-underline fw-medium\"\r\n >\r\n {{ element[column] }}\r\n </span>-->\r\n\r\n <span\r\n *ngSwitchCase=\"'linkWithIcon'\"\r\n [appSkipLocation]=\"columnsConfig[i].link\"\r\n [ngClass]=\"columnsConfig[i].type\"\r\n class=\"fc-black text-decoration-underline fw-medium\"\r\n >\r\n <ds-icon\r\n class=\"fs-20 fc-black\"\r\n icon=\" {{ columnsConfig[i].icon }}\"\r\n ></ds-icon>\r\n <span class=\"fs-13 fc-coral px-1 text-decoration-underline\">{{\r\n element[column]\r\n }}</span>\r\n </span>\r\n <span\r\n *ngSwitchCase=\"'underLineWithIcon'\"\r\n [ngClass]=\"columnsConfig[i].type\"\r\n class=\"fc-black text-decoration-underline fw-medium\"\r\n >\r\n <ds-icon\r\n class=\"fs-20 fc-black\"\r\n icon=\" {{ columnsConfig[i].icon }}\"\r\n ></ds-icon>\r\n <span class=\"fs-13 fc-coral px-1 text-decoration-underline\">{{\r\n element[column]\r\n }}</span>\r\n </span>\r\n <mat-checkbox\r\n *ngSwitchCase=\"'checkbox'\"\r\n checked=\"{{ columnsConfig[i].checked }}\"\r\n class=\"checkbox\"\r\n disabled=\"{{ columnsConfig[i].disabled }}\"\r\n >\r\n </mat-checkbox>\r\n <span\r\n *ngSwitchCase=\"'ServiceDetails'\"\r\n [ngClass]=\"columnsConfig[i].type\"\r\n class=\"cursor-pointer\"\r\n >\r\n {{ element[column] }}\r\n </span>\r\n <span\r\n *ngSwitchCase=\"'dateOnly'\"\r\n [ngClass]=\"columnsConfig[i].type\"\r\n class=\"d-inline-flex align-items-center gap-2 text-nowrap\"\r\n >\r\n <span class=\"sfi sfi-calendar-o fc-coral fs-18\"></span>\r\n {{ element[column] | date : \"MMM d, y\" }}\r\n </span>\r\n <span\r\n *ngSwitchCase=\"'Search'\"\r\n [ngClass]=\"columnsConfig[i].type\"\r\n class=\"d-inline-flex align-items-center\"\r\n >\r\n <app-input\r\n [formControl]=\"ctrl\"\r\n [placeholder]=\"'Search for item '\"\r\n [showLabel]=\"false\"\r\n class=\"\"\r\n className=\"no-padding \"\r\n prefix=\"sfi-search fs-16\"\r\n type=\"text\"\r\n >\r\n </app-input>\r\n </span>\r\n <span\r\n *ngSwitchCase=\"'Number'\"\r\n [ngClass]=\"columnsConfig[i].type\"\r\n class=\"d-inline-flex align-items-center\"\r\n >\r\n <app-input\r\n [formControl]=\"ctrl\"\r\n [placeholder]=\"'number'\"\r\n [showLabel]=\"false\"\r\n class=\"\"\r\n className=\"no-padding\"\r\n type=\"text\"\r\n >\r\n </app-input>\r\n </span>\r\n <span\r\n *ngSwitchCase=\"'dateFromTo'\"\r\n [ngClass]=\"columnsConfig[i].type\"\r\n class=\"d-inline-flex align-items-center\"\r\n >\r\n <span class=\"sfi sfi-clock fc-coral\"></span>\r\n <span class=\"mx-2\">\r\n {{ element?.date.from }}\r\n @if(element?.date.to){\r\n <ng-container> : {{ element?.date.to }} </ng-container>\r\n }\r\n </span>\r\n </span>\r\n\r\n <span\r\n *ngSwitchCase=\"'dateTime'\"\r\n [ngClass]=\"columnsConfig[i].type\"\r\n class=\"d-inline-flex align-items-center gap-1 flex-wrap\"\r\n >\r\n <span class=\"sfi sfi-calendar-o fc-dark-gray fs-20\"></span>\r\n {{ element[column] | date : \"MMM d, y, h:mm a\" }}\r\n </span>\r\n\r\n <span\r\n *ngSwitchCase=\"'singleTimeOnly'\"\r\n [ngClass]=\"columnsConfig[i].type\"\r\n class=\"d-inline-flex align-items-center gap-1 flex-wrap\"\r\n >\r\n {{ element[column] | date : \"h:mm a\" }}\r\n </span>\r\n <!--dir=\"ltr\" and text-left for English text on ar page -->\r\n <span\r\n *ngSwitchCase=\"'timeOnly'\"\r\n [ngClass]=\"columnsConfig[i].type\"\r\n class=\"d-inline-flex align-items-center gap-1 flex-wrap text-nowrap text-left\"\r\n dir=\"ltr\"\r\n >\r\n <!-- -->\r\n {{\r\n mapText(columnsConfig[i].firstVal, element[column])\r\n | date : \"h:mm a\"\r\n }}\r\n @if(mapText(columnsConfig[i].secondVal, element[column] )){\r\n <ng-container>\r\n -\r\n {{\r\n mapText(columnsConfig[i].secondVal, element[column])\r\n | date : \"h:mm a\"\r\n }}\r\n </ng-container>\r\n }\r\n </span>\r\n\r\n <span\r\n *ngSwitchCase=\"'multipleRows'\"\r\n [ngClass]=\"columnsConfig[i].type\"\r\n class=\"d-inline-flex align-items-center gap-1 flex-wrap\"\r\n >\r\n <!-- -->\r\n @if(!element[column].monthlyFineEscalation){\r\n <div>\r\n {{ element[column].fixedFineValue }}\r\n {{ \"global.SAR\" | translate }}\r\n </div>\r\n } @if(element[column].monthlyFineEscalation){\r\n <div>\r\n <br />\r\n {{ element[column].firstTimeFine }}\r\n {{ \"global.SAR\" | translate }} <br /><br />\r\n {{ element[column].secondTimeFine }}\r\n {{ \"global.SAR\" | translate }} <br /><br />\r\n {{ element[column].thirdTimeFine }}\r\n {{ \"global.SAR\" | translate }} <br /><br />\r\n </div>\r\n }\r\n </span>\r\n\r\n <div\r\n *ngSwitchCase=\"'sla'\"\r\n [ngClass]=\"columnsConfig[i].type\"\r\n class=\"d-inline-flex align-items-center\"\r\n >\r\n <!-- <app-sla [value]=\"element?.SLA.value\" [maxValue]=\"element?.SLA.max\" [canvasScale]=\"38\" -->\r\n <!-- class=\"font-9 fw-medium\" [outerLineColor]=\"getSlaColor(element?.SLA.value, element?.SLA.max)\">-->\r\n <!-- </app-sla>-->\r\n\r\n <ds-sla\r\n [attr.outerLineColor]=\"\r\n getSlaColor(element?.SLA.value, element?.SLA.max)\r\n \"\r\n [canvasScale]=\"'55'\"\r\n [innerLineWidth]=\"'3'\"\r\n [maxValue]=\"element?.SLA?.max\"\r\n [outerLineWidth]=\"'3'\"\r\n [value]=\"element?.SLA?.value\"\r\n ></ds-sla>\r\n </div>\r\n <div *ngSwitchCase=\"'slaProgress'\">\r\n <!-- <mat-sp-->\r\n\r\n @if(element[column]?.percentage >= 0){\r\n <ds-sla\r\n [canvasScale]=\"'55'\"\r\n [customValue]=\"element[column]?.percentage + '%'\"\r\n [innerLineWidth]=\"'3'\"\r\n [maxValue]=\"'100'\"\r\n [outerLineColor]=\"\r\n getSlaColor(element[column]?.percentage, 100)\r\n \"\r\n [outerLineWidth]=\"'3'\"\r\n [value]=\"element[column]?.percentage\"\r\n ></ds-sla>\r\n } @else {\r\n <ng-template>Not started</ng-template>\r\n }\r\n </div>\r\n <div\r\n *ngSwitchCase=\"'Priority'\"\r\n [ngClass]=\"columnsConfig[i].type\"\r\n class=\"{{ element[column] }}\"\r\n >\r\n {{ element[column] }}\r\n </div>\r\n\r\n <div\r\n *ngSwitchCase=\"'serviceStatus'\"\r\n [ngClass]=\"columnsConfig[i].type\"\r\n class=\"{{ element[column] }}\"\r\n >\r\n <span\r\n [ngClass]=\"element[column] == 'FALSE' ? 'green' : 'red'\"\r\n class=\"dot-status\"\r\n ></span>\r\n </div>\r\n\r\n <div\r\n *ngSwitchCase=\"'image'\"\r\n [ngClass]=\"columnsConfig[i].type\"\r\n class=\"img-card table-img\"\r\n >\r\n <img\r\n [src]=\"element?.image\"\r\n alt=\"\"\r\n onerror=\"this.onerror=null;this.src='assets/images/user.svg';\"\r\n />\r\n </div>\r\n\r\n <div\r\n *ngSwitchCase=\"'employee'\"\r\n [ngClass]=\"columnsConfig[i].type\"\r\n class=\"d-flex align-items-center gap-2 text-nowrap\"\r\n >\r\n <ds-avatar\r\n [image]=\"'https://igateapp.stc.com.sa'+element[column]?.['imageUrl']\"\r\n size=\"x-small\"\r\n >\r\n </ds-avatar>\r\n <span>{{ (element[column]?.['name']) }}</span>\r\n </div>\r\n\r\n <div\r\n *ngSwitchCase=\"'progress_group'\"\r\n [ngClass]=\"columnsConfig[i].type\"\r\n class=\"d-flex gap-1\"\r\n >\r\n <ng-container *ngFor=\"let item of element[column]\">\r\n <div\r\n class=\"progress-container default-progress medium radius-0\"\r\n matTooltip=\"Team assignment {{ item.value }}%\"\r\n matTooltipPosition=\"below\"\r\n >\r\n <div\r\n [style.width.%]=\"item.value\"\r\n class=\"progress-bar bg-color-{{ item.color }}\"\r\n ></div>\r\n </div>\r\n </ng-container>\r\n </div>\r\n <div\r\n *ngSwitchCase=\"'input'\"\r\n [ngClass]=\"columnsConfig[i].type\"\r\n class=\"\"\r\n >\r\n <app-input\r\n (input)=\"inputCellChanged.emit({element,column,i})\"\r\n [(ngModel)]=\"element[column]\"\r\n [min]=\"0\"\r\n [placeholder]=\"element[column]\"\r\n class=\"w-100\"\r\n className=\" no-padding w-100\"\r\n type=\"number\"\r\n value=\"{{ element[column] }}\"\r\n >\r\n </app-input>\r\n </div>\r\n <div *ngSwitchCase=\"'autoComplete'\"></div>\r\n <div\r\n *ngSwitchCase=\"'select'\"\r\n [ngClass]=\"columnsConfig[i].type\"\r\n class=\"\"\r\n >\r\n <app-custom-searchable\r\n (selectedValue)=\"selectValueSelected.emit($event)\"\r\n [isSearchable]=\"columnsConfig[i].config?.isSearchable\"\r\n [key]=\"columnsConfig[i]?.key\"\r\n [displayedLabel]=\"columnsConfig[i]?.displayedLable\"\r\n [options]=\"columnsConfig[i]?.options\"\r\n [postKey]=\"columnsConfig[i]?.postKey\"\r\n [showLabel]=\"false\"\r\n className=\"no-padding w-100\"\r\n >\r\n </app-custom-searchable>\r\n </div>\r\n\r\n <div\r\n *ngSwitchCase=\"'status'\"\r\n [ngClass]=\"'New' + columnsConfig[i].type\"\r\n class=\"d-flex align-items-center gap-2\"\r\n >\r\n @if(element[column]){\r\n <ds-status [status]=\"element[column]?.status\" class=\"fs-12\">\r\n {{ element[column]?.title | translate }}\r\n </ds-status>\r\n } @if(element[column]?.reason){\r\n <span\r\n (click)=\"$event.stopPropagation()\"\r\n [matMenuTriggerFor]=\"reasonMenu\"\r\n [ngClass]=\"columnsConfig[i].type\"\r\n class=\"{{\r\n columnsConfig[i].type\r\n }} fc-red underline cursor-pointer\"\r\n >\r\n Show reason\r\n </span>\r\n }\r\n\r\n <mat-menu #reasonMenu=\"matMenu\" class=\"p-4 text-center\">\r\n <span class=\"fs-14\">\r\n {{ element[column]?.reason }}\r\n </span>\r\n </mat-menu>\r\n </div>\r\n <div *ngSwitchCase=\"'toggle'\" [ngClass]=\"columnsConfig[i].type\">\r\n <mat-slide-toggle\r\n (change)=\"toggleValueChange($event, element)\"\r\n [checked]=\"element[column] == 1\"\r\n [disabled]=\"false\"\r\n ></mat-slide-toggle>\r\n </div>\r\n\r\n <div\r\n *ngSwitchCase=\"'customToggle'\"\r\n [ngClass]=\"columnsConfig[i].type\"\r\n >\r\n <mat-slide-toggle\r\n (change)=\"toggleValueChange($event, element)\"\r\n [checked]=\"element[column] == 7\"\r\n [disabled]=\"element[column] != 1\"\r\n ></mat-slide-toggle>\r\n </div>\r\n <div\r\n *ngSwitchCase=\"'meetingStatus'\"\r\n [ngClass]=\"columnsConfig[i].type\"\r\n class=\"{{ columnsConfig[i].type }}\"\r\n >\r\n @if(element[column].label == 'Finished'){\r\n <span class=\" {{ element[column].label }} status \">\r\n {{ element[column].label }}\r\n </span>\r\n } @if(element[column].label != 'Finished'){\r\n <div class=\"d-flex align-items-center gap-2\">\r\n <div\r\n class=\"Finished d-flex flex-column align-items-center justify-content-center py-1 fc-black\"\r\n >\r\n <span class=\"fs-11 fw-medium mb-1\">\r\n {{ element[column].hours }}</span\r\n >\r\n <span class=\"fs-10 fw-light\">HRS</span>\r\n </div>\r\n <div\r\n class=\"Finished d-flex flex-column align-items-center justify-content-center py-1 fc-black\"\r\n >\r\n <span class=\"fs-11 fw-medium mb-1\">\r\n {{ element[column].min }}</span\r\n >\r\n <span class=\"fs-10 fw-light\">MINS</span>\r\n </div>\r\n <div\r\n class=\"Finished d-flex flex-column align-items-center justify-content-center py-1 fc-black\"\r\n >\r\n <span class=\"fs-11 fw-medium mb-1\">\r\n {{ element[column].sec }}</span\r\n >\r\n <span class=\"fs-10 fw-light\">SECS</span>\r\n </div>\r\n </div>\r\n }\r\n </div>\r\n <span\r\n *ngSwitchCase=\"'number'\"\r\n [ngClass]=\"columnsConfig[i].type\"\r\n class=\"{{ columnsConfig[i].type }} {{\r\n element[column] ? 'underline' : ''\r\n }}\"\r\n >\r\n {{ element[column] ? element[column] : 0 }}\r\n </span>\r\n\r\n <span\r\n *ngSwitchCase=\"'currency'\"\r\n [ngClass]=\"columnsConfig[i].type\"\r\n class=\"{{ columnsConfig[i].type }}\"\r\n >\r\n {{\r\n element[column]\r\n ? parseInt(element[column]).toFixed(2) +\r\n (columnsConfig[i].currency | translate)\r\n : \"-\"\r\n }}\r\n </span>\r\n <span\r\n *ngSwitchCase=\"'active'\"\r\n [ngClass]=\"columnsConfig[i].type\"\r\n class=\"{{ columnsConfig[i].type }}\"\r\n >\r\n <ds-icon\r\n [ngClass]=\"element[column] ? 'fc-green' : 'fc-gray'\"\r\n icon=\"check-circle-f fs-30\"\r\n ></ds-icon>\r\n </span>\r\n <div\r\n *ngSwitchCase=\"'sync'\"\r\n [ngClass]=\"columnsConfig[i].type\"\r\n class=\"{{\r\n columnsConfig[i].type\r\n }} d-flex align-items-center gap-2\"\r\n >\r\n <svg\r\n fill=\"none\"\r\n height=\"19\"\r\n viewBox=\"0 0 18 19\"\r\n width=\"18\"\r\n xmlns=\"http://www.w3.org/2000/svg\"\r\n >\r\n <path\r\n d=\"M14.25 13.2604C13.9425 13.2604 13.6875 12.9913 13.6875 12.6667V5.14583C13.6875 4.59958 13.2675 4.15625 12.75 4.15625H8.625C8.3175 4.15625 8.0625 3.88708 8.0625 3.5625C8.0625 3.23792 8.3175 2.96875 8.625 2.96875H12.75C13.89 2.96875 14.8125 3.9425 14.8125 5.14583V12.6667C14.8125 12.9913 14.5575 13.2604 14.25 13.2604Z\"\r\n fill=\"#FF375E\"\r\n />\r\n <path\r\n d=\"M10.5 6.13549C10.3725 6.13549 10.245 6.088 10.14 6.00092L7.88999 4.02175C7.76249 3.91092 7.6875 3.74465 7.6875 3.56257C7.6875 3.38048 7.76249 3.22214 7.88999 3.10339L10.14 1.12422C10.38 0.910471 10.7325 0.950084 10.935 1.20342C11.1375 1.45675 11.1 1.82883 10.86 2.04258L9.12751 3.56257L10.86 5.08255C11.1 5.29631 11.13 5.66839 10.935 5.92172C10.8225 6.06422 10.6575 6.13549 10.5 6.13549Z\"\r\n fill=\"#FF375E\"\r\n />\r\n <path\r\n d=\"M14.25 18.0105C12.6975 18.0105 11.4375 16.6805 11.4375 15.0417C11.4375 13.403 12.6975 12.073 14.25 12.073C15.8025 12.073 17.0625 13.403 17.0625 15.0417C17.0625 16.6805 15.8025 18.0105 14.25 18.0105ZM14.25 13.2605C13.32 13.2605 12.5625 14.0601 12.5625 15.0417C12.5625 16.0234 13.32 16.823 14.25 16.823C15.18 16.823 15.9375 16.0234 15.9375 15.0417C15.9375 14.0601 15.18 13.2605 14.25 13.2605Z\"\r\n fill=\"#FF375E\"\r\n />\r\n <path\r\n d=\"M9.375 16.0312H5.25C4.11 16.0312 3.1875 15.0574 3.1875 13.8541V6.33325C3.1875 6.00867 3.4425 5.7395 3.75 5.7395C4.0575 5.7395 4.3125 6.00867 4.3125 6.33325V13.8541C4.3125 14.4003 4.7325 14.8437 5.25 14.8437H9.375C9.6825 14.8437 9.9375 15.1128 9.9375 15.4374C9.9375 15.762 9.6825 16.0312 9.375 16.0312Z\"\r\n fill=\"#FF375E\"\r\n />\r\n <path\r\n d=\"M7.4997 18.0104C7.3422 18.0104 7.17721 17.9391 7.06471 17.7966C6.86221 17.5433 6.89969 17.1712 7.13969 16.9574L8.87219 15.4375L7.13969 13.9175C6.89969 13.7037 6.86971 13.3316 7.06471 13.0783C7.26721 12.825 7.61971 12.7933 7.85971 12.9991L10.1097 14.9783C10.2372 15.0891 10.3122 15.2554 10.3122 15.4375C10.3122 15.6195 10.2372 15.7779 10.1097 15.8966L7.85971 17.8758C7.75471 17.9629 7.6272 18.0104 7.4997 18.0104Z\"\r\n fill=\"#FF375E\"\r\n />\r\n <path\r\n d=\"M3.75 6.927C2.1975 6.927 0.9375 5.597 0.9375 3.95825C0.9375 2.3195 2.1975 0.989502 3.75 0.989502C5.3025 0.989502 6.5625 2.3195 6.5625 3.95825C6.5625 5.597 5.3025 6.927 3.75 6.927ZM3.75 2.177C2.82 2.177 2.0625 2.97659 2.0625 3.95825C2.0625 4.93992 2.82 5.7395 3.75 5.7395C4.68 5.7395 5.4375 4.93992 5.4375 3.95825C5.4375 2.97659 4.68 2.177 3.75 2.177Z\"\r\n fill=\"#FF375E\"\r\n />\r\n </svg>\r\n {{ element[column] }}\r\n </div>\r\n\r\n <ng-container *ngSwitchCase=\"'clickable'\">\r\n @if(element?.[column]){\r\n <span\r\n #statusMenuTrigger=\"matMenuTrigger\"\r\n (click)=\"$event.stopPropagation()\"\r\n [matMenuTriggerFor]=\"descMenu\"\r\n [ngClass]=\"columnsConfig[i].type\"\r\n class=\"{{\r\n columnsConfig[i].type\r\n }} fc-coral underline cursor-pointer\"\r\n >\r\n {{ columnsConfig[i].clickableText | translate }}\r\n </span>\r\n }\r\n\r\n <mat-menu #descMenu=\"matMenu\" class=\"p-4 text-center\">\r\n <span class=\"fs-14\">\r\n {{ element[column] }}\r\n </span>\r\n </mat-menu>\r\n </ng-container>\r\n\r\n <span\r\n #statusMenuTrigger=\"matMenuTrigger\"\r\n (click)=\"$event.stopPropagation()\"\r\n *ngSwitchCase=\"'translatedClickable'\"\r\n [matMenuTriggerFor]=\"descMenuTranslated\"\r\n [ngClass]=\"columnsConfig[i].type\"\r\n class=\"{{\r\n columnsConfig[i].type\r\n }} fc-coral underline cursor-pointer\"\r\n >\r\n {{ columnsConfig[i].clickableText | translate }}\r\n <!-- {{ 'global.view' | translate}} -->\r\n </span>\r\n\r\n <mat-menu #descMenuTranslated=\"matMenu\" class=\"p-4 text-center\">\r\n <span class=\"fs-14\">\r\n {{\r\n columnsConfig[i].arKey\r\n ? translateService.currentLang == \"ar\"\r\n ? mapText(columnsConfig[i].arKey, element[column])\r\n : mapText(columnsConfig[i].enKey, element[column])\r\n : element[column]\r\n ? element[column]\r\n : \"-\"\r\n }}\r\n </span>\r\n </mat-menu>\r\n\r\n <span\r\n #statusMenuTrigger=\"matMenuTrigger\"\r\n (click)=\"$event.stopPropagation()\"\r\n *ngSwitchCase=\"'conditionalClickable'\"\r\n [matMenuTriggerFor]=\"descConditionalMenu\"\r\n [ngClass]=\"columnsConfig[i].type\"\r\n class=\"{{\r\n columnsConfig[i].type\r\n }} fc-coral underline cursor-pointer\"\r\n >\r\n @if(element[column] && element[column] != 'null'){\r\n <span>{{ columnsConfig[i].clickableText | translate }}</span>\r\n }\r\n <!-- {{ 'global.view' | translate}} -->\r\n </span>\r\n\r\n <mat-menu\r\n #descConditionalMenu=\"matMenu\"\r\n class=\"p-4 text-center\"\r\n >\r\n <span class=\"fs-14\">\r\n {{ element[column] }}\r\n </span>\r\n </mat-menu>\r\n\r\n <span\r\n (click)=\"$event.stopPropagation()\"\r\n *ngSwitchCase=\"'dropdown'\"\r\n [matMenuTriggerFor]=\"dropdownMenu\"\r\n [ngClass]=\"columnsConfig[i].type\"\r\n class=\"{{ columnsConfig[i].type }} cursor-pointer\"\r\n >\r\n {{\r\n columnsConfig[i].arKey\r\n ? translateService.currentLang == \"ar\"\r\n ? mapText(columnsConfig[i].arKey, element[column])\r\n : mapText(columnsConfig[i].enKey, element[column])\r\n : element[column]\r\n ? element[column]\r\n : \"-\"\r\n }}\r\n <!-- <span *ngFor=\"let item of element[column]\">\r\n {{item.id}}\r\n </span> -->\r\n\r\n <ds-icon class=\"fc-black fw-medium\" icon=\"arrow\"></ds-icon>\r\n </span>\r\n\r\n <mat-menu #dropdownMenu=\"matMenu\" class=\"p-4 text-center\">\r\n <ng-container *ngSwitchCase=\"'dropdown'\">\r\n <span class=\"fs-12 fc-black\" mat-menu-item>\r\n <!-- {{translateService.currentLang == 'ar' ? item.groupNameAr : item.groupNameEn}} -->\r\n {{\r\n columnsConfig[i].arKey\r\n ? translateService.currentLang == \"ar\"\r\n ? mapText(columnsConfig[i].arKey, element[column])\r\n : mapText(columnsConfig[i].enKey, element[column])\r\n : element[column]\r\n ? element[column]\r\n : \"-\"\r\n }}\r\n </span>\r\n </ng-container>\r\n </mat-menu>\r\n\r\n <span\r\n *ngSwitchCase=\"'formatNumber'\"\r\n [ngClass]=\"columnsConfig[i].type\"\r\n matTooltip=\"{{\r\n element[column] > 1000 ? element[column] : ''\r\n }}\"\r\n >\r\n {{ element[column] }}\r\n </span>\r\n\r\n <div\r\n *ngSwitchCase=\"'group'\"\r\n [ngClass]=\"columnsConfig[i].type\"\r\n class=\"text-nowrap d-flex align-items-center\"\r\n ></div>\r\n\r\n <div\r\n *ngSwitchCase=\"'company'\"\r\n [ngClass]=\"columnsConfig[i].type\"\r\n class=\"d-flex align-items-center\"\r\n >\r\n <span class=\"img-card circled-img\">\r\n <img\r\n [src]=\"element?.image\"\r\n alt=\"\"\r\n onerror=\"this.onerror=null;this.src='assets/images/user.svg';\"\r\n />\r\n </span>\r\n <span class=\"mx-1\"></span>\r\n <span class=\"full-name\">{{ element[column] }}</span>\r\n </div>\r\n\r\n <span\r\n *ngSwitchCase=\"'translated'\"\r\n [ngClass]=\"columnsConfig[i].type\"\r\n class=\"text-nowrap\"\r\n >\r\n {{ element[column] }}\r\n </span>\r\n <span\r\n *ngSwitchCase=\"'title'\"\r\n [ngClass]=\"columnsConfig[i].type\"\r\n class=\"text-nowrap\"\r\n >\r\n {{ element[column]?.title }}\r\n </span>\r\n\r\n <span\r\n *ngSwitchCase=\"'maxWidth'\"\r\n [ngClass]=\"columnsConfig[i].type\"\r\n >\r\n {{ element[column]?.title }}\r\n </span>\r\n\r\n <span\r\n *ngSwitchCase=\"'progress'\"\r\n [ngClass]=\"columnsConfig[i].type\"\r\n >\r\n <div class=\"Progress\">\r\n <div class=\"progress-container default-progress\">\r\n <div\r\n [style.width.%]=\"\r\n (element[column].consumed! / element[column].total!) *\r\n 100\r\n \"\r\n class=\"progress-bar\"\r\n ></div>\r\n </div>\r\n <div class=\"Progress__footer\">\r\n <div></div>\r\n <div>\r\n <span class=\"fs-12\">\r\n <span>{{ element[column].consumed }}</span>\r\n <span>/</span>\r\n <span class=\"fc-silver\">{{\r\n element[column].total\r\n }}</span>\r\n </span>\r\n </div>\r\n </div>\r\n </div>\r\n </span>\r\n\r\n <div\r\n *ngSwitchCase=\"'subsidiary'\"\r\n [ngClass]=\"columnsConfig[i].type\"\r\n class=\"d-flex align-items-center gap-2\"\r\n >\r\n <img\r\n [alt]=\"element[column]?.title\"\r\n src=\"assets/subsidiaries/ids/{{ element[column]?.id }}.png\"\r\n />\r\n <!-- <span class=\"full-name\">{{element[column]}}</span>-->\r\n </div>\r\n\r\n <div\r\n *ngSwitchCase=\"'Service'\"\r\n [ngClass]=\"columnsConfig[i].type\"\r\n class=\"d-flex align-items-center gap-2\"\r\n >\r\n <svg\r\n fill=\"none\"\r\n height=\"35\"\r\n viewBox=\"0 0 34 35\"\r\n width=\"34\"\r\n xmlns=\"http://www.w3.org/2000/svg\"\r\n >\r\n <rect\r\n fill=\"#FF375E\"\r\n fill-opacity=\"0.1\"\r\n height=\"33.5\"\r\n rx=\"4\"\r\n width=\"33.5\"\r\n y=\"0.75\"\r\n />\r\n <path\r\n d=\"M24.213 17.0338H22.1448L21.4532 15.1884C21.2221 14.5845 20.649 14.1622 19.9761 14.1592H13.5315C12.8586 14.1622 12.2847 14.5838 12.0582 15.1771L12.0544 15.1876L11.3628 17.033H9.29312C9.05532 17.033 8.86328 17.2258 8.86328 17.4629V19.1845C8.86328 19.4223 9.05607 19.6143 9.29312 19.6143H10.2076L9.69896 20.378C9.53242 20.6233 9.4334 20.9263 9.4334 21.2519C9.4334 21.2527 9.4334 21.2527 9.4334 21.2534V26.0702C9.4334 26.308 9.62619 26.5 9.86324 26.5H12.1595C12.3973 26.5 12.5893 26.3072 12.5893 26.0702V24.7791H20.91V26.0702C20.91 26.308 21.1028 26.5 21.3399 26.5H23.6361C23.8739 26.5 24.066 26.3072 24.066 26.0702V21.2519C24.066 21.2512 24.066 21.2512 24.066 21.2504C24.066 20.9248 23.9669 20.6218 23.7974 20.3705L23.8011 20.3757L23.2925 19.6121H24.207C24.4448 19.6121 24.6368 19.4193 24.6368 19.1822V17.4606C24.6361 17.2258 24.4478 17.036 24.2145 17.0315L24.213 17.0338ZM12.8654 15.4915C12.9711 15.2176 13.2314 15.0271 13.5368 15.0264H19.9798C20.2852 15.0271 20.5455 15.2184 20.649 15.487L20.6505 15.4922L21.8747 18.7569H11.6359L12.8654 15.4915ZM23.2138 23.9202H10.2983V21.2542C10.2983 21.2534 10.2983 21.2534 10.2983 21.2527C10.2983 21.1049 10.3433 20.9676 10.4199 20.8536L10.4184 20.8558L11.245 19.6151H22.2618L23.0885 20.8558C23.1635 20.9668 23.2085 21.1049 23.2085 21.2519C23.2085 21.2527 23.2085 21.2527 23.2085 21.2534L23.2138 23.9202ZM9.72896 17.895H11.0357L10.7132 18.7561H9.72071L9.72896 17.895ZM11.7379 25.6411H10.2983V24.7799H11.7334L11.7379 25.6411ZM23.2153 25.6411H21.775V24.7799H23.21L23.2153 25.6411ZM23.7869 18.7546H22.7899L22.4674 17.8935H23.7831L23.7869 18.7546ZM12.1632 20.4762C11.2915 20.4762 10.5856 21.1829 10.5856 22.0538C10.5856 22.9248 11.2923 23.6314 12.1632 23.6314C13.0349 23.6314 13.7408 22.9248 13.7408 22.0538C13.7408 21.1821 13.0342 20.4762 12.1632 20.4762V20.4762ZM12.1632 22.7725C11.7671 22.7725 11.4461 22.4514 11.4461 22.0553C11.4461 21.6592 11.7671 21.3382 12.1632 21.3382C12.5593 21.3382 12.8804 21.6592 12.8804 22.0553C12.8804 22.4514 12.5593 22.7725 12.1632 22.7725V22.7725ZM21.3444 20.4762C20.4727 20.4762 19.7668 21.1829 19.7668 22.0538C19.7668 22.9248 20.4735 23.6314 21.3444 23.6314C22.2161 23.6314 22.922 22.9248 22.922 22.0538C22.922 21.1821 22.2153 20.4762 21.3444 20.4762ZM21.3444 22.7725C20.9483 22.7725 20.6272 22.4514 20.6272 22.0553C20.6272 21.6592 20.9483 21.3382 21.3444 21.3382C21.7405 21.3382 22.0615 21.6592 22.0615 22.0553C22.0615 22.4514 21.7405 22.7725 21.3444 22.7725ZM19.0489 21.0509H14.4579C14.2201 21.0509 14.0274 21.2437 14.0274 21.4815C14.0274 21.7193 14.2201 21.912 14.4579 21.912H19.0489C19.2867 21.912 19.4795 21.7193 19.4795 21.4815C19.4795 21.2437 19.2867 21.0509 19.0489 21.0509ZM19.0489 22.1986H14.4579C14.2201 22.1986 14.0274 22.3914 14.0274 22.6292C14.0274 22.867 14.2201 23.0598 14.4579 23.0598H19.0489C19.2867 23.0598 19.4795 22.867 19.4795 22.6292C19.4795 22.3914 19.2867 22.1986 19.0489 22.1986ZM15.2321 12.5703C15.1541 12.6484 15.1061 12.7556 15.1061 12.8742C15.1061 13.112 15.2989 13.304 15.5359 13.304C15.6544 13.304 15.7625 13.256 15.8397 13.178C16.0738 12.9439 16.3971 12.7991 16.7542 12.7991C17.1113 12.7991 17.4346 12.9439 17.6686 13.178C17.7466 13.256 17.8539 13.304 17.9724 13.304C18.2102 13.304 18.4023 13.1112 18.4023 12.8742C18.4023 12.7556 18.3543 12.6476 18.2762 12.5703C17.8862 12.181 17.3483 11.9395 16.7534 11.9395C16.1586 11.9395 15.6199 12.1803 15.2306 12.5703H15.2321ZM19.1877 12.0865C19.1884 12.0865 19.1884 12.0865 19.1892 12.0865C19.427 12.0865 19.619 11.8937 19.619 11.6567C19.619 11.5374 19.5703 11.4294 19.4915 11.3513C18.7909 10.6507 17.8224 10.2171 16.7527 10.2171C15.683 10.2171 14.7145 10.6507 14.0139 11.3513C13.9358 11.4294 13.8878 11.5366 13.8878 11.6552C13.8878 11.893 14.0806 12.085 14.3177 12.085C14.4362 12.085 14.5442 12.037 14.6215 11.959C15.1668 11.4136 15.92 11.0768 16.7519 11.0768C17.5838 11.0768 18.337 11.4136 18.8824 11.959C18.9604 12.037 19.0677 12.0857 19.1869 12.0857H19.1877V12.0865ZM13.4062 10.743C14.2637 9.88704 15.4467 9.35818 16.7542 9.35818C18.0617 9.35818 19.2447 9.88704 20.1021 10.743C20.1801 10.821 20.2874 10.869 20.4059 10.869C20.6437 10.869 20.8358 10.6762 20.8358 10.4392C20.8358 10.3206 20.7878 10.2126 20.7098 10.1353C19.6963 9.12488 18.298 8.5 16.7534 8.5C15.2089 8.5 13.8106 9.12488 12.7971 10.1353C12.7191 10.2134 12.6711 10.3206 12.6711 10.4392C12.6711 10.677 12.8639 10.869 13.1009 10.869C13.2194 10.869 13.3275 10.821 13.4047 10.743H13.4062Z\"\r\n fill=\"#FF375E\"\r\n />\r\n </svg>\r\n\r\n <span class=\"fs-12 fw-normal fc-black\">{{\r\n element?.Service.name\r\n }}</span>\r\n </div>\r\n <div\r\n *ngSwitchCase=\"'Color'\"\r\n class=\"d-flex align-items-center gap-2\"\r\n >\r\n <span\r\n [ngClass]=\"columnsConfig[i].type\"\r\n [style.background]=\"\r\n element[column]?.colorCode\r\n ? element[column]?.colorCode\r\n : element[column]\r\n \"\r\n ></span>\r\n {{ element[column].title }}\r\n </div>\r\n <div\r\n *ngSwitchCase=\"'colorBg'\"\r\n [style.background]=\"\r\n 'rgba(var(--rgb-' + element[column]?.colorName + '), 0.1)'\r\n \"\r\n class=\"d-flex align-items-center gap-2 Colorbg p-2\"\r\n >\r\n <span class=\"bc-{{ element[column]?.colorName }}\"></span>\r\n {{ element[column].title }}\r\n </div>\r\n <div\r\n *ngSwitchCase=\"'assigned'\"\r\n [ngClass]=\"columnsConfig[i].type\"\r\n class=\"delegate d-flex align-items-center\"\r\n >\r\n <div class=\"img-card x-small circled-img\">\r\n <img\r\n [src]=\"element?.AssignedTo.image\"\r\n alt=\"\"\r\n onerror=\"this.onerror=null;this.src='assets/images/user.svg';\"\r\n />\r\n </div>\r\n <span class=\"mx-1\"></span>\r\n <span class=\"fs-12 fc-black\">{{\r\n element?.AssignedTo.name\r\n }}</span>\r\n <!--\r\n <span class=\"sfi sfi-close fc-coral\"></span>\r\n -->\r\n </div>\r\n\r\n <span\r\n *ngSwitchCase=\"'coloredText'\"\r\n [style.color]=\"element[column]?.['color']\"\r\n >{{\r\n element[column]?.['title']\r\n }}</span\r\n >\r\n <div\r\n *ngSwitchCase=\"'survey'\"\r\n [style.color]=\"element[column]?.['color']\"\r\n class=\"d-flex align-items-center gap-1 text-nowrap\"\r\n >\r\n <span\r\n class=\"fs-20 sfi sfi-emoji-{{(element[column]?.['title']['en'].toLowerCase()) }}\"\r\n ></span>\r\n {{ element[column]?.['title'] }}\r\n </div>\r\n\r\n <div\r\n *ngSwitchCase=\"'Satisfaction'\"\r\n [ngClass]=\"columnsConfig[i].type\"\r\n class=\"delegate d-flex gap-2 align-items-center\"\r\n >\r\n <!--\r\n <ds-icon icon=\"star-f\" class=\"fc-dark-gray\"></ds-icon>\r\n -->\r\n\r\n <span class=\"fs-12 fc-black\"\r\n >{{ element[column].percentage }}%</span\r\n >\r\n <ds-status\r\n class=\"auto-status\"\r\n size=\"small\"\r\n status=\"{{ element[column].status }}\"\r\n >\r\n <span class=\"fs-10\">\r\n {{ element[column].percentageTrend }}%\r\n </span>\r\n @if(element[column].trendStatus == 'up'){\r\n <ds-icon class=\"fs-13 mx-1 growthIcon\" icon=\"up-growth\">\r\n </ds-icon>\r\n } @if(element[column].trendStatus != 'up'){\r\n <ds-icon class=\"fs-13 mx-1 downIcon\" icon=\"down-growth\">\r\n </ds-icon>\r\n }\r\n </ds-status>\r\n </div>\r\n\r\n <ng-container *ngSwitchCase=\"'actions'\">\r\n <div class=\"d-flex justify-content-start gap-2\">\r\n <ng-container\r\n *ngIf=\"columnsConfig[i]?.actions?.length <= 6\"\r\n >\r\n <ng-container\r\n *ngFor=\"let action of columnsConfig[i]?.actions\"\r\n >\r\n <ds-button\r\n (click)=\"$event.stopPropagation()\"\r\n *ngIf=\"action.viewMode === Actions.ALLOCATE\"\r\n shape=\"outline\"\r\n size=\"small\"\r\n >\r\n <span class=\"fs-12 fc-{{ action?.actionFontColor }}\">\r\n {{ action?.actionName | translate }}\r\n </span>\r\n </ds-button>\r\n\r\n <ds-button\r\n (click)=\"\r\n $event.stopPropagation(); action?.onClick(element)\r\n \"\r\n *ngIf=\"action === Actions.ALLOCATE\"\r\n icon\r\n size=\"small\"\r\n >\r\n <ds-icon class=\"fs-15\" icon=\"pen\"></ds-icon>\r\n </ds-button>\r\n <ng-container\r\n *ngIf=\"\r\n action.viewMode != Actions.VIEW ||\r\n action.viewMode != Actions.COPY\r\n \"\r\n >\r\n <ds-button\r\n (click)=\"\r\n $event.stopPropagation(); action?.onClick(element)\r\n \"\r\n *ngIf=\"\r\n action?.action === Actions.VIEW &&\r\n !action?.isHidden\r\n \"\r\n icon\r\n size=\"small\"\r\n >\r\n <ds-icon class=\"fs-15\" icon=\"eye\"></ds-icon>\r\n </ds-button>\r\n\r\n <ds-button\r\n (click)=\"\r\n $event.stopPropagation(); action?.onClick(element)\r\n \"\r\n *ngIf=\"\r\n action?.action === Actions.COPY &&\r\n !action?.isHidden\r\n \"\r\n icon\r\n size=\"small\"\r\n >\r\n <ds-icon class=\"fs-15\" icon=\"files-copy\"></ds-icon>\r\n </ds-button>\r\n <!-- @if(element.hasOwnProperty('canUpdate')){\r\n <ds-button (click)=\"$event.stopPropagation();action?.onClick(element)\" icon size=\"small\"\r\n *ngIf=\"action?.action === 'edit' && !action?.isHidden && element.canUpdate == true\">\r\n <ds-icon icon=\"pen\" class=\"fs-15\"></ds-icon>\r\n </ds-button>\r\n }@else { -->\r\n\r\n <ds-button\r\n (click)=\"\r\n $event.stopPropagation(); action?.onClick(element)\"\r\n *ngIf=\"\r\n action?.action === Actions.EDIT &&\r\n ![4, 7].includes(element?.contractStatus?.id)\"\r\n icon\r\n size=\"small\"\r\n >\r\n <ds-icon class=\"fs-15\" icon=\"pen\"></ds-icon>\r\n </ds-button>\r\n <!-- } -->\r\n\r\n <ds-button\r\n (click)=\"\r\n $event.stopPropagation(); action?.onClick(element)\r\n \"\r\n *ngIf=\"\r\n action?.action === Actions.DELETE &&\r\n !action?.isHidden &&\r\n ![4, 7].includes(element?.contractStatus?.id)\r\n \"\r\n icon\r\n size=\"small\"\r\n >\r\n <ds-icon\r\n class=\"fc-coral fs-15\"\r\n icon=\"trash\"\r\n ></ds-icon>\r\n </ds-button>\r\n\r\n <ds-button\r\n (click)=\"\r\n $event.stopPropagation(); action?.onClick(element)\r\n \"\r\n *ngIf=\"\r\n action?.action === Actions.DELETEPENDING &&\r\n !action?.isHidden &&\r\n element?.contractStatus?.id == 1\r\n \"\r\n icon\r\n size=\"small\"\r\n >\r\n <ds-icon\r\n class=\"fc-coral fs-15\"\r\n icon=\"trash\"\r\n ></ds-icon>\r\n </ds-button>\r\n\r\n <ds-button\r\n (click)=\"\r\n $event.stopPropagation(); action?.onClick(element)\r\n \"\r\n *ngIf=\"action?.action === Actions.CHART\"\r\n color=\"transparent\"\r\n size=\"small\"\r\n >\r\n <ds-icon\r\n class=\"fc-coral fs-15\"\r\n icon=\"chart-o\"\r\n ></ds-icon>\r\n </ds-button>\r\n\r\n @if (element.hasOwnProperty('canTakeAction')) {\r\n <ds-button\r\n (click)=\"\r\n $event.stopPropagation(); action?.onClick(element)\r\n \"\r\n size=\"small\"\r\n *ngIf=\"\r\n action?.action === Actions.APPROVE &&\r\n element.canTakeAction == true\r\n \"\r\n >\r\n <span class=\"fs-12\">\r\n {{ \"global.approve\" | translate }}\r\n </span>\r\n </ds-button>\r\n <ds-button\r\n shape=\"outline\"\r\n color=\"dark-gray\"\r\n (click)=\"\r\n $event.stopPropagation(); action?.onClick(element)\r\n \"\r\n size=\"small\"\r\n *ngIf=\"\r\n action?.action === Actions.REJECT &&\r\n element.canTakeAction == true\r\n \"\r\n shape=\"outline\"\r\n >\r\n <span class=\"fs-12\">\r\n {{ \"global.reject\" | translate }}\r\n </span>\r\n </ds-button>\r\n } @else {\r\n <ds-button\r\n (click)=\"\r\n $event.stopPropagation(); action?.onClick(element)\r\n \"\r\n size=\"small\"\r\n *ngIf=\"action?.action === Actions.APPROVE\"\r\n >\r\n <span class=\"fs-12\">\r\n {{ \"global.approve\" | translate }}\r\n </span>\r\n </ds-button>\r\n <ds-button\r\n shape=\"outline\"\r\n color=\"dark-gray\"\r\n (click)=\"\r\n $event.stopPropagation(); action?.onClick(element)\r\n \"\r\n size=\"small\"\r\n *ngIf=\"action?.action === Actions.REJECT\"\r\n shape=\"outline\"\r\n >\r\n <span class=\"fs-12\">\r\n {{ \"global.reject\" | translate }}\r\n </span>\r\n </ds-button>\r\n }\r\n\r\n <ds-button\r\n *ngIf=\"action?.action === Actions.DETAILS\"\r\n shape=\"text\"\r\n size=\"small\"\r\n >\r\n <span class=\"fs-12 underline\"> View Details </span>\r\n </ds-button>\r\n <ds-button\r\n (click)=\"\r\n $event.stopPropagation(); action?.onClick(element)\r\n \"\r\n *ngIf=\"\r\n action?.action === Actions.START &&\r\n element?.isFinalize\r\n \"\r\n size=\"small\"\r\n >\r\n <span class=\"fs-12\">\r\n {{ action?.actionName | translate }}\r\n </span>\r\n <ds-icon\r\n class=\"fs-16\"\r\n icon=\"media-play\"\r\n slot=\"prefix\"\r\n ></ds-icon>\r\n </ds-button>\r\n <ds-button\r\n (click)=\"\r\n $event.stopPropagation(); action?.onClick(element)\r\n \"\r\n *ngIf=\"action?.action === Actions.PREPARE\"\r\n color=\"light-gray\"\r\n size=\"small\"\r\n >\r\n <span class=\"fs-12 fc-black\">\r\n {{ action?.actionName | translate }}\r\n </span>\r\n <ds-icon\r\n class=\"fs-12 fc-black\"\r\n icon=\"settings\"\r\n slot=\"prefix\"\r\n ></ds-icon>\r\n </ds-button>\r\n\r\n <ds-button\r\n (click)=\"\r\n $event.stopPropagation(); action?.onClick(element)\r\n \"\r\n *ngIf=\"\r\n action?.action === Actions.START &&\r\n element?.isFinalize\r\n \"\r\n size=\"small\"\r\n >\r\n <span class=\"fs-12\">\r\n {{ action?.actionName | translate }}\r\n </span>\r\n <ds-icon\r\n class=\"fs-16\"\r\n icon=\"media-play\"\r\n slot=\"prefix\"\r\n ></ds-icon>\r\n </ds-button>\r\n\r\n <!-- <ds-button [color]=\"action?.actionColor\" size=\"small\"\r\n *ngIf=\"action?.action === 'customAction'\"\r\n (click)=\"$event.stopPropagation();action?.onClick(element)\" shape=\"{{action?.actionShape}}\" [class]=\"action?.actionColor\"\r\n ></ds-button> -->\r\n\r\n <ds-button\r\n (click)=\"\r\n $event.stopPropagation(); action?.onClick(element)\r\n \"\r\n *ngIf=\"action?.action === Actions.CUSTOMACTION\"\r\n [class]=\"action?.actionColor\"\r\n [color]=\"action?.actionColor\"\r\n shape=\"{{ action?.actionShape }}\"\r\n size=\"small\"\r\n >\r\n <span\r\n class=\"fs-12 fc-{{ action?.actionFontColor }}\"\r\n >\r\n {{ action?.actionName | translate }}\r\n </span>\r\n </ds-button>\r\n <ds-button\r\n (click)=\"\r\n $event.stopPropagation(); action?.onClick(element)\r\n \"\r\n *ngIf=\"\r\n action?.action === Actions.CUSTOMACTIONMANAGE &&\r\n (element.contractStatus.id == 7 ||\r\n element.contractStatus.id == 1)\r\n \"\r\n [class]=\"action?.actionColor\"\r\n [color]=\"action?.actionColor\"\r\n shape=\"{{ action?.actionShape }}\"\r\n size=\"small\"\r\n >\r\n <span\r\n class=\"fs-12 fc-{{ action?.actionFontColor }}\"\r\n >\r\n {{ action?.actionName | translate }}\r\n </span>\r\n </ds-button>\r\n\r\n <ds-button\r\n (click)=\"\r\n $event.stopPropagation(); action?.onClick(element)\r\n \"\r\n *ngIf=\"\r\n action?.action === Actions.CUSTOMACTIONEXTEND &&\r\n element.contractStatus.id == 7\r\n \"\r\n [class]=\"action?.actionColor\"\r\n [color]=\"action?.actionColor\"\r\n shape=\"{{ action?.actionShape }}\"\r\n size=\"small\"\r\n >\r\n <span\r\n class=\"fs-12 fc-{{ action?.actionFontColor }}\"\r\n >\r\n {{ action?.actionName | translate }}\r\n </span>\r\n </ds-button>\r\n <ds-button\r\n (click)=\"\r\n $event.stopPropagation(); action?.onClick(element)\r\n \"\r\n *ngIf=\"\r\n action?.action === Actions.CUSTOMACTIONDETAILS\r\n \"\r\n [class]=\"action?.actionColor\"\r\n [color]=\"action?.actionColor\"\r\n shape=\"{{ action?.actionShape }}\"\r\n size=\"small\"\r\n >\r\n <span\r\n class=\"fs-12 fc-{{ action?.actionFontColor }}\"\r\n >\r\n {{ action?.actionName | translate }}\r\n </span>\r\n </ds-button>\r\n <ds-status\r\n *ngIf=\"action?.action === Actions.STATUS\"\r\n [status]=\"action?.Status.status\"\r\n class=\"fs-12 statusAction w-100\"\r\n >\r\n <span class=\"fc-black\">\r\n {{ action?.Status.title | translate }}\r\n </span>\r\n </ds-status>\r\n </ng-container>\r\n </ng-container>\r\n </ng-container>\r\n\r\n <ng-container *ngIf=\"columnsConfig[i]?.actions?.length > 6\">\r\n <ds-button\r\n #statusMenuTrigger=\"matMenuTrigger\"\r\n (click)=\"$event.stopPropagation()\"\r\n *ngIf=\"columnsConfig[i]?.actions?.length > 1\"\r\n [matMenuTriggerFor]=\"statusMenu\"\r\n class=\"dots\"\r\n shape=\"text\"\r\n size=\"small\"\r\n >\r\n <ds-icon\r\n class=\"fs-20 fc-dark-gray\"\r\n icon=\"dots\"\r\n ></ds-icon>\r\n </ds-button>\r\n\r\n <mat-menu #statusMenu=\"matMenu\">\r\n <button\r\n (click)=\"action?.onClick(element)\"\r\n *ngFor=\"let action of columnsConfig[i]?.actions\"\r\n mat-menu-item\r\n >\r\n <span class=\"fs-12 fc-black\"\r\n >{{ action?.actionName | translate }}\r\n </span>\r\n </button>\r\n </mat-menu>\r\n </ng-container>\r\n </div>\r\n </ng-container>\r\n <ng-container *ngSwitchCase=\"'specs'\">\r\n @if(element?.[column]){\r\n <span\r\n #statusMenuTrigger=\"matMenuTrigger\"\r\n (click)=\"$event.stopPropagation()\"\r\n [matMenuTriggerFor]=\"specsMenu\"\r\n [ngClass]=\"columnsConfig[i].type\"\r\n class=\"{{\r\n columnsConfig[i].type\r\n }} fc-coral underline cursor-pointer\"\r\n >\r\n {{ columnsConfig[i].clickableText | translate }}\r\n </span>\r\n }\r\n\r\n <mat-menu #specsMenu=\"matMenu\" class=\"p-4 text-center\">\r\n <span class=\"fs-14\">\r\n {{ element[column] }}\r\n </span>\r\n </mat-menu>\r\n </ng-container>\r\n\r\n <!--<div\r\n *ngSwitchCase=\"'specs'\" [ngClass]=\"columnsConfig[i].type\"\r\n class=\"d-flex gap-1\">\r\n {{ element[column] | json }}\r\n <ng-container *ngFor=\"let item of element[column]\">\r\n\r\n <div\r\n class=\"progress-container default-progress medium radius-0 \"\r\n matTooltip=\"Team assignment {{item.value}}%\" matTooltipPosition=\"below\">\r\n <div\r\n [style.width.%]=\"item.value\"\r\n class=\"progress-bar bg-color-{{item.color}}\"></div>\r\n </div>\r\n </ng-container>\r\n\r\n </div>-->\r\n\r\n <span\r\n *ngSwitchDefault\r\n [ngClass]=\"columnsConfig[i].type\"\r\n class=\"text-nowrap\"\r\n matTooltip=\" {{\r\n columnsConfig[i].arKey\r\n ? translateService.currentLang == 'ar'\r\n ? mapText(columnsConfig[i].arKey, element[column])\r\n : mapText(columnsConfig[i].enKey, element[column])\r\n : element[column]\r\n ? element[column]\r\n : '-'\r\n }}\"\r\n matTooltipPosition=\"below\"\r\n >\r\n {{\r\n columnsConfig[i].arKey\r\n ? translateService.currentLang == \"ar\"\r\n ? mapText(columnsConfig[i].arKey, element[column])\r\n : mapText(columnsConfig[i].enKey, element[column])\r\n : element[column]\r\n ? element[column]\r\n : \"-\"\r\n }}\r\n </span>\r\n </ng-container>\r\n </td>\r\n </ng-container>\r\n </ng-container>\r\n }\r\n </ng-container>\r\n }\r\n\r\n <tr *matHeaderRowDef=\"columns; sticky: true\" mat-header-row></tr>\r\n <tr\r\n (click)=\"clickRow(row)\"\r\n *matRowDef=\"let row; columns: columns\"\r\n [ngClass]=\"{ 'selected-row': row?.fastTrackSeen === false }\"\r\n mat-row\r\n role=\"button\"\r\n ></tr>\r\n </table>\r\n }\r\n </ng-container>\r\n } @if(isLoading){\r\n <ds-loading-table [cols]=\"columns.length\" [rows]=\"5\"></ds-loading-table>\r\n } @if(!isLoading && dataSource.filteredData?.length == 0){\r\n <ds-message\r\n [label]=\"'global.noItemsToDisplay' | translate\"\r\n type=\"emptyList\"\r\n ></ds-message>\r\n }\r\n</div>\r\n@if(dataSource.filteredData?.length && hasPaginator){\r\n<mat-paginator\r\n #paginator\r\n (page)=\"pageChanged($event)\"\r\n [length]=\"totalElements\"\r\n [pageIndex]=\"currentPage\"\r\n [pageSizeOptions]=\"[5, 10, 15, 20, 100]\"\r\n [pageSize]=\"pageSize\"\r\n aria-label=\"Select page\"\r\n showFirstLastButtons\r\n>\r\n</mat-paginator>\r\n}\r\n","import {Component, CUSTOM_ELEMENTS_SCHEMA} from '@angular/core';\r\nimport {CoreI18nService, CoreService, SidenavService} from '../../../services';\r\n\r\n@Component({\r\n selector: 'app-approvals',\r\n templateUrl: './approvals.component.html',\r\n styleUrls: ['./approvals.component.scss'],\r\n standalone: true,\r\n schemas: [CUSTOM_ELEMENTS_SCHEMA],\r\n imports: []\r\n})\r\nexport class ApprovalsComponent {\r\n\r\n constructor(private readonly sidenavService: SidenavService,\r\n public i18n: CoreI18nService,\r\n public coreService: CoreService\r\n ) { }\r\n\r\n\r\n\r\n closeSidenav() {\r\n this.sidenavService.publish('close', null);\r\n }\r\n\r\n}\r\n","<section class=\"main-sidenav\">\r\n <div class=\"sidenav-title\">\r\n <h3>{{ i18n.translate('approvalCycle') }}</h3>\r\n <ds-button (click)=\"closeSidenav()\" icon>\r\n <ds-icon icon=\"close\" class=\"fs-20 fc-black\"></ds-icon>\r\n </ds-button>\r\n </div>\r\n <div class=\"sidenav-body p-4\">\r\n @if (coreService.approvals) {\r\n <ds-approvals approvalsData=\"{{coreService.approvals}}\"></ds-approvals>\r\n } @else {\r\n <ds-message label=\"{{i18n.translate('NoData2')}}\"></ds-message>\r\n }\r\n </div>\r\n</section>\r\n","import {Component, CUSTOM_ELEMENTS_SCHEMA, DestroyRef, inject, Input} from '@angular/core';\r\nimport * as Constants from '../../../constants/constants';\r\nimport {CoreI18nService, CoreService, SidenavService} from '../../../services';\r\nimport {Form, Section} from '../../../interfaces';\r\nimport {ApprovalsComponent} from '../approvals/approvals.component';\r\nimport {ToastrService} from \"ngx-toastr\";\r\nimport {SatPopoverModule} from \"@ncstate/sat-popover\";\r\nimport { takeUntilDestroyed } from '@angular/core/rxjs-interop';\r\n\r\nconst dangerStatusValues = [\r\n Constants.FORM_STATUS_REJECTED,\r\n Constants.FORM_STATUS_CANCELLED,\r\n 'deny',\r\n 'reject',\r\n 'unsatisfied',\r\n 'cancel'\r\n];\r\n\r\nconst warningStatusValues = [\r\n Constants.FORM_STATUS_PENDING,\r\n 'pending'\r\n];\r\n\r\n@Component({\r\n selector: 'lib-approvals-workflow',\r\n templateUrl: './approvals-workflow.component.html',\r\n styleUrls: ['./approvals-workflow.component.scss'],\r\n standalone: true,\r\n imports: [\r\n SatPopoverModule\r\n ],\r\n schemas: [CUSTOM_ELEMENTS_SCHEMA]\r\n})\r\nexport class ApprovalsWorkflowComponent {\r\n @Input() section: Section;\r\n @Input() form: Form;\r\n approvals: unknown[] = [];\r\n loading = false;\r\n destroyRef = inject(DestroyRef);\r\n\r\n constructor(\r\n public i18n: CoreI18nService,\r\n private readonly sidenavService: SidenavService,\r\n private readonly coreService: CoreService,\r\n private readonly toasterService: ToastrService\r\n ) { }\r\n\r\n getApprovals() {\r\n if (this.isLoading()) {\r\n return;\r\n }\r\n\r\n this.initializeApprovals();\r\n this.coreService.perspectiveApproves(this.section.body.details).pipe(\r\n takeUntilDestroyed(this.destroyRef)\r\n ).subscribe(\r\n response => this.handleResponse(response),\r\n err => this.handleError(err)\r\n );\r\n }\r\n\r\n isLoading(): boolean {\r\n return this.loading;\r\n }\r\n\r\n initializeApprovals() {\r\n this.approvals = [];\r\n this.loading = true;\r\n }\r\n\r\n handleResponse(response: any) {\r\n this.loading = false;\r\n if (response?.approvals) {\r\n this.approvals = response.approvals.map(approval => this.createApprovalObject(approval));\r\n this.showProspectiveApprovals();\r\n }\r\n }\r\n\r\n createApprovalObject(approval) {\r\n const stageDetails = this.getStageDetails(approval);\r\n const status = stageDetails ? this.getClassBasedOnStatus(stageDetails.header.status) : '';\r\n return {\r\n id: 1,\r\n name: approval.value,\r\n title: approval.key,\r\n image: `/group/i-gate/wm-bpm/forms/-/proxy/portrait?email=${approval.key}`,\r\n status,\r\n statusLabel: status\r\n };\r\n }\r\n\r\n getStageDetails(approval) {\r\n return this.form.sections.find(stage =>\r\n stage.id === `${(approval?.role)?.toLowerCase()}Approval`\r\n );\r\n }\r\n\r\n handleError(err: any) {\r\n this.loading = false;\r\n err?.error?.meta?.messages?.forEach(msg => {\r\n this.toasterService.error(msg.message);\r\n });\r\n }\r\n\r\n transformStatus(status: string): string {\r\n return status?.toLowerCase() || '';\r\n }\r\n\r\n getClassBasedOnStatus(status: string) {\r\n const lowerStatus = this.transformStatus(status);\r\n\r\n if (!status ||\r\n warningStatusValues.includes(lowerStatus)) {\r\n return 'success';\r\n }\r\n\r\n if (dangerStatusValues.find(value => lowerStatus.includes(value))) {\r\n return 'danger';\r\n }\r\n\r\n if (warningStatusValues.find(value => lowerStatus.includes(value))) {\r\n return 'warning';\r\n }\r\n\r\n return 'success';\r\n }\r\n\r\n showProspectiveApprovals() {\r\n this.coreService.approvals = JSON.stringify(this.approvals);\r\n this.sidenavService.publish('open', ApprovalsComponent);\r\n }\r\n\r\n}\r\n","<ds-button\r\n color=\"white\" shape=\"text\" square size=\"small\"\r\n (click)=\"getApprovals()\">\r\n <slot name=\"prefix\">\r\n @if (loading) {\r\n <ds-icon class=\"sfi sfi-spinner d-inline-block spin fc-coral fs-30-imp\"></ds-icon>\r\n } @else {\r\n <ds-icon icon=\"workflow\" class=\"fs-24\"></ds-icon>\r\n }\r\n </slot>\r\n</ds-button>\r\n","import {\r\n AfterViewInit,\r\n ChangeDetectorRef,\r\n Component,\r\n CUSTOM_ELEMENTS_SCHEMA,\r\n DestroyRef,\r\n EventEmitter,\r\n inject,\r\n Input,\r\n NO_ERRORS_SCHEMA,\r\n Output\r\n} from '@angular/core';\r\nimport * as constants from \"../../../constants\";\r\nimport {NgClass, NgForOf, NgIf} from \"@angular/common\";\r\nimport {InputComponent} from \"../form-field\";\r\nimport {ActionStateService, CoreI18nService, CoreService, SidenavService} from \"../../../services\";\r\nimport {Form, Section} from \"../../../interfaces\";\r\nimport {SubmitDialogComponent} from \"../dialogs/submit-dialog/submit-dialog.component\";\r\nimport {NoopScrollStrategy} from \"@angular/cdk/overlay\";\r\nimport {MatDialog} from \"@angular/material/dialog\";\r\nimport {FormGroup} from \"@angular/forms\";\r\nimport {ToastrService} from \"ngx-toastr\";\r\nimport {ApprovalsWorkflowComponent} from \"../../app-component-sections/approvals-workflow/approvals-workflow.component\";\r\nimport {takeUntilDestroyed} from '@angular/core/rxjs-interop';\r\n\r\n@Component({\r\n selector: 'lib-action-buttons',\r\n templateUrl: './action-buttons.component.html',\r\n styleUrl: './action-buttons.component.scss',\r\n standalone: true,\r\n schemas: [CUSTOM_ELEMENTS_SCHEMA, NO_ERRORS_SCHEMA],\r\n imports: [\r\n NgClass,\r\n InputComponent,\r\n NgIf,\r\n NgForOf,\r\n ApprovalsWorkflowComponent\r\n ]\r\n})\r\nexport class ActionButtonsComponent implements AfterViewInit {\r\n @Input() lovOptions: any[];\r\n @Input() lovType: string;\r\n @Input() fieldsForm: FormGroup;\r\n @Input() form: Form;\r\n @Input() section: Section;\r\n @Input() sections: Section[];\r\n @Input() showApprovalCycle: boolean = true;\r\n @Input() customCall: boolean = false;\r\n @Output() resetFormEmit: EventEmitter<any> = new EventEmitter();\r\n @Output() customCallEmit: EventEmitter<any> = new EventEmitter();\r\n actionStates: { [action: string]: boolean };\r\n isSubmitting = {\r\n 'SUBMIT': false\r\n };\r\n submittingForm: boolean;\r\n destroyRef = inject(DestroyRef);\r\n\r\n\r\n constructor(public i18n: CoreI18nService,\r\n private actionStateService: ActionStateService,\r\n private coreService: CoreService,\r\n public dialog: MatDialog,\r\n private toasterService: ToastrService,\r\n private cdRef: ChangeDetectorRef\r\n ) {\r\n this.actionStateService.actionStates$.pipe(\r\n takeUntilDestroyed(this.destroyRef)\r\n ).subscribe(states => this.actionStates = states);\r\n\r\n }\r\n\r\n ngAfterViewInit() {\r\n this.lovOptions?.forEach((item) => {\r\n this.isSubmitting[item.value] = false\r\n })\r\n this.cdRef.detectChanges();\r\n }\r\n\r\n resetForm() {\r\n this.resetFormEmit.emit()\r\n }\r\n\r\n onSubmit(action: string) {\r\n if (this.customCall) {\r\n this.customCallEmit.emit(action)\r\n } else {\r\n this.submitForm(action, this.section)\r\n }\r\n }\r\n\r\n submitForm(action: string, section: Section) {\r\n const lastSection = this.sections[this.sections.length - 1];\r\n\r\n if (lastSection.body.details.decision) {\r\n lastSection.body.details.decision['key'] = action;\r\n }\r\n\r\n this.isSubmitting[action] = true;\r\n this.submittingForm = true;\r\n\r\n this.coreService.submitForm(section, action).pipe(\r\n takeUntilDestroyed(this.destroyRef)\r\n ).subscribe(\r\n (response: any) => {\r\n if (response) {\r\n this.isSubmitting[action] = false;\r\n this.success(response);\r\n }\r\n },\r\n (err: any) => {\r\n err?.error?.meta?.messages?.forEach((msg) => {\r\n this.submittingForm = false;\r\n this.isSubmitting[action] = false;\r\n this.toasterService.error(msg.message);\r\n });\r\n }\r\n );\r\n }\r\n\r\n success(response) {\r\n console.log('success', response)\r\n const dialogRef = this.dialog.open(SubmitDialogComponent, {\r\n data: response,\r\n panelClass: ['main-popup', 'confirm-dialog'],\r\n scrollStrategy: new NoopScrollStrategy(),\r\n });\r\n dialogRef.afterClosed().subscribe(() => {\r\n window.location.reload();\r\n });\r\n }\r\n\r\n buttonShape(item) {\r\n if (item?.value === constants.FORM_STATUS_REJECT || item?.value === constants.FORM_STATUS_CANCEL || item?.value === constants.FORM_STATUS_SEND_BACK) {\r\n return 'outline';\r\n }\r\n return '';\r\n }\r\n\r\n buttonColor(item) {\r\n if (item?.value === constants.FORM_STATUS_REJECT || item?.value === constants.FORM_STATUS_SEND_BACK) {\r\n return 'red';\r\n }\r\n return '';\r\n }\r\n}\r\n","<div class=\"mt-4\">\r\n @if (lovType === 'button') {\r\n <div class=\"d-flex align-items-center gap-3\">\r\n <ds-button shape=\"text\" color=\"red\" (click)=\"resetForm()\">\r\n <span class=\"fs-16 fw-medium\">{{ i18n.translate('reset') }}</span>\r\n </ds-button>\r\n @if (form?.sections?.length == 1 && showApprovalCycle) {\r\n <lib-approvals-workflow [section]=\"section\" [form]=\"form\"></lib-approvals-workflow>\r\n }\r\n <div class=\"d-flex flex-wrap align-items-center flex-grow-1 flex-row-reverse gap-3\">\r\n @for (item of lovOptions; track $index) {\r\n <ds-button\r\n loading=\"{{isSubmitting[item.value]}}\"\r\n [ngClass]=\"{'disabled': !actionStates[item.value] || submittingForm}\"\r\n shape=\"{{ buttonShape(item) }}\"\r\n color=\"{{ buttonColor(item) }}\"\r\n (click)=\"onSubmit(item?.value)\">\r\n {{ item?.['description'] }}\r\n </ds-button>\r\n }\r\n </div>\r\n </div>\r\n } @else {\r\n <div class=\"d-flex align-items-center gap-3\">\r\n <ds-button shape=\"text\" color=\"red\" (click)=\"resetForm()\">\r\n <span class=\"fs-16 fw-medium\">{{ i18n.translate('reset') }}</span>\r\n </ds-button>\r\n @if (form?.sections?.length == 1 && showApprovalCycle) {\r\n <lib-approvals-workflow [section]=\"section\" [form]=\"form\"></lib-approvals-workflow>\r\n }\r\n <div class=\"d-flex flex-wrap align-items-center flex-grow-1 flex-row-reverse gap-3\">\r\n <ds-button\r\n [ngClass]=\"{'disabled': !actionStates['SUBMIT'] || submittingForm}\"\r\n loading=\"{{isSubmitting['SUBMIT']}}\"\r\n (click)=\"onSubmit('SUBMIT')\">\r\n {{ i18n.translate('submit') }}\r\n </ds-button>\r\n </div>\r\n </div>\r\n }\r\n</div>\r\n","import { Component, CUSTOM_ELEMENTS_SCHEMA, Input } from '@angular/core';\r\nimport { CoreI18nService } from '../../../services';\r\nimport { MatAccordion, MatExpansionPanel, MatExpansionPanelTitle } from '@angular/material/expansion';\r\n\r\ninterface FAQ {\r\n title: string,\r\n content: string\r\n}\r\n\r\n@Component({\r\n selector: 'app-faqs',\r\n templateUrl: './faqs.component.html',\r\n styleUrls: ['./faqs.component.scss'],\r\n standalone: true,\r\n imports: [\r\n MatAccordion,\r\n MatExpansionPanel,\r\n MatExpansionPanelTitle\r\n ],\r\n schemas: [CUSTOM_ELEMENTS_SCHEMA]\r\n})\r\nexport class FaqsComponent {\r\n @Input() adminView = false;\r\n @Input() faqs: FAQ[];\r\n\r\n constructor(public i18n: CoreI18nService) { }\r\n\r\n\r\n}\r\n","<mat-accordion class=\"primary-accordion\">\r\n @for (item of faqs; track $index) {\r\n <mat-expansion-panel [expanded]=\"$index==0\" class=\"mb-4\" hideToggle #expansionPanel=\"matExpansionPanel\">\r\n @if (item.title) {\r\n <mat-expansion-panel-header class=\"expansion-header\">\r\n <mat-panel-title>\r\n <h3 class=\"fs-14 fw-medium fc-black mb-0 flex-grow-1 align-self-center\">{{ item.title }}</h3>\r\n @if (expansionPanel.expanded) {\r\n <ds-icon icon=\"minus\" class=\"fs-20 fc-dark-gray\"></ds-icon>\r\n } @else {\r\n <ds-icon icon=\"plus-1\" class=\"fs-20 fc-coral\"></ds-icon>\r\n }\r\n </mat-panel-title>\r\n\r\n </mat-expansion-panel-header>\r\n }\r\n <p class=\"fs-14 fc-dark-gray\">\r\n {{ item.content }}\r\n </p>\r\n </mat-expansion-panel>\r\n }\r\n</mat-accordion>\r\n","import { Component, CUSTOM_ELEMENTS_SCHEMA } from '@angular/core';\r\nimport { CoreI18nService, SidenavService } from '../../../services';\r\nimport { FaqsComponent } from '../faqs';\r\n\r\n@Component({\r\n selector: 'app-faq-sidenav',\r\n templateUrl: './faq-sidenav.component.html',\r\n styleUrls: ['./faq-sidenav.component.scss'],\r\n standalone: true,\r\n imports: [\r\n FaqsComponent\r\n ],\r\n schemas: [CUSTOM_ELEMENTS_SCHEMA]\r\n\r\n})\r\nexport class FaqSidenavComponent {\r\n\r\n data = [];\r\n\r\n constructor(private readonly sidenavService: SidenavService,\r\n public i18n: CoreI18nService) { }\r\n\r\n\r\n closeSidenav() {\r\n this.sidenavService.publish('close', FaqSidenavComponent);\r\n }\r\n\r\n}\r\n","<div class=\"main-sidenav\">\r\n <div class=\"sidenav-title\">\r\n <h3>{{i18n.translate('serviceBrief')}}</h3>\r\n\r\n <ds-button (click)=\"closeSidenav()\" icon>\r\n <ds-icon icon=\"close\" class=\"fs-20 fc-black\"></ds-icon>\r\n </ds-button>\r\n </div>\r\n <div class=\"sidenav-body\">\r\n <app-faqs [faqs]=\"data\"></app-faqs>\r\n </div>\r\n</div>\r\n","/* eslint-disable @angular-eslint/component-selector */\r\nimport {Component, Input} from '@angular/core';\r\nimport { MatDialog } from '@angular/material/dialog';\r\nimport { SidenavService } from '../../../services';\r\nimport {FaqSidenavComponent} from \"../../app-component-sections/faq-sidenav/faq-sidenav.component\";\r\n@Component({\r\n selector: 'app-title-section',\r\n templateUrl: './title-section.component.html',\r\n styleUrls: ['./title-section.component.scss']\r\n})\r\nexport class TitleSectionComponent {\r\n\r\n @Input() title = '';\r\n @Input() tooltip = true;\r\n // introJS = introJs();\r\n constructor(private sidenavService: SidenavService, private dialog: MatDialog ) { }\r\n\r\n\r\n openFaq(){\r\n this.sidenavService.publish('open', FaqSidenavComponent, 'end', 'over');\r\n }\r\n\r\n // add(): void {\r\n // const dialogRef = this.dialog.open(ConfirmationPopupComponent, {\r\n // width: '700px',\r\n // panelClass: ['confirm-popup', 'main-popup'],\r\n // data: {\r\n // title: 'Your request has been submitted Successfully',\r\n // id: '862456',\r\n // type: 'view',\r\n // icon: 'done',\r\n // },\r\n // });\r\n\r\n // // dialogRef.afterClosed().subscribe(() => {\r\n // // location.reload()\r\n // // });\r\n // }\r\n\r\n}\r\n","<header class=\"section-title\">\r\n <div class=\"d-flex align-items-center\">\r\n <h1 class=\"main-title mb-0\" >{{title}}</h1>\r\n <!-- <span class=\"mx-1\"></span>\r\n <button mat-icon-button class=\"btn button-transparent square\" *ngIf=\"tooltip\" (click)=\"openFaq()\">\r\n <span class=\"sfi sfi-info fc-dark-gray font-20-imp\" id=\"step1\"></span>\r\n </button>\r\n <span class=\"mx-1\"></span> -->\r\n </div>\r\n <div class=\"filter-actions\">\r\n <div class=\"filter-section\">\r\n <ng-content select=\"[filter]\"></ng-content>\r\n </div>\r\n <span class=\"mx-1\"></span>\r\n <ng-content select=\"[action]\"></ng-content>\r\n <ng-content select=\"[search]\"></ng-content>\r\n </div>\r\n</header>\r\n","import {Component, CUSTOM_ELEMENTS_SCHEMA, EventEmitter, Inject, Input, Output} from '@angular/core';\r\nimport {MAT_DIALOG_DATA} from '@angular/material/dialog';\r\nimport {CoreI18nService, SidenavService} from '../../../services';\r\nimport {ProfileInfoDrop} from '../../../interfaces';\r\nimport {NgIf} from '@angular/common';\r\nimport {InfoItemComponent} from \"../../shared-components\";\r\n\r\n\r\n@Component({\r\n selector: 'app-profile-section',\r\n templateUrl: './profile-section.component.html',\r\n styleUrls: ['./profile-section.component.scss'],\r\n standalone: true,\r\n imports: [\r\n InfoItemComponent,\r\n NgIf\r\n ],\r\n schemas: [CUSTOM_ELEMENTS_SCHEMA],\r\n providers: [\r\n {provide: MAT_DIALOG_DATA, useValue: { }}\r\n ]\r\n})\r\nexport class ProfileSectionComponent {\r\n\r\n @Input() profileFormVisibility: any;\r\n profile: ProfileInfoDrop;\r\n message: any;\r\n @Output() close: EventEmitter<boolean> = new EventEmitter();\r\n\r\n constructor(public i18n: CoreI18nService,\r\n private readonly sidenavService: SidenavService,\r\n @Inject(MAT_DIALOG_DATA) public data: any) {\r\n this.profile = sidenavService.data;\r\n }\r\n\r\n\r\n closeSidenav() {\r\n this.sidenavService.publish('close', null);\r\n }\r\n\r\n}\r\n","<div class=\"main-sidenav\">\r\n <div class=\"sidenav-title bc-white\">\r\n <h3> {{ profile?.fullName }}</h3>\r\n <ds-icon icon=\"close\" class=\"fc-black fs-20 p-3 cursor-pointer\" (click)=\"closeSidenav()\"></ds-icon>\r\n </div>\r\n <div class=\"sidenav-body p-0\">\r\n <div class=\"d-flex flex-column align-items-center gap-3 sidenav-user bc-off-white text-center\">\r\n <ds-avatar image=\"/group/i-gate/wm-bpm/forms/-/proxy/portrait?email={{profile?.employeeEmail}}\" class=\"mb-2\"></ds-avatar>\r\n <div class=\"d-flex flex-column gap-1\">\r\n <h4 class=\"fs-16 fc-black fw-medium mb-0\">{{ profile?.fullName }}</h4>\r\n <h6 class=\"fs-12 fc-dark-gray fw-normal mb-0\" *ngIf=\"profile?.jobPosition\">{{ profile?.jobPosition }}</h6>\r\n </div>\r\n <div class=\"d-flex flex-wrap gap-2\">\r\n <div class=\"fs-12 fc-black d-flex align-items-center gap-2 box-shadow bc-white radius-4 p-2 profile-box\">\r\n <ds-icon icon=\"mail-o\" class=\"fc-coral fs-20\"></ds-icon>\r\n <a [href]=\"'mailTo:' + profile?.employeeEmail\" class=\"fc-black\">{{ profile?.employeeEmail }}</a>\r\n </div>\r\n <div class=\"fs-12 fc-black d-flex align-items-center gap-2 box-shadow bc-white radius-4 p-2 profile-box\" *ngIf=\"profile?.businessPhone\">\r\n <ds-icon icon=\"phone\" class=\"fc-coral fs-20\"></ds-icon>\r\n <a [href]=\"'tel:' + profile?.businessPhone\" class=\"fc-black\">\r\n <bdi>{{ profile?.businessPhone }}</bdi>\r\n </a>\r\n </div>\r\n </div>\r\n </div>\r\n <div\r\n class=\"info-section no-bg px-4 pb-4\"\r\n *ngIf=\"\r\n profile?.departmentName ||\r\n profile?.generalDepartmentName ||\r\n profile?.directManagerName ||\r\n profile?.humanResourcesLocation ||\r\n profile?.nationality ||\r\n profile?.generalDepartmentCode\r\n \"\r\n >\r\n <app-info-item\r\n *ngIf=\"profile?.employeeNumber\"\r\n class=\"info-item w-100\"\r\n [label]=\"i18n.translate('employeeID')\"\r\n [value]=\"profile?.employeeNumber\"\r\n ></app-info-item>\r\n\r\n <app-info-item\r\n *ngIf=\"profile?.departmentName\"\r\n class=\"info-item w-100\"\r\n [label]=\"i18n.translate('departmentName')\"\r\n [value]=\"profile?.departmentName\"\r\n ></app-info-item>\r\n\r\n <app-info-item\r\n *ngIf=\"profile?.generalDepartmentName\"\r\n class=\"info-item w-100\"\r\n [label]=\"i18n.translate('generalDepartmentName')\"\r\n [value]=\"profile?.generalDepartmentName\"\r\n ></app-info-item>\r\n\r\n <app-info-item\r\n *ngIf=\"profile?.directManagerName\"\r\n class=\"info-item w-100\"\r\n [label]=\"i18n.translate('directManager')\"\r\n [value]=\"profile?.directManagerName\"\r\n ></app-info-item>\r\n\r\n <app-info-item\r\n *ngIf=\"profile?.humanResourcesLocation\"\r\n class=\"info-item w-100\"\r\n [label]=\"i18n.translate('humanResourcesLocation')\"\r\n [value]=\"profile?.humanResourcesLocation\"\r\n ></app-info-item>\r\n\r\n <app-info-item\r\n *ngIf=\"profile?.nationality\"\r\n class=\"info-item w-100\"\r\n [label]=\"i18n.translate('nationality') \"\r\n [value]=\"profile?.nationality\"\r\n ></app-info-item>\r\n\r\n <app-info-item\r\n *ngIf=\"profile?.sectorName\"\r\n class=\"info-item w-100\"\r\n [label]=\"i18n.translate('sector')\"\r\n [value]=\"profile?.sectorName\"\r\n ></app-info-item>\r\n\r\n </div>\r\n <ng-container\r\n *ngIf=\"\r\n !profile?.departmentName &&\r\n !profile?.generalDepartmentName &&\r\n !profile?.directManagerName &&\r\n !profile?.humanResourcesLocation &&\r\n !profile?.nationality &&\r\n !profile?.generalDepartmentCode\r\n \"\r\n >\r\n <ds-message type=\"emptyList\" [attr.label]=\"'noData' \"></ds-message>\r\n </ng-container>\r\n </div>\r\n</div>\r\n","export class Form {\r\n constructor(\r\n public header: Header,\r\n public profileInfoDrop: ProfileInfoDrop,\r\n public commentsDrop: CommentsDrop[],\r\n public inboxItem: InboxItem,\r\n public sections: Section[],\r\n public lovs: any,\r\n public messages: Messages | null, // Added null as a type\r\n public confidentialComments?: CommentsDrop[]\r\n ) {}\r\n}\r\n\r\nexport class Header {\r\n constructor(\r\n public requesterName: string,\r\n public requesterPhoto: string,\r\n public formId?: string,\r\n public creationDate?: string,\r\n public status?: {[key:string]: string},\r\n public details?: any\r\n ) {}\r\n}\r\n\r\nexport class ProfileInfoDrop {\r\n constructor(\r\n public onBehalfAuthorized?: boolean,\r\n public employeeNumber?: string,\r\n public employeeEmail?: string,\r\n public fullName?: string,\r\n public generalDepartmentName?: string,\r\n public jobPosition?: string,\r\n public sectorName?: string,\r\n public departmentName?: string,\r\n public generalDepartmentCode?: string,\r\n public humanResourcesLocation?: string,\r\n public nationality?: string,\r\n public businessPhone?: string,\r\n public directManagerName?: string,\r\n public seniorSectorName?: string\r\n ) {}\r\n}\r\n\r\nexport class CommentsDrop {\r\n constructor(\r\n public profilePicture?: string,\r\n public employeeName?: string,\r\n public commentBody?: string,\r\n public commentDate?: string,\r\n public attachment?: string,\r\n public jobPosition?: string\r\n ) {}\r\n}\r\n\r\nexport class Section<T = any> {\r\n constructor(\r\n public id?: string,\r\n public header?: SectionHeader,\r\n public body?: any\r\n ) {}\r\n}\r\n\r\nexport class SectionHeader {\r\n constructor(\r\n public processedBy?: string,\r\n public processingDate?: string,\r\n public personTo?: string,\r\n public personToThumbnail?: string,\r\n public delegatedTo?: string,\r\n public delegatedToThumbnail?: string,\r\n public status?: string,\r\n public hasComments?: boolean,\r\n public readOnly?: boolean\r\n ) {}\r\n}\r\n\r\nexport class Messages {\r\n constructor(\r\n public errorFields?: any,\r\n public info?: string[],\r\n public warning?: string[],\r\n public error?: string[],\r\n public originalMsgs?: Array<{code: string; message: string; type: string}>\r\n ) {}\r\n}\r\n\r\n\r\nexport class InboxItem {\r\n constructor(\r\n public flagPriority?: string,\r\n public isFlagged?: string,\r\n public canRequestFeedback?: string,\r\n public hasFeedback?: string,\r\n public isPending?: string,\r\n public isRequested?: string,\r\n public isResponded?: string\r\n ) {}\r\n}\r\n","import {MAT_DIALOG_DATA, MatDialogClose, MatDialogContent, MatDialogTitle} from '@angular/material/dialog';\r\nimport {Component, CUSTOM_ELEMENTS_SCHEMA, DestroyRef, inject, Inject, Input, OnInit} from '@angular/core';\r\nimport {CoreI18nService} from '../../../services';\r\nimport {Form, InboxItem, Messages, ProfileInfoDrop} from '../../../interfaces';\r\nimport * as Constants from '../../../constants/constants';\r\nimport {NgIf} from '@angular/common';\r\nimport {InfoItemComponent, SearchEmployeeComponent, TextareaComponent} from \"../../shared-components\";\r\nimport {FeedBackService} from \"../../../services\";\r\nimport { takeUntilDestroyed } from '@angular/core/rxjs-interop';\r\n\r\n@Component({\r\n selector: 'app-feedback-section',\r\n templateUrl: './feedback-section.component.html',\r\n styleUrls: ['./feedback-section.component.scss'],\r\n schemas: [CUSTOM_ELEMENTS_SCHEMA],\r\n imports: [\r\n MatDialogContent,\r\n NgIf,\r\n SearchEmployeeComponent,\r\n TextareaComponent,\r\n InfoItemComponent,\r\n MatDialogTitle,\r\n MatDialogClose\r\n ],\r\n standalone: true,\r\n})\r\nexport class FeedbackSectionComponent implements OnInit {\r\n @Input() inboxItem: InboxItem;\r\n @Input() profile: ProfileInfoDrop;\r\n form: Form;\r\n searchEmp: any;\r\n submitted = false;\r\n feedbackStatus: string = null;\r\n feedBackQuestion: string = null;\r\n feedBackResponse: string = null;\r\n isFeedbackValidated = false;\r\n isResponseValidated = false;\r\n employeeInput: string = null;\r\n feedbackId: string = null;\r\n destroyRef = inject(DestroyRef);\r\n\r\n constructor(\r\n public feedBackService: FeedBackService,\r\n public i18n: CoreI18nService,\r\n @Inject(MAT_DIALOG_DATA) public data: any\r\n ) {\r\n this.profile = data.profile;\r\n this.inboxItem = data.inboxItem;\r\n this.form = data.form;\r\n }\r\n\r\n ngOnInit() {\r\n if (!this.feedBackService.feedBackSent) {\r\n const item = this.inboxItem;\r\n if (item?.canRequestFeedback === 'true') {\r\n this.feedbackStatus = Constants.FEEDBACK_STATUS_REQUEST;\r\n this.feedBackService.feedbackForm = true;\r\n }\r\n\r\n if (\r\n item.isRequested === 'true' &&\r\n item.hasFeedback === 'true' &&\r\n item.isPending === 'false' &&\r\n item.isResponded === 'false'\r\n ) {\r\n this.feedbackStatus = Constants.FEEDBACK_STATUS_WAITING;\r\n this.feedBackService.pendingForm = true;\r\n this.getFeedBack();\r\n }\r\n\r\n if (\r\n item.isRequested === 'false' &&\r\n item.hasFeedback === 'true' &&\r\n item.isPending === 'true' &&\r\n item.isResponded === 'false'\r\n ) {\r\n this.feedbackStatus = Constants.FEEDBACK_STATUS_RESPOND;\r\n this.feedBackService.responderForm = true;\r\n this.getFeedBack();\r\n }\r\n\r\n if (\r\n item.isRequested === 'true' &&\r\n item.hasFeedback === 'true' &&\r\n item.isPending === 'false' &&\r\n item.isResponded === 'true'\r\n ) {\r\n this.feedbackStatus = Constants.FEEDBACK_STATUS_RESPONDED;\r\n this.feedBackService.pendingForm = true;\r\n this.getFeedBack();\r\n }\r\n /* const obj = {\r\n name: 'changeFeedbackStatus',\r\n data: this.feedbackStatus!\r\n };\r\n this._listenerService.filter(obj);*/\r\n }\r\n }\r\n\r\n getFeedBack() {\r\n this.feedBackService.getFeedback(this.profile.employeeEmail).pipe(\r\n takeUntilDestroyed(this.destroyRef)\r\n ).subscribe((Response: any) => {\r\n if (Response) {\r\n if (Response instanceof Messages) {\r\n this.showError(Response);\r\n } else {\r\n const resp = Response['items'][0];\r\n this.feedBackService.feedbackResponse.requestFrom =\r\n resp.from['firstName'] +\r\n ' ' +\r\n resp.from['middleName'] +\r\n ' ' +\r\n resp.from['familyName'];\r\n this.feedBackService.feedbackResponse.requestTo =\r\n resp.to['firstName'] +\r\n ' ' +\r\n resp.to['middleName'] +\r\n ' ' +\r\n resp.to['familyName'];\r\n this.feedBackService.feedbackResponse.requestFeedback =\r\n resp.query;\r\n this.feedBackService.feedbackResponse.responseFeedback =\r\n resp.response;\r\n this.feedbackId = resp.id;\r\n }\r\n }\r\n })\r\n }\r\n\r\n addFeedback() {\r\n if (this.isFeedbackValidated) {\r\n const email = this.searchEmp.personEmail,\r\n question = this.feedBackQuestion;\r\n this.feedBackService.submitFeedback({email, question}).pipe(\r\n takeUntilDestroyed(this.destroyRef)\r\n ).subscribe((Response: any) => {\r\n if (Response) {\r\n if (Response instanceof Messages) {\r\n this.showError(Response);\r\n } else {\r\n this.submitted = true;\r\n\r\n this.feedbackStatus = Constants.FEEDBACK_STATUS_WAITING;\r\n // const obj = {\r\n // name: 'changeFeedbackStatus',\r\n // data: this.feedbackStatus\r\n // };\r\n // this._listenerService.filter(obj);\r\n this.feedBackService.feedbackForm = false;\r\n this.feedBackService.pendingForm = true;\r\n this.feedBackService.feedBackSent = true;\r\n this.feedBackService.feedbackResponse.requestFrom =\r\n this.profile.fullName;\r\n this.feedBackService.feedbackResponse.requestTo =\r\n this.searchEmp.personName;\r\n this.feedBackService.feedbackResponse.requestFeedback =\r\n this.feedBackQuestion;\r\n }\r\n } else {\r\n this.submitted = true;\r\n }\r\n })\r\n }\r\n }\r\n\r\n\r\n addResponse() {\r\n if (this.isFeedbackValidated) {\r\n const feedbackId = this.feedbackId,\r\n feedbackResponse = this.feedBackResponse;\r\n this.feedBackService.addResponse({feedbackId, feedbackResponse}).pipe(\r\n takeUntilDestroyed(this.destroyRef)\r\n ).subscribe((Response: any) => {\r\n if (Response) {\r\n if (Response instanceof Messages) {\r\n this.showError(Response);\r\n } else {\r\n this.submitted = true;\r\n this.feedbackStatus = Constants.FEEDBACK_STATUS_RESPONDED;\r\n /*const obj = {\r\n name: 'changeFeedbackStatus',\r\n data: this.feedbackStatus\r\n };\r\n this._listenerService.filter(obj);*/\r\n this.feedBackService.responderForm = false;\r\n this.feedBackService.feedBackSent = true;\r\n this.feedBackService.pendingForm = true;\r\n this.feedBackService.feedbackResponse.responseFeedback =\r\n this.feedBackResponse;\r\n }\r\n } else {\r\n this.submitted = true;\r\n }\r\n })\r\n }\r\n }\r\n\r\n errorOccured = false;\r\n isSubmiting = false;\r\n errorMsg = '';\r\n\r\n showError(Response: any) {\r\n if (!this.form) {\r\n this.form = new Form(\r\n Constants.NO_VALUE,\r\n Constants.NO_VALUE,\r\n Constants.NO_VALUE,\r\n Constants.NO_VALUE,\r\n Constants.NO_VALUE,\r\n Constants.NO_VALUE,\r\n Response\r\n );\r\n } else {\r\n this.errorOccured = true;\r\n this.errorMsg = Response?.error[0];\r\n // this.form.messages = Response;\r\n }\r\n window.scrollTo(0, 0);\r\n }\r\n\r\n handleFeedbackQuestion(event) {\r\n this.feedBackQuestion = event;\r\n this.handleFeedbackValidation();\r\n }\r\n\r\n handleFeedbackResponse(event) {\r\n this.feedBackResponse = event;\r\n this.handleResponseValidation();\r\n }\r\n\r\n handleUserSelected(event) {\r\n this.searchEmp = {\r\n personEmail: event.personEmail,\r\n personName: event.personName\r\n };\r\n if (!this.feedBackQuestion) {\r\n return;\r\n }\r\n this.handleFeedbackValidation();\r\n }\r\n\r\n handleResponseValidation() {\r\n if (\r\n this.feedBackResponse.length >= 1 &&\r\n this.feedBackResponse.length < 500\r\n ) {\r\n this.isResponseValidated = true;\r\n } else {\r\n this.isResponseValidated = false;\r\n }\r\n }\r\n\r\n handleFeedbackValidation() {\r\n if (\r\n this.feedBackQuestion.length >= 1 &&\r\n this.feedBackQuestion.length < 500 &&\r\n this.searchEmp.personEmail\r\n ) {\r\n this.isFeedbackValidated = true;\r\n } else {\r\n this.isFeedbackValidated = false;\r\n }\r\n }\r\n}\r\n","<div class=\"popup-container\">\r\n <div class=\"d-flex align-items-center justify-content-between\" mat-dialog-title>\r\n <h3>{{i18n.translate('requestFeedback')}}</h3>\r\n <ds-button square icon matDialogClose>\r\n <ds-icon icon=\"close\" class=\"fs-20 fc-black\"></ds-icon>\r\n </ds-button>\r\n </div>\r\n <mat-dialog-content>\r\n <div class=\"d-flex flex-column align-items-center justify-content-center py-4\" *ngIf=\"submitted\">\r\n <div class=\"text-center mb-4\">\r\n <svg width=\"79\" height=\"76\" viewBox=\"0 0 79 76\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\">\r\n <path\r\n d=\"M59.9804 0.0998676L1.39239 19.2479C1.02223 19.3692 0.69498 19.5948 0.44999 19.8976C0.205 20.2005 0.0526985 20.5676 0.0113985 20.955C-0.0299016 21.3423 0.0415576 21.7333 0.217184 22.081C0.39281 22.4287 0.665128 22.7183 1.00139 22.9149L23.1454 35.7899C23.487 35.9886 23.8794 36.0828 24.274 36.0608C24.6686 36.0388 25.0481 35.9014 25.3654 35.6659L31.5894 31.0439L26.9674 37.2679C26.7318 37.5852 26.5944 37.9646 26.5722 38.3591C26.5499 38.7537 26.6439 39.1461 26.8424 39.4879L39.7174 61.6289C39.9138 61.9652 40.2031 62.2377 40.5506 62.4135C40.8981 62.5894 41.289 62.6611 41.6763 62.6201C42.0636 62.5791 42.4308 62.4272 42.7338 62.1825C43.0369 61.9378 43.2628 61.6108 43.3844 61.2409L62.5294 2.65187C62.6458 2.29686 62.6615 1.91654 62.5749 1.55313C62.4883 1.18971 62.3026 0.857401 62.0386 0.593071C61.7746 0.328741 61.4425 0.142726 61.0792 0.0556665C60.7159 -0.0313933 60.3355 -0.0160937 59.9804 0.0998676ZM40.9434 55.6999L31.0014 38.6069L42.9894 22.4689C43.2797 22.0798 43.4202 21.5993 43.3852 21.1152C43.3502 20.631 43.142 20.1757 42.7988 19.8325C42.4556 19.4893 42.0002 19.2811 41.5161 19.2461C41.032 19.2111 40.5514 19.3516 40.1624 19.6419L24.0254 31.6279L6.93339 21.6889L57.4514 5.18087L40.9434 55.6999ZM21.2134 44.2759L7.80139 57.6909C7.42253 58.0701 6.90853 58.2833 6.37246 58.2836C5.83638 58.2839 5.32215 58.0712 4.94289 57.6924C4.56363 57.3135 4.35041 56.7995 4.35013 56.2634C4.34985 55.7274 4.56253 55.2131 4.94139 54.8339L18.3564 41.4189C18.7353 41.04 19.2491 40.8272 19.7849 40.8272C20.3207 40.8272 20.8345 41.04 21.2134 41.4189C21.5923 41.7977 21.8051 42.3116 21.8051 42.8474C21.8051 43.3832 21.5923 43.897 21.2134 44.2759ZM3.49139 44.7839C3.30378 44.5963 3.15495 44.3736 3.05341 44.1285C2.95187 43.8834 2.89961 43.6207 2.89961 43.3554C2.89961 43.0901 2.95187 42.8274 3.05341 42.5823C3.15495 42.3371 3.30378 42.1144 3.49139 41.9269L8.78439 36.6339C9.16326 36.255 9.6771 36.0422 10.2129 36.0422C10.7487 36.0422 11.2625 36.255 11.6414 36.6339C12.0203 37.0127 12.2331 37.5266 12.2331 38.0624C12.2331 38.5982 12.0203 39.112 11.6414 39.4909L6.34939 44.7839C6.1618 44.9716 5.93903 45.1206 5.69384 45.2222C5.44864 45.3238 5.18582 45.3762 4.92039 45.3762C4.65497 45.3762 4.39215 45.3238 4.14695 45.2222C3.90176 45.1206 3.67899 44.9716 3.49139 44.7839ZM26.0014 50.9899C26.189 51.1774 26.3378 51.4001 26.4394 51.6453C26.5409 51.8904 26.5932 52.1531 26.5932 52.4184C26.5932 52.6837 26.5409 52.9464 26.4394 53.1915C26.3378 53.4366 26.189 53.6593 26.0014 53.8469L20.7014 59.1409C20.3225 59.5197 19.8087 59.7326 19.2729 59.7326C18.7371 59.7326 18.2233 59.5197 17.8444 59.1409C17.4655 58.762 17.2527 58.2482 17.2527 57.7124C17.2527 57.1766 17.4655 56.6627 17.8444 56.2839L23.1374 50.9909C23.325 50.8032 23.5477 50.6544 23.7928 50.5529C24.0379 50.4513 24.3006 50.3991 24.5659 50.3991C24.8312 50.3991 25.0939 50.4513 25.339 50.5529C25.5841 50.6544 25.8068 50.8032 25.9944 50.9909L26.0014 50.9899Z\"\r\n fill=\"#8E9AA0\" />\r\n <path\r\n d=\"M58.0015 75.3119C69.0472 75.3119 78.0015 66.3576 78.0015 55.3119C78.0015 44.2662 69.0472 35.3119 58.0015 35.3119C46.9558 35.3119 38.0015 44.2662 38.0015 55.3119C38.0015 66.3576 46.9558 75.3119 58.0015 75.3119Z\"\r\n fill=\"#00C48C\" />\r\n <path\r\n d=\"M56.8804 57.3183L54.0346 54.4725L52.9743 55.5336L56.8774 59.4367L65.8354 50.5267L65.4927 50.0138C63.8557 47.5812 61.1134 46.002 58.0015 46.002C53.0313 46.002 49.0015 50.031 49.0015 55.002C49.0015 59.9729 53.0305 64.002 58.0015 64.002C62.9716 64.002 67.0007 59.9729 67.0015 55.0035H65.5017C65.5017 55.005 65.5017 55.0072 65.5017 55.0095C65.5017 59.1503 62.1453 62.5067 58.0045 62.5067C53.8637 62.5067 50.5072 59.1503 50.5072 55.0095C50.5072 50.8686 53.8637 47.5122 58.0045 47.5122C60.3793 47.5122 62.4962 48.6168 63.87 50.3392L63.882 50.3542L56.8804 57.3183Z\"\r\n fill=\"white\" />\r\n </svg>\r\n\r\n </div>\r\n <h2 class=\"fs-16 fw-medium fc-black mb-4 text-center\">\r\n {{i18n.translate('submittedSuccessfully')}}\r\n </h2>\r\n </div>\r\n\r\n <ng-container *ngIf=\"!submitted\">\r\n <div class=\"mb-3\" *ngIf=\"feedBackService.feedbackForm \">\r\n <app-search-employee #employee label=\"{{i18n.translate('requestTo')}}\" [field]=\"searchEmp\"\r\n [labelTextReadMode]=\"i18n.translate('requestTo')\" [labelTextWriteMode]=\"i18n.translate('requestTo')\"\r\n [name]=\"'searchEmp'\" (emitedValue)=\"handleUserSelected($event)\">\r\n </app-search-employee>\r\n <app-textarea #request [field]=\"employeeInput\" name=\"employeeInput\" label=\"{{i18n.translate('feedback')}}\"\r\n [required]=\"true\" [minLength]='1' (emitedValue)=\"handleFeedbackQuestion($event)\" [maxLength]='500'\r\n [errorMessage]=\"i18n.translate('lenghtMin1Max500')\">\r\n </app-textarea>\r\n </div>\r\n\r\n <div class=\"info-section\" *ngIf=\"!feedBackService.feedbackForm\">\r\n <ng-container *ngIf=\"feedBackService.responderForm\">\r\n <app-info-item class=\"info-item w-100\" label=\"{{i18n.translate('requestFrom')}}\"\r\n value=\"{{feedBackService?.feedbackResponse?.requestFrom}}\"></app-info-item>\r\n <app-info-item class=\"info-item w-100\" label=\"{{i18n.translate('requestTo')}}\"\r\n value=\"{{feedBackService?.feedbackResponse?.requestTo}}\"></app-info-item>\r\n <app-info-item class=\"info-item w-100\" label=\"{{i18n.translate('feedbackQuestion')}}\"\r\n value=\"{{feedBackService?.feedbackResponse?.requestFeedback}}\"></app-info-item>\r\n <app-info-item class=\"info-item w-100\" label=\"{{i18n.translate('feedback')}}\"\r\n value=\"{{feedBackService?.feedbackResponse?.responseFeedback}}\"></app-info-item>\r\n <app-textarea #request class=\"full mx-3 mt-3 section-item\" [field]=\"employeeInput\" name=\"employeeInput\"\r\n label=\"{{i18n.translate('feedback')}}\" [required]=\"true\" [minLength]='1'\r\n (emitedValue)=\"handleFeedbackResponse($event)\" [maxLength]='500'\r\n [errorMessage]=\"i18n.translate('lenghtMin1Max500')\">\r\n </app-textarea>\r\n </ng-container>\r\n\r\n <ng-container *ngIf=\"feedBackService.pendingForm\" id=\"responce_form\">\r\n <app-info-item class=\"info-item w-100\" label=\"{{i18n.translate('requestFrom')}}\"\r\n value=\"{{feedBackService?.feedbackResponse?.requestFrom}}\"></app-info-item>\r\n <app-info-item class=\"info-item w-100\" label=\"{{i18n.translate('requestTo')}}\"\r\n value=\"{{feedBackService?.feedbackResponse?.requestTo}}\"></app-info-item>\r\n <app-info-item class=\"info-item w-100\" label=\"{{i18n.translate('feedbackQuestion')}}\"\r\n value=\"{{feedBackService?.feedbackResponse?.requestFeedback}}\"></app-info-item>\r\n <app-info-item class=\"info-item w-100\" label=\"{{i18n.translate('feedback')}}\"\r\n value=\"{{feedBackService?.feedbackResponse?.responseFeedback}}\"></app-info-item>\r\n\r\n </ng-container>\r\n </div>\r\n\r\n <div class=\"d-flex align-items-center justify-content-center w-100 gap-3\" *ngIf=\"!submitted\">\r\n <ds-button shape=\"outline\" matDialogClose>\r\n {{i18n.translate('Cancel')}}\r\n </ds-button>\r\n <ds-button *ngIf=\"feedBackService.feedbackForm\" (click)=\"addFeedback()\"\r\n disabled=\"{{!(isFeedbackValidated)}}\">\r\n {{i18n.translate('submit')}}\r\n </ds-button>\r\n <ds-button *ngIf=\"!feedBackService.feedbackForm && feedBackService.responderForm\"\r\n disabled=\"{{!(isResponseValidated)}}\" (click)=\"addResponse()\">\r\n {{i18n.translate('submit')}}\r\n </ds-button>\r\n </div>\r\n </ng-container>\r\n\r\n </mat-dialog-content>\r\n\r\n</div>\r\n","import {Component, CUSTOM_ELEMENTS_SCHEMA, DestroyRef, inject} from '@angular/core';\r\nimport {CoreI18nService, CoreService, SidenavService} from '../../../services';\r\nimport { takeUntilDestroyed } from \"@angular/core/rxjs-interop\";\r\n\r\n\r\n@Component({\r\n selector: 'app-activities',\r\n templateUrl: './activities.component.html',\r\n styleUrls: ['./activities.component.scss'],\r\n standalone: true,\r\n imports: [],\r\n schemas: [CUSTOM_ELEMENTS_SCHEMA]\r\n})\r\nexport class ActivitiesComponent {\r\n parsedData: string;\r\n destroyRef = inject(DestroyRef);\r\n\r\n constructor(\r\n private readonly sidenavService: SidenavService,\r\n public i18n: CoreI18nService,\r\n public coreService: CoreService\r\n ) {\r\n this.parsedData = JSON.stringify(this.coreService.activities)\r\n }\r\n\r\n downloadFile(event: any) {\r\n console.log(event.detail.value);\r\n const placeholder = event.target.nextElementSibling;\r\n \r\n this.coreService.loadFile(event.detail.value.id).pipe(\r\n takeUntilDestroyed(this.destroyRef)\r\n ).subscribe({\r\n next: (responseObject: { body: any }) => {\r\n const fileInformation = responseObject.body;\r\n const fileBlob = this.coreService.dataURItoBlob(fileInformation.fileContents);\r\n const file = new File([fileBlob], fileInformation.fileName, { type: fileInformation.mimeType });\r\n placeholder.href = URL.createObjectURL(file);\r\n placeholder.download = file.name;\r\n placeholder.click();\r\n },\r\n error: (error) => {\r\n console.error('Error loading file:', error);\r\n }\r\n });\r\n }\r\n\r\n\r\n closeSidenav() {\r\n this.sidenavService.publish('close', null);\r\n }\r\n}\r\n","<section class=\"main-sidenav\">\r\n <div class=\"sidenav-title\">\r\n <h3>{{ i18n.translate('commentHistory') }}</h3>\r\n\r\n <ds-button (click)=\"closeSidenav()\" icon>\r\n <ds-icon icon=\"close\" class=\"fs-20 fc-black\"></ds-icon>\r\n </ds-button>\r\n\r\n </div>\r\n <div class=\"sidenav-body\">\r\n @if (coreService.activities) {\r\n <ds-activity-log activitiesData=\"{{parsedData}}\" readOnly (downloadEvent)=\"downloadFile($event)\">\r\n </ds-activity-log>\r\n } @else {\r\n <ds-message label=\"{{i18n.translate('NoData1')}}\"></ds-message>\r\n }\r\n </div>\r\n</section>\r\n","import {Pipe, PipeTransform} from '@angular/core'\r\n\r\n@Pipe({\r\n name: 'statusClass',\r\n standalone: true,\r\n})\r\nexport class StatusStylePipe implements PipeTransform {\r\n transform(status: string): string {\r\n let statusClass = {\r\n APPROVED: 'success',\r\n STORED: 'success',\r\n GM_APPROVAL: 'success',\r\n COMPLETED: 'success',\r\n COMPLETE: 'success',\r\n ACCEPTED: 'success',\r\n SUBMIT: 'success',\r\n SUBMIT_TRAINING: 'success',\r\n VEHICLE_IS_AVAILABLE: 'success',\r\n VEHICLE_RECEIVED: 'success',\r\n RETRY: 'success',\r\n REJECT: 'danger',\r\n REJECTED: 'danger',\r\n AUTO_REJECT: 'danger',\r\n VEHICLE_IS_NOT_AVAILABLE: 'danger',\r\n SEND_TO_SAFETY_INSPECTOR: 'success',\r\n SEND_TO_DESIGN_TEAM: 'success',\r\n SEND_TO_SECURITY_SUPERVISOR: 'success',\r\n PENDING: 'warning',\r\n QUEUED: 'warning',\r\n UNACCEPTABLE: 'success',\r\n RECEIVED: 'success',\r\n CLOSED: 'success',\r\n\r\n SENT: 'info',\r\n\r\n SENDBACKTOREQUESTER: 'send_back',\r\n 'COLLECT_SITE_FEEDBACK': 'success',\r\n 'COLLECT_SITE_VISIT_FEEDBACK': 'success',\r\n 'SUBMIT_FEEDBACK': 'success',\r\n 'CONFIRM_SITE_HANDOVER': 'success',\r\n\r\n\r\n // \"SENDBACKTOREQUESTER\": \"send_back\",\r\n SEND_BACK_TO_REQUESTER: 'send_back',\r\n 'SEND BACK TO REQUESTER': 'send_back',\r\n SENDBACK: 'send_back',\r\n\r\n EXPIRED: 'expired',\r\n\r\n CANCELLED: 'pending',\r\n CANCELED: 'pending',\r\n SHIPMENT_DELIVERY_REJECTED: 'danger'\r\n }\r\n\r\n // status == 'SEND BACK TO REQUESTER' ? 'SENDBACKTOREQUESTER' : status\r\n\r\n return statusClass[status?.toUpperCase()] || 'success'\r\n }\r\n}\r\n","import {AfterViewInit, Component, CUSTOM_ELEMENTS_SCHEMA, DestroyRef, inject, OnInit} from \"@angular/core\";\r\nimport {CommonModule} from \"@angular/common\";\r\nimport {MatMenuModule} from \"@angular/material/menu\";\r\nimport {MatDialog, MatDialogModule} from \"@angular/material/dialog\";\r\nimport {FormBuilder, FormControl, FormGroup, ReactiveFormsModule, Validators} from \"@angular/forms\";\r\nimport {MatButtonToggleModule} from \"@angular/material/button-toggle\";\r\nimport {RouterModule} from \"@angular/router\";\r\nimport {TranslateModule} from \"@ngx-translate/core\";\r\nimport {CoreI18nService, CoreService, SidenavService} from \"../../../services\";\r\nimport {StatusStylePipe} from \"../../../pipes/status-style.pipe\";\r\nimport {ToastrService} from \"ngx-toastr\";\r\nimport {CdkConnectedOverlay, CdkOverlayOrigin} from \"@angular/cdk/overlay\";\r\nimport {CustomSearchableComponent} from \"../../shared-components\";\r\nimport { takeUntilDestroyed } from \"@angular/core/rxjs-interop\";\r\nimport {Subject} from \"rxjs\";\r\n\r\n@Component({\r\n selector: 'app-history',\r\n standalone: true,\r\n\r\n imports: [\r\n CommonModule,\r\n MatMenuModule,\r\n RouterModule,\r\n TranslateModule,\r\n MatDialogModule,\r\n ReactiveFormsModule,\r\n MatButtonToggleModule,\r\n StatusStylePipe,\r\n CdkOverlayOrigin,\r\n CustomSearchableComponent,\r\n CdkConnectedOverlay\r\n\r\n ],\r\n templateUrl: './previous-requests.component.html',\r\n styleUrls: ['./previous-requests.component.scss'],\r\n schemas: [CUSTOM_ELEMENTS_SCHEMA],\r\n})\r\nexport class PreviousRequestsComponent implements OnInit, AfterViewInit {\r\n previousRequests: any[] = []\r\n destroyRef = inject(DestroyRef);\r\n\r\n loading: boolean\r\n filterFormGroup: FormGroup;\r\n errorMessage: string\r\n isOpen: boolean = false;\r\n monthsOptions = [\r\n {key: '1', value: '1'},\r\n {key: '2', value: '2'},\r\n {key: '3', value: '3'},\r\n {key: '4', value: '4'},\r\n {key: '5', value: '5'},\r\n {key: '6', value: '6'},\r\n {key: '7', value: '7'},\r\n {key: '8', value: '8'},\r\n {key: '9', value: '9'},\r\n {key: '10', value: '10'},\r\n {key: '11', value: '11'},\r\n {key: '12', value: '12'}\r\n ];\r\n yearsOptions = [\r\n {key: new Date().getFullYear(), value: new Date().getFullYear()},\r\n {key: new Date().getFullYear() - 1, value: new Date().getFullYear() - 1},\r\n {key: new Date().getFullYear() - 2, value: new Date().getFullYear() - 2},\r\n {key: new Date().getFullYear() - 3, value: new Date().getFullYear() - 3}];\r\n\r\n statuses = []\r\n searchData = {\r\n year: null,\r\n month: null\r\n }\r\n\r\n constructor(public dialog: MatDialog,\r\n public readonly sidenavService: SidenavService,\r\n public coreService: CoreService,\r\n private readonly toasterService: ToastrService,\r\n public i18n: CoreI18nService,\r\n private readonly fb: FormBuilder\r\n ) {}\r\n\r\n /**\r\n * Initializes the component on initialization.\r\n * It creates a form and sets the available statuses based on the current language.\r\n *\r\n * @return {void}\r\n */\r\n ngOnInit() {\r\n this.createForm();\r\n this.statuses = [\r\n {key: \"APPROVED\", value: this.i18n.language == 'en' ? \"Approve\" : \"موافقة\"},\r\n {key: \"REJECTED\", value: this.i18n.language == 'en' ? \"Reject\" : \"مرفوض\"},\r\n {key: \"PENDING\", value: this.i18n.language == 'en' ? \"Pending\" : \"معلق\"}\r\n ]\r\n }\r\n\r\n // variables to manage subscription\r\n private readonly ngUnsubscribe: Subject<void> = new Subject<void>();\r\n\r\n// new helper methods for form controls\r\n /**\r\n * Generates form controls for the current month and year.\r\n *\r\n * @return {object} An object containing form controls for the current month and year.\r\n * - month: FormControl for the current month with Validators required\r\n * - year: FormControl for the current year with Validators required\r\n */\r\n private currentDateControl(): { [key: string]: FormControl } {\r\n const date = new Date();\r\n const month = date.getUTCMonth() + 1;\r\n const year = date.getFullYear();\r\n\r\n return {\r\n month: new FormControl({key: month, value: month}, Validators.required),\r\n year: new FormControl({key: year, value: year}, Validators.required),\r\n };\r\n }\r\n\r\n /**\r\n * Initializes a form group for filtering data.\r\n * It creates form controls for the current date and status.\r\n * Also sets up a subscription to listen for changes in the status control.\r\n *\r\n * @return {void}\r\n */\r\n createForm() {\r\n this.filterFormGroup = this.fb.group({\r\n ...this.currentDateControl(),\r\n status: new FormControl('', Validators.required)\r\n });\r\n this.filterFormGroup.get('status').valueChanges.pipe(\r\n takeUntilDestroyed(this.destroyRef)\r\n ).subscribe(value => {\r\n this.filterStatus()\r\n })\r\n }\r\n\r\n\r\n /**\r\n * Perform initialization after Angular has fully initialized a component's view.\r\n *\r\n * @return {void}\r\n */\r\n ngAfterViewInit() {\r\n if (this.coreService.historyDataLoaded) {\r\n this.previousRequests = this.coreService.historyData\r\n } else {\r\n this.getRequests()\r\n }\r\n }\r\n\r\n /**\r\n * Clear all filters and reset the form group to its initial state.\r\n * Sets the month and year filters to the current date's month and year respectively.\r\n * Sets the status filter to an empty string.\r\n * Toggles the isOpen property and triggers the filterStatus method.\r\n *\r\n * @return {void}\r\n */\r\n clearFilters() {\r\n this.filterFormGroup.reset()\r\n this.filterFormGroup.get('month').setValue({key: new Date().getUTCMonth() + 1, value: new Date().getUTCMonth() + 1})\r\n this.filterFormGroup.get('year').setValue({key: new Date().getFullYear(), value: new Date().getFullYear() + 1})\r\n this.filterFormGroup.get('status').setValue('')\r\n this.isOpen = !this.isOpen\r\n this.filterStatus()\r\n }\r\n\r\n /**\r\n * Toggles the isOpen property and triggers the getRequests() method.\r\n *\r\n * @return {void}\r\n */\r\n applyFilters() {\r\n this.isOpen = !this.isOpen\r\n this.getRequests()\r\n }\r\n\r\n /**\r\n * Retrieves request data based on form values.\r\n *\r\n * @return {void}\r\n */\r\n getRequests() {\r\n const formValues = this.getFormValues()\r\n if (this.areFormValuesEqual(this.searchData, formValues)) {\r\n this.filterStatus()\r\n } else {\r\n this.updateSearchData(formValues)\r\n this.requestCoreData()\r\n }\r\n }\r\n\r\n /**\r\n * Retrieves the form values including the year and month.\r\n *\r\n * @return {Object} Returns an object containing the year and month values.\r\n */\r\n getFormValues() {\r\n return {\r\n year: this.getYearValue(),\r\n month: this.getMonthValue(),\r\n }\r\n }\r\n\r\n /**\r\n * Retrieves the selected year value from the filter form group.\r\n *\r\n * @return The selected year value as a number.\r\n */\r\n private getYearValue(): number {\r\n return this.filterFormGroup.get('year').value?.key;\r\n }\r\n\r\n /**\r\n * Retrieves the month value from the filter form group.\r\n *\r\n * @return {number} The month value retrieved from the form group.\r\n */\r\n private getMonthValue(): number {\r\n return this.filterFormGroup.get('month').value?.key;\r\n }\r\n\r\n /**\r\n * Checks if the year and month values of two form objects are equal.\r\n *\r\n * @param {Object} first - The first form object to compare.\r\n * @param {Object} second - The second form object to compare.\r\n * @returns {boolean} - true if the year and month values are equal, otherwise false.\r\n */\r\n areFormValuesEqual(first, second) {\r\n return first.year == second.year && first.month == second.month\r\n }\r\n\r\n /**\r\n * Update the search data with the provided data.\r\n *\r\n * @param {Object} data - The new search data to update.\r\n *\r\n * @return {void}\r\n */\r\n updateSearchData(data) {\r\n this.searchData = data\r\n }\r\n\r\n /**\r\n * Sends a request to retrieve core data using the Core Service API.\r\n * Initializes loading and requests before making the call.\r\n *\r\n * @return {void}\r\n */\r\n requestCoreData() {\r\n this.initializeLoadingAndRequests()\r\n this.loading = true\r\n this.coreService.historyData = []\r\n this.previousRequests = []\r\n this.coreService.myRequests(this.searchData).pipe(\r\n takeUntilDestroyed(this.destroyRef)\r\n ).subscribe({\r\n next: (response: any) => {\r\n this.coreService.historyData = response.history;\r\n this.previousRequests = this.coreService.historyData\r\n this.coreService.historyDataLoaded = true\r\n this.filterStatus()\r\n },\r\n error: (err) => {\r\n this.loading = false;\r\n this.errorMessage = err?.error?.meta?.messages?.['0']?.message;\r\n this.toasterService.error(this.errorMessage)\r\n },\r\n complete: () => {\r\n this.loading = false;\r\n }\r\n });\r\n }\r\n \r\n\r\n /**\r\n * Initializes loading and requests.\r\n *\r\n * @return {void}\r\n */\r\n initializeLoadingAndRequests() {\r\n this.loading = true\r\n this.coreService.historyData = []\r\n this.previousRequests = []\r\n }\r\n\r\n /**\r\n * Handles successful response from a request.\r\n *\r\n * @param {Object} response - The response object containing history data.\r\n * @return {void}\r\n */\r\n handleRequestSuccess(response) {\r\n this.coreService.historyData = response.history\r\n this.previousRequests = this.coreService.historyData\r\n this.coreService.historyDataLoaded = true\r\n this.filterStatus()\r\n }\r\n\r\n /**\r\n * Handles the error received from a request\r\n *\r\n * @param {Object} err - The error object containing information about the error\r\n * @return {void}\r\n */\r\n handleRequestError(err) {\r\n this.loading = false\r\n this.errorMessage = err?.error?.meta?.messages?.['0']?.message\r\n this.toasterService.error(this.errorMessage)\r\n }\r\n\r\n /**\r\n * Filters the previous requests based on the status selected in the filter form.\r\n *\r\n * @return {void}\r\n */\r\n filterStatus() {\r\n const statusKey = this.filterFormGroup.get('status').value?.key;\r\n this.previousRequests = this.coreService.historyData\r\n let filterData: any[];\r\n\r\n if (statusKey) {\r\n filterData = this.previousRequests.filter((request) => request.form?.['formStatus']?.key === statusKey);\r\n } else {\r\n filterData = this.previousRequests;\r\n }\r\n\r\n this.previousRequests = filterData;\r\n }\r\n\r\n /**\r\n * Opens a form in a new window based on the provided form ID.\r\n *\r\n * @param {string} formId - The ID of the form to be opened.\r\n * @return {void}\r\n */\r\n viewForm(formId: string) {\r\n if (formId) {\r\n window.open('/group/i-gate/wm-bpm/forms?formId=' + formId);\r\n }\r\n }\r\n\r\n ngOnDestroy() {\r\n // emit the value to complete all active subscriptions\r\n this.ngUnsubscribe.next();\r\n this.ngUnsubscribe.complete();\r\n }\r\n\r\n}\r\n","<section class=\"main-sidenav history-sidenav\">\r\n <div class=\"sidenav-title\">\r\n <h3>{{ i18n.translate('PreviousRequests') }}</h3>\r\n <ds-button class=\"close-sidenav\" (click)=\"sidenavService.closeSidenav()\" icon>\r\n <ds-icon icon=\"close\" class=\"fs-20 fc-black\"></ds-icon>\r\n </ds-button>\r\n </div>\r\n\r\n <div class=\"sidenav-body bc-light-gray\">\r\n <section class=\"p-3\">\r\n <header class=\"d-flex align-items-center justify-content-between gap-2 mb-3\">\r\n <h2 class=\"fs-20 fw-medium fc-black mb-0 d-flex align-items-center flex-grow-1 gap-3\">\r\n {{ i18n.translate('AllRequests') }}\r\n <span class=\"title-count fs-14 fw-normal\">{{ previousRequests?.length ? previousRequests?.length : '0' }}</span>\r\n </h2>\r\n <ds-button icon size=\"small\" (click)=\"isOpen = !isOpen\" cdkOverlayOrigin #trigger=\"cdkOverlayOrigin\">\r\n <ds-icon icon=\"filter\" class=\"fc-coral fs-20\" slot=\"prefix\"></ds-icon>\r\n </ds-button>\r\n <mat-button-toggle-group\r\n class=\"icon-toggle flex-nowrap\"\r\n #pageView=\"matButtonToggleGroup\"\r\n (click)=\"$event.stopImmediatePropagation()\"\r\n value=\"list\"\r\n >\r\n <mat-button-toggle value=\"card\">\r\n <span class=\"sfi sfi-card fs-20\"></span>\r\n </mat-button-toggle>\r\n <mat-button-toggle value=\"list\">\r\n <span class=\"sfi sfi-list-dots fs-20\"></span>\r\n </mat-button-toggle>\r\n </mat-button-toggle-group>\r\n </header>\r\n\r\n @if (pageView.value === 'card') {\r\n <div class=\"history-cards-container\">\r\n @if (loading) {\r\n <ng-container>\r\n <div class=\"p-4 line-height-1 bc-white radius-6 box-shadow\" *ngFor=\"let row of [0,1,2,3]\">\r\n <div class=\"d-flex align-items-center gap-2 mb-3\">\r\n <h3 class=\"loading-bg fs-16 fw-medium flex-grow-1 mb-0 cursor-pointer underline fw-bold\"></h3>\r\n </div>\r\n <div class=\"row g-3\">\r\n <div class=\"d-flex flex-column col-6\">\r\n <span class=\"fs-11 fc-dark-gray mb-2 loading-bg\"></span>\r\n <span class=\"fs-12 fw-medium fc-black loading-bg\"></span>\r\n </div>\r\n <div class=\"d-flex flex-column col-6 justify-content-end align-items-end\">\r\n </div>\r\n </div>\r\n </div>\r\n </ng-container>\r\n } @else {\r\n <div class=\"p-4 line-height-1 bc-white radius-6 box-shadow\" *ngFor=\"let row of previousRequests\">\r\n <div class=\"d-flex align-items-center gap-2 mb-3\">\r\n <h3\r\n class=\"fs-16 fw-medium flex-grow-1 mb-0 cursor-pointer underline fw-bold\"\r\n (click)=\"viewForm(row?.form?.['formId'])\">{{ row?.form?.['formId'] }}</h3>\r\n </div>\r\n <div class=\"row g-3\">\r\n <div class=\"d-flex flex-column col-6\">\r\n <span class=\"fs-11 fc-dark-gray mb-2\">{{ i18n.translate('formTableCreationDate') }}</span>\r\n <span class=\"fs-12 fw-medium fc-black\">{{ row?.form?.['creationDate'] | date: 'dd/MM/yyyy hh:mm a' }}</span>\r\n </div>\r\n <div class=\"d-flex flex-column col-6 justify-content-end align-items-end\">\r\n\r\n <ds-status [attr.status]=\"row?.form?.formStatus?.key | statusClass\">\r\n {{ row?.form?.formStatus?.value }}\r\n </ds-status>\r\n </div>\r\n </div>\r\n </div>\r\n }\r\n\r\n </div>\r\n }\r\n @if (pageView.value === 'list') {\r\n <div class=\"table-responsive\">\r\n <table *ngIf=\"previousRequests?.length && !loading\">\r\n <thead>\r\n <tr>\r\n <th>{{ i18n.translate('formTableFormId') }}</th>\r\n <th>{{ i18n.translate('formTableCreationDate') }}</th>\r\n <th>{{ i18n.translate('Status') }}</th>\r\n </tr>\r\n </thead>\r\n\r\n <tbody *ngFor=\"let row of previousRequests\">\r\n <tr>\r\n <td>\r\n <span class=\"fw-medium cursor-pointer underline fw-bold \" (click)=\"viewForm(row?.form?.['formId'])\">\r\n {{ row?.form?.['formId'] }}\r\n </span>\r\n </td>\r\n <td>{{ row?.form?.['creationDate'] | date: 'dd/MM/yyyy hh:mm a' }}</td>\r\n <td>\r\n <ds-status [attr.status]=\"row?.form?.formStatus?.key | statusClass\">\r\n {{ row?.form?.formStatus?.value }}\r\n </ds-status>\r\n </td>\r\n </tr>\r\n </tbody>\r\n </table>\r\n <ds-loading-table *ngIf=\"loading\" [cols]=\"4\" [rows]=\"4\"></ds-loading-table>\r\n </div>\r\n }\r\n @if (!previousRequests?.length && !loading) {\r\n <ng-container *ngTemplateOutlet=\"emptyMessage\"></ng-container>\r\n }\r\n </section>\r\n </div>\r\n</section>\r\n\r\n<ng-template\r\n cdkConnectedOverlay\r\n [cdkConnectedOverlayHasBackdrop]=\"true\"\r\n (backdropClick)=\"isOpen = false\"\r\n [cdkConnectedOverlayGrowAfterOpen]=\"true\"\r\n [cdkConnectedOverlayOrigin]=\"trigger\"\r\n [cdkConnectedOverlayOpen]=\"isOpen\"\r\n>\r\n <form [formGroup]=\"filterFormGroup\">\r\n <div class=\"filter-container\">\r\n <div class=\"popup-header border-bottom pb-2\">\r\n <h3 class=\"fs-16 fc-black fw-medium\">{{ i18n.translate('filters') }}</h3>\r\n </div>\r\n <div class=\"d-flex flex-column gap-4 gap-md-3 filter-section bc-white mt-0 pt-3\">\r\n\r\n <app-custom-searchable\r\n class=\"section-item\"\r\n formControlName=\"status\"\r\n label=\"{{ i18n.translate('status') }}\"\r\n [options]=\"statuses\"\r\n [displayedLabel]=\"'value'\"\r\n [key]=\"'key'\">\r\n </app-custom-searchable>\r\n\r\n <app-custom-searchable\r\n class=\"section-item\"\r\n formControlName=\"year\"\r\n label=\"{{ i18n.translate('year') }}\"\r\n [options]=\"yearsOptions\"\r\n [displayedLabel]=\"'value'\"\r\n [key]=\"'key'\">\r\n </app-custom-searchable>\r\n\r\n <app-custom-searchable\r\n class=\"section-item\"\r\n formControlName=\"month\"\r\n label=\"{{ i18n.translate('month') }}\"\r\n [options]=\"monthsOptions\"\r\n [displayedLabel]=\"'value'\"\r\n [key]=\"'key'\">\r\n </app-custom-searchable>\r\n\r\n <div class=\"d-flex align-items-center gap-3 mt-4\">\r\n <ds-button shape=\"outline\" size=\"small\" (click)=\"clearFilters()\">\r\n <span class=\"fs-12\"> {{ i18n.translate('clear') }} </span>\r\n </ds-button>\r\n <ds-button class=\"w-100\" size=\"small\" (click)=\"applyFilters()\">\r\n <span class=\"fs-12\">{{ i18n.translate('applyFilters') }} </span>\r\n </ds-button>\r\n </div>\r\n </div>\r\n </div>\r\n </form>\r\n</ng-template>\r\n\r\n\r\n <ng-template #emptyMessage>\r\n <ds-message label=\"{{i18n.translate('NoData')}}\"></ds-message>\r\n </ng-template>\r\n","import {AfterViewInit, ChangeDetectorRef, Component, CUSTOM_ELEMENTS_SCHEMA, DestroyRef, inject, Input} from '@angular/core';\r\nimport {Form, Section} from '../../../interfaces';\r\nimport * as Constants from '../../../constants/constants';\r\nimport {MAT_DIALOG_DATA, MatDialog} from '@angular/material/dialog';\r\nimport {CoreI18nService, CoreService, FeedBackService, SidenavService} from '../../../services';\r\nimport {ProfileSectionComponent} from '../profile-section/profile-section.component';\r\nimport {FeedbackSectionComponent} from '../feedback-section/feedback-section.component';\r\nimport {NgClass, NgIf} from '@angular/common';\r\nimport {SatPopoverModule} from '@ncstate/sat-popover';\r\nimport {MatDivider} from '@angular/material/divider';\r\nimport {MatMenu, MatMenuItem, MatMenuTrigger} from '@angular/material/menu';\r\nimport {FaqSidenavComponent} from '../faq-sidenav/faq-sidenav.component';\r\nimport {ActivitiesComponent} from '../activities/activities.component';\r\nimport {format} from 'date-fns';\r\nimport {ToastrService} from \"ngx-toastr\";\r\nimport {PreviousRequestsComponent} from \"../previous-requests/previous-requests.component\";\r\nimport { takeUntilDestroyed } from '@angular/core/rxjs-interop';\r\n\r\nconst StatusMap = {\r\n [Constants.FORM_STATUS_REJECTED]: {class: 'danger', icon: 'close'},\r\n [Constants.FORM_STATUS_CANCELLED]: {class: 'danger', icon: 'close'},\r\n [Constants.FORM_STATUS_REJECT]: {class: 'danger', icon: 'close'},\r\n [Constants.SECTION_STATUS_UNSATISFIED]: {class: 'danger', icon: 'close'},\r\n [Constants.FORM_STATUS_CANCEL]: {class: 'danger', icon: 'close'},\r\n [Constants.FORM_STATUS_PENDING]: {class: 'warning', icon: 'clock'},\r\n 'default': {class: 'success', icon: 'check'}\r\n}\r\n\r\ninterface ApprovalHistoryItem {\r\n approver: {\r\n personName: string;\r\n personEmail: string;\r\n };\r\n positionType: string;\r\n}\r\n\r\n@Component({\r\n selector: 'core-service-header',\r\n templateUrl: './service-header.component.html',\r\n styleUrls: ['./service-header.component.scss'],\r\n standalone: true,\r\n imports: [\r\n NgIf,\r\n SatPopoverModule,\r\n MatDivider,\r\n MatMenuTrigger,\r\n NgClass,\r\n MatMenu,\r\n MatMenuItem\r\n ],\r\n schemas: [CUSTOM_ELEMENTS_SCHEMA],\r\n providers: [FeedBackService,\r\n {provide: MAT_DIALOG_DATA, useValue: {}},\r\n ]\r\n})\r\nexport class ServiceHeaderComponent implements AfterViewInit {\r\n @Input() form: Form;\r\n @Input() showHistory = false;\r\n @Input() isLoading = false;\r\n @Input() isReadOnly = false;\r\n @Input() showApprovalHistory = false;\r\n @Input() approvalHistory: any;\r\n @Input() creationDate: string;\r\n @Input() formTitle: string;\r\n @Input() section: Section;\r\n @Input() serviceFaq: any[] = [];\r\n approvals: any[] = [];\r\n flagPriority: string;\r\n destroyRef = inject(DestroyRef);\r\n\r\n\r\n constructor(\r\n private readonly cdRef: ChangeDetectorRef,\r\n public coreService: CoreService,\r\n public i18n: CoreI18nService, private readonly feedBackService: FeedBackService,\r\n private readonly dialog: MatDialog, private readonly sidenavService: SidenavService,\r\n private readonly toasterService: ToastrService\r\n ) {}\r\n\r\n /**\r\n * Executes after the view has been fully initialized.\r\n *\r\n * @return {void}\r\n */\r\n ngAfterViewInit() {\r\n this.getApprovalHistory(this.approvalHistory);\r\n if (this.form?.header?.creationDate) {\r\n this.creationDate = format(new Date(this.form?.header?.creationDate), \"dd/MM/yyyy hh:mm:ss\");\r\n }\r\n this.cdRef.detectChanges();\r\n }\r\n\r\n /**\r\n * Handles the click event on the comments form.\r\n * Retrieves comments from the form, transforms them, and updates activities in the core service.\r\n * Finally, publishes an 'open' event to the sidenav service to open the ActivitiesComponent.\r\n *\r\n * @return {void}\r\n */\r\n onCommentsFormClick() {\r\n const formComments: any = this.form.commentsDrop;\r\n const transformedComments = [];\r\n for (const comment of formComments) {\r\n transformedComments.push(this.transformCommentItem(comment));\r\n }\r\n this.coreService.activities = transformedComments;\r\n this.sidenavService.publish('open', ActivitiesComponent);\r\n }\r\n\r\n /**\r\n * Transforms a comment item into a different format for display.\r\n *\r\n * @param {Object} item - The original comment item to transform.\r\n * @return {Object} - The transformed comment item with specific properties including name, title, image, date, time, comment, and attachments.\r\n */\r\n private transformCommentItem(item) {\r\n return {\r\n name: item['employeeName'],\r\n title: item.jobPosition,\r\n image: item['profilePicture'],\r\n date: format(new Date(item['commentDate']), 'yyyy-MM-dd'),\r\n time: format(new Date(item['commentDate']), 'h:mm a'),\r\n comment: item['commentBody'],\r\n attachments: item['attachment']\r\n };\r\n }\r\n\r\n /**\r\n * Opens a dialog for providing feedback.\r\n *\r\n * @return {void}\r\n */\r\n feedback(): void {\r\n this.dialog.open(FeedbackSectionComponent, {\r\n panelClass: ['main-popup'],\r\n data: {\r\n profile: this.form.profileInfoDrop,\r\n inboxItem: this.form.inboxItem,\r\n form: this.form\r\n }\r\n });\r\n }\r\n\r\n /**\r\n * Updates the sidenav with user profile information if not already loading.\r\n *\r\n * @return {void}\r\n */\r\n showUserInfo(): void {\r\n if (!this.isLoading) {\r\n this.sidenavService.data = this.form?.profileInfoDrop;\r\n this.sidenavService.publish('open', ProfileSectionComponent);\r\n }\r\n }\r\n\r\n /**\r\n * Set the priority flag for the inbox item with the provided ID.\r\n *\r\n * @param {string} id - The ID of the priority flag to be set for the inbox item.\r\n * @return {void}\r\n */\r\n setFlagPriority(id: string) {\r\n this.flagPriority = id;\r\n this.form.inboxItem.flagPriority = id;\r\n this.subscribeToSetFlagPriority(id);\r\n }\r\n\r\n /**\r\n * Subscribe to set flag priority for a specific identifier.\r\n *\r\n * @param {string} id - The identifier of the flag to set priority for.\r\n * @return {void}\r\n */\r\n subscribeToSetFlagPriority(id: string): void {\r\n this.coreService.setFlagPriority(id).pipe(\r\n takeUntilDestroyed(this.destroyRef)\r\n ).subscribe((response: any) => {\r\n if (response) {\r\n this.toasterService.success(this.i18n.translate('flagStatusUpdated'));\r\n }\r\n });\r\n }\r\n\r\n /**\r\n * Returns the CSS class associated with the input status.\r\n *\r\n * @param {string} status - The status for which the CSS class is needed.\r\n * @return {string} - The CSS class corresponding to the given status.\r\n */\r\n statusClass(status: string): string {\r\n // status = status ? status.toLowerCase() : '';\r\n let statusStrategy = StatusMap[status] || StatusMap['default'];\r\n return statusStrategy.class;\r\n }\r\n\r\n /**\r\n * Opens the FAQ side navigation.\r\n * @return {void}\r\n */\r\n openFaq() {\r\n this.sidenavService.publish('open', FaqSidenavComponent, 'end', 'over', this.serviceFaq);\r\n }\r\n\r\n /**\r\n * Retrieves approval history information for each approval item in the provided array.\r\n *\r\n * @param {ApprovalHistoryItem[]} approvalHistory - The array containing approval history items.\r\n *\r\n * @return {void} - This method does not return any value. It updates the internal 'approvals' array.\r\n */\r\n getApprovalHistory(approvalHistory: ApprovalHistoryItem[]) {\r\n approvalHistory?.forEach((approvalItem, index) => {\r\n let approvalStatus = this.getApprovalStatus(index);\r\n let approvalStatusLabel = this.getApprovalStatusLabel(index);\r\n const obj = {\r\n id: index + 1,\r\n name: approvalItem.approver.personName,\r\n title: approvalItem.positionType,\r\n image: this.getImageUrl(approvalItem.approver.personEmail),\r\n status: approvalStatus,\r\n statusLabel: approvalStatusLabel,\r\n };\r\n this.approvals.push(obj);\r\n });\r\n }\r\n\r\n /**\r\n * Retrieves the approval status for a specific section in the form.\r\n *\r\n * @param {number} index - The index of the section for which the approval status is required.\r\n * @return {string} The approval status of the specified section. Returns an empty string if the section does not exist.\r\n */\r\n private getApprovalStatus(index: number): string {\r\n let status = '';\r\n if (this.form.sections[index + 1]) {\r\n status = this.statusClass(this.form.sections[index + 1].body.details.decision.key);\r\n }\r\n return status;\r\n }\r\n\r\n /**\r\n * Retrieves the approval status label from the form section based on the given index.\r\n *\r\n * @param {number} index - The index of the form section for which the approval status label will be retrieved.\r\n * @return {string} The approval status label retrieved from the specified form section.\r\n */\r\n private getApprovalStatusLabel(index: number): string {\r\n let statusLabel = '';\r\n if (this.form.sections[index + 1]) {\r\n statusLabel = this.form.sections[index + 1].body.details.decision.value;\r\n }\r\n return statusLabel;\r\n }\r\n\r\n /**\r\n * Retrieves the URL of the user's portrait image based on the provided email.\r\n *\r\n * @param {string} email - The email address of the user for whom the portrait URL is to be retrieved.\r\n * @return {string} - The URL used to fetch the user's portrait image.\r\n */\r\n private getImageUrl(email: string): string {\r\n return '/group/i-gate/wm-bpm/forms/-/proxy/portrait?email=' + email;\r\n }\r\n\r\n showPreviousRequests() {\r\n this.sidenavService.publish('open', PreviousRequestsComponent);\r\n }\r\n}\r\n","@if (form?.header?.status?.['key'] === 'NEW') {\r\n <section\r\n class=\"main-sidenav main-sidenav-full mb-4\"\r\n\r\n >\r\n <div class=\"sidenav-title\">\r\n <div class=\"d-flex align-items-center gap-3 w-100\">\r\n <!-- <ds-button icon class=\"rotate-arrow\" size=\"small\" (click)=\"goBack()\" *ngIf=\"!isInMobileApp() && showBack\">\r\n <ds-icon icon=\"arrow-right\" class=\"fs-19 fc-black\"></ds-icon>\r\n </ds-button>-->\r\n\r\n <!-- <h3 class=\"flex-grow-0\">\r\n {{ formTitle }}\r\n </h3>-->\r\n\r\n <section>\r\n <p class=\"fs-14 fs-md-12 fw-normal fc-dark-gray mb-1\">\r\n {{ i18n.translate('Hello') }}\r\n {{ coreService.getShortName(form?.header?.requesterName) }}, {{ i18n.translate('welcomeBack') }}!\r\n </p>\r\n <h1 class=\"fs-26 fs-md-20 fw-bold fc-black d-flex align-items-center gap-2 mb-1\">\r\n {{ formTitle }}\r\n @if (serviceFaq.length) {\r\n <ds-icon icon=\"info\" class=\"fs-22 fc-dark-gray cursor-pointer\" (click)=\"openFaq()\">\r\n </ds-icon>\r\n }\r\n </h1>\r\n </section>\r\n <div class=\"d-flex align-items-center justify-content-end gap-2 flex-grow-1\">\r\n @if (serviceFaq.length) {\r\n <ds-button size=\"small\" icon>\r\n <ds-icon icon=\"info\" class=\"fs-22 fc-dark-gray cursor-pointer\" (click)=\"openFaq()\">\r\n </ds-icon>\r\n </ds-button>\r\n }\r\n <!-- <ds-button size=\"small\" icon (click)=\"openWorkflow()\">\r\n <ds-icon icon=\"bell-2-o\" class=\"fs-20 fc-coral\"></ds-icon>\r\n </ds-button> -->\r\n @if (!isReadOnly) {\r\n <ds-button size=\"small\" icon (click)=\"showPreviousRequests()\">\r\n <ds-icon icon=\"clock\" class=\"fs-20 fc-coral\"></ds-icon>\r\n </ds-button>\r\n }\r\n </div>\r\n </div>\r\n </div>\r\n </section>\r\n\r\n <!-- <header class=\"mb-4 mt-4 d-flex align-items-center justify-content-between align-items-end gap-2\">\r\n <section>\r\n <h6 class=\"fs-14 fs-md-12 fw-normal fc-dark-gray mb-0\">\r\n {{ i18n.translate('Hello') }}\r\n {{ coreService.getShortName(form?.header?.requesterName) }}, {{ i18n.translate('welcomeBack') }}!\r\n </h6>\r\n <h1 class=\"fs-26 fs-md-20 fw-bold fc-black d-flex align-items-center gap-2 mb-1\">\r\n {{ formTitle }}\r\n @if (serviceFaq.length) {\r\n <ds-icon icon=\"info\" class=\"fs-22 fc-dark-gray cursor-pointer\" (click)=\"openFaq()\">\r\n </ds-icon>\r\n }\r\n </h1>\r\n </section>\r\n </header>-->\r\n} @else {\r\n\r\n <div class=\"w-100\">\r\n <section class=\"request-main-info {{statusClass(form?.header?.status?.['key'])}}\">\r\n <section class=\"request-info\">\r\n <div class=\"request-info--body\">\r\n <div class=\"d-flex align-items-center gap-2 flex-grow-1\">\r\n <img\r\n alt=\"\"\r\n src=\"data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMzAiIGhlaWdodD0iMjkiIHZpZXdCb3g9IjAgMCAzMCAyOSIgZmlsbD0ibm9uZSIgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIj4KPHBhdGggZD0iTTI1LjEgMEg0LjlDMi4yIDAgMCAyLjIgMCA0LjlWMjguNkgyNS4xQzI3LjggMjguNiAzMCAyNi40IDMwIDIzLjdWNC45QzMwIDIuMiAyNy44IDAgMjUuMSAwWk0yIDQuOUMyIDMuMyAzLjMgMiA0LjkgMkgyNS4xQzI2LjcgMiAyOCAzLjMgMjggNC45VjIzLjdDMjggMjUuMyAyNi43IDI2LjYgMjUuMSAyNi42SDJWNC45Wk0xMS41IDYuM0M3LjEgNi4zIDMuNSA5LjkgMy41IDE0LjNDMy41IDE4LjcgNy4xIDIyLjMgMTEuNSAyMi4zQzE1LjkgMjIuMyAxOS41IDE4LjcgMTkuNSAxNC4zQzE5LjUgOS45IDE1LjkgNi4zIDExLjUgNi4zWk0xNS4xIDE5QzE0LjEgMTkuOCAxMi44IDIwLjIgMTEuNSAyMC4yQzEwLjIgMjAuMiA4LjkgMTkuOCA3LjkgMTlDOC43IDE3LjcgMTAgMTcgMTEuNSAxN0MxMyAxNyAxNC40IDE3LjggMTUuMSAxOVpNMTMuMSAxMy40QzEzLjEgMTQuMyAxMi40IDE1IDExLjUgMTVDMTAuNiAxNSA5LjkgMTQuMyA5LjkgMTMuNEM5LjkgMTIuNSAxMC42IDExLjggMTEuNSAxMS44QzEyLjQgMTEuOCAxMy4xIDEyLjUgMTMuMSAxMy40Wk0xNS4xIDEzLjRDMTUuMSAxMS40IDEzLjUgOS44IDExLjUgOS44QzkuNSA5LjggNy45IDExLjQgNy45IDEzLjRDNy45IDE0LjIgOC4yIDE1IDguNyAxNS43QzcuOCAxNi4xIDcuMSAxNi44IDYuNSAxNy42QzUuOCAxNi42IDUuNSAxNS41IDUuNSAxNC4zQzUuNSAxMSA4LjIgOC4zIDExLjUgOC4zQzE0LjggOC4zIDE3LjUgMTEgMTcuNSAxNC4zQzE3LjUgMTUuNSAxNy4yIDE2LjYgMTYuNSAxNy42QzE1LjkgMTYuOCAxNS4yIDE2LjIgMTQuMyAxNS43QzE0LjggMTUuMSAxNS4xIDE0LjIgMTUuMSAxMy40Wk0yMSA5LjFDMjEgOC42IDIxLjQgOC4xIDIyIDguMUgyNS41QzI2IDguMSAyNi41IDguNSAyNi41IDkuMUMyNi41IDkuNiAyNi4xIDEwLjEgMjUuNSAxMC4xSDIyQzIxLjQgMTAuMSAyMSA5LjYgMjEgOS4xWk0yMSAxMi41QzIxIDEyIDIxLjQgMTEuNSAyMiAxMS41SDI1LjVDMjYgMTEuNSAyNi41IDExLjkgMjYuNSAxMi41QzI2LjUgMTMgMjYuMSAxMy41IDI1LjUgMTMuNUgyMkMyMS40IDEzLjUgMjEgMTMuMSAyMSAxMi41Wk0yMSAxNkMyMSAxNS41IDIxLjQgMTUgMjIgMTVIMjUuNUMyNiAxNSAyNi41IDE1LjQgMjYuNSAxNkMyNi41IDE2LjUgMjYuMSAxNyAyNS41IDE3SDIyQzIxLjQgMTcgMjEgMTYuNiAyMSAxNlpNMjUuNSAyMC41SDIyQzIxLjUgMjAuNSAyMSAyMC4xIDIxIDE5LjVDMjEgMTguOSAyMS40IDE4LjUgMjIgMTguNUgyNS41QzI2IDE4LjUgMjYuNSAxOC45IDI2LjUgMTkuNUMyNi41IDIwLjEgMjYuMSAyMC41IDI1LjUgMjAuNVoiIGZpbGw9IiNGRjM3NUUiLz4KPC9zdmc+Cg==\"/>\r\n <h4 class=\"fs-22 fs-md-16 fc-black fw-medium mb-0 flex-grow-1 line-height-1-2\">\r\n {{ formTitle }}\r\n </h4>\r\n </div>\r\n <div class=\"d-flex align-items-center gap-2 request-info--status-action\">\r\n <div class=\"d-inline-flex flex-column align-items-end\">\r\n @if (!isLoading) {\r\n <ds-status\r\n status=\"{{statusClass(form?.header?.status?.['key'])}}\" class=\"header-status\">{{ form?.header?.status?.['value'] }}\r\n </ds-status>\r\n }\r\n </div>\r\n <div class=\"d-flex align-items-center gap-2\">\r\n <!-- <ds-button\r\n *ngIf=\"form?.inboxItem && (form?.inboxItem?.canRequestFeedback =='true'|| form?.inboxItem?.hasFeedback=='true')\"\r\n square icon size=\"small\">\r\n <ds-icon icon=\"chat-o\" class=\"fs-20 fs-md-17 fc-coral\">\r\n <!– [ngClass]=\"{'fc-green':feedBackIcon == 'feedbackResponded' , 'fc-red': feedBackIcon == 'respondToFeedback' , 'fc-yellow': feedBackIcon == 'waitingFeedback'}\"–>\r\n </ds-icon>\r\n </ds-button>-->\r\n <!-- history-->\r\n <ds-button\r\n *ngIf=\"form?.commentsDrop?.length > 0 && !isLoading\" square icon size=\"small\"\r\n (click)=\"onCommentsFormClick()\" class=\"has-comments\">\r\n <ds-icon icon=\"clock\" class=\"fc-coral fs-20 fs-md-17\"></ds-icon>\r\n </ds-button>\r\n <ng-content></ng-content>\r\n </div>\r\n </div>\r\n </div>\r\n\r\n <div class=\"request-info--footer\">\r\n @if (!isLoading) {\r\n <ds-avatar\r\n image=\"{{form?.header?.requesterPhoto}}\" size=\"xx-small\"\r\n class=\"d-inline-flex cursor-pointer\" (click)=\"showUserInfo()\"></ds-avatar>\r\n }\r\n <div\r\n class=\"d-flex align-items-center flex-wrap flex-grow-1 gap-1 gap-sm-2 line-height-1 request-info--header__details\">\r\n <span\r\n [ngClass]=\"{'loading-bg loading-width': isLoading}\"\r\n class=\"fs-12 fw-medium d-none d-sm-inline-block\">{{ coreService.getShortName(form?.header?.['requesterName']) }}</span>\r\n <span class=\"fs-20\">•</span>\r\n <span class=\"fs-12\" [ngClass]=\"{'loading-bg loading-width': isLoading}\"> {{ form?.header?.formId }}</span>\r\n <span class=\"fs-20\" *ngIf=\"creationDate\">•</span>\r\n <span class=\"fs-12\" [ngClass]=\"{'loading-bg loading-width': isLoading}\"> {{ creationDate }}</span>\r\n </div>\r\n </div>\r\n </section>\r\n </section>\r\n\r\n </div>\r\n\r\n\r\n <!--<ng-container>\r\n <div class=\"d-flex align-items-center justify-content-end gap-2 my-2\">\r\n <ds-button\r\n *ngIf=\"form?.inboxItem && !form.sections[form.sections.length -1].header.readOnly && !isLoading\"\r\n square\r\n icon\r\n size=\"small\"\r\n [matMenuTriggerFor]=\"menu\"\r\n class=\"icon-btn-shadow\">\r\n <ds-icon\r\n [ngClass]=\"{'fc-purple' : (flagPriority === '0' || flagPriority === null),'fc-yellow' : flagPriority === '1','fc-green' : flagPriority === '2','fc-coral' : flagPriority === '3'}\"\r\n icon=\"flag-o\" class=\"fs-20 fs-md-17 fc-purple\">\r\n </ds-icon>\r\n </ds-button>\r\n <mat-menu #menu=\"matMenu\" panelClass=\"action-menu\">\r\n <button mat-menu-item (click)=\"setFlagPriority('0')\">\r\n <ds-icon icon=\"flag-o\" class=\"fc-purple fs-20 fs-md-17\"></ds-icon>\r\n </button>\r\n <button mat-menu-item (click)=\"setFlagPriority('1')\">\r\n <ds-icon icon=\"flag-o\" class=\"fc-yellow fs-20 fs-md-17\"></ds-icon>\r\n </button>\r\n <button mat-menu-item (click)=\"setFlagPriority('2')\">\r\n <ds-icon icon=\"flag-o\" class=\"fc-green fs-20 fs-md-17\"></ds-icon>\r\n </button>\r\n <button mat-menu-item (click)=\"setFlagPriority('3')\">\r\n <ds-icon icon=\"flag-o\" class=\"fc-coral fs-20 fs-md-17\"></ds-icon>\r\n </button>\r\n </mat-menu>\r\n\r\n <ng-content></ng-content>\r\n </div>\r\n <header class=\"service-header bc-white p-3 p-sm-4 py-4 gap-3 {{statusClass(form?.header?.status?.['key'])}}\">\r\n\r\n <div class=\"service-header-icon\">\r\n <img\r\n alt=\"\"\r\n src=\"data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMzAiIGhlaWdodD0iMjkiIHZpZXdCb3g9IjAgMCAzMCAyOSIgZmlsbD0ibm9uZSIgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIj4KPHBhdGggZD0iTTI1LjEgMEg0LjlDMi4yIDAgMCAyLjIgMCA0LjlWMjguNkgyNS4xQzI3LjggMjguNiAzMCAyNi40IDMwIDIzLjdWNC45QzMwIDIuMiAyNy44IDAgMjUuMSAwWk0yIDQuOUMyIDMuMyAzLjMgMiA0LjkgMkgyNS4xQzI2LjcgMiAyOCAzLjMgMjggNC45VjIzLjdDMjggMjUuMyAyNi43IDI2LjYgMjUuMSAyNi42SDJWNC45Wk0xMS41IDYuM0M3LjEgNi4zIDMuNSA5LjkgMy41IDE0LjNDMy41IDE4LjcgNy4xIDIyLjMgMTEuNSAyMi4zQzE1LjkgMjIuMyAxOS41IDE4LjcgMTkuNSAxNC4zQzE5LjUgOS45IDE1LjkgNi4zIDExLjUgNi4zWk0xNS4xIDE5QzE0LjEgMTkuOCAxMi44IDIwLjIgMTEuNSAyMC4yQzEwLjIgMjAuMiA4LjkgMTkuOCA3LjkgMTlDOC43IDE3LjcgMTAgMTcgMTEuNSAxN0MxMyAxNyAxNC40IDE3LjggMTUuMSAxOVpNMTMuMSAxMy40QzEzLjEgMTQuMyAxMi40IDE1IDExLjUgMTVDMTAuNiAxNSA5LjkgMTQuMyA5LjkgMTMuNEM5LjkgMTIuNSAxMC42IDExLjggMTEuNSAxMS44QzEyLjQgMTEuOCAxMy4xIDEyLjUgMTMuMSAxMy40Wk0xNS4xIDEzLjRDMTUuMSAxMS40IDEzLjUgOS44IDExLjUgOS44QzkuNSA5LjggNy45IDExLjQgNy45IDEzLjRDNy45IDE0LjIgOC4yIDE1IDguNyAxNS43QzcuOCAxNi4xIDcuMSAxNi44IDYuNSAxNy42QzUuOCAxNi42IDUuNSAxNS41IDUuNSAxNC4zQzUuNSAxMSA4LjIgOC4zIDExLjUgOC4zQzE0LjggOC4zIDE3LjUgMTEgMTcuNSAxNC4zQzE3LjUgMTUuNSAxNy4yIDE2LjYgMTYuNSAxNy42QzE1LjkgMTYuOCAxNS4yIDE2LjIgMTQuMyAxNS43QzE0LjggMTUuMSAxNS4xIDE0LjIgMTUuMSAxMy40Wk0yMSA5LjFDMjEgOC42IDIxLjQgOC4xIDIyIDguMUgyNS41QzI2IDguMSAyNi41IDguNSAyNi41IDkuMUMyNi41IDkuNiAyNi4xIDEwLjEgMjUuNSAxMC4xSDIyQzIxLjQgMTAuMSAyMSA5LjYgMjEgOS4xWk0yMSAxMi41QzIxIDEyIDIxLjQgMTEuNSAyMiAxMS41SDI1LjVDMjYgMTEuNSAyNi41IDExLjkgMjYuNSAxMi41QzI2LjUgMTMgMjYuMSAxMy41IDI1LjUgMTMuNUgyMkMyMS40IDEzLjUgMjEgMTMuMSAyMSAxMi41Wk0yMSAxNkMyMSAxNS41IDIxLjQgMTUgMjIgMTVIMjUuNUMyNiAxNSAyNi41IDE1LjQgMjYuNSAxNkMyNi41IDE2LjUgMjYuMSAxNyAyNS41IDE3SDIyQzIxLjQgMTcgMjEgMTYuNiAyMSAxNlpNMjUuNSAyMC41SDIyQzIxLjUgMjAuNSAyMSAyMC4xIDIxIDE5LjVDMjEgMTguOSAyMS40IDE4LjUgMjIgMTguNUgyNS41QzI2IDE4LjUgMjYuNSAxOC45IDI2LjUgMTkuNUMyNi41IDIwLjEgMjYuMSAyMC41IDI1LjUgMjAuNVoiIGZpbGw9IiNGRjM3NUUiLz4KPC9zdmc+Cg==\"/>\r\n </div>\r\n\r\n <div class=\"flex-grow-1 d-flex flex-column flex-sm-row align-items-sm-center gap-2\">\r\n <div class=\"flex-grow-1\">\r\n <h1 class=\"fs-20 fs-md-16 fw-bold fc-black header-title m-0\">{{ formTitle }}\r\n @if (serviceFaq.length) {\r\n <ds-icon icon=\"info\" class=\"fs-22 fc-dark-gray cursor-pointer\" (click)=\"openFaq()\">\r\n </ds-icon>\r\n }\r\n </h1>\r\n <div class=\"header-user d-flex align-items-sm-center gap-2 mt-sm-1\">\r\n @if (!isLoading) {\r\n <ds-avatar\r\n image=\"{{form?.header?.requesterPhoto}}\" size=\"xx-small\"\r\n class=\"d-inline-flex cursor-pointer\" (click)=\"showUserInfo()\"></ds-avatar>\r\n }\r\n <span\r\n class=\"fs-12 text-truncate d-sm-block cursor-pointer\" (click)=\"showUserInfo()\"\r\n [ngClass]=\"{'loading-bg loading-width': isLoading}\">{{ coreService.getShortName(form?.header?.requesterName) }}</span>\r\n <mat-divider class=\"divider circle mx-2 d-none d-sm-block\"></mat-divider>\r\n <span class=\"fs-12\" [ngClass]=\"{'loading-bg loading-width': isLoading}\">{{ form?.header?.formId }}</span>\r\n @if (creationDate) {\r\n <mat-divider class=\"divider circle mx-2 d-none d-sm-block\"></mat-divider>\r\n <span class=\"fs-14\" [ngClass]=\"{'loading-bg loading-width': isLoading}\">{{ creationDate }}</span>\r\n }\r\n </div>\r\n\r\n </div>\r\n <div class=\"header-actions d-flex flex-row flex-sm-column justify-content-between justify-content-sm-center gap-2 mt-2 mt-sm-0\">\r\n @if (!isLoading) {\r\n <ds-status\r\n status=\"{{statusClass(form?.header?.status?.['key'])}}\" class=\"header-status\">{{ form?.header?.status?.['value'] }}\r\n </ds-status>\r\n }\r\n <div class=\"d-flex align-items-center justify-content-end gap-2\">\r\n <!– feedback–>\r\n <!– *ngIf=\"form?.inboxItem && (form?.inboxItem?.canRequestFeedback ==='true'|| form?.inboxItem?.hasFeedback==='true') && !isLoading\"–>\r\n <!– <ds-button\r\n square icon size=\"small\" (click)=\"feedback()\">\r\n <ds-icon\r\n icon=\"chat-o\" class=\"fs-20 fs-md-17 fc-coral\"\r\n [ngClass]=\"{'fc-green':feedBackIcon === 'feedbackResponded' , 'fc-red': feedBackIcon === 'respondToFeedback' , 'fc-yellow': feedBackIcon === 'waitingFeedback'}\">\r\n </ds-icon>\r\n </ds-button>–>\r\n <ds-button\r\n *ngIf=\"form?.commentsDrop?.length > 0 && !isLoading\" square icon size=\"small\"\r\n (click)=\"onCommentsFormClick()\" class=\"has-comments\">\r\n <ds-icon icon=\"clock\" class=\"fc-coral fs-20 fs-md-17\"></ds-icon>\r\n </ds-button>\r\n @if (showApprovalHistory) {\r\n <ng-container>\r\n <ds-button\r\n color=\"white\" shape=\"text\" square size=\"small\" [satPopoverAnchor]=\"workflow\"\r\n #workflowAnchor=\"satPopoverAnchor\" (click)=\"workflowAnchor.popover.open()\">\r\n <slot name=\"prefix\">\r\n <ds-icon icon=\"workflow\" class=\"fs-24\"></ds-icon>\r\n </slot>\r\n </ds-button>\r\n <sat-popover\r\n #workflow [anchor]=\"workflowAnchor\" [hasBackdrop]=\"true\" verticalAlign=\"below\"\r\n horizontalAlign=\"end\">\r\n <div class=\"default-popover p-3\" style=\"min-width: 330px;\">\r\n <ds-approvals *ngIf=\"approvalHistory\" class=\"popover-approvals\" approvalsData=\"{{approvals}}\">\r\n </ds-approvals>\r\n </div>\r\n </sat-popover>\r\n </ng-container>\r\n }\r\n </div>\r\n </div>\r\n </div>\r\n\r\n </header>\r\n </ng-container>-->\r\n}\r\n","import { Component, CUSTOM_ELEMENTS_SCHEMA, Input } from '@angular/core';\r\nimport * as Constants from '../../../constants';\r\nimport { Form } from '../../../interfaces';\r\nimport { NgClass } from '@angular/common';\r\n\r\n@Component({\r\n selector: 'app-status',\r\n templateUrl: './status.component.html',\r\n styleUrls: ['./status.component.scss'],\r\n schemas: [CUSTOM_ELEMENTS_SCHEMA],\r\n standalone: true,\r\n imports: [\r\n NgClass\r\n ],\r\n})\r\nexport class StatusComponent {\r\n @Input() form: Form;\r\n\r\n statusClass(status: string) {\r\n if (status === Constants.FORM_STATUS_REJECTED || status === Constants.FORM_STATUS_CANCELLED) {\r\n return {\r\n status: true,\r\n danger: status === Constants.FORM_STATUS_REJECTED || status === Constants.FORM_STATUS_CANCELLED\r\n };\r\n } else if (status === Constants.FORM_STATUS_PENDING) {\r\n return {\r\n status: true,\r\n warning: status === Constants.FORM_STATUS_PENDING\r\n };\r\n } else {\r\n return {\r\n status: true,\r\n success: status === Constants.FORM_STATUS_COMPLETED || Constants.FORM_STATUS_APPROVED\r\n };\r\n }\r\n }\r\n\r\n}\r\n","<div [ngClass]=\"statusClass(form.header.status?.['key'])\">{{form.header.status?.['value']}}</div>\r\n","import {Component, CUSTOM_ELEMENTS_SCHEMA, DestroyRef, inject, Input, OnInit} from '@angular/core';\r\nimport {CoreI18nService, CoreService, SidenavService} from '../../../services';\r\nimport {ComponentOutletIoDirective, DynamicModule} from 'ng-dynamic-component';\r\nimport {NgClass, NgComponentOutlet, NgIf} from '@angular/common';\r\nimport {MatExpansionModule, MatExpansionPanel} from '@angular/material/expansion';\r\nimport {SatPopoverModule} from '@ncstate/sat-popover';\r\nimport {Form, ProfileInfoDrop, Section} from '../../../interfaces';\r\nimport * as Constants from '../../../constants';\r\nimport {ProfileSectionComponent} from \"../profile-section/profile-section.component\";\r\nimport {format} from 'date-fns';\r\nimport { takeUntilDestroyed } from '@angular/core/rxjs-interop';\r\n\r\nconst StatusMap = {\r\n [Constants.FORM_STATUS_REJECTED]: {class: 'danger', icon: 'close'},\r\n [Constants.FORM_STATUS_CANCELLED]: {class: 'danger', icon: 'close'},\r\n [Constants.FORM_STATUS_REJECT]: {class: 'danger', icon: 'close'},\r\n [Constants.SECTION_STATUS_UNSATISFIED]: {class: 'danger', icon: 'close'},\r\n [Constants.FORM_STATUS_CANCEL]: {class: 'danger', icon: 'close'},\r\n [Constants.FORM_STATUS_PENDING]: {class: 'warning', icon: 'clock'},\r\n 'default': {class: 'success', icon: 'check'}\r\n}\r\n\r\n@Component({\r\n selector: 'app-form-section',\r\n templateUrl: './form-section.component.html',\r\n styleUrls: ['./form-section.component.scss'],\r\n standalone: true,\r\n imports: [\r\n MatExpansionModule,\r\n MatExpansionPanel,\r\n NgIf,\r\n NgComponentOutlet,\r\n ComponentOutletIoDirective,\r\n SatPopoverModule,\r\n NgClass,\r\n DynamicModule\r\n ],\r\n schemas: [CUSTOM_ELEMENTS_SCHEMA]\r\n})\r\nexport class FormSectionComponent\r\n implements OnInit {\r\n userType = 'recipient';\r\n popoverType = 'recipient';\r\n @Input() requestDetails: Section;\r\n userPopoverInfo: any = {};\r\n @Input() section: Section;\r\n @Input() form: Form;\r\n @Input() lov: any;\r\n @Input() isReadOnly: boolean;\r\n @Input() controllers: any;\r\n @Input() segmentDynamicLoaderService: any;\r\n @Input() sectionFormComponent: any = null;\r\n @Input() sectionName = 'SECTION_NAME.requestDetails';\r\n sectionStatusKey: string;\r\n recipient = {\r\n isShowing: false,\r\n profile: null\r\n };\r\n delegate = {\r\n isShowing: false,\r\n profile: null\r\n };\r\n public input;\r\n processingDate: string;\r\n destroyRef = inject(DestroyRef);\r\n\r\n\r\n constructor(\r\n public i18n: CoreI18nService,\r\n private readonly coreService: CoreService,\r\n private readonly sidenavService: SidenavService\r\n ) {\r\n }\r\n\r\n /**\r\n * Method to initialize various components when the component is initialized.\r\n *\r\n * @return {void}\r\n */\r\n ngOnInit() {\r\n this.initSectionFormComponent();\r\n this.initSectionName();\r\n this.initInput();\r\n this.initProcessingDate();\r\n }\r\n\r\n /**\r\n * Initializes the section form component by fetching it from the segment dynamic loader service.\r\n *\r\n * @return {void}\r\n */\r\n private initSectionFormComponent() {\r\n this.sectionFormComponent = this.segmentDynamicLoaderService.getComponent(\r\n this.section.id\r\n );\r\n }\r\n\r\n /**\r\n * Initializes the section name based on the provided section data.\r\n * If the section's body contains a 'stageName' property, the section name is set to the value of that property.\r\n * Otherwise, the section name is retrieved using the segmentDynamicLoaderService based on the section ID.\r\n *\r\n * @return {void}\r\n */\r\n private initSectionName() {\r\n if (this.section.body.details?.['stageName']) {\r\n this.sectionName = this.section.body.details['stageName']?.value ??this.section.body.details['stageName'];\r\n } else {\r\n this.sectionName = this.segmentDynamicLoaderService.getSectionName(this.section.id);\r\n }\r\n }\r\n\r\n /**\r\n * Initializes the input object with the provided values for read-only status, list of values, section, and form.\r\n *\r\n * @return {void}\r\n */\r\n private initInput() {\r\n this.input = {\r\n isReadOnly: this.isReadOnly,\r\n lov: this.lov,\r\n section: this.section,\r\n form: this.form\r\n };\r\n }\r\n\r\n /**\r\n * Initializes the processing date based on the section's header processing date.\r\n * If the processing date is available in the section header, it formats the processing date\r\n * and assigns it to the processingDate property of the instance.\r\n *\r\n * @return {void}\r\n */\r\n private initProcessingDate() {\r\n if (this.section?.header?.processingDate) {\r\n this.processingDate = format(new Date(this.section.header.processingDate), \"dd/MM/yyyy hh:mm:ss\");\r\n }\r\n }\r\n\r\n\r\n /**\r\n * Check if the section is expanded.\r\n *\r\n * @return {boolean} Returns true if the section is expanded, false otherwise.\r\n */\r\n get isExpanded(): boolean {\r\n const hasSections = Boolean(this.form?.sections?.length);\r\n const isAnySectionExpandable = hasSections && this.form.sections.some(section => 'expandStage' in (section?.body?.details || {}));\r\n return isAnySectionExpandable ? (this.section?.body?.details?.['expandStage'] === 'true') : true;\r\n }\r\n\r\n /**\r\n * Create a ProfileInfoDrop object from the response object.\r\n *\r\n * @param {any} response - The response object containing user profile information.\r\n *\r\n * @return {ProfileInfoDrop} A ProfileInfoDrop object created from the response data.\r\n */\r\n private createUserProfileFromResponse(response: any): ProfileInfoDrop {\r\n const user = response?.[\"Users\"][0];\r\n return new ProfileInfoDrop(\r\n false,\r\n user?.employeeNumber,\r\n user?.email,\r\n user?.name,\r\n user?.generalDepartment?.name,\r\n user?.position?.name,\r\n user?.sector?.name,\r\n user?.department?.name,\r\n user?.generalDepartment?.code,\r\n user?.location,\r\n user?.nationality?.desc,\r\n user?.contact?.mobile,\r\n user?.manager?.name,\r\n user?.seniorSectorName?.name\r\n );\r\n }\r\n\r\n /**\r\n * Method to open or create a user profile.\r\n *\r\n * @param {ProfileInfoDrop} userData - The user profile data to open or create.\r\n * @param {string} personType - The type of person this profile belongs to.\r\n *\r\n * @return {void}\r\n */\r\n private openOrCreateUserProfile(userData: ProfileInfoDrop, personType: string) {\r\n this.sidenavService.data = userData;\r\n this.userPopoverInfo = userData;\r\n this[personType].profile = userData;\r\n this.sidenavService.publish('open', ProfileSectionComponent);\r\n }\r\n\r\n /**\r\n * Toggles the display of small profile information for a given person type\r\n *\r\n * @param {any} event - The event that triggered the toggle\r\n * @param {string} personType - The type of person for which to display the profile information\r\n *\r\n * @return {void}\r\n */\r\n toggleSmallProfileInfo(event: any, personType: string): void {\r\n this.userType = personType;\r\n event.stopPropagation();\r\n let userInfo = this[personType];\r\n if (!userInfo.profile) {\r\n this.popoverType = personType;\r\n let userEmail = this.getUserEmail(personType);\r\n this.fetchAndSetUserProfile(userEmail, personType);\r\n } else {\r\n this.openOrCreateUserProfile(userInfo.profile, personType);\r\n }\r\n }\r\n\r\n /**\r\n * Retrieves the email of the user based on the personType parameter.\r\n *\r\n * @param {string} personType - Type of the person ('recipient' or others).\r\n * @return {string} - The email address of the user.\r\n */\r\n private getUserEmail(personType: string): string {\r\n return (personType === 'recipient'\r\n ? this.section.header.personToThumbnail.split('=')[1]\r\n : this?.section?.header?.delegatedToThumbnail.split('=')[1]\r\n );\r\n }\r\n\r\n /**\r\n * Fetches the user profile using the provided user email and person type, then sets the profile.\r\n *\r\n * @param {string} userEmail - The email of the user whose profile is to be fetched and set.\r\n * @param {string} personType - The type of person (e.g., employee, customer) for whom the profile is being fetched.\r\n *\r\n * @return {void}\r\n */\r\n private fetchAndSetUserProfile(userEmail: string, personType: string): void {\r\n this.coreService.employeeProfile(userEmail).pipe(\r\n takeUntilDestroyed(this.destroyRef)\r\n ).subscribe((response: any) => {\r\n if (response) {\r\n let userData = this.createUserProfileFromResponse(response);\r\n this.openOrCreateUserProfile(userData, personType);\r\n }\r\n });\r\n }\r\n\r\n /**\r\n * Returns the CSS class associated with the input status.\r\n *\r\n * @param {string} status - The status for which the CSS class is needed.\r\n * @return {string} - The CSS class corresponding to the given status.\r\n */\r\n statusClass(status: string): string {\r\n // status = status ? status.toLowerCase() : '';\r\n let statusStrategy = StatusMap[status] || StatusMap['default'];\r\n return statusStrategy.class;\r\n }\r\n\r\n /**\r\n * Returns the icon associated with the provided status.\r\n *\r\n * @param {string} status - The status for which to retrieve the icon.\r\n * @return {string} The icon corresponding to the provided status.\r\n */\r\n statusIcon(status: string): string {\r\n status = status ? status.toLowerCase() : '';\r\n let statusStrategy = StatusMap[status] || StatusMap['default'];\r\n return statusStrategy.icon;\r\n }\r\n}\r\n","<mat-expansion-panel class=\"mb-4\" [expanded]=\"isExpanded\" hideToggle #approvalPanel=\"matExpansionPanel\">\r\n <mat-expansion-panel-header>\r\n\r\n <div class=\"approval-panel-container\">\r\n <div class=\"d-flex gap-2 flex-grow-1 approval-panel-title\">\r\n <ds-status\r\n status=\"{{statusClass(sectionStatusKey)}}\" no-opacity icon\r\n class=\"circle-status d-none d-sm-inline-block\">\r\n <ds-icon icon=\"{{statusIcon(sectionStatusKey)}}\"></ds-icon>\r\n </ds-status>\r\n <div class=\"d-flex flex-column flex-grow-1\">\r\n <span class=\"fs-16 fw-medium m-0\"> {{ sectionName }}</span>\r\n @if (section.header?.processedBy) {\r\n <bdi class=\"fs-12 fc-dark-gray fw-normal line-height-1 d-block mt-1\">\r\n {{ processingDate }}\r\n </bdi>\r\n }\r\n </div>\r\n </div>\r\n <div class=\"approval-panel-details gap-1\">\r\n @if (!section?.body?.details?.['stage0']?.['isStage0'] || section?.body?.details?.['stage0']?.['isStage0'] === 'false') {\r\n <ng-container>\r\n @if (section?.header?.personTo) {\r\n <div\r\n class=\"d-flex align-items-center gap-3\"\r\n (click)=\"$event.stopImmediatePropagation();\">\r\n <div\r\n (click)=\"toggleSmallProfileInfo($event, 'recipient')\"\r\n class=\"d-flex align-items-center gap-2 radius-3 h-40\"\r\n [ngClass]=\"{'user-avatar-name px-0 px-md-2': !section?.header?.delegatedTo, 'p-0': section?.header?.delegatedTo}\">\r\n <ds-avatar image=\"{{section?.header?.personToThumbnail}}\" size=\"small\" class=\"user-avatar\"></ds-avatar>\r\n @if (!section?.header?.delegatedTo) {\r\n <span\r\n class=\"fs-14 fw-medium d-inline-block panel-user-name text-truncate\"\r\n [ngClass]=\"{'panel-user-only': !section?.header?.delegatedTo}\"\r\n >{{ section?.header?.personTo }}</span>\r\n }\r\n </div>\r\n @if (section?.header?.delegatedTo) {\r\n <div\r\n class=\"d-flex align-items-center gap-3\"\r\n (click)=\"toggleSmallProfileInfo($event, 'delegate')\">\r\n <img\r\n class=\"rotate-arrow\"\r\n alt=\"\"\r\n src=\"data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHdpZHRoPSIyMSIgaGVpZ2h0PSIxMyIgdmlld0JveD0iMCAwIDIxIDEzIj48cGF0aCBkPSJNMjEsNy43NjNhMS42MjEsMS42MjEsMCwwLDEtLjQ0Ny41OTMsMS4zMDYsMS4zMDYsMCwwLDEtLjc1LjE5NGMtNy4yODQsMC04LjU2OCwwLTE1Ljg1MywwSDMuNjY5TDMuNjMsOC42Yy4wNzcuMDY0LjE1OC4xMjQuMjI5LjE5NHExLjcxLDEuNjksMy40MiwzLjM4MWExLjAyMywxLjAyMywwLDAsMSwuMjkxLDEuMDc5Ljk5Mi45OTIsMCwwLDEtLjguNzE5LDEuMDUzLDEuMDUzLDAsMCwxLTEtLjMzMVEzLjgzMSwxMS43MTksMS44ODYsOS44Yy0uNDQyLS40MzctLjg3OS0uODgxLTEuMzMtMS4zMDlBNC41NzIsNC41NzIsMCwwLDEsMCw3LjgxNFY3LjE4NUEzMC43ODMsMzAuNzgzLDAsMCwxLDIuNzMsNC4zNzFjMS0xLjAyNywyLjAzOC0yLjAyNSwzLjA2My0zLjAzMkExLjA0OSwxLjA0OSwwLDEsMSw3LjI3NywyLjgyQzYuNCwzLjcsNS41MDksNC41Nyw0LjYyNSw1LjQ0NmMtLjMyMy4zMjEtLjY0NC42NDUtLjk3My45NzYuMDg0LjA1OS4xODEuMDI3LjI3LjAyNyw3LjI1OCwwLDguNTE2LDAsMTUuNzc1LDBBMS4xMjksMS4xMjksMCwwLDEsMjEsNy4yOXYuNDcyWiIgdHJhbnNmb3JtPSJ0cmFuc2xhdGUoMCAtMC45OTkpIiBmaWxsPSIjYTU0ZWUxIi8+PC9zdmc+\"/>\r\n <div class=\"d-flex align-items-center gap-2 px-0 px-md-2 radius-3 user-avatar-name h-40\">\r\n <ds-avatar image=\"{{section?.header?.delegatedToThumbnail}}\" size=\"small\" class=\"user-avatar\"></ds-avatar>\r\n <span\r\n class=\"fs-14 fw-medium d-inline-block panel-user-name text-truncate\">{{ section?.header?.delegatedTo }}</span>\r\n </div>\r\n </div>\r\n }\r\n </div>\r\n }\r\n </ng-container>\r\n }\r\n\r\n @if (section?.body?.details?.['decision']?.key) {\r\n <ds-status\r\n class=\"main-status\"\r\n status=\"{{statusClass(section?.body?.details?.['decision']?.key)}}\">{{ section?.body?.details?.['decision']?.value }}\r\n </ds-status>\r\n }\r\n </div>\r\n\r\n <div class=\"approval-panel-toggle\">\r\n @if (approvalPanel.expanded) {\r\n <ds-icon icon=\"minus\" class=\"fs-20 fc-dark-gray\"></ds-icon>\r\n } @else {\r\n <ds-icon icon=\"plus-1\" class=\"fs-20 fc-coral\"></ds-icon>\r\n }\r\n </div>\r\n\r\n </div>\r\n </mat-expansion-panel-header>\r\n <section class=\"border-top pt-4\">\r\n <ng-container *ngComponentOutlet=\"sectionFormComponent; ndcDynamicInputs: input\"></ng-container>\r\n </section>\r\n\r\n</mat-expansion-panel>\r\n","import { Component, CUSTOM_ELEMENTS_SCHEMA, Input } from '@angular/core';\r\nimport { CoreI18nService } from '../../../services';\r\nimport { Form, Section } from '../../../interfaces';\r\nimport {MatAccordion, MatExpansionModule, MatExpansionPanel} from '@angular/material/expansion';\r\n\r\n@Component({\r\n selector: 'app-main-request-details',\r\n templateUrl: './main-request-details.component.html',\r\n styleUrls: ['./main-request-details.component.scss'],\r\n standalone: true,\r\n schemas: [CUSTOM_ELEMENTS_SCHEMA],\r\n imports: [\r\n MatExpansionModule,\r\n MatAccordion,\r\n MatExpansionPanel\r\n ]\r\n})\r\nexport class MainRequestDetailsComponent {\r\n @Input() section: Section;\r\n @Input() lov: any;\r\n @Input() form: Form;\r\n constructor(public i18n: CoreI18nService) {}\r\n\r\n get isExpanded(): boolean {\r\n return this.section?.body?.details?.['expandStage'] === 'true';\r\n }\r\n}\r\n","<mat-accordion class=\"primary-accordion main-request-accordion border-top\">\r\n <mat-expansion-panel\r\n [expanded]=\"isExpanded || form?.sections?.length === 1\"\r\n class=\"mb-3\"\r\n hideToggle\r\n #requestPanel=\"matExpansionPanel\"\r\n >\r\n <mat-expansion-panel-header>\r\n <h2 class=\"fs-16 fw-medium fc-coral m-0 flex-grow-1\">\r\n {{ i18n.translate(\"requestDetailsTitle\") }}\r\n </h2>\r\n @if (requestPanel.expanded) {\r\n <div class=\"d-inline-flex align-items-center gap-2\">\r\n <ds-icon icon=\"minus\" class=\"fs-20 fc-dark-gray\"></ds-icon>\r\n </div>\r\n } @else {\r\n <div class=\"d-inline-flex align-items-center gap-2\">\r\n <ds-icon icon=\"plus-1\" class=\"fs-20 fc-coral\"></ds-icon>\r\n </div>\r\n }\r\n </mat-expansion-panel-header>\r\n <section class=\"default-box box-shadow p-4 rounded-4\">\r\n <ng-content></ng-content>\r\n </section>\r\n </mat-expansion-panel>\r\n</mat-accordion>\r\n","import {ChangeDetectorRef, Component, CUSTOM_ELEMENTS_SCHEMA, DestroyRef, EventEmitter, inject, Input, Output, ViewChild} from '@angular/core';\r\nimport * as constants from '../../../constants';\r\nimport {FormsModule, NgForm} from '@angular/forms';\r\nimport {Form, Section} from '../../../interfaces';\r\nimport {CoreI18nService} from '../../../services';\r\nimport {NgClass, NgForOf, NgIf, NgTemplateOutlet} from '@angular/common';\r\nimport {MatAccordion} from '@angular/material/expansion';\r\nimport {FormSectionComponent} from '../form-section/form-section.component';\r\nimport {MainRequestDetailsComponent} from '../main-request-details/main-request-details.component';\r\nimport { takeUntilDestroyed } from '@angular/core/rxjs-interop';\r\n\r\n@Component({\r\n selector: 'app-workflow-section',\r\n templateUrl: './workflow-section.component.html',\r\n styleUrls: ['./workflow-section.component.scss'],\r\n schemas: [CUSTOM_ELEMENTS_SCHEMA],\r\n imports: [\r\n NgClass,\r\n MatAccordion,\r\n NgTemplateOutlet,\r\n NgIf,\r\n FormSectionComponent,\r\n MainRequestDetailsComponent,\r\n NgForOf,\r\n FormsModule\r\n ],\r\n standalone: true\r\n})\r\nexport class WorkflowSectionComponent {\r\n @ViewChild('f') public formStateObject: NgForm;\r\n @Output() sectionSubmitted: EventEmitter<any> = new EventEmitter();\r\n @Input() sections: Section[];\r\n @Input() isReadOnly: boolean;\r\n @Input() isLoading: boolean;\r\n @Input() form: Form;\r\n @Input() contentClass = 'default-box box-shadow p-4';\r\n startedListener = false;\r\n @Input() sectionsController: any;\r\n showButtonMenu = false;\r\n @Input() segmentDynamicLoaderService = null;\r\n @Input() sectionFormComponent = null;\r\n @Input() sectionName = constants.SECTION_ID_REQUEST_DETAILS;\r\n destroyRef = inject(DestroyRef);\r\n\r\n\r\n constructor(\r\n public i18n: CoreI18nService,\r\n private cdRef: ChangeDetectorRef,\r\n ) {\r\n/* _listenerService.listen().subscribe((result: any) => {\r\n if (result?.function == 'resetForm') {\r\n this.resetForm();\r\n } else if (result?.function == 'onSubmit') {\r\n const sectionSize = this.sections.length - 1;\r\n const section = this.sections[sectionSize];\r\n const data = result.data ? result.data : section;\r\n this.onSubmit(result?.action, data);\r\n }\r\n });*/\r\n }\r\n\r\n ngAfterViewChecked() {\r\n if (this.formStateObject && this.form && !this.startedListener) {\r\n this.formStateObject.valueChanges.pipe(\r\n takeUntilDestroyed(this.destroyRef)\r\n ).subscribe(\r\n /* istanbul ignore next */\r\n (form) => {\r\n Object.keys(form).forEach((key) => {\r\n if (\r\n this.sections[this.sections.length - 1].body.details[key] !==\r\n form[key] &&\r\n form[key] !== undefined\r\n )\r\n this.sections[this.sections.length - 1].body.details[key] =\r\n form[key];\r\n });\r\n }\r\n );\r\n this.sectionsController = this.formStateObject.controls;\r\n this.startedListener = true;\r\n }\r\n this.checkButtons();\r\n this.cdRef.detectChanges();\r\n }\r\n\r\n/* isSubmitting = {};\r\n disableButtons = false;*/\r\n\r\n/* onSubmit(action: any, section: any) {\r\n const sectionSize = this.sections.length - 1;\r\n let sectionDecision = this.sections[sectionSize].body.details.decision;\r\n if (sectionDecision && action === 'SUBMIT') {\r\n sectionDecision = { key: action };\r\n }\r\n if (sectionDecision && action !== 'SUBMIT') {\r\n sectionDecision = { key: action };\r\n }\r\n this.sections[sectionSize].body.details.decision = sectionDecision;\r\n this.profileRequesterService.isSubmitting[action] = true;\r\n this.profileRequesterService.disableButtons = true;\r\n this.stateMachineService\r\n .dispatch(\r\n constants.STATE_MACHINE_ACTION_SUBMIT_FORM,\r\n section,\r\n action\r\n )\r\n .then((form: any) => {\r\n this.profileRequesterService.isSubmitting[action] = true;\r\n this.profileRequesterService.disableButtons = true;\r\n const obj = {\r\n form: form,\r\n action: action\r\n };\r\n this.sectionSubmitted.emit(obj);\r\n });\r\n }*/\r\n\r\n/* resetForm() {\r\n this.formStateObject.reset();\r\n this.resetPropagator.propagate();\r\n }*/\r\n\r\n get isExpandableFromBackend(): boolean {\r\n return this.form?.sections?.length && this.form.sections.some(section => 'expandStage' in section?.body?.details);\r\n }\r\n\r\n buttonTypes(type) {\r\n switch (type) {\r\n case 'APPROVE':\r\n return '';\r\n case 'SENDBACK':\r\n return 'red';\r\n case 'REJECT':\r\n return 'red';\r\n default:\r\n return '';\r\n }\r\n }\r\n\r\n checkButtons() {\r\n const options = this.form?.lovs?.decision?.options;\r\n if (!Array.isArray(options)) return;\r\n options.forEach((item) => {\r\n if (\r\n item?.value != 'APPROVE' &&\r\n item?.value != 'REJECT' &&\r\n item?.value != 'SENDBACK' &&\r\n item?.value != 'SUBMIT' &&\r\n item?.value != 'CANCEL'\r\n ) {\r\n this.showButtonMenu = true;\r\n }\r\n });\r\n }\r\n}\r\n","<form #f=\"ngForm\" autocomplete=\"off\">\r\n <div *ngIf=\"form?.header?.status?.key !== 'NEW' \" class=\"mt-n3\" id=\"accordion\" role=\"tablist\"\r\n aria-multiselectable=\"true\">\r\n <app-main-request-details [lov]=\"form?.lovs\" [form]=\"form\" [section]=\"form?.sections[0]\">\r\n <ng-container *ngTemplateOutlet=\"contentReqDet\"></ng-container>\r\n </app-main-request-details>\r\n <header class=\"header-line fs-12 fw-medium fc-dark-gray mt-sm-5 mt-4 mb-4\" *ngIf=\"form?.sections.length > 1\">\r\n {{i18n.translate('Approvals')}}\r\n </header>\r\n <mat-accordion class=\"primary-accordion main-approval\">\r\n <ng-container *ngFor=\"let section of form?.sections; let i = index\">\r\n <app-form-section *ngIf=\"i !== 0\" class=\"app-form-section\" [segmentDynamicLoaderService]=\"segmentDynamicLoaderService\" [section]=section [lov]=\"form?.lovs\"\r\n [isReadOnly]=\"section.header.readOnly\" [form]=\"form\" [controllers]=\"sectionsController\">\r\n </app-form-section>\r\n </ng-container>\r\n </mat-accordion>\r\n </div>\r\n\r\n <section *ngIf=\"form?.header?.status?.key === 'NEW' \" class=\"default-box box-shadow p-4 rounded-4\">\r\n <ng-container *ngTemplateOutlet=\"contentReqDet\"></ng-container>\r\n </section>\r\n\r\n</form>\r\n\r\n\r\n<ng-template #contentReqDet><ng-content></ng-content></ng-template>\r\n","import {CommonModule} from '@angular/common';\r\nimport {Component, CUSTOM_ELEMENTS_SCHEMA, Inject, PLATFORM_ID} from '@angular/core';\r\nimport {FormControl, ReactiveFormsModule} from '@angular/forms';\r\nimport {MatMenuModule} from '@angular/material/menu';\r\nimport {MatToolbarModule} from '@angular/material/toolbar';\r\nimport {Router, RouterModule} from '@angular/router';\r\nimport {Subscription} from 'rxjs';\r\nimport {CoreI18nService, SidenavService} from '../../../../services';\r\nimport * as Constants from '../../../../constants';\r\nimport {CoreService} from \"../../../../services\";\r\n\r\n\r\n@Component({\r\n selector: 'app-header',\r\n standalone: true,\r\n imports: [\r\n CommonModule,\r\n ReactiveFormsModule,\r\n RouterModule,\r\n MatMenuModule,\r\n MatToolbarModule\r\n ],\r\n templateUrl: './header.component.html',\r\n styleUrls: ['./header.component.scss'],\r\n schemas: [CUSTOM_ELEMENTS_SCHEMA]\r\n})\r\nexport class HeaderComponent {\r\n search = new FormControl('');\r\n sidenavSubscription!: Subscription;\r\n isSidenavOpened = false;\r\n device = '';\r\n isMobile!: boolean;\r\n userData: any;\r\n userName: any;\r\n\r\n constructor(\r\n public readonly translate: CoreI18nService,\r\n private sidenavService: SidenavService,\r\n public coreService: CoreService,\r\n private router: Router,\r\n @Inject(PLATFORM_ID) private platformId: any\r\n ) {\r\n this.device = navigator.userAgent;\r\n\r\n if (this.isMobile) {\r\n document.documentElement.classList.add('inside-mobile-app');\r\n }\r\n }\r\n\r\n\r\n setLanguage(): void {\r\n const targetLang = this.translate.getLanguage() === 'en' ? 'ar' : 'en';\r\n let url = location.origin + `/${targetLang}/group/i-gate/asset-management`;\r\n window.open(url, '_self');\r\n }\r\n\r\n logout() {\r\n let logoutUrl = Constants.LOGOUT_URL;\r\n localStorage.removeItem('token');\r\n localStorage.removeItem('userName');\r\n localStorage.removeItem('user');\r\n const userSelectedLanguage = localStorage.getItem('language') ?? 'en';\r\n sessionStorage.clear();\r\n localStorage.setItem('language', userSelectedLanguage);\r\n window.open(logoutUrl, '_self');\r\n }\r\n\r\n\r\n ngOnInit(): void {\r\n this.sidenavSubscription = this.sidenavService.sideNavOpened.subscribe((val) => {\r\n this.isSidenavOpened = val;\r\n });\r\n }\r\n\r\n\r\n toggleSideNav() {\r\n document.documentElement.classList.toggle('main-sidenav-opened');\r\n this.sidenavService.sideNavOpened.next(!this.isSidenavOpened);\r\n }\r\n\r\n protected readonly location = location;\r\n}\r\n","<ng-container *ngIf=\"!isMobile\">\r\n <mat-toolbar\r\n class=\"align-items-center justify-content-between gap-3 border-bottom\"\r\n >\r\n <div class=\"d-flex align-items-center gap-3\">\r\n <ds-button\r\n shape=\"flat\"\r\n icon\r\n color=\"light-gray\"\r\n square\r\n (click)=\"toggleSideNav()\"\r\n >\r\n <ds-icon icon=\"burger-menu-1\" class=\"fs-24 fc-dark-gray\"></ds-icon>\r\n </ds-button>\r\n\r\n <a [href]=\"location.origin\">\r\n <figure class=\"m-0 d-flex\">\r\n <img class=\"main-logo\" src=\"assets/images/hub.svg\" alt=\"\" />\r\n </figure>\r\n </a>\r\n </div>\r\n\r\n <div class=\"d-flex align-items-center gap-3\">\r\n <ds-button\r\n shape=\"flat\"\r\n color=\"light-gray\"\r\n class=\"user-menu-btn\"\r\n [matMenuTriggerFor]=\"userMenu\"\r\n >\r\n <ds-avatar\r\n image=\"/group/i-gate/wm-bpm/forms/-/proxy/portrait?email={{userData?.email}}\"\r\n onerror=\"this.onerror=null;this.src='assets/images/user2.jpg'\"\r\n slot=\"prefix\"\r\n class=\"avatar\"\r\n >\r\n </ds-avatar>\r\n\r\n <span class=\"fs-14 fw-medium fc-black\">\r\n {{ coreService.getShortName( coreService?.loggedInUserData?.['name']) }}\r\n </span>\r\n\r\n <ds-icon\r\n slot=\"suffix\"\r\n icon=\"arrow\"\r\n class=\"fc-dark-gray fs-16\"\r\n ></ds-icon>\r\n </ds-button>\r\n </div>\r\n </mat-toolbar>\r\n\r\n <!-- User Menu -->\r\n <mat-menu #userMenu=\"matMenu\" class=\"user-menu\">\r\n <div mat-menu-item>\r\n <span class=\"fs-14\">{{ translate.translate('welcome') }}, </span>\r\n <br />\r\n <span class=\"fs-14 fw-medium line-height-1\">{{ coreService.getShortName( coreService?.loggedInUserData?.['name']) }}</span>\r\n </div>\r\n <button mat-menu-item (click)=\"setLanguage()\">\r\n <div class=\"d-flex align-items-center gap-2\">\r\n <ds-icon icon=\"globe\" class=\"fs-25 fc-purple\"></ds-icon>\r\n <span class=\"fs-14 fw-medium fc-black\">{{\r\n translate.translate('otherLang')\r\n }}</span>\r\n </div>\r\n </button>\r\n <button mat-menu-item (click)=\"logout()\">\r\n <div class=\"d-flex align-items-center gap-2\">\r\n <ds-icon icon=\"logout\" class=\"fs-25 fc-red\"></ds-icon>\r\n <span class=\"fs-14 fw-medium fc-black\">{{\r\n translate.translate('logout')\r\n }}</span>\r\n </div>\r\n </button>\r\n </mat-menu>\r\n</ng-container>\r\n","import {Component, CUSTOM_ELEMENTS_SCHEMA, Input, ViewChild} from '@angular/core';\r\nimport {Router, RouterLink, RouterLinkActive} from '@angular/router';\r\nimport {MatTooltipModule} from '@angular/material/tooltip';\r\nimport {MatMenu, MatMenuTrigger} from '@angular/material/menu';\r\nimport {SidenavService} from '../../../../services';\r\n\r\n@Component({\r\n selector: 'app-side-nav',\r\n standalone: true,\r\n imports: [RouterLinkActive, RouterLink, MatTooltipModule, MatMenu, MatMenuTrigger],\r\n templateUrl: './side-nav.component.html',\r\n styleUrl: './side-nav.component.scss',\r\n schemas: [CUSTOM_ELEMENTS_SCHEMA]\r\n})\r\nexport class SideNavComponent {\r\n\r\n @Input() isOpened = false;\r\n lang: any = '';\r\n Menu = [\r\n {\r\n name: 'Home',\r\n routerLink: '/group/hub/home1',\r\n icon: 'home-o',\r\n matmenu: false,\r\n List: []\r\n },\r\n {\r\n name: 'Inbox',\r\n routerLink: '/group/hub/inbox',\r\n icon: 'mail-o',\r\n matmenu: false,\r\n List: []\r\n },\r\n {\r\n name: 'Dobox',\r\n routerLink: '/group/hub/dobox',\r\n icon: 'chick-sqaure',\r\n matmenu: false,\r\n List: []\r\n },\r\n {\r\n name: 'Chat',\r\n routerLink: '/group/hub/chat',\r\n icon: 'chat-circle-2',\r\n matmenu: false,\r\n List: []\r\n },\r\n {\r\n name: 'Mail',\r\n routerLink: '/group/hub/mail',\r\n icon: 'mail-f',\r\n matmenu: false,\r\n List: []\r\n },\r\n {\r\n name: 'Meetings',\r\n routerLink: '/group/hub/meetings',\r\n icon: 'calendar',\r\n matmenu: false,\r\n List: []\r\n },\r\n {\r\n name: 'Offers',\r\n routerLink: '/group/hub/hub-offers',\r\n icon: 'voucher',\r\n matmenu: false,\r\n List: []\r\n },\r\n {\r\n name: 'stc today',\r\n routerLink: '/group/hub/stc-profile',\r\n icon: 'stc-profile-o',\r\n matmenu: false,\r\n List: []\r\n },\r\n {\r\n name: 'Articles',\r\n routerLink: '/group/hub/articles',\r\n icon: 'file-returned',\r\n matmenu: false,\r\n List: []\r\n },\r\n {\r\n name: 'Timeline',\r\n routerLink: '/group/hub/timeline',\r\n icon: 'list-dots',\r\n matmenu: false,\r\n List: []\r\n },\r\n {\r\n name: 'eforms',\r\n routerLink: '/group/hub/efroms',\r\n icon: 'file-o',\r\n matmenu: false,\r\n List: []\r\n },\r\n {\r\n name: 'Apps',\r\n routerLink: '/group/hub/apps',\r\n icon: 'card',\r\n matmenu: false,\r\n List: []\r\n },\r\n ];\r\n\r\n constructor(public sidenavService: SidenavService, private router: Router) {}\r\n\r\n\r\n closeSidenav() {\r\n document.documentElement.classList.remove('main-sidenav-opened');\r\n // this.sidenavService.sideNavOpened.next(false);\r\n }\r\n\r\n navigateTo(item: any) {\r\n window.location.href = item.routerLink;\r\n }\r\n\r\n innerWidth: any;\r\n menuMobile!: boolean;\r\n @ViewChild('MenuTrigger') MenuTrigger!: MatMenuTrigger;\r\n\r\n ngOnInit() {\r\n this.innerWidth = window.innerWidth;\r\n if (this.innerWidth < 1024) {\r\n this.menuMobile = true;\r\n } else {\r\n this.menuMobile = false;\r\n }\r\n }\r\n\r\n mouseover(matmenu: boolean, i: number) {\r\n if (!this.menuMobile) {\r\n if (matmenu) {\r\n document.documentElement.classList.remove('main-overlay-closed');\r\n // this.MenuTrigger[i].openMenu();\r\n } else {\r\n document.documentElement.classList.add('main-overlay-closed');\r\n // this.MenuTrigger[i].closeMenu();\r\n }\r\n }\r\n }\r\n\r\n goto(url?: string, matmenu?: boolean) {\r\n if (!this.menuMobile) {\r\n if (matmenu) {\r\n document.documentElement.classList.remove('main-overlay-closed');\r\n } else {\r\n document.documentElement.classList.add('main-overlay-closed');\r\n }\r\n }\r\n this.router.navigate([url]);\r\n }\r\n}\r\n","<aside>\r\n <div class=\"header d-flex d-lg-none\">\r\n <div class=\"d-flex h-100 mt-auto justify-content-between w-100\">\r\n <h1 class=\"fs-26 fw-bold fc-white logo\">academy</h1>\r\n <ds-button size=\"small\" color=\"purple\" class=\"close purple\" (click)=\"closeSidenav()\">\r\n <ds-icon icon=\"close\" class=\"fs-15 fc-white\"></ds-icon>\r\n </ds-button>\r\n </div>\r\n </div>\r\n <nav>\r\n <ul>\r\n <!-- (mouseenter)=\"menuMobile ? null : MenuTrigger.openMenu()\"-->\r\n <!-- (click)=\"goto(item.routerLink,item.matmenu) -->\r\n @for (item of Menu; track $index) {\r\n @if (item.matmenu) {\r\n <li\r\n (click)=\"closeSidenav();navigateTo(item)\" matTooltipPosition=\"right\" matTooltip=\"{{item.name }}\"\r\n [routerLinkActive]=\"'active'\" (click)=\"goto(item.routerLink!,item.matmenu)\" #MenuTrigger=\"matMenuTrigger\"\r\n [matMenuTriggerFor]=\"menuMenu\" [routerLinkActiveOptions]=\"{ exact: true }\" class=\"cursor-pointer\">\r\n <ds-icon icon=\"{{item.icon}}\" class=\"icon\"></ds-icon>\r\n <span class=\"menu-label\">\r\n {{ item.name }}\r\n </span>\r\n </li>\r\n <mat-menu #menuMenu=\"matMenu\" class=\"aside-menu visible-{{item.matmenu}}\">\r\n <app-mat-menu [title]=\"item.name \" [icon]=\"item.icon\" [list]=\"item.List\"></app-mat-menu>\r\n </mat-menu>\r\n } @else {\r\n <li\r\n (click)=\"closeSidenav();navigateTo(item)\" matTooltipPosition=\"right\" matTooltip=\"{{item.name }}\"\r\n [routerLinkActive]=\"'active'\" [routerLinkActiveOptions]=\"{ exact: true }\" class=\"cursor-pointer\">\r\n <ds-icon icon=\"{{item.icon}}\" class=\"icon\"></ds-icon>\r\n <span class=\"menu-label\">\r\n {{ item.name }}\r\n </span>\r\n </li>\r\n }\r\n }\r\n </ul>\r\n </nav>\r\n</aside>\r\n","import {DOCUMENT, NgClass, NgComponentOutlet, NgIf} from '@angular/common'\r\nimport {Component, Inject, Input, OnDestroy, OnInit, ViewChild} from \"@angular/core\";\r\nimport {MatSidenav, MatSidenavModule} from '@angular/material/sidenav'\r\nimport {Router, RouterOutlet} from \"@angular/router\";\r\nimport {Subscription} from \"rxjs\";\r\nimport {SidenavService} from \"../../../services\";\r\nimport {HeaderComponent} from \"./header/header.component\";\r\nimport {SideNavComponent} from \"./side-nav/side-nav.component\";\r\nimport {WorkflowSectionComponent} from \"../workflow-section/workflow-section.component\";\r\nimport {Form} from \"../../../interfaces\";\r\nimport {ServiceHeaderComponent} from \"../service-header/service-header.component\";\r\n\r\n@Component({\r\n selector: \"core-layout\",\r\n standalone: true,\r\n imports: [HeaderComponent, SideNavComponent, MatSidenavModule, RouterOutlet, NgComponentOutlet, WorkflowSectionComponent, ServiceHeaderComponent, NgClass, NgIf],\r\n templateUrl: \"./layout.component.html\",\r\n styleUrl: \"./layout.component.scss\",\r\n})\r\nexport class LayoutComponent implements OnInit, OnDestroy {\r\n @ViewChild(\"sidenav\", {static: true}) public sidenav!: MatSidenav;\r\n sideContent: any;\r\n private sidenavSubscription!: Subscription;\r\n @Input() form: Form;\r\n @Input() hubContainerMini: boolean = true;\r\n @Input() formTitle: string\r\n @Input() isLoading = false;\r\n @Input() serviceBrief: any[] = [];\r\n\r\n\r\n constructor(\r\n @Inject(DOCUMENT) private readonly document: Document,\r\n private readonly router: Router,\r\n private readonly sidenavService: SidenavService,\r\n ) {}\r\n\r\n\r\n ngOnInit(): void {\r\n this.sidenavSubscription = this.sidenavService.subject.subscribe(\r\n (value: any) => {\r\n this.sideContent = value.componentName;\r\n this.sidenav.mode = value.mode;\r\n this.sidenav.position = value.position;\r\n if (value.eventName === \"open\") {\r\n this.openSideNav();\r\n } else {\r\n this.closeSideNav();\r\n }\r\n }\r\n );\r\n }\r\n\r\n ngOnDestroy(): void {\r\n if (this.sidenavSubscription) {\r\n this.sidenavSubscription.unsubscribe();\r\n }\r\n }\r\n\r\n onClose() {\r\n this.document.body.classList.remove(\"NoScroll\");\r\n this.document.documentElement.classList.remove(\"NoScroll\");\r\n }\r\n\r\n backdropClick() {\r\n this.sidenav.close().then(r => {});\r\n this.sidenavService.closeSidenav();\r\n this.document.body.classList.remove(\"NoScroll\");\r\n this.document.documentElement.classList.remove(\"NoScroll\");\r\n }\r\n\r\n private openSideNav() {\r\n this.sidenav.open().then(r => {});\r\n this.document.body.classList.add(\"NoScroll\");\r\n this.document.documentElement.classList.add(\"NoScroll\");\r\n }\r\n\r\n private closeSideNav() {\r\n this.sidenav.close().then(r => {});\r\n }\r\n}\r\n","<!--<app-header></app-header>-->\r\n<section class=\"d-flex\">\r\n<!-- <app-side-nav></app-side-nav>-->\r\n <mat-sidenav-container\r\n class=\"flex-grow-1\"\r\n [hasBackdrop]=\"true\"\r\n (backdropClick)=\"backdropClick()\"\r\n >\r\n <mat-sidenav\r\n #sidenav\r\n autoFocus=\"false\"\r\n fixedInViewport\r\n [position]=\"'end'\"\r\n (closedStart)=\"onClose()\"\r\n >\r\n <ng-container *ngComponentOutlet=\"sideContent\">\r\n<!-- <app-side-nav></app-side-nav>-->\r\n </ng-container>\r\n </mat-sidenav>\r\n <mat-sidenav-content>\r\n <main\r\n class=\"hadPadding service-wrapper\"\r\n [ngClass]=\"hubContainerMini ? 'hub-container-mini' : 'hub-container'\">\r\n\r\n <ng-content ></ng-content>\r\n <ng-content select=\"[workflow]\"></ng-content>\r\n\r\n </main>\r\n </mat-sidenav-content>\r\n </mat-sidenav-container>\r\n</section>\r\n","import {Component, CUSTOM_ELEMENTS_SCHEMA, DestroyRef, inject, Input, NO_ERRORS_SCHEMA, OnInit} from '@angular/core';\r\nimport {Form, Section} from \"../../interfaces\";\r\nimport {ActionStateService, CoreI18nService} from \"../../services\";\r\nimport {NgClass} from \"@angular/common\";\r\nimport {ActionButtonsComponent,\r\n AttachmentSectionComponent,\r\n CheckBoxComponent,\r\n CustomSearchableComponent,\r\n DatePickerComponent,\r\n DateRangePickerComponent,\r\n InputComponent,\r\n InputCurrencyComponent,\r\n InputEmailComponent,\r\n InputNumberComponent,\r\n InputTelephoneComponent,\r\n RadioComponent,\r\n SearchEmployeeComponent,\r\n TextareaComponent\r\n} from '../../components/shared-components';\r\nimport { RegexPatterns } from '../../regex/regex-patterns';\r\nimport { ToggleButtonComponent } from \"../../components/shared-components\";\r\nimport { TableComponent } from '../../components/shared-components/table/table.component';\r\nimport { takeUntilDestroyed } from '@angular/core/rxjs-interop';\r\nimport {FormBuilder, FormGroup, ReactiveFormsModule, Validators, FormControl, ValidatorFn, AbstractControl} from \"@angular/forms\";\r\nimport {DocsUploaderComponent} from \"../../components/shared-components\";\r\nimport { TranslatePipe } from '../../pipes/translate.pipe';\r\n// import { TranslatePipe } from '../../pipes/translate.pipe';\r\n\r\n@Component({\r\n selector: 'app-request-details-section',\r\n templateUrl: './request-details-section.component.html',\r\n styleUrls: ['./request-details-section.component.scss'],\r\n standalone: true,\r\n schemas: [CUSTOM_ELEMENTS_SCHEMA, NO_ERRORS_SCHEMA],\r\n imports: [\r\n NgClass,\r\n InputComponent,\r\n ActionButtonsComponent,\r\n ReactiveFormsModule,\r\n CustomSearchableComponent,\r\n CheckBoxComponent,\r\n TextareaComponent,\r\n InputCurrencyComponent,\r\n DatePickerComponent,\r\n DateRangePickerComponent,\r\n InputEmailComponent,\r\n InputNumberComponent,\r\n RadioComponent,\r\n ToggleButtonComponent,\r\n InputTelephoneComponent,\r\n DocsUploaderComponent,\r\n SearchEmployeeComponent,\r\n AttachmentSectionComponent,\r\n TableComponent,\r\n TranslatePipe\r\n ]\r\n})\r\n\r\n\r\nexport class RequestDetailsSectionComponent implements OnInit{\r\n\r\n @Input() isReadOnly: boolean;\r\n @Input() section: Section;\r\n @Input() form: Form;\r\n @Input() lov: any;\r\n isLoading: boolean = false;\r\n\r\n @Input() className: string = \"info-section\";\r\n formGroup: FormGroup;\r\n options: string[] = ['Option 1', 'Option 2', 'Option 3'];\r\n private readonly DEFAULT_PAGE_SIZE = 10;\r\n private readonly DEFAULT_PAGE_NUMBER = 0;\r\n pageNumber: number = this.DEFAULT_PAGE_NUMBER;\r\n pageSize: number = this.DEFAULT_PAGE_SIZE;\r\n columnsConfig: any[] = [];\r\n columns: string[] = [];\r\n destroyRef = inject(DestroyRef);\r\n requiredSearchable:boolean;\r\n\r\n isError: boolean = false;\r\n categoryData = [\r\n {\r\n \"assetDeviceType\": null,\r\n \"brand\": \"Benq\",\r\n \"colors\": null,\r\n \"assetCompanies\": null,\r\n \"descAr\": null,\r\n \"descEn\": null,\r\n \"estoreVisible\": false,\r\n \"id\": \"402\",\r\n \"model\": \"B400\",\r\n \"files\": null,\r\n \"vendors\": [\r\n {\r\n \"id\": 71,\r\n \"vendorName\": null,\r\n \"vendorNumber\": \"26\",\r\n \"__typename\": \"VendorDto\"\r\n }\r\n ],\r\n \"category\": null,\r\n \"assetType\": \"Scanner\",\r\n \"classifications\": null,\r\n \"consumedCount\": 0,\r\n \"consumedPercentage\": 0,\r\n \"specs\": [\r\n \"4GB\"\r\n ],\r\n \"sumQuantity\": 1,\r\n \"__typename\": \"AllAssetsDto\"\r\n },\r\n {\r\n \"assetDeviceType\": null,\r\n \"brand\": \"HP\",\r\n \"colors\": null,\r\n \"assetCompanies\": null,\r\n \"descAr\": null,\r\n \"descEn\": null,\r\n \"estoreVisible\": false,\r\n \"id\": \"403\",\r\n \"model\": \"EliteBook\",\r\n \"files\": null,\r\n \"vendors\": [\r\n {\r\n \"id\": 71,\r\n \"vendorName\": null,\r\n \"vendorNumber\": \"26\",\r\n \"__typename\": \"VendorDto\"\r\n }\r\n ],\r\n \"category\": null,\r\n \"assetType\": \"Laptop\",\r\n \"classifications\": null,\r\n \"consumedCount\": 0,\r\n \"consumedPercentage\": 0,\r\n \"specs\": [\r\n \"512GB\"\r\n ],\r\n \"sumQuantity\": 1,\r\n \"__typename\": \"AllAssetsDto\"\r\n },\r\n {\r\n \"assetDeviceType\": null,\r\n \"brand\": \"Hp\",\r\n \"colors\": null,\r\n \"assetCompanies\": null,\r\n \"descAr\": null,\r\n \"descEn\": null,\r\n \"estoreVisible\": false,\r\n \"id\": \"404\",\r\n \"model\": \"Laser\",\r\n \"files\": null,\r\n \"vendors\": [\r\n {\r\n \"id\": 71,\r\n \"vendorName\": null,\r\n \"vendorNumber\": \"26\",\r\n \"__typename\": \"VendorDto\"\r\n }\r\n ],\r\n \"category\": null,\r\n \"assetType\": \"Printer\",\r\n \"classifications\": null,\r\n \"consumedCount\": 0,\r\n \"consumedPercentage\": 0,\r\n \"specs\": [\r\n \"2GB\"\r\n ],\r\n \"sumQuantity\": 1,\r\n \"__typename\": \"AllAssetsDto\"\r\n },\r\n {\r\n \"assetDeviceType\": null,\r\n \"brand\": \"Asus\",\r\n \"colors\": null,\r\n \"assetCompanies\": null,\r\n \"descAr\": null,\r\n \"descEn\": null,\r\n \"estoreVisible\": false,\r\n \"id\": \"405\",\r\n \"model\": \"A500\",\r\n \"files\": null,\r\n \"vendors\": [\r\n {\r\n \"id\": 71,\r\n \"vendorName\": null,\r\n \"vendorNumber\": \"26\",\r\n \"__typename\": \"VendorDto\"\r\n }\r\n ],\r\n \"category\": null,\r\n \"assetType\": \"Laptop\",\r\n \"classifications\": null,\r\n \"consumedCount\": 0,\r\n \"consumedPercentage\": 0,\r\n \"specs\": [\r\n \"1TB\"\r\n ],\r\n \"sumQuantity\": 1,\r\n \"__typename\": \"AllAssetsDto\"\r\n },\r\n {\r\n \"assetDeviceType\": null,\r\n \"brand\": \"Dell\",\r\n \"colors\": null,\r\n \"assetCompanies\": null,\r\n \"descAr\": null,\r\n \"descEn\": null,\r\n \"estoreVisible\": false,\r\n \"id\": \"407\",\r\n \"model\": \"Latitude\",\r\n \"files\": null,\r\n \"vendors\": [\r\n {\r\n \"id\": 71,\r\n \"vendorName\": null,\r\n \"vendorNumber\": \"26\",\r\n \"__typename\": \"VendorDto\"\r\n }\r\n ],\r\n \"category\": null,\r\n \"assetType\": \"Laptop\",\r\n \"classifications\": null,\r\n \"consumedCount\": 0,\r\n \"consumedPercentage\": 0,\r\n \"specs\": [\r\n \"1TB\"\r\n ],\r\n \"sumQuantity\": 4,\r\n \"__typename\": \"AllAssetsDto\"\r\n },\r\n {\r\n \"assetDeviceType\": null,\r\n \"brand\": \"Samsung\",\r\n \"colors\": null,\r\n \"assetCompanies\": null,\r\n \"descAr\": null,\r\n \"descEn\": null,\r\n \"estoreVisible\": false,\r\n \"id\": \"408\",\r\n \"model\": \"Galaxy\",\r\n \"files\": null,\r\n \"vendors\": [\r\n {\r\n \"id\": 71,\r\n \"vendorName\": null,\r\n \"vendorNumber\": \"26\",\r\n \"__typename\": \"VendorDto\"\r\n }\r\n ],\r\n \"category\": null,\r\n \"assetType\": \"Tablet\",\r\n \"classifications\": null,\r\n \"consumedCount\": 0,\r\n \"consumedPercentage\": 0,\r\n \"specs\": [\r\n \"256GB\"\r\n ],\r\n \"sumQuantity\": 1,\r\n \"__typename\": \"AllAssetsDto\"\r\n }\r\n ]\r\n\r\n totalElements: number = 6;\r\n\r\n\r\n constructor(public i18n: CoreI18nService, private fb: FormBuilder, private actionStateService: ActionStateService) {\r\n\r\n }\r\n\r\n ngOnInit() {\r\n this.createForm();\r\n this.initializeTableConfig()\r\n this.formGroup.get('checkbox').valueChanges.subscribe(res=> {\r\n if (res){\r\n this.formGroup.get('customSearchable').setValidators(Validators.required)\r\n this.requiredSearchable = true;\r\n console.log(this.requiredSearchable)\r\n }else {\r\n this.formGroup.get('customSearchable').clearValidators();\r\n this.requiredSearchable = false\r\n console.log(this.requiredSearchable)\r\n }\r\n this.formGroup.get('customSearchable').updateValueAndValidity();\r\n\r\n })\r\n }\r\n\r\n\r\n initializeTableConfig() {\r\n this.initializeColumns()\r\n this.initializeColumnConfig()\r\n\r\n}\r\ninitializeColumns() {\r\n this.columns = ['id', 'assetType', 'brand', 'model', 'sumQuantity', 'specs', 'allocate'];\r\n}\r\n\r\ninitializeColumnConfig() {\r\n this.columnsConfig = [\r\n {\r\n label: 'Id',\r\n type: 'text',\r\n },\r\n {\r\n label: 'Asset Type',\r\n type: 'text',\r\n },\r\n {\r\n label: 'Brand',\r\n type: 'text'\r\n },\r\n {\r\n label: 'Model',\r\n type: 'text'\r\n },\r\n {\r\n label: 'Quantity',\r\n type: 'formId'\r\n },\r\n {\r\n label: 'Capacity',\r\n type: 'specs',\r\n clickableText: 'View'\r\n },\r\n {\r\n label: 'Actions',\r\n type: 'actions',\r\n actions: [\r\n {viewMode: 'allocate', actionName: \"Allocate\", disabled:true},\r\n {viewMode: 'edit', actionName: \"Edit\", action: \"edit\",onClick: (asset: any) => {\r\n this.editAsset(asset);\r\n },},\r\n {viewMode: 'delete', actionName: \"Delete\", action: \"delete\",onClick: (asset: any) => {\r\n this.deleteAsset(asset);\r\n },},\r\n {viewMode: 'chart', actionName: \"Chart\", action:\"chart\"},\r\n ]\r\n },\r\n ];\r\n}\r\n\r\n\r\n createForm() {\r\n let newForm = {\r\n input1: ['', Validators.required]\r\n };\r\n this.lov?.['decision']?.options?.forEach(option => {\r\n newForm[option.value] = [''];\r\n })\r\n this.formGroup = this.fb.group({\r\n input: new FormControl(null, [Validators.required]),\r\n currencyInput: new FormControl(null, Validators.required),\r\n emailInput: new FormControl({value: null,disabled: true}, Validators.required),\r\n numberInput: new FormControl(null, Validators.required),\r\n customSearchable: new FormControl(null, Validators.required),\r\n checkbox: new FormControl(null ,[Validators.requiredTrue, Validators.required]),\r\n textArea: new FormControl(null, [Validators.required,Validators.maxLength(5)]),\r\n datePicker: new FormControl(null, Validators.required),\r\n datePickerRange: new FormControl(null, Validators.required),\r\n radio: new FormControl(null, Validators.required),\r\n toggle: new FormControl(null, Validators.required),\r\n telephone: new FormControl(null, Validators.required),\r\n searchEmployee: new FormControl(null, Validators.required),\r\n // ...newForm,\r\n attachment: new FormControl(null, Validators.required),\r\n attachmentSection: new FormControl([], Validators.required),\r\n });\r\n this.lov?.['decision']?.options?.forEach(option => {\r\n let isActionValid = this.checkValidity(option.value);\r\n this.actionStateService.setActionValid(option.value, isActionValid);\r\n console.log(isActionValid)\r\n\r\n })\r\n\r\n\r\n // this.formGroup = this.fb.group({\r\n // input: new FormControl(null),\r\n // currencyInput: new FormControl(null),\r\n // emailInput: new FormControl({value: null,disabled: true}),\r\n // numberInput: new FormControl(null),\r\n // customSearchable: new FormControl(null),\r\n // checkbox: new FormControl(null),\r\n // textArea: new FormControl(null),\r\n // datePicker: new FormControl(null),\r\n // datePickerRange: new FormControl(null),\r\n // radio: new FormControl(null),\r\n // toggle: new FormControl(null),\r\n // telephone: new FormControl(null),\r\n // searchEmployee: new FormControl(null),\r\n // // ...newForm,\r\n // attachment: new FormControl(null),\r\n // attachmentSection: new FormControl([]),\r\n // });\r\n this.formGroup.setValue(this.section.body.details);\r\n // console.log(this.section.body.detils);\r\n // console.log(this.lov?.['approverActions']?.options)\r\n this.formGroup.valueChanges.subscribe(value => {\r\n this.lov?.['decision']?.options?.forEach(option => {\r\n let isActionValid = this.checkValidity(option.value);\r\n this.actionStateService.setActionValid(option.value, isActionValid);\r\n\r\n })\r\n })\r\n }\r\n\r\n // this.formGroup.valueChanges.subscribe(value => {\r\n // this.lov?.['decision']?.options?.forEach(option => {\r\n // let isActionValid = this.checkValidity(option.value);\r\n // this.actionStateService.setActionValid(option.value, isActionValid);\r\n // this.section.body.details = this.formGroup.value\r\n // /!*{\r\n // input1: this.fieldsForm.get('input1').value\r\n // }*!/\r\n // })\r\n // })\r\n // }\r\n // createForm() {\r\n // this.formGroup = this.fb.group({\r\n // customerName: new FormControl(null, [Validators.required]),\r\n // customerPhone: new FormControl(null, [Validators.required]),\r\n // reasonForRequest: new FormControl(null, [Validators.required]),\r\n // callType: new FormControl(null, [Validators.required]),\r\n // centerOfCalls: new FormControl(null, [Validators.required]),\r\n // callDate: new FormControl(null, [Validators.required]),\r\n // agreement: new FormControl(null, [Validators.required,Validators.requiredTrue]),\r\n // });\r\n // this.formGroup.valueChanges.pipe(\r\n // takeUntilDestroyed(this.destroyRef)\r\n // ).subscribe(value => {\r\n // this.lov?.['decision']?.options?.forEach(option => {\r\n // let isActionValid = this.checkValidity(option.value);\r\n // this.actionStateService.setActionValid(option.value, isActionValid);\r\n // this.section.body.details = this.formGroup.value\r\n // this.section.body.details.customerPhone = this.section.body.details.customerPhone?.e164Number\r\n // // this.section.body.details.agreement = (this.section.body.details.agreement).toString()\r\n\r\n // })\r\n // })\r\n // console.log(this.lov?.['decision']?.options)\r\n // console.log(this.section.body.details)\r\n // this.formGroup.setValue(this.section.body.details);\r\n // console.log('customCallSubmit', this.formGroup.value)\r\n // }\r\n\r\n editAsset(asset){\r\n console.log(asset)\r\n }\r\n startsWithDMOEOrCR(): ValidatorFn {\r\n return (control: AbstractControl): { [key: string]: any } | null => {\r\n const value = control.value;\r\n if (value && (value.startsWith('DMOE-') || value.startsWith('CR-'))) {\r\n return null; // Valid\r\n }\r\n return { startsWithInvalid: true }; // Invalid\r\n };\r\n }\r\n deleteAsset(asset){\r\n console.log(asset)\r\n }\r\n\r\n formValue(form){\r\nconsole.log(form.value)\r\n }\r\n\r\n checkValidity(action: string): boolean {\r\n switch (action) {\r\n case 'SUBMIT':\r\n return this.formGroup.valid;\r\n case 'APPROVE':\r\n return true;\r\n case 'REJECT':\r\n return this.formGroup.valid;\r\n case 'SENDBACK':\r\n return this.formGroup.valid;\r\n case 'SAVE_CHANGES':\r\n return true;\r\n default:\r\n return false;\r\n }\r\n }\r\n\r\n\r\n customCallSubmit(action: string) {\r\n console.log('customCallSubmit', action)\r\n }\r\n\r\n resetForm() {\r\n this.actionStateService.resetAction$.next();\r\n }\r\n\r\n pageChanged(event: any) {\r\n this.pageNumber = event.pageIndex\r\n this.pageSize = event.pageSize\r\n}\r\n\r\n}\r\n","<div>\r\n <form [ngClass]=\"{'form-section-divide form-section':!section?.header?.readOnly,'info-section':section?.header?.readOnly}\" [formGroup]=\"formGroup\">\r\n\r\n <app-search-employee\r\n class=\"section-item full\"\r\n [multiple]=\"true\"\r\n [arrayList]=\"formGroup.get('searchEmployee').value\"\r\n [isReadOnly]=\"isReadOnly\"\r\n formControlName=\"searchEmployee\"\r\n label=\"Search-employee\"></app-search-employee>\r\n <app-input class=\"section-item full\" [isReadOnly]=\"isReadOnly\" [loading]=\"true\" type=\"enOnly\" formControlName=\"input\" label=\"Input\"></app-input>\r\n <app-input-currency class=\"section-item full\" [isReadOnly]=\"isReadOnly\" formControlName=\"currencyInput\" label=\"currency\"></app-input-currency>\r\n <app-input-email class=\"section-item full\" [isReadOnly]=\"isReadOnly\" formControlName=\"emailInput\" label=\"email\"></app-input-email>\r\n <app-input-number class=\"section-item full\" [isReadOnly]=\"isReadOnly\" formControlName=\"numberInput\" label=\"number\"></app-input-number>\r\n <app-custom-searchable\r\n class=\"section-item mb-0 full\"\r\n [isReadOnly]=\"isReadOnly\"\r\n formControlName=\"customSearchable\"\r\n label=\"Custom-searchable\"\r\n [options]=\"lov?.['approverActions']?.options\"\r\n [displayedLabel]=\"'name'\"\r\n [key]=\"'name'\"></app-custom-searchable>\r\n <app-checkbox\r\n class=\"section-item full\"\r\n [isReadOnly]=\"isReadOnly\"\r\n formControlName=\"checkbox\"\r\n termsLabel=\"Terms and conditions\"\r\n label=\"check-box\"\r\n [containTerms]=\"true\"></app-checkbox>\r\n <app-textarea class=\"section-item full\" [isReadOnly]=\"isReadOnly\" formControlName=\"textArea\" label=\"Text-area\"></app-textarea>\r\n <app-datepicker\r\n class=\"section-item full\"\r\n [isReadOnly]=\"isReadOnly\"\r\n formControlName=\"datePicker\"\r\n [matSuffix]=\"true\"\r\n label=\"Date-picker\"></app-datepicker>\r\n <app-date-range-picker\r\n class=\"section-item full\"\r\n [isReadOnly]=\"isReadOnly\"\r\n formControlName=\"datePickerRange\"\r\n label=\"Date-picker-range\"\r\n [matSuffix]=\"true\"></app-date-range-picker>\r\n <app-radio class=\"section-item full\" [isReadOnly]=\"isReadOnly\" formControlName=\"radio\" [options]=\"options\" label=\"Radio\"></app-radio>\r\n <app-toggle-button\r\n class=\"section-item full\"\r\n [isReadOnly]=\"isReadOnly\"\r\n formControlName=\"toggle\"\r\n [options]=\"lov?.['approverActions']?.options\"\r\n label=\"Toggle-button\"\r\n [displayedLabel]=\"'name'\"\r\n [key]=\"'name'\"></app-toggle-button>\r\n <app-input-telephone class=\"section-item full\" [isReadOnly]=\"isReadOnly\" formControlName=\"telephone\" label=\"Telephone\"></app-input-telephone>\r\n <app-file-uploader\r\n class=\"section-item full\"\r\n [callApi]=\"true\"\r\n [isReadOnly]=\"isReadOnly\"\r\n [multiple]=\"false\"\r\n label=\"attachment\"\r\n formControlName=\"attachment\"></app-file-uploader>\r\n <app-attachment-section\r\n class=\"section-item full\"\r\n [descriptionRequired]=\"false\"\r\n label=\"Attachment section\"\r\n [commentsRequired]=\"false\"\r\n [isReadOnly]=\"isReadOnly\"\r\n formControlName=\"attachmentSection\"></app-attachment-section>\r\n\r\n\r\n <!-- <app-table\r\n [columnsConfig]=\"columnsConfig\"\r\n [columns]=\"columns\"\r\n [isError]=\"isError\"\r\n [isLoading]=\"isLoading\"\r\n [rows]=\"categoryData\" [hasPaginator]=\"true\"\r\n [pageSize]=\"pageSize\" [currentPage]=\"pageNumber\"\r\n [totalElements]=\"totalElements\"\r\n (pageChange)=\"pageChanged($event)\"\r\n class=\"new-primary-table full\">\r\n </app-table> -->\r\n\r\n\r\n </form>\r\n\r\n\r\n</div>\r\n@if (!section?.header?.readOnly) {\r\n <div class=\"mt-4\">\r\n <lib-action-buttons\r\n [lovOptions]=\"lov?.['decision']?.options\"\r\n [lovType]=\"lov?.['decision']?.type\"\r\n [section]=\"section\"\r\n [form]=\"form\"\r\n [sections]=\"form.sections\"\r\n [showApprovalCycle]=\"true\"\r\n [customCall]=\"false\"\r\n [fieldsForm]=\"formGroup\"\r\n (customCallEmit)=\"customCallSubmit($event)\"\r\n (resetFormEmit)=\"resetForm()\"\r\n />\r\n </div>\r\n}\r\n","import {Component, CUSTOM_ELEMENTS_SCHEMA, DestroyRef, inject, Input, NO_ERRORS_SCHEMA, OnInit} from '@angular/core';\r\nimport {Form, Section} from \"../../interfaces\";\r\nimport {ActionStateService, CoreI18nService} from \"../../services\";\r\nimport {NgClass, NgForOf, NgIf} from \"@angular/common\";\r\nimport {ActionButtonsComponent, TextareaComponent} from \"../../components/shared-components\";\r\nimport {FormBuilder, FormControl, FormGroup, ReactiveFormsModule, Validators} from \"@angular/forms\";\r\nimport {CustomSearchableComponent, InputComponent} from '../../components/shared-components';\r\nimport {ValidationErrorsComponent} from '../../components/shared-components/form-field/validation-errors/validation-errors.component';\r\nimport { takeUntilDestroyed } from '@angular/core/rxjs-interop';\r\n\r\n@Component({\r\n selector: 'app-general-approver-section',\r\n templateUrl: './general-approver-section.component.html',\r\n styleUrls: ['./general-approver-section.component.scss'],\r\n standalone: true,\r\n schemas: [CUSTOM_ELEMENTS_SCHEMA, NO_ERRORS_SCHEMA],\r\n imports: [\r\n NgClass,\r\n InputComponent,\r\n NgIf,\r\n NgForOf,\r\n ActionButtonsComponent,\r\n ReactiveFormsModule,\r\n ValidationErrorsComponent,\r\n CustomSearchableComponent,\r\n TextareaComponent\r\n ]\r\n})\r\nexport class GeneralApproverSectionComponent implements OnInit{\r\n\r\n @Input() isReadOnly: boolean;\r\n @Input() section: Section;\r\n @Input() form: Form;\r\n @Input() lov: any;\r\n @Input() className: string = \"info-section\";\r\n fieldsForm: FormGroup;\r\n numbers = [...Array(100).keys()].map(i => i + 1);\r\n destroyRef = inject(DestroyRef);\r\n formGroup: FormGroup;\r\n\r\n\r\n constructor(public i18n: CoreI18nService, private fb: FormBuilder, private actionStateService: ActionStateService) {\r\n\r\n }\r\n\r\nngOnInit() {\r\n this.createForm();\r\n this.formGroup.setValue(this.section.body.details);\r\n }\r\n\r\n createForm() {\r\n this.formGroup = this.fb.group({\r\n comment: new FormControl('' ),\r\n decision: new FormControl(''),\r\n });\r\n this.formGroup.valueChanges.subscribe(value => {\r\n this.lov?.['decision']?.options?.forEach(option => {\r\n let isActionValid = this.checkValidity(option.value);\r\n this.actionStateService.setActionValid(option.value, isActionValid);\r\n this.section.body.details = this.formGroup.value\r\n })\r\n })\r\n }\r\n\r\n checkValidity(action: string): boolean {\r\n switch (action) {\r\n case 'APPROVE':\r\n return true;\r\n case 'REJECT':\r\n return this.fieldsForm.valid;\r\n case 'SENDBACK':\r\n return this.fieldsForm.valid;\r\n default:\r\n return false;\r\n }\r\n }\r\n\r\n\r\n customCallSubmit(action: string) {\r\n console.log('customCallSubmit', action)\r\n }\r\n\r\n resetForm() {\r\n this.fieldsForm.reset()\r\n }\r\n\r\n}\r\n","<div>\r\n <form [ngClass]=\"{'form-section-divide form-section':!section?.header?.readOnly,'info-section':section?.header?.readOnly}\"\r\n [formGroup]=\"formGroup\">\r\n\r\n <app-textarea class=\"section-item\" formControlName=\"comment\" [label]=\"'comment'\" [required]=\"false\"\r\n [isReadOnly]=\"section?.header?.readOnly\">\r\n </app-textarea>\r\n\r\n </form>\r\n</div>\r\n\r\n\r\n@if (!section?.header?.readOnly) {\r\n<div class=\"mt-4\">\r\n <lib-action-buttons [lovOptions]=\"lov?.['decision']?.options\" [lovType]=\"lov?.['decision']?.type\" [section]=\"section\"\r\n [form]=\"form\" [sections]=\"form.sections\" [showApprovalCycle]=\"true\" [customCall]=\"false\" [fieldsForm]=\"formGroup\"\r\n (customCallEmit)=\"customCallSubmit($event)\" (resetFormEmit)=\"resetForm()\" />\r\n</div>\r\n}\r\n","import {GeneralApproverSectionComponent} from \"../general-approver-section/general-approver-section.component\";\r\n\r\n\r\nexport default {\r\n roleToApprovalSectionMapping: {\r\n vpr_d: GeneralApproverSectionComponent,\r\n sel_dsg : GeneralApproverSectionComponent,\r\n }\r\n}\r\n","import { Injectable } from '@angular/core';\r\nimport * as en from '../../i18n/en';\r\nimport * as ar from '../../i18n/ar';\r\n\r\n@Injectable({\r\n providedIn: 'any',\r\n})\r\nexport class I18nService {\r\n private locales: {[key: string]: {[key: string]: string}};\r\n private coreLocales: {[key: string]: {[key: string]: string}};\r\n private language : string;\r\n\r\n constructor() {\r\n this.language = (window as any).wmConfig.language;\r\n // this.language = \"en\";\r\n this.locales = {en: en.default, ar: ar.default};\r\n }\r\n\r\n translate(key) {\r\n let result = null;\r\n try {\r\n result = this.coreLocales[this.language][key];\r\n if (!result) {\r\n result = this.locales[this.language][key];\r\n }\r\n }\r\n catch(e) {\r\n result = null;\r\n }\r\n return result || key;\r\n }\r\n\r\n getLanguage() {\r\n return this.language;\r\n }\r\n}\r\n","import { Injectable } from '@angular/core';\r\nimport * as Constants from '../../constants';\r\nimport { I18nService } from './i18n.service';\r\nimport {RequestDetailsSectionComponent} from \"../request-details-section/request-details-section.component\";\r\nimport segmentDynamicLoaderConfiguration from '../config/segment-dynamic-loader.config';\r\n\r\n@Injectable({\r\n providedIn: 'any',\r\n})\r\nexport class SegmentDynamicLoaderService {\r\n requestDetailsSection = RequestDetailsSectionComponent;\r\n roleToApprovalSectionMapping = segmentDynamicLoaderConfiguration.roleToApprovalSectionMapping;\r\n\r\n constructor(private i18n: I18nService) {\r\n\r\n }\r\n\r\n getComponent(componentId: string) {\r\n if (componentId.toLowerCase() === Constants.SECTION_ID_REQUEST_DETAILS.toLowerCase()) {\r\n return this.requestDetailsSection;\r\n }\r\n let role = componentId.toLowerCase().split(Constants.SECTION_ID_APPROVAL_PARTIAL_NAME.toLowerCase())[0].toLowerCase();\r\n return this.roleToApprovalSectionMapping[role];\r\n }\r\n\r\n getSectionName(componentId: string): string {\r\n if(componentId.toLowerCase() === Constants.SECTION_ID_REQUEST_DETAILS.toLowerCase()) {\r\n return this.i18n.translate('requestDetailsTitle');\r\n }\r\n else if(componentId.toLowerCase() === 'hrRequestDetails'.toLowerCase()) {\r\n return this.i18n.translate('hrRequestDetailsTitle');\r\n }\r\n let role = componentId.toLowerCase().split(Constants.SECTION_ID_APPROVAL_PARTIAL_NAME.toLowerCase())[0].toLowerCase();\r\n return this.i18n.translate(`${role.toLowerCase()}Role`);\r\n }\r\n\r\n getPrintPartialName (componentName: string) {\r\n\r\n\r\n\r\n if (componentName === Constants.SECTION_ID_REQUEST_DETAILS) {\r\n return 'sectionrequestDetails';\r\n }\r\n else if (componentName === 'wpo_dApproval' ) { return 'sectionGeneralApprover'}\r\n else if (componentName === 'wpo_gmApproval' ) { return 'sectionGeneralApprover'}\r\n\r\n else { return 'sectionGeneralApproval' }\r\n\r\n }\r\n}\r\n","import {AfterViewInit, Component, CUSTOM_ELEMENTS_SCHEMA, Inject, NO_ERRORS_SCHEMA, PLATFORM_ID} from '@angular/core';\r\nimport {LayoutComponent, ServiceHeaderComponent, WorkflowSectionComponent} from \"../components/app-component-sections\";\r\nimport {DOCUMENT, isPlatformBrowser} from \"@angular/common\";\r\nimport {Router} from \"@angular/router\";\r\nimport {CoreI18nService, CoreService, SidenavService} from \"../services\";\r\nimport {Form} from \"../interfaces\";\r\nimport {RequestDetailsSectionComponent} from \"../testComponent/request-details-section/request-details-section.component\";\r\nimport {SegmentDynamicLoaderService} from \"../testComponent/services/segment-dynamic-loader.service\";\r\nimport {DynamicComponentInjectorToken} from \"ng-dynamic-component\";\r\nimport {TranslatePipe} from \"../pipes/translate.pipe\";\r\n\r\n@Component({\r\n selector: 'lib-app',\r\n standalone: true,\r\n templateUrl: './app.component.html',\r\n styleUrl: './app.component.css',\r\n imports: [\r\n // DynamicModule,\r\n LayoutComponent,\r\n ServiceHeaderComponent,\r\n WorkflowSectionComponent,\r\n RequestDetailsSectionComponent,\r\n TranslatePipe\r\n ],\r\n schemas: [CUSTOM_ELEMENTS_SCHEMA, NO_ERRORS_SCHEMA],\r\n providers: [\r\n {provide: DynamicComponentInjectorToken, useValue: { /* your value here */}}\r\n ]\r\n\r\n})\r\nexport class CoreAppComponent implements AfterViewInit {\r\n loading = {\r\n form: false\r\n }\r\n form: Form\r\n formTitle: string = 'Test';\r\n noError = true;\r\n errorMessage: [];\r\n constructor(\r\n public segmentDynamicLoader: SegmentDynamicLoaderService,\r\n @Inject(DOCUMENT) private readonly document: Document,\r\n private readonly router: Router,\r\n private readonly sidenavService: SidenavService,\r\n public i18n: CoreI18nService,\r\n private readonly coreService: CoreService,\r\n @Inject(PLATFORM_ID) private platformId: any\r\n ) {\r\n this.loading['form'] = true\r\n this.coreService.loadForm().subscribe({\r\n next: (form: any) => {\r\n this.form = form;\r\n this.loading['form'] = false\r\n },\r\n error: (err) => {\r\n this.noError = false;\r\n this.loading['form'] = false\r\n this.errorMessage = err?.error?.meta?.messages\r\n }\r\n });\r\n }\r\n\r\n ngAfterViewInit() {\r\n if (isPlatformBrowser(this.platformId)) {\r\n const direction = this.i18n.language == 'en' ? 'ltr' : 'rtl';\r\n document.documentElement.setAttribute('dir', direction);\r\n }\r\n }\r\n\r\n}\r\n","<core-layout>\r\n @if (!loading['form']) {\r\n\r\n @if (noError) {\r\n <core-service-header\r\n [isLoading]=\"false\"\r\n [formTitle]=\"formTitle\"\r\n [isReadOnly]=\"form.sections[0].header.readOnly\"\r\n [form]=\"form\">\r\n </core-service-header>\r\n <app-workflow-section\r\n workflow\r\n [segmentDynamicLoaderService]=\"segmentDynamicLoader\"\r\n [form]=\"form\" [sections]=\"form?.['sections']\">\r\n <app-request-details-section\r\n [section]=\"form.sections[0]\" [form]=\"form\" [lov]=\"form?.lovs\" className=\"form-section\"\r\n [isReadOnly]=\"form.sections[0].header.readOnly\"></app-request-details-section>\r\n </app-workflow-section>\r\n } @else {\r\n @if (errorMessage?.length) {\r\n <ds-message></ds-message>\r\n @for (item of errorMessage; track $index) {\r\n <div class=\"d-flex justify-content-center\">\r\n <span class=\"fc-coral fs-18\" >{{ item?.['message'] }}</span>\r\n </div>\r\n }\r\n } @else {\r\n <ds-message [label]=\"'pageErrorLoading' | translate\"></ds-message>\r\n }\r\n }\r\n } @else {\r\n <core-service-header header [formTitle]=\"formTitle\" [isLoading]=\"true\">\r\n </core-service-header>\r\n }\r\n</core-layout>\r\n","export function encodePassword(formId: string, password: string) {\r\n const formIdString = Array.from(\r\n new TextEncoder().encode(formId),\r\n (x) => String.fromCodePoint(x)\r\n ).join('');\r\n\r\n let encodedFormId = btoa(formIdString);\r\n\r\n let x = Math.floor(\r\n Math.random() * password.length\r\n );\r\n\r\n let [first, second] = [\r\n password.slice(0, x),\r\n password.slice(x),\r\n ];\r\n\r\n let newPassword = first + encodedFormId + second;\r\n\r\n const binString = Array.from(new TextEncoder().encode(newPassword), (x) =>\r\n String.fromCodePoint(x)\r\n ).join('');\r\n\r\n newPassword = btoa(binString);\r\n return newPassword;\r\n }","import { Attachment, Employee, Select } from \"../interfaces\";\r\n\r\nconst dataTypes = {\r\n string: {\r\n verifyDataType: (value: any) => typeof value === 'string',\r\n isValid: (value) => !!value\r\n },\r\n attachmentsList: {\r\n verifyDataType: (value: any) => Array.isArray(value) && value.every(item => (typeof item === 'object') && ('fileName' in item)),\r\n isValid: (value: Attachment[]) => !!value.length\r\n },\r\n select: {\r\n verifyDataType: (value: any) => (typeof value === 'object') && ('key' in value),\r\n isValid: (value: Select) => (typeof value === 'object') && !!value.key\r\n },\r\n employee: {\r\n verifyDataType: (value: any) => (typeof value === 'object') && ('personName' in value) && ('personEmail' in value),\r\n isValid: (value: Employee) => (typeof value === 'object') && !!value.personName && !!value.personEmail\r\n },\r\n singleAttachment: {\r\n verifyDataType: (value: any) => (typeof value === 'object') && ('fileName' in value) && ('mimeType' in value),\r\n isValid: (value: Attachment) => (typeof value === 'object') && !!value.fileName && !!value.mimeType\r\n }\r\n}\r\n\r\nexport function isValidData(data: any): boolean {\r\n if(data === undefined || data === null) return false;\r\n let requiredKey;\r\n\r\n //get current data type\r\n for(let item of Object.entries(dataTypes)){\r\n const type = item[0]; //string or attachmentsList or select ...\r\n const verifyDataTypeFn = item[1].verifyDataType;\r\n if(verifyDataTypeFn(data)) {\r\n requiredKey = type;\r\n break;\r\n }\r\n }\r\n\r\n if(!requiredKey){\r\n throw Error('data type is not found')\r\n }\r\n\r\n //check if the current data type is valid\r\n return dataTypes[requiredKey].isValid(data);\r\n}\r\n","import { Form, Messages } from \"../interfaces\";\r\nimport { NO_VALUE } from \"../constants/constants\";\r\n\r\nexport function handelErrorResponse<T extends {form: Form}>(obj: T, errorMsgs: Messages) {\r\n if (!obj.form) {\r\n obj.form = new Form(\r\n NO_VALUE,\r\n NO_VALUE,\r\n NO_VALUE,\r\n NO_VALUE,\r\n NO_VALUE,\r\n NO_VALUE,\r\n errorMsgs\r\n );\r\n } else {\r\n obj.form.messages = errorMsgs;\r\n }\r\n window.scrollTo(0, 0);\r\n }\r\n","export function dataURItoBlob(dataURI: any, mimeType?: string) {\r\n const byteString = atob(dataURI);\r\n const arrayBuffer = new ArrayBuffer(byteString.length);\r\n const int8Array = new Uint8Array(arrayBuffer);\r\n for (let i = 0; i < byteString.length; i++) {\r\n int8Array[i] = byteString.charCodeAt(i);\r\n }\r\n const blob = new Blob([arrayBuffer], { type: mimeType || 'image/jpeg' });\r\n return blob;\r\n};\r\n","import { ValidationErrors } from \"@angular/forms\";\r\nimport { Section } from \"../interfaces\";\r\nimport { isValidData } from \"../functions\";\r\n\r\nexport type FormAction = 'SUBMIT' | 'APPROVE' | 'REJECT' | 'SENDBACK' | 'SAVE_CHANGES' | 'CANCEL' | 'SENDTODO' | string & {};\r\nexport type CustomValidatorFn = (fieldName: string, section: Section, action: FormAction) => ValidationErrors | null;\r\n\r\nexport class FormValidation {\r\n constructor(private validators: Record<string, CustomValidatorFn[]>) { }\r\n\r\n isFormValidForAction(section: Section, action: FormAction): boolean {\r\n return Object.entries(this.validators)\r\n .every(([fieldName, fieldValidators]) => fieldValidators.every(fn => fn(fieldName, section, action) === null));\r\n }\r\n\r\n logFormControlsValidationStatus(section: Section, action?: FormAction) {\r\n console.log(Object.entries(this.validators).map(([fieldName, fieldValidators]) => {\r\n const isValid = fieldValidators.every(fn => fn(fieldName, section, action) === null)\r\n return { [fieldName]: fieldValidators.map(fn => fn(fieldName, section, action)), isValid };\r\n }));\r\n }\r\n}\r\n\r\nexport class BuiltInCustomValidators {\r\n static required(fieldName: string, section: Section, action: FormAction): ValidationErrors | null {\r\n const value = section.body.details[fieldName];\r\n if(isValidData(value)) return null;\r\n return {required: true};\r\n }\r\n static requiredIfAction(action: FormAction[]): CustomValidatorFn {\r\n return (fieldName: string, section: Section, currentAction: FormAction) => {\r\n if(action.includes(currentAction)){\r\n return BuiltInCustomValidators.required(fieldName, section, currentAction);\r\n }\r\n return null;\r\n }\r\n }\r\n static requiredOnlyWhen(conditionFn: () => boolean): CustomValidatorFn {\r\n return (fieldName: string, section: Section, currentAction: FormAction) => {\r\n if(conditionFn()){\r\n return BuiltInCustomValidators.required(fieldName, section, currentAction);\r\n }\r\n return null;\r\n }\r\n }\r\n static maxLength(max: number): CustomValidatorFn {\r\n return (fieldName: string, section: Section, currentAction: FormAction) => {\r\n const value: string = section.body?.details?.[fieldName];\r\n if(!value) return null;\r\n if(value.length > max) return {maxLength: 'required', required: max};\r\n return null;\r\n }\r\n }\r\n static minLength(min: number): CustomValidatorFn {\r\n return (fieldName: string, section: Section, currentAction: FormAction) => {\r\n const value: string = section.body?.details?.[fieldName];\r\n if(!value) return null;\r\n if(value.length < min) return {minLength: 'required', required: min};\r\n return null;\r\n }\r\n }\r\n static ifAction(actions: FormAction[], validators: CustomValidatorFn[]): CustomValidatorFn[] {\r\n return validators.map(fn => {\r\n return (fieldName: string, section: Section, currentAction: FormAction) => {\r\n if(!actions.includes(currentAction)) return null;\r\n return fn(fieldName, section, currentAction);\r\n }\r\n })\r\n }\r\n static validateOnlyWhen(conditionFn: () => boolean, validators: CustomValidatorFn[]): CustomValidatorFn[] {\r\n return validators.map(fn => {\r\n return (fieldName: string, section: Section, currentAction: FormAction) => {\r\n if(conditionFn()) return fn(fieldName, section, currentAction);\r\n return null;\r\n }\r\n })\r\n }\r\n}\r\n","import { Form } from \"../interfaces\";\r\n\r\nexport default {\r\n beforeTranspilePayload (payload: {[key: string]: any}): {[key: string]: any} {\r\n const hookResult = payload;\r\n // Here should be the code to manipulate the payload before the transpile stage\r\n return hookResult;\r\n },\r\n\r\n afterTranspilePayload (form: Form): Form {\r\n const hookResult = form;\r\n // Here should be the code to manipulate the form object after the transpile stage\r\n return hookResult;\r\n }\r\n}\r\n","/* eslint-disable @typescript-eslint/no-explicit-any */\r\n\r\nexport function validateSAID(this: any) {\r\n\r\n if (this?.personalInfoFormTemp) {\r\n let id = this?.personalInfoFormTemp?.get?.('elmIdNum')?.value\r\n const selectedType = this?.personalInfoFormTemp?.get?.('elmIdType')?.value?.value\r\n id = id.trim();\r\n if (id.length > 0 && (selectedType == 'IQAMA' || selectedType == 'NATIONAL ID')) {\r\n if (Number(id) === null) {\r\n // return { idInvalid: true };\r\n return false;\r\n }\r\n if (id.length !== 10) {\r\n return { idInvalid: true };\r\n // return false;\r\n }\r\n const type = id.substr(0, 1);\r\n if (type !== '2' && type !== '1') {\r\n return { idInvalid: true };\r\n // return false;\r\n }\r\n let idType\r\n if (selectedType == 'IQAMA') {\r\n idType = '2'\r\n } else if (selectedType == 'NATIONAL ID') {\r\n idType = '1'\r\n }\r\n if (idType !== type) {\r\n return { idInvalid: true };\r\n // return false;\r\n }\r\n\r\n let sum = 0;\r\n for (let i = 0; i < 10; i++) {\r\n if (i % 2 === 0) {\r\n const ZFOdd = String('00' + String(Number(id.substr(i, 1)) * 2)).slice(-2);\r\n sum += Number(ZFOdd.substr(0, 1)) + Number(ZFOdd.substr(1, 1));\r\n } else {\r\n sum += Number(id.substr(i, 1));\r\n }\r\n\r\n }\r\n return { idInvalid: (sum % 10 !== 0) ? true : false };\r\n // return (sum % 10 !== 0) ? false : true;\r\n }\r\n else if (id.length > 0 && selectedType == 'PASSPORT') {\r\n const nameWithNumbersRegex = '^[\\u0600-\\u065F\\u066A-\\u06EF\\u06FA-\\u06FFa-zA-Z0-9]+[\\u0600-\\u065F\\u066A-\\u06EF\\u06FA-\\u06FFa-zA-Z0-9-_ ]*$'\r\n if (!RegExp(nameWithNumbersRegex).test(id)) {\r\n return { idInvalid: true };\r\n // return false;\r\n }\r\n else {\r\n return { idInvalid: false };\r\n // return true;\r\n }\r\n }\r\n else {\r\n return { idInvalid: false };\r\n // return true;\r\n }\r\n } else {\r\n return { idInvalid: false };\r\n // return true;\r\n }\r\n}\r\n","/* eslint-disable @typescript-eslint/no-unused-vars */\r\n/* eslint-disable @angular-eslint/directive-selector */\r\n\r\nimport {\r\n Directive,\r\n ElementRef,\r\n HostListener,\r\n Input\r\n} from \"@angular/core\";\r\n\r\n@Directive({\r\n selector: \"[textOnly]\"\r\n})\r\nexport class TextDirective {\r\n @Input() decimals = 0;\r\n\r\n constructor(private el: ElementRef) { }\r\n\r\n private check(value: string) {\r\n value.replace(/[\\u0000-\\u001F\\u007F-\\u009F]/g, \"\")\r\n const arabicAlphabetDigits = /[\\u0600-\\u06ff]|[\\u0750-\\u077f]|[\\ufb50-\\ufc3f]|[\\ufe70-\\ufefc]|[\\u0200]|[\\u00A0]/g;\r\n\r\n return (String(value).match(new RegExp('^[a-zA-Z ]*$')) || arabicAlphabetDigits.test(value) ) ;\r\n // return String(value).match(new RegExp('^[a-zA-Z ]*$'));\r\n }\r\n\r\n\r\n\r\n @HostListener(\"keydown\", [\"$event\"])\r\n onKeyDown(event: KeyboardEvent) {\r\n console.log(\"keydown\", event)\r\n const text = event.key;\r\n if (this.check(this.el.nativeElement.value + (event.key != 'Backspace' ? event.key : '')) || text == \" \" || text == 'Backspace' || (event.ctrlKey && (text == 'c' || text == 'ؤ' || text == 'v' || text == 'ر' || text == 'x' || text == 'ء' || text == 'a' || text == 'ش' || text == 'z' || text == 'ئ'))) {\r\n return;\r\n }\r\n else {\r\n event.preventDefault();\r\n }\r\n }\r\n\r\n @HostListener(\"paste\", [\"$event\"])\r\n onPaste(event: ClipboardEvent) {\r\n const data = event.clipboardData.getData('text/plain');\r\n if (!this.check(data)) {\r\n event.preventDefault()\r\n\r\n }\r\n }\r\n}","import { Pipe, PipeTransform } from \"@angular/core\";\r\n\r\n@Pipe({\r\n name: \"stringToBoolean\"\r\n})\r\nexport class stringToBooleanPipe implements PipeTransform {\r\n transform(value: string): boolean {\r\n return Boolean(value)\r\n }\r\n}\r\n","import { Pipe, PipeTransform } from \"@angular/core\";\r\n\r\n@Pipe({\r\n name: \"formatTime\"\r\n})\r\nexport class FormatTimePipe implements PipeTransform {\r\n transform(value: number): string {\r\n const minutes: number = Math.floor(value / 60);\r\n return (\r\n (\"00\" + minutes).slice(-2) +\r\n \":\" +\r\n (\"00\" + Math.floor(value - minutes * 60)).slice(-2)\r\n );\r\n }\r\n}\r\n","// export * from './ar.directive';\r\n// export * from './en.directive';\r\nexport * from './id.validator';\r\nexport * from './text.directive';\r\nexport * from './string-to-boolean.pipe';\r\nexport * from './timer.pipe';\r\n// export * from './currency.directive';\r\n","/*\r\n * Public API Surface of bpm-core\r\n */\r\nimport { InjectionToken } from '@angular/core';\r\nimport {MyLibConfig} from \"./lib/interfaces/shared.interface\";\r\n\r\nexport * from './lib/app/app.component';\r\nexport * from './lib/components/shared-components';\r\nexport * from './lib/components/app-component-sections';\r\nexport * from './lib/pipes';\r\nexport * from './lib/i18n';\r\nexport * from './lib/constants';\r\nexport * from './lib/interfaces';\r\nexport * from './lib/classes';\r\nexport * from './lib/hooks';\r\nexport * from './lib/functions';\r\nexport * from './lib/validators';\r\nexport * from './lib/services';\r\nexport * from './lib/regex';\r\n\r\nexport const MY_LIB_CONFIG_TOKEN = new InjectionToken<MyLibConfig>('MyLibConfig');\r\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":["coreEn.default","coreAr.default","constants.TARGET_SERVER_DP","constants.HTTP_METHOD_GET","constants.STATE_NAME_DP_GET_FEEDBACK","constants.HTTP_METHOD_POST","constants.SERVICE_NAME_DP_CREATE_FEEDBACK","constants.HTTP_METHOD_PUT","constants.SERVICE_NAME_DP_UPDATE_FEEDBACK","constants.TARGET_SERVER_WM","constants.SERVICE_NAME_WM_FORM","constants.SERVICE_NAME_DP_SEARCH_EMPLOYEE","constants.HEADER_CONTENT_TYPE_FORM","constants.WM_ACTION_SAVE_CHANGES","constants.SERVICE_NAME_WM_DRAFT_FORM","constants.SECTION_ID_REQUEST_DETAILS","constants.SECTION_STATUS_PENDING","constants.NO_VALUE","constants.TRUE_STRING","constants.TRUE_BOOL","constants.FALSE_STRING","constants.FALSE_BOOL","constants.IGATE_STATIC_ASSET_PROFILE_PHOTO_URL","constants.DONT_SHOW","constants.READ_ONLY","constants.HAS_COMMENTS","constants.NO_COMMENTS","constants.FORM_STATUS_SEND_BACK","constants.SECTION_ID_APPROVAL_PARTIAL_NAME","constants.SERVICE_NAME_DP_UPDATE_INBOX_ITEM","constants.STATE_MACHINE_ACTION_SUCCESS_INBOX_ITEM","constants.WORKFLOW_ITEMS","constants.STATE_MACHINE_ACTION_LOAD_HISTORY","constants.SERVICE_NAME_DP_INBOX_ITEM","constants.STATE_MACHINE_ACTION_GET_INBOX_ITEM","constants.APPROVERS","constants.STATE_MACHINE_ACTION_SUCCESS_RESPONSE","constants.INBOX_STATUS_SENT","constants.INBOX_STATUS_PENDING","i1","i2.CoreI18nService","i1.CoreI18nService","i1.CoreService","i2","i3","i4","i5","i6.MycurrencyPipe","i7","i1.ActionStateService","en.default","ar.default","i2.FormLabelComponent","i3.ValidationErrorsComponent","i5.TranslatePipe","i3.FormLabelComponent","i4.ValidationErrorsComponent","i5.InfoItemComponent","i6","YEAR_ONLY_FORMAT","i5.FormLabelComponent","i6.ValidationErrorsComponent","i7.InfoItemComponent","i8","i9","i10.TranslatePipe","i4.FormLabelComponent","i5.ValidationErrorsComponent","i6.InfoItemComponent","i9.TranslatePipe","i1.EnOnlyDirective","i2.ArOnlyDirective","i1.FormLabelComponent","i2.ValidationErrorsComponent","i3.InfoItemComponent","i1.MycurrencyPipe","i7.TranslatePipe","MatOption","MatError","MatFormField","i8.EnOnlyDirective","i9.ArOnlyDirective","i1.SidenavService","Constants.FORM_STATUS_REJECTED","Constants.FORM_STATUS_CANCELLED","Constants.FORM_STATUS_PENDING","constants.FORM_STATUS_REJECT","constants.FORM_STATUS_CANCEL","Constants.FEEDBACK_STATUS_REQUEST","Constants.FEEDBACK_STATUS_WAITING","Constants.FEEDBACK_STATUS_RESPOND","Constants.FEEDBACK_STATUS_RESPONDED","Constants.NO_VALUE","i2.SidenavService","i2.CoreService","StatusMap","Constants.FORM_STATUS_REJECT","Constants.SECTION_STATUS_UNSATISFIED","Constants.FORM_STATUS_CANCEL","i1.FeedBackService","Constants.FORM_STATUS_COMPLETED","Constants.FORM_STATUS_APPROVED","Constants.LOGOUT_URL","Constants.SECTION_ID_REQUEST_DETAILS","Constants.SECTION_ID_APPROVAL_PARTIAL_NAME","i1.I18nService","i1.SegmentDynamicLoaderService","i3.SidenavService","i3.CoreI18nService","i3.CoreService"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"bpm-core.mjs","sources":["../../../projects/bpm-core/src/lib/constants/constants.ts","../../../projects/bpm-core/src/lib/i18n/en.ts","../../../projects/bpm-core/src/lib/i18n/ar.ts","../../../projects/bpm-core/src/lib/services/i18n.service.ts","../../../projects/bpm-core/src/lib/services/sidenav.service.ts","../../../projects/bpm-core/src/lib/services/feedBack.service.ts","../../../projects/bpm-core/src/lib/hooks/save-form.ts","../../../projects/bpm-core/src/lib/services/core.service.ts.ts","../../../projects/bpm-core/src/lib/services/action.service.ts.ts","../../../projects/bpm-core/src/lib/components/shared-components/dialogs/delete-dialog/delete-dialog.component.ts","../../../projects/bpm-core/src/lib/components/shared-components/dialogs/delete-dialog/delete-dialog.component.html","../../../projects/bpm-core/src/lib/components/shared-components/dialogs/submit-dialog/submit-dialog.component.ts","../../../projects/bpm-core/src/lib/components/shared-components/dialogs/submit-dialog/submit-dialog.component.html","../../../projects/bpm-core/src/lib/components/shared-components/dialogs/confirm-dialog/confirm-dialog.component.ts","../../../projects/bpm-core/src/lib/components/shared-components/dialogs/confirm-dialog/confirm-dialog.component.html","../../../projects/bpm-core/src/lib/pipes/format-as-password.pipe.ts","../../../projects/bpm-core/src/lib/pipes/currency.pipe.ts","../../../projects/bpm-core/src/lib/components/shared-components/form-field/date-picker/date-format.ts","../../../projects/bpm-core/src/lib/components/shared-components/form-field/base-component/base-component.component.ts","../../../projects/bpm-core/src/lib/components/shared-components/form-field/control-value-accessor.directive.ts","../../../projects/bpm-core/src/lib/components/shared-components/terms-conditions/terms-conditions.component.ts","../../../projects/bpm-core/src/lib/components/shared-components/terms-conditions/terms-conditions.component.html","../../../projects/bpm-core/src/lib/pipes/translate.pipe.ts","../../../projects/bpm-core/src/lib/components/shared-components/form-field/form-label/form-label.component.ts","../../../projects/bpm-core/src/lib/components/shared-components/form-field/form-label/form-label.component.html","../../../projects/bpm-core/src/lib/regex/regex-patterns.ts","../../../projects/bpm-core/src/lib/components/shared-components/form-field/validation-errors/validation-errors.component.ts","../../../projects/bpm-core/src/lib/components/shared-components/form-field/validation-errors/validation-errors.component.html","../../../projects/bpm-core/src/lib/components/shared-components/form-field/info-item/info-item.component.ts","../../../projects/bpm-core/src/lib/components/shared-components/form-field/info-item/info-item.component.html","../../../projects/bpm-core/src/lib/directives/en.directive.ts","../../../projects/bpm-core/src/lib/directives/ar.directive.ts","../../../projects/bpm-core/src/lib/components/shared-components/form-field/shared-imports.ts","../../../projects/bpm-core/src/lib/components/shared-components/form-field/checkbox/checkbox.component.ts","../../../projects/bpm-core/src/lib/components/shared-components/form-field/checkbox/checkbox.component.html","../../../projects/bpm-core/src/lib/components/shared-components/form-field/custom-searchable-autocomplete/custom-searchable.component.ts","../../../projects/bpm-core/src/lib/components/shared-components/form-field/custom-searchable-autocomplete/custom-searchable.component.html","../../../projects/bpm-core/src/lib/components/shared-components/form-field/date-picker/date-picker.component.ts","../../../projects/bpm-core/src/lib/components/shared-components/form-field/date-picker/date-picker.component.html","../../../projects/bpm-core/src/lib/components/shared-components/form-field/date-range-picker/date-range-picker.component.ts","../../../projects/bpm-core/src/lib/components/shared-components/form-field/date-range-picker/date-range-picker.component.html","../../../projects/bpm-core/src/lib/components/shared-components/form-field/input/input.component.ts","../../../projects/bpm-core/src/lib/components/shared-components/form-field/input/input.component.html","../../../projects/bpm-core/src/lib/directives/number.directive.ts","../../../projects/bpm-core/src/lib/components/shared-components/form-field/input-number/input-number.component.ts","../../../projects/bpm-core/src/lib/components/shared-components/form-field/input-number/input-number.component.html","../../../projects/bpm-core/src/lib/components/shared-components/form-field/input-email/input-email.component.ts","../../../projects/bpm-core/src/lib/components/shared-components/form-field/input-email/input-email.component.html","../../../projects/bpm-core/src/lib/components/shared-components/form-field/input-mask/input-mask.component.ts","../../../projects/bpm-core/src/lib/components/shared-components/form-field/input-mask/input-mask.component.html","../../../projects/bpm-core/src/lib/directives/currency.directive.ts","../../../projects/bpm-core/src/lib/components/shared-components/form-field/input-currency/input-currency.component.ts","../../../projects/bpm-core/src/lib/components/shared-components/form-field/input-currency/input-currency.component.html","../../../projects/bpm-core/src/lib/components/shared-components/form-field/input-autocomplete/index.ts","../../../projects/bpm-core/src/lib/components/shared-components/form-field/input-telephone/input-telephone.component.ts","../../../projects/bpm-core/src/lib/components/shared-components/form-field/input-telephone/input-telephone.component.html","../../../projects/bpm-core/src/lib/components/shared-components/form-field/search-employee/search-employee.component.ts","../../../projects/bpm-core/src/lib/components/shared-components/form-field/search-employee/search-employee.component.html","../../../projects/bpm-core/src/lib/components/shared-components/form-field/select/select.component.ts","../../../projects/bpm-core/src/lib/components/shared-components/form-field/select/select.component.html","../../../projects/bpm-core/src/lib/components/shared-components/form-field/textarea/textarea.component.ts","../../../projects/bpm-core/src/lib/components/shared-components/form-field/textarea/textarea.component.html","../../../projects/bpm-core/src/lib/components/shared-components/form-field/textarea/special-chars.directive.ts","../../../projects/bpm-core/src/lib/components/shared-components/form-field/toggle-button/toggle-button.component.ts","../../../projects/bpm-core/src/lib/components/shared-components/form-field/toggle-button/toggle-button.component.html","../../../projects/bpm-core/src/lib/components/shared-components/form-field/repeated-list/repeated-list.component.ts","../../../projects/bpm-core/src/lib/components/shared-components/form-field/repeated-list/repeated-list.component.html","../../../projects/bpm-core/src/lib/components/shared-components/form-field/table-list/table-list.component.ts","../../../projects/bpm-core/src/lib/components/shared-components/form-field/table-list/table-list.component.html","../../../projects/bpm-core/src/lib/components/shared-components/form-field/doc-uploader/docs-uploader.component.ts","../../../projects/bpm-core/src/lib/components/shared-components/form-field/doc-uploader/docs-uploader.component.html","../../../projects/bpm-core/src/lib/components/shared-components/form-field/add-attachment-section/add-attachment-section.component.ts","../../../projects/bpm-core/src/lib/components/shared-components/form-field/add-attachment-section/add-attachment-section.component.html","../../../projects/bpm-core/src/lib/components/shared-components/form-field/attachment-section/attachment-section.component.ts","../../../projects/bpm-core/src/lib/components/shared-components/form-field/attachment-section/attachment-section.component.html","../../../projects/bpm-core/src/lib/components/shared-components/form-field/radio/radio.component.ts","../../../projects/bpm-core/src/lib/components/shared-components/form-field/radio/radio.component.html","../../../projects/bpm-core/src/lib/helpers/shared.helper.ts","../../../projects/bpm-core/src/lib/enums/colors.enum.ts","../../../projects/bpm-core/src/lib/enums/events.enum.ts","../../../projects/bpm-core/src/lib/enums/actions.enum.ts","../../../projects/bpm-core/src/lib/directives/skip-location.directive.ts","../../../projects/bpm-core/src/lib/components/shared-components/table/table.component.ts","../../../projects/bpm-core/src/lib/components/shared-components/table/table.component.html","../../../projects/bpm-core/src/lib/components/app-component-sections/approvals/approvals.component.ts","../../../projects/bpm-core/src/lib/components/app-component-sections/approvals/approvals.component.html","../../../projects/bpm-core/src/lib/components/app-component-sections/approvals-workflow/approvals-workflow.component.ts","../../../projects/bpm-core/src/lib/components/app-component-sections/approvals-workflow/approvals-workflow.component.html","../../../projects/bpm-core/src/lib/components/shared-components/action-buttons/action-buttons.component.ts","../../../projects/bpm-core/src/lib/components/shared-components/action-buttons/action-buttons.component.html","../../../projects/bpm-core/src/lib/components/app-component-sections/faqs/faqs.component.ts","../../../projects/bpm-core/src/lib/components/app-component-sections/faqs/faqs.component.html","../../../projects/bpm-core/src/lib/components/app-component-sections/faq-sidenav/faq-sidenav.component.ts","../../../projects/bpm-core/src/lib/components/app-component-sections/faq-sidenav/faq-sidenav.component.html","../../../projects/bpm-core/src/lib/components/shared-components/title-section/title-section.component.ts","../../../projects/bpm-core/src/lib/components/shared-components/title-section/title-section.component.html","../../../projects/bpm-core/src/lib/components/app-component-sections/profile-section/profile-section.component.ts","../../../projects/bpm-core/src/lib/components/app-component-sections/profile-section/profile-section.component.html","../../../projects/bpm-core/src/lib/interfaces/form.interface.ts","../../../projects/bpm-core/src/lib/components/app-component-sections/feedback-section/feedback-section.component.ts","../../../projects/bpm-core/src/lib/components/app-component-sections/feedback-section/feedback-section.component.html","../../../projects/bpm-core/src/lib/components/app-component-sections/activities/activities.component.ts","../../../projects/bpm-core/src/lib/components/app-component-sections/activities/activities.component.html","../../../projects/bpm-core/src/lib/pipes/status-style.pipe.ts","../../../projects/bpm-core/src/lib/components/app-component-sections/previous-requests/previous-requests.component.ts","../../../projects/bpm-core/src/lib/components/app-component-sections/previous-requests/previous-requests.component.html","../../../projects/bpm-core/src/lib/components/app-component-sections/service-header/service-header.component.ts","../../../projects/bpm-core/src/lib/components/app-component-sections/service-header/service-header.component.html","../../../projects/bpm-core/src/lib/components/app-component-sections/status/status.component.ts","../../../projects/bpm-core/src/lib/components/app-component-sections/status/status.component.html","../../../projects/bpm-core/src/lib/components/app-component-sections/form-section/form-section.component.ts","../../../projects/bpm-core/src/lib/components/app-component-sections/form-section/form-section.component.html","../../../projects/bpm-core/src/lib/components/app-component-sections/main-request-details/main-request-details.component.ts","../../../projects/bpm-core/src/lib/components/app-component-sections/main-request-details/main-request-details.component.html","../../../projects/bpm-core/src/lib/components/app-component-sections/workflow-section/workflow-section.component.ts","../../../projects/bpm-core/src/lib/components/app-component-sections/workflow-section/workflow-section.component.html","../../../projects/bpm-core/src/lib/components/app-component-sections/layout/header/header.component.ts","../../../projects/bpm-core/src/lib/components/app-component-sections/layout/header/header.component.html","../../../projects/bpm-core/src/lib/components/app-component-sections/layout/side-nav/side-nav.component.ts","../../../projects/bpm-core/src/lib/components/app-component-sections/layout/side-nav/side-nav.component.html","../../../projects/bpm-core/src/lib/components/app-component-sections/layout/layout.component.ts","../../../projects/bpm-core/src/lib/components/app-component-sections/layout/layout.component.html","../../../projects/bpm-core/src/lib/testComponent/request-details-section/request-details-section.component.ts","../../../projects/bpm-core/src/lib/testComponent/request-details-section/request-details-section.component.html","../../../projects/bpm-core/src/lib/testComponent/general-approver-section/general-approver-section.component.ts","../../../projects/bpm-core/src/lib/testComponent/general-approver-section/general-approver-section.component.html","../../../projects/bpm-core/src/lib/testComponent/config/segment-dynamic-loader.config.ts","../../../projects/bpm-core/src/lib/testComponent/services/i18n.service.ts","../../../projects/bpm-core/src/lib/testComponent/services/segment-dynamic-loader.service.ts","../../../projects/bpm-core/src/lib/app/app.component.ts","../../../projects/bpm-core/src/lib/app/app.component.html","../../../projects/bpm-core/src/lib/functions/encode-password.ts","../../../projects/bpm-core/src/lib/functions/is-valid-data.ts","../../../projects/bpm-core/src/lib/functions/handel-error-response.ts","../../../projects/bpm-core/src/lib/functions/data-to-blob.ts","../../../projects/bpm-core/src/lib/classes/form-validation.ts","../../../projects/bpm-core/src/lib/hooks/load-form.ts","../../../projects/bpm-core/src/lib/validators/id.validator.ts","../../../projects/bpm-core/src/lib/validators/text.directive.ts","../../../projects/bpm-core/src/lib/validators/string-to-boolean.pipe.ts","../../../projects/bpm-core/src/lib/validators/timer.pipe.ts","../../../projects/bpm-core/src/lib/validators/index.ts","../../../projects/bpm-core/src/public-api.ts","../../../projects/bpm-core/src/bpm-core.ts"],"sourcesContent":["// Constant for basic validations\r\nexport const DONT_SHOW = null;\r\nexport const NO_COMMENTS = false;\r\nexport const HAS_COMMENTS = true;\r\nexport const URL_SEPARATOR = '/';\r\nexport const READ_ONLY = true;\r\nexport const WRITE_MODE = false;\r\nexport const NO_VALUE = null;\r\nexport const TRUE_STRING = 'TRUE';\r\nexport const FALSE_STRING = 'FALSE';\r\nexport const TRUE_BOOL = true;\r\nexport const FALSE_BOOL = false;\r\n\r\n// State Machine statuses\r\nexport const STATE_MACHINE_STATUS_IDLE = 'idle';\r\nexport const STATE_MACHINE_STATUS_FETCHING = 'fetching';\r\nexport const STATE_MACHINE_STATUS_SENDING = 'sending';\r\nexport const STATE_MACHINE_STATUS_RESULT = 'result';\r\nexport const STATE_MACHINE_STATUS_ERROR = 'error';\r\n\r\n// State Machine actions\r\nexport const STATE_MACHINE_ACTION_LOAD_FORM = 'loadForm';\r\nexport const STATE_MACHINE_ACTION_SUBMIT_FORM = 'submitForm';\r\nexport const STATE_MACHINE_ACTION_SEARCH_EMPLOYEE = 'searchEmployee';\r\nexport const STATE_MACHINE_ACTION_EMPLOYEE_PROFILE = 'employeeProfile';\r\nexport const STATE_MACHINE_ACTION_SUCCESS_WM = 'successWm';\r\nexport const STATE_MACHINE_ACTION_SUCCESS_RESPONSE = 'serviceResponce';\r\nexport const STATE_MACHINE_ACTION_SUCCESS_USERS = 'successUsers';\r\nexport const STATE_MACHINE_ACTION_CONVERT = 'convert';\r\nexport const STATE_MACHINE_ACTION_SUCCESS = 'success';\r\nexport const STATE_MACHINE_ACTION_FAILURE = 'failure';\r\nexport const STATE_MACHINE_ACTION_HANDLE_ERROR = 'handleError';\r\nexport const STATE_MACHINE_ACTION_LOAD_FILE = 'loadFile';\r\nexport const STATE_MACHINE_ACTION_USER_MAF = 'userDetails';\r\nexport const STATE_MACHINE_ACTION_USER_CEP = 'user';\r\nexport const STATE_MACHINE_ACTION_CALC = 'calc';\r\n\r\n\r\nexport const STATE_MACHINE_ACTION_SHOW_PRINT = 'showPrint';\r\nexport const STATE_MACHINE_ACTION_SUCCESS_PRINT = 'successPrint';\r\nexport const SERVICE_NAME_WM_HTML_GENERATOR = 'htmlGenerator';\r\n\r\n// Process name code\r\nexport const PROCESS_NAME_CODE = 'SCR';\r\n\r\n// HTTP protocols that are available\r\nexport const HTTP_PROTOCOL_HTTP = 'http://';\r\nexport const HTTP_PROTOCOL_HTTPS = 'https://';\r\n\r\n// Liferay constants\r\n// export const LR_AUTH_SERVICE_URL_PATH = '/group/i-gate/wm-bpm/forms/-/proxy/authenticate';\r\n// export const LR_SERVICE_URL_PATH = '/group/i-gate/wm-bpm/forms/-/proxy/execute';\r\n// export const LR_SERVICE_URL_HOST = '10.0.0.48';\r\n// export const LR_SERVICE_URL_HOST_DEV = '10.0.0.156';\r\n// export const LR_SERVICE_URL_PORT_DEV = '8000';\r\n// export const LR_SERVICE_URL_PATH_DEV = '/new.json';\r\n// export const LR_SERVICE_URL_PORT = '17899';\r\n\r\n// HTTP methods that are available are\r\nexport const HTTP_METHOD_GET = 'GET';\r\nexport const HTTP_METHOD_POST = 'POST';\r\nexport const HTTP_METHOD_PUT = 'PUT';\r\n\r\n// Available servers to the UI\r\nexport const TARGET_SERVER_WM = 'WM';\r\nexport const TARGET_SERVER_DP = 'DP';\r\n\r\n// Service Names that are available\r\nexport const SERVICE_NAME_WM_FORM = 'form';\r\nexport const SERVICE_NAME_WM_CHILD_FORM = '';\r\nexport const SERVICE_NAME_DP_SEARCH_EMPLOYEE = 'igate.users.search.v3';\r\n\r\n// Languages codes available in the application\r\nexport const LANGUAGE_CODE_EN = 'en';\r\nexport const LANGUAGE_CODE_AR = 'ar';\r\n\r\n// URLs form static assets\r\nexport const IGATE_STATIC_ASSET_PROFILE_PHOTO_URL = '/group/i-gate/wm-bpm/forms/-/proxy/portrait?email=';\r\nexport const HEADER_CONTENT_TYPE_FORM = 'application/x-www-form-urlencoded';\r\n\r\n// Roles constants\r\nexport const ROLE_REQUESTER = 'R';\r\n\r\n// Section IDs\r\nexport const SECTION_ID_REQUEST_DETAILS = 'requestDetails';\r\nexport const SECTION_ID_GM_PARTIAL_ROLE = 'GM';\r\nexport const SECTION_ID_SM_PARTIAL_ROLE = 'SM';\r\nexport const SECTION_ID_DM_PARTIAL_ROLE = 'DM';\r\nexport const SECTION_ID_VP_PARTIAL_ROLE = 'VP';\r\nexport const SECTION_ID_SVP_PARTIAL_ROLE = 'SVP';\r\nexport const SECTION_ID_EXECUTE_PARTIAL_ROLE = 'GovtRelationsLead';\r\nexport const SECTION_ID_PERFORM_PARTIAL_ROLE = 'GovtRelationsMember';\r\nexport const SECTION_ID_EMP_INFO_APPROVAL_PARTIAL_ROLE = 'EmpInfo';\r\nexport const SECTION_ID_PAYROLL_APPROVAL_PARTIAL_ROLE = 'Payroll';\r\n\r\nexport const SECTION_ID_REQUESTER_PARTIAL_NAME = 'Requester';\r\nexport const SECTION_ID_APPROVAL_PARTIAL_NAME = 'Approval';\r\nexport const SECTION_ID_NOTHING_PARTIAL_NAME = '';\r\n\r\nexport const SECTION_STATUS_PENDING = 'PENDING';\r\nexport const SECTION_STATUS_APPROVED = 'APPROVED';\r\nexport const SECTION_STATUS_UNSATISFIED = 'UNSATISFIED';\r\n\r\nexport const WM_ACTION_SAVE = 'SAVE';\r\nexport const WM_ACTION_SUBMIT = 'SUBMIT';\r\n\r\nexport const FORM_STATUS_NEW = 'NEW';\r\nexport const FORM_STATUS_PENDING = 'PENDING';\r\nexport const FORM_STATUS_APPROVED = 'APPROVED';\r\nexport const FORM_STATUS_APPROVE = 'APPROVE';\r\nexport const FORM_STATUS_REJECTED = 'REJECTED';\r\nexport const FORM_STATUS_REJECT = 'REJECT';\r\nexport const FORM_STATUS_SEND_BACK = 'SENDBACK';\r\nexport const FORM_STATUS_CANCELLED= 'CANCELLED';\r\nexport const FORM_STATUS_CANCEL= 'CANCEL';\r\nexport const FORM_STATUS_COMPLETED = 'COMPLETED';\r\n\r\nexport const STATE_MACHINE_ACTION_LOAD_HISTORY = 'loadHistory';\r\nexport const STATE_MACHINE_ACTION_SUCCESS_HISTORY = 'successHistory';\r\nexport const SERVICE_NAME_DP_LOAD_HISTORY = 'igate.get.inbox.item.workflow';\r\nexport const WM_ACTION_SAVE_CHANGES = 'SAVE_CHANGES';\r\nexport const SERVICE_NAME_WM_DRAFT_FORM = 'draft';\r\n\r\n// feedback and flag\r\nexport const STATE_MACHINE_ACTION_GET_INBOX_ITEM = 'getInboxItem';\r\nexport const SERVICE_NAME_DP_INBOX_ITEM = 'igate.get.inbox.item';\r\nexport const STATE_MACHINE_ACTION_SUCCESS_INBOX_ITEM = 'successInboxItem';\r\n\r\nexport const STATE_MACHINE_ACTION_SET_FLAG = 'setFlagPriority';\r\nexport const SERVICE_NAME_DP_UPDATE_INBOX_ITEM = 'igate.update.inbox.item';\r\nexport const STATE_MACHINE_ACTION_INBOX_ITEM_RESPONSE = 'inboxItemResponse';\r\n\r\nexport const FEEDBACK_STATUS_REQUEST = 'requestFeedback';\r\nexport const FEEDBACK_STATUS_RESPOND = 'respondToFeedback';\r\nexport const FEEDBACK_STATUS_WAITING = 'waitingFeedback';\r\nexport const FEEDBACK_STATUS_RESPONDED = 'feedbackResponded';\r\n\r\n\r\nexport const STATE_MACHINE_ACTION_SUBMIT_FEEDBACK = 'submitFeedback';\r\nexport const STATE_MACHINE_ACTION_GET_FEEDBACK = 'getFeedback';\r\nexport const STATE_MACHINE_ACTION_UPDATE_FEEDBACK = 'submitFeedbackResponse';\r\nexport const SERVICE_NAME_DP_CREATE_FEEDBACK = 'igate.create.inbox.item.feedback';\r\nexport const STATE_NAME_DP_GET_FEEDBACK = 'igate.get.inbox.item.feedback';\r\nexport const SERVICE_NAME_DP_UPDATE_FEEDBACK = 'igate.update.inbox.item.feedback';\r\n\r\n\r\nexport const PROFILE_CONTAINER = '#profileFormContent';\r\nexport const COMMENT_CONTAINER = '#commentsFormContent';\r\nexport const FEEDBACK_CONTAINER = '#feedbackFormContent';\r\nexport const INBOX_STATUS_PENDING = 'pending';\r\nexport const INBOX_STATUS_PROCESSED = 'processed';\r\nexport const INBOX_STATUS_SENT = 'sent';\r\nexport const REPORT = 'report';\r\nexport const DATE_TIME = 'DD/MM/YYYY HH:mm:ss';\r\nexport const DATE_DASH = 'DD-MMM-YYYY';\r\nexport const DATE_SLASH = 'DD/MM/YYYY';\r\n\r\n\r\nexport const SERVICE_NAME_WM_GET_APPROVED_REQUEST = 'requests' ;\r\nexport const SERVICE_NAME_WM_GET_MY_APPROVED_REQUEST = 'myRequests' ;\r\nexport const STATE_MACHINE_ACTION_GET_APPROVED_REQUEST = 'getApprovedRequest';\r\nexport const STATE_MACHINE_ACTION_GET_APPROVED_REQUEST_RESPONSE = 'getApprovedRequestResponse' ;\r\n\r\n\r\nexport const STATE_MACHINE_ACTION_PROJECT_MAF = 'projectDetails';\r\nexport const STATE_MACHINE_ACTION_PROJECT_CEP = 'project';\r\nexport const STATE_MACHINE_ACTION_COMMONAPI = 'commonApi';\r\nexport const STATE_MACHINE_ACTION_SEARCH = 'search';\r\nexport const STATE_MACHINE_ACTION_PPROVED_REQUESTS = 'approvedRequests';\r\nexport const GETSIPORTENTRYGROUPS = 'getSiportEntryGroups';\r\nexport const GETSIPORTENTRYLOCATIONS = 'getSiportEntryLocations';\r\nexport const STATE_MACHINE_ACTION_SUCCESS_SERVICES= 'serviceResponce';\r\nexport const SERVICE_NAME_MAF = 'MAF';\r\nexport const SERVICE_NAME_CEP = 'CEP';\r\nexport const STATE_MACHINE_ACTION_PDF = 'pdfAttachments';\r\n\r\nexport const LOGOUT_URL = '/c/portal/logout';\r\n\r\nexport const WORKFLOW_ITEMS = 'workflowItems';\r\nexport const APPROVERS = 'approvers';\r\n","export default {\r\n \"pageTimeOut\": 'Looks like the server is taking too long to respond, this can be caused by either poor connectivity or an error with our servers. Please try again in a while',\r\n \"pageErrorLoading\":'An error occurred, Please try after sometimes. If the error continues, please contact the IT Helpdesk',\r\n // Buttons\r\n \"reset\": \"Reset\",\r\n \"submit\": \"Submit\",\r\n // Select\r\n \"selectYourOption\": \"Select your option\",\r\n // Labels\r\n \"optional\": \"Optional\",\r\n \"Optional\": \"Optional\",\r\n //Buttons\r\n \"browse\": \"Browse\",\r\n // Request Details Title\r\n \"requestDetailsTitle\":\"Request Details\",\r\n \"hrRequestDetailsTitle\":\"Request Details (Grievance Employee)\",\r\n \"applyRequestFor\": 'Apply Request For',\r\n \"searchForEmployee\":'Search for employee',\r\n // Profile Info Labels\r\n \"directManager\": \"Direct Manager\",\r\n \"employeeEmail\": \"Email\",\r\n \"generalDepartmentName\": \"General Dep.Name\",\r\n \"departmentName\": \"Department\",\r\n \"generalDepartmentCode\": \"General Dep. Code\",\r\n \"humanResourcesLocation\": \"HR location\",\r\n \"nationality\": \"Nationality\",\r\n \"businessPhone\": \"Business Phone\",\r\n \"viewAllDetails\": \"View All Details\",\r\n \"jobPosition\": \"Job Position\",\r\n \"sector\": \"Sector\",\r\n // Form Section labels\r\n \"delegateTo\": \"Delegated to\",\r\n \"processedBy\":\"Processed by\",\r\n // Datepicker labels\r\n \"gregorian\": \"Gregorian\",\r\n \"hijri\": \"Hijri\",\r\n // Messages\r\n \"successSubmited\": \"Thank you for submitting this form\",\r\n \"lenghtMin15Max500\":\"Please enter minimum 15 characters and maximum 500 characters\",\r\n \"lenghtMin15Max1000\":\"Please enter minimum 15 characters and maximum 1000 characters\",\r\n \"minLength15\": \"Please enter a minimum of 15 characters\",\r\n \"maxlength500\": \"500 is the maximum number of characters supported\",\r\n \"maxSize\": \"Maximum file size is 10MB\",\r\n \"unsupportedType\": \"Maximum file size allowed is 10MB and accepted extensions are (pdf, doc, docx, ppt, pptx, pps, ppsx, odt, xls, xlsx, zip, msg, csv, txt, rtf, html, mp4, m4v, mov, wmv, avi, mpg, ogv, 3gp, 3g2, jpg, jpej, png, gif, bmp)\",\r\n \"unsupportedTypeImgPdf\": \"Maximum file size allowed is 10MB and accepted extensions are (pdf, jpg, jpej, png, bmp)\",\r\n \"unsupportedTypeImgPdf2\": \"Maximum file size allowed is 10MB and accepted extensions are (pdf, docx, xlsx, jpg, email, pptx)\",\r\n \"unsupportedTypeImg\": \"Maximum file size allowed is 10MB and accepted extensions are (jpg, jpej, png, bmp)\",\r\n \"unsupportedTypePdf\": \"Maximum file size allowed is 10MB and accepted extension is (pdf)\",\r\n \"noUsersFound\": \"Please enter valid search data\",\r\n // Submit Table\r\n \"formTableFormId\": \"Form ID\",\r\n \"formTableFormStatus\": \"Form Status\",\r\n \"formTableCreationDate\": \"Creation Date\",\r\n \"formTablePendingWith\": \"Pending With\",\r\n \"formTableBackToInbox\": \"Back to Inbox\",\r\n // feedback\r\n \"requestFeedback\": \"Request Feedback\",\r\n \"requestTo\": \"Request To\",\r\n \"feedback\": \"Feedback\",\r\n \"viewFeedback\": \"View Feedback\",\r\n \"requestFrom\": \"Request From\",\r\n \"feedbackQuestion\": \"Feedback Question\",\r\n \"employeeSearch\": \"Employee Search\",\r\n \"searchEmployeeTooltip_1\": \"Enter minimum 3 character to start employee search\",\r\n \"searchEmployeeTooltip_2\": \"Type umber to search by employee number\",\r\n \"searchEmployeeTooltip_3\": \"To search by email. use @ before or after search character\",\r\n \"searchEmployeeTooltip_4\": \"Seperate First name, Second Name, Family Name with space to search by First Name, Second Name and Family Name\",\r\n \"onBehalfFlag\":\"Request On-behalf\",\r\n \"onBehalfOfEmail\":\"Employee Name\",\r\n \"commentHistory\":\"Comments History\",\r\n \"NODATA\": 'No Data',\r\n \"termsAndConditions\": 'Terms And Conditions',\r\n \"no-files\": \" No documents attached\",\r\n \"drag-files\": \"Drag and drop file here\",\r\n \"limit-error\": \"limit error\",\r\n \"size-error\": \"size error\",\r\n \"type-error\": \"type error\",\r\n \"duplicated-error\": \"This file already exist\",\r\n \"thisIsInvalidFile\": 'This is invalid file',\r\n \"add\": \"Add\",\r\n \"addAttachments\": \"Add Attachments\",\r\n \"attachmentdescription\": \"File Description\",\r\n \"attachmentcomment\": \"Comments\",\r\n // \"attachment\": \"Attachment\",\r\n \"addAttachment\": \"Add Attachment\",\r\n \"locationOfIncident\": \"Location Of The Incident\",\r\n \"FileName\": \"File Name\",\r\n \"FileDescription\": \"File Description\",\r\n // \"delete\": \"Delete\",\r\n \"Attachments\":\"Attachments\",\r\n \"Attachment\":\"Attachment\",\r\n \"comment\":\"Comments\",\r\n \"comments\":\"Comments\",\r\n \"description\":\"Description\",\r\n \"MyRequests\": \"My Requests\",\r\n \"processingDate\":\"Processing Date\",\r\n \"Approvals\":\"Approvals\",\r\n \"submittedSuccessfully\": \"Your request submitted successfully\",\r\n \"support\": \" Supported files: JPG,PNG & PDF\",\r\n \"support2\": \"Maximum file size allowed is \",\r\n \"mb\": \"MB\",\r\n \"support3\": \"Maximum file size is 300 KB\",\r\n \"maxAllowedSize\": \"Maximum file size allowed is 10MB\",\r\n \"ViewDetails\":\"View Details\",\r\n \"NoData2\": \"No Data found\",\r\n \"NoData1\": \"No Comments found\",\r\n \"NoData\": \"No Data found\",\r\n \"Filters\": \"Filter\",\r\n \"ApplyFilters\": \"Apply\",\r\n \"Discard\": \"Discard\",\r\n \"employeeID\": \"Employee ID\",\r\n \"Delete\": \"Delete\",\r\n \"fullName\":\"Full Name\",\r\n \"welcomeBack\": \"Welcome back\",\r\n \"welcome\": \"Welcome \",\r\n \"logout\": \"Logout\",\r\n \"otherLang\": \"العربية\",\r\n \"Hello\": \"Hello\",\r\n \"Cancel\":\"Cancel\",\r\n \"validEmailError\": 'Please enter valid Email ',\r\n \"validFieldError\": 'Please enter valid ',\r\n \"validSelectError\": 'Please select ',\r\n \"validSearchError\": 'Please search for valid ',\r\n \"delete\": \"Delete\",\r\n \"Areyousureyouwantdelete\":\"Are you sure you want to delete?\",\r\n \"drf-confirmatton-msg\":\"There are still pending stakeholders actions. Please confirm if you want to move to the next level without these actions.\",\r\n \"Yes-Proceed\":\" Yes - Proceed\",\r\n \"No-Discard\":\"No - Discard\",\r\n \"yes\":\" Yes, Delete\",\r\n \"NoAttachments\": \"There are no Attachments\",\r\n \"cancel\": \"Cancel\",\r\n \"View\":\"View\",\r\n \"edit\":\"Edit\",\r\n \"Viewapprovalcycle\": \"View Approval Cycle\",\r\n \"approvalCycle\": \"Approval Cycle\",\r\n \"link\":\"Link\",\r\n\r\n\r\n AttachmentInvoices: 'Attachment Invoices',\r\n AttachmentsOfBank:'Attachments of Bank Statement or Credit Card',\r\n DepositVoucherAttachments:'Deposit Voucher Attachments',\r\n placeholder: 'Enter value here',\r\n approve:'Approve',\r\n downloadLink:\"Download Link\",\r\n serviceBrief : \"Service Brief\",\r\n PreviousRequests:\"Previous Requests\",\r\n 'Product Implementation': 'Product Implementation',\r\n 'Sales Order and Quality Assurance':'Sales Order and Quality Assurance',\r\n 'Billing Support and Contracts':'Billing Support and Contracts',\r\n 'Sales Excellence':'Sales Excellence',\r\n 'Order Engineering and Delivery Management':'Order Engineering and Delivery Management',\r\n 'Third Party Control and Projects':'Third Party Control and Projects',\r\n 'Enterprise Customer Care':'Enterprise Customer Care',\r\n 'Enterprise Account Sales':'Enterprise Account Sales',\r\n 'Government Accounts Sales':'Government Accounts Sales',\r\n 'Marketing Communications':'Marketing Communications',\r\n 'Customer Experience Excellence':'Customer Experience Excellence',\r\n 'Commercial Regulation':'Commercial Regulation',\r\n 'Enterprise Commercial Finance':'Enterprise Commercial Finance',\r\n 'Product Pricing and Profitability':'Product Pricing and Profitability',\r\n 'Data Protection and Privacy':'Data Protection and Privacy',\r\n 'Customer Value Management':'Customer Value Management',\r\n\r\n termNote1: \"1. The requesting department is responsible for the validity of the attached papers and supervision of labor\",\r\n termNote2: \"2. The worker must be on the sponsorship of the contracting company. In the case of subcontracting, the contract between the two parties must be attached, signed, stamped and updated. And the worker must be on the sponsorship of the subcontracting company\",\r\n termNote3: \"3. The profession of the worker in his residence must be identical to his work and in accordance with the nature of his work\",\r\n termNote4: \"4. For persons who attend a visit visa, a valid visit visa must be attached, with attachment of proof of the relationship with the stc company, either (contract / or letter from the requesting party stating the mission of the visit to the company (stc)). They will be granted a permission for the duration of their stay with the visa.\",\r\n termNote5: \"5. The entry permit card must not be used by someone else, and should be returned to the security department once you're finished. In case it is lost, please call Security and Safety Department 8001231616 or 0114251616 (the main center). A new entry permit application is required to be exchanged for a lost card. With a fine of 500 riyals for the first time and 1000 riyals for the second time, and on the third time it is forbidden to enter and referred to the relevant government agencies.\",\r\n termNote6: \"6. The contracting company bears all legal consequences of any damage caused by the worker inside the work sites of the company (stc).\",\r\n termNote7: \"7. We hope to print the form (from the print button at the top of the form) after approval by the Card Services Division, and bring it upon review to issue a card.\",\r\n termNote8: \"8. The main contractor and subcontractors shall comply with safety and security instructions as stipulated in the contracts concluded with all the contractors of the company (stc) and subject to periodic inspection procedures for the sites by safety inspectors to ensure compliance with safety instructions and safe work policy and violations. Financial violations and fines will be released if they are shown and described in financial values via vendor relations department:\",\r\n termNote9: \"9. The requesting department shall include the technical reports recommended for exchange and safety violations, if any. It is deducted from the entitlement, in implementation of the list of fines and penalties for safety violations against contractors signed by the Vice President for Procurement.\",\r\n termNote10: \"10. Collecting the ID cards of the main center in the card-issuing center-Gate 3 , as for the rest of the regions, you can collect it from the Department of Security of Regions.\",\r\n termNote11: \"11. The list of penalties and fines is applied to vehicles violators inside the STC sites where the violating vehicles are stopped by putting the brakes on them, and the company fully disclaims any damage caused by the brake upon tying or untying\",\r\n \"messageErrorPhoneNumber\": \"Please enter valid mobile number.\",\r\n serviceAgreement: \"Service agreement\",\r\n lengthError: \"can't upload more than\",\r\n userAlreadyExist: \"User already exists\",\r\n INTERNAL: 'Internal: Make the document/record available for viewing within the company only',\r\n SPECIFIC_OR_CONFIDENTIAL: 'Specific or confidential: Publication of the document/record with viewing permit limited to: <br>* Specific Names <br>* Specific organizational unit <br>* Specific administrative levels',\r\n AVAILABLE: 'Available: make the document/record available for viewing within and outside the company.',\r\n other:'Other',\r\n others:'Others',\r\n selectAll:'Select All',\r\n URGENT: '1 day',\r\n NORMAL: '3 days',\r\n select: 'Select',\r\n addMultiAttachments:\"Add Multi Attachments\",\r\n flagStatusUpdated:\"Flag status updated successfully\",\r\n \"AllRequests\": \"All Requests\",\r\n \"applyFilters\": \"Apply Filters\",\r\n \"clear\": \"Clear\",\r\n \"filters\": \"Filters\",\r\n month: \"Month\",\r\n year: \"Year\",\r\n status: \"Status\",\r\n downloadAll:'Download All Attachment',\r\n itemsPerPage:\"Items per page\",\r\n thisFieldIsRequired: \"This field is required\",\r\n thisFieldMaxLength: \"This field max length\",\r\n thisFieldMinLength: \"This field min length\",\r\n pleaseEnterValidNumber: \"Please enter valid number\",\r\n startDate: \"Start Date\",\r\n endDate: \"End Date\",\r\n textArea: \"Text area\"\r\n}\r\n","export default {\r\n pageErrorLoading: \"حدث خطأ، يرجى المحاولة لاحقا. إذا استمر الخطأ، يرجى الاتصال بمكتب مساعدة تقنية المعلومات\",\r\n pageTimeOut:\"يبدو أن الخادم يستغرق وقتًا طويلاً للرد، وقد يحدث هذا بسبب ضعف الاتصال أو خطأ في خوادمنا. يرجى المحاولة مرة أخرى بعد قليل\",\r\n // Buttons\r\n \"reset\": \"إعادة تهيئة\",\r\n \"submit\": \"إرسال\",\r\n // Select\r\n \"selectYourOption\": \"الرجاء الإختيار\",\r\n // Labels\r\n \"optional\": \"إختياري\",\r\n \"Optional\": \"إختياري\",\r\n //Buttons\r\n \"browse\": \"تصفح\",\r\n \"MyRequests\": \"طلباتي\",\r\n \"maxAllowedSize\": \"حجم الملف يجب ألا يتعدى 10 ميغابايت\",\r\n // Request Details Title\r\n \"requestDetailsTitle\":\"تفاصيل الطلب\",\r\n \"hrRequestDetailsTitle\":\"تفاصيل الطلب (الموارد البشرية)\",\r\n \"applyRequestFor\": \"تقديم الطلب لـ\",\r\n \"searchForEmployee\":\"البحث عن موظف\",\r\n // Profile Info labels\r\n \"directManager\": \"المدير المباشر\",\r\n \"employeeEmail\": \"البريد الإلكتروني\",\r\n \"generalDepartmentName\": \"الإدارة العامة\",\r\n \"departmentName\": \"القسم\",\r\n \"generalDepartmentCode\": \"رمز الإدارة العامة\",\r\n \"humanResourcesLocation\": \"شئون الموظفين\",\r\n \"nationality\": \"الجنسية\",\r\n \"businessPhone\": \"هاتف العمل\",\r\n \"Viewapprovalcycle\": \"عرض دورة الموافقة\",\r\n \"approvalCycle\": \" دورة الموافقة\",\r\n \"viewAllDetails\": \"عرض جميع التفاصيل\",\r\n \"jobPosition\": \"الوظيفة\",\r\n \"sector\": \"القطاع\",\r\n // Form Section labels\r\n \"delegateTo\": \"فوض\",\r\n \"processedBy\":\"تمت معالجته بواسطة\",\r\n // Datepicker labels\r\n \"gregorian\": \"ميلادي\",\r\n \"hijri\": \"هجري\",\r\n // Messages\r\n \"successSubmited\": \".شكراً لإرسالك النموذج\",\r\n \"lenghtMin15Max500\":\"الرجاء إدخال 15 حرف كحد أدنى و 500 حرف كحد أقصى\",\r\n \"lenghtMin15Max1000\":\"الرجاء إدخال 15 حرف كحد أدنى و 1000 حرف كحد أقصى\",\r\n \"minLength15\": \"الرجاء كتابة 15 حرف بحد أدنى\",\r\n \"maxlength500\": \"الحد الأقصى المسموح 500 حرف\",\r\n \"maxSize\": \"حجم الملف يجب ألا يتعدى 10 ميغابايت\",\r\n \"unsupportedType\": \"الحد الأقصى المسموح لحجم الملف 10 ميجابيت و أنواع الملفات المسموح إضافتها pdf, doc, docx, ppt, pptx, pps, ppsx, odt, xls, xlsx, zip, csv, txt, rtf, html, mp4, m4v, mov, wmv, avi, mpg, ogv, 3gp, 3g2, jpg, jpej, png, gif, bmp\",\r\n \"unsupportedTypeImgPdf\": \"الحد الأقصى المسموح لحجم الملف 10 ميجابيت و أنواع الملفات المسموح إضافتها (pdf, jpg, jpej, png, bmp)\",\r\n \"unsupportedTypeImgPdf2\": \"الحد الأقصى المسموح لحجم الملف 10 ميجابيت و أنواع الملفات المسموح إضافتها (pdf, docx, xlsx, jpg, email, pptx)\",\r\n \"unsupportedTypeImg\": \"الحد الأقصى المسموح لحجم الملف 10 ميجابيت و أنواع الملفات المسموح إضافتها (jpg, jpej, png, bmp)\",\r\n \"unsupportedTypePdf\": \"الحد الأقصى المسموح لحجم الملف 10 ميجابيت و أنواع الملفات المسموح إضافتها (pdf)\",\r\n \"noUsersFound\": \"الرجاء إدخال بيانات البحث بشكل صحيح\",\r\n // Submit Table\r\n \"formTableFormId\": \"رقم النموذج\",\r\n \"formTableFormStatus\": \"حالة النموذج\",\r\n \"formTableCreationDate\": \"تاريخ النموذج\",\r\n \"formTablePendingWith\": \"في انتظار\",\r\n \"formTableBackToInbox\": \"عودة إلى البريد الوارد\",\r\n // feedback\r\n \"requestFeedback\":\"طلب إفادة\",\r\n \"requestTo\": \"أرسل الى\",\r\n \"feedback\": \"إفادة\",\r\n \"viewFeedback\": \"إظهار الإفادة\",\r\n \"requestFrom\": \"مرسلة من\",\r\n \"feedbackQuestion\": \"سؤال الإفادة\",\r\n \"employeeSearch\": \"البحث عن موظف\",\r\n \"searchEmployeeTooltip_1\": \"أدخل ثلاثة أحرف بحد أدنى لتبدأ البحث عن الموظف\",\r\n \"searchEmployeeTooltip_2\": \"أدخل رقم للبحث برقم الموظف\",\r\n \"searchEmployeeTooltip_3\": \"للبحث بالعنوان البريدي أدخل @ قبل أو بعد حرف\",\r\n \"searchEmployeeTooltip_4\": \"أترك مسافة للبحث بالإسم الأول أو الثاني أو الأخير\",\r\n \"onBehalfFlag\":\"طلب بالانابة عن\",\r\n \"onBehalfOfEmail\":\"إسم الموظف\",\r\n \"commentHistory\":\"سجل التعليقات\",\r\n \"NODATA\": \"لا يوجد بيانات\",\r\n \"termsAndConditions\":\"الشروط والاحكام\",\r\n \"no-files\": \" لا توجد مرفقات\",\r\n \"drag-files\": \"إسحب المرفقات هنا\",\r\n \"limit-error\": \"عدد المرفقات تجاوز المطلوب\",\r\n \"size-error\": \"حجم المرفقات تجاوز المطلوب\",\r\n \"type-error\": \"توع المرفقات غير مناسب\",\r\n \"duplicated-error\": \"تم إرفاق الملف بالفعل\",\r\n \"thisIsInvalidFile\": 'هذا ملف غير صالح',\r\n \"add\": \"اضافة\",\r\n \"addAttachments\": \"اضافة مرفقات\",\r\n \"attachmentdescription\": \"وصف الملف\",\r\n \"attachmentcomment\": \"التعليقات\",\r\n // \"attachment\": \"المرفق\",\r\n \"addAttachment\": \"اضافة المرفق\",\r\n \"locationOfIncident\": \"موقع البلاغ\",\r\n \"FileName\": \"اسم الملف\",\r\n \"FileDescription\": \"وصف الملف\",\r\n // \"delete\": \"حذف\",\r\n \"Attachments\": \"المرفقات\",\r\n \"Attachment\": \"المرفق\",\r\n \"comment\":\"ملاحظات\",\r\n \"comments\":\"ملاحظات\",\r\n \"description\":\"الوصف\",\r\n \"processingDate\":\"تاريخ معالجة الطلب\",\r\n \"Approvals\":\"الموافقات\",\r\n \"submittedSuccessfully\":\"تم تقديم الطلب بنجاح\",\r\n \"support\": \"الملفات المسموحة : PNG & JPG & PDF\",\r\n \"support2\": \"الحد الأقصى لحجم الملف المسموح به هو \",\r\n \"mb\": \"ميغابايت\",\r\n \"support3\": \" الحد الأقصى لحجم الملف المسموح به هو 300 كيلوبايت\",\r\n \"employeeID\": \"الرقم الوظيفي \",\r\n \"NoData\": \"لا توجد طلبات\",\r\n \"NoData1\": \"لا توجد تعليقات\",\r\n \"NoData2\": \"لا توجد بيانات\",\r\n \"Delete\": \"حذف\",\r\n \"ViewDetails\":\"عرض التفاصيل\",\r\n \"fullName\":\"الإسم\",\r\n \"welcomeBack\": \"مرحبا بعودتك\",\r\n \"Hello\": \"مرحبا\",\r\n \"Cancel\":\"إلغاء\",\r\n \"validEmailError\": 'يجب إدخال بريد الكتروني صحيح ',\r\n \"validFieldError\": 'يجب إدخال ',\r\n \"validSelectError\": 'برجاء اختيار ',\r\n \"validSearchError\": 'برجاء البحث عن ',\r\n \"delete\": \"حذف\",\r\n \"Areyousureyouwantdelete\": \"هل أنت متأكد من أنك تريد حذف هذا الطلب؟\",\r\n \"drf-confirmatton-msg\":\"يوجد طلبات لم تتم حتى الان .. الرجاء التأكيد اذا رغبت بنقل الطلب للمرحله التالية بدون مدخلاتهم\",\r\n \"Yes-Proceed\":\" نعم – اكمل الطلب\",\r\n \"No-Discard\":\" لا – الغاء\",\r\n \"yes\": \" نعم\",\r\n \"NoAttachments\": \"لا توجد مرفقات\",\r\n \"cancel\" : \"إلغاء\",\r\n \"View\":\"عرض\",\r\n \"edit\":\"تعديل\",\r\n placeholder: 'أملا هذا الحقل',\r\n downloadLink:\"تحميل الرابط\",\r\n \"link\":\"الرابط\",\r\n\r\n\r\n\r\n AttachmentInvoices: 'مرفقات الفواتير',\r\n AttachmentsOfBank: 'مرفقات كشف الحساب البنكي أو البطاقة الإئتمانية',\r\n DepositVoucherAttachments: 'مرفقات قسيمة الإيداع',\r\n serviceBrief : \"وصف الخدمة\",\r\n PreviousRequests:\"الطلبات السابقة\",\r\n 'Product Implementation': 'Product Implementation',\r\n 'Sales Order and Quality Assurance':'Sales Order and Quality Assurance',\r\n 'Billing Support and Contracts':'Billing Support and Contracts',\r\n 'Sales Excellence':'Sales Excellence',\r\n 'Order Engineering and Delivery Management':'Order Engineering and Delivery Management',\r\n 'Third Party Control and Projects':'Third Party Control and Projects',\r\n 'Enterprise Customer Care':'Enterprise Customer Care',\r\n 'Enterprise Account Sales':'Enterprise Account Sales',\r\n 'Government Accounts Sales':'Government Accounts Sales',\r\n 'Marketing Communications':'Marketing Communications',\r\n 'Customer Experience Excellence':'Customer Experience Excellence',\r\n 'Commercial Regulation':'Commercial Regulation',\r\n 'Enterprise Commercial Finance':'Enterprise Commercial Finance',\r\n 'Product Pricing and Profitability':'Product Pricing and Profitability',\r\n 'Data Protection and Privacy':'Data Protection and Privacy',\r\n 'Customer Value Management':'Customer Value Management',\r\n\r\n\r\n termNote1: \"1. الإدارة الطالبة مسئولة عن صحة الأوراق المرفقة، والإشراف على العمالة.\",\r\n termNote2: \"2.\tيجب أن يكون العامل على كفالة الشركة المقاولة ، وفي حالة التعاقد من الباطن يجب ارفاق العقد بين الطرفين موقعا ومختوما وحديثا ، وأن يكون العامل على كفالة الشركة المتعاقد من الباطن .\",\r\n termNote3: \"3. يجب أن تكون مهنة العامل في إقامته مطابقة لما يقوم به من أعمال وبما يتوافق مع طبيعة عمله\",\r\n termNote4: \"4. بالنسبة للأشخاص الذين يحضرون بتأشيرة زيارة يلزم ارفاق تأشيرة الزيارة سارية المفعول ، مع إرفاق مايثبت العلاقة مع شركة (stc) .إما عقد / أو خطاب من الجهة الطالبة موضحاً مهام الزيارة لشركة (stc). ويمنح فترة تصريح بمدة أقامته بالتأشيرة\",\r\n termNote5: \"5. يمنع استخدام بطاقة تصريح الدخول من قبل شخص أخر ، ويجب إعادتها عند الإنتهاء إلى إدارة الأمن . وفي حال ضياعها يجب إبلاغ إدارة الأمن والسلامة على الهاتف 8001231616 أو 0114251616 ( المركز الرئيسي ). ثم يلزم تقديم طلب تصريح دخول جديد ليتم صرف بطاقة بدل فاقد مع فرض غرامة مالية 500 ريال للمرة الأولى و1000 ريال للمرة الثانية ، وفي المرة الثالثة يمنع من الدخول ويحال للجهات الحكومية ذات العلاقة.\",\r\n termNote6: \"6. تتحمل الشركة المقاولة كافة التبعات القانونية لأي اضرار يحدثها العامل داخل مواقع العمل بشركة (stc)\",\r\n termNote7: \"7. نأمل طباعة النموذج (من زر الطباعة أعلى النموذج) بعد الموافقة عليه من قبل شعبة خدمات البطاقات، وإحضاره عند المراجعة ليتم إصدار البطاقة\",\r\n termNote8: \"8. يلتزم المقاول الرئيسي ومقاولي الباطن بتعليمات الأمن والسلامة كما نصت على ذلك العقود المبرمة مع جميع مقاولي شركة (stc) والخضوع لإجراءات التفتيش الدورية للمواقع من قبل مفتشي السلامة للتأكد من الإلتزام بتعليمات السلامة وسياسة العمل الآمن وسوف يتم تحرير مخالفات وغرامات مالية في حال وجودها موضحة وموصوفة بالقيم المالية عبر علاقات الموردين على الرابط :\",\r\n termNote9: \"9. تلتزم الإدارة الطالبة بتضمين التقارير الفنية الموصية بالصرف مخالفات السلامة إن وجدت وتخصم من الاستحقاق وذلك تطبيقاً لإجراء لائحة الغرامات والجزاءات لمخالفات السلامة على المقاولين\",\r\n termNote10: \"10. تسليم بطاقات المركز الرئيسي في مركز إصدار البطاقات بوابة رقم 3 , أما بقية المناطق تسلم في إدارة أمن المناطق\",\r\n termNote11: \"11. يتم تطبيق لائحة الجزاءات والغرامات على المخالفين داخل مواقع STC حيث يتم إيقاف المركبات المخالفة عن طريق وضع الكوابح عليها، وتخلي الشركة مسؤوليتها بشكل كامل عن أي أضرار يتسبب بها الكابح عند التركيب أو الفك\",\r\n messageErrorPhoneNumber: \"الرجاء ادخال رقم جوال صحيح\",\r\n\r\n serviceAgreement: \" الشروط و الضوابط\",\r\n lengthError: \"لا يمكن أدخال أكثر من\",\r\n userAlreadyExist: \"هذا المستخدم موجود مسبقاً\",\r\n INTERNAL: 'داخلي: إتاحة الوثيقة/السجل للإطلاع داخل الشركة فقط',\r\n SPECIFIC_OR_CONFIDENTIAL: 'محدد/سري: نشر الوثيقة/السجل بصلاحية إطلاع مقصورة على: <br> أسماء محددة <br> وحدة تنظيمية محددة<br> مستويات إدارية محددة',\r\n AVAILABLE: 'متاح: إتاحة الوثيقة/السجل للإطلاع داخل و خارج الشركة',\r\n other:'آخر',\r\n others:'آحرون',\r\n selectAll:'اختر الكل',\r\n URGENT: '1 يوم',\r\n NORMAL: '3 أيام',\r\n select: 'اختر',\r\n addMultiAttachments:\"إضافة أكثر من ملف\",\r\n \"welcome\": \"مرحبا \",\r\n \"logout\": \"تسجيل خروج\",\r\n \"otherLang\": \"English\",\r\n flagStatusUpdated:\"تم التحديث بنجاح\",\r\n \"AllRequests\": \"عدد الطلبات\",\r\n \"clear\": \"مسح\",\r\n \"applyFilters\": \"تصفية\",\r\n \"filters\": \"تصفية\",\r\n month: \"الشهر\",\r\n year: \"السنة\",\r\n status:\"الحالة\",\r\n downloadAll:'تحميل جميع المرفقات',\r\n itemsPerPage:\"عدد العناصر بالصفحة\",\r\n thisFieldIsRequired: \"هذه الخانة مطلوبه\",\r\n thisFieldMaxLength: \"الحد الأقصى لهذه الخانة\",\r\n thisFieldMinLength: \"الحد الأدنى لهذه الخانة\",\r\n pleaseEnterValidNumber: \"برجاء إدخال رقم صحيح\",\r\n startDate: \"تاريخ البداية\",\r\n endDate: \"تاريخ النهاية\",\r\n textArea: \"خانة النص\"\r\n\r\n\r\n\r\n\r\n\r\n}\r\n","/* eslint-disable @typescript-eslint/no-explicit-any */\r\nimport { Injectable } from '@angular/core';\r\nimport * as coreEn from '../i18n/en';\r\nimport * as coreAr from '../i18n/ar';\r\n\r\n@Injectable({\r\n providedIn: 'any',\r\n})\r\nexport class CoreI18nService {\r\n private coreLocales: { [key: string]: { [key: string]: string } };\r\n public language: string;\r\n\r\n constructor() {\r\n // this.language = \"en\";\r\n this.language = (window as any).wmConfig.language;\r\n this.coreLocales = { en: coreEn.default, ar: coreAr.default };\r\n }\r\n\r\n translate(key) {\r\n let result = null;\r\n try {\r\n result = this.coreLocales[this.language][key];\r\n } catch (e) {\r\n result = null;\r\n }\r\n return result || key;\r\n }\r\n\r\n getLanguage() {\r\n return this.language;\r\n }\r\n}\r\n","/*\r\n/!* eslint-disable @typescript-eslint/ban-types *!/\r\n/!* eslint-disable @typescript-eslint/no-empty-function *!/\r\n/!* eslint-disable @typescript-eslint/no-explicit-any *!/\r\nimport {Injectable} from '@angular/core';\r\nimport {BehaviorSubject, Subject} from \"rxjs\";\r\n\r\n@Injectable({\r\n providedIn: 'root'\r\n})\r\nexport class SidenavService {\r\n public subject = new BehaviorSubject({});\r\n public data: any;\r\n public sideNavOpened = new BehaviorSubject(false);\r\n constructor() { }\r\n\r\n publish(eventName: string, componentName: any , position: any = 'end', mode: any = 'over', data?: any) {\r\n this.subject.next({ eventName, componentName, position, mode, data });\r\n }\r\n\r\n}\r\n*/\r\nimport { Injectable } from '@angular/core';\r\nimport { BehaviorSubject, ReplaySubject, Subject } from 'rxjs';\r\n\r\n@Injectable({\r\n providedIn: 'any',\r\n})\r\nexport class SidenavService {\r\n public subject = new Subject<{}>();\r\n public subjectNav = new Subject<{}>();\r\n public sideNavServiceCode = new Subject<{}>();\r\n public subjectNavEditTable = new ReplaySubject<{}>();\r\n public subjectNavAfterEditTable = new ReplaySubject<{}>();\r\n public subjectTabledata = new ReplaySubject<{}>();\r\n public subjectNavWeekDuration = new BehaviorSubject({});\r\n public sideNavOpened = new BehaviorSubject(false);\r\n public data: any = new ReplaySubject();\r\n public field: any = new ReplaySubject();\r\n public mode: any = new ReplaySubject();\r\n public index: any = new ReplaySubject();\r\n public value: any = new BehaviorSubject(false);\r\n public discountTable = new Subject<{}>();\r\n public resolveMode: boolean = false;\r\n public confirmMode: boolean = false;\r\n public formGroup: any = new BehaviorSubject(null);\r\n public unsubscribeSubject: any = new Subject<boolean>();\r\n public contentData: any = {};\r\n public afterClosed: ReplaySubject<any> = new ReplaySubject();\r\n\r\n publish(eventName: string, componentName: any, position: any = 'end', mode: any = 'over', content?: any) {\r\n this.sideNavOpened.next(true);\r\n if (content) {\r\n this.contentData = content;\r\n }\r\n this.subject.next({ eventName, componentName, position, mode, content });\r\n }\r\n\r\n closeSidenav(data?: any) {\r\n this.publish('close', null);\r\n this.afterClosed.next(data);\r\n this.afterClosed = new ReplaySubject();\r\n this.contentData = {};\r\n }\r\n}\r\n","import {HttpClient, HttpHeaders} from \"@angular/common/http\";\r\nimport {map} from \"rxjs/operators\";\r\nimport {Inject, Injectable} from \"@angular/core\";\r\nimport {catchError, throwError} from \"rxjs\";\r\nimport * as constants from '../constants'\r\nimport type {MyLibConfig} from \"../interfaces/shared.interface\";\r\nimport {MY_LIB_CONFIG_TOKEN} from \"../../public-api\";\r\n\r\n@Injectable({\r\n providedIn: \"any\"\r\n})\r\nexport class FeedBackService {\r\n apiUrl: string = ''\r\n\r\n constructor(private http: HttpClient,\r\n @Inject(MY_LIB_CONFIG_TOKEN) private config: MyLibConfig) {\r\n const language = (window as any)?.wmConfig?.language ? (window as any).wmConfig.language : 'en';\r\n this.apiUrl = this.config.proxyServiceBaseUrl + language + this.config.proxyFullAddress + this.config.proxyServiceExecute;\r\n console.log('Config: ', this.config); // for testing purposes only\r\n }\r\n\r\n feedbackForm: boolean = false;\r\n feedBackSent: boolean = false;\r\n pendingForm: boolean = false;\r\n responderForm: boolean = false;\r\n feedbackResponse: any = {\r\n requestFrom: null,\r\n requestTo: null,\r\n requestFeedback: null,\r\n responseFeedback: null\r\n };\r\n\r\n private createRequestBody(method: string, serviceName: string, urlParameters, requestBody = null) {\r\n return {\r\n method: method,\r\n destination: constants.TARGET_SERVER_DP,\r\n serviceName: serviceName,\r\n formName: this.config.formName,\r\n urlParameters: {\r\n inboxid: this.config.formId,\r\n ...urlParameters\r\n },\r\n body: requestBody\r\n };\r\n }\r\n\r\n private performPostRequest(body) {\r\n return this.http.post(this.apiUrl, body, {\r\n headers: new HttpHeaders({\r\n authToken: this.config.authToken,\r\n \"Content-Type\": \"application/x-www-form-urlencoded\"\r\n }),\r\n observe: \"body\"\r\n }).pipe(\r\n map((response: any) => response),\r\n catchError((err: any) => throwError(err))\r\n );\r\n }\r\n\r\n getFeedback(email: string) {\r\n const body = this.createRequestBody(constants.HTTP_METHOD_GET, constants.STATE_NAME_DP_GET_FEEDBACK, {email});\r\n return this.performPostRequest(body);\r\n }\r\n\r\n submitFeedback(data) {\r\n const [email, question] = data;\r\n const body = this.createRequestBody(constants.HTTP_METHOD_POST, constants.SERVICE_NAME_DP_CREATE_FEEDBACK, {}, {request: question, to: email});\r\n return this.performPostRequest(body);\r\n }\r\n\r\n addResponse(data) {\r\n const [feedbackId, feedbackResponse] = data;\r\n const body = this.createRequestBody(constants.HTTP_METHOD_PUT, constants.SERVICE_NAME_DP_UPDATE_FEEDBACK, {}, {\r\n response: feedbackResponse,\r\n feedbackId: feedbackId\r\n });\r\n return this.performPostRequest(body);\r\n }\r\n\r\n}\r\n","import { Section } from \"../interfaces\";\r\n\r\nexport default {\r\n beforeTranspileSection (section: Section): Section {\r\n const hookResult = section;\r\n // Here should be the code to manipulate the section object before the transpile stage\r\n return hookResult;\r\n },\r\n\r\n beforeSendPayload (submitPayload: {[key: string]: any}): {[key: string]: any} {\r\n const hookResult = submitPayload;\r\n // Here should be the code to manipulate the submit payload before the request to backend\r\n return hookResult;\r\n },\r\n\r\n afterSendPayload (responsePayload: {[key: string]: any}): {[key: string]: any} {\r\n const hookResult = responsePayload;\r\n // Here should be the code to manipulate the response payload to a submit of a form\r\n return hookResult;\r\n }\r\n}\r\n","import {HttpClient, HttpHeaders} from \"@angular/common/http\";\r\nimport {DestroyRef, inject, Inject, Injectable} from \"@angular/core\";\r\nimport type {MyLibConfig} from \"../interfaces/shared.interface\";\r\nimport {CommentsDrop, Form, Header, InboxItem, Messages, MY_LIB_CONFIG_TOKEN, ProfileInfoDrop, Section, SectionHeader} from \"../../public-api\";\r\nimport * as constants from '../constants'\r\nimport {catchError, from, Observable, switchMap, throwError} from \"rxjs\";\r\nimport {map} from \"rxjs/operators\";\r\nimport saveFormHooks from '../hooks/save-form';\r\nimport { takeUntilDestroyed } from \"@angular/core/rxjs-interop\";\r\n\r\n@Injectable({\r\n providedIn: \"root\"\r\n})\r\nexport class CoreService {\r\n apiUrl: string = ''\r\n private authToken: string;\r\n private refreshToken: string;\r\n private readonly projectConfig: string;\r\n public userData: string;\r\n private readonly localUser: {};\r\n public loggedInUserData: {};\r\n currentActor: string\r\n private authorizedEmail!: string;\r\n private requesterEmail!: string;\r\n private currentSubmitter: any;\r\n language: string\r\n activities = []\r\n approvals: any\r\n historyDataLoaded: boolean\r\n historyData: any[] = []\r\n private readonly isMobile: boolean;\r\n destroyRef = inject(DestroyRef);\r\n\r\n\r\n constructor(private readonly http: HttpClient,\r\n @Inject(MY_LIB_CONFIG_TOKEN) private readonly config: MyLibConfig) {\r\n const language = (window as any)?.wmConfig?.language ? (window as any).wmConfig.language : 'en';\r\n this.apiUrl = this.config.proxyServiceBaseUrl + language + this.config.proxyFullAddress + this.config.proxyServiceExecute;\r\n console.log('Config: ', this.config);\r\n this.localUser = {\r\n \"formPrefix\": \"CEP\",\r\n \"formId\": \"CEP5595432\",\r\n \"inboxUri\": \"\\/group\\/hub\\/inbox\",\r\n \"baseUrl\": \"\\/group\\/i-gate\\/wm-bpm\\/forms\\/-\\/proxy\",\r\n \"showPrint\": true,\r\n \"language\": \"en\",\r\n \"isMobile\": true,\r\n \"outlook\": false,\r\n \"loggedInUserEmail\": \"ibrahimmaa.c@stc.com.sa\"\r\n }\r\n this.projectConfig = (this.config.production) ? (window as any)['wmConfig'] : btoa(JSON.stringify(this.localUser));\r\n this.userData = this.projectConfig;\r\n this.language = (window as any)?.wmConfig?.language ? (window as any).wmConfig.language : \"en\";\r\n this.isMobile = this.projectConfig?.['isMobile'];\r\n }\r\n\r\n public getLoggedInUserData() {\r\n let loggedInEmail = this.loggedInUserId()\r\n this.employeeProfile(loggedInEmail).pipe(\r\n takeUntilDestroyed(this.destroyRef)\r\n ).subscribe((response: any) => {\r\n this.loggedInUserData = response?.[\"Users\"]?.[0]\r\n console.log('getLoggedInUserData', response)\r\n })\r\n }\r\n\r\n public loadForm() {\r\n const authUrl = this.buildAuthUrl();\r\n return this.http.get(authUrl, {observe: 'response'}).pipe(\r\n map((res: any) => {\r\n const tokenInformation = res.body;\r\n this.authToken = tokenInformation.token;\r\n this.getLoggedInUserData();\r\n this.refreshToken = tokenInformation.refreshToken;\r\n const body = this.buildBody();\r\n const options = this.getRequestOptions();\r\n return this.callPost(body, options);\r\n }),\r\n switchMap(postObservable => postObservable),\r\n catchError((httpError: any) => {\r\n return throwError(httpError);\r\n })\r\n );\r\n }\r\n\r\n private buildAuthUrl(): string {\r\n const baseUrl = this.config.proxyServiceBaseUrl;\r\n const language = (window as any)?.wmConfig?.language ? (window as any).wmConfig.language : 'en';\r\n const fullAddress = this.config.proxyFullAddress;\r\n const authPart = this.config.proxyServiceAuthorization;\r\n return `${baseUrl}${language}${fullAddress}${authPart}?ts=${(new Date()).valueOf()}`;\r\n }\r\n\r\n private buildBody(): object {\r\n const baseBody = {\r\n method: constants.HTTP_METHOD_GET,\r\n destination: constants.TARGET_SERVER_WM,\r\n serviceName: constants.SERVICE_NAME_WM_FORM,\r\n formName: this.config.formName,\r\n formId: \"\",\r\n // queryParameters: null\r\n };\r\n if (!this.config.formId) {\r\n delete baseBody.formId;\r\n } else {\r\n baseBody.formId = this.config.formId;\r\n }\r\n return baseBody;\r\n }\r\n\r\n public employeeProfile(employeeEmail: any) {\r\n let body = {\r\n method: constants.HTTP_METHOD_GET,\r\n formName: this.config.formName,\r\n destination: constants.TARGET_SERVER_DP,\r\n serviceName: constants.SERVICE_NAME_DP_SEARCH_EMPLOYEE,\r\n parameters: {\r\n q: employeeEmail\r\n }\r\n };\r\n return this.http.post(this.apiUrl, body, {\r\n headers: new HttpHeaders({\r\n authToken: this.authToken,\r\n \"Content-Type\": \"application/x-www-form-urlencoded\"\r\n }),\r\n observe: \"body\"\r\n }).pipe(\r\n map((response: any) => {\r\n return response\r\n })\r\n , catchError((err: any) => {\r\n return throwError(err)\r\n }));\r\n }\r\n\r\n private getRequestOptions() {\r\n const isMobile = /iPhone|iPad|iPod|Android/i.test(navigator.userAgent);\r\n const ts = (new Date()).valueOf().toString();\r\n const userAgent = navigator.userAgent;\r\n return {\r\n headers: new HttpHeaders({\r\n authToken: this.authToken,\r\n 'Content-Type': constants.HEADER_CONTENT_TYPE_FORM,\r\n 'feHeader': '{\"isMobile\":' + this.isMobile + ', \",aIsMobile\":' + isMobile + ',ts:' + ts + ',loggedInUserEmail:' + this.loggedInUserId() + ',formName:' + this.config.formName + ',user-agent:' + userAgent + '}'\r\n }),\r\n observe: 'body'\r\n }\r\n }\r\n\r\n private getDraftId(val) {\r\n return val.toUpperCase().startsWith('DRAFT');\r\n }\r\n\r\n public submitForm(...args) {\r\n const [section, action] = args;\r\n const method = this.getHttpMethod();\r\n let sectionId = this.beforeTranspileSectionWrapper(section).id;\r\n let serviceName = this.getServiceName(action);\r\n let formName = this.getFormName(action);\r\n let body = this.getBodyObject(method, serviceName, action, formName, this.populatedPayload(sectionId, section), this.config.formId);\r\n const options = this.getRequestOptions();\r\n\r\n return this.submit(body, options);\r\n }\r\n\r\n private getHttpMethod() {\r\n return (this.config.formId && !this.getDraftId(this.config.formId)) ? constants.HTTP_METHOD_PUT : constants.HTTP_METHOD_POST;\r\n }\r\n\r\n private beforeTranspileSectionWrapper(section) {\r\n return saveFormHooks.beforeTranspileSection ? saveFormHooks.beforeTranspileSection(section) : section;\r\n }\r\n\r\n private getServiceName(action) {\r\n if (action === constants.WM_ACTION_SAVE_CHANGES) {\r\n return constants.SERVICE_NAME_WM_DRAFT_FORM\r\n } else {\r\n return constants.SERVICE_NAME_WM_FORM\r\n }\r\n }\r\n\r\n private getFormName(action) {\r\n if (action === constants.WM_ACTION_SAVE_CHANGES) {\r\n return 'common';\r\n } else {\r\n return this.config.formName;\r\n }\r\n }\r\n\r\n private populatedPayload(sectionId, section) {\r\n let payload;\r\n if (sectionId === constants.SECTION_ID_REQUEST_DETAILS) {\r\n payload = {request: {details: section.body.details}};\r\n } else {\r\n payload = {workflowSteps: {}};\r\n payload.workflowSteps.details = section.body.details;\r\n payload.workflowSteps.actor = this.currentSubmitter.actor;\r\n payload.workflowSteps.actor.email = this.currentActor;\r\n payload.workflowSteps.status = constants.SECTION_STATUS_PENDING;\r\n }\r\n return payload;\r\n }\r\n\r\n private getBodyObject(method, serviceName, action, formName, payload, formId) {\r\n let body = {\r\n method: method,\r\n destination: constants.TARGET_SERVER_WM,\r\n serviceName: serviceName,\r\n parameters: {\r\n action: action\r\n },\r\n formName: formName,\r\n body: payload,\r\n formId: formId,\r\n queryParameters: {},\r\n // payload\r\n }\r\n\r\n if (this.config.formId) {\r\n body.formId = this.config.formId;\r\n }\r\n\r\n if (!this.authorizedEmail || !this.authorizedEmail.length || this.authorizedEmail === this.requesterEmail) {\r\n delete body.queryParameters;\r\n }\r\n\r\n if (saveFormHooks.beforeSendPayload) {\r\n body.body.payload = saveFormHooks.beforeSendPayload(body.body.payload);\r\n }\r\n\r\n return body;\r\n }\r\n\r\n\r\n private callPost(body, options): Observable<any> {\r\n const language = (window as any)?.wmConfig?.language ? (window as any).wmConfig.language : \"en\";\r\n let apiUrl = this.config.proxyServiceBaseUrl + language + this.config.proxyFullAddress + this.config.proxyServiceExecute;\r\n\r\n return this.http.post(apiUrl, encodeURIComponent(JSON.stringify(body)), options).pipe(\r\n map((responseObject: any) => this.successWm(responseObject)),\r\n catchError((httpError: any) => throwError(httpError))\r\n );\r\n }\r\n\r\n private submit(body: any, options: any) {\r\n const language = (window as any)?.wmConfig?.language ? (window as any).wmConfig.language : \"en\";\r\n const apiUrl = this.config.proxyServiceBaseUrl + language + this.config.proxyFullAddress + this.config.proxyServiceExecute;\r\n\r\n return from(\r\n this.http.post(apiUrl, encodeURIComponent(JSON.stringify(body)), options).toPromise().then(\r\n (responseObject: any) => {\r\n let formResponse = responseObject.data.form;\r\n if (saveFormHooks.afterSendPayload) {\r\n formResponse = saveFormHooks.afterSendPayload(formResponse);\r\n }\r\n let result = {\r\n id: null,\r\n status: null,\r\n nextApprover: {\r\n name: null,\r\n email: null,\r\n role: null\r\n },\r\n creationDate: null\r\n };\r\n result.id = formResponse.formId;\r\n result.status = formResponse['formStatus'];\r\n if (formResponse.currentActor) {\r\n result.nextApprover = {\r\n name: formResponse.currentActor.name,\r\n email: formResponse.currentActor.email,\r\n role: formResponse['formStep']\r\n }\r\n }\r\n result.creationDate = formResponse.creationDate;\r\n return result;\r\n }, (httpError: any) => {\r\n throw httpError;\r\n }\r\n )\r\n );\r\n }\r\n\r\n private successWm(...args) {\r\n let [payload] = args;\r\n let wasSendBack = false;\r\n let result = new Form(\r\n constants.NO_VALUE,\r\n constants.NO_VALUE,\r\n constants.NO_VALUE,\r\n constants.NO_VALUE,\r\n constants.NO_VALUE,\r\n constants.NO_VALUE,\r\n constants.NO_VALUE\r\n );\r\n this.requesterEmail = payload.data['requester'].employeeEmail;\r\n this.authorizedEmail = payload.data['requester'].authorizedEmail;\r\n /* Generate Header Object */\r\n let payloadFormDetails = payload.data.form;\r\n let isReadOnly = (payloadFormDetails.readOnly.toUpperCase() === constants.TRUE_STRING ? constants.TRUE_BOOL : (payloadFormDetails.readOnly.toUpperCase() === constants.FALSE_STRING ? constants.FALSE_BOOL : constants.NO_VALUE))\r\n result.header = new Header(\r\n payload.data['requester'].fullName,\r\n constants.IGATE_STATIC_ASSET_PROFILE_PHOTO_URL + payload.data['requester'].employeeEmail,\r\n (payloadFormDetails.formId ? payloadFormDetails.formId : constants.DONT_SHOW),\r\n (payloadFormDetails.creationDate ? payloadFormDetails.creationDate : constants.DONT_SHOW),\r\n payloadFormDetails['formStatus'],\r\n payloadFormDetails.details\r\n );\r\n /* Generate Profile Information Object */\r\n let payloadProfileInfo = payload.data['requester'];\r\n result.profileInfoDrop = new ProfileInfoDrop(\r\n (payloadProfileInfo['onBehalfAuthorized'] ? JSON.parse(payloadProfileInfo['onBehalfAuthorized']) : null),\r\n payloadProfileInfo['employeeId'],\r\n payloadProfileInfo.employeeEmail,\r\n payloadProfileInfo.fullName,\r\n payloadProfileInfo.generalDepartmentName,\r\n payloadProfileInfo.jobPosition,\r\n payloadProfileInfo['sectorName'],\r\n payloadProfileInfo.departmentName,\r\n payloadProfileInfo.generalDepartmentCode,\r\n payloadProfileInfo['humanResourceLocation'],\r\n payloadProfileInfo.nationality,\r\n payloadProfileInfo.businessPhone,\r\n payloadProfileInfo['directManagerName'],\r\n payloadProfileInfo.seniorSectorName\r\n );\r\n result.sections = [];\r\n let requestDetailsHasComment = false;\r\n if (payload.data.request.details.comment) {\r\n requestDetailsHasComment = true;\r\n }\r\n result.sections.push(\r\n new Section(\r\n constants.SECTION_ID_REQUEST_DETAILS,\r\n new SectionHeader(constants.DONT_SHOW, constants.DONT_SHOW, constants.DONT_SHOW, constants.DONT_SHOW, constants.DONT_SHOW, constants.DONT_SHOW, constants.DONT_SHOW, requestDetailsHasComment, (payload.data['workflowSteps'] ? constants.READ_ONLY : isReadOnly)),\r\n payload.data.request\r\n )\r\n );\r\n\r\n if (result.header.formId) {\r\n result.commentsDrop = (!result.commentsDrop ? [] : result.commentsDrop);\r\n this.loadHistory(result.header.formId).pipe(\r\n takeUntilDestroyed(this.destroyRef)\r\n ).subscribe(\r\n (response: any) => {\r\n if (response) {\r\n response.items.forEach((item: any) => {\r\n if (item.sequenceNumber !== '0' && item.processedBy) {\r\n const name = item.processedBy['firstName'] + ' ' + item.processedBy['secondMiddleName'] + ' ' + item.processedBy['familyName'];\r\n result.commentsDrop.push(new CommentsDrop(\r\n constants.IGATE_STATIC_ASSET_PROFILE_PHOTO_URL + item.processedBy.email,\r\n name,\r\n item.comments,\r\n item['modifiedDate'],\r\n item.attachments,\r\n item.processedBy.job\r\n ));\r\n }\r\n });\r\n }\r\n },\r\n );\r\n }\r\n\r\n\r\n const inboxType = this.getInboxType(result);\r\n if (result.header.formId && (!this.isOpenOnInbox())) {\r\n this.getInboxItem(result.header.formId, inboxType).pipe(\r\n takeUntilDestroyed(this.destroyRef)\r\n ).subscribe(\r\n (response: any) => {\r\n if (response) {\r\n const item = response.item;\r\n result.inboxItem = new InboxItem(\r\n item['flagging'].flagPriority,\r\n item['flagging']['isFlagged'],\r\n item.feedback['canRequestFeedback'],\r\n item.feedback['hasFeedback'],\r\n item.feedback['isPending'],\r\n item.feedback['isRequested'],\r\n item.feedback['isResponded']\r\n );\r\n }\r\n },\r\n );\r\n }\r\n\r\n let payloadWorkflowSteps = payload.data.workflowSteps;\r\n if (payloadWorkflowSteps && payloadWorkflowSteps.constructor === Array && payloadWorkflowSteps.length > 0) {\r\n payloadWorkflowSteps.forEach((step, index) => {\r\n let currentIsRequesterSendBack = JSON.stringify(step.details) === JSON.stringify({});\r\n let hasComments = (!currentIsRequesterSendBack && (step.details.comment || step.comment) ? constants.HAS_COMMENTS : constants.NO_COMMENTS);\r\n let currentActor = (step.actor.email === step.actor.recipient.email ? step.actor.recipient : (step.actor.delegate ? step.actor.delegate : null))\r\n if (wasSendBack && step.actor.recipient.role === 'REQUESTER') {\r\n console.log(\"wasSendBack && REQUESTER\")\r\n result.sections = [new Section(\r\n constants.SECTION_ID_REQUEST_DETAILS,\r\n new SectionHeader(\r\n constants.DONT_SHOW,\r\n constants.DONT_SHOW,\r\n constants.DONT_SHOW,\r\n constants.DONT_SHOW,\r\n constants.DONT_SHOW,\r\n constants.DONT_SHOW,\r\n constants.DONT_SHOW,\r\n requestDetailsHasComment,\r\n (payload.data.workflowSteps ? constants.READ_ONLY : isReadOnly)\r\n ),\r\n payload.data.request\r\n )]\r\n } else if (wasSendBack) {\r\n console.log(\"Pop\")\r\n if (result.sections.length > 1) {\r\n result.sections.pop();\r\n }\r\n wasSendBack = false;\r\n }\r\n\r\n\r\n if (step.details.decision && step.details.decision.key === constants.FORM_STATUS_SEND_BACK) {\r\n wasSendBack = true;\r\n } else if (JSON.stringify(step.details) !== JSON.stringify({})) {\r\n\r\n let date = step.date\r\n let currentActorName = currentActor ? this.getShortName(currentActor.name).toString() : \"\"\r\n let shortName = step.actor.recipient?.name ? this.getShortName(step.actor.recipient.name).toString() : \"\"\r\n let delegateName= step.actor.delegate?.name ? this.getShortName(step.actor.delegate.name).toString() : \"\"\r\n let image = constants.IGATE_STATIC_ASSET_PROFILE_PHOTO_URL + step.actor.recipient.email\r\n let delegateImage = step.actor.delegate?.email ? constants.IGATE_STATIC_ASSET_PROFILE_PHOTO_URL + step.actor.delegate.email : \"\"\r\n let status = step.actor.status\r\n result.sections.push(\r\n new Section(\r\n step.actor.recipient.role.toLowerCase() + constants.SECTION_ID_APPROVAL_PARTIAL_NAME,\r\n new SectionHeader(\r\n currentActorName,\r\n date,\r\n shortName,\r\n image,\r\n delegateName,\r\n delegateImage,\r\n status,\r\n hasComments,\r\n (index < payloadWorkflowSteps.length - 1 ? constants.READ_ONLY : isReadOnly)\r\n ),\r\n {details: step.details, processingDate: step.date}\r\n )\r\n );\r\n this.currentSubmitter = {actor: step.actor, recipient: step.recipient, delegate: step.actor.delegate};\r\n }\r\n });\r\n }\r\n /* Create Lov Sections */\r\n result.lovs = (payload?.meta?.lovs ? payload.meta.lovs : null);\r\n\r\n if (payload?.meta?.messages) {\r\n result.messages = new Messages(\r\n {},\r\n [],\r\n [],\r\n []\r\n );\r\n payload.meta.messages.forEach((message) => {\r\n result.messages.originalMsgs.push(message);\r\n result.messages[message.type].push(message.message);\r\n });\r\n }\r\n result.sections[result.sections.length - 1].header.readOnly = isReadOnly;\r\n return result;\r\n }\r\n\r\n public loadFile(...args: any): Observable<any> {\r\n const [id] = args;\r\n return this.http.get(\r\n `${this.config.proxyFullAddress}${this.config.proxyServiceForms}${this.config.formId}${this.config.proxyServiceAttachment}${id}`,\r\n {observe: 'response'}\r\n );\r\n }\r\n\r\n public dataURItoBlob(dataURI: any) {\r\n const byteString = atob(dataURI);\r\n const arrayBuffer = new ArrayBuffer(byteString.length);\r\n const int8Array = new Uint8Array(arrayBuffer);\r\n for (let i = 0; i < byteString.length; i++) {\r\n int8Array[i] = byteString.charCodeAt(i);\r\n }\r\n return new Blob([arrayBuffer], {type: 'image/jpeg'});\r\n }\r\n\r\n saveFile(fileInformation) {\r\n const fileBlob = this.dataURItoBlob(fileInformation.fileContents);\r\n const file = new File([fileBlob], fileInformation.fileName, {type: fileInformation.mimeType});\r\n const blobUrl = URL.createObjectURL(file);\r\n const link = document.createElement('a');\r\n link.href = blobUrl;\r\n link.download = fileInformation.fileName;\r\n link.click();\r\n URL.revokeObjectURL(blobUrl);\r\n }\r\n\r\n setFlagPriority(id: string) {\r\n let body = {\r\n method: constants.HTTP_METHOD_PUT,\r\n destination: constants.TARGET_SERVER_DP,\r\n serviceName: constants.SERVICE_NAME_DP_UPDATE_INBOX_ITEM,\r\n formName: this.config.formName,\r\n urlParameters: {\r\n inboxid: this.config.formId\r\n },\r\n body: {\r\n flag: id\r\n }\r\n }\r\n let options = this.getRequestOptions();\r\n return this.generalCallApi(body, constants.STATE_MACHINE_ACTION_SUCCESS_INBOX_ITEM, options);\r\n }\r\n\r\n public loadHistory(...args) {\r\n const [id] = args;\r\n const body = {\r\n method: constants.HTTP_METHOD_GET,\r\n destination: constants.TARGET_SERVER_WM,\r\n serviceName: constants.WORKFLOW_ITEMS,\r\n formId: id || this.config.formId,\r\n formName: \"bpm\",\r\n };\r\n let options = this.getRequestOptions();\r\n return this.generalCallApi(body, constants.STATE_MACHINE_ACTION_LOAD_HISTORY, options);\r\n }\r\n\r\n public getInboxItem(...args) {\r\n const [id, inboxType] = args;\r\n const body = {\r\n formName: this.config.formName,\r\n method: constants.HTTP_METHOD_GET,\r\n destination: constants.TARGET_SERVER_DP,\r\n serviceName: constants.SERVICE_NAME_DP_INBOX_ITEM,\r\n urlParameters: {\r\n inboxid: id,\r\n inboxtype: inboxType\r\n }\r\n }\r\n let options = this.getRequestOptions();\r\n return this.generalCallApi(body, constants.STATE_MACHINE_ACTION_GET_INBOX_ITEM, options);\r\n }\r\n\r\n public perspectiveApproves(details) {\r\n if (!this.config.production) {\r\n details = {}\r\n }\r\n let serviceName = \"form/\" + this.config.formName\r\n if (this.config.formId) {\r\n serviceName = \"form/\" + this.config.formId\r\n }\r\n let body = {\r\n method: constants.HTTP_METHOD_POST,\r\n destination: constants.TARGET_SERVER_WM,\r\n serviceName: serviceName\r\n , formName: constants.APPROVERS\r\n , body: {\r\n \"request\": {\r\n \"details\":\r\n details\r\n }\r\n }\r\n }\r\n let options = this.getRequestOptions();\r\n return this.generalCallApi(body, constants.STATE_MACHINE_ACTION_SUCCESS_RESPONSE, options);\r\n }\r\n\r\n getAttachments(data: any, ...args: any) {\r\n let body = {\r\n method: constants.HTTP_METHOD_POST,\r\n destination: constants.TARGET_SERVER_WM,\r\n serviceName: 'attachment'\r\n , formName: 'common'\r\n , body: {\r\n attachment: {\r\n fileName: this.config.production ? data.fileName : '',\r\n mimeType: this.config.production ? data.mimeType : '',\r\n fileContents: this.config.production ? data.fileContents : '',\r\n }\r\n , comment: data.attachmentcomment\r\n , description: data.fileDescription,\r\n }\r\n }\r\n let options = this.getRequestOptions();\r\n return this.generalCallApi(body, constants.STATE_MACHINE_ACTION_SUCCESS_RESPONSE, options);\r\n }\r\n\r\n searchEmployee(...args) {\r\n let [searchString] = args;\r\n let body = {\r\n method: constants.HTTP_METHOD_GET,\r\n formName: this.config.formName,\r\n destination: constants.TARGET_SERVER_DP,\r\n serviceName: constants.SERVICE_NAME_DP_SEARCH_EMPLOYEE,\r\n parameters: {\r\n q: searchString,\r\n limit: 10\r\n }\r\n }\r\n let options = this.getRequestOptions();\r\n return this.generalCallApi(body, constants.STATE_MACHINE_ACTION_SUCCESS_RESPONSE, options);\r\n }\r\n\r\n public myRequests(details) {\r\n let body = {\r\n method: constants.HTTP_METHOD_GET,\r\n destination: constants.TARGET_SERVER_WM,\r\n serviceName: \"form\" //, //this.getServiceName(),\r\n , formName: \"history\"\r\n , queryParameters: {\r\n formName: this.config.formName,\r\n year: details.year,\r\n month: details.month,\r\n email: this.loggedInUserId()\r\n }\r\n }\r\n let options = this.getRequestOptions();\r\n return this.generalCallApi(body, constants.STATE_MACHINE_ACTION_SUCCESS_RESPONSE, options);\r\n }\r\n\r\n generalCallApi(body, type: string, options) {\r\n let apiUrl = this.config.proxyServiceBaseUrl + this.language + this.config.proxyFullAddress + this.config.proxyServiceExecute;\r\n return this.http.post(apiUrl, encodeURIComponent(JSON.stringify(body)), options).pipe(\r\n map((responseObject: any) => {\r\n return responseObject\r\n }),\r\n catchError((httpError: any) => {\r\n return throwError(httpError);\r\n })\r\n );\r\n }\r\n\r\n public loggedInUserId() {\r\n return this.userData['loggedInUserEmail'];\r\n }\r\n\r\n public getShortName(name: string) {\r\n if (name) {\r\n let nameTokens = name.split(' ');\r\n if (nameTokens.length == 1) {\r\n return [nameTokens[0]]\r\n } else if (nameTokens[nameTokens.length - 2].toLowerCase() == 'al') {\r\n return [nameTokens[0], nameTokens[nameTokens.length - 2], nameTokens[nameTokens.length - 1]].join(' ');\r\n } else {\r\n return [nameTokens[0], nameTokens[nameTokens.length - 1]].join(' ');\r\n }\r\n } else {\r\n return null;\r\n }\r\n }\r\n\r\n public isMobileApp() {\r\n return (window as any).wmConfig.isMobile;\r\n }\r\n\r\n public getInboxType(result) {\r\n let rtn = null;\r\n if (this.loggedInUserId() === result.profileInfoDrop.employeeEmail) {\r\n rtn = constants.INBOX_STATUS_SENT;\r\n } else {\r\n rtn = constants.INBOX_STATUS_PENDING;\r\n }\r\n return rtn;\r\n }\r\n\r\n public isOpenOnInbox() {\r\n return (window as any).wmConfig.outlook;\r\n }\r\n}\r\n","import {Injectable} from '@angular/core';\r\nimport {BehaviorSubject, Subject} from 'rxjs';\r\n\r\n@Injectable({\r\n providedIn: \"any\"\r\n})\r\nexport class ActionStateService {\r\n private actionStatesSubject = new BehaviorSubject<{ [action: string]: boolean }>({});\r\n\r\n actionStates$ = this.actionStatesSubject.asObservable();\r\n resetAction$ = new Subject<void>()\r\n \r\n\r\n setActionValid(action: string, isValid: boolean) {\r\n const currentState = this.actionStatesSubject.value;\r\n currentState[action] = isValid;\r\n this.actionStatesSubject.next(currentState);\r\n }\r\n\r\n resetForm(){\r\n return this.resetAction$\r\n }\r\n}\r\n","/* eslint-disable @typescript-eslint/no-explicit-any */\r\n/* eslint-disable @angular-eslint/component-selector */\r\nimport {MatDialogClose, MatDialogContent, MatDialogRef, MatDialogTitle} from '@angular/material/dialog';\r\nimport {Component, CUSTOM_ELEMENTS_SCHEMA} from '@angular/core';\r\nimport {CoreI18nService} from '../../../../services';\r\n\r\n@Component({\r\n selector: 'app-delete-dialog',\r\n templateUrl: './delete-dialog.component.html',\r\n styleUrls: ['./delete-dialog.component.scss'],\r\n schemas: [CUSTOM_ELEMENTS_SCHEMA],\r\n standalone: true,\r\n imports: [\r\n MatDialogContent,\r\n MatDialogClose,\r\n MatDialogTitle\r\n ]\r\n})\r\nexport class DeleteDialogComponent {\r\n\r\n constructor(\r\n public dialogRef: MatDialogRef<any>,\r\n public i18n: CoreI18nService\r\n ) { }\r\n\r\n\r\n delete() {\r\n this.dialogRef.close('yes');\r\n }\r\n\r\n}\r\n","<div class=\"popup-container\">\r\n <div class=\"d-flex align-items-center justify-content-between\" mat-dialog-title>\r\n <h3> {{i18n.translate('delete')}}</h3>\r\n <ds-button matDialogClose icon>\r\n <ds-icon icon=\"close\" class=\"fs-20 fc-black\"></ds-icon>\r\n </ds-button>\r\n </div>\r\n <mat-dialog-content>\r\n <div class=\"d-flex flex-column align-items-center justify-content-center py-4\">\r\n <h2 class=\"fs-16 fw-medium fc-black mb-4\">\r\n {{i18n.translate('Areyousureyouwantdelete')}}\r\n </h2>\r\n\r\n <div class=\"d-flex align-items-center gap-3\">\r\n <ds-button shape=\"outline\" color=\"dark-gray\" matDialogClose>{{i18n.translate('Cancel')}}</ds-button>\r\n <ds-button color=\"red\" (click)=\"delete()\">{{i18n.translate('yes')}}</ds-button>\r\n </div>\r\n </div>\r\n </mat-dialog-content>\r\n</div>","import {MAT_DIALOG_DATA, MatDialogClose, MatDialogContent, MatDialogTitle} from '@angular/material/dialog';\r\nimport {Component, CUSTOM_ELEMENTS_SCHEMA, Inject} from '@angular/core';\r\nimport {CoreI18nService, CoreService} from '../../../../services';\r\nimport {NgIf} from \"@angular/common\";\r\n\r\n@Component({\r\n selector: 'app-submit-dialog',\r\n templateUrl: './submit-dialog.component.html',\r\n styleUrls: ['./submit-dialog.component.scss'],\r\n schemas: [CUSTOM_ELEMENTS_SCHEMA],\r\n standalone: true,\r\n imports: [\r\n MatDialogClose,\r\n MatDialogContent,\r\n NgIf,\r\n MatDialogTitle\r\n ]\r\n})\r\nexport class SubmitDialogComponent {\r\n successData: any;\r\n inboxUri;\r\n\r\n constructor(\r\n @Inject(MAT_DIALOG_DATA) public data: any,\r\n public i18n: CoreI18nService,\r\n public coreService: CoreService\r\n ) {\r\n this.successData = data;\r\n this.inboxUri = (window as any).wmConfig.inboxUri\r\n }\r\n getImage(email: string) {\r\n if (email) {\r\n return '/group/i-gate/wm-bpm/forms/-/proxy/portrait?email=' + email;\r\n } else {\r\n return '';\r\n }\r\n }\r\n\r\n viewForm(formId: string, formName?: string) {\r\n if (formId) {\r\n if (formId?.toLowerCase().includes('draft')) {\r\n window.open(`/group/i-gate/wm-bpm/forms?formName=${formName}&formId=${formId}`);\r\n return;\r\n }\r\n window.open('/group/i-gate/wm-bpm/forms?formId=' + formId);\r\n }\r\n }\r\n\r\n getStatus(statusKey: string) {\r\n switch (statusKey) {\r\n case 'APPROVED':\r\n return 'success';\r\n case 'COMPLETED':\r\n return 'success';\r\n case 'REJECTED':\r\n return 'danger';\r\n case 'CANCELLED':\r\n return 'danger';\r\n case 'PENDING':\r\n return 'warning';\r\n default:\r\n return 'success';\r\n }\r\n }\r\n}\r\n","<div class=\"popup-container\">\r\n <div class=\"d-flex align-items-center justify-content-end\" mat-dialog-title>\r\n <ds-button matDialogClose icon>\r\n <ds-icon icon=\"close\" class=\"fs-20 fc-black\"></ds-icon>\r\n </ds-button>\r\n </div>\r\n <mat-dialog-content>\r\n <div class=\"d-flex flex-column align-items-center justify-content-center py-4\">\r\n <div class=\"text-center mb-4\">\r\n <svg width=\"79\" height=\"76\" viewBox=\"0 0 79 76\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\">\r\n <path\r\n d=\"M59.9804 0.0998676L1.39239 19.2479C1.02223 19.3692 0.69498 19.5948 0.44999 19.8976C0.205 20.2005 0.0526985 20.5676 0.0113985 20.955C-0.0299016 21.3423 0.0415576 21.7333 0.217184 22.081C0.39281 22.4287 0.665128 22.7183 1.00139 22.9149L23.1454 35.7899C23.487 35.9886 23.8794 36.0828 24.274 36.0608C24.6686 36.0388 25.0481 35.9014 25.3654 35.6659L31.5894 31.0439L26.9674 37.2679C26.7318 37.5852 26.5944 37.9646 26.5722 38.3591C26.5499 38.7537 26.6439 39.1461 26.8424 39.4879L39.7174 61.6289C39.9138 61.9652 40.2031 62.2377 40.5506 62.4135C40.8981 62.5894 41.289 62.6611 41.6763 62.6201C42.0636 62.5791 42.4308 62.4272 42.7338 62.1825C43.0369 61.9378 43.2628 61.6108 43.3844 61.2409L62.5294 2.65187C62.6458 2.29686 62.6615 1.91654 62.5749 1.55313C62.4883 1.18971 62.3026 0.857401 62.0386 0.593071C61.7746 0.328741 61.4425 0.142726 61.0792 0.0556665C60.7159 -0.0313933 60.3355 -0.0160937 59.9804 0.0998676ZM40.9434 55.6999L31.0014 38.6069L42.9894 22.4689C43.2797 22.0798 43.4202 21.5993 43.3852 21.1152C43.3502 20.631 43.142 20.1757 42.7988 19.8325C42.4556 19.4893 42.0002 19.2811 41.5161 19.2461C41.032 19.2111 40.5514 19.3516 40.1624 19.6419L24.0254 31.6279L6.93339 21.6889L57.4514 5.18087L40.9434 55.6999ZM21.2134 44.2759L7.80139 57.6909C7.42253 58.0701 6.90853 58.2833 6.37246 58.2836C5.83638 58.2839 5.32215 58.0712 4.94289 57.6924C4.56363 57.3135 4.35041 56.7995 4.35013 56.2634C4.34985 55.7274 4.56253 55.2131 4.94139 54.8339L18.3564 41.4189C18.7353 41.04 19.2491 40.8272 19.7849 40.8272C20.3207 40.8272 20.8345 41.04 21.2134 41.4189C21.5923 41.7977 21.8051 42.3116 21.8051 42.8474C21.8051 43.3832 21.5923 43.897 21.2134 44.2759ZM3.49139 44.7839C3.30378 44.5963 3.15495 44.3736 3.05341 44.1285C2.95187 43.8834 2.89961 43.6207 2.89961 43.3554C2.89961 43.0901 2.95187 42.8274 3.05341 42.5823C3.15495 42.3371 3.30378 42.1144 3.49139 41.9269L8.78439 36.6339C9.16326 36.255 9.6771 36.0422 10.2129 36.0422C10.7487 36.0422 11.2625 36.255 11.6414 36.6339C12.0203 37.0127 12.2331 37.5266 12.2331 38.0624C12.2331 38.5982 12.0203 39.112 11.6414 39.4909L6.34939 44.7839C6.1618 44.9716 5.93903 45.1206 5.69384 45.2222C5.44864 45.3238 5.18582 45.3762 4.92039 45.3762C4.65497 45.3762 4.39215 45.3238 4.14695 45.2222C3.90176 45.1206 3.67899 44.9716 3.49139 44.7839ZM26.0014 50.9899C26.189 51.1774 26.3378 51.4001 26.4394 51.6453C26.5409 51.8904 26.5932 52.1531 26.5932 52.4184C26.5932 52.6837 26.5409 52.9464 26.4394 53.1915C26.3378 53.4366 26.189 53.6593 26.0014 53.8469L20.7014 59.1409C20.3225 59.5197 19.8087 59.7326 19.2729 59.7326C18.7371 59.7326 18.2233 59.5197 17.8444 59.1409C17.4655 58.762 17.2527 58.2482 17.2527 57.7124C17.2527 57.1766 17.4655 56.6627 17.8444 56.2839L23.1374 50.9909C23.325 50.8032 23.5477 50.6544 23.7928 50.5529C24.0379 50.4513 24.3006 50.3991 24.5659 50.3991C24.8312 50.3991 25.0939 50.4513 25.339 50.5529C25.5841 50.6544 25.8068 50.8032 25.9944 50.9909L26.0014 50.9899Z\"\r\n fill=\"#8E9AA0\"/>\r\n <path\r\n d=\"M58.0015 75.3119C69.0472 75.3119 78.0015 66.3576 78.0015 55.3119C78.0015 44.2662 69.0472 35.3119 58.0015 35.3119C46.9558 35.3119 38.0015 44.2662 38.0015 55.3119C38.0015 66.3576 46.9558 75.3119 58.0015 75.3119Z\"\r\n fill=\"#00C48C\"/>\r\n <path\r\n d=\"M56.8804 57.3183L54.0346 54.4725L52.9743 55.5336L56.8774 59.4367L65.8354 50.5267L65.4927 50.0138C63.8557 47.5812 61.1134 46.002 58.0015 46.002C53.0313 46.002 49.0015 50.031 49.0015 55.002C49.0015 59.9729 53.0305 64.002 58.0015 64.002C62.9716 64.002 67.0007 59.9729 67.0015 55.0035H65.5017C65.5017 55.005 65.5017 55.0072 65.5017 55.0095C65.5017 59.1503 62.1453 62.5067 58.0045 62.5067C53.8637 62.5067 50.5072 59.1503 50.5072 55.0095C50.5072 50.8686 53.8637 47.5122 58.0045 47.5122C60.3793 47.5122 62.4962 48.6168 63.87 50.3392L63.882 50.3542L56.8804 57.3183Z\"\r\n fill=\"white\"/>\r\n </svg>\r\n\r\n </div>\r\n <h2 class=\"fs-16 fw-medium fc-black mb-4 text-center\">\r\n {{ i18n.translate('submittedSuccessfully') }}\r\n </h2>\r\n\r\n <div class=\"info-section reverse w-100\">\r\n <div class=\"info-item px-3\">\r\n <span class=\"name fs-16-imp\">{{ i18n.translate('formTableFormId') }}</span>\r\n <span class=\"disc fs-16-imp\">\r\n <a class=\"cursor-pointer fc-black underline\" (click)=\"viewForm(successData.id, successData?.['formName'])\">\r\n {{ successData.id }}\r\n </a>\r\n </span>\r\n </div>\r\n <div class=\"info-item px-3\">\r\n <span class=\"name fs-16-imp\">{{ i18n.translate('formTableFormStatus') }}</span>\r\n <ds-status class=\"disc\" status=\"{{getStatus(successData?.status?.['key'])}}\">\r\n {{ successData.status?.['value'] }}\r\n </ds-status>\r\n </div>\r\n @if (successData?.status?.['key'] === 'PENDING') {\r\n <div class=\"info-item px-3\">\r\n <div class=\"d-flex align-items-center mt-2\">\r\n <div class=\"img-card circled-img small\">\r\n <img\r\n [src]=\"getImage(successData?.['nextApprover']?.['email'])\"\r\n onerror=\"this.onerror=null;this.src='assets/images/user.svg';\" alt=\"\">\r\n </div>\r\n <div class=\"line-height-1 mx-2\">\r\n <h5 class=\"fs-14 fw-bold fc-black mb-0\">{{ successData?.['nextApprover']?.['name'] }}</h5>\r\n <span class=\"fs-12 text-color-dark-gray\">{{ successData?.['nextApprover']?.['email'] }}</span>\r\n </div>\r\n </div>\r\n </div>\r\n }\r\n </div>\r\n @if (!coreService.isMobileApp()) {\r\n <div class=\"d-flex align-items-center gap-3 mt-3\">\r\n <ds-button>\r\n <a class=\"inboxUri\" href=\"{{inboxUri}}\">\r\n {{ i18n.translate('formTableBackToInbox') }}</a>\r\n </ds-button>\r\n </div>\r\n }\r\n </div>\r\n </mat-dialog-content>\r\n</div>\r\n","/* eslint-disable @typescript-eslint/no-explicit-any */\r\n/* eslint-disable @angular-eslint/component-selector */\r\nimport {MatDialogClose, MatDialogContent, MatDialogRef} from '@angular/material/dialog';\r\nimport {Component, CUSTOM_ELEMENTS_SCHEMA} from '@angular/core';\r\nimport {CoreI18nService} from '../../../../services';\r\n\r\n//import { CoreI18nService} from '../../../../services';\r\n\r\n@Component({\r\n selector: 'app-confirm-dialog',\r\n templateUrl: './confirm-dialog.component.html',\r\n styleUrls: ['./confirm-dialog.component.scss'],\r\n schemas: [CUSTOM_ELEMENTS_SCHEMA],\r\n standalone: true,\r\n imports: [\r\n MatDialogContent,\r\n MatDialogClose\r\n ]\r\n})\r\nexport class ConfirmDialogComponent {\r\n\r\n constructor(\r\n public dialogRef: MatDialogRef<any>,\r\n public i18n: CoreI18nService\r\n ) { }\r\n\r\n\r\n confirm() {\r\n this.dialogRef.close('yes');\r\n\r\n\r\n //////\r\n }\r\n\r\n}\r\n","<div class=\"popup-container\">\r\n <div class=\"d-flex align-items-center justify-content-between\" mat-dialog-title>\r\n <h3> {{i18n.translate('delete')}}</h3>\r\n <ds-button matDialogClose icon>\r\n <ds-icon icon=\"close\" class=\"fs-20 fc-black\"></ds-icon>\r\n </ds-button>\r\n </div>\r\n <mat-dialog-content>\r\n <div class=\"d-flex flex-column align-items-center justify-content-center py-4\">\r\n <h2 class=\"fs-16 fw-medium fc-black mb-4\">\r\n {{i18n.translate('drf-confirmatton-msg')}}\r\n </h2>\r\n\r\n <div class=\"d-flex align-items-center gap-3\">\r\n <ds-button shape=\"outline\" color=\"dark-gray\" matDialogClose>{{i18n.translate('No-Discard')}}</ds-button>\r\n <ds-button color=\"red\" (click)=\"confirm()\">{{i18n.translate('Yes-Proceed')}}</ds-button>\r\n </div>\r\n </div>\r\n </mat-dialog-content>\r\n</div>","import { Pipe, PipeTransform } from '@angular/core';\r\n\r\n@Pipe({\r\n name: 'formatAsPassword'\r\n})\r\nexport class FormatAsPasswordPipe implements PipeTransform {\r\n\r\n transform(value: string | number): unknown {\r\n if(typeof value === 'number') value = value.toString();\r\n const length = value.length;\r\n return '*'.repeat(length);\r\n }\r\n\r\n}\r\n","/* eslint-disable no-useless-escape */\r\nimport { Pipe, PipeTransform } from '@angular/core';\r\n\r\n@Pipe({\r\n name: 'mycurrency'\r\n})\r\nexport class MycurrencyPipe implements PipeTransform {\r\n private prefix: string;\r\n private decimal_separator:string;\r\n private thousands_separator:string;\r\n private suffix:string;\r\n\r\n constructor(){\r\n this.prefix='';\r\n this.suffix='';\r\n this.decimal_separator='.';\r\n this.thousands_separator = ',';\r\n }\r\n transform(value: string, allowNegative = false, decimalPrecision: number = 2) {\r\n if (value == undefined || value === '') {\r\n return null;\r\n }\r\n if (allowNegative) {\r\n value = value.toString();\r\n if (value.startsWith('(') || value.startsWith('-')) {\r\n value = '-' + value.substr(1, value.length).replace(/\\(|\\)|\\$|\\-/g, '');\r\n } else {\r\n value = value.replace(/\\(|\\)|\\$|\\-/g, '');\r\n }\r\n }\r\n let [integer, fraction = ''] = (value || '').toString().split(this.decimal_separator);\r\n fraction = decimalPrecision > 0 ? this.decimal_separator + (fraction + '000000').substring(0, 2) : '';\r\n integer = integer.replace(/\\B(?=(\\d{3})+(?!\\d))/g, this.thousands_separator);\r\n // If user types .xx we can display 0.xx\r\n if (integer === '') {\r\n integer = '0';\r\n } else if (integer.startsWith('$')) {\r\n // If there are multiple transforms, remove the previous dollar sign (blur and change at the same time)\r\n integer = integer.substr(1, integer.length);\r\n } else if (allowNegative && integer.startsWith('-')) {\r\n // If user inputs negative number set to paranthesis format\r\n integer = integer.substr(1, integer.length);\r\n return '(' + this.prefix + integer + fraction + ')';\r\n }\r\n return this.prefix + integer + fraction;\r\n }\r\n\r\n parse(value: string, allowNegative = false) {\r\n let [integer, fraction = ''] = (value || '').split(this.decimal_separator);\r\n integer = integer.replace(new RegExp(/[^\\d\\.]/, 'g'), '');\r\n fraction = parseInt(fraction, 10) > 0 && 2 > 0 ? this.decimal_separator + (fraction + '000000').substring(0, 2) : '';\r\n if (allowNegative && value.startsWith('(') && value.endsWith(')')) {\r\n return (-1 * parseFloat(integer + fraction)).toString();\r\n } else {\r\n return integer + fraction;\r\n }\r\n }\r\n\r\n}\r\n","export interface DateParse { dateInput: string; }\r\nexport type DateDisplay = DateParse & {\r\n monthYearLabel?: string,\r\n dateA11yLabel?: string,\r\n monthYearA11yLabel?: string,\r\n};\r\n\r\nexport class CustomDateFormat {\r\n private _parse: DateParse = {\r\n dateInput: 'DD/MM/YYYY'\r\n };\r\n private _display: DateDisplay = {\r\n dateInput: 'DD/MM/YYYY',\r\n monthYearLabel: 'DD MMM YYYY',\r\n dateA11yLabel: 'LL',\r\n monthYearA11yLabel: 'MMMM YYYY'\r\n };\r\n\r\n set parse(parse: DateParse) {\r\n this._parse = Object.assign({}, this._parse, parse);\r\n }\r\n\r\n get parse(): DateParse {\r\n return this._parse;\r\n }\r\n\r\n set display(display: DateDisplay) {\r\n this._display = Object.assign({}, this._display, display);\r\n }\r\n\r\n get display(): DateDisplay {\r\n return this._display;\r\n }\r\n\r\n updateDateFormat(parse: DateParse, display?: DateDisplay) {\r\n this.parse = parse;\r\n if (!display) {\r\n display = parse;\r\n }\r\n this.display = display;\r\n }\r\n}","import { DateAdapter, MAT_DATE_FORMATS } from '@angular/material/core';\r\nimport { FormControl } from '@angular/forms';\r\nimport { MatDialog, MatDialogRef, MAT_DIALOG_DATA } from '@angular/material/dialog';\r\nimport {\r\n Component,\r\n Input,\r\n Output,\r\n EventEmitter,\r\n forwardRef,\r\n ChangeDetectorRef,\r\n Inject,\r\n} from '@angular/core';\r\nimport {\r\n ControlContainer,\r\n NgForm,\r\n NG_VALUE_ACCESSOR,\r\n FormBuilder,\r\n} from '@angular/forms';\r\nimport { HttpClient } from '@angular/common/http';\r\nimport { Section } from '../../../../interfaces';\r\nimport {\r\n CoreI18nService\r\n} from '../../../../services';\r\nimport { MycurrencyPipe } from '../../../../pipes';\r\nimport { DomSanitizer } from '@angular/platform-browser';\r\nimport { CustomDateFormat } from '../date-picker/date-format';\r\n\r\nconst CUSTOM_INPUT_CONTROL_VALUE_ACCESSOR = {\r\n provide: NG_VALUE_ACCESSOR,\r\n useExisting: forwardRef(() => BaseComponent),\r\n multi: true,\r\n};\r\n@Component({\r\n selector: 'app-base-component',\r\n template: '',\r\n styleUrls: ['./base-component.component.scss'],\r\n providers: [CUSTOM_INPUT_CONTROL_VALUE_ACCESSOR],\r\n viewProviders: [{provide: ControlContainer, useExisting: NgForm}],\r\n standalone: true\r\n})\r\nexport class BaseComponent {\r\n @Input() hideOption = false;\r\n // hideOption: InputSignal<boolean> = input(false);\r\n @Input() type = 'text';\r\n // hideOption: InputSignal<string> = input('text');\r\n @Input() loading!: boolean;\r\n // loading: InputSignal<boolean>;\r\n @Input() field: any;\r\n // loafieldding: InputSignal<any>;\r\n @Input() labelTextReadMode: string;\r\n // labelTextReadMode: InputSignal<string>\r\n @Input() labelTextWriteMode: string;\r\n // labelTextWriteMode: InputSignal<string>\r\n @Input() isReadOnly: boolean;\r\n // isReadOnly: InputSignal<boolean>;\r\n @Input() name: string;\r\n // name: InputSignal<string>\r\n @Input() required = true;\r\n // required: InputSignal<boolean> = input(true);\r\n @Input() mask: string;\r\n // mask: InputSignal<string>\r\n @Input() allowedExtensions = '';\r\n // allowedExtensions: InputSignal<string> = input('');\r\n @Input() link: boolean;\r\n // link: InputSignal<boolean>;\r\n @Input() multiple: boolean;\r\n // multiple: InputSignal<boolean>;\r\n @Input() insideTable: boolean;\r\n // insideTable: InputSignal<boolean>;\r\n @Input() showIfEmpty = false;\r\n // showIfEmpty: InputSignal<boolean> = input(false);\r\n @Input() showErrorMessage: boolean;\r\n // showErrorMessage: InputSignal<boolean>;\r\n @Input() showHint = false;\r\n // showHint: InputSignal<boolean> = input(false);\r\n @Input() hint = '';\r\n // hint: InputSignal<string> = input('');\r\n @Input() errorMessage: string;\r\n // errorMessage: InputSignal<string>\r\n @Input() placeholder: string\r\n // placeholder: InputSignal<string>\r\n @Input() maxLength: number;\r\n // maxLength: InputSignal<number>\r\n @Input() minLength: number;\r\n // minLength: InputSignal<number>\r\n @Input() maxValue: string;\r\n // maxValue: InputSignal<string>\r\n @Input() minValue: string;\r\n // minValue: InputSignal<string>\r\n @Input() disabled = false;\r\n // disabled: InputSignal<boolean> = input(false);\r\n @Input() lov: any;\r\n // lov: InputSignal<any>\r\n @Input() hasLabel = true;\r\n // hasLabel: InputSignal<boolean> = input(true);\r\n @Input() section: Section;\r\n // section: InputSignal<Section>\r\n @Input() controller: FormControl = new FormControl();\r\n value: any;\r\n @Output() emitedValue = new EventEmitter();\r\n\r\n filesize: string;\r\n // public options: any;\r\n public randomID: number =\r\n Math.floor(Math.random() * (999999 - 100000)) + 100000;\r\n constructor(\r\n public i18n: CoreI18nService,\r\n public http: HttpClient,\r\n public fb: FormBuilder,\r\n private dateAdapter: DateAdapter<Date>,\r\n public cdRef: ChangeDetectorRef,\r\n public dialog: MatDialog,\r\n public dialogRef: MatDialogRef<any>,\r\n @Inject(MAT_DIALOG_DATA) public dialogData: any,\r\n public mycurrencyPipe: MycurrencyPipe,\r\n @Inject(MAT_DATE_FORMATS) public dateFormat: CustomDateFormat,\r\n public sanitizer: DomSanitizer\r\n ) {\r\n this.dateAdapter.setLocale(this.i18n.language);\r\n this.value = this.field;\r\n this.emitedValue = new EventEmitter();\r\n if (this.shouldSetDateFormateInAr) {\r\n dateFormat.display = {dateInput: 'YYYY/MM/DD'};\r\n dateFormat.parse = {dateInput: 'YYYY/MM/DD'};\r\n }\r\n }\r\n\r\n get shouldSetDateFormateInAr(): boolean {\r\n return this.i18n.language == 'ar';\r\n }\r\n\r\n resetData() {\r\n if (!this.isReadOnly) {\r\n this.field = '';\r\n this.controller.setValue(this.field)\r\n this.controller.markAsUntouched()\r\n this.emitedValue.emit(this.field);\r\n }\r\n }\r\n}\r\n","import {Directive, Injector, Input, OnInit} from '@angular/core';\r\nimport {ControlValueAccessor, FormBuilder, FormControl, FormControlDirective, FormControlName, FormGroupDirective, NgControl, Validators,} from '@angular/forms';\r\nimport {ActionStateService, CoreI18nService, CoreService} from '../../../services';\r\nimport {DomSanitizer} from \"@angular/platform-browser\";\r\nimport {ToastrService} from \"ngx-toastr\";\r\nimport { MatDialogRef } from '@angular/material/dialog';\r\n\r\n@Directive({\r\n selector: '[appControlValueAccessor]',\r\n})\r\nexport class ControlValueAccessorDirective<Type>\r\n implements ControlValueAccessor, OnInit\r\n{\r\n @Input() tooltip;\r\n @Input() isReadOnly: boolean;\r\n @Input() hint = '';\r\n @Input() loading!: boolean;\r\n @Input() placeholder: string;\r\n @Input() type: string;\r\n @Input() showErrorMessage: string;\r\n @Input() showHint: string;\r\n @Input() showIfEmpty: string;\r\n @Input() insideTable: any;\r\n @Input() mask: any;\r\n @Input() label!: string;\r\n @Input() matSuffix: boolean;\r\n @Input() hasTooltip = false;\r\n @Input() name!: string;\r\n @Input() randomID!: string;\r\n @Input() multiple: boolean = false;\r\n searchControl = new FormControl();\r\n employeeSearchControl = new FormControl();\r\n telephoneControl = new FormControl();\r\n attachments = [];\r\n\r\n\r\n startDateControl = new FormControl();\r\n endDateControl = new FormControl();\r\n Validators = Validators;\r\n\r\n\r\n\r\n\r\n minDateValue: any\r\n maxDateValue: any\r\n @Input() maxDate: string;\r\n // @ViewChild('default')\r\n public datepickerObj!: any;\r\n @Input() minDate: string;\r\n @Input() customMaxDate: any\r\n @Input() customMinDate: any\r\n\r\n value: any;\r\n control: FormControl | undefined;\r\n required:boolean;\r\n maxLength: any;\r\n\r\n isDisabled = false;\r\n constructor(\r\n private readonly injector: Injector, public i18n: CoreI18nService,\r\n public toasterService: ToastrService,\r\n public coreService: CoreService, public sanitizer: DomSanitizer,\r\n public fb: FormBuilder,\r\n public actionStateService: ActionStateService\r\n ) {\r\n\r\n }\r\n\r\n ngOnInit() {\r\n this.setFormControl();\r\n }\r\n\r\n setFormControl() {\r\n try {\r\n const formControl = this.injector.get(NgControl);\r\n switch (formControl.constructor) {\r\n case FormControlName:\r\n this.control = this.injector\r\n .get(FormGroupDirective)\r\n .getControl(formControl as FormControlName);\r\n break;\r\n default:\r\n this.control = (formControl as FormControlDirective)\r\n .form as FormControl;\r\n break;\r\n }\r\n } catch (err) {\r\n this.control = new FormControl();\r\n }\r\n this.setFormValidators();\r\n }\r\n\r\n setFormValidators(){\r\n\r\n this.required = this.control?.hasValidator(Validators.required) ?? false;\r\n if (this.required){\r\n this.searchControl.setValidators(Validators.required);\r\n this.employeeSearchControl.setValidators(Validators.required);\r\n } else {\r\n this.searchControl.clearValidators();\r\n this.employeeSearchControl.clearValidators();\r\n }\r\n this.searchControl.updateValueAndValidity();\r\n this.employeeSearchControl.updateValueAndValidity();\r\n }\r\n\r\n\r\n writeValue(value: Type): void {\r\n this.value = value;\r\n if(!this.value){\r\n this.startDateControl.reset();\r\n this.endDateControl.reset();\r\n this.telephoneControl.reset();\r\n this.attachments = [];\r\n this.searchControl.reset();\r\n this.employeeSearchControl.reset();\r\n } else {\r\n this.startDateControl.setValue(this.value?.startDate);\r\n this.endDateControl.setValue(this.value?.endDate);\r\n this.searchControl.setValue(value['value']);\r\n this.telephoneControl.setValue(value)\r\n if(this.value['value'] === ''){\r\n this.control.reset()\r\n }\r\n this.employeeSearchControl.setValue(value['personName'])\r\n }\r\n }\r\n\r\n registerOnChange(fn: (val: Type | null) => Type): void {\r\n\r\n }\r\n\r\n registerOnTouched(fn: () => Type): void {\r\n }\r\n\r\n setDisabledState?(isDisabled: boolean): void {\r\n this.isDisabled = isDisabled;\r\n }\r\n}\r\n","import {Component, CUSTOM_ELEMENTS_SCHEMA, Inject} from '@angular/core';\r\nimport {MAT_DIALOG_DATA, MatDialogClose, MatDialogContent, MatDialogRef, MatDialogTitle} from '@angular/material/dialog';\r\nimport {CoreI18nService} from '../../../services';\r\n\r\n@Component({\r\n selector: 'app-terms-conditions',\r\n templateUrl: './terms-conditions.component.html',\r\n styleUrls: ['./terms-conditions.component.scss'],\r\n schemas: [CUSTOM_ELEMENTS_SCHEMA],\r\n imports: [\r\n MatDialogContent,\r\n MatDialogClose,\r\n MatDialogTitle\r\n ],\r\n standalone: true\r\n})\r\nexport class TermsConditionsComponent {\r\n termsBody: string = null;\r\n\r\n constructor(\r\n public dialogRef: MatDialogRef<TermsConditionsComponent>,\r\n public i18n: CoreI18nService,\r\n @Inject(MAT_DIALOG_DATA) public data: any\r\n ) {\r\n this.termsBody = data;\r\n }\r\n}\r\n","<div class=\"popup-container\">\r\n <div class=\"d-flex align-items-center justify-content-between\" mat-dialog-title>\r\n <h3 class=\"mb-0 font-16 fw-medium\" >{{i18n.translate('termsAndConditions')}}</h3>\r\n <ds-button matDialogClose icon>\r\n <ds-icon icon=\"close\" class=\"fs-20 fc-black\"></ds-icon>\r\n </ds-button>\r\n </div>\r\n <mat-dialog-content>\r\n <div class=\"px-md-4\">\r\n <p class=\"fs-15 fw-normal bg-color-light-gray p-3 text-break\" [innerHTML]='termsBody' > </p>\r\n </div>\r\n </mat-dialog-content>\r\n</div>\r\n","import { Pipe, PipeTransform } from '@angular/core';\r\nimport { TranslateService } from '@ngx-translate/core';\r\nimport * as en from '../i18n/en';\r\nimport * as ar from '../i18n/ar';\r\n\r\n@Pipe({\r\n name: 'translate',\r\n standalone: true\r\n})\r\nexport class TranslatePipe implements PipeTransform {\r\n private coreLocales: { [key: string]: { [key: string]: string } };\r\n public language: string;\r\n\r\n constructor() {\r\n // this.language = \"en\";\r\n this.language = (window as any).wmConfig.language;\r\n this.coreLocales = { en: en.default, ar: ar.default };\r\n }\r\n\r\n transform(key) {\r\n let result = null;\r\n try {\r\n result = this.coreLocales[this.language][key];\r\n } catch (e) {\r\n result = null;\r\n }\r\n return result || key;\r\n }\r\n\r\n getLanguage() {\r\n return this.language;\r\n }\r\n}","/* eslint-disable @angular-eslint/component-selector */\r\nimport { CoreI18nService } from '../../../../services';\r\nimport { Component, Input } from '@angular/core';\r\nimport {NgIf} from \"@angular/common\";\r\nimport {SatPopoverModule} from \"@ncstate/sat-popover\";\r\nimport {TranslatePipe} from \"../../../../pipes/translate.pipe\";\r\n\r\n\r\n@Component({\r\n selector: 'app-form-label',\r\n templateUrl: './form-label.component.html',\r\n styleUrls: ['./form-label.component.scss'],\r\n imports: [\r\n NgIf,\r\n SatPopoverModule,\r\n TranslatePipe\r\n\r\n ],\r\n standalone: true\r\n})\r\nexport class FormLabelComponent {\r\n @Input() tooltip;\r\n @Input() label = '';\r\n @Input() optional = false;\r\n constructor( public i18n: CoreI18nService) { }\r\n\r\n\r\n\r\n\r\n}\r\n","<div class=\"d-flex justify-content-between\">\r\n <div class=\"d-flex\">\r\n <span class=\"form-label mb-0\">{{ label }}</span>\r\n @if(tooltip) {\r\n <span class=\"form-label mb-0 mx-1\">\r\n <ds-icon\r\n icon=\"info fs-18\"\r\n class=\"cursor-pointer\"\r\n [satPopoverAnchor]=\"popover\"\r\n (click)=\"popover.toggle(); $event.stopImmediatePropagation()\"\r\n ></ds-icon>\r\n </span>\r\n }\r\n </div>\r\n <span *ngIf=\"optional\" class=\"optional-input\">\r\n {{ 'optional' | translate }}\r\n </span>\r\n</div>\r\n<sat-popover #popover [hasBackdrop]=\"true\" verticalAlign=\"below\">\r\n <div class=\"default-popover p-3 fs-14\">\r\n <span class=\"fs-14 fw-bold signature-notes\" [innerHTML]=\"tooltip\"></span>\r\n </div>\r\n</sat-popover>","export const RegexPatterns = {\r\n email: '^[a-z0-9._%+-]+@[a-z0-9.-]+\\\\.[a-z]{2,4}$', // Email validation\r\n };","import { CommonModule } from '@angular/common';\r\nimport { Component, Input, SimpleChanges } from '@angular/core';\r\nimport { MatError } from '@angular/material/form-field';\r\nimport { ControlValueAccessorDirective } from '../control-value-accessor.directive';\r\nimport {RegexPatterns} from \"../../../../regex/regex-patterns\";\r\n\r\n@Component({\r\n selector: 'app-validation-errors',\r\n templateUrl: './validation-errors.component.html',\r\n styleUrls: ['./validation-errors.component.scss'],\r\n standalone: true,\r\n imports: [\r\n CommonModule,\r\n MatError\r\n ]\r\n})\r\nexport class ValidationErrorsComponent<Type> extends ControlValueAccessorDirective<Type> {\r\n @Input() errors = {};\r\n @Input() customErrorMessages = {};\r\n errorMessages = {\r\n required: this.i18n.translate('thisFieldIsRequired'),\r\n maxlength: this.i18n.translate('thisFieldMaxLength'),\r\n minlength: this.i18n.translate('thisFieldMinLength'),\r\n validatePhoneNumber: this.i18n.translate('pleaseEnterValidNumber')\r\n };\r\n\r\n ngOnChanges(changes: SimpleChanges): void {\r\n const { customErrorMessages } = changes;\r\n if (customErrorMessages) {\r\n this.errorMessages = {\r\n ...this.errorMessages,\r\n ...customErrorMessages.currentValue,\r\n };\r\n }\r\n if (this.errors?.['pattern']?.requiredPattern === RegexPatterns.email){\r\n this.errorMessages['pattern'] = 'You must enter email'\r\n }\r\n }\r\n}\r\n"," @if(control.touched) {\r\n @for(error of errors | keyvalue; track error ) {\r\n <mat-error class=\"mb-2\">\r\n {{ errorMessages[error.key] }} {{errors['maxlength']?.requiredLength}} {{errors['minlength']?.requiredLength}}\r\n </mat-error>\r\n }\r\n }","import { Component, CUSTOM_ELEMENTS_SCHEMA, Input, OnInit } from '@angular/core';\r\nimport { CoreI18nService } from '../../../../services';\r\nimport { MatSlideToggle } from '@angular/material/slide-toggle';\r\nimport { DatePipe, DecimalPipe, NgClass, NgForOf, NgIf, NgSwitch, NgSwitchCase, NgSwitchDefault } from '@angular/common';\r\nimport {TranslatePipe} from \"../../../../pipes/translate.pipe\";\r\n\r\n@Component({\r\n selector: 'app-info-item',\r\n templateUrl: './info-item.component.html',\r\n styleUrls: ['./info-item.component.scss'],\r\n standalone: true,\r\n imports: [\r\n MatSlideToggle,\r\n NgSwitchCase,\r\n DecimalPipe,\r\n DatePipe,\r\n NgClass,\r\n NgSwitchDefault,\r\n NgSwitch,\r\n TranslatePipe\r\n ],\r\n schemas: [CUSTOM_ELEMENTS_SCHEMA]\r\n})\r\nexport class InfoItemComponent implements OnInit {\r\n @Input() label!: string;\r\n @Input() value!: any;\r\n @Input() name!: any;\r\n @Input() type = 'text';\r\n @Input() dateType!: string;\r\n @Input() multiple!: boolean;\r\n @Input() insideTable!: boolean;\r\n @Input() hasLabel = true;\r\n @Input() arrayList!: any[];\r\n @Input() actionType!: string;\r\n @Input() download!: boolean;\r\n\r\n constructor(public i18n: CoreI18nService) { }\r\n\r\n ngOnInit() {\r\n if (this.type == 'currency') {\r\n this.value = this.value.replaceAll(',', '');\r\n }\r\n }\r\n\r\n viewForm(url: string) {\r\n window.open('/group/i-gate/wm-bpm/forms?formId=' + url);\r\n }\r\n\r\n getImage(email: string) {\r\n return '/group/i-gate/wm-bpm/forms/-/proxy/portrait?email=' + email;\r\n }\r\n\r\n}\r\n","<ng-container [ngSwitch]=\"type\">\r\n @if(label){\r\n <span class=\"name \">{{ label }}</span>\r\n }\r\n\r\n <!-- class=\"disc\" -->\r\n <span *ngSwitchCase=\"'attach'\">\r\n<!-- <app-docs-uploader [field]=\"value\" styleHeight=\"mini\" display=\"only-files\"></app-docs-uploader>-->\r\n </span>\r\n <span class=\"disc mt-2 \" *ngSwitchCase=\"'user-picker'\">\r\n @if(!multiple){\r\n <div class=\"d-flex align-items-center\">\r\n <div class=\"img-card circled-img small\">\r\n <img [src]=\"getImage(value)\" onerror=\"this.onerror=null;this.src='assets/images/user.svg';\" alt=\"\">\r\n </div>\r\n <div class=\"line-height-1 mx-2\" [ngClass]=\"{'flex-grow-1': actionType === 'delete'}\">\r\n <h6 class=\"fs-14 fw-bold fc-onyx mb-0\">{{name}}</h6>\r\n <span class=\"fs-12 fc-dark-gray\">{{value}}</span>\r\n </div>\r\n </div>\r\n }\r\n\r\n @if(multiple){\r\n @if(multiple){\r\n <ng-container>\r\n @for (emails of arrayList; track $index; let ind = $index) {\r\n <div class=\"d-flex flex-wrap\">\r\n <ng-container>\r\n <div class=\"img-card circled-img small mb-3\">\r\n <img [src]=\"getImage(value)\" onerror=\"this.onerror=null;this.src='assets/images/user.svg';\" alt=\"\">\r\n </div>\r\n <div class=\"line-height-1 mx-2 mb-3\" [ngClass]=\"{'flex-grow-1': actionType === 'delete'}\">\r\n <h6 class=\"fs-14 fw-bold fc-onyx mb-0\"> {{(emails?.['personName'])}}</h6>\r\n <span class=\"fs-12 fc-dark-gray\"> {{emails?.['personEmail']}}</span>\r\n </div>\r\n </ng-container>\r\n </div>\r\n }\r\n </ng-container>\r\n }\r\n }\r\n </span>\r\n\r\n <span class=\"disc\" *ngSwitchCase=\"'toggle'\">\r\n <mat-slide-toggle [checked]=\"value\"></mat-slide-toggle>\r\n </span>\r\n\r\n <span class=\"disc\" *ngSwitchCase=\"'toggleBtn'\">\r\n <span>{{value}}</span>\r\n </span>\r\n <span class=\"disc\" *ngSwitchCase=\"'telephone'\">\r\n <div class=\"d-flex align-items-center\">\r\n <bdi>{{ value }}</bdi>\r\n </div>\r\n </span>\r\n\r\n <span class=\"disc\" *ngSwitchCase=\"'currency'\">\r\n <span>{{value | number:'1.2-2'}}</span>\r\n </span>\r\n\r\n <span class=\"disc\" *ngSwitchCase=\"'date'\">\r\n @if(dateType === 'hijri'){\r\n <span>\r\n {{ value }}\r\n </span>\r\n }\r\n @if(dateType === 'yearOnly'){\r\n <span>\r\n {{ value }}\r\n </span>\r\n }\r\n@if(dateType !== 'hijri' && dateType !== 'yearOnly' && !value?.startDate){\r\n <span>\r\n {{value | date :'dd/MM/yyyy'}}\r\n </span>\r\n}\r\n @if(dateType !== 'hijri' && dateType !== 'yearOnly' && value?.startDate){\r\n <span>\r\n {{value?.['startDate'] | date :'dd/MM/yyyy'}}\r\n -\r\n {{value?.['endDate'] | date :'dd/MM/yyyy'}}\r\n </span>\r\n }\r\n\r\n </span>\r\n\r\n <span class=\"disc\" *ngSwitchCase=\"'dateHijri'\">\r\n {{ value }}\r\n </span>\r\n\r\n <span class=\"disc breakLine fc-coral cursor-pointer\" *ngSwitchCase=\"'link'\">\r\n <a [href]=\"value\" target=\"_blank\">{{'View' | translate}} {{ label }} </a>\r\n </span>\r\n <span class=\"disc breakLine\" *ngSwitchCase=\"'formIdLink'\">\r\n <a (click)=\"viewForm(value)\">{{ value }} </a>\r\n </span>\r\n <span [ngClass]=\"{'breakLine': !insideTable}\" class=\"disc \" *ngSwitchCase=\"'text'\">\r\n {{ value }}\r\n </span>\r\n <span [ngClass]=\"{'breakLine': !insideTable}\" class=\"disc \" *ngSwitchCase=\"'multipleSelect'\">\r\n @for(item of value; track $index; let i =$index){\r\n <span>{{item.value}}\r\n @if(!(i === value.length-1)){\r\n <span>, </span>\r\n }\r\n </span>\r\n }\r\n\r\n </span>\r\n <span [ngClass]=\"{'breakLine': !insideTable}\" class=\"disc \" [innerHTML]=\"value\" *ngSwitchDefault>\r\n </span>\r\n</ng-container>\r\n","/* eslint-disable @angular-eslint/directive-selector */\r\n/* eslint-disable @typescript-eslint/no-empty-function */\r\nimport { Directive, HostListener } from '@angular/core';\r\n\r\n@Directive({\r\n selector: '[enOnly]',\r\n standalone: true\r\n})\r\nexport class EnOnlyDirective {\r\n private specialKeys = ['Backspace', 'ArrowRight', 'ArrowLeft', 'ArrowUp', 'ArrowDown', 'Control']\r\n\r\n constructor() {\r\n\r\n }\r\n\r\n regex = /^[~`!@#$%^&*()_+=[\\]\\{}|;':\",.\\/<>?a-zA-Z0-9- ]+$/;\r\n\r\n @HostListener('keydown', ['$event'])\r\n onKeyDown(event) {\r\n const text = event.key; \r\n const english = /^[a-zA-Z ]*$/;\r\n if (this.regex.test(text) || text == \" \" || text == 'Backspace' || (event.ctrlKey && (text == 'c' || text == 'ؤ' || text == 'v' || text == 'ر' || text == 'x' || text == 'ء' || text == 'a' || text == 'ش' || text == 'z' || text == 'ئ'))) {\r\n return;\r\n }\r\n else {\r\n event.preventDefault();\r\n }\r\n \r\n }\r\n\r\n\r\n\r\n\r\n @HostListener('paste', ['$event'])\r\n onPaste(event) {\r\n const data = event.clipboardData.getData('text/plain');\r\n if ( !(this.regex.test(data)) ) {\r\n event.preventDefault();\r\n }\r\n\r\n }\r\n\r\n\r\n\r\n\r\n\r\n @HostListener('drop', ['$event'])\r\n onDrop(event) {\r\n const data = event.dataTransfer.getData(\"text/plain\");\r\n if (!(this.regex.test(data))) {\r\n event.preventDefault();\r\n }\r\n }\r\n\r\n}\r\n","/* eslint-disable @typescript-eslint/no-empty-function */\r\n/* eslint-disable @angular-eslint/directive-selector */\r\nimport { Directive,HostListener } from '@angular/core';\r\n\r\n@Directive({\r\n selector: '[arOnly]',\r\n standalone: true\r\n})\r\nexport class ArOnlyDirective {\r\n private specialKeys = ['Backspace', 'ArrowRight', 'ArrowLeft', 'ArrowUp', 'ArrowDown', 'Control']\r\n\r\n constructor() {\r\n\r\n }\r\n\r\n regex = /^[~`!@#$%^&*()_+=[\\]\\{}|;':\",.\\/<>?0-9-]+$/;\r\n\r\n @HostListener('keydown', ['$event'])\r\n onKeyDown(event) {\r\n const text = event.key;\r\n if (event.ctrlKey && (text == 'c' || text == 'v' || text == 'x' || text == 'a' || text == 'z' )) {\r\n return;\r\n }\r\n const arabicAlphabetDigits = /[\\u0600-\\u06ff]|[\\u0750-\\u077f]|[\\ufb50-\\ufc3f]|[\\ufe70-\\ufefc]|[\\u0200]|[\\u00A0]/g;\r\n if (arabicAlphabetDigits.test(text) || text == \" \" || text == 'Backspace' || this.regex.test(text)) {\r\n return;\r\n }\r\n else {\r\n event.preventDefault();\r\n }\r\n \r\n }\r\n\r\n @HostListener('paste', ['$event'])\r\n onPaste(event) {\r\n const data = event.clipboardData.getData('text/plain');\r\n if (!(/[\\u0600-\\u06ff]|[\\u0750-\\u077f]|[\\ufb50-\\ufc3f]|[\\ufe70-\\ufefc]|[\\u0200]|[\\u00A0]/g.test(data))) {\r\n event.preventDefault();\r\n }\r\n\r\n }\r\n\r\n @HostListener('drop', ['$event'])\r\n onDrop(event) {\r\n const data = event.dataTransfer.getData(\"text/plain\");\r\n if (!(/[\\u0600-\\u06ff]|[\\u0750-\\u077f]|[\\ufb50-\\ufc3f]|[\\ufe70-\\ufefc]|[\\u0200]|[\\u00A0]/g.test(data))) {\r\n event.preventDefault();\r\n }\r\n }\r\n\r\n}\r\n","import { MatDatepickerInput, MatDatepickerModule, MatDatepickerToggle } from \"@angular/material/datepicker\";\r\nimport { MatFormField, MatFormFieldModule } from \"@angular/material/form-field\";\r\nimport { MatInput } from \"@angular/material/input\";\r\nimport { FormLabelComponent } from \"./form-label/form-label.component\";\r\nimport { ValidationErrorsComponent } from \"./validation-errors/validation-errors.component\";\r\nimport { ReactiveFormsModule } from \"@angular/forms\";\r\nimport { InfoItemComponent } from \"./info-item/info-item.component\";\r\nimport { EnOnlyDirective } from \"../../../directives/en.directive\";\r\nimport { ArOnlyDirective } from \"../../../directives/ar.directive\";\r\nimport { NgClass } from \"@angular/common\";\r\nimport { TranslatePipe } from \"../../../pipes/translate.pipe\";\r\nimport { MatNativeDateModule } from \"@angular/material/core\";\r\n\r\nexport const MatDatePickerImports = [\r\n MatDatepickerToggle,\r\n MatDatepickerInput,\r\n MatDatepickerModule,\r\n MatNativeDateModule\r\n]\r\n\r\nexport const MatFormImports = [\r\n MatFormFieldModule,\r\n MatFormField,\r\n MatInput,\r\n]\r\n\r\nexport const Shareds = [\r\n FormLabelComponent,\r\n ValidationErrorsComponent,\r\n InfoItemComponent,\r\n ReactiveFormsModule,\r\n NgClass,\r\n TranslatePipe\r\n]\r\n\r\nexport const TextLanguageDirectives = [\r\n EnOnlyDirective,\r\n ArOnlyDirective\r\n]\r\n\r\n","import { Component, CUSTOM_ELEMENTS_SCHEMA, DestroyRef, EventEmitter, forwardRef, inject, Input, OnInit, Output } from '@angular/core';\r\nimport {MatCheckbox} from \"@angular/material/checkbox\";\r\nimport {FormsModule, NG_VALUE_ACCESSOR} from \"@angular/forms\";\r\nimport { ControlValueAccessorDirective } from '../control-value-accessor.directive';\r\nimport { TermsConditionsComponent } from '../../terms-conditions/terms-conditions.component';\r\nimport { MatDialog } from '@angular/material/dialog';\r\nimport { Shareds } from '../shared-imports';\r\nimport { takeUntilDestroyed } from '@angular/core/rxjs-interop';\r\n\r\n@Component({\r\n selector: 'app-checkbox',\r\n templateUrl: './checkbox.component.html',\r\n styleUrls: ['./checkbox.component.scss'],\r\n schemas: [CUSTOM_ELEMENTS_SCHEMA],\r\n imports: [\r\n MatCheckbox,\r\n FormsModule,\r\n ...Shareds\r\n ],\r\n standalone: true,\r\n providers: [\r\n {\r\n provide: NG_VALUE_ACCESSOR,\r\n useExisting: forwardRef(() => CheckBoxComponent),\r\n multi: true,\r\n },\r\n ]\r\n\r\n})\r\nexport class CheckBoxComponent<Type> extends ControlValueAccessorDirective<Type> implements OnInit {\r\n @Input() containTerms: boolean;\r\n @Input() termsLabel: string;\r\n @Input() linkText: string;\r\n @Input() hrefLink: string;\r\n @Input() link: string;\r\n @Input() termsBody: any;\r\n @Output() downloadCheckBox = new EventEmitter();\r\n destroyRef = inject(DestroyRef);\r\n dialog = inject(MatDialog);\r\n override ngOnInit(): void {\r\n super.ngOnInit()\r\n if (this.control.value == 'true'){\r\n this.control.setValue(true)\r\n }\r\n\r\n\r\n this.actionStateService.resetAction$\r\n .pipe(takeUntilDestroyed(this.destroyRef))\r\n .subscribe(res => {\r\n if (!this.isReadOnly && this.control.enabled) {\r\n this.control.reset();\r\n }\r\n });\r\n \r\n }\r\n\r\n openUrl(){\r\n window.open(this.hrefLink)\r\n }\r\n\r\n valueChange(event: any) {\r\n const checked = event.checked;\r\n this.control.setValue(checked)\r\n }\r\n\r\n openTermsPopup(): void {\r\n const dialogRef = this.dialog.open(TermsConditionsComponent, {\r\n data: this.termsBody,\r\n width: '700px',\r\n panelClass: ['main-popup'],\r\n });\r\n\r\n dialogRef.afterClosed().subscribe(() => {\r\n });\r\n }\r\n}\r\n","<mat-checkbox\r\n [ngClass]=\"{'mx-4': isReadOnly}\"\r\n class=\"mb-3\"\r\n [style.pointerEvents]=\"isReadOnly ? 'none' : 'auto'\"\r\n id=\"{{ name }}{{ randomID }}\"\r\n [name]=\"name\"\r\n (change)=\"valueChange($event)\"\r\n [checked]=\"control.value ? control.value : false\"\r\n [formControl]=\"control\">\r\n \r\n <div class=\"d-flex\">\r\n @if(label){\r\n <app-form-label [label]=\"label\" [optional]=\"!control.hasValidator(Validators['required'])\" [tooltip]=\"tooltip\"></app-form-label>\r\n }\r\n \r\n @if(containTerms) {\r\n <span\r\n class=\"fs-12 fw-bold fc-coral cursor-pointer mx-1\"\r\n (click)=\"openTermsPopup(); false\">\r\n {{ termsLabel ? termsLabel : 'termsAndConditions' | translate }}\r\n </span>\r\n }\r\n </div>\r\n \r\n @if(link) {\r\n <ng-container>\r\n <span> | </span>\r\n <a \r\n class=\"fs-12 fw-bold fc-coral cursor-pointer mx-1 d-inline-flex align-items-center gap-1\" \r\n href=\"{{ hrefLink }}\" \r\n target=\"_blank\">\r\n <ds-icon icon=\"external-link\"></ds-icon>\r\n <span class=\"underline\">{{ linkText }}</span>\r\n </a>\r\n </ng-container>\r\n }\r\n</mat-checkbox>\r\n<app-validation-errors [errors]=\"control.errors\"></app-validation-errors>","import {NG_VALUE_ACCESSOR} from '@angular/forms';\r\nimport { Component, Input, Output, EventEmitter, SimpleChanges, CUSTOM_ELEMENTS_SCHEMA, forwardRef, OnInit, DestroyRef, inject } from '@angular/core';\r\nimport {NgClass} from \"@angular/common\";\r\nimport {MatAutocomplete, MatAutocompleteTrigger, MatOption} from \"@angular/material/autocomplete\";\r\nimport { ControlValueAccessorDirective } from '../control-value-accessor.directive';\r\nimport { MatInputModule } from '@angular/material/input';\r\nimport { Shareds } from '../shared-imports';\r\nimport { takeUntilDestroyed } from '@angular/core/rxjs-interop';\r\n\r\n\r\n@Component({\r\n selector: 'app-custom-searchable',\r\n templateUrl: './custom-searchable.component.html',\r\n styleUrls: ['./custom-searchable.component.scss'],\r\n schemas: [CUSTOM_ELEMENTS_SCHEMA],\r\n imports: [\r\n NgClass,\r\n MatAutocomplete,\r\n MatOption,\r\n MatAutocompleteTrigger,\r\n MatInputModule,\r\n ...Shareds\r\n],\r\n standalone: true,\r\n providers: [\r\n {\r\n provide: NG_VALUE_ACCESSOR,\r\n useExisting: forwardRef(() => CustomSearchableComponent),\r\n multi: true,\r\n },\r\n ]\r\n})\r\n\r\n\r\n\r\nexport class CustomSearchableComponent <Type> extends ControlValueAccessorDirective<Type> implements OnInit {\r\n @Input() options!: any;\r\n @Output() selectedValue = new EventEmitter();\r\n @Output() isLengthGreaterThan4 = new EventEmitter();\r\n @Input() disabled = false;\r\n @Input() displayedLabel: string= 'description';\r\n @Input() key: string = 'description';\r\n @Input() floatLabel: any = 'auto';\r\n @Input() className = 'bordered-input';\r\n destroyRef = inject(DestroyRef);\r\n override ngOnInit(): void {\r\n super.ngOnInit()\r\n this.actionStateService.resetAction$\r\n .pipe(takeUntilDestroyed(this.destroyRef))\r\n .subscribe(res => {\r\n if (!this.isReadOnly && this.control.enabled) {\r\n this.control.reset();\r\n }\r\n });\r\n\r\n }\r\n\r\n noData = false;\r\n filteredOptions!: any;\r\n\r\n clearInput() {\r\n this.control.reset()\r\n this.searchControl.reset()\r\n if (!this.isReadOnly) {\r\n this.setFilteredOptions()\r\n }\r\n }\r\n\r\n onFocusOut(){\r\n this.control.markAsTouched()\r\n }\r\n\r\n onKeyDown(e: KeyboardEvent, input: HTMLInputElement){\r\n setTimeout(() => {\r\n //reset in case no value and delete or backspace pressed\r\n if( (e.keyCode == 8 || e.keyCode == 46) && !this.control.value){\r\n if(this.control){\r\n this.control.reset()\r\n this.control.markAsTouched()\r\n }\r\n input.focus();\r\n }\r\n })\r\n }\r\n\r\n ngOnChanges(changes: SimpleChanges) {\r\n this.setFilteredOptions()\r\n }\r\n onValueChange(data) {\r\n this.setFilteredOptions(data)\r\n }\r\n\r\n setFilteredOptions(data?) {\r\n if (this.options?.length > 0) {\r\n this.noData = false\r\n // this.loading = false\r\n this.filteredOptions = data?.target?.value ? this._filter(data.target.value) : this.options.slice(0, 30)\r\n this.filteredOptions\r\n } else {\r\n this.noData = true\r\n }\r\n }\r\n\r\n private _filter(value: any): any {\r\n const filterValue = typeof value === 'string' ? value?.toLowerCase() : value;\r\n return this.options?.filter((option: any) => Object.values(option).join('')?.toLowerCase().includes(filterValue)).slice(0, 30);\r\n }\r\n\r\n displayFn(option: any): string {\r\n return option ? option : '';\r\n }\r\n\r\n getAutoComplete(value: any) {\r\n this.control.setValue({key:value[this.key],value:value[this.displayedLabel]});\r\n this.searchControl.setValue(value[this.displayedLabel]);\r\n this.selectedValue.emit(value)\r\n }\r\n\r\n}\r\n","@if(isReadOnly && control?.value) {\r\n<ng-container>\r\n <app-info-item\r\n class=\"info-item w-100\"\r\n [label]=\"label\"\r\n [insideTable]=\"insideTable\"\r\n [hasLabel]=\"!!label\"\r\n [value]=\"control?.value.value\"\r\n ></app-info-item>\r\n</ng-container>\r\n} @if(!isReadOnly) {\r\n<ng-container>\r\n @if(label) {\r\n <app-form-label\r\n [label]=\"label\"\r\n [optional]=\"!control.hasValidator(Validators['required'])\"\r\n [tooltip]=\"tooltip\"\r\n ></app-form-label>\r\n }\r\n\r\n <mat-form-field\r\n class=\"primary-form {{ className }}\"\r\n [ngClass]=\"{ 'input-disabled': disabled || loading,\r\n 'custom-validation': !control.hasValidator(Validators['required'])\r\n }\"\r\n [floatLabel]=\"floatLabel\"\r\n >\r\n <span class=\"sfi sfi-search fc-coral fs-18\" matPrefix></span>\r\n <label class=\"mat-form-content\">\r\n <input\r\n #autocompleteInput\r\n type=\"text\"\r\n (keydown)=\"onKeyDown($event, autocompleteInput)\"\r\n [attr.disabled]=\"disabled\"\r\n [placeholder]=\"label\"\r\n aria-label=\"Number\"\r\n matInput\r\n (input)=\"onValueChange($event)\"\r\n [formControl]=\"searchControl\"\r\n [name]=\"name\"\r\n [matAutocomplete]=\"auto\"\r\n [value]=\"value?.key\"\r\n (focusout)=\"onFocusOut()\"\r\n />\r\n </label>\r\n\r\n @if(loading) {\r\n <span class=\"sfi sfi-spinner d-inline-block spin fc-coral\" matSuffix></span>\r\n } @if(!loading && searchControl?.value) {\r\n <span\r\n class=\"sfi sfi-close d-inline-block fc-coral cursor-pointer fs-12\"\r\n (click)=\"clearInput()\"\r\n matSuffix\r\n ></span>\r\n }\r\n\r\n <mat-autocomplete\r\n autoActiveFirstOption\r\n #auto=\"matAutocomplete\"\r\n [displayWith]=\"displayFn\"\r\n (optionSelected)=\"getAutoComplete($event.option.value)\">\r\n \r\n \r\n \r\n\r\n @if(!noData) {\r\n <ng-container>\r\n @for(option of filteredOptions; track option) {\r\n <mat-option [value]=\"option\">\r\n <div class=\"d-flex align-items-center\">\r\n @if(option['avatar_url']) {\r\n <figure class=\"img-card small circled-img p-0 m-0\">\r\n <img [src]=\"option['avatar_url']\" alt=\"\" />\r\n </figure>\r\n } @if(option['avatar_url']) {\r\n <span class=\"mx-2\"></span>\r\n }\r\n\r\n {{ option[displayedLabel] }}\r\n </div>\r\n </mat-option>\r\n }\r\n </ng-container>\r\n } @if(noData) {\r\n <ng-container>\r\n <mat-option [disabled]=\"true\" class=\"text-center\">No Data</mat-option>\r\n </ng-container>\r\n }\r\n </mat-autocomplete>\r\n\r\n <!-- <mat-error class=\"mb-2\" *ngIf=\"(!control?.valid)\">{{ 'validSelectError' | translate }}{{ label }}</mat-error> -->\r\n\r\n @if(showHint) {\r\n <mat-hint>\r\n <span\r\n class=\"sfi sfi-check-circle font-10 fc-dark-gray\"\r\n [ngClass]=\"{ 'fc-oasis-light-imp': value }\"\r\n ></span>\r\n <span class=\"mx-1\"></span>\r\n <span class=\"fs-12 fc-onyx\">{{ hint }}</span>\r\n </mat-hint>\r\n }\r\n </mat-form-field>\r\n\r\n <app-validation-errors [errors]=\"control.errors\"></app-validation-errors>\r\n</ng-container>\r\n}\r\n","import {\r\n FormControl,\r\n NG_VALUE_ACCESSOR,\r\n Validators,\r\n} from '@angular/forms';\r\nimport {\r\n AfterViewInit,\r\n Component,\r\n CUSTOM_ELEMENTS_SCHEMA,\r\n DestroyRef,\r\n EventEmitter,\r\n forwardRef,\r\n inject,\r\n Inject,\r\n Input,\r\n Output,\r\n SimpleChanges,\r\n ViewChild,\r\n} from '@angular/core';\r\nimport { CustomDateFormat } from './date-format';\r\nimport { ControlValueAccessorDirective } from '../control-value-accessor.directive';\r\nimport { format } from 'date-fns';\r\nimport { MatDatePickerImports, MatFormImports, Shareds } from '../shared-imports';\r\nimport { MAT_DATE_FORMATS } from '@angular/material/core';\r\nimport { MatDatepicker } from '@angular/material/datepicker';\r\nimport { takeUntilDestroyed } from '@angular/core/rxjs-interop';\r\n\r\nconst YEAR_ONLY_FORMAT = {\r\n parse: {\r\n dateInput: 'YYYY',\r\n },\r\n display: {\r\n dateInput: 'YYYY',\r\n monthYearLabel: 'YYYY',\r\n dateA11yLabel: 'LL',\r\n monthYearA11yLabel: 'YYYY',\r\n },\r\n};\r\n\r\n@Component({\r\n selector: 'app-datepicker',\r\n templateUrl: './date-picker.component.html',\r\n styleUrls: ['./date-picker.component.scss'],\r\n standalone: true,\r\n schemas: [CUSTOM_ELEMENTS_SCHEMA],\r\n providers: [\r\n {\r\n provide: NG_VALUE_ACCESSOR,\r\n useExisting: forwardRef(() => DatePickerComponent),\r\n multi: true,\r\n },\r\n {\r\n provide: MAT_DATE_FORMATS,\r\n useClass: CustomDateFormat,\r\n },\r\n ],\r\n\r\n imports: [\r\n MatDatepicker,\r\n ...MatDatePickerImports,\r\n ...MatFormImports,\r\n ...Shareds\r\n ],\r\n})\r\nexport class DatePickerComponent<Type>\r\n extends ControlValueAccessorDirective<Type>\r\n implements AfterViewInit\r\n{\r\n date = new FormControl();\r\n @Input() className!: string;\r\n @Input() calendarType!: string;\r\n @Input() yearOnly: boolean;\r\n @Output() dateValue: EventEmitter<any> = new EventEmitter();\r\n showIslamic = false;\r\n @Input() error!: string;\r\n @Inject(MAT_DATE_FORMATS) public dateFormat: CustomDateFormat;\r\n destroyRef = inject(DestroyRef);\r\n\r\n @Input() set format(_format: string) {\r\n if (_format) {\r\n this.dateFormat.updateDateFormat(\r\n { dateInput: _format },\r\n { dateInput: _format }\r\n );\r\n }\r\n }\r\n\r\n @ViewChild(MatDatepicker) datepicker: MatDatepicker<any>;\r\n floatLabel: any = 'auto';\r\n override ngOnInit(): void {\r\n super.ngOnInit()\r\n this.actionStateService.resetAction$\r\n .pipe(takeUntilDestroyed(this.destroyRef))\r\n .subscribe(res => {\r\n if (!this.isReadOnly && this.control.enabled) {\r\n this.control.reset();\r\n }\r\n });\r\n\r\n }\r\n\r\n ngAfterViewInit(): void {\r\n if (!this.isReadOnly && this.yearOnly) this.activateYearOnlyMode();\r\n }\r\n\r\n ngOnChanges(changes: SimpleChanges) {\r\n this.setDateFormControl();\r\n }\r\n\r\n setDateFormControl() {\r\n const today = new Date();\r\n const currentYear = today.getFullYear();\r\n const currentMonth = today.getMonth();\r\n const currentDay = today.getDate();\r\n if (this.minDate) {\r\n if (this.minDate == 'today') {\r\n this.minDateValue = new Date(currentYear, currentMonth, currentDay);\r\n }\r\n }\r\n\r\n if (this.maxDate) {\r\n if (this.maxDate == 'today') {\r\n this.maxDateValue = new Date(currentYear, currentMonth, currentDay);\r\n } else if (this.maxDate == 'oneYear') {\r\n this.maxDateValue = new Date(\r\n currentYear + 1,\r\n currentMonth,\r\n currentDay - 1\r\n );\r\n }\r\n }\r\n if (this.customMaxDate) {\r\n const date = new Date(this.customMaxDate);\r\n this.maxDateValue = new Date(\r\n date.getFullYear(),\r\n date.getMonth(),\r\n date.getDate()\r\n );\r\n }\r\n if (this.customMinDate) {\r\n const date = new Date(this.customMinDate);\r\n this.minDateValue = new Date(\r\n date.getFullYear(),\r\n date.getMonth(),\r\n date.getDate()\r\n );\r\n }\r\n if (this.required) this.control.addValidators(Validators.required);\r\n }\r\n\r\n focusPicker(picker) {\r\n picker.open();\r\n }\r\n\r\n dateChange(event: any) {\r\n if (event?.value && !this.isDisabled) {\r\n let inputValue;\r\n inputValue = format(\r\n new Date(event.value),\r\n \"yyyy-MM-dd'T'HH:mm:ss.SSSxxx\"\r\n );\r\n this.control.setValue(inputValue);\r\n }\r\n }\r\n\r\n clearDateValue(event): void {\r\n this.control.reset();\r\n this.control.markAsTouched();\r\n }\r\n\r\n private activateYearOnlyMode(): void {\r\n this.dateFormat.updateDateFormat(\r\n YEAR_ONLY_FORMAT.parse,\r\n YEAR_ONLY_FORMAT.display\r\n );\r\n if (this.control) {\r\n this.control.setValue(format(new Date(this.control.value), 'yyyy'));\r\n }\r\n this.datepicker.startView = 'multi-year';\r\n this.datepicker.yearSelected.subscribe((e) => {\r\n this.control.setValue(format(new Date(e), 'yyyy'));\r\n this.datepicker.close();\r\n });\r\n this.datepicker.openedStream.subscribe(() => {\r\n document.body.classList.add('year-only');\r\n });\r\n this.datepicker.closedStream.subscribe(() => {\r\n document.body.classList.remove('year-only');\r\n });\r\n }\r\n}\r\n","@if(!isReadOnly) {\r\n <ng-container>\r\n @if(label) {\r\n <app-form-label [label]=\"label\" [optional]=\"!control.hasValidator(Validators['required'])\" [tooltip]=\"tooltip\"></app-form-label>\r\n }\r\n\r\n <div class=\"datePicker justify-content-between mb-1\">\r\n <mat-form-field\r\n [ngClass]=\"{ 'input-disabled': isDisabled }\"\r\n [floatLabel]=\"floatLabel\"\r\n >\r\n <label class=\"mat-form-content\">\r\n <input\r\n matInput\r\n (dateInput)=\"dateChange($event)\"\r\n [placeholder]=\"label ? ('select' | translate) + ' ' + label : ''\"\r\n (click)=\"focusPicker(dp)\"\r\n [min]=\"minDateValue\"\r\n [max]=\"maxDateValue\"\r\n readonly\r\n [matDatepicker]=\"dp\"\r\n [formControl]=\"control\"\r\n />\r\n </label>\r\n\r\n @if(control?.value) {\r\n <ds-icon\r\n matSuffix\r\n icon=\"close\"\r\n class=\"fc-coral fs-10 mx-2 cursor-pointer\"\r\n (click)=\"clearDateValue($event)\"\r\n ></ds-icon>\r\n }\r\n\r\n <mat-datepicker-toggle matSuffix [for]=\"dp\">\r\n <ds-icon\r\n icon=\"calendar-o\"\r\n class=\"fc-black fs-18\"\r\n matDatepickerToggleIcon\r\n ></ds-icon>\r\n </mat-datepicker-toggle>\r\n\r\n <mat-datepicker #dp></mat-datepicker>\r\n <!-- <mat-error *ngIf=\"errorMessage\">{{errorMessage}}</mat-error> -->\r\n </mat-form-field>\r\n </div>\r\n <app-validation-errors [errors]=\"control.errors\"></app-validation-errors>\r\n\r\n </ng-container>\r\n}\r\n\r\n@if(isReadOnly && control.value) {\r\n <ng-container>\r\n <app-info-item\r\n class=\"info-item w-100\"\r\n type=\"date\"\r\n [insideTable]=\"insideTable\"\r\n [dateType]=\"calendarType\"\r\n [label]=\"label\"\r\n [value]=\"control.value\"\r\n [hasLabel]=\"!!label\"\r\n >\r\n </app-info-item>\r\n </ng-container>\r\n}\r\n","/* eslint-disable @angular-eslint/component-selector */\r\n/* eslint-disable @typescript-eslint/no-empty-function */\r\nimport {\r\n Component,\r\n CUSTOM_ELEMENTS_SCHEMA,\r\n DestroyRef,\r\n forwardRef,\r\n inject,\r\n Inject,\r\n Input,\r\n SimpleChanges,\r\n ViewChild,\r\n} from '@angular/core';\r\nimport { ControlValueAccessorDirective } from '../control-value-accessor.directive';\r\nimport {\r\n NG_VALUE_ACCESSOR,\r\n Validators,\r\n} from '@angular/forms';\r\nimport { MatDatepicker } from '@angular/material/datepicker';\r\nimport { MAT_DATE_FORMATS } from '@angular/material/core';\r\nimport { CustomDateFormat } from '../date-picker/date-format';\r\nimport { format } from 'date-fns';\r\nimport { MatDatePickerImports, MatFormImports, Shareds } from '../shared-imports';\r\nimport { takeUntilDestroyed } from '@angular/core/rxjs-interop';\r\n\r\nconst YEAR_ONLY_FORMAT = {\r\n parse: {\r\n dateInput: 'YYYY',\r\n },\r\n display: {\r\n dateInput: 'YYYY',\r\n monthYearLabel: 'YYYY',\r\n dateA11yLabel: 'LL',\r\n monthYearA11yLabel: 'YYYY',\r\n },\r\n};\r\n\r\n@Component({\r\n selector: 'app-date-range-picker',\r\n templateUrl: './date-range-picker.component.html',\r\n styleUrls: ['./date-range-picker.component.scss'],\r\n schemas: [CUSTOM_ELEMENTS_SCHEMA],\r\n standalone: true,\r\n providers: [\r\n {\r\n provide: NG_VALUE_ACCESSOR,\r\n useExisting: forwardRef(() => DateRangePickerComponent),\r\n multi: true,\r\n },\r\n {\r\n provide: MAT_DATE_FORMATS,\r\n useClass: CustomDateFormat,\r\n },\r\n ],\r\n imports: [\r\n ...MatDatePickerImports,\r\n ...MatFormImports,\r\n ...Shareds\r\n ],\r\n})\r\nexport class DateRangePickerComponent<\r\n Type\r\n> extends ControlValueAccessorDirective<Type> {\r\n @Input() className = 'white-input';\r\n @Input() yearOnly: boolean;\r\n @Inject(MAT_DATE_FORMATS) public dateFormat: CustomDateFormat;\r\n @ViewChild(MatDatepicker) datepicker: MatDatepicker<any>;\r\n @Input() calendarType!: string;\r\n startInputValue: string;\r\n endInputValue: string;\r\n destroyRef = inject(DestroyRef);\r\n dateRange: any;\r\n override ngOnInit(): void {\r\n super.ngOnInit()\r\n this.actionStateService.resetAction$\r\n .pipe(takeUntilDestroyed(this.destroyRef))\r\n .subscribe(res => {\r\n if (!this.isReadOnly && this.control.enabled) {\r\n this.control.reset();\r\n }\r\n });\r\n\r\n }\r\n\r\n ngAfterViewInit(): void {\r\n if (!this.isReadOnly && this.yearOnly) this.activateYearOnlyMode();\r\n }\r\n\r\n ngOnChanges(changes: SimpleChanges) {\r\n this.setDateFormControl();\r\n }\r\n\r\n setDateFormControl() {\r\n const today = new Date();\r\n const currentYear = today.getFullYear();\r\n const currentMonth = today.getMonth();\r\n const currentDay = today.getDate();\r\n if (this.minDate) {\r\n if (this.minDate == 'today') {\r\n this.minDateValue = new Date(currentYear, currentMonth, currentDay);\r\n }\r\n }\r\n\r\n if (this.maxDate) {\r\n if (this.maxDate == 'today') {\r\n this.maxDateValue = new Date(currentYear, currentMonth, currentDay);\r\n }\r\n if (this.maxDate == 'oneYear') {\r\n this.maxDateValue = new Date(\r\n currentYear + 1,\r\n currentMonth,\r\n currentDay - 1\r\n );\r\n }\r\n }\r\n if (this.customMaxDate) {\r\n const date = new Date(this.customMaxDate);\r\n this.maxDateValue = new Date(\r\n date.getFullYear(),\r\n date.getMonth(),\r\n date.getDate()\r\n );\r\n }\r\n if (this.customMinDate) {\r\n const date = new Date(this.customMinDate);\r\n this.minDateValue = new Date(\r\n date.getFullYear(),\r\n date.getMonth(),\r\n date.getDate()\r\n );\r\n }\r\n\r\n if (this.required) this.control.addValidators(Validators.required);\r\n }\r\n\r\n focusPicker(picker) {\r\n picker.open();\r\n this.control.markAsTouched();\r\n }\r\n\r\n startDateChange(event: any) {\r\n if (event?.value && !this.isDisabled) {\r\n if (this.startDateControl.value) {\r\n this.startDateControl.setValue(\r\n format(new Date(event.value), \"yyyy-MM-dd'T'HH:mm:ss.SSSxxx\")\r\n );\r\n }\r\n }\r\n }\r\n\r\n endDateChange(event: any) {\r\n if (event?.value && !this.isDisabled) {\r\n if (this.startDateControl.value && this.endDateControl.value) {\r\n this.endDateControl.setValue(\r\n format(new Date(event.value), \"yyyy-MM-dd'T'HH:mm:ss.SSSxxx\")\r\n );\r\n this.setDateRangeControlValue();\r\n }\r\n }\r\n }\r\n\r\n setDateRangeControlValue() {\r\n this.dateRange = {\r\n startDate: this.startDateControl.value,\r\n endDate: this.endDateControl.value,\r\n };\r\n this.control.setValue(this.dateRange);\r\n }\r\n\r\n clearDateValue(event): void {\r\n this.dateRange = null;\r\n this.startInputValue = null;\r\n this.endInputValue = null;\r\n this.control.reset();\r\n this.endDateControl.reset();\r\n this.startDateControl.reset();\r\n this.control.markAsTouched();\r\n this.endDateControl.markAsTouched();\r\n this.startDateControl.markAsTouched();\r\n }\r\n\r\n private activateYearOnlyMode(): void {\r\n this.dateFormat.updateDateFormat(\r\n YEAR_ONLY_FORMAT.parse,\r\n YEAR_ONLY_FORMAT.display\r\n );\r\n if (this.control) {\r\n this.control.setValue(format(new Date(this.control.value), 'yyyy'));\r\n }\r\n this.datepicker.startView = 'multi-year';\r\n this.datepicker.yearSelected.subscribe((e) => {\r\n this.control.setValue(format(new Date(e), 'yyyy'));\r\n this.datepicker.close();\r\n });\r\n this.datepicker.openedStream.subscribe(() => {\r\n document.body.classList.add('year-only');\r\n });\r\n this.datepicker.closedStream.subscribe(() => {\r\n document.body.classList.remove('year-only');\r\n });\r\n }\r\n}\r\n","@if(!isReadOnly) {\r\n @if(label) {\r\n <app-form-label [label]=\"label\" [optional]=\"!control.hasValidator(Validators['required'])\" [tooltip]=\"tooltip\"></app-form-label>\r\n }\r\n\r\n<div class=\"datePicker\">\r\n <mat-form-field class=\"date-range primary-form {{ className }}\"\r\n [ngClass]=\"{\r\n 'custom-validation-error': !startDateControl.value && !endDateControl.value && startDateControl.touched\r\n }\">\r\n <label class=\"mat-form-content\">\r\n <mat-date-range-input\r\n [rangePicker]=\"picker\"\r\n [min]=\"minDateValue\"\r\n [max]=\"maxDateValue\"\r\n >\r\n <input\r\n matStartDate\r\n placeholder=\"{{ 'startDate' | translate }}\"\r\n [formControl]=\"startDateControl\"\r\n (dateInput)=\"startDateChange($event)\"\r\n (click)=\"focusPicker(picker)\"\r\n readonly\r\n />\r\n <input\r\n matEndDate\r\n placeholder=\"{{ 'endDate' | translate }}\"\r\n [formControl]=\"endDateControl\"\r\n (dateInput)=\"endDateChange($event)\"\r\n (click)=\"focusPicker(picker)\"\r\n readonly\r\n />\r\n </mat-date-range-input>\r\n </label>\r\n\r\n @if(control?.value) {\r\n <ds-icon\r\n matSuffix\r\n icon=\"close\"\r\n class=\"fc-coral fs-10 mx-2 cursor-pointer\"\r\n (click)=\"clearDateValue($event)\"\r\n ></ds-icon>\r\n }\r\n\r\n <mat-datepicker-toggle matSuffix [for]=\"picker\" [disableRipple]=\"true\">\r\n <i class=\"sfi sfi-calendar-o fc-black font-18\" matDatepickerToggleIcon></i>\r\n </mat-datepicker-toggle>\r\n\r\n <mat-date-range-picker #picker></mat-date-range-picker>\r\n </mat-form-field>\r\n</div>\r\n<app-validation-errors [errors]=\"control.errors\"></app-validation-errors>\r\n\r\n\r\n} @else if(isReadOnly && control.value) {\r\n<ng-container>\r\n <app-info-item\r\n class=\"info-item w-100\"\r\n type=\"date\"\r\n [insideTable]=\"insideTable\"\r\n [dateType]=\"calendarType\"\r\n [label]=\"label\"\r\n [value]=\"{\r\n startDate: control?.value?.startDate,\r\n endDate: control?.value?.endDate\r\n }\"\r\n [hasLabel]=\"!!label\"\r\n >\r\n </app-info-item>\r\n</ng-container>\r\n}\r\n","import {NG_VALUE_ACCESSOR} from '@angular/forms';\r\nimport { Component, CUSTOM_ELEMENTS_SCHEMA, Input, EventEmitter, forwardRef, inject, DestroyRef } from '@angular/core';\r\nimport {MatHint} from '@angular/material/form-field';\r\nimport { ControlValueAccessorDirective } from '../control-value-accessor.directive';\r\nimport { MatFormImports, Shareds, TextLanguageDirectives } from '../shared-imports';\r\nimport { takeUntilDestroyed } from '@angular/core/rxjs-interop';\r\n\r\n@Component({\r\n selector: 'app-input',\r\n templateUrl: './input.component.html',\r\n styleUrls: ['./input.component.scss'],\r\n schemas: [CUSTOM_ELEMENTS_SCHEMA],\r\n imports: [\r\n MatHint,\r\n ...TextLanguageDirectives,\r\n ...Shareds,\r\n ...MatFormImports\r\n ],\r\n standalone: true,\r\n providers: [\r\n {\r\n provide: NG_VALUE_ACCESSOR,\r\n useExisting: forwardRef(() => InputComponent),\r\n multi: true,\r\n },\r\n ]\r\n\r\n})\r\nexport class InputComponent<Type> extends ControlValueAccessorDirective<Type> {\r\n @Input() floatLabel: any = 'auto';\r\n @Input() className = 'bordered-input';\r\n @Input() iconPrefixName!: string;\r\n @Input() iconSuffixName!: string;\r\n @Input() emitedChangedValue1 = new EventEmitter();\r\n @Input() customErrorMessages;\r\n destroyRef = inject(DestroyRef);\r\n \r\n\r\n override ngOnInit(): void {\r\n super.ngOnInit()\r\n this.actionStateService.resetAction$\r\n .pipe(takeUntilDestroyed(this.destroyRef))\r\n .subscribe(res => {\r\n if (!this.isReadOnly && this.control.enabled) {\r\n this.control.reset();\r\n }\r\n });\r\n }\r\n\r\n}\r\n","@if(!isReadOnly){\r\n@if(label){\r\n<app-form-label [label]=\"label\" [optional]=\"!control.hasValidator(Validators['required'])\" [tooltip]=\"tooltip\"></app-form-label>\r\n}\r\n<mat-form-field\r\n class=\"primary-form {{ className }}\"\r\n [ngClass]=\"{ 'input-disabled': control.disabled }\"\r\n [floatLabel]=\"floatLabel\"\r\n>\r\n @if(iconPrefixName){<span class=\"sfi {{ iconPrefixName }}\"></span>}\r\n <label class=\"mat-form-content\">\r\n <!-- add input for ar && en custom directive with add type = arOnly || type = enOnly-->\r\n @if(type === 'arOnly'){\r\n <input\r\n arOnly\r\n matInput\r\n [value]=\"value\"\r\n oninput=\"validity.valid || (value='');\"\r\n [formControl]=\"control\"\r\n [required]=\"required\"\r\n [placeholder]=\"placeholder\"\r\n />\r\n } @else if(type === 'enOnly'){\r\n <input\r\n enOnly\r\n matInput\r\n [value]=\"value\"\r\n oninput=\"validity.valid || (value='');\"\r\n [formControl]=\"control\"\r\n [required]=\"required\"\r\n [placeholder]=\"placeholder\"\r\n />\r\n }\r\n @else{\r\n <input\r\n matInput\r\n [value]=\"value\"\r\n oninput=\"validity.valid || (value='');\"\r\n [formControl]=\"control\"\r\n [type]=\"type\"\r\n [placeholder]=\"placeholder\"\r\n />\r\n }\r\n </label>\r\n \r\n @if(iconSuffixName){<span matSuffix class=\"sfi {{ iconSuffixName }}\"></span>}\r\n @if(hint){\r\n <mat-hint class=\"d-flex align-items-center gap-1 mt-1\">\r\n <span\r\n class=\"sfi sfi-info fs-17 fc-dark-gray\"\r\n [ngClass]=\"{ 'fc-oasis-light-imp': value }\"\r\n ></span>\r\n <span class=\"fs-12 fc-black line-height-1\">{{ hint }}</span>\r\n </mat-hint>\r\n }\r\n</mat-form-field>\r\n<app-validation-errors [errors]=\"control.errors\" [customErrorMessages]=\"customErrorMessages\"></app-validation-errors>\r\n\r\n} @if(isReadOnly && control.value && (showIfEmpty || control)){\r\n<ng-container class=\"info-section\">\r\n <app-info-item\r\n class=\"info-item w-100\"\r\n [label]=\"label\"\r\n [insideTable]=\"insideTable\"\r\n [hasLabel]=\"!!label\"\r\n [type]=\"type\"\r\n [value]=\"control.value\"\r\n ></app-info-item>\r\n</ng-container>\r\n}","/* eslint-disable @typescript-eslint/no-unused-vars */\r\n/* eslint-disable @angular-eslint/directive-selector */\r\n\r\nimport {Directive, ElementRef, HostListener, Input} from \"@angular/core\";\r\n\r\n@Directive({\r\n selector: \"[numberOnly]\",\r\n standalone: true\r\n})\r\nexport class NumberDirective {\r\n @Input() decimals = 0;\r\n\r\n constructor(private el: ElementRef) { }\r\n\r\nprivate check(value: string) {\r\n if (this.decimals <= 0) {\r\n // Updated RegExp to allow for decimal\r\n return String(value).match(new RegExp(/^\\d*\\.?\\d*$/));\r\n } else {\r\n const regExpString =\r\n \"^\\\\s*((\\\\d+(\\\\.\\\\d{0,\" +\r\n this.decimals +\r\n \"})?)|((\\\\d*(\\\\.\\\\d{1,\" +\r\n this.decimals +\r\n \"}))))\\\\s*$\";\r\n return String(value).match(new RegExp(regExpString));\r\n }\r\n}\r\n\r\n @HostListener('keypress', ['$event'])\r\n onKeyPress(event: KeyboardEvent) {\r\n const char = event.key;\r\n const currentValue: string = this.el.nativeElement.value;\r\n const nextValue: string = currentValue + char;\r\n if (nextValue !== '' && !this.check(nextValue)) {\r\n event.preventDefault();\r\n }\r\n }\r\n\r\n private run(oldValue: any) {\r\n setTimeout(() => {\r\n const currentValue: string = this.el.nativeElement.value;\r\n if (currentValue !== '' && !this.check(currentValue)) {\r\n this.el.nativeElement.value = oldValue;\r\n }\r\n });\r\n }\r\n\r\n\r\n @HostListener(\"keydown\", [\"$event\"])\r\n onKeyDown() {\r\n this.run(this.el.nativeElement.value);\r\n }\r\n\r\n @HostListener(\"paste\", [\"$event\"])\r\n onPaste() {\r\n this.run(this.el.nativeElement.value);\r\n }\r\n}\r\n","/* eslint-disable @angular-eslint/use-lifecycle-interface */\r\n/* eslint-disable @typescript-eslint/no-explicit-any */\r\n/* eslint-disable @angular-eslint/component-selector */\r\nimport {NG_VALUE_ACCESSOR} from '@angular/forms';\r\nimport { Component, CUSTOM_ELEMENTS_SCHEMA, DestroyRef, EventEmitter, forwardRef, inject, Input, Output } from '@angular/core';\r\nimport {NgClass} from \"@angular/common\";\r\nimport { ControlValueAccessorDirective } from '../control-value-accessor.directive';\r\nimport {NumberDirective} from \"../../../../directives/number.directive\";\r\nimport { MatFormImports, Shareds } from '../shared-imports';\r\nimport { takeUntilDestroyed } from '@angular/core/rxjs-interop';\r\n\r\n@Component({\r\n selector: 'app-input-number',\r\n templateUrl: './input-number.component.html',\r\n styleUrls: ['./input-number.component.scss'],\r\n schemas: [CUSTOM_ELEMENTS_SCHEMA],\r\n standalone: true,\r\n imports: [\r\n NumberDirective,\r\n ...Shareds,\r\n ...MatFormImports\r\n ],\r\n providers: [\r\n {\r\n provide: NG_VALUE_ACCESSOR,\r\n useExisting: forwardRef(() => InputNumberComponent),\r\n multi: true,\r\n },\r\n ],\r\n})\r\nexport class InputNumberComponent<Type> extends ControlValueAccessorDirective<Type> {\r\n @Input() floatLabel: any = 'auto';\r\n @Input() className = 'bordered-input';\r\n @Input() iconPrefixName!: string;\r\n @Input() iconSuffixName!: string;\r\n @Input() numberSuffixName!: string;\r\n @Input() allowedPattern = '';\r\n destroyRef = inject(DestroyRef);\r\n @Output() emitedChangedValue = new EventEmitter();\r\n override ngOnInit(): void {\r\n super.ngOnInit()\r\n this.actionStateService.resetAction$\r\n .pipe(takeUntilDestroyed(this.destroyRef))\r\n .subscribe(res => {\r\n if (!this.isReadOnly && this.control.enabled) {\r\n this.control.reset();\r\n }\r\n });\r\n\r\n }\r\n\r\n}\r\n","@if(!isReadOnly){\r\n @if(label){\r\n <app-form-label [label]=\"label\" [optional]=\"!control.hasValidator(Validators['required'])\" [tooltip]=\"tooltip\"></app-form-label>\r\n }\r\n <mat-form-field\r\n class=\"primary-form {{ className }}\"\r\n [ngClass]=\"{ 'input-disabled': control.disabled }\"\r\n [floatLabel]=\"floatLabel\"\r\n >\r\n @if(iconPrefixName){<span class=\"sfi {{ iconPrefixName }}\"></span>}\r\n @if(loading){<span\r\n class=\"sfi sfi-spinner d-inline-block spin fc-coral\"\r\n matSuffix\r\n ></span\r\n >}\r\n <label class=\"mat-form-content\">\r\n <!-- add input for ar && en custom directive with add type = arOnly || type = enOnly-->\r\n <input\r\n matInput\r\n [value]=\"value\"\r\n oninput=\"validity.valid || (value='');\"\r\n [formControl]=\"control\"\r\n [type]=\"type\"\r\n [placeholder]=\"placeholder\"\r\n numberOnly\r\n />\r\n </label>\r\n @if(iconSuffixName){<span matSuffix class=\"sfi {{ iconSuffixName }}\"></span>}\r\n @if(hint){\r\n <mat-hint class=\"d-flex align-items-center gap-1 mt-1\">\r\n <span\r\n class=\"sfi sfi-info fs-17 fc-dark-gray\"\r\n [ngClass]=\"{ 'fc-oasis-light-imp': value }\"\r\n ></span>\r\n <span class=\"fs-12 fc-black line-height-1\">{{ hint }}</span>\r\n </mat-hint>\r\n }\r\n </mat-form-field>\r\n <app-validation-errors [errors]=\"control.errors\"></app-validation-errors>\r\n } @if(isReadOnly && control.value && (showIfEmpty || control)){\r\n <ng-container class=\"info-section\">\r\n <app-info-item\r\n class=\"info-item w-100\"\r\n [label]=\"label\"\r\n [insideTable]=\"insideTable\"\r\n [hasLabel]=\"!!label\"\r\n [type]=\"type\"\r\n [value]=\"control.value\"\r\n ></app-info-item>\r\n </ng-container>\r\n }","import {NG_VALUE_ACCESSOR} from '@angular/forms';\r\nimport { Component, CUSTOM_ELEMENTS_SCHEMA, DestroyRef, forwardRef, inject, Input } from '@angular/core';\r\nimport {NgClass} from \"@angular/common\";\r\nimport { ControlValueAccessorDirective } from '../control-value-accessor.directive';\r\nimport { MatFormImports, Shareds } from '../shared-imports';\r\nimport { takeUntilDestroyed } from '@angular/core/rxjs-interop';\r\n\r\n@Component({\r\n selector: 'app-input-email',\r\n templateUrl: './input-email.component.html',\r\n styleUrls: ['./input-email.component.scss'],\r\n schemas: [CUSTOM_ELEMENTS_SCHEMA],\r\n standalone: true,\r\n imports: [\r\n ...Shareds,\r\n ...MatFormImports\r\n ],\r\n providers: [\r\n {\r\n provide: NG_VALUE_ACCESSOR,\r\n useExisting: forwardRef(() => InputEmailComponent),\r\n multi: true,\r\n },\r\n ]\r\n})\r\nexport class InputEmailComponent<Type> extends ControlValueAccessorDirective<Type> {\r\n @Input() floatLabel: any = 'auto';\r\n @Input() className = 'bordered-input';\r\n @Input() matPrefix!: boolean;\r\n @Input() iconPrefixName!: string;\r\n @Input() iconSuffixName!: string;\r\n @Input() numberSuffixName!: string;\r\n destroyRef = inject(DestroyRef);\r\n displayErrors(data){\r\n console.log(this.control.errors)\r\n }\r\n\r\n override ngOnInit(): void {\r\n super.ngOnInit()\r\n this.actionStateService.resetAction$\r\n .pipe(takeUntilDestroyed(this.destroyRef))\r\n .subscribe(res => {\r\n if (!this.isReadOnly && this.control.enabled) {\r\n this.control.reset();\r\n }\r\n });\r\n\r\n }\r\n}\r\n","@if(!isReadOnly){\r\n @if(label){\r\n <app-form-label [label]=\"label\" [optional]=\"!control.hasValidator(Validators['required'])\" [tooltip]=\"tooltip\"></app-form-label>\r\n }\r\n <mat-form-field\r\n class=\"primary-form {{ className }}\"\r\n [ngClass]=\"{ 'input-disabled': control.disabled }\"\r\n [floatLabel]=\"floatLabel\"\r\n >\r\n @if(iconPrefixName){<span class=\"sfi {{ iconPrefixName }}\"></span>}\r\n @if(loading){<span\r\n class=\"sfi sfi-spinner d-inline-block spin fc-coral\"\r\n matSuffix\r\n ></span\r\n >}\r\n <label class=\"mat-form-content\">\r\n <!-- add input for ar && en custom directive with add type = arOnly || type = enOnly-->\r\n <input\r\n matInput\r\n [value]=\"value\"\r\n oninput=\"validity.valid || (value='');\"\r\n [formControl]=\"control\"\r\n [type]=\"type\"\r\n [placeholder]=\"placeholder\"\r\n (change)=\"displayErrors($event)\"\r\n />\r\n </label>\r\n @if(iconSuffixName){<span matSuffix class=\"sfi {{ iconSuffixName }}\"></span>}\r\n @if(hint){\r\n <mat-hint class=\"d-flex align-items-center gap-1 mt-1\">\r\n <span\r\n class=\"sfi sfi-info fs-17 fc-dark-gray\"\r\n [ngClass]=\"{ 'fc-oasis-light-imp': value }\"\r\n ></span>\r\n <span class=\"fs-12 fc-black line-height-1\">{{ hint }}</span>\r\n </mat-hint>\r\n }\r\n </mat-form-field>\r\n <app-validation-errors [errors]=\"control.errors\"></app-validation-errors>\r\n } @if(isReadOnly && control.value && (showIfEmpty || control)){\r\n <ng-container class=\"info-section\">\r\n <app-info-item\r\n class=\"info-item w-100\"\r\n [label]=\"label\"\r\n [insideTable]=\"insideTable\"\r\n [hasLabel]=\"!!label\"\r\n [type]=\"type\"\r\n [value]=\"control.value\"\r\n ></app-info-item>\r\n </ng-container>\r\n }","/* eslint-disable @angular-eslint/use-lifecycle-interface */\r\n/* eslint-disable @typescript-eslint/no-explicit-any */\r\n/* eslint-disable @angular-eslint/component-selector */\r\n// import { Validators } from '@angular/forms';\r\nimport {\r\n Component,\r\n CUSTOM_ELEMENTS_SCHEMA,\r\n forwardRef,\r\n Input,\r\n SimpleChanges,\r\n} from '@angular/core';\r\nimport { MatFormField } from '@angular/material/form-field';\r\nimport { SatPopoverModule } from '@ncstate/sat-popover';\r\nimport { NgxMaskDirective } from 'ngx-mask';\r\nimport { NgClass, NgIf } from '@angular/common';\r\nimport { InfoItemComponent } from '../info-item/info-item.component';\r\nimport { NG_VALUE_ACCESSOR, ReactiveFormsModule } from '@angular/forms';\r\nimport { ControlValueAccessorDirective } from '../control-value-accessor.directive';\r\n\r\n@Component({\r\n selector: 'app-input-mask',\r\n templateUrl: './input-mask.component.html',\r\n styleUrls: ['./input-mask.component.scss'],\r\n schemas: [CUSTOM_ELEMENTS_SCHEMA],\r\n standalone: true,\r\n providers: [\r\n {\r\n provide: NG_VALUE_ACCESSOR,\r\n useExisting: forwardRef(() => InputMaskComponent),\r\n multi: true,\r\n },\r\n ],\r\n imports: [\r\n SatPopoverModule,\r\n MatFormField,\r\n NgxMaskDirective,\r\n InfoItemComponent,\r\n ReactiveFormsModule,\r\n NgClass,\r\n ],\r\n})\r\nexport class InputMaskComponent<\r\n Type\r\n> extends ControlValueAccessorDirective<Type> {\r\n @Input() floatLabel: any = 'auto';\r\n @Input() className = 'bordered-input';\r\n @Input() matPrefix!: boolean;\r\n @Input() iconPrefixName!: string;\r\n @Input() iconSuffixName!: string;\r\n @Input() numberSuffixName!: string;\r\n // ngOnInit(): void {\r\n // this.resetPropagator.subscribe(this, this.resetData);\r\n\r\n // code\tmeaning\r\n // 0\tdigits (like 0 to 9 numbers)\r\n // 9\tdigits (like 0 to 9 numbers), but optional\r\n // A\tletters (uppercase or lowercase) and digits\r\n // S\tonly letters (uppercase or lowercase)\r\n // U\tonly letters uppercase\r\n // L\tonly letters lowercase\r\n\r\n // }\r\n}\r\n","\r\n@if(!isReadOnly){\r\n <ng-container>\r\n <!-- <app-form-label [label]=\"label\" [optional]=\"!control.hasValidator(Validators['required'])\" [hideOption]=\"hideOption\" [showLabel]=\"showLabel\"></app-form-label> -->\r\n @if(label){\r\n <div class=\"d-flex justify-content-between mb-1\">\r\n <span class=\"form-label mb-0\">{{label}}</span>\r\n @if(!required){\r\n <span class=\"fs-11 fc-dark-gray\">{{i18n.translate('Optional')}}\r\n </span>\r\n }\r\n </div>\r\n }\r\n \r\n <mat-form-field class=\"primary-form {{className}}\" [ngClass]=\"{'input-disabled' : isDisabled }\"\r\n [floatLabel]=\"floatLabel\">\r\n \r\n @if(iconPrefixName){\r\n <span matPrefix class=\"sfi {{iconPrefixName}}\"></span>\r\n }\r\n <label class=\"mat-form-content\">\r\n <input matInput [placeholder]=\"placeholder\" [value]=\"value\" [attr.disabled]=\"isDisabled\" [mask]=\"mask\"\r\n [showMaskTyped]=\"false\" oninput=\"validity.valid || (value='');\" [formControl]=\"control\"\r\n [required]=\"required\" [placeholder]=\"placeholder\">\r\n </label>\r\n \r\n @if(matSuffix){\r\n <span matSuffix class=\"sfi {{iconSuffixName}}\"></span>\r\n }\r\n @if(type === 'number'){\r\n <div matSuffix class=\"d-flex align-items-center gap-2\">\r\n @if(numberSuffixName){\r\n <span class=\"fs-14 fw-medium\">{{numberSuffixName}}</span>\r\n }\r\n <!-- <span class=\"sfi sfi-minus p-2 bc-light-gray fc-black\"></span>\r\n <span class=\"sfi sfi-plus p-2 bc-light-gray fc-black\"></span> -->\r\n </div>\r\n }\r\n <!-- @if((!control?.valid)){\r\n <mat-error class=\"mb-2\">\r\n {{i18n.translate('validFieldError')}}{{label}}\r\n </mat-error>\r\n } -->\r\n \r\n \r\n <!-- <mat-error *ngIf=\"(type ==='email' && !control?.valid)\">\r\n {{i18n.translate('validEmailError')}}\r\n </mat-error> -->\r\n @if(showHint){\r\n <mat-hint>\r\n <span class=\"sfi sfi-check-circle font-10 fc-dark-gray\" [ngClass]=\"{'fc-oasis-light-imp':value}\"></span>\r\n <span class=\"mx-1\"></span>\r\n <span class=\"fs-12 fc-onyx\">{{hint}}</span>\r\n </mat-hint>\r\n }\r\n </mat-form-field>\r\n <!-- <span class=\"fc-coral\" style=\"color:#f44336\" *ngIf=\"( showErrorMessage && control.value)\">\r\n {{errorMessage}}\r\n </span> -->\r\n \r\n </ng-container>\r\n}\r\n\r\n@if(isReadOnly && control.value){\r\n <ng-container class=\"info-section\">\r\n <app-info-item class=\"info-item w-100\" [label]=\"label\" [insideTable]=\"insideTable\" [hasLabel]=\"label ? true: false\"\r\n [value]=\"control\"></app-info-item>\r\n </ng-container>\r\n \r\n}\r\n\r\n\r\n<!-- section tooltip -->\r\n<sat-popover #popover [hasBackdrop]=\"true\" verticalAlign=\"below\">\r\n <div class=\"deafult-tooltip\">\r\n {{tooltip}}\r\n </div>\r\n</sat-popover>\r\n","/* eslint-disable @typescript-eslint/no-explicit-any */\r\n/* eslint-disable @angular-eslint/directive-selector */\r\nimport {Directive, HostListener, ElementRef, OnInit, Input} from '@angular/core';\r\nimport {MycurrencyPipe} from \"../pipes\";\r\n@Directive({\r\n selector: '[appMycurrency]',\r\n standalone: true\r\n})\r\nexport class MycurrencyDirective implements OnInit{\r\n private el: any;\r\n @Input() decimals!: number;\r\n\r\n constructor(\r\n private elementRef:ElementRef,\r\n private formatcurrencypipe:MycurrencyPipe\r\n ) {\r\n this.el = this.elementRef.nativeElement;\r\n }\r\n ngOnInit(){\r\n this.el.value = this.formatcurrencypipe.transform(this.el.value);\r\n }\r\n @HostListener(\"focus\",[\"$event.target.value\",\"$event\"])\r\n onFocus(value,event) {\r\n this.el.value = this.formatcurrencypipe.parse(value); // opossite of transform\r\n if(event.which== 9)\r\n {\r\n return false;\r\n }\r\n return this.el.select();\r\n\r\n }\r\n\r\n @HostListener(\"blur\", [\"$event.target.value\"])\r\n onBlur(value) {\r\n this.el.value = this.formatcurrencypipe.transform(value);\r\n }\r\n @HostListener('keydown', ['$event']) onKeyDown(event) {\r\n const e = <KeyboardEvent> event;\r\n if(e.key == 'و' || e.key == 'ز'){\r\n e.preventDefault();\r\n }\r\n if ([46, 8, 9, 27, 13, 110, 190].indexOf(e.keyCode) !== -1 ||\r\n // Allow: Ctrl+A\r\n (e.keyCode === 65 && (e.ctrlKey || e.metaKey)) ||\r\n // Allow: Ctrl+C\r\n (e.keyCode === 67 && (e.ctrlKey || e.metaKey)) ||\r\n // Allow: Ctrl+V\r\n (e.keyCode === 86 && (e.ctrlKey || e.metaKey)) ||\r\n // Allow: Ctrl+X\r\n (e.keyCode === 88 && (e.ctrlKey || e.metaKey)) ||\r\n (e.keyCode === 188 ) ||\r\n // Allow: home, end, left, right\r\n (e.keyCode >= 35 && e.keyCode <= 39)) {\r\n // let it happen, don't do anything\r\n return;\r\n }\r\n // Ensure that it is a number and stop the keypress\r\n if ((e.shiftKey || (e.keyCode < 48 || e.keyCode > 57)) && (e.keyCode < 96 || e.keyCode > 105 )) {\r\n e.preventDefault();\r\n }\r\n }\r\n\r\n}\r\n","import {NG_VALUE_ACCESSOR} from '@angular/forms';\r\nimport { Component, CUSTOM_ELEMENTS_SCHEMA, DestroyRef, forwardRef, inject, Input } from '@angular/core';\r\nimport {MatHint} from '@angular/material/form-field';\r\nimport {NgClass,} from \"@angular/common\";\r\nimport { ControlValueAccessorDirective } from '../control-value-accessor.directive';\r\nimport {MycurrencyPipe} from \"../../../../pipes\";\r\nimport {MycurrencyDirective} from \"../../../../directives/currency.directive\";\r\nimport { MatFormImports, Shareds } from '../shared-imports';\r\nimport { takeUntilDestroyed } from '@angular/core/rxjs-interop';\r\n\r\n@Component({\r\n selector: 'app-input-currency',\r\n templateUrl: './input-currency.component.html',\r\n styleUrls: ['./input-currency.component.scss'],\r\n schemas: [CUSTOM_ELEMENTS_SCHEMA],\r\n standalone: true,\r\n imports: [\r\n NgClass,\r\n MatHint,\r\n MycurrencyDirective,\r\n ...Shareds,\r\n ...MatFormImports\r\n ],\r\n providers: [\r\n {\r\n provide: NG_VALUE_ACCESSOR,\r\n useExisting: forwardRef(() => InputCurrencyComponent),\r\n multi: true,\r\n\r\n },\r\n MycurrencyPipe\r\n ]\r\n})\r\nexport class InputCurrencyComponent<Type> extends ControlValueAccessorDirective<Type> {\r\n @Input() floatLabel: any = 'auto';\r\n @Input() className = 'bordered-input';\r\n @Input() iconPrefixName!: string;\r\n @Input() iconSuffixName!: string;\r\n @Input() numberSuffixName!: string;\r\n destroyRef = inject(DestroyRef);\r\n public mycurrencyPipe: MycurrencyPipe\r\n override ngOnInit(): void {\r\n super.ngOnInit()\r\n this.actionStateService.resetAction$\r\n .pipe(takeUntilDestroyed(this.destroyRef))\r\n .subscribe(res => {\r\n if (!this.isReadOnly && this.control.enabled) {\r\n this.control.reset();\r\n }\r\n });\r\n }\r\n\r\n \r\n\r\n}\r\n","@if(!isReadOnly){\r\n @if(label){\r\n <app-form-label [label]=\"label\" [optional]=\"!control.hasValidator(Validators['required'])\" [tooltip]=\"tooltip\"></app-form-label>\r\n }\r\n <mat-form-field\r\n class=\"primary-form {{ className }}\"\r\n [ngClass]=\"{ 'input-disabled': control.disabled }\"\r\n [floatLabel]=\"floatLabel\"\r\n >\r\n @if(iconPrefixName){<span class=\"sfi {{ iconPrefixName }}\"></span>}\r\n @if(loading){<span\r\n class=\"sfi sfi-spinner d-inline-block spin fc-coral\"\r\n matSuffix\r\n ></span\r\n >}\r\n <label class=\"mat-form-content\">\r\n <!-- add input for ar && en custom directive with add type = arOnly || type = enOnly-->\r\n <input\r\n matInput\r\n [value]=\"value\"\r\n oninput=\"validity.valid || (value='');\"\r\n [formControl]=\"control\"\r\n [type]=\"type\"\r\n [placeholder]=\"placeholder\"\r\n appMycurrency\r\n />\r\n </label>\r\n @if(iconSuffixName){<span matSuffix class=\"sfi {{ iconSuffixName }}\"></span>}\r\n @if(hint){\r\n <mat-hint class=\"d-flex align-items-center gap-1 mt-1\">\r\n <span\r\n class=\"sfi sfi-info fs-17 fc-dark-gray\"\r\n [ngClass]=\"{ 'fc-oasis-light-imp': value }\"\r\n ></span>\r\n <span class=\"fs-12 fc-black line-height-1\">{{ hint }}</span>\r\n </mat-hint>\r\n }\r\n </mat-form-field>\r\n <app-validation-errors [errors]=\"control.errors\"></app-validation-errors>\r\n } @if(isReadOnly && control.value && (showIfEmpty || control)){\r\n <ng-container class=\"info-section\">\r\n <app-info-item\r\n class=\"info-item w-100\"\r\n [label]=\"label\"\r\n [insideTable]=\"insideTable\"\r\n [hasLabel]=\"!!label\"\r\n [type]=\"type\"\r\n [value]=\"control.value\"\r\n ></app-info-item>\r\n </ng-container>\r\n }","// export * from './input-autocomplete.module';\r\nexport * from './input-autocomplete.model';","import { NgxIntlTelInputModule } from 'ngx-intl-tel-input-gg';\r\nimport { CountryISO, SearchCountryField } from 'ngx-intl-tel-input-gg';\r\nimport { FormsModule, NG_VALUE_ACCESSOR, ReactiveFormsModule} from '@angular/forms';\r\nimport { Component, Input, CUSTOM_ELEMENTS_SCHEMA, forwardRef, OnInit, inject, DestroyRef } from '@angular/core';\r\nimport {InfoItemComponent} from \"../info-item/info-item.component\";\r\nimport {CommonModule} from \"@angular/common\";\r\nimport { ControlValueAccessorDirective } from '../control-value-accessor.directive';\r\nimport { ValidationErrorsComponent } from '../validation-errors/validation-errors.component';\r\nimport { Shareds } from '../shared-imports';\r\nimport { takeUntilDestroyed } from '@angular/core/rxjs-interop';\r\n\r\n@Component({\r\n selector: 'app-input-telephone',\r\n templateUrl: './input-telephone.component.html',\r\n styleUrls: ['./input-telephone.component.scss'],\r\n schemas: [CUSTOM_ELEMENTS_SCHEMA],\r\n standalone: true,\r\n imports: [\r\n CommonModule,\r\n FormsModule,\r\n NgxIntlTelInputModule,\r\n ...Shareds\r\n ],\r\n providers: [\r\n {\r\n provide: NG_VALUE_ACCESSOR,\r\n useExisting: forwardRef(() => InputTelephoneComponent),\r\n multi: true,\r\n },\r\n ]\r\n})\r\nexport class InputTelephoneComponent<Type> extends ControlValueAccessorDirective<Type> implements OnInit {\r\n @Input() floatLabel: any = 'auto';\r\n @Input() className = 'bordered-input';\r\n controlValue:string = '';\r\n destroyRef = inject(DestroyRef);\r\n errorMessages = {\r\n required: this.i18n.translate('thisFieldIsRequired'),\r\n validatePhoneNumber: this.i18n.translate('pleaseEnterValidNumber')\r\n };\r\n\r\n\r\noverride ngOnInit(): void {\r\n super.ngOnInit();\r\n if(this.control.hasValidator(this.Validators.required)){\r\n this.telephoneControl.setValidators(this.Validators.required)\r\n } else {\r\n this.telephoneControl.setValidators(null)\r\n }\r\n this.telephoneControl.updateValueAndValidity\r\n\r\n this.actionStateService.resetAction$\r\n .pipe(takeUntilDestroyed(this.destroyRef))\r\n .subscribe(res => {\r\n if (!this.isReadOnly && this.control.enabled) {\r\n this.control.reset();\r\n }\r\n });\r\n\r\n \r\n}\r\n CountryISO = CountryISO;\r\n SearchCountryField = SearchCountryField;\r\n show:boolean = false;\r\n \r\n setControlValue(controlValue){\r\n console.log(this.telephoneControl.errors)\r\n if (this.telephoneControl.valid && controlValue){\r\n this.control.setValue(controlValue['internationalNumber'])\r\n this.telephoneControl.setValue(controlValue['internationalNumber'])\r\n } \r\n if(!controlValue){\r\n this.control.reset()\r\n }\r\n\r\n if ( this.telephoneControl.invalid && this.telephoneControl.touched){\r\n this.control.markAsTouched()\r\n }\r\n }\r\n}\r\n","@if(!isReadOnly){\r\n <ng-container>\r\n @if(label){\r\n <app-form-label [label]=\"label\" [optional]=\"!control.hasValidator(Validators['required'])\" [tooltip]=\"tooltip\"></app-form-label>\r\n }\r\n <!-- <mat-form-field style=\"height: 50px;\" class=\"primary-form input-telephone {{className}}\" floatLabel=\"always\"> -->\r\n <div class=\"primary-form input-telephone {{className}}\" floatLabel=\"always\">\r\n <label class=\"mat-form-content\">\r\n <!-- [placeholder]=\"label\" -->\r\n <!-- <input matInput [disabled]=\"disabled\" ng2TelInput numberOnly #phone\r\n [ng2TelInputOptions]=\"{initialCountry: 'sa', utilsScript: 'assets/js/utils.js'}\" (hasError)=\"hasError($event)\"\r\n (ng2TelOutput)=\"getNumber($event)\" (intlTelInputObject)=\"telInputObject($event)\"\r\n (countryChange)=\"onCountryChange($event)\" [(ngModel)]=\"field\" [name]=\"name\"\r\n oninput=\"this.value.replace(/[^0-9.]/g, ''); this.value = this.value.replace(/(\\..*)\\./g, '$1');\"\r\n [maxlength]=\"maxLength\" [minLength]=\"minLength\" />-->\r\n <!-- <input matInput [hidden]=\"true\"/> -->\r\n <ngx-intl-tel-input\r\n (input)=\"setControlValue(telephoneControl.value)\"\r\n [formControl]=\"telephoneControl\"\r\n [cssClass]=\"'custom'\"\r\n [preferredCountries]=\"[CountryISO.UnitedStates, CountryISO.UnitedKingdom]\"\r\n [enableAutoCountrySelect]=\"false\"\r\n [enablePlaceholder]=\"true\"\r\n [searchCountryFlag]=\"true\"\r\n [searchCountryField]=\"[SearchCountryField.Iso2, SearchCountryField.Name]\"\r\n [selectFirstCountry]=\"false\"\r\n [selectedCountryISO]=\"CountryISO.SaudiArabia\"\r\n [maxLength]=\"17\"\r\n [phoneValidation]=\"true\"\r\n [inputId]=\"\"\r\n name=\"phone\"\r\n ></ngx-intl-tel-input>\r\n </label>\r\n </div>\r\n <!-- </mat-form-field> -->\r\n <!-- <app-validation-errors [errors]=\"telephoneControl.errors\"></app-validation-errors> -->\r\n @if(telephoneControl.touched){\r\n @for(error of telephoneControl.errors | keyvalue; track error ) {\r\n <mat-error class=\"mb-2\">\r\n {{ errorMessages[error.key] }}\r\n </mat-error>\r\n }\r\n }\r\n \r\n </ng-container>\r\n}\r\n@if(isReadOnly && control.value){\r\n <ng-container>\r\n <app-info-item class=\"info-item w-100\" [type]=\"'telephone'\" [label]=\"label\"\r\n [value]=\"control.value\"></app-info-item>\r\n </ng-container>\r\n}\r\n\r\n\r\n","import {\r\n FormsModule,\r\n NG_VALUE_ACCESSOR,\r\n} from '@angular/forms';\r\nimport {\r\n Component,\r\n CUSTOM_ELEMENTS_SCHEMA,\r\n DestroyRef,\r\n EventEmitter,\r\n forwardRef,\r\n inject,\r\n Input,\r\n Output,\r\n} from '@angular/core';\r\nimport { NgClass } from '@angular/common';\r\nimport { MatAutocompleteModule } from '@angular/material/autocomplete';\r\nimport { ControlValueAccessorDirective } from '../control-value-accessor.directive';\r\nimport { MatFormField } from '@angular/material/form-field';\r\nimport { MatInput } from '@angular/material/input';\r\nimport { SatPopoverModule } from '@ncstate/sat-popover';\r\nimport { Shareds } from '../shared-imports';\r\nimport { takeUntilDestroyed } from '@angular/core/rxjs-interop';\r\n\r\n@Component({\r\n selector: 'app-search-employee',\r\n templateUrl: './search-employee.component.html',\r\n styleUrls: ['./search-employee.component.scss'],\r\n schemas: [CUSTOM_ELEMENTS_SCHEMA],\r\n standalone: true,\r\n imports: [\r\n MatFormField,\r\n MatInput,\r\n NgClass,\r\n MatAutocompleteModule,\r\n FormsModule,\r\n SatPopoverModule,\r\n ...Shareds,\r\n ],\r\n providers: [\r\n {\r\n provide: NG_VALUE_ACCESSOR,\r\n useExisting: forwardRef(() => SearchEmployeeComponent),\r\n multi: true,\r\n },\r\n ],\r\n})\r\nexport class SearchEmployeeComponent<\r\n Type\r\n> extends ControlValueAccessorDirective<Type> {\r\n @Input() valueName!: string;\r\n @Input() className = 'bordered-input';\r\n @Input() optional = false;\r\n @Input() data!: any[];\r\n @Input() floatLabel: any = 'auto';\r\n @Input() error!: string;\r\n selected = false;\r\n @Output() selectedEmp = new EventEmitter();\r\n @Output() onInputChange = new EventEmitter();\r\n @Input() showEdit = false;\r\n @Output() editDirectManger: EventEmitter<any> = new EventEmitter();\r\n @Output() deleteDirectManger: EventEmitter<any> = new EventEmitter();\r\n @Input() arrayList: any[] = [];\r\n @Input() isUniqueUsers = false;\r\n userAlreadyExist = false;\r\n @Output() emitedDeletedValue = new EventEmitter();\r\n destroyRef = inject(DestroyRef);\r\n override ngOnInit(): void {\r\n super.ngOnInit()\r\n this.actionStateService.resetAction$\r\n .pipe(takeUntilDestroyed(this.destroyRef))\r\n .subscribe(res => {\r\n if (!this.isReadOnly && this.control.enabled) {\r\n this.control.reset();\r\n }\r\n });\r\n\r\n }\r\n \r\n\r\n deleteRow(ind: number, rowData) {\r\n if (!this.isReadOnly) {\r\n this.arrayList = this.arrayList?.filter((item: any, index) => {\r\n return index != ind;\r\n });\r\n const obj = {\r\n rowData: rowData,\r\n arrayList: this.arrayList,\r\n };\r\n this.emitedDeletedValue.emit(obj);\r\n }\r\n if(!this.arrayList?.length && this.multiple){\r\n this.employeeSearchControl.markAsTouched();\r\n this.control.setValue([]);\r\n this.control.setValidators(this.Validators['required'])\r\n this.control.updateValueAndValidity()\r\n } \r\n }\r\n\r\n onLoadOptions(event: any) {\r\n const input = event.target.value;\r\n this.data = [];\r\n if (input.length >= 3) {\r\n this.selected = false;\r\n this.loading = true;\r\n this.coreService\r\n .searchEmployee(input)\r\n .pipe(takeUntilDestroyed(this.destroyRef))\r\n .subscribe({\r\n next: (form: any) => {\r\n this.loading = false;\r\n this.data = form.Users;\r\n },\r\n error: (err) => {},\r\n complete: () => {},\r\n });\r\n } else if (input.length == 0) {\r\n if (this.multiple) {\r\n } else {\r\n this.control.reset();\r\n this.control.markAsTouched();\r\n }\r\n }\r\n }\r\n\r\n includeData(option: any, filterValue: string) {\r\n if (\r\n option?.email.toLowerCase().includes(filterValue) ||\r\n option?.name.toLowerCase().includes(filterValue)\r\n ) {\r\n return option;\r\n } else {\r\n return false;\r\n }\r\n }\r\n\r\n getImage(id: string): string {\r\n return '/group/i-gate/wm-bpm/forms/-/proxy/portrait?email=' + id;\r\n }\r\n\r\n selectOption(object: any, ev: any) {\r\n this.userAlreadyExist = false;\r\n this.selected = true;\r\n this.data = [];\r\n if (this.multiple) {\r\n if (this.arrayList?.some((item) => item?.personEmail === object?.email)) {\r\n this.userAlreadyExist = true;\r\n return;\r\n }\r\n let obj = {\r\n personName: object.name,\r\n personEmail: object.email,\r\n // job: object.job.name,\r\n // jobCode: object.job.code,\r\n // manager: object.manager,\r\n // department: object.department,\r\n // generalDepartment: object.generalDepartment,\r\n // sector: object.sector,\r\n // section: object.section,\r\n // seniorSectorName: object.seniorSectorName,\r\n };\r\n this.arrayList?.push(obj);\r\n this.control.setValue(this.arrayList);\r\n \r\n } else {\r\n const controlValue = {\r\n personName: object.name,\r\n personEmail: object.email,\r\n };\r\n this.control.setValue(controlValue);\r\n this.employeeSearchControl.setValue(object.name);\r\n }\r\n }\r\n}\r\n\r\nexport interface searchEmp {\r\n personName?: string;\r\n personEmail?: string;\r\n contact?: string;\r\n employeeNumber?: string;\r\n}\r\n","@if (!isReadOnly) {\r\n<ng-container>\r\n @if(label) {\r\n <app-form-label\r\n [label]=\"label\"\r\n [optional]=\"!control.hasValidator(Validators['required'])\" \r\n [tooltip]=\"tooltip\"\r\n ></app-form-label>\r\n }\r\n <mat-form-field\r\n class=\"primary-form {{ className }}\"\r\n [floatLabel]=\"floatLabel\"\r\n [ngClass]=\"{\r\n 'custom-validation': !control.errors\r\n }\"\r\n >\r\n <mat-label>{{ label }}</mat-label>\r\n <ds-icon icon=\"search\" class=\"fc-coral fs-18\"></ds-icon>\r\n <label class=\"mat-form-content\">\r\n <input\r\n type=\"text\"\r\n aria-label=\"Number\"\r\n (input)=\"onLoadOptions($event)\"\r\n matInput\r\n [disabled]=\"isDisabled\"\r\n [matAutocomplete]=\"auto\"\r\n [formControl]=\"employeeSearchControl\"\r\n />\r\n </label>\r\n @if (loading) {\r\n <span class=\"sfi sfi-spinner d-inline-block spin fc-coral\" matSuffix></span>\r\n }\r\n <mat-autocomplete #auto=\"matAutocomplete\">\r\n @for (option of data; track option) {\r\n <mat-option\r\n [value]=\"option?.['personName']\"\r\n (onSelectionChange)=\"selectOption(option, $event)\"\r\n >\r\n <div class=\"d-flex align-items-center gap-3\">\r\n <div class=\"dropdown-img\">\r\n <ds-avatar\r\n [image]=\"getImage(option?.email)\"\r\n onerror=\"this.onerror=null;this.src='assets/images/user.svg';\"\r\n slot=\"prefix\"\r\n class=\"avatar\"\r\n size=\"small\"\r\n >\r\n </ds-avatar>\r\n </div>\r\n <div class=\"line-height-1\">\r\n <h6 class=\"fs-14 fw-medium fc-onyx mb-0 line-height-1\">\r\n {{ option?.name }}\r\n </h6>\r\n <span class=\"fs-13 fw-normal fc-dark-gray\">{{\r\n option?.description\r\n }}</span>\r\n </div>\r\n </div>\r\n </mat-option>\r\n \r\n }\r\n </mat-autocomplete>\r\n @if (showHint) {\r\n <mat-hint>\r\n <span\r\n class=\"sfi sfi-check-circle font-10 fc-dark-gray\"\r\n [ngClass]=\"{ 'fc-oasis-light-imp': value }\"\r\n ></span>\r\n <span class=\"mx-1\"></span>\r\n <span class=\"fs-12 fc-onyx\">{{ hint }}</span>\r\n </mat-hint>\r\n }\r\n </mat-form-field>\r\n \r\n \r\n <!-- <app-validation-errors [errors]=\"customErrorMessage || employeeSearchControl.errors\" [isEmployeeSearchControl]=\"multiple? true: false\"></app-validation-errors> -->\r\n @if(control.invalid && employeeSearchControl.touched){\r\n <mat-error class=\"mb-2\">\r\n this filed is required\r\n </mat-error>\r\n }\r\n \r\n\r\n \r\n @if (userAlreadyExist) {\r\n <mat-error class=\"mb-2\">{{ \"userAlreadyExist\" | translate }}</mat-error>\r\n } @if (arrayList?.length && !isReadOnly && multiple) {\r\n <div class=\"col-12 mt-2\">\r\n <div class=\"example-list n-results\">\r\n @for (emails of arrayList; track $index) {\r\n <div class=\"example-box n-col px-3\" [ngClass]=\"{ 'mt-0': $index === 0 }\">\r\n <div class=\"d-flex flex-grow-1 w-100\">\r\n <div class=\"user-info flex-grow-1\">\r\n <ds-avatar\r\n [image]=\"getImage(emails?.['personEmail'])\"\r\n onerror=\"this.onerror=null;this.src='assets/images/user.svg';\"\r\n slot=\"prefix\"\r\n class=\"avatar prof-img\"\r\n >\r\n </ds-avatar>\r\n @if (emails?.['personName']) {\r\n <label>\r\n {{ emails?.['personName'] }}\r\n <span class=\"title\">{{ emails?.['personEmail'] }}</span>\r\n </label>\r\n }\r\n </div>\r\n @if (!isReadOnly) {\r\n <ds-button\r\n class=\"ds-btn-action\"\r\n size=\"small\"\r\n (click)=\"deleteRow($index, emails)\"\r\n icon\r\n >\r\n <ds-icon icon=\"trash\" class=\"fc-coral fs-20\"></ds-icon>\r\n </ds-button>\r\n }\r\n </div>\r\n </div>\r\n }\r\n </div>\r\n </div>\r\n }\r\n</ng-container>\r\n} @if (isReadOnly && control.value) {\r\n<ng-container>\r\n <app-info-item\r\n class=\"info-item\"\r\n type=\"user-picker\"\r\n [hasLabel]=\"!!label\"\r\n [multiple]=\"multiple\"\r\n [ngClass]=\"{ 'user-picker': !isReadOnly }\"\r\n [actionType]=\"!isReadOnly ? 'delete' : 'edit'\"\r\n [label]=\"label\"\r\n [name]=\"control.value['personName']\"\r\n [value]=\"control.value['personEmail']\"\r\n [arrayList]=\"arrayList\"\r\n >\r\n </app-info-item>\r\n</ng-container>\r\n}\r\n\r\n<sat-popover #searchEmpPopover [hasBackdrop]=\"true\" verticalAlign=\"below\">\r\n <div class=\"default-popover p-3\">\r\n <ol class=\"px-3 m-0\">\r\n <li>{{ \"searchEmployeeTooltip_1\" | translate }}</li>\r\n <li>{{ \"searchEmployeeTooltip_2\" | translate }}</li>\r\n <li>{{ \"searchEmployeeTooltip_3\" | translate }}</li>\r\n <li>{{ \"searchEmployeeTooltip_4\" | translate }}</li>\r\n </ol>\r\n </div>\r\n</sat-popover>\r\n","import {ReactiveFormsModule, Validators} from '@angular/forms';\r\n/* eslint-disable @angular-eslint/component-selector */\r\n/* eslint-disable @angular-eslint/use-lifecycle-interface */\r\n/* eslint-disable @typescript-eslint/no-explicit-any */\r\n/* eslint-disable @angular-eslint/no-output-on-prefix */\r\nimport { BaseComponent } from './../base-component/base-component.component';\r\nimport {MatError, MatFormField, MatLabel, MatOption, MatSelect, MatSelectChange} from '@angular/material/select';\r\nimport {\r\n Component,\r\n Input,\r\n Output,\r\n EventEmitter,\r\n SimpleChanges,\r\n ElementRef,\r\n ViewChild,\r\n CUSTOM_ELEMENTS_SCHEMA,\r\n} from '@angular/core';\r\nimport {MatProgressSpinner} from \"@angular/material/progress-spinner\";\r\nimport {NgForOf, NgIf} from \"@angular/common\";\r\nimport {InfoItemComponent} from \"../info-item/info-item.component\";\r\nimport {FormLabelComponent} from \"../form-label/form-label.component\";\r\n\r\n@Component({\r\n selector: 'app-select',\r\n templateUrl: './select.component.html',\r\n styleUrls: ['./select.component.scss'],\r\n schemas: [CUSTOM_ELEMENTS_SCHEMA],\r\n standalone: true,\r\n imports: [\r\n ReactiveFormsModule,\r\n MatSelect,\r\n MatOption,\r\n MatLabel,\r\n MatProgressSpinner,\r\n MatError,\r\n NgIf,\r\n NgForOf,\r\n InfoItemComponent,\r\n FormLabelComponent,\r\n MatFormField\r\n ]\r\n})\r\nexport class SelectComponent extends BaseComponent {\r\n emitedValues = [];\r\n @Input() valueName: any = 'description';\r\n @Input() parentKey = '';\r\n @Input() label!: string;\r\n @Input() tooltip!: string;\r\n @Input() className = 'bordered-input';\r\n @Input() showLabel = true;\r\n @Input() readonly = false;\r\n @Input() optional = false;\r\n @Input() data!: any[];\r\n @Output() onChange = new EventEmitter();\r\n @Input() error!: string;\r\n @Input() optionAr!: string;\r\n @Input() optionEn!: string;\r\n @Input() hasPlaceHolder = false;\r\n @Output() emitedMultiValue = new EventEmitter();\r\n @ViewChild('selectCtrl') selectCtrl!: ElementRef;\r\n selectAllEnabled = true;\r\n @ViewChild('selectAllOption') selectAllOption;\r\n selectedValues: string[] = [];\r\n @Input() parentValue: string;\r\n ngOnInit(): void {\r\n // this.resetPropagator.subscribe(this, this.resetKeyValue);\r\n if (this.field?.key) {\r\n this.controller.setValue(this.field.key);\r\n } else {\r\n this.controller.setValue('');\r\n }\r\n\r\n if (this.field?.length > 0) {\r\n this.controller.setValue(this.field);\r\n }\r\n\r\n if (this.required) {\r\n this.controller.setValidators([Validators.required]);\r\n }\r\n\r\n // send back case\r\n if (\r\n this.lov && this.lov?.options?.length &&\r\n Array.isArray(this.controller?.value) &&\r\n this.controller?.value?.length === this.lov?.options?.length\r\n ) {\r\n this.selectAllOption?.select();\r\n this.toggleAllOptions(true);\r\n }\r\n }\r\n\r\n ngOnChanges(changes: SimpleChanges) {\r\n if (changes?.['field'] && !this.multiple) {\r\n if (changes['field'].currentValue?.key == null) {\r\n this.controller.setValue('');\r\n } else {\r\n this.controller.setValue(changes['field'].currentValue.key);\r\n }\r\n }\r\n }\r\n\r\n resetKeyValue() {\r\n if (!this.isReadOnly) {\r\n this.controller.reset();\r\n this.controller.markAsUntouched();\r\n if (this.multiple) {\r\n this.field = [];\r\n this.emitedValues = [];\r\n this.emitedValue.emit(this.emitedValues);\r\n } else {\r\n this.field = {\r\n value: null,\r\n key: null,\r\n };\r\n this.emitedValue.emit(this.field);\r\n }\r\n }\r\n }\r\n\r\n toggleAllOptions(value: any) {\r\n this.selectCtrl['options'].forEach((option) => {\r\n if (value.selected) {\r\n option.select();\r\n } else {\r\n option.deselect();\r\n }\r\n });\r\n }\r\n\r\n transformSelectedData(value) {\r\n if (!value) {\r\n return '';\r\n }\r\n if (value[0] === 'all') {\r\n return this.lov.options[1]['description'];\r\n } else {\r\n const selectedOption = this.lov?.options?.find((option) => {\r\n let val = value[0];\r\n if (typeof val !== 'string') {\r\n val = val && val['value'];\r\n }\r\n return option.value === val;\r\n });\r\n return selectedOption?.description;\r\n }\r\n }\r\n\r\n handleOnOptionSelected(value: any) {\r\n value = value.filter((value) => value !== 'all'); // without all\r\n\r\n const selectedValues = value.map((val: any) => {\r\n const item = this.lov?.options?.find((element) => element.value == val);\r\n\r\n return {\r\n key: val,\r\n value: item.description,\r\n };\r\n });\r\n\r\n this.emitedMultiValue.emit(selectedValues);\r\n }\r\n\r\n emitSelectedValue(event: MatSelectChange): void {\r\n const index = this.lov.options.findIndex(\r\n (option) => option.value === event.value\r\n );\r\n this.controller.setValue(event.value);\r\n this.emitedValue.emit({\r\n key: event.value,\r\n value: this.lov.options[index].description,\r\n });\r\n }\r\n}\r\n","<ng-container *ngIf=\"!isReadOnly\">\r\n <app-form-label [label]=\"label\" [optional]=\"optional\" [hideOption]=\"hideOption\" [showLabel]=\"showLabel\">\r\n </app-form-label>\r\n <mat-form-field class=\"{{className}}\" [floatLabel]=\"'auto'\">\r\n <mat-label>\r\n {{ hasPlaceHolder ? placeholder : i18n.translate('selectYourOption')}}\r\n </mat-label>\r\n <label class=\"mat-form-content\">\r\n <ng-container *ngIf=\"!multiple\">\r\n <mat-select disableOptionCentering [disabled]=\"disabled\" [formControl]=\"controller\"\r\n (selectionChange)=\"emitSelectedValue($event)\"\r\n [placeholder]=\"hasPlaceHolder ? placeholder : i18n.translate('selectYourOption')\">\r\n <ng-container *ngIf=\"parentKey !== ''\">\r\n <ng-container *ngFor=\"let element of lov?.options\">\r\n <mat-option *ngIf=\"element?.parentValue === parentKey\" [value]=\"element.value\">\r\n {{element.description}}\r\n </mat-option>\r\n </ng-container>\r\n </ng-container>\r\n <ng-container *ngIf=\"parentKey ===''\">\r\n <mat-option *ngFor=\"let element of lov?.options\" [value]=\"element.value\">\r\n {{element.description}}\r\n </mat-option>\r\n </ng-container>\r\n </mat-select>\r\n </ng-container>\r\n <ng-container *ngIf=\"multiple\">\r\n <mat-select #selectCtrl [disabled]=\"disabled\" [formControl]=\"controller\" multiple\r\n (selectionChange)=\"handleOnOptionSelected($event?.value)\"\r\n [placeholder]=\"hasPlaceHolder ? placeholder : i18n.translate('selectYourOption')\">\r\n\r\n <mat-select-trigger *ngIf=\"selectAllEnabled\">\r\n {{ transformSelectedData(controller?.getRawValue())}}\r\n <span *ngIf=\"(controller.value?.length || 0) > 1\" >\r\n (+{{ (controller.value?.length || 0) - 1 }} {{ controller.value?.length === 2 ? i18n.translate('other') : i18n.translate('others') }})\r\n </span>\r\n </mat-select-trigger>\r\n\r\n <ng-container *ngIf=\"parentKey !== ''\" >\r\n <ng-container *ngFor=\"let element of lov?.options\" class=\"mx-2\">\r\n <mat-option *ngIf=\"element?.parentValue === parentKey\" [value]=\"element.value\">\r\n {{element.description}}\r\n </mat-option>\r\n </ng-container>\r\n </ng-container>\r\n <ng-container *ngIf=\"parentKey ===''\" >\r\n\r\n <mat-option #selectAllOption *ngIf=\"selectAllEnabled && lov?.options?.length\" value=\"all\" class=\"mx-2\" (click)=\"toggleAllOptions(selectAllOption)\">\r\n {{i18n.translate('selectAll')}}\r\n </mat-option>\r\n\r\n <mat-option *ngFor=\"let element of lov?.options\" [value]=\"element.value\" class=\"mx-2\">\r\n {{element.description}}\r\n </mat-option>\r\n\r\n\r\n </ng-container>\r\n </mat-select>\r\n </ng-container>\r\n\r\n\r\n\r\n\r\n\r\n <mat-label *ngIf=\"loading\">\r\n <div class=\"select-placeholder-container\">\r\n <!-- <span>Loading...</span> -->\r\n <mat-spinner class=\"spinner\" diameter=\"20\"></mat-spinner>\r\n </div>\r\n </mat-label>\r\n\r\n </label>\r\n\r\n <mat-error class=\"mb-2\" *ngIf=\"(!controller?.valid)\">{{i18n.translate('validSelectError')}}{{label}}\r\n </mat-error>\r\n\r\n <mat-hint *ngIf=\"showHint && hint\" class=\"mb-2\">\r\n <span class=\"mat-error\">{{hint}}</span>\r\n </mat-hint>\r\n\r\n <!-- <mat-error *ngIf=\"!controller.valid\">{{error}}</mat-error> -->\r\n </mat-form-field>\r\n</ng-container>\r\n\r\n<ng-container *ngIf=\"isReadOnly && (showIfEmpty || field?.value)\" class=\"info-section\">\r\n <app-info-item class=\"info-item w-100\" [label]=\"label\" [hasLabel]=\"hasLabel\" [insideTable]=\"insideTable\"\r\n [value]=\"field?.value || field?.key\"></app-info-item>\r\n</ng-container>\r\n\r\n<ng-container *ngIf=\"isReadOnly && multiple\" class=\"info-section\">\r\n <app-info-item class=\"info-item w-100\" [label]=\"label\" [type]=\"'multipleSelect'\" [hasLabel]=\"hasLabel\" [insideTable]=\"insideTable\"\r\n [value]=\"field\"></app-info-item>\r\n</ng-container>\r\n","import {NG_VALUE_ACCESSOR} from '@angular/forms';\r\nimport {Component, CUSTOM_ELEMENTS_SCHEMA, DestroyRef, forwardRef, inject, Input} from '@angular/core';\r\nimport { ControlValueAccessorDirective } from '../control-value-accessor.directive';\r\nimport { MatFormImports, Shareds, TextLanguageDirectives } from '../shared-imports';\r\nimport { takeUntilDestroyed } from '@angular/core/rxjs-interop';\r\n\r\n@Component({\r\n selector: 'app-textarea',\r\n templateUrl: './textarea.component.html',\r\n styleUrls: ['./textarea.component.scss'],\r\n schemas: [CUSTOM_ELEMENTS_SCHEMA],\r\n imports: [\r\n ...MatFormImports,\r\n ...Shareds,\r\n ...TextLanguageDirectives\r\n ],\r\n standalone: true,\r\n providers: [\r\n {\r\n provide: NG_VALUE_ACCESSOR,\r\n useExisting: forwardRef(() => TextareaComponent),\r\n multi: true,\r\n },\r\n ]\r\n})\r\nexport class TextareaComponent<Type> extends ControlValueAccessorDirective<Type> {\r\n @Input() className!: string;\r\n @Input() preventSpecailChar!: boolean;\r\n destroyRef = inject(DestroyRef);\r\n override ngOnInit(): void {\r\n super.ngOnInit()\r\n this.actionStateService.resetAction$\r\n .pipe(takeUntilDestroyed(this.destroyRef))\r\n .subscribe(res => {\r\n if (!this.isReadOnly && this.control.enabled) {\r\n this.control.reset();\r\n }\r\n });\r\n\r\n }\r\n}\r\n","@if(!isReadOnly){\r\n <ng-container>\r\n @if(label){\r\n <app-form-label [label]=\"label\" [optional]=\"!control.hasValidator(Validators['required'])\" [tooltip]=\"tooltip\"></app-form-label>\r\n }\r\n <mat-form-field class=\"custom-textarea bordered-input {{className}}\">\r\n <mat-label>{{ label }}</mat-label>\r\n <label class=\"mat-form-content\">\r\n @if (type === 'arOnly'){\r\n <textarea [placeholder]=\"placeholder\" min=\"minlength\" arOnly max=\"maxValue\"\r\n [formControl]=\"control\" matInput></textarea>\r\n }\r\n @if (type === 'enOnly'){\r\n <textarea [placeholder]=\"placeholder\" min=\"minlength\" enOnly max=\"maxValue\"\r\n [formControl]=\"control\" matInput></textarea>\r\n }\r\n @if (type !== 'enOnly' && type !== 'arOnly' ){\r\n <textarea [placeholder]=\"placeholder\" \r\n [maxlength]=\"maxLength\" min=\"minlength\" specialIsAlphaNumeric max=\"maxValue\"\r\n [formControl]=\"control\" matInput></textarea>\r\n }\r\n \r\n </label>\r\n @if (showHint){\r\n <mat-hint class=\"d-flex align-items-center gap-1 mt-1\">\r\n <span class=\"sfi sfi-info fs-17 fc-dark-gray\" [ngClass]=\"{'fc-oasis-light-imp':value}\"></span>\r\n <span class=\"fs-12 fc-black line-height-1\">{{ hint }}</span>\r\n </mat-hint>\r\n }\r\n \r\n </mat-form-field>\r\n <app-validation-errors [errors]=\"control.errors\"></app-validation-errors>\r\n \r\n </ng-container>\r\n}\r\n@if (isReadOnly && control.value && (showIfEmpty || control)){\r\n <ng-container>\r\n <app-info-item class=\"info-item w-100\" [insideTable]=\"insideTable\" [label]=\"label\" [value]=\"control?.value\" [type]=\"type\"></app-info-item>\r\n </ng-container>\r\n}\r\n\r\n","/* eslint-disable @angular-eslint/directive-selector */\r\n/* eslint-disable @typescript-eslint/no-empty-function */\r\nimport { Directive, HostListener } from '@angular/core';\r\n\r\n@Directive({\r\n selector: '[specialIsAlphaNumeric]'\r\n})\r\nexport class SpecialCharacterDirective {\r\n regexStr = '^[a-zA-Z0-9]*$';\r\n\r\n constructor() {\r\n\r\n }\r\n\r\n @HostListener('input', ['$event']) onInputChange(event) {\r\n const inputElement = event.target as HTMLInputElement;\r\n inputElement.value = inputElement.value.replace(/[\\'\\`]/g, '');\r\n }\r\n\r\n @HostListener('paste', ['$event'])\r\n blockPaste(event: ClipboardEvent) {\r\n const inputElement = event.target as HTMLInputElement;\r\n inputElement.value = inputElement.value.replace(/[\\'\\`]/g, '');\r\n }\r\n\r\n @HostListener('drop', ['$event'])\r\n onDrop(event) {\r\n const inputElement = event.target as HTMLInputElement;\r\n inputElement.value = inputElement.value.replace(/[\\'\\`]/g, '');\r\n }\r\n\r\n}\r\n","import { Component, Input, Output, EventEmitter, forwardRef, inject, DestroyRef } from '@angular/core';\r\nimport {MatButtonToggle, MatButtonToggleGroup} from \"@angular/material/button-toggle\";\r\nimport {SatPopoverModule} from \"@ncstate/sat-popover\";\r\nimport { ControlValueAccessorDirective } from '../control-value-accessor.directive';\r\nimport { NG_VALUE_ACCESSOR } from '@angular/forms';\r\nimport { Shareds } from '../shared-imports';\r\nimport { takeUntilDestroyed } from '@angular/core/rxjs-interop';\r\n\r\n@Component({\r\n selector: 'app-toggle-button',\r\n templateUrl: './toggle-button.component.html',\r\n styleUrls: ['./toggle-button.component.scss'],\r\n imports: [\r\n MatButtonToggleGroup,\r\n MatButtonToggle,\r\n SatPopoverModule,\r\n ...Shareds\r\n ],\r\n providers: [\r\n {\r\n provide: NG_VALUE_ACCESSOR,\r\n useExisting: forwardRef(() => ToggleButtonComponent),\r\n multi: true,\r\n },\r\n ],\r\n standalone: true\r\n})\r\nexport class ToggleButtonComponent<Type> extends ControlValueAccessorDirective<Type> {\r\n @Input() className = 'bordered-input';\r\n @Input() data!: any[];\r\n @Output() onChange = new EventEmitter();\r\n @Input() error!: string;\r\n @Input() optionAr!: string;\r\n @Input() optionEn!: string;\r\n @Input() hasHint = false;\r\n @Input() options:any[];\r\n @Input() displayedLabel: string;\r\n @Input() key: string;\r\n destroyRef = inject(DestroyRef);\r\n override ngOnInit(): void {\r\n super.ngOnInit()\r\n this.actionStateService.resetAction$\r\n .pipe(takeUntilDestroyed(this.destroyRef))\r\n .subscribe(res => {\r\n if (!this.isReadOnly && this.control.enabled) {\r\n this.control.reset();\r\n }\r\n });\r\n\r\n }\r\n\r\n\r\n\r\n}\r\n","@if(!isReadOnly){\r\n <ng-container>\r\n @if(label){\r\n <app-form-label [label]=\"label\" [optional]=\"!control.hasValidator(Validators['required'])\" [tooltip]=\"tooltip\"></app-form-label>\r\n }\r\n\r\n @if(options){\r\n <mat-button-toggle-group class=\"Toggle__buttons d-flex align-items-center gap-3\" [value]=\"control.value\" [formControl]=\"control\"\r\n aria-label=\"Font Style\" [multiple]=\"multiple\">\r\n @for(item of options; track item){\r\n <mat-button-toggle [value]=\"item[key]\" (click)=\"hasHint ? hintSection?.toggle() : null\" [satPopoverAnchor]=\"hintSection\">\r\n <span>\r\n {{item[displayedLabel]}}\r\n </span>\r\n <sat-popover #hintSection [hasBackdrop]=\" true\" verticalAlign=\"below\">\r\n <div class=\"default-tooltip\">\r\n <p class=\"m-0\" [innerHTML]=\"item[displayedLabel]\"></p>\r\n </div>\r\n </sat-popover>\r\n </mat-button-toggle>\r\n }\r\n\r\n </mat-button-toggle-group>\r\n }\r\n </ng-container>\r\n}\r\n\r\n@if(isReadOnly && control.value){\r\n <ng-container>\r\n <app-info-item class=\"info-item w-100\" [insideTable]=\"insideTable\" [type]=\"'toggleBtn'\" [label]=\"label\" [value]=\"control?.value\"></app-info-item>\r\n </ng-container>\r\n\r\n}\r\n","/* eslint-disable @typescript-eslint/no-explicit-any */\r\n/* eslint-disable @angular-eslint/component-selector */\r\n/* eslint-disable @typescript-eslint/no-empty-function */\r\nimport {Component, CUSTOM_ELEMENTS_SCHEMA, Input} from '@angular/core';\r\nimport {NgClass, NgForOf, NgIf} from \"@angular/common\";\r\nimport {SatPopoverModule} from \"@ncstate/sat-popover\";\r\n\r\n@Component({\r\n selector: 'app-repeated-list',\r\n templateUrl: './repeated-list.component.html',\r\n styleUrls: ['./repeated-list.component.scss'],\r\n schemas: [CUSTOM_ELEMENTS_SCHEMA],\r\n standalone: true,\r\n imports: [\r\n NgForOf,\r\n SatPopoverModule,\r\n NgClass,\r\n NgIf\r\n ]\r\n})\r\nexport class RepeatedListComponent {\r\n @Input() listOfItems: any;\r\n @Input() type = ''; // users-avatar, categories\r\n constructor() { }\r\n\r\n getImage(email: string) {\r\n return \"/group/i-gate/wm-bpm/forms/-/proxy/portrait?email=\" + email;\r\n }\r\n\r\n\r\n}\r\n","<div class=\"{{type}}\">\r\n <ng-container *ngFor=\"let item of listOfItems; let i = index\">\r\n <div class=\"item\" *ngIf=\"i <= 1\">\r\n <span class=\"img-card circled-img x-small\" *ngIf=\"item.image\">\r\n <img [src]=\"item.image\" [alt]=\"item.personName\">\r\n </span>\r\n <span class=\"name font-12\">\r\n {{item.personName}}\r\n </span>\r\n </div>\r\n </ng-container>\r\n\r\n <span class=\"text-color-onyx font-14 font-weight-medium cursor-pointer more\" *ngIf=\"listOfItems.length > 2\"\r\n [satPopoverAnchor]=\"tooltipOfItems\" (mouseenter)=\"tooltipOfItems.open()\" (mouseleave)=\"tooltipOfItems.close()\">\r\n {{listOfItems.length - 2 !== 0 ? '+' + (listOfItems.length - 2) : ''}}\r\n </span>\r\n <sat-popover #tooltipOfItems horizontalAlign=\"center\" verticalAlign=\"above\">\r\n <div class=\"border bg-color-white\">\r\n <div class=\"d-flex align-items-center border-bottom p-2\" [ngClass]=\"{'border-0': last}\"\r\n *ngFor=\"let item of listOfItems; let i = index; let last = last\">\r\n <span class=\"img-card circled-img x-small\" *ngIf=\"item.image\">\r\n <img [src]=\"item.image\" [alt]=\"item.personName\">\r\n </span>\r\n <span class=\"mx-1\" *ngIf=\"item.image\"></span>\r\n <span class=\"name font-12\">\r\n {{item.personName}}\r\n </span>\r\n\r\n </div>\r\n </div>\r\n </sat-popover>\r\n\r\n\r\n</div>\r\n","/* eslint-disable @angular-eslint/use-lifecycle-interface */\r\n/* eslint-disable @typescript-eslint/no-explicit-any */\r\n/* eslint-disable @angular-eslint/component-selector */\r\nimport {CUSTOM_ELEMENTS_SCHEMA, EventEmitter} from '@angular/core';\r\nimport {BaseComponent} from './../base-component/base-component.component';\r\nimport {Component, Input, Output} from '@angular/core';\r\nimport {MatTableDataSource, MatTableModule} from '@angular/material/table';\r\nimport {MatPaginatorModule} from '@angular/material/paginator';\r\nimport {DatePipe, NgClass, NgForOf, NgIf, NgSwitch, NgSwitchCase, NgSwitchDefault} from \"@angular/common\";\r\nimport {RouterLink} from \"@angular/router\";\r\nimport {RepeatedListComponent} from \"../repeated-list/repeated-list.component\";\r\nimport {MatButton} from \"@angular/material/button\";\r\nimport {MatMenu, MatMenuItem, MatMenuTrigger} from \"@angular/material/menu\";\r\n\r\n// import { ConfirmationPopupComponent } from '../../confirmation-popup/confirmation-popup.component';\r\n\r\n\r\n@Component({\r\n selector: 'app-table-list',\r\n templateUrl: './table-list.component.html',\r\n styleUrls: ['./table-list.component.scss'],\r\n schemas: [CUSTOM_ELEMENTS_SCHEMA],\r\n standalone: true,\r\n imports: [\r\n MatPaginatorModule,\r\n MatTableModule,\r\n NgForOf,\r\n NgClass,\r\n NgSwitchCase,\r\n RouterLink,\r\n NgSwitch,\r\n NgIf,\r\n DatePipe,\r\n RepeatedListComponent,\r\n MatButton,\r\n MatMenu,\r\n MatMenuTrigger,\r\n MatMenuItem,\r\n NgSwitchDefault\r\n ]\r\n})\r\nexport class TableListComponent extends BaseComponent {\r\n @Input() columns: any;\r\n @Input() columnsConfig: any;\r\n @Input() rows: any;\r\n @Input() actions: any = [];\r\n @Input() totalRecords !: number;\r\n @Input() className = '';\r\n public dataSource = new MatTableDataSource<any>();\r\n @Output() pageChanged: EventEmitter<any> = new EventEmitter();\r\n @Output() buttonAction: EventEmitter<any> = new EventEmitter();\r\n @Output() emitDataRow: EventEmitter<any> = new EventEmitter();\r\n\r\n // constructor(public dialog: MatDialog) { }\r\n\r\n ngOnInit(): void {\r\n this.dataSource.data = this.rows;\r\n }\r\n\r\n truncateName(text: string) {\r\n if (text) {\r\n const characters = text.match(/\\b(\\w)/g);\r\n if (characters) {\r\n return characters.join('');\r\n } else {\r\n return '';\r\n }\r\n } else {\r\n return '';\r\n }\r\n }\r\n\r\n onPageChange(event: any) {\r\n this.pageChanged.emit(event)\r\n }\r\n\r\n\r\n delete(): void {\r\n // const dialogRef = this.dialog.open(ConfirmationPopupComponent, {\r\n // width: '700px',\r\n // panelClass: ['confirm-popup', 'main-popup'],\r\n // data: {\r\n // title: 'Delete Match',\r\n // message: 'Are you sure you want delete',\r\n // confirmText: 'match making example name',\r\n // moreText: '',\r\n // type: 'delete',\r\n // icon: 'delete-match',\r\n // }\r\n // });\r\n\r\n // dialogRef.afterClosed().subscribe(() => {\r\n // // closed\r\n // });\r\n }\r\n\r\n buttonClicked(element, fn: string, $event: MouseEvent) {\r\n\r\n }\r\n\r\n selectedRow(row) {\r\n\r\n }\r\n\r\n getSlaColor(value: any, max: number) {\r\n\r\n }\r\n\r\n sentBack() {\r\n\r\n }\r\n}\r\n","<div class=\"overflow-auto\">\r\n <!-- #table (scroll)=\"onPageChange($event)\" -->\r\n <ng-container >\r\n <!-- (matSortChange)=\"sortData($event)\" -->\r\n <table mat-table [dataSource]=\"dataSource\" class=\"primary-table {{className}}\" matSort >\r\n <ng-container *ngFor=\"let column of columns; let i = index;\">\r\n <ng-container [matColumnDef]=\"column\">\r\n <th mat-header-cell *matHeaderCellDef [ngClass]=\"{'last-column' : columnsConfig[i].type === 'actions', 'sortArrow': columnsConfig[i]?.sortName?.length }\" mat-sort-header>\r\n {{i18n.translate(columnsConfig[i].label)}} </th>\r\n \r\n <td mat-cell [ngClass]=\"{'account-disabled': element?.user?.disabledCleanUp===true}\" *matCellDef=\"let element\">\r\n <ng-container [ngSwitch]=\"columnsConfig[i].type\" *ngIf=\"rows.length\">\r\n <a [ngClass]=\"columnsConfig[i].type\" [href]=\"element[column]\" *ngSwitchCase=\"'link'\">\r\n {{ element[column] }}\r\n </a>\r\n \r\n <a [ngClass]=\"columnsConfig[i].type\" [routerLink]=\"[element.id]\" [href]=\"element[column]\"\r\n *ngSwitchCase=\"'rout'\">\r\n {{ element[column] }}\r\n </a>\r\n \r\n <span class=\"d-inline-flex align-items-center\" [ngClass]=\"columnsConfig[i].type\" *ngSwitchCase=\"'date'\">\r\n <span class=\"sfi sfi-clock text-color-coral\" *ngIf=\"!loading\"></span>\r\n <span class=\"mx-2\">\r\n <!-- {{ element?.Date.from }}\r\n <ng-container *ngIf=\"element?.Date.to\">\r\n : {{ element?.Date.to }}\r\n </ng-container> -->\r\n {{ element[column] | date: 'dd/MM/YYYY' }}\r\n </span>\r\n </span>\r\n \r\n <div class=\"d-inline-flex align-items-center\" [ngClass]=\"columnsConfig[i].type\" *ngSwitchCase=\"'sla'\">\r\n <app-sla [value]=\"element?.SLA.value\" [maxValue]=\"element?.SLA.max\" [canvasScale]=\"45\"\r\n [outerLineColor]=\"getSlaColor(element?.SLA.value, element?.SLA.max)\"></app-sla>\r\n </div>\r\n \r\n <div class=\"img-card table-img\" [ngClass]=\"columnsConfig[i].type\" *ngSwitchCase=\"'image'\">\r\n <img [src]=\"element?.image\" alt=\"\">\r\n </div>\r\n \r\n <span class=\"{{ element[column].type }}\" [ngClass]=\"columnsConfig[i].type\" *ngSwitchCase=\"'status'\">\r\n {{ element[column].label }}\r\n </span>\r\n \r\n \r\n <div class=\"d-flex mx-n1\" *ngSwitchCase=\"'RequestType'\">\r\n <div class=\"request-type mx-1 {{item.status}}\" *ngFor=\"let item of element?.RequestType\">\r\n {{ item.label }}\r\n <span class=\"mx-1\" *ngIf=\"item.status === 'need-action'\"></span>\r\n <span class=\"sfi sfi-info \" *ngIf=\"item.status === 'need-action'\"></span>\r\n </div>\r\n </div>\r\n \r\n \r\n <span class=\"{{ element[column].type }} {{ element[column] ? 'text-color-coral underline' : '' }}\"\r\n [ngClass]=\"columnsConfig[i].type\" *ngSwitchCase=\"'number'\">\r\n {{ element[column] ? element[column] : '-' }}\r\n </span>\r\n \r\n <div class=\"text-nowrap d-flex align-items-center\" [ngClass]=\"columnsConfig[i].type\"\r\n *ngSwitchCase=\"'group'\">\r\n <span>{{element?.Group.groupName}}</span>\r\n <span class=\"mx-2\"></span>\r\n <app-repeated-list type=\"users-avatar\" [listOfItems]=\"element?.Group.users\"></app-repeated-list>\r\n </div>\r\n \r\n <div class=\"d-flex align-items-center gap-2\" [ngClass]=\"columnsConfig[i].type\" *ngSwitchCase=\"'user'\">\r\n <span class=\"img-card circled-img small\" *ngIf=\"!loading\">\r\n <img src=\"{{'data:image/png;base64,' + element?.user?.personalPhoto}}\"\r\n onerror=\"this.onerror=null;this.src='assets/images/user.svg';\" alt=\"\">\r\n </span>\r\n <div class=\"d-flex flex-column\">\r\n <span class=\"font-14 font-weight-medium\">{{element?.user?.name}}</span>\r\n <span class=\"font-12 font-weight-normal text-color-dark-gray mt-1\">{{element?.user?.email}}</span>\r\n </div>\r\n </div>\r\n \r\n \r\n <div class=\"delegate d-flex align-items-center\" [ngClass]=\"columnsConfig[i].type\"\r\n *ngSwitchCase=\"'assigned'\">\r\n <div class=\"img-card x-small circled-img\">\r\n <img [src]=\"element?.AssignedTo.image\" alt=\"\">\r\n </div>\r\n <span class=\"mx-1\"></span>\r\n <span class=\"font-14 font-weight-medium text-color-onyx\">{{element?.AssignedTo.name}}</span>\r\n <span class=\"sfi sfi-close text-color-coral\"></span>\r\n </div>\r\n \r\n \r\n <ng-container *ngSwitchCase=\"'statusAction'\">\r\n <div class=\"table-action\">\r\n \r\n <div class=\"count-down mx-n1\" *ngIf=\"element[column] === 'need-action'\">\r\n <div class=\"item mx-1\">\r\n <span class=\"font-12 font-weight-medium text-color-onyx d-block\">01</span>\r\n <span class=\"font-8 font-weight-light text-color-onyx d-block\">Days</span>\r\n </div>\r\n <div class=\"item mx-1\">\r\n <span class=\"font-12 font-weight-medium text-color-onyx d-block\">18</span>\r\n <span class=\"font-8 font-weight-light text-color-onyx d-block\">Hours</span>\r\n </div>\r\n <div class=\"item mx-1\">\r\n <span class=\"font-12 font-weight-medium text-color-onyx d-block\">44</span>\r\n <span class=\"font-8 font-weight-light text-color-onyx d-block\">Mins</span>\r\n </div>\r\n </div>\r\n \r\n <div class=\"d-flex align-items-center\" *ngIf=\"element[column] === 'approved'\">\r\n <span class=\"status approved\">\r\n Approved\r\n </span>\r\n </div>\r\n \r\n <div class=\"d-flex align-items-center\" *ngIf=\"element[column] === 'sent-back'\">\r\n <span class=\"status rejected\">\r\n Sent Back\r\n </span>\r\n <span class=\"mx-2\"></span>\r\n <button mat-stroked-button class=\"btn button-primary square br-w-1 font-14 font-weight-medium\"\r\n (click)=\"sentBack()\">\r\n <span class=\"sfi sfi-chat-o\"></span>\r\n </button>\r\n </div>\r\n \r\n <div class=\"d-flex align-items-center\" *ngIf=\"element[column] === 'pending'\">\r\n <span class=\"status pending\">\r\n Pending\r\n </span>\r\n <span class=\"mx-2\"></span>\r\n \r\n <div class=\"d-flex align-items-center mx-n1\">\r\n <div class=\"img-card circled-img x-small mx-1\">\r\n <img [src]=\"element?.pendingWith.image\" alt=\"\">\r\n </div>\r\n \r\n <div class=\"d-flex flex-column mx-1\">\r\n <span class=\"font-8 font-weight-medium text-color-yellow text-nowrap\">Pending With</span>\r\n <span class=\"font-11 font-weight-medium text-nowrap\">{{element?.pendingWith.name}}</span>\r\n </div>\r\n </div>\r\n </div>\r\n \r\n \r\n </div>\r\n </ng-container>\r\n \r\n \r\n <ng-container *ngSwitchCase=\"'actions'\">\r\n \r\n <div class=\"d-flex justify-content-between mx-n2\">\r\n <ng-container *ngFor=\"let action of element[column]\">\r\n \r\n <div class=\"flex-grow-1\">\r\n <ng-container *ngIf=\"action.type.buttonType === 'stroked'\">\r\n <button mat-stroked-button (click)=\"buttonClicked(element,action.fn, $event)\"\r\n class=\"btn button-{{action.type.buttonClass}} mx-2\">\r\n {{action.label}}\r\n </button>\r\n </ng-container>\r\n \r\n <ng-container *ngIf=\"action.type.buttonType === 'flat'\">\r\n <button mat-flat-button (click)=\"buttonClicked(element,action.fn, $event)\"\r\n class=\"btn button-{{action.type.buttonClass}} mx-2\">\r\n {{action.label}}\r\n </button>\r\n </ng-container>\r\n \r\n <ng-container *ngIf=\"action.type.buttonType === 'icon'\">\r\n <button mat-icon-button (click)=\"buttonClicked(element,action.fn, $event)\"\r\n class=\"btn button-{{action.type.buttonClass}} mx-2\">\r\n <span class=\"sfi sfi-{{action.type.icon}}\"></span>\r\n </button>\r\n </ng-container>\r\n </div>\r\n \r\n <ng-container *ngIf=\"action.type.buttonType === 'all'\">\r\n <button mat-icon-button class=\"btn button-transparent square medium mx-2 text-end\"\r\n [matMenuTriggerFor]=\"menuAction\" (click)=\"$event.stopPropagation()\">\r\n <span class=\"sfi sfi-dots text-color-onyx\"></span>\r\n </button>\r\n <mat-menu #menuAction=\"matMenu\" xPosition=\"before\" class=\"actions-menu\">\r\n <button *ngIf=\"!element?.user?.email && element?.user?.disabledCleanUp!==true\" mat-menu-item class=\"text-color-onyx font-12\"\r\n (click)=\"buttonClicked(element,'CreateEmail', $event)\">\r\n {{i18n.translate('createEmail')}} \r\n </button>\r\n <button *ngIf=\"element?.user?.email && element?.user?.enabled==='true'\" mat-menu-item class=\"text-color-red font-12\"\r\n (click)=\"buttonClicked(element,'DisableEmail', $event)\">\r\n {{ i18n.translate('disableEmail')}}\r\n </button>\r\n <button *ngIf=\"element?.user?.email && element?.user?.disabledCleanUp===true\" mat-menu-item class=\"text-color-red font-12\"\r\n (click)=\"buttonClicked(element,'EnableEmail', $event)\">\r\n {{ i18n.translate('enableEmail')}}\r\n </button>\r\n <button *ngIf=\"element?.user!==null && element?.user?.disabledCleanUp!==true\" mat-menu-item class=\"text-color-onyx font-12\"\r\n (click)=\"buttonClicked(element,'CreateEntryPermission', $event)\">\r\n {{ i18n.translate('createCEP')}}\r\n </button>\r\n <!-- <button *ngIf=\"!element?.user?.email\" mat-menu-item class=\"text-color-red font-12\"\r\n (click)=\"buttonClicked(element,'DisableEntryPermission', $event)\">\r\n {{i18n.translate('disableEntryPermission')}}\r\n </button> -->\r\n <button *ngIf=\"!element?.user?.email && element?.user?.disabledCleanUp!==true\" mat-menu-item class=\"text-color-red font-12\"\r\n (click)=\"buttonClicked(element,'DeleteAccount', $event)\">\r\n {{i18n.translate('deleteAccount')}}\r\n </button>\r\n\r\n <button *ngIf=\"element?.user?.email && element?.user?.disabledCleanUp!==true\" [disabled]=\"!element?.mailExtensionAllowed\" mat-menu-item class=\"text-color-onyx font-12\"\r\n (click)=\"buttonClicked(element,'ExtendAccount', $event)\">\r\n {{ i18n.translate('extendAccount')}}\r\n </button>\r\n <button mat-menu-item class=\"text-color-onyx font-12\" *ngIf=\"element?.user?.disabledCleanUp!==true\" (click)=\"buttonClicked(element,'update', $event)\">\r\n {{ i18n.translate('updateEmploymentInformation')}}\r\n </button>\r\n </mat-menu>\r\n </ng-container>\r\n </ng-container>\r\n </div>\r\n </ng-container>\r\n \r\n <span class=\"text-nowrap\" [ngClass]=\"columnsConfig[i].type\" *ngSwitchDefault>\r\n {{ element[column] }}\r\n </span>\r\n </ng-container>\r\n <ng-container *ngIf=\"loading\">\r\n <span class=\" d-block loading-bg\"></span>\r\n </ng-container>\r\n \r\n </td>\r\n \r\n \r\n </ng-container>\r\n </ng-container>\r\n \r\n <tr mat-header-row *matHeaderRowDef=\"columns\"></tr>\r\n <tr mat-row *matRowDef=\"let row; columns: columns;\" class=\"cursor-pointer\" (click)=\"selectedRow(row)\"></tr>\r\n </table>\r\n </ng-container>\r\n <!-- <ng-container *ngIf=\"loading\">\r\n <span>loading...</span>\r\n </ng-container> -->\r\n <!-- <ng-container *ngIf=\"loading\">-->\r\n <!-- <td *matCellDef=\"let element\" >loading....</td>-->\r\n <!-- </ng-container>-->\r\n <!--{{this.rows | json}}-->\r\n \r\n<!-- <app-no-data-placeholder *ngIf=\"noData && !loading\" [noDataPlaceholder]=\"noDataObj\"></app-no-data-placeholder> -->\r\n\r\n <mat-paginator [pageSize]=\"10\" [length]=\"totalRecords\" (page)=\"onPageChange($event)\" \r\n [pageSizeOptions]=\"[5, 10, 25, 100]\" aria-label=\"Select page of users\"></mat-paginator>\r\n <!-- style-paginator -->\r\n <!-- showFirstLastButtons -->\r\n</div>","import {DeleteDialogComponent} from '../../dialogs/delete-dialog/delete-dialog.component';\r\nimport {NoopScrollStrategy} from '@angular/cdk/overlay';\r\nimport {\r\n Component,\r\n CUSTOM_ELEMENTS_SCHEMA,\r\n DestroyRef,\r\n ElementRef,\r\n EventEmitter,\r\n forwardRef,\r\n inject,\r\n Input,\r\n OnChanges,\r\n OnInit,\r\n Output,\r\n SimpleChanges,\r\n ViewChild\r\n} from '@angular/core';\r\nimport * as FileSaver from 'file-saver';\r\nimport {DocumentFile} from '../../../../interfaces';\r\nimport {FormGroup, NG_VALUE_ACCESSOR} from '@angular/forms';\r\nimport {NgClass, NgTemplateOutlet} from \"@angular/common\";\r\nimport {MatError, MatHint} from \"@angular/material/form-field\";\r\nimport {ControlValueAccessorDirective} from '../control-value-accessor.directive';\r\nimport {MatDialog} from '@angular/material/dialog';\r\nimport {MatTooltip} from \"@angular/material/tooltip\";\r\nimport {FormLabelComponent} from '../form-label/form-label.component';\r\nimport {takeUntilDestroyed} from '@angular/core/rxjs-interop';\r\nimport {TranslatePipe} from \"../../../../pipes/translate.pipe\";\r\n\r\n\r\n@Component({\r\n selector: 'app-file-uploader',\r\n templateUrl: './docs-uploader.component.html',\r\n styleUrls: ['./docs-uploader.component.scss'],\r\n schemas: [CUSTOM_ELEMENTS_SCHEMA],\r\n standalone: true,\r\n imports: [\r\n NgClass,\r\n MatError,\r\n NgTemplateOutlet,\r\n MatHint,\r\n MatTooltip,\r\n FormLabelComponent,\r\n TranslatePipe\r\n ],\r\n providers: [\r\n {\r\n provide: NG_VALUE_ACCESSOR,\r\n useExisting: forwardRef(() => DocsUploaderComponent),\r\n multi: true,\r\n },\r\n ]\r\n})\r\nexport class DocsUploaderComponent<Type> extends ControlValueAccessorDirective<Type> implements OnInit, OnChanges {\r\n maxSizeFlag = true;\r\n maxSizeValue: any;\r\n wrongExtensionFlag = true;\r\n @Input() useCrop: boolean;\r\n @Input() formKey!: string;\r\n @Input() showLabel = true;\r\n @Input() downloadLink = false;\r\n @Input() showActions = true;\r\n @Input() styleHeight = ''; // medium, mini\r\n @Input() fileInputHeight = ''; // medium, mini\r\n @Input() styleWidth = '6';\r\n @Input() hints!: any;\r\n @Input() allowedExtensions = '';\r\n @Input() callApi: boolean = true;\r\n @Input() display = '';\r\n validExtension = true;\r\n @Input() attachType = '';\r\n @Input() error!: string;\r\n @Input() displayedFiles: DocumentFile[] = [];\r\n @Output() selectedTemplateAttachment = new EventEmitter();\r\n fileNotDuplicated = true;\r\n allowedFileSize = true;\r\n @Input() getDataFromTemplate = false;\r\n @Input() allowFileContentsWithMultiAttachments = false;\r\n @Input() accept: string[];\r\n filesize: string;\r\n wrongFile = {\r\n mimeType: \"\",\r\n fileContents: \"\",\r\n fileName: this.i18n.language == 'ar' ? \"امتداد الملف خاطىء\" : \"Wrong File Extension\",\r\n name: this.i18n.language == 'ar' ? \"امتداد الملف خاطىء\" : \"Wrong File Extension\"\r\n }\r\n allAttachments = [];\r\n\r\n uploadForm: FormGroup;\r\n @Input() signType = 'Sign';\r\n @Input() customDownload: boolean;\r\n @Input() showSignButton = false;\r\n @Input() printType = 'Print';\r\n @Input() showPrintButton = false;\r\n @Input() downloadType = 'Download';\r\n @Input() showDownloadButton = false;\r\n @Input() preventFileContents = false;\r\n @Output() addSignatureClicked = new EventEmitter();\r\n @Output() printActionClicked = new EventEmitter();\r\n @Output() emitedValue = new EventEmitter();\r\n @Output() downloadActionClicked = new EventEmitter();\r\n @Input() maxSize = '10';\r\n @ViewChild('inputFile') inputFile: ElementRef;\r\n dialog: MatDialog = inject(MatDialog)\r\n destroyRef = inject(DestroyRef);\r\n\r\n\r\n private readonly validImageTypes = {\r\n jpg: ['image/jpeg', 'image/pjpeg'],\r\n JPG: ['image/jpeg', 'image/pjpeg'],\r\n jpeg: ['image/jpeg', 'image/pjpeg'],\r\n png: ['image/png']\r\n }\r\n\r\n validImgPdfTypes = {\r\n pdf: ['application/pdf'],\r\n jpg: ['image/jpeg', 'image/pjpeg'],\r\n JPG: ['image/jpeg', 'image/pjpeg'],\r\n jpeg: ['image/jpeg', 'image/pjpeg'],\r\n bmp: ['image/bmp', 'image/x-windows-bmp'],\r\n png: ['image/png']\r\n }\r\n\r\n validFileTypes = {\r\n 'pdf': ['application/pdf'],\r\n 'doc': ['application/msword'],\r\n 'docx': ['application/vnd.openxmlformats-officedocument.wordprocessingml.document'],\r\n 'ppt': ['application/vnd.ms-powerpoint'],\r\n 'pptx': ['application/vnd.openxmlformats-officedocument.presentationml.presentation'],\r\n 'pps': ['application/vnd.ms-powerpoint'],\r\n 'ppsx': ['application/vnd.openxmlformats-officedocument.presentationml.slideshow'],\r\n 'odt': ['application/vnd.oasis.opendocument.text'],\r\n 'xls': ['application/vnd.ms-excel'],\r\n 'xlsx': ['application/vnd.openxmlformats-officedocument.spreadsheetml.sheet'],\r\n 'zip': ['application/zip', 'application/x-zip-compressed', 'multipart/x-zip', 'application/zip'],\r\n 'msg': ['application/vnd.ms-outlook', 'application/msg'],\r\n 'csv': ['text/csv'],\r\n 'txt': ['text/plain'],\r\n 'rtf': ['application/rtf', 'application/x-rtf', 'text/richtext'],\r\n 'html': ['text/html'],\r\n // 'mp4': ['video/mp4'],\r\n // 'm4v': ['video/mp4'],\r\n 'mov': ['video/quicktime'],\r\n 'wmv': ['video/x-ms-wmv'],\r\n // 'avi': ['video/x-msvideo'],\r\n 'mpg': ['mpg'],\r\n 'rmvb': ['rmvb'],\r\n // 'ogv': ['video/ogg'],\r\n // '3gp': ['video/3gpp', 'audio/3gpp'],\r\n // '3g2': ['video/3gpp2', 'audio/3gpp'],\r\n 'jpg': ['image/jpeg', 'image/pjpeg'],\r\n 'jpeg': ['image/jpeg', 'image/pjpeg'],\r\n 'png': ['image/png'],\r\n 'gif': ['image/gif'],\r\n 'bmp': ['image/bmp', 'image/x-windows-bmp']\r\n }\r\n\r\n\r\n private readonly validPdfTypes = {\r\n 'pdf': ['application/pdf'],\r\n }\r\n uploading: boolean;\r\n lengthError: boolean;\r\n\r\n ngOnChanges(changes: SimpleChanges): void {\r\n if (this.attachments?.length) {\r\n this.allAttachments = [...this.attachments];\r\n }\r\n }\r\n\r\n override ngOnInit(): void {\r\n super.ngOnInit();\r\n this.actionStateService.resetAction$\r\n .pipe(takeUntilDestroyed(this.destroyRef))\r\n .subscribe(res => {\r\n if (!this.isReadOnly && this.control.enabled) {\r\n this.control.reset();\r\n }\r\n });\r\n }\r\n\r\n getFileType(attachment: any): string {\r\n if (!attachment.fileName?.includes('.') && attachment.mimeType.includes('.')) {\r\n return this.checkFileType(attachment.mimeType);\r\n } else if (attachment.fileName) {\r\n return this.checkFileType(attachment.fileName);\r\n } else {\r\n return attachment.mimeType;\r\n }\r\n }\r\n\r\n private checkFileType(attachmentData: string): string {\r\n if (attachmentData.split('.').pop() == 'msg') {\r\n return 'email-icon'\r\n } else if (attachmentData.split('.').pop() == 'jpeg') {\r\n return 'jpg'\r\n } else if (attachmentData.split('.').pop() == 'xlsx' || attachmentData.split('.').pop() == 'xls') {\r\n return 'application/vnd.ms-excel;charset=utf-8';\r\n }\r\n return attachmentData.split('.').pop();\r\n }\r\n\r\n attachmentAction(type: any, index: number, field: any) {\r\n if (type == \"download\") {\r\n if (this.downloadLink) {\r\n window.open(field?.attachmentId, '_blank', 'top=0,left=0,height=auto,width=auto');\r\n } else if (field?.attachmentId) {\r\n this.downloadFile(type, field);\r\n } else if (field?.fileContents) {\r\n this.downloadFileNew(field);\r\n }\r\n }\r\n if (type == \"delete\") {\r\n if (this.validExtension) {\r\n if (this.multiple) {\r\n this.confirmDelete(index)\r\n } else {\r\n this.removeAttachedFile()\r\n }\r\n } else {\r\n this.validExtension = true;\r\n }\r\n }\r\n }\r\n\r\n confirmDelete(index: number) {\r\n const dialogRef = this.dialog.open(DeleteDialogComponent, {\r\n panelClass: ['main-popup', 'confirm-dialog'],\r\n scrollStrategy: new NoopScrollStrategy(),\r\n });\r\n\r\n dialogRef.afterClosed().subscribe((returnValue) => {\r\n if (returnValue == 'yes') {\r\n this.removeMulti(index)\r\n }\r\n });\r\n }\r\n\r\n removeMulti(index: number) {\r\n this.displayedFiles.splice(index, 1);\r\n this.allAttachments.splice(index, 1);\r\n }\r\n\r\n downloadFileNew(fileData: any) {\r\n const fileType = this.getFileType(fileData);\r\n const blob = new Blob([fileData.fileContents], {type: fileType});\r\n FileSaver.saveAs(blob, `${fileData.fileName}`);\r\n }\r\n\r\n onValueChange(event: any) {\r\n const input = event.target;\r\n this.control.reset()\r\n if (input?.files?.length > 0) {\r\n this.handleFileInput(input);\r\n this.processUploadedFile(input);\r\n }\r\n }\r\n\r\n private handleFileInput(input: any): void {\r\n if (input.files && this.formKey === 'TSV') {\r\n this.selectedTemplateAttachment.emit(input.files[0]);\r\n }\r\n\r\n const file: File = input.files[0];\r\n let fileType = file.name?.endsWith(\".msg\") ? 'application/vnd.ms-outlook' : file.type;\r\n\r\n if (this.accept?.length && !this.accept.includes(fileType)) {\r\n alert(this.i18n.translate('thisIsInvalidFile'));\r\n return;\r\n }\r\n\r\n this.uploadForm?.get('file')?.setValue(file);\r\n this.uploadForm?.get('name')?.setValue(file?.name);\r\n }\r\n\r\n private processUploadedFile(input: any): void {\r\n if (!this.uploading) {\r\n const fileData = new FileInfo(\r\n input.files[0].name,\r\n input.files[0].name,\r\n input.files[0].type,\r\n '',\r\n this.filesize\r\n );\r\n this.updateFileProperties(input, fileData);\r\n if (!this.lengthError && +this.filesize < +this.maxSize) {\r\n this.allowedFileSize = true;\r\n this.uploadValidAndNonDuplicateFile(input, fileData);\r\n } else {\r\n this.allowedFileSize = false;\r\n }\r\n\r\n input.value = '';\r\n }\r\n }\r\n\r\n private updateFileProperties(input: any, fileInfo: FileInfo): void {\r\n this.maxSizeValue = this.maxSize ? this.maxSize : 1;\r\n this.filesize = ((input.files[0].size / 1024) / 1024).toFixed(4);\r\n this.maxSizeFlag = +this.filesize < +this.maxSize;\r\n this.lengthError = this.displayedFiles?.length >= +this.maxLength;\r\n this.wrongExtensionFlag = this.isValidMimeType(input.files[0].type);\r\n this.validExtension = this.isValidExtension(input.files[0].name.split('.').pop(), this.type);\r\n this.value = fileInfo;\r\n }\r\n\r\n private uploadValidAndNonDuplicateFile(input: any, fileData: FileInfo): void {\r\n if (this.validExtension) {\r\n if (this.getDataFromTemplate) this.selectedTemplateAttachment.emit(input);\r\n this.readFileAndUpload(input.files[0], fileData);\r\n } else if (!this.multiple) {\r\n this.emitEmptyFile();\r\n }\r\n }\r\n\r\n private readFileAndUpload(file: File, fileInfo: FileInfo): void {\r\n const reader = new FileReader();\r\n reader.onload = () => {\r\n const fileContents = (reader.result as string).split(',')[1];\r\n fileInfo.fileContents = fileContents;\r\n fileInfo.filesize = this.filesize;\r\n if (!this.multiple) {\r\n this.uploadSingleFile(fileContents, fileInfo);\r\n } else if (this.isFileNotDuplicate(fileInfo)) {\r\n this.addMultiAttachments(fileInfo);\r\n }\r\n };\r\n reader.readAsDataURL(file);\r\n }\r\n\r\n private uploadSingleFile(fileContents: string, fileInfo: FileInfo): void {\r\n this.fileNotDuplicated = this.isFileNotDuplicate(fileInfo);\r\n if (!this.fileNotDuplicated) {\r\n return;\r\n }\r\n this.value.fileContents = fileContents;\r\n this.control.setValue(this.value)\r\n this.emitedValue.emit(this.value)\r\n if (this.callApi) {\r\n this.addAttachments()\r\n } else {\r\n this.selectedTemplateAttachment.emit(this.value);\r\n }\r\n }\r\n\r\n private emitEmptyFile(): void {\r\n const emptyObj = {\r\n mimeType: \"\",\r\n fileContents: \"\",\r\n fileName: \"\",\r\n }\r\n this.emit(emptyObj)\r\n this.selectedTemplateAttachment.emit(null);\r\n }\r\n\r\n processAttachments(field: any, allowMultiAttachments: boolean) {\r\n const data = {\r\n \"fileDescription\": \"\",\r\n \"attachmentcomment\": \"\",\r\n \"fileName\": field.fileName,\r\n \"mimeType\": field.mimeType,\r\n \"fileContents\": field.fileContents,\r\n }\r\n this.uploading = true;\r\n this.coreService.getAttachments(data).pipe(\r\n takeUntilDestroyed(this.destroyRef)\r\n ).subscribe({\r\n next: (form: any) => {\r\n const newObj = {\r\n \"fileName\": field.fileName,\r\n \"attachmentId\": form.attachment.attachmentId,\r\n \"mimeType\": form.attachment.mimeType,\r\n \"fileContents\": field.fileContents\r\n }\r\n if (allowMultiAttachments) {\r\n if (this.allowFileContentsWithMultiAttachments) newObj['fileContents'] = field.fileContents;\r\n this.displayedFiles = this.displayedFiles?.length ? this.displayedFiles : []\r\n this.displayedFiles.push(newObj);\r\n this.allAttachments.push(newObj);\r\n this.emit(this.displayedFiles);\r\n this.control.setValue(this.displayedFiles)\r\n } else {\r\n this.control.setValue(newObj)\r\n this.emitedValue.emit(newObj)\r\n }\r\n this.uploading = false;\r\n },\r\n error: (err) => {\r\n this.uploading = false;\r\n err?.error?.meta?.messages?.forEach((msg) => {\r\n this.toasterService.error(msg.message);\r\n });\r\n }\r\n });\r\n }\r\n\r\n addAttachments() {\r\n this.processAttachments(this.control.value, false);\r\n }\r\n\r\n addMultiAttachments(field: any) {\r\n this.processAttachments(field, true);\r\n }\r\n\r\n\r\n isFileNotDuplicate(file: FileInfo): boolean {\r\n if (this.allAttachments?.length) {\r\n return this.allAttachments?.findIndex(($file) => (file.fileName === $file.fileName)) === -1;\r\n } else {\r\n return true;\r\n }\r\n }\r\n\r\n\r\n isValidMimeType(value: any) {\r\n if (this.attachType == 'pdf') {\r\n return ([] as string[]).concat(...Object.values(this.validPdfTypes)).includes(value);\r\n } else if (this.attachType == 'image') {\r\n return ([] as string[]).concat(...Object.values(this.validImageTypes)).includes(value);\r\n } else {\r\n return true\r\n }\r\n }\r\n\r\n isValidExtension(value: string, type: string) {\r\n if (type == 'image') {\r\n return [].concat(...Object.keys(this.validImageTypes)).includes(value.toLowerCase());\r\n } else if (type == \"imagePdf\") {\r\n return [].concat(...Object.keys(this.validImgPdfTypes)).includes(value.toLowerCase());\r\n } else if (type === \"pdf\") {\r\n return [].concat(...Object.keys(this.validPdfTypes)).includes(value.toLowerCase());\r\n } else {\r\n return [].concat(...Object.keys(this.validFileTypes)).includes(value.toLowerCase());\r\n }\r\n }\r\n\r\n removeAttachedFile() {\r\n this.control.setValue(new FileInfo(null, null, null, null, null))\r\n if (this.inputFile) {\r\n this.inputFile.nativeElement.value = null;\r\n }\r\n this.emit(this.value)\r\n this.control.reset()\r\n this.selectedTemplateAttachment.emit(null);\r\n }\r\n\r\n downloadFile(event, field) {\r\n if (this.customDownload) {\r\n this.downloadActionClicked.emit(field)\r\n } else {\r\n this.coreService.loadFile(field.attachmentId).pipe(\r\n takeUntilDestroyed(this.destroyRef)\r\n ).subscribe(\r\n (responseObject: { body: any; }) => {\r\n const fileInformation = responseObject.body;\r\n this.coreService.saveFile(fileInformation)\r\n },\r\n error => {\r\n this.toasterService.error(error.error?.['message'])\r\n }\r\n );\r\n\r\n }\r\n }\r\n\r\n private emit<T>(value: T | T[]) {\r\n if (this.preventFileContents) {\r\n value = JSON.parse(JSON.stringify(value));\r\n this.deleteFileContents(value);\r\n }\r\n }\r\n\r\n private deleteFileContents(data: any) {\r\n if (typeof data === 'object' && 'fileContents' in data) {\r\n delete data.fileContents;\r\n } else if (Array.isArray(data)) {\r\n data.forEach(elem => this.deleteFileContents(elem));\r\n }\r\n }\r\n}\r\n\r\nclass FileInfo {\r\n constructor(\r\n public fileName: string,\r\n public name: string,\r\n public mimeType: string,\r\n public fileContents: string,\r\n public filesize: string\r\n ) { }\r\n}\r\n","@if (!isReadOnly) {\r\n <ng-container>\r\n @if(label) {\r\n <app-form-label [label]=\"label\" [optional]=\"!control?.hasValidator(Validators['required'])\" [tooltip]=\"tooltip\"></app-form-label>\r\n }\r\n <section\r\n (click)=\"fileAttached.click()\"\r\n [ngClass]=\"insideTable ? 'file-uploader-table' : 'file-uploader'\" class=\" mb-2\"\r\n [class.insideTableStyle]=\"insideTable\">\r\n <div\r\n [ngClass]=\"insideTable ? 'file-uploader-table-dev' : ''\" class=\"file-uploader-input\"\r\n >\r\n @if (!uploading) {\r\n <div class=\"icon mb-1\">\r\n <svg\r\n [ngClass]=\"insideTable ? 'file-uploader-table-svg' : ''\" width=\"41\" height=\"38\" viewBox=\"0 0 41 38\"\r\n fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\">\r\n <path\r\n d=\"M0 22.1947V20.6736C0.0971303 20.1019 0.070094 19.5141 0.276371 18.9533C1.28372 16.2086 3.21231 14.5023 6.0421 13.8094C6.70499 13.6472 6.68497 13.6632 6.69899 12.9843C6.73203 11.3321 6.99839 9.71992 7.62423 8.17986C8.86289 5.13678 10.9467 2.83969 13.8816 1.39175C17.168 -0.230424 20.5956 -0.450719 24.0553 0.81598C27.4929 2.07467 29.9622 4.41581 31.4802 7.74828C31.7786 8.40316 32.027 9.08307 32.1712 9.79202C32.2402 10.1315 32.4035 10.2566 32.7529 10.3107C36.7012 10.9165 39.3358 13.1255 40.6946 16.8735C40.9069 17.4603 40.9199 18.0731 40.9599 18.6829C40.9649 18.7601 40.9389 18.8442 41 18.9113V20.5124C40.9109 20.995 40.969 21.4937 40.8608 21.9734C40.5244 23.4614 39.8454 24.7821 38.8501 25.9297C37.4522 27.5418 35.7059 28.5882 33.6161 29.0519C32.791 29.2351 31.9499 29.2521 31.1117 29.2922C30.6571 29.3142 30.584 29.193 30.592 28.7484C30.6451 25.8446 29.802 23.2571 27.8624 21.0591C25.9979 18.9463 23.6597 17.7167 20.867 17.4012C18.8553 17.1739 16.9057 17.4593 15.0612 18.3395C11.8319 19.8816 9.81416 22.4069 8.96102 25.8696C8.74273 26.7538 8.68265 27.658 8.70568 28.5702C8.7217 29.2111 8.60254 29.3122 7.95968 29.2972C5.95098 29.2511 4.10551 28.7234 2.58146 27.3596C1.07644 26.0168 0.0680913 24.3996 0.0400537 22.3028C0.0400537 22.2607 0.0250336 22.2257 0 22.1937V22.1947Z\"\r\n fill=\"#DEE0E2\"/>\r\n <path\r\n d=\"M29.0303 28.2632C29.0604 33.4031 24.8657 37.6187 19.6838 37.6548C14.5169 37.6908 10.2852 33.4952 10.2521 28.3042C10.2201 23.1403 14.4297 18.9126 19.6227 18.8946C24.8037 18.8766 28.9993 23.0542 29.0303 28.2632Z\"\r\n fill=\"#8E9AA0\"/>\r\n <path\r\n d=\"M20.5573 25.2644C20.4622 25.4477 20.5012 25.5939 20.5012 25.734C20.4982 28.2154 20.5002 30.6957 20.4982 33.177C20.4982 33.8099 20.2339 34.1704 19.7462 34.2234C19.2645 34.2765 18.88 33.9831 18.8169 33.5025C18.7959 33.3443 18.7969 33.183 18.7969 33.0238C18.7959 30.5826 18.7969 28.1423 18.7969 25.701C18.7969 25.5728 18.7969 25.4447 18.7969 25.2003C18.1971 25.8031 17.6774 26.3288 17.1527 26.8505C17.0115 26.9907 16.8683 27.1349 16.7061 27.2471C16.3566 27.4864 15.9341 27.4413 15.6457 27.154C15.3643 26.8746 15.3203 26.442 15.5486 26.0925C15.6207 25.9824 15.7128 25.8832 15.8069 25.7891C16.8613 24.7307 17.9167 23.6733 18.9732 22.6179C19.4017 22.1893 19.8784 22.1763 20.3039 22.5988C21.3914 23.6803 22.4739 24.7667 23.5533 25.8572C23.9809 26.2898 24.0129 26.8065 23.6534 27.167C23.299 27.5214 22.7753 27.4844 22.3437 27.0568C21.7499 26.47 21.1661 25.8732 20.5603 25.2644H20.5573Z\"\r\n fill=\"#F9F9F9\"/>\r\n </svg>\r\n </div>\r\n }\r\n @if (uploading) {\r\n <ds-icon class=\"sfi sfi-spinner d-inline-block spin fc-coral fs-30-imp\"></ds-icon>\r\n }\r\n\r\n <div class=\"f-14 fc-black fw-normal\">\r\n <span class=\"fc-coral fw-medium\">{{ 'browse' | translate }}</span>\r\n </div>\r\n <div class=\"fs-10 fc-dark-gray\">\r\n {{ allowedExtensions ? allowedExtensions : '' }}\r\n </div>\r\n\r\n <input type=\"file\" #inputFile [accept]=\"accept\" class=\"d-none\" #fileAttached (change)=\"onValueChange($event)\">\r\n </div>\r\n </section>\r\n\r\n @if (hints) {\r\n <div class=\"d-flex align-items-center gap-3 mb-3\">\r\n @for (hint of hints; track hint) {\r\n <ng-container>\r\n <div class=\"d-flex align-items-center gap-1 fs-12\">\r\n <ds-icon\r\n icon=\"{{ hint.valid ? 'check-circle-f' : 'check-circle-o' }}\"\r\n class=\"fs-24 {{ hint.valid ? 'fc-green' : 'fc-dark-gray' }}\"></ds-icon>\r\n <span class=\"{{ hint.valid ? 'fc-black' : 'fc-dark-gray' }}\">{{ hint.label }}</span>\r\n </div>\r\n </ng-container>\r\n }\r\n </div>\r\n }\r\n\r\n @if (hint) {\r\n <mat-hint class=\"d-flex align-items-center gap-1\">\r\n <ds-icon icon=\"info\" class=\"fs-17 fc-dark-gray\"></ds-icon>\r\n <span class=\"fs-12 fc-black line-height-1\">{{ hint }}</span>\r\n </mat-hint>\r\n }\r\n\r\n @if (multiple) {\r\n <section class=\"files-list\">\r\n @for (file of displayedFiles; track file; let i = $index) {\r\n <div class=\"file-item-container\">\r\n <ds-attachments\r\n [matTooltip]=\"file?.fileName\"\r\n [file]=\"{ name: file.fileName }\"\r\n (downloadEvent)=\"attachmentAction('download', i, file)\"\r\n (deleteEvent)=\"attachmentAction('delete', i, file)\"\r\n [showActions]=\"showActions\">\r\n </ds-attachments>\r\n </div>\r\n }\r\n </section>\r\n }\r\n\r\n @if (!multiple && (control?.value?.fileContents || control?.value?.attachmentId)) {\r\n <section class=\"files-list\">\r\n <div class=\"file-item-container file-item-container-actions\">\r\n <ds-attachments\r\n [matTooltip]=\"control?.value?.fileName\"\r\n [file]=\"{ name: control?.value.fileName }\"\r\n (downloadEvent)=\"attachmentAction('download', null, control?.value)\"\r\n (deleteEvent)=\"attachmentAction('delete', null, control?.value)\"\r\n [showActions]=\"showActions\">\r\n </ds-attachments>\r\n </div>\r\n </section>\r\n }\r\n\r\n <div class=\"attachments-error\">\r\n @if (!validExtension) {\r\n <section class=\"files-list mt-2\">\r\n <div class=\"file-item-container \">\r\n <ds-attachments\r\n [file]=\"wrongFile\" error [showActions]=\"false\">\r\n </ds-attachments>\r\n </div>\r\n </section>\r\n }\r\n\r\n @if (!allowedFileSize) {\r\n <mat-error class=\"fs-12 my-2\">\r\n {{ maxSize === \"0.3\" ? ('support3' | translate ): ('support2' | translate) + maxSize + ('mb' | translate) }}\r\n </mat-error>\r\n }\r\n\r\n @if (!fileNotDuplicated) {\r\n <mat-error class=\"fs-12 my-2\">{{ 'duplicated-error' | translate }}</mat-error>\r\n }\r\n\r\n @if (lengthError) {\r\n <mat-error class=\"fs-12\">{{ 'lengthError' | translate }} :{{ maxLength }}</mat-error>\r\n }\r\n\r\n @if (showErrorMessage) {\r\n <!-- <mat-error class=\"fs-12\">{{errorMessage}} </mat-error> -->\r\n }\r\n </div>\r\n </ng-container>\r\n}\r\n\r\n@if (isReadOnly) {\r\n <ng-container>\r\n @if (multiple && displayedFiles) {\r\n <ng-container>\r\n <div class=\"info-item\">\r\n @if (label) {\r\n <span class=\"name\">{{ label }}</span>\r\n }\r\n @if (displayedFiles?.length) {\r\n <span>\r\n @for (file of displayedFiles; track file; let i = $index) {\r\n <div class=\"file-item-container\">\r\n <ds-attachments\r\n [matTooltip]=\"file?.fileName\"\r\n class=\"my-2\" [file]=\"{ name: file.fileName }\" readOnly (downloadEvent)=\"downloadFile($event, file)\"\r\n [showActions]=\"showActions\">\r\n </ds-attachments>\r\n </div>\r\n }\r\n </span>\r\n }\r\n @if (!displayedFiles?.length) {\r\n <span class=\"disc\">\r\n {{ 'NoAttachments' | translate }}\r\n </span>\r\n }\r\n </div>\r\n </ng-container>\r\n }\r\n\r\n @if (!multiple && (control?.value?.['attachmentId'] || control?.value?.['fileContents'])) {\r\n <ng-container>\r\n <div class=\"info-item\">\r\n @if (label) {\r\n <span class=\"name\">{{ label }}</span>\r\n }\r\n <div class=\"disc file-item-container file-item-container-actions\" [ngClass]=\"{'insideTableWidth': insideTable}\">\r\n @if (control?.value?.['attachmentId'] || control?.value?.['fileContents']) {\r\n <ds-attachments\r\n [matTooltip]=\"control?.value?.fileName\" [file]=\"{ name: control?.value.fileName }\" [showActions]=\"showActions\"\r\n (downloadEvent)=\"attachmentAction('download', null, control?.value)\"\r\n (deleteEvent)=\"attachmentAction('delete', null, control?.value)\"\r\n readOnly>\r\n </ds-attachments>\r\n }\r\n </div>\r\n </div>\r\n </ng-container>\r\n }\r\n </ng-container>\r\n}","import {\r\n Component,\r\n CUSTOM_ELEMENTS_SCHEMA,\r\n DestroyRef,\r\n forwardRef,\r\n inject,\r\n Inject,\r\n Injector,\r\n Input,\r\n} from '@angular/core';\r\nimport { TextareaComponent } from '../textarea/textarea.component';\r\nimport {\r\n MAT_DIALOG_DATA,\r\n MatDialogActions,\r\n MatDialogClose,\r\n MatDialogContent,\r\n MatDialogModule,\r\n MatDialogRef,\r\n} from '@angular/material/dialog';\r\nimport { NgIf } from '@angular/common';\r\nimport { ControlValueAccessorDirective } from '../control-value-accessor.directive';\r\nimport { Section } from '../../../../interfaces';\r\nimport {\r\n FormBuilder,\r\n FormControl,\r\n FormGroup,\r\n NG_VALUE_ACCESSOR,\r\n ReactiveFormsModule,\r\n Validators,\r\n} from '@angular/forms';\r\nimport { DocsUploaderComponent } from '../doc-uploader/docs-uploader.component';\r\nimport { ToastrService } from 'ngx-toastr';\r\nimport { DomSanitizer } from '@angular/platform-browser';\r\nimport {ActionStateService, CoreI18nService, CoreService} from \"../../../../services\";\r\nimport { takeUntilDestroyed } from '@angular/core/rxjs-interop';\r\nimport {TranslatePipe} from \"../../../../pipes/translate.pipe\";\r\n\r\n@Component({\r\n selector: 'app-add-attachment-section',\r\n templateUrl: './add-attachment-section.component.html',\r\n styleUrls: ['./add-attachment-section.component.scss'],\r\n standalone: true,\r\n schemas: [CUSTOM_ELEMENTS_SCHEMA],\r\n imports: [\r\n TextareaComponent,\r\n MatDialogContent,\r\n DocsUploaderComponent,\r\n MatDialogActions,\r\n NgIf,\r\n MatDialogModule,\r\n ReactiveFormsModule,\r\n MatDialogClose,\r\n TranslatePipe\r\n ],\r\n providers: [\r\n {\r\n provide: NG_VALUE_ACCESSOR,\r\n useExisting: forwardRef(() => AttachmentSectionDataComponent),\r\n multi: true,\r\n },\r\n ],\r\n})\r\nexport class AttachmentSectionDataComponent<\r\n Type\r\n> extends ControlValueAccessorDirective<Type> {\r\n popupData: any = {};\r\n popupDataOrg: any = {};\r\n uploading: boolean;\r\n editMode: boolean;\r\n @Input() hasColumnBreak: boolean;\r\n @Input() section: Section;\r\n formGroup: FormGroup;\r\n destroyRef = inject(DestroyRef);\r\n\r\n\r\n constructor(\r\n injector: Injector,\r\n i18n: CoreI18nService,\r\n toasterService: ToastrService,\r\n coreService: CoreService,\r\n sanitizer: DomSanitizer,\r\n fb: FormBuilder,\r\n actionStateService: ActionStateService,\r\n public dialogRef: MatDialogRef<any>,\r\n @Inject(MAT_DIALOG_DATA) public dialogData: any\r\n ) {\r\n super(injector, i18n, toasterService, coreService, sanitizer, fb, actionStateService);\r\n }\r\n\r\n override ngOnInit() {\r\n // super.ngOnInit()\r\n this.createForm();\r\n if (this.dialogData?.attachmentListData) {\r\n this.popupData = this.dialogData.attachmentListData;\r\n this.popupDataOrg = Object.assign({}, this.popupData);\r\n this.formGroup.controls['file'].setValue(\r\n this.dialogData.attachmentListData\r\n );\r\n this.formGroup.controls['description'].setValue(\r\n this.dialogData.attachmentListData.fileDescription\r\n );\r\n this.formGroup.controls['comments'].setValue(\r\n this.dialogData.attachmentListData.fileComments\r\n );\r\n this.editMode = true;\r\n }\r\n }\r\n createForm() {\r\n this.formGroup = this.fb.group({\r\n file: new FormControl(null, Validators.required),\r\n description: new FormControl(null,this.dialogData.descriptionRequired ? Validators.required: null),\r\n comments: new FormControl(null, this.dialogData.commentsRequired ? Validators.required: null),\r\n });\r\n }\r\n\r\n close() {\r\n this.dialogRef.close(this.popupDataOrg);\r\n }\r\n\r\n handleEmitValue(data: any, fieldName: string) {\r\n this.popupData[fieldName] = data;\r\n }\r\n\r\n handleAttachmentEmitValue(data: any) {\r\n this.popupData = {\r\n fileContents: data?.fileContents,\r\n fileName: data?.fileName,\r\n mimeType: data?.mimeType,\r\n fileDescription: this.popupData?.fileDescription,\r\n attachmentcomment: this.popupData?.attachmentcomment,\r\n fileComments: this.popupData?.attachmentcomment,\r\n };\r\n }\r\n\r\n addAttachments() {\r\n const data = {\r\n fileDescription: this.formGroup.controls['description'].value,\r\n attachmentcomment: this.formGroup.controls['comments'].value,\r\n fileComments: this.formGroup.controls['comments'].value,\r\n fileName: this.formGroup.controls['file'].value.fileName,\r\n mimeType: this.formGroup.controls['file'].value.mimeType,\r\n fileContents: this.formGroup.controls['file'].value.fileContents,\r\n };\r\n this.uploading = true;\r\n this.coreService.getAttachments(data).pipe(\r\n takeUntilDestroyed(this.destroyRef)\r\n ).subscribe((Response: any) => {\r\n this.uploading = false;\r\n if (Response) {\r\n const newObj = {\r\n fileDescription: this.formGroup.controls['description'].value,\r\n attachmentcomment: this.formGroup.controls['comments'].value,\r\n fileComments: this.formGroup.controls['comments'].value,\r\n fileName: this.formGroup.controls['file'].value.fileName,\r\n attachmentId: Response.attachment.attachmentId,\r\n mimeType: this.formGroup.controls['file'].value.mimeType,\r\n };\r\n this.dialogRef.close(newObj);\r\n }\r\n });\r\n }\r\n}\r\n","<div class=\"popup-container\">\r\n <div class=\"d-flex align-items-center justify-content-end\" mat-dialog-title>\r\n <h3 class=\"mb-0 font-16 fw-medium\">{{ 'addAttachments' | translate }}</h3>\r\n <ds-button icon matDialogClose>\r\n <ds-icon icon=\"close\" class=\"fs-20 fc-black\"></ds-icon>\r\n </ds-button>\r\n </div>\r\n <mat-dialog-content>\r\n <div class=\"px-md-4 mt-3\">\r\n <form [formGroup]=\"formGroup\">\r\n <app-file-uploader class=\"section-item full\" [field]=\"popupData\" name=\"file\" [attachments]=\"dialogData?.attachments\"\r\n [labelTextReadMode]=\"'Attachment' | translate\" [labelTextWriteMode]=\"'Attachment' | translate\"\r\n [hasColumnBreak]=\"false\" [label]=\"'Attachment' | translate\" [required]=\"true\" [multiple]=\"false\" \r\n [allowedExtensions]=\"dialogData?.data\"\r\n [isReadOnly]=\"section?.header?.readOnly\" [showActions]=\"false\"\r\n formControlName=\"file\">\r\n </app-file-uploader>\r\n\r\n <app-textarea class=\"section-item d-block mt-4 mb-4\" [section]=\"section\" [field]=\"popupData?.fileDescription\" name=\"fileDescription\"\r\n [labelTextReadMode]=\"'description' | translate\" [labelTextWriteMode]=\"'description' | translate\"\r\n [hasColumnBreak]=\"false\" (emitedValue)=\"handleEmitValue($event,'fileDescription')\"\r\n [label]=\"'description' | translate\" [required]=\"dialogData?.isRequired\" [minLength]='1' [maxLength]='500'\r\n [isReadOnly]=\"section?.header?.readOnly\" [errorMessage]=\"'lenghtMin1Max500' | translate\"\r\n formControlName=\"description\">\r\n </app-textarea>\r\n\r\n <app-textarea class=\"section-item\" [section]=\"section\" [field]=\"popupData?.attachmentcomment\" name=\"attachmentcomment\"\r\n [labelTextReadMode]=\"'comments' | translate\" [labelTextWriteMode]=\"'comments' | translate\"\r\n [hasColumnBreak]=\"false\" (emitedValue)=\"handleEmitValue($event,'attachmentcomment')\" \r\n [label]=\"'comments' | translate\" [required]=\"false\" [minLength]='1' [maxLength]='500' \r\n [isReadOnly]=\"section?.header?.readOnly\" [errorMessage]=\"'lenghtMin1Max500' | translate\"\r\n formControlName=\"comments\">\r\n </app-textarea>\r\n </form>\r\n </div>\r\n </mat-dialog-content>\r\n <mat-dialog-actions class=\"default-footer justify-content-end gap-3\">\r\n <ds-button shape=\"outline\" matDialogClose [disabled]=\"uploading\">{{ 'cancel' | translate }}</ds-button>\r\n <ds-button (click)=\"addAttachments()\" [loading]=\"uploading\"\r\n [disabled]=\"(!(formGroup?.value?.file?.fileContents || formGroup?.value?.file?.attachmentId ) || (dialogData?.isRequired && !formGroup?.value?.description) || uploading || !formGroup.valid)\">\r\n <ng-container *ngIf=\"!editMode; else editTemplate\">\r\n <span>{{ 'add' | translate }}</span>\r\n </ng-container>\r\n <ng-template #editTemplate>\r\n <span>{{ 'edit' | translate }}</span>\r\n </ng-template>\r\n </ds-button>\r\n </mat-dialog-actions>\r\n</div>","import {AfterViewInit, Component, CUSTOM_ELEMENTS_SCHEMA, DestroyRef, EventEmitter, forwardRef, inject, Input, OnDestroy, Output, ViewChild} from '@angular/core';\r\nimport {AttachmentSectionDataComponent} from '../add-attachment-section/add-attachment-section.component';\r\nimport {CdkDrag, CdkDragDrop, CdkDropList, moveItemInArray} from '@angular/cdk/drag-drop';\r\nimport {SatPopoverModule} from '@ncstate/sat-popover';\r\nimport {MatTooltip} from \"@angular/material/tooltip\";\r\nimport {NgClass, NgForOf, NgIf, SlicePipe} from \"@angular/common\";\r\nimport {DocsUploaderComponent} from '../doc-uploader/docs-uploader.component';\r\nimport {DeleteDialogComponent} from \"../../dialogs/delete-dialog/delete-dialog.component\";\r\nimport {ControlValueAccessorDirective} from \"../control-value-accessor.directive\";\r\nimport {MatDialog} from \"@angular/material/dialog\";\r\nimport {NG_VALUE_ACCESSOR} from '@angular/forms';\r\nimport {MatPaginator} from \"@angular/material/paginator\";\r\nimport {\r\n MatCell,\r\n MatCellDef,\r\n MatColumnDef,\r\n MatHeaderCell,\r\n MatHeaderCellDef,\r\n MatHeaderRow,\r\n MatHeaderRowDef,\r\n MatRow,\r\n MatRowDef,\r\n MatTable,\r\n MatTableDataSource\r\n} from \"@angular/material/table\";\r\nimport { FormLabelComponent } from '../form-label/form-label.component';\r\nimport { takeUntilDestroyed } from '@angular/core/rxjs-interop';\r\nimport {TranslatePipe} from \"../../../../pipes/translate.pipe\";\r\n\r\n\r\n@Component({\r\n selector: 'app-attachment-section',\r\n templateUrl: './attachment-section.component.html',\r\n styleUrls: ['./attachment-section.component.scss'],\r\n schemas: [CUSTOM_ELEMENTS_SCHEMA],\r\n providers: [\r\n {\r\n provide: NG_VALUE_ACCESSOR,\r\n useExisting: forwardRef(() => AttachmentSectionComponent),\r\n multi: true,\r\n },\r\n ],\r\n imports: [\r\n SatPopoverModule,\r\n MatTooltip,\r\n NgClass,\r\n CdkDropList,\r\n DocsUploaderComponent,\r\n CdkDrag,\r\n SlicePipe,\r\n MatPaginator,\r\n MatTable,\r\n MatColumnDef,\r\n MatCell,\r\n MatCellDef,\r\n MatHeaderCellDef,\r\n MatHeaderCell,\r\n MatRow,\r\n MatHeaderRow,\r\n MatHeaderRowDef,\r\n MatRowDef,\r\n FormLabelComponent,\r\n TranslatePipe\r\n ],\r\n standalone: true\r\n})\r\nexport class AttachmentSectionComponent extends ControlValueAccessorDirective<any> implements AfterViewInit {\r\n @Input() className = 'info-section';\r\n @Output() downloadActionClicked = new EventEmitter();\r\n @Input() customDownload: boolean;\r\n\r\n @Input() attachmentsMax = 1000;\r\n @Input() isSortable = false;\r\n @Input() downloadAll = false;\r\n popupData: any = {};\r\n @Input() isRequired: boolean = false;\r\n @Input() descriptionRequired: boolean;\r\n @Input() commentsRequired: boolean;\r\n @Input() allowedExtensions = '';\r\n @Output() emitedValue = new EventEmitter();\r\n dialog = inject(MatDialog);\r\n displayedColumns: string[] = [\"index\", \"file\", \"description\", \"comment\", \"actions\"];\r\n dataSource: MatTableDataSource<any>;\r\n @ViewChild('paginator') paginator: MatPaginator;\r\n totalRecords: number = 0;\r\n pageSize: number = 5;\r\n pageNumber: number = 0;\r\n destroyRef = inject(DestroyRef);\r\n\r\n override ngOnInit(): void {\r\n super.ngOnInit()\r\n if (this.control.value) {\r\n this.attachments = this.control.value\r\n }\r\n if (this.attachments) {\r\n this.attachments.forEach(element => {\r\n element.name = element.fileName;\r\n });\r\n }\r\n this.actionStateService.resetAction$\r\n .pipe(takeUntilDestroyed(this.destroyRef))\r\n .subscribe(res => {\r\n if (!this.isReadOnly && this.control.enabled) {\r\n this.control.reset();\r\n }\r\n });\r\n }\r\n\r\n ngAfterViewInit() {\r\n this.addDataToTable();\r\n this.paginator._intl.itemsPerPageLabel = this.i18n.translate('itemsPerPage')\r\n }\r\n\r\n onPaginateChange(event: any) {\r\n this.pageNumber = event.pageIndex\r\n }\r\n\r\n drop(event: CdkDragDrop<string[]>) {\r\n moveItemInArray(this.attachments, event.previousIndex, event.currentIndex);\r\n }\r\n\r\n\r\n resetAttachmentData() {\r\n if (!this.isReadOnly) {\r\n this.attachments = [];\r\n this.emitedValue.emit(this.attachments);\r\n }\r\n }\r\n\r\n addDataToTable(){\r\n this.dataSource = new MatTableDataSource(this.attachments);\r\n this.totalRecords = this.dataSource.data.length;\r\n this.dataSource.paginator = this.paginator;\r\n }\r\n\r\n handleEmitValue(data: any, fieldName: string) {\r\n this.popupData[fieldName] = data;\r\n }\r\n\r\n addAttachment(): void {\r\n const dialogRef = this.dialog.open(AttachmentSectionDataComponent, {\r\n panelClass: ['main-popup', 'add-attachment-dialog'],\r\n data: {\r\n attachmentListData: null,\r\n data: this.allowedExtensions,\r\n isRequired: this.isRequired,\r\n multiple: this.multiple,\r\n attachments: this.attachments,\r\n descriptionRequired: this.descriptionRequired,\r\n commentsRequired: this.commentsRequired\r\n }\r\n });\r\n dialogRef.afterClosed().subscribe((resultData) => {\r\n if (resultData != 'close') {\r\n if (resultData?.attachmentId) {\r\n this.attachments.push(resultData);\r\n this.addDataToTable();\r\n\r\n }\r\n }\r\n this.control.setValue(this.attachments)\r\n });\r\n }\r\n\r\n deleteAttachments(index: number, item: any) {\r\n const dialogRef = this.dialog.open(DeleteDialogComponent, {\r\n panelClass: ['main-popup', 'add-attachment-dialog']\r\n });\r\n dialogRef.afterClosed().subscribe((resultData) => {\r\n if (resultData == 'yes') {\r\n this.deleteAttachment(index, item);\r\n }\r\n });\r\n }\r\n\r\n deleteAttachment(index: number, item: any) {\r\n this.attachments = this.attachments.filter((row: any) => {\r\n return row.attachmentId != item.attachmentId;\r\n });\r\n this.addDataToTable();\r\n this.control.setValue(this.attachments)\r\n }\r\n\r\n editRow(rowData, index): void {\r\n const dialogRef = this.dialog.open(AttachmentSectionDataComponent, {\r\n panelClass: ['main-popup', 'add-attachment-dialog'],\r\n data: {\r\n attachmentListData: Object.assign(rowData),\r\n data: this.allowedExtensions,\r\n isRequired: this.isRequired,\r\n multiple: this.multiple,\r\n attachments: this.attachments,\r\n\r\n }\r\n });\r\n dialogRef.afterClosed().subscribe((resultData) => {\r\n if (resultData != 'close') {\r\n if (resultData?.attachmentId) {\r\n this.attachments[index] = resultData;\r\n this.emitedValue.emit(this.attachments);\r\n this.addDataToTable();\r\n }\r\n }\r\n });\r\n }\r\n\r\n downloadAllAttachments(event) {\r\n this.loading = true\r\n const downloads = this.attachments.map((file) => this.downloadFile(event, file));\r\n Promise.all(downloads)\r\n .then(() => {\r\n this.loading = false\r\n })\r\n .catch((error) => {\r\n this.loading = false\r\n });\r\n }\r\n\r\n downloadFile(event, field): Promise<void> {\r\n return new Promise((resolve, reject) => {\r\n this.coreService.loadFile(field.attachmentId).pipe(\r\n takeUntilDestroyed(this.destroyRef)\r\n ).subscribe(\r\n (responseObject: { body: any; }) => {\r\n const fileInformation = responseObject.body;\r\n this.coreService.saveFile(fileInformation)\r\n resolve();\r\n },\r\n error => {\r\n this.toasterService.error(error.error?.['message']);\r\n }\r\n );\r\n });\r\n }\r\n\r\n customDownloadAction(event){\r\n this.downloadActionClicked.emit(event);\r\n }\r\n\r\n}\r\n","<div class=\"mt-2 p-0\">\r\n @if(label){\r\n <app-form-label [label]=\"label\" [optional]=\"!control.hasValidator(Validators['required']) && !isReadOnly\" [tooltip]=\"tooltip\"></app-form-label>\r\n }\r\n\r\n @if (!attachments?.length && !isReadOnly) {\r\n <section\r\n [ngClass]=\"insideTable ? 'file-uploader-table' : 'file-uploader'\"\r\n class=\"mb-2\"\r\n [class.insideTableStyle]=\"insideTable\"\r\n (click)=\"addAttachment()\">\r\n <div\r\n [ngClass]=\"insideTable ? 'file-uploader-table-dev' : ''\"\r\n class=\"file-uploader-input\">\r\n <div class=\"icon mb-1\">\r\n <svg\r\n [ngClass]=\"insideTable ? 'file-uploader-table-svg' : ''\"\r\n width=\"41\"\r\n height=\"38\"\r\n viewBox=\"0 0 41 38\"\r\n fill=\"none\"\r\n xmlns=\"http://www.w3.org/2000/svg\">\r\n <path\r\n d=\"M0 22.1947V20.6736C0.0971303 20.1019 0.070094 19.5141 0.276371 18.9533C1.28372 16.2086 3.21231 14.5023 6.0421 13.8094C6.70499 13.6472 6.68497 13.6632 6.69899 12.9843C6.73203 11.3321 6.99839 9.71992 7.62423 8.17986C8.86289 5.13678 10.9467 2.83969 13.8816 1.39175C17.168 -0.230424 20.5956 -0.450719 24.0553 0.81598C27.4929 2.07467 29.9622 4.41581 31.4802 7.74828C31.7786 8.40316 32.027 9.08307 32.1712 9.79202C32.2402 10.1315 32.4035 10.2566 32.7529 10.3107C36.7012 10.9165 39.3358 13.1255 40.6946 16.8735C40.9069 17.4603 40.9199 18.0731 40.9599 18.6829C40.9649 18.7601 40.9389 18.8442 41 18.9113V20.5124C40.9109 20.995 40.969 21.4937 40.8608 21.9734C40.5244 23.4614 39.8454 24.7821 38.8501 25.9297C37.4522 27.5418 35.7059 28.5882 33.6161 29.0519C32.791 29.2351 31.9499 29.2521 31.1117 29.2922C30.6571 29.3142 30.584 29.193 30.592 28.7484C30.6451 25.8446 29.802 23.2571 27.8624 21.0591C25.9979 18.9463 23.6597 17.7167 20.867 17.4012C18.8553 17.1739 16.9057 17.4593 15.0612 18.3395C11.8319 19.8816 9.81416 22.4069 8.96102 25.8696C8.74273 26.7538 8.68265 27.658 8.70568 28.5702C8.7217 29.2111 8.60254 29.3122 7.95968 29.2972C5.95098 29.2511 4.10551 28.7234 2.58146 27.3596C1.07644 26.0168 0.0680913 24.3996 0.0400537 22.3028C0.0400537 22.2607 0.0250336 22.2257 0 22.1937V22.1947Z\"\r\n fill=\"#DEE0E2\"/>\r\n <path\r\n d=\"M29.0303 28.2632C29.0604 33.4031 24.8657 37.6187 19.6838 37.6548C14.5169 37.6908 10.2852 33.4952 10.2521 28.3042C10.2201 23.1403 14.4297 18.9126 19.6227 18.8946C24.8037 18.8766 28.9993 23.0542 29.0303 28.2632Z\"\r\n fill=\"#8E9AA0\"/>\r\n <path\r\n d=\"M20.5573 25.2644C20.4622 25.4477 20.5012 25.5939 20.5012 25.734C20.4982 28.2154 20.5002 30.6957 20.4982 33.177C20.4982 33.8099 20.2339 34.1704 19.7462 34.2234C19.2645 34.2765 18.88 33.9831 18.8169 33.5025C18.7959 33.3443 18.7969 33.183 18.7969 33.0238C18.7959 30.5826 18.7969 28.1423 18.7969 25.701C18.7969 25.5728 18.7969 25.4447 18.7969 25.2003C18.1971 25.8031 17.6774 26.3288 17.1527 26.8505C17.0115 26.9907 16.8683 27.1349 16.7061 27.2471C16.3566 27.4864 15.9341 27.4413 15.6457 27.154C15.3643 26.8746 15.3203 26.442 15.5486 26.0925C15.6207 25.9824 15.7128 25.8832 15.8069 25.7891C16.8613 24.7307 17.9167 23.6733 18.9732 22.6179C19.4017 22.1893 19.8784 22.1763 20.3039 22.5988C21.3914 23.6803 22.4739 24.7667 23.5533 25.8572C23.9809 26.2898 24.0129 26.8065 23.6534 27.167C23.299 27.5214 22.7753 27.4844 22.3437 27.0568C21.7499 26.47 21.1661 25.8732 20.5603 25.2644H20.5573Z\"\r\n fill=\"#F9F9F9\"/>\r\n </svg>\r\n </div>\r\n <div class=\"f-14 fc-black fw-normal\">\r\n <span class=\"fc-coral fw-medium\">{{ 'browse' | translate }}</span>\r\n </div>\r\n <div class=\"fs-10 fc-dark-gray\">\r\n {{ 'addMultiAttachments' | translate }}\r\n </div>\r\n </div>\r\n </section>\r\n }\r\n\r\n @if (attachments?.length) {\r\n <div\r\n class=\"table-responsive full\"\r\n cdkDropList\r\n [cdkDropListData]=\"attachments\"\r\n (cdkDropListDropped)=\"drop($event)\"\r\n >\r\n <table mat-table [dataSource]=\"dataSource\">\r\n\r\n <!-- index Column -->\r\n <ng-container matColumnDef=\"index\">\r\n <th mat-header-cell *matHeaderCellDef>\r\n <ds-button\r\n [matTooltip]=\"'downloadAll' | translate\"\r\n square icon size=\"small\"\r\n (click)=\"downloadAllAttachments($event)\"\r\n class=\"icon-btn-shadow\">\r\n @if (loading) {\r\n <ds-icon class=\"sfi sfi-spinner d-inline-block spin fc-coral fs-30-imp\"></ds-icon>\r\n } @else {\r\n <ds-icon\r\n icon=\"download\"\r\n class=\"fs-20 fs-md-17 fc-purple\"></ds-icon>\r\n }\r\n </ds-button>\r\n </th>\r\n <td mat-cell *matCellDef=\"let element; let i = index\">{{ i + 1 + pageSize * (pageNumber) }}</td>\r\n </ng-container>\r\n\r\n <!-- Name Column -->\r\n <ng-container matColumnDef=\"file\">\r\n <th mat-header-cell *matHeaderCellDef>{{ 'FileName' | translate }}</th>\r\n <td mat-cell *matCellDef=\"let element\">\r\n <app-file-uploader\r\n [allowedExtensions]=\"allowedExtensions\"\r\n [displayedFiles]=\"[element]\"\r\n name=\"attachment\"\r\n [showActions]=\"true\"\r\n [isReadOnly]=\"true\"\r\n [customDownload]=\"customDownload\"\r\n (downloadActionClicked)=\"customDownloadAction($event)\"\r\n [multiple]=\"true\">\r\n </app-file-uploader>\r\n </td>\r\n </ng-container>\r\n\r\n <!-- Description Column -->\r\n <ng-container matColumnDef=\"description\">\r\n <th mat-header-cell *matHeaderCellDef>{{ 'FileDescription' | translate }}</th>\r\n <td mat-cell *matCellDef=\"let element\">\r\n <a\r\n class=\"fw-medium fc-black underline cursor-pointer fs-12\"\r\n [hidden]=\"!element?.['fileDescription']\"\r\n (click)=\"$event.stopPropagation(); fileDescriptionAnchor.popover.open()\"\r\n [satPopoverAnchor]=\"fileDescriptionPopover\"\r\n #fileDescriptionAnchor=\"satPopoverAnchor\"\r\n [matTooltip]=\"element?.['fileDescription']\">\r\n {{ element?.['fileDescription']?.length > 10 ? (element?.['fileDescription'] | slice : 0 : 10) + '....' : element?.['fileDescription'] }}\r\n </a>\r\n <sat-popover\r\n #fileDescriptionPopover\r\n [anchor]=\"fileDescriptionAnchor\"\r\n [hasBackdrop]=\"true\"\r\n [restoreFocus]=\"false\"\r\n verticalAlign=\"below\"\r\n horizontalAlign=\"center\">\r\n <div class=\"default-popover p-3 fs-14 text-break view-note-popover\">\r\n <bdi class=\"fc-black\">{{ element?.['fileDescription'] }}</bdi>\r\n </div>\r\n </sat-popover>\r\n </td>\r\n </ng-container>\r\n\r\n <!-- Comment Column -->\r\n <ng-container matColumnDef=\"comment\">\r\n <th mat-header-cell *matHeaderCellDef>{{ 'comment' | translate }}</th>\r\n <td mat-cell *matCellDef=\"let element\">\r\n <a\r\n class=\"fw-medium fc-black underline cursor-pointer fs-12\"\r\n [hidden]=\"!element?.['attachmentcomment']\"\r\n (click)=\"$event.stopPropagation(); commentsAnchor.popover.open()\"\r\n [satPopoverAnchor]=\"commentsPopover\"\r\n [matTooltip]=\"element?.['attachmentcomment']\"\r\n #commentsAnchor=\"satPopoverAnchor\">\r\n {{ element?.['attachmentcomment']?.length > 10 ? (element?.['attachmentcomment'] | slice : 0 : 10) + '....' : element?.['attachmentcomment'] }}\r\n </a>\r\n <sat-popover\r\n #commentsPopover\r\n [anchor]=\"commentsAnchor\"\r\n [hasBackdrop]=\"true\"\r\n [restoreFocus]=\"false\"\r\n verticalAlign=\"below\"\r\n horizontalAlign=\"center\">\r\n <div class=\"default-popover p-3 fs-14 text-break view-note-popover\">\r\n <bdi class=\"fc-black\">{{ element?.['attachmentcomment'] }}</bdi>\r\n </div>\r\n </sat-popover>\r\n </td>\r\n </ng-container>\r\n\r\n <ng-container matColumnDef=\"actions\">\r\n <th mat-header-cell *matHeaderCellDef></th>\r\n <td mat-cell *matCellDef=\"let element; let i = index\">\r\n @if (!isReadOnly) {\r\n <td>\r\n <div class=\"d-flex gap-2\">\r\n <ds-button\r\n square\r\n icon\r\n size=\"small\"\r\n (click)=\"deleteAttachments(i, element)\"\r\n class=\"icon-btn-shadow\">\r\n <ds-icon icon=\"trash\" class=\"fs-20 fs-md-17 fc-coral\"></ds-icon>\r\n </ds-button>\r\n\r\n <ds-button\r\n square\r\n icon\r\n size=\"small\"\r\n (click)=\"editRow(element, i)\"\r\n class=\"icon-btn-shadow\">\r\n <ds-icon icon=\"pen\" class=\"fs-20 fs-md-17 fc-purple\"></ds-icon>\r\n </ds-button>\r\n </div>\r\n </td>\r\n }\r\n </td>\r\n </ng-container>\r\n\r\n <tr mat-header-row *matHeaderRowDef=\"displayedColumns\"></tr>\r\n <tr mat-row *matRowDef=\"let row; columns: displayedColumns;\"></tr>\r\n </table>\r\n\r\n <mat-paginator\r\n #paginator\r\n [pageSizeOptions]=\"[5]\"\r\n (page)=\"onPaginateChange($event)\"\r\n [length]=\"attachments.length\"\r\n [pageSize]=\"pageSize\"\r\n showFirstLastButtons></mat-paginator>\r\n </div>\r\n }\r\n\r\n @if (!isReadOnly && attachments?.length && attachments?.length < attachmentsMax) {\r\n <div class=\"text-center full mt-3\">\r\n <ds-button\r\n shape=\"{{ attachments?.length ? 'outline' : '' }}\"\r\n [ngClass]=\"{ 'full-add-btn w-100 pt-1': attachments?.length }\"\r\n (click)=\"addAttachment(); $event.stopPropagation()\">\r\n <ds-icon slot=\"prefix\" icon=\"plus\" class=\"fs-22 pb-1\"></ds-icon>\r\n {{ 'addAttachments' | translate }}\r\n </ds-button>\r\n </div>\r\n }\r\n</div>\r\n","import { Component, CUSTOM_ELEMENTS_SCHEMA, DestroyRef, forwardRef, inject, Input } from '@angular/core';\r\nimport {MatRadioButton, MatRadioGroup} from '@angular/material/radio';\r\nimport {FormsModule, NG_VALUE_ACCESSOR} from \"@angular/forms\";\r\nimport { ControlValueAccessorDirective } from '../control-value-accessor.directive';\r\nimport {NgSwitchCase} from \"@angular/common\";\r\nimport { Shareds } from '../shared-imports';\r\nimport { takeUntilDestroyed } from '@angular/core/rxjs-interop';\r\n\r\n@Component({\r\n selector: 'app-radio',\r\n templateUrl: './radio.component.html',\r\n styleUrls: ['./radio.component.scss'],\r\n schemas: [CUSTOM_ELEMENTS_SCHEMA],\r\n standalone: true,\r\n imports: [\r\n MatRadioButton,\r\n MatRadioGroup,\r\n FormsModule,\r\n NgSwitchCase,\r\n ...Shareds\r\n ],\r\n providers: [\r\n {\r\n provide: NG_VALUE_ACCESSOR,\r\n useExisting: forwardRef(() => RadioComponent),\r\n multi: true,\r\n },\r\n ]\r\n})\r\nexport class RadioComponent<Type> extends ControlValueAccessorDirective<Type> {\r\n @Input() options:any;\r\n destroyRef = inject(DestroyRef);\r\n override ngOnInit(): void {\r\n super.ngOnInit()\r\n this.actionStateService.resetAction$\r\n .pipe(takeUntilDestroyed(this.destroyRef))\r\n .subscribe(res => {\r\n if (!this.isReadOnly && this.control.enabled) {\r\n this.control.reset();\r\n }\r\n });\r\n\r\n }\r\n}\r\n","@if(!isReadOnly){\r\n @if(label){\r\n <app-form-label [label]=\"label\" [optional]=\"!control.hasValidator(Validators['required'])\" [tooltip]=\"tooltip\"></app-form-label>\r\n }\r\n <mat-radio-group\r\n aria-label=\"Select an option\"\r\n [formControl]=\"control\"\r\n id=\"{{ name }}{{ randomID }}\"\r\n name=\"{{ name }}{{ randomID }}\"\r\n >\r\n @for(option of options; track $index){\r\n <mat-radio-button\r\n [disabled]=\"isReadOnly || isDisabled\"\r\n [value]=\"option\"\r\n [checked]=\"option === control.value\"\r\n >\r\n <span class=\"fs-12 fw-medium fc-onyx\">\r\n {{ option }}\r\n </span>\r\n </mat-radio-button>\r\n }\r\n </mat-radio-group>\r\n\r\n}@else if(isReadOnly && control.value) {\r\n <ng-container>\r\n <app-info-item\r\n class=\"info-item w-100\"\r\n [insideTable]=\"insideTable\"\r\n [label]=\"label\"\r\n [type]=\"'toggleBtn'\"\r\n [value]=\"control.value\"\r\n [hasLabel]=\"!!label\"\r\n >\r\n </app-info-item>\r\n </ng-container>\r\n}\r\n","export function mapTo(path: string, source: any, allowUndefined = false, allowArrayWithSingleValue = false): any {\r\n let toBeReturned: any;\r\n if (source) {\r\n const attributes: string[] = path.split('.');\r\n toBeReturned = source[attributes[0]];\r\n for (let i = 1; i < attributes.length && toBeReturned != null; i++) toBeReturned = toBeReturned[attributes[i]];\r\n }\r\n\r\n\r\n // Check if the value is a valid date\r\n if (toBeReturned instanceof Date) {\r\n return toBeReturned;\r\n }\r\n\r\n // Return null for undefined or missing date values\r\n if (toBeReturned === undefined || toBeReturned === null) {\r\n return allowUndefined ? toBeReturned : null;\r\n }\r\n\r\n // Return '-' for other missing values\r\n let toReturn = toBeReturned || toBeReturned === 0 ? toBeReturned : '-';\r\n\r\n\r\n // // to make sure that if the returned data is undefined, we will override it by -\r\n // let toReturn = toBeReturned || toBeReturned === 0 ? toBeReturned : allowUndefined ? toBeReturned : '-';\r\n\r\n if (Array.isArray(toReturn) && toReturn.length == 1 && !allowArrayWithSingleValue) {\r\n toReturn = toReturn[0];\r\n }\r\n\r\n return toReturn;\r\n}","export enum Colors {\r\n RED = '#CA102F',\r\n GREEN = '#02C389',\r\n}","export enum Events {\r\n SCROLL = 'scroll',\r\n ENTER = 'enter',\r\n}","export enum Actions {\r\n VIEW = 'view',\r\n COPY = 'copy',\r\n EDIT = 'edit',\r\n DELETE = 'delete',\r\n DELETEPENDING = 'deletePendingContract',\r\n CHART = 'chart',\r\n APPROVE = 'approve',\r\n REJECT = 'reject',\r\n DETAILS = 'Details',\r\n START = 'Start',\r\n PREPARE = 'Prepare',\r\n CUSTOMACTION = 'customAction',\r\n CUSTOMACTIONMANAGE = 'customActionManage',\r\n CUSTOMACTIONEXTEND = 'customActionExtend',\r\n CUSTOMACTIONDETAILS = 'customActionDetails',\r\n STATUS = 'status',\r\n ALLOCATE = 'allocate'\r\n}\r\n","import {Directive, HostListener, Input} from '@angular/core';\r\nimport {Router} from '@angular/router';\r\n\r\n@Directive({\r\n standalone: true,\r\n selector: '[appSkipLocation]'\r\n})\r\nexport class SkipLocationDirective {\r\n @Input() appSkipLocation: any;\r\n\r\n constructor(private router: Router) {\r\n }\r\n\r\n @HostListener('click')\r\n onClick() {\r\n this.router.navigate([this.appSkipLocation], {skipLocationChange: true});\r\n }\r\n}\r\n","import {Component, CUSTOM_ELEMENTS_SCHEMA, ElementRef, EventEmitter, Input, OnInit, Output, ViewChild} from '@angular/core';\r\nimport {FormBuilder, FormControl, FormGroup, FormsModule, ReactiveFormsModule, Validators} from '@angular/forms';\r\nimport {MatDialog} from '@angular/material/dialog';\r\nimport {MatPaginator, PageEvent} from '@angular/material/paginator';\r\nimport {MatSort, Sort} from '@angular/material/sort';\r\nimport {\r\n MatCell,\r\n MatCellDef,\r\n MatColumnDef,\r\n MatHeaderCell,\r\n MatHeaderCellDef,\r\n MatHeaderRow,\r\n MatHeaderRowDef,\r\n MatRow,\r\n MatRowDef,\r\n MatTable,\r\n MatTableDataSource\r\n} from '@angular/material/table';\r\nimport {TranslateModule, TranslateService} from '@ngx-translate/core';\r\nimport {debounceTime, fromEvent, Subject} from 'rxjs';\r\n\r\nimport {DatePipe, JsonPipe, NgClass, NgFor, NgIf, NgSwitch, NgSwitchCase, NgSwitchDefault} from \"@angular/common\";\r\nimport {MatCheckbox} from \"@angular/material/checkbox\";\r\nimport {MatTooltip} from \"@angular/material/tooltip\";\r\nimport {MatMenu, MatMenuItem, MatMenuTrigger} from \"@angular/material/menu\";\r\nimport {MatSlideToggle} from \"@angular/material/slide-toggle\";\r\nimport {RouterLink} from \"@angular/router\";\r\n\r\nimport {ActionModel} from '../../../interfaces/action.interface';\r\nimport {mapTo} from '../../../helpers/shared.helper';\r\nimport {CustomSearchableComponent, InputComponent} from '../form-field';\r\nimport {Colors} from '../../../enums/colors.enum';\r\nimport {Events} from '../../../enums/events.enum';\r\nimport {Actions} from '../../../enums/actions.enum';\r\nimport {SkipLocationDirective} from '../../../directives/skip-location.directive';\r\n\r\nconst matModules = [\r\n MatTable,\r\n MatColumnDef, MatHeaderCellDef,\r\n MatCheckbox, NgSwitch, MatCellDef, NgSwitchCase,\r\n NgClass, DatePipe, InputComponent, ReactiveFormsModule, MatTooltip,\r\n MatMenu, MatSlideToggle, MatMenuTrigger, MatMenuItem, MatSort, MatHeaderRowDef, MatHeaderRow, MatRow, MatRowDef,\r\n MatHeaderCell, MatCell, CustomSearchableComponent\r\n]\r\n\r\n@Component({\r\n selector: 'app-table',\r\n standalone: true,\r\n imports: [NgFor, TranslateModule, NgIf, matModules, FormsModule, NgSwitchDefault, SkipLocationDirective, MatPaginator],\r\n templateUrl: './table.component.html',\r\n styleUrl: './table.component.scss',\r\n schemas: [CUSTOM_ELEMENTS_SCHEMA],\r\n})\r\nexport class TableComponent implements OnInit {\r\n @ViewChild('table', {read: ElementRef}) public matTableRef!: ElementRef;\r\n control = new FormControl(null);\r\n serviceDetailForm!: FormGroup;\r\n @Input() columns: any;\r\n @Input() isError: any = false;\r\n @Input() isLoading: any = false;\r\n @Input() customMessage!: string;\r\n @Input() columnsConfig: any;\r\n @Input() loadData: any;\r\n @Input() actions: ActionModel[] = [];\r\n @Input() className = '';\r\n @Input() totalElements: number = 0;\r\n @Input() showPagination: boolean = false;\r\n @Input() pageIndex: number = 0;\r\n @Input() pageSize: number = 15;\r\n @Input() sortDisabled: boolean = false;\r\n @Input() useScroll: boolean = false;\r\n @Output() serviceRowSelect = new EventEmitter<any>();\r\n @Output() selectPage = new EventEmitter<any>();\r\n @Output() rowClicked = new EventEmitter<any>();\r\n @Output() autoCompleteValueSelected = new EventEmitter<any>();\r\n @Output() selectValueSelected = new EventEmitter<any>();\r\n @Output() sortChanged = new EventEmitter<Sort>();\r\n @Output() inputCellChanged = new EventEmitter<any>()\r\n @Output() pageScroll = new EventEmitter<any>();\r\n @Output() toggleChanged = new EventEmitter<any>();\r\n @Output() eventClicked = new EventEmitter<any>();\r\n public dataSource = new MatTableDataSource<any>();\r\n @ViewChild('tableSort') tableSort = new MatSort();\r\n localControl = new FormControl()\r\n lang: string = '';\r\n spans = [];\r\n ctrl = new FormControl();\r\n protected readonly Actions = Actions;\r\n private unSubscribe = new Subject;\r\n @Input() hasPaginator = false;\r\n @Input() currentPage = 0;\r\n @Output() pageChange = new EventEmitter<any>();\r\n form: FormGroup;\r\n\r\n constructor(\r\n public dialog: MatDialog,\r\n public translateService: TranslateService,\r\n private fb: FormBuilder\r\n ) {}\r\n\r\n @Input() set keyWord(value: string) {\r\n this.applyFilter(value)\r\n };\r\n\r\n _rows: any;\r\n\r\n get rows(): any {\r\n return this._rows;\r\n }\r\n\r\n @Input() set rows(value: any) {\r\n this._rows = value;\r\n this.dataSource = new MatTableDataSource(this.rows);\r\n }\r\n\r\n ngOnInit(): void {\r\n console.log(this.rows)\r\n }\r\n\r\n pageChanged(event: PageEvent) {\r\n this.pageSize = event.pageSize;\r\n this.currentPage = event.pageIndex;\r\n this.pageChange.emit({pageSize: this.pageSize, pageIndex: this.currentPage})\r\n }\r\n\r\n ngAfterViewInit() {\r\n // this.tableSort.disableClear = true;\r\n // this.tableSort.disabled = this.sortDisabled;\r\n this.dataSource.sort = this.tableSort;\r\n //this.dataSource.paginator = this.paginator;\r\n this.handleScroll()\r\n }\r\n\r\n applyFilter(keyWord: string) {\r\n this.dataSource.filter = keyWord\r\n }\r\n\r\n truncateName(text: string) {\r\n if (text) {\r\n let characters = text.match(/\\b(\\w)/g);\r\n if (characters) {\r\n return characters.join('');\r\n } else {\r\n return '';\r\n }\r\n } else {\r\n return '';\r\n }\r\n }\r\n\r\n sortChange(sortState: Sort) {\r\n const data = this.dataSource.data.slice();\r\n if (!sortState.active || sortState.direction === '') {\r\n this.dataSource.data = data;\r\n return;\r\n }\r\n this.sortChanged.emit(sortState);\r\n }\r\n\r\n mapText(path: string, source: any) {\r\n return mapTo(path, source);\r\n }\r\n\r\n getSlaColor(min: number, max: number): string {\r\n const slaColor = min >= max ? Colors.RED : Colors.GREEN;\r\n return slaColor\r\n }\r\n\r\n\r\n clickRow(row: any) {\r\n this.rowClicked.emit(row)\r\n }\r\n\r\n emitElement(row: any) {\r\n this.eventClicked.emit(row)\r\n }\r\n\r\n toggleValueChange(e: any, element?: any) {\r\n this.toggleChanged.emit({e, element})\r\n }\r\n\r\n ngOnDestroy() {\r\n this.unSubscribe.next;\r\n this.unSubscribe.complete();\r\n }\r\n\r\n\r\n parseInt(value: string) {\r\n return parseInt(value)\r\n }\r\n\r\n private handleScroll() {\r\n fromEvent(this.matTableRef.nativeElement, Events.SCROLL)\r\n .pipe(debounceTime(200))\r\n .subscribe((e: any) => this.onTableScroll(e));\r\n }\r\n\r\n viewForm(url: string) {\r\n window.open('/group/i-gate/wm-bpm/forms?formId=' + url);\r\n }\r\n\r\n private onTableScroll(e: any): void {\r\n const tableViewHeight = e.target.offsetHeight // viewport: ~500px\r\n const tableScrollHeight = e.target.scrollHeight // length of all table\r\n const scrollLocation = e.target.scrollTop; // how far user scrolled\r\n const scrollDownLimit = tableScrollHeight - tableViewHeight;\r\n const isScrollingVertically = e.target.scrollHeight > e.target.offsetHeight;\r\n if (isScrollingVertically && (scrollLocation + 2) > scrollDownLimit) {\r\n this.pageScroll.emit(true)\r\n }\r\n }\r\n}\r\n","<div #table class=\"table-container table-responsive sticky-table\">\r\n @if (!isLoading) {\r\n <ng-container>\r\n @if (dataSource.filteredData?.length! > 0) {\r\n <table\r\n #tableSort=\"matSort\"\r\n (matSortChange)=\"sortChange($event)\"\r\n [dataSource]=\"dataSource\"\r\n class=\"primary-table {{ className }}\"\r\n mat-table\r\n matSort\r\n >\r\n @for (column of columns; track $index; let i = $index) {\r\n <ng-container>\r\n <!-- Add a check to ensure 'columnsConfig' and 'columnsConfig[i]' are defined before using them -->\r\n\r\n @if (columnsConfig && columnsConfig[i]) {\r\n <ng-container>\r\n <ng-container\r\n [matColumnDef]=\"column\"\r\n [stickyEnd]=\"!!columnsConfig[i].stickyEnd!\"\r\n >\r\n @if (!columnsConfig[i].notSortable) {\r\n <ng-container>\r\n <th\r\n *matHeaderCellDef\r\n [ngClass]=\"{ 'text-end': columnsConfig[i].type === 'actions' }\"\r\n mat-header-cell\r\n mat-sort-header\r\n >\r\n @if (columnsConfig[i].type !== 'checkbox' || (\r\n this.columnsConfig[i]?.type! == 'actions' &&\r\n this.columnsConfig[i]?.actions?.length === 0)) {\r\n <ng-container>\r\n @if (!(this.columnsConfig[i].type == 'actions' &&\r\n this.columnsConfig[i].actions.length === 0)) {\r\n <div class=\"d-flex align-items-center\">\r\n <div class=\"mx-1 fc-{{ columnsConfig[i].fontColor }}\">\r\n {{ columnsConfig[i].label | translate }}\r\n </div>\r\n @if (columnsConfig[i].slaMax) {\r\n <ds-sla\r\n [canvasScale]=\"'40'\"\r\n [innerLineWidth]=\"'3'\"\r\n [maxValue]=\"columnsConfig[i].slaMax\"\r\n [outerLineColor]=\"'limegreen'\"\r\n [outerLineWidth]=\"'3'\"\r\n [value]=\"columnsConfig[i].slaValue\"\r\n class=\"table-header-sla my-1\"\r\n ></ds-sla>\r\n }\r\n </div>\r\n }\r\n </ng-container>\r\n }\r\n @if (columnsConfig[i].type == 'checkbox') {\r\n <mat-checkbox class=\"checkbox\"></mat-checkbox>\r\n }\r\n </th>\r\n </ng-container>\r\n }\r\n @if (columnsConfig[i].notSortable) {\r\n <ng-container>\r\n <th\r\n *matHeaderCellDef\r\n [ngClass]=\"{ 'text-end': columnsConfig[i].type === 'actions' }\"\r\n mat-header-cell\r\n >\r\n <div class=\"d-flex align-items-center\">\r\n <div class=\"mx-1\">\r\n {{ columnsConfig[i].label | translate }}\r\n </div>\r\n @if (columnsConfig[i].slaMax) {\r\n <ds-sla\r\n [canvasScale]=\"'50'\"\r\n [innerLineWidth]=\"'3'\"\r\n [maxValue]=\"columnsConfig[i].slaMax\"\r\n [outerLineColor]=\"'limegreen'\"\r\n [outerLineWidth]=\"'3'\"\r\n [value]=\"columnsConfig[i].slaValue\"\r\n class=\"table-header-sla my-1\"\r\n ></ds-sla>\r\n }\r\n </div>\r\n </th>\r\n </ng-container>\r\n }\r\n\r\n <td *matCellDef=\"let element; let j = index\" mat-cell>\r\n <ng-container [ngSwitch]=\"columnsConfig[i].type\">\r\n <!-- <a target=\"_blank\"-->\r\n <!-- routerLink=\"/inbox\" [queryParams]=\"{ id: element[column] }\"-->\r\n <!-- class=\"fc-black text-decoration-underline fw-medium\" [ngClass]=\"columnsConfig[i].type\" *ngSwitchCase=\"'link'\">-->\r\n <!-- {{ element[column] }}-->\r\n <!-- </a>-->\r\n <span\r\n *ngSwitchCase=\"'formId'\"\r\n (click)=\"viewForm(element[column])\"\r\n [ngClass]=\"columnsConfig[i].type\"\r\n class=\"fc-coral cursor-pointer text-decoration-underline fw-medium\">\r\n {{ element[column] }}\r\n </span>\r\n <!-- <span\r\n *ngSwitchCase=\"'link'\"\r\n [ngClass]=\"columnsConfig[i].type\"\r\n class=\"fc-black text-decoration-underline fw-medium\"\r\n >\r\n {{ element[column] }}\r\n </span>-->\r\n\r\n <span\r\n *ngSwitchCase=\"'linkWithIcon'\"\r\n [appSkipLocation]=\"columnsConfig[i].link\"\r\n [ngClass]=\"columnsConfig[i].type\"\r\n class=\"fc-black text-decoration-underline fw-medium\"\r\n >\r\n <ds-icon\r\n class=\"fs-20 fc-black\"\r\n icon=\" {{ columnsConfig[i].icon }}\"\r\n ></ds-icon>\r\n <span class=\"fs-13 fc-coral px-1 text-decoration-underline\">{{\r\n element[column]\r\n }}</span>\r\n </span>\r\n <span\r\n *ngSwitchCase=\"'underLineWithIcon'\"\r\n [ngClass]=\"columnsConfig[i].type\"\r\n class=\"fc-black text-decoration-underline fw-medium\"\r\n >\r\n <ds-icon\r\n class=\"fs-20 fc-black\"\r\n icon=\" {{ columnsConfig[i].icon }}\"\r\n ></ds-icon>\r\n <span class=\"fs-13 fc-coral px-1 text-decoration-underline\">{{\r\n element[column]\r\n }}</span>\r\n </span>\r\n <mat-checkbox\r\n *ngSwitchCase=\"'checkbox'\"\r\n checked=\"{{ columnsConfig[i].checked }}\"\r\n class=\"checkbox\"\r\n disabled=\"{{ columnsConfig[i].disabled }}\"\r\n >\r\n </mat-checkbox>\r\n <span\r\n *ngSwitchCase=\"'ServiceDetails'\"\r\n [ngClass]=\"columnsConfig[i].type\"\r\n class=\"cursor-pointer\"\r\n >\r\n {{ element[column] }}\r\n </span>\r\n <span\r\n *ngSwitchCase=\"'dateOnly'\"\r\n [ngClass]=\"columnsConfig[i].type\"\r\n class=\"d-inline-flex align-items-center gap-2 text-nowrap\"\r\n >\r\n <span class=\"sfi sfi-calendar-o fc-coral fs-18\"></span>\r\n {{ element[column] | date : \"MMM d, y\" }}\r\n </span>\r\n <span\r\n *ngSwitchCase=\"'Search'\"\r\n [ngClass]=\"columnsConfig[i].type\"\r\n class=\"d-inline-flex align-items-center\"\r\n >\r\n <app-input\r\n [formControl]=\"ctrl\"\r\n [placeholder]=\"'Search for item '\"\r\n [showLabel]=\"false\"\r\n class=\"\"\r\n className=\"no-padding \"\r\n prefix=\"sfi-search fs-16\"\r\n type=\"text\"\r\n >\r\n </app-input>\r\n </span>\r\n <span\r\n *ngSwitchCase=\"'Number'\"\r\n [ngClass]=\"columnsConfig[i].type\"\r\n class=\"d-inline-flex align-items-center\"\r\n >\r\n <app-input\r\n [formControl]=\"ctrl\"\r\n [placeholder]=\"'number'\"\r\n [showLabel]=\"false\"\r\n class=\"\"\r\n className=\"no-padding\"\r\n type=\"text\"\r\n >\r\n </app-input>\r\n </span>\r\n <span\r\n *ngSwitchCase=\"'dateFromTo'\"\r\n [ngClass]=\"columnsConfig[i].type\"\r\n class=\"d-inline-flex align-items-center\"\r\n >\r\n <span class=\"sfi sfi-clock fc-coral\"></span>\r\n <span class=\"mx-2\">\r\n {{ element?.date.from }}\r\n @if (element?.date.to) {\r\n <ng-container> : {{ element?.date.to }} </ng-container>\r\n }\r\n </span>\r\n </span>\r\n\r\n <span\r\n *ngSwitchCase=\"'dateTime'\"\r\n [ngClass]=\"columnsConfig[i].type\"\r\n class=\"d-inline-flex align-items-center gap-1 flex-wrap\"\r\n >\r\n <span class=\"sfi sfi-calendar-o fc-dark-gray fs-20\"></span>\r\n {{ element[column] | date : \"MMM d, y, h:mm a\" }}\r\n </span>\r\n\r\n <span\r\n *ngSwitchCase=\"'singleTimeOnly'\"\r\n [ngClass]=\"columnsConfig[i].type\"\r\n class=\"d-inline-flex align-items-center gap-1 flex-wrap\"\r\n >\r\n {{ element[column] | date : \"h:mm a\" }}\r\n </span>\r\n <!--dir=\"ltr\" and text-left for English text on ar page -->\r\n <span\r\n *ngSwitchCase=\"'timeOnly'\"\r\n [ngClass]=\"columnsConfig[i].type\"\r\n class=\"d-inline-flex align-items-center gap-1 flex-wrap text-nowrap text-left\"\r\n dir=\"ltr\"\r\n >\r\n <!-- -->\r\n {{\r\n mapText(columnsConfig[i].firstVal, element[column])\r\n | date : \"h:mm a\"\r\n }}\r\n @if (mapText(columnsConfig[i].secondVal, element[column])) {\r\n <ng-container>\r\n -\r\n {{\r\n mapText(columnsConfig[i].secondVal, element[column])\r\n | date : \"h:mm a\"\r\n }}\r\n </ng-container>\r\n }\r\n </span>\r\n\r\n <span\r\n *ngSwitchCase=\"'multipleRows'\"\r\n [ngClass]=\"columnsConfig[i].type\"\r\n class=\"d-inline-flex align-items-center gap-1 flex-wrap\"\r\n >\r\n <!-- -->\r\n @if (!element[column].monthlyFineEscalation) {\r\n <div>\r\n {{ element[column].fixedFineValue }}\r\n {{ \"global.SAR\" | translate }}\r\n </div>\r\n }\r\n @if (element[column].monthlyFineEscalation) {\r\n <div>\r\n <br/>\r\n {{ element[column].firstTimeFine }}\r\n {{ \"global.SAR\" | translate }} <br/><br/>\r\n {{ element[column].secondTimeFine }}\r\n {{ \"global.SAR\" | translate }} <br/><br/>\r\n {{ element[column].thirdTimeFine }}\r\n {{ \"global.SAR\" | translate }} <br/><br/>\r\n </div>\r\n }\r\n </span>\r\n\r\n <div\r\n *ngSwitchCase=\"'sla'\"\r\n [ngClass]=\"columnsConfig[i].type\"\r\n class=\"d-inline-flex align-items-center\"\r\n >\r\n <!-- <app-sla [value]=\"element?.SLA.value\" [maxValue]=\"element?.SLA.max\" [canvasScale]=\"38\" -->\r\n <!-- class=\"font-9 fw-medium\" [outerLineColor]=\"getSlaColor(element?.SLA.value, element?.SLA.max)\">-->\r\n <!-- </app-sla>-->\r\n\r\n <ds-sla\r\n [attr.outerLineColor]=\"\r\n getSlaColor(element?.SLA.value, element?.SLA.max)\r\n \"\r\n [canvasScale]=\"'55'\"\r\n [innerLineWidth]=\"'3'\"\r\n [maxValue]=\"element?.SLA?.max\"\r\n [outerLineWidth]=\"'3'\"\r\n [value]=\"element?.SLA?.value\"\r\n ></ds-sla>\r\n </div>\r\n <div *ngSwitchCase=\"'slaProgress'\">\r\n <!-- <mat-sp-->\r\n\r\n @if (element[column]?.percentage >= 0) {\r\n <ds-sla\r\n [canvasScale]=\"'55'\"\r\n [customValue]=\"element[column]?.percentage + '%'\"\r\n [innerLineWidth]=\"'3'\"\r\n [maxValue]=\"'100'\"\r\n [outerLineColor]=\"\r\n getSlaColor(element[column]?.percentage, 100)\r\n \"\r\n [outerLineWidth]=\"'3'\"\r\n [value]=\"element[column]?.percentage\"\r\n ></ds-sla>\r\n } @else {\r\n <ng-template>Not started</ng-template>\r\n }\r\n </div>\r\n <div\r\n *ngSwitchCase=\"'Priority'\"\r\n [ngClass]=\"columnsConfig[i].type\"\r\n class=\"{{ element[column] }}\"\r\n >\r\n {{ element[column] }}\r\n </div>\r\n\r\n <div\r\n *ngSwitchCase=\"'serviceStatus'\"\r\n [ngClass]=\"columnsConfig[i].type\"\r\n class=\"{{ element[column] }}\"\r\n >\r\n <span\r\n [ngClass]=\"element[column] == 'FALSE' ? 'green' : 'red'\"\r\n class=\"dot-status\"\r\n ></span>\r\n </div>\r\n\r\n <div\r\n *ngSwitchCase=\"'image'\"\r\n [ngClass]=\"columnsConfig[i].type\"\r\n class=\"img-card table-img\"\r\n >\r\n <img\r\n [src]=\"element?.image\"\r\n alt=\"\"\r\n onerror=\"this.onerror=null;this.src='assets/images/user.svg';\"\r\n />\r\n </div>\r\n\r\n <div\r\n *ngSwitchCase=\"'employee'\"\r\n [ngClass]=\"columnsConfig[i].type\"\r\n class=\"d-flex align-items-center gap-2 text-nowrap\"\r\n >\r\n <ds-avatar\r\n [image]=\"'https://igateapp.stc.com.sa'+element[column]?.['imageUrl']\"\r\n size=\"x-small\"\r\n >\r\n </ds-avatar>\r\n <span>{{ (element[column]?.['name']) }}</span>\r\n </div>\r\n\r\n <div\r\n *ngSwitchCase=\"'progress_group'\"\r\n [ngClass]=\"columnsConfig[i].type\"\r\n class=\"d-flex gap-1\"\r\n >\r\n <ng-container *ngFor=\"let item of element[column]\">\r\n <div\r\n class=\"progress-container default-progress medium radius-0\"\r\n matTooltip=\"Team assignment {{ item.value }}%\"\r\n matTooltipPosition=\"below\"\r\n >\r\n <div\r\n [style.width.%]=\"item.value\"\r\n class=\"progress-bar bg-color-{{ item.color }}\"\r\n ></div>\r\n </div>\r\n </ng-container>\r\n </div>\r\n <div\r\n *ngSwitchCase=\"'input'\"\r\n [ngClass]=\"columnsConfig[i].type\"\r\n class=\"\"\r\n >\r\n <app-input\r\n (input)=\"inputCellChanged.emit({element,column,i})\"\r\n [(ngModel)]=\"element[column]\"\r\n [min]=\"0\"\r\n [placeholder]=\"element[column]\"\r\n class=\"w-100\"\r\n className=\" no-padding w-100\"\r\n type=\"number\"\r\n value=\"{{ element[column] }}\"\r\n >\r\n </app-input>\r\n </div>\r\n <div *ngSwitchCase=\"'autoComplete'\"></div>\r\n <div\r\n *ngSwitchCase=\"'select'\"\r\n [ngClass]=\"columnsConfig[i].type\"\r\n class=\"\"\r\n >\r\n <app-custom-searchable\r\n (selectedValue)=\"selectValueSelected.emit($event)\"\r\n [isSearchable]=\"columnsConfig[i].config?.isSearchable\"\r\n [key]=\"columnsConfig[i]?.key\"\r\n [displayedLabel]=\"columnsConfig[i]?.displayedLable\"\r\n [options]=\"columnsConfig[i]?.options\"\r\n [postKey]=\"columnsConfig[i]?.postKey\"\r\n [showLabel]=\"false\"\r\n className=\"no-padding w-100\"\r\n >\r\n </app-custom-searchable>\r\n </div>\r\n\r\n <div\r\n *ngSwitchCase=\"'status'\"\r\n [ngClass]=\"'New' + columnsConfig[i].type\"\r\n class=\"d-flex align-items-center gap-2\"\r\n >\r\n @if (element[column]) {\r\n <ds-status [status]=\"element[column]?.status\" class=\"fs-12\">\r\n {{ element[column]?.title | translate }}\r\n </ds-status>\r\n }\r\n @if (element[column]?.reason) {\r\n <span\r\n (click)=\"$event.stopPropagation()\"\r\n [matMenuTriggerFor]=\"reasonMenu\"\r\n [ngClass]=\"columnsConfig[i].type\"\r\n class=\"{{\r\n columnsConfig[i].type\r\n }} fc-red underline cursor-pointer\"\r\n >\r\n Show reason\r\n </span>\r\n }\r\n\r\n <mat-menu #reasonMenu=\"matMenu\" class=\"p-4 text-center\">\r\n <span class=\"fs-14\">\r\n {{ element[column]?.reason }}\r\n </span>\r\n </mat-menu>\r\n </div>\r\n <div *ngSwitchCase=\"'toggle'\" [ngClass]=\"columnsConfig[i].type\">\r\n <mat-slide-toggle\r\n (change)=\"toggleValueChange($event, element)\"\r\n [checked]=\"element[column] == 1\"\r\n [disabled]=\"false\"\r\n ></mat-slide-toggle>\r\n </div>\r\n\r\n <div\r\n *ngSwitchCase=\"'customToggle'\"\r\n [ngClass]=\"columnsConfig[i].type\"\r\n >\r\n <mat-slide-toggle\r\n (change)=\"toggleValueChange($event, element)\"\r\n [checked]=\"element[column] == 7\"\r\n [disabled]=\"element[column] != 1\"\r\n ></mat-slide-toggle>\r\n </div>\r\n <div\r\n *ngSwitchCase=\"'meetingStatus'\"\r\n [ngClass]=\"columnsConfig[i].type\"\r\n class=\"{{ columnsConfig[i].type }}\"\r\n >\r\n @if (element[column].label == 'Finished') {\r\n <span class=\" {{ element[column].label }} status \">\r\n {{ element[column].label }}\r\n </span>\r\n }\r\n @if (element[column].label != 'Finished') {\r\n <div class=\"d-flex align-items-center gap-2\">\r\n <div\r\n class=\"Finished d-flex flex-column align-items-center justify-content-center py-1 fc-black\"\r\n >\r\n <span class=\"fs-11 fw-medium mb-1\">\r\n {{ element[column].hours }}</span\r\n >\r\n <span class=\"fs-10 fw-light\">HRS</span>\r\n </div>\r\n <div\r\n class=\"Finished d-flex flex-column align-items-center justify-content-center py-1 fc-black\"\r\n >\r\n <span class=\"fs-11 fw-medium mb-1\">\r\n {{ element[column].min }}</span\r\n >\r\n <span class=\"fs-10 fw-light\">MINS</span>\r\n </div>\r\n <div\r\n class=\"Finished d-flex flex-column align-items-center justify-content-center py-1 fc-black\"\r\n >\r\n <span class=\"fs-11 fw-medium mb-1\">\r\n {{ element[column].sec }}</span\r\n >\r\n <span class=\"fs-10 fw-light\">SECS</span>\r\n </div>\r\n </div>\r\n }\r\n </div>\r\n <span\r\n *ngSwitchCase=\"'number'\"\r\n [ngClass]=\"columnsConfig[i].type\"\r\n class=\"{{ columnsConfig[i].type }} {{\r\n element[column] ? 'underline' : ''\r\n }}\"\r\n >\r\n {{ element[column] ? element[column] : 0 }}\r\n </span>\r\n\r\n <span\r\n *ngSwitchCase=\"'currency'\"\r\n [ngClass]=\"columnsConfig[i].type\"\r\n class=\"{{ columnsConfig[i].type }}\"\r\n >\r\n {{\r\n element[column]\r\n ? parseInt(element[column]).toFixed(2) +\r\n (columnsConfig[i].currency | translate)\r\n : \"-\"\r\n }}\r\n </span>\r\n <span\r\n *ngSwitchCase=\"'active'\"\r\n [ngClass]=\"columnsConfig[i].type\"\r\n class=\"{{ columnsConfig[i].type }}\"\r\n >\r\n <ds-icon\r\n [ngClass]=\"element[column] ? 'fc-green' : 'fc-gray'\"\r\n icon=\"check-circle-f fs-30\"\r\n ></ds-icon>\r\n </span>\r\n <div\r\n *ngSwitchCase=\"'sync'\"\r\n [ngClass]=\"columnsConfig[i].type\"\r\n class=\"{{\r\n columnsConfig[i].type\r\n }} d-flex align-items-center gap-2\"\r\n >\r\n <svg\r\n fill=\"none\"\r\n height=\"19\"\r\n viewBox=\"0 0 18 19\"\r\n width=\"18\"\r\n xmlns=\"http://www.w3.org/2000/svg\"\r\n >\r\n <path\r\n d=\"M14.25 13.2604C13.9425 13.2604 13.6875 12.9913 13.6875 12.6667V5.14583C13.6875 4.59958 13.2675 4.15625 12.75 4.15625H8.625C8.3175 4.15625 8.0625 3.88708 8.0625 3.5625C8.0625 3.23792 8.3175 2.96875 8.625 2.96875H12.75C13.89 2.96875 14.8125 3.9425 14.8125 5.14583V12.6667C14.8125 12.9913 14.5575 13.2604 14.25 13.2604Z\"\r\n fill=\"#FF375E\"\r\n />\r\n <path\r\n d=\"M10.5 6.13549C10.3725 6.13549 10.245 6.088 10.14 6.00092L7.88999 4.02175C7.76249 3.91092 7.6875 3.74465 7.6875 3.56257C7.6875 3.38048 7.76249 3.22214 7.88999 3.10339L10.14 1.12422C10.38 0.910471 10.7325 0.950084 10.935 1.20342C11.1375 1.45675 11.1 1.82883 10.86 2.04258L9.12751 3.56257L10.86 5.08255C11.1 5.29631 11.13 5.66839 10.935 5.92172C10.8225 6.06422 10.6575 6.13549 10.5 6.13549Z\"\r\n fill=\"#FF375E\"\r\n />\r\n <path\r\n d=\"M14.25 18.0105C12.6975 18.0105 11.4375 16.6805 11.4375 15.0417C11.4375 13.403 12.6975 12.073 14.25 12.073C15.8025 12.073 17.0625 13.403 17.0625 15.0417C17.0625 16.6805 15.8025 18.0105 14.25 18.0105ZM14.25 13.2605C13.32 13.2605 12.5625 14.0601 12.5625 15.0417C12.5625 16.0234 13.32 16.823 14.25 16.823C15.18 16.823 15.9375 16.0234 15.9375 15.0417C15.9375 14.0601 15.18 13.2605 14.25 13.2605Z\"\r\n fill=\"#FF375E\"\r\n />\r\n <path\r\n d=\"M9.375 16.0312H5.25C4.11 16.0312 3.1875 15.0574 3.1875 13.8541V6.33325C3.1875 6.00867 3.4425 5.7395 3.75 5.7395C4.0575 5.7395 4.3125 6.00867 4.3125 6.33325V13.8541C4.3125 14.4003 4.7325 14.8437 5.25 14.8437H9.375C9.6825 14.8437 9.9375 15.1128 9.9375 15.4374C9.9375 15.762 9.6825 16.0312 9.375 16.0312Z\"\r\n fill=\"#FF375E\"\r\n />\r\n <path\r\n d=\"M7.4997 18.0104C7.3422 18.0104 7.17721 17.9391 7.06471 17.7966C6.86221 17.5433 6.89969 17.1712 7.13969 16.9574L8.87219 15.4375L7.13969 13.9175C6.89969 13.7037 6.86971 13.3316 7.06471 13.0783C7.26721 12.825 7.61971 12.7933 7.85971 12.9991L10.1097 14.9783C10.2372 15.0891 10.3122 15.2554 10.3122 15.4375C10.3122 15.6195 10.2372 15.7779 10.1097 15.8966L7.85971 17.8758C7.75471 17.9629 7.6272 18.0104 7.4997 18.0104Z\"\r\n fill=\"#FF375E\"\r\n />\r\n <path\r\n d=\"M3.75 6.927C2.1975 6.927 0.9375 5.597 0.9375 3.95825C0.9375 2.3195 2.1975 0.989502 3.75 0.989502C5.3025 0.989502 6.5625 2.3195 6.5625 3.95825C6.5625 5.597 5.3025 6.927 3.75 6.927ZM3.75 2.177C2.82 2.177 2.0625 2.97659 2.0625 3.95825C2.0625 4.93992 2.82 5.7395 3.75 5.7395C4.68 5.7395 5.4375 4.93992 5.4375 3.95825C5.4375 2.97659 4.68 2.177 3.75 2.177Z\"\r\n fill=\"#FF375E\"\r\n />\r\n </svg>\r\n {{ element[column] }}\r\n </div>\r\n\r\n <ng-container *ngSwitchCase=\"'clickable'\">\r\n @if (element?.[column]) {\r\n <span\r\n #statusMenuTrigger=\"matMenuTrigger\"\r\n (click)=\"$event.stopPropagation()\"\r\n [matMenuTriggerFor]=\"descMenu\"\r\n [ngClass]=\"columnsConfig[i].type\"\r\n class=\"{{\r\n columnsConfig[i].type\r\n }} fc-coral underline cursor-pointer\"\r\n >\r\n {{ columnsConfig[i].clickableText | translate }}\r\n </span>\r\n }\r\n\r\n <mat-menu #descMenu=\"matMenu\" class=\"p-4 text-center\">\r\n <span class=\"fs-14\">\r\n {{ element[column] }}\r\n </span>\r\n </mat-menu>\r\n </ng-container>\r\n\r\n <span\r\n #statusMenuTrigger=\"matMenuTrigger\"\r\n (click)=\"$event.stopPropagation()\"\r\n *ngSwitchCase=\"'translatedClickable'\"\r\n [matMenuTriggerFor]=\"descMenuTranslated\"\r\n [ngClass]=\"columnsConfig[i].type\"\r\n class=\"{{\r\n columnsConfig[i].type\r\n }} fc-coral underline cursor-pointer\"\r\n >\r\n {{ columnsConfig[i].clickableText | translate }}\r\n <!-- {{ 'global.view' | translate}} -->\r\n </span>\r\n\r\n <mat-menu #descMenuTranslated=\"matMenu\" class=\"p-4 text-center\">\r\n <span class=\"fs-14\">\r\n {{\r\n columnsConfig[i].arKey\r\n ? translateService.currentLang == \"ar\"\r\n ? mapText(columnsConfig[i].arKey, element[column])\r\n : mapText(columnsConfig[i].enKey, element[column])\r\n : element[column]\r\n ? element[column]\r\n : \"-\"\r\n }}\r\n </span>\r\n </mat-menu>\r\n\r\n <span\r\n #statusMenuTrigger=\"matMenuTrigger\"\r\n (click)=\"$event.stopPropagation()\"\r\n *ngSwitchCase=\"'conditionalClickable'\"\r\n [matMenuTriggerFor]=\"descConditionalMenu\"\r\n [ngClass]=\"columnsConfig[i].type\"\r\n class=\"{{\r\n columnsConfig[i].type\r\n }} fc-coral underline cursor-pointer\"\r\n >\r\n @if (element[column] && element[column] != 'null') {\r\n <span>{{ columnsConfig[i].clickableText | translate }}</span>\r\n }\r\n <!-- {{ 'global.view' | translate}} -->\r\n </span>\r\n\r\n <mat-menu\r\n #descConditionalMenu=\"matMenu\"\r\n class=\"p-4 text-center\"\r\n >\r\n <span class=\"fs-14\">\r\n {{ element[column] }}\r\n </span>\r\n </mat-menu>\r\n\r\n <span\r\n (click)=\"$event.stopPropagation()\"\r\n *ngSwitchCase=\"'dropdown'\"\r\n [matMenuTriggerFor]=\"dropdownMenu\"\r\n [ngClass]=\"columnsConfig[i].type\"\r\n class=\"{{ columnsConfig[i].type }} cursor-pointer\"\r\n >\r\n {{\r\n columnsConfig[i].arKey\r\n ? translateService.currentLang == \"ar\"\r\n ? mapText(columnsConfig[i].arKey, element[column])\r\n : mapText(columnsConfig[i].enKey, element[column])\r\n : element[column]\r\n ? element[column]\r\n : \"-\"\r\n }}\r\n <!-- <span *ngFor=\"let item of element[column]\">\r\n {{item.id}}\r\n </span> -->\r\n\r\n <ds-icon class=\"fc-black fw-medium\" icon=\"arrow\"></ds-icon>\r\n </span>\r\n\r\n <mat-menu #dropdownMenu=\"matMenu\" class=\"p-4 text-center\">\r\n <ng-container *ngSwitchCase=\"'dropdown'\">\r\n <span class=\"fs-12 fc-black\" mat-menu-item>\r\n <!-- {{translateService.currentLang == 'ar' ? item.groupNameAr : item.groupNameEn}} -->\r\n {{\r\n columnsConfig[i].arKey\r\n ? translateService.currentLang == \"ar\"\r\n ? mapText(columnsConfig[i].arKey, element[column])\r\n : mapText(columnsConfig[i].enKey, element[column])\r\n : element[column]\r\n ? element[column]\r\n : \"-\"\r\n }}\r\n </span>\r\n </ng-container>\r\n </mat-menu>\r\n\r\n <span\r\n *ngSwitchCase=\"'formatNumber'\"\r\n [ngClass]=\"columnsConfig[i].type\"\r\n matTooltip=\"{{\r\n element[column] > 1000 ? element[column] : ''\r\n }}\"\r\n >\r\n {{ element[column] }}\r\n </span>\r\n\r\n <div\r\n *ngSwitchCase=\"'group'\"\r\n [ngClass]=\"columnsConfig[i].type\"\r\n class=\"text-nowrap d-flex align-items-center\"\r\n ></div>\r\n\r\n <div\r\n *ngSwitchCase=\"'company'\"\r\n [ngClass]=\"columnsConfig[i].type\"\r\n class=\"d-flex align-items-center\"\r\n >\r\n <span class=\"img-card circled-img\">\r\n <img\r\n [src]=\"element?.image\"\r\n alt=\"\"\r\n onerror=\"this.onerror=null;this.src='assets/images/user.svg';\"\r\n />\r\n </span>\r\n <span class=\"mx-1\"></span>\r\n <span class=\"full-name\">{{ element[column] }}</span>\r\n </div>\r\n\r\n <span\r\n *ngSwitchCase=\"'translated'\"\r\n [ngClass]=\"columnsConfig[i].type\"\r\n class=\"text-nowrap\"\r\n >\r\n {{ element[column] }}\r\n </span>\r\n <span\r\n *ngSwitchCase=\"'title'\"\r\n [ngClass]=\"columnsConfig[i].type\"\r\n class=\"text-nowrap\"\r\n >\r\n {{ element[column]?.title }}\r\n </span>\r\n\r\n <span\r\n *ngSwitchCase=\"'maxWidth'\"\r\n [ngClass]=\"columnsConfig[i].type\"\r\n >\r\n {{ element[column]?.title }}\r\n </span>\r\n\r\n <span\r\n *ngSwitchCase=\"'progress'\"\r\n [ngClass]=\"columnsConfig[i].type\"\r\n >\r\n <div class=\"Progress\">\r\n <div class=\"progress-container default-progress\">\r\n <div\r\n [style.width.%]=\"\r\n (element[column].consumed! / element[column].total!) *\r\n 100\r\n \"\r\n class=\"progress-bar\"\r\n ></div>\r\n </div>\r\n <div class=\"Progress__footer\">\r\n <div></div>\r\n <div>\r\n <span class=\"fs-12\">\r\n <span>{{ element[column].consumed }}</span>\r\n <span>/</span>\r\n <span class=\"fc-silver\">{{\r\n element[column].total\r\n }}</span>\r\n </span>\r\n </div>\r\n </div>\r\n </div>\r\n </span>\r\n\r\n <div\r\n *ngSwitchCase=\"'subsidiary'\"\r\n [ngClass]=\"columnsConfig[i].type\"\r\n class=\"d-flex align-items-center gap-2\"\r\n >\r\n <img\r\n [alt]=\"element[column]?.title\"\r\n src=\"assets/subsidiaries/ids/{{ element[column]?.id }}.png\"\r\n />\r\n <!-- <span class=\"full-name\">{{element[column]}}</span>-->\r\n </div>\r\n\r\n <div\r\n *ngSwitchCase=\"'Service'\"\r\n [ngClass]=\"columnsConfig[i].type\"\r\n class=\"d-flex align-items-center gap-2\"\r\n >\r\n <svg\r\n fill=\"none\"\r\n height=\"35\"\r\n viewBox=\"0 0 34 35\"\r\n width=\"34\"\r\n xmlns=\"http://www.w3.org/2000/svg\"\r\n >\r\n <rect\r\n fill=\"#FF375E\"\r\n fill-opacity=\"0.1\"\r\n height=\"33.5\"\r\n rx=\"4\"\r\n width=\"33.5\"\r\n y=\"0.75\"\r\n />\r\n <path\r\n d=\"M24.213 17.0338H22.1448L21.4532 15.1884C21.2221 14.5845 20.649 14.1622 19.9761 14.1592H13.5315C12.8586 14.1622 12.2847 14.5838 12.0582 15.1771L12.0544 15.1876L11.3628 17.033H9.29312C9.05532 17.033 8.86328 17.2258 8.86328 17.4629V19.1845C8.86328 19.4223 9.05607 19.6143 9.29312 19.6143H10.2076L9.69896 20.378C9.53242 20.6233 9.4334 20.9263 9.4334 21.2519C9.4334 21.2527 9.4334 21.2527 9.4334 21.2534V26.0702C9.4334 26.308 9.62619 26.5 9.86324 26.5H12.1595C12.3973 26.5 12.5893 26.3072 12.5893 26.0702V24.7791H20.91V26.0702C20.91 26.308 21.1028 26.5 21.3399 26.5H23.6361C23.8739 26.5 24.066 26.3072 24.066 26.0702V21.2519C24.066 21.2512 24.066 21.2512 24.066 21.2504C24.066 20.9248 23.9669 20.6218 23.7974 20.3705L23.8011 20.3757L23.2925 19.6121H24.207C24.4448 19.6121 24.6368 19.4193 24.6368 19.1822V17.4606C24.6361 17.2258 24.4478 17.036 24.2145 17.0315L24.213 17.0338ZM12.8654 15.4915C12.9711 15.2176 13.2314 15.0271 13.5368 15.0264H19.9798C20.2852 15.0271 20.5455 15.2184 20.649 15.487L20.6505 15.4922L21.8747 18.7569H11.6359L12.8654 15.4915ZM23.2138 23.9202H10.2983V21.2542C10.2983 21.2534 10.2983 21.2534 10.2983 21.2527C10.2983 21.1049 10.3433 20.9676 10.4199 20.8536L10.4184 20.8558L11.245 19.6151H22.2618L23.0885 20.8558C23.1635 20.9668 23.2085 21.1049 23.2085 21.2519C23.2085 21.2527 23.2085 21.2527 23.2085 21.2534L23.2138 23.9202ZM9.72896 17.895H11.0357L10.7132 18.7561H9.72071L9.72896 17.895ZM11.7379 25.6411H10.2983V24.7799H11.7334L11.7379 25.6411ZM23.2153 25.6411H21.775V24.7799H23.21L23.2153 25.6411ZM23.7869 18.7546H22.7899L22.4674 17.8935H23.7831L23.7869 18.7546ZM12.1632 20.4762C11.2915 20.4762 10.5856 21.1829 10.5856 22.0538C10.5856 22.9248 11.2923 23.6314 12.1632 23.6314C13.0349 23.6314 13.7408 22.9248 13.7408 22.0538C13.7408 21.1821 13.0342 20.4762 12.1632 20.4762V20.4762ZM12.1632 22.7725C11.7671 22.7725 11.4461 22.4514 11.4461 22.0553C11.4461 21.6592 11.7671 21.3382 12.1632 21.3382C12.5593 21.3382 12.8804 21.6592 12.8804 22.0553C12.8804 22.4514 12.5593 22.7725 12.1632 22.7725V22.7725ZM21.3444 20.4762C20.4727 20.4762 19.7668 21.1829 19.7668 22.0538C19.7668 22.9248 20.4735 23.6314 21.3444 23.6314C22.2161 23.6314 22.922 22.9248 22.922 22.0538C22.922 21.1821 22.2153 20.4762 21.3444 20.4762ZM21.3444 22.7725C20.9483 22.7725 20.6272 22.4514 20.6272 22.0553C20.6272 21.6592 20.9483 21.3382 21.3444 21.3382C21.7405 21.3382 22.0615 21.6592 22.0615 22.0553C22.0615 22.4514 21.7405 22.7725 21.3444 22.7725ZM19.0489 21.0509H14.4579C14.2201 21.0509 14.0274 21.2437 14.0274 21.4815C14.0274 21.7193 14.2201 21.912 14.4579 21.912H19.0489C19.2867 21.912 19.4795 21.7193 19.4795 21.4815C19.4795 21.2437 19.2867 21.0509 19.0489 21.0509ZM19.0489 22.1986H14.4579C14.2201 22.1986 14.0274 22.3914 14.0274 22.6292C14.0274 22.867 14.2201 23.0598 14.4579 23.0598H19.0489C19.2867 23.0598 19.4795 22.867 19.4795 22.6292C19.4795 22.3914 19.2867 22.1986 19.0489 22.1986ZM15.2321 12.5703C15.1541 12.6484 15.1061 12.7556 15.1061 12.8742C15.1061 13.112 15.2989 13.304 15.5359 13.304C15.6544 13.304 15.7625 13.256 15.8397 13.178C16.0738 12.9439 16.3971 12.7991 16.7542 12.7991C17.1113 12.7991 17.4346 12.9439 17.6686 13.178C17.7466 13.256 17.8539 13.304 17.9724 13.304C18.2102 13.304 18.4023 13.1112 18.4023 12.8742C18.4023 12.7556 18.3543 12.6476 18.2762 12.5703C17.8862 12.181 17.3483 11.9395 16.7534 11.9395C16.1586 11.9395 15.6199 12.1803 15.2306 12.5703H15.2321ZM19.1877 12.0865C19.1884 12.0865 19.1884 12.0865 19.1892 12.0865C19.427 12.0865 19.619 11.8937 19.619 11.6567C19.619 11.5374 19.5703 11.4294 19.4915 11.3513C18.7909 10.6507 17.8224 10.2171 16.7527 10.2171C15.683 10.2171 14.7145 10.6507 14.0139 11.3513C13.9358 11.4294 13.8878 11.5366 13.8878 11.6552C13.8878 11.893 14.0806 12.085 14.3177 12.085C14.4362 12.085 14.5442 12.037 14.6215 11.959C15.1668 11.4136 15.92 11.0768 16.7519 11.0768C17.5838 11.0768 18.337 11.4136 18.8824 11.959C18.9604 12.037 19.0677 12.0857 19.1869 12.0857H19.1877V12.0865ZM13.4062 10.743C14.2637 9.88704 15.4467 9.35818 16.7542 9.35818C18.0617 9.35818 19.2447 9.88704 20.1021 10.743C20.1801 10.821 20.2874 10.869 20.4059 10.869C20.6437 10.869 20.8358 10.6762 20.8358 10.4392C20.8358 10.3206 20.7878 10.2126 20.7098 10.1353C19.6963 9.12488 18.298 8.5 16.7534 8.5C15.2089 8.5 13.8106 9.12488 12.7971 10.1353C12.7191 10.2134 12.6711 10.3206 12.6711 10.4392C12.6711 10.677 12.8639 10.869 13.1009 10.869C13.2194 10.869 13.3275 10.821 13.4047 10.743H13.4062Z\"\r\n fill=\"#FF375E\"\r\n />\r\n </svg>\r\n\r\n <span class=\"fs-12 fw-normal fc-black\">{{\r\n element?.Service.name\r\n }}</span>\r\n </div>\r\n <div\r\n *ngSwitchCase=\"'Color'\"\r\n class=\"d-flex align-items-center gap-2\"\r\n >\r\n <span\r\n [ngClass]=\"columnsConfig[i].type\"\r\n [style.background]=\"\r\n element[column]?.colorCode\r\n ? element[column]?.colorCode\r\n : element[column]\r\n \"\r\n ></span>\r\n {{ element[column].title }}\r\n </div>\r\n <div\r\n *ngSwitchCase=\"'colorBg'\"\r\n [style.background]=\"\r\n 'rgba(var(--rgb-' + element[column]?.colorName + '), 0.1)'\r\n \"\r\n class=\"d-flex align-items-center gap-2 Colorbg p-2\"\r\n >\r\n <span class=\"bc-{{ element[column]?.colorName }}\"></span>\r\n {{ element[column].title }}\r\n </div>\r\n <div\r\n *ngSwitchCase=\"'assigned'\"\r\n [ngClass]=\"columnsConfig[i].type\"\r\n class=\"delegate d-flex align-items-center\"\r\n >\r\n <div class=\"img-card x-small circled-img\">\r\n <img\r\n [src]=\"element?.AssignedTo.image\"\r\n alt=\"\"\r\n onerror=\"this.onerror=null;this.src='assets/images/user.svg';\"\r\n />\r\n </div>\r\n <span class=\"mx-1\"></span>\r\n <span class=\"fs-12 fc-black\">{{\r\n element?.AssignedTo.name\r\n }}</span>\r\n <!--\r\n <span class=\"sfi sfi-close fc-coral\"></span>\r\n -->\r\n </div>\r\n\r\n <span\r\n *ngSwitchCase=\"'coloredText'\"\r\n [style.color]=\"element[column]?.['color']\"\r\n >{{\r\n element[column]?.['title']\r\n }}</span\r\n >\r\n <div\r\n *ngSwitchCase=\"'survey'\"\r\n [style.color]=\"element[column]?.['color']\"\r\n class=\"d-flex align-items-center gap-1 text-nowrap\"\r\n >\r\n <span\r\n class=\"fs-20 sfi sfi-emoji-{{(element[column]?.['title']['en'].toLowerCase()) }}\"\r\n ></span>\r\n {{ element[column]?.['title'] }}\r\n </div>\r\n\r\n <div\r\n *ngSwitchCase=\"'Satisfaction'\"\r\n [ngClass]=\"columnsConfig[i].type\"\r\n class=\"delegate d-flex gap-2 align-items-center\"\r\n >\r\n <!--\r\n <ds-icon icon=\"star-f\" class=\"fc-dark-gray\"></ds-icon>\r\n -->\r\n\r\n <span\r\n class=\"fs-12 fc-black\"\r\n >{{ element[column].percentage }}%</span\r\n >\r\n <ds-status\r\n class=\"auto-status\"\r\n size=\"small\"\r\n status=\"{{ element[column].status }}\"\r\n >\r\n <span class=\"fs-10\">\r\n {{ element[column].percentageTrend }}%\r\n </span>\r\n @if (element[column].trendStatus == 'up') {\r\n <ds-icon class=\"fs-13 mx-1 growthIcon\" icon=\"up-growth\">\r\n </ds-icon>\r\n }\r\n @if (element[column].trendStatus != 'up') {\r\n <ds-icon class=\"fs-13 mx-1 downIcon\" icon=\"down-growth\">\r\n </ds-icon>\r\n }\r\n </ds-status>\r\n </div>\r\n\r\n <ng-container *ngSwitchCase=\"'actions'\">\r\n <div class=\"d-flex justify-content-start gap-2\">\r\n <ng-container\r\n *ngIf=\"columnsConfig[i]?.actions?.length <= 6\"\r\n >\r\n <ng-container\r\n *ngFor=\"let action of columnsConfig[i]?.actions\"\r\n >\r\n <ds-button\r\n (click)=\"$event.stopPropagation()\"\r\n *ngIf=\"action.viewMode === Actions.ALLOCATE\"\r\n shape=\"outline\"\r\n size=\"small\"\r\n >\r\n <span class=\"fs-12 fc-{{ action?.actionFontColor }}\">\r\n {{ action?.actionName | translate }}\r\n </span>\r\n </ds-button>\r\n\r\n <ds-button\r\n (click)=\"\r\n $event.stopPropagation(); action?.onClick(element)\r\n \"\r\n *ngIf=\"action === Actions.ALLOCATE\"\r\n icon\r\n size=\"small\"\r\n >\r\n <ds-icon class=\"fs-15\" icon=\"pen\"></ds-icon>\r\n </ds-button>\r\n <ng-container\r\n *ngIf=\"\r\n action.viewMode != Actions.VIEW ||\r\n action.viewMode != Actions.COPY\r\n \"\r\n >\r\n <ds-button\r\n (click)=\"\r\n $event.stopPropagation(); action?.onClick(element)\r\n \"\r\n *ngIf=\"\r\n action?.action === Actions.VIEW &&\r\n !action?.isHidden\r\n \"\r\n icon\r\n size=\"small\"\r\n >\r\n <ds-icon class=\"fs-15\" icon=\"eye\"></ds-icon>\r\n </ds-button>\r\n\r\n <ds-button\r\n (click)=\"\r\n $event.stopPropagation(); action?.onClick(element)\r\n \"\r\n *ngIf=\"\r\n action?.action === Actions.COPY &&\r\n !action?.isHidden\r\n \"\r\n icon\r\n size=\"small\"\r\n >\r\n <ds-icon class=\"fs-15\" icon=\"files-copy\"></ds-icon>\r\n </ds-button>\r\n <!-- @if(element.hasOwnProperty('canUpdate')){\r\n <ds-button (click)=\"$event.stopPropagation();action?.onClick(element)\" icon size=\"small\"\r\n *ngIf=\"action?.action === 'edit' && !action?.isHidden && element.canUpdate == true\">\r\n <ds-icon icon=\"pen\" class=\"fs-15\"></ds-icon>\r\n </ds-button>\r\n }@else { -->\r\n\r\n <ds-button\r\n (click)=\"\r\n $event.stopPropagation(); action?.onClick(element)\"\r\n *ngIf=\"\r\n action?.action === Actions.EDIT &&\r\n ![4, 7].includes(element?.contractStatus?.id)\"\r\n icon\r\n size=\"small\"\r\n >\r\n <ds-icon class=\"fs-15\" icon=\"pen\"></ds-icon>\r\n </ds-button>\r\n <!-- } -->\r\n\r\n <ds-button\r\n (click)=\"\r\n $event.stopPropagation(); action?.onClick(element)\r\n \"\r\n *ngIf=\"\r\n action?.action === Actions.DELETE &&\r\n !action?.isHidden &&\r\n ![4, 7].includes(element?.contractStatus?.id)\r\n \"\r\n icon\r\n size=\"small\"\r\n >\r\n <ds-icon\r\n class=\"fc-coral fs-15\"\r\n icon=\"trash\"\r\n ></ds-icon>\r\n </ds-button>\r\n\r\n <ds-button\r\n (click)=\"\r\n $event.stopPropagation(); action?.onClick(element)\r\n \"\r\n *ngIf=\"\r\n action?.action === Actions.DELETEPENDING &&\r\n !action?.isHidden &&\r\n element?.contractStatus?.id == 1\r\n \"\r\n icon\r\n size=\"small\"\r\n >\r\n <ds-icon\r\n class=\"fc-coral fs-15\"\r\n icon=\"trash\"\r\n ></ds-icon>\r\n </ds-button>\r\n\r\n <ds-button\r\n (click)=\"\r\n $event.stopPropagation(); action?.onClick(element)\r\n \"\r\n *ngIf=\"action?.action === Actions.CHART\"\r\n color=\"transparent\"\r\n size=\"small\"\r\n >\r\n <ds-icon\r\n class=\"fc-coral fs-15\"\r\n icon=\"chart-o\"\r\n ></ds-icon>\r\n </ds-button>\r\n\r\n @if (element.hasOwnProperty('canTakeAction')) {\r\n <ds-button\r\n (click)=\"\r\n $event.stopPropagation(); action?.onClick(element)\r\n \"\r\n size=\"small\"\r\n *ngIf=\"\r\n action?.action === Actions.APPROVE &&\r\n element.canTakeAction == true\r\n \"\r\n >\r\n <span class=\"fs-12\">\r\n {{ \"global.approve\" | translate }}\r\n </span>\r\n </ds-button>\r\n <ds-button\r\n shape=\"outline\"\r\n color=\"dark-gray\"\r\n (click)=\"\r\n $event.stopPropagation(); action?.onClick(element)\r\n \"\r\n size=\"small\"\r\n *ngIf=\"\r\n action?.action === Actions.REJECT &&\r\n element.canTakeAction == true\r\n \"\r\n shape=\"outline\"\r\n >\r\n <span class=\"fs-12\">\r\n {{ \"global.reject\" | translate }}\r\n </span>\r\n </ds-button>\r\n } @else {\r\n <ds-button\r\n (click)=\"\r\n $event.stopPropagation(); action?.onClick(element)\r\n \"\r\n size=\"small\"\r\n *ngIf=\"action?.action === Actions.APPROVE\"\r\n >\r\n <span class=\"fs-12\">\r\n {{ \"global.approve\" | translate }}\r\n </span>\r\n </ds-button>\r\n <ds-button\r\n shape=\"outline\"\r\n color=\"dark-gray\"\r\n (click)=\"\r\n $event.stopPropagation(); action?.onClick(element)\r\n \"\r\n size=\"small\"\r\n *ngIf=\"action?.action === Actions.REJECT\"\r\n shape=\"outline\"\r\n >\r\n <span class=\"fs-12\">\r\n {{ \"global.reject\" | translate }}\r\n </span>\r\n </ds-button>\r\n }\r\n\r\n <ds-button\r\n *ngIf=\"action?.action === Actions.DETAILS\"\r\n shape=\"text\"\r\n size=\"small\"\r\n >\r\n <span class=\"fs-12 underline\"> View Details </span>\r\n </ds-button>\r\n <ds-button\r\n (click)=\"\r\n $event.stopPropagation(); action?.onClick(element)\r\n \"\r\n *ngIf=\"\r\n action?.action === Actions.START &&\r\n element?.isFinalize\r\n \"\r\n size=\"small\"\r\n >\r\n <span class=\"fs-12\">\r\n {{ action?.actionName | translate }}\r\n </span>\r\n <ds-icon\r\n class=\"fs-16\"\r\n icon=\"media-play\"\r\n slot=\"prefix\"\r\n ></ds-icon>\r\n </ds-button>\r\n <ds-button\r\n (click)=\"\r\n $event.stopPropagation(); action?.onClick(element)\r\n \"\r\n *ngIf=\"action?.action === Actions.PREPARE\"\r\n color=\"light-gray\"\r\n size=\"small\"\r\n >\r\n <span class=\"fs-12 fc-black\">\r\n {{ action?.actionName | translate }}\r\n </span>\r\n <ds-icon\r\n class=\"fs-12 fc-black\"\r\n icon=\"settings\"\r\n slot=\"prefix\"\r\n ></ds-icon>\r\n </ds-button>\r\n\r\n <ds-button\r\n (click)=\"\r\n $event.stopPropagation(); action?.onClick(element)\r\n \"\r\n *ngIf=\"\r\n action?.action === Actions.START &&\r\n element?.isFinalize\r\n \"\r\n size=\"small\"\r\n >\r\n <span class=\"fs-12\">\r\n {{ action?.actionName | translate }}\r\n </span>\r\n <ds-icon\r\n class=\"fs-16\"\r\n icon=\"media-play\"\r\n slot=\"prefix\"\r\n ></ds-icon>\r\n </ds-button>\r\n\r\n <!-- <ds-button [color]=\"action?.actionColor\" size=\"small\"\r\n *ngIf=\"action?.action === 'customAction'\"\r\n (click)=\"$event.stopPropagation();action?.onClick(element)\" shape=\"{{action?.actionShape}}\" [class]=\"action?.actionColor\"\r\n ></ds-button> -->\r\n\r\n <ds-button\r\n (click)=\"\r\n $event.stopPropagation(); action?.onClick(element)\r\n \"\r\n *ngIf=\"action?.action === Actions.CUSTOMACTION\"\r\n [class]=\"action?.actionColor\"\r\n [color]=\"action?.actionColor\"\r\n shape=\"{{ action?.actionShape }}\"\r\n size=\"small\"\r\n >\r\n <span\r\n class=\"fs-12 fc-{{ action?.actionFontColor }}\"\r\n >\r\n {{ action?.actionName | translate }}\r\n </span>\r\n </ds-button>\r\n <ds-button\r\n (click)=\"\r\n $event.stopPropagation(); action?.onClick(element)\r\n \"\r\n *ngIf=\"\r\n action?.action === Actions.CUSTOMACTIONMANAGE &&\r\n (element.contractStatus.id == 7 ||\r\n element.contractStatus.id == 1)\r\n \"\r\n [class]=\"action?.actionColor\"\r\n [color]=\"action?.actionColor\"\r\n shape=\"{{ action?.actionShape }}\"\r\n size=\"small\"\r\n >\r\n <span\r\n class=\"fs-12 fc-{{ action?.actionFontColor }}\"\r\n >\r\n {{ action?.actionName | translate }}\r\n </span>\r\n </ds-button>\r\n\r\n <ds-button\r\n (click)=\"\r\n $event.stopPropagation(); action?.onClick(element)\r\n \"\r\n *ngIf=\"\r\n action?.action === Actions.CUSTOMACTIONEXTEND &&\r\n element.contractStatus.id == 7\r\n \"\r\n [class]=\"action?.actionColor\"\r\n [color]=\"action?.actionColor\"\r\n shape=\"{{ action?.actionShape }}\"\r\n size=\"small\"\r\n >\r\n <span\r\n class=\"fs-12 fc-{{ action?.actionFontColor }}\"\r\n >\r\n {{ action?.actionName | translate }}\r\n </span>\r\n </ds-button>\r\n <ds-button\r\n (click)=\"\r\n $event.stopPropagation(); action?.onClick(element)\r\n \"\r\n *ngIf=\"\r\n action?.action === Actions.CUSTOMACTIONDETAILS\r\n \"\r\n [class]=\"action?.actionColor\"\r\n [color]=\"action?.actionColor\"\r\n shape=\"{{ action?.actionShape }}\"\r\n size=\"small\"\r\n >\r\n <span\r\n class=\"fs-12 fc-{{ action?.actionFontColor }}\"\r\n >\r\n {{ action?.actionName | translate }}\r\n </span>\r\n </ds-button>\r\n <ds-status\r\n *ngIf=\"action?.action === Actions.STATUS\"\r\n [status]=\"action?.Status.status\"\r\n class=\"fs-12 statusAction w-100\"\r\n >\r\n <span class=\"fc-black\">\r\n {{ action?.Status.title | translate }}\r\n </span>\r\n </ds-status>\r\n </ng-container>\r\n </ng-container>\r\n </ng-container>\r\n\r\n <ng-container *ngIf=\"columnsConfig[i]?.actions?.length > 6\">\r\n <ds-button\r\n #statusMenuTrigger=\"matMenuTrigger\"\r\n (click)=\"$event.stopPropagation()\"\r\n *ngIf=\"columnsConfig[i]?.actions?.length > 1\"\r\n [matMenuTriggerFor]=\"statusMenu\"\r\n class=\"dots\"\r\n shape=\"text\"\r\n size=\"small\"\r\n >\r\n <ds-icon\r\n class=\"fs-20 fc-dark-gray\"\r\n icon=\"dots\"\r\n ></ds-icon>\r\n </ds-button>\r\n\r\n <mat-menu #statusMenu=\"matMenu\">\r\n <button\r\n (click)=\"action?.onClick(element)\"\r\n *ngFor=\"let action of columnsConfig[i]?.actions\"\r\n mat-menu-item\r\n >\r\n <span\r\n class=\"fs-12 fc-black\"\r\n >{{ action?.actionName | translate }}\r\n </span>\r\n </button>\r\n </mat-menu>\r\n </ng-container>\r\n </div>\r\n </ng-container>\r\n <ng-container *ngSwitchCase=\"'specs'\">\r\n @if (element?.[column]) {\r\n <span\r\n #statusMenuTrigger=\"matMenuTrigger\"\r\n (click)=\"$event.stopPropagation()\"\r\n [matMenuTriggerFor]=\"specsMenu\"\r\n [ngClass]=\"columnsConfig[i].type\"\r\n class=\"{{\r\n columnsConfig[i].type\r\n }} fc-coral underline cursor-pointer\"\r\n >\r\n {{ columnsConfig[i].clickableText | translate }}\r\n </span>\r\n }\r\n\r\n <mat-menu #specsMenu=\"matMenu\" class=\"p-4 text-center\">\r\n <span class=\"fs-14\">\r\n {{ element[column] }}\r\n </span>\r\n </mat-menu>\r\n </ng-container>\r\n\r\n <!--<div\r\n *ngSwitchCase=\"'specs'\" [ngClass]=\"columnsConfig[i].type\"\r\n class=\"d-flex gap-1\">\r\n {{ element[column] | json }}\r\n <ng-container *ngFor=\"let item of element[column]\">\r\n\r\n <div\r\n class=\"progress-container default-progress medium radius-0 \"\r\n matTooltip=\"Team assignment {{item.value}}%\" matTooltipPosition=\"below\">\r\n <div\r\n [style.width.%]=\"item.value\"\r\n class=\"progress-bar bg-color-{{item.color}}\"></div>\r\n </div>\r\n </ng-container>\r\n\r\n </div>-->\r\n\r\n <span\r\n *ngSwitchDefault\r\n [ngClass]=\"columnsConfig[i].type\"\r\n class=\"text-nowrap\"\r\n matTooltip=\" {{\r\n columnsConfig[i].arKey\r\n ? translateService.currentLang == 'ar'\r\n ? mapText(columnsConfig[i].arKey, element[column])\r\n : mapText(columnsConfig[i].enKey, element[column])\r\n : element[column]\r\n ? element[column]\r\n : '-'\r\n }}\"\r\n matTooltipPosition=\"below\"\r\n >\r\n {{\r\n columnsConfig[i].arKey\r\n ? translateService.currentLang == \"ar\"\r\n ? mapText(columnsConfig[i].arKey, element[column])\r\n : mapText(columnsConfig[i].enKey, element[column])\r\n : element[column]\r\n ? element[column]\r\n : \"-\"\r\n }}\r\n </span>\r\n </ng-container>\r\n </td>\r\n </ng-container>\r\n </ng-container>\r\n }\r\n </ng-container>\r\n }\r\n\r\n <tr *matHeaderRowDef=\"columns; sticky: true\" mat-header-row></tr>\r\n <tr\r\n (click)=\"clickRow(row)\"\r\n *matRowDef=\"let row; columns: columns\"\r\n [ngClass]=\"{ 'selected-row': row?.fastTrackSeen === false }\"\r\n mat-row\r\n role=\"button\"\r\n ></tr>\r\n </table>\r\n }\r\n </ng-container>\r\n }\r\n @if (isLoading) {\r\n <ds-loading-table [cols]=\"columns.length\" [rows]=\"5\"></ds-loading-table>\r\n }\r\n @if (!isLoading && dataSource.filteredData?.length == 0) {\r\n <ds-message\r\n [label]=\" customMessage?? 'NoData' | translate\"\r\n type=\"emptyList\"\r\n ></ds-message>\r\n }\r\n</div>\r\n@if (dataSource.filteredData?.length && hasPaginator) {\r\n <mat-paginator\r\n #paginator\r\n (page)=\"pageChanged($event)\"\r\n [length]=\"totalElements\"\r\n [pageIndex]=\"currentPage\"\r\n [pageSizeOptions]=\"[5, 10, 15, 20, 100]\"\r\n [pageSize]=\"pageSize\"\r\n aria-label=\"Select page\"\r\n showFirstLastButtons\r\n >\r\n </mat-paginator>\r\n}\r\n","import {Component, CUSTOM_ELEMENTS_SCHEMA} from '@angular/core';\r\nimport {CoreI18nService, CoreService, SidenavService} from '../../../services';\r\n\r\n@Component({\r\n selector: 'app-approvals',\r\n templateUrl: './approvals.component.html',\r\n styleUrls: ['./approvals.component.scss'],\r\n standalone: true,\r\n schemas: [CUSTOM_ELEMENTS_SCHEMA],\r\n imports: []\r\n})\r\nexport class ApprovalsComponent {\r\n\r\n constructor(private readonly sidenavService: SidenavService,\r\n public i18n: CoreI18nService,\r\n public coreService: CoreService\r\n ) { }\r\n\r\n\r\n\r\n closeSidenav() {\r\n this.sidenavService.publish('close', null);\r\n }\r\n\r\n}\r\n","<section class=\"main-sidenav\">\r\n <div class=\"sidenav-title\">\r\n <h3>{{ i18n.translate('approvalCycle') }}</h3>\r\n <ds-button (click)=\"closeSidenav()\" icon>\r\n <ds-icon icon=\"close\" class=\"fs-20 fc-black\"></ds-icon>\r\n </ds-button>\r\n </div>\r\n <div class=\"sidenav-body p-4\">\r\n @if (coreService.approvals) {\r\n <ds-approvals approvalsData=\"{{coreService.approvals}}\"></ds-approvals>\r\n } @else {\r\n <ds-message label=\"{{i18n.translate('NoData2')}}\"></ds-message>\r\n }\r\n </div>\r\n</section>\r\n","import {Component, CUSTOM_ELEMENTS_SCHEMA, DestroyRef, inject, Input} from '@angular/core';\r\nimport * as Constants from '../../../constants/constants';\r\nimport {CoreI18nService, CoreService, SidenavService} from '../../../services';\r\nimport {Form, Section} from '../../../interfaces';\r\nimport {ApprovalsComponent} from '../approvals/approvals.component';\r\nimport {ToastrService} from \"ngx-toastr\";\r\nimport {SatPopoverModule} from \"@ncstate/sat-popover\";\r\nimport { takeUntilDestroyed } from '@angular/core/rxjs-interop';\r\n\r\nconst dangerStatusValues = [\r\n Constants.FORM_STATUS_REJECTED,\r\n Constants.FORM_STATUS_CANCELLED,\r\n 'deny',\r\n 'reject',\r\n 'unsatisfied',\r\n 'cancel'\r\n];\r\n\r\nconst warningStatusValues = [\r\n Constants.FORM_STATUS_PENDING,\r\n 'pending'\r\n];\r\n\r\n@Component({\r\n selector: 'lib-approvals-workflow',\r\n templateUrl: './approvals-workflow.component.html',\r\n styleUrls: ['./approvals-workflow.component.scss'],\r\n standalone: true,\r\n imports: [\r\n SatPopoverModule\r\n ],\r\n schemas: [CUSTOM_ELEMENTS_SCHEMA]\r\n})\r\nexport class ApprovalsWorkflowComponent {\r\n @Input() section: Section;\r\n @Input() form: Form;\r\n approvals: unknown[] = [];\r\n loading = false;\r\n destroyRef = inject(DestroyRef);\r\n\r\n constructor(\r\n public i18n: CoreI18nService,\r\n private readonly sidenavService: SidenavService,\r\n private readonly coreService: CoreService,\r\n private readonly toasterService: ToastrService\r\n ) { }\r\n\r\n getApprovals() {\r\n if (this.isLoading()) {\r\n return;\r\n }\r\n\r\n this.initializeApprovals();\r\n this.coreService.perspectiveApproves(this.section.body.details).pipe(\r\n takeUntilDestroyed(this.destroyRef)\r\n ).subscribe(\r\n response => this.handleResponse(response),\r\n err => this.handleError(err)\r\n );\r\n }\r\n\r\n isLoading(): boolean {\r\n return this.loading;\r\n }\r\n\r\n initializeApprovals() {\r\n this.approvals = [];\r\n this.loading = true;\r\n }\r\n\r\n handleResponse(response: any) {\r\n this.loading = false;\r\n if (response?.approvals) {\r\n this.approvals = response.approvals.map(approval => this.createApprovalObject(approval));\r\n this.showProspectiveApprovals();\r\n }\r\n }\r\n\r\n createApprovalObject(approval) {\r\n const stageDetails = this.getStageDetails(approval);\r\n const status = stageDetails ? this.getClassBasedOnStatus(stageDetails.header.status) : '';\r\n return {\r\n id: 1,\r\n name: approval.value,\r\n title: approval.key,\r\n image: `/group/i-gate/wm-bpm/forms/-/proxy/portrait?email=${approval.key}`,\r\n status,\r\n statusLabel: status\r\n };\r\n }\r\n\r\n getStageDetails(approval) {\r\n return this.form.sections.find(stage =>\r\n stage.id === `${(approval?.role)?.toLowerCase()}Approval`\r\n );\r\n }\r\n\r\n handleError(err: any) {\r\n this.loading = false;\r\n err?.error?.meta?.messages?.forEach(msg => {\r\n this.toasterService.error(msg.message);\r\n });\r\n }\r\n\r\n transformStatus(status: string): string {\r\n return status?.toLowerCase() || '';\r\n }\r\n\r\n getClassBasedOnStatus(status: string) {\r\n const lowerStatus = this.transformStatus(status);\r\n\r\n if (!status ||\r\n warningStatusValues.includes(lowerStatus)) {\r\n return 'success';\r\n }\r\n\r\n if (dangerStatusValues.find(value => lowerStatus.includes(value))) {\r\n return 'danger';\r\n }\r\n\r\n if (warningStatusValues.find(value => lowerStatus.includes(value))) {\r\n return 'warning';\r\n }\r\n\r\n return 'success';\r\n }\r\n\r\n showProspectiveApprovals() {\r\n this.coreService.approvals = JSON.stringify(this.approvals);\r\n this.sidenavService.publish('open', ApprovalsComponent);\r\n }\r\n\r\n}\r\n","<ds-button\r\n color=\"white\" shape=\"text\" square size=\"small\"\r\n (click)=\"getApprovals()\">\r\n <slot name=\"prefix\">\r\n @if (loading) {\r\n <ds-icon class=\"sfi sfi-spinner d-inline-block spin fc-coral fs-30-imp\"></ds-icon>\r\n } @else {\r\n <ds-icon icon=\"workflow\" class=\"fs-24\"></ds-icon>\r\n }\r\n </slot>\r\n</ds-button>\r\n","import {\r\n AfterViewInit,\r\n ChangeDetectorRef,\r\n Component,\r\n CUSTOM_ELEMENTS_SCHEMA,\r\n DestroyRef,\r\n EventEmitter,\r\n inject,\r\n Input,\r\n NO_ERRORS_SCHEMA,\r\n Output\r\n} from '@angular/core';\r\nimport * as constants from \"../../../constants\";\r\nimport {NgClass, NgForOf, NgIf} from \"@angular/common\";\r\nimport {InputComponent} from \"../form-field\";\r\nimport {ActionStateService, CoreI18nService, CoreService, SidenavService} from \"../../../services\";\r\nimport {Form, Section} from \"../../../interfaces\";\r\nimport {SubmitDialogComponent} from \"../dialogs/submit-dialog/submit-dialog.component\";\r\nimport {NoopScrollStrategy} from \"@angular/cdk/overlay\";\r\nimport {MatDialog} from \"@angular/material/dialog\";\r\nimport {FormGroup} from \"@angular/forms\";\r\nimport {ToastrService} from \"ngx-toastr\";\r\nimport {ApprovalsWorkflowComponent} from \"../../app-component-sections/approvals-workflow/approvals-workflow.component\";\r\nimport {takeUntilDestroyed} from '@angular/core/rxjs-interop';\r\n\r\n@Component({\r\n selector: 'lib-action-buttons',\r\n templateUrl: './action-buttons.component.html',\r\n styleUrl: './action-buttons.component.scss',\r\n standalone: true,\r\n schemas: [CUSTOM_ELEMENTS_SCHEMA, NO_ERRORS_SCHEMA],\r\n imports: [\r\n NgClass,\r\n InputComponent,\r\n NgIf,\r\n NgForOf,\r\n ApprovalsWorkflowComponent\r\n ]\r\n})\r\nexport class ActionButtonsComponent implements AfterViewInit {\r\n @Input() lovOptions: any[];\r\n @Input() lovType: string;\r\n @Input() fieldsForm: FormGroup;\r\n @Input() form: Form;\r\n @Input() section: Section;\r\n @Input() sections: Section[];\r\n @Input() showApprovalCycle: boolean = true;\r\n @Input() customCall: boolean = false;\r\n @Output() resetFormEmit: EventEmitter<any> = new EventEmitter();\r\n @Output() customCallEmit: EventEmitter<any> = new EventEmitter();\r\n actionStates: { [action: string]: boolean };\r\n isSubmitting = {\r\n 'SUBMIT': false\r\n };\r\n submittingForm: boolean;\r\n destroyRef = inject(DestroyRef);\r\n\r\n\r\n constructor(public i18n: CoreI18nService,\r\n private actionStateService: ActionStateService,\r\n private coreService: CoreService,\r\n public dialog: MatDialog,\r\n private toasterService: ToastrService,\r\n private cdRef: ChangeDetectorRef\r\n ) {\r\n this.actionStateService.actionStates$.pipe(\r\n takeUntilDestroyed(this.destroyRef)\r\n ).subscribe(states => this.actionStates = states);\r\n\r\n }\r\n\r\n ngAfterViewInit() {\r\n this.lovOptions?.forEach((item) => {\r\n this.isSubmitting[item.value] = false\r\n })\r\n this.cdRef.detectChanges();\r\n }\r\n\r\n resetForm() {\r\n this.resetFormEmit.emit()\r\n }\r\n\r\n onSubmit(action: string) {\r\n if (this.customCall) {\r\n this.customCallEmit.emit(action)\r\n } else {\r\n this.submitForm(action, this.section)\r\n }\r\n }\r\n\r\n submitForm(action: string, section: Section) {\r\n const lastSection = this.sections[this.sections.length - 1];\r\n\r\n if (lastSection.body.details.decision) {\r\n lastSection.body.details.decision['key'] = action;\r\n }\r\n\r\n this.isSubmitting[action] = true;\r\n this.submittingForm = true;\r\n\r\n this.coreService.submitForm(section, action).pipe(\r\n takeUntilDestroyed(this.destroyRef)\r\n ).subscribe(\r\n (response: any) => {\r\n if (response) {\r\n this.isSubmitting[action] = false;\r\n this.success(response);\r\n }\r\n },\r\n (err: any) => {\r\n err?.error?.meta?.messages?.forEach((msg) => {\r\n this.submittingForm = false;\r\n this.isSubmitting[action] = false;\r\n this.toasterService.error(msg.message);\r\n });\r\n }\r\n );\r\n }\r\n\r\n success(response) {\r\n console.log('success', response)\r\n const dialogRef = this.dialog.open(SubmitDialogComponent, {\r\n data: response,\r\n panelClass: ['main-popup', 'confirm-dialog'],\r\n scrollStrategy: new NoopScrollStrategy(),\r\n });\r\n dialogRef.afterClosed().subscribe(() => {\r\n window.location.reload();\r\n });\r\n }\r\n\r\n buttonShape(item) {\r\n if (item?.value === constants.FORM_STATUS_REJECT || item?.value === constants.FORM_STATUS_CANCEL || item?.value === constants.FORM_STATUS_SEND_BACK) {\r\n return 'outline';\r\n }\r\n return '';\r\n }\r\n\r\n buttonColor(item) {\r\n if (item?.value === constants.FORM_STATUS_REJECT || item?.value === constants.FORM_STATUS_SEND_BACK) {\r\n return 'red';\r\n }\r\n return '';\r\n }\r\n}\r\n","<div class=\"mt-4\">\r\n @if (lovType === 'button') {\r\n <div class=\"d-flex align-items-center gap-3\">\r\n <ds-button shape=\"text\" color=\"red\" (click)=\"resetForm()\">\r\n <span class=\"fs-16 fw-medium\">{{ i18n.translate('reset') }}</span>\r\n </ds-button>\r\n @if (form?.sections?.length == 1 && showApprovalCycle) {\r\n <lib-approvals-workflow [section]=\"section\" [form]=\"form\"></lib-approvals-workflow>\r\n }\r\n <div class=\"d-flex flex-wrap align-items-center flex-grow-1 flex-row-reverse gap-3\">\r\n @for (item of lovOptions; track $index) {\r\n <ds-button\r\n loading=\"{{isSubmitting[item.value]}}\"\r\n [ngClass]=\"{'disabled': !actionStates[item.value] || submittingForm}\"\r\n shape=\"{{ buttonShape(item) }}\"\r\n color=\"{{ buttonColor(item) }}\"\r\n (click)=\"onSubmit(item?.value)\">\r\n {{ item?.['description'] }}\r\n </ds-button>\r\n }\r\n </div>\r\n </div>\r\n } @else {\r\n <div class=\"d-flex align-items-center gap-3\">\r\n <ds-button shape=\"text\" color=\"red\" (click)=\"resetForm()\">\r\n <span class=\"fs-16 fw-medium\">{{ i18n.translate('reset') }}</span>\r\n </ds-button>\r\n @if (form?.sections?.length == 1 && showApprovalCycle) {\r\n <lib-approvals-workflow [section]=\"section\" [form]=\"form\"></lib-approvals-workflow>\r\n }\r\n <div class=\"d-flex flex-wrap align-items-center flex-grow-1 flex-row-reverse gap-3\">\r\n <ds-button\r\n [ngClass]=\"{'disabled': !actionStates['SUBMIT'] || submittingForm}\"\r\n loading=\"{{isSubmitting['SUBMIT']}}\"\r\n (click)=\"onSubmit('SUBMIT')\">\r\n {{ i18n.translate('submit') }}\r\n </ds-button>\r\n </div>\r\n </div>\r\n }\r\n</div>\r\n","import { Component, CUSTOM_ELEMENTS_SCHEMA, Input } from '@angular/core';\r\nimport { CoreI18nService } from '../../../services';\r\nimport { MatAccordion, MatExpansionPanel, MatExpansionPanelTitle } from '@angular/material/expansion';\r\n\r\ninterface FAQ {\r\n title: string,\r\n content: string\r\n}\r\n\r\n@Component({\r\n selector: 'app-faqs',\r\n templateUrl: './faqs.component.html',\r\n styleUrls: ['./faqs.component.scss'],\r\n standalone: true,\r\n imports: [\r\n MatAccordion,\r\n MatExpansionPanel,\r\n MatExpansionPanelTitle\r\n ],\r\n schemas: [CUSTOM_ELEMENTS_SCHEMA]\r\n})\r\nexport class FaqsComponent {\r\n @Input() adminView = false;\r\n @Input() faqs: FAQ[];\r\n\r\n constructor(public i18n: CoreI18nService) { }\r\n\r\n\r\n}\r\n","<mat-accordion class=\"primary-accordion\">\r\n @for (item of faqs; track $index) {\r\n <mat-expansion-panel [expanded]=\"$index==0\" class=\"mb-4\" hideToggle #expansionPanel=\"matExpansionPanel\">\r\n @if (item.title) {\r\n <mat-expansion-panel-header class=\"expansion-header\">\r\n <mat-panel-title>\r\n <h3 class=\"fs-14 fw-medium fc-black mb-0 flex-grow-1 align-self-center\">{{ item.title }}</h3>\r\n @if (expansionPanel.expanded) {\r\n <ds-icon icon=\"minus\" class=\"fs-20 fc-dark-gray\"></ds-icon>\r\n } @else {\r\n <ds-icon icon=\"plus-1\" class=\"fs-20 fc-coral\"></ds-icon>\r\n }\r\n </mat-panel-title>\r\n\r\n </mat-expansion-panel-header>\r\n }\r\n <p class=\"fs-14 fc-dark-gray\">\r\n {{ item.content }}\r\n </p>\r\n </mat-expansion-panel>\r\n }\r\n</mat-accordion>\r\n","import { Component, CUSTOM_ELEMENTS_SCHEMA } from '@angular/core';\r\nimport { CoreI18nService, SidenavService } from '../../../services';\r\nimport { FaqsComponent } from '../faqs';\r\n\r\n@Component({\r\n selector: 'app-faq-sidenav',\r\n templateUrl: './faq-sidenav.component.html',\r\n styleUrls: ['./faq-sidenav.component.scss'],\r\n standalone: true,\r\n imports: [\r\n FaqsComponent\r\n ],\r\n schemas: [CUSTOM_ELEMENTS_SCHEMA]\r\n\r\n})\r\nexport class FaqSidenavComponent {\r\n\r\n data = [];\r\n\r\n constructor(private readonly sidenavService: SidenavService,\r\n public i18n: CoreI18nService) { }\r\n\r\n\r\n closeSidenav() {\r\n this.sidenavService.publish('close', FaqSidenavComponent);\r\n }\r\n\r\n}\r\n","<div class=\"main-sidenav\">\r\n <div class=\"sidenav-title\">\r\n <h3>{{i18n.translate('serviceBrief')}}</h3>\r\n\r\n <ds-button (click)=\"closeSidenav()\" icon>\r\n <ds-icon icon=\"close\" class=\"fs-20 fc-black\"></ds-icon>\r\n </ds-button>\r\n </div>\r\n <div class=\"sidenav-body\">\r\n <app-faqs [faqs]=\"data\"></app-faqs>\r\n </div>\r\n</div>\r\n","/* eslint-disable @angular-eslint/component-selector */\r\nimport {Component, Input} from '@angular/core';\r\nimport { MatDialog } from '@angular/material/dialog';\r\nimport { SidenavService } from '../../../services';\r\nimport {FaqSidenavComponent} from \"../../app-component-sections/faq-sidenav/faq-sidenav.component\";\r\n@Component({\r\n selector: 'app-title-section',\r\n templateUrl: './title-section.component.html',\r\n styleUrls: ['./title-section.component.scss']\r\n})\r\nexport class TitleSectionComponent {\r\n\r\n @Input() title = '';\r\n @Input() tooltip = true;\r\n // introJS = introJs();\r\n constructor(private sidenavService: SidenavService, private dialog: MatDialog ) { }\r\n\r\n\r\n openFaq(){\r\n this.sidenavService.publish('open', FaqSidenavComponent, 'end', 'over');\r\n }\r\n\r\n // add(): void {\r\n // const dialogRef = this.dialog.open(ConfirmationPopupComponent, {\r\n // width: '700px',\r\n // panelClass: ['confirm-popup', 'main-popup'],\r\n // data: {\r\n // title: 'Your request has been submitted Successfully',\r\n // id: '862456',\r\n // type: 'view',\r\n // icon: 'done',\r\n // },\r\n // });\r\n\r\n // // dialogRef.afterClosed().subscribe(() => {\r\n // // location.reload()\r\n // // });\r\n // }\r\n\r\n}\r\n","<header class=\"section-title\">\r\n <div class=\"d-flex align-items-center\">\r\n <h1 class=\"main-title mb-0\" >{{title}}</h1>\r\n <!-- <span class=\"mx-1\"></span>\r\n <button mat-icon-button class=\"btn button-transparent square\" *ngIf=\"tooltip\" (click)=\"openFaq()\">\r\n <span class=\"sfi sfi-info fc-dark-gray font-20-imp\" id=\"step1\"></span>\r\n </button>\r\n <span class=\"mx-1\"></span> -->\r\n </div>\r\n <div class=\"filter-actions\">\r\n <div class=\"filter-section\">\r\n <ng-content select=\"[filter]\"></ng-content>\r\n </div>\r\n <span class=\"mx-1\"></span>\r\n <ng-content select=\"[action]\"></ng-content>\r\n <ng-content select=\"[search]\"></ng-content>\r\n </div>\r\n</header>\r\n","import {Component, CUSTOM_ELEMENTS_SCHEMA, EventEmitter, Inject, Input, Output} from '@angular/core';\r\nimport {MAT_DIALOG_DATA} from '@angular/material/dialog';\r\nimport {CoreI18nService, SidenavService} from '../../../services';\r\nimport {ProfileInfoDrop} from '../../../interfaces';\r\nimport {NgIf} from '@angular/common';\r\nimport {InfoItemComponent} from \"../../shared-components\";\r\n\r\n\r\n@Component({\r\n selector: 'app-profile-section',\r\n templateUrl: './profile-section.component.html',\r\n styleUrls: ['./profile-section.component.scss'],\r\n standalone: true,\r\n imports: [\r\n InfoItemComponent,\r\n NgIf\r\n ],\r\n schemas: [CUSTOM_ELEMENTS_SCHEMA],\r\n providers: [\r\n {provide: MAT_DIALOG_DATA, useValue: { }}\r\n ]\r\n})\r\nexport class ProfileSectionComponent {\r\n\r\n @Input() profileFormVisibility: any;\r\n profile: ProfileInfoDrop;\r\n message: any;\r\n @Output() close: EventEmitter<boolean> = new EventEmitter();\r\n\r\n constructor(public i18n: CoreI18nService,\r\n private readonly sidenavService: SidenavService,\r\n @Inject(MAT_DIALOG_DATA) public data: any) {\r\n this.profile = sidenavService.data;\r\n }\r\n\r\n\r\n closeSidenav() {\r\n this.sidenavService.publish('close', null);\r\n }\r\n\r\n}\r\n","<div class=\"main-sidenav\">\r\n <div class=\"sidenav-title bc-white\">\r\n <h3> {{ profile?.fullName }}</h3>\r\n <ds-icon icon=\"close\" class=\"fc-black fs-20 p-3 cursor-pointer\" (click)=\"closeSidenav()\"></ds-icon>\r\n </div>\r\n <div class=\"sidenav-body p-0\">\r\n <div class=\"d-flex flex-column align-items-center gap-3 sidenav-user bc-off-white text-center\">\r\n <ds-avatar image=\"/group/i-gate/wm-bpm/forms/-/proxy/portrait?email={{profile?.employeeEmail}}\" class=\"mb-2\"></ds-avatar>\r\n <div class=\"d-flex flex-column gap-1\">\r\n <h4 class=\"fs-16 fc-black fw-medium mb-0\">{{ profile?.fullName }}</h4>\r\n <h6 class=\"fs-12 fc-dark-gray fw-normal mb-0\" *ngIf=\"profile?.jobPosition\">{{ profile?.jobPosition }}</h6>\r\n </div>\r\n <div class=\"d-flex flex-wrap gap-2\">\r\n <div class=\"fs-12 fc-black d-flex align-items-center gap-2 box-shadow bc-white radius-4 p-2 profile-box\">\r\n <ds-icon icon=\"mail-o\" class=\"fc-coral fs-20\"></ds-icon>\r\n <a [href]=\"'mailTo:' + profile?.employeeEmail\" class=\"fc-black\">{{ profile?.employeeEmail }}</a>\r\n </div>\r\n <div class=\"fs-12 fc-black d-flex align-items-center gap-2 box-shadow bc-white radius-4 p-2 profile-box\" *ngIf=\"profile?.businessPhone\">\r\n <ds-icon icon=\"phone\" class=\"fc-coral fs-20\"></ds-icon>\r\n <a [href]=\"'tel:' + profile?.businessPhone\" class=\"fc-black\">\r\n <bdi>{{ profile?.businessPhone }}</bdi>\r\n </a>\r\n </div>\r\n </div>\r\n </div>\r\n <div\r\n class=\"info-section no-bg px-4 pb-4\"\r\n *ngIf=\"\r\n profile?.departmentName ||\r\n profile?.generalDepartmentName ||\r\n profile?.directManagerName ||\r\n profile?.humanResourcesLocation ||\r\n profile?.nationality ||\r\n profile?.generalDepartmentCode\r\n \"\r\n >\r\n <app-info-item\r\n *ngIf=\"profile?.employeeNumber\"\r\n class=\"info-item w-100\"\r\n [label]=\"i18n.translate('employeeID')\"\r\n [value]=\"profile?.employeeNumber\"\r\n ></app-info-item>\r\n\r\n <app-info-item\r\n *ngIf=\"profile?.departmentName\"\r\n class=\"info-item w-100\"\r\n [label]=\"i18n.translate('departmentName')\"\r\n [value]=\"profile?.departmentName\"\r\n ></app-info-item>\r\n\r\n <app-info-item\r\n *ngIf=\"profile?.generalDepartmentName\"\r\n class=\"info-item w-100\"\r\n [label]=\"i18n.translate('generalDepartmentName')\"\r\n [value]=\"profile?.generalDepartmentName\"\r\n ></app-info-item>\r\n\r\n <app-info-item\r\n *ngIf=\"profile?.directManagerName\"\r\n class=\"info-item w-100\"\r\n [label]=\"i18n.translate('directManager')\"\r\n [value]=\"profile?.directManagerName\"\r\n ></app-info-item>\r\n\r\n <app-info-item\r\n *ngIf=\"profile?.humanResourcesLocation\"\r\n class=\"info-item w-100\"\r\n [label]=\"i18n.translate('humanResourcesLocation')\"\r\n [value]=\"profile?.humanResourcesLocation\"\r\n ></app-info-item>\r\n\r\n <app-info-item\r\n *ngIf=\"profile?.nationality\"\r\n class=\"info-item w-100\"\r\n [label]=\"i18n.translate('nationality') \"\r\n [value]=\"profile?.nationality\"\r\n ></app-info-item>\r\n\r\n <app-info-item\r\n *ngIf=\"profile?.sectorName\"\r\n class=\"info-item w-100\"\r\n [label]=\"i18n.translate('sector')\"\r\n [value]=\"profile?.sectorName\"\r\n ></app-info-item>\r\n\r\n </div>\r\n <ng-container\r\n *ngIf=\"\r\n !profile?.departmentName &&\r\n !profile?.generalDepartmentName &&\r\n !profile?.directManagerName &&\r\n !profile?.humanResourcesLocation &&\r\n !profile?.nationality &&\r\n !profile?.generalDepartmentCode\r\n \"\r\n >\r\n <ds-message type=\"emptyList\" [attr.label]=\"'noData' \"></ds-message>\r\n </ng-container>\r\n </div>\r\n</div>\r\n","export class Form {\r\n constructor(\r\n public header: Header,\r\n public profileInfoDrop: ProfileInfoDrop,\r\n public commentsDrop: CommentsDrop[],\r\n public inboxItem: InboxItem,\r\n public sections: Section[],\r\n public lovs: any,\r\n public messages: Messages | null, // Added null as a type\r\n public confidentialComments?: CommentsDrop[]\r\n ) {}\r\n}\r\n\r\nexport class Header {\r\n constructor(\r\n public requesterName: string,\r\n public requesterPhoto: string,\r\n public formId?: string,\r\n public creationDate?: string,\r\n public status?: {[key:string]: string},\r\n public details?: any\r\n ) {}\r\n}\r\n\r\nexport class ProfileInfoDrop {\r\n constructor(\r\n public onBehalfAuthorized?: boolean,\r\n public employeeNumber?: string,\r\n public employeeEmail?: string,\r\n public fullName?: string,\r\n public generalDepartmentName?: string,\r\n public jobPosition?: string,\r\n public sectorName?: string,\r\n public departmentName?: string,\r\n public generalDepartmentCode?: string,\r\n public humanResourcesLocation?: string,\r\n public nationality?: string,\r\n public businessPhone?: string,\r\n public directManagerName?: string,\r\n public seniorSectorName?: string\r\n ) {}\r\n}\r\n\r\nexport class CommentsDrop {\r\n constructor(\r\n public profilePicture?: string,\r\n public employeeName?: string,\r\n public commentBody?: string,\r\n public commentDate?: string,\r\n public attachment?: string,\r\n public jobPosition?: string\r\n ) {}\r\n}\r\n\r\nexport class Section<T = any> {\r\n constructor(\r\n public id?: string,\r\n public header?: SectionHeader,\r\n public body?: any\r\n ) {}\r\n}\r\n\r\nexport class SectionHeader {\r\n constructor(\r\n public processedBy?: string,\r\n public processingDate?: string,\r\n public personTo?: string,\r\n public personToThumbnail?: string,\r\n public delegatedTo?: string,\r\n public delegatedToThumbnail?: string,\r\n public status?: string,\r\n public hasComments?: boolean,\r\n public readOnly?: boolean\r\n ) {}\r\n}\r\n\r\nexport class Messages {\r\n constructor(\r\n public errorFields?: any,\r\n public info?: string[],\r\n public warning?: string[],\r\n public error?: string[],\r\n public originalMsgs?: Array<{code: string; message: string; type: string}>\r\n ) {}\r\n}\r\n\r\n\r\nexport class InboxItem {\r\n constructor(\r\n public flagPriority?: string,\r\n public isFlagged?: string,\r\n public canRequestFeedback?: string,\r\n public hasFeedback?: string,\r\n public isPending?: string,\r\n public isRequested?: string,\r\n public isResponded?: string\r\n ) {}\r\n}\r\n","import {MAT_DIALOG_DATA, MatDialogClose, MatDialogContent, MatDialogTitle} from '@angular/material/dialog';\r\nimport {Component, CUSTOM_ELEMENTS_SCHEMA, DestroyRef, inject, Inject, Input, OnInit} from '@angular/core';\r\nimport {CoreI18nService} from '../../../services';\r\nimport {Form, InboxItem, Messages, ProfileInfoDrop} from '../../../interfaces';\r\nimport * as Constants from '../../../constants/constants';\r\nimport {NgIf} from '@angular/common';\r\nimport {InfoItemComponent, SearchEmployeeComponent, TextareaComponent} from \"../../shared-components\";\r\nimport {FeedBackService} from \"../../../services\";\r\nimport { takeUntilDestroyed } from '@angular/core/rxjs-interop';\r\n\r\n@Component({\r\n selector: 'app-feedback-section',\r\n templateUrl: './feedback-section.component.html',\r\n styleUrls: ['./feedback-section.component.scss'],\r\n schemas: [CUSTOM_ELEMENTS_SCHEMA],\r\n imports: [\r\n MatDialogContent,\r\n NgIf,\r\n SearchEmployeeComponent,\r\n TextareaComponent,\r\n InfoItemComponent,\r\n MatDialogTitle,\r\n MatDialogClose\r\n ],\r\n standalone: true,\r\n})\r\nexport class FeedbackSectionComponent implements OnInit {\r\n @Input() inboxItem: InboxItem;\r\n @Input() profile: ProfileInfoDrop;\r\n form: Form;\r\n searchEmp: any;\r\n submitted = false;\r\n feedbackStatus: string = null;\r\n feedBackQuestion: string = null;\r\n feedBackResponse: string = null;\r\n isFeedbackValidated = false;\r\n isResponseValidated = false;\r\n employeeInput: string = null;\r\n feedbackId: string = null;\r\n destroyRef = inject(DestroyRef);\r\n\r\n constructor(\r\n public feedBackService: FeedBackService,\r\n public i18n: CoreI18nService,\r\n @Inject(MAT_DIALOG_DATA) public data: any\r\n ) {\r\n this.profile = data.profile;\r\n this.inboxItem = data.inboxItem;\r\n this.form = data.form;\r\n }\r\n\r\n ngOnInit() {\r\n if (!this.feedBackService.feedBackSent) {\r\n const item = this.inboxItem;\r\n if (item?.canRequestFeedback === 'true') {\r\n this.feedbackStatus = Constants.FEEDBACK_STATUS_REQUEST;\r\n this.feedBackService.feedbackForm = true;\r\n }\r\n\r\n if (\r\n item.isRequested === 'true' &&\r\n item.hasFeedback === 'true' &&\r\n item.isPending === 'false' &&\r\n item.isResponded === 'false'\r\n ) {\r\n this.feedbackStatus = Constants.FEEDBACK_STATUS_WAITING;\r\n this.feedBackService.pendingForm = true;\r\n this.getFeedBack();\r\n }\r\n\r\n if (\r\n item.isRequested === 'false' &&\r\n item.hasFeedback === 'true' &&\r\n item.isPending === 'true' &&\r\n item.isResponded === 'false'\r\n ) {\r\n this.feedbackStatus = Constants.FEEDBACK_STATUS_RESPOND;\r\n this.feedBackService.responderForm = true;\r\n this.getFeedBack();\r\n }\r\n\r\n if (\r\n item.isRequested === 'true' &&\r\n item.hasFeedback === 'true' &&\r\n item.isPending === 'false' &&\r\n item.isResponded === 'true'\r\n ) {\r\n this.feedbackStatus = Constants.FEEDBACK_STATUS_RESPONDED;\r\n this.feedBackService.pendingForm = true;\r\n this.getFeedBack();\r\n }\r\n /* const obj = {\r\n name: 'changeFeedbackStatus',\r\n data: this.feedbackStatus!\r\n };\r\n this._listenerService.filter(obj);*/\r\n }\r\n }\r\n\r\n getFeedBack() {\r\n this.feedBackService.getFeedback(this.profile.employeeEmail).pipe(\r\n takeUntilDestroyed(this.destroyRef)\r\n ).subscribe((Response: any) => {\r\n if (Response) {\r\n if (Response instanceof Messages) {\r\n this.showError(Response);\r\n } else {\r\n const resp = Response['items'][0];\r\n this.feedBackService.feedbackResponse.requestFrom =\r\n resp.from['firstName'] +\r\n ' ' +\r\n resp.from['middleName'] +\r\n ' ' +\r\n resp.from['familyName'];\r\n this.feedBackService.feedbackResponse.requestTo =\r\n resp.to['firstName'] +\r\n ' ' +\r\n resp.to['middleName'] +\r\n ' ' +\r\n resp.to['familyName'];\r\n this.feedBackService.feedbackResponse.requestFeedback =\r\n resp.query;\r\n this.feedBackService.feedbackResponse.responseFeedback =\r\n resp.response;\r\n this.feedbackId = resp.id;\r\n }\r\n }\r\n })\r\n }\r\n\r\n addFeedback() {\r\n if (this.isFeedbackValidated) {\r\n const email = this.searchEmp.personEmail,\r\n question = this.feedBackQuestion;\r\n this.feedBackService.submitFeedback({email, question}).pipe(\r\n takeUntilDestroyed(this.destroyRef)\r\n ).subscribe((Response: any) => {\r\n if (Response) {\r\n if (Response instanceof Messages) {\r\n this.showError(Response);\r\n } else {\r\n this.submitted = true;\r\n\r\n this.feedbackStatus = Constants.FEEDBACK_STATUS_WAITING;\r\n // const obj = {\r\n // name: 'changeFeedbackStatus',\r\n // data: this.feedbackStatus\r\n // };\r\n // this._listenerService.filter(obj);\r\n this.feedBackService.feedbackForm = false;\r\n this.feedBackService.pendingForm = true;\r\n this.feedBackService.feedBackSent = true;\r\n this.feedBackService.feedbackResponse.requestFrom =\r\n this.profile.fullName;\r\n this.feedBackService.feedbackResponse.requestTo =\r\n this.searchEmp.personName;\r\n this.feedBackService.feedbackResponse.requestFeedback =\r\n this.feedBackQuestion;\r\n }\r\n } else {\r\n this.submitted = true;\r\n }\r\n })\r\n }\r\n }\r\n\r\n\r\n addResponse() {\r\n if (this.isFeedbackValidated) {\r\n const feedbackId = this.feedbackId,\r\n feedbackResponse = this.feedBackResponse;\r\n this.feedBackService.addResponse({feedbackId, feedbackResponse}).pipe(\r\n takeUntilDestroyed(this.destroyRef)\r\n ).subscribe((Response: any) => {\r\n if (Response) {\r\n if (Response instanceof Messages) {\r\n this.showError(Response);\r\n } else {\r\n this.submitted = true;\r\n this.feedbackStatus = Constants.FEEDBACK_STATUS_RESPONDED;\r\n /*const obj = {\r\n name: 'changeFeedbackStatus',\r\n data: this.feedbackStatus\r\n };\r\n this._listenerService.filter(obj);*/\r\n this.feedBackService.responderForm = false;\r\n this.feedBackService.feedBackSent = true;\r\n this.feedBackService.pendingForm = true;\r\n this.feedBackService.feedbackResponse.responseFeedback =\r\n this.feedBackResponse;\r\n }\r\n } else {\r\n this.submitted = true;\r\n }\r\n })\r\n }\r\n }\r\n\r\n errorOccured = false;\r\n isSubmiting = false;\r\n errorMsg = '';\r\n\r\n showError(Response: any) {\r\n if (!this.form) {\r\n this.form = new Form(\r\n Constants.NO_VALUE,\r\n Constants.NO_VALUE,\r\n Constants.NO_VALUE,\r\n Constants.NO_VALUE,\r\n Constants.NO_VALUE,\r\n Constants.NO_VALUE,\r\n Response\r\n );\r\n } else {\r\n this.errorOccured = true;\r\n this.errorMsg = Response?.error[0];\r\n // this.form.messages = Response;\r\n }\r\n window.scrollTo(0, 0);\r\n }\r\n\r\n handleFeedbackQuestion(event) {\r\n this.feedBackQuestion = event;\r\n this.handleFeedbackValidation();\r\n }\r\n\r\n handleFeedbackResponse(event) {\r\n this.feedBackResponse = event;\r\n this.handleResponseValidation();\r\n }\r\n\r\n handleUserSelected(event) {\r\n this.searchEmp = {\r\n personEmail: event.personEmail,\r\n personName: event.personName\r\n };\r\n if (!this.feedBackQuestion) {\r\n return;\r\n }\r\n this.handleFeedbackValidation();\r\n }\r\n\r\n handleResponseValidation() {\r\n if (\r\n this.feedBackResponse.length >= 1 &&\r\n this.feedBackResponse.length < 500\r\n ) {\r\n this.isResponseValidated = true;\r\n } else {\r\n this.isResponseValidated = false;\r\n }\r\n }\r\n\r\n handleFeedbackValidation() {\r\n if (\r\n this.feedBackQuestion.length >= 1 &&\r\n this.feedBackQuestion.length < 500 &&\r\n this.searchEmp.personEmail\r\n ) {\r\n this.isFeedbackValidated = true;\r\n } else {\r\n this.isFeedbackValidated = false;\r\n }\r\n }\r\n}\r\n","<div class=\"popup-container\">\r\n <div class=\"d-flex align-items-center justify-content-between\" mat-dialog-title>\r\n <h3>{{i18n.translate('requestFeedback')}}</h3>\r\n <ds-button square icon matDialogClose>\r\n <ds-icon icon=\"close\" class=\"fs-20 fc-black\"></ds-icon>\r\n </ds-button>\r\n </div>\r\n <mat-dialog-content>\r\n <div class=\"d-flex flex-column align-items-center justify-content-center py-4\" *ngIf=\"submitted\">\r\n <div class=\"text-center mb-4\">\r\n <svg width=\"79\" height=\"76\" viewBox=\"0 0 79 76\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\">\r\n <path\r\n d=\"M59.9804 0.0998676L1.39239 19.2479C1.02223 19.3692 0.69498 19.5948 0.44999 19.8976C0.205 20.2005 0.0526985 20.5676 0.0113985 20.955C-0.0299016 21.3423 0.0415576 21.7333 0.217184 22.081C0.39281 22.4287 0.665128 22.7183 1.00139 22.9149L23.1454 35.7899C23.487 35.9886 23.8794 36.0828 24.274 36.0608C24.6686 36.0388 25.0481 35.9014 25.3654 35.6659L31.5894 31.0439L26.9674 37.2679C26.7318 37.5852 26.5944 37.9646 26.5722 38.3591C26.5499 38.7537 26.6439 39.1461 26.8424 39.4879L39.7174 61.6289C39.9138 61.9652 40.2031 62.2377 40.5506 62.4135C40.8981 62.5894 41.289 62.6611 41.6763 62.6201C42.0636 62.5791 42.4308 62.4272 42.7338 62.1825C43.0369 61.9378 43.2628 61.6108 43.3844 61.2409L62.5294 2.65187C62.6458 2.29686 62.6615 1.91654 62.5749 1.55313C62.4883 1.18971 62.3026 0.857401 62.0386 0.593071C61.7746 0.328741 61.4425 0.142726 61.0792 0.0556665C60.7159 -0.0313933 60.3355 -0.0160937 59.9804 0.0998676ZM40.9434 55.6999L31.0014 38.6069L42.9894 22.4689C43.2797 22.0798 43.4202 21.5993 43.3852 21.1152C43.3502 20.631 43.142 20.1757 42.7988 19.8325C42.4556 19.4893 42.0002 19.2811 41.5161 19.2461C41.032 19.2111 40.5514 19.3516 40.1624 19.6419L24.0254 31.6279L6.93339 21.6889L57.4514 5.18087L40.9434 55.6999ZM21.2134 44.2759L7.80139 57.6909C7.42253 58.0701 6.90853 58.2833 6.37246 58.2836C5.83638 58.2839 5.32215 58.0712 4.94289 57.6924C4.56363 57.3135 4.35041 56.7995 4.35013 56.2634C4.34985 55.7274 4.56253 55.2131 4.94139 54.8339L18.3564 41.4189C18.7353 41.04 19.2491 40.8272 19.7849 40.8272C20.3207 40.8272 20.8345 41.04 21.2134 41.4189C21.5923 41.7977 21.8051 42.3116 21.8051 42.8474C21.8051 43.3832 21.5923 43.897 21.2134 44.2759ZM3.49139 44.7839C3.30378 44.5963 3.15495 44.3736 3.05341 44.1285C2.95187 43.8834 2.89961 43.6207 2.89961 43.3554C2.89961 43.0901 2.95187 42.8274 3.05341 42.5823C3.15495 42.3371 3.30378 42.1144 3.49139 41.9269L8.78439 36.6339C9.16326 36.255 9.6771 36.0422 10.2129 36.0422C10.7487 36.0422 11.2625 36.255 11.6414 36.6339C12.0203 37.0127 12.2331 37.5266 12.2331 38.0624C12.2331 38.5982 12.0203 39.112 11.6414 39.4909L6.34939 44.7839C6.1618 44.9716 5.93903 45.1206 5.69384 45.2222C5.44864 45.3238 5.18582 45.3762 4.92039 45.3762C4.65497 45.3762 4.39215 45.3238 4.14695 45.2222C3.90176 45.1206 3.67899 44.9716 3.49139 44.7839ZM26.0014 50.9899C26.189 51.1774 26.3378 51.4001 26.4394 51.6453C26.5409 51.8904 26.5932 52.1531 26.5932 52.4184C26.5932 52.6837 26.5409 52.9464 26.4394 53.1915C26.3378 53.4366 26.189 53.6593 26.0014 53.8469L20.7014 59.1409C20.3225 59.5197 19.8087 59.7326 19.2729 59.7326C18.7371 59.7326 18.2233 59.5197 17.8444 59.1409C17.4655 58.762 17.2527 58.2482 17.2527 57.7124C17.2527 57.1766 17.4655 56.6627 17.8444 56.2839L23.1374 50.9909C23.325 50.8032 23.5477 50.6544 23.7928 50.5529C24.0379 50.4513 24.3006 50.3991 24.5659 50.3991C24.8312 50.3991 25.0939 50.4513 25.339 50.5529C25.5841 50.6544 25.8068 50.8032 25.9944 50.9909L26.0014 50.9899Z\"\r\n fill=\"#8E9AA0\" />\r\n <path\r\n d=\"M58.0015 75.3119C69.0472 75.3119 78.0015 66.3576 78.0015 55.3119C78.0015 44.2662 69.0472 35.3119 58.0015 35.3119C46.9558 35.3119 38.0015 44.2662 38.0015 55.3119C38.0015 66.3576 46.9558 75.3119 58.0015 75.3119Z\"\r\n fill=\"#00C48C\" />\r\n <path\r\n d=\"M56.8804 57.3183L54.0346 54.4725L52.9743 55.5336L56.8774 59.4367L65.8354 50.5267L65.4927 50.0138C63.8557 47.5812 61.1134 46.002 58.0015 46.002C53.0313 46.002 49.0015 50.031 49.0015 55.002C49.0015 59.9729 53.0305 64.002 58.0015 64.002C62.9716 64.002 67.0007 59.9729 67.0015 55.0035H65.5017C65.5017 55.005 65.5017 55.0072 65.5017 55.0095C65.5017 59.1503 62.1453 62.5067 58.0045 62.5067C53.8637 62.5067 50.5072 59.1503 50.5072 55.0095C50.5072 50.8686 53.8637 47.5122 58.0045 47.5122C60.3793 47.5122 62.4962 48.6168 63.87 50.3392L63.882 50.3542L56.8804 57.3183Z\"\r\n fill=\"white\" />\r\n </svg>\r\n\r\n </div>\r\n <h2 class=\"fs-16 fw-medium fc-black mb-4 text-center\">\r\n {{i18n.translate('submittedSuccessfully')}}\r\n </h2>\r\n </div>\r\n\r\n <ng-container *ngIf=\"!submitted\">\r\n <div class=\"mb-3\" *ngIf=\"feedBackService.feedbackForm \">\r\n <app-search-employee #employee label=\"{{i18n.translate('requestTo')}}\" [field]=\"searchEmp\"\r\n [labelTextReadMode]=\"i18n.translate('requestTo')\" [labelTextWriteMode]=\"i18n.translate('requestTo')\"\r\n [name]=\"'searchEmp'\" (emitedValue)=\"handleUserSelected($event)\">\r\n </app-search-employee>\r\n <app-textarea #request [field]=\"employeeInput\" name=\"employeeInput\" label=\"{{i18n.translate('feedback')}}\"\r\n [required]=\"true\" [minLength]='1' (emitedValue)=\"handleFeedbackQuestion($event)\" [maxLength]='500'\r\n [errorMessage]=\"i18n.translate('lenghtMin1Max500')\">\r\n </app-textarea>\r\n </div>\r\n\r\n <div class=\"info-section\" *ngIf=\"!feedBackService.feedbackForm\">\r\n <ng-container *ngIf=\"feedBackService.responderForm\">\r\n <app-info-item class=\"info-item w-100\" label=\"{{i18n.translate('requestFrom')}}\"\r\n value=\"{{feedBackService?.feedbackResponse?.requestFrom}}\"></app-info-item>\r\n <app-info-item class=\"info-item w-100\" label=\"{{i18n.translate('requestTo')}}\"\r\n value=\"{{feedBackService?.feedbackResponse?.requestTo}}\"></app-info-item>\r\n <app-info-item class=\"info-item w-100\" label=\"{{i18n.translate('feedbackQuestion')}}\"\r\n value=\"{{feedBackService?.feedbackResponse?.requestFeedback}}\"></app-info-item>\r\n <app-info-item class=\"info-item w-100\" label=\"{{i18n.translate('feedback')}}\"\r\n value=\"{{feedBackService?.feedbackResponse?.responseFeedback}}\"></app-info-item>\r\n <app-textarea #request class=\"full mx-3 mt-3 section-item\" [field]=\"employeeInput\" name=\"employeeInput\"\r\n label=\"{{i18n.translate('feedback')}}\" [required]=\"true\" [minLength]='1'\r\n (emitedValue)=\"handleFeedbackResponse($event)\" [maxLength]='500'\r\n [errorMessage]=\"i18n.translate('lenghtMin1Max500')\">\r\n </app-textarea>\r\n </ng-container>\r\n\r\n <ng-container *ngIf=\"feedBackService.pendingForm\" id=\"responce_form\">\r\n <app-info-item class=\"info-item w-100\" label=\"{{i18n.translate('requestFrom')}}\"\r\n value=\"{{feedBackService?.feedbackResponse?.requestFrom}}\"></app-info-item>\r\n <app-info-item class=\"info-item w-100\" label=\"{{i18n.translate('requestTo')}}\"\r\n value=\"{{feedBackService?.feedbackResponse?.requestTo}}\"></app-info-item>\r\n <app-info-item class=\"info-item w-100\" label=\"{{i18n.translate('feedbackQuestion')}}\"\r\n value=\"{{feedBackService?.feedbackResponse?.requestFeedback}}\"></app-info-item>\r\n <app-info-item class=\"info-item w-100\" label=\"{{i18n.translate('feedback')}}\"\r\n value=\"{{feedBackService?.feedbackResponse?.responseFeedback}}\"></app-info-item>\r\n\r\n </ng-container>\r\n </div>\r\n\r\n <div class=\"d-flex align-items-center justify-content-center w-100 gap-3\" *ngIf=\"!submitted\">\r\n <ds-button shape=\"outline\" matDialogClose>\r\n {{i18n.translate('Cancel')}}\r\n </ds-button>\r\n <ds-button *ngIf=\"feedBackService.feedbackForm\" (click)=\"addFeedback()\"\r\n disabled=\"{{!(isFeedbackValidated)}}\">\r\n {{i18n.translate('submit')}}\r\n </ds-button>\r\n <ds-button *ngIf=\"!feedBackService.feedbackForm && feedBackService.responderForm\"\r\n disabled=\"{{!(isResponseValidated)}}\" (click)=\"addResponse()\">\r\n {{i18n.translate('submit')}}\r\n </ds-button>\r\n </div>\r\n </ng-container>\r\n\r\n </mat-dialog-content>\r\n\r\n</div>\r\n","import {Component, CUSTOM_ELEMENTS_SCHEMA, DestroyRef, inject} from '@angular/core';\r\nimport {CoreI18nService, CoreService, SidenavService} from '../../../services';\r\nimport { takeUntilDestroyed } from \"@angular/core/rxjs-interop\";\r\n\r\n\r\n@Component({\r\n selector: 'app-activities',\r\n templateUrl: './activities.component.html',\r\n styleUrls: ['./activities.component.scss'],\r\n standalone: true,\r\n imports: [],\r\n schemas: [CUSTOM_ELEMENTS_SCHEMA]\r\n})\r\nexport class ActivitiesComponent {\r\n parsedData: string;\r\n destroyRef = inject(DestroyRef);\r\n\r\n constructor(\r\n private readonly sidenavService: SidenavService,\r\n public i18n: CoreI18nService,\r\n public coreService: CoreService\r\n ) {\r\n this.parsedData = JSON.stringify(this.coreService.activities)\r\n }\r\n\r\n downloadFile(event: any) {\r\n console.log(event.detail.value);\r\n const placeholder = event.target.nextElementSibling;\r\n \r\n this.coreService.loadFile(event.detail.value.id).pipe(\r\n takeUntilDestroyed(this.destroyRef)\r\n ).subscribe({\r\n next: (responseObject: { body: any }) => {\r\n const fileInformation = responseObject.body;\r\n const fileBlob = this.coreService.dataURItoBlob(fileInformation.fileContents);\r\n const file = new File([fileBlob], fileInformation.fileName, { type: fileInformation.mimeType });\r\n placeholder.href = URL.createObjectURL(file);\r\n placeholder.download = file.name;\r\n placeholder.click();\r\n },\r\n error: (error) => {\r\n console.error('Error loading file:', error);\r\n }\r\n });\r\n }\r\n\r\n\r\n closeSidenav() {\r\n this.sidenavService.publish('close', null);\r\n }\r\n}\r\n","<section class=\"main-sidenav\">\r\n <div class=\"sidenav-title\">\r\n <h3>{{ i18n.translate('commentHistory') }}</h3>\r\n\r\n <ds-button (click)=\"closeSidenav()\" icon>\r\n <ds-icon icon=\"close\" class=\"fs-20 fc-black\"></ds-icon>\r\n </ds-button>\r\n\r\n </div>\r\n <div class=\"sidenav-body\">\r\n @if (coreService.activities) {\r\n <ds-activity-log activitiesData=\"{{parsedData}}\" readOnly (downloadEvent)=\"downloadFile($event)\">\r\n </ds-activity-log>\r\n } @else {\r\n <ds-message label=\"{{i18n.translate('NoData1')}}\"></ds-message>\r\n }\r\n </div>\r\n</section>\r\n","import {Pipe, PipeTransform} from '@angular/core'\r\n\r\n@Pipe({\r\n name: 'statusClass',\r\n standalone: true,\r\n})\r\nexport class StatusStylePipe implements PipeTransform {\r\n transform(status: string): string {\r\n let statusClass = {\r\n APPROVED: 'success',\r\n STORED: 'success',\r\n GM_APPROVAL: 'success',\r\n COMPLETED: 'success',\r\n COMPLETE: 'success',\r\n ACCEPTED: 'success',\r\n SUBMIT: 'success',\r\n SUBMIT_TRAINING: 'success',\r\n VEHICLE_IS_AVAILABLE: 'success',\r\n VEHICLE_RECEIVED: 'success',\r\n RETRY: 'success',\r\n REJECT: 'danger',\r\n REJECTED: 'danger',\r\n AUTO_REJECT: 'danger',\r\n VEHICLE_IS_NOT_AVAILABLE: 'danger',\r\n SEND_TO_SAFETY_INSPECTOR: 'success',\r\n SEND_TO_DESIGN_TEAM: 'success',\r\n SEND_TO_SECURITY_SUPERVISOR: 'success',\r\n PENDING: 'warning',\r\n QUEUED: 'warning',\r\n UNACCEPTABLE: 'success',\r\n RECEIVED: 'success',\r\n CLOSED: 'success',\r\n\r\n SENT: 'info',\r\n\r\n SENDBACKTOREQUESTER: 'send_back',\r\n 'COLLECT_SITE_FEEDBACK': 'success',\r\n 'COLLECT_SITE_VISIT_FEEDBACK': 'success',\r\n 'SUBMIT_FEEDBACK': 'success',\r\n 'CONFIRM_SITE_HANDOVER': 'success',\r\n\r\n\r\n // \"SENDBACKTOREQUESTER\": \"send_back\",\r\n SEND_BACK_TO_REQUESTER: 'send_back',\r\n 'SEND BACK TO REQUESTER': 'send_back',\r\n SENDBACK: 'send_back',\r\n\r\n EXPIRED: 'expired',\r\n\r\n CANCELLED: 'pending',\r\n CANCELED: 'pending',\r\n SHIPMENT_DELIVERY_REJECTED: 'danger'\r\n }\r\n\r\n // status == 'SEND BACK TO REQUESTER' ? 'SENDBACKTOREQUESTER' : status\r\n\r\n return statusClass[status?.toUpperCase()] || 'success'\r\n }\r\n}\r\n","import {AfterViewInit, Component, CUSTOM_ELEMENTS_SCHEMA, DestroyRef, inject, OnInit} from \"@angular/core\";\r\nimport {CommonModule} from \"@angular/common\";\r\nimport {MatMenuModule} from \"@angular/material/menu\";\r\nimport {MatDialog, MatDialogModule} from \"@angular/material/dialog\";\r\nimport {FormBuilder, FormControl, FormGroup, ReactiveFormsModule, Validators} from \"@angular/forms\";\r\nimport {MatButtonToggleModule} from \"@angular/material/button-toggle\";\r\nimport {RouterModule} from \"@angular/router\";\r\nimport {TranslateModule} from \"@ngx-translate/core\";\r\nimport {CoreI18nService, CoreService, SidenavService} from \"../../../services\";\r\nimport {StatusStylePipe} from \"../../../pipes/status-style.pipe\";\r\nimport {ToastrService} from \"ngx-toastr\";\r\nimport {CdkConnectedOverlay, CdkOverlayOrigin} from \"@angular/cdk/overlay\";\r\nimport {CustomSearchableComponent} from \"../../shared-components\";\r\nimport { takeUntilDestroyed } from \"@angular/core/rxjs-interop\";\r\nimport {Subject} from \"rxjs\";\r\n\r\n@Component({\r\n selector: 'app-history',\r\n standalone: true,\r\n\r\n imports: [\r\n CommonModule,\r\n MatMenuModule,\r\n RouterModule,\r\n TranslateModule,\r\n MatDialogModule,\r\n ReactiveFormsModule,\r\n MatButtonToggleModule,\r\n StatusStylePipe,\r\n CdkOverlayOrigin,\r\n CustomSearchableComponent,\r\n CdkConnectedOverlay\r\n\r\n ],\r\n templateUrl: './previous-requests.component.html',\r\n styleUrls: ['./previous-requests.component.scss'],\r\n schemas: [CUSTOM_ELEMENTS_SCHEMA],\r\n})\r\nexport class PreviousRequestsComponent implements OnInit, AfterViewInit {\r\n previousRequests: any[] = []\r\n destroyRef = inject(DestroyRef);\r\n\r\n loading: boolean\r\n filterFormGroup: FormGroup;\r\n errorMessage: string\r\n isOpen: boolean = false;\r\n monthsOptions = [\r\n {key: '1', value: '1'},\r\n {key: '2', value: '2'},\r\n {key: '3', value: '3'},\r\n {key: '4', value: '4'},\r\n {key: '5', value: '5'},\r\n {key: '6', value: '6'},\r\n {key: '7', value: '7'},\r\n {key: '8', value: '8'},\r\n {key: '9', value: '9'},\r\n {key: '10', value: '10'},\r\n {key: '11', value: '11'},\r\n {key: '12', value: '12'}\r\n ];\r\n yearsOptions = [\r\n {key: new Date().getFullYear(), value: new Date().getFullYear()},\r\n {key: new Date().getFullYear() - 1, value: new Date().getFullYear() - 1},\r\n {key: new Date().getFullYear() - 2, value: new Date().getFullYear() - 2},\r\n {key: new Date().getFullYear() - 3, value: new Date().getFullYear() - 3}];\r\n\r\n statuses = []\r\n searchData = {\r\n year: null,\r\n month: null\r\n }\r\n\r\n constructor(public dialog: MatDialog,\r\n public readonly sidenavService: SidenavService,\r\n public coreService: CoreService,\r\n private readonly toasterService: ToastrService,\r\n public i18n: CoreI18nService,\r\n private readonly fb: FormBuilder\r\n ) {}\r\n\r\n /**\r\n * Initializes the component on initialization.\r\n * It creates a form and sets the available statuses based on the current language.\r\n *\r\n * @return {void}\r\n */\r\n ngOnInit() {\r\n this.createForm();\r\n this.statuses = [\r\n {key: \"APPROVED\", value: this.i18n.language == 'en' ? \"Approve\" : \"موافقة\"},\r\n {key: \"REJECTED\", value: this.i18n.language == 'en' ? \"Reject\" : \"مرفوض\"},\r\n {key: \"PENDING\", value: this.i18n.language == 'en' ? \"Pending\" : \"معلق\"}\r\n ]\r\n }\r\n\r\n // variables to manage subscription\r\n private readonly ngUnsubscribe: Subject<void> = new Subject<void>();\r\n\r\n// new helper methods for form controls\r\n /**\r\n * Generates form controls for the current month and year.\r\n *\r\n * @return {object} An object containing form controls for the current month and year.\r\n * - month: FormControl for the current month with Validators required\r\n * - year: FormControl for the current year with Validators required\r\n */\r\n private currentDateControl(): { [key: string]: FormControl } {\r\n const date = new Date();\r\n const month = date.getUTCMonth() + 1;\r\n const year = date.getFullYear();\r\n\r\n return {\r\n month: new FormControl({key: month, value: month}, Validators.required),\r\n year: new FormControl({key: year, value: year}, Validators.required),\r\n };\r\n }\r\n\r\n /**\r\n * Initializes a form group for filtering data.\r\n * It creates form controls for the current date and status.\r\n * Also sets up a subscription to listen for changes in the status control.\r\n *\r\n * @return {void}\r\n */\r\n createForm() {\r\n this.filterFormGroup = this.fb.group({\r\n ...this.currentDateControl(),\r\n status: new FormControl('', Validators.required)\r\n });\r\n this.filterFormGroup.get('status').valueChanges.pipe(\r\n takeUntilDestroyed(this.destroyRef)\r\n ).subscribe(value => {\r\n this.filterStatus()\r\n })\r\n }\r\n\r\n\r\n /**\r\n * Perform initialization after Angular has fully initialized a component's view.\r\n *\r\n * @return {void}\r\n */\r\n ngAfterViewInit() {\r\n if (this.coreService.historyDataLoaded) {\r\n this.previousRequests = this.coreService.historyData\r\n } else {\r\n this.getRequests()\r\n }\r\n }\r\n\r\n /**\r\n * Clear all filters and reset the form group to its initial state.\r\n * Sets the month and year filters to the current date's month and year respectively.\r\n * Sets the status filter to an empty string.\r\n * Toggles the isOpen property and triggers the filterStatus method.\r\n *\r\n * @return {void}\r\n */\r\n clearFilters() {\r\n this.filterFormGroup.reset()\r\n this.filterFormGroup.get('month').setValue({key: new Date().getUTCMonth() + 1, value: new Date().getUTCMonth() + 1})\r\n this.filterFormGroup.get('year').setValue({key: new Date().getFullYear(), value: new Date().getFullYear() + 1})\r\n this.filterFormGroup.get('status').setValue('')\r\n this.isOpen = !this.isOpen\r\n this.filterStatus()\r\n }\r\n\r\n /**\r\n * Toggles the isOpen property and triggers the getRequests() method.\r\n *\r\n * @return {void}\r\n */\r\n applyFilters() {\r\n this.isOpen = !this.isOpen\r\n this.getRequests()\r\n }\r\n\r\n /**\r\n * Retrieves request data based on form values.\r\n *\r\n * @return {void}\r\n */\r\n getRequests() {\r\n const formValues = this.getFormValues()\r\n if (this.areFormValuesEqual(this.searchData, formValues)) {\r\n this.filterStatus()\r\n } else {\r\n this.updateSearchData(formValues)\r\n this.requestCoreData()\r\n }\r\n }\r\n\r\n /**\r\n * Retrieves the form values including the year and month.\r\n *\r\n * @return {Object} Returns an object containing the year and month values.\r\n */\r\n getFormValues() {\r\n return {\r\n year: this.getYearValue(),\r\n month: this.getMonthValue(),\r\n }\r\n }\r\n\r\n /**\r\n * Retrieves the selected year value from the filter form group.\r\n *\r\n * @return The selected year value as a number.\r\n */\r\n private getYearValue(): number {\r\n return this.filterFormGroup.get('year').value?.key;\r\n }\r\n\r\n /**\r\n * Retrieves the month value from the filter form group.\r\n *\r\n * @return {number} The month value retrieved from the form group.\r\n */\r\n private getMonthValue(): number {\r\n return this.filterFormGroup.get('month').value?.key;\r\n }\r\n\r\n /**\r\n * Checks if the year and month values of two form objects are equal.\r\n *\r\n * @param {Object} first - The first form object to compare.\r\n * @param {Object} second - The second form object to compare.\r\n * @returns {boolean} - true if the year and month values are equal, otherwise false.\r\n */\r\n areFormValuesEqual(first, second) {\r\n return first.year == second.year && first.month == second.month\r\n }\r\n\r\n /**\r\n * Update the search data with the provided data.\r\n *\r\n * @param {Object} data - The new search data to update.\r\n *\r\n * @return {void}\r\n */\r\n updateSearchData(data) {\r\n this.searchData = data\r\n }\r\n\r\n /**\r\n * Sends a request to retrieve core data using the Core Service API.\r\n * Initializes loading and requests before making the call.\r\n *\r\n * @return {void}\r\n */\r\n requestCoreData() {\r\n this.initializeLoadingAndRequests()\r\n this.loading = true\r\n this.coreService.historyData = []\r\n this.previousRequests = []\r\n this.coreService.myRequests(this.searchData).pipe(\r\n takeUntilDestroyed(this.destroyRef)\r\n ).subscribe({\r\n next: (response: any) => {\r\n this.coreService.historyData = response.history;\r\n this.previousRequests = this.coreService.historyData\r\n this.coreService.historyDataLoaded = true\r\n this.filterStatus()\r\n },\r\n error: (err) => {\r\n this.loading = false;\r\n this.errorMessage = err?.error?.meta?.messages?.['0']?.message;\r\n this.toasterService.error(this.errorMessage)\r\n },\r\n complete: () => {\r\n this.loading = false;\r\n }\r\n });\r\n }\r\n \r\n\r\n /**\r\n * Initializes loading and requests.\r\n *\r\n * @return {void}\r\n */\r\n initializeLoadingAndRequests() {\r\n this.loading = true\r\n this.coreService.historyData = []\r\n this.previousRequests = []\r\n }\r\n\r\n /**\r\n * Handles successful response from a request.\r\n *\r\n * @param {Object} response - The response object containing history data.\r\n * @return {void}\r\n */\r\n handleRequestSuccess(response) {\r\n this.coreService.historyData = response.history\r\n this.previousRequests = this.coreService.historyData\r\n this.coreService.historyDataLoaded = true\r\n this.filterStatus()\r\n }\r\n\r\n /**\r\n * Handles the error received from a request\r\n *\r\n * @param {Object} err - The error object containing information about the error\r\n * @return {void}\r\n */\r\n handleRequestError(err) {\r\n this.loading = false\r\n this.errorMessage = err?.error?.meta?.messages?.['0']?.message\r\n this.toasterService.error(this.errorMessage)\r\n }\r\n\r\n /**\r\n * Filters the previous requests based on the status selected in the filter form.\r\n *\r\n * @return {void}\r\n */\r\n filterStatus() {\r\n const statusKey = this.filterFormGroup.get('status').value?.key;\r\n this.previousRequests = this.coreService.historyData\r\n let filterData: any[];\r\n\r\n if (statusKey) {\r\n filterData = this.previousRequests.filter((request) => request.form?.['formStatus']?.key === statusKey);\r\n } else {\r\n filterData = this.previousRequests;\r\n }\r\n\r\n this.previousRequests = filterData;\r\n }\r\n\r\n /**\r\n * Opens a form in a new window based on the provided form ID.\r\n *\r\n * @param {string} formId - The ID of the form to be opened.\r\n * @return {void}\r\n */\r\n viewForm(formId: string) {\r\n if (formId) {\r\n window.open('/group/i-gate/wm-bpm/forms?formId=' + formId);\r\n }\r\n }\r\n\r\n ngOnDestroy() {\r\n // emit the value to complete all active subscriptions\r\n this.ngUnsubscribe.next();\r\n this.ngUnsubscribe.complete();\r\n }\r\n\r\n}\r\n","<section class=\"main-sidenav history-sidenav\">\r\n <div class=\"sidenav-title\">\r\n <h3>{{ i18n.translate('PreviousRequests') }}</h3>\r\n <ds-button class=\"close-sidenav\" (click)=\"sidenavService.closeSidenav()\" icon>\r\n <ds-icon icon=\"close\" class=\"fs-20 fc-black\"></ds-icon>\r\n </ds-button>\r\n </div>\r\n\r\n <div class=\"sidenav-body bc-light-gray\">\r\n <section class=\"p-3\">\r\n <header class=\"d-flex align-items-center justify-content-between gap-2 mb-3\">\r\n <h2 class=\"fs-20 fw-medium fc-black mb-0 d-flex align-items-center flex-grow-1 gap-3\">\r\n {{ i18n.translate('AllRequests') }}\r\n <span class=\"title-count fs-14 fw-normal\">{{ previousRequests?.length ? previousRequests?.length : '0' }}</span>\r\n </h2>\r\n <ds-button icon size=\"small\" (click)=\"isOpen = !isOpen\" cdkOverlayOrigin #trigger=\"cdkOverlayOrigin\">\r\n <ds-icon icon=\"filter\" class=\"fc-coral fs-20\" slot=\"prefix\"></ds-icon>\r\n </ds-button>\r\n <mat-button-toggle-group\r\n class=\"icon-toggle flex-nowrap\"\r\n #pageView=\"matButtonToggleGroup\"\r\n (click)=\"$event.stopImmediatePropagation()\"\r\n value=\"list\"\r\n >\r\n <mat-button-toggle value=\"card\">\r\n <span class=\"sfi sfi-card fs-20\"></span>\r\n </mat-button-toggle>\r\n <mat-button-toggle value=\"list\">\r\n <span class=\"sfi sfi-list-dots fs-20\"></span>\r\n </mat-button-toggle>\r\n </mat-button-toggle-group>\r\n </header>\r\n\r\n @if (pageView.value === 'card') {\r\n <div class=\"history-cards-container\">\r\n @if (loading) {\r\n <ng-container>\r\n <div class=\"p-4 line-height-1 bc-white radius-6 box-shadow\" *ngFor=\"let row of [0,1,2,3]\">\r\n <div class=\"d-flex align-items-center gap-2 mb-3\">\r\n <h3 class=\"loading-bg fs-16 fw-medium flex-grow-1 mb-0 cursor-pointer underline fw-bold\"></h3>\r\n </div>\r\n <div class=\"row g-3\">\r\n <div class=\"d-flex flex-column col-6\">\r\n <span class=\"fs-11 fc-dark-gray mb-2 loading-bg\"></span>\r\n <span class=\"fs-12 fw-medium fc-black loading-bg\"></span>\r\n </div>\r\n <div class=\"d-flex flex-column col-6 justify-content-end align-items-end\">\r\n </div>\r\n </div>\r\n </div>\r\n </ng-container>\r\n } @else {\r\n <div class=\"p-4 line-height-1 bc-white radius-6 box-shadow\" *ngFor=\"let row of previousRequests\">\r\n <div class=\"d-flex align-items-center gap-2 mb-3\">\r\n <h3\r\n class=\"fs-16 fw-medium flex-grow-1 mb-0 cursor-pointer underline fw-bold\"\r\n (click)=\"viewForm(row?.form?.['formId'])\">{{ row?.form?.['formId'] }}</h3>\r\n </div>\r\n <div class=\"row g-3\">\r\n <div class=\"d-flex flex-column col-6\">\r\n <span class=\"fs-11 fc-dark-gray mb-2\">{{ i18n.translate('formTableCreationDate') }}</span>\r\n <span class=\"fs-12 fw-medium fc-black\">{{ row?.form?.['creationDate'] | date: 'dd/MM/yyyy hh:mm a' }}</span>\r\n </div>\r\n <div class=\"d-flex flex-column col-6 justify-content-end align-items-end\">\r\n\r\n <ds-status [attr.status]=\"row?.form?.formStatus?.key | statusClass\">\r\n {{ row?.form?.formStatus?.value }}\r\n </ds-status>\r\n </div>\r\n </div>\r\n </div>\r\n }\r\n\r\n </div>\r\n }\r\n @if (pageView.value === 'list') {\r\n <div class=\"table-responsive\">\r\n <table *ngIf=\"previousRequests?.length && !loading\">\r\n <thead>\r\n <tr>\r\n <th>{{ i18n.translate('formTableFormId') }}</th>\r\n <th>{{ i18n.translate('formTableCreationDate') }}</th>\r\n <th>{{ i18n.translate('Status') }}</th>\r\n </tr>\r\n </thead>\r\n\r\n <tbody *ngFor=\"let row of previousRequests\">\r\n <tr>\r\n <td>\r\n <span class=\"fw-medium cursor-pointer underline fw-bold \" (click)=\"viewForm(row?.form?.['formId'])\">\r\n {{ row?.form?.['formId'] }}\r\n </span>\r\n </td>\r\n <td>{{ row?.form?.['creationDate'] | date: 'dd/MM/yyyy hh:mm a' }}</td>\r\n <td>\r\n <ds-status [attr.status]=\"row?.form?.formStatus?.key | statusClass\">\r\n {{ row?.form?.formStatus?.value }}\r\n </ds-status>\r\n </td>\r\n </tr>\r\n </tbody>\r\n </table>\r\n <ds-loading-table *ngIf=\"loading\" [cols]=\"4\" [rows]=\"4\"></ds-loading-table>\r\n </div>\r\n }\r\n @if (!previousRequests?.length && !loading) {\r\n <ng-container *ngTemplateOutlet=\"emptyMessage\"></ng-container>\r\n }\r\n </section>\r\n </div>\r\n</section>\r\n\r\n<ng-template\r\n cdkConnectedOverlay\r\n [cdkConnectedOverlayHasBackdrop]=\"true\"\r\n (backdropClick)=\"isOpen = false\"\r\n [cdkConnectedOverlayGrowAfterOpen]=\"true\"\r\n [cdkConnectedOverlayOrigin]=\"trigger\"\r\n [cdkConnectedOverlayOpen]=\"isOpen\"\r\n>\r\n <form [formGroup]=\"filterFormGroup\">\r\n <div class=\"filter-container\">\r\n <div class=\"popup-header border-bottom pb-2\">\r\n <h3 class=\"fs-16 fc-black fw-medium\">{{ i18n.translate('filters') }}</h3>\r\n </div>\r\n <div class=\"d-flex flex-column gap-4 gap-md-3 filter-section bc-white mt-0 pt-3\">\r\n\r\n <app-custom-searchable\r\n class=\"section-item\"\r\n formControlName=\"status\"\r\n label=\"{{ i18n.translate('status') }}\"\r\n [options]=\"statuses\"\r\n [displayedLabel]=\"'value'\"\r\n [key]=\"'key'\">\r\n </app-custom-searchable>\r\n\r\n <app-custom-searchable\r\n class=\"section-item\"\r\n formControlName=\"year\"\r\n label=\"{{ i18n.translate('year') }}\"\r\n [options]=\"yearsOptions\"\r\n [displayedLabel]=\"'value'\"\r\n [key]=\"'key'\">\r\n </app-custom-searchable>\r\n\r\n <app-custom-searchable\r\n class=\"section-item\"\r\n formControlName=\"month\"\r\n label=\"{{ i18n.translate('month') }}\"\r\n [options]=\"monthsOptions\"\r\n [displayedLabel]=\"'value'\"\r\n [key]=\"'key'\">\r\n </app-custom-searchable>\r\n\r\n <div class=\"d-flex align-items-center gap-3 mt-4\">\r\n <ds-button shape=\"outline\" size=\"small\" (click)=\"clearFilters()\">\r\n <span class=\"fs-12\"> {{ i18n.translate('clear') }} </span>\r\n </ds-button>\r\n <ds-button class=\"w-100\" size=\"small\" (click)=\"applyFilters()\">\r\n <span class=\"fs-12\">{{ i18n.translate('applyFilters') }} </span>\r\n </ds-button>\r\n </div>\r\n </div>\r\n </div>\r\n </form>\r\n</ng-template>\r\n\r\n\r\n <ng-template #emptyMessage>\r\n <ds-message label=\"{{i18n.translate('NoData')}}\"></ds-message>\r\n </ng-template>\r\n","import {AfterViewInit, ChangeDetectorRef, Component, CUSTOM_ELEMENTS_SCHEMA, DestroyRef, inject, Input} from '@angular/core';\r\nimport {Form, Section} from '../../../interfaces';\r\nimport * as Constants from '../../../constants/constants';\r\nimport {MAT_DIALOG_DATA, MatDialog} from '@angular/material/dialog';\r\nimport {CoreI18nService, CoreService, FeedBackService, SidenavService} from '../../../services';\r\nimport {ProfileSectionComponent} from '../profile-section/profile-section.component';\r\nimport {FeedbackSectionComponent} from '../feedback-section/feedback-section.component';\r\nimport {NgClass, NgIf} from '@angular/common';\r\nimport {SatPopoverModule} from '@ncstate/sat-popover';\r\nimport {MatDivider} from '@angular/material/divider';\r\nimport {MatMenu, MatMenuItem, MatMenuTrigger} from '@angular/material/menu';\r\nimport {FaqSidenavComponent} from '../faq-sidenav/faq-sidenav.component';\r\nimport {ActivitiesComponent} from '../activities/activities.component';\r\nimport {format} from 'date-fns';\r\nimport {ToastrService} from \"ngx-toastr\";\r\nimport {PreviousRequestsComponent} from \"../previous-requests/previous-requests.component\";\r\nimport { takeUntilDestroyed } from '@angular/core/rxjs-interop';\r\n\r\nconst StatusMap = {\r\n [Constants.FORM_STATUS_REJECTED]: {class: 'danger', icon: 'close'},\r\n [Constants.FORM_STATUS_CANCELLED]: {class: 'danger', icon: 'close'},\r\n [Constants.FORM_STATUS_REJECT]: {class: 'danger', icon: 'close'},\r\n [Constants.SECTION_STATUS_UNSATISFIED]: {class: 'danger', icon: 'close'},\r\n [Constants.FORM_STATUS_CANCEL]: {class: 'danger', icon: 'close'},\r\n [Constants.FORM_STATUS_PENDING]: {class: 'warning', icon: 'clock'},\r\n 'default': {class: 'success', icon: 'check'}\r\n}\r\n\r\ninterface ApprovalHistoryItem {\r\n approver: {\r\n personName: string;\r\n personEmail: string;\r\n };\r\n positionType: string;\r\n}\r\n\r\n@Component({\r\n selector: 'core-service-header',\r\n templateUrl: './service-header.component.html',\r\n styleUrls: ['./service-header.component.scss'],\r\n standalone: true,\r\n imports: [\r\n NgIf,\r\n SatPopoverModule,\r\n MatDivider,\r\n MatMenuTrigger,\r\n NgClass,\r\n MatMenu,\r\n MatMenuItem\r\n ],\r\n schemas: [CUSTOM_ELEMENTS_SCHEMA],\r\n providers: [FeedBackService,\r\n {provide: MAT_DIALOG_DATA, useValue: {}},\r\n ]\r\n})\r\nexport class ServiceHeaderComponent implements AfterViewInit {\r\n @Input() form: Form;\r\n @Input() showHistory = false;\r\n @Input() isLoading = false;\r\n @Input() isReadOnly = false;\r\n @Input() showApprovalHistory = false;\r\n @Input() approvalHistory: any;\r\n @Input() creationDate: string;\r\n @Input() formTitle: string;\r\n @Input() section: Section;\r\n @Input() serviceFaq: any[] = [];\r\n approvals: any[] = [];\r\n flagPriority: string;\r\n destroyRef = inject(DestroyRef);\r\n\r\n\r\n constructor(\r\n private readonly cdRef: ChangeDetectorRef,\r\n public coreService: CoreService,\r\n public i18n: CoreI18nService, private readonly feedBackService: FeedBackService,\r\n private readonly dialog: MatDialog, private readonly sidenavService: SidenavService,\r\n private readonly toasterService: ToastrService\r\n ) {}\r\n\r\n /**\r\n * Executes after the view has been fully initialized.\r\n *\r\n * @return {void}\r\n */\r\n ngAfterViewInit() {\r\n this.getApprovalHistory(this.approvalHistory);\r\n if (this.form?.header?.creationDate) {\r\n this.creationDate = format(new Date(this.form?.header?.creationDate), \"dd/MM/yyyy hh:mm:ss\");\r\n }\r\n this.cdRef.detectChanges();\r\n }\r\n\r\n /**\r\n * Handles the click event on the comments form.\r\n * Retrieves comments from the form, transforms them, and updates activities in the core service.\r\n * Finally, publishes an 'open' event to the sidenav service to open the ActivitiesComponent.\r\n *\r\n * @return {void}\r\n */\r\n onCommentsFormClick() {\r\n const formComments: any = this.form.commentsDrop;\r\n const transformedComments = [];\r\n for (const comment of formComments) {\r\n transformedComments.push(this.transformCommentItem(comment));\r\n }\r\n this.coreService.activities = transformedComments;\r\n this.sidenavService.publish('open', ActivitiesComponent);\r\n }\r\n\r\n /**\r\n * Transforms a comment item into a different format for display.\r\n *\r\n * @param {Object} item - The original comment item to transform.\r\n * @return {Object} - The transformed comment item with specific properties including name, title, image, date, time, comment, and attachments.\r\n */\r\n private transformCommentItem(item) {\r\n return {\r\n name: item['employeeName'],\r\n title: item.jobPosition,\r\n image: item['profilePicture'],\r\n date: format(new Date(item['commentDate']), 'yyyy-MM-dd'),\r\n time: format(new Date(item['commentDate']), 'h:mm a'),\r\n comment: item['commentBody'],\r\n attachments: item['attachment']\r\n };\r\n }\r\n\r\n /**\r\n * Opens a dialog for providing feedback.\r\n *\r\n * @return {void}\r\n */\r\n feedback(): void {\r\n this.dialog.open(FeedbackSectionComponent, {\r\n panelClass: ['main-popup'],\r\n data: {\r\n profile: this.form.profileInfoDrop,\r\n inboxItem: this.form.inboxItem,\r\n form: this.form\r\n }\r\n });\r\n }\r\n\r\n /**\r\n * Updates the sidenav with user profile information if not already loading.\r\n *\r\n * @return {void}\r\n */\r\n showUserInfo(): void {\r\n if (!this.isLoading) {\r\n this.sidenavService.data = this.form?.profileInfoDrop;\r\n this.sidenavService.publish('open', ProfileSectionComponent);\r\n }\r\n }\r\n\r\n /**\r\n * Set the priority flag for the inbox item with the provided ID.\r\n *\r\n * @param {string} id - The ID of the priority flag to be set for the inbox item.\r\n * @return {void}\r\n */\r\n setFlagPriority(id: string) {\r\n this.flagPriority = id;\r\n this.form.inboxItem.flagPriority = id;\r\n this.subscribeToSetFlagPriority(id);\r\n }\r\n\r\n /**\r\n * Subscribe to set flag priority for a specific identifier.\r\n *\r\n * @param {string} id - The identifier of the flag to set priority for.\r\n * @return {void}\r\n */\r\n subscribeToSetFlagPriority(id: string): void {\r\n this.coreService.setFlagPriority(id).pipe(\r\n takeUntilDestroyed(this.destroyRef)\r\n ).subscribe((response: any) => {\r\n if (response) {\r\n this.toasterService.success(this.i18n.translate('flagStatusUpdated'));\r\n }\r\n });\r\n }\r\n\r\n /**\r\n * Returns the CSS class associated with the input status.\r\n *\r\n * @param {string} status - The status for which the CSS class is needed.\r\n * @return {string} - The CSS class corresponding to the given status.\r\n */\r\n statusClass(status: string): string {\r\n // status = status ? status.toLowerCase() : '';\r\n let statusStrategy = StatusMap[status] || StatusMap['default'];\r\n return statusStrategy.class;\r\n }\r\n\r\n /**\r\n * Opens the FAQ side navigation.\r\n * @return {void}\r\n */\r\n openFaq() {\r\n this.sidenavService.publish('open', FaqSidenavComponent, 'end', 'over', this.serviceFaq);\r\n }\r\n\r\n /**\r\n * Retrieves approval history information for each approval item in the provided array.\r\n *\r\n * @param {ApprovalHistoryItem[]} approvalHistory - The array containing approval history items.\r\n *\r\n * @return {void} - This method does not return any value. It updates the internal 'approvals' array.\r\n */\r\n getApprovalHistory(approvalHistory: ApprovalHistoryItem[]) {\r\n approvalHistory?.forEach((approvalItem, index) => {\r\n let approvalStatus = this.getApprovalStatus(index);\r\n let approvalStatusLabel = this.getApprovalStatusLabel(index);\r\n const obj = {\r\n id: index + 1,\r\n name: approvalItem.approver.personName,\r\n title: approvalItem.positionType,\r\n image: this.getImageUrl(approvalItem.approver.personEmail),\r\n status: approvalStatus,\r\n statusLabel: approvalStatusLabel,\r\n };\r\n this.approvals.push(obj);\r\n });\r\n }\r\n\r\n /**\r\n * Retrieves the approval status for a specific section in the form.\r\n *\r\n * @param {number} index - The index of the section for which the approval status is required.\r\n * @return {string} The approval status of the specified section. Returns an empty string if the section does not exist.\r\n */\r\n private getApprovalStatus(index: number): string {\r\n let status = '';\r\n if (this.form.sections[index + 1]) {\r\n status = this.statusClass(this.form.sections[index + 1].body.details.decision.key);\r\n }\r\n return status;\r\n }\r\n\r\n /**\r\n * Retrieves the approval status label from the form section based on the given index.\r\n *\r\n * @param {number} index - The index of the form section for which the approval status label will be retrieved.\r\n * @return {string} The approval status label retrieved from the specified form section.\r\n */\r\n private getApprovalStatusLabel(index: number): string {\r\n let statusLabel = '';\r\n if (this.form.sections[index + 1]) {\r\n statusLabel = this.form.sections[index + 1].body.details.decision.value;\r\n }\r\n return statusLabel;\r\n }\r\n\r\n /**\r\n * Retrieves the URL of the user's portrait image based on the provided email.\r\n *\r\n * @param {string} email - The email address of the user for whom the portrait URL is to be retrieved.\r\n * @return {string} - The URL used to fetch the user's portrait image.\r\n */\r\n private getImageUrl(email: string): string {\r\n return '/group/i-gate/wm-bpm/forms/-/proxy/portrait?email=' + email;\r\n }\r\n\r\n showPreviousRequests() {\r\n this.sidenavService.publish('open', PreviousRequestsComponent);\r\n }\r\n}\r\n","@if (form?.header?.status?.['key'] === 'NEW') {\r\n <section\r\n class=\"main-sidenav main-sidenav-full mb-4\"\r\n\r\n >\r\n <div class=\"sidenav-title\">\r\n <div class=\"d-flex align-items-center gap-3 w-100\">\r\n <!-- <ds-button icon class=\"rotate-arrow\" size=\"small\" (click)=\"goBack()\" *ngIf=\"!isInMobileApp() && showBack\">\r\n <ds-icon icon=\"arrow-right\" class=\"fs-19 fc-black\"></ds-icon>\r\n </ds-button>-->\r\n\r\n <!-- <h3 class=\"flex-grow-0\">\r\n {{ formTitle }}\r\n </h3>-->\r\n\r\n <section>\r\n <p class=\"fs-14 fs-md-12 fw-normal fc-dark-gray mb-1\">\r\n {{ i18n.translate('Hello') }}\r\n {{ coreService.getShortName(form?.header?.requesterName) }}, {{ i18n.translate('welcomeBack') }}!\r\n </p>\r\n <h1 class=\"fs-26 fs-md-20 fw-bold fc-black d-flex align-items-center gap-2 mb-1\">\r\n {{ formTitle }}\r\n @if (serviceFaq.length) {\r\n <ds-icon icon=\"info\" class=\"fs-22 fc-dark-gray cursor-pointer\" (click)=\"openFaq()\">\r\n </ds-icon>\r\n }\r\n </h1>\r\n </section>\r\n <div class=\"d-flex align-items-center justify-content-end gap-2 flex-grow-1\">\r\n @if (serviceFaq.length) {\r\n <ds-button size=\"small\" icon>\r\n <ds-icon icon=\"info\" class=\"fs-22 fc-dark-gray cursor-pointer\" (click)=\"openFaq()\">\r\n </ds-icon>\r\n </ds-button>\r\n }\r\n <!-- <ds-button size=\"small\" icon (click)=\"openWorkflow()\">\r\n <ds-icon icon=\"bell-2-o\" class=\"fs-20 fc-coral\"></ds-icon>\r\n </ds-button> -->\r\n @if (!isReadOnly) {\r\n <ds-button size=\"small\" icon (click)=\"showPreviousRequests()\">\r\n <ds-icon icon=\"clock\" class=\"fs-20 fc-coral\"></ds-icon>\r\n </ds-button>\r\n }\r\n </div>\r\n </div>\r\n </div>\r\n </section>\r\n\r\n <!-- <header class=\"mb-4 mt-4 d-flex align-items-center justify-content-between align-items-end gap-2\">\r\n <section>\r\n <h6 class=\"fs-14 fs-md-12 fw-normal fc-dark-gray mb-0\">\r\n {{ i18n.translate('Hello') }}\r\n {{ coreService.getShortName(form?.header?.requesterName) }}, {{ i18n.translate('welcomeBack') }}!\r\n </h6>\r\n <h1 class=\"fs-26 fs-md-20 fw-bold fc-black d-flex align-items-center gap-2 mb-1\">\r\n {{ formTitle }}\r\n @if (serviceFaq.length) {\r\n <ds-icon icon=\"info\" class=\"fs-22 fc-dark-gray cursor-pointer\" (click)=\"openFaq()\">\r\n </ds-icon>\r\n }\r\n </h1>\r\n </section>\r\n </header>-->\r\n} @else {\r\n\r\n <div class=\"w-100\">\r\n <section class=\"request-main-info {{statusClass(form?.header?.status?.['key'])}}\">\r\n <section class=\"request-info\">\r\n <div class=\"request-info--body\">\r\n <div class=\"d-flex align-items-center gap-2 flex-grow-1\">\r\n <img\r\n alt=\"\"\r\n src=\"data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMzAiIGhlaWdodD0iMjkiIHZpZXdCb3g9IjAgMCAzMCAyOSIgZmlsbD0ibm9uZSIgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIj4KPHBhdGggZD0iTTI1LjEgMEg0LjlDMi4yIDAgMCAyLjIgMCA0LjlWMjguNkgyNS4xQzI3LjggMjguNiAzMCAyNi40IDMwIDIzLjdWNC45QzMwIDIuMiAyNy44IDAgMjUuMSAwWk0yIDQuOUMyIDMuMyAzLjMgMiA0LjkgMkgyNS4xQzI2LjcgMiAyOCAzLjMgMjggNC45VjIzLjdDMjggMjUuMyAyNi43IDI2LjYgMjUuMSAyNi42SDJWNC45Wk0xMS41IDYuM0M3LjEgNi4zIDMuNSA5LjkgMy41IDE0LjNDMy41IDE4LjcgNy4xIDIyLjMgMTEuNSAyMi4zQzE1LjkgMjIuMyAxOS41IDE4LjcgMTkuNSAxNC4zQzE5LjUgOS45IDE1LjkgNi4zIDExLjUgNi4zWk0xNS4xIDE5QzE0LjEgMTkuOCAxMi44IDIwLjIgMTEuNSAyMC4yQzEwLjIgMjAuMiA4LjkgMTkuOCA3LjkgMTlDOC43IDE3LjcgMTAgMTcgMTEuNSAxN0MxMyAxNyAxNC40IDE3LjggMTUuMSAxOVpNMTMuMSAxMy40QzEzLjEgMTQuMyAxMi40IDE1IDExLjUgMTVDMTAuNiAxNSA5LjkgMTQuMyA5LjkgMTMuNEM5LjkgMTIuNSAxMC42IDExLjggMTEuNSAxMS44QzEyLjQgMTEuOCAxMy4xIDEyLjUgMTMuMSAxMy40Wk0xNS4xIDEzLjRDMTUuMSAxMS40IDEzLjUgOS44IDExLjUgOS44QzkuNSA5LjggNy45IDExLjQgNy45IDEzLjRDNy45IDE0LjIgOC4yIDE1IDguNyAxNS43QzcuOCAxNi4xIDcuMSAxNi44IDYuNSAxNy42QzUuOCAxNi42IDUuNSAxNS41IDUuNSAxNC4zQzUuNSAxMSA4LjIgOC4zIDExLjUgOC4zQzE0LjggOC4zIDE3LjUgMTEgMTcuNSAxNC4zQzE3LjUgMTUuNSAxNy4yIDE2LjYgMTYuNSAxNy42QzE1LjkgMTYuOCAxNS4yIDE2LjIgMTQuMyAxNS43QzE0LjggMTUuMSAxNS4xIDE0LjIgMTUuMSAxMy40Wk0yMSA5LjFDMjEgOC42IDIxLjQgOC4xIDIyIDguMUgyNS41QzI2IDguMSAyNi41IDguNSAyNi41IDkuMUMyNi41IDkuNiAyNi4xIDEwLjEgMjUuNSAxMC4xSDIyQzIxLjQgMTAuMSAyMSA5LjYgMjEgOS4xWk0yMSAxMi41QzIxIDEyIDIxLjQgMTEuNSAyMiAxMS41SDI1LjVDMjYgMTEuNSAyNi41IDExLjkgMjYuNSAxMi41QzI2LjUgMTMgMjYuMSAxMy41IDI1LjUgMTMuNUgyMkMyMS40IDEzLjUgMjEgMTMuMSAyMSAxMi41Wk0yMSAxNkMyMSAxNS41IDIxLjQgMTUgMjIgMTVIMjUuNUMyNiAxNSAyNi41IDE1LjQgMjYuNSAxNkMyNi41IDE2LjUgMjYuMSAxNyAyNS41IDE3SDIyQzIxLjQgMTcgMjEgMTYuNiAyMSAxNlpNMjUuNSAyMC41SDIyQzIxLjUgMjAuNSAyMSAyMC4xIDIxIDE5LjVDMjEgMTguOSAyMS40IDE4LjUgMjIgMTguNUgyNS41QzI2IDE4LjUgMjYuNSAxOC45IDI2LjUgMTkuNUMyNi41IDIwLjEgMjYuMSAyMC41IDI1LjUgMjAuNVoiIGZpbGw9IiNGRjM3NUUiLz4KPC9zdmc+Cg==\"/>\r\n <h4 class=\"fs-22 fs-md-16 fc-black fw-medium mb-0 flex-grow-1 line-height-1-2\">\r\n {{ formTitle }}\r\n </h4>\r\n </div>\r\n <div class=\"d-flex align-items-center gap-2 request-info--status-action\">\r\n <div class=\"d-inline-flex flex-column align-items-end\">\r\n @if (!isLoading) {\r\n <ds-status\r\n status=\"{{statusClass(form?.header?.status?.['key'])}}\" class=\"header-status\">{{ form?.header?.status?.['value'] }}\r\n </ds-status>\r\n }\r\n </div>\r\n <div class=\"d-flex align-items-center gap-2\">\r\n <!-- <ds-button\r\n *ngIf=\"form?.inboxItem && (form?.inboxItem?.canRequestFeedback =='true'|| form?.inboxItem?.hasFeedback=='true')\"\r\n square icon size=\"small\">\r\n <ds-icon icon=\"chat-o\" class=\"fs-20 fs-md-17 fc-coral\">\r\n <!– [ngClass]=\"{'fc-green':feedBackIcon == 'feedbackResponded' , 'fc-red': feedBackIcon == 'respondToFeedback' , 'fc-yellow': feedBackIcon == 'waitingFeedback'}\"–>\r\n </ds-icon>\r\n </ds-button>-->\r\n <!-- history-->\r\n <ds-button\r\n *ngIf=\"form?.commentsDrop?.length > 0 && !isLoading\" square icon size=\"small\"\r\n (click)=\"onCommentsFormClick()\" class=\"has-comments\">\r\n <ds-icon icon=\"clock\" class=\"fc-coral fs-20 fs-md-17\"></ds-icon>\r\n </ds-button>\r\n <ng-content></ng-content>\r\n </div>\r\n </div>\r\n </div>\r\n\r\n <div class=\"request-info--footer\">\r\n @if (!isLoading) {\r\n <ds-avatar\r\n image=\"{{form?.header?.requesterPhoto}}\" size=\"xx-small\"\r\n class=\"d-inline-flex cursor-pointer\" (click)=\"showUserInfo()\"></ds-avatar>\r\n }\r\n <div\r\n class=\"d-flex align-items-center flex-wrap flex-grow-1 gap-1 gap-sm-2 line-height-1 request-info--header__details\">\r\n <span\r\n [ngClass]=\"{'loading-bg loading-width': isLoading}\"\r\n class=\"fs-12 fw-medium d-none d-sm-inline-block\">{{ coreService.getShortName(form?.header?.['requesterName']) }}</span>\r\n <span class=\"fs-20\">•</span>\r\n <span class=\"fs-12\" [ngClass]=\"{'loading-bg loading-width': isLoading}\"> {{ form?.header?.formId }}</span>\r\n <span class=\"fs-20\" *ngIf=\"creationDate\">•</span>\r\n <span class=\"fs-12\" [ngClass]=\"{'loading-bg loading-width': isLoading}\"> {{ creationDate }}</span>\r\n </div>\r\n </div>\r\n </section>\r\n </section>\r\n\r\n </div>\r\n\r\n\r\n <!--<ng-container>\r\n <div class=\"d-flex align-items-center justify-content-end gap-2 my-2\">\r\n <ds-button\r\n *ngIf=\"form?.inboxItem && !form.sections[form.sections.length -1].header.readOnly && !isLoading\"\r\n square\r\n icon\r\n size=\"small\"\r\n [matMenuTriggerFor]=\"menu\"\r\n class=\"icon-btn-shadow\">\r\n <ds-icon\r\n [ngClass]=\"{'fc-purple' : (flagPriority === '0' || flagPriority === null),'fc-yellow' : flagPriority === '1','fc-green' : flagPriority === '2','fc-coral' : flagPriority === '3'}\"\r\n icon=\"flag-o\" class=\"fs-20 fs-md-17 fc-purple\">\r\n </ds-icon>\r\n </ds-button>\r\n <mat-menu #menu=\"matMenu\" panelClass=\"action-menu\">\r\n <button mat-menu-item (click)=\"setFlagPriority('0')\">\r\n <ds-icon icon=\"flag-o\" class=\"fc-purple fs-20 fs-md-17\"></ds-icon>\r\n </button>\r\n <button mat-menu-item (click)=\"setFlagPriority('1')\">\r\n <ds-icon icon=\"flag-o\" class=\"fc-yellow fs-20 fs-md-17\"></ds-icon>\r\n </button>\r\n <button mat-menu-item (click)=\"setFlagPriority('2')\">\r\n <ds-icon icon=\"flag-o\" class=\"fc-green fs-20 fs-md-17\"></ds-icon>\r\n </button>\r\n <button mat-menu-item (click)=\"setFlagPriority('3')\">\r\n <ds-icon icon=\"flag-o\" class=\"fc-coral fs-20 fs-md-17\"></ds-icon>\r\n </button>\r\n </mat-menu>\r\n\r\n <ng-content></ng-content>\r\n </div>\r\n <header class=\"service-header bc-white p-3 p-sm-4 py-4 gap-3 {{statusClass(form?.header?.status?.['key'])}}\">\r\n\r\n <div class=\"service-header-icon\">\r\n <img\r\n alt=\"\"\r\n src=\"data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMzAiIGhlaWdodD0iMjkiIHZpZXdCb3g9IjAgMCAzMCAyOSIgZmlsbD0ibm9uZSIgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIj4KPHBhdGggZD0iTTI1LjEgMEg0LjlDMi4yIDAgMCAyLjIgMCA0LjlWMjguNkgyNS4xQzI3LjggMjguNiAzMCAyNi40IDMwIDIzLjdWNC45QzMwIDIuMiAyNy44IDAgMjUuMSAwWk0yIDQuOUMyIDMuMyAzLjMgMiA0LjkgMkgyNS4xQzI2LjcgMiAyOCAzLjMgMjggNC45VjIzLjdDMjggMjUuMyAyNi43IDI2LjYgMjUuMSAyNi42SDJWNC45Wk0xMS41IDYuM0M3LjEgNi4zIDMuNSA5LjkgMy41IDE0LjNDMy41IDE4LjcgNy4xIDIyLjMgMTEuNSAyMi4zQzE1LjkgMjIuMyAxOS41IDE4LjcgMTkuNSAxNC4zQzE5LjUgOS45IDE1LjkgNi4zIDExLjUgNi4zWk0xNS4xIDE5QzE0LjEgMTkuOCAxMi44IDIwLjIgMTEuNSAyMC4yQzEwLjIgMjAuMiA4LjkgMTkuOCA3LjkgMTlDOC43IDE3LjcgMTAgMTcgMTEuNSAxN0MxMyAxNyAxNC40IDE3LjggMTUuMSAxOVpNMTMuMSAxMy40QzEzLjEgMTQuMyAxMi40IDE1IDExLjUgMTVDMTAuNiAxNSA5LjkgMTQuMyA5LjkgMTMuNEM5LjkgMTIuNSAxMC42IDExLjggMTEuNSAxMS44QzEyLjQgMTEuOCAxMy4xIDEyLjUgMTMuMSAxMy40Wk0xNS4xIDEzLjRDMTUuMSAxMS40IDEzLjUgOS44IDExLjUgOS44QzkuNSA5LjggNy45IDExLjQgNy45IDEzLjRDNy45IDE0LjIgOC4yIDE1IDguNyAxNS43QzcuOCAxNi4xIDcuMSAxNi44IDYuNSAxNy42QzUuOCAxNi42IDUuNSAxNS41IDUuNSAxNC4zQzUuNSAxMSA4LjIgOC4zIDExLjUgOC4zQzE0LjggOC4zIDE3LjUgMTEgMTcuNSAxNC4zQzE3LjUgMTUuNSAxNy4yIDE2LjYgMTYuNSAxNy42QzE1LjkgMTYuOCAxNS4yIDE2LjIgMTQuMyAxNS43QzE0LjggMTUuMSAxNS4xIDE0LjIgMTUuMSAxMy40Wk0yMSA5LjFDMjEgOC42IDIxLjQgOC4xIDIyIDguMUgyNS41QzI2IDguMSAyNi41IDguNSAyNi41IDkuMUMyNi41IDkuNiAyNi4xIDEwLjEgMjUuNSAxMC4xSDIyQzIxLjQgMTAuMSAyMSA5LjYgMjEgOS4xWk0yMSAxMi41QzIxIDEyIDIxLjQgMTEuNSAyMiAxMS41SDI1LjVDMjYgMTEuNSAyNi41IDExLjkgMjYuNSAxMi41QzI2LjUgMTMgMjYuMSAxMy41IDI1LjUgMTMuNUgyMkMyMS40IDEzLjUgMjEgMTMuMSAyMSAxMi41Wk0yMSAxNkMyMSAxNS41IDIxLjQgMTUgMjIgMTVIMjUuNUMyNiAxNSAyNi41IDE1LjQgMjYuNSAxNkMyNi41IDE2LjUgMjYuMSAxNyAyNS41IDE3SDIyQzIxLjQgMTcgMjEgMTYuNiAyMSAxNlpNMjUuNSAyMC41SDIyQzIxLjUgMjAuNSAyMSAyMC4xIDIxIDE5LjVDMjEgMTguOSAyMS40IDE4LjUgMjIgMTguNUgyNS41QzI2IDE4LjUgMjYuNSAxOC45IDI2LjUgMTkuNUMyNi41IDIwLjEgMjYuMSAyMC41IDI1LjUgMjAuNVoiIGZpbGw9IiNGRjM3NUUiLz4KPC9zdmc+Cg==\"/>\r\n </div>\r\n\r\n <div class=\"flex-grow-1 d-flex flex-column flex-sm-row align-items-sm-center gap-2\">\r\n <div class=\"flex-grow-1\">\r\n <h1 class=\"fs-20 fs-md-16 fw-bold fc-black header-title m-0\">{{ formTitle }}\r\n @if (serviceFaq.length) {\r\n <ds-icon icon=\"info\" class=\"fs-22 fc-dark-gray cursor-pointer\" (click)=\"openFaq()\">\r\n </ds-icon>\r\n }\r\n </h1>\r\n <div class=\"header-user d-flex align-items-sm-center gap-2 mt-sm-1\">\r\n @if (!isLoading) {\r\n <ds-avatar\r\n image=\"{{form?.header?.requesterPhoto}}\" size=\"xx-small\"\r\n class=\"d-inline-flex cursor-pointer\" (click)=\"showUserInfo()\"></ds-avatar>\r\n }\r\n <span\r\n class=\"fs-12 text-truncate d-sm-block cursor-pointer\" (click)=\"showUserInfo()\"\r\n [ngClass]=\"{'loading-bg loading-width': isLoading}\">{{ coreService.getShortName(form?.header?.requesterName) }}</span>\r\n <mat-divider class=\"divider circle mx-2 d-none d-sm-block\"></mat-divider>\r\n <span class=\"fs-12\" [ngClass]=\"{'loading-bg loading-width': isLoading}\">{{ form?.header?.formId }}</span>\r\n @if (creationDate) {\r\n <mat-divider class=\"divider circle mx-2 d-none d-sm-block\"></mat-divider>\r\n <span class=\"fs-14\" [ngClass]=\"{'loading-bg loading-width': isLoading}\">{{ creationDate }}</span>\r\n }\r\n </div>\r\n\r\n </div>\r\n <div class=\"header-actions d-flex flex-row flex-sm-column justify-content-between justify-content-sm-center gap-2 mt-2 mt-sm-0\">\r\n @if (!isLoading) {\r\n <ds-status\r\n status=\"{{statusClass(form?.header?.status?.['key'])}}\" class=\"header-status\">{{ form?.header?.status?.['value'] }}\r\n </ds-status>\r\n }\r\n <div class=\"d-flex align-items-center justify-content-end gap-2\">\r\n <!– feedback–>\r\n <!– *ngIf=\"form?.inboxItem && (form?.inboxItem?.canRequestFeedback ==='true'|| form?.inboxItem?.hasFeedback==='true') && !isLoading\"–>\r\n <!– <ds-button\r\n square icon size=\"small\" (click)=\"feedback()\">\r\n <ds-icon\r\n icon=\"chat-o\" class=\"fs-20 fs-md-17 fc-coral\"\r\n [ngClass]=\"{'fc-green':feedBackIcon === 'feedbackResponded' , 'fc-red': feedBackIcon === 'respondToFeedback' , 'fc-yellow': feedBackIcon === 'waitingFeedback'}\">\r\n </ds-icon>\r\n </ds-button>–>\r\n <ds-button\r\n *ngIf=\"form?.commentsDrop?.length > 0 && !isLoading\" square icon size=\"small\"\r\n (click)=\"onCommentsFormClick()\" class=\"has-comments\">\r\n <ds-icon icon=\"clock\" class=\"fc-coral fs-20 fs-md-17\"></ds-icon>\r\n </ds-button>\r\n @if (showApprovalHistory) {\r\n <ng-container>\r\n <ds-button\r\n color=\"white\" shape=\"text\" square size=\"small\" [satPopoverAnchor]=\"workflow\"\r\n #workflowAnchor=\"satPopoverAnchor\" (click)=\"workflowAnchor.popover.open()\">\r\n <slot name=\"prefix\">\r\n <ds-icon icon=\"workflow\" class=\"fs-24\"></ds-icon>\r\n </slot>\r\n </ds-button>\r\n <sat-popover\r\n #workflow [anchor]=\"workflowAnchor\" [hasBackdrop]=\"true\" verticalAlign=\"below\"\r\n horizontalAlign=\"end\">\r\n <div class=\"default-popover p-3\" style=\"min-width: 330px;\">\r\n <ds-approvals *ngIf=\"approvalHistory\" class=\"popover-approvals\" approvalsData=\"{{approvals}}\">\r\n </ds-approvals>\r\n </div>\r\n </sat-popover>\r\n </ng-container>\r\n }\r\n </div>\r\n </div>\r\n </div>\r\n\r\n </header>\r\n </ng-container>-->\r\n}\r\n","import { Component, CUSTOM_ELEMENTS_SCHEMA, Input } from '@angular/core';\r\nimport * as Constants from '../../../constants';\r\nimport { Form } from '../../../interfaces';\r\nimport { NgClass } from '@angular/common';\r\n\r\n@Component({\r\n selector: 'app-status',\r\n templateUrl: './status.component.html',\r\n styleUrls: ['./status.component.scss'],\r\n schemas: [CUSTOM_ELEMENTS_SCHEMA],\r\n standalone: true,\r\n imports: [\r\n NgClass\r\n ],\r\n})\r\nexport class StatusComponent {\r\n @Input() form: Form;\r\n\r\n statusClass(status: string) {\r\n if (status === Constants.FORM_STATUS_REJECTED || status === Constants.FORM_STATUS_CANCELLED) {\r\n return {\r\n status: true,\r\n danger: status === Constants.FORM_STATUS_REJECTED || status === Constants.FORM_STATUS_CANCELLED\r\n };\r\n } else if (status === Constants.FORM_STATUS_PENDING) {\r\n return {\r\n status: true,\r\n warning: status === Constants.FORM_STATUS_PENDING\r\n };\r\n } else {\r\n return {\r\n status: true,\r\n success: status === Constants.FORM_STATUS_COMPLETED || Constants.FORM_STATUS_APPROVED\r\n };\r\n }\r\n }\r\n\r\n}\r\n","<div [ngClass]=\"statusClass(form.header.status?.['key'])\">{{form.header.status?.['value']}}</div>\r\n","import {Component, CUSTOM_ELEMENTS_SCHEMA, DestroyRef, inject, Input, OnInit} from '@angular/core';\r\nimport {CoreI18nService, CoreService, SidenavService} from '../../../services';\r\nimport {ComponentOutletIoDirective, DynamicModule} from 'ng-dynamic-component';\r\nimport {NgClass, NgComponentOutlet, NgIf} from '@angular/common';\r\nimport {MatExpansionModule, MatExpansionPanel} from '@angular/material/expansion';\r\nimport {SatPopoverModule} from '@ncstate/sat-popover';\r\nimport {Form, ProfileInfoDrop, Section} from '../../../interfaces';\r\nimport * as Constants from '../../../constants';\r\nimport {ProfileSectionComponent} from \"../profile-section/profile-section.component\";\r\nimport {format} from 'date-fns';\r\nimport { takeUntilDestroyed } from '@angular/core/rxjs-interop';\r\n\r\nconst StatusMap = {\r\n [Constants.FORM_STATUS_REJECTED]: {class: 'danger', icon: 'close'},\r\n [Constants.FORM_STATUS_CANCELLED]: {class: 'danger', icon: 'close'},\r\n [Constants.FORM_STATUS_REJECT]: {class: 'danger', icon: 'close'},\r\n [Constants.SECTION_STATUS_UNSATISFIED]: {class: 'danger', icon: 'close'},\r\n [Constants.FORM_STATUS_CANCEL]: {class: 'danger', icon: 'close'},\r\n [Constants.FORM_STATUS_PENDING]: {class: 'warning', icon: 'clock'},\r\n 'default': {class: 'success', icon: 'check'}\r\n}\r\n\r\n@Component({\r\n selector: 'app-form-section',\r\n templateUrl: './form-section.component.html',\r\n styleUrls: ['./form-section.component.scss'],\r\n standalone: true,\r\n imports: [\r\n MatExpansionModule,\r\n MatExpansionPanel,\r\n NgIf,\r\n NgComponentOutlet,\r\n ComponentOutletIoDirective,\r\n SatPopoverModule,\r\n NgClass,\r\n DynamicModule\r\n ],\r\n schemas: [CUSTOM_ELEMENTS_SCHEMA]\r\n})\r\nexport class FormSectionComponent\r\n implements OnInit {\r\n userType = 'recipient';\r\n popoverType = 'recipient';\r\n @Input() requestDetails: Section;\r\n userPopoverInfo: any = {};\r\n @Input() section: Section;\r\n @Input() form: Form;\r\n @Input() lov: any;\r\n @Input() isReadOnly: boolean;\r\n @Input() controllers: any;\r\n @Input() segmentDynamicLoaderService: any;\r\n @Input() sectionFormComponent: any = null;\r\n @Input() sectionName = 'SECTION_NAME.requestDetails';\r\n sectionStatusKey: string;\r\n recipient = {\r\n isShowing: false,\r\n profile: null\r\n };\r\n delegate = {\r\n isShowing: false,\r\n profile: null\r\n };\r\n public input;\r\n processingDate: string;\r\n destroyRef = inject(DestroyRef);\r\n\r\n\r\n constructor(\r\n public i18n: CoreI18nService,\r\n private readonly coreService: CoreService,\r\n private readonly sidenavService: SidenavService\r\n ) {\r\n }\r\n\r\n /**\r\n * Method to initialize various components when the component is initialized.\r\n *\r\n * @return {void}\r\n */\r\n ngOnInit() {\r\n this.initSectionFormComponent();\r\n this.initSectionName();\r\n this.initInput();\r\n this.initProcessingDate();\r\n }\r\n\r\n /**\r\n * Initializes the section form component by fetching it from the segment dynamic loader service.\r\n *\r\n * @return {void}\r\n */\r\n private initSectionFormComponent() {\r\n this.sectionFormComponent = this.segmentDynamicLoaderService.getComponent(\r\n this.section.id\r\n );\r\n }\r\n\r\n /**\r\n * Initializes the section name based on the provided section data.\r\n * If the section's body contains a 'stageName' property, the section name is set to the value of that property.\r\n * Otherwise, the section name is retrieved using the segmentDynamicLoaderService based on the section ID.\r\n *\r\n * @return {void}\r\n */\r\n private initSectionName() {\r\n if (this.section.body.details?.['stageName']) {\r\n this.sectionName = this.section.body.details['stageName']?.value ??this.section.body.details['stageName'];\r\n } else {\r\n this.sectionName = this.segmentDynamicLoaderService.getSectionName(this.section.id);\r\n }\r\n }\r\n\r\n /**\r\n * Initializes the input object with the provided values for read-only status, list of values, section, and form.\r\n *\r\n * @return {void}\r\n */\r\n private initInput() {\r\n this.input = {\r\n isReadOnly: this.isReadOnly,\r\n lov: this.lov,\r\n section: this.section,\r\n form: this.form\r\n };\r\n }\r\n\r\n /**\r\n * Initializes the processing date based on the section's header processing date.\r\n * If the processing date is available in the section header, it formats the processing date\r\n * and assigns it to the processingDate property of the instance.\r\n *\r\n * @return {void}\r\n */\r\n private initProcessingDate() {\r\n if (this.section?.header?.processingDate) {\r\n this.processingDate = format(new Date(this.section.header.processingDate), \"dd/MM/yyyy hh:mm:ss\");\r\n }\r\n }\r\n\r\n\r\n /**\r\n * Check if the section is expanded.\r\n *\r\n * @return {boolean} Returns true if the section is expanded, false otherwise.\r\n */\r\n get isExpanded(): boolean {\r\n const hasSections = Boolean(this.form?.sections?.length);\r\n const isAnySectionExpandable = hasSections && this.form.sections.some(section => 'expandStage' in (section?.body?.details || {}));\r\n return isAnySectionExpandable ? (this.section?.body?.details?.['expandStage'] === 'true') : true;\r\n }\r\n\r\n /**\r\n * Create a ProfileInfoDrop object from the response object.\r\n *\r\n * @param {any} response - The response object containing user profile information.\r\n *\r\n * @return {ProfileInfoDrop} A ProfileInfoDrop object created from the response data.\r\n */\r\n private createUserProfileFromResponse(response: any): ProfileInfoDrop {\r\n const user = response?.[\"Users\"][0];\r\n return new ProfileInfoDrop(\r\n false,\r\n user?.employeeNumber,\r\n user?.email,\r\n user?.name,\r\n user?.generalDepartment?.name,\r\n user?.position?.name,\r\n user?.sector?.name,\r\n user?.department?.name,\r\n user?.generalDepartment?.code,\r\n user?.location,\r\n user?.nationality?.desc,\r\n user?.contact?.mobile,\r\n user?.manager?.name,\r\n user?.seniorSectorName?.name\r\n );\r\n }\r\n\r\n /**\r\n * Method to open or create a user profile.\r\n *\r\n * @param {ProfileInfoDrop} userData - The user profile data to open or create.\r\n * @param {string} personType - The type of person this profile belongs to.\r\n *\r\n * @return {void}\r\n */\r\n private openOrCreateUserProfile(userData: ProfileInfoDrop, personType: string) {\r\n this.sidenavService.data = userData;\r\n this.userPopoverInfo = userData;\r\n this[personType].profile = userData;\r\n this.sidenavService.publish('open', ProfileSectionComponent);\r\n }\r\n\r\n /**\r\n * Toggles the display of small profile information for a given person type\r\n *\r\n * @param {any} event - The event that triggered the toggle\r\n * @param {string} personType - The type of person for which to display the profile information\r\n *\r\n * @return {void}\r\n */\r\n toggleSmallProfileInfo(event: any, personType: string): void {\r\n this.userType = personType;\r\n event.stopPropagation();\r\n let userInfo = this[personType];\r\n if (!userInfo.profile) {\r\n this.popoverType = personType;\r\n let userEmail = this.getUserEmail(personType);\r\n this.fetchAndSetUserProfile(userEmail, personType);\r\n } else {\r\n this.openOrCreateUserProfile(userInfo.profile, personType);\r\n }\r\n }\r\n\r\n /**\r\n * Retrieves the email of the user based on the personType parameter.\r\n *\r\n * @param {string} personType - Type of the person ('recipient' or others).\r\n * @return {string} - The email address of the user.\r\n */\r\n private getUserEmail(personType: string): string {\r\n return (personType === 'recipient'\r\n ? this.section.header.personToThumbnail.split('=')[1]\r\n : this?.section?.header?.delegatedToThumbnail.split('=')[1]\r\n );\r\n }\r\n\r\n /**\r\n * Fetches the user profile using the provided user email and person type, then sets the profile.\r\n *\r\n * @param {string} userEmail - The email of the user whose profile is to be fetched and set.\r\n * @param {string} personType - The type of person (e.g., employee, customer) for whom the profile is being fetched.\r\n *\r\n * @return {void}\r\n */\r\n private fetchAndSetUserProfile(userEmail: string, personType: string): void {\r\n this.coreService.employeeProfile(userEmail).pipe(\r\n takeUntilDestroyed(this.destroyRef)\r\n ).subscribe((response: any) => {\r\n if (response) {\r\n let userData = this.createUserProfileFromResponse(response);\r\n this.openOrCreateUserProfile(userData, personType);\r\n }\r\n });\r\n }\r\n\r\n /**\r\n * Returns the CSS class associated with the input status.\r\n *\r\n * @param {string} status - The status for which the CSS class is needed.\r\n * @return {string} - The CSS class corresponding to the given status.\r\n */\r\n statusClass(status: string): string {\r\n // status = status ? status.toLowerCase() : '';\r\n let statusStrategy = StatusMap[status] || StatusMap['default'];\r\n return statusStrategy.class;\r\n }\r\n\r\n /**\r\n * Returns the icon associated with the provided status.\r\n *\r\n * @param {string} status - The status for which to retrieve the icon.\r\n * @return {string} The icon corresponding to the provided status.\r\n */\r\n statusIcon(status: string): string {\r\n status = status ? status.toLowerCase() : '';\r\n let statusStrategy = StatusMap[status] || StatusMap['default'];\r\n return statusStrategy.icon;\r\n }\r\n}\r\n","<mat-expansion-panel class=\"mb-4\" [expanded]=\"isExpanded\" hideToggle #approvalPanel=\"matExpansionPanel\">\r\n <mat-expansion-panel-header>\r\n\r\n <div class=\"approval-panel-container\">\r\n <div class=\"d-flex gap-2 flex-grow-1 approval-panel-title\">\r\n <ds-status\r\n status=\"{{statusClass(sectionStatusKey)}}\" no-opacity icon\r\n class=\"circle-status d-none d-sm-inline-block\">\r\n <ds-icon icon=\"{{statusIcon(sectionStatusKey)}}\"></ds-icon>\r\n </ds-status>\r\n <div class=\"d-flex flex-column flex-grow-1\">\r\n <span class=\"fs-16 fw-medium m-0\"> {{ sectionName }}</span>\r\n @if (section.header?.processedBy) {\r\n <bdi class=\"fs-12 fc-dark-gray fw-normal line-height-1 d-block mt-1\">\r\n {{ processingDate }}\r\n </bdi>\r\n }\r\n </div>\r\n </div>\r\n <div class=\"approval-panel-details gap-1\">\r\n @if (!section?.body?.details?.['stage0']?.['isStage0'] || section?.body?.details?.['stage0']?.['isStage0'] === 'false') {\r\n <ng-container>\r\n @if (section?.header?.personTo) {\r\n <div\r\n class=\"d-flex align-items-center gap-3\"\r\n (click)=\"$event.stopImmediatePropagation();\">\r\n <div\r\n (click)=\"toggleSmallProfileInfo($event, 'recipient')\"\r\n class=\"d-flex align-items-center gap-2 radius-3 h-40\"\r\n [ngClass]=\"{'user-avatar-name px-0 px-md-2': !section?.header?.delegatedTo, 'p-0': section?.header?.delegatedTo}\">\r\n <ds-avatar image=\"{{section?.header?.personToThumbnail}}\" size=\"small\" class=\"user-avatar\"></ds-avatar>\r\n @if (!section?.header?.delegatedTo) {\r\n <span\r\n class=\"fs-14 fw-medium d-inline-block panel-user-name text-truncate\"\r\n [ngClass]=\"{'panel-user-only': !section?.header?.delegatedTo}\"\r\n >{{ section?.header?.personTo }}</span>\r\n }\r\n </div>\r\n @if (section?.header?.delegatedTo) {\r\n <div\r\n class=\"d-flex align-items-center gap-3\"\r\n (click)=\"toggleSmallProfileInfo($event, 'delegate')\">\r\n <img\r\n class=\"rotate-arrow\"\r\n alt=\"\"\r\n src=\"data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHdpZHRoPSIyMSIgaGVpZ2h0PSIxMyIgdmlld0JveD0iMCAwIDIxIDEzIj48cGF0aCBkPSJNMjEsNy43NjNhMS42MjEsMS42MjEsMCwwLDEtLjQ0Ny41OTMsMS4zMDYsMS4zMDYsMCwwLDEtLjc1LjE5NGMtNy4yODQsMC04LjU2OCwwLTE1Ljg1MywwSDMuNjY5TDMuNjMsOC42Yy4wNzcuMDY0LjE1OC4xMjQuMjI5LjE5NHExLjcxLDEuNjksMy40MiwzLjM4MWExLjAyMywxLjAyMywwLDAsMSwuMjkxLDEuMDc5Ljk5Mi45OTIsMCwwLDEtLjguNzE5LDEuMDUzLDEuMDUzLDAsMCwxLTEtLjMzMVEzLjgzMSwxMS43MTksMS44ODYsOS44Yy0uNDQyLS40MzctLjg3OS0uODgxLTEuMzMtMS4zMDlBNC41NzIsNC41NzIsMCwwLDEsMCw3LjgxNFY3LjE4NUEzMC43ODMsMzAuNzgzLDAsMCwxLDIuNzMsNC4zNzFjMS0xLjAyNywyLjAzOC0yLjAyNSwzLjA2My0zLjAzMkExLjA0OSwxLjA0OSwwLDEsMSw3LjI3NywyLjgyQzYuNCwzLjcsNS41MDksNC41Nyw0LjYyNSw1LjQ0NmMtLjMyMy4zMjEtLjY0NC42NDUtLjk3My45NzYuMDg0LjA1OS4xODEuMDI3LjI3LjAyNyw3LjI1OCwwLDguNTE2LDAsMTUuNzc1LDBBMS4xMjksMS4xMjksMCwwLDEsMjEsNy4yOXYuNDcyWiIgdHJhbnNmb3JtPSJ0cmFuc2xhdGUoMCAtMC45OTkpIiBmaWxsPSIjYTU0ZWUxIi8+PC9zdmc+\"/>\r\n <div class=\"d-flex align-items-center gap-2 px-0 px-md-2 radius-3 user-avatar-name h-40\">\r\n <ds-avatar image=\"{{section?.header?.delegatedToThumbnail}}\" size=\"small\" class=\"user-avatar\"></ds-avatar>\r\n <span\r\n class=\"fs-14 fw-medium d-inline-block panel-user-name text-truncate\">{{ section?.header?.delegatedTo }}</span>\r\n </div>\r\n </div>\r\n }\r\n </div>\r\n }\r\n </ng-container>\r\n }\r\n\r\n @if (section?.body?.details?.['decision']?.key) {\r\n <ds-status\r\n class=\"main-status\"\r\n status=\"{{statusClass(section?.body?.details?.['decision']?.key)}}\">{{ section?.body?.details?.['decision']?.value }}\r\n </ds-status>\r\n }\r\n </div>\r\n\r\n <div class=\"approval-panel-toggle\">\r\n @if (approvalPanel.expanded) {\r\n <ds-icon icon=\"minus\" class=\"fs-20 fc-dark-gray\"></ds-icon>\r\n } @else {\r\n <ds-icon icon=\"plus-1\" class=\"fs-20 fc-coral\"></ds-icon>\r\n }\r\n </div>\r\n\r\n </div>\r\n </mat-expansion-panel-header>\r\n <section class=\"border-top pt-4\">\r\n <ng-container *ngComponentOutlet=\"sectionFormComponent; ndcDynamicInputs: input\"></ng-container>\r\n </section>\r\n\r\n</mat-expansion-panel>\r\n","import { Component, CUSTOM_ELEMENTS_SCHEMA, Input } from '@angular/core';\r\nimport { CoreI18nService } from '../../../services';\r\nimport { Form, Section } from '../../../interfaces';\r\nimport {MatAccordion, MatExpansionModule, MatExpansionPanel} from '@angular/material/expansion';\r\n\r\n@Component({\r\n selector: 'app-main-request-details',\r\n templateUrl: './main-request-details.component.html',\r\n styleUrls: ['./main-request-details.component.scss'],\r\n standalone: true,\r\n schemas: [CUSTOM_ELEMENTS_SCHEMA],\r\n imports: [\r\n MatExpansionModule,\r\n MatAccordion,\r\n MatExpansionPanel\r\n ]\r\n})\r\nexport class MainRequestDetailsComponent {\r\n @Input() section: Section;\r\n @Input() lov: any;\r\n @Input() form: Form;\r\n constructor(public i18n: CoreI18nService) {}\r\n\r\n get isExpanded(): boolean {\r\n return this.section?.body?.details?.['expandStage'] === 'true';\r\n }\r\n}\r\n","<mat-accordion class=\"primary-accordion main-request-accordion border-top\">\r\n <mat-expansion-panel\r\n [expanded]=\"isExpanded || form?.sections?.length === 1\"\r\n class=\"mb-3\"\r\n hideToggle\r\n #requestPanel=\"matExpansionPanel\"\r\n >\r\n <mat-expansion-panel-header>\r\n <h2 class=\"fs-16 fw-medium fc-coral m-0 flex-grow-1\">\r\n {{ i18n.translate(\"requestDetailsTitle\") }}\r\n </h2>\r\n @if (requestPanel.expanded) {\r\n <div class=\"d-inline-flex align-items-center gap-2\">\r\n <ds-icon icon=\"minus\" class=\"fs-20 fc-dark-gray\"></ds-icon>\r\n </div>\r\n } @else {\r\n <div class=\"d-inline-flex align-items-center gap-2\">\r\n <ds-icon icon=\"plus-1\" class=\"fs-20 fc-coral\"></ds-icon>\r\n </div>\r\n }\r\n </mat-expansion-panel-header>\r\n <section class=\"default-box box-shadow p-4 rounded-4\">\r\n <ng-content></ng-content>\r\n </section>\r\n </mat-expansion-panel>\r\n</mat-accordion>\r\n","import {ChangeDetectorRef, Component, CUSTOM_ELEMENTS_SCHEMA, DestroyRef, EventEmitter, inject, Input, Output, ViewChild} from '@angular/core';\r\nimport * as constants from '../../../constants';\r\nimport {FormsModule, NgForm} from '@angular/forms';\r\nimport {Form, Section} from '../../../interfaces';\r\nimport {CoreI18nService} from '../../../services';\r\nimport {NgClass, NgForOf, NgIf, NgTemplateOutlet} from '@angular/common';\r\nimport {MatAccordion} from '@angular/material/expansion';\r\nimport {FormSectionComponent} from '../form-section/form-section.component';\r\nimport {MainRequestDetailsComponent} from '../main-request-details/main-request-details.component';\r\nimport { takeUntilDestroyed } from '@angular/core/rxjs-interop';\r\n\r\n@Component({\r\n selector: 'app-workflow-section',\r\n templateUrl: './workflow-section.component.html',\r\n styleUrls: ['./workflow-section.component.scss'],\r\n schemas: [CUSTOM_ELEMENTS_SCHEMA],\r\n imports: [\r\n NgClass,\r\n MatAccordion,\r\n NgTemplateOutlet,\r\n NgIf,\r\n FormSectionComponent,\r\n MainRequestDetailsComponent,\r\n NgForOf,\r\n FormsModule\r\n ],\r\n standalone: true\r\n})\r\nexport class WorkflowSectionComponent {\r\n @ViewChild('f') public formStateObject: NgForm;\r\n @Output() sectionSubmitted: EventEmitter<any> = new EventEmitter();\r\n @Input() sections: Section[];\r\n @Input() isReadOnly: boolean;\r\n @Input() isLoading: boolean;\r\n @Input() form: Form;\r\n @Input() contentClass = 'default-box box-shadow p-4';\r\n startedListener = false;\r\n @Input() sectionsController: any;\r\n showButtonMenu = false;\r\n @Input() segmentDynamicLoaderService = null;\r\n @Input() sectionFormComponent = null;\r\n @Input() sectionName = constants.SECTION_ID_REQUEST_DETAILS;\r\n destroyRef = inject(DestroyRef);\r\n\r\n\r\n constructor(\r\n public i18n: CoreI18nService,\r\n private cdRef: ChangeDetectorRef,\r\n ) {\r\n/* _listenerService.listen().subscribe((result: any) => {\r\n if (result?.function == 'resetForm') {\r\n this.resetForm();\r\n } else if (result?.function == 'onSubmit') {\r\n const sectionSize = this.sections.length - 1;\r\n const section = this.sections[sectionSize];\r\n const data = result.data ? result.data : section;\r\n this.onSubmit(result?.action, data);\r\n }\r\n });*/\r\n }\r\n\r\n ngAfterViewChecked() {\r\n if (this.formStateObject && this.form && !this.startedListener) {\r\n this.formStateObject.valueChanges.pipe(\r\n takeUntilDestroyed(this.destroyRef)\r\n ).subscribe(\r\n /* istanbul ignore next */\r\n (form) => {\r\n Object.keys(form).forEach((key) => {\r\n if (\r\n this.sections[this.sections.length - 1].body.details[key] !==\r\n form[key] &&\r\n form[key] !== undefined\r\n )\r\n this.sections[this.sections.length - 1].body.details[key] =\r\n form[key];\r\n });\r\n }\r\n );\r\n this.sectionsController = this.formStateObject.controls;\r\n this.startedListener = true;\r\n }\r\n this.checkButtons();\r\n this.cdRef.detectChanges();\r\n }\r\n\r\n/* isSubmitting = {};\r\n disableButtons = false;*/\r\n\r\n/* onSubmit(action: any, section: any) {\r\n const sectionSize = this.sections.length - 1;\r\n let sectionDecision = this.sections[sectionSize].body.details.decision;\r\n if (sectionDecision && action === 'SUBMIT') {\r\n sectionDecision = { key: action };\r\n }\r\n if (sectionDecision && action !== 'SUBMIT') {\r\n sectionDecision = { key: action };\r\n }\r\n this.sections[sectionSize].body.details.decision = sectionDecision;\r\n this.profileRequesterService.isSubmitting[action] = true;\r\n this.profileRequesterService.disableButtons = true;\r\n this.stateMachineService\r\n .dispatch(\r\n constants.STATE_MACHINE_ACTION_SUBMIT_FORM,\r\n section,\r\n action\r\n )\r\n .then((form: any) => {\r\n this.profileRequesterService.isSubmitting[action] = true;\r\n this.profileRequesterService.disableButtons = true;\r\n const obj = {\r\n form: form,\r\n action: action\r\n };\r\n this.sectionSubmitted.emit(obj);\r\n });\r\n }*/\r\n\r\n/* resetForm() {\r\n this.formStateObject.reset();\r\n this.resetPropagator.propagate();\r\n }*/\r\n\r\n get isExpandableFromBackend(): boolean {\r\n return this.form?.sections?.length && this.form.sections.some(section => 'expandStage' in section?.body?.details);\r\n }\r\n\r\n buttonTypes(type) {\r\n switch (type) {\r\n case 'APPROVE':\r\n return '';\r\n case 'SENDBACK':\r\n return 'red';\r\n case 'REJECT':\r\n return 'red';\r\n default:\r\n return '';\r\n }\r\n }\r\n\r\n checkButtons() {\r\n const options = this.form?.lovs?.decision?.options;\r\n if (!Array.isArray(options)) return;\r\n options.forEach((item) => {\r\n if (\r\n item?.value != 'APPROVE' &&\r\n item?.value != 'REJECT' &&\r\n item?.value != 'SENDBACK' &&\r\n item?.value != 'SUBMIT' &&\r\n item?.value != 'CANCEL'\r\n ) {\r\n this.showButtonMenu = true;\r\n }\r\n });\r\n }\r\n}\r\n","<form #f=\"ngForm\" autocomplete=\"off\">\r\n <div *ngIf=\"form?.header?.status?.key !== 'NEW' \" class=\"mt-n3\" id=\"accordion\" role=\"tablist\"\r\n aria-multiselectable=\"true\">\r\n <app-main-request-details [lov]=\"form?.lovs\" [form]=\"form\" [section]=\"form?.sections[0]\">\r\n <ng-container *ngTemplateOutlet=\"contentReqDet\"></ng-container>\r\n </app-main-request-details>\r\n <header class=\"header-line fs-12 fw-medium fc-dark-gray mt-sm-5 mt-4 mb-4\" *ngIf=\"form?.sections.length > 1\">\r\n {{i18n.translate('Approvals')}}\r\n </header>\r\n <mat-accordion class=\"primary-accordion main-approval\">\r\n <ng-container *ngFor=\"let section of form?.sections; let i = index\">\r\n <app-form-section *ngIf=\"i !== 0\" class=\"app-form-section\" [segmentDynamicLoaderService]=\"segmentDynamicLoaderService\" [section]=section [lov]=\"form?.lovs\"\r\n [isReadOnly]=\"section.header.readOnly\" [form]=\"form\" [controllers]=\"sectionsController\">\r\n </app-form-section>\r\n </ng-container>\r\n </mat-accordion>\r\n </div>\r\n\r\n <section *ngIf=\"form?.header?.status?.key === 'NEW' \" class=\"default-box box-shadow p-4 rounded-4\">\r\n <ng-container *ngTemplateOutlet=\"contentReqDet\"></ng-container>\r\n </section>\r\n\r\n</form>\r\n\r\n\r\n<ng-template #contentReqDet><ng-content></ng-content></ng-template>\r\n","import {CommonModule} from '@angular/common';\r\nimport {Component, CUSTOM_ELEMENTS_SCHEMA, Inject, PLATFORM_ID} from '@angular/core';\r\nimport {FormControl, ReactiveFormsModule} from '@angular/forms';\r\nimport {MatMenuModule} from '@angular/material/menu';\r\nimport {MatToolbarModule} from '@angular/material/toolbar';\r\nimport {Router, RouterModule} from '@angular/router';\r\nimport {Subscription} from 'rxjs';\r\nimport {CoreI18nService, SidenavService} from '../../../../services';\r\nimport * as Constants from '../../../../constants';\r\nimport {CoreService} from \"../../../../services\";\r\n\r\n\r\n@Component({\r\n selector: 'app-header',\r\n standalone: true,\r\n imports: [\r\n CommonModule,\r\n ReactiveFormsModule,\r\n RouterModule,\r\n MatMenuModule,\r\n MatToolbarModule\r\n ],\r\n templateUrl: './header.component.html',\r\n styleUrls: ['./header.component.scss'],\r\n schemas: [CUSTOM_ELEMENTS_SCHEMA]\r\n})\r\nexport class HeaderComponent {\r\n search = new FormControl('');\r\n sidenavSubscription!: Subscription;\r\n isSidenavOpened = false;\r\n device = '';\r\n isMobile!: boolean;\r\n userData: any;\r\n userName: any;\r\n\r\n constructor(\r\n public readonly translate: CoreI18nService,\r\n private sidenavService: SidenavService,\r\n public coreService: CoreService,\r\n private router: Router,\r\n @Inject(PLATFORM_ID) private platformId: any\r\n ) {\r\n this.device = navigator.userAgent;\r\n\r\n if (this.isMobile) {\r\n document.documentElement.classList.add('inside-mobile-app');\r\n }\r\n }\r\n\r\n\r\n setLanguage(): void {\r\n const targetLang = this.translate.getLanguage() === 'en' ? 'ar' : 'en';\r\n let url = location.origin + `/${targetLang}/group/i-gate/asset-management`;\r\n window.open(url, '_self');\r\n }\r\n\r\n logout() {\r\n let logoutUrl = Constants.LOGOUT_URL;\r\n localStorage.removeItem('token');\r\n localStorage.removeItem('userName');\r\n localStorage.removeItem('user');\r\n const userSelectedLanguage = localStorage.getItem('language') ?? 'en';\r\n sessionStorage.clear();\r\n localStorage.setItem('language', userSelectedLanguage);\r\n window.open(logoutUrl, '_self');\r\n }\r\n\r\n\r\n ngOnInit(): void {\r\n this.sidenavSubscription = this.sidenavService.sideNavOpened.subscribe((val) => {\r\n this.isSidenavOpened = val;\r\n });\r\n }\r\n\r\n\r\n toggleSideNav() {\r\n document.documentElement.classList.toggle('main-sidenav-opened');\r\n this.sidenavService.sideNavOpened.next(!this.isSidenavOpened);\r\n }\r\n\r\n protected readonly location = location;\r\n}\r\n","<ng-container *ngIf=\"!isMobile\">\r\n <mat-toolbar\r\n class=\"align-items-center justify-content-between gap-3 border-bottom\"\r\n >\r\n <div class=\"d-flex align-items-center gap-3\">\r\n <ds-button\r\n shape=\"flat\"\r\n icon\r\n color=\"light-gray\"\r\n square\r\n (click)=\"toggleSideNav()\"\r\n >\r\n <ds-icon icon=\"burger-menu-1\" class=\"fs-24 fc-dark-gray\"></ds-icon>\r\n </ds-button>\r\n\r\n <a [href]=\"location.origin\">\r\n <figure class=\"m-0 d-flex\">\r\n <img class=\"main-logo\" src=\"assets/images/hub.svg\" alt=\"\" />\r\n </figure>\r\n </a>\r\n </div>\r\n\r\n <div class=\"d-flex align-items-center gap-3\">\r\n <ds-button\r\n shape=\"flat\"\r\n color=\"light-gray\"\r\n class=\"user-menu-btn\"\r\n [matMenuTriggerFor]=\"userMenu\"\r\n >\r\n <ds-avatar\r\n image=\"/group/i-gate/wm-bpm/forms/-/proxy/portrait?email={{userData?.email}}\"\r\n onerror=\"this.onerror=null;this.src='assets/images/user2.jpg'\"\r\n slot=\"prefix\"\r\n class=\"avatar\"\r\n >\r\n </ds-avatar>\r\n\r\n <span class=\"fs-14 fw-medium fc-black\">\r\n {{ coreService.getShortName( coreService?.loggedInUserData?.['name']) }}\r\n </span>\r\n\r\n <ds-icon\r\n slot=\"suffix\"\r\n icon=\"arrow\"\r\n class=\"fc-dark-gray fs-16\"\r\n ></ds-icon>\r\n </ds-button>\r\n </div>\r\n </mat-toolbar>\r\n\r\n <!-- User Menu -->\r\n <mat-menu #userMenu=\"matMenu\" class=\"user-menu\">\r\n <div mat-menu-item>\r\n <span class=\"fs-14\">{{ translate.translate('welcome') }}, </span>\r\n <br />\r\n <span class=\"fs-14 fw-medium line-height-1\">{{ coreService.getShortName( coreService?.loggedInUserData?.['name']) }}</span>\r\n </div>\r\n <button mat-menu-item (click)=\"setLanguage()\">\r\n <div class=\"d-flex align-items-center gap-2\">\r\n <ds-icon icon=\"globe\" class=\"fs-25 fc-purple\"></ds-icon>\r\n <span class=\"fs-14 fw-medium fc-black\">{{\r\n translate.translate('otherLang')\r\n }}</span>\r\n </div>\r\n </button>\r\n <button mat-menu-item (click)=\"logout()\">\r\n <div class=\"d-flex align-items-center gap-2\">\r\n <ds-icon icon=\"logout\" class=\"fs-25 fc-red\"></ds-icon>\r\n <span class=\"fs-14 fw-medium fc-black\">{{\r\n translate.translate('logout')\r\n }}</span>\r\n </div>\r\n </button>\r\n </mat-menu>\r\n</ng-container>\r\n","import {Component, CUSTOM_ELEMENTS_SCHEMA, Input, ViewChild} from '@angular/core';\r\nimport {Router, RouterLink, RouterLinkActive} from '@angular/router';\r\nimport {MatTooltipModule} from '@angular/material/tooltip';\r\nimport {MatMenu, MatMenuTrigger} from '@angular/material/menu';\r\nimport {SidenavService} from '../../../../services';\r\n\r\n@Component({\r\n selector: 'app-side-nav',\r\n standalone: true,\r\n imports: [RouterLinkActive, RouterLink, MatTooltipModule, MatMenu, MatMenuTrigger],\r\n templateUrl: './side-nav.component.html',\r\n styleUrl: './side-nav.component.scss',\r\n schemas: [CUSTOM_ELEMENTS_SCHEMA]\r\n})\r\nexport class SideNavComponent {\r\n\r\n @Input() isOpened = false;\r\n lang: any = '';\r\n Menu = [\r\n {\r\n name: 'Home',\r\n routerLink: '/group/hub/home1',\r\n icon: 'home-o',\r\n matmenu: false,\r\n List: []\r\n },\r\n {\r\n name: 'Inbox',\r\n routerLink: '/group/hub/inbox',\r\n icon: 'mail-o',\r\n matmenu: false,\r\n List: []\r\n },\r\n {\r\n name: 'Dobox',\r\n routerLink: '/group/hub/dobox',\r\n icon: 'chick-sqaure',\r\n matmenu: false,\r\n List: []\r\n },\r\n {\r\n name: 'Chat',\r\n routerLink: '/group/hub/chat',\r\n icon: 'chat-circle-2',\r\n matmenu: false,\r\n List: []\r\n },\r\n {\r\n name: 'Mail',\r\n routerLink: '/group/hub/mail',\r\n icon: 'mail-f',\r\n matmenu: false,\r\n List: []\r\n },\r\n {\r\n name: 'Meetings',\r\n routerLink: '/group/hub/meetings',\r\n icon: 'calendar',\r\n matmenu: false,\r\n List: []\r\n },\r\n {\r\n name: 'Offers',\r\n routerLink: '/group/hub/hub-offers',\r\n icon: 'voucher',\r\n matmenu: false,\r\n List: []\r\n },\r\n {\r\n name: 'stc today',\r\n routerLink: '/group/hub/stc-profile',\r\n icon: 'stc-profile-o',\r\n matmenu: false,\r\n List: []\r\n },\r\n {\r\n name: 'Articles',\r\n routerLink: '/group/hub/articles',\r\n icon: 'file-returned',\r\n matmenu: false,\r\n List: []\r\n },\r\n {\r\n name: 'Timeline',\r\n routerLink: '/group/hub/timeline',\r\n icon: 'list-dots',\r\n matmenu: false,\r\n List: []\r\n },\r\n {\r\n name: 'eforms',\r\n routerLink: '/group/hub/efroms',\r\n icon: 'file-o',\r\n matmenu: false,\r\n List: []\r\n },\r\n {\r\n name: 'Apps',\r\n routerLink: '/group/hub/apps',\r\n icon: 'card',\r\n matmenu: false,\r\n List: []\r\n },\r\n ];\r\n\r\n constructor(public sidenavService: SidenavService, private router: Router) {}\r\n\r\n\r\n closeSidenav() {\r\n document.documentElement.classList.remove('main-sidenav-opened');\r\n // this.sidenavService.sideNavOpened.next(false);\r\n }\r\n\r\n navigateTo(item: any) {\r\n window.location.href = item.routerLink;\r\n }\r\n\r\n innerWidth: any;\r\n menuMobile!: boolean;\r\n @ViewChild('MenuTrigger') MenuTrigger!: MatMenuTrigger;\r\n\r\n ngOnInit() {\r\n this.innerWidth = window.innerWidth;\r\n if (this.innerWidth < 1024) {\r\n this.menuMobile = true;\r\n } else {\r\n this.menuMobile = false;\r\n }\r\n }\r\n\r\n mouseover(matmenu: boolean, i: number) {\r\n if (!this.menuMobile) {\r\n if (matmenu) {\r\n document.documentElement.classList.remove('main-overlay-closed');\r\n // this.MenuTrigger[i].openMenu();\r\n } else {\r\n document.documentElement.classList.add('main-overlay-closed');\r\n // this.MenuTrigger[i].closeMenu();\r\n }\r\n }\r\n }\r\n\r\n goto(url?: string, matmenu?: boolean) {\r\n if (!this.menuMobile) {\r\n if (matmenu) {\r\n document.documentElement.classList.remove('main-overlay-closed');\r\n } else {\r\n document.documentElement.classList.add('main-overlay-closed');\r\n }\r\n }\r\n this.router.navigate([url]);\r\n }\r\n}\r\n","<aside>\r\n <div class=\"header d-flex d-lg-none\">\r\n <div class=\"d-flex h-100 mt-auto justify-content-between w-100\">\r\n <h1 class=\"fs-26 fw-bold fc-white logo\">academy</h1>\r\n <ds-button size=\"small\" color=\"purple\" class=\"close purple\" (click)=\"closeSidenav()\">\r\n <ds-icon icon=\"close\" class=\"fs-15 fc-white\"></ds-icon>\r\n </ds-button>\r\n </div>\r\n </div>\r\n <nav>\r\n <ul>\r\n <!-- (mouseenter)=\"menuMobile ? null : MenuTrigger.openMenu()\"-->\r\n <!-- (click)=\"goto(item.routerLink,item.matmenu) -->\r\n @for (item of Menu; track $index) {\r\n @if (item.matmenu) {\r\n <li\r\n (click)=\"closeSidenav();navigateTo(item)\" matTooltipPosition=\"right\" matTooltip=\"{{item.name }}\"\r\n [routerLinkActive]=\"'active'\" (click)=\"goto(item.routerLink!,item.matmenu)\" #MenuTrigger=\"matMenuTrigger\"\r\n [matMenuTriggerFor]=\"menuMenu\" [routerLinkActiveOptions]=\"{ exact: true }\" class=\"cursor-pointer\">\r\n <ds-icon icon=\"{{item.icon}}\" class=\"icon\"></ds-icon>\r\n <span class=\"menu-label\">\r\n {{ item.name }}\r\n </span>\r\n </li>\r\n <mat-menu #menuMenu=\"matMenu\" class=\"aside-menu visible-{{item.matmenu}}\">\r\n <app-mat-menu [title]=\"item.name \" [icon]=\"item.icon\" [list]=\"item.List\"></app-mat-menu>\r\n </mat-menu>\r\n } @else {\r\n <li\r\n (click)=\"closeSidenav();navigateTo(item)\" matTooltipPosition=\"right\" matTooltip=\"{{item.name }}\"\r\n [routerLinkActive]=\"'active'\" [routerLinkActiveOptions]=\"{ exact: true }\" class=\"cursor-pointer\">\r\n <ds-icon icon=\"{{item.icon}}\" class=\"icon\"></ds-icon>\r\n <span class=\"menu-label\">\r\n {{ item.name }}\r\n </span>\r\n </li>\r\n }\r\n }\r\n </ul>\r\n </nav>\r\n</aside>\r\n","import {DOCUMENT, NgClass, NgComponentOutlet, NgIf} from '@angular/common'\r\nimport {Component, Inject, Input, OnDestroy, OnInit, ViewChild} from \"@angular/core\";\r\nimport {MatSidenav, MatSidenavModule} from '@angular/material/sidenav'\r\nimport {Router, RouterOutlet} from \"@angular/router\";\r\nimport {Subscription} from \"rxjs\";\r\nimport {SidenavService} from \"../../../services\";\r\nimport {HeaderComponent} from \"./header/header.component\";\r\nimport {SideNavComponent} from \"./side-nav/side-nav.component\";\r\nimport {WorkflowSectionComponent} from \"../workflow-section/workflow-section.component\";\r\nimport {Form} from \"../../../interfaces\";\r\nimport {ServiceHeaderComponent} from \"../service-header/service-header.component\";\r\n\r\n@Component({\r\n selector: \"core-layout\",\r\n standalone: true,\r\n imports: [HeaderComponent, SideNavComponent, MatSidenavModule, RouterOutlet, NgComponentOutlet, WorkflowSectionComponent, ServiceHeaderComponent, NgClass, NgIf],\r\n templateUrl: \"./layout.component.html\",\r\n styleUrl: \"./layout.component.scss\",\r\n})\r\nexport class LayoutComponent implements OnInit, OnDestroy {\r\n @ViewChild(\"sidenav\", {static: true}) public sidenav!: MatSidenav;\r\n sideContent: any;\r\n private sidenavSubscription!: Subscription;\r\n @Input() form: Form;\r\n @Input() hubContainerMini: boolean = true;\r\n @Input() formTitle: string\r\n @Input() isLoading = false;\r\n @Input() serviceBrief: any[] = [];\r\n\r\n\r\n constructor(\r\n @Inject(DOCUMENT) private readonly document: Document,\r\n private readonly router: Router,\r\n private readonly sidenavService: SidenavService,\r\n ) {}\r\n\r\n\r\n ngOnInit(): void {\r\n this.sidenavSubscription = this.sidenavService.subject.subscribe(\r\n (value: any) => {\r\n this.sideContent = value.componentName;\r\n this.sidenav.mode = value.mode;\r\n this.sidenav.position = value.position;\r\n if (value.eventName === \"open\") {\r\n this.openSideNav();\r\n } else {\r\n this.closeSideNav();\r\n }\r\n }\r\n );\r\n }\r\n\r\n ngOnDestroy(): void {\r\n if (this.sidenavSubscription) {\r\n this.sidenavSubscription.unsubscribe();\r\n }\r\n }\r\n\r\n onClose() {\r\n this.document.body.classList.remove(\"NoScroll\");\r\n this.document.documentElement.classList.remove(\"NoScroll\");\r\n }\r\n\r\n backdropClick() {\r\n this.sidenav.close().then(r => {});\r\n this.sidenavService.closeSidenav();\r\n this.document.body.classList.remove(\"NoScroll\");\r\n this.document.documentElement.classList.remove(\"NoScroll\");\r\n }\r\n\r\n private openSideNav() {\r\n this.sidenav.open().then(r => {});\r\n this.document.body.classList.add(\"NoScroll\");\r\n this.document.documentElement.classList.add(\"NoScroll\");\r\n }\r\n\r\n private closeSideNav() {\r\n this.sidenav.close().then(r => {});\r\n }\r\n}\r\n","<!--<app-header></app-header>-->\r\n<section class=\"d-flex\">\r\n<!-- <app-side-nav></app-side-nav>-->\r\n <mat-sidenav-container\r\n class=\"flex-grow-1\"\r\n [hasBackdrop]=\"true\"\r\n (backdropClick)=\"backdropClick()\"\r\n >\r\n <mat-sidenav\r\n #sidenav\r\n autoFocus=\"false\"\r\n fixedInViewport\r\n [position]=\"'end'\"\r\n (closedStart)=\"onClose()\"\r\n >\r\n <ng-container *ngComponentOutlet=\"sideContent\">\r\n<!-- <app-side-nav></app-side-nav>-->\r\n </ng-container>\r\n </mat-sidenav>\r\n <mat-sidenav-content>\r\n <main\r\n class=\"hadPadding service-wrapper\"\r\n [ngClass]=\"hubContainerMini ? 'hub-container-mini' : 'hub-container'\">\r\n\r\n <ng-content ></ng-content>\r\n <ng-content select=\"[workflow]\"></ng-content>\r\n\r\n </main>\r\n </mat-sidenav-content>\r\n </mat-sidenav-container>\r\n</section>\r\n","import {Component, CUSTOM_ELEMENTS_SCHEMA, DestroyRef, inject, Input, NO_ERRORS_SCHEMA, OnInit} from '@angular/core';\r\nimport {Form, Section} from \"../../interfaces\";\r\nimport {ActionStateService, CoreI18nService} from \"../../services\";\r\nimport {NgClass} from \"@angular/common\";\r\nimport {ActionButtonsComponent,\r\n AttachmentSectionComponent,\r\n CheckBoxComponent,\r\n CustomSearchableComponent,\r\n DatePickerComponent,\r\n DateRangePickerComponent,\r\n InputComponent,\r\n InputCurrencyComponent,\r\n InputEmailComponent,\r\n InputNumberComponent,\r\n InputTelephoneComponent,\r\n RadioComponent,\r\n SearchEmployeeComponent,\r\n TextareaComponent\r\n} from '../../components/shared-components';\r\nimport { RegexPatterns } from '../../regex/regex-patterns';\r\nimport { ToggleButtonComponent } from \"../../components/shared-components\";\r\nimport { TableComponent } from '../../components/shared-components/table/table.component';\r\nimport { takeUntilDestroyed } from '@angular/core/rxjs-interop';\r\nimport {FormBuilder, FormGroup, ReactiveFormsModule, Validators, FormControl, ValidatorFn, AbstractControl} from \"@angular/forms\";\r\nimport {DocsUploaderComponent} from \"../../components/shared-components\";\r\nimport { TranslatePipe } from '../../pipes/translate.pipe';\r\n// import { TranslatePipe } from '../../pipes/translate.pipe';\r\n\r\n@Component({\r\n selector: 'app-request-details-section',\r\n templateUrl: './request-details-section.component.html',\r\n styleUrls: ['./request-details-section.component.scss'],\r\n standalone: true,\r\n schemas: [CUSTOM_ELEMENTS_SCHEMA, NO_ERRORS_SCHEMA],\r\n imports: [\r\n NgClass,\r\n InputComponent,\r\n ActionButtonsComponent,\r\n ReactiveFormsModule,\r\n CustomSearchableComponent,\r\n CheckBoxComponent,\r\n TextareaComponent,\r\n InputCurrencyComponent,\r\n DatePickerComponent,\r\n DateRangePickerComponent,\r\n InputEmailComponent,\r\n InputNumberComponent,\r\n RadioComponent,\r\n ToggleButtonComponent,\r\n InputTelephoneComponent,\r\n DocsUploaderComponent,\r\n SearchEmployeeComponent,\r\n AttachmentSectionComponent,\r\n TableComponent,\r\n TranslatePipe\r\n ]\r\n})\r\n\r\n\r\nexport class RequestDetailsSectionComponent implements OnInit{\r\n\r\n @Input() isReadOnly: boolean;\r\n @Input() section: Section;\r\n @Input() form: Form;\r\n @Input() lov: any;\r\n isLoading: boolean = false;\r\n\r\n @Input() className: string = \"info-section\";\r\n formGroup: FormGroup;\r\n options: string[] = ['Option 1', 'Option 2', 'Option 3'];\r\n private readonly DEFAULT_PAGE_SIZE = 10;\r\n private readonly DEFAULT_PAGE_NUMBER = 0;\r\n pageNumber: number = this.DEFAULT_PAGE_NUMBER;\r\n pageSize: number = this.DEFAULT_PAGE_SIZE;\r\n columnsConfig: any[] = [];\r\n columns: string[] = [];\r\n destroyRef = inject(DestroyRef);\r\n requiredSearchable:boolean;\r\n\r\n isError: boolean = false;\r\n categoryData = [\r\n {\r\n \"assetDeviceType\": null,\r\n \"brand\": \"Benq\",\r\n \"colors\": null,\r\n \"assetCompanies\": null,\r\n \"descAr\": null,\r\n \"descEn\": null,\r\n \"estoreVisible\": false,\r\n \"id\": \"402\",\r\n \"model\": \"B400\",\r\n \"files\": null,\r\n \"vendors\": [\r\n {\r\n \"id\": 71,\r\n \"vendorName\": null,\r\n \"vendorNumber\": \"26\",\r\n \"__typename\": \"VendorDto\"\r\n }\r\n ],\r\n \"category\": null,\r\n \"assetType\": \"Scanner\",\r\n \"classifications\": null,\r\n \"consumedCount\": 0,\r\n \"consumedPercentage\": 0,\r\n \"specs\": [\r\n \"4GB\"\r\n ],\r\n \"sumQuantity\": 1,\r\n \"__typename\": \"AllAssetsDto\"\r\n },\r\n {\r\n \"assetDeviceType\": null,\r\n \"brand\": \"HP\",\r\n \"colors\": null,\r\n \"assetCompanies\": null,\r\n \"descAr\": null,\r\n \"descEn\": null,\r\n \"estoreVisible\": false,\r\n \"id\": \"403\",\r\n \"model\": \"EliteBook\",\r\n \"files\": null,\r\n \"vendors\": [\r\n {\r\n \"id\": 71,\r\n \"vendorName\": null,\r\n \"vendorNumber\": \"26\",\r\n \"__typename\": \"VendorDto\"\r\n }\r\n ],\r\n \"category\": null,\r\n \"assetType\": \"Laptop\",\r\n \"classifications\": null,\r\n \"consumedCount\": 0,\r\n \"consumedPercentage\": 0,\r\n \"specs\": [\r\n \"512GB\"\r\n ],\r\n \"sumQuantity\": 1,\r\n \"__typename\": \"AllAssetsDto\"\r\n },\r\n {\r\n \"assetDeviceType\": null,\r\n \"brand\": \"Hp\",\r\n \"colors\": null,\r\n \"assetCompanies\": null,\r\n \"descAr\": null,\r\n \"descEn\": null,\r\n \"estoreVisible\": false,\r\n \"id\": \"404\",\r\n \"model\": \"Laser\",\r\n \"files\": null,\r\n \"vendors\": [\r\n {\r\n \"id\": 71,\r\n \"vendorName\": null,\r\n \"vendorNumber\": \"26\",\r\n \"__typename\": \"VendorDto\"\r\n }\r\n ],\r\n \"category\": null,\r\n \"assetType\": \"Printer\",\r\n \"classifications\": null,\r\n \"consumedCount\": 0,\r\n \"consumedPercentage\": 0,\r\n \"specs\": [\r\n \"2GB\"\r\n ],\r\n \"sumQuantity\": 1,\r\n \"__typename\": \"AllAssetsDto\"\r\n },\r\n {\r\n \"assetDeviceType\": null,\r\n \"brand\": \"Asus\",\r\n \"colors\": null,\r\n \"assetCompanies\": null,\r\n \"descAr\": null,\r\n \"descEn\": null,\r\n \"estoreVisible\": false,\r\n \"id\": \"405\",\r\n \"model\": \"A500\",\r\n \"files\": null,\r\n \"vendors\": [\r\n {\r\n \"id\": 71,\r\n \"vendorName\": null,\r\n \"vendorNumber\": \"26\",\r\n \"__typename\": \"VendorDto\"\r\n }\r\n ],\r\n \"category\": null,\r\n \"assetType\": \"Laptop\",\r\n \"classifications\": null,\r\n \"consumedCount\": 0,\r\n \"consumedPercentage\": 0,\r\n \"specs\": [\r\n \"1TB\"\r\n ],\r\n \"sumQuantity\": 1,\r\n \"__typename\": \"AllAssetsDto\"\r\n },\r\n {\r\n \"assetDeviceType\": null,\r\n \"brand\": \"Dell\",\r\n \"colors\": null,\r\n \"assetCompanies\": null,\r\n \"descAr\": null,\r\n \"descEn\": null,\r\n \"estoreVisible\": false,\r\n \"id\": \"407\",\r\n \"model\": \"Latitude\",\r\n \"files\": null,\r\n \"vendors\": [\r\n {\r\n \"id\": 71,\r\n \"vendorName\": null,\r\n \"vendorNumber\": \"26\",\r\n \"__typename\": \"VendorDto\"\r\n }\r\n ],\r\n \"category\": null,\r\n \"assetType\": \"Laptop\",\r\n \"classifications\": null,\r\n \"consumedCount\": 0,\r\n \"consumedPercentage\": 0,\r\n \"specs\": [\r\n \"1TB\"\r\n ],\r\n \"sumQuantity\": 4,\r\n \"__typename\": \"AllAssetsDto\"\r\n },\r\n {\r\n \"assetDeviceType\": null,\r\n \"brand\": \"Samsung\",\r\n \"colors\": null,\r\n \"assetCompanies\": null,\r\n \"descAr\": null,\r\n \"descEn\": null,\r\n \"estoreVisible\": false,\r\n \"id\": \"408\",\r\n \"model\": \"Galaxy\",\r\n \"files\": null,\r\n \"vendors\": [\r\n {\r\n \"id\": 71,\r\n \"vendorName\": null,\r\n \"vendorNumber\": \"26\",\r\n \"__typename\": \"VendorDto\"\r\n }\r\n ],\r\n \"category\": null,\r\n \"assetType\": \"Tablet\",\r\n \"classifications\": null,\r\n \"consumedCount\": 0,\r\n \"consumedPercentage\": 0,\r\n \"specs\": [\r\n \"256GB\"\r\n ],\r\n \"sumQuantity\": 1,\r\n \"__typename\": \"AllAssetsDto\"\r\n }\r\n ]\r\n\r\n totalElements: number = 6;\r\n\r\n\r\n constructor(public i18n: CoreI18nService, private fb: FormBuilder, private actionStateService: ActionStateService) {\r\n\r\n }\r\n\r\n ngOnInit() {\r\n this.createForm();\r\n this.initializeTableConfig()\r\n this.formGroup.get('checkbox').valueChanges.subscribe(res=> {\r\n if (res){\r\n this.formGroup.get('customSearchable').setValidators(Validators.required)\r\n this.requiredSearchable = true;\r\n console.log(this.requiredSearchable)\r\n }else {\r\n this.formGroup.get('customSearchable').clearValidators();\r\n this.requiredSearchable = false\r\n console.log(this.requiredSearchable)\r\n }\r\n this.formGroup.get('customSearchable').updateValueAndValidity();\r\n\r\n })\r\n }\r\n\r\n\r\n initializeTableConfig() {\r\n this.initializeColumns()\r\n this.initializeColumnConfig()\r\n\r\n}\r\ninitializeColumns() {\r\n this.columns = ['id', 'assetType', 'brand', 'model', 'sumQuantity', 'specs', 'allocate'];\r\n}\r\n\r\ninitializeColumnConfig() {\r\n this.columnsConfig = [\r\n {\r\n label: 'Id',\r\n type: 'text',\r\n },\r\n {\r\n label: 'Asset Type',\r\n type: 'text',\r\n },\r\n {\r\n label: 'Brand',\r\n type: 'text'\r\n },\r\n {\r\n label: 'Model',\r\n type: 'text'\r\n },\r\n {\r\n label: 'Quantity',\r\n type: 'formId'\r\n },\r\n {\r\n label: 'Capacity',\r\n type: 'specs',\r\n clickableText: 'View'\r\n },\r\n {\r\n label: 'Actions',\r\n type: 'actions',\r\n actions: [\r\n {viewMode: 'allocate', actionName: \"Allocate\", disabled:true},\r\n {viewMode: 'edit', actionName: \"Edit\", action: \"edit\",onClick: (asset: any) => {\r\n this.editAsset(asset);\r\n },},\r\n {viewMode: 'delete', actionName: \"Delete\", action: \"delete\",onClick: (asset: any) => {\r\n this.deleteAsset(asset);\r\n },},\r\n {viewMode: 'chart', actionName: \"Chart\", action:\"chart\"},\r\n ]\r\n },\r\n ];\r\n}\r\n\r\n\r\n createForm() {\r\n let newForm = {\r\n input1: ['', Validators.required]\r\n };\r\n this.lov?.['decision']?.options?.forEach(option => {\r\n newForm[option.value] = [''];\r\n })\r\n this.formGroup = this.fb.group({\r\n input: new FormControl(null, [Validators.required]),\r\n currencyInput: new FormControl(null, Validators.required),\r\n emailInput: new FormControl({value: null,disabled: true}, Validators.required),\r\n numberInput: new FormControl(null, Validators.required),\r\n customSearchable: new FormControl(null, Validators.required),\r\n checkbox: new FormControl(null ,[Validators.requiredTrue, Validators.required]),\r\n textArea: new FormControl(null, [Validators.required,Validators.maxLength(5)]),\r\n datePicker: new FormControl(null, Validators.required),\r\n datePickerRange: new FormControl(null, Validators.required),\r\n radio: new FormControl(null, Validators.required),\r\n toggle: new FormControl(null, Validators.required),\r\n telephone: new FormControl(null, Validators.required),\r\n searchEmployee: new FormControl(null, Validators.required),\r\n // ...newForm,\r\n attachment: new FormControl(null, Validators.required),\r\n attachmentSection: new FormControl([], Validators.required),\r\n });\r\n this.lov?.['decision']?.options?.forEach(option => {\r\n let isActionValid = this.checkValidity(option.value);\r\n this.actionStateService.setActionValid(option.value, isActionValid);\r\n console.log(isActionValid)\r\n\r\n })\r\n\r\n\r\n // this.formGroup = this.fb.group({\r\n // input: new FormControl(null),\r\n // currencyInput: new FormControl(null),\r\n // emailInput: new FormControl({value: null,disabled: true}),\r\n // numberInput: new FormControl(null),\r\n // customSearchable: new FormControl(null),\r\n // checkbox: new FormControl(null),\r\n // textArea: new FormControl(null),\r\n // datePicker: new FormControl(null),\r\n // datePickerRange: new FormControl(null),\r\n // radio: new FormControl(null),\r\n // toggle: new FormControl(null),\r\n // telephone: new FormControl(null),\r\n // searchEmployee: new FormControl(null),\r\n // // ...newForm,\r\n // attachment: new FormControl(null),\r\n // attachmentSection: new FormControl([]),\r\n // });\r\n this.formGroup.setValue(this.section.body.details);\r\n // console.log(this.section.body.detils);\r\n // console.log(this.lov?.['approverActions']?.options)\r\n this.formGroup.valueChanges.subscribe(value => {\r\n this.lov?.['decision']?.options?.forEach(option => {\r\n let isActionValid = this.checkValidity(option.value);\r\n this.actionStateService.setActionValid(option.value, isActionValid);\r\n\r\n })\r\n })\r\n }\r\n\r\n // this.formGroup.valueChanges.subscribe(value => {\r\n // this.lov?.['decision']?.options?.forEach(option => {\r\n // let isActionValid = this.checkValidity(option.value);\r\n // this.actionStateService.setActionValid(option.value, isActionValid);\r\n // this.section.body.details = this.formGroup.value\r\n // /!*{\r\n // input1: this.fieldsForm.get('input1').value\r\n // }*!/\r\n // })\r\n // })\r\n // }\r\n // createForm() {\r\n // this.formGroup = this.fb.group({\r\n // customerName: new FormControl(null, [Validators.required]),\r\n // customerPhone: new FormControl(null, [Validators.required]),\r\n // reasonForRequest: new FormControl(null, [Validators.required]),\r\n // callType: new FormControl(null, [Validators.required]),\r\n // centerOfCalls: new FormControl(null, [Validators.required]),\r\n // callDate: new FormControl(null, [Validators.required]),\r\n // agreement: new FormControl(null, [Validators.required,Validators.requiredTrue]),\r\n // });\r\n // this.formGroup.valueChanges.pipe(\r\n // takeUntilDestroyed(this.destroyRef)\r\n // ).subscribe(value => {\r\n // this.lov?.['decision']?.options?.forEach(option => {\r\n // let isActionValid = this.checkValidity(option.value);\r\n // this.actionStateService.setActionValid(option.value, isActionValid);\r\n // this.section.body.details = this.formGroup.value\r\n // this.section.body.details.customerPhone = this.section.body.details.customerPhone?.e164Number\r\n // // this.section.body.details.agreement = (this.section.body.details.agreement).toString()\r\n\r\n // })\r\n // })\r\n // console.log(this.lov?.['decision']?.options)\r\n // console.log(this.section.body.details)\r\n // this.formGroup.setValue(this.section.body.details);\r\n // console.log('customCallSubmit', this.formGroup.value)\r\n // }\r\n\r\n editAsset(asset){\r\n console.log(asset)\r\n }\r\n startsWithDMOEOrCR(): ValidatorFn {\r\n return (control: AbstractControl): { [key: string]: any } | null => {\r\n const value = control.value;\r\n if (value && (value.startsWith('DMOE-') || value.startsWith('CR-'))) {\r\n return null; // Valid\r\n }\r\n return { startsWithInvalid: true }; // Invalid\r\n };\r\n }\r\n deleteAsset(asset){\r\n console.log(asset)\r\n }\r\n\r\n formValue(form){\r\nconsole.log(form.value)\r\n }\r\n\r\n checkValidity(action: string): boolean {\r\n switch (action) {\r\n case 'SUBMIT':\r\n return this.formGroup.valid;\r\n case 'APPROVE':\r\n return true;\r\n case 'REJECT':\r\n return this.formGroup.valid;\r\n case 'SENDBACK':\r\n return this.formGroup.valid;\r\n case 'SAVE_CHANGES':\r\n return true;\r\n default:\r\n return false;\r\n }\r\n }\r\n\r\n\r\n customCallSubmit(action: string) {\r\n console.log('customCallSubmit', action)\r\n }\r\n\r\n resetForm() {\r\n this.actionStateService.resetAction$.next();\r\n }\r\n\r\n pageChanged(event: any) {\r\n this.pageNumber = event.pageIndex\r\n this.pageSize = event.pageSize\r\n}\r\n\r\n}\r\n","<div>\r\n <form [ngClass]=\"{'form-section-divide form-section':!section?.header?.readOnly,'info-section':section?.header?.readOnly}\" [formGroup]=\"formGroup\">\r\n\r\n <app-search-employee\r\n class=\"section-item full\"\r\n [multiple]=\"true\"\r\n [arrayList]=\"formGroup.get('searchEmployee').value\"\r\n [isReadOnly]=\"isReadOnly\"\r\n formControlName=\"searchEmployee\"\r\n label=\"Search-employee\"></app-search-employee>\r\n <app-input class=\"section-item full\" [isReadOnly]=\"isReadOnly\" [loading]=\"true\" type=\"enOnly\" formControlName=\"input\" label=\"Input\"></app-input>\r\n <app-input-currency class=\"section-item full\" [isReadOnly]=\"isReadOnly\" formControlName=\"currencyInput\" label=\"currency\"></app-input-currency>\r\n <app-input-email class=\"section-item full\" [isReadOnly]=\"isReadOnly\" formControlName=\"emailInput\" label=\"email\"></app-input-email>\r\n <app-input-number class=\"section-item full\" [isReadOnly]=\"isReadOnly\" formControlName=\"numberInput\" label=\"number\"></app-input-number>\r\n <app-custom-searchable\r\n class=\"section-item mb-0 full\"\r\n [isReadOnly]=\"isReadOnly\"\r\n formControlName=\"customSearchable\"\r\n label=\"Custom-searchable\"\r\n [options]=\"lov?.['approverActions']?.options\"\r\n [displayedLabel]=\"'name'\"\r\n [key]=\"'name'\"></app-custom-searchable>\r\n <app-checkbox\r\n class=\"section-item full\"\r\n [isReadOnly]=\"isReadOnly\"\r\n formControlName=\"checkbox\"\r\n termsLabel=\"Terms and conditions\"\r\n label=\"check-box\"\r\n [containTerms]=\"true\"></app-checkbox>\r\n <app-textarea class=\"section-item full\" [isReadOnly]=\"isReadOnly\" formControlName=\"textArea\" label=\"Text-area\"></app-textarea>\r\n <app-datepicker\r\n class=\"section-item full\"\r\n [isReadOnly]=\"isReadOnly\"\r\n formControlName=\"datePicker\"\r\n [matSuffix]=\"true\"\r\n label=\"Date-picker\"></app-datepicker>\r\n <app-date-range-picker\r\n class=\"section-item full\"\r\n [isReadOnly]=\"isReadOnly\"\r\n formControlName=\"datePickerRange\"\r\n label=\"Date-picker-range\"\r\n [matSuffix]=\"true\"></app-date-range-picker>\r\n <app-radio class=\"section-item full\" [isReadOnly]=\"isReadOnly\" formControlName=\"radio\" [options]=\"options\" label=\"Radio\"></app-radio>\r\n <app-toggle-button\r\n class=\"section-item full\"\r\n [isReadOnly]=\"isReadOnly\"\r\n formControlName=\"toggle\"\r\n [options]=\"lov?.['approverActions']?.options\"\r\n label=\"Toggle-button\"\r\n [displayedLabel]=\"'name'\"\r\n [key]=\"'name'\"></app-toggle-button>\r\n <app-input-telephone class=\"section-item full\" [isReadOnly]=\"isReadOnly\" formControlName=\"telephone\" label=\"Telephone\"></app-input-telephone>\r\n <app-file-uploader\r\n class=\"section-item full\"\r\n [callApi]=\"true\"\r\n [isReadOnly]=\"isReadOnly\"\r\n [multiple]=\"false\"\r\n label=\"attachment\"\r\n formControlName=\"attachment\"></app-file-uploader>\r\n <app-attachment-section\r\n class=\"section-item full\"\r\n [descriptionRequired]=\"false\"\r\n label=\"Attachment section\"\r\n [commentsRequired]=\"false\"\r\n [isReadOnly]=\"isReadOnly\"\r\n formControlName=\"attachmentSection\"></app-attachment-section>\r\n\r\n\r\n <!-- <app-table\r\n [columnsConfig]=\"columnsConfig\"\r\n [columns]=\"columns\"\r\n [isError]=\"isError\"\r\n [isLoading]=\"isLoading\"\r\n [rows]=\"categoryData\" [hasPaginator]=\"true\"\r\n [pageSize]=\"pageSize\" [currentPage]=\"pageNumber\"\r\n [totalElements]=\"totalElements\"\r\n (pageChange)=\"pageChanged($event)\"\r\n class=\"new-primary-table full\">\r\n </app-table> -->\r\n\r\n\r\n </form>\r\n\r\n\r\n</div>\r\n@if (!section?.header?.readOnly) {\r\n <div class=\"mt-4\">\r\n <lib-action-buttons\r\n [lovOptions]=\"lov?.['decision']?.options\"\r\n [lovType]=\"lov?.['decision']?.type\"\r\n [section]=\"section\"\r\n [form]=\"form\"\r\n [sections]=\"form.sections\"\r\n [showApprovalCycle]=\"true\"\r\n [customCall]=\"false\"\r\n [fieldsForm]=\"formGroup\"\r\n (customCallEmit)=\"customCallSubmit($event)\"\r\n (resetFormEmit)=\"resetForm()\"\r\n />\r\n </div>\r\n}\r\n","import {Component, CUSTOM_ELEMENTS_SCHEMA, DestroyRef, inject, Input, NO_ERRORS_SCHEMA, OnInit} from '@angular/core';\r\nimport {Form, Section} from \"../../interfaces\";\r\nimport {ActionStateService, CoreI18nService} from \"../../services\";\r\nimport {NgClass, NgForOf, NgIf} from \"@angular/common\";\r\nimport {ActionButtonsComponent, TextareaComponent} from \"../../components/shared-components\";\r\nimport {FormBuilder, FormControl, FormGroup, ReactiveFormsModule, Validators} from \"@angular/forms\";\r\nimport {CustomSearchableComponent, InputComponent} from '../../components/shared-components';\r\nimport {ValidationErrorsComponent} from '../../components/shared-components/form-field/validation-errors/validation-errors.component';\r\nimport { takeUntilDestroyed } from '@angular/core/rxjs-interop';\r\n\r\n@Component({\r\n selector: 'app-general-approver-section',\r\n templateUrl: './general-approver-section.component.html',\r\n styleUrls: ['./general-approver-section.component.scss'],\r\n standalone: true,\r\n schemas: [CUSTOM_ELEMENTS_SCHEMA, NO_ERRORS_SCHEMA],\r\n imports: [\r\n NgClass,\r\n InputComponent,\r\n NgIf,\r\n NgForOf,\r\n ActionButtonsComponent,\r\n ReactiveFormsModule,\r\n ValidationErrorsComponent,\r\n CustomSearchableComponent,\r\n TextareaComponent\r\n ]\r\n})\r\nexport class GeneralApproverSectionComponent implements OnInit{\r\n\r\n @Input() isReadOnly: boolean;\r\n @Input() section: Section;\r\n @Input() form: Form;\r\n @Input() lov: any;\r\n @Input() className: string = \"info-section\";\r\n fieldsForm: FormGroup;\r\n numbers = [...Array(100).keys()].map(i => i + 1);\r\n destroyRef = inject(DestroyRef);\r\n formGroup: FormGroup;\r\n\r\n\r\n constructor(public i18n: CoreI18nService, private fb: FormBuilder, private actionStateService: ActionStateService) {\r\n\r\n }\r\n\r\nngOnInit() {\r\n this.createForm();\r\n this.formGroup.setValue(this.section.body.details);\r\n }\r\n\r\n createForm() {\r\n this.formGroup = this.fb.group({\r\n comment: new FormControl('' ),\r\n decision: new FormControl(''),\r\n });\r\n this.formGroup.valueChanges.subscribe(value => {\r\n this.lov?.['decision']?.options?.forEach(option => {\r\n let isActionValid = this.checkValidity(option.value);\r\n this.actionStateService.setActionValid(option.value, isActionValid);\r\n this.section.body.details = this.formGroup.value\r\n })\r\n })\r\n }\r\n\r\n checkValidity(action: string): boolean {\r\n switch (action) {\r\n case 'APPROVE':\r\n return true;\r\n case 'REJECT':\r\n return this.fieldsForm.valid;\r\n case 'SENDBACK':\r\n return this.fieldsForm.valid;\r\n default:\r\n return false;\r\n }\r\n }\r\n\r\n\r\n customCallSubmit(action: string) {\r\n console.log('customCallSubmit', action)\r\n }\r\n\r\n resetForm() {\r\n this.fieldsForm.reset()\r\n }\r\n\r\n}\r\n","<div>\r\n <form [ngClass]=\"{'form-section-divide form-section':!section?.header?.readOnly,'info-section':section?.header?.readOnly}\"\r\n [formGroup]=\"formGroup\">\r\n\r\n <app-textarea class=\"section-item\" formControlName=\"comment\" [label]=\"'comment'\" [required]=\"false\"\r\n [isReadOnly]=\"section?.header?.readOnly\">\r\n </app-textarea>\r\n\r\n </form>\r\n</div>\r\n\r\n\r\n@if (!section?.header?.readOnly) {\r\n<div class=\"mt-4\">\r\n <lib-action-buttons [lovOptions]=\"lov?.['decision']?.options\" [lovType]=\"lov?.['decision']?.type\" [section]=\"section\"\r\n [form]=\"form\" [sections]=\"form.sections\" [showApprovalCycle]=\"true\" [customCall]=\"false\" [fieldsForm]=\"formGroup\"\r\n (customCallEmit)=\"customCallSubmit($event)\" (resetFormEmit)=\"resetForm()\" />\r\n</div>\r\n}\r\n","import {GeneralApproverSectionComponent} from \"../general-approver-section/general-approver-section.component\";\r\n\r\n\r\nexport default {\r\n roleToApprovalSectionMapping: {\r\n vpr_d: GeneralApproverSectionComponent,\r\n sel_dsg : GeneralApproverSectionComponent,\r\n }\r\n}\r\n","import { Injectable } from '@angular/core';\r\nimport * as en from '../../i18n/en';\r\nimport * as ar from '../../i18n/ar';\r\n\r\n@Injectable({\r\n providedIn: 'any',\r\n})\r\nexport class I18nService {\r\n private locales: {[key: string]: {[key: string]: string}};\r\n private coreLocales: {[key: string]: {[key: string]: string}};\r\n private language : string;\r\n\r\n constructor() {\r\n this.language = (window as any).wmConfig.language;\r\n // this.language = \"en\";\r\n this.locales = {en: en.default, ar: ar.default};\r\n }\r\n\r\n translate(key) {\r\n let result = null;\r\n try {\r\n result = this.coreLocales[this.language][key];\r\n if (!result) {\r\n result = this.locales[this.language][key];\r\n }\r\n }\r\n catch(e) {\r\n result = null;\r\n }\r\n return result || key;\r\n }\r\n\r\n getLanguage() {\r\n return this.language;\r\n }\r\n}\r\n","import { Injectable } from '@angular/core';\r\nimport * as Constants from '../../constants';\r\nimport { I18nService } from './i18n.service';\r\nimport {RequestDetailsSectionComponent} from \"../request-details-section/request-details-section.component\";\r\nimport segmentDynamicLoaderConfiguration from '../config/segment-dynamic-loader.config';\r\n\r\n@Injectable({\r\n providedIn: 'any',\r\n})\r\nexport class SegmentDynamicLoaderService {\r\n requestDetailsSection = RequestDetailsSectionComponent;\r\n roleToApprovalSectionMapping = segmentDynamicLoaderConfiguration.roleToApprovalSectionMapping;\r\n\r\n constructor(private i18n: I18nService) {\r\n\r\n }\r\n\r\n getComponent(componentId: string) {\r\n if (componentId.toLowerCase() === Constants.SECTION_ID_REQUEST_DETAILS.toLowerCase()) {\r\n return this.requestDetailsSection;\r\n }\r\n let role = componentId.toLowerCase().split(Constants.SECTION_ID_APPROVAL_PARTIAL_NAME.toLowerCase())[0].toLowerCase();\r\n return this.roleToApprovalSectionMapping[role];\r\n }\r\n\r\n getSectionName(componentId: string): string {\r\n if(componentId.toLowerCase() === Constants.SECTION_ID_REQUEST_DETAILS.toLowerCase()) {\r\n return this.i18n.translate('requestDetailsTitle');\r\n }\r\n else if(componentId.toLowerCase() === 'hrRequestDetails'.toLowerCase()) {\r\n return this.i18n.translate('hrRequestDetailsTitle');\r\n }\r\n let role = componentId.toLowerCase().split(Constants.SECTION_ID_APPROVAL_PARTIAL_NAME.toLowerCase())[0].toLowerCase();\r\n return this.i18n.translate(`${role.toLowerCase()}Role`);\r\n }\r\n\r\n getPrintPartialName (componentName: string) {\r\n\r\n\r\n\r\n if (componentName === Constants.SECTION_ID_REQUEST_DETAILS) {\r\n return 'sectionrequestDetails';\r\n }\r\n else if (componentName === 'wpo_dApproval' ) { return 'sectionGeneralApprover'}\r\n else if (componentName === 'wpo_gmApproval' ) { return 'sectionGeneralApprover'}\r\n\r\n else { return 'sectionGeneralApproval' }\r\n\r\n }\r\n}\r\n","import {AfterViewInit, Component, CUSTOM_ELEMENTS_SCHEMA, Inject, NO_ERRORS_SCHEMA, PLATFORM_ID} from '@angular/core';\r\nimport {LayoutComponent, ServiceHeaderComponent, WorkflowSectionComponent} from \"../components/app-component-sections\";\r\nimport {DOCUMENT, isPlatformBrowser} from \"@angular/common\";\r\nimport {Router} from \"@angular/router\";\r\nimport {CoreI18nService, CoreService, SidenavService} from \"../services\";\r\nimport {Form} from \"../interfaces\";\r\nimport {RequestDetailsSectionComponent} from \"../testComponent/request-details-section/request-details-section.component\";\r\nimport {SegmentDynamicLoaderService} from \"../testComponent/services/segment-dynamic-loader.service\";\r\nimport {DynamicComponentInjectorToken} from \"ng-dynamic-component\";\r\nimport {TranslatePipe} from \"../pipes/translate.pipe\";\r\n\r\n@Component({\r\n selector: 'lib-app',\r\n standalone: true,\r\n templateUrl: './app.component.html',\r\n styleUrl: './app.component.css',\r\n imports: [\r\n // DynamicModule,\r\n LayoutComponent,\r\n ServiceHeaderComponent,\r\n WorkflowSectionComponent,\r\n RequestDetailsSectionComponent,\r\n TranslatePipe\r\n ],\r\n schemas: [CUSTOM_ELEMENTS_SCHEMA, NO_ERRORS_SCHEMA],\r\n providers: [\r\n {provide: DynamicComponentInjectorToken, useValue: { /* your value here */}}\r\n ]\r\n\r\n})\r\nexport class CoreAppComponent implements AfterViewInit {\r\n loading = {\r\n form: false\r\n }\r\n form: Form\r\n formTitle: string = 'Test';\r\n noError = true;\r\n errorMessage: [];\r\n constructor(\r\n public segmentDynamicLoader: SegmentDynamicLoaderService,\r\n @Inject(DOCUMENT) private readonly document: Document,\r\n private readonly router: Router,\r\n private readonly sidenavService: SidenavService,\r\n public i18n: CoreI18nService,\r\n private readonly coreService: CoreService,\r\n @Inject(PLATFORM_ID) private platformId: any\r\n ) {\r\n this.loading['form'] = true\r\n this.coreService.loadForm().subscribe({\r\n next: (form: any) => {\r\n this.form = form;\r\n this.loading['form'] = false\r\n },\r\n error: (err) => {\r\n this.noError = false;\r\n this.loading['form'] = false\r\n this.errorMessage = err?.error?.meta?.messages\r\n }\r\n });\r\n }\r\n\r\n ngAfterViewInit() {\r\n if (isPlatformBrowser(this.platformId)) {\r\n const direction = this.i18n.language == 'en' ? 'ltr' : 'rtl';\r\n document.documentElement.setAttribute('dir', direction);\r\n }\r\n }\r\n\r\n}\r\n","<core-layout>\r\n @if (!loading['form']) {\r\n\r\n @if (noError) {\r\n <core-service-header\r\n [isLoading]=\"false\"\r\n [formTitle]=\"formTitle\"\r\n [isReadOnly]=\"form.sections[0].header.readOnly\"\r\n [form]=\"form\">\r\n </core-service-header>\r\n <app-workflow-section\r\n workflow\r\n [segmentDynamicLoaderService]=\"segmentDynamicLoader\"\r\n [form]=\"form\" [sections]=\"form?.['sections']\">\r\n <app-request-details-section\r\n [section]=\"form.sections[0]\" [form]=\"form\" [lov]=\"form?.lovs\" className=\"form-section\"\r\n [isReadOnly]=\"form.sections[0].header.readOnly\"></app-request-details-section>\r\n </app-workflow-section>\r\n } @else {\r\n @if (errorMessage?.length) {\r\n <ds-message></ds-message>\r\n @for (item of errorMessage; track $index) {\r\n <div class=\"d-flex justify-content-center\">\r\n <span class=\"fc-coral fs-18\" >{{ item?.['message'] }}</span>\r\n </div>\r\n }\r\n } @else {\r\n <ds-message [label]=\"'pageErrorLoading' | translate\"></ds-message>\r\n }\r\n }\r\n } @else {\r\n <core-service-header header [formTitle]=\"formTitle\" [isLoading]=\"true\">\r\n </core-service-header>\r\n }\r\n</core-layout>\r\n","export function encodePassword(formId: string, password: string) {\r\n const formIdString = Array.from(\r\n new TextEncoder().encode(formId),\r\n (x) => String.fromCodePoint(x)\r\n ).join('');\r\n\r\n let encodedFormId = btoa(formIdString);\r\n\r\n let x = Math.floor(\r\n Math.random() * password.length\r\n );\r\n\r\n let [first, second] = [\r\n password.slice(0, x),\r\n password.slice(x),\r\n ];\r\n\r\n let newPassword = first + encodedFormId + second;\r\n\r\n const binString = Array.from(new TextEncoder().encode(newPassword), (x) =>\r\n String.fromCodePoint(x)\r\n ).join('');\r\n\r\n newPassword = btoa(binString);\r\n return newPassword;\r\n }","import { Attachment, Employee, Select } from \"../interfaces\";\r\n\r\nconst dataTypes = {\r\n string: {\r\n verifyDataType: (value: any) => typeof value === 'string',\r\n isValid: (value) => !!value\r\n },\r\n attachmentsList: {\r\n verifyDataType: (value: any) => Array.isArray(value) && value.every(item => (typeof item === 'object') && ('fileName' in item)),\r\n isValid: (value: Attachment[]) => !!value.length\r\n },\r\n select: {\r\n verifyDataType: (value: any) => (typeof value === 'object') && ('key' in value),\r\n isValid: (value: Select) => (typeof value === 'object') && !!value.key\r\n },\r\n employee: {\r\n verifyDataType: (value: any) => (typeof value === 'object') && ('personName' in value) && ('personEmail' in value),\r\n isValid: (value: Employee) => (typeof value === 'object') && !!value.personName && !!value.personEmail\r\n },\r\n singleAttachment: {\r\n verifyDataType: (value: any) => (typeof value === 'object') && ('fileName' in value) && ('mimeType' in value),\r\n isValid: (value: Attachment) => (typeof value === 'object') && !!value.fileName && !!value.mimeType\r\n }\r\n}\r\n\r\nexport function isValidData(data: any): boolean {\r\n if(data === undefined || data === null) return false;\r\n let requiredKey;\r\n\r\n //get current data type\r\n for(let item of Object.entries(dataTypes)){\r\n const type = item[0]; //string or attachmentsList or select ...\r\n const verifyDataTypeFn = item[1].verifyDataType;\r\n if(verifyDataTypeFn(data)) {\r\n requiredKey = type;\r\n break;\r\n }\r\n }\r\n\r\n if(!requiredKey){\r\n throw Error('data type is not found')\r\n }\r\n\r\n //check if the current data type is valid\r\n return dataTypes[requiredKey].isValid(data);\r\n}\r\n","import { Form, Messages } from \"../interfaces\";\r\nimport { NO_VALUE } from \"../constants/constants\";\r\n\r\nexport function handelErrorResponse<T extends {form: Form}>(obj: T, errorMsgs: Messages) {\r\n if (!obj.form) {\r\n obj.form = new Form(\r\n NO_VALUE,\r\n NO_VALUE,\r\n NO_VALUE,\r\n NO_VALUE,\r\n NO_VALUE,\r\n NO_VALUE,\r\n errorMsgs\r\n );\r\n } else {\r\n obj.form.messages = errorMsgs;\r\n }\r\n window.scrollTo(0, 0);\r\n }\r\n","export function dataURItoBlob(dataURI: any, mimeType?: string) {\r\n const byteString = atob(dataURI);\r\n const arrayBuffer = new ArrayBuffer(byteString.length);\r\n const int8Array = new Uint8Array(arrayBuffer);\r\n for (let i = 0; i < byteString.length; i++) {\r\n int8Array[i] = byteString.charCodeAt(i);\r\n }\r\n const blob = new Blob([arrayBuffer], { type: mimeType || 'image/jpeg' });\r\n return blob;\r\n};\r\n","import { ValidationErrors } from \"@angular/forms\";\r\nimport { Section } from \"../interfaces\";\r\nimport { isValidData } from \"../functions\";\r\n\r\nexport type FormAction = 'SUBMIT' | 'APPROVE' | 'REJECT' | 'SENDBACK' | 'SAVE_CHANGES' | 'CANCEL' | 'SENDTODO' | string & {};\r\nexport type CustomValidatorFn = (fieldName: string, section: Section, action: FormAction) => ValidationErrors | null;\r\n\r\nexport class FormValidation {\r\n constructor(private validators: Record<string, CustomValidatorFn[]>) { }\r\n\r\n isFormValidForAction(section: Section, action: FormAction): boolean {\r\n return Object.entries(this.validators)\r\n .every(([fieldName, fieldValidators]) => fieldValidators.every(fn => fn(fieldName, section, action) === null));\r\n }\r\n\r\n logFormControlsValidationStatus(section: Section, action?: FormAction) {\r\n console.log(Object.entries(this.validators).map(([fieldName, fieldValidators]) => {\r\n const isValid = fieldValidators.every(fn => fn(fieldName, section, action) === null)\r\n return { [fieldName]: fieldValidators.map(fn => fn(fieldName, section, action)), isValid };\r\n }));\r\n }\r\n}\r\n\r\nexport class BuiltInCustomValidators {\r\n static required(fieldName: string, section: Section, action: FormAction): ValidationErrors | null {\r\n const value = section.body.details[fieldName];\r\n if(isValidData(value)) return null;\r\n return {required: true};\r\n }\r\n static requiredIfAction(action: FormAction[]): CustomValidatorFn {\r\n return (fieldName: string, section: Section, currentAction: FormAction) => {\r\n if(action.includes(currentAction)){\r\n return BuiltInCustomValidators.required(fieldName, section, currentAction);\r\n }\r\n return null;\r\n }\r\n }\r\n static requiredOnlyWhen(conditionFn: () => boolean): CustomValidatorFn {\r\n return (fieldName: string, section: Section, currentAction: FormAction) => {\r\n if(conditionFn()){\r\n return BuiltInCustomValidators.required(fieldName, section, currentAction);\r\n }\r\n return null;\r\n }\r\n }\r\n static maxLength(max: number): CustomValidatorFn {\r\n return (fieldName: string, section: Section, currentAction: FormAction) => {\r\n const value: string = section.body?.details?.[fieldName];\r\n if(!value) return null;\r\n if(value.length > max) return {maxLength: 'required', required: max};\r\n return null;\r\n }\r\n }\r\n static minLength(min: number): CustomValidatorFn {\r\n return (fieldName: string, section: Section, currentAction: FormAction) => {\r\n const value: string = section.body?.details?.[fieldName];\r\n if(!value) return null;\r\n if(value.length < min) return {minLength: 'required', required: min};\r\n return null;\r\n }\r\n }\r\n static ifAction(actions: FormAction[], validators: CustomValidatorFn[]): CustomValidatorFn[] {\r\n return validators.map(fn => {\r\n return (fieldName: string, section: Section, currentAction: FormAction) => {\r\n if(!actions.includes(currentAction)) return null;\r\n return fn(fieldName, section, currentAction);\r\n }\r\n })\r\n }\r\n static validateOnlyWhen(conditionFn: () => boolean, validators: CustomValidatorFn[]): CustomValidatorFn[] {\r\n return validators.map(fn => {\r\n return (fieldName: string, section: Section, currentAction: FormAction) => {\r\n if(conditionFn()) return fn(fieldName, section, currentAction);\r\n return null;\r\n }\r\n })\r\n }\r\n}\r\n","import { Form } from \"../interfaces\";\r\n\r\nexport default {\r\n beforeTranspilePayload (payload: {[key: string]: any}): {[key: string]: any} {\r\n const hookResult = payload;\r\n // Here should be the code to manipulate the payload before the transpile stage\r\n return hookResult;\r\n },\r\n\r\n afterTranspilePayload (form: Form): Form {\r\n const hookResult = form;\r\n // Here should be the code to manipulate the form object after the transpile stage\r\n return hookResult;\r\n }\r\n}\r\n","/* eslint-disable @typescript-eslint/no-explicit-any */\r\n\r\nexport function validateSAID(this: any) {\r\n\r\n if (this?.personalInfoFormTemp) {\r\n let id = this?.personalInfoFormTemp?.get?.('elmIdNum')?.value\r\n const selectedType = this?.personalInfoFormTemp?.get?.('elmIdType')?.value?.value\r\n id = id.trim();\r\n if (id.length > 0 && (selectedType == 'IQAMA' || selectedType == 'NATIONAL ID')) {\r\n if (Number(id) === null) {\r\n // return { idInvalid: true };\r\n return false;\r\n }\r\n if (id.length !== 10) {\r\n return { idInvalid: true };\r\n // return false;\r\n }\r\n const type = id.substr(0, 1);\r\n if (type !== '2' && type !== '1') {\r\n return { idInvalid: true };\r\n // return false;\r\n }\r\n let idType\r\n if (selectedType == 'IQAMA') {\r\n idType = '2'\r\n } else if (selectedType == 'NATIONAL ID') {\r\n idType = '1'\r\n }\r\n if (idType !== type) {\r\n return { idInvalid: true };\r\n // return false;\r\n }\r\n\r\n let sum = 0;\r\n for (let i = 0; i < 10; i++) {\r\n if (i % 2 === 0) {\r\n const ZFOdd = String('00' + String(Number(id.substr(i, 1)) * 2)).slice(-2);\r\n sum += Number(ZFOdd.substr(0, 1)) + Number(ZFOdd.substr(1, 1));\r\n } else {\r\n sum += Number(id.substr(i, 1));\r\n }\r\n\r\n }\r\n return { idInvalid: (sum % 10 !== 0) ? true : false };\r\n // return (sum % 10 !== 0) ? false : true;\r\n }\r\n else if (id.length > 0 && selectedType == 'PASSPORT') {\r\n const nameWithNumbersRegex = '^[\\u0600-\\u065F\\u066A-\\u06EF\\u06FA-\\u06FFa-zA-Z0-9]+[\\u0600-\\u065F\\u066A-\\u06EF\\u06FA-\\u06FFa-zA-Z0-9-_ ]*$'\r\n if (!RegExp(nameWithNumbersRegex).test(id)) {\r\n return { idInvalid: true };\r\n // return false;\r\n }\r\n else {\r\n return { idInvalid: false };\r\n // return true;\r\n }\r\n }\r\n else {\r\n return { idInvalid: false };\r\n // return true;\r\n }\r\n } else {\r\n return { idInvalid: false };\r\n // return true;\r\n }\r\n}\r\n","/* eslint-disable @typescript-eslint/no-unused-vars */\r\n/* eslint-disable @angular-eslint/directive-selector */\r\n\r\nimport {\r\n Directive,\r\n ElementRef,\r\n HostListener,\r\n Input\r\n} from \"@angular/core\";\r\n\r\n@Directive({\r\n selector: \"[textOnly]\"\r\n})\r\nexport class TextDirective {\r\n @Input() decimals = 0;\r\n\r\n constructor(private el: ElementRef) { }\r\n\r\n private check(value: string) {\r\n value.replace(/[\\u0000-\\u001F\\u007F-\\u009F]/g, \"\")\r\n const arabicAlphabetDigits = /[\\u0600-\\u06ff]|[\\u0750-\\u077f]|[\\ufb50-\\ufc3f]|[\\ufe70-\\ufefc]|[\\u0200]|[\\u00A0]/g;\r\n\r\n return (String(value).match(new RegExp('^[a-zA-Z ]*$')) || arabicAlphabetDigits.test(value) ) ;\r\n // return String(value).match(new RegExp('^[a-zA-Z ]*$'));\r\n }\r\n\r\n\r\n\r\n @HostListener(\"keydown\", [\"$event\"])\r\n onKeyDown(event: KeyboardEvent) {\r\n console.log(\"keydown\", event)\r\n const text = event.key;\r\n if (this.check(this.el.nativeElement.value + (event.key != 'Backspace' ? event.key : '')) || text == \" \" || text == 'Backspace' || (event.ctrlKey && (text == 'c' || text == 'ؤ' || text == 'v' || text == 'ر' || text == 'x' || text == 'ء' || text == 'a' || text == 'ش' || text == 'z' || text == 'ئ'))) {\r\n return;\r\n }\r\n else {\r\n event.preventDefault();\r\n }\r\n }\r\n\r\n @HostListener(\"paste\", [\"$event\"])\r\n onPaste(event: ClipboardEvent) {\r\n const data = event.clipboardData.getData('text/plain');\r\n if (!this.check(data)) {\r\n event.preventDefault()\r\n\r\n }\r\n }\r\n}","import { Pipe, PipeTransform } from \"@angular/core\";\r\n\r\n@Pipe({\r\n name: \"stringToBoolean\"\r\n})\r\nexport class stringToBooleanPipe implements PipeTransform {\r\n transform(value: string): boolean {\r\n return Boolean(value)\r\n }\r\n}\r\n","import { Pipe, PipeTransform } from \"@angular/core\";\r\n\r\n@Pipe({\r\n name: \"formatTime\"\r\n})\r\nexport class FormatTimePipe implements PipeTransform {\r\n transform(value: number): string {\r\n const minutes: number = Math.floor(value / 60);\r\n return (\r\n (\"00\" + minutes).slice(-2) +\r\n \":\" +\r\n (\"00\" + Math.floor(value - minutes * 60)).slice(-2)\r\n );\r\n }\r\n}\r\n","// export * from './ar.directive';\r\n// export * from './en.directive';\r\nexport * from './id.validator';\r\nexport * from './text.directive';\r\nexport * from './string-to-boolean.pipe';\r\nexport * from './timer.pipe';\r\n// export * from './currency.directive';\r\n","/*\r\n * Public API Surface of bpm-core\r\n */\r\nimport { InjectionToken } from '@angular/core';\r\nimport {MyLibConfig} from \"./lib/interfaces/shared.interface\";\r\n\r\nexport * from './lib/app/app.component';\r\nexport * from './lib/components/shared-components';\r\nexport * from './lib/components/app-component-sections';\r\nexport * from './lib/pipes';\r\nexport * from './lib/i18n';\r\nexport * from './lib/constants';\r\nexport * from './lib/interfaces';\r\nexport * from './lib/classes';\r\nexport * from './lib/hooks';\r\nexport * from './lib/functions';\r\nexport * from './lib/validators';\r\nexport * from './lib/services';\r\nexport * from './lib/regex';\r\n\r\nexport const MY_LIB_CONFIG_TOKEN = new InjectionToken<MyLibConfig>('MyLibConfig');\r\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":["coreEn.default","coreAr.default","constants.TARGET_SERVER_DP","constants.HTTP_METHOD_GET","constants.STATE_NAME_DP_GET_FEEDBACK","constants.HTTP_METHOD_POST","constants.SERVICE_NAME_DP_CREATE_FEEDBACK","constants.HTTP_METHOD_PUT","constants.SERVICE_NAME_DP_UPDATE_FEEDBACK","constants.TARGET_SERVER_WM","constants.SERVICE_NAME_WM_FORM","constants.SERVICE_NAME_DP_SEARCH_EMPLOYEE","constants.HEADER_CONTENT_TYPE_FORM","constants.WM_ACTION_SAVE_CHANGES","constants.SERVICE_NAME_WM_DRAFT_FORM","constants.SECTION_ID_REQUEST_DETAILS","constants.SECTION_STATUS_PENDING","constants.NO_VALUE","constants.TRUE_STRING","constants.TRUE_BOOL","constants.FALSE_STRING","constants.FALSE_BOOL","constants.IGATE_STATIC_ASSET_PROFILE_PHOTO_URL","constants.DONT_SHOW","constants.READ_ONLY","constants.HAS_COMMENTS","constants.NO_COMMENTS","constants.FORM_STATUS_SEND_BACK","constants.SECTION_ID_APPROVAL_PARTIAL_NAME","constants.SERVICE_NAME_DP_UPDATE_INBOX_ITEM","constants.STATE_MACHINE_ACTION_SUCCESS_INBOX_ITEM","constants.WORKFLOW_ITEMS","constants.STATE_MACHINE_ACTION_LOAD_HISTORY","constants.SERVICE_NAME_DP_INBOX_ITEM","constants.STATE_MACHINE_ACTION_GET_INBOX_ITEM","constants.APPROVERS","constants.STATE_MACHINE_ACTION_SUCCESS_RESPONSE","constants.INBOX_STATUS_SENT","constants.INBOX_STATUS_PENDING","i1","i2.CoreI18nService","i1.CoreI18nService","i1.CoreService","i2","i3","i4","i5","i6.MycurrencyPipe","i7","i1.ActionStateService","en.default","ar.default","i2.FormLabelComponent","i3.ValidationErrorsComponent","i5.TranslatePipe","i3.FormLabelComponent","i4.ValidationErrorsComponent","i5.InfoItemComponent","i6","YEAR_ONLY_FORMAT","i5.FormLabelComponent","i6.ValidationErrorsComponent","i7.InfoItemComponent","i8","i9","i10.TranslatePipe","i4.FormLabelComponent","i5.ValidationErrorsComponent","i6.InfoItemComponent","i9.TranslatePipe","i1.EnOnlyDirective","i2.ArOnlyDirective","i1.FormLabelComponent","i2.ValidationErrorsComponent","i3.InfoItemComponent","i1.MycurrencyPipe","i7.TranslatePipe","MatOption","MatError","MatFormField","i8.EnOnlyDirective","i9.ArOnlyDirective","i1.SidenavService","Constants.FORM_STATUS_REJECTED","Constants.FORM_STATUS_CANCELLED","Constants.FORM_STATUS_PENDING","constants.FORM_STATUS_REJECT","constants.FORM_STATUS_CANCEL","Constants.FEEDBACK_STATUS_REQUEST","Constants.FEEDBACK_STATUS_WAITING","Constants.FEEDBACK_STATUS_RESPOND","Constants.FEEDBACK_STATUS_RESPONDED","Constants.NO_VALUE","i2.SidenavService","i2.CoreService","StatusMap","Constants.FORM_STATUS_REJECT","Constants.SECTION_STATUS_UNSATISFIED","Constants.FORM_STATUS_CANCEL","i1.FeedBackService","Constants.FORM_STATUS_COMPLETED","Constants.FORM_STATUS_APPROVED","Constants.LOGOUT_URL","Constants.SECTION_ID_REQUEST_DETAILS","Constants.SECTION_ID_APPROVAL_PARTIAL_NAME","i1.I18nService","i1.SegmentDynamicLoaderService","i3.SidenavService","i3.CoreI18nService","i3.CoreService"],"mappings":"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"}
|