bpm-core 0.0.43 → 0.0.45
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.
|
@@ -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/confirmation-popup/confirmation-popup.component.ts","../../../projects/bpm-core/src/lib/components/shared-components/confirmation-popup/confirmation-popup.component.html","../../../projects/bpm-core/src/lib/components/shared-components/delete-popup/delete-popup.component.ts","../../../projects/bpm-core/src/lib/components/shared-components/delete-popup/delete-popup.component.html","../../../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/doc-uploader/docs-uploader.component.ts","../../../projects/bpm-core/src/lib/components/shared-components/doc-uploader/docs-uploader.component.html","../../../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/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/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/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/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/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/directives/en.directive.ts","../../../projects/bpm-core/src/lib/directives/ar.directive.ts","../../../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/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/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/radio/radio.component.ts","../../../projects/bpm-core/src/lib/components/shared-components/form-field/radio/radio.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\r\n\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\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 || 'I18N key not found';\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 {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\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\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);\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 = JSON.parse(atob(this.projectConfig));\r\n this.language = (window as any)?.wmConfig?.language ? (window as any).wmConfig.language : \"en\";\r\n }\r\n\r\n public getLoggedInUserData() {\r\n let loggedInEmail = this.loggedInUserId()\r\n this.employeeProfile(loggedInEmail).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 return {\r\n headers: new HttpHeaders({\r\n authToken: this.authToken,\r\n 'Content-Type': constants.HEADER_CONTENT_TYPE_FORM\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.payload = saveFormHooks.beforeSendPayload(body.payload);\r\n }\r\n\r\n return body;\r\n }\r\n\r\n /* private callPost(body, options) {\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 return this.http.post(apiUrl, encodeURIComponent(JSON.stringify(body)), options).toPromise()\r\n .then(\r\n (responseObject: any) => {\r\n return this.successWm(responseObject)\r\n },\r\n ).catch(\r\n (httpError: any) => {\r\n return throwError(httpError)\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 /* Convert into Form Object */\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).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).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 (hasComments) {\r\n result.commentsDrop = (!result.commentsDrop ? [] : result.commentsDrop);\r\n if (step.details.attachment && step.details.attachment.attachmentId && this.config.production) {\r\n // this.state = constants.STATE_MACHINE_STATUS_IDLE;\r\n /!* this.dispatch(constants.STATE_MACHINE_ACTION_LOAD_FILE, step.details.attachment.attachmentId).then((responseObject) => {\r\n let fileInformation = responseObject.body;\r\n if (currentActor) {\r\n /!*this.dispatch(constants.STATE_MACHINE_ACTION_EMPLOYEE_PROFILE, currentActor.email).then((profile) => {\r\n result.commentsDrop.push(new CommentsDrop(\r\n constants.IGATE_STATIC_ASSET_PROFILE_PHOTO_URL + currentActor.email,\r\n currentActor.name,\r\n (step.details.comment ? step.details.comment : (step.comment ? step.comment : null)),\r\n step.date,\r\n fileInformation.fileName + \"|data:\" + fileInformation.mimeType + \";base64,\" + fileInformation.fileContents,\r\n profile.job.name\r\n ))\r\n })*!/\r\n }\r\n });\r\n this.state = constants.STATE_MACHINE_STATUS_FETCHING;*!/\r\n } else if (step.details.attachmentId) {\r\n /!* this.state = constants.STATE_MACHINE_STATUS_IDLE;\r\n this.dispatch(constants.STATE_MACHINE_ACTION_LOAD_FILE, step.details.attchmentId).then((responseObject) => {\r\n let fileInformation = responseObject.body;\r\n if (currentActor) {\r\n /!*this.dispatch(constants.STATE_MACHINE_ACTION_EMPLOYEE_PROFILE, currentActor.email).then((profile) => {\r\n result.commentsDrop.push(new CommentsDrop(\r\n constants.IGATE_STATIC_ASSET_PROFILE_PHOTO_URL + currentActor.email,\r\n currentActor.name,\r\n (step.details.comment ? step.details.comment : (step.comment ? step.comment : null)),\r\n step.date,\r\n fileInformation.fileName + \"|data:\" + fileInformation.mimeType + \";base64,\" + fileInformation.fileContents,\r\n profile.job.name\r\n ))\r\n })*!/\r\n }\r\n });\r\n this.state = constants.STATE_MACHINE_STATUS_FETCHING;*!/\r\n } else {\r\n if (currentActor) {\r\n this.employeeProfile(currentActor.email).subscribe((profile: any) => {\r\n if (profile) {\r\n result.commentsDrop.push(new CommentsDrop(\r\n constants.IGATE_STATIC_ASSET_PROFILE_PHOTO_URL + currentActor.email,\r\n currentActor.name,\r\n (step.details.comment ? step.details.comment : (step.comment ? step.comment : null)),\r\n step.date,\r\n null,\r\n profile.job.name\r\n ))\r\n }\r\n });\r\n }\r\n }\r\n }*/\r\n\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 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 (currentActor ? this.getShortName(currentActor.name) : \"\").toString(),\r\n step.date,\r\n this.getShortName(step.actor.recipient.name).toString(),\r\n constants.IGATE_STATIC_ASSET_PROFILE_PHOTO_URL + step.actor.recipient.email,\r\n (step.actor.delegate?.name ? this.getShortName(step.actor.delegate.name) : \"\").toString(),\r\n (step.actor.delegate?.email ? constants.IGATE_STATIC_ASSET_PROFILE_PHOTO_URL + step.actor.delegate.email : \"\"),\r\n step.actor.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 && payload.meta.lovs ? payload.meta.lovs : null);\r\n\r\n if (payload.meta && 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\r\n // result.messages = (payload.meta && payload.meta.messages ? payload.meta.messages : null);\r\n /* Fix last section to be the RO/WM from the variable */\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) {\r\n const [id] = args;\r\n return this.http.get(this.config.proxyFullAddress + this.config.proxyServiceForms + this.config.formId + this.config.proxyServiceAttachment + id, {observe: 'response'}).toPromise();\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 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 ? 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 prespectiveApprovers(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 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 {\r\n 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 }\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} 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\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","/* eslint-disable @angular-eslint/component-selector */\r\n/* eslint-disable @typescript-eslint/no-explicit-any */\r\nimport {Component, CUSTOM_ELEMENTS_SCHEMA, Inject} from '@angular/core';\r\nimport {MAT_DIALOG_DATA, MatDialogActions, MatDialogClose, MatDialogContent, MatDialogRef} from '@angular/material/dialog';\r\nimport {MatButton} from \"@angular/material/button\";\r\nimport {NgIf} from \"@angular/common\";\r\n\r\n@Component({\r\n selector: 'app-delete-popup',\r\n templateUrl: './confirmation-popup.component.html',\r\n styleUrls: ['./confirmation-popup.component.scss'],\r\n schemas: [CUSTOM_ELEMENTS_SCHEMA],\r\n standalone: true,\r\n imports: [\r\n MatDialogContent,\r\n MatDialogActions,\r\n MatButton,\r\n MatDialogClose,\r\n NgIf\r\n ]\r\n})\r\nexport class ConfirmationPopupComponent {\r\n\r\n constructor(\r\n @Inject(MAT_DIALOG_DATA)\r\n public data: {\r\n title: string;\r\n id: string;\r\n confirmText: string;\r\n moreText: string;\r\n type: string;\r\n icon: string;\r\n },\r\n public dialogRef: MatDialogRef<any>\r\n ) { }\r\n\r\n\r\n openForm() {\r\n window.open(\"/group/i-gate/wm-bpm/forms?formId=\" + this.data.id)\r\n location.reload()\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-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 text-center justify-content-center mb-2 mx-5\">\r\n <h2 class=\"fs-22 font-md-18 fw-medium fc-onyx my-3\">\r\n <!-- {{ 'submittedSuccessfully' | transloco}} -->\r\n </h2>\r\n <h4 class=\"fs-14 fw-normal fst-italic fc-onyx bg-color-light-gray p-3 mb-1\">\r\n <!-- <span>{{ 'formId' | transloco}}</span> -->\r\n <span class=\"mx-1\"></span>\r\n <span class=\"fs-weight-medium\">{{data.id}}</span>\r\n </h4>\r\n </div>\r\n </mat-dialog-content>\r\n <mat-dialog-actions>\r\n <div class=\"d-flex justify-content-center w-100 mb-4 px-md-5\" *ngIf=\"data.type === 'view'\">\r\n <button mat-stroked-button class=\"btn button-primary shadow-hover px-4\" matDialogClose>\r\n <!-- {{ 'Close' | transloco}} -->\r\n </button>\r\n <button mat-flat-button class=\"btn button-primary font-17 fw-medium px-4\" (click)=\"openForm()\">\r\n <!-- {{ 'ViewRequest' | transloco}} -->\r\n </button>\r\n </div>\r\n <div class=\"d-flex justify-content-center w-100 mb-4 px-md-5\" *ngIf=\"data.type === 'delete'\">\r\n <button mat-flat-button class=\"btn button-red\" [mat-dialog-close]='true' >\r\n Delete\r\n </button>\r\n <span class=\"mx-2\"></span>\r\n <button mat-flat-button class=\"btn button-primary\" matDialogClose>\r\n Cancel\r\n </button>\r\n </div>\r\n <div class=\"d-flex justify-content-center w-100 mb-4 px-md-5\" *ngIf=\"data.type === 'done'\">\r\n <button mat-flat-button class=\"btn button-primary shadow-hover px-4\" matDialogClose>\r\n Close\r\n </button>\r\n </div>\r\n </mat-dialog-actions>\r\n\r\n</div>\r\n","/* eslint-disable @angular-eslint/component-selector */\r\n/* eslint-disable @typescript-eslint/no-empty-function */\r\nimport {Component, CUSTOM_ELEMENTS_SCHEMA} from '@angular/core';\r\nimport {MatDialogActions, MatDialogClose, MatDialogContent} from \"@angular/material/dialog\";\r\n\r\n@Component({\r\n selector: 'app-delete-popup',\r\n templateUrl: './delete-popup.component.html',\r\n styleUrls: ['./delete-popup.component.scss'],\r\n schemas: [CUSTOM_ELEMENTS_SCHEMA],\r\n standalone: true,\r\n imports: [\r\n MatDialogContent,\r\n MatDialogClose,\r\n MatDialogActions\r\n ]\r\n})\r\nexport class DeletePopupComponent {\r\n\r\n constructor() { }\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 <button class=\"mat-close-modal\" matDialogClose>\r\n <span class=\"sfi sfi-close fc-black\"></span>\r\n </button>\r\n </div>\r\n <mat-dialog-content class=\"border-0 pt-0\">\r\n <div class=\"d-flex flex-column align-items-center justify-content-center\">\r\n <span class=\"sfi sfi-trash font-50 fc-coral mb-2\"></span>\r\n <h2 class=\"fs-31 font-md-25 fw-bold fc-onyx mb-0\">\r\n Are you sure !\r\n </h2>\r\n <h4 class=\"fs-15 fw-normal fc-dark-gray mb-0\">you want Delete This Car</h4>\r\n </div>\r\n </mat-dialog-content>\r\n <mat-dialog-actions>\r\n <div class=\"d-flex justify-content-center w-100 mb-4 px-md-5\">\r\n <button class=\"btn button-secondary font-13 fw-medium h-51 w-100\" matDialogClose>\r\n <span>Cancel</span>\r\n </button>\r\n <span class=\"mx-2\"></span>\r\n <button class=\"btn button-primary font-13 fw-medium h-51 w-100\">\r\n <span>Delete</span>\r\n </button>\r\n </div>\r\n </mat-dialog-actions>\r\n\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@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 ]\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 {DeleteDialogComponent} from './../dialogs/delete-dialog/delete-dialog.component';\r\nimport {NoopScrollStrategy} from '@angular/cdk/overlay';\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 {BaseComponent} from './../form-field/base-component/base-component.component';\r\nimport {Component, CUSTOM_ELEMENTS_SCHEMA, ElementRef, EventEmitter, Input, OnChanges, OnInit, Output, SimpleChanges, ViewChild} from '@angular/core';\r\nimport * as FileSaver from 'file-saver';\r\nimport {DocumentFile} from '../../../interfaces';\r\nimport * as Constants from '../../../constants/constants';\r\nimport {ImageCroppedEvent, ImageCropperComponent, ImageTransform, LoadedImage} from 'ngx-image-cropper';\r\nimport {FormGroup} from '@angular/forms';\r\nimport {NgClass, NgForOf, NgIf, NgTemplateOutlet} from \"@angular/common\";\r\nimport {MatError} from \"@angular/material/form-field\";\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 NgIf,\r\n NgClass,\r\n NgForOf,\r\n ImageCropperComponent,\r\n MatError,\r\n NgTemplateOutlet\r\n ]\r\n})\r\nexport class DocsUploaderComponent extends BaseComponent 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() label = '';\r\n @Input() callApi: boolean;\r\n @Input() tooltip!: string;\r\n @Input() attachments!: any[];\r\n @Input() optional = false;\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 wrongFile = {\r\n mimeType: \"\",\r\n fileContents: \"\",\r\n fileName: 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() 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() downloadActionClicked = new EventEmitter();\r\n @Input() maxSize = '10';\r\n @ViewChild('inputFile') inputFile: ElementRef;\r\n @ViewChild('inputFileName') inputFileName: ElementRef;\r\n\r\n\r\n private 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 validPdfTypes = {\r\n 'pdf': ['application/pdf'],\r\n }\r\n uploading: boolean;\r\n lengthError: boolean;\r\n\r\n scale = 1;\r\n showCropper = false;\r\n containWithinAspectRatio = false;\r\n transform: ImageTransform = {};\r\n imageChangedEvent: any = '';\r\n croppedImage: any = '';\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 ngOnInit(): void {\r\n /* this.resetPropagator.subscribe(this, this.resetAttachmentData);\r\n this.uploadForm = this.fb.group({\r\n file: [''],\r\n name: '',\r\n });*/\r\n }\r\n\r\n resetAttachmentData() {\r\n if (!this.isReadOnly) {\r\n if (this.multiple) {\r\n this.displayedFiles = [];\r\n this.allAttachments = [];\r\n this.emit(this.displayedFiles)\r\n } else {\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 }\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 attch(data: any, index: number, field: any) {\r\n if (data.detail.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 {\r\n if (field && field.attachmentId) {\r\n this.downloadFile(data, field);\r\n } else if (field && field.fileContents) {\r\n this.downloadFileNew(field);\r\n }\r\n }\r\n }\r\n if (data.detail.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 if (event?.target?.files?.length > 0) {\r\n if (this.formKey == 'TSV') {\r\n const input = event.target;\r\n this.selectedTemplateAttachment.emit(input.files[0]) ///// test\r\n }\r\n\r\n const file: File = event.target.files[0];\r\n let fileType\r\n if (file.name !== null && file.name !== undefined && file.name.endsWith(\".msg\")) {\r\n fileType = 'application/vnd.ms-outlook'\r\n }\r\n if (this.accept?.length) {\r\n if (!this.accept.includes(file.type) && !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 // if (this.useCrop) {\r\n // this.fileChangeEvent(event)\r\n // } else {\r\n if (!this.uploading) {\r\n const input = event.target;\r\n if (this.maxSize) {\r\n this.filesize = ((input.files[0].size / 1024) / 1024).toFixed(4); // MB\r\n this.maxSizeValue = this.maxSize;\r\n } else {\r\n this.filesize = ((input.files[0].size / 1024) / 1024).toFixed(4); // MB\r\n this.maxSizeValue = 1;\r\n }\r\n if (+this.filesize < +this.maxSize) {\r\n this.maxSizeFlag = true;\r\n } else {\r\n this.maxSizeFlag = false\r\n }\r\n\r\n if (this.displayedFiles?.length >= +this.maxLength) {\r\n this.lengthError = true;\r\n } else {\r\n this.lengthError = false;\r\n }\r\n\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\r\n if (!this.lengthError) {\r\n if (+this.filesize < +this.maxSize) {\r\n this.allowedFileSize = true;\r\n if (this.useCrop) {\r\n this.imageChangedEvent = event;\r\n }\r\n if (this.validExtension) {\r\n if (this.getDataFromTemplate) {\r\n this.selectedTemplateAttachment.emit(event);\r\n }\r\n const obj = new AttatchmentFile(input.files[0].name, input.files[0].name, input.files[0].type, '', this.filesize);\r\n this.value = new AttatchmentFile(input.files[0].name, input.files[0].name, input.files[0].type, '', this.filesize);\r\n const reader = new FileReader();\r\n reader.onload = () => {\r\n obj.fileContents = (reader.result as string).split(',')[1];\r\n if (this.useCrop) {\r\n obj['replacedBase64'] = obj.fileContents\r\n }\r\n obj.filesize = this.filesize;\r\n if (!this.multiple) {\r\n this.fileNotDuplicated = this.checkFileExistance(obj);\r\n if (!this.fileNotDuplicated) {\r\n return;\r\n }\r\n this.value.fileContents = (reader.result as string).split(',')[1];\r\n this.field = this.value;\r\n if (this.callApi) {\r\n this.addAttachments()\r\n } else {\r\n this.emit(this.field)\r\n this.selectedTemplateAttachment.emit(event);\r\n }\r\n } else {\r\n this.fileNotDuplicated = this.checkFileExistance(obj);\r\n if (this.fileNotDuplicated) {\r\n this.addMultiAttachments(obj)\r\n }\r\n }\r\n };\r\n reader.readAsDataURL(input.files[0]);\r\n } else {\r\n\r\n if (this.multiple) {\r\n return\r\n }\r\n\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 } else {\r\n this.allowedFileSize = false;\r\n }\r\n }\r\n event.target.value = ''\r\n }\r\n // }\r\n }\r\n\r\n fileChangeEvent(event: any): void {\r\n const input = event.target;\r\n this.imageChangedEvent = event;\r\n const obj = new AttatchmentFile(input.files[0].name, input.files[0].name, input.files[0].type, '', this.filesize);\r\n this.value = new AttatchmentFile(input.files[0].name, input.files[0].name, input.files[0].type, '', this.filesize);\r\n const reader = new FileReader();\r\n reader.onload = () => {\r\n obj.fileContents = (reader.result as string).split(',')[1];\r\n obj.filesize = this.filesize;\r\n if (!this.multiple) {\r\n this.fileNotDuplicated = this.checkFileExistance(obj);\r\n if (!this.fileNotDuplicated) {\r\n return;\r\n }\r\n this.value.fileContents = (reader.result as string).split(',')[1];\r\n this.field = this.value;\r\n console.log('this.field', this.value)\r\n if (this.callApi) {\r\n this.addAttachments()\r\n } else {\r\n this.emit(this.field)\r\n this.selectedTemplateAttachment.emit(event);\r\n }\r\n } else {\r\n this.fileNotDuplicated = this.checkFileExistance(obj);\r\n if (this.fileNotDuplicated) {\r\n this.addMultiAttachments(obj)\r\n }\r\n }\r\n };\r\n reader.readAsDataURL(input.files[0]);\r\n this.addAttachments()\r\n }\r\n\r\n addAttachments() {\r\n const data = {\r\n \"fileDescription\": \"\",\r\n \"attachmentcomment\": \"\",\r\n \"fileName\": this.field.fileName,\r\n \"mimeType\": this.field.mimeType,\r\n \"fileContents\": this.field.fileContents,\r\n }\r\n this.uploading = true;\r\n /*this.coreStateMachineService.dispatch('getAttachments', data)\r\n .then((Response: any) => {\r\n this.uploading = false;\r\n if (Response) {\r\n console.log('Response', Response)\r\n const newObj = {\r\n // \"fileDescription\": Response.description,\r\n // \"comments\": Response.comment,\r\n // \"fileContents\": this.field.fileContents,\r\n \"fileName\": Response.attachment.fileName,\r\n \"attachmentId\": Response.attachment.attachmentId,\r\n \"mimeType\": Response.attachment.mimeType\r\n }\r\n this.field = newObj\r\n this.selectedTemplateAttachment.emit(this.field);\r\n this.emit(this.field)\r\n }\r\n });*/\r\n }\r\n\r\n addMultiAttachments(field: any) {\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.coreStateMachineService.dispatch('getAttachments', data)\r\n .then((Response: any) => {\r\n this.uploading = false;\r\n if (Response) {\r\n const newObj = {\r\n \"fileName\": field.fileName,\r\n \"attachmentId\": Response.attachment.attachmentId,\r\n \"mimeType\": field.mimeType\r\n }\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 }\r\n });*/\r\n }\r\n\r\n\r\n checkFileExistance(file: AttatchmentFile): 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.field = this.value = new AttatchmentFile(null, null, null, null, null);\r\n if (this.inputFile) {\r\n this.inputFile.nativeElement.value = null;\r\n }\r\n // this.controller.setValue(this.field);\r\n this.emit(this.value)\r\n this.selectedTemplateAttachment.emit(null);\r\n }\r\n\r\n downloadFile(event, field) {\r\n if (this.downloadLink) {\r\n window.open(field?.attachmentId, '_blank', 'top=0,left=0,height=auto,width=auto');\r\n } else {\r\n const placeholder = event.target.nextElementSibling;\r\n /* this.coreStateMachineService.dispatch(Constants.STATE_MACHINE_ACTION_LOAD_FILE, field.attachmentId).then((responseObject) => {\r\n const fileInformation = responseObject.body;\r\n const fileBlob = this.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 }\r\n }\r\n\r\n printFile(field: any): void {\r\n /* this.coreStateMachineService.dispatch(Constants.STATE_MACHINE_ACTION_LOAD_FILE, field?.attachmentId).then((responseObject) => {\r\n const fileInformation = responseObject.body;\r\n const fileBlob = this.dataURItoBlob(fileInformation.fileContents);\r\n const file = new File([fileBlob], fileInformation.fileName, {type: fileInformation.mimeType});\r\n const win = window.open(URL.createObjectURL(file), '_blank', 'top=0,left=0,height=auto,width=auto');\r\n\r\n win?.focus();\r\n win.addEventListener(\r\n \"load\",\r\n () => {\r\n //to give time for the browser to load the pdf\r\n setTimeout(() => {\r\n win.window.print();\r\n }, 250);\r\n },\r\n true\r\n );\r\n });*/\r\n }\r\n\r\n addSignature(event: Event): void {\r\n const obj = {\r\n type: 'openPopupDialog'\r\n };\r\n this.addSignatureClicked.emit(obj);\r\n event?.stopPropagation();\r\n event?.preventDefault();\r\n }\r\n\r\n printFileData(event: any): void {\r\n this.printActionClicked.emit({event, field: this.field});\r\n }\r\n\r\n downloadFileData(event: any): void {\r\n this.downloadActionClicked.emit({event, field: this.field});\r\n }\r\n\r\n 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 const blob = new Blob([arrayBuffer], {type: 'image/jpeg'});\r\n return blob;\r\n }\r\n\r\n imageCropped(event: ImageCroppedEvent) {\r\n // this.croppedImage = this.sanitizer.bypassSecurityTrustUrl(event.objectUrl);\r\n // this.field.fileContents = event.base64\r\n // this.croppedImage = event.base64\r\n // console.log('-------------------------------', this.croppedImage)\r\n this.croppedImage = event?.base64;\r\n if (this.croppedImage) {\r\n const cropImg = this.croppedImage\r\n const replacedBase64 = cropImg.replace('data:image/png;base64,', '')\r\n this.field['replacedBase64'] = replacedBase64;\r\n this.emit(this.field)\r\n }\r\n\r\n }\r\n\r\n imageLoaded(image: LoadedImage) {\r\n // show cropper\r\n }\r\n\r\n cropperReady() {\r\n // cropper ready\r\n }\r\n\r\n loadImageFailed() {\r\n // show message\r\n }\r\n\r\n\r\n zoomOut() {\r\n console.log('ddddddddddddddddddd')\r\n this.scale -= .1;\r\n this.transform = {\r\n ...this.transform,\r\n scale: this.scale\r\n };\r\n }\r\n\r\n zoomIn() {\r\n this.scale += .1;\r\n this.transform = {\r\n ...this.transform,\r\n scale: this.scale\r\n };\r\n }\r\n\r\n getExtension(attachment: any) {\r\n if (attachment) {\r\n if (attachment.split('.').pop() == 'msg') {\r\n return 'email-icon'\r\n } else if (attachment.split('.').pop() == 'jpeg') {\r\n return 'jpg'\r\n }\r\n return attachment.split('.').pop()\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 this.emitedValue.emit(value);\r\n }\r\n\r\n private deleteFileContents(data: any | 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 AttatchmentFile {\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","<ng-container *ngIf=\"!isReadOnly\">\r\n <div class=\"d-flex justify-content-between mb-1\" *ngIf=\"hasLabel\">\r\n <span class=\"form-label mb-0\">{{label}}</span>\r\n <span *ngIf=\"!required\" class=\"fs-11 fc-dark-gray\">\r\n {{i18n.translate('Optional')}}\r\n </span>\r\n </div>\r\n\r\n\r\n <section [ngClass]=\"insideTable ? 'file-uploader-table' : 'file-uploader'\" class=\" mb-2\"\r\n [class.insideTableStyle]=\"insideTable\">\r\n <div [ngClass]=\"insideTable ? 'file-uploader-table-dev' : ''\" class=\"file-uploader-input\"\r\n (click)=\"fileAttached.click()\">\r\n <div class=\"icon mb-1\" *ngIf=\"!uploading\">\r\n <svg [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 <ds-icon class=\"sfi sfi-spinner d-inline-block spin fc-coral fs-30-imp\" *ngIf=\"uploading\"></ds-icon>\r\n\r\n <div class=\"f-14 fc-black fw-normal\">\r\n <span class=\"fc-coral fw-medium\">{{i18n.translate('browse')}}</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\r\n </section>\r\n\r\n <div class=\"d-flex align-items-center gap-3 mb-3\" *ngIf=\"hints\">\r\n <ng-container *ngFor=\"let hint of hints\">\r\n <div class=\"d-flex align-items-center gap-1 fs-12\">\r\n <ds-icon 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 </div>\r\n\r\n <mat-hint class=\"d-flex align-items-center gap-1\" *ngIf=\"hint\">\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 <section class=\"files-list\" *ngIf=\"multiple\">\r\n <div class=\"file-item-container\" *ngFor=\"let file of displayedFiles;let i = index\">\r\n <ds-attachments [file]=\"file\" (attachmentEvent)=\"attch($event,i,file)\" [showActions]=\"showActions\">\r\n </ds-attachments>\r\n <a href=\"\" class=\"hidden-placeholder\"></a>\r\n <!-- <mat-error class=\"fs-12\">Test error </mat-error> -->\r\n </div>\r\n </section>\r\n\r\n <section class=\"files-list\" *ngIf=\"!multiple && (field?.fileContents || field?.attachmentId) \">\r\n\r\n <!-- {{field | json }} -->\r\n <div class=\"file-item-container file-item-container-actions\">\r\n <ds-attachments [file]=\"field\" (attachmentEvent)=\"attch($event,null,field)\" [showActions]=\"showActions\">\r\n </ds-attachments>\r\n <a href=\"\" class=\"hidden-placeholder\"></a>\r\n <ng-container *ngTemplateOutlet=\"attachmentCustomActions\"></ng-container>\r\n <!-- <mat-error class=\"fs-12\">Test error </mat-error> -->\r\n </div>\r\n\r\n\r\n </section>\r\n\r\n <div class=\"bc-white border d-flex my-3 radius-4\" *ngIf=\"useCrop && imageChangedEvent && field?.fileContents \">\r\n <div class=\"info-section px-md-4\">\r\n <div class=\"d-flex gap-2 mt-2 mx-2 justify-content-end\">\r\n <ds-button square size=\"small\" (click)=\"zoomOut()\" class=\"icon-btn-shadow\">\r\n <ds-icon icon=\"minus\" class=\"fs-20 fs-md-17\"></ds-icon>\r\n </ds-button>\r\n <ds-button square size=\"small\" (click)=\"zoomIn()\" class=\"icon-btn-shadow\">\r\n <ds-icon icon=\"plus\" class=\"fs-20 fs-md-17\"></ds-icon>\r\n </ds-button>\r\n </div>\r\n <div class=\"mb-3 text-center\">\r\n <image-cropper [imageBase64]=\"field.fileContents\" [maintainAspectRatio]=\"true\" [hideResizeSquares]=\"true\"\r\n [aspectRatio]=\"2 / 1\" format=\"png\" (imageCropped)=\"imageCropped($event)\" [output]=\"'base64'\"\r\n [cropperMinWidth]=\"75\" [cropperMinHeight]=\"37\" [transform]=\"transform\"></image-cropper>\r\n </div>\r\n </div>\r\n </div>\r\n\r\n\r\n <!-- <section class=\"files-list\">\r\n\r\n <div class=\"d-flex gap-2 mt-2\">\r\n\r\n <ds-button square size=\"small\" (click)=\"zoomOut()\" class=\"icon-btn-shadow\">\r\n <ds-icon icon=\"minus\" class=\"fs-20 fs-md-17 fc-purple\"></ds-icon>\r\n </ds-button>\r\n <ds-button square size=\"small\" (click)=\"zoomIn()\" class=\"icon-btn-shadow\">\r\n <ds-icon icon=\"plus\" class=\"fs-20 fs-md-17 fc-purple\"></ds-icon>\r\n </ds-button>\r\n\r\n </div>\r\n\r\n\r\n <image-cropper [imageBase64]=\"field.fileContents\" [maintainAspectRatio]=\"true\" [hideResizeSquares]=\"true\"\r\n [aspectRatio]=\"2 / 1\" format=\"png\" (imageCropped)=\"imageCropped($event)\" [output]=\"'base64'\"\r\n [cropperMinWidth]=\"75\" [cropperMinHeight]=\"37\" [transform]=\"transform\"></image-cropper>\r\n </section> -->\r\n\r\n <div class=\"attachments-error\">\r\n\r\n <!-- (!validExtension ) && !multiple -->\r\n\r\n <section class=\"files-list mt-2\" *ngIf=\"(!validExtension )\">\r\n <div class=\"file-item-container \">\r\n <ds-attachments [file]=\"wrongFile\" error [showActions]=\"false\" (attachmentEvent)=\"attch($event,null,field)\">\r\n </ds-attachments>\r\n </div>\r\n </section>\r\n\r\n <mat-error class=\"fs-12 my-2\" *ngIf=\"(!allowedFileSize )\">\r\n {{ maxSize === \"0.3\" ? i18n.translate('support3') : i18n.translate('support2') + maxSize + i18n.translate('mb')}}\r\n </mat-error>\r\n <mat-error class=\"fs-12 my-2\" *ngIf=\"(!fileNotDuplicated)\">{{i18n.translate('duplicated-error')}} </mat-error>\r\n <mat-error class=\"fs-12\" *ngIf=\"(lengthError)\">{{i18n.translate('lengthError')}} :{{maxLength}} </mat-error>\r\n <mat-error class=\"fs-12\" *ngIf=\"(showErrorMessage)\">{{errorMessage}} </mat-error>\r\n\r\n </div>\r\n</ng-container>\r\n\r\n\r\n<ng-container *ngIf=\"isReadOnly\">\r\n <ng-container *ngIf=\"multiple && displayedFiles\">\r\n <div class=\"info-item\">\r\n <span class=\"name\" *ngIf=\"hasLabel\">{{label}}</span>\r\n <span class=\"disc\" *ngIf=\"displayedFiles?.length\">\r\n <div class=\"file-item-container\" *ngFor=\"let file of displayedFiles;let i = index\">\r\n <ds-attachments class=\"my-2\" [file]=\"file\" readOnly (attachmentEvent)=\"downloadFile($event,file)\"\r\n [showActions]=\"showActions\">\r\n <a href=\"\" class=\"hidden-placeholder\"></a>\r\n </ds-attachments>\r\n <a href=\"\" class=\"hidden-placeholder\"></a>\r\n </div>\r\n <a href=\"\" class=\"hidden-placeholder\"></a>\r\n </span>\r\n <span class=\"disc\" *ngIf=\"!displayedFiles?.length\">\r\n {{ i18n.translate('NoAttachments') }}\r\n </span>\r\n </div>\r\n </ng-container>\r\n <ng-container *ngIf=\"!multiple && (field?.attachmentId || field?.fileContents)\">\r\n <div class=\"info-item\">\r\n <span class=\"name\" *ngIf=\"hasLabel\">{{label}}</span>\r\n <div class=\"disc file-item-container file-item-container-actions\" [ngClass]=\"{'insideTableWidth':insideTable}\">\r\n <ds-attachments [matTooltip]=\"field?.fileName\" *ngIf=\"field?.attachmentId || field?.fileContents\" [file]=\"field\" [showActions]=\"showActions\"\r\n (attachmentEvent)=\"attch($event,null,field)\" readOnly>\r\n </ds-attachments>\r\n <a href=\"\" class=\"hidden-placeholder\"></a>\r\n <ng-container *ngTemplateOutlet=\"attachmentCustomActions\"></ng-container>\r\n </div>\r\n </div>\r\n </ng-container>\r\n\r\n</ng-container>\r\n\r\n<ng-template #attachmentCustomActions>\r\n <div class=\"uploaded-file-actions\" *ngIf=\"!disabled\">\r\n <ds-button *ngIf=\"showSignButton\" shape=\"outline\" (click)=\"addSignature($event)\" color=\"red\">\r\n {{signType}}\r\n </ds-button>\r\n <ds-button *ngIf=\"showDownloadButton\" shape=\"outline\" (click)=\"downloadFileData($event)\" color=\"red\">\r\n {{downloadType}}\r\n </ds-button>\r\n <a *ngIf=\"showDownloadButton\" href=\"\" class=\"hidden-placeholder\"></a>\r\n <ds-button *ngIf=\"showPrintButton\" shape=\"outline\" (click)=\"printFileData($event)\" color=\"red\">\r\n {{printType}}\r\n </ds-button>\r\n </div>\r\n</ng-template>\r\n","import { Directive, Injector, Input, OnInit } from '@angular/core';\r\nimport {\r\n ControlValueAccessor,\r\n FormControl,\r\n Validators,\r\n NgControl,\r\n FormControlName,\r\n FormGroupDirective,\r\n FormControlDirective,\r\n} from '@angular/forms';\r\nimport { CoreI18nService } from '../../../services';\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() isReadOnly: boolean;\r\n @Input() labelTextWriteMode: string;\r\n @Input() labelTextReadMode: string;\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\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 = false;\r\n maxLength: any;\r\n\r\n isDisabled = false;\r\n\r\n constructor(private injector: Injector, public i18n: CoreI18nService) {}\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 this.setDateFormControl()\r\n }\r\n\r\n setFormValidators(){\r\n this.required = this.control?.hasValidator(Validators.required) ?? false;\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(currentYear + 1, currentMonth, currentDay - 1);\r\n }\r\n } else if (this.customMaxDate) {\r\n const date = new Date(this.customMaxDate)\r\n this.maxDateValue = new Date(date.getFullYear(), date.getMonth(), date.getDate());\r\n }\r\n\r\n if (this.required) this.control.addValidators(Validators.required)\r\n }\r\n writeValue(value: Type): void {\r\n this.value = value;\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","/* eslint-disable @typescript-eslint/no-empty-function */\r\n/* eslint-disable @angular-eslint/use-lifecycle-interface */\r\n/* eslint-disable @angular-eslint/component-selector */\r\nimport { Component, CUSTOM_ELEMENTS_SCHEMA, EventEmitter, forwardRef, inject, Input, Output } from '@angular/core';\r\nimport {MatCheckbox} from \"@angular/material/checkbox\";\r\nimport {FormsModule, NG_VALUE_ACCESSOR} from \"@angular/forms\";\r\nimport {NgIf} from \"@angular/common\";\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\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 NgIf\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> {\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() name: string;\r\n @Input() randomID: string;\r\n @Input() termsBody: any;\r\n @Output() downloadCheckBox = new EventEmitter();\r\n dialog = inject(MatDialog);\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 class=\"my-3\" [disabled]=\"isDisabled\" id=\"{{name}}{{randomID}}\" [name]=\"name\"\r\n (change)=\"valueChange($event)\" [checked]=\"control.value\">\r\n <span class=\"fs-12 fw-medium fc-onyx\">\r\n {{ isReadOnly ? labelTextReadMode : labelTextWriteMode }}\r\n </span>\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 : i18n.translate('termsAndConditions') }}\r\n </span>\r\n }\r\n @if (link){\r\n <ng-container>\r\n <span> | </span>\r\n <a class=\"fs-12 fw-bold fc-coral cursor-pointer mx-1 d-inline-flex align-items-center gap-1\" href=\"{{hrefLink}}\" 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 \r\n <!-- <a *ngIf=\"containDownload\" style=\"color: blue;\" class=\"fs-12 fw-bold fc-coral cursor-pointer mx-1\" href=\"{{hrefLink}}\" target=\"_top\"> {{termsLabel}}</a> -->\r\n</mat-checkbox>\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\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 NgIf,\r\n DatePipe,\r\n NgClass,\r\n NgForOf,\r\n NgSwitchDefault,\r\n NgSwitch\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!: [];\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 <span class=\"name \" *ngIf=\"hasLabel\">{{ label }}</span>\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 <div class=\"d-flex align-items-center\" *ngIf=\"!multiple\">\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 <ng-container *ngIf=\"multiple\">\r\n <div class=\"d-flex flex-wrap\">\r\n <ng-container *ngFor=\"let emails of arrayList; let ind = index\">\r\n\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\r\n </div>\r\n </ng-container>\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 <span *ngIf=\"dateType === 'hijri'\">\r\n {{ value }}\r\n </span>\r\n <span *ngIf=\"dateType === 'yearOnly'\">\r\n {{ value }}\r\n </span>\r\n <span *ngIf=\"dateType !== 'hijri' && dateType !== 'yearOnly'\">\r\n {{value | date :'dd/MM/yyyy'}}\r\n </span>\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\">{{i18n.translate('View')}} {{ 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 <span *ngFor=\"let item of value;let i = index\">{{item.value}}\r\n <span *ngIf=\"!(i === value.length-1)\">, </span>\r\n </span>\r\n </span>\r\n <span [ngClass]=\"{'breakLine': !insideTable}\" class=\"disc \" [innerHTML]=\"value\" *ngSwitchDefault>\r\n </span>\r\n</ng-container>\r\n","export const RegexPatterns = {\r\n email: '^[a-z0-9._%+-]+@[a-z0-9.-]+\\\\.[a-z]{2,4}$', // Email validation\r\n };","import { CommonModule, NgFor } from '@angular/common';\r\nimport { Component, Input, OnChanges, 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 NgFor,\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 field is required',\r\n maxlength: 'This field max length',\r\n minlength: 'This field min length',\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 }","/* eslint-disable @typescript-eslint/no-this-alias */\r\n/* eslint-disable no-var */\r\nimport {NG_VALUE_ACCESSOR, ReactiveFormsModule} from '@angular/forms';\r\n/* eslint-disable @typescript-eslint/no-explicit-any */\r\n/* eslint-disable @angular-eslint/use-lifecycle-interface */\r\n/* eslint-disable @angular-eslint/component-selector */\r\nimport { Component, Input, Output, EventEmitter, SimpleChanges, CUSTOM_ELEMENTS_SCHEMA, forwardRef, OnInit } from '@angular/core';\r\nimport { FormControl } from '@angular/forms';\r\nimport { MatError, MatFormField, MatFormFieldModule, MatHint} from '@angular/material/form-field';\r\n\r\nimport {InfoItemComponent} from \"../info-item/info-item.component\";\r\nimport {NgClass, NgForOf, NgIf} 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 { ValidationErrorsComponent } from \"../validation-errors/validation-errors.component\";\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 InfoItemComponent,\r\n NgClass,\r\n NgIf,\r\n ReactiveFormsModule,\r\n MatAutocomplete,\r\n MatOption,\r\n MatAutocompleteTrigger,\r\n MatError,\r\n MatHint,\r\n NgForOf,\r\n MatFormField,\r\n MatFormFieldModule,\r\n MatInputModule,\r\n ValidationErrorsComponent\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() name: string ='name';\r\n @Input() displayedLable: string;\r\n @Input() key: string = 'description';\r\n @Input() floatLabel: any = 'auto';\r\n @Input() className = 'bordered-input';\r\n\r\n noData = false;\r\n filteredOptions!: any;\r\n searchControl = new FormControl()\r\n\r\n clearInput() {\r\n this.control.setValue(null)\r\n this.searchControl.setValue(null)\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.setValue(null)\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]});\r\n this.searchControl.setValue(value[this.key]);\r\n }\r\n\r\n}\r\n","<ng-container *ngIf=\"isReadOnly && control?.value\">\r\n <app-info-item class=\"info-item w-100\" [label]=\"label\" [insideTable]=\"insideTable\" [hasLabel]=\"label ? true: false\" [value]=\"control?.value\"></app-info-item>\r\n</ng-container>\r\n\r\n<ng-container *ngIf=\"!isReadOnly\">\r\n <div class=\"d-flex justify-content-between mb-1\" *ngIf=\"label\">\r\n <span class=\"form-label mb-0\">{{label}}</span>\r\n <span *ngIf=\"!required\" class=\"fs-11 fc-dark-gray\">\r\n {{i18n.translate('Optional')}}\r\n </span>\r\n </div>\r\n <mat-form-field class=\"primary-form {{className}}\" [ngClass]=\"{'input-disabled' : (disabled || loading) }\"\r\n [floatLabel]=\"floatLabel\" >\r\n <!-- (click)=\"clearInput()\" -->\r\n <span class=\"sfi sfi-search fc-coral fs-18\" matPrefix></span>\r\n <label class=\"mat-form-content\">\r\n <!-- <bdi> -->\r\n <input #autocompleteInput type=\"text\" (keydown)=\"onKeyDown($event, autocompleteInput)\" [attr.disabled]=\"disabled \" [placeholder]=\"label\" aria-label=\"Number\" matInput\r\n (input)=\"onValueChange($event)\" [formControl]=\"searchControl\"\r\n ngDefaultControl [name]=\"'test'\" [matAutocomplete]=\"auto\" [value]=\"value\" (focusout)=\"onFocusOut()\">\r\n <!-- </bdi> -->\r\n </label>\r\n <span class=\"sfi sfi-spinner d-inline-block spin fc-coral\" matSuffix *ngIf=\"loading\"></span>\r\n <span class=\"sfi sfi-close d-inline-block fc-black cursor-pointer\" (click)=\"clearInput()\" matSuffix\r\n *ngIf=\"!loading && control?.value\"></span>\r\n <mat-autocomplete autoActiveFirstOption #auto=\"matAutocomplete\" [displayWith]=\"displayFn\" \r\n (optionSelected)='getAutoComplete($event.option.value)'>\r\n <ng-container *ngIf=\"!noData\">\r\n <mat-option *ngFor=\"let option of filteredOptions\" [value]=\"option\">\r\n <div class=\"d-flex align-items-center\">\r\n <figure *ngIf=\"option['avatar_url']\" class=\"img-card small circled-img p-0 m-0\">\r\n <img [src]=\"option['avatar_url']\" alt=\"\">\r\n </figure>\r\n <span *ngIf=\"option['avatar_url']\" class=\"mx-2\"></span>\r\n <!-- <bdi> -->\r\n {{option[displayedLable]}}\r\n <!-- </bdi> -->\r\n </div>\r\n </mat-option>\r\n </ng-container>\r\n <ng-container *ngIf=\"noData\">\r\n <mat-option [disabled]=\"true\" class=\"text-center\">No Data</mat-option>\r\n </ng-container>\r\n </mat-autocomplete>\r\n <!-- <mat-error class=\"mb-2\" *ngIf=\"(!control?.valid)\">{{i18n.translate('validSelectError')}}{{label}}\r\n </mat-error> -->\r\n\r\n <mat-hint *ngIf=\"showHint\">\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 </mat-form-field>\r\n <app-validation-errors [errors]=\"control.errors\"></app-validation-errors>\r\n\r\n</ng-container>\r\n","import {FormControl, NG_VALUE_ACCESSOR, ReactiveFormsModule} from '@angular/forms';\r\nimport {\r\n AfterViewInit,\r\n Component,\r\n CUSTOM_ELEMENTS_SCHEMA,\r\n EventEmitter,\r\n forwardRef,\r\n Inject,\r\n Input,\r\n Output,\r\n SimpleChanges,\r\n ViewChild\r\n} from '@angular/core';\r\nimport {DateAdapter, MAT_DATE_FORMATS, MAT_DATE_LOCALE} from '@angular/material/core';\r\nimport {MAT_MOMENT_DATE_ADAPTER_OPTIONS, MomentDateAdapter} from '@angular/material-moment-adapter';\r\nimport {MatDatepicker, MatDatepickerInput, MatDatepickerModule, MatDatepickerToggle} from '@angular/material/datepicker';\r\nimport {CustomDateFormat} from './date-format';\r\nimport {MatFormField, MatFormFieldModule} from \"@angular/material/form-field\";\r\nimport {NgClass, NgIf} from \"@angular/common\";\r\nimport {InfoItemComponent} from \"../info-item/info-item.component\";\r\n// import moment from 'moment'\r\nimport {ControlValueAccessorDirective} from '../control-value-accessor.directive';\r\nimport {MatInput} from '@angular/material/input';\r\nimport {MatIcon} from '@angular/material/icon';\r\nimport {ValidationErrorsComponent} from '../validation-errors/validation-errors.component';\r\nimport {format} from \"date-fns\";\r\n\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\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: DateAdapter,\r\n useClass: MomentDateAdapter,\r\n deps: [MAT_DATE_LOCALE, MAT_MOMENT_DATE_ADAPTER_OPTIONS],\r\n },\r\n {\r\n provide: MAT_DATE_FORMATS,\r\n useClass: CustomDateFormat\r\n },\r\n {\r\n provide: NG_VALUE_ACCESSOR,\r\n useExisting: forwardRef(() => DatePickerComponent),\r\n multi: true,\r\n },\r\n ],\r\n\r\n\r\n imports: [\r\n MatFormFieldModule,\r\n MatDatepickerModule,\r\n MatFormField,\r\n MatInput,\r\n MatIcon,\r\n MatDatepickerToggle,\r\n MatDatepicker,\r\n MatDatepickerInput,\r\n NgClass,\r\n NgIf,\r\n InfoItemComponent,\r\n ReactiveFormsModule,\r\n ValidationErrorsComponent\r\n ]\r\n})\r\nexport class DatePickerComponent<Type> extends ControlValueAccessorDirective<Type> implements AfterViewInit {\r\n date = new FormControl();\r\n @Input() tooltip!: string;\r\n @Input() className!: string;\r\n @Input() calendarType!: string;\r\n @Input() showLabel = true;\r\n @Input() yearOnly: boolean;\r\n @Input() resetDate = false;\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\r\n @Input() set format(_format: string) {\r\n if (_format) {\r\n this.dateFormat.updateDateFormat({dateInput: _format}, {dateInput: _format});\r\n }\r\n }\r\n\r\n @ViewChild(MatDatepicker) datepicker: MatDatepicker<any>;\r\n floatLabel: any = 'auto';\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 if (changes) {\r\n if (this.customMaxDate) {\r\n const date = new Date(this.customMaxDate);\r\n this.maxDateValue = new Date(date.getFullYear(), date.getMonth(), date.getDate());\r\n }\r\n }\r\n if (changes && !this.isReadOnly) { // add min date value for 2 dates validations\r\n if (this.customMinDate) {\r\n const date = new Date(this.customMinDate);\r\n this.minDateValue = new Date(date.getFullYear(), date.getMonth(), date.getDate() + 1);\r\n }\r\n }\r\n }\r\n\r\n\r\n focusPicker(picker) {\r\n picker.open();\r\n }\r\n\r\n\r\n dateChange(event: any) {\r\n if (event?.value && !this.isDisabled) {\r\n let inputValue\r\n inputValue = format(new Date(event.value), \"yyyy-MM-dd'T'HH:mm:ss.SSSxxx\");\r\n this.control.setValue(inputValue)\r\n }\r\n }\r\n\r\n clearDateValue(event): void {\r\n this.control.setValue(null)\r\n }\r\n\r\n private activateYearOnlyMode(): void {\r\n this.dateFormat.updateDateFormat(YEAR_ONLY_FORMAT.parse, YEAR_ONLY_FORMAT.display);\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}\r\n","@if(!isReadOnly){\r\n <ng-container>\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')}} </span>\r\n }\r\n </div>\r\n }\r\n <div class=\"justify-content-between mb-1\">\r\n <mat-form-field [ngClass]=\"{'input-disabled' : isDisabled }\" [floatLabel]=\"floatLabel\">\r\n <label class=\"mat-form-content\">\r\n <input matInput (dateInput)=\"dateChange($event)\" [placeholder]=\"label ? (i18n.translate('select') + ' ' + label) : ''\" (focus)=\"focusPicker(dp)\" [min]=\"minDateValue\"\r\n [max]=\"maxDateValue\" readonly [matDatepicker]=\"dp\" [formControl]=\"control\">\r\n </label>\r\n @if(control?.value){\r\n <ds-icon matSuffix icon=\"close\" class=\"fc-onyx fs-10 mx-2 cursor-pointer\" (click)=\"clearDateValue($event)\"></ds-icon>\r\n }\r\n <mat-datepicker-toggle matSuffix [for]=\"dp\">\r\n <ds-icon icon=\"calendar-o\" class=\"fc-black fs-18\" matDatepickerToggleIcon></ds-icon>\r\n </mat-datepicker-toggle>\r\n <mat-datepicker #dp>\r\n </mat-datepicker>\r\n <!-- <mat-error *ngIf=\"errorMessage\">{{errorMessage}}</mat-error> -->\r\n </mat-form-field>\r\n <app-validation-errors [errors]=\"control.errors\"></app-validation-errors>\r\n </div>\r\n \r\n </ng-container>\r\n}\r\n@if(isReadOnly && control){\r\n <ng-container>\r\n <app-info-item class=\"info-item w-100\" type=\"date\" [insideTable]=\"insideTable\" [dateType]=\"calendarType\" [label]=\"labelTextReadMode\"\r\n [value]=\"control.value\" [hasLabel]=\"label? true: false\">\r\n </app-info-item>\r\n </ng-container>\r\n}\r\n\r\n","/* eslint-disable @angular-eslint/component-selector */\r\n/* eslint-disable @typescript-eslint/no-empty-function */\r\nimport {Component, CUSTOM_ELEMENTS_SCHEMA, forwardRef, Inject, Input, SimpleChanges, ViewChild} from '@angular/core';\r\nimport {ControlValueAccessorDirective} from '../control-value-accessor.directive';\r\nimport {FormControl, NG_VALUE_ACCESSOR, ReactiveFormsModule} from '@angular/forms';\r\nimport {MatFormField, MatFormFieldModule} from '@angular/material/form-field';\r\nimport {MatDatepicker, MatDatepickerInput, MatDatepickerModule, MatDatepickerToggle} from '@angular/material/datepicker';\r\nimport {MatInput} from '@angular/material/input';\r\nimport {MatIcon} from '@angular/material/icon';\r\nimport {NgClass, NgIf} from '@angular/common';\r\nimport {InfoItemComponent} from '../info-item/info-item.component';\r\nimport {DateAdapter, MAT_DATE_FORMATS, MAT_DATE_LOCALE} from '@angular/material/core';\r\nimport {MAT_MOMENT_DATE_ADAPTER_OPTIONS, MomentDateAdapter} from '@angular/material-moment-adapter';\r\nimport {CustomDateFormat} from '../date-picker/date-format';\r\n// import moment from 'moment';\r\nimport {ValidationErrorsComponent} from '../validation-errors/validation-errors.component';\r\nimport {format} from \"date-fns\";\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\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: DateAdapter,\r\n useClass: MomentDateAdapter,\r\n deps: [MAT_DATE_LOCALE, MAT_MOMENT_DATE_ADAPTER_OPTIONS],\r\n },\r\n {\r\n provide: MAT_DATE_FORMATS,\r\n useClass: CustomDateFormat\r\n },\r\n ],\r\n imports: [\r\n MatFormFieldModule,\r\n MatDatepickerModule,\r\n MatFormField,\r\n MatInput,\r\n MatIcon,\r\n MatDatepickerToggle,\r\n MatDatepicker,\r\n MatDatepickerInput,\r\n NgClass,\r\n NgIf,\r\n InfoItemComponent,\r\n ReactiveFormsModule,\r\n ValidationErrorsComponent\r\n ]\r\n\r\n})\r\nexport class DateRangePickerComponent<Type> extends ControlValueAccessorDirective<Type> {\r\n @Input() tooltip! : string;\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 startControl = new FormControl()\r\n endControl = new FormControl();\r\n startInputValue:string\r\n endInputValue:string\r\n dateRange:any\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 if (changes) {\r\n if (this.customMaxDate) {\r\n const date = new Date(this.customMaxDate);\r\n this.maxDateValue = new Date(date.getFullYear(), date.getMonth(), date.getDate());\r\n }\r\n }\r\n if (changes && !this.isReadOnly) { // add min date value for 2 dates validations\r\n if (this.customMinDate) {\r\n const date = new Date(this.customMinDate);\r\n this.minDateValue = new Date(date.getFullYear(), date.getMonth(), date.getDate() + 1);\r\n }\r\n }\r\n }\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 if (this.startControl.value && !this.endControl.value){\r\n this.startInputValue = format(new Date(event.value), \"yyyy-MM-dd'T'HH:mm:ss.SSSxxx\");\r\n // this.startInputValue = moment(event.value).locale('en-US').format(\"YYYY-MM-DDTHH:mm:ss.SSSZ\")\r\n }\r\n if(this.startControl.value && this.endControl.value){\r\n this.endInputValue = format(new Date(event.value), \"yyyy-MM-dd'T'HH:mm:ss.SSSxxx\");\r\n // this.endInputValue = moment(event.value).locale('en-US').format(\"YYYY-MM-DDTHH:mm:ss.SSSZ\")\r\n }\r\n\r\n if(this.endInputValue && this.startInputValue){\r\n this.dateRange = {\r\n startDate: this.startInputValue,\r\n endDate: this.endInputValue\r\n }\r\n }\r\n\r\n if (this.dateRange?.startDate && this.dateRange?.endDate){\r\n this.control.setValue(this.dateRange)\r\n }\r\n }\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.setValue(null);\r\n this.endControl.setValue(null);\r\n this.startControl.setValue(null);\r\n }\r\n\r\n private activateYearOnlyMode(): void {\r\n this.dateFormat.updateDateFormat(YEAR_ONLY_FORMAT.parse, YEAR_ONLY_FORMAT.display);\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(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')}} </span>\r\n }\r\n </div>\r\n}\r\n<mat-form-field class=\"date-range primary-form {{className}}\">\r\n <label class=\"mat-form-content\">\r\n <mat-date-range-input [rangePicker]=\"picker\">\r\n <input matStartDate placeholder=\"Start date\" [formControl]=\"startControl\" [value]=\"value?.startDate ? value?.startDate : null\" (dateInput)=\"dateChange($event)\" (focus)=\"focusPicker(picker)\" [min]=\"minDateValue\"\r\n [max]=\"maxDateValue\">\r\n <input matEndDate placeholder=\"End date\" [formControl]=\"endControl\" [value]=\"value?.endDate ? value?.endDate : null\" (dateInput)=\"dateChange($event)\" (focus)=\"focusPicker(picker)\" [min]=\"minDateValue\"\r\n [max]=\"maxDateValue\">\r\n </mat-date-range-input>\r\n </label>\r\n @if(control?.value){\r\n <ds-icon matSuffix icon=\"close\" class=\"fc-onyx fs-10 mx-2 cursor-pointer\" (click)=\"clearDateValue($event)\"></ds-icon>\r\n }\r\n <mat-datepicker-toggle matSuffix [for]=\"picker\" [disableRipple]=\"true\">\r\n <i class=\"sfi sfi-calendar-o fc-onyx font-18\" matDatepickerToggleIcon></i>\r\n </mat-datepicker-toggle>\r\n <mat-date-range-picker #picker></mat-date-range-picker>\r\n</mat-form-field>\r\n<app-validation-errors [errors]=\"control.errors\"></app-validation-errors>\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\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 ],\r\n standalone: true\r\n})\r\nexport class FormLabelComponent {\r\n @Input() hideOption = true;\r\n @Input() showLabel = true;\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 mb-1\" *ngIf=\"showLabel\">\r\n <span class=\"form-label mb-0\">{{label}}</span>\r\n <span *ngIf=\"optional && !hideOption\" class=\"optional-input\">\r\n {{i18n.translate('optional')}}\r\n </span>\r\n</div>\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","/* 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, ReactiveFormsModule} from '@angular/forms';\r\nimport { Component, CUSTOM_ELEMENTS_SCHEMA, Input, SimpleChanges, EventEmitter, forwardRef } from '@angular/core';\r\nimport {MatError, MatFormField, MatHint} from '@angular/material/form-field';\r\nimport {SatPopoverModule} from \"@ncstate/sat-popover\";\r\nimport {NgClass, NgIf} from \"@angular/common\";\r\nimport {InfoItemComponent} from \"../info-item/info-item.component\";\r\nimport {MatInput} from \"@angular/material/input\";\r\nimport { ControlValueAccessorDirective } from '../control-value-accessor.directive';\r\nimport { ValidationErrorsComponent } from '../validation-errors/validation-errors.component';\r\nimport {EnOnlyDirective} from \"../../../../directives/en.directive\";\r\nimport {ArOnlyDirective} from \"../../../../directives/ar.directive\";\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 SatPopoverModule,\r\n ReactiveFormsModule,\r\n NgIf,\r\n MatError,\r\n MatHint,\r\n NgClass,\r\n InfoItemComponent,\r\n MatFormField,\r\n MatInput,\r\n ValidationErrorsComponent,\r\n EnOnlyDirective,\r\n ArOnlyDirective\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() tooltip!: string;\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\r\n}\r\n","@if(!isReadOnly){\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){<span class=\"fs-11 fc-dark-gray\">{{\r\n i18n.translate(\"Optional\")\r\n }}</span\r\n >} @if(hasTooltip){\r\n <span class=\"form-label mb-0\">\r\n {{ tooltip }}\r\n <ds-icon\r\n icon=\"info fs-22\"\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}\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\"></app-validation-errors>\r\n\r\n} @if(isReadOnly && (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}\r\n\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>\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, ReactiveFormsModule} from '@angular/forms';\r\nimport { Component, CUSTOM_ELEMENTS_SCHEMA, EventEmitter, forwardRef, Input, Output } from '@angular/core';\r\nimport {MatFormField} from '@angular/material/form-field';\r\nimport {NgClass, NgIf} from \"@angular/common\";\r\nimport {NgxMaskDirective} from \"ngx-mask\";\r\nimport {InfoItemComponent} from \"../info-item/info-item.component\";\r\nimport {SatPopoverModule} from \"@ncstate/sat-popover\";\r\nimport {MatInput} from \"@angular/material/input\";\r\nimport { ControlValueAccessorDirective } from '../control-value-accessor.directive';\r\nimport { ValidationErrorsComponent } from '../validation-errors/validation-errors.component';\r\nimport {NumberDirective} from \"../../../../directives/number.directive\";\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 MatFormField,\r\n NgIf,\r\n NgClass,\r\n ReactiveFormsModule,\r\n NgxMaskDirective,\r\n InfoItemComponent,\r\n SatPopoverModule,\r\n MatInput,\r\n NumberDirective,\r\n ValidationErrorsComponent\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() tooltip!: string;\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 @Output() emitedChangedValue = new EventEmitter();\r\n\r\n\r\n // ngAfterViewChecked() {\r\n // this.cdRef.detectChanges();\r\n // }\r\n\r\n}\r\n","@if(!isReadOnly){\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){<span class=\"fs-11 fc-dark-gray\">{{\r\n i18n.translate(\"Optional\")\r\n }}</span\r\n >} @if(hasTooltip){\r\n <span class=\"form-label mb-0\">\r\n {{ tooltip }}\r\n <ds-icon\r\n icon=\"info fs-22\"\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 }\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 && (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 }\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>\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, ReactiveFormsModule} from '@angular/forms';\r\nimport { Component, CUSTOM_ELEMENTS_SCHEMA, forwardRef, Input } from '@angular/core';\r\nimport {MatFormField} from '@angular/material/form-field';\r\nimport {NgClass, NgIf} from \"@angular/common\";\r\nimport {InfoItemComponent} from \"../info-item/info-item.component\";\r\nimport {SatPopoverModule} from \"@ncstate/sat-popover\";\r\nimport { ControlValueAccessorDirective } from '../control-value-accessor.directive';\r\nimport { ValidationErrorsComponent } from '../validation-errors/validation-errors.component';\r\nimport { MatInput } from '@angular/material/input';\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 MatFormField,\r\n NgIf,\r\n InfoItemComponent,\r\n SatPopoverModule,\r\n NgClass,\r\n MatFormField,\r\n MatInput,\r\n ReactiveFormsModule,\r\n ValidationErrorsComponent\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() tooltip!: string;\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 displayErrors(data){\r\n console.log(this.control.errors)\r\n }\r\n}\r\n","@if(!isReadOnly){\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){<span class=\"fs-11 fc-dark-gray\">{{\r\n i18n.translate(\"Optional\")\r\n }}</span\r\n >} @if(hasTooltip){\r\n <span class=\"form-label mb-0\">\r\n {{ tooltip }}\r\n <ds-icon\r\n icon=\"info fs-22\"\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 }\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 && (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 }\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>\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 { Component, CUSTOM_ELEMENTS_SCHEMA, forwardRef, Input, SimpleChanges } 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: [SatPopoverModule, MatFormField, NgxMaskDirective, NgIf, InfoItemComponent, ReactiveFormsModule, NgClass]\r\n})\r\nexport class InputMaskComponent<Type> extends ControlValueAccessorDirective<Type> {\r\n @Input() tooltip!: string;\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]=\"!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){\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","/* eslint-disable @typescript-eslint/no-unused-vars */\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, ReactiveFormsModule} from '@angular/forms';\r\nimport { Component, CUSTOM_ELEMENTS_SCHEMA, forwardRef, Input } from '@angular/core';\r\nimport { MatError, MatFormField, MatHint} from '@angular/material/form-field';\r\nimport {NgClass, NgIf} from \"@angular/common\";\r\nimport {InfoItemComponent} from \"../info-item/info-item.component\";\r\nimport {SatPopoverModule} from \"@ncstate/sat-popover\";\r\nimport { ControlValueAccessorDirective } from '../control-value-accessor.directive';\r\nimport { MatInput } from '@angular/material/input';\r\nimport {MycurrencyPipe} from \"../../../../pipes\";\r\nimport { ValidationErrorsComponent } from '../validation-errors/validation-errors.component';\r\nimport {MycurrencyDirective} from \"../../../../directives/currency.directive\";\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 ReactiveFormsModule,\r\n NgClass,\r\n MatError,\r\n MatHint,\r\n InfoItemComponent,\r\n SatPopoverModule,\r\n MatFormField,\r\n MatInput,\r\n NgIf,\r\n MycurrencyDirective,\r\n ValidationErrorsComponent\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() tooltip!: string;\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 public mycurrencyPipe: MycurrencyPipe\r\n\r\n}\r\n","@if(!isReadOnly){\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){<span class=\"fs-11 fc-dark-gray\">{{\r\n i18n.translate(\"Optional\")\r\n }}</span\r\n >} @if(hasTooltip){\r\n <span class=\"form-label mb-0\">\r\n {{ tooltip }}\r\n <ds-icon\r\n icon=\"info fs-22\"\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 }\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 && (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 }\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>\r\n ","// export * from './input-autocomplete.module';\r\nexport * from './input-autocomplete.model';","import {FormControl, FormsModule, NG_VALUE_ACCESSOR} from '@angular/forms';\r\n/* eslint-disable @typescript-eslint/no-explicit-any */\r\n/* eslint-disable @angular-eslint/component-selector */\r\nimport { Component, Input, Output, EventEmitter, CUSTOM_ELEMENTS_SCHEMA, forwardRef } from '@angular/core';\r\nimport {FloatLabelType, MatError, MatFormField} from \"@angular/material/form-field\";\r\nimport { CoreI18nService } from '../../../../services';\r\nimport {Ng2TelInputModule} from \"ng2-tel-input\";\r\nimport {InfoItemComponent} from \"../info-item/info-item.component\";\r\nimport {NgIf} from \"@angular/common\";\r\nimport { ControlValueAccessorDirective } from '../control-value-accessor.directive';\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 MatFormField,\r\n MatError,\r\n InfoItemComponent,\r\n FormsModule,\r\n NgIf,\r\n // Ng2TelInputModule\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> {\r\n @Input() tooltip!: string;\r\n @Input() floatLabel: any = 'auto';\r\n @Input() className = 'bordered-input';\r\n @Input() showLabel = true;\r\n @Input() matPrefix!: boolean;\r\n @Input() iconPrefixName!: string;\r\n @Input() iconSuffixName!: string;\r\n @Input() field: any;\r\n @Input() name: string;\r\n @Input() controller: FormControl = new FormControl();\r\n @Input() error!: string;\r\n @Output() checkPhoneError = new EventEmitter<boolean>();\r\n @Output() phoneValue = new EventEmitter<string>();\r\n @Output() totalNumber = new EventEmitter<string>();\r\n countryCode = '966';\r\n @Input() showEdit = false;\r\n @Output() inputValue = new EventEmitter();\r\n @Output() emitedValue = new EventEmitter();\r\n telhasError: boolean;\r\n @Output() emitedError = new EventEmitter();\r\n\r\n\r\n\r\n onCountryChange(event: any) {\r\n this.countryCode = event.dialCode\r\n // console.log(event)\r\n }\r\n\r\n hasError(event: boolean) {\r\n console.log(event);\r\n this.telhasError = !event\r\n if (this.telhasError) {\r\n this.emitedError.emit(this.telhasError)\r\n\r\n console.log(\" error\", this.error);\r\n this.controller.setErrors({ 'incorrect': true });\r\n this.error = this.i18n.translate('messageErrorPhoneNumber');\r\n } else {\r\n this.controller.setErrors({ 'incorrect': false });\r\n }\r\n this.emitedValue.emit(\r\n {\r\n field:this.field,\r\n hasError:this.telhasError\r\n }\r\n )\r\n\r\n // this.checkPhoneError.emit(event);\r\n\r\n // if (this.controller.value != null) {\r\n // if (event == false && this.controller.value.length < 0) {\r\n // // this.phoneHasErrReqiured = true;\r\n // // this.phoneHasErrValid = false;\r\n\r\n // this.error = this.translate.translate('messageErrorPhoneNumber');\r\n\r\n // } else {\r\n // if (event == false) {\r\n // if (this.controller.value.length == 0) {\r\n // this.error = this.translate.translate('messageErrorPhoneNumber');\r\n // } else {\r\n // this.error = this.translate.translate('messageErrorPhoneNumber');\r\n // }\r\n // } else {\r\n // if (this.controller.value.length == 0) {\r\n // this.error = this.translate.translate('messageErrorPhoneNumber');\r\n // } else {\r\n // this.error = '';\r\n // }\r\n // }\r\n // }\r\n // } else {\r\n // this.error = this.translate.translate('messageErrorPhoneNumber');\r\n // }\r\n // // console.log(\" this.error\", this.error);\r\n }\r\n\r\n getNumber(event: any) {\r\n console.log('ssssssssssssssssssssssssssssssssssssssssssssssss')\r\n this.phoneValue.emit(this.countryCode)\r\n this.totalNumber.emit(event)\r\n // this.emitedValue.emit(this.field)\r\n this.emitedError.emit(this.telhasError)\r\n }\r\n\r\n telInputObject($event: any) {\r\n console.log(event)\r\n }\r\n\r\n editClicked() {\r\n console.log('xxxxxxxxxxxxxx')\r\n // this.editPhone.emit()\r\n }\r\n\r\n onValueChange(data: any) {\r\n // console.log('xxxxxxxxxxxxxx',this.countryCode,data.target.value)\r\n this.inputValue.emit(data.target.value)\r\n }\r\n\r\n}\r\n","<ng-container *ngIf=\"!isReadOnly\">\r\n <div class=\"d-flex justify-content-between mb-1\" *ngIf=\"showLabel\">\r\n <span class=\"form-label mb-0\">{{label}}</span>\r\n <span *ngIf=\"!required\" class=\"fs-11 fc-dark-gray\"> {{i18n.translate('Optional')}}\r\n </span>\r\n </div>\r\n <mat-form-field style=\"height: 50px;\" class=\"primary-form input-telephone {{className}}\" floatLabel=\"always\">\r\n <mat-label>\r\n {{label}}\r\n </mat-label>\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 </label>\r\n\r\n </mat-form-field>\r\n <mat-error class=\"mb-2 fs-14\" *ngIf=\"controller?.errors?.['incorrect']\">\r\n {{error}}\r\n </mat-error>\r\n <!-- <mat-error *ngIf=\"controller?.errors?.incorrect\" class=\"fc-red1-imp\"> {{error}} </mat-error> -->\r\n\r\n\r\n <!-- <span *ngIf=\"telhasError\"> {{error}}</span> -->\r\n</ng-container>\r\n\r\n\r\n<ng-container *ngIf=\"isReadOnly\">\r\n <app-info-item class=\"info-item w-100\" [type]=\"'telephone'\" [label]=\"label\"\r\n [value]=\"field\"></app-info-item>\r\n</ng-container>\r\n","import { ReactiveFormsModule, Validators } from '@angular/forms';\r\n/* eslint-disable @angular-eslint/use-lifecycle-interface */\r\n/* eslint-disable @angular-eslint/no-output-on-prefix */\r\n/* eslint-disable @typescript-eslint/no-explicit-any */\r\n/* eslint-disable @angular-eslint/component-selector */\r\nimport { BaseComponent } from './../base-component/base-component.component';\r\nimport { Component, CUSTOM_ELEMENTS_SCHEMA, EventEmitter, Input, Output, SimpleChanges } from '@angular/core';\r\nimport { FloatLabelType } from '@angular/material/form-field';\r\nimport * as Constants from '../../../../constants';\r\nimport { NgClass, NgIf } from '@angular/common';\r\nimport { MatAutocompleteModule } from '@angular/material/autocomplete';\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 NgClass,\r\n MatAutocompleteModule,\r\n NgIf,\r\n ReactiveFormsModule\r\n ]\r\n})\r\nexport class SearchEmployeeComponent extends BaseComponent {\r\n @Input() valueName!: string;\r\n @Input() label!: string;\r\n @Input() tooltip!: string;\r\n @Input() className = 'bordered-input';\r\n @Input() showLabel = true;\r\n @Input() optional = false;\r\n @Input() data!: any[];\r\n filteredOptions: any;\r\n // @Input() floatLabel: FloatLabelType = 'auto';\r\n @Input() floatLabel: any = 'auto';\r\n @Input() error!: string;\r\n selectedItems: any[] = new Array<any>();\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 searchingForEmp = false;\r\n @Input() arrayList: any[] = [];\r\n @Input() isUniqueUsers = false;\r\n userAlreadyExist = false;\r\n @Output() emitedDeletedValue = new EventEmitter();\r\n\r\n ngOnInit() {\r\n // this.resetPropagator.subscribe(this, this.resetSearchEmpData);\r\n if (!this.field) {\r\n this.field = {\r\n personEmail: null,\r\n personName: null,\r\n };\r\n } else {\r\n this.controller.setValue(this.field?.personName);\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 }\r\n\r\n ngOnChanges(changes: SimpleChanges) {\r\n if (changes?.['field']) {\r\n if (changes['field']?.currentValue?.personEmail == '' || changes['field']?.currentValue?.personEmail == null) {\r\n this.controller.setValue('')\r\n } else {\r\n this.controller.setValue(changes['field']?.currentValue?.personName)\r\n }\r\n }\r\n if (changes?.['disabled']) {\r\n if (changes['disabled'].currentValue) {\r\n this.controller.disable()\r\n } else {\r\n this.controller.enable()\r\n }\r\n }\r\n }\r\n\r\n resetSearchEmpData() {\r\n if (!this.isReadOnly) {\r\n if (this.multiple) {\r\n this.arrayList = [];\r\n this.field = {\r\n personName: null,\r\n personEmail: null,\r\n };\r\n this.emitedValue.emit([]);\r\n } else {\r\n this.field = {\r\n personName: null,\r\n personEmail: null,\r\n };\r\n this.emitedValue.emit(this.field);\r\n this.controller.setValue(null);\r\n }\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.filteredOptions = this.coreStateMachineService\r\n .dispatch(Constants.STATE_MACHINE_ACTION_SEARCH_EMPLOYEE, input)\r\n ?.then((result: any) => {\r\n this.loading = false;\r\n this.data = result.options;\r\n });*/\r\n } else if (input.length == 0) {\r\n if(this.multiple){\r\n const obj = {\r\n arrayList: this.arrayList,\r\n field: this.field\r\n }\r\n this.emitedValue.emit(obj);\r\n }else{\r\n this.emitedValue.emit(null);\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 this.field = {\r\n personName: object.description,\r\n personEmail: object.email,\r\n job:object.jobPosition,\r\n jobCode:object.jobCode,\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 if (this.multiple) {\r\n if (this.isUniqueUsers && this.arrayList.some((item) => item?.personEmail === object?.email)) {\r\n this.userAlreadyExist = true;\r\n return;\r\n }\r\n\r\n this.arrayList.push(this.field);\r\n const obj = {\r\n arrayList: this.arrayList,\r\n field: this.field\r\n };\r\n this.emitedValue.emit(obj);\r\n // this.emitedValue.emit(this.field);\r\n this.controller.setValue(null);\r\n this.field = {\r\n personEmail: null,\r\n personName: null,\r\n job:null,\r\n jobCode:null\r\n };\r\n } else {\r\n this.emitedValue.emit(this.field);\r\n this.controller.setValue(object.description);\r\n }\r\n }\r\n\r\n openHints() {\r\n // this.sidenavService.publish('open', FaqSidenavComponent, 'end', 'over');\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","<ng-container *ngIf=\"!isReadOnly\">\r\n <div class=\"d-flex justify-content-between mb-1\" *ngIf=\"hasLabel\">\r\n <span class=\"form-label mb-0\">\r\n {{labelTextWriteMode}}\r\n <ds-icon icon=\"info\" class=\"cursor-pointer\" [satPopoverAnchor]=\"searchEmpPopover\"\r\n ></ds-icon>\r\n <!-- (click)=\"searchEmpPopover.toggle(); $event.stopImmediatePropagation()\" -->\r\n </span>\r\n\r\n <span *ngIf=\"optional && !hideOption\" class=\"fs-11 fc-dark-gray\"> {{i18n.translate('Optional')}}\r\n </span>\r\n </div>\r\n <mat-form-field class=\"primary-form {{className}}\" [floatLabel]=\"floatLabel\">\r\n <mat-label>\r\n {{label}}\r\n </mat-label>\r\n <ds-icon matPrefix icon=\"search\" class=\"fc-coral fs-18\"></ds-icon>\r\n <label class=\"mat-form-content\">\r\n <input type=\"text\" aria-label=\"Number\" (input)=\"onLoadOptions($event)\" matInput [disabled]=\"disabled\"\r\n [formControl]=\"controller\" [matAutocomplete]=\"auto\">\r\n \r\n </label>\r\n <mat-error class=\"mb-2\" *ngIf=\"showErrorMessage\">{{errorMessage}}\r\n </mat-error>\r\n <span class=\"sfi sfi-spinner d-inline-block spin fc-coral\" matSuffix *ngIf=\"loading\"></span>\r\n <mat-autocomplete #auto=\"matAutocomplete\">\r\n <mat-option *ngFor=\"let option of data\" [value]=\"option?.['personName']\"\r\n (onSelectionChange)=\"selectOption(option , $event)\">\r\n <div class=\"d-flex align-items-center\">\r\n <div class=\"img-card circled-img small\">\r\n <img [src]=\"getImage(option?.email)\" onerror=\"this.onerror=null;this.src='assets/images/user.svg';\" alt=\"\">\r\n </div>\r\n <span class=\"mx-2\"></span>\r\n <div class=\"line-height-1\">\r\n <h6 class=\"fs-17 fw-medium fc-onyx mb-0 line-height-1\">{{option?.name}}</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 </mat-autocomplete>\r\n <mat-error class=\"mb-2\" *ngIf=\"(!controller?.valid)\">{{i18n.translate('validSearchError')}}{{label}}\r\n </mat-error>\r\n <mat-hint *ngIf=\"showHint\">\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 </mat-form-field>\r\n <mat-error class=\"mb-2\" *ngIf=\"showErrorMessage\">{{errorMessage}}\r\n </mat-error>\r\n\r\n <mat-error class=\"mb-2\" *ngIf=\"userAlreadyExist\">\r\n {{ i18n.translate('userAlreadyExist') }}\r\n </mat-error>\r\n\r\n <div class=\"col-12\" *ngIf=\"arrayList?.length && !isReadOnly && multiple\">\r\n <div class=\"example-list n-results\">\r\n <div class=\"example-box n-col px-3\" [ngClass]=\"{'mt-0': ind === 0}\"\r\n *ngFor=\"let emails of arrayList; let ind = index\">\r\n <div class=\"d-flex flex-grow-1 w-100\">\r\n <div class=\"user-info flex-grow-1\">\r\n <img [src]=\"getImage(emails?.personEmail)\" onerror=\"this.onerror=null;this.src='assets/images/user.svg';\"\r\n alt=\"\" class=\"prof-img\" draggable=\"false\">\r\n <label *ngIf=\"emails?.personName\">\r\n {{(emails?.personName)}}\r\n <span class=\"title\">\r\n {{emails?.personEmail}}\r\n </span>\r\n </label>\r\n </div>\r\n <ds-button class=\"ds-btn-action\" size=\"small\" *ngIf=\"!(isReadOnly)\" (click)=\"deleteRow(ind,emails)\" icon>\r\n <ds-icon icon=\"trash\" class=\"fc-red fs-20\"></ds-icon>\r\n </ds-button>\r\n\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n\r\n</ng-container>\r\n\r\n<ng-container *ngIf=\"(isReadOnly && (field?.personName || multiple))\">\r\n <app-info-item class=\"d-flex flex-wrap align-items-center info-item w-100 mb-2\" type=\"user-picker\" [hasLabel]=\"hasLabel\"\r\n [multiple]=\"multiple\" [ngClass]=\"{'user-picker': !isReadOnly}\" [actionType]=\"!isReadOnly ? 'delete' : 'edit'\"\r\n [label]=\"labelTextReadMode\" [name]=\"field?.personName\" [value]=\"field?.personEmail\" [arrayList]=\"arrayList\">\r\n </app-info-item>\r\n</ng-container>\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>{{i18n.translate('searchEmployeeTooltip_1')}}</li>\r\n <li>{{i18n.translate('searchEmployeeTooltip_2')}}</li>\r\n <li>{{i18n.translate('searchEmployeeTooltip_3')}}</li>\r\n <li>{{i18n.translate('searchEmployeeTooltip_4')}}</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.setValue(null);\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, ReactiveFormsModule} from '@angular/forms';\r\n/* eslint-disable @angular-eslint/component-selector */\r\n/* eslint-disable @angular-eslint/use-lifecycle-interface */\r\nimport {Component, CUSTOM_ELEMENTS_SCHEMA, forwardRef, Input} from '@angular/core';\r\nimport {MatFormField} from \"@angular/material/form-field\";\r\nimport {NgClass, NgIf} from \"@angular/common\";\r\nimport { ControlValueAccessorDirective } from '../control-value-accessor.directive';\r\nimport { MatInput } from '@angular/material/input';\r\nimport { ValidationErrorsComponent } from '../validation-errors/validation-errors.component';\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 MatFormField,\r\n MatInput,\r\n ReactiveFormsModule,\r\n NgIf,\r\n NgClass,\r\n ValidationErrorsComponent\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\r\n\r\n focusInFunction() {\r\n this.validateTextAreaBorder();\r\n }\r\n\r\n focusOutFunction() {\r\n this.validateTextAreaBorder();\r\n }\r\n\r\n validateTextAreaBorder() {\r\n // return {\r\n // \"field-border-error\": (this.field && this.field.length < this.minLength) || (this.field && this.field.length > this.maxLength),\r\n // }\r\n }\r\n}\r\n","@if(!isReadOnly){\r\n <ng-container>\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\">\r\n <!-- {{'Optional'| transloco}} -->{{ i18n.translate('Optional') }}\r\n </span>\r\n }\r\n </div>\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\r\n (focusout)=\"focusOutFunction()\" (focusin)=\"focusInFunction()\" max=\"maxValue\"\r\n [formControl]=\"control\" matInput></textarea>\r\n }\r\n @if (type === 'enOnly'){\r\n <textarea [placeholder]=\"placeholder\" min=\"minlength\" enOnly\r\n (focusout)=\"focusOutFunction()\" (focusin)=\"focusInFunction()\" 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\r\n (focusout)=\"focusOutFunction()\" (focusin)=\"focusInFunction()\" 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 && (showIfEmpty || control)){\r\n <ng-container>\r\n <app-info-item class=\"info-item w-100\" [insideTable]=\"insideTable\" [label]=\"label\" [value]=\"control\" [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","/* eslint-disable @typescript-eslint/no-explicit-any */\r\n/* eslint-disable @angular-eslint/no-output-on-prefix */\r\n/* eslint-disable @angular-eslint/use-lifecycle-interface */\r\n/* eslint-disable @angular-eslint/component-selector */\r\nimport { BaseComponent } from './../base-component/base-component.component';\r\nimport { Component, Input, Output, EventEmitter } from '@angular/core';\r\nimport {MatButtonToggle, MatButtonToggleGroup} from \"@angular/material/button-toggle\";\r\nimport {SatPopoverModule} from \"@ncstate/sat-popover\";\r\nimport {InfoItemComponent} from \"../info-item/info-item.component\";\r\nimport {NgIf} from \"@angular/common\";\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 InfoItemComponent,\r\n NgIf\r\n ],\r\n standalone: true\r\n})\r\nexport class ToggleButtonComponent extends BaseComponent {\r\n @Input() label!: string;\r\n @Input() tooltip!: string;\r\n @Input() className = 'bordered-input';\r\n @Input() showLabel = true;\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\r\n ngOnInit(): void {\r\n // this.resetPropagator.subscribe(this, this.resetKeyValue);\r\n }\r\n\r\n resetKeyValue() {\r\n if (!this.isReadOnly) {\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 emitSelectedValue(event: any): void {\r\n\r\n this.emitedValue.emit({\r\n key: event.value,\r\n value: event.description\r\n });\r\n }\r\n\r\n}\r\n","<ng-container *ngIf=\"!isReadOnly\">\r\n <div class=\"d-flex justify-content-between mb-1\" *ngIf=\"hasLabel\">\r\n <span class=\"form-label mb-0\">{{label}}</span>\r\n <span *ngIf=\"!required\" class=\"fs-11 fc-dark-gray\"> {{i18n.translate('Optional')}}\r\n </span>\r\n </div>\r\n\r\n <mat-button-toggle-group class=\"mb-3 secondary-toggle\" [value]=\"field?.key\" id=\"{{name}}{{randomID}}\"\r\n name=\"{{name}}{{randomID}}\" aria-label=\"Font Style\" *ngIf=\"lov?.options\" [multiple]=\"multiple\">\r\n <mat-button-toggle *ngFor=\"let item of lov?.options\" [value]=\"item?.value\" (click)=\"emitSelectedValue(item); hasHint ? hintSection?.toggle() : null\" [satPopoverAnchor]=\"hintSection\">\r\n <span>\r\n {{item?.description}}\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]=\"i18n.translate(item?.value)\"></p>\r\n </div>\r\n </sat-popover>\r\n </mat-button-toggle>\r\n </mat-button-toggle-group>\r\n\r\n</ng-container>\r\n\r\n<ng-container *ngIf=\"isReadOnly && field?.value\">\r\n <app-info-item class=\"info-item w-100\" [insideTable]=\"insideTable\" [type]=\"'toggleBtn'\" [label]=\"label\" [value]=\"field?.value\"></app-info-item>\r\n</ng-container>\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>","/* 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 { Component, CUSTOM_ELEMENTS_SCHEMA, ElementRef, Input, ViewChild } from '@angular/core';\r\nimport { AttachmentSectionDataComponent } from '../add-attachment-section/add-attachment-section.component';\r\nimport { BaseComponent } from '../base-component/base-component.component';\r\nimport {CdkDrag, CdkDragDrop, CdkDropList, moveItemInArray} from '@angular/cdk/drag-drop';\r\nimport * as Constants from '../../../../constants';\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\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 imports: [\r\n SatPopoverModule,\r\n MatTooltip,\r\n NgIf,\r\n NgClass,\r\n CdkDropList,\r\n DocsUploaderComponent,\r\n CdkDrag,\r\n SlicePipe,\r\n NgForOf\r\n ],\r\n standalone: true\r\n})\r\nexport class AttachmentSectionComponent extends BaseComponent {\r\n @Input() className = 'info-section';\r\n @Input() attachments = [];\r\n @Input() label = '';\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 @ViewChild('placeholder') placeholderElement: ElementRef;\r\n\r\n\r\n ngOnInit(): void {\r\n // this.resetPropagator.subscribe(this, this.resetAttachmentData);\r\n if (this.attachments) {\r\n this.attachments.forEach(element => {\r\n element.name = element.fileName;\r\n });\r\n }\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 // if (this.multiple) {\r\n\r\n // } else {\r\n // const emptyObj = {\r\n // mimeType: \"\",\r\n // fileContents: \"\",\r\n // fileName: \"\",\r\n // }\r\n // this.emitedValue.emit(emptyObj)\r\n // this.emitedValue.emit(this.attachments)\r\n // }\r\n }\r\n }\r\n\r\n handleEmitValue(data: any, fieldName: string) {\r\n this.popupData[fieldName] = data;\r\n }\r\n\r\n addAttahment(): void {\r\n /* this.coreStateMachineService.attachmentListData = null;\r\n const dialogRef = this.dialog.open(AttachmentSectionDataComponent, {\r\n panelClass: ['main-popup', 'add-attachment-dialog'],\r\n data: {\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 dialogRef.afterClosed().subscribe((resultData) => {\r\n if (resultData != 'close') {\r\n if (resultData?.attachmentId) {\r\n this.attachments.push(resultData);\r\n this.emitedValue.emit(this.attachments);\r\n }\r\n }\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.emitedValue.emit(this.attachments);\r\n }\r\n\r\n editRow(rowData, index): void {\r\n /* this.coreStateMachineService.attachmentListData = Object.assign(rowData);\r\n const dialogRef = this.dialog.open(AttachmentSectionDataComponent, {\r\n panelClass: ['main-popup', 'add-attachment-dialog'],\r\n data: {\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 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 }\r\n }\r\n });*/\r\n }\r\n\r\n downloadAllAttachments(event) {\r\n this.attachments.forEach((file) => {\r\n this.downloadFile(event, file);\r\n });\r\n }\r\n\r\n /*downloadFile(event, field) {\r\n const placeholder = event.target.nextElementSibling;\r\n this.coreStateMachineService.dispatch(Constants.STATE_MACHINE_ACTION_LOAD_FILE, field.attachmentId).then((responseObject) => {\r\n const fileInformation = responseObject.body;\r\n const fileBlob = this.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 }*/\r\n\r\n downloadFile(event, field) {\r\n /* this.coreStateMachineService.dispatch(Constants.STATE_MACHINE_ACTION_LOAD_FILE, field.attachmentId).then((responseObject) => {\r\n const fileInformation = responseObject.body;\r\n const fileBlob = this.dataURItoBlob(fileInformation.fileContents);\r\n const file = new File([fileBlob], fileInformation.fileName, { type: fileInformation.mimeType });\r\n this.placeholderElement.nativeElement.href = URL.createObjectURL(file);\r\n this.placeholderElement.nativeElement.download = file.name;\r\n this.placeholderElement.nativeElement.click();\r\n });*/\r\n}\r\n\r\n 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 const blob = new Blob([arrayBuffer], { type: 'image/jpeg' });\r\n return blob;\r\n }\r\n\r\n protected readonly onmouseleave = onmouseleave;\r\n protected readonly isNaN = isNaN;\r\n}\r\n","<div class=\"mt-2 p-0\">\r\n\r\n @if(hasLabel){\r\n <div class=\"d-flex justify-content-between mb-1\">\r\n <span class=\"form-label mb-0\">{{ label }}</span>\r\n </div>\r\n }\r\n \r\n @if(!isReadOnly){\r\n <div style=\"text-align-last: end\">\r\n @if(!required && !hideOption){\r\n <span class=\"fs-11 fc-dark-gray\">\r\n {{ i18n.translate(\"Optional\") }}\r\n </span>\r\n }\r\n </div>\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)=\"addAttahment(); $event.stopPropagation()\"\r\n >\r\n <div\r\n [ngClass]=\"insideTable ? 'file-uploader-table-dev' : ''\"\r\n class=\"file-uploader-input\"\r\n >\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 >\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 />\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 />\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 />\r\n </svg>\r\n </div>\r\n <div class=\"f-14 fc-black fw-normal\">\r\n <span class=\"fc-coral fw-medium\">{{ i18n.translate(\"browse\") }}</span>\r\n </div>\r\n <div class=\"fs-10 fc-dark-gray\">\r\n {{ i18n.translate(\"addMultiAttachments\") }}\r\n </div>\r\n </div>\r\n </section>\r\n }\r\n\r\n <!-- <ds-message class=\"full\" *ngIf=\"!attachments?.length && !isReadOnly\" label=\"{{i18n.translate('NoAttachments')}}\"></ds-message>-->\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>\r\n <thead>\r\n <tr>\r\n @if(downloadAll){\r\n <th>\r\n <ds-button\r\n square\r\n icon\r\n size=\"small\"\r\n (click)=\"downloadAllAttachments($event)\"\r\n class=\"icon-btn-shadow\"\r\n >\r\n <ds-icon\r\n icon=\"download\"\r\n class=\"fs-20 fs-md-17 fc-purple\"\r\n ></ds-icon>\r\n </ds-button>\r\n <a #placeholder></a>\r\n </th>\r\n }\r\n <th class=\"width30\">{{ i18n.translate(\"FileName\") }}</th>\r\n <th>{{ i18n.translate(\"FileDescription\") }}</th>\r\n <th>{{ i18n.translate(\"comment\") }}</th>\r\n @if(!isReadOnly){\r\n <th></th>\r\n }\r\n </tr>\r\n </thead>\r\n <tbody>\r\n <tr\r\n *ngFor=\"let data of attachments; index as i\"\r\n cdkDrag\r\n [cdkDragDisabled]=\"\r\n attachments?.length == 0 || (!isSortable && !isReadOnly)\r\n \"\r\n >\r\n @if(downloadAll){\r\n <td>{{ i + 1 }}</td>\r\n }\r\n <td>\r\n <app-file-uploader\r\n [allowedExtensions]=\"allowedExtensions\"\r\n class=\"white-attached\"\r\n [field]=\"data\"\r\n name=\"attachment\"\r\n [hasLabel]=\"false\"\r\n [showActions]=\"true\"\r\n [isReadOnly]=\"true\"\r\n >\r\n </app-file-uploader>\r\n </td>\r\n <td class=\"maxWidth px-2\">\r\n <!-- (mouseover)=\"isSortable ? fileDescriptionAnchor.popover.open():$event.stopPropagation();\"-->\r\n <a\r\n class=\"fw-medium fc-black underline cursor-pointer fs-12\"\r\n [hidden]=\"!data?.fileDescription\"\r\n (click)=\"\r\n $event.stopPropagation(); fileDescriptionAnchor.popover.open()\r\n \"\r\n [satPopoverAnchor]=\"fileDescriptionPopover\"\r\n #fileDescriptionAnchor=\"satPopoverAnchor\"\r\n [matTooltip]=\"data?.fileDescription\"\r\n >\r\n {{ data?.fileDescription | slice : 0 : 10 }}....\r\n </a>\r\n <!-- {{ i18n.translate('View') }}-->\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 >\r\n <div\r\n class=\"default-popover p-3 fs-14 text-break view-note-popover\"\r\n >\r\n <bdi class=\"fc-black\">\r\n {{ data?.fileDescription }}\r\n </bdi>\r\n </div>\r\n </sat-popover>\r\n </td>\r\n <td class=\"maxWidth px-2\">\r\n <!-- (mouseover)=\"isSortable ? commentsAnchor.popover.open():$event.stopPropagation();\"-->\r\n <a\r\n class=\"fw-medium fc-black underline cursor-pointer fs-12\"\r\n [hidden]=\"!data?.attachmentcomment\"\r\n (click)=\"$event.stopPropagation(); commentsAnchor.popover.open()\"\r\n [satPopoverAnchor]=\"commentsPopover\"\r\n [matTooltip]=\"data?.attachmentcomment\"\r\n #commentsAnchor=\"satPopoverAnchor\"\r\n >\r\n {{ data?.attachmentcomment | slice : 0 : 10 }}...\r\n </a>\r\n <!-- {{ i18n.translate('View') }}-->\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 >\r\n <div\r\n class=\"default-popover p-3 fs-14 text-break view-note-popover\"\r\n >\r\n <bdi class=\"fc-black\">\r\n {{ data?.attachmentcomment }}\r\n </bdi>\r\n </div>\r\n </sat-popover>\r\n </td>\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, data)\"\r\n class=\"icon-btn-shadow\"\r\n >\r\n <ds-icon icon=\"trash\" class=\"fs-20 fs-md-17 fc-red\"></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(data, i)\"\r\n class=\"icon-btn-shadow\"\r\n >\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 </tr>\r\n </tbody>\r\n </table>\r\n</div>\r\n }\r\n\r\n @if(!isReadOnly && attachments?.length && attachments?.length < attachmentsMax){\r\n <div\r\n class=\"text-center full mt-3\"\r\n>\r\n <ds-button\r\n shape=\"{{ attachments?.length ? 'outline' : '' }}\"\r\n [ngClass]=\"{ 'full-add-btn w-100': attachments?.length }\"\r\n (click)=\"addAttahment(); $event.stopPropagation()\"\r\n >\r\n <ds-icon slot=\"prefix\" icon=\"plus\" class=\"fs-22\"></ds-icon>\r\n {{ i18n.translate(\"addAttachments\") }}\r\n </ds-button>\r\n</div>\r\n }\r\n \r\n</div>\r\n","import { Component, CUSTOM_ELEMENTS_SCHEMA, Input } from '@angular/core';\r\nimport { TextareaComponent } from '../textarea/textarea.component';\r\nimport { BaseComponent } from '../base-component/base-component.component';\r\nimport {MatDialogActions, MatDialogContent} from \"@angular/material/dialog\";\r\nimport {DocsUploaderComponent} from \"../../doc-uploader/docs-uploader.component\";\r\nimport {NgIf} from \"@angular/common\";\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: [TextareaComponent, MatDialogContent, DocsUploaderComponent, MatDialogActions, NgIf]\r\n})\r\nexport class AttachmentSectionDataComponent extends BaseComponent {\r\n popupData: any = {};\r\n popupDataOrg: any = {};\r\n uploading: boolean;\r\n editMode: boolean;\r\n @Input() hasColumnBreak: boolean;\r\n\r\n ngOnInit() {\r\n /*if (this.coreStateMachineService?.attachmentListData) {\r\n this.popupData = this.coreStateMachineService.attachmentListData\r\n this.popupDataOrg = Object.assign({} , this.popupData) ///// ibrahim solve isse related to discard data whenn click close\r\n this.editMode = true;\r\n }\r\n if(this.dialogData){\r\n console.log(this.dialogData);\r\n\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.popupData?.fileDescription,\r\n \"attachmentcomment\": this.popupData?.attachmentcomment,\r\n \"fileComments\": this.popupData?.attachmentcomment,\r\n \"fileName\": this.popupData?.fileName,\r\n \"mimeType\": this.popupData?.mimeType,\r\n \"fileContents\": this.popupData?.fileContents,\r\n }\r\n this.uploading = true;\r\n /*this.coreStateMachineService.dispatch('getAttachments', data)\r\n .then((Response: any) => {\r\n this.uploading = false;\r\n if (Response) {\r\n this.coreStateMachineService.attachmentListData = null\r\n const newObj = {\r\n \"fileDescription\": this.popupData?.fileDescription,\r\n \"attachmentcomment\": this.popupData?.attachmentcomment,\r\n \"fileComments\": this.popupData?.attachmentcomment,\r\n \"fileName\": this.popupData?.fileName,\r\n \"attachmentId\": Response.attachment.attachmentId,\r\n \"mimeType\": this.popupData?.mimeType\r\n }\r\n this.dialogRef.close(newObj);\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-end\" mat-dialog-title>\r\n <h3 class=\"mb-0 font-16 fw-medium\">{{i18n.translate('addAttachments')}}</h3>\r\n <ds-button (click)=\"close()\" 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 mt-3\">\r\n <!-- add [callApi]=\"true\" input mobile issue not able to download it by base 64 -->\r\n\r\n <app-file-uploader class=\"section-item full\" [field]=\"popupData\" name=\"file\" [attachments]=\"dialogData?.attachments\"\r\n [labelTextReadMode]=\"i18n.translate('Attachment')\" [labelTextWriteMode]=\"i18n.translate('Attachment')\"\r\n [hasColumnBreak]=\"false\" [label]=\"i18n.translate('Attachment')\" [required]=\"true\" [multiple]=\"dialogData?.multiple\" [allowedExtensions]=\"dialogData?.data\"\r\n [isReadOnly]=\"section?.header?.readOnly\" [showActions]=\"false\" (emitedValue)=\"handleAttachmentEmitValue($event)\"\r\n >\r\n </app-file-uploader>\r\n\r\n <app-textarea class=\"section-item d-block mt-4\" [section]=\"section\" [field]=\"popupData?.fileDescription\" name=\"fileDescription\"\r\n [labelTextReadMode]=\"i18n.translate('description')\" [labelTextWriteMode]=\"i18n.translate('description')\"\r\n [hasColumnBreak]=\"false\" (emitedValue)=\"handleEmitValue($event,'fileDescription')\"\r\n [label]=\"i18n.translate('description')\" [required]=\"dialogData.isRequired\" [minLength]='1' [maxLength]='500'\r\n [isReadOnly]=\"section?.header?.readOnly\" [errorMessage]=\"i18n.translate('lenghtMin1Max500')\">\r\n </app-textarea>\r\n\r\n <app-textarea class=\"section-item\" [section]=\"section\" [field]=\"popupData?.attachmentcomment\" name=\"attachmentcomment\"\r\n [labelTextReadMode]=\"i18n.translate('comments')\" [labelTextWriteMode]=\"i18n.translate('comments')\"\r\n [hasColumnBreak]=\"false\" (emitedValue)=\"handleEmitValue($event,'attachmentcomment')\" [label]=\"i18n.translate('comments')\"\r\n [required]=\"false\" [minLength]='1' [maxLength]='500' [isReadOnly]=\"section?.header?.readOnly\"\r\n [errorMessage]=\"i18n.translate('lenghtMin1Max500')\">\r\n </app-textarea>\r\n\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\" (click)=\"close()\" [disabled]=\"(uploading)\" color=\"red\">{{i18n.translate('cancel')}}\r\n </ds-button>\r\n <ds-button (click)=\"addAttachments()\" [loading]=\"uploading\"\r\n [disabled]=\"(!(popupData?.fileContents || popupData?.attachmentId ) ||( dialogData.isRequired && !popupData?.fileDescription )|| uploading)\">\r\n @if(!editMode){\r\n <span>{{i18n.translate('add')}}</span>\r\n }\r\n @if(editMode){\r\n <span>{{i18n.translate('edit')}}</span>\r\n }\r\n\r\n </ds-button>\r\n </mat-dialog-actions>\r\n\r\n</div>\r\n","/* eslint-disable @typescript-eslint/no-empty-function */\r\n/* eslint-disable @angular-eslint/use-lifecycle-interface */\r\n/* eslint-disable @angular-eslint/component-selector */\r\nimport { Component, CUSTOM_ELEMENTS_SCHEMA } from '@angular/core';\r\nimport { BaseComponent } from '../base-component/base-component.component';\r\nimport {MatRadioButton, MatRadioChange, MatRadioGroup} from '@angular/material/radio';\r\nimport {FormsModule} from \"@angular/forms\";\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 ]\r\n})\r\nexport class RadioComponent extends BaseComponent {\r\n\r\n ngOnInit(): void {\r\n this.value = this.field ? JSON.parse(this.field) : false;\r\n // this.resetPropagator.subscribe(this, this.resetCheckBoxData);\r\n }\r\n\r\n resetCheckBoxData() {\r\n if (!this.isReadOnly) {\r\n this.emitedValue.emit('false')\r\n this.value = false;\r\n }\r\n }\r\n\r\n valueChange(event: MatRadioChange) {\r\n const checked = event.source.checked;\r\n this.value = checked;\r\n this.field = (checked).toString();\r\n this.emitedValue.emit(this.field)\r\n }\r\n\r\n\r\n}\r\n","<mat-radio-group aria-label=\"Select an option\" [(ngModel)]=\"value\">\r\n\r\n <mat-radio-button class=\"m-3\" [disabled]=\"isReadOnly || disabled\" id=\"{{name}}{{randomID}}\"\r\n name=\"{{name}}{{randomID}}\" (change)=\"valueChange($event)\" [checked]=\"field\">\r\n <span class=\"fs-12 fw-medium fc-onyx\">\r\n {{isReadOnly ? labelTextReadMode : labelTextWriteMode}}\r\n </span>\r\n </mat-radio-button>\r\n\r\n</mat-radio-group>\r\n\r\n<!-- <mat-radio-group aria-label=\"Select an option\">\r\n <mat-radio-button value=\"1\">Option 1</mat-radio-button>\r\n <mat-radio-button value=\"2\">Option 2</mat-radio-button>\r\n</mat-radio-group> -->\r\n","import {Component, CUSTOM_ELEMENTS_SCHEMA} from '@angular/core';\r\nimport {CoreI18nService, CoreService, SidenavService} from '../../../services';\r\nimport {NgIf} from '@angular/common';\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 NgIf\r\n ]\r\n})\r\nexport class ApprovalsComponent {\r\n\r\n constructor(private 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\r\n <div class=\"sidenav-title\">\r\n <h3>{{ i18n.translate('approvalcycle') }}</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 p-4\">\r\n <ds-approvals *ngIf=\"coreService.approvals\" approvalsData=\"{{coreService.approvals}}\"></ds-approvals>\r\n <ds-message *ngIf=\"!coreService.approvals\" label=\"{{i18n.translate('NoData2')}}\"></ds-message>\r\n </div>\r\n</section>\r\n","import {Component, CUSTOM_ELEMENTS_SCHEMA, 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 {NgIf} from \"@angular/common\";\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 NgIf\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\r\n constructor(\r\n public i18n: CoreI18nService,\r\n private sidenavService: SidenavService,\r\n private coreService: CoreService,\r\n private toasterService: ToastrService\r\n ) { }\r\n\r\n getApproves() {\r\n if (!this.loading) {\r\n this.approvals = [];\r\n this.loading = true;\r\n this.coreService.prespectiveApprovers(this.section.body.details).subscribe(\r\n (response: any) => {\r\n this.loading = false;\r\n if (response) {\r\n const resultData = [];\r\n for (let index = 0; index < response['approvals'].length; index++) {\r\n const element = response['approvals'][index];\r\n const stageDetails = this.form.sections.find((stage) => {\r\n return stage.id == ((element?.role)?.toLowerCase() + 'Approval');\r\n });\r\n const obj = {\r\n id: 1,\r\n name: element.value,\r\n // title: element.role ? this.i18n.translate((element?.role).toLowerCase() + 'Role') : '',\r\n title: element.key,\r\n image: '/group/i-gate/wm-bpm/forms/-/proxy/portrait?email=' + element.key,\r\n status: stageDetails ? this.statusClass(stageDetails.header.status) : '',\r\n statusLabel: stageDetails ? this.statusClass(stageDetails.header.status) : ''\r\n // status: '',\r\n // statusLabel: ''\r\n };\r\n resultData.push(obj);\r\n }\r\n this.approvals = resultData;\r\n this.showProspectiveApprovals();\r\n }\r\n },\r\n (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 }\r\n }\r\n\r\n statusClass(status: string) {\r\n if (!status) {\r\n return 'success';\r\n } else {\r\n if (\r\n status === Constants.FORM_STATUS_REJECTED || status === Constants.FORM_STATUS_CANCELLED\r\n || status?.toLowerCase().includes('deny')\r\n || status?.toLowerCase().includes('reject')\r\n || status?.toLowerCase() === 'reject' || status?.toLowerCase() === 'unsatisfied' || status?.toLowerCase() === 'cancel'\r\n ) {\r\n return 'danger';\r\n } else if (status === Constants.FORM_STATUS_PENDING || status?.toLowerCase() === 'pending') {\r\n return 'warning';\r\n } else {\r\n return 'success';\r\n }\r\n }\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)=\"getApproves()\">\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 {AfterViewInit, ChangeDetectorRef, Component, CUSTOM_ELEMENTS_SCHEMA, EventEmitter, Input, NO_ERRORS_SCHEMA, Output} 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\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\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 private sidenavService: SidenavService\r\n ) {\r\n this.actionStateService.actionStates$.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).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\nimport {NgForOf, NgIf} from \"@angular/common\";\r\n\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, effect, 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/feedBack.service\";\r\nimport {MY_LIB_CONFIG_TOKEN} from \"../../../../public-api\";\r\nimport {environment} from \"../../../environments/environment.local\";\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/* providers: [\r\n FeedBackService,\r\n {\r\n provide: MY_LIB_CONFIG_TOKEN,\r\n useValue: environment\r\n }\r\n ]*/\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\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).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}).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}).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} from '@angular/core';\r\nimport {CoreI18nService, CoreService, SidenavService} from '../../../services';\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\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 this.coreService.loadFile(event.detail.value.id).then((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 }\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 {Component, CUSTOM_ELEMENTS_SCHEMA, 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 {ReactiveFormsModule} from \"@angular/forms\";\r\nimport {MatButtonToggleModule} from \"@angular/material/button-toggle\";\r\nimport {Router, 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\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\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 {\r\n previousRequests: any[] = []\r\n loading: boolean\r\n router: Router = inject(Router)\r\n totalLength: number\r\n\r\n constructor(public dialog: MatDialog,\r\n public readonly sidenavService: SidenavService,\r\n public coreService: CoreService,\r\n public i18n: CoreI18nService\r\n ) {}\r\n\r\n ngOnInit() {\r\n\r\n }\r\n\r\n ngAfterViewInit() {\r\n this.getRequests()\r\n }\r\n\r\n getRequests() {\r\n let searchData = {\r\n year: new Date().getFullYear(),\r\n month: \"\"\r\n }\r\n this.coreService.myRequests(searchData).subscribe((response: any) => {\r\n if (response) {\r\n this.previousRequests = (response.history);\r\n }\r\n });\r\n }\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}\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\r\n class=\"sidenav-body bc-light-gray\"\r\n >\r\n <section class=\"p-3\">\r\n <!-- <app-request-statistics class=\"d-block mb-4\"></app-request-statistics>-->\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 <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 <div class=\"history-cards-container\" *ngIf=\"pageView.value === 'card'\">\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 </div>\r\n\r\n <div class=\"table-responsive\" *ngIf=\"pageView.value === 'list'\">\r\n <table *ngIf=\"previousRequests?.length\">\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 <ds-message *ngIf=\"!previousRequests?.length && !loading\" type=\"emptyList\" [label]=\"i18n.translate('noData') \"></ds-message>\r\n </section>\r\n\r\n </div>\r\n</section>\r\n","import {AfterViewInit, ChangeDetectorRef, Component, CUSTOM_ELEMENTS_SCHEMA, 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\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() 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 public feedBackIcon: string = null;\r\n flagPriority: string;\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).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 <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 <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 <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 </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, 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\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\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'];\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).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 [expanded]=\"isExpanded || (form?.sections?.length === 1 )\" class=\"mb-3\" hideToggle #requestPanel=\"matExpansionPanel\">\r\n <mat-expansion-panel-header>\r\n <h2 class=\"fs-16 fw-medium fc-coral m-0 flex-grow-1\">{{ i18n.translate('requestDetailsTitle') }}</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\">\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, EventEmitter, 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\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\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.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\">\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/core.service.ts\";\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 ngAfterViewInit() {\r\n setTimeout(() => {\r\n console.log('xx', this.coreService.loggedInUserData)\r\n }, 1000);\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\r\n openDemandRequest() {\r\n // this.sidenavService.publish('open', DemandRequestComponent, 'end', 'over');\r\n }\r\n\r\n openTicket() {\r\n // this.sidenavService.publish('open', OpenTicketComponent, 'end', 'over');\r\n }\r\n\r\n openEService() {\r\n // this.sidenavService.publish('open', VhrComponent, 'end', 'over');\r\n }\r\n\r\n // goToAdmin() {\r\n // this.router.navigate(['/admin']);\r\n // }\r\n\r\n\r\n openApp(url: string) {\r\n window.open(url, '_blank')?.focus();\r\n }\r\n\r\n ngOnDestroy() {\r\n // this.sidenavSubscription.unsubscribe()\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() 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]=\"form?.header?.status?.key == 'NEW' ? '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, 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} from \"../../components/shared-components/action-buttons/action-buttons.component\";\r\nimport {FormBuilder, FormGroup, ReactiveFormsModule, Validators, FormControl} from \"@angular/forms\";\r\nimport { CheckBoxComponent, CustomSearchableComponent, DatePickerComponent, DateRangePickerComponent, InputComponent, InputCurrencyComponent, InputEmailComponent, InputNumberComponent, SelectComponent, TextareaComponent } from '../../components/shared-components';\r\nimport { ValidationErrorsComponent } from '../../components/shared-components/form-field/validation-errors/validation-errors.component';\r\nimport { RegexPatterns } from '../../regex/regex-patterns';\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 NgIf,\r\n NgForOf,\r\n ActionButtonsComponent,\r\n ReactiveFormsModule,\r\n ValidationErrorsComponent,\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 ]\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 @Input() className: string = \"info-section\";\r\n // fieldsForm: FormGroup;\r\n\r\n currentSectionId: string;\r\n lastSectionId: string;\r\n formGroup: FormGroup\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 }\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('', [Validators.required, Validators.maxLength(3), Validators.minLength(2)]),\r\n currencyInput: new FormControl('', Validators.required),\r\n emailInput: new FormControl('', [Validators.required, Validators.pattern(RegexPatterns.email)]),\r\n numberInput: new FormControl('', [Validators.required]),\r\n customSearchable: new FormControl('', Validators.required),\r\n checkbox: new FormControl(true, Validators.requiredTrue),\r\n textArea: new FormControl('', [Validators.required, Validators.maxLength(10), Validators.minLength(5)]),\r\n datePicker: new FormControl('', Validators.required),\r\n datePickerRange: new FormControl('', Validators.required),\r\n ...newForm,\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\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 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.formGroup.reset()\r\n }\r\n\r\n}\r\n","<div\r\n [ngClass]=\"{'form-section-divide form-section':!section?.header?.readOnly,'info-section':section?.header?.readOnly}\">\r\n<form [formGroup]=\"formGroup\">\r\n <app-input [loading]=\"true\" type=\"enOnly\" formControlName=\"input\" label=\"Input\" class=\"section-item\"></app-input>\r\n <app-input-currency formControlName=\"currencyInput\" label=\"currency\"></app-input-currency>\r\n <app-input-email formControlName=\"emailInput\" label=\"email\"></app-input-email>\r\n <app-input-number formControlName=\"numberInput\" label=\"number\"></app-input-number>\r\n <app-custom-searchable class=\"section-item\" formControlName=\"customSearchable\" label=\"Custom-searchable\" [options]=\"lov?.['approverActions']?.options\" [displayedLable]=\"'name'\"\r\n [key]=\"'name'\"\r\n ></app-custom-searchable>\r\n <app-checkbox formControlName=\"checkbox\" termsLabel=\"Terms and condtions\" [containTerms]=\"true\"></app-checkbox>\r\n <app-textarea formControlName=\"textArea\" label=\"Text-area\"></app-textarea>\r\n <app-datepicker formControlName=\"datePicker\" [matSuffix]=\"true\" label=\"Date-picker\" minDate=\"today\" maxDate=\"today\"></app-datepicker>\r\n <app-date-range-picker formControlName=\"datePickerRange\" label=\"Date-picker-range\" [matSuffix]=\"true\" minDate=\"today\" minDate=\"today\" maxDate=\"today\"></app-date-range-picker>\r\n <app-input formControlName=\"input1\"></app-input>\r\n</form>\r\n<ds-button\r\n(click)=\"formValue(formGroup)\"\r\n[ngClass]=\"{'disabled': !formGroup.valid}\"\r\n>\r\n{{ i18n.translate('submit') }}\r\n</ds-button>\r\n <ds-alert class=\"full\" type=\"warning\" icon=\"info\">\r\n <div class=\"d-flex gap-2\">\r\n Request details working fine\r\n </div>\r\n </ds-alert>\r\n <!-- <form [formGroup]=\"fieldsForm\">\r\n <app-input formControlName=\"input1\" ></app-input>\r\n </form> -->\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, 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} 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\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 ]\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\r\n formGroup = new FormGroup({\r\n name: new FormControl('', [Validators.required, Validators.maxLength(3), Validators.minLength(2)]),\r\n countries: new FormControl('', Validators.required),\r\n });\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 }\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.fieldsForm = this.fb.group(newForm);\r\n\r\n const checkValidityAndUpdate = () => {\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.fieldsForm.value\r\n });\r\n }\r\n\r\n checkValidityAndUpdate();\r\n\r\n this.fieldsForm.valueChanges.subscribe(() => {\r\n checkValidityAndUpdate();\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 [ngClass]=\"{'form-section-divide form-section':!section?.header?.readOnly,'info-section':section?.header?.readOnly}\">\r\n\r\n <ds-alert class=\"full\" type=\"warning\" icon=\"info\">\r\n\r\n <div class=\"d-flex gap-2\">\r\n\r\n Request details working fine\r\n\r\n </div>\r\n\r\n </ds-alert>\r\n\r\n <form [formGroup]=\"fieldsForm\">\r\n <app-input formControlName=\"input1\"></app-input>\r\n </form>\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]=\"fieldsForm\"\r\n (customCallEmit)=\"customCallSubmit($event)\"\r\n (resetFormEmit)=\"resetForm()\"\r\n />\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 }\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 {Component, CUSTOM_ELEMENTS_SCHEMA, Inject, NO_ERRORS_SCHEMA} from '@angular/core';\r\nimport {LayoutComponent, ServiceHeaderComponent, WorkflowSectionComponent} from \"../components/app-component-sections\";\r\nimport {DOCUMENT} 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\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 ],\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 {\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 coreService: CoreService\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}\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 [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=\"{{i18n.translate('errorOccurred')}}\"></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\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","i5","i6.MycurrencyPipe","YEAR_ONLY_FORMAT","i1.MycurrencyPipe","MatOption","MatError","MatFormField","i1.SidenavService","Constants.FORM_STATUS_REJECTED","Constants.FORM_STATUS_CANCELLED","Constants.FORM_STATUS_PENDING","constants.FORM_STATUS_REJECT","constants.FORM_STATUS_CANCEL","i1.ActionStateService","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","i4","en.default","ar.default","Constants.SECTION_ID_REQUEST_DETAILS","Constants.SECTION_ID_APPROVAL_PARTIAL_NAME","i1.I18nService","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/confirmation-popup/confirmation-popup.component.ts","../../../projects/bpm-core/src/lib/components/shared-components/confirmation-popup/confirmation-popup.component.html","../../../projects/bpm-core/src/lib/components/shared-components/delete-popup/delete-popup.component.ts","../../../projects/bpm-core/src/lib/components/shared-components/delete-popup/delete-popup.component.html","../../../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/doc-uploader/docs-uploader.component.ts","../../../projects/bpm-core/src/lib/components/shared-components/doc-uploader/docs-uploader.component.html","../../../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/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/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/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/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/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/directives/en.directive.ts","../../../projects/bpm-core/src/lib/directives/ar.directive.ts","../../../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/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/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/radio/radio.component.ts","../../../projects/bpm-core/src/lib/components/shared-components/form-field/radio/radio.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\r\n\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\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 || 'I18N key not found';\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 {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\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\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);\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 /* if (this.config.production) {\r\n let at = atob((window as any).wmConfig);\r\n (window as any).wmConfig = JSON.parse(at);\r\n }*/\r\n this.projectConfig = (this.config.production) ? (window as any)['wmConfig'] : btoa(JSON.stringify(this.localUser));\r\n // this.userData = JSON.parse(atob(this.projectConfig));\r\n this.userData = this.projectConfig;\r\n this.language = (window as any)?.wmConfig?.language ? (window as any).wmConfig.language : \"en\";\r\n }\r\n\r\n public getLoggedInUserData() {\r\n let loggedInEmail = this.loggedInUserId()\r\n this.employeeProfile(loggedInEmail).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 return {\r\n headers: new HttpHeaders({\r\n authToken: this.authToken,\r\n 'Content-Type': constants.HEADER_CONTENT_TYPE_FORM\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.payload = saveFormHooks.beforeSendPayload(body.payload);\r\n }\r\n\r\n return body;\r\n }\r\n\r\n /* private callPost(body, options) {\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 return this.http.post(apiUrl, encodeURIComponent(JSON.stringify(body)), options).toPromise()\r\n .then(\r\n (responseObject: any) => {\r\n return this.successWm(responseObject)\r\n },\r\n ).catch(\r\n (httpError: any) => {\r\n return throwError(httpError)\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 /* Convert into Form Object */\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).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).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 (hasComments) {\r\n result.commentsDrop = (!result.commentsDrop ? [] : result.commentsDrop);\r\n if (step.details.attachment && step.details.attachment.attachmentId && this.config.production) {\r\n // this.state = constants.STATE_MACHINE_STATUS_IDLE;\r\n /!* this.dispatch(constants.STATE_MACHINE_ACTION_LOAD_FILE, step.details.attachment.attachmentId).then((responseObject) => {\r\n let fileInformation = responseObject.body;\r\n if (currentActor) {\r\n /!*this.dispatch(constants.STATE_MACHINE_ACTION_EMPLOYEE_PROFILE, currentActor.email).then((profile) => {\r\n result.commentsDrop.push(new CommentsDrop(\r\n constants.IGATE_STATIC_ASSET_PROFILE_PHOTO_URL + currentActor.email,\r\n currentActor.name,\r\n (step.details.comment ? step.details.comment : (step.comment ? step.comment : null)),\r\n step.date,\r\n fileInformation.fileName + \"|data:\" + fileInformation.mimeType + \";base64,\" + fileInformation.fileContents,\r\n profile.job.name\r\n ))\r\n })*!/\r\n }\r\n });\r\n this.state = constants.STATE_MACHINE_STATUS_FETCHING;*!/\r\n } else if (step.details.attachmentId) {\r\n /!* this.state = constants.STATE_MACHINE_STATUS_IDLE;\r\n this.dispatch(constants.STATE_MACHINE_ACTION_LOAD_FILE, step.details.attchmentId).then((responseObject) => {\r\n let fileInformation = responseObject.body;\r\n if (currentActor) {\r\n /!*this.dispatch(constants.STATE_MACHINE_ACTION_EMPLOYEE_PROFILE, currentActor.email).then((profile) => {\r\n result.commentsDrop.push(new CommentsDrop(\r\n constants.IGATE_STATIC_ASSET_PROFILE_PHOTO_URL + currentActor.email,\r\n currentActor.name,\r\n (step.details.comment ? step.details.comment : (step.comment ? step.comment : null)),\r\n step.date,\r\n fileInformation.fileName + \"|data:\" + fileInformation.mimeType + \";base64,\" + fileInformation.fileContents,\r\n profile.job.name\r\n ))\r\n })*!/\r\n }\r\n });\r\n this.state = constants.STATE_MACHINE_STATUS_FETCHING;*!/\r\n } else {\r\n if (currentActor) {\r\n this.employeeProfile(currentActor.email).subscribe((profile: any) => {\r\n if (profile) {\r\n result.commentsDrop.push(new CommentsDrop(\r\n constants.IGATE_STATIC_ASSET_PROFILE_PHOTO_URL + currentActor.email,\r\n currentActor.name,\r\n (step.details.comment ? step.details.comment : (step.comment ? step.comment : null)),\r\n step.date,\r\n null,\r\n profile.job.name\r\n ))\r\n }\r\n });\r\n }\r\n }\r\n }*/\r\n\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 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 (currentActor ? this.getShortName(currentActor.name) : \"\").toString(),\r\n step.date,\r\n this.getShortName(step.actor.recipient.name).toString(),\r\n constants.IGATE_STATIC_ASSET_PROFILE_PHOTO_URL + step.actor.recipient.email,\r\n (step.actor.delegate?.name ? this.getShortName(step.actor.delegate.name) : \"\").toString(),\r\n (step.actor.delegate?.email ? constants.IGATE_STATIC_ASSET_PROFILE_PHOTO_URL + step.actor.delegate.email : \"\"),\r\n step.actor.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 && payload.meta.lovs ? payload.meta.lovs : null);\r\n\r\n if (payload.meta && 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\r\n // result.messages = (payload.meta && payload.meta.messages ? payload.meta.messages : null);\r\n /* Fix last section to be the RO/WM from the variable */\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) {\r\n const [id] = args;\r\n return this.http.get(this.config.proxyFullAddress + this.config.proxyServiceForms + this.config.formId + this.config.proxyServiceAttachment + id, {observe: 'response'}).toPromise();\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 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 ? 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 prespectiveApprovers(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 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 {\r\n 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 }\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} 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\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","/* eslint-disable @angular-eslint/component-selector */\r\n/* eslint-disable @typescript-eslint/no-explicit-any */\r\nimport {Component, CUSTOM_ELEMENTS_SCHEMA, Inject} from '@angular/core';\r\nimport {MAT_DIALOG_DATA, MatDialogActions, MatDialogClose, MatDialogContent, MatDialogRef} from '@angular/material/dialog';\r\nimport {MatButton} from \"@angular/material/button\";\r\nimport {NgIf} from \"@angular/common\";\r\n\r\n@Component({\r\n selector: 'app-delete-popup',\r\n templateUrl: './confirmation-popup.component.html',\r\n styleUrls: ['./confirmation-popup.component.scss'],\r\n schemas: [CUSTOM_ELEMENTS_SCHEMA],\r\n standalone: true,\r\n imports: [\r\n MatDialogContent,\r\n MatDialogActions,\r\n MatButton,\r\n MatDialogClose,\r\n NgIf\r\n ]\r\n})\r\nexport class ConfirmationPopupComponent {\r\n\r\n constructor(\r\n @Inject(MAT_DIALOG_DATA)\r\n public data: {\r\n title: string;\r\n id: string;\r\n confirmText: string;\r\n moreText: string;\r\n type: string;\r\n icon: string;\r\n },\r\n public dialogRef: MatDialogRef<any>\r\n ) { }\r\n\r\n\r\n openForm() {\r\n window.open(\"/group/i-gate/wm-bpm/forms?formId=\" + this.data.id)\r\n location.reload()\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-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 text-center justify-content-center mb-2 mx-5\">\r\n <h2 class=\"fs-22 font-md-18 fw-medium fc-onyx my-3\">\r\n <!-- {{ 'submittedSuccessfully' | transloco}} -->\r\n </h2>\r\n <h4 class=\"fs-14 fw-normal fst-italic fc-onyx bg-color-light-gray p-3 mb-1\">\r\n <!-- <span>{{ 'formId' | transloco}}</span> -->\r\n <span class=\"mx-1\"></span>\r\n <span class=\"fs-weight-medium\">{{data.id}}</span>\r\n </h4>\r\n </div>\r\n </mat-dialog-content>\r\n <mat-dialog-actions>\r\n <div class=\"d-flex justify-content-center w-100 mb-4 px-md-5\" *ngIf=\"data.type === 'view'\">\r\n <button mat-stroked-button class=\"btn button-primary shadow-hover px-4\" matDialogClose>\r\n <!-- {{ 'Close' | transloco}} -->\r\n </button>\r\n <button mat-flat-button class=\"btn button-primary font-17 fw-medium px-4\" (click)=\"openForm()\">\r\n <!-- {{ 'ViewRequest' | transloco}} -->\r\n </button>\r\n </div>\r\n <div class=\"d-flex justify-content-center w-100 mb-4 px-md-5\" *ngIf=\"data.type === 'delete'\">\r\n <button mat-flat-button class=\"btn button-red\" [mat-dialog-close]='true' >\r\n Delete\r\n </button>\r\n <span class=\"mx-2\"></span>\r\n <button mat-flat-button class=\"btn button-primary\" matDialogClose>\r\n Cancel\r\n </button>\r\n </div>\r\n <div class=\"d-flex justify-content-center w-100 mb-4 px-md-5\" *ngIf=\"data.type === 'done'\">\r\n <button mat-flat-button class=\"btn button-primary shadow-hover px-4\" matDialogClose>\r\n Close\r\n </button>\r\n </div>\r\n </mat-dialog-actions>\r\n\r\n</div>\r\n","/* eslint-disable @angular-eslint/component-selector */\r\n/* eslint-disable @typescript-eslint/no-empty-function */\r\nimport {Component, CUSTOM_ELEMENTS_SCHEMA} from '@angular/core';\r\nimport {MatDialogActions, MatDialogClose, MatDialogContent} from \"@angular/material/dialog\";\r\n\r\n@Component({\r\n selector: 'app-delete-popup',\r\n templateUrl: './delete-popup.component.html',\r\n styleUrls: ['./delete-popup.component.scss'],\r\n schemas: [CUSTOM_ELEMENTS_SCHEMA],\r\n standalone: true,\r\n imports: [\r\n MatDialogContent,\r\n MatDialogClose,\r\n MatDialogActions\r\n ]\r\n})\r\nexport class DeletePopupComponent {\r\n\r\n constructor() { }\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 <button class=\"mat-close-modal\" matDialogClose>\r\n <span class=\"sfi sfi-close fc-black\"></span>\r\n </button>\r\n </div>\r\n <mat-dialog-content class=\"border-0 pt-0\">\r\n <div class=\"d-flex flex-column align-items-center justify-content-center\">\r\n <span class=\"sfi sfi-trash font-50 fc-coral mb-2\"></span>\r\n <h2 class=\"fs-31 font-md-25 fw-bold fc-onyx mb-0\">\r\n Are you sure !\r\n </h2>\r\n <h4 class=\"fs-15 fw-normal fc-dark-gray mb-0\">you want Delete This Car</h4>\r\n </div>\r\n </mat-dialog-content>\r\n <mat-dialog-actions>\r\n <div class=\"d-flex justify-content-center w-100 mb-4 px-md-5\">\r\n <button class=\"btn button-secondary font-13 fw-medium h-51 w-100\" matDialogClose>\r\n <span>Cancel</span>\r\n </button>\r\n <span class=\"mx-2\"></span>\r\n <button class=\"btn button-primary font-13 fw-medium h-51 w-100\">\r\n <span>Delete</span>\r\n </button>\r\n </div>\r\n </mat-dialog-actions>\r\n\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@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 ]\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 {DeleteDialogComponent} from './../dialogs/delete-dialog/delete-dialog.component';\r\nimport {NoopScrollStrategy} from '@angular/cdk/overlay';\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 {BaseComponent} from './../form-field/base-component/base-component.component';\r\nimport {Component, CUSTOM_ELEMENTS_SCHEMA, ElementRef, EventEmitter, Input, OnChanges, OnInit, Output, SimpleChanges, ViewChild} from '@angular/core';\r\nimport * as FileSaver from 'file-saver';\r\nimport {DocumentFile} from '../../../interfaces';\r\nimport * as Constants from '../../../constants/constants';\r\nimport {ImageCroppedEvent, ImageCropperComponent, ImageTransform, LoadedImage} from 'ngx-image-cropper';\r\nimport {FormGroup} from '@angular/forms';\r\nimport {NgClass, NgForOf, NgIf, NgTemplateOutlet} from \"@angular/common\";\r\nimport {MatError} from \"@angular/material/form-field\";\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 NgIf,\r\n NgClass,\r\n NgForOf,\r\n ImageCropperComponent,\r\n MatError,\r\n NgTemplateOutlet\r\n ]\r\n})\r\nexport class DocsUploaderComponent extends BaseComponent 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() label = '';\r\n @Input() callApi: boolean;\r\n @Input() tooltip!: string;\r\n @Input() attachments!: any[];\r\n @Input() optional = false;\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 wrongFile = {\r\n mimeType: \"\",\r\n fileContents: \"\",\r\n fileName: 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() 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() downloadActionClicked = new EventEmitter();\r\n @Input() maxSize = '10';\r\n @ViewChild('inputFile') inputFile: ElementRef;\r\n @ViewChild('inputFileName') inputFileName: ElementRef;\r\n\r\n\r\n private 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 validPdfTypes = {\r\n 'pdf': ['application/pdf'],\r\n }\r\n uploading: boolean;\r\n lengthError: boolean;\r\n\r\n scale = 1;\r\n showCropper = false;\r\n containWithinAspectRatio = false;\r\n transform: ImageTransform = {};\r\n imageChangedEvent: any = '';\r\n croppedImage: any = '';\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 ngOnInit(): void {\r\n /* this.resetPropagator.subscribe(this, this.resetAttachmentData);\r\n this.uploadForm = this.fb.group({\r\n file: [''],\r\n name: '',\r\n });*/\r\n }\r\n\r\n resetAttachmentData() {\r\n if (!this.isReadOnly) {\r\n if (this.multiple) {\r\n this.displayedFiles = [];\r\n this.allAttachments = [];\r\n this.emit(this.displayedFiles)\r\n } else {\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 }\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 attch(data: any, index: number, field: any) {\r\n if (data.detail.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 {\r\n if (field && field.attachmentId) {\r\n this.downloadFile(data, field);\r\n } else if (field && field.fileContents) {\r\n this.downloadFileNew(field);\r\n }\r\n }\r\n }\r\n if (data.detail.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 if (event?.target?.files?.length > 0) {\r\n if (this.formKey == 'TSV') {\r\n const input = event.target;\r\n this.selectedTemplateAttachment.emit(input.files[0]) ///// test\r\n }\r\n\r\n const file: File = event.target.files[0];\r\n let fileType\r\n if (file.name !== null && file.name !== undefined && file.name.endsWith(\".msg\")) {\r\n fileType = 'application/vnd.ms-outlook'\r\n }\r\n if (this.accept?.length) {\r\n if (!this.accept.includes(file.type) && !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 // if (this.useCrop) {\r\n // this.fileChangeEvent(event)\r\n // } else {\r\n if (!this.uploading) {\r\n const input = event.target;\r\n if (this.maxSize) {\r\n this.filesize = ((input.files[0].size / 1024) / 1024).toFixed(4); // MB\r\n this.maxSizeValue = this.maxSize;\r\n } else {\r\n this.filesize = ((input.files[0].size / 1024) / 1024).toFixed(4); // MB\r\n this.maxSizeValue = 1;\r\n }\r\n if (+this.filesize < +this.maxSize) {\r\n this.maxSizeFlag = true;\r\n } else {\r\n this.maxSizeFlag = false\r\n }\r\n\r\n if (this.displayedFiles?.length >= +this.maxLength) {\r\n this.lengthError = true;\r\n } else {\r\n this.lengthError = false;\r\n }\r\n\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\r\n if (!this.lengthError) {\r\n if (+this.filesize < +this.maxSize) {\r\n this.allowedFileSize = true;\r\n if (this.useCrop) {\r\n this.imageChangedEvent = event;\r\n }\r\n if (this.validExtension) {\r\n if (this.getDataFromTemplate) {\r\n this.selectedTemplateAttachment.emit(event);\r\n }\r\n const obj = new AttatchmentFile(input.files[0].name, input.files[0].name, input.files[0].type, '', this.filesize);\r\n this.value = new AttatchmentFile(input.files[0].name, input.files[0].name, input.files[0].type, '', this.filesize);\r\n const reader = new FileReader();\r\n reader.onload = () => {\r\n obj.fileContents = (reader.result as string).split(',')[1];\r\n if (this.useCrop) {\r\n obj['replacedBase64'] = obj.fileContents\r\n }\r\n obj.filesize = this.filesize;\r\n if (!this.multiple) {\r\n this.fileNotDuplicated = this.checkFileExistance(obj);\r\n if (!this.fileNotDuplicated) {\r\n return;\r\n }\r\n this.value.fileContents = (reader.result as string).split(',')[1];\r\n this.field = this.value;\r\n if (this.callApi) {\r\n this.addAttachments()\r\n } else {\r\n this.emit(this.field)\r\n this.selectedTemplateAttachment.emit(event);\r\n }\r\n } else {\r\n this.fileNotDuplicated = this.checkFileExistance(obj);\r\n if (this.fileNotDuplicated) {\r\n this.addMultiAttachments(obj)\r\n }\r\n }\r\n };\r\n reader.readAsDataURL(input.files[0]);\r\n } else {\r\n\r\n if (this.multiple) {\r\n return\r\n }\r\n\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 } else {\r\n this.allowedFileSize = false;\r\n }\r\n }\r\n event.target.value = ''\r\n }\r\n // }\r\n }\r\n\r\n fileChangeEvent(event: any): void {\r\n const input = event.target;\r\n this.imageChangedEvent = event;\r\n const obj = new AttatchmentFile(input.files[0].name, input.files[0].name, input.files[0].type, '', this.filesize);\r\n this.value = new AttatchmentFile(input.files[0].name, input.files[0].name, input.files[0].type, '', this.filesize);\r\n const reader = new FileReader();\r\n reader.onload = () => {\r\n obj.fileContents = (reader.result as string).split(',')[1];\r\n obj.filesize = this.filesize;\r\n if (!this.multiple) {\r\n this.fileNotDuplicated = this.checkFileExistance(obj);\r\n if (!this.fileNotDuplicated) {\r\n return;\r\n }\r\n this.value.fileContents = (reader.result as string).split(',')[1];\r\n this.field = this.value;\r\n console.log('this.field', this.value)\r\n if (this.callApi) {\r\n this.addAttachments()\r\n } else {\r\n this.emit(this.field)\r\n this.selectedTemplateAttachment.emit(event);\r\n }\r\n } else {\r\n this.fileNotDuplicated = this.checkFileExistance(obj);\r\n if (this.fileNotDuplicated) {\r\n this.addMultiAttachments(obj)\r\n }\r\n }\r\n };\r\n reader.readAsDataURL(input.files[0]);\r\n this.addAttachments()\r\n }\r\n\r\n addAttachments() {\r\n const data = {\r\n \"fileDescription\": \"\",\r\n \"attachmentcomment\": \"\",\r\n \"fileName\": this.field.fileName,\r\n \"mimeType\": this.field.mimeType,\r\n \"fileContents\": this.field.fileContents,\r\n }\r\n this.uploading = true;\r\n /*this.coreStateMachineService.dispatch('getAttachments', data)\r\n .then((Response: any) => {\r\n this.uploading = false;\r\n if (Response) {\r\n console.log('Response', Response)\r\n const newObj = {\r\n // \"fileDescription\": Response.description,\r\n // \"comments\": Response.comment,\r\n // \"fileContents\": this.field.fileContents,\r\n \"fileName\": Response.attachment.fileName,\r\n \"attachmentId\": Response.attachment.attachmentId,\r\n \"mimeType\": Response.attachment.mimeType\r\n }\r\n this.field = newObj\r\n this.selectedTemplateAttachment.emit(this.field);\r\n this.emit(this.field)\r\n }\r\n });*/\r\n }\r\n\r\n addMultiAttachments(field: any) {\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.coreStateMachineService.dispatch('getAttachments', data)\r\n .then((Response: any) => {\r\n this.uploading = false;\r\n if (Response) {\r\n const newObj = {\r\n \"fileName\": field.fileName,\r\n \"attachmentId\": Response.attachment.attachmentId,\r\n \"mimeType\": field.mimeType\r\n }\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 }\r\n });*/\r\n }\r\n\r\n\r\n checkFileExistance(file: AttatchmentFile): 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.field = this.value = new AttatchmentFile(null, null, null, null, null);\r\n if (this.inputFile) {\r\n this.inputFile.nativeElement.value = null;\r\n }\r\n // this.controller.setValue(this.field);\r\n this.emit(this.value)\r\n this.selectedTemplateAttachment.emit(null);\r\n }\r\n\r\n downloadFile(event, field) {\r\n if (this.downloadLink) {\r\n window.open(field?.attachmentId, '_blank', 'top=0,left=0,height=auto,width=auto');\r\n } else {\r\n const placeholder = event.target.nextElementSibling;\r\n /* this.coreStateMachineService.dispatch(Constants.STATE_MACHINE_ACTION_LOAD_FILE, field.attachmentId).then((responseObject) => {\r\n const fileInformation = responseObject.body;\r\n const fileBlob = this.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 }\r\n }\r\n\r\n printFile(field: any): void {\r\n /* this.coreStateMachineService.dispatch(Constants.STATE_MACHINE_ACTION_LOAD_FILE, field?.attachmentId).then((responseObject) => {\r\n const fileInformation = responseObject.body;\r\n const fileBlob = this.dataURItoBlob(fileInformation.fileContents);\r\n const file = new File([fileBlob], fileInformation.fileName, {type: fileInformation.mimeType});\r\n const win = window.open(URL.createObjectURL(file), '_blank', 'top=0,left=0,height=auto,width=auto');\r\n\r\n win?.focus();\r\n win.addEventListener(\r\n \"load\",\r\n () => {\r\n //to give time for the browser to load the pdf\r\n setTimeout(() => {\r\n win.window.print();\r\n }, 250);\r\n },\r\n true\r\n );\r\n });*/\r\n }\r\n\r\n addSignature(event: Event): void {\r\n const obj = {\r\n type: 'openPopupDialog'\r\n };\r\n this.addSignatureClicked.emit(obj);\r\n event?.stopPropagation();\r\n event?.preventDefault();\r\n }\r\n\r\n printFileData(event: any): void {\r\n this.printActionClicked.emit({event, field: this.field});\r\n }\r\n\r\n downloadFileData(event: any): void {\r\n this.downloadActionClicked.emit({event, field: this.field});\r\n }\r\n\r\n 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 const blob = new Blob([arrayBuffer], {type: 'image/jpeg'});\r\n return blob;\r\n }\r\n\r\n imageCropped(event: ImageCroppedEvent) {\r\n // this.croppedImage = this.sanitizer.bypassSecurityTrustUrl(event.objectUrl);\r\n // this.field.fileContents = event.base64\r\n // this.croppedImage = event.base64\r\n // console.log('-------------------------------', this.croppedImage)\r\n this.croppedImage = event?.base64;\r\n if (this.croppedImage) {\r\n const cropImg = this.croppedImage\r\n const replacedBase64 = cropImg.replace('data:image/png;base64,', '')\r\n this.field['replacedBase64'] = replacedBase64;\r\n this.emit(this.field)\r\n }\r\n\r\n }\r\n\r\n imageLoaded(image: LoadedImage) {\r\n // show cropper\r\n }\r\n\r\n cropperReady() {\r\n // cropper ready\r\n }\r\n\r\n loadImageFailed() {\r\n // show message\r\n }\r\n\r\n\r\n zoomOut() {\r\n console.log('ddddddddddddddddddd')\r\n this.scale -= .1;\r\n this.transform = {\r\n ...this.transform,\r\n scale: this.scale\r\n };\r\n }\r\n\r\n zoomIn() {\r\n this.scale += .1;\r\n this.transform = {\r\n ...this.transform,\r\n scale: this.scale\r\n };\r\n }\r\n\r\n getExtension(attachment: any) {\r\n if (attachment) {\r\n if (attachment.split('.').pop() == 'msg') {\r\n return 'email-icon'\r\n } else if (attachment.split('.').pop() == 'jpeg') {\r\n return 'jpg'\r\n }\r\n return attachment.split('.').pop()\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 this.emitedValue.emit(value);\r\n }\r\n\r\n private deleteFileContents(data: any | 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 AttatchmentFile {\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","<ng-container *ngIf=\"!isReadOnly\">\r\n <div class=\"d-flex justify-content-between mb-1\" *ngIf=\"hasLabel\">\r\n <span class=\"form-label mb-0\">{{label}}</span>\r\n <span *ngIf=\"!required\" class=\"fs-11 fc-dark-gray\">\r\n {{i18n.translate('Optional')}}\r\n </span>\r\n </div>\r\n\r\n\r\n <section [ngClass]=\"insideTable ? 'file-uploader-table' : 'file-uploader'\" class=\" mb-2\"\r\n [class.insideTableStyle]=\"insideTable\">\r\n <div [ngClass]=\"insideTable ? 'file-uploader-table-dev' : ''\" class=\"file-uploader-input\"\r\n (click)=\"fileAttached.click()\">\r\n <div class=\"icon mb-1\" *ngIf=\"!uploading\">\r\n <svg [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 <ds-icon class=\"sfi sfi-spinner d-inline-block spin fc-coral fs-30-imp\" *ngIf=\"uploading\"></ds-icon>\r\n\r\n <div class=\"f-14 fc-black fw-normal\">\r\n <span class=\"fc-coral fw-medium\">{{i18n.translate('browse')}}</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\r\n </section>\r\n\r\n <div class=\"d-flex align-items-center gap-3 mb-3\" *ngIf=\"hints\">\r\n <ng-container *ngFor=\"let hint of hints\">\r\n <div class=\"d-flex align-items-center gap-1 fs-12\">\r\n <ds-icon 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 </div>\r\n\r\n <mat-hint class=\"d-flex align-items-center gap-1\" *ngIf=\"hint\">\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 <section class=\"files-list\" *ngIf=\"multiple\">\r\n <div class=\"file-item-container\" *ngFor=\"let file of displayedFiles;let i = index\">\r\n <ds-attachments [file]=\"file\" (attachmentEvent)=\"attch($event,i,file)\" [showActions]=\"showActions\">\r\n </ds-attachments>\r\n <a href=\"\" class=\"hidden-placeholder\"></a>\r\n <!-- <mat-error class=\"fs-12\">Test error </mat-error> -->\r\n </div>\r\n </section>\r\n\r\n <section class=\"files-list\" *ngIf=\"!multiple && (field?.fileContents || field?.attachmentId) \">\r\n\r\n <!-- {{field | json }} -->\r\n <div class=\"file-item-container file-item-container-actions\">\r\n <ds-attachments [file]=\"field\" (attachmentEvent)=\"attch($event,null,field)\" [showActions]=\"showActions\">\r\n </ds-attachments>\r\n <a href=\"\" class=\"hidden-placeholder\"></a>\r\n <ng-container *ngTemplateOutlet=\"attachmentCustomActions\"></ng-container>\r\n <!-- <mat-error class=\"fs-12\">Test error </mat-error> -->\r\n </div>\r\n\r\n\r\n </section>\r\n\r\n <div class=\"bc-white border d-flex my-3 radius-4\" *ngIf=\"useCrop && imageChangedEvent && field?.fileContents \">\r\n <div class=\"info-section px-md-4\">\r\n <div class=\"d-flex gap-2 mt-2 mx-2 justify-content-end\">\r\n <ds-button square size=\"small\" (click)=\"zoomOut()\" class=\"icon-btn-shadow\">\r\n <ds-icon icon=\"minus\" class=\"fs-20 fs-md-17\"></ds-icon>\r\n </ds-button>\r\n <ds-button square size=\"small\" (click)=\"zoomIn()\" class=\"icon-btn-shadow\">\r\n <ds-icon icon=\"plus\" class=\"fs-20 fs-md-17\"></ds-icon>\r\n </ds-button>\r\n </div>\r\n <div class=\"mb-3 text-center\">\r\n <image-cropper [imageBase64]=\"field.fileContents\" [maintainAspectRatio]=\"true\" [hideResizeSquares]=\"true\"\r\n [aspectRatio]=\"2 / 1\" format=\"png\" (imageCropped)=\"imageCropped($event)\" [output]=\"'base64'\"\r\n [cropperMinWidth]=\"75\" [cropperMinHeight]=\"37\" [transform]=\"transform\"></image-cropper>\r\n </div>\r\n </div>\r\n </div>\r\n\r\n\r\n <!-- <section class=\"files-list\">\r\n\r\n <div class=\"d-flex gap-2 mt-2\">\r\n\r\n <ds-button square size=\"small\" (click)=\"zoomOut()\" class=\"icon-btn-shadow\">\r\n <ds-icon icon=\"minus\" class=\"fs-20 fs-md-17 fc-purple\"></ds-icon>\r\n </ds-button>\r\n <ds-button square size=\"small\" (click)=\"zoomIn()\" class=\"icon-btn-shadow\">\r\n <ds-icon icon=\"plus\" class=\"fs-20 fs-md-17 fc-purple\"></ds-icon>\r\n </ds-button>\r\n\r\n </div>\r\n\r\n\r\n <image-cropper [imageBase64]=\"field.fileContents\" [maintainAspectRatio]=\"true\" [hideResizeSquares]=\"true\"\r\n [aspectRatio]=\"2 / 1\" format=\"png\" (imageCropped)=\"imageCropped($event)\" [output]=\"'base64'\"\r\n [cropperMinWidth]=\"75\" [cropperMinHeight]=\"37\" [transform]=\"transform\"></image-cropper>\r\n </section> -->\r\n\r\n <div class=\"attachments-error\">\r\n\r\n <!-- (!validExtension ) && !multiple -->\r\n\r\n <section class=\"files-list mt-2\" *ngIf=\"(!validExtension )\">\r\n <div class=\"file-item-container \">\r\n <ds-attachments [file]=\"wrongFile\" error [showActions]=\"false\" (attachmentEvent)=\"attch($event,null,field)\">\r\n </ds-attachments>\r\n </div>\r\n </section>\r\n\r\n <mat-error class=\"fs-12 my-2\" *ngIf=\"(!allowedFileSize )\">\r\n {{ maxSize === \"0.3\" ? i18n.translate('support3') : i18n.translate('support2') + maxSize + i18n.translate('mb')}}\r\n </mat-error>\r\n <mat-error class=\"fs-12 my-2\" *ngIf=\"(!fileNotDuplicated)\">{{i18n.translate('duplicated-error')}} </mat-error>\r\n <mat-error class=\"fs-12\" *ngIf=\"(lengthError)\">{{i18n.translate('lengthError')}} :{{maxLength}} </mat-error>\r\n <mat-error class=\"fs-12\" *ngIf=\"(showErrorMessage)\">{{errorMessage}} </mat-error>\r\n\r\n </div>\r\n</ng-container>\r\n\r\n\r\n<ng-container *ngIf=\"isReadOnly\">\r\n <ng-container *ngIf=\"multiple && displayedFiles\">\r\n <div class=\"info-item\">\r\n <span class=\"name\" *ngIf=\"hasLabel\">{{label}}</span>\r\n <span class=\"disc\" *ngIf=\"displayedFiles?.length\">\r\n <div class=\"file-item-container\" *ngFor=\"let file of displayedFiles;let i = index\">\r\n <ds-attachments class=\"my-2\" [file]=\"file\" readOnly (attachmentEvent)=\"downloadFile($event,file)\"\r\n [showActions]=\"showActions\">\r\n <a href=\"\" class=\"hidden-placeholder\"></a>\r\n </ds-attachments>\r\n <a href=\"\" class=\"hidden-placeholder\"></a>\r\n </div>\r\n <a href=\"\" class=\"hidden-placeholder\"></a>\r\n </span>\r\n <span class=\"disc\" *ngIf=\"!displayedFiles?.length\">\r\n {{ i18n.translate('NoAttachments') }}\r\n </span>\r\n </div>\r\n </ng-container>\r\n <ng-container *ngIf=\"!multiple && (field?.attachmentId || field?.fileContents)\">\r\n <div class=\"info-item\">\r\n <span class=\"name\" *ngIf=\"hasLabel\">{{label}}</span>\r\n <div class=\"disc file-item-container file-item-container-actions\" [ngClass]=\"{'insideTableWidth':insideTable}\">\r\n <ds-attachments [matTooltip]=\"field?.fileName\" *ngIf=\"field?.attachmentId || field?.fileContents\" [file]=\"field\" [showActions]=\"showActions\"\r\n (attachmentEvent)=\"attch($event,null,field)\" readOnly>\r\n </ds-attachments>\r\n <a href=\"\" class=\"hidden-placeholder\"></a>\r\n <ng-container *ngTemplateOutlet=\"attachmentCustomActions\"></ng-container>\r\n </div>\r\n </div>\r\n </ng-container>\r\n\r\n</ng-container>\r\n\r\n<ng-template #attachmentCustomActions>\r\n <div class=\"uploaded-file-actions\" *ngIf=\"!disabled\">\r\n <ds-button *ngIf=\"showSignButton\" shape=\"outline\" (click)=\"addSignature($event)\" color=\"red\">\r\n {{signType}}\r\n </ds-button>\r\n <ds-button *ngIf=\"showDownloadButton\" shape=\"outline\" (click)=\"downloadFileData($event)\" color=\"red\">\r\n {{downloadType}}\r\n </ds-button>\r\n <a *ngIf=\"showDownloadButton\" href=\"\" class=\"hidden-placeholder\"></a>\r\n <ds-button *ngIf=\"showPrintButton\" shape=\"outline\" (click)=\"printFileData($event)\" color=\"red\">\r\n {{printType}}\r\n </ds-button>\r\n </div>\r\n</ng-template>\r\n","import { Directive, Injector, Input, OnInit } from '@angular/core';\r\nimport {\r\n ControlValueAccessor,\r\n FormControl,\r\n Validators,\r\n NgControl,\r\n FormControlName,\r\n FormGroupDirective,\r\n FormControlDirective,\r\n} from '@angular/forms';\r\nimport { CoreI18nService } from '../../../services';\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() isReadOnly: boolean;\r\n @Input() labelTextWriteMode: string;\r\n @Input() labelTextReadMode: string;\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\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 = false;\r\n maxLength: any;\r\n\r\n isDisabled = false;\r\n\r\n constructor(private injector: Injector, public i18n: CoreI18nService) {}\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 this.setDateFormControl()\r\n }\r\n\r\n setFormValidators(){\r\n this.required = this.control?.hasValidator(Validators.required) ?? false;\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(currentYear + 1, currentMonth, currentDay - 1);\r\n }\r\n } else if (this.customMaxDate) {\r\n const date = new Date(this.customMaxDate)\r\n this.maxDateValue = new Date(date.getFullYear(), date.getMonth(), date.getDate());\r\n }\r\n\r\n if (this.required) this.control.addValidators(Validators.required)\r\n }\r\n writeValue(value: Type): void {\r\n this.value = value;\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","/* eslint-disable @typescript-eslint/no-empty-function */\r\n/* eslint-disable @angular-eslint/use-lifecycle-interface */\r\n/* eslint-disable @angular-eslint/component-selector */\r\nimport { Component, CUSTOM_ELEMENTS_SCHEMA, EventEmitter, forwardRef, inject, Input, Output } from '@angular/core';\r\nimport {MatCheckbox} from \"@angular/material/checkbox\";\r\nimport {FormsModule, NG_VALUE_ACCESSOR} from \"@angular/forms\";\r\nimport {NgIf} from \"@angular/common\";\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\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 NgIf\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> {\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() name: string;\r\n @Input() randomID: string;\r\n @Input() termsBody: any;\r\n @Output() downloadCheckBox = new EventEmitter();\r\n dialog = inject(MatDialog);\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 class=\"my-3\" [disabled]=\"isDisabled\" id=\"{{name}}{{randomID}}\" [name]=\"name\"\r\n (change)=\"valueChange($event)\" [checked]=\"control.value\">\r\n <span class=\"fs-12 fw-medium fc-onyx\">\r\n {{ isReadOnly ? labelTextReadMode : labelTextWriteMode }}\r\n </span>\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 : i18n.translate('termsAndConditions') }}\r\n </span>\r\n }\r\n @if (link){\r\n <ng-container>\r\n <span> | </span>\r\n <a class=\"fs-12 fw-bold fc-coral cursor-pointer mx-1 d-inline-flex align-items-center gap-1\" href=\"{{hrefLink}}\" 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 \r\n <!-- <a *ngIf=\"containDownload\" style=\"color: blue;\" class=\"fs-12 fw-bold fc-coral cursor-pointer mx-1\" href=\"{{hrefLink}}\" target=\"_top\"> {{termsLabel}}</a> -->\r\n</mat-checkbox>\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\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 NgIf,\r\n DatePipe,\r\n NgClass,\r\n NgForOf,\r\n NgSwitchDefault,\r\n NgSwitch\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!: [];\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 <span class=\"name \" *ngIf=\"hasLabel\">{{ label }}</span>\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 <div class=\"d-flex align-items-center\" *ngIf=\"!multiple\">\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 <ng-container *ngIf=\"multiple\">\r\n <div class=\"d-flex flex-wrap\">\r\n <ng-container *ngFor=\"let emails of arrayList; let ind = index\">\r\n\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\r\n </div>\r\n </ng-container>\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 <span *ngIf=\"dateType === 'hijri'\">\r\n {{ value }}\r\n </span>\r\n <span *ngIf=\"dateType === 'yearOnly'\">\r\n {{ value }}\r\n </span>\r\n <span *ngIf=\"dateType !== 'hijri' && dateType !== 'yearOnly'\">\r\n {{value | date :'dd/MM/yyyy'}}\r\n </span>\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\">{{i18n.translate('View')}} {{ 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 <span *ngFor=\"let item of value;let i = index\">{{item.value}}\r\n <span *ngIf=\"!(i === value.length-1)\">, </span>\r\n </span>\r\n </span>\r\n <span [ngClass]=\"{'breakLine': !insideTable}\" class=\"disc \" [innerHTML]=\"value\" *ngSwitchDefault>\r\n </span>\r\n</ng-container>\r\n","export const RegexPatterns = {\r\n email: '^[a-z0-9._%+-]+@[a-z0-9.-]+\\\\.[a-z]{2,4}$', // Email validation\r\n };","import { CommonModule, NgFor } from '@angular/common';\r\nimport { Component, Input, OnChanges, 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 NgFor,\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 field is required',\r\n maxlength: 'This field max length',\r\n minlength: 'This field min length',\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 }","/* eslint-disable @typescript-eslint/no-this-alias */\r\n/* eslint-disable no-var */\r\nimport {NG_VALUE_ACCESSOR, ReactiveFormsModule} from '@angular/forms';\r\n/* eslint-disable @typescript-eslint/no-explicit-any */\r\n/* eslint-disable @angular-eslint/use-lifecycle-interface */\r\n/* eslint-disable @angular-eslint/component-selector */\r\nimport { Component, Input, Output, EventEmitter, SimpleChanges, CUSTOM_ELEMENTS_SCHEMA, forwardRef, OnInit } from '@angular/core';\r\nimport { FormControl } from '@angular/forms';\r\nimport { MatError, MatFormField, MatFormFieldModule, MatHint} from '@angular/material/form-field';\r\n\r\nimport {InfoItemComponent} from \"../info-item/info-item.component\";\r\nimport {NgClass, NgForOf, NgIf} 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 { ValidationErrorsComponent } from \"../validation-errors/validation-errors.component\";\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 InfoItemComponent,\r\n NgClass,\r\n NgIf,\r\n ReactiveFormsModule,\r\n MatAutocomplete,\r\n MatOption,\r\n MatAutocompleteTrigger,\r\n MatError,\r\n MatHint,\r\n NgForOf,\r\n MatFormField,\r\n MatFormFieldModule,\r\n MatInputModule,\r\n ValidationErrorsComponent\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() name: string ='name';\r\n @Input() displayedLable: string;\r\n @Input() key: string = 'description';\r\n @Input() floatLabel: any = 'auto';\r\n @Input() className = 'bordered-input';\r\n\r\n noData = false;\r\n filteredOptions!: any;\r\n searchControl = new FormControl()\r\n\r\n clearInput() {\r\n this.control.setValue(null)\r\n this.searchControl.setValue(null)\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.setValue(null)\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]});\r\n this.searchControl.setValue(value[this.key]);\r\n }\r\n\r\n}\r\n","<ng-container *ngIf=\"isReadOnly && control?.value\">\r\n <app-info-item class=\"info-item w-100\" [label]=\"label\" [insideTable]=\"insideTable\" [hasLabel]=\"label ? true: false\" [value]=\"control?.value\"></app-info-item>\r\n</ng-container>\r\n\r\n<ng-container *ngIf=\"!isReadOnly\">\r\n <div class=\"d-flex justify-content-between mb-1\" *ngIf=\"label\">\r\n <span class=\"form-label mb-0\">{{label}}</span>\r\n <span *ngIf=\"!required\" class=\"fs-11 fc-dark-gray\">\r\n {{i18n.translate('Optional')}}\r\n </span>\r\n </div>\r\n <mat-form-field class=\"primary-form {{className}}\" [ngClass]=\"{'input-disabled' : (disabled || loading) }\"\r\n [floatLabel]=\"floatLabel\" >\r\n <!-- (click)=\"clearInput()\" -->\r\n <span class=\"sfi sfi-search fc-coral fs-18\" matPrefix></span>\r\n <label class=\"mat-form-content\">\r\n <!-- <bdi> -->\r\n <input #autocompleteInput type=\"text\" (keydown)=\"onKeyDown($event, autocompleteInput)\" [attr.disabled]=\"disabled \" [placeholder]=\"label\" aria-label=\"Number\" matInput\r\n (input)=\"onValueChange($event)\" [formControl]=\"searchControl\"\r\n ngDefaultControl [name]=\"'test'\" [matAutocomplete]=\"auto\" [value]=\"value\" (focusout)=\"onFocusOut()\">\r\n <!-- </bdi> -->\r\n </label>\r\n <span class=\"sfi sfi-spinner d-inline-block spin fc-coral\" matSuffix *ngIf=\"loading\"></span>\r\n <span class=\"sfi sfi-close d-inline-block fc-black cursor-pointer\" (click)=\"clearInput()\" matSuffix\r\n *ngIf=\"!loading && control?.value\"></span>\r\n <mat-autocomplete autoActiveFirstOption #auto=\"matAutocomplete\" [displayWith]=\"displayFn\" \r\n (optionSelected)='getAutoComplete($event.option.value)'>\r\n <ng-container *ngIf=\"!noData\">\r\n <mat-option *ngFor=\"let option of filteredOptions\" [value]=\"option\">\r\n <div class=\"d-flex align-items-center\">\r\n <figure *ngIf=\"option['avatar_url']\" class=\"img-card small circled-img p-0 m-0\">\r\n <img [src]=\"option['avatar_url']\" alt=\"\">\r\n </figure>\r\n <span *ngIf=\"option['avatar_url']\" class=\"mx-2\"></span>\r\n <!-- <bdi> -->\r\n {{option[displayedLable]}}\r\n <!-- </bdi> -->\r\n </div>\r\n </mat-option>\r\n </ng-container>\r\n <ng-container *ngIf=\"noData\">\r\n <mat-option [disabled]=\"true\" class=\"text-center\">No Data</mat-option>\r\n </ng-container>\r\n </mat-autocomplete>\r\n <!-- <mat-error class=\"mb-2\" *ngIf=\"(!control?.valid)\">{{i18n.translate('validSelectError')}}{{label}}\r\n </mat-error> -->\r\n\r\n <mat-hint *ngIf=\"showHint\">\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 </mat-form-field>\r\n <app-validation-errors [errors]=\"control.errors\"></app-validation-errors>\r\n\r\n</ng-container>\r\n","import {FormControl, NG_VALUE_ACCESSOR, ReactiveFormsModule} from '@angular/forms';\r\nimport {\r\n AfterViewInit,\r\n Component,\r\n CUSTOM_ELEMENTS_SCHEMA,\r\n EventEmitter,\r\n forwardRef,\r\n Inject,\r\n Input,\r\n Output,\r\n SimpleChanges,\r\n ViewChild\r\n} from '@angular/core';\r\nimport {DateAdapter, MAT_DATE_FORMATS, MAT_DATE_LOCALE} from '@angular/material/core';\r\nimport {MAT_MOMENT_DATE_ADAPTER_OPTIONS, MomentDateAdapter} from '@angular/material-moment-adapter';\r\nimport {MatDatepicker, MatDatepickerInput, MatDatepickerModule, MatDatepickerToggle} from '@angular/material/datepicker';\r\nimport {CustomDateFormat} from './date-format';\r\nimport {MatFormField, MatFormFieldModule} from \"@angular/material/form-field\";\r\nimport {NgClass, NgIf} from \"@angular/common\";\r\nimport {InfoItemComponent} from \"../info-item/info-item.component\";\r\n// import moment from 'moment'\r\nimport {ControlValueAccessorDirective} from '../control-value-accessor.directive';\r\nimport {MatInput} from '@angular/material/input';\r\nimport {MatIcon} from '@angular/material/icon';\r\nimport {ValidationErrorsComponent} from '../validation-errors/validation-errors.component';\r\nimport {format} from \"date-fns\";\r\n\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\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: DateAdapter,\r\n useClass: MomentDateAdapter,\r\n deps: [MAT_DATE_LOCALE, MAT_MOMENT_DATE_ADAPTER_OPTIONS],\r\n },\r\n {\r\n provide: MAT_DATE_FORMATS,\r\n useClass: CustomDateFormat\r\n },\r\n {\r\n provide: NG_VALUE_ACCESSOR,\r\n useExisting: forwardRef(() => DatePickerComponent),\r\n multi: true,\r\n },\r\n ],\r\n\r\n\r\n imports: [\r\n MatFormFieldModule,\r\n MatDatepickerModule,\r\n MatFormField,\r\n MatInput,\r\n MatIcon,\r\n MatDatepickerToggle,\r\n MatDatepicker,\r\n MatDatepickerInput,\r\n NgClass,\r\n NgIf,\r\n InfoItemComponent,\r\n ReactiveFormsModule,\r\n ValidationErrorsComponent\r\n ]\r\n})\r\nexport class DatePickerComponent<Type> extends ControlValueAccessorDirective<Type> implements AfterViewInit {\r\n date = new FormControl();\r\n @Input() tooltip!: string;\r\n @Input() className!: string;\r\n @Input() calendarType!: string;\r\n @Input() showLabel = true;\r\n @Input() yearOnly: boolean;\r\n @Input() resetDate = false;\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\r\n @Input() set format(_format: string) {\r\n if (_format) {\r\n this.dateFormat.updateDateFormat({dateInput: _format}, {dateInput: _format});\r\n }\r\n }\r\n\r\n @ViewChild(MatDatepicker) datepicker: MatDatepicker<any>;\r\n floatLabel: any = 'auto';\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 if (changes) {\r\n if (this.customMaxDate) {\r\n const date = new Date(this.customMaxDate);\r\n this.maxDateValue = new Date(date.getFullYear(), date.getMonth(), date.getDate());\r\n }\r\n }\r\n if (changes && !this.isReadOnly) { // add min date value for 2 dates validations\r\n if (this.customMinDate) {\r\n const date = new Date(this.customMinDate);\r\n this.minDateValue = new Date(date.getFullYear(), date.getMonth(), date.getDate() + 1);\r\n }\r\n }\r\n }\r\n\r\n\r\n focusPicker(picker) {\r\n picker.open();\r\n }\r\n\r\n\r\n dateChange(event: any) {\r\n if (event?.value && !this.isDisabled) {\r\n let inputValue\r\n inputValue = format(new Date(event.value), \"yyyy-MM-dd'T'HH:mm:ss.SSSxxx\");\r\n this.control.setValue(inputValue)\r\n }\r\n }\r\n\r\n clearDateValue(event): void {\r\n this.control.setValue(null)\r\n }\r\n\r\n private activateYearOnlyMode(): void {\r\n this.dateFormat.updateDateFormat(YEAR_ONLY_FORMAT.parse, YEAR_ONLY_FORMAT.display);\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}\r\n","@if(!isReadOnly){\r\n <ng-container>\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')}} </span>\r\n }\r\n </div>\r\n }\r\n <div class=\"justify-content-between mb-1\">\r\n <mat-form-field [ngClass]=\"{'input-disabled' : isDisabled }\" [floatLabel]=\"floatLabel\">\r\n <label class=\"mat-form-content\">\r\n <input matInput (dateInput)=\"dateChange($event)\" [placeholder]=\"label ? (i18n.translate('select') + ' ' + label) : ''\" (focus)=\"focusPicker(dp)\" [min]=\"minDateValue\"\r\n [max]=\"maxDateValue\" readonly [matDatepicker]=\"dp\" [formControl]=\"control\">\r\n </label>\r\n @if(control?.value){\r\n <ds-icon matSuffix icon=\"close\" class=\"fc-onyx fs-10 mx-2 cursor-pointer\" (click)=\"clearDateValue($event)\"></ds-icon>\r\n }\r\n <mat-datepicker-toggle matSuffix [for]=\"dp\">\r\n <ds-icon icon=\"calendar-o\" class=\"fc-black fs-18\" matDatepickerToggleIcon></ds-icon>\r\n </mat-datepicker-toggle>\r\n <mat-datepicker #dp>\r\n </mat-datepicker>\r\n <!-- <mat-error *ngIf=\"errorMessage\">{{errorMessage}}</mat-error> -->\r\n </mat-form-field>\r\n <app-validation-errors [errors]=\"control.errors\"></app-validation-errors>\r\n </div>\r\n \r\n </ng-container>\r\n}\r\n@if(isReadOnly && control){\r\n <ng-container>\r\n <app-info-item class=\"info-item w-100\" type=\"date\" [insideTable]=\"insideTable\" [dateType]=\"calendarType\" [label]=\"labelTextReadMode\"\r\n [value]=\"control.value\" [hasLabel]=\"label? true: false\">\r\n </app-info-item>\r\n </ng-container>\r\n}\r\n\r\n","/* eslint-disable @angular-eslint/component-selector */\r\n/* eslint-disable @typescript-eslint/no-empty-function */\r\nimport {Component, CUSTOM_ELEMENTS_SCHEMA, forwardRef, Inject, Input, SimpleChanges, ViewChild} from '@angular/core';\r\nimport {ControlValueAccessorDirective} from '../control-value-accessor.directive';\r\nimport {FormControl, NG_VALUE_ACCESSOR, ReactiveFormsModule} from '@angular/forms';\r\nimport {MatFormField, MatFormFieldModule} from '@angular/material/form-field';\r\nimport {MatDatepicker, MatDatepickerInput, MatDatepickerModule, MatDatepickerToggle} from '@angular/material/datepicker';\r\nimport {MatInput} from '@angular/material/input';\r\nimport {MatIcon} from '@angular/material/icon';\r\nimport {NgClass, NgIf} from '@angular/common';\r\nimport {InfoItemComponent} from '../info-item/info-item.component';\r\nimport {DateAdapter, MAT_DATE_FORMATS, MAT_DATE_LOCALE} from '@angular/material/core';\r\nimport {MAT_MOMENT_DATE_ADAPTER_OPTIONS, MomentDateAdapter} from '@angular/material-moment-adapter';\r\nimport {CustomDateFormat} from '../date-picker/date-format';\r\n// import moment from 'moment';\r\nimport {ValidationErrorsComponent} from '../validation-errors/validation-errors.component';\r\nimport {format} from \"date-fns\";\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\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: DateAdapter,\r\n useClass: MomentDateAdapter,\r\n deps: [MAT_DATE_LOCALE, MAT_MOMENT_DATE_ADAPTER_OPTIONS],\r\n },\r\n {\r\n provide: MAT_DATE_FORMATS,\r\n useClass: CustomDateFormat\r\n },\r\n ],\r\n imports: [\r\n MatFormFieldModule,\r\n MatDatepickerModule,\r\n MatFormField,\r\n MatInput,\r\n MatIcon,\r\n MatDatepickerToggle,\r\n MatDatepicker,\r\n MatDatepickerInput,\r\n NgClass,\r\n NgIf,\r\n InfoItemComponent,\r\n ReactiveFormsModule,\r\n ValidationErrorsComponent\r\n ]\r\n\r\n})\r\nexport class DateRangePickerComponent<Type> extends ControlValueAccessorDirective<Type> {\r\n @Input() tooltip! : string;\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 startControl = new FormControl()\r\n endControl = new FormControl();\r\n startInputValue:string\r\n endInputValue:string\r\n dateRange:any\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 if (changes) {\r\n if (this.customMaxDate) {\r\n const date = new Date(this.customMaxDate);\r\n this.maxDateValue = new Date(date.getFullYear(), date.getMonth(), date.getDate());\r\n }\r\n }\r\n if (changes && !this.isReadOnly) { // add min date value for 2 dates validations\r\n if (this.customMinDate) {\r\n const date = new Date(this.customMinDate);\r\n this.minDateValue = new Date(date.getFullYear(), date.getMonth(), date.getDate() + 1);\r\n }\r\n }\r\n }\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 if (this.startControl.value && !this.endControl.value){\r\n this.startInputValue = format(new Date(event.value), \"yyyy-MM-dd'T'HH:mm:ss.SSSxxx\");\r\n // this.startInputValue = moment(event.value).locale('en-US').format(\"YYYY-MM-DDTHH:mm:ss.SSSZ\")\r\n }\r\n if(this.startControl.value && this.endControl.value){\r\n this.endInputValue = format(new Date(event.value), \"yyyy-MM-dd'T'HH:mm:ss.SSSxxx\");\r\n // this.endInputValue = moment(event.value).locale('en-US').format(\"YYYY-MM-DDTHH:mm:ss.SSSZ\")\r\n }\r\n\r\n if(this.endInputValue && this.startInputValue){\r\n this.dateRange = {\r\n startDate: this.startInputValue,\r\n endDate: this.endInputValue\r\n }\r\n }\r\n\r\n if (this.dateRange?.startDate && this.dateRange?.endDate){\r\n this.control.setValue(this.dateRange)\r\n }\r\n }\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.setValue(null);\r\n this.endControl.setValue(null);\r\n this.startControl.setValue(null);\r\n }\r\n\r\n private activateYearOnlyMode(): void {\r\n this.dateFormat.updateDateFormat(YEAR_ONLY_FORMAT.parse, YEAR_ONLY_FORMAT.display);\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(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')}} </span>\r\n }\r\n </div>\r\n}\r\n<mat-form-field class=\"date-range primary-form {{className}}\">\r\n <label class=\"mat-form-content\">\r\n <mat-date-range-input [rangePicker]=\"picker\">\r\n <input matStartDate placeholder=\"Start date\" [formControl]=\"startControl\" [value]=\"value?.startDate ? value?.startDate : null\" (dateInput)=\"dateChange($event)\" (focus)=\"focusPicker(picker)\" [min]=\"minDateValue\"\r\n [max]=\"maxDateValue\">\r\n <input matEndDate placeholder=\"End date\" [formControl]=\"endControl\" [value]=\"value?.endDate ? value?.endDate : null\" (dateInput)=\"dateChange($event)\" (focus)=\"focusPicker(picker)\" [min]=\"minDateValue\"\r\n [max]=\"maxDateValue\">\r\n </mat-date-range-input>\r\n </label>\r\n @if(control?.value){\r\n <ds-icon matSuffix icon=\"close\" class=\"fc-onyx fs-10 mx-2 cursor-pointer\" (click)=\"clearDateValue($event)\"></ds-icon>\r\n }\r\n <mat-datepicker-toggle matSuffix [for]=\"picker\" [disableRipple]=\"true\">\r\n <i class=\"sfi sfi-calendar-o fc-onyx font-18\" matDatepickerToggleIcon></i>\r\n </mat-datepicker-toggle>\r\n <mat-date-range-picker #picker></mat-date-range-picker>\r\n</mat-form-field>\r\n<app-validation-errors [errors]=\"control.errors\"></app-validation-errors>\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\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 ],\r\n standalone: true\r\n})\r\nexport class FormLabelComponent {\r\n @Input() hideOption = true;\r\n @Input() showLabel = true;\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 mb-1\" *ngIf=\"showLabel\">\r\n <span class=\"form-label mb-0\">{{label}}</span>\r\n <span *ngIf=\"optional && !hideOption\" class=\"optional-input\">\r\n {{i18n.translate('optional')}}\r\n </span>\r\n</div>\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","/* 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, ReactiveFormsModule} from '@angular/forms';\r\nimport { Component, CUSTOM_ELEMENTS_SCHEMA, Input, SimpleChanges, EventEmitter, forwardRef } from '@angular/core';\r\nimport {MatError, MatFormField, MatHint} from '@angular/material/form-field';\r\nimport {SatPopoverModule} from \"@ncstate/sat-popover\";\r\nimport {NgClass, NgIf} from \"@angular/common\";\r\nimport {InfoItemComponent} from \"../info-item/info-item.component\";\r\nimport {MatInput} from \"@angular/material/input\";\r\nimport { ControlValueAccessorDirective } from '../control-value-accessor.directive';\r\nimport { ValidationErrorsComponent } from '../validation-errors/validation-errors.component';\r\nimport {EnOnlyDirective} from \"../../../../directives/en.directive\";\r\nimport {ArOnlyDirective} from \"../../../../directives/ar.directive\";\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 SatPopoverModule,\r\n ReactiveFormsModule,\r\n NgIf,\r\n MatError,\r\n MatHint,\r\n NgClass,\r\n InfoItemComponent,\r\n MatFormField,\r\n MatInput,\r\n ValidationErrorsComponent,\r\n EnOnlyDirective,\r\n ArOnlyDirective\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() tooltip!: string;\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\r\n}\r\n","@if(!isReadOnly){\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){<span class=\"fs-11 fc-dark-gray\">{{\r\n i18n.translate(\"Optional\")\r\n }}</span\r\n >} @if(hasTooltip){\r\n <span class=\"form-label mb-0\">\r\n {{ tooltip }}\r\n <ds-icon\r\n icon=\"info fs-22\"\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}\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\"></app-validation-errors>\r\n\r\n} @if(isReadOnly && (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}\r\n\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>\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, ReactiveFormsModule} from '@angular/forms';\r\nimport { Component, CUSTOM_ELEMENTS_SCHEMA, EventEmitter, forwardRef, Input, Output } from '@angular/core';\r\nimport {MatFormField} from '@angular/material/form-field';\r\nimport {NgClass, NgIf} from \"@angular/common\";\r\nimport {NgxMaskDirective} from \"ngx-mask\";\r\nimport {InfoItemComponent} from \"../info-item/info-item.component\";\r\nimport {SatPopoverModule} from \"@ncstate/sat-popover\";\r\nimport {MatInput} from \"@angular/material/input\";\r\nimport { ControlValueAccessorDirective } from '../control-value-accessor.directive';\r\nimport { ValidationErrorsComponent } from '../validation-errors/validation-errors.component';\r\nimport {NumberDirective} from \"../../../../directives/number.directive\";\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 MatFormField,\r\n NgIf,\r\n NgClass,\r\n ReactiveFormsModule,\r\n NgxMaskDirective,\r\n InfoItemComponent,\r\n SatPopoverModule,\r\n MatInput,\r\n NumberDirective,\r\n ValidationErrorsComponent\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() tooltip!: string;\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 @Output() emitedChangedValue = new EventEmitter();\r\n\r\n\r\n // ngAfterViewChecked() {\r\n // this.cdRef.detectChanges();\r\n // }\r\n\r\n}\r\n","@if(!isReadOnly){\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){<span class=\"fs-11 fc-dark-gray\">{{\r\n i18n.translate(\"Optional\")\r\n }}</span\r\n >} @if(hasTooltip){\r\n <span class=\"form-label mb-0\">\r\n {{ tooltip }}\r\n <ds-icon\r\n icon=\"info fs-22\"\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 }\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 && (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 }\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>\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, ReactiveFormsModule} from '@angular/forms';\r\nimport { Component, CUSTOM_ELEMENTS_SCHEMA, forwardRef, Input } from '@angular/core';\r\nimport {MatFormField} from '@angular/material/form-field';\r\nimport {NgClass, NgIf} from \"@angular/common\";\r\nimport {InfoItemComponent} from \"../info-item/info-item.component\";\r\nimport {SatPopoverModule} from \"@ncstate/sat-popover\";\r\nimport { ControlValueAccessorDirective } from '../control-value-accessor.directive';\r\nimport { ValidationErrorsComponent } from '../validation-errors/validation-errors.component';\r\nimport { MatInput } from '@angular/material/input';\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 MatFormField,\r\n NgIf,\r\n InfoItemComponent,\r\n SatPopoverModule,\r\n NgClass,\r\n MatFormField,\r\n MatInput,\r\n ReactiveFormsModule,\r\n ValidationErrorsComponent\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() tooltip!: string;\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 displayErrors(data){\r\n console.log(this.control.errors)\r\n }\r\n}\r\n","@if(!isReadOnly){\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){<span class=\"fs-11 fc-dark-gray\">{{\r\n i18n.translate(\"Optional\")\r\n }}</span\r\n >} @if(hasTooltip){\r\n <span class=\"form-label mb-0\">\r\n {{ tooltip }}\r\n <ds-icon\r\n icon=\"info fs-22\"\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 }\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 && (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 }\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>\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 { Component, CUSTOM_ELEMENTS_SCHEMA, forwardRef, Input, SimpleChanges } 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: [SatPopoverModule, MatFormField, NgxMaskDirective, NgIf, InfoItemComponent, ReactiveFormsModule, NgClass]\r\n})\r\nexport class InputMaskComponent<Type> extends ControlValueAccessorDirective<Type> {\r\n @Input() tooltip!: string;\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]=\"!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){\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","/* eslint-disable @typescript-eslint/no-unused-vars */\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, ReactiveFormsModule} from '@angular/forms';\r\nimport { Component, CUSTOM_ELEMENTS_SCHEMA, forwardRef, Input } from '@angular/core';\r\nimport { MatError, MatFormField, MatHint} from '@angular/material/form-field';\r\nimport {NgClass, NgIf} from \"@angular/common\";\r\nimport {InfoItemComponent} from \"../info-item/info-item.component\";\r\nimport {SatPopoverModule} from \"@ncstate/sat-popover\";\r\nimport { ControlValueAccessorDirective } from '../control-value-accessor.directive';\r\nimport { MatInput } from '@angular/material/input';\r\nimport {MycurrencyPipe} from \"../../../../pipes\";\r\nimport { ValidationErrorsComponent } from '../validation-errors/validation-errors.component';\r\nimport {MycurrencyDirective} from \"../../../../directives/currency.directive\";\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 ReactiveFormsModule,\r\n NgClass,\r\n MatError,\r\n MatHint,\r\n InfoItemComponent,\r\n SatPopoverModule,\r\n MatFormField,\r\n MatInput,\r\n NgIf,\r\n MycurrencyDirective,\r\n ValidationErrorsComponent\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() tooltip!: string;\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 public mycurrencyPipe: MycurrencyPipe\r\n\r\n}\r\n","@if(!isReadOnly){\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){<span class=\"fs-11 fc-dark-gray\">{{\r\n i18n.translate(\"Optional\")\r\n }}</span\r\n >} @if(hasTooltip){\r\n <span class=\"form-label mb-0\">\r\n {{ tooltip }}\r\n <ds-icon\r\n icon=\"info fs-22\"\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 }\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 && (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 }\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>\r\n ","// export * from './input-autocomplete.module';\r\nexport * from './input-autocomplete.model';","import {FormControl, FormsModule, NG_VALUE_ACCESSOR} from '@angular/forms';\r\n/* eslint-disable @typescript-eslint/no-explicit-any */\r\n/* eslint-disable @angular-eslint/component-selector */\r\nimport { Component, Input, Output, EventEmitter, CUSTOM_ELEMENTS_SCHEMA, forwardRef } from '@angular/core';\r\nimport {FloatLabelType, MatError, MatFormField} from \"@angular/material/form-field\";\r\nimport { CoreI18nService } from '../../../../services';\r\nimport {Ng2TelInputModule} from \"ng2-tel-input\";\r\nimport {InfoItemComponent} from \"../info-item/info-item.component\";\r\nimport {NgIf} from \"@angular/common\";\r\nimport { ControlValueAccessorDirective } from '../control-value-accessor.directive';\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 MatFormField,\r\n MatError,\r\n InfoItemComponent,\r\n FormsModule,\r\n NgIf,\r\n // Ng2TelInputModule\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> {\r\n @Input() tooltip!: string;\r\n @Input() floatLabel: any = 'auto';\r\n @Input() className = 'bordered-input';\r\n @Input() showLabel = true;\r\n @Input() matPrefix!: boolean;\r\n @Input() iconPrefixName!: string;\r\n @Input() iconSuffixName!: string;\r\n @Input() field: any;\r\n @Input() name: string;\r\n @Input() controller: FormControl = new FormControl();\r\n @Input() error!: string;\r\n @Output() checkPhoneError = new EventEmitter<boolean>();\r\n @Output() phoneValue = new EventEmitter<string>();\r\n @Output() totalNumber = new EventEmitter<string>();\r\n countryCode = '966';\r\n @Input() showEdit = false;\r\n @Output() inputValue = new EventEmitter();\r\n @Output() emitedValue = new EventEmitter();\r\n telhasError: boolean;\r\n @Output() emitedError = new EventEmitter();\r\n\r\n\r\n\r\n onCountryChange(event: any) {\r\n this.countryCode = event.dialCode\r\n // console.log(event)\r\n }\r\n\r\n hasError(event: boolean) {\r\n console.log(event);\r\n this.telhasError = !event\r\n if (this.telhasError) {\r\n this.emitedError.emit(this.telhasError)\r\n\r\n console.log(\" error\", this.error);\r\n this.controller.setErrors({ 'incorrect': true });\r\n this.error = this.i18n.translate('messageErrorPhoneNumber');\r\n } else {\r\n this.controller.setErrors({ 'incorrect': false });\r\n }\r\n this.emitedValue.emit(\r\n {\r\n field:this.field,\r\n hasError:this.telhasError\r\n }\r\n )\r\n\r\n // this.checkPhoneError.emit(event);\r\n\r\n // if (this.controller.value != null) {\r\n // if (event == false && this.controller.value.length < 0) {\r\n // // this.phoneHasErrReqiured = true;\r\n // // this.phoneHasErrValid = false;\r\n\r\n // this.error = this.translate.translate('messageErrorPhoneNumber');\r\n\r\n // } else {\r\n // if (event == false) {\r\n // if (this.controller.value.length == 0) {\r\n // this.error = this.translate.translate('messageErrorPhoneNumber');\r\n // } else {\r\n // this.error = this.translate.translate('messageErrorPhoneNumber');\r\n // }\r\n // } else {\r\n // if (this.controller.value.length == 0) {\r\n // this.error = this.translate.translate('messageErrorPhoneNumber');\r\n // } else {\r\n // this.error = '';\r\n // }\r\n // }\r\n // }\r\n // } else {\r\n // this.error = this.translate.translate('messageErrorPhoneNumber');\r\n // }\r\n // // console.log(\" this.error\", this.error);\r\n }\r\n\r\n getNumber(event: any) {\r\n console.log('ssssssssssssssssssssssssssssssssssssssssssssssss')\r\n this.phoneValue.emit(this.countryCode)\r\n this.totalNumber.emit(event)\r\n // this.emitedValue.emit(this.field)\r\n this.emitedError.emit(this.telhasError)\r\n }\r\n\r\n telInputObject($event: any) {\r\n console.log(event)\r\n }\r\n\r\n editClicked() {\r\n console.log('xxxxxxxxxxxxxx')\r\n // this.editPhone.emit()\r\n }\r\n\r\n onValueChange(data: any) {\r\n // console.log('xxxxxxxxxxxxxx',this.countryCode,data.target.value)\r\n this.inputValue.emit(data.target.value)\r\n }\r\n\r\n}\r\n","<ng-container *ngIf=\"!isReadOnly\">\r\n <div class=\"d-flex justify-content-between mb-1\" *ngIf=\"showLabel\">\r\n <span class=\"form-label mb-0\">{{label}}</span>\r\n <span *ngIf=\"!required\" class=\"fs-11 fc-dark-gray\"> {{i18n.translate('Optional')}}\r\n </span>\r\n </div>\r\n <mat-form-field style=\"height: 50px;\" class=\"primary-form input-telephone {{className}}\" floatLabel=\"always\">\r\n <mat-label>\r\n {{label}}\r\n </mat-label>\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 </label>\r\n\r\n </mat-form-field>\r\n <mat-error class=\"mb-2 fs-14\" *ngIf=\"controller?.errors?.['incorrect']\">\r\n {{error}}\r\n </mat-error>\r\n <!-- <mat-error *ngIf=\"controller?.errors?.incorrect\" class=\"fc-red1-imp\"> {{error}} </mat-error> -->\r\n\r\n\r\n <!-- <span *ngIf=\"telhasError\"> {{error}}</span> -->\r\n</ng-container>\r\n\r\n\r\n<ng-container *ngIf=\"isReadOnly\">\r\n <app-info-item class=\"info-item w-100\" [type]=\"'telephone'\" [label]=\"label\"\r\n [value]=\"field\"></app-info-item>\r\n</ng-container>\r\n","import { ReactiveFormsModule, Validators } from '@angular/forms';\r\n/* eslint-disable @angular-eslint/use-lifecycle-interface */\r\n/* eslint-disable @angular-eslint/no-output-on-prefix */\r\n/* eslint-disable @typescript-eslint/no-explicit-any */\r\n/* eslint-disable @angular-eslint/component-selector */\r\nimport { BaseComponent } from './../base-component/base-component.component';\r\nimport { Component, CUSTOM_ELEMENTS_SCHEMA, EventEmitter, Input, Output, SimpleChanges } from '@angular/core';\r\nimport { FloatLabelType } from '@angular/material/form-field';\r\nimport * as Constants from '../../../../constants';\r\nimport { NgClass, NgIf } from '@angular/common';\r\nimport { MatAutocompleteModule } from '@angular/material/autocomplete';\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 NgClass,\r\n MatAutocompleteModule,\r\n NgIf,\r\n ReactiveFormsModule\r\n ]\r\n})\r\nexport class SearchEmployeeComponent extends BaseComponent {\r\n @Input() valueName!: string;\r\n @Input() label!: string;\r\n @Input() tooltip!: string;\r\n @Input() className = 'bordered-input';\r\n @Input() showLabel = true;\r\n @Input() optional = false;\r\n @Input() data!: any[];\r\n filteredOptions: any;\r\n // @Input() floatLabel: FloatLabelType = 'auto';\r\n @Input() floatLabel: any = 'auto';\r\n @Input() error!: string;\r\n selectedItems: any[] = new Array<any>();\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 searchingForEmp = false;\r\n @Input() arrayList: any[] = [];\r\n @Input() isUniqueUsers = false;\r\n userAlreadyExist = false;\r\n @Output() emitedDeletedValue = new EventEmitter();\r\n\r\n ngOnInit() {\r\n // this.resetPropagator.subscribe(this, this.resetSearchEmpData);\r\n if (!this.field) {\r\n this.field = {\r\n personEmail: null,\r\n personName: null,\r\n };\r\n } else {\r\n this.controller.setValue(this.field?.personName);\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 }\r\n\r\n ngOnChanges(changes: SimpleChanges) {\r\n if (changes?.['field']) {\r\n if (changes['field']?.currentValue?.personEmail == '' || changes['field']?.currentValue?.personEmail == null) {\r\n this.controller.setValue('')\r\n } else {\r\n this.controller.setValue(changes['field']?.currentValue?.personName)\r\n }\r\n }\r\n if (changes?.['disabled']) {\r\n if (changes['disabled'].currentValue) {\r\n this.controller.disable()\r\n } else {\r\n this.controller.enable()\r\n }\r\n }\r\n }\r\n\r\n resetSearchEmpData() {\r\n if (!this.isReadOnly) {\r\n if (this.multiple) {\r\n this.arrayList = [];\r\n this.field = {\r\n personName: null,\r\n personEmail: null,\r\n };\r\n this.emitedValue.emit([]);\r\n } else {\r\n this.field = {\r\n personName: null,\r\n personEmail: null,\r\n };\r\n this.emitedValue.emit(this.field);\r\n this.controller.setValue(null);\r\n }\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.filteredOptions = this.coreStateMachineService\r\n .dispatch(Constants.STATE_MACHINE_ACTION_SEARCH_EMPLOYEE, input)\r\n ?.then((result: any) => {\r\n this.loading = false;\r\n this.data = result.options;\r\n });*/\r\n } else if (input.length == 0) {\r\n if(this.multiple){\r\n const obj = {\r\n arrayList: this.arrayList,\r\n field: this.field\r\n }\r\n this.emitedValue.emit(obj);\r\n }else{\r\n this.emitedValue.emit(null);\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 this.field = {\r\n personName: object.description,\r\n personEmail: object.email,\r\n job:object.jobPosition,\r\n jobCode:object.jobCode,\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 if (this.multiple) {\r\n if (this.isUniqueUsers && this.arrayList.some((item) => item?.personEmail === object?.email)) {\r\n this.userAlreadyExist = true;\r\n return;\r\n }\r\n\r\n this.arrayList.push(this.field);\r\n const obj = {\r\n arrayList: this.arrayList,\r\n field: this.field\r\n };\r\n this.emitedValue.emit(obj);\r\n // this.emitedValue.emit(this.field);\r\n this.controller.setValue(null);\r\n this.field = {\r\n personEmail: null,\r\n personName: null,\r\n job:null,\r\n jobCode:null\r\n };\r\n } else {\r\n this.emitedValue.emit(this.field);\r\n this.controller.setValue(object.description);\r\n }\r\n }\r\n\r\n openHints() {\r\n // this.sidenavService.publish('open', FaqSidenavComponent, 'end', 'over');\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","<ng-container *ngIf=\"!isReadOnly\">\r\n <div class=\"d-flex justify-content-between mb-1\" *ngIf=\"hasLabel\">\r\n <span class=\"form-label mb-0\">\r\n {{labelTextWriteMode}}\r\n <ds-icon icon=\"info\" class=\"cursor-pointer\" [satPopoverAnchor]=\"searchEmpPopover\"\r\n ></ds-icon>\r\n <!-- (click)=\"searchEmpPopover.toggle(); $event.stopImmediatePropagation()\" -->\r\n </span>\r\n\r\n <span *ngIf=\"optional && !hideOption\" class=\"fs-11 fc-dark-gray\"> {{i18n.translate('Optional')}}\r\n </span>\r\n </div>\r\n <mat-form-field class=\"primary-form {{className}}\" [floatLabel]=\"floatLabel\">\r\n <mat-label>\r\n {{label}}\r\n </mat-label>\r\n <ds-icon matPrefix icon=\"search\" class=\"fc-coral fs-18\"></ds-icon>\r\n <label class=\"mat-form-content\">\r\n <input type=\"text\" aria-label=\"Number\" (input)=\"onLoadOptions($event)\" matInput [disabled]=\"disabled\"\r\n [formControl]=\"controller\" [matAutocomplete]=\"auto\">\r\n \r\n </label>\r\n <mat-error class=\"mb-2\" *ngIf=\"showErrorMessage\">{{errorMessage}}\r\n </mat-error>\r\n <span class=\"sfi sfi-spinner d-inline-block spin fc-coral\" matSuffix *ngIf=\"loading\"></span>\r\n <mat-autocomplete #auto=\"matAutocomplete\">\r\n <mat-option *ngFor=\"let option of data\" [value]=\"option?.['personName']\"\r\n (onSelectionChange)=\"selectOption(option , $event)\">\r\n <div class=\"d-flex align-items-center\">\r\n <div class=\"img-card circled-img small\">\r\n <img [src]=\"getImage(option?.email)\" onerror=\"this.onerror=null;this.src='assets/images/user.svg';\" alt=\"\">\r\n </div>\r\n <span class=\"mx-2\"></span>\r\n <div class=\"line-height-1\">\r\n <h6 class=\"fs-17 fw-medium fc-onyx mb-0 line-height-1\">{{option?.name}}</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 </mat-autocomplete>\r\n <mat-error class=\"mb-2\" *ngIf=\"(!controller?.valid)\">{{i18n.translate('validSearchError')}}{{label}}\r\n </mat-error>\r\n <mat-hint *ngIf=\"showHint\">\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 </mat-form-field>\r\n <mat-error class=\"mb-2\" *ngIf=\"showErrorMessage\">{{errorMessage}}\r\n </mat-error>\r\n\r\n <mat-error class=\"mb-2\" *ngIf=\"userAlreadyExist\">\r\n {{ i18n.translate('userAlreadyExist') }}\r\n </mat-error>\r\n\r\n <div class=\"col-12\" *ngIf=\"arrayList?.length && !isReadOnly && multiple\">\r\n <div class=\"example-list n-results\">\r\n <div class=\"example-box n-col px-3\" [ngClass]=\"{'mt-0': ind === 0}\"\r\n *ngFor=\"let emails of arrayList; let ind = index\">\r\n <div class=\"d-flex flex-grow-1 w-100\">\r\n <div class=\"user-info flex-grow-1\">\r\n <img [src]=\"getImage(emails?.personEmail)\" onerror=\"this.onerror=null;this.src='assets/images/user.svg';\"\r\n alt=\"\" class=\"prof-img\" draggable=\"false\">\r\n <label *ngIf=\"emails?.personName\">\r\n {{(emails?.personName)}}\r\n <span class=\"title\">\r\n {{emails?.personEmail}}\r\n </span>\r\n </label>\r\n </div>\r\n <ds-button class=\"ds-btn-action\" size=\"small\" *ngIf=\"!(isReadOnly)\" (click)=\"deleteRow(ind,emails)\" icon>\r\n <ds-icon icon=\"trash\" class=\"fc-red fs-20\"></ds-icon>\r\n </ds-button>\r\n\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n\r\n</ng-container>\r\n\r\n<ng-container *ngIf=\"(isReadOnly && (field?.personName || multiple))\">\r\n <app-info-item class=\"d-flex flex-wrap align-items-center info-item w-100 mb-2\" type=\"user-picker\" [hasLabel]=\"hasLabel\"\r\n [multiple]=\"multiple\" [ngClass]=\"{'user-picker': !isReadOnly}\" [actionType]=\"!isReadOnly ? 'delete' : 'edit'\"\r\n [label]=\"labelTextReadMode\" [name]=\"field?.personName\" [value]=\"field?.personEmail\" [arrayList]=\"arrayList\">\r\n </app-info-item>\r\n</ng-container>\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>{{i18n.translate('searchEmployeeTooltip_1')}}</li>\r\n <li>{{i18n.translate('searchEmployeeTooltip_2')}}</li>\r\n <li>{{i18n.translate('searchEmployeeTooltip_3')}}</li>\r\n <li>{{i18n.translate('searchEmployeeTooltip_4')}}</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.setValue(null);\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, ReactiveFormsModule} from '@angular/forms';\r\n/* eslint-disable @angular-eslint/component-selector */\r\n/* eslint-disable @angular-eslint/use-lifecycle-interface */\r\nimport {Component, CUSTOM_ELEMENTS_SCHEMA, forwardRef, Input} from '@angular/core';\r\nimport {MatFormField} from \"@angular/material/form-field\";\r\nimport {NgClass, NgIf} from \"@angular/common\";\r\nimport { ControlValueAccessorDirective } from '../control-value-accessor.directive';\r\nimport { MatInput } from '@angular/material/input';\r\nimport { ValidationErrorsComponent } from '../validation-errors/validation-errors.component';\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 MatFormField,\r\n MatInput,\r\n ReactiveFormsModule,\r\n NgIf,\r\n NgClass,\r\n ValidationErrorsComponent\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\r\n\r\n focusInFunction() {\r\n this.validateTextAreaBorder();\r\n }\r\n\r\n focusOutFunction() {\r\n this.validateTextAreaBorder();\r\n }\r\n\r\n validateTextAreaBorder() {\r\n // return {\r\n // \"field-border-error\": (this.field && this.field.length < this.minLength) || (this.field && this.field.length > this.maxLength),\r\n // }\r\n }\r\n}\r\n","@if(!isReadOnly){\r\n <ng-container>\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\">\r\n <!-- {{'Optional'| transloco}} -->{{ i18n.translate('Optional') }}\r\n </span>\r\n }\r\n </div>\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\r\n (focusout)=\"focusOutFunction()\" (focusin)=\"focusInFunction()\" max=\"maxValue\"\r\n [formControl]=\"control\" matInput></textarea>\r\n }\r\n @if (type === 'enOnly'){\r\n <textarea [placeholder]=\"placeholder\" min=\"minlength\" enOnly\r\n (focusout)=\"focusOutFunction()\" (focusin)=\"focusInFunction()\" 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\r\n (focusout)=\"focusOutFunction()\" (focusin)=\"focusInFunction()\" 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 && (showIfEmpty || control)){\r\n <ng-container>\r\n <app-info-item class=\"info-item w-100\" [insideTable]=\"insideTable\" [label]=\"label\" [value]=\"control\" [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","/* eslint-disable @typescript-eslint/no-explicit-any */\r\n/* eslint-disable @angular-eslint/no-output-on-prefix */\r\n/* eslint-disable @angular-eslint/use-lifecycle-interface */\r\n/* eslint-disable @angular-eslint/component-selector */\r\nimport { BaseComponent } from './../base-component/base-component.component';\r\nimport { Component, Input, Output, EventEmitter } from '@angular/core';\r\nimport {MatButtonToggle, MatButtonToggleGroup} from \"@angular/material/button-toggle\";\r\nimport {SatPopoverModule} from \"@ncstate/sat-popover\";\r\nimport {InfoItemComponent} from \"../info-item/info-item.component\";\r\nimport {NgIf} from \"@angular/common\";\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 InfoItemComponent,\r\n NgIf\r\n ],\r\n standalone: true\r\n})\r\nexport class ToggleButtonComponent extends BaseComponent {\r\n @Input() label!: string;\r\n @Input() tooltip!: string;\r\n @Input() className = 'bordered-input';\r\n @Input() showLabel = true;\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\r\n ngOnInit(): void {\r\n // this.resetPropagator.subscribe(this, this.resetKeyValue);\r\n }\r\n\r\n resetKeyValue() {\r\n if (!this.isReadOnly) {\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 emitSelectedValue(event: any): void {\r\n\r\n this.emitedValue.emit({\r\n key: event.value,\r\n value: event.description\r\n });\r\n }\r\n\r\n}\r\n","<ng-container *ngIf=\"!isReadOnly\">\r\n <div class=\"d-flex justify-content-between mb-1\" *ngIf=\"hasLabel\">\r\n <span class=\"form-label mb-0\">{{label}}</span>\r\n <span *ngIf=\"!required\" class=\"fs-11 fc-dark-gray\"> {{i18n.translate('Optional')}}\r\n </span>\r\n </div>\r\n\r\n <mat-button-toggle-group class=\"mb-3 secondary-toggle\" [value]=\"field?.key\" id=\"{{name}}{{randomID}}\"\r\n name=\"{{name}}{{randomID}}\" aria-label=\"Font Style\" *ngIf=\"lov?.options\" [multiple]=\"multiple\">\r\n <mat-button-toggle *ngFor=\"let item of lov?.options\" [value]=\"item?.value\" (click)=\"emitSelectedValue(item); hasHint ? hintSection?.toggle() : null\" [satPopoverAnchor]=\"hintSection\">\r\n <span>\r\n {{item?.description}}\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]=\"i18n.translate(item?.value)\"></p>\r\n </div>\r\n </sat-popover>\r\n </mat-button-toggle>\r\n </mat-button-toggle-group>\r\n\r\n</ng-container>\r\n\r\n<ng-container *ngIf=\"isReadOnly && field?.value\">\r\n <app-info-item class=\"info-item w-100\" [insideTable]=\"insideTable\" [type]=\"'toggleBtn'\" [label]=\"label\" [value]=\"field?.value\"></app-info-item>\r\n</ng-container>\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>","/* 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 { Component, CUSTOM_ELEMENTS_SCHEMA, ElementRef, Input, ViewChild } from '@angular/core';\r\nimport { AttachmentSectionDataComponent } from '../add-attachment-section/add-attachment-section.component';\r\nimport { BaseComponent } from '../base-component/base-component.component';\r\nimport {CdkDrag, CdkDragDrop, CdkDropList, moveItemInArray} from '@angular/cdk/drag-drop';\r\nimport * as Constants from '../../../../constants';\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\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 imports: [\r\n SatPopoverModule,\r\n MatTooltip,\r\n NgIf,\r\n NgClass,\r\n CdkDropList,\r\n DocsUploaderComponent,\r\n CdkDrag,\r\n SlicePipe,\r\n NgForOf\r\n ],\r\n standalone: true\r\n})\r\nexport class AttachmentSectionComponent extends BaseComponent {\r\n @Input() className = 'info-section';\r\n @Input() attachments = [];\r\n @Input() label = '';\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 @ViewChild('placeholder') placeholderElement: ElementRef;\r\n\r\n\r\n ngOnInit(): void {\r\n // this.resetPropagator.subscribe(this, this.resetAttachmentData);\r\n if (this.attachments) {\r\n this.attachments.forEach(element => {\r\n element.name = element.fileName;\r\n });\r\n }\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 // if (this.multiple) {\r\n\r\n // } else {\r\n // const emptyObj = {\r\n // mimeType: \"\",\r\n // fileContents: \"\",\r\n // fileName: \"\",\r\n // }\r\n // this.emitedValue.emit(emptyObj)\r\n // this.emitedValue.emit(this.attachments)\r\n // }\r\n }\r\n }\r\n\r\n handleEmitValue(data: any, fieldName: string) {\r\n this.popupData[fieldName] = data;\r\n }\r\n\r\n addAttahment(): void {\r\n /* this.coreStateMachineService.attachmentListData = null;\r\n const dialogRef = this.dialog.open(AttachmentSectionDataComponent, {\r\n panelClass: ['main-popup', 'add-attachment-dialog'],\r\n data: {\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 dialogRef.afterClosed().subscribe((resultData) => {\r\n if (resultData != 'close') {\r\n if (resultData?.attachmentId) {\r\n this.attachments.push(resultData);\r\n this.emitedValue.emit(this.attachments);\r\n }\r\n }\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.emitedValue.emit(this.attachments);\r\n }\r\n\r\n editRow(rowData, index): void {\r\n /* this.coreStateMachineService.attachmentListData = Object.assign(rowData);\r\n const dialogRef = this.dialog.open(AttachmentSectionDataComponent, {\r\n panelClass: ['main-popup', 'add-attachment-dialog'],\r\n data: {\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 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 }\r\n }\r\n });*/\r\n }\r\n\r\n downloadAllAttachments(event) {\r\n this.attachments.forEach((file) => {\r\n this.downloadFile(event, file);\r\n });\r\n }\r\n\r\n /*downloadFile(event, field) {\r\n const placeholder = event.target.nextElementSibling;\r\n this.coreStateMachineService.dispatch(Constants.STATE_MACHINE_ACTION_LOAD_FILE, field.attachmentId).then((responseObject) => {\r\n const fileInformation = responseObject.body;\r\n const fileBlob = this.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 }*/\r\n\r\n downloadFile(event, field) {\r\n /* this.coreStateMachineService.dispatch(Constants.STATE_MACHINE_ACTION_LOAD_FILE, field.attachmentId).then((responseObject) => {\r\n const fileInformation = responseObject.body;\r\n const fileBlob = this.dataURItoBlob(fileInformation.fileContents);\r\n const file = new File([fileBlob], fileInformation.fileName, { type: fileInformation.mimeType });\r\n this.placeholderElement.nativeElement.href = URL.createObjectURL(file);\r\n this.placeholderElement.nativeElement.download = file.name;\r\n this.placeholderElement.nativeElement.click();\r\n });*/\r\n}\r\n\r\n 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 const blob = new Blob([arrayBuffer], { type: 'image/jpeg' });\r\n return blob;\r\n }\r\n\r\n protected readonly onmouseleave = onmouseleave;\r\n protected readonly isNaN = isNaN;\r\n}\r\n","<div class=\"mt-2 p-0\">\r\n\r\n @if(hasLabel){\r\n <div class=\"d-flex justify-content-between mb-1\">\r\n <span class=\"form-label mb-0\">{{ label }}</span>\r\n </div>\r\n }\r\n \r\n @if(!isReadOnly){\r\n <div style=\"text-align-last: end\">\r\n @if(!required && !hideOption){\r\n <span class=\"fs-11 fc-dark-gray\">\r\n {{ i18n.translate(\"Optional\") }}\r\n </span>\r\n }\r\n </div>\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)=\"addAttahment(); $event.stopPropagation()\"\r\n >\r\n <div\r\n [ngClass]=\"insideTable ? 'file-uploader-table-dev' : ''\"\r\n class=\"file-uploader-input\"\r\n >\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 >\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 />\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 />\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 />\r\n </svg>\r\n </div>\r\n <div class=\"f-14 fc-black fw-normal\">\r\n <span class=\"fc-coral fw-medium\">{{ i18n.translate(\"browse\") }}</span>\r\n </div>\r\n <div class=\"fs-10 fc-dark-gray\">\r\n {{ i18n.translate(\"addMultiAttachments\") }}\r\n </div>\r\n </div>\r\n </section>\r\n }\r\n\r\n <!-- <ds-message class=\"full\" *ngIf=\"!attachments?.length && !isReadOnly\" label=\"{{i18n.translate('NoAttachments')}}\"></ds-message>-->\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>\r\n <thead>\r\n <tr>\r\n @if(downloadAll){\r\n <th>\r\n <ds-button\r\n square\r\n icon\r\n size=\"small\"\r\n (click)=\"downloadAllAttachments($event)\"\r\n class=\"icon-btn-shadow\"\r\n >\r\n <ds-icon\r\n icon=\"download\"\r\n class=\"fs-20 fs-md-17 fc-purple\"\r\n ></ds-icon>\r\n </ds-button>\r\n <a #placeholder></a>\r\n </th>\r\n }\r\n <th class=\"width30\">{{ i18n.translate(\"FileName\") }}</th>\r\n <th>{{ i18n.translate(\"FileDescription\") }}</th>\r\n <th>{{ i18n.translate(\"comment\") }}</th>\r\n @if(!isReadOnly){\r\n <th></th>\r\n }\r\n </tr>\r\n </thead>\r\n <tbody>\r\n <tr\r\n *ngFor=\"let data of attachments; index as i\"\r\n cdkDrag\r\n [cdkDragDisabled]=\"\r\n attachments?.length == 0 || (!isSortable && !isReadOnly)\r\n \"\r\n >\r\n @if(downloadAll){\r\n <td>{{ i + 1 }}</td>\r\n }\r\n <td>\r\n <app-file-uploader\r\n [allowedExtensions]=\"allowedExtensions\"\r\n class=\"white-attached\"\r\n [field]=\"data\"\r\n name=\"attachment\"\r\n [hasLabel]=\"false\"\r\n [showActions]=\"true\"\r\n [isReadOnly]=\"true\"\r\n >\r\n </app-file-uploader>\r\n </td>\r\n <td class=\"maxWidth px-2\">\r\n <!-- (mouseover)=\"isSortable ? fileDescriptionAnchor.popover.open():$event.stopPropagation();\"-->\r\n <a\r\n class=\"fw-medium fc-black underline cursor-pointer fs-12\"\r\n [hidden]=\"!data?.fileDescription\"\r\n (click)=\"\r\n $event.stopPropagation(); fileDescriptionAnchor.popover.open()\r\n \"\r\n [satPopoverAnchor]=\"fileDescriptionPopover\"\r\n #fileDescriptionAnchor=\"satPopoverAnchor\"\r\n [matTooltip]=\"data?.fileDescription\"\r\n >\r\n {{ data?.fileDescription | slice : 0 : 10 }}....\r\n </a>\r\n <!-- {{ i18n.translate('View') }}-->\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 >\r\n <div\r\n class=\"default-popover p-3 fs-14 text-break view-note-popover\"\r\n >\r\n <bdi class=\"fc-black\">\r\n {{ data?.fileDescription }}\r\n </bdi>\r\n </div>\r\n </sat-popover>\r\n </td>\r\n <td class=\"maxWidth px-2\">\r\n <!-- (mouseover)=\"isSortable ? commentsAnchor.popover.open():$event.stopPropagation();\"-->\r\n <a\r\n class=\"fw-medium fc-black underline cursor-pointer fs-12\"\r\n [hidden]=\"!data?.attachmentcomment\"\r\n (click)=\"$event.stopPropagation(); commentsAnchor.popover.open()\"\r\n [satPopoverAnchor]=\"commentsPopover\"\r\n [matTooltip]=\"data?.attachmentcomment\"\r\n #commentsAnchor=\"satPopoverAnchor\"\r\n >\r\n {{ data?.attachmentcomment | slice : 0 : 10 }}...\r\n </a>\r\n <!-- {{ i18n.translate('View') }}-->\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 >\r\n <div\r\n class=\"default-popover p-3 fs-14 text-break view-note-popover\"\r\n >\r\n <bdi class=\"fc-black\">\r\n {{ data?.attachmentcomment }}\r\n </bdi>\r\n </div>\r\n </sat-popover>\r\n </td>\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, data)\"\r\n class=\"icon-btn-shadow\"\r\n >\r\n <ds-icon icon=\"trash\" class=\"fs-20 fs-md-17 fc-red\"></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(data, i)\"\r\n class=\"icon-btn-shadow\"\r\n >\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 </tr>\r\n </tbody>\r\n </table>\r\n</div>\r\n }\r\n\r\n @if(!isReadOnly && attachments?.length && attachments?.length < attachmentsMax){\r\n <div\r\n class=\"text-center full mt-3\"\r\n>\r\n <ds-button\r\n shape=\"{{ attachments?.length ? 'outline' : '' }}\"\r\n [ngClass]=\"{ 'full-add-btn w-100': attachments?.length }\"\r\n (click)=\"addAttahment(); $event.stopPropagation()\"\r\n >\r\n <ds-icon slot=\"prefix\" icon=\"plus\" class=\"fs-22\"></ds-icon>\r\n {{ i18n.translate(\"addAttachments\") }}\r\n </ds-button>\r\n</div>\r\n }\r\n \r\n</div>\r\n","import { Component, CUSTOM_ELEMENTS_SCHEMA, Input } from '@angular/core';\r\nimport { TextareaComponent } from '../textarea/textarea.component';\r\nimport { BaseComponent } from '../base-component/base-component.component';\r\nimport {MatDialogActions, MatDialogContent} from \"@angular/material/dialog\";\r\nimport {DocsUploaderComponent} from \"../../doc-uploader/docs-uploader.component\";\r\nimport {NgIf} from \"@angular/common\";\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: [TextareaComponent, MatDialogContent, DocsUploaderComponent, MatDialogActions, NgIf]\r\n})\r\nexport class AttachmentSectionDataComponent extends BaseComponent {\r\n popupData: any = {};\r\n popupDataOrg: any = {};\r\n uploading: boolean;\r\n editMode: boolean;\r\n @Input() hasColumnBreak: boolean;\r\n\r\n ngOnInit() {\r\n /*if (this.coreStateMachineService?.attachmentListData) {\r\n this.popupData = this.coreStateMachineService.attachmentListData\r\n this.popupDataOrg = Object.assign({} , this.popupData) ///// ibrahim solve isse related to discard data whenn click close\r\n this.editMode = true;\r\n }\r\n if(this.dialogData){\r\n console.log(this.dialogData);\r\n\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.popupData?.fileDescription,\r\n \"attachmentcomment\": this.popupData?.attachmentcomment,\r\n \"fileComments\": this.popupData?.attachmentcomment,\r\n \"fileName\": this.popupData?.fileName,\r\n \"mimeType\": this.popupData?.mimeType,\r\n \"fileContents\": this.popupData?.fileContents,\r\n }\r\n this.uploading = true;\r\n /*this.coreStateMachineService.dispatch('getAttachments', data)\r\n .then((Response: any) => {\r\n this.uploading = false;\r\n if (Response) {\r\n this.coreStateMachineService.attachmentListData = null\r\n const newObj = {\r\n \"fileDescription\": this.popupData?.fileDescription,\r\n \"attachmentcomment\": this.popupData?.attachmentcomment,\r\n \"fileComments\": this.popupData?.attachmentcomment,\r\n \"fileName\": this.popupData?.fileName,\r\n \"attachmentId\": Response.attachment.attachmentId,\r\n \"mimeType\": this.popupData?.mimeType\r\n }\r\n this.dialogRef.close(newObj);\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-end\" mat-dialog-title>\r\n <h3 class=\"mb-0 font-16 fw-medium\">{{i18n.translate('addAttachments')}}</h3>\r\n <ds-button (click)=\"close()\" 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 mt-3\">\r\n <!-- add [callApi]=\"true\" input mobile issue not able to download it by base 64 -->\r\n\r\n <app-file-uploader class=\"section-item full\" [field]=\"popupData\" name=\"file\" [attachments]=\"dialogData?.attachments\"\r\n [labelTextReadMode]=\"i18n.translate('Attachment')\" [labelTextWriteMode]=\"i18n.translate('Attachment')\"\r\n [hasColumnBreak]=\"false\" [label]=\"i18n.translate('Attachment')\" [required]=\"true\" [multiple]=\"dialogData?.multiple\" [allowedExtensions]=\"dialogData?.data\"\r\n [isReadOnly]=\"section?.header?.readOnly\" [showActions]=\"false\" (emitedValue)=\"handleAttachmentEmitValue($event)\"\r\n >\r\n </app-file-uploader>\r\n\r\n <app-textarea class=\"section-item d-block mt-4\" [section]=\"section\" [field]=\"popupData?.fileDescription\" name=\"fileDescription\"\r\n [labelTextReadMode]=\"i18n.translate('description')\" [labelTextWriteMode]=\"i18n.translate('description')\"\r\n [hasColumnBreak]=\"false\" (emitedValue)=\"handleEmitValue($event,'fileDescription')\"\r\n [label]=\"i18n.translate('description')\" [required]=\"dialogData.isRequired\" [minLength]='1' [maxLength]='500'\r\n [isReadOnly]=\"section?.header?.readOnly\" [errorMessage]=\"i18n.translate('lenghtMin1Max500')\">\r\n </app-textarea>\r\n\r\n <app-textarea class=\"section-item\" [section]=\"section\" [field]=\"popupData?.attachmentcomment\" name=\"attachmentcomment\"\r\n [labelTextReadMode]=\"i18n.translate('comments')\" [labelTextWriteMode]=\"i18n.translate('comments')\"\r\n [hasColumnBreak]=\"false\" (emitedValue)=\"handleEmitValue($event,'attachmentcomment')\" [label]=\"i18n.translate('comments')\"\r\n [required]=\"false\" [minLength]='1' [maxLength]='500' [isReadOnly]=\"section?.header?.readOnly\"\r\n [errorMessage]=\"i18n.translate('lenghtMin1Max500')\">\r\n </app-textarea>\r\n\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\" (click)=\"close()\" [disabled]=\"(uploading)\" color=\"red\">{{i18n.translate('cancel')}}\r\n </ds-button>\r\n <ds-button (click)=\"addAttachments()\" [loading]=\"uploading\"\r\n [disabled]=\"(!(popupData?.fileContents || popupData?.attachmentId ) ||( dialogData.isRequired && !popupData?.fileDescription )|| uploading)\">\r\n @if(!editMode){\r\n <span>{{i18n.translate('add')}}</span>\r\n }\r\n @if(editMode){\r\n <span>{{i18n.translate('edit')}}</span>\r\n }\r\n\r\n </ds-button>\r\n </mat-dialog-actions>\r\n\r\n</div>\r\n","/* eslint-disable @typescript-eslint/no-empty-function */\r\n/* eslint-disable @angular-eslint/use-lifecycle-interface */\r\n/* eslint-disable @angular-eslint/component-selector */\r\nimport { Component, CUSTOM_ELEMENTS_SCHEMA } from '@angular/core';\r\nimport { BaseComponent } from '../base-component/base-component.component';\r\nimport {MatRadioButton, MatRadioChange, MatRadioGroup} from '@angular/material/radio';\r\nimport {FormsModule} from \"@angular/forms\";\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 ]\r\n})\r\nexport class RadioComponent extends BaseComponent {\r\n\r\n ngOnInit(): void {\r\n this.value = this.field ? JSON.parse(this.field) : false;\r\n // this.resetPropagator.subscribe(this, this.resetCheckBoxData);\r\n }\r\n\r\n resetCheckBoxData() {\r\n if (!this.isReadOnly) {\r\n this.emitedValue.emit('false')\r\n this.value = false;\r\n }\r\n }\r\n\r\n valueChange(event: MatRadioChange) {\r\n const checked = event.source.checked;\r\n this.value = checked;\r\n this.field = (checked).toString();\r\n this.emitedValue.emit(this.field)\r\n }\r\n\r\n\r\n}\r\n","<mat-radio-group aria-label=\"Select an option\" [(ngModel)]=\"value\">\r\n\r\n <mat-radio-button class=\"m-3\" [disabled]=\"isReadOnly || disabled\" id=\"{{name}}{{randomID}}\"\r\n name=\"{{name}}{{randomID}}\" (change)=\"valueChange($event)\" [checked]=\"field\">\r\n <span class=\"fs-12 fw-medium fc-onyx\">\r\n {{isReadOnly ? labelTextReadMode : labelTextWriteMode}}\r\n </span>\r\n </mat-radio-button>\r\n\r\n</mat-radio-group>\r\n\r\n<!-- <mat-radio-group aria-label=\"Select an option\">\r\n <mat-radio-button value=\"1\">Option 1</mat-radio-button>\r\n <mat-radio-button value=\"2\">Option 2</mat-radio-button>\r\n</mat-radio-group> -->\r\n","import {Component, CUSTOM_ELEMENTS_SCHEMA} from '@angular/core';\r\nimport {CoreI18nService, CoreService, SidenavService} from '../../../services';\r\nimport {NgIf} from '@angular/common';\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 NgIf\r\n ]\r\n})\r\nexport class ApprovalsComponent {\r\n\r\n constructor(private 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\r\n <div class=\"sidenav-title\">\r\n <h3>{{ i18n.translate('approvalcycle') }}</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 p-4\">\r\n <ds-approvals *ngIf=\"coreService.approvals\" approvalsData=\"{{coreService.approvals}}\"></ds-approvals>\r\n <ds-message *ngIf=\"!coreService.approvals\" label=\"{{i18n.translate('NoData2')}}\"></ds-message>\r\n </div>\r\n</section>\r\n","import {Component, CUSTOM_ELEMENTS_SCHEMA, 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 {NgIf} from \"@angular/common\";\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 NgIf\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\r\n constructor(\r\n public i18n: CoreI18nService,\r\n private sidenavService: SidenavService,\r\n private coreService: CoreService,\r\n private toasterService: ToastrService\r\n ) { }\r\n\r\n getApproves() {\r\n if (!this.loading) {\r\n this.approvals = [];\r\n this.loading = true;\r\n this.coreService.prespectiveApprovers(this.section.body.details).subscribe(\r\n (response: any) => {\r\n this.loading = false;\r\n if (response) {\r\n const resultData = [];\r\n for (let index = 0; index < response['approvals'].length; index++) {\r\n const element = response['approvals'][index];\r\n const stageDetails = this.form.sections.find((stage) => {\r\n return stage.id == ((element?.role)?.toLowerCase() + 'Approval');\r\n });\r\n const obj = {\r\n id: 1,\r\n name: element.value,\r\n // title: element.role ? this.i18n.translate((element?.role).toLowerCase() + 'Role') : '',\r\n title: element.key,\r\n image: '/group/i-gate/wm-bpm/forms/-/proxy/portrait?email=' + element.key,\r\n status: stageDetails ? this.statusClass(stageDetails.header.status) : '',\r\n statusLabel: stageDetails ? this.statusClass(stageDetails.header.status) : ''\r\n // status: '',\r\n // statusLabel: ''\r\n };\r\n resultData.push(obj);\r\n }\r\n this.approvals = resultData;\r\n this.showProspectiveApprovals();\r\n }\r\n },\r\n (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 }\r\n }\r\n\r\n statusClass(status: string) {\r\n if (!status) {\r\n return 'success';\r\n } else {\r\n if (\r\n status === Constants.FORM_STATUS_REJECTED || status === Constants.FORM_STATUS_CANCELLED\r\n || status?.toLowerCase().includes('deny')\r\n || status?.toLowerCase().includes('reject')\r\n || status?.toLowerCase() === 'reject' || status?.toLowerCase() === 'unsatisfied' || status?.toLowerCase() === 'cancel'\r\n ) {\r\n return 'danger';\r\n } else if (status === Constants.FORM_STATUS_PENDING || status?.toLowerCase() === 'pending') {\r\n return 'warning';\r\n } else {\r\n return 'success';\r\n }\r\n }\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)=\"getApproves()\">\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 {AfterViewInit, ChangeDetectorRef, Component, CUSTOM_ELEMENTS_SCHEMA, EventEmitter, Input, NO_ERRORS_SCHEMA, Output} 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\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\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 private sidenavService: SidenavService\r\n ) {\r\n this.actionStateService.actionStates$.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).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\nimport {NgForOf, NgIf} from \"@angular/common\";\r\n\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, effect, 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/feedBack.service\";\r\nimport {MY_LIB_CONFIG_TOKEN} from \"../../../../public-api\";\r\nimport {environment} from \"../../../environments/environment.local\";\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/* providers: [\r\n FeedBackService,\r\n {\r\n provide: MY_LIB_CONFIG_TOKEN,\r\n useValue: environment\r\n }\r\n ]*/\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\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).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}).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}).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} from '@angular/core';\r\nimport {CoreI18nService, CoreService, SidenavService} from '../../../services';\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\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 this.coreService.loadFile(event.detail.value.id).then((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 }\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 {Component, CUSTOM_ELEMENTS_SCHEMA, 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 {ReactiveFormsModule} from \"@angular/forms\";\r\nimport {MatButtonToggleModule} from \"@angular/material/button-toggle\";\r\nimport {Router, 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\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\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 {\r\n previousRequests: any[] = []\r\n loading: boolean\r\n router: Router = inject(Router)\r\n totalLength: number\r\n\r\n constructor(public dialog: MatDialog,\r\n public readonly sidenavService: SidenavService,\r\n public coreService: CoreService,\r\n public i18n: CoreI18nService\r\n ) {}\r\n\r\n ngOnInit() {\r\n\r\n }\r\n\r\n ngAfterViewInit() {\r\n this.getRequests()\r\n }\r\n\r\n getRequests() {\r\n let searchData = {\r\n year: new Date().getFullYear(),\r\n month: \"\"\r\n }\r\n this.coreService.myRequests(searchData).subscribe((response: any) => {\r\n if (response) {\r\n this.previousRequests = (response.history);\r\n }\r\n });\r\n }\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}\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\r\n class=\"sidenav-body bc-light-gray\"\r\n >\r\n <section class=\"p-3\">\r\n <!-- <app-request-statistics class=\"d-block mb-4\"></app-request-statistics>-->\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 <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 <div class=\"history-cards-container\" *ngIf=\"pageView.value === 'card'\">\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 </div>\r\n\r\n <div class=\"table-responsive\" *ngIf=\"pageView.value === 'list'\">\r\n <table *ngIf=\"previousRequests?.length\">\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 <ds-message *ngIf=\"!previousRequests?.length && !loading\" type=\"emptyList\" [label]=\"i18n.translate('noData') \"></ds-message>\r\n </section>\r\n\r\n </div>\r\n</section>\r\n","import {AfterViewInit, ChangeDetectorRef, Component, CUSTOM_ELEMENTS_SCHEMA, 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\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() 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 public feedBackIcon: string = null;\r\n flagPriority: string;\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).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 <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 <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 <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 </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, 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\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\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'];\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).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 [expanded]=\"isExpanded || (form?.sections?.length === 1 )\" class=\"mb-3\" hideToggle #requestPanel=\"matExpansionPanel\">\r\n <mat-expansion-panel-header>\r\n <h2 class=\"fs-16 fw-medium fc-coral m-0 flex-grow-1\">{{ i18n.translate('requestDetailsTitle') }}</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\">\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, EventEmitter, 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\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\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.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\">\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/core.service.ts\";\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 ngAfterViewInit() {\r\n setTimeout(() => {\r\n console.log('xx', this.coreService.loggedInUserData)\r\n }, 1000);\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\r\n openDemandRequest() {\r\n // this.sidenavService.publish('open', DemandRequestComponent, 'end', 'over');\r\n }\r\n\r\n openTicket() {\r\n // this.sidenavService.publish('open', OpenTicketComponent, 'end', 'over');\r\n }\r\n\r\n openEService() {\r\n // this.sidenavService.publish('open', VhrComponent, 'end', 'over');\r\n }\r\n\r\n // goToAdmin() {\r\n // this.router.navigate(['/admin']);\r\n // }\r\n\r\n\r\n openApp(url: string) {\r\n window.open(url, '_blank')?.focus();\r\n }\r\n\r\n ngOnDestroy() {\r\n // this.sidenavSubscription.unsubscribe()\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() 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]=\"form?.header?.status?.key == 'NEW' ? '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, 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} from \"../../components/shared-components/action-buttons/action-buttons.component\";\r\nimport {FormBuilder, FormGroup, ReactiveFormsModule, Validators, FormControl} from \"@angular/forms\";\r\nimport { CheckBoxComponent, CustomSearchableComponent, DatePickerComponent, DateRangePickerComponent, InputComponent, InputCurrencyComponent, InputEmailComponent, InputNumberComponent, SelectComponent, TextareaComponent } from '../../components/shared-components';\r\nimport { ValidationErrorsComponent } from '../../components/shared-components/form-field/validation-errors/validation-errors.component';\r\nimport { RegexPatterns } from '../../regex/regex-patterns';\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 NgIf,\r\n NgForOf,\r\n ActionButtonsComponent,\r\n ReactiveFormsModule,\r\n ValidationErrorsComponent,\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 ]\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 @Input() className: string = \"info-section\";\r\n // fieldsForm: FormGroup;\r\n\r\n currentSectionId: string;\r\n lastSectionId: string;\r\n formGroup: FormGroup\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 }\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('', [Validators.required, Validators.maxLength(3), Validators.minLength(2)]),\r\n currencyInput: new FormControl('', Validators.required),\r\n emailInput: new FormControl('', [Validators.required, Validators.pattern(RegexPatterns.email)]),\r\n numberInput: new FormControl('', [Validators.required]),\r\n customSearchable: new FormControl('', Validators.required),\r\n checkbox: new FormControl(true, Validators.requiredTrue),\r\n textArea: new FormControl('', [Validators.required, Validators.maxLength(10), Validators.minLength(5)]),\r\n datePicker: new FormControl('', Validators.required),\r\n datePickerRange: new FormControl('', Validators.required),\r\n ...newForm,\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\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 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.formGroup.reset()\r\n }\r\n\r\n}\r\n","<div\r\n [ngClass]=\"{'form-section-divide form-section':!section?.header?.readOnly,'info-section':section?.header?.readOnly}\">\r\n<form [formGroup]=\"formGroup\">\r\n <app-input [loading]=\"true\" type=\"enOnly\" formControlName=\"input\" label=\"Input\" class=\"section-item\"></app-input>\r\n <app-input-currency formControlName=\"currencyInput\" label=\"currency\"></app-input-currency>\r\n <app-input-email formControlName=\"emailInput\" label=\"email\"></app-input-email>\r\n <app-input-number formControlName=\"numberInput\" label=\"number\"></app-input-number>\r\n <app-custom-searchable class=\"section-item\" formControlName=\"customSearchable\" label=\"Custom-searchable\" [options]=\"lov?.['approverActions']?.options\" [displayedLable]=\"'name'\"\r\n [key]=\"'name'\"\r\n ></app-custom-searchable>\r\n <app-checkbox formControlName=\"checkbox\" termsLabel=\"Terms and condtions\" [containTerms]=\"true\"></app-checkbox>\r\n <app-textarea formControlName=\"textArea\" label=\"Text-area\"></app-textarea>\r\n <app-datepicker formControlName=\"datePicker\" [matSuffix]=\"true\" label=\"Date-picker\" minDate=\"today\" maxDate=\"today\"></app-datepicker>\r\n <app-date-range-picker formControlName=\"datePickerRange\" label=\"Date-picker-range\" [matSuffix]=\"true\" minDate=\"today\" minDate=\"today\" maxDate=\"today\"></app-date-range-picker>\r\n <app-input formControlName=\"input1\"></app-input>\r\n</form>\r\n<ds-button\r\n(click)=\"formValue(formGroup)\"\r\n[ngClass]=\"{'disabled': !formGroup.valid}\"\r\n>\r\n{{ i18n.translate('submit') }}\r\n</ds-button>\r\n <ds-alert class=\"full\" type=\"warning\" icon=\"info\">\r\n <div class=\"d-flex gap-2\">\r\n Request details working fine\r\n </div>\r\n </ds-alert>\r\n <!-- <form [formGroup]=\"fieldsForm\">\r\n <app-input formControlName=\"input1\" ></app-input>\r\n </form> -->\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, 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} 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\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 ]\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\r\n formGroup = new FormGroup({\r\n name: new FormControl('', [Validators.required, Validators.maxLength(3), Validators.minLength(2)]),\r\n countries: new FormControl('', Validators.required),\r\n });\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 }\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.fieldsForm = this.fb.group(newForm);\r\n\r\n const checkValidityAndUpdate = () => {\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.fieldsForm.value\r\n });\r\n }\r\n\r\n checkValidityAndUpdate();\r\n\r\n this.fieldsForm.valueChanges.subscribe(() => {\r\n checkValidityAndUpdate();\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 [ngClass]=\"{'form-section-divide form-section':!section?.header?.readOnly,'info-section':section?.header?.readOnly}\">\r\n\r\n <ds-alert class=\"full\" type=\"warning\" icon=\"info\">\r\n\r\n <div class=\"d-flex gap-2\">\r\n\r\n Request details working fine\r\n\r\n </div>\r\n\r\n </ds-alert>\r\n\r\n <form [formGroup]=\"fieldsForm\">\r\n <app-input formControlName=\"input1\"></app-input>\r\n </form>\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]=\"fieldsForm\"\r\n (customCallEmit)=\"customCallSubmit($event)\"\r\n (resetFormEmit)=\"resetForm()\"\r\n />\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 }\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 {Component, CUSTOM_ELEMENTS_SCHEMA, Inject, NO_ERRORS_SCHEMA} from '@angular/core';\r\nimport {LayoutComponent, ServiceHeaderComponent, WorkflowSectionComponent} from \"../components/app-component-sections\";\r\nimport {DOCUMENT} 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\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 ],\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 {\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 coreService: CoreService\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}\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 [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=\"{{i18n.translate('errorOccurred')}}\"></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\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","i5","i6.MycurrencyPipe","YEAR_ONLY_FORMAT","i1.MycurrencyPipe","MatOption","MatError","MatFormField","i1.SidenavService","Constants.FORM_STATUS_REJECTED","Constants.FORM_STATUS_CANCELLED","Constants.FORM_STATUS_PENDING","constants.FORM_STATUS_REJECT","constants.FORM_STATUS_CANCEL","i1.ActionStateService","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","i4","en.default","ar.default","Constants.SECTION_ID_REQUEST_DETAILS","Constants.SECTION_ID_APPROVAL_PARTIAL_NAME","i1.I18nService","i3.SidenavService","i3.CoreI18nService","i3.CoreService"],"mappings":"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"}
|