tin-spa 2.0.0 → 2.1.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +2 -2
- package/{esm2015/lib/classes/Classes.js → esm2020/lib/classes/Classes.mjs} +15 -55
- package/esm2020/lib/classes/TinCore.mjs +148 -0
- package/esm2020/lib/components/activity/activity.component.mjs +24 -0
- package/esm2020/lib/components/attach/attach.component.mjs +105 -0
- package/esm2020/lib/components/change-password/change-password.component.mjs +92 -0
- package/esm2020/lib/components/check/check.component.mjs +56 -0
- package/esm2020/lib/components/chips/chips.component.mjs +58 -0
- package/esm2020/lib/components/create-account/create-account.component.mjs +72 -0
- package/esm2020/lib/components/date/date.component.mjs +64 -0
- package/esm2020/lib/components/datetime/datetime.component.mjs +39 -0
- package/esm2020/lib/components/filter/filter.component.mjs +46 -0
- package/esm2020/lib/components/form/form.component.mjs +63 -0
- package/esm2020/lib/components/label/label.component.mjs +25 -0
- package/esm2020/lib/components/loader/loader.component.mjs +24 -0
- package/esm2020/lib/components/login/login.component.mjs +113 -0
- package/esm2020/lib/components/logs/logs.component.mjs +37 -0
- package/esm2020/lib/components/message/messageDialog.component.mjs +32 -0
- package/esm2020/lib/components/money/currency-input-mask.directive.mjs +185 -0
- package/esm2020/lib/components/money/currency-input-mask.module.mjs +28 -0
- package/esm2020/lib/components/money/money.component.mjs +64 -0
- package/esm2020/lib/components/nav-menu/nav-menu.component.mjs +49 -0
- package/esm2020/lib/components/number/number.component.mjs +86 -0
- package/esm2020/lib/components/option/option.component.mjs +59 -0
- package/esm2020/lib/components/profile/profile.component.mjs +93 -0
- package/esm2020/lib/components/recover-account/recover-account.component.mjs +46 -0
- package/esm2020/lib/components/roles/addRoleDialog.component.mjs +61 -0
- package/esm2020/lib/components/roles/roles.component.mjs +91 -0
- package/esm2020/lib/components/select/select.component.mjs +71 -0
- package/esm2020/lib/components/settings/settings.component.mjs +63 -0
- package/esm2020/lib/components/signup/signup.component.mjs +50 -0
- package/esm2020/lib/components/steps/steps.component.mjs +90 -0
- package/esm2020/lib/components/table/detailsDialog.component.mjs +149 -0
- package/esm2020/lib/components/table/table.component.mjs +341 -0
- package/esm2020/lib/components/text/text.component.mjs +166 -0
- package/esm2020/lib/components/tiles/tiles.component.mjs +41 -0
- package/esm2020/lib/components/tin-spa.component.mjs +19 -0
- package/esm2020/lib/components/users/users.component.mjs +119 -0
- package/esm2020/lib/modules/admin/admin-routing.module.mjs +29 -0
- package/esm2020/lib/modules/admin/admin.module.mjs +26 -0
- package/esm2020/lib/modules/index/index-routing.module.mjs +27 -0
- package/esm2020/lib/modules/index/index.module.mjs +26 -0
- package/esm2020/lib/modules/spa-admin.module.mjs +73 -0
- package/esm2020/lib/modules/spa-index.module.mjs +52 -0
- package/esm2020/lib/modules/spa-mat.module.mjs +67 -0
- package/esm2020/lib/modules/spa-user.module.mjs +49 -0
- package/esm2020/lib/modules/user/user-routing.module.mjs +23 -0
- package/esm2020/lib/modules/user/user.module.mjs +26 -0
- package/esm2020/lib/pipes/camelToWords.pipe.mjs +23 -0
- package/esm2020/lib/services/auth.service.mjs +142 -0
- package/esm2020/lib/services/data.service.mjs +125 -0
- package/esm2020/lib/services/export.service.mjs +16 -0
- package/esm2020/lib/services/http.service.mjs +79 -0
- package/esm2020/lib/services/loader-interceptor.service.mjs +77 -0
- package/esm2020/lib/services/loader.service.mjs +17 -0
- package/esm2020/lib/services/log.service.mjs +77 -0
- package/esm2020/lib/services/message.service.mjs +52 -0
- package/esm2020/lib/services/storage.service.mjs +34 -0
- package/esm2020/lib/services/tin-spa.service.mjs +14 -0
- package/esm2020/lib/tin-spa.module.mjs +114 -0
- package/esm2020/public-api.mjs +62 -0
- package/esm2020/tin-spa.mjs +5 -0
- package/fesm2015/tin-spa.mjs +3846 -0
- package/fesm2015/tin-spa.mjs.map +1 -0
- package/fesm2020/tin-spa.mjs +3829 -0
- package/fesm2020/tin-spa.mjs.map +1 -0
- package/index.d.ts +5 -0
- package/lib/classes/Classes.d.ts +58 -63
- package/lib/classes/TinCore.d.ts +1 -0
- package/lib/components/activity/activity.component.d.ts +3 -0
- package/lib/components/attach/attach.component.d.ts +4 -1
- package/lib/components/change-password/change-password.component.d.ts +3 -0
- package/lib/components/check/check.component.d.ts +3 -0
- package/lib/components/chips/chips.component.d.ts +3 -0
- package/lib/components/create-account/create-account.component.d.ts +3 -0
- package/lib/components/date/date.component.d.ts +14 -6
- package/lib/components/datetime/datetime.component.d.ts +3 -0
- package/lib/components/filter/filter.component.d.ts +4 -0
- package/lib/components/form/form.component.d.ts +16 -0
- package/lib/components/label/label.component.d.ts +3 -0
- package/lib/components/loader/loader.component.d.ts +3 -0
- package/lib/components/login/login.component.d.ts +6 -0
- package/lib/components/logs/logs.component.d.ts +3 -0
- package/lib/components/message/messageDialog.component.d.ts +3 -0
- package/lib/components/money/currency-input-mask.directive.d.ts +41 -0
- package/lib/components/money/currency-input-mask.module.d.ts +9 -0
- package/lib/components/money/money.component.d.ts +9 -1
- package/lib/components/nav-menu/nav-menu.component.d.ts +3 -0
- package/lib/components/number/number.component.d.ts +29 -0
- package/lib/components/option/option.component.d.ts +3 -0
- package/lib/components/profile/profile.component.d.ts +6 -2
- package/lib/components/recover-account/recover-account.component.d.ts +3 -0
- package/lib/components/roles/addRoleDialog.component.d.ts +3 -0
- package/lib/components/roles/roles.component.d.ts +3 -0
- package/lib/components/select/select.component.d.ts +5 -1
- package/lib/components/settings/settings.component.d.ts +3 -0
- package/lib/components/signup/signup.component.d.ts +3 -0
- package/lib/components/steps/steps.component.d.ts +3 -0
- package/lib/components/table/detailsDialog.component.d.ts +28 -0
- package/lib/components/table/table.component.d.ts +57 -17
- package/lib/components/text/text.component.d.ts +13 -9
- package/lib/components/tiles/tiles.component.d.ts +3 -0
- package/lib/components/tin-spa.component.d.ts +4 -4
- package/lib/components/users/users.component.d.ts +4 -0
- package/lib/modules/admin/admin-routing.module.d.ts +7 -0
- package/lib/modules/admin/admin.module.d.ts +9 -0
- package/lib/modules/index/index-routing.module.d.ts +7 -0
- package/lib/modules/index/index.module.d.ts +9 -0
- package/lib/modules/spa-admin.module.d.ts +13 -0
- package/lib/modules/spa-index.module.d.ts +10 -0
- package/lib/modules/spa-mat.module.d.ts +31 -0
- package/lib/modules/spa-user.module.d.ts +9 -0
- package/lib/modules/user/user-routing.module.d.ts +7 -0
- package/lib/modules/user/user.module.d.ts +9 -0
- package/lib/pipes/camelToWords.pipe.d.ts +7 -0
- package/lib/services/auth.service.d.ts +3 -0
- package/lib/services/data.service.d.ts +5 -1
- package/lib/services/export.service.d.ts +3 -4
- package/lib/services/http.service.d.ts +3 -0
- package/lib/services/loader-interceptor.service.d.ts +3 -0
- package/lib/services/loader.service.d.ts +3 -0
- package/lib/services/log.service.d.ts +3 -0
- package/lib/services/message.service.d.ts +3 -0
- package/lib/services/storage.service.d.ts +3 -0
- package/lib/services/tin-spa.service.d.ts +3 -0
- package/lib/tin-spa.module.d.ts +30 -0
- package/package.json +24 -23
- package/public-api.d.ts +7 -2
- package/bundles/tin-spa.umd.js +0 -3672
- package/bundles/tin-spa.umd.js.map +0 -1
- package/bundles/tin-spa.umd.min.js +0 -16
- package/bundles/tin-spa.umd.min.js.map +0 -1
- package/esm2015/lib/classes/TinCore.js +0 -139
- package/esm2015/lib/components/activity/activity.component.js +0 -26
- package/esm2015/lib/components/attach/attach.component.js +0 -107
- package/esm2015/lib/components/change-password/change-password.component.js +0 -102
- package/esm2015/lib/components/check/check.component.js +0 -63
- package/esm2015/lib/components/chips/chips.component.js +0 -66
- package/esm2015/lib/components/create-account/create-account.component.js +0 -78
- package/esm2015/lib/components/date/date.component.js +0 -45
- package/esm2015/lib/components/datetime/datetime.component.js +0 -44
- package/esm2015/lib/components/filter/filter.component.js +0 -40
- package/esm2015/lib/components/label/label.component.js +0 -29
- package/esm2015/lib/components/loader/loader.component.js +0 -29
- package/esm2015/lib/components/login/login.component.js +0 -114
- package/esm2015/lib/components/logs/logs.component.js +0 -39
- package/esm2015/lib/components/message/messageDialog.component.js +0 -31
- package/esm2015/lib/components/money/money.component.js +0 -52
- package/esm2015/lib/components/nav-menu/nav-menu.component.js +0 -51
- package/esm2015/lib/components/option/option.component.js +0 -63
- package/esm2015/lib/components/profile/profile.component.js +0 -98
- package/esm2015/lib/components/recover-account/recover-account.component.js +0 -53
- package/esm2015/lib/components/roles/addRoleDialog.component.js +0 -61
- package/esm2015/lib/components/roles/roles.component.js +0 -94
- package/esm2015/lib/components/select/select.component.js +0 -77
- package/esm2015/lib/components/settings/settings.component.js +0 -63
- package/esm2015/lib/components/signup/signup.component.js +0 -57
- package/esm2015/lib/components/steps/steps.component.js +0 -93
- package/esm2015/lib/components/table/table.component.js +0 -107
- package/esm2015/lib/components/text/text.component.js +0 -165
- package/esm2015/lib/components/tiles/tiles.component.js +0 -41
- package/esm2015/lib/components/timeout/timeout.component.js +0 -90
- package/esm2015/lib/components/tin-spa.component.js +0 -19
- package/esm2015/lib/components/users/users.component.js +0 -120
- package/esm2015/lib/dnd.directive.js +0 -51
- package/esm2015/lib/modules/spa-admin.module.js +0 -50
- package/esm2015/lib/modules/spa-index.module.js +0 -35
- package/esm2015/lib/modules/spa-mat.module.js +0 -53
- package/esm2015/lib/modules/spa-user.module.js +0 -33
- package/esm2015/lib/services/auth.service.js +0 -155
- package/esm2015/lib/services/data.service.js +0 -115
- package/esm2015/lib/services/export.service.js +0 -29
- package/esm2015/lib/services/http.service.js +0 -84
- package/esm2015/lib/services/loader-interceptor.service.js +0 -83
- package/esm2015/lib/services/loader.service.js +0 -17
- package/esm2015/lib/services/log.service.js +0 -76
- package/esm2015/lib/services/message.service.js +0 -58
- package/esm2015/lib/services/storage.service.js +0 -42
- package/esm2015/lib/services/tin-spa.service.js +0 -14
- package/esm2015/lib/tin-spa.module.js +0 -91
- package/esm2015/public-api.js +0 -56
- package/esm2015/tin-spa.js +0 -8
- package/esm5/lib/classes/Classes.js +0 -313
- package/esm5/lib/classes/TinCore.js +0 -166
- package/esm5/lib/components/activity/activity.component.js +0 -27
- package/esm5/lib/components/attach/attach.component.js +0 -119
- package/esm5/lib/components/change-password/change-password.component.js +0 -104
- package/esm5/lib/components/check/check.component.js +0 -64
- package/esm5/lib/components/chips/chips.component.js +0 -68
- package/esm5/lib/components/create-account/create-account.component.js +0 -80
- package/esm5/lib/components/date/date.component.js +0 -46
- package/esm5/lib/components/datetime/datetime.component.js +0 -45
- package/esm5/lib/components/filter/filter.component.js +0 -41
- package/esm5/lib/components/label/label.component.js +0 -30
- package/esm5/lib/components/loader/loader.component.js +0 -31
- package/esm5/lib/components/login/login.component.js +0 -117
- package/esm5/lib/components/logs/logs.component.js +0 -41
- package/esm5/lib/components/message/messageDialog.component.js +0 -32
- package/esm5/lib/components/money/money.component.js +0 -53
- package/esm5/lib/components/nav-menu/nav-menu.component.js +0 -53
- package/esm5/lib/components/option/option.component.js +0 -64
- package/esm5/lib/components/profile/profile.component.js +0 -102
- package/esm5/lib/components/recover-account/recover-account.component.js +0 -55
- package/esm5/lib/components/roles/addRoleDialog.component.js +0 -63
- package/esm5/lib/components/roles/roles.component.js +0 -100
- package/esm5/lib/components/select/select.component.js +0 -79
- package/esm5/lib/components/settings/settings.component.js +0 -66
- package/esm5/lib/components/signup/signup.component.js +0 -59
- package/esm5/lib/components/steps/steps.component.js +0 -105
- package/esm5/lib/components/table/table.component.js +0 -109
- package/esm5/lib/components/text/text.component.js +0 -168
- package/esm5/lib/components/tiles/tiles.component.js +0 -42
- package/esm5/lib/components/timeout/timeout.component.js +0 -92
- package/esm5/lib/components/tin-spa.component.js +0 -17
- package/esm5/lib/components/users/users.component.js +0 -126
- package/esm5/lib/dnd.directive.js +0 -52
- package/esm5/lib/modules/spa-admin.module.js +0 -53
- package/esm5/lib/modules/spa-index.module.js +0 -38
- package/esm5/lib/modules/spa-mat.module.js +0 -56
- package/esm5/lib/modules/spa-user.module.js +0 -36
- package/esm5/lib/services/auth.service.js +0 -157
- package/esm5/lib/services/data.service.js +0 -116
- package/esm5/lib/services/export.service.js +0 -30
- package/esm5/lib/services/http.service.js +0 -85
- package/esm5/lib/services/loader-interceptor.service.js +0 -85
- package/esm5/lib/services/loader.service.js +0 -18
- package/esm5/lib/services/log.service.js +0 -112
- package/esm5/lib/services/message.service.js +0 -59
- package/esm5/lib/services/storage.service.js +0 -74
- package/esm5/lib/services/tin-spa.service.js +0 -16
- package/esm5/lib/tin-spa.module.js +0 -94
- package/esm5/public-api.js +0 -56
- package/esm5/tin-spa.js +0 -8
- package/fesm2015/tin-spa.js +0 -3184
- package/fesm2015/tin-spa.js.map +0 -1
- package/fesm5/tin-spa.js +0 -3422
- package/fesm5/tin-spa.js.map +0 -1
- package/lib/components/timeout/timeout.component.d.ts +0 -21
- package/lib/dnd.directive.d.ts +0 -8
- package/tin-spa.d.ts +0 -7
- package/tin-spa.metadata.json +0 -1
|
@@ -1,16 +0,0 @@
|
|
|
1
|
-
!function(t,e){"object"==typeof exports&&"undefined"!=typeof module?e(exports,require("@angular/core"),require("@angular/material/snack-bar"),require("@angular/material/dialog"),require("rxjs"),require("rxjs/operators"),require("file-saver"),require("xlsx"),require("@angular/router"),require("@angular/common/http"),require("@angular/common"),require("@angular/material/autocomplete"),require("@angular/material/badge"),require("@angular/material/button"),require("@angular/material/card"),require("@angular/material/checkbox"),require("@angular/material/chips"),require("@angular/material/core"),require("@angular/material/datepicker"),require("@angular/material/form-field"),require("@angular/material/icon"),require("@angular/material/input"),require("@angular/material/list"),require("@angular/material/menu"),require("@angular/material/paginator"),require("@angular/material/progress-spinner"),require("@angular/material/radio"),require("@angular/material/select"),require("@angular/material/slider"),require("@angular/material/sort"),require("@angular/material/stepper"),require("@angular/material/table"),require("@angular/material/tabs"),require("@angular/material/tooltip"),require("@angular/forms"),require("@ng-idle/keepalive"),require("angular2-moment"),require("@ng-idle/core"),require("@angular/cdk/stepper")):"function"==typeof define&&define.amd?define("tin-spa",["exports","@angular/core","@angular/material/snack-bar","@angular/material/dialog","rxjs","rxjs/operators","file-saver","xlsx","@angular/router","@angular/common/http","@angular/common","@angular/material/autocomplete","@angular/material/badge","@angular/material/button","@angular/material/card","@angular/material/checkbox","@angular/material/chips","@angular/material/core","@angular/material/datepicker","@angular/material/form-field","@angular/material/icon","@angular/material/input","@angular/material/list","@angular/material/menu","@angular/material/paginator","@angular/material/progress-spinner","@angular/material/radio","@angular/material/select","@angular/material/slider","@angular/material/sort","@angular/material/stepper","@angular/material/table","@angular/material/tabs","@angular/material/tooltip","@angular/forms","@ng-idle/keepalive","angular2-moment","@ng-idle/core","@angular/cdk/stepper"],e):e((t=t||self)["tin-spa"]={},t.ng.core,t.ng.material.snackBar,t.ng.material.dialog,t.rxjs,t.rxjs.operators,t.fileSaver,t.xlsx,t.ng.router,t.ng.common.http,t.ng.common,t.ng.material.autocomplete,t.ng.material.badge,t.ng.material.button,t.ng.material.card,t.ng.material.checkbox,t.ng.material.chips,t.ng.material.core,t.ng.material.datepicker,t.ng.material.formField,t.ng.material.icon,t.ng.material.input,t.ng.material.list,t.ng.material.menu,t.ng.material.paginator,t.ng.material.progressSpinner,t.ng.material.radio,t.ng.material.select,t.ng.material.slider,t.ng.material.sort,t.ng.material.stepper,t.ng.material.table,t.ng.material.tabs,t.ng.material.tooltip,t.ng.forms,t.keepalive,t.angular2Moment,t.core$2,t.ng.cdk.stepper)}(this,(function(t,e,n,r,o,i,a,s,l,c,p,u,d,m,h,g,f,v,y,b,x,w,S,I,C,k,M,P,T,D,N,E,L,A,R,O,U,F,j){"use strict";
|
|
2
|
-
/*! *****************************************************************************
|
|
3
|
-
Copyright (c) Microsoft Corporation.
|
|
4
|
-
|
|
5
|
-
Permission to use, copy, modify, and/or distribute this software for any
|
|
6
|
-
purpose with or without fee is hereby granted.
|
|
7
|
-
|
|
8
|
-
THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES WITH
|
|
9
|
-
REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY
|
|
10
|
-
AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT,
|
|
11
|
-
INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM
|
|
12
|
-
LOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR
|
|
13
|
-
OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR
|
|
14
|
-
PERFORMANCE OF THIS SOFTWARE.
|
|
15
|
-
***************************************************************************** */var z=function(t,e){return(z=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(t,e){t.__proto__=e}||function(t,e){for(var n in e)e.hasOwnProperty(n)&&(t[n]=e[n])})(t,e)};function _(t,e){function n(){this.constructor=t}z(t,e),t.prototype=null===e?Object.create(e):(n.prototype=e.prototype,new n)}function H(t,e,n,r){var o,i=arguments.length,a=i<3?e:null===r?r=Object.getOwnPropertyDescriptor(e,n):r;if("object"==typeof Reflect&&"function"==typeof Reflect.decorate)a=Reflect.decorate(t,e,n,r);else for(var s=t.length-1;s>=0;s--)(o=t[s])&&(a=(i<3?o(a):i>3?o(e,n,a):o(e,n))||a);return i>3&&a&&Object.defineProperty(e,n,a),a}function q(t,e){return function(n,r){e(n,r,t)}}function B(t,e,n,r){return new(n||(n=Promise))((function(o,i){function a(t){try{l(r.next(t))}catch(t){i(t)}}function s(t){try{l(r.throw(t))}catch(t){i(t)}}function l(t){var e;t.done?o(t.value):(e=t.value,e instanceof n?e:new n((function(t){t(e)}))).then(a,s)}l((r=r.apply(t,e||[])).next())}))}function G(t,e){var n,r,o,i,a={label:0,sent:function(){if(1&o[0])throw o[1];return o[1]},trys:[],ops:[]};return i={next:s(0),throw:s(1),return:s(2)},"function"==typeof Symbol&&(i[Symbol.iterator]=function(){return this}),i;function s(i){return function(s){return function(i){if(n)throw new TypeError("Generator is already executing.");for(;a;)try{if(n=1,r&&(o=2&i[0]?r.return:i[0]?r.throw||((o=r.return)&&o.call(r),0):r.next)&&!(o=o.call(r,i[1])).done)return o;switch(r=0,o&&(i=[2&i[0],o.value]),i[0]){case 0:case 1:o=i;break;case 4:return a.label++,{value:i[1],done:!1};case 5:a.label++,r=i[1],i=[0];continue;case 7:i=a.ops.pop(),a.trys.pop();continue;default:if(!(o=a.trys,(o=o.length>0&&o[o.length-1])||6!==i[0]&&2!==i[0])){a=0;continue}if(3===i[0]&&(!o||i[1]>o[0]&&i[1]<o[3])){a.label=i[1];break}if(6===i[0]&&a.label<o[1]){a.label=o[1],o=i;break}if(o&&a.label<o[2]){a.label=o[2],a.ops.push(i);break}o[2]&&a.ops.pop(),a.trys.pop();continue}i=e.call(t,a)}catch(t){i=[6,t],r=0}finally{n=o=0}if(5&i[0])throw i[1];return{value:i[0]?i[1]:void 0,done:!0}}([i,s])}}}function V(t){var e="function"==typeof Symbol&&Symbol.iterator,n=e&&t[e],r=0;if(n)return n.call(t);if(t&&"number"==typeof t.length)return{next:function(){return t&&r>=t.length&&(t=void 0),{value:t&&t[r++],done:!t}}};throw new TypeError(e?"Object is not iterable.":"Symbol.iterator is not defined.")}var W,Z=function(){function t(){}return t.ɵprov=e.ɵɵdefineInjectable({factory:function(){return new t},token:t,providedIn:"root"}),t=H([e.Injectable({providedIn:"root"})],t)}(),J=function(){function t(){}return t.prototype.store=function(t,e){return B(this,void 0,void 0,(function(){var n;return G(this,(function(r){switch(r.label){case 0:return n=btoa(escape(JSON.stringify(e))),[4,localStorage.setItem(t,n)];case 1:return r.sent(),[2]}}))}))},t.prototype.get=function(t){return B(this,void 0,void 0,(function(){var e;return G(this,(function(n){switch(n.label){case 0:return[4,localStorage.getItem(t)];case 1:return e=n.sent(),[2,JSON.parse(unescape(atob(e)))]}}))}))},t.prototype.removeStorageItem=function(t){return B(this,void 0,void 0,(function(){return G(this,(function(e){switch(e.label){case 0:return[4,localStorage.removeItem(t)];case 1:return e.sent(),[2]}}))}))},t.prototype.clear=function(){return B(this,void 0,void 0,(function(){return G(this,(function(t){switch(t.label){case 0:return[4,localStorage.clear()];case 1:return t.sent(),[2]}}))}))},t.ɵprov=e.ɵɵdefineInjectable({factory:function(){return new t},token:t,providedIn:"root"}),t=H([e.Injectable({providedIn:"root"})],t)}(),Y=function(){function t(t,e){this.dialogRef=t,this.data=e}return t.prototype.ngOnInit=function(){this.messageType=this.data.type,this._messageSubject=this.data.subject,this._messageDetails=this.data.details},t.prototype.response=function(t){this.dialogRef.close(t)},t.ctorParameters=function(){return[{type:r.MatDialogRef},{type:void 0,decorators:[{type:e.Inject,args:[r.MAT_DIALOG_DATA]}]}]},t=H([e.Component({selector:"lib-app-message",template:'\r\n <h2 mat-dialog-title>\r\n\r\n <mat-label *ngIf="messageType==\'confirm\'">Confirm</mat-label>\r\n <mat-label *ngIf="messageType==\'info\'">Information</mat-label>\r\n <mat-label *ngIf="messageType==\'error\'">Error</mat-label>\r\n\r\n </h2>\r\n\r\n <mat-dialog-content class="mat-typography">\r\n\r\n\r\n \x3c!-- Confirm --\x3e\r\n <p *ngIf="messageType==\'confirm\'">{{_messageDetails}}</p>\r\n\r\n\r\n \x3c!-- Information --\x3e\r\n <div *ngIf="messageType==\'info\'">\r\n\r\n <h3>{{_messageSubject}}</h3>\r\n <mat-label>{{_messageDetails}}</mat-label>\r\n\r\n </div>\r\n\r\n\r\n \x3c!-- Error --\x3e\r\n <div *ngIf="messageType==\'error\'">\r\n\r\n <mat-label>{{_messageDetails}}</mat-label>\r\n\r\n </div>\r\n\r\n\r\n </mat-dialog-content>\r\n\r\n<mat-dialog-actions>\r\n\r\n <button id="btnYes" mat-stroked-button *ngIf="messageType==\'confirm\'" (click)="response(\'yes\')" cdkFocusInitial>Yes</button>\r\n\r\n <button id="btnNo" mat-stroked-button *ngIf="messageType==\'confirm\'" (click)="response(\'no\')" >No</button>\r\n\r\n <button id="btnOK" mat-stroked-button *ngIf="messageType==\'info\' || messageType==\'error\'" (click)="response(\'ok\')" cdkFocusInitial>OK</button>\r\n\r\n</mat-dialog-actions>\r\n\r\n\r\n\r\n'}),q(1,e.Inject(r.MAT_DIALOG_DATA))],t)}(),K=function(){function t(t,e){this.snackBar=t,this.dialog=e}return t.prototype.toast=function(t){this.snackBar.open(t,"OK",{duration:5e3})},t.prototype.info=function(t,e){this.dialog.open(Y,{width:"600px",data:{type:"info",subject:t,details:e}})},t.prototype.error=function(t){this.dialog.open(Y,{width:"600px",data:{type:"error",subject:void 0,details:t}})},t.prototype.confirm=function(t){var e=t;return this.dialog.open(Y,{width:"400px",data:{type:"confirm",subject:"",details:e}}).afterClosed().pipe(i.mergeMap((function(t){return o.of(t)})))},t.ctorParameters=function(){return[{type:n.MatSnackBar},{type:r.MatDialog}]},t.ɵprov=e.ɵɵdefineInjectable({factory:function(){return new t(e.ɵɵinject(n.MatSnackBar),e.ɵɵinject(r.MatDialog))},token:t,providedIn:"root"}),t=H([e.Injectable({providedIn:"root"})],t)}(),$=function(){function t(){this.fileType="application/vnd.openxmlformats-officedocument.spreadsheetml.sheet;charset=UTF-8",this.fileExtension=".xlsx"}return t.prototype.exportExcel=function(t,e){var n={Sheets:{data:s.utils.json_to_sheet(t)},SheetNames:["data"]},r=s.write(n,{bookType:"xlsx",type:"array"});this.saveExcelFile(r,e)},t.prototype.saveExcelFile=function(t,e){var n=new Blob([t],{type:this.fileType});a.saveAs(n,e+this.fileExtension)},t.ɵprov=e.ɵɵdefineInjectable({factory:function(){return new t},token:t,providedIn:"root"}),t=H([e.Injectable({providedIn:"root"})],t)}(),Q=function(){function t(){}return t.getClone=function(t){return JSON.parse(JSON.stringify(t))},t.getNumber=function(t){return null==t||""==t?0:t.replace(/[^\d.-]/g,"")},t.getFirstDayOfMonth=function(){var t=new Date;return new Date(t.getFullYear(),t.getMonth(),1)},t.emailIsValid=function(t){return!1},t.isValidUNCPath=function(t){return!1},t.isValidDate=function(t){var e=Date.parse(t);return!(!isNaN(t)||isNaN(e))},t.isValidEmailList=function(t){var e,n;if(t.includes(";")){var r=t.split(";");try{for(var o=V(r),i=o.next();!i.done;i=o.next()){var a=i.value;if(0==this.emailIsValid(a))return!1}}catch(t){e={error:t}}finally{try{i&&!i.done&&(n=o.return)&&n.call(o)}finally{if(e)throw e.error}}}else if(0==this.emailIsValid(t))return!1;return!0},t.isNumber=function(t){return null!=t&&""!==t&&!isNaN(Number(t.toString()))},t.getDiff=function(t,e){void 0===e&&(e=Date());var n=new Date(t),r=new Date(e).valueOf()-n.valueOf();function o(t){return"1"==t.toFixed()?"":"s"}var i=r/6e4,a=r/36e5,s=r/864e5,l=r/6048e5,c=r/24192e5,p=r/31536e6;return p>=1?p.toFixed()+" year"+o(p):c>=1?c.toFixed()+" month"+o(c):l>=1?l.toFixed()+" week"+o(l):s>=1?s.toFixed()+" day"+o(s):a>=1?a.toFixed()+" hour"+o(a):i>=1?i.toFixed()+" minute"+o(i):r>=-6e4?"a minute":"N/A"},t.nowDate=function(t){return void 0===t&&(t=!1),t?this.getFormatedDate(Date(),!0):this.getFormatedDate(Date())},t.getFormatedDate=function(t,e){void 0===e&&(e=!1);var n=new Date(t);return n.setHours(n.getHours()+2),1==e?n.toISOString().split("T")[0]:n.toISOString().split(".")[0]},t.getBusinessDatesCount=function(t,e){for(var n=0,r=new Date(t),o=new Date(e),i=r;i<o;){var a=i.getDay();6!=a&&0!=a&&n++,i.setDate(i.getDate()+1)}return n},t.nullDate="01 Jan 1969",t}(),X=function(){},tt=function(){function t(){}return t.AUTH_USER="a",t.AUTH_NAME="b",t.AUTH_ROLES="c",t.AUTH_TOKEN="d",t.AUTH_TOKEN_EXPIRE="e",t}();(W=t.LogLevel||(t.LogLevel={}))[W.All=0]="All",W[W.Debug=1]="Debug",W[W.Info=2]="Info",W[W.Warn=3]="Warn",W[W.Error=4]="Error",W[W.Fatal=5]="Fatal",W[W.Off=6]="Off";var et,nt=function(){},rt=function(){},ot=function(){this.enableFilter=!1,this.create=new it,this.greyout=new lt},it=function(){},at=function(){this.name="default",this.display="default",this.type=t.TableColumnType.String};(et=t.TableColumnType||(t.TableColumnType={}))[et.String=0]="String",et[et.Date=1]="Date",et[et.DateTime=2]="DateTime",et[et.Image=3]="Image",et[et.Icon=4]="Icon",et[et.TextIcon=5]="TextIcon",et[et.Chip=6]="Chip";var st,lt=function(){this.field="",this.operator=t.Operator.Equal,this.value=""};(st=t.Operator||(t.Operator={}))[st.Equal=0]="Equal",st[st.Less=1]="Less",st[st.Greater=2]="Greater",st[st.NotEqual=3]="NotEqual";var ct=function(t){function e(){return null!==t&&t.apply(this,arguments)||this}return _(e,t),e}(lt),pt=function(t){function e(){return null!==t&&t.apply(this,arguments)||this}return _(e,t),e}(lt),ut=function(){},dt=function(){},mt=function(){this.appName="",this.selfService=!1,this.logo="",this.logoSize="normal"},ht=function(){this.appName="App Name",this.logo="",this.logoSize="normal",this.ADAuth=!0,this.localAuth=!0,this.selfService=!1},gt=function(){this.name="",this.display="New Cap Item",this.enabled=!1,this.type="",this.newLine=!1,this.showMenu=!0,this.ignoreSubsDisplay=!1,this.link="",this.icon="navigate_next"},ft=function(){},vt=function(){this.userName="",this.password="",this.tries="0",this.locked="0",this.logged="0",this.disabled="0",this.changepassword="0",this.dateCreated=Q.nowDate(),this.dateUpdated=Q.nowDate(),this.token="",this.dateExpire=Q.nowDate(),this.tokenExpire=Q.nowDate(),this.authType=""},yt=function(){this.userName="",this.currentPassword="",this.newPassword="",this.confirmPassword=""},bt=function(){this.userName="",this.roleID=1,this.firstName="",this.lastName="",this.email="",this.authType="",this.password=""},xt=function(){this.profileID="",this.userName="",this.roleID=1,this.firstName="",this.lastName="",this.email="",this.empID="",this.arID="0",this.authType="",this.password="",this.role=new wt},wt=function(){this.roleID=0,this.roleName="New Role",this.cap1=!1,this.cap2=!1,this.cap3=!1,this.cap4=!1,this.cap5=!1,this.cap6=!1,this.cap7=!1,this.cap8=!1,this.cap9=!1,this.cap10=!1,this.cap11=!1,this.cap12=!1,this.cap13=!1,this.cap14=!1,this.cap15=!1,this.cap16=!1,this.cap17=!1,this.cap18=!1,this.cap19=!1,this.cap20=!1,this.cap21=!1,this.cap22=!1,this.cap23=!1,this.cap24=!1,this.cap25=!1,this.cap26=!1,this.cap27=!1,this.cap28=!1,this.cap29=!1,this.cap30=!1,this.cap31=!1,this.cap32=!1,this.cap33=!1,this.cap34=!1,this.cap35=!1,this.cap36=!1,this.cap37=!1,this.cap38=!1,this.cap39=!1,this.cap40=!1,this.cap41=!1,this.cap42=!1,this.cap43=!1,this.cap44=!1,this.cap45=!1,this.cap46=!1,this.cap47=!1,this.cap48=!1,this.cap49=!1,this.cap50=!1,this.cap51=!1,this.cap52=!1,this.cap53=!1,this.cap54=!1,this.cap55=!1,this.cap56=!1,this.cap57=!1,this.cap58=!1,this.cap59=!1,this.cap60=!1,this.cap61=!1,this.cap62=!1,this.cap63=!1,this.cap64=!1,this.cap65=!1,this.cap66=!1,this.cap67=!1,this.cap68=!1,this.cap69=!1,this.cap70=!1,this.cap71=!1,this.cap72=!1,this.cap73=!1,this.cap74=!1,this.cap75=!1,this.cap76=!1,this.cap77=!1,this.cap78=!1,this.cap79=!1,this.cap80=!1,this.cap81=!1,this.cap82=!1,this.cap83=!1,this.cap84=!1,this.cap85=!1,this.cap86=!1,this.cap87=!1,this.cap88=!1,this.cap89=!1,this.cap90=!1,this.cap91=!1,this.cap92=!1,this.cap93=!1,this.cap94=!1,this.cap95=!1,this.cap96=!1,this.cap97=!1,this.cap98=!1,this.cap99=!1,this.cap100=!1},St=function(){function n(){this.level=t.LogLevel.All,this.logToConsole=!0,this.logToApi=!1}return n.prototype.debug=function(e){for(var n=[],r=1;r<arguments.length;r++)n[r-1]=arguments[r];this.writeToLog(e,t.LogLevel.Debug,n)},n.prototype.info=function(e){for(var n=[],r=1;r<arguments.length;r++)n[r-1]=arguments[r];this.writeToLog(e,t.LogLevel.Info,n)},n.prototype.warn=function(e){for(var n=[],r=1;r<arguments.length;r++)n[r-1]=arguments[r];this.writeToLog(e,t.LogLevel.Warn,n)},n.prototype.error=function(e){for(var n=[],r=1;r<arguments.length;r++)n[r-1]=arguments[r];this.writeToLog(e,t.LogLevel.Error,n)},n.prototype.fatal=function(e){for(var n=[],r=1;r<arguments.length;r++)n[r-1]=arguments[r];this.writeToLog(e,t.LogLevel.Fatal,n)},n.prototype.log=function(e){for(var n=[],r=1;r<arguments.length;r++)n[r-1]=arguments[r];this.writeToLog(e,t.LogLevel.All,n)},n.prototype.writeToLog=function(t,e,n){if(this.shouldLog(e)){var r=Q.getFormatedDate(Date(),!1).replace("T"," ");r+=" - Message: "+t,n.length&&(r+=" - Extra Info: "+this.formatParams(n)),this.logToConsole&&console.log(r),this.logToApi}},n.prototype.formatParams=function(t){var e,n,r=t.join(",");if(t.some((function(t){return"object"==typeof t}))){r="";try{for(var o=V(t),i=o.next();!i.done;i=o.next()){var a=i.value;r+=JSON.stringify(a)+","}}catch(t){e={error:t}}finally{try{i&&!i.done&&(n=o.return)&&n.call(o)}finally{if(e)throw e.error}}}return r},n.prototype.shouldLog=function(e){var n=!1;return(e>=this.level&&e!==t.LogLevel.Off||this.level===t.LogLevel.All)&&(n=!0),n},n.ɵprov=e.ɵɵdefineInjectable({factory:function(){return new n},token:n,providedIn:"root"}),n=H([e.Injectable({providedIn:"root"})],n)}(),It=function(){function t(t,e){this.httpClient=t,this.router=e,this.apiUrl="https://api.solinc.co.zw/",this.httpOptions_Legacy={headers:new c.HttpHeaders({Accept:"application/json","Content-Type":"application/json",Authorization:"Basic "+btoa("emptyUser:emptyToken")}),resposeType:"json"},this.httpOptions_Files={headers:new c.HttpHeaders({Authorization:"Basic "+btoa("tnyagato:j5Toszfr@ys")}),resposeType:"json"}}return t.prototype.Post=function(t,e){return this.httpClient.post(this.apiUrl+t,e,this.httpOptions_Legacy)},t.prototype.Put=function(t,e){return this.httpClient.put(this.apiUrl+t,e,this.httpOptions_Legacy)},t.prototype.Post_Raw=function(t,e){return this.httpClient.post(t,e,this.httpOptions_Legacy)},t.prototype.Post_WithFile=function(t,e,n){var r=new FormData;return n&&r.append("uploadFile",n,n.name),r.append("data",JSON.stringify(e)),this.httpClient.post(this.apiUrl+t,r,this.httpOptions_Files)},t.prototype.Post_FormData=function(t,e){return this.httpClient.post(this.apiUrl+t,e,this.httpOptions_Files)},t.prototype.Get=function(t){return this.httpClient.get(this.apiUrl+t,this.httpOptions_Legacy)},t.prototype.Get_Raw=function(t){return this.httpClient.get(t,this.httpOptions_Legacy)},t.prototype.Error=function(t){return"Unauthorized"==t.statusText?(this.router.navigate(["login"]),"Unauthorized"):"Connection failed"},t.ctorParameters=function(){return[{type:c.HttpClient},{type:l.Router}]},t.ɵprov=e.ɵɵdefineInjectable({factory:function(){return new t(e.ɵɵinject(c.HttpClient),e.ɵɵinject(l.Router))},token:t,providedIn:"root"}),t=H([e.Injectable({providedIn:"root"})],t)}(),Ct=function(){function t(t,e,n,r,i,a){this._route=t,this.storage=e,this.router=n,this.httpService=r,this.messageService=i,this.logService=a,this.loggedin=!1,this.loggedinSource=new o.BehaviorSubject(this.loggedin),this.loggedinObserv=this.loggedinSource.asObservable(),this.token="",this.tokenSource=new o.BehaviorSubject(this.token),this.tokenObserv=this.tokenSource.asObservable(),this.tokenExpire="",this.tokenExpireSource=new o.BehaviorSubject(this.tokenExpire),this.tokenExpireObserv=this.tokenExpireSource.asObservable(),this.currentUser="tnyagato",this.currentUserSource=new o.BehaviorSubject(this.currentUser),this.currentUserObserv=this.currentUserSource.asObservable(),this.islineManager=!1,this.isLineManagerSource=new o.BehaviorSubject(this.islineManager),this.isLineManagerObserv=this.isLineManagerSource.asObservable(),this.currentRole=new wt,this.currentRoleSource=new o.BehaviorSubject(this.currentRole),this.myRoleObserv=this.currentRoleSource.asObservable(),this.loggedUserSource=new o.BehaviorSubject("tnyagato"),this.loggedUserFullName=this.loggedUserSource.asObservable()}return t.prototype.Updateloggedin=function(t){this.loggedinSource.next(t),this.loggedin=t},t.prototype.UpdateToken=function(t){this.tokenSource.next(t)},t.prototype.UpdateTokenExpire=function(t){this.tokenExpireSource.next(t)},t.prototype.UpdateCurrentUser=function(t){this.currentUserSource.next(t.toLocaleLowerCase()),this.currentUser=t.toLocaleLowerCase()},t.prototype.UpdateIsLineManager=function(t){this.isLineManagerSource.next(t)},t.prototype.UpdateRole=function(t){this.currentRoleSource.next(t)},t.prototype.updateLoggedUserFullName=function(t){this.loggedUserSource.next(t)},t.prototype.isAuthorised=function(t){return!!this.currentRoleSource.value[t]||(this.router.navigate(["home"]),this.messageService.toast("Unauthorised: "+t),!1)},t.prototype.isValidToken=function(){var t=new Date(this.tokenExpireSource.value)>new Date;return t||(this.router.navigate(["login"]),this.messageService.toast("Expired Session")),t},t.prototype.canActivate=function(){var t=this;if(this.loggedin&&this.isValidToken())return!0;if(null===localStorage.getItem(tt.AUTH_USER)){this.Updateloggedin(!1);var e=new URL(window.location.href).hash.replace("#/","");return this.router.navigate(["login"],{relativeTo:this._route,queryParams:{redirectTo:e},queryParamsHandling:"merge",skipLocationChange:!1}),!1}return this.Updateloggedin(!0),this.storage.get(tt.AUTH_USER).then((function(e){t.UpdateCurrentUser(e)})),this.storage.get(tt.AUTH_NAME).then((function(e){t.updateLoggedUserFullName(e)})),this.storage.get(tt.AUTH_ROLES).then((function(e){var n=JSON.parse(e);t.UpdateRole(n)})),this.storage.get(tt.AUTH_TOKEN).then((function(e){t.UpdateToken(e)})),this.storage.get(tt.AUTH_TOKEN_EXPIRE).then((function(e){t.UpdateTokenExpire(e),t.isValidToken()})),!0},t.ctorParameters=function(){return[{type:l.ActivatedRoute},{type:J},{type:l.Router},{type:It},{type:K},{type:St}]},t.ɵprov=e.ɵɵdefineInjectable({factory:function(){return new t(e.ɵɵinject(l.ActivatedRoute),e.ɵɵinject(J),e.ɵɵinject(l.Router),e.ɵɵinject(It),e.ɵɵinject(K),e.ɵɵinject(St))},token:t,providedIn:"root"}),t=H([e.Injectable({providedIn:"root"})],t)}(),kt=function(){function t(t){this.httpService=t,this.appConfig=new ht,this.appConfigSource=new o.BehaviorSubject(this.appConfig),this.appConfigObserv=this.appConfigSource.asObservable(),this.capHome=new gt,this.capAdmin=new gt,this.capUsers=new gt,this.capRoles=new gt,this.capLogs=new gt,this.capSettings=new gt,this.tmpProfileuserName="",this.appConfig.appName="App-Name",this.appConfig.logo="./assets/logo.png",this.appConfig.ADAuth=!0,this.appConfig.capItems=[this.capAdmin,this.capHome],this.capHome.name="cap1",this.capHome.display="Home",this.capHome.link="home",this.capAdmin.name="cap2",this.capAdmin.display="Admin",this.capAdmin.capSubItems=[this.capUsers,this.capRoles,this.capLogs,this.capSettings],this.capUsers.name="cap3",this.capUsers.display="Users",this.capUsers.link="home/admin/users",this.capRoles.name="cap4",this.capRoles.display="Roles",this.capRoles.link="home/admin/roles",this.capLogs.name="cap5",this.capLogs.display="Logs",this.capLogs.link="home/admin/logs",this.capSettings.name="cap6",this.capSettings.display="Settings",this.capSettings.link="home/admin/settings"}return t.prototype.UpdateAppConfig=function(t){this.appConfigSource.next(t),this.appConfig=t},t.prototype.GetUser=function(){return this.httpService.Get("User/all/x")},t.prototype.RegisterAccount=function(t){return this.httpService.Post("User/register",t)},t.prototype.GetUserByID=function(t){return this.httpService.Get("User/id/"+t)},t.prototype.UpdateUser=function(t){return this.httpService.Post("User/edit",t)},t.prototype.UnlockUser=function(t){return this.httpService.Post("User/unlock",t)},t.prototype.LockUser=function(t){return this.httpService.Post("User/lock",t)},t.prototype.DeleteUser=function(t){return this.httpService.Post("User/delete",t)},t.prototype.Login=function(t){return this.httpService.Post("User/login",t)},t.prototype.ChangePassword=function(t){return this.httpService.Post("User/changepassword-self",t)},t.prototype.ChangePasswordAdmin=function(t){return this.httpService.Post("User/changepassword-admin",t)},t.prototype.SelfReset=function(t){return this.httpService.Post("Basic/SelfReset",t)},t.prototype.PostRole=function(t,e){return this.httpService.Post("Role?action="+e,t)},t.prototype.PutRole=function(t){return this.httpService.Put("Role",t)},t.prototype.GetRole=function(t,e){return this.httpService.Get("Role/all/x")},t.prototype.GetLog=function(t,e){return this.httpService.Get("Log/all/x")},t.prototype.GetSetting=function(t,e){return this.httpService.Get("Setting/all/x")},t.prototype.UpdateSetting=function(t,e){return this.httpService.Post("Setting?action="+e,t)},t.ctorParameters=function(){return[{type:It}]},t.ɵprov=e.ɵɵdefineInjectable({factory:function(){return new t(e.ɵɵinject(It))},token:t,providedIn:"root"}),t=H([e.Injectable({providedIn:"root"})],t)}(),Mt=function(){function t(){this.isLoading=new o.BehaviorSubject(!1)}return t.ɵprov=e.ɵɵdefineInjectable({factory:function(){return new t},token:t,providedIn:"root"}),t=H([e.Injectable({providedIn:"root"})],t)}(),Pt=function(){function t(t){var e=this;this.loaderService=t,this.logo="",this.loaderService.isLoading.subscribe((function(t){e.loading=t}))}return t.prototype.ngOnInit=function(){},t.ctorParameters=function(){return[{type:Mt}]},H([e.Input()],t.prototype,"logo",void 0),t=H([e.Component({selector:"spa-loader",template:'<div class="progress-loader" style="z-index: 9999;" [hidden]="!loading">\r\n <div class="loading-spinner">\r\n\r\n <img *ngIf="logo==\'\'" style="width: 100px;"\r\n src="data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHZpZXdCb3g9IjAgMCAyNTAgMjUwIj4KICAgIDxwYXRoIGZpbGw9IiNERDAwMzEiIGQ9Ik0xMjUgMzBMMzEuOSA2My4ybDE0LjIgMTIzLjFMMTI1IDIzMGw3OC45LTQzLjcgMTQuMi0xMjMuMXoiIC8+CiAgICA8cGF0aCBmaWxsPSIjQzMwMDJGIiBkPSJNMTI1IDMwdjIyLjItLjFWMjMwbDc4LjktNDMuNyAxNC4yLTEyMy4xTDEyNSAzMHoiIC8+CiAgICA8cGF0aCAgZmlsbD0iI0ZGRkZGRiIgZD0iTTEyNSA1Mi4xTDY2LjggMTgyLjZoMjEuN2wxMS43LTI5LjJoNDkuNGwxMS43IDI5LjJIMTgzTDEyNSA1Mi4xem0xNyA4My4zaC0zNGwxNy00MC45IDE3IDQwLjl6IiAvPgogIDwvc3ZnPg=="\r\n\r\n >\r\n\r\n <img *ngIf="logo!=\'\'" [src]="logo" style="width: 100px;" />\r\n\r\n\r\n <span id="loadingMessage" class="loading-message">Please wait...</span>\r\n </div>\r\n</div>\r\n',styles:[".loading-spinner{background-color:#0000001f;position:absolute;width:100%;top:0;left:0;height:100vh;align-items:center;justify-content:center;display:-ms-grid;display:grid}.loading-spinner img{-ms-grid-row-align:end;align-self:end}.loading-message{text-align:center;-ms-grid-row-align:start;align-self:start}"]})],t)}(),Tt={disableClose:!0,hasBackdrop:!0},Dt=function(){function t(){}return t=H([e.NgModule({declarations:[],imports:[],exports:[p.CommonModule,R.FormsModule,R.ReactiveFormsModule,I.MatMenuModule,T.MatSliderModule,E.MatTableModule,C.MatPaginatorModule,g.MatCheckboxModule,d.MatBadgeModule,m.MatButtonModule,x.MatIconModule,r.MatDialogModule,n.MatSnackBarModule,L.MatTabsModule,b.MatFormFieldModule,w.MatInputModule,h.MatCardModule,f.MatChipsModule,P.MatSelectModule,v.MatNativeDateModule,k.MatProgressSpinnerModule,S.MatListModule,u.MatAutocompleteModule,A.MatTooltipModule,D.MatSortModule,y.MatDatepickerModule,N.MatStepperModule,M.MatRadioModule],providers:[{provide:r.MAT_DIALOG_DEFAULT_OPTIONS,useValue:Tt},{provide:v.MAT_DATE_LOCALE,useValue:"en-GB"}]})],t)}(),Nt=function(){function t(t,e,n,r,o){this.loaderService=t,this.messageService=e,this.authService=n,this.router=r,this.logService=o,this.requests=[]}return t.prototype.removeRequest=function(t){var e=this.requests.indexOf(t);e>=0&&this.requests.splice(e,1),this.loaderService.isLoading.next(this.requests.length>0)},t.prototype.intercept=function(t,e){var n=this,r=t.clone({setHeaders:{Authorization:"Bearer "+this.authService.tokenSource.value}});return this.requests.push(r),this.requests.length>1&&this.logService.info("Multiple connections detected > "+this.requests.length),this.loaderService.isLoading.next(!0),o.Observable.create((function(t){var o=e.handle(r).subscribe((function(e){e instanceof c.HttpResponse&&(n.removeRequest(r),t.next(e))}),(function(e){n.removeRequest(r),t.error(e),401===e.status?(n.router.navigate(["login"]),n.messageService.toast("Unauthorised: Please login again")):500===e.status?(console.log(e.error),n.messageService.toast("System Error")):"Unknown Error"==e.statusText?n.messageService.toast("Connection Error"):n.messageService.toast("Error: "+e.statusText)}),(function(){n.removeRequest(r),t.complete()}));return function(){n.removeRequest(r),o.unsubscribe()}}))},t.ctorParameters=function(){return[{type:Mt},{type:K},{type:Ct},{type:l.Router},{type:St}]},t=H([e.Injectable()],t)}(),Et=function(){function t(){}return t.prototype.ngOnInit=function(){},t=H([e.Component({selector:"lib-tin-spa",template:"\n <p>\n tin-spa works!\n </p>\n "})],t)}(),Lt=function(){function t(t,e){this.router=t,this.authService=e,this.isExpanded=!1,this.appConfig=new ht}return t.prototype.ngOnInit=function(){var t=this;this.authService.loggedUserFullName.subscribe((function(e){return t.loggedUserFullName=e})),this.authService.myRoleObserv.subscribe((function(e){return t.myRole=e})),this.authService.loggedinObserv.subscribe((function(e){return t.loggedin=e}))},t.prototype.collapse=function(){this.isExpanded=!1},t.prototype.toggle=function(){this.isExpanded=!this.isExpanded},t.prototype.redirectTo=function(t){""!=t&&this.router.navigate([t])},t.ctorParameters=function(){return[{type:l.Router},{type:Ct}]},H([e.Input()],t.prototype,"appConfig",void 0),t=H([e.Component({selector:"spa-nav-menu",template:'<header *ngIf="loggedin">\r\n <nav class="toolbar navbar navbar-expand-sm navbar-toggleable-sm navbar-light border-bottom box-shadow mb-3 " style="padding-right: 10px;">\r\n <div class="container-fluid" style="padding-right: 0px;">\r\n \x3c!--<a class="navbar-brand" [routerLink]="[\'/\']">Orbit</a>--\x3e\r\n\r\n <img *ngIf="appConfig.logo!=\'\'" [src]="appConfig.logo" style="height: 50px; margin-right: 2em" />\r\n\r\n\r\n <div style="font-size: 20px;">\r\n {{appConfig.appName}}\r\n </div>\r\n\r\n\r\n <button class="navbar-toggler"\r\n type="button"\r\n data-toggle="collapse"\r\n data-target=".navbar-collapse"\r\n aria-label="Toggle navigation"\r\n [attr.aria-expanded]="isExpanded"\r\n (click)="toggle()">\r\n <span class="navbar-toggler-icon"></span>\r\n </button>\r\n\r\n <div *ngIf="myRole" class="navbar-collapse collapse d-sm-inline-flex flex-sm-row-reverse stack-top" style="margin-right: 0px;" [ngClass]="{ show: isExpanded }" >\r\n\r\n <button mat-icon-button (click)="redirectTo(\'login\')"> <mat-icon>logout</mat-icon> </button>\r\n\r\n <button id="btnUser" mat-button [matMenuTriggerFor]="profileMenu" style="margin-left:2em"><mat-icon>account_circle</mat-icon> {{loggedUserFullName}}</button>\r\n\r\n <mat-menu #profileMenu="matMenu">\r\n <button id="btnProfile" mat-menu-item (click)="redirectTo(\'home/user/profile\')" >Profile</button>\r\n <button id="btnLogOff" mat-menu-item (click)="redirectTo(\'login\')">Log Off</button>\r\n </mat-menu>\r\n\r\n <div *ngFor="let item of appConfig.capItems">\r\n\r\n \x3c!-- Menu Item --\x3e\r\n <button id="btnMenu" *ngIf="myRole[item.name] && !item.capSubItems && item.showMenu" mat-button (click)="redirectTo(item.link)">{{item.display}}</button>\r\n\r\n \x3c!-- Menu Item with Sub items ignored --\x3e\r\n <button id="btnMenu" *ngIf="myRole[item.name] && item.capSubItems && item.showMenu && item.ignoreSubsDisplay" mat-button (click)="redirectTo(item.link)">{{item.display}}</button>\r\n\r\n \x3c!-- Menu Item with Sub items to display--\x3e\r\n <button id="btnMenu" *ngIf="myRole[item.name] && item.capSubItems && item.showMenu && !item.ignoreSubsDisplay" mat-button [matMenuTriggerFor]="adminMenu">{{item.display}}</button>\r\n\r\n\r\n \x3c!-- Sub Menu Items --\x3e\r\n <mat-menu #adminMenu="matMenu">\r\n\r\n <div *ngFor="let subItem of item.capSubItems">\r\n\r\n <button *ngIf="myRole[subItem.name] && subItem.showMenu" mat-menu-item (click)="redirectTo(subItem.link)">{{subItem.display}}</button>\r\n\r\n </div>\r\n\r\n </mat-menu>\r\n\r\n </div>\r\n\r\n </div>\r\n\r\n\r\n </div>\r\n\r\n </nav>\r\n</header>\r\n',styles:["a.navbar-brand{white-space:normal;text-align:center;word-break:break-all}html{font-size:14px}@media (min-width:768px){html{font-size:16px}}.box-shadow{box-shadow:0 .25rem .75rem rgba(0,0,0,.05)}.toolbar{height:60px;display:flex;align-items:center;background-color:#03a;color:#fff;font-weight:600}.stack-top{z-index:9;margin:20px}"]})],t)}(),At=function(){function t(t,e,n,r){var o=this;this.idle=t,this.keepalive=e,this.authService=n,this.router=r,this.loggedin=!1,this.idleState="Not started.",this.timedOut=!1,this.lastPing=null,this.isWarning=!1,this.authService.loggedinObserv.subscribe((function(t){o.loggedin=t})),t.setIdle(900),t.setTimeout(10),t.setInterrupts(F.DEFAULT_INTERRUPTSOURCES),t.onIdleStart.subscribe((function(){o.idleState="You've gone idle!"})),t.onIdleEnd.subscribe((function(){o.idleState="No longer idle.",o.isWarning=!1})),t.onTimeoutWarning.subscribe((function(t){o.idleState="You will be signed out in "+t+" seconds!",o.loggedin&&(o.isWarning=!0)})),t.onTimeout.subscribe((function(){o.idleState="Timed out!",o.timedOut=!0,o.stopWatch()})),e.interval(15),e.onPing.subscribe((function(){o.lastPing=new Date})),this.startWatch()}return t.prototype.ngOnInit=function(){},t.prototype.startWatch=function(){this.idle.watch(),this.idleState="Started.",this.timedOut=!1,this.isWarning=!1},t.prototype.stopWatch=function(){this.idle.stop(),this.isWarning=!1,this.router.navigate(["login"])},t.prototype.using=function(){this.isWarning=!1},t.ctorParameters=function(){return[{type:F.Idle},{type:O.Keepalive},{type:Ct},{type:l.Router}]},t=H([e.Component({selector:"spa-timeout",template:'\r\n<div class="loading-spinner" [hidden]="!isWarning" >\r\n\r\n <div style="width: 500px; text-align: center;">\r\n\r\n\r\n\r\n <div class="row">\r\n <div class="col">\r\n <img style="width: 100px;"\r\n src="data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHZpZXdCb3g9IjAgMCAyNTAgMjUwIj4KICAgIDxwYXRoIGZpbGw9IiNERDAwMzEiIGQ9Ik0xMjUgMzBMMzEuOSA2My4ybDE0LjIgMTIzLjFMMTI1IDIzMGw3OC45LTQzLjcgMTQuMi0xMjMuMXoiIC8+CiAgICA8cGF0aCBmaWxsPSIjQzMwMDJGIiBkPSJNMTI1IDMwdjIyLjItLjFWMjMwbDc4LjktNDMuNyAxNC4yLTEyMy4xTDEyNSAzMHoiIC8+CiAgICA8cGF0aCAgZmlsbD0iI0ZGRkZGRiIgZD0iTTEyNSA1Mi4xTDY2LjggMTgyLjZoMjEuN2wxMS43LTI5LjJoNDkuNGwxMS43IDI5LjJIMTgzTDEyNSA1Mi4xem0xNyA4My4zaC0zNGwxNy00MC45IDE3IDQwLjl6IiAvPgogIDwvc3ZnPg==">\r\n </div>\r\n </div>\r\n\r\n <mat-card class="mat-elevation-z3" >\r\n\r\n <mat-card-header>\r\n\r\n <h5>Are you still there ?</h5>\r\n\r\n </mat-card-header>\r\n\r\n <mat-card-content>\r\n\r\n <br>\r\n <span>{{idleState}}</span>\r\n\r\n <br>\r\n\r\n </mat-card-content>\r\n\r\n <mat-card-actions>\r\n\r\n <div class="row justify-content-around">\r\n\r\n <div class="col-2">\r\n <button style="width: 100px;" mat-stroked-button color="primary" (click)="using()">Yes</button>\r\n </div>\r\n\r\n <div class="col-4">\r\n <button style="width: 100px;" mat-stroked-button color="primary" (click)="stopWatch()">No</button>\r\n </div>\r\n\r\n </div>\r\n\r\n </mat-card-actions>\r\n\r\n </mat-card>\r\n\r\n\r\n</div>\r\n\r\n</div>\r\n',styles:[".loading-spinner{background-color:#0000001f;position:absolute;width:100%;top:0;left:0;height:100vh;align-items:center;justify-content:center;display:-ms-grid;display:grid}.loading-spinner img{-ms-grid-row-align:end;align-self:end}.loading-message{text-align:center;-ms-grid-row-align:start;align-self:start}"]})],t)}(),Rt=function(){function n(){this.dataChange=new e.EventEmitter,this.buttonClick=new e.EventEmitter,this.loadClick=new e.EventEmitter,this.createClick=new e.EventEmitter,this.colType=t.TableColumnType,this.op=t.Operator,this.displayedColumns=[],this._filterText=""}return n.prototype.ngOnInit=function(){var t=this;this.config.columns.forEach((function(e){t.displayedColumns.push(e.name)})),this.displayedColumns.push("Action"),this.styleString="width: "+50*this.config.actions.length+"px"},n.prototype.ngOnChanges=function(){this.data=new E.MatTableDataSource(this.data),this.data.paginator=this.tablePaginator,this.applyFilter(this._filterText)},n.prototype.applyFilter=function(t){this.data.filter=t.trim().toLowerCase()},n.prototype.do=function(t,e){var n=new dt;n.name=t,n.value=e,this.buttonClick.emit(n)},n.prototype.create=function(){this.createClick.emit()},n.prototype.load=function(){this.loadClick.emit()},n.prototype.test=function(e,n,r){return n==t.Operator.Equal?e==r:n==t.Operator.Greater?e>r:n==t.Operator.Less?e<r:n==t.Operator.NotEqual?e!=r:void 0},H([e.Input()],n.prototype,"config",void 0),H([e.Input()],n.prototype,"data",void 0),H([e.Output()],n.prototype,"dataChange",void 0),H([e.Output()],n.prototype,"buttonClick",void 0),H([e.Output()],n.prototype,"loadClick",void 0),H([e.Output()],n.prototype,"createClick",void 0),H([e.ViewChild("tablePaginator")],n.prototype,"tablePaginator",void 0),n=H([e.Component({selector:"spa-table",template:'<div >\r\n\r\n<div *ngIf="config.create.enabled || config.enableFilter" class="row justify-content-between" style="padding-bottom: 10px">\r\n <div class="col">\r\n<button *ngIf="config.create" [disabled]="!config.create.enabled" mat-raised-button color="primary" (click)="create()">{{config.create.display}}</button>\r\n</div>\r\n <div *ngIf="config.enableFilter" class="col d-flex justify-content-end">\r\n<mat-form-field style="font-size:12px;margin-right: 5px;">\r\n<mat-label>Filter</mat-label>\r\n<input matInput [(ngModel)]="_filterText" (keyup)="applyFilter($event.target.value)" placeholder="Enter Filter text" autocomplete="off">\r\n</mat-form-field>\r\n<button mat-mini-fab color="primary" (click)="load()" style="margin-top:5px" matTooltip="refresh data" matTooltipPosition="right"><mat-icon class="refreshIcon">refresh</mat-icon></button>\r\n</div>\r\n</div>\r\n\r\n<div class="mat-elevation-z8" *ngIf="data">\r\n\r\n <table mat-table [dataSource]="data">\r\n\r\n <ng-container *ngFor="let col of config.columns; let i = index"\r\n\r\n [matColumnDef]="col.name">\r\n <th mat-header-cell *matHeaderCellDef> {{col.display}} </th>\r\n <td mat-cell *matCellDef="let row">\r\n\r\n \x3c!-- String --\x3e\r\n <div *ngIf="(col.type==colType.String || col.type == null) && col.color == null"> {{row[col.name]}}</div>\r\n\r\n <div [ngStyle]="{\'color\':col.color.name}"\r\n *ngIf="(col.type==colType.String || col.type == null) && col.color != null && test(row[col.color.field], col.color.operator, col.color.value )" >\r\n {{row[col.name]}}\r\n </div>\r\n\r\n <div\r\n *ngIf="(col.type==colType.String || col.type == null) && col.color != null && !test(row[col.color.field], col.color.operator, col.color.value )" >\r\n {{row[col.name]}}\r\n </div>\r\n\r\n \x3c!-- <div [ngStyle]="{\'color\':col.color.name}"\r\n *ngIf="(col.type==colType.String || col.type == null) && col.color != null &&\r\n col.color.operator==op.Equal && row[col.color.field]==col.color.value" >\r\n {{row[col.name]}}\r\n </div>\r\n\r\n <div [ngStyle]="{\'color\':col.color.name}"\r\n *ngIf="(col.type==colType.String || col.type == null) && col.color != null &&\r\n col.color.operator==op.Greater && row[col.color.field]>col.color.value" >\r\n {{row[col.name]}}\r\n </div>\r\n\r\n <div [ngStyle]="{\'color\':col.color.name}"\r\n *ngIf="(col.type==colType.String || col.type == null) && col.color != null &&\r\n col.color.operator==op.Less && row[col.color.field]<col.color.value" >\r\n {{row[col.name]}}\r\n </div>\r\n\r\n <div [ngStyle]="{\'color\':col.color.name}"\r\n *ngIf="(col.type==colType.String || col.type == null) && col.color != null &&\r\n col.color.operator==op.NotEqual && row[col.color.field]!=col.color.value" >\r\n {{row[col.name]}}\r\n </div> --\x3e\r\n\r\n\r\n \x3c!-- Date --\x3e\r\n <div *ngIf="col.type==colType.Date"> {{row[col.name] | date:\'dd/MM/yyyy\'}}</div>\r\n\r\n\r\n \x3c!-- DateTime --\x3e\r\n <div *ngIf="col.type==colType.DateTime"> {{row[col.name] | date:\'dd/MM/yyyy HH:mm\'}}</div>\r\n\r\n\r\n <ng-container *ngFor="let icon of col.icons;">\r\n \x3c!-- <mat-icon *ngIf="col.type==colType.Icon && icon.operator==op.Equal && row[icon.field]==icon.value"\r\n [ngStyle]="{\'color\':icon.color}"\r\n [matTooltip]="icon.hint" matTooltipPosition="above">\r\n {{icon.name}}\r\n </mat-icon>\r\n\r\n <mat-icon *ngIf="col.type==colType.Icon && icon.operator==op.Greater && row[icon.field]>icon.value"\r\n [ngStyle]="{\'color\':icon.color}"\r\n [matTooltip]="icon.hint" matTooltipPosition="above">\r\n {{icon.name}}\r\n </mat-icon>\r\n\r\n <mat-icon *ngIf="col.type==colType.Icon && icon.operator==op.Less && row[icon.field]<icon.value"\r\n [ngStyle]="{\'color\':icon.color}"\r\n [matTooltip]="icon.hint" matTooltipPosition="above">\r\n {{icon.name}}\r\n </mat-icon>\r\n <mat-icon *ngIf="col.type==colType.Icon && icon.operator==op.NotEqual && row[icon.field]!=icon.value"\r\n [ngStyle]="{\'color\':icon.color}"\r\n [matTooltip]="icon.hint" matTooltipPosition="above">\r\n {{icon.name}}\r\n </mat-icon> --\x3e\r\n\r\n <mat-icon *ngIf="col.type==colType.Icon && test(row[icon.field],icon.operator,icon.value)"\r\n [ngStyle]="{\'color\':icon.color}"\r\n [matTooltip]="icon.hint" matTooltipPosition="above">\r\n {{icon.name}}\r\n </mat-icon>\r\n\r\n </ng-container>\r\n\r\n </td>\r\n\r\n </ng-container>\r\n\r\n\r\n\r\n\r\n <ng-container matColumnDef="Action">\r\n\r\n <th mat-header-cell *matHeaderCellDef> Action </th>\r\n <td mat-cell *matCellDef="let row" [style]="styleString+\';padding-right: 0px;\'">\r\n\r\n <ng-container *ngFor="let act of config.actions">\r\n\r\n <button *ngIf=" (act.disappear && (row[act.disappear.field] != act.disappear.value)) || !act.disappear" mat-mini-fab\r\n\r\n [disabled]="(act.disable && (row[act.disable.field] == act.disable.value))"\r\n [color]="act.color==null? \'primary\' : act.color"\r\n [matTooltip]="act.hint" matTooltipPosition="above"\r\n (click)="do(act.name,row)" style="margin-right:5px">\r\n <mat-icon>{{act.icon}}</mat-icon>\r\n\r\n </button>\r\n\r\n </ng-container>\r\n\r\n </td>\r\n </ng-container>\r\n\r\n <tr mat-header-row *matHeaderRowDef="displayedColumns"></tr>\r\n <tr mat-row *matRowDef="let row; columns: displayedColumns;" [ngClass]="{\'make-gray\': row[config.greyout.field]==config.greyout.value}"></tr>\r\n\r\n </table>\r\n</div>\r\n<mat-paginator #tablePaginator [pageSizeOptions]="[10, 50, 100]" showFirstLastButtons></mat-paginator>\r\n</div>\r\n\r\n',styles:[".mat-mini-fab{width:32px;height:32px}.mat-mini-fab mat-icon{font-size:16px;margin-top:-3px}.make-gray{background-color:#d3d3d3}"]})],n)}(),Ot=function(){function t(){this.clickable=!1,this.tileClick=new e.EventEmitter,this.selected=""}return t.prototype.ngOnInit=function(){},t.prototype.clicked=function(t){this.clickable&&(this.selected==t.tileName?(this.tileClick.emit(""),this.selected=""):(this.tileClick.emit(t.tileName),this.selected=t.tileName))},H([e.Input()],t.prototype,"tiles",void 0),H([e.Input()],t.prototype,"clickable",void 0),H([e.Output()],t.prototype,"tileClick",void 0),t=H([e.Component({selector:"spa-tiles",template:' <div class="row align-items-center">\r\n\r\n \x3c!-- <div class="col" *ngFor="let row of tiles" >\r\n\r\n <mat-card *ngIf="row.visible">\r\n <div class="row d-flex justify-content-center">\r\n\r\n <mat-label style="font-size:30px;font-weight:bold" [ngStyle]="{\'color\':row.tileColor}">{{row.tileValue}}</mat-label>\r\n\r\n </div>\r\n\r\n <div class="row d-flex justify-content-center">\r\n\r\n <mat-label [ngStyle]="{\'color\':row.selected == true ? \'darkorange\' : \'black\' }" style="font-size:12px;padding-left:5px;padding-right:5px">{{row.tileName}}</mat-label>\r\n <mat-icon style="font-size: 17px; color:steelblue;">info</mat-icon>\r\n\r\n </div>\r\n </mat-card>\r\n\r\n </div> --\x3e\r\n\r\n <ng-container *ngFor="let row of tiles">\r\n\r\n <mat-card class="col" style="margin-left: 10px;margin-right: 10px" *ngIf="row.visible" (click)="clicked(row)">\r\n\r\n <div class="row d-flex justify-content-center">\r\n\r\n <mat-label style="font-weight:bold" [ngStyle]="{\'color\':row.tileColor,\'font-size\':row.tileName == selected ? \'35px\' : \'30px\' }">{{row.tileValue}}</mat-label>\r\n\r\n </div>\r\n\r\n <div class="row d-flex justify-content-center row align-items-center">\r\n\r\n <mat-label [ngStyle]="{\'font-size\':row.tileName == selected ? \'18px\' : \'12px\' }" style="padding-left:5px;padding-right:5px">{{row.tileName}}</mat-label>\r\n <mat-icon [matTooltip]="row.info" matTooltipPosition="above" [ngStyle]="{\'font-size\':row.tileName == selected ? \'20px\' : \'17px\' }" style=" color:steelblue;">info</mat-icon>\r\n\r\n </div>\r\n\r\n </mat-card>\r\n\r\n\r\n </ng-container>\r\n\r\n </div>\r\n',styles:[""]})],t)}(),Ut=function(){function t(){this.date=new R.FormControl(new Date),this.display="",this.readonly=!1,this.currentYear=(new Date).getFullYear(),this.min=new R.FormControl(new Date(this.currentYear-50,0,1)),this.max=new R.FormControl(new Date(this.currentYear+50,0,1))}return t.prototype.ngOnInit=function(){},t.prototype.onChangeEvent=function(t){},H([e.Input()],t.prototype,"date",void 0),H([e.Input()],t.prototype,"display",void 0),H([e.Input()],t.prototype,"readonly",void 0),H([e.Input()],t.prototype,"min",void 0),H([e.Input()],t.prototype,"max",void 0),t=H([e.Component({selector:"spa-date",template:'\r\n<mat-form-field style="width:150px;margin-right:20px">\r\n<input [formControl]="date" [min]="min.value" [max]="max.value" matInput [matDatepicker]="picker_date" [placeholder]="display" [readonly]="true" [disabled]="readonly">\r\n<mat-datepicker-toggle matSuffix [for]="picker_date"></mat-datepicker-toggle>\r\n<mat-datepicker #picker_date></mat-datepicker>\r\n</mat-form-field>\r\n',styles:[""]})],t)}(),Ft=function(){function t(){this.hideRequiredControl=new R.FormControl(!0),this.readonly=!1,this.hint="",this.display="",this.placeholder="",this.value="",this.valueChange=new e.EventEmitter,this.format="text",this.type="",this.leave=new e.EventEmitter,this.enterPress=new e.EventEmitter,this.rows="",this.width="100%",this.options=[],this.optionValue="",this.optionDisplay="",this.myControl=new R.FormControl,this.required=!0,this.min=0,this.max=9e15,this.regex="",this.control=new R.FormControl(this.value,[R.Validators.required,R.Validators.minLength(this.min),R.Validators.maxLength(this.max),R.Validators.pattern(this.regex)])}return t.prototype.ngOnInit=function(){this.options.length>0&&this.initFilter(),""==this.placeholder&&(this.placeholder="Enter "+this.display)},t.prototype.ngAfterViewInit=function(){this.readonly&&(this.control.setValidators(null),this.control.updateValueAndValidity()),this.required||this.readonly||(this.control.setValidators([R.Validators.minLength(this.min),R.Validators.maxLength(this.max),R.Validators.pattern(this.regex)]),this.control.updateValueAndValidity())},t.prototype.initFilter=function(){var t=this;this.filteredOptions=this.myControl.valueChanges.pipe(i.startWith(""),i.map((function(e){return t._filter(e)})))},t.prototype._filter=function(t){var e=this,n=t.toLowerCase();return this.options.filter((function(t){return t[""+e.optionDisplay].toLowerCase().includes(n)}))},t.prototype.changed=function(){this.valueChange.emit(this.value)},t.prototype.changed2=function(){this.valueChange.emit(this.myControl.value)},t.prototype.leaved=function(){this.leave.emit()},t.prototype.enterPressed=function(){this.enterPress.emit()},t.prototype.validate=function(){return(this.required||this.min>0)&&this.control.hasError("required")?"Required":this.control.hasError("minlength")?"Minimun length is "+this.min:this.control.hasError("maxlength")?"Maximum length is "+this.max:this.control.hasError("pattern")?"Invalid Input":""},H([e.Input()],t.prototype,"readonly",void 0),H([e.Input()],t.prototype,"hint",void 0),H([e.Input()],t.prototype,"display",void 0),H([e.Input()],t.prototype,"placeholder",void 0),H([e.Input()],t.prototype,"value",void 0),H([e.Output()],t.prototype,"valueChange",void 0),H([e.Input()],t.prototype,"format",void 0),H([e.Input()],t.prototype,"type",void 0),H([e.Output()],t.prototype,"leave",void 0),H([e.Output()],t.prototype,"enterPress",void 0),H([e.Input()],t.prototype,"rows",void 0),H([e.Input()],t.prototype,"width",void 0),H([e.Input()],t.prototype,"options",void 0),H([e.Input()],t.prototype,"optionValue",void 0),H([e.Input()],t.prototype,"optionDisplay",void 0),H([e.Input()],t.prototype,"required",void 0),H([e.Input()],t.prototype,"min",void 0),H([e.Input()],t.prototype,"max",void 0),H([e.Input()],t.prototype,"regex",void 0),t=H([e.Component({selector:"spa-text",template:'<mat-form-field *ngIf="rows == \'\' && options.length==0" hideRequiredMarker="true" [hintLabel]="hint" style="padding-right: 20px;" [ngStyle]="{\'width\':width}" >\r\n<mat-label *ngIf="format==\'text\'">{{display}}</mat-label>\r\n<mat-label *ngIf="format==\'date\'">{{display | date:\'dd/MM/yyyy\'}}</mat-label>\r\n\x3c!-- <mat-label *ngIf="format==\'datetime\'">{{display | date:\'dd/MM/yyyy HH:mm\'}}</mat-label> --\x3e\r\n<input matInput autocomplete="off" [(ngModel)]="value" (change)="changed()" (blur)="leaved()" (keyup.enter)="enterPressed()" [type]="type" [placeholder]="placeholder" [formControl]="control" [required]="required" [readonly]="readonly"/>\r\n<mat-error *ngIf="control.invalid">{{validate()}}</mat-error>\r\n</mat-form-field>\r\n\r\n\r\n\x3c!-- TextArea copy - Only change input to textarea and change ngif to not --\x3e\r\n\r\n<mat-form-field *ngIf="rows != \'\' && options.length==0" hideRequiredMarker="true" [hintLabel]="hint" style="padding-right: 20px;" [ngStyle]="{\'width\':width}">\r\n<mat-label>{{display}}</mat-label>\r\n<textarea matInput autocomplete="off" [rows]="rows" [(ngModel)]="value" (change)="changed()" (keyup.enter)="enterPressed()" [placeholder]="placeholder" [formControl]="control" [required]="required" [readonly]="readonly"></textarea>\r\n<mat-error *ngIf="control.invalid">{{validate()}}</mat-error>\r\n</mat-form-field>\r\n\r\n\r\n\r\n\x3c!-- Work in progress cant bind to value --\x3e\r\n\r\n \x3c!-- <mat-form-field *ngIf="options.length !=0" hideRequiredMarker="true" [hintLabel]="hint" style="padding-right: 20px;" [ngStyle]="{\'width\':width}">\r\n <input type="text" autocomplete="off" [placeholder]="display" (change)="changed2()" matInput [formControl]="myControl" [matAutocomplete]="auto" [readonly]="readonly">\r\n <mat-autocomplete #auto="matAutocomplete">\r\n <mat-option *ngFor="let row of filteredOptions | async" [value]="row[optionValue]">\r\n {{row[optionDisplay]}}\r\n </mat-option>\r\n </mat-autocomplete>\r\n</mat-form-field> --\x3e\r\n\r\n',styles:[""]})],t)}(),jt=function(){function t(){this.width="100%",this.readonly=!1,this.readonlyMode="",this.hint="",this.placeholder="",this.display="",this.value="",this.optionValue="",this.optionDisplay="",this.optionDisplayExtra="",this.valueChange=new e.EventEmitter}return t.prototype.ngOnInit=function(){""==this.placeholder&&(this.placeholder="Select "+this.display)},t.prototype.ngOnChanges=function(){var t=this;""!=this.readonlyMode&&this.options.length>0&&(this.displayValue=this.options.filter((function(e){return e[""+t.optionValue]==t.value}))[0][""+this.optionDisplay])},t.prototype.changed=function(){this.valueChange.emit(this.value)},H([e.Input()],t.prototype,"width",void 0),H([e.Input()],t.prototype,"readonly",void 0),H([e.Input()],t.prototype,"readonlyMode",void 0),H([e.Input()],t.prototype,"hint",void 0),H([e.Input()],t.prototype,"placeholder",void 0),H([e.Input()],t.prototype,"display",void 0),H([e.Input()],t.prototype,"value",void 0),H([e.Input()],t.prototype,"options",void 0),H([e.Input()],t.prototype,"optionValue",void 0),H([e.Input()],t.prototype,"optionDisplay",void 0),H([e.Input()],t.prototype,"optionDisplayExtra",void 0),H([e.Output()],t.prototype,"valueChange",void 0),t=H([e.Component({selector:"spa-select",template:'\r\n<mat-form-field *ngIf="readonlyMode==\'\'" style="padding-right: 20px;" floatLabel="always" [ngStyle]="{\'width\':width}">\r\n <mat-label>{{display}}</mat-label>\r\n <mat-select [(value)]="value" (selectionChange)="changed()" [disabled]="readonly" [placeholder]="placeholder" >\r\n <mat-option *ngFor="let row of options" [value]="row[optionValue]">\r\n {{row[optionDisplay]}} <label *ngIf="optionDisplayExtra!=\'\' && row[optionDisplayExtra] && row[optionDisplayExtra] != \'\'">({{row[optionDisplayExtra]}})</label>\r\n </mat-option>\r\n </mat-select>\r\n <mat-hint *ngIf="hint!=\'\'">{{hint}}</mat-hint>\r\n</mat-form-field>\r\n\r\n\x3c!-- ReadOnlyModes original, text, label --\x3e\r\n\x3c!-- <spa-text *ngIf="readonlyMode==\'text\' && readonly" [display]="display" [(value)]="displayValue" [readonly]="true" ></spa-text> --\x3e\r\n',styles:[""]})],t)}(),zt=function(){function t(){this.readonly=!1,this.display="",this.value=!1,this.valueChange=new e.EventEmitter,this.click=new e.EventEmitter,this.check=new e.EventEmitter,this.uncheck=new e.EventEmitter}return t.prototype.ngOnInit=function(){},t.prototype.changed=function(){this.valueChange.emit(this.value)},t.prototype.clicked=function(){this.click.emit(),this.value?this.unchecked():this.checked()},t.prototype.checked=function(){this.check.emit()},t.prototype.unchecked=function(){this.uncheck.emit()},H([e.Input()],t.prototype,"readonly",void 0),H([e.Input()],t.prototype,"display",void 0),H([e.Input()],t.prototype,"value",void 0),H([e.Output()],t.prototype,"valueChange",void 0),H([e.Output()],t.prototype,"click",void 0),H([e.Output()],t.prototype,"check",void 0),H([e.Output()],t.prototype,"uncheck",void 0),t=H([e.Component({selector:"spa-check",template:' <mat-checkbox color="primary" style="margin-right:50px; font-size:14px" [(ngModel)]="value" (change)="changed()" (click)="clicked()" [disabled]="readonly">{{display}}</mat-checkbox>\r\n',styles:[""]})],t)}(),_t=function(){function t(){this.message="Drag and drop files here",this.files=[],this.filesChange=new e.EventEmitter,this.upload=new e.EventEmitter,this.enableUpload=!1}return t.prototype.ngOnInit=function(){},t.prototype.onFileDropped=function(t){this.prepareFilesList(t)},t.prototype.fileBrowseHandler=function(t){this.prepareFilesList(t)},t.prototype.deleteFile=function(t){this.files.splice(t,1)},t.prototype.prepareFilesList=function(t){var e,n;try{for(var r=V(t),o=r.next();!o.done;o=r.next()){var i=o.value;i.progress=0,this.files.push(i)}}catch(t){e={error:t}}finally{try{o&&!o.done&&(n=r.return)&&n.call(r)}finally{if(e)throw e.error}}},t.prototype.formatBytes=function(t,e){if(0===t)return"0 Bytes";var n=e<=0?0:e||2,r=Math.floor(Math.log(t)/Math.log(1024));return parseFloat((t/Math.pow(1024,r)).toFixed(n))+" "+["Bytes","KB","MB","GB","TB","PB","EB","ZB","YB"][r]},t.prototype.uploaded=function(){this.upload.emit()},t.prototype.filesChanged=function(){this.filesChange.emit(this.files)},H([e.Input()],t.prototype,"message",void 0),H([e.Input()],t.prototype,"files",void 0),H([e.Output()],t.prototype,"filesChange",void 0),H([e.Output()],t.prototype,"upload",void 0),H([e.Input()],t.prototype,"enableUpload",void 0),t=H([e.Component({selector:"spa-attach",template:'<div class="tin-input-row" style="width: 100%;">\r\n\r\n <div class="col">\r\n <div class="container" appDnd (fileDropped)="onFileDropped($event)">\r\n <input type="file" #fileDropRef id="fileDropRef" multiple (change)="fileBrowseHandler($event.target.files)" />\r\n <h4>{{message}}</h4>\r\n <h4>or</h4>\r\n <label for="fileDropRef">Click to Browse</label>\r\n </div>\r\n </div>\r\n\r\n <div class="col">\r\n <div class="files-list ">\r\n <div class="single-file " style="width: 100%;" *ngFor="let file of files; let i = index">\r\n\r\n <div class="tin-input-row info" >\r\n <h4 class="name">\r\n {{ file?.name }}\r\n </h4>\r\n <p class="size">\r\n {{ formatBytes(file?.size, 2) }}\r\n </p>\r\n </div>\r\n\r\n <div class="delete" (click)="deleteFile(i)">\r\n <svg xmlns="http://www.w3.org/2000/svg" width="14" height="18" viewBox="0 0 14 18">\r\n <path fill="#B1B1B1" fill-rule="nonzero"\r\n d="M1 16c0 1.1.9 2 2 2h8c1.1 0 2-.9 2-2V6c0-1.1-.9-2-2-2H3c-1.1 0-2 .9-2 2v10zm3.17-7.83a.996.996 0 0 1 1.41 0L7 9.59l1.42-1.42a.996.996 0 1 1 1.41 1.41L8.41 11l1.42 1.42a.996.996 0 1 1-1.41 1.41L7 12.41l-1.42 1.42a.996.996 0 1 1-1.41-1.41L5.59 11 4.17 9.58a.996.996 0 0 1 0-1.41zM10.5 1L9.79.29C9.61.11 9.35 0 9.09 0H4.91c-.26 0-.52.11-.7.29L3.5 1H1c-.55 0-1 .45-1 1s.45 1 1 1h12c.55 0 1-.45 1-1s-.45-1-1-1h-2.5z" />\r\n </svg>\r\n </div>\r\n </div>\r\n </div>\r\n\r\n <div *ngIf="files.length > 0 && enableUpload" class="tin-input-row d-flex justify-content-center" style="width: 100%;" >\r\n <button mat-button color="primary" (click)="uploaded()" matTooltip="Upload New Documents" matTooltipPosition="above" ><mat-icon>file_upload</mat-icon> Upload</button>\r\n </div>\r\n </div>\r\n\r\n</div>\r\n',styles:[".container{width:100%;height:200px;padding:2rem;text-align:center;border:2px dashed #2a7b94;position:relative;margin:0 auto}.container input{opacity:0;position:absolute;z-index:2;width:100%;height:100%;top:0;left:0}.container label{color:#fff;width:183px;height:44px;border-radius:21.5px;background-color:#db202f;padding:8px 16px}.container h3{font-size:20px;font-weight:600;color:#38424c}.fileover{-webkit-animation:1s infinite shake;animation:1s infinite shake}.files-list{margin-top:1.5rem}.files-list .single-file{display:flex;padding:.5rem;justify-content:space-between;align-items:center;border:1px dashed #1c824d;margin-bottom:1rem;margin-right:1rem;display:flex;flex-grow:1}.files-list .single-file .delete{display:flex;margin-left:.5rem;cursor:pointer;align-self:flex-end}.files-list .single-file .name{font-size:14px;font-weight:500;color:#353f4a;margin:0}.files-list .single-file .size{font-size:12px;font-weight:500;color:#a4a4a4;margin:0 0 0 1rem}.files-list .single-file .info{width:100%}@-webkit-keyframes shake{0%{transform:translate(1px,1px) rotate(0)}10%{transform:translate(-1px,-2px) rotate(-1deg)}20%{transform:translate(-3px,0) rotate(1deg)}30%{transform:translate(3px,2px) rotate(0)}40%{transform:translate(1px,-1px) rotate(1deg)}50%{transform:translate(-1px,2px) rotate(-1deg)}60%{transform:translate(-3px,1px) rotate(0)}70%{transform:translate(3px,1px) rotate(-1deg)}80%{transform:translate(-1px,-1px) rotate(1deg)}90%{transform:translate(1px,2px) rotate(0)}100%{transform:translate(1px,-2px) rotate(-1deg)}}@keyframes shake{0%{transform:translate(1px,1px) rotate(0)}10%{transform:translate(-1px,-2px) rotate(-1deg)}20%{transform:translate(-3px,0) rotate(1deg)}30%{transform:translate(3px,2px) rotate(0)}40%{transform:translate(1px,-1px) rotate(1deg)}50%{transform:translate(-1px,2px) rotate(-1deg)}60%{transform:translate(-3px,1px) rotate(0)}70%{transform:translate(3px,1px) rotate(-1deg)}80%{transform:translate(-1px,-1px) rotate(1deg)}90%{transform:translate(1px,2px) rotate(0)}100%{transform:translate(1px,-2px) rotate(-1deg)}}"]})],t)}(),Ht=function(){function t(){this.display="",this.value="",this.valueChange=new e.EventEmitter,this.readonly=!1,this.min="01 jan 1900",this.max="31 dec 9999"}return t.prototype.ngOnInit=function(){},t.prototype.changed=function(){this.valueChange.emit(this.value)},H([e.Input()],t.prototype,"display",void 0),H([e.Input()],t.prototype,"value",void 0),H([e.Output()],t.prototype,"valueChange",void 0),H([e.Input()],t.prototype,"readonly",void 0),H([e.Input()],t.prototype,"min",void 0),H([e.Input()],t.prototype,"max",void 0),t=H([e.Component({selector:"spa-datetime",template:'<mat-form-field style="width:150px;margin-right:20px">\r\n<mat-label>{{display}}</mat-label>\r\n<input matInput autocomplete="off" type="datetime-local" [(ngModel)]="value" [min]="min" [max]="max" (change)="changed()" [placeholder]="display" [readonly]="readonly" />\r\n</mat-form-field>\r\n',styles:[""]})],t)}(),qt=function(){function t(){this.readonly=!1,this.display="",this.value="",this.valueChange=new e.EventEmitter,this.width="100%",this.hint="",this.currency="$"}return t.prototype.ngOnInit=function(){},t.prototype.ngOnChanges=function(){},t.prototype.changed=function(){this.valueChange.emit(this.value)},H([e.Input()],t.prototype,"readonly",void 0),H([e.Input()],t.prototype,"display",void 0),H([e.Input()],t.prototype,"value",void 0),H([e.Output()],t.prototype,"valueChange",void 0),H([e.Input()],t.prototype,"width",void 0),H([e.Input()],t.prototype,"hint",void 0),H([e.Input()],t.prototype,"currency",void 0),t=H([e.Component({selector:"spa-money",template:'\r\n<div class="tin-input-row">\r\n\r\n<Label>{{currency}}</Label>\r\n<mat-form-field [hintLabel]="hint" style="padding-right: 20px;" [ngStyle]="{\'width\':width}" >\r\n <mat-label>{{display}}</mat-label>\r\n \x3c!-- <span>$</span> --\x3e\r\n <input matInput class="example-right-align" autocomplete="off" type="number" min="0.00" step="0.01" [(ngModel)]="value " [placeholder]="display" (change)="changed()" [readonly]="readonly" />\r\n\x3c!-- <span matTextSuffix>.00</span> --\x3e\r\n</mat-form-field>\r\n</div>\r\n\r\n\r\n\r\n\r\n',styles:["input.example-right-align{-moz-appearance:textfield}.example-right-align{text-align:right}input.example-right-align::-webkit-inner-spin-button,input.example-right-align::-webkit-outer-spin-button{display:none}.curr{background-color:red}"]})],t)}(),Bt=function(){function t(){this.fileDropped=new e.EventEmitter}return t.prototype.onDragOver=function(t){t.preventDefault(),t.stopPropagation(),this.fileOver=!0},t.prototype.onDragLeave=function(t){t.preventDefault(),t.stopPropagation(),this.fileOver=!1},t.prototype.ondrop=function(t){t.preventDefault(),t.stopPropagation(),this.fileOver=!1;var e=t.dataTransfer.files;e.length>0&&this.fileDropped.emit(e)},H([e.HostBinding("class.fileover")],t.prototype,"fileOver",void 0),H([e.Output()],t.prototype,"fileDropped",void 0),H([e.HostListener("dragover",["$event"])],t.prototype,"onDragOver",null),H([e.HostListener("dragleave",["$event"])],t.prototype,"onDragLeave",null),H([e.HostListener("drop",["$event"])],t.prototype,"ondrop",null),t=H([e.Directive({selector:"[appDnd]"})],t)}(),Gt=function(){function t(t){this.messageService=t,this.icon="",this.removable=!1,this.addable=!1,this.click=new e.EventEmitter,this.remove=new e.EventEmitter}return t.prototype.ngOnInit=function(){},t.prototype.clicked=function(t){"string"==typeof t&&t&&this.click.emit(t)},t.prototype.removed=function(t){var e=this;this.messageService.confirm("Remove "+t+" ?").subscribe((function(n){"yes"==n&&e.remove.emit(t)}))},t.ctorParameters=function(){return[{type:K}]},H([e.Input()],t.prototype,"icon",void 0),H([e.Input()],t.prototype,"removable",void 0),H([e.Input()],t.prototype,"addable",void 0),H([e.Input()],t.prototype,"chips",void 0),H([e.Output()],t.prototype,"click",void 0),H([e.Output()],t.prototype,"remove",void 0),t=H([e.Component({selector:"spa-chips",template:'\r\n\r\n\r\n<div class="row mt-1" style="margin-left: 1em;">\r\n <mat-chip-list #chipList >\r\n <mat-chip *ngFor="let chip of chips let i = index" selectable [removable]="removable" style="font-size: 12px;" [ngStyle]="{\'padding-right\': removable ? \'5px\':\'12px\'}" (click)="clicked(chip)" >\r\n <mat-icon *ngIf="icon != \'\'" color="primary" style="font-size: 22px;">{{icon}}</mat-icon>\r\n\r\n {{chip}}\r\n\r\n <mat-icon *ngIf="removable" style="font-size: 20px; margin-left: 5px;margin-top: 3px;margin-right: 0px; color: grey;" (click)="removed(chip)">cancel</mat-icon>\r\n </mat-chip>\r\n </mat-chip-list>\r\n</div>\r\n\r\n\r\n',styles:[""]})],t)}(),Vt=function(){function t(){this.notes=new Array,this.notesMessage="Empty",this.title="Notes"}return t.prototype.ngOnInit=function(){},H([e.Input()],t.prototype,"notes",void 0),H([e.Input()],t.prototype,"title",void 0),t=H([e.Component({selector:"spa-activity",template:'\r\n <div class="tin-input-row mt-3" *ngIf="title != \'\'">\r\n <mat-label style="font-size: 20px; font-weight: 300" > {{title}}</mat-label >\r\n </div>\r\n\r\n <ul *ngIf="notes && notes.length>0" class="list-group list-group-flush" style="max-height:350px; margin-left:5px">\r\n\r\n <li *ngFor="let note of notes" class="list-group-item list-group-item-action flex-column align-items-start">\r\n <div class="d-flex w-100 justify-content-between">\r\n <div class="mb-0">{{note.createdByName}}</div>\r\n \x3c!-- <small class="text-muted">{{note.expr1}} ago</small> --\x3e\r\n </div>\r\n\r\n <small>{{note.details}} (<em>{{note.createdDate | date: \'dd MMM yyyy HH:mm\'}}</em>) </small>\r\n </li>\r\n\r\n\r\n </ul>\r\n\r\n <div *ngIf="notes && notes.length==0" class="d-flex justify-content-center row align-items-center" style="max-height:200px">\r\n\r\n No {{title.toLowerCase()}}\r\n\r\n </div>\r\n',styles:[""]})],t)}(),Wt=function(){function t(){this.optionValue="",this.optionDisplay="",this.readonly=!1,this.value="",this.display="",this.show=!1,this.valueChange=new e.EventEmitter,this.enterPress=new e.EventEmitter}return t.prototype.ngOnInit=function(){this.OGValue=this.value},t.prototype.changed=function(){this.valueChange.emit(this.value)},t.prototype.enterPressed=function(){this.valueChange.emit()},t.prototype.resetValue=function(){this.value=this.OGValue,this.changed()},H([e.Input()],t.prototype,"options",void 0),H([e.Input()],t.prototype,"optionValue",void 0),H([e.Input()],t.prototype,"optionDisplay",void 0),H([e.Input()],t.prototype,"readonly",void 0),H([e.Input()],t.prototype,"value",void 0),H([e.Input()],t.prototype,"display",void 0),H([e.Input()],t.prototype,"show",void 0),H([e.Output()],t.prototype,"valueChange",void 0),H([e.Output()],t.prototype,"enterPress",void 0),t=H([e.Component({selector:"spa-option",template:'\r\n<mat-checkbox color="primary" style="margin-right:5px" [(ngModel)]="show" (change)="resetValue()" labelPosition="after">{{display}}</mat-checkbox>\r\n\r\n\r\n<mat-form-field style="margin-right:10px;width: 0px;" >\r\n<input matInput />\r\n</mat-form-field>\r\n\r\n\r\n<mat-form-field style="margin-right:30px" *ngIf="show && !options">\r\n<mat-label>{{display}}</mat-label>\r\n<input matInput [(ngModel)]="value" width="100" (change)="changed()" (keyup.enter)="changed()" [placeholder]="\'Enter \' + display" autocomplete="off" />\r\n</mat-form-field>\r\n\r\n\r\n<mat-form-field style="margin-right: 20px;" floatLabel="always" width="100" *ngIf="show && options">\r\n <mat-label>{{display}}</mat-label>\r\n <mat-select [(value)]="value" (selectionChange)="changed()" [placeholder]="\'Select \' + display" [disabled]="readonly" >\r\n <mat-option *ngFor="let row of options" [value]="row[optionValue]">\r\n {{row[optionDisplay]}}\r\n </mat-option>\r\n </mat-select>\r\n</mat-form-field>\r\n\r\n\x3c!-- <spa-text *ngIf="show" style="margin-right:30px" [display]="\'Enter \' + display" (enterPress)="enterPressed()" (valueChange)="changed($event.target.value)" width="100" [required]="false" [(value)]="value" ></spa-text> --\x3e\r\n\r\n',styles:[""]})],t)}(),Zt=function(){function t(){this.display="",this.value="",this.format="text"}return t.prototype.ngOnInit=function(){},H([e.Input()],t.prototype,"display",void 0),H([e.Input()],t.prototype,"value",void 0),H([e.Input()],t.prototype,"format",void 0),t=H([e.Component({selector:"spa-label",template:'<div *ngIf="format==\'text\'">\r\n <label style="font-weight: 500" >{{display}}: </label> <label>{{value}} </label> \r\n</div>\r\n\r\n<div *ngIf="format==\'date\'">\r\n <label style="font-weight: 500" >{{display}}: </label> <label>{{value | date:\'dd/MM/yyyy\'}} </label> \r\n</div>\r\n\r\n<div *ngIf="format==\'datetime\'">\r\n <label style="font-weight: 500" >{{display}}: </label> <label>{{value | date:\'dd/MM/yyyy HH:mm\'}} </label> \r\n</div>\r\n\r\n',styles:[""]})],t)}(),Jt={displayDefaultIndicatorType:!1},Yt=function(){function t(){this.value=""}return t.prototype.ngOnInit=function(){},t.prototype.ngAfterViewInit=function(){},t.prototype.ngOnChanges=function(){this.pushSteps()},t.prototype.setStepper=function(){if(""!=this.value)switch(this.stepper.selectedIndex=0,this.value){case"Draft":this.stepper.selectedIndex=0;break;case"Head Approval":this.pushStepper(1);break;case"CE Approval":this.pushStepper(2);break;case"Booking":this.pushStepper(3);break;case"BTA Approval":this.pushStepper(4);break;case"Travel":this.pushStepper(5);break;case"BTR Approval":this.pushStepper(6);break;case"Travel Closure":this.pushStepper(7)}},t.prototype.pushStepper=function(t){for(var e=0;e<t+1;e++)this.stepper.selectedIndex=e},t.prototype.pushSteps=function(){var t,e;if(0!=this.steps.length&&""!=this.value){this.stepper.selectedIndex=0;var n=0;try{for(var r=V(this.steps),o=r.next();!o.done;o=r.next()){if(o.value.name==this.value){this.stepper.selectedIndex=n;break}this.stepper.selectedIndex=n,n++}}catch(e){t={error:e}}finally{try{o&&!o.done&&(e=r.return)&&e.call(r)}finally{if(t)throw t.error}}}},H([e.ViewChild("stepper")],t.prototype,"stepper",void 0),H([e.Input()],t.prototype,"value",void 0),H([e.Input()],t.prototype,"steps",void 0),t=H([e.Component({selector:"spa-steps",template:'\r\n\r\n\r\n\x3c!-- <mat-horizontal-stepper class="test" labelPosition="bottom" #stepper>\r\n <mat-step [editable]="false" label="Draft"> </mat-step>\r\n <mat-step [editable]="false" label="Head Approval" > </mat-step>\r\n <mat-step [editable]="false" label="CE Approval"> </mat-step>\r\n <mat-step [editable]="false" label="Booking" state="booking"> </mat-step>\r\n <mat-step [editable]="false" label="BTA Approval"> </mat-step>\r\n <mat-step [editable]="false" label="Travel"> </mat-step>\r\n <mat-step [editable]="false" label="BTR Approval"> </mat-step>\r\n <mat-step [editable]="false" label="Closure"> </mat-step>\r\n <ng-template matStepperIcon="booking"> <mat-icon>forum</mat-icon> </ng-template>\r\n</mat-horizontal-stepper> --\x3e\r\n\r\n<mat-horizontal-stepper class="transparent" labelPosition="bottom" #stepper>\r\n\r\n <mat-step *ngFor="let row of steps"\r\n [editable]="false" [label]="row.name">\r\n </mat-step>\r\n\r\n \x3c!-- <ng-template *ngFor="let row of steps"\r\n [matStepperIcon]="row.name"> <mat-icon>{{row.icon}}</mat-icon>\r\n </ng-template> --\x3e\r\n\r\n \x3c!-- <ng-template matStepperIcon="booking">\r\n <mat-icon>call_end</mat-icon>\r\n </ng-template> --\x3e\r\n\r\n \x3c!-- <ng-template ngFor let-xb [ngForOf]="steps" matStepperIcon="Booking"> <mat-icon>forum</mat-icon>\r\n\r\n </ng-template> --\x3e\r\n\r\n</mat-horizontal-stepper>\r\n',providers:[{provide:j.STEPPER_GLOBAL_OPTIONS,useValue:Jt}],styles:[".transparent{background-color:rgba(0,0,0,0)}:host ::ng-deep.mat-step-header{padding:5px!important}:host ::ng-deep.mat-stepper-horizontal-line{min-width:5px!important}:host ::ng-deep .mat-horizontal-content-container{padding:0!important}:host ::ng-deep .mat-horizontal-stepper-header{pointer-events:none!important}"]})],t)}(),Kt=function(){function t(){this.data=new E.MatTableDataSource,this.refreshClick=new e.EventEmitter,this._filterText=""}return t.prototype.ngOnInit=function(){},t.prototype.ngOnChanges=function(){this.applyFilter(this._filterText)},t.prototype.applyFilter=function(t){this.data&&(this.data.filter=t.trim().toLowerCase())},t.prototype.refreshClicked=function(){this.refreshClick.emit()},H([e.Input()],t.prototype,"data",void 0),H([e.Output()],t.prototype,"refreshClick",void 0),t=H([e.Component({selector:"spa-filter",template:'<mat-form-field style="font-size:12px">\r\n <mat-label>Filter</mat-label>\r\n <input id="txtFilter" matInput [(ngModel)]="_filterText" (keyup)="applyFilter($event.target.value)" placeholder="Enter Filter text" autocomplete="off">\r\n</mat-form-field>\r\n\r\n<button id="btnFilter" mat-mini-fab color="primary" matTooltip="Refresh Data" matTooltipPosition="above" (click)="refreshClicked()" style="margin-right:1em;margin-top:5px"><mat-icon class="refreshIcon">refresh</mat-icon></button>\r\n',styles:[".mat-mini-fab{width:32px;height:32px}.mat-mini-fab mat-icon{font-size:16px;margin-top:-3px}.refreshIcon{font-size:22px!important;margin-top:-7px!important}"]})],t)}(),$t=function(){function t(){}return t=H([e.NgModule({declarations:[Bt,Et,Y,Lt,Pt,At,Rt,Ot,Ut,Ft,jt,zt,_t,Ht,qt,Gt,Vt,Wt,Zt,Yt,Kt],entryComponents:[Y],imports:[R.ReactiveFormsModule.withConfig({warnOnNgModelWithFormControl:"never"}),p.CommonModule,R.FormsModule,R.ReactiveFormsModule,Dt,U.MomentModule,O.NgIdleKeepaliveModule.forRoot()],exports:[p.CommonModule,R.FormsModule,Dt,Et,Y,Lt,Pt,At,Rt,Ot,Ut,jt,Ft,Ht,zt,_t,qt,Gt,Vt,Wt,Zt,Yt,Kt],providers:[{provide:c.HTTP_INTERCEPTORS,useClass:Nt,multi:!0},{provide:p.LocationStrategy,useClass:p.HashLocationStrategy}]})],t)}(),Qt=function(){function t(t,e,n,r,o,i,a,s){this.httpService=t,this.storageService=e,this.router=n,this.messageService=r,this.dataService=o,this.authService=i,this.logService=a,this.route=s,this.user=new vt,this.hide=!0,this.isProcessing=!1,this.appConfig=new ht}return t.prototype.ngOnInit=function(){var t=this;this.authService.Updateloggedin(!1),this.authService.UpdateRole(null),this.storageService.clear(),this.dataService.appConfigObserv.subscribe((function(e){return t.appConfig=e})),null!=this.route.snapshot.queryParams.redirectTo?this.redirectPath=this.route.snapshot.queryParams.redirectTo:this.redirectPath="home"},t.prototype.signup=function(){this.router.navigate(["signup"])},t.prototype.recoverAccount=function(){this.router.navigate(["recover-account"])},t.prototype.login=function(){var t=this;""!=this.user.userName&&""!=this.user.password?(this.logService.info("logging in"),this.isProcessing=!0,this.user.userName=this.user.userName,this.dataService.Login(this.user).subscribe((function(e){if(t.isProcessing=!1,e.success){if("local"==e.data.authType&&!t.appConfig.localAuth)return void t.messageService.toast("Contact Admin: Authentication Type error");if("AD"==e.data.authType&&!t.appConfig.ADAuth)return void t.messageService.toast("Contact Admin: Authentication Type error");if(t.authService.Updateloggedin(!0),t.authService.UpdateToken(e.data.token),t.storageService.store(tt.AUTH_TOKEN,e.data.token),t.authService.UpdateTokenExpire(e.data.expiration),t.storageService.store(tt.AUTH_TOKEN_EXPIRE,e.data.expiration),t.authService.UpdateCurrentUser(t.user.userName),t.storageService.store(tt.AUTH_USER,t.user.userName),t.authService.updateLoggedUserFullName(e.data.firstName),t.storageService.store(tt.AUTH_NAME,e.data.firstName),t.authService.UpdateRole(e.data.role),t.storageService.store(tt.AUTH_ROLES,JSON.stringify(e.data.role)),t.logService.info("logged in"),1==e.data.changePassword&&"local"==e.data.authType)return void t.router.navigate(["home/user/change-password"],{queryParams:{redirectTo:t.redirectPath},queryParamsHandling:"merge",skipLocationChange:!1});t.router.navigate([t.redirectPath])}else t.messageService.toast("Error: "+e.message),t.user.password=""}),(function(e){t.isProcessing=!1,t.messageService.toast(t.httpService.Error(e))}))):this.messageService.toast("Please enter your credentials")},t.ctorParameters=function(){return[{type:It},{type:J},{type:l.Router},{type:K},{type:kt},{type:Ct},{type:St},{type:l.ActivatedRoute}]},t=H([e.Component({selector:"spa-login",template:'\r\n <div class="tin-bg-login login-page">\r\n\r\n <div *ngIf="appConfig.logo!=\'\'" class="d-flex justify-content-center row align-items-center" style="margin-top:3em;margin-bottom:1em">\r\n\r\n <img *ngIf="appConfig.logoSize==\'normal\'" [src]="appConfig.logo" style="height:100px;margin-right:3em;margin-left:3em" />\r\n <img *ngIf="appConfig.logoSize==\'medium\'" [src]="appConfig.logo" style="height:150px;margin-right:3em;margin-left:3em" />\r\n <img *ngIf="appConfig.logoSize==\'large\'" [src]="appConfig.logo" style="height:250px;margin-right:3em;margin-left:3em" />\r\n\r\n </div>\r\n\r\n\r\n <div *ngIf="appConfig.logo ==\'\'" style="margin-top:2em">\r\n \x3c!-- Add margin top when there is no logo --\x3e\r\n </div>\r\n\r\n\r\n <div class="d-flex justify-content-center row align-items-center" style="margin-top:3em">\r\n\r\n <div class="d-none d-sm-block">\r\n </div>\r\n\r\n <div style="margin-left:1em">\r\n\r\n <mat-card class="mat-elevation-z3" style="width:400px; ">\r\n\r\n <mat-card-header>\r\n <mat-card-title>{{appConfig.appName}}</mat-card-title>\r\n </mat-card-header>\r\n\r\n <mat-card-content>\r\n\r\n <div class="tin-input mt-2">\r\n\r\n <spa-text id="txtuserName" display="Username" [(value)]="user.userName" ></spa-text>\r\n\r\n <mat-form-field >\r\n <mat-label>Password</mat-label>\r\n <input id="txtPassword" matInput [type]="hide ? \'password\' : \'text\'" (keyup.enter)="login()" [(ngModel)]="user.password" autocomplete="off" >\r\n <button mat-icon-button matSuffix (click)="hide = !hide" [attr.aria-label]="\'Hide password\'" [attr.aria-pressed]="hide">\r\n <mat-icon style="font-size: 18px;">{{hide ? \'visibility_off\' : \'visibility\'}}</mat-icon>\r\n </button>\r\n </mat-form-field>\r\n\r\n </div>\r\n\r\n </mat-card-content>\r\n\r\n\r\n <mat-card-actions>\r\n\r\n <div class="row ">\r\n\r\n <div class="col d-flex justify-content-center">\r\n <button id="btnLogin" mat-raised-button [disabled]="isProcessing" style="width: 100px;" (click)="login()" color="primary">Login</button>\r\n </div>\r\n\r\n <div class="col d-flex justify-content-center" *ngIf="appConfig.selfService">\r\n <button id="btnSignup" mat-stroked-button color="primary" style="width: 100px;" (click)="signup()">Signup</button>\r\n </div>\r\n\r\n </div>\r\n\r\n </mat-card-actions>\r\n\r\n </mat-card>\r\n\r\n <div *ngIf="appConfig.selfService">\r\n <br />\r\n <a mat-button id="lnkRecover" style="margin-left: 1em" (click)="recoverAccount()">Forgot your password ?</a>\r\n </div>\r\n\r\n </div>\r\n\r\n </div>\r\n\r\n </div>\r\n\r\n',styles:[".login-page{position:absolute;top:0;left:0;right:0;bottom:0;overflow:auto}.tin-bg-login{background-image:url(~/assets/login-bg.jpg);background-size:100%}"]})],t)}(),Xt=function(){function t(t,e,n,r){this.httpService=t,this.messageService=e,this.dataService=n,this.authService=r,this.isProcessing=!1,this.user=new vt,this.profile=new xt,this.account=new ft}return t.prototype.ngOnInit=function(){this.account.user=this.user,this.account.profile=this.profile},t.prototype.create=function(){var t=this;this.profile.userName=this.user.userName,this.isProcessing=!0,this.dataService.RegisterAccount(this.account).subscribe((function(e){t.isProcessing=!1,"success"==e.message?(t.messageService.toast("Account Created"),t.user=new vt,t.profile=new xt):t.messageService.toast("Error: "+e.message)}),(function(e){t.isProcessing=!1,t.messageService.toast(t.httpService.Error(e))}))},t.ctorParameters=function(){return[{type:It},{type:K},{type:kt},{type:Ct}]},t=H([e.Component({selector:"spa-signup",template:'\r\n<h4 style="margin-top: 1em;">Signup</h4>\r\n\r\n<hr/>\r\nComplete the form below.\r\n\r\n<div class="d-flex justify-content-center row align-items-center">\r\n\r\n <div class="tin-input" style="font-size:14px; width: 50%;">\r\n\r\n\r\n <div class="tin-input-row">\r\n\r\n <div class="col">\r\n\r\n <mat-form-field style="width:100%">\r\n <mat-label>FirstName</mat-label>\r\n <input matInput autocomplete="off" [(ngModel)]="account.profile.firstName" placeholder="Enter FirstName" />\r\n </mat-form-field>\r\n\r\n </div>\r\n\r\n <div class="col">\r\n\r\n <mat-form-field style="width:100%">\r\n <mat-label>LastName</mat-label>\r\n <input matInput autocomplete="off" [(ngModel)]="profile.lastName" placeholder="Enter LastName" />\r\n </mat-form-field>\r\n\r\n </div>\r\n\r\n\r\n </div>\r\n\r\n <div class="tin-input-row mt-3">\r\n\r\n <div class="col-6">\r\n\r\n <mat-form-field style="width:100%">\r\n <mat-label>userName</mat-label>\r\n <input matInput autocomplete="off" [(ngModel)]="user.userName" placeholder="Enter userName" />\r\n </mat-form-field>\r\n </div>\r\n\r\n\r\n </div>\r\n\r\n <div class="tin-input-row">\r\n\r\n <div class="col">\r\n\r\n <mat-form-field style="width:100%">\r\n <mat-label>Password</mat-label>\r\n <input matInput autocomplete="off" type="password" [(ngModel)]="user.password" placeholder="Enter Password" />\r\n </mat-form-field>\r\n\r\n </div>\r\n\r\n <div class="col">\r\n\r\n <mat-form-field style="width:100%">\r\n <mat-label>Confirm Password</mat-label>\r\n <input matInput autocomplete="off" type="password" [(ngModel)]="confirmPassword" placeholder="Enter Confirm Password" />\r\n </mat-form-field>\r\n\r\n </div>\r\n\r\n </div>\r\n\r\n\r\n\r\n\r\n <div class="tin-input-row mt-3">\r\n <button mat-raised-button color="primary" (click)="create()" cdkFocusInitial>Create</button>\r\n </div>\r\n\r\n\r\n\r\n </div>\r\n\r\n\r\n\r\n</div>\r\n\r\n',styles:[""]})],t)}(),te=function(){function t(t,e,n,r){this.location=t,this.dataService=e,this.authService=n,this.messageService=r,this.userName=""}return t.prototype.ngOnInit=function(){},t.prototype.recover=function(){var t=this;if(""!=this.userName){var e=new vt;e.userName=this.userName,this.dataService.SelfReset(e).subscribe((function(e){"success"==e.message?(t.messageService.toast("The password has been sent to your email"),t.location.back()):t.messageService.toast("Error: "+e.message)}))}else this.messageService.toast("Please enter your userName")},t.ctorParameters=function(){return[{type:p.Location},{type:kt},{type:Ct},{type:K}]},t=H([e.Component({selector:"spa-recover-account",template:'<h4 style="margin-top: 1em;">Recover Account</h4>\r\n\r\n<hr/>\r\nSubmit your userName and we will send you details to your registered email address.\r\n\r\n<div class="mt-3" >\r\n\r\n <div class="tin-input " style="font-size:14px;">\r\n\r\n <div class="col">\r\n <spa-text display="Username" [(value)]="userName" ></spa-text>\r\n </div>\r\n\r\n <div class="col mt-3">\r\n <button mat-raised-button color="primary" (click)="recover()" cdkFocusInitial>Submit</button>\r\n </div>\r\n\r\n </div>\r\n\r\n</div>\r\n',styles:[""]})],t)}(),ee=function(){function t(){}return t=H([e.NgModule({declarations:[Qt,Xt,te],entryComponents:[],imports:[R.ReactiveFormsModule.withConfig({warnOnNgModelWithFormControl:"never"}),p.CommonModule,R.FormsModule,R.ReactiveFormsModule,Dt,$t],exports:[p.CommonModule,R.FormsModule,Dt,Qt,Xt,te]})],t)}(),ne=function(){function t(t,e,n,r,o,i,a){this.router=t,this.location=e,this.httpService=n,this.messageService=r,this.dataService=o,this.authService=i,this.route=a,this.isProcessing=!1,this.changePassword=new yt}return t.prototype.ngOnInit=function(){this.myRole=this.authService.currentRoleSource.value,""==this.dataService.tmpProfileuserName?this.changePassword.userName=this.authService.currentUser:(this.changePassword.userName=this.dataService.tmpProfileuserName,this.dataService.tmpProfileuserName=""),null!=this.route.snapshot.queryParams.redirectTo?this.redirectPath=this.route.snapshot.queryParams.redirectTo:this.redirectPath="home"},t.prototype.change=function(){var t=this;this.myRole[this.dataService.capUsers.name]||""!=this.changePassword.currentPassword?""!=this.changePassword.newPassword?""!=this.changePassword.confirmPassword?this.changePassword.confirmPassword==this.changePassword.newPassword?(this.isProcessing=!0,this.myRole[this.dataService.capUsers.name]?this.dataService.ChangePasswordAdmin(this.changePassword).subscribe((function(e){t.isProcessing=!1,"success"==e.message?(t.messageService.toast("Password Changed"),t.router.navigate([t.redirectPath])):t.messageService.toast("Error: "+e.message)})):this.dataService.ChangePassword(this.changePassword).subscribe((function(e){t.isProcessing=!1,"success"==e.message?(t.messageService.toast("Password Changed"),t.router.navigate([t.redirectPath])):t.messageService.toast("Error: "+e.message)}))):this.messageService.toast("Passwords do not match"):this.messageService.toast("Please confirm new Password"):this.messageService.toast("Please enter new Password"):this.messageService.toast("Please enter current Password")},t.ctorParameters=function(){return[{type:l.Router},{type:p.Location},{type:It},{type:K},{type:kt},{type:Ct},{type:l.ActivatedRoute}]},t=H([e.Component({selector:"spa-change-password",template:'<h4>Change Password</h4>\r\n<hr>\r\n\r\n<div class="container">\r\n\r\n <div class="d-flex justify-content-center row align-items-center" >\r\n\r\n <div class="col">\r\n\r\n <div class="tin-input " style="font-size:14px;">\r\n\r\n <div class="col" *ngIf="changePassword.userName!=\'\'">\r\n <spa-text id="txtuserName" display="Username" [(value)]="changePassword.userName" width="300px" readonly="true"></spa-text>\r\n </div>\r\n\r\n <div class="col" *ngIf="!myRole[dataService.capUsers.name]">\r\n <spa-text id="txtPassword" display="Current Password" [(value)]="changePassword.currentPassword" width="300px" type="password"></spa-text>\r\n </div>\r\n\r\n <div class="col">\r\n <spa-text id="txtNewPassword" display="New Password" [(value)]="changePassword.newPassword" width="300px" type="password"></spa-text>\r\n </div>\r\n\r\n <div class="col">\r\n <spa-text id="txtConfirmPassword" display="Confirm Password" [(value)]="changePassword.confirmPassword" width="300px" type="password"></spa-text>\r\n </div>\r\n\r\n <div class="col mt-3">\r\n <button id="btnChange" mat-raised-button color="primary" (click)="change()" cdkFocusInitial>Change</button>\r\n </div>\r\n\r\n </div>\r\n\r\n </div>\r\n\r\n <div class="col">\r\n\r\n <div class="alert alert-info" style="font-size: 14px;" role="alert">\r\n <b>*Please consider these requirements for your new password.</b> <br><br>\r\n\r\n At least 8 characters<br>\r\n At least 1 uppercase letter (A-Z)<br>\r\n At least 2 lowercase letters (a-z)<br>\r\n At least 1 digit (0-9)<br>\r\n At least 1 special character (~`! …)<br>\r\n\r\n </div>\r\n\r\n </div>\r\n\r\n\r\n\r\n\r\n\r\n </div>\r\n</div>\r\n\r\n',styles:[""]})],t)}(),re=function(){function t(t,e,n,r,o){this.dataService=t,this.messageService=e,this.httpService=n,this.router=r,this.authService=o,this.appConfig=new ht,this.selfProfile=!1,this.profile=new xt}return t.prototype.ngOnInit=function(){this.myRole=this.authService.currentRoleSource.value,""==this.dataService.tmpProfileuserName?this.loadProfile(this.authService.currentUser):(this.loadProfile(this.dataService.tmpProfileuserName),this.dataService.tmpProfileuserName="")},t.prototype.loadProfile=function(t){var e=this;this.dataService.GetUserByID(t).subscribe((function(t){e.profile=t[0],e.profile.userName.toLocaleLowerCase()==e.authService.currentUser.toLocaleLowerCase()&&(e.selfProfile=!0),e.loadRoles(),console.log(e.profile)}),(function(t){e.isProcessing=!1,e.messageService.toast(e.httpService.Error(t))}))},t.prototype.loadRoles=function(){var t=this;this.dataService.GetRole("all","").subscribe((function(e){t.roles=e,console.log(t.roles)}),(function(e){t.isProcessing=!1,t.messageService.toast(t.httpService.Error(e))}))},t.prototype.changePassword=function(){this.dataService.tmpProfileuserName=this.profile.userName,this.router.navigate(["home/user/change-password"])},t.prototype.gotoUsers=function(){this.router.navigate(["home/admin/users"])},t.prototype.update=function(){},t.prototype.updateProfile=function(){var t=this;this.isProcessing=!0,this.dataService.UpdateUser(this.profile).subscribe((function(e){t.isProcessing=!1,e.success?t.messageService.toast("Profile Updated"):t.messageService.toast("Error: "+e.message)}),(function(e){t.messageService.toast("Connection failed "),t.isProcessing=!1}))},t.ctorParameters=function(){return[{type:kt},{type:K},{type:It},{type:l.Router},{type:Ct}]},H([e.Input()],t.prototype,"appConfig",void 0),t=H([e.Component({selector:"spa-profile",template:'\r\n<div class="container">\r\n\r\n <div class="row mt-3" style="font-size:14px;">\r\n\r\n <div class="col-2 mt-3 ">\r\n\r\n <div class="tin-input">\r\n\r\n <div class="col">\r\n <mat-icon style="font-size: 70px;">account_circle</mat-icon>\r\n \x3c!-- <img style="height: 40px"> --\x3e\r\n </div>\r\n\r\n <div class="col">\r\n <mat-label id="lbluserName" style="font-size: 14px;">{{profile?.userName}}</mat-label>\r\n </div>\r\n\r\n\r\n </div>\r\n\r\n\r\n\r\n </div>\r\n\r\n <div class="col-8 mt-3">\r\n\r\n <div class="tin-input" style="width: 70%;">\r\n\r\n <div class="tin-input-row">\r\n\r\n\r\n <div class="col">\r\n <spa-text id="txtFirstName" display="First Name" [(value)]="profile.firstName" [readonly]="selfProfile"></spa-text>\r\n </div>\r\n\r\n <div class="col">\r\n <spa-text id="txtLastName" display="Last Name" [(value)]="profile.lastName" [readonly]="selfProfile"></spa-text>\r\n </div>\r\n\r\n </div>\r\n\r\n <div class="col">\r\n <spa-text id="txtAuth" display="Authentication" [(value)]="profile.authType" [readonly]="true"></spa-text>\r\n </div>\r\n\r\n <div class="col">\r\n <spa-text id="txtEmail" display="Email" [(value)]="profile.email" [readonly]="selfProfile"></spa-text>\r\n </div>\r\n\r\n <div class="col">\r\n <spa-select id="cboRole" display="Role" [options]="roles" optionDisplay="roleName" optionValue="roleID" [(value)]="profile.roleID" [readonly]="selfProfile"></spa-select>\r\n </div>\r\n\r\n\r\n <div class="tin-input-row mt-2">\r\n <button id="btnUpdate" mat-raised-button color="primary" *ngIf="!selfProfile" [disabled]="isProcessing" (click)="updateProfile()" >Update Profile</button>\r\n </div>\r\n\r\n\r\n </div>\r\n\r\n\r\n </div>\r\n\r\n <div class="col-2 mt-4">\r\n\r\n <a mat-button id="lnkUserManager" style="margin-left: 1em" *ngIf="!selfProfile" (click)="gotoUsers()" >User Manager</a>\r\n <a mat-button id="lnkChangePassword" style="margin-left: 1em" *ngIf="(selfProfile || myRole[dataService.capUsers.name]) && profile.authType==\'local\'" (click)="changePassword()" >Change Password</a>\r\n\r\n </div>\r\n\r\n </div>\r\n\r\n</div>\r\n\r\n\r\n\r\n',styles:[""]})],t)}(),oe=function(){function t(){}return t=H([e.NgModule({declarations:[ne,re],entryComponents:[],imports:[R.ReactiveFormsModule.withConfig({warnOnNgModelWithFormControl:"never"}),p.CommonModule,R.FormsModule,R.ReactiveFormsModule,Dt,$t],exports:[p.CommonModule,R.FormsModule,Dt,ne,re]})],t)}(),ie=function(){function t(t,e){this.dataService=t,this.messageService=e,this._filterText="",this.isProcessing=!1}return t.prototype.ngOnInit=function(){this.loadSettings()},t.prototype.applyFilter=function(t){this.settings.filter=t.trim().toLowerCase()},t.prototype.loadSettings=function(){var t=this;this.dataService.GetSetting("all","").subscribe((function(e){t.settings=e}))},t.prototype.updateSetting=function(t){var e=this;this.isProcessing=!0,this.dataService.UpdateSetting(t,"edit").subscribe((function(n){e.isProcessing=!1,n.success?(e.messageService.toast("Setting "+t.sName+" Updated"),e.loadSettings()):e.messageService.toast("Error: "+n.message)}))},t.prototype.addSetting=function(){this.messageService.toast("Feature not Available")},t.ctorParameters=function(){return[{type:kt},{type:K}]},t=H([e.Component({selector:"spa-settings",template:'<h4>Settings</h4>\r\n<hr>\r\n\r\n<div class="container">\r\n\r\n <div class="row justify-content-between" style="padding-bottom: 10px;padding-left:10px">\r\n\r\n <div class="col-2">\r\n \x3c!-- <button mat-raised-button (click)="addSetting()">New Setting</button> --\x3e\r\n </div>\r\n <div class="col-2">\r\n <button mat-raised-button (click)="loadSettings()">Refresh</button>\r\n </div>\r\n </div>\r\n\r\n\r\n <div class="row mt-1 mb-1" style="margin-left:10px" *ngFor="let setting of settings">\r\n\r\n <mat-form-field style="width: 500px; font-size: 14px;">\r\n <mat-label>{{setting.sName}}</mat-label>\r\n <input matInput autocomplete="off" [(ngModel)]="setting.sValue" >\r\n </mat-form-field>\r\n\r\n <button mat-mini-fab color="primary" (click)="updateSetting(setting)" style="margin-right:150px;"><mat-icon>done_all</mat-icon></button>\r\n\r\n <mat-label style="font-size: small;">Last Updated by {{setting.updatedBy}} on {{setting.updatedDate | date: \'dd MMM yy HH:mm\'}}</mat-label>\r\n\r\n </div>\r\n\r\n\r\n</div>\r\n\r\n',styles:[".mat-mini-fab{width:32px;height:32px}.mat-mini-fab mat-icon{font-size:16px;margin-top:-3px}"]})],t)}(),ae=function(){function t(t,e){this.authService=t,this.dataService=e,this.isProcessing=!1,this.displayedColumns=["dateLogged","userName","fullName","source","details"]}return t.prototype.ngOnInit=function(){this.authService.isAuthorised(this.dataService.capLogs.name),this.loadLogs()},t.prototype.loadLogs=function(){var t=this;this.dataService.GetLog("all","").subscribe((function(e){t.logs=new E.MatTableDataSource(e),t.logs.paginator=t.logsPaginator}))},t.ctorParameters=function(){return[{type:Ct},{type:kt}]},H([e.ViewChild("logsPaginator")],t.prototype,"logsPaginator",void 0),t=H([e.Component({selector:"spa-logs",template:'<h4>Logs</h4>\r\n<hr />\r\n\r\n<div class="container-fluid">\r\n\r\n <div class="row justify-content-between" style="padding-bottom: 10px">\r\n\r\n <div class="col-2">\r\n </div>\r\n\r\n <div class="d-flex justify-content-end">\r\n <spa-filter [data]="logs" (refreshClick)="loadLogs()"></spa-filter>\r\n </div>\r\n </div>\r\n\r\n\r\n\r\n <p *ngIf="!logs"><em>Loading...</em></p>\r\n\r\n\r\n <div class="mat-elevation-z8" *ngIf="logs">\r\n\r\n <table id="tblTable" mat-table [dataSource]="logs">\r\n\r\n\r\n <ng-container matColumnDef="userName">\r\n <th mat-header-cell *matHeaderCellDef> User </th>\r\n <td mat-cell *matCellDef="let log"> {{log.userName}} </td>\r\n </ng-container>\r\n\r\n\r\n <ng-container matColumnDef="dateLogged">\r\n <th mat-header-cell *matHeaderCellDef class="datetime"> Date Logged </th>\r\n <td mat-cell *matCellDef="let log"> {{log.dateLogged | date: \'dd MMM yy HH:mm:ss\'}} </td>\r\n </ng-container>\r\n\r\n <ng-container matColumnDef="source">\r\n <th mat-header-cell *matHeaderCellDef> Source </th>\r\n <td mat-cell *matCellDef="let log"> {{log.source}} </td>\r\n </ng-container>\r\n\r\n <ng-container matColumnDef="details">\r\n <th mat-header-cell *matHeaderCellDef> Details </th>\r\n <td mat-cell *matCellDef="let log"> {{log.details}} </td>\r\n </ng-container>\r\n\r\n <ng-container matColumnDef="fullName">\r\n <th mat-header-cell *matHeaderCellDef> Name </th>\r\n <td mat-cell *matCellDef="let log">{{log.user.firstName}} {{log.user.lastName}}</td>\r\n </ng-container>\r\n\r\n\r\n\r\n\r\n <tr mat-header-row *matHeaderRowDef="displayedColumns"></tr>\r\n <tr mat-row *matRowDef="let row; columns: displayedColumns;"></tr>\r\n\r\n\r\n </table>\r\n\r\n </div>\r\n\r\n <mat-paginator #logsPaginator [pageSizeOptions]="[50, 100, 200]" showFirstLastButtons></mat-paginator>\r\n</div>\r\n\r\n',styles:[".mat-mini-fab{width:32px;height:32px}.mat-mini-fab mat-icon{font-size:16px;margin-top:-3px}.refreshIcon{font-size:22px!important;margin-top:-7px!important}"]})],t)}(),se=function(){function t(t,e,n,r,o,i){this.httpService=t,this.router=e,this.authService=n,this.dataService=r,this.dialog=o,this.messageService=i,this.isProcessing=!1,this._filterText="",this.displayedColumns=["userName","fullName","roleName","locked","dateCreated","Action"]}return t.prototype.ngOnInit=function(){this.authService.isAuthorised(this.dataService.capUsers.name),this.UpdateData()},t.prototype.UpdateData=function(){var t=this;this.dataService.GetUser().subscribe((function(e){t.users=new E.MatTableDataSource(e),t.users.paginator=t.usersPaginator,t.applyFilter(t._filterText)}),(function(e){t.isProcessing=!1,t.messageService.toast(t.httpService.Error(e))}))},t.prototype.applyFilter=function(t){this.users.filter=t.trim().toLowerCase()},t.prototype.createAccount=function(){this.router.navigate(["home/admin/create-account"])},t.prototype.viewProfile=function(t){this.dataService.tmpProfileuserName=t.userName,this.router.navigate(["home/user/profile"])},t.prototype.lock=function(t){var e=this,n={userName:t.userName,password:"Abcdef@123"};this.dataService.LockUser(n).subscribe((function(t){t.success?(e.messageService.toast("User Locked"),e.UpdateData()):e.messageService.toast("Error: "+t)}))},t.prototype.unlock=function(t){var e=this,n={userName:t.userName,password:"Abcdef@123"};this.dataService.UnlockUser(n).subscribe((function(t){t.success?(e.messageService.toast("User Unlocked"),e.UpdateData()):e.messageService.toast("Error: "+t)}))},t.prototype.recover=function(t){var e=this;this.dataService.SelfReset(t).subscribe((function(t){"success"==t.message?e.messageService.toast("The password has been sent on email"):e.messageService.toast("Error: "+t.message)}))},t.prototype.deleteUser=function(t){var e=this;this.messageService.confirm("Delete "+t.userName+" ?").subscribe((function(n){"yes"==n&&(e.isProcessing=!0,e.dataService.DeleteUser(t).subscribe((function(t){e.isProcessing=!1,"success"==t.message?(e.messageService.toast("User Deleted"),e.UpdateData()):e.messageService.toast("Error: "+t.message)}),(function(t){e.messageService.toast("Connection failed "),e.isProcessing=!1})))}))},t.ctorParameters=function(){return[{type:It},{type:l.Router},{type:Ct},{type:kt},{type:r.MatDialog},{type:K}]},H([e.ViewChild("usersPaginator")],t.prototype,"usersPaginator",void 0),t=H([e.Component({selector:"spa-users",template:'\r\n<h4>Users</h4>\r\n<hr />\r\n\r\n<div class="container">\r\n\r\n <div class="row justify-content-between" style="padding-bottom: 10px">\r\n <div class="col-2">\r\n <button id="btnCreateAccount" mat-raised-button color="primary" (click)="createAccount()">Create Account</button>\r\n </div>\r\n\r\n <div class="d-flex justify-content-end">\r\n <spa-filter [data]="users" (refreshClick)="UpdateData()"></spa-filter>\r\n </div>\r\n </div>\r\n\r\n\r\n <p *ngIf="!users"><em>Loading...</em></p>\r\n\r\n\r\n <div class="mat-elevation-z8" *ngIf="users">\r\n\r\n <table id="tblTable" mat-table [dataSource]="users">\r\n\r\n <ng-container matColumnDef="userName">\r\n <th mat-header-cell *matHeaderCellDef> userName </th>\r\n <td mat-cell *matCellDef="let user"> {{user.userName}} </td>\r\n </ng-container>\r\n\r\n <ng-container matColumnDef="locked">\r\n <th mat-header-cell *matHeaderCellDef> Locked </th>\r\n <td mat-cell *matCellDef="let user"> {{user.locked}} </td>\r\n </ng-container>\r\n\r\n <ng-container matColumnDef="fullName">\r\n <th mat-header-cell *matHeaderCellDef> Name </th>\r\n <td mat-cell *matCellDef="let user"> {{user.firstName}} {{user.lastName}} </td>\r\n </ng-container>\r\n\r\n <ng-container matColumnDef="roleName">\r\n <th mat-header-cell *matHeaderCellDef> Role </th>\r\n <td mat-cell *matCellDef="let user"> {{user.role.roleName}} </td>\r\n </ng-container>\r\n\r\n <ng-container matColumnDef="disabled">\r\n <th mat-header-cell *matHeaderCellDef> Disabled </th>\r\n <td mat-cell *matCellDef="let user"> {{user.disabled}} </td>\r\n </ng-container>\r\n\r\n <ng-container matColumnDef="dateCreated">\r\n <th mat-header-cell *matHeaderCellDef> Created </th>\r\n <td mat-cell *matCellDef="let user"> {{user.createdDate | date: \'dd/MM/yyyy\'}} </td>\r\n </ng-container>\r\n\r\n <ng-container matColumnDef="dateUpdated">\r\n <th mat-header-cell *matHeaderCellDef> Updated </th>\r\n <td mat-cell *matCellDef="let user"> {{user.updatedDate | date: \'dd/MM/yyyy\'}} </td>\r\n </ng-container>\r\n\r\n\r\n <ng-container matColumnDef="Action">\r\n <th mat-header-cell *matHeaderCellDef> Action </th>\r\n <td mat-cell *matCellDef="let user" style="width: 250px;">\r\n\r\n <button mat-mini-fab color="primary" (click)="viewProfile(user)" style="margin-right:30px" matTooltip="View Profile" matTooltipPosition="above"> <mat-icon>account_circle</mat-icon></button>\r\n\r\n <button *ngIf="user.locked==\'0\'" mat-mini-fab color="warn" (click)="lock(user)" style="margin-right:10px" matTooltip="Lock" matTooltipPosition="above"> <mat-icon>lock</mat-icon></button>\r\n <button *ngIf="user.locked==\'1\'" mat-mini-fab (click)="unlock(user)" style="margin-right:10px; background-color: green;" matTooltip="Unlock" matTooltipPosition="above"> <mat-icon >lock_open</mat-icon></button>\r\n\r\n \x3c!-- <button *ngIf="user.disabled==\'0\'" mat-mini-fab color="warn" (click)="disable(user)" style="margin-right:10px" matTooltip="Disable" matTooltipPosition="above"> <mat-icon>block</mat-icon></button>\r\n <button *ngIf="user.disabled==\'1\'" mat-mini-fab (click)="enable(user)" style="margin-right:10px; background-color: green" matTooltip="Enable" matTooltipPosition="above"> <mat-icon>done</mat-icon></button> --\x3e\r\n\r\n <button mat-mini-fab color="warn" (click)="deleteUser(user)" style="margin-right:10px" matTooltip="Delete" matTooltipPosition="above"> <mat-icon>delete</mat-icon></button>\r\n \x3c!-- <button mat-mini-fab color="primary" (click)="recover(user)" style="margin-right:10px" matTooltip="Reset Password" matTooltipPosition="above"> <mat-icon>vpn_key</mat-icon></button> --\x3e\r\n\r\n\r\n\r\n </td>\r\n </ng-container>\r\n\r\n\r\n <tr mat-header-row *matHeaderRowDef="displayedColumns"></tr>\r\n <tr mat-row *matRowDef="let row; columns: displayedColumns;" [ngClass]="{\'make-gray\': row.disabled ==\'1\'}"></tr>\r\n\r\n </table>\r\n\r\n </div>\r\n\r\n <mat-paginator #usersPaginator [pageSizeOptions]="[10, 20, 50]" showFirstLastButtons></mat-paginator>\r\n</div>\r\n',styles:[".mat-mini-fab{width:32px;height:32px}.mat-mini-fab mat-icon{font-size:16px;margin-top:-3px}.refreshIcon{font-size:22px!important;margin-top:-7px!important}.make-gray{background-color:#d3d3d3}"]})],t)}(),le=function(){function t(t,e,n,r,o){this.messageService=t,this.dataService=e,this.authService=n,this.dialogRef=r,this.data=o,this.role=new wt}return t.prototype.ngOnInit=function(){this.capItems=this.data},t.prototype.submit=function(){var t=this;"New Role"!=this.role.roleName&&""!=this.role.roleName?(this.isProcessing=!0,this.dataService.PostRole(this.role,"add").subscribe((function(e){t.isProcessing=!1,e.success?(t.messageService.toast("Role Added"),t.dialogRef.close("success")):t.messageService.toast("Error: "+e.message)}),(function(e){t.messageService.toast("Connection failed"),t.isProcessing=!1}))):this.messageService.toast("Please enter Role Name")},t.ctorParameters=function(){return[{type:K},{type:kt},{type:Ct},{type:r.MatDialogRef},{type:void 0,decorators:[{type:e.Inject,args:[r.MAT_DIALOG_DATA]}]}]},t=H([e.Component({selector:"app-addRole",template:'<mat-form-field>\r\n <mat-label>Role Name</mat-label>\r\n <input matInput autocomplete="off" [(ngModel)]="role.roleName" placeholder="Enter Role Name" />\r\n</mat-form-field>\r\n\r\n<mat-dialog-content class="mat-typography">\r\n\r\n <div class="row" >\r\n\r\n \x3c!-- <div class=" col-4">\r\n\r\n <div class="row">\r\n <mat-checkbox color="primary" style="margin-right:20px; font-size:14px" [(ngModel)]="role.cap1">Admin</mat-checkbox>\r\n </div>\r\n\r\n </div> --\x3e\r\n\r\n <div class="row" style="margin-left: 2em;margin-right: 2em;">\r\n\r\n <div class="row" style="margin-left: 2em;" *ngFor="let capItem of capItems">\r\n\r\n <mat-checkbox color="primary" style="margin-right:20px; font-size:12px; width: 200px;" [(ngModel)]="role[capItem.name]">{{capItem.display}}</mat-checkbox>\r\n\r\n <div *ngFor="let capSubItem of capItem.capSubItems">\r\n\r\n <mat-checkbox color="primary" style="margin-right:20px; font-size:12px; width: 200px;" [(ngModel)]="role[capSubItem.name]">{{capSubItem.display}}</mat-checkbox>\r\n\r\n </div>\r\n\r\n\r\n\r\n </div>\r\n\r\n </div>\r\n\r\n </div>\r\n\r\n</mat-dialog-content>\r\n\r\n<mat-dialog-actions>\r\n <button mat-button [disabled]="isProcessing" (click)="submit()" cdkFocusInitial>Submit</button>\r\n <button mat-button mat-dialog-close="success">Cancel</button>\r\n</mat-dialog-actions>\r\n',styles:[".mat-mini-fab{width:32px;height:32px}.mat-mini-fab mat-icon{font-size:16px;margin-top:-3px}.refreshIcon{font-size:22px!important;margin-top:-7px!important}"]}),q(4,e.Inject(r.MAT_DIALOG_DATA))],t)}(),ce=function(){function t(t,e,n,r,o,i){this.httpService=t,this.router=e,this.authService=n,this.dataService=r,this.dialog=o,this.messageService=i,this.isProcessing=!1,this.appConfig=new ht}return t.prototype.ngOnInit=function(){var t=this;this.authService.isAuthorised(this.dataService.capRoles.name),this.loadRoles(),this.dataService.appConfigObserv.subscribe((function(e){return t.appConfig=e}))},t.prototype.loadRoles=function(){var t=this;this.dataService.GetRole("all","").subscribe((function(e){t.roles=e}))},t.prototype.refresh=function(){this.loadRoles()},t.prototype.addRole=function(){var t=this;this.dialog.open(le,{width:"1100px",data:this.appConfig.capItems}).afterClosed().subscribe((function(e){"success"==e&&t.loadRoles()}))},t.prototype.updateRole=function(t){var e=this;this.messageService.confirm("UPDATE "+t.roleName+" ?").subscribe((function(n){"yes"==n&&e.dataService.PostRole(t,"edit").subscribe((function(t){t.success?(e.messageService.toast("Role Updated"),e.loadRoles()):e.messageService.toast("Error: "+t)}))}))},t.prototype.deleteRole=function(t){var e=this;this.messageService.confirm("DELETE "+t.roleName+" ?").subscribe((function(n){"yes"==n&&e.dataService.PostRole(t,"delete").subscribe((function(t){t.success?(e.messageService.toast("Role Deleted"),e.loadRoles()):e.messageService.toast("Error: "+t)}))}))},t.ctorParameters=function(){return[{type:It},{type:l.Router},{type:Ct},{type:kt},{type:r.MatDialog},{type:K}]},t=H([e.Component({selector:"spa-roles",template:'<h4> Roles </h4>\r\n<hr />\r\n\r\n<div class="container mb-5">\r\n\r\n <div class="row justify-content-between" style="padding-bottom: 10px;padding-left:10px">\r\n <div class="col-2">\r\n\r\n <button id="btnNewRole" mat-raised-button color="primary" (click)="addRole()">New Role</button>\r\n </div>\r\n <div class="col-1">\r\n\r\n <button id="btnRefresh" mat-mini-fab color="primary" (click)="refresh()" style="margin-right:1em;margin-top:5px" matTooltip="refresh data" matTooltipPosition="right"><mat-icon class="refreshIcon">refresh</mat-icon></button>\r\n\r\n </div>\r\n </div>\r\n\r\n\r\n <div class="row mt-2 mb-1" style="margin-left:10px" *ngFor="let role of roles">\r\n\r\n <mat-card class="mat-elevation-z8" style="width:100%;padding-left:2em">\r\n\r\n <h4>{{role.roleName}}</h4>\r\n <hr />\r\n\r\n <div class="row" style="margin-left: 2em;">\r\n\r\n\r\n <div class="row" style="margin-right:20px;" *ngFor="let capItem of appConfig.capItems">\r\n\r\n <mat-checkbox color="primary" style=" font-size:12px; width: 200px;" [(ngModel)]="role[capItem.name]">{{capItem.display}}</mat-checkbox>\r\n\r\n <div class="row" style="margin-right:20px;margin-left: 0px; " *ngFor="let capSubItem of capItem.capSubItems">\r\n\r\n <mat-checkbox color="primary" style=" font-size:12px; width: 200px;" [(ngModel)]="role[capSubItem.name]">{{capSubItem.display}}</mat-checkbox>\r\n\r\n <div class="row" style="margin-right:20px;margin-left: 0px;" *ngFor="let capSubSubItem of capSubItem.capSubItems">\r\n\r\n <mat-checkbox color="primary" style="font-size:12px; width: 200px;" [(ngModel)]="role[capSubSubItem.name]">{{capSubSubItem.display}}</mat-checkbox>\r\n\r\n </div>\r\n\r\n </div>\r\n\r\n </div>\r\n\r\n </div>\r\n\r\n\r\n <mat-card-actions>\r\n\r\n <button mat-mini-fab color="primary" (click)="updateRole(role)" style="margin-right:10px;">\r\n <mat-icon>done_all</mat-icon>\r\n </button>\r\n\r\n \x3c!-- <button mat-mini-fab color="warn" (click)="editRole(role)" style="margin-right:10px">\r\n <mat-icon>edit</mat-icon>\r\n </button> --\x3e\r\n\r\n <button mat-mini-fab color="warn" (click)="deleteRole(role)" style="margin-right:10px">\r\n <mat-icon>delete</mat-icon>\r\n </button>\r\n\r\n </mat-card-actions>\r\n\r\n </mat-card>\r\n\r\n </div>\r\n\r\n\r\n</div>\r\n\r\n',styles:[".mat-mini-fab{width:32px;height:32px}.mat-mini-fab mat-icon{font-size:16px;margin-top:-3px}.refreshIcon{font-size:22px!important;margin-top:-7px!important}"]})],t)}(),pe=function(){function t(t,e,n,r,o){this.httpService=t,this.messageService=e,this.dataService=n,this.authService=r,this.router=o,this.appConfig=new ht,this.isProcessing=!1,this.register=new bt,this.openProfile=!0,this.authTypes=[{name:"Local Authentication",value:"local"},{name:"AD Authentication",value:"AD"}]}return t.prototype.ngOnInit=function(){this.appConfig=this.dataService.appConfig},t.prototype.create=function(){var t=this;""!=this.register.authType?(this.isProcessing=!0,this.dataService.RegisterAccount(this.register).subscribe((function(e){t.isProcessing=!1,e.success?(t.messageService.toast("Account Created"),t.openProfile?t.viewProfile(t.register.userName):(t.register=new bt,t.confirmPassword="")):t.messageService.toast("Error: "+e.message)}),(function(e){t.isProcessing=!1,t.messageService.toast(t.httpService.Error(e))}))):this.messageService.toast("Choose Authentication Type")},t.prototype.viewProfile=function(t){this.dataService.tmpProfileuserName=t,this.router.navigate(["home/user/profile"])},t.ctorParameters=function(){return[{type:It},{type:K},{type:kt},{type:Ct},{type:l.Router}]},H([e.Input()],t.prototype,"appConfig",void 0),t=H([e.Component({selector:"spa-create-account",template:'<h4>Create Account</h4>\r\n\r\n<hr/>\r\n\r\n<div class="container">\r\n\r\n <div class="tin-input" style="font-size:14px; width: 70%;">\r\n\r\n\r\n <div class="tin-input-row">\r\n\r\n <div class="col">\r\n <spa-text id="txtFirstName" display="FirstName" [(value)]="register.firstName"></spa-text>\r\n </div>\r\n\r\n <div class="col">\r\n <spa-text id="txtLastName" display="LastName" [(value)]="register.lastName"></spa-text>\r\n </div>\r\n\r\n </div>\r\n\r\n\r\n <div class="tin-input-row mt-3">\r\n\r\n <div class="col">\r\n <spa-text id="txtUserName" display="Username" [(value)]="register.userName"></spa-text>\r\n </div>\r\n\r\n <div class="col">\r\n <spa-select id="cboAuth" display="Authentication Type" [options]="authTypes" optionDisplay="name" optionValue="value" [(value)]="register.authType" ></spa-select>\r\n </div>\r\n\r\n </div>\r\n\r\n\r\n <div class="tin-input-row" *ngIf="register.authType==\'local\'">\r\n\r\n <div class="col">\r\n <spa-text id="txtPassword" display="Password" [(value)]="register.password" type="password"></spa-text>\r\n </div>\r\n\r\n <div class="col">\r\n <spa-text id="txtConfirmPassword" display="Confirm Password" [(value)]="confirmPassword" type="password"></spa-text>\r\n </div>\r\n\r\n </div>\r\n\r\n\r\n <div class="tin-input-row mt-3" style="margin-left: 1em;">\r\n <mat-checkbox id="cbkOpenAfter" color="primary" style="margin-right:100px; font-size:12px" [(ngModel)]="openProfile">Open profile after creation</mat-checkbox>\r\n </div>\r\n\r\n <div class="tin-input-row mt-3">\r\n <button id="btnCreate" [disabled]="register.authType ==\'\'" mat-raised-button color="primary" (click)="create()" cdkFocusInitial>Create</button>\r\n </div>\r\n\r\n </div>\r\n</div>\r\n\r\n',styles:[""]})],t)}(),ue=function(){function t(){}return t=H([e.NgModule({declarations:[se,ce,le,pe,ae,ie],entryComponents:[le],imports:[R.ReactiveFormsModule.withConfig({warnOnNgModelWithFormControl:"never"}),p.CommonModule,R.FormsModule,R.ReactiveFormsModule,Dt,$t],exports:[p.CommonModule,R.FormsModule,Dt,se,ce,le,pe,ae,ie]})],t)}();t.Account=ft,t.ActionResponse=dt,t.ActivityComponent=Vt,t.ApiResponse=X,t.AppConfig=ht,t.AttachComponent=_t,t.AuthService=Ct,t.CapItem=gt,t.ChangePasswordComponent=ne,t.ChangeUserPassword=yt,t.CheckComponent=zt,t.ChipsComponent=Gt,t.Color=ct,t.Condition=lt,t.Constants=tt,t.Core=Q,t.CreateAccountComponent=pe,t.DataServiceLib=kt,t.DateComponent=Ut,t.DatetimeComponent=Ht,t.ExportService=$,t.FilterComponent=Kt,t.HttpService=It,t.Icon=pt,t.LabelComponent=Zt,t.LoaderComponent=Pt,t.LogService=St,t.LoginComponent=Qt,t.LogsComponent=ae,t.MessageService=K,t.MoneyComponent=qt,t.NavMenuComponent=Lt,t.OptionComponent=Wt,t.Profile=xt,t.ProfileComponent=re,t.RecoverAccountComponent=te,t.Register=bt,t.Role=wt,t.RolesComponent=ce,t.SelectComponent=jt,t.SettingsComponent=ie,t.SignupComponent=Xt,t.SpaAdminModule=ue,t.SpaIndexModule=ee,t.SpaMatModule=Dt,t.SpaUserModule=oe,t.Step=rt,t.StepsComponent=Yt,t.StorageService=J,t.TableAction=ut,t.TableColumn=at,t.TableComponent=Rt,t.TableConfig=ot,t.TableCreate=it,t.TextComponent=Ft,t.Tile=nt,t.TilesComponent=Ot,t.TimeoutComponent=At,t.TinSpaComponent=Et,t.TinSpaModule=$t,t.TinSpaService=Z,t.User=vt,t.UsersComponent=se,t.addRoleDialog=le,t.loginConfig=mt,t.messageDialog=Y,t.ɵ0=Tt,t.ɵa=Bt,t.ɵb=Mt,t.ɵc=Nt,Object.defineProperty(t,"__esModule",{value:!0})}));
|
|
16
|
-
//# sourceMappingURL=tin-spa.umd.min.js.map
|