{"version":3,"file":"main.js","mappings":"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D,8BAA8B,EAAE,IAAI;IACpC,8BAA8B,EAAE,IAAI;IAEpC,qBAAqB,EAAE,mCAAmC;IAC1D,6BAA6B,EAAE,IAAI;IACnC,6BAA6B,EAAE,IAAI;IAEnC,oBAAoB,EAAE,kCAAkC;IACxD,4BAA4B,EAAE,IAAI;IAClC,4BAA4B,EAAE,IAAI;IAElC,kBAAkB,EAAE,gCAAgC;IACpD,0BAA0B,EAAE,IAAI;IAChC,0BAA0B,EAAE,IAAI;IAEhC,WAAW,EAAE,IAAI;IACjB,cAAc,EAAE,kCAAkC;IAElD,UAAU,EAAE,2EAA2E;IAEvF,kBAAkB,EAAE,0BAA0B;IAE9C,OAAO,EAAE,OAAO;CACjB,CAAC;;;;;;;;;;;;;;;;;;ACxD6C;AAGF;AACY;AAEzD,IAAI,6EAAsB,EAAE;IAC1B,6DAAc,EAAE,CAAC;CAClB;AAED,wEAAwB,CAAC,eAAe,CAAC,sDAAS,CAAC;KAChD,KAAK,CAAC,GAAG,CAAC,EAAE,CAAC,OAAO,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC;;;;;;;;;;;ACXpC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;AAGA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,EAAE;AACF;AACA;AACA;AACA;AACA","sources":["./src/app/app-routing.module.ts","./src/app/app.component.ts","./src/app/app.component.html","./src/app/app.module.ts","./src/app/auth/auth.service.ts","./src/app/claim.ts","./src/app/common/action-button/action-button.component.ts","./src/app/common/action-button/action-button.component.html","./src/app/common/bars/bar-chart-with-title/bar-chart-with-title.component.ts","./src/app/common/bars/bar-chart-with-title/bar-chart-with-title.component.html","./src/app/common/bars/bar-chart/bar-chart.component.ts","./src/app/common/bars/bar-chart/bar-chart.component.html","./src/app/common/bars/model/bar-with-title/bar-with-title.ts","./src/app/common/bars/stacked-bar-chart/stacked-bar-chart.component.ts","./src/app/common/bars/stacked-bar-chart/stacked-bar-chart.component.html","./src/app/common/icon/icon.component.ts","./src/app/common/icon/icon.component.html","./src/app/common/linked-equipment/linked-equipment.component.ts","./src/app/common/linked-equipment/linked-equipment.component.html","./src/app/common/loading-spinner/loading-spinner.component.ts","./src/app/common/loading-spinner/loading-spinner.component.html","./src/app/common/pipes/assets-in-list.ts","./src/app/common/pipes/dateTime.ts","./src/app/common/pipes/daysFromToday.ts","./src/app/common/pipes/jobNumber.ts","./src/app/common/pipes/localeDateTime.ts","./src/app/common/submit-button/submit-button.component.ts","./src/app/common/submit-button/submit-button.component.html","./src/app/common/vr/vr.component.ts","./src/app/component/dialog/edit-dunnage-dialog/edit-dunnage-dialog.component.ts","./src/app/component/dialog/edit-dunnage-dialog/edit-dunnage-dialog.component.html","./src/app/component/dialog/insert-trailer-dialog/insert-trailer-dialog.component.ts","./src/app/component/dialog/insert-trailer-dialog/insert-trailer-dialog.component.html","./src/app/component/dialog/insert-trailer-dialog/trailer-search-detail/trailer-search-detail.component.ts","./src/app/component/dialog/insert-trailer-dialog/trailer-search-detail/trailer-search-detail.component.html","./src/app/component/dialog/move-bay-dialog/move-bay-dialog.component.ts","./src/app/component/dialog/move-bay-dialog/move-bay-dialog.component.html","./src/app/component/dialog/reject-asset-dialog/reject-asset-dialog.component.ts","./src/app/component/dialog/reject-asset-dialog/reject-asset-dialog.component.html","./src/app/component/dialog/reject-asset-warning-dialog/reject-asset-warning-dialog.component.ts","./src/app/component/dialog/reject-asset-warning-dialog/reject-asset-warning-dialog.component.html","./src/app/component/filter/filter-checkbox-group/filter-checkbox-group.component.ts","./src/app/component/filter/filter-checkbox-group/filter-checkbox-group.component.html","./src/app/component/filter/filter-date-box-pair/filter-date-box-pair.component.ts","./src/app/component/filter/filter-date-box-pair/filter-date-box-pair.component.html","./src/app/component/filter/filter-section.ts","./src/app/component/filter/filter-section/filter-section.component.ts","./src/app/component/filter/filter-section/filter-section.component.html","./src/app/component/filter/filter-subsection/filter-subsection.component.ts","./src/app/component/filter/filter-subsection/filter-subsection.component.html","./src/app/component/filter/filter-text-box-pair/filter-text-box-pair.component.ts","./src/app/component/filter/filter-text-box-pair/filter-text-box-pair.component.html","./src/app/component/filter/filter.component.ts","./src/app/component/filter/filter.component.html","./src/app/component/filter/model/equipment/equipment-filter.ts","./src/app/component/filter/model/filter-checkbox.ts","./src/app/component/filter/model/filter-checkboxes-group.ts","./src/app/component/filter/model/filter-checkboxes.ts","./src/app/component/filter/model/filter-condition.ts","./src/app/component/filter/model/filter-group.ts","./src/app/component/filter/model/filter-item.ts","./src/app/component/filter/model/filter-subsection.ts","./src/app/component/filter/model/filter-textbox-pair.ts","./src/app/component/filter/model/filter-textboxes.ts","./src/app/component/filter/model/filter.ts","./src/app/component/filter/model/operations/operations-filter.ts","./src/app/component/global-search-box/global-search-box.component.ts","./src/app/component/global-search-box/global-search-box.component.html","./src/app/component/global-search-box/model/search-results/global-search.ts","./src/app/component/global-search-box/model/search-results/search-result-map.ts","./src/app/component/global-search-box/model/search-results/search-results.ts","./src/app/component/global-search-box/settings/settings-dialog/settings-dialog.component.ts","./src/app/component/global-search-box/settings/settings-dialog/settings-dialog.component.html","./src/app/component/global-search-box/settings/settings.component.ts","./src/app/component/global-search-box/settings/settings.component.html","./src/app/component/global-search-box/settings/settings.ts","./src/app/component/map/map.component.ts","./src/app/component/map/map.component.html","./src/app/component/map/maplarge-layers/maplarge-layers.ts","./src/app/component/site/common-functions-site.ts","./src/app/component/site/detail/detail-action-buttons/detail-action-buttons.component.ts","./src/app/component/site/detail/detail-action-buttons/detail-action-buttons.component.html","./src/app/component/site/detail/detail-action-buttons/detail-action-confirm-location/detail-action-confirm-location.component.ts","./src/app/component/site/detail/detail-action-buttons/detail-action-confirm-location/detail-action-confirm-location.component.html","./src/app/component/site/detail/detail-action-buttons/detail-action-move-bay/detail-action-move-bay.component.ts","./src/app/component/site/detail/detail-action-buttons/detail-action-move-bay/detail-action-move-bay.component.html","./src/app/component/site/detail/detail-action-buttons/detail-action-status/detail-action-status.component.ts","./src/app/component/site/detail/detail-action-buttons/detail-action-status/detail-action-status.component.html","./src/app/component/site/detail/detail-action-buttons/detail-clear-dunnage/detail-clear-dunnage.component.ts","./src/app/component/site/detail/detail-action-buttons/detail-clear-dunnage/detail-clear-dunnage.component.html","./src/app/component/site/detail/detail-action-buttons/detail-edit-dunnage/detail-edit-dunnage.component.ts","./src/app/component/site/detail/detail-action-buttons/detail-edit-dunnage/detail-edit-dunnage.component.html","./src/app/component/site/detail/detail-driver-alert/detail-driver-alert.component.ts","./src/app/component/site/detail/detail-driver-alert/detail-driver-alert.component.html","./src/app/component/site/detail/detail-equipment-status/detail-equipment-status.ts","./src/app/component/site/detail/detail-equipment-status/detail-equipment-status.html","./src/app/component/site/detail/detail-gps-summary/detail-gps-summary.ts","./src/app/component/site/detail/detail-gps-summary/detail-gps-summary.html","./src/app/component/site/detail/detail-inbound/detail-inbound.component.ts","./src/app/component/site/detail/detail-inbound/detail-inbound.component.html","./src/app/component/site/detail/detail-linked-equipment/detail-linked-equipment.ts","./src/app/component/site/detail/detail-linked-equipment/detail-linked-equipment.html","./src/app/component/site/detail/detail-load-summary/detail-load-summary.component.ts","./src/app/component/site/detail/detail-load-summary/detail-load-summary.component.html","./src/app/component/site/detail/detail-on-property/detail-on-property.component.ts","./src/app/component/site/detail/detail-on-property/detail-on-property.component.html","./src/app/component/site/detail/detail-on-property/trailer-type-map.ts","./src/app/component/site/detail/detail-package-summary/detail-package-summary.component.ts","./src/app/component/site/detail/detail-package-summary/detail-package-summary.component.html","./src/app/component/site/detail/detail-package-summary/model/state-map/state-map.ts","./src/app/component/site/detail/detail-shift-activity/detail-shift-activity.ts","./src/app/component/site/detail/detail-shift-activity/detail-shift-activity.html","./src/app/component/site/detail/detail-subsection/detail-subsection.ts","./src/app/component/site/detail/detail-subsection/detail-subsection.html","./src/app/component/site/detail/detail-summary/detail-summary-in-transit/detail-summary-in-transit.component.ts","./src/app/component/site/detail/detail-summary/detail-summary-in-transit/detail-summary-in-transit.component.html","./src/app/component/site/detail/detail-summary/detail-summary-on-property/detail-summary-on-property.component.ts","./src/app/component/site/detail/detail-summary/detail-summary-on-property/detail-summary-on-property.component.html","./src/app/component/site/detail/detail-summary/detail-summary.ts","./src/app/component/site/detail/detail-summary/detail-summary.html","./src/app/component/site/detail/detail.ts","./src/app/component/site/detail/detail.html","./src/app/component/site/detail/icon-text-pair/icon-text-pair.ts","./src/app/component/site/detail/icon-text-pair/icon-text-pair.html","./src/app/component/site/geometric-functions.ts","./src/app/component/site/summary/assets-map.ts","./src/app/component/site/summary/model/equipment-type-filter.ts","./src/app/component/site/summary/summary-common/summary-common/summary-common.component.ts","./src/app/component/site/summary/summary-common/summary-common/summary-common.component.html","./src/app/component/site/summary/summary-common/summary-inbound-info/summary-inbound-info.component.ts","./src/app/component/site/summary/summary-common/summary-inbound-info/summary-inbound-info.component.html","./src/app/component/site/summary/summary-common/summary-wrapper-yard-check/summary-wrapper-yard-check.ts","./src/app/component/site/summary/summary-common/summary-wrapper-yard-check/summary-wrapper-yard-check.html","./src/app/component/site/summary/summary-common/summary-wrapper/summary-wrapper.ts","./src/app/component/site/summary/summary-common/summary-wrapper/summary-wrapper.html","./src/app/component/site/summary/summary-inbound/summary-inbound.component.ts","./src/app/component/site/summary/summary-inbound/summary-inbound.component.html","./src/app/component/site/summary/summary-info/location-info/location-info.component.ts","./src/app/component/site/summary/summary-info/location-info/location-info.component.html","./src/app/component/site/summary/summary-info/summary-info.component.ts","./src/app/component/site/summary/summary-info/summary-info.component.html","./src/app/component/site/summary/summary-on-property/summary-on-property.component.ts","./src/app/component/site/summary/summary-on-property/summary-on-property.component.html","./src/app/component/site/summary/summary-view-button/summary-view-button.component.ts","./src/app/component/site/summary/summary-view-button/summary-view-button.component.html","./src/app/component/site/summary/summary-yard-check/summary-yard-check.component.ts","./src/app/component/site/summary/summary-yard-check/summary-yard-check.component.html","./src/app/component/site/summary/summary.component.ts","./src/app/component/site/summary/summary.component.html","./src/app/custom-viewport-scroll.ts","./src/app/model/asset-info/activity.ts","./src/app/model/asset-info/asset-event.ts","./src/app/model/asset-info/asset-info-array-map.ts","./src/app/model/asset-info/asset-info.ts","./src/app/model/asset-info/bay-information.ts","./src/app/model/asset-info/chassis-details.ts","./src/app/model/asset-info/current-ups-avtivity.ts","./src/app/model/asset-info/equipment-status.ts","./src/app/model/asset-info/equipment.ts","./src/app/model/asset-info/front-end-exclusive.ts","./src/app/model/asset-info/gps-details.ts","./src/app/model/asset-info/lease-info.ts","./src/app/model/asset-info/on-property-operations.ts","./src/app/model/asset-info/operations.ts","./src/app/model/asset-info/out-of-area-alert.ts","./src/app/model/asset-info/package-volume-summary.ts","./src/app/model/asset-info/shift-activity.ts","./src/app/model/asset-info/trailer-dunnage.ts","./src/app/model/asset-info/trailer.ts","./src/app/model/bay-attributes/bay-attributes.ts","./src/app/model/dunnage/dunnage-update.ts","./src/app/model/flags/pending-location-update-flag.ts","./src/app/model/location/closest-point-on-line.ts","./src/app/model/location/confirmation-status.ts","./src/app/model/location/gps-coordinate.ts","./src/app/model/maplarge/mapLargeBay.ts","./src/app/model/maplarge/mapLargeZone.ts","./src/app/model/metric/metric.ts","./src/app/model/reconciliation/equipment-location-reconcile.ts","./src/app/model/reconciliation/location-confirmation.ts","./src/app/model/reconciliation/location-update-status.ts","./src/app/model/reconciliation/on-site-not-arrived-location.ts","./src/app/model/user-profile/user-access-gateway.ts","./src/app/modules/common/st-common.module.ts","./src/app/modules/site/route-guards.ts","./src/app/modules/site/site-routing.module.ts","./src/app/modules/site/site.module.ts","./src/app/service/active-user-profile/active-user-profile.service.ts","./src/app/service/alert/alert.service.ts","./src/app/service/alert/alert.ts","./src/app/service/environment/environment.service.ts","./src/app/service/filter/equipment-filters-service.ts","./src/app/service/filter/filter-conditions.ts","./src/app/service/filter/filter.service.ts","./src/app/service/filter/model/accepted-assets.ts","./src/app/service/filter/model/active-filters.ts","./src/app/service/filter/operations-filters.service.ts","./src/app/service/launch-darkly/launch-darkly-services.ts","./src/app/service/local-data/local-data.service.ts","./src/app/service/map/map.service.ts","./src/app/service/maplarge/maplarge-bays-queries.ts","./src/app/service/maplarge/maplarge-data.service.ts","./src/app/service/maplarge/maplarge-functions.service.ts","./src/app/service/maplarge/maplarge-geofence-layers.ts","./src/app/service/maplarge/maplarge-loader.service.ts","./src/app/service/maplarge/maplarge-perimeters-queries.ts","./src/app/service/maplarge/maplarge-queries.ts","./src/app/service/maplarge/maplarge.service.ts","./src/app/service/refresh/bay-map.ts","./src/app/service/refresh/refresh.service.ts","./src/app/service/script-loader/script-loader.service.ts","./src/app/service/sorting/model/active-sorts.ts","./src/app/service/sorting/model/sort.ts","./src/app/service/sorting/sorting.service.ts","./src/app/service/swipe/swipe.service.ts","./src/app/service/view/localization.service.ts","./src/app/service/view/view.service.ts","./src/app/service/webservice/configuration/configuration.service.ts","./src/app/service/webservice/hfcs/hfcs.service.ts","./src/app/service/webservice/reconciliation/reconciliation.service.ts","./src/app/service/webservice/st-in-transit/st-in-transit.service.ts","./src/app/service/webservice/st-on-property/st-on-property.service.ts","./src/app/service/webservice/st-tds/st-tds.service.ts","./src/app/service/webservice/st-user-profile/st-user-profile.service.ts","./src/app/service/webservice/st-yard-check/st-yard-check.service.ts","./src/app/service/webservice/tam-gis/tam-gis.service.ts","./src/app/service/webservice/tam-user-profile/tam-user-profile.service.ts","./src/app/service/webservice/web-service-helper.ts","./src/app/service/whatfix/model/whatfix-user.ts","./src/app/service/whatfix/model/whatfix.ts","./src/app/service/whatfix/whatfix.service.ts","./src/environments/environment.dmz-dev.ts","./src/main.ts","./node_modules/@angular/common/locales/ lazy-once ^\\.\\/.*$ exclude: \\.d\\.ts$ chunkName: i18n-base namespace object"],"sourcesContent":["import { NgModule } from '@angular/core';\r\nimport { Routes, RouterModule } from '@angular/router';\r\n\r\n\r\nconst routes: Routes = [\r\n {\r\n path: '',\r\n redirectTo: '',\r\n pathMatch: 'full'\r\n },\r\n {\r\n path: 'site',\r\n loadChildren: () => import('./modules/site/site.module').then(m => m.SiteModule)\r\n },\r\n { path: '**', redirectTo: '' }\r\n];\r\n\r\n@NgModule({\r\n imports: [RouterModule.forRoot(routes, { enableTracing: false, scrollPositionRestoration: 'enabled', relativeLinkResolution: 'legacy' })],\r\n exports: [RouterModule]\r\n})\r\nexport class AppRoutingModule { }\r\n","import {\r\n Component,\r\n OnInit,\r\n ChangeDetectorRef,\r\n OnDestroy,\r\n HostListener,\r\n ViewChild,\r\n ElementRef,\r\n Inject\r\n} from '@angular/core';\r\nimport { ConnectionService } from 'ng-connection-service';\r\nimport { Subject, firstValueFrom } from 'rxjs';\r\n\r\nimport { SwipeService } from './service/swipe/swipe.service';\r\nimport { MapService } from './service/map/map.service';\r\nimport {MsalService, MsalBroadcastService, MsalGuardConfiguration, MSAL_GUARD_CONFIG} from '@azure/msal-angular';\r\nimport { AuthService } from './auth/auth.service';\r\nimport {\r\n AccountInfo,\r\n AuthenticationResult,\r\n EventMessage,\r\n EventType,\r\n InteractionStatus, RedirectRequest,\r\n} from '@azure/msal-browser';\r\nimport { EnvironmentService } from './service/environment/environment.service';\r\nimport { StUserProfileService } from './service/webservice/st-user-profile/st-user-profile.service';\r\nimport { ActiveUserProfileService } from './service/active-user-profile/active-user-profile.service';\r\nimport { ScriptLoaderService } from './service/script-loader/script-loader.service';\r\nimport { WhatfixService } from './service/whatfix/whatfix.service';\r\nimport { AlertService } from './service/alert/alert.service';\r\n\r\nimport { Alert } from './service/alert/alert';\r\nimport {filter, takeUntil} from 'rxjs/operators';\r\n\r\n@Component({\r\n selector: 'app-root',\r\n templateUrl: './app.component.html',\r\n styleUrls: ['./app.component.scss']\r\n})\r\nexport class AppComponent implements OnInit, OnDestroy {\r\n\r\n @ViewChild('appWrapper') appWrapper: ElementRef;\r\n @ViewChild('alertsRef') alertsRef: ElementRef;\r\n\r\n user: AccountInfo;\r\n loggedIn = false;\r\n loggedInUser: AccountInfo;\r\n loginDisplay = false;\r\n private readonly _destroying$ = new Subject();\r\n noRoles = false;\r\n mapActive = false;\r\n alerts: Alert[] = [];\r\n onlineAlert: Alert;\r\n filterOpen = false;\r\n timeout: NodeJS.Timeout;\r\n logoutExpiration = this.createNewLogoutExpiration();\r\n unsubscribe$ = new Subject();\r\n\r\n constructor(\r\n @Inject(MSAL_GUARD_CONFIG) private msalGuardConfig: MsalGuardConfiguration,\r\n private swipeService: SwipeService,\r\n private msalService: MsalService,\r\n private authService: AuthService,\r\n private mapService: MapService,\r\n private connectionService: ConnectionService,\r\n private stUserProfileService: StUserProfileService,\r\n private activeUserProfileService: ActiveUserProfileService,\r\n private scriptLoaderService: ScriptLoaderService,\r\n private whatfixService: WhatfixService,\r\n private alertService: AlertService,\r\n private environmentService: EnvironmentService,\r\n private msalBroadcastService: MsalBroadcastService,\r\n // last resort strategy because of how HammerJS is implemented\r\n // requires an actual element reference to work properly\r\n // since we now have that element ref behind an ngIf which is not always true\r\n // the element may not always be available and we must manually detect through a change detection\r\n private changeDetectorRef: ChangeDetectorRef) {\r\n this.connectionService.monitor().subscribe(online => {\r\n if (online) {\r\n this.removeAlert(this.onlineAlert);\r\n } else {\r\n const alert = new Alert();\r\n alert.alertMessage = 'No Network Connection - Device Offline';\r\n alert.timeoutNeeded = false;\r\n\r\n this.onlineAlert = alert;\r\n this.pushAlert(this.onlineAlert);\r\n }\r\n });\r\n }\r\n\r\n @HostListener('window:resize', [])\r\n onWindowResize() {\r\n this.resetViewHeightIncrement();\r\n }\r\n\r\n public async ngOnInit(): Promise {\r\n this.resetViewHeightIncrement();\r\n await firstValueFrom(this.msalService.handleRedirectObservable());\r\n this.user = this.msalService.instance.getActiveAccount();\r\n if(sessionStorage.getItem('tamAsset.msal.token') == null){\r\n this.authService.setMsalTokeninSessionStorage((accessToken) => {\r\n console.log('setting token from app component');\r\n const token = accessToken;\r\n });\r\n }\r\n if (this.user) {\r\n this.activeUserProfileService.checkUserHasTMSAccess().then(hasAccess => {\r\n if (hasAccess) {\r\n this.msalBroadcastService.inProgress$\r\n .pipe(\r\n filter((status: InteractionStatus) => status === InteractionStatus.None || status === InteractionStatus.HandleRedirect),\r\n // eslint-disable-next-line no-underscore-dangle\r\n takeUntil(this._destroying$)\r\n )\r\n .subscribe(() => {\r\n this.updateLoggedInUser();\r\n });\r\n this.msalBroadcastService.msalSubject$\r\n .pipe(\r\n filter((msg: EventMessage) => msg.eventType === EventType.LOGIN_SUCCESS || msg.eventType === EventType.ACCOUNT_ADDED || msg.eventType === EventType.ACCOUNT_REMOVED),\r\n // eslint-disable-next-line no-underscore-dangle\r\n takeUntil(this._destroying$)\r\n )\r\n .subscribe((result: EventMessage) => {\r\n const payload = result.payload as AuthenticationResult;\r\n this.msalService.instance.setActiveAccount(payload.account);\r\n this.authService.checkAndSetActiveAccount();\r\n this.authService.getClaims(this.msalService.instance.getActiveAccount()?.idTokenClaims);\r\n this.updateLoggedInUser();\r\n });\r\n this.msalBroadcastService.msalSubject$\r\n .pipe(\r\n filter((msg: EventMessage) => msg.eventType !== EventType.LOGIN_SUCCESS),\r\n // eslint-disable-next-line no-underscore-dangle\r\n takeUntil(this._destroying$)\r\n )\r\n .subscribe((result: EventMessage) => {\r\n console.log(\"token refreshed\");\r\n });\r\n\r\n if (window.self === window.top) {\r\n window.name = 'div';\r\n }\r\n\r\n this.updateLoggedInUser();\r\n this.changeDetectorRef.detectChanges();\r\n // change app wrapper to be available, detect that change, and then sent that element ref to the swipe service so gestures work\r\n this.changeDetectorRef.detectChanges();\r\n this.swipeService.setAppWrapperRef(this.appWrapper);\r\n\r\n // const expTime = this.user.idTokenClaims.exp;\r\n // sessionStorage.setItem('expiresOn', (expTime * 1000).toString());\r\n // if redirectCallbackAuth was successful we will have expiresOn in our sessionStorage, from there we can create a timer to run when\r\n // the token is close to expiring\r\n if (this.user?.idTokenClaims?.exp) {\r\n const expirationTime: Date = new Date(this.user.idTokenClaims.exp * 1000);\r\n sessionStorage.setItem('expiresOn', expirationTime.toString());\r\n console.log('Token Expiration Time:', expirationTime);\r\n this.authService.createTimerForTokenExpiration(expirationTime);\r\n }\r\n\r\n this.environmentService.environmentPromise.then((environment) => {\r\n if (environment.environmentType !== 'integration') {\r\n this.scriptLoaderService.load(environment.whatfixUrl);\r\n }\r\n const userId = this.authService.getUserId();\r\n\r\n const metric = this.stUserProfileService.createDefaultMetric(userId);\r\n metric.event = 'login';\r\n\r\n // send information about this current login to our user profile service\r\n this.stUserProfileService.postEvent(metric);\r\n this.whatfixService.setUserId(userId);\r\n });\r\n\r\n this.mapService.setMapType('AerialWithLabelsOnDemand');\r\n this.loadMap();\r\n } else {\r\n this.noRoles = true;\r\n }\r\n });\r\n } else {\r\n this.msalService.loginRedirect();\r\n this.loggedIn = false;\r\n }\r\n this.idleTimerLogout();\r\n\r\n this.alertService.currentAlert.subscribe((alert: Alert) => {\r\n this.pushAlert(alert);\r\n });\r\n }\r\n\r\n public pushAlert(alert: Alert): void {\r\n this.alerts.push(alert);\r\n if (alert.timeoutNeeded) {\r\n setTimeout(() => this.removeAlert(alert), alert.timeoutLength);\r\n }\r\n }\r\n\r\n public createNewLogoutExpiration(): number {\r\n return new Date().getTime() + 3600000;\r\n }\r\n\r\n public idleTimerLogout(): void {\r\n // create events that look for user activity, in theory if these are not triggered the app is not being used\r\n window.addEventListener('load', function() { this.resetTimer(); }.bind(this), true);\r\n window.addEventListener('mousemove', function() { this.resetTimer(); }.bind(this), true);\r\n window.addEventListener('mousedown', function() { this.resetTimer(); }.bind(this), true);\r\n window.addEventListener('touchstart', function() { this.resetTimer(); }.bind(this), true);\r\n window.addEventListener('keydown', function() { this.resetTimer(); }.bind(this), true);\r\n window.addEventListener('auxclick', function() { this.resetTimer(); }.bind(this), true);\r\n window.addEventListener('click', function() { this.resetTimer(); }.bind(this), true);\r\n window.addEventListener('scroll', function() { this.resetTimer(); }.bind(this), true);\r\n }\r\n\r\n public resetTimer() {\r\n const now = new Date().getTime();\r\n if (now > this.logoutExpiration) {\r\n this.msalService.logout();\r\n } else {\r\n this.logoutExpiration = this.createNewLogoutExpiration();\r\n }\r\n }\r\n\r\n public resetViewHeightIncrement() {\r\n // First we get the viewport height and we multiple it by 1% to get a value for a vh unit\r\n const vh = window.innerHeight * 0.01;\r\n // Then we set the value in the --vh custom property to the root of the document\r\n document.documentElement.style.setProperty('--vh', `${vh}px`);\r\n }\r\n\r\n public filterOpenChange(filterChange: boolean) {\r\n this.swipeService.toggleFilter(filterChange);\r\n }\r\n\r\n public filterClose() {\r\n this.filterOpen = false;\r\n this.swipeService.toggleFilter(false);\r\n }\r\n\r\n // wait until the DOM is completely loaded before trying to activate the map component\r\n public loadMap(): void {\r\n if (document.readyState !== 'complete') {\r\n document.addEventListener('readystatechange', this.loadMap.bind(this));\r\n } else {\r\n document.removeEventListener('readystatechange', this.loadMap.bind(this));\r\n this.mapActive = true;\r\n }\r\n }\r\n\r\n updateLoggedInUser() {\r\n if (this.msalService.instance.getActiveAccount() == null) {\r\n if (this.msalService.instance.getAllAccounts().length > 0) {\r\n this.msalService.instance.setActiveAccount(this.msalService.instance.getAllAccounts()[0]);\r\n }\r\n }\r\n this.loginDisplay = this.msalService.instance.getAllAccounts().length > 0;\r\n\r\n if (this.msalService.instance.getActiveAccount() != null) {\r\n this.loggedInUser = this.msalService.instance.getActiveAccount();\r\n this.loggedIn = true;\r\n }\r\n }\r\n\r\n public removeAlert(alert: Alert) {\r\n this.alerts = this.alerts.filter(x => x !== alert);\r\n }\r\n\r\n public ngOnDestroy(): void {\r\n this.unsubscribe$.next();\r\n this.unsubscribe$.complete();\r\n }\r\n\r\n login() {\r\n if (this.msalGuardConfig.authRequest) {\r\n this.msalService.loginRedirect({...this.msalGuardConfig.authRequest} as RedirectRequest);\r\n } else {\r\n this.msalService.loginRedirect();\r\n }\r\n }\r\n\r\n logout() {\r\n this.msalService.logoutRedirect({\r\n postLogoutRedirectUri: window.location.origin\r\n });\r\n }\r\n\r\n}\r\n","\r\n\r\n
\r\n \r\n
\r\n
\r\n \r\n
\r\n
\r\n {{alert.alertMessage}}\r\n
\r\n
\r\n
\r\n \r\n \r\n
\r\n
\r\n
\r\n\r\n\r\n
\r\n

You have no roles! You need to request a role.

\r\n \r\n Once there click on \"New Request\" and input the information that most closely matches your role and click submit.\r\n
\r\n
\r\n","import { BrowserModule } from '@angular/platform-browser';\r\nimport { NgModule, ɵɵinject, ErrorHandler, LOCALE_ID } from '@angular/core';\r\nimport { FormsModule, ReactiveFormsModule } from '@angular/forms';\r\n\r\nimport { AppRoutingModule } from './app-routing.module';\r\nimport { BrowserAnimationsModule } from '@angular/platform-browser/animations';\r\nimport { MatAutocompleteModule } from '@angular/material/autocomplete';\r\nimport { MatButtonModule } from '@angular/material/button';\r\nimport { MatCheckboxModule } from '@angular/material/checkbox';\r\nimport { MatMenuModule } from '@angular/material/menu';\r\nimport { MatDialogModule } from '@angular/material/dialog';\r\nimport { MatButtonToggleModule } from '@angular/material/button-toggle';\r\nimport { MatDatepickerModule } from '@angular/material/datepicker';\r\nimport { MatNativeDateModule } from '@angular/material/core';\r\nimport { HttpClientModule, HTTP_INTERCEPTORS } from '@angular/common/http';\r\nimport { StCommonModule } from './modules/common/st-common.module';\r\nimport { LeafletModule } from '@asymmetrik/ngx-leaflet';\r\n\r\nimport { AppComponent } from './app.component';\r\nimport { SiteModule } from './modules/site/site.module';\r\nimport { GlobalSearchBoxComponent } from './component/global-search-box/global-search-box.component';\r\nimport { FilterComponent } from './component/filter/filter.component';\r\nimport { FilterSubsectionComponent } from './component/filter/filter-subsection/filter-subsection.component';\r\nimport { FilterCheckboxGroupComponent } from './component/filter/filter-checkbox-group/filter-checkbox-group.component';\r\nimport { FilterTextBoxPairComponent } from './component/filter/filter-text-box-pair/filter-text-box-pair.component';\r\nimport { FilterDateBoxPairComponent } from './component/filter/filter-date-box-pair/filter-date-box-pair.component';\r\nimport { FilterSectionComponent } from './component/filter/filter-section/filter-section.component';\r\nimport { SettingsComponent } from './component/global-search-box/settings/settings.component';\r\nimport { SettingsDialogComponent } from './component/global-search-box/settings/settings-dialog/settings-dialog.component';\r\nimport { MoveBayDialogComponent } from './component/dialog/move-bay-dialog/move-bay-dialog.component';\r\nimport { RejectAssetDialogComponent } from './component/dialog/reject-asset-dialog/reject-asset-dialog.component';\r\nimport { RejectAssetWarningDialogComponent } from './component/dialog/reject-asset-warning-dialog/reject-asset-warning-dialog.component';\r\nimport { InsertTrailerDialogComponent } from './component/dialog/insert-trailer-dialog/insert-trailer-dialog.component';\r\nimport { TrailerSearchDetailComponent } from './component/dialog/insert-trailer-dialog/trailer-search-detail/trailer-search-detail.component';\r\nimport { EditDunnageDialogComponent } from './component/dialog/edit-dunnage-dialog/edit-dunnage-dialog.component';\r\n\r\n\r\nimport { MapComponent } from './component/map/map.component';\r\nimport {LaunchDarklyService} from './service/launch-darkly/launch-darkly-services';\r\n\r\nimport { MsalModule, MsalGuard, MsalInterceptor, MsalRedirectComponent } from '@azure/msal-angular';\r\nimport { ViewportScroller, DOCUMENT } from '@angular/common';\r\nimport { CustomViewportScroller } from './custom-viewport-scroll';\r\nimport { YardCheckGuard } from './modules/site/route-guards';\r\n\r\nimport { BrowserCacheLocation, InteractionType, PublicClientApplication, LogLevel } from '@azure/msal-browser';\r\n\r\nexport const loggerCallback = (logLevel: LogLevel, message: string) => console.log(message);\r\n\r\nimport { SharedSvgLibModule } from '@tms/shared-svg';\r\nimport { LocalizationService } from './service/view/localization.service';\r\n\r\n@NgModule({\r\n declarations: [\r\n AppComponent,\r\n GlobalSearchBoxComponent,\r\n FilterComponent,\r\n FilterSubsectionComponent,\r\n FilterCheckboxGroupComponent,\r\n FilterTextBoxPairComponent,\r\n FilterDateBoxPairComponent,\r\n FilterSectionComponent,\r\n MapComponent,\r\n SettingsComponent,\r\n SettingsDialogComponent,\r\n MoveBayDialogComponent,\r\n RejectAssetDialogComponent,\r\n RejectAssetWarningDialogComponent,\r\n InsertTrailerDialogComponent,\r\n TrailerSearchDetailComponent,\r\n EditDunnageDialogComponent,\r\n ],\r\n imports: [\r\n BrowserModule,\r\n BrowserAnimationsModule,\r\n FormsModule,\r\n ReactiveFormsModule,\r\n MatButtonModule,\r\n MatCheckboxModule,\r\n MatAutocompleteModule,\r\n MatMenuModule,\r\n MatDialogModule,\r\n MatButtonToggleModule,\r\n MatDatepickerModule,\r\n MatNativeDateModule,\r\n HttpClientModule,\r\n LeafletModule.forRoot(),\r\n MsalModule.forRoot(new PublicClientApplication({\r\n auth: {\r\n clientId: '7b6c5fed-a30b-4893-b9bd-33d8eb052123',\r\n authority: 'https://login.microsoftonline.com/e7520e4d-d5a0-488d-9e9f-949faae7dce8',\r\n redirectUri: window.location.origin\r\n },\r\n cache: {\r\n cacheLocation: BrowserCacheLocation.SessionStorage, // This configures where your cache will be stored\r\n storeAuthStateInCookie: false, // set this to \"true\" if you are having issues on IE11 or Edge\r\n },\r\n system: {\r\n loggerOptions: {\r\n loggerCallback,\r\n logLevel: LogLevel.Error,\r\n piiLoggingEnabled: false\r\n }\r\n }\r\n }),\r\n {\r\n interactionType: InteractionType.Redirect, // MSAL Guard Configuration\r\n authRequest: {\r\n scopes: ['openid', 'profile', 'email']\r\n },\r\n },\r\n {\r\n interactionType: InteractionType.Redirect, // MSAL Interceptor Configuration\r\n protectedResourceMap: new Map([\r\n ['https://graph.microsoft.com', ['user.read']]\r\n ])\r\n }),\r\n AppRoutingModule,\r\n StCommonModule,\r\n SiteModule,\r\n SharedSvgLibModule\r\n ],\r\n providers: [{\r\n provide: ViewportScroller,\r\n useFactory: () => new CustomViewportScroller('retain-scroll-container', ɵɵinject(DOCUMENT), window, ɵɵinject(ErrorHandler))},\r\n YardCheckGuard,\r\n LaunchDarklyService,\r\n {\r\n provide: HTTP_INTERCEPTORS,\r\n useClass: MsalInterceptor,\r\n multi: true\r\n },\r\n MsalGuard,\r\n {\r\n provide: LOCALE_ID,\r\n deps: [LocalizationService],\r\n useFactory: (localeService: LocalizationService) => {\r\n return localeService.localeId;\r\n }\r\n }\r\n ],\r\n bootstrap: [AppComponent, MsalRedirectComponent]\r\n})\r\nexport class AppModule { }\r\n","import { Injectable } from '@angular/core';\r\nimport { MsalService } from '@azure/msal-angular';\r\nimport { AuthenticationResult, SilentRequest } from '@azure/msal-browser';\r\n\r\nimport { timer, Subscription, map, catchError, throwError, Observable } from 'rxjs';\r\n\r\nimport { Claim } from '../claim';\r\nimport { IdTokenClaims } from '@azure/msal-common';\r\n\r\n@Injectable({\r\n providedIn: 'root'\r\n})\r\nexport class AuthService {\r\n tokenExpirationSub: Subscription;\r\n userId: string;\r\n claimsList: Claim[];\r\n\r\n constructor(private msalService: MsalService) { }\r\n\r\n public createTimerForTokenExpiration(expirationTime: Date): void {\r\n expirationTime.setMinutes(expirationTime.getMinutes() - 5);\r\n this.unsubscribeFromTokenExpirationSubscription();\r\n\r\n // start at expiration time minus 5 minutes and rerun every 10 seconds until refreshToken succeeds (gets a new expiration in the token)\r\n this.tokenExpirationSub = timer(expirationTime, 10000).pipe().subscribe(() => {\r\n this.refreshToken();\r\n });\r\n }\r\n\r\n public refreshToken(): void {\r\n const authParams: SilentRequest = {\r\n scopes: ['openid', 'profile', 'email'],\r\n account: this.msalService.instance.getActiveAccount(),\r\n redirectUri: window.location.origin + '/auth.html',\r\n forceRefresh: true // Force refresh the token\r\n };\r\n \r\n this.msalService.acquireTokenSilent(authParams).pipe(\r\n catchError(error => {\r\n console.error('Error acquiring token silently:', error);\r\n this.msalService.loginRedirect(); // Redirect to login on error\r\n return null; // Return an observable with a null value\r\n })\r\n ).subscribe((response: AuthenticationResult | null) => {\r\n if (response) {\r\n const idTokenClaims = response.idTokenClaims as IdTokenClaims;\r\n // update the new token in session storage if token is changed\r\n if(sessionStorage.getItem('tamAsset.msal.token') !== response.idToken){ \r\n sessionStorage.setItem('tamAsset.msal.token', response.idToken);\r\n } else {\r\n this.msalService.loginRedirect(); // Redirect to login when token is not changed\r\n }\r\n // only make a new subscription if the expiration is new\r\n const expirationTime: Date = new Date(idTokenClaims.exp * 1000);\r\n if (sessionStorage.getItem('expiresOn') !== expirationTime.toString()) {\r\n sessionStorage.setItem('expiresOn', expirationTime.toString());\r\n console.log('Token Expiration Time:', expirationTime);\r\n this.createTimerForTokenExpiration(expirationTime);\r\n }\r\n }\r\n });\r\n }\r\n\r\n // unsubscribe from the subscription to get rid of it to avoid memory leaks\r\n public unsubscribeFromTokenExpirationSubscription(): void {\r\n if (this.tokenExpirationSub) {\r\n this.tokenExpirationSub.unsubscribe();\r\n }\r\n }\r\n\r\n public getUserId(): string {\r\n if (this.userId) {\r\n return this.userId;\r\n } else {\r\n let claims = this.msalService.instance.getActiveAccount();\r\n if (claims === null) {\r\n this.checkAndSetActiveAccount();\r\n claims = this.msalService.instance.getActiveAccount();\r\n }\r\n let userId: string = claims.username;\r\n if (userId) {\r\n const atLocation = userId.indexOf('@');\r\n if (atLocation !== -1) {\r\n userId = userId.substring(0, atLocation);\r\n }\r\n }\r\n this.userId = userId;\r\n return this.userId;\r\n }\r\n }\r\n\r\n public getToken(): string {\r\n return sessionStorage.getItem('tamAsset.msal.token');\r\n }\r\n\r\n public setMsalTokeninSessionStorage(callback: (accessToken: string) => any): void {\r\n this.checkAndSetActiveAccount();\r\n if (this.msalService.instance.getAllAccounts().length > 0) {\r\n const params: SilentRequest = {\r\n scopes: ['openid', 'profile', 'email'],\r\n account: this.msalService.instance.getActiveAccount()\r\n };\r\n this.msalService.acquireTokenSilent(params).subscribe((accessTokenReponse) => {\r\n if (accessTokenReponse != null) {\r\n // Acquire token silent success\r\n const accessToken = accessTokenReponse.idToken;\r\n // Call your API with token\r\n sessionStorage.setItem('tamAsset.msal.token', accessToken);\r\n callback(accessToken);\r\n }\r\n });\r\n }\r\n }\r\n\r\n public getClaims(claims: any) {\r\n const list: Claim[] = new Array(0);\r\n // eslint-disable-next-line prefer-arrow/prefer-arrow-functions\r\n Object.keys(claims).forEach(function(k, v) {\r\n const c = new Claim();\r\n c.id = v;\r\n c.claim = k;\r\n c.value = claims ? claims[k]: null;\r\n list.push(c);\r\n });\r\n this.claimsList = list;\r\n }\r\n\r\n public checkAndSetActiveAccount(): void {\r\n const activeAccount = this.msalService.instance.getActiveAccount();\r\n if (!activeAccount && this.msalService.instance.getAllAccounts().length > 0) {\r\n const accounts = this.msalService.instance.getAllAccounts();\r\n this.msalService.instance.setActiveAccount(accounts[0]);\r\n }\r\n }\r\n}\r\n","export class Claim {\r\n id: number;\r\n claim: string;\r\n value: string;\r\n}","import { Component, Input } from '@angular/core';\r\n\r\n@Component({\r\n selector: 'app-action-button',\r\n templateUrl: './action-button.component.html',\r\n styleUrls: ['./action-button.component.scss']\r\n})\r\nexport class ActionButtonComponent {\r\n @Input() icon: string;\r\n @Input() title: string;\r\n @Input() backcolor: string;\r\n}\r\n","
\r\n \r\n
{{title}}
\r\n
","import { Component, Input } from '@angular/core';\r\n\r\n@Component({\r\n selector: 'app-bar-chart-with-title',\r\n templateUrl: './bar-chart-with-title.component.html',\r\n styleUrls: ['./bar-chart-with-title.component.scss', '../../../component/site/detail/detail.scss']\r\n})\r\nexport class BarChartWithTitleComponent {\r\n @Input() title: string;\r\n @Input() percent: number;\r\n @Input() barColor: string;\r\n}\r\n","
{{title}}
\r\n","import { Component, Input } from '@angular/core';\r\n\r\n@Component({\r\n selector: 'app-bar-chart',\r\n templateUrl: './bar-chart.component.html',\r\n styleUrls: ['./bar-chart.component.scss', '../bars.scss']\r\n})\r\nexport class BarChartComponent {\r\n @Input() percent: number;\r\n @Input() barColor: string;\r\n}\r\n","
\r\n
\r\n
\r\n","export class BarWithTitle {\r\n title: string;\r\n percent: number;\r\n pieces: number;\r\n barColor: string;\r\n\r\n constructor() {\r\n this.title = '';\r\n this.pieces = 0;\r\n this.percent = 0;\r\n this.barColor = 'darkgrey';\r\n }\r\n}\r\n","import { Component, Input } from '@angular/core';\r\nimport { BarWithTitle } from '../model/bar-with-title/bar-with-title';\r\n\r\n@Component({\r\n selector: 'app-stacked-bar-chart',\r\n templateUrl: './stacked-bar-chart.component.html',\r\n styleUrls: ['./stacked-bar-chart.component.scss', '../bars.scss']\r\n})\r\nexport class StackedBarChartComponent {\r\n @Input() bars: BarWithTitle[];\r\n}\r\n","
\r\n \r\n
0\" class=\"inline-bar\" [style.background-color]=\"bar.barColor\" [style.width]=\"bar.percent+'%'\">
{{bar.title}}
\r\n
\r\n
\r\n","import { Component, Input } from '@angular/core';\r\n\r\n@Component({\r\n selector: 'app-icon',\r\n templateUrl: './icon.component.html',\r\n styleUrls: ['./icon.component.scss']\r\n})\r\nexport class IconComponent {\r\n @Input() icon: string;\r\n}\r\n","\r\n","import { Component, Input } from '@angular/core';\r\nimport { AssetInfo } from '../../../app/model/asset-info/asset-info';\r\nimport { OnRoadOperations } from '../../../app/model/asset-info/on-road-operations';\r\nimport { CommonFunctionsSite } from '../../../app/component/site/common-functions-site';\r\n\r\n@Component({\r\n selector: 'app-linked-equipment',\r\n templateUrl: './linked-equipment.component.html',\r\n styleUrls: ['./linked-equipment.component.scss']\r\n})\r\nexport class LinkedEquipmentComponent {\r\n\r\n @Input() assetInformation: AssetInfo;\r\n public commonFunctionsSite = new CommonFunctionsSite();\r\n\r\n}\r\n","
\r\n
{{commonFunctionsSite.assetTypeToHumanReadable(assetInformation.equipment.equipmentType)}} Number
\r\n
{{assetInformation.equipment.equipmentNumber}}
\r\n
\r\n \"Equipment_Icon\"\r\n
\r\n
","import { Component } from '@angular/core';\r\n\r\n@Component({\r\n selector: 'app-loading-spinner',\r\n templateUrl: './loading-spinner.component.html',\r\n styleUrls: ['./loading-spinner.component.scss']\r\n})\r\nexport class LoadingSpinnerComponent {\r\n}\r\n","
\r\n","import { Pipe, PipeTransform } from '@angular/core';\r\n\r\nimport { AssetInfo } from '../../model/asset-info/asset-info';\r\nimport { Operations } from '../../model/asset-info/operations';\r\nimport { EquipmentTypeFilter } from '../../component/site/summary/model/equipment-type-filter';\r\n\r\n@Pipe({\r\n name: 'assetsInList',\r\n})\r\nexport class AssetsInListPipe implements PipeTransform {\r\n public transform(listOfAssets: AssetInfo[], viewType: string, equipmentType: EquipmentTypeFilter): string {\r\n if (listOfAssets && listOfAssets.length) {\r\n return `${listOfAssets.length} ${this.determineAssetString(listOfAssets.length, viewType, equipmentType)}`;\r\n } else {\r\n return `0 ${this.determineAssetString(0, viewType, equipmentType)}`;\r\n }\r\n }\r\n\r\n public determineAssetString(listLength: number, viewType: string, equipmentType: EquipmentTypeFilter) {\r\n if (viewType === 'On Property') {\r\n if (equipmentType.trailer) {\r\n if (listLength === 1) {\r\n return 'Trailer';\r\n } else {\r\n return 'Trailers';\r\n }\r\n } else if (equipmentType.tractor) {\r\n if (listLength === 1) {\r\n return 'Tractor';\r\n } else {\r\n return 'Tractors';\r\n }\r\n } else if (equipmentType.dolly) {\r\n if (listLength === 1) {\r\n return 'Dolly';\r\n } else {\r\n return 'Dollies';\r\n }\r\n }\r\n } else if (viewType === 'Yard Check') {\r\n if (listLength === 1) {\r\n return 'Bay';\r\n } else {\r\n return 'Bays';\r\n }\r\n }\r\n if (listLength === 1) {\r\n return 'Asset';\r\n } else {\r\n return 'Assets';\r\n }\r\n }\r\n}\r\n","import { Pipe, PipeTransform } from '@angular/core';\r\n\r\n@Pipe({\r\n name: 'dateTimeLong',\r\n})\r\nexport class DateTimeLong implements PipeTransform {\r\n public transform(timestamp: string | number): string {\r\n return new Date(timestamp).toLocaleString('en-US-u-hc-h23', {hour12: false, month: '2-digit', day: '2-digit', year: 'numeric', hour: '2-digit', minute: '2-digit'}).replace(',', '');\r\n }\r\n}\r\n\r\n@Pipe({\r\n name: 'dateTimeShort',\r\n})\r\nexport class DateTimeShort implements PipeTransform {\r\n public transform(timestamp: string | number): string {\r\n return new Date(timestamp).toLocaleString('en-US-u-hc-h23', {hour12: false, month: '2-digit', day: '2-digit', hour: '2-digit', minute: '2-digit'}).replace(',', '');\r\n }\r\n}\r\n\r\n@Pipe({\r\n name: 'dateShort',\r\n})\r\nexport class DateShort implements PipeTransform {\r\n public transform(timestamp: string | number | Date): string {\r\n return new Date(timestamp).toLocaleDateString('en-US', {month: '2-digit', day: '2-digit'});\r\n }\r\n}\r\n\r\n@Pipe({\r\n name: 'dateLong',\r\n})\r\nexport class DateLong implements PipeTransform {\r\n public transform(timestamp: string | number | Date, timeZone?: string): string {\r\n const options: Intl.DateTimeFormatOptions = { month: '2-digit', day: '2-digit', year: 'numeric' };\r\n if (timeZone) {\r\n options.timeZone = timeZone;\r\n }\r\n return new Date(timestamp).toLocaleDateString('en-US', options);\r\n }\r\n}\r\n\r\n@Pipe({\r\n name: 'timeMilitary',\r\n})\r\nexport class TimeMilitary implements PipeTransform {\r\n public transform(timestamp: string | number | Date): string {\r\n return new Date(timestamp).toLocaleTimeString('en-US-u-hc-h23', {hour12: false, hour: '2-digit', minute: '2-digit'});\r\n }\r\n}\r\n","import { Pipe, PipeTransform } from '@angular/core';\r\n\r\n@Pipe({\r\n name: 'daysFromToday',\r\n})\r\nexport class DaysFromTodayPipe implements PipeTransform {\r\n public transform(timestamp: number | string): number {\r\n return Math.abs(Math.round((Date.now() - new Date(timestamp).getTime()) / 1000 / 60 / 60 / 24));\r\n }\r\n}\r\n","import { Pipe, PipeTransform } from '@angular/core';\r\n\r\n@Pipe({\r\n name: 'jobNumber',\r\n})\r\nexport class JobNumberPipe implements PipeTransform {\r\n public transform(jobNumber: string): string {\r\n if (jobNumber.includes('_TFCS_MAN')) {\r\n return jobNumber.substr(0, jobNumber.indexOf('_TFCS_MAN'));\r\n } else {\r\n return jobNumber;\r\n }\r\n }\r\n}\r\n","import { Pipe, PipeTransform } from '@angular/core';\r\nimport { parseDate } from 'ngx-bootstrap/chronos';\r\nimport { LocalizationService } from '../../service/view/localization.service';\r\n\r\n@Pipe({\r\n name: 'ldateTimeShort',\r\n})\r\nexport class LocaleDateTimeShort implements PipeTransform {\r\n constructor(private localizationService: LocalizationService) { }\r\n public transform(timestamp: string | number): string {\r\n return new Date(timestamp).toLocaleString(this.localizationService.localeId+'-u-hc-h23', {hour12: false, month: '2-digit', day: '2-digit', hour: '2-digit', minute: '2-digit'}).replace(',', '');\r\n }\r\n}\r\n\r\n@Pipe({\r\n name: 'ldateShort',\r\n})\r\nexport class LocaleDateShort implements PipeTransform {\r\n constructor(private localizationService: LocalizationService) { }\r\n public transform(timestamp: string | number | Date): string {\r\n return parseDate(timestamp).toLocaleDateString(this.localizationService.localeId, {month: '2-digit', day: '2-digit'});\r\n }\r\n}\r\n\r\n@Pipe({\r\n name: 'ldateLong',\r\n})\r\nexport class LocaleDateLong implements PipeTransform {\r\n constructor(private localizationService: LocalizationService) { }\r\n public transform(timestamp: string | number | Date, timeZone?: string): string {\r\n const options: Intl.DateTimeFormatOptions = { month: '2-digit', day: '2-digit', year: 'numeric' };\r\n if (timeZone) {\r\n options.timeZone = timeZone;\r\n }\r\n return parseDate(timestamp).toLocaleDateString(this.localizationService.localeId, options);\r\n }\r\n}\r\n\r\n@Pipe({\r\n name: 'ltimeMilitary',\r\n})\r\nexport class LocaleTimeMilitary implements PipeTransform {\r\n constructor(private localizationService: LocalizationService) { }\r\n public transform(timestamp: string | number | Date): string {\r\n return new Date(timestamp).toLocaleTimeString(this.localizationService.localeId+'-u-hc-h23', {hour12: false, hour: '2-digit', minute: '2-digit'});\r\n }\r\n}\r\n\r\n@Pipe({\r\n name: 'lSummarydateShort',\r\n})\r\nexport class LocaleSummaryDateShort implements PipeTransform {\r\n constructor(private localizationService: LocalizationService) { }\r\n public transform(timestamp: string | number | Date, timeZone?: string): string {\r\n const options: Intl.DateTimeFormatOptions = { month: '2-digit', day: '2-digit' };\r\n if (timeZone) {\r\n options.timeZone = timeZone;\r\n }\r\n return parseDate(timestamp).toLocaleDateString(this.localizationService.localeId, options);\r\n }\r\n}\r\n","import { Component, Input } from '@angular/core';\r\n\r\n@Component({\r\n selector: 'app-submit-button',\r\n templateUrl: './submit-button.component.html',\r\n styleUrls: ['./submit-button.component.scss']\r\n})\r\nexport class SubmitButtonComponent {\r\n\r\n @Input() title: string;\r\n @Input() color: string;\r\n @Input() backcolor: string;\r\n @Input() disable = false;\r\n\r\n}\r\n","
\r\n \r\n
","import { Component } from '@angular/core';\r\n\r\n@Component({\r\n selector: 'app-vr',\r\n templateUrl: './vr.component.html',\r\n styleUrls: ['./vr.component.scss']\r\n})\r\nexport class VrComponent {}\r\n","import { Component, OnInit, OnDestroy, Inject } from '@angular/core';\r\nimport { MatDialogRef, MAT_DIALOG_DATA } from '@angular/material/dialog';\r\nimport { Subject } from 'rxjs';\r\nimport { takeUntil } from 'rxjs/operators';\r\nimport { AssetInfo } from '../../../model/asset-info/asset-info';\r\nimport { OnPropertyOperations } from '../../../model/asset-info/on-property-operations';\r\nimport { DunnageUpdate } from '../../../model/dunnage/dunnage-update';\r\nimport { TrailerDunnage } from '../../../model/asset-info/trailer-dunnage';\r\nimport { Location as TmsLocation } from '../../../model/location/location';\r\nimport { AuthService } from '../../../auth/auth.service';\r\nimport { StUserProfileService } from '../../../service/webservice/st-user-profile/st-user-profile.service';\r\nimport { HfcsService } from '../../../service/webservice/hfcs/hfcs.service';\r\n\r\n@Component({\r\n selector: 'app-edit-dunnage-dialog',\r\n templateUrl: './edit-dunnage-dialog.component.html',\r\n styleUrls: ['./edit-dunnage-dialog.component.scss',\r\n '../../site/detail/detail.scss',\r\n '../../site/site.scss']\r\n})\r\nexport class EditDunnageDialogComponent implements OnInit, OnDestroy {\r\n\r\n assetInformation: AssetInfo = this.data.asset;\r\n dunnageUpdate: DunnageUpdate = new DunnageUpdate();\r\n dunnageUpdateStatusMessage = '';\r\n unsubscribe$ = new Subject();\r\n constructor(\r\n public dialogRef: MatDialogRef,\r\n private authService: AuthService,\r\n private stUserProfileService: StUserProfileService,\r\n private hfcsService: HfcsService,\r\n @Inject(MAT_DIALOG_DATA) public data: {\r\n asset: AssetInfo;\r\n location: TmsLocation;\r\n }) { }\r\n\r\n\r\n public ngOnInit(): void {\r\n this.dunnageUpdate.trailerNumber = this.assetInformation.equipment.equipmentNumber;\r\n this.dunnageUpdate.bayNumber = this.assetInformation.operations.bayNumber;\r\n if (this.assetInformation.operations.trailerDunnage) {\r\n this.dunnageUpdate.bagVolumeQuantity = this.assetInformation.operations.trailerDunnage.bagVolume;\r\n this.dunnageUpdate.dolliesVolumeQuantity = this.assetInformation.operations.trailerDunnage.dolliesVolumeQuantity;\r\n this.dunnageUpdate.gaylordsVolumeQuantity = this.assetInformation.operations.trailerDunnage.gaylordVolumeQuantity;\r\n this.dunnageUpdate.palletVolumeQuantity = this.assetInformation.operations.trailerDunnage.palletVolume;\r\n this.dunnageUpdate.hasPallets = this.assetInformation.operations.trailerDunnage.pallets;\r\n this.dunnageUpdate.hasBags = this.assetInformation.operations.trailerDunnage.bags;\r\n this.dunnageUpdate.hasDollies = this.assetInformation.operations.trailerDunnage.hasDollies;\r\n this.dunnageUpdate.hasGaylords = this.assetInformation.operations.trailerDunnage.gaylord;\r\n this.dunnageUpdate.hasTrash = this.assetInformation.operations.trailerDunnage.trash;\r\n this.dunnageUpdate.hasAutomotiveEquipment = this.assetInformation.operations.trailerDunnage.hasAutomotiveEquipment;\r\n this.dunnageUpdate.hasPeEquipment = this.assetInformation.operations.trailerDunnage.hasPEEquipment;\r\n this.dunnageUpdate.hasHubEquipment = this.assetInformation.operations.trailerDunnage.hasHubEquipment;\r\n }\r\n }\r\n\r\n public submitEditDunnage() {\r\n this.dunnageUpdateStatusMessage = '';\r\n const userId = this.authService.getUserId();\r\n this.dunnageUpdate.userId = userId;\r\n this.sendDunnageUpdate(this.dunnageUpdate);\r\n\r\n const metric = this.stUserProfileService.createDefaultMetric(userId);\r\n metric.event = 'editDunnage';\r\n\r\n // send information about this current login to our user profile service\r\n this.stUserProfileService.postEvent(metric);\r\n\r\n }\r\n\r\n public sendDunnageUpdate(dunnageUpdate: DunnageUpdate): void {\r\n try {\r\n this.hfcsService.postDunnageCleanliness(this.data.location.countryCode, this.data.location.slicAbbreviation, dunnageUpdate).pipe(takeUntil(this.unsubscribe$)).subscribe(() => {\r\n const updatedTrailerDunnage = new TrailerDunnage();\r\n updatedTrailerDunnage.gaylordVolumeQuantity = dunnageUpdate.gaylordsVolumeQuantity;\r\n updatedTrailerDunnage.gaylord = dunnageUpdate.hasGaylords;\r\n updatedTrailerDunnage.bagVolume = dunnageUpdate.bagVolumeQuantity;\r\n updatedTrailerDunnage.bags = dunnageUpdate.hasBags;\r\n updatedTrailerDunnage.palletVolume = dunnageUpdate.palletVolumeQuantity;\r\n updatedTrailerDunnage.pallets = dunnageUpdate.hasPallets;\r\n updatedTrailerDunnage.dolliesVolumeQuantity = dunnageUpdate.dolliesVolumeQuantity;\r\n updatedTrailerDunnage.hasDollies = dunnageUpdate.hasDollies;\r\n updatedTrailerDunnage.trash = this.dunnageUpdate.hasTrash;\r\n updatedTrailerDunnage.hasAutomotiveEquipment = dunnageUpdate.hasAutomotiveEquipment;\r\n updatedTrailerDunnage.hasPEEquipment = dunnageUpdate.hasPeEquipment;\r\n updatedTrailerDunnage.hasHubEquipment = dunnageUpdate.hasHubEquipment;\r\n this.dialogRef.close(updatedTrailerDunnage);\r\n }, (error) => {\r\n console.log('Dunnage Update failed: ' + error);\r\n this.dunnageUpdateStatusMessage = 'Dunnage Update Failed: ' + error.statusText;\r\n });\r\n } catch (e) {\r\n console.log('An Unexpected Error Has Occured Posting Dunnage');\r\n this.dialogRef.close(null);\r\n }\r\n }\r\n\r\n public onKeyDunnage(e: any, max: number, dunnageBool: string): void {\r\n const num = parseInt(e.target.value.replace(/[^0-9]/g, ''), 10);\r\n if (num > max) {\r\n e.target.value = max.toString();\r\n }\r\n if (num > 0) {\r\n this.dunnageUpdate[dunnageBool] = true;\r\n } else {\r\n this.dunnageUpdate[dunnageBool] = false;\r\n }\r\n }\r\n\r\n public enterKeyBlur(e) {\r\n e.target.blur();\r\n }\r\n\r\n public closeEditDunnage() {\r\n this.dialogRef.close(null);\r\n }\r\n\r\n public ngOnDestroy(): void {\r\n this.unsubscribe$.next();\r\n this.unsubscribe$.complete();\r\n }\r\n\r\n}\r\n","

\r\n \r\n Edit Dunnage\r\n

\r\n
\r\n
\r\n
Gaylords
\r\n
Bags%
\r\n
\r\n
Pallets
\r\n
Dollies
\r\n \r\n
Air Containers
\r\n
Trash
\r\n
\r\n
\r\n
Equipment
\r\n
Auto
\r\n
PE
\r\n
Hub
\r\n
\r\n \r\n
\r\n \r\n
\r\n\r\n
\r\n
\r\n \r\n \r\n
\r\n
\r\n
\r\n","import { Component, Inject, OnInit, OnDestroy, ViewChild, ElementRef} from '@angular/core';\r\nimport { DatePipe } from '@angular/common';\r\nimport { MatDialog, MatDialogRef, MAT_DIALOG_DATA } from '@angular/material/dialog';\r\nimport { UntypedFormBuilder, UntypedFormGroup } from '@angular/forms';\r\n\r\nimport { Subject } from 'rxjs';\r\nimport { takeUntil, debounceTime } from 'rxjs/operators';\r\n\r\nimport { AssetInfo } from '../../../model/asset-info/asset-info';\r\nimport { OnPropertyOperations } from '../../../model/asset-info/on-property-operations';\r\nimport { Location as TmsLocation } from '../../../model/location/location';\r\nimport { EquipmentLocationReconcile } from '../../../model/reconciliation/equipment-location-reconcile';\r\nimport { AuthService } from '../../../auth/auth.service';\r\nimport { StUserProfileService } from '../../../service/webservice/st-user-profile/st-user-profile.service';\r\nimport { ReconciliationService } from '../../../service/webservice/reconciliation/reconciliation.service';\r\nimport { StOnPropertyService } from '../../../service/webservice/st-on-property/st-on-property.service';\r\nimport { LocationUpdateStatus} from '../../../model/reconciliation/location-update-status';\r\nimport { CommonFunctionsSite } from '../../../component/site/common-functions-site';\r\nimport { EditDunnageDialogComponent } from '../../dialog/edit-dunnage-dialog/edit-dunnage-dialog.component';\r\nimport { LocationConfirmation } from '../../../model/reconciliation/location-confirmation';\r\nimport { OnSiteNotArrivedLocation } from '../../../model/reconciliation/on-site-not-arrived-location';\r\nimport { Equipment } from '../../../model/asset-info/equipment';\r\nimport { MapLargeLayerHandler } from '../../map/maplarge-layers/maplarge-layers';\r\nimport { GpsDetails } from '../../../model/asset-info/gps-details';\r\nimport { MatButtonToggleChange } from '@angular/material/button-toggle';\r\n\r\n@Component({\r\n selector: 'app-insert-trailer-dialog',\r\n templateUrl: './insert-trailer-dialog.component.html',\r\n styleUrls: ['./insert-trailer-dialog.component.scss',\r\n '../../site/detail/detail-action-buttons/detail-action-move-bay/detail-action-move-bay.component.scss',\r\n '../../site/detail/detail.scss', '../../site/site.scss']\r\n})\r\nexport class InsertTrailerDialogComponent implements OnInit, OnDestroy {\r\n @ViewChild('trailerSearchInput') trailerSearchInput: ElementRef;\r\n insertTrailerStatus = '';\r\n selectedPosition = '';\r\n loadedOrEmpty = 'E';\r\n movementActivityEquipmentOid = '';\r\n disableSubmit = true;\r\n continueReject = false;\r\n layout = '';\r\n selectedTrailer: AssetInfo = null;\r\n onSiteNotArrived = false;\r\n enableAddTrailer = false;\r\n addTrailerNumber = null;\r\n enableAddBay = false;\r\n selectedBayNumber = '';\r\n \r\n public commonFunctionsSite = new CommonFunctionsSite();\r\n unsubscribe$ = new Subject();\r\n trailerSearchResults: AssetInfo[] = [];\r\n\r\n trailerSearchForm: UntypedFormGroup = this.formBuilder.group({\r\n trailerSearch: '',\r\n });\r\n\r\n\r\n constructor(\r\n public authService: AuthService,\r\n public stUserProfileService: StUserProfileService,\r\n public reconciliationService: ReconciliationService,\r\n public stOnPropertyService: StOnPropertyService,\r\n public dialogRef: MatDialogRef,\r\n private formBuilder: UntypedFormBuilder,\r\n private mapLargeLayerHandler: MapLargeLayerHandler,\r\n private dialog: MatDialog,\r\n @Inject(MAT_DIALOG_DATA) public data: {\r\n asset: AssetInfo;\r\n onPropertyAssets: AssetInfo[];\r\n location: TmsLocation;\r\n insertOnReject: boolean;\r\n }) { }\r\n\r\n public ngOnInit(): void {\r\n this.selectedPosition = 'F';\r\n this.loadedOrEmpty = 'E';\r\n if(this.data.asset?.equipment?.equipmentNumber && this.data.asset.dataSources.length === 1 && this.data.asset.dataSources[0] === 'TAM') {\r\n this.selectedTrailer = this.data.asset;\r\n this.onSiteNotArrived = true;\r\n this.enableAddBay = true;\r\n } else {\r\n this.initializeTrailerSearch();\r\n }\r\n }\r\n\r\n public initializeTrailerSearch() {\r\n this.trailerSearchForm.get('trailerSearch').valueChanges\r\n .pipe(debounceTime(200))\r\n .subscribe(searchValue => {\r\n this.insertTrailerStatus = '';\r\n if (searchValue !== '' && searchValue.length > 3) {\r\n this.trailerSearchResults = this.searchTrailerList(searchValue);\r\n if (searchValue.length > 4) {\r\n //trailer not found on property, enable add trailer functionality\r\n this.enableAddTrailer = true;\r\n this.addTrailerNumber = searchValue.toUpperCase();\r\n } else {\r\n this.enableAddTrailer = false;\r\n this.addTrailerNumber = null;\r\n }\r\n } else {\r\n this.trailerSearchResults = [];\r\n }\r\n });\r\n }\r\n\r\n\r\n public validateInsertTrailer(asset: AssetInfo): boolean {\r\n const layout = this.stOnPropertyService.fetchLastSiteLayout();\r\n this.insertTrailerStatus = '';\r\n let toBay = null;\r\n let fromBay = null;\r\n let toBayFound = false;\r\n let fromBayFound = false;\r\n let bothBaysFound = false;\r\n let selectedBay = null;\r\n let currentBay = null;\r\n toBay = parseInt(this.data.asset.operations.bayNumber, 10);\r\n fromBay = parseInt(asset.operations.bayNumber, 10);\r\n\r\n if (layout != null) {\r\n if (layout.bays.length !== 0) {\r\n for (const bay of layout.bays) {\r\n if (bay.bayNumber === toBay || bay.bayNumber === fromBay) {\r\n if (bay.bayNumber === parseInt(toBay, 10)) {\r\n toBayFound = true;\r\n selectedBay = layout.bays.find(y => y.bayNumber === toBay);\r\n }\r\n if (bay.bayNumber === parseInt(fromBay, 10)) {\r\n fromBayFound = true;\r\n currentBay = layout.bays.find(z => z.bayNumber === fromBay);\r\n }\r\n }\r\n if (toBayFound && fromBayFound) {\r\n bothBaysFound = true;\r\n break;\r\n }\r\n }\r\n }\r\n if ((layout.zones.length !== 0) && (!bothBaysFound)) {\r\n for (const zone of layout.zones) {\r\n if (zone.bays.find(x => x.bayNumber === toBay) !== undefined || zone.bays.find(x => x.bayNumber === fromBay) !== undefined) {\r\n if (zone.bays.find(x => x.bayNumber === toBay) !== undefined) {\r\n toBayFound = true;\r\n selectedBay = zone.bays.find(y => y.bayNumber === toBay);\r\n }\r\n if (zone.bays.find(x => x.bayNumber === fromBay) !== undefined) {\r\n fromBayFound = true;\r\n currentBay = zone.bays.find(z => z.bayNumber === fromBay);\r\n }\r\n }\r\n if (toBayFound && fromBayFound) {\r\n bothBaysFound = true;\r\n break;\r\n }\r\n }\r\n }\r\n\r\n if (!bothBaysFound) {\r\n if(!toBayFound && !fromBayFound) {\r\n console.error(`To Bay ${toBay} and From Bay ${fromBay} are not found.`);\r\n this.insertTrailerStatus = `To Bay ${toBay} and From Bay ${fromBay} are not found.`;\r\n } else {\r\n if(!toBayFound) {\r\n console.error(`To Bay ${toBay} not found.`);\r\n this.insertTrailerStatus=`To Bay ${toBay} not found.`;\r\n }\r\n if(!fromBayFound) {\r\n console.error(`From Bay ${fromBay} not found.`);\r\n this.insertTrailerStatus=`From Bay ${fromBay} not found.`;\r\n }\r\n }\r\n return false;\r\n } else {\r\n return this.validateSelectedandCurrentBays(selectedBay, currentBay);\r\n }\r\n }\r\n }\r\n\r\n public validateSelectedandCurrentBays(selectedBay, currentBay) {\r\n if (selectedBay.bayZoneType.includes('WASH')) {\r\n console.error('You are attempting to move an asset to a wash bay. This action can not be performed.');\r\n this.insertTrailerStatus = 'You are attempting to move an asset to a wash bay. This action can not be performed.';\r\n return false;\r\n }\r\n if (selectedBay.bayZoneType.includes('FUEL')) {\r\n console.error('You are attempting to move an asset to a fuel bay. This action can not be performed.');\r\n this.insertTrailerStatus = 'You are attempting to move an asset to a fuel bay. This action can not be performed.';\r\n return false;\r\n }\r\n if ((selectedBay.bayZoneType === 'OUTBOUND') || (currentBay != null && currentBay.bayZoneType === 'OUTBOUND')) {\r\n console.error('You are attempting to move an asset to or from an Outbound bay door. This action can not be performed. Reach out to yard control/dispatch');\r\n this.insertTrailerStatus = 'You are attempting to move an asset to or from an Outbound bay door. This action can not be performed. Reach out to yard control/dispatch';\r\n return false;\r\n }\r\n if ((selectedBay.bayZoneType === 'PRIMARY_UNLOAD') || (currentBay != null && currentBay.bayZoneType === 'PRIMARY_UNLOAD')) {\r\n console.error('You are attempting to move an asset to or from a Primary/Unload bay door. This action can not be performed. Reach out to yard control/dispatch');\r\n this.insertTrailerStatus = 'You are attempting to move an asset to or from a Primary/Unload bay door. This action can not be performed. Reach out to yard control/dispatch';\r\n return false;\r\n }\r\n return true;\r\n }\r\n\r\n public enterKeyBlur(e) {\r\n e.target.blur();\r\n }\r\n\r\n public saveInsertTrailer() {\r\n const locationReconcile: EquipmentLocationReconcile = this.generateLocationReconciliation(this.selectedTrailer);\r\n this.insertTrailerStatus = '';\r\n this.disableSubmit = true;\r\n const locationUpdateSubmitTimestamp = Date.parse(locationReconcile.statusTimestamp);\r\n console.log('Sending location update');\r\n this.reconciliationService.submitLocationUpdate(locationReconcile, true)\r\n .pipe(takeUntil(this.unsubscribe$))\r\n .subscribe(() => {\r\n this.insertTrailerStatus = '';\r\n this.disableSubmit = false;\r\n\r\n const userId = this.authService.getUserId();\r\n const metric = this.stUserProfileService.createDefaultMetric(userId);\r\n metric.event = 'moveBay';\r\n metric.customFields.countryCode = this.data.location.countryCode;\r\n metric.customFields.site = this.data.location.slicAbbreviation;\r\n metric.customFields.region = this.data.location.regionNumber;\r\n metric.customFields.district = this.data.location.districtNumber;\r\n\r\n // send information about this current login to our user profile service\r\n this.stUserProfileService.postEvent(metric);\r\n\r\n this.selectedTrailer.operations.fromBayNumber = this.commonFunctionsSite.padLeft(this.selectedTrailer.operations.bayNumber, 4, '0');\r\n this.selectedTrailer.operations.bayNumber = this.commonFunctionsSite.padLeft(this.data.asset.operations?.bayNumber, 4, '0');\r\n this.selectedTrailer.frontEndExclusive.locationUpdateStatus = this.generateLocationUpdateStatus(this.selectedTrailer, locationUpdateSubmitTimestamp);\r\n this.selectedTrailer.operations.bayPosition = this.selectedPosition;\r\n this.selectedTrailer.frontEndExclusive.confirmationPending = 'CONFIRMED';\r\n const locationConfirmation = this.createConfirmationUpdate(this.selectedTrailer, 'CONFIRMED');\r\n this.sendLocationConfirmationUpdate(this.selectedTrailer, locationConfirmation);\r\n // this.closeInsertTrailer(this.selectedTrailer);\r\n console.log('Location Update complete for ' + this.selectedTrailer.equipment.equipmentNumber);\r\n }, (error) => {\r\n console.log('Location Update failed');\r\n if (error.status === 422 && error.error) {\r\n this.insertTrailerStatus = error.error.message;\r\n } else {\r\n this.insertTrailerStatus = 'Failed to submit location update.';\r\n }\r\n this.disableSubmit = false;\r\n });\r\n }\r\n\r\n public generateLocationReconciliation(asset: AssetInfo): EquipmentLocationReconcile {\r\n const locationReconcile = new EquipmentLocationReconcile();\r\n locationReconcile.userID = this.authService.getUserId();\r\n if (asset.operations?.currentUPSActivity?.movementActivityEquipmentOid) {\r\n this.movementActivityEquipmentOid = asset.operations.currentUPSActivity.movementActivityEquipmentOid;\r\n } else {\r\n this.movementActivityEquipmentOid = this.commonFunctionsSite.createUUID();\r\n }\r\n\r\n locationReconcile.movementActivityEquipmentOid = this.movementActivityEquipmentOid;\r\n locationReconcile.eqpNumber = asset.equipment.equipmentNumber;\r\n locationReconcile.bayLocCountryCode = this.data.location.countryCode;\r\n locationReconcile.bayOrgAbbvName = this.data.location.slicAbbreviation;\r\n locationReconcile.eqpType = asset.equipment.equipmentType;\r\n\r\n if (asset.operations) {\r\n if (asset.operations.bayPosition) {\r\n locationReconcile.fromBayPosition = asset.operations.bayPosition.trim();\r\n } else {\r\n locationReconcile.fromBayPosition = '';\r\n }\r\n locationReconcile.fromBayNumber = this.commonFunctionsSite.padLeft(asset.operations.bayNumber, 4, '0');\r\n }\r\n\r\n locationReconcile.toBayNumber = this.commonFunctionsSite.padLeft(this.data.asset.operations?.bayNumber, 4, '0');\r\n locationReconcile.toBayPosition = this.selectedPosition;\r\n locationReconcile.updateTypeCode = 'Move';\r\n\r\n const currentTimestamp = new Date();\r\n const utcTimestamp = new Date(currentTimestamp.getUTCFullYear(),\r\n currentTimestamp.getUTCMonth(),\r\n currentTimestamp.getUTCDate(),\r\n currentTimestamp.getUTCHours(),\r\n currentTimestamp.getUTCMinutes(),\r\n currentTimestamp.getUTCSeconds());\r\n const datePipe = new DatePipe('en-US');\r\n locationReconcile.statusTimestamp = datePipe.transform(utcTimestamp, 'yyyy-MM-ddTHH:mm:ss.SSS') + 'Z';\r\n\r\n return locationReconcile;\r\n }\r\n\r\n closeInsertTrailer(asset: AssetInfo) {\r\n this.dialogRef.close(asset);\r\n }\r\n\r\n continueWithReject(){\r\n this.dialogRef.close(true);\r\n }\r\n\r\n public ngOnDestroy(): void {\r\n this.unsubscribe$.next();\r\n this.unsubscribe$.complete();\r\n }\r\n\r\n public generateLocationUpdateStatus(asset: AssetInfo, locationUpdateSubmitTimestamp): LocationUpdateStatus {\r\n const locationUpdateStatus = new LocationUpdateStatus();\r\n locationUpdateStatus.bayLocCountryCode = this.data.location.countryCode;\r\n locationUpdateStatus.bayOrgAbbvName = this.data.location.slicAbbreviation;\r\n if (asset.operations) {\r\n if (asset.operations.bayPosition) {\r\n locationUpdateStatus.fromBayPosition = asset.operations.bayPosition.trim();\r\n } else {\r\n locationUpdateStatus.fromBayPosition = '';\r\n }\r\n locationUpdateStatus.fromBayNumber = this.commonFunctionsSite.padLeft(asset.operations.fromBayNumber, 4, '0');\r\n }\r\n\r\n locationUpdateStatus.toBayNumber = this.commonFunctionsSite.padLeft(asset.operations.bayNumber, 4, '0');\r\n locationUpdateStatus.toBayPosition = this.selectedPosition;\r\n locationUpdateStatus.reconciliationType = 'Move';\r\n locationUpdateStatus.statusTimestamp = locationUpdateSubmitTimestamp;\r\n locationUpdateStatus.updateStatus = 'PENDING';\r\n return locationUpdateStatus;\r\n }\r\n\r\n public searchTrailerList(searchNumber: string): AssetInfo[] {\r\n const searchedAssetList: AssetInfo[] = [];\r\n for (const asset of this.data.onPropertyAssets) {\r\n if (asset.equipment?.equipmentNumber?.toUpperCase().includes(searchNumber.toUpperCase()) && asset.equipment?.equipmentType === 'TL') {\r\n searchedAssetList.push(asset);\r\n }\r\n }\r\n return searchedAssetList;\r\n }\r\n\r\n public findTrailer(searchNumber: string): boolean {\r\n for (const asset of this.data.onPropertyAssets) {\r\n if (asset.equipment?.equipmentNumber?.toUpperCase() === searchNumber.toUpperCase() && asset.equipment?.equipmentType === 'TL') {\r\n return true;\r\n }\r\n }\r\n return false;\r\n }\r\n\r\n public determineGpsConfidenceNeeded(asset: AssetInfo): boolean {\r\n if (asset.equipment?.gpsDetails?.confidence) {\r\n if (asset.equipment.gpsDetails.confidence === 'WAITING' ||\r\n asset.equipment.gpsDetails.confidence === 'NO_CONFIDENCE' ||\r\n asset.equipment.gpsDetails.confidence === 'HIGH_CONFIDENCE' ||\r\n asset.equipment.gpsDetails.confidence === 'LOW_CONFIDENCE' ||\r\n asset.equipment.gpsDetails.confidence === 'SITE' ||\r\n (asset.dataSources.length === 1 && asset.dataSources[0] === 'TAM')) {\r\n return true;\r\n } else {\r\n return false;\r\n }\r\n } else {\r\n return false;\r\n }\r\n }\r\n\r\n public determineGpsConfidenceColor(asset: AssetInfo) {\r\n if (asset.equipment?.gpsDetails?.confidence && asset.dataSources.length === 1 && asset.dataSources[0] === 'TAM') {\r\n return 'ups-yellow';\r\n }\r\n }\r\n\r\n public determineGpsConfidence(asset: AssetInfo): string {\r\n if (asset.equipment?.gpsDetails?.confidence) {\r\n if (asset.equipment.gpsDetails.confidence === 'WAITING') {\r\n return 'uxd-gps-waiting';\r\n } else if (asset.equipment.gpsDetails.confidence === 'NO_CONFIDENCE') {\r\n return 'uxd-location-disabled';\r\n } else if (asset.equipment.gpsDetails.confidence === 'HIGH_CONFIDENCE') {\r\n return 'uxd-gps-fixed';\r\n } else if (asset.equipment.gpsDetails.confidence === 'LOW_CONFIDENCE') {\r\n return 'uxd-gps-conf-low';\r\n } else if (asset.equipment.gpsDetails.confidence === 'SITE') {\r\n return 'uxd-location-off';\r\n } else if (asset.dataSources.length === 1 && asset.dataSources[0] === 'TAM') {\r\n return 'uxd-location-off';\r\n }\r\n }\r\n }\r\n\r\n public determineEsnConfidenceIconNeeded(asset: AssetInfo): boolean {\r\n if (asset.equipment?.esnConfidence) {\r\n if (asset.equipment.esnConfidence === 'CONFIDENT' ||\r\n asset.equipment.esnConfidence === 'CANNOT_DETERMINE' ||\r\n asset.equipment.esnConfidence === 'NOT_CONFIDENT') {\r\n return true;\r\n } else if (asset.equipment?.gpsDetails) {\r\n if (asset.equipment.gpsDetails.hasLowBattery === true || asset.equipment?.gpsDetails?.gpsStale === true) {\r\n return true;\r\n }\r\n }\r\n }\r\n return false;\r\n }\r\n\r\n public determineEsnConfidenceColor(asset: AssetInfo) {\r\n if ((asset.equipment?.gpsDetails && (asset.equipment?.gpsDetails?.hasLowBattery === true || asset.equipment?.gpsDetails?.gpsStale === true)) ||\r\n (asset.equipment?.esnConfidence && asset.equipment.esnConfidence === 'NOT_CONFIDENT')) {\r\n return 'ups-red';\r\n }\r\n }\r\n\r\n public determineEsnConfidence(asset: AssetInfo): string {\r\n if (asset.equipment?.gpsDetails && (asset.equipment?.gpsDetails?.hasLowBattery === true || asset.equipment?.gpsDetails?.gpsStale === true)) {\r\n return 'uxd-wifi-error';\r\n } else {\r\n if (asset.equipment.esnConfidence) {\r\n if (asset.equipment.esnConfidence === 'CONFIDENT') {\r\n return 'uxd-wifi';\r\n } else if (asset.equipment.esnConfidence === 'CANNOT_DETERMINE') {\r\n return 'uxd-wifi-unknown-issue';\r\n } else if (asset.equipment.esnConfidence === 'NOT_CONFIDENT') {\r\n return 'uxd-wifi-error';\r\n }\r\n }\r\n }\r\n }\r\n\r\n selectTrailer(asset: AssetInfo) {\r\n console.log('Selected :' + asset.equipment.equipmentNumber);\r\n this.selectedTrailer = asset;\r\n if (asset.dataSources?.length === 1 && asset.dataSources[0] === 'TAM') {\r\n if(!asset.equipment?.currentEvent){\r\n const insertedBay = this.findBay(this.data.asset.operations?.bayNumber);\r\n if (insertedBay !== null) {\r\n const gpsDetails = new GpsDetails();\r\n gpsDetails.latitude = insertedBay.zoomLatitude;\r\n gpsDetails.longitude = insertedBay.zoomLongitude;\r\n asset.equipment.gpsDetails = gpsDetails;\r\n }\r\n }\r\n this.insertTrailerStatus = '';\r\n this.disableSubmit = false;\r\n this.onSiteNotArrived = true;\r\n this.continueReject = false;\r\n } else {\r\n if (!this.validateInsertTrailer(this.selectedTrailer)) {\r\n this.disableSubmit = true;\r\n if(this.data.insertOnReject){\r\n this.continueReject = true;\r\n }\r\n } else {\r\n this.disableSubmit = false;\r\n this.continueReject = false;\r\n }\r\n }\r\n }\r\n\r\n public openEditDunnageDialog(): void {\r\n const dialogRefEditDunnage = this.dialog.open(EditDunnageDialogComponent, {\r\n width: '350px',\r\n maxWidth: '95vw',\r\n data: {\r\n asset: this.selectedTrailer,\r\n location: this.data.location,\r\n },\r\n autoFocus: false\r\n });\r\n\r\n\r\n dialogRefEditDunnage.afterClosed().subscribe( dunnageUpdate => {\r\n try {\r\n if (dunnageUpdate) {\r\n this.selectedTrailer.operations.trailerDunnage = dunnageUpdate;\r\n console.log('Updated Dunnage for ' + this.selectedTrailer.equipment.equipmentNumber);\r\n } else {\r\n console.log('Dunnage Update was Canceled for ' + this.selectedTrailer.equipment.equipmentNumber);\r\n }\r\n } catch (e) {\r\n console.log('Error during Edit Dunnage Dialog close: ' + e);\r\n }\r\n });\r\n }\r\n\r\n public createConfirmationUpdate(asset: AssetInfo, confirmationStatus: string): LocationConfirmation {\r\n const userId = this.authService.getUserId();\r\n if (!asset.equipment.locationConfirmation) {\r\n asset.equipment.locationConfirmation = new LocationConfirmation();\r\n }\r\n const newLocationConfirmation = new LocationConfirmation();\r\n newLocationConfirmation.userId = userId;\r\n newLocationConfirmation.locationConfirmationState = confirmationStatus;\r\n newLocationConfirmation.timestamp = asset.equipment.locationConfirmation.timestamp;\r\n newLocationConfirmation.lastUpdateTimestamp = new Date().getTime();\r\n newLocationConfirmation.load = this.commonFunctionsSite.getPrimaryLoad(asset.operations?.loads);\r\n newLocationConfirmation.bayNumber = asset.operations.bayNumber;\r\n newLocationConfirmation.countryCode = this.data.location.countryCode;\r\n newLocationConfirmation.slicAbbreviation = this.data.location.slicAbbreviation;\r\n newLocationConfirmation.latitude = asset.equipment?.gpsDetails?.latitude;\r\n newLocationConfirmation.longitude = asset.equipment?.gpsDetails?.longitude;\r\n return newLocationConfirmation;\r\n }\r\n\r\n public sendLocationConfirmationUpdate(asset: AssetInfo, locationConfirmation: LocationConfirmation) {\r\n console.log('Sending location confirmation for insertred trailer ' + asset.equipment.equipmentNumber);\r\n this.reconciliationService.updateAssetConfirmation(asset.equipment.equipmentType, asset.equipment.equipmentNumber, locationConfirmation).pipe(takeUntil(this.unsubscribe$)).subscribe(() => {\r\n this.selectedTrailer.frontEndExclusive.confirmationPending = null;\r\n this.selectedTrailer.frontEndExclusive.confirmationStatus = locationConfirmation.locationConfirmationState;\r\n console.log('Successful Location Confirmation Update for asset ' + asset.equipment.equipmentNumber);\r\n this.closeInsertTrailer(this.selectedTrailer);\r\n }, (error) => {\r\n this.selectedTrailer.frontEndExclusive.confirmationPending = null;\r\n this.insertTrailerStatus= 'Location Confirmation Update failed.';\r\n console.log('Location Confirmation Update for asset ' + asset.equipment.equipmentNumber + ' failed. Error: ' + error.message);\r\n });\r\n }\r\n\r\n public processOnSiteNotArrived() {\r\n\r\n let newBay = '';\r\n if(this.enableAddBay) {\r\n newBay = this.commonFunctionsSite.padLeft(this.selectedBayNumber, 4, '0');\r\n let insertedBay = this.findBay(this.selectedBayNumber);\r\n if (insertedBay === null) {\r\n this.continueReject = false;\r\n return;\r\n }\r\n } else {\r\n newBay = this.commonFunctionsSite.padLeft(this.data.asset.operations?.bayNumber, 4, '0');\r\n }\r\n\r\n const userId = this.authService.getUserId();\r\n if (!this.selectedTrailer.equipment.locationConfirmation) {\r\n this.selectedTrailer.equipment.locationConfirmation = new LocationConfirmation();\r\n }\r\n \r\n const newOnSiteNotArrivedLocation = new OnSiteNotArrivedLocation();\r\n newOnSiteNotArrivedLocation.userId = userId;\r\n newOnSiteNotArrivedLocation.timestamp = new Date().getTime();\r\n newOnSiteNotArrivedLocation.lastUpdateTimestamp = new Date().getTime();\r\n newOnSiteNotArrivedLocation.bayNumber = newBay;\r\n newOnSiteNotArrivedLocation.countryCode = this.data.location.countryCode;\r\n newOnSiteNotArrivedLocation.slicAbbreviation = this.data.location.slicAbbreviation;\r\n newOnSiteNotArrivedLocation.latitude = this.selectedTrailer.equipment?.gpsDetails?.latitude;\r\n newOnSiteNotArrivedLocation.longitude = this.selectedTrailer.equipment?.gpsDetails?.longitude;\r\n newOnSiteNotArrivedLocation.bayPosition= this.selectedPosition;\r\n if (this.loadedOrEmpty === 'L') {\r\n newOnSiteNotArrivedLocation.loaded = true;\r\n } else {\r\n newOnSiteNotArrivedLocation.loaded = false;\r\n }\r\n this.selectedTrailer.operations.bayNumber = newBay;\r\n this.selectedTrailer.operations.bayPosition = this.selectedPosition;\r\n this.selectedTrailer.frontEndExclusive.confirmationPending = 'CONFIRMED';\r\n this.selectedTrailer.equipment.onSiteNotArrivedLocation = newOnSiteNotArrivedLocation;\r\n this.sendOnSiteNotArrivedLocationUpdate(this.selectedTrailer, newOnSiteNotArrivedLocation);\r\n\r\n }\r\n\r\n public sendOnSiteNotArrivedLocationUpdate(asset: AssetInfo, onSiteNotArrivedLocation: OnSiteNotArrivedLocation) {\r\n console.log('Sending On Site Not Arrived Location confirmation for insertred trailer ' + asset.equipment.equipmentNumber);\r\n this.reconciliationService.updateAssetOnSiteNotArrivedLocation(asset.equipment.equipmentType, asset.equipment.equipmentNumber, onSiteNotArrivedLocation).pipe(takeUntil(this.unsubscribe$)).subscribe(() => {\r\n this.selectedTrailer.frontEndExclusive.confirmationPending = null;\r\n this.selectedTrailer.frontEndExclusive.confirmationStatus = 'CONFIRMED';\r\n console.log('Successful On Site Not Arrived Location Update for asset ' + asset.equipment.equipmentNumber);\r\n this.closeInsertTrailer(this.selectedTrailer);\r\n }, (error) => {\r\n this.selectedTrailer.frontEndExclusive.confirmationPending = null;\r\n this.insertTrailerStatus= 'Location Confirmation Update failed.';\r\n console.log('Location Confirmation Update for asset ' + asset.equipment.equipmentNumber + ' failed. Error: ' + error.message);\r\n });\r\n }\r\n\r\n public addNewTrailer() {\r\n console.log('Adding trailer :' + this.addTrailerNumber);\r\n if(!this.findTrailer(this.addTrailerNumber)) {\r\n const insertedBay = this.findBay(this.data.asset.operations?.bayNumber);\r\n if (insertedBay !== null) {\r\n this.selectedTrailer = new AssetInfo(new OnPropertyOperations());\r\n const equipment = new Equipment();\r\n equipment.equipmentNumber = this.addTrailerNumber;\r\n equipment.equipmentType = 'TL';\r\n equipment.gpsDetails.latitude = insertedBay.zoomLatitude;\r\n equipment.gpsDetails.longitude = insertedBay.zoomLongitude;\r\n this.selectedTrailer.dataSources = [];\r\n this.selectedTrailer.dataSources.push('TAM');\r\n this.selectedTrailer.equipment = equipment;\r\n this.disableSubmit = false;\r\n if(this.data.insertOnReject){\r\n this.continueReject = true;\r\n }\r\n this.onSiteNotArrived = true;\r\n this.selectTrailer(this.selectedTrailer);\r\n }\r\n } else {\r\n this.insertTrailerStatus= 'Trailer already exists.';\r\n }\r\n }\r\n \r\n public buttonToggleChange(change: MatButtonToggleChange): void {\r\n if (this.loadedOrEmpty === 'L') {\r\n this.insertTrailerStatus = 'Trailer entered has not been arrived in HFCS for this location. Contact Dispatch.';\r\n } else {\r\n this.insertTrailerStatus = '';\r\n }\r\n }\r\n\r\n public onBayChange(e) {\r\n this.selectedBayNumber = e.target.value.replace(/[^a-zA-Z0-9 ]/g, '');\r\n this.insertTrailerStatus = '';\r\n if(this.selectedBayNumber.trim() === '') {\r\n this.disableSubmit = true;\r\n } else {\r\n this.disableSubmit = false;\r\n }\r\n }\r\n\r\n validNumberOnly(event): boolean {\r\n if (event.target.value.length >= 4) {\r\n return false;\r\n }\r\n return true;\r\n }\r\n\r\n private findBay(bayNumber) {\r\n const layout = this.stOnPropertyService.fetchLastSiteLayout();\r\n const toBay = parseInt(bayNumber, 10);\r\n let selectedBay = null;\r\n if (layout != null) {\r\n if (layout.bays.length !== 0) {\r\n for (const bay of layout.bays) {\r\n if (bay.bayNumber === toBay) {\r\n selectedBay = bay;\r\n if(this.mapLargeLayerHandler.mapLargeBays !== null && this.mapLargeLayerHandler.mapLargeBays.length > 0) {\r\n const mapLargeBay = this.mapLargeLayerHandler.mapLargeBays.find(x => x.BayNumber === toBay.toString());\r\n return mapLargeBay;\r\n }\r\n return selectedBay;\r\n }\r\n }\r\n }\r\n if ((layout.zones.length !== 0)) {\r\n for (const zone of layout.zones) {\r\n if (zone.bays.find(x => x.bayNumber === toBay) !== undefined) {\r\n selectedBay = zone.bays.find(y => y.bayNumber === toBay);\r\n if(this.mapLargeLayerHandler.mapLargeZones !== null && this.mapLargeLayerHandler.mapLargeZones.length > 0) {\r\n const mapLargeZone = this.mapLargeLayerHandler.findBayInZone(bayNumber);\r\n return mapLargeZone;\r\n }\r\n return selectedBay;\r\n }\r\n\r\n }\r\n }\r\n }\r\n console.error(`To Bay ${toBay} not found.`);\r\n this.insertTrailerStatus=`To Bay ${toBay} not found.`;\r\n this.disableSubmit = true;\r\n this.continueReject = true;\r\n return selectedBay;\r\n }\r\n\r\n\r\n}\r\n","

\r\n \r\n Insert Trailer - Bay {{data.asset.operations.bayNumber}}\r\n Confirm Trailer Insert\r\n

\r\n\r\n
\r\n
\r\n
\r\n
\r\n \r\n
\r\n \r\n \r\n \r\n
\r\n\r\n
\r\n
Trailers ({{trailerSearchResults.length}})
\r\n
\r\n \r\n
0\" class = \"search-results\">\r\n
\r\n \r\n
\r\n
\r\n
\r\n\r\n
\r\n\r\n
\r\n Trailer {{selectedTrailer.equipment?.equipmentNumber}} to Bay {{data.asset.operations.bayNumber}}\r\n \r\n \r\n \r\n \r\n
\r\n\r\n
\r\n \r\n
\r\n
\r\n
On Site, Not Arrived
\r\n
{{selectedTrailer.operations?.bayNumber}} {{selectedTrailer.operations?.bayPosition}}
\r\n
\r\n \r\n \r\n \r\n \r\n \r\n
\r\n
\r\n
Empty / Loaded
\r\n
Empty / Loaded
\r\n
\r\n
\r\n
\r\n
\r\n \r\n
\r\n
\r\n
\r\n\r\n
\r\n\r\n
\r\n
\r\n Add Trailer {{selectedTrailer.equipment?.equipmentNumber}}\r\n \r\n \r\n
\r\n
\r\n Add Trailer {{selectedTrailer.equipment?.equipmentNumber}} to Bay {{data.asset.operations.bayNumber}}\r\n
\r\n
\r\n\r\n \r\n Empty\r\n Loaded\r\n \r\n
\r\n\r\n \r\n Front\r\n Middle\r\n Rear\r\n \r\n\r\n
\r\n \r\n\r\n
\r\n \r\n
\r\n\r\n\r\n\r\n
\r\n
\r\n \r\n \r\n \r\n \r\n\r\n
\r\n
\r\n
\r\n","import { Component, Input } from '@angular/core';\r\nimport { AssetInfo } from '../../../../model/asset-info/asset-info';\r\nimport { OnPropertyOperations } from '../../../../model/asset-info/on-property-operations';\r\nimport { CommonFunctionsSite } from '../../../site/common-functions-site';\r\n\r\n@Component({\r\n selector: 'app-trailer-search-detail',\r\n templateUrl: './trailer-search-detail.component.html',\r\n styleUrls: ['./trailer-search-detail.component.scss']\r\n})\r\n\r\nexport class TrailerSearchDetailComponent {\r\n\r\n @Input() assetInformation: AssetInfo;\r\n public commonFunctionsSite = new CommonFunctionsSite();\r\n \r\n public getBayNumber() {\r\n if (this.assetInformation.operations?.bayNumber) {\r\n return this.assetInformation.operations?.bayNumber;\r\n } else {\r\n if (this.assetInformation.equipment?.onSiteNotArrivedLocation) {\r\n return this.assetInformation.equipment.onSiteNotArrivedLocation.bayNumber;\r\n }\r\n return '';\r\n }\r\n }\r\n\r\n public displayLoadStatus() {\r\n if (this.assetInformation.operations?.loads || this.assetInformation.equipment?.onSiteNotArrivedLocation) {\r\n return true;\r\n } else {\r\n return false;\r\n }\r\n }\r\n\r\n public getLoadedNotLoaded() {\r\n if (this.assetInformation.operations?.loads) {\r\n if (this.commonFunctionsSite.determineIfNotEmpty(this.commonFunctionsSite.getPrimaryLoad(this.assetInformation.operations.loads))) {\r\n return true;\r\n } else {\r\n return false;\r\n }\r\n } else if (this.assetInformation.equipment?.onSiteNotArrivedLocation) {\r\n return this.assetInformation.equipment.onSiteNotArrivedLocation.loaded;\r\n }\r\n return false;\r\n }\r\n\r\n public determineCardColor(): string {\r\n if (this.assetInformation.equipment?.onSiteNotArrivedLocation) {\r\n return 'asset-on-site-not-arrived';\r\n }\r\n return '';\r\n }\r\n\r\n}\r\n","
\r\n
{{getBayNumber()}}
\r\n
{{assetInformation.equipment?.equipmentNumber}}
\r\n
{{assetInformation.equipment?.trailer?.TypeCode}}
\r\n
Empty / Loaded
\r\n
Empty / Loaded
\r\n
\r\n","import { Component, Inject, OnInit, OnDestroy, ViewChild, ElementRef} from '@angular/core';\r\nimport { DatePipe } from '@angular/common';\r\nimport { ActivatedRoute } from '@angular/router';\r\nimport { MatDialogRef, MAT_DIALOG_DATA } from '@angular/material/dialog';\r\nimport { UntypedFormBuilder, UntypedFormGroup } from '@angular/forms';\r\nimport { MatAutocompleteSelectedEvent } from '@angular/material/autocomplete';\r\n\r\nimport { Subject } from 'rxjs';\r\nimport { takeUntil, debounceTime } from 'rxjs/operators';\r\n\r\nimport { AssetInfo } from '../../../model/asset-info/asset-info';\r\nimport { Operations } from '../../../model/asset-info/operations';\r\nimport { OnPropertyOperations } from '../../../model/asset-info/on-property-operations';\r\nimport { Location as TmsLocation } from '../../../model/location/location';\r\nimport { EquipmentLocationReconcile } from '../../../model/reconciliation/equipment-location-reconcile';\r\nimport { AuthService } from '../../../auth/auth.service';\r\nimport { StUserProfileService } from '../../../service/webservice/st-user-profile/st-user-profile.service';\r\nimport { ReconciliationService } from '../../../service/webservice/reconciliation/reconciliation.service';\r\nimport { StOnPropertyService } from '../../../service/webservice/st-on-property/st-on-property.service';\r\nimport { TamGisService } from '../../../service/webservice/tam-gis/tam-gis.service';\r\nimport { LocationUpdateStatus} from '../../../model/reconciliation/location-update-status';\r\nimport { CommonFunctionsSite } from '../../../component/site/common-functions-site';\r\nimport { LaunchDarklyService } from '../../../service/launch-darkly/launch-darkly-services';\r\n\r\n@Component({\r\n selector: 'app-move-bay-dialog',\r\n templateUrl: './move-bay-dialog.component.html',\r\n styleUrls: ['./move-bay-dialog.component.scss',\r\n '../../site/detail/detail-action-buttons/detail-action-move-bay/detail-action-move-bay.component.scss',\r\n '../../site/detail/detail.scss', '../../site/site.scss']\r\n})\r\nexport class MoveBayDialogComponent implements OnInit, OnDestroy {\r\n @ViewChild('trailerSearchInput') trailerSearchInput: ElementRef;\r\n moveBayStatus = '';\r\n baySuggestionMessage = '';\r\n selectedMode = '';\r\n selectedPosition = '';\r\n selectedBayNumber = '';\r\n selectedEquipmentNumber = '';\r\n selectedEquipmentBay = '';\r\n movementActivityEquipmentOid = '';\r\n disableSubmit = true;\r\n hasMoveBayValidationError = false;\r\n moveInProgress = false;\r\n bayInputFocused = false;\r\n assetInputFocused = false;\r\n assetToBay: AssetInfo;\r\n promptingUser = false;\r\n layout = '';\r\n\r\n public commonFunctionsSite = new CommonFunctionsSite();\r\n unsubscribe$ = new Subject();\r\n trailerSearchResults: AssetInfo[];\r\n\r\n trailerSearchForm: UntypedFormGroup = this.formBuilder.group({\r\n trailerSearch: '',\r\n });\r\n\r\n\r\n constructor(\r\n public authService: AuthService,\r\n public stUserProfileService: StUserProfileService,\r\n public reconciliationService: ReconciliationService,\r\n public stOnPropertyService: StOnPropertyService,\r\n public tamGisService: TamGisService,\r\n public activatedRoute: ActivatedRoute,\r\n public dialogRef: MatDialogRef,\r\n private formBuilder: UntypedFormBuilder,\r\n private launchDarklyService: LaunchDarklyService,\r\n @Inject(MAT_DIALOG_DATA) public data: {\r\n location: TmsLocation;\r\n onPropertyAssets: AssetInfo[];\r\n asset: AssetInfo;\r\n nextAsset: AssetInfo;\r\n previousAsset: AssetInfo;\r\n }) { }\r\n\r\n public ngOnInit(): void {\r\n this.selectedPosition = 'F';\r\n if (this.data.asset.frontEndExclusive?.emptyBay === true) {\r\n this.selectedMode = 'insert';\r\n } else if (!this.data.asset.frontEndExclusive?.emptyBay) {\r\n this.findSuggestedBay(this.data.asset);\r\n this.selectedMode = 'move';\r\n }\r\n this.innitializeTrailerSearch();\r\n }\r\n\r\n public innitializeTrailerSearch() {\r\n if(this.selectedMode === 'insert'){\r\n this.trailerSearchForm.get('trailerSearch').valueChanges\r\n .pipe(debounceTime(200))\r\n .subscribe(searchValue => {\r\n if (searchValue !== '' && searchValue.length > 3) {\r\n this.trailerSearchResults = this.searchTrailerList(searchValue);\r\n } else {\r\n this.trailerSearchResults = [];\r\n }\r\n });\r\n }\r\n }\r\n public onModeChange(value) {\r\n if (this.onSiteNotArrivedFeatureFlagIsEnabled()) {\r\n this.openInsertTrailerDialog();\r\n } else {\r\n this.selectedMode = value;\r\n this.innitializeTrailerSearch();\r\n }\r\n }\r\n\r\n public validateMoveBay(): boolean {\r\n const layout = this.stOnPropertyService.fetchLastSiteLayout();\r\n let toBay = null;\r\n let fromBay = null;\r\n let toBayFound = false;\r\n let fromBayFound = false;\r\n let bothBaysFound = false;\r\n let selectedBay = null;\r\n let currentBay = null;\r\n let validated = false;\r\n\r\n if (this.selectedMode !== 'move') {\r\n toBay = parseInt(this.data.asset.operations.bayNumber, 10);\r\n fromBay = parseInt(this.assetToBay.operations.bayNumber, 10);\r\n }\r\n if (this.selectedBayNumber != null && this.selectedBayNumber !== '' && this.selectedMode === 'move') {\r\n toBay = parseInt(this.selectedBayNumber, 10);\r\n }\r\n if (this.data.asset.operations.bayNumber != null && this.selectedBayNumber !== '' && this.selectedMode === 'move') {\r\n fromBay = parseInt(this.data.asset.operations.bayNumber, 10);\r\n }\r\n if (((toBay == null || toBay === '') && (this.selectedBayNumber == null) && this.selectedMode === 'move')) {\r\n console.error('To Bay number is missing.');\r\n this.moveBayStatus = 'To Bay number is missing.';\r\n this.hasMoveBayValidationError = true;\r\n return false;\r\n }\r\n if (((fromBay == null || fromBay === '') && (this.data.asset.operations.bayNumber == null) && this.selectedMode === 'move')) {\r\n console.error('From Bay number is missing.');\r\n this.moveBayStatus = 'From Bay number is missing.';\r\n this.hasMoveBayValidationError = true;\r\n return false;\r\n }\r\n if (toBay === fromBay && this.selectedPosition === this.data.asset.operations.bayPosition) {\r\n console.error('Asset is already in this bay and position.');\r\n this.moveBayStatus = 'Asset is already in this bay and position.';\r\n this.hasMoveBayValidationError = true;\r\n return false;\r\n }\r\n if (layout != null) {\r\n if (layout.bays.length !== 0) {\r\n for (const bay of layout.bays) {\r\n if (bay.bayNumber === toBay || bay.bayNumber === fromBay) {\r\n if (bay.bayNumber === parseInt(toBay, 10)) {\r\n toBayFound = true;\r\n selectedBay = layout.bays.find(y => y.bayNumber === toBay);\r\n }\r\n if (bay.bayNumber === parseInt(fromBay, 10)) {\r\n fromBayFound = true;\r\n currentBay = layout.bays.find(z => z.bayNumber === fromBay);\r\n }\r\n if (bay.bayZoneType.includes('DOLLY') && this.data.asset.equipment.equipmentType !== 'TD') {\r\n console.error(`You are attempting to move a trailer to a dolly bay zone: ${bay.bayZoneType}. This action can not be performed.`);\r\n this.moveBayStatus = `You are attempting to move a trailer to a dolly bay zone: ${bay.bayZoneType}. This action can not be performed.`;\r\n this.hasMoveBayValidationError = true;\r\n this.closeMoveBay();\r\n return false;\r\n }\r\n }\r\n if (toBayFound && fromBayFound) {\r\n bothBaysFound = true;\r\n break;\r\n }\r\n }\r\n }\r\n if ((layout.zones.length !== 0) && (!bothBaysFound)) {\r\n for (const zone of layout.zones) {\r\n if (zone.bays.find(x => x.bayNumber === toBay) !== undefined || zone.bays.find(x => x.bayNumber === fromBay) !== undefined) {\r\n if (zone.bays.find(x => x.bayNumber === toBay) !== undefined) {\r\n toBayFound = true;\r\n selectedBay = zone.bays.find(y => y.bayNumber === toBay);\r\n }\r\n if (zone.bays.find(x => x.bayNumber === fromBay) !== undefined) {\r\n fromBayFound = true;\r\n currentBay = zone.bays.find(z => z.bayNumber === fromBay);\r\n }\r\n if (zone.bayZoneType.includes('DOLLY') && this.data.asset.equipment.equipmentType !== 'TD') {\r\n console.error(`You are attempting to move a trailer to a dolly bay zone: ${zone.bayZoneType}. This action can not be performed.`);\r\n this.moveBayStatus = `You are attempting to move a trailer to a dolly bay zone: ${zone.bayZoneType}. This action can not be performed.`;\r\n this.hasMoveBayValidationError = true;\r\n this.closeMoveBay();\r\n return false;\r\n }\r\n }\r\n if (toBayFound && fromBayFound) {\r\n bothBaysFound = true;\r\n break;\r\n }\r\n }\r\n }\r\n validated = this.validateSelectedandCurrentBays(selectedBay, currentBay, toBay, fromBay, bothBaysFound);\r\n }\r\n if (bothBaysFound && validated) {\r\n return true;\r\n } else if (!bothBaysFound) {\r\n if (!toBayFound) {\r\n console.error(`To Bay ${toBay} not found.`);\r\n this.moveBayStatus = `To Bay ${toBay} not found.`;\r\n } else if(!fromBayFound) {\r\n console.error(`From Bay ${fromBay} not found.`);\r\n this.moveBayStatus = `From Bay ${fromBay} not found.`;\r\n }\r\n this.hasMoveBayValidationError = true;\r\n this.closeMoveBay();\r\n return false;\r\n } else {\r\n return false;\r\n }\r\n }\r\n public validateSelectedandCurrentBays(selectedBay, currentBay, toBay, fromBay, bothBaysFound) {\r\n if (selectedBay.bayZoneType.includes('WASH')) {\r\n console.error('You are attempting to move an asset to a wash bay. This action can not be performed.');\r\n this.moveBayStatus = 'You are attempting to move an asset to a wash bay. This action can not be performed.';\r\n this.hasMoveBayValidationError = true;\r\n this.closeMoveBay();\r\n return false;\r\n }\r\n if (selectedBay.bayZoneType.includes('FUEL')) {\r\n console.error('You are attempting to move an asset to a fuel bay. This action can not be performed.');\r\n this.moveBayStatus = 'You are attempting to move an asset to a fuel bay. This action can not be performed.';\r\n this.hasMoveBayValidationError = true;\r\n this.closeMoveBay();\r\n return false;\r\n }\r\n if (toBay !== fromBay && bothBaysFound) {\r\n let numberOfTrailers = 0;\r\n for (const bayAsset of selectedBay.assetList) {\r\n if (bayAsset.equipment.equipmentType === 'TL') {\r\n numberOfTrailers++;\r\n }\r\n }\r\n if (this.data.asset.equipment.equipmentType !== 'TD') {\r\n if (numberOfTrailers >= 3) {\r\n console.error('There are already three trailers in this bay. This action can not be performed.');\r\n this.moveBayStatus = 'There are already three trailers in this bay. This action can not be performed.';\r\n this.hasMoveBayValidationError = true;\r\n this.closeMoveBay();\r\n return false;\r\n }\r\n }\r\n }\r\n if ((selectedBay.bayZoneType === 'OUTBOUND') || (currentBay != null && currentBay.bayZoneType === 'OUTBOUND')) {\r\n console.error('You are attempting to move an asset to or from an Outbound bay door. This action can not be performed. Reach out to yard control/dispatch');\r\n this.moveBayStatus = 'You are attempting to move an asset to or from an Outbound bay door. This action can not be performed. Reach out to yard control/dispatch';\r\n this.hasMoveBayValidationError = true;\r\n this.closeMoveBay();\r\n return false;\r\n }\r\n if ((selectedBay.bayZoneType === 'PRIMARY_UNLOAD') || (currentBay != null && currentBay.bayZoneType === 'PRIMARY_UNLOAD')) {\r\n console.error('You are attempting to move an asset to or from a Primary/Unload bay door. This action can not be performed. Reach out to yard control/dispatch');\r\n this.moveBayStatus = 'You are attempting to move an asset to or from a Primary/Unload bay door. This action can not be performed. Reach out to yard control/dispatch';\r\n this.hasMoveBayValidationError = true;\r\n this.closeMoveBay();\r\n return false;\r\n }\r\n selectedBay.assetList.push(this.data.asset);\r\n return true;\r\n }\r\n\r\n public submitMoveBay() {\r\n\r\n if (this.promptingUser) {\r\n if (this.selectedBayNumber !== '' || this.selectedEquipmentNumber !== '') {\r\n if (this.validateMoveBay()) {\r\n this.saveMoveBay();\r\n this.moveInProgress = true;\r\n }\r\n }\r\n } else {\r\n this.promptingUser = true;\r\n }\r\n }\r\n\r\n public enterKeyBlur(e) {\r\n e.target.blur();\r\n }\r\n\r\n public enterKeyBlurAsset(e) {\r\n e.target.blur();\r\n }\r\n\r\n public markBayInputFocused(e) {\r\n this.bayInputFocused = true;\r\n }\r\n\r\n public markAssetInputFocused(e) {\r\n this.assetInputFocused = true;\r\n }\r\n\r\n public onBayChange(e) {\r\n this.selectedBayNumber = e.target.value.replace(/[^a-zA-Z0-9 ]/g, '');\r\n this.disableSubmit = this.selectedBayNumber === '';\r\n this.closeValidationError();\r\n }\r\n\r\n public confirmIsValidAsset(equipmentNumber: string): boolean {\r\n for (const asset of this.data.onPropertyAssets) {\r\n if (asset.equipment.equipmentNumber === equipmentNumber) {\r\n if (asset.dataSources?.length === 1 && asset.dataSources[0] === 'TAM') {\r\n this.baySuggestionMessage = 'Trailer entered has not been arrived in HFCS for this location';\r\n this.selectedEquipmentBay = '';\r\n this.assetToBay = null;\r\n return true;\r\n } else {\r\n if (asset.operations?.bayNumber && asset.operations.bayNumber !== this.data.asset.operations.bayNumber) {\r\n this.baySuggestionMessage = 'No bay suggestion.';\r\n if (asset.operations.bayNumber) {\r\n this.selectedEquipmentBay = ` From Bay ${asset.operations.bayNumber}`;\r\n } else {\r\n this.selectedEquipmentBay = '';\r\n }\r\n this.assetToBay = asset;\r\n return false;\r\n }\r\n }\r\n }\r\n }\r\n this.baySuggestionMessage = 'No bay suggestion.';\r\n this.selectedEquipmentBay = '';\r\n this.assetToBay = null;\r\n return true;\r\n }\r\n\r\n public saveMoveBay() {\r\n let locationReconcile: EquipmentLocationReconcile;\r\n if (this.selectedMode === 'move') {\r\n locationReconcile = this.generateLocationReconciliation(this.data.asset);\r\n } else {\r\n locationReconcile = this.generateLocationReconciliation(this.assetToBay);\r\n }\r\n\r\n this.moveBayStatus = '';\r\n this.disableSubmit = true;\r\n const locationUpdateSubmitTimestamp = Date.parse(locationReconcile.statusTimestamp);\r\n console.log('Sending location update');\r\n this.reconciliationService.submitLocationUpdate(locationReconcile, true)\r\n .pipe(takeUntil(this.unsubscribe$))\r\n .subscribe(() => {\r\n this.moveBayStatus = '';\r\n this.disableSubmit = false;\r\n\r\n const userId = this.authService.getUserId();\r\n const metric = this.stUserProfileService.createDefaultMetric(userId);\r\n metric.event = 'moveBay';\r\n metric.customFields.countryCode = this.data.location.countryCode;\r\n metric.customFields.site = this.data.location.slicAbbreviation;\r\n metric.customFields.region = this.data.location.regionNumber;\r\n metric.customFields.district = this.data.location.districtNumber;\r\n\r\n // send information about this current login to our user profile service\r\n this.stUserProfileService.postEvent(metric);\r\n\r\n this.promptingUser = false;\r\n if (!this.assetToBay) {\r\n this.assetToBay = this.data.asset;\r\n }\r\n if (this.assetToBay.operations) {\r\n this.assetToBay.operations.fromBayNumber = this.commonFunctionsSite.padLeft(this.assetToBay.operations.bayNumber, 4, '0');\r\n }\r\n if (this.selectedMode === 'move') {\r\n this.assetToBay.operations.bayNumber = this.commonFunctionsSite.padLeft(this.selectedBayNumber, 4, '0');\r\n } else {\r\n this.assetToBay.operations.bayNumber = this.commonFunctionsSite.padLeft(this.data.asset.operations?.bayNumber, 4, '0');\r\n }\r\n this.assetToBay.frontEndExclusive.locationUpdateStatus = this.generateLocationUpdateStatus(this.assetToBay, locationUpdateSubmitTimestamp);\r\n this.assetToBay.operations.bayPosition = this.selectedPosition;\r\n this.closeMoveBay(this.assetToBay);\r\n console.log('Location Update complete for ' + this.assetToBay.equipment.equipmentNumber);\r\n }, (error) => {\r\n console.log('Location Update failed');\r\n this.promptingUser = false;\r\n if (error.status === 422 && error.error) {\r\n this.moveBayStatus = error.error.message;\r\n this.hasMoveBayValidationError = true;\r\n } else {\r\n this.moveBayStatus = 'Failed to submit Move Bay request.';\r\n }\r\n this.disableSubmit = false;\r\n });\r\n }\r\n\r\n public generateLocationReconciliation(asset: AssetInfo): EquipmentLocationReconcile {\r\n const locationReconcile = new EquipmentLocationReconcile();\r\n locationReconcile.userID = this.authService.getUserId();\r\n if (asset.operations?.currentUPSActivity?.movementActivityEquipmentOid) {\r\n this.movementActivityEquipmentOid = asset.operations.currentUPSActivity.movementActivityEquipmentOid;\r\n } else {\r\n this.movementActivityEquipmentOid = this.commonFunctionsSite.createUUID();\r\n }\r\n\r\n locationReconcile.movementActivityEquipmentOid = this.movementActivityEquipmentOid;\r\n locationReconcile.eqpNumber = asset.equipment.equipmentNumber;\r\n locationReconcile.bayLocCountryCode = this.data.location.countryCode;\r\n locationReconcile.bayOrgAbbvName = this.data.location.slicAbbreviation;\r\n locationReconcile.eqpType = asset.equipment.equipmentType;\r\n\r\n if (asset.operations) {\r\n if (asset.operations.bayPosition) {\r\n locationReconcile.fromBayPosition = asset.operations.bayPosition.trim();\r\n } else {\r\n locationReconcile.fromBayPosition = '';\r\n }\r\n locationReconcile.fromBayNumber = this.commonFunctionsSite.padLeft(asset.operations.bayNumber, 4, '0');\r\n }\r\n\r\n if (this.selectedMode === 'move') {\r\n locationReconcile.toBayNumber = this.commonFunctionsSite.padLeft(this.selectedBayNumber, 4, '0');\r\n } else {\r\n locationReconcile.toBayNumber = this.commonFunctionsSite.padLeft(this.data.asset.operations?.bayNumber, 4, '0');\r\n }\r\n locationReconcile.toBayPosition = this.selectedPosition;\r\n locationReconcile.updateTypeCode = 'Move';\r\n\r\n const currentTimestamp = new Date();\r\n const utcTimestamp = new Date(currentTimestamp.getUTCFullYear(),\r\n currentTimestamp.getUTCMonth(),\r\n currentTimestamp.getUTCDate(),\r\n currentTimestamp.getUTCHours(),\r\n currentTimestamp.getUTCMinutes(),\r\n currentTimestamp.getUTCSeconds());\r\n const datePipe = new DatePipe('en-US');\r\n locationReconcile.statusTimestamp = datePipe.transform(utcTimestamp, 'yyyy-MM-ddTHH:mm:ss.SSS') + 'Z';\r\n\r\n return locationReconcile;\r\n }\r\n\r\n public findSuggestedBay(asset: AssetInfo) {\r\n if (!(asset.equipment && asset.equipment.esnNumber)) {\r\n this.noBaySuggestion();\r\n } else if (this.data.location && asset.equipment && asset.equipment.gpsDetails &&\r\n asset.equipment.gpsDetails.latitude && asset.equipment.gpsDetails.longitude) {\r\n let primaryLoadCode = null;\r\n if (asset.operations) {\r\n const primaryLoad = this.commonFunctionsSite.getPrimaryLoad(asset.operations.loads);\r\n if (primaryLoad) {\r\n primaryLoadCode = primaryLoad.code;\r\n }\r\n }\r\n this.baySuggestionMessage = 'Waiting for bay suggestion...';\r\n this.stOnPropertyService.fetchBayRecommendation(this.data.location, asset.equipment.gpsDetails.latitude,\r\n asset.equipment.gpsDetails.longitude, primaryLoadCode, asset.equipment.trailer.TypeCode, asset.equipment.equipmentType, asset.equipment.equipmentNumber\r\n ).pipe(takeUntil(this.unsubscribe$)).subscribe(bayRecommended => {\r\n if (bayRecommended) {\r\n if (!this.bayInputFocused) {\r\n // Don't replace input if they're already typing something\r\n this.selectedBayNumber = bayRecommended.bayNumber.toString();\r\n }\r\n this.baySuggestionMessage = `GPS data is suggesting that ${this.displayAssetType(asset.equipment.equipmentType)} ${asset.equipment.equipmentNumber} is in Bay ${bayRecommended.bayNumber}.`;\r\n if (bayRecommended.bayType && bayRecommended.bayType === 'OUTBOUND') {\r\n this.moveBayStatus = 'Suggested bay is an Outbound door. This move must be completed in HFCS.';\r\n } else {\r\n this.disableSubmit = false;\r\n }\r\n } else {\r\n this.noBaySuggestion();\r\n }\r\n }, (error) => {\r\n console.log(error);\r\n this.noBaySuggestion();\r\n });\r\n }\r\n }\r\n\r\n public noBaySuggestion(): void {\r\n this.baySuggestionMessage = 'No bay suggestion.';\r\n this.selectedBayNumber = '';\r\n }\r\n\r\n public closeValidationError() {\r\n this.hasMoveBayValidationError = false;\r\n this.moveBayStatus = '';\r\n this.moveInProgress = false;\r\n }\r\n\r\n public displayAssetType(equipmentType: string) {\r\n switch (equipmentType) {\r\n case 'TR':\r\n return 'Tractor';\r\n case 'TL':\r\n return 'Trailer';\r\n case 'TD':\r\n return 'Dolly';\r\n default:\r\n return 'Asset';\r\n }\r\n }\r\n\r\n public closeMoveBay(confirmed: AssetInfo = undefined) {\r\n if (this.promptingUser) {\r\n this.promptingUser = false;\r\n } else {\r\n this.dialogRef.close({confirmed, nextAsset: this.data.nextAsset, previous: this.data.previousAsset});\r\n }\r\n }\r\n\r\n public ngOnDestroy(): void {\r\n this.unsubscribe$.next();\r\n this.unsubscribe$.complete();\r\n }\r\n\r\n public generateLocationUpdateStatus(asset: AssetInfo, locationUpdateSubmitTimestamp): LocationUpdateStatus {\r\n const locationUpdateStatus = new LocationUpdateStatus();\r\n locationUpdateStatus.bayLocCountryCode = this.data.location.countryCode;\r\n locationUpdateStatus.bayOrgAbbvName = this.data.location.slicAbbreviation;\r\n if (asset.operations) {\r\n if (asset.operations.bayPosition) {\r\n locationUpdateStatus.fromBayPosition = asset.operations.bayPosition.trim();\r\n } else {\r\n locationUpdateStatus.fromBayPosition = '';\r\n }\r\n locationUpdateStatus.fromBayNumber = this.commonFunctionsSite.padLeft(asset.operations.fromBayNumber, 4, '0');\r\n }\r\n\r\n locationUpdateStatus.toBayNumber = this.commonFunctionsSite.padLeft(asset.operations.bayNumber, 4, '0');\r\n locationUpdateStatus.toBayPosition = this.selectedPosition;\r\n locationUpdateStatus.reconciliationType = 'Move';\r\n locationUpdateStatus.statusTimestamp = locationUpdateSubmitTimestamp;\r\n locationUpdateStatus.updateStatus = 'PENDING';\r\n return locationUpdateStatus;\r\n }\r\n\r\n public selectItem(event: MatAutocompleteSelectedEvent) {\r\n this.selectedEquipmentNumber = event.option.viewValue.toUpperCase();\r\n this.disableSubmit = this.confirmIsValidAsset(this.selectedEquipmentNumber);\r\n this.closeValidationError();\r\n }\r\n\r\n public searchTrailerList(searchNumber: string): AssetInfo[] {\r\n const searchedAssetList: AssetInfo[] = [];\r\n for (const asset of this.data.onPropertyAssets) {\r\n if (asset.equipment?.equipmentNumber?.toUpperCase().includes(searchNumber.toUpperCase()) && asset.equipment?.equipmentType === 'TL') {\r\n searchedAssetList.push(asset);\r\n }\r\n }\r\n return searchedAssetList;\r\n }\r\n\r\n public displayNameFunction(asset: AssetInfo): string {\r\n if (asset) {\r\n return asset.equipment.equipmentNumber;\r\n }\r\n }\r\n\r\n private openInsertTrailerDialog() {\r\n if(this.data.asset?.operations?.bayNumber){\r\n this.dialogRef.close({ undefined, nextAsset: this.data.nextAsset, previous: this.data.previousAsset, insertTrailer: true});\r\n }\r\n\r\n }\r\n\r\n private onSiteNotArrivedFeatureFlagIsEnabled(): boolean {\r\n return this.launchDarklyService.getFlag('Mobile-On-Site-Not-Arrived-Insert');\r\n }\r\n\r\n}\r\n","

{{selectedMode === 'move' ? 'Move Trailer' : 'Insert Trailer in Bay'}}

\r\n\r\n Move Trailer\r\n Insert Trailer\r\n\r\n
\r\n
\r\n
\r\n Warning! Shift in progress.\r\n
\r\n
\r\n {{baySuggestionMessage}}\r\n
\r\n
\r\n Moving from Bay {{data.asset.operations.bayNumber}} to Bay {{selectedBayNumber}} {{selectedPosition}}.\r\n
\r\n
\r\n Moving {{selectedEquipmentNumber}}{{selectedEquipmentBay}} To Bay {{data.asset.operations.bayNumber}}\r\n
\r\n
\r\n \r\n \r\n \r\n
\r\n
\r\n
\r\n \r\n \r\n \r\n \r\n {{asset.equipment.equipmentNumber}}\r\n \r\n \r\n
\r\n \r\n \r\n
\r\n \r\n Front\r\n Middle\r\n Rear\r\n \r\n
\r\n\r\n
\r\n \r\n
\r\n\r\n
\r\n
\r\n \r\n
\r\n
\r\n\r\n
\r\n You are confirming {{data.asset.equipment.equipmentNumber}} is {{commonFunctionsSite.isAssetEmpty(data.asset) ? \"empty\" : \"loaded\"}} and is moving from bay {{data.asset.operations.bayNumber}} to bay {{selectedBayNumber}} {{selectedPosition}}\r\n
\r\n
\r\n You are confirming {{selectedEquipmentNumber}} is {{commonFunctionsSite.isAssetEmpty(assetToBay) ? \"empty\" : \"loaded\"}} and is moving from bay {{selectedEquipmentBay}} to bay {{data.asset.operations.bayNumber}}\r\n
\r\n\r\n
\r\n
\r\n \r\n \r\n
\r\n
\r\n
\r\n","import { Component, Inject, ViewChild, ElementRef} from '@angular/core';\r\nimport { MatDialog, MatDialogRef, MAT_DIALOG_DATA } from '@angular/material/dialog';\r\nimport { RejectAssetWarningDialogComponent } from '../../dialog/reject-asset-warning-dialog/reject-asset-warning-dialog.component';\r\nimport { InsertTrailerDialogComponent } from '../../dialog/insert-trailer-dialog/insert-trailer-dialog.component';\r\nimport { AssetInfo } from '../../../model/asset-info/asset-info';\r\nimport { OnPropertyOperations } from '../../../model/asset-info/on-property-operations';\r\nimport { Location as TmsLocation } from '../../../model/location/location';\r\n\r\n@Component({\r\n selector: 'app-reject-asset-dialog',\r\n templateUrl: './reject-asset-dialog.component.html',\r\n styleUrls: ['./reject-asset-dialog.component.scss',\r\n '../../site/detail/detail.scss',\r\n '../../site/site.scss']\r\n})\r\nexport class RejectAssetDialogComponent{\r\n @ViewChild('rejectedDifferentTrailerInBay') rejectedDifferentTrailerInBay: ElementRef;\r\n @ViewChild('rejectedBayIsEmpty') rejectedBayIsEmpty: ElementRef;\r\n @ViewChild('rejectedBayIsObstructed') rejectedBayIsObstructed: ElementRef;\r\n @ViewChild('rejectedLoadStatusIncorrect') rejectedLoadStatusIncorrect: ElementRef;\r\n @ViewChild('rejectedOther') rejectedOther: ElementRef;\r\n\r\n rejectedReasonText = '';\r\n disableSubmit = true;\r\n activateNextRejectActions = false;\r\n\r\n public rejectedReasonEnum = {\r\n differentTrailerInBay: 'DIFFERENT TRAILER IN BAY',\r\n bayIsEmpty: 'BAY IS EMPTY',\r\n bayIsObstructed: 'BAY IS OBSTRUCTED',\r\n loadStatusIncorrect: 'TRAILER LOAD STATUS IS INCORRECT',\r\n other: 'OTHER'\r\n };\r\n\r\n constructor(\r\n public dialogRef: MatDialogRef,\r\n private dialog: MatDialog,\r\n @Inject(MAT_DIALOG_DATA) public data: {\r\n asset: AssetInfo;\r\n onPropertyAssets: AssetInfo[];\r\n location: TmsLocation;\r\n newAsset: AssetInfo;\r\n rejectReason: string;\r\n }) { }\r\n\r\n updateRejectedReason(reason: string) {\r\n this.uncheckAllRejectOptions();\r\n if (this.rejectedReasonText === reason) {\r\n this.rejectedReasonText = '';\r\n } else {\r\n this.rejectedReasonText = reason;\r\n\r\n switch (reason) {\r\n case this.rejectedReasonEnum.differentTrailerInBay:\r\n this.rejectedDifferentTrailerInBay.nativeElement.checked = true;\r\n break;\r\n case this.rejectedReasonEnum.bayIsEmpty:\r\n this.rejectedBayIsEmpty.nativeElement.checked = true;\r\n break;\r\n case this.rejectedReasonEnum.bayIsObstructed:\r\n this.rejectedBayIsObstructed.nativeElement.checked = true;\r\n break;\r\n case this.rejectedReasonEnum.loadStatusIncorrect:\r\n this.rejectedLoadStatusIncorrect.nativeElement.checked = true;\r\n break;\r\n case this.rejectedReasonEnum.other:\r\n this.rejectedOther.nativeElement.checked = true;\r\n break;\r\n default:\r\n break;\r\n }\r\n this.updateSubmitButton(reason);\r\n this.disableSubmit = false;\r\n }\r\n }\r\n\r\n selectedButton(reason: string) {\r\n if (this.rejectedReasonText === reason) {\r\n return true;\r\n } else {\r\n return false;\r\n }\r\n }\r\n\r\n updateSubmitButton(reason: string) {\r\n switch (reason) {\r\n case this.rejectedReasonEnum.differentTrailerInBay:\r\n this.activateNextRejectActions = true;\r\n break;\r\n case this.rejectedReasonEnum.bayIsEmpty:\r\n this.activateNextRejectActions = false;\r\n break;\r\n case this.rejectedReasonEnum.bayIsObstructed:\r\n this.activateNextRejectActions = false;\r\n break;\r\n case this.rejectedReasonEnum.loadStatusIncorrect:\r\n this.activateNextRejectActions = true;\r\n break;\r\n case this.rejectedReasonEnum.other:\r\n this.activateNextRejectActions = false;\r\n break;\r\n default:\r\n this.activateNextRejectActions = false;\r\n break;\r\n }\r\n }\r\n\r\n\r\n uncheckAllRejectOptions() {\r\n this.rejectedDifferentTrailerInBay.nativeElement.checked = false;\r\n this.rejectedBayIsEmpty.nativeElement.checked = false;\r\n this.rejectedBayIsObstructed.nativeElement.checked = false;\r\n this.rejectedLoadStatusIncorrect.nativeElement.checked = false;\r\n this.rejectedOther.nativeElement.checked = false;\r\n this.disableSubmit = true;\r\n}\r\n\r\n\r\n public submitRejectAsset() {\r\n this.data.rejectReason = this.rejectedReasonText;\r\n this.dialogRef.close(this.data);\r\n }\r\n public closeRejectAsset() {\r\n this.dialogRef.close();\r\n }\r\n\r\n submitRejectAssetNext(){\r\n this.data.rejectReason = this.rejectedReasonText;\r\n switch (this.rejectedReasonText) {\r\n case this.rejectedReasonEnum.differentTrailerInBay:\r\n this.openInsertTrailerDialog();\r\n break;\r\n case this.rejectedReasonEnum.bayIsEmpty:\r\n this.dialogRef.close(this.data);\r\n break;\r\n case this.rejectedReasonEnum.bayIsObstructed:\r\n this.dialogRef.close(this.data);\r\n break;\r\n case this.rejectedReasonEnum.loadStatusIncorrect:\r\n this.openRejectAssetWarningDialog();\r\n break;\r\n case this.rejectedReasonEnum.other:\r\n this.dialogRef.close(this.data);\r\n break;\r\n default:\r\n this.dialogRef.close(this.data);\r\n }\r\n }\r\n\r\n public openRejectAssetWarningDialog(): void {\r\n const dialogRefRejectAssetWarning = this.dialog.open(RejectAssetWarningDialogComponent, {\r\n width: '350px',\r\n maxWidth: '95vw',\r\n data: { },\r\n autoFocus: false\r\n });\r\n\r\n dialogRefRejectAssetWarning.afterClosed().subscribe(rejectConfirmed => {\r\n try {\r\n console.log('Reject Asset Warning Dialog close: ' + rejectConfirmed);\r\n if (rejectConfirmed) {\r\n this.data.rejectReason = this.rejectedReasonText;\r\n this.dialogRef.close(this.data);\r\n }\r\n } catch (e) {\r\n console.log('Error during Reject Asset Warning Dialog close: ' + e);\r\n }\r\n });\r\n }\r\n\r\n public openInsertTrailerDialog(): void {\r\n const dialogRefInsertTrailer = this.dialog.open(InsertTrailerDialogComponent, {\r\n width: '350px',\r\n maxWidth: '95vw',\r\n data: {\r\n asset: this.data.asset,\r\n onPropertyAssets: this.data.onPropertyAssets,\r\n location: this.data.location,\r\n insertOnReject: true,\r\n },\r\n autoFocus: false\r\n });\r\n\r\n dialogRefInsertTrailer.afterClosed().subscribe(insertedTrailer => {\r\n try {\r\n this.data.rejectReason = this.rejectedReasonText;\r\n if (insertedTrailer?.equipment) {\r\n console.log(`Insert Trailer Dialog close. Inserted trailer ${insertedTrailer.equipment.equipmentNumber} to Bay ${insertedTrailer.operations.bayNumber}`);\r\n this.data.newAsset = insertedTrailer;\r\n this.dialogRef.close(this.data);\r\n } else if (insertedTrailer === true) {\r\n console.log('Insert Trailer Dialog close. Inserted trailer Canceled. Continue with reject.');\r\n this.dialogRef.close(this.data);\r\n } else {\r\n console.log('Insert Trailer Dialog Canceled.');\r\n }\r\n } catch (e) {\r\n console.log('Error during Insert Trailer Dialog close: ' + e);\r\n }\r\n });\r\n }\r\n\r\n}\r\n","

Reject Reason

\r\n
\r\n \r\n
\r\n
\r\n \r\n
\r\n
\r\n \r\n
\r\n
\r\n \r\n
\r\n
\r\n \r\n
\r\n
\r\n \r\n
\r\n \r\n \r\n
\r\n \r\n \r\n \r\n\r\n
\r\n
\r\n \r\n \r\n \r\n
\r\n
\r\n
\r\n","import { Component, Inject} from '@angular/core';\r\nimport { MatDialogRef, MAT_DIALOG_DATA } from '@angular/material/dialog';\r\n\r\n@Component({\r\n selector: 'app-reject-asset-warning-dialog',\r\n templateUrl: './reject-asset-warning-dialog.component.html',\r\n styleUrls: ['./reject-asset-warning-dialog.component.scss',\r\n '../../site/detail/detail.scss',\r\n '../../site/site.scss']\r\n})\r\nexport class RejectAssetWarningDialogComponent{\r\n constructor(\r\n public dialogRef: MatDialogRef,\r\n @Inject(MAT_DIALOG_DATA) public data: {\r\n }) { }\r\n\r\n\r\n public submitRejectAsset() {\r\n this.dialogRef.close(true);\r\n }\r\n public closeRejectAsset() {\r\n this.dialogRef.close(false);\r\n }\r\n\r\n}\r\n","

\r\n \r\n Reject Reason\r\n

\r\n
\r\n
\r\n \r\n
\r\n \r\n
\r\n
\r\n \r\n \r\n
\r\n
\r\n
\r\n","import { Component, Input } from '@angular/core';\r\n\r\nimport { FilterGroup } from '../model/filter-group';\r\nimport { FilterCheckbox } from '../model/filter-checkbox';\r\n\r\nimport { FilterService } from '../../../service/filter/filter.service';\r\n\r\n@Component({\r\n selector: 'app-filter-checkbox-group',\r\n templateUrl: './filter-checkbox-group.component.html',\r\n styleUrls: ['./filter-checkbox-group.component.scss', '../filter-section/filter-section.component.scss']\r\n})\r\nexport class FilterCheckboxGroupComponent {\r\n\r\n @Input() groupTitle?: string;\r\n @Input() filterGroups?: FilterGroup[];\r\n @Input() filterCheckboxes: FilterCheckbox[];\r\n @Input() filterFieldName: string;\r\n\r\n constructor(private filterService: FilterService) { }\r\n\r\n public checkChanged() {\r\n const activeFilters: FilterCheckbox[] = [];\r\n if (this.filterGroups) {\r\n this.modifyParentGroup();\r\n for (const filterGroup of this.filterGroups) {\r\n for (const checkbox of filterGroup.filterCheckboxes) {\r\n if (checkbox.checked) {\r\n activeFilters.push(checkbox);\r\n }\r\n }\r\n }\r\n } else {\r\n for (const checkbox of this.filterCheckboxes) {\r\n if (checkbox.checked) {\r\n activeFilters.push(checkbox);\r\n }\r\n }\r\n }\r\n if (this.filterService.activeFilterNeededCheckboxes(activeFilters)) {\r\n this.filterService.setActiveFilters(activeFilters, this.filterFieldName);\r\n } else {\r\n this.filterService.clearFilterSection(this.filterFieldName);\r\n }\r\n }\r\n\r\n public modifyParentGroup(): void {\r\n for (const filterGroup of this.filterGroups) {\r\n if (filterGroup.groupTitle === this.groupTitle) {\r\n let allTrue = true;\r\n let atLeastOneTrue = false;\r\n for (const checkbox of this.filterCheckboxes) {\r\n if (checkbox.checked) {\r\n atLeastOneTrue = true;\r\n } else {\r\n allTrue = false;\r\n }\r\n }\r\n if (allTrue) {\r\n filterGroup.groupPartial = false;\r\n filterGroup.groupCheckbox.checked = true;\r\n } else {\r\n filterGroup.groupPartial = atLeastOneTrue;\r\n filterGroup.groupCheckbox.checked = false;\r\n }\r\n }\r\n }\r\n }\r\n}\r\n","{{filter.title}}\r\n","import { Component, OnInit, Input } from '@angular/core';\r\nimport { Subject } from 'rxjs';\r\nimport { debounceTime } from 'rxjs/operators';\r\n\r\nimport { MatDatepickerInputEvent } from '@angular/material/datepicker';\r\n\r\nimport { FilterTextboxPair } from '../model/filter-textbox-pair';\r\n\r\nimport { FilterService } from '../../../service/filter/filter.service';\r\n\r\n@Component({\r\n selector: 'app-filter-date-box-pair',\r\n templateUrl: './filter-date-box-pair.component.html',\r\n styleUrls: ['./filter-date-box-pair.component.scss', '../filter.scss']\r\n})\r\nexport class FilterDateBoxPairComponent implements OnInit {\r\n\r\n @Input() filterTextboxPair: FilterTextboxPair;\r\n @Input() filterFieldName: string;\r\n\r\n dateFromSubject: Subject = new Subject();\r\n dateToSubject: Subject = new Subject();\r\n\r\n constructor(private filterService: FilterService) { }\r\n\r\n public ngOnInit(): void {\r\n this.filterTextboxPair.filterCondition.condition = ['', ''];\r\n this.dateFromSubject.pipe(debounceTime(500)).subscribe(dateFromValue => {\r\n if (dateFromValue) {\r\n this.filterTextboxPair.filterCondition.condition[0] = dateFromValue.toString();\r\n } else {\r\n this.filterTextboxPair.filterCondition.condition[0] = '';\r\n }\r\n if (this.filterService.activeFilterNeededTextBoxes(this.filterTextboxPair.filterCondition.condition as string[], false)) {\r\n this.filterService.setActiveFilters([this.filterTextboxPair], this.filterFieldName);\r\n } else {\r\n this.filterService.clearFilterSection(this.filterFieldName);\r\n }\r\n });\r\n\r\n this.dateToSubject.pipe(debounceTime(500)).subscribe(dateToValue => {\r\n if (dateToValue) {\r\n this.filterTextboxPair.filterCondition.condition[1] = dateToValue.toString();\r\n } else {\r\n this.filterTextboxPair.filterCondition.condition[1] = '';\r\n }\r\n if (this.filterService.activeFilterNeededTextBoxes(this.filterTextboxPair.filterCondition.condition as string[], false)) {\r\n this.filterService.setActiveFilters([this.filterTextboxPair], this.filterFieldName);\r\n } else {\r\n this.filterService.clearFilterSection(this.filterFieldName);\r\n }\r\n });\r\n }\r\n\r\n public dateUpdateFrom(from: MatDatepickerInputEvent) {\r\n this.dateFromSubject.next(from.value);\r\n }\r\n\r\n public dateUpdateTo(to: MatDatepickerInputEvent) {\r\n this.dateToSubject.next(to.value);\r\n }\r\n\r\n}\r\n","
\r\n
{{filterTextboxPair.inputHeaderOne}}
\r\n \r\n \r\n \r\n
\r\n
\r\n
{{filterTextboxPair.inputHeaderTwo}}
\r\n \r\n \r\n \r\n
\r\n","export class FilterSection {\r\n operations: boolean;\r\n equipment: boolean;\r\n\r\n constructor() {\r\n this.operations = true;\r\n this.equipment = false;\r\n }\r\n}\r\n","import { Component, Input, OnChanges, SimpleChanges } from '@angular/core';\r\nimport { KeyValue } from '@angular/common';\r\n\r\nimport { EquipmentFilter } from '../model/equipment/equipment-filter';\r\nimport { OperationsFilter } from '../model/operations/operations-filter';\r\n\r\nimport { FilterService } from '../../../service/filter/filter.service';\r\nimport { FilterCheckbox } from '../model/filter-checkbox';\r\n\r\nimport { FilterTextboxes } from '../model/filter-textboxes';\r\nimport { FilterCheckboxes } from '../model/filter-checkboxes';\r\nimport { FilterCheckboxesGroup } from '../model/filter-checkboxes-group';\r\n\r\n@Component({\r\n selector: 'app-filter-section',\r\n templateUrl: './filter-section.component.html',\r\n styleUrls: ['./filter-section.component.scss']\r\n})\r\nexport class FilterSectionComponent implements OnChanges {\r\n\r\n @Input() filterSection: EquipmentFilter | OperationsFilter;\r\n @Input() activeView: string;\r\n\r\n constructor(public filterService: FilterService) { }\r\n\r\n public ngOnChanges(changes: SimpleChanges): void {\r\n if (this.activeView && changes.activeView) {\r\n const keys = Object.keys(this.filterSection);\r\n for (const key of keys) {\r\n const filterSection = this.filterSection[key];\r\n // if the section isnt valid for active view turn off its filters (to prevent not seeing the filter yet it being active)\r\n if (filterSection.acceptedViews && filterSection.activeFilterFieldName && !filterSection.acceptedViews.includes(this.activeView)) {\r\n this.filterService.clearFilterSection(filterSection.activeFilterFieldName);\r\n // clear all filter checkboxes if the filter has them\r\n if (this.filterService.isCheckboxesFilter(filterSection)) {\r\n filterSection.filterCheckboxes = this.filterService.resetFilterCheckboxes(filterSection.filterCheckboxes);\r\n } else if (this.filterService.isTextboxesFilter(filterSection)) {\r\n filterSection.filterTextboxes = this.filterService.resetFilterTextboxPair(filterSection.filterTextboxes);\r\n } else if (this.filterService.isCheckboxesGroupFilter(filterSection)) {\r\n filterSection.filterGroup = this.filterService.resetFilterGroup(filterSection.filterGroup);\r\n }\r\n this.filterSection[key] = filterSection;\r\n }\r\n }\r\n }\r\n }\r\n\r\n // the default angular implementation of the keyvalue pipe sorts by alphabetical order\r\n // since we dont want that we need a custom sort which returns 0 to keep the original order\r\n public keepOriginalOrder = (a: KeyValue, b: KeyValue): number => 0;\r\n\r\n public checkChanged(group: string, subgroup: string) {\r\n const activeFilters: FilterCheckbox[] = [];\r\n const keys = Object.keys(this.filterSection);\r\n for (const key of keys) {\r\n if (key === group) {\r\n const filterSection = this.filterSection[key];\r\n if (this.filterService.isCheckboxesGroupFilter(filterSection)) {\r\n for (const filterGroup of filterSection.filterGroup) {\r\n for (const checkbox of filterGroup.filterCheckboxes) {\r\n if (filterGroup.groupTitle === subgroup) {\r\n checkbox.checked = filterGroup.groupCheckbox.checked;\r\n }\r\n if (checkbox.checked) {\r\n activeFilters.push(checkbox);\r\n }\r\n }\r\n }\r\n }\r\n }\r\n }\r\n if (this.filterService.activeFilterNeededCheckboxes(activeFilters)) {\r\n this.filterService.setActiveFilters(activeFilters, group);\r\n } else {\r\n this.filterService.clearFilterSection(group);\r\n }\r\n }\r\n}\r\n","
\r\n \r\n
\r\n {{filterSubsection.value.subsectionTitle}}\r\n
\r\n
\r\n \r\n
\r\n {{filterGroup.groupCheckbox.title}}\r\n \r\n
\r\n
\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n
\r\n
\r\n
\r\n","import { Component, Input } from '@angular/core';\r\n\r\n@Component({\r\n selector: 'app-filter-subsection',\r\n templateUrl: './filter-subsection.component.html',\r\n styleUrls: ['./filter-subsection.component.scss']\r\n})\r\nexport class FilterSubsectionComponent {\r\n @Input() expandable: boolean;\r\n public expanded = true;\r\n}\r\n","
\r\n \r\n \r\n
\r\n
\r\n \r\n
\r\n","import { Component, Input, OnInit } from '@angular/core';\r\nimport { Subject } from 'rxjs';\r\nimport { debounceTime } from 'rxjs/operators';\r\n\r\nimport { FilterTextboxPair } from '../model/filter-textbox-pair';\r\n\r\nimport { FilterService } from '../../../service/filter/filter.service';\r\n\r\n@Component({\r\n selector: 'app-filter-text-box-pair',\r\n templateUrl: './filter-text-box-pair.component.html',\r\n styleUrls: ['./filter-text-box-pair.component.scss', '../filter.scss']\r\n})\r\nexport class FilterTextBoxPairComponent implements OnInit {\r\n\r\n @Input() filterTextboxPair: FilterTextboxPair;\r\n @Input() filterFieldName: string;\r\n\r\n textBoxOneSubject: Subject = new Subject();\r\n textBoxOneMiniSubject: Subject = new Subject();\r\n textBoxTwoSubject: Subject = new Subject();\r\n textBoxTwoMiniSubject: Subject = new Subject();\r\n\r\n constructor(private filterService: FilterService) { }\r\n\r\n public ngOnInit(): void {\r\n if (this.filterTextboxPair.doubleBoxes) {\r\n this.filterTextboxPair.filterCondition.condition = ['', '', '', ''];\r\n } else {\r\n this.filterTextboxPair.filterCondition.condition = ['', ''];\r\n }\r\n this.textBoxOneSubject.pipe(debounceTime(500)).subscribe(textBoxValue => {\r\n this.filterTextboxPair.filterCondition.condition[0] = textBoxValue;\r\n if (this.filterService.activeFilterNeededTextBoxes(this.filterTextboxPair.filterCondition.condition as string[], this.filterTextboxPair.doubleBoxes)) {\r\n this.filterService.setActiveFilters([this.filterTextboxPair], this.filterFieldName);\r\n } else {\r\n this.filterService.clearFilterSection(this.filterFieldName);\r\n }\r\n });\r\n\r\n this.textBoxTwoSubject.pipe(debounceTime(500)).subscribe(textBoxValue => {\r\n this.filterTextboxPair.filterCondition.condition[1] = textBoxValue;\r\n if (this.filterService.activeFilterNeededTextBoxes(this.filterTextboxPair.filterCondition.condition as string[], this.filterTextboxPair.doubleBoxes)) {\r\n this.filterService.setActiveFilters([this.filterTextboxPair], this.filterFieldName);\r\n } else {\r\n this.filterService.clearFilterSection(this.filterFieldName);\r\n }\r\n });\r\n\r\n if (this.filterTextboxPair.doubleBoxes) {\r\n this.textBoxOneMiniSubject.pipe(debounceTime(500)).subscribe(textBoxValue => {\r\n this.filterTextboxPair.filterCondition.condition[2] = textBoxValue;\r\n if (this.filterService.activeFilterNeededTextBoxes(this.filterTextboxPair.filterCondition.condition as string[], this.filterTextboxPair.doubleBoxes)) {\r\n this.filterService.setActiveFilters([this.filterTextboxPair], this.filterFieldName);\r\n } else {\r\n this.filterService.clearFilterSection(this.filterFieldName);\r\n }\r\n });\r\n\r\n this.textBoxTwoMiniSubject.pipe(debounceTime(500)).subscribe(textBoxValue => {\r\n this.filterTextboxPair.filterCondition.condition[3] = textBoxValue;\r\n if (this.filterService.activeFilterNeededTextBoxes(this.filterTextboxPair.filterCondition.condition as string[], this.filterTextboxPair.doubleBoxes)) {\r\n this.filterService.setActiveFilters([this.filterTextboxPair], this.filterFieldName);\r\n } else {\r\n this.filterService.clearFilterSection(this.filterFieldName);\r\n }\r\n });\r\n }\r\n }\r\n\r\n public textBoxOneValueChange(search: Event) {\r\n this.textBoxOneSubject.next((search.target as HTMLInputElement).value);\r\n }\r\n\r\n public textBoxOneMiniValueChange(search: Event) {\r\n this.textBoxOneMiniSubject.next((search.target as HTMLInputElement).value);\r\n }\r\n\r\n public textBoxTwoValueChange(search: Event) {\r\n this.textBoxTwoSubject.next((search.target as HTMLInputElement).value);\r\n }\r\n\r\n public textBoxTwoMiniValueChange(search: Event) {\r\n this.textBoxTwoMiniSubject.next((search.target as HTMLInputElement).value);\r\n }\r\n\r\n}\r\n","
\r\n
{{filterTextboxPair.inputHeaderOne}}
\r\n \r\n \r\n
\r\n
\r\n
{{filterTextboxPair.inputHeaderTwo}}
\r\n \r\n \r\n
\r\n","import { Component, OnInit, OnDestroy, Output, EventEmitter, ViewChild, ElementRef } from '@angular/core';\r\nimport { UntypedFormBuilder, UntypedFormGroup } from '@angular/forms';\r\nimport { debounceTime, takeUntil } from 'rxjs/operators';\r\n\r\nimport { Subject } from 'rxjs';\r\nimport { MatAutocompleteSelectedEvent } from '@angular/material/autocomplete';\r\n\r\nimport { AssetInfo } from '../../model/asset-info/asset-info';\r\nimport { Operations } from '../../model/asset-info/operations';\r\n\r\nimport { Filter } from './model/filter';\r\nimport { FilterSection } from './filter-section';\r\nimport { FilterItem } from './model/filter-item';\r\nimport { FilterCondition } from './model/filter-condition';\r\n\r\nimport { EquipmentFilterService } from '../../service/filter/equipment-filters-service';\r\nimport { OperationsFilterService } from '../../service/filter/operations-filters.service';\r\nimport { FilterService } from '../../service/filter/filter.service';\r\nimport { FilterConditions } from '../../service/filter/filter-conditions';\r\n\r\nimport { ViewService } from '../../service/view/view.service';\r\n\r\n@Component({\r\n selector: 'app-filter',\r\n templateUrl: './filter.component.html',\r\n styleUrls: ['./filter.component.scss']\r\n})\r\nexport class FilterComponent implements OnInit, OnDestroy {\r\n @ViewChild('filterSearchInput') filterSearchInput: ElementRef;\r\n @Output() filterClose = new EventEmitter();\r\n\r\n activeView: string;\r\n filter: Filter = new Filter(new FilterConditions(), new EquipmentFilterService(), new OperationsFilterService());\r\n filterSection: FilterSection = new FilterSection();\r\n searchSubject: Subject = new Subject();\r\n searchItem: FilterItem = new FilterItem(new FilterCondition((asset: AssetInfo) => asset.equipment?.equipmentNumber, ['']), this.filterCondition.filterStringIncludes);\r\n\r\n searchResults: AssetInfo[];\r\n\r\n filterSearchForm: UntypedFormGroup = this.formBuilder.group({\r\n filterSearch: '',\r\n });\r\n\r\n unsubscribe$ = new Subject();\r\n\r\n constructor(private filterService: FilterService, private filterCondition: FilterConditions, private viewService: ViewService, private formBuilder: UntypedFormBuilder) { }\r\n\r\n public ngOnInit(): void {\r\n this.searchSubject.pipe(debounceTime(500)).subscribe(searchValue => {\r\n if (searchValue !== '') {\r\n this.searchItem.filterCondition.condition[0] = searchValue;\r\n this.filterService.setActiveFilters([this.searchItem], 'search');\r\n } else {\r\n this.filterService.clearFilterSection('search');\r\n }\r\n });\r\n\r\n this.viewService.currentView.pipe(takeUntil(this.unsubscribe$)).subscribe(activeView => {\r\n this.activeView = activeView;\r\n if (this.activeView === 'yardcheck') {\r\n this.openFilterSection('o');\r\n }\r\n });\r\n }\r\n\r\n public cancelFilter(): void {\r\n this.filter = new Filter(new FilterConditions(), new EquipmentFilterService(), new OperationsFilterService());\r\n this.filterService.clearActiveFilters();\r\n }\r\n\r\n public hideFilter(): void {\r\n this.filterClose.emit();\r\n }\r\n\r\n public searchValueChange(search: Event) {\r\n const value = (search.target as HTMLInputElement).value;\r\n this.filter.search = value;\r\n this.searchValue(value);\r\n }\r\n\r\n public searchValue(search: string) {\r\n if (this.filter.search.length > 1) {\r\n this.searchSubject.next(search);\r\n this.searchResults = this.filterService.searchAssetList(search);\r\n } else {\r\n this.searchSubject.next('');\r\n this.searchResults = [];\r\n this.filterService.searchAssetList(search);\r\n }\r\n }\r\n\r\n public clearSearchBar() {\r\n this.filter.search = '';\r\n this.filterSearchForm.setValue({filterSearch: ''});\r\n this.filterSearchInput.nativeElement.value = '';\r\n this.filterService.clearFilterSection('search');\r\n this.searchResults = [];\r\n }\r\n\r\n public openFilterSection(section: string): void {\r\n switch (section) {\r\n case 'o':\r\n this.filterSection.equipment = false;\r\n this.filterSection.operations = true;\r\n break;\r\n case 'e':\r\n this.filterSection.equipment = true;\r\n this.filterSection.operations = false;\r\n break;\r\n }\r\n }\r\n\r\n public selectItem(event: MatAutocompleteSelectedEvent) {\r\n this.filter.search = event.option.viewValue;\r\n this.searchValue(this.filter.search);\r\n }\r\n\r\n public displayNameFunction(asset: AssetInfo): string {\r\n if (asset) {\r\n return asset.equipment.equipmentNumber;\r\n }\r\n }\r\n\r\n public ngOnDestroy(): void {\r\n this.unsubscribe$.next();\r\n this.unsubscribe$.complete();\r\n }\r\n\r\n}\r\n","
\r\n
\r\n \r\n \r\n
\r\n
\r\n
\r\n
\r\n \r\n \r\n \r\n {{asset.equipment.equipmentNumber}}\r\n \r\n \r\n \r\n
\r\n
\r\n
\r\n
Operations
\r\n
Equipment
\r\n
\r\n\r\n\r\n","import { FilterCheckboxes } from '../filter-checkboxes';\r\nimport { FilterConditions } from '../../../../service/filter/filter-conditions';\r\nimport { EquipmentFilterService } from '../../../../service/filter/equipment-filters-service';\r\nimport { FilterCheckboxesGroup } from '../filter-checkboxes-group';\r\n\r\nexport class EquipmentFilter {\r\n [filter: string]: FilterCheckboxes | FilterCheckboxesGroup;\r\n\r\n nonNetwork: FilterCheckboxes;\r\n trailer: FilterCheckboxesGroup;\r\n dolly: FilterCheckboxes;\r\n tractor: FilterCheckboxes;\r\n vehicle: FilterCheckboxes;\r\n chassis: FilterCheckboxes;\r\n fuelType: FilterCheckboxes;\r\n\r\n constructor(filterConditions: FilterConditions, equipmentFilterService: EquipmentFilterService) {\r\n\r\n this.nonNetwork = new FilterCheckboxes(equipmentFilterService.createNonNetworkCheckboxes(filterConditions), 'checkboxes', 'Non-Network', false, true, 'nonNetwork', ['onproperty', 'inbound']);\r\n this.trailer = new FilterCheckboxesGroup(equipmentFilterService.createTrailerCheckboxes(filterConditions), 'checkboxes', 'Trailer', true, true, 'trailer', ['onproperty', 'inbound']);\r\n this.dolly = new FilterCheckboxes(equipmentFilterService.createDollyCheckboxes(filterConditions), 'checkboxes', 'Dolly', false, true, 'dolly', ['onproperty', 'inbound']);\r\n this.tractor = new FilterCheckboxes(equipmentFilterService.createTractorCheckboxes(filterConditions), 'checkboxes', 'Tractor', false, true, 'tractor', ['onproperty', 'inbound']);\r\n this.vehicle = new FilterCheckboxes(equipmentFilterService.createVehicleCheckboxes(filterConditions), 'checkboxes', 'Vehicle', false, true, 'vehicle', ['onproperty', 'inbound']);\r\n this.chassis = new FilterCheckboxes(equipmentFilterService.createChassisCheckboxes(filterConditions), 'checkboxes', 'Chassis', false, true, 'chassis', ['onproperty', 'inbound']);\r\n this.fuelType = new FilterCheckboxes(equipmentFilterService.createFuelTypeCheckboxes(filterConditions), 'checkboxes', 'Fuel Type', false, true, 'fuelType', ['onproperty', 'inbound']);\r\n }\r\n\r\n}\r\n","import { AssetInfo } from '../../../model/asset-info/asset-info';\r\nimport { Operations } from '../../../model/asset-info/operations';\r\nimport { FilterCondition } from './filter-condition';\r\nimport { FilterConditions } from '../../../service/filter/filter-conditions';\r\nimport { FilterItem } from './filter-item';\r\n\r\nexport class FilterCheckbox extends FilterItem {\r\n checked: boolean;\r\n title: string;\r\n subtitle: string;\r\n\r\n constructor(title: string, subtitle: string, filterCondition: FilterCondition, filterConditionFunction: (asset: AssetInfo, condition: FilterCondition) => boolean) {\r\n super(filterCondition, filterConditionFunction.bind(FilterConditions.prototype));\r\n this.checked = false;\r\n this.title = title;\r\n this.subtitle = subtitle;\r\n }\r\n}\r\n","import { FilterSubsection } from './filter-subsection';\r\nimport { FilterGroup } from './filter-group';\r\n\r\nexport class FilterCheckboxesGroup extends FilterSubsection {\r\n filterGroup: FilterGroup[] = [];\r\n\r\n constructor(filterGroup: FilterGroup[], subsectionType: string, subsectionTitle: string, extendedSubsection: boolean, expandable: boolean, activeFilterFieldName: string, acceptedViews: string[]) {\r\n super(subsectionType, subsectionTitle, extendedSubsection, expandable, activeFilterFieldName, acceptedViews);\r\n this.filterGroup = filterGroup;\r\n }\r\n}\r\n","import { FilterSubsection } from './filter-subsection';\r\nimport { FilterCheckbox } from './filter-checkbox';\r\n\r\nexport class FilterCheckboxes extends FilterSubsection {\r\n filterCheckboxes: FilterCheckbox[] = [];\r\n\r\n constructor(filterCheckboxes: FilterCheckbox[], subsectionType: string, subsectionTitle: string, extendedSubsection: boolean, expandable: boolean, activeFilterFieldName: string, acceptedViews: string[]) {\r\n super(subsectionType, subsectionTitle, extendedSubsection, expandable, activeFilterFieldName, acceptedViews);\r\n this.filterCheckboxes = filterCheckboxes;\r\n }\r\n}\r\n","import { AssetInfo } from '../../../model/asset-info/asset-info';\r\nimport { Operations } from '../../../model/asset-info/operations';\r\nimport { OnPropertyOperations } from '../../../model/asset-info/on-property-operations';\r\nimport { OnRoadOperations } from '../../../model/asset-info/on-road-operations';\r\nimport { OutOfAreaAlert } from '../../../model/asset-info/out-of-area-alert';\r\nimport { LeaseInfo } from '../../../model/asset-info/lease-info';\r\nimport { Load } from '../../../model/asset-info/load';\r\nimport { Location } from '../../../model/location/location';\r\n\r\nexport class FilterCondition {\r\n // fields that cover most cases\r\n getItem: (item: AssetInfo) => string | string[] | number | boolean | OutOfAreaAlert | LeaseInfo | Load[];\r\n condition: string[] | number[];\r\n\r\n // needed for domicile filter\r\n location?: Location;\r\n\r\n constructor(getItem: (item: AssetInfo) => string | string[] | number | boolean | OutOfAreaAlert | LeaseInfo | Load[], condition: string[] | number[]) {\r\n this.getItem = getItem;\r\n this.condition = condition;\r\n }\r\n}\r\n","import { FilterCheckbox } from './filter-checkbox';\r\nimport { FilterCondition } from './filter-condition';\r\n\r\nexport class FilterGroup {\r\n groupTitle: string;\r\n groupCheckbox: FilterCheckbox;\r\n groupPartial: boolean;\r\n filterCheckboxes: FilterCheckbox[] = [];\r\n\r\n constructor(groupTitle: string, groupSubtitle: string, checkboxes: FilterCheckbox[]) {\r\n this.groupTitle = groupTitle;\r\n this.groupCheckbox = new FilterCheckbox(groupTitle, groupSubtitle, new FilterCondition(asset => '', []), () => true );\r\n this.groupPartial = false;\r\n this.filterCheckboxes = checkboxes;\r\n }\r\n}\r\n","import { AssetInfo } from '../../../model/asset-info/asset-info';\r\nimport { Operations } from '../../../model/asset-info/operations';\r\nimport { FilterCondition } from './filter-condition';\r\nimport { FilterConditions } from '../../../service/filter/filter-conditions';\r\n\r\nexport class FilterItem {\r\n filterCondition: FilterCondition;\r\n filterConditionFunction: (asset: AssetInfo, condition: FilterCondition) => boolean ;\r\n\r\n constructor(filterCondition: FilterCondition, filterConditionFunction: (asset: AssetInfo, condition: FilterCondition) => boolean) {\r\n this.filterCondition = filterCondition;\r\n this.filterConditionFunction = filterConditionFunction.bind(FilterConditions.prototype);\r\n }\r\n}\r\n","export class FilterSubsection {\r\n subsectionType: string;\r\n subsectionTitle: string;\r\n extendedSubsection: boolean;\r\n expandable: boolean;\r\n activeFilterFieldName: string;\r\n acceptedViews: string[];\r\n\r\n constructor(subsectionType: string, subsectionTitle: string, extendedSubsection: boolean, expandable: boolean, activeFilterFieldName: string, acceptedViews: string[]) {\r\n this.subsectionType = subsectionType;\r\n this.subsectionTitle = subsectionTitle;\r\n this.extendedSubsection = extendedSubsection;\r\n this.expandable = expandable;\r\n this.activeFilterFieldName = activeFilterFieldName;\r\n this.acceptedViews = acceptedViews;\r\n }\r\n}\r\n","import { AssetInfo } from '../../../model/asset-info/asset-info';\r\nimport { Operations } from '../../../model/asset-info/operations';\r\nimport { FilterCondition } from './filter-condition';\r\nimport { FilterConditions } from '../../../service/filter/filter-conditions';\r\nimport { FilterItem } from './filter-item';\r\n\r\nexport class FilterTextboxPair extends FilterItem {\r\n textOne = '';\r\n textOneMini = '';\r\n textTwo = '';\r\n textTwoMini = '';\r\n doubleBoxes: boolean;\r\n inputHeaderOne: string;\r\n inputHeaderTwo: string;\r\n placeholderOne: string;\r\n placeholderTwo: string;\r\n\r\n constructor(doubleBoxes: boolean,\r\n inputHeaderOne: string, inputHeaderTwo: string,\r\n placeholderOne: string, placeholderTwo: string,\r\n filterCondition: FilterCondition, filterConditionFunction: (asset: AssetInfo, condition: FilterCondition) => boolean) {\r\n super(filterCondition, filterConditionFunction.bind(FilterConditions.prototype));\r\n this.doubleBoxes = doubleBoxes;\r\n this.inputHeaderOne = inputHeaderOne;\r\n this.inputHeaderTwo = inputHeaderTwo;\r\n this.placeholderOne = placeholderOne;\r\n this.placeholderTwo = placeholderTwo;\r\n }\r\n}\r\n","import { FilterSubsection } from './filter-subsection';\r\nimport { FilterTextboxPair } from './filter-textbox-pair';\r\n\r\nexport class FilterTextboxes extends FilterSubsection {\r\n filterTextboxes: FilterTextboxPair;\r\n\r\n constructor(filterTextboxes: FilterTextboxPair, subsectionType: string, subsectionTitle: string, extendedSubsection: boolean, expandable: boolean, activeFilterFieldName: string, acceptedViews: string[]) {\r\n super(subsectionType, subsectionTitle, extendedSubsection, expandable, activeFilterFieldName, acceptedViews);\r\n this.filterTextboxes = filterTextboxes;\r\n }\r\n}\r\n","import { EquipmentFilter } from './equipment/equipment-filter';\r\nimport { OperationsFilter } from './operations/operations-filter';\r\nimport { FilterConditions } from '../../../service/filter/filter-conditions';\r\nimport { EquipmentFilterService } from '../../../service/filter/equipment-filters-service';\r\nimport { OperationsFilterService } from '../../../service/filter/operations-filters.service';\r\n\r\nexport class Filter {\r\n search: string;\r\n equipment: EquipmentFilter;\r\n operations: OperationsFilter;\r\n\r\n constructor(filterConditions: FilterConditions, equipmentFilterService: EquipmentFilterService, operationsFilterService: OperationsFilterService) {\r\n this.search = '';\r\n this.equipment = new EquipmentFilter(filterConditions, equipmentFilterService);\r\n this.operations = new OperationsFilter(filterConditions, operationsFilterService);\r\n }\r\n}\r\n","import { FilterTextboxes } from '../filter-textboxes';\r\nimport { FilterCheckboxes } from '../filter-checkboxes';\r\nimport { FilterCheckboxesGroup } from '../filter-checkboxes-group';\r\nimport { FilterConditions } from '../../../../service/filter/filter-conditions';\r\nimport { OperationsFilterService } from '../../../../service/filter/operations-filters.service';\r\n\r\nexport class OperationsFilter {\r\n [filter: string]: FilterTextboxes | FilterCheckboxes | FilterCheckboxesGroup;\r\n\r\n bayRange: FilterTextboxes;\r\n noEmptyBays: FilterCheckboxes;\r\n rejected: FilterCheckboxes;\r\n originDestination: FilterTextboxes;\r\n slocEloc: FilterTextboxes;\r\n dueDate: FilterTextboxes;\r\n createDate: FilterTextboxes;\r\n loadCode: FilterCheckboxes;\r\n trailerDunnageStatus: FilterCheckboxesGroup;\r\n tagStatus: FilterCheckboxesGroup;\r\n serviceLevel: FilterCheckboxes;\r\n alerts: FilterCheckboxes;\r\n equipmentStatus: FilterCheckboxes;\r\n pmiStatus: FilterCheckboxes;\r\n gps: FilterCheckboxes;\r\n driverType: FilterCheckboxes;\r\n autoArrive: FilterCheckboxes;\r\n attributes: FilterCheckboxes;\r\n\r\n constructor(filterConditions: FilterConditions, operationsFilterService: OperationsFilterService) {\r\n this.bayRange = new FilterTextboxes(operationsFilterService.createBayRangeTextboxes(filterConditions), 'textBoxPair', 'Bay Range', false, false, 'bayRange', ['onproperty', 'yardcheck']);\r\n this.noEmptyBays = new FilterCheckboxes(operationsFilterService.createNoEmptyBayCheckboxes(filterConditions), 'checkboxes', '', false, false, 'noEmptyBays', ['yardcheck']);\r\n this.rejected = new FilterCheckboxes(operationsFilterService.createRejectedCheckboxes(filterConditions), 'checkboxes', '', false, false, 'rejected', ['yardcheck']);\r\n this.originDestination = new FilterTextboxes(operationsFilterService.createOriginDestinationTextboxes(filterConditions), 'textBoxPair', 'Origin Destination', false, false, 'originDestination', ['onproperty', 'inbound']);\r\n this.slocEloc = new FilterTextboxes(operationsFilterService.createSlocElocTextboxes(filterConditions), 'textBoxPair', 'Sloc Eloc', false, false, 'slocEloc', ['onproperty', 'inbound']);\r\n this.dueDate = new FilterTextboxes(operationsFilterService.createDueDateTextboxes(filterConditions), 'dateBoxPair', 'Due Date', false, false, 'dueDate', ['onproperty', 'inbound']);\r\n this.createDate = new FilterTextboxes(operationsFilterService.createCreateDateTextboxes(filterConditions), 'dateBoxPair', 'Create Date', false, false, 'createDate', ['onproperty', 'inbound']);\r\n this.loadCode = new FilterCheckboxes(operationsFilterService.createLoadCoadCheckboxes(filterConditions), 'checkboxes', 'Load Code', false, true, 'loadCode', ['onproperty', 'inbound']);\r\n this.trailerDunnageStatus = new FilterCheckboxesGroup(operationsFilterService.createTrailerDunnageStatusCheckboxes(filterConditions),\r\n 'checkboxes', 'Trailer Dunnage & Status', true, true, 'trailerDunnageStatus', ['onproperty', 'yardcheck']);\r\n this.tagStatus = new FilterCheckboxesGroup(operationsFilterService.createTagStatusCheckboxes(filterConditions), 'checkboxes', 'Tag Status', true, true, 'tagStatus', ['onproperty', 'yardcheck']);\r\n this.serviceLevel = new FilterCheckboxes(operationsFilterService.createServiceLevelCheckboxes(filterConditions), 'checkboxes', 'Service Level', false, true, 'serviceLevel', ['onproperty', 'inbound']);\r\n this.alerts = new FilterCheckboxes(operationsFilterService.createAlertsCheckboxes(filterConditions), 'checkboxes', 'Alerts', false, true, 'alerts', ['onproperty', 'inbound']);\r\n this.equipmentStatus = new FilterCheckboxes(operationsFilterService.createEquipmentStatusCheckboxes(filterConditions), 'checkboxes', 'Equipment Status', false, true, 'equipmentStatus', ['onproperty', 'inbound']);\r\n this.pmiStatus = new FilterCheckboxes(operationsFilterService.createPmiStatusCheckboxes(filterConditions), 'checkboxes', 'PMI Status', false, true, 'pmiStatus', ['onproperty', 'inbound']);\r\n this.gps = new FilterCheckboxes(operationsFilterService.createGpsCheckboxes(filterConditions), 'checkboxes', 'GPS', false, true, 'gps', ['onproperty', 'inbound']);\r\n this.driverType = new FilterCheckboxes(operationsFilterService.createDriverTypeCheckboxes(filterConditions), 'checkboxes', 'Driver Type', false, true, 'driverType', ['inbound']);\r\n this.autoArrive = new FilterCheckboxes(operationsFilterService.createAutoArriveCheckboxes(filterConditions), 'checkboxes', 'Failed Auto-Arrive Status', false, true, 'autoArrive', ['inbound']);\r\n this.attributes = new FilterCheckboxes(operationsFilterService.createAttributesCheckboxes(filterConditions), 'checkboxes', 'Attributes', false, true, 'attributes', ['onproperty', 'inbound']);\r\n }\r\n}\r\n","import { Component, OnInit, NgZone, Input, Output, ViewChild, EventEmitter, ElementRef } from '@angular/core';\r\nimport { UntypedFormBuilder, UntypedFormGroup } from '@angular/forms';\r\nimport { of, from, Observable, merge } from 'rxjs';\r\nimport { map, switchMap, debounceTime, catchError } from 'rxjs/operators';\r\nimport { Router, NavigationEnd } from '@angular/router';\r\n\r\nimport { StTdsService } from '../../service/webservice/st-tds/st-tds.service';\r\nimport { TamGisService } from '../../service/webservice/tam-gis/tam-gis.service';\r\nimport { FilterService } from '../../service/filter/filter.service';\r\n\r\nimport { Location } from '../../model/location/location';\r\nimport { SearchResults } from './model/search-results/search-results';\r\nimport { AssetSearchResult } from './model/search-results/asset-search-result';\r\nimport { SearchResultMap } from './model/search-results/search-result-map';\r\nimport { GlobalSearch } from './model/search-results/global-search';\r\nimport { AccountInfo } from '@azure/msal-browser';\r\nimport { MatAutocompleteSelectedEvent } from '@angular/material/autocomplete';\r\nimport { CommonFunctionsSite } from '../site/common-functions-site';\r\n\r\n@Component({\r\n selector: 'app-global-search-box',\r\n templateUrl: './global-search-box.component.html',\r\n styleUrls: ['./global-search-box.component.scss', '../site/site.scss']\r\n})\r\nexport class GlobalSearchBoxComponent implements OnInit {\r\n @Input() filterOpen: boolean;\r\n @Output() filterOpenChange = new EventEmitter();\r\n\r\n @Input() user: AccountInfo;\r\n @ViewChild('globalSearchInput') inputRef: ElementRef;\r\n commonFunctions = new CommonFunctionsSite();\r\n\r\n filterVisible = false;\r\n\r\n globalSearchForm: UntypedFormGroup = this.formBuilder.group({\r\n globalSearch: '',\r\n });\r\n\r\n searchResults: Observable;\r\n\r\n currentSearchResults: SearchResults[] = [];\r\n previousSearchResults: SearchResults[] = [];\r\n previousToken: string = null;\r\n currentToken = '';\r\n\r\n constructor(\r\n private ngZone: NgZone,\r\n private router: Router,\r\n private stTdsService: StTdsService,\r\n private tamGisService: TamGisService,\r\n public filterService: FilterService,\r\n private formBuilder: UntypedFormBuilder) {}\r\n\r\n public ngOnInit() {\r\n this.router.events.subscribe((val) => {\r\n if (val instanceof NavigationEnd) {\r\n this.filterVisible = val.url !== '/';\r\n }\r\n });\r\n this.searchResults = this.globalSearchForm.get('globalSearch').valueChanges\r\n .pipe(\r\n debounceTime(200),\r\n switchMap((value: string) => {\r\n this.determineTokenValues(value);\r\n if (value !== '' && value.length > 2) {\r\n return this.mergeResults(value);\r\n } else {\r\n this.clearSearchState();\r\n return of([]);\r\n }\r\n })\r\n );\r\n }\r\n\r\n public determineTokenValues(value: string) {\r\n if (this.currentToken === value) {\r\n this.previousToken = '';\r\n }\r\n this.currentToken = value;\r\n }\r\n\r\n public clearSearchState(): void {\r\n this.currentSearchResults = null;\r\n this.previousSearchResults = null;\r\n this.previousToken = '';\r\n this.currentToken = '';\r\n }\r\n\r\n public mergeResults(token: string): Observable {\r\n const observableList: Observable[] = [];\r\n observableList.push(this.assetObservableLogic(token));\r\n observableList.push(from(this.locationObservableLogic(token)));\r\n return merge(...observableList).pipe(switchMap(combinedObject => {\r\n // only display new data if the current token matches the passed token\r\n if (this.currentToken === token) {\r\n // record previous value so we can pass that forward to the search box\r\n this.previousSearchResults = this.currentSearchResults;\r\n this.currentSearchResults = combinedObject;\r\n\r\n // if new token push that data forward\r\n if (this.previousToken === null || token !== this.previousToken) {\r\n this.previousToken = token;\r\n this.previousSearchResults = combinedObject;\r\n this.currentSearchResults = combinedObject;\r\n return of(combinedObject);\r\n\r\n // if we are using the same token append data and pass forward\r\n } else if (this.previousToken === token) {\r\n combinedObject = this.previousSearchResults.concat(this.currentSearchResults);\r\n this.previousSearchResults = combinedObject;\r\n this.currentSearchResults = combinedObject;\r\n return of(combinedObject);\r\n }\r\n } else {\r\n // if it doesn't match just return the previously used state\r\n this.currentSearchResults = this.previousSearchResults;\r\n return of(this.previousSearchResults);\r\n }\r\n }));\r\n }\r\n\r\n public assetObservableLogic(token: string): Observable {\r\n // add fields to assets for sorting and displaying in the typeahead\r\n if ((new RegExp(/(^[a-zA-Z]{3,4}|^)\\d{3,}[a-zA-Z]*$/)).test(token)) {\r\n let searchResultMap: SearchResultMap = new SearchResultMap();\r\n return this.stTdsService.partialAssetSearch(token).pipe(map((assets: AssetSearchResult[]) => {\r\n assets.forEach((asset: AssetSearchResult, index: number, listAssets: AssetSearchResult[]) => {\r\n if (listAssets[index].owner && listAssets[index].countryCode && listAssets[index].slicAbbreviation && listAssets[index].assetType && listAssets[index].assetNumber) {\r\n let freightGroup = '';\r\n if (asset.owner === 'F') {\r\n freightGroup = 'Freight ';\r\n }\r\n listAssets[index].globalSearch = new GlobalSearch();\r\n listAssets[index].globalSearch.name = `${asset.assetNumber}`;\r\n listAssets[index].globalSearch.group = `${freightGroup}${this.commonFunctions.assetTypeToHumanReadable(asset.assetType)}s`;\r\n listAssets[index].globalSearch.routerNavigationParameters.push('site', listAssets[index].countryCode, listAssets[index].slicAbbreviation);\r\n\r\n if (listAssets[index].equipmentStatus.toLowerCase() === 'onroad' || listAssets[index].equipmentStatus.toLowerCase() === 'onrail') {\r\n listAssets[index].globalSearch.routerNavigationParameters.push('inbound');\r\n } else if (listAssets[index].equipmentStatus.toLowerCase() === 'onproperty') {\r\n listAssets[index].globalSearch.routerNavigationParameters.push('onproperty');\r\n }\r\n\r\n listAssets[index].globalSearch.routerNavigationParameters.push(listAssets[index].assetType, listAssets[index].assetNumber);\r\n searchResultMap = this.addToSearchResultMap(asset.globalSearch, searchResultMap);\r\n }\r\n });\r\n return this.createSearchResultFromSearchResultMap(searchResultMap);\r\n }), catchError(error => from([])));\r\n } else {\r\n return from([]);\r\n }\r\n }\r\n\r\n public async locationObservableLogic(token: string): Promise {\r\n // add fields to assets for sorting and displaying in the typeahead\r\n let searchResultMap: SearchResultMap = new SearchResultMap();\r\n const locations = await this.tamGisService.getAllLocations();\r\n locations.forEach((location: Location) => {\r\n // if slic number or abbreviation matches token\r\n if (location.slic.toLowerCase().startsWith(token.toLowerCase()) || location.slicAbbreviation.toLowerCase().startsWith(token.toLowerCase())) {\r\n searchResultMap = this.addToSearchResultMap(location.globalSearch, searchResultMap);\r\n }\r\n });\r\n return this.createSearchResultFromSearchResultMap(searchResultMap);\r\n }\r\n\r\n public addToSearchResultMap(globalSearch: GlobalSearch, searchResultMap: SearchResultMap): SearchResultMap {\r\n if (searchResultMap[globalSearch.group]) {\r\n searchResultMap[globalSearch.group].push(globalSearch);\r\n } else {\r\n searchResultMap[globalSearch.group] = [];\r\n searchResultMap[globalSearch.group].push(globalSearch);\r\n }\r\n return searchResultMap;\r\n }\r\n\r\n public createSearchResultFromSearchResultMap(searchResultMap: SearchResultMap): SearchResults[] {\r\n const searchResultsAll: SearchResults[] = [];\r\n Object.keys(searchResultMap).forEach(key => {\r\n const searchResults = new SearchResults();\r\n searchResults.group = key;\r\n searchResults.searchItems = searchResultMap[key];\r\n searchResultsAll.push(searchResults);\r\n });\r\n return searchResultsAll;\r\n }\r\n\r\n public displayNameFunction(searchItem: GlobalSearch): string {\r\n return searchItem.name;\r\n }\r\n\r\n public selectItem(event: MatAutocompleteSelectedEvent) {\r\n this.globalSearchForm.controls.globalSearch.setValue('');\r\n this.inputRef.nativeElement.blur();\r\n this.ngZone.run(() => this.router.navigate([...event.option.value.routerNavigationParameters]));\r\n }\r\n\r\n public toggleFilter() {\r\n this.filterOpenChange.emit(!this.filterOpen);\r\n }\r\n}\r\n","
\r\n
\r\n \"Header_Icon\"\r\n \r\n \r\n \r\n \r\n {{globalSearch.name}}\r\n \r\n \r\n \r\n
\r\n \r\n
\r\n
\r\n \r\n
\r\n \r\n
\r\n \r\n
\r\n
\r\n
","export class GlobalSearch {\r\n addedIcon: string;\r\n group: string;\r\n name: string;\r\n routerNavigationParameters: string[];\r\n\r\n constructor() {\r\n this.addedIcon = null;\r\n this.group = null;\r\n this.name = null;\r\n this.routerNavigationParameters = [];\r\n }\r\n}\r\n","import { GlobalSearch } from './global-search';\r\n\r\nexport class SearchResultMap {\r\n [group: string]: (GlobalSearch)[];\r\n}\r\n","import { GlobalSearch } from './global-search';\r\n\r\nexport class SearchResults {\r\n group: string;\r\n searchItems: (GlobalSearch)[];\r\n\r\n constructor() { }\r\n}\r\n","import { Component, Inject } from '@angular/core';\r\nimport { MatDialogRef, MAT_DIALOG_DATA } from '@angular/material/dialog';\r\nimport { MatButtonToggleChange } from '@angular/material/button-toggle';\r\nimport { MsalService } from '@azure/msal-angular';\r\n\r\nimport { BingLayerOptions } from '../../../../../assets/types/leaflet-bing-layer/index';\r\nimport { Settings } from '../settings';\r\nimport { MapLargeLayerHandler } from '../../../map/maplarge-layers/maplarge-layers';\r\n\r\nimport { MapService } from '../../../../service/map/map.service';\r\n\r\n// global leaflet L module needed because of plugin\r\nimport * as L from 'leaflet';\r\n\r\n@Component({\r\n selector: 'app-settings-dialog',\r\n templateUrl: './settings-dialog.component.html',\r\n styleUrls: ['./settings-dialog.component.scss']\r\n})\r\nexport class SettingsDialogComponent {\r\n\r\n constructor(\r\n private msalService: MsalService,\r\n public mapService: MapService,\r\n private mapLargeLayerHandler: MapLargeLayerHandler,\r\n public dialogRef: MatDialogRef,\r\n @Inject(MAT_DIALOG_DATA) public data: Settings) {}\r\n\r\n public logoutUser(): void {\r\n this.msalService.logout();\r\n }\r\n\r\n public buttonToggleChange(change: MatButtonToggleChange): void {\r\n this.changeMapType(change.value as string);\r\n }\r\n\r\n public async changeMapType(mapType: string): Promise {\r\n const map = await this.mapService.getMapRef();\r\n this.mapService.getBingMapLayer().removeFrom(map);\r\n\r\n const options: BingLayerOptions = {\r\n bingMapsKey: 'AgQJKL-klfreXX4z_QO9PqBmHmpqrnUiGFQD3VsViL1sbq2CunIB0Y7_nxwOvA0W',\r\n imagerySet: mapType,\r\n };\r\n\r\n this.mapService.setMapType(mapType);\r\n const newBingLayer = L.tileLayer.bing(options).addTo(map);\r\n this.mapService.setBingMapLayer(newBingLayer);\r\n\r\n if (mapType === 'AerialWithLabelsOnDemand') {\r\n this.mapLargeLayerHandler.showHiResLayer();\r\n this.mapLargeLayerHandler.showSlicImageryLayer();\r\n } else {\r\n this.mapLargeLayerHandler.hideHiResLayer();\r\n this.mapLargeLayerHandler.hideSlicImageryLayer();\r\n }\r\n }\r\n}\r\n","

{{data.name}}

\r\n
{{data.gems}}
\r\n
\r\n
\r\n
\r\n \r\n Road\r\n Aerial\r\n \r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n \r\n
\r\n","import { Component, OnInit, OnChanges, Input } from '@angular/core';\r\nimport { MatDialog } from '@angular/material/dialog';\r\nimport { BingLayerOptions } from '../../../../assets/types/leaflet-bing-layer/index';\r\n\r\nimport { Settings } from './settings';\r\nimport { AccountInfo } from '@azure/msal-browser';\r\nimport { MapLargeLayerHandler } from '../../map/maplarge-layers/maplarge-layers';\r\n\r\nimport { MapService } from '../../../service/map/map.service';\r\n\r\nimport { SettingsDialogComponent } from './settings-dialog/settings-dialog.component';\r\n\r\n// global leaflet L module needed because of plugin\r\nimport * as L from 'leaflet';\r\n\r\n@Component({\r\n selector: 'app-settings',\r\n templateUrl: './settings.component.html',\r\n styleUrls: ['./settings.component.scss']\r\n})\r\nexport class SettingsComponent implements OnInit, OnChanges {\r\n @Input() user: AccountInfo;\r\n\r\n settings: Settings = new Settings();\r\n\r\n constructor(\r\n public dialog: MatDialog,\r\n private mapLargeLayerHandler: MapLargeLayerHandler,\r\n public mapService: MapService) { }\r\n\r\n public ngOnInit(): void {\r\n this.changeMapType();\r\n }\r\n\r\n public ngOnChanges(): void {\r\n if (this.user?.name) {\r\n this.settings.name = this.user.name;\r\n }\r\n if (this.user && this.user?.username) {\r\n this.settings.gems = this.user.username;\r\n }\r\n }\r\n\r\n public async changeMapType(): Promise {\r\n const map = await this.mapService.getMapRef();\r\n this.mapService.getBingMapLayer().removeFrom(map);\r\n\r\n const options: BingLayerOptions = {\r\n bingMapsKey: 'AgQJKL-klfreXX4z_QO9PqBmHmpqrnUiGFQD3VsViL1sbq2CunIB0Y7_nxwOvA0W',\r\n imagerySet: this.settings.mapType,\r\n };\r\n this.mapService.setMapType(this.settings.mapType);\r\n\r\n const newBingLayer = L.tileLayer.bing(options).addTo(map);\r\n this.mapService.setBingMapLayer(newBingLayer);\r\n\r\n if (this.settings.mapType === 'AerialWithLabelsOnDemand') {\r\n this.mapLargeLayerHandler.showHiResLayer();\r\n this.mapLargeLayerHandler.showSlicImageryLayer();\r\n } else {\r\n this.mapLargeLayerHandler.hideHiResLayer();\r\n this.mapLargeLayerHandler.hideSlicImageryLayer();\r\n }\r\n }\r\n\r\n public openDialog(): void {\r\n const dialogRef = this.dialog.open(SettingsDialogComponent, {\r\n width: '300px',\r\n data: this.settings\r\n });\r\n\r\n dialogRef.afterClosed().subscribe(result => {\r\n this.settings.mapType = this.mapService.getMapType();\r\n });\r\n }\r\n}\r\n","\r\n","export class Settings {\r\n name: string;\r\n gems: string;\r\n mapType: string;\r\n\r\n constructor() {\r\n this.name = '';\r\n this.gems = '';\r\n this.mapType = 'AerialWithLabelsOnDemand';\r\n }\r\n}\r\n","import { Component, OnInit } from '@angular/core';\r\nimport { Map as LeafLetMap, MapOptions, latLng } from 'leaflet';\r\n\r\nimport { BingLayerOptions } from '../../../assets/types/leaflet-bing-layer/index';\r\nimport { MapService } from '../../service/map/map.service';\r\nimport { MapLargeLoader } from '../../service/maplarge/maplarge-loader.service';\r\nimport { MapLargeService } from '../../service/maplarge/maplarge.service';\r\nimport { MapLargeLayerHandler } from '../map/maplarge-layers/maplarge-layers';\r\nimport { Environment } from '../../../app/common/environment/environment';\r\nimport { EnvironmentService } from '../../service/environment/environment.service';\r\n\r\n// global leaflet L module needed because of plugin\r\nimport * as L from 'leaflet';\r\n\r\n// Import the plugin libraries so they will modify L\r\nimport 'leaflet-bing-layer';\r\n\r\n\r\n@Component({\r\n selector: 'app-map',\r\n templateUrl: './map.component.html',\r\n styleUrls: ['./map.component.scss'],\r\n})\r\nexport class MapComponent implements OnInit {\r\n\r\n environment: Environment;\r\n leafletMap: LeafLetMap;\r\n options: MapOptions;\r\n mapLargeMap: ml.ui.map.Map = null;\r\n\r\n constructor(\r\n private mapRefService: MapService,\r\n private environmentService: EnvironmentService,\r\n private mapLargeLoader: MapLargeLoader,\r\n private mapLargeRefService: MapLargeService,\r\n private mapLargeLayerHandler: MapLargeLayerHandler) {\r\n this.environmentService.environmentPromise.then(environment => {\r\n this.environment = environment;\r\n if (this.environment.useMapLarge) {\r\n this.loadMapLargeApi();\r\n }\r\n });\r\n }\r\n\r\n public ngOnInit() {\r\n this.options = {\r\n attributionControl: false,\r\n zoom: 15,\r\n center: latLng(38.776130, -90.467298)\r\n };\r\n }\r\n\r\n public onMapReady(map: LeafLetMap) {\r\n // Do stuff with map\r\n this.leafletMap = map;\r\n const options: BingLayerOptions = {\r\n bingMapsKey: 'AgQJKL-klfreXX4z_QO9PqBmHmpqrnUiGFQD3VsViL1sbq2CunIB0Y7_nxwOvA0W',\r\n imagerySet: 'AerialWithLabelsOnDemand',\r\n minZoom: 4,\r\n };\r\n const bingLayer = L.tileLayer.bing(options).addTo(this.leafletMap);\r\n this.mapRefService.setBingMapLayer(bingLayer);\r\n L.control.attribution({ position: 'bottomleft' }).addTo(map);\r\n this.mapRefService.setMapRef(map);\r\n }\r\n\r\n public getMap(): LeafLetMap {\r\n return this.leafletMap;\r\n }\r\n\r\n public loadMapLargeApi() {\r\n this.mapLargeLoader.load()\r\n .then(() => {\r\n this.mapLargeMap = ml.map(this.getMap());\r\n this.mapLargeMap.mapOptions.maxZoom = 21;\r\n this.mapLargeMap.mapOptions.disableDriveTimes = true;\r\n this.mapLargeMap.mapOptions.disableReverseGeocoder = true;\r\n this.mapLargeRefService.setMapLargeRef(this.mapLargeMap);\r\n this.mapLargeLayerHandler.loadAllMapLargePerimeters(null);\r\n this.mapLargeLayerHandler.loadAllSlicImagery();\r\n });\r\n }\r\n}\r\n","\r\n\r\n","import { Injectable } from '@angular/core';\r\n\r\nimport { MapLargeFunctionsService } from '../../../service/maplarge/maplarge-functions.service';\r\nimport { MapLargeDataService } from '../../../service/maplarge/maplarge-data.service';\r\nimport { MapLargeService } from '../../../service/maplarge/maplarge.service';\r\nimport { MapLargeGeofenceLayers } from '../../../service/maplarge/maplarge-geofence-layers';\r\nimport { TamGisService } from '../../../service/webservice/tam-gis/tam-gis.service';\r\nimport { MapService } from '../../../service/map/map.service';\r\nimport { MapLargeBay } from '../../../model/maplarge/mapLargeBay';\r\nimport { MapLargeZone } from '../../../model/maplarge/mapLargeZone';\r\nimport { AssetInfo } from '../../../model/asset-info/asset-info';\r\nimport { OnPropertyOperations } from '../../../model/asset-info/on-property-operations';\r\nimport * as L from 'leaflet';\r\nimport { Polygon } from 'leaflet';\r\nimport { FrontEndExclusive } from '../../../model/asset-info/front-end-exclusive';\r\nimport { GpsCoordinate } from '../../../model/location/gps-coordinate';\r\nimport { Environment } from '../../../../app/common/environment/environment';\r\nimport { EnvironmentService } from '../../../service/environment/environment.service';\r\n\r\nclass ZoneCoords {\r\n [zoneId: string]: GpsCoordinate[];\r\n}\r\n\r\n@Injectable({ providedIn: 'root' })\r\nexport class MapLargeLayerHandler {\r\n environment: Environment;\r\n\r\n mapLargeMap: ml.ui.map.Map = null;\r\n mapLargeLayerImage: ml.ui.map.Layer;\r\n mapLargeLayerSlicImagery: ml.ui.map.Layer;\r\n mapLargeLayerBays: ml.ui.map.Layer;\r\n mapLargeLayerPerim: ml.ui.map.Layer;\r\n mapLargeLayerAllPerimeters: ml.ui.map.Layer;\r\n mapLargeLayerZones: ml.ui.map.Layer;\r\n mapLargeLayerLandmark: ml.ui.map.Layer;\r\n mapLargeLayerBayExits: ml.ui.map.Layer;\r\n mapLargeBays: MapLargeBay[] = null;\r\n mapLargeZones: MapLargeZone[] = null;\r\n mapLargeLayoutNumber = '';\r\n slottedBaysLayer: L.FeatureGroup = null;\r\n currentLocation = '';\r\n\r\n\r\n constructor(\r\n private mapLargeFunctionsService: MapLargeFunctionsService,\r\n private mapLargeGeofenceLayers: MapLargeGeofenceLayers,\r\n private environmentService: EnvironmentService,\r\n private mapLargeDataService: MapLargeDataService,\r\n private mapLargeRefService: MapLargeService,\r\n private mapService: MapService,\r\n public tamGisService: TamGisService,\r\n ) {\r\n this.environmentService.environmentPromise.then(environment => {\r\n this.environment = environment;\r\n });\r\n }\r\n\r\n public async loadAllMapLargePerimeters(currentLayout: string): Promise {\r\n if (this.environment.useMapLarge) {\r\n this.mapLargeMap = await this.mapLargeRefService.getMapLargeRef();\r\n if (this.mapLargeLayerAllPerimeters) {\r\n this.mapLargeLayerAllPerimeters.remove();\r\n this.mapLargeLayerAllPerimeters = null;\r\n }\r\n this.mapLargeGeofenceLayers.templatesReady.then(() => {\r\n let perimeterLayerJSON = null;\r\n if (currentLayout) {\r\n perimeterLayerJSON = this.mapLargeFunctionsService.getAllPerimetersOnPropertyMapLargeLayer(currentLayout);\r\n } else {\r\n perimeterLayerJSON = this.mapLargeFunctionsService.getAllPerimetersMapLargeLayer();\r\n }\r\n this.mapLargeLayerAllPerimeters = ml.layer(this.mapLargeMap, perimeterLayerJSON);\r\n this.mapLargeLayerAllPerimeters.show();\r\n });\r\n }\r\n }\r\n\r\n public async loadAllMapLargeLayers(countryCode: string, slicAbbreviation: string, mapType: string): Promise {\r\n if (this.environment.useMapLarge) {\r\n if (this.currentLocation !== `${countryCode}-${slicAbbreviation}`) {\r\n this.mapLargeMap = await this.mapLargeRefService.getMapLargeRef();\r\n this.clearMapLargeLayers();\r\n this.currentLocation = `${countryCode}-${slicAbbreviation}`;\r\n if (mapType === 'AerialWithLabelsOnDemand') {\r\n this.loadMapLargeHiResImageLayer();\r\n this.loadAllSlicImagery();\r\n }\r\n this.mapLargeGeofenceLayers.templatesReady.then(() => {\r\n this.mapLargeFunctionsService.getLayoutId(countryCode, slicAbbreviation).then(layoutId => {\r\n if (layoutId) {\r\n this.mapLargeLayoutNumber = layoutId.toString();\r\n this.loadAllMapLargePerimeters(this.mapLargeLayoutNumber);\r\n const perimeterLayerJSON = this.mapLargeFunctionsService.getMapLargeLayer(this.mapLargeLayoutNumber, 'perimeter', slicAbbreviation, countryCode, null);\r\n this.mapLargeLayerPerim = ml.layer(this.mapLargeMap, perimeterLayerJSON);\r\n this.zoomToPerimeter(perimeterLayerJSON);\r\n this.mapLargeLayerPerim.show();\r\n\r\n const landmarkLayerJSON = this.mapLargeFunctionsService.getMapLargeLayer(this.mapLargeLayoutNumber, 'landmark', slicAbbreviation, countryCode, null);\r\n this.mapLargeLayerLandmark = ml.layer(this.mapLargeMap, landmarkLayerJSON);\r\n this.mapLargeLayerLandmark.show();\r\n\r\n this.tamGisService.getMapLargeVersionKey(countryCode, slicAbbreviation).subscribe(versionKey => {\r\n if (versionKey) {\r\n const baysLayerJSON = this.mapLargeFunctionsService.getMapLargeLayer(this.mapLargeLayoutNumber, 'bays', slicAbbreviation, countryCode, versionKey);\r\n this.mapLargeLayerBays = ml.layer(this.mapLargeMap, baysLayerJSON);\r\n this.getMapLargeBayData(baysLayerJSON);\r\n this.mapLargeLayerBays.setZIndex('250');\r\n this.mapLargeLayerBays.show();\r\n\r\n const baysExitsLayerJSON = this.mapLargeFunctionsService.getMapLargeLayer(this.mapLargeLayoutNumber, 'bayexits', slicAbbreviation, countryCode, versionKey);\r\n this.mapLargeLayerBayExits = ml.layer(this.mapLargeMap, baysExitsLayerJSON);\r\n this.mapLargeLayerBayExits.show();\r\n\r\n const zonesLayerJSON = this.mapLargeFunctionsService.getMapLargeLayer(this.mapLargeLayoutNumber, 'zones', slicAbbreviation, countryCode, versionKey);\r\n this.mapLargeLayerZones = ml.layer(this.mapLargeMap, zonesLayerJSON);\r\n this.getMapLargeZoneData(zonesLayerJSON);\r\n this.mapLargeLayerZones.show();\r\n } else {\r\n console.log('Unable to get VersionKey from MapLarge. Layers cannot be loaded.');\r\n }\r\n });\r\n } else {\r\n console.log('Layout Not Found');\r\n }\r\n });\r\n });\r\n }\r\n }\r\n }\r\n\r\n public async updateSlottedAssets(assetInfo: AssetInfo[]): Promise[]> {\r\n if (this.environment.useMapLarge) {\r\n return new Promise((resolve) => {\r\n if (this.mapLargeBays && this.mapLargeZones) {\r\n resolve(this.updateSlottedBays(assetInfo));\r\n } else {\r\n const checkInterval = setInterval(() => {\r\n if (this.mapLargeBays && this.mapLargeZones) {\r\n clearInterval(checkInterval);\r\n resolve(this.updateSlottedBays(assetInfo));\r\n }\r\n }, 100);\r\n }\r\n });\r\n } else {\r\n return assetInfo;\r\n }\r\n }\r\n\r\n public clearMapLargeLayers(): void {\r\n this.loadAllMapLargePerimeters(null);\r\n this.emptyMapLargeLayer(this.mapLargeLayerPerim);\r\n this.emptyMapLargeLayer(this.mapLargeLayerLandmark);\r\n this.emptyMapLargeLayer(this.mapLargeLayerBays);\r\n this.emptyMapLargeLayer(this.mapLargeLayerBayExits);\r\n this.emptyMapLargeLayer(this.mapLargeLayerZones);\r\n this.emptyMapLargeLayer(this.mapLargeLayerImage);\r\n this.emptyMapLargeLayer(this.mapLargeLayerSlicImagery);\r\n this.mapLargeBays = null;\r\n this.mapLargeZones = null;\r\n this.removeBayLayer();\r\n this.currentLocation = '';\r\n }\r\n\r\n public async loadMapLargeHiResImageLayer(): Promise {\r\n // get mapref asyncronously so we know maplarge is actually available\r\n this.mapLargeMap = await this.mapLargeRefService.getMapLargeRef();\r\n this.mapLargeFunctionsService.loadMapLargeHiResLayer(this.mapLargeMap).then((layerReference: ml.ui.map.Layer) => {\r\n if (layerReference) {\r\n this.mapLargeLayerImage = layerReference;\r\n this.mapLargeLayerImage.show();\r\n }\r\n });\r\n }\r\n\r\n public async loadAllSlicImagery(): Promise {\r\n if (this.environment.useMapLarge) {\r\n this.mapLargeMap = await this.mapLargeRefService.getMapLargeRef();\r\n this.mapLargeGeofenceLayers.templatesReady.then(() => {\r\n let slicImageryLayerJSON = null;\r\n slicImageryLayerJSON = this.mapLargeGeofenceLayers.getSlicImagery();\r\n this.mapLargeLayerSlicImagery = ml.layer(this.mapLargeMap, slicImageryLayerJSON);\r\n this.mapLargeLayerSlicImagery.show();\r\n });\r\n }\r\n }\r\n\r\n public convertBayCoordsToGpsCoordArray(bayCoords: number[][]): GpsCoordinate[] {\r\n const gpsBayCoords: GpsCoordinate[] = [];\r\n for (const bayPoint of bayCoords) {\r\n gpsBayCoords.push(new GpsCoordinate(bayPoint[0], bayPoint[1]));\r\n }\r\n return gpsBayCoords;\r\n }\r\n\r\n public showHiResLayer(): void {\r\n if (this.mapLargeLayerImage) {\r\n this.mapLargeLayerImage.show();\r\n }\r\n }\r\n\r\n public showSlicImageryLayer(): void {\r\n if (this.mapLargeLayerSlicImagery) {\r\n this.mapLargeLayerSlicImagery.show();\r\n }\r\n }\r\n\r\n public hideHiResLayer(): void {\r\n if (this.mapLargeLayerImage) {\r\n this.mapLargeLayerImage.hide();\r\n }\r\n }\r\n\r\n public async hideSlicImageryLayer(): Promise {\r\n if (this.mapLargeLayerSlicImagery) {\r\n this.mapLargeLayerSlicImagery.hide();\r\n }\r\n }\r\n\r\n public findBayInZone(bayNumber: string): MapLargeZone {\r\n for (const mapLargeZone of this.mapLargeZones) {\r\n if (mapLargeZone.hasBayRange) {\r\n if (this.isBayInRange(bayNumber, mapLargeZone.startBay, mapLargeZone.endBay)) {\r\n return mapLargeZone;\r\n }\r\n }\r\n }\r\n return null;\r\n }\r\n\r\n private async getMapLargeBayData(baysLayerJSON: any): Promise {\r\n this.mapLargeBays = await this.mapLargeDataService.getMapLargeBaysData(baysLayerJSON);\r\n }\r\n\r\n private async getMapLargeZoneData(zonesLayerJSON: any): Promise {\r\n this.mapLargeZones = await this.mapLargeDataService.getMapLargeZonesData(zonesLayerJSON);\r\n }\r\n\r\n private async zoomToPerimeter(perimeterLayerJSON: any): Promise {\r\n const map = await this.mapService.getMapRef();\r\n this.mapLargeFunctionsService.getLayerData(perimeterLayerJSON).then(layerData => {\r\n const boundingBox = this.mapLargeFunctionsService.getPerimeterBounds(layerData);\r\n map.fitBounds(boundingBox);\r\n });\r\n }\r\n\r\n private emptyMapLargeLayer(layerToClear: ml.ui.map.Layer): void {\r\n if (layerToClear) {\r\n layerToClear.remove();\r\n }\r\n }\r\n\r\n private updateSlottedBays(assets: AssetInfo[]): AssetInfo[] {\r\n if (this.slottedBaysLayer) {\r\n for (const bay of this.mapLargeBays) {\r\n bay.occupied = 0;\r\n }\r\n }\r\n const bayPolygons = new L.FeatureGroup();\r\n if (assets) {\r\n const zoneCoords: ZoneCoords = {};\r\n for (const asset of assets) {\r\n if((!asset.frontEndExclusive?.emptyBay && asset.operations?.bayNumber && asset.operations.bayNumber.trim().length !== 0) ||\r\n (asset.equipment?.onSiteNotArrivedLocation?.bayNumber && asset.equipment.onSiteNotArrivedLocation.bayNumber.trim().length !== 0)){\r\n let bayNumber = \"\";\r\n if(asset.operations?.bayNumber){\r\n bayNumber = asset.operations.bayNumber.replace(/^0+/, '');\r\n } else if(asset.equipment?.onSiteNotArrivedLocation){\r\n bayNumber = asset.equipment.onSiteNotArrivedLocation.bayNumber.replace(/^0+/, '');\r\n }\r\n\r\n const associatedBay = this.searchMapLargeBays(bayNumber, 0, this.mapLargeBays.length - 1);\r\n if (!asset.frontEndExclusive) {\r\n asset.frontEndExclusive = new FrontEndExclusive();\r\n }\r\n if (associatedBay === undefined) {\r\n const zone = this.findBayInZone(bayNumber);\r\n if (zone === null) {\r\n asset.frontEndExclusive.undrawnBay = true;\r\n } else {\r\n asset.frontEndExclusive.slottedInZone = zone.zoneId;\r\n if (zoneCoords[zone.zoneId]) {\r\n asset.frontEndExclusive.bayInformation.bayCoordinates = zoneCoords[zone.zoneId];\r\n } else {\r\n const zoneGPSPointsArray = new Array();\r\n const shapeGPSArray = ml.wellknown.parse(zone.WKT).coordinates[0][0];\r\n for (const gpsPoint of shapeGPSArray) {\r\n zoneGPSPointsArray.push(new Array(gpsPoint[1], gpsPoint[0]));\r\n }\r\n const gpsCoordArray = this.convertBayCoordsToGpsCoordArray(zoneGPSPointsArray);\r\n zoneCoords[zone.zoneId] = gpsCoordArray;\r\n asset.frontEndExclusive.bayInformation.bayCoordinates = gpsCoordArray;\r\n }\r\n }\r\n } else {\r\n associatedBay.occupied += 1;\r\n asset.frontEndExclusive.slotted = true;\r\n asset.frontEndExclusive.bayInformation.bay = associatedBay;\r\n if (associatedBay.occupied === 1) {\r\n const polygon = this.createBayPolygon(associatedBay, asset);\r\n if (polygon) {\r\n bayPolygons.addLayer(polygon);\r\n }\r\n } else {\r\n this.updateBayPolygon(bayPolygons, associatedBay, asset);\r\n }\r\n\r\n }\r\n }\r\n }\r\n this.addBayLayerToMap(bayPolygons);\r\n }\r\n return assets.slice(0);\r\n }\r\n\r\n private searchMapLargeBays(bayNumber: string, searchStart: number, searchEnd: number): MapLargeBay {\r\n if (searchStart > searchEnd) {\r\n return undefined;\r\n }\r\n const searchMiddle = Math.floor((searchStart + searchEnd) / 2);\r\n const bayNumberAtMiddle = this.mapLargeBays[searchMiddle].BayNumber;\r\n if (bayNumberAtMiddle === bayNumber && this.mapLargeBays[searchMiddle].BayType !== 'Tractor Staging' &&\r\n this.mapLargeBays[searchMiddle].BayType !== 'Dolly Staging' && this.mapLargeBays[searchMiddle].BayType !== 'Chassis Staging') {\r\n return this.mapLargeBays[searchMiddle];\r\n }\r\n if (bayNumberAtMiddle > bayNumber) {\r\n return this.searchMapLargeBays(bayNumber, searchStart, searchMiddle - 1);\r\n } else {\r\n return this.searchMapLargeBays(bayNumber, searchMiddle + 1, searchEnd);\r\n }\r\n }\r\n\r\n\r\n\r\n private isBayInRange(bay: string, startBay: string, endBay: string): boolean {\r\n const bayNumber = Number(bay);\r\n if (bayNumber >= Number(startBay) && bayNumber <= Number(endBay)) {\r\n return true;\r\n }\r\n return false;\r\n }\r\n\r\n private createBayPolygon(bayInfo: MapLargeBay, assetInfo: AssetInfo): Polygon {\r\n let polygon = null;\r\n if (bayInfo.WKT) {\r\n const bayGPSPointsArray = new Array();\r\n const shapeGPSArray = ml.wellknown.parse(bayInfo.WKT).coordinates[0][0];\r\n for (const gpsPoint of shapeGPSArray) {\r\n bayGPSPointsArray.push(new Array(gpsPoint[1], gpsPoint[0]));\r\n }\r\n polygon = L.polygon(bayGPSPointsArray, this.setBayPolygonOptions(assetInfo));\r\n assetInfo.frontEndExclusive.bayInformation.bayCoordinates = this.convertBayCoordsToGpsCoordArray(bayGPSPointsArray);\r\n\r\n const metadata = {\r\n bayNumber: bayInfo.BayNumber,\r\n assetNumber: assetInfo.equipment.equipmentNumber,\r\n bayCoordinates: assetInfo.frontEndExclusive.bayInformation.bayCoordinates,\r\n };\r\n polygon.metadata = metadata;\r\n }\r\n return polygon;\r\n }\r\n\r\n private updateBayPolygon(bayPolygons: L.FeatureGroup, bayInfo: MapLargeBay, assetInfo: AssetInfo): void {\r\n if (bayPolygons) {\r\n const bays = bayPolygons.getLayers();\r\n for (const bay of bays) {\r\n const dataField = 'metadata';\r\n const bayMetadata = bay[dataField];\r\n if (bayMetadata && bayMetadata.bayNumber === bayInfo.BayNumber) {\r\n bayMetadata.assetNumber = bayMetadata.assetNumber + ',' + assetInfo.equipment.equipmentNumber;\r\n assetInfo.frontEndExclusive.bayInformation.bayCoordinates = bayMetadata.bayCoordinates;\r\n }\r\n }\r\n }\r\n }\r\n\r\n private async addBayLayerToMap(bayPolygons: L.FeatureGroup): Promise {\r\n const map = await this.mapService.getMapRef();\r\n if (this.slottedBaysLayer) {\r\n map.removeLayer(this.slottedBaysLayer);\r\n }\r\n this.slottedBaysLayer = bayPolygons;\r\n this.slottedBaysLayer.setZIndex(225);\r\n map.addLayer(this.slottedBaysLayer);\r\n }\r\n\r\n private async removeBayLayer(): Promise {\r\n const map = await this.mapService.getMapRef();\r\n if (this.slottedBaysLayer) {\r\n map.removeLayer(this.slottedBaysLayer);\r\n this.slottedBaysLayer = null;\r\n }\r\n }\r\n\r\n private setBayPolygonOptions(assetInfo: AssetInfo): L.PolylineOptions {\r\n const bayOutlineColor = '#212121';\r\n const bayStrokeThickness = 1;\r\n const bayFillColor = this.setBayPolygonColor(assetInfo);\r\n const polygonOptions = {\r\n color: bayOutlineColor,\r\n weight: bayStrokeThickness,\r\n fillColor: bayFillColor,\r\n fillOpacity: 1,\r\n pane: 'tilePane'\r\n };\r\n return polygonOptions;\r\n }\r\n\r\n private setBayPolygonColor(assetInfo: AssetInfo): string {\r\n let bayFillColor = '#FF0000';\r\n if (assetInfo.operations.loads) {\r\n for (const load of assetInfo.operations.loads) {\r\n if (load.primaryLoad) {\r\n switch (load.code) {\r\n case 'L':\r\n bayFillColor = '#46F0F0';\r\n break;\r\n case 'T':\r\n bayFillColor = '#F58231';\r\n break;\r\n case 'B':\r\n bayFillColor = '#F032E6';\r\n break;\r\n case 'U':\r\n bayFillColor = '#AAFFC3';\r\n break;\r\n case 'M':\r\n bayFillColor = '#D2F53C';\r\n break;\r\n case 'E':\r\n bayFillColor = '#FABEBE';\r\n break;\r\n default:\r\n bayFillColor = '#FF0000';\r\n break;\r\n }\r\n }\r\n }\r\n }\r\n return bayFillColor;\r\n }\r\n}\r\n","import { AssetInfo } from '../../model/asset-info/asset-info';\r\nimport { Operations } from '../../model/asset-info/operations';\r\nimport { OnPropertyOperations } from '../../model/asset-info/on-property-operations';\r\nimport { OnRoadOperations } from '../../model/asset-info/on-road-operations';\r\nimport { Load } from '../../model/asset-info/load';\r\nimport { Equipment } from '../../model/asset-info/equipment';\r\nimport { TrailerMapping, TractorMapping } from './summary/assets-map';\r\n\r\nexport class CommonFunctionsSite {\r\n constructor() { }\r\n\r\n public htmlDetermineConfidenceIcon(assetInformation: AssetInfo): { icon: string; text: string } {\r\n switch (assetInformation.equipment.esnConfidence) {\r\n case 'CONFIDENT':\r\n return {\r\n icon: 'uxd-wifi',\r\n text: 'Confident'\r\n };\r\n case 'CANNOT_DETERMINE':\r\n return {\r\n icon: 'uxd-wifi-unknown-issue',\r\n text: 'Cannot Determine'\r\n };\r\n case 'NOT_CONFIDENT':\r\n return {\r\n icon: 'uxd-wifi-error',\r\n text: 'Not Confident'\r\n };\r\n default:\r\n return {\r\n icon: null,\r\n text: null,\r\n };\r\n }\r\n }\r\n\r\n public determineAssetType(equipment: Equipment): string {\r\n switch (equipment.equipmentType) {\r\n case 'TL':\r\n let owner = '';\r\n if(equipment.leaseInfo?.Lessor){\r\n owner = equipment.leaseInfo.Lessor;\r\n } else {\r\n if(!equipment.onSiteNotArrivedLocation) {\r\n owner = 'UPS';\r\n }\r\n }\r\n return `${owner} ${equipment.trailer?.TypeCode ? equipment.trailer.TypeCode : ''}`;\r\n case 'TR':\r\n if (equipment.carGroupCode) {\r\n return this.determineTractorType(equipment.carGroupCode);\r\n } else {\r\n return 'Unknown';\r\n }\r\n case 'TD':\r\n return equipment.carGroupCode;\r\n case 'GS':\r\n return equipment.carGroupDesc;\r\n default:\r\n return '';\r\n }\r\n }\r\n\r\n public determineAssetCardIcon(assetInformation: AssetInfo): string {\r\n return this.determineAssetIcon(assetInformation, 'card');\r\n }\r\n\r\n public determineAssetDetailsIcon(assetInformation: AssetInfo): string {\r\n return this.determineAssetIcon(assetInformation, 'detail');\r\n }\r\n\r\n public isAssetEmpty(assetInformation: AssetInfo) {\r\n if (assetInformation.operations?.loads && this.determineIfNotEmpty(this.getPrimaryLoad(assetInformation.operations.loads))) {\r\n return false;\r\n } else {\r\n return true;\r\n }\r\n }\r\n public determineAssetIcon(assetInformation: AssetInfo, path: string): string {\r\n if (assetInformation.equipment.equipmentType) {\r\n if (assetInformation.equipment.equipmentType === 'TL') {\r\n if (assetInformation.equipment?.trailer?.TypeCode) {\r\n if (assetInformation.equipment?.trailer?.TypeCode === 'K') {\r\n return `assets/img/ui-icons/other-vehicles/${path}/Package-Car-Long.svg`;\r\n } else {\r\n return this.determineTrailerTypeIcon(this.determineTrailerType(assetInformation.equipment.trailer.TypeCode), path);\r\n }\r\n } else {\r\n if (assetInformation.equipment?.trailer?.Length && assetInformation.equipment.trailer.Length > 0) {\r\n if (assetInformation.equipment?.trailer?.Length > 28) {\r\n return `assets/img/ui-icons/trailers/${path}/Long.svg`;\r\n } else {\r\n return `assets/img/ui-icons/trailers/${path}/Short.svg`;\r\n }\r\n } else if (this.isAssetEmpty(assetInformation)) {\r\n return `assets/img/ui-icons/trailers/${path}/Trailer-Unknown.svg`;\r\n } else {\r\n return `assets/img/ui-icons/trailers/${path}/Trailer-Unknown-no-arrow.svg`;\r\n }\r\n }\r\n } else if (assetInformation.equipment.equipmentType === 'TR') {\r\n if (assetInformation.equipment.carGroupCode) {\r\n return this.determineTractorTypeIcon(this.determineTractorType(assetInformation.equipment.carGroupCode), path);\r\n } else {\r\n return `assets/img/ui-icons/tractors/${path}/Unknown Tractor.svg`;\r\n }\r\n\r\n } else if (assetInformation.equipment.equipmentType === 'TD') {\r\n return `assets/img/ui-icons/other-vehicles/${path}/Dolly.svg`;\r\n } else if (assetInformation.equipment.equipmentType === 'UNKNOWN') {\r\n return `assets/img/ui-icons/trailers/${path}/Trailer-Unknown.svg`; // default is an unknown trailer icon\r\n }\r\n }\r\n return `assets/img/ui-icons/trailers/${path}/Trailer-Unknown.svg`;\r\n }\r\n\r\n public determineAssetIconFontColor(equipment: Equipment): string {\r\n if (!equipment.equipmentType || equipment.equipmentType === 'UNKNOWN' || (equipment.equipmentType === 'TL' && !equipment.trailer?.TypeCode && !equipment.trailer?.Length)) {\r\n return ' package-totals-unknown';\r\n } else {\r\n return '';\r\n }\r\n }\r\n\r\n public determineTrailerType(typeCode: string): string {\r\n const trailerType = typeCode.trim();\r\n if (trailerType !== '' && TrailerMapping[trailerType] !== undefined) {\r\n return TrailerMapping[trailerType];\r\n }\r\n }\r\n\r\n public determineTrailerTypeIcon(trailerMapping: string, path: string): string {\r\n if (trailerMapping !== undefined) {\r\n return `assets/img/ui-icons/trailers/${path}/${trailerMapping}.svg`;\r\n }\r\n return `assets/img/ui-icons/tractors/${path}/Unknown Tractor.svg`;\r\n }\r\n\r\n public determineTractorType(equipCarGroupCode: string): string {\r\n const tractorType = equipCarGroupCode.trim();\r\n if (tractorType !== '' && TractorMapping[tractorType] !== undefined) {\r\n return TractorMapping[tractorType];\r\n }\r\n }\r\n\r\n public determineTractorTypeIcon(tractorMapping: string, path: string): string {\r\n if (tractorMapping !== undefined) {\r\n return `assets/img/ui-icons/tractors/${path}/${tractorMapping}.svg`;\r\n }\r\n return `assets/img/ui-icons/tractors/${path}/Unknown Tractor.svg`;\r\n }\r\n\r\n public assetTypeConverter(assetInformation: AssetInfo): string {\r\n return this.assetTypeToHumanReadable(assetInformation.equipment?.equipmentType);\r\n }\r\n\r\n public assetTypeToHumanReadable(assetType: string): string {\r\n switch (assetType) {\r\n case 'TL':\r\n return 'Trailer';\r\n case 'TD':\r\n return 'Dolly';\r\n case 'TR':\r\n return 'Tractor';\r\n default:\r\n return assetType;\r\n }\r\n }\r\n\r\n public getPrimaryLoad(loads: Load[]): Load {\r\n if (loads) {\r\n for (const load of loads) {\r\n if (load.primaryLoad) {\r\n return load;\r\n }\r\n }\r\n }\r\n return null;\r\n }\r\n\r\n public determineIfNotEmpty(primaryLoad: Load): boolean {\r\n return primaryLoad.code !== 'E';\r\n }\r\n\r\n public isOnPropertyOperations(asset: AssetInfo): asset is AssetInfo {\r\n return (asset as AssetInfo).operations?.bayNumber !== undefined;\r\n }\r\n\r\n public isOnPropertyOperationsBay(asset: AssetInfo): asset is AssetInfo {\r\n return (asset as AssetInfo).operations?.bayNumber !== undefined && (asset as AssetInfo).operations?.bayNumber !== null;\r\n }\r\n\r\n public isOnRoadOperations(asset: AssetInfo): asset is AssetInfo {\r\n return (asset as AssetInfo).operations?.jobNumber !== undefined;\r\n }\r\n\r\n public createUUID(): string {\r\n /* eslint-disable no-bitwise */\r\n /* eslint-disable one-var */\r\n return 'xxxxxxxx-xxxx-4xxx-yxxx-xxxxxxxxxxxx'.replace(/[xy]/g, (c) => {\r\n const r = Math.random() * 16 | 0,\r\n v = c === 'x' ? r : (r & 0x3 | 0x8);\r\n return v.toString(16);\r\n });\r\n /* eslint-enable no-bitwise */\r\n }\r\n\r\n public padLeft(text: string, length: number, padChar: string): string {\r\n if (text.length > 0) {\r\n return text.padStart(length, padChar);\r\n }\r\n return text;\r\n }\r\n\r\n public determineAlertIndicator(alertSeverity: string): string {\r\n switch (alertSeverity) {\r\n case 'Breakdown':\r\n return 'uxd-breakdown-delay';\r\n case 'Critical':\r\n return 'uxd-warning';\r\n case 'Important':\r\n return 'uxd-warning-alt';\r\n case 'Informational':\r\n return 'uxd-info-outline';\r\n }\r\n return '';\r\n }\r\n\r\n public determineAlertIndicatorColor(alertSeverity: string): string {\r\n switch (alertSeverity) {\r\n case 'Breakdown':\r\n case 'Critical':\r\n return 'ups-red';\r\n case 'Important':\r\n return 'ups-yellow';\r\n }\r\n return '';\r\n }\r\n\r\n public dunnageNeeded(asset: AssetInfo) {\r\n if (asset.operations?.loads && asset.operations?.trailerDunnage) {\r\n const primaryLoad = this.getPrimaryLoad(asset.operations?.loads);\r\n const dunnage = asset.operations.trailerDunnage;\r\n if ((dunnage.bags || dunnage.gaylord || dunnage.pallets || dunnage.hasDollies || dunnage.hasAutomotiveEquipment || dunnage.hasPEEquipment ||\r\n dunnage.hasHubEquipment || dunnage.trash) && !this.determineIfNotEmpty(primaryLoad)) {\r\n return true;\r\n }\r\n }\r\n return false;\r\n }\r\n\r\n public determineETAColor(asset: AssetInfo): string {\r\n if (this.isETASuspicious(asset)) {\r\n return 'eta-yellow';\r\n }\r\n return '';\r\n }\r\n\r\n public isETASuspicious(asset: AssetInfo) {\r\n if (asset?.operations?.legacyDataSources &&\r\n asset.operations.legacyDataSources?.indexOf('CMS') < 0 &&\r\n asset.operations.legacyDataSources?.indexOf('GPS') < 0 &&\r\n asset.operations.legacyDataSources?.indexOf('EDI') < 0) {\r\n return true;\r\n }\r\n return false;\r\n }\r\n\r\n public hasTagStatus(asset: AssetInfo): string {\r\n if (this.isOnPropertyOperations(asset) &&\r\n asset.operations?.tagStatus && asset.operations?.tagStatus !== '1') {\r\n if (asset.operations.tagStatus === 'R') {\r\n return 'red';\r\n }\r\n if (asset.operations.tagStatus === 'G') {\r\n return 'green';\r\n }\r\n return 'black';\r\n }\r\n return null;\r\n }\r\n}\r\n","import { Component, Input, OnInit, OnDestroy } from '@angular/core';\r\nimport { DatePipe } from '@angular/common';\r\nimport { Subject } from 'rxjs';\r\nimport { takeUntil } from 'rxjs/operators';\r\n\r\nimport { AssetInfo } from '../../../../model/asset-info/asset-info';\r\nimport { OnPropertyOperations } from '../../../..//model/asset-info/on-property-operations';\r\nimport { Location } from '../../../../model/location/location';\r\nimport { DunnageUpdate } from '../../../../model/dunnage/dunnage-update';\r\nimport { LocationConfirmation } from '../../../../model/reconciliation/location-confirmation';\r\nimport { EquipmentLocationReconcileStatus } from '../../../../model/reconciliation/equipment-location-reconcile-status';\r\nimport { ConfirmationStatus } from '../../../../model/location/confirmation-status';\r\n\r\nimport { AuthService } from '../../../../auth/auth.service';\r\nimport { CommonFunctionsSite } from '../../common-functions-site';\r\nimport { ReconciliationService } from '../../../../service/webservice/reconciliation/reconciliation.service';\r\nimport { ConfigurationService } from '../../../../service/webservice/configuration/configuration.service';\r\nimport { EnvironmentService } from '../../../../service/environment/environment.service';\r\nimport { HfcsService } from '../../../../service/webservice/hfcs/hfcs.service';\r\n\r\n\r\n@Component({\r\n selector: 'app-detail-action-buttons',\r\n templateUrl: './detail-action-buttons.component.html',\r\n styleUrls: ['./detail-action-buttons.component.scss']\r\n})\r\nexport class DetailActionButtonsComponent implements OnInit, OnDestroy {\r\n @Input() assetInformation: AssetInfo;\r\n @Input() currentLocation: Location;\r\n\r\n public commonFunctionsSite = new CommonFunctionsSite();\r\n public reconcileStatusTimeout: any;\r\n hfcsAgentEnabledLocation = false;\r\n confirmLocationEnabled = false;\r\n confirmedLocation = false;\r\n manualMoveBayEnabled = false;\r\n performMoveBay = false;\r\n performConfirmLocation = false;\r\n performEditDunnage = false;\r\n performClearDunnage = false;\r\n movementActivityEquipmentOid = '';\r\n defaultButtonColor = '#FFFFFF';\r\n activeButtonColor = '#2196F3';\r\n disabledButtonColor = '#c5c0c7';\r\n confirmButtonColor = this.defaultButtonColor;\r\n moveBayButtonColor = this.defaultButtonColor;\r\n editDunnageButtonColor = this.defaultButtonColor;\r\n clearDunnageButtonColor = this.defaultButtonColor;\r\n dunnageEditComplete = false;\r\n reconcileStatus: EquipmentLocationReconcileStatus;\r\n confirmationStatus: ConfirmationStatus;\r\n\r\n unsubscribe$ = new Subject();\r\n constructor(\r\n private authService: AuthService,\r\n private reconciliationService: ReconciliationService,\r\n private configurationService: ConfigurationService,\r\n private environmentService: EnvironmentService,\r\n private hfcsService: HfcsService,\r\n ) { }\r\n\r\n public ngOnInit(): void {\r\n this.environmentService.environmentPromise.then(() => {\r\n if (this.assetInformation?.operations) {\r\n if (this.assetInformation?.operations.bayNumber) {\r\n this.confirmLocationEnabled = true;\r\n if (this.assetInformation.equipment?.locationConfirmation?.locationConfirmationState === 'CONFIRMED') {\r\n this.confirmedLocation = true;\r\n }\r\n this.isHFCSAgentEnabledLocation();\r\n }\r\n }\r\n });\r\n }\r\n\r\n public clickActionButton(action: string) {\r\n if (!this.performConfirmLocation && !this.performMoveBay && !this.performClearDunnage && !this.performEditDunnage) {\r\n this.reconcileStatus = null;\r\n switch (action) {\r\n case 'confirmLocation':\r\n this.performConfirmLocation = true;\r\n this.performMoveBay = false;\r\n this.performClearDunnage = false;\r\n this.performEditDunnage = false;\r\n break;\r\n case 'moveBay':\r\n this.performMoveBay = true;\r\n this.performConfirmLocation = false;\r\n this.performClearDunnage = false;\r\n this.performEditDunnage = false;\r\n break;\r\n case 'editDunnage':\r\n this.performConfirmLocation = false;\r\n this.performMoveBay = false;\r\n this.performClearDunnage = false;\r\n this.performEditDunnage = true;\r\n break;\r\n case 'clearDunnage':\r\n this.performConfirmLocation = false;\r\n this.performMoveBay = false;\r\n this.performEditDunnage = false;\r\n this.performClearDunnage = true;\r\n break;\r\n }\r\n this.updateActionButtons();\r\n }\r\n }\r\n\r\n public closedConfirmLocation(locationConfirmation: LocationConfirmation) {\r\n this.performConfirmLocation = false;\r\n this.updateActionButtons();\r\n if (locationConfirmation) {\r\n const confirmationStatus = new ConfirmationStatus();\r\n const utcTimestampNow = new Date();\r\n const datePipe = new DatePipe('en-US');\r\n confirmationStatus.timestamp = datePipe.transform(utcTimestampNow, 'yyyy-MM-ddTHH:mm:ss.SSS') + 'Z';\r\n this.assetInformation.equipment.locationConfirmation = locationConfirmation;\r\n if (locationConfirmation.locationConfirmationState === 'CONFIRMED') {\r\n confirmationStatus.message = 'Confirmation Succeeded';\r\n confirmationStatus.description = `Asset ${this.assetInformation.equipment.equipmentNumber} at bay ${locationConfirmation.bayNumber} confirmed.`;\r\n this.confirmedLocation = true;\r\n } else if (locationConfirmation.locationConfirmationState === 'REJECTED') {\r\n confirmationStatus.message = 'Rejection Succeeded';\r\n confirmationStatus.description = `Asset ${this.assetInformation.equipment.equipmentNumber} at bay ${locationConfirmation.bayNumber} rejected.`;\r\n this.confirmedLocation = false;\r\n } else if (locationConfirmation.locationConfirmationState === 'UNKNOWN') {\r\n confirmationStatus.message = 'Unconfirm Succeeded';\r\n confirmationStatus.description = `Asset ${this.assetInformation.equipment.equipmentNumber} at bay ${locationConfirmation.bayNumber} unconfirmed.`;\r\n this.confirmedLocation = false;\r\n }\r\n this.confirmationStatus = confirmationStatus;\r\n }\r\n }\r\n\r\n public cancelClearDunnage() {\r\n this.performClearDunnage = false;\r\n this.performEditDunnage = false;\r\n this.updateActionButtons();\r\n }\r\n\r\n public closedMoveBay(outputAsset: AssetInfo) {\r\n this.performMoveBay = false;\r\n this.updateActionButtons();\r\n if (outputAsset) {\r\n this.submitConfirmLocation(outputAsset);\r\n }\r\n }\r\n\r\n public submitConfirmLocation(assetInformation: AssetInfo) {\r\n const userId = this.authService.getUserId();\r\n let lat = 0.0;\r\n let long = 0.0;\r\n if (assetInformation.equipment.gpsDetails) {\r\n lat = assetInformation.equipment.gpsDetails.latitude;\r\n long = assetInformation.equipment.gpsDetails.longitude;\r\n }\r\n if (!assetInformation.equipment.locationConfirmation) {\r\n assetInformation.equipment.locationConfirmation = new LocationConfirmation();\r\n }\r\n const newLocationConfirmation = new LocationConfirmation();\r\n newLocationConfirmation.userId = userId;\r\n newLocationConfirmation.locationConfirmationState = assetInformation.equipment.locationConfirmation.locationConfirmationState === 'CONFIRMED' ? 'UNKNOWN' : 'CONFIRMED';\r\n newLocationConfirmation.timestamp = assetInformation.equipment.locationConfirmation.timestamp;\r\n newLocationConfirmation.lastUpdateTimestamp = new Date().getTime();\r\n newLocationConfirmation.load = this.commonFunctionsSite.getPrimaryLoad(assetInformation.operations.loads);\r\n newLocationConfirmation.bayNumber = assetInformation?.operations?.bayNumber;\r\n newLocationConfirmation.countryCode = this.currentLocation.countryCode;\r\n newLocationConfirmation.slicAbbreviation = this.currentLocation.slicAbbreviation;\r\n newLocationConfirmation.latitude = lat;\r\n newLocationConfirmation.longitude = long;\r\n\r\n this.reconciliationService.updateAssetConfirmation(\r\n assetInformation.equipment.equipmentType, assetInformation.equipment.equipmentNumber, newLocationConfirmation).pipe(takeUntil(this.unsubscribe$))\r\n .subscribe(() => {}, (error) => {\r\n console.log('Confirm location request failed.', error);\r\n });\r\n }\r\n\r\n public moveBaySubmitted(oid: string) {\r\n this.getReconcileStatus(oid, true);\r\n }\r\n\r\n public checkReconciliationStatus() {\r\n if (this.assetInformation?.operations?.currentUPSActivity?.movementActivityEquipmentOid) {\r\n this.getReconcileStatus(this.assetInformation.operations.currentUPSActivity.movementActivityEquipmentOid, false);\r\n }\r\n }\r\n\r\n public getReconcileStatus(oid: string, wait: boolean) {\r\n this.reconcileStatus = null;\r\n this.reconciliationService.fetchLocationUpdateStatus(oid).pipe(takeUntil(this.unsubscribe$)).subscribe((reconcileStatus) => {\r\n if (reconcileStatus) {\r\n this.reconcileStatus = reconcileStatus;\r\n clearTimeout(this.reconcileStatusTimeout);\r\n } else if (wait) {\r\n this.reconcileStatusTimeout = setTimeout(function() {\r\n this.getReconcileStatus(oid, wait);\r\n }.bind(this), 15000);\r\n }\r\n }, (error) => {\r\n console.log(error);\r\n }\r\n );\r\n }\r\n\r\n\r\n public isHFCSAgentEnabledLocation() {\r\n this.reconciliationService\r\n .fetchHFCSAgentStatus(this.currentLocation.countryCode, this.currentLocation.slicAbbreviation)\r\n .pipe(takeUntil(this.unsubscribe$))\r\n .subscribe((data: boolean) => {\r\n if (data !== undefined) {\r\n this.hfcsAgentEnabledLocation = data;\r\n if (this.hfcsAgentEnabledLocation) {\r\n this.checkReconciliationStatus();\r\n this.isManualMoveBayEnabled();\r\n }\r\n }\r\n }, (error) => {\r\n console.log('Failed to get HFCS Agent status. Error: ' + error);\r\n });\r\n }\r\n\r\n public isManualMoveBayEnabled() {\r\n if (!this.assetInformation.operations?.bayNumber) {\r\n this.manualMoveBayEnabled = false;\r\n } else {\r\n let configurationSetting = 'manualRecMoveBayEnabled';\r\n if (this.assetInformation.equipment.equipmentType === 'TD') {\r\n configurationSetting = 'manualRecMoveDollyEnabled';\r\n }\r\n this.configurationService\r\n .isSiteConfigurationSettingEnabled(this.currentLocation.slicAbbreviation, configurationSetting)\r\n .pipe(takeUntil(this.unsubscribe$))\r\n .subscribe((data: boolean) => {\r\n if (data !== undefined) {\r\n this.manualMoveBayEnabled = data;\r\n }\r\n }, (error) => {\r\n console.log('Failed to get Manual Move Bay Enabled status. Error: ' + error);\r\n });\r\n }\r\n }\r\n\r\n public updateActionButtons() {\r\n if (this.performConfirmLocation) {\r\n this.confirmButtonColor = this.activeButtonColor;\r\n this.moveBayButtonColor = this.disabledButtonColor;\r\n this.editDunnageButtonColor = this.disabledButtonColor;\r\n this.clearDunnageButtonColor = this.disabledButtonColor;\r\n } else if (this.performMoveBay) {\r\n this.confirmButtonColor = this.disabledButtonColor;\r\n this.moveBayButtonColor = this.activeButtonColor;\r\n this.editDunnageButtonColor = this.disabledButtonColor;\r\n this.clearDunnageButtonColor = this.disabledButtonColor;\r\n } else if (this.performEditDunnage) {\r\n this.confirmButtonColor = this.disabledButtonColor;\r\n this.moveBayButtonColor = this.disabledButtonColor;\r\n this.editDunnageButtonColor = this.activeButtonColor;\r\n this.clearDunnageButtonColor = this.disabledButtonColor;\r\n } else if (this.performClearDunnage) {\r\n this.confirmButtonColor = this.disabledButtonColor;\r\n this.moveBayButtonColor = this.disabledButtonColor;\r\n this.editDunnageButtonColor = this.disabledButtonColor;\r\n this.clearDunnageButtonColor = this.activeButtonColor;\r\n } else {\r\n this.confirmButtonColor = this.defaultButtonColor;\r\n this.moveBayButtonColor = this.defaultButtonColor;\r\n this.editDunnageButtonColor = this.defaultButtonColor;\r\n this.clearDunnageButtonColor = this.defaultButtonColor;\r\n }\r\n }\r\n\r\n public sendDunnageUpdate(dunnageUpdate: DunnageUpdate): void {\r\n try {\r\n dunnageUpdate.userId = this.authService.getUserId();\r\n this.hfcsService.postDunnageCleanliness(this.currentLocation.countryCode, this.currentLocation.slicAbbreviation, dunnageUpdate).pipe(takeUntil(this.unsubscribe$)).subscribe(() => {\r\n this.dunnageEditComplete = true;\r\n });\r\n } catch (e) {\r\n console.log('An Unexpected Error Has Occured Posting Dunnage');\r\n }\r\n this.cancelClearDunnage();\r\n }\r\n\r\n public ngOnDestroy(): void {\r\n clearTimeout(this.reconcileStatusTimeout);\r\n this.unsubscribe$.next();\r\n this.unsubscribe$.complete();\r\n }\r\n\r\n}\r\n","\r\n
\r\n \r\n
\r\n
\r\n
\r\n\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n\r\n
\r\n\r\n
\r\n \r\n
\r\n\r\n
\r\n \r\n
\r\n\r\n
\r\n
\r\n \r\n
\r\n
\r\n {{confirmationStatus.timestamp | ldateShort}}\r\n {{confirmationStatus.timestamp | ltimeMilitary}}\r\n
\r\n
\r\n {{confirmationStatus.description}}\r\n
\r\n
\r\n\r\n
\r\n \r\n
\r\n\r\n
\r\n \r\n
\r\n\r\n
\r\n \r\n
\r\n\r\n
\r\n
Dunnage Update Sent
\r\n
\r\n\r\n
\r\n
","import { Component, Input, OnInit, AfterViewInit, OnDestroy, Output, EventEmitter } from '@angular/core';\r\nimport { AssetInfo } from '../../../../../model/asset-info/asset-info';\r\nimport { OnPropertyOperations } from '../../../../..//model/asset-info/on-property-operations';\r\nimport { LocationConfirmation } from '../../../../../model/reconciliation/location-confirmation';\r\nimport { ReconciliationService } from '../../../../../service/webservice/reconciliation/reconciliation.service';\r\nimport { AuthService } from '../../../../../auth/auth.service';\r\nimport { Subject } from 'rxjs';\r\nimport { takeUntil } from 'rxjs/operators';\r\nimport { CommonFunctionsSite } from '../../../common-functions-site';\r\nimport { Location } from '../../../../../model/location/location';\r\nimport { StUserProfileService } from '../../../../../service/webservice/st-user-profile/st-user-profile.service';\r\n\r\n@Component({\r\n selector: 'app-detail-action-confirm-location',\r\n templateUrl: './detail-action-confirm-location.component.html',\r\n styleUrls: ['./detail-action-confirm-location.component.scss', '../../detail.scss'],\r\n})\r\nexport class DetailActionConfirmLocationComponent implements OnInit, AfterViewInit, OnDestroy {\r\n @Input() assetInformation: AssetInfo;\r\n @Input() currentLocation: Location;\r\n @Output() closedConfirmLocation = new EventEmitter();\r\n\r\n public commonFunctionsSite = new CommonFunctionsSite();\r\n\r\n locationConfirmationMessage: string = null;\r\n locationConfirmationError: string = null;\r\n locationConfirmation: LocationConfirmation;\r\n disableSubmit = false;\r\n unsubscribe$ = new Subject();\r\n\r\n constructor(\r\n private reconciliationService: ReconciliationService,\r\n private authService: AuthService,\r\n private stUserProfileService: StUserProfileService\r\n ) { }\r\n\r\n public ngOnInit(): void {\r\n if (this.assetInformation?.equipment?.locationConfirmation) {\r\n this.locationConfirmation = this.assetInformation.equipment.locationConfirmation;\r\n }\r\n this.locationConfirmationMessage = this.setLocationConfirmationMessage();\r\n }\r\n\r\n public ngAfterViewInit(): void {\r\n if (document.getElementById('actions_secton')) {\r\n document.getElementById('actions_secton').scrollIntoView({ behavior: 'smooth', block: 'start', inline: 'start' });\r\n }\r\n }\r\n\r\n public setLocationConfirmationMessage() {\r\n if (this.assetInformation?.operations?.bayNumber) {\r\n if (this.assetInformation?.equipment?.locationConfirmation && this.assetInformation.equipment.locationConfirmation.locationConfirmationState === 'CONFIRMED') {\r\n return `Are you un-confirming that the asset is in Bay ${this.assetInformation.operations.bayNumber}?`;\r\n } else {\r\n return `Are you confirming that the asset is in Bay ${this.assetInformation.operations.bayNumber}?`;\r\n }\r\n } else {\r\n return 'The selected asset has no bay to confirm.';\r\n }\r\n }\r\n\r\n public submitConfirmLocation() {\r\n const userId = this.authService.getUserId();\r\n let lat = 0.0;\r\n let long = 0.0;\r\n if (this.assetInformation.equipment.gpsDetails) {\r\n lat = this.assetInformation.equipment.gpsDetails.latitude;\r\n long = this.assetInformation.equipment.gpsDetails.longitude;\r\n }\r\n if (!this.assetInformation.equipment.locationConfirmation) {\r\n this.assetInformation.equipment.locationConfirmation = new LocationConfirmation();\r\n }\r\n const newLocationConfirmation = new LocationConfirmation();\r\n newLocationConfirmation.userId = userId;\r\n newLocationConfirmation.locationConfirmationState = this.assetInformation.equipment.locationConfirmation.locationConfirmationState === 'CONFIRMED' ? 'UNKNOWN' : 'CONFIRMED';\r\n newLocationConfirmation.timestamp = this.assetInformation.equipment.locationConfirmation.timestamp;\r\n newLocationConfirmation.lastUpdateTimestamp = new Date().getTime();\r\n newLocationConfirmation.load = this.commonFunctionsSite.getPrimaryLoad(this.assetInformation.operations.loads);\r\n newLocationConfirmation.bayNumber = this.assetInformation?.operations?.bayNumber;\r\n newLocationConfirmation.countryCode = this.currentLocation.countryCode;\r\n newLocationConfirmation.slicAbbreviation = this.currentLocation.slicAbbreviation;\r\n newLocationConfirmation.latitude = lat;\r\n newLocationConfirmation.longitude = long;\r\n\r\n this.reconciliationService.updateAssetConfirmation(\r\n this.assetInformation.equipment.equipmentType, this.assetInformation.equipment.equipmentNumber, newLocationConfirmation).pipe(takeUntil(this.unsubscribe$))\r\n .subscribe(() => {\r\n const metric = this.stUserProfileService.createDefaultMetric(userId);\r\n switch (this.assetInformation.equipment.locationConfirmation.locationConfirmationState) {\r\n case 'CONFIRMED':\r\n metric.event = 'confirmLocation';\r\n break;\r\n case 'REJECTED':\r\n metric.event = 'rejectLocation';\r\n break;\r\n case 'UNKNOWN':\r\n metric.event = 'unconfirmLocation';\r\n break;\r\n }\r\n metric.customFields.countryCode = this.currentLocation.countryCode;\r\n metric.customFields.site = this.currentLocation.slicAbbreviation;\r\n metric.customFields.region = this.currentLocation.regionNumber;\r\n metric.customFields.district = this.currentLocation.districtNumber;\r\n\r\n // send information about this current login to our user profile service\r\n this.stUserProfileService.postEvent(metric);\r\n\r\n this.locationConfirmationMessage = null;\r\n this.locationConfirmation = newLocationConfirmation;\r\n this.closeLocationUpdate();\r\n }, (error) => {\r\n this.locationConfirmationError = 'Confirm location request failed.';\r\n console.log('Confirm location request failed.', error);\r\n });\r\n }\r\n\r\n public closeLocationUpdate() {\r\n this.closedConfirmLocation.emit(this.locationConfirmation);\r\n }\r\n\r\n public ngOnDestroy(): void {\r\n this.unsubscribe$.next();\r\n this.unsubscribe$.complete();\r\n }\r\n\r\n}\r\n","
\r\n
\r\n {{locationConfirmationMessage}}\r\n
\r\n
\r\n {{locationConfirmationError}}\r\n
\r\n
\r\n
\r\n \r\n \r\n
\r\n
\r\n
","import { Component, Input, OnInit, AfterViewInit, OnDestroy, Output, EventEmitter } from '@angular/core';\r\nimport { DatePipe } from '@angular/common';\r\nimport { Subject } from 'rxjs';\r\nimport { takeUntil } from 'rxjs/operators';\r\nimport { AssetInfo } from '../../../../../model/asset-info/asset-info';\r\nimport { OnPropertyOperations } from '../../../../..//model/asset-info/on-property-operations';\r\nimport { EquipmentLocationReconcile } from '../../../../../model/reconciliation/equipment-location-reconcile';\r\nimport { Location } from '../../../../../model/location/location';\r\nimport { ReconciliationService } from '../../../../../service/webservice/reconciliation/reconciliation.service';\r\nimport { StOnPropertyService } from '../../../../../service/webservice/st-on-property/st-on-property.service';\r\nimport { AuthService } from '../../../../../auth/auth.service';\r\nimport { CommonFunctionsSite } from '../../../common-functions-site';\r\nimport { StUserProfileService } from '../../../../../service/webservice/st-user-profile/st-user-profile.service';\r\n\r\n@Component({\r\n selector: 'app-detail-action-move-bay',\r\n templateUrl: './detail-action-move-bay.component.html',\r\n styleUrls: ['./detail-action-move-bay.component.scss', '../../detail.scss', '../../../site.scss'],\r\n})\r\n\r\nexport class DetailActionMoveBayComponent implements OnInit, AfterViewInit, OnDestroy {\r\n @Input() assetInformation: AssetInfo;\r\n @Input() currentLocation: Location;\r\n @Output() closedMoveBay = new EventEmitter>();\r\n @Output() moveBaySubmitted = new EventEmitter();\r\n\r\n moveBayStatus = '';\r\n baySuggestionMessage = '';\r\n selectedPosition = '';\r\n selectedBayNumber = '';\r\n movementActivityEquipmentOid = '';\r\n disableSubmit = true;\r\n hasMoveBayValidationError = false;\r\n bayInputFocused = false;\r\n promptingUser = false;\r\n\r\n public commonFunctionsSite = new CommonFunctionsSite();\r\n unsubscribe$ = new Subject();\r\n\r\n constructor(\r\n private reconciliationService: ReconciliationService,\r\n private authService: AuthService,\r\n private stOnPropertyService: StOnPropertyService,\r\n private stUserProfileService: StUserProfileService\r\n ) { }\r\n\r\n public ngOnInit(): void {\r\n this.findSuggestedBay(this.assetInformation);\r\n this.selectedPosition = 'F';\r\n }\r\n\r\n public ngAfterViewInit(): void {\r\n if (document.getElementById('actions_secton')) {\r\n document.getElementById('actions_secton').scrollIntoView({ behavior: 'smooth', block: 'start', inline: 'start' });\r\n }\r\n }\r\n\r\n public submitMoveBay() {\r\n if (this.promptingUser) {\r\n if (this.selectedBayNumber !== '') {\r\n this.saveMoveBay();\r\n }\r\n } else {\r\n this.promptingUser = true;\r\n }\r\n }\r\n\r\n public enterKeyBlur(e) {\r\n e.target.blur();\r\n }\r\n\r\n public markBayInputFocused(e){\r\n this.bayInputFocused = true;\r\n }\r\n\r\n public onBayChange(e) {\r\n this.selectedBayNumber = e.target.value.replace(/[^a-zA-Z0-9 ]/g, '');\r\n this.disableSubmit = this.selectedBayNumber === '';\r\n this.closeValidationError();\r\n }\r\n\r\n public saveMoveBay() {\r\n const locationReconcile = new EquipmentLocationReconcile();\r\n locationReconcile.userID = this.authService.getUserId();\r\n if (this.assetInformation.operations?.currentUPSActivity?.movementActivityEquipmentOid) {\r\n this.movementActivityEquipmentOid = this.assetInformation.operations.currentUPSActivity.movementActivityEquipmentOid;\r\n } else {\r\n this.movementActivityEquipmentOid = this.commonFunctionsSite.createUUID();\r\n console.log('Generated movementActivityEquipmentOid: ' + this.movementActivityEquipmentOid);\r\n }\r\n locationReconcile.movementActivityEquipmentOid = this.movementActivityEquipmentOid;\r\n locationReconcile.eqpNumber = this.assetInformation.equipment.equipmentNumber;\r\n locationReconcile.bayLocCountryCode = this.currentLocation.countryCode;\r\n locationReconcile.bayOrgAbbvName = this.currentLocation.slicAbbreviation;\r\n locationReconcile.eqpType = this.assetInformation.equipment.equipmentType;\r\n if (this.assetInformation.operations) {\r\n if (this.assetInformation.operations.bayPosition) {\r\n locationReconcile.fromBayPosition = this.assetInformation.operations.bayPosition.trim();\r\n } else {\r\n locationReconcile.fromBayPosition = '';\r\n }\r\n locationReconcile.fromBayNumber = this.commonFunctionsSite.padLeft(this.assetInformation.operations.bayNumber, 4, '0');\r\n }\r\n locationReconcile.toBayNumber = this.commonFunctionsSite.padLeft(this.selectedBayNumber, 4, '0');\r\n locationReconcile.toBayPosition = this.selectedPosition;\r\n locationReconcile.updateTypeCode = 'Move';\r\n const currentTimestamp = new Date();\r\n const utcTimestamp = new Date(currentTimestamp.getUTCFullYear(),\r\n currentTimestamp.getUTCMonth(),\r\n currentTimestamp.getUTCDate(),\r\n currentTimestamp.getUTCHours(),\r\n currentTimestamp.getUTCMinutes(),\r\n currentTimestamp.getUTCSeconds());\r\n const datePipe = new DatePipe('en-US');\r\n locationReconcile.statusTimestamp = datePipe.transform(utcTimestamp, 'yyyy-MM-ddTHH:mm:ss.SSS') + 'Z';\r\n this.moveBayStatus = '';\r\n this.disableSubmit = true;\r\n this.reconciliationService.submitLocationUpdate(locationReconcile, false)\r\n .pipe(takeUntil(this.unsubscribe$))\r\n .subscribe((data) => {\r\n this.moveBaySubmitted.emit(this.movementActivityEquipmentOid);\r\n this.moveBayStatus = '';\r\n this.disableSubmit = false;\r\n\r\n const userId = this.authService.getUserId();\r\n const metric = this.stUserProfileService.createDefaultMetric(userId);\r\n metric.event = 'moveBay';\r\n metric.customFields.countryCode = this.currentLocation.countryCode;\r\n metric.customFields.site = this.currentLocation.slicAbbreviation;\r\n metric.customFields.region = this.currentLocation.regionNumber;\r\n metric.customFields.district = this.currentLocation.districtNumber;\r\n\r\n // send information about this current login to our user profile service\r\n this.stUserProfileService.postEvent(metric);\r\n\r\n this.promptingUser = false;\r\n if (this.assetInformation.operations) {\r\n if (this.assetInformation.operations.bayPosition) {\r\n locationReconcile.fromBayPosition = this.assetInformation.operations.bayPosition.trim();\r\n } else {\r\n locationReconcile.fromBayPosition = '';\r\n }\r\n locationReconcile.fromBayNumber = this.commonFunctionsSite.padLeft(this.assetInformation.operations.bayNumber, 4, '0');\r\n }\r\n this.assetInformation.operations.bayNumber = this.commonFunctionsSite.padLeft(this.selectedBayNumber, 4, '0');\r\n this.assetInformation.operations.bayPosition = this.selectedPosition;\r\n this.closeMoveBay(this.assetInformation);\r\n }, (error) => {\r\n this.promptingUser = false;\r\n if (error.status === 422 && error.error) {\r\n this.moveBayStatus = error.error.message;\r\n this.hasMoveBayValidationError = true;\r\n } else {\r\n console.log('Failed to send Move Bay request. Error: ' + error);\r\n this.moveBayStatus = 'Failed to submit Move Bay request.';\r\n }\r\n this.disableSubmit = false;\r\n });\r\n }\r\n\r\n public findSuggestedBay(asset: AssetInfo) {\r\n if (!(asset.equipment && asset.equipment.esnNumber)) {\r\n this.noBaySuggestion();\r\n } else if (this.currentLocation && asset.equipment && asset.equipment.gpsDetails &&\r\n asset.equipment.gpsDetails.latitude && asset.equipment.gpsDetails.longitude) {\r\n let primaryLoadCode = null;\r\n if (asset.operations) {\r\n const primaryLoad = this.commonFunctionsSite.getPrimaryLoad(asset.operations.loads);\r\n if (primaryLoad) {\r\n primaryLoadCode = primaryLoad.code;\r\n }\r\n }\r\n this.baySuggestionMessage = 'Waiting for bay suggestion...';\r\n this.stOnPropertyService.fetchBayRecommendation(this.currentLocation, asset.equipment.gpsDetails.latitude,\r\n asset.equipment.gpsDetails.longitude, primaryLoadCode, asset.equipment.trailer.TypeCode, asset.equipment.equipmentType, asset.equipment.equipmentNumber\r\n ).pipe(takeUntil(this.unsubscribe$)).subscribe(bayRecommended => {\r\n if (bayRecommended) {\r\n if (!this.bayInputFocused) {\r\n // Don't replace input if they're already typing something\r\n this.selectedBayNumber = bayRecommended.bayNumber.toString();\r\n }\r\n this.baySuggestionMessage = `GPS data is suggesting that ${this.displayAssetType(asset.equipment.equipmentType)} ${asset.equipment.equipmentNumber} is in Bay ${bayRecommended.bayNumber}.`;\r\n if (bayRecommended.bayType && bayRecommended.bayType === 'OUTBOUND') {\r\n this.moveBayStatus = 'Suggested bay is an Outbound door. This move must be completed in HFCS.';\r\n } else {\r\n this.disableSubmit = false;\r\n }\r\n } else {\r\n this.noBaySuggestion();\r\n }\r\n }, (error) => {\r\n console.log(error);\r\n this.noBaySuggestion();\r\n });\r\n }\r\n }\r\n\r\n public noBaySuggestion(): void {\r\n this.baySuggestionMessage = 'No bay suggestion.';\r\n this.selectedBayNumber = '';\r\n }\r\n\r\n public closeMoveBay(confirmed: AssetInfo = undefined) {\r\n if (this.promptingUser) {\r\n this.promptingUser = false;\r\n } else {\r\n this.closedMoveBay.emit(confirmed);\r\n\r\n }\r\n }\r\n\r\n public closeValidationError() {\r\n this.hasMoveBayValidationError = false;\r\n this.moveBayStatus = '';\r\n }\r\n\r\n public ngOnDestroy(): void {\r\n this.unsubscribe$.next();\r\n this.unsubscribe$.complete();\r\n }\r\n\r\n public displayAssetType(equipmentType: string) {\r\n switch (equipmentType) {\r\n case 'TR':\r\n return 'Tractor';\r\n case 'TL':\r\n return 'Trailer';\r\n case 'TD':\r\n return 'Dolly';\r\n default:\r\n return 'Asset';\r\n }\r\n }\r\n\r\n}\r\n","
\r\n
\r\n Warning! Shift in progress.\r\n
\r\n
\r\n
\r\n {{baySuggestionMessage}}\r\n
\r\n
\r\n Moving from Bay {{assetInformation.operations.bayNumber}} to Bay {{selectedBayNumber}} {{selectedPosition}}.\r\n
\r\n
\r\n \r\n \r\n \r\n
\r\n \r\n Front\r\n Middle\r\n Rear\r\n \r\n
\r\n\r\n
\r\n \r\n
\r\n \r\n
\r\n
\r\n \r\n
\r\n
\r\n\r\n
\r\n You are confirming {{assetInformation.equipment.equipmentNumber}} is {{commonFunctionsSite.isAssetEmpty(assetInformation) ? \"empty\" : \"loaded\"}} and is moving from bay {{assetInformation.operations.bayNumber}} to bay {{selectedBayNumber}} {{selectedPosition}}\r\n
\r\n\r\n
\r\n
\r\n \r\n \r\n
\r\n
\r\n
","import { Component, Input, OnInit, OnChanges } from '@angular/core';\r\nimport { AssetInfo } from '../../../../../model/asset-info/asset-info';\r\nimport { OnPropertyOperations } from '../../../../..//model/asset-info/on-property-operations';\r\nimport { EquipmentLocationReconcileStatus } from '../../../../../model/reconciliation/equipment-location-reconcile-status';\r\n\r\n@Component({\r\n selector: 'app-detail-action-status',\r\n templateUrl: './detail-action-status.component.html',\r\n styleUrls: ['./detail-action-status.component.scss', '../../detail.scss'],\r\n})\r\nexport class DetailActionStatusComponent implements OnInit, OnChanges {\r\n @Input() assetInformation: AssetInfo;\r\n @Input() reconcileStatus: EquipmentLocationReconcileStatus;\r\n\r\n displayStatusMessage = false;\r\n\r\n constructor(\r\n\r\n ) { }\r\n\r\n public ngOnInit(): void {\r\n if (this.reconcileStatus) {\r\n this.placeReconcileHistory();\r\n }\r\n }\r\n\r\n public ngOnChanges(): void {\r\n this.placeReconcileHistory();\r\n }\r\n\r\n placeReconcileHistory() {\r\n if (this.assetInformation.operations?.bayNumber\r\n && this.reconcileStatus.fromBayNumber\r\n && this.assetInformation.operations.bayNumber.replace(/^0+/, '') === this.reconcileStatus.fromBayNumber.replace(/^0+/, '')) {\r\n this.displayStatusMessage = true;\r\n } else {\r\n this.displayStatusMessage = false;\r\n }\r\n }\r\n}\r\n","
\r\n
\r\n
\r\n \r\n
\r\n
\r\n {{reconcileStatus.statusTimestamp | ldateShort}}\r\n {{reconcileStatus.statusTimestamp | ltimeMilitary}}\r\n
\r\n
\r\n {{reconcileStatus.errorDescription}}\r\n
\r\n
\r\n
\r\n
\r\n \r\n
\r\n
\r\n {{reconcileStatus.statusTimestamp | ldateShort}}\r\n {{reconcileStatus.statusTimestamp | ltimeMilitary}}\r\n
\r\n
\r\n {{reconcileStatus.errorDescription}}\r\n
\r\n
\r\n
","import { Component, Input, Output, EventEmitter } from '@angular/core';\r\nimport { AssetInfo } from '../../../../../model/asset-info/asset-info';\r\nimport { OnPropertyOperations } from '../../../../../model/asset-info/on-property-operations';\r\nimport { DunnageUpdate } from '../../../../../model/dunnage/dunnage-update';\r\nimport { Location } from '../../../../../model/location/location';\r\n\r\nimport { AuthService } from '../../../../../auth/auth.service';\r\nimport { StUserProfileService } from '../../../../../service/webservice/st-user-profile/st-user-profile.service';\r\n\r\n@Component({\r\n selector: 'app-detail-clear-dunnage',\r\n templateUrl: './detail-clear-dunnage.component.html',\r\n styleUrls: ['./detail-clear-dunnage.component.scss', '../../detail.scss']\r\n})\r\nexport class DetailClearDunnageComponent {\r\n @Input() assetInformation: AssetInfo;\r\n @Input() currentLocation: Location;\r\n @Output() sendDunnageUpdate = new EventEmitter();\r\n @Output() cancelClearDunnage = new EventEmitter();\r\n\r\n constructor(private authService: AuthService, private stUserProfileService: StUserProfileService) { }\r\n\r\n public submitClearDunnage() {\r\n const dunnageUpdate = new DunnageUpdate();\r\n dunnageUpdate.trailerNumber = this.assetInformation.equipment.equipmentNumber;\r\n dunnageUpdate.bayNumber = this.assetInformation.operations.bayNumber;\r\n\r\n const userId = this.authService.getUserId();\r\n const metric = this.stUserProfileService.createDefaultMetric(userId);\r\n metric.event = 'clearDunnage';\r\n metric.customFields.countryCode = this.currentLocation.countryCode;\r\n metric.customFields.site = this.currentLocation.slicAbbreviation;\r\n metric.customFields.region = this.currentLocation.regionNumber;\r\n metric.customFields.district = this.currentLocation.districtNumber;\r\n\r\n // send information about this current login to our user profile service\r\n this.stUserProfileService.postEvent(metric);\r\n\r\n this.sendDunnageUpdate.emit(dunnageUpdate);\r\n }\r\n\r\n public closeClearDunnage() {\r\n this.cancelClearDunnage.emit();\r\n }\r\n}\r\n","
Are you sure you want to clear out the trailer dunnage?
\r\n
\r\n \r\n \r\n
\r\n","import { Component, Input, Output, EventEmitter } from '@angular/core';\r\nimport { Subject } from 'rxjs';\r\nimport { AssetInfo } from '../../../../../model/asset-info/asset-info';\r\nimport { OnPropertyOperations } from '../../../../../model/asset-info/on-property-operations';\r\nimport { DunnageUpdate } from '../../../../../model/dunnage/dunnage-update';\r\n\r\nimport { AuthService } from '../../../../../auth/auth.service';\r\nimport { StUserProfileService } from '../../../../../service/webservice/st-user-profile/st-user-profile.service';\r\n\r\n@Component({\r\n selector: 'app-detail-edit-dunnage',\r\n templateUrl: './detail-edit-dunnage.component.html',\r\n styleUrls: ['./detail-edit-dunnage.component.scss', '../../detail.scss']\r\n})\r\nexport class DetailEditDunnageComponent {\r\n @Input() assetInformation: AssetInfo;\r\n @Output() sendDunnageUpdate = new EventEmitter();\r\n @Output() cancelClearDunnage = new EventEmitter();\r\n\r\n dunnageUpdate: DunnageUpdate = new DunnageUpdate();\r\n\r\n unsubscribe$ = new Subject();\r\n\r\n constructor(private authService: AuthService, private stUserProfileService: StUserProfileService) { }\r\n\r\n public submitClearDunnage() {\r\n const dunnageUpdate = new DunnageUpdate();\r\n dunnageUpdate.trailerNumber = this.assetInformation.equipment.equipmentNumber;\r\n dunnageUpdate.bayNumber = this.assetInformation.operations.bayNumber;\r\n dunnageUpdate.hasTrash = this.dunnageUpdate.hasTrash;\r\n dunnageUpdate.hasAutomotiveEquipment = this.dunnageUpdate.hasAutomotiveEquipment;\r\n dunnageUpdate.hasPeEquipment = this.dunnageUpdate.hasPeEquipment;\r\n dunnageUpdate.hasHubEquipment = this.dunnageUpdate.hasHubEquipment;\r\n if (this.dunnageUpdate.hasGaylords === true) {\r\n dunnageUpdate.hasGaylords = true;\r\n dunnageUpdate.gaylordsVolumeQuantity = this.dunnageUpdate.gaylordsVolumeQuantity;\r\n }\r\n if (this.dunnageUpdate.hasBags === true) {\r\n dunnageUpdate.hasBags = true;\r\n dunnageUpdate.bagVolumeQuantity = this.dunnageUpdate.bagVolumeQuantity;\r\n }\r\n if (this.dunnageUpdate.hasPallets === true) {\r\n dunnageUpdate.hasPallets = true;\r\n dunnageUpdate.palletVolumeQuantity = this.dunnageUpdate.palletVolumeQuantity;\r\n }\r\n if (this.dunnageUpdate.hasDollies === true) {\r\n dunnageUpdate.hasDollies = true;\r\n dunnageUpdate.dolliesVolumeQuantity = this.dunnageUpdate.dolliesVolumeQuantity;\r\n }\r\n\r\n const userId = this.authService.getUserId();\r\n const metric = this.stUserProfileService.createDefaultMetric(userId);\r\n metric.event = 'editDunnage';\r\n\r\n // send information about this current login to our user profile service\r\n this.stUserProfileService.postEvent(metric);\r\n\r\n this.sendDunnageUpdate.emit(dunnageUpdate);\r\n }\r\n\r\n public onKeyDunnage(e: any, max: number, dunnageBool: string): void {\r\n const num = parseInt(e.target.value.replace(/[^0-9]/g, ''), 10);\r\n if (num > max) {\r\n e.target.value = max.toString();\r\n }\r\n if (num > 0) {\r\n this.dunnageUpdate[dunnageBool] = true;\r\n } else {\r\n this.dunnageUpdate[dunnageBool] = false;\r\n }\r\n }\r\n\r\n public enterKeyBlur(e) {\r\n e.target.blur();\r\n }\r\n\r\n public closeClearDunnage() {\r\n this.cancelClearDunnage.emit();\r\n }\r\n}\r\n","
\r\n
Gaylords
\r\n
Pallets
\r\n
Bags
%
\r\n
Dollies
\r\n
\r\n
Equipment
\r\n
PE
\r\n
Hub
\r\n
Automotive
\r\n
\r\n
Trash
\r\n
\r\n
\r\n \r\n \r\n
\r\n","import { Component, Input } from '@angular/core';\r\nimport { DriverAlert } from '../../../../model/asset-info/driver-alert';\r\nimport { CommonFunctionsSite } from '../../common-functions-site';\r\n\r\n@Component({\r\n selector: 'app-detail-driver-alert',\r\n templateUrl: './detail-driver-alert.component.html',\r\n styleUrls: ['../detail.scss', '../../site.scss'],\r\n})\r\nexport class DetailDriverAlertComponent {\r\n @Input() driverAlert: DriverAlert;\r\n public commonFunctionsSite = new CommonFunctionsSite();\r\n}\r\n","
\r\n
\r\n
\r\n \r\n {{driverAlert.alertDescription}}\r\n
\r\n
\r\n {{driverAlert.alertTime | ldateLong}}\r\n {{driverAlert.alertTime | ltimeMilitary}}\r\n
\r\n
\r\n
","import { Component, Input } from '@angular/core';\r\nimport { AssetInfo } from '../../../../model/asset-info/asset-info';\r\nimport { Operations } from '../../../../model/asset-info/operations';\r\nimport { CommonFunctionsSite } from '../../common-functions-site';\r\n\r\n@Component({\r\n selector: 'app-detail-equipment-status',\r\n templateUrl: './detail-equipment-status.html',\r\n styleUrls: ['./detail-equipment-status.scss', '../detail.scss', '../../site.scss'],\r\n})\r\nexport class DetailEquipmentStatusComponent {\r\n @Input() assetInformation: AssetInfo;\r\n public commonFunctionsSite = new CommonFunctionsSite();\r\n\r\n public getTaggedStatus(): string {\r\n if (this.commonFunctionsSite.isOnPropertyOperations(this.assetInformation)) {\r\n switch (this.assetInformation.operations.tagStatus) {\r\n case '0':\r\n return 'Deactivated';\r\n case '1':\r\n return 'Available';\r\n case 'C':\r\n return 'CPU';\r\n case 'G':\r\n return 'Green Tag';\r\n case 'J':\r\n return 'ADA';\r\n case 'L':\r\n return 'License';\r\n case 'P':\r\n return 'PMI';\r\n case 'R':\r\n return 'Red Tag';\r\n case 'S':\r\n return 'Outside Shop';\r\n case 'V':\r\n return 'Missing VIN';\r\n default:\r\n return 'Unknown Tag Status';\r\n }\r\n }\r\n }\r\n}\r\n","\r\n
\r\n \r\n
\r\n
\r\n
\r\n
\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n
\r\n
\r\n\r\n
\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n
\r\n
\r\n \r\n
\r\n \r\n \r\n \r\n\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n
\r\n
\r\n
Comments
\r\n {{assetInformation.equipment.status.comment}}\r\n
\r\n
\r\n
","import { Component, Input, OnChanges } from '@angular/core';\r\nimport { Subject } from 'rxjs';\r\nimport { takeUntil } from 'rxjs/operators';\r\nimport { ActivatedRoute } from '@angular/router';\r\nimport { AssetInfo } from '../../../../model/asset-info/asset-info';\r\nimport { Operations } from '../../../../model/asset-info/operations';\r\nimport { CommonFunctionsSite } from '../../common-functions-site';\r\nimport { GeometricFunctions } from '../../geometric-functions';\r\nimport { TamGisService } from '../../../../service/webservice/tam-gis/tam-gis.service';\r\nimport { OnPropertyOperations } from '../../../../model/asset-info/on-property-operations';\r\nimport { FrontEndExclusive } from '../../../../model/asset-info/front-end-exclusive';\r\n\r\n@Component({\r\n selector: 'app-detail-gps-summary',\r\n templateUrl: './detail-gps-summary.html',\r\n styleUrls: ['./detail-gps-summary.scss', '../detail.scss'],\r\n})\r\nexport class DetailGpsSummaryComponent implements OnChanges {\r\n @Input() assetInformation: AssetInfo;\r\n public commonFunctionsSite = new CommonFunctionsSite();\r\n public geometricFunctions = new GeometricFunctions();\r\n public unsubscribe$ = new Subject();\r\n\r\n constructor(\r\n public activatedRoute: ActivatedRoute,\r\n public tamGisService: TamGisService,\r\n ) { }\r\n\r\n public ngOnChanges(): void {\r\n // if we dont have bay information, we dont have distance from bay coming from a higher component\r\n if (!this.assetInformation.frontEndExclusive?.bayInformation) {\r\n this.getDistanceFromBay();\r\n }\r\n }\r\n\r\n // if the user loads detail on load we need to get distance in here\r\n public getDistanceFromBay(): void {\r\n const operations = this.assetInformation.operations as OnPropertyOperations;\r\n if (operations.bayNumber) {\r\n this.tamGisService.getDistanceFromBayAndLocation(this.activatedRoute.snapshot.params.countryCode, this.activatedRoute.snapshot.params.slicAbbr,\r\n operations.bayNumber, this.assetInformation.equipment.gpsDetails.latitude, this.assetInformation.equipment.gpsDetails.longitude)\r\n .pipe(takeUntil(this.unsubscribe$))\r\n .subscribe(distanceCalc => {\r\n if (!this.assetInformation.frontEndExclusive) {\r\n this.assetInformation.frontEndExclusive = new FrontEndExclusive();\r\n }\r\n this.assetInformation.frontEndExclusive.bayInformation.distanceFromBay = this.geometricFunctions.distanceFromBayConversion(distanceCalc * 3.28084);\r\n });\r\n }\r\n }\r\n}\r\n","\r\n
\r\n \r\n
\r\n
\r\n \r\n
GPS is {{assetInformation.frontEndExclusive.bayInformation.distanceFromBay}} from Bay
\r\n
\r\n
\r\n
\r\n \r\n \r\n \r\n \r\n \r\n \r\n
\r\n
\r\n
\r\n","import { Component, OnInit, OnDestroy } from '@angular/core';\r\nimport { ActivatedRoute } from '@angular/router';\r\nimport { Subject } from 'rxjs';\r\nimport { takeUntil } from 'rxjs/operators';\r\n\r\nimport { StInTransitService } from '../../../../service/webservice/st-in-transit/st-in-transit.service';\r\nimport { MapService } from '../../../../service/map/map.service';\r\nimport { ViewService } from '../../../../service/view/view.service';\r\nimport { latLng, Marker, icon } from 'leaflet';\r\n\r\nimport { AssetInfo } from '../../../../model/asset-info/asset-info';\r\nimport { Operations } from '../../../../model/asset-info/operations';\r\n\r\nimport { TrailerTypeMap } from '../detail-on-property/trailer-type-map';\r\n\r\n@Component({\r\n selector: 'app-detail-inbound',\r\n templateUrl: './detail-inbound.component.html',\r\n styleUrls: ['./detail-inbound.component.scss']\r\n})\r\nexport class DetailInboundComponent implements OnInit, OnDestroy {\r\n\r\n assetInformation: AssetInfo;\r\n unsubscribe$ = new Subject();\r\n\r\n assetMarker: Marker;\r\n\r\n constructor(\r\n private activatedRoute: ActivatedRoute,\r\n private inTransitService: StInTransitService,\r\n private mapService: MapService,\r\n private viewService: ViewService,\r\n ) { }\r\n\r\n public ngOnInit(): void {\r\n this.activatedRoute.params.pipe(takeUntil(this.unsubscribe$)).subscribe(params => {\r\n this.inTransitService.fetchInboundDetails(params.countryCode, params.slicAbbr, params.assetType, params.assetNumber).pipe(takeUntil(this.unsubscribe$)).subscribe(asset => {\r\n this.sendAssetToDetailView(asset);\r\n this.assetInformation = asset;\r\n\r\n if (this.assetInformation.equipment\r\n && this.assetInformation.equipment.gpsDetails\r\n && this.assetInformation.equipment.gpsDetails.latitude\r\n && this.assetInformation.equipment.gpsDetails.longitude\r\n && this.assetInformation.equipment.gpsDetails.latitude !== 0\r\n && this.assetInformation.equipment.gpsDetails.longitude !== 0) {\r\n this.placeAssetOnMap(this.assetInformation);\r\n }\r\n });\r\n });\r\n\r\n this.viewService.changeView('inbound');\r\n }\r\n\r\n public sendAssetToDetailView(asset: AssetInfo) {\r\n this.assetInformation = asset;\r\n\r\n if (this.assetInformation.equipment && this.assetInformation.equipment.gpsDetails &&\r\n this.assetInformation.equipment.gpsDetails.latitude && this.assetInformation.equipment.gpsDetails.longitude &&\r\n this.assetInformation.equipment.gpsDetails.latitude !== 0 && this.assetInformation.equipment.gpsDetails.longitude !== 0) {\r\n this.placeAssetOnMap(this.assetInformation);\r\n }\r\n }\r\n\r\n public async placeAssetOnMap(asset: AssetInfo) {\r\n const map = await this.mapService.getMapRef();\r\n if (this.assetMarker) {\r\n map.removeLayer(this.assetMarker);\r\n }\r\n const locationLatLng = latLng(asset.equipment.gpsDetails.latitude, asset.equipment.gpsDetails.longitude);\r\n\r\n this.assetMarker = new Marker(locationLatLng, {\r\n icon: icon({\r\n iconSize: [25, 25],\r\n iconAnchor: [13, 25],\r\n iconUrl: this.determineIconForAsset(asset)\r\n })});\r\n\r\n this.assetMarker.bindTooltip(asset.equipment.equipmentNumber, {\r\n permanent: true,\r\n direction: 'bottom'\r\n });\r\n\r\n map.addLayer(this.assetMarker);\r\n map.setView(locationLatLng, 19);\r\n }\r\n\r\n public determineIconForAsset(asset: AssetInfo): string {\r\n let trailerType = '';\r\n let equipmentType = '';\r\n if (asset.equipment?.trailer?.TypeCode) {\r\n trailerType = asset.equipment.trailer.TypeCode.trim();\r\n }\r\n if (asset.equipment?.equipmentType) {\r\n equipmentType = asset.equipment?.equipmentType;\r\n }\r\n\r\n switch (equipmentType) {\r\n case 'TR':\r\n return 'assets/svg/map-icons/asset-types/Tractor - On Property.svg';\r\n case 'TL':\r\n return this.determineTrailerTypeIconForAsset(trailerType);\r\n case 'TD':\r\n return 'assets/svg/map-icons/asset-types/Dolly - On Property.svg';\r\n case '4':\r\n return 'assets/svg/map-icons/asset-types/Train - On Property.svg';\r\n case '6':\r\n return 'assets/svg/map-icons/asset-types/Chassis - On Property.svg';\r\n default:\r\n return 'assets/svg/map-icons/asset-types/Unknown-Type - On Property.svg';\r\n }\r\n }\r\n\r\n\r\n public determineTrailerTypeIconForAsset(trailerType: string): string {\r\n if (TrailerTypeMap[trailerType] !== undefined) {\r\n return `assets/svg/map-icons/asset-types/${TrailerTypeMap[trailerType]} - On Property.svg`;\r\n } else {\r\n return 'assets/svg/map-icons/asset-types/Unknown-Type - On Property.svg';\r\n }\r\n }\r\n\r\n public async removeAssetFromMap() {\r\n const map = await this.mapService.getMapRef();\r\n map.removeLayer(this.assetMarker);\r\n }\r\n\r\n public ngOnDestroy(): void {\r\n this.unsubscribe$.next();\r\n this.unsubscribe$.complete();\r\n this.removeAssetFromMap();\r\n }\r\n\r\n}\r\n","\r\n","import { Component, Input } from '@angular/core';\r\nimport { AssetInfo } from '../../../../model/asset-info/asset-info';\r\nimport { OnRoadOperations } from '../../../../model/asset-info/on-road-operations';\r\n\r\n@Component({\r\n selector: 'app-detail-linked-equipment',\r\n templateUrl: './detail-linked-equipment.html',\r\n styleUrls: ['./detail-linked-equipment.scss'],\r\n})\r\nexport class DetailLinkedEquipmentComponent {\r\n @Input() linkedAssets: AssetInfo[];\r\n}\r\n","
\r\n
\r\n
\r\n
\r\n \r\n
\r\n
\r\n
","import { Component, OnChanges, Input } from '@angular/core';\r\n\r\nimport { AssetInfo } from '../../../../model/asset-info/asset-info';\r\nimport { Operations } from '../../../../model/asset-info/operations';\r\nimport { CommonFunctionsSite } from '../../common-functions-site';\r\n\r\n@Component({\r\n selector: 'app-detail-load-summary',\r\n templateUrl: './detail-load-summary.component.html',\r\n styleUrls: ['./detail-load-summary.component.scss', '../detail.scss'],\r\n})\r\nexport class DetailLoadSummaryComponent implements OnChanges {\r\n @Input() assetInformation: AssetInfo;\r\n\r\n loadServiceLevel = 'uxd-load-ground-alt';\r\n public commonFunctionsSite = new CommonFunctionsSite();\r\n\r\n public ngOnChanges(): void {\r\n this.determineServiceLevel();\r\n }\r\n\r\n public determineServiceLevel(): void {\r\n if (this.commonFunctionsSite.getPrimaryLoad(this.assetInformation.operations.loads)?.serviceLevel) {\r\n switch (this.commonFunctionsSite.getPrimaryLoad(this.assetInformation.operations.loads).serviceLevel) {\r\n case 'GROUND':\r\n this.loadServiceLevel = 'uxd-load-ground-alt';\r\n break;\r\n case 'NEXT_DAY':\r\n this.loadServiceLevel = 'uxd-load-1da-alt';\r\n break;\r\n case 'SECOND_DAY':\r\n this.loadServiceLevel = 'uxd-load-2da-alt';\r\n break;\r\n case 'THREE_DAY_SELECT':\r\n this.loadServiceLevel = 'uxd-load-3da-alt';\r\n break;\r\n case 'EAM':\r\n this.loadServiceLevel = 'uxd-load-eam';\r\n break;\r\n }\r\n }\r\n }\r\n\r\n public determineDunnageEquipment(): string {\r\n if (this.commonFunctionsSite.isOnPropertyOperations(this.assetInformation)) {\r\n if (this.assetInformation.operations.trailerDunnage?.hasAutomotiveEquipment || this.assetInformation.operations.trailerDunnage?.hasPEEquipment || this.assetInformation.operations.trailerDunnage?.hasHubEquipment) {\r\n if (this.assetInformation.operations.trailerDunnage.hasAutomotiveEquipment === true) {\r\n return 'Auto';\r\n } else if (this.assetInformation.operations.trailerDunnage.hasPEEquipment === true) {\r\n return 'PE';\r\n } else if (this.assetInformation.operations.trailerDunnage.hasHubEquipment === true) {\r\n return 'Hub';\r\n }\r\n }\r\n }\r\n return '';\r\n }\r\n}\r\n","\r\n
\r\n \r\n
\r\n
\r\n \r\n
\r\n
Gaylords
{{assetInformation.operations.trailerDunnage?.gaylordVolumeQuantity ? assetInformation.operations.trailerDunnage.gaylordVolumeQuantity : 0}}
\r\n
Pallets
{{assetInformation.operations.trailerDunnage?.palletVolume ? assetInformation.operations.trailerDunnage.palletVolume : 0}}
\r\n
Bags
{{assetInformation.operations.trailerDunnage?.bagVolume ? assetInformation.operations.trailerDunnage.bagVolume : 0}} %
\r\n
Dollies
{{assetInformation.operations.trailerDunnage?.dolliesVolumeQuantity ? assetInformation.operations.trailerDunnage.dolliesVolumeQuantity : 0}}
\r\n
Equipment
{{determineDunnageEquipment()}}
\r\n
Trash
\r\n
\r\n
\r\n
\r\n
\r\n
Create Date: {{commonFunctionsSite.getPrimaryLoad(assetInformation.operations?.loads)?.createDate | ldateLong}}
\r\n
Due Date: {{commonFunctionsSite.getPrimaryLoad(assetInformation.operations?.loads)?.unloadDate | ldateLong}}
\r\n
{{commonFunctionsSite.getPrimaryLoad(assetInformation.operations?.loads)?.originSlicAbbreviation}} {{commonFunctionsSite.getPrimaryLoad(assetInformation.operations?.loads)?.originSort}} {{commonFunctionsSite.getPrimaryLoad(assetInformation.operations?.loads)?.destinationSlicAbbreviation}} {{commonFunctionsSite.getPrimaryLoad(assetInformation.operations?.loads)?.destinationSort}}
\r\n
Load Code: {{commonFunctionsSite.getPrimaryLoad(assetInformation.operations?.loads)?.code}}
\r\n
{{commonFunctionsSite.getPrimaryLoad(assetInformation.operations?.loads)?.percentage}}% - {{commonFunctionsSite.getPrimaryLoad(assetInformation.operations?.loads)?.pieces}}
\r\n
Route Code: {{commonFunctionsSite.getPrimaryLoad(assetInformation.operations?.loads)?.routeCode}}
\r\n
\r\n
\r\n
\r\n","import { Component, OnInit, OnDestroy } from '@angular/core';\r\nimport { ActivatedRoute } from '@angular/router';\r\nimport { Subject } from 'rxjs';\r\nimport { takeUntil } from 'rxjs/operators';\r\n\r\nimport { StOnPropertyService } from '../../../../service/webservice/st-on-property/st-on-property.service';\r\nimport { MapService } from '../../../../service/map/map.service';\r\nimport { ViewService } from '../../../../service/view/view.service';\r\nimport { TamGisService } from '../../../../service/webservice/tam-gis/tam-gis.service';\r\nimport { RefreshService } from '../../../../service/refresh/refresh.service';\r\nimport { LatLng, latLng, Marker, icon, Polyline, polyline, latLngBounds, Map as LeafLetMap } from 'leaflet';\r\n\r\nimport { AssetInfo } from '../../../../model/asset-info/asset-info';\r\nimport { Operations } from '../../../../model/asset-info/operations';\r\nimport { OnPropertyOperations } from '../../../../model/asset-info/on-property-operations';\r\nimport { GpsCoordinate } from '../../../../model/location/gps-coordinate';\r\nimport { BayInformation } from '../../../../model/asset-info/bay-information';\r\n\r\nimport { TrailerTypeMap } from '../detail-on-property/trailer-type-map';\r\n\r\nimport { CommonFunctionsSite } from '../../../../component/site/common-functions-site';\r\nimport { GeometricFunctions } from '../../../../component/site/geometric-functions';\r\nimport { FrontEndExclusive } from 'src/app/model/asset-info/front-end-exclusive';\r\n\r\n@Component({\r\n selector: 'app-detail-on-property',\r\n templateUrl: './detail-on-property.component.html',\r\n styleUrls: ['./detail-on-property.component.scss'],\r\n})\r\nexport class DetailOnPropertyComponent implements OnInit, OnDestroy {\r\n\r\n commonFunctionsSite = new CommonFunctionsSite();\r\n geometricFunctions = new GeometricFunctions();\r\n assetInformation: AssetInfo;\r\n bayGps: GpsCoordinate;\r\n unsubscribe$ = new Subject();\r\n\r\n assetMarker: Marker;\r\n assetLine: Polyline;\r\n\r\n // we ideally only want to zoom once per detail view load, so once we do set this to false\r\n zoomNeeded = true;\r\n\r\n constructor(\r\n private activatedRoute: ActivatedRoute,\r\n private onPropertyService: StOnPropertyService,\r\n private mapService: MapService,\r\n private viewService: ViewService,\r\n private refreshService: RefreshService,\r\n private tamGisService: TamGisService,\r\n ) { }\r\n\r\n public ngOnInit(): void {\r\n let viewType = this.refreshService.getCurrentCacheViewType();\r\n if (!viewType) {\r\n viewType = 'onproperty';\r\n }\r\n this.activatedRoute.params.pipe(takeUntil(this.unsubscribe$)).subscribe(params => {\r\n this.onPropertyService.fetchOnPropertyDetails(params.countryCode, params.slicAbbr, params.assetType, params.assetNumber, viewType).pipe(takeUntil(this.unsubscribe$)).subscribe(asset => {\r\n this.sendAssetToDetailView(asset);\r\n this.assetInformation = asset;\r\n if (this.assetInformation.frontEndExclusive?.bayInformation?.bay) {\r\n this.bayGps = new GpsCoordinate(this.assetInformation.frontEndExclusive.bayInformation.bay.noseLatitude, this.assetInformation.frontEndExclusive.bayInformation.bay.noseLongitude);\r\n }\r\n\r\n if ((this.assetInformation.equipment\r\n && this.assetInformation.equipment.gpsDetails\r\n && this.assetInformation.equipment.gpsDetails.latitude\r\n && this.assetInformation.equipment.gpsDetails.longitude\r\n && this.assetInformation.equipment.gpsDetails.latitude !== 0\r\n && this.assetInformation.equipment.gpsDetails.longitude !== 0) ||\r\n (this.assetInformation.equipment?.onSiteNotArrivedLocation?.bayNumber)){\r\n if (this.assetInformation.equipment?.esnConfidence) {\r\n this.placeAssetOnMap(this.assetInformation);\r\n } else if (this.assetInformation?.frontEndExclusive?.bayInformation) {\r\n this.zoomToBay(this.assetInformation.frontEndExclusive.bayInformation);\r\n }\r\n }\r\n });\r\n });\r\n\r\n this.viewService.changeView(viewType);\r\n }\r\n\r\n public sendAssetToDetailView(asset: AssetInfo) {\r\n this.assetInformation = asset;\r\n\r\n if ((this.assetInformation.equipment && this.assetInformation.equipment.gpsDetails &&\r\n this.assetInformation.equipment.gpsDetails.latitude && this.assetInformation.equipment.gpsDetails.longitude &&\r\n this.assetInformation.equipment.gpsDetails.latitude !== 0 && this.assetInformation.equipment.gpsDetails.longitude !== 0) ||\r\n (this.assetInformation.equipment?.onSiteNotArrivedLocation?.bayNumber)){\r\n if (this.assetInformation.equipment?.esnConfidence) {\r\n this.placeAssetOnMap(this.assetInformation);\r\n } else if (this.assetInformation?.frontEndExclusive?.bayInformation) {\r\n this.zoomToBay(this.assetInformation.frontEndExclusive.bayInformation);\r\n }\r\n }\r\n }\r\n\r\n public async placeAssetOnMap(asset: AssetInfo) {\r\n const map = await this.mapService.getMapRef();\r\n if (this.assetMarker) {\r\n map.removeLayer(this.assetMarker);\r\n }\r\n const assetLatLng: LatLng = latLng(asset.equipment.gpsDetails.latitude, asset.equipment.gpsDetails.longitude);\r\n\r\n this.assetMarker = new Marker(assetLatLng, {\r\n icon: icon({\r\n iconSize: [25, 25],\r\n iconAnchor: [13, 25],\r\n iconUrl: this.determineIconForAsset(asset)\r\n })\r\n });\r\n\r\n this.assetMarker.bindTooltip(asset.equipment.equipmentNumber, {\r\n permanent: true,\r\n direction: 'bottom'\r\n });\r\n\r\n if ((this.commonFunctionsSite.isOnPropertyOperations(this.assetInformation) || this.assetInformation.equipment?.onSiteNotArrivedLocation?.bayNumber) && this.assetInformation.frontEndExclusive?.bayInformation?.bayCoordinates &&\r\n !this.geometricFunctions.isPointInsidePoly(this.geometricFunctions.latlngToGpsCoordinate(assetLatLng), this.assetInformation.frontEndExclusive.bayInformation.bayCoordinates)) {\r\n const closestPoint = this.geometricFunctions.findClosestPoint(this.geometricFunctions.latlngToGpsCoordinate(assetLatLng), this.assetInformation.frontEndExclusive.bayInformation.bayCoordinates);\r\n let bayNumber = \"\";\r\n if (this.assetInformation.equipment?.onSiteNotArrivedLocation?.bayNumber) {\r\n bayNumber = this.assetInformation.equipment.onSiteNotArrivedLocation.bayNumber;\r\n } else if (this.commonFunctionsSite.isOnPropertyOperations(this.assetInformation)) {\r\n bayNumber = this.assetInformation.operations.bayNumber;\r\n } \r\n \r\n this.createDistanceLineToBay(bayNumber, this.assetInformation, assetLatLng, latLng(closestPoint.latitude, closestPoint.longitude), map);\r\n } else {\r\n if (this.zoomNeeded) {\r\n map.setView(assetLatLng, 18);\r\n this.zoomNeeded = false;\r\n }\r\n }\r\n\r\n map.addLayer(this.assetMarker);\r\n }\r\n\r\n public async zoomToBay(bayInfo: BayInformation) {\r\n if (bayInfo.bay) {\r\n const map = await this.mapService.getMapRef();\r\n const bayLatLng: LatLng = latLng(bayInfo.bay.noseLatitude, bayInfo.bay.noseLongitude);\r\n map.setView(bayLatLng, 20);\r\n }\r\n }\r\n\r\n public determineIconForAsset(asset: AssetInfo): string {\r\n let trailerType = '';\r\n let equipmentType = '';\r\n if (asset.equipment?.trailer?.TypeCode) {\r\n trailerType = asset.equipment.trailer.TypeCode.trim();\r\n }\r\n if (asset.equipment?.equipmentType) {\r\n equipmentType = asset.equipment?.equipmentType;\r\n }\r\n\r\n switch (equipmentType) {\r\n case 'TR':\r\n return 'assets/svg/map-icons/asset-types/Tractor - On Property.svg';\r\n case 'TL':\r\n return this.determineTrailerTypeIconForAsset(trailerType);\r\n case 'TD':\r\n return 'assets/svg/map-icons/asset-types/Dolly - On Property.svg';\r\n case '4':\r\n return 'assets/svg/map-icons/asset-types/Train - On Property.svg';\r\n case '6':\r\n return 'assets/svg/map-icons/asset-types/Chassis - On Property.svg';\r\n default:\r\n return 'assets/svg/map-icons/asset-types/Unknown-Type - On Property.svg';\r\n }\r\n }\r\n\r\n\r\n public determineTrailerTypeIconForAsset(trailerType: string): string {\r\n if (TrailerTypeMap[trailerType] !== undefined) {\r\n return `assets/svg/map-icons/asset-types/${TrailerTypeMap[trailerType]} - On Property.svg`;\r\n } else {\r\n return 'assets/svg/map-icons/asset-types/Unknown-Type - On Property.svg';\r\n }\r\n }\r\n\r\n public createDistanceLine(asset: AssetInfo, assetLatLng: LatLng, bayLatLng: LatLng, map: LeafLetMap) {\r\n if (asset.operations?.bayNumber && assetLatLng && bayLatLng) {\r\n this.tamGisService.getDistanceFromBayAndLocation(this.activatedRoute.snapshot.params.countryCode, this.activatedRoute.snapshot.params.slicAbbr,\r\n asset.operations.bayNumber, asset.equipment.gpsDetails.latitude, asset.equipment.gpsDetails.longitude)\r\n .pipe(takeUntil(this.unsubscribe$))\r\n .subscribe(distanceCalc => {\r\n const distanceFromBay = this.geometricFunctions.distanceFromBayConversion(distanceCalc * 3.28084);\r\n\r\n if (this.assetLine) {\r\n map.removeLayer(this.assetLine);\r\n }\r\n this.assetLine = polyline([assetLatLng, bayLatLng], { color: 'red' });\r\n this.assetLine.bindTooltip(distanceFromBay, {\r\n permanent: true,\r\n direction: 'auto'\r\n });\r\n map.addLayer(this.assetLine);\r\n\r\n // if we have already zoomed we dont want to keep resetting the map everytime we refresh detail\r\n if (this.zoomNeeded) {\r\n const bounds = latLngBounds(assetLatLng, bayLatLng);\r\n map.fitBounds(bounds);\r\n this.zoomNeeded = false;\r\n }\r\n\r\n if (asset.frontEndExclusive) {\r\n asset.frontEndExclusive.bayInformation.distanceFromBay = distanceFromBay;\r\n } else {\r\n asset.frontEndExclusive = new FrontEndExclusive();\r\n asset.frontEndExclusive.bayInformation.distanceFromBay = distanceFromBay;\r\n }\r\n });\r\n } else {\r\n // if we have already zoomed we dont want to keep resetting the map everytime we refresh detail\r\n if (this.zoomNeeded) {\r\n map.setView(assetLatLng, 18);\r\n this.zoomNeeded = false;\r\n }\r\n }\r\n }\r\n\r\n public createDistanceLineToBay(bayNumber: string, asset: AssetInfo, assetLatLng: LatLng, bayLatLng: LatLng, map: LeafLetMap) {\r\n if (bayNumber && assetLatLng && bayLatLng) {\r\n this.tamGisService.getDistanceFromBayAndLocation(this.activatedRoute.snapshot.params.countryCode, this.activatedRoute.snapshot.params.slicAbbr,\r\n bayNumber, asset.equipment.gpsDetails.latitude, asset.equipment.gpsDetails.longitude)\r\n .pipe(takeUntil(this.unsubscribe$))\r\n .subscribe(distanceCalc => {\r\n const distanceFromBay = this.geometricFunctions.distanceFromBayConversion(distanceCalc * 3.28084);\r\n\r\n if (this.assetLine) {\r\n map.removeLayer(this.assetLine);\r\n }\r\n this.assetLine = polyline([assetLatLng, bayLatLng], { color: 'red' });\r\n this.assetLine.bindTooltip(distanceFromBay, {\r\n permanent: true,\r\n direction: 'auto'\r\n });\r\n map.addLayer(this.assetLine);\r\n\r\n // if we have already zoomed we dont want to keep resetting the map everytime we refresh detail\r\n if (this.zoomNeeded) {\r\n const bounds = latLngBounds(assetLatLng, bayLatLng);\r\n map.fitBounds(bounds);\r\n this.zoomNeeded = false;\r\n }\r\n\r\n if (asset.frontEndExclusive) {\r\n asset.frontEndExclusive.bayInformation.distanceFromBay = distanceFromBay;\r\n } else {\r\n asset.frontEndExclusive = new FrontEndExclusive();\r\n asset.frontEndExclusive.bayInformation.distanceFromBay = distanceFromBay;\r\n }\r\n });\r\n } else {\r\n // if we have already zoomed we dont want to keep resetting the map everytime we refresh detail\r\n if (this.zoomNeeded) {\r\n map.setView(assetLatLng, 18);\r\n this.zoomNeeded = false;\r\n }\r\n }\r\n }\r\n\r\n public async removeAssetFromMap() {\r\n const map = await this.mapService.getMapRef();\r\n if (this.assetMarker) {\r\n map.removeLayer(this.assetMarker);\r\n }\r\n if (this.assetLine) {\r\n map.removeLayer(this.assetLine);\r\n }\r\n }\r\n\r\n public ngOnDestroy(): void {\r\n this.unsubscribe$.next();\r\n this.unsubscribe$.complete();\r\n this.removeAssetFromMap();\r\n }\r\n}\r\n","","/* eslint-disable @typescript-eslint/naming-convention */\r\nexport const TrailerTypeMap = {\r\n A2: 'Short-A2' ,\r\n A3: 'Short-A3' ,\r\n A4: 'Long-A4' ,\r\n A5: 'Long-A5',\r\n I: 'Chassis',\r\n CHL: 'Chassis',\r\n MS: 'Long',\r\n C:  'C-Type',\r\n F: 'Short',\r\n FS: 'Short',\r\n Q: 'Long',\r\n QS: 'Long',\r\n R:  'Long',\r\n X:  'Long',\r\n X5S: 'Long',\r\n XS: 'Long',\r\n XX: 'Long',\r\n XXX: 'Long',\r\n BDS: 'Long',\r\n JS: 'Long',\r\n LC: 'ChassisWContainer-Long',\r\n N:  'Long',\r\n M: 'Long-Martrac',\r\n TMB: 'Long-Martrac',\r\n TMF: 'Long-Martrac',\r\n P: 'Drop-Long',\r\n BOC: 'Long',\r\n BOW: 'Long',\r\n K: 'Pkg-Car',\r\n PCT: 'Long',\r\n PMC: 'Long',\r\n PMS: 'Long',\r\n PPR: 'Long',\r\n PRT: 'Long',\r\n PSW: 'Long',\r\n PXT: 'Long',\r\n RBL: 'Rubus',\r\n E: 'Drop-Short',\r\n H: 'Drop-Short',\r\n L: 'Drop-Short',\r\n SC: 'ChassisWContainer-Short',\r\n SCS: 'ChassisWContainer-Short',\r\n W: 'Drop-Short',\r\n WW: 'Short',\r\n WWS: 'ChassisWContainer-Short',\r\n BAT: 'ChassisWContainer-Long',\r\n BBN: 'ChassisWContainer-Long',\r\n BCC: 'ChassisWContainer-Long',\r\n BCN: 'ChassisWContainer-Long',\r\n BCP: 'ChassisWContainer-Long',\r\n BCS: 'ChassisWContainer-Long',\r\n BCW: 'ChassisWContainer-Long',\r\n BDR: 'ChassisWContainer-Long',\r\n BFE: 'ChassisWContainer-Long',\r\n BIC: 'ChassisWContainer-Long',\r\n BKS: 'ChassisWContainer-Long',\r\n BMS: 'ChassisWContainer-Long',\r\n BNS: 'ChassisWContainer-Long',\r\n BRF: 'ChassisWContainer-Long',\r\n BSF: 'ChassisWContainer-Long',\r\n BSP: 'ChassisWContainer-Long',\r\n BUP: 'ChassisWContainer-Long',\r\n S: 'Drop-Long',\r\n XXS: 'Long',\r\n O: 'Drop-Long',\r\n OO: 'Long',\r\n Y:  'Long',\r\n YS: 'Long',\r\n YY: 'Long',\r\n YYS: 'Long',\r\n ZZZ: 'Long',\r\n Z:  'Long',\r\n ZZ: 'Long',\r\n ZZS: 'Long',\r\n};\r\n","import { Component, Input, OnChanges } from '@angular/core';\r\n\r\nimport { AssetInfo } from '../../../../model/asset-info/asset-info';\r\nimport { Operations } from '../../../../model/asset-info/operations';\r\nimport { PackageVolumeSummary } from '../../../../model/asset-info/package-volume-summary';\r\nimport { PackageVolumeByState } from '../../../../model/asset-info/package-volume-by-state';\r\nimport { CommonFunctionsSite } from '../../common-functions-site';\r\nimport { Load } from '../../../../model/asset-info/load';\r\n\r\nimport { BarWithTitle } from '../../../../common/bars/model/bar-with-title/bar-with-title';\r\nimport { StateMap } from './model/state-map/state-map';\r\n\r\n@Component({\r\n selector: 'app-detail-package-summary',\r\n templateUrl: './detail-package-summary.component.html',\r\n styleUrls: ['./detail-package-summary.component.scss', '../detail.scss', '../../site.scss'],\r\n})\r\nexport class DetailPackageSummaryComponent implements OnChanges {\r\n @Input() assetInformation: AssetInfo;\r\n public commonFunctionsSite = new CommonFunctionsSite();\r\n\r\n allPackageGroups: BarWithTitle[] = [];\r\n statePackageBreakdown: BarWithTitle[] = [];\r\n fullStatePackageBreakdown: BarWithTitle[] = [];\r\n\r\n bagsTotal = 0;\r\n containersTotal = 0;\r\n bagsBreakdown: BarWithTitle[] = [];\r\n containersBreakdown: BarWithTitle[] = [];\r\n\r\n loadPercent = 0;\r\n loadPieceCount = 0;\r\n\r\n showExpandAndRetractButton = false;\r\n statesCollapsed = true;\r\n\r\n\r\n public ngOnChanges() {\r\n this.statesCollapsed = true;\r\n if (this.assetInformation?.operations) {\r\n if (this.assetInformation.operations.loads) {\r\n const primaryLoad = this.commonFunctionsSite.getPrimaryLoad(this.assetInformation.operations.loads);\r\n this.createLoadPercentAndPieceCount(primaryLoad);\r\n }\r\n if (this.assetInformation.operations.packageVolumeSummary) {\r\n this.allPackageGroups = this.createLoadGroups(this.assetInformation.operations.packageVolumeSummary);\r\n this.bagsBreakdown = this.createBagsBreakdown(this.assetInformation.operations.packageVolumeSummary);\r\n this.containersBreakdown = this.createContainersBreakdown(this.assetInformation.operations.packageVolumeSummary);\r\n }\r\n if (this.assetInformation.operations.packageVolumeByState) {\r\n this.statePackageBreakdown = this.createStatePackageBreakdown(this.assetInformation.operations.packageVolumeByState);\r\n }\r\n }\r\n }\r\n\r\n public createLoadPercentAndPieceCount(primaryLoad: Load) {\r\n this.loadPercent = 0;\r\n this.loadPieceCount = 0;\r\n if (primaryLoad) {\r\n this.loadPercent = primaryLoad.percentage;\r\n this.loadPieceCount = primaryLoad.pieces;\r\n }\r\n }\r\n\r\n public createLoadGroups(packageVolumeSummary: PackageVolumeSummary): BarWithTitle[] {\r\n const allPackageGroups: BarWithTitle[] = [];\r\n this.allPackageGroups = [];\r\n\r\n const ground = new BarWithTitle();\r\n const oneDay = new BarWithTitle();\r\n const twoDay = new BarWithTitle();\r\n const threeDaySelect = new BarWithTitle();\r\n const saturday = new BarWithTitle();\r\n const critical = new BarWithTitle();\r\n const irregular = new BarWithTitle();\r\n\r\n if (packageVolumeSummary.groundPieces) {\r\n ground.pieces = packageVolumeSummary.groundPieces;\r\n ground.percent = Math.round(100 * (ground.pieces / packageVolumeSummary.totalPieces));\r\n ground.title = `Ground - ${ground.pieces}`;\r\n ground.barColor = '#60564c';\r\n allPackageGroups.push(ground);\r\n }\r\n\r\n if (packageVolumeSummary.oneDayPieces) {\r\n oneDay.pieces = packageVolumeSummary.oneDayPieces;\r\n oneDay.percent = Math.round(100 * (oneDay.pieces / packageVolumeSummary.totalPieces));\r\n oneDay.title = `1 Day (Next Day) - ${oneDay.pieces}`;\r\n oneDay.barColor = '#a43030';\r\n allPackageGroups.push(oneDay);\r\n }\r\n\r\n if (packageVolumeSummary.twoDayPieces) {\r\n twoDay.pieces = packageVolumeSummary.twoDayPieces;\r\n twoDay.percent = Math.round(100 * (twoDay.pieces / packageVolumeSummary.totalPieces));\r\n twoDay.title = `2 Day (2DA) - ${twoDay.pieces}`;\r\n twoDay.barColor = '#4a577a';\r\n allPackageGroups.push(twoDay);\r\n }\r\n\r\n if (packageVolumeSummary.threeDayPieces) {\r\n threeDaySelect.pieces = packageVolumeSummary.threeDayPieces;\r\n threeDaySelect.percent = Math.round(100 * (threeDaySelect.pieces / packageVolumeSummary.totalPieces));\r\n threeDaySelect.title = `3 Day (3DS) - ${threeDaySelect.pieces}`;\r\n threeDaySelect.barColor = '#b1642c';\r\n allPackageGroups.push(threeDaySelect);\r\n }\r\n\r\n if (packageVolumeSummary.saturdayPieces) {\r\n saturday.pieces = packageVolumeSummary.saturdayPieces;\r\n saturday.percent = Math.round(100 * (saturday.pieces / packageVolumeSummary.totalPieces));\r\n saturday.title = `Saturday - ${saturday.pieces}`;\r\n saturday.barColor = '#a43030';\r\n allPackageGroups.push(saturday);\r\n }\r\n\r\n if (packageVolumeSummary.ccPackages) {\r\n critical.pieces = packageVolumeSummary.ccPackages;\r\n critical.percent = Math.round(100 * (critical.pieces / packageVolumeSummary.totalPieces));\r\n critical.title = `Critical Health Care - ${critical.pieces}`;\r\n critical.barColor = '#a43030';\r\n allPackageGroups.push(critical);\r\n }\r\n\r\n if (packageVolumeSummary.irregularsPieces) {\r\n irregular.pieces = packageVolumeSummary.irregularsPieces;\r\n irregular.percent = Math.round(100 * (irregular.pieces / packageVolumeSummary.totalPieces));\r\n irregular.title = `Irregular - ${irregular.pieces}`;\r\n irregular.barColor = '#4a577a';\r\n allPackageGroups.push(irregular);\r\n }\r\n\r\n return allPackageGroups;\r\n }\r\n\r\n public createBagsBreakdown(packageVolumeSummary: PackageVolumeSummary): BarWithTitle[] {\r\n const bagsBreakdown: BarWithTitle[] = [];\r\n this.bagsBreakdown = [];\r\n this.bagsTotal = 0;\r\n\r\n this.bagsTotal = packageVolumeSummary.destBags + packageVolumeSummary.bypassBags;\r\n if (this.bagsTotal > 0) {\r\n const destinationBags = new BarWithTitle();\r\n const bypassBags = new BarWithTitle();\r\n\r\n destinationBags.barColor = 'darkgrey';\r\n destinationBags.pieces = packageVolumeSummary.destBags;\r\n destinationBags.percent = Math.round(100 * (packageVolumeSummary.destBags / this.bagsTotal));\r\n destinationBags.title = `Destination - ${destinationBags.pieces}`;\r\n bagsBreakdown.push(destinationBags);\r\n\r\n bypassBags.barColor = '#435578';\r\n bypassBags.pieces = packageVolumeSummary.bypassBags;\r\n bypassBags.percent = Math.round(100 * (packageVolumeSummary.bypassBags / this.bagsTotal));\r\n bypassBags.title = `Bypass - ${bypassBags.pieces}`;\r\n bagsBreakdown.push(bypassBags);\r\n }\r\n\r\n return bagsBreakdown;\r\n }\r\n\r\n public createContainersBreakdown(packageVolumeSummary: PackageVolumeSummary): BarWithTitle[] {\r\n const containersBreakdown: BarWithTitle[] = [];\r\n this.containersBreakdown = [];\r\n this.containersTotal = 0;\r\n\r\n this.containersTotal = packageVolumeSummary.destBagsPieces + packageVolumeSummary.bypassBagsPieces;\r\n if (this.containersTotal > 0) {\r\n const destinationContainers = new BarWithTitle();\r\n const bypassContainers = new BarWithTitle();\r\n\r\n destinationContainers.barColor = 'darkgrey';\r\n destinationContainers.pieces = packageVolumeSummary.destBagsPieces;\r\n destinationContainers.percent = Math.round(100 * (packageVolumeSummary.destBagsPieces / this.containersTotal));\r\n destinationContainers.title = `Destination - ${destinationContainers.pieces}`;\r\n containersBreakdown.push(destinationContainers);\r\n\r\n bypassContainers.barColor = '#435578';\r\n bypassContainers.pieces = packageVolumeSummary.bypassBagsPieces;\r\n bypassContainers.percent = Math.round(100 * (packageVolumeSummary.bypassBagsPieces / this.containersTotal));\r\n bypassContainers.title = `Bypass - ${bypassContainers.pieces}`;\r\n containersBreakdown.push(bypassContainers);\r\n }\r\n\r\n return containersBreakdown;\r\n }\r\n\r\n public createStatePackageBreakdown(packageVolumeByStates: PackageVolumeByState[]): BarWithTitle[] {\r\n this.showExpandAndRetractButton = false;\r\n this.fullStatePackageBreakdown = [];\r\n this.statePackageBreakdown = [];\r\n\r\n let allStates: BarWithTitle[] = [];\r\n for (const packageVolumeByState of packageVolumeByStates) {\r\n const state = new BarWithTitle();\r\n const stateTitle = StateMap[packageVolumeByState.state] !== undefined ? StateMap[packageVolumeByState.state] : packageVolumeByState.state;\r\n state.title = `${stateTitle} - ${packageVolumeByState.pieces} (${packageVolumeByState.percentage}%)`;\r\n state.percent = packageVolumeByState.percentage;\r\n state.pieces = packageVolumeByState.pieces;\r\n state.barColor = 'darkgrey';\r\n allStates.push(state);\r\n }\r\n\r\n // sort by pieces\r\n allStates = allStates.sort((a, b) => b.pieces - a.pieces);\r\n this.fullStatePackageBreakdown = allStates;\r\n if (allStates.length > 5) {\r\n this.showExpandAndRetractButton = true;\r\n return allStates.slice(0, 5);\r\n }\r\n return allStates;\r\n }\r\n\r\n public clickStateExpandAndRetract() {\r\n this.statesCollapsed = !this.statesCollapsed;\r\n if (this.statesCollapsed) {\r\n this.statePackageBreakdown = this.fullStatePackageBreakdown.slice(0, 5);\r\n } else {\r\n this.statePackageBreakdown = this.fullStatePackageBreakdown;\r\n }\r\n }\r\n}\r\n","\r\n
\r\n \r\n
\r\n
\r\n
0\" class=\"flex-fill-center large-text bold-text\">Load -
{{loadPercent}}%
{{loadPieceCount}}
\r\n
\r\n \r\n \r\n \r\n
\r\n
\r\n
0\" class=\"flex-fill-center bold-text\">Bags Total - {{bagsTotal}}
\r\n
0\" class=\"flex-column flex-fill-center body-item\">\r\n \r\n
\r\n
0\" class=\"flex-fill-center bold-text\">Containers Total - {{containersTotal}}
\r\n
0\" class=\"flex-column flex-fill-center body-item\">\r\n \r\n
\r\n
\r\n
0\" class=\"flex-fill-center bold-text\">State Distribution
\r\n
\r\n \r\n \r\n \r\n \r\n
\r\n
\r\n
","/* eslint-disable @typescript-eslint/naming-convention */\r\nexport const StateMap = {\r\n AZ: 'Arizona',\r\n AL: 'Alabama',\r\n AK: 'Alaska',\r\n AR: 'Arkansas',\r\n AS: 'American Samoa',\r\n CA: 'California',\r\n CO: 'Colorado',\r\n CT: 'Connecticut',\r\n DC: 'District of Columbia',\r\n DE: 'Delaware',\r\n FL: 'Florida',\r\n GA: 'Georgia',\r\n GU: 'Guam',\r\n HI: 'Hawaii',\r\n ID: 'Idaho',\r\n IL: 'Illinois',\r\n IN: 'Indiana',\r\n IA: 'Iowa',\r\n KS: 'Kansas',\r\n KY: 'Kentucky',\r\n LA: 'Louisiana',\r\n ME: 'Maine',\r\n MD: 'Maryland',\r\n MA: 'Massachusetts',\r\n MI: 'Michigan',\r\n MN: 'Minnesota',\r\n MS: 'Mississippi',\r\n MO: 'Missouri',\r\n MP: 'Northern Mariana Islands',\r\n MT: 'Montana',\r\n NA: 'N/A',\r\n NE: 'Nebraska',\r\n NV: 'Nevada',\r\n NH: 'New Hampshire',\r\n NJ: 'New Jersey',\r\n NM: 'New Mexico',\r\n NY: 'New York',\r\n NC: 'North Carolina',\r\n ND: 'North Dakota',\r\n OH: 'Ohio',\r\n OK: 'Oklahoma',\r\n OR: 'Oregon',\r\n PA: 'Pennsylvania',\r\n PR: 'Puerto Rico',\r\n 'PR, PR': 'Puerto Rico',\r\n RI: 'Rhode Island',\r\n SC: 'South Carolina',\r\n SD: 'South Dakota',\r\n TN: 'Tennessee',\r\n TX: 'Texas',\r\n UT: 'Utah',\r\n VT: 'Vermont',\r\n VA: 'Virginia',\r\n VI: 'U.S. Virgin Islands',\r\n WA: 'Washington',\r\n WV: 'West Virginia',\r\n WI: 'Wisconsin',\r\n WY: 'Wyoming',\r\n};\r\n","import { Component, Input, OnChanges } from '@angular/core';\r\nimport { AssetInfo } from '../../../../model/asset-info/asset-info';\r\nimport { OnPropertyOperations } from 'src/app/model/asset-info/on-property-operations';\r\n\r\n@Component({\r\n selector: 'app-detail-shift-activity',\r\n templateUrl: './detail-shift-activity.html',\r\n styleUrls: ['./detail-shift-activity.scss', '../detail.scss'],\r\n})\r\nexport class DetailShiftActivityComponent implements OnChanges {\r\n @Input() assetInformation: AssetInfo;\r\n public dispatchedTime: number = null;\r\n public statusInfo: {statusTime: number; statusType: string} = {\r\n statusTime: null,\r\n statusType: null\r\n };\r\n\r\n public ngOnChanges(): void {\r\n if (this.assetInformation.operations?.shiftCommActivities) {\r\n this.dispatchedTime = null;\r\n this.statusInfo = { statusTime: null, statusType: null };\r\n for (const activity of this.assetInformation.operations.shiftCommActivities) {\r\n const parsedInt: number = parseInt(activity.shiftStatusTimestamp, 10);\r\n switch (activity.shiftStatusCode) {\r\n case 'S':\r\n if (!this.dispatchedTime || this.dispatchedTime < parsedInt) {\r\n this.dispatchedTime = parsedInt;\r\n }\r\n break;\r\n case 'A':\r\n this.commonShiftStatusCheck(parsedInt, 'Acknowledge');\r\n break;\r\n case 'B':\r\n this.commonShiftStatusCheck(parsedInt, 'Begin');\r\n break;\r\n case 'C':\r\n this.commonShiftStatusCheck(parsedInt, 'Complete');\r\n break;\r\n case 'D':\r\n this.commonShiftStatusCheck(parsedInt, 'Delay');\r\n break;\r\n }\r\n }\r\n }\r\n }\r\n\r\n private commonShiftStatusCheck(parsedInt: number, statusType: string): void {\r\n if (!this.statusInfo.statusTime || this.statusInfo.statusTime < parsedInt) {\r\n this.statusInfo.statusTime = parsedInt;\r\n this.statusInfo.statusType = statusType;\r\n }\r\n }\r\n}\r\n","\r\n
\r\n \r\n
\r\n
\r\n
\r\n {{statusInfo.statusType === 'Complete' ? 'Moved From' : 'Moving From'}}\r\n
\r\n Bay {{assetInformation.operations.shiftActivity.fromBay}}\r\n \r\n Bay {{assetInformation.operations.shiftActivity.toBay}}\r\n
\r\n
\r\n
\r\n
\r\n
\r\n Dispatched
\r\n
\r\n {{dispatchedTime | ldateShort}}
\r\n {{dispatchedTime | ltimeMilitary}}\r\n
\r\n
\r\n \r\n
\r\n {{statusInfo.statusType}}
\r\n
\r\n {{statusInfo.statusTime | ldateShort}}
\r\n {{statusInfo.statusTime | ltimeMilitary}}\r\n
\r\n
\r\n
\r\n
\r\n
\r\n","import { Component } from '@angular/core';\r\n\r\n@Component({\r\n selector: 'app-detail-subsection',\r\n templateUrl: './detail-subsection.html',\r\n styleUrls: ['../detail.scss', './detail-subsection.scss'],\r\n})\r\nexport class DetailSubsectionComponent {\r\n public expanded = true;\r\n}\r\n","
\r\n \r\n \r\n
\r\n
\r\n \r\n
\r\n","import { Component, Input, OnInit, OnDestroy, OnChanges } from '@angular/core';\r\nimport { AssetInfo } from '../../../../../model/asset-info/asset-info';\r\nimport { OnRoadOperations } from '../../../../../model/asset-info/on-road-operations';\r\nimport { Load } from '../../../../../model/asset-info/load';\r\nimport { StInTransitService } from '../../../../../service/webservice/st-in-transit/st-in-transit.service';\r\n\r\nimport { CommonFunctionsSite } from '../../../common-functions-site';\r\nimport { takeUntil } from 'rxjs/operators';\r\nimport { Subject } from 'rxjs';\r\nimport { ActivatedRoute } from '@angular/router';\r\n\r\n@Component({\r\n selector: 'app-detail-summary-in-transit',\r\n templateUrl: './detail-summary-in-transit.component.html',\r\n styleUrls: ['./detail-summary-in-transit.component.scss', '../../../site.scss', '../../detail.scss']\r\n})\r\nexport class DetailSummaryInTransitComponent implements OnInit, OnChanges, OnDestroy {\r\n @Input() assetInformation: AssetInfo;\r\n public commonFunctionsSite = new CommonFunctionsSite();\r\n primaryLoad: Load;\r\n serviceLevel = '';\r\n public linkedAssets: AssetInfo[];\r\n unsubscribe$ = new Subject();\r\n\r\n constructor(\r\n private activatedRoute: ActivatedRoute,\r\n private stInTransitService: StInTransitService) { }\r\n\r\n public ngOnInit(): void {\r\n if (this.assetInformation.operations?.loads) {\r\n this.primaryLoad = this.commonFunctionsSite.getPrimaryLoad(this.assetInformation.operations.loads);\r\n if (this.primaryLoad) {\r\n this.serviceLevel = this.primaryLoad.serviceLevel;\r\n }\r\n }\r\n\r\n if (this.assetInformation.operations?.tractorOnly && this.assetInformation.operations?.hasLinkedAssets) {\r\n this.activatedRoute.params.pipe(takeUntil(this.unsubscribe$)).subscribe(params => {\r\n this.activatedRoute.url.pipe(takeUntil(this.unsubscribe$)).subscribe(urlSegment => {\r\n const viewType = urlSegment[2].path;\r\n if (!this.assetInformation.operations.jobDomicileLocationCountry) {\r\n this.assetInformation.operations.jobDomicileLocationCountry = params.countryCode;\r\n }\r\n this.stInTransitService.fetchJobEquipment(viewType,\r\n params.countryCode,\r\n params.slicAbbr,\r\n this.assetInformation.operations.jobDomicileLocationCountry,\r\n this.assetInformation.operations.jobDomicileLocationSlicAbbreviation,\r\n this.assetInformation.operations.jobNumber).pipe(takeUntil(this.unsubscribe$))\r\n .subscribe((assets: AssetInfo[]) => {\r\n if (assets?.length > 1) {\r\n this.linkedAssets = new Array();\r\n assets.forEach((asset: AssetInfo) => {\r\n if (asset.equipment?.equipmentType === 'TD') {\r\n this.linkedAssets.push(asset);\r\n }\r\n });\r\n }\r\n }, (error) => {\r\n console.error('Failed to get linked assets. Error: ' + error);\r\n });\r\n });\r\n });\r\n }\r\n }\r\n\r\n public ngOnChanges(): void {\r\n if (this.assetInformation.operations?.driverAlerts) {\r\n this.assetInformation.operations.driverAlerts = this.assetInformation.operations?.driverAlerts.sort((a, b) => {\r\n const dateA = new Date(a.alertTime).getTime();\r\n const dateB = new Date(b.alertTime).getTime();\r\n return dateA < dateB ? 1 : -1;\r\n });\r\n }\r\n }\r\n\r\n public ngOnDestroy(): void {\r\n this.unsubscribe$.next();\r\n this.unsubscribe$.complete();\r\n }\r\n}\r\n","
\r\n Job Number:
{{assetInformation.operations.jobNumber}}
\r\n
\r\n
\r\n
\r\n
{{primaryLoad.originSlicAbbreviation}} {{primaryLoad.originSort}}
\r\n
{{primaryLoad.createDate | ldateShort}}
\r\n
\r\n \r\n
\r\n
{{primaryLoad.destinationSlicAbbreviation}} {{primaryLoad.destinationSort}}
\r\n
{{primaryLoad.unloadDate | ldateShort}}
\r\n
\r\n
\r\n
\r\n \r\n \r\n \r\n \r\n \r\n
\r\n\r\n
\r\n
\r\n
\r\n
ETA
\r\n
\r\n {{assetInformation.operations.estimatedTimeOfArrival | ldateLong}}\r\n {{assetInformation.operations.estimatedTimeOfArrival | ltimeMilitary}}\r\n
\r\n
\r\n
\r\n\r\n
\r\n
\r\n
\r\n \r\n
\r\n
\r\n\r\n\r\n","import { Component, Input } from '@angular/core';\r\nimport { AssetInfo } from '../../../../../model/asset-info/asset-info';\r\nimport { OnPropertyOperations } from '../../../../../model/asset-info/on-property-operations';\r\n\r\n@Component({\r\n selector: 'app-detail-summary-on-property',\r\n templateUrl: './detail-summary-on-property.component.html',\r\n styleUrls: ['./detail-summary-on-property.component.scss' , '../../../detail/detail.scss']\r\n})\r\nexport class DetailSummaryOnPropertyComponent {\r\n @Input() assetInformation: AssetInfo;\r\n}\r\n","
\r\n
\r\n Current Location:\r\n
\r\n
\r\n {{assetInformation.operations?.lastActivity?.slicAbbreviation}} {{assetInformation.operations.bayNumber ? '- Bay ' + assetInformation.operations.bayNumber + (assetInformation.operations.bayPosition ? ' ' + assetInformation.operations.bayPosition : '') : ''}}\r\n \r\n
\r\n
\r\n
\r\n
\r\n Arrived On:\r\n
\r\n {{assetInformation.operations.onPropertyTimestamp | ldateLong}}\r\n
\r\n {{assetInformation.operations.onPropertyTimestamp | ltimeMilitary}} \r\n
\r\n
\r\n \r\n
\r\n
{{assetInformation.operations.daysOnProperty}}
\r\n
Days on
Property
\r\n
\r\n
\r\n","import { Component, Input, OnInit} from '@angular/core';\r\nimport { AssetInfo } from '../../../../model/asset-info/asset-info';\r\nimport { Operations } from '../../../../model/asset-info/operations';\r\nimport { OnPropertyOperations } from '../../../../model/asset-info/on-property-operations';\r\nimport { CommonFunctionsSite } from '../../common-functions-site';\r\n\r\n@Component({\r\n selector: 'app-detail-summary',\r\n templateUrl: './detail-summary.html',\r\n styleUrls: ['../detail.scss', './detail-summary.scss']\r\n})\r\nexport class DetailSummaryComponent implements OnInit {\r\n @Input() assetInformation: AssetInfo;\r\n public commonFunctionsSite = new CommonFunctionsSite();\r\n public isAssetTrailer: boolean = false;\r\n public loadPieces = '0';\r\n public loadPercentage = '0';\r\n public hasAsset = false;\r\n\r\n sharedTractorMappingAssetInfo = {\r\n HTCTX: 'SingleScrew-CNG',\r\n HTDAL: 'SingleScrew',\r\n HTD: 'SingleScrew',\r\n MTD: 'SingleScrew',\r\n HTDLS: 'SingleScrew',\r\n HTLG: 'SingleScrew-LNG',\r\n HTDA: 'SingleScrew',\r\n HTDR: 'SingleScrew',\r\n HTLGR: 'SingleScrew-LNG',\r\n HTCT: 'DoubleScrew-CNG',\r\n HTLGT: 'DoubleScrew-LNG',\r\n HTLT: 'DoubleScrew-LNG',\r\n HTDAT: 'DoubleScrew',\r\n HTDT: 'DoubleScrew',\r\n HDTSR: 'Sleeper-DoubleScrew',\r\n HDTSL: 'Sleeper-DoubleScrew',\r\n HDTS: 'Sleeper-DoubleScrew',\r\n HDTSF: 'Sleeper-DoubleScrew',\r\n HDTSS: 'SingleScrew'\r\n };\r\n\r\n public ngOnInit() {\r\n if (this.assetInformation.equipment.equipmentType === 'TL') {\r\n if (!((this.assetInformation.equipment.trailer?.TypeCode === 'CHL' || this.assetInformation.equipment.trailer?.TypeCode === 'CHS'))) {\r\n console.log(\"eT\" + this.assetInformation.equipment.equipmentType + \" typeCode\" + this.assetInformation.equipment.trailer?.TypeCode);\r\n this.isAssetTrailer = true;\r\n this.loadPieces = '0';\r\n this.loadPercentage = '0';\r\n const primaryLoad = this.commonFunctionsSite.getPrimaryLoad(this.assetInformation.operations?.loads);\r\n if (primaryLoad) {\r\n if (primaryLoad.pieces) {\r\n this.loadPieces = '' + primaryLoad.pieces;\r\n }\r\n if (primaryLoad.percentage) {\r\n this.loadPercentage = '' + primaryLoad.percentage;\r\n }\r\n }\r\n console.log(\"eT... \" + this.loadPieces + \" - \" + this.loadPercentage + \" - \" + this.isAssetTrailer);\r\n }\r\n }\r\n }\r\n\r\n public produceEquipmentTypeCode() : string {\r\n if(this.assetInformation.equipment.equipmentType === 'TL' || this.assetInformation.equipment.equipmentType === 'TRAILER') {\r\n if (typeof(this.assetInformation.equipment.trailer) !== \"undefined\" && this.assetInformation.equipment.trailer !== null) {\r\n if (typeof(this.assetInformation.equipment.trailer.TypeCode) != \"undefined\" && this.assetInformation.equipment.trailer.TypeCode !== null) {\r\n return this.assetInformation.equipment.trailer.TypeCode;\r\n }\r\n }\r\n }else if(this.assetInformation.equipment.equipmentType === 'TR' || this.assetInformation.equipment.equipmentType === 'TRACTOR') {\r\n if (typeof(this.assetInformation.equipment.carGroupCode) !== \"undefined\" && this.assetInformation.equipment.carGroupCode !== null &&\r\n this.sharedTractorMappingAssetInfo[this.assetInformation.equipment.carGroupCode] !== undefined) {\r\n return this.sharedTractorMappingAssetInfo[this.assetInformation.equipment.carGroupCode];\r\n }else {\r\n return \"Unknown-Tractor\";\r\n }\r\n }else if(this.assetInformation.equipment.equipmentType === 'DL' || this.assetInformation.equipment.equipmentType === 'DOLLY') {\r\n return \"Dolly\";\r\n }else if(this.assetInformation.equipment.equipmentType === '6') {\r\n return \"Chassis-Long-Empty\";\r\n } else if (this.assetInformation.equipment.equipmentType === 'TRAIN') {\r\n return \"Train\";\r\n }else {\r\n return \"Unknown-Trailer\";\r\n }\r\n }\r\n\r\n public trailerLoadPercent() : number {\r\n if (typeof (this.loadPercentage) == 'string' )\r\n {\r\n let percent = Number.parseInt(this.loadPercentage);\r\n if( isNaN(percent) ) return 0;\r\n if (percent < 0) return 0;\r\n if (percent > 100) return 100;\r\n return percent;\r\n }\r\n return 0;\r\n}\r\n\r\npublic trailerLoadPieces() : number {\r\n if (typeof (this.loadPieces) == 'string' )\r\n {\r\n let pieces = Number.parseInt(this.loadPieces);\r\n if( isNaN(pieces) ) return 0;\r\n if (pieces < 0) return 0;\r\n return pieces;\r\n }\r\n return 0;\r\n}\r\n\r\n}\r\n","
\r\n
\r\n \r\n
\r\n
\r\n {{commonFunctionsSite.assetTypeConverter(assetInformation) || 'Equipment'}} Number: {{assetInformation.equipment.equipmentNumber}}\r\n
\r\n
{{commonFunctionsSite.assetTypeConverter(assetInformation)}} Type: \r\n {{commonFunctionsSite.determineAssetType(this.assetInformation.equipment)}}\r\n
\r\n
\r\n Equipment Type: {{assetInformation.equipment.equipmentType}}\r\n
\r\n
\r\n \r\n
\r\n
\r\n
\r\n \"Equipment_Icon\"\r\n \r\n
\r\n \r\n
\r\n
\r\n
{{assetInformation.equipment.trailer.height}} ft
\r\n
\r\n
\r\n
\r\n
\r\n
{{assetInformation.equipment.trailer.Length}} ft
\r\n
\r\n
\r\n
\r\n
\r\n \r\n \r\n
\r\n \r\n
\r\n \r\n \r\n
\r\n
\r\n","import { Component, OnInit, OnChanges, Input } from '@angular/core';\r\nimport { Location } from '@angular/common';\r\nimport { ActivatedRoute } from '@angular/router';\r\nimport { Subject } from 'rxjs';\r\nimport { takeUntil } from 'rxjs/operators';\r\n\r\nimport { AssetInfo } from '../../../model/asset-info/asset-info';\r\nimport { Operations } from '../../../model/asset-info/operations';\r\nimport { Location as TmsLocation } from '../../../model/location/location';\r\nimport { UserAccessGateway } from '../../../model/user-profile/user-access-gateway';\r\n\r\nimport { SwipeService } from '../../../service/swipe/swipe.service';\r\nimport { ActiveUserProfileService } from '../../../service/active-user-profile/active-user-profile.service';\r\nimport { TamGisService } from '../../../service/webservice/tam-gis/tam-gis.service';\r\nimport { EnvironmentService } from '../../../service/environment/environment.service';\r\nimport { WhatfixService } from '../../../service/whatfix/whatfix.service';\r\nimport { CommonFunctionsSite } from '../common-functions-site';\r\n\r\n@Component({\r\n selector: 'app-detail',\r\n templateUrl: './detail.html',\r\n styleUrls: ['./detail.scss', '../site.scss'],\r\n})\r\nexport class DetailComponent implements OnInit, OnChanges {\r\n\r\n @Input() assetInformation: AssetInfo;\r\n currentLocation: TmsLocation;\r\n commonFunctionsSite = new CommonFunctionsSite();\r\n\r\n userHasAccess = false;\r\n\r\n unsubscribe$ = new Subject();\r\n\r\n constructor(\r\n private swipeService: SwipeService,\r\n private activeUserProfileService: ActiveUserProfileService,\r\n private tamGisService: TamGisService,\r\n private activatedRoute: ActivatedRoute,\r\n private whatfixService: WhatfixService,\r\n private environmentService: EnvironmentService,\r\n private location: Location) { }\r\n\r\n public ngOnInit(): void {\r\n // for a new detail set required margin and pull detail up to be visible\r\n this.swipeService.setBottomMarginRequired(100);\r\n this.swipeService.setPullUpMargin();\r\n }\r\n\r\n public ngOnChanges() {\r\n this.activatedRoute.params.pipe(takeUntil(this.unsubscribe$)).subscribe(params => {\r\n this.tamGisService.getLocation(params.countryCode, params.slicAbbr).then((location) => {\r\n this.currentLocation = location;\r\n this.environmentService.environmentPromise.then(() => {\r\n this.activeUserProfileService.checkPermissionsLocationInfo(this.currentLocation)\r\n .then((userHasPermission: boolean) => {\r\n this.userHasAccess = userHasPermission;\r\n });\r\n this.activeUserProfileService.activeUserProfilePromise.then((userAccessGateway: UserAccessGateway) => {\r\n this.whatfixService.setRoles(userAccessGateway, this.currentLocation);\r\n });\r\n });\r\n });\r\n });\r\n }\r\n\r\n public packageSummaryNeeded(): boolean {\r\n if (this.assetInformation?.operations) {\r\n if (this.assetInformation?.operations?.packageVolumeByState && this.assetInformation?.operations?.packageVolumeByState.length > 0) {\r\n return true;\r\n }\r\n if (this.assetInformation?.operations?.packageVolumeSummary && this.assetInformation?.operations?.packageVolumeSummary.totalPieces > 0) {\r\n return true;\r\n }\r\n }\r\n return false;\r\n }\r\n\r\n public equipmentStatusNeeded(): boolean {\r\n if (this.assetInformation?.equipment?.equipmentType === 'TL') {\r\n if (this.assetInformation.equipment?.trailer?.height) {\r\n return true;\r\n }\r\n if (this.assetInformation.equipment?.trailer?.Length) {\r\n return true;\r\n }\r\n }\r\n if (this.assetInformation?.equipment?.maintenanceWorkStatusCode) {\r\n return true;\r\n }\r\n if (this.assetInformation?.equipment?.lastPMIDate) {\r\n return true;\r\n }\r\n switch (this.assetInformation?.equipment?.pmiStatus) {\r\n case 'NEEDS_ATTENTION':\r\n case 'PAST_DUEDATE':\r\n return true;\r\n }\r\n if (this.assetInformation.equipment?.status?.comment) {\r\n return true;\r\n }\r\n if (this.commonFunctionsSite.isOnPropertyOperations(this.assetInformation) && this.assetInformation.operations?.tagStatus && this.assetInformation.operations.tagStatus !== '1') {\r\n return true;\r\n }\r\n return false;\r\n }\r\n\r\n public loadSummaryNeeded(): boolean {\r\n if (this.assetInformation.operations?.loads ||\r\n (this.commonFunctionsSite.isOnPropertyOperations(this.assetInformation) && this.assetInformation.operations?.trailerDunnage)) {\r\n return true;\r\n }\r\n return false;\r\n }\r\n\r\n public goBack(): void {\r\n this.location.back();\r\n }\r\n\r\n public onTap(): void {\r\n this.swipeService.onTap();\r\n }\r\n\r\n // the panmove and panend events unfortunately seem to not be typed in their library\r\n public onPanMove(event: unknown): void {\r\n this.swipeService.onPanMove(event as HammerInput);\r\n }\r\n\r\n public onPanEnd(event: unknown): void {\r\n this.swipeService.onPanEnd(event as HammerInput);\r\n }\r\n}\r\n","\r\n
\r\n
\r\n
\r\n \r\n
\r\n
\r\n
Detail Summary
\r\n
\r\n
\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n
\r\n
","import { Component, Input } from '@angular/core';\r\n\r\n@Component({\r\n selector: 'app-icon-text-pair',\r\n templateUrl: './icon-text-pair.html',\r\n styleUrls: ['../detail.scss', './icon-text-pair.scss'],\r\n})\r\nexport class IconTextPairComponent {\r\n @Input() icon: string;\r\n @Input() iconText: string;\r\n}\r\n","
\r\n \r\n {{iconText}}\r\n
\r\n","import { DecimalPipe } from '@angular/common';\r\nimport { GpsCoordinate } from '../../model/location/gps-coordinate';\r\nimport { ClosestPointOnLine } from '../../model/location/closest-point-on-line';\r\nimport { LatLng } from 'leaflet';\r\n\r\nexport class GeometricFunctions {\r\n constructor() { }\r\n\r\n public distanceFromBayConversion(distanceInFeet: number): string {\r\n if (distanceInFeet < 5280) {\r\n return `${new DecimalPipe('en-us').transform(distanceInFeet, '1.0-0')} ft`;\r\n } else if (distanceInFeet < 10 * 5280) {\r\n return `${new DecimalPipe('en-us').transform(distanceInFeet / 5280, '1.0-1')} mi`;\r\n } else {\r\n return `${new DecimalPipe('en-us').transform(distanceInFeet / 5280, '1.0-0')} mi`;\r\n }\r\n }\r\n\r\n // use the Ray Casting Algorithm to determine if the asset is in the bay\r\n // https://rosettacode.org/wiki/Ray-casting_algorithm\r\n public isPointInsidePoly(point: GpsCoordinate, poly: GpsCoordinate[]) {\r\n const lat = point.latitude;\r\n const long = point.longitude;\r\n\r\n let pointInside = false;\r\n for (let i = 0, j = poly.length - 1; i < poly.length; j = i++) {\r\n const lati = poly[i].latitude;\r\n const longi = poly[i].longitude;\r\n const latj = poly[j].latitude;\r\n const longj = poly[j].longitude;\r\n\r\n const intersectionFound = ((longi > long) !== (longj > long)) && (lat < (latj - lati) * (long - longi) / (longj - longi) + lati);\r\n if (intersectionFound) {\r\n pointInside = !pointInside;\r\n }\r\n }\r\n\r\n return pointInside;\r\n }\r\n\r\n public findClosestPoint(pointCoords: GpsCoordinate, polygonCoords: GpsCoordinate[]): GpsCoordinate {\r\n const pointsOnLine: ClosestPointOnLine[] = [];\r\n for (let i = 0, j = 1; i < polygonCoords.length - 1; i++, j++) {\r\n pointsOnLine.push(this.distToSegment(pointCoords, polygonCoords[i], polygonCoords[j]));\r\n }\r\n let closestPoint: ClosestPointOnLine;\r\n for (const pointOnLine of pointsOnLine) {\r\n if (!closestPoint) {\r\n closestPoint = pointOnLine;\r\n } else {\r\n if (pointOnLine.length < closestPoint.length) {\r\n closestPoint = pointOnLine;\r\n }\r\n }\r\n }\r\n return closestPoint.pointOnLine;\r\n }\r\n\r\n public squared(x: number): number {\r\n return x * x;\r\n }\r\n\r\n public squaredDistance(v: GpsCoordinate, w: GpsCoordinate): number {\r\n return this.squared(v.latitude - w.latitude) + this.squared(v.longitude - w.longitude);\r\n }\r\n\r\n public distToSegment(point: GpsCoordinate, lineV: GpsCoordinate, lineW: GpsCoordinate): ClosestPointOnLine {\r\n const squaredLine = this.squaredDistance(lineV, lineW);\r\n\r\n if (squaredLine === 0) {\r\n return new ClosestPointOnLine(this.squaredDistance(point, lineV), lineV);\r\n }\r\n\r\n let t = ((point.latitude - lineV.latitude) * (lineW.latitude - lineV.latitude) + (point.longitude - lineV.longitude) * (lineW.longitude - lineV.longitude)) / squaredLine;\r\n t = Math.max(0, Math.min(1, t));\r\n const coordOnLine = new GpsCoordinate(lineV.latitude + t * (lineW.latitude - lineV.latitude), lineV.longitude + t * (lineW.longitude - lineV.longitude));\r\n return new ClosestPointOnLine(Math.sqrt(this.squaredDistance(point, coordOnLine)), coordOnLine);\r\n }\r\n\r\n public latlngToGpsCoordinate(latLng: LatLng): GpsCoordinate {\r\n return new GpsCoordinate(latLng.lat, latLng.lng);\r\n }\r\n}\r\n","/* eslint-disable @typescript-eslint/naming-convention */\r\nexport const TrailerMapping = {\r\n A2: 'Short-A2' ,\r\n A3: 'Short-A3' ,\r\n A4: 'Long-A4' ,\r\n A5: 'Long-A5',\r\n I: 'Chassis-Long-Empty',\r\n CHL: 'Chassis-Long-Empty',\r\n MS: 'Long',\r\n // C:  'C-Type',\r\n F: 'Short',\r\n FS: 'Short',\r\n Q: 'Long',\r\n QS: 'Long',\r\n R:  'Long',\r\n X:  'Long',\r\n X5S: 'Long',\r\n XS: 'Long',\r\n XX: 'Long',\r\n XXX: 'Long',\r\n BDS: 'Long',\r\n JS: 'Long',\r\n LC: 'Chassis-Long-Loaded',\r\n N:  'Long',\r\n M: 'Long-Martrac',\r\n TMB: 'Long-Martrac',\r\n TMF: 'Long-Martrac',\r\n P: 'Long-Drop',\r\n BOC: 'Long',\r\n BOW: 'Long',\r\n PCT: 'Long',\r\n PMC: 'Long',\r\n PMS: 'Long',\r\n PPR: 'Long',\r\n PRT: 'Long',\r\n PSW: 'Long',\r\n PXT: 'Long',\r\n RBL: 'Long-Rubus',\r\n E: 'Short-Drop',\r\n H: 'Short-Drop',\r\n L: 'Short-Drop',\r\n SC: 'Chassis-Short-Loaded',\r\n SCS: 'Chassis-Short-Loaded',\r\n W: 'Short-Drop',\r\n WW: 'Short',\r\n WWS: 'Chassis-Short-Loaded',\r\n BAT: 'Chassis-Long-Loaded',\r\n BBN: 'Chassis-Long-Loaded',\r\n BCC: 'Chassis-Long-Loaded',\r\n BCN: 'Chassis-Long-Loaded',\r\n BCP: 'Chassis-Long-Loaded',\r\n BCS: 'Chassis-Long-Loaded',\r\n BCW: 'Chassis-Long-Loaded',\r\n BDR: 'Chassis-Long-Loaded',\r\n BFE: 'Chassis-Long-Loaded',\r\n BIC: 'Chassis-Long-Loaded',\r\n BKS: 'Chassis-Long-Loaded',\r\n BMS: 'Chassis-Long-Loaded',\r\n BNS: 'Chassis-Long-Loaded',\r\n BRF: 'Chassis-Long-Loaded',\r\n BSF: 'Chassis-Long-Loaded',\r\n BSP: 'Chassis-Long-Loaded',\r\n BUP: 'Chassis-Long-Loaded',\r\n S: 'Long-Drop',\r\n XXS: 'Long',\r\n O: 'Long-Drop',\r\n OO: 'Long',\r\n Y:  'Long',\r\n YS: 'Long',\r\n YY: 'Long',\r\n YYS: 'Long',\r\n ZZZ: 'Long',\r\n Z:  'Long',\r\n ZZ: 'Long',\r\n ZZS: 'Long',\r\n};\r\n\r\n// used for tractor icon & filtering by tractor type and fuel type\r\nexport const TractorMapping = {\r\n HTCTX: 'Single Axle CNG',\r\n HTDAL: 'Single Axle',\r\n HTD: 'Single Axle',\r\n MTD: 'Single Axle',\r\n HTDLS: 'Single Axle',\r\n HTLG: 'Single Axle LNG',\r\n HTDA: 'Single Axle',\r\n HTDR: 'Single Axle',\r\n HTLGR: 'Single Axle LNG',\r\n HTCT: 'Double Axle CNG',\r\n HTLGT: 'Double Axle LNG',\r\n HTLT: 'Double Axle LNG',\r\n HTDAT: 'Double Axle',\r\n HTDT: 'Double Axle',\r\n HDTSR: 'Sleeper',\r\n HDTSL: 'Sleeper',\r\n};\r\n","export class EquipmentTypeFilter {\r\n trailer: boolean;\r\n tractor: boolean;\r\n dolly: boolean;\r\n other: boolean;\r\n\r\n constructor() {\r\n this.trailer = true;\r\n this.tractor = false;\r\n this.dolly = false;\r\n this.other = false;\r\n }\r\n}\r\n","import { Component, Input } from '@angular/core';\r\n\r\nimport { AssetInfo } from '../../../../../model/asset-info/asset-info';\r\nimport { Operations } from '../../../../../model/asset-info/operations';\r\nimport { OnRoadOperations } from 'src/app/model/asset-info/on-road-operations';\r\nimport { CommonFunctionsSite } from '../../../common-functions-site';\r\n\r\n@Component({\r\n selector: 'app-summary-common',\r\n templateUrl: './summary-common.component.html',\r\n styleUrls: ['./summary-common.component.scss', '../../summary.component.scss', '../../../site.scss']\r\n})\r\nexport class SummaryCommonComponent {\r\n @Input() assetInformation: AssetInfo;\r\n public commonFunctionsSite = new CommonFunctionsSite();\r\n public isAssetTrailer: boolean = false;\r\n public loadPieces = '0';\r\n public loadPercentage = '0';\r\n public hasAsset = false;\r\n\r\n constructor() { }\r\n\r\n sharedTractorMappingAssetInfo = {\r\n HTCTX: 'SingleScrew-CNG',\r\n HTDAL: 'SingleScrew',\r\n HTD: 'SingleScrew',\r\n MTD: 'SingleScrew',\r\n HTDLS: 'SingleScrew',\r\n HTLG: 'SingleScrew-LNG',\r\n HTDA: 'SingleScrew',\r\n HTDR: 'SingleScrew',\r\n HTLGR: 'SingleScrew-LNG',\r\n HTCT: 'DoubleScrew-CNG',\r\n HTLGT: 'DoubleScrew-LNG',\r\n HTLT: 'DoubleScrew-LNG',\r\n HTDAT: 'DoubleScrew',\r\n HTDT: 'DoubleScrew',\r\n HDTSR: 'Sleeper-DoubleScrew',\r\n HDTSL: 'Sleeper-DoubleScrew',\r\n HDTS: 'Sleeper-DoubleScrew',\r\n HDTSF: 'Sleeper-DoubleScrew',\r\n HDTSS: 'SingleScrew'\r\n };\r\n\r\n public ngOnInit() {\r\n if (this.assetInformation.equipment.equipmentType === 'TL') {\r\n if (!((this.assetInformation.equipment.trailer?.TypeCode === 'CHL' || this.assetInformation.equipment.trailer?.TypeCode === 'CHS'))) {\r\n console.log(\"eT\" + this.assetInformation.equipment.equipmentType + \" typeCode\" + this.assetInformation.equipment.trailer?.TypeCode);\r\n this.isAssetTrailer = true;\r\n this.loadPieces = '0';\r\n this.loadPercentage = '0';\r\n const primaryLoad = this.commonFunctionsSite.getPrimaryLoad(this.assetInformation.operations?.loads);\r\n if (primaryLoad) {\r\n if (primaryLoad.pieces) {\r\n this.loadPieces = '' + primaryLoad.pieces;\r\n }\r\n if (primaryLoad.percentage) {\r\n this.loadPercentage = '' + primaryLoad.percentage;\r\n }\r\n }\r\n console.log(\"eT... \" + this.loadPieces + \" - \" + this.loadPercentage + \" - \" + this.isAssetTrailer);\r\n }\r\n }\r\n }\r\n\r\n public produceEquipmentTypeCode() : string {\r\n if(this.assetInformation.equipment.equipmentType === 'TL' || this.assetInformation.equipment.equipmentType === 'TRAILER') {\r\n if (typeof(this.assetInformation.equipment.trailer) !== \"undefined\" && this.assetInformation.equipment.trailer !== null) {\r\n if (typeof(this.assetInformation.equipment.trailer.TypeCode) != \"undefined\" && this.assetInformation.equipment.trailer.TypeCode !== null) {\r\n return this.assetInformation.equipment.trailer.TypeCode;\r\n }\r\n }\r\n }else if(this.assetInformation.equipment.equipmentType === 'TR' || this.assetInformation.equipment.equipmentType === 'TRACTOR') {\r\n if (typeof(this.assetInformation.equipment.carGroupCode) !== \"undefined\" && this.assetInformation.equipment.carGroupCode !== null &&\r\n this.sharedTractorMappingAssetInfo[this.assetInformation.equipment.carGroupCode] !== undefined) {\r\n return this.sharedTractorMappingAssetInfo[this.assetInformation.equipment.carGroupCode];\r\n }else {\r\n return \"Unknown-Tractor\";\r\n }\r\n }else if(this.assetInformation.equipment.equipmentType === 'DL' || this.assetInformation.equipment.equipmentType === 'DOLLY') {\r\n return \"Dolly\";\r\n }else if(this.assetInformation.equipment.equipmentType === '6') {\r\n return \"Chassis-Long-Empty\";\r\n } else if (this.assetInformation.equipment.equipmentType === 'TRAIN') {\r\n return \"Train\";\r\n }else {\r\n return \"Unknown-Trailer\";\r\n }\r\n }\r\n\r\n public trailerLoadPercent() : number {\r\n if (typeof (this.loadPercentage) == 'string' )\r\n {\r\n let percent = Number.parseInt(this.loadPercentage);\r\n if( isNaN(percent) ) return 0;\r\n if (percent < 0) return 0;\r\n if (percent > 100) return 100;\r\n return percent;\r\n }\r\n return 0;\r\n}\r\n\r\npublic trailerLoadPieces() : number {\r\n if (typeof (this.loadPieces) == 'string' )\r\n {\r\n let pieces = Number.parseInt(this.loadPieces);\r\n if( isNaN(pieces) ) return 0;\r\n if (pieces < 0) return 0;\r\n return pieces;\r\n }\r\n return 0;\r\n}\r\n\r\n public determineServiceLevel(): string {\r\n switch (this.assetInformation?.operations?.highestServiceLevel) {\r\n case 'GROUND':\r\n return 'uxd-load-ground-alt';\r\n case 'NEXT_DAY':\r\n return 'uxd-load-1da-alt';\r\n case 'SECOND_DAY':\r\n return 'uxd-load-2da-alt';\r\n case 'THREE_DAY_SELECT':\r\n return 'uxd-load-3da-alt';\r\n case 'EAM':\r\n return 'uxd-load-eam';\r\n default:\r\n return 'uxd-load-ground-alt';\r\n }\r\n }\r\n\r\n public hasDunnageEquipment(): boolean {\r\n if (this.commonFunctionsSite.isOnPropertyOperations(this.assetInformation)) {\r\n return this.assetInformation?.operations?.trailerDunnage?.hasAutomotiveEquipment === true ||\r\n this.assetInformation?.operations?.trailerDunnage?.hasPEEquipment === true ||\r\n this.assetInformation?.operations?.trailerDunnage?.hasHubEquipment === true;\r\n }\r\n return false;\r\n }\r\n}\r\n","
\r\n
\r\n
{{assetInformation.equipment.equipmentNumber}}
\r\n
{{commonFunctionsSite.determineAssetType(assetInformation.equipment)}}
\r\n
\r\n
\r\n
\r\n \r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n \"Equipment_Icon\"\r\n \r\n \r\n
\r\n \r\n \r\n \r\n \r\n \r\n \r\n
\r\n
{{commonFunctionsSite.getPrimaryLoad(assetInformation.operations.loads).percentage}}% {{commonFunctionsSite.getPrimaryLoad(assetInformation.operations.loads).pieces}}
\r\n
\r\n
\r\n
\r\n \r\n
\r\n
\r\n
\r\n \r\n
\r\n
\r\n
{{commonFunctionsSite.getPrimaryLoad(assetInformation.operations.loads).originSlicAbbreviation}} {{commonFunctionsSite.getPrimaryLoad(assetInformation.operations.loads).originSort}}
\r\n
{{commonFunctionsSite.getPrimaryLoad(assetInformation.operations.loads).createDate | lSummarydateShort}}
\r\n
\r\n
\r\n
{{commonFunctionsSite.getPrimaryLoad(assetInformation.operations.loads).destinationSlicAbbreviation}} {{commonFunctionsSite.getPrimaryLoad(assetInformation.operations.loads).destinationSort}}
\r\n
{{commonFunctionsSite.getPrimaryLoad(assetInformation.operations.loads).unloadDate | lSummarydateShort}}
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
","import { Component, Input } from '@angular/core';\r\n\r\nimport { AssetInfo } from '../../../../../model/asset-info/asset-info';\r\nimport { OnRoadOperations } from '../../../../../model/asset-info/on-road-operations';\r\nimport { Equipment } from '../../../../../model/asset-info/equipment';\r\nimport { CommonFunctionsSite } from '../../../common-functions-site';\r\n\r\n@Component({\r\n selector: 'app-summary-inbound-info',\r\n templateUrl: './summary-inbound-info.component.html',\r\n styleUrls: ['./summary-inbound-info.component.scss', '../../../site.scss']\r\n})\r\nexport class SummaryInboundInfoComponent {\r\n\r\n @Input() asset: AssetInfo;\r\n public commonFunctionsSite = new CommonFunctionsSite();\r\n\r\n public determineGpsAlertNeeded(equipment: Equipment): boolean {\r\n if (equipment?.gpsDetails?.gpsStale === true ||\r\n equipment?.gpsDetails?.confidence === 'LOW_CONFIDENCE' ||\r\n equipment?.gpsDetails?.confidence === 'NO_CONFIDENCE' ||\r\n equipment?.esnConfidence === 'NOT_CONFIDENT') {\r\n return true;\r\n } else {\r\n return false;\r\n }\r\n }\r\n\r\n public determineAutoArriveNeeded(aadStatus: number): boolean {\r\n switch (aadStatus) {\r\n case 2:\r\n case 5:\r\n case 6:\r\n case 7:\r\n return true;\r\n }\r\n return false;\r\n }\r\n\r\n public determineAutoArriveIndicator(aadStatus: number): string {\r\n switch (aadStatus) {\r\n case 2:\r\n return 'uxd-auto-arrive-stop';\r\n case 5:\r\n return 'uxd-auto-arrive-stop';\r\n case 6:\r\n return 'uxd-auto-arrive-alert';\r\n case 7:\r\n return 'uxd-auto-arrive-alert';\r\n }\r\n return '';\r\n }\r\n\r\n public determineAutoArriveIndicatorColor(aadStatus: number): string {\r\n switch (aadStatus) {\r\n case 2:\r\n return 'ups-red';\r\n case 5:\r\n return 'ups-red';\r\n case 6:\r\n return 'ups-yellow';\r\n case 7:\r\n return 'ups-yellow';\r\n }\r\n return '';\r\n }\r\n\r\n public determinePmiIndicatorNeeded(pmiStatus: string): boolean {\r\n switch (pmiStatus) {\r\n case 'NEEDS_ATTENTION':\r\n case 'PAST_DUEDATE':\r\n return true;\r\n }\r\n return false;\r\n }\r\n\r\n public determinePmiIndicatorColor(pmiStatus: string): string {\r\n switch (pmiStatus) {\r\n case 'NEEDS_ATTENTION':\r\n return 'ups-yellow';\r\n case 'PAST_DUEDATE':\r\n return 'ups-red';\r\n }\r\n return '';\r\n }\r\n\r\n}\r\n","
\r\n
\r\n ETA {{asset.operations.estimatedTimeOfArrival | ltimeMilitary}}\r\n \r\n \r\n \r\n \r\n \r\n \r\n
\r\n
\r\n {{asset.operations.jobNumber | jobNumber}}\r\n {{asset.operations.startingLocationSlicAbbreviation}}\r\n
\r\n \r\n {{asset.operations.driver.lastName}} \r\n {{asset.operations.driver.firstName[0]}}.\r\n \r\n
\r\n","import { Component, Input } from '@angular/core';\r\nimport { AssetInfo } from 'src/app/model/asset-info/asset-info';\r\nimport { OnPropertyOperations } from 'src/app/model/asset-info/on-property-operations';\r\n\r\n@Component({\r\n selector: 'app-summary-wrapper-yard-check',\r\n templateUrl: './summary-wrapper-yard-check.html',\r\n styleUrls: ['./summary-wrapper-yard-check.scss'],\r\n})\r\nexport class SummaryWrapperYardCheckComponent {\r\n @Input() asset: AssetInfo;\r\n\r\n public determineCardColor(): string {\r\n if (this?.asset?.frontEndExclusive?.confirmationPending) {\r\n if (this.asset.frontEndExclusive.confirmationPending === 'CONFIRMED') {\r\n return 'asset-confirmed-pending';\r\n } else if (this.asset.frontEndExclusive.confirmationPending === 'REJECTED') {\r\n return 'asset-rejected-pending';\r\n }\r\n } else {\r\n if (this?.asset?.equipment?.onSiteNotArrivedLocation){\r\n return 'asset-on-site-not-arrived';\r\n }\r\n if (this?.asset?.frontEndExclusive?.confirmationStatus) {\r\n if (this.asset.frontEndExclusive.confirmationStatus === 'CONFIRMED') {\r\n return 'asset-confirmed';\r\n } else if (this.asset.frontEndExclusive.confirmationStatus === 'REJECTED') {\r\n return 'asset-rejected';\r\n }\r\n } else if (this?.asset?.equipment?.locationConfirmation?.locationConfirmationState) {\r\n if (this.asset.equipment.locationConfirmation.locationConfirmationState === 'CONFIRMED') {\r\n return 'asset-confirmed';\r\n } else if (this.asset.equipment.locationConfirmation.locationConfirmationState === 'REJECTED') {\r\n return 'asset-rejected';\r\n }\r\n }\r\n return '';\r\n }\r\n }\r\n}\r\n","
\r\n
\r\n
\r\n \r\n
\r\n \r\n
\r\n \r\n
\r\n
\r\n
\r\n \r\n
\r\n","import { Component, Input } from '@angular/core';\r\nimport { AssetInfo } from 'src/app/model/asset-info/asset-info';\r\nimport { OnPropertyOperations } from 'src/app/model/asset-info/on-property-operations';\r\n\r\n@Component({\r\n selector: 'app-summary-wrapper',\r\n templateUrl: './summary-wrapper.html',\r\n styleUrls: ['./summary-wrapper.scss'],\r\n})\r\nexport class SummaryWrapperComponent {\r\n @Input() asset: AssetInfo;\r\n\r\n public determineCardColor(): string {\r\n if (this?.asset?.equipment?.onSiteNotArrivedLocation){\r\n return 'asset-on-site-not-arrived';\r\n }\r\n return '';\r\n }\r\n\r\n}\r\n","
\r\n
\r\n
\r\n \r\n
\r\n \r\n
\r\n \r\n
\r\n
\r\n
","import { Component, OnInit, OnDestroy } from '@angular/core';\r\nimport { ActivatedRoute } from '@angular/router';\r\nimport { Subject } from 'rxjs';\r\nimport { takeUntil } from 'rxjs/operators';\r\n\r\nimport { StInTransitService } from '../../../../service/webservice/st-in-transit/st-in-transit.service';\r\n\r\nimport { AssetInfo } from '../../../../model/asset-info/asset-info';\r\nimport { Operations } from '../../../../model/asset-info/operations';\r\nimport { OnRoadOperations } from '../../../../model/asset-info/on-road-operations';\r\nimport { Location } from '../../../../model/location/location';\r\n\r\nimport { AuthService } from '../../../../auth/auth.service';\r\nimport { TamGisService } from '../../../../service/webservice/tam-gis/tam-gis.service';\r\nimport { SwipeService } from '../../../../service/swipe/swipe.service';\r\nimport { SortingService } from '../../../../service/sorting/sorting.service';\r\nimport { ViewService } from '../../../../service/view/view.service';\r\nimport { StUserProfileService } from '../../../../service/webservice/st-user-profile/st-user-profile.service';\r\nimport { MapLargeLayerHandler } from '../../../map/maplarge-layers/maplarge-layers';\r\n\r\n@Component({\r\n selector: 'app-summary-inbound',\r\n templateUrl: './summary-inbound.component.html',\r\n styleUrls: ['./summary-inbound.component.scss']\r\n})\r\nexport class SummaryInboundComponent implements OnInit, OnDestroy {\r\n\r\n countryCode: string;\r\n slic: string;\r\n listAssets: AssetInfo[];\r\n stLocation: Location;\r\n viewType = 'Inbound';\r\n viewHeader = '';\r\n\r\n unsubscribe$ = new Subject();\r\n\r\n constructor(\r\n private activatedRoute: ActivatedRoute,\r\n private authService: AuthService,\r\n private stInTransitService: StInTransitService,\r\n private swipeService: SwipeService,\r\n private sortingService: SortingService,\r\n private tamGisService: TamGisService,\r\n private viewService: ViewService,\r\n private stUserProfileService: StUserProfileService,\r\n private mapLargeLayerHandler: MapLargeLayerHandler,\r\n ) { }\r\n\r\n public ngOnInit(): void {\r\n // collapse view upon load (with no animation)\r\n this.swipeService.summaryViewInitializeOpened();\r\n // activate default on property sort if we change to a different view type\r\n if (this.sortingService.getPreviousView() !== 'inbound') {\r\n this.sortingService.activateSort('etaAsc');\r\n this.sortingService.setPreviousView('inbound');\r\n }\r\n\r\n this.mapLargeLayerHandler.clearMapLargeLayers();\r\n // if we have assets in cache load them first\r\n this.activatedRoute.params.pipe(takeUntil(this.unsubscribe$)).subscribe(params => {\r\n this.countryCode = params.countryCode;\r\n this.slic = params.slicAbbr;\r\n this.tamGisService.getLocation(this.countryCode, this.slic).then((location) => {\r\n this.stLocation = location;\r\n this.viewHeader = `${location.countryCode} ${location.slicAbbreviation}-${location.slic} ${this.viewType}`;\r\n\r\n const userId = this.authService.getUserId();\r\n const metric = this.stUserProfileService.createDefaultMetric(userId);\r\n metric.event = 'inboundView';\r\n metric.customFields.countryCode = this.stLocation.countryCode;\r\n metric.customFields.site = this.stLocation.slicAbbreviation;\r\n metric.customFields.region = this.stLocation.regionNumber;\r\n metric.customFields.district = this.stLocation.districtNumber;\r\n\r\n // send information about this current login to our user profile service\r\n this.stUserProfileService.postEvent(metric);\r\n\r\n this.swipeService.summaryViewSlideUp();\r\n });\r\n this.stInTransitService\r\n .fetchInboundAssets(this.countryCode, this.slic)\r\n .pipe(takeUntil(this.unsubscribe$))\r\n .subscribe(assets => {\r\n assets = assets.filter(asset => {\r\n const onRoadOperations = asset.operations as OnRoadOperations;\r\n return asset.equipment?.equipmentType === 'TL' || (onRoadOperations?.tractorOnly && asset.equipment?.equipmentType === 'TR');\r\n });\r\n\r\n this.listAssets = this.sortingService.runSort(assets);\r\n });\r\n });\r\n\r\n this.viewService.changeView('inbound');\r\n }\r\n\r\n public ngOnDestroy(): void {\r\n this.unsubscribe$.next();\r\n this.unsubscribe$.complete();\r\n }\r\n\r\n}\r\n","\r\n","import { Component, Input } from '@angular/core';\r\nimport { Location } from '../../../../../model/location/location';\r\n\r\n@Component({\r\n selector: 'app-location-info',\r\n templateUrl: './location-info.component.html',\r\n styleUrls: ['./location-info.component.scss']\r\n})\r\nexport class LocationInfoComponent {\r\n\r\n @Input() stLocation: Location;\r\n\r\n}\r\n","
\r\n
{{stLocation.slic}} - {{stLocation.slicAbbreviation}}
\r\n
{{stLocation.buildingName | titlecase}}
\r\n
\r\n
\r\n
{{stLocation.opTypeCode}}
\r\n
{{stLocation.countryCode}}
\r\n
\r\n
\r\n
\r\n
{{stLocation.regionNumber}} {{stLocation.regionName | titlecase}}
\r\n
{{stLocation.districtNumber}} {{stLocation.districtName | titlecase}}
\r\n
\r\n
\r\n\r\n
\r\n {{stLocation.address}}
\r\n {{stLocation.city}}, {{stLocation.stateCode}} {{stLocation.zip}}\r\n
\r\n\r\n
\r\n\r\n
\r\n Building Number: {{stLocation.buildingNumber}}
\r\n Buidling Mnemonic: {{stLocation.buildingMnemonic}}
\r\n Building Name: {{stLocation.buildingName | titlecase}}\r\n
\r\n\r\n
\r\n\r\n
\r\n
Time Zone: {{stLocation.timeZoneAbbr}}
\r\n
(UTC{{stLocation.utcOffset}})
\r\n
\r\n\r\n
\r\n\r\n
Remarks: {{stLocation.remarks}}
\r\n","import { Component, OnInit, OnDestroy } from '@angular/core';\r\nimport { SwipeService } from 'src/app/service/swipe/swipe.service';\r\nimport { Subject } from 'rxjs';\r\nimport { ActivatedRoute } from '@angular/router';\r\nimport { MapService } from 'src/app/service/map/map.service';\r\nimport { MapLargeLayerHandler } from 'src/app/component/map/maplarge-layers/maplarge-layers';\r\nimport { ViewService } from 'src/app/service/view/view.service';\r\nimport { TamGisService } from 'src/app/service/webservice/tam-gis/tam-gis.service';\r\nimport { Location } from '../../../../model/location/location';\r\nimport { takeUntil } from 'rxjs/operators';\r\n\r\n@Component({\r\n selector: 'app-summary-info',\r\n templateUrl: './summary-info.component.html',\r\n styleUrls: ['./summary-info.component.scss']\r\n})\r\nexport class SummaryInfoComponent implements OnInit, OnDestroy {\r\n\r\n countryCode: string;\r\n slic: string;\r\n stLocation: Location;\r\n viewType = 'Location Info';\r\n viewHeader = '';\r\n assetType = '';\r\n\r\n unsubscribe$ = new Subject();\r\n\r\n constructor(\r\n private activatedRoute: ActivatedRoute,\r\n private swipeService: SwipeService,\r\n private mapService: MapService,\r\n private tamGisService: TamGisService,\r\n private viewService: ViewService,\r\n private mapLargeLayerHandler: MapLargeLayerHandler,\r\n ) { }\r\n\r\n public ngOnInit(): void {\r\n // collapse view upon load (with no animation)\r\n this.swipeService.summaryViewInitializeOpened();\r\n\r\n this.activatedRoute.params.pipe(takeUntil(this.unsubscribe$)).subscribe(params => {\r\n this.countryCode = params.countryCode;\r\n this.slic = params.slicAbbr;\r\n this.assetType = params.assetType;\r\n this.mapLargeLayerHandler.loadAllMapLargeLayers(this.countryCode, this.slic, this.mapService.getMapType());\r\n this.tamGisService.getIndividualLocation(this.countryCode, this.slic).pipe(takeUntil(this.unsubscribe$)).subscribe((location) => {\r\n this.stLocation = location;\r\n this.viewHeader = `${location.countryCode} ${location.slicAbbreviation}-${location.slic} ${this.viewType}`;\r\n this.swipeService.summaryViewSlideUp();\r\n });\r\n });\r\n\r\n this.viewService.changeView('info');\r\n }\r\n\r\n public ngOnDestroy(): void {\r\n this.unsubscribe$.next();\r\n this.unsubscribe$.complete();\r\n }\r\n}\r\n","","import { Component, OnInit, OnDestroy } from '@angular/core';\r\nimport { ActivatedRoute } from '@angular/router';\r\nimport { Subject } from 'rxjs';\r\nimport { takeUntil } from 'rxjs/operators';\r\n\r\nimport { StOnPropertyService } from '../../../../service/webservice/st-on-property/st-on-property.service';\r\n\r\nimport { AssetInfo } from '../../../../model/asset-info/asset-info';\r\nimport { Operations } from '../../../../model/asset-info/operations';\r\nimport { Location } from '../../../../model/location/location';\r\n\r\nimport { AuthService } from '../../../../auth/auth.service';\r\nimport { TamGisService } from '../../../../service/webservice/tam-gis/tam-gis.service';\r\nimport { SwipeService } from '../../../../service/swipe/swipe.service';\r\nimport { SortingService } from '../../../../service/sorting/sorting.service';\r\nimport { MapService } from '../../../../service/map/map.service';\r\nimport { ViewService } from '../../../../service/view/view.service';\r\nimport { StUserProfileService } from '../../../../service/webservice/st-user-profile/st-user-profile.service';\r\nimport { MapLargeLayerHandler } from '../../../map/maplarge-layers/maplarge-layers';\r\nimport { OnPropertyOperations } from '../../../../model/asset-info/on-property-operations';\r\n\r\n@Component({\r\n selector: 'app-summary-on-property',\r\n templateUrl: './summary-on-property.component.html',\r\n styleUrls: ['./summary-on-property.component.scss']\r\n})\r\nexport class SummaryOnPropertyComponent implements OnInit, OnDestroy {\r\n\r\n countryCode: string;\r\n slic: string;\r\n listAssets: AssetInfo[];\r\n stLocation: Location;\r\n viewType = 'On Property';\r\n viewHeader = '';\r\n assetType = '';\r\n\r\n unsubscribe$ = new Subject();\r\n\r\n constructor(\r\n private activatedRoute: ActivatedRoute,\r\n private onPropertyService: StOnPropertyService,\r\n private authService: AuthService,\r\n private swipeService: SwipeService,\r\n private mapService: MapService,\r\n private sortingService: SortingService,\r\n private tamGisService: TamGisService,\r\n private viewService: ViewService,\r\n private stUserProfileService: StUserProfileService,\r\n private mapLargeLayerHandler: MapLargeLayerHandler,\r\n ) { }\r\n\r\n public ngOnInit(): void {\r\n // collapse view upon load (with no animation)\r\n this.swipeService.summaryViewInitializeOpened();\r\n\r\n // activate default on property sort if we change to a different view type\r\n if (this.sortingService.getPreviousView() !== 'onproperty') {\r\n this.sortingService.activateSort('bayAsc');\r\n this.sortingService.setPreviousView('onproperty');\r\n }\r\n\r\n // if we have assets in cache load them first\r\n this.activatedRoute.params.pipe(takeUntil(this.unsubscribe$)).subscribe(params => {\r\n this.countryCode = params.countryCode;\r\n this.slic = params.slicAbbr;\r\n this.assetType = params.assetType;\r\n this.mapLargeLayerHandler.loadAllMapLargeLayers(this.countryCode, this.slic, this.mapService.getMapType());\r\n this.tamGisService.getLocation(this.countryCode, this.slic).then((location) => {\r\n this.stLocation = location;\r\n this.viewHeader = `${location.countryCode} ${location.slicAbbreviation}-${location.slic} ${this.viewType}`;\r\n\r\n const userId = this.authService.getUserId();\r\n const metric = this.stUserProfileService.createDefaultMetric(userId);\r\n metric.event = 'onPropertyView';\r\n metric.customFields.countryCode = this.stLocation.countryCode;\r\n metric.customFields.site = this.stLocation.slicAbbreviation;\r\n metric.customFields.region = this.stLocation.regionNumber;\r\n metric.customFields.district = this.stLocation.districtNumber;\r\n\r\n // send information about this current login to our user profile service\r\n this.stUserProfileService.postEvent(metric);\r\n\r\n this.swipeService.summaryViewSlideUp();\r\n });\r\n this.onPropertyService\r\n .fetchOnPropertyAssets(this.countryCode, this.slic)\r\n .pipe(takeUntil(this.unsubscribe$))\r\n .subscribe(assets => {\r\n this.listAssets = this.sortingService.runSort(assets);\r\n this.updateSlottedAssets(assets as AssetInfo[]);\r\n });\r\n });\r\n\r\n this.viewService.changeView('onproperty');\r\n }\r\n\r\n async updateSlottedAssets(assets: AssetInfo[]) {\r\n this.listAssets = await this.mapLargeLayerHandler.updateSlottedAssets(assets);\r\n }\r\n\r\n public ngOnDestroy(): void {\r\n this.unsubscribe$.next();\r\n this.unsubscribe$.complete();\r\n }\r\n}\r\n","\r\n","import { Component, Input } from '@angular/core';\r\n\r\n@Component({\r\n selector: 'app-summary-view-button',\r\n templateUrl: './summary-view-button.component.html',\r\n styleUrls: ['./summary-view-button.component.scss', '../summary.component.scss']\r\n})\r\nexport class SummaryViewButtonComponent {\r\n @Input() icon: string;\r\n @Input() buttonTitle: string;\r\n @Input() buttonStyles: string;\r\n @Input() disabled: boolean;\r\n}\r\n","\r\n","import { Component, OnInit, OnDestroy } from '@angular/core';\r\nimport { ActivatedRoute } from '@angular/router';\r\nimport { Subject } from 'rxjs';\r\nimport { takeUntil } from 'rxjs/operators';\r\n\r\nimport { StOnPropertyService } from '../../../../service/webservice/st-on-property/st-on-property.service';\r\n\r\nimport { AssetInfo } from '../../../../model/asset-info/asset-info';\r\nimport { Operations } from '../../../../model/asset-info/operations';\r\nimport { Location } from '../../../../model/location/location';\r\n\r\nimport { AuthService } from '../../../../auth/auth.service';\r\nimport { TamGisService } from '../../../../service/webservice/tam-gis/tam-gis.service';\r\nimport { SwipeService } from '../../../../service/swipe/swipe.service';\r\nimport { SortingService } from '../../../../service/sorting/sorting.service';\r\nimport { MapService } from '../../../../service/map/map.service';\r\nimport { ViewService } from '../../../../service/view/view.service';\r\nimport { StUserProfileService } from '../../../../service/webservice/st-user-profile/st-user-profile.service';\r\nimport { MapLargeLayerHandler } from '../../../map/maplarge-layers/maplarge-layers';\r\nimport { OnPropertyOperations } from '../../../../model/asset-info/on-property-operations';\r\nimport { PendingLocationUpdateFlag } from '../../../../model/flags/pending-location-update-flag';\r\n\r\n@Component({\r\n selector: 'app-summary-yard-check',\r\n templateUrl: './summary-yard-check.component.html',\r\n styleUrls: ['./summary-yard-check.component.scss']\r\n})\r\nexport class SummaryYardCheckComponent implements OnInit, OnDestroy {\r\n\r\n countryCode: string;\r\n slic: string;\r\n listAssets: AssetInfo[];\r\n stLocation: Location;\r\n viewType = 'Yard Check';\r\n viewHeader = '';\r\n assetType = '';\r\n pendingLocationUpdateFlag: PendingLocationUpdateFlag = new PendingLocationUpdateFlag();\r\n\r\n unsubscribe$ = new Subject();\r\n\r\n constructor(\r\n private activatedRoute: ActivatedRoute,\r\n private onPropertyService: StOnPropertyService,\r\n private authService: AuthService,\r\n private swipeService: SwipeService,\r\n private mapService: MapService,\r\n private sortingService: SortingService,\r\n private tamGisService: TamGisService,\r\n private viewService: ViewService,\r\n private stUserProfileService: StUserProfileService,\r\n private mapLargeLayerHandler: MapLargeLayerHandler,\r\n ) { }\r\n\r\n public ngOnInit(): void {\r\n // collapse view upon load (with no animation)\r\n this.swipeService.summaryViewInitializeOpened();\r\n\r\n // activate default on property sort if we change to a different view type\r\n if (this.sortingService.getPreviousView() !== 'yardcheck') {\r\n this.sortingService.activateSort('bayAsc');\r\n this.sortingService.setPreviousView('yardcheck');\r\n }\r\n\r\n // if we have assets in cache load them first\r\n this.activatedRoute.params.pipe(takeUntil(this.unsubscribe$)).subscribe(params => {\r\n this.countryCode = params.countryCode;\r\n this.slic = params.slicAbbr;\r\n this.assetType = params.assetType;\r\n this.mapLargeLayerHandler.loadAllMapLargeLayers(this.countryCode, this.slic, this.mapService.getMapType());\r\n this.tamGisService.getLocation(this.countryCode, this.slic).then((location) => {\r\n this.stLocation = location;\r\n this.viewHeader = `${location.countryCode} ${location.slicAbbreviation}-${location.slic} ${this.viewType}`;\r\n\r\n const userId = this.authService.getUserId();\r\n const metric = this.stUserProfileService.createDefaultMetric(userId);\r\n metric.event = 'yardCheckView';\r\n metric.customFields.countryCode = this.stLocation.countryCode;\r\n metric.customFields.site = this.stLocation.slicAbbreviation;\r\n metric.customFields.region = this.stLocation.regionNumber;\r\n metric.customFields.district = this.stLocation.districtNumber;\r\n\r\n // send information about this current login to our user profile service\r\n this.stUserProfileService.postEvent(metric);\r\n\r\n this.swipeService.summaryViewSlideUp();\r\n });\r\n //REVIEWNOTE - fetchOnPropertyAssetsYardCheck results are streamed here to the yard check\r\n this.onPropertyService\r\n .fetchOnPropertyAssetsYardCheck(this.countryCode, this.slic, () => !(!this.pendingLocationUpdateFlag || !this.pendingLocationUpdateFlag.pendingLocationUpdateFlag))\r\n .pipe(takeUntil(this.unsubscribe$))\r\n .subscribe(assets => {\r\n if (!this.pendingLocationUpdateFlag || !this.pendingLocationUpdateFlag.pendingLocationUpdateFlag) {\r\n //REVIEWNOTE there is a chance that the refresh can get here without using the updated assets\r\n console.log('Pending Location Update flag is not on. Processing updates.');\r\n\r\n\r\n this.listAssets = this.sortingService.runSort(assets);\r\n\r\n this.listAssets.forEach(value => {\r\n const valueAsOnProperty = value as AssetInfo;\r\n if (valueAsOnProperty && valueAsOnProperty.operations?.bayNumber && sessionStorage.getItem('tam::debug') === 'verbose') {\r\n const bayNumber = parseInt(valueAsOnProperty.operations?.bayNumber, 10);\r\n if (!isNaN(bayNumber) && bayNumber >= 1 && bayNumber <= 5) {\r\n console.log(`BayNum[${bayNumber}] Cache LC = ${valueAsOnProperty.frontEndExclusive?.confirmationStatus}`\r\n + ` API LC = ${valueAsOnProperty.equipment?.locationConfirmation?.locationConfirmationState}`\r\n + ' LC UserId ->' + valueAsOnProperty.equipment?.locationConfirmation?.userId + ' currentUserId ->' + this.authService.getUserId());\r\n }\r\n }\r\n });\r\n\r\n this.updateSlottedAssets(assets as AssetInfo[]);\r\n }\r\n });\r\n });\r\n\r\n this.viewService.changeView('yardcheck');\r\n }\r\n\r\n async updateSlottedAssets(assets: AssetInfo[]) {\r\n this.listAssets = await this.mapLargeLayerHandler.updateSlottedAssets(assets);\r\n }\r\n\r\n public ngOnDestroy(): void {\r\n this.unsubscribe$.next();\r\n this.unsubscribe$.complete();\r\n }\r\n}\r\n","\r\n","import {\r\n Component,\r\n Input,\r\n OnInit,\r\n OnDestroy,\r\n OnChanges,\r\n NgZone,\r\n SimpleChanges\r\n} from '@angular/core';\r\nimport { MatDialog } from '@angular/material/dialog';\r\nimport { Location } from '@angular/common';\r\nimport { Router } from '@angular/router';\r\nimport { Subject } from 'rxjs';\r\nimport { takeUntil } from 'rxjs/operators';\r\n\r\nimport { AuthService } from '../../../auth/auth.service';\r\nimport { SwipeService } from '../../../service/swipe/swipe.service';\r\nimport { MapService } from '../../../service/map/map.service';\r\nimport { FilterService } from '../../../service/filter/filter.service';\r\nimport { SortingService } from '../../../service/sorting/sorting.service';\r\nimport { ReconciliationService } from '../../../service/webservice/reconciliation/reconciliation.service';\r\nimport { ActiveUserProfileService } from '../../../service/active-user-profile/active-user-profile.service';\r\nimport { StUserProfileService } from '../../../service/webservice/st-user-profile/st-user-profile.service';\r\nimport { StYardCheckService } from '../../../service/webservice/st-yard-check/st-yard-check.service';\r\nimport { WhatfixService } from '../../../service/whatfix/whatfix.service';\r\nimport { latLng, CircleMarker, CircleMarkerOptions, Marker, icon, LayerGroup } from 'leaflet';\r\n\r\nimport { AssetInfoArrayMap } from '../../../model/asset-info/asset-info-array-map';\r\nimport { AssetInfo } from '../../../model/asset-info/asset-info';\r\nimport { Operations } from '../../../model/asset-info/operations';\r\nimport { OnPropertyOperations } from '../../../model/asset-info/on-property-operations';\r\nimport { FrontEndExclusive } from '../../../model/asset-info/front-end-exclusive';\r\nimport { BayAttributes } from '../../../model/bay-attributes/bay-attributes';\r\nimport { Location as StLocation } from '../../../model/location/location';\r\nimport { LocationConfirmation } from '../../../model/reconciliation/location-confirmation';\r\nimport { UserAccessGateway } from '../../../model/user-profile/user-access-gateway';\r\nimport { CommonFunctionsSite } from '../common-functions-site';\r\nimport { EquipmentTypeFilter } from './model/equipment-type-filter';\r\nimport { MoveBayDialogComponent } from '../../dialog/move-bay-dialog/move-bay-dialog.component';\r\nimport { InsertTrailerDialogComponent } from '../../dialog/insert-trailer-dialog/insert-trailer-dialog.component';\r\nimport { RejectAssetDialogComponent } from '../../dialog/reject-asset-dialog/reject-asset-dialog.component';\r\nimport { EnvironmentService } from '../../../service/environment/environment.service';\r\nimport { HfcsService } from '../../../service/webservice/hfcs/hfcs.service';\r\nimport { PendingLocationUpdateFlag } from '../../../model/flags/pending-location-update-flag';\r\nimport { StOnPropertyService } from '../../../service/webservice/st-on-property/st-on-property.service';\r\nimport { LaunchDarklyService } from '../../../service/launch-darkly/launch-darkly-services';\r\nimport { LocalDataService } from '../../../service/local-data/local-data.service';\r\n\r\n@Component({\r\n selector: 'app-summary',\r\n templateUrl: './summary.component.html',\r\n styleUrls: ['./summary.component.scss', '../site.scss']\r\n})\r\nexport class SummaryComponent implements OnInit, OnChanges, OnDestroy {\r\n\r\n @Input() listAssets: AssetInfo[];\r\n @Input() stLocation: StLocation;\r\n @Input() viewType: string;\r\n @Input() viewHeader: string;\r\n @Input() assetType?: string;\r\n @Input() pendingLocationUpdateFlag: PendingLocationUpdateFlag;\r\n\r\n commonFunctionsSite = new CommonFunctionsSite();\r\n\r\n filteredAssets: AssetInfo[];\r\n placedAssets: AssetInfo[];\r\n onPropertyFilters = new EquipmentTypeFilter();\r\n assetInfoArrayMap: AssetInfoArrayMap = new AssetInfoArrayMap();\r\n\r\n locationMarker: Marker;\r\n assetMarkers: LayerGroup;\r\n\r\n defaultButtonColor = '#FFFFFF';\r\n activeButtonColor = '#2196F3';\r\n disabledButtonColor = '#c5c0c7';\r\n confirmButtonColor = this.defaultButtonColor;\r\n\r\n snappedToBottom = false;\r\n\r\n userHasAccess = false;\r\n\r\n unsubscribe$ = new Subject();\r\n\r\n oldBay: string;\r\n\r\n\r\n constructor(\r\n private dialog: MatDialog,\r\n private location: Location,\r\n private mapService: MapService,\r\n private swipeService: SwipeService,\r\n private filterService: FilterService,\r\n public sortingService: SortingService,\r\n private localDataService: LocalDataService,\r\n private authService: AuthService,\r\n private reconciliationService: ReconciliationService,\r\n private stYardCheckService: StYardCheckService,\r\n private activeUserProfileService: ActiveUserProfileService,\r\n private whatfixService: WhatfixService,\r\n private stUserProfileService: StUserProfileService,\r\n private hfcsService: HfcsService,\r\n private environmentService: EnvironmentService,\r\n private router: Router,\r\n private ngZone: NgZone,\r\n private onPropertyService: StOnPropertyService,\r\n private launchDarklyService: LaunchDarklyService,\r\n ) { }\r\n\r\n public ngOnInit() {\r\n this.localDataService.clearTrackedConfirmationStatus();\r\n if (this.assetType) {\r\n this.setSelectedFilterBooleans(this.assetType);\r\n this.placedAssets = this.determineFilterAndRun();\r\n this.placeAssetsOnMap(this.placedAssets).then(promisedValue => {});\r\n }\r\n\r\n // subscribe to filter updates\r\n this.filterService.filterUpdates.pipe(takeUntil(this.unsubscribe$)).subscribe(assets => {\r\n this.filteredAssets = assets;\r\n this.assetInfoArrayMap = this.createAssetInfoArrayMap(this.filteredAssets);\r\n this.placedAssets = this.sortingService.runSort(this.determineFilterAndRun()).slice(0);\r\n this.placeAssetsOnMap(this.placedAssets).then(promisedValue => {});\r\n });\r\n }\r\n\r\n public ngOnChanges(changes: SimpleChanges): void {\r\n if (changes) {\r\n for (const propName in changes) {\r\n if (changes.hasOwnProperty(propName)) {\r\n console.log(`ngOnChanges - ${propName}`);\r\n }\r\n }\r\n }\r\n if (this.stLocation) {\r\n if (!this.locationMarker || (this.locationMarker.getLatLng().lat !== this.stLocation.gps.latitude && this.locationMarker.getLatLng().lng !== this.stLocation.gps.longitude)) {\r\n this.placeLocationOnMap(this.stLocation);\r\n this.filterService.setCurrentLocation(this.stLocation);\r\n }\r\n } else {\r\n this.removeLocationFromMap();\r\n }\r\n\r\n if (this.listAssets) {\r\n this.updateAssetLists();\r\n } else {\r\n this.removeAssetsFromMap();\r\n }\r\n\r\n this.environmentService.environmentPromise.then(() => {\r\n this.activeUserProfileService.activeUserProfilePromise.then((userAccessGateway: UserAccessGateway) => {\r\n this.activeUserProfileService.checkPermissionsLocationInfo(this.stLocation)\r\n .then((userHasPermission: boolean) => {\r\n this.userHasAccess = userHasPermission;\r\n });\r\n this.whatfixService.setRoles(userAccessGateway, this.stLocation);\r\n });\r\n });\r\n }\r\n\r\n public updateAssetLists() {\r\n this.listAssets.forEach(asset => {\r\n this.localDataService.syncConfirmationStatus(asset);\r\n });\r\n this.filterService.setCurrentAssetList(this.listAssets);\r\n this.filteredAssets = this.filterService.filterCurrentAssetList();\r\n this.assetInfoArrayMap = this.createAssetInfoArrayMap(this.filteredAssets);\r\n this.placedAssets = this.sortingService.runSort(this.determineFilterAndRun()).slice(0);\r\n this.placeAssetsOnMap(this.placedAssets).then(promisedValue => {});\r\n }\r\n\r\n public async placeLocationOnMap(location: StLocation): Promise {\r\n const map = await this.mapService.getMapRef();\r\n if (this.locationMarker) {\r\n map.removeLayer(this.locationMarker);\r\n }\r\n const locationLatLng = latLng(location.gps.latitude, location.gps.longitude);\r\n\r\n this.locationMarker = new Marker(locationLatLng, {\r\n icon: icon({\r\n iconSize: [25, 25],\r\n iconAnchor: [13, 25],\r\n iconUrl: this.determineLocationIcon(location),\r\n })\r\n });\r\n\r\n this.locationMarker.bindTooltip(`${location.countryCode} ${location.slicAbbreviation}-${location.slic}`, {\r\n permanent: true,\r\n direction: 'bottom',\r\n opacity: .70\r\n });\r\n\r\n map.addLayer(this.locationMarker);\r\n map.setView(locationLatLng, 18);\r\n }\r\n\r\n public async placeAssetsOnMap(assets: AssetInfo[]): Promise {\r\n const map = await this.mapService.getMapRef();\r\n\r\n if (this.assetMarkers) {\r\n map.removeLayer(this.assetMarkers);\r\n }\r\n this.assetMarkers = new LayerGroup();\r\n\r\n for (const asset of assets) {\r\n if (!asset.frontEndExclusive?.slotted) {\r\n this.createAssetMarker(asset);\r\n }\r\n }\r\n\r\n map.addLayer(this.assetMarkers);\r\n }\r\n\r\n public determineEsnConfidenceIconNeeded(asset: AssetInfo): boolean {\r\n if (asset.equipment?.esnConfidence) {\r\n if (asset.equipment.esnConfidence === 'CONFIDENT' ||\r\n asset.equipment.esnConfidence === 'CANNOT_DETERMINE' ||\r\n asset.equipment.esnConfidence === 'NOT_CONFIDENT') {\r\n return true;\r\n } else if (asset.equipment?.gpsDetails) {\r\n if (asset.equipment.gpsDetails.hasLowBattery === true || asset.equipment?.gpsDetails?.gpsStale === true) {\r\n return true;\r\n }\r\n }\r\n }\r\n return false;\r\n }\r\n\r\n public determineEsnConfidenceColor(asset: AssetInfo) {\r\n if ((asset.equipment?.gpsDetails && (asset.equipment?.gpsDetails?.hasLowBattery === true || asset.equipment?.gpsDetails?.gpsStale === true)) ||\r\n (asset.equipment?.esnConfidence && asset.equipment.esnConfidence === 'NOT_CONFIDENT')) {\r\n return 'ups-red';\r\n }\r\n }\r\n\r\n public determineEsnConfidence(asset: AssetInfo): string {\r\n if (asset.equipment?.gpsDetails && (asset.equipment?.gpsDetails?.hasLowBattery === true || asset.equipment?.gpsDetails?.gpsStale === true)) {\r\n return 'uxd-wifi-error';\r\n } else {\r\n if (asset.equipment.esnConfidence) {\r\n if (asset.equipment.esnConfidence === 'CONFIDENT') {\r\n return 'uxd-wifi';\r\n } else if (asset.equipment.esnConfidence === 'CANNOT_DETERMINE') {\r\n return 'uxd-wifi-unknown-issue';\r\n } else if (asset.equipment.esnConfidence === 'NOT_CONFIDENT') {\r\n return 'uxd-wifi-error';\r\n }\r\n }\r\n }\r\n }\r\n\r\n public determineGpsConfidenceNeeded(asset: AssetInfo): boolean {\r\n if (asset.equipment?.gpsDetails?.confidence) {\r\n if (asset.equipment.gpsDetails.confidence === 'WAITING' ||\r\n asset.equipment.gpsDetails.confidence === 'NO_CONFIDENCE' ||\r\n asset.equipment.gpsDetails.confidence === 'HIGH_CONFIDENCE' ||\r\n asset.equipment.gpsDetails.confidence === 'LOW_CONFIDENCE' ||\r\n asset.equipment.gpsDetails.confidence === 'SITE' ||\r\n (asset.dataSources.length === 1 && asset.dataSources[0] === 'TAM')) {\r\n return true;\r\n } else {\r\n return false;\r\n }\r\n } else {\r\n return false;\r\n }\r\n }\r\n\r\n public determineGpsConfidenceColor(asset: AssetInfo) {\r\n if (asset.equipment?.gpsDetails?.confidence && asset.dataSources.length === 1 && asset.dataSources[0] === 'TAM') {\r\n return 'ups-yellow';\r\n }\r\n }\r\n\r\n public determineGpsConfidence(asset: AssetInfo): string {\r\n if (asset.equipment?.gpsDetails?.confidence) {\r\n if (asset.equipment.gpsDetails.confidence === 'WAITING') {\r\n return 'uxd-gps-waiting';\r\n } else if (asset.equipment.gpsDetails.confidence === 'NO_CONFIDENCE') {\r\n return 'uxd-location-disabled';\r\n } else if (asset.equipment.gpsDetails.confidence === 'HIGH_CONFIDENCE') {\r\n return 'uxd-gps-fixed';\r\n } else if (asset.equipment.gpsDetails.confidence === 'LOW_CONFIDENCE') {\r\n return 'uxd-gps-conf-low';\r\n } else if (asset.equipment.gpsDetails.confidence === 'SITE') {\r\n return 'uxd-location-off';\r\n } else if (asset.dataSources.length === 1 && asset.dataSources[0] === 'TAM') {\r\n return 'uxd-location-off';\r\n }\r\n }\r\n }\r\n\r\n public createAssetMarker(asset: AssetInfo): void {\r\n if (asset.equipment?.gpsDetails?.latitude && asset.equipment?.gpsDetails?.longitude) {\r\n const locationLatLng = latLng(asset.equipment.gpsDetails.latitude, asset.equipment.gpsDetails.longitude);\r\n const circleMarkerOptions: CircleMarkerOptions = {\r\n radius: 2,\r\n color: this.determineAssetColor(asset)\r\n };\r\n const assetMarker = new CircleMarker(locationLatLng, circleMarkerOptions);\r\n\r\n this.assetMarkers.addLayer(assetMarker);\r\n }\r\n }\r\n\r\n public determineAssetColor(asset: AssetInfo): string {\r\n switch (asset.equipment.equipmentType) {\r\n case 'TL':\r\n return '#FF0000';\r\n case 'TD':\r\n return '#39ff14';\r\n case 'TR':\r\n return '#0000FF';\r\n default:\r\n return '#FFA500';\r\n }\r\n }\r\n\r\n public determineLocationIcon(location: StLocation): string {\r\n switch (location.opTypeCode) {\r\n case 'HUB':\r\n return 'assets/svg/map-icons/locations/Hub.svg';\r\n case 'PKG':\r\n return 'assets/svg/map-icons/locations/Center.svg';\r\n case 'XPT':\r\n return 'assets/svg/map-icons/locations/Meet-Point.svg';\r\n case 'CPU':\r\n return 'assets/svg/map-icons/locations/CPU.svg';\r\n case 'CPX':\r\n return 'assets/svg/map-icons/locations/CPX.svg';\r\n case 'CSL':\r\n return 'assets/svg/map-icons/locations/CSL.svg';\r\n case 'FRT':\r\n return 'assets/svg/map-icons/locations/Freight.svg';\r\n case 'RRY':\r\n return 'assets/svg/map-icons/locations/Railhead.svg';\r\n case 'APT':\r\n return 'assets/svg/map-icons/locations/Airport.svg';\r\n case '275':\r\n return 'assets/svg/map-icons/locations/TrailerShop.svg';\r\n case 'DSH':\r\n return 'assets/svg/map-icons/locations/Drop Shipper.svg';\r\n case 'DSO':\r\n return 'assets/svg/map-icons/locations/Drop Shipper.svg';\r\n case 'BTL':\r\n return 'assets/svg/map-icons/locations/Coyote.svg';\r\n case 'TLY':\r\n return 'assets/svg/map-icons/locations/Trailer Leasing Yard.svg';\r\n default:\r\n return 'assets/svg/map-icons/locations/Hub.svg';\r\n }\r\n }\r\n\r\n // the panmove and panend events unfortunately seem to not be typed in their library\r\n public onPanMove(event: unknown): void {\r\n this.swipeService.onPanMove(event as HammerInput);\r\n }\r\n\r\n public onPanEnd(event: unknown): void {\r\n this.swipeService.onPanEnd(event as HammerInput, this.setSnappedToBottom.bind(this));\r\n }\r\n\r\n public setSnappedToBottom(snappedToBottom: boolean): void {\r\n this.snappedToBottom = snappedToBottom;\r\n }\r\n\r\n public onTap(tapAction: string) {\r\n if (this.activeUserProfileService.checkPermissionsLocationInfo(this.stLocation)) {\r\n if ((tapAction === 'Yard Check' && this.activeUserProfileService.checkPermissionsLocationInfo(this.stLocation) ||\r\n tapAction !== 'Yard Check')) {\r\n if (tapAction === 'collapse') {\r\n this.setSnappedToBottom(true);\r\n this.swipeService.summaryViewSlideDown();\r\n } else if (tapAction === this.viewType) {\r\n this.setSnappedToBottom(false);\r\n this.swipeService.summaryViewSlideUp();\r\n } else {\r\n const navigationParameters = [\r\n 'site',\r\n this.stLocation.countryCode,\r\n this.stLocation.slicAbbreviation,\r\n ];\r\n\r\n if (tapAction === 'On Property') {\r\n navigationParameters.push('onproperty');\r\n } else if (tapAction === 'Inbound') {\r\n navigationParameters.push('inbound');\r\n } else if (tapAction === 'Yard Check') {\r\n navigationParameters.push('yardcheck');\r\n } else if (tapAction === 'Location Info') {\r\n navigationParameters.push('info');\r\n }\r\n\r\n this.setSnappedToBottom(false);\r\n this.swipeService.summaryViewSlideUp();\r\n this.ngZone.run(() => this.router.navigate([...navigationParameters]));\r\n }\r\n }\r\n }\r\n }\r\n\r\n public onTapSummaryCard(asset: AssetInfo) {\r\n if (!asset.frontEndExclusive?.emptyBay) {\r\n const navigationParameters = [];\r\n navigationParameters.push('site', this.stLocation.countryCode, this.stLocation.slicAbbreviation);\r\n\r\n if (this.viewType === 'On Property' || this.viewType === 'Yard Check') {\r\n navigationParameters.push('onproperty');\r\n } else if (this.viewType === 'Inbound') {\r\n navigationParameters.push('inbound');\r\n }\r\n\r\n navigationParameters.push(asset.equipment.equipmentType, asset.equipment.equipmentNumber);\r\n this.ngZone.run(() => this.router.navigate([...navigationParameters]));\r\n }\r\n }\r\n\r\n public async removeLocationFromMap(): Promise {\r\n if (this.locationMarker) {\r\n const map = await this.mapService.getMapRef();\r\n map.removeLayer(this.locationMarker);\r\n }\r\n }\r\n\r\n public async removeAssetsFromMap(): Promise {\r\n if (this.assetMarkers) {\r\n const map = await this.mapService.getMapRef();\r\n map.removeLayer(this.assetMarkers);\r\n }\r\n }\r\n\r\n public createAssetInfoArrayMap(listAssets: AssetInfo[]): AssetInfoArrayMap {\r\n const assetInfoArrayMap = new AssetInfoArrayMap();\r\n for (const asset of listAssets) {\r\n if (assetInfoArrayMap[asset.equipment.equipmentType]) {\r\n assetInfoArrayMap[asset.equipment.equipmentType].push(asset);\r\n } else {\r\n assetInfoArrayMap[asset.equipment.equipmentType] = [];\r\n assetInfoArrayMap[asset.equipment.equipmentType].push(asset);\r\n }\r\n }\r\n return assetInfoArrayMap;\r\n }\r\n\r\n public determineFilterAndRun(): AssetInfo[] {\r\n if (this.viewType === 'On Property') {\r\n if (this.onPropertyFilters.trailer) {\r\n return this.filterByType('TL');\r\n } else if (this.onPropertyFilters.tractor) {\r\n return this.filterByType('TR');\r\n } else if (this.onPropertyFilters.dolly) {\r\n return this.filterByType('TD');\r\n } else if (this.onPropertyFilters.other) {\r\n return this.filterByOther();\r\n }\r\n }\r\n return this.filteredAssets;\r\n }\r\n\r\n public resetFilter() {\r\n Object.keys(this.onPropertyFilters).forEach(key => {\r\n this.onPropertyFilters[key] = false;\r\n });\r\n }\r\n\r\n public setSelectedFilterBooleans(equipmentType: string) {\r\n this.resetFilter();\r\n if (equipmentType === 'TL') {\r\n this.onPropertyFilters.trailer = true;\r\n } else if (equipmentType === 'TR') {\r\n this.onPropertyFilters.tractor = true;\r\n } else if (equipmentType === 'TD') {\r\n this.onPropertyFilters.dolly = true;\r\n } else if (equipmentType === 'other') {\r\n this.onPropertyFilters.other = true;\r\n }\r\n }\r\n\r\n public setSelectedFilter(equipmentType: string): void {\r\n this.setSelectedFilterBooleans(equipmentType);\r\n this.location.replaceState(`site/${this.stLocation.countryCode}/${this.stLocation.slicAbbreviation}/onproperty/${equipmentType}`);\r\n this.placedAssets = this.sortingService.runSort(this.determineFilterAndRun()).slice(0);\r\n this.placeAssetsOnMap(this.placedAssets).then(r => {});\r\n }\r\n\r\n public filterByType(equipmentType: string): AssetInfo[] {\r\n if (this.assetInfoArrayMap[equipmentType]) {\r\n return this.assetInfoArrayMap[equipmentType];\r\n } else {\r\n return [];\r\n }\r\n }\r\n\r\n public filterByOther(): AssetInfo[] {\r\n const unwantedAssetTypes = ['TL', 'TR', 'TD'];\r\n return this.filteredAssets.filter((asset) => {\r\n if (asset.equipment?.equipmentType) {\r\n return unwantedAssetTypes.indexOf(asset.equipment.equipmentType) === -1;\r\n }\r\n return true;\r\n });\r\n }\r\n\r\n public runSort(sort: string): void {\r\n // slice to ensure a copy of an array is sent (needed for the virtual scroll)\r\n this.placedAssets = this.sortingService.activateAndRunSort(sort, this.placedAssets).slice(0);\r\n }\r\n\r\n public isConfirmed(asset: AssetInfo) {\r\n if (asset.frontEndExclusive) {\r\n if (asset.frontEndExclusive.confirmationStatus === 'CONFIRMED') {\r\n return true;\r\n } else if (asset.frontEndExclusive.confirmationStatus === 'REJECTED') {\r\n return false;\r\n }\r\n } else if (asset.equipment?.locationConfirmation?.locationConfirmationState) {\r\n if (asset.equipment.locationConfirmation?.locationConfirmationState === 'CONFIRMED') {\r\n return true;\r\n } else if (asset.equipment.locationConfirmation?.locationConfirmationState === 'REJECTED') {\r\n return false;\r\n }\r\n }\r\n return false;\r\n }\r\n\r\n public isUnknown(asset: AssetInfo) {\r\n if (asset.frontEndExclusive) {\r\n if (asset.frontEndExclusive.confirmationStatus === 'CONFIRMED') {\r\n return false;\r\n } else if (asset.frontEndExclusive.confirmationStatus === 'REJECTED') {\r\n return false;\r\n } else if (asset.frontEndExclusive.confirmationStatus === 'UNKNOWN') {\r\n return true;\r\n }\r\n } else if (asset.equipment?.locationConfirmation?.locationConfirmationState) {\r\n if (asset.equipment.locationConfirmation?.locationConfirmationState === 'CONFIRMED') {\r\n return false;\r\n } else if (asset.equipment.locationConfirmation?.locationConfirmationState === 'REJECTED') {\r\n return false;\r\n } else if (asset.frontEndExclusive.confirmationStatus === 'UNKNOWN') {\r\n return true;\r\n }\r\n } else {\r\n return true;\r\n }\r\n return true;\r\n }\r\n\r\n public clickActionButton(event: MouseEvent, asset: AssetInfo, actionButton: string): void {\r\n // dont do the normal detail opening event\r\n if (event) {\r\n event.stopPropagation();\r\n }\r\n if (!asset.frontEndExclusive?.confirmationPending && !asset.equipment?.onSiteNotArrivedLocation) {\r\n let locationConfirmation: LocationConfirmation;\r\n let bayAttributes: BayAttributes;\r\n const userId = this.authService.getUserId();\r\n const metric = this.stUserProfileService.createDefaultMetric(userId);\r\n switch (actionButton) {\r\n case 'confirm':\r\n if (!asset.frontEndExclusive) {\r\n asset.frontEndExclusive = new FrontEndExclusive();\r\n }\r\n locationConfirmation = this.createConfirmationUpdate(asset, 'CONFIRMED');\r\n this.localDataService.trackConfirmationStatus(asset, 'CONFIRMED', undefined);\r\n if (asset.frontEndExclusive.emptyBay === true) {\r\n\r\n console.log(`TrackLocConfirm - Sending Confirm location for Bay: ${asset.operations.bayNumber}::${asset.operations.bayPosition}`);\r\n this.stYardCheckService.locationConfimation(locationConfirmation).pipe(takeUntil(this.unsubscribe$)).subscribe(() => {\r\n this.localDataService.trackConfirmationStatus(asset, null, 'CONFIRMED');\r\n console.log(`TrackLocConfirm - Sent Confirm location for Bay: ${asset.operations.bayNumber}::${asset.operations.bayPosition}`);\r\n this.refreshUi();\r\n }, (error) => {\r\n this.localDataService.trackConfirmationStatus(asset, null, undefined);\r\n console.log(`TrackLocConfirm - Location Confirmation Update for Bay ${asset.operations.bayNumber}::${asset.operations.bayPosition} failed. Error: ${error.message}`);\r\n this.refreshUi();\r\n });\r\n } else {\r\n this.sendLocationConfirmationUpdate(asset, locationConfirmation);\r\n }\r\n metric.event = 'confirmLocation';\r\n break;\r\n case 'reject':\r\n if (!asset.frontEndExclusive) {\r\n asset.frontEndExclusive = new FrontEndExclusive();\r\n }\r\n metric.event = 'rejectLocation';\r\n locationConfirmation = this.createConfirmationUpdate(asset, 'REJECTED');\r\n this.localDataService.trackConfirmationStatus(asset, 'REJECTED', undefined);\r\n if (asset.frontEndExclusive.emptyBay === true) {\r\n this.stYardCheckService.locationConfimation(locationConfirmation).pipe(takeUntil(this.unsubscribe$)).subscribe(() => {\r\n this.localDataService.trackConfirmationStatus(asset, null, 'REJECTED');\r\n this.placedAssets = this.sortingService.runSort(this.placedAssets).slice(0);\r\n }, (error) => {\r\n asset.frontEndExclusive.confirmationPending = null;\r\n });\r\n } else {\r\n if(!this.rejectReasonFeatureFlagIsEnabled()) {\r\n this.sendLocationConfirmationUpdate(asset, locationConfirmation);\r\n } else {\r\n this.openRejectAssetDialog(asset, locationConfirmation);\r\n break;\r\n }\r\n }\r\n this.placedAssets = this.sortingService.runSort(this.placedAssets).slice(0);\r\n break;\r\n case 'moveBay':\r\n if ((asset.frontEndExclusive?.emptyBay === true || !asset.operations?.bayNumber) && this.onSiteNotArrivedFeatureFlagIsEnabled()) {\r\n this.openInsertAssetDialog(asset);\r\n } else {\r\n this.openMoveBayDialog(asset);\r\n }\r\n break;\r\n case 'available':\r\n if (!asset.frontEndExclusive) {\r\n asset.frontEndExclusive = new FrontEndExclusive();\r\n }\r\n asset.frontEndExclusive.bayAvailable = true;\r\n bayAttributes = new BayAttributes(asset.operations.bayNumber, userId, true);\r\n this.hfcsService.postBayAttributes(this.stLocation.countryCode, this.stLocation.slicAbbreviation, bayAttributes).pipe(takeUntil(this.unsubscribe$)).subscribe();\r\n metric.event = 'bayAvailable';\r\n this.placedAssets = this.sortingService.runSort(this.placedAssets).slice(0);\r\n break;\r\n case 'unavailable':\r\n if (!asset.frontEndExclusive) {\r\n asset.frontEndExclusive = new FrontEndExclusive();\r\n }\r\n asset.frontEndExclusive.bayAvailable = false;\r\n bayAttributes = new BayAttributes(asset.operations.bayNumber, userId, false);\r\n this.hfcsService.postBayAttributes(this.stLocation.countryCode, this.stLocation.slicAbbreviation, bayAttributes).pipe(takeUntil(this.unsubscribe$)).subscribe();\r\n metric.event = 'bayUnavailable';\r\n this.placedAssets = this.sortingService.runSort(this.placedAssets).slice(0);\r\n break;\r\n }\r\n metric.customFields.countryCode = this.stLocation.countryCode;\r\n metric.customFields.site = this.stLocation.slicAbbreviation;\r\n metric.customFields.region = this.stLocation.regionNumber;\r\n metric.customFields.district = this.stLocation.districtNumber;\r\n\r\n // send information about this current login to our user profile service\r\n if (event) {\r\n this.stUserProfileService.postEvent(metric);\r\n }\r\n }\r\n }\r\n\r\n public createConfirmationUpdate(asset: AssetInfo, confirmationStatus: string): LocationConfirmation {\r\n const userId = this.authService.getUserId();\r\n if (!asset.equipment.locationConfirmation) {\r\n asset.equipment.locationConfirmation = new LocationConfirmation();\r\n }\r\n const newLocationConfirmation = new LocationConfirmation();\r\n newLocationConfirmation.userId = userId;\r\n newLocationConfirmation.locationConfirmationState = confirmationStatus;\r\n newLocationConfirmation.timestamp = asset.equipment.locationConfirmation.timestamp;\r\n newLocationConfirmation.lastUpdateTimestamp = new Date().getTime();\r\n newLocationConfirmation.load = this.commonFunctionsSite.getPrimaryLoad(asset.operations?.loads);\r\n newLocationConfirmation.bayNumber = asset.operations.bayNumber;\r\n newLocationConfirmation.countryCode = this.stLocation.countryCode;\r\n newLocationConfirmation.slicAbbreviation = this.stLocation.slicAbbreviation;\r\n newLocationConfirmation.latitude = asset.equipment?.gpsDetails?.latitude;\r\n newLocationConfirmation.longitude = asset.equipment?.gpsDetails?.longitude;\r\n return newLocationConfirmation;\r\n }\r\n\r\n public sendLocationConfirmationUpdate(asset: AssetInfo, locationConfirmation: LocationConfirmation) {\r\n console.log(`TrackLocConfirm - Sending location confirmation for ${asset.operations.bayNumber}::${asset.operations.bayPosition}` +\r\n `::${asset.equipment?.equipmentType}::${asset.equipment?.equipmentNumber} - ${locationConfirmation.locationConfirmationState}`);\r\n this.reconciliationService.updateAssetConfirmation(asset.equipment.equipmentType, asset.equipment.equipmentNumber, locationConfirmation).pipe(takeUntil(this.unsubscribe$)).subscribe(() => {\r\n this.localDataService.trackConfirmationStatus(asset, null, locationConfirmation.locationConfirmationState);\r\n console.log(`TrackLocConfirm - Successful Location Confirmation Update for asset ${asset.operations.bayNumber}::${asset.operations.bayPosition}::${asset.equipment?.equipmentType}::${asset.equipment?.equipmentNumber}`);\r\n this.refreshUi();\r\n }, (error) => {\r\n this.localDataService.trackConfirmationStatus(asset, null, undefined);\r\n console.log(`TrackLocConfirm - Location Confirmation Update for asset ${asset.operations.bayNumber}::${asset.operations.bayPosition}::${asset.equipment?.equipmentType}::${asset.equipment?.equipmentNumber} failed.` +\r\n ` Error: ${error.message}`);\r\n this.refreshUi();\r\n });\r\n }\r\n\r\n public openMoveBayDialog(asset: AssetInfo): void {\r\n if(asset.operations?.bayNumber) {\r\n this.oldBay = asset.operations.bayNumber;\r\n \r\n let thisAsset = null;\r\n let nextAsset = null;\r\n let previousAsset = null;\r\n for (const asset1 of this.placedAssets) {\r\n let founded = false;\r\n const onPropertyAsset = asset1 as AssetInfo;\r\n if (thisAsset) {\r\n previousAsset = nextAsset;\r\n nextAsset = onPropertyAsset;\r\n break;\r\n }\r\n if (this.oldBay && onPropertyAsset.operations.bayNumber && this.commonFunctionsSite.padLeft(onPropertyAsset.operations.bayNumber, 4, '0') === this.commonFunctionsSite.padLeft(this.oldBay, 4, '0')) {\r\n if (onPropertyAsset.operations.bayPosition === asset.operations.bayPosition) {\r\n thisAsset = onPropertyAsset;\r\n founded = true;\r\n }\r\n }\r\n if (!founded) {\r\n previousAsset = nextAsset;\r\n nextAsset = onPropertyAsset;\r\n }\r\n }\r\n if (!thisAsset) {\r\n previousAsset = null;\r\n nextAsset = null;\r\n }\r\n\r\n\r\n if(this.pendingLocationUpdateFlag){\r\n this.pendingLocationUpdateFlag.pendingLocationUpdateFlag = true;\r\n }\r\n\r\n const dialogRefMoveBay = this.dialog.open(MoveBayDialogComponent, {\r\n width: '350px',\r\n maxWidth: '95vw',\r\n data: {\r\n asset,\r\n onPropertyAssets: this.listAssets,\r\n location: this.stLocation,\r\n nextAsset,\r\n previousAsset\r\n },\r\n autoFocus: false\r\n });\r\n\r\n dialogRefMoveBay.afterClosed().subscribe(result => {\r\n try{\r\n if (result.confirmed && this.listAssets) {\r\n const updateAssetsList = this.listAssets.slice();\r\n const updatesAsset = result.confirmed as AssetInfo;\r\n console.log('Pending Update on current asset: ' + updatesAsset.equipment.equipmentNumber +\r\n ' moved from bay ' + updatesAsset.frontEndExclusive.locationUpdateStatus.fromBayNumber + ' to bay ' + updatesAsset.frontEndExclusive.locationUpdateStatus.toBayNumber);\r\n\r\n // if toBay was empty before move, remove it from the list\r\n this.removeEmptyBay(updatesAsset, updateAssetsList);\r\n // if fromBay will be empty after move, insert it as empty bay\r\n this.verifyFromBayExists(updatesAsset, updateAssetsList);\r\n this.listAssets = updateAssetsList;\r\n this.updateYardCheckRefreshCache();\r\n this.refreshUi();\r\n console.log(`Sending Confirm location after move for asset:` +\r\n `${updatesAsset.operations.bayNumber}::${updatesAsset.operations.bayPosition}::${updatesAsset.equipment?.equipmentType}::${updatesAsset.equipment?.equipmentNumber}`);\r\n\r\n this.clickActionButton(null, result.confirmed, 'confirm');\r\n\r\n this.refreshUi().then(promisedValue => {\r\n if (result.nextAsset && (this.commonFunctionsSite.padLeft(result.confirmed.operations?.bayNumber, 4, '0') === this.commonFunctionsSite.padLeft(result.nextAsset.operations?.bayNumber, 4, '0') &&\r\n result.nextAsset.operations?.bayPosition === result.confirmed.operations?.bayPosition) === false) {\r\n const asset2 = result.nextAsset as AssetInfo;\r\n const num = 'yardCheckBay' + asset2.operations?.bayNumber + ((asset2.operations?.bayPosition === undefined || asset2.operations?.bayPosition === '') ? '' : ('-' + asset2.operations?.bayPosition));\r\n const x = document.getElementById(num);\r\n if (x) {\r\n x.scrollIntoView();\r\n console.log(`next asset ${asset2.operations.bayNumber}`);\r\n }\r\n } else if (result.previousAsset && (this.commonFunctionsSite.padLeft(result.confirmed.operations?.bayNumber, 4, '0') === this.commonFunctionsSite.padLeft(result.previousAsset.operations?.bayNumber, 4, '0') &&\r\n result.previousAsset.operations?.bayPosition === result.confirmed.operations?.bayPosition) === false) {\r\n const asset2 = result.previousAsset as AssetInfo;\r\n const num = 'yardCheckBay' + asset2.operations?.bayNumber + ((asset2.operations?.bayPosition === undefined || asset2.operations?.bayPosition === '') ? '' : ('-' + asset2.operations?.bayPosition));\r\n const x = document.getElementById(num);\r\n if (x) {\r\n x.scrollIntoView();\r\n console.log(`previous asset ${asset2.operations.bayNumber}`);\r\n }\r\n }\r\n });\r\n } else if(result.insertTrailer) {\r\n this.openInsertAssetDialog(asset);\r\n }\r\n } catch (e) {\r\n console.log('Error during Move Bay Dialog close: ' + e);\r\n } finally {\r\n if (this.pendingLocationUpdateFlag) {\r\n this.pendingLocationUpdateFlag.pendingLocationUpdateFlag = false;\r\n }\r\n }\r\n });\r\n }\r\n }\r\n\r\n public openRejectAssetDialog(assetInfo: AssetInfo, locationConfirmation: LocationConfirmation): void {\r\n\r\n const dialogRefRejectAsset = this.dialog.open(RejectAssetDialogComponent, {\r\n width: '350px',\r\n maxWidth: '95vw',\r\n data: {\r\n asset: assetInfo,\r\n onPropertyAssets: this.listAssets,\r\n location: this.stLocation,\r\n },\r\n autoFocus: false\r\n });\r\n\r\n dialogRefRejectAsset.afterClosed().subscribe(rejectedData => {\r\n try {\r\n console.log('Reject Asset Dialog close');\r\n if (rejectedData) {\r\n locationConfirmation.rejectedReason = rejectedData.rejectReason;\r\n this.sendLocationConfirmationUpdate(assetInfo, locationConfirmation);\r\n } else {\r\n assetInfo.frontEndExclusive.confirmationPending = null;\r\n }\r\n\r\n const assetIndex = this.listAssets.findIndex((asset => (asset.equipment.equipmentNumber === assetInfo.equipment.equipmentNumber && asset.equipment.equipmentType === assetInfo.equipment.equipmentType)));\r\n if (assetIndex > -1) {\r\n this.listAssets[assetIndex] = assetInfo;\r\n } else {\r\n console.log('Asset not found after Reject reason update: ' + assetInfo.equipment.equipmentNumber);\r\n }\r\n if (rejectedData.newAsset) {\r\n const newAssetIndex = this.listAssets.findIndex((asset => (asset.equipment.equipmentNumber === rejectedData.newAsset.equipment.equipmentNumber\r\n && asset.equipment.equipmentType === rejectedData.newAsset.equipment.equipmentType)));\r\n if (newAssetIndex > -1) {\r\n this.listAssets[newAssetIndex] = rejectedData.newAsset;\r\n this.verifyFromBayExists(rejectedData.newAsset, this.listAssets);\r\n } else {\r\n this.listAssets.push(rejectedData.newAsset);\r\n const addedAssetIndex = this.listAssets.findIndex((asset => (asset.equipment.equipmentNumber === rejectedData.newAsset.equipment.equipmentNumber\r\n && asset.equipment.equipmentType === rejectedData.newAsset.equipment.equipmentType)));\r\n console.log('Adding new asset: Inserted Asset not found after Reject reason update: ' + rejectedData.newAsset.equipment.equipmentNumber);\r\n }\r\n }\r\n this.updateYardCheckRefreshCache();\r\n this.refreshUi();\r\n } catch (e) {\r\n console.log('Error during Reject Asset Dialog close: ' + e);\r\n assetInfo.frontEndExclusive.confirmationPending = null;\r\n }\r\n });\r\n }\r\n\r\n\r\n public ngOnDestroy(): void {\r\n this.unsubscribe$.next();\r\n this.unsubscribe$.complete();\r\n this.removeLocationFromMap();\r\n this.removeAssetsFromMap();\r\n }\r\n\r\n public determineOnSiteNotArrivedFont(asset: AssetInfo): string {\r\n let font = 'on-site-text';\r\n if (asset.equipment?.onSiteNotArrivedLocation) {\r\n font = 'on-site-text-small';\r\n }\r\n return font;\r\n }\r\n\r\n public openInsertAssetDialog(assetInfo: AssetInfo): void {\r\n\r\n const dialogRefInsertTrailer = this.dialog.open(InsertTrailerDialogComponent, {\r\n width: '350px',\r\n maxWidth: '95vw',\r\n data: {\r\n asset: assetInfo,\r\n onPropertyAssets: this.listAssets,\r\n location: this.stLocation,\r\n insertOnReject: false,\r\n },\r\n autoFocus: false\r\n });\r\n\r\n dialogRefInsertTrailer.afterClosed().subscribe(insertedTrailer => {\r\n try {\r\n if (insertedTrailer?.equipment) {\r\n console.log(`Insert Trailer Dialog close. Inserted trailer ${insertedTrailer.equipment.equipmentNumber} to Bay ${insertedTrailer.operations.bayNumber}`);\r\n \r\n const newAssetIndex = this.listAssets.findIndex((asset => (asset.equipment.equipmentNumber === insertedTrailer.equipment.equipmentNumber\r\n && asset.equipment.equipmentType === insertedTrailer.equipment.equipmentType)));\r\n if (newAssetIndex > -1) {\r\n this.listAssets[newAssetIndex] = insertedTrailer;\r\n } else {\r\n this.listAssets.push(insertedTrailer);\r\n console.log('Adding new asset: ' + insertedTrailer.equipment.equipmentNumber);\r\n }\r\n // if toBay was empty before move, remove it from the list\r\n this.removeEmptyBay(insertedTrailer, this.listAssets);\r\n // if fromBay will be empty after move, insert it as empty bay\r\n this.verifyFromBayExists(insertedTrailer, this.listAssets);\r\n this.updateYardCheckRefreshCache();\r\n this.refreshUi();\r\n \r\n } else {\r\n console.log('Insert Trailer Dialog Canceled.');\r\n }\r\n } catch (e) {\r\n console.log('Error during Insert Trailer Dialog close: ' + e);\r\n }\r\n });\r\n }\r\n\r\n\r\n /**\r\n * The refresh cache needs to be updated to ensure that local updates in here are included in partial and full refreshes\r\n *\r\n * @private\r\n */\r\n private updateYardCheckRefreshCache() {\r\n this.onPropertyService.updateYardCheckCache(this.listAssets, this.stLocation.countryCode, this.stLocation.slicAbbreviation);\r\n }\r\n\r\n private removeEmptyBay(updatedAsset: AssetInfo, updateAssetsList: AssetInfo[]): void {\r\n\r\n updateAssetsList.forEach((asset, index) => {\r\n const onPropertyAsset = asset as AssetInfo;\r\n if (onPropertyAsset.operations.bayNumber === updatedAsset.operations.bayNumber){\r\n console.log(`Found bay - ${onPropertyAsset.operations.bayNumber} and is ${onPropertyAsset.frontEndExclusive?.emptyBay?'Empty':'Not Empty'}`);\r\n if (onPropertyAsset.frontEndExclusive?.emptyBay) {\r\n // if (onPropertyAsset.frontEndExclusive?.emptyBay && onPropertyAsset.operations.bayNumber === updatedAsset.operations.bayNumber){\r\n updateAssetsList.splice(index,1);\r\n console.log('Removed empty bay ' + onPropertyAsset.operations.bayNumber + ' after asset ' + updatedAsset.equipment.equipmentNumber +\r\n ' moved from bay ' + updatedAsset.frontEndExclusive.locationUpdateStatus.fromBayNumber + ' to bay ' + updatedAsset.frontEndExclusive.locationUpdateStatus.toBayNumber);\r\n }\r\n }\r\n if (onPropertyAsset.operations.bayNumber === updatedAsset.frontEndExclusive.locationUpdateStatus.fromBayNumber){\r\n console.log(`Checking again: Found from bay - ${onPropertyAsset.operations.bayNumber} and is ${onPropertyAsset.frontEndExclusive?.emptyBay?'Empty':'Not Empty'}`);\r\n }\r\n });\r\n }\r\n\r\n private verifyFromBayExists(updatedAsset: AssetInfo, updateAssetsList: AssetInfo[]): void {\r\n let bayNotFound = true;\r\n if(updatedAsset.frontEndExclusive?.locationUpdateStatus?.fromBayNumber){\r\n const fromBay = updatedAsset.frontEndExclusive.locationUpdateStatus.fromBayNumber;\r\n for (const asset of updateAssetsList) {\r\n const onPropertyAsset = asset as AssetInfo;\r\n if (onPropertyAsset.operations.bayNumber && onPropertyAsset.operations.bayNumber === fromBay) {\r\n bayNotFound = false;\r\n console.log('FromBay ' + fromBay + ' not empty after the move');\r\n break;\r\n }\r\n }\r\n if (bayNotFound) {\r\n const emptyBay = new AssetInfo(new OnPropertyOperations());\r\n emptyBay.operations.bayNumber = fromBay.padStart(4, '0');\r\n emptyBay.frontEndExclusive.emptyBay = true;\r\n emptyBay.frontEndExclusive.bayAvailable = true;\r\n console.log('FromBay ' + fromBay + ' is empty after the move');\r\n updateAssetsList.push(emptyBay);\r\n }\r\n }\r\n }\r\n\r\n private async refreshUi(): Promise {\r\n this.updateAssetLists();\r\n console.log('refreshUI called');\r\n }\r\n\r\n private rejectReasonFeatureFlagIsEnabled(): boolean {\r\n return this.launchDarklyService.getFlag('Mobile-YC-Reject-Reasons-Feature-Key');\r\n }\r\n\r\n private onSiteNotArrivedFeatureFlagIsEnabled(): boolean {\r\n return this.launchDarklyService.getFlag('Mobile-On-Site-Not-Arrived-Insert');\r\n }\r\n\r\n}\r\n","
\r\n
\r\n
\r\n \r\n \r\n \r\n \r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n \r\n
\r\n
\r\n
{{viewHeader}}
\r\n
{{placedAssets | assetsInList: viewType:onPropertyFilters}}
\r\n
\r\n \r\n
\r\n
\r\n
\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n
\r\n
Trailer
\r\n
Tractor
\r\n
Dolly
\r\n
Other
\r\n
\r\n\r\n \r\n\r\n \r\n
\r\n \r\n
\r\n
\r\n
{{asset.equipment?.onSiteNotArrivedLocation?.bayNumber}} {{asset.equipment?.onSiteNotArrivedLocation?.bayPosition}}
\r\n
\r\n
Empty / Loaded
\r\n
Empty / Loaded
\r\n
\r\n
On Site, Not Arrived
\r\n
{{asset.operations?.bayNumber}} {{asset.operations?.bayPosition}}
\r\n
\r\n \r\n \r\n uxd-maint-manual\r\n \r\n \r\n
\r\n
\r\n
\r\n
\r\n \r\n
\r\n
\r\n
\r\n
\r\n\r\n \r\n
\r\n \r\n
\r\n
\r\n \r\n
\r\n
\r\n
\r\n \r\n
\r\n
\r\n
\r\n
\r\n\r\n \r\n
\r\n \r\n
\r\n
\r\n
{{asset.equipment?.onSiteNotArrivedLocation?.bayNumber}} {{asset.equipment?.onSiteNotArrivedLocation?.bayPosition}}
\r\n
On Site, Not Arrived
\r\n
\r\n
Empty / Loaded
\r\n
Empty / Loaded
\r\n
\r\n
{{asset.operations?.bayNumber}} {{asset.operations?.bayPosition}}
\r\n
\r\n \r\n \r\n \r\n \r\n \r\n
\r\n
\r\n
\r\n
\r\n \r\n
\r\n EMPTY BAY\r\n
\r\n
\r\n
\r\n
\r\n \r\n
\r\n
\r\n \r\n
\r\n
\r\n \r\n
\r\n
\r\n \r\n
\r\n
\r\n \r\n
\r\n
\r\n
\r\n
\r\n
\r\n\r\n
\r\n \r\n
\r\n
","import { ViewportScroller } from '@angular/common';\r\nimport { ErrorHandler } from '@angular/core';\r\n\r\n/**\r\n * Manages the scroll position for a browser window.\r\n */\r\nexport class CustomViewportScroller implements ViewportScroller {\r\n constructor(private scrollElementID: string, private document: Document, private window: any, private errorHandler: ErrorHandler) { }\r\n\r\n /**\r\n * Configures the top offset used when scrolling to an anchor.\r\n * or a function that returns the top offset position.\r\n *\r\n * @param offset A position in screen coordinates (a tuple with x and y values)\r\n *\r\n */\r\n setOffset(offset: [number, number] | (() => [number, number])): void {\r\n if (Array.isArray(offset)) {\r\n this.offset = () => offset;\r\n } else {\r\n this.offset = offset;\r\n }\r\n }\r\n\r\n /**\r\n * Retrieves the current scroll position.\r\n *\r\n * @returns The position in screen coordinates.\r\n */\r\n getScrollPosition(): [number, number] {\r\n const scrollEl = this.document.querySelector(`#${this.scrollElementID}`);\r\n if (this.supportScrollRestoration() && scrollEl) {\r\n return [scrollEl.scrollLeft, scrollEl.scrollTop];\r\n } else {\r\n return [0, 0];\r\n }\r\n }\r\n\r\n /**\r\n * Sets the scroll position.\r\n *\r\n * @param position The new position in screen coordinates.\r\n */\r\n scrollToPosition(position: [number, number]): void {\r\n // Need to delay slightly to allow the scoll container to be rendered by\r\n // angular. Coming back from summary to detail, the data will always be\r\n // cached, so it should be available very quickly (hence only allowing a\r\n // a few milliseconds).\r\n setTimeout(() => {\r\n const scrollEl = this.document.querySelector(`#${this.scrollElementID}`);\r\n if (this.supportScrollRestoration() && scrollEl) {\r\n scrollEl.scrollTo(position[0], position[1]);\r\n }\r\n }, 5);\r\n }\r\n\r\n /**\r\n * Scrolls to an anchor element.\r\n *\r\n * @param anchor The ID of the anchor element.\r\n */\r\n scrollToAnchor(anchor: string): void {\r\n if (this.supportScrollRestoration()) {\r\n // Escape anything passed to `querySelector` as it can throw errors and stop the application\r\n // from working if invalid values are passed.\r\n if (this.window.CSS && this.window.CSS.escape) {\r\n anchor = this.window.CSS.escape(anchor);\r\n } else {\r\n anchor = anchor.replace(/(\\\"|\\'\\ |:|\\.|\\[|\\]|,|=)/g, '\\\\$1');\r\n }\r\n try {\r\n const elSelectedById = this.document.querySelector(`#${anchor}`);\r\n if (elSelectedById) {\r\n this.scrollToElement(elSelectedById);\r\n return;\r\n }\r\n const elSelectedByName = this.document.querySelector(`[name='${anchor}']`);\r\n if (elSelectedByName) {\r\n this.scrollToElement(elSelectedByName);\r\n return;\r\n }\r\n } catch (e) {\r\n this.errorHandler.handleError(e);\r\n }\r\n }\r\n }\r\n\r\n /**\r\n * Disables automatic scroll restoration provided by the browser.\r\n */\r\n setHistoryScrollRestoration(scrollRestoration: 'auto' | 'manual'): void {\r\n if (this.supportScrollRestoration()) {\r\n const history = this.window.history;\r\n if (history && history.scrollRestoration) {\r\n history.scrollRestoration = scrollRestoration;\r\n }\r\n }\r\n }\r\n\r\n private offset: () => [number, number] = () => [0, 0];\r\n\r\n private scrollToElement(el: any): void {\r\n const rect = el.getBoundingClientRect();\r\n const left = rect.left + this.window.pageXOffset;\r\n const top = rect.top + this.window.pageYOffset;\r\n const offset = this.offset();\r\n this.window.scrollTo(left - offset[0], top - offset[1]);\r\n }\r\n\r\n /**\r\n * We only support scroll restoration when we can get a hold of window.\r\n * This means that we do not support this behavior when running in a web worker.\r\n *\r\n * Lifting this restriction right now would require more changes in the dom adapter.\r\n * Since webworkers aren't widely used, we will lift it once RouterScroller is\r\n * battle-tested.\r\n */\r\n private supportScrollRestoration(): boolean {\r\n try {\r\n return !!this.window && !!this.window.scrollTo;\r\n } catch {\r\n return false;\r\n }\r\n }\r\n}\r\n","export class Activity {\r\n slic: string;\r\n slicAbbreviation: string;\r\n timestamp: string;\r\n type: string;\r\n\r\n constructor() { }\r\n}\r\n","import { UpsLocation } from './ups-location';\r\n\r\nexport class AssetEvent {\r\n assetDocument: string;\r\n customFields: any;\r\n eventSource: string;\r\n eventType: string;\r\n lat: number;\r\n lng: number;\r\n timestamp: number;\r\n upsLocation: UpsLocation[];\r\n\r\n constructor() { }\r\n}\r\n","import { AssetInfo } from './asset-info';\r\nimport { Operations } from './operations';\r\n\r\nexport class AssetInfoArrayMap {\r\n [equipmentType: string]: AssetInfo[];\r\n\r\n constructor() {\r\n this.TL = [];\r\n this.TR = [];\r\n this.TD = [];\r\n }\r\n}\r\n","import { Equipment } from './equipment';\r\nimport { Operations } from './operations';\r\nimport { FrontEndExclusive } from './front-end-exclusive';\r\n\r\nexport class AssetInfo {\r\n dataSources: string[];\r\n equipment: Equipment;\r\n operations: T;\r\n updateStatus: string;\r\n frontEndExclusive: FrontEndExclusive;\r\n\r\n constructor(operations: T) {\r\n this.equipment = new Equipment();\r\n this.operations = operations;\r\n this.frontEndExclusive = new FrontEndExclusive();\r\n }\r\n}\r\n","import { MapLargeBay } from '../../model/maplarge/mapLargeBay';\r\nimport { GpsCoordinate } from '../location/gps-coordinate';\r\n\r\nexport class BayInformation {\r\n bay: MapLargeBay;\r\n distanceFromBay: string;\r\n bayCoordinates: GpsCoordinate[];\r\n\r\n constructor() { }\r\n}\r\n","export class ChassisDetails {\r\n chassisNumber: string;\r\n demurrageTime: number;\r\n railActivity: string;\r\n railActivitySlic: string;\r\n railActivitySlicAbbreviation: string;\r\n railActivityTimeStamp: string;\r\n railRoad: string;\r\n\r\n constructor() { }\r\n}\r\n","export class CurrentUPSActivity {\r\n activitySystemNumber: number;\r\n activityTimeStamp: string;\r\n activityType: string;\r\n assetNumber: string;\r\n assetType: string;\r\n countryCode: string;\r\n eta: string;\r\n fromBay: string;\r\n lat: number;\r\n lng: number;\r\n messageReceivedTimeStamp: string;\r\n movementActivityEquipmentOid: string;\r\n oid: string;\r\n opTypeCode: string;\r\n slic: string;\r\n slicAbbreviation: string;\r\n toBay: string;\r\n trailerPosition: string;\r\n\r\n constructor() { }\r\n}\r\n","export class EquipmentStatus {\r\n code: string;\r\n comment: string;\r\n description: string;\r\n timestamp: string;\r\n\r\n constructor() { }\r\n}\r\n","import { AssetEvent } from './asset-event';\r\nimport { GpsDetails } from './gps-details';\r\nimport { LeaseInfo } from './lease-info';\r\nimport { EquipmentStatus } from './equipment-status';\r\nimport { Trailer } from './trailer';\r\nimport { LocationConfirmation } from '../reconciliation/location-confirmation';\r\nimport { LocationUpdateStatus } from '../reconciliation/location-update-status';\r\nimport { OnSiteNotArrivedLocation } from '../reconciliation/on-site-not-arrived-location';\r\n\r\nexport class Equipment {\r\n assetMake: string;\r\n assetModelYear: number;\r\n available: boolean;\r\n carGroupCode: string;\r\n carGroupDesc: string;\r\n currentEvent: AssetEvent;\r\n daysExpiredSincePmi: number;\r\n daysRemainingForPmi: number;\r\n equipmentNumber: string;\r\n equipmentSystemNumber: number;\r\n equipmentType: string;\r\n esnNumber: string;\r\n fhwaStatus: string;\r\n gpsDetails: GpsDetails;\r\n hasComments: boolean;\r\n lastPMIDate: string;\r\n lastUpdateTimeStamp: number;\r\n leaseInfo: LeaseInfo;\r\n licensePlate: string;\r\n locationConfirmation: LocationConfirmation;\r\n maintenanceWorkStatusCode: string;\r\n messageText: string;\r\n ownerCountryCode: string;\r\n ownerDistrictNumber: string;\r\n ownerRegionNumber: string;\r\n ownerSlicAbbreviation: string;\r\n pmiStatus: string;\r\n registrationExpiration: string;\r\n registrationState: string;\r\n solarUnit: boolean;\r\n status: EquipmentStatus;\r\n statusTimeStamp: string;\r\n trailer: Trailer;\r\n esnConfidence: string;\r\n locationUpdateStatus: LocationUpdateStatus;\r\n onSiteNotArrivedLocation: OnSiteNotArrivedLocation;\r\n\r\n constructor() {\r\n this.currentEvent = new AssetEvent();\r\n this.gpsDetails = new GpsDetails();\r\n this.leaseInfo = new LeaseInfo();\r\n this.locationConfirmation = new LocationConfirmation();\r\n this.status = new EquipmentStatus();\r\n this.trailer = new Trailer();\r\n this.locationUpdateStatus = new LocationUpdateStatus();\r\n }\r\n}\r\n","import { LocationUpdateStatus } from '../reconciliation/location-update-status';\r\nimport { BayInformation } from './bay-information';\r\n\r\nexport class FrontEndExclusive {\r\n slotted: boolean;\r\n undrawnBay: boolean;\r\n slottedInZone: number;\r\n emptyBay: boolean;\r\n confirmationStatus: string;\r\n confirmationStatusTimestamp: number;\r\n confirmationPending: string;\r\n bayAvailable: boolean;\r\n bayInformation: BayInformation;\r\n locationUpdateStatus: LocationUpdateStatus;\r\n\r\n constructor() {\r\n this.bayInformation = new BayInformation();\r\n this.locationUpdateStatus = new LocationUpdateStatus();\r\n }\r\n}\r\n","export class GpsDetails {\r\n confidence: string;\r\n eventTypeDescription: string;\r\n gpsStale: boolean;\r\n hasExternalPower: boolean;\r\n hasLowBattery: boolean;\r\n latitude: number;\r\n longitude: number;\r\n moving: boolean;\r\n\r\n constructor() { }\r\n}\r\n","/* eslint-disable @typescript-eslint/naming-convention */\r\n// need to ask if this object can change its non camelCase objects\r\nexport class LeaseInfo {\r\n LeaseActive: string;\r\n Lessor: string;\r\n monthlyCost: number;\r\n returnLocation: string;\r\n upsServiceStart: string;\r\n\r\n constructor() { }\r\n}\r\n","import { Operations } from './operations';\r\nimport { ChassisDetails } from './chassis-details';\r\nimport { ShiftActivity } from './shift-activity';\r\nimport { HfcsActivity } from './hfcs-activity';\r\nimport { ScanActivity } from './scan-activity';\r\nimport { OutOfAreaAlert } from './out-of-area-alert';\r\nimport { CurrentUPSActivity } from './current-ups-avtivity';\r\nimport { TrailerDunnage } from './trailer-dunnage';\r\n\r\nexport class OnPropertyOperations extends Operations {\r\n bayNumber: string;\r\n bayPosition: string;\r\n chassisDetails: ChassisDetails;\r\n fromBayNumber: string;\r\n shiftStatus: string;\r\n shiftStatusTimestamp: string;\r\n daysOnProperty: number;\r\n arrivalTimeStamp: string;\r\n onPropertyTimestamp: string;\r\n preDispatched: boolean;\r\n shiftActivity: ShiftActivity;\r\n shiftCommActivities: HfcsActivity[];\r\n hubCommActivities: HfcsActivity[];\r\n scanActivities: ScanActivity[];\r\n outOfAreaAlert: OutOfAreaAlert;\r\n currentUPSActivity: CurrentUPSActivity;\r\n trailerDunnage: TrailerDunnage;\r\n tagStatus: string;\r\n\r\n constructor() {\r\n super();\r\n this.chassisDetails = new ChassisDetails();\r\n this.shiftActivity = new ShiftActivity();\r\n this.outOfAreaAlert = new OutOfAreaAlert();\r\n this.currentUPSActivity = new CurrentUPSActivity();\r\n this.trailerDunnage = new TrailerDunnage();\r\n this.tagStatus = null;\r\n }\r\n}\r\n","import { Load } from './load';\r\nimport { UpsLocation } from './ups-location';\r\nimport { Activity } from './activity';\r\nimport { PackageVolumeSummary } from './package-volume-summary';\r\nimport { PackageVolumeByState } from './package-volume-by-state';\r\n\r\nexport class Operations {\r\n assignedCustomerSlicAbbreviation: string;\r\n alertSeverity: string;\r\n comments: string;\r\n destBagsPieceCount: number;\r\n endingLocationCountryCode: string;\r\n endingLocationSlic: string;\r\n endingLocationSlicAbbreviation: string;\r\n flatCarNumber: string;\r\n hasComments: boolean;\r\n hasCriticalCare: boolean;\r\n hasHazmat: boolean;\r\n hasIrregs: boolean;\r\n hasMultipleLoads: boolean;\r\n hasPriorityShipper: boolean;\r\n hasThresholdDestSmallsBags: boolean;\r\n highestServiceLevel: string;\r\n irregPieceCount: number;\r\n lastActivity: Activity;\r\n lastUpdateTimeStamp: string;\r\n legacyDataSources: string;\r\n loads: Load[];\r\n packageVolumeByState: PackageVolumeByState[];\r\n packageVolumeSummary: PackageVolumeSummary;\r\n pickupNumber: string;\r\n setHasDemurrageAlert: boolean;\r\n startingLocationCountryCode: string;\r\n startingLocationSlic: string;\r\n startingLocationSlicAbbreviation: string;\r\n upsLocations: UpsLocation[];\r\n\r\n constructor() {\r\n this.lastActivity = new Activity();\r\n this.packageVolumeSummary = new PackageVolumeSummary();\r\n\r\n }\r\n}\r\n","export class OutOfAreaAlert {\r\n tmsDashboardNotificationId: string;\r\n tmsDashboardMessage: string;\r\n assetType: string;\r\n assetNumber: string;\r\n owningRegion: string;\r\n owningDistrict: string;\r\n owningSlicAbbreviation: string;\r\n activityRegion: string;\r\n activityDistrict: string;\r\n activitySlicAbbreviation: string;\r\n timestamp: string;\r\n firstSeenOutOfAreaTimestamp: string;\r\n\r\n constructor() { }\r\n}\r\n","export class PackageVolumeSummary {\r\n bypassBags: number;\r\n bypassBagsPieces: number;\r\n bypassSmallsPieces: number;\r\n ccGroundPieces: number;\r\n ccOneDayPieces: number;\r\n ccPackages: number;\r\n ccThreeDayPieces: number;\r\n ccTwoDayPieces: number;\r\n destBags: number;\r\n destBagsPieces: number;\r\n destSmallsPieces: number;\r\n eamPieces: number;\r\n groundPieces: number;\r\n hasHazmat: boolean;\r\n irregularsPieces: number;\r\n oneDayPieces: number;\r\n psGroundPieces: number;\r\n psOneDayPieces: number;\r\n psPieces: number;\r\n psThreeDayPieces: number;\r\n psTwoDayPieces: number;\r\n saturdayPieces: number;\r\n smallsBags: number;\r\n smallsPieces: number;\r\n threeDayPieces: number;\r\n totalPieces: number;\r\n twoDayPieces: number;\r\n\r\n constructor() { }\r\n}\r\n","export class ShiftActivity {\r\n fromBay: string;\r\n timeStamp: string;\r\n toBay: string;\r\n type: string;\r\n\r\n constructor() { }\r\n}\r\n","export class TrailerDunnage {\r\n clean: boolean;\r\n pallets: boolean;\r\n palletVolume: number;\r\n bags: boolean;\r\n bagVolume: number;\r\n trash: boolean;\r\n gaylord: boolean;\r\n gaylordVolumeQuantity: number;\r\n hasDollies: boolean;\r\n dolliesVolumeQuantity: number;\r\n hasAutomotiveEquipment: boolean;\r\n hasPEEquipment: boolean;\r\n hasHubEquipment: boolean;\r\n\r\n constructor() {\r\n this.clean = null;\r\n this.pallets = null;\r\n this.palletVolume = null;\r\n this.bags = null;\r\n this.bagVolume = null;\r\n this.trash = null;\r\n this.gaylord = null;\r\n this.gaylordVolumeQuantity = null;\r\n this.hasDollies = null;\r\n this.dolliesVolumeQuantity = null;\r\n this.hasAutomotiveEquipment = null;\r\n this.hasPEEquipment = null;\r\n this.hasHubEquipment = null;\r\n }\r\n}\r\n","/* eslint-disable @typescript-eslint/naming-convention */\r\n// could these become camel case?\r\nexport class Trailer {\r\n Length: number;\r\n TypeCode: string;\r\n categoryGroupDescription: string;\r\n categoryMnemonic: string;\r\n height: number;\r\n\r\n constructor() { }\r\n}\r\n","export class BayAttributes {\r\n bayNumber: string;\r\n userId: string;\r\n available: boolean;\r\n\r\n\r\n constructor(bayNumber: string, userId: string, available: boolean) {\r\n this.bayNumber = bayNumber;\r\n this.userId = userId;\r\n this.available = available;\r\n }\r\n}\r\n","export class DunnageUpdate {\r\n userId: string;\r\n trailerNumber: string;\r\n bayNumber: string;\r\n hasTrash: boolean;\r\n hasPallets: boolean;\r\n palletVolumeQuantity: number;\r\n hasBags: boolean;\r\n bagVolumeQuantity: number;\r\n hasGaylords: boolean;\r\n gaylordsVolumeQuantity: number;\r\n hasDollies: boolean;\r\n dolliesVolumeQuantity: number;\r\n hasAutomotiveEquipment: boolean;\r\n hasPeEquipment: boolean;\r\n hasHubEquipment: boolean;\r\n\r\n constructor() {\r\n this.userId = null;\r\n this.trailerNumber = null;\r\n this.bayNumber = null;\r\n this.hasTrash = false;\r\n this.hasPallets = false;\r\n this.palletVolumeQuantity = 0;\r\n this.hasBags = false;\r\n this.bagVolumeQuantity = 0;\r\n this.hasGaylords = false;\r\n this.gaylordsVolumeQuantity = 0;\r\n this.hasDollies = false;\r\n this.dolliesVolumeQuantity = 0;\r\n this.hasAutomotiveEquipment = false;\r\n this.hasPeEquipment = false;\r\n this.hasHubEquipment = false;\r\n }\r\n}\r\n","export class PendingLocationUpdateFlag{\r\n pendingLocationUpdateFlag: boolean;\r\n constructor() { }\r\n};\r\n","import { GpsCoordinate } from './gps-coordinate';\r\n\r\nexport class ClosestPointOnLine {\r\n length: number;\r\n pointOnLine: GpsCoordinate;\r\n\r\n constructor(length: number, pointOnLine: GpsCoordinate) {\r\n this.length = length;\r\n this.pointOnLine = pointOnLine;\r\n }\r\n}\r\n","export class ConfirmationStatus {\r\n description: string;\r\n message: string;\r\n timestamp: string;\r\n\r\n constructor() { }\r\n}\r\n","export class GpsCoordinate {\r\n latitude: number;\r\n longitude: number;\r\n\r\n constructor(latitude?: number, longitude?: number) {\r\n if (latitude) {\r\n this.latitude = latitude;\r\n }\r\n if (longitude) {\r\n this.longitude = longitude;\r\n }\r\n }\r\n}\r\n","/* eslint-disable @typescript-eslint/naming-convention, no-underscore-dangle, id-blacklist, id-match */\r\nexport class MapLargeBay {\r\n BayNumber: string;\r\n BayGroupLabel: string;\r\n FloorLevel: number;\r\n geodenied: boolean;\r\n Exit: number;\r\n BayLength: string;\r\n CENTROID_LAT: number;\r\n CENTROID_LNG: number;\r\n Deleted: boolean;\r\n LastModifiedBy: string;\r\n LastModifiedTimestamp: string;\r\n Layout: string;\r\n primaryKey: string;\r\n RecordId: string;\r\n State: string;\r\n SubmittedBy: string;\r\n SubmittedTimestamp: string;\r\n Active: boolean;\r\n AssetType: string;\r\n bay_open_timeofday: number;\r\n BayTrailerCompatibility: string;\r\n BayType: string;\r\n LoadCode: string;\r\n MaxAssets: number;\r\n Row: number;\r\n ServiceLevel: string;\r\n Section: string;\r\n StackType: string;\r\n BayBoundaryType: string;\r\n AssetEquipmentType: string;\r\n TagCode: string;\r\n AssetCategory: string;\r\n WKT: string;\r\n noseLatitude: number;\r\n noseLongitude: number;\r\n zoomLatitude: number;\r\n zoomLongitude: number;\r\n occupied: number;\r\n}\r\n","/* eslint-disable @typescript-eslint/naming-convention */\r\nexport class MapLargeZone {\r\n BayRange: string;\r\n GeoDenied: boolean;\r\n CENTROID_LAT: number;\r\n CENTROID_LNG: number;\r\n Deleted: boolean;\r\n FloorLevel: number;\r\n LastModifiedBy: string;\r\n LastModifiedTimestamp: string;\r\n Layout: string;\r\n primaryKey: string;\r\n RecordId: string;\r\n State: string;\r\n SubmittedBy: string;\r\n SubmittedTimestamp: string;\r\n Active: boolean;\r\n AssetCategory: string;\r\n AssetEquipmentType: string;\r\n AssetType: string;\r\n ZoneType: string;\r\n ZoneName: string;\r\n LoadCode: string;\r\n MaxAssets: number;\r\n ServiceLevel: string;\r\n TagCode: string;\r\n WKT: string;\r\n zoomLatitude: number;\r\n zoomLongitude: number;\r\n occupied: number;\r\n hasBayRange: boolean;\r\n startBay: string;\r\n endBay: string;\r\n zoneId: number;\r\n zoneBays: ZoneBay[];\r\n}\r\n\r\nexport class ZoneBay {\r\n bayNumber: string;\r\n occupied: number;\r\n}\r\n","export class Metric {\r\n appName: string;\r\n appVersion: string;\r\n browser: string;\r\n customFields: any;\r\n deviceOS: string;\r\n event: string;\r\n userId: string;\r\n\r\n constructor() {\r\n this.customFields = {};\r\n }\r\n}\r\n","export class EquipmentLocationReconcile {\r\n bayLocCountryCode: string;\r\n bayOrgAbbvName: string;\r\n eqpNumber: string;\r\n eqpType: string;\r\n fromBayNumber: string;\r\n fromBayPosition: string;\r\n movementActivityEquipmentOid: string;\r\n statusTimestamp: string;\r\n toBayNumber: string;\r\n toBayPosition: string;\r\n updateTypeCode: string;\r\n userID: string;\r\n}\r\n","import { Load } from '../asset-info/load';\r\n\r\nexport class LocationConfirmation {\r\n userId: string;\r\n locationConfirmationState: string;\r\n timestamp: number;\r\n lastUpdateTimestamp: number;\r\n load: Load;\r\n bayNumber: string;\r\n bayPosition: string;\r\n countryCode: string;\r\n slicAbbreviation: string;\r\n longitude: number;\r\n latitude: number;\r\n rejectedReason: string;\r\n\r\n constructor() { }\r\n}\r\n","\r\n\r\nexport class LocationUpdateStatus {\r\n bayOrgAbbvName: string;\r\n\tbayLocCountryCode: string;\r\n\tstatusTimestamp: number;\r\n\treconciliationType: string;\r\n\tfromBayNumber: string;\r\n\tfromBayPosition: string;\r\n\ttoBayNumber: string;\r\n\ttoBayPosition: string;\r\n\tupdateStatus: string;\r\n\terrorDescription: string;\r\n\r\n constructor() { }\r\n}\r\n","export class OnSiteNotArrivedLocation {\r\n userId: string;\r\n timestamp: number;\r\n lastUpdateTimestamp: number;\r\n bayNumber: string;\r\n bayPosition: string;\r\n countryCode: string;\r\n slicAbbreviation: string;\r\n longitude: number;\r\n latitude: number;\r\n loaded: boolean;\r\n constructor() { }\r\n}\r\n","/* eslint-disable @typescript-eslint/naming-convention */\r\nexport class UserAccessGateway {\r\n aprsRoles: string;\r\n iss: string;\r\n sub: string;\r\n aud: string;\r\n exp: string;\r\n iat: string;\r\n auth_time: string;\r\n nonce: string;\r\n email: string;\r\n name: string;\r\n family_name: string;\r\n Region: string;\r\n Country: string;\r\n District: string;\r\n UPSmail: string;\r\n customRoles: Roles[];\r\n\r\n constructor() {\r\n this.aprsRoles = '';\r\n this.iss = '';\r\n this.sub = '';\r\n this.aud = '';\r\n this.exp = '';\r\n this.iat = '';\r\n this.auth_time = '';\r\n this.nonce = '';\r\n this.email = '';\r\n this.name = '';\r\n this.family_name = '';\r\n this.Region = '';\r\n this.Country = '';\r\n this.District = '';\r\n this.UPSmail = '';\r\n this.customRoles = [];\r\n }\r\n}\r\n\r\ninterface Roles {\r\n\tcorporate: boolean;\r\n district: Array;\r\n region: Array;\r\n role: string;\r\n slic: Array;\r\n }\r\n","import { NgModule, Injectable } from '@angular/core';\r\nimport { CommonModule } from '@angular/common';\r\n\r\nimport * as Hammer from 'hammerjs';\r\nimport { HammerGestureConfig, HAMMER_GESTURE_CONFIG, HammerModule } from '@angular/platform-browser';\r\n\r\n// Material\r\nimport { MatButtonModule } from '@angular/material/button';\r\nimport { MatCheckboxModule } from '@angular/material/checkbox';\r\n\r\n// Common components\r\nimport { IconComponent } from '../../common/icon/icon.component';\r\nimport { IconTextPairComponent } from '../../component/site/detail/icon-text-pair/icon-text-pair';\r\nimport { SubmitButtonComponent } from '../../common/submit-button/submit-button.component';\r\n\r\n// Pipes\r\nimport { AssetsInListPipe } from '../../common/pipes/assets-in-list';\r\nimport { DaysFromTodayPipe } from '../../common/pipes/daysFromToday';\r\nimport { JobNumberPipe } from '../../common/pipes/jobNumber';\r\nimport { DateTimeShort, DateTimeLong, DateShort, DateLong, TimeMilitary } from '../../common/pipes/dateTime';\r\nimport { LocaleDateTimeShort, LocaleDateShort,LocaleDateLong, LocaleTimeMilitary,LocaleSummaryDateShort} from '../../common/pipes/localeDateTime'\r\nimport { VrComponent } from 'src/app/common/vr/vr.component';\r\nimport { LoadingSpinnerComponent } from 'src/app/common/loading-spinner/loading-spinner.component';\r\nimport { SharedSvgLibModule } from '@tms/shared-svg';\r\n\r\n@Injectable({\r\n providedIn: 'root'\r\n})\r\nexport class TamHammerConfig extends HammerGestureConfig {\r\n overrides: any = {\r\n pan: { direction: Hammer.DIRECTION_VERTICAL },\r\n };\r\n}\r\n\r\n@NgModule({\r\n declarations: [\r\n IconComponent,\r\n IconTextPairComponent,\r\n SubmitButtonComponent,\r\n VrComponent,\r\n LoadingSpinnerComponent,\r\n AssetsInListPipe,\r\n DaysFromTodayPipe,\r\n JobNumberPipe,\r\n DateTimeShort,\r\n DateTimeLong,\r\n DateShort,\r\n DateLong,\r\n TimeMilitary,\r\n LocaleDateTimeShort,\r\n LocaleDateShort,\r\n LocaleDateLong,\r\n LocaleTimeMilitary,\r\n LocaleSummaryDateShort\r\n ],\r\n providers: [\r\n {\r\n provide: HAMMER_GESTURE_CONFIG,\r\n useClass: TamHammerConfig,\r\n },\r\n ],\r\n imports: [\r\n CommonModule,\r\n HammerModule,\r\n MatButtonModule,\r\n MatCheckboxModule,\r\n SharedSvgLibModule\r\n ],\r\n exports: [\r\n IconComponent,\r\n IconTextPairComponent,\r\n SubmitButtonComponent,\r\n VrComponent,\r\n LoadingSpinnerComponent,\r\n AssetsInListPipe,\r\n DaysFromTodayPipe,\r\n JobNumberPipe,\r\n DateTimeShort,\r\n DateTimeLong,\r\n DateShort,\r\n DateLong,\r\n TimeMilitary,\r\n LocaleDateTimeShort,\r\n LocaleDateShort,\r\n LocaleDateLong,\r\n LocaleTimeMilitary,\r\n LocaleSummaryDateShort\r\n ]\r\n})\r\nexport class StCommonModule { }\r\n","import { Injectable } from '@angular/core';\r\nimport { CanActivate, ActivatedRouteSnapshot, Router } from '@angular/router';\r\n\r\nimport { TamGisService } from '../../service/webservice/tam-gis/tam-gis.service';\r\nimport { ActiveUserProfileService } from '../../service/active-user-profile/active-user-profile.service';\r\n\r\n@Injectable()\r\nexport class YardCheckGuard implements CanActivate {\r\n\r\n constructor(\r\n public router: Router,\r\n public activeUserProfileService: ActiveUserProfileService,\r\n public tamGisService: TamGisService) { }\r\n\r\n public async canActivate(route: ActivatedRouteSnapshot): Promise {\r\n const params = route.params;\r\n return this.tamGisService.locationsPromise.then((locations) => {\r\n for (const location of locations) {\r\n if (location.countryCode === params.countryCode && location.slicAbbreviation === params.slicAbbr) {\r\n return this.activeUserProfileService.checkPermissionsLocationInfo(location).then(validUser => {\r\n if (validUser) {\r\n return true;\r\n } else {\r\n this.router.navigate(['site', params.countryCode, params.slicAbbr, 'onproperty']);\r\n return false;\r\n }\r\n });\r\n }\r\n }\r\n this.router.navigate(['site', params.countryCode, params.slicAbbr, 'onproperty']);\r\n return false;\r\n });\r\n }\r\n}\r\n","import { NgModule } from '@angular/core';\r\nimport { Routes, RouterModule } from '@angular/router';\r\n\r\nimport { SummaryOnPropertyComponent } from '../../component/site/summary/summary-on-property/summary-on-property.component';\r\nimport { SummaryInboundComponent } from '../../component/site/summary/summary-inbound/summary-inbound.component';\r\nimport { SummaryYardCheckComponent } from '../../component/site/summary/summary-yard-check/summary-yard-check.component';\r\nimport { DetailOnPropertyComponent } from '../../component/site/detail/detail-on-property/detail-on-property.component';\r\nimport { DetailInboundComponent } from '../../component/site/detail/detail-inbound/detail-inbound.component';\r\nimport { SummaryInfoComponent } from 'src/app/component/site/summary/summary-info/summary-info.component';\r\n\r\nimport { YardCheckGuard } from './route-guards';\r\n\r\nconst siteRoutes: Routes = [\r\n { path: ':countryCode/:slicAbbr', component: SummaryOnPropertyComponent },\r\n { path: ':countryCode/:slicAbbr/onproperty', redirectTo: ':countryCode/:slicAbbr/onproperty/TL', pathMatch: 'full' },\r\n { path: ':countryCode/:slicAbbr/onproperty/:assetType', component: SummaryOnPropertyComponent },\r\n { path: ':countryCode/:slicAbbr/inbound', component: SummaryInboundComponent},\r\n { path: ':countryCode/:slicAbbr/yardcheck', component: SummaryYardCheckComponent, canActivate: [YardCheckGuard]},\r\n { path: ':countryCode/:slicAbbr/onproperty/:assetType/:assetNumber', component: DetailOnPropertyComponent },\r\n { path: ':countryCode/:slicAbbr/inbound/:assetType/:assetNumber', component: DetailInboundComponent },\r\n { path: ':countryCode/:slicAbbr/info', component: SummaryInfoComponent },\r\n { path: '', redirectTo: '/', pathMatch: 'full' }\r\n];\r\n\r\n@NgModule({\r\n imports: [RouterModule.forChild(siteRoutes)],\r\n exports: [RouterModule]\r\n})\r\nexport class SiteRoutingModule { }\r\n","import { NgModule } from '@angular/core';\r\nimport { CommonModule } from '@angular/common';\r\nimport { FormsModule, ReactiveFormsModule } from '@angular/forms';\r\n\r\nimport { SiteRoutingModule } from './site-routing.module';\r\nimport { StCommonModule } from '../common/st-common.module';\r\n\r\n// Material\r\nimport { MatCheckboxModule } from '@angular/material/checkbox';\r\nimport { MatButtonModule } from '@angular/material/button';\r\nimport { MatIconModule } from '@angular/material/icon';\r\nimport { MatFormFieldModule } from '@angular/material/form-field';\r\nimport { MatInputModule } from '@angular/material/input';\r\nimport { MatMenuModule } from '@angular/material/menu';\r\nimport { MatButtonToggleModule } from '@angular/material/button-toggle';\r\n\r\n// Cdk\r\nimport { ScrollingModule } from '@angular/cdk/scrolling';\r\n\r\n// Detail\r\nimport { DetailComponent } from '../../component/site/detail/detail';\r\nimport { DetailSummaryComponent } from '../../component/site/detail/detail-summary/detail-summary';\r\nimport { DetailSummaryOnPropertyComponent } from '../../component/site/detail/detail-summary/detail-summary-on-property/detail-summary-on-property.component';\r\nimport { DetailSummaryInTransitComponent } from '../../component/site/detail/detail-summary/detail-summary-in-transit/detail-summary-in-transit.component';\r\nimport { DetailSubsectionComponent } from '../../component/site/detail/detail-subsection/detail-subsection';\r\nimport { DetailActionButtonsComponent } from '../../component/site/detail/detail-action-buttons/detail-action-buttons.component';\r\nimport { DetailEditDunnageComponent } from '../../component/site/detail/detail-action-buttons/detail-edit-dunnage/detail-edit-dunnage.component';\r\nimport { DetailClearDunnageComponent } from '../../component/site/detail/detail-action-buttons/detail-clear-dunnage/detail-clear-dunnage.component';\r\nimport { DetailGpsSummaryComponent } from '../../component/site/detail/detail-gps-summary/detail-gps-summary';\r\nimport { DetailShiftActivityComponent } from '../../component/site/detail/detail-shift-activity/detail-shift-activity';\r\nimport { DetailLoadSummaryComponent } from '../../component/site/detail/detail-load-summary/detail-load-summary.component';\r\nimport { DetailPackageSummaryComponent } from '../../component/site/detail/detail-package-summary/detail-package-summary.component';\r\nimport { DetailEquipmentStatusComponent } from '../../component/site/detail/detail-equipment-status/detail-equipment-status';\r\nimport { DetailOnPropertyComponent } from '../../component/site/detail/detail-on-property/detail-on-property.component';\r\nimport { DetailInboundComponent } from '../../component/site/detail/detail-inbound/detail-inbound.component';\r\nimport { DetailActionConfirmLocationComponent } from '../../component/site/detail/detail-action-buttons/detail-action-confirm-location/detail-action-confirm-location.component';\r\nimport { DetailActionMoveBayComponent } from '../../component/site/detail/detail-action-buttons/detail-action-move-bay/detail-action-move-bay.component';\r\nimport { DetailActionStatusComponent } from '../../component/site/detail/detail-action-buttons/detail-action-status/detail-action-status.component';\r\nimport { DetailLinkedEquipmentComponent } from '../../component/site/detail/detail-linked-equipment/detail-linked-equipment';\r\nimport { DetailDriverAlertComponent } from '../../component/site/detail/detail-driver-alert/detail-driver-alert.component';\r\n\r\n// Summary\r\nimport { SummaryComponent } from '../../component/site/summary/summary.component';\r\nimport { SummaryViewButtonComponent } from '../../component/site/summary/summary-view-button/summary-view-button.component';\r\nimport { SummaryOnPropertyComponent } from '../../component/site/summary/summary-on-property/summary-on-property.component';\r\nimport { SummaryInboundInfoComponent } from '../../component/site/summary/summary-common/summary-inbound-info/summary-inbound-info.component';\r\nimport { SummaryYardCheckComponent } from '../../component/site/summary/summary-yard-check/summary-yard-check.component';\r\nimport { SummaryInboundComponent } from '../../component/site/summary/summary-inbound/summary-inbound.component';\r\nimport { SummaryCommonComponent } from '../../component/site/summary/summary-common/summary-common/summary-common.component';\r\nimport { SummaryWrapperYardCheckComponent } from '../../component/site/summary/summary-common/summary-wrapper-yard-check/summary-wrapper-yard-check';\r\nimport { SummaryWrapperComponent } from '../../component/site/summary/summary-common/summary-wrapper/summary-wrapper';\r\n\r\n// Common components\r\nimport { ActionButtonComponent } from '../../common/action-button/action-button.component';\r\nimport { BarChartComponent } from '../../common/bars/bar-chart/bar-chart.component';\r\nimport { BarChartWithTitleComponent } from '../../common/bars/bar-chart-with-title/bar-chart-with-title.component';\r\nimport { StackedBarChartComponent } from '../../common/bars/stacked-bar-chart/stacked-bar-chart.component';\r\nimport { LinkedEquipmentComponent } from '../../common/linked-equipment/linked-equipment.component';\r\nimport { SummaryInfoComponent } from 'src/app/component/site/summary/summary-info/summary-info.component';\r\nimport { LocationInfoComponent } from 'src/app/component/site/summary/summary-info/location-info/location-info.component';\r\nimport { SharedSvgLibModule } from '@tms/shared-svg';\r\n\r\n@NgModule({\r\n declarations: [\r\n DetailComponent,\r\n DetailSummaryComponent,\r\n DetailSummaryOnPropertyComponent,\r\n DetailSummaryInTransitComponent,\r\n DetailSubsectionComponent,\r\n DetailActionButtonsComponent,\r\n DetailEditDunnageComponent,\r\n DetailClearDunnageComponent,\r\n DetailGpsSummaryComponent,\r\n DetailShiftActivityComponent,\r\n DetailLoadSummaryComponent,\r\n DetailPackageSummaryComponent,\r\n DetailEquipmentStatusComponent,\r\n DetailLinkedEquipmentComponent,\r\n DetailDriverAlertComponent,\r\n ActionButtonComponent,\r\n LinkedEquipmentComponent,\r\n DetailActionConfirmLocationComponent,\r\n DetailActionMoveBayComponent,\r\n DetailActionStatusComponent,\r\n BarChartComponent,\r\n BarChartWithTitleComponent,\r\n StackedBarChartComponent,\r\n DetailOnPropertyComponent,\r\n DetailInboundComponent,\r\n SummaryComponent,\r\n SummaryViewButtonComponent,\r\n SummaryOnPropertyComponent,\r\n SummaryInboundInfoComponent,\r\n SummaryYardCheckComponent,\r\n SummaryInboundComponent,\r\n SummaryCommonComponent,\r\n SummaryWrapperYardCheckComponent,\r\n SummaryWrapperComponent,\r\n SummaryInfoComponent,\r\n LocationInfoComponent\r\n ],\r\n imports: [\r\n CommonModule,\r\n SiteRoutingModule,\r\n StCommonModule,\r\n MatIconModule,\r\n MatCheckboxModule,\r\n MatButtonModule,\r\n MatFormFieldModule,\r\n MatInputModule,\r\n MatMenuModule,\r\n MatButtonToggleModule,\r\n ScrollingModule,\r\n FormsModule,\r\n ReactiveFormsModule,\r\n SharedSvgLibModule\r\n ],\r\n exports: [\r\n SummaryCommonComponent,\r\n SummaryWrapperComponent,\r\n ]\r\n})\r\nexport class SiteModule { }\r\n","import { Injectable } from '@angular/core';\r\nimport { UserAccessGateway } from '../../model/user-profile/user-access-gateway';\r\nimport { Location } from '../../model/location/location';\r\n\r\nimport { MsalService } from '@azure/msal-angular';\r\nimport { AuthService } from '../../auth/auth.service';\r\n\r\nimport { TamUserProfileService } from '../webservice/tam-user-profile/tam-user-profile.service';\r\nimport { EnvironmentService } from '../environment/environment.service';\r\nimport { firstValueFrom } from 'rxjs';\r\n\r\n@Injectable({\r\n providedIn: 'root'\r\n})\r\nexport class ActiveUserProfileService {\r\n activeUserProfilePromise: Promise;\r\n\r\n constructor(\r\n private tamUserProfileService: TamUserProfileService,\r\n private environmentService: EnvironmentService,\r\n private msalService: MsalService,\r\n private authService: AuthService) {\r\n\r\n this.activeUserProfilePromise = this.environmentService.environmentPromise.then(() => {\r\n if (this.msalService.instance.getActiveAccount() == null && this.msalService.instance.getAllAccounts().length === 0) {\r\n return new UserAccessGateway();\r\n }\r\n if(sessionStorage.getItem('tamAsset.msal.token') == null){\r\n this.authService.setMsalTokeninSessionStorage((accessToken) => {\r\n console.log('setting token from active user');\r\n const token = accessToken;\r\n });\r\n }\r\n const userId = this.authService.getUserId();\r\n const user = this.msalService.instance.getActiveAccount();\r\n const userAccessRequest = {\r\n name: this.getUserFirstName(user.name),\r\n // eslint-disable-next-line @typescript-eslint/naming-convention\r\n family_name: this.getUserFamilyName(user.name),\r\n // UPSmail: user.idToken.email,\r\n sub: userId,\r\n };\r\n return firstValueFrom(this.tamUserProfileService.fetchUserAcessFromMSD(userAccessRequest)).then((activeUserProfile: UserAccessGateway) => activeUserProfile)\r\n .catch(() => new UserAccessGateway());\r\n });\r\n }\r\n\r\n\r\n public async checkPermissions(rolesToCheckFor: string[]): Promise {\r\n return this.activeUserProfilePromise.then((activeUserProfile: UserAccessGateway) => {\r\n if (rolesToCheckFor && activeUserProfile && activeUserProfile.customRoles.length > 0) {\r\n for (const access of activeUserProfile.customRoles) {\r\n if (rolesToCheckFor.includes(access.role)) {\r\n return true;\r\n }\r\n }\r\n }\r\n return false;\r\n });\r\n }\r\n\r\n public async checkPermissionsLocationInfo(location: Location): Promise {\r\n return this.activeUserProfilePromise.then((activeUserProfile: UserAccessGateway) => this.checkFullAccess(location, activeUserProfile));\r\n }\r\n\r\n public checkFullAccess(location: Location, activeUserProfile: UserAccessGateway): boolean {\r\n if (location && activeUserProfile && activeUserProfile.customRoles.length > 0) {\r\n for (const access of activeUserProfile.customRoles) {\r\n if (['YARD CHECK', 'YARD CONTROL', 'DISPATCH'].includes(access.role)) {\r\n if ((access.corporate === true) ||\r\n (access.region && location.regionNumber && access.region.includes(location.regionNumber.padStart(2, '0'))) ||\r\n (access.district && location.districtNumber && access.district.includes(location.districtNumber.padStart(2, '0'))) ||\r\n (access.slic && location.slicAbbreviation && access.slic.includes(location.slicAbbreviation + '-' + location.slic))) {\r\n return true;\r\n }\r\n }\r\n }\r\n }\r\n return false;\r\n }\r\n\r\n public async checkUserHasCorporateAccess(): Promise {\r\n return this.activeUserProfilePromise.then((activeUserProfile: UserAccessGateway) => {\r\n if(activeUserProfile && activeUserProfile.customRoles.length > 0) {\r\n for (const access of activeUserProfile.customRoles) {\r\n if (access.corporate === true) {\r\n return true;\r\n }\r\n }\r\n }\r\n return false;\r\n });\r\n }\r\n\r\n public async checkUserHasSuperUserAccess(): Promise {\r\n return this.activeUserProfilePromise.then((activeUserProfile: UserAccessGateway) => {\r\n if (activeUserProfile && activeUserProfile.customRoles.length > 0) {\r\n for (const access of activeUserProfile.customRoles) {\r\n if (['SUPERUSER'].includes(access.role)) {\r\n return true;\r\n }\r\n }\r\n }\r\n return false;\r\n });\r\n }\r\n\r\n public async checkUserHasApproverAccess(): Promise {\r\n return this.activeUserProfilePromise.then((activeUserProfile: UserAccessGateway) => {\r\n if(activeUserProfile && activeUserProfile.customRoles.length > 0) {\r\n for (const access of activeUserProfile.customRoles) {\r\n if (['APPROVER'].includes(access.role)) {\r\n return true;\r\n }\r\n }\r\n }\r\n return false;\r\n });\r\n }\r\n\r\n public async checkUserHasTMSAccess(): Promise {\r\n return this.activeUserProfilePromise.then((activeUserProfile: UserAccessGateway) => {\r\n if (activeUserProfile && activeUserProfile.customRoles.length > 0) {\r\n return true;\r\n }\r\n return false;\r\n });\r\n }\r\n\r\n public getUserFirstName(name): string {\r\n if (name) {\r\n const userNameSplit = name.split(' ');\r\n\r\n if (!!userNameSplit && userNameSplit.length > 0) {\r\n return userNameSplit[0];\r\n } else {\r\n return '';\r\n }\r\n } else {\r\n return '';\r\n }\r\n }\r\n\r\n public getUserFamilyName(name): string {\r\n if (name) {\r\n const userNameSplit = name.split(' ');\r\n\r\n if (!!userNameSplit && userNameSplit.length > 1) {\r\n return userNameSplit[1];\r\n } else {\r\n return '';\r\n }\r\n } else {\r\n return '';\r\n }\r\n }\r\n}\r\n","import { Injectable } from '@angular/core';\r\nimport { Subject } from 'rxjs';\r\nimport { Alert } from './alert';\r\n\r\n@Injectable({\r\n providedIn: 'root'\r\n})\r\nexport class AlertService {\r\n\r\n newAlert = new Subject();\r\n currentAlert = this.newAlert.asObservable();\r\n\r\n sendAlert(sendAlert: Alert) {\r\n this.newAlert.next(sendAlert);\r\n }\r\n}\r\n","export class Alert {\r\n alertMessage: string;\r\n timeoutNeeded: boolean;\r\n timeoutLength: number;\r\n\r\n constructor() {}\r\n}\r\n","import { Injectable } from '@angular/core';\r\nimport { environment } from '../../../environments/environment';\r\n\r\nimport { Environment } from '../../common/environment/environment';\r\n\r\n@Injectable({\r\n providedIn: 'root'\r\n})\r\nexport class EnvironmentService {\r\n environmentPromise: Promise;\r\n\r\n constructor() {\r\n this.environmentPromise = this.getEnvironmentInfo();\r\n }\r\n\r\n private getLocalEnvironmentInfo(): Environment {\r\n // return the local environment file\r\n return environment;\r\n }\r\n\r\n private async getEnvironmentInfo(): Promise {\r\n // retrieve environment info from the server\r\n return fetch('environment')\r\n .then(response => {\r\n // fetch doesnt throw catch for 400 and 500 status codes normally\r\n if (response.status >= 200 && response.status < 300) {\r\n return Promise.resolve(response.json());\r\n } else {\r\n // throw catch for 400 and 500 codes\r\n const error = new Error(response.statusText);\r\n return Promise.reject(error);\r\n }\r\n })\r\n .then(data => this.parseServerEnvironmentInfo(data)).catch(() =>\r\n // error retrieving file from server\r\n this.getLocalEnvironmentInfo()\r\n );\r\n }\r\n\r\n private parseServerEnvironmentInfo(serverEnvironmentObj: Environment): Environment {\r\n // parse out environment info from the server\r\n const localEnvironmentObj = this.getLocalEnvironmentInfo();\r\n if (serverEnvironmentObj) {\r\n const combinedEnvironmentObj = {\r\n ...localEnvironmentObj,\r\n ...serverEnvironmentObj,\r\n };\r\n return combinedEnvironmentObj;\r\n } else {\r\n return localEnvironmentObj;\r\n }\r\n }\r\n}\r\n","import { Injectable } from '@angular/core';\r\n\r\nimport { FilterCheckbox } from '../../component/filter/model/filter-checkbox';\r\nimport { FilterCondition } from '../../component/filter/model/filter-condition';\r\nimport { FilterConditions } from './filter-conditions';\r\nimport { FilterGroup } from '../../component/filter/model/filter-group';\r\n\r\nimport { AssetInfo } from '../../model/asset-info/asset-info';\r\nimport { Operations } from '../../model/asset-info/operations';\r\nimport { OnPropertyOperations } from '../../model/asset-info/on-property-operations';\r\n\r\n@Injectable({\r\n providedIn: 'root'\r\n})\r\n\r\nexport class EquipmentFilterService {\r\n public createNonNetworkCheckboxes(filterConditions: FilterConditions): FilterCheckbox[] {\r\n const filterCheckboxes: FilterCheckbox[] = [];\r\n filterCheckboxes.push(\r\n new FilterCheckbox('Domicile', '', new FilterCondition(asset => '', []), filterConditions.filterDomicile),\r\n new FilterCheckbox('Customer', '', new FilterCondition((asset: AssetInfo) => asset.operations?.assignedCustomerSlicAbbreviation, []), filterConditions.filterNotNull),\r\n new FilterCheckbox('Out Of Area', '', new FilterCondition((asset: AssetInfo) => asset.operations?.outOfAreaAlert, []), filterConditions.filterNotNull),\r\n new FilterCheckbox('Rental', '', new FilterCondition((asset: AssetInfo) => asset.equipment?.leaseInfo, []), filterConditions.filterNotNull)\r\n );\r\n return filterCheckboxes;\r\n }\r\n\r\n public createTrailerCheckboxes(filterConditions: FilterConditions): FilterGroup[] {\r\n const filterGroup: FilterGroup[] = [];\r\n const filterField = (asset: AssetInfo) => asset.equipment?.trailer?.TypeCode;\r\n\r\n const longDrop = ['P', 'S', 'O'];\r\n const longContainer = ['LC'];\r\n const longFlat = ['MS', 'Q', 'QS', 'R', 'X', 'X5S', 'XX', 'XXX', 'XXS', 'BDS', 'JS',\r\n 'OO', 'Y', 'YS', 'YY', 'YYS', 'Z', 'ZZ', 'ZZZ', 'ZZS'];\r\n\r\n // Long\r\n const longCheckboxes = [\r\n new FilterCheckbox('Drop', '' , new FilterCondition(filterField, longDrop), filterConditions.filterStringFull),\r\n new FilterCheckbox('Container', '', new FilterCondition(filterField, longContainer), filterConditions.filterStringFull),\r\n new FilterCheckbox('Flat', '', new FilterCondition(filterField, longFlat), filterConditions.filterStringFull),\r\n ];\r\n\r\n const shortDrop = ['E', 'H', 'L', 'W'];\r\n const shortContainer = ['SC', 'SCS', 'WWS'];\r\n const shortFlat = ['F', 'FS', 'WW'];\r\n\r\n // Short\r\n const shortCheckboxes = [\r\n new FilterCheckbox('Drop', '', new FilterCondition(filterField, shortDrop), filterConditions.filterStringFull),\r\n new FilterCheckbox('Container', '', new FilterCondition(filterField, shortContainer), filterConditions.filterStringFull),\r\n new FilterCheckbox('Flat', '', new FilterCondition(filterField, shortFlat), filterConditions.filterStringFull),\r\n ];\r\n\r\n const airA2 = ['A2'];\r\n const airA5 = ['A5'];\r\n const airA3 = ['A3'];\r\n const airZBox = ['I'];\r\n const airA4 = ['A4'];\r\n\r\n // Air\r\n const airCheckboxes = [\r\n new FilterCheckbox('A2', '', new FilterCondition(filterField, airA2), filterConditions.filterStringFull),\r\n new FilterCheckbox('A5', '', new FilterCondition(filterField, airA5), filterConditions.filterStringFull),\r\n new FilterCheckbox('A3', '', new FilterCondition(filterField, airA3), filterConditions.filterStringFull),\r\n new FilterCheckbox('ZBox', '', new FilterCondition(filterField, airZBox), filterConditions.filterStringFull),\r\n new FilterCheckbox('A4', '', new FilterCondition(filterField, airA4), filterConditions.filterStringFull),\r\n ];\r\n\r\n const specialtyC = ['C'];\r\n const specialtyCoyote = ['COY', 'CYS'];\r\n const specialtyMartrac = ['M', 'TMB', 'TMF'];\r\n const specialtyUnknown = ['Unknown'];\r\n const specialtyRubus = ['RBL', 'RBS', 'RBC'];\r\n const specialtyBorrowed = ['BDS', 'BOW'];\r\n\r\n // Specialty\r\n const specialtyCheckboxes = [\r\n new FilterCheckbox('C', '', new FilterCondition(filterField, specialtyC), filterConditions.filterStringFull),\r\n new FilterCheckbox('Coyote', '', new FilterCondition(filterField, specialtyCoyote), filterConditions.filterStringFull),\r\n new FilterCheckbox('Martrac', '', new FilterCondition(filterField, specialtyMartrac), filterConditions.filterStringFull),\r\n new FilterCheckbox('Unknown', '', new FilterCondition(filterField, specialtyUnknown), filterConditions.filterStringFull),\r\n new FilterCheckbox('Rubus', '', new FilterCondition(filterField, specialtyRubus), filterConditions.filterStringFull),\r\n new FilterCheckbox('Borrowed', '', new FilterCondition(filterField, specialtyBorrowed), filterConditions.filterStringFull),\r\n ];\r\n\r\n filterGroup.push(\r\n new FilterGroup('Long', '', longCheckboxes),\r\n new FilterGroup('Short', '', shortCheckboxes),\r\n new FilterGroup('Air', '', airCheckboxes),\r\n new FilterGroup('Specialty', '', specialtyCheckboxes),\r\n );\r\n\r\n return filterGroup;\r\n }\r\n\r\n public createDollyCheckboxes(filterConditions: FilterConditions): FilterCheckbox[] {\r\n const filterCheckboxes: FilterCheckbox[] = [];\r\n filterCheckboxes.push(\r\n new FilterCheckbox('A', '', new FilterCondition((asset: AssetInfo) => asset.equipment?.carGroupCode, ['TDA']), filterConditions.filterStringFull),\r\n new FilterCheckbox('Rental', '', new FilterCondition((asset: AssetInfo) => asset.equipment?.carGroupCode, ['TDR']), filterConditions.filterStringFull),\r\n new FilterCheckbox('Long Tongue', '', new FilterCondition((asset: AssetInfo) => asset.equipment?.carGroupCode, ['TDL', 'TDLT']), filterConditions.filterStringFull),\r\n new FilterCheckbox('Short Tongue', '', new FilterCondition((asset: AssetInfo) => asset.equipment?.carGroupCode, ['TDS']), filterConditions.filterStringFull),\r\n );\r\n return filterCheckboxes;\r\n }\r\n\r\n public createTractorCheckboxes(filterConditions: FilterConditions): FilterCheckbox[] {\r\n const filterCheckboxes: FilterCheckbox[] = [];\r\n const single = ['HTCTX', 'HTDAL', 'HTD', 'MTD', 'HTDLS', 'HTLG', 'HTDA', 'HTDR', 'HTLGR'];\r\n const sleeper = ['HDTSR', 'HDTSL'];\r\n const double = ['HTCT', 'HTLGT', 'HTLT', 'HTDAT', 'HTDT'];\r\n\r\n filterCheckboxes.push(\r\n new FilterCheckbox('Single', '', new FilterCondition((asset: AssetInfo) => asset.equipment?.carGroupCode, single), filterConditions.filterStringFull),\r\n new FilterCheckbox('Sleeper', '', new FilterCondition((asset: AssetInfo) => asset.equipment?.carGroupCode, sleeper), filterConditions.filterStringFull),\r\n new FilterCheckbox('Double', '', new FilterCondition((asset: AssetInfo) => asset.equipment?.carGroupCode, double), filterConditions.filterStringFull),\r\n );\r\n return filterCheckboxes;\r\n }\r\n\r\n public createVehicleCheckboxes(filterConditions: FilterConditions): FilterCheckbox[] {\r\n const filterCheckboxes: FilterCheckbox[] = [];\r\n filterCheckboxes.push(\r\n new FilterCheckbox('Package Car', '', new FilterCondition((asset: AssetInfo) => asset.equipment?.trailer?.TypeCode, ['K']), filterConditions.filterStringFull),\r\n new FilterCheckbox('Train', '', new FilterCondition((asset: AssetInfo) => asset.equipment?.equipmentType, ['TRAIN']), filterConditions.filterStringFull),\r\n );\r\n return filterCheckboxes;\r\n }\r\n\r\n public createChassisCheckboxes(filterConditions: FilterConditions): FilterCheckbox[] {\r\n const filterCheckboxes: FilterCheckbox[] = [];\r\n filterCheckboxes.push(\r\n new FilterCheckbox('Chassis Long', '', new FilterCondition(asset => asset.equipment?.trailer?.TypeCode, ['CHL']), filterConditions.filterStringFull),\r\n new FilterCheckbox('Chassis Short', '', new FilterCondition(asset => asset.equipment?.trailer?.TypeCode, ['CHS']), filterConditions.filterStringFull),\r\n );\r\n return filterCheckboxes;\r\n }\r\n\r\n public createFuelTypeCheckboxes(filterConditions: FilterConditions): FilterCheckbox[] {\r\n const filterCheckboxes: FilterCheckbox[] = [];\r\n const fuelCNG = ['HTCTX', 'HTCT'];\r\n const fuelDiesel = ['HTDAL', 'HTD', 'MTD', 'HTDLS', 'HTDA', 'HTDR', 'HTDAT', 'HTDT', 'HDTSR', 'HDTSL'];\r\n const fuelLNG = ['HTLG', 'HTLGR', 'HTLGT', 'HTLT'];\r\n\r\n filterCheckboxes.push(\r\n new FilterCheckbox('CNG', 'Compressed Natural', new FilterCondition((asset: AssetInfo) => asset.equipment?.carGroupCode, fuelCNG), filterConditions.filterStringFull),\r\n new FilterCheckbox('Diesel', '', new FilterCondition((asset: AssetInfo) => asset.equipment?.carGroupCode, fuelDiesel), filterConditions.filterStringFull),\r\n new FilterCheckbox('LNG', 'Liquid Natural', new FilterCondition((asset: AssetInfo) => asset.equipment?.carGroupCode, fuelLNG), filterConditions.filterStringFull),\r\n );\r\n return filterCheckboxes;\r\n }\r\n}\r\n","import { Injectable } from '@angular/core';\r\n\r\nimport { AssetInfo } from '../../model/asset-info/asset-info';\r\nimport { Operations } from '../../model/asset-info/operations';\r\nimport { OnPropertyOperations } from '../../model/asset-info/on-property-operations';\r\nimport { OnRoadOperations } from '../../model/asset-info/on-road-operations';\r\n\r\nimport { FilterCondition } from '../../component/filter/model/filter-condition';\r\nimport { Load } from '../../model/asset-info/load';\r\nimport { OutOfAreaAlert } from '../../model/asset-info/out-of-area-alert';\r\nimport { LeaseInfo } from '../../model/asset-info/lease-info';\r\n\r\n@Injectable({\r\n providedIn: 'root'\r\n})\r\n\r\nexport class FilterConditions {\r\n\r\n public filterTruthy(asset: AssetInfo, filterCondition: FilterCondition): boolean {\r\n // for boolean we need to check if the item is truthy\r\n if (filterCondition.getItem(asset)) {\r\n return true;\r\n }\r\n }\r\n\r\n public filterFalsy(asset: AssetInfo, filterCondition: FilterCondition): boolean {\r\n // for boolean we need to check if the item is falsy\r\n if (!filterCondition.getItem(asset)) {\r\n return true;\r\n }\r\n }\r\n\r\n public filterBooleanTrue(asset: AssetInfo, filterCondition: FilterCondition): boolean {\r\n // for boolean we need to check if the boolean is true\r\n return filterCondition.getItem(asset) === true;\r\n }\r\n\r\n public filterBooleanFalse(asset: AssetInfo, filterCondition: FilterCondition): boolean {\r\n // for boolean we need to check if the boolean is false\r\n return filterCondition.getItem(asset) === false;\r\n }\r\n\r\n public filterNumber(asset: AssetInfo, filterCondition: FilterCondition): boolean {\r\n for (const condition of filterCondition.condition) {\r\n if (this.isNumber(condition) && filterCondition.getItem(asset) === condition) {\r\n return true;\r\n }\r\n }\r\n return false;\r\n }\r\n\r\n public filterNotNull(asset: AssetInfo, filterCondition: FilterCondition): boolean {\r\n // for not null we need to check if the field exists and is not null\r\n if (filterCondition.getItem(asset) !== null && filterCondition.getItem(asset) !== undefined) {\r\n return true;\r\n } else {\r\n return false;\r\n }\r\n }\r\n\r\n public filterDoesNotEqual(asset: AssetInfo, filterCondition: FilterCondition): boolean {\r\n // for stringFull check all conditions to see if field matches one\r\n for (const condition of filterCondition.condition) {\r\n if (filterCondition.getItem(asset) === condition) {\r\n return false;\r\n }\r\n }\r\n return true;\r\n }\r\n\r\n public filterStringFull(asset: AssetInfo, filterCondition: FilterCondition): boolean {\r\n // for stringFull check all conditions to see if field matches one\r\n for (const condition of filterCondition.condition) {\r\n if (filterCondition.getItem(asset) === condition) {\r\n return true;\r\n }\r\n }\r\n return false;\r\n }\r\n\r\n public filterStringStartsWith(asset: AssetInfo, filterCondition: FilterCondition): boolean {\r\n // for stringFull check all conditions to see if field matches one\r\n const assetValue = filterCondition.getItem(asset);\r\n for (const condition of filterCondition.condition) {\r\n if (this.isString(assetValue) && this.isString(condition) && assetValue.toLowerCase().startsWith(condition.toLowerCase())) {\r\n return true;\r\n }\r\n }\r\n return false;\r\n }\r\n\r\n public filterStringIncludes(asset: AssetInfo, filterCondition: FilterCondition): boolean {\r\n // for stringFull check all conditions to see if field matches one\r\n const assetValue = filterCondition.getItem(asset);\r\n for (const condition of filterCondition.condition) {\r\n if (this.isString(assetValue) && this.isString(condition) && assetValue.toLowerCase().includes(condition.toLowerCase())) {\r\n return true;\r\n }\r\n }\r\n return false;\r\n }\r\n\r\n public filterLoadCode(asset: AssetInfo, filterCondition: FilterCondition): boolean {\r\n // for not null we need to check if the field exists and is not null\r\n const loads = filterCondition.getItem(asset) as Load[];\r\n if (loads !== null) {\r\n const primaryLoad = this.getPrimaryLoad(loads);\r\n if (primaryLoad) {\r\n for (const condition of filterCondition.condition) {\r\n if (condition === primaryLoad.code) {\r\n return true;\r\n }\r\n }\r\n }\r\n }\r\n return false;\r\n }\r\n\r\n public filterDomicile(asset: AssetInfo, filterCondition: FilterCondition): boolean {\r\n // for not null we need to check if the field exists and is not null\r\n let parsedCurrentLocationRegionNumber = null;\r\n let parsedAssetLocationRegionNumber = null;\r\n let parsedCurrentLocationDistrictNumber = null;\r\n let parsedAssetLocationDistrictNumber = null;\r\n if (filterCondition.location.countryCode !== asset.equipment.ownerCountryCode) {\r\n return false;\r\n }\r\n if (filterCondition.location.regionNumber !== null) {\r\n parsedCurrentLocationRegionNumber = Number.parseInt(filterCondition.location.regionNumber, 10);\r\n }\r\n if (asset.equipment.ownerRegionNumber !== null) {\r\n parsedAssetLocationRegionNumber = Number.parseInt(asset.equipment.ownerRegionNumber, 10);\r\n }\r\n if (!(parsedCurrentLocationRegionNumber && parsedAssetLocationRegionNumber && parsedAssetLocationRegionNumber === parsedCurrentLocationRegionNumber)) {\r\n return false;\r\n }\r\n\r\n if (filterCondition.location.districtNumber !== null) {\r\n parsedCurrentLocationDistrictNumber = Number.parseInt(filterCondition.location.districtNumber, 10);\r\n }\r\n if (asset.equipment.ownerDistrictNumber !== null) {\r\n parsedAssetLocationDistrictNumber = Number.parseInt(asset.equipment.ownerDistrictNumber, 10);\r\n }\r\n if (!(parsedCurrentLocationDistrictNumber && parsedAssetLocationDistrictNumber && parsedAssetLocationDistrictNumber === parsedCurrentLocationDistrictNumber)) {\r\n return false;\r\n }\r\n return true;\r\n }\r\n\r\n public filterBayRange(asset: AssetInfo, filterCondition: FilterCondition): boolean {\r\n // we need two entries in the condition for bay range to work\r\n if (filterCondition.condition.length === 2) {\r\n // grab all possible bay numbers and parse them\r\n const fromBayString = filterCondition.condition[0];\r\n const toBayString = filterCondition.condition[1];\r\n let fromBay: number;\r\n let toBay: number;\r\n let assetBay: number;\r\n\r\n if (this.isOnPropertyOperations(asset) && asset?.operations?.bayNumber) {\r\n assetBay = Number.parseInt(asset.operations.bayNumber, 10);\r\n } else if (asset?.equipment?.onSiteNotArrivedLocation?.bayNumber) {\r\n assetBay = Number.parseInt(asset?.equipment.onSiteNotArrivedLocation.bayNumber, 10);\r\n }\r\n if (this.isString(fromBayString)) {\r\n fromBay = Number.parseInt(fromBayString, 10);\r\n }\r\n if (this.isString(toBayString)) {\r\n toBay = Number.parseInt(toBayString, 10);\r\n }\r\n\r\n if (fromBay || toBay) {\r\n // if one of the bay filters is valid but assetBay is invalid filter it out\r\n if (!assetBay) {\r\n return false;\r\n }\r\n\r\n // if from bay is valid but to bay is invalid (or empty) we accept all assets from the from bay\r\n if (fromBay && !toBay) {\r\n return assetBay >= fromBay;\r\n // if to bay is valid but from bay is invalid (or empty) we accept all assets to the to bay\r\n } else if (!fromBay && toBay) {\r\n return assetBay <= toBay;\r\n // if both bay fields have entries that are valid we find assets in the range\r\n } else if (fromBay && toBay) {\r\n return assetBay >= fromBay && assetBay <= toBay;\r\n }\r\n }\r\n }\r\n // if somehow the conditions are invalid we should allow assets through just in case we are\r\n // somehow in a bad state (don't want to make application unusable)\r\n return true;\r\n }\r\n\r\n public filterSlocEloc(asset: AssetInfo, filterCondition: FilterCondition): boolean {\r\n // we need two entries in the condition for sloc eloc to work\r\n if (filterCondition.condition.length === 2) {\r\n // grab all possible bay numbers and parse them\r\n const sloc = filterCondition.condition[0] as string;\r\n const eloc = filterCondition.condition[1] as string;\r\n\r\n // if we have entries for both sloc and eloc\r\n if (sloc !== '' && eloc !== '') {\r\n return this.isAssetStartingLocation(asset, sloc) && this.isAssetEndingLocation(asset, eloc);\r\n // if we only have an sloc\r\n } else if (sloc !== '') {\r\n return this.isAssetStartingLocation(asset, sloc);\r\n // if we only have an eloc\r\n } else if (eloc !== '') {\r\n return this.isAssetEndingLocation(asset, eloc);\r\n }\r\n }\r\n // if we end up here either both sloc and eloc are blank for we have somehow dont have two\r\n // filter conditions (a bad state) either way we want to allow assets through the filter\r\n return true;\r\n }\r\n\r\n public filterBadGps(asset: AssetInfo, filterCondition: FilterCondition): boolean {\r\n const timestamp = filterCondition.getItem(asset);\r\n if (timestamp && this.isNumber(timestamp)) {\r\n if (((new Date().getTime() - (24 * 30) * 3600000) - timestamp) > 0) {\r\n return true;\r\n }\r\n }\r\n return false;\r\n }\r\n\r\n public filterFromToDueDate(asset: AssetInfo, filterCondition: FilterCondition): boolean {\r\n if (filterCondition.condition.length === 2) {\r\n const loads = filterCondition.getItem(asset) as Load[];\r\n if (loads) {\r\n const primaryLoad = this.getPrimaryLoad(loads);\r\n return this.filterFromToDate(primaryLoad, filterCondition, (load) => load.unloadDate);\r\n }\r\n } else {\r\n // if somehow the conditions are invalid we should allow assets through just in case we are\r\n // somehow in a bad state (don't want to make application unusable)\r\n return true;\r\n }\r\n }\r\n\r\n public filterFromToCreateDate(asset: AssetInfo, filterCondition: FilterCondition): boolean {\r\n const loads = filterCondition.getItem(asset) as Load[];\r\n if (loads) {\r\n const primaryLoad = this.getPrimaryLoad(loads);\r\n return this.filterFromToDate(primaryLoad, filterCondition, (load) => load.createDate);\r\n }\r\n }\r\n\r\n public filterFromToDate(load: Load, filterCondition: FilterCondition, getDate: (assetLoad: Load) => string): boolean {\r\n // we need two entries in the condition for date range to work\r\n const date = getDate(load);\r\n const dateArray = /^(\\d+)-(\\d+)-(\\d+)$/g.exec(date);\r\n // grab all possible date numbers and parse them\r\n const fromDateString = filterCondition.condition[0];\r\n const toDateString = filterCondition.condition[1];\r\n\r\n let fromDate: Date;\r\n let toDate: Date;\r\n let assetDate: Date;\r\n\r\n if (this.isString(date)) {\r\n if (dateArray.length === 4) {\r\n dateArray.reverse();\r\n dateArray.pop();\r\n const dateYear = Number.parseInt(dateArray.pop(), 10);\r\n const dateMonth = Number.parseInt(dateArray.pop(), 10) - 1;\r\n const dateDay = Number.parseInt(dateArray.pop(), 10);\r\n\r\n assetDate = new Date();\r\n assetDate.setFullYear(dateYear, dateMonth, dateDay);\r\n assetDate.setHours(0,0,0,0);\r\n }\r\n }\r\n if (this.isString(fromDateString) && fromDateString !== '') {\r\n fromDate = new Date(fromDateString);\r\n }\r\n if (this.isString(toDateString) && toDateString !== '') {\r\n toDate = new Date(toDateString);\r\n }\r\n\r\n if (fromDate || toDate) {\r\n // if one of the date filters is valid but assetDate is invalid filter it out\r\n if (!assetDate) {\r\n return false;\r\n }\r\n\r\n // if from date is valid but to date is invalid (or empty) we accept all assets from the from date\r\n if (fromDate && !toDate) {\r\n return assetDate >= fromDate;\r\n // if to date is valid but from date is invalid (or empty) we accept all assets to the to date\r\n } else if (!fromDate && toDate) {\r\n return assetDate <= toDate;\r\n // if both date fields have entries that are valid we find assets in the range\r\n } else if (fromDate && toDate) {\r\n return assetDate >= fromDate && assetDate <= toDate;\r\n }\r\n }\r\n // if somehow the conditions are invalid we should allow assets through just in case we are\r\n // somehow in a bad state (don't want to make application unusable)\r\n return true;\r\n }\r\n\r\n public filterArrayEquals(asset: AssetInfo, filterCondition: FilterCondition): boolean {\r\n const arrayAsset = filterCondition.getItem(asset) as string[];\r\n const arrayConditions = filterCondition.condition;\r\n\r\n if (arrayAsset && arrayConditions) {\r\n if (arrayAsset === arrayConditions) {\r\n return true;\r\n }\r\n\r\n // array must contain same number of items\r\n if (arrayAsset.length !== arrayConditions.length) {\r\n return false;\r\n }\r\n\r\n // sort arrays\r\n arrayAsset.sort();\r\n arrayConditions.sort();\r\n\r\n // check through sorted array to see if they are the same\r\n for (let i = 0; i < arrayAsset.length; i++) {\r\n if (arrayAsset[i].toString() !== arrayConditions[i].toString()) {\r\n return false;\r\n }\r\n }\r\n } else {\r\n return false;\r\n }\r\n return true;\r\n }\r\n\r\n public filterOriginDestination(asset: AssetInfo, filterCondition: FilterCondition): boolean {\r\n if (filterCondition.condition.length === 4) {\r\n const loads = asset.operations?.loads;\r\n\r\n let originSlic = filterCondition.condition[0] as string;\r\n let destinationSlic = filterCondition.condition[1] as string;\r\n let originSort = filterCondition.condition[2] as string;\r\n let destinationSort = filterCondition.condition[3] as string;\r\n\r\n originSlic = originSlic.toLowerCase();\r\n destinationSlic = destinationSlic.toLowerCase();\r\n originSort = originSort.toLowerCase();\r\n destinationSort = destinationSort.toLowerCase();\r\n\r\n if (loads) {\r\n const primaryLoad = this.getPrimaryLoad(loads);\r\n if (originSlic !== '') {\r\n if (!primaryLoad.originSlic.toLowerCase().includes(originSlic) && !primaryLoad.originSlicAbbreviation.toLowerCase().includes(originSlic)) {\r\n return false;\r\n }\r\n }\r\n if (destinationSlic !== '') {\r\n if (!primaryLoad.destinationSlic.toLowerCase().includes(destinationSlic) && !primaryLoad.destinationSlicAbbreviation.toLowerCase().includes(destinationSlic)) {\r\n return false;\r\n }\r\n }\r\n if (originSort !== '') {\r\n if (originSort !== primaryLoad.originSort.toLowerCase()) {\r\n return false;\r\n }\r\n }\r\n if (destinationSort !== '') {\r\n if (destinationSort !== primaryLoad.destinationSort.toLowerCase()) {\r\n return false;\r\n }\r\n }\r\n return true;\r\n }\r\n } else {\r\n // if somehow the conditions are invalid we should allow assets through just in case we are\r\n // somehow in a bad state (don't want to make application unusable)\r\n return true;\r\n }\r\n }\r\n\r\n public filterRejected(asset: AssetInfo, filterCondition: FilterCondition): boolean {\r\n if (asset.frontEndExclusive?.confirmationStatus === 'REJECTED' || asset.equipment?.locationConfirmation?.locationConfirmationState === 'REJECTED') {\r\n return true;\r\n }\r\n return false;\r\n }\r\n\r\n public isAssetStartingLocation(asset: AssetInfo, loc: string): boolean {\r\n if (asset.operations?.startingLocationSlic) {\r\n if (asset.operations.startingLocationSlic.toLowerCase().includes(loc.toLowerCase())) {\r\n return true;\r\n }\r\n }\r\n if (asset.operations?.startingLocationSlicAbbreviation) {\r\n if (asset.operations.startingLocationSlicAbbreviation.toLowerCase().includes(loc.toLowerCase())) {\r\n return true;\r\n }\r\n }\r\n return false;\r\n }\r\n\r\n public isAssetEndingLocation(asset: AssetInfo, loc: string): boolean {\r\n if (asset.operations?.endingLocationSlic) {\r\n if (asset.operations.endingLocationSlic.toLowerCase().includes(loc.toLowerCase())) {\r\n return true;\r\n }\r\n }\r\n if (asset.operations?.endingLocationSlicAbbreviation) {\r\n if (asset.operations.endingLocationSlicAbbreviation.toLowerCase().includes(loc.toLowerCase())) {\r\n return true;\r\n }\r\n }\r\n return false;\r\n }\r\n\r\n public getPrimaryLoad(loads: Load[]): Load {\r\n if (loads) {\r\n for (const load of loads) {\r\n if (load.primaryLoad) {\r\n return load;\r\n }\r\n }\r\n }\r\n return null;\r\n }\r\n\r\n public isOnPropertyOperations(asset: AssetInfo): asset is AssetInfo {\r\n return (asset as AssetInfo).operations?.bayNumber !== undefined;\r\n }\r\n\r\n public isOnRoadOperations(asset: AssetInfo): asset is AssetInfo {\r\n return (asset as AssetInfo).operations?.jobNumber !== undefined;\r\n }\r\n\r\n\r\n public isNumber(x: string | string[] | number | boolean | OutOfAreaAlert | LeaseInfo | Load[]): x is number {\r\n return typeof x === 'number';\r\n }\r\n\r\n public isString(x: string | string[] | number | boolean | OutOfAreaAlert | LeaseInfo | Load[]): x is string {\r\n return typeof x === 'string';\r\n }\r\n\r\n}\r\n","import { Injectable } from '@angular/core';\r\n\r\nimport { AssetInfo } from '../../model/asset-info/asset-info';\r\nimport { Operations } from '../../model/asset-info/operations';\r\nimport { OnPropertyOperations } from '../../model/asset-info/on-property-operations';\r\nimport { Location } from '../../model/location/location';\r\nimport { AcceptedAssets } from './model/accepted-assets';\r\n\r\nimport { FilterCheckbox } from '../../component/filter/model/filter-checkbox';\r\nimport { FilterTextboxPair } from '../../component/filter/model/filter-textbox-pair';\r\nimport { FilterGroup } from '../../component/filter/model/filter-group';\r\n\r\nimport { FilterItem } from '../../component/filter/model/filter-item';\r\n\r\nimport { ActiveFilters } from './model/active-filters';\r\n\r\nimport { Subject } from 'rxjs';\r\n\r\nimport { FilterTextboxes } from '../../component/filter/model/filter-textboxes';\r\nimport { FilterCheckboxes } from '../../component/filter/model/filter-checkboxes';\r\nimport { FilterCheckboxesGroup } from '../../component/filter/model/filter-checkboxes-group';\r\n\r\nimport { CommonFunctionsSite } from '../../component/site/common-functions-site';\r\n\r\n@Injectable({\r\n providedIn: 'root'\r\n})\r\n\r\nexport class FilterService {\r\n userId = '';\r\n currentLocation: Location;\r\n\r\n hasFilters = false;\r\n activeFilters: ActiveFilters = new ActiveFilters();\r\n currentAssetList: AssetInfo[] = [];\r\n\r\n filterUpdates = new Subject[]>();\r\n\r\n public commonFunctionsSite = new CommonFunctionsSite();\r\n\r\n public setCurrentLocation(currentLocation: Location): void {\r\n this.currentLocation = currentLocation;\r\n }\r\n\r\n public setUserId(userId: string): void {\r\n this.userId = userId;\r\n }\r\n\r\n public setCurrentAssetList(currentAssetList: AssetInfo[]): void {\r\n this.currentAssetList = currentAssetList;\r\n }\r\n\r\n public clearActiveFilters() {\r\n this.activeFilters = new ActiveFilters();\r\n this.hasFilters = this.determineIfAnyFilters(this.activeFilters);\r\n this.filterUpdates.next(this.filterCurrentAssetList());\r\n }\r\n\r\n public clearFilterSection(filterKey: string) {\r\n delete this.activeFilters[filterKey];\r\n this.hasFilters = this.determineIfAnyFilters(this.activeFilters);\r\n this.filterUpdates.next(this.filterCurrentAssetList());\r\n }\r\n\r\n public resetFilterGroup(filterGroups: FilterGroup[]): FilterGroup[] {\r\n for (const filterGroup of filterGroups) {\r\n filterGroup.groupCheckbox.checked = false;\r\n filterGroup.filterCheckboxes = this.resetFilterCheckboxes(filterGroup.filterCheckboxes);\r\n }\r\n return filterGroups;\r\n }\r\n\r\n public resetFilterCheckboxes(filterCheckboxes: FilterCheckbox[]): FilterCheckbox[] {\r\n for (const filterCheckbox of filterCheckboxes) {\r\n filterCheckbox.checked = false;\r\n }\r\n return filterCheckboxes;\r\n }\r\n\r\n public resetFilterTextboxPair(filterTextboxPair: FilterTextboxPair): FilterTextboxPair {\r\n filterTextboxPair.textOne = '';\r\n filterTextboxPair.textOneMini = '';\r\n filterTextboxPair.textTwo = '';\r\n filterTextboxPair.textTwoMini = '';\r\n if (filterTextboxPair.doubleBoxes) {\r\n filterTextboxPair.filterCondition.condition = ['', '', '', ''];\r\n } else {\r\n filterTextboxPair.filterCondition.condition = ['', ''];\r\n }\r\n return filterTextboxPair;\r\n }\r\n\r\n public setActiveFilters(activeFilters: FilterItem[], fieldName: string) {\r\n this.activeFilters[fieldName] = activeFilters;\r\n this.hasFilters = this.determineIfAnyFilters(this.activeFilters);\r\n this.filterUpdates.next(this.filterCurrentAssetList());\r\n }\r\n\r\n public activeFilterNeededCheckboxes(activeFilters: FilterCheckbox[]): boolean {\r\n for (const activeFilter of activeFilters) {\r\n if (activeFilter.checked) {\r\n return true;\r\n }\r\n }\r\n return false;\r\n }\r\n\r\n public activeFilterNeededTextBoxes(conditions: string[], doubleBoxes: boolean): boolean {\r\n if (conditions[0] === '' && conditions[1] === '') {\r\n if (doubleBoxes) {\r\n if (conditions[2] === '' && conditions[3] === '') {\r\n return false;\r\n }\r\n } else {\r\n return false;\r\n }\r\n }\r\n return true;\r\n }\r\n\r\n public determineIfAnyFilters(activeFilters: ActiveFilters): boolean {\r\n return Object.keys(activeFilters).length > 0;\r\n }\r\n\r\n public filterCurrentAssetList(): AssetInfo[] {\r\n const acceptedAssets: AcceptedAssets = new AcceptedAssets();\r\n // if no filters active just return whole list\r\n if (this.determineIfNoFilters()) {\r\n return this.currentAssetList;\r\n }\r\n for (const asset of this.currentAssetList) {\r\n let conditionFailed = false;\r\n const emptyAsset = asset as AssetInfo;\r\n Object.keys(this.activeFilters).forEach((filter) => {\r\n // if condition failed no need to keep trying\r\n if (!conditionFailed) {\r\n const filterItems: FilterItem[] = this.activeFilters[filter];\r\n if (filterItems.length > 0) {\r\n if (this.checkActiveFilterMap(asset, filterItems)) {\r\n if (asset.frontEndExclusive?.emptyBay) {\r\n acceptedAssets[`${emptyAsset.operations.bayNumber}`] = asset;\r\n } else {\r\n if (!acceptedAssets[`${asset.equipment.equipmentType}:${asset.equipment.equipmentNumber}`]) {\r\n acceptedAssets[`${asset.equipment.equipmentType}:${asset.equipment.equipmentNumber}`] = asset;\r\n }\r\n }\r\n } else {\r\n // if active map fails remove asset (because across groups is AND)\r\n if (asset.frontEndExclusive?.emptyBay) {\r\n if (acceptedAssets[`${emptyAsset.operations.bayNumber}`]) {\r\n delete acceptedAssets[`${emptyAsset.operations.bayNumber}`];\r\n }\r\n } else {\r\n if (acceptedAssets[`${asset.equipment.equipmentType}:${asset.equipment.equipmentNumber}`]) {\r\n delete acceptedAssets[`${asset.equipment.equipmentType}:${asset.equipment.equipmentNumber}`];\r\n }\r\n }\r\n conditionFailed = true;\r\n }\r\n }\r\n }\r\n });\r\n }\r\n return this.acceptedAssetsMapToList(acceptedAssets);\r\n }\r\n\r\n public determineIfNoFilters(): boolean {\r\n let noFilter = true;\r\n Object.keys(this.activeFilters).forEach((filter) => {\r\n if (this.activeFilters[filter].length > 0) {\r\n noFilter = false;\r\n return;\r\n }\r\n });\r\n return noFilter;\r\n }\r\n\r\n public checkActiveFilterMap(asset: AssetInfo, filterItems: FilterItem[]): boolean {\r\n for (const filterItem of filterItems) {\r\n filterItem.filterCondition.location = this.currentLocation;\r\n if (filterItem.filterConditionFunction(asset, filterItem.filterCondition)) {\r\n return true;\r\n }\r\n }\r\n return false;\r\n }\r\n\r\n public acceptedAssetsMapToList(acceptedAssets: AcceptedAssets): AssetInfo[] {\r\n const assetList: AssetInfo[] = [];\r\n Object.keys(acceptedAssets).forEach((assetKey) => {\r\n assetList.push(acceptedAssets[assetKey]);\r\n });\r\n return assetList;\r\n }\r\n\r\n public searchAssetList(searchString: string): AssetInfo[] {\r\n const foundAssets: AssetInfo[] = [];\r\n for (const asset of this.currentAssetList) {\r\n if (asset.equipment.equipmentNumber.includes(searchString)) {\r\n foundAssets.push(asset);\r\n }\r\n }\r\n return foundAssets;\r\n }\r\n\r\n public isTextboxesFilter(filter: FilterCheckboxes | FilterCheckboxesGroup | FilterTextboxes): filter is FilterTextboxes {\r\n return (filter as FilterTextboxes).filterTextboxes !== undefined;\r\n }\r\n\r\n public isCheckboxesFilter(filter: FilterCheckboxes | FilterCheckboxesGroup | FilterTextboxes): filter is FilterCheckboxes {\r\n return (filter as FilterCheckboxes).filterCheckboxes !== undefined;\r\n }\r\n\r\n public isCheckboxesGroupFilter(filter: FilterCheckboxes | FilterCheckboxesGroup | FilterTextboxes): filter is FilterCheckboxesGroup {\r\n return (filter as FilterCheckboxesGroup).filterGroup !== undefined;\r\n }\r\n\r\n}\r\n","import { AssetInfo } from '../../../model/asset-info/asset-info';\r\nimport { Operations } from '../../../model/asset-info/operations';\r\n\r\nexport class AcceptedAssets {\r\n [asset: string]: AssetInfo;\r\n}\r\n","import { FilterItem } from '../../../component/filter/model/filter-item';\r\n\r\n// across groups we need AND and within groups we need OR for the asset to pass the filter\r\nexport class ActiveFilters {\r\n [filterGroup: string]: (FilterItem)[];\r\n}\r\n","import { Injectable } from '@angular/core';\r\n\r\nimport { FilterCheckbox } from '../../component/filter/model/filter-checkbox';\r\nimport { FilterTextboxPair } from '../../component/filter/model/filter-textbox-pair';\r\nimport { FilterCondition } from '../../component/filter/model/filter-condition';\r\nimport { FilterConditions } from './filter-conditions';\r\nimport { FilterGroup } from '../../component/filter/model/filter-group';\r\n\r\nimport { AssetInfo } from '../../model/asset-info/asset-info';\r\nimport { Operations } from '../../model/asset-info/operations';\r\nimport { OnPropertyOperations } from '../../model/asset-info/on-property-operations';\r\nimport { OnRoadOperations } from '../../model/asset-info/on-road-operations';\r\n\r\n@Injectable({\r\n providedIn: 'root'\r\n})\r\n\r\nexport class OperationsFilterService {\r\n public createBayRangeTextboxes(filterConditions: FilterConditions): FilterTextboxPair {\r\n return new FilterTextboxPair(false, 'Bay Range', '', 'From', 'To', new FilterCondition(asset => '', []), filterConditions.filterBayRange);\r\n }\r\n\r\n public createNoEmptyBayCheckboxes(filterConditions: FilterConditions): FilterCheckbox[] {\r\n const filterCheckboxes = [];\r\n filterCheckboxes.push(\r\n new FilterCheckbox('Don\\'t Display Empty Bays', '', new FilterCondition((asset: AssetInfo) => asset.frontEndExclusive?.emptyBay, []), filterConditions.filterFalsy),\r\n );\r\n return filterCheckboxes;\r\n }\r\n\r\n public createRejectedCheckboxes(filterConditions: FilterConditions): FilterCheckbox[] {\r\n const filterCheckboxes = [];\r\n filterCheckboxes.push(\r\n new FilterCheckbox('Rejected Only', '', new FilterCondition((asset) => '', []), filterConditions.filterRejected),\r\n );\r\n return filterCheckboxes;\r\n }\r\n\r\n public createOriginDestinationTextboxes(filterConditions: FilterConditions): FilterTextboxPair {\r\n return new FilterTextboxPair(true, 'Origin', 'Destination', 'From', 'To', new FilterCondition(asset => '', []), filterConditions.filterOriginDestination);\r\n }\r\n\r\n public createSlocElocTextboxes(filterConditions: FilterConditions): FilterTextboxPair {\r\n return new FilterTextboxPair(false, 'SLOC', 'ELOC', 'Starting Loc', 'Ending Loc', new FilterCondition(asset => '', []), filterConditions.filterSlocEloc);\r\n }\r\n\r\n public createDueDateTextboxes(filterConditions: FilterConditions): FilterTextboxPair {\r\n return new FilterTextboxPair(false, 'Due Date', '', 'From', 'To', new FilterCondition((asset: AssetInfo) => asset.operations?.loads, []), filterConditions.filterFromToDueDate);\r\n }\r\n\r\n public createCreateDateTextboxes(filterConditions: FilterConditions): FilterTextboxPair {\r\n return new FilterTextboxPair(false, 'Create Date', '', 'From', 'To', new FilterCondition((asset: AssetInfo) => asset.operations?.loads, []), filterConditions.filterFromToCreateDate);\r\n }\r\n\r\n public createLoadCoadCheckboxes(filterConditions: FilterConditions): FilterCheckbox[] {\r\n const filterCheckboxes = [];\r\n filterCheckboxes.push(\r\n new FilterCheckbox('Bypass', '', new FilterCondition((asset: AssetInfo) => asset.operations?.loads, ['B']), filterConditions.filterLoadCode),\r\n new FilterCheckbox('Multi-Load', '', new FilterCondition((asset: AssetInfo) => asset.operations?.loads, ['M']), filterConditions.filterLoadCode),\r\n new FilterCheckbox('Empty', '', new FilterCondition((asset: AssetInfo) => asset.operations?.loads, ['E']), filterConditions.filterLoadCode),\r\n new FilterCheckbox('Top Off', '', new FilterCondition((asset: AssetInfo) => asset.operations?.loads, ['T']), filterConditions.filterLoadCode),\r\n new FilterCheckbox('Load', '', new FilterCondition((asset: AssetInfo) => asset.operations?.loads, ['L']), filterConditions.filterLoadCode),\r\n new FilterCheckbox('Unload', '', new FilterCondition((asset: AssetInfo) => asset.operations?.loads, ['U', 'M']), filterConditions.filterLoadCode)\r\n );\r\n return filterCheckboxes;\r\n }\r\n\r\n public createTrailerDunnageStatusCheckboxes(filterConditions: FilterConditions): FilterGroup[] {\r\n const filterGroup: FilterGroup[] = [];\r\n\r\n const bagsField = (asset: AssetInfo) => asset.operations?.trailerDunnage?.bags;\r\n const gaylordField = (asset: AssetInfo) => asset.operations?.trailerDunnage?.gaylord;\r\n const palletsField = (asset: AssetInfo) => asset.operations?.trailerDunnage?.pallets;\r\n const dolliesField = (asset: AssetInfo) => asset.operations?.trailerDunnage?.hasDollies;\r\n const trashField = (asset: AssetInfo) => asset.operations?.trailerDunnage?.trash;\r\n const cleanField = (asset: AssetInfo) => asset.operations?.trailerDunnage?.clean;\r\n\r\n // Dunnage\r\n const dunnageCheckboxes = [\r\n new FilterCheckbox('Bags', '' , new FilterCondition(bagsField, []), filterConditions.filterBooleanTrue),\r\n new FilterCheckbox('Gaylords', '', new FilterCondition(gaylordField, []), filterConditions.filterBooleanTrue),\r\n new FilterCheckbox('Pallets', '', new FilterCondition(palletsField, []), filterConditions.filterBooleanTrue),\r\n new FilterCheckbox('Dollies', '', new FilterCondition(dolliesField, []), filterConditions.filterBooleanTrue),\r\n new FilterCheckbox('Trash', '', new FilterCondition(trashField, []), filterConditions.filterBooleanTrue),\r\n new FilterCheckbox('Clean', '', new FilterCondition(cleanField, []), filterConditions.filterBooleanTrue),\r\n ];\r\n\r\n const automotiveEquipmentField = (asset: AssetInfo) => asset.operations?.trailerDunnage?.hasAutomotiveEquipment;\r\n const peEquipmentField = (asset: AssetInfo) => asset.operations?.trailerDunnage?.hasPEEquipment;\r\n const hubEquipmentField = (asset: AssetInfo) => asset.operations?.trailerDunnage?.hasHubEquipment;\r\n\r\n // Equipment\r\n const equipmentCheckboxes = [\r\n new FilterCheckbox('Automotive', '' , new FilterCondition(automotiveEquipmentField, []), filterConditions.filterBooleanTrue),\r\n new FilterCheckbox('PE', '', new FilterCondition(peEquipmentField, []), filterConditions.filterBooleanTrue),\r\n new FilterCheckbox('Hub', '', new FilterCondition(hubEquipmentField, []), filterConditions.filterBooleanTrue),\r\n ];\r\n\r\n filterGroup.push(\r\n new FilterGroup('Dunnage', '', dunnageCheckboxes),\r\n new FilterGroup('Equipment', '', equipmentCheckboxes),\r\n );\r\n\r\n return filterGroup;\r\n }\r\n\r\n public createTagStatusCheckboxes(filterConditions: FilterConditions): FilterGroup[] {\r\n const filterGroup: FilterGroup[] = [];\r\n\r\n const deactivatedField = (asset: AssetInfo) => asset.operations?.tagStatus === '0';\r\n const licenseField = (asset: AssetInfo) => asset.operations?.tagStatus === 'L';\r\n const availableField = (asset: AssetInfo) => asset.operations?.tagStatus === '1';\r\n const pmiField = (asset: AssetInfo) => asset.operations?.tagStatus === 'P';\r\n const cpuField = (asset: AssetInfo) => asset.operations?.tagStatus === 'C';\r\n const redField = (asset: AssetInfo) => asset.operations?.tagStatus === 'R';\r\n const greenField = (asset: AssetInfo) => asset.operations?.tagStatus === 'G';\r\n const outsideShopField = (asset: AssetInfo) => asset.operations?.tagStatus === 'S';\r\n const adaField = (asset: AssetInfo) => asset.operations?.tagStatus === 'J';\r\n const vinField = (asset: AssetInfo) => asset.operations?.tagStatus === 'V';\r\n\r\n const tagCheckboxes = [\r\n new FilterCheckbox('0 - Deactivated', '', new FilterCondition(deactivatedField, []), filterConditions.filterBooleanTrue),\r\n new FilterCheckbox('L - License', '', new FilterCondition(licenseField, []), filterConditions.filterBooleanTrue),\r\n new FilterCheckbox('1 - Available', '', new FilterCondition(availableField, []), filterConditions.filterBooleanTrue),\r\n new FilterCheckbox('P - PMI', '', new FilterCondition(pmiField, []), filterConditions.filterBooleanTrue),\r\n new FilterCheckbox('C - CPU', '', new FilterCondition(cpuField, []), filterConditions.filterBooleanTrue),\r\n new FilterCheckbox('R - Red Tag', '', new FilterCondition(redField, []), filterConditions.filterBooleanTrue),\r\n new FilterCheckbox('G - Green Tag', '', new FilterCondition(greenField, []), filterConditions.filterBooleanTrue),\r\n new FilterCheckbox('S - Outside Shop', '', new FilterCondition(outsideShopField, []), filterConditions.filterBooleanTrue),\r\n new FilterCheckbox('J - ADA', '', new FilterCondition(adaField, []), filterConditions.filterBooleanTrue),\r\n new FilterCheckbox('V - Missing VIN', '', new FilterCondition(vinField, []), filterConditions.filterBooleanTrue),\r\n ];\r\n\r\n filterGroup.push(\r\n new FilterGroup('Tag Status', '', tagCheckboxes)\r\n );\r\n\r\n return filterGroup;\r\n }\r\n\r\n public createServiceLevelCheckboxes(filterConditions: FilterConditions): FilterCheckbox[] {\r\n const filterCheckboxes = [];\r\n filterCheckboxes.push(\r\n new FilterCheckbox('1 Day', '', new FilterCondition((asset: AssetInfo) => asset.operations?.highestServiceLevel, ['NEXT_DAY']), filterConditions.filterStringFull),\r\n new FilterCheckbox('3 Day', '', new FilterCondition((asset: AssetInfo) => asset.operations?.highestServiceLevel, ['THREE_DAY_SELECT']), filterConditions.filterStringFull),\r\n new FilterCheckbox('2 Day', '', new FilterCondition((asset: AssetInfo) => asset.operations?.highestServiceLevel, ['SECOND_DAY']), filterConditions.filterStringFull),\r\n new FilterCheckbox('Ground', '', new FilterCondition((asset: AssetInfo) => asset.operations?.highestServiceLevel, ['GROUND']), filterConditions.filterStringFull),\r\n new FilterCheckbox('Early AM', '', new FilterCondition((asset: AssetInfo) => asset.operations?.highestServiceLevel, ['EAM']), filterConditions.filterStringFull)\r\n );\r\n return filterCheckboxes;\r\n }\r\n\r\n public createAlertsCheckboxes(filterConditions: FilterConditions): FilterCheckbox[] {\r\n const filterCheckboxes = [];\r\n filterCheckboxes.push(\r\n new FilterCheckbox('Critical', '', new FilterCondition((asset: AssetInfo) => asset.operations?.alertSeverity, ['Critical']), filterConditions.filterStringFull),\r\n new FilterCheckbox('Non-Critical', '', new FilterCondition((asset: AssetInfo) => asset.operations?.alertSeverity, ['Critical', '', undefined, null]), filterConditions.filterDoesNotEqual),\r\n );\r\n return filterCheckboxes;\r\n }\r\n\r\n public createEquipmentStatusCheckboxes(filterConditions: FilterConditions): FilterCheckbox[] {\r\n const filterCheckboxes = [];\r\n filterCheckboxes.push(\r\n new FilterCheckbox('BOP/BOR', '', new FilterCondition((asset: AssetInfo) => asset.operations?.lastActivity?.type, ['BOP', 'BOR']), filterConditions.filterStringFull),\r\n new FilterCheckbox('Demurrage', '', new FilterCondition((asset: AssetInfo) => asset.operations?.setHasDemurrageAlert, []), filterConditions.filterBooleanTrue),\r\n new FilterCheckbox('Unavailable', '', new FilterCondition((asset: AssetInfo) => asset.equipment?.available, []), filterConditions.filterBooleanFalse),\r\n new FilterCheckbox('Available', '', new FilterCondition((asset: AssetInfo) => asset.equipment?.available, []), filterConditions.filterBooleanTrue),\r\n );\r\n return filterCheckboxes;\r\n }\r\n\r\n public createPmiStatusCheckboxes(filterConditions: FilterConditions): FilterCheckbox[] {\r\n const filterCheckboxes = [];\r\n filterCheckboxes.push(\r\n new FilterCheckbox('PMI 30 Days', '', new FilterCondition((asset: AssetInfo) => asset.equipment?.pmiStatus, ['NEEDS_ATTENTION']), filterConditions.filterStringFull),\r\n new FilterCheckbox('PMI Overdue', '', new FilterCondition((asset: AssetInfo) => asset.equipment?.pmiStatus, ['PAST_DUEDATE']), filterConditions.filterStringFull),\r\n new FilterCheckbox('FHWA', '', new FilterCondition((asset: AssetInfo) => asset.equipment?.pmiStatus, ['NEEDS_ATTENTION', 'PAST_DUEDATE']), filterConditions.filterStringFull),\r\n );\r\n return filterCheckboxes;\r\n }\r\n\r\n public createGpsCheckboxes(filterConditions: FilterConditions): FilterCheckbox[] {\r\n const filterCheckboxes = [];\r\n filterCheckboxes.push(\r\n new FilterCheckbox('Bad GPS', '', new FilterCondition((asset: AssetInfo) => asset.equipment?.lastUpdateTimeStamp, []), filterConditions.filterBadGps),\r\n new FilterCheckbox('GPS Waiting', '', new FilterCondition((asset: AssetInfo) => asset.equipment?.gpsDetails?.confidence, ['WAITING']), filterConditions.filterStringFull),\r\n new FilterCheckbox('On-Site', '', new FilterCondition((asset: AssetInfo) => asset.dataSources, ['TAM']), filterConditions.filterArrayEquals),\r\n new FilterCheckbox('Off-Property', '', new FilterCondition((asset: AssetInfo) => asset.equipment?.gpsDetails?.confidence, ['SITE']), filterConditions.filterStringFull),\r\n new FilterCheckbox('Low Battery', '', new FilterCondition((asset: AssetInfo) => asset.equipment?.gpsDetails?.hasLowBattery, []), filterConditions.filterBooleanTrue),\r\n new FilterCheckbox('User Confirmed', '', new FilterCondition((asset: AssetInfo) => asset.equipment?.locationConfirmation?.locationConfirmationState, ['CONFIRMED']), filterConditions.filterStringFull),\r\n );\r\n return filterCheckboxes;\r\n }\r\n\r\n public createDriverTypeCheckboxes(filterConditions: FilterConditions): FilterCheckbox[] {\r\n const filterCheckboxes = [];\r\n filterCheckboxes.push(\r\n new FilterCheckbox('UPS', '', new FilterCondition((asset: AssetInfo) => asset.operations?.driver?.type, ['Brown']), filterConditions.filterStringFull),\r\n new FilterCheckbox('Amazon', '', new FilterCondition((asset: AssetInfo) => asset.operations?.driver?.type, ['Amazon']), filterConditions.filterStringFull),\r\n new FilterCheckbox('Coyote', '', new FilterCondition((asset: AssetInfo) => asset.operations?.driver?.type, ['Coyote']), filterConditions.filterStringFull),\r\n new FilterCheckbox('Direct Ship', '', new FilterCondition((asset: AssetInfo) => asset.operations?.driver?.type, ['Direct Ship']), filterConditions.filterStringFull),\r\n new FilterCheckbox('Expedited', '', new FilterCondition((asset: AssetInfo) => asset.operations?.driver?.type, ['Expedited']), filterConditions.filterStringFull),\r\n new FilterCheckbox('Local', '', new FilterCondition((asset: AssetInfo) => asset.operations?.driver?.type, ['Local']), filterConditions.filterStringFull),\r\n new FilterCheckbox('Sleeper', '', new FilterCondition((asset: AssetInfo) => asset.operations?.driver?.type, ['Sleeper']), filterConditions.filterStringFull),\r\n );\r\n return filterCheckboxes;\r\n }\r\n\r\n public createAutoArriveCheckboxes(filterConditions: FilterConditions): FilterCheckbox[] {\r\n const filterCheckboxes = [];\r\n filterCheckboxes.push(\r\n new FilterCheckbox('Can Be Fixed', '', new FilterCondition((asset: AssetInfo) => asset.operations?.aadStatus, [6, 7]), filterConditions.filterNumber),\r\n new FilterCheckbox('Stopped', '', new FilterCondition((asset: AssetInfo) => asset.operations?.aadStatus, [2, 5]), filterConditions.filterNumber),\r\n new FilterCheckbox('Not Eligible', '', new FilterCondition((asset: AssetInfo) => asset.operations?.aadStatus, [3, 4]), filterConditions.filterNumber),\r\n );\r\n return filterCheckboxes;\r\n }\r\n\r\n public createAttributesCheckboxes(filterConditions: FilterConditions): FilterCheckbox[] {\r\n const filterCheckboxes = [];\r\n filterCheckboxes.push(\r\n new FilterCheckbox('Critical Healthcare', '', new FilterCondition((asset: AssetInfo) => asset.operations?.hasCriticalCare, []), filterConditions.filterBooleanTrue),\r\n new FilterCheckbox('Hazmat', '', new FilterCondition((asset: AssetInfo) => asset.operations?.hasHazmat, []), filterConditions.filterBooleanTrue),\r\n new FilterCheckbox('Priority Shipping', '', new FilterCondition((asset: AssetInfo) => asset.operations?.hasPriorityShipper, []), filterConditions.filterBooleanTrue),\r\n new FilterCheckbox('Messages', '', new FilterCondition((asset: AssetInfo) => asset.operations?.hasComments, []), filterConditions.filterBooleanTrue),\r\n new FilterCheckbox('Heavy Smalls', '', new FilterCondition((asset: AssetInfo) => (asset.operations?.destBagsPieceCount >= 300), []), filterConditions.filterBooleanTrue),\r\n new FilterCheckbox('Heavy Irregulars', '', new FilterCondition((asset: AssetInfo) => (asset.operations?.irregPieceCount >= 30), []), filterConditions.filterBooleanTrue),\r\n new FilterCheckbox('Multiples', '', new FilterCondition((asset: AssetInfo) => asset.operations?.hasMultipleLoads, []), filterConditions.filterBooleanTrue),\r\n );\r\n return filterCheckboxes;\r\n }\r\n}\r\n","import { Injectable } from '@angular/core';\r\nimport * as LaunchDarkly from 'launchdarkly-js-client-sdk';\r\nimport { EnvironmentService } from '../environment/environment.service';\r\nimport { AuthService } from '../../auth/auth.service';\r\n\r\n@Injectable({\r\n providedIn: 'root'\r\n})\r\nexport class LaunchDarklyService {\r\n client: LaunchDarkly.LDClient;\r\n private sdkKey: string;\r\n\r\n constructor(private environmentService: EnvironmentService,\r\n private authService: AuthService) {\r\n this.environmentService.environmentPromise.then(env => {\r\n this.sdkKey = env.launchDarklySDKKey;\r\n const user = {\r\n key: this.authService.getUserId()\r\n } as LaunchDarkly.LDContext;\r\n this.client = LaunchDarkly.initialize(this.sdkKey, user);\r\n this.checkFlagsUpdate();\r\n });\r\n }\r\n\r\n checkFlagsUpdate(): void {\r\n this.client.waitForInitialization();\r\n this.client.on('change', allChanges => {\r\n console.log('LaunchDarkly flags changed:', JSON.stringify(allChanges));\r\n });\r\n }\r\n\r\n getFlag(flagKey: string): boolean {\r\n try {\r\n this.client.waitForInitialization();\r\n return this.client.variation(flagKey, false);\r\n } catch (err) {\r\n console.error(`Error from Launch Darkly getFlag ${flagKey}. Error ${err} `);\r\n }\r\n return false;\r\n }\r\n\r\n}\r\n","import { Injectable } from '@angular/core';\r\nimport {AssetInfo} from '../../model/asset-info/asset-info';\r\nimport {OnPropertyOperations} from '../../model/asset-info/on-property-operations';\r\nimport {Operations} from '../../model/asset-info/operations';\r\nimport {FrontEndExclusive} from '../../model/asset-info/front-end-exclusive';\r\n\r\n@Injectable({\r\n providedIn: 'root'\r\n})\r\nexport class LocalDataService {\r\n\r\n private mapOfFrontendExclusiveEntries: Map = new Map();\r\n constructor() { }\r\n\r\n public clearTrackedConfirmationStatus() {\r\n this.mapOfFrontendExclusiveEntries.clear();\r\n }\r\n public trackConfirmationStatus(asset: AssetInfo, confirmationPending: string, confirmationStatus: string) {\r\n const onPropertyOperation: OnPropertyOperations = asset.operations as OnPropertyOperations;\r\n if (onPropertyOperation != null && typeof(onPropertyOperation.bayNumber) != 'undefined') {\r\n\r\n const key = `${onPropertyOperation.bayNumber}::${onPropertyOperation.bayPosition}::${asset.equipment?.equipmentType}::${asset.equipment?.equipmentNumber}`;\r\n let frontEndExclusive: FrontEndExclusive = asset.frontEndExclusive;\r\n if (frontEndExclusive === undefined || frontEndExclusive === null ) {\r\n frontEndExclusive = new FrontEndExclusive();\r\n }\r\n if (confirmationPending !== undefined) {\r\n frontEndExclusive.confirmationPending = confirmationPending;\r\n }\r\n if (confirmationStatus !== undefined) {\r\n frontEndExclusive.confirmationStatus = confirmationStatus;\r\n frontEndExclusive.confirmationStatusTimestamp = new Date().getTime();\r\n }\r\n this.mapOfFrontendExclusiveEntries.set(key, frontEndExclusive);\r\n }\r\n }\r\n\r\n public syncConfirmationStatus(asset: AssetInfo) {\r\n const onPropertyOperation: OnPropertyOperations = asset.operations as OnPropertyOperations;\r\n if (onPropertyOperation != null && typeof(onPropertyOperation.bayNumber) != 'undefined') {\r\n\r\n const key = `${onPropertyOperation.bayNumber}::${onPropertyOperation.bayPosition}::${asset.equipment?.equipmentType}::${asset.equipment?.equipmentNumber}`;\r\n const frontEndExclusive: FrontEndExclusive = this.mapOfFrontendExclusiveEntries.get(key);\r\n if (frontEndExclusive !== null && frontEndExclusive !== asset.frontEndExclusive) {\r\n if (asset.frontEndExclusive === undefined || asset.frontEndExclusive === null) {\r\n asset.frontEndExclusive = frontEndExclusive;\r\n }else if (frontEndExclusive !== undefined && frontEndExclusive !== null) {\r\n asset.frontEndExclusive.confirmationPending = frontEndExclusive.confirmationPending;\r\n if (new Date().getTime() - frontEndExclusive.confirmationStatusTimestamp < 2*60*1000) {\r\n asset.frontEndExclusive.confirmationStatus = frontEndExclusive.confirmationStatus;\r\n asset.frontEndExclusive.confirmationStatusTimestamp = frontEndExclusive.confirmationStatusTimestamp;\r\n }\r\n }\r\n }\r\n }\r\n }\r\n\r\n}\r\n","import { Injectable } from '@angular/core';\r\nimport { Map as LeafLetMap } from 'leaflet';\r\n\r\n@Injectable({\r\n providedIn: 'root'\r\n})\r\nexport class MapService {\r\n private mapRef?: LeafLetMap;\r\n private bingMapLayer: L.TileLayer;\r\n private mapType: string;\r\n\r\n constructor() { }\r\n\r\n /** Map Z-Indexes\r\n * 200 tile pane (leaflet)\r\n * - 225 slotted bay polygons\r\n * - 250 MapLarge Bay Drawings\r\n * 400 overlay pane (leaflet)\r\n * 500 shadow pane (leaflet)\r\n * 600 marker pane (leaflet)\r\n * 650 tooltip pane (leaflet)\r\n * 700 popup pane (leaflet)\r\n */\r\n\r\n public getMapRef(): Promise {\r\n return new Promise((resolve) => {\r\n if (this.mapRef) {\r\n resolve(this.mapRef);\r\n } else {\r\n const checkInterval = setInterval(() => {\r\n if (this.mapRef) {\r\n clearInterval(checkInterval);\r\n resolve(this.mapRef);\r\n } else {\r\n console.log('Not Ready');\r\n }\r\n }, 100);\r\n }\r\n });\r\n }\r\n\r\n public setMapRef(map: LeafLetMap) {\r\n this.mapRef = map;\r\n }\r\n\r\n public setBingMapLayer(bingMapLayer: L.TileLayer): void {\r\n this.bingMapLayer = bingMapLayer;\r\n }\r\n\r\n public getBingMapLayer(): L.TileLayer {\r\n return this.bingMapLayer;\r\n }\r\n\r\n public setMapType(mapType: string): void {\r\n this.mapType = mapType;\r\n }\r\n\r\n public getMapType(): string {\r\n return this.mapType;\r\n }\r\n}\r\n","/* eslint-disable @typescript-eslint/naming-convention */\r\n/* eslint-disable quote-props */\r\n/* eslint-disable prefer-arrow/prefer-arrow-functions */\r\nimport { Injectable } from '@angular/core';\r\n\r\n@Injectable({\r\n providedIn: 'root'\r\n})\r\nexport class MapLargeBaysQueries {\r\n\r\n public getBaysWithNoseQuery = function(slicAbbreviation: string, cny_cd: string, versionKey: string) {\r\n return {\r\n select: {\r\n type: 'geo.poly'\r\n },\r\n withgeo: true,\r\n sqlselect: ['*', 'Nose'],\r\n table: {\r\n query: {\r\n withgeo: true,\r\n sqlselect: [\r\n '*',\r\n 'Centroid(Segment(bay,Exit)) as Nose',\r\n ],\r\n table: {\r\n query: {\r\n sqlselect: [\r\n 'WKT as bay',\r\n '*'\r\n ],\r\n table: {\r\n function: {\r\n account: 'ups',\r\n name: 'UPS/FacilityBays',\r\n params: {\r\n Facility: slicAbbreviation,\r\n Country: cny_cd,\r\n WithGeo: true,\r\n VersionKey: versionKey\r\n }\r\n }\r\n },\r\n withgeo: true\r\n }\r\n }\r\n }\r\n }\r\n };\r\n };\r\n\r\n public getBaysExitsQuery = function(slicAbbreviation: string, cny_cd: string, versionKey: string) {\r\n return {\r\n withgeo: true,\r\n select: {\r\n type: 'geo.line'\r\n },\r\n where: [],\r\n table: {\r\n query: {\r\n sqlselect: [\r\n 'Segment(bay, Exit)',\r\n 'BayType'\r\n ],\r\n table: {\r\n query: {\r\n sqlselect: [\r\n 'WKT as bay',\r\n '*'\r\n ],\r\n table: {\r\n function: {\r\n account: 'ups',\r\n name: 'UPS/FacilityBays',\r\n params: {\r\n Facility: slicAbbreviation,\r\n Country: cny_cd,\r\n WithGeo: true,\r\n VersionKey: versionKey\r\n }\r\n }\r\n },\r\n withgeo: true\r\n }\r\n },\r\n where: [\r\n [\r\n {\r\n col: 'Exit',\r\n test: 'Greater',\r\n value: 0\r\n }\r\n ]\r\n ],\r\n withgeo: true\r\n }\r\n }\r\n };\r\n };\r\n\r\n public getBaysWithNoseQueryByLevel = function(slicAbbreviation: string, cny_cd: string, floorLevel: number, versionKey: string) {\r\n return {\r\n withgeo: true,\r\n select: {\r\n type: 'geo.poly'\r\n },\r\n sqlselect: ['*', 'Nose'],\r\n table: {\r\n query: {\r\n sqlselect: [\r\n '*',\r\n 'Centroid(Segment(bay,Exit)) as Nose'\r\n ],\r\n table: {\r\n query: {\r\n sqlselect: [\r\n 'WKT as bay',\r\n '*'\r\n ],\r\n table: {\r\n function: {\r\n account: 'ups',\r\n name: 'UPS/FacilityBays',\r\n params: {\r\n Facility: slicAbbreviation,\r\n Country: cny_cd,\r\n WithGeo: true,\r\n VersionKey: versionKey\r\n }\r\n }\r\n },\r\n withgeo: true\r\n }\r\n },\r\n where: [\r\n [\r\n {\r\n col: 'FloorLevel',\r\n test: 'Equal',\r\n value: floorLevel\r\n }\r\n ]\r\n ],\r\n withgeo: true\r\n }\r\n }\r\n };\r\n };\r\n\r\n public getBaysExitsQueryByLevel = function(slicAbbreviation: string, cny_cd: string, floorLevel: number, versionKey: string) {\r\n return {\r\n withgeo: true,\r\n select: {\r\n type: 'geo.line'\r\n },\r\n where: [],\r\n table: {\r\n query: {\r\n sqlselect: [\r\n 'Segment(bay, Exit)',\r\n 'BayType'\r\n ],\r\n table: {\r\n query: {\r\n sqlselect: [\r\n 'WKT as bay',\r\n '*'\r\n ],\r\n table: {\r\n function: {\r\n account: 'ups',\r\n name: 'UPS/FacilityBays',\r\n params: {\r\n Facility: slicAbbreviation,\r\n Country: cny_cd,\r\n WithGeo: true,\r\n VersionKey: versionKey\r\n }\r\n }\r\n },\r\n withgeo: true\r\n }\r\n },\r\n where: [\r\n [\r\n {\r\n col: 'Exit',\r\n test: 'Greater',\r\n value: 0\r\n },\r\n {\r\n col: 'FloorLevel',\r\n test: 'Equal',\r\n value: floorLevel\r\n }\r\n ]\r\n ],\r\n withgeo: true\r\n }\r\n }\r\n };\r\n };\r\n}\r\n","import { Injectable } from '@angular/core';\r\n\r\nimport { MapLargeFunctionsService } from './maplarge-functions.service';\r\nimport { MapLargeBay } from '../../model/maplarge/mapLargeBay';\r\nimport { MapLargeBays } from '../../model/maplarge/mapLargeBays';\r\nimport { MapLargeZone } from '../../model/maplarge/mapLargeZone';\r\nimport { MapLargeZones } from '../../model/maplarge/mapLargeZones';\r\n\r\n@Injectable({\r\n providedIn: 'root'\r\n})\r\n\r\nexport class MapLargeDataService {\r\n constructor(\r\n private mapLargeFunctionsService: MapLargeFunctionsService,\r\n ) { }\r\n\r\n\r\n public async getMapLargeBaysData(baysLayerJSON): Promise {\r\n return new Promise((resolve) => {\r\n this.mapLargeFunctionsService.getLayerData(baysLayerJSON).then(baysData => {\r\n const mapLargeBayData = new Array();\r\n if (baysData) {\r\n const mlBayData = baysData as MapLargeBays;\r\n if (mlBayData.BayNumber) {\r\n const numberOfBays = mlBayData.BayNumber.length;\r\n for (let i = 0; i < numberOfBays; i++) {\r\n const bayInfo = new MapLargeBay();\r\n bayInfo.BayNumber = mlBayData.BayNumber[i];\r\n bayInfo.BayType = mlBayData.BayType[i];\r\n bayInfo.BayGroupLabel = mlBayData.BayGroupLabel[i];\r\n bayInfo.FloorLevel = mlBayData.FloorLevel[i];\r\n bayInfo.geodenied = mlBayData.geodenied[i];\r\n bayInfo.Exit = mlBayData.Exit[i];\r\n bayInfo.BayLength = mlBayData.BayLength[i];\r\n bayInfo.Active = mlBayData.Active[i];\r\n bayInfo.AssetType = mlBayData.AssetType[i];\r\n bayInfo.BayTrailerCompatibility = mlBayData.BayTrailerCompatibility[i];\r\n bayInfo.BayType = mlBayData.BayType[i];\r\n bayInfo.LoadCode = mlBayData.LoadCode[i];\r\n bayInfo.MaxAssets = mlBayData.MaxAssets[i];\r\n bayInfo.ServiceLevel = mlBayData.ServiceLevel[i];\r\n bayInfo.StackType = mlBayData.StackType[i];\r\n bayInfo.BayBoundaryType = mlBayData.BayBoundaryType[i];\r\n bayInfo.AssetEquipmentType = mlBayData.AssetEquipmentType[i];\r\n bayInfo.TagCode = mlBayData.TagCode[i];\r\n bayInfo.AssetCategory = mlBayData.AssetCategory[i];\r\n bayInfo.WKT = mlBayData.WKT[i];\r\n if (mlBayData.Nose && mlBayData.Nose[i] && mlBayData.Nose[i] !== '' && mlBayData.Nose[i] !== 'POINT (-3060 90)') {\r\n const bayNoseGPS = mlBayData.Nose[i].replace('POINT (', '').replace(')', '').replace(/ /g, ',');\r\n const bayNoseGPSArray = bayNoseGPS.split(',');\r\n bayInfo.noseLatitude = Number(bayNoseGPSArray[1]);\r\n bayInfo.noseLongitude = Number(bayNoseGPSArray[0]);\r\n } else {\r\n bayInfo.noseLatitude = 0;\r\n bayInfo.noseLongitude = 0;\r\n }\r\n if (bayInfo.WKT !== null) {\r\n const bayCenterGps = this.mapLargeFunctionsService.getBayCenter(bayInfo.WKT);\r\n if (bayCenterGps !== null && bayCenterGps.length > 0) {\r\n bayInfo.zoomLatitude = bayCenterGps[0];\r\n bayInfo.zoomLongitude = bayCenterGps[1];\r\n }\r\n }\r\n\r\n bayInfo.occupied = 0;\r\n mapLargeBayData.push(bayInfo);\r\n }\r\n mapLargeBayData.sort((a, b) => {\r\n if (a.BayNumber < b.BayNumber) {\r\n return -1;\r\n } else {\r\n return 1;\r\n }\r\n });\r\n }\r\n }\r\n resolve(mapLargeBayData);\r\n });\r\n });\r\n }\r\n public async getMapLargeZonesData(zonesLayerJSON: any): Promise {\r\n return new Promise((resolve) => {\r\n this.mapLargeFunctionsService.getLayerData(zonesLayerJSON).then(zonesData => {\r\n const mapLargeZoneData = new Array();\r\n if (zonesData) {\r\n const mlZoneData = zonesData as MapLargeZones;\r\n if (mlZoneData.ZoneName) {\r\n const numberOfZones = mlZoneData.ZoneName.length;\r\n for (let i = 0; i < numberOfZones; i++) {\r\n const bayRanges = mlZoneData.BayRange[i].split(',');\r\n for (const bayRange of bayRanges) {\r\n const zoneInfo = new MapLargeZone();\r\n zoneInfo.zoneId = i;\r\n zoneInfo.ZoneName = mlZoneData.ZoneName[i];\r\n zoneInfo.BayRange = mlZoneData.BayRange[i];\r\n zoneInfo.GeoDenied = mlZoneData.GeoDenied[i];\r\n zoneInfo.FloorLevel = mlZoneData.FloorLevel[i];\r\n zoneInfo.Active = mlZoneData.Active[i];\r\n zoneInfo.AssetCategory = mlZoneData.AssetCategory[i];\r\n zoneInfo.AssetEquipmentType = mlZoneData.AssetEquipmentType[i];\r\n zoneInfo.AssetType = mlZoneData.AssetType[i];\r\n zoneInfo.ZoneType = mlZoneData.ZoneType[i];\r\n zoneInfo.LoadCode = mlZoneData.LoadCode[i];\r\n zoneInfo.MaxAssets = mlZoneData.MaxAssets[i];\r\n zoneInfo.ServiceLevel = mlZoneData.ServiceLevel[i];\r\n zoneInfo.TagCode = mlZoneData.TagCode[i];\r\n zoneInfo.WKT = mlZoneData.WKT[i];\r\n zoneInfo.hasBayRange = false;\r\n zoneInfo.startBay = null;\r\n zoneInfo.endBay = null;\r\n if (zoneInfo.WKT !== null) {\r\n const zoneCenterGps = this.mapLargeFunctionsService.getBayCenter(zoneInfo.WKT);\r\n if (zoneCenterGps !== null && zoneCenterGps.length > 0) {\r\n zoneInfo.zoomLatitude = zoneCenterGps[0];\r\n zoneInfo.zoomLongitude = zoneCenterGps[1];\r\n }\r\n }\r\n if (bayRange) {\r\n const zoneBays = bayRange.split('-');\r\n if (zoneBays.length > 1) {\r\n zoneInfo.hasBayRange = true;\r\n zoneInfo.startBay = zoneBays[0].trim().replace(/^0+/, '');\r\n zoneInfo.endBay = zoneBays[1].trim().replace(/^0+/, '');\r\n }\r\n }\r\n zoneInfo.occupied = 0;\r\n mapLargeZoneData.push(zoneInfo);\r\n }\r\n }\r\n }\r\n }\r\n resolve(mapLargeZoneData);\r\n });\r\n });\r\n }\r\n\r\n}\r\n","/* eslint-disable quote-props */\r\n/* eslint-disable @typescript-eslint/member-ordering */\r\n/* eslint-disable prefer-arrow/prefer-arrow-functions */\r\n\r\nimport { Injectable } from '@angular/core';\r\nimport { MapLargeGeofenceLayers } from './maplarge-geofence-layers';\r\nimport { MapLargeQueries } from './maplarge-queries';\r\nimport { MapLargeBaysQueries } from './maplarge-bays-queries';\r\nimport { MapLargePerimetersQueries } from './maplarge-perimeters-queries';\r\n\r\n@Injectable({\r\n providedIn: 'root'\r\n})\r\n\r\nexport class MapLargeFunctionsService {\r\n constructor(\r\n private mapLargeGeofenceLayers: MapLargeGeofenceLayers,\r\n private mapLargeQueries: MapLargeQueries,\r\n private mapLargeBaysQueries: MapLargeBaysQueries,\r\n private mapLargePerimetersQueries: MapLargePerimetersQueries,\r\n ) { }\r\n\r\n public getLayoutId(selectedCountryCode: string, selectedLocationSAB: string) {\r\n let layoutId = '';\r\n const selectedDSQuery = this.mapLargeQueries.getSelectedLayoutQuery(selectedCountryCode, selectedLocationSAB);\r\n const q = ml.data.query.getQueryFromJSON(selectedDSQuery);\r\n const promise = new Promise(function(resolve, reject) {\r\n\r\n q.run(function(data, query) {\r\n layoutId = data.data.LayoutId[0];\r\n resolve(layoutId);\r\n });\r\n\r\n });\r\n return promise;\r\n }\r\n\r\n public getMapLargeLayer(layoutId: string, layerType: string, selectedLocationSAB: string, selectedCountryCode: string, versionKey: string): ml.ui.map.IMlUiLayerOptionsInterface {\r\n let layerJSON = null;\r\n switch (layerType) {\r\n case 'perimeter':\r\n layerJSON = ml.util.clone(this.mapLargeGeofenceLayers.geofenceLayerPerimetersOnProperty);\r\n layerJSON.query = this.mapLargePerimetersQueries.getLocationPerimeterWithSLICData(layoutId);\r\n break;\r\n case 'zones':\r\n layerJSON = ml.util.clone(this.mapLargeGeofenceLayers.geofenceLayers[1]);\r\n layerJSON.query = this.mapLargeQueries.getZonesQuery(selectedLocationSAB, selectedCountryCode, versionKey);\r\n break;\r\n case 'bays':\r\n layerJSON = ml.util.clone(this.mapLargeGeofenceLayers.geofenceLayers[2]);\r\n layerJSON.query = this.mapLargeBaysQueries.getBaysWithNoseQuery(selectedLocationSAB, selectedCountryCode, versionKey);\r\n break;\r\n case 'poi':\r\n layerJSON = ml.util.clone(this.mapLargeGeofenceLayers.geofenceLayers[3]);\r\n layerJSON.query = this.mapLargeQueries.getPOIsQuery(layoutId);\r\n break;\r\n case 'landmark':\r\n layerJSON = ml.util.clone(this.mapLargeGeofenceLayers.geofenceLayers[4]);\r\n layerJSON.query = this.mapLargeQueries.getLandmarksQuery(layoutId);\r\n break;\r\n case 'travelpaths':\r\n layerJSON = ml.util.clone(this.mapLargeGeofenceLayers.geofenceLayers[5]);\r\n layerJSON.query = this.mapLargeQueries.getTravelPathsQuery(selectedLocationSAB, selectedCountryCode, versionKey);\r\n break;\r\n case 'bayexits':\r\n layerJSON = ml.util.clone(this.mapLargeGeofenceLayers.geofenceLayerBayExits);\r\n layerJSON.query = this.mapLargeBaysQueries.getBaysExitsQuery(selectedLocationSAB, selectedCountryCode, versionKey);\r\n break;\r\n }\r\n console.log(`Created MapLarge ${layerType} layer.`);\r\n return layerJSON;\r\n\r\n }\r\n\r\n public getAllPerimetersMapLargeLayer() {\r\n let layerJSON = null;\r\n layerJSON = ml.util.clone(this.mapLargeGeofenceLayers.geofenceLayerPerimeters);\r\n layerJSON.query = this.mapLargePerimetersQueries.getAllPerimetersWithSLICQuery();\r\n console.log('Created MapLarge All Perimeters layer.');\r\n return layerJSON;\r\n\r\n }\r\n\r\n public getAllPerimetersOnPropertyMapLargeLayer(layoutId: string) {\r\n let layerJSON = null;\r\n layerJSON = ml.util.clone(this.mapLargeGeofenceLayers.geofenceLayerPerimeters);\r\n layerJSON.query = this.mapLargePerimetersQueries.getAllPerimetersForOnPropertyWithSLICQuery(layoutId);\r\n console.log('Created MapLarge All Perimeters layer for On Property View.');\r\n return layerJSON;\r\n }\r\n\r\n public getLayerData(layerJSON: any) {\r\n const q = ml.data.query.getQueryFromJSON(layerJSON.query);\r\n q.takeCount = 0;\r\n console.log('Getting data for layer: ' + layerJSON.id);\r\n const promise = new Promise(function(resolve, reject) {\r\n\r\n q.run(function(layerdata) {\r\n resolve(layerdata.data);\r\n });\r\n\r\n });\r\n return promise;\r\n }\r\n\r\n public getPerimeterBounds(perimeterData: any) {\r\n const newGPSPointsArray = new Array();\r\n if (perimeterData?.WKT) {\r\n for (const perimeter of perimeterData.WKT) {\r\n const perimeterGPSArray = ml.wellknown.parse(perimeter).coordinates[0][0];\r\n for (const gpsPoint of perimeterGPSArray) {\r\n newGPSPointsArray.push(new Array(gpsPoint[1], gpsPoint[0]));\r\n }\r\n }\r\n }\r\n return newGPSPointsArray;\r\n }\r\n\r\n public getMapLargeLayerByLevel(layoutId: string, layerType: string, floorLevelString: string, selectedLocationSAB: string, selectedCountryCode: string, versionKey: string) {\r\n const floorLevel = parseInt(floorLevelString, 10);\r\n let layerJSON = null;\r\n switch (layerType) {\r\n case 'zones':\r\n layerJSON = ml.util.clone(this.mapLargeGeofenceLayers.geofenceLayers[1]);\r\n layerJSON.query = this.mapLargeQueries.getZonesQueryByLevel(selectedLocationSAB, selectedCountryCode, floorLevel, versionKey);\r\n break;\r\n case 'bays':\r\n layerJSON = ml.util.clone(this.mapLargeGeofenceLayers.geofenceLayers[2]);\r\n layerJSON.query = this.mapLargeBaysQueries.getBaysWithNoseQueryByLevel(selectedLocationSAB, selectedCountryCode, floorLevel, versionKey);\r\n break;\r\n case 'bayexits':\r\n layerJSON = ml.util.clone(this.mapLargeGeofenceLayers.geofenceLayerBayExits);\r\n layerJSON.query = this.mapLargeBaysQueries.getBaysExitsQueryByLevel(selectedLocationSAB, selectedCountryCode, floorLevel, versionKey);\r\n break;\r\n case 'poi':\r\n layerJSON = ml.util.clone(this.mapLargeGeofenceLayers.geofenceLayers[3]);\r\n layerJSON.query = this.mapLargeQueries.getPOIsQueryByLevel(layoutId, floorLevel);\r\n break;\r\n }\r\n console.log(`Created MapLarge ${layerType} layer.`);\r\n return layerJSON;\r\n\r\n }\r\n\r\n public loadMapLargeHiResLayer(mlMapReference: ml.ui.map.Map) {\r\n console.log('Starting to load Hi Res Image Layer.');\r\n const hiResLayerJSON = this.getMapLargeHiResLayer();\r\n const promise = new Promise(function(resolve) {\r\n ml.onload(function() {\r\n const mapLargeLayerImage: ml.ui.map.Layer = ml.layer(mlMapReference, hiResLayerJSON);\r\n resolve(mapLargeLayerImage);\r\n console.log('Loaded Hi Res Image Layer.');\r\n });\r\n });\r\n return promise;\r\n }\r\n\r\n public getMapLargeHiResLayer = function() {\r\n const mapLargeLayerURL = ml.shortURL('/Api/ProcessDirect?request=%7B%22action%22%3A%22tile%2Fgetimagetile%22%7D&uParams=account%3Aups%3Bx%3A{x}%3By%3A{y}%3Bz%3A{z}%3Bimageset%3AHiResImagery', '', true);\r\n return {\r\n\r\n 'name': 'Hi-Res Imagery',\r\n 'opacity': '1',\r\n 'service': {\r\n 'type': 'XYZ',\r\n 'url': mapLargeLayerURL,\r\n 'proxy': false,\r\n 'authType': 'None',\r\n 'options': {\r\n 'minZoom': 14,\r\n 'maxZoom': 21,\r\n 'subdomains': [\r\n '0',\r\n '1',\r\n '2',\r\n '3'\r\n ]\r\n }\r\n },\r\n 'id': 'imagery',\r\n 'visible': true,\r\n 'style': {\r\n 'colorTransform': {\r\n 'alpha': '1'\r\n }\r\n },\r\n 'zIndex': '1',\r\n 'type': 'layer',\r\n 'clickPins': [],\r\n 'clickCustomDisplays': [],\r\n 'hoverDefault': '',\r\n 'hoverFieldsCommaDel': '',\r\n 'linkedCharts': []\r\n };\r\n };\r\n\r\n public getBayCenter(perimeterData: string) {\r\n let newGPSCenterArray = new Array();\r\n if (perimeterData !== null && perimeterData !== undefined && perimeterData.length > 0) {\r\n const perimeterPointsGPS = perimeterData.replace('MULTIPOLYGON(((', '').replace(')))', '').replace(/, /g, ';').replace(/ /g, ',');\r\n const perimeterGPSArray = perimeterPointsGPS.split(';');\r\n const newGPSPointsArray = new Array();\r\n for (const gps of perimeterGPSArray) {\r\n const points = gps.split(',');\r\n const lat1 = points[1];\r\n const lon1 = points[0];\r\n newGPSPointsArray.push(new Array(lat1, lon1));\r\n }\r\n newGPSCenterArray = this.center(newGPSPointsArray);\r\n }\r\n return newGPSCenterArray;\r\n }\r\n\r\n center(data: any[]) {\r\n let minlat = null;\r\n let minlng = null;\r\n let maxlat = null;\r\n let maxlng = null;\r\n\r\n for (const datum of data) {\r\n if (minlat === null) {\r\n minlat = datum[0];\r\n } else {\r\n minlat = (datum[0] < minlat) ? datum[0] : minlat;\r\n }\r\n if (maxlat === null) {\r\n maxlat = datum[0];\r\n } else {\r\n maxlat = (datum[0] > maxlat) ? datum[0] : maxlat;\r\n }\r\n if (minlng === null) {\r\n minlng = datum[1];\r\n } else {\r\n minlng = (datum[1] < minlng) ? datum[1] : minlng;\r\n }\r\n if (maxlng === null) {\r\n maxlng = datum[1];\r\n } else {\r\n maxlng = (datum[1] > maxlng) ? datum[1] : maxlng;\r\n }\r\n }\r\n const lat = maxlat - ((maxlat - minlat) / 2);\r\n const lng = maxlng - ((maxlng - minlng) / 2);\r\n return new Array(lat, lng);\r\n }\r\n}\r\n","/* eslint-disable max-len */\r\n/* eslint-disable quote-props */\r\n/* eslint-disable object-shorthand */\r\n/* eslint-disable @typescript-eslint/ban-types */\r\n/* eslint-disable @typescript-eslint/member-ordering */\r\n/* eslint-disable @typescript-eslint/naming-convention */\r\nimport { Injectable } from '@angular/core';\r\n\r\nimport { Environment } from '../../common/environment/environment';\r\nimport { EnvironmentService } from '../environment/environment.service';\r\n\r\nclass ColorRelation {\r\n borderWidth: string;\r\n borderColor: string;\r\n whereValues: Array;\r\n constructor(borderWidth: string, borderColor: string, whereValues: Array) {\r\n this.borderWidth = borderWidth;\r\n this.borderColor = borderColor;\r\n this.whereValues = whereValues;\r\n }\r\n}\r\n\r\nexport const primaryColorRelations = {\r\n 'Primary': 'cc0000',\r\n 'Outbound': 'e95598',\r\n 'Rail Staging': '5c63c0',\r\n 'Primary Staging': '7d9ffd',\r\n 'Automotive Staging': '2196f3',\r\n 'Customer Counter Staging': '43c8ca',\r\n 'Chassis Staging': '2fb2b4',\r\n 'Tractor Staging': '2a7c7d',\r\n 'Dolly Staging': '49db9e',\r\n 'Regular Staging': '92c95b',\r\n 'PE Staging': '339900',\r\n 'Fuel Lanes': 'a27b00',\r\n 'Gate Lanes': 'ffb500',\r\n 'Customer Counter Parking': 'f89d36',\r\n 'Employee Parking': 'de885a',\r\n 'Trackside': '752950',\r\n 'Railroad Track': '351c15',\r\n 'Primary/Unload': 'cc0000',\r\n};\r\n\r\nexport const templateColorRelations = {\r\n '255-121-90-71': new ColorRelation('4', '255-125-77-51', ['Automotive', 'Customer Counter', 'Wash Tunnel', 'Employee Guard Shack', 'Remote Guard Shack', 'Feeder Guard Shack', 'Dispatch Office', 'On Road Office',\r\n 'Hangar', 'Carrier Check In and Dispatch']),\r\n '255-174-174-174': new ColorRelation('2', '255-33-33-33', ['Employee Cross Walk']),\r\n '255-135-135-136': new ColorRelation('2', '255-33-33-33', ['Cross Dock']),\r\n '255-86-86-87': new ColorRelation('2', '255-33-33-33', ['Air Dock']),\r\n '255-40-40-41': new ColorRelation('2', '255-33-33-33', ['Fuel Tanks']),\r\n '255-140-114-100': new ColorRelation('2', '255-125-77-51', ['Snow Scraper']),\r\n '255-250-250-251': new ColorRelation('2', '255-33-33-33', ['Travel Path']),\r\n '255-33-33-33': new ColorRelation('2', '255-33-33-33', ['Temp Trailer']),\r\n};\r\n\r\nexport const onPropertyColors = {\r\n '2d0bed': ['HUB', 'PKG', 'FRT', '275', 'APT'],\r\n 'FF5E00': ['CPU', 'CPX', 'CSL', 'BTL', 'DSH', 'DSO', 'MRT'],\r\n '0eb211': ['XPT', 'RRY', 'TLY'],\r\n};\r\n\r\nexport const logoLinks = {\r\n 'Stop Sign': 'StopSign',\r\n 'Electrical Tower': 'ElectricalTower',\r\n 'Tower': 'ElectricalTower',\r\n 'Entry or Exit Point': 'EntryExitPoint',\r\n 'Entry / Exit Point': 'EntryExitPoint',\r\n};\r\n\r\n@Injectable({\r\n providedIn: 'root'\r\n})\r\nexport class MapLargeGeofenceLayers {\r\n private environment: Environment;\r\n templatesReady: Promise;\r\n logoLinkedValues = [];\r\n templateColorRules = [];\r\n geofenceLayerPerimetersOnProperty: any;\r\n geofenceLayerBayExits: any;\r\n geofenceLayerPerimeters: any;\r\n geofenceLayers: any;\r\n slicTableImagery: any;\r\n\r\n constructor(private environmentService: EnvironmentService) {\r\n this.environmentService.environmentPromise.then(environment => {\r\n this.environment = environment;\r\n this.templatesReady = this.createTemplates();\r\n });\r\n }\r\n\r\n public async createTemplates(): Promise {\r\n this.logoLinkedValues = this.logoLinking();\r\n this.templateColorRules = this.templateColorRulesBuilder();\r\n this.createLayerObjects();\r\n return Promise.resolve();\r\n }\r\n\r\n public createLayerObjects(): void {\r\n this.geofenceLayerPerimetersOnProperty = {\r\n 'type': 'layer',\r\n 'name': 'PerimetersOnProperty',\r\n 'id': 'perimetersonproperty',\r\n 'style': {\r\n 'method': 'dynamic',\r\n 'rules': this.onPropertyRules('${LOC_ABR_NA}-${LOC_NR}'),\r\n 'colorTransform': {\r\n 'alpha': '1'\r\n }\r\n },\r\n 'visible': true,\r\n 'zIndex': '1001'\r\n };\r\n\r\n this.geofenceLayerBayExits = {\r\n 'type': 'layer',\r\n 'name': 'BayExits',\r\n 'id': 'bayexits',\r\n 'style': {\r\n 'method': 'dynamic',\r\n 'rules': [\r\n {\r\n 'style': {\r\n 'centerIcon': true,\r\n 'fillColor': '0-0-0-0',\r\n 'url': 'data:image/svg+xml;utf8,'\r\n },\r\n 'where': 'CatchAll'\r\n }\r\n ],\r\n 'colorTransform': {\r\n 'alpha': '1'\r\n }\r\n },\r\n 'visible': true,\r\n 'zIndex': '10020'\r\n };\r\n\r\n this.geofenceLayerPerimeters = {\r\n 'type': 'layer',\r\n 'name': 'AllPerimeters',\r\n 'id': 'allperimeters',\r\n 'onHover': 'template',\r\n 'hoverTemplate': '\\n\\t\\t\\t\\t\\t\\t\\n\\t\\t\\t\\t\\t\\n\\t\\t\\t\\t\\t\\t' +\r\n '\\n\\t\\t\\t\\t\\t\\t\\n\\t\\t\\t\\t\\t\\t\\n\\t\\t\\t\\t\\t\\t\\n\\t\\t\\t\\t\\t\\n\\t\\t\\t\\t\\t
Perimeter
SLIC: {LOC_NR}
Abbreviation:   {LOC_ABR_NA}
Name: {LOC_NA}
Country: ' +\r\n '{CNY_CD}
Op Type: {OP_TYP_CD}
Description: {Description}
',\r\n 'hoverFieldsCommaDel': 'Description,LOC_ABR_NA,LOC_NR,LOC_NA,OP_TYP_CD,CNY_CD',\r\n 'style': {\r\n 'method': 'dynamic',\r\n 'rules': this.onPropertyRules('${FULL_NAME}'),\r\n 'colorTransform': {\r\n 'alpha': '1'\r\n }\r\n },\r\n 'visible': true,\r\n 'zIndex': '1000'\r\n };\r\n\r\n this.geofenceLayers = [\r\n {\r\n 'type': 'layer',\r\n 'name': 'Perimeters',\r\n 'id': 'perimeter',\r\n 'style': {\r\n 'method': 'dynamic',\r\n 'rules': [\r\n {\r\n 'style': {\r\n 'fillColor': '#00FFFF00',\r\n 'borderWidth': '4',\r\n 'borderColor': '255-15-66-168'\r\n },\r\n 'where': 'CatchAll'\r\n }\r\n ],\r\n 'colorTransform': {\r\n 'alpha': '1'\r\n }\r\n },\r\n 'visible': true,\r\n 'zIndex': '10000'\r\n },\r\n {\r\n 'name': 'Zones',\r\n 'id': 'zone',\r\n 'style': {\r\n 'method': 'dynamic',\r\n 'rules': this.geofenceRules([JSON.stringify({\r\n 'style': {\r\n 'borderColor': '#%color%',\r\n 'borderColorOffset': '0',\r\n 'borderWidth': '2',\r\n 'fillColorAlphaOffset': -128,\r\n 'text': {\r\n 'bold': true,\r\n 'backColor': '#000000',\r\n 'color': '#ffffff',\r\n 'size': 12,\r\n 'text': '${BayRange}'\r\n }\r\n },\r\n 'where': {\r\n 'col': 'ZoneType',\r\n 'test': 'Equal',\r\n 'value': '%value%'\r\n }\r\n })], {\r\n 'style': {\r\n 'borderColor': '255-95-0-191',\r\n 'borderColorOffset': '0',\r\n 'fillColorAlphaOffset': -128,\r\n 'text': {\r\n 'bold': true,\r\n 'backColor': '#000000',\r\n 'color': '#ffffff',\r\n 'size': 12,\r\n 'text': '${BayRange}'\r\n }\r\n },\r\n 'where': 'CatchAll'\r\n }),\r\n 'colorTransform': {\r\n 'alpha': '1'\r\n }\r\n },\r\n 'visible': true,\r\n 'zIndex': '10005'\r\n },\r\n {\r\n 'name': 'Bays',\r\n 'disableEdit': true,\r\n 'id': 'bay',\r\n 'style': {\r\n 'method': 'dynamic',\r\n 'rules': [\r\n {\r\n 'style': {\r\n 'borderWidth': '1',\r\n 'fillColor': '#00FFFF00',\r\n // 'borderColor': '#00212121',\r\n 'borderColor': '#212121',\r\n 'text': {\r\n 'bold': true,\r\n 'backColor': '#000000',\r\n 'color': '#ffffff',\r\n 'size': 12,\r\n 'text': '${BayNumber}',\r\n 'rotationType': 'LongestEdge',\r\n 'preferGeoCentroid': true,\r\n 'fitMode': 'Clipping'\r\n }\r\n },\r\n 'where': 'CatchAll'\r\n }\r\n ],\r\n 'colorTransform': {\r\n 'alpha': '1'\r\n }\r\n },\r\n 'visible': true,\r\n 'zIndex': '10010',\r\n },\r\n this.buildDefaultHover('poi'),\r\n this.buildDefaultHover('landmark'),\r\n {\r\n 'name': 'Travel Paths',\r\n 'id': 'travelPath',\r\n 'disableEdit': true,\r\n 'style': {\r\n 'method': 'rules',\r\n 'rules': [\r\n this.buildTravelPathRules(0),\r\n this.buildTravelPathRules(1),\r\n {\r\n 'style': {\r\n 'fillColor': '#ff00ff',\r\n 'size': 2\r\n },\r\n 'where': 'CatchAll'\r\n }\r\n ],\r\n 'colorTransform': {\r\n 'alpha': '1'\r\n }\r\n },\r\n 'visible': true,\r\n 'zIndex': '10025',\r\n 'opacity': '1.0'\r\n }];\r\n }\r\n\r\n public geofenceRules(objectLayouts: Array, defaultSetting: object = null): Array {\r\n const rules: Array = [];\r\n for (const value in primaryColorRelations) {\r\n if (primaryColorRelations[value] !== undefined) {\r\n for (const layout of objectLayouts) {\r\n let stringCopy = layout.replace('%value%', value);\r\n stringCopy = stringCopy.replace('%color%', primaryColorRelations[value]);\r\n rules.push(JSON.parse(stringCopy));\r\n }\r\n }\r\n }\r\n if (defaultSetting !== undefined) {\r\n rules.push(defaultSetting);\r\n }\r\n return rules;\r\n }\r\n\r\n public templateColorRulesBuilder(): Array {\r\n const rules: Array = [];\r\n const buildString = JSON.stringify({\r\n 'style': {\r\n 'fillColor': '%color%',\r\n 'borderWidth': '%width%',\r\n 'borderColor': '%bcolor%',\r\n 'fillColorAlphaOffset': -77,\r\n 'text': {\r\n 'bold': true,\r\n 'backColor': '#000000',\r\n 'color': '#ffffff',\r\n 'size': 12,\r\n 'text': '${Description}'\r\n }\r\n },\r\n 'where': '%where%'\r\n });\r\n for (const color in templateColorRelations) {\r\n if (templateColorRelations[color] !== undefined) {\r\n let buildStringCopy = buildString.replace('%color%', color);\r\n buildStringCopy = buildStringCopy.replace('%width%', templateColorRelations[color].borderWidth);\r\n buildStringCopy = buildStringCopy.replace('%bcolor%', templateColorRelations[color].borderColor);\r\n let where = '[';\r\n for (const value of templateColorRelations[color].whereValues) {\r\n where += `[{\"col\":\"Description\",\"test\":\"Equal\",\"value\":\"${value}\"}],`;\r\n }\r\n where = where.substring(0, where.length - 1);\r\n where += ']';\r\n buildStringCopy = buildStringCopy.replace('\"%where%\"', where);\r\n rules.push(JSON.parse(buildStringCopy));\r\n }\r\n }\r\n rules.push({\r\n 'style': {\r\n 'fillColor': '255-125-77-51',\r\n 'borderWidth': '4',\r\n 'borderColor': '255-125-77-51',\r\n 'fillColorAlphaOffset': -77,\r\n 'text': {\r\n 'bold': true,\r\n 'backColor': '#000000',\r\n 'color': '#ffffff',\r\n 'size': 12,\r\n 'text': '${Description}'\r\n }\r\n },\r\n 'where': 'CatchAll'\r\n });\r\n return rules;\r\n }\r\n\r\n public onPropertyRules(text: string): Array {\r\n const rules: Array = [];\r\n const buildString = JSON.stringify({\r\n 'style': {\r\n 'borderWidth': '4',\r\n 'fillColor': '#00FFFF00',\r\n 'borderColor': '#%color%',\r\n 'text': {\r\n 'bold': true,\r\n 'color': '#%color%',\r\n 'size': 12,\r\n 'text': '%text%'\r\n }\r\n },\r\n 'where': '%where%'\r\n });\r\n for (const color in onPropertyColors) {\r\n if (onPropertyColors[color] !== undefined) {\r\n let buildStringCopy = buildString.replace('%color%', color);\r\n buildStringCopy = buildStringCopy.replace('%color%', color);\r\n buildStringCopy = buildStringCopy.replace('%text%', text);\r\n let where = '[';\r\n for (const value of onPropertyColors[color]) {\r\n where += `[{\"col\":\"OP_TYP_CD\",\"test\":\"Contains\",\"value\":\"${value}\"}],`;\r\n }\r\n where = where.substring(0, where.length - 1);\r\n where += ']';\r\n buildStringCopy = buildStringCopy.replace('\"%where%\"', where);\r\n rules.push(JSON.parse(buildStringCopy));\r\n }\r\n }\r\n rules.push({\r\n 'style': {\r\n 'borderWidth': '4',\r\n 'fillColor': '#00FFFF00',\r\n 'borderColor': '#3a3937',\r\n 'text': {\r\n 'bold': true,\r\n 'color': '#3a3937',\r\n 'size': 12,\r\n 'text': '${FULL_NAME}'\r\n }\r\n },\r\n 'where': 'CatchAll'\r\n });\r\n return rules;\r\n }\r\n\r\n public logoLinking(): Array {\r\n const rules: Array = [];\r\n const buildString = JSON.stringify(\r\n {\r\n 'style': {\r\n 'borderColorOffset': '200',\r\n 'size': 16,\r\n 'url': this.environment.mapLargeApiUrl + '/v4/extensions/UPS/icons/%value%.svg'\r\n },\r\n 'where': [\r\n {\r\n 'col': 'poi_type',\r\n 'test': 'Equal',\r\n 'value': '%name%'\r\n }\r\n ]\r\n });\r\n for (const name in logoLinks) {\r\n if (logoLinks[name] !== undefined) {\r\n let buildStringCopy = buildString.replace('%name%', name);\r\n buildStringCopy = buildStringCopy.replace('%value%', logoLinks[name]);\r\n rules.push(JSON.parse(buildStringCopy));\r\n }\r\n }\r\n rules.push({\r\n 'style': {\r\n 'shape': 'round',\r\n 'fillColor': '255-0-153-0',\r\n 'borderColorOffset': '75',\r\n 'lineDash': null,\r\n 'dropShadow': 'false'\r\n },\r\n 'where': {\r\n 'col': '*',\r\n 'test': 'CatchAll',\r\n 'value': 0\r\n }\r\n });\r\n return rules;\r\n }\r\n\r\n public defaultHoverBase(hoverFieldsCommaDel: string, name: string, id: string, method: string, rules: object[], type: string, zIndex: string): object {\r\n return {\r\n 'onHover': 'template',\r\n 'disableEdit': type === 'landmark_type' ? false : true,\r\n 'hoverFieldsCommaDel': hoverFieldsCommaDel,\r\n 'hoverTemplate': `\\n\\t\\t\\t\\t\\t\\n\\t\\t\\t\\t\\t
Type: {${type}}
Description: {Description}\r\n
`,\r\n 'name': name,\r\n 'id': id,\r\n 'style': {\r\n 'method': method,\r\n 'rules': rules,\r\n 'colorTransform': {\r\n 'alpha': '1'\r\n }\r\n },\r\n 'visible': true,\r\n 'zIndex': zIndex\r\n };\r\n }\r\n\r\n public buildDefaultHover(type: string): object {\r\n if (type === 'poi') {\r\n return this.defaultHoverBase('Description,poi_type', 'Points of Interest', 'pointOfInterest', 'rules', this.logoLinkedValues, 'poi_type', '10015');\r\n } else if (type === 'landmark') {\r\n return this.defaultHoverBase('landmark_type,Description', 'Landmarks', 'landmark', 'dynamic', this.templateColorRules, 'landmark_type', '10020');\r\n } else {\r\n return Object();\r\n }\r\n }\r\n\r\n public buildTravelPathRules(type: number): object {\r\n const typeArray = ['StartToEnd', 'EndToStart'];\r\n return {\r\n 'style': {\r\n 'angleOffset': type === 0 ? 0 : 180,\r\n 'centerIcon': true,\r\n 'fillColor': '#ff00ff',\r\n 'size': 2,\r\n 'url': `data:image/svg+xml;utf8,`\r\n },\r\n 'where': [\r\n [\r\n {\r\n 'col': 'Direction',\r\n 'test': 'Equal',\r\n 'value': typeArray[type]\r\n }\r\n ]\r\n ]\r\n };\r\n }\r\n\r\n public getSlicImagery() {\r\n return {\r\n 'name': 'ups/SLICImagery',\r\n 'opacity': '1.0',\r\n 'type': 'layer',\r\n 'disableEdit': true,\r\n 'id': 'SLICImagery',\r\n 'query': {\r\n 'withgeo': true,\r\n 'select': { 'type': 'geo.image' },\r\n 'table': {\r\n 'name': 'ups/SLICImagery'\r\n },\r\n },\r\n 'visible': true,\r\n 'style': {\r\n 'method': 'rules',\r\n 'colorTransform': {\r\n 'alpha': '1'\r\n }\r\n },\r\n 'zIndex': '2',\r\n };\r\n }\r\n}\r\n","import { Injectable } from '@angular/core';\r\nimport { Environment } from '../../common/environment/environment';\r\nimport { EnvironmentService } from '../environment/environment.service';\r\nimport { AuthService } from 'src/app/auth/auth.service';\r\nimport { firstValueFrom } from 'rxjs';\r\n\r\n\r\n@Injectable({\r\n providedIn: 'root'\r\n})\r\nexport class MapLargeLoader {\r\n private environment: Environment;\r\n private promise: any;\r\n\r\n constructor(private environmentService: EnvironmentService,\r\n private authService: AuthService) {\r\n this.environmentService.environmentPromise.then(environment => {\r\n this.environment = environment;\r\n });\r\n }\r\n\r\n public load() {\r\n const url = this.environment.mapLargeApiUrl + '/JS?callback=__MLLoaded' + '&id_token=' + sessionStorage.getItem('tamAsset.msal.token');\r\n\r\n // First time 'load' is called?\r\n if (!this.promise) {\r\n console.log('calling MapLargeLoader');\r\n\r\n // Make promise to load\r\n this.promise = new Promise(resolve => {\r\n\r\n // Set callback for when MapLarge is loaded.\r\n console.log('MapLarge has called \"callback\" function from URL.');\r\n\r\n // eslint-disable-next-line @typescript-eslint/dot-notation\r\n window['__MLLoaded'] = (ev) => {\r\n ml.authSettings.showSplashScreenOnFailure = false;\r\n // Remove prefixes (indexed subdomains) if they exist in the payload\r\n delete ml.servers.main[0].prefix;\r\n resolve('MapLarge API loaded');\r\n };\r\n\r\n const node = document.createElement('script');\r\n node.src = url;\r\n node.type = 'text/javascript';\r\n document.getElementsByTagName('head')[0].appendChild(node);\r\n\r\n });\r\n }\r\n\r\n // Always return promise. When 'load' is called many times, the promise is already resolved.\r\n return this.promise;\r\n }\r\n}\r\n","/* eslint-disable max-len */\r\n/* eslint-disable @typescript-eslint/naming-convention */\r\n/* eslint-disable quote-props */\r\n/* eslint-disable prefer-arrow/prefer-arrow-functions */\r\nimport { Injectable } from '@angular/core';\r\n\r\n@Injectable({\r\n providedIn: 'root'\r\n})\r\nexport class MapLargePerimetersQueries {\r\n\r\n public getAllPerimetersWithSLICQuery = function() {\r\n return {\r\n 'withgeo': true,\r\n 'select': { 'type': 'geo.poly' },\r\n 'table': {\r\n 'query': {\r\n 'table': {\r\n 'query': {\r\n 'withgeo': true,\r\n 'table': {\r\n 'query': {\r\n 'withgeo': true,\r\n 'table': {\r\n 'query': {\r\n 'withgeo': true,\r\n 'table': {\r\n 'name': 'ups/perimeter'\r\n },\r\n 'where': [[{ 'col': 'State', 'test': 'Equal', 'value': 'Approved' }]]\r\n }\r\n },\r\n 'orderby': ['SubmittedTimestamp.desc', 'LastModifiedTimestamp.desc'],\r\n 'groupby': ['RecordId'],\r\n 'sqlselect': ['*', 'perimeter']\r\n }\r\n },\r\n 'where': [[{ 'col': 'Deleted', 'test': 'EqualNot', 'value': 'Y' }]]\r\n }\r\n },\r\n 'join': {\r\n 'table': {\r\n 'query': {\r\n 'table': {\r\n 'query': {\r\n 'table': {\r\n 'query': {\r\n 'table': {\r\n 'query': {\r\n 'withgeo': true,\r\n 'table': {\r\n 'query': {\r\n 'withgeo': true,\r\n 'table': {\r\n 'query': {\r\n 'withgeo': true,\r\n 'table': {\r\n 'query': {\r\n 'withgeo': true,\r\n 'table': {\r\n 'query': {\r\n 'withgeo': true,\r\n 'table': { 'name': 'ups/layout' },\r\n 'where': [[{ 'col': 'State', 'test': 'Equal', 'value': 'Approved' }]]\r\n }\r\n },\r\n 'orderby': ['SubmittedTimestamp.desc', 'LastModifiedTimestamp.desc'],\r\n 'groupby': ['RecordId'],\r\n 'sqlselect': ['*']\r\n }\r\n },\r\n 'join': {\r\n 'table': {\r\n 'query': {\r\n 'table': {\r\n 'query': {\r\n 'withgeo': true,\r\n 'table': {\r\n 'query': {\r\n 'withgeo': true,\r\n 'table': { 'name': 'ups/layout' }\r\n }\r\n },\r\n 'orderby': ['SubmittedTimestamp.desc', 'LastModifiedTimestamp.desc'],\r\n 'groupby': ['RecordId'],\r\n 'sqlselect': ['RecordId', 'Deleted']\r\n }\r\n },\r\n 'where': [[{ 'col': 'Deleted', 'test': 'EqualNot', 'value': 'Y' }]]\r\n }\r\n },\r\n 'method': 'Equals',\r\n 'leftcolumn': 'RecordId',\r\n 'rightcolumn': 'RecordId',\r\n 'outer': false\r\n }\r\n }\r\n },\r\n 'where': [[{ 'col': 'Active', 'test': 'EqualNot', 'value': 'False' }]]\r\n }\r\n },\r\n 'sqlselect': ['*']\r\n }\r\n },\r\n 'orderby': ['SubmittedTimestamp.desc', 'LastModifiedTimestamp.desc'],\r\n 'groupby': ['SLICGroupId']\r\n }\r\n },\r\n }\r\n },\r\n 'join': {\r\n 'table': {\r\n 'query': {\r\n 'table': {\r\n 'query': {\r\n 'table': 'ups/distribution_centers',\r\n 'orderby': ['SubmittedTimestamp.desc', 'LastModifiedTimestamp.desc'],\r\n 'groupby': ['RecordId']\r\n }\r\n },\r\n 'where': [[{ 'col': 'Deleted', 'test': 'EqualNot', 'value': 'Y' },\r\n { 'col': 'DoNotGeofence', 'test': 'Equal', 'value': 'False' }]],\r\n 'sqlselect': ['RecordId as SLICRecordId', 'LOC_ABR_NA', 'LOC_NR', 'OP_TYP_CD', 'CNY_CD', 'LOC_NA', 'SLICGroupId', 'LOC_NR+\\'-\\'+LOC_ABR_NA as LONG_NAME']\r\n }\r\n },\r\n 'method': 'Equals',\r\n 'leftcolumn': 'SLICGroupId',\r\n 'rightcolumn': 'SLICGroupId',\r\n 'outer': false\r\n },\r\n 'sqlselect': ['RecordId as LayoutRecordId', 'Join(LOC_ABR_NA,\\', \\') as LOC_ABR_NA', 'Join(LOC_NR,\\', \\') as LOC_NR',\r\n 'Join(OP_TYP_CD,\\', \\') as OP_TYP_CD', 'Join(CNY_CD,\\', \\') as CNY_CD', 'Join(LOC_NA,\\', \\') as LOC_NA',\r\n 'Join(LONG_NAME,\\', \\') as FULL_NAME']\r\n }\r\n },\r\n 'rightcolumn': 'LayoutRecordId',\r\n 'leftcolumn': 'Layout',\r\n 'method': 'Equals',\r\n 'outer': false\r\n },\r\n 'sqlselect': ['*', 'perimeter', 'LOC_ABR_NA', 'LOC_NR', 'OP_TYP_CD', 'CNY_CD', 'LOC_NA', 'FULL_NAME']\r\n }\r\n }\r\n };\r\n };\r\n public getAllPerimetersForOnPropertyWithSLICQuery = function(LayoutId: string) {\r\n return {\r\n 'withgeo': true,\r\n 'select': { 'type': 'geo.poly' },\r\n 'table': {\r\n 'query': {\r\n 'table': {\r\n 'query': {\r\n 'withgeo': true,\r\n 'table': {\r\n 'query': {\r\n 'withgeo': true,\r\n 'table': {\r\n 'query': {\r\n 'withgeo': true,\r\n 'table': {\r\n 'name': 'ups/perimeter'\r\n },\r\n 'where': [[{ 'col': 'State', 'test': 'Equal', 'value': 'Approved' },\r\n {\r\n 'col': 'Layout',\r\n 'test': 'EqualNot',\r\n 'value': LayoutId\r\n }]]\r\n }\r\n },\r\n 'orderby': ['SubmittedTimestamp.desc', 'LastModifiedTimestamp.desc'],\r\n 'groupby': ['RecordId'],\r\n 'sqlselect': ['*', 'perimeter']\r\n }\r\n },\r\n 'where': [[{ 'col': 'Deleted', 'test': 'EqualNot', 'value': 'Y' }]]\r\n }\r\n },\r\n 'join': {\r\n 'table': {\r\n 'query': {\r\n 'table': {\r\n 'query': {\r\n 'table': {\r\n 'query': {\r\n 'table': {\r\n 'query': {\r\n 'withgeo': true,\r\n 'table': {\r\n 'query': {\r\n 'withgeo': true,\r\n 'table': {\r\n 'query': {\r\n 'withgeo': true,\r\n 'table': {\r\n 'query': {\r\n 'withgeo': true,\r\n 'table': {\r\n 'query': {\r\n 'withgeo': true,\r\n 'table': { 'name': 'ups/layout' },\r\n 'where': [[{ 'col': 'State', 'test': 'Equal', 'value': 'Approved' }]]\r\n }\r\n },\r\n 'orderby': ['SubmittedTimestamp.desc', 'LastModifiedTimestamp.desc'],\r\n 'groupby': ['RecordId'],\r\n 'sqlselect': ['*']\r\n }\r\n },\r\n 'join': {\r\n 'table': {\r\n 'query': {\r\n 'table': {\r\n 'query': {\r\n 'withgeo': true,\r\n 'table': {\r\n 'query': {\r\n 'withgeo': true,\r\n 'table': { 'name': 'ups/layout' }\r\n }\r\n },\r\n 'orderby': ['SubmittedTimestamp.desc', 'LastModifiedTimestamp.desc'],\r\n 'groupby': ['RecordId'],\r\n 'sqlselect': ['RecordId', 'Deleted']\r\n }\r\n },\r\n 'where': [[{ 'col': 'Deleted', 'test': 'EqualNot', 'value': 'Y' }]]\r\n }\r\n },\r\n 'method': 'Equals',\r\n 'leftcolumn': 'RecordId',\r\n 'rightcolumn': 'RecordId',\r\n 'outer': false\r\n }\r\n }\r\n },\r\n 'where': [[{ 'col': 'Active', 'test': 'EqualNot', 'value': 'False' }]]\r\n }\r\n },\r\n 'sqlselect': ['*']\r\n }\r\n },\r\n 'orderby': ['SubmittedTimestamp.desc', 'LastModifiedTimestamp.desc'],\r\n 'groupby': ['SLICGroupId']\r\n }\r\n },\r\n }\r\n },\r\n 'join': {\r\n 'table': {\r\n 'query': {\r\n 'table': {\r\n 'query': {\r\n 'table': 'ups/distribution_centers',\r\n 'orderby': ['SubmittedTimestamp.desc', 'LastModifiedTimestamp.desc'],\r\n 'groupby': ['RecordId']\r\n }\r\n },\r\n 'where': [[{ 'col': 'Deleted', 'test': 'EqualNot', 'value': 'Y' },\r\n { 'col': 'DoNotGeofence', 'test': 'Equal', 'value': 'False' }]],\r\n 'sqlselect': ['RecordId as SLICRecordId', 'LOC_ABR_NA', 'LOC_NR', 'OP_TYP_CD', 'CNY_CD', 'LOC_NA', 'SLICGroupId', 'LOC_NR+\\'-\\'+LOC_ABR_NA as LONG_NAME']\r\n }\r\n },\r\n 'method': 'Equals',\r\n 'leftcolumn': 'SLICGroupId',\r\n 'rightcolumn': 'SLICGroupId',\r\n 'outer': false\r\n },\r\n 'sqlselect': ['RecordId as LayoutRecordId', 'Join(LOC_ABR_NA,\\', \\') as LOC_ABR_NA', 'Join(LOC_NR,\\', \\') as LOC_NR',\r\n 'Join(OP_TYP_CD,\\', \\') as OP_TYP_CD', 'Join(CNY_CD,\\', \\') as CNY_CD', 'Join(LOC_NA,\\', \\') as LOC_NA',\r\n 'Join(LONG_NAME,\\', \\') as FULL_NAME']\r\n }\r\n },\r\n 'rightcolumn': 'LayoutRecordId',\r\n 'leftcolumn': 'Layout',\r\n 'method': 'Equals',\r\n 'outer': false\r\n },\r\n 'sqlselect': ['*', 'perimeter', 'LOC_ABR_NA', 'LOC_NR', 'OP_TYP_CD', 'CNY_CD', 'LOC_NA', 'FULL_NAME']\r\n }\r\n }\r\n };\r\n };\r\n public getLocationPerimeterWithSLICData = function(LayoutId: string) {\r\n return {\r\n 'withgeo': true,\r\n 'select': { 'type': 'geo.poly' },\r\n 'table': {\r\n 'query': {\r\n 'table': {\r\n 'query': {\r\n 'withgeo': true,\r\n 'table': {\r\n 'query': {\r\n 'withgeo': true,\r\n 'table': {\r\n 'query': {\r\n 'withgeo': true,\r\n 'table': {\r\n 'name': 'ups/perimeter'\r\n },\r\n 'where': [[{ 'col': 'State', 'test': 'Equal', 'value': 'Approved' }, {\r\n 'col': 'Layout',\r\n 'test': 'Equal',\r\n 'value': LayoutId\r\n }]]\r\n }\r\n },\r\n 'orderby': ['SubmittedTimestamp.desc', 'LastModifiedTimestamp.desc'],\r\n 'groupby': ['RecordId'],\r\n 'sqlselect': ['*', 'perimeter']\r\n }\r\n },\r\n 'where': [[{ 'col': 'Deleted', 'test': 'EqualNot', 'value': 'Y' }]]\r\n }\r\n },\r\n 'join': {\r\n 'table': {\r\n 'query': {\r\n 'table': {\r\n 'query': {\r\n 'table': {\r\n 'query': {\r\n 'table': {\r\n 'query': {\r\n 'table': 'ups/layout',\r\n 'where': [[{ 'col': 'State', 'test': 'Equal', 'value': 'Approved' }]]\r\n }\r\n },\r\n 'orderby': ['SubmittedTimestamp.desc', 'LastModifiedTimestamp.desc'],\r\n 'groupby': ['SLICGroupId']\r\n }\r\n },\r\n 'where': [[{ 'col': 'Deleted', 'test': 'EqualNot', 'value': 'Y' }]]\r\n }\r\n },\r\n 'join': {\r\n 'table': {\r\n 'query': {\r\n 'table': {\r\n 'query': {\r\n 'table': 'ups/distribution_centers',\r\n 'orderby': ['SubmittedTimestamp.desc', 'LastModifiedTimestamp.desc'],\r\n 'groupby': ['RecordId']\r\n }\r\n },\r\n 'where': [[{ 'col': 'Deleted', 'test': 'EqualNot', 'value': 'Y' },\r\n { 'col': 'DoNotGeofence', 'test': 'Equal', 'value': 'False' }]],\r\n 'sqlselect': ['RecordId as SLICRecordId', 'LOC_ABR_NA', 'LOC_NR', 'OP_TYP_CD', 'CNY_CD', 'LOC_NA', 'SLICGroupId']\r\n }\r\n },\r\n 'method': 'Equals',\r\n 'leftcolumn': 'SLICGroupId',\r\n 'rightcolumn': 'SLICGroupId',\r\n 'outer': false\r\n },\r\n 'sqlselect': ['RecordId as LayoutRecordId', 'Join(LOC_ABR_NA,\\',\\') as LOC_ABR_NA', 'Join(LOC_NR,\\',\\') as LOC_NR', 'Join(OP_TYP_CD,\\',\\') as OP_TYP_CD', 'Join(CNY_CD,\\',\\') as CNY_CD', 'Join(LOC_NA,\\',\\') as LOC_NA']\r\n }\r\n },\r\n 'rightcolumn': 'LayoutRecordId',\r\n 'leftcolumn': 'Layout',\r\n 'method': 'Equals',\r\n 'outer': false\r\n },\r\n 'sqlselect': ['*', 'perimeter', 'LOC_ABR_NA', 'LOC_NR', 'OP_TYP_CD', 'CNY_CD', 'LOC_NA']\r\n }\r\n }\r\n };\r\n };\r\n\r\n}\r\n","/* eslint-disable @typescript-eslint/naming-convention */\r\n/* eslint-disable prefer-arrow/prefer-arrow-functions */\r\n/* eslint-disable quote-props */\r\nimport { Injectable } from '@angular/core';\r\n\r\n@Injectable({\r\n providedIn: 'root'\r\n})\r\nexport class MapLargeQueries {\r\n\r\n public getLatestNonDeletedApprovedVersionQuery = function(tableName: string, shapeField: string) {\r\n const sqlSelect = ml.util.isNullUndefinedOrEmpty(shapeField) ? ['*'] : ['*', shapeField];\r\n const stateValue = 'Approved';\r\n const stateTest = 'Equal';\r\n return {\r\n 'withgeo': true,\r\n 'table': {\r\n 'query': {\r\n 'withgeo': true,\r\n 'table': {\r\n 'query': {\r\n 'withgeo': true,\r\n 'table': {\r\n 'name': tableName\r\n },\r\n 'where': [[\r\n {\r\n 'col': 'State',\r\n 'test': stateTest,\r\n 'value': stateValue\r\n }\r\n ]]\r\n }\r\n },\r\n 'orderby': [\r\n 'SubmittedTimestamp.desc',\r\n 'LastModifiedTimestamp.desc'\r\n ],\r\n 'groupby': [\r\n 'RecordId'\r\n ],\r\n 'sqlselect': sqlSelect\r\n }\r\n },\r\n 'where': [\r\n [\r\n {\r\n 'col': 'Deleted',\r\n 'test': 'EqualNot',\r\n 'value': 'Y'\r\n }\r\n ]\r\n ]\r\n };\r\n };\r\n\r\n public getSelectedLayoutQuery = function(country: string, slicAbbreviation: string) {\r\n return {\r\n 'withgeo': true,\r\n 'table': {\r\n 'query': {\r\n 'withgeo': true,\r\n 'table': {\r\n 'query': {\r\n 'withgeo': true,\r\n 'table': { 'name': 'ups/distribution_centers' },\r\n 'orderby': ['SubmittedTimestamp.desc', 'LastModifiedTimestamp.desc'],\r\n 'groupby': ['RecordId']\r\n }\r\n },\r\n 'where': [[{ 'col': 'Deleted', 'test': 'EqualNot', 'value': 'Y' }]]\r\n }\r\n },\r\n 'sqlselect': ['LayoutId', 'SLICGroupId'],\r\n 'where': [[{ 'col': 'LOC_ABR_NA', 'test': 'Equal', 'value': slicAbbreviation}, { 'col': 'CNY_CD', 'test': 'Equal', 'value': country }]],\r\n 'join': {\r\n 'table': {\r\n 'query': {\r\n 'withgeo': true,\r\n 'table': {\r\n 'query': {\r\n 'withgeo': true,\r\n 'table': {\r\n 'query': {\r\n 'withgeo': true,\r\n 'table': {\r\n 'query': {\r\n 'withgeo': true,\r\n 'table': {\r\n 'query': {\r\n 'withgeo': true,\r\n 'table': { 'name': 'ups/layout' },\r\n 'where': [[{ 'col': 'State', 'test': 'Equal', 'value': 'Approved' }]]\r\n }\r\n },\r\n 'orderby': ['SubmittedTimestamp.desc', 'LastModifiedTimestamp.desc'],\r\n 'groupby': ['RecordId'],\r\n 'sqlselect': ['*']\r\n }\r\n },\r\n 'join': {\r\n 'table': {\r\n 'query': {\r\n 'table': {\r\n 'query': {\r\n 'withgeo': true,\r\n 'table': {\r\n 'query': {\r\n 'withgeo': true,\r\n 'table': { 'name': 'ups/layout' }\r\n }\r\n },\r\n 'orderby': ['SubmittedTimestamp.desc', 'LastModifiedTimestamp.desc'],\r\n 'groupby': ['RecordId'],\r\n 'sqlselect': ['RecordId', 'Deleted']\r\n }\r\n },\r\n 'where': [[{ 'col': 'Deleted', 'test': 'EqualNot', 'value': 'Y' }]]\r\n }\r\n },\r\n 'method': 'Equals',\r\n 'leftcolumn': 'RecordId',\r\n 'rightcolumn': 'RecordId',\r\n 'outer': false\r\n }\r\n }\r\n },\r\n 'where': [[{ 'col': 'Active', 'test': 'EqualNot', 'value': 'False' }]]\r\n }\r\n },\r\n 'sqlselect': ['SLIC', 'RecordId as LayoutId', 'SLICGroupId']\r\n }\r\n },\r\n 'method': 'Equals',\r\n 'leftcolumn': 'SLICGroupId',\r\n 'rightcolumn': 'SLICGroupId'\r\n }\r\n\r\n };\r\n };\r\n\r\n public getLandmarksQuery = function(LayoutId: string) {\r\n return {\r\n 'withgeo': true,\r\n 'select': { 'type': 'geo.poly' },\r\n 'table': {\r\n 'query': this.getLatestNonDeletedApprovedVersionQuery('ups/landmark', 'landmark')\r\n },\r\n 'where': [[\r\n {\r\n 'col': 'Layout',\r\n 'test': 'Equal',\r\n 'value': LayoutId\r\n }\r\n ]]\r\n };\r\n };\r\n\r\n public getPOIsQuery = function(LayoutId: string) {\r\n return {\r\n 'withgeo': true,\r\n 'select': { 'type': 'geo.dot' },\r\n 'table': {\r\n 'query': this.getLatestNonDeletedApprovedVersionQuery('ups/point_of_interest', 'XY')\r\n },\r\n 'where': [[\r\n {\r\n 'col': 'Layout',\r\n 'test': 'Equal',\r\n 'value': LayoutId\r\n }\r\n ]]\r\n };\r\n };\r\n\r\n public getTravelPathsQuery = function(slicAbbreviation: string, cny_cd: string, versionKey: string) {\r\n return {\r\n select: {\r\n type: 'geo.line'\r\n },\r\n withgeo: true,\r\n table: {\r\n query: {\r\n table: {\r\n function: {\r\n account: 'ups',\r\n name: 'UPS/FacilityTravelPaths',\r\n params: {\r\n Facility: slicAbbreviation,\r\n Country: cny_cd,\r\n WithGeo: true,\r\n VersionKey: versionKey\r\n }\r\n }\r\n },\r\n withgeo: true,\r\n }\r\n }\r\n };\r\n };\r\n\r\n public getZonesQuery = function(slicAbbreviation: string, cny_cd: string, versionKey: string) {\r\n return {\r\n withgeo: true,\r\n select: { type: 'geo.poly' },\r\n table: {\r\n query: {\r\n withgeo: true,\r\n table: {\r\n function: {\r\n account: 'ups',\r\n name: 'UPS/FacilityZones',\r\n params: {\r\n Facility: slicAbbreviation,\r\n Country: cny_cd,\r\n WithGeo: true,\r\n VersionKey: versionKey\r\n }\r\n }\r\n }\r\n }\r\n }\r\n };\r\n };\r\n\r\n public getZonesQueryByLevel = function(slicAbbreviation: string, cny_cd: string, floorLevel: number, versionKey: string) {\r\n return {\r\n withgeo: true,\r\n select: { type: 'geo.poly' },\r\n table: {\r\n query: {\r\n withgeo: true,\r\n table: {\r\n function: {\r\n account: 'ups',\r\n name: 'UPS/FacilityZones',\r\n params: {\r\n Facility: slicAbbreviation,\r\n Country: cny_cd,\r\n WithGeo: true,\r\n VersionKey: versionKey\r\n }\r\n }\r\n },\r\n where: [[\r\n {\r\n col: 'FloorLevel',\r\n test: 'Equal',\r\n value: floorLevel\r\n }\r\n ]],\r\n }\r\n }\r\n };\r\n };\r\n\r\n public getPOIsQueryByLevel = function(LayoutId: string, FloorLevel: number) {\r\n return {\r\n 'withgeo': true,\r\n 'select': { 'type': 'geo.dot' },\r\n 'table': {\r\n 'query': this.getLatestNonDeletedApprovedVersionQuery('ups/point_of_interest', 'XY')\r\n },\r\n 'where': [[\r\n {\r\n 'col': 'Layout',\r\n 'test': 'Equal',\r\n 'value': LayoutId\r\n },\r\n {\r\n 'col': 'FloorLevel',\r\n 'test': 'Equal',\r\n 'value': FloorLevel\r\n }\r\n ]]\r\n };\r\n };\r\n\r\n\r\n}\r\n","import { Injectable } from '@angular/core';\r\n\r\n@Injectable({\r\n providedIn: 'root'\r\n})\r\nexport class MapLargeService {\r\n mapLargeRef?: ml.ui.map.Map;\r\n constructor() { }\r\n\r\n public getMapLargeRef(): Promise {\r\n return new Promise((resolve) => {\r\n if (this.mapLargeRef) {\r\n resolve(this.mapLargeRef);\r\n } else {\r\n const checkInterval = setInterval(() => {\r\n if (this.mapLargeRef) {\r\n clearInterval(checkInterval);\r\n resolve(this.mapLargeRef);\r\n }\r\n }, 100);\r\n }\r\n });\r\n }\r\n\r\n public setMapLargeRef(mapLargeMap: ml.ui.map.Map) {\r\n this.mapLargeRef = mapLargeMap;\r\n }\r\n}\r\n","import { AssetInfo } from '../../model/asset-info/asset-info';\r\nimport { OnPropertyOperations } from '../../model/asset-info/on-property-operations';\r\n\r\nexport class BayMap {\r\n [bay: string]: (AssetInfo)[];\r\n}\r\n","import { Injectable } from '@angular/core';\r\nimport { Observable, BehaviorSubject, timer, Subscription } from 'rxjs';\r\n\r\nimport { AssetInfo } from '../../model/asset-info/asset-info';\r\nimport { Operations } from '../../model/asset-info/operations';\r\nimport { OnPropertyOperations } from '../../model/asset-info/on-property-operations';\r\nimport { FrontEndExclusive } from '../../model/asset-info/front-end-exclusive';\r\nimport {LocalDataService} from '../local-data/local-data.service';\r\n\r\nimport { BayMap } from './bay-map';\r\n\r\nimport { filter, takeWhile } from 'rxjs/operators';\r\n\r\nclass CacheLocation {\r\n countryCode: string;\r\n location: string;\r\n viewType: string;\r\n}\r\n\r\n@Injectable({\r\n providedIn: 'root'\r\n})\r\nexport class RefreshService {\r\n private summaryCacheLocation: CacheLocation;\r\n private summaryCacheUpdateTimestamp: Date;\r\n private summaryCache: AssetInfo[];\r\n\r\n private summaryInternalSub: Subscription;\r\n private fullRefreshSub: Subscription;\r\n private partialRefreshSub: Subscription;\r\n private detailRefreshSub: Subscription;\r\n\r\n constructor(private localDataService: LocalDataService) {\r\n }\r\n\r\n public fetchDetails(\r\n countryCode: string, location: string, assetType: string, assetNumber: string, viewType: string,\r\n fetchDetailsCallback: (\r\n countryCodeCallback: string,\r\n locationCallback: string,\r\n assetTypeCallback: string,\r\n assetNumberCallback: string,\r\n subjectCallback: BehaviorSubject>) => Observable>): Observable> {\r\n const subject: BehaviorSubject> = new BehaviorSubject(null);\r\n console.log('Detail Requested');\r\n this.unsubscribeFromDetailSubscriptions();\r\n // Return the cache if it's populated and for the right site\r\n if (this.summaryCache\r\n && this.summaryCacheLocation\r\n && this.summaryCacheLocation.countryCode === countryCode\r\n && this.summaryCacheLocation.location === location\r\n && this.summaryCacheLocation.viewType === viewType) {\r\n const summaryAsset = this.summaryCache\r\n .filter(asset => asset.equipment.equipmentType === assetType)\r\n .filter(asset => asset.equipment.equipmentNumber === assetNumber)[0];\r\n if (summaryAsset) {\r\n console.log('Re-use asset from summary cache');\r\n subject.next(summaryAsset);\r\n }\r\n }\r\n // Schedule recurring updates\r\n this.detailRefreshSub = timer(30000, 30000)\r\n .pipe(takeWhile(() => subject.observers.length > 0))\r\n .subscribe(i => {\r\n console.log(`Detail Refresh ${i}`);\r\n fetchDetailsCallback(countryCode, location, assetType, assetNumber, subject);\r\n });\r\n return fetchDetailsCallback(countryCode, location, assetType, assetNumber, subject);\r\n }\r\n\r\n public fetchAssets(\r\n countryCode: string,\r\n location: string,\r\n viewType: string,\r\n fullRefreshPeriod: number,\r\n fetchAssetsCallback: (countryCodeCallback: string, locationCallback: string, lastUpdateTimestamp?: Date) => Observable[]>,\r\n ignoreRefresh?: () => boolean\r\n ): Observable[]> {\r\n\r\n console.log('Summary Requested');\r\n this.unsubscribeFromSummarySubscriptions();\r\n const subject: BehaviorSubject[]> = new BehaviorSubject(null);\r\n // Return the cache if it's populated and for the right site\r\n if (this.summaryCacheLocation\r\n && this.summaryCacheLocation.countryCode === countryCode\r\n && this.summaryCacheLocation.location === location\r\n && this.summaryCacheLocation.viewType === viewType) {\r\n console.log('Using cached summary');\r\n subject.next(this.summaryCache);\r\n }\r\n\r\n // Kick off request for fresh data\r\n this.summaryInternalSub = fetchAssetsCallback(countryCode, location).subscribe(assets => {\r\n console.log('Finishing fresh call for summary');\r\n subject.next(assets);\r\n });\r\n\r\n // Schedule recurring updates\r\n // Incremental Refresh\r\n this.partialRefreshSub = timer(15000, 15000)\r\n .pipe(takeWhile(() => subject.observers.length > 0))\r\n .subscribe(i => {\r\n if (!ignoreRefresh || !ignoreRefresh()) {\r\n console.log(`Incremental Refresh ${i}`);\r\n fetchAssetsCallback(countryCode, location, this.summaryCacheUpdateTimestamp)\r\n .subscribe(assets => subject.next(assets));\r\n } else {\r\n console.log(`Skipping Incremental Refresh ${i}`);\r\n }\r\n });\r\n // Full refresh\r\n this.fullRefreshSub = timer(fullRefreshPeriod, fullRefreshPeriod)\r\n .pipe(takeWhile(() => subject.observers.length > 0))\r\n .subscribe(i => {\r\n if (!ignoreRefresh || !ignoreRefresh()) {\r\n console.log(`Full Refresh ${i}`);\r\n fetchAssetsCallback(countryCode, location)\r\n .subscribe(assets => subject.next(assets));\r\n } else {\r\n console.log(`Skipping Full Refresh ${i}`);\r\n }\r\n });\r\n\r\n return subject.pipe(filter(assets => assets != null));\r\n }\r\n\r\n public updateAssetCache(assetUpdates: AssetInfo[], location: string, lastUpdateTimestamp: Date): AssetInfo[] {\r\n if (!lastUpdateTimestamp || location !== this.summaryCacheLocation.location) {\r\n // Don't need to merge updates\r\n return assetUpdates;\r\n }\r\n if (lastUpdateTimestamp) {\r\n // Need to merge with full asset list\r\n // Make map to make merging easier\r\n const allAssetsMap = new Map(this.summaryCache\r\n .map(i => [`${i.equipment.equipmentType}:${i.equipment.equipmentNumber}`, i]));\r\n const assetUpdateMap = new Map(assetUpdates\r\n .map(i => [`${i.equipment.equipmentType}:${i.equipment.equipmentNumber}`, i]));\r\n // Merge Results\r\n assetUpdateMap.forEach((asset, key) => {\r\n //in partial refresh if hfcs datasource is present keep the tag\r\n if (allAssetsMap.get(key)?.dataSources.includes('HFCS') && !asset.dataSources.includes('HFCS')) {\r\n asset.dataSources.push('HFCS');\r\n }\r\n if (asset.updateStatus !== 'DELETE') {\r\n allAssetsMap.set(key, asset);\r\n } else {\r\n allAssetsMap.delete(key);\r\n }\r\n });\r\n // Convert map back to list\r\n return Array.from(allAssetsMap.values());\r\n } else {\r\n return assetUpdates;\r\n }\r\n }\r\n\r\n public updateAssetCacheYardCheck(assetUpdates: AssetInfo[], location: string, lastUpdateTimestamp: Date): AssetInfo[] {\r\n if ((!this.summaryCacheLocation && !lastUpdateTimestamp) ||\r\n (this.summaryCacheLocation && location !== this.summaryCacheLocation.location) ||\r\n (this.summaryCacheLocation && this.summaryCacheLocation.viewType !== 'yardcheck')) {\r\n // Don't need to merge if loading different location\r\n console.log('Performing full refresh for location: ' + location);\r\n return assetUpdates;\r\n }\r\n const pendingLocationUpdatesMap = new Map(this.summaryCache\r\n .filter(asset => asset.frontEndExclusive?.locationUpdateStatus?.updateStatus === 'PENDING' // how long should we wait for pending update to complete?\r\n && asset.frontEndExclusive?.locationUpdateStatus?.statusTimestamp > new Date(Date.now() - 60000 * 3).valueOf()) // setting for 3 minuts for testing. may need to adjust\r\n .map((i) => {\r\n const k = i as AssetInfo;\r\n return [`${k.equipment.equipmentType}:${k.equipment.equipmentNumber}`, k];\r\n }));\r\n pendingLocationUpdatesMap.forEach((value, key) => {\r\n console.log(`pendingLocationUpdatesMap - ${key} - ${value.operations.bayNumber} - ${value.frontEndExclusive?.locationUpdateStatus?.updateStatus}`);\r\n });\r\n\r\n if (pendingLocationUpdatesMap.size > 0) {\r\n console.log('Refresh with pending updates count ' + pendingLocationUpdatesMap.size);\r\n }\r\n\r\n if (lastUpdateTimestamp) {\r\n return this.updateAssetCacheYardCheckPartialRefresh(assetUpdates, pendingLocationUpdatesMap, location);\r\n } else {\r\n return this.updateAssetCacheYardCheckFullRefresh(assetUpdates, pendingLocationUpdatesMap, location);\r\n }\r\n }\r\n\r\n private updateAssetCacheYardCheckFullRefresh(assetUpdates: AssetInfo[], pendingLocationUpdatesMap: Map>, location: string) {\r\n // if we have pending bay moves, don't replace the item unless the update is processed(successful or failed)\r\n const bayMap: BayMap = new BayMap();\r\n const assetUpdateMap = this.computeAssetUpdateMap(assetUpdates, bayMap);\r\n const allAssetsMap = new Map(this.summaryCache\r\n .map((i) => {\r\n const k = i;\r\n return [`${k.equipment.equipmentType}:${k.equipment.equipmentNumber}`, k];\r\n }));\r\n if (pendingLocationUpdatesMap.size > 0) {\r\n console.log('Full Refresh: there are local pending location updates for ' + pendingLocationUpdatesMap.size + ' asset(s)');\r\n pendingLocationUpdatesMap.forEach((asset, key) => {\r\n const assetPendingUpdate = assetUpdateMap.get(key);\r\n const replaceWithLocalAsset = this.keepPendingLocationUpdates(assetPendingUpdate, asset, location);\r\n if (replaceWithLocalAsset) {\r\n console.log('Full Refresh:Keeping the local asset updates for: ' + asset.equipment.equipmentNumber + ' at bay ' + asset.frontEndExclusive.locationUpdateStatus.toBayNumber);\r\n asset.operations.bayNumber = asset.frontEndExclusive.locationUpdateStatus.toBayNumber;\r\n asset.operations.bayPosition = asset.frontEndExclusive.locationUpdateStatus.toBayPosition;\r\n\r\n assetUpdateMap.set(key, asset);\r\n if (typeof (bayMap[asset.operations.bayNumber]) != 'undefined' &&\r\n bayMap[asset.operations.bayNumber] != null) {\r\n bayMap[asset.operations.bayNumber].push(asset);\r\n } else {\r\n bayMap[asset.operations.bayNumber] = [asset];\r\n }\r\n //if the old bay had only one asset, make it empty bay\r\n if (\r\n typeof (asset.frontEndExclusive?.locationUpdateStatus?.fromBayNumber) != 'undefined' &&\r\n asset.frontEndExclusive?.locationUpdateStatus?.fromBayNumber != null &&\r\n bayMap[asset.frontEndExclusive.locationUpdateStatus.fromBayNumber]) {\r\n if (bayMap[asset.frontEndExclusive.locationUpdateStatus.fromBayNumber].length === 1) {\r\n const emptyBay = new AssetInfo(new OnPropertyOperations());\r\n emptyBay.operations.bayNumber = asset.frontEndExclusive.locationUpdateStatus.fromBayNumber;\r\n emptyBay.frontEndExclusive.emptyBay = true;\r\n emptyBay.frontEndExclusive.bayAvailable = true;\r\n console.log('Full Refresh: Making old bay ' + asset.frontEndExclusive.locationUpdateStatus.fromBayNumber + ' empty for asset: ' + asset.equipment.equipmentNumber + ' at bay ' + asset.operations.bayNumber);\r\n assetUpdateMap.set(assetPendingUpdate.operations.bayNumber, emptyBay);\r\n } else {\r\n if (bayMap[asset.frontEndExclusive.locationUpdateStatus.fromBayNumber].length > 1) {\r\n bayMap[asset.frontEndExclusive.locationUpdateStatus.fromBayNumber].forEach((assetOnBay, index) => {\r\n if (assetOnBay.equipment?.equipmentNumber === assetPendingUpdate.equipment?.equipmentNumber &&\r\n assetOnBay.equipment?.equipmentType === assetPendingUpdate.equipment?.equipmentType) {\r\n bayMap[asset.frontEndExclusive.locationUpdateStatus.fromBayNumber].splice(index, 1);\r\n }\r\n });\r\n }\r\n }\r\n }\r\n // if the new bay was an empty bay, remove it\r\n if (typeof (asset.operations?.bayNumber) != 'undefined' &&\r\n asset.operations?.bayNumber != null &&\r\n typeof (assetUpdateMap.get(asset.operations.bayNumber)) != 'undefined' &&\r\n assetUpdateMap.get(asset.operations.bayNumber) != null) {\r\n console.log('Full Refresh: Removing empty bay bay ' + asset.operations.bayNumber + ' after asset move for asset: ' + asset.equipment.equipmentNumber);\r\n assetUpdateMap.delete(asset.operations.bayNumber);\r\n }\r\n }\r\n });\r\n } else {\r\n console.log('Performing full refresh without pending updates');\r\n //return assetUpdates;\r\n }\r\n\r\n assetUpdateMap.forEach((updatedAsset, key) => {\r\n const localAssetToBeUpdated = allAssetsMap.get(key);\r\n if (typeof(localAssetToBeUpdated) != 'undefined' && localAssetToBeUpdated != null) {\r\n this.localDataService.syncConfirmationStatus(localAssetToBeUpdated);\r\n if ((typeof (localAssetToBeUpdated?.frontEndExclusive?.confirmationStatus) != 'undefined' &&\r\n localAssetToBeUpdated?.frontEndExclusive?.confirmationStatus != null) ||\r\n (typeof (localAssetToBeUpdated?.frontEndExclusive?.confirmationPending) != 'undefined' &&\r\n localAssetToBeUpdated?.frontEndExclusive?.confirmationPending != null)) {\r\n if (!updatedAsset.frontEndExclusive) {\r\n updatedAsset.frontEndExclusive = new FrontEndExclusive();\r\n }\r\n\r\n if(localAssetToBeUpdated?.frontEndExclusive?.confirmationPending) {\r\n updatedAsset.frontEndExclusive.confirmationPending = localAssetToBeUpdated.frontEndExclusive.confirmationPending;\r\n if (sessionStorage.getItem('tam::debug') === 'verbose' && sessionStorage.getItem('tam::debug::hide-using-cache') !== 'true') {\r\n console.log('Asset - ' + updatedAsset.equipment.equipmentNumber + ' - '\r\n + updatedAsset.operations.bayNumber + ' - ' + updatedAsset.operations.bayPosition\r\n + ' Has confirmation pending ' + localAssetToBeUpdated.frontEndExclusive.confirmationPending);\r\n }\r\n }\r\n\r\n if (typeof (localAssetToBeUpdated.frontEndExclusive.confirmationStatusTimestamp) != 'undefined' &&\r\n localAssetToBeUpdated.frontEndExclusive.confirmationStatusTimestamp !== null &&\r\n (new Date().getTime() - localAssetToBeUpdated.frontEndExclusive.confirmationStatusTimestamp < 60000 * 2 &&\r\n // TODO - using local confirmation because backend is old and local is less than 2 mins\r\n //TODO - include timestamps\r\n (\r\n typeof (updatedAsset.equipment?.locationConfirmation?.lastUpdateTimestamp) == 'undefined' ||\r\n updatedAsset.equipment?.locationConfirmation?.lastUpdateTimestamp == null ||\r\n updatedAsset.equipment?.locationConfirmation?.lastUpdateTimestamp < localAssetToBeUpdated.frontEndExclusive.confirmationStatusTimestamp\r\n )\r\n )) {\r\n\r\n if (sessionStorage.getItem('tam::debug') === 'verbose' && sessionStorage.getItem('tam::debug::hide-using-cache') !== 'true') {\r\n console.log('Asset - ' + updatedAsset.equipment.equipmentNumber + ' - '\r\n + updatedAsset.operations.bayNumber + ' - ' + updatedAsset.operations.bayPosition\r\n + ' Using cached - ' + localAssetToBeUpdated.frontEndExclusive.confirmationStatus\r\n + ' with updated - ' + updatedAsset.equipment?.locationConfirmation?.locationConfirmationState\r\n + ' with local - ' + localAssetToBeUpdated.equipment?.locationConfirmation?.locationConfirmationState\r\n + ' updatedAsset TS = ' + updatedAsset.equipment?.locationConfirmation?.lastUpdateTimestamp\r\n + ' localAssetToBeUpdated TS = ' + localAssetToBeUpdated.frontEndExclusive.confirmationStatusTimestamp\r\n + ' currentTime DIFF = '+ (new Date().getTime() - localAssetToBeUpdated.frontEndExclusive.confirmationStatusTimestamp)\r\n + ' using local confirmation because backend is old and local is less than 2 mins'\r\n + ' Full Refresh'\r\n );\r\n }\r\n updatedAsset.frontEndExclusive.confirmationStatus = localAssetToBeUpdated.frontEndExclusive.confirmationStatus;\r\n updatedAsset.frontEndExclusive.confirmationStatusTimestamp = localAssetToBeUpdated.frontEndExclusive.confirmationStatusTimestamp;\r\n } else {\r\n\r\n if (sessionStorage.getItem('tam::debug') === 'verbose' && sessionStorage.getItem('tam::debug::hide-using-source') !== 'true') {\r\n console.log('Asset - ' + updatedAsset.equipment.equipmentNumber + ' - '\r\n + updatedAsset.operations.bayNumber + ' - ' + updatedAsset.operations.bayPosition\r\n + 'Using updated - ' + updatedAsset.equipment?.locationConfirmation?.locationConfirmationState\r\n + ' with local - ' + localAssetToBeUpdated.equipment?.locationConfirmation?.locationConfirmationState\r\n\r\n + ' updatedAsset TS = ' + updatedAsset.equipment?.locationConfirmation?.lastUpdateTimestamp\r\n + ' localAssetToBeUpdated TS = ' + localAssetToBeUpdated?.frontEndExclusive?.confirmationStatusTimestamp\r\n + ' using updated asset'\r\n + ' Full Refresh'\r\n );\r\n }\r\n }\r\n }\r\n }\r\n });\r\n\r\n return Array.from(assetUpdateMap.values());\r\n }\r\n\r\n private computeAssetUpdateMap(assetUpdates: AssetInfo[], bayMap: BayMap) {\r\n const assetUpdateMap = new Map(assetUpdates\r\n .map((i) => {\r\n const k = i;\r\n if (typeof (k.frontEndExclusive?.emptyBay) != 'undefined' &&\r\n k.frontEndExclusive?.emptyBay != null) {\r\n return [`${k.operations.bayNumber}`, k];\r\n } else {\r\n if (typeof (k.operations?.bayNumber) != 'undefined' &&\r\n k.operations.bayNumber != null) {\r\n if (bayMap[k.operations.bayNumber]) {\r\n bayMap[k.operations.bayNumber].push(k);\r\n } else {\r\n bayMap[k.operations.bayNumber] = [k];\r\n }\r\n }\r\n }\r\n return [`${k.equipment.equipmentType}:${k.equipment.equipmentNumber}`, k];\r\n }));\r\n return assetUpdateMap;\r\n }\r\n\r\n private updateAssetCacheYardCheckPartialRefresh(assetUpdates: AssetInfo[], pendingLocationUpdatesMap: Map>, location: string) {\r\n console.log('Performing incremental refresh.');\r\n const bayMap: BayMap = new BayMap();\r\n // Need to merge with full asset list\r\n // Make map to make merging easier\r\n const allAssetsMap = new Map(this.summaryCache\r\n .map((i) => {\r\n const k = i as AssetInfo;\r\n if (typeof (k.frontEndExclusive?.emptyBay) != 'undefined' && k.frontEndExclusive?.emptyBay != null) {\r\n return [`${k.operations.bayNumber}`, k];\r\n } else {\r\n if (typeof (k.operations?.bayNumber) != 'undefined' && k.operations?.bayNumber !== null) {\r\n if (bayMap[k.operations.bayNumber]) {\r\n bayMap[k.operations.bayNumber].push(k);\r\n } else {\r\n bayMap[k.operations.bayNumber] = [k];\r\n }\r\n }\r\n return [`${k.equipment.equipmentType}:${k.equipment.equipmentNumber}`, k];\r\n }\r\n }));\r\n /*\r\n allAssetsMap.forEach((value, key) => {\r\n console.log(`allAssetsMap at start - ${key} - ${value.operations.bayNumber} - ${value.frontEndExclusive?.locationUpdateStatus?.updateStatus} - eqpLocationUpdateStatus - ${value.equipment?.locationUpdateStatus}`);\r\n });\r\n assetUpdates.forEach(value => {\r\n const key = value.equipment ? `${value.equipment.equipmentType}:${value.equipment.equipmentNumber}` : 'EMPTY' ;\r\n console.log(`assetUpdates - ${key} - ${value.operations.bayNumber} - ${value.frontEndExclusive?.locationUpdateStatus?.updateStatus}`);\r\n });\r\n */\r\n const assetUpdateMap = new Map(assetUpdates\r\n .map((i) => {\r\n const k = i;\r\n return [`${k.equipment.equipmentType}:${k.equipment.equipmentNumber}`, k];\r\n }));\r\n /*\r\n assetUpdateMap.forEach((value, key) => {\r\n console.log(`assetUpdateMap - ${key} - ${value.operations.bayNumber} - ${value.frontEndExclusive?.locationUpdateStatus?.updateStatus} - eqpLocationUpdateStatus - ${value.equipment?.locationUpdateStatus}`);\r\n });\r\n */\r\n // Merge Results\r\n assetUpdateMap.forEach((updatedAsset, key) => {\r\n if (updatedAsset.updateStatus !== 'DELETE') {\r\n const localAssetToBeUpdated = allAssetsMap.get(key);\r\n if (typeof (localAssetToBeUpdated) != 'undefined' && localAssetToBeUpdated != null) {\r\n this.localDataService.syncConfirmationStatus(localAssetToBeUpdated);\r\n // TODO verify localAssetToBetUpdated is checked for existence before attempting to use - preexisting but might be causing unseen defects\r\n let keepLocalUpdate = false;\r\n if (pendingLocationUpdatesMap.size > 0 && pendingLocationUpdatesMap.get(key)) {\r\n console.log('Incremental Refresh: There are local pending location updates for: ' + localAssetToBeUpdated.equipment.equipmentNumber + ' at bay ' + localAssetToBeUpdated.operations.bayNumber);\r\n keepLocalUpdate = this.keepPendingLocationUpdates(updatedAsset, localAssetToBeUpdated, location);\r\n }\r\n if (!keepLocalUpdate) {\r\n if (typeof (localAssetToBeUpdated?.frontEndExclusive?.confirmationStatus) != 'undefined' &&\r\n localAssetToBeUpdated?.frontEndExclusive?.confirmationStatus != null) {\r\n if (!updatedAsset.frontEndExclusive) {\r\n updatedAsset.frontEndExclusive = new FrontEndExclusive();\r\n }\r\n if (typeof (localAssetToBeUpdated.frontEndExclusive.confirmationStatusTimestamp) != 'undefined' &&\r\n localAssetToBeUpdated.frontEndExclusive.confirmationStatusTimestamp !== null &&\r\n (new Date().getTime() - localAssetToBeUpdated.frontEndExclusive.confirmationStatusTimestamp < 60000 * 2 &&\r\n // TODO < ... instead of > ... possible source of defect\r\n (\r\n typeof (updatedAsset.equipment?.locationConfirmation?.lastUpdateTimestamp) == 'undefined' ||\r\n updatedAsset.equipment?.locationConfirmation?.lastUpdateTimestamp == null ||\r\n updatedAsset.equipment?.locationConfirmation?.lastUpdateTimestamp < localAssetToBeUpdated.frontEndExclusive.confirmationStatusTimestamp\r\n )\r\n )) {\r\n\r\n if (sessionStorage.getItem('tam::debug') === 'verbose') {\r\n // TODO - using local confirmation because backend is old and local is less than 2 mins\r\n //TODO - include timestamps\r\n console.log('Asset - ' + updatedAsset.equipment.equipmentNumber + ' - '\r\n + updatedAsset.operations.bayNumber + ' - ' + updatedAsset.operations.bayPosition\r\n + ' Using cached - ' + localAssetToBeUpdated.frontEndExclusive.confirmationStatus\r\n + ' with updated - ' + updatedAsset.equipment?.locationConfirmation?.locationConfirmationState\r\n + ' with local - ' + localAssetToBeUpdated.equipment?.locationConfirmation?.locationConfirmationState\r\n + ' updatedAsset TS = ' + updatedAsset.equipment?.locationConfirmation?.lastUpdateTimestamp\r\n + ' localAssetToBeUpdated TS = ' + localAssetToBeUpdated.frontEndExclusive.confirmationStatusTimestamp\r\n + ' currentTime DIFF = ' + (new Date().getTime() - localAssetToBeUpdated.frontEndExclusive.confirmationStatusTimestamp)\r\n + ' using local confirmation because backend is old and local is less than 2 mins'\r\n + ' Partial Refresh'\r\n );\r\n }\r\n updatedAsset.frontEndExclusive.confirmationStatus = localAssetToBeUpdated.frontEndExclusive.confirmationStatus;\r\n updatedAsset.frontEndExclusive.confirmationStatusTimestamp = localAssetToBeUpdated.frontEndExclusive.confirmationStatusTimestamp;\r\n } else {\r\n\r\n if (sessionStorage.getItem('tam::debug') === 'verbose') {\r\n console.log('Asset - ' + updatedAsset.equipment.equipmentNumber + ' - '\r\n + updatedAsset.operations.bayNumber + ' - ' + updatedAsset.operations.bayPosition\r\n + 'Using updated - ' + updatedAsset.equipment?.locationConfirmation?.locationConfirmationState\r\n + ' with local - ' + localAssetToBeUpdated.equipment?.locationConfirmation?.locationConfirmationState\r\n\r\n + ' updatedAsset TS = ' + updatedAsset.equipment?.locationConfirmation?.lastUpdateTimestamp\r\n + ' localAssetToBeUpdated TS = ' + localAssetToBeUpdated?.frontEndExclusive?.confirmationStatusTimestamp\r\n + ' using updated asset'\r\n + ' Partial Refresh'\r\n );\r\n }\r\n }\r\n }\r\n //remove empty bay item from the list, now it will have the asset\r\n if (allAssetsMap.get(updatedAsset.operations.bayNumber)) {\r\n allAssetsMap.delete(updatedAsset.operations.bayNumber);\r\n }\r\n allAssetsMap.set(key, updatedAsset);\r\n } else {\r\n console.log('Incremental Refresh: Keeping the local asset updates for: ' + localAssetToBeUpdated.equipment.equipmentNumber + ' at bay ' + localAssetToBeUpdated.operations.bayNumber);\r\n // keep the same trailer record in place.\r\n\r\n if (sessionStorage.getItem('tam::debug') === 'verbose') {\r\n console.log('Asset - ' + updatedAsset.equipment.equipmentNumber + ' - '\r\n + updatedAsset.operations.bayNumber + ' - ' + updatedAsset.operations.bayPosition\r\n + ' Keeping local cached - ' + localAssetToBeUpdated.frontEndExclusive.confirmationStatus\r\n + ' with updated - ' + updatedAsset.equipment?.locationConfirmation?.locationConfirmationState\r\n + ' with local - ' + localAssetToBeUpdated.equipment?.locationConfirmation?.locationConfirmationState\r\n\r\n + ' updatedAsset TS = ' + updatedAsset.equipment?.locationConfirmation?.lastUpdateTimestamp\r\n + ' localAssetToBeUpdated TS = ' + localAssetToBeUpdated?.frontEndExclusive?.confirmationStatusTimestamp\r\n + ' using updated asset'\r\n + ' Partial Refresh'\r\n );\r\n }\r\n }\r\n }\r\n } else {\r\n allAssetsMap.delete(key);\r\n if (\r\n (\r\n typeof (updatedAsset.operations?.bayNumber) != 'undefined' &&\r\n updatedAsset.operations?.bayNumber != null\r\n ) &&\r\n typeof (bayMap[updatedAsset.operations.bayNumber]) != 'undefined' &&\r\n bayMap[updatedAsset.operations.bayNumber] != null) {\r\n // if we are removing asset from the list, insert empty bay instead\r\n if (bayMap[updatedAsset.operations.bayNumber].length === 1) {\r\n const newBay = new AssetInfo(new OnPropertyOperations());\r\n newBay.operations.bayNumber = updatedAsset.operations.bayNumber;\r\n newBay.frontEndExclusive.emptyBay = true;\r\n console.log(`updateAssetCacheYardCheck - NEW BAY - ${newBay.operations.bayNumber}`);\r\n allAssetsMap.set(`${newBay.operations.bayNumber}`, newBay);\r\n }\r\n }\r\n }\r\n });\r\n /*\r\n allAssetsMap.forEach((value, key) => {\r\n console.log(`allAssetsMap - ${key} - ${value.operations.bayNumber} - ${value.frontEndExclusive?.locationUpdateStatus?.updateStatus\r\n } - eqpLocationUpdateStatus - ${JSON.stringify(value.equipment?.locationUpdateStatus)}`);\r\n });\r\n */\r\n // // Convert map back to list\r\n // if (pendingLocationUpdatesMap.size > 0) {\r\n // console.log('Incremetal update checking pending updates');\r\n // pendingLocationUpdatesMap.forEach((asset, key) => {\r\n // const assetPendingUpdate = asset;\r\n // const assetinlocal = allAssetsMap.get(key);\r\n // if(assetinlocal) {\r\n // if (allAssetsMap.get(assetPendingUpdate.frontEndExclusive.locationUpdateStatus.toBayNumber)) {\r\n // console.log('Incremetal update deleting empty to bay: ' + assetPendingUpdate.frontEndExclusive.locationUpdateStatus.toBayNumber);\r\n // allAssetsMap.delete(assetPendingUpdate.frontEndExclusive.locationUpdateStatus.toBayNumber);\r\n // }\r\n // console.log('Incremetal update updating asset with pending asset' + assetPendingUpdate.equipment.equipmentNumber + ' at bay: ' + assetPendingUpdate.frontEndExclusive.locationUpdateStatus.toBayNumber);\r\n // allAssetsMap.set(key,assetPendingUpdate);\r\n // }\r\n // });\r\n // }\r\n return Array.from(allAssetsMap.values());\r\n }\r\n\r\n // public keepPendingLocationUpdatesOLD(assetPendingUpdate: AssetInfo, localAsset: AssetInfo, location: string): boolean {\r\n // let keepLocalUpdate = false;\r\n // if (typeof(localAsset.frontEndExclusive?.locationUpdateStatus?.toBayNumber) != 'undefined' &&\r\n // localAsset.frontEndExclusive.locationUpdateStatus.toBayNumber != null &&\r\n // assetPendingUpdate.operations?.bayNumber !== localAsset.frontEndExclusive.locationUpdateStatus.toBayNumber) {\r\n // if (typeof (assetPendingUpdate.equipment?.locationUpdateStatus) != 'undefined' &&\r\n // assetPendingUpdate.equipment?.locationUpdateStatus !== null) {\r\n // if (assetPendingUpdate.equipment.locationUpdateStatus.bayOrgAbbvName === location\r\n // && assetPendingUpdate.equipment.locationUpdateStatus.fromBayNumber === localAsset.frontEndExclusive.locationUpdateStatus.fromBayNumber\r\n // && assetPendingUpdate.equipment.locationUpdateStatus.fromBayPosition === localAsset.frontEndExclusive.locationUpdateStatus.fromBayPosition\r\n // && assetPendingUpdate.equipment.locationUpdateStatus.toBayNumber === localAsset.frontEndExclusive.locationUpdateStatus.toBayNumber\r\n // && assetPendingUpdate.equipment.locationUpdateStatus.toBayPosition === localAsset.frontEndExclusive.locationUpdateStatus.toBayPosition) {\r\n // if (assetPendingUpdate.equipment.locationUpdateStatus.updateStatus !== 'FAILED') {\r\n // keepLocalUpdate = true;\r\n // } else {\r\n // if(assetPendingUpdate.equipment.locationUpdateStatus.updateStatus === 'FAILED') {\r\n // console.log('Location Update request failed for ' + assetPendingUpdate.equipment.equipmentNumber + ' from bay ' +\r\n // assetPendingUpdate.equipment.locationUpdateStatus.fromBayNumber + ' to bay '\r\n // + assetPendingUpdate.equipment.locationUpdateStatus.toBayNumber);\r\n // }\r\n // }\r\n // }\r\n // } else {\r\n // keepLocalUpdate = true;\r\n // }\r\n // }\r\n // return keepLocalUpdate;\r\n // }\r\n\r\n public summaryAssetsUpdateTap(summaryCache: AssetInfo[], countryCode: string, location: string, viewType: string): void {\r\n this.summaryCache = summaryCache;\r\n this.summaryCacheLocation = {\r\n countryCode,\r\n location,\r\n viewType\r\n };\r\n this.summaryCacheUpdateTimestamp = new Date();\r\n }\r\n\r\n public getCurrentCacheViewType(): string {\r\n return this.summaryCacheLocation?.viewType;\r\n }\r\n\r\n public getAssetCache(countryCode: string, location: string, viewType: string,): AssetInfo[] {\r\n if (this.summaryCacheLocation\r\n && this.summaryCacheLocation.countryCode === countryCode\r\n && this.summaryCacheLocation.location === location\r\n && this.summaryCacheLocation.viewType === viewType) {\r\n console.log('Using cached summary');\r\n return this.summaryCache;\r\n } else {\r\n return [];\r\n }\r\n }\r\n\r\n private unsubscribeFromSummarySubscriptions(): void {\r\n if (this.summaryInternalSub) {\r\n this.summaryInternalSub.unsubscribe();\r\n }\r\n if (this.fullRefreshSub) {\r\n this.fullRefreshSub.unsubscribe();\r\n }\r\n if (this.partialRefreshSub) {\r\n this.partialRefreshSub.unsubscribe();\r\n }\r\n }\r\n\r\n private unsubscribeFromDetailSubscriptions(): void {\r\n if (this.detailRefreshSub) {\r\n this.detailRefreshSub.unsubscribe();\r\n }\r\n }\r\n\r\n private keepPendingLocationUpdates(assetPendingUpdate: AssetInfo, localAsset: AssetInfo, location: string): boolean {\r\n let keepLocalUpdate = false;\r\n if (assetPendingUpdate.operations?.bayNumber !== localAsset.frontEndExclusive.locationUpdateStatus.toBayNumber) {\r\n if (typeof(assetPendingUpdate.equipment?.locationUpdateStatus) != 'undefined' &&\r\n assetPendingUpdate.equipment?.locationUpdateStatus !== null) {\r\n if (assetPendingUpdate.equipment.locationUpdateStatus.statusTimestamp < localAsset.frontEndExclusive.locationUpdateStatus.statusTimestamp) {\r\n if (assetPendingUpdate.equipment.locationUpdateStatus.bayOrgAbbvName === location\r\n && assetPendingUpdate.equipment.locationUpdateStatus.fromBayNumber === localAsset.frontEndExclusive.locationUpdateStatus.fromBayNumber\r\n && assetPendingUpdate.equipment.locationUpdateStatus.fromBayPosition === localAsset.frontEndExclusive.locationUpdateStatus.fromBayPosition\r\n && assetPendingUpdate.equipment.locationUpdateStatus.toBayNumber === localAsset.frontEndExclusive.locationUpdateStatus.toBayNumber\r\n && assetPendingUpdate.equipment.locationUpdateStatus.toBayPosition === localAsset.frontEndExclusive.locationUpdateStatus.toBayPosition) {\r\n if (assetPendingUpdate.equipment.locationUpdateStatus.updateStatus !== 'FAILED') {\r\n keepLocalUpdate = true;\r\n } else {\r\n if(assetPendingUpdate.equipment.locationUpdateStatus.updateStatus === 'FAILED') {\r\n console.log('Location Update request failed for ' + assetPendingUpdate.equipment.equipmentNumber + ' from bay ' +\r\n assetPendingUpdate.equipment.locationUpdateStatus.fromBayNumber + ' to bay '\r\n + assetPendingUpdate.equipment.locationUpdateStatus.toBayNumber);\r\n }\r\n }\r\n }\r\n } else {\r\n console.log('Refresh Service: Will keep local Location Update for ' + assetPendingUpdate.equipment.equipmentNumber + ' Location Update Status is old');\r\n keepLocalUpdate = true;\r\n }\r\n } else {\r\n console.log('Refresh Service: Will keep local Location Update for ' + assetPendingUpdate.equipment.equipmentNumber + ' Location Update Status is missing');\r\n keepLocalUpdate = true;\r\n }\r\n } else {\r\n console.log('Refresh Service: ' + assetPendingUpdate.equipment.equipmentNumber + ' Location Update Bay matches current bay.');\r\n }\r\n if (keepLocalUpdate) {\r\n console.log('Refresh Service: Will keep local Location Update for ' + assetPendingUpdate.equipment.equipmentNumber + ' from bay ' +\r\n localAsset.frontEndExclusive.locationUpdateStatus.fromBayNumber + ' to bay '\r\n + localAsset.frontEndExclusive.locationUpdateStatus.toBayNumber);\r\n } else {\r\n console.log('Refresh Service: Will NOT keep local Location Update for ' + assetPendingUpdate.equipment.equipmentNumber + ' from bay ' +\r\n localAsset.frontEndExclusive.locationUpdateStatus.fromBayNumber + ' to bay '\r\n + localAsset.frontEndExclusive.locationUpdateStatus.toBayNumber);\r\n }\r\n return keepLocalUpdate;\r\n }\r\n\r\n}\r\n","import { Injectable } from '@angular/core';\r\n@Injectable({\r\n providedIn: 'root'\r\n})\r\nexport class ScriptLoaderService {\r\n public load(script: string) {\r\n const node = document.createElement('script');\r\n node.src = script;\r\n node.type = 'text/javascript';\r\n document.getElementsByTagName('head')[0].appendChild(node);\r\n }\r\n}\r\n","// will likely need to send more info in the future\r\nimport { Sort } from './sort';\r\n\r\nexport class ActiveSorts {\r\n [sort: string]: Sort;\r\n\r\n constructor() { }\r\n}\r\n","import { AssetInfo } from '../../../model/asset-info/asset-info';\r\nimport { Operations } from '../../../model/asset-info/operations';\r\nimport { OnPropertyOperations } from '../../../model/asset-info/on-property-operations';\r\nimport { OnRoadOperations } from '../../../model/asset-info/on-road-operations';\r\nimport { SortingService } from '../sorting.service';\r\n\r\nexport class Sort {\r\n active: boolean;\r\n sort: (listToSort: AssetInfo[]) => AssetInfo[];\r\n\r\n constructor(context: SortingService, sort: (listToSort: AssetInfo[]) => AssetInfo[]) {\r\n this.sort = sort.bind(context);\r\n this.active = false;\r\n }\r\n}\r\n","import { Injectable } from '@angular/core';\r\n\r\nimport { AssetInfo } from '../../model/asset-info/asset-info';\r\nimport { Operations } from '../../model/asset-info/operations';\r\nimport { OnPropertyOperations } from '../../model/asset-info/on-property-operations';\r\nimport { OnRoadOperations } from '../../model/asset-info/on-road-operations';\r\nimport { AuthService } from '../../auth/auth.service';\r\n\r\nimport { ActiveSorts } from './model/active-sorts';\r\nimport { Sort } from './model/sort';\r\n\r\nimport { CommonFunctionsSite } from '../../component/site/common-functions-site';\r\n\r\n@Injectable({\r\n providedIn: 'root'\r\n})\r\nexport class SortingService {\r\n commonFunctionsSite = new CommonFunctionsSite();\r\n activeSorts = new ActiveSorts();\r\n activeSortKey: string;\r\n previousView: string;\r\n\r\n constructor(\r\n private authService: AuthService) { }\r\n\r\n public getPreviousView() {\r\n return this.previousView;\r\n }\r\n\r\n public setPreviousView(previousView: string) {\r\n this.previousView = previousView;\r\n }\r\n\r\n public getActiveSortKey() {\r\n return this.activeSortKey;\r\n }\r\n\r\n public createActiveSorts() {\r\n this.activeSorts.bayAsc = new Sort(this, this.bayAscendingSort);\r\n this.activeSorts.bayDesc = new Sort(this, this.bayDescendingSort);\r\n\r\n this.activeSorts.etaAsc = new Sort(this, this.etaAscendingSort);\r\n this.activeSorts.etaDesc = new Sort(this, this.etaDescendingSort);\r\n\r\n this.activeSorts.assetNumAsc = new Sort(this, this.assetNumAscendingSort);\r\n this.activeSorts.assetNumDesc = new Sort(this, this.assetNumDescendingSort);\r\n\r\n this.activeSorts.evenOddAsc = new Sort(this, this.bayEvenOddAscendingSort);\r\n this.activeSorts.evenOddDesc = new Sort(this, this.bayEvenOddDescendingSort);\r\n\r\n this.activeSorts.oddEvenAsc = new Sort(this, this.bayOddEvenAscendingSort);\r\n this.activeSorts.oddEvenDesc = new Sort(this, this.bayOddEvenDescendingSort);\r\n\r\n this.activeSorts.rejected = new Sort(this, this.rejectedSort);\r\n }\r\n\r\n public clearSorts() {\r\n Object.keys(this.activeSorts).forEach((sort) => {\r\n this.activeSorts[sort].active = false;\r\n });\r\n }\r\n\r\n // run the currently active sort\r\n public runSort(listToSort: AssetInfo[]): AssetInfo[] {\r\n return this.activeSorts[this.activeSortKey].sort(listToSort);\r\n }\r\n\r\n // clear current sort and activate new\r\n public activateSort(sort: string): void {\r\n this.clearSorts();\r\n this.activeSortKey = sort;\r\n if (!this.activeSorts[this.activeSortKey]) {\r\n this.createActiveSorts();\r\n }\r\n this.activeSorts[this.activeSortKey].active = true;\r\n }\r\n\r\n // clear current sort and active new, then run\r\n public activateAndRunSort(sort: string, listToSort: AssetInfo[]): AssetInfo[] {\r\n this.activateSort(sort);\r\n return this.runSort(listToSort);\r\n }\r\n\r\n public bayAscendingSort(listToSort: AssetInfo[]): AssetInfo[] {\r\n return listToSort.sort((a, b) => {\r\n let valueToReturn = 0;\r\n if (this.previousView === 'yardcheck') {\r\n valueToReturn = this.assetConfirmationSort(a, b);\r\n }\r\n if (valueToReturn === 0) {\r\n if (!this.commonFunctionsSite.isOnPropertyOperationsBay(a) && !this.commonFunctionsSite.isOnPropertyOperationsBay(b)) {\r\n valueToReturn = 0;\r\n }\r\n else if (this.commonFunctionsSite.isOnPropertyOperationsBay(a) && this.commonFunctionsSite.isOnPropertyOperationsBay(b)) {\r\n // sort by bay number\r\n valueToReturn = this.sortStringOrNumberAscending(a, b, (asset: AssetInfo) => Number.parseInt(asset.operations?.bayNumber, 10));\r\n if (valueToReturn === 0) {\r\n // sort by bay position\r\n valueToReturn = this.sortStringOrNumberAscending(a, b, (asset: AssetInfo) => asset.operations?.bayPosition);\r\n }\r\n } else if (!this.commonFunctionsSite.isOnPropertyOperationsBay(a)) {\r\n valueToReturn = 1;\r\n } else if (!this.commonFunctionsSite.isOnPropertyOperationsBay(b)) {\r\n valueToReturn = -1;\r\n }\r\n if (valueToReturn === 0) {\r\n valueToReturn = this.sortOnSiteNotArrived(a, b);\r\n if (valueToReturn === 0) {\r\n // sort by equipment number\r\n valueToReturn = this.sortStringOrNumberAscending(a, b, asset => asset.equipment?.equipmentNumber);\r\n }\r\n }\r\n }\r\n return valueToReturn;\r\n });\r\n }\r\n\r\n public bayDescendingSort(listToSort: AssetInfo[]): AssetInfo[] {\r\n return listToSort.sort((a, b) => {\r\n let valueToReturn = 0;\r\n if (this.previousView === 'yardcheck') {\r\n valueToReturn = this.assetConfirmationSort(a, b);\r\n }\r\n if (valueToReturn === 0) {\r\n if (!this.commonFunctionsSite.isOnPropertyOperationsBay(a) && !this.commonFunctionsSite.isOnPropertyOperationsBay(b)) {\r\n valueToReturn = 0;\r\n }else if (this.commonFunctionsSite.isOnPropertyOperationsBay(a) && this.commonFunctionsSite.isOnPropertyOperationsBay(b)) {\r\n // sort by bay number\r\n valueToReturn = this.sortStringOrNumberDescending(a, b, (asset: AssetInfo) => Number.parseInt(asset.operations?.bayNumber, 10));\r\n if (valueToReturn === 0) {\r\n // sort by bay position\r\n valueToReturn = this.sortStringOrNumberAscending(a, b, (asset: AssetInfo) => asset.operations?.bayPosition);\r\n }\r\n } else if (!this.commonFunctionsSite.isOnPropertyOperationsBay(a)) {\r\n valueToReturn = 1;\r\n } else if (!this.commonFunctionsSite.isOnPropertyOperationsBay(b)) {\r\n valueToReturn = -1;\r\n }\r\n if (valueToReturn === 0) {\r\n valueToReturn = this.sortOnSiteNotArrived(a, b);\r\n if (valueToReturn === 0) {\r\n // sort by equipment number\r\n valueToReturn = this.sortStringOrNumberAscending(a, b, asset => asset.equipment?.equipmentNumber);\r\n }\r\n }\r\n }\r\n return valueToReturn;\r\n });\r\n }\r\n\r\n public bayEvenOddAscendingSort(listToSort: AssetInfo[]): AssetInfo[] {\r\n return listToSort.sort((a, b) => {\r\n let valueToReturn = 0;\r\n if (this.previousView === 'yardcheck') {\r\n valueToReturn = this.assetConfirmationSort(a, b);\r\n }\r\n if (valueToReturn === 0) {\r\n if (!this.commonFunctionsSite.isOnPropertyOperationsBay(a) && !this.commonFunctionsSite.isOnPropertyOperationsBay(b)) {\r\n valueToReturn = 0;\r\n } else if (this.commonFunctionsSite.isOnPropertyOperationsBay(a) && this.commonFunctionsSite.isOnPropertyOperationsBay(b)) {\r\n // sort by even to odd bay\r\n valueToReturn = this.sortEvensOverOdds(a, b, (asset: AssetInfo) => Number.parseInt(asset.operations?.bayNumber, 10));\r\n } else if (!this.commonFunctionsSite.isOnPropertyOperationsBay(a)) {\r\n valueToReturn = 1;\r\n } else if (!this.commonFunctionsSite.isOnPropertyOperationsBay(b)) {\r\n valueToReturn = -1;\r\n }\r\n // sort by bay number\r\n if (valueToReturn === 0) {\r\n valueToReturn = this.sortStringOrNumberAscending(a, b, (asset: AssetInfo) => Number.parseInt(asset.operations?.bayNumber, 10));\r\n // sort by bay position\r\n if (valueToReturn === 0) {\r\n valueToReturn = this.sortStringOrNumberAscending(a, b, (asset: AssetInfo) => asset.operations?.bayPosition);\r\n if (valueToReturn === 0) {\r\n valueToReturn = this.sortOnSiteNotArrived(a, b);\r\n if (valueToReturn === 0) {\r\n // sort by equipment number\r\n valueToReturn = this.sortStringOrNumberAscending(a, b, asset => asset.equipment?.equipmentNumber);\r\n }\r\n }\r\n }\r\n }\r\n }\r\n return valueToReturn;\r\n });\r\n }\r\n\r\n public bayEvenOddDescendingSort(listToSort: AssetInfo[]): AssetInfo[] {\r\n return listToSort.sort((a, b) => {\r\n let valueToReturn = 0;\r\n if (this.previousView === 'yardcheck') {\r\n valueToReturn = this.assetConfirmationSort(a, b);\r\n }\r\n if (valueToReturn === 0) {\r\n if (!this.commonFunctionsSite.isOnPropertyOperationsBay(a) && !this.commonFunctionsSite.isOnPropertyOperationsBay(b)) {\r\n valueToReturn = 0;\r\n }else if (this.commonFunctionsSite.isOnPropertyOperationsBay(a) && this.commonFunctionsSite.isOnPropertyOperationsBay(b)) {\r\n // sort by even to odd bay\r\n valueToReturn = this.sortEvensOverOdds(a, b, (asset: AssetInfo) => Number.parseInt(asset.operations?.bayNumber, 10));\r\n } else if (!this.commonFunctionsSite.isOnPropertyOperationsBay(a)) {\r\n valueToReturn = 1;\r\n } else if (!this.commonFunctionsSite.isOnPropertyOperationsBay(b)) {\r\n valueToReturn = -1;\r\n }\r\n // sort by bay number\r\n if (valueToReturn === 0) {\r\n valueToReturn = this.sortStringOrNumberDescending(a, b, (asset: AssetInfo) => Number.parseInt(asset.operations?.bayNumber, 10));\r\n // sort by bay position\r\n if (valueToReturn === 0) {\r\n valueToReturn = this.sortStringOrNumberAscending(a, b, (asset: AssetInfo) => asset.operations?.bayPosition);\r\n if (valueToReturn === 0) {\r\n valueToReturn = this.sortOnSiteNotArrived(a, b);\r\n if (valueToReturn === 0) {\r\n // sort by equipment number\r\n valueToReturn = this.sortStringOrNumberAscending(a, b, asset => asset.equipment?.equipmentNumber);\r\n }\r\n }\r\n }\r\n }\r\n }\r\n return valueToReturn;\r\n });\r\n }\r\n\r\n public bayOddEvenAscendingSort(listToSort: AssetInfo[]): AssetInfo[] {\r\n return listToSort.sort((a, b) => {\r\n let valueToReturn = 0;\r\n if (this.previousView === 'yardcheck') {\r\n valueToReturn = this.assetConfirmationSort(a, b);\r\n }\r\n if (valueToReturn === 0) {\r\n if (!this.commonFunctionsSite.isOnPropertyOperationsBay(a) && !this.commonFunctionsSite.isOnPropertyOperationsBay(b)) {\r\n valueToReturn = 0;\r\n }\r\n else if (this.commonFunctionsSite.isOnPropertyOperationsBay(a) && this.commonFunctionsSite.isOnPropertyOperationsBay(b)) {\r\n // sort by even to odd bay\r\n valueToReturn = this.sortOddsOverEvens(a, b, (asset: AssetInfo) => Number.parseInt(asset.operations?.bayNumber, 10));\r\n } else if (!this.commonFunctionsSite.isOnPropertyOperationsBay(a)) {\r\n valueToReturn = 1;\r\n } else if (!this.commonFunctionsSite.isOnPropertyOperationsBay(b)) {\r\n valueToReturn = -1;\r\n }\r\n // sort by bay number\r\n if (valueToReturn === 0) {\r\n valueToReturn = this.sortStringOrNumberAscending(a, b, (asset: AssetInfo) => Number.parseInt(asset.operations?.bayNumber, 10));\r\n // sort by bay position\r\n if (valueToReturn === 0) {\r\n valueToReturn = this.sortStringOrNumberAscending(a, b, (asset: AssetInfo) => asset.operations?.bayPosition);\r\n if (valueToReturn === 0) {\r\n valueToReturn = this.sortOnSiteNotArrived(a, b);\r\n if (valueToReturn === 0) {\r\n // sort by equipment number\r\n valueToReturn = this.sortStringOrNumberAscending(a, b, asset => asset.equipment?.equipmentNumber);\r\n }\r\n }\r\n }\r\n }\r\n }\r\n return valueToReturn;\r\n });\r\n }\r\n\r\n public bayOddEvenDescendingSort(listToSort: AssetInfo[]): AssetInfo[] {\r\n return listToSort.sort((a, b) => {\r\n let valueToReturn = 0;\r\n if (this.previousView === 'yardcheck') {\r\n valueToReturn = this.assetConfirmationSort(a, b);\r\n }\r\n if (valueToReturn === 0) {\r\n if (!this.commonFunctionsSite.isOnPropertyOperationsBay(a) && !this.commonFunctionsSite.isOnPropertyOperationsBay(b)) {\r\n valueToReturn = 0;\r\n } else if (this.commonFunctionsSite.isOnPropertyOperationsBay(a) && this.commonFunctionsSite.isOnPropertyOperationsBay(b)) {\r\n // sort by even to odd bay\r\n valueToReturn = this.sortOddsOverEvens(a, b, (asset: AssetInfo) => Number.parseInt(asset.operations?.bayNumber, 10));\r\n } else if (!this.commonFunctionsSite.isOnPropertyOperationsBay(a)) {\r\n valueToReturn = 1;\r\n } else if (!this.commonFunctionsSite.isOnPropertyOperationsBay(b)) {\r\n valueToReturn = -1;\r\n }\r\n // sort by bay number\r\n if (valueToReturn === 0) {\r\n valueToReturn = this.sortStringOrNumberDescending(a, b, (asset: AssetInfo) => Number.parseInt(asset.operations?.bayNumber, 10));\r\n // sort by bay position\r\n if (valueToReturn === 0) {\r\n valueToReturn = this.sortStringOrNumberAscending(a, b, (asset: AssetInfo) => asset.operations?.bayPosition);\r\n if (valueToReturn === 0) {\r\n valueToReturn = this.sortOnSiteNotArrived(a, b);\r\n if (valueToReturn === 0) {\r\n // sort by equipment number\r\n valueToReturn = this.sortStringOrNumberAscending(a, b, asset => asset.equipment?.equipmentNumber);\r\n }\r\n }\r\n }\r\n }\r\n }\r\n return valueToReturn;\r\n });\r\n }\r\n\r\n public assetNumAscendingSort(listToSort: AssetInfo[]) {\r\n return listToSort.sort((a, b) => this.sortStringOrNumberAscending(a, b, asset => asset.equipment?.equipmentNumber));\r\n }\r\n\r\n public assetNumDescendingSort(listToSort: AssetInfo[]) {\r\n return listToSort.sort((a, b) => this.sortStringOrNumberDescending(a, b, asset => asset.equipment?.equipmentNumber));\r\n }\r\n\r\n public etaAscendingSort(listToSort: AssetInfo[]): AssetInfo[] {\r\n return listToSort.sort((a, b) => {\r\n let valueToReturn = 0;\r\n if (!this.commonFunctionsSite.isOnRoadOperations(a) && !this.commonFunctionsSite.isOnRoadOperations(b)) {\r\n valueToReturn = 0;\r\n } else if (this.commonFunctionsSite.isOnRoadOperations(a) && this.commonFunctionsSite.isOnRoadOperations(b)) {\r\n valueToReturn = this.sortBreakdown(a, b);\r\n } else if (!this.commonFunctionsSite.isOnRoadOperations(a)) {\r\n valueToReturn = 1;\r\n } else if (!this.commonFunctionsSite.isOnRoadOperations(b)) {\r\n valueToReturn = -1;\r\n }\r\n if (valueToReturn === 0) {\r\n // sort by ETA\r\n valueToReturn = this.sortStringOrNumberAscending(a, b, (asset: AssetInfo) => asset.operations?.estimatedTimeOfArrival);\r\n if (valueToReturn === 0) {\r\n // sort by trailer position\r\n valueToReturn = this.sortStringOrNumberAscending(a, b, (asset: AssetInfo) => asset.operations?.trailerPosition);\r\n }\r\n }\r\n return valueToReturn;\r\n });\r\n }\r\n\r\n public etaDescendingSort(listToSort: AssetInfo[]): AssetInfo[] {\r\n return listToSort.sort((a, b) => {\r\n let valueToReturn = 0;\r\n if (!this.commonFunctionsSite.isOnRoadOperations(a) && !this.commonFunctionsSite.isOnRoadOperations(b)) {\r\n valueToReturn = 0;\r\n }else if (this.commonFunctionsSite.isOnRoadOperations(a) && this.commonFunctionsSite.isOnRoadOperations(b)) {\r\n valueToReturn = this.sortBreakdown(a, b);\r\n } else if (!this.commonFunctionsSite.isOnRoadOperations(a)) {\r\n valueToReturn = 1;\r\n } else if (!this.commonFunctionsSite.isOnRoadOperations(b)) {\r\n valueToReturn = -1;\r\n }\r\n if (valueToReturn === 0) {\r\n // sort by ETA\r\n valueToReturn = this.sortStringOrNumberDescending(a, b, (asset: AssetInfo) => asset.operations?.estimatedTimeOfArrival);\r\n if (valueToReturn === 0) {\r\n // sort by trailer position\r\n valueToReturn = this.sortStringOrNumberAscending(a, b, (asset: AssetInfo) => asset.operations?.trailerPosition);\r\n }\r\n }\r\n return valueToReturn;\r\n });\r\n }\r\n\r\n public assetConfirmationSort(a: AssetInfo, b: AssetInfo): number {\r\n const confirmationStates = ['UNKNOWN', 'CONFIRMED', 'REJECTED'];\r\n\r\n\r\n // the sort will be applied for 3 hours - 180 minutes\r\n let locationConfirmationA = a.frontEndExclusive?.confirmationStatus; // user is not checked when its just bay? - each locationConfirmation has equipment\r\n\r\n if (!locationConfirmationA && a.equipment !== null\r\n && a.equipment.equipmentNumber !== null\r\n && a.equipment.locationConfirmation !== null\r\n && a.equipment.locationConfirmation.userId !== null\r\n && a.equipment.locationConfirmation?.userId === this.authService.getUserId()\r\n && a.equipment?.locationConfirmation?.lastUpdateTimestamp > new Date(Date.now() - 60000 * 180).valueOf()) {\r\n // if it was confirmed by the logged-in user and it submitted in the last 3 hours then show at the bottom\r\n locationConfirmationA = a.equipment.locationConfirmation.locationConfirmationState;\r\n } else if(!locationConfirmationA && a.equipment !== null && a.equipment.equipmentNumber !== null\r\n && a.equipment.locationConfirmation !== null\r\n && a.equipment.locationConfirmation.locationConfirmationState !== null\r\n && a.equipment.locationConfirmation.userId !== null\r\n && a.equipment.locationConfirmation.userId !== this.authService.getUserId()) {\r\n // if the confirmation/reject is by another user treat as normal\r\n locationConfirmationA = 'UNKNOWN';\r\n //a.frontEndExclusive.confirmationStatus = undefined;\r\n }else if (!locationConfirmationA && a.equipment !== null && a.equipment.equipmentNumber !== null\r\n && a.equipment.locationConfirmation !== null\r\n && a.equipment.locationConfirmation.userId !== null\r\n && a.equipment.locationConfirmation?.userId === this.authService.getUserId()\r\n && a.equipment?.locationConfirmation?.lastUpdateTimestamp <= new Date(Date.now() - 60000 * 180).valueOf()) {\r\n // if the 3 hour rule applies to the asset, treat as normal\r\n locationConfirmationA = 'UNKNOWN';\r\n } else if (!locationConfirmationA && a.equipment !== null && a.equipment.equipmentNumber !== null\r\n && a.equipment.onSiteNotArrivedLocation !== null\r\n && a.equipment.onSiteNotArrivedLocation.userId !== null\r\n && a.equipment.onSiteNotArrivedLocation?.userId === this.authService.getUserId()\r\n && a.equipment?.onSiteNotArrivedLocation?.lastUpdateTimestamp > new Date(Date.now() - 60000 * 180).valueOf()) {\r\n // if the 3 hour rule applies to the asset, treat as normal\r\n locationConfirmationA = 'CONFIRMED';\r\n }\r\n let locationConfirmationB = b.frontEndExclusive?.confirmationStatus;\r\n if (!locationConfirmationB && b.equipment !== null\r\n && b.equipment.equipmentNumber !== null\r\n && b.equipment.locationConfirmation !== null\r\n && b.equipment.locationConfirmation.userId !== null\r\n && b.equipment.locationConfirmation?.userId === this.authService.getUserId()\r\n && b.equipment?.locationConfirmation?.lastUpdateTimestamp > new Date(Date.now() - 60000 * 180).valueOf()) {\r\n // if it was confirmed by the logged-in user and it submitted in the last 3 hours then show at the bottom\r\n locationConfirmationB = b.equipment.locationConfirmation.locationConfirmationState;\r\n } else if(!locationConfirmationB && b.equipment !== null && b.equipment.equipmentNumber !== null\r\n && b.equipment.locationConfirmation !== null\r\n && b.equipment.locationConfirmation.locationConfirmationState !== null\r\n && b.equipment.locationConfirmation.userId !== null\r\n && b.equipment.locationConfirmation.userId !== this.authService.getUserId()) {\r\n // if the confirmation/reject is by another user treat as normal\r\n locationConfirmationB = 'UNKNOWN';\r\n }else if (!locationConfirmationB && b.equipment !== null && b.equipment.equipmentNumber !== null\r\n && b.equipment.locationConfirmation !== null\r\n && b.equipment.locationConfirmation.userId !== null\r\n && b.equipment.locationConfirmation?.userId === this.authService.getUserId()\r\n && b.equipment?.locationConfirmation?.lastUpdateTimestamp <= new Date(Date.now() - 60000 * 180).valueOf()) {\r\n // if the 3 hour rule applies to the asset, treat as normal\r\n locationConfirmationB = 'UNKNOWN';\r\n } else if (!locationConfirmationB && b.equipment !== null && b.equipment.equipmentNumber !== null\r\n && b.equipment.onSiteNotArrivedLocation !== null\r\n && b.equipment.onSiteNotArrivedLocation.userId !== null\r\n && b.equipment.onSiteNotArrivedLocation?.userId === this.authService.getUserId()\r\n && b.equipment?.onSiteNotArrivedLocation?.lastUpdateTimestamp > new Date(Date.now() - 60000 * 180).valueOf()) {\r\n // if the 3 hour rule applies to the asset, treat as normal\r\n locationConfirmationB = 'CONFIRMED';\r\n }\r\n\r\n if (!locationConfirmationA)\r\n {locationConfirmationA = 'UNKNOWN';}\r\n if (!locationConfirmationB)\r\n {locationConfirmationB = 'UNKNOWN';}\r\n\r\n if (locationConfirmationA === locationConfirmationB) {\r\n return 0;\r\n }\r\n\r\n if (confirmationStates.indexOf(locationConfirmationA) > confirmationStates.indexOf(locationConfirmationB)) {\r\n return 1;\r\n }\r\n if (confirmationStates.indexOf(locationConfirmationA) < confirmationStates.indexOf(locationConfirmationB)) {\r\n return -1;\r\n }\r\n }\r\n\r\n public sortBreakdown(a: AssetInfo, b: AssetInfo): number {\r\n let breakdownA: string = null;\r\n let breakdownB: string = null;\r\n if (a.operations?.alertSeverity) {\r\n breakdownA = a.operations.alertSeverity;\r\n }\r\n if (b.operations?.alertSeverity) {\r\n breakdownB = b.operations.alertSeverity;\r\n }\r\n if (breakdownA === breakdownB) {\r\n return 0;\r\n }\r\n if (breakdownA === 'Breakdown') {\r\n return -1;\r\n }\r\n if (breakdownB === 'Breakdown') {\r\n return 1;\r\n }\r\n return 0;\r\n }\r\n\r\n public sortOnSiteNotArrived(a: AssetInfo, b: AssetInfo): number {\r\n let onSiteA = true;\r\n let onSiteB = true;\r\n if (a.dataSources?.length === 1 && a.dataSources[0] === 'TAM') {\r\n onSiteA = false;\r\n }\r\n if (b.dataSources?.length === 1 && b.dataSources[0] === 'TAM') {\r\n onSiteB = false;\r\n }\r\n\r\n if(!onSiteA && !onSiteB){\r\n return this.sortOnSiteNotArrivedBay(a,b);\r\n }\r\n\r\n if (onSiteA === onSiteB) {\r\n return 0;\r\n }\r\n if (onSiteA) {\r\n return -1;\r\n }\r\n if (onSiteB) {\r\n return 1;\r\n }\r\n }\r\n\r\n public sortStringOrNumberAscending(a: AssetInfo, b: AssetInfo, getItem: (item: AssetInfo) => string | number) {\r\n if (getItem(a) === getItem(b)) {\r\n return 0;\r\n }\r\n if (!getItem(a)) {\r\n return 1;\r\n }\r\n if (!getItem(b)) {\r\n return -1;\r\n }\r\n if (getItem(a) > getItem(b)) {\r\n return 1;\r\n }\r\n if (getItem(a) < getItem(b)) {\r\n return -1;\r\n }\r\n }\r\n\r\n public sortStringOrNumberDescending(a: AssetInfo, b: AssetInfo, getItem: (item: AssetInfo) => string | number) {\r\n if (getItem(a) === getItem(b)) {\r\n return 0;\r\n }\r\n if (!getItem(a)) {\r\n return 1;\r\n }\r\n if (!getItem(b)) {\r\n return -1;\r\n }\r\n if (getItem(a) < getItem(b)) {\r\n return 1;\r\n }\r\n if (getItem(a) > getItem(b)) {\r\n return -1;\r\n }\r\n }\r\n\r\n public sortOddsOverEvens(a: AssetInfo, b: AssetInfo, getItem: (item: AssetInfo) => number) {\r\n if (getItem(a) && getItem(b)) {\r\n if (getItem(a) % 2 === getItem(b) % 2) {\r\n return 0;\r\n }\r\n else if (getItem(a) % 2 === 0 && getItem(b) % 2 === 1) {\r\n return 1;\r\n }\r\n else if (getItem(a) % 2 === 1 && getItem(b) % 2 === 0) {\r\n return -1;\r\n }\r\n } else if (!getItem(a) && !getItem(b)) {\r\n return 0;\r\n }\r\n else if (!getItem(a)) {\r\n return 1;\r\n }\r\n else if (!getItem(b)) {\r\n return -1;\r\n }\r\n return 0;\r\n }\r\n\r\n public sortEvensOverOdds(a: AssetInfo, b: AssetInfo, getItem: (item: AssetInfo) => number) {\r\n if (getItem(a) && getItem(b)) {\r\n if (getItem(a) % 2 === getItem(b) % 2) {\r\n return 0;\r\n }\r\n else if (getItem(a) % 2 === 1 && getItem(b) % 2 === 0) {\r\n return 1;\r\n }\r\n else if (getItem(a) % 2 === 0 && getItem(b) % 2 === 1) {\r\n return -1;\r\n }\r\n } else if (!getItem(a) && !getItem(b)) {\r\n return 0;\r\n }\r\n else if (!getItem(a)) {\r\n return 1;\r\n }\r\n else if (!getItem(b)) {\r\n return -1;\r\n }\r\n return 0;\r\n }\r\n\r\n public rejectedSort(listToSort: AssetInfo[]): AssetInfo[] {\r\n return listToSort.sort((a, b) => {\r\n let valueToReturn = 0;\r\n if (this.checkRejected(a) && this.checkRejected(b)) {\r\n valueToReturn = 0;\r\n } else if (this.checkRejected(a)) {\r\n valueToReturn = -1;\r\n } else if (this.checkRejected(b)) {\r\n valueToReturn = 1;\r\n }\r\n if (valueToReturn === 0) {\r\n if (this.checkConfirmed(a) && this.checkConfirmed(b)) {\r\n valueToReturn = 0;\r\n } else if (this.checkConfirmed(a)) {\r\n valueToReturn = -1;\r\n } else if (this.checkConfirmed(b)) {\r\n valueToReturn = 1;\r\n }\r\n if (valueToReturn === 0) {\r\n // sort by bay number\r\n valueToReturn = this.sortStringOrNumberAscending(a, b, (asset: AssetInfo) => Number.parseInt(asset.operations?.bayNumber, 10));\r\n if (valueToReturn === 0) {\r\n // sort by equipment number\r\n valueToReturn = this.sortStringOrNumberAscending(a, b, asset => asset.equipment?.equipmentNumber);\r\n }\r\n }\r\n }\r\n return valueToReturn;\r\n });\r\n }\r\n\r\n public checkRejected(asset: AssetInfo): boolean {\r\n return asset.frontEndExclusive?.confirmationStatus === 'REJECTED' || asset.equipment?.locationConfirmation?.locationConfirmationState === 'REJECTED';\r\n }\r\n\r\n public checkConfirmed(asset: AssetInfo): boolean {\r\n return asset.frontEndExclusive?.confirmationStatus === 'CONFIRMED' || asset.equipment?.locationConfirmation?.locationConfirmationState === 'CONFIRMED';\r\n }\r\n\r\n public sortOnSiteNotArrivedBay(a: AssetInfo, b: AssetInfo): number {\r\n let onSiteABay = '';\r\n let onSiteBBay = '';\r\n if (a.equipment?.onSiteNotArrivedLocation) {\r\n onSiteABay = a.equipment?.onSiteNotArrivedLocation?.bayNumber;\r\n }\r\n if (b.equipment?.onSiteNotArrivedLocation) {\r\n onSiteBBay = b.equipment?.onSiteNotArrivedLocation?.bayNumber;\r\n }\r\n if (onSiteABay === '' && onSiteBBay === '') {\r\n return 0;\r\n }\r\n if (onSiteABay === '' && onSiteBBay !== '') {\r\n return 1;\r\n }\r\n if (onSiteABay !== '' && onSiteBBay === '') {\r\n return -1;\r\n }\r\n if (onSiteABay !== '' && onSiteBBay !== '') {\r\n if (onSiteABay === onSiteBBay) {\r\n // sort by bay position\r\n return this.sortStringOrNumberAscending(a, b, (asset: AssetInfo) => asset.equipment?.onSiteNotArrivedLocation?.bayPosition);\r\n }\r\n if (onSiteABay > onSiteBBay) {\r\n return 1;\r\n }\r\n if (onSiteABay < onSiteBBay) {\r\n return -1;\r\n }\r\n }\r\n }\r\n}\r\n","import { Injectable, ElementRef } from '@angular/core';\r\n\r\n@Injectable({\r\n providedIn: 'root'\r\n})\r\nexport class SwipeService {\r\n private appWrapperRef?: ElementRef;\r\n private alertRef?: ElementRef;\r\n private snappedToBottom = false;\r\n private bottomMarginRequired = 0;\r\n private previousFilterMargin = '';\r\n\r\n constructor() { }\r\n\r\n public setAppWrapperRef(appWrapper: ElementRef): void {\r\n this.appWrapperRef = appWrapper;\r\n }\r\n\r\n public getAppWrapperRef(): ElementRef {\r\n return this.appWrapperRef;\r\n }\r\n\r\n public setAlertRef(alertRef: ElementRef): void {\r\n this.alertRef = alertRef;\r\n }\r\n\r\n public getAlertRef(): ElementRef {\r\n return this.alertRef;\r\n }\r\n\r\n public setBottomMarginRequired(bottomMarginRequired: number): void {\r\n this.bottomMarginRequired = bottomMarginRequired;\r\n }\r\n\r\n public onTap(): void {\r\n if (this.appWrapperRef) {\r\n if (this.snappedToBottom) {\r\n this.completeSlidePullUp(this.appWrapperRef.nativeElement);\r\n } else {\r\n this.completeSlidePullDown(this.appWrapperRef.nativeElement);\r\n }\r\n }\r\n }\r\n\r\n public onPanMove(event: HammerInput): void {\r\n if (this.appWrapperRef) {\r\n this.appWrapperRef.nativeElement.style.marginTop = '';\r\n\r\n this.removeAnimationClasses(this.appWrapperRef.nativeElement);\r\n\r\n // what to do if component is already at bottom of page\r\n if (this.snappedToBottom) {\r\n if (event.deltaY > 0) {\r\n this.appWrapperRef.nativeElement.style.marginTop = `calc(100vh - ${this.bottomMarginRequired}px)`;\r\n } else {\r\n this.appWrapperRef.nativeElement.style.marginTop = `calc(100vh - ${this.bottomMarginRequired}px + ${event.deltaY}px)`;\r\n }\r\n // what to do if the component is at the top of the page\r\n } else {\r\n if (event.deltaY < 0) {\r\n this.appWrapperRef.nativeElement.style.marginTop = '0';\r\n } else {\r\n this.appWrapperRef.nativeElement.style.marginTop = `${event.deltaY}px`;\r\n }\r\n }\r\n }\r\n }\r\n\r\n public onPanEnd(event: HammerInput, snappedStatusCallback?: (snappedToBottom: boolean) => void): void {\r\n // depending on where the users pointer is at in relation to the center\r\n // of the screen we transition the current pane up or down\r\n if (this.appWrapperRef) {\r\n if (this.snappedToBottom) {\r\n if (event.center.y < this.appWrapperRef.nativeElement.offsetHeight * .90) {\r\n this.completeSlidePullUp(this.appWrapperRef.nativeElement);\r\n } else {\r\n this.completeSlidePullDown(this.appWrapperRef.nativeElement);\r\n }\r\n } else {\r\n if (event.center.y > this.appWrapperRef.nativeElement.offsetHeight * .15) {\r\n this.completeSlidePullDown(this.appWrapperRef.nativeElement);\r\n } else {\r\n this.completeSlidePullUp(this.appWrapperRef.nativeElement);\r\n }\r\n }\r\n }\r\n if (snappedStatusCallback) {\r\n snappedStatusCallback(this.snappedToBottom);\r\n }\r\n }\r\n\r\n // remove animation classes from element\r\n public removeAnimationClasses(detailElement: HTMLElement): void {\r\n if (detailElement.classList.contains('pan-down')) {\r\n detailElement.classList.remove('pan-down');\r\n }\r\n if (detailElement.classList.contains('pan-up')) {\r\n detailElement.classList.remove('pan-up');\r\n }\r\n }\r\n\r\n // slide pane to bottom of screen with some part of the element visible\r\n public completeSlidePullDown(detailElement: HTMLElement): void {\r\n this.removeAnimationClasses(detailElement);\r\n this.setPullDownMargin();\r\n detailElement.classList.add('pan-down');\r\n if (this.alertRef) {\r\n this.alertRef.nativeElement.style.display = 'none';\r\n }\r\n }\r\n\r\n public setPullDownMargin(): void {\r\n if (this.appWrapperRef) {\r\n this.appWrapperRef.nativeElement.style.marginTop = `calc((var(--vh, 1vh) * 100) - ${this.bottomMarginRequired}px)`;\r\n this.snappedToBottom = true;\r\n }\r\n }\r\n\r\n // pull pane to its default location\r\n public completeSlidePullUp(detailElement: HTMLElement): void {\r\n this.removeAnimationClasses(detailElement);\r\n this.setPullUpMargin();\r\n detailElement.classList.add('pan-up');\r\n if (this.alertRef) {\r\n this.alertRef.nativeElement.style.display = '';\r\n }\r\n }\r\n\r\n public setPullUpMargin(): void {\r\n if (this.appWrapperRef) {\r\n this.appWrapperRef.nativeElement.style.marginTop = '0';\r\n this.snappedToBottom = false;\r\n }\r\n }\r\n\r\n public getSnappedToBottom(): boolean {\r\n return this.snappedToBottom;\r\n }\r\n\r\n public setSummaryViewMargin(): void {\r\n this.setBottomMarginRequired(120);\r\n }\r\n\r\n // slide up the summary view with animations (good for onTap)\r\n public summaryViewSlideUp(): void {\r\n this.setSummaryViewMargin();\r\n if (this.appWrapperRef) {\r\n this.completeSlidePullUp(this.appWrapperRef.nativeElement);\r\n }\r\n }\r\n\r\n public summaryViewSlideDown(): void {\r\n this.setSummaryViewMargin();\r\n if (this.appWrapperRef) {\r\n this.completeSlidePullDown(this.appWrapperRef.nativeElement);\r\n }\r\n }\r\n\r\n // slide up the summary view without animations (good for OnInit)\r\n public summaryViewInitializeOpened(): void {\r\n this.setSummaryViewMargin();\r\n this.setPullUpMargin();\r\n }\r\n\r\n public summaryViewInitializeCollapsed(): void {\r\n this.setSummaryViewMargin();\r\n this.setPullDownMargin();\r\n }\r\n\r\n // when we are snapped to the bottom we need to handle that\r\n public toggleFilter(filterOpen: boolean) {\r\n if (this.appWrapperRef) {\r\n if (filterOpen && this.snappedToBottom) {\r\n this.previousFilterMargin = this.appWrapperRef.nativeElement.style.marginTop;\r\n this.appWrapperRef.nativeElement.style.marginTop = '0';\r\n } else if (!filterOpen && this.snappedToBottom && this.previousFilterMargin !== '') {\r\n this.appWrapperRef.nativeElement.style.marginTop = this.previousFilterMargin;\r\n this.previousFilterMargin = '';\r\n }\r\n }\r\n }\r\n}\r\n","// localization.service.ts\r\n\r\nimport { registerLocaleData } from '@angular/common';\r\nimport { Injectable } from '@angular/core';\r\n\r\n@Injectable({\r\n providedIn: 'root'\r\n})\r\nexport class LocalizationService {\r\n\r\n localeId:string;\r\n constructor() {\r\n this.localeId = navigator.language ?? \"en-US\";\r\n if (this.localeId) {\r\n console.log(\"localeId:: \"+this.localeId)\r\n const lang = this.localeId;//.split(\"-\")[0];\r\n import(/* webpackExclude: /\\.d\\.ts$/ */\r\n /* webpackMode: \"lazy-once\" */\r\n /* webpackChunkName: \"i18n-base\" */ `../../../../node_modules/@angular/common/locales/${lang}`).then(m => {\r\n console.log(`Registering language ${lang}.`)\r\n registerLocaleData(m.default)\r\n }).catch(err => {\r\n // Fallback to English or default locale if locale data for the user's language is not available\r\n console.error(`Failed to load locale data for ${lang}. Fallback to default.`);\r\n // Register the default locale (e.g., English)\r\n import('@angular/common/locales/en').then(m => {\r\n console.log(\"Language module to load \", m);\r\n registerLocaleData(m.default);\r\n });\r\n });\r\n }\r\n}\r\n\r\n}\r\n","import { Injectable } from '@angular/core';\r\nimport { Subject } from 'rxjs';\r\n\r\n@Injectable({\r\n providedIn: 'root'\r\n})\r\nexport class ViewService {\r\n\r\n view = new Subject();\r\n currentView = this.view.asObservable();\r\n\r\n changeView(newView: string) {\r\n this.view.next(newView);\r\n }\r\n}\r\n","import { Injectable } from '@angular/core';\r\nimport { HttpClient } from '@angular/common/http';\r\nimport { Observable } from 'rxjs';\r\n\r\nimport { Environment } from '../../../common/environment/environment';\r\nimport { EnvironmentService } from '../../environment/environment.service';\r\nimport { WebServiceHelperService } from '../web-service-helper';\r\nimport { GlobalConfiguration } from '../../../model/configuration/configuration';\r\nimport { SiteConfiguration } from '../../../model/configuration/configuration';\r\n\r\n@Injectable({\r\n providedIn: 'root'\r\n})\r\n\r\nexport class ConfigurationService {\r\n private environment: Environment;\r\n constructor(\r\n private http: HttpClient,\r\n private environmentService: EnvironmentService,\r\n private webServiceHelperService: WebServiceHelperService) {\r\n this.environmentService.environmentPromise.then(environment => {\r\n this.environment = environment;\r\n });\r\n }\r\n\r\n fetchGlobalConfiguration(): Observable {\r\n const httpOptions = this.webServiceHelperService.createRequestHeadersWithAuth(this.environment.stConfigurationServiceUsername, this.environment.stConfigurationServicePassword);\r\n return this.http.get(`${this.environment.apiGatewayOrigin}${this.environment.stConfigurationService}/configuration/global`, httpOptions);\r\n }\r\n\r\n fetchSiteConfiguration(slicAbbreviation: string): Observable {\r\n const httpOptions = this.webServiceHelperService.createRequestHeadersWithAuth(this.environment.stConfigurationServiceUsername, this.environment.stConfigurationServicePassword);\r\n return this.http.get(`${this.environment.apiGatewayOrigin}${this.environment.stConfigurationService}/configuration/site/${slicAbbreviation}`, httpOptions);\r\n }\r\n\r\n isSiteConfigurationSettingEnabled(slicAbbreviation: string, settingName: string): Observable {\r\n const httpOptions = this.webServiceHelperService.createRequestHeadersWithAuth(this.environment.stConfigurationServiceUsername, this.environment.stConfigurationServicePassword);\r\n return this.http.get(`${this.environment.apiGatewayOrigin}${this.environment.stConfigurationService}/configuration/site/${slicAbbreviation}/${settingName}`, httpOptions);\r\n }\r\n\r\n}\r\n","import { Injectable } from '@angular/core';\r\nimport { HttpClient } from '@angular/common/http';\r\nimport { Observable, throwError } from 'rxjs';\r\n\r\nimport { Environment } from '../../../common/environment/environment';\r\nimport { EnvironmentService } from '../../environment/environment.service';\r\n\r\nimport { DunnageUpdate } from '../../../model/dunnage/dunnage-update';\r\nimport { BayAttributes } from '../../../model/bay-attributes/bay-attributes';\r\n\r\nimport { WebServiceHelperService } from '../web-service-helper';\r\n\r\n@Injectable({\r\n providedIn: 'root'\r\n})\r\nexport class HfcsService {\r\n private environment: Environment;\r\n constructor(\r\n private http: HttpClient,\r\n private environmentService: EnvironmentService,\r\n private webServiceHelperService: WebServiceHelperService\r\n ) {\r\n this.environmentService.environmentPromise.then(environment => {\r\n this.environment = environment;\r\n });\r\n }\r\n\r\n // post dunnage cleanliness\r\n public postDunnageCleanliness(countryCode: string, slicAbbreviation: string, dunnageUpdate: DunnageUpdate): Observable {\r\n const httpOptions = this.webServiceHelperService.createRequestHeadersWithAuth(this.environment.stHfcsServiceUsername, this.environment.stHfcsServicePassword);\r\n if (this.webServiceHelperService.postCallInputValidation(dunnageUpdate.toString())) {\r\n return this.http.post(`${this.environment.apiGatewayOrigin}${this.environment.stHfcsService}/trailerCleanliness/${countryCode}/${slicAbbreviation}`, dunnageUpdate, httpOptions);\r\n } else {\r\n return throwError('Input validation for request has failed.');\r\n }\r\n }\r\n\r\n // post bay attributes\r\n public postBayAttributes(countryCode: string, slicAbbreviation: string, bayAttributes: BayAttributes): Observable {\r\n const httpOptions = this.webServiceHelperService.createRequestHeadersWithAuth(this.environment.stHfcsServiceUsername, this.environment.stHfcsServicePassword);\r\n if (this.webServiceHelperService.postCallInputValidation(bayAttributes.toString())) {\r\n return this.http.post(`${this.environment.apiGatewayOrigin}${this.environment.stHfcsService}/bayAttributes/${countryCode}/${slicAbbreviation}`, bayAttributes, httpOptions);\r\n } else {\r\n return throwError('Input validation for request has failed.');\r\n }\r\n }\r\n}\r\n","import { Injectable } from '@angular/core';\r\nimport { HttpClient } from '@angular/common/http';\r\nimport { Observable } from 'rxjs';\r\n\r\nimport { Environment } from '../../../common/environment/environment';\r\nimport { EnvironmentService } from '../../environment/environment.service';\r\nimport { WebServiceHelperService } from '../web-service-helper';\r\nimport { LocationConfirmation } from '../../../model/reconciliation/location-confirmation';\r\nimport { EquipmentLocationReconcileStatus } from '../../../model/reconciliation/equipment-location-reconcile-status';\r\nimport { EquipmentLocationReconcile } from '../../../model/reconciliation/equipment-location-reconcile';\r\nimport { OnSiteNotArrivedLocation } from '../../../model/reconciliation/on-site-not-arrived-location';\r\n\r\n@Injectable({\r\n providedIn: 'root'\r\n})\r\nexport class ReconciliationService {\r\n private environment: Environment;\r\n constructor(\r\n private http: HttpClient,\r\n private environmentService: EnvironmentService,\r\n private webServiceHelperService: WebServiceHelperService) {\r\n this.environmentService.environmentPromise.then(environment => {\r\n this.environment = environment;\r\n });\r\n }\r\n\r\n updateAssetConfirmation(assetType: string, assetNumber: string, sentLocationConfirmation: LocationConfirmation): Observable {\r\n const httpOptions = this.webServiceHelperService.createRequestHeadersWithAuth(this.environment.stReconciliationServiceUsername, this.environment.stReconciliationServicePassword);\r\n return this.http.post(`${this.environment.apiGatewayOrigin}${this.environment.stReconciliationService}/locationReconciliation/updateAssetConfirmation/${assetType}/${assetNumber}`,\r\n sentLocationConfirmation, httpOptions);\r\n }\r\n\r\n fetchHFCSAgentStatus(countryCode: string, slicAbbreviation: string): Observable {\r\n const httpOptions = this.webServiceHelperService.createRequestHeadersWithAuth(this.environment.stReconciliationServiceUsername, this.environment.stReconciliationServicePassword);\r\n return this.http.get(`${this.environment.apiGatewayOrigin}${this.environment.stReconciliationService}/locationReconciliation/hfcsAgentEnabled/${countryCode}/${slicAbbreviation}`, httpOptions);\r\n }\r\n\r\n submitLocationUpdate(obj: EquipmentLocationReconcile, bypassValidation: boolean): Observable {\r\n const httpOptions = this.webServiceHelperService.createRequestHeadersWithAuth(this.environment.stReconciliationServiceUsername, this.environment.stReconciliationServicePassword);\r\n return this.http.post(`${this.environment.apiGatewayOrigin}${this.environment.stReconciliationService}/locationReconciliation/updateAssetLocation?bypassValidation=${bypassValidation}`, obj, httpOptions);\r\n }\r\n\r\n fetchLocationUpdateStatus(movementActivityEquipmentOid: string): Observable {\r\n const httpOptions = this.webServiceHelperService.createRequestHeadersWithAuth(this.environment.stReconciliationServiceUsername, this.environment.stReconciliationServicePassword);\r\n return this.http.get(`${this.environment.apiGatewayOrigin}${this.environment.stReconciliationService}/movementHistory/locationUpdateStatus/${movementActivityEquipmentOid}`, httpOptions);\r\n }\r\n\r\n updateAssetOnSiteNotArrivedLocation(assetType: string, assetNumber: string, sentOnSiteNotArrivedLocation: OnSiteNotArrivedLocation): Observable {\r\n const httpOptions = this.webServiceHelperService.createRequestHeadersWithAuth(this.environment.stReconciliationServiceUsername, this.environment.stReconciliationServicePassword);\r\n return this.http.post(`${this.environment.apiGatewayOrigin}${this.environment.stReconciliationService}/locationReconciliation/updateAssetOnSiteNotArrived/${assetType}/${assetNumber}`,\r\n sentOnSiteNotArrivedLocation, httpOptions);\r\n }\r\n\r\n}\r\n","import { Injectable } from '@angular/core';\r\nimport { HttpClient } from '@angular/common/http';\r\nimport { Observable, BehaviorSubject } from 'rxjs';\r\n\r\nimport { Environment } from '../../../common/environment/environment';\r\nimport { EnvironmentService } from '../../environment/environment.service';\r\n\r\nimport { AssetInfo } from '../../../model/asset-info/asset-info';\r\nimport { Operations } from '../../../model/asset-info/operations';\r\n\r\nimport { RefreshService } from '../../refresh/refresh.service';\r\nimport { WebServiceHelperService } from '../web-service-helper';\r\n\r\nimport { tap, map, filter } from 'rxjs/operators';\r\n\r\n@Injectable({\r\n providedIn: 'root'\r\n})\r\nexport class StInTransitService {\r\n private environment: Environment;\r\n\r\n constructor(\r\n private http: HttpClient,\r\n private environmentService: EnvironmentService,\r\n private refreshService: RefreshService,\r\n private webServiceHelperService: WebServiceHelperService\r\n ) {\r\n this.environmentService.environmentPromise.then(environment => {\r\n this.environment = environment;\r\n });\r\n }\r\n\r\n public fetchInboundDetails(countryCode: string, location: string, assetType: string, assetNumber: string): Observable> {\r\n return this.refreshService.fetchDetails(countryCode, location, assetType, assetNumber, 'inbound', this.fetchInboundDetailsInternal.bind(this));\r\n }\r\n\r\n public fetchInboundAssets(countryCode: string, location: string): Observable[]> {\r\n return this.refreshService.fetchAssets(countryCode, location, 'inbound', 300000, this.fetchInboundAssetsInternal.bind(this));\r\n }\r\n\r\n // fetch assets by job number\r\n public fetchJobEquipment(viewType: string, countryCode: string, location: string, jobDomicileCountryCode: string, jobDomicileSlicAbbreviation: string, jobNumber: string):\r\n Observable[]> {\r\n const httpOptions = this.webServiceHelperService.createRequestHeadersWithAuth(this.environment.stInTransitServiceUsername, this.environment.stInTransitServicePassword);\r\n return this.http.get[]>(\r\n `${this.environment.apiGatewayOrigin}${this.environment.stInTransitService}/${viewType}/${countryCode}/${location}/job/${jobDomicileCountryCode}/${jobDomicileSlicAbbreviation}/${jobNumber}`, httpOptions);\r\n }\r\n\r\n // fetch inbound details for an asset in the new format\r\n private fetchInboundDetailsInternal(\r\n countryCode: string,\r\n location: string,\r\n assetType: string,\r\n assetNumber: string,\r\n subject: BehaviorSubject>): Observable> {\r\n // Fresh data request\r\n const httpOptions = this.webServiceHelperService.createRequestHeadersWithAuth(this.environment.stInTransitServiceUsername, this.environment.stInTransitServicePassword);\r\n this.http\r\n .get>(`${this.environment.apiGatewayOrigin}${this.environment.stInTransitService}/inbound/${countryCode}/${location}/${assetType}/${assetNumber}`, httpOptions)\r\n .subscribe(asset => {\r\n console.log('Fresh request completed');\r\n subject.next(asset);\r\n });\r\n return subject.pipe(filter(asset => asset != null));\r\n }\r\n\r\n // fetch inbound summary for a location in the new format\r\n private fetchInboundAssetsInternal(countryCode: string, location: string, lastUpdateTimestamp?: Date): Observable[]> {\r\n const httpOptions = this.webServiceHelperService.createRequestHeadersWithAuth(this.environment.stInTransitServiceUsername, this.environment.stInTransitServicePassword);\r\n let query = '';\r\n if (lastUpdateTimestamp) {\r\n query = this.webServiceHelperService.createLastUpdateTimestampQuery(lastUpdateTimestamp.getTime());\r\n }\r\n return this.http\r\n .get[]>(`${this.environment.apiGatewayOrigin}${this.environment.stInTransitService}/inbound/${countryCode}/${location}${query}`, httpOptions)\r\n .pipe(\r\n filter((assets) => !lastUpdateTimestamp || (lastUpdateTimestamp && assets.length > 0)), // don't publish update if no changes\r\n map(assetUpdates => this.refreshService.updateAssetCache(assetUpdates, location, lastUpdateTimestamp)),\r\n tap(assets => {\r\n this.refreshService.summaryAssetsUpdateTap(assets, countryCode, location, 'inbound');\r\n })\r\n );\r\n }\r\n}\r\n","import { Injectable } from '@angular/core';\r\nimport { HttpClient } from '@angular/common/http';\r\nimport { Observable, BehaviorSubject } from 'rxjs';\r\n\r\nimport { Environment } from '../../../common/environment/environment';\r\nimport { EnvironmentService } from '../../environment/environment.service';\r\n\r\nimport { AssetInfo } from '../../../model/asset-info/asset-info';\r\nimport { Operations } from '../../../model/asset-info/operations';\r\nimport { FrontEndExclusive } from '../../../model/asset-info/front-end-exclusive';\r\nimport { OnPropertyOperations } from '../../../model/asset-info/on-property-operations';\r\nimport { BayRecommendation } from '../../../model/reconciliation/bay-recommendation';\r\nimport { Location } from '../../../model/location/location';\r\nimport { PropertyLayout } from '../../../model/property-layout/property-layout';\r\n\r\nimport { RefreshService } from '../../refresh/refresh.service';\r\nimport { WebServiceHelperService } from '../web-service-helper';\r\n\r\nimport { tap, map, filter } from 'rxjs/operators';\r\nimport {LocalDataService} from '../../local-data/local-data.service';\r\n\r\n@Injectable({\r\n providedIn: 'root'\r\n})\r\nexport class StOnPropertyService {\r\n private environment: Environment;\r\n private layout: PropertyLayout;\r\n\r\n constructor(\r\n private http: HttpClient,\r\n private environmentService: EnvironmentService,\r\n private refreshService: RefreshService,\r\n private localDataService: LocalDataService,\r\n private webServiceHelperService: WebServiceHelperService) {\r\n this.environmentService.environmentPromise.then(environment => {\r\n this.environment = environment;\r\n });\r\n }\r\n\r\n public fetchOnPropertyDetails(countryCode: string, location: string, assetType: string, assetNumber: string, viewType: string): Observable> {\r\n return this.refreshService.fetchDetails(countryCode, location, assetType, assetNumber, viewType, this.fetchOnPropertyDetailsInternal.bind(this));\r\n }\r\n\r\n public fetchOnPropertyAssets(countryCode: string, location: string): Observable[]> {\r\n return this.refreshService.fetchAssets(countryCode, location, 'onproperty', 60000, this.fetchOnPropertyAssetsInternal.bind(this));\r\n }\r\n\r\n public fetchOnPropertyAssetsYardCheck(countryCode: string, location: string,\r\n ignoreRefresh: () => boolean): Observable[]> {\r\n return this.refreshService.fetchAssets(countryCode, location, 'yardcheck', 60000, this.fetchYardCheckInternal.bind(this), ignoreRefresh);\r\n }\r\n\r\n public updateYardCheckCache(summaryCache: AssetInfo[], countryCode: string, location: string) {\r\n this.refreshService.summaryAssetsUpdateTap(summaryCache, countryCode, location, 'yardcheck');\r\n }\r\n\r\n public fetchYardCheckInternal(countryCode: string, location: string, lastUpdateTimestamp?: Date): Observable[]> {\r\n const httpOptions = this.webServiceHelperService.createRequestHeadersWithAuth(this.environment.stOnPropertyServiceUsername, this.environment.stOnPropertyServicePassword);\r\n let query = '';\r\n if (lastUpdateTimestamp) {\r\n query = this.webServiceHelperService.createLastUpdateTimestampQuery(lastUpdateTimestamp.getTime());\r\n return this.http\r\n .get[]>(`${this.environment.apiGatewayOrigin}${this.environment.stOnProperty}/onproperty/${countryCode}/${location}${query}`, httpOptions)\r\n .pipe(\r\n filter((assets) => assets.length > 0), // don't publish update if no changes\r\n map(assetUpdates => this.refreshService.updateAssetCacheYardCheck(assetUpdates as AssetInfo[], location, lastUpdateTimestamp)),\r\n tap(assets => {\r\n console.log('Processing - partial refresh - ' + location + ' - ' + lastUpdateTimestamp + ' - ' + new Date());\r\n this.refreshService.summaryAssetsUpdateTap(assets, countryCode, location, 'yardcheck');\r\n })\r\n );\r\n } else {\r\n const thisService = this;\r\n return this.http\r\n .get(`${this.environment.apiGatewayOrigin}${this.environment.stOnProperty}/onproperty/${countryCode}/${location}/layout`, httpOptions)\r\n .pipe(tap(siteLayout => {thisService.layout = siteLayout;}), map(siteLayout => {\r\n console.log('On-Property-Service: processing layout at fetchYardCheckInternal' + ' - ' + new Date());\r\n let allAssetsMap: Map> = new Map>();\r\n // in order to keep frontEndExclusive items we need to get the current cache\r\n if (this.refreshService.getCurrentCacheViewType() === 'yardcheck') {\r\n allAssetsMap = new Map(this.refreshService.getAssetCache(countryCode, location, 'yardcheck')\r\n .map((i) => {\r\n const k = i as AssetInfo;\r\n if (k) {\r\n this.localDataService.syncConfirmationStatus(k);\r\n }\r\n if (k.frontEndExclusive?.emptyBay) {\r\n return [`${k.operations.bayNumber}`, k];\r\n } else {\r\n return [`${k.equipment.equipmentType}:${k.equipment.equipmentNumber}`, k];\r\n }\r\n }));\r\n }\r\n const allBays: AssetInfo[] = [];\r\n for (const bay of siteLayout.bays) {\r\n if (bay.assetList.length !== 0) {\r\n let hasTrailers = false;\r\n for (const asset of bay.assetList) {\r\n if (asset.equipment.equipmentType === 'TL') {\r\n hasTrailers = true;\r\n asset.frontEndExclusive = new FrontEndExclusive();\r\n const cachedAsset = allAssetsMap.get(`${asset.equipment.equipmentType}:${asset.equipment.equipmentNumber}`);\r\n if (cachedAsset && !(!cachedAsset.frontEndExclusive)) {\r\n if (cachedAsset.frontEndExclusive.confirmationStatusTimestamp !== null &&\r\n (new Date().getTime() - cachedAsset.frontEndExclusive.confirmationStatusTimestamp < 60000*2)\r\n &&\r\n (\r\n !(asset.equipment?.locationConfirmation?.lastUpdateTimestamp) ||\r\n asset.equipment?.locationConfirmation?.lastUpdateTimestamp < cachedAsset.frontEndExclusive.confirmationStatusTimestamp\r\n )) {\r\n if (sessionStorage.getItem('tam::debug') === 'verbose') {\r\n console.log('Asset1 - ' + asset.equipment.equipmentNumber + ' - '\r\n + asset.operations.bayNumber + ' - ' + asset.operations.bayPosition\r\n + ' Keeping local cached - ' + cachedAsset.frontEndExclusive.confirmationStatus\r\n + ' with updated - ' + asset.equipment?.locationConfirmation?.locationConfirmationState\r\n + ' with local - ' + cachedAsset.equipment?.locationConfirmation?.locationConfirmationState\r\n\r\n + ' updatedAsset TS = ' + asset.equipment?.locationConfirmation?.lastUpdateTimestamp\r\n + ' localAssetToBeUpdated TS = ' + cachedAsset?.frontEndExclusive?.confirmationStatusTimestamp\r\n + ' currentTime DIFF = ' + (new Date().getTime() - cachedAsset.frontEndExclusive.confirmationStatusTimestamp)\r\n + ' using local confirmation because backend is old and local is less than 2 mins'\r\n + ' On Property Refresh'\r\n );\r\n }\r\n asset.frontEndExclusive.confirmationStatus = cachedAsset.frontEndExclusive.confirmationStatus;\r\n asset.frontEndExclusive.confirmationStatusTimestamp = cachedAsset.frontEndExclusive.confirmationStatusTimestamp;\r\n }else {\r\n if (sessionStorage.getItem('tam::debug') === 'verbose') {\r\n console.log('Asset1b - ' + asset.equipment.equipmentNumber + ' - '\r\n + asset.operations.bayNumber + ' - ' + asset.operations.bayPosition\r\n + ' Keeping local cached - ' + cachedAsset?.frontEndExclusive?.confirmationStatus\r\n + ' with updated - ' + asset.equipment?.locationConfirmation?.locationConfirmationState\r\n + ' with local - ' + cachedAsset?.equipment?.locationConfirmation?.locationConfirmationState\r\n + ' updatedAsset TS = ' + asset.equipment?.locationConfirmation?.lastUpdateTimestamp\r\n + ' localAssetToBeUpdated TS = ' + cachedAsset?.frontEndExclusive?.confirmationStatusTimestamp\r\n + ' using updated asset'\r\n + ' On Property Refresh'\r\n );\r\n }\r\n }\r\n if (cachedAsset.frontEndExclusive?.locationUpdateStatus?.updateStatus === 'PENDING'){\r\n if ( this.keepPendingLocationUpdates(asset, cachedAsset, location)) {\r\n asset.frontEndExclusive.locationUpdateStatus = cachedAsset.frontEndExclusive.locationUpdateStatus;\r\n }\r\n }\r\n }else {\r\n if (sessionStorage.getItem('tam::debug') === 'verbose') {\r\n console.log('Asset1c - ' + asset.equipment.equipmentNumber + ' - '\r\n + asset.operations.bayNumber + ' - ' + asset.operations.bayPosition\r\n + ' Not Keeping local cached - ' + cachedAsset?.frontEndExclusive?.confirmationStatus\r\n + ' with updated - ' + asset.equipment?.locationConfirmation?.locationConfirmationState\r\n + ' with local - ' + cachedAsset?.equipment?.locationConfirmation?.locationConfirmationState\r\n + ' updatedAsset TS = ' + asset.equipment?.locationConfirmation?.lastUpdateTimestamp\r\n + ' localAssetToBeUpdated TS = ' + cachedAsset?.frontEndExclusive?.confirmationStatusTimestamp\r\n + ' using updated asset'\r\n + ' On Property Refresh'\r\n );\r\n }\r\n }\r\n allBays.push(asset);\r\n }\r\n }\r\n if (!hasTrailers) {\r\n const emptyBay = new AssetInfo(new OnPropertyOperations());\r\n emptyBay.operations.bayNumber = this.convertToBayFormat(bay.bayNumber);\r\n emptyBay.frontEndExclusive.emptyBay = true;\r\n emptyBay.frontEndExclusive.bayAvailable = bay.available;\r\n if (bay.locationConfirmation) {\r\n emptyBay.equipment.locationConfirmation = bay.locationConfirmation;\r\n }\r\n\r\n const cachedAsset = allAssetsMap.get(`${emptyBay.operations.bayNumber}`);\r\n if (cachedAsset && !(!cachedAsset.frontEndExclusive)) {\r\n if (!(!cachedAsset.frontEndExclusive.confirmationStatusTimestamp) &&\r\n (new Date().getTime() - cachedAsset.frontEndExclusive.confirmationStatusTimestamp < 60000*2)\r\n &&\r\n (\r\n !(emptyBay.equipment?.locationConfirmation?.lastUpdateTimestamp) ||\r\n emptyBay.equipment?.locationConfirmation?.lastUpdateTimestamp < cachedAsset.frontEndExclusive.confirmationStatusTimestamp\r\n )) {\r\n emptyBay.frontEndExclusive.confirmationStatus = cachedAsset.frontEndExclusive.confirmationStatus;\r\n emptyBay.frontEndExclusive.confirmationStatusTimestamp = cachedAsset.frontEndExclusive.confirmationStatusTimestamp;\r\n }\r\n }\r\n\r\n allBays.push(emptyBay);\r\n }\r\n } else {\r\n const emptyBay = new AssetInfo(new OnPropertyOperations());\r\n emptyBay.operations.bayNumber = this.convertToBayFormat(bay.bayNumber);\r\n emptyBay.frontEndExclusive.emptyBay = true;\r\n emptyBay.frontEndExclusive.bayAvailable = bay.available;\r\n if (bay.locationConfirmation) {\r\n emptyBay.equipment.locationConfirmation = bay.locationConfirmation;\r\n }\r\n\r\n const cachedAsset = allAssetsMap.get(`${emptyBay.operations.bayNumber}`);\r\n if (cachedAsset && !(!cachedAsset.frontEndExclusive)) {\r\n if (!(!cachedAsset.frontEndExclusive.confirmationStatusTimestamp) &&\r\n (new Date().getTime() - cachedAsset.frontEndExclusive.confirmationStatusTimestamp < 60000*2)\r\n &&\r\n (\r\n !(emptyBay.equipment?.locationConfirmation?.lastUpdateTimestamp) ||\r\n emptyBay.equipment?.locationConfirmation?.lastUpdateTimestamp < cachedAsset.frontEndExclusive.confirmationStatusTimestamp\r\n )) {\r\n emptyBay.frontEndExclusive.confirmationStatus = cachedAsset.frontEndExclusive.confirmationStatus;\r\n emptyBay.frontEndExclusive.confirmationStatusTimestamp = cachedAsset.frontEndExclusive.confirmationStatusTimestamp;\r\n }\r\n }\r\n\r\n allBays.push(emptyBay);\r\n }\r\n }\r\n for (const zone of siteLayout.zones) {\r\n for (const bay of zone.bays) {\r\n if (bay.assetList.length !== 0) {\r\n let hasTrailers = false;\r\n for (const asset of bay.assetList) {\r\n if (asset.equipment.equipmentType === 'TL') {\r\n hasTrailers = true;\r\n asset.frontEndExclusive = new FrontEndExclusive();\r\n const cachedAsset = allAssetsMap.get(`${asset.equipment.equipmentType}:${asset.equipment.equipmentNumber}`);\r\n if (cachedAsset && !(!cachedAsset.frontEndExclusive)) {\r\n if (cachedAsset.frontEndExclusive.confirmationStatusTimestamp !== null &&\r\n (new Date().getTime() - cachedAsset.frontEndExclusive.confirmationStatusTimestamp < 60000*2)\r\n &&\r\n (\r\n !(asset.equipment?.locationConfirmation?.lastUpdateTimestamp) ||\r\n asset.equipment?.locationConfirmation?.lastUpdateTimestamp < cachedAsset.frontEndExclusive.confirmationStatusTimestamp\r\n ) ) {\r\n\r\n console.log('Asset2 - ' + asset.equipment.equipmentNumber + ' - '\r\n + asset.operations.bayNumber + ' - ' + asset.operations.bayPosition\r\n + ' Keeping local cached - ' + cachedAsset.frontEndExclusive.confirmationStatus\r\n + ' with updated - ' + asset.equipment?.locationConfirmation?.locationConfirmationState\r\n + ' with local - ' + cachedAsset.equipment?.locationConfirmation?.locationConfirmationState\r\n + ' updatedAsset TS = ' + asset.equipment?.locationConfirmation?.lastUpdateTimestamp\r\n + ' localAssetToBeUpdated TS = ' + cachedAsset.frontEndExclusive.confirmationStatusTimestamp\r\n + ' currentTime DIFF = ' + (new Date().getTime() - cachedAsset.frontEndExclusive.confirmationStatusTimestamp)\r\n + ' using local confirmation because backend is old and local is less than 2 mins'\r\n + ' On Property Refresh'\r\n );\r\n asset.frontEndExclusive.confirmationStatus = cachedAsset.frontEndExclusive.confirmationStatus;\r\n asset.frontEndExclusive.confirmationStatusTimestamp = cachedAsset.frontEndExclusive.confirmationStatusTimestamp;\r\n }else {\r\n\r\n console.log('Asset2 - ' + asset.equipment.equipmentNumber + ' - '\r\n + asset.operations.bayNumber + ' - ' + asset.operations.bayPosition\r\n + ' Not Keeping local cached - ' + cachedAsset.frontEndExclusive.confirmationStatus\r\n + ' with updated - ' + asset.equipment?.locationConfirmation?.locationConfirmationState\r\n + ' with local - ' + cachedAsset.equipment?.locationConfirmation?.locationConfirmationState\r\n + ' updatedAsset TS = ' + asset.equipment?.locationConfirmation?.lastUpdateTimestamp\r\n + ' localAssetToBeUpdated TS = ' + cachedAsset?.frontEndExclusive?.confirmationStatusTimestamp\r\n + ' using updated asset'\r\n + ' On Property Refresh'\r\n );\r\n }\r\n if (cachedAsset.frontEndExclusive?.locationUpdateStatus?.updateStatus === 'PENDING'){\r\n if ( this.keepPendingLocationUpdates(asset, cachedAsset, location)) {\r\n asset.frontEndExclusive.locationUpdateStatus = cachedAsset.frontEndExclusive.locationUpdateStatus;\r\n }\r\n }\r\n }\r\n allBays.push(asset);\r\n }\r\n }\r\n if (!hasTrailers) {\r\n const emptyBay = new AssetInfo(new OnPropertyOperations());\r\n emptyBay.operations.bayNumber = this.convertToBayFormat(bay.bayNumber);\r\n emptyBay.frontEndExclusive.emptyBay = true;\r\n emptyBay.frontEndExclusive.bayAvailable = bay.available;\r\n if (bay.locationConfirmation) {\r\n emptyBay.equipment.locationConfirmation = bay.locationConfirmation;\r\n }\r\n\r\n const cachedAsset = allAssetsMap.get(`${emptyBay.operations.bayNumber}`);\r\n if (cachedAsset && !(!cachedAsset.frontEndExclusive)) {\r\n if (cachedAsset.frontEndExclusive.confirmationStatusTimestamp !== null &&\r\n (new Date().getTime() - cachedAsset.frontEndExclusive.confirmationStatusTimestamp < 60000*2)\r\n &&\r\n (\r\n !(emptyBay.equipment?.locationConfirmation?.lastUpdateTimestamp) ||\r\n emptyBay.equipment?.locationConfirmation?.lastUpdateTimestamp < cachedAsset.frontEndExclusive.confirmationStatusTimestamp\r\n )) {\r\n emptyBay.frontEndExclusive.confirmationStatus = cachedAsset.frontEndExclusive.confirmationStatus;\r\n emptyBay.frontEndExclusive.confirmationStatusTimestamp = cachedAsset.frontEndExclusive.confirmationStatusTimestamp;\r\n }\r\n }\r\n\r\n allBays.push(emptyBay);\r\n }\r\n } else {\r\n const emptyBay = new AssetInfo(new OnPropertyOperations());\r\n emptyBay.operations.bayNumber = this.convertToBayFormat(bay.bayNumber);\r\n emptyBay.frontEndExclusive.emptyBay = true;\r\n emptyBay.frontEndExclusive.bayAvailable = bay.available;\r\n if (bay.locationConfirmation) {\r\n emptyBay.equipment.locationConfirmation = bay.locationConfirmation;\r\n }\r\n\r\n const cachedAsset = allAssetsMap.get(`${emptyBay.operations.bayNumber}`);\r\n if (cachedAsset && !(!cachedAsset.frontEndExclusive)) {\r\n if (cachedAsset.frontEndExclusive.confirmationStatusTimestamp !== null &&\r\n (new Date().getTime() - cachedAsset.frontEndExclusive.confirmationStatusTimestamp < 60000*2)\r\n &&\r\n (\r\n !(emptyBay.equipment?.locationConfirmation?.lastUpdateTimestamp) ||\r\n emptyBay.equipment?.locationConfirmation?.lastUpdateTimestamp < cachedAsset.frontEndExclusive.confirmationStatusTimestamp\r\n )) {\r\n emptyBay.frontEndExclusive.confirmationStatus = cachedAsset.frontEndExclusive.confirmationStatus;\r\n emptyBay.frontEndExclusive.confirmationStatusTimestamp = cachedAsset.frontEndExclusive.confirmationStatusTimestamp;\r\n }\r\n }\r\n\r\n allBays.push(emptyBay);\r\n }\r\n }\r\n }\r\n for (const asset of siteLayout.unplacedAssetList) {\r\n if (asset.equipment.equipmentType === 'TL') {\r\n asset.frontEndExclusive = new FrontEndExclusive();\r\n const cachedAsset = allAssetsMap.get(`${asset.equipment.equipmentType}:${asset.equipment.equipmentNumber}`);\r\n if (cachedAsset && !(!cachedAsset.frontEndExclusive)) {\r\n if ( !(!cachedAsset.frontEndExclusive.confirmationStatusTimestamp) &&\r\n (new Date().getTime() - cachedAsset.frontEndExclusive.confirmationStatusTimestamp < 60000*2)\r\n &&\r\n (\r\n !(asset.equipment?.locationConfirmation?.lastUpdateTimestamp) ||\r\n asset.equipment?.locationConfirmation?.lastUpdateTimestamp < cachedAsset.frontEndExclusive.confirmationStatusTimestamp\r\n )) {\r\n asset.frontEndExclusive.confirmationStatus = cachedAsset.frontEndExclusive.confirmationStatus;\r\n asset.frontEndExclusive.confirmationStatusTimestamp = cachedAsset.frontEndExclusive.confirmationStatusTimestamp;\r\n\r\n\r\n console.log('Asset3 - ' + asset.equipment.equipmentNumber + ' - '\r\n + asset.operations.bayNumber + ' - ' + asset.operations.bayPosition\r\n + ' Keeping local cached - ' + cachedAsset.frontEndExclusive.confirmationStatus\r\n + ' with updated - ' + asset.equipment?.locationConfirmation?.locationConfirmationState\r\n + ' with local - ' + cachedAsset.equipment?.locationConfirmation?.locationConfirmationState\r\n + ' updatedAsset TS = ' + asset.equipment?.locationConfirmation?.lastUpdateTimestamp\r\n + ' localAssetToBeUpdated TS = ' + cachedAsset.frontEndExclusive.confirmationStatusTimestamp\r\n + ' currentTime DIFF = ' + (new Date().getTime() - cachedAsset.frontEndExclusive.confirmationStatusTimestamp)\r\n + ' using local confirmation because backend is old and local is less than 2 mins'\r\n + ' On Property Refresh'\r\n );\r\n }else {\r\n\r\n console.log('Asset3 - ' + asset.equipment.equipmentNumber + ' - '\r\n + asset.operations.bayNumber + ' - ' + asset.operations.bayPosition\r\n + ' Not Keeping local cached - ' + cachedAsset.frontEndExclusive.confirmationStatus\r\n + ' with updated - ' + asset.equipment?.locationConfirmation?.locationConfirmationState\r\n + ' with local - ' + cachedAsset.equipment?.locationConfirmation?.locationConfirmationState\r\n + ' updatedAsset TS = ' + asset.equipment?.locationConfirmation?.lastUpdateTimestamp\r\n + ' localAssetToBeUpdated TS = ' + cachedAsset?.frontEndExclusive?.confirmationStatusTimestamp\r\n + ' using updated asset'\r\n + ' On Property Refresh'\r\n );\r\n }\r\n if (cachedAsset.frontEndExclusive?.locationUpdateStatus?.updateStatus === 'PENDING'){\r\n if ( this.keepPendingLocationUpdates(asset, cachedAsset, location)) {\r\n asset.frontEndExclusive.locationUpdateStatus = cachedAsset.frontEndExclusive.locationUpdateStatus;\r\n }\r\n }\r\n }\r\n allBays.push(asset);\r\n }\r\n }\r\n return this.refreshService.updateAssetCacheYardCheck(allBays, location, lastUpdateTimestamp);\r\n }),\r\n tap(assets => {\r\n this.refreshService.summaryAssetsUpdateTap(assets, countryCode, location, 'yardcheck');\r\n }));\r\n }\r\n }\r\n\r\n public fetchLastSiteLayout(): PropertyLayout {\r\n return this.layout;\r\n }\r\n\r\n public convertToBayFormat(bayNumber: number) {\r\n return bayNumber.toString().padStart(4, '0');\r\n }\r\n\r\n public fetchBayRecommendation(location: Location, lat: number, long: number, lCode: string, trailerType: string, assetType: string, assetNumber: string): Observable {\r\n const httpOptions = this.webServiceHelperService.createRequestHeadersWithAuth(this.environment.stOnPropertyServiceUsername, this.environment.stOnPropertyServicePassword);\r\n const query = `?latitude=${lat}${lCode !== undefined ? `&loadCode=${lCode}` : ''}&longitude=${long}${trailerType !== undefined ? `&trailerType=${trailerType}` : ''}`;\r\n return this.http.get(\r\n `${this.environment.apiGatewayOrigin}${this.environment.stOnProperty}/onproperty/${location.countryCode}/${location.slicAbbreviation}/${assetType}/${assetNumber}/bayRecommendation${query}`, httpOptions);\r\n }\r\n\r\n // fetch on property details for an asset in the new format\r\n private fetchOnPropertyDetailsInternal(\r\n countryCode: string,\r\n location: string,\r\n assetType: string,\r\n assetNumber: string,\r\n subject: BehaviorSubject>): Observable> {\r\n // Fresh data request\r\n const httpOptions = this.webServiceHelperService.createRequestHeadersWithAuth(this.environment.stOnPropertyServiceUsername, this.environment.stOnPropertyServicePassword);\r\n this.http\r\n .get>(`${this.environment.apiGatewayOrigin}${this.environment.stOnProperty}/onproperty/${countryCode}/${location}/${assetType}/${assetNumber}`, httpOptions)\r\n .subscribe(asset => {\r\n console.log('Fresh request completed');\r\n subject.next(asset);\r\n });\r\n return subject.pipe(filter(asset => asset != null));\r\n }\r\n\r\n // fetch on property summary for a location in the new format\r\n private fetchOnPropertyAssetsInternal(countryCode: string, location: string, lastUpdateTimestamp?: Date): Observable[]> {\r\n const httpOptions = this.webServiceHelperService.createRequestHeadersWithAuth(this.environment.stOnPropertyServiceUsername, this.environment.stOnPropertyServicePassword);\r\n let query = '';\r\n if (lastUpdateTimestamp) {\r\n query = this.webServiceHelperService.createLastUpdateTimestampQuery(lastUpdateTimestamp.getTime());\r\n }\r\n return this.http\r\n .get[]>(`${this.environment.apiGatewayOrigin}${this.environment.stOnProperty}/onproperty/${countryCode}/${location}${query}`, httpOptions)\r\n .pipe(\r\n filter((assets) => !lastUpdateTimestamp || (lastUpdateTimestamp && assets.length > 0)), // don't publish update if no changes\r\n map(assetUpdates => this.refreshService.updateAssetCache(assetUpdates, location, lastUpdateTimestamp)),\r\n tap(assets => {\r\n this.refreshService.summaryAssetsUpdateTap(assets, countryCode, location, 'onproperty');\r\n })\r\n );\r\n }\r\n\r\n private keepPendingLocationUpdates(assetPendingUpdate: AssetInfo, localAsset: AssetInfo, location: string): boolean {\r\n let keepLocalUpdate = false;\r\n if (assetPendingUpdate.operations?.bayNumber !== localAsset.frontEndExclusive.locationUpdateStatus.toBayNumber) {\r\n if (assetPendingUpdate.equipment?.locationUpdateStatus) {\r\n if(assetPendingUpdate.equipment.locationUpdateStatus.statusTimestamp < localAsset.frontEndExclusive.locationUpdateStatus.statusTimestamp){\r\n if (assetPendingUpdate.equipment.locationUpdateStatus.bayOrgAbbvName === location\r\n && assetPendingUpdate.equipment.locationUpdateStatus.fromBayNumber === localAsset.frontEndExclusive.locationUpdateStatus.fromBayNumber\r\n && assetPendingUpdate.equipment.locationUpdateStatus.fromBayPosition === localAsset.frontEndExclusive.locationUpdateStatus.fromBayPosition\r\n && assetPendingUpdate.equipment.locationUpdateStatus.toBayNumber === localAsset.frontEndExclusive.locationUpdateStatus.toBayNumber\r\n && assetPendingUpdate.equipment.locationUpdateStatus.toBayPosition === localAsset.frontEndExclusive.locationUpdateStatus.toBayPosition) {\r\n if (assetPendingUpdate.equipment.locationUpdateStatus.updateStatus !== 'FAILED') {\r\n keepLocalUpdate = true;\r\n } else {\r\n if(assetPendingUpdate.equipment.locationUpdateStatus.updateStatus === 'FAILED') {\r\n console.log('Location Update request failed for ' + assetPendingUpdate.equipment.equipmentNumber + ' from bay ' +\r\n assetPendingUpdate.equipment.locationUpdateStatus.fromBayNumber + ' to bay '\r\n + assetPendingUpdate.equipment.locationUpdateStatus.toBayNumber);\r\n }\r\n }\r\n }\r\n } else {\r\n console.log('On-Property-Service: Will keep local Location Update for ' + assetPendingUpdate.equipment.equipmentNumber + ' Location Update Status is old');\r\n keepLocalUpdate = true;\r\n }\r\n } else {\r\n console.log('On-Property-Service: Will keep local Location Update for ' + assetPendingUpdate.equipment.equipmentNumber + ' Location Update Status is missing');\r\n keepLocalUpdate = true;\r\n }\r\n } else {\r\n console.log('On-Property-Service: ' + assetPendingUpdate.equipment.equipmentNumber + ' Location Update Bay matches current bay.');\r\n }\r\n if(keepLocalUpdate) {\r\n console.log('On-Property-Service: Will keep local Location Update for ' + assetPendingUpdate.equipment.equipmentNumber + ' from bay ' +\r\n localAsset.frontEndExclusive.locationUpdateStatus.fromBayNumber + ' to bay '\r\n + localAsset.frontEndExclusive.locationUpdateStatus.toBayNumber);\r\n } else {\r\n console.log('On-Property-Service: Will NOT keep local Location Update for ' + assetPendingUpdate.equipment.equipmentNumber + ' from bay ' +\r\n localAsset.frontEndExclusive.locationUpdateStatus.fromBayNumber + ' to bay '\r\n + localAsset.frontEndExclusive.locationUpdateStatus.toBayNumber);\r\n }\r\n return keepLocalUpdate;\r\n }\r\n}\r\n","import { Injectable } from '@angular/core';\r\nimport { HttpClient } from '@angular/common/http';\r\nimport { Observable } from 'rxjs';\r\n\r\nimport { Environment } from '../../../common/environment/environment';\r\nimport { EnvironmentService } from '../../environment/environment.service';\r\n\r\nimport { AssetSearchResult } from '../../../component/global-search-box/model/search-results/asset-search-result';\r\n\r\nimport { WebServiceHelperService } from '../web-service-helper';\r\n\r\n@Injectable({\r\n providedIn: 'root'\r\n})\r\nexport class StTdsService {\r\n private environment: Environment;\r\n constructor(\r\n private http: HttpClient,\r\n private environmentService: EnvironmentService,\r\n private webServiceHelperService: WebServiceHelperService\r\n ) {\r\n this.environmentService.environmentPromise.then(environment => {\r\n this.environment = environment;\r\n });\r\n }\r\n\r\n // fetch assets that match the given token\r\n public partialAssetSearch(partialAssetNumber: string): Observable {\r\n const httpOptions = this.webServiceHelperService.createRequestHeadersWithAuth(this.environment.stTdsServiceUsername, this.environment.stTdsServicePassword);\r\n return this.http.get(`${this.environment.apiGatewayOrigin}${this.environment.stTdsService}/search/${partialAssetNumber}`, httpOptions);\r\n }\r\n}\r\n","import { Injectable } from '@angular/core';\r\nimport { HttpClient } from '@angular/common/http';\r\nimport { Environment } from '../../../common/environment/environment';\r\nimport { EnvironmentService } from '../../environment/environment.service';\r\nimport { Metric } from '../../../model/metric/metric';\r\nimport { WebServiceHelperService } from '../web-service-helper';\r\nimport { take } from 'rxjs/operators';\r\nimport { detect } from 'detect-browser';\r\n\r\n@Injectable({\r\n providedIn: 'root'\r\n})\r\nexport class StUserProfileService {\r\n private environment: Environment;\r\n constructor(\r\n private http: HttpClient,\r\n private environmentService: EnvironmentService,\r\n private webServiceHelperService: WebServiceHelperService) {\r\n this.environmentService.environmentPromise.then(environment => {\r\n this.environment = environment;\r\n });\r\n }\r\n // post metric to st-user-profile-service\r\n postEvent(metric: Metric): void {\r\n const httpOptions = this.webServiceHelperService.createRequestHeadersWithAuth(this.environment.stUserProfileServiceUsername, this.environment.stUserProfileServicePassword);\r\n this.http.post(`${this.environment.apiGatewayOrigin}${this.environment.stUserProfileService}/stUser/event`, metric, httpOptions).pipe(take(1)).subscribe();\r\n }\r\n\r\n createDefaultMetric(userId: string): Metric {\r\n const browser = detect();\r\n const metric = new Metric();\r\n metric.appName = 'MOBILE';\r\n metric.appVersion = this.environment.version;\r\n metric.browser = browser.name;\r\n metric.deviceOS = browser.os;\r\n metric.userId = userId;\r\n return metric;\r\n }\r\n}\r\n","import { Injectable } from '@angular/core';\r\nimport { HttpClient } from '@angular/common/http';\r\nimport { Observable } from 'rxjs';\r\n\r\nimport { Environment } from '../../../common/environment/environment';\r\nimport { EnvironmentService } from '../../environment/environment.service';\r\n\r\nimport { LocationConfirmation } from '../../../model/reconciliation/location-confirmation';\r\n\r\nimport { WebServiceHelperService } from '../web-service-helper';\r\n\r\n@Injectable({\r\n providedIn: 'root'\r\n})\r\nexport class StYardCheckService {\r\n\r\n private environment: Environment;\r\n constructor(\r\n private http: HttpClient,\r\n private environmentService: EnvironmentService,\r\n private webServiceHelperService: WebServiceHelperService\r\n ) {\r\n this.environmentService.environmentPromise.then(environment => {\r\n this.environment = environment;\r\n });\r\n }\r\n\r\n // confirm status of asset or bay\r\n public locationConfimation(confimation: LocationConfirmation): Observable {\r\n const httpOptions = this.webServiceHelperService.createRequestHeadersWithAuth(this.environment.stYardCheckServiceUsername, this.environment.stYardCheckServicePassword);\r\n return this.http.post(`${this.environment.apiGatewayOrigin}${this.environment.stYardCheckService}/locationconfirmation/${confimation.countryCode}/${confimation.slicAbbreviation}/${confimation.bayNumber}`, confimation, httpOptions);\r\n }\r\n}\r\n","import { Injectable } from '@angular/core';\r\nimport { HttpClient } from '@angular/common/http';\r\nimport { Observable } from 'rxjs';\r\n\r\nimport { Location } from '../../../model/location/location';\r\nimport { GlobalSearch } from '../../../component/global-search-box/model/search-results/global-search';\r\n\r\nimport { Environment } from '../../../common/environment/environment';\r\nimport { EnvironmentService } from '../../environment/environment.service';\r\n\r\nimport { WebServiceHelperService } from '../web-service-helper';\r\n\r\n@Injectable({\r\n providedIn: 'root'\r\n})\r\nexport class TamGisService {\r\n locationsPromise: Promise;\r\n\r\n private locations?: Location[];\r\n private environment: Environment;\r\n\r\n constructor(\r\n private http: HttpClient,\r\n private environmentService: EnvironmentService,\r\n private webServiceHelperService: WebServiceHelperService\r\n ) {\r\n this.environmentService.environmentPromise.then(environment => {\r\n this.environment = environment;\r\n this.locationsPromise = this.getAllLocations();\r\n });\r\n }\r\n\r\n // Location Controller\r\n public getAllLocations(): Promise {\r\n return new Promise((resolve) => {\r\n if (this.locations && this.locations.length > 0) {\r\n resolve(this.locations);\r\n } else {\r\n const httpOptions = this.webServiceHelperService.createRequestHeadersWithAuth(this.environment.tamGisServiceUsername, this.environment.tamGisServicePassword);\r\n const result = this.http.get(`${this.environment.apiGatewayOrigin}${this.environment.tamGisService}/location/`, httpOptions);\r\n result.pipe().subscribe((locations) => {\r\n this.setLocations(locations);\r\n resolve(this.locations);\r\n }, (error) => {\r\n resolve([]);\r\n });\r\n }\r\n });\r\n }\r\n\r\n // Get the distance between a Bay and a GPS Location\r\n public getDistanceFromBayAndLocation(countryCode: string, location: string, bayNumber: string, lat: number, long: number): Observable {\r\n const httpOptions = this.webServiceHelperService.createRequestHeadersWithAuth(this.environment.tamGisServiceUsername, this.environment.tamGisServicePassword);\r\n return this.http.get(`${this.environment.apiGatewayOrigin}${this.environment.tamGisService}/giscalculator/${countryCode}/${location}/${bayNumber}/${lat}/${long}`, httpOptions);\r\n }\r\n\r\n public async getLocation(countryCode: string, slicAbbr: string): Promise {\r\n const locations = await this.getAllLocations();\r\n for (const location of locations) {\r\n if (location.countryCode === countryCode && location.slicAbbreviation === slicAbbr) {\r\n return location;\r\n }\r\n }\r\n }\r\n\r\n public getIndividualLocation(countryCode: string, slicAbbr: string): Observable {\r\n const httpOptions = this.webServiceHelperService.createRequestHeadersWithAuth(this.environment.tamGisServiceUsername, this.environment.tamGisServicePassword);\r\n return this.http.get(`${this.environment.apiGatewayOrigin}${this.environment.tamGisService}/location/${countryCode}/${slicAbbr}`, httpOptions);\r\n }\r\n\r\n // Get MapLarge location version key\r\n public getMapLargeVersionKey(countryCode: string, slicAbbreviation: string): Observable {\r\n const httpOptions = this.webServiceHelperService.createRequestHeadersWithAuth(this.environment.tamGisServiceUsername, this.environment.tamGisServicePassword);\r\n return this.http.get(`${this.environment.apiGatewayOrigin}${this.environment.tamGisService}/location/versionKey/${countryCode}/${slicAbbreviation}`, httpOptions);\r\n }\r\n\r\n private setLocations(locations: Location[]): void {\r\n locations = this.setGlobalSearchFields(locations);\r\n this.locations = locations;\r\n }\r\n\r\n private setGlobalSearchFields(locations: Location[]): Location[] {\r\n locations.forEach((location: Location, index: number, listLocations: Location[]) => {\r\n listLocations[index].globalSearch = new GlobalSearch();\r\n listLocations[index].globalSearch.name = `${location.countryCode} ${location.slic}-${location.slicAbbreviation}`;\r\n listLocations[index].globalSearch.group = `Locations`;\r\n listLocations[index].globalSearch.routerNavigationParameters.push(\r\n 'site',\r\n listLocations[index].countryCode,\r\n listLocations[index].slicAbbreviation,\r\n 'onproperty',\r\n );\r\n });\r\n return locations;\r\n }\r\n\r\n}\r\n","import { Injectable } from '@angular/core';\r\nimport { HttpClient } from '@angular/common/http';\r\nimport { Observable } from 'rxjs';\r\nimport { Environment } from '../../../common/environment/environment';\r\nimport { EnvironmentService } from '../../environment/environment.service';\r\nimport { UserAccessGateway } from '../../../model/user-profile/user-access-gateway';\r\nimport { UserAccessRequest } from '../../../model/user-profile/user-access-request';\r\nimport { WebServiceHelperService } from '../web-service-helper';\r\n\r\n@Injectable({\r\n providedIn: 'root'\r\n})\r\nexport class TamUserProfileService {\r\n private environment: Environment;\r\n constructor(\r\n private http: HttpClient,\r\n private environmentService: EnvironmentService,\r\n private webServiceHelperService: WebServiceHelperService) {\r\n this.environmentService.environmentPromise.then(environment => {\r\n this.environment = environment;\r\n });\r\n }\r\n // Retrieve user profile from msd\r\n fetchUserAcessFromMSD(userAccessRequest: UserAccessRequest): Observable {\r\n const httpOptions = this.webServiceHelperService.createRequestHeadersWithAuth(this.environment.tamUserProfileServiceUsername, this.environment.tamUserProfileServicePassword);\r\n return this.http.post(`${this.environment.apiGatewayOrigin}${this.environment.tamUserProfileService}/userprofileservice/fetchUserAcessFromMSD`, userAccessRequest, httpOptions);\r\n }\r\n}\r\n","import { Injectable } from '@angular/core';\r\nimport { HttpHeaders } from '@angular/common/http';\r\nimport { AuthService } from 'src/app/auth/auth.service';\r\nimport { EnvironmentService } from '../environment/environment.service';\r\nimport { Environment } from 'src/app/common/environment/environment';\r\n\r\n@Injectable({\r\n providedIn: 'root'\r\n})\r\nexport class WebServiceHelperService {\r\n\r\n private environment: Environment;\r\n\r\n constructor(private authService: AuthService,\r\n private environmentService: EnvironmentService) {\r\n this.environmentService.environmentPromise.then(environment => {\r\n this.environment = environment;\r\n });\r\n }\r\n\r\n public createRequestHeaders() {\r\n return {\r\n headers: new HttpHeaders({\r\n // eslint-disable-next-line @typescript-eslint/naming-convention\r\n 'Content-Type': 'application/json'\r\n })\r\n };\r\n }\r\n\r\n public createRequestHeadersWithAuth(username: string, password: string) {\r\n let authHeader;\r\n if (this.environment.useTokenAuth) {\r\n authHeader = 'Bearer ' + this.authService.getToken();\r\n }\r\n else {\r\n authHeader = 'Basic ' + btoa(`${username}:${password}`);\r\n }\r\n return {\r\n headers: new HttpHeaders({\r\n // eslint-disable-next-line @typescript-eslint/naming-convention\r\n 'Content-Type': 'application/json',\r\n // eslint-disable-next-line @typescript-eslint/naming-convention\r\n Authorization: authHeader\r\n })\r\n };\r\n }\r\n\r\n public createLastUpdateTimestampQuery(lastUpdateTimestamp: number): string {\r\n let query = '';\r\n if (lastUpdateTimestamp) {\r\n query = `?lastUpdateTimestamp=${lastUpdateTimestamp}`;\r\n }\r\n return query;\r\n }\r\n\r\n public postCallLengthValidation(requestBody: string): boolean {\r\n return requestBody.length <= 2000;\r\n }\r\n\r\n public postCallIsValidJson(requestBody: string): boolean {\r\n try {\r\n JSON.parse(requestBody);\r\n } catch (e) {\r\n return false;\r\n }\r\n return true;\r\n }\r\n\r\n public postCallInputValidation(requestBody: string): boolean {\r\n try {\r\n const requestBodyString = JSON.stringify(requestBody);\r\n if (this.postCallLengthValidation(requestBodyString) && this.postCallIsValidJson(requestBodyString)) {\r\n return true;\r\n }\r\n } catch (e) {\r\n return false;\r\n }\r\n return false;\r\n }\r\n}\r\n","export class WhatfixUser {\r\n roles: string[];\r\n userId: string;\r\n\r\n constructor() {\r\n this.roles = [];\r\n this.userId = '';\r\n }\r\n}\r\n","import { WhatfixUser } from './whatfix-user';\r\n\r\ndeclare global {\r\n interface Window {\r\n wf: Whatfix;\r\n }\r\n}\r\n\r\nexport class Whatfix {\r\n user: WhatfixUser;\r\n}\r\n","import { Injectable } from '@angular/core';\r\nimport { UserAccessGateway } from 'src/app/model/user-profile/user-access-gateway';\r\nimport { Whatfix } from './model/whatfix';\r\nimport { WhatfixUser } from './model/whatfix-user';\r\nimport { Location as StLocation } from '../../model/location/location';\r\n\r\n@Injectable({\r\n providedIn: 'root'\r\n})\r\nexport class WhatfixService {\r\n private whatfixUser: WhatfixUser;\r\n\r\n constructor() {\r\n this.whatfixUser = new WhatfixUser();\r\n window.wf = new Whatfix();\r\n }\r\n\r\n public setRoles(userAccessGateway: UserAccessGateway, location: StLocation) {\r\n const roles: string[] = [];\r\n if(userAccessGateway && userAccessGateway.customRoles){\r\n for (const userAccess of userAccessGateway.customRoles) {\r\n if (userAccess.role === 'SUPERUSER' || userAccess.corporate) {\r\n roles.push(userAccess.role);\r\n } else {\r\n if (userAccess.region && userAccess.region.includes(`${location.regionNumber.padStart(2, '0')}`)) {\r\n roles.push(userAccess.role);\r\n continue;\r\n }\r\n if (userAccess.district && userAccess.district.includes(`${location.districtNumber.padStart(2, '0')}`)) {\r\n roles.push(userAccess.role);\r\n continue;\r\n }\r\n if (userAccess.slic && userAccess.slic.includes(`${location.slicAbbreviation}-${location.slic}`)) {\r\n roles.push(userAccess.role);\r\n }\r\n }\r\n }\r\n }\r\n this.whatfixUser.roles = roles;\r\n window.wf.user = this.whatfixUser;\r\n }\r\n\r\n public setUserId(userId: string) {\r\n this.whatfixUser.userId = userId;\r\n window.wf.user = this.whatfixUser;\r\n }\r\n}\r\n","import { Environment } from '../app/common/environment/environment';\r\n\r\nexport const environment: Environment = {\r\n production: true,\r\n environmentType: null,\r\n useTokenAuth: true,\r\n apiGatewayOrigin: window.location.origin,\r\n\r\n stTdsService: '/api/ups-st-tds-service',\r\n stTdsServiceUsername: null,\r\n stTdsServicePassword: null,\r\n\r\n stOnProperty: '/api/ups-st-on-property-service',\r\n stOnPropertyServiceUsername: null,\r\n stOnPropertyServicePassword: null,\r\n\r\n tamGisService: '/api/ups-tam-gis-service',\r\n tamGisServiceUsername: null,\r\n tamGisServicePassword: null,\r\n\r\n stHfcsService: '/api/ups-st-hfcs-service',\r\n stHfcsServiceUsername: null,\r\n stHfcsServicePassword: null,\r\n\r\n stInTransitService: '/api/ups-st-in-transit-service',\r\n stInTransitServiceUsername: null,\r\n stInTransitServicePassword: null,\r\n\r\n stReconciliationService: '/api/ups-st-reconciliation-service',\r\n stReconciliationServiceUsername: null,\r\n stReconciliationServicePassword: null,\r\n\r\n stConfigurationService: '/api/ups-st-configuration-service',\r\n stConfigurationServiceUsername: null,\r\n stConfigurationServicePassword: null,\r\n\r\n tamUserProfileService: '/api/ups-tam-user-profile-service',\r\n tamUserProfileServiceUsername: null,\r\n tamUserProfileServicePassword: null,\r\n\r\n stUserProfileService: '/api/ups-st-user-profile-service',\r\n stUserProfileServiceUsername: null,\r\n stUserProfileServicePassword: null,\r\n\r\n stYardCheckService: '/api/ups-st-yard-check-service',\r\n stYardCheckServiceUsername: null,\r\n stYardCheckServicePassword: null,\r\n\r\n useMapLarge: true,\r\n mapLargeApiUrl: 'https://m-assets-tms.ams1907.com',\r\n\r\n whatfixUrl: '//whatfix.com/7cb974b0-3fc8-11eb-93df-22a91d6e4464/embed/embed.nocache.js',\r\n\r\n launchDarklySDKKey: '6490accc18b06e12ead75536',\r\n\r\n version: '0.0.1'\r\n};\r\n","import { enableProdMode } from '@angular/core';\r\nimport { platformBrowserDynamic } from '@angular/platform-browser-dynamic';\r\n\r\nimport { AppModule } from './app/app.module';\r\nimport { environment } from './environments/environment';\r\n\r\nif (environment.production) {\r\n enableProdMode();\r\n}\r\n\r\nplatformBrowserDynamic().bootstrapModule(AppModule)\r\n .catch(err => console.error(err));\r\n","var map = {\n\t\"./af\": 1074,\n\t\"./af-NA\": 9900,\n\t\"./af-NA.mjs\": 9900,\n\t\"./af.mjs\": 1074,\n\t\"./agq\": 42259,\n\t\"./agq.mjs\": 42259,\n\t\"./ak\": 27019,\n\t\"./ak.mjs\": 27019,\n\t\"./am\": 98934,\n\t\"./am.mjs\": 98934,\n\t\"./ar\": 18162,\n\t\"./ar-AE\": 95306,\n\t\"./ar-AE.mjs\": 95306,\n\t\"./ar-BH\": 12598,\n\t\"./ar-BH.mjs\": 12598,\n\t\"./ar-DJ\": 33183,\n\t\"./ar-DJ.mjs\": 33183,\n\t\"./ar-DZ\": 37818,\n\t\"./ar-DZ.mjs\": 37818,\n\t\"./ar-EG\": 87394,\n\t\"./ar-EG.mjs\": 87394,\n\t\"./ar-EH\": 9834,\n\t\"./ar-EH.mjs\": 9834,\n\t\"./ar-ER\": 17650,\n\t\"./ar-ER.mjs\": 17650,\n\t\"./ar-IL\": 80089,\n\t\"./ar-IL.mjs\": 80089,\n\t\"./ar-IQ\": 60676,\n\t\"./ar-IQ.mjs\": 60676,\n\t\"./ar-JO\": 73895,\n\t\"./ar-JO.mjs\": 73895,\n\t\"./ar-KM\": 98521,\n\t\"./ar-KM.mjs\": 98521,\n\t\"./ar-KW\": 6932,\n\t\"./ar-KW.mjs\": 6932,\n\t\"./ar-LB\": 6828,\n\t\"./ar-LB.mjs\": 6828,\n\t\"./ar-LY\": 57117,\n\t\"./ar-LY.mjs\": 57117,\n\t\"./ar-MA\": 32135,\n\t\"./ar-MA.mjs\": 32135,\n\t\"./ar-MR\": 4155,\n\t\"./ar-MR.mjs\": 4155,\n\t\"./ar-OM\": 77911,\n\t\"./ar-OM.mjs\": 77911,\n\t\"./ar-PS\": 94854,\n\t\"./ar-PS.mjs\": 94854,\n\t\"./ar-QA\": 50382,\n\t\"./ar-QA.mjs\": 50382,\n\t\"./ar-SA\": 86036,\n\t\"./ar-SA.mjs\": 86036,\n\t\"./ar-SD\": 49882,\n\t\"./ar-SD.mjs\": 49882,\n\t\"./ar-SO\": 32680,\n\t\"./ar-SO.mjs\": 32680,\n\t\"./ar-SS\": 97080,\n\t\"./ar-SS.mjs\": 97080,\n\t\"./ar-SY\": 64750,\n\t\"./ar-SY.mjs\": 64750,\n\t\"./ar-TD\": 81474,\n\t\"./ar-TD.mjs\": 81474,\n\t\"./ar-TN\": 52637,\n\t\"./ar-TN.mjs\": 52637,\n\t\"./ar-YE\": 55205,\n\t\"./ar-YE.mjs\": 55205,\n\t\"./ar.mjs\": 18162,\n\t\"./as\": 61309,\n\t\"./as.mjs\": 61309,\n\t\"./asa\": 83953,\n\t\"./asa.mjs\": 83953,\n\t\"./ast\": 3929,\n\t\"./ast.mjs\": 3929,\n\t\"./az\": 56125,\n\t\"./az-Cyrl\": 43875,\n\t\"./az-Cyrl.mjs\": 43875,\n\t\"./az-Latn\": 44616,\n\t\"./az-Latn.mjs\": 44616,\n\t\"./az.mjs\": 56125,\n\t\"./bas\": 70862,\n\t\"./bas.mjs\": 70862,\n\t\"./be\": 54307,\n\t\"./be-tarask\": 2699,\n\t\"./be-tarask.mjs\": 2699,\n\t\"./be.mjs\": 54307,\n\t\"./bem\": 75722,\n\t\"./bem.mjs\": 75722,\n\t\"./bez\": 46400,\n\t\"./bez.mjs\": 46400,\n\t\"./bg\": 12917,\n\t\"./bg.mjs\": 12917,\n\t\"./bm\": 33469,\n\t\"./bm.mjs\": 33469,\n\t\"./bn\": 45141,\n\t\"./bn-IN\": 29500,\n\t\"./bn-IN.mjs\": 29500,\n\t\"./bn.mjs\": 45141,\n\t\"./bo\": 52739,\n\t\"./bo-IN\": 84283,\n\t\"./bo-IN.mjs\": 84283,\n\t\"./bo.mjs\": 52739,\n\t\"./br\": 95882,\n\t\"./br.mjs\": 95882,\n\t\"./brx\": 7257,\n\t\"./brx.mjs\": 7257,\n\t\"./bs\": 44095,\n\t\"./bs-Cyrl\": 78556,\n\t\"./bs-Cyrl.mjs\": 78556,\n\t\"./bs-Latn\": 26631,\n\t\"./bs-Latn.mjs\": 26631,\n\t\"./bs.mjs\": 44095,\n\t\"./ca\": 69985,\n\t\"./ca-AD\": 88810,\n\t\"./ca-AD.mjs\": 88810,\n\t\"./ca-ES-valencia\": 60672,\n\t\"./ca-ES-valencia.mjs\": 60672,\n\t\"./ca-FR\": 96609,\n\t\"./ca-FR.mjs\": 96609,\n\t\"./ca-IT\": 55527,\n\t\"./ca-IT.mjs\": 55527,\n\t\"./ca.mjs\": 69985,\n\t\"./ccp\": 89233,\n\t\"./ccp-IN\": 49769,\n\t\"./ccp-IN.mjs\": 49769,\n\t\"./ccp.mjs\": 89233,\n\t\"./ce\": 9948,\n\t\"./ce.mjs\": 9948,\n\t\"./ceb\": 88557,\n\t\"./ceb.mjs\": 88557,\n\t\"./cgg\": 56733,\n\t\"./cgg.mjs\": 56733,\n\t\"./chr\": 99153,\n\t\"./chr.mjs\": 99153,\n\t\"./ckb\": 97734,\n\t\"./ckb-IR\": 94199,\n\t\"./ckb-IR.mjs\": 94199,\n\t\"./ckb.mjs\": 97734,\n\t\"./cs\": 1121,\n\t\"./cs.mjs\": 1121,\n\t\"./cy\": 34100,\n\t\"./cy.mjs\": 34100,\n\t\"./da\": 81857,\n\t\"./da-GL\": 93995,\n\t\"./da-GL.mjs\": 93995,\n\t\"./da.mjs\": 81857,\n\t\"./dav\": 90440,\n\t\"./dav.mjs\": 90440,\n\t\"./de\": 48855,\n\t\"./de-AT\": 53211,\n\t\"./de-AT.mjs\": 53211,\n\t\"./de-BE\": 33920,\n\t\"./de-BE.mjs\": 33920,\n\t\"./de-CH\": 52110,\n\t\"./de-CH.mjs\": 52110,\n\t\"./de-IT\": 76562,\n\t\"./de-IT.mjs\": 76562,\n\t\"./de-LI\": 19775,\n\t\"./de-LI.mjs\": 19775,\n\t\"./de-LU\": 49653,\n\t\"./de-LU.mjs\": 49653,\n\t\"./de.mjs\": 48855,\n\t\"./dje\": 96534,\n\t\"./dje.mjs\": 96534,\n\t\"./doi\": 64449,\n\t\"./doi.mjs\": 64449,\n\t\"./dsb\": 26606,\n\t\"./dsb.mjs\": 26606,\n\t\"./dua\": 53607,\n\t\"./dua.mjs\": 53607,\n\t\"./dyo\": 17911,\n\t\"./dyo.mjs\": 17911,\n\t\"./dz\": 72670,\n\t\"./dz.mjs\": 72670,\n\t\"./ebu\": 84486,\n\t\"./ebu.mjs\": 84486,\n\t\"./ee\": 36635,\n\t\"./ee-TG\": 3287,\n\t\"./ee-TG.mjs\": 3287,\n\t\"./ee.mjs\": 36635,\n\t\"./el\": 33402,\n\t\"./el-CY\": 2810,\n\t\"./el-CY.mjs\": 2810,\n\t\"./el.mjs\": 33402,\n\t\"./en\": 49137,\n\t\"./en-001\": 46451,\n\t\"./en-001.mjs\": 46451,\n\t\"./en-150\": 58599,\n\t\"./en-150.mjs\": 58599,\n\t\"./en-AE\": 40191,\n\t\"./en-AE.mjs\": 40191,\n\t\"./en-AG\": 9876,\n\t\"./en-AG.mjs\": 9876,\n\t\"./en-AI\": 4636,\n\t\"./en-AI.mjs\": 4636,\n\t\"./en-AS\": 9101,\n\t\"./en-AS.mjs\": 9101,\n\t\"./en-AT\": 89291,\n\t\"./en-AT.mjs\": 89291,\n\t\"./en-AU\": 69917,\n\t\"./en-AU.mjs\": 69917,\n\t\"./en-BB\": 70922,\n\t\"./en-BB.mjs\": 70922,\n\t\"./en-BE\": 99668,\n\t\"./en-BE.mjs\": 99668,\n\t\"./en-BI\": 92412,\n\t\"./en-BI.mjs\": 92412,\n\t\"./en-BM\": 79192,\n\t\"./en-BM.mjs\": 79192,\n\t\"./en-BS\": 20946,\n\t\"./en-BS.mjs\": 20946,\n\t\"./en-BW\": 76706,\n\t\"./en-BW.mjs\": 76706,\n\t\"./en-BZ\": 87770,\n\t\"./en-BZ.mjs\": 87770,\n\t\"./en-CA\": 18386,\n\t\"./en-CA.mjs\": 18386,\n\t\"./en-CC\": 72310,\n\t\"./en-CC.mjs\": 72310,\n\t\"./en-CH\": 20034,\n\t\"./en-CH.mjs\": 20034,\n\t\"./en-CK\": 75645,\n\t\"./en-CK.mjs\": 75645,\n\t\"./en-CM\": 2171,\n\t\"./en-CM.mjs\": 2171,\n\t\"./en-CX\": 14732,\n\t\"./en-CX.mjs\": 14732,\n\t\"./en-CY\": 23727,\n\t\"./en-CY.mjs\": 23727,\n\t\"./en-DE\": 52320,\n\t\"./en-DE.mjs\": 52320,\n\t\"./en-DG\": 59331,\n\t\"./en-DG.mjs\": 59331,\n\t\"./en-DK\": 80434,\n\t\"./en-DK.mjs\": 80434,\n\t\"./en-DM\": 54691,\n\t\"./en-DM.mjs\": 54691,\n\t\"./en-ER\": 98851,\n\t\"./en-ER.mjs\": 98851,\n\t\"./en-FI\": 70808,\n\t\"./en-FI.mjs\": 70808,\n\t\"./en-FJ\": 69088,\n\t\"./en-FJ.mjs\": 69088,\n\t\"./en-FK\": 32394,\n\t\"./en-FK.mjs\": 32394,\n\t\"./en-FM\": 46133,\n\t\"./en-FM.mjs\": 46133,\n\t\"./en-GB\": 7881,\n\t\"./en-GB.mjs\": 7881,\n\t\"./en-GD\": 92841,\n\t\"./en-GD.mjs\": 92841,\n\t\"./en-GG\": 42421,\n\t\"./en-GG.mjs\": 42421,\n\t\"./en-GH\": 34952,\n\t\"./en-GH.mjs\": 34952,\n\t\"./en-GI\": 80459,\n\t\"./en-GI.mjs\": 80459,\n\t\"./en-GM\": 658,\n\t\"./en-GM.mjs\": 658,\n\t\"./en-GU\": 48077,\n\t\"./en-GU.mjs\": 48077,\n\t\"./en-GY\": 93627,\n\t\"./en-GY.mjs\": 93627,\n\t\"./en-HK\": 36797,\n\t\"./en-HK.mjs\": 36797,\n\t\"./en-IE\": 40320,\n\t\"./en-IE.mjs\": 40320,\n\t\"./en-IL\": 47751,\n\t\"./en-IL.mjs\": 47751,\n\t\"./en-IM\": 28134,\n\t\"./en-IM.mjs\": 28134,\n\t\"./en-IN\": 13869,\n\t\"./en-IN.mjs\": 13869,\n\t\"./en-IO\": 53710,\n\t\"./en-IO.mjs\": 53710,\n\t\"./en-JE\": 32916,\n\t\"./en-JE.mjs\": 32916,\n\t\"./en-JM\": 1758,\n\t\"./en-JM.mjs\": 1758,\n\t\"./en-KE\": 66889,\n\t\"./en-KE.mjs\": 66889,\n\t\"./en-KI\": 20213,\n\t\"./en-KI.mjs\": 20213,\n\t\"./en-KN\": 57394,\n\t\"./en-KN.mjs\": 57394,\n\t\"./en-KY\": 6235,\n\t\"./en-KY.mjs\": 6235,\n\t\"./en-LC\": 37305,\n\t\"./en-LC.mjs\": 37305,\n\t\"./en-LR\": 42948,\n\t\"./en-LR.mjs\": 42948,\n\t\"./en-LS\": 89058,\n\t\"./en-LS.mjs\": 89058,\n\t\"./en-MG\": 82651,\n\t\"./en-MG.mjs\": 82651,\n\t\"./en-MH\": 79795,\n\t\"./en-MH.mjs\": 79795,\n\t\"./en-MO\": 37730,\n\t\"./en-MO.mjs\": 37730,\n\t\"./en-MP\": 58298,\n\t\"./en-MP.mjs\": 58298,\n\t\"./en-MS\": 51915,\n\t\"./en-MS.mjs\": 51915,\n\t\"./en-MT\": 19051,\n\t\"./en-MT.mjs\": 19051,\n\t\"./en-MU\": 88652,\n\t\"./en-MU.mjs\": 88652,\n\t\"./en-MV\": 47521,\n\t\"./en-MV.mjs\": 47521,\n\t\"./en-MW\": 25472,\n\t\"./en-MW.mjs\": 25472,\n\t\"./en-MY\": 64392,\n\t\"./en-MY.mjs\": 64392,\n\t\"./en-NA\": 22695,\n\t\"./en-NA.mjs\": 22695,\n\t\"./en-NF\": 88162,\n\t\"./en-NF.mjs\": 88162,\n\t\"./en-NG\": 30031,\n\t\"./en-NG.mjs\": 30031,\n\t\"./en-NL\": 36868,\n\t\"./en-NL.mjs\": 36868,\n\t\"./en-NR\": 81558,\n\t\"./en-NR.mjs\": 81558,\n\t\"./en-NU\": 42375,\n\t\"./en-NU.mjs\": 42375,\n\t\"./en-NZ\": 95708,\n\t\"./en-NZ.mjs\": 95708,\n\t\"./en-PG\": 40350,\n\t\"./en-PG.mjs\": 40350,\n\t\"./en-PH\": 33712,\n\t\"./en-PH.mjs\": 33712,\n\t\"./en-PK\": 93919,\n\t\"./en-PK.mjs\": 93919,\n\t\"./en-PN\": 33164,\n\t\"./en-PN.mjs\": 33164,\n\t\"./en-PR\": 78849,\n\t\"./en-PR.mjs\": 78849,\n\t\"./en-PW\": 10613,\n\t\"./en-PW.mjs\": 10613,\n\t\"./en-RW\": 51590,\n\t\"./en-RW.mjs\": 51590,\n\t\"./en-SB\": 15985,\n\t\"./en-SB.mjs\": 15985,\n\t\"./en-SC\": 19710,\n\t\"./en-SC.mjs\": 19710,\n\t\"./en-SD\": 89333,\n\t\"./en-SD.mjs\": 89333,\n\t\"./en-SE\": 47976,\n\t\"./en-SE.mjs\": 47976,\n\t\"./en-SG\": 39912,\n\t\"./en-SG.mjs\": 39912,\n\t\"./en-SH\": 35974,\n\t\"./en-SH.mjs\": 35974,\n\t\"./en-SI\": 76152,\n\t\"./en-SI.mjs\": 76152,\n\t\"./en-SL\": 25619,\n\t\"./en-SL.mjs\": 25619,\n\t\"./en-SS\": 6604,\n\t\"./en-SS.mjs\": 6604,\n\t\"./en-SX\": 57192,\n\t\"./en-SX.mjs\": 57192,\n\t\"./en-SZ\": 5509,\n\t\"./en-SZ.mjs\": 5509,\n\t\"./en-TC\": 66009,\n\t\"./en-TC.mjs\": 66009,\n\t\"./en-TK\": 70381,\n\t\"./en-TK.mjs\": 70381,\n\t\"./en-TO\": 65680,\n\t\"./en-TO.mjs\": 65680,\n\t\"./en-TT\": 83074,\n\t\"./en-TT.mjs\": 83074,\n\t\"./en-TV\": 34651,\n\t\"./en-TV.mjs\": 34651,\n\t\"./en-TZ\": 54505,\n\t\"./en-TZ.mjs\": 54505,\n\t\"./en-UG\": 78237,\n\t\"./en-UG.mjs\": 78237,\n\t\"./en-UM\": 25153,\n\t\"./en-UM.mjs\": 25153,\n\t\"./en-VC\": 89082,\n\t\"./en-VC.mjs\": 89082,\n\t\"./en-VG\": 49862,\n\t\"./en-VG.mjs\": 49862,\n\t\"./en-VI\": 20096,\n\t\"./en-VI.mjs\": 20096,\n\t\"./en-VU\": 32574,\n\t\"./en-VU.mjs\": 32574,\n\t\"./en-WS\": 75597,\n\t\"./en-WS.mjs\": 75597,\n\t\"./en-ZA\": 23575,\n\t\"./en-ZA.mjs\": 23575,\n\t\"./en-ZM\": 14759,\n\t\"./en-ZM.mjs\": 14759,\n\t\"./en-ZW\": 16612,\n\t\"./en-ZW.mjs\": 16612,\n\t\"./en.mjs\": 49137,\n\t\"./eo\": 26499,\n\t\"./eo.mjs\": 26499,\n\t\"./es\": 92403,\n\t\"./es-419\": 45242,\n\t\"./es-419.mjs\": 45242,\n\t\"./es-AR\": 64628,\n\t\"./es-AR.mjs\": 64628,\n\t\"./es-BO\": 14746,\n\t\"./es-BO.mjs\": 14746,\n\t\"./es-BR\": 53006,\n\t\"./es-BR.mjs\": 53006,\n\t\"./es-BZ\": 44845,\n\t\"./es-BZ.mjs\": 44845,\n\t\"./es-CL\": 57391,\n\t\"./es-CL.mjs\": 57391,\n\t\"./es-CO\": 86802,\n\t\"./es-CO.mjs\": 86802,\n\t\"./es-CR\": 6480,\n\t\"./es-CR.mjs\": 6480,\n\t\"./es-CU\": 94688,\n\t\"./es-CU.mjs\": 94688,\n\t\"./es-DO\": 89101,\n\t\"./es-DO.mjs\": 89101,\n\t\"./es-EA\": 53121,\n\t\"./es-EA.mjs\": 53121,\n\t\"./es-EC\": 12818,\n\t\"./es-EC.mjs\": 12818,\n\t\"./es-GQ\": 47338,\n\t\"./es-GQ.mjs\": 47338,\n\t\"./es-GT\": 78729,\n\t\"./es-GT.mjs\": 78729,\n\t\"./es-HN\": 44590,\n\t\"./es-HN.mjs\": 44590,\n\t\"./es-IC\": 74214,\n\t\"./es-IC.mjs\": 74214,\n\t\"./es-MX\": 29554,\n\t\"./es-MX.mjs\": 29554,\n\t\"./es-NI\": 69857,\n\t\"./es-NI.mjs\": 69857,\n\t\"./es-PA\": 26722,\n\t\"./es-PA.mjs\": 26722,\n\t\"./es-PE\": 34280,\n\t\"./es-PE.mjs\": 34280,\n\t\"./es-PH\": 65949,\n\t\"./es-PH.mjs\": 65949,\n\t\"./es-PR\": 9777,\n\t\"./es-PR.mjs\": 9777,\n\t\"./es-PY\": 1506,\n\t\"./es-PY.mjs\": 1506,\n\t\"./es-SV\": 74707,\n\t\"./es-SV.mjs\": 74707,\n\t\"./es-US\": 12080,\n\t\"./es-US.mjs\": 12080,\n\t\"./es-UY\": 64534,\n\t\"./es-UY.mjs\": 64534,\n\t\"./es-VE\": 41047,\n\t\"./es-VE.mjs\": 41047,\n\t\"./es.mjs\": 92403,\n\t\"./et\": 33055,\n\t\"./et.mjs\": 33055,\n\t\"./eu\": 39715,\n\t\"./eu.mjs\": 39715,\n\t\"./ewo\": 13096,\n\t\"./ewo.mjs\": 13096,\n\t\"./extra/af\": 12979,\n\t\"./extra/af-NA\": 8004,\n\t\"./extra/af-NA.mjs\": 8004,\n\t\"./extra/af.mjs\": 12979,\n\t\"./extra/agq\": 59972,\n\t\"./extra/agq.mjs\": 59972,\n\t\"./extra/ak\": 91962,\n\t\"./extra/ak.mjs\": 91962,\n\t\"./extra/am\": 91372,\n\t\"./extra/am.mjs\": 91372,\n\t\"./extra/ar\": 12005,\n\t\"./extra/ar-AE\": 45397,\n\t\"./extra/ar-AE.mjs\": 45397,\n\t\"./extra/ar-BH\": 93896,\n\t\"./extra/ar-BH.mjs\": 93896,\n\t\"./extra/ar-DJ\": 44872,\n\t\"./extra/ar-DJ.mjs\": 44872,\n\t\"./extra/ar-DZ\": 88141,\n\t\"./extra/ar-DZ.mjs\": 88141,\n\t\"./extra/ar-EG\": 11907,\n\t\"./extra/ar-EG.mjs\": 11907,\n\t\"./extra/ar-EH\": 15880,\n\t\"./extra/ar-EH.mjs\": 15880,\n\t\"./extra/ar-ER\": 35861,\n\t\"./extra/ar-ER.mjs\": 35861,\n\t\"./extra/ar-IL\": 30574,\n\t\"./extra/ar-IL.mjs\": 30574,\n\t\"./extra/ar-IQ\": 3308,\n\t\"./extra/ar-IQ.mjs\": 3308,\n\t\"./extra/ar-JO\": 68425,\n\t\"./extra/ar-JO.mjs\": 68425,\n\t\"./extra/ar-KM\": 64481,\n\t\"./extra/ar-KM.mjs\": 64481,\n\t\"./extra/ar-KW\": 70576,\n\t\"./extra/ar-KW.mjs\": 70576,\n\t\"./extra/ar-LB\": 57113,\n\t\"./extra/ar-LB.mjs\": 57113,\n\t\"./extra/ar-LY\": 46488,\n\t\"./extra/ar-LY.mjs\": 46488,\n\t\"./extra/ar-MA\": 73613,\n\t\"./extra/ar-MA.mjs\": 73613,\n\t\"./extra/ar-MR\": 99479,\n\t\"./extra/ar-MR.mjs\": 99479,\n\t\"./extra/ar-OM\": 1740,\n\t\"./extra/ar-OM.mjs\": 1740,\n\t\"./extra/ar-PS\": 90458,\n\t\"./extra/ar-PS.mjs\": 90458,\n\t\"./extra/ar-QA\": 73614,\n\t\"./extra/ar-QA.mjs\": 73614,\n\t\"./extra/ar-SA\": 52226,\n\t\"./extra/ar-SA.mjs\": 52226,\n\t\"./extra/ar-SD\": 51421,\n\t\"./extra/ar-SD.mjs\": 51421,\n\t\"./extra/ar-SO\": 7667,\n\t\"./extra/ar-SO.mjs\": 7667,\n\t\"./extra/ar-SS\": 63404,\n\t\"./extra/ar-SS.mjs\": 63404,\n\t\"./extra/ar-SY\": 92154,\n\t\"./extra/ar-SY.mjs\": 92154,\n\t\"./extra/ar-TD\": 22320,\n\t\"./extra/ar-TD.mjs\": 22320,\n\t\"./extra/ar-TN\": 29764,\n\t\"./extra/ar-TN.mjs\": 29764,\n\t\"./extra/ar-YE\": 26645,\n\t\"./extra/ar-YE.mjs\": 26645,\n\t\"./extra/ar.mjs\": 12005,\n\t\"./extra/as\": 36213,\n\t\"./extra/as.mjs\": 36213,\n\t\"./extra/asa\": 60560,\n\t\"./extra/asa.mjs\": 60560,\n\t\"./extra/ast\": 7654,\n\t\"./extra/ast.mjs\": 7654,\n\t\"./extra/az\": 59897,\n\t\"./extra/az-Cyrl\": 19117,\n\t\"./extra/az-Cyrl.mjs\": 19117,\n\t\"./extra/az-Latn\": 84415,\n\t\"./extra/az-Latn.mjs\": 84415,\n\t\"./extra/az.mjs\": 59897,\n\t\"./extra/bas\": 8184,\n\t\"./extra/bas.mjs\": 8184,\n\t\"./extra/be\": 23358,\n\t\"./extra/be-tarask\": 94954,\n\t\"./extra/be-tarask.mjs\": 94954,\n\t\"./extra/be.mjs\": 23358,\n\t\"./extra/bem\": 7531,\n\t\"./extra/bem.mjs\": 7531,\n\t\"./extra/bez\": 73585,\n\t\"./extra/bez.mjs\": 73585,\n\t\"./extra/bg\": 2526,\n\t\"./extra/bg.mjs\": 2526,\n\t\"./extra/bm\": 80129,\n\t\"./extra/bm.mjs\": 80129,\n\t\"./extra/bn\": 60551,\n\t\"./extra/bn-IN\": 38778,\n\t\"./extra/bn-IN.mjs\": 38778,\n\t\"./extra/bn.mjs\": 60551,\n\t\"./extra/bo\": 54598,\n\t\"./extra/bo-IN\": 16356,\n\t\"./extra/bo-IN.mjs\": 16356,\n\t\"./extra/bo.mjs\": 54598,\n\t\"./extra/br\": 54081,\n\t\"./extra/br.mjs\": 54081,\n\t\"./extra/brx\": 52027,\n\t\"./extra/brx.mjs\": 52027,\n\t\"./extra/bs\": 61274,\n\t\"./extra/bs-Cyrl\": 25576,\n\t\"./extra/bs-Cyrl.mjs\": 25576,\n\t\"./extra/bs-Latn\": 85532,\n\t\"./extra/bs-Latn.mjs\": 85532,\n\t\"./extra/bs.mjs\": 61274,\n\t\"./extra/ca\": 21894,\n\t\"./extra/ca-AD\": 30804,\n\t\"./extra/ca-AD.mjs\": 30804,\n\t\"./extra/ca-ES-valencia\": 62024,\n\t\"./extra/ca-ES-valencia.mjs\": 62024,\n\t\"./extra/ca-FR\": 85932,\n\t\"./extra/ca-FR.mjs\": 85932,\n\t\"./extra/ca-IT\": 49896,\n\t\"./extra/ca-IT.mjs\": 49896,\n\t\"./extra/ca.mjs\": 21894,\n\t\"./extra/ccp\": 10227,\n\t\"./extra/ccp-IN\": 40314,\n\t\"./extra/ccp-IN.mjs\": 40314,\n\t\"./extra/ccp.mjs\": 10227,\n\t\"./extra/ce\": 87342,\n\t\"./extra/ce.mjs\": 87342,\n\t\"./extra/ceb\": 32406,\n\t\"./extra/ceb.mjs\": 32406,\n\t\"./extra/cgg\": 36314,\n\t\"./extra/cgg.mjs\": 36314,\n\t\"./extra/chr\": 36589,\n\t\"./extra/chr.mjs\": 36589,\n\t\"./extra/ckb\": 5623,\n\t\"./extra/ckb-IR\": 7918,\n\t\"./extra/ckb-IR.mjs\": 7918,\n\t\"./extra/ckb.mjs\": 5623,\n\t\"./extra/cs\": 61598,\n\t\"./extra/cs.mjs\": 61598,\n\t\"./extra/cy\": 24064,\n\t\"./extra/cy.mjs\": 24064,\n\t\"./extra/da\": 95105,\n\t\"./extra/da-GL\": 3162,\n\t\"./extra/da-GL.mjs\": 3162,\n\t\"./extra/da.mjs\": 95105,\n\t\"./extra/dav\": 89825,\n\t\"./extra/dav.mjs\": 89825,\n\t\"./extra/de\": 7470,\n\t\"./extra/de-AT\": 47,\n\t\"./extra/de-AT.mjs\": 47,\n\t\"./extra/de-BE\": 89761,\n\t\"./extra/de-BE.mjs\": 89761,\n\t\"./extra/de-CH\": 48940,\n\t\"./extra/de-CH.mjs\": 48940,\n\t\"./extra/de-IT\": 37635,\n\t\"./extra/de-IT.mjs\": 37635,\n\t\"./extra/de-LI\": 33690,\n\t\"./extra/de-LI.mjs\": 33690,\n\t\"./extra/de-LU\": 34349,\n\t\"./extra/de-LU.mjs\": 34349,\n\t\"./extra/de.mjs\": 7470,\n\t\"./extra/dje\": 19828,\n\t\"./extra/dje.mjs\": 19828,\n\t\"./extra/doi\": 91950,\n\t\"./extra/doi.mjs\": 91950,\n\t\"./extra/dsb\": 84131,\n\t\"./extra/dsb.mjs\": 84131,\n\t\"./extra/dua\": 36194,\n\t\"./extra/dua.mjs\": 36194,\n\t\"./extra/dyo\": 35277,\n\t\"./extra/dyo.mjs\": 35277,\n\t\"./extra/dz\": 77817,\n\t\"./extra/dz.mjs\": 77817,\n\t\"./extra/ebu\": 79646,\n\t\"./extra/ebu.mjs\": 79646,\n\t\"./extra/ee\": 92203,\n\t\"./extra/ee-TG\": 21643,\n\t\"./extra/ee-TG.mjs\": 21643,\n\t\"./extra/ee.mjs\": 92203,\n\t\"./extra/el\": 19283,\n\t\"./extra/el-CY\": 66129,\n\t\"./extra/el-CY.mjs\": 66129,\n\t\"./extra/el.mjs\": 19283,\n\t\"./extra/en\": 82450,\n\t\"./extra/en-001\": 36275,\n\t\"./extra/en-001.mjs\": 36275,\n\t\"./extra/en-150\": 72502,\n\t\"./extra/en-150.mjs\": 72502,\n\t\"./extra/en-AE\": 88730,\n\t\"./extra/en-AE.mjs\": 88730,\n\t\"./extra/en-AG\": 17332,\n\t\"./extra/en-AG.mjs\": 17332,\n\t\"./extra/en-AI\": 85084,\n\t\"./extra/en-AI.mjs\": 85084,\n\t\"./extra/en-AS\": 17018,\n\t\"./extra/en-AS.mjs\": 17018,\n\t\"./extra/en-AT\": 20178,\n\t\"./extra/en-AT.mjs\": 20178,\n\t\"./extra/en-AU\": 10311,\n\t\"./extra/en-AU.mjs\": 10311,\n\t\"./extra/en-BB\": 21293,\n\t\"./extra/en-BB.mjs\": 21293,\n\t\"./extra/en-BE\": 96580,\n\t\"./extra/en-BE.mjs\": 96580,\n\t\"./extra/en-BI\": 78417,\n\t\"./extra/en-BI.mjs\": 78417,\n\t\"./extra/en-BM\": 48622,\n\t\"./extra/en-BM.mjs\": 48622,\n\t\"./extra/en-BS\": 10965,\n\t\"./extra/en-BS.mjs\": 10965,\n\t\"./extra/en-BW\": 11822,\n\t\"./extra/en-BW.mjs\": 11822,\n\t\"./extra/en-BZ\": 91650,\n\t\"./extra/en-BZ.mjs\": 91650,\n\t\"./extra/en-CA\": 38900,\n\t\"./extra/en-CA.mjs\": 38900,\n\t\"./extra/en-CC\": 75624,\n\t\"./extra/en-CC.mjs\": 75624,\n\t\"./extra/en-CH\": 73731,\n\t\"./extra/en-CH.mjs\": 73731,\n\t\"./extra/en-CK\": 56168,\n\t\"./extra/en-CK.mjs\": 56168,\n\t\"./extra/en-CM\": 50997,\n\t\"./extra/en-CM.mjs\": 50997,\n\t\"./extra/en-CX\": 68460,\n\t\"./extra/en-CX.mjs\": 68460,\n\t\"./extra/en-CY\": 73172,\n\t\"./extra/en-CY.mjs\": 73172,\n\t\"./extra/en-DE\": 13088,\n\t\"./extra/en-DE.mjs\": 13088,\n\t\"./extra/en-DG\": 63899,\n\t\"./extra/en-DG.mjs\": 63899,\n\t\"./extra/en-DK\": 26766,\n\t\"./extra/en-DK.mjs\": 26766,\n\t\"./extra/en-DM\": 32241,\n\t\"./extra/en-DM.mjs\": 32241,\n\t\"./extra/en-ER\": 34166,\n\t\"./extra/en-ER.mjs\": 34166,\n\t\"./extra/en-FI\": 83322,\n\t\"./extra/en-FI.mjs\": 83322,\n\t\"./extra/en-FJ\": 85884,\n\t\"./extra/en-FJ.mjs\": 85884,\n\t\"./extra/en-FK\": 91911,\n\t\"./extra/en-FK.mjs\": 91911,\n\t\"./extra/en-FM\": 1016,\n\t\"./extra/en-FM.mjs\": 1016,\n\t\"./extra/en-GB\": 95343,\n\t\"./extra/en-GB.mjs\": 95343,\n\t\"./extra/en-GD\": 35119,\n\t\"./extra/en-GD.mjs\": 35119,\n\t\"./extra/en-GG\": 31782,\n\t\"./extra/en-GG.mjs\": 31782,\n\t\"./extra/en-GH\": 51431,\n\t\"./extra/en-GH.mjs\": 51431,\n\t\"./extra/en-GI\": 90290,\n\t\"./extra/en-GI.mjs\": 90290,\n\t\"./extra/en-GM\": 1298,\n\t\"./extra/en-GM.mjs\": 1298,\n\t\"./extra/en-GU\": 85830,\n\t\"./extra/en-GU.mjs\": 85830,\n\t\"./extra/en-GY\": 85298,\n\t\"./extra/en-GY.mjs\": 85298,\n\t\"./extra/en-HK\": 78017,\n\t\"./extra/en-HK.mjs\": 78017,\n\t\"./extra/en-IE\": 32598,\n\t\"./extra/en-IE.mjs\": 32598,\n\t\"./extra/en-IL\": 17262,\n\t\"./extra/en-IL.mjs\": 17262,\n\t\"./extra/en-IM\": 22336,\n\t\"./extra/en-IM.mjs\": 22336,\n\t\"./extra/en-IN\": 71512,\n\t\"./extra/en-IN.mjs\": 71512,\n\t\"./extra/en-IO\": 522,\n\t\"./extra/en-IO.mjs\": 522,\n\t\"./extra/en-JE\": 95684,\n\t\"./extra/en-JE.mjs\": 95684,\n\t\"./extra/en-JM\": 25329,\n\t\"./extra/en-JM.mjs\": 25329,\n\t\"./extra/en-KE\": 91725,\n\t\"./extra/en-KE.mjs\": 91725,\n\t\"./extra/en-KI\": 81794,\n\t\"./extra/en-KI.mjs\": 81794,\n\t\"./extra/en-KN\": 24110,\n\t\"./extra/en-KN.mjs\": 24110,\n\t\"./extra/en-KY\": 47303,\n\t\"./extra/en-KY.mjs\": 47303,\n\t\"./extra/en-LC\": 26300,\n\t\"./extra/en-LC.mjs\": 26300,\n\t\"./extra/en-LR\": 37648,\n\t\"./extra/en-LR.mjs\": 37648,\n\t\"./extra/en-LS\": 93583,\n\t\"./extra/en-LS.mjs\": 93583,\n\t\"./extra/en-MG\": 95116,\n\t\"./extra/en-MG.mjs\": 95116,\n\t\"./extra/en-MH\": 68770,\n\t\"./extra/en-MH.mjs\": 68770,\n\t\"./extra/en-MO\": 85730,\n\t\"./extra/en-MO.mjs\": 85730,\n\t\"./extra/en-MP\": 12637,\n\t\"./extra/en-MP.mjs\": 12637,\n\t\"./extra/en-MS\": 31295,\n\t\"./extra/en-MS.mjs\": 31295,\n\t\"./extra/en-MT\": 9314,\n\t\"./extra/en-MT.mjs\": 9314,\n\t\"./extra/en-MU\": 6090,\n\t\"./extra/en-MU.mjs\": 6090,\n\t\"./extra/en-MV\": 9627,\n\t\"./extra/en-MV.mjs\": 9627,\n\t\"./extra/en-MW\": 3655,\n\t\"./extra/en-MW.mjs\": 3655,\n\t\"./extra/en-MY\": 14085,\n\t\"./extra/en-MY.mjs\": 14085,\n\t\"./extra/en-NA\": 21527,\n\t\"./extra/en-NA.mjs\": 21527,\n\t\"./extra/en-NF\": 49133,\n\t\"./extra/en-NF.mjs\": 49133,\n\t\"./extra/en-NG\": 54857,\n\t\"./extra/en-NG.mjs\": 54857,\n\t\"./extra/en-NL\": 83482,\n\t\"./extra/en-NL.mjs\": 83482,\n\t\"./extra/en-NR\": 31705,\n\t\"./extra/en-NR.mjs\": 31705,\n\t\"./extra/en-NU\": 90318,\n\t\"./extra/en-NU.mjs\": 90318,\n\t\"./extra/en-NZ\": 13078,\n\t\"./extra/en-NZ.mjs\": 13078,\n\t\"./extra/en-PG\": 13045,\n\t\"./extra/en-PG.mjs\": 13045,\n\t\"./extra/en-PH\": 78820,\n\t\"./extra/en-PH.mjs\": 78820,\n\t\"./extra/en-PK\": 70568,\n\t\"./extra/en-PK.mjs\": 70568,\n\t\"./extra/en-PN\": 16602,\n\t\"./extra/en-PN.mjs\": 16602,\n\t\"./extra/en-PR\": 33989,\n\t\"./extra/en-PR.mjs\": 33989,\n\t\"./extra/en-PW\": 80715,\n\t\"./extra/en-PW.mjs\": 80715,\n\t\"./extra/en-RW\": 39436,\n\t\"./extra/en-RW.mjs\": 39436,\n\t\"./extra/en-SB\": 16111,\n\t\"./extra/en-SB.mjs\": 16111,\n\t\"./extra/en-SC\": 15206,\n\t\"./extra/en-SC.mjs\": 15206,\n\t\"./extra/en-SD\": 48549,\n\t\"./extra/en-SD.mjs\": 48549,\n\t\"./extra/en-SE\": 66353,\n\t\"./extra/en-SE.mjs\": 66353,\n\t\"./extra/en-SG\": 52264,\n\t\"./extra/en-SG.mjs\": 52264,\n\t\"./extra/en-SH\": 52313,\n\t\"./extra/en-SH.mjs\": 52313,\n\t\"./extra/en-SI\": 87509,\n\t\"./extra/en-SI.mjs\": 87509,\n\t\"./extra/en-SL\": 23203,\n\t\"./extra/en-SL.mjs\": 23203,\n\t\"./extra/en-SS\": 26071,\n\t\"./extra/en-SS.mjs\": 26071,\n\t\"./extra/en-SX\": 21816,\n\t\"./extra/en-SX.mjs\": 21816,\n\t\"./extra/en-SZ\": 38647,\n\t\"./extra/en-SZ.mjs\": 38647,\n\t\"./extra/en-TC\": 12691,\n\t\"./extra/en-TC.mjs\": 12691,\n\t\"./extra/en-TK\": 53403,\n\t\"./extra/en-TK.mjs\": 53403,\n\t\"./extra/en-TO\": 17770,\n\t\"./extra/en-TO.mjs\": 17770,\n\t\"./extra/en-TT\": 1164,\n\t\"./extra/en-TT.mjs\": 1164,\n\t\"./extra/en-TV\": 60088,\n\t\"./extra/en-TV.mjs\": 60088,\n\t\"./extra/en-TZ\": 21587,\n\t\"./extra/en-TZ.mjs\": 21587,\n\t\"./extra/en-UG\": 59213,\n\t\"./extra/en-UG.mjs\": 59213,\n\t\"./extra/en-UM\": 65826,\n\t\"./extra/en-UM.mjs\": 65826,\n\t\"./extra/en-VC\": 36312,\n\t\"./extra/en-VC.mjs\": 36312,\n\t\"./extra/en-VG\": 56169,\n\t\"./extra/en-VG.mjs\": 56169,\n\t\"./extra/en-VI\": 46857,\n\t\"./extra/en-VI.mjs\": 46857,\n\t\"./extra/en-VU\": 66952,\n\t\"./extra/en-VU.mjs\": 66952,\n\t\"./extra/en-WS\": 20775,\n\t\"./extra/en-WS.mjs\": 20775,\n\t\"./extra/en-ZA\": 45394,\n\t\"./extra/en-ZA.mjs\": 45394,\n\t\"./extra/en-ZM\": 17750,\n\t\"./extra/en-ZM.mjs\": 17750,\n\t\"./extra/en-ZW\": 52955,\n\t\"./extra/en-ZW.mjs\": 52955,\n\t\"./extra/en.mjs\": 82450,\n\t\"./extra/eo\": 81851,\n\t\"./extra/eo.mjs\": 81851,\n\t\"./extra/es\": 53835,\n\t\"./extra/es-419\": 13395,\n\t\"./extra/es-419.mjs\": 13395,\n\t\"./extra/es-AR\": 29405,\n\t\"./extra/es-AR.mjs\": 29405,\n\t\"./extra/es-BO\": 48648,\n\t\"./extra/es-BO.mjs\": 48648,\n\t\"./extra/es-BR\": 20559,\n\t\"./extra/es-BR.mjs\": 20559,\n\t\"./extra/es-BZ\": 11937,\n\t\"./extra/es-BZ.mjs\": 11937,\n\t\"./extra/es-CL\": 60227,\n\t\"./extra/es-CL.mjs\": 60227,\n\t\"./extra/es-CO\": 87908,\n\t\"./extra/es-CO.mjs\": 87908,\n\t\"./extra/es-CR\": 26198,\n\t\"./extra/es-CR.mjs\": 26198,\n\t\"./extra/es-CU\": 77567,\n\t\"./extra/es-CU.mjs\": 77567,\n\t\"./extra/es-DO\": 67033,\n\t\"./extra/es-DO.mjs\": 67033,\n\t\"./extra/es-EA\": 13531,\n\t\"./extra/es-EA.mjs\": 13531,\n\t\"./extra/es-EC\": 42037,\n\t\"./extra/es-EC.mjs\": 42037,\n\t\"./extra/es-GQ\": 94839,\n\t\"./extra/es-GQ.mjs\": 94839,\n\t\"./extra/es-GT\": 95831,\n\t\"./extra/es-GT.mjs\": 95831,\n\t\"./extra/es-HN\": 88953,\n\t\"./extra/es-HN.mjs\": 88953,\n\t\"./extra/es-IC\": 45946,\n\t\"./extra/es-IC.mjs\": 45946,\n\t\"./extra/es-MX\": 41954,\n\t\"./extra/es-MX.mjs\": 41954,\n\t\"./extra/es-NI\": 33692,\n\t\"./extra/es-NI.mjs\": 33692,\n\t\"./extra/es-PA\": 94478,\n\t\"./extra/es-PA.mjs\": 94478,\n\t\"./extra/es-PE\": 84001,\n\t\"./extra/es-PE.mjs\": 84001,\n\t\"./extra/es-PH\": 45704,\n\t\"./extra/es-PH.mjs\": 45704,\n\t\"./extra/es-PR\": 31437,\n\t\"./extra/es-PR.mjs\": 31437,\n\t\"./extra/es-PY\": 49422,\n\t\"./extra/es-PY.mjs\": 49422,\n\t\"./extra/es-SV\": 39446,\n\t\"./extra/es-SV.mjs\": 39446,\n\t\"./extra/es-US\": 7820,\n\t\"./extra/es-US.mjs\": 7820,\n\t\"./extra/es-UY\": 50871,\n\t\"./extra/es-UY.mjs\": 50871,\n\t\"./extra/es-VE\": 40046,\n\t\"./extra/es-VE.mjs\": 40046,\n\t\"./extra/es.mjs\": 53835,\n\t\"./extra/et\": 69731,\n\t\"./extra/et.mjs\": 69731,\n\t\"./extra/eu\": 71418,\n\t\"./extra/eu.mjs\": 71418,\n\t\"./extra/ewo\": 3959,\n\t\"./extra/ewo.mjs\": 3959,\n\t\"./extra/fa\": 61574,\n\t\"./extra/fa-AF\": 17654,\n\t\"./extra/fa-AF.mjs\": 17654,\n\t\"./extra/fa.mjs\": 61574,\n\t\"./extra/ff\": 24749,\n\t\"./extra/ff-Adlm\": 17811,\n\t\"./extra/ff-Adlm-BF\": 77262,\n\t\"./extra/ff-Adlm-BF.mjs\": 77262,\n\t\"./extra/ff-Adlm-CM\": 54394,\n\t\"./extra/ff-Adlm-CM.mjs\": 54394,\n\t\"./extra/ff-Adlm-GH\": 57187,\n\t\"./extra/ff-Adlm-GH.mjs\": 57187,\n\t\"./extra/ff-Adlm-GM\": 96390,\n\t\"./extra/ff-Adlm-GM.mjs\": 96390,\n\t\"./extra/ff-Adlm-GW\": 53019,\n\t\"./extra/ff-Adlm-GW.mjs\": 53019,\n\t\"./extra/ff-Adlm-LR\": 38866,\n\t\"./extra/ff-Adlm-LR.mjs\": 38866,\n\t\"./extra/ff-Adlm-MR\": 73561,\n\t\"./extra/ff-Adlm-MR.mjs\": 73561,\n\t\"./extra/ff-Adlm-NE\": 33760,\n\t\"./extra/ff-Adlm-NE.mjs\": 33760,\n\t\"./extra/ff-Adlm-NG\": 8010,\n\t\"./extra/ff-Adlm-NG.mjs\": 8010,\n\t\"./extra/ff-Adlm-SL\": 12001,\n\t\"./extra/ff-Adlm-SL.mjs\": 12001,\n\t\"./extra/ff-Adlm-SN\": 5865,\n\t\"./extra/ff-Adlm-SN.mjs\": 5865,\n\t\"./extra/ff-Adlm.mjs\": 17811,\n\t\"./extra/ff-CM\": 91360,\n\t\"./extra/ff-CM.mjs\": 91360,\n\t\"./extra/ff-GN\": 64621,\n\t\"./extra/ff-GN.mjs\": 64621,\n\t\"./extra/ff-Latn\": 50034,\n\t\"./extra/ff-Latn-BF\": 31058,\n\t\"./extra/ff-Latn-BF.mjs\": 31058,\n\t\"./extra/ff-Latn-CM\": 49831,\n\t\"./extra/ff-Latn-CM.mjs\": 49831,\n\t\"./extra/ff-Latn-GH\": 44898,\n\t\"./extra/ff-Latn-GH.mjs\": 44898,\n\t\"./extra/ff-Latn-GM\": 53058,\n\t\"./extra/ff-Latn-GM.mjs\": 53058,\n\t\"./extra/ff-Latn-GN\": 76246,\n\t\"./extra/ff-Latn-GN.mjs\": 76246,\n\t\"./extra/ff-Latn-GW\": 74401,\n\t\"./extra/ff-Latn-GW.mjs\": 74401,\n\t\"./extra/ff-Latn-LR\": 7417,\n\t\"./extra/ff-Latn-LR.mjs\": 7417,\n\t\"./extra/ff-Latn-MR\": 91274,\n\t\"./extra/ff-Latn-MR.mjs\": 91274,\n\t\"./extra/ff-Latn-NE\": 82094,\n\t\"./extra/ff-Latn-NE.mjs\": 82094,\n\t\"./extra/ff-Latn-NG\": 5159,\n\t\"./extra/ff-Latn-NG.mjs\": 5159,\n\t\"./extra/ff-Latn-SL\": 89163,\n\t\"./extra/ff-Latn-SL.mjs\": 89163,\n\t\"./extra/ff-Latn.mjs\": 50034,\n\t\"./extra/ff-MR\": 80974,\n\t\"./extra/ff-MR.mjs\": 80974,\n\t\"./extra/ff.mjs\": 24749,\n\t\"./extra/fi\": 62429,\n\t\"./extra/fi.mjs\": 62429,\n\t\"./extra/fil\": 1784,\n\t\"./extra/fil.mjs\": 1784,\n\t\"./extra/fo\": 67131,\n\t\"./extra/fo-DK\": 81103,\n\t\"./extra/fo-DK.mjs\": 81103,\n\t\"./extra/fo.mjs\": 67131,\n\t\"./extra/fr\": 69744,\n\t\"./extra/fr-BE\": 88123,\n\t\"./extra/fr-BE.mjs\": 88123,\n\t\"./extra/fr-BF\": 61437,\n\t\"./extra/fr-BF.mjs\": 61437,\n\t\"./extra/fr-BI\": 39646,\n\t\"./extra/fr-BI.mjs\": 39646,\n\t\"./extra/fr-BJ\": 33940,\n\t\"./extra/fr-BJ.mjs\": 33940,\n\t\"./extra/fr-BL\": 87541,\n\t\"./extra/fr-BL.mjs\": 87541,\n\t\"./extra/fr-CA\": 40331,\n\t\"./extra/fr-CA.mjs\": 40331,\n\t\"./extra/fr-CD\": 53598,\n\t\"./extra/fr-CD.mjs\": 53598,\n\t\"./extra/fr-CF\": 36621,\n\t\"./extra/fr-CF.mjs\": 36621,\n\t\"./extra/fr-CG\": 40185,\n\t\"./extra/fr-CG.mjs\": 40185,\n\t\"./extra/fr-CH\": 7369,\n\t\"./extra/fr-CH.mjs\": 7369,\n\t\"./extra/fr-CI\": 42849,\n\t\"./extra/fr-CI.mjs\": 42849,\n\t\"./extra/fr-CM\": 24249,\n\t\"./extra/fr-CM.mjs\": 24249,\n\t\"./extra/fr-DJ\": 18713,\n\t\"./extra/fr-DJ.mjs\": 18713,\n\t\"./extra/fr-DZ\": 92930,\n\t\"./extra/fr-DZ.mjs\": 92930,\n\t\"./extra/fr-GA\": 43013,\n\t\"./extra/fr-GA.mjs\": 43013,\n\t\"./extra/fr-GF\": 38565,\n\t\"./extra/fr-GF.mjs\": 38565,\n\t\"./extra/fr-GN\": 82941,\n\t\"./extra/fr-GN.mjs\": 82941,\n\t\"./extra/fr-GP\": 46422,\n\t\"./extra/fr-GP.mjs\": 46422,\n\t\"./extra/fr-GQ\": 60249,\n\t\"./extra/fr-GQ.mjs\": 60249,\n\t\"./extra/fr-HT\": 40765,\n\t\"./extra/fr-HT.mjs\": 40765,\n\t\"./extra/fr-KM\": 98707,\n\t\"./extra/fr-KM.mjs\": 98707,\n\t\"./extra/fr-LU\": 44604,\n\t\"./extra/fr-LU.mjs\": 44604,\n\t\"./extra/fr-MA\": 22264,\n\t\"./extra/fr-MA.mjs\": 22264,\n\t\"./extra/fr-MC\": 47860,\n\t\"./extra/fr-MC.mjs\": 47860,\n\t\"./extra/fr-MF\": 13325,\n\t\"./extra/fr-MF.mjs\": 13325,\n\t\"./extra/fr-MG\": 39315,\n\t\"./extra/fr-MG.mjs\": 39315,\n\t\"./extra/fr-ML\": 34162,\n\t\"./extra/fr-ML.mjs\": 34162,\n\t\"./extra/fr-MQ\": 26278,\n\t\"./extra/fr-MQ.mjs\": 26278,\n\t\"./extra/fr-MR\": 12339,\n\t\"./extra/fr-MR.mjs\": 12339,\n\t\"./extra/fr-MU\": 1602,\n\t\"./extra/fr-MU.mjs\": 1602,\n\t\"./extra/fr-NC\": 2968,\n\t\"./extra/fr-NC.mjs\": 2968,\n\t\"./extra/fr-NE\": 65426,\n\t\"./extra/fr-NE.mjs\": 65426,\n\t\"./extra/fr-PF\": 48858,\n\t\"./extra/fr-PF.mjs\": 48858,\n\t\"./extra/fr-PM\": 88603,\n\t\"./extra/fr-PM.mjs\": 88603,\n\t\"./extra/fr-RE\": 91750,\n\t\"./extra/fr-RE.mjs\": 91750,\n\t\"./extra/fr-RW\": 12387,\n\t\"./extra/fr-RW.mjs\": 12387,\n\t\"./extra/fr-SC\": 61094,\n\t\"./extra/fr-SC.mjs\": 61094,\n\t\"./extra/fr-SN\": 92050,\n\t\"./extra/fr-SN.mjs\": 92050,\n\t\"./extra/fr-SY\": 43566,\n\t\"./extra/fr-SY.mjs\": 43566,\n\t\"./extra/fr-TD\": 60464,\n\t\"./extra/fr-TD.mjs\": 60464,\n\t\"./extra/fr-TG\": 96319,\n\t\"./extra/fr-TG.mjs\": 96319,\n\t\"./extra/fr-TN\": 83809,\n\t\"./extra/fr-TN.mjs\": 83809,\n\t\"./extra/fr-VU\": 93032,\n\t\"./extra/fr-VU.mjs\": 93032,\n\t\"./extra/fr-WF\": 50789,\n\t\"./extra/fr-WF.mjs\": 50789,\n\t\"./extra/fr-YT\": 4386,\n\t\"./extra/fr-YT.mjs\": 4386,\n\t\"./extra/fr.mjs\": 69744,\n\t\"./extra/fur\": 91489,\n\t\"./extra/fur.mjs\": 91489,\n\t\"./extra/fy\": 4376,\n\t\"./extra/fy.mjs\": 4376,\n\t\"./extra/ga\": 54346,\n\t\"./extra/ga-GB\": 63610,\n\t\"./extra/ga-GB.mjs\": 63610,\n\t\"./extra/ga.mjs\": 54346,\n\t\"./extra/gd\": 54803,\n\t\"./extra/gd.mjs\": 54803,\n\t\"./extra/gl\": 85312,\n\t\"./extra/gl.mjs\": 85312,\n\t\"./extra/gsw\": 41893,\n\t\"./extra/gsw-FR\": 57451,\n\t\"./extra/gsw-FR.mjs\": 57451,\n\t\"./extra/gsw-LI\": 67849,\n\t\"./extra/gsw-LI.mjs\": 67849,\n\t\"./extra/gsw.mjs\": 41893,\n\t\"./extra/gu\": 20828,\n\t\"./extra/gu.mjs\": 20828,\n\t\"./extra/guz\": 73942,\n\t\"./extra/guz.mjs\": 73942,\n\t\"./extra/gv\": 94483,\n\t\"./extra/gv.mjs\": 94483,\n\t\"./extra/ha\": 25372,\n\t\"./extra/ha-GH\": 48271,\n\t\"./extra/ha-GH.mjs\": 48271,\n\t\"./extra/ha-NE\": 66589,\n\t\"./extra/ha-NE.mjs\": 66589,\n\t\"./extra/ha.mjs\": 25372,\n\t\"./extra/haw\": 15672,\n\t\"./extra/haw.mjs\": 15672,\n\t\"./extra/he\": 22038,\n\t\"./extra/he.mjs\": 22038,\n\t\"./extra/hi\": 17965,\n\t\"./extra/hi-Latn\": 75338,\n\t\"./extra/hi-Latn.mjs\": 75338,\n\t\"./extra/hi.mjs\": 17965,\n\t\"./extra/hr\": 57763,\n\t\"./extra/hr-BA\": 11187,\n\t\"./extra/hr-BA.mjs\": 11187,\n\t\"./extra/hr.mjs\": 57763,\n\t\"./extra/hsb\": 56412,\n\t\"./extra/hsb.mjs\": 56412,\n\t\"./extra/hu\": 45933,\n\t\"./extra/hu.mjs\": 45933,\n\t\"./extra/hy\": 85142,\n\t\"./extra/hy.mjs\": 85142,\n\t\"./extra/ia\": 31189,\n\t\"./extra/ia.mjs\": 31189,\n\t\"./extra/id\": 66929,\n\t\"./extra/id.mjs\": 66929,\n\t\"./extra/ig\": 28440,\n\t\"./extra/ig.mjs\": 28440,\n\t\"./extra/ii\": 92647,\n\t\"./extra/ii.mjs\": 92647,\n\t\"./extra/is\": 92346,\n\t\"./extra/is.mjs\": 92346,\n\t\"./extra/it\": 23282,\n\t\"./extra/it-CH\": 41074,\n\t\"./extra/it-CH.mjs\": 41074,\n\t\"./extra/it-SM\": 62809,\n\t\"./extra/it-SM.mjs\": 62809,\n\t\"./extra/it-VA\": 49155,\n\t\"./extra/it-VA.mjs\": 49155,\n\t\"./extra/it.mjs\": 23282,\n\t\"./extra/ja\": 60842,\n\t\"./extra/ja.mjs\": 60842,\n\t\"./extra/jgo\": 56951,\n\t\"./extra/jgo.mjs\": 56951,\n\t\"./extra/jmc\": 95845,\n\t\"./extra/jmc.mjs\": 95845,\n\t\"./extra/jv\": 45459,\n\t\"./extra/jv.mjs\": 45459,\n\t\"./extra/ka\": 29488,\n\t\"./extra/ka.mjs\": 29488,\n\t\"./extra/kab\": 87960,\n\t\"./extra/kab.mjs\": 87960,\n\t\"./extra/kam\": 6593,\n\t\"./extra/kam.mjs\": 6593,\n\t\"./extra/kde\": 26961,\n\t\"./extra/kde.mjs\": 26961,\n\t\"./extra/kea\": 38571,\n\t\"./extra/kea.mjs\": 38571,\n\t\"./extra/kgp\": 36303,\n\t\"./extra/kgp.mjs\": 36303,\n\t\"./extra/khq\": 93078,\n\t\"./extra/khq.mjs\": 93078,\n\t\"./extra/ki\": 665,\n\t\"./extra/ki.mjs\": 665,\n\t\"./extra/kk\": 1102,\n\t\"./extra/kk.mjs\": 1102,\n\t\"./extra/kkj\": 20518,\n\t\"./extra/kkj.mjs\": 20518,\n\t\"./extra/kl\": 57745,\n\t\"./extra/kl.mjs\": 57745,\n\t\"./extra/kln\": 82035,\n\t\"./extra/kln.mjs\": 82035,\n\t\"./extra/km\": 61316,\n\t\"./extra/km.mjs\": 61316,\n\t\"./extra/kn\": 70007,\n\t\"./extra/kn.mjs\": 70007,\n\t\"./extra/ko\": 58728,\n\t\"./extra/ko-KP\": 96310,\n\t\"./extra/ko-KP.mjs\": 96310,\n\t\"./extra/ko.mjs\": 58728,\n\t\"./extra/kok\": 23114,\n\t\"./extra/kok.mjs\": 23114,\n\t\"./extra/ks\": 19705,\n\t\"./extra/ks-Arab\": 54504,\n\t\"./extra/ks-Arab.mjs\": 54504,\n\t\"./extra/ks-Deva\": 34019,\n\t\"./extra/ks-Deva.mjs\": 34019,\n\t\"./extra/ks.mjs\": 19705,\n\t\"./extra/ksb\": 21974,\n\t\"./extra/ksb.mjs\": 21974,\n\t\"./extra/ksf\": 52603,\n\t\"./extra/ksf.mjs\": 52603,\n\t\"./extra/ksh\": 78967,\n\t\"./extra/ksh.mjs\": 78967,\n\t\"./extra/ku\": 44021,\n\t\"./extra/ku.mjs\": 44021,\n\t\"./extra/kw\": 56417,\n\t\"./extra/kw.mjs\": 56417,\n\t\"./extra/ky\": 97575,\n\t\"./extra/ky.mjs\": 97575,\n\t\"./extra/lag\": 4772,\n\t\"./extra/lag.mjs\": 4772,\n\t\"./extra/lb\": 13678,\n\t\"./extra/lb.mjs\": 13678,\n\t\"./extra/lg\": 89534,\n\t\"./extra/lg.mjs\": 89534,\n\t\"./extra/lkt\": 14868,\n\t\"./extra/lkt.mjs\": 14868,\n\t\"./extra/ln\": 44280,\n\t\"./extra/ln-AO\": 51294,\n\t\"./extra/ln-AO.mjs\": 51294,\n\t\"./extra/ln-CF\": 17678,\n\t\"./extra/ln-CF.mjs\": 17678,\n\t\"./extra/ln-CG\": 84181,\n\t\"./extra/ln-CG.mjs\": 84181,\n\t\"./extra/ln.mjs\": 44280,\n\t\"./extra/lo\": 98452,\n\t\"./extra/lo.mjs\": 98452,\n\t\"./extra/lrc\": 54047,\n\t\"./extra/lrc-IQ\": 43355,\n\t\"./extra/lrc-IQ.mjs\": 43355,\n\t\"./extra/lrc.mjs\": 54047,\n\t\"./extra/lt\": 23374,\n\t\"./extra/lt.mjs\": 23374,\n\t\"./extra/lu\": 71344,\n\t\"./extra/lu.mjs\": 71344,\n\t\"./extra/luo\": 26373,\n\t\"./extra/luo.mjs\": 26373,\n\t\"./extra/luy\": 44912,\n\t\"./extra/luy.mjs\": 44912,\n\t\"./extra/lv\": 13058,\n\t\"./extra/lv.mjs\": 13058,\n\t\"./extra/mai\": 83533,\n\t\"./extra/mai.mjs\": 83533,\n\t\"./extra/mas\": 8611,\n\t\"./extra/mas-TZ\": 92920,\n\t\"./extra/mas-TZ.mjs\": 92920,\n\t\"./extra/mas.mjs\": 8611,\n\t\"./extra/mer\": 35048,\n\t\"./extra/mer.mjs\": 35048,\n\t\"./extra/mfe\": 63188,\n\t\"./extra/mfe.mjs\": 63188,\n\t\"./extra/mg\": 16405,\n\t\"./extra/mg.mjs\": 16405,\n\t\"./extra/mgh\": 57440,\n\t\"./extra/mgh.mjs\": 57440,\n\t\"./extra/mgo\": 75465,\n\t\"./extra/mgo.mjs\": 75465,\n\t\"./extra/mi\": 15979,\n\t\"./extra/mi.mjs\": 15979,\n\t\"./extra/mk\": 50241,\n\t\"./extra/mk.mjs\": 50241,\n\t\"./extra/ml\": 49007,\n\t\"./extra/ml.mjs\": 49007,\n\t\"./extra/mn\": 19483,\n\t\"./extra/mn.mjs\": 19483,\n\t\"./extra/mni\": 26482,\n\t\"./extra/mni-Beng\": 29268,\n\t\"./extra/mni-Beng.mjs\": 29268,\n\t\"./extra/mni.mjs\": 26482,\n\t\"./extra/mr\": 21263,\n\t\"./extra/mr.mjs\": 21263,\n\t\"./extra/ms\": 92532,\n\t\"./extra/ms-BN\": 42569,\n\t\"./extra/ms-BN.mjs\": 42569,\n\t\"./extra/ms-ID\": 23595,\n\t\"./extra/ms-ID.mjs\": 23595,\n\t\"./extra/ms-SG\": 90506,\n\t\"./extra/ms-SG.mjs\": 90506,\n\t\"./extra/ms.mjs\": 92532,\n\t\"./extra/mt\": 81549,\n\t\"./extra/mt.mjs\": 81549,\n\t\"./extra/mua\": 76592,\n\t\"./extra/mua.mjs\": 76592,\n\t\"./extra/my\": 21136,\n\t\"./extra/my.mjs\": 21136,\n\t\"./extra/mzn\": 38980,\n\t\"./extra/mzn.mjs\": 38980,\n\t\"./extra/naq\": 11292,\n\t\"./extra/naq.mjs\": 11292,\n\t\"./extra/nb\": 6363,\n\t\"./extra/nb-SJ\": 26024,\n\t\"./extra/nb-SJ.mjs\": 26024,\n\t\"./extra/nb.mjs\": 6363,\n\t\"./extra/nd\": 49911,\n\t\"./extra/nd.mjs\": 49911,\n\t\"./extra/nds\": 99764,\n\t\"./extra/nds-NL\": 25046,\n\t\"./extra/nds-NL.mjs\": 25046,\n\t\"./extra/nds.mjs\": 99764,\n\t\"./extra/ne\": 56440,\n\t\"./extra/ne-IN\": 28116,\n\t\"./extra/ne-IN.mjs\": 28116,\n\t\"./extra/ne.mjs\": 56440,\n\t\"./extra/nl\": 5300,\n\t\"./extra/nl-AW\": 69427,\n\t\"./extra/nl-AW.mjs\": 69427,\n\t\"./extra/nl-BE\": 10890,\n\t\"./extra/nl-BE.mjs\": 10890,\n\t\"./extra/nl-BQ\": 82630,\n\t\"./extra/nl-BQ.mjs\": 82630,\n\t\"./extra/nl-CW\": 55710,\n\t\"./extra/nl-CW.mjs\": 55710,\n\t\"./extra/nl-SR\": 44922,\n\t\"./extra/nl-SR.mjs\": 44922,\n\t\"./extra/nl-SX\": 91395,\n\t\"./extra/nl-SX.mjs\": 91395,\n\t\"./extra/nl.mjs\": 5300,\n\t\"./extra/nmg\": 61050,\n\t\"./extra/nmg.mjs\": 61050,\n\t\"./extra/nn\": 9402,\n\t\"./extra/nn.mjs\": 9402,\n\t\"./extra/nnh\": 85581,\n\t\"./extra/nnh.mjs\": 85581,\n\t\"./extra/no\": 45176,\n\t\"./extra/no.mjs\": 45176,\n\t\"./extra/nus\": 41358,\n\t\"./extra/nus.mjs\": 41358,\n\t\"./extra/nyn\": 90245,\n\t\"./extra/nyn.mjs\": 90245,\n\t\"./extra/om\": 88356,\n\t\"./extra/om-KE\": 5295,\n\t\"./extra/om-KE.mjs\": 5295,\n\t\"./extra/om.mjs\": 88356,\n\t\"./extra/or\": 21232,\n\t\"./extra/or.mjs\": 21232,\n\t\"./extra/os\": 37415,\n\t\"./extra/os-RU\": 90542,\n\t\"./extra/os-RU.mjs\": 90542,\n\t\"./extra/os.mjs\": 37415,\n\t\"./extra/pa\": 35004,\n\t\"./extra/pa-Arab\": 55675,\n\t\"./extra/pa-Arab.mjs\": 55675,\n\t\"./extra/pa-Guru\": 66117,\n\t\"./extra/pa-Guru.mjs\": 66117,\n\t\"./extra/pa.mjs\": 35004,\n\t\"./extra/pcm\": 94121,\n\t\"./extra/pcm.mjs\": 94121,\n\t\"./extra/pl\": 16468,\n\t\"./extra/pl.mjs\": 16468,\n\t\"./extra/ps\": 45686,\n\t\"./extra/ps-PK\": 66801,\n\t\"./extra/ps-PK.mjs\": 66801,\n\t\"./extra/ps.mjs\": 45686,\n\t\"./extra/pt\": 50823,\n\t\"./extra/pt-AO\": 14911,\n\t\"./extra/pt-AO.mjs\": 14911,\n\t\"./extra/pt-CH\": 61477,\n\t\"./extra/pt-CH.mjs\": 61477,\n\t\"./extra/pt-CV\": 33889,\n\t\"./extra/pt-CV.mjs\": 33889,\n\t\"./extra/pt-GQ\": 48938,\n\t\"./extra/pt-GQ.mjs\": 48938,\n\t\"./extra/pt-GW\": 56173,\n\t\"./extra/pt-GW.mjs\": 56173,\n\t\"./extra/pt-LU\": 34016,\n\t\"./extra/pt-LU.mjs\": 34016,\n\t\"./extra/pt-MO\": 61977,\n\t\"./extra/pt-MO.mjs\": 61977,\n\t\"./extra/pt-MZ\": 99834,\n\t\"./extra/pt-MZ.mjs\": 99834,\n\t\"./extra/pt-PT\": 43170,\n\t\"./extra/pt-PT.mjs\": 43170,\n\t\"./extra/pt-ST\": 60478,\n\t\"./extra/pt-ST.mjs\": 60478,\n\t\"./extra/pt-TL\": 83874,\n\t\"./extra/pt-TL.mjs\": 83874,\n\t\"./extra/pt.mjs\": 50823,\n\t\"./extra/qu\": 32613,\n\t\"./extra/qu-BO\": 32338,\n\t\"./extra/qu-BO.mjs\": 32338,\n\t\"./extra/qu-EC\": 31558,\n\t\"./extra/qu-EC.mjs\": 31558,\n\t\"./extra/qu.mjs\": 32613,\n\t\"./extra/rm\": 71284,\n\t\"./extra/rm.mjs\": 71284,\n\t\"./extra/rn\": 92064,\n\t\"./extra/rn.mjs\": 92064,\n\t\"./extra/ro\": 3496,\n\t\"./extra/ro-MD\": 54890,\n\t\"./extra/ro-MD.mjs\": 54890,\n\t\"./extra/ro.mjs\": 3496,\n\t\"./extra/rof\": 17391,\n\t\"./extra/rof.mjs\": 17391,\n\t\"./extra/ru\": 94379,\n\t\"./extra/ru-BY\": 99707,\n\t\"./extra/ru-BY.mjs\": 99707,\n\t\"./extra/ru-KG\": 96223,\n\t\"./extra/ru-KG.mjs\": 96223,\n\t\"./extra/ru-KZ\": 4863,\n\t\"./extra/ru-KZ.mjs\": 4863,\n\t\"./extra/ru-MD\": 37433,\n\t\"./extra/ru-MD.mjs\": 37433,\n\t\"./extra/ru-UA\": 20758,\n\t\"./extra/ru-UA.mjs\": 20758,\n\t\"./extra/ru.mjs\": 94379,\n\t\"./extra/rw\": 83764,\n\t\"./extra/rw.mjs\": 83764,\n\t\"./extra/rwk\": 77371,\n\t\"./extra/rwk.mjs\": 77371,\n\t\"./extra/sa\": 72341,\n\t\"./extra/sa.mjs\": 72341,\n\t\"./extra/sah\": 34583,\n\t\"./extra/sah.mjs\": 34583,\n\t\"./extra/saq\": 6347,\n\t\"./extra/saq.mjs\": 6347,\n\t\"./extra/sat\": 55225,\n\t\"./extra/sat-Olck\": 36003,\n\t\"./extra/sat-Olck.mjs\": 36003,\n\t\"./extra/sat.mjs\": 55225,\n\t\"./extra/sbp\": 29134,\n\t\"./extra/sbp.mjs\": 29134,\n\t\"./extra/sc\": 73858,\n\t\"./extra/sc.mjs\": 73858,\n\t\"./extra/sd\": 40579,\n\t\"./extra/sd-Arab\": 93035,\n\t\"./extra/sd-Arab.mjs\": 93035,\n\t\"./extra/sd-Deva\": 73348,\n\t\"./extra/sd-Deva.mjs\": 73348,\n\t\"./extra/sd.mjs\": 40579,\n\t\"./extra/se\": 53301,\n\t\"./extra/se-FI\": 69021,\n\t\"./extra/se-FI.mjs\": 69021,\n\t\"./extra/se-SE\": 88174,\n\t\"./extra/se-SE.mjs\": 88174,\n\t\"./extra/se.mjs\": 53301,\n\t\"./extra/seh\": 69702,\n\t\"./extra/seh.mjs\": 69702,\n\t\"./extra/ses\": 16577,\n\t\"./extra/ses.mjs\": 16577,\n\t\"./extra/sg\": 81714,\n\t\"./extra/sg.mjs\": 81714,\n\t\"./extra/shi\": 10288,\n\t\"./extra/shi-Latn\": 603,\n\t\"./extra/shi-Latn.mjs\": 603,\n\t\"./extra/shi-Tfng\": 80614,\n\t\"./extra/shi-Tfng.mjs\": 80614,\n\t\"./extra/shi.mjs\": 10288,\n\t\"./extra/si\": 79833,\n\t\"./extra/si.mjs\": 79833,\n\t\"./extra/sk\": 82290,\n\t\"./extra/sk.mjs\": 82290,\n\t\"./extra/sl\": 88951,\n\t\"./extra/sl.mjs\": 88951,\n\t\"./extra/smn\": 25387,\n\t\"./extra/smn.mjs\": 25387,\n\t\"./extra/sn\": 78207,\n\t\"./extra/sn.mjs\": 78207,\n\t\"./extra/so\": 70109,\n\t\"./extra/so-DJ\": 71213,\n\t\"./extra/so-DJ.mjs\": 71213,\n\t\"./extra/so-ET\": 71994,\n\t\"./extra/so-ET.mjs\": 71994,\n\t\"./extra/so-KE\": 87271,\n\t\"./extra/so-KE.mjs\": 87271,\n\t\"./extra/so.mjs\": 70109,\n\t\"./extra/sq\": 51679,\n\t\"./extra/sq-MK\": 58251,\n\t\"./extra/sq-MK.mjs\": 58251,\n\t\"./extra/sq-XK\": 72104,\n\t\"./extra/sq-XK.mjs\": 72104,\n\t\"./extra/sq.mjs\": 51679,\n\t\"./extra/sr\": 42646,\n\t\"./extra/sr-Cyrl\": 4804,\n\t\"./extra/sr-Cyrl-BA\": 95031,\n\t\"./extra/sr-Cyrl-BA.mjs\": 95031,\n\t\"./extra/sr-Cyrl-ME\": 76959,\n\t\"./extra/sr-Cyrl-ME.mjs\": 76959,\n\t\"./extra/sr-Cyrl-XK\": 39907,\n\t\"./extra/sr-Cyrl-XK.mjs\": 39907,\n\t\"./extra/sr-Cyrl.mjs\": 4804,\n\t\"./extra/sr-Latn\": 76033,\n\t\"./extra/sr-Latn-BA\": 56870,\n\t\"./extra/sr-Latn-BA.mjs\": 56870,\n\t\"./extra/sr-Latn-ME\": 16060,\n\t\"./extra/sr-Latn-ME.mjs\": 16060,\n\t\"./extra/sr-Latn-XK\": 40417,\n\t\"./extra/sr-Latn-XK.mjs\": 40417,\n\t\"./extra/sr-Latn.mjs\": 76033,\n\t\"./extra/sr.mjs\": 42646,\n\t\"./extra/su\": 19941,\n\t\"./extra/su-Latn\": 61760,\n\t\"./extra/su-Latn.mjs\": 61760,\n\t\"./extra/su.mjs\": 19941,\n\t\"./extra/sv\": 66857,\n\t\"./extra/sv-AX\": 96191,\n\t\"./extra/sv-AX.mjs\": 96191,\n\t\"./extra/sv-FI\": 48363,\n\t\"./extra/sv-FI.mjs\": 48363,\n\t\"./extra/sv.mjs\": 66857,\n\t\"./extra/sw\": 44067,\n\t\"./extra/sw-CD\": 78679,\n\t\"./extra/sw-CD.mjs\": 78679,\n\t\"./extra/sw-KE\": 13711,\n\t\"./extra/sw-KE.mjs\": 13711,\n\t\"./extra/sw-UG\": 66374,\n\t\"./extra/sw-UG.mjs\": 66374,\n\t\"./extra/sw.mjs\": 44067,\n\t\"./extra/ta\": 59082,\n\t\"./extra/ta-LK\": 92556,\n\t\"./extra/ta-LK.mjs\": 92556,\n\t\"./extra/ta-MY\": 13929,\n\t\"./extra/ta-MY.mjs\": 13929,\n\t\"./extra/ta-SG\": 40,\n\t\"./extra/ta-SG.mjs\": 40,\n\t\"./extra/ta.mjs\": 59082,\n\t\"./extra/te\": 49141,\n\t\"./extra/te.mjs\": 49141,\n\t\"./extra/teo\": 95971,\n\t\"./extra/teo-KE\": 43321,\n\t\"./extra/teo-KE.mjs\": 43321,\n\t\"./extra/teo.mjs\": 95971,\n\t\"./extra/tg\": 68507,\n\t\"./extra/tg.mjs\": 68507,\n\t\"./extra/th\": 19799,\n\t\"./extra/th.mjs\": 19799,\n\t\"./extra/ti\": 37955,\n\t\"./extra/ti-ER\": 97479,\n\t\"./extra/ti-ER.mjs\": 97479,\n\t\"./extra/ti.mjs\": 37955,\n\t\"./extra/tk\": 86413,\n\t\"./extra/tk.mjs\": 86413,\n\t\"./extra/to\": 53225,\n\t\"./extra/to.mjs\": 53225,\n\t\"./extra/tr\": 8557,\n\t\"./extra/tr-CY\": 72262,\n\t\"./extra/tr-CY.mjs\": 72262,\n\t\"./extra/tr.mjs\": 8557,\n\t\"./extra/tt\": 51942,\n\t\"./extra/tt.mjs\": 51942,\n\t\"./extra/twq\": 68455,\n\t\"./extra/twq.mjs\": 68455,\n\t\"./extra/tzm\": 13184,\n\t\"./extra/tzm.mjs\": 13184,\n\t\"./extra/ug\": 60168,\n\t\"./extra/ug.mjs\": 60168,\n\t\"./extra/uk\": 85432,\n\t\"./extra/uk.mjs\": 85432,\n\t\"./extra/und\": 84628,\n\t\"./extra/und.mjs\": 84628,\n\t\"./extra/ur\": 57495,\n\t\"./extra/ur-IN\": 37013,\n\t\"./extra/ur-IN.mjs\": 37013,\n\t\"./extra/ur.mjs\": 57495,\n\t\"./extra/uz\": 57759,\n\t\"./extra/uz-Arab\": 55720,\n\t\"./extra/uz-Arab.mjs\": 55720,\n\t\"./extra/uz-Cyrl\": 84396,\n\t\"./extra/uz-Cyrl.mjs\": 84396,\n\t\"./extra/uz-Latn\": 60652,\n\t\"./extra/uz-Latn.mjs\": 60652,\n\t\"./extra/uz.mjs\": 57759,\n\t\"./extra/vai\": 46646,\n\t\"./extra/vai-Latn\": 3511,\n\t\"./extra/vai-Latn.mjs\": 3511,\n\t\"./extra/vai-Vaii\": 60585,\n\t\"./extra/vai-Vaii.mjs\": 60585,\n\t\"./extra/vai.mjs\": 46646,\n\t\"./extra/vi\": 79728,\n\t\"./extra/vi.mjs\": 79728,\n\t\"./extra/vun\": 54801,\n\t\"./extra/vun.mjs\": 54801,\n\t\"./extra/wae\": 73220,\n\t\"./extra/wae.mjs\": 73220,\n\t\"./extra/wo\": 94224,\n\t\"./extra/wo.mjs\": 94224,\n\t\"./extra/xh\": 98812,\n\t\"./extra/xh.mjs\": 98812,\n\t\"./extra/xog\": 80456,\n\t\"./extra/xog.mjs\": 80456,\n\t\"./extra/yav\": 85460,\n\t\"./extra/yav.mjs\": 85460,\n\t\"./extra/yi\": 71249,\n\t\"./extra/yi.mjs\": 71249,\n\t\"./extra/yo\": 59787,\n\t\"./extra/yo-BJ\": 35545,\n\t\"./extra/yo-BJ.mjs\": 35545,\n\t\"./extra/yo.mjs\": 59787,\n\t\"./extra/yrl\": 64145,\n\t\"./extra/yrl-CO\": 78130,\n\t\"./extra/yrl-CO.mjs\": 78130,\n\t\"./extra/yrl-VE\": 73924,\n\t\"./extra/yrl-VE.mjs\": 73924,\n\t\"./extra/yrl.mjs\": 64145,\n\t\"./extra/yue\": 1418,\n\t\"./extra/yue-Hans\": 50684,\n\t\"./extra/yue-Hans.mjs\": 50684,\n\t\"./extra/yue-Hant\": 70372,\n\t\"./extra/yue-Hant.mjs\": 70372,\n\t\"./extra/yue.mjs\": 1418,\n\t\"./extra/zgh\": 25355,\n\t\"./extra/zgh.mjs\": 25355,\n\t\"./extra/zh\": 39234,\n\t\"./extra/zh-Hans\": 58947,\n\t\"./extra/zh-Hans-HK\": 359,\n\t\"./extra/zh-Hans-HK.mjs\": 359,\n\t\"./extra/zh-Hans-MO\": 99246,\n\t\"./extra/zh-Hans-MO.mjs\": 99246,\n\t\"./extra/zh-Hans-SG\": 76459,\n\t\"./extra/zh-Hans-SG.mjs\": 76459,\n\t\"./extra/zh-Hans.mjs\": 58947,\n\t\"./extra/zh-Hant\": 43937,\n\t\"./extra/zh-Hant-HK\": 7345,\n\t\"./extra/zh-Hant-HK.mjs\": 7345,\n\t\"./extra/zh-Hant-MO\": 49494,\n\t\"./extra/zh-Hant-MO.mjs\": 49494,\n\t\"./extra/zh-Hant.mjs\": 43937,\n\t\"./extra/zh.mjs\": 39234,\n\t\"./extra/zu\": 34501,\n\t\"./extra/zu.mjs\": 34501,\n\t\"./fa\": 11630,\n\t\"./fa-AF\": 98739,\n\t\"./fa-AF.mjs\": 98739,\n\t\"./fa.mjs\": 11630,\n\t\"./ff\": 62005,\n\t\"./ff-Adlm\": 21380,\n\t\"./ff-Adlm-BF\": 97617,\n\t\"./ff-Adlm-BF.mjs\": 97617,\n\t\"./ff-Adlm-CM\": 24128,\n\t\"./ff-Adlm-CM.mjs\": 24128,\n\t\"./ff-Adlm-GH\": 2836,\n\t\"./ff-Adlm-GH.mjs\": 2836,\n\t\"./ff-Adlm-GM\": 54251,\n\t\"./ff-Adlm-GM.mjs\": 54251,\n\t\"./ff-Adlm-GW\": 33836,\n\t\"./ff-Adlm-GW.mjs\": 33836,\n\t\"./ff-Adlm-LR\": 53526,\n\t\"./ff-Adlm-LR.mjs\": 53526,\n\t\"./ff-Adlm-MR\": 14073,\n\t\"./ff-Adlm-MR.mjs\": 14073,\n\t\"./ff-Adlm-NE\": 93998,\n\t\"./ff-Adlm-NE.mjs\": 93998,\n\t\"./ff-Adlm-NG\": 16981,\n\t\"./ff-Adlm-NG.mjs\": 16981,\n\t\"./ff-Adlm-SL\": 80582,\n\t\"./ff-Adlm-SL.mjs\": 80582,\n\t\"./ff-Adlm-SN\": 70013,\n\t\"./ff-Adlm-SN.mjs\": 70013,\n\t\"./ff-Adlm.mjs\": 21380,\n\t\"./ff-CM\": 86139,\n\t\"./ff-CM.mjs\": 86139,\n\t\"./ff-GN\": 17399,\n\t\"./ff-GN.mjs\": 17399,\n\t\"./ff-Latn\": 64715,\n\t\"./ff-Latn-BF\": 74204,\n\t\"./ff-Latn-BF.mjs\": 74204,\n\t\"./ff-Latn-CM\": 55507,\n\t\"./ff-Latn-CM.mjs\": 55507,\n\t\"./ff-Latn-GH\": 4944,\n\t\"./ff-Latn-GH.mjs\": 4944,\n\t\"./ff-Latn-GM\": 55401,\n\t\"./ff-Latn-GM.mjs\": 55401,\n\t\"./ff-Latn-GN\": 62367,\n\t\"./ff-Latn-GN.mjs\": 62367,\n\t\"./ff-Latn-GW\": 69153,\n\t\"./ff-Latn-GW.mjs\": 69153,\n\t\"./ff-Latn-LR\": 19021,\n\t\"./ff-Latn-LR.mjs\": 19021,\n\t\"./ff-Latn-MR\": 94391,\n\t\"./ff-Latn-MR.mjs\": 94391,\n\t\"./ff-Latn-NE\": 54001,\n\t\"./ff-Latn-NE.mjs\": 54001,\n\t\"./ff-Latn-NG\": 28799,\n\t\"./ff-Latn-NG.mjs\": 28799,\n\t\"./ff-Latn-SL\": 71787,\n\t\"./ff-Latn-SL.mjs\": 71787,\n\t\"./ff-Latn.mjs\": 64715,\n\t\"./ff-MR\": 32119,\n\t\"./ff-MR.mjs\": 32119,\n\t\"./ff.mjs\": 62005,\n\t\"./fi\": 37148,\n\t\"./fi.mjs\": 37148,\n\t\"./fil\": 77462,\n\t\"./fil.mjs\": 77462,\n\t\"./fo\": 51383,\n\t\"./fo-DK\": 60913,\n\t\"./fo-DK.mjs\": 60913,\n\t\"./fo.mjs\": 51383,\n\t\"./fr\": 58384,\n\t\"./fr-BE\": 64637,\n\t\"./fr-BE.mjs\": 64637,\n\t\"./fr-BF\": 96175,\n\t\"./fr-BF.mjs\": 96175,\n\t\"./fr-BI\": 39558,\n\t\"./fr-BI.mjs\": 39558,\n\t\"./fr-BJ\": 71564,\n\t\"./fr-BJ.mjs\": 71564,\n\t\"./fr-BL\": 35302,\n\t\"./fr-BL.mjs\": 35302,\n\t\"./fr-CA\": 76960,\n\t\"./fr-CA.mjs\": 76960,\n\t\"./fr-CD\": 57710,\n\t\"./fr-CD.mjs\": 57710,\n\t\"./fr-CF\": 80714,\n\t\"./fr-CF.mjs\": 80714,\n\t\"./fr-CG\": 60017,\n\t\"./fr-CG.mjs\": 60017,\n\t\"./fr-CH\": 42343,\n\t\"./fr-CH.mjs\": 42343,\n\t\"./fr-CI\": 93203,\n\t\"./fr-CI.mjs\": 93203,\n\t\"./fr-CM\": 56154,\n\t\"./fr-CM.mjs\": 56154,\n\t\"./fr-DJ\": 187,\n\t\"./fr-DJ.mjs\": 187,\n\t\"./fr-DZ\": 68246,\n\t\"./fr-DZ.mjs\": 68246,\n\t\"./fr-GA\": 23019,\n\t\"./fr-GA.mjs\": 23019,\n\t\"./fr-GF\": 81096,\n\t\"./fr-GF.mjs\": 81096,\n\t\"./fr-GN\": 5386,\n\t\"./fr-GN.mjs\": 5386,\n\t\"./fr-GP\": 49336,\n\t\"./fr-GP.mjs\": 49336,\n\t\"./fr-GQ\": 39754,\n\t\"./fr-GQ.mjs\": 39754,\n\t\"./fr-HT\": 60939,\n\t\"./fr-HT.mjs\": 60939,\n\t\"./fr-KM\": 4061,\n\t\"./fr-KM.mjs\": 4061,\n\t\"./fr-LU\": 79578,\n\t\"./fr-LU.mjs\": 79578,\n\t\"./fr-MA\": 27155,\n\t\"./fr-MA.mjs\": 27155,\n\t\"./fr-MC\": 81721,\n\t\"./fr-MC.mjs\": 81721,\n\t\"./fr-MF\": 60884,\n\t\"./fr-MF.mjs\": 60884,\n\t\"./fr-MG\": 97693,\n\t\"./fr-MG.mjs\": 97693,\n\t\"./fr-ML\": 48201,\n\t\"./fr-ML.mjs\": 48201,\n\t\"./fr-MQ\": 69170,\n\t\"./fr-MQ.mjs\": 69170,\n\t\"./fr-MR\": 16960,\n\t\"./fr-MR.mjs\": 16960,\n\t\"./fr-MU\": 11498,\n\t\"./fr-MU.mjs\": 11498,\n\t\"./fr-NC\": 36454,\n\t\"./fr-NC.mjs\": 36454,\n\t\"./fr-NE\": 19446,\n\t\"./fr-NE.mjs\": 19446,\n\t\"./fr-PF\": 10101,\n\t\"./fr-PF.mjs\": 10101,\n\t\"./fr-PM\": 44033,\n\t\"./fr-PM.mjs\": 44033,\n\t\"./fr-RE\": 75644,\n\t\"./fr-RE.mjs\": 75644,\n\t\"./fr-RW\": 7108,\n\t\"./fr-RW.mjs\": 7108,\n\t\"./fr-SC\": 85441,\n\t\"./fr-SC.mjs\": 85441,\n\t\"./fr-SN\": 53342,\n\t\"./fr-SN.mjs\": 53342,\n\t\"./fr-SY\": 94253,\n\t\"./fr-SY.mjs\": 94253,\n\t\"./fr-TD\": 40834,\n\t\"./fr-TD.mjs\": 40834,\n\t\"./fr-TG\": 62555,\n\t\"./fr-TG.mjs\": 62555,\n\t\"./fr-TN\": 12957,\n\t\"./fr-TN.mjs\": 12957,\n\t\"./fr-VU\": 92155,\n\t\"./fr-VU.mjs\": 92155,\n\t\"./fr-WF\": 38870,\n\t\"./fr-WF.mjs\": 38870,\n\t\"./fr-YT\": 47688,\n\t\"./fr-YT.mjs\": 47688,\n\t\"./fr.mjs\": 58384,\n\t\"./fur\": 10491,\n\t\"./fur.mjs\": 10491,\n\t\"./fy\": 48186,\n\t\"./fy.mjs\": 48186,\n\t\"./ga\": 64779,\n\t\"./ga-GB\": 59893,\n\t\"./ga-GB.mjs\": 59893,\n\t\"./ga.mjs\": 64779,\n\t\"./gd\": 8395,\n\t\"./gd.mjs\": 8395,\n\t\"./gl\": 45003,\n\t\"./gl.mjs\": 45003,\n\t\"./global/af\": 89257,\n\t\"./global/af-NA\": 23392,\n\t\"./global/af-NA.js\": 23392,\n\t\"./global/af.js\": 89257,\n\t\"./global/agq\": 86910,\n\t\"./global/agq.js\": 86910,\n\t\"./global/ak\": 41890,\n\t\"./global/ak.js\": 41890,\n\t\"./global/am\": 33575,\n\t\"./global/am.js\": 33575,\n\t\"./global/ar\": 96170,\n\t\"./global/ar-AE\": 5913,\n\t\"./global/ar-AE.js\": 5913,\n\t\"./global/ar-BH\": 28769,\n\t\"./global/ar-BH.js\": 28769,\n\t\"./global/ar-DJ\": 56867,\n\t\"./global/ar-DJ.js\": 56867,\n\t\"./global/ar-DZ\": 33413,\n\t\"./global/ar-DZ.js\": 33413,\n\t\"./global/ar-EG\": 41519,\n\t\"./global/ar-EG.js\": 41519,\n\t\"./global/ar-EH\": 10158,\n\t\"./global/ar-EH.js\": 10158,\n\t\"./global/ar-ER\": 21734,\n\t\"./global/ar-ER.js\": 21734,\n\t\"./global/ar-IL\": 1927,\n\t\"./global/ar-IL.js\": 1927,\n\t\"./global/ar-IQ\": 1334,\n\t\"./global/ar-IQ.js\": 1334,\n\t\"./global/ar-JO\": 94395,\n\t\"./global/ar-JO.js\": 94395,\n\t\"./global/ar-KM\": 31876,\n\t\"./global/ar-KM.js\": 31876,\n\t\"./global/ar-KW\": 69901,\n\t\"./global/ar-KW.js\": 69901,\n\t\"./global/ar-LB\": 83547,\n\t\"./global/ar-LB.js\": 83547,\n\t\"./global/ar-LY\": 35223,\n\t\"./global/ar-LY.js\": 35223,\n\t\"./global/ar-MA\": 72887,\n\t\"./global/ar-MA.js\": 72887,\n\t\"./global/ar-MR\": 99765,\n\t\"./global/ar-MR.js\": 99765,\n\t\"./global/ar-OM\": 82302,\n\t\"./global/ar-OM.js\": 82302,\n\t\"./global/ar-PS\": 39788,\n\t\"./global/ar-PS.js\": 39788,\n\t\"./global/ar-QA\": 79180,\n\t\"./global/ar-QA.js\": 79180,\n\t\"./global/ar-SA\": 66676,\n\t\"./global/ar-SA.js\": 66676,\n\t\"./global/ar-SD\": 86944,\n\t\"./global/ar-SD.js\": 86944,\n\t\"./global/ar-SO\": 75092,\n\t\"./global/ar-SO.js\": 75092,\n\t\"./global/ar-SS\": 61334,\n\t\"./global/ar-SS.js\": 61334,\n\t\"./global/ar-SY\": 25268,\n\t\"./global/ar-SY.js\": 25268,\n\t\"./global/ar-TD\": 62217,\n\t\"./global/ar-TD.js\": 62217,\n\t\"./global/ar-TN\": 29941,\n\t\"./global/ar-TN.js\": 29941,\n\t\"./global/ar-YE\": 22863,\n\t\"./global/ar-YE.js\": 22863,\n\t\"./global/ar.js\": 96170,\n\t\"./global/as\": 24213,\n\t\"./global/as.js\": 24213,\n\t\"./global/asa\": 19092,\n\t\"./global/asa.js\": 19092,\n\t\"./global/ast\": 97545,\n\t\"./global/ast.js\": 97545,\n\t\"./global/az\": 36181,\n\t\"./global/az-Cyrl\": 77569,\n\t\"./global/az-Cyrl.js\": 77569,\n\t\"./global/az-Latn\": 62263,\n\t\"./global/az-Latn.js\": 62263,\n\t\"./global/az.js\": 36181,\n\t\"./global/bas\": 86804,\n\t\"./global/bas.js\": 86804,\n\t\"./global/be\": 31680,\n\t\"./global/be-tarask\": 53170,\n\t\"./global/be-tarask.js\": 53170,\n\t\"./global/be.js\": 31680,\n\t\"./global/bem\": 44085,\n\t\"./global/bem.js\": 44085,\n\t\"./global/bez\": 30478,\n\t\"./global/bez.js\": 30478,\n\t\"./global/bg\": 2202,\n\t\"./global/bg.js\": 2202,\n\t\"./global/bm\": 28188,\n\t\"./global/bm.js\": 28188,\n\t\"./global/bn\": 60892,\n\t\"./global/bn-IN\": 94898,\n\t\"./global/bn-IN.js\": 94898,\n\t\"./global/bn.js\": 60892,\n\t\"./global/bo\": 75633,\n\t\"./global/bo-IN\": 62187,\n\t\"./global/bo-IN.js\": 62187,\n\t\"./global/bo.js\": 75633,\n\t\"./global/br\": 61356,\n\t\"./global/br.js\": 61356,\n\t\"./global/brx\": 48719,\n\t\"./global/brx.js\": 48719,\n\t\"./global/bs\": 96564,\n\t\"./global/bs-Cyrl\": 1235,\n\t\"./global/bs-Cyrl.js\": 1235,\n\t\"./global/bs-Latn\": 17228,\n\t\"./global/bs-Latn.js\": 17228,\n\t\"./global/bs.js\": 96564,\n\t\"./global/ca\": 66810,\n\t\"./global/ca-AD\": 76644,\n\t\"./global/ca-AD.js\": 76644,\n\t\"./global/ca-ES-valencia\": 58145,\n\t\"./global/ca-ES-valencia.js\": 58145,\n\t\"./global/ca-FR\": 5976,\n\t\"./global/ca-FR.js\": 5976,\n\t\"./global/ca-IT\": 68754,\n\t\"./global/ca-IT.js\": 68754,\n\t\"./global/ca.js\": 66810,\n\t\"./global/ccp\": 21642,\n\t\"./global/ccp-IN\": 60469,\n\t\"./global/ccp-IN.js\": 60469,\n\t\"./global/ccp.js\": 21642,\n\t\"./global/ce\": 5892,\n\t\"./global/ce.js\": 5892,\n\t\"./global/ceb\": 82172,\n\t\"./global/ceb.js\": 82172,\n\t\"./global/cgg\": 65653,\n\t\"./global/cgg.js\": 65653,\n\t\"./global/chr\": 92273,\n\t\"./global/chr.js\": 92273,\n\t\"./global/ckb\": 23542,\n\t\"./global/ckb-IR\": 76365,\n\t\"./global/ckb-IR.js\": 76365,\n\t\"./global/ckb.js\": 23542,\n\t\"./global/cs\": 60416,\n\t\"./global/cs.js\": 60416,\n\t\"./global/cy\": 69834,\n\t\"./global/cy.js\": 69834,\n\t\"./global/da\": 84069,\n\t\"./global/da-GL\": 23992,\n\t\"./global/da-GL.js\": 23992,\n\t\"./global/da.js\": 84069,\n\t\"./global/dav\": 2854,\n\t\"./global/dav.js\": 2854,\n\t\"./global/de\": 20404,\n\t\"./global/de-AT\": 3919,\n\t\"./global/de-AT.js\": 3919,\n\t\"./global/de-BE\": 5287,\n\t\"./global/de-BE.js\": 5287,\n\t\"./global/de-CH\": 66044,\n\t\"./global/de-CH.js\": 66044,\n\t\"./global/de-IT\": 33652,\n\t\"./global/de-IT.js\": 33652,\n\t\"./global/de-LI\": 27274,\n\t\"./global/de-LI.js\": 27274,\n\t\"./global/de-LU\": 86981,\n\t\"./global/de-LU.js\": 86981,\n\t\"./global/de.js\": 20404,\n\t\"./global/dje\": 66228,\n\t\"./global/dje.js\": 66228,\n\t\"./global/doi\": 66468,\n\t\"./global/doi.js\": 66468,\n\t\"./global/dsb\": 68340,\n\t\"./global/dsb.js\": 68340,\n\t\"./global/dua\": 33827,\n\t\"./global/dua.js\": 33827,\n\t\"./global/dyo\": 64244,\n\t\"./global/dyo.js\": 64244,\n\t\"./global/dz\": 59837,\n\t\"./global/dz.js\": 59837,\n\t\"./global/ebu\": 73205,\n\t\"./global/ebu.js\": 73205,\n\t\"./global/ee\": 34446,\n\t\"./global/ee-TG\": 54316,\n\t\"./global/ee-TG.js\": 54316,\n\t\"./global/ee.js\": 34446,\n\t\"./global/el\": 92546,\n\t\"./global/el-CY\": 6997,\n\t\"./global/el-CY.js\": 6997,\n\t\"./global/el.js\": 92546,\n\t\"./global/en\": 90550,\n\t\"./global/en-001\": 550,\n\t\"./global/en-001.js\": 550,\n\t\"./global/en-150\": 69003,\n\t\"./global/en-150.js\": 69003,\n\t\"./global/en-AE\": 52668,\n\t\"./global/en-AE.js\": 52668,\n\t\"./global/en-AG\": 87322,\n\t\"./global/en-AG.js\": 87322,\n\t\"./global/en-AI\": 5431,\n\t\"./global/en-AI.js\": 5431,\n\t\"./global/en-AS\": 20797,\n\t\"./global/en-AS.js\": 20797,\n\t\"./global/en-AT\": 42023,\n\t\"./global/en-AT.js\": 42023,\n\t\"./global/en-AU\": 14592,\n\t\"./global/en-AU.js\": 14592,\n\t\"./global/en-BB\": 55426,\n\t\"./global/en-BB.js\": 55426,\n\t\"./global/en-BE\": 43163,\n\t\"./global/en-BE.js\": 43163,\n\t\"./global/en-BI\": 64790,\n\t\"./global/en-BI.js\": 64790,\n\t\"./global/en-BM\": 37555,\n\t\"./global/en-BM.js\": 37555,\n\t\"./global/en-BS\": 43634,\n\t\"./global/en-BS.js\": 43634,\n\t\"./global/en-BW\": 74221,\n\t\"./global/en-BW.js\": 74221,\n\t\"./global/en-BZ\": 7817,\n\t\"./global/en-BZ.js\": 7817,\n\t\"./global/en-CA\": 27763,\n\t\"./global/en-CA.js\": 27763,\n\t\"./global/en-CC\": 31025,\n\t\"./global/en-CC.js\": 31025,\n\t\"./global/en-CH\": 95347,\n\t\"./global/en-CH.js\": 95347,\n\t\"./global/en-CK\": 82919,\n\t\"./global/en-CK.js\": 82919,\n\t\"./global/en-CM\": 49834,\n\t\"./global/en-CM.js\": 49834,\n\t\"./global/en-CX\": 87988,\n\t\"./global/en-CX.js\": 87988,\n\t\"./global/en-CY\": 15484,\n\t\"./global/en-CY.js\": 15484,\n\t\"./global/en-DE\": 47680,\n\t\"./global/en-DE.js\": 47680,\n\t\"./global/en-DG\": 33879,\n\t\"./global/en-DG.js\": 33879,\n\t\"./global/en-DK\": 96243,\n\t\"./global/en-DK.js\": 96243,\n\t\"./global/en-DM\": 83271,\n\t\"./global/en-DM.js\": 83271,\n\t\"./global/en-ER\": 29328,\n\t\"./global/en-ER.js\": 29328,\n\t\"./global/en-FI\": 40305,\n\t\"./global/en-FI.js\": 40305,\n\t\"./global/en-FJ\": 73465,\n\t\"./global/en-FJ.js\": 73465,\n\t\"./global/en-FK\": 18835,\n\t\"./global/en-FK.js\": 18835,\n\t\"./global/en-FM\": 33417,\n\t\"./global/en-FM.js\": 33417,\n\t\"./global/en-GB\": 76945,\n\t\"./global/en-GB.js\": 76945,\n\t\"./global/en-GD\": 14485,\n\t\"./global/en-GD.js\": 14485,\n\t\"./global/en-GG\": 29343,\n\t\"./global/en-GG.js\": 29343,\n\t\"./global/en-GH\": 78174,\n\t\"./global/en-GH.js\": 78174,\n\t\"./global/en-GI\": 8137,\n\t\"./global/en-GI.js\": 8137,\n\t\"./global/en-GM\": 72483,\n\t\"./global/en-GM.js\": 72483,\n\t\"./global/en-GU\": 1034,\n\t\"./global/en-GU.js\": 1034,\n\t\"./global/en-GY\": 58787,\n\t\"./global/en-GY.js\": 58787,\n\t\"./global/en-HK\": 15267,\n\t\"./global/en-HK.js\": 15267,\n\t\"./global/en-IE\": 55455,\n\t\"./global/en-IE.js\": 55455,\n\t\"./global/en-IL\": 45685,\n\t\"./global/en-IL.js\": 45685,\n\t\"./global/en-IM\": 9114,\n\t\"./global/en-IM.js\": 9114,\n\t\"./global/en-IN\": 59444,\n\t\"./global/en-IN.js\": 59444,\n\t\"./global/en-IO\": 15363,\n\t\"./global/en-IO.js\": 15363,\n\t\"./global/en-JE\": 42687,\n\t\"./global/en-JE.js\": 42687,\n\t\"./global/en-JM\": 24756,\n\t\"./global/en-JM.js\": 24756,\n\t\"./global/en-KE\": 78286,\n\t\"./global/en-KE.js\": 78286,\n\t\"./global/en-KI\": 49765,\n\t\"./global/en-KI.js\": 49765,\n\t\"./global/en-KN\": 66777,\n\t\"./global/en-KN.js\": 66777,\n\t\"./global/en-KY\": 36400,\n\t\"./global/en-KY.js\": 36400,\n\t\"./global/en-LC\": 90997,\n\t\"./global/en-LC.js\": 90997,\n\t\"./global/en-LR\": 2465,\n\t\"./global/en-LR.js\": 2465,\n\t\"./global/en-LS\": 77738,\n\t\"./global/en-LS.js\": 77738,\n\t\"./global/en-MG\": 8708,\n\t\"./global/en-MG.js\": 8708,\n\t\"./global/en-MH\": 94697,\n\t\"./global/en-MH.js\": 94697,\n\t\"./global/en-MO\": 71761,\n\t\"./global/en-MO.js\": 71761,\n\t\"./global/en-MP\": 88382,\n\t\"./global/en-MP.js\": 88382,\n\t\"./global/en-MS\": 46446,\n\t\"./global/en-MS.js\": 46446,\n\t\"./global/en-MT\": 6051,\n\t\"./global/en-MT.js\": 6051,\n\t\"./global/en-MU\": 94593,\n\t\"./global/en-MU.js\": 94593,\n\t\"./global/en-MV\": 44020,\n\t\"./global/en-MV.js\": 44020,\n\t\"./global/en-MW\": 10364,\n\t\"./global/en-MW.js\": 10364,\n\t\"./global/en-MY\": 59736,\n\t\"./global/en-MY.js\": 59736,\n\t\"./global/en-NA\": 67044,\n\t\"./global/en-NA.js\": 67044,\n\t\"./global/en-NF\": 60774,\n\t\"./global/en-NF.js\": 60774,\n\t\"./global/en-NG\": 71053,\n\t\"./global/en-NG.js\": 71053,\n\t\"./global/en-NL\": 34484,\n\t\"./global/en-NL.js\": 34484,\n\t\"./global/en-NR\": 1426,\n\t\"./global/en-NR.js\": 1426,\n\t\"./global/en-NU\": 1402,\n\t\"./global/en-NU.js\": 1402,\n\t\"./global/en-NZ\": 33044,\n\t\"./global/en-NZ.js\": 33044,\n\t\"./global/en-PG\": 65054,\n\t\"./global/en-PG.js\": 65054,\n\t\"./global/en-PH\": 32800,\n\t\"./global/en-PH.js\": 32800,\n\t\"./global/en-PK\": 82026,\n\t\"./global/en-PK.js\": 82026,\n\t\"./global/en-PN\": 21172,\n\t\"./global/en-PN.js\": 21172,\n\t\"./global/en-PR\": 51099,\n\t\"./global/en-PR.js\": 51099,\n\t\"./global/en-PW\": 42338,\n\t\"./global/en-PW.js\": 42338,\n\t\"./global/en-RW\": 53165,\n\t\"./global/en-RW.js\": 53165,\n\t\"./global/en-SB\": 892,\n\t\"./global/en-SB.js\": 892,\n\t\"./global/en-SC\": 35112,\n\t\"./global/en-SC.js\": 35112,\n\t\"./global/en-SD\": 19923,\n\t\"./global/en-SD.js\": 19923,\n\t\"./global/en-SE\": 17015,\n\t\"./global/en-SE.js\": 17015,\n\t\"./global/en-SG\": 94069,\n\t\"./global/en-SG.js\": 94069,\n\t\"./global/en-SH\": 27549,\n\t\"./global/en-SH.js\": 27549,\n\t\"./global/en-SI\": 9414,\n\t\"./global/en-SI.js\": 9414,\n\t\"./global/en-SL\": 99868,\n\t\"./global/en-SL.js\": 99868,\n\t\"./global/en-SS\": 2382,\n\t\"./global/en-SS.js\": 2382,\n\t\"./global/en-SX\": 38103,\n\t\"./global/en-SX.js\": 38103,\n\t\"./global/en-SZ\": 80955,\n\t\"./global/en-SZ.js\": 80955,\n\t\"./global/en-TC\": 11958,\n\t\"./global/en-TC.js\": 11958,\n\t\"./global/en-TK\": 40318,\n\t\"./global/en-TK.js\": 40318,\n\t\"./global/en-TO\": 65371,\n\t\"./global/en-TO.js\": 65371,\n\t\"./global/en-TT\": 87069,\n\t\"./global/en-TT.js\": 87069,\n\t\"./global/en-TV\": 4005,\n\t\"./global/en-TV.js\": 4005,\n\t\"./global/en-TZ\": 11521,\n\t\"./global/en-TZ.js\": 11521,\n\t\"./global/en-UG\": 59915,\n\t\"./global/en-UG.js\": 59915,\n\t\"./global/en-UM\": 21495,\n\t\"./global/en-UM.js\": 21495,\n\t\"./global/en-VC\": 91976,\n\t\"./global/en-VC.js\": 91976,\n\t\"./global/en-VG\": 56338,\n\t\"./global/en-VG.js\": 56338,\n\t\"./global/en-VI\": 94131,\n\t\"./global/en-VI.js\": 94131,\n\t\"./global/en-VU\": 37881,\n\t\"./global/en-VU.js\": 37881,\n\t\"./global/en-WS\": 87870,\n\t\"./global/en-WS.js\": 87870,\n\t\"./global/en-ZA\": 93524,\n\t\"./global/en-ZA.js\": 93524,\n\t\"./global/en-ZM\": 40816,\n\t\"./global/en-ZM.js\": 40816,\n\t\"./global/en-ZW\": 93784,\n\t\"./global/en-ZW.js\": 93784,\n\t\"./global/en.js\": 90550,\n\t\"./global/eo\": 73590,\n\t\"./global/eo.js\": 73590,\n\t\"./global/es\": 1150,\n\t\"./global/es-419\": 98688,\n\t\"./global/es-419.js\": 98688,\n\t\"./global/es-AR\": 45706,\n\t\"./global/es-AR.js\": 45706,\n\t\"./global/es-BO\": 47830,\n\t\"./global/es-BO.js\": 47830,\n\t\"./global/es-BR\": 44697,\n\t\"./global/es-BR.js\": 44697,\n\t\"./global/es-BZ\": 69696,\n\t\"./global/es-BZ.js\": 69696,\n\t\"./global/es-CL\": 48055,\n\t\"./global/es-CL.js\": 48055,\n\t\"./global/es-CO\": 67646,\n\t\"./global/es-CO.js\": 67646,\n\t\"./global/es-CR\": 1527,\n\t\"./global/es-CR.js\": 1527,\n\t\"./global/es-CU\": 65885,\n\t\"./global/es-CU.js\": 65885,\n\t\"./global/es-DO\": 46271,\n\t\"./global/es-DO.js\": 46271,\n\t\"./global/es-EA\": 56111,\n\t\"./global/es-EA.js\": 56111,\n\t\"./global/es-EC\": 28164,\n\t\"./global/es-EC.js\": 28164,\n\t\"./global/es-GQ\": 71108,\n\t\"./global/es-GQ.js\": 71108,\n\t\"./global/es-GT\": 68247,\n\t\"./global/es-GT.js\": 68247,\n\t\"./global/es-HN\": 41881,\n\t\"./global/es-HN.js\": 41881,\n\t\"./global/es-IC\": 10198,\n\t\"./global/es-IC.js\": 10198,\n\t\"./global/es-MX\": 51140,\n\t\"./global/es-MX.js\": 51140,\n\t\"./global/es-NI\": 39774,\n\t\"./global/es-NI.js\": 39774,\n\t\"./global/es-PA\": 2518,\n\t\"./global/es-PA.js\": 2518,\n\t\"./global/es-PE\": 86059,\n\t\"./global/es-PE.js\": 86059,\n\t\"./global/es-PH\": 69871,\n\t\"./global/es-PH.js\": 69871,\n\t\"./global/es-PR\": 85906,\n\t\"./global/es-PR.js\": 85906,\n\t\"./global/es-PY\": 92706,\n\t\"./global/es-PY.js\": 92706,\n\t\"./global/es-SV\": 88855,\n\t\"./global/es-SV.js\": 88855,\n\t\"./global/es-US\": 25186,\n\t\"./global/es-US.js\": 25186,\n\t\"./global/es-UY\": 18880,\n\t\"./global/es-UY.js\": 18880,\n\t\"./global/es-VE\": 43830,\n\t\"./global/es-VE.js\": 43830,\n\t\"./global/es.js\": 1150,\n\t\"./global/et\": 17280,\n\t\"./global/et.js\": 17280,\n\t\"./global/eu\": 66154,\n\t\"./global/eu.js\": 66154,\n\t\"./global/ewo\": 82868,\n\t\"./global/ewo.js\": 82868,\n\t\"./global/fa\": 40872,\n\t\"./global/fa-AF\": 46618,\n\t\"./global/fa-AF.js\": 46618,\n\t\"./global/fa.js\": 40872,\n\t\"./global/ff\": 98562,\n\t\"./global/ff-Adlm\": 52716,\n\t\"./global/ff-Adlm-BF\": 58431,\n\t\"./global/ff-Adlm-BF.js\": 58431,\n\t\"./global/ff-Adlm-CM\": 92290,\n\t\"./global/ff-Adlm-CM.js\": 92290,\n\t\"./global/ff-Adlm-GH\": 18949,\n\t\"./global/ff-Adlm-GH.js\": 18949,\n\t\"./global/ff-Adlm-GM\": 61183,\n\t\"./global/ff-Adlm-GM.js\": 61183,\n\t\"./global/ff-Adlm-GW\": 33168,\n\t\"./global/ff-Adlm-GW.js\": 33168,\n\t\"./global/ff-Adlm-LR\": 41847,\n\t\"./global/ff-Adlm-LR.js\": 41847,\n\t\"./global/ff-Adlm-MR\": 5593,\n\t\"./global/ff-Adlm-MR.js\": 5593,\n\t\"./global/ff-Adlm-NE\": 63499,\n\t\"./global/ff-Adlm-NE.js\": 63499,\n\t\"./global/ff-Adlm-NG\": 4578,\n\t\"./global/ff-Adlm-NG.js\": 4578,\n\t\"./global/ff-Adlm-SL\": 30384,\n\t\"./global/ff-Adlm-SL.js\": 30384,\n\t\"./global/ff-Adlm-SN\": 83773,\n\t\"./global/ff-Adlm-SN.js\": 83773,\n\t\"./global/ff-Adlm.js\": 52716,\n\t\"./global/ff-CM\": 22766,\n\t\"./global/ff-CM.js\": 22766,\n\t\"./global/ff-GN\": 87814,\n\t\"./global/ff-GN.js\": 87814,\n\t\"./global/ff-Latn\": 90509,\n\t\"./global/ff-Latn-BF\": 1971,\n\t\"./global/ff-Latn-BF.js\": 1971,\n\t\"./global/ff-Latn-CM\": 96256,\n\t\"./global/ff-Latn-CM.js\": 96256,\n\t\"./global/ff-Latn-GH\": 28825,\n\t\"./global/ff-Latn-GH.js\": 28825,\n\t\"./global/ff-Latn-GM\": 7762,\n\t\"./global/ff-Latn-GM.js\": 7762,\n\t\"./global/ff-Latn-GN\": 47279,\n\t\"./global/ff-Latn-GN.js\": 47279,\n\t\"./global/ff-Latn-GW\": 80594,\n\t\"./global/ff-Latn-GW.js\": 80594,\n\t\"./global/ff-Latn-LR\": 85751,\n\t\"./global/ff-Latn-LR.js\": 85751,\n\t\"./global/ff-Latn-MR\": 68188,\n\t\"./global/ff-Latn-MR.js\": 68188,\n\t\"./global/ff-Latn-NE\": 28272,\n\t\"./global/ff-Latn-NE.js\": 28272,\n\t\"./global/ff-Latn-NG\": 2387,\n\t\"./global/ff-Latn-NG.js\": 2387,\n\t\"./global/ff-Latn-SL\": 34669,\n\t\"./global/ff-Latn-SL.js\": 34669,\n\t\"./global/ff-Latn.js\": 90509,\n\t\"./global/ff-MR\": 56452,\n\t\"./global/ff-MR.js\": 56452,\n\t\"./global/ff.js\": 98562,\n\t\"./global/fi\": 4783,\n\t\"./global/fi.js\": 4783,\n\t\"./global/fil\": 64519,\n\t\"./global/fil.js\": 64519,\n\t\"./global/fo\": 73887,\n\t\"./global/fo-DK\": 65679,\n\t\"./global/fo-DK.js\": 65679,\n\t\"./global/fo.js\": 73887,\n\t\"./global/fr\": 15132,\n\t\"./global/fr-BE\": 31638,\n\t\"./global/fr-BE.js\": 31638,\n\t\"./global/fr-BF\": 84067,\n\t\"./global/fr-BF.js\": 84067,\n\t\"./global/fr-BI\": 6618,\n\t\"./global/fr-BI.js\": 6618,\n\t\"./global/fr-BJ\": 39478,\n\t\"./global/fr-BJ.js\": 39478,\n\t\"./global/fr-BL\": 4817,\n\t\"./global/fr-BL.js\": 4817,\n\t\"./global/fr-CA\": 1647,\n\t\"./global/fr-CA.js\": 1647,\n\t\"./global/fr-CD\": 4261,\n\t\"./global/fr-CD.js\": 4261,\n\t\"./global/fr-CF\": 12296,\n\t\"./global/fr-CF.js\": 12296,\n\t\"./global/fr-CG\": 30529,\n\t\"./global/fr-CG.js\": 30529,\n\t\"./global/fr-CH\": 27394,\n\t\"./global/fr-CH.js\": 27394,\n\t\"./global/fr-CI\": 75949,\n\t\"./global/fr-CI.js\": 75949,\n\t\"./global/fr-CM\": 70239,\n\t\"./global/fr-CM.js\": 70239,\n\t\"./global/fr-DJ\": 58016,\n\t\"./global/fr-DJ.js\": 58016,\n\t\"./global/fr-DZ\": 18165,\n\t\"./global/fr-DZ.js\": 18165,\n\t\"./global/fr-GA\": 98552,\n\t\"./global/fr-GA.js\": 98552,\n\t\"./global/fr-GF\": 32091,\n\t\"./global/fr-GF.js\": 32091,\n\t\"./global/fr-GN\": 78301,\n\t\"./global/fr-GN.js\": 78301,\n\t\"./global/fr-GP\": 22956,\n\t\"./global/fr-GP.js\": 22956,\n\t\"./global/fr-GQ\": 17076,\n\t\"./global/fr-GQ.js\": 17076,\n\t\"./global/fr-HT\": 88020,\n\t\"./global/fr-HT.js\": 88020,\n\t\"./global/fr-KM\": 56535,\n\t\"./global/fr-KM.js\": 56535,\n\t\"./global/fr-LU\": 56506,\n\t\"./global/fr-LU.js\": 56506,\n\t\"./global/fr-MA\": 18133,\n\t\"./global/fr-MA.js\": 18133,\n\t\"./global/fr-MC\": 81451,\n\t\"./global/fr-MC.js\": 81451,\n\t\"./global/fr-MF\": 32770,\n\t\"./global/fr-MF.js\": 32770,\n\t\"./global/fr-MG\": 26709,\n\t\"./global/fr-MG.js\": 26709,\n\t\"./global/fr-ML\": 19309,\n\t\"./global/fr-ML.js\": 19309,\n\t\"./global/fr-MQ\": 28922,\n\t\"./global/fr-MQ.js\": 28922,\n\t\"./global/fr-MR\": 132,\n\t\"./global/fr-MR.js\": 132,\n\t\"./global/fr-MU\": 15313,\n\t\"./global/fr-MU.js\": 15313,\n\t\"./global/fr-NC\": 79993,\n\t\"./global/fr-NC.js\": 79993,\n\t\"./global/fr-NE\": 9560,\n\t\"./global/fr-NE.js\": 9560,\n\t\"./global/fr-PF\": 491,\n\t\"./global/fr-PF.js\": 491,\n\t\"./global/fr-PM\": 8768,\n\t\"./global/fr-PM.js\": 8768,\n\t\"./global/fr-RE\": 18606,\n\t\"./global/fr-RE.js\": 18606,\n\t\"./global/fr-RW\": 91670,\n\t\"./global/fr-RW.js\": 91670,\n\t\"./global/fr-SC\": 70023,\n\t\"./global/fr-SC.js\": 70023,\n\t\"./global/fr-SN\": 65225,\n\t\"./global/fr-SN.js\": 65225,\n\t\"./global/fr-SY\": 88879,\n\t\"./global/fr-SY.js\": 88879,\n\t\"./global/fr-TD\": 40500,\n\t\"./global/fr-TD.js\": 40500,\n\t\"./global/fr-TG\": 22618,\n\t\"./global/fr-TG.js\": 22618,\n\t\"./global/fr-TN\": 38339,\n\t\"./global/fr-TN.js\": 38339,\n\t\"./global/fr-VU\": 36931,\n\t\"./global/fr-VU.js\": 36931,\n\t\"./global/fr-WF\": 85135,\n\t\"./global/fr-WF.js\": 85135,\n\t\"./global/fr-YT\": 34371,\n\t\"./global/fr-YT.js\": 34371,\n\t\"./global/fr.js\": 15132,\n\t\"./global/fur\": 71800,\n\t\"./global/fur.js\": 71800,\n\t\"./global/fy\": 6301,\n\t\"./global/fy.js\": 6301,\n\t\"./global/ga\": 16307,\n\t\"./global/ga-GB\": 61948,\n\t\"./global/ga-GB.js\": 61948,\n\t\"./global/ga.js\": 16307,\n\t\"./global/gd\": 64624,\n\t\"./global/gd.js\": 64624,\n\t\"./global/gl\": 41026,\n\t\"./global/gl.js\": 41026,\n\t\"./global/gsw\": 24879,\n\t\"./global/gsw-FR\": 81220,\n\t\"./global/gsw-FR.js\": 81220,\n\t\"./global/gsw-LI\": 43805,\n\t\"./global/gsw-LI.js\": 43805,\n\t\"./global/gsw.js\": 24879,\n\t\"./global/gu\": 79110,\n\t\"./global/gu.js\": 79110,\n\t\"./global/guz\": 61520,\n\t\"./global/guz.js\": 61520,\n\t\"./global/gv\": 46567,\n\t\"./global/gv.js\": 46567,\n\t\"./global/ha\": 37466,\n\t\"./global/ha-GH\": 68099,\n\t\"./global/ha-GH.js\": 68099,\n\t\"./global/ha-NE\": 62742,\n\t\"./global/ha-NE.js\": 62742,\n\t\"./global/ha.js\": 37466,\n\t\"./global/haw\": 90014,\n\t\"./global/haw.js\": 90014,\n\t\"./global/he\": 67534,\n\t\"./global/he.js\": 67534,\n\t\"./global/hi\": 86143,\n\t\"./global/hi-Latn\": 22818,\n\t\"./global/hi-Latn.js\": 22818,\n\t\"./global/hi.js\": 86143,\n\t\"./global/hr\": 69392,\n\t\"./global/hr-BA\": 42857,\n\t\"./global/hr-BA.js\": 42857,\n\t\"./global/hr.js\": 69392,\n\t\"./global/hsb\": 32083,\n\t\"./global/hsb.js\": 32083,\n\t\"./global/hu\": 45426,\n\t\"./global/hu.js\": 45426,\n\t\"./global/hy\": 46307,\n\t\"./global/hy.js\": 46307,\n\t\"./global/ia\": 88661,\n\t\"./global/ia.js\": 88661,\n\t\"./global/id\": 82329,\n\t\"./global/id.js\": 82329,\n\t\"./global/ig\": 13819,\n\t\"./global/ig.js\": 13819,\n\t\"./global/ii\": 79501,\n\t\"./global/ii.js\": 79501,\n\t\"./global/is\": 67591,\n\t\"./global/is.js\": 67591,\n\t\"./global/it\": 8922,\n\t\"./global/it-CH\": 18177,\n\t\"./global/it-CH.js\": 18177,\n\t\"./global/it-SM\": 33485,\n\t\"./global/it-SM.js\": 33485,\n\t\"./global/it-VA\": 49069,\n\t\"./global/it-VA.js\": 49069,\n\t\"./global/it.js\": 8922,\n\t\"./global/ja\": 55288,\n\t\"./global/ja.js\": 55288,\n\t\"./global/jgo\": 75582,\n\t\"./global/jgo.js\": 75582,\n\t\"./global/jmc\": 86334,\n\t\"./global/jmc.js\": 86334,\n\t\"./global/jv\": 17211,\n\t\"./global/jv.js\": 17211,\n\t\"./global/ka\": 66337,\n\t\"./global/ka.js\": 66337,\n\t\"./global/kab\": 99850,\n\t\"./global/kab.js\": 99850,\n\t\"./global/kam\": 68401,\n\t\"./global/kam.js\": 68401,\n\t\"./global/kde\": 88839,\n\t\"./global/kde.js\": 88839,\n\t\"./global/kea\": 46317,\n\t\"./global/kea.js\": 46317,\n\t\"./global/kgp\": 54452,\n\t\"./global/kgp.js\": 54452,\n\t\"./global/khq\": 90110,\n\t\"./global/khq.js\": 90110,\n\t\"./global/ki\": 35647,\n\t\"./global/ki.js\": 35647,\n\t\"./global/kk\": 60486,\n\t\"./global/kk.js\": 60486,\n\t\"./global/kkj\": 43955,\n\t\"./global/kkj.js\": 43955,\n\t\"./global/kl\": 61113,\n\t\"./global/kl.js\": 61113,\n\t\"./global/kln\": 16714,\n\t\"./global/kln.js\": 16714,\n\t\"./global/km\": 84490,\n\t\"./global/km.js\": 84490,\n\t\"./global/kn\": 80018,\n\t\"./global/kn.js\": 80018,\n\t\"./global/ko\": 46173,\n\t\"./global/ko-KP\": 93866,\n\t\"./global/ko-KP.js\": 93866,\n\t\"./global/ko.js\": 46173,\n\t\"./global/kok\": 10521,\n\t\"./global/kok.js\": 10521,\n\t\"./global/ks\": 86074,\n\t\"./global/ks-Arab\": 99425,\n\t\"./global/ks-Arab.js\": 99425,\n\t\"./global/ks-Deva\": 18657,\n\t\"./global/ks-Deva.js\": 18657,\n\t\"./global/ks.js\": 86074,\n\t\"./global/ksb\": 31169,\n\t\"./global/ksb.js\": 31169,\n\t\"./global/ksf\": 82961,\n\t\"./global/ksf.js\": 82961,\n\t\"./global/ksh\": 36910,\n\t\"./global/ksh.js\": 36910,\n\t\"./global/ku\": 74283,\n\t\"./global/ku.js\": 74283,\n\t\"./global/kw\": 75536,\n\t\"./global/kw.js\": 75536,\n\t\"./global/ky\": 1180,\n\t\"./global/ky.js\": 1180,\n\t\"./global/lag\": 30683,\n\t\"./global/lag.js\": 30683,\n\t\"./global/lb\": 25764,\n\t\"./global/lb.js\": 25764,\n\t\"./global/lg\": 84851,\n\t\"./global/lg.js\": 84851,\n\t\"./global/lkt\": 67997,\n\t\"./global/lkt.js\": 67997,\n\t\"./global/ln\": 80663,\n\t\"./global/ln-AO\": 37861,\n\t\"./global/ln-AO.js\": 37861,\n\t\"./global/ln-CF\": 72620,\n\t\"./global/ln-CF.js\": 72620,\n\t\"./global/ln-CG\": 40880,\n\t\"./global/ln-CG.js\": 40880,\n\t\"./global/ln.js\": 80663,\n\t\"./global/lo\": 7571,\n\t\"./global/lo.js\": 7571,\n\t\"./global/lrc\": 85328,\n\t\"./global/lrc-IQ\": 43373,\n\t\"./global/lrc-IQ.js\": 43373,\n\t\"./global/lrc.js\": 85328,\n\t\"./global/lt\": 85042,\n\t\"./global/lt.js\": 85042,\n\t\"./global/lu\": 37784,\n\t\"./global/lu.js\": 37784,\n\t\"./global/luo\": 69452,\n\t\"./global/luo.js\": 69452,\n\t\"./global/luy\": 63800,\n\t\"./global/luy.js\": 63800,\n\t\"./global/lv\": 76505,\n\t\"./global/lv.js\": 76505,\n\t\"./global/mai\": 3409,\n\t\"./global/mai.js\": 3409,\n\t\"./global/mas\": 2863,\n\t\"./global/mas-TZ\": 98172,\n\t\"./global/mas-TZ.js\": 98172,\n\t\"./global/mas.js\": 2863,\n\t\"./global/mer\": 52673,\n\t\"./global/mer.js\": 52673,\n\t\"./global/mfe\": 48090,\n\t\"./global/mfe.js\": 48090,\n\t\"./global/mg\": 84235,\n\t\"./global/mg.js\": 84235,\n\t\"./global/mgh\": 79033,\n\t\"./global/mgh.js\": 79033,\n\t\"./global/mgo\": 66227,\n\t\"./global/mgo.js\": 66227,\n\t\"./global/mi\": 7649,\n\t\"./global/mi.js\": 7649,\n\t\"./global/mk\": 50654,\n\t\"./global/mk.js\": 50654,\n\t\"./global/ml\": 87457,\n\t\"./global/ml.js\": 87457,\n\t\"./global/mn\": 78959,\n\t\"./global/mn.js\": 78959,\n\t\"./global/mni\": 1574,\n\t\"./global/mni-Beng\": 37321,\n\t\"./global/mni-Beng.js\": 37321,\n\t\"./global/mni.js\": 1574,\n\t\"./global/mr\": 46886,\n\t\"./global/mr.js\": 46886,\n\t\"./global/ms\": 80530,\n\t\"./global/ms-BN\": 53395,\n\t\"./global/ms-BN.js\": 53395,\n\t\"./global/ms-ID\": 88902,\n\t\"./global/ms-ID.js\": 88902,\n\t\"./global/ms-SG\": 28268,\n\t\"./global/ms-SG.js\": 28268,\n\t\"./global/ms.js\": 80530,\n\t\"./global/mt\": 81385,\n\t\"./global/mt.js\": 81385,\n\t\"./global/mua\": 94837,\n\t\"./global/mua.js\": 94837,\n\t\"./global/my\": 24799,\n\t\"./global/my.js\": 24799,\n\t\"./global/mzn\": 50529,\n\t\"./global/mzn.js\": 50529,\n\t\"./global/naq\": 75259,\n\t\"./global/naq.js\": 75259,\n\t\"./global/nb\": 3481,\n\t\"./global/nb-SJ\": 39622,\n\t\"./global/nb-SJ.js\": 39622,\n\t\"./global/nb.js\": 3481,\n\t\"./global/nd\": 30726,\n\t\"./global/nd.js\": 30726,\n\t\"./global/nds\": 75971,\n\t\"./global/nds-NL\": 19081,\n\t\"./global/nds-NL.js\": 19081,\n\t\"./global/nds.js\": 75971,\n\t\"./global/ne\": 11254,\n\t\"./global/ne-IN\": 4119,\n\t\"./global/ne-IN.js\": 4119,\n\t\"./global/ne.js\": 11254,\n\t\"./global/nl\": 23679,\n\t\"./global/nl-AW\": 37326,\n\t\"./global/nl-AW.js\": 37326,\n\t\"./global/nl-BE\": 96148,\n\t\"./global/nl-BE.js\": 96148,\n\t\"./global/nl-BQ\": 32550,\n\t\"./global/nl-BQ.js\": 32550,\n\t\"./global/nl-CW\": 19343,\n\t\"./global/nl-CW.js\": 19343,\n\t\"./global/nl-SR\": 89088,\n\t\"./global/nl-SR.js\": 89088,\n\t\"./global/nl-SX\": 53040,\n\t\"./global/nl-SX.js\": 53040,\n\t\"./global/nl.js\": 23679,\n\t\"./global/nmg\": 39668,\n\t\"./global/nmg.js\": 39668,\n\t\"./global/nn\": 93849,\n\t\"./global/nn.js\": 93849,\n\t\"./global/nnh\": 93619,\n\t\"./global/nnh.js\": 93619,\n\t\"./global/no\": 83560,\n\t\"./global/no.js\": 83560,\n\t\"./global/nus\": 25582,\n\t\"./global/nus.js\": 25582,\n\t\"./global/nyn\": 88472,\n\t\"./global/nyn.js\": 88472,\n\t\"./global/om\": 32544,\n\t\"./global/om-KE\": 27674,\n\t\"./global/om-KE.js\": 27674,\n\t\"./global/om.js\": 32544,\n\t\"./global/or\": 92012,\n\t\"./global/or.js\": 92012,\n\t\"./global/os\": 77226,\n\t\"./global/os-RU\": 93908,\n\t\"./global/os-RU.js\": 93908,\n\t\"./global/os.js\": 77226,\n\t\"./global/pa\": 37680,\n\t\"./global/pa-Arab\": 45680,\n\t\"./global/pa-Arab.js\": 45680,\n\t\"./global/pa-Guru\": 34029,\n\t\"./global/pa-Guru.js\": 34029,\n\t\"./global/pa.js\": 37680,\n\t\"./global/pcm\": 92686,\n\t\"./global/pcm.js\": 92686,\n\t\"./global/pl\": 18592,\n\t\"./global/pl.js\": 18592,\n\t\"./global/ps\": 70038,\n\t\"./global/ps-PK\": 18761,\n\t\"./global/ps-PK.js\": 18761,\n\t\"./global/ps.js\": 70038,\n\t\"./global/pt\": 87141,\n\t\"./global/pt-AO\": 88323,\n\t\"./global/pt-AO.js\": 88323,\n\t\"./global/pt-CH\": 17116,\n\t\"./global/pt-CH.js\": 17116,\n\t\"./global/pt-CV\": 49932,\n\t\"./global/pt-CV.js\": 49932,\n\t\"./global/pt-GQ\": 41162,\n\t\"./global/pt-GQ.js\": 41162,\n\t\"./global/pt-GW\": 5043,\n\t\"./global/pt-GW.js\": 5043,\n\t\"./global/pt-LU\": 7342,\n\t\"./global/pt-LU.js\": 7342,\n\t\"./global/pt-MO\": 62433,\n\t\"./global/pt-MO.js\": 62433,\n\t\"./global/pt-MZ\": 1459,\n\t\"./global/pt-MZ.js\": 1459,\n\t\"./global/pt-PT\": 79369,\n\t\"./global/pt-PT.js\": 79369,\n\t\"./global/pt-ST\": 71814,\n\t\"./global/pt-ST.js\": 71814,\n\t\"./global/pt-TL\": 40505,\n\t\"./global/pt-TL.js\": 40505,\n\t\"./global/pt.js\": 87141,\n\t\"./global/qu\": 15000,\n\t\"./global/qu-BO\": 10582,\n\t\"./global/qu-BO.js\": 10582,\n\t\"./global/qu-EC\": 89552,\n\t\"./global/qu-EC.js\": 89552,\n\t\"./global/qu.js\": 15000,\n\t\"./global/rm\": 74005,\n\t\"./global/rm.js\": 74005,\n\t\"./global/rn\": 7810,\n\t\"./global/rn.js\": 7810,\n\t\"./global/ro\": 30595,\n\t\"./global/ro-MD\": 76918,\n\t\"./global/ro-MD.js\": 76918,\n\t\"./global/ro.js\": 30595,\n\t\"./global/rof\": 49296,\n\t\"./global/rof.js\": 49296,\n\t\"./global/ru\": 62630,\n\t\"./global/ru-BY\": 50668,\n\t\"./global/ru-BY.js\": 50668,\n\t\"./global/ru-KG\": 73427,\n\t\"./global/ru-KG.js\": 73427,\n\t\"./global/ru-KZ\": 85518,\n\t\"./global/ru-KZ.js\": 85518,\n\t\"./global/ru-MD\": 89182,\n\t\"./global/ru-MD.js\": 89182,\n\t\"./global/ru-UA\": 65025,\n\t\"./global/ru-UA.js\": 65025,\n\t\"./global/ru.js\": 62630,\n\t\"./global/rw\": 60213,\n\t\"./global/rw.js\": 60213,\n\t\"./global/rwk\": 73083,\n\t\"./global/rwk.js\": 73083,\n\t\"./global/sa\": 16138,\n\t\"./global/sa.js\": 16138,\n\t\"./global/sah\": 17125,\n\t\"./global/sah.js\": 17125,\n\t\"./global/saq\": 12295,\n\t\"./global/saq.js\": 12295,\n\t\"./global/sat\": 73688,\n\t\"./global/sat-Olck\": 75262,\n\t\"./global/sat-Olck.js\": 75262,\n\t\"./global/sat.js\": 73688,\n\t\"./global/sbp\": 30639,\n\t\"./global/sbp.js\": 30639,\n\t\"./global/sc\": 16141,\n\t\"./global/sc.js\": 16141,\n\t\"./global/sd\": 96392,\n\t\"./global/sd-Arab\": 37482,\n\t\"./global/sd-Arab.js\": 37482,\n\t\"./global/sd-Deva\": 61234,\n\t\"./global/sd-Deva.js\": 61234,\n\t\"./global/sd.js\": 96392,\n\t\"./global/se\": 53056,\n\t\"./global/se-FI\": 16654,\n\t\"./global/se-FI.js\": 16654,\n\t\"./global/se-SE\": 48449,\n\t\"./global/se-SE.js\": 48449,\n\t\"./global/se.js\": 53056,\n\t\"./global/seh\": 6620,\n\t\"./global/seh.js\": 6620,\n\t\"./global/ses\": 36166,\n\t\"./global/ses.js\": 36166,\n\t\"./global/sg\": 56247,\n\t\"./global/sg.js\": 56247,\n\t\"./global/shi\": 23789,\n\t\"./global/shi-Latn\": 12054,\n\t\"./global/shi-Latn.js\": 12054,\n\t\"./global/shi-Tfng\": 41226,\n\t\"./global/shi-Tfng.js\": 41226,\n\t\"./global/shi.js\": 23789,\n\t\"./global/si\": 76916,\n\t\"./global/si.js\": 76916,\n\t\"./global/sk\": 23702,\n\t\"./global/sk.js\": 23702,\n\t\"./global/sl\": 26998,\n\t\"./global/sl.js\": 26998,\n\t\"./global/smn\": 39024,\n\t\"./global/smn.js\": 39024,\n\t\"./global/sn\": 31357,\n\t\"./global/sn.js\": 31357,\n\t\"./global/so\": 88186,\n\t\"./global/so-DJ\": 12733,\n\t\"./global/so-DJ.js\": 12733,\n\t\"./global/so-ET\": 59400,\n\t\"./global/so-ET.js\": 59400,\n\t\"./global/so-KE\": 24252,\n\t\"./global/so-KE.js\": 24252,\n\t\"./global/so.js\": 88186,\n\t\"./global/sq\": 93914,\n\t\"./global/sq-MK\": 84864,\n\t\"./global/sq-MK.js\": 84864,\n\t\"./global/sq-XK\": 9250,\n\t\"./global/sq-XK.js\": 9250,\n\t\"./global/sq.js\": 93914,\n\t\"./global/sr\": 80085,\n\t\"./global/sr-Cyrl\": 78269,\n\t\"./global/sr-Cyrl-BA\": 95562,\n\t\"./global/sr-Cyrl-BA.js\": 95562,\n\t\"./global/sr-Cyrl-ME\": 98954,\n\t\"./global/sr-Cyrl-ME.js\": 98954,\n\t\"./global/sr-Cyrl-XK\": 65042,\n\t\"./global/sr-Cyrl-XK.js\": 65042,\n\t\"./global/sr-Cyrl.js\": 78269,\n\t\"./global/sr-Latn\": 85393,\n\t\"./global/sr-Latn-BA\": 81064,\n\t\"./global/sr-Latn-BA.js\": 81064,\n\t\"./global/sr-Latn-ME\": 9267,\n\t\"./global/sr-Latn-ME.js\": 9267,\n\t\"./global/sr-Latn-XK\": 35517,\n\t\"./global/sr-Latn-XK.js\": 35517,\n\t\"./global/sr-Latn.js\": 85393,\n\t\"./global/sr.js\": 80085,\n\t\"./global/su\": 25924,\n\t\"./global/su-Latn\": 68695,\n\t\"./global/su-Latn.js\": 68695,\n\t\"./global/su.js\": 25924,\n\t\"./global/sv\": 89393,\n\t\"./global/sv-AX\": 45491,\n\t\"./global/sv-AX.js\": 45491,\n\t\"./global/sv-FI\": 84027,\n\t\"./global/sv-FI.js\": 84027,\n\t\"./global/sv.js\": 89393,\n\t\"./global/sw\": 31348,\n\t\"./global/sw-CD\": 84121,\n\t\"./global/sw-CD.js\": 84121,\n\t\"./global/sw-KE\": 91942,\n\t\"./global/sw-KE.js\": 91942,\n\t\"./global/sw-UG\": 28575,\n\t\"./global/sw-UG.js\": 28575,\n\t\"./global/sw.js\": 31348,\n\t\"./global/ta\": 54559,\n\t\"./global/ta-LK\": 23706,\n\t\"./global/ta-LK.js\": 23706,\n\t\"./global/ta-MY\": 43348,\n\t\"./global/ta-MY.js\": 43348,\n\t\"./global/ta-SG\": 6867,\n\t\"./global/ta-SG.js\": 6867,\n\t\"./global/ta.js\": 54559,\n\t\"./global/te\": 41775,\n\t\"./global/te.js\": 41775,\n\t\"./global/teo\": 36719,\n\t\"./global/teo-KE\": 84992,\n\t\"./global/teo-KE.js\": 84992,\n\t\"./global/teo.js\": 36719,\n\t\"./global/tg\": 78979,\n\t\"./global/tg.js\": 78979,\n\t\"./global/th\": 82378,\n\t\"./global/th.js\": 82378,\n\t\"./global/ti\": 60349,\n\t\"./global/ti-ER\": 17288,\n\t\"./global/ti-ER.js\": 17288,\n\t\"./global/ti.js\": 60349,\n\t\"./global/tk\": 65736,\n\t\"./global/tk.js\": 65736,\n\t\"./global/to\": 70874,\n\t\"./global/to.js\": 70874,\n\t\"./global/tr\": 8734,\n\t\"./global/tr-CY\": 22913,\n\t\"./global/tr-CY.js\": 22913,\n\t\"./global/tr.js\": 8734,\n\t\"./global/tt\": 88659,\n\t\"./global/tt.js\": 88659,\n\t\"./global/twq\": 79754,\n\t\"./global/twq.js\": 79754,\n\t\"./global/tzm\": 50794,\n\t\"./global/tzm.js\": 50794,\n\t\"./global/ug\": 84010,\n\t\"./global/ug.js\": 84010,\n\t\"./global/uk\": 14653,\n\t\"./global/uk.js\": 14653,\n\t\"./global/und\": 89823,\n\t\"./global/und.js\": 89823,\n\t\"./global/ur\": 12397,\n\t\"./global/ur-IN\": 42183,\n\t\"./global/ur-IN.js\": 42183,\n\t\"./global/ur.js\": 12397,\n\t\"./global/uz\": 69507,\n\t\"./global/uz-Arab\": 79478,\n\t\"./global/uz-Arab.js\": 79478,\n\t\"./global/uz-Cyrl\": 41793,\n\t\"./global/uz-Cyrl.js\": 41793,\n\t\"./global/uz-Latn\": 80844,\n\t\"./global/uz-Latn.js\": 80844,\n\t\"./global/uz.js\": 69507,\n\t\"./global/vai\": 3125,\n\t\"./global/vai-Latn\": 70959,\n\t\"./global/vai-Latn.js\": 70959,\n\t\"./global/vai-Vaii\": 66930,\n\t\"./global/vai-Vaii.js\": 66930,\n\t\"./global/vai.js\": 3125,\n\t\"./global/vi\": 47926,\n\t\"./global/vi.js\": 47926,\n\t\"./global/vun\": 26599,\n\t\"./global/vun.js\": 26599,\n\t\"./global/wae\": 45886,\n\t\"./global/wae.js\": 45886,\n\t\"./global/wo\": 13389,\n\t\"./global/wo.js\": 13389,\n\t\"./global/xh\": 21914,\n\t\"./global/xh.js\": 21914,\n\t\"./global/xog\": 28798,\n\t\"./global/xog.js\": 28798,\n\t\"./global/yav\": 39807,\n\t\"./global/yav.js\": 39807,\n\t\"./global/yi\": 61206,\n\t\"./global/yi.js\": 61206,\n\t\"./global/yo\": 9171,\n\t\"./global/yo-BJ\": 30267,\n\t\"./global/yo-BJ.js\": 30267,\n\t\"./global/yo.js\": 9171,\n\t\"./global/yrl\": 28407,\n\t\"./global/yrl-CO\": 44745,\n\t\"./global/yrl-CO.js\": 44745,\n\t\"./global/yrl-VE\": 42749,\n\t\"./global/yrl-VE.js\": 42749,\n\t\"./global/yrl.js\": 28407,\n\t\"./global/yue\": 84133,\n\t\"./global/yue-Hans\": 89065,\n\t\"./global/yue-Hans.js\": 89065,\n\t\"./global/yue-Hant\": 8000,\n\t\"./global/yue-Hant.js\": 8000,\n\t\"./global/yue.js\": 84133,\n\t\"./global/zgh\": 70454,\n\t\"./global/zgh.js\": 70454,\n\t\"./global/zh\": 87444,\n\t\"./global/zh-Hans\": 73410,\n\t\"./global/zh-Hans-HK\": 77482,\n\t\"./global/zh-Hans-HK.js\": 77482,\n\t\"./global/zh-Hans-MO\": 99719,\n\t\"./global/zh-Hans-MO.js\": 99719,\n\t\"./global/zh-Hans-SG\": 36154,\n\t\"./global/zh-Hans-SG.js\": 36154,\n\t\"./global/zh-Hans.js\": 73410,\n\t\"./global/zh-Hant\": 57998,\n\t\"./global/zh-Hant-HK\": 66656,\n\t\"./global/zh-Hant-HK.js\": 66656,\n\t\"./global/zh-Hant-MO\": 78431,\n\t\"./global/zh-Hant-MO.js\": 78431,\n\t\"./global/zh-Hant.js\": 57998,\n\t\"./global/zh.js\": 87444,\n\t\"./global/zu\": 56380,\n\t\"./global/zu.js\": 56380,\n\t\"./gsw\": 72859,\n\t\"./gsw-FR\": 13083,\n\t\"./gsw-FR.mjs\": 13083,\n\t\"./gsw-LI\": 67575,\n\t\"./gsw-LI.mjs\": 67575,\n\t\"./gsw.mjs\": 72859,\n\t\"./gu\": 97111,\n\t\"./gu.mjs\": 97111,\n\t\"./guz\": 77724,\n\t\"./guz.mjs\": 77724,\n\t\"./gv\": 47651,\n\t\"./gv.mjs\": 47651,\n\t\"./ha\": 14232,\n\t\"./ha-GH\": 23172,\n\t\"./ha-GH.mjs\": 23172,\n\t\"./ha-NE\": 60741,\n\t\"./ha-NE.mjs\": 60741,\n\t\"./ha.mjs\": 14232,\n\t\"./haw\": 48119,\n\t\"./haw.mjs\": 48119,\n\t\"./he\": 52848,\n\t\"./he.mjs\": 52848,\n\t\"./hi\": 88432,\n\t\"./hi-Latn\": 77626,\n\t\"./hi-Latn.mjs\": 77626,\n\t\"./hi.mjs\": 88432,\n\t\"./hr\": 9998,\n\t\"./hr-BA\": 1385,\n\t\"./hr-BA.mjs\": 1385,\n\t\"./hr.mjs\": 9998,\n\t\"./hsb\": 67285,\n\t\"./hsb.mjs\": 67285,\n\t\"./hu\": 24894,\n\t\"./hu.mjs\": 24894,\n\t\"./hy\": 88407,\n\t\"./hy.mjs\": 88407,\n\t\"./ia\": 62013,\n\t\"./ia.mjs\": 62013,\n\t\"./id\": 72606,\n\t\"./id.mjs\": 72606,\n\t\"./ig\": 47980,\n\t\"./ig.mjs\": 47980,\n\t\"./ii\": 63852,\n\t\"./ii.mjs\": 63852,\n\t\"./is\": 25219,\n\t\"./is.mjs\": 25219,\n\t\"./it\": 4129,\n\t\"./it-CH\": 88287,\n\t\"./it-CH.mjs\": 88287,\n\t\"./it-SM\": 37277,\n\t\"./it-SM.mjs\": 37277,\n\t\"./it-VA\": 45366,\n\t\"./it-VA.mjs\": 45366,\n\t\"./it.mjs\": 4129,\n\t\"./ja\": 69528,\n\t\"./ja.mjs\": 69528,\n\t\"./jgo\": 48376,\n\t\"./jgo.mjs\": 48376,\n\t\"./jmc\": 97393,\n\t\"./jmc.mjs\": 97393,\n\t\"./jv\": 80832,\n\t\"./jv.mjs\": 80832,\n\t\"./ka\": 47420,\n\t\"./ka.mjs\": 47420,\n\t\"./kab\": 76530,\n\t\"./kab.mjs\": 76530,\n\t\"./kam\": 49787,\n\t\"./kam.mjs\": 49787,\n\t\"./kde\": 48481,\n\t\"./kde.mjs\": 48481,\n\t\"./kea\": 5365,\n\t\"./kea.mjs\": 5365,\n\t\"./kgp\": 40882,\n\t\"./kgp.mjs\": 40882,\n\t\"./khq\": 80914,\n\t\"./khq.mjs\": 80914,\n\t\"./ki\": 68111,\n\t\"./ki.mjs\": 68111,\n\t\"./kk\": 46906,\n\t\"./kk.mjs\": 46906,\n\t\"./kkj\": 19275,\n\t\"./kkj.mjs\": 19275,\n\t\"./kl\": 51362,\n\t\"./kl.mjs\": 51362,\n\t\"./kln\": 16191,\n\t\"./kln.mjs\": 16191,\n\t\"./km\": 25392,\n\t\"./km.mjs\": 25392,\n\t\"./kn\": 59475,\n\t\"./kn.mjs\": 59475,\n\t\"./ko\": 74618,\n\t\"./ko-KP\": 52919,\n\t\"./ko-KP.mjs\": 52919,\n\t\"./ko.mjs\": 74618,\n\t\"./kok\": 37090,\n\t\"./kok.mjs\": 37090,\n\t\"./ks\": 42127,\n\t\"./ks-Arab\": 62914,\n\t\"./ks-Arab.mjs\": 62914,\n\t\"./ks-Deva\": 9789,\n\t\"./ks-Deva.mjs\": 9789,\n\t\"./ks.mjs\": 42127,\n\t\"./ksb\": 19474,\n\t\"./ksb.mjs\": 19474,\n\t\"./ksf\": 6424,\n\t\"./ksf.mjs\": 6424,\n\t\"./ksh\": 19753,\n\t\"./ksh.mjs\": 19753,\n\t\"./ku\": 6578,\n\t\"./ku.mjs\": 6578,\n\t\"./kw\": 48530,\n\t\"./kw.mjs\": 48530,\n\t\"./ky\": 63682,\n\t\"./ky.mjs\": 63682,\n\t\"./lag\": 85185,\n\t\"./lag.mjs\": 85185,\n\t\"./lb\": 86307,\n\t\"./lb.mjs\": 86307,\n\t\"./lg\": 75613,\n\t\"./lg.mjs\": 75613,\n\t\"./lkt\": 39939,\n\t\"./lkt.mjs\": 39939,\n\t\"./ln\": 4902,\n\t\"./ln-AO\": 59318,\n\t\"./ln-AO.mjs\": 59318,\n\t\"./ln-CF\": 46599,\n\t\"./ln-CF.mjs\": 46599,\n\t\"./ln-CG\": 98509,\n\t\"./ln-CG.mjs\": 98509,\n\t\"./ln.mjs\": 4902,\n\t\"./lo\": 21037,\n\t\"./lo.mjs\": 21037,\n\t\"./locales.externs\": 43553,\n\t\"./locales.externs.js\": 43553,\n\t\"./lrc\": 3604,\n\t\"./lrc-IQ\": 93647,\n\t\"./lrc-IQ.mjs\": 93647,\n\t\"./lrc.mjs\": 3604,\n\t\"./lt\": 25461,\n\t\"./lt.mjs\": 25461,\n\t\"./lu\": 42371,\n\t\"./lu.mjs\": 42371,\n\t\"./luo\": 96071,\n\t\"./luo.mjs\": 96071,\n\t\"./luy\": 82258,\n\t\"./luy.mjs\": 82258,\n\t\"./lv\": 14305,\n\t\"./lv.mjs\": 14305,\n\t\"./mai\": 19414,\n\t\"./mai.mjs\": 19414,\n\t\"./mas\": 82439,\n\t\"./mas-TZ\": 8275,\n\t\"./mas-TZ.mjs\": 8275,\n\t\"./mas.mjs\": 82439,\n\t\"./mer\": 2176,\n\t\"./mer.mjs\": 2176,\n\t\"./mfe\": 63779,\n\t\"./mfe.mjs\": 63779,\n\t\"./mg\": 71590,\n\t\"./mg.mjs\": 71590,\n\t\"./mgh\": 5414,\n\t\"./mgh.mjs\": 5414,\n\t\"./mgo\": 23599,\n\t\"./mgo.mjs\": 23599,\n\t\"./mi\": 83061,\n\t\"./mi.mjs\": 83061,\n\t\"./mk\": 80606,\n\t\"./mk.mjs\": 80606,\n\t\"./ml\": 94372,\n\t\"./ml.mjs\": 94372,\n\t\"./mn\": 29899,\n\t\"./mn.mjs\": 29899,\n\t\"./mni\": 90165,\n\t\"./mni-Beng\": 77803,\n\t\"./mni-Beng.mjs\": 77803,\n\t\"./mni.mjs\": 90165,\n\t\"./mr\": 33505,\n\t\"./mr.mjs\": 33505,\n\t\"./ms\": 22176,\n\t\"./ms-BN\": 93744,\n\t\"./ms-BN.mjs\": 93744,\n\t\"./ms-ID\": 53155,\n\t\"./ms-ID.mjs\": 53155,\n\t\"./ms-SG\": 82220,\n\t\"./ms-SG.mjs\": 82220,\n\t\"./ms.mjs\": 22176,\n\t\"./mt\": 49414,\n\t\"./mt.mjs\": 49414,\n\t\"./mua\": 80630,\n\t\"./mua.mjs\": 80630,\n\t\"./my\": 97379,\n\t\"./my.mjs\": 97379,\n\t\"./mzn\": 67043,\n\t\"./mzn.mjs\": 67043,\n\t\"./naq\": 3026,\n\t\"./naq.mjs\": 3026,\n\t\"./nb\": 74033,\n\t\"./nb-SJ\": 47761,\n\t\"./nb-SJ.mjs\": 47761,\n\t\"./nb.mjs\": 74033,\n\t\"./nd\": 4759,\n\t\"./nd.mjs\": 4759,\n\t\"./nds\": 12109,\n\t\"./nds-NL\": 78339,\n\t\"./nds-NL.mjs\": 78339,\n\t\"./nds.mjs\": 12109,\n\t\"./ne\": 84026,\n\t\"./ne-IN\": 68074,\n\t\"./ne-IN.mjs\": 68074,\n\t\"./ne.mjs\": 84026,\n\t\"./nl\": 2293,\n\t\"./nl-AW\": 99306,\n\t\"./nl-AW.mjs\": 99306,\n\t\"./nl-BE\": 69012,\n\t\"./nl-BE.mjs\": 69012,\n\t\"./nl-BQ\": 2802,\n\t\"./nl-BQ.mjs\": 2802,\n\t\"./nl-CW\": 88193,\n\t\"./nl-CW.mjs\": 88193,\n\t\"./nl-SR\": 78126,\n\t\"./nl-SR.mjs\": 78126,\n\t\"./nl-SX\": 2072,\n\t\"./nl-SX.mjs\": 2072,\n\t\"./nl.mjs\": 2293,\n\t\"./nmg\": 40867,\n\t\"./nmg.mjs\": 40867,\n\t\"./nn\": 56900,\n\t\"./nn.mjs\": 56900,\n\t\"./nnh\": 23080,\n\t\"./nnh.mjs\": 23080,\n\t\"./no\": 70152,\n\t\"./no.mjs\": 70152,\n\t\"./nus\": 10393,\n\t\"./nus.mjs\": 10393,\n\t\"./nyn\": 84336,\n\t\"./nyn.mjs\": 84336,\n\t\"./om\": 1423,\n\t\"./om-KE\": 87298,\n\t\"./om-KE.mjs\": 87298,\n\t\"./om.mjs\": 1423,\n\t\"./or\": 47201,\n\t\"./or.mjs\": 47201,\n\t\"./os\": 36817,\n\t\"./os-RU\": 93962,\n\t\"./os-RU.mjs\": 93962,\n\t\"./os.mjs\": 36817,\n\t\"./pa\": 32148,\n\t\"./pa-Arab\": 55156,\n\t\"./pa-Arab.mjs\": 55156,\n\t\"./pa-Guru\": 24796,\n\t\"./pa-Guru.mjs\": 24796,\n\t\"./pa.mjs\": 32148,\n\t\"./pcm\": 28710,\n\t\"./pcm.mjs\": 28710,\n\t\"./pl\": 91499,\n\t\"./pl.mjs\": 91499,\n\t\"./ps\": 87475,\n\t\"./ps-PK\": 75019,\n\t\"./ps-PK.mjs\": 75019,\n\t\"./ps.mjs\": 87475,\n\t\"./pt\": 27423,\n\t\"./pt-AO\": 48413,\n\t\"./pt-AO.mjs\": 48413,\n\t\"./pt-CH\": 81081,\n\t\"./pt-CH.mjs\": 81081,\n\t\"./pt-CV\": 87246,\n\t\"./pt-CV.mjs\": 87246,\n\t\"./pt-GQ\": 19188,\n\t\"./pt-GQ.mjs\": 19188,\n\t\"./pt-GW\": 51669,\n\t\"./pt-GW.mjs\": 51669,\n\t\"./pt-LU\": 33204,\n\t\"./pt-LU.mjs\": 33204,\n\t\"./pt-MO\": 82366,\n\t\"./pt-MO.mjs\": 82366,\n\t\"./pt-MZ\": 88119,\n\t\"./pt-MZ.mjs\": 88119,\n\t\"./pt-PT\": 18296,\n\t\"./pt-PT.mjs\": 18296,\n\t\"./pt-ST\": 47904,\n\t\"./pt-ST.mjs\": 47904,\n\t\"./pt-TL\": 69954,\n\t\"./pt-TL.mjs\": 69954,\n\t\"./pt.mjs\": 27423,\n\t\"./qu\": 14709,\n\t\"./qu-BO\": 88775,\n\t\"./qu-BO.mjs\": 88775,\n\t\"./qu-EC\": 37603,\n\t\"./qu-EC.mjs\": 37603,\n\t\"./qu.mjs\": 14709,\n\t\"./rm\": 82082,\n\t\"./rm.mjs\": 82082,\n\t\"./rn\": 22221,\n\t\"./rn.mjs\": 22221,\n\t\"./ro\": 85040,\n\t\"./ro-MD\": 59941,\n\t\"./ro-MD.mjs\": 59941,\n\t\"./ro.mjs\": 85040,\n\t\"./rof\": 94146,\n\t\"./rof.mjs\": 94146,\n\t\"./ru\": 17954,\n\t\"./ru-BY\": 89392,\n\t\"./ru-BY.mjs\": 89392,\n\t\"./ru-KG\": 91856,\n\t\"./ru-KG.mjs\": 91856,\n\t\"./ru-KZ\": 44316,\n\t\"./ru-KZ.mjs\": 44316,\n\t\"./ru-MD\": 82509,\n\t\"./ru-MD.mjs\": 82509,\n\t\"./ru-UA\": 55178,\n\t\"./ru-UA.mjs\": 55178,\n\t\"./ru.mjs\": 17954,\n\t\"./rw\": 99224,\n\t\"./rw.mjs\": 99224,\n\t\"./rwk\": 56148,\n\t\"./rwk.mjs\": 56148,\n\t\"./sa\": 67200,\n\t\"./sa.mjs\": 67200,\n\t\"./sah\": 83534,\n\t\"./sah.mjs\": 83534,\n\t\"./saq\": 29039,\n\t\"./saq.mjs\": 29039,\n\t\"./sat\": 25652,\n\t\"./sat-Olck\": 53385,\n\t\"./sat-Olck.mjs\": 53385,\n\t\"./sat.mjs\": 25652,\n\t\"./sbp\": 31407,\n\t\"./sbp.mjs\": 31407,\n\t\"./sc\": 58739,\n\t\"./sc.mjs\": 58739,\n\t\"./sd\": 70325,\n\t\"./sd-Arab\": 75747,\n\t\"./sd-Arab.mjs\": 75747,\n\t\"./sd-Deva\": 20506,\n\t\"./sd-Deva.mjs\": 20506,\n\t\"./sd.mjs\": 70325,\n\t\"./se\": 61912,\n\t\"./se-FI\": 5935,\n\t\"./se-FI.mjs\": 5935,\n\t\"./se-SE\": 75170,\n\t\"./se-SE.mjs\": 75170,\n\t\"./se.mjs\": 61912,\n\t\"./seh\": 64486,\n\t\"./seh.mjs\": 64486,\n\t\"./ses\": 43640,\n\t\"./ses.mjs\": 43640,\n\t\"./sg\": 42845,\n\t\"./sg.mjs\": 42845,\n\t\"./shi\": 90990,\n\t\"./shi-Latn\": 207,\n\t\"./shi-Latn.mjs\": 207,\n\t\"./shi-Tfng\": 67606,\n\t\"./shi-Tfng.mjs\": 67606,\n\t\"./shi.mjs\": 90990,\n\t\"./si\": 98823,\n\t\"./si.mjs\": 98823,\n\t\"./sk\": 70473,\n\t\"./sk.mjs\": 70473,\n\t\"./sl\": 99108,\n\t\"./sl.mjs\": 99108,\n\t\"./smn\": 80858,\n\t\"./smn.mjs\": 80858,\n\t\"./sn\": 55281,\n\t\"./sn.mjs\": 55281,\n\t\"./so\": 54875,\n\t\"./so-DJ\": 94875,\n\t\"./so-DJ.mjs\": 94875,\n\t\"./so-ET\": 17990,\n\t\"./so-ET.mjs\": 17990,\n\t\"./so-KE\": 12565,\n\t\"./so-KE.mjs\": 12565,\n\t\"./so.mjs\": 54875,\n\t\"./sq\": 7951,\n\t\"./sq-MK\": 16633,\n\t\"./sq-MK.mjs\": 16633,\n\t\"./sq-XK\": 37627,\n\t\"./sq-XK.mjs\": 37627,\n\t\"./sq.mjs\": 7951,\n\t\"./sr\": 69079,\n\t\"./sr-Cyrl\": 17595,\n\t\"./sr-Cyrl-BA\": 52386,\n\t\"./sr-Cyrl-BA.mjs\": 52386,\n\t\"./sr-Cyrl-ME\": 48232,\n\t\"./sr-Cyrl-ME.mjs\": 48232,\n\t\"./sr-Cyrl-XK\": 69294,\n\t\"./sr-Cyrl-XK.mjs\": 69294,\n\t\"./sr-Cyrl.mjs\": 17595,\n\t\"./sr-Latn\": 81673,\n\t\"./sr-Latn-BA\": 51457,\n\t\"./sr-Latn-BA.mjs\": 51457,\n\t\"./sr-Latn-ME\": 67419,\n\t\"./sr-Latn-ME.mjs\": 67419,\n\t\"./sr-Latn-XK\": 28759,\n\t\"./sr-Latn-XK.mjs\": 28759,\n\t\"./sr-Latn.mjs\": 81673,\n\t\"./sr.mjs\": 69079,\n\t\"./su\": 55564,\n\t\"./su-Latn\": 14704,\n\t\"./su-Latn.mjs\": 14704,\n\t\"./su.mjs\": 55564,\n\t\"./sv\": 75664,\n\t\"./sv-AX\": 12091,\n\t\"./sv-AX.mjs\": 12091,\n\t\"./sv-FI\": 20419,\n\t\"./sv-FI.mjs\": 20419,\n\t\"./sv.mjs\": 75664,\n\t\"./sw\": 28599,\n\t\"./sw-CD\": 69092,\n\t\"./sw-CD.mjs\": 69092,\n\t\"./sw-KE\": 21117,\n\t\"./sw-KE.mjs\": 21117,\n\t\"./sw-UG\": 49802,\n\t\"./sw-UG.mjs\": 49802,\n\t\"./sw.mjs\": 28599,\n\t\"./ta\": 78608,\n\t\"./ta-LK\": 24135,\n\t\"./ta-LK.mjs\": 24135,\n\t\"./ta-MY\": 8082,\n\t\"./ta-MY.mjs\": 8082,\n\t\"./ta-SG\": 80484,\n\t\"./ta-SG.mjs\": 80484,\n\t\"./ta.mjs\": 78608,\n\t\"./te\": 2200,\n\t\"./te.mjs\": 2200,\n\t\"./teo\": 51733,\n\t\"./teo-KE\": 99489,\n\t\"./teo-KE.mjs\": 99489,\n\t\"./teo.mjs\": 51733,\n\t\"./tg\": 16032,\n\t\"./tg.mjs\": 16032,\n\t\"./th\": 1291,\n\t\"./th.mjs\": 1291,\n\t\"./ti\": 4046,\n\t\"./ti-ER\": 56287,\n\t\"./ti-ER.mjs\": 56287,\n\t\"./ti.mjs\": 4046,\n\t\"./tk\": 98904,\n\t\"./tk.mjs\": 98904,\n\t\"./to\": 92333,\n\t\"./to.mjs\": 92333,\n\t\"./tr\": 55763,\n\t\"./tr-CY\": 52558,\n\t\"./tr-CY.mjs\": 52558,\n\t\"./tr.mjs\": 55763,\n\t\"./tt\": 49299,\n\t\"./tt.mjs\": 49299,\n\t\"./twq\": 94050,\n\t\"./twq.mjs\": 94050,\n\t\"./tzm\": 90327,\n\t\"./tzm.mjs\": 90327,\n\t\"./ug\": 44475,\n\t\"./ug.mjs\": 44475,\n\t\"./uk\": 21221,\n\t\"./uk.mjs\": 21221,\n\t\"./und\": 50448,\n\t\"./und.mjs\": 50448,\n\t\"./ur\": 71412,\n\t\"./ur-IN\": 73373,\n\t\"./ur-IN.mjs\": 73373,\n\t\"./ur.mjs\": 71412,\n\t\"./uz\": 26609,\n\t\"./uz-Arab\": 93969,\n\t\"./uz-Arab.mjs\": 93969,\n\t\"./uz-Cyrl\": 59794,\n\t\"./uz-Cyrl.mjs\": 59794,\n\t\"./uz-Latn\": 87218,\n\t\"./uz-Latn.mjs\": 87218,\n\t\"./uz.mjs\": 26609,\n\t\"./vai\": 42057,\n\t\"./vai-Latn\": 79381,\n\t\"./vai-Latn.mjs\": 79381,\n\t\"./vai-Vaii\": 12504,\n\t\"./vai-Vaii.mjs\": 12504,\n\t\"./vai.mjs\": 42057,\n\t\"./vi\": 40617,\n\t\"./vi.mjs\": 40617,\n\t\"./vun\": 43722,\n\t\"./vun.mjs\": 43722,\n\t\"./wae\": 78458,\n\t\"./wae.mjs\": 78458,\n\t\"./wo\": 68424,\n\t\"./wo.mjs\": 68424,\n\t\"./xh\": 49094,\n\t\"./xh.mjs\": 49094,\n\t\"./xog\": 80083,\n\t\"./xog.mjs\": 80083,\n\t\"./yav\": 95397,\n\t\"./yav.mjs\": 95397,\n\t\"./yi\": 52007,\n\t\"./yi.mjs\": 52007,\n\t\"./yo\": 14412,\n\t\"./yo-BJ\": 69969,\n\t\"./yo-BJ.mjs\": 69969,\n\t\"./yo.mjs\": 14412,\n\t\"./yrl\": 96518,\n\t\"./yrl-CO\": 35794,\n\t\"./yrl-CO.mjs\": 35794,\n\t\"./yrl-VE\": 64188,\n\t\"./yrl-VE.mjs\": 64188,\n\t\"./yrl.mjs\": 96518,\n\t\"./yue\": 68547,\n\t\"./yue-Hans\": 43280,\n\t\"./yue-Hans.mjs\": 43280,\n\t\"./yue-Hant\": 73765,\n\t\"./yue-Hant.mjs\": 73765,\n\t\"./yue.mjs\": 68547,\n\t\"./zgh\": 93235,\n\t\"./zgh.mjs\": 93235,\n\t\"./zh\": 98537,\n\t\"./zh-Hans\": 5138,\n\t\"./zh-Hans-HK\": 20318,\n\t\"./zh-Hans-HK.mjs\": 20318,\n\t\"./zh-Hans-MO\": 20741,\n\t\"./zh-Hans-MO.mjs\": 20741,\n\t\"./zh-Hans-SG\": 54023,\n\t\"./zh-Hans-SG.mjs\": 54023,\n\t\"./zh-Hans.mjs\": 5138,\n\t\"./zh-Hant\": 78324,\n\t\"./zh-Hant-HK\": 5040,\n\t\"./zh-Hant-HK.mjs\": 5040,\n\t\"./zh-Hant-MO\": 74723,\n\t\"./zh-Hant-MO.mjs\": 74723,\n\t\"./zh-Hant.mjs\": 78324,\n\t\"./zh.mjs\": 98537,\n\t\"./zu\": 15532,\n\t\"./zu.mjs\": 15532\n};\n\n\nfunction webpackAsyncContext(req) {\n\treturn webpackAsyncContextResolve(req).then(__webpack_require__);\n}\nfunction webpackAsyncContextResolve(req) {\n\treturn Promise.all(/*! lazy-once context | i18n-base */[__webpack_require__.e(\"common\"), __webpack_require__.e(\"i18n-base\")]).then(() => {\n\t\tif(!__webpack_require__.o(map, req)) {\n\t\t\tvar e = new Error(\"Cannot find module '\" + req + \"'\");\n\t\t\te.code = 'MODULE_NOT_FOUND';\n\t\t\tthrow e;\n\t\t}\n\t\treturn map[req];\n\t});\n}\nwebpackAsyncContext.keys = () => (Object.keys(map));\nwebpackAsyncContext.resolve = webpackAsyncContextResolve;\nwebpackAsyncContext.id = 20414;\nmodule.exports = webpackAsyncContext;"],"names":["ChangeDetectorRef","ElementRef","Subject","firstValueFrom","MSAL_GUARD_CONFIG","EventType","InteractionStatus","Alert","filter","takeUntil","i0","ctx_r0","AppComponent","constructor","msalGuardConfig","swipeService","msalService","authService","mapService","connectionService","stUserProfileService","activeUserProfileService","scriptLoaderService","whatfixService","alertService","environmentService","msalBroadcastService","changeDetectorRef","createNewLogoutExpiration","monitor","subscribe","online","removeAlert","onlineAlert","alert","alertMessage","timeoutNeeded","pushAlert","onWindowResize","resetViewHeightIncrement","ngOnInit","handleRedirectObservable","user","instance","getActiveAccount","sessionStorage","getItem","setMsalTokeninSessionStorage","accessToken","console","log","token","checkUserHasTMSAccess","then","hasAccess","inProgress$","pipe","status","None","HandleRedirect","_destroying$","updateLoggedInUser","msalSubject$","msg","eventType","LOGIN_SUCCESS","ACCOUNT_ADDED","ACCOUNT_REMOVED","result","payload","setActiveAccount","account","checkAndSetActiveAccount","getClaims","idTokenClaims","window","self","top","name","detectChanges","setAppWrapperRef","appWrapper","exp","expirationTime","Date","setItem","toString","createTimerForTokenExpiration","environmentPromise","environment","environmentType","load","whatfixUrl","userId","getUserId","metric","createDefaultMetric","event","postEvent","setUserId","setMapType","loadMap","noRoles","loginRedirect","loggedIn","idleTimerLogout","currentAlert","alerts","push","setTimeout","timeoutLength","getTime","addEventListener","resetTimer","bind","now","logoutExpiration","logout","vh","innerHeight","document","documentElement","style","setProperty","filterOpenChange","filterChange","toggleFilter","filterClose","filterOpen","readyState","removeEventListener","mapActive","getAllAccounts","length","loginDisplay","loggedInUser","x","ngOnDestroy","unsubscribe$","next","complete","login","authRequest","logoutRedirect","postLogoutRedirectUri","location","origin","selectors","viewQuery","ctx","NgZone","EventEmitter","of","from","merge","map","switchMap","debounceTime","catchError","NavigationEnd","SearchResults","SearchResultMap","GlobalSearch","CommonFunctionsSite","GlobalSearchBoxComponent","ngZone","router","stTdsService","tamGisService","filterService","formBuilder","group","globalSearch","events","val","filterVisible","url","searchResults","globalSearchForm","get","valueChanges","value","determineTokenValues","mergeResults","clearSearchState","currentToken","previousToken","currentSearchResults","previousSearchResults","observableList","assetObservableLogic","locationObservableLogic","combinedObject","concat","RegExp","test","searchResultMap","partialAssetSearch","assets","forEach","asset","index","listAssets","owner","countryCode","slicAbbreviation","assetType","assetNumber","freightGroup","commonFunctions","assetTypeToHumanReadable","routerNavigationParameters","equipmentStatus","toLowerCase","addToSearchResultMap","createSearchResultFromSearchResultMap","error","locations","getAllLocations","slic","startsWith","searchResultsAll","Object","keys","key","searchItems","displayNameFunction","searchItem","selectItem","controls","setValue","inputRef","nativeElement","blur","run","navigate","option","emit","MAT_DIALOG_DATA","L","SettingsDialogComponent","mapLargeLayerHandler","dialogRef","data","logoutUser","buttonToggleChange","change","changeMapType","mapType","getMapRef","getBingMapLayer","removeFrom","options","bingMapsKey","imagerySet","newBingLayer","tileLayer","bing","addTo","setBingMapLayer","showHiResLayer","showSlicImageryLayer","hideHiResLayer","hideSlicImageryLayer","decls","vars","consts","template","Settings","SettingsComponent","dialog","ngOnChanges","settings","username","gems","openDialog","open","width","afterClosed","getMapType","inputs","features","FrontEndExclusive","GpsCoordinate","ZoneCoords","MapLargeLayerHandler","mapLargeFunctionsService","mapLargeGeofenceLayers","mapLargeDataService","mapLargeRefService","loadAllMapLargePerimeters","currentLayout","useMapLarge","mapLargeMap","getMapLargeRef","mapLargeLayerAllPerimeters","remove","templatesReady","perimeterLayerJSON","getAllPerimetersOnPropertyMapLargeLayer","getAllPerimetersMapLargeLayer","ml","layer","show","loadAllMapLargeLayers","currentLocation","clearMapLargeLayers","loadMapLargeHiResImageLayer","loadAllSlicImagery","getLayoutId","layoutId","mapLargeLayoutNumber","getMapLargeLayer","mapLargeLayerPerim","zoomToPerimeter","landmarkLayerJSON","mapLargeLayerLandmark","getMapLargeVersionKey","versionKey","baysLayerJSON","mapLargeLayerBays","getMapLargeBayData","setZIndex","baysExitsLayerJSON","mapLargeLayerBayExits","zonesLayerJSON","mapLargeLayerZones","getMapLargeZoneData","updateSlottedAssets","assetInfo","Promise","resolve","mapLargeBays","mapLargeZones","updateSlottedBays","checkInterval","setInterval","clearInterval","emptyMapLargeLayer","mapLargeLayerImage","mapLargeLayerSlicImagery","removeBayLayer","loadMapLargeHiResLayer","layerReference","slicImageryLayerJSON","getSlicImagery","convertBayCoordsToGpsCoordArray","bayCoords","gpsBayCoords","bayPoint","hide","findBayInZone","bayNumber","mapLargeZone","hasBayRange","isBayInRange","startBay","endBay","getMapLargeBaysData","getMapLargeZonesData","getLayerData","layerData","boundingBox","getPerimeterBounds","fitBounds","layerToClear","slottedBaysLayer","bay","occupied","bayPolygons","FeatureGroup","zoneCoords","frontEndExclusive","emptyBay","operations","trim","equipment","onSiteNotArrivedLocation","replace","associatedBay","searchMapLargeBays","undefined","zone","undrawnBay","slottedInZone","zoneId","bayInformation","bayCoordinates","zoneGPSPointsArray","Array","shapeGPSArray","wellknown","parse","WKT","coordinates","gpsPoint","gpsCoordArray","slotted","polygon","createBayPolygon","addLayer","updateBayPolygon","addBayLayerToMap","slice","searchStart","searchEnd","searchMiddle","Math","floor","bayNumberAtMiddle","BayNumber","BayType","Number","bayInfo","bayGPSPointsArray","setBayPolygonOptions","metadata","equipmentNumber","bays","getLayers","dataField","bayMetadata","removeLayer","bayOutlineColor","bayStrokeThickness","bayFillColor","setBayPolygonColor","polygonOptions","color","weight","fillColor","fillOpacity","pane","loads","primaryLoad","code","factory","providedIn","latLng","Marker","icon","TrailerTypeMap","DetailInboundComponent","activatedRoute","inTransitService","viewService","params","fetchInboundDetails","slicAbbr","sendAssetToDetailView","assetInformation","gpsDetails","latitude","longitude","placeAssetOnMap","changeView","assetMarker","locationLatLng","iconSize","iconAnchor","iconUrl","determineIconForAsset","bindTooltip","permanent","direction","setView","trailerType","equipmentType","trailer","TypeCode","determineTrailerTypeIconForAsset","removeAssetFromMap","polyline","latLngBounds","GeometricFunctions","DetailOnPropertyComponent","onPropertyService","refreshService","viewType","getCurrentCacheViewType","fetchOnPropertyDetails","bayGps","noseLatitude","noseLongitude","esnConfidence","zoomToBay","assetLatLng","commonFunctionsSite","isOnPropertyOperations","geometricFunctions","isPointInsidePoly","latlngToGpsCoordinate","closestPoint","findClosestPoint","createDistanceLineToBay","zoomNeeded","bayLatLng","createDistanceLine","getDistanceFromBayAndLocation","snapshot","distanceCalc","distanceFromBay","distanceFromBayConversion","assetLine","bounds","SummaryOnPropertyComponent","sortingService","summaryViewInitializeOpened","getPreviousView","activateSort","setPreviousView","getLocation","stLocation","viewHeader","customFields","site","region","regionNumber","district","districtNumber","summaryViewSlideUp","fetchOnPropertyAssets","runSort","PendingLocationUpdateFlag","SummaryYardCheckComponent","fetchOnPropertyAssetsYardCheck","pendingLocationUpdateFlag","valueAsOnProperty","parseInt","isNaN","confirmationStatus","locationConfirmation","locationConfirmationState","SimpleChanges","CircleMarker","LayerGroup","AssetInfoArrayMap","AssetInfo","OnPropertyOperations","BayAttributes","LocationConfirmation","EquipmentTypeFilter","MoveBayDialogComponent","InsertTrailerDialogComponent","RejectAssetDialogComponent","SummaryComponent","localDataService","reconciliationService","stYardCheckService","hfcsService","launchDarklyService","defaultButtonColor","clearTrackedConfirmationStatus","setSelectedFilterBooleans","placedAssets","determineFilterAndRun","placeAssetsOnMap","promisedValue","filterUpdates","filteredAssets","assetInfoArrayMap","createAssetInfoArrayMap","changes","propName","hasOwnProperty","locationMarker","getLatLng","lat","gps","lng","placeLocationOnMap","setCurrentLocation","removeLocationFromMap","updateAssetLists","removeAssetsFromMap","activeUserProfilePromise","userAccessGateway","checkPermissionsLocationInfo","userHasPermission","userHasAccess","setRoles","syncConfirmationStatus","setCurrentAssetList","filterCurrentAssetList","determineLocationIcon","opacity","assetMarkers","createAssetMarker","determineEsnConfidenceIconNeeded","hasLowBattery","gpsStale","determineEsnConfidenceColor","determineEsnConfidence","determineGpsConfidenceNeeded","confidence","dataSources","determineGpsConfidenceColor","determineGpsConfidence","circleMarkerOptions","radius","determineAssetColor","opTypeCode","onPanMove","onPanEnd","setSnappedToBottom","snappedToBottom","onTap","tapAction","summaryViewSlideDown","navigationParameters","onTapSummaryCard","onPropertyFilters","filterByType","tractor","dolly","other","filterByOther","resetFilter","setSelectedFilter","replaceState","r","unwantedAssetTypes","indexOf","sort","activateAndRunSort","isConfirmed","isUnknown","clickActionButton","actionButton","stopPropagation","confirmationPending","bayAttributes","createConfirmationUpdate","trackConfirmationStatus","bayPosition","locationConfimation","refreshUi","message","sendLocationConfirmationUpdate","rejectReasonFeatureFlagIsEnabled","openRejectAssetDialog","onSiteNotArrivedFeatureFlagIsEnabled","openInsertAssetDialog","openMoveBayDialog","bayAvailable","postBayAttributes","newLocationConfirmation","timestamp","lastUpdateTimestamp","getPrimaryLoad","updateAssetConfirmation","oldBay","thisAsset","nextAsset","previousAsset","asset1","founded","onPropertyAsset","padLeft","dialogRefMoveBay","maxWidth","onPropertyAssets","autoFocus","confirmed","updateAssetsList","updatesAsset","locationUpdateStatus","fromBayNumber","toBayNumber","removeEmptyBay","verifyFromBayExists","updateYardCheckRefreshCache","asset2","num","getElementById","scrollIntoView","insertTrailer","e","dialogRefRejectAsset","rejectedData","rejectedReason","rejectReason","assetIndex","findIndex","newAsset","newAssetIndex","addedAssetIndex","determineOnSiteNotArrivedFont","font","dialogRefInsertTrailer","insertOnReject","insertedTrailer","updateYardCheckCache","updatedAsset","splice","bayNotFound","fromBay","padStart","getFlag","ActivatedRouteSnapshot","Router","YardCheckGuard","canActivate","route","locationsPromise","validUser","UserAccessGateway","ActiveUserProfileService","tamUserProfileService","userAccessRequest","getUserFirstName","family_name","getUserFamilyName","sub","fetchUserAcessFromMSD","activeUserProfile","catch","checkPermissions","rolesToCheckFor","customRoles","access","includes","role","checkFullAccess","corporate","checkUserHasCorporateAccess","checkUserHasSuperUserAccess","checkUserHasApproverAccess","userNameSplit","split","EnvironmentService","getEnvironmentInfo","getLocalEnvironmentInfo","fetch","response","json","Error","statusText","reject","parseServerEnvironmentInfo","serverEnvironmentObj","localEnvironmentObj","combinedEnvironmentObj","MapLargeBay","MapLargeZone","MapLargeDataService","baysData","mapLargeBayData","mlBayData","numberOfBays","i","BayGroupLabel","FloorLevel","geodenied","Exit","BayLength","Active","AssetType","BayTrailerCompatibility","LoadCode","MaxAssets","ServiceLevel","StackType","BayBoundaryType","AssetEquipmentType","TagCode","AssetCategory","Nose","bayNoseGPS","bayNoseGPSArray","bayCenterGps","getBayCenter","zoomLatitude","zoomLongitude","a","b","zonesData","mapLargeZoneData","mlZoneData","ZoneName","numberOfZones","bayRanges","BayRange","bayRange","zoneInfo","GeoDenied","ZoneType","zoneCenterGps","zoneBays","ColorRelation","borderWidth","borderColor","whereValues","primaryColorRelations","templateColorRelations","onPropertyColors","logoLinks","MapLargeGeofenceLayers","createTemplates","logoLinkedValues","logoLinking","templateColorRules","templateColorRulesBuilder","createLayerObjects","geofenceLayerPerimetersOnProperty","onPropertyRules","geofenceLayerBayExits","geofenceLayerPerimeters","geofenceLayers","geofenceRules","JSON","stringify","buildDefaultHover","buildTravelPathRules","objectLayouts","defaultSetting","rules","layout","stringCopy","buildString","buildStringCopy","where","substring","text","mapLargeApiUrl","defaultHoverBase","hoverFieldsCommaDel","id","method","type","zIndex","typeArray","TamGisService","http","webServiceHelperService","httpOptions","createRequestHeadersWithAuth","tamGisServiceUsername","tamGisServicePassword","apiGatewayOrigin","setLocations","long","getIndividualLocation","setGlobalSearchFields","listLocations"],"sourceRoot":"webpack:///","x_google_ignoreList":[233]}