{"version":3,"file":"app-778f20eb.b149463909b5e91f4e75.bundle.js","mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA;AAGA;AACA;AACA;AAEA;AAAA;AA2BA;AAAA;AAxBA;AACA;AACA;AACA;AACA;AAGA;AAmBA;AACA;AACA;;AACA;AApBA;AAAA;AACA;AAAA;AACA;AACA;AACA;AACA;;;AAAA;AAEA;AAAA;AACA;AAAA;AACA;AACA;AACA;AACA;;;AAAA;AAUA;AAAA;AACA;AAEA;AACA;AACA;AAAA;AAEA;AACA;AACA;AAAA;AAEA;AACA;AACA;AAAA;AAEA;AACA;AACA;AAAA;AAEA;AACA;AACA;AACA;AAEA;AAEA;AAEA;AACA;AAEA;AAEA;AACA;AACA;AACA;AAAA;AACA;AACA;AACA;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAIA;AACA;AAAA;AACA;AACA;AACA;AACA;AAAA;AACA;AACA;AACA;AACA;AACA;AAEA;AACA;AAAA;AACA;AACA;AACA;AACA;AAAA;AACA;AACA;AACA;AACA;AACA;AAEA;AACA;AACA;AAAA;AAGA;AACA;AACA;AACA;AAAA;AACA;AACA;AACA;AACA;AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;ACjIA;AACA;AACA;AAEA;AAAA;AAoBA;AAAA;AAnBA;AACA;AAKA;AAeA;AACA;;AACA;AAdA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAQA;AACA;AAAA;AACA;AACA;AACA;AACA;AAAA;AACA;AACA;AACA;AACA;AACA;AAEA;AACA;AAAA;AACA;AACA;AACA;AACA;AAAA;AACA;AACA;AACA;AACA;AACA;AAGA;AAAA;AACA;AACA;;;AAAA;AAEA;AAEA;AAAA;AAEA;AAEA;AAAA;AAEA;AACA;AAEA;AACA;AACA;AACA;AACA;AACA;AAAA;AACA;AACA;AACA;AACA;AAAA;AAEA;AACA;AACA;AAAA;AAGA;AACA;AACA;AACA;AAAA;AACA;AACA;AACA;AAEA;AACA;AAEA;AACA;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAEA;AACA;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAEA;AACA;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAEA;AAAA;AACA;AACA;;;AAAA;AACA;AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;ACjJA;AACA;AACA;AAEA;AAAA;AASA;AAAA;AAEA;AACA;AACA;;AACA;AAEA;AAAA;AACA;AACA;AACA;AACA;AAEA;AACA;AACA;AACA;AAEA;AAEA;;;AAXA;AAaA;AACA;AACA;AACA;AACA;AAAA;AAEA;AACA;AAAA;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAAA;AAEA;AAEA;AACA;AAEA;AAGA;AACA;AAEA;AAEA;AACA;AACA;AACA;AACA;;AAEA;AAEA;AAEA;AACA;AACA;AAEA;AACA;AAAA;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AAAA;AAEA;AACA;AACA;AAAA;AAEA;AACA;AACA;AAAA;AAEA;AACA;AAEA;AACA;AACA;AACA;AACA;AACA;AAEA;AACA;AAEA;AACA;AAAA;AAEA;AACA;AACA;AACA;AACA;AACA;AAEA;AACA;AACA;AACA;AAAA;AAEA;AACA;AACA;AACA;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAAA;AACA;AACA;AACA;AAEA;AACA;AACA;AACA;AACA;AAEA;AACA;AACA;AAEA;AACA;AACA;AACA;AACA;AACA;AAEA;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAAA;AAEA;AACA;AACA;AAAA;AAEA;AACA;AACA;AAEA;AACA;AACA;AACA;AAAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAEA;AACA;AACA;AACA;AACA;AACA;AAEA;AACA;AACA;AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AC5MA;AACA;AACA;AACA;AAGA;AAAA;AAkBA;AAAA;AAfA;AACA;AAIA;AACA;AACA;AACA;AACA;AAQA;;AACA;AAEA;AACA;AACA;AACA;AAAA;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AAAA;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAAA;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AAAA;AACA;AACA;AACA;AACA;AACA;AACA;AAAA;AAEA;AACA;AAAA;AAEA;AACA;AACA;AACA;AACA;AAEA;AACA;AAAA;AAEA;AACA;AACA;AACA;AAAA;AAEA;AAEA;AAAA;AAEA;AACA;AACA;AAAA;AAEA;AAAA;AACA;AACA;AAEA;AAEA;AAEA;AACA;AACA;AACA;AACA;AAEA;AACA;AACA;AAEA;AACA;AACA;AAEA;AACA;AACA;AAAA;AAEA;AACA;AACA;AAEA;AAEA;AACA;AAEA;AACA;AACA;AA1HA;AADA;;AACA;AA2HA;AAAA;AA3HA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;ACNA;AACA;AACA;AAIA;AAAA;AAgBA;AAAA;AAdA;AAgBA;AACA;AACA;;AACA;AAfA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AASA;AAEA;AAAA;AAEA;AAEA;AAAA;AAEA;AACA;AACA;AAAA;AAEA;AACA;AAAA;AAEA;AACA;AACA;AACA;AAAA;AAEA;AACA;AAAA;AAEA;AACA;AACA;AACA;AACA;AACA;AAAA;AAEA;AAEA;AAAA;AAEA;AAEA;AAAA;AAEA;AACA;AACA;AACA;AAAA;AAEA;AAEA;AAAA;AAIA;AAEA;AAAA;AACA;AACA;AACA;AACA;AAAA;AACA;AACA;AACA;AACA;AACA;AAEA;AACA;AAAA;AACA;AACA;AACA;AACA;AAAA;AACA;AACA;AACA;AACA;AACA;AAEA;AACA;AACA;AAAA;AAGA;AACA;AACA;AACA;AAAA;AACA;AACA;AACA;AACA;AAAA;;;;;;;;;;;;;;;;;;;;ACnHA;AACA;AACA;AAGA;AAAA;AA2lBA;AAxlBA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAEA;AACA;AAAA;AAEA;AACA;AAEA;AACA;AACA;AACA;AAEA;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAAA;AACA;AACA;AACA;AACA;AAEA;AACA;AACA;AACA;AAAA;AACA;AACA;AAEA;AAGA;AACA;AACA;AAEA;AACA;AACA;AAAA;AACA;AACA;AACA;AACA;AACA;AAAA;AACA;AACA;AACA;AACA;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAEA;AACA;AAEA;AACA;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAEA;AACA;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAEA;AACA;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAEA;AACA;AAEA;AACA;AAEA;AACA;AACA;AACA;AAAA;AACA;AACA;AAEA;AACA;AACA;AAEA;AACA;AACA;AACA;AAAA;AACA;AACA;AAEA;AACA;AACA;AACA;AAEA;AACA;AACA;AAEA;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AAEA;AAEA;AACA;AAEA;AACA;AACA;AACA;AAAA;AACA;AACA;AAEA;AACA;AACA;AACA;;AAEA;AAEA;AAEA;AAGA;AACA;AAAA;AACA;AACA;AACA;AACA;AACA;AACA;AAEA;AACA;AACA;AACA;AACA;AAEA;AACA;AACA;AACA;AACA;AAEA;AAEA;AAEA;AACA;AACA;AAAA;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AAAA;AACA;AACA;AACA;;AAEA;AACA;AAEA;AACA;AACA;AAAA;AACA;AACA;AACA;AAEA;AACA;AAEA;AACA;AAEA;AACA;AAEA;AACA;AAEA;AACA;AACA;AAEA;AAEA;AAEA;AACA;AACA;AACA;AAEA;AAEA;AACA;AACA;AACA;AACA;AAAA;AACA;AACA;AACA;AACA;AACA;AACA;AAAA;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AAEA;AAAA;AACA;AACA;AACA;AAEA;AACA;AACA;AAEA;AAAA;AACA;AACA;AACA;AACA;AACA;AAEA;AACA;AACA;AAEA;AAQA;AACA;AAIA;AACA;AACA;AACA;AAEA;AACA;AACA;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAGA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAEA;AAEA;AACA;AAGA;AACA;AACA;AACA;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAEA;AACA;AACA;AACA;AACA;AAGA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAEA;AACA;AACA;AAEA;AACA;AACA;AACA;AAEA;AACA;AACA;AACA;AAGA;AACA;AACA;AACA;AAEA;AACA;AACA;AACA;AAEA;AAEA;AAAA;AACA;AACA;AAEA;AACA;AACA;AAAA;AACA;AAAA;AAEA;AACA;;AAEA;AACA;AAEA;AACA;AACA;AACA;AAEA;AACA;AACA;AAEA;AACA;AACA;AACA;AACA;AAEA;AACA;AACA;AACA;AACA;AAEA;AAYA;AACA;AACA;AACA;AAEA;AACA;AAEA;AACA;AACA;AACA;AACA;AAAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAEA;AACA;AACA;AACA;AACA;AACA;AAAA;AACA;AACA;AAAA;AACA;AACA;AAAA;AACA;AACA;AAAA;AACA;AACA;AACA;AACA;AACA;AACA;AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AC/lBA;AAEA;AACA;AAEA;AAGA;AAAA;AAiBA;AAAA;AAhBA;AACA;AAiBA;AACA;AACA;;AACA;AAfA;AAAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;AANA;AAeA;AACA;AACA;AACA;AACA;AACA;AAEA;AACA;AACA;AACA;AACA;AAEA;AAAA;AACA;AAAA;AACA;AACA;AACA;AACA;;;AAAA;AAEA;AACA;AACA;AAEA;AACA;AACA;AACA;AAEA;AACA;AAEA;AACA;AACA;AAAA;AAEA;AACA;AAAA;AAEA;AACA;AACA;AAAA;AAEA;AAAA;AAAA;AACA;AAEA;AACA;AAEA;AACA;AACA;AAEA;AACA;AACA;AAEA;AACA;AACA;AAEA;AACA;AACA;AACA;AAEA;AACA;AACA;AAAA;AACA;AACA;AACA;AAAA;AAEA;AAAA;AAAA;AACA;AAEA;AACA;AAGA;AAEA;AACA;AACA;AACA;AACA;AAEA;AAEA;AAEA;AAAA;AACA;AACA;AAEA;AAAA;AAEA;AAEA;AACA;AACA;AAAA;AAEA;AACA;AACA;AAAA;AAEA;AAEA;AAAA;AAEA;AAEA;AAAA;AAEA;AACA;AAEA;AACA;AAEA;AACA;AACA;AAEA;AACA;AACA;AACA;AAAA;AAEA;AACA;AACA;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAAA;AACA;AACA;AACA;AACA;AAAA;AACA;AACA;AACA;AACA;AAAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAEA;AACA;AACA;AACA;AACA;AAAA;AACA;AACA;AACA;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAlOA;AADA;;AACA;AAmOA;AAAA;AAnOA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;ACRA;AAEA;AACA;AAEA;AAGA;AAAA;AAkBA;AAAA;AAjBA;AACA;AAkBA;AACA;AACA;;AACA;AAfA;AAAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;AANA;AAeA;AACA;AACA;AACA;AACA;AACA;AAEA;AACA;AACA;AACA;AACA;AAEA;AAAA;AACA;AAAA;AACA;AACA;AACA;AACA;;;AAAA;AAEA;AACA;AACA;AAEA;AACA;AACA;AACA;AAEA;AACA;AAEA;AACA;AACA;AAAA;AAEA;AACA;AAAA;AAEA;AACA;AACA;AAAA;AAEA;AACA;AACA;AACA;AACA;AAAA;AACA;AAEA;AACA;AAEA;AACA;AACA;AAEA;AAEA;AACA;AACA;AACA;AACA;AAEA;AACA;AACA;AAEA;AACA;AACA;AACA;AAEA;AACA;AACA;AAAA;AACA;AACA;AACA;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AAAA;AACA;AACA;AACA;AAAA;AAEA;AACA;AAAA;AACA;AACA;AAEA;AAAA;AACA;AAEA;AACA;AAGA;AAEA;AACA;AACA;AACA;AACA;AAEA;AAEA;AAEA;AACA;AACA;AAEA;AAEA;AAEA;AACA;AACA;AAAA;AAEA;AACA;AACA;AAAA;AAEA;AAEA;AAAA;AAEA;AAEA;AAAA;AAEA;AACA;AAEA;AACA;AAEA;AACA;AACA;AAEA;AACA;AACA;AACA;AAAA;AAEA;AACA;AACA;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAAA;AACA;AACA;AACA;AACA;AAAA;AACA;AACA;AACA;AACA;AAAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAEA;AACA;AACA;AACA;AACA;AAAA;AACA;AACA;AACA;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AA3PA;AADA;;AACA;AA4PA;AAAA;AA5PA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;ACTA;AAGA;AACA;AAAA;AAMA;AAAA;AAqIA;AACA;AACA;AArIA;;AACA;AAEA;AAEA;AAEA;AACA;AACA;AACA;AACA;AAEA;AACA;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AAEA;AACA;AACA;AAEA;AACA;AACA;AACA;AACA;AACA;AAEA;AACA;AACA;AACA;AACA;AAEA;AACA;AACA;AACA;AAEA;AACA;AAEA;AACA;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AAGA;AACA;AACA;AAEA;AAEA;AACA;AAEA;AAEA;AACA;AAAA;AAEA;AACA;AACA;AAAA;AAEA;AACA;AACA;AAEA;AAAA;AAEA;AACA;AACA;AAEA;AACA;AAAA;AAEA;AACA;AACA;AAAA;AAEA;AACA;AACA;AAAA;AAEA;AACA;AAEA;AACA;AAAA;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAAA;AAMA;AACA;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAAA;AAEA;AAEA;AAAA;AAEA;AAEA;AAAA;AAEA;AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;ACzKA;AAGA;AACA;AAAA;AAMA;AAAA;AAqIA;AACA;AACA;AArIA;;AACA;AAEA;AAEA;AAEA;AACA;AACA;AACA;AACA;AAEA;AACA;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AAEA;AACA;AACA;AAEA;AACA;AACA;AACA;AACA;AACA;AAEA;AACA;AACA;AACA;AACA;AAEA;AACA;AACA;AACA;AAEA;AACA;AAEA;AACA;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AAGA;AACA;AACA;AAEA;AAEA;AACA;AAEA;AAEA;AACA;AAAA;AAEA;AACA;AACA;AAAA;AAEA;AACA;AACA;AAEA;AAAA;AAEA;AACA;AACA;AAEA;AACA;AAAA;AAEA;AACA;AACA;AAAA;AAEA;AACA;AACA;AAAA;AAEA;AACA;AAEA;AACA;AAAA;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAAA;AAMA;AACA;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAAA;AAEA;AAEA;AAAA;AAEA;AAEA;AAAA;AAEA;AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;ACzKA;AAKA;AAMA;AAHA;AAIA;AACA;AAEA;AAAA;AACA;AACA;AAEA;AACA;AACA;AAEA;AACA;AAEA;AAEA;AAEA;AAAA;AACA;AACA;AAEA;AACA;AACA;AACA;AAEA;AAAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAAA;AAEA;AAAA;AACA;AACA;AAEA;AACA;AACA;AACA;AACA;AACA;AAAA;AApDA;AAFA;AACA;;AACA;AAqDA;AAAA;AArDA","sources":["webpack://app/./src/Lib/Fs.SmartClient.Client/CommonSearchVMBase.ts","webpack://app/./src/Lib/Fs.SmartClient.Client/DocEditorVMBase.ts","webpack://app/./src/Lib/Fs.SmartClient.Client/DocSearchVMBase.ts","webpack://app/./src/Lib/Fs.SmartClient.Client/EditableContainerBase.ts","webpack://app/./src/Lib/Fs.SmartClient.Client/EditorVMBase.ts","webpack://app/./src/Lib/Fs.SmartClient.Client/FsUtility.ts","webpack://app/./src/Lib/Fs.SmartClient.Client/SearchOnlyVMBase.ts","webpack://app/./src/Lib/Fs.SmartClient.Client/SearchOnlyVMBase2.ts","webpack://app/./src/Lib/Fs.SmartClient.Client/SearchVMBase.ts","webpack://app/./src/Lib/Fs.SmartClient.Client/SearchVMBase2.ts","webpack://app/./src/Lib/Fs.SmartClient.Client/TabViewModel.ts"],"sourcesContent":["import EditableContainerBase from \"Lib/Fs.SmartClient.Client/EditableContainerBase\";\r\nimport SortBy from \"Lib/Fs.Core.Data/SortBy\";\r\nimport PagingCriteria from \"Lib/Fs.Core.Data/PagingCriteria\";\r\nimport SortingCriteria from \"Lib/Fs.Core.Data/SortingCriteria\";\r\nimport { ValidationRules, ValidationController, ValidationControllerFactory, validateTrigger } from \"aurelia-validation\";\r\nimport { useView, autoinject, Container } from 'aurelia-framework'\r\n\r\nexport default class CommonSearchVMBase extends EditableContainerBase {\r\n SortingCriteria: SortingCriteria;\r\n PagingCriteria: PagingCriteria;\r\n ItemCount: number = 0;\r\n PageIndex: number = 0;\r\n PageSize: number = 10;\r\n PageNumberSize: number = 5;\r\n EnablePaging: boolean = true;\r\n GridPageIndexList: string[];\r\n PageNumberIndex: number;\r\n PageNumberList: any[] = [];\r\n\r\n get PageCount() {\r\n if (this.PageSize == 0 || this.ItemCount == 0 || this.PageSize == null) return 0;\r\n var roundingValue = this.ItemCount / this.PageSize;\r\n var roundedValue = Math.round(roundingValue);\r\n return roundingValue > roundedValue ? roundedValue + 1 : roundedValue;\r\n }\r\n\r\n get MaxPageNumbers() {\r\n if (this.PageCount == 0 || this.PageNumberSize == 0 || this.PageNumberSize == null) return 0;\r\n var roundingValue = this.PageCount / this.PageNumberSize;\r\n var roundedValue = Math.round(roundingValue);\r\n return roundingValue > roundedValue ? roundedValue + 1 : roundedValue;\r\n }\r\n\r\n validationController: ValidationController;\r\n constructor() {\r\n super();\r\n this.SortingCriteria = new SortingCriteria();\r\n var validationControllerFactory = Container.instance.get(ValidationControllerFactory);\r\n this.validationController = validationControllerFactory.createForCurrentScope();\r\n }\r\n\r\n Search(isChangePage: boolean = false) {\r\n }\r\n\r\n RemoveItems(items: any[]) {\r\n throw \"This function has not yet been implemented.\";\r\n };\r\n\r\n AddItems(items: any[]) {\r\n throw \"This function has not yet been implemented.\";\r\n };\r\n\r\n AddItem(item: any) {\r\n throw \"This function has not yet been implemented.\";\r\n };\r\n\r\n RemoveItem(item: any) {\r\n throw \"This function has not yet been implemented.\";\r\n };\r\n\r\n PageChanged(currentPage: number) {\r\n this.PageIndex = currentPage;\r\n this.Search(true);\r\n }\r\n\r\n GeneratePageNumberList() {\r\n\r\n var pageNumber = Math.floor(this.PageIndex / this.PageNumberSize);\r\n\r\n this.PageNumberList = [];\r\n this.PageNumberIndex = pageNumber;\r\n\r\n let pageGeneratedCount = this.PageNumberSize;\r\n\r\n if ((this.PageNumberIndex + 1) >= this.MaxPageNumbers) {\r\n if (this.PageCount == 0) {\r\n pageGeneratedCount = 1;\r\n } else {\r\n pageGeneratedCount = this.PageCount % this.PageNumberSize == 0 ? this.PageNumberSize : this.PageCount % this.PageNumberSize;\r\n }\r\n }\r\n\r\n for (let i = 0; i < pageGeneratedCount; i++) {\r\n var pageIndex = (this.PageNumberIndex * this.PageNumberSize) + i;\r\n this.PageNumberList.push({\r\n PageIndex: pageIndex,\r\n DisplayPage: pageIndex + 1\r\n });\r\n }\r\n }\r\n\r\n validateErrors: any[];\r\n\r\n getValidateErrors(key: string) {\r\n if (this.validationController.errors.length == 0) return []\r\n var filter = this.validationController.errors.filter(function (t) {\r\n return t.propertyName === key;\r\n });\r\n if (filter.length == 0) return [];\r\n var map = filter.map(function (t) {\r\n return t.message;\r\n });\r\n return map;\r\n }\r\n\r\n getDisplayNameValidateErrors(key: string) {\r\n if (this.validationController.errors.length == 0) return []\r\n var filter = this.validationController.errors.filter(function (t) {\r\n return t.rule.property.displayName === key;\r\n });\r\n if (filter.length == 0) return [];\r\n var map = filter.map(function (t) {\r\n return t.message;\r\n });\r\n return map;\r\n }\r\n\r\n ValidateData() {\r\n this.validationController.validate({ object: this });\r\n };\r\n\r\n\r\n Validate() {\r\n if (this.validationController.errors.length > 0) {\r\n return false;\r\n } else {\r\n return true;\r\n }\r\n }\r\n}\n","import TabViewModel from \"Lib/Fs.SmartClient.Client/TabViewModel\";\r\nimport { ValidationRules, ValidationController, ValidationControllerFactory, validateTrigger } from \"aurelia-validation\";\r\nimport { useView, autoinject, inject, Container } from 'aurelia-framework'\r\n\r\nexport default class DocEditorVMBase extends TabViewModel {\r\n IsEditing: boolean = false;\r\n IsItemEditing: boolean = false;\r\n Parent: any;\r\n IsAdding: boolean;\r\n ErrorList: string[];\r\n OriginalSource: any;\r\n HasOriginalSource: boolean = false;\r\n validationController: ValidationController;\r\n\r\n SetOriginalSource(originalSource: any, isAdding: boolean) {\r\n if (originalSource == null)\r\n this.HasOriginalSource = false;\r\n else {\r\n this.OriginalSource = originalSource;\r\n this.HasOriginalSource = true;\r\n this.LoadOriginalSource(originalSource, isAdding);\r\n }\r\n }\r\n \r\n constructor() {\r\n super();\r\n var validationControllerFactory = Container.instance.get(ValidationControllerFactory);\r\n this.validationController = validationControllerFactory.createForCurrentScope();\r\n }\r\n\r\n getValidateErrors(key: string) {\r\n if (this.validationController.errors.length == 0) return []\r\n var filter = this.validationController.errors.filter(function (t) {\r\n return t.propertyName === key;\r\n });\r\n if (filter.length == 0) return [];\r\n var map = filter.map(function (t) {\r\n return t.message;\r\n });\r\n return map;\r\n }\r\n\r\n getDisplayNameValidateErrors(key: string) {\r\n if (this.validationController.errors.length == 0) return []\r\n var filter = this.validationController.errors.filter(function (t) {\r\n return t.rule.property.displayName === key;\r\n });\r\n if (filter.length == 0) return [];\r\n var map = filter.map(function (t) {\r\n return t.message;\r\n });\r\n return map;\r\n }\r\n\r\n IsSelectedItem: boolean;\r\n get IsShowInput() {\r\n return this.IsEditing && this.IsSelectedItem;\r\n }\r\n\r\n SaveOriginalSource(originalSource: any) {\r\n\r\n };\r\n\r\n LoadOriginalSource(originalSource: any, isAdding: boolean) {\r\n\r\n };\r\n\r\n BeginEdit() {\r\n this.IsEditing = true;\r\n\r\n var keys = Object.keys(this.ChildNodeGroups);\r\n for (var index = 0; index < keys.length; index++) {\r\n var childNodes = this.ChildNodeGroups[keys[index]];\r\n for (var c_index = 0; c_index < childNodes.length; c_index++) {\r\n var child = childNodes[c_index];\r\n if (child == null) continue;\r\n child.BeginEdit();\r\n }\r\n }\r\n };\r\n\r\n ValidateData() {\r\n this.validationController.validate({ object: this });\r\n };\r\n\r\n\r\n Validate() {\r\n if (this.validationController.errors.length > 0) {\r\n return false;\r\n } else {\r\n return true;\r\n }\r\n }\r\n\r\n CancelEdit() {\r\n this.IsEditing = false;\r\n\r\n if (this.HasOriginalSource)\r\n this.LoadOriginalSource(this.OriginalSource, false);\r\n\r\n var childNodes = this.GetChildNode();\r\n if (childNodes == null || childNodes == 'undefined') {\r\n childNodes = [];\r\n }\r\n for (var index = 0; index < childNodes.length; index++) {\r\n var editor = childNodes[index];\r\n if (editor.CancelEdit != null)\r\n editor.CancelEdit();\r\n }\r\n }\r\n\r\n EndEdit() {\r\n this.IsEditing = false;\r\n \r\n var childNodes = this.GetChildNode();\r\n if (childNodes == null || childNodes == 'undefined') {\r\n childNodes = [];\r\n }\r\n for (var index = 0; index < childNodes.length; index++) {\r\n var editor = childNodes[index];\r\n if (editor.EndEdit != null)\r\n editor.EndEdit();\r\n }\r\n }\r\n\r\n EndItemEdit() {\r\n this.IsItemEditing = false;\r\n\r\n var temp = new Object();\r\n this.SaveOriginalSource(temp);\r\n this.SetOriginalSource(temp, !this.HasOriginalSource);\r\n var childNodes = this.GetChildNode();\r\n if (childNodes == null || childNodes == 'undefined') {\r\n childNodes = [];\r\n }\r\n for (var index = 0; index < childNodes.length; index++) {\r\n var editor = childNodes[index];\r\n if (editor.EndEdit != null)\r\n editor.EndEdit();\r\n }\r\n }\r\n\r\n get errorLength() {\r\n return this.validationController.errors.length;\r\n }\r\n}\n","import DocEditorVMBase from \"Lib/Fs.SmartClient.Client/DocEditorVMBase\";\r\nimport { useView, autoinject, inject, Container } from 'aurelia-framework'\r\nimport FsUtility from \"./FsUtility\";\r\n\r\nexport default class DocSearchVMBase extends DocEditorVMBase {\r\n ItemType: new () => T;\r\n PageSize: number;\r\n PageIndex: number;\r\n EnablePaging: boolean;\r\n SearchResultCollectionView: T[];\r\n SelectedItems: T[];\r\n currentItem: T;\r\n \r\n constructor(type: { new(): T; }) {\r\n super();\r\n this.ItemType = type;\r\n this.SelectedItems = [];\r\n this.SearchResultCollectionView = [];\r\n }\r\n\r\n get CurrentItem() {\r\n return this.currentItem;\r\n }\r\n set CurrentItem(value: T) {\r\n this.OnCurrentChanging(this, null);\r\n\r\n var newSelectedEditorVM = value;\r\n if (newSelectedEditorVM != null)\r\n newSelectedEditorVM.IsSelectedItem = true;\r\n this.currentItem = newSelectedEditorVM;\r\n\r\n this.OnCurrentChanged(this, null);\r\n \r\n }\r\n\r\n OnCurrentChanging(sender, e) {\r\n var oldSelectedEditorVM = this.currentItem;\r\n if (oldSelectedEditorVM != null)\r\n oldSelectedEditorVM.IsSelectedItem = false;\r\n };\r\n\r\n OnCurrentChanged(sender, e) {\r\n };\r\n\r\n SaveOriginalSource(originalSource: any[]) {\r\n for (var index = 0; index < this.SearchResultCollectionView.length; index++) {\r\n var item = this.SearchResultCollectionView[index];\r\n var o = {};\r\n item.SaveOriginalSource(o);\r\n originalSource.push(o);\r\n }\r\n };\r\n\r\n LoadOriginalSource(originalSource: any, isAdding: boolean) {\r\n\r\n if (isAdding == null)\r\n isAdding = false;\r\n\r\n this.SearchResultCollectionView = [];\r\n //this.ClearChildNode();\r\n\r\n if (originalSource == null)\r\n return;\r\n\r\n var list = [];\r\n\r\n for (var index = 0; index < originalSource.length; index++) {\r\n var item = originalSource[index];\r\n var editorVM = new this.ItemType;\r\n if (isAdding)\r\n this.InitializeAddingItem(editorVM);\r\n else\r\n this.InitializeLoadingItem(editorVM);\r\n \r\n editorVM.SetOriginalSource(item, isAdding);\r\n\r\n list.push(editorVM);\r\n this.AddChildNode(editorVM);\r\n }\r\n\r\n this.SearchResultCollectionView = list;\r\n };\r\n\r\n BeginEdit() {\r\n this.IsEditing = true;\r\n for (var index = 0; index < this.SearchResultCollectionView.length; index++) {\r\n var item = this.SearchResultCollectionView[index];\r\n item.BeginEdit();\r\n }\r\n };\r\n\r\n InitializeAddingItem(editorVM: T) {\r\n editorVM.IsAdding = true;\r\n };\r\n\r\n InitializeLoadingItem(editorVM: T) {\r\n editorVM.IsAdding = false;\r\n };\r\n\r\n CreateNewItem(originalSource: any) {\r\n var item = new this.ItemType;\r\n\r\n this.AddItem(item);\r\n this.SelectNewItem(item);\r\n this.InitializeAddingItem(item);\r\n if (originalSource != null && originalSource != this)\r\n item.LoadOriginalSource(originalSource, true);\r\n this.AddChildNode(item);\r\n\r\n item.BeginEdit();\r\n item.IsItemEditing = true;\r\n\r\n return item;\r\n };\r\n\r\n CreateNewItems(originalSource: any) {\r\n for (var index = 0; index < originalSource.length; index++) {\r\n var item = originalSource[index];\r\n var editorVM = Container.instance.get(this.ItemType);\r\n this.InitializeLoadingItem(editorVM);\r\n editorVM.LoadOriginalSource(item);\r\n\r\n this.AddChildNode(editorVM);\r\n this.SearchResultCollectionView.unshift(editorVM);\r\n }\r\n };\r\n\r\n BeginEditCommand(vm: T) {\r\n vm.BeginEdit();\r\n vm.IsItemEditing = true;\r\n }\r\n\r\n EndEditCommand(vm: T, cancel: boolean) {\r\n if (cancel == false) {\r\n vm.validationController.validate({ object: vm }).then(result => {\r\n if (result.valid) {\r\n vm.EndItemEdit();\r\n vm.IsAdding = false;\r\n }\r\n });\r\n } else {\r\n vm.IsItemEditing = false;\r\n if (vm.HasOriginalSource)\r\n vm.LoadOriginalSource(vm.OriginalSource, false);\r\n\r\n if (!vm.HasOriginalSource) {\r\n this.RemoveItem(vm);\r\n }\r\n }\r\n }\r\n\r\n RemoveCommand(editorVM: T) {\r\n var searchVM = this;\r\n var self = this;\r\n\r\n FsUtility.AlertModal(\"Are you sure to delete ?\", 3, 3, function (result) {\r\n if (result == true) {\r\n searchVM.RemoveItem(editorVM);\r\n searchVM.RemoveChildNode(editorVM);\r\n }\r\n });\r\n\r\n }\r\n\r\n RemoveItem(item: T) {\r\n this.CurrentItem = null;\r\n for (var i = 0; i < this.SearchResultCollectionView.length; i++) {\r\n if (this.SearchResultCollectionView[i] === item) {\r\n this.SearchResultCollectionView.splice(i, 1);\r\n }\r\n }\r\n };\r\n\r\n AddItem(item: T) {\r\n this.SearchResultCollectionView.push(item);\r\n };\r\n\r\n SelectNewItem(editorVM: T) {\r\n this.CurrentItem = editorVM;\r\n }\r\n\r\n SelectChanged(editorVM: T, isChecked: boolean) {\r\n if (isChecked) {\r\n this.SelectedItems.push(editorVM);\r\n } else {\r\n for (var i = 0; i < this.SelectedItems.length; i++) {\r\n if (this.SelectedItems[i] === editorVM) {\r\n this.SelectedItems.splice(i, 1);\r\n }\r\n }\r\n }\r\n }\r\n Validate() {\r\n super.ValidateData();\r\n\r\n var valid = super.Validate();\r\n for (var i = 0; i < this.SearchResultCollectionView.length; i++) {\r\n var editorVM = this.SearchResultCollectionView[i];\r\n editorVM.ValidateData()\r\n valid = valid && editorVM.Validate();\r\n }\r\n\r\n return valid;\r\n }\r\n}\n","import TabViewModel from \"Lib/Fs.SmartClient.Client/TabViewModel\";\r\nimport { computedFrom, autoinject } from 'aurelia-framework';\r\nimport { BindingEngine } from 'aurelia-binding';\r\nimport { Container } from 'aurelia-framework';\r\n\r\n@autoinject\r\nexport default class EditableContainerBase extends TabViewModel {\r\n\r\n Parent: EditableContainerBase;\r\n IsFullLoad: boolean = false;\r\n IsEditing: boolean = false;\r\n bindingEngine: BindingEngine;\r\n ErrorList: string[];\r\n \r\n HasEditingChilds: boolean = false;\r\n AllowDelete: boolean = true;\r\n CanDeleteItem: boolean = false;\r\n AllowEdit: boolean = false;\r\n CanEdit: boolean = false;\r\n \r\n CanEditSubscribe: any;\r\n HasEditingChildsSubscribe: any;\r\n Id: string;\r\n\r\n constructor() {\r\n super();\r\n this.bindingEngine = Container.instance.get(BindingEngine);\r\n }\r\n\r\n SetIsEditing(isEditing: boolean) {\r\n this.IsEditing = isEditing;\r\n this.CalculateHasEditingChilds();\r\n };\r\n\r\n CalculateCanEdit() {\r\n if (!this.AllowEdit)\r\n this.CanEdit = false;\r\n else if (this.Parent != null)\r\n this.CanEdit = this.Parent.CanEdit;\r\n else\r\n this.CanEdit = this.AllowEdit;\r\n };\r\n\r\n CalculateHasEditingChilds() {\r\n if (this.IsEditing) {\r\n this.HasEditingChilds = true;\r\n }\r\n else {\r\n this.HasEditingChilds = this.CheckEditingChilds();\r\n }\r\n };\r\n\r\n CheckEditingChilds() {\r\n var keys = Object.keys(this.ChildNodeGroups);\r\n for (var index = 0; index < keys.length; index++) {\r\n var childNodes = this.ChildNodeGroups[keys[index]];\r\n for (var c_index = 0; c_index < childNodes.length; c_index++) {\r\n var child = childNodes[c_index];\r\n if (child == null) continue;\r\n if (child.HasEditingChilds != null && child.HasEditingChilds)\r\n return true;\r\n }\r\n }\r\n return false;\r\n };\r\n\r\n PrepareChildVMs() {\r\n };\r\n\r\n FullLoad() {\r\n this.ClearChildNode();\r\n this.PrepareChildVMs();\r\n if (this.ChildVMsPreparing != null)\r\n this.ChildVMsPreparing(this, null);\r\n\r\n this.IsFullLoad = true;\r\n };\r\n\r\n Activate() {\r\n if (!this.IsFullLoad)\r\n this.FullLoad();\r\n };\r\n\r\n ChildVMsPreparing(sender, e) {\r\n\r\n };\r\n\r\n OnParentPropertyChanged(args) {\r\n this.CalculateCanEdit();\r\n };\r\n\r\n AddChildNode(node, groupName = null) {\r\n if (groupName == null)\r\n groupName = \"default\";\r\n\r\n super.AddChildNode(node, groupName);\r\n\r\n var self = this;\r\n\r\n node.HasEditingChildsSubscribe = this.bindingEngine.propertyObserver(node, 'HasEditingChilds')\r\n .subscribe((newValue, oldValue) => {\r\n self.CalculateHasEditingChilds();\r\n self.CanDeleteItem = !self.HasEditingChilds;\r\n });\r\n\r\n node.CanEditSubscribe = this.bindingEngine.propertyObserver(node, 'CanEdit')\r\n .subscribe((newValue, oldValue) => {\r\n });\r\n\r\n node.Parent = self;\r\n self.CanEditSubscribe = this.bindingEngine.propertyObserver(this, 'CanEdit')\r\n .subscribe(node.OnParentPropertyChanged);\r\n\r\n if (node.CalculateCanEdit)\r\n node.CalculateCanEdit();\r\n };\r\n\r\n RemoveChildNode(node, groupName) {\r\n if (groupName == null)\r\n groupName = \"default\";\r\n\r\n super.RemoveChildNode(node);\r\n\r\n if (node.HasEditingChildsSubscribe != null)\r\n node.HasEditingChildsSubscribe.dispose();\r\n\r\n if (node.CanEditSubscribe != null)\r\n node.CanEditSubscribe.dispose();\r\n }\r\n}","import EditableContainerBase from \"Lib/Fs.SmartClient.Client/EditableContainerBase\";\r\nimport { ValidationRules, ValidationController, ValidationControllerFactory, validateTrigger } from \"aurelia-validation\";\r\nimport { useView, autoinject, Container } from 'aurelia-framework'\r\nimport SearchVMBase from \"Lib/Fs.SmartClient.Client/SearchVMBase\";\r\nimport CommonSearchVMBase from \"./CommonSearchVMBase\";\r\n\r\nexport default class EditorVMBase extends EditableContainerBase {\r\n index:number;\r\n HasOriginalSource: boolean = false;\r\n OriginalSource: any;\r\n\r\n validationController: ValidationController;\r\n SetOriginalSource(originalSource) {\r\n if (originalSource == null)\r\n this.HasOriginalSource = false;\r\n else {\r\n this.OriginalSource = originalSource;\r\n this.HasOriginalSource = true;\r\n this.LoadOriginalSource(originalSource);\r\n }\r\n }\r\n\r\n constructor() {\r\n super();\r\n var self = this;\r\n var validationControllerFactory = Container.instance.get(ValidationControllerFactory);\r\n this.validationController = validationControllerFactory.createForCurrentScope();\r\n }\r\n\r\n Save(doneCallback: () => void, failCallback: (error: any) => void) {\r\n\r\n };\r\n\r\n Remove(searchVM: CommonSearchVMBase, doneCallback: () => void) {\r\n\r\n };\r\n\r\n BeginEdit() {\r\n this.SetIsEditing(true);\r\n };\r\n\r\n CancelEdit() {\r\n if (!this.IsEditing) return;\r\n\r\n this.SetIsEditing(false);\r\n if (this.HasOriginalSource)\r\n this.LoadOriginalSource(this.OriginalSource);\r\n };\r\n\r\n EndEdit() {\r\n if (!this.IsEditing) return;\r\n\r\n this.SetIsEditing(false);\r\n var temp = new Object();\r\n this.SaveOriginalSource(temp);\r\n this.SetOriginalSource(temp);\r\n this.FullLoad();\r\n };\r\n\r\n LoadOriginalSource(originalSource: any) {\r\n\r\n };\r\n\r\n SaveOriginalSource(originalSource: any) {\r\n\r\n };\r\n\r\n FullLoad() {\r\n if (this.HasOriginalSource)\r\n super.FullLoad();\r\n };\r\n\r\n Load(id: string) {\r\n\r\n };\r\n\r\n validateErrors: any[];\r\n\r\n getValidateErrors(key: string) {\n \r\n if (this.validationController.errors.length == 0) return []\r\n var filter = this.validationController.errors.filter(function (t) {\r\n return t.propertyName === key;\r\n });\r\n if (filter.length == 0) return [];\r\n var map = filter.map(function (t) {\r\n return t.message;\r\n });\r\n return map;\r\n }\r\n\r\n getDisplayNameValidateErrors(key: string) {\r\n if (this.validationController.errors.length == 0) return []\r\n var filter = this.validationController.errors.filter(function (t) {\r\n return t.rule.property.displayName === key;\r\n });\r\n if (filter.length == 0) return [];\r\n var map = filter.map(function (t) {\r\n return t.message;\r\n });\r\n return map;\r\n }\r\n\r\n ValidateData() {\r\n this.validationController.validate({ object: this });\r\n };\r\n\r\n\r\n Validate() {\r\n if (this.validationController.errors.length > 0) {\r\n return false;\r\n } else {\r\n return true;\r\n }\r\n }\r\n}\n","import { fs } from \"Config/FsConfig\";\r\nimport { autoinject, Container } from 'aurelia-framework';\r\nimport { OpenIdConnect, OpenIdConnectRoles } from \"aurelia-open-id-connect\";\r\n\r\n\r\nexport default class FsUtility {\r\n\r\n\r\n static SortObject(data, key) {\r\n var result = data.sort((a, b) => {\r\n var nameA = a[key].toLowerCase(), nameB = b[key].toLowerCase()\r\n if (nameA < nameB)\r\n return -1\r\n if (nameA > nameB)\r\n return 1\r\n return 0\r\n })\r\n return result;\r\n }\r\n\r\n static GetDisplayYear(year) {\r\n if (year == null) return;\r\n\r\n return year + fs.Config.YearOffset;\r\n }\r\n\r\n static ParseDate(value, format) {\r\n if (value == null || value == \"\" || typeof value == \"undefined\") {\r\n return null;\r\n }\r\n\r\n var dt;\r\n\r\n if (value instanceof Date) {\r\n dt = new Date(value.getTime());\r\n }\r\n else if (value.indexOf(\"/Date(\") == 0) {\r\n var pattern = /Date\\(([^)]+)\\)/;\r\n var results = pattern.exec(value);\r\n dt = new Date(parseFloat(results[1]));\r\n } else {\r\n value = value + \"\";\r\n var cut_pos = value.lastIndexOf(\".\") == -1 ? value.length : value.lastIndexOf(\".\");\r\n var offset_plus_pos = value.lastIndexOf(\"+\");\r\n var offset_minus_pos = value.lastIndexOf(\"-\");\r\n\r\n var offset = \"\";\r\n if (offset_plus_pos != -1 && offset_plus_pos > cut_pos) {\r\n offset = value.substring(offset_plus_pos);\r\n } else if (offset_minus_pos != -1 && offset_minus_pos > cut_pos) {\r\n offset = value.substring(offset_minus_pos);\r\n }\r\n\r\n value = value.substring(0, cut_pos) + offset;\r\n //value = value.replace(/T/gi, \" \");\r\n //value = value.replace(/-/gi, \"/\");\r\n dt = new Date();\r\n dt.setTime(Date.parse(value));\r\n }\r\n\r\n if (format == 1) { //dd mm yyyy\r\n return this.GetDateFormat1(dt);\r\n } else if (format == 2) {\r\n return this.GetDateFormat2(dt);\r\n }\r\n else if (format == 3) {\r\n return this.GetDateFormat3(dt);\r\n } else if (format == 4) {\r\n return this.GetDateFormat4(dt);\r\n }\r\n return dt;\r\n }\r\n\r\n static GetDateFormat1(dateobject: Date) {\r\n if (dateobject == null || typeof dateobject == 'undefined')\r\n var date = new Date();\r\n else {\r\n var date = dateobject;\r\n if (date == null)\r\n return null;\r\n }\r\n\r\n var day = date.getDate();\r\n var dayString = day.toString();\r\n if (day < 10)\r\n dayString = '0' + day;\r\n var month = date.getMonth() + 1;\r\n var monthString = month.toString();\r\n if (month < 10)\r\n monthString = '0' + month;\r\n var year = date.getFullYear();\r\n\r\n if (fs.Config.YearOffset != null)\r\n year = this.GetDisplayYear(year);\r\n\r\n return dayString + '/' + monthString + '/' + year;\r\n }\r\n\r\n static GetDateFormat2(dateobject: Date) {\r\n if (dateobject == null || typeof dateobject == 'undefined')\r\n var date = new Date();\r\n else {\r\n var date = dateobject;\r\n if (date == null)\r\n return null;\r\n }\r\n\r\n var day = date.getDate();\r\n var dayString = day.toString();\r\n if (day < 10)\r\n dayString = '0' + day;\r\n var month = date.getMonth() + 1;\r\n var monthString = month.toString();\r\n if (month < 10)\r\n monthString = '0' + month;\r\n var year = date.getFullYear();\r\n if (fs.Config.YearOffset != null)\r\n year = this.GetDisplayYear(year);\r\n\r\n var hour = date.getHours();\r\n var hourString = hour.toString();\r\n if (hour < 10)\r\n hourString = '0' + hour;\r\n var minute = date.getMinutes();\r\n var minuteString = minute.toString();\r\n if (minute < 10)\r\n minuteString = '0' + minute;\r\n var second = date.getSeconds();\r\n var secondString = second.toString();\r\n if (second < 10)\r\n secondString = '0' + second;\r\n\r\n return dayString + '/' + monthString + '/' + year + ' ' + hourString + ':' + minuteString;\r\n }\r\n\r\n static GetDateFormat3(dateobject: Date) {\r\n if (dateobject == null || typeof dateobject == 'undefined')\r\n var date = new Date();\r\n else {\r\n var date = dateobject;\r\n if (date == null)\r\n return null;\r\n }\r\n\r\n var day = date.getDate();\r\n var dayString = day.toString();\r\n if (day < 10)\r\n dayString = '0' + day;\r\n var month = date.getMonth() + 1;\r\n var monthString = month.toString();\r\n if (month < 10)\r\n monthString = '0' + month;\r\n var year = date.getFullYear();\r\n var hour = date.getHours()\r\n var hourString = hour.toString();\r\n if (hour < 10)\r\n hourString = '0' + hour;\r\n var minute = date.getMinutes();\r\n var minuteString = minute.toString();\r\n if (minute < 10)\r\n minuteString = '0' + minute;\r\n var second = date.getSeconds();\r\n var secondString = second.toString();\r\n if (second < 10)\r\n secondString = '0' + second;\r\n\r\n return dayString + '/' + monthString + '/' + year + ' ' + hourString + ':' + minuteString + \":\" + secondString;\r\n }\r\n\r\n static GetDateFormat4(dateobject: Date) {\r\n if (dateobject == null || typeof dateobject == 'undefined')\r\n var date = new Date();\r\n else {\r\n var date = dateobject;\r\n if (date == null)\r\n return null;\r\n }\r\n\r\n var day = date.getDate();\r\n var dayString = day.toString();\r\n if (day < 10)\r\n dayString = '0' + day;\r\n var month = date.getMonth() + 1;\r\n var monthString = month.toString();\r\n if (month < 10)\r\n monthString = '0' + month;\r\n var year = date.getFullYear();\r\n\r\n if (fs.Config.YearOffset != null)\r\n year = this.GetDisplayYear(year);\r\n\r\n return dayString + '-' + monthString + '-' + year;\r\n }\r\n\r\n static CreateDateObject(datestring) {\r\n if (datestring instanceof Date) {\r\n return datestring;\r\n } else if (datestring == null || datestring == \"\" || typeof datestring == \"undefined\") {\r\n return null;\r\n }\r\n\r\n var splitDate = datestring.split(\"/\");\r\n return new Date(splitDate[2], splitDate[1] - 1, splitDate[0]);\r\n }\r\n\r\n static CreateDateTimeObject(datestring) {\r\n if (datestring instanceof Date) {\r\n return datestring;\r\n } else if (datestring == null || datestring == \"\" || typeof datestring == \"undefined\") {\r\n return null;\r\n }\r\n\r\n var splitDate = datestring.split(\" \")[0].split(\"/\");\r\n var splitTime = datestring.split(\" \")[1].split(\":\");\r\n return new Date(splitDate[2], splitDate[1] - 1, splitDate[0], splitTime[0], splitTime[1]);\r\n }\r\n\r\n static ToJsonDate(date): any {\r\n if (date == null || date == \"\" || typeof date == \"undefined\")\r\n return null;\r\n\r\n var dateObject = this.CreateDateObject(date);\r\n\r\n var timeOffset = dateObject.getTimezoneOffset() / 60;\r\n var sign;\r\n if (timeOffset > 0)\r\n sign = \"-\";\r\n else if (timeOffset < 0)\r\n sign = \"+\";\r\n else\r\n return '\\/Date(' + dateObject.getTime() + ')\\/';\r\n\r\n timeOffset = Math.abs(timeOffset);\r\n\r\n var floor = Math.floor(timeOffset);\r\n var point = timeOffset - floor;\r\n\r\n var front = \"\";\r\n if (floor < 10) {\r\n front = \"0\" + floor.toString();\r\n } else {\r\n front = floor.toString();\r\n }\r\n\r\n var back = \"\";\r\n point = Math.floor(point * 100);\r\n if (point < 10)\r\n back = \"0\" + point.toString();\r\n else\r\n back = point.toString();\r\n\r\n return '\\/Date(' + dateObject.getTime() + sign + front + back + ')\\/';\r\n\r\n }\r\n\r\n // return a parameter value from the current URL\r\n static GetParam(name, url) {\r\n if (!url) url = location.href;\r\n name = name.replace(/[\\[]/, \"\\\\\\[\").replace(/[\\]]/, \"\\\\\\]\");\r\n var regexS = \"[\\\\?&]\" + name + \"=([^&#]*)\";\r\n var regex = new RegExp(regexS);\r\n var results = regex.exec(url);\r\n return results == null ? \"\" : results[1];\r\n }\r\n\r\n static ConvertTagToString(tag) {\r\n if (typeof tag == 'undefined' || tag == null)\r\n return null;\r\n return tag.replace(\"<\", \"<\").replace(\">\", \">\");\r\n }\r\n\r\n static ConvertStringToTag(str) {\r\n if (typeof str == 'undefined' || str == null)\r\n return null;\r\n return str.replace(\"<\", \"<\").replace(\">\", \">\");\r\n }\r\n\r\n static GetErrorMessageFromResponse(error, isShowErrorTime) {\r\n\r\n var errMsg = null;\r\n\r\n if (typeof error == \"string\") {\r\n errMsg = error;\r\n } else {\r\n\r\n if (error.responseText != null && error.responseText != \"\") {\r\n try {\r\n var err = JSON.parse(error.responseText);\r\n if (err != null && err.Message) {\r\n errMsg = err.Message;\r\n }\r\n } catch (err) { }\r\n }\r\n if (error.status != 0)\r\n errMsg = error.responseText;\r\n else\r\n errMsg = error.statusText;\r\n }\r\n\r\n if (isShowErrorTime == true) {\r\n return \"[ \" + this.GetDateFormat2(new Date()) + \" ] : \" + errMsg;\r\n } else {\r\n return errMsg;\r\n }\r\n }\r\n\r\n static AlertErrorMessage(error) {\r\n var errMsg = this.GetErrorMessageFromResponse(error, true);\r\n\r\n this.AlertModal(errMsg, 1, 2);\r\n }\r\n\r\n static AlertErrorMessageCustomTitle(title, error) {\r\n var errMsg = this.GetErrorMessageFromResponse(error, true);\r\n\r\n this.AlertModalCustomTitle(title, errMsg, 1, 2, null);\r\n }\r\n\r\n static CommonErrorHandler(error) {\r\n if (error.status == 401) {\r\n localStorage.setItem(\"callbackLink\", window.location.href);\r\n\r\n var openIdConnect = Container.instance.get(OpenIdConnect);\r\n\r\n var ts = Math.round((new Date()).getTime() / 1000);\r\n\r\n var enableManualCheckSession = false;\r\n if (fs.Config.EnableManualCheckSession)\r\n enableManualCheckSession = fs.Config.EnableManualCheckSession;\r\n if (enableManualCheckSession) {\r\n\r\n var expireTime = Number.parseInt(localStorage.getItem(\"UserExpireTime\"));\r\n\r\n openIdConnect.userManager.clearStaleState().then(() => {\r\n console.log('clearState success');\r\n if ((expireTime - ts) < 0) {\r\n openIdConnect.userManager.signinRedirect({ prompt: \"login\" });\r\n } else {\r\n openIdConnect.login();\r\n }\r\n }).catch((e) => {\r\n console.log('clearStateState error', e.message);\r\n });\r\n } else {\r\n\r\n openIdConnect.userManager.clearStaleState().then(() => {\r\n console.log('clearState success');\r\n openIdConnect.login();\r\n }).catch((e) => {\r\n console.log('clearStateState error', e.message);\r\n });\r\n }\r\n //window.location.href = fs.Config.LoginPageUrl;\r\n } else {\r\n FsUtility.AlertErrorMessage(error);\r\n }\r\n }\r\n\r\n static GetConstructorName(vm) {\r\n return (/function\\s+([^\\s(]+)\\s*\\(/).exec(vm.constructor.toString())[1];\r\n }\r\n\r\n static TemplateSelector(mapping) {\r\n return (vm) => {\r\n var constructorName = this.GetConstructorName(vm);\r\n return mapping[constructorName];\r\n };\r\n }\r\n\r\n static FormatMoney(amount, c, d, t) {\r\n if (amount == null)\r\n return null;\r\n\r\n var n = amount,\r\n c = isNaN(c = Math.abs(c)) ? 2 : c,\r\n d = d == undefined ? \".\" : d,\r\n t = t == undefined ? \",\" : t,\r\n s = n < 0 ? \"-\" : \"\",\r\n i = parseInt(n = Math.abs(+n || 0).toFixed(c)) + \"\",\r\n i2 = parseInt(i),\r\n j = (j = i.length) > 3 ? j % 3 : 0;\r\n return s + (j ? i.substr(0, j) + t : \"\") + i.substr(j).replace(/(\\d{3})(?=\\d)/g, \"$1\" + t) + (c ? d + Math.abs(n - i2).toFixed(c).slice(2) : \"\");\r\n }\r\n\r\n // mode : save = 1, update = 2, delete = 3\r\n // event: success = 1, error = 2, question = 3, info = 4\r\n static AlertModalCustomTitle(title, message, mode, event, callback) {\n var self = this;\r\n $(\"#myModal\").remove();\r\n $('.modal-backdrop').remove();\r\n // Save / Update\r\n var OklBtn = \"\";\r\n var YeslBtn = \"\";\r\n var NolBtn = \"\";\r\n // Delete\r\n var ConfirmBtn = \"\";\r\n var CancelBtn = \"\";\r\n var Btns = OklBtn;\r\n if (mode == '3') {\r\n Btns = ConfirmBtn + CancelBtn;\r\n }\r\n if (mode == 4)\r\n Btns = YeslBtn + NolBtn;\r\n\r\n // For GoToinbox\r\n var GotoInboxBtn = \"\";\r\n var ViewRequestBtn = \"\";\r\n var GotoInboxBtn2 = \"\";\r\n var ViewRequestBtn2 = \"\";\r\n var CreatRequestBtn = \"\";\r\n if (mode == 5)\r\n Btns = GotoInboxBtn + ViewRequestBtn;\r\n if (mode == '6') {\r\n Btns = GotoInboxBtn2 + ViewRequestBtn2 + CreatRequestBtn;\r\n }\r\n\r\n var modelTemplate =\r\n \"
\" +\r\n \"
\" +\r\n \"
\";\r\n\r\n //Header\r\n if (event != null) {\r\n var eventClass = \"\";\r\n var background = \"\";\r\n var backgroundClass = \"\";\r\n\r\n if (event == '1') {\r\n title = (title == null ? \"Success\" : title);\r\n eventClass = \"fa fa-check-circle\";\r\n background = \"#72c244\";\r\n backgroundClass = \"bg-modal-success\";\r\n }\r\n else if (event == '2') {\r\n title = (title == null ? \"Error\" : title);\r\n eventClass = \"fa fa-exclamation-circle\";\r\n background = \"#ff4743\";\r\n backgroundClass = \"bg-modal-error\";\r\n }\r\n else if (event == '3') {\r\n title = (title == null ? \"Are you sure?\" : title);\r\n eventClass = \"fa fa-question-circle\";\r\n background = \"#ffbb34\";\r\n backgroundClass = \"bg-modal-question\";\r\n }\r\n else if (event == '4') {\r\n title = (title == null ? \"Warning!\" : title);\r\n eventClass = \"fa fa-warning\";\r\n background = \"#ffbb34\";\r\n backgroundClass = \"bg-modal-warning\";\r\n }\r\n\r\n modelTemplate += \"
\" +\r\n \"

\" +\r\n \"  \" + self.escapeHTML(title) +\r\n \"

\";\r\n }\r\n //Header\r\n\r\n if (mode == '6') {\r\n modelTemplate += \"
\" +\r\n \"

\" + self.escapeHTML(message) + \"

\" +\r\n \"
\" +\r\n \"
\" +\r\n \"
\" +\r\n Btns +\r\n \"
\" +\r\n \"
\" +\r\n \"
\" +\r\n \"
\" +\r\n \"
\";\r\n $(\"body\").append(modelTemplate);\r\n } else {\r\n modelTemplate += \"
\" +\r\n \"

\" + self.escapeHTML(message) + \"

\" +\r\n \"
\" +\r\n \"
\" +\r\n Btns +\r\n \"
\" +\r\n \"\" +\r\n \"\" +\r\n \"\";\r\n $(\"body\").append(modelTemplate);\r\n }\r\n\r\n setTimeout(() => {\r\n $(\"#myModal\").modal();\r\n }, 200);\r\n\r\n $(\"#OK-modal-button\").click(() => {\r\n if (callback != null)\r\n callback(true);\r\n });\r\n\r\n $(\"#Confirm-modal-button\").click(() => {\r\n if (callback != null)\r\n callback(true);\r\n });\r\n\r\n\r\n $(\"#Cancel-modal-button\").click(() => {\r\n if (callback != null)\r\n callback(false);\r\n });\r\n\r\n $(\"#One-modal-button\").click(() => {\r\n if (callback != null)\r\n callback(\"Create Payment\");\r\n });\r\n\r\n }\r\n\r\n static AlertModal(message, mode, event, callback = null) {\r\n this.AlertModalCustomTitle(null, message, mode, event, callback);\r\n }\r\n\r\n static ZeroPad(num, length) {\r\n if (num != undefined && num != null) {\r\n var s = num + \"\", needed = length - s.length; s = num + \"\";\r\n if (needed > 0) s = (Math.pow(10, needed) + \"\").slice(1) + s;\r\n\r\n return s;\r\n }\r\n else\r\n return \"\";\r\n }\r\n\r\n static IsInt(x) {\r\n var y = parseInt(x, 10);\r\n return !isNaN(y) && x == y && x.toString() == y.toString();\r\n }\r\n\r\n static ParseFloat(number) {\r\n return parseFloat(parseFloat(number).toPrecision(12))\r\n }\r\n\r\n static AddMonths(date, months) {\r\n var result = new Date(date);\r\n result.setMonth(result.getMonth() + months);\r\n return result;\r\n }\r\n\r\n static AddDays(date, days) {\r\n var result = new Date(date);\r\n result.setDate(result.getDate() + days);\r\n return result;\r\n }\r\n\r\n static RoundNumber(number, digits) {\r\n //var nagative = false;\r\n //if (number < 0) {\r\n // number = number * -1;\r\n // nagative = true;\r\n //}\r\n //var result = Math.round(number * Math.pow(10, digits)) / Math.pow(10, digits);\r\n //if (nagative) {\r\n // result = result * -1;\r\n //}\r\n //Because Nagative Round not equal Positive\r\n //return result;\r\n var p = Math.pow(10, digits);\r\n var m = Number((Math.abs(number) * p).toPrecision(15));\r\n return Math.round(m) / p * Math.sign(number);\r\n }\r\n\r\n static MonthDiff(d1, d2) {\r\n var months;\r\n\r\n if (d2 >= d1) {\r\n months = (d2.getFullYear() - d1.getFullYear()) * 12;\r\n months -= d1.getMonth();\r\n months += d2.getMonth();\r\n } else {\r\n months = (d1.getFullYear() - d2.getFullYear()) * 12;\r\n months -= d2.getMonth();\r\n months += d1.getMonth();\r\n months = -1 * months;\r\n }\r\n return months;\r\n }\r\n\r\n static GenerateUserDisplay(username, position, company, section, phoneNo, email) {\r\n return (username == null ? \"-\" : username) +\r\n (position == null ? \" / -\" : (\" / \" + position)) +\r\n (company == null ? \" / -\" : (\" / \" + company)) +\r\n \"
\" +\r\n (section == null ? \"-\" : section) +\r\n (phoneNo == null ? \" / -\" : (\" / \" + phoneNo)) +\r\n (email == null ? \" / -\" : (\" / \" + email));\r\n }\n\n static escapeHTML(str) {\r\n var out = \"\";\r\n for (var i = 0; i < str.length; i++) {\r\n if (str[i] === '<') {\r\n out += '<';\r\n } else if (str[i] === '>') {\r\n out += '>';\r\n } else if (str[i] === \"'\") {\r\n out += ''';\r\n } else if (str[i] === '\"') {\r\n out += '"';\r\n } else {\r\n out += str[i];\r\n }\r\n }\r\n return out;\r\n}\r\n}\n","import EditableContainerBase from \"Lib/Fs.SmartClient.Client/EditableContainerBase\";\r\nimport { autoinject } from 'aurelia-framework';\r\nimport EditorVMBase from \"Lib/Fs.SmartClient.Client/EditorVMBase\";\r\nimport SortBy from \"Lib/Fs.Core.Data/SortBy\";\r\nimport PagingCriteria from \"Lib/Fs.Core.Data/PagingCriteria\";\r\nimport SortingCriteria from \"Lib/Fs.Core.Data/SortingCriteria\";\r\nimport CommonSearchVMBase from \"Lib/Fs.SmartClient.Client/CommonSearchVMBase\";\r\n\r\n@autoinject\r\nexport default class SearchOnlyVMBase extends CommonSearchVMBase {\r\n SearchResultCollectionView: T[] = [];\r\n SelectedItems: T[] = [];\r\n currentItem: T;\r\n ItemType: new () => T;\r\n IsSelectAllChecked: boolean;\r\n\r\n get CurrentItem() {\r\n return this.currentItem;\r\n }\r\n set CurrentItem(value: T) {\r\n if (!this.OnCurrentChanging(this, null))\r\n return;\r\n this.currentItem = value;\r\n this.OnCurrentChanged(this, null);\r\n }\r\n\r\n constructor(type: { new(): T; }) {\r\n super();\r\n this.ItemType = type;\r\n this.SortingCriteria = new Array();\r\n this.PagingCriteria = new PagingCriteria();\r\n }\r\n\r\n attached() {\r\n var self = this;\r\n this.bindingEngine.propertyObserver(this, 'PageSize')\r\n .subscribe((newValue, oldValue) => {\r\n if (newValue == oldValue)\r\n return;\r\n\r\n if (self.EnablePaging && self.PageCount > 0) {\r\n self.Search();\r\n }\r\n });\r\n }\r\n\r\n get PageCount() {\r\n if (this.PageSize == 0 || this.ItemCount == 0 || this.PageSize == null) return 0;\r\n var roundingValue = this.ItemCount / this.PageSize;\r\n var roundedValue = Math.round(roundingValue);\r\n return roundingValue > roundedValue ? roundedValue + 1 : roundedValue;\r\n }\r\n\r\n GetItemIndex(i: number) {\r\n return this.PageIndex * this.PageSize + i;\r\n }\r\n\r\n InitialPageIndexList() {\r\n var PageIndexList = [];\r\n for (var index = 1; index <= this.PageCount; index = index + 1)\r\n PageIndexList.push(index);\r\n\r\n this.GridPageIndexList = PageIndexList;\r\n }\r\n\r\n OnCurrentChanged(sender, e) {\r\n this.ClearChildNode();\r\n if (this.CurrentItem == null) return;\r\n\r\n this.AddChildNode(this.CurrentItem);\r\n };\r\n\r\n OnCurrentChanging(sender, e) {\r\n return true;\r\n };\r\n\r\n Search(isChangePage: boolean = false, isShowLoading: boolean = true) {\r\n var self = this;\r\n\r\n if (this.HasEditingChilds)\r\n return;\r\n\r\n this.SelectedItems = [];\r\n this.CurrentItem = null;\r\n this.IsSelectAllChecked = false;\r\n\r\n if (this.EnablePaging && this.PageSize > 0) {\r\n this.CountItems(function (count) {\r\n self.ItemCount = count;\r\n\r\n if ((self.EnablePaging && !isChangePage)) {\r\n self.PageIndex = 0;\r\n }\r\n\r\n self.PagingCriteria = {\r\n PageIndex: self.PageIndex,\r\n PageSize: self.PageSize\r\n };\r\n\r\n self.SearchStep2(isChangePage, isShowLoading);\r\n }, isShowLoading);\r\n } else {\r\n self.SearchStep2(isChangePage, isShowLoading);\r\n }\r\n };\r\n\r\n SearchStep2(isChangePage: boolean = false, isShowLoading: boolean = true) {\r\n var self = this;\r\n\r\n if (this.SortingCriteria == null || this.SortingCriteria.length == 0)\r\n this.PrepareDefaultSortingCriteria(this.SortingCriteria);\r\n\r\n\r\n this.SearchItems(\r\n function (data) {\r\n self.PrepareListViewCollection(data);\r\n self.InitialPageIndexList();\r\n self.GeneratePageNumberList();\r\n }, this.SortingCriteria, this.PagingCriteria, isShowLoading);\r\n }\r\n\r\n PrepareDefaultSortingCriteria(sortingCriteria: SortingCriteria) {\r\n\r\n }\r\n\r\n CountItems(searchCallback: (result: number) => void, isShowLoading: boolean = true) {\r\n searchCallback(0);\r\n }\r\n\r\n SearchItems(searchCallback: (result: any[]) => void, sortingCriteria: SortingCriteria, pagingCriteria: PagingCriteria, isShowLoading: boolean = true) {\r\n\r\n }\r\n\r\n RemoveItems(items: T[]) {\r\n throw \"This function has not yet been implemented.\";\r\n };\r\n\r\n AddItems(items: T[]) {\r\n throw \"This function has not yet been implemented.\";\r\n };\r\n\r\n AddItem(item: T) {\r\n\r\n };\r\n\r\n RemoveItem(item: T) {\r\n\r\n };\r\n\r\n PrepareListViewCollection(list: T[]) {\r\n this.SearchResultCollectionView = [];\r\n\r\n if (list == null)\r\n return;\r\n\r\n var dataList = []\r\n for (var index = 0; index < list.length; index++) {\r\n var convertedData = list[index];\r\n\r\n dataList.push(convertedData);\r\n }\r\n this.SearchResultCollectionView = dataList;\r\n };\r\n\r\n SelectNewItem(editorVM: T) {\r\n this.CurrentItem = editorVM;\r\n }\r\n\r\n SortingChanged(column: string) {\r\n if (this.SortingCriteria.length > 0) {\r\n var sortingColumn = this.SortingCriteria.find(t => t.Name == column);\r\n if (sortingColumn == null) {\r\n this.SortingCriteria.pop();\r\n var sortBy = new SortBy();\r\n sortBy.Direction = 0;\r\n sortBy.Name = column;\r\n this.SortingCriteria.push(sortBy);\r\n } else {\r\n if (sortingColumn.Direction == 0) {\r\n sortingColumn.Direction = 1;\r\n sortingColumn.Name = column;\r\n } else {\r\n this.SortingCriteria.pop();\r\n }\r\n }\r\n } else {\r\n var sortBy = new SortBy();\r\n sortBy.Direction = 0;\r\n sortBy.Name = column;\r\n this.SortingCriteria.push(sortBy);\r\n }\r\n this.Search();\r\n }\r\n\r\n GetSortingStatus(column: string, var1: any) {\r\n var sortingColumn = this.SortingCriteria.find(t => t.Name == column);\r\n if (sortingColumn == null) {\r\n return -1;\r\n } else {\r\n return sortingColumn.Direction;\r\n }\r\n }\r\n\r\n SelectChanged(editorVM: T, isChecked: boolean) { \r\n if (isChecked) {\r\n this.SelectedItems.push(editorVM);\r\n if (this.SearchResultCollectionView.length == this.SelectedItems.filter(function (t) {\r\n return t['IsChecked'] == true\r\n }).length) {\r\n this.IsSelectAllChecked = true;\r\n }\r\n } else {\r\n for (var i = 0; i < this.SelectedItems.length; i++) {\r\n if (this.SelectedItems[i] === editorVM) {\r\n this.SelectedItems.splice(i, 1);\r\n }\r\n }\r\n this.IsSelectAllChecked = false;\r\n }\r\n }\r\n\r\n public SelectAll(isChecked: boolean) {\r\n if (isChecked) {\r\n for (var i = 0; i < this.SearchResultCollectionView.length; i++) {\r\n var item = this.SearchResultCollectionView[i];\r\n this.SelectedItems.push(item);\r\n item['IsChecked'] = true;\r\n }\r\n } else {\r\n this.SelectedItems = [];\r\n for (var i = 0; i < this.SearchResultCollectionView.length; i++) {\r\n var item = this.SearchResultCollectionView[i];\r\n item['IsChecked'] = false;\r\n }\r\n }\r\n }\r\n}\n","import EditableContainerBase from \"Lib/Fs.SmartClient.Client/EditableContainerBase\";\r\nimport { autoinject } from 'aurelia-framework';\r\nimport EditorVMBase from \"Lib/Fs.SmartClient.Client/EditorVMBase\";\r\nimport SortBy from \"Lib/Fs.Core.Data/SortBy\";\r\nimport PagingCriteria from \"Lib/Fs.Core.Data/PagingCriteria\";\r\nimport SortingCriteria from \"Lib/Fs.Core.Data/SortingCriteria\";\r\nimport CommonSearchVMBase from \"Lib/Fs.SmartClient.Client/CommonSearchVMBase\";\r\n\r\n@autoinject\r\nexport default class SearchOnlyVMBase2 extends CommonSearchVMBase {\r\n SearchResultCollectionView: T[] = [];\r\n SelectedItems: T[] = [];\r\n currentItem: T;\r\n SearchCriteria: T2;\r\n ItemType: new () => T;\r\n IsSelectAllChecked: boolean;\r\n\r\n get CurrentItem() {\r\n return this.currentItem;\r\n }\r\n set CurrentItem(value: T) {\r\n if (!this.OnCurrentChanging(this, null))\r\n return;\r\n this.currentItem = value;\r\n this.OnCurrentChanged(this, null);\r\n }\r\n\r\n constructor(type: { new(): T; }) {\r\n super();\r\n this.ItemType = type;\r\n this.SortingCriteria = new Array();\r\n this.PagingCriteria = new PagingCriteria();\r\n }\r\n\r\n attached() {\r\n var self = this;\r\n this.bindingEngine.propertyObserver(this, 'PageSize')\r\n .subscribe((newValue, oldValue) => {\r\n if (newValue == oldValue)\r\n return;\r\n\r\n if (self.EnablePaging && self.PageCount > 0) {\r\n self.Search();\r\n }\r\n });\r\n }\r\n\r\n get PageCount() {\r\n if (this.PageSize == 0 || this.ItemCount == 0 || this.PageSize == null) return 0;\r\n var roundingValue = this.ItemCount / this.PageSize;\r\n var roundedValue = Math.round(roundingValue);\r\n return roundingValue > roundedValue ? roundedValue + 1 : roundedValue;\r\n }\r\n\r\n GetItemIndex(i: number) {\r\n return this.PageIndex * this.PageSize + i;\r\n }\r\n\r\n InitialPageIndexList() {\r\n var PageIndexList = [];\r\n for (var index = 1; index <= this.PageCount; index = index + 1)\r\n PageIndexList.push(index);\r\n\r\n this.GridPageIndexList = PageIndexList;\r\n }\r\n\r\n OnCurrentChanged(sender, e) {\r\n this.ClearChildNode();\r\n if (this.CurrentItem == null) return;\r\n\r\n this.AddChildNode(this.CurrentItem);\r\n };\r\n\r\n OnCurrentChanging(sender, e) {\r\n return true;\r\n };\r\n\n CreateCriteria(): T2 {\n let criteria: T2;\n return criteria;\r\n }\r\n Search(isChangePage: boolean = false) {\r\n var self = this;\r\n\r\n if (this.HasEditingChilds)\r\n return;\r\n\r\n this.SelectedItems = [];\r\n this.CurrentItem = null;\r\n this.IsSelectAllChecked = false;\r\n\r\n if (this.EnablePaging && this.PageSize > 0) {\n\n var req = this.CreateCriteria();\r\n if (!this.CheckCriteriaEquals(req)) {\n this.SearchCriteria = req;\r\n this.CountItems(function (count) {\r\n self.ItemCount = count;\r\n\r\n if ((self.EnablePaging && !isChangePage)) {\r\n self.PageIndex = 0;\r\n }\r\n\r\n self.PagingCriteria = {\r\n PageIndex: self.PageIndex,\r\n PageSize: self.PageSize\r\n };\r\n\r\n self.SearchStep2(isChangePage);\r\n });\r\n } else {\n if ((self.EnablePaging && !isChangePage)) {\r\n self.PageIndex = 0;\r\n }\r\n\r\n self.PagingCriteria = {\r\n PageIndex: self.PageIndex,\r\n PageSize: self.PageSize\r\n };\r\n self.SearchStep2(isChangePage);\r\n }\n } else {\r\n self.SearchStep2(isChangePage);\r\n }\r\n };\r\n\n CheckCriteriaEquals(searchCriteria: T2) {\n if (this.SearchCriteria == null) return false;\n return JSON.stringify(this.SearchCriteria) == JSON.stringify(searchCriteria);\r\n }\n\r\n SearchStep2(isChangePage: boolean = false) {\r\n var self = this;\r\n\r\n if (this.SortingCriteria == null || this.SortingCriteria.length == 0)\r\n this.PrepareDefaultSortingCriteria(this.SortingCriteria);\r\n\r\n\r\n this.SearchItems(\r\n function (data) {\r\n self.PrepareListViewCollection(data);\r\n self.InitialPageIndexList();\r\n self.GeneratePageNumberList();\r\n }, this.SearchCriteria, this.SortingCriteria, this.PagingCriteria);\r\n }\r\n\r\n PrepareDefaultSortingCriteria(sortingCriteria: SortingCriteria) {\r\n\r\n }\r\n\r\n CountItems(searchCallback: (result: number) => void) {\r\n searchCallback(0);\r\n }\r\n\r\n SearchItems(searchCallback: (result: any[]) => void, searchCriteria: T2, sortingCriteria: SortingCriteria, pagingCriteria: PagingCriteria) {\r\n\r\n }\r\n\r\n RemoveItems(items: T[]) {\r\n throw \"This function has not yet been implemented.\";\r\n };\r\n\r\n AddItems(items: T[]) {\r\n throw \"This function has not yet been implemented.\";\r\n };\r\n\r\n AddItem(item: T) {\r\n\r\n };\r\n\r\n RemoveItem(item: T) {\r\n\r\n };\r\n\r\n PrepareListViewCollection(list: T[]) {\r\n this.SearchResultCollectionView = [];\r\n\r\n if (list == null)\r\n return;\r\n\r\n var dataList = []\r\n for (var index = 0; index < list.length; index++) {\r\n var convertedData = list[index];\r\n\r\n dataList.push(convertedData);\r\n }\r\n this.SearchResultCollectionView = dataList;\r\n };\r\n\r\n SelectNewItem(editorVM: T) {\r\n this.CurrentItem = editorVM;\r\n }\r\n\r\n SortingChanged(column: string) {\r\n if (this.SortingCriteria.length > 0) {\r\n var sortingColumn = this.SortingCriteria.find(t => t.Name == column);\r\n if (sortingColumn == null) {\r\n this.SortingCriteria.pop();\r\n var sortBy = new SortBy();\r\n sortBy.Direction = 0;\r\n sortBy.Name = column;\r\n this.SortingCriteria.push(sortBy);\r\n } else {\r\n if (sortingColumn.Direction == 0) {\r\n sortingColumn.Direction = 1;\r\n sortingColumn.Name = column;\r\n } else {\r\n this.SortingCriteria.pop();\r\n }\r\n }\r\n } else {\r\n var sortBy = new SortBy();\r\n sortBy.Direction = 0;\r\n sortBy.Name = column;\r\n this.SortingCriteria.push(sortBy);\r\n }\r\n this.Search();\r\n }\r\n\r\n GetSortingStatus(column: string, var1: any) {\r\n var sortingColumn = this.SortingCriteria.find(t => t.Name == column);\r\n if (sortingColumn == null) {\r\n return -1;\r\n } else {\r\n return sortingColumn.Direction;\r\n }\r\n }\r\n\r\n SelectChanged(editorVM: T, isChecked: boolean) {\r\n if (isChecked) {\r\n this.SelectedItems.push(editorVM);\r\n if (this.SearchResultCollectionView.length == this.SelectedItems.filter(function (t) {\r\n return t['IsChecked'] == true\r\n }).length) {\r\n this.IsSelectAllChecked = true;\r\n }\r\n } else {\r\n for (var i = 0; i < this.SelectedItems.length; i++) {\r\n if (this.SelectedItems[i] === editorVM) {\r\n this.SelectedItems.splice(i, 1);\r\n }\r\n }\r\n this.IsSelectAllChecked = false;\r\n }\r\n }\r\n\r\n public SelectAll(isChecked: boolean) {\r\n if (isChecked) {\r\n for (var i = 0; i < this.SearchResultCollectionView.length; i++) {\r\n var item = this.SearchResultCollectionView[i];\r\n this.SelectedItems.push(item);\r\n item['IsChecked'] = true;\r\n }\r\n } else {\r\n this.SelectedItems = [];\r\n for (var i = 0; i < this.SearchResultCollectionView.length; i++) {\r\n var item = this.SearchResultCollectionView[i];\r\n item['IsChecked'] = false;\r\n }\r\n }\r\n }\r\n}\n","import SearchOnlyVMBase from \"Lib/Fs.SmartClient.Client/SearchOnlyVMBase\";\r\nimport EditorVMBase from \"Lib/Fs.SmartClient.Client/EditorVMBase\";\r\nimport { useView, autoinject, Container } from 'aurelia-framework'\r\nimport FsUtility from \"./FsUtility\";\r\nexport default class SearchVMBase extends SearchOnlyVMBase {\r\n IsSearchAfterSave: boolean;\r\n IsClearSelectionAfterSave: boolean;\r\n\r\n EditorVMType: new () => T;\r\n\r\n constructor(type: { new(): T; }) {\r\n super(type);\r\n this.EditorVMType = type;\r\n }\r\n\r\n OnSaveSuccess(editorVM: T) {\r\n\r\n }\r\n\r\n UpdateCommand(editorVM: T) {\n var self = this;\r\n editorVM.validationController.validate({ object: editorVM }).then(result => {\r\n if (result.valid) {\r\n editorVM.Save(\r\n function () {\r\n editorVM.EndEdit();\r\n self.OnSaveSuccess(editorVM);\r\n\r\n if (self.IsSearchAfterSave == true)\r\n self.Search();\r\n else if (self.IsClearSelectionAfterSave == true) {\r\n self.CurrentItem = null;\r\n self.SelectedItems = [];\r\n }\r\n },\r\n FsUtility.CommonErrorHandler);\r\n }\r\n });\r\n }\r\n\r\n RemoveCommand(editorVM: T) {\r\n var searchVM = this;\r\n if (this.HasEditingChilds)\r\n return;\r\n searchVM.RemoveItem(editorVM);\r\n }\r\n\r\n EditCommand(editorVM: T) {\r\n var self = this;\r\n setTimeout(function () {\r\n if (self.HasEditingChilds)\r\n return;\r\n\r\n self.SelectNewItem(editorVM);\r\n editorVM.BeginEdit();\r\n }, 1)\r\n }\r\n\r\n CancelCommand(editorVM: T) {\r\n var searchVM = this;\r\n\r\n if (editorVM == null)\r\n return;\r\n\r\n if (!editorVM.HasOriginalSource) {\r\n this.CurrentItem = null;\r\n this.SelectedItems = [];\r\n searchVM.RemoveItem(editorVM);\r\n }\r\n else\r\n editorVM.CancelEdit();\r\n }\r\n\r\n\r\n CreateNewItem() {\r\n if (this.HasEditingChilds)\r\n return;\r\n\r\n var editorVM = new this.EditorVMType();\r\n\r\n this.AddItem(editorVM);\r\n this.SelectNewItem(editorVM);\r\n\r\n editorVM.BeginEdit();\r\n\r\n return editorVM;\r\n };\r\n\r\n OnCurrentChanged(sender, e) {\r\n this.ClearChildNode();\r\n if (this.CurrentItem == null) return;\r\n\r\n this.AddChildNode(this.CurrentItem);\r\n if (this.CurrentItem != null)\r\n this.CurrentItem.Activate();\r\n\r\n };\r\n\r\n OnCurrentChanging(sender, e) {\r\n if (this.HasEditingChilds)\r\n return false;\r\n\r\n return true;\r\n };\r\n\r\n RemoveItems(items: T[]) {\r\n throw \"This function has not yet been implemented.\";\r\n };\r\n\r\n AddItems(items: T[]) {\r\n throw \"This function has not yet been implemented.\";\r\n };\r\n\r\n AddItem(item: T) {\r\n this.InitializeAddingItem(item);\r\n\r\n this.SearchResultCollectionView.push(item);\r\n };\r\n\r\n RemoveItem(item: T) {\r\n var self = this;\r\n item.SetIsEditing(false);\r\n if (item.HasOriginalSource) {\r\n item.Remove(this, function () {\r\n self.CurrentItem = null;\r\n for (var i = 0; i < self.SearchResultCollectionView.length; i++) {\r\n if (self.SearchResultCollectionView[i] === item) {\r\n self.SearchResultCollectionView.splice(i, 1);\r\n }\r\n }\r\n self.Search();\r\n });\r\n } else {\r\n self.CurrentItem = null;\r\n for (var i = 0; i < self.SearchResultCollectionView.length; i++) {\r\n if (self.SearchResultCollectionView[i] === item) {\r\n self.SearchResultCollectionView.splice(i, 1);\r\n }\r\n }\r\n self.Search();\r\n }\r\n };\r\n\r\n GetItemIndex = function (i) {\r\n return this.PageIndex * this.PageSize + i;\r\n }\r\n\r\n PrepareListViewCollection(list: any[]) { // array list of SearchResult\r\n this.SearchResultCollectionView = [];\r\n\r\n var editorVMList = [];\r\n for (var index = 0; index < list.length; index++) { // index for example [0],[1],[2],...,[n]\r\n var editorVM = new this.EditorVMType();\r\n this.InitializeLoadingItem(editorVM);\r\n editorVM.SetOriginalSource(list[index]);\r\n editorVM.index = this.GetItemIndex(index + 1);\r\n editorVMList.push(editorVM); // push each record into grid.\r\n }\r\n this.SearchResultCollectionView = editorVMList;\r\n };\r\n\r\n InitializeAddingItem(editorVM: T) {\r\n\r\n };\r\n\r\n InitializeLoadingItem(editorVM: T) {\r\n\r\n };\r\n\r\n}\n","import SearchOnlyVMBase2 from \"Lib/Fs.SmartClient.Client/SearchOnlyVMBase2\";\r\nimport EditorVMBase from \"Lib/Fs.SmartClient.Client/EditorVMBase\";\r\nimport { useView, autoinject, Container } from 'aurelia-framework'\r\nimport FsUtility from \"./FsUtility\";\r\nexport default class SearchVMBase2 extends SearchOnlyVMBase2 {\r\n IsSearchAfterSave: boolean;\r\n IsClearSelectionAfterSave: boolean;\r\n\r\n EditorVMType: new () => T;\r\n\r\n constructor(type: { new(): T; }) {\r\n super(type);\r\n this.EditorVMType = type;\r\n }\r\n\r\n OnSaveSuccess(editorVM: T) {\r\n\r\n }\r\n\r\n UpdateCommand(editorVM: T) {\r\n var self = this;\r\n editorVM.validationController.validate({ object: editorVM }).then(result => {\r\n if (result.valid) {\r\n editorVM.Save(\r\n function () {\r\n editorVM.EndEdit();\r\n self.OnSaveSuccess(editorVM);\r\n\r\n if (self.IsSearchAfterSave == true)\r\n self.Search();\r\n else if (self.IsClearSelectionAfterSave == true) {\r\n self.CurrentItem = null;\r\n self.SelectedItems = [];\r\n }\r\n },\r\n FsUtility.CommonErrorHandler);\r\n }\r\n });\r\n }\r\n\r\n RemoveCommand(editorVM: T) {\r\n var searchVM = this;\r\n if (this.HasEditingChilds)\r\n return;\r\n searchVM.RemoveItem(editorVM);\r\n }\r\n\r\n EditCommand(editorVM: T) {\r\n var self = this;\r\n setTimeout(function () {\r\n if (self.HasEditingChilds)\r\n return;\r\n\r\n self.SelectNewItem(editorVM);\r\n editorVM.BeginEdit();\r\n }, 1)\r\n }\r\n\r\n CancelCommand(editorVM: T) {\r\n var searchVM = this;\r\n\r\n if (editorVM == null)\r\n return;\r\n\r\n if (!editorVM.HasOriginalSource) {\r\n this.CurrentItem = null;\r\n this.SelectedItems = [];\r\n searchVM.RemoveItem(editorVM);\r\n }\r\n else\r\n editorVM.CancelEdit();\r\n }\r\n\r\n\r\n CreateNewItem() {\r\n if (this.HasEditingChilds)\r\n return;\r\n\r\n var editorVM = new this.EditorVMType();\r\n\r\n this.AddItem(editorVM);\r\n this.SelectNewItem(editorVM);\r\n\r\n editorVM.BeginEdit();\r\n\r\n return editorVM;\r\n };\r\n\r\n OnCurrentChanged(sender, e) {\r\n this.ClearChildNode();\r\n if (this.CurrentItem == null) return;\r\n\r\n this.AddChildNode(this.CurrentItem);\r\n if (this.CurrentItem != null)\r\n this.CurrentItem.Activate();\r\n\r\n };\r\n\r\n OnCurrentChanging(sender, e) {\r\n if (this.HasEditingChilds)\r\n return false;\r\n\r\n return true;\r\n };\r\n\r\n RemoveItems(items: T[]) {\r\n throw \"This function has not yet been implemented.\";\r\n };\r\n\r\n AddItems(items: T[]) {\r\n throw \"This function has not yet been implemented.\";\r\n };\r\n\r\n AddItem(item: T) {\r\n this.InitializeAddingItem(item);\r\n\r\n this.SearchResultCollectionView.push(item);\r\n };\r\n\r\n RemoveItem(item: T) {\r\n var self = this;\r\n item.SetIsEditing(false);\r\n if (item.HasOriginalSource) {\r\n item.Remove(this, function () {\r\n self.CurrentItem = null;\r\n for (var i = 0; i < self.SearchResultCollectionView.length; i++) {\r\n if (self.SearchResultCollectionView[i] === item) {\r\n self.SearchResultCollectionView.splice(i, 1);\r\n }\r\n }\r\n self.Search();\r\n });\r\n } else {\r\n self.CurrentItem = null;\r\n for (var i = 0; i < self.SearchResultCollectionView.length; i++) {\r\n if (self.SearchResultCollectionView[i] === item) {\r\n self.SearchResultCollectionView.splice(i, 1);\r\n }\r\n }\r\n self.Search();\r\n }\r\n };\r\n\r\n GetItemIndex = function (i) {\r\n return this.PageIndex * this.PageSize + i;\r\n }\r\n\r\n PrepareListViewCollection(list: any[]) { // array list of SearchResult\r\n this.SearchResultCollectionView = [];\r\n\r\n var editorVMList = [];\r\n for (var index = 0; index < list.length; index++) { // index for example [0],[1],[2],...,[n]\r\n var editorVM = new this.EditorVMType();\r\n this.InitializeLoadingItem(editorVM);\r\n editorVM.SetOriginalSource(list[index]);\r\n editorVM.index = this.GetItemIndex(index + 1);\r\n editorVMList.push(editorVM); // push each record into grid.\r\n }\r\n this.SearchResultCollectionView = editorVMList;\r\n };\r\n\r\n InitializeAddingItem(editorVM: T) {\r\n\r\n };\r\n\r\n InitializeLoadingItem(editorVM: T) {\r\n\r\n };\r\n\r\n}\n","import { useView, autoinject, Container, transient, inject } from 'aurelia-framework';\r\nimport { Router } from 'aurelia-router';\r\n\r\n@transient()\r\n@autoinject()\r\nexport default class TabViewModel {\r\n \r\n Header: string;\r\n ChildNodeGroups: any[] = [];\r\n protected container: Container;\r\n protected router: Router;\r\n constructor() {\r\n this.container = Container.instance;\r\n }\r\n\r\n GetChildNode(groupName = null) {\r\n if (groupName == null)\r\n groupName = \"default\";\r\n \r\n if (!this.ChildNodeGroups.hasOwnProperty(groupName)) {\r\n this.ChildNodeGroups[groupName] = [];\r\n }\r\n\r\n return this.ChildNodeGroups[groupName];\r\n }\r\n\r\n OnCurrentChanged(sender, e) {\r\n\r\n }\r\n\r\n ClearChildNode(groupName = null) {\r\n if (groupName == null)\r\n groupName = \"default\";\r\n\r\n if (this.ChildNodeGroups.hasOwnProperty(groupName)) {\r\n this.ChildNodeGroups[groupName] = [];\r\n }\r\n }\r\n\r\n AddChildNode(node, groupName = null) {\r\n if (groupName == null)\r\n groupName = \"default\";\r\n if (!this.ChildNodeGroups.hasOwnProperty(groupName)) {\r\n this.ChildNodeGroups[groupName] = [];\r\n }\r\n this.ChildNodeGroups[groupName].push(node);\r\n };\r\n\r\n RemoveChildNode(node, groupName = null) {\r\n if (groupName == null)\r\n groupName = \"default\";\r\n\r\n for (var i = 0; i < this.ChildNodeGroups.length; i++) {\r\n if (this.ChildNodeGroups[i] === node) {\r\n this.ChildNodeGroups.splice(i, 1);\r\n }\r\n }\r\n };\r\n}"],"names":[],"sourceRoot":""}