| 
														
															@@ -36,9 +36,19 @@ 
														 | 
													
												
											
												
													
														| 
														 | 
														
															     <transition> 
														 | 
														
														 | 
														
															     <transition> 
														 | 
													
												
											
												
													
														| 
														 | 
														
															     <div class="card"> 
														 | 
														
														 | 
														
															     <div class="card"> 
														 | 
													
												
											
												
													
														| 
														 | 
														
															       <h3>SUBSCRIPTION</h3> 
														 | 
														
														 | 
														
															       <h3>SUBSCRIPTION</h3> 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 
														 | 
														
														 | 
														
															+      <div v-if="subscription.subId">SubscriptionId: {{ subscription.subId }}</div> 
														 | 
													
												
											
												
													
														| 
														 | 
														
															       <div class="buttons"> 
														 | 
														
														 | 
														
															       <div class="buttons"> 
														 | 
													
												
											
												
													
														| 
														 | 
														
															-        <button :disabled="session.ucpId == null" >Property Change</button> 
														 | 
														
														 | 
														
															 
														 | 
													
												
											
												
													
														| 
														 | 
														
															-        <button>Unsubscribe</button> 
														 | 
														
														 | 
														
															 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 
														 | 
														
														 | 
														
															+        <button  
														 | 
													
												
											
												
													
														| 
														 | 
														
															 
														 | 
														
														 | 
														
															+          :disabled="session.ucpId == null || subscription.subId != null" 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 
														 | 
														
														 | 
														
															+          @click="startSubscribePropertyChange" 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 
														 | 
														
														 | 
														
															+        >Property Change</button> 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 
														 | 
														
														 | 
														
															+        <!-- <button 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 
														 | 
														
														 | 
														
															+          :disabled="session.ucpId == null || subscription.subId == null" 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 
														 | 
														
														 | 
														
															+          @click="endSubscribePropertyChange" 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 
														 | 
														
														 | 
														
															+        >Unsubscribe</button> --> 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 
														 | 
														
														 | 
														
															+      </div> 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 
														 | 
														
														 | 
														
															+      <div> 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 
														 | 
														
														 | 
														
															+        <div v-for="message in subscription.messages" :key="message.id">{{ message.text }}</div> 
														 | 
													
												
											
												
													
														| 
														 | 
														
															       </div> 
														 | 
														
														 | 
														
															       </div> 
														 | 
													
												
											
												
													
														| 
														 | 
														
															     </div> 
														 | 
														
														 | 
														
															     </div> 
														 | 
													
												
											
												
													
														| 
														 | 
														
															     </transition> 
														 | 
														
														 | 
														
															     </transition> 
														 | 
													
												
											
										
											
												
													
														 | 
														
															@@ -46,17 +56,34 @@ 
														 | 
													
												
											
												
													
														| 
														 | 
														
															     <transition> 
														 | 
														
														 | 
														
															     <transition> 
														 | 
													
												
											
												
													
														| 
														 | 
														
															     <div class="card"> 
														 | 
														
														 | 
														
															     <div class="card"> 
														 | 
													
												
											
												
													
														| 
														 | 
														
															       <h3>FORM</h3> 
														 | 
														
														 | 
														
															       <h3>FORM</h3> 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 
														 | 
														
														 | 
														
															+      <div v-if="form.type=='productrequisition'"> 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 
														 | 
														
														 | 
														
															+        <h3>Product Requisition</h3> 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 
														 | 
														
														 | 
														
															+        <div> 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 
														 | 
														
														 | 
														
															+          <label >Doc Date<input v-model="form.docDt"></label> 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 
														 | 
														
														 | 
														
															+        </div> 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 
														 | 
														
														 | 
														
															+      </div> 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 
														 | 
														
														 | 
														
															+      <div v-if="form.type=='userprofile'"> 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 
														 | 
														
														 | 
														
															+        <h3>User Profile</h3> 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 
														 | 
														
														 | 
														
															+        <div> 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 
														 | 
														
														 | 
														
															+          <label >User Name<input v-model="form.userName"></label> 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 
														 | 
														
														 | 
														
															+        </div> 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 
														 | 
														
														 | 
														
															+      </div> 
														 | 
													
												
											
												
													
														| 
														 | 
														
															       <div class="buttons"> 
														 | 
														
														 | 
														
															       <div class="buttons"> 
														 | 
													
												
											
												
													
														| 
														 | 
														
															-        <button>New Product Requisition</button> 
														 | 
														
														 | 
														
															 
														 | 
													
												
											
												
													
														| 
														 | 
														
															-        <button>New User Profile</button> 
														 | 
														
														 | 
														
															 
														 | 
													
												
											
												
													
														| 
														 | 
														
															-        <button>Cancel Changes</button> 
														 | 
														
														 | 
														
															 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 
														 | 
														
														 | 
														
															+        <button 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 
														 | 
														
														 | 
														
															+          :disabled="session.ucpId == null || form.type != null" 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 
														 | 
														
														 | 
														
															+          @click="startRequisition" 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 
														 | 
														
														 | 
														
															+        >New Product Requisition</button> 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 
														 | 
														
														 | 
														
															+        <button 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 
														 | 
														
														 | 
														
															+          :disabled="session.ucpId == null || form.type != null" 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 
														 | 
														
														 | 
														
															+          @click="startUserProfile" 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 
														 | 
														
														 | 
														
															+        >New User Profile</button> 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 
														 | 
														
														 | 
														
															+        <button 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 
														 | 
														
														 | 
														
															+          :disabled="form.type == null" 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 
														 | 
														
														 | 
														
															+          @click="cancelForm" 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 
														 | 
														
														 | 
														
															+        >Cancel Changes</button> 
														 | 
													
												
											
												
													
														| 
														 | 
														
															       </div> 
														 | 
														
														 | 
														
															       </div> 
														 | 
													
												
											
												
													
														| 
														 | 
														
															     </div> 
														 | 
														
														 | 
														
															     </div> 
														 | 
													
												
											
												
													
														| 
														 | 
														
															     </transition> 
														 | 
														
														 | 
														
															     </transition> 
														 | 
													
												
											
												
													
														| 
														 | 
														
															- 
														 | 
														
														 | 
														
															 
														 | 
													
												
											
												
													
														| 
														 | 
														
															-    <div> 
														 | 
														
														 | 
														
															 
														 | 
													
												
											
												
													
														| 
														 | 
														
															-      <button @click="startConnection">connection</button><input type="text" v-model="url"> 
														 | 
														
														 | 
														
															 
														 | 
													
												
											
												
													
														| 
														 | 
														
															-    </div> 
														 | 
														
														 | 
														
															 
														 | 
													
												
											
												
													
														| 
														 | 
														
															     <!-- Websocket connection 
														 | 
														
														 | 
														
															     <!-- Websocket connection 
														 | 
													
												
											
												
													
														| 
														 | 
														
															       - button disconnect (when connection is up) 
														 | 
														
														 | 
														
															       - button disconnect (when connection is up) 
														 | 
													
												
											
												
													
														| 
														 | 
														
															     --> 
														 | 
														
														 | 
														
															     --> 
														 | 
													
												
											
										
											
												
													
														 | 
														
															@@ -87,14 +114,14 @@ 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 import Trottle from 'lodash/throttle' 
														 | 
														
														 | 
														
															 import Trottle from 'lodash/throttle' 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 import { 
														 | 
														
														 | 
														
															 import { 
														 | 
													
												
											
												
													
														| 
														 | 
														
															   getLoginMessage, 
														 | 
														
														 | 
														
															   getLoginMessage, 
														 | 
													
												
											
												
													
														| 
														 | 
														
															-  // getLogoutMessage, 
														 | 
														
														 | 
														
															 
														 | 
													
												
											
												
													
														| 
														 | 
														
															   // getMessage, 
														 | 
														
														 | 
														
															   // getMessage, 
														 | 
													
												
											
												
													
														| 
														 | 
														
															   getSubPropertyChangeMessage, 
														 | 
														
														 | 
														
															   getSubPropertyChangeMessage, 
														 | 
													
												
											
												
													
														| 
														 | 
														
															-  getNewUserProfileMessage, 
														 | 
														
														 | 
														
															 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 
														 | 
														
														 | 
														
															+  getNewUserProfile, 
														 | 
													
												
											
												
													
														| 
														 | 
														
															   getLogoutMessage, 
														 | 
														
														 | 
														
															   getLogoutMessage, 
														 | 
													
												
											
												
													
														| 
														 | 
														
															   getNewPurchaseRequisition, 
														 | 
														
														 | 
														
															   getNewPurchaseRequisition, 
														 | 
													
												
											
												
													
														| 
														 | 
														
															   // getSetPurchaseRequisitionDocDt, 
														 | 
														
														 | 
														
															   // getSetPurchaseRequisitionDocDt, 
														 | 
													
												
											
												
													
														| 
														 | 
														
															-  // getCancelPurchaseRequisition 
														 | 
														
														 | 
														
															 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 
														 | 
														
														 | 
														
															+  getCancelPurchaseRequisition, 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 
														 | 
														
														 | 
														
															+  getCancelUserProfile, 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 } from '../assets/js/__message-util'; 
														 | 
														
														 | 
														
															 } from '../assets/js/__message-util'; 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 import { TestSocketIoClient } from "../assets/js/__transport.socketio" 
														 | 
														
														 | 
														
															 import { TestSocketIoClient } from "../assets/js/__transport.socketio" 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 import { Component, Prop, Vue } from 'vue-property-decorator' 
														 | 
														
														 | 
														
															 import { Component, Prop, Vue } from 'vue-property-decorator' 
														 | 
													
												
											
										
											
												
													
														 | 
														
															@@ -106,15 +133,21 @@ type Session = { 
														 | 
													
												
											
												
													
														| 
														 | 
														
															  
														 | 
														
														 | 
														
															  
														 | 
													
												
											
												
													
														| 
														 | 
														
															 type Form = { 
														 | 
														
														 | 
														
															 type Form = { 
														 | 
													
												
											
												
													
														| 
														 | 
														
															   type: string, 
														 | 
														
														 | 
														
															   type: string, 
														 | 
													
												
											
												
													
														| 
														 | 
														
															-  docDt?: string, // "2021-01-10Z" 
														 | 
														
														 | 
														
															 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 
														 | 
														
														 | 
														
															+  docDt: string, // "2021-01-10Z" 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 
														 | 
														
														 | 
														
															+  userName: string, //abcxyz 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 
														 | 
														
														 | 
														
															+  cancelRequest: any, 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 } 
														 | 
														
														 | 
														
															 } 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 type WsConnection = { 
														 | 
														
														 | 
														
															 type WsConnection = { 
														 | 
													
												
											
												
													
														| 
														 | 
														
															   socketId 
														 | 
														
														 | 
														
															   socketId 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 } 
														 | 
														
														 | 
														
															 } 
														 | 
													
												
											
												
													
														| 
														 | 
														
															-type Messages = { 
														 | 
														
														 | 
														
															 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 
														 | 
														
														 | 
														
															+type Message = { 
														 | 
													
												
											
												
													
														| 
														 | 
														
															   id: symbol, 
														 | 
														
														 | 
														
															   id: symbol, 
														 | 
													
												
											
												
													
														| 
														 | 
														
															   text: string, 
														 | 
														
														 | 
														
															   text: string, 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 } 
														 | 
														
														 | 
														
															 } 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 
														 | 
														
														 | 
														
															+type Subscription = { 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 
														 | 
														
														 | 
														
															+  subId: string, 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 
														 | 
														
														 | 
														
															+  messages: Message[], 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 
														 | 
														
														 | 
														
															+} 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 @Component 
														 | 
														
														 | 
														
															 @Component 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 export default class UiClient extends Vue { 
														 | 
														
														 | 
														
															 export default class UiClient extends Vue { 
														 | 
													
												
											
												
													
														| 
														 | 
														
															   @Prop() private msg!: string; 
														 | 
														
														 | 
														
															   @Prop() private msg!: string; 
														 | 
													
												
											
										
											
												
													
														 | 
														
															@@ -122,18 +155,37 @@ export default class UiClient extends Vue { 
														 | 
													
												
											
												
													
														| 
														 | 
														
															   client: TestSocketIoClient = new TestSocketIoClient(); 
														 | 
														
														 | 
														
															   client: TestSocketIoClient = new TestSocketIoClient(); 
														 | 
													
												
											
												
													
														| 
														 | 
														
															   connection: WsConnection = { socketId: null } 
														 | 
														
														 | 
														
															   connection: WsConnection = { socketId: null } 
														 | 
													
												
											
												
													
														| 
														 | 
														
															   session: Session = { ucpId: null } 
														 | 
														
														 | 
														
															   session: Session = { ucpId: null } 
														 | 
													
												
											
												
													
														| 
														 | 
														
															-  form: Form = { type: null } 
														 | 
														
														 | 
														
															 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 
														 | 
														
														 | 
														
															+  form: Form = { 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 
														 | 
														
														 | 
														
															+    type: null, 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 
														 | 
														
														 | 
														
															+    docDt: null, 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 
														 | 
														
														 | 
														
															+    userName: null, 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 
														 | 
														
														 | 
														
															+    cancelRequest: null, 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 
														 | 
														
														 | 
														
															+  } 
														 | 
													
												
											
												
													
														| 
														 | 
														
															   url = 'http://swopt.com:3011'; 
														 | 
														
														 | 
														
															   url = 'http://swopt.com:3011'; 
														 | 
													
												
											
												
													
														| 
														 | 
														
															-  messages: Messages[] = []; 
														 | 
														
														 | 
														
															 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 
														 | 
														
														 | 
														
															+  messages: Message[] = []; 
														 | 
													
												
											
												
													
														| 
														 | 
														
															   loading: boolean = false 
														 | 
														
														 | 
														
															   loading: boolean = false 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 
														 | 
														
														 | 
														
															+  subscription: Subscription = { 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 
														 | 
														
														 | 
														
															+    subId: null, 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 
														 | 
														
														 | 
														
															+    messages: [], 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 
														 | 
														
														 | 
														
															+  } 
														 | 
													
												
											
												
													
														| 
														 | 
														
															  
														 | 
														
														 | 
														
															  
														 | 
													
												
											
												
													
														| 
														 | 
														
															   dosomething = Trottle(() => { 
														 | 
														
														 | 
														
															   dosomething = Trottle(() => { 
														 | 
													
												
											
												
													
														| 
														 | 
														
															       const zz = 'ssss'; 
														 | 
														
														 | 
														
															       const zz = 'ssss'; 
														 | 
													
												
											
												
													
														| 
														 | 
														
															       console.log('done ' + zz) 
														 | 
														
														 | 
														
															       console.log('done ' + zz) 
														 | 
													
												
											
												
													
														| 
														 | 
														
															   },1000, { trailing: false }) 
														 | 
														
														 | 
														
															   },1000, { trailing: false }) 
														 | 
													
												
											
												
													
														| 
														 | 
														
															    
														 | 
														
														 | 
														
															    
														 | 
													
												
											
												
													
														| 
														 | 
														
															 
														 | 
														
														 | 
														
															+  startLoading() { 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 
														 | 
														
														 | 
														
															+    this.loading = true 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 
														 | 
														
														 | 
														
															+  } 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 
														 | 
														
														 | 
														
															+  endLoading() { 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 
														 | 
														
														 | 
														
															+    this.loading = false 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 
														 | 
														
														 | 
														
															+  } 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 
														 | 
														
														 | 
														
															+  async getResponses(request){ 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 
														 | 
														
														 | 
														
															+    return await this.client.getAllResponsesFromRequest(request) 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 
														 | 
														
														 | 
														
															+  } 
														 | 
													
												
											
												
													
														| 
														 | 
														
															   addMessage(text:string) { 
														 | 
														
														 | 
														
															   addMessage(text:string) { 
														 | 
													
												
											
												
													
														| 
														 | 
														
															-    this.messages.unshift({ id: Symbol(),text }) 
														 | 
														
														 | 
														
															 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 
														 | 
														
														 | 
														
															+    // this.messages.unshift({ id: Symbol(),text }) 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 
														 | 
														
														 | 
														
															+    this.messages.push({ id: Symbol(), text }) 
														 | 
													
												
											
												
													
														| 
														 | 
														
															   } 
														 | 
														
														 | 
														
															   } 
														 | 
													
												
											
												
													
														| 
														 | 
														
															  
														 | 
														
														 | 
														
															  
														 | 
													
												
											
												
													
														| 
														 | 
														
															   async stopConnection() { 
														 | 
														
														 | 
														
															   async stopConnection() { 
														 | 
													
												
											
										
											
												
													
														 | 
														
															@@ -144,7 +196,7 @@ export default class UiClient extends Vue { 
														 | 
													
												
											
												
													
														| 
														 | 
														
															  
														 | 
														
														 | 
														
															  
														 | 
													
												
											
												
													
														| 
														 | 
														
															   async startConnection() { 
														 | 
														
														 | 
														
															   async startConnection() { 
														 | 
													
												
											
												
													
														| 
														 | 
														
															     this.addMessage('connecting websocket..') 
														 | 
														
														 | 
														
															     this.addMessage('connecting websocket..') 
														 | 
													
												
											
												
													
														| 
														 | 
														
															-    this.loading = true 
														 | 
														
														 | 
														
															 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 
														 | 
														
														 | 
														
															+    this.startLoading() 
														 | 
													
												
											
												
													
														| 
														 | 
														
															  
														 | 
														
														 | 
														
															  
														 | 
													
												
											
												
													
														| 
														 | 
														
															     try { 
														 | 
														
														 | 
														
															     try { 
														 | 
													
												
											
												
													
														| 
														 | 
														
															       this.connection.socketId = await this.client.connect(this.url, { 
														 | 
														
														 | 
														
															       this.connection.socketId = await this.client.connect(this.url, { 
														 | 
													
												
											
										
											
												
													
														 | 
														
															@@ -157,28 +209,137 @@ export default class UiClient extends Vue { 
														 | 
													
												
											
												
													
														| 
														 | 
														
															       this.addMessage('websocket connection fail ' + error) 
														 | 
														
														 | 
														
															       this.addMessage('websocket connection fail ' + error) 
														 | 
													
												
											
												
													
														| 
														 | 
														
															     } 
														 | 
														
														 | 
														
															     } 
														 | 
													
												
											
												
													
														| 
														 | 
														
															  
														 | 
														
														 | 
														
															  
														 | 
													
												
											
												
													
														| 
														 | 
														
															-    this.loading = false 
														 | 
														
														 | 
														
															 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 
														 | 
														
														 | 
														
															+    this.endLoading() 
														 | 
													
												
											
												
													
														| 
														 | 
														
															   } 
														 | 
														
														 | 
														
															   } 
														 | 
													
												
											
												
													
														| 
														 | 
														
															  
														 | 
														
														 | 
														
															  
														 | 
													
												
											
												
													
														| 
														 | 
														
															-  async startSession(): Promise<void> { 
														 | 
														
														 | 
														
															 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 
														 | 
														
														 | 
														
															+  getResponse = Trottle(async (request, operation: string, getReturnData: (response) => any ) => { 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 
														 | 
														
														 | 
														
															+    this.startLoading() 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 
														 | 
														
														 | 
														
															+    this.addMessage(operation + ' ...') 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 
														 | 
														
														 | 
														
															+    let returnData = null 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 
														 | 
														
														 | 
														
															+    try { 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 
														 | 
														
														 | 
														
															+      const results = await this.getResponses(request) 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 
														 | 
														
														 | 
														
															+      // look for error 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 
														 | 
														
														 | 
														
															+      const responseException = results.find( (r: any) => r?.header?.messageType == 'ResponseException' ) 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 
														 | 
														
														 | 
														
															+ 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 
														 | 
														
														 | 
														
															+      if( responseException != null ){ 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 
														 | 
														
														 | 
														
															+        throw Error(responseException?.data) 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 
														 | 
														
														 | 
														
															+      } 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 
														 | 
														
														 | 
														
															+      // look for response 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 
														 | 
														
														 | 
														
															+      const response = results.find( (r: any) => { 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 
														 | 
														
														 | 
														
															+        const messageType = r?.header?.messageType 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 
														 | 
														
														 | 
														
															+        return ['FisResponse','Response'].indexOf(messageType) > -1 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 
														 | 
														
														 | 
														
															+      }) 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 
														 | 
														
														 | 
														
															+      if(response == null){ 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 
														 | 
														
														 | 
														
															+        throw Error('fail to get success response') 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 
														 | 
														
														 | 
														
															+      } 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 
														 | 
														
														 | 
														
															+ 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 
														 | 
														
														 | 
														
															+      // try extract data 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 
														 | 
														
														 | 
														
															+      returnData = getReturnData(response) 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 
														 | 
														
														 | 
														
															+ 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 
														 | 
														
														 | 
														
															+      this.addMessage(operation + ' success.') 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 
														 | 
														
														 | 
														
															+    } catch (error) { 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 
														 | 
														
														 | 
														
															+      this.addMessage(operation + ' fail :' + error) 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 
														 | 
														
														 | 
														
															+    } 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 
														 | 
														
														 | 
														
															+    this.endLoading() 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 
														 | 
														
														 | 
														
															+ 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 
														 | 
														
														 | 
														
															+    console.log('results', returnData) 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 
														 | 
														
														 | 
														
															+    return returnData; 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 
														 | 
														
														 | 
														
															+  }) 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 
														 | 
														
														 | 
														
															+ 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 
														 | 
														
														 | 
														
															+  async startSession() { 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 
														 | 
														
														 | 
														
															+    this.session.ucpId = await this.getResponse( getLoginMessage(10000), 'signin', (response) => { 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 
														 | 
														
														 | 
														
															+      console.log('response2', response) 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 
														 | 
														
														 | 
														
															+      const ucpId = response?.data?.ucpId 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 
														 | 
														
														 | 
														
															+      if( ucpId == null) throw Error('missing ucpId') 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 
														 | 
														
														 | 
														
															+      console.log('ucpId', ucpId) 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 
														 | 
														
														 | 
														
															+      return ucpId 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 
														 | 
														
														 | 
														
															+    }) 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 
														 | 
														
														 | 
														
															+  } 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 
														 | 
														
														 | 
														
															+ 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 
														 | 
														
														 | 
														
															+  async endSession() { 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 
														 | 
														
														 | 
														
															+    this.session.ucpId = await this.getResponse( 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 
														 | 
														
														 | 
														
															+      getLogoutMessage(this.session.ucpId), 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 
														 | 
														
														 | 
														
															+      'signout', 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 
														 | 
														
														 | 
														
															+      _ => null 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 
														 | 
														
														 | 
														
															+    ) 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 
														 | 
														
														 | 
														
															+  } 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 
														 | 
														
														 | 
														
															+ 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 
														 | 
														
														 | 
														
															+  async startRequisition() { 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 
														 | 
														
														 | 
														
															+    this.form.type = await this.getResponse( 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 
														 | 
														
														 | 
														
															+      getNewPurchaseRequisition(this.session.ucpId), 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 
														 | 
														
														 | 
														
															+      'new product requisition', 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 
														 | 
														
														 | 
														
															+      _ => 'productrequisition', 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 
														 | 
														
														 | 
														
															+    ) 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 
														 | 
														
														 | 
														
															+    this.form.docDt = "2021-01-10Z" 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 
														 | 
														
														 | 
														
															+    this.form.cancelRequest = getCancelPurchaseRequisition(this.session.ucpId) 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 
														 | 
														
														 | 
														
															+  } 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 
														 | 
														
														 | 
														
															+  async startUserProfile() { 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 
														 | 
														
														 | 
														
															+    this.form.type = await this.getResponse( 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 
														 | 
														
														 | 
														
															+      getNewUserProfile(this.session.ucpId), 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 
														 | 
														
														 | 
														
															+      'new user profile', 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 
														 | 
														
														 | 
														
															+      _ => 'userprofile', 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 
														 | 
														
														 | 
														
															+    ) 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 
														 | 
														
														 | 
														
															+    this.form.userName = "abcxyz" 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 
														 | 
														
														 | 
														
															+    this.form.cancelRequest = getCancelUserProfile(this.session.ucpId) 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 
														 | 
														
														 | 
														
															+  } 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 
														 | 
														
														 | 
														
															+  async cancelForm() { 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 
														 | 
														
														 | 
														
															+    this.form.type = await this.getResponse( 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 
														 | 
														
														 | 
														
															+      this.form.cancelRequest, 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 
														 | 
														
														 | 
														
															+      'cancel changes', 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 
														 | 
														
														 | 
														
															+      _ => null, 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 
														 | 
														
														 | 
														
															+    ) 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 
														 | 
														
														 | 
														
															+  } 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 
														 | 
														
														 | 
														
															+ 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 
														 | 
														
														 | 
														
															+  async startSubscribePropertyChange(): Promise<void> { 
														 | 
													
												
											
												
													
														| 
														 | 
														
															     this.loading = true 
														 | 
														
														 | 
														
															     this.loading = true 
														 | 
													
												
											
												
													
														| 
														 | 
														
															-    this.addMessage('signing in ...') 
														 | 
														
														 | 
														
															 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 
														 | 
														
														 | 
														
															+    this.addMessage('subscribing to property change ...') 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 
														 | 
														
														 | 
														
															+ 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 
														 | 
														
														 | 
														
															+    let listening = false 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 
														 | 
														
														 | 
														
															+ 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 
														 | 
														
														 | 
														
															+    const request = getSubPropertyChangeMessage(this.session.ucpId) 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 
														 | 
														
														 | 
														
															+    const subject = this.client.getStreamOfResponsesFromRequest(request) 
														 | 
													
												
											
												
													
														| 
														 | 
														
															  
														 | 
														
														 | 
														
															  
														 | 
													
												
											
												
													
														| 
														 | 
														
															     try { 
														 | 
														
														 | 
														
															     try { 
														 | 
													
												
											
												
													
														| 
														 | 
														
															-      const results = await this.client.getAllResponsesFromRequest(getLoginMessage()) 
														 | 
														
														 | 
														
															 
														 | 
													
												
											
												
													
														| 
														 | 
														
															-      const response = results.find( (r: any) => r?.header?.messageType == 'Response' ) 
														 | 
														
														 | 
														
															 
														 | 
													
												
											
												
													
														| 
														 | 
														
															-      const ucpId = response?.data?.ucpId 
														 | 
														
														 | 
														
															 
														 | 
													
												
											
												
													
														| 
														 | 
														
															-      if( ucpId == null) throw Error('fail to get success response') 
														 | 
														
														 | 
														
															 
														 | 
													
												
											
												
													
														| 
														 | 
														
															-      this.session.ucpId = ucpId 
														 | 
														
														 | 
														
															 
														 | 
													
												
											
												
													
														| 
														 | 
														
															-      this.addMessage('login success.') 
														 | 
														
														 | 
														
															 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 
														 | 
														
														 | 
														
															+       
														 | 
													
												
											
												
													
														| 
														 | 
														
															 
														 | 
														
														 | 
														
															+      this.subscription.subId = await new Promise((resolved, reject) => { 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 
														 | 
														
														 | 
														
															+        subject.subscribe({ 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 
														 | 
														
														 | 
														
															+          next: (data) => { 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 
														 | 
														
														 | 
														
															+   
														 | 
													
												
											
												
													
														| 
														 | 
														
															 
														 | 
														
														 | 
														
															+            // when listening display all results  
														 | 
													
												
											
												
													
														| 
														 | 
														
															 
														 | 
														
														 | 
														
															+            if( listening ) { 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 
														 | 
														
														 | 
														
															+              let text = data?.header?.messageName 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 
														 | 
														
														 | 
														
															+              this.subscription.messages.push({ 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 
														 | 
														
														 | 
														
															+                id: Symbol(), 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 
														 | 
														
														 | 
														
															+                text 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 
														 | 
														
														 | 
														
															+              })   
														 | 
													
												
											
												
													
														| 
														 | 
														
															 
														 | 
														
														 | 
														
															+            } else { 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 
														 | 
														
														 | 
														
															+              // detect exception 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 
														 | 
														
														 | 
														
															+              if ( data?.header?.messageType == 'ResponseException') { 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 
														 | 
														
														 | 
														
															+                reject(data?.data) 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 
														 | 
														
														 | 
														
															+              } 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 
														 | 
														
														 | 
														
															+              // detect success subscription 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 
														 | 
														
														 | 
														
															+              const subId = data?.data?.subscriptionId 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 
														 | 
														
														 | 
														
															+              if ( subId ) { 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 
														 | 
														
														 | 
														
															+                listening = true; 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 
														 | 
														
														 | 
														
															+                resolved(subId) 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 
														 | 
														
														 | 
														
															+              } 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 
														 | 
														
														 | 
														
															+              } 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 
														 | 
														
														 | 
														
															+    
														 | 
													
												
											
												
													
														| 
														 | 
														
															 
														 | 
														
														 | 
														
															+            console.info(data) 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 
														 | 
														
														 | 
														
															+          }, 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 
														 | 
														
														 | 
														
															+          complete: () => this.subscription.subId = null 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 
														 | 
														
														 | 
														
															+        }) 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 
														 | 
														
														 | 
														
															+      }) 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 
														 | 
														
														 | 
														
															+      this.addMessage('subscribe to property change success.') 
														 | 
													
												
											
												
													
														| 
														 | 
														
															  
														 | 
														
														 | 
														
															  
														 | 
													
												
											
												
													
														| 
														 | 
														
															     } catch (error) { 
														 | 
														
														 | 
														
															     } catch (error) { 
														 | 
													
												
											
												
													
														| 
														 | 
														
															-      this.addMessage('login fail :' + error) 
														 | 
														
														 | 
														
															 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 
														 | 
														
														 | 
														
															+      this.addMessage('subscribe to property change fail : ' + error) 
														 | 
													
												
											
												
													
														| 
														 | 
														
															     } 
														 | 
														
														 | 
														
															     } 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 
														 | 
														
														 | 
														
															+ 
														 | 
													
												
											
												
													
														| 
														 | 
														
															     this.loading = false 
														 | 
														
														 | 
														
															     this.loading = false 
														 | 
													
												
											
												
													
														| 
														 | 
														
															   } 
														 | 
														
														 | 
														
															   } 
														 | 
													
												
											
												
													
														| 
														 | 
														
															  
														 | 
														
														 | 
														
															  
														 | 
													
												
											
												
													
														| 
														 | 
														
															-  endSession = Trottle(async () => { 
														 | 
														
														 | 
														
															 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 
														 | 
														
														 | 
														
															+  endSubscribePropertyChange = Trottle(async () => { 
														 | 
													
												
											
												
													
														| 
														 | 
														
															     this.loading = true 
														 | 
														
														 | 
														
															     this.loading = true 
														 | 
													
												
											
												
													
														| 
														 | 
														
															     this.addMessage('signing out...') 
														 | 
														
														 | 
														
															     this.addMessage('signing out...') 
														 | 
													
												
											
												
													
														| 
														 | 
														
															  
														 | 
														
														 | 
														
															  
														 |