bpm-core 0.0.25 → 0.0.27
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/esm2022/lib/app/app.component.mjs +12 -13
- package/esm2022/lib/components/app-component-sections/activities/activities.component.mjs +20 -34
- package/esm2022/lib/components/app-component-sections/approvals/approvals.component.mjs +26 -0
- package/esm2022/lib/components/app-component-sections/approvals-workflow/approvals-workflow.component.mjs +98 -0
- package/esm2022/lib/components/app-component-sections/form-section/form-section.component.mjs +4 -40
- package/esm2022/lib/components/app-component-sections/service-header/service-header.component.mjs +15 -13
- package/esm2022/lib/components/shared-components/action-buttons/action-buttons.component.mjs +95 -11
- package/esm2022/lib/components/shared-components/dialogs/submit-dialog/submit-dialog.component.mjs +12 -17
- package/esm2022/lib/components/shared-components/form-field/control-value-accessor.directive.mjs +9 -11
- package/esm2022/lib/components/shared-components/form-field/date-picker/date-picker.component.mjs +3 -5
- package/esm2022/lib/components/shared-components/form-field/input/input.component.mjs +9 -42
- package/esm2022/lib/components/shared-components/form-field/validation-errors/validation-errors.component.mjs +42 -0
- package/esm2022/lib/constants/constants.mjs +3 -1
- package/esm2022/lib/services/core.service.ts.mjs +309 -301
- package/esm2022/lib/testComponent/general-approver-section/general-approver-section.component.mjs +72 -27
- package/esm2022/lib/testComponent/request-details-section/request-details-section.component.mjs +33 -11
- package/fesm2022/bpm-core.mjs +789 -719
- package/fesm2022/bpm-core.mjs.map +1 -1
- package/lib/app/app.component.d.ts +1 -2
- package/lib/components/app-component-sections/activities/activities.component.d.ts +5 -14
- package/lib/components/app-component-sections/approvals/approvals.component.d.ts +11 -0
- package/lib/components/app-component-sections/approvals-workflow/approvals-workflow.component.d.ts +20 -0
- package/lib/components/app-component-sections/form-section/form-section.component.d.ts +3 -4
- package/lib/components/app-component-sections/service-header/service-header.component.d.ts +4 -3
- package/lib/components/shared-components/action-buttons/action-buttons.component.d.ts +29 -6
- package/lib/components/shared-components/dialogs/submit-dialog/submit-dialog.component.d.ts +4 -4
- package/lib/components/shared-components/form-field/control-value-accessor.directive.d.ts +3 -2
- package/lib/components/shared-components/form-field/input/input.component.d.ts +1 -4
- package/lib/components/shared-components/form-field/validation-errors/validation-errors.component.d.ts +16 -0
- package/lib/constants/constants.d.ts +2 -0
- package/lib/services/core.service.ts.d.ts +35 -2
- package/lib/testComponent/general-approver-section/general-approver-section.component.d.ts +21 -13
- package/lib/testComponent/request-details-section/request-details-section.component.d.ts +14 -6
- package/package.json +1 -1
- package/src/lib/assets/scss/_upgrade.scss +3 -3
|
@@ -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/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/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/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/components/shared-components/form-field/control-value-accessor.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/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/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/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/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/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/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/comment-section/comment-section.component.ts","../../../projects/bpm-core/src/lib/components/app-component-sections/comment-section/comment-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/hooks/load-form.ts","../../../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/services/i18n.service.ts","../../../projects/bpm-core/src/lib/testComponent/services/state-machine.service.ts","../../../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/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/save-form.ts","../../../projects/bpm-core/src/lib/validators/ar.directive.ts","../../../projects/bpm-core/src/lib/validators/en.directive.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/currency.directive.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","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\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\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 {HttpClient, HttpHeaders} from \"@angular/common/http\";\r\nimport {Inject, Injectable} from \"@angular/core\";\r\nimport type {MyLibConfig} from \"../interfaces/shared.interface\";\r\nimport {Form, Header, Messages, MY_LIB_CONFIG_TOKEN, ProfileInfoDrop, Section, SectionHeader} from \"../../public-api\";\r\nimport * as constants from '../constants'\r\nimport {catchError, throwError} from \"rxjs\";\r\nimport {map} from \"rxjs/operators\";\r\n\r\n@Injectable({\r\n providedIn: \"any\"\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\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 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 }\r\n\r\n 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 loadForm() {\r\n const authUrl = this.buildAuthUrl();\r\n return this.http.get(authUrl, {observe: 'response'}).toPromise()\r\n .then((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 .catch((httpError: any) => {\r\n return throwError(httpError);\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 employeeProfile(employeeEmail: any) {\r\n let body = {\r\n method: \"GET\",\r\n formName: \"AAI\",\r\n destination: \"DP\",\r\n serviceName: \"igate.users.search.v3\",\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 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 // let payload = responseObject.body;\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\r\n /*successWm(...args: any[]) {\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 // keep emails on-track\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 // this.isReadOnly = payloadFormDetails.readOnly\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 );\r\n /!* Generate Sections Object *!/\r\n result.sections = [];\r\n /!* Push as first object the section for the request details *!/\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(\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 );\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 this.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 }\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 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 (this.getShortName(this.currentActor?.name)),\r\n step.date,\r\n this.getShortName(step.actor.recipient.name),\r\n constants.IGATE_STATIC_ASSET_PROFILE_PHOTO_URL + step.actor.recipient.email,\r\n (step.actor.delegate && step.actor.delegate.name ? this.getShortName(step.actor.delegate.name) : null),\r\n (step.actor.delegate && step.actor.delegate.email ? constants.IGATE_STATIC_ASSET_PROFILE_PHOTO_URL + step.actor.delegate.email : null),\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.generalService.currentSubmitter = {actor: step.actor, recipient: step.recipient, delegate: step.actor.delegate};\r\n\r\n }\r\n });\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: any) => {\r\n result.messages[message.type].push(message.message);\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 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 /* 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 /* Generate Sections Object */\r\n result.sections = [];\r\n /* Push as first object the section for the request details */\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.dispatch(constants.STATE_MACHINE_ACTION_LOAD_HISTORY, result.header.formId).then((responseObject: any) => {\r\n if (responseObject) {\r\n responseObject.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 /*if (result.header.formId && /^DYL/.test(result.header.formId)) {\r\n this.state = constants.STATE_MACHINE_STATUS_IDLE;\r\n result.confidentialComments = [];\r\n this.dispatch('loadConfidentialComments', result.header.formId).then((responseObject: any) => {\r\n if (responseObject && responseObject.items && responseObject.items.length > 0) {\r\n responseObject.items.forEach((item: any) => {\r\n result.confidentialComments.push(new CommentsDrop(\r\n constants.IGATE_STATIC_ASSET_PROFILE_PHOTO_URL + item.email,\r\n item.name,\r\n item.comment,\r\n item.modifiedDate,\r\n item.attachment,\r\n item.position\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.state = constants.STATE_MACHINE_STATUS_IDLE;\r\n this.dispatch(constants.STATE_MACHINE_ACTION_GET_INBOX_ITEM, result.header.formId, inboxType).then((responseObject) => {\r\n if (responseObject) {\r\n const item = responseObject.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 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.state = constants.STATE_MACHINE_STATUS_IDLE;\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 null,\r\n profile.job.name\r\n ))\r\n })*!/\r\n }\r\n this.state = constants.STATE_MACHINE_STATUS_FETCHING;\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\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 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","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>","/* eslint-disable @typescript-eslint/no-explicit-any */\r\n/* eslint-disable @angular-eslint/component-selector */\r\nimport {MAT_DIALOG_DATA, MatDialogClose, MatDialogContent} from '@angular/material/dialog';\r\nimport {Component, CUSTOM_ELEMENTS_SCHEMA, Inject} from '@angular/core';\r\nimport {CoreI18nService} 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 ]\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 ) {\r\n this.successData = data;\r\n this.inboxUri = (window as any).wmConfig.inboxUri\r\n }\r\n\r\n\r\n backHome() {\r\n const url = (window as any).wmConfig.inboxUri;\r\n //console.log(\" inboxUri \",url)\r\n window.location.href = url;\r\n\r\n }\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\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 '';\r\n break;\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 <div class=\"info-item px-3\" *ngIf=\"successData?.status?.key === 'PENDING'\">\r\n <!-- <span class=\"name fs-16-imp\">{{i18n.translate('formTablePendingWith')}}</span> -->\r\n\r\n <div class=\"d-flex align-items-center mt-2\">\r\n <div class=\"img-card circled-img small\">\r\n <img [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 </div>\r\n <!--<div class=\"d-flex align-items-center gap-3 mt-3\" *ngIf=\"!stateMachineService.isMobileApp()\">\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 </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","/* 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, Input, Output } from '@angular/core';\r\nimport { BaseComponent } from '../base-component/base-component.component';\r\nimport {MatCheckbox} from \"@angular/material/checkbox\";\r\nimport {FormsModule} from \"@angular/forms\";\r\nimport {NgIf} from \"@angular/common\";\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\r\n})\r\nexport class CheckBoxComponent extends BaseComponent {\r\n @Input() containTerms: boolean;\r\n @Input() termsLabel: string;\r\n @Input() linkText: string;\r\n @Input() hrefLink: string;\r\n @Output() downloadCheckBox = new EventEmitter();\r\n ngOnInit(): void {\r\n this.value = this.field ? JSON.parse(this.field) : false;\r\n\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 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.value = checked;\r\n this.field = (checked).toString();\r\n this.emitedValue.emit(this.field)\r\n }\r\n\r\n downloadFile(){\r\n this.downloadCheckBox.emit()\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]=\"isReadOnly || disabled\" id=\"{{name}}{{randomID}}\" [(ngModel)]=\"value\" [name]=\"name\"\r\n (change)=\"valueChange($event)\" [checked]=\"field\"\r\n>\r\n <span class=\"fs-12 fw-medium fc-onyx\">\r\n {{ isReadOnly ? labelTextReadMode : labelTextWriteMode }}\r\n </span>\r\n <span\r\n class=\"fs-12 fw-bold fc-coral cursor-pointer mx-1\" *ngIf=\"containTerms\"\r\n (click)=\"openTermsPopup(); false\">\r\n {{ termsLabel ? termsLabel : i18n.translate('termsAndConditions') }}\r\n </span>\r\n <ng-container *ngIf=\"link\">\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 <!-- <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","/* eslint-disable @typescript-eslint/no-this-alias */\r\n/* eslint-disable no-var */\r\nimport {ReactiveFormsModule, Validators} 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 } from '@angular/core';\r\nimport { FormControl } from '@angular/forms';\r\nimport {FloatLabelType, MatError, MatFormField, MatHint} from '@angular/material/form-field';\r\nimport { map, startWith } from 'rxjs/operators';\r\nimport { Observable } from \"rxjs\";\r\nimport { BaseComponent } from '../base-component/base-component.component';\r\nimport {InfoItemComponent} from \"../info-item/info-item.component\";\r\nimport {AsyncPipe, NgClass, NgForOf, NgIf} from \"@angular/common\";\r\nimport {MatAutocomplete, MatAutocompleteTrigger, MatOption} from \"@angular/material/autocomplete\";\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 imports: [\r\n InfoItemComponent,\r\n NgClass,\r\n NgIf,\r\n ReactiveFormsModule,\r\n MatAutocomplete,\r\n MatOption,\r\n AsyncPipe,\r\n MatAutocompleteTrigger,\r\n MatError,\r\n MatHint,\r\n NgForOf,\r\n MatFormField\r\n ],\r\n standalone: true\r\n})\r\n\r\n\r\n\r\nexport class CustomSearchableComponent extends BaseComponent {\r\n @Input() myControl: FormControl = new FormControl();\r\n @Input() options!: any;\r\n @Input() label!: string;\r\n @Output() selectedValue = new EventEmitter();\r\n @Output() resetByDeleteBtn = new EventEmitter();\r\n @Output() isLengthGreaterThan4 = new EventEmitter();\r\n noData = false;\r\n filteredOptions!: Observable<any>;\r\n // @Input() floatLabel: FloatLabelType = 'auto';\r\n @Input() floatLabel: any = 'auto';\r\n @Input() className = 'bordered-input';\r\n // @Input() disabled: boolean = false;\r\n // form: FormGroup = new FormGroup({});\r\n ngOnInit() {\r\n // this.resetPropagator.subscribe(this, this.clearInput);\r\n if (this.field?.key) {\r\n const obj = {\r\n description: this.field.value,\r\n value: this.field.key\r\n }\r\n this.myControl.setValue(obj)\r\n }\r\n\r\n if (this.required) {\r\n this.controller.setValidators([Validators.required]);\r\n }\r\n\r\n // var leftDomain = false;\r\n // const self = this\r\n // var interval = setInterval(function () {\r\n // try {\r\n // if (self.field?.key) {\r\n\r\n // if (self.lov?.options?.length) {\r\n // const obj = {\r\n // description: self.field.value,\r\n // value: self.field.key\r\n // }\r\n // self.myControl.setValue(obj)\r\n // }\r\n // else {\r\n // leftDomain = true;\r\n // }\r\n // } else {\r\n // leftDomain = true;\r\n // }\r\n // }\r\n // catch (e) {\r\n // if (leftDomain || !self.field?.key) {\r\n // clearInterval(interval);\r\n // return;\r\n // }\r\n // leftDomain = true;\r\n // }\r\n // }, 1000);\r\n }\r\n\r\n clearInput() {\r\n if (!this.isReadOnly) {\r\n this.myControl.setValue(null)\r\n this.controller.setValue(null);\r\n this.emitedValue.emit({\r\n key: null,\r\n value: null\r\n })\r\n }\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.myControl.value){\r\n if(this.field){\r\n this.field.key = null;\r\n this.field.value = null;\r\n }\r\n this.myControl.setValue(null);\r\n input.focus();\r\n this.resetByDeleteBtn.emit();\r\n }\r\n })\r\n }\r\n\r\n ngOnChanges(changes: SimpleChanges) {\r\n console.log(changes)\r\n if (changes?.['disabled']) {\r\n changes?.['disabled']?.currentValue ? this.myControl.disable() : this.myControl.enable()\r\n }\r\n\r\n if (changes?.['field']?.currentValue?.key == null) {\r\n // this.myControl.setValue(null)\r\n } else {\r\n\r\n this.controller.setValue(changes['field'].currentValue.key)\r\n }\r\n\r\n\r\n this.loading = !!(changes['loading'] && changes['loading'].currentValue);\r\n if (changes['options'] && changes['options'].currentValue) {\r\n // this.loading = true\r\n this.options = changes['options'].currentValue\r\n if (this.options.length > 0) {\r\n // console.log('yes')\r\n this.noData = false\r\n // this.loading = false\r\n this.filteredOptions = this.myControl.valueChanges.pipe(\r\n startWith(''),\r\n map(value => {\r\n console.log(value)\r\n return (value ? this._filter(value) : this.options.slice(0, 30))\r\n }),\r\n );\r\n } else {\r\n this.noData = true\r\n }\r\n\r\n }\r\n }\r\n onValueChange() {\r\n // this.myControl.setErrors({'incorrect': true});\r\n }\r\n\r\n focusOutFunction(event) {\r\n console.log(\"event\", event)\r\n // if(!this.field.key || !this.myControl?.valid){\r\n // this.clearInput()\r\n // // this.field.key=null\r\n // // this.myControl.setValue(null);\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.description : '';\r\n }\r\n\r\n getAutoComplete(value: any) {\r\n console.log('value', value);\r\n if (this.name == 'organizationDetails') {\r\n this.emitedValue.emit({\r\n key: value.value,\r\n orgId: value.orgId,\r\n value: value.description\r\n })\r\n } else {\r\n this.myControl.setValue(value.value);\r\n this.emitedValue.emit({\r\n key: value.value,\r\n value: value.description\r\n })\r\n }\r\n }\r\n\r\n onLoadOptions(event: any) {\r\n const input = event.target.value;\r\n if (input.length >= 4) {\r\n this.isLengthGreaterThan4.emit(input)\r\n }\r\n }\r\n\r\n}\r\n","<ng-container *ngIf=\"isReadOnly && field?.value\">\r\n <app-info-item class=\"info-item w-100\" [label]=\"label\" [insideTable]=\"insideTable\" [hasLabel]=\"hasLabel\" [value]=\"field?.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=\"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 <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()\" [formControl]=\"myControl\"\r\n [value]=\"field?.value\" ngDefaultControl [name]=\"name\" [matAutocomplete]=\"auto\">\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 && field?.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 | async\" [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['description']}}\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=\"(!myControl?.valid)\">{{i18n.translate('validSelectError')}}{{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</ng-container>\r\n","import {FormControl, ReactiveFormsModule, Validators} from '@angular/forms';\r\nimport {BaseComponent} from '../base-component/base-component.component';\r\nimport {Component, Input, Output, EventEmitter, ViewChild, SimpleChanges, AfterViewInit, CUSTOM_ELEMENTS_SCHEMA} from '@angular/core';\r\nimport {MAT_DATE_FORMATS, DateAdapter, MAT_DATE_LOCALE} from '@angular/material/core';\r\nimport {MAT_MOMENT_DATE_ADAPTER_OPTIONS, MomentDateAdapter} from '@angular/material-moment-adapter';\r\nimport {MatDatepicker, MatDatepickerInput, MatDatepickerToggle} from '@angular/material/datepicker';\r\nimport {CustomDateFormat} from './date-format';\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 * as moment from 'moment'\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\r\n\r\n imports: [\r\n MatFormField,\r\n MatDatepickerToggle,\r\n MatDatepicker,\r\n MatDatepickerInput,\r\n NgClass,\r\n NgIf,\r\n InfoItemComponent,\r\n ReactiveFormsModule\r\n ]\r\n})\r\nexport class DatePickerComponent extends BaseComponent 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 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 @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 override get shouldSetDateFormateInAr(): boolean {\r\n return false;\r\n }\r\n\r\n ngOnInit(): void {\r\n\r\n // this.resetPropagator.subscribe(this, this.resetDateData);\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.field) {\r\n this.date.setValue(this.field);\r\n }\r\n if (this.required) this.date.addValidators(Validators.required)\r\n }\r\n\r\n ngOnChanges(changes: SimpleChanges) {\r\n if (this.resetDate && this.field == null) {\r\n this.field = '';\r\n this.date.setValue(this.field)\r\n this.emitedValue.emit(this.field);\r\n }\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 resetDateData() {\r\n if (!this.isReadOnly) {\r\n this.field = '';\r\n this.date.setValue(this.field)\r\n this.emitedValue.emit(this.field);\r\n }\r\n }\r\n\r\n focusPicker(picker) {\r\n picker.open();\r\n }\r\n\r\n onFocus(): void {\r\n this.datepickerObj.show();\r\n }\r\n\r\n dateChange(event: any) {\r\n if (!this.disabled) {\r\n if (event?.value) {\r\n let inputValue\r\n const eventDate = moment(event.value);\r\n const minDate = moment(this.minDateValue);\r\n const maxDate = moment(this.maxDateValue);\r\n if (eventDate < minDate && this.minDateValue) {\r\n this.field = ''\r\n this.datepickerObj.value = ''\r\n inputValue = ''\r\n } else if (eventDate > maxDate && this.maxDateValue) {\r\n this.field = ''\r\n this.datepickerObj.value = ''\r\n inputValue = ''\r\n } else {\r\n inputValue = moment(event.value).locale('en-US').format(\"YYYY-MM-DDTHH:mm:ss.SSSZ\");\r\n this.emitedValue.emit(inputValue)\r\n }\r\n this.field = inputValue\r\n } else {\r\n this.section.body.details[this.name] = ''\r\n\r\n }\r\n }\r\n }\r\n\r\n clearDateValue(event): void {\r\n this.resetDateData();\r\n event?.preventDefault();\r\n event?.stopPropagation();\r\n }\r\n\r\n removeDate() {\r\n this.field = ''\r\n // this.controller.setValue('')\r\n }\r\n\r\n toggleIslamicCal() {\r\n this.showIslamic = !this.showIslamic\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.field) {\r\n this.date.setValue(moment(this.field).format('yyyy'));\r\n }\r\n this.datepicker.startView = 'multi-year';\r\n this.datepicker.yearSelected.subscribe(e => {\r\n this.date.setValue(moment(e).format('yyyy'));\r\n this.emitedValue.emit(moment(e).format('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","<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\">{{labelTextWriteMode}}</span>\r\n <span *ngIf=\"!required\" class=\"fs-11 fc-dark-gray\"> {{i18n.translate('optional')}} </span>\r\n </div>\r\n <div class=\"justify-content-between mb-1\">\r\n <mat-form-field [ngClass]=\"{'input-disabled' : disabled }\" [floatLabel]=\"floatLabel\">\r\n <label class=\"mat-form-content\">\r\n <input matInput (dateInput)=\"dateChange($event)\" [placeholder]=\"hasLabel ? (i18n.translate('select') + ' ' + labelTextWriteMode) : ''\" (focus)=\"focusPicker(dp)\" [min]=\"minDateValue\"\r\n [max]=\"maxDateValue\" readonly [matDatepicker]=\"dp\" [formControl]=\"date\">\r\n </label>\r\n <ds-icon *ngIf=\"date?.value\" matSuffix icon=\"close\" class=\"fc-onyx fs-10 mx-2 cursor-pointer\" (click)=\"clearDateValue($event)\"></ds-icon>\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 </div>\r\n\r\n</ng-container>\r\n\r\n<ng-container *ngIf=\"isReadOnly && field\">\r\n <app-info-item class=\"info-item w-100\" type=\"date\" [insideTable]=\"insideTable\" [dateType]=\"calendarType\" [label]=\"labelTextReadMode\"\r\n [value]=\"field\" [hasLabel]=\"hasLabel\">\r\n </app-info-item>\r\n</ng-container>\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\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\r\n})\r\nexport class DateRangePickerComponent {\r\n @Input() label! : string;\r\n @Input() tooltip! : string;\r\n @Input() className = 'gray-input';\r\n @Input() placeholder! : string;\r\n constructor() { }\r\n\r\n \r\n\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\">\r\n <input matEndDate placeholder=\"End date\">\r\n </mat-date-range-input>\r\n </label>\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","/* 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","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() hasLabel = true;\r\n @Input() isReadOnly: boolean;\r\n @Input() hideOption = false;\r\n @Input() labelTextWriteMode: string;\r\n @Input() hint = '';\r\n @Input() loading!: boolean;\r\n @Input() placeholder: string;\r\n @Input() type: string;\r\n @Input() value: any;\r\n @Input() showErrorMessage: string;\r\n @Input() showHint: string;\r\n @Input() showIfEmpty: string;\r\n @Input() insideTable: any;\r\n @Input() maxLength:number;\r\n \r\n\r\n\r\n\r\n control: FormControl | undefined;\r\n required = false;\r\n\r\n private _isDisabled = false;\r\n\r\n constructor(private injector: Injector, public i18n: CoreI18nService) {}\r\n\r\n ngOnInit() {\r\n this.setFormControl();\r\n this.required = this.control?.hasValidator(Validators.required) ?? false;\r\n\r\n const maxLengthValidator = this.control?.getError('maxlength');\r\n maxLengthValidator ? this.maxLength = maxLengthValidator.requiredLength : this.maxLength = 0;\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 }\r\n\r\n writeValue(value: Type): void {\r\n this.control\r\n ? this.control.setValue(value)\r\n : (this.control = new FormControl(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","/* 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 '../base-component/base-component.component';\r\nimport {NG_VALUE_ACCESSOR, ReactiveFormsModule, Validators} from '@angular/forms';\r\nimport { Component, CUSTOM_ELEMENTS_SCHEMA, Input, SimpleChanges, EventEmitter, forwardRef } from '@angular/core';\r\nimport {FloatLabelType, 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 {NgxMaskDirective} from \"ngx-mask\";\r\nimport {MatInput} from \"@angular/material/input\";\r\nimport { ControlValueAccessorDirective } from '../control-value-accessor.directive';\r\nimport {FormLabelComponent} from \"../form-label/form-label.component\";\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 NgxMaskDirective,\r\n MatInput,\r\n FormLabelComponent,\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() label!: string;\r\n @Input() hasTooltip = false;\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() matSuffix!: boolean;\r\n @Input() iconSuffixName!: string;\r\n @Input() emitedChangedValue1 = new EventEmitter();\r\n\r\n // ngOnInit(): void {\r\n // this.resetPropagator.subscribe(this, this.resetData);\r\n // this.field == undefined ? (this.field = '') : this.field;\r\n // this.control.setValue(this.field);\r\n // if (this.type == 'email') {\r\n // this.control.setValidators([\r\n // Validators.pattern('^[a-z0-9._%+-]+@[a-z0-9.-]+\\\\.[a-z]{2,4}$'),\r\n // ]);\r\n // }\r\n\r\n // if (this.minLength) {\r\n // this.control.setValidators([Validators.minLength(+this.minLength)]);\r\n // }\r\n\r\n // if (this.maxLength) {\r\n // this.control.setValidators([Validators.maxLength(+this.maxLength)]);\r\n // }\r\n\r\n // if (this.maxValue) {\r\n // this.control.setValidators([Validators.max(+this.maxValue)]);\r\n // }\r\n // }\r\n\r\n ngAfterViewChecked() {\r\n // this.cdRef.detectChanges();\r\n }\r\n\r\n ngOnChanges(changes: SimpleChanges) {\r\n console.log(this.control.errors)\r\n }\r\n onValueChange1(data: any) {\r\n const currentValue = data.target.value;\r\n this.emitedChangedValue1.emit(currentValue);\r\n }\r\n onValueChange(data: any) {\r\n let currentValue = data.target.value;\r\n console.log(this.control)\r\n console.log(\"showErrorMessage :\", this.control.errors)\r\n // if (+currentValue.length > +this.maxLength) {\r\n // currentValue = currentValue.substr(0, +this.maxLength).toString();\r\n // }\r\n\r\n\r\n this.control.setValue(currentValue)\r\n // this.emitedValue.emit(this.control.value.trim());\r\n }\r\n}\r\n","@if(!isReadOnly){\r\n<!-- <app-form-label [label]=\"label\" [optional]=\"!required\" [hideOption]=\"hideOption\" [showLabel]=\"showLabel\"></app-form-label>-->\r\n @if(hasLabel){\r\n <div class=\"d-flex justify-content-between mb-1\">\r\n @if(!hasTooltip){<span class=\"form-label mb-0\">{{label}}</span>}\r\n @if(!required && !hideOption){<span class=\"fs-11 fc-dark-gray\">{{i18n.translate('Optional')}}</span>}\r\n @if(hasTooltip){\r\n <span class=\"form-label mb-0\">\r\n {{labelTextWriteMode}}\r\n <ds-icon icon=\"info fs-22\" class=\"cursor-pointer\" [satPopoverAnchor]=\"popover\"\r\n (click)=\"popover.toggle(); $event.stopImmediatePropagation()\"></ds-icon>\r\n </span>\r\n }\r\n </div>\r\n }\r\n <mat-form-field class=\"primary-form {{className}}\" [ngClass]=\"{'input-disabled' : control.disabled}\"\r\n [floatLabel]=\"floatLabel\">\r\n @if(iconPrefixName){<span matPrefix class=\"sfi {{iconPrefixName}}\"></span>}\r\n @if(loading){<span class=\"sfi sfi-spinner d-inline-block spin fc-coral\" matSuffix></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 @if(type === 'arOnly'){\r\n <input arOnly matInput [value]=\"value\"\r\n oninput=\"validity.valid || (value='');\" [formControl]=\"control\"\r\n (input)=\"onValueChange($event)\" [required]=\"required\"\r\n [placeholder]=\"placeholder\">\r\n }\r\n @if(type === 'enOnly'){\r\n <input enOnly matInput [value]=\"value\"\r\n oninput=\"validity.valid || (value='');\" [formControl]=\"control\"\r\n (input)=\"onValueChange($event)\" [required]=\"required\"\r\n [placeholder]=\"placeholder\">\r\n }\r\n <!-- -->\r\n @if(type !== 'enOnly' && type !== 'arOnly'){\r\n <input matInput [value]=\"value\"\r\n oninput=\"validity.valid || (value='');\" [formControl]=\"control\" [type]=\"type\"\r\n (input)=\"onValueChange($event)\" (change)=\"onValueChange1($event)\"\r\n [placeholder]=\"placeholder\">\r\n\r\n }\r\n </label>\r\n @if(matSuffix){<span matSuffix class=\"sfi {{iconSuffixName}}\"></span>}\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 @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 </mat-form-field>\r\n\r\n <span class=\"fc-coral\" style=\"color:#f44336\">\r\n {{control.errors}}\r\n </span>\r\n\r\n}\r\n\r\n@if(isReadOnly && (showIfEmpty || control)){\r\n <ng-container class=\"info-section\">\r\n <app-info-item class=\"info-item w-100\" [label]=\"label\" [insideTable]=\"insideTable\"\r\n [hasLabel]=\"hasLabel\" [type]=\"type\" [value]=\"control.value\"></app-info-item>\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 </ng-container>\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\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 { BaseComponent } from '../base-component/base-component.component';\r\nimport {ReactiveFormsModule, Validators} from '@angular/forms';\r\nimport { Component, CUSTOM_ELEMENTS_SCHEMA, EventEmitter, Input, Output, SimpleChanges } from '@angular/core';\r\nimport {FloatLabelType, 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\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 ]\r\n})\r\nexport class InputNumberComponent extends BaseComponent {\r\n @Input() label!: string;\r\n @Input() displayValue!: any;\r\n @Input() hasError = false;\r\n @Input() error!: string;\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() matSuffix!: boolean;\r\n @Input() iconSuffixName!: string;\r\n @Input() numberSuffixName!: string;\r\n @Input() optional = false;\r\n @Input() showArrows = false;\r\n @Input() decimals = 0;\r\n @Input() allowedPattern = '';\r\n @Output() emitedChangedValue = new EventEmitter();\r\n ngOnInit(): void {\r\n // this.resetPropagator.subscribe(this, this.resetData);\r\n this.field == undefined ? (this.field = '') : this.field;\r\n this.controller.setValue(this.field);\r\n if (this.type == 'email') {\r\n this.controller.setValidators([\r\n Validators.pattern('^[a-z0-9._%+-]+@[a-z0-9.-]+\\\\.[a-z]{2,4}$'),\r\n ]);\r\n }\r\n\r\n if (this.minLength) {\r\n this.controller.setValidators([Validators.minLength(+this.minLength)]);\r\n }\r\n\r\n if (this.maxLength && ! this.mask) {\r\n // this.controller.setValidators([Validators.maxLength(+this.maxLength)]);\r\n //this.mask = '0'.repeat(+this.maxLength)\r\n }\r\n\r\n if (this.maxValue) {\r\n this.controller.setValidators([Validators.max(+this.maxValue)]);\r\n }\r\n }\r\n\r\n ngAfterViewChecked() {\r\n this.cdRef.detectChanges();\r\n }\r\n\r\n ngOnChanges(changes: SimpleChanges) {\r\n console.log(\"showErrorMessage :\",this.showErrorMessage)\r\n console.log(\"errorMessage :\",this.errorMessage)\r\n\r\n if (changes?.['field']) {\r\n if (changes['field'].currentValue == '' || changes['field'].currentValue == null) {\r\n this.controller.setValue('');\r\n } else {\r\n this.controller.setValue(changes['field'].currentValue)\r\n }\r\n }\r\n }\r\n\r\n onValueChange(data: any) {\r\n let currentValue = data.target.value;\r\n if (+currentValue.length > +this.maxLength) {\r\n currentValue = currentValue.substr(0, +this.maxLength).toString();\r\n }\r\n if (+currentValue < +this.minValue) {\r\n currentValue = this.minValue.toString();\r\n }\r\n if (+currentValue > +this.maxValue) {\r\n currentValue = this.maxValue.toString();\r\n }\r\n this.field = currentValue;\r\n this.controller.setValue(this.field)\r\n this.emitedValue.emit(this.field.trim());\r\n }\r\n\r\n onValueChangeEvent(data: any) {\r\n console.log(\"showErrorMessage :\",this.showErrorMessage)\r\n\r\n let currentValue = data.target.value;\r\n if (+currentValue.length > +this.maxLength) {\r\n currentValue = currentValue.substr(0, +this.maxLength).toString();\r\n }\r\n if (+currentValue < +this.minValue) {\r\n currentValue = this.minValue.toString();\r\n }\r\n if (+currentValue > +this.maxValue) {\r\n currentValue = this.maxValue.toString();\r\n }\r\n this.field = currentValue;\r\n this.controller.setValue(this.field)\r\n this.emitedChangedValue.emit(this.field.trim());\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 && ! 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}}\" [ngClass]=\"{'input-disabled' : disabled }\"\r\n [floatLabel]=\"floatLabel\">\r\n\r\n <span *ngIf=\"iconPrefixName\" matPrefix class=\"sfi {{iconPrefixName}}\"></span>\r\n <label class=\"mat-form-content\">\r\n <!-- pattern=\"\\d*\" -->\r\n <ng-container *ngIf=\"!allowedPattern\">\r\n <input matInput [placeholder]=\"placeholder\" [value]=\"value\" [disabled]=\"disabled\" numberOnly\r\n oninput=\"validity.valid || (value='');\" [formControl]=\"controller\" (input)=\"onValueChange($event)\"\r\n (change)=\"onValueChangeEvent($event)\"\r\n [required]=\"required\" [placeholder]=\"placeholder\" [mask]=\"mask\" >\r\n </ng-container>\r\n\r\n <ng-container *ngIf=\"allowedPattern\">\r\n <input matInput [placeholder]=\"placeholder\" [value]=\"value\" [disabled]=\"disabled\" numberOnly\r\n oninput=\"validity.valid || (value='');\" [formControl]=\"controller\" (input)=\"onValueChange($event)\"\r\n (change)=\"onValueChangeEvent($event)\"\r\n [required]=\"required\" [placeholder]=\"placeholder\" [mask]=\"mask\" >\r\n </ng-container>\r\n </label>\r\n <span *ngIf=\"matSuffix\" matSuffix class=\"sfi {{iconSuffixName}}\"></span>\r\n <div *ngIf=\"type === 'number'\" matSuffix class=\"d-flex align-items-center gap-2\">\r\n <span class=\"fs-14 fw-medium\" *ngIf=\"numberSuffixName\">{{numberSuffixName}}</span>\r\n </div>\r\n <mat-error class=\"mb-2\" *ngIf=\"(!controller?.valid)\">\r\n {{i18n.translate('validFieldError')}}{{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\r\n\r\n </mat-form-field>\r\n <span class=\"fc-coral\" style=\"color: rgb(207 37 67);font-size: 10px;\" *ngIf=\"( showErrorMessage )\">\r\n {{errorMessage}}\r\n </span>\r\n\r\n</ng-container>\r\n\r\n<ng-container *ngIf=\"isReadOnly && field\" class=\"info-section\">\r\n <app-info-item class=\"info-item w-100\" [label]=\"label\" [insideTable]=\"insideTable\" [hasLabel]=\"hasLabel\"\r\n [value]=\"field\"></app-info-item>\r\n</ng-container>\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 @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 '../base-component/base-component.component';\r\nimport {ReactiveFormsModule, Validators} from '@angular/forms';\r\nimport { Component, CUSTOM_ELEMENTS_SCHEMA, Input, SimpleChanges } from '@angular/core';\r\nimport {FloatLabelType, 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\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 ReactiveFormsModule\r\n ]\r\n})\r\nexport class InputEmailComponent extends BaseComponent {\r\n @Input() label!: string;\r\n @Input() displayValue!: any;\r\n @Input() hasError = false;\r\n @Input() error!: string;\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() matSuffix!: boolean;\r\n @Input() iconSuffixName!: string;\r\n @Input() numberSuffixName!: string;\r\n @Input() optional = false;\r\n @Input() showArrows = false;\r\n @Input() decimals = 0;\r\n ngOnInit(): void {\r\n // this.resetPropagator.subscribe(this, this.resetData);\r\n this.field == undefined ? (this.field = '') : this.field;\r\n this.controller.setValue(this.field);\r\n this.controller.setValidators([\r\n Validators.pattern('^[a-z0-9._%+-]+@[a-z0-9.-]+\\\\.[a-z]{2,4}$'),\r\n ]);\r\n this.mask = '^[a-z0-9._%+-]+@[a-z0-9.-]+\\\\.[a-z]{2,4}$'\r\n }\r\n\r\n ngAfterViewChecked() {\r\n this.cdRef.detectChanges();\r\n }\r\n\r\n ngOnChanges(changes: SimpleChanges) {\r\n if (changes?.['field']) {\r\n if (changes?.['field'].currentValue == '' || changes?.['field'].currentValue == null) {\r\n this.controller.setValue('');\r\n } else {\r\n this.controller.setValue(changes['field'].currentValue)\r\n }\r\n }\r\n }\r\n\r\n onValueChange(data: any) {\r\n let currentValue = data.target.value;\r\n if (+currentValue.length > +this.maxLength) {\r\n currentValue = currentValue.substr(0, +this.maxLength).toString();\r\n }\r\n if (+currentValue < +this.minValue) {\r\n currentValue = this.minValue.toString();\r\n }\r\n if (+currentValue > +this.maxValue) {\r\n currentValue = this.maxValue.toString();\r\n }\r\n this.field = currentValue;\r\n this.controller.setValue(this.field)\r\n this.emitedValue.emit(this.field.trim());\r\n }\r\n}\r\n","<ng-container *ngIf=\"!isReadOnly\">\r\n <!-- <app-form-label [label]=\"label\" [optional]=\"!required\" [hideOption]=\"hideOption\" [showLabel]=\"showLabel\"></app-form-label> -->\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 && ! 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}}\" [ngClass]=\"{'input-disabled' : disabled }\"\r\n [floatLabel]=\"floatLabel\" [disabled]=\"disabled\">\r\n\r\n <span *ngIf=\"iconPrefixName\" matPrefix class=\"sfi {{iconPrefixName}}\"></span>\r\n <label class=\"mat-form-content\">\r\n <input matInput [placeholder]=\"placeholder\" [value]=\"value\" [disabled]=\"disabled\" \r\n oninput=\"validity.valid || (value='');\" [formControl]=\"controller\" (input)=\"onValueChange($event)\"\r\n [required]=\"required\" [placeholder]=\"placeholder\">\r\n </label>\r\n\r\n <span *ngIf=\"matSuffix\" matSuffix class=\"sfi {{iconSuffixName}}\"></span>\r\n <div *ngIf=\"type === 'number'\" matSuffix class=\"d-flex align-items-center gap-2\">\r\n <span class=\"fs-14 fw-medium\" *ngIf=\"numberSuffixName\">{{numberSuffixName}}</span>\r\n </div>\r\n\r\n\r\n <mat-error *ngIf=\"(!controller?.valid)\">\r\n {{i18n.translate('validEmailError')}}\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\r\n\r\n </mat-form-field>\r\n <span class=\"fc-coral\" style=\"color:#f44336\" *ngIf=\"( showErrorMessage && controller.value)\">\r\n {{errorMessage}}\r\n </span>\r\n\r\n</ng-container>\r\n\r\n<ng-container *ngIf=\"isReadOnly && field\" class=\"info-section\">\r\n <app-info-item class=\"info-item w-100\" [label]=\"label\" [insideTable]=\"insideTable\" [hasLabel]=\"hasLabel\"\r\n [value]=\"field\"></app-info-item>\r\n</ng-container>\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 @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 '../base-component/base-component.component';\r\n// import { Validators } from '@angular/forms';\r\nimport { Component, CUSTOM_ELEMENTS_SCHEMA, Input, SimpleChanges } from '@angular/core';\r\nimport {FloatLabelType, 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 {ReactiveFormsModule} from \"@angular/forms\";\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 imports: [SatPopoverModule, MatFormField, NgxMaskDirective, NgIf, InfoItemComponent, ReactiveFormsModule, NgClass]\r\n})\r\nexport class InputMaskComponent extends BaseComponent {\r\n @Input() label!: string;\r\n @Input() displayValue!: any;\r\n @Input() hasError = false;\r\n @Input() error!: string;\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() matSuffix!: boolean;\r\n @Input() iconSuffixName!: string;\r\n @Input() numberSuffixName!: string;\r\n @Input() optional = false;\r\n @Input() showArrows = false;\r\n @Input() decimals = 0;\r\n ngOnInit(): void {\r\n // this.resetPropagator.subscribe(this, this.resetData);\r\n this.field == undefined ? (this.field = '') : this.field;\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 ngAfterViewChecked() {\r\n this.cdRef.detectChanges();\r\n }\r\n\r\n ngOnChanges(changes: SimpleChanges) {\r\n if (changes?.['field']) {\r\n if (changes?.['field'].currentValue == '' || changes?.['field'].currentValue == null) {\r\n this.controller.setValue('');\r\n } else {\r\n this.controller.setValue(changes['field'].currentValue)\r\n }\r\n }\r\n }\r\n\r\n onValueChange(data: any) {\r\n let currentValue = data.target.value;\r\n if (+currentValue.length > +this.maxLength) {\r\n currentValue = currentValue.substr(0, +this.maxLength).toString();\r\n }\r\n if (+currentValue < +this.minValue) {\r\n currentValue = this.minValue.toString();\r\n }\r\n if (+currentValue > +this.maxValue) {\r\n currentValue = this.maxValue.toString();\r\n }\r\n this.field = currentValue;\r\n this.controller.setValue(this.field)\r\n this.emitedValue.emit(this.field.trim());\r\n }\r\n}\r\n","<ng-container *ngIf=\"!isReadOnly\">\r\n <!-- <app-form-label [label]=\"label\" [optional]=\"!required\" [hideOption]=\"hideOption\" [showLabel]=\"showLabel\"></app-form-label> -->\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 && ! 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}}\" [ngClass]=\"{'input-disabled' : disabled }\"\r\n [floatLabel]=\"floatLabel\">\r\n\r\n <span *ngIf=\"iconPrefixName\" matPrefix class=\"sfi {{iconPrefixName}}\"></span>\r\n <label class=\"mat-form-content\">\r\n <input matInput [placeholder]=\"placeholder\" [value]=\"value\" [attr.disabled]=\"disabled\" [mask]=\"mask\"\r\n [showMaskTyped]=\"false\" oninput=\"validity.valid || (value='');\" [formControl]=\"controller\"\r\n (input)=\"onValueChange($event)\" [required]=\"required\" [placeholder]=\"placeholder\">\r\n </label>\r\n\r\n <span *ngIf=\"matSuffix\" matSuffix class=\"sfi {{iconSuffixName}}\"></span>\r\n <div *ngIf=\"type === 'number'\" matSuffix class=\"d-flex align-items-center gap-2\">\r\n <span class=\"fs-14 fw-medium\" *ngIf=\"numberSuffixName\">{{numberSuffixName}}</span>\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 <mat-error class=\"mb-2\" *ngIf=\"(type !=='email' && !controller?.valid)\">\r\n {{i18n.translate('validFieldError')}}{{label}}\r\n </mat-error>\r\n\r\n <mat-error *ngIf=\"(type ==='email' && !controller?.valid)\">\r\n {{i18n.translate('validEmailError')}}\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\r\n\r\n </mat-form-field>\r\n <span class=\"fc-coral\" style=\"color:#f44336\" *ngIf=\"( showErrorMessage && controller.value)\">\r\n {{errorMessage}}\r\n </span>\r\n\r\n</ng-container>\r\n\r\n<ng-container *ngIf=\"isReadOnly && field\" class=\"info-section\">\r\n <app-info-item class=\"info-item w-100\" [label]=\"label\" [insideTable]=\"insideTable\" [hasLabel]=\"hasLabel\"\r\n [value]=\"field\"></app-info-item>\r\n</ng-container>\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-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 { BaseComponent } from '../base-component/base-component.component';\r\nimport {ReactiveFormsModule, Validators} from '@angular/forms';\r\nimport { Component, CUSTOM_ELEMENTS_SCHEMA, Input, SimpleChanges } from '@angular/core';\r\nimport {FloatLabelType, 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\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 NgIf\r\n ]\r\n})\r\nexport class InputCurrencyComponent extends BaseComponent {\r\n @Input() label!: string;\r\n @Input() displayValue!: any;\r\n @Input() hasError = false;\r\n @Input() error!: string;\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() showPlus = true;\r\n @Input() showMinus = true;\r\n @Input() matPrefix!: boolean;\r\n @Input() iconPrefixName!: string;\r\n @Input() matSuffix!: boolean;\r\n @Input() iconSuffixName!: string;\r\n @Input() numberSuffixName!: string;\r\n @Input() optional = false;\r\n @Input() showArrows = false;\r\n @Input() decimals = 0;\r\n ngOnInit(): void {\r\n // this.resetPropagator.subscribe(this, this.resetData);\r\n this.field == undefined ? (this.field = '') : this.field;\r\n this.controller.setValue(this.field);\r\n if (this.type == 'email') {\r\n this.controller.setValidators([\r\n Validators.pattern('^[a-z0-9._%+-]+@[a-z0-9.-]+\\\\.[a-z]{2,4}$'),\r\n ]);\r\n }\r\n\r\n // if (this.minLength) {\r\n // this.controller.setValidators([Validators.minLength(+this.minLength)]);\r\n // }\r\n\r\n if (this.maxLength && !this.mask) {\r\n // this.controller.setValidators([Validators.maxLength(+this.maxLength)]);\r\n this.mask = '0'.repeat(+this.maxLength)\r\n }\r\n\r\n if (this.maxValue) {\r\n this.controller.setValidators([Validators.max(+this.maxValue)]);\r\n }\r\n }\r\n\r\n ngAfterViewChecked() {\r\n this.cdRef.detectChanges();\r\n }\r\n\r\n ngOnChanges(changes: SimpleChanges) {\r\n if (changes?.['field']) {\r\n if (changes?.['field'].currentValue == '' || changes?.['field'].currentValue == null) {\r\n this.controller.setValue('');\r\n } else {\r\n this.controller.setValue(changes['field'].currentValue)\r\n }\r\n }\r\n }\r\n\r\n plus() {\r\n let controlValue = (this.controller.value)\r\n controlValue = this.mycurrencyPipe.parse(controlValue)\r\n controlValue = Number(controlValue)\r\n controlValue = controlValue + 1\r\n const currencValue = this.mycurrencyPipe.transform(controlValue.toString())\r\n this.controller.setValue(this.mycurrencyPipe.transform(currencValue))\r\n this.emitedValue.emit(this.controller.value);\r\n }\r\n\r\n minus() {\r\n let controlValue = (this.controller.value)\r\n controlValue = this.mycurrencyPipe.parse(controlValue)\r\n controlValue = Number(controlValue)\r\n if (controlValue > 0) {\r\n controlValue = controlValue - 1\r\n const currencValue = this.mycurrencyPipe.transform(controlValue.toString())\r\n this.controller.setValue(this.mycurrencyPipe.transform(currencValue))\r\n this.emitedValue.emit(this.controller.value);\r\n }\r\n }\r\n\r\n onValueChange(data: any) {\r\n let currentValue = data.target.value;\r\n if (+currentValue.length > +this.maxLength) {\r\n currentValue = currentValue.substr(0, +this.maxLength).toString();\r\n }\r\n if (+currentValue < +this.minValue) {\r\n currentValue = this.minValue.toString();\r\n }\r\n if (+currentValue > +this.maxValue) {\r\n currentValue = this.maxValue.toString();\r\n }\r\n // currentValue = currentValue?.replaceAll(',', '')\r\n // currentValue = Number(currentValue)\r\n // this.field = JSON.stringify(currentValue);\r\n this.field = currentValue;\r\n this.controller.setValue(this.field)\r\n this.emitedValue.emit(this.field.trim());\r\n }\r\n}\r\n","<ng-container *ngIf=\"!isReadOnly\">\r\n <!-- <app-form-label [label]=\"label\" [optional]=\"!required\" [hideOption]=\"hideOption\" [showLabel]=\"showLabel\"></app-form-label> -->\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 && ! 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}}\" [ngClass]=\"{'input-disabled' : disabled }\"\r\n [floatLabel]=\"floatLabel\">\r\n\r\n <span *ngIf=\"iconPrefixName\" matPrefix class=\"sfi {{iconPrefixName}}\"></span>\r\n <label class=\"mat-form-content\">\r\n\r\n <input matInput [placeholder]=\"placeholder\" [value]=\"value\" [disabled]=\"disabled\"\r\n oninput=\"validity.valid || (value='');\" [formControl]=\"controller\" (input)=\"onValueChange($event)\"\r\n (paste)=\"false\"\r\n [required]=\"required\" [placeholder]=\"placeholder\" appMycurrency>\r\n </label>\r\n\r\n <span *ngIf=\"matSuffix\" matSuffix class=\"sfi {{iconSuffixName}}\"></span>\r\n <div *ngIf=\"type === 'number'\" matSuffix class=\"d-flex align-items-center gap-2 position-relative\"\r\n (click)=\"$event.stopPropagation()\">\r\n <span class=\"fs-14 fw-medium\" *ngIf=\"numberSuffixName\">{{numberSuffixName}}</span>\r\n <span class=\"sfi sfi-minus p-2 bc-light-gray fc-black cursor-pointer\" *ngIf=\"showMinus\" (click)=\"minus()\"></span>\r\n <span class=\"sfi sfi-plus p-2 bc-light-gray fc-black cursor-pointer\" *ngIf=\"showPlus\" (click)=\"plus()\"></span>\r\n </div>\r\n <mat-error class=\"mb-2\" *ngIf=\"(type !=='email' && !controller?.valid)\">\r\n {{i18n.translate('validFieldError')}}{{label}}\r\n </mat-error>\r\n\r\n <mat-error *ngIf=\"(type ==='email' && !controller?.valid)\">\r\n {{i18n.translate('validEmailError')}}\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\r\n\r\n </mat-form-field>\r\n <span class=\"fc-coral\" style=\"color:#f44336\" *ngIf=\"( showErrorMessage && controller.value)\">\r\n {{errorMessage}}\r\n </span>\r\n\r\n</ng-container>\r\n\r\n<ng-container *ngIf=\"isReadOnly && (showIfEmpty || field)\" class=\"info-section\">\r\n <app-info-item class=\"info-item w-100\" [type]=\"'currency'\" [label]=\"label\" [insideTable]=\"insideTable\"\r\n [hasLabel]=\"hasLabel\" [value]=\"field\"></app-info-item>\r\n</ng-container>\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","// export * from './input-autocomplete.module';\r\nexport * from './input-autocomplete.model';","import {FormControl, FormsModule} 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 } 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\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})\r\nexport class InputTelephoneComponent {\r\n @Input() label!: string;\r\n @Input() value!: string;\r\n @Input() tooltip!: string;\r\n @Input() floatLabel: any = 'auto';\r\n @Input() className = 'bordered-input';\r\n @Input() placeholder!: string;\r\n @Input() showLabel = true;\r\n @Input() isReadOnly = false;\r\n @Input() matPrefix!: boolean;\r\n @Input() iconPrefixName!: string;\r\n @Input() matSuffix!: boolean;\r\n @Input() iconSuffixName!: string;\r\n @Input() required = true;\r\n @Input() disabled = false;\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 @Input() maxLength: any;\r\n @Input() minLength: any;\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 constructor(\r\n public i18n: CoreI18nService\r\n ) { }\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 {ReactiveFormsModule, Validators} 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, Input, OnChanges, SimpleChanges} from '@angular/core';\r\nimport { BaseComponent } from '../base-component/base-component.component';\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\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 ReactiveFormsModule,\r\n NgIf,\r\n NgClass,\r\n InfoItemComponent\r\n ],\r\n standalone: true\r\n})\r\nexport class TextareaComponent extends BaseComponent implements OnChanges {\r\n @Input() label!: string;\r\n @Input() tooltip!: string;\r\n @Input() className!: string;\r\n @Input() preventSpecailChar!: boolean;\r\n textAreaFocus = false\r\n\r\n ngOnChanges(changes: SimpleChanges): void {\r\n if (changes?.['field'].currentValue == '' || changes?.['field'].currentValue == null) {\r\n this.controller.setValue('');\r\n }else{\r\n this.controller.setValue(changes['field'].currentValue)\r\n }\r\n if(changes?.['disabled']?.previousValue !== changes?.['disabled']?.currentValue){\r\n if(this.disabled) this.controller.disable();\r\n else this.controller.enable();\r\n }\r\n }\r\n\r\n ngOnInit(): void {\r\n // this.resetPropagator.subscribe(this, this.resetData);\r\n this.field == undefined ? (this.field = '') : this.field;\r\n this.controller.setValue(this.field);\r\n if (this.minLength ) {\r\n this.controller.setValidators([\r\n Validators.minLength(+this.minLength),\r\n ]);\r\n }\r\n if (this.maxLength ) {\r\n this.controller.setValidators([\r\n Validators.maxLength(+this.maxLength),\r\n ]);\r\n }\r\n if (this.required) {\r\n this.controller.setValidators([Validators.required]);\r\n }\r\n }\r\n\r\n focusInFunction() {\r\n this.textAreaFocus = true;\r\n this.validateTextAreaBorder();\r\n }\r\n\r\n focusOutFunction() {\r\n this.textAreaFocus = false;\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 onValueChange(event) {\r\n const target = event.target as HTMLInputElement;\r\n const data = target.value\r\n this.emitedValue.emit(data.trim());\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\">\r\n <!-- {{'Optional'| transloco}} -->{{ i18n.translate('Optional') }}\r\n </span>\r\n </div>\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\r\n <textarea *ngIf=\"type === 'arOnly'\" [placeholder]=\"placeholder\" [minlength]=\"minLength\" [maxlength]=\"maxLength\" min=\"minlength\" arOnly\r\n (input)=\"onValueChange($event)\" (focusout)=\"focusOutFunction()\" (focusin)=\"focusInFunction()\" max=\"maxValue\"\r\n [formControl]=\"controller\" matInput></textarea>\r\n\r\n <textarea *ngIf=\"type === 'enOnly'\" [placeholder]=\"placeholder\" [minlength]=\"minLength\" [maxlength]=\"maxLength\" min=\"minlength\" enOnly\r\n (input)=\"onValueChange($event)\" (focusout)=\"focusOutFunction()\" (focusin)=\"focusInFunction()\" max=\"maxValue\"\r\n [formControl]=\"controller\" matInput></textarea>\r\n\r\n <!-- <textarea *ngIf=\"preventSpecailChar\" [placeholder]=\"placeholder\" [minlength]=\"minLength\" [maxlength]=\"maxLength\" min=\"minlength\"\r\n specialIsAlphaNumeric\r\n (input)=\"onValueChange($event.target.value)\" (focusout)=\"focusOutFunction()\" (focusin)=\"focusInFunction()\" max=\"maxValue\"\r\n [formControl]=\"controller\" matInput></textarea>-->\r\n <!--&& !preventSpecailChar-->\r\n <textarea *ngIf=\"type !== 'enOnly' && type !== 'arOnly' \" [placeholder]=\"placeholder\" [minlength]=\"minLength\"\r\n [maxlength]=\"maxLength\" min=\"minlength\" specialIsAlphaNumeric\r\n (input)=\"onValueChange($event)\" (focusout)=\"focusOutFunction()\" (focusin)=\"focusInFunction()\" max=\"maxValue\"\r\n [formControl]=\"controller\" matInput></textarea>\r\n\r\n </label>\r\n <!-- [(ngModel)]=\"field\" [name]=\"name\" -->\r\n <mat-error *ngIf=\"field && field?.length < minLength\">{{ errorMessage }}</mat-error>\r\n <mat-error *ngIf=\"field && field?.length > maxLength\">{{ errorMessage }}</mat-error>\r\n <mat-error class=\"mb-2\" *ngIf=\"!field && (!controller?.valid)\">{{ i18n.translate('validFieldError') }}{{ label }}</mat-error>\r\n\r\n\r\n <mat-hint class=\"d-flex align-items-center gap-1 mt-1\" *ngIf=\"showHint\">\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</ng-container>\r\n\r\n<ng-container *ngIf=\"isReadOnly && (showIfEmpty || field)\">\r\n <app-info-item class=\"info-item w-100\" [insideTable]=\"insideTable\" [label]=\"label\" [value]=\"field\" [type]=\"type\"></app-info-item>\r\n</ng-container>\r\n","/* eslint-disable @angular-eslint/directive-selector */\r\n/* eslint-disable @typescript-eslint/no-empty-function */\r\nimport { Directive, HostListener } from '@angular/core';\r\n\r\n@Directive({\r\n selector: '[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, Input, NO_ERRORS_SCHEMA} 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 {CoreI18nService} from \"../../../services\";\r\nimport {ActionStateService} from \"../../../services/action.service.ts\";\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 ]\r\n})\r\nexport class ActionButtonsComponent {\r\n @Input() lovOptions: any[];\r\n @Input() lovType: string;\r\n actionStates: { [action: string]: boolean };\r\n\r\n constructor(public i18n: CoreI18nService,\r\n private actionStateService: ActionStateService\r\n ) {\r\n this.actionStateService.actionStates$.subscribe(states => this.actionStates = states);\r\n }\r\n\r\n resetForm() {\r\n\r\n }\r\n\r\n onSubmit(action: string) {\r\n\r\n }\r\n\r\n validForm(action: string) {\r\n return true\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 <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 [ngClass]=\"{'disabled': !actionStates[item.value]}\"\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 flex-wrap align-items-center flex-grow-1 justify-content-end 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 <ds-button\r\n [ngClass]=\"{'disabled': !validForm('SUBMIT')}\"\r\n (click)=\"onSubmit('SUBMIT')\">\r\n {{ i18n.translate('submit') }}\r\n </ds-button>\r\n </div>\r\n }\r\n</div>\r\n","import {Component, CUSTOM_ELEMENTS_SCHEMA, Inject} from '@angular/core';\r\nimport {MAT_DIALOG_DATA, MatDialogClose, MatDialogContent, MatDialogRef, MatDialogTitle} from '@angular/material/dialog';\r\nimport {CoreI18nService} from '../../../services';\r\n\r\n@Component({\r\n selector: 'app-terms-conditions',\r\n templateUrl: './terms-conditions.component.html',\r\n styleUrls: ['./terms-conditions.component.scss'],\r\n schemas: [CUSTOM_ELEMENTS_SCHEMA],\r\n imports: [\r\n MatDialogContent,\r\n MatDialogClose,\r\n MatDialogTitle\r\n ],\r\n standalone: true\r\n})\r\nexport class TermsConditionsComponent {\r\n termsBody: string = null;\r\n\r\n constructor(\r\n public dialogRef: MatDialogRef<TermsConditionsComponent>,\r\n public i18n: CoreI18nService,\r\n @Inject(MAT_DIALOG_DATA) public data: any\r\n ) {\r\n this.termsBody = data;\r\n }\r\n}\r\n","<div class=\"popup-container\">\r\n <div class=\"d-flex align-items-center justify-content-between\" mat-dialog-title>\r\n <h3 class=\"mb-0 font-16 fw-medium\" >{{i18n.translate('termsAndConditions')}}</h3>\r\n <ds-button matDialogClose icon>\r\n <ds-icon icon=\"close\" class=\"fs-20 fc-black\"></ds-icon>\r\n </ds-button>\r\n </div>\r\n <mat-dialog-content>\r\n <div class=\"px-md-4\">\r\n <p class=\"fs-15 fw-normal bg-color-light-gray p-3 text-break\" [innerHTML]='termsBody' > </p>\r\n </div>\r\n </mat-dialog-content>\r\n</div>\r\n","import { Component, CUSTOM_ELEMENTS_SCHEMA, Input, OnInit } 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 NgIf,\r\n NgForOf\r\n ],\r\n schemas: [CUSTOM_ELEMENTS_SCHEMA]\r\n})\r\nexport class FaqsComponent implements OnInit {\r\n @Input() adminView = false;\r\n @Input() faqs: FAQ[];\r\n\r\n constructor(public i18n: CoreI18nService) { }\r\n\r\n ngOnInit(): void {\r\n\r\n }\r\n\r\n}\r\n","<mat-accordion class=\"primary-accordion\">\r\n <mat-expansion-panel [expanded]=\"i==0\" class=\"mb-4\" *ngFor=\"let item of faqs; let i = index;\" hideToggle #expansionPanel=\"matExpansionPanel\">\r\n <mat-expansion-panel-header *ngIf=\"item.title\" class=\"expansion-header\">\r\n\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 <ds-icon icon=\"plus-1\" class=\"fs-20 fc-coral\" *ngIf=\"!expansionPanel.expanded\"></ds-icon>\r\n <ds-icon icon=\"minus\" class=\"fs-20 fc-dark-gray\" *ngIf=\"expansionPanel.expanded\"></ds-icon>\r\n </mat-panel-title>\r\n\r\n </mat-expansion-panel-header>\r\n <p class=\"fs-14 fc-dark-gray\">\r\n {{ item.content }}\r\n </p>\r\n </mat-expansion-panel>\r\n</mat-accordion>\r\n","/* eslint-disable @angular-eslint/component-selector */\r\nimport { Component, CUSTOM_ELEMENTS_SCHEMA, OnInit } 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 implements OnInit {\r\n\r\n data = [];\r\n\r\n constructor(private sidenavService: SidenavService,\r\n public i18n: CoreI18nService) { }\r\n\r\n\r\n ngOnInit(): void {\r\n // this.data = this.sidenavService?.subject?.value['data'];\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, SidenavService } from '../../../services';\r\nimport * as Constants from '../../../constants/constants';\r\nimport { NgIf } from '@angular/common';\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 NgIf\r\n ],\r\n schemas: [CUSTOM_ELEMENTS_SCHEMA]\r\n})\r\nexport class ActivitiesComponent {\r\n constructor(\r\n private sidenavService: SidenavService,\r\n public i18n: CoreI18nService,\r\n ) {}\r\n\r\n\r\n attch(data: any) {\r\n console.log(data.detail);\r\n if (data.detail.type == 'download') {\r\n this.downloadFile(data);\r\n }\r\n\r\n }\r\n\r\n\r\n downloadFile(event: { target: { nextElementSibling: any; }; detail: { value: { id: any; }; }; }) {\r\n /* const placeholder = event.target.nextElementSibling;\r\n this.coreStateMachineService.dispatch(Constants.STATE_MACHINE_ACTION_LOAD_FILE, event.detail.value.id).then((responseObject: { body: any; }) => {\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 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\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 <ds-activity-log activitiesData=\"{{profileRequestorService.activities}}\" readOnly (attachmentEvent)=\"attch($event)\">\r\n </ds-activity-log>\r\n <a href=\"\" class=\"hidden-placeholder\"></a>\r\n <ds-message *ngIf=\"!profileRequestorService.activities\" label=\"{{i18n.translate('NoData1')}}\"></ds-message>\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, 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 * as moment from 'moment'\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() serviceBrief: any[] = [];\r\n approvals: any[] = [];\r\n public feedBackIcon: string = null;\r\n flagPriority: string;\r\n\r\n constructor(\r\n private cdRef: ChangeDetectorRef,\r\n public i18n: CoreI18nService, private feedBackService: FeedBackService,\r\n private readonly dialog: MatDialog, private readonly sidenavService: SidenavService,\r\n ) {\r\n\r\n }\r\n\r\n ngAfterViewInit() {\r\n this.getApprovalHistory();\r\n this.creationDate = moment(this.form?.header?.creationDate).locale('en-US').format(\"DD/MM/YYYY HH:mm:ss\");\r\n this.cdRef.detectChanges();\r\n\r\n }\r\n\r\n onCommentsFormClick() {\r\n const comments: any = this.form.commentsDrop;\r\n const resultData = [];\r\n for (let index = 0; index < comments.length; index++) {\r\n const item = comments[index];\r\n const obj =\r\n {\r\n name: item.employeeName,\r\n title: item.jobPosition,\r\n image: item.profilePicture,\r\n date: moment(item.commentDate).locale('en-US').format('YYYY-MM-DD'),\r\n time: moment(item.commentDate).locale('en-US').format('h:mm a'),\r\n comment: item.commentBody,\r\n attachments: item.attachment\r\n };\r\n resultData.push(obj);\r\n }\r\n // this.profileRequesterService.activities = resultData;\r\n this.sidenavService.publish('open', ActivitiesComponent);\r\n }\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 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 setFlagPriority(id: string) {\r\n this.flagPriority = id;\r\n this.form.inboxItem.flagPriority = id;\r\n // this.stateMachineService.dispatch(Constants.STATE_MACHINE_ACTION_SET_FLAG, id).then(() => {\r\n // });\r\n }\r\n\r\n statusClass(status: string) {\r\n if (status) {\r\n if (this.isLoading) {\r\n return 'loading';\r\n } else 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 } else {\r\n return 'success';\r\n }\r\n }\r\n\r\n openFaq() {\r\n this.sidenavService.publish('open', FaqSidenavComponent, 'end', 'over', this.serviceBrief);\r\n }\r\n\r\n getApprovalHistory() {\r\n this.approvalHistory?.forEach((element: { approver: { personName: any; personEmail: string; }; positionType: any; }, index: number) => {\r\n const obj = {\r\n id: index + 1,\r\n name: element.approver.personName,\r\n title: element.positionType,\r\n image: '/group/i-gate/wm-bpm/forms/-/proxy/portrait?email=' + element.approver.personEmail,\r\n status: this.form.sections[index + 1] ? this.statusClass(this.form.sections[index + 1].body.details.decision.key) : '',\r\n statusLabel: this.form.sections[index + 1] ? this.form.sections[index + 1].body.details.decision.value : ''\r\n };\r\n this.approvals.push(obj);\r\n });\r\n }\r\n}\r\n","<ng-container *ngIf=\"!(form?.header?.status?.['key'] === 'NEW')\">\r\n <div class=\"d-flex align-items-center justify-content-end gap-2 my-2\" *ngIf=\"!(form?.header?.status?.['key'] === 'NEW')\">\r\n\r\n <!-- flag-->\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 <!-- print-->\r\n <ng-content></ng-content>\r\n </div>\r\n\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 <!-- title-->\r\n <h1 class=\"fs-20 fs-md-16 fw-bold fc-black header-title m-0\">{{ formTitle }}\r\n <ds-icon\r\n icon=\"info\" class=\"fs-22 fc-dark-gray cursor-pointer\" *ngIf=\"serviceBrief.length\"\r\n (click)=\"openFaq()\"></ds-icon>\r\n </h1>\r\n <div\r\n class=\"header-user d-flex align-items-sm-center gap-2 mt-sm-1\"\r\n *ngIf=\"form?.header?.status?.['key'] !== 'NEW' || isLoading\">\r\n <ds-avatar\r\n *ngIf=\"!isLoading\" image=\"{{form?.header?.requesterPhoto}}\" size=\"xx-small\"\r\n class=\"d-inline-flex cursor-pointer\" (click)=\"showUserInfo()\"></ds-avatar>\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}\">{{ (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 <mat-divider *ngIf=\"creationDate\" class=\"divider circle mx-2 d-none d-sm-block\"></mat-divider>\r\n <span *ngIf=\"creationDate\" class=\"fs-14\" [ngClass]=\"{'loading-bg loading-width': isLoading}\">{{ creationDate }}</span>\r\n </div>\r\n </div>\r\n <!-- header-actions-->\r\n <div\r\n 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 *ngIf=\"!(form?.header?.status?.['key'] === 'NEW')\">\r\n <ds-status\r\n *ngIf=\"form?.header?.status?.['key'] !== 'NEW' && !isLoading\"\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 <ng-container *ngIf=\"showApprovalHistory\">\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\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 </div>\r\n </div>\r\n </div>\r\n\r\n </header>\r\n</ng-container>\r\n<header\r\n class=\"mb-4 mt-4 d-flex align-items-center justify-content-between align-items-end gap-2\"\r\n *ngIf=\"(form?.header?.status?.['key'] === 'NEW')\">\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 {{ (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 <ds-icon icon=\"info\" class=\"fs-22 fc-dark-gray cursor-pointer\" *ngIf=\"serviceBrief.length\" (click)=\"openFaq()\">\r\n </ds-icon>\r\n </h1>\r\n </section>\r\n\r\n</header>\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 {AfterViewChecked, AfterViewInit, Component, CUSTOM_ELEMENTS_SCHEMA, Input, OnInit, ViewChild} 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 * as moment from 'moment'\r\nimport {ProfileSectionComponent} from \"../profile-section/profile-section.component\";\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, AfterViewChecked {\r\n userType = 'recipient';\r\n // @ViewChild('popover') popover?: any;\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() isOpen: boolean;\r\n // @Input() isFinalApproval: 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 sectionNumber: number;\r\n sectionStatusValue: string;\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 // highlightFlag: boolean;\r\n\r\n processingDate: string;\r\n public randomID: number =\r\n Math.floor(Math.random() * (999999 - 100000)) + 100000;\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 // this.highlightFlag = false;\r\n }\r\n\r\n ngOnInit() {\r\n this.sectionFormComponent = this.segmentDynamicLoaderService.getComponent(\r\n this.section.id\r\n );\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 this.input = {\r\n isReadOnly: this.isReadOnly,\r\n lov: this.lov,\r\n section: this.section,\r\n controllers: this.controllers,\r\n requestDetails: this.requestDetails\r\n };\r\n if (this.section.header && this.section.header.processingDate) {\r\n this.processingDate = moment(this.section.header.processingDate)\r\n .locale('en-US')\r\n .format('DD/MM/YYYY HH:mm:ss');\r\n }\r\n\r\n // this.highlightFlag = this.isOpen;\r\n const x = document.querySelectorAll('#collapse' + this.sectionId());\r\n if (x.length > 0) {\r\n this.sectionNumber = x.length;\r\n }\r\n }\r\n\r\n /* ngOnChanges() {\r\n if (\r\n this.section.id !== 'requestDetails' &&\r\n this.section.id !== 'hrRequestDetails' &&\r\n !this.sectionStatusKey &&\r\n this.section.body.details.decision &&\r\n this.section.body.details.decision.key\r\n ) {\r\n this.sectionStatusKey = this.section.body.details.decision.key;\r\n }\r\n if (\r\n this.section.id !== 'requestDetails' &&\r\n this.section.id !== 'hrRequestDetails' &&\r\n !this.sectionStatusValue &&\r\n this.section.body.details.decision &&\r\n this.section.body.details.decision.value\r\n ) {\r\n this.sectionStatusValue = this.section.body.details.decision.value;\r\n }\r\n }*/\r\n\r\n /* ngAfterViewInit() {\r\n this.ServicesSubScriptions();\r\n }*/\r\n\r\n get isExpanded(): boolean {\r\n const isExpandableFromBackend = this.form?.sections?.length && this.form.sections.some(section => 'expandStage' in section?.body?.details);\r\n if (!isExpandableFromBackend) return true;\r\n return this.section?.body?.details?.expandStage === 'true';\r\n }\r\n\r\n /* public ServicesSubScriptions() {\r\n /!* this.profileRequestorService.getForm().subscribe((data) => {\r\n this.form = data;\r\n });*!/\r\n }*/\r\n\r\n ngAfterViewChecked() {\r\n this.input = {\r\n isReadOnly: this.isReadOnly,\r\n lov: this.lov,\r\n section: this.section,\r\n controllers: this.controllers,\r\n sectionId: this.section\r\n };\r\n }\r\n\r\n sectionId() {\r\n return this.section.id.split(' ').join('') + this.randomID;\r\n }\r\n\r\n private createUserProfileFromResponse(response: any): ProfileInfoDrop {\r\n return new ProfileInfoDrop(\r\n false,\r\n response?.[\"Users\"][0]?.employeeNumber,\r\n response?.[\"Users\"][0]?.email,\r\n response?.[\"Users\"][0]?.name,\r\n response?.[\"Users\"][0]?.generalDepartment?.name,\r\n response?.[\"Users\"][0]?.position?.name,\r\n response?.[\"Users\"][0]?.sector?.name,\r\n response?.[\"Users\"][0]?.department?.name,\r\n response?.[\"Users\"][0]?.generalDepartment?.code,\r\n response?.[\"Users\"][0]?.location,\r\n response?.[\"Users\"][0]?.nationality?.desc,\r\n response?.[\"Users\"][0]?.contact?.mobile,\r\n response?.[\"Users\"][0]?.manager?.name,\r\n response?.[\"Users\"][0]?.seniorSectorName?.name\r\n );\r\n }\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 toggleSmallProfileInfo(event, personType) {\r\n this.userType = personType;\r\n event.stopPropagation();\r\n let userInfo = this[personType];\r\n if (userInfo.profile === null) {\r\n this.popoverType = personType;\r\n let userEmail = (personType === 'recipient' ? this.section.header.personToThumbnail.split('=')[1] : this?.section?.header?.delegatedToThumbnail.split('=')[1]);\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 } else {\r\n this.openOrCreateUserProfile(this[personType].profile, personType);\r\n }\r\n }\r\n\r\n statusClass(status: string) {\r\n if (status) {\r\n if (\r\n status === Constants.FORM_STATUS_REJECTED || status === Constants.FORM_STATUS_CANCELLED\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 } else {\r\n return 'success';\r\n }\r\n }\r\n\r\n statusIcon(status: string) {\r\n if (status) {\r\n if (\r\n status === Constants.FORM_STATUS_REJECTED || status === Constants.FORM_STATUS_CANCELLED\r\n || status.toLowerCase() === 'reject' || status.toLowerCase() === 'unsatisfied' || status.toLowerCase() === 'cancel'\r\n ) {\r\n return 'close';\r\n } else if (status === Constants.FORM_STATUS_PENDING || status.toLowerCase() === 'pending') {\r\n return 'clock';\r\n } else {\r\n return 'check';\r\n }\r\n } else {\r\n return 'check';\r\n }\r\n }\r\n}\r\n","<mat-expansion-panel\r\n class=\"mb-4\" [expanded]=\"isExpanded\" *ngIf=\"form?.header?.status?.['key'] !== 'NEW' \" hideToggle\r\n #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 <bdi class=\"fs-12 fc-dark-gray fw-normal line-height-1 d-block mt-1\" *ngIf=\"section.header?.processedBy\">\r\n {{ processingDate }}\r\n </bdi>\r\n </div>\r\n </div>\r\n <div class=\"approval-panel-details gap-1\">\r\n\r\n <ng-container *ngIf=\"(!section?.body?.details?.['stage0']?.['isStage0'] || section?.body?.details?.['stage0']?.['isStage0'] === 'false')\">\r\n <div\r\n class=\"d-flex align-items-center gap-3\" *ngIf=\"section?.header?.personTo;\"\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 <span\r\n class=\"fs-14 fw-medium d-inline-block panel-user-name text-truncate\" [ngClass]=\"{'panel-user-only': !section?.header?.delegatedTo}\"\r\n *ngIf=\"!section?.header?.delegatedTo\">{{ section?.header?.personTo }}</span>\r\n </div>\r\n\r\n <div\r\n *ngIf=\"section?.header?.delegatedTo\" 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\r\n </div>\r\n </div>\r\n </ng-container>\r\n <ds-status\r\n class=\"main-status\" *ngIf=\"section?.body?.details?.['decision']?.key;\"\r\n status=\"{{statusClass(section?.body?.details?.['decision']?.key)}}\">{{ section?.body?.details?.['decision']?.value }}\r\n </ds-status>\r\n </div>\r\n\r\n <div class=\"approval-panel-toggle\">\r\n <ds-icon icon=\"plus-1\" class=\"fs-20 fc-coral\" *ngIf=\"!approvalPanel.expanded\"></ds-icon>\r\n <ds-icon icon=\"minus\" class=\"fs-20 fc-dark-gray\" *ngIf=\"approvalPanel.expanded\"></ds-icon>\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<ng-container *ngIf=\"form?.header?.status?.['key'] == 'NEW' \">\r\n <ng-container *ngComponentOutlet=\"sectionFormComponent; ndcDynamicInputs: input\"></ng-container>\r\n</ng-container>\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\nimport { NgIf } from '@angular/common';\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 NgIf\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 <div class=\"d-inline-flex align-items-center gap-2\" *ngIf=\"!requestPanel.expanded\">\r\n <ds-icon icon=\"plus-1\" class=\"fs-20 fc-coral\"></ds-icon>\r\n </div>\r\n <div class=\"d-inline-flex align-items-center gap-2\" *ngIf=\"requestPanel.expanded\">\r\n <ds-icon icon=\"minus\" class=\"fs-20 fc-dark-gray\"></ds-icon>\r\n </div>\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 { Component, CUSTOM_ELEMENTS_SCHEMA, EventEmitter, Input, Output } from '@angular/core';\r\nimport { SidenavService } from '../../../services';\r\nimport { CommentsDrop, Form } from '../../../interfaces';\r\nimport * as Constants from '../../../constants/constants';\r\nimport { CoreI18nService } from '../../../services';\r\nimport {DatePipe, NgForOf, NgIf} from '@angular/common';\r\n\r\n@Component({\r\n selector: 'app-comment-section',\r\n templateUrl: './comment-section.component.html',\r\n styleUrls: ['./comment-section.component.scss'],\r\n standalone: true,\r\n imports: [\r\n NgIf,\r\n NgForOf,\r\n DatePipe\r\n ],\r\n schemas: [CUSTOM_ELEMENTS_SCHEMA]\r\n})\r\nexport class CommentSectionComponent {\r\n\r\n @Input() commentFormVisibility: boolean;\r\n @Input() comments: CommentsDrop[];\r\n @Input() form: Form;\r\n @Output() close: EventEmitter<boolean> = new EventEmitter();\r\n\r\n constructor(public i18n: CoreI18nService,\r\n private sidenavService: SidenavService\r\n ) {\r\n this.form = sidenavService.data.form,\r\n this.comments = sidenavService.data.form.commentsDrop;\r\n this.commentFormVisibility = true;\r\n }\r\n\r\n\r\n CloseMenu() {\r\n this.sidenavService.publish('close', null);\r\n this.close.emit();\r\n }\r\n\r\n\r\n downloadAttachment(event: any, field: any) {\r\n let placeholder = event.target.nextElementSibling;\r\n if (placeholder == null) {\r\n placeholder = document.getElementById('downloadBtn').nextElementSibling;\r\n }\r\n /* this.stateMachineService.dispatch(Constants.STATE_MACHINE_ACTION_LOAD_FILE, field).then((responseObject: any) => {\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 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\r\n}\r\n","\r\n<div class=\"overlay-menu view-overlay\" (click)=\"CloseMenu()\"></div>\r\n\r\n<div class=\"side-menu open-side-menu\" >\r\n <div class=\"head\">\r\n <span (click)=\"CloseMenu()\" class=\"close-menu sfi sfi-close\">\r\n </span>\r\n <span class=\"txt\">\r\n {{i18n.translate('commentHistory')}}\r\n </span>\r\n </div>\r\n\r\n <div *ngIf=\"form?.commentsDrop\" class=\"flex-grow-1 overflow-auto\">\r\n <div class=\"side-menu-content\" *ngFor=\"let comment of form.commentsDrop\">\r\n <div class=\"side-menu-detail\">\r\n <div class=\"dots\">\r\n <svg xmlns=\"http://www.w3.org/2000/svg\" width=\"24\" height=\"24\" viewBox=\"0 0 24 24\">\r\n <g id=\"Group_16648\" data-name=\"Group 16648\" transform=\"translate(-952.156 -107.008)\">\r\n <g id=\"Ellipse_592\" data-name=\"Ellipse 592\" transform=\"translate(952.156 107.008)\" fill=\"none\"\r\n stroke=\"#e3e3e3\" stroke-width=\"1\">\r\n <circle cx=\"12\" cy=\"12\" r=\"12\" stroke=\"none\" />\r\n <circle cx=\"12\" cy=\"12\" r=\"11.5\" fill=\"none\" />\r\n </g>\r\n <circle id=\"Ellipse_595\" data-name=\"Ellipse 595\" cx=\"8\" cy=\"8\" r=\"8\"\r\n transform=\"translate(956.156 111.008)\" fill=\"#e3e3e3\" />\r\n </g>\r\n </svg>\r\n </div>\r\n <ds-avatar image={{comment?.profilePicture}} size=\"small\" class=\"d-inline-flex cursor-pointer\"></ds-avatar>\r\n <div class=\"request-details\">\r\n <div class=\"d-flex justify-content-between\">\r\n <div>\r\n <h2 class=\"user-name\">{{comment?.employeeName}}</h2>\r\n <span class=\"user-position\">{{comment?.jobPosition}}</span>\r\n </div>\r\n <div class=\"req-history\">\r\n <span>{{comment?.commentDate | date :'dd/MM/yyyy HH:mm:ss'}}</span>\r\n </div>\r\n </div>\r\n\r\n <div class=\"comment\" *ngIf=\"comment?.commentBody\">\r\n <p>{{comment?.commentBody}} </p>\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n\r\n</div>\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 { 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","import {Component, CUSTOM_ELEMENTS_SCHEMA, Input, NO_ERRORS_SCHEMA} from '@angular/core';\r\nimport {Form, Section} from \"../../interfaces\";\r\nimport {CoreI18nService} from \"../../services\";\r\nimport {NgClass, NgForOf, NgIf} from \"@angular/common\";\r\nimport {InputComponent} from '../../components/shared-components';\r\nimport {ActionButtonsComponent} from \"../../components/shared-components/action-buttons/action-buttons.component\";\r\nimport {FormBuilder, FormGroup, ReactiveFormsModule, Validators} from \"@angular/forms\";\r\nimport {ActionStateService} from \"../../services/action.service.ts\";\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 ]\r\n})\r\nexport class RequestDetailsSectionComponent {\r\n\r\n @Input() isReadOnly: boolean;\r\n @Input() section: Section;\r\n @Input() lov: any;\r\n @Input() className: string = \"info-section\";\r\n form: Form;\r\n fieldsForm: FormGroup;\r\n\r\n\r\n constructor(public i18n: CoreI18nService, private fb: FormBuilder, private actionStateService: ActionStateService) {\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 this.fieldsForm.valueChanges.subscribe(value => {\r\n this.lov?.['decision']?.options?.forEach(option => {\r\n let isActionValid = this.checkValidity(option.value);\r\n this.actionStateService.setActionValid(option.value, isActionValid);\r\n })\r\n })\r\n }\r\n\r\n 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}\r\n","<div\r\n [ngClass]=\"{'form-section-divide form-section':!section?.header?.readOnly,'info-section':section?.header?.readOnly}\">\r\n\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 />\r\n </div>\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 { HttpClient, HttpHeaders } from '@angular/common/http';\r\nimport {CoreService} from \"../../services\";\r\nimport { Messages} from \"../../interfaces\";\r\nimport * as constants from \"../../constants\";\r\n\r\n@Injectable({\r\n providedIn: 'any',\r\n})\r\nexport class StateMachineService {\r\n private currentSubmitter: any;\r\n feedbackForm: boolean = false;\r\n private formName: string;\r\n private serviceName!: string;\r\n private refreshToken: string;\r\n pendingForm: boolean = false;\r\n responderForm: boolean = false;\r\n feedBackSent: boolean = false;\r\n feedbackReponse: any = {\r\n requestFrom: null,\r\n requestTo: null,\r\n requestFeedback: null,\r\n responseFeedback: null\r\n };\r\n private transitions: { [key: string]: { [key: string]: Function } };\r\n private state: string;\r\n private authToken: string;\r\n private formId: string;\r\n public isReadOnly: string;\r\n public inboxUrl: string;\r\n private isMobile: boolean;\r\n private requesterEmail!: string;\r\n private authorizedEmail!: string;\r\n constructor(private http: HttpClient, private coreStateMachineService: CoreService) {\r\n this.isMobile = (window as any).wmConfig.isMobile;\r\n this.state = constants.STATE_MACHINE_STATUS_IDLE;\r\n this.currentSubmitter = null;\r\n this.authToken = '';\r\n this.refreshToken = '';\r\n this.formId = (window as any).wmConfig.formId;\r\n this.formName =(window as any).wmConfig.formPrefix;\r\n if(this.formName.includes('-new')){\r\n const myArray = this.formName.split(\"-\");\r\n this.formName = myArray['0']\r\n }\r\n this.inboxUrl = (window as any).wmConfig.inboxUri;\r\n console.log('inboxUrl', this.inboxUrl);\r\n console.log('inboxUrl', location.host + this.inboxUrl);\r\n\r\n /* istanbul ignore next */\r\n this.transitions = {\r\n idle: {\r\n mockApi: function (filterData, ...args) {\r\n let body = {\r\n method: constants.HTTP_METHOD_GET, //GET - PUT - POST\r\n destination: constants.TARGET_SERVER_WM,\r\n serviceName: 'serviceName', //,\r\n formName: this.formName,\r\n queryParameters: {\r\n\r\n }\r\n }\r\n let options = this.getRequestOptions();\r\n let succ = 'serviceResponce';\r\n return this.callPost(body, succ, options);\r\n },\r\n\r\n getFileTemplate: function(...args) {\r\n let [formID] = args;\r\n this.state = constants.STATE_MACHINE_STATUS_FETCHING;\r\n let body = {\r\n method: constants.HTTP_METHOD_GET,\r\n destination: constants.TARGET_SERVER_WM,\r\n serviceName: \"getFileTemplate\",\r\n formName: \"WPO\",\r\n queryParameters: {\r\n formID: formID,\r\n\r\n }\r\n };\r\n let options = this.getRequestOptions();\r\n let succ = constants.STATE_MACHINE_ACTION_SUCCESS_RESPONSE;\r\n return this.callPost(body, succ, options);\r\n },\r\n\r\n\r\n\r\n\r\n },\r\n fetching: {\r\n serviceResponce: function (...args: any) {\r\n let [payload] = args;\r\n let result = payload;\r\n this.state = constants.STATE_MACHINE_STATUS_IDLE;\r\n return result;\r\n },\r\n failure: function (...args) {\r\n let [errors] = args;\r\n this.state = constants.STATE_MACHINE_STATUS_ERROR;\r\n return this.dispatch(constants.STATE_MACHINE_ACTION_HANDLE_ERROR, errors);\r\n }\r\n },\r\n error: {\r\n handleError: function (...args) {\r\n let [errors] = args;\r\n let result = new Messages(\r\n {},\r\n [],\r\n [],\r\n []\r\n );\r\n if (errors?.meta?.messages) {\r\n errors.meta.messages.forEach((message) => {\r\n result[message.type].push(message.message);\r\n if (message.payloadReference) {\r\n let payloadReferenceTokens = message.payloadReference.split('/');\r\n payloadReferenceTokens.slice(1, payloadReferenceTokens.length - 1);\r\n let element = result.errorFields;\r\n payloadReferenceTokens.forEach((token) => {\r\n element[token] = {};\r\n element = element[token];\r\n })\r\n element = true;\r\n }\r\n });\r\n } else if (errors?.errors) {\r\n errors.errors.forEach((message) => {\r\n result['error'].push(message.message);\r\n });\r\n }\r\n this.state = constants.STATE_MACHINE_STATUS_IDLE;\r\n return result;\r\n }\r\n },\r\n sending: {\r\n failure: function (...args) {\r\n let [errors] = args;\r\n this.state = constants.STATE_MACHINE_STATUS_ERROR;\r\n return this.dispatch(constants.STATE_MACHINE_ACTION_HANDLE_ERROR, errors);\r\n }\r\n }\r\n }\r\n }\r\n\r\n public dispatch(actionName, ...args) {\r\n const actions = this.transitions[this.state];\r\n const action = actions[actionName];\r\n\r\n if (action) {\r\n return action.apply(this, args);\r\n }\r\n }\r\n\r\n/* private getRequestOptions() {\r\n return {\r\n headers: new HttpHeaders({\r\n authToken: this.coreStateMachineService.getSessionToken(),\r\n 'Content-Type': constants.HEADER_CONTENT_TYPE_FORM\r\n }),\r\n observe: 'response'\r\n }\r\n }*/\r\n\r\n /*public callPost(body, succ, options) {\r\n let apiUrl = environment.proxyServiceBaseUrl + (window as any).wmConfig.language + environment.proxyFullAddress + environment.proxyServiceExecute;\r\n return this.http.post(apiUrl, encodeURIComponent(JSON.stringify(body)), options).toPromise()\r\n .then(\r\n (responseObject: any) => {\r\n let payload = responseObject.body;\r\n this.state = constants.STATE_MACHINE_STATUS_FETCHING;\r\n return this.dispatch(succ, payload);\r\n },\r\n ).catch(\r\n (httpError: any) => {\r\n let responseError = httpError.error;\r\n if (responseError) {\r\n this.state = constants.STATE_MACHINE_STATUS_FETCHING;\r\n return this.dispatch(constants.STATE_MACHINE_ACTION_FAILURE, responseError);\r\n }\r\n else {\r\n this.state = constants.STATE_MACHINE_STATUS_IDLE;\r\n throw httpError;\r\n }\r\n }\r\n );\r\n }*/\r\n}\r\n","import {Component, CUSTOM_ELEMENTS_SCHEMA, Input, NO_ERRORS_SCHEMA} from '@angular/core';\r\nimport {I18nService} from '../services/i18n.service';\r\nimport {StateMachineService} from '../services/state-machine.service';\r\nimport {Form, Section} from \"../../interfaces\";\r\nimport {NgClass} from \"@angular/common\";\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 ]\r\n})\r\nexport class GeneralApproverSectionComponent {\r\n\r\n @Input() isReadOnly: boolean;\r\n @Input() section: Section;\r\n @Input() lov: any;\r\n @Input() className: string = \"info-section\";\r\n\r\n\r\n currentSectionId: string;\r\n lastSectionId: string;\r\n form: Form;\r\n\r\n constructor(public i18n: I18nService,\r\n // public profileRequestorService: ProfileRequestorService,\r\n public StateMachineService: StateMachineService,\r\n // public _listenerService: ListenerService,\r\n ) {\r\n\r\n }\r\n\r\n ngAfterViewInit() {\r\n this.ServicesSubScriptions();\r\n }\r\n\r\n public ServicesSubScriptions() {\r\n/* this.profileRequestorService.getForm().subscribe(data => {\r\n this.form = data;\r\n this.lastSectionId = this.form.sections[this.form.sections.length - 1].id;\r\n this.currentSectionId = this.section.id;\r\n });*/\r\n }\r\n\r\n handleEmitValue(data: any, fieldName: string) {\r\n this.section.body.details[fieldName] = data;\r\n }\r\n\r\n\r\n/* validForm(action) {\r\n let returnValue = true;\r\n const lastSection = this.section.body.details\r\n let commentValid;\r\n if (lastSection.comment && lastSection.comment.length > 0) {\r\n if (\r\n lastSection.comment.length >= 1 &&\r\n lastSection.comment.length <= 2000\r\n ) {\r\n commentValid = true;\r\n } else {\r\n commentValid = false;\r\n }\r\n } else {\r\n commentValid = true;\r\n }\r\n switch (action) {\r\n case 'SUBMIT':\r\n // if (lastSectionId == 'requestDetails') {\r\n // /!* empty *!/\r\n // }\r\n break;\r\n\r\n case 'APPROVE':\r\n if (commentValid) {\r\n returnValue = true;\r\n } else {\r\n returnValue = false;\r\n }\r\n break;\r\n case 'REJECT':\r\n if (lastSection.comment && commentValid) {\r\n returnValue = true;\r\n } else {\r\n returnValue = false;\r\n }\r\n break;\r\n case 'SENDBACK':\r\n if (lastSection.comment && commentValid) {\r\n returnValue = true;\r\n } else {\r\n returnValue = false;\r\n }\r\n break;\r\n case 'SAVE_CHANGES':\r\n returnValue = true;\r\n break;\r\n case 'CANCEL':\r\n if (lastSection.comment && commentValid) {\r\n returnValue = true;\r\n } else {\r\n returnValue = false;\r\n }\r\n break;\r\n case 'SENDTODO':\r\n returnValue = false;\r\n\r\n break;\r\n }\r\n return returnValue;\r\n }\r\n\r\n onSubmit(action: any) {\r\n if (this.validForm(action)) {\r\n this.profileRequestorService.disableButtons = true;\r\n this.profileRequestorService.isSubmitting[action] = true;\r\n const obj = {\r\n function: 'onSubmit',\r\n action: action,\r\n data: this.section\r\n };\r\n this._listenerService.filter(obj);\r\n }\r\n }\r\n\r\n resetForm() {\r\n const obj = {\r\n function: 'resetForm'\r\n };\r\n this._listenerService.filter(obj);\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 <ds-alert class=\"full\" type=\"warning\" icon=\"info\">\r\n\r\n <div class=\"d-flex gap-2\">\r\n General Approval working fine\r\n </div>\r\n\r\n </ds-alert>\r\n\r\n\r\n</div>\r\n\r\n\r\n<!--<div class=\"mt-4\" *ngIf=\"!section?.header?.readOnly\">\r\n\r\n <div class=\"d-flex align-items-center gap-3\" *ngIf=\"lov?.decision?.type === 'button'\">\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 <div class=\"d-flex flex-wrap align-items-center flex-grow-1 flex-row-reverse gap-3\">\r\n <ng-container *ngFor=\"let item of lov?.decision?.options\">\r\n <ds-button [ngClass]=\"{'disabled':!validForm(item?.value) || profileRequestorService.disableButtons}\"\r\n (click)=\"onSubmit(item?.value) \" [loading]=\"profileRequestorService.isSubmitting[item?.value]\"\r\n *ngIf=\"item?.value === 'SUBMIT'\">{{item?.description}}</ds-button>\r\n\r\n <ds-button [ngClass]=\"{'disabled':!validForm(item?.value) || profileRequestorService.disableButtons}\"\r\n (click)=\"onSubmit(item?.value) \" [loading]=\"profileRequestorService.isSubmitting[item?.value]\"\r\n *ngIf=\"item?.value === 'APPROVE'\">{{item?.description}}</ds-button>\r\n <ds-button [ngClass]=\"{'disabled':!validForm(item?.value) || profileRequestorService.disableButtons}\"\r\n (click)=\"onSubmit(item?.value)\" shape=\"outline\" color=\"red\"\r\n [loading]=\"profileRequestorService.isSubmitting[item?.value]\" *ngIf=\"item?.value === 'REJECT'\">\r\n {{item?.description}}</ds-button>\r\n <ds-button [ngClass]=\"{'disabled':!validForm(item?.value) || profileRequestorService.disableButtons}\"\r\n (click)=\"onSubmit(item?.value)\" shape=\"outline\" color=\"red\"\r\n [loading]=\"profileRequestorService.isSubmitting[item?.value]\" *ngIf=\"item?.value === 'CANCEL'\">\r\n {{item?.description}}</ds-button>\r\n <ds-button [ngClass]=\"{'disabled':!validForm(item?.value) || profileRequestorService.disableButtons}\"\r\n (click)=\"onSubmit(item?.value)\" shape=\"outline\" [loading]=\"profileRequestorService.isSubmitting[item?.value]\"\r\n *ngIf=\"item?.value === 'SENDBACK'\">\r\n {{item?.description}}</ds-button>\r\n\r\n <ds-button [ngClass]=\"{'disabled':!validForm(item?.value) || profileRequestorService.disableButtons}\"\r\n (click)=\"onSubmit(item?.value) \" [loading]=\"profileRequestorService.isSubmitting[item?.value]\"\r\n *ngIf=\"!(item?.value === 'SUBMIT' || item?.value === 'APPROVE' || item?.value === 'SENDBACK' || item?.value === 'REJECT' || item?.value === 'CANCEL')\">{{item?.description}}</ds-button>\r\n </ng-container>\r\n </div>\r\n </div>\r\n\r\n <div class=\"d-flex flex-wrap align-items-center flex-grow-1 justify-content-end gap-3\"\r\n *ngIf=\"lov?.decision?.type !== 'button'\">\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 <ds-button [ngClass]=\"{'disabled':!validForm('SUBMIT')}\"\r\n [loading]=\"profileRequestorService.isSubmitting[item?.value]\"\r\n (click)=\"onSubmit('SUBMIT') || profileRequestorService.disableButtons\">\r\n {{i18n.translate('submit')}}\r\n </ds-button>\r\n </div>\r\n</div>-->\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 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, Inject} from '@angular/core';\r\nimport {LayoutComponent} from \"../components/app-component-sections\";\r\nimport {DOCUMENT} from \"@angular/common\";\r\nimport {Router} from \"@angular/router\";\r\nimport {SidenavService} from \"../services\";\r\nimport {CoreService} from \"../services\";\r\nimport {Form, Messages} from \"../interfaces\";\r\nimport * as constants from \"../constants\";\r\nimport loadFormHooks from \"../hooks/load-form\";\r\nimport {ServiceHeaderComponent, WorkflowSectionComponent} from \"../components/app-component-sections\";\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, DynamicModule} 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 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\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 private coreService: CoreService\r\n ) {\r\n this.loading['form'] = true\r\n this.coreService.loadForm().then((form: any) => {\r\n if (form instanceof Form) {\r\n this.form = form;\r\n } else if (form instanceof Messages) {\r\n this.errorResponse(form)\r\n }\r\n this.loading['form'] = false\r\n }\r\n );\r\n }\r\n\r\n errorResponse(form: 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 form\r\n );\r\n } else {\r\n this.form.messages = form;\r\n this.form = loadFormHooks.afterTranspilePayload(this.form);\r\n }\r\n window.scrollTo(0, 0);\r\n }\r\n}\r\n","<core-layout>\r\n @if (!loading['form']) {\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 [form]=\"form\"\r\n [segmentDynamicLoaderService]=\"segmentDynamicLoader\"\r\n [sections]=\"form?.sections\">\r\n \r\n <app-request-details-section [section]=\"form?.sections[0]\" [lov]=\"form?.lovs\" className=\"form-section\"></app-request-details-section>\r\n <!-- [isReadOnly]=\"form.sections[0].header.readOnly\"-->\r\n </app-workflow-section>\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 { 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","/* 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})\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/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})\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-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","/* 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})\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","/*\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\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\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.HEADER_CONTENT_TYPE_FORM","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.SECTION_ID_REQUEST_DETAILS","constants.READ_ONLY","constants.HAS_COMMENTS","constants.NO_COMMENTS","constants.FORM_STATUS_SEND_BACK","constants.SECTION_ID_APPROVAL_PARTIAL_NAME","i1","i2.CoreI18nService","i1.CoreI18nService","i2","i3","i5","i6.MycurrencyPipe","MatOption","MatError","MatFormField","constants.FORM_STATUS_REJECT","constants.FORM_STATUS_CANCEL","i2.ActionStateService","i1.SidenavService","Constants.FEEDBACK_STATUS_REQUEST","Constants.FEEDBACK_STATUS_WAITING","Constants.FEEDBACK_STATUS_RESPOND","Constants.FEEDBACK_STATUS_RESPONDED","Constants.NO_VALUE","Constants.FORM_STATUS_REJECTED","Constants.FORM_STATUS_CANCELLED","Constants.FORM_STATUS_PENDING","i1.FeedBackService","Constants.FORM_STATUS_COMPLETED","Constants.FORM_STATUS_APPROVED","i1.CoreService","Constants.LOGOUT_URL","i4","i2.SidenavService","i3.ActionStateService","en.default","ar.default","constants.STATE_MACHINE_STATUS_IDLE","constants.STATE_MACHINE_STATUS_FETCHING","constants.STATE_MACHINE_ACTION_SUCCESS_RESPONSE","constants.STATE_MACHINE_STATUS_ERROR","constants.STATE_MACHINE_ACTION_HANDLE_ERROR","i2.CoreService","i1.I18nService","i2.StateMachineService","Constants.SECTION_ID_REQUEST_DETAILS","Constants.SECTION_ID_APPROVAL_PARTIAL_NAME","i3.SidenavService","i3.CoreService","i1.MycurrencyPipe"],"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/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/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/components/shared-components/form-field/control-value-accessor.directive.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/input/input.component.ts","../../../projects/bpm-core/src/lib/components/shared-components/form-field/input/input.component.html","../../../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/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/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/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/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/comment-section/comment-section.component.ts","../../../projects/bpm-core/src/lib/components/app-component-sections/comment-section/comment-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/hooks/load-form.ts","../../../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/validators/ar.directive.ts","../../../projects/bpm-core/src/lib/validators/en.directive.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/currency.directive.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\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\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, throwError, switchMap} from \"rxjs\";\r\nimport {map} from \"rxjs/operators\";\r\nimport saveFormHooks from '../hooks/save-form';\r\nimport {of} from 'rxjs';\r\n\r\n@Injectable({\r\n providedIn: \"any\"\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 of(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\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 // Convert the promise to an observable\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 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 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 /*switch (type) {\r\n case constants.STATE_MACHINE_ACTION_LOAD_HISTORY:\r\n return responseObject\r\n }*/\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","/* 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, Input, Output } from '@angular/core';\r\nimport { BaseComponent } from '../base-component/base-component.component';\r\nimport {MatCheckbox} from \"@angular/material/checkbox\";\r\nimport {FormsModule} from \"@angular/forms\";\r\nimport {NgIf} from \"@angular/common\";\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\r\n})\r\nexport class CheckBoxComponent extends BaseComponent {\r\n @Input() containTerms: boolean;\r\n @Input() termsLabel: string;\r\n @Input() linkText: string;\r\n @Input() hrefLink: string;\r\n @Output() downloadCheckBox = new EventEmitter();\r\n ngOnInit(): void {\r\n this.value = this.field ? JSON.parse(this.field) : false;\r\n\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 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.value = checked;\r\n this.field = (checked).toString();\r\n this.emitedValue.emit(this.field)\r\n }\r\n\r\n downloadFile(){\r\n this.downloadCheckBox.emit()\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]=\"isReadOnly || disabled\" id=\"{{name}}{{randomID}}\" [(ngModel)]=\"value\" [name]=\"name\"\r\n (change)=\"valueChange($event)\" [checked]=\"field\"\r\n>\r\n <span class=\"fs-12 fw-medium fc-onyx\">\r\n {{ isReadOnly ? labelTextReadMode : labelTextWriteMode }}\r\n </span>\r\n <span\r\n class=\"fs-12 fw-bold fc-coral cursor-pointer mx-1\" *ngIf=\"containTerms\"\r\n (click)=\"openTermsPopup(); false\">\r\n {{ termsLabel ? termsLabel : i18n.translate('termsAndConditions') }}\r\n </span>\r\n <ng-container *ngIf=\"link\">\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 <!-- <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","/* eslint-disable @typescript-eslint/no-this-alias */\r\n/* eslint-disable no-var */\r\nimport {ReactiveFormsModule, Validators} 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 } from '@angular/core';\r\nimport { FormControl } from '@angular/forms';\r\nimport {FloatLabelType, MatError, MatFormField, MatHint} from '@angular/material/form-field';\r\nimport { map, startWith } from 'rxjs/operators';\r\nimport { Observable } from \"rxjs\";\r\nimport { BaseComponent } from '../base-component/base-component.component';\r\nimport {InfoItemComponent} from \"../info-item/info-item.component\";\r\nimport {AsyncPipe, NgClass, NgForOf, NgIf} from \"@angular/common\";\r\nimport {MatAutocomplete, MatAutocompleteTrigger, MatOption} from \"@angular/material/autocomplete\";\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 imports: [\r\n InfoItemComponent,\r\n NgClass,\r\n NgIf,\r\n ReactiveFormsModule,\r\n MatAutocomplete,\r\n MatOption,\r\n AsyncPipe,\r\n MatAutocompleteTrigger,\r\n MatError,\r\n MatHint,\r\n NgForOf,\r\n MatFormField\r\n ],\r\n standalone: true\r\n})\r\n\r\n\r\n\r\nexport class CustomSearchableComponent extends BaseComponent {\r\n @Input() myControl: FormControl = new FormControl();\r\n @Input() options!: any;\r\n @Input() label!: string;\r\n @Output() selectedValue = new EventEmitter();\r\n @Output() resetByDeleteBtn = new EventEmitter();\r\n @Output() isLengthGreaterThan4 = new EventEmitter();\r\n noData = false;\r\n filteredOptions!: Observable<any>;\r\n // @Input() floatLabel: FloatLabelType = 'auto';\r\n @Input() floatLabel: any = 'auto';\r\n @Input() className = 'bordered-input';\r\n // @Input() disabled: boolean = false;\r\n // form: FormGroup = new FormGroup({});\r\n ngOnInit() {\r\n // this.resetPropagator.subscribe(this, this.clearInput);\r\n if (this.field?.key) {\r\n const obj = {\r\n description: this.field.value,\r\n value: this.field.key\r\n }\r\n this.myControl.setValue(obj)\r\n }\r\n\r\n if (this.required) {\r\n this.controller.setValidators([Validators.required]);\r\n }\r\n\r\n // var leftDomain = false;\r\n // const self = this\r\n // var interval = setInterval(function () {\r\n // try {\r\n // if (self.field?.key) {\r\n\r\n // if (self.lov?.options?.length) {\r\n // const obj = {\r\n // description: self.field.value,\r\n // value: self.field.key\r\n // }\r\n // self.myControl.setValue(obj)\r\n // }\r\n // else {\r\n // leftDomain = true;\r\n // }\r\n // } else {\r\n // leftDomain = true;\r\n // }\r\n // }\r\n // catch (e) {\r\n // if (leftDomain || !self.field?.key) {\r\n // clearInterval(interval);\r\n // return;\r\n // }\r\n // leftDomain = true;\r\n // }\r\n // }, 1000);\r\n }\r\n\r\n clearInput() {\r\n if (!this.isReadOnly) {\r\n this.myControl.setValue(null)\r\n this.controller.setValue(null);\r\n this.emitedValue.emit({\r\n key: null,\r\n value: null\r\n })\r\n }\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.myControl.value){\r\n if(this.field){\r\n this.field.key = null;\r\n this.field.value = null;\r\n }\r\n this.myControl.setValue(null);\r\n input.focus();\r\n this.resetByDeleteBtn.emit();\r\n }\r\n })\r\n }\r\n\r\n ngOnChanges(changes: SimpleChanges) {\r\n console.log(changes)\r\n if (changes?.['disabled']) {\r\n changes?.['disabled']?.currentValue ? this.myControl.disable() : this.myControl.enable()\r\n }\r\n\r\n if (changes?.['field']?.currentValue?.key == null) {\r\n // this.myControl.setValue(null)\r\n } else {\r\n\r\n this.controller.setValue(changes['field'].currentValue.key)\r\n }\r\n\r\n\r\n this.loading = !!(changes['loading'] && changes['loading'].currentValue);\r\n if (changes['options'] && changes['options'].currentValue) {\r\n // this.loading = true\r\n this.options = changes['options'].currentValue\r\n if (this.options.length > 0) {\r\n // console.log('yes')\r\n this.noData = false\r\n // this.loading = false\r\n this.filteredOptions = this.myControl.valueChanges.pipe(\r\n startWith(''),\r\n map(value => {\r\n console.log(value)\r\n return (value ? this._filter(value) : this.options.slice(0, 30))\r\n }),\r\n );\r\n } else {\r\n this.noData = true\r\n }\r\n\r\n }\r\n }\r\n onValueChange() {\r\n // this.myControl.setErrors({'incorrect': true});\r\n }\r\n\r\n focusOutFunction(event) {\r\n console.log(\"event\", event)\r\n // if(!this.field.key || !this.myControl?.valid){\r\n // this.clearInput()\r\n // // this.field.key=null\r\n // // this.myControl.setValue(null);\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.description : '';\r\n }\r\n\r\n getAutoComplete(value: any) {\r\n console.log('value', value);\r\n if (this.name == 'organizationDetails') {\r\n this.emitedValue.emit({\r\n key: value.value,\r\n orgId: value.orgId,\r\n value: value.description\r\n })\r\n } else {\r\n this.myControl.setValue(value.value);\r\n this.emitedValue.emit({\r\n key: value.value,\r\n value: value.description\r\n })\r\n }\r\n }\r\n\r\n onLoadOptions(event: any) {\r\n const input = event.target.value;\r\n if (input.length >= 4) {\r\n this.isLengthGreaterThan4.emit(input)\r\n }\r\n }\r\n\r\n}\r\n","<ng-container *ngIf=\"isReadOnly && field?.value\">\r\n <app-info-item class=\"info-item w-100\" [label]=\"label\" [insideTable]=\"insideTable\" [hasLabel]=\"hasLabel\" [value]=\"field?.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=\"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 <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()\" [formControl]=\"myControl\"\r\n [value]=\"field?.value\" ngDefaultControl [name]=\"name\" [matAutocomplete]=\"auto\">\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 && field?.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 | async\" [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['description']}}\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=\"(!myControl?.valid)\">{{i18n.translate('validSelectError')}}{{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</ng-container>\r\n","import {FormControl, ReactiveFormsModule, Validators} from '@angular/forms';\r\nimport {BaseComponent} from '../base-component/base-component.component';\r\nimport {Component, Input, Output, EventEmitter, ViewChild, SimpleChanges, AfterViewInit, CUSTOM_ELEMENTS_SCHEMA} from '@angular/core';\r\nimport {MAT_DATE_FORMATS, DateAdapter, MAT_DATE_LOCALE} from '@angular/material/core';\r\nimport {MAT_MOMENT_DATE_ADAPTER_OPTIONS, MomentDateAdapter} from '@angular/material-moment-adapter';\r\nimport {MatDatepicker, MatDatepickerInput, MatDatepickerToggle} from '@angular/material/datepicker';\r\nimport {CustomDateFormat} from './date-format';\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 * as moment from 'moment'\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\r\n\r\n imports: [\r\n MatFormField,\r\n MatDatepickerToggle,\r\n MatDatepicker,\r\n MatDatepickerInput,\r\n NgClass,\r\n NgIf,\r\n InfoItemComponent,\r\n ReactiveFormsModule\r\n ]\r\n})\r\nexport class DatePickerComponent extends BaseComponent 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 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 @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 override get shouldSetDateFormateInAr(): boolean {\r\n return false;\r\n }\r\n\r\n ngOnInit(): void {\r\n\r\n // this.resetPropagator.subscribe(this, this.resetDateData);\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.field) {\r\n this.date.setValue(this.field);\r\n }\r\n if (this.required) this.date.addValidators(Validators.required)\r\n }\r\n\r\n ngOnChanges(changes: SimpleChanges) {\r\n if (this.resetDate && this.field == null) {\r\n this.field = '';\r\n this.date.setValue(this.field)\r\n this.emitedValue.emit(this.field);\r\n }\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 resetDateData() {\r\n if (!this.isReadOnly) {\r\n this.field = '';\r\n this.date.setValue(this.field)\r\n this.emitedValue.emit(this.field);\r\n }\r\n }\r\n\r\n focusPicker(picker) {\r\n picker.open();\r\n }\r\n\r\n onFocus(): void {\r\n this.datepickerObj.show();\r\n }\r\n\r\n dateChange(event: any) {\r\n if (!this.disabled) {\r\n if (event?.value) {\r\n let inputValue\r\n const eventDate = moment(event.value);\r\n const minDate = moment(this.minDateValue);\r\n const maxDate = moment(this.maxDateValue);\r\n if (eventDate < minDate && this.minDateValue) {\r\n this.field = ''\r\n this.datepickerObj.value = ''\r\n inputValue = ''\r\n } else if (eventDate > maxDate && this.maxDateValue) {\r\n this.field = ''\r\n this.datepickerObj.value = ''\r\n inputValue = ''\r\n } else {\r\n inputValue = moment(event.value).locale('en-US').format(\"YYYY-MM-DDTHH:mm:ss.SSSZ\");\r\n this.emitedValue.emit(inputValue)\r\n }\r\n this.field = inputValue\r\n } else {\r\n this.section.body.details[this.name] = ''\r\n\r\n }\r\n }\r\n }\r\n\r\n clearDateValue(event): void {\r\n this.resetDateData();\r\n event?.preventDefault();\r\n event?.stopPropagation();\r\n }\r\n\r\n removeDate() {\r\n this.field = ''\r\n // this.controller.setValue('')\r\n }\r\n\r\n toggleIslamicCal() {\r\n this.showIslamic = !this.showIslamic\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.field) {\r\n this.date.setValue(moment(this.field).format('yyyy'));\r\n }\r\n this.datepicker.startView = 'multi-year';\r\n this.datepicker.yearSelected.subscribe(e => {\r\n this.date.setValue(moment(e).format('yyyy'));\r\n this.emitedValue.emit(moment(e).format('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","<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\">{{labelTextWriteMode}}</span>\r\n <span *ngIf=\"!required\" class=\"fs-11 fc-dark-gray\"> {{i18n.translate('optional')}} </span>\r\n </div>\r\n <div class=\"justify-content-between mb-1\">\r\n <mat-form-field [ngClass]=\"{'input-disabled' : disabled }\" [floatLabel]=\"floatLabel\">\r\n <label class=\"mat-form-content\">\r\n <input matInput (dateInput)=\"dateChange($event)\" [placeholder]=\"hasLabel ? (i18n.translate('select') + ' ' + labelTextWriteMode) : ''\" (focus)=\"focusPicker(dp)\" [min]=\"minDateValue\"\r\n [max]=\"maxDateValue\" readonly [matDatepicker]=\"dp\" [formControl]=\"date\">\r\n </label>\r\n <ds-icon *ngIf=\"date?.value\" matSuffix icon=\"close\" class=\"fc-onyx fs-10 mx-2 cursor-pointer\" (click)=\"clearDateValue($event)\"></ds-icon>\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 </div>\r\n\r\n</ng-container>\r\n\r\n<ng-container *ngIf=\"isReadOnly && field\">\r\n <app-info-item class=\"info-item w-100\" type=\"date\" [insideTable]=\"insideTable\" [dateType]=\"calendarType\" [label]=\"labelTextReadMode\"\r\n [value]=\"field\" [hasLabel]=\"hasLabel\">\r\n </app-info-item>\r\n</ng-container>\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\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\r\n})\r\nexport class DateRangePickerComponent {\r\n @Input() label! : string;\r\n @Input() tooltip! : string;\r\n @Input() className = 'gray-input';\r\n @Input() placeholder! : string;\r\n constructor() { }\r\n\r\n \r\n\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\">\r\n <input matEndDate placeholder=\"End date\">\r\n </mat-date-range-input>\r\n </label>\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","/* 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","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() hasLabel = true;\r\n @Input() isReadOnly: boolean;\r\n @Input() hideOption = false;\r\n @Input() labelTextWriteMode: string;\r\n @Input() hint = '';\r\n @Input() loading!: boolean;\r\n @Input() placeholder: string;\r\n @Input() type: string;\r\n @Input() value: any;\r\n @Input() showErrorMessage: string;\r\n @Input() showHint: string;\r\n @Input() showIfEmpty: string;\r\n @Input() insideTable: any;\r\n \r\n\r\n\r\n\r\n control: FormControl | undefined;\r\n required = false;\r\n maxLength: any;\r\n\r\n private _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 }\r\n\r\n setFormValidators(){\r\n console.log(this.control)\r\n this.required = this.control?.hasValidator(Validators.required) ?? false;\r\n\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 { CommonModule, NgFor } from '@angular/common';\r\nimport { Component, Input, OnChanges, SimpleChanges } from '@angular/core';\r\nimport { ValidationErrors } from '@angular/forms';\r\nimport { MatError } from '@angular/material/form-field';\r\nimport { ControlValueAccessorDirective } from '../control-value-accessor.directive';\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 @Input() label: string;\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 }\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 }\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\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 ],\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() label!: string;\r\n @Input() hasTooltip = false;\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() iconPrefixName!: string;\r\n @Input() matSuffix!: boolean;\r\n @Input() iconSuffixName!: string;\r\n @Input() emitedChangedValue1 = new EventEmitter();\r\n \r\n\r\n \r\n\r\n // ngOnInit(): void {\r\n \r\n // }\r\n\r\n ngAfterViewChecked() {\r\n // this.cdRef.detectChanges();\r\n }\r\n\r\n ngOnChanges(changes: SimpleChanges) {\r\n \r\n console.log(this.control.errors)\r\n }\r\n\r\n}\r\n","@if(!isReadOnly){\r\n<app-form-label\r\n [label]=\"label\"\r\n [optional]=\"!required\"\r\n [hideOption]=\"hideOption\"\r\n [showLabel]=\"showLabel\"\r\n></app-form-label>\r\n@if(hasLabel){\r\n<div class=\"d-flex justify-content-between mb-1\">\r\n @if(!hasTooltip){<span class=\"form-label mb-0\">{{ label }}</span\r\n >} @if(!required && !hideOption){<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 {{ labelTextWriteMode }}\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\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 <!-- -->\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(matSuffix){<span matSuffix class=\"sfi {{ iconSuffixName }}\"></span>}\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 } @if(showHint){\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\r\n\r\n\r\n<!-- <span class=\"fc-coral\" style=\"color: #f44336\">\r\n {{ control.errors }}\r\n</span> -->\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]=\"hasLabel\"\r\n [type]=\"type\"\r\n [value]=\"control.value\"\r\n ></app-info-item>\r\n @if(showHint){\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</ng-container>\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\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 { BaseComponent } from '../base-component/base-component.component';\r\nimport {ReactiveFormsModule, Validators} from '@angular/forms';\r\nimport { Component, CUSTOM_ELEMENTS_SCHEMA, EventEmitter, Input, Output, SimpleChanges } from '@angular/core';\r\nimport {FloatLabelType, 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\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 ]\r\n})\r\nexport class InputNumberComponent extends BaseComponent {\r\n @Input() label!: string;\r\n @Input() displayValue!: any;\r\n @Input() hasError = false;\r\n @Input() error!: string;\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() matSuffix!: boolean;\r\n @Input() iconSuffixName!: string;\r\n @Input() numberSuffixName!: string;\r\n @Input() optional = false;\r\n @Input() showArrows = false;\r\n @Input() decimals = 0;\r\n @Input() allowedPattern = '';\r\n @Output() emitedChangedValue = new EventEmitter();\r\n ngOnInit(): void {\r\n // this.resetPropagator.subscribe(this, this.resetData);\r\n this.field == undefined ? (this.field = '') : this.field;\r\n this.controller.setValue(this.field);\r\n if (this.type == 'email') {\r\n this.controller.setValidators([\r\n Validators.pattern('^[a-z0-9._%+-]+@[a-z0-9.-]+\\\\.[a-z]{2,4}$'),\r\n ]);\r\n }\r\n\r\n if (this.minLength) {\r\n this.controller.setValidators([Validators.minLength(+this.minLength)]);\r\n }\r\n\r\n if (this.maxLength && ! this.mask) {\r\n // this.controller.setValidators([Validators.maxLength(+this.maxLength)]);\r\n //this.mask = '0'.repeat(+this.maxLength)\r\n }\r\n\r\n if (this.maxValue) {\r\n this.controller.setValidators([Validators.max(+this.maxValue)]);\r\n }\r\n }\r\n\r\n ngAfterViewChecked() {\r\n this.cdRef.detectChanges();\r\n }\r\n\r\n ngOnChanges(changes: SimpleChanges) {\r\n console.log(\"showErrorMessage :\",this.showErrorMessage)\r\n console.log(\"errorMessage :\",this.errorMessage)\r\n\r\n if (changes?.['field']) {\r\n if (changes['field'].currentValue == '' || changes['field'].currentValue == null) {\r\n this.controller.setValue('');\r\n } else {\r\n this.controller.setValue(changes['field'].currentValue)\r\n }\r\n }\r\n }\r\n\r\n onValueChange(data: any) {\r\n let currentValue = data.target.value;\r\n if (+currentValue.length > +this.maxLength) {\r\n currentValue = currentValue.substr(0, +this.maxLength).toString();\r\n }\r\n if (+currentValue < +this.minValue) {\r\n currentValue = this.minValue.toString();\r\n }\r\n if (+currentValue > +this.maxValue) {\r\n currentValue = this.maxValue.toString();\r\n }\r\n this.field = currentValue;\r\n this.controller.setValue(this.field)\r\n this.emitedValue.emit(this.field.trim());\r\n }\r\n\r\n onValueChangeEvent(data: any) {\r\n console.log(\"showErrorMessage :\",this.showErrorMessage)\r\n\r\n let currentValue = data.target.value;\r\n if (+currentValue.length > +this.maxLength) {\r\n currentValue = currentValue.substr(0, +this.maxLength).toString();\r\n }\r\n if (+currentValue < +this.minValue) {\r\n currentValue = this.minValue.toString();\r\n }\r\n if (+currentValue > +this.maxValue) {\r\n currentValue = this.maxValue.toString();\r\n }\r\n this.field = currentValue;\r\n this.controller.setValue(this.field)\r\n this.emitedChangedValue.emit(this.field.trim());\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 && ! 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}}\" [ngClass]=\"{'input-disabled' : disabled }\"\r\n [floatLabel]=\"floatLabel\">\r\n\r\n <span *ngIf=\"iconPrefixName\" matPrefix class=\"sfi {{iconPrefixName}}\"></span>\r\n <label class=\"mat-form-content\">\r\n <!-- pattern=\"\\d*\" -->\r\n <ng-container *ngIf=\"!allowedPattern\">\r\n <input matInput [placeholder]=\"placeholder\" [value]=\"value\" [disabled]=\"disabled\" numberOnly\r\n oninput=\"validity.valid || (value='');\" [formControl]=\"controller\" (input)=\"onValueChange($event)\"\r\n (change)=\"onValueChangeEvent($event)\"\r\n [required]=\"required\" [placeholder]=\"placeholder\" [mask]=\"mask\" >\r\n </ng-container>\r\n\r\n <ng-container *ngIf=\"allowedPattern\">\r\n <input matInput [placeholder]=\"placeholder\" [value]=\"value\" [disabled]=\"disabled\" numberOnly\r\n oninput=\"validity.valid || (value='');\" [formControl]=\"controller\" (input)=\"onValueChange($event)\"\r\n (change)=\"onValueChangeEvent($event)\"\r\n [required]=\"required\" [placeholder]=\"placeholder\" [mask]=\"mask\" >\r\n </ng-container>\r\n </label>\r\n <span *ngIf=\"matSuffix\" matSuffix class=\"sfi {{iconSuffixName}}\"></span>\r\n <div *ngIf=\"type === 'number'\" matSuffix class=\"d-flex align-items-center gap-2\">\r\n <span class=\"fs-14 fw-medium\" *ngIf=\"numberSuffixName\">{{numberSuffixName}}</span>\r\n </div>\r\n <mat-error class=\"mb-2\" *ngIf=\"(!controller?.valid)\">\r\n {{i18n.translate('validFieldError')}}{{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\r\n\r\n </mat-form-field>\r\n <span class=\"fc-coral\" style=\"color: rgb(207 37 67);font-size: 10px;\" *ngIf=\"( showErrorMessage )\">\r\n {{errorMessage}}\r\n </span>\r\n\r\n</ng-container>\r\n\r\n<ng-container *ngIf=\"isReadOnly && field\" class=\"info-section\">\r\n <app-info-item class=\"info-item w-100\" [label]=\"label\" [insideTable]=\"insideTable\" [hasLabel]=\"hasLabel\"\r\n [value]=\"field\"></app-info-item>\r\n</ng-container>\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 @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 '../base-component/base-component.component';\r\nimport {ReactiveFormsModule, Validators} from '@angular/forms';\r\nimport { Component, CUSTOM_ELEMENTS_SCHEMA, Input, SimpleChanges } from '@angular/core';\r\nimport {FloatLabelType, 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\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 ReactiveFormsModule\r\n ]\r\n})\r\nexport class InputEmailComponent extends BaseComponent {\r\n @Input() label!: string;\r\n @Input() displayValue!: any;\r\n @Input() hasError = false;\r\n @Input() error!: string;\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() matSuffix!: boolean;\r\n @Input() iconSuffixName!: string;\r\n @Input() numberSuffixName!: string;\r\n @Input() optional = false;\r\n @Input() showArrows = false;\r\n @Input() decimals = 0;\r\n ngOnInit(): void {\r\n // this.resetPropagator.subscribe(this, this.resetData);\r\n this.field == undefined ? (this.field = '') : this.field;\r\n this.controller.setValue(this.field);\r\n this.controller.setValidators([\r\n Validators.pattern('^[a-z0-9._%+-]+@[a-z0-9.-]+\\\\.[a-z]{2,4}$'),\r\n ]);\r\n this.mask = '^[a-z0-9._%+-]+@[a-z0-9.-]+\\\\.[a-z]{2,4}$'\r\n }\r\n\r\n ngAfterViewChecked() {\r\n this.cdRef.detectChanges();\r\n }\r\n\r\n ngOnChanges(changes: SimpleChanges) {\r\n if (changes?.['field']) {\r\n if (changes?.['field'].currentValue == '' || changes?.['field'].currentValue == null) {\r\n this.controller.setValue('');\r\n } else {\r\n this.controller.setValue(changes['field'].currentValue)\r\n }\r\n }\r\n }\r\n\r\n onValueChange(data: any) {\r\n let currentValue = data.target.value;\r\n if (+currentValue.length > +this.maxLength) {\r\n currentValue = currentValue.substr(0, +this.maxLength).toString();\r\n }\r\n if (+currentValue < +this.minValue) {\r\n currentValue = this.minValue.toString();\r\n }\r\n if (+currentValue > +this.maxValue) {\r\n currentValue = this.maxValue.toString();\r\n }\r\n this.field = currentValue;\r\n this.controller.setValue(this.field)\r\n this.emitedValue.emit(this.field.trim());\r\n }\r\n}\r\n","<ng-container *ngIf=\"!isReadOnly\">\r\n <!-- <app-form-label [label]=\"label\" [optional]=\"!required\" [hideOption]=\"hideOption\" [showLabel]=\"showLabel\"></app-form-label> -->\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 && ! 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}}\" [ngClass]=\"{'input-disabled' : disabled }\"\r\n [floatLabel]=\"floatLabel\" [disabled]=\"disabled\">\r\n\r\n <span *ngIf=\"iconPrefixName\" matPrefix class=\"sfi {{iconPrefixName}}\"></span>\r\n <label class=\"mat-form-content\">\r\n <input matInput [placeholder]=\"placeholder\" [value]=\"value\" [disabled]=\"disabled\" \r\n oninput=\"validity.valid || (value='');\" [formControl]=\"controller\" (input)=\"onValueChange($event)\"\r\n [required]=\"required\" [placeholder]=\"placeholder\">\r\n </label>\r\n\r\n <span *ngIf=\"matSuffix\" matSuffix class=\"sfi {{iconSuffixName}}\"></span>\r\n <div *ngIf=\"type === 'number'\" matSuffix class=\"d-flex align-items-center gap-2\">\r\n <span class=\"fs-14 fw-medium\" *ngIf=\"numberSuffixName\">{{numberSuffixName}}</span>\r\n </div>\r\n\r\n\r\n <mat-error *ngIf=\"(!controller?.valid)\">\r\n {{i18n.translate('validEmailError')}}\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\r\n\r\n </mat-form-field>\r\n <span class=\"fc-coral\" style=\"color:#f44336\" *ngIf=\"( showErrorMessage && controller.value)\">\r\n {{errorMessage}}\r\n </span>\r\n\r\n</ng-container>\r\n\r\n<ng-container *ngIf=\"isReadOnly && field\" class=\"info-section\">\r\n <app-info-item class=\"info-item w-100\" [label]=\"label\" [insideTable]=\"insideTable\" [hasLabel]=\"hasLabel\"\r\n [value]=\"field\"></app-info-item>\r\n</ng-container>\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 @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 '../base-component/base-component.component';\r\n// import { Validators } from '@angular/forms';\r\nimport { Component, CUSTOM_ELEMENTS_SCHEMA, Input, SimpleChanges } from '@angular/core';\r\nimport {FloatLabelType, 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 {ReactiveFormsModule} from \"@angular/forms\";\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 imports: [SatPopoverModule, MatFormField, NgxMaskDirective, NgIf, InfoItemComponent, ReactiveFormsModule, NgClass]\r\n})\r\nexport class InputMaskComponent extends BaseComponent {\r\n @Input() label!: string;\r\n @Input() displayValue!: any;\r\n @Input() hasError = false;\r\n @Input() error!: string;\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() matSuffix!: boolean;\r\n @Input() iconSuffixName!: string;\r\n @Input() numberSuffixName!: string;\r\n @Input() optional = false;\r\n @Input() showArrows = false;\r\n @Input() decimals = 0;\r\n ngOnInit(): void {\r\n // this.resetPropagator.subscribe(this, this.resetData);\r\n this.field == undefined ? (this.field = '') : this.field;\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 ngAfterViewChecked() {\r\n this.cdRef.detectChanges();\r\n }\r\n\r\n ngOnChanges(changes: SimpleChanges) {\r\n if (changes?.['field']) {\r\n if (changes?.['field'].currentValue == '' || changes?.['field'].currentValue == null) {\r\n this.controller.setValue('');\r\n } else {\r\n this.controller.setValue(changes['field'].currentValue)\r\n }\r\n }\r\n }\r\n\r\n onValueChange(data: any) {\r\n let currentValue = data.target.value;\r\n if (+currentValue.length > +this.maxLength) {\r\n currentValue = currentValue.substr(0, +this.maxLength).toString();\r\n }\r\n if (+currentValue < +this.minValue) {\r\n currentValue = this.minValue.toString();\r\n }\r\n if (+currentValue > +this.maxValue) {\r\n currentValue = this.maxValue.toString();\r\n }\r\n this.field = currentValue;\r\n this.controller.setValue(this.field)\r\n this.emitedValue.emit(this.field.trim());\r\n }\r\n}\r\n","<ng-container *ngIf=\"!isReadOnly\">\r\n <!-- <app-form-label [label]=\"label\" [optional]=\"!required\" [hideOption]=\"hideOption\" [showLabel]=\"showLabel\"></app-form-label> -->\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 && ! 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}}\" [ngClass]=\"{'input-disabled' : disabled }\"\r\n [floatLabel]=\"floatLabel\">\r\n\r\n <span *ngIf=\"iconPrefixName\" matPrefix class=\"sfi {{iconPrefixName}}\"></span>\r\n <label class=\"mat-form-content\">\r\n <input matInput [placeholder]=\"placeholder\" [value]=\"value\" [attr.disabled]=\"disabled\" [mask]=\"mask\"\r\n [showMaskTyped]=\"false\" oninput=\"validity.valid || (value='');\" [formControl]=\"controller\"\r\n (input)=\"onValueChange($event)\" [required]=\"required\" [placeholder]=\"placeholder\">\r\n </label>\r\n\r\n <span *ngIf=\"matSuffix\" matSuffix class=\"sfi {{iconSuffixName}}\"></span>\r\n <div *ngIf=\"type === 'number'\" matSuffix class=\"d-flex align-items-center gap-2\">\r\n <span class=\"fs-14 fw-medium\" *ngIf=\"numberSuffixName\">{{numberSuffixName}}</span>\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 <mat-error class=\"mb-2\" *ngIf=\"(type !=='email' && !controller?.valid)\">\r\n {{i18n.translate('validFieldError')}}{{label}}\r\n </mat-error>\r\n\r\n <mat-error *ngIf=\"(type ==='email' && !controller?.valid)\">\r\n {{i18n.translate('validEmailError')}}\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\r\n\r\n </mat-form-field>\r\n <span class=\"fc-coral\" style=\"color:#f44336\" *ngIf=\"( showErrorMessage && controller.value)\">\r\n {{errorMessage}}\r\n </span>\r\n\r\n</ng-container>\r\n\r\n<ng-container *ngIf=\"isReadOnly && field\" class=\"info-section\">\r\n <app-info-item class=\"info-item w-100\" [label]=\"label\" [insideTable]=\"insideTable\" [hasLabel]=\"hasLabel\"\r\n [value]=\"field\"></app-info-item>\r\n</ng-container>\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-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 { BaseComponent } from '../base-component/base-component.component';\r\nimport {ReactiveFormsModule, Validators} from '@angular/forms';\r\nimport { Component, CUSTOM_ELEMENTS_SCHEMA, Input, SimpleChanges } from '@angular/core';\r\nimport {FloatLabelType, 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\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 NgIf\r\n ]\r\n})\r\nexport class InputCurrencyComponent extends BaseComponent {\r\n @Input() label!: string;\r\n @Input() displayValue!: any;\r\n @Input() hasError = false;\r\n @Input() error!: string;\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() showPlus = true;\r\n @Input() showMinus = true;\r\n @Input() matPrefix!: boolean;\r\n @Input() iconPrefixName!: string;\r\n @Input() matSuffix!: boolean;\r\n @Input() iconSuffixName!: string;\r\n @Input() numberSuffixName!: string;\r\n @Input() optional = false;\r\n @Input() showArrows = false;\r\n @Input() decimals = 0;\r\n ngOnInit(): void {\r\n // this.resetPropagator.subscribe(this, this.resetData);\r\n this.field == undefined ? (this.field = '') : this.field;\r\n this.controller.setValue(this.field);\r\n if (this.type == 'email') {\r\n this.controller.setValidators([\r\n Validators.pattern('^[a-z0-9._%+-]+@[a-z0-9.-]+\\\\.[a-z]{2,4}$'),\r\n ]);\r\n }\r\n\r\n // if (this.minLength) {\r\n // this.controller.setValidators([Validators.minLength(+this.minLength)]);\r\n // }\r\n\r\n if (this.maxLength && !this.mask) {\r\n // this.controller.setValidators([Validators.maxLength(+this.maxLength)]);\r\n this.mask = '0'.repeat(+this.maxLength)\r\n }\r\n\r\n if (this.maxValue) {\r\n this.controller.setValidators([Validators.max(+this.maxValue)]);\r\n }\r\n }\r\n\r\n ngAfterViewChecked() {\r\n this.cdRef.detectChanges();\r\n }\r\n\r\n ngOnChanges(changes: SimpleChanges) {\r\n if (changes?.['field']) {\r\n if (changes?.['field'].currentValue == '' || changes?.['field'].currentValue == null) {\r\n this.controller.setValue('');\r\n } else {\r\n this.controller.setValue(changes['field'].currentValue)\r\n }\r\n }\r\n }\r\n\r\n plus() {\r\n let controlValue = (this.controller.value)\r\n controlValue = this.mycurrencyPipe.parse(controlValue)\r\n controlValue = Number(controlValue)\r\n controlValue = controlValue + 1\r\n const currencValue = this.mycurrencyPipe.transform(controlValue.toString())\r\n this.controller.setValue(this.mycurrencyPipe.transform(currencValue))\r\n this.emitedValue.emit(this.controller.value);\r\n }\r\n\r\n minus() {\r\n let controlValue = (this.controller.value)\r\n controlValue = this.mycurrencyPipe.parse(controlValue)\r\n controlValue = Number(controlValue)\r\n if (controlValue > 0) {\r\n controlValue = controlValue - 1\r\n const currencValue = this.mycurrencyPipe.transform(controlValue.toString())\r\n this.controller.setValue(this.mycurrencyPipe.transform(currencValue))\r\n this.emitedValue.emit(this.controller.value);\r\n }\r\n }\r\n\r\n onValueChange(data: any) {\r\n let currentValue = data.target.value;\r\n if (+currentValue.length > +this.maxLength) {\r\n currentValue = currentValue.substr(0, +this.maxLength).toString();\r\n }\r\n if (+currentValue < +this.minValue) {\r\n currentValue = this.minValue.toString();\r\n }\r\n if (+currentValue > +this.maxValue) {\r\n currentValue = this.maxValue.toString();\r\n }\r\n // currentValue = currentValue?.replaceAll(',', '')\r\n // currentValue = Number(currentValue)\r\n // this.field = JSON.stringify(currentValue);\r\n this.field = currentValue;\r\n this.controller.setValue(this.field)\r\n this.emitedValue.emit(this.field.trim());\r\n }\r\n}\r\n","<ng-container *ngIf=\"!isReadOnly\">\r\n <!-- <app-form-label [label]=\"label\" [optional]=\"!required\" [hideOption]=\"hideOption\" [showLabel]=\"showLabel\"></app-form-label> -->\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 && ! 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}}\" [ngClass]=\"{'input-disabled' : disabled }\"\r\n [floatLabel]=\"floatLabel\">\r\n\r\n <span *ngIf=\"iconPrefixName\" matPrefix class=\"sfi {{iconPrefixName}}\"></span>\r\n <label class=\"mat-form-content\">\r\n\r\n <input matInput [placeholder]=\"placeholder\" [value]=\"value\" [disabled]=\"disabled\"\r\n oninput=\"validity.valid || (value='');\" [formControl]=\"controller\" (input)=\"onValueChange($event)\"\r\n (paste)=\"false\"\r\n [required]=\"required\" [placeholder]=\"placeholder\" appMycurrency>\r\n </label>\r\n\r\n <span *ngIf=\"matSuffix\" matSuffix class=\"sfi {{iconSuffixName}}\"></span>\r\n <div *ngIf=\"type === 'number'\" matSuffix class=\"d-flex align-items-center gap-2 position-relative\"\r\n (click)=\"$event.stopPropagation()\">\r\n <span class=\"fs-14 fw-medium\" *ngIf=\"numberSuffixName\">{{numberSuffixName}}</span>\r\n <span class=\"sfi sfi-minus p-2 bc-light-gray fc-black cursor-pointer\" *ngIf=\"showMinus\" (click)=\"minus()\"></span>\r\n <span class=\"sfi sfi-plus p-2 bc-light-gray fc-black cursor-pointer\" *ngIf=\"showPlus\" (click)=\"plus()\"></span>\r\n </div>\r\n <mat-error class=\"mb-2\" *ngIf=\"(type !=='email' && !controller?.valid)\">\r\n {{i18n.translate('validFieldError')}}{{label}}\r\n </mat-error>\r\n\r\n <mat-error *ngIf=\"(type ==='email' && !controller?.valid)\">\r\n {{i18n.translate('validEmailError')}}\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\r\n\r\n </mat-form-field>\r\n <span class=\"fc-coral\" style=\"color:#f44336\" *ngIf=\"( showErrorMessage && controller.value)\">\r\n {{errorMessage}}\r\n </span>\r\n\r\n</ng-container>\r\n\r\n<ng-container *ngIf=\"isReadOnly && (showIfEmpty || field)\" class=\"info-section\">\r\n <app-info-item class=\"info-item w-100\" [type]=\"'currency'\" [label]=\"label\" [insideTable]=\"insideTable\"\r\n [hasLabel]=\"hasLabel\" [value]=\"field\"></app-info-item>\r\n</ng-container>\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","// export * from './input-autocomplete.module';\r\nexport * from './input-autocomplete.model';","import {FormControl, FormsModule} 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 } 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\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})\r\nexport class InputTelephoneComponent {\r\n @Input() label!: string;\r\n @Input() value!: string;\r\n @Input() tooltip!: string;\r\n @Input() floatLabel: any = 'auto';\r\n @Input() className = 'bordered-input';\r\n @Input() placeholder!: string;\r\n @Input() showLabel = true;\r\n @Input() isReadOnly = false;\r\n @Input() matPrefix!: boolean;\r\n @Input() iconPrefixName!: string;\r\n @Input() matSuffix!: boolean;\r\n @Input() iconSuffixName!: string;\r\n @Input() required = true;\r\n @Input() disabled = false;\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 @Input() maxLength: any;\r\n @Input() minLength: any;\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 constructor(\r\n public i18n: CoreI18nService\r\n ) { }\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 {ReactiveFormsModule, Validators} 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, Input, OnChanges, SimpleChanges} from '@angular/core';\r\nimport { BaseComponent } from '../base-component/base-component.component';\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\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 ReactiveFormsModule,\r\n NgIf,\r\n NgClass,\r\n InfoItemComponent\r\n ],\r\n standalone: true\r\n})\r\nexport class TextareaComponent extends BaseComponent implements OnChanges {\r\n @Input() label!: string;\r\n @Input() tooltip!: string;\r\n @Input() className!: string;\r\n @Input() preventSpecailChar!: boolean;\r\n textAreaFocus = false\r\n\r\n ngOnChanges(changes: SimpleChanges): void {\r\n if (changes?.['field'].currentValue == '' || changes?.['field'].currentValue == null) {\r\n this.controller.setValue('');\r\n }else{\r\n this.controller.setValue(changes['field'].currentValue)\r\n }\r\n if(changes?.['disabled']?.previousValue !== changes?.['disabled']?.currentValue){\r\n if(this.disabled) this.controller.disable();\r\n else this.controller.enable();\r\n }\r\n }\r\n\r\n ngOnInit(): void {\r\n // this.resetPropagator.subscribe(this, this.resetData);\r\n this.field == undefined ? (this.field = '') : this.field;\r\n this.controller.setValue(this.field);\r\n if (this.minLength ) {\r\n this.controller.setValidators([\r\n Validators.minLength(+this.minLength),\r\n ]);\r\n }\r\n if (this.maxLength ) {\r\n this.controller.setValidators([\r\n Validators.maxLength(+this.maxLength),\r\n ]);\r\n }\r\n if (this.required) {\r\n this.controller.setValidators([Validators.required]);\r\n }\r\n }\r\n\r\n focusInFunction() {\r\n this.textAreaFocus = true;\r\n this.validateTextAreaBorder();\r\n }\r\n\r\n focusOutFunction() {\r\n this.textAreaFocus = false;\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 onValueChange(event) {\r\n const target = event.target as HTMLInputElement;\r\n const data = target.value\r\n this.emitedValue.emit(data.trim());\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\">\r\n <!-- {{'Optional'| transloco}} -->{{ i18n.translate('Optional') }}\r\n </span>\r\n </div>\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\r\n <textarea *ngIf=\"type === 'arOnly'\" [placeholder]=\"placeholder\" [minlength]=\"minLength\" [maxlength]=\"maxLength\" min=\"minlength\" arOnly\r\n (input)=\"onValueChange($event)\" (focusout)=\"focusOutFunction()\" (focusin)=\"focusInFunction()\" max=\"maxValue\"\r\n [formControl]=\"controller\" matInput></textarea>\r\n\r\n <textarea *ngIf=\"type === 'enOnly'\" [placeholder]=\"placeholder\" [minlength]=\"minLength\" [maxlength]=\"maxLength\" min=\"minlength\" enOnly\r\n (input)=\"onValueChange($event)\" (focusout)=\"focusOutFunction()\" (focusin)=\"focusInFunction()\" max=\"maxValue\"\r\n [formControl]=\"controller\" matInput></textarea>\r\n\r\n <!-- <textarea *ngIf=\"preventSpecailChar\" [placeholder]=\"placeholder\" [minlength]=\"minLength\" [maxlength]=\"maxLength\" min=\"minlength\"\r\n specialIsAlphaNumeric\r\n (input)=\"onValueChange($event.target.value)\" (focusout)=\"focusOutFunction()\" (focusin)=\"focusInFunction()\" max=\"maxValue\"\r\n [formControl]=\"controller\" matInput></textarea>-->\r\n <!--&& !preventSpecailChar-->\r\n <textarea *ngIf=\"type !== 'enOnly' && type !== 'arOnly' \" [placeholder]=\"placeholder\" [minlength]=\"minLength\"\r\n [maxlength]=\"maxLength\" min=\"minlength\" specialIsAlphaNumeric\r\n (input)=\"onValueChange($event)\" (focusout)=\"focusOutFunction()\" (focusin)=\"focusInFunction()\" max=\"maxValue\"\r\n [formControl]=\"controller\" matInput></textarea>\r\n\r\n </label>\r\n <!-- [(ngModel)]=\"field\" [name]=\"name\" -->\r\n <mat-error *ngIf=\"field && field?.length < minLength\">{{ errorMessage }}</mat-error>\r\n <mat-error *ngIf=\"field && field?.length > maxLength\">{{ errorMessage }}</mat-error>\r\n <mat-error class=\"mb-2\" *ngIf=\"!field && (!controller?.valid)\">{{ i18n.translate('validFieldError') }}{{ label }}</mat-error>\r\n\r\n\r\n <mat-hint class=\"d-flex align-items-center gap-1 mt-1\" *ngIf=\"showHint\">\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</ng-container>\r\n\r\n<ng-container *ngIf=\"isReadOnly && (showIfEmpty || field)\">\r\n <app-info-item class=\"info-item w-100\" [insideTable]=\"insideTable\" [label]=\"label\" [value]=\"field\" [type]=\"type\"></app-info-item>\r\n</ng-container>\r\n","/* eslint-disable @angular-eslint/directive-selector */\r\n/* eslint-disable @typescript-eslint/no-empty-function */\r\nimport { Directive, HostListener } from '@angular/core';\r\n\r\n@Directive({\r\n selector: '[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, Inject} from '@angular/core';\r\nimport {MAT_DIALOG_DATA, MatDialogClose, MatDialogContent, MatDialogRef, MatDialogTitle} from '@angular/material/dialog';\r\nimport {CoreI18nService} from '../../../services';\r\n\r\n@Component({\r\n selector: 'app-terms-conditions',\r\n templateUrl: './terms-conditions.component.html',\r\n styleUrls: ['./terms-conditions.component.scss'],\r\n schemas: [CUSTOM_ELEMENTS_SCHEMA],\r\n imports: [\r\n MatDialogContent,\r\n MatDialogClose,\r\n MatDialogTitle\r\n ],\r\n standalone: true\r\n})\r\nexport class TermsConditionsComponent {\r\n termsBody: string = null;\r\n\r\n constructor(\r\n public dialogRef: MatDialogRef<TermsConditionsComponent>,\r\n public i18n: CoreI18nService,\r\n @Inject(MAT_DIALOG_DATA) public data: any\r\n ) {\r\n this.termsBody = data;\r\n }\r\n}\r\n","<div class=\"popup-container\">\r\n <div class=\"d-flex align-items-center justify-content-between\" mat-dialog-title>\r\n <h3 class=\"mb-0 font-16 fw-medium\" >{{i18n.translate('termsAndConditions')}}</h3>\r\n <ds-button matDialogClose icon>\r\n <ds-icon icon=\"close\" class=\"fs-20 fc-black\"></ds-icon>\r\n </ds-button>\r\n </div>\r\n <mat-dialog-content>\r\n <div class=\"px-md-4\">\r\n <p class=\"fs-15 fw-normal bg-color-light-gray p-3 text-break\" [innerHTML]='termsBody' > </p>\r\n </div>\r\n </mat-dialog-content>\r\n</div>\r\n","import { Component, CUSTOM_ELEMENTS_SCHEMA, Input, OnInit } 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 NgIf,\r\n NgForOf\r\n ],\r\n schemas: [CUSTOM_ELEMENTS_SCHEMA]\r\n})\r\nexport class FaqsComponent implements OnInit {\r\n @Input() adminView = false;\r\n @Input() faqs: FAQ[];\r\n\r\n constructor(public i18n: CoreI18nService) { }\r\n\r\n ngOnInit(): void {\r\n\r\n }\r\n\r\n}\r\n","<mat-accordion class=\"primary-accordion\">\r\n <mat-expansion-panel [expanded]=\"i==0\" class=\"mb-4\" *ngFor=\"let item of faqs; let i = index;\" hideToggle #expansionPanel=\"matExpansionPanel\">\r\n <mat-expansion-panel-header *ngIf=\"item.title\" class=\"expansion-header\">\r\n\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 <ds-icon icon=\"plus-1\" class=\"fs-20 fc-coral\" *ngIf=\"!expansionPanel.expanded\"></ds-icon>\r\n <ds-icon icon=\"minus\" class=\"fs-20 fc-dark-gray\" *ngIf=\"expansionPanel.expanded\"></ds-icon>\r\n </mat-panel-title>\r\n\r\n </mat-expansion-panel-header>\r\n <p class=\"fs-14 fc-dark-gray\">\r\n {{ item.content }}\r\n </p>\r\n </mat-expansion-panel>\r\n</mat-accordion>\r\n","/* eslint-disable @angular-eslint/component-selector */\r\nimport { Component, CUSTOM_ELEMENTS_SCHEMA, OnInit } 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 implements OnInit {\r\n\r\n data = [];\r\n\r\n constructor(private sidenavService: SidenavService,\r\n public i18n: CoreI18nService) { }\r\n\r\n\r\n ngOnInit(): void {\r\n // this.data = this.sidenavService?.subject?.value['data'];\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: any\r\n\r\n constructor(\r\n private 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 *ngIf=\"!coreService.activities\" label=\"{{i18n.translate('NoData1')}}\"></ds-message>\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 * as moment from 'moment'\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() serviceBrief: any[] = [];\r\n approvals: any[] = [];\r\n public feedBackIcon: string = null;\r\n flagPriority: string;\r\n\r\n constructor(\r\n private cdRef: ChangeDetectorRef,\r\n public coreService:CoreService,\r\n public i18n: CoreI18nService, private feedBackService: FeedBackService,\r\n private readonly dialog: MatDialog, private readonly sidenavService: SidenavService,\r\n ) {\r\n\r\n }\r\n\r\n ngAfterViewInit() {\r\n this.getApprovalHistory();\r\n this.creationDate = moment(this.form?.header?.creationDate).locale('en-US').format(\"DD/MM/YYYY HH:mm:ss\");\r\n this.cdRef.detectChanges();\r\n\r\n }\r\n\r\n onCommentsFormClick() {\r\n const comments: any = this.form.commentsDrop;\r\n const resultData = [];\r\n for (let index = 0; index < comments.length; index++) {\r\n const item = comments[index];\r\n const obj =\r\n {\r\n name: item['employeeName'],\r\n title: item.jobPosition,\r\n image: item['profilePicture'],\r\n date: moment(item['commentDate']).locale('en-US').format('YYYY-MM-DD'),\r\n time: moment(item['commentDate']).locale('en-US').format('h:mm a'),\r\n comment: item['commentBody'],\r\n attachments: item['attachment']\r\n };\r\n resultData.push(obj);\r\n }\r\n this.coreService.activities = resultData;\r\n this.sidenavService.publish('open', ActivitiesComponent);\r\n }\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 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 setFlagPriority(id: string) {\r\n this.flagPriority = id;\r\n this.form.inboxItem.flagPriority = id;\r\n // this.stateMachineService.dispatch(Constants.STATE_MACHINE_ACTION_SET_FLAG, id).then(() => {\r\n // });\r\n }\r\n\r\n statusClass(status: string) {\r\n if (status) {\r\n if (this.isLoading) {\r\n return 'loading';\r\n } else 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 } else {\r\n return 'success';\r\n }\r\n }\r\n\r\n openFaq() {\r\n this.sidenavService.publish('open', FaqSidenavComponent, 'end', 'over', this.serviceBrief);\r\n }\r\n\r\n getApprovalHistory() {\r\n this.approvalHistory?.forEach((element: { approver: { personName: any; personEmail: string; }; positionType: any; }, index: number) => {\r\n const obj = {\r\n id: index + 1,\r\n name: element.approver.personName,\r\n title: element.positionType,\r\n image: '/group/i-gate/wm-bpm/forms/-/proxy/portrait?email=' + element.approver.personEmail,\r\n status: this.form.sections[index + 1] ? this.statusClass(this.form.sections[index + 1].body.details.decision.key) : '',\r\n statusLabel: this.form.sections[index + 1] ? this.form.sections[index + 1].body.details.decision.value : ''\r\n };\r\n this.approvals.push(obj);\r\n });\r\n }\r\n}\r\n","<ng-container *ngIf=\"!(form?.header?.status?.['key'] === 'NEW')\">\r\n <div class=\"d-flex align-items-center justify-content-end gap-2 my-2\" *ngIf=\"!(form?.header?.status?.['key'] === 'NEW')\">\r\n\r\n <!-- flag-->\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 <!-- print-->\r\n <ng-content></ng-content>\r\n </div>\r\n\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 <!-- title-->\r\n <h1 class=\"fs-20 fs-md-16 fw-bold fc-black header-title m-0\">{{ formTitle }}\r\n <ds-icon\r\n icon=\"info\" class=\"fs-22 fc-dark-gray cursor-pointer\" *ngIf=\"serviceBrief.length\"\r\n (click)=\"openFaq()\"></ds-icon>\r\n </h1>\r\n <div\r\n class=\"header-user d-flex align-items-sm-center gap-2 mt-sm-1\"\r\n *ngIf=\"form?.header?.status?.['key'] !== 'NEW' || isLoading\">\r\n <ds-avatar\r\n *ngIf=\"!isLoading\" image=\"{{form?.header?.requesterPhoto}}\" size=\"xx-small\"\r\n class=\"d-inline-flex cursor-pointer\" (click)=\"showUserInfo()\"></ds-avatar>\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 <mat-divider *ngIf=\"creationDate\" class=\"divider circle mx-2 d-none d-sm-block\"></mat-divider>\r\n <span *ngIf=\"creationDate\" class=\"fs-14\" [ngClass]=\"{'loading-bg loading-width': isLoading}\">{{ creationDate }}</span>\r\n </div>\r\n </div>\r\n <!-- header-actions-->\r\n <div\r\n 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 *ngIf=\"!(form?.header?.status?.['key'] === 'NEW')\">\r\n <ds-status\r\n *ngIf=\"form?.header?.status?.['key'] !== 'NEW' && !isLoading\"\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 <ng-container *ngIf=\"showApprovalHistory\">\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\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 </div>\r\n </div>\r\n </div>\r\n\r\n </header>\r\n</ng-container>\r\n<header\r\n class=\"mb-4 mt-4 d-flex align-items-center justify-content-between align-items-end gap-2\"\r\n *ngIf=\"(form?.header?.status?.['key'] === 'NEW')\">\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 <ds-icon icon=\"info\" class=\"fs-22 fc-dark-gray cursor-pointer\" *ngIf=\"serviceBrief.length\" (click)=\"openFaq()\">\r\n </ds-icon>\r\n </h1>\r\n </section>\r\n\r\n</header>\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 {AfterViewChecked, AfterViewInit, Component, CUSTOM_ELEMENTS_SCHEMA, Input, OnInit, ViewChild} 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 * as moment from 'moment'\r\nimport {ProfileSectionComponent} from \"../profile-section/profile-section.component\";\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 // @ViewChild('popover') popover?: any;\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() isOpen: boolean;\r\n // @Input() isFinalApproval: 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 sectionNumber: number;\r\n sectionStatusValue: string;\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 // highlightFlag: boolean;\r\n\r\n processingDate: string;\r\n public randomID: number =\r\n Math.floor(Math.random() * (999999 - 100000)) + 100000;\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 // this.highlightFlag = false;\r\n }\r\n\r\n ngOnInit() {\r\n this.sectionFormComponent = this.segmentDynamicLoaderService.getComponent(\r\n this.section.id\r\n );\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 this.input = {\r\n isReadOnly: this.isReadOnly,\r\n lov: this.lov,\r\n section: this.section,\r\n // controllers: this.controllers,\r\n // requestDetails: this.requestDetails,\r\n form:this.form\r\n };\r\n if (this.section.header && this.section.header.processingDate) {\r\n this.processingDate = moment(this.section.header.processingDate)\r\n .locale('en-US')\r\n .format('DD/MM/YYYY HH:mm:ss');\r\n }\r\n\r\n // this.highlightFlag = this.isOpen;\r\n const x = document.querySelectorAll('#collapse' + this.sectionId());\r\n if (x.length > 0) {\r\n this.sectionNumber = x.length;\r\n }\r\n }\r\n\r\n\r\n get isExpanded(): boolean {\r\n const isExpandableFromBackend = this.form?.sections?.length && this.form.sections.some(section => 'expandStage' in section?.body?.details);\r\n if (!isExpandableFromBackend) return true;\r\n return this.section?.body?.details?.expandStage === 'true';\r\n }\r\n\r\n sectionId() {\r\n return this.section.id.split(' ').join('') + this.randomID;\r\n }\r\n\r\n private createUserProfileFromResponse(response: any): ProfileInfoDrop {\r\n return new ProfileInfoDrop(\r\n false,\r\n response?.[\"Users\"][0]?.employeeNumber,\r\n response?.[\"Users\"][0]?.email,\r\n response?.[\"Users\"][0]?.name,\r\n response?.[\"Users\"][0]?.generalDepartment?.name,\r\n response?.[\"Users\"][0]?.position?.name,\r\n response?.[\"Users\"][0]?.sector?.name,\r\n response?.[\"Users\"][0]?.department?.name,\r\n response?.[\"Users\"][0]?.generalDepartment?.code,\r\n response?.[\"Users\"][0]?.location,\r\n response?.[\"Users\"][0]?.nationality?.desc,\r\n response?.[\"Users\"][0]?.contact?.mobile,\r\n response?.[\"Users\"][0]?.manager?.name,\r\n response?.[\"Users\"][0]?.seniorSectorName?.name\r\n );\r\n }\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 toggleSmallProfileInfo(event, personType) {\r\n this.userType = personType;\r\n event.stopPropagation();\r\n let userInfo = this[personType];\r\n if (userInfo.profile === null) {\r\n this.popoverType = personType;\r\n let userEmail = (personType === 'recipient' ? this.section.header.personToThumbnail.split('=')[1] : this?.section?.header?.delegatedToThumbnail.split('=')[1]);\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 } else {\r\n this.openOrCreateUserProfile(this[personType].profile, personType);\r\n }\r\n }\r\n\r\n statusClass(status: string) {\r\n if (status) {\r\n if (\r\n status === Constants.FORM_STATUS_REJECTED || status === Constants.FORM_STATUS_CANCELLED\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 } else {\r\n return 'success';\r\n }\r\n }\r\n\r\n statusIcon(status: string) {\r\n if (status) {\r\n if (\r\n status === Constants.FORM_STATUS_REJECTED || status === Constants.FORM_STATUS_CANCELLED\r\n || status.toLowerCase() === 'reject' || status.toLowerCase() === 'unsatisfied' || status.toLowerCase() === 'cancel'\r\n ) {\r\n return 'close';\r\n } else if (status === Constants.FORM_STATUS_PENDING || status.toLowerCase() === 'pending') {\r\n return 'clock';\r\n } else {\r\n return 'check';\r\n }\r\n } else {\r\n return 'check';\r\n }\r\n }\r\n}\r\n","<mat-expansion-panel\r\n class=\"mb-4\" [expanded]=\"isExpanded\" *ngIf=\"form?.header?.status?.['key'] !== 'NEW' \" hideToggle\r\n #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 <bdi class=\"fs-12 fc-dark-gray fw-normal line-height-1 d-block mt-1\" *ngIf=\"section.header?.processedBy\">\r\n {{ processingDate }}\r\n </bdi>\r\n </div>\r\n </div>\r\n <div class=\"approval-panel-details gap-1\">\r\n\r\n <ng-container *ngIf=\"(!section?.body?.details?.['stage0']?.['isStage0'] || section?.body?.details?.['stage0']?.['isStage0'] === 'false')\">\r\n <div\r\n class=\"d-flex align-items-center gap-3\" *ngIf=\"section?.header?.personTo;\"\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 <span\r\n class=\"fs-14 fw-medium d-inline-block panel-user-name text-truncate\" [ngClass]=\"{'panel-user-only': !section?.header?.delegatedTo}\"\r\n *ngIf=\"!section?.header?.delegatedTo\">{{ section?.header?.personTo }}</span>\r\n </div>\r\n\r\n <div\r\n *ngIf=\"section?.header?.delegatedTo\" 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\r\n </div>\r\n </div>\r\n </ng-container>\r\n <ds-status\r\n class=\"main-status\" *ngIf=\"section?.body?.details?.['decision']?.key;\"\r\n status=\"{{statusClass(section?.body?.details?.['decision']?.key)}}\">{{ section?.body?.details?.['decision']?.value }}\r\n </ds-status>\r\n </div>\r\n\r\n <div class=\"approval-panel-toggle\">\r\n <ds-icon icon=\"plus-1\" class=\"fs-20 fc-coral\" *ngIf=\"!approvalPanel.expanded\"></ds-icon>\r\n <ds-icon icon=\"minus\" class=\"fs-20 fc-dark-gray\" *ngIf=\"approvalPanel.expanded\"></ds-icon>\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<ng-container *ngIf=\"form?.header?.status?.['key'] == 'NEW' \">\r\n <ng-container *ngComponentOutlet=\"sectionFormComponent; ndcDynamicInputs: input\"></ng-container>\r\n</ng-container>\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\nimport { NgIf } from '@angular/common';\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 NgIf\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 <div class=\"d-inline-flex align-items-center gap-2\" *ngIf=\"!requestPanel.expanded\">\r\n <ds-icon icon=\"plus-1\" class=\"fs-20 fc-coral\"></ds-icon>\r\n </div>\r\n <div class=\"d-inline-flex align-items-center gap-2\" *ngIf=\"requestPanel.expanded\">\r\n <ds-icon icon=\"minus\" class=\"fs-20 fc-dark-gray\"></ds-icon>\r\n </div>\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 { Component, CUSTOM_ELEMENTS_SCHEMA, EventEmitter, Input, Output } from '@angular/core';\r\nimport { SidenavService } from '../../../services';\r\nimport { CommentsDrop, Form } from '../../../interfaces';\r\nimport * as Constants from '../../../constants/constants';\r\nimport { CoreI18nService } from '../../../services';\r\nimport {DatePipe, NgForOf, NgIf} from '@angular/common';\r\n\r\n@Component({\r\n selector: 'app-comment-section',\r\n templateUrl: './comment-section.component.html',\r\n styleUrls: ['./comment-section.component.scss'],\r\n standalone: true,\r\n imports: [\r\n NgIf,\r\n NgForOf,\r\n DatePipe\r\n ],\r\n schemas: [CUSTOM_ELEMENTS_SCHEMA]\r\n})\r\nexport class CommentSectionComponent {\r\n\r\n @Input() commentFormVisibility: boolean;\r\n @Input() comments: CommentsDrop[];\r\n @Input() form: Form;\r\n @Output() close: EventEmitter<boolean> = new EventEmitter();\r\n\r\n constructor(public i18n: CoreI18nService,\r\n private sidenavService: SidenavService\r\n ) {\r\n this.form = sidenavService.data.form,\r\n this.comments = sidenavService.data.form.commentsDrop;\r\n this.commentFormVisibility = true;\r\n }\r\n\r\n\r\n CloseMenu() {\r\n this.sidenavService.publish('close', null);\r\n this.close.emit();\r\n }\r\n\r\n\r\n downloadAttachment(event: any, field: any) {\r\n let placeholder = event.target.nextElementSibling;\r\n if (placeholder == null) {\r\n placeholder = document.getElementById('downloadBtn').nextElementSibling;\r\n }\r\n /* this.stateMachineService.dispatch(Constants.STATE_MACHINE_ACTION_LOAD_FILE, field).then((responseObject: any) => {\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 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\r\n}\r\n","\r\n<div class=\"overlay-menu view-overlay\" (click)=\"CloseMenu()\"></div>\r\n\r\n<div class=\"side-menu open-side-menu\" >\r\n <div class=\"head\">\r\n <span (click)=\"CloseMenu()\" class=\"close-menu sfi sfi-close\">\r\n </span>\r\n <span class=\"txt\">\r\n {{i18n.translate('commentHistory')}}\r\n </span>\r\n </div>\r\n\r\n <div *ngIf=\"form?.commentsDrop\" class=\"flex-grow-1 overflow-auto\">\r\n <div class=\"side-menu-content\" *ngFor=\"let comment of form.commentsDrop\">\r\n <div class=\"side-menu-detail\">\r\n <div class=\"dots\">\r\n <svg xmlns=\"http://www.w3.org/2000/svg\" width=\"24\" height=\"24\" viewBox=\"0 0 24 24\">\r\n <g id=\"Group_16648\" data-name=\"Group 16648\" transform=\"translate(-952.156 -107.008)\">\r\n <g id=\"Ellipse_592\" data-name=\"Ellipse 592\" transform=\"translate(952.156 107.008)\" fill=\"none\"\r\n stroke=\"#e3e3e3\" stroke-width=\"1\">\r\n <circle cx=\"12\" cy=\"12\" r=\"12\" stroke=\"none\" />\r\n <circle cx=\"12\" cy=\"12\" r=\"11.5\" fill=\"none\" />\r\n </g>\r\n <circle id=\"Ellipse_595\" data-name=\"Ellipse 595\" cx=\"8\" cy=\"8\" r=\"8\"\r\n transform=\"translate(956.156 111.008)\" fill=\"#e3e3e3\" />\r\n </g>\r\n </svg>\r\n </div>\r\n <ds-avatar image={{comment?.profilePicture}} size=\"small\" class=\"d-inline-flex cursor-pointer\"></ds-avatar>\r\n <div class=\"request-details\">\r\n <div class=\"d-flex justify-content-between\">\r\n <div>\r\n <h2 class=\"user-name\">{{comment?.employeeName}}</h2>\r\n <span class=\"user-position\">{{comment?.jobPosition}}</span>\r\n </div>\r\n <div class=\"req-history\">\r\n <span>{{comment?.commentDate | date :'dd/MM/yyyy HH:mm:ss'}}</span>\r\n </div>\r\n </div>\r\n\r\n <div class=\"comment\" *ngIf=\"comment?.commentBody\">\r\n <p>{{comment?.commentBody}} </p>\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n\r\n</div>\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 { 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","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-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 ]\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 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\r\n <!--<form [formGroup]=\"formGroup\">\r\n <app-input formControlName=\"name\"></app-input>\r\n <app-custom-searchable formControlName=\"countries\" [options]=\"lov?.['approverActions']?.options\"></app-custom-searchable>\r\n </form>-->\r\n\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 {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, Inject} 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 {CoreService, SidenavService} from \"../services\";\r\nimport {Form, Messages} from \"../interfaces\";\r\nimport * as constants from \"../constants\";\r\nimport loadFormHooks from \"../hooks/load-form\";\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 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\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 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.errorResponse(err)\r\n }\r\n });\r\n }\r\n\r\n errorResponse(form: 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 form\r\n );\r\n } else {\r\n this.form.messages = form;\r\n this.form = loadFormHooks.afterTranspilePayload(this.form);\r\n }\r\n window.scrollTo(0, 0);\r\n }\r\n}\r\n","<core-layout>\r\n @if (!loading['form']) {\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 [form]=\"form\"\r\n [segmentDynamicLoaderService]=\"segmentDynamicLoader\"\r\n [sections]=\"form?.sections\">\r\n\r\n <app-request-details-section [form]=\"form\" [section]=\"form?.sections[0]\" [lov]=\"form?.lovs\" className=\"form-section\"></app-request-details-section>\r\n <!-- [isReadOnly]=\"form.sections[0].header.readOnly\"-->\r\n </app-workflow-section>\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","/* 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})\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/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})\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-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","/* 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})\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","/*\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\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\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.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","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","i1.FeedBackService","Constants.FORM_STATUS_COMPLETED","Constants.FORM_STATUS_APPROVED","Constants.LOGOUT_URL","i4","i2.SidenavService","en.default","ar.default","Constants.SECTION_ID_REQUEST_DETAILS","Constants.SECTION_ID_APPROVAL_PARTIAL_NAME","i1.I18nService","i3.SidenavService","i3.CoreService","i1.MycurrencyPipe"],"mappings":"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"}
|