{"version":3,"file":"main.js","mappings":"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;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;ACrDuD;AACV;AAEmB;AACX;AACM;AACN;AACD;AACT;AACS;AACe;AACd;AACO;AACM;AACY;AAC1B;AACwC;AACmC;AACjB;AACT;AACzC;AAC2B;AACM;AACA;AACW;AACxD;AACmC;AACA;AACwC;AACH;AACiC;AACpE;AACwB;AACd;AAC0B;AAC3B;AACwB;AACH;AACpC;AACmB;AACM;AACoB;AAC1B;AACkB;AACf;AACK;AACX;AACuB;AACW;AACgB;AACQ;AACnC;AACwB;AACW;AACrB;AACoC;AACxD;AACS;AACoB;AAC7B;AAC6B;AACuC;AAClB;AACH;AACgC;AACd;AACnC;AACS;AACJ;AACH;AACP;AACa;AACH;AACkB;AAChC;AACN;AACuB;AAC1B;AACC;AACJ;AACf;AAClB;AACS;AACoB;AACd;AACf;AACM;AACY;AACN;AACqB;AACJ;AACpB;AACsC;AAClB;AACM;AACG;AACH;AACd;AACf;AACS;AACS;AACf;AAC2B;AAC9B;AACM;AACY;AACG;AAClB;AACK;AACX;AACwB;AACrB;;;AAEhG,MAAMh2D,MAAM,GAAW,CACrB;EACE9D,IAAI,EAAE,EAAE;EACRC,SAAS,EAAE2mG,6DAAQA;CACpB,CACF;AAyHK,MAAO3jG,cAAc;;;uCAAdA,cAAc;IAAA;EAAA;;;YAAdA;IAAc;EAAA;;;iBANd,CACT;QAAEyO,OAAO,EAAE80F,oEAAkB;QAAE30F,UAAU,EAAEA,CAAA,KAAM,CAAC40F,2DAAI,EAAEC,6DAAS,EAAEC,sEAAM;MAAC,CAAE;MAAE;MAC9E;QAAEj1F,OAAO,EAAE+1F,4FAAa;QAAE31F,QAAQ,EAAE,IAAI21F,4FAAa;MAAE,CAAE,CAC1D;MAAAvnG,OAAA,GAlHC0N,0FAAkB,EAClB24F,6DAAW,EACX/mG,2DAAY,EACZK,gEAAU,EACVJ,yDAAW,EACXE,yDAAW,EACXkN,kEAAa,EACby5F,mEAAa,EACb/5F,yEAAgB,EAChBF,iEAAmB,EACnB3M,2DAAY,CAACK,QAAQ,CAAC+D,MAAM,CAAC,EAC7B2H,qEA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E,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAChH,CAAC,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,GAAG,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAC/G,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAChH,GAAG,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,GAAG,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAC9G,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,GAAG,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAChH,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAC7G,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,GAAG,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAC/G,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EACjH,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,GAAG,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAC7G,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EACjH,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,GAAG,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAChH,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EACjH,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,GAAG,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAC9G,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EACjH,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,GAAG,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EACjH,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EACjH,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,GAAG,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAC/G,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,GAAG,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,GAAG,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAC9G,GAAG,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,GAAG,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,GAAG,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,CAAC,EAAE,CAAC,EAC/G,CAAC,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,GAAG,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAC/G,CAAC,EAAE,CAAC,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,GAAG,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAC7G,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,GAAG,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAC/G,GAAG,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,GAAG,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EACjH,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,GAAG,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,GAAG,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,GAAG,EAAE,GAAG,EAC/G,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,GAAG,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC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I,EAAE;IACjB,MAAM06N,EAAE,GAAG,IAAIz9F,UAAU,CAACj9H,IAAI,CAAC;IAC/B,IAAI06N,EAAE,CAAC7sP,MAAM,GAAG,IAAI,CAACwqP,aAAa,GAAG,IAAI,CAACD,MAAM,EAAE;MAC9C,IAAI,CAAC+B,gBAAgB,CAACO,EAAE,CAAC7sP,MAAM,CAAC;IACpC;IACA,IAAI,CAACyqP,GAAG,CAACxjP,GAAG,CAAC4lP,EAAE,EAAE,IAAI,CAACtC,MAAM,CAAC;IAC7B,IAAI,CAACA,MAAM,IAAIsC,EAAE,CAAC7sP,MAAM;EAC5B;EAEAksP,YAAYA,CAAC5wO,CAAC,EAAE;IACZ,IAAI,CAACsxO,cAAc,CAACtxO,CAAC,CAAC6W,IAAI,CAAC;IAC3B,IAAI,IAAI,CAAC6nN,KAAK,GAAG,CAAC,EAAE;MAChB,IAAI,CAAC/G,cAAc,CAAC1jO,OAAO,CAAC,CAAC;MAC7B,IAAI,IAAI,CAACg7O,MAAM,IAAI,IAAI,CAACD,IAAI,EAAE;QAC1B;QACA;QACA,IAAI,CAACC,MAAM,GAAG,CAAC;QACf,IAAI,CAACD,IAAI,GAAG,CAAC;MACjB;IACJ,CAAC,MAAM;MACH5d,oEAAS,CAAC,wBAAwB,CAAC;IACvC;EACJ;AACJ;;;;;;;;;;ACpWA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;;AAEA;AACA;AACA;AACA,EAAE;AACF;AACA;AACA;AACA;;;;;;;;;;ACzOA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,EAAE;AACF;AACA;AACA;AACA;AACA;;;;;;;;;;ACZA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;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;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;;ACvSA","sources":["./src/app/alarmlist/alarmlist-item/alarmlist-item.component.ts","./src/app/alarmlist/alarmlist-item/alarmlist-item.component.html","./src/app/alarmlist/alarmlist-modal/alarmlist-modal.component.ts","./src/app/alarmlist/alarmlist-modal/alarmlist-modal.component.html","./src/app/alarmlist/alarmlist.component.ts","./src/app/alarmlist/alarmlist.component.html","./src/app/alarmlist/alarmlist.module.ts","./src/app/alarmlist/alarmlist.service.ts","./src/app/app-routing.module.ts","./src/app/app-service-loader.component.ts","./src/app/app.component.ts","./src/app/app.component.html","./src/app/app.module.ts","./src/app/app.resolver.ts","./src/app/app.service.ts","./src/app/bottom-drawer/bottom-drawer.module.ts","./src/app/bottom-drawer/bottom-drawer.ts","./src/app/bottom-drawer/bottom-drawer.html","./src/app/bottom-drawer/drawer-state.ts","./src/app/breakdowninfo/breakdowninfo-infoscreen/breakdowninfo-infoscreen.component.ts","./src/app/breakdowninfo/breakdowninfo-infoscreen/breakdowninfo-infoscreen.component.html","./src/app/breakdowninfo/breakdowninfo-item/breakdowninfo-item.component.ts","./src/app/breakdowninfo/breakdowninfo-item/breakdowninfo-item.component.html","./src/app/breakdowninfo/breakdowninfo-library/breakdowninfo-library-item/breakdowninfo-library-item.component.ts","./src/app/breakdowninfo/breakdowninfo-library/breakdowninfo-library-item/breakdowninfo-library-item.component.html","./src/app/breakdowninfo/breakdowninfo-library/breakdowninfo-library.component.ts","./src/app/breakdowninfo/breakdowninfo-library/breakdowninfo-library.component.html","./src/app/breakdowninfo/breakdowninfo-text-selector/breakdowninfo-text-selector.component.ts","./src/app/breakdowninfo/breakdowninfo-text-selector/breakdowninfo-text-selector.component.html","./src/app/breakdowninfo/breakdowninfo.module.ts","./src/app/breakdowninfo/breakdowninfo.page.ts","./src/app/breakdowninfo/breakdowninfo.page.html","./src/app/breakdowninfo/domain/breakdowninfo-activetext.adapter.ts","./src/app/breakdowninfo/domain/breakdowninfo-activetext.model.ts","./src/app/breakdowninfo/domain/breakdowninfo-activetext.service.ts","./src/app/breakdowninfo/domain/breakdowninfo-library-entry.adapter.ts","./src/app/breakdowninfo/domain/breakdowninfo-library-entry.model.ts","./src/app/breakdowninfo/domain/breakdowninfo-library.service.ts","./src/app/breakdowninfo/domain/breakdowninfo.adapter.ts","./src/app/breakdowninfo/domain/breakdowninfo.service.ts","./src/app/can-activate.guard.ts","./src/app/core/alarm-icon/alarm-icon.component.ts","./src/app/core/alarm-icon/alarm-icon.component.html","./src/app/core/blob-storage/blob-storage-container.service.ts","./src/app/core/blob-storage/blob-storage-delete.service.ts","./src/app/core/blob-storage/blob-storage-upload.service.ts","./src/app/core/blob-storage/blob-storage.service.ts","./src/app/core/blob-storage/blob-storage.types.ts","./src/app/core/components/context-menu/context-menu.component.ts","./src/app/core/components/context-menu/context-menu.component.html","./src/app/core/components/general-button/general-button.component.ts","./src/app/core/components/general-button/general-button.component.html","./src/app/core/components/logbook-button/logbook-button.component.ts","./src/app/core/components/logbook-button/logbook-button.component.html","./src/app/core/components/logbook/domain/logbook-entry.adapter.ts","./src/app/core/components/logbook/domain/logbook-entry.model.ts","./src/app/core/components/logbook/domain/logbook.service.ts","./src/app/core/components/logbook/logbook-modal/logbook-modal.component.ts","./src/app/core/components/logbook/logbook-modal/logbook-modal.component.html","./src/app/core/components/logbook/logbook-modal/logbook-modal.service.ts","./src/app/core/components/outdated-icon/outdated-icon.component.ts","./src/app/core/components/outdated-icon/outdated-icon.component.html","./src/app/core/components/page-title/page-title.component.ts","./src/app/core/components/page-title/page-title.component.html","./src/app/core/components/tenant-feature-icon/tenant-feature-icon.component.ts","./src/app/core/components/tenant-feature-icon/tenant-feature-icon.component.html","./src/app/core/components/timeformat-button/timeformat-button.component.ts","./src/app/core/components/timeformat-button/timeformat-button.component.html","./src/app/core/core.module.ts","./src/app/core/eventbus/event-bus-subscriber-base.ts","./src/app/core/eventbus/event-bus.service.ts","./src/app/core/eventbus/events.ts","./src/app/core/guards/pending-changes.guard.ts","./src/app/core/icon-helper/icon-helper.ts","./src/app/core/leaflet-helper/curve-coords.ts","./src/app/core/leaflet-helper/leaflet-curve-declaration.ts","./src/app/core/live-message/adapter/firebase-message.adapter.ts","./src/app/core/live-message/adapter/signalr-message.adapter.ts","./src/app/core/live-message/event.adapter.ts","./src/app/core/live-message/live-message.service.ts","./src/app/core/livedata/livedata-base.service.ts","./src/app/core/navigator/navigator.service.ts","./src/app/core/scrollbar/sis-ion-content-scrollbar.ts","./src/app/core/stnet/stnet-status.adapter.ts","./src/app/core/unsubscriber.ts","./src/app/core/utils/confirmation-dialog.service.ts","./src/app/core/utils/date-format.pipe.ts","./src/app/core/utils/date-time-format.pipe.ts","./src/app/core/utils/formatted-timestamp.ts","./src/app/core/utils/input-integer-only.directive.ts","./src/app/core/utils/markdown.pipe.ts","./src/app/core/utils/mathUtils.ts","./src/app/core/utils/screen-size.service.ts","./src/app/core/utils/sis-converter.ts","./src/app/core/utils/string-format.ts","./src/app/core/utils/time-format.service.ts","./src/app/core/utils/weekday.pipe.ts","./src/app/core/utils/widgetUtils.ts","./src/app/domain/alarm.model.ts","./src/app/domain/destination/destination.service.ts","./src/app/domain/export/export-type.enum.ts","./src/app/domain/export/export.adapter.ts","./src/app/domain/export/export.service.ts","./src/app/domain/feature/feature-access-level.model.ts","./src/app/domain/feature/feature-id.model.ts","./src/app/domain/feature/feature.adapter.ts","./src/app/domain/feature/feature.model.ts","./src/app/domain/news/news.service.ts","./src/app/domain/sis-route.model.ts","./src/app/domain/tenant/tenant.adapter.ts","./src/app/domain/tenant/tenant.model.ts","./src/app/domain/tenant/tenant.service.ts","./src/app/domain/user-settings/user-settings.adapter.ts","./src/app/domain/user-settings/user-settings.service.ts","./src/app/domain/user/user.service.ts","./src/app/email-delivery/domain/email-delivery.adapter.ts","./src/app/email-delivery/email-delivery.module.ts","./src/app/email-delivery/email-delivery.page.ts","./src/app/email-delivery/email-delivery.page.html","./src/app/email-delivery/email-delivery.service.ts","./src/app/email-delivery/recipient-item/recipient-item.component.ts","./src/app/email-delivery/recipient-item/recipient-item.component.html","./src/app/error/error.page.ts","./src/app/error/error.page.html","./src/app/feature-management/domain/feature.adapter.ts","./src/app/feature-management/feature-management-item/feature-management-item.component.ts","./src/app/feature-management/feature-management-item/feature-management-item.component.html","./src/app/feature-management/feature-management.module.ts","./src/app/feature-management/feature-management.page.ts","./src/app/feature-management/feature-management.page.html","./src/app/geomap/geomap.module.ts","./src/app/geomap/geomap.page.ts","./src/app/geomap/geomap.page.html","./src/app/geomap/livedata/globalalarm.adapter.ts","./src/app/geomap/livedata/globalalarm.service.ts","./src/app/geomap/map/geomap.component.ts","./src/app/geomap/map/geomap.component.html","./src/app/geomap/map/tenant-layer/tenant-layer.component.ts","./src/app/geomap/map/tenant-layer/tenant-layer.component.html","./src/app/geomap/map/tenant-layer/tenant-marker/tenant-marker.component.ts","./src/app/geomap/map/tenant-layer/tenant-marker/tenant-marker.service.ts","./src/app/hammerguesture.config.ts","./src/app/header/header.component.ts","./src/app/header/header.component.html","./src/app/header/maintenance-banner/maintenance-banner.component.ts","./src/app/header/maintenance-banner/maintenance-banner.component.html","./src/app/infotext/domain/infotext.adapter.ts","./src/app/infotext/infotext.module.ts","./src/app/infotext/infotext.page.ts","./src/app/infotext/infotext.page.html","./src/app/infotext/infotext.service.ts","./src/app/infotext/texteditor-modal/texteditor-modal.ts","./src/app/infotext/texteditor-modal/texteditor-modal.html","./src/app/interceptor/api-connection.interceptor.ts","./src/app/interceptor/http-current-tenant.interceptor.ts","./src/app/it-services/livedata/nms-data.adapter.ts","./src/app/it-services/livedata/nms-data.service.ts","./src/app/it-services/nms-item/nms-item.component.ts","./src/app/it-services/nms-item/nms-item.component.html","./src/app/it-services/sis-it-services.module.ts","./src/app/it-services/sis-it-services.page.ts","./src/app/it-services/sis-it-services.page.html","./src/app/last-slope-control/domain/last-slope-control.adapter.ts","./src/app/last-slope-control/last-slope-control.module.ts","./src/app/last-slope-control/last-slope-control.page.ts","./src/app/last-slope-control/last-slope-control.page.html","./src/app/last-slope-control/last-slope-control.service.ts","./src/app/last-slope-control/zone-item/zone-item.component.ts","./src/app/last-slope-control/zone-item/zone-item.component.html","./src/app/led-ticker/domain/led-ticker-item.adapter.ts","./src/app/led-ticker/domain/led-ticker.adapter.ts","./src/app/led-ticker/led-ticker-group/led-ticker-group.component.ts","./src/app/led-ticker/led-ticker-group/led-ticker-group.component.html","./src/app/led-ticker/led-ticker.module.ts","./src/app/led-ticker/led-ticker.page.ts","./src/app/led-ticker/led-ticker.page.html","./src/app/led-ticker/led-ticker.service.ts","./src/app/login/login.component.ts","./src/app/login/login.component.html","./src/app/main-menu/main-menu-list/main-menu-list.component.ts","./src/app/main-menu/main-menu-list/main-menu-list.component.html","./src/app/main-menu/main-menu-news/main-menu-news-item/main-menu-news-item.component.ts","./src/app/main-menu/main-menu-news/main-menu-news-item/main-menu-news-item.component.html","./src/app/main-menu/main-menu-news/main-menu-news.component.ts","./src/app/main-menu/main-menu-news/main-menu-news.component.html","./src/app/main-menu/main-menu.component.ts","./src/app/main-menu/main-menu.component.html","./src/app/main-menu/select-destination/select-destination-item/select-destination-item.component.ts","./src/app/main-menu/select-destination/select-destination-item/select-destination-item.component.html","./src/app/main-menu/select-destination/select-destination.component.ts","./src/app/main-menu/select-destination/select-destination.component.html","./src/app/main-menu/select-language/select-language.component.ts","./src/app/main-menu/select-language/select-language.component.html","./src/app/main-menu/tenant-edit-modal/tenant-edit.component.ts","./src/app/main-menu/tenant-edit-modal/tenant-edit.component.html","./src/app/maps/alarmlibrary/alarmlibrary-item-icon/alarmlibrary-item-icon.component.ts","./src/app/maps/alarmlibrary/alarmlibrary-item-icon/alarmlibrary-item-icon.component.html","./src/app/maps/alarmlibrary/alarmlibrary.component.ts","./src/app/maps/alarmlibrary/alarmlibrary.component.html","./src/app/maps/alarmlibrary/alarmlibrary.service.ts","./src/app/maps/alarmlibrary/domain/alarmlibrary-item.adapter.ts","./src/app/maps/alarmlibrary/domain/alarmlibrary-item.model.ts","./src/app/maps/alarmlibrary/domain/useralarmconfig.adapter.ts","./src/app/maps/details-drawer/details-drawer.component.ts","./src/app/maps/details-drawer/details-drawer.component.html","./src/app/maps/domain/configuration.model.ts","./src/app/maps/domain/custom-marker-type.model.ts","./src/app/maps/domain/masterdata.adapter.ts","./src/app/maps/domain/masterdata.service.ts","./src/app/maps/domain/meteostation.model.ts","./src/app/maps/domain/ropeway-brakereport/ropeway-brakereport.adapter.ts","./src/app/maps/domain/ropeway-brakereport/ropeway-brakereport.service.ts","./src/app/maps/domain/ropeway-ecomode/ropeway-ecomode-settings.adapter.ts","./src/app/maps/domain/ropeway-ecomode/ropeway-ecomode-settings.service.ts","./src/app/maps/domain/ropeway-settings/ropeway-settings.adapter.ts","./src/app/maps/domain/ropeway-settings/ropeway-settings.service.ts","./src/app/maps/domain/webcam.model.ts","./src/app/maps/livedata/abbsmartsensor-data.adapter.ts","./src/app/maps/livedata/abbsmartsensor-data.model.ts","./src/app/maps/livedata/abbsmartsensor-data.service.ts","./src/app/maps/livedata/destination-alarm.adapter.ts","./src/app/maps/livedata/destination-alarm.service.ts","./src/app/maps/livedata/energy-livedata.adapter.ts","./src/app/maps/livedata/energy-livedata.service.ts","./src/app/maps/livedata/first-entries.adapter.ts","./src/app/maps/livedata/first-entries.service.ts","./src/app/maps/livedata/gin-alarm.adapter.ts","./src/app/maps/livedata/gin-alarm.service.ts","./src/app/maps/livedata/gin-livedata.apdapter.ts","./src/app/maps/livedata/gin-livedata.service.ts","./src/app/maps/livedata/kassandra-forecast.adapter.ts","./src/app/maps/livedata/kassandra-forecast.service.ts","./src/app/maps/livedata/meteo-forecast-alarm.adapter.ts","./src/app/maps/livedata/meteo-forecast-alarm.service.ts","./src/app/maps/livedata/meteo-forecast.adapter.ts","./src/app/maps/livedata/meteo-forecast.service.ts","./src/app/maps/livedata/meteo-livedata.adapter.ts","./src/app/maps/livedata/meteo-livedata.service.ts","./src/app/maps/livedata/remote-access-status.adapter.ts","./src/app/maps/livedata/remote-access-status.service.ts","./src/app/maps/livedata/ropeway-alarm.adapter.ts","./src/app/maps/livedata/ropeway-alarm.service.ts","./src/app/maps/livedata/ropeway-availability.adapter.ts","./src/app/maps/livedata/ropeway-availability.service.ts","./src/app/maps/livedata/ropeway-ecomode-livedata.adapter.ts","./src/app/maps/livedata/ropeway-ecomode-livedata.service.ts","./src/app/maps/livedata/ropeway-efa.service.ts","./src/app/maps/livedata/ropeway-livedata.adapter.ts","./src/app/maps/livedata/ropeway-livedata.service.ts","./src/app/maps/livedata/ropeway-status-time.adapter.ts","./src/app/maps/livedata/ropeway-status-time.service.ts","./src/app/maps/livedata/ropeway-status.adapter.ts","./src/app/maps/livedata/ropeway-status.model.ts","./src/app/maps/livedata/ropeway-status.service.ts","./src/app/maps/livedata/sambesi-whatsup-message.adapter.ts","./src/app/maps/livedata/sambesi-whatsup.service.ts","./src/app/maps/livedata/sis-outdated-helper.ts","./src/app/maps/livedata/truscan-data.adapter.ts","./src/app/maps/livedata/truscan-data.service.ts","./src/app/maps/livedata/user-alarm.adapter.ts","./src/app/maps/map/custom-marker-layer/custom-marker-icon/custom-marker-icon.component.ts","./src/app/maps/map/custom-marker-layer/custom-marker-icon/custom-marker-icon.service.ts","./src/app/maps/map/custom-marker-layer/custom-marker-layer.component.ts","./src/app/maps/map/custom-marker-layer/custom-marker-layer.component.html","./src/app/maps/map/enter-viewport-notifier.directive.ts","./src/app/maps/map/map.component.ts","./src/app/maps/map/map.component.html","./src/app/maps/map/marker-edit/domain/marker-type.enum.ts","./src/app/maps/map/marker-edit/marker-edit.service.ts","./src/app/maps/map/meteo-layer/meteo-layer.component.ts","./src/app/maps/map/meteo-layer/meteo-layer.component.html","./src/app/maps/map/meteo-layer/wind-icon/wind-icon.component.ts","./src/app/maps/map/meteo-layer/wind-icon/wind-icon.service.ts","./src/app/maps/map/ropeway-layer/ropeway-layer.component.ts","./src/app/maps/map/ropeway-layer/ropeway-layer.component.html","./src/app/maps/map/ropeway-layer/ropeway-line/ropeway-css-classnames.ts","./src/app/maps/map/ropeway-layer/ropeway-line/ropeway-curve.ts","./src/app/maps/map/ropeway-layer/ropeway-line/ropeway-line.component.ts","./src/app/maps/map/ropeway-layer/ropeway-line/ropeway-polyline.ts","./src/app/maps/maps.module.ts","./src/app/maps/maps.page.ts","./src/app/maps/maps.page.html","./src/app/maps/meteostation-service/meteostation.service.ts","./src/app/maps/modal-popup/modal-popup.component.ts","./src/app/maps/modal-popup/modal-popup.component.html","./src/app/maps/selected-map-element.service.ts","./src/app/maps/trenddata/energy-trend.adapter.ts","./src/app/maps/trenddata/energy-trend.service.ts","./src/app/maps/trenddata/forecast-trend.adapter.ts","./src/app/maps/trenddata/meteo-trend.service.ts","./src/app/maps/trenddata/ropeway-availability-trend.adapter.ts","./src/app/maps/trenddata/ropeway-availability-trend.service.ts","./src/app/maps/trenddata/ropeway-ecomode-trend.adapter.ts","./src/app/maps/trenddata/ropeway-ecomode-trend.service.ts","./src/app/maps/trenddata/ropeway-speed-trend.adapter.ts","./src/app/maps/trenddata/ropeway-speed-trend.service.ts","./src/app/maps/trenddata/ropeway-torque-trend.adapter.ts","./src/app/maps/trenddata/ropeway-torque-trend.model.ts","./src/app/maps/trenddata/ropeway-torque-trend.service.ts","./src/app/maps/trenddata/temperature-trend.adapter.ts","./src/app/maps/trenddata/wet-bulb-trend.adapter.ts","./src/app/maps/trenddata/wind-trend.adapter.ts","./src/app/maps/widget-list/widget-list-services/custom-marker-widget-list.service.ts","./src/app/maps/widget-list/widget-list-services/destination-widget-list.service.ts","./src/app/maps/widget-list/widget-list-services/domain/detailview.model.ts","./src/app/maps/widget-list/widget-list-services/domain/widget-action.enum.ts","./src/app/maps/widget-list/widget-list-services/domain/widget.model.ts","./src/app/maps/widget-list/widget-list-services/domain/widgetname.enum.ts","./src/app/maps/widget-list/widget-list-services/meteo-station-widget-list.service.ts","./src/app/maps/widget-list/widget-list-services/ropeway-widget-list.service.ts","./src/app/maps/widget-list/widget-list-services/widget-list.service.ts","./src/app/maps/widget-list/widget-list.component.ts","./src/app/maps/widget-list/widget-list.component.html","./src/app/maps/widget-sidepane/controller-selector/controller-selector.component.ts","./src/app/maps/widget-sidepane/controller-selector/controller-selector.component.html","./src/app/maps/widget-sidepane/sidepane-alarmlist/sidepane-alarmlist-item/sidepane-alarmlist-item.component.ts","./src/app/maps/widget-sidepane/sidepane-alarmlist/sidepane-alarmlist-item/sidepane-alarmlist-item.component.html","./src/app/maps/widget-sidepane/sidepane-alarmlist/sidepane-alarmlist.component.ts","./src/app/maps/widget-sidepane/sidepane-alarmlist/sidepane-alarmlist.component.html","./src/app/maps/widget-sidepane/webcam/webcam-image-request.service.ts","./src/app/maps/widget-sidepane/webcam/webcam-modal/webcam-modal.component.ts","./src/app/maps/widget-sidepane/webcam/webcam-modal/webcam-modal.component.html","./src/app/maps/widget-sidepane/webcam/webcam.component.ts","./src/app/maps/widget-sidepane/webcam/webcam.component.html","./src/app/maps/widget-sidepane/webcam/webcam.service.ts","./src/app/maps/widget-sidepane/widget-sidepane.component.ts","./src/app/maps/widget-sidepane/widget-sidepane.component.html","./src/app/maps/widgets/abbsmartsensor-widget/abbsmartsensor-widget.component.ts","./src/app/maps/widgets/abbsmartsensor-widget/abbsmartsensor-widget.component.html","./src/app/maps/widgets/alarm-widget/alarm-widget.component.ts","./src/app/maps/widgets/alarm-widget/alarm-widget.component.html","./src/app/maps/widgets/cabinposition-widget/cabinposition-widget.component.ts","./src/app/maps/widgets/cabinposition-widget/cabinposition-widget.component.html","./src/app/maps/widgets/carriagetilt-widget/carriagetilt-widget.component.ts","./src/app/maps/widgets/carriagetilt-widget/carriagetilt-widget.component.html","./src/app/maps/widgets/charts/chart-adapter.ts","./src/app/maps/widgets/charts/chart-base.ts","./src/app/maps/widgets/charts/chart-settings.model.ts","./src/app/maps/widgets/charts/chart-settings.service.ts","./src/app/maps/widgets/charts/icing-chart/icing-chart.component.ts","./src/app/maps/widgets/charts/icing-chart/icing-chart.component.html","./src/app/maps/widgets/charts/ropeway-chart/meteo-handler.ts","./src/app/maps/widgets/charts/ropeway-chart/ropeway-chart-handler.ts","./src/app/maps/widgets/charts/ropeway-chart/ropeway-chart.component.ts","./src/app/maps/widgets/charts/ropeway-chart/ropeway-chart.component.html","./src/app/maps/widgets/charts/ropeway-chart/speed-handler.ts","./src/app/maps/widgets/charts/ropeway-chart/torque-handler.ts","./src/app/maps/widgets/charts/ropeway-energy-chart/ropeway-energy-chart.component.ts","./src/app/maps/widgets/charts/ropeway-energy-chart/ropeway-energy-chart.component.html","./src/app/maps/widgets/charts/speed-chart/speed-chart.component.ts","./src/app/maps/widgets/charts/speed-chart/speed-chart.component.html","./src/app/maps/widgets/charts/temperature-chart/temperature-chart.component.ts","./src/app/maps/widgets/charts/temperature-chart/temperature-chart.component.html","./src/app/maps/widgets/charts/torque-chart/torque-chart.component.ts","./src/app/maps/widgets/charts/torque-chart/torque-chart.component.html","./src/app/maps/widgets/charts/wet-bulb-chart/wet-bulb-chart.component.ts","./src/app/maps/widgets/charts/wet-bulb-chart/wet-bulb-chart.component.html","./src/app/maps/widgets/charts/wind-chart/wind-chart.component.ts","./src/app/maps/widgets/charts/wind-chart/wind-chart.component.html","./src/app/maps/widgets/clampingcount-widget/clampingcount-widget.component.ts","./src/app/maps/widgets/clampingcount-widget/clampingcount-widget.component.html","./src/app/maps/widgets/destination-alarm-widget/destination-alarm-widget.component.ts","./src/app/maps/widgets/destination-alarm-widget/destination-alarm-widget.component.html","./src/app/maps/widgets/detailviews/abbsmartsensor-detailview/abbsmartsensor-detailview.component.ts","./src/app/maps/widgets/detailviews/abbsmartsensor-detailview/abbsmartsensor-detailview.component.html","./src/app/maps/widgets/detailviews/abbsmartsensor-detailview/abbsmartsensor-item/abbsmartsensor-item.component.ts","./src/app/maps/widgets/detailviews/abbsmartsensor-detailview/abbsmartsensor-item/abbsmartsensor-item.component.html","./src/app/maps/widgets/detailviews/alarm-detailview/alarm-detailview.component.ts","./src/app/maps/widgets/detailviews/alarm-detailview/alarm-detailview.component.html","./src/app/maps/widgets/detailviews/clampingcount-detailview/clampingcount-detailview.component.ts","./src/app/maps/widgets/detailviews/clampingcount-detailview/clampingcount-detailview.component.html","./src/app/maps/widgets/detailviews/clampingcount-detailview/clampingcount-reset.service.ts","./src/app/maps/widgets/detailviews/clampingcount-detailview/domain/clampingcount-reset-metadata.adapter.ts","./src/app/maps/widgets/detailviews/destination-alarm-detailview/destination-alarm-detailview.component.ts","./src/app/maps/widgets/detailviews/destination-alarm-detailview/destination-alarm-detailview.component.html","./src/app/maps/widgets/detailviews/devices-on-detailview/devices-on-detailview-item/devices-on-detailview-item.component.ts","./src/app/maps/widgets/detailviews/devices-on-detailview/devices-on-detailview-item/devices-on-detailview-item.component.html","./src/app/maps/widgets/detailviews/devices-on-detailview/devices-on-detailview.component.ts","./src/app/maps/widgets/detailviews/devices-on-detailview/devices-on-detailview.component.html","./src/app/maps/widgets/detailviews/efa-detailview/domain/efa-history.adapter.ts","./src/app/maps/widgets/detailviews/efa-detailview/efa-detailview.component.ts","./src/app/maps/widgets/detailviews/efa-detailview/efa-detailview.component.html","./src/app/maps/widgets/detailviews/efa-detailview/efa-history.service.ts","./src/app/maps/widgets/detailviews/energy-detailview/energy-detailview.component.ts","./src/app/maps/widgets/detailviews/energy-detailview/energy-detailview.component.html","./src/app/maps/widgets/detailviews/first-entries-detailview/first-entries-detailview.component.ts","./src/app/maps/widgets/detailviews/first-entries-detailview/first-entries-detailview.component.html","./src/app/maps/widgets/detailviews/gin-detailview/gin-detailview-displaydata.model.ts","./src/app/maps/widgets/detailviews/gin-detailview/gin-detailview.component.ts","./src/app/maps/widgets/detailviews/gin-detailview/gin-detailview.component.html","./src/app/maps/widgets/detailviews/remote-access-detailview/remote-access-detailview-item/remote-access-detailview-item.component.ts","./src/app/maps/widgets/detailviews/remote-access-detailview/remote-access-detailview-item/remote-access-detailview-item.component.html","./src/app/maps/widgets/detailviews/remote-access-detailview/remote-access-detailview.component.ts","./src/app/maps/widgets/detailviews/remote-access-detailview/remote-access-detailview.component.html","./src/app/maps/widgets/detailviews/ropeway-availability-detailview/ropeway-availability-detailview.component.ts","./src/app/maps/widgets/detailviews/ropeway-availability-detailview/ropeway-availability-detailview.component.html","./src/app/maps/widgets/detailviews/ropeway-brakereport-detailview/ropeway-brakereport-detailview-row/ropeway-brakereport-detailview-row.component.ts","./src/app/maps/widgets/detailviews/ropeway-brakereport-detailview/ropeway-brakereport-detailview-row/ropeway-brakereport-detailview-row.component.html","./src/app/maps/widgets/detailviews/ropeway-brakereport-detailview/ropeway-brakereport-detailview.component.ts","./src/app/maps/widgets/detailviews/ropeway-brakereport-detailview/ropeway-brakereport-detailview.component.html","./src/app/maps/widgets/detailviews/ropeway-brakereport-detailview/ropeway-brakereport-pdf-modal/ropeway-brakereport-pdf-modal.component.ts","./src/app/maps/widgets/detailviews/ropeway-brakereport-detailview/ropeway-brakereport-pdf-modal/ropeway-brakereport-pdf-modal.component.html","./src/app/maps/widgets/detailviews/ropeway-ecomode-detailview/modal/ecomode-chart/ecomode-activated-cockpit-handler.ts","./src/app/maps/widgets/detailviews/ropeway-ecomode-detailview/modal/ecomode-chart/ecomode-actual-speed-handler.ts","./src/app/maps/widgets/detailviews/ropeway-ecomode-detailview/modal/ecomode-chart/ecomode-chart-handler.ts","./src/app/maps/widgets/detailviews/ropeway-ecomode-detailview/modal/ecomode-chart/ecomode-chart.component.ts","./src/app/maps/widgets/detailviews/ropeway-ecomode-detailview/modal/ecomode-chart/ecomode-chart.component.html","./src/app/maps/widgets/detailviews/ropeway-ecomode-detailview/modal/ecomode-chart/ecomode-enabled-plc-handler.ts","./src/app/maps/widgets/detailviews/ropeway-ecomode-detailview/modal/ecomode-chart/ecomode-energy-handler.ts","./src/app/maps/widgets/detailviews/ropeway-ecomode-detailview/modal/ecomode-chart/ecomode-people-per-minute-handler.ts","./src/app/maps/widgets/detailviews/ropeway-ecomode-detailview/modal/ecomode-chart/ecomode-target-speed-handler.ts","./src/app/maps/widgets/detailviews/ropeway-ecomode-detailview/modal/ecomode-chart/ecomode-vehicle-count-handler.ts","./src/app/maps/widgets/detailviews/ropeway-ecomode-detailview/modal/ecomode-chart/ecomode-workload-handler.ts","./src/app/maps/widgets/detailviews/ropeway-ecomode-detailview/modal/ropeway-ecomode-settings-modal.component.ts","./src/app/maps/widgets/detailviews/ropeway-ecomode-detailview/modal/ropeway-ecomode-settings-modal.component.html","./src/app/maps/widgets/detailviews/ropeway-ecomode-detailview/ropeway-ecomode-detailview.component.ts","./src/app/maps/widgets/detailviews/ropeway-ecomode-detailview/ropeway-ecomode-detailview.component.html","./src/app/maps/widgets/detailviews/ropeway-energy-detailview/ropeway-energy-detailview.component.ts","./src/app/maps/widgets/detailviews/ropeway-energy-detailview/ropeway-energy-detailview.component.html","./src/app/maps/widgets/detailviews/ropeway-settings-detailview/modal/ropeway-settings-modal.component.ts","./src/app/maps/widgets/detailviews/ropeway-settings-detailview/modal/ropeway-settings-modal.component.html","./src/app/maps/widgets/detailviews/ropeway-settings-detailview/ropeway-settings-detailview.component.ts","./src/app/maps/widgets/detailviews/ropeway-settings-detailview/ropeway-settings-detailview.component.html","./src/app/maps/widgets/detailviews/sambesi-whatsup-detailview/sambesi-whatsup-detailview.component.ts","./src/app/maps/widgets/detailviews/sambesi-whatsup-detailview/sambesi-whatsup-detailview.component.html","./src/app/maps/widgets/detailviews/sambesi-whatsup-detailview/sambesi-whatsup-message/sambesi-whatsup-message.component.ts","./src/app/maps/widgets/detailviews/sambesi-whatsup-detailview/sambesi-whatsup-message/sambesi-whatsup-message.component.html","./src/app/maps/widgets/detailviews/snowmaking-detailview/snowmaking-detailview-displaydata.model.ts","./src/app/maps/widgets/detailviews/snowmaking-detailview/snowmaking-detailview.component.ts","./src/app/maps/widgets/detailviews/snowmaking-detailview/snowmaking-detailview.component.html","./src/app/maps/widgets/detailviews/stoptime-detailview/ropeway-triplog.adapter.ts","./src/app/maps/widgets/detailviews/stoptime-detailview/ropeway-triplog.service.ts","./src/app/maps/widgets/detailviews/stoptime-detailview/stoptime-detailview-item.ts","./src/app/maps/widgets/detailviews/stoptime-detailview/stoptime-detailview.component.ts","./src/app/maps/widgets/detailviews/stoptime-detailview/stoptime-detailview.component.html","./src/app/maps/widgets/detailviews/transport-weight-detailview/transport-weight-detailview.component.ts","./src/app/maps/widgets/detailviews/transport-weight-detailview/transport-weight-detailview.component.html","./src/app/maps/widgets/detailviews/truscan-detailview/truscan-detailview.component.ts","./src/app/maps/widgets/detailviews/truscan-detailview/truscan-detailview.component.html","./src/app/maps/widgets/detailviews/truscan-detailview/truscan-item/truscan-item.component.ts","./src/app/maps/widgets/detailviews/truscan-detailview/truscan-item/truscan-item.component.html","./src/app/maps/widgets/detailviews/webcam-detailview/webcam-detailview.component.ts","./src/app/maps/widgets/detailviews/webcam-detailview/webcam-detailview.component.html","./src/app/maps/widgets/deviceson-widget/deviceson-widget.component.ts","./src/app/maps/widgets/deviceson-widget/deviceson-widget.component.html","./src/app/maps/widgets/efa-widget/efa-widget.component.ts","./src/app/maps/widgets/efa-widget/efa-widget.component.html","./src/app/maps/widgets/energy-widget/energy-widget.component.ts","./src/app/maps/widgets/energy-widget/energy-widget.component.html","./src/app/maps/widgets/first-entries-widget/first-entries-widget.component.ts","./src/app/maps/widgets/first-entries-widget/first-entries-widget.component.html","./src/app/maps/widgets/geartemp-widget/geartemp-widget.component.ts","./src/app/maps/widgets/geartemp-widget/geartemp-widget.component.html","./src/app/maps/widgets/gin-widget/gin-widget.component.ts","./src/app/maps/widgets/gin-widget/gin-widget.component.html","./src/app/maps/widgets/icing-widget/icing-widget.component.ts","./src/app/maps/widgets/icing-widget/icing-widget.component.html","./src/app/maps/widgets/kassandra-widget/kassandra-widget.component.ts","./src/app/maps/widgets/kassandra-widget/kassandra-widget.component.html","./src/app/maps/widgets/ophours-widget/ophours-widget.component.ts","./src/app/maps/widgets/ophours-widget/ophours-widget.component.html","./src/app/maps/widgets/passengercount-widget/passengercount-widget.component.ts","./src/app/maps/widgets/passengercount-widget/passengercount-widget.component.html","./src/app/maps/widgets/remote-access-widget/remote-access-widget.component.ts","./src/app/maps/widgets/remote-access-widget/remote-access-widget.component.html","./src/app/maps/widgets/ropekm-widget/ropekm-widget.component.ts","./src/app/maps/widgets/ropekm-widget/ropekm-widget.component.html","./src/app/maps/widgets/ropeway-availability-widget/ropeway-availability-widget.component.ts","./src/app/maps/widgets/ropeway-availability-widget/ropeway-availability-widget.component.html","./src/app/maps/widgets/ropeway-brakereport-widget/ropeway-brakereport-widget.component.ts","./src/app/maps/widgets/ropeway-brakereport-widget/ropeway-brakereport-widget.component.html","./src/app/maps/widgets/ropeway-chart-widget/ropeway-chart-widget.component.ts","./src/app/maps/widgets/ropeway-chart-widget/ropeway-chart-widget.component.html","./src/app/maps/widgets/ropeway-ecomode-widget/ropeway-ecomode-widget.component.ts","./src/app/maps/widgets/ropeway-ecomode-widget/ropeway-ecomode-widget.component.html","./src/app/maps/widgets/ropeway-operation-widget-base.ts","./src/app/maps/widgets/ropeway-settings-widget/ropeway-settings-widget.component.ts","./src/app/maps/widgets/ropeway-settings-widget/ropeway-settings-widget.component.html","./src/app/maps/widgets/sambesi-whatsup-widget/sambesi-whatsup-widget.component.ts","./src/app/maps/widgets/sambesi-whatsup-widget/sambesi-whatsup-widget.component.html","./src/app/maps/widgets/snowmaking-widget/snowmaking-widget.component.ts","./src/app/maps/widgets/snowmaking-widget/snowmaking-widget.component.html","./src/app/maps/widgets/speed-widget/speed-widget.component.ts","./src/app/maps/widgets/speed-widget/speed-widget.component.html","./src/app/maps/widgets/stoptime-widget/stoptime-widget.component.ts","./src/app/maps/widgets/stoptime-widget/stoptime-widget.component.html","./src/app/maps/widgets/temperature-widget/temperature-widget.component.ts","./src/app/maps/widgets/temperature-widget/temperature-widget.component.html","./src/app/maps/widgets/torque-widget/torque-widget.component.ts","./src/app/maps/widgets/torque-widget/torque-widget.component.html","./src/app/maps/widgets/transportweight-widget/transportweight-widget.component.ts","./src/app/maps/widgets/transportweight-widget/transportweight-widget.component.html","./src/app/maps/widgets/trips-widget/trips-widget.component.ts","./src/app/maps/widgets/trips-widget/trips-widget.component.html","./src/app/maps/widgets/truscan-widget/truscan-widget.component.ts","./src/app/maps/widgets/truscan-widget/truscan-widget.component.html","./src/app/maps/widgets/utilization-widget/utilization-widget.component.ts","./src/app/maps/widgets/utilization-widget/utilization-widget.component.html","./src/app/maps/widgets/weathertrend-widget/weathertrend-widget.component.ts","./src/app/maps/widgets/weathertrend-widget/weathertrend-widget.component.html","./src/app/maps/widgets/webcam-widget/webcam-widget.component.ts","./src/app/maps/widgets/webcam-widget/webcam-widget.component.html","./src/app/maps/widgets/wet-bulb-widget/wet-bulb-widget.component.ts","./src/app/maps/widgets/wet-bulb-widget/wet-bulb-widget.component.html","./src/app/maps/widgets/widget-base.ts","./src/app/maps/widgets/wind-widget/wind-widget.component.ts","./src/app/maps/widgets/wind-widget/wind-widget.component.html","./src/app/maps/widgets/windtendency-widget/windtendency-widget.component.ts","./src/app/maps/widgets/windtendency-widget/windtendency-widget.component.html","./src/app/maps/widgets/zones-widget/zones-widget.component.ts","./src/app/maps/widgets/zones-widget/zones-widget.component.html","./src/app/maps/wind-display-calculator/wind-display-calculator.service.ts","./src/app/media-center/ckeditor/ckeditor.page.ts","./src/app/media-center/ckeditor/ckeditor.page.html","./src/app/media-center/ckeditor/ckeditor.service.ts","./src/app/media-center/domain/mediacenter-configuration.adapter.ts","./src/app/media-center/domain/mediacenter-configuration.model.ts","./src/app/media-center/image-browse/image-browse.component.ts","./src/app/media-center/image-browse/image-browse.component.html","./src/app/media-center/image-browse/image-container/image-container.component.ts","./src/app/media-center/image-browse/image-container/image-container.component.html","./src/app/media-center/media-center.module.ts","./src/app/media-center/media-center.page.ts","./src/app/media-center/media-center.page.html","./src/app/media-center/media-center.service.ts","./src/app/media-center/network-state/network-state.adapter.ts","./src/app/media-center/network-state/network-state.service.ts","./src/app/media-center/playlists/domain/playlist.adapter.ts","./src/app/media-center/playlists/domain/playlist.model.ts","./src/app/media-center/playlists/domain/slide-mapping.adapter.ts","./src/app/media-center/playlists/media-center-playlists.component.ts","./src/app/media-center/playlists/media-center-playlists.component.html","./src/app/media-center/playlists/media-center-playlists.service.ts","./src/app/media-center/playlists/playlist-item/playlist-item.component.ts","./src/app/media-center/playlists/playlist-item/playlist-item.component.html","./src/app/media-center/remote-access/remote-access-status.adapter.ts","./src/app/media-center/remote-access/remote-access-status.service.ts","./src/app/media-center/screens/domain/screen-group.adapter.ts","./src/app/media-center/screens/domain/screen-type.adapter.ts","./src/app/media-center/screens/domain/screen.adapter.ts","./src/app/media-center/screens/infobanner-modal/domain/infobanner-textcategory.enum.ts","./src/app/media-center/screens/infobanner-modal/domain/infobanner.adapter.ts","./src/app/media-center/screens/infobanner-modal/domain/position.enum.ts","./src/app/media-center/screens/infobanner-modal/infobanner-screen-selector-modal/domain/infobanner-screen-group.model.ts","./src/app/media-center/screens/infobanner-modal/infobanner-screen-selector-modal/infobanner-screen-selector.component.ts","./src/app/media-center/screens/infobanner-modal/infobanner-screen-selector-modal/infobanner-screen-selector.component.html","./src/app/media-center/screens/infobanner-modal/infobanner-text-modal/infobanner-text.component.ts","./src/app/media-center/screens/infobanner-modal/infobanner-text-modal/infobanner-text.component.html","./src/app/media-center/screens/infobanner-modal/infobanner.component.ts","./src/app/media-center/screens/infobanner-modal/infobanner.component.html","./src/app/media-center/screens/infobanner-modal/infobanner.service.ts","./src/app/media-center/screens/media-center-screens.component.ts","./src/app/media-center/screens/media-center-screens.component.html","./src/app/media-center/screens/media-center-screens.service.ts","./src/app/media-center/screens/operatinghour-modal/operatinghour.component.ts","./src/app/media-center/screens/operatinghour-modal/operatinghour.component.html","./src/app/media-center/screens/screen-group/screen-group.component.ts","./src/app/media-center/screens/screen-group/screen-group.component.html","./src/app/media-center/screens/screeneditor-modal/screeneditor.component.ts","./src/app/media-center/screens/screeneditor-modal/screeneditor.component.html","./src/app/media-center/slides/domain/slide.adapter.ts","./src/app/media-center/slides/domain/slide.model.ts","./src/app/media-center/slides/media-center-slides.component.ts","./src/app/media-center/slides/media-center-slides.component.html","./src/app/media-center/slides/media-center-slides.service.ts","./src/app/media-center/slides/time-control-modal/time-control-modal.component.ts","./src/app/media-center/slides/time-control-modal/time-control-modal.component.html","./src/app/media-center/video-browse/video-browse.component.ts","./src/app/media-center/video-browse/video-browse.component.html","./src/app/meteo-info/domain/meteo-info-item.adapter.ts","./src/app/meteo-info/domain/meteo-info.adapter.ts","./src/app/meteo-info/meteo-info-field-names/meteo-info-field-names.component.ts","./src/app/meteo-info/meteo-info-field-names/meteo-info-field-names.component.html","./src/app/meteo-info/meteo-info-item/meteo-info-item.component.ts","./src/app/meteo-info/meteo-info-item/meteo-info-item.component.html","./src/app/meteo-info/meteo-info.module.ts","./src/app/meteo-info/meteo-info.page.ts","./src/app/meteo-info/meteo-info.page.html","./src/app/meteo-info/meteo-info.service.ts","./src/app/operating-info/domain/operating-info-entry.adapter.ts","./src/app/operating-info/domain/operating-info-request-data.adapter.ts","./src/app/operating-info/domain/operating-info-text.adapter.ts","./src/app/operating-info/operating-info-infoscreen/operating-info-infoscreen.component.ts","./src/app/operating-info/operating-info-infoscreen/operating-info-infoscreen.component.html","./src/app/operating-info/operating-info-item/operating-info-item.component.ts","./src/app/operating-info/operating-info-item/operating-info-item.component.html","./src/app/operating-info/operating-info.page.module.ts","./src/app/operating-info/operating-info.page.ts","./src/app/operating-info/operating-info.page.html","./src/app/operating-info/operating-info.service.ts","./src/app/operating-info/sis-operating-info-entry-edit/sis-operating-info-entry-edit.component.ts","./src/app/operating-info/sis-operating-info-entry-edit/sis-operating-info-entry-edit.component.html","./src/app/parking/domain/parking-setting.enum.ts","./src/app/parking/domain/parking-status.enum.ts","./src/app/parking/domain/parking.adapter.ts","./src/app/parking/domain/parking.model.ts","./src/app/parking/domain/parking.service.ts","./src/app/parking/parking-item/parking-edit-modal/parking-edit-modal.component.ts","./src/app/parking/parking-item/parking-edit-modal/parking-edit-modal.component.html","./src/app/parking/parking-item/parking-exports-edit-modal/parking-exports-edit-modal.component.ts","./src/app/parking/parking-item/parking-exports-edit-modal/parking-exports-edit-modal.component.html","./src/app/parking/parking-item/parking-item.component.ts","./src/app/parking/parking-item/parking-item.component.html","./src/app/parking/parking-item/parking-occupancy-modal/parking-occupancy-modal.component.ts","./src/app/parking/parking-item/parking-occupancy-modal/parking-occupancy-modal.component.html","./src/app/parking/parking.module.ts","./src/app/parking/parking.page.ts","./src/app/parking/parking.page.html","./src/app/remote-access/access-type.enum.ts","./src/app/remote-access/connection-parameter.model.ts","./src/app/remote-access/remote-access.component.ts","./src/app/remote-access/remote-access.component.html","./src/app/remote-access/remote-access.service.ts","./src/app/sisag-admin/domain/edit-token.adapter.ts","./src/app/sisag-admin/gateway-response-box/gateway-response-box.component.ts","./src/app/sisag-admin/gateway-response-box/gateway-response-box.component.html","./src/app/sisag-admin/sisag-admin.module.ts","./src/app/sisag-admin/sisag-admin.page.ts","./src/app/sisag-admin/sisag-admin.page.html","./src/app/sisag-admin/sisag-admin.service.ts","./src/app/sisag-admin/sismap-edit-token/sismap-edit-token.component.ts","./src/app/sisag-admin/sismap-edit-token/sismap-edit-token.component.html","./src/app/sismedia-setting/sismedia-setting.adapter.ts","./src/app/sismedia-setting/sismedia-setting.module.ts","./src/app/sismedia-setting/sismedia-setting.page.ts","./src/app/sismedia-setting/sismedia-setting.page.html","./src/app/sismedia-setting/sismedia-setting.service.ts","./src/app/sismedia/domain/sismedia-asset-category.enum.ts","./src/app/sismedia/domain/sismedia-asset-import-type.enum.ts","./src/app/sismedia/domain/sismedia-asset-status.enum.ts","./src/app/sismedia/domain/sismedia-asset-substatus.enum.ts","./src/app/sismedia/domain/sismedia-item.adapter.ts","./src/app/sismedia/domain/sismedia-item.model.ts","./src/app/sismedia/domain/sismedia-season.enum.ts","./src/app/sismedia/sismedia-asset-override/asset-override-item/asset-override-item.component.ts","./src/app/sismedia/sismedia-asset-override/asset-override-item/asset-override-item.component.html","./src/app/sismedia/sismedia-asset-override/domain/sismedia-asset-override-entry.adapter.ts","./src/app/sismedia/sismedia-asset-override/sismedia-asset-override.page.ts","./src/app/sismedia/sismedia-asset-override/sismedia-asset-override.page.html","./src/app/sismedia/sismedia-asset-override/sismedia-asset-override.service.ts","./src/app/sismedia/sismedia-category/sismedia-category.component.ts","./src/app/sismedia/sismedia-category/sismedia-category.component.html","./src/app/sismedia/sismedia-edit-modal/sismedia-edit-modal.component.ts","./src/app/sismedia/sismedia-edit-modal/sismedia-edit-modal.component.html","./src/app/sismedia/sismedia-exports-edit-modal/sismedia-exports-edit-modal.component.ts","./src/app/sismedia/sismedia-exports-edit-modal/sismedia-exports-edit-modal.component.html","./src/app/sismedia/sismedia-exports-edit-modal/sismedia-exports-edit.service.ts","./src/app/sismedia/sismedia-item/sismedia-item.component.ts","./src/app/sismedia/sismedia-item/sismedia-item.component.html","./src/app/sismedia/sismedia-item/sismedia-item.service.ts","./src/app/sismedia/sismedia-operating-hours-modal/domain/sismedia-operating-hours-entry.adapter.ts","./src/app/sismedia/sismedia-operating-hours-modal/sismedia-operating-hours-item/sismedia-operating-hours-item.component.ts","./src/app/sismedia/sismedia-operating-hours-modal/sismedia-operating-hours-item/sismedia-operating-hours-item.component.html","./src/app/sismedia/sismedia-operating-hours-modal/sismedia-operating-hours-modal.component.ts","./src/app/sismedia/sismedia-operating-hours-modal/sismedia-operating-hours-modal.component.html","./src/app/sismedia/sismedia-operating-hours-modal/sismedia-operating-hours-modal.service.ts","./src/app/sismedia/sismedia-substatus/sismedia-substatus.component.ts","./src/app/sismedia/sismedia-substatus/sismedia-substatus.component.html","./src/app/sismedia/sismedia.module.ts","./src/app/sismedia/sismedia.page.ts","./src/app/sismedia/sismedia.page.html","./src/app/slopes-operating-times/domain/slopes-operating-times.adapter.ts","./src/app/slopes-operating-times/slopes-operating-times-item/slopes-operating-times-item.component.ts","./src/app/slopes-operating-times/slopes-operating-times-item/slopes-operating-times-item.component.html","./src/app/slopes-operating-times/slopes-operating-times.module.ts","./src/app/slopes-operating-times/slopes-operating-times.page.ts","./src/app/slopes-operating-times/slopes-operating-times.page.html","./src/app/slopes-operating-times/slopes-operating-times.service.ts","./src/app/stnet/domain/stnet-calculated-data.adapter.ts","./src/app/stnet/domain/stnet-item.adapter.ts","./src/app/stnet/domain/stnet.adapter.ts","./src/app/stnet/stnet-calculated/stnet-calculated-item/stnet-calculated-item.component.ts","./src/app/stnet/stnet-calculated/stnet-calculated-item/stnet-calculated-item.component.html","./src/app/stnet/stnet-calculated/stnet-calculated.component.ts","./src/app/stnet/stnet-calculated/stnet-calculated.component.html","./src/app/stnet/stnet-editable/stnet-editable.component.ts","./src/app/stnet/stnet-editable/stnet-editable.component.html","./src/app/stnet/stnet.module.ts","./src/app/stnet/stnet.page.ts","./src/app/stnet/stnet.page.html","./src/app/stnet/stnet.service.ts","./src/app/timetable/domain/timetable-direction.enum.ts","./src/app/timetable/domain/timetable-interval-day.adapter.ts","./src/app/timetable/domain/timetable-interval.adapter.ts","./src/app/timetable/domain/timetable-season.adapter.ts","./src/app/timetable/domain/timetable-track.adapter.ts","./src/app/timetable/domain/timetable-type.enum.ts","./src/app/timetable/interval-day-editor-modal/interval-day-editor.component.ts","./src/app/timetable/interval-day-editor-modal/interval-day-editor.component.html","./src/app/timetable/journey-editor-modal/journey-editor.component.ts","./src/app/timetable/journey-editor-modal/journey-editor.component.html","./src/app/timetable/journey-row-mobile/journey-row-mobile.component.ts","./src/app/timetable/journey-row-mobile/journey-row-mobile.component.html","./src/app/timetable/journey-row/journey-row.component.ts","./src/app/timetable/journey-row/journey-row.component.html","./src/app/timetable/season-editor/season-editor.component.ts","./src/app/timetable/season-editor/season-editor.component.html","./src/app/timetable/time-item/time-item.component.ts","./src/app/timetable/time-item/time-item.component.html","./src/app/timetable/timetable-interval/timetable-interval.component.ts","./src/app/timetable/timetable-interval/timetable-interval.component.html","./src/app/timetable/timetable.module.ts","./src/app/timetable/timetable.page.ts","./src/app/timetable/timetable.page.html","./src/app/timetable/timetable.service.ts","./src/app/user-management/access-level-selector/access-level-popover/access-level-popover.component.ts","./src/app/user-management/access-level-selector/access-level-popover/access-level-popover.component.html","./src/app/user-management/access-level-selector/access-level-selector.component.ts","./src/app/user-management/access-level-selector/access-level-selector.component.html","./src/app/user-management/domain/managed-tenant.adapter.ts","./src/app/user-management/domain/user-management-data.adapter.ts","./src/app/user-management/domain/user.adapter.ts","./src/app/user-management/user-management-edit-modal/user-management-edit-modal.component.ts","./src/app/user-management/user-management-edit-modal/user-management-edit-modal.component.html","./src/app/user-management/user-management-filter/user-management-filter.component.ts","./src/app/user-management/user-management-filter/user-management-filter.component.html","./src/app/user-management/user-management-item/user-management-item.component.ts","./src/app/user-management/user-management-item/user-management-item.component.html","./src/app/user-management/user-management.module.ts","./src/app/user-management/user-management.page.ts","./src/app/user-management/user-management.page.html","./src/app/user-management/user-management.service.ts","./src/app/user-message/user-message-color.ts","./src/app/user-message/user-message-icon.ts","./src/app/user-message/user-message.model.ts","./src/app/user-message/user-message.service.ts","./src/app/version.service.ts","./src/app/weblink-collection/domain/weblink-item-category.enum.ts","./src/app/weblink-collection/domain/weblink-item.adapter.ts","./src/app/weblink-collection/weblink-collection.module.ts","./src/app/weblink-collection/weblink-collection.page.ts","./src/app/weblink-collection/weblink-collection.page.html","./src/app/weblink-collection/weblink-collection.service.ts","./src/app/weblink-collection/weblink-edit-modal/weblink-edit-modal.component.ts","./src/app/weblink-collection/weblink-edit-modal/weblink-edit-modal.component.html","./src/app/weblink-collection/weblink-group/weblink-group.component.ts","./src/app/weblink-collection/weblink-group/weblink-group.component.html","./src/app/weblink-collection/weblink-item/weblink-item.component.ts","./src/app/weblink-collection/weblink-item/weblink-item.component.html","./src/environments/environment.dev.ts","./src/main.ts","./src/app/remote-access/noVNC/core/rfb.js","./src/app/remote-access/noVNC/core/util/cursor.js","./src/app/remote-access/noVNC/core/websock.js","./node_modules/@ionic/core/dist/esm/ lazy ^\\.\\/.*\\.entry\\.js$ include: \\.entry\\.js$ exclude: \\.system\\.entry\\.js$ namespace object","./node_modules/@stencil/core/internal/client/ lazy ^\\.\\/.*\\.entry\\.js.*$ include: \\.entry\\.js$ exclude: \\.system\\.entry\\.js$ strict namespace object","./node_modules/moment/locale/ sync ^\\.\\/.*$","ignored|D:\\W19AZUREBUILD_1\\_work\\145\\s\\SisControl.Cockpit\\SisControl.Cockpit.WebApp\\SisControl.Cockpit.SPA\\node_modules\\@azure\\storage-blob\\dist-esm\\storage-blob\\src|os"],"sourcesContent":["import { Component, Input, OnInit } from '@angular/core';\r\nimport { TranslateService } from '@ngx-translate/core';\r\nimport { takeUntil } from 'rxjs/operators';\r\nimport { Unsubscriber } from 'src/app/core/unsubscriber';\r\nimport { FormattedTimestamp } from 'src/app/core/utils/formatted-timestamp';\r\nimport { TimeFormatService } from 'src/app/core/utils/time-format.service';\r\nimport { Alarm, AlarmLevel } from 'src/app/domain/alarm.model';\r\nimport { UserSettingsService } from 'src/app/domain/user-settings/user-settings.service';\r\nimport { MasterdataService } from 'src/app/maps/domain/masterdata.service';\r\n\r\n@Component({\r\n selector: 'sis-alarmlist-item',\r\n templateUrl: './alarmlist-item.component.html',\r\n styleUrls: ['./alarmlist-item.component.scss'],\r\n standalone: false\r\n})\r\nexport class AlarmlistItemComponent extends Unsubscriber implements OnInit {\r\n private static readonly alarmClass = 'sis-alarm-item';\r\n private static readonly warningClass = 'sis-warning-item';\r\n private static readonly infoClass = 'sis-info-item';\r\n\r\n @Input() index: number;\r\n @Input() bigScreenMode: boolean;\r\n @Input() alarm: Alarm;\r\n\r\n timestamp: FormattedTimestamp;\r\n alias: string;\r\n cssClass: string;\r\n levelTranslateString: string;\r\n\r\n constructor(\r\n private userSettingService: UserSettingsService,\r\n private timeFormatService: TimeFormatService,\r\n private translateService: TranslateService,\r\n private masterdataService: MasterdataService\r\n ) {\r\n super();\r\n }\r\n\r\n ngOnInit(): void {\r\n if (this.alarm) {\r\n this.timestamp = new FormattedTimestamp(this.userSettingService, this.translateService, this.timeFormatService, this.alarm.timestamp);\r\n\r\n this.masterdataService.masterData$.pipe(takeUntil(this.onDestroy$)).subscribe((masterData) => {\r\n const ginStationName = this.alarm.code.startsWith('GIN') ? this.alarm.info : null;\r\n this.alias = masterData.ropeways.find((r) => Alarm.includesSisId(this.alarm, r.sisId))?.alias ?? ginStationName;\r\n });\r\n\r\n this.cssClass = this.getCssClass();\r\n this.levelTranslateString = this.getLevelTranslateString(this.alarm.level);\r\n }\r\n }\r\n\r\n private getLevelTranslateString(level: string): string {\r\n return `alarming.term.${level}`;\r\n }\r\n\r\n private getCssClass(): string {\r\n if (this.alarm.level === AlarmLevel.WARNING) {\r\n return AlarmlistItemComponent.warningClass;\r\n }\r\n\r\n if (this.alarm.level === AlarmLevel.ALARM || this.alarm.level === AlarmLevel.FAULT || this.alarm.level === AlarmLevel.SYSTEM) {\r\n return AlarmlistItemComponent.alarmClass;\r\n }\r\n\r\n return AlarmlistItemComponent.infoClass;\r\n }\r\n}\r\n","\r\n {{\r\n this.timestamp.formattedTimestamp$ | async\r\n }}\r\n {{ this.alias }}\r\n {{ this.alarm.code }}\r\n {{ this.levelTranslateString | translate }}\r\n {{ this.alarm.text }}\r\n\r\n\r\n {{ this.alias }}\r\n \r\n \r\n {{ this.timestamp.formattedTimestamp$ | async }}\r\n \r\n \r\n
\r\n {{ this.alarm.code }}\r\n {{ this.alarm.text }}\r\n
\r\n\r\n","import { Component } from '@angular/core';\r\nimport { ModalController } from '@ionic/angular';\r\nimport { ScreenSizeService } from 'src/app/core/utils/screen-size.service';\r\n\r\n@Component({\r\n selector: 'sis-alarmlist-modal',\r\n templateUrl: './alarmlist-modal.component.html',\r\n styleUrls: ['./alarmlist-modal.component.scss'],\r\n standalone: false\r\n})\r\nexport class AlarmlistModalComponent {\r\n constructor(private modalCtrl: ModalController, public screenSizeService: ScreenSizeService) {}\r\n\r\n closeModal(): void {\r\n this.modalCtrl.dismiss();\r\n }\r\n}\r\n","\r\n \r\n \r\n \r\n \r\n \r\n {{ 'alarming.phrase.activeAlarms' | translate }}\r\n \r\n\r\n\r\n\r\n \r\n\r\n","import { Component, Input, OnInit } from '@angular/core';\r\nimport { takeUntil } from 'rxjs/operators';\r\nimport { AlarmlistService } from 'src/app/alarmlist/alarmlist.service';\r\nimport { Unsubscriber } from 'src/app/core/unsubscriber';\r\nimport { ScreenSizeService } from 'src/app/core/utils/screen-size.service';\r\nimport { Alarm } from 'src/app/domain/alarm.model';\r\n\r\n@Component({\r\n selector: 'sis-alarmlist',\r\n templateUrl: './alarmlist.component.html',\r\n styleUrls: ['./alarmlist.component.scss'],\r\n standalone: false\r\n})\r\nexport class AlarmlistComponent extends Unsubscriber implements OnInit {\r\n @Input() showTitle = true;\r\n\r\n alarms: Alarm[] = [];\r\n bigScreenMode: boolean;\r\n\r\n constructor(private alarmListService: AlarmlistService, private screenSizeService: ScreenSizeService) {\r\n super();\r\n }\r\n\r\n ngOnInit() {\r\n this.alarmListService.alarms$.pipe(takeUntil(this.onDestroy$)).subscribe((alarms) => {\r\n this.alarms = AlarmlistService.sortByTypeAndTimestamp(AlarmlistService.filterActive(alarms));\r\n });\r\n\r\n this.screenSizeService.bigScreenMode$.pipe(takeUntil(this.onDestroy$)).subscribe((bigScreenMode) => (this.bigScreenMode = bigScreenMode));\r\n }\r\n\r\n itemId(_: number, alarm: Alarm): number {\r\n return alarm.timestampMs;\r\n }\r\n}\r\n","\r\n \r\n \r\n \r\n {{ 'general.term.datetime' | translate }}\r\n \r\n \r\n {{\r\n 'general.term.devicename' | translate\r\n }}\r\n {{\r\n 'alarming.term.alarmId' | translate\r\n }}\r\n {{ 'alarming.term.level' | translate }}\r\n {{ 'alarming.term.description' | translate }}\r\n \r\n \r\n\r\n","import { CommonModule } from '@angular/common';\r\nimport { NgModule } from '@angular/core';\r\nimport { FormsModule } from '@angular/forms';\r\nimport { RouterModule } from '@angular/router';\r\nimport { IonicModule } from '@ionic/angular';\r\nimport { TranslateModule } from '@ngx-translate/core';\r\nimport { AlarmlistComponent } from 'src/app/alarmlist/alarmlist.component';\r\nimport { CoreModule } from 'src/app/core/core.module';\r\n\r\n@NgModule({\r\n imports: [\r\n CommonModule,\r\n FormsModule,\r\n IonicModule,\r\n CoreModule,\r\n RouterModule.forChild([\r\n {\r\n path: '',\r\n component: AlarmlistComponent\r\n }\r\n ]),\r\n TranslateModule\r\n ]\r\n})\r\nexport class AlarmlistPageModule {}\r\n","import { Injectable } from '@angular/core';\r\nimport { combineLatest, Observable } from 'rxjs';\r\nimport { map, shareReplay } from 'rxjs/operators';\r\nimport { Alarm } from 'src/app/domain/alarm.model';\r\nimport { DestinationAlarmService } from 'src/app/maps/livedata/destination-alarm.service';\r\nimport { GinAlarmService } from 'src/app/maps/livedata/gin-alarm.service';\r\nimport { MeteoForecastAlarmService } from 'src/app/maps/livedata/meteo-forecast-alarm.service';\r\nimport { RopewayAlarmService } from 'src/app/maps/livedata/ropeway-alarm.service';\r\nimport { RopewayEfaService } from 'src/app/maps/livedata/ropeway-efa.service';\r\n\r\n@Injectable({\r\n providedIn: 'root',\r\n})\r\nexport class AlarmlistService {\r\n static filterActive(alarms: Alarm[]): Alarm[] {\r\n return alarms?.filter((a) => a.active) ?? [];\r\n }\r\n\r\n static sortByTypeAndTimestamp(alarms: Alarm[]): Alarm[] {\r\n return alarms\r\n .sort((a, b) => (a.timestamp > b.timestamp ? -1 : 1))\r\n .sort((a, b) => Alarm.alarmLevelOrder.indexOf(a.level) - Alarm.alarmLevelOrder.indexOf(b.level));\r\n }\r\n\r\n readonly alarms$: Observable = combineLatest([\r\n this.destinationAlarmService.alarms$,\r\n this.ropewayAlarmService.alarms$,\r\n this.ropewayEfaService.efas$,\r\n this.meteoForecastAlarmService.alarms$,\r\n this.ginAlarmService.alarms$,\r\n ]).pipe(\r\n map(([destinationAlarms, ropewayAlarms, ropewayEfas, meteoForecastAlarms, ginAlarms]) => [\r\n ...destinationAlarms,\r\n ...ropewayAlarms,\r\n ...ropewayEfas,\r\n ...meteoForecastAlarms,\r\n ...ginAlarms,\r\n ]),\r\n shareReplay({\r\n bufferSize: 1,\r\n refCount: true,\r\n })\r\n );\r\n\r\n constructor(\r\n private meteoForecastAlarmService: MeteoForecastAlarmService,\r\n private destinationAlarmService: DestinationAlarmService,\r\n private ropewayAlarmService: RopewayAlarmService,\r\n private ropewayEfaService: RopewayEfaService,\r\n private ginAlarmService: GinAlarmService\r\n ) {}\r\n}\r\n","import { inject, NgModule } from '@angular/core';\r\nimport { RouterModule, Routes } from '@angular/router';\r\nimport { AlarmlistPageModule } from 'src/app/alarmlist/alarmlist.module';\r\nimport { AppResolver } from 'src/app/app.resolver';\r\nimport { BreakdownInfoPageModule } from 'src/app/breakdowninfo/breakdowninfo.module';\r\nimport { CanActivateGuard } from 'src/app/can-activate.guard';\r\nimport { SisRoute } from 'src/app/domain/sis-route.model';\r\nimport { EmailDeliveryPageModule } from 'src/app/email-delivery/email-delivery.module';\r\nimport { ErrorPage } from 'src/app/error/error.page';\r\nimport { FeatureManagementPageModule } from 'src/app/feature-management/feature-management.module';\r\nimport { GeoMapPageModule } from 'src/app/geomap/geomap.module';\r\nimport { InfotextPageModule } from 'src/app/infotext/infotext.module';\r\nimport { SisItServicesPageModule } from 'src/app/it-services/sis-it-services.module';\r\nimport { LastSlopeControlPageModule } from 'src/app/last-slope-control/last-slope-control.module';\r\nimport { LedTickerPageModule } from 'src/app/led-ticker/led-ticker.module';\r\nimport { MapsPageModule } from 'src/app/maps/maps.module';\r\nimport { MediaCenterPageModule } from 'src/app/media-center/media-center.module';\r\nimport { MeteoInfoPageModule } from 'src/app/meteo-info/meteo-info.module';\r\nimport { OperatingInfoPageModule } from 'src/app/operating-info/operating-info.page.module';\r\nimport { ParkingPageModule } from 'src/app/parking/parking.module';\r\nimport { SisagAdminPageModule } from 'src/app/sisag-admin/sisag-admin.module';\r\nimport { SisMediaPageModule } from 'src/app/sismedia/sismedia.module';\r\nimport { SisMediaSettingPageModule } from 'src/app/sismedia-setting/sismedia-setting.module';\r\nimport { SlopesOperatingTimesPageModule } from 'src/app/slopes-operating-times/slopes-operating-times.module';\r\nimport { STnetPageModule } from 'src/app/stnet/stnet.module';\r\nimport { TimetableModule } from 'src/app/timetable/timetable.module';\r\nimport { UserManagementPageModule } from 'src/app/user-management/user-management.module';\r\nimport { WebLinkCollectionModule } from 'src/app/weblink-collection/weblink-collection.module';\r\n\r\nexport const routes: Routes = [\r\n {\r\n path: '',\r\n redirectTo: `default/${SisRoute.MAPS}`,\r\n pathMatch: 'full',\r\n },\r\n {\r\n path: `:destination/${SisRoute.MAPS}`,\r\n loadChildren: () => MapsPageModule,\r\n canActivate: [() => inject(CanActivateGuard).canActivate()],\r\n resolve: {\r\n hasDestination: AppResolver,\r\n },\r\n },\r\n {\r\n path: `:destination/${SisRoute.ALARMLIST}`,\r\n loadChildren: () => AlarmlistPageModule,\r\n canActivate: [() => inject(CanActivateGuard).canActivate()],\r\n resolve: {\r\n hasDestination: AppResolver,\r\n },\r\n },\r\n {\r\n path: `:destination/${SisRoute.SISITSERVICES}`,\r\n loadChildren: () => SisItServicesPageModule,\r\n canActivate: [() => inject(CanActivateGuard).canActivate()],\r\n resolve: {\r\n hasDestination: AppResolver,\r\n },\r\n },\r\n {\r\n path: `:destination/${SisRoute.SISMEDIASETTING}`,\r\n loadChildren: () => SisMediaSettingPageModule,\r\n canActivate: [() => inject(CanActivateGuard).canActivate()],\r\n resolve: {\r\n hasDestination: AppResolver,\r\n },\r\n },\r\n {\r\n path: `:destination/${SisRoute.SISMEDIA}/:category`,\r\n loadChildren: () => SisMediaPageModule,\r\n canActivate: [() => inject(CanActivateGuard).canActivate()],\r\n resolve: {\r\n hasDestination: AppResolver,\r\n },\r\n },\r\n {\r\n path: `:destination/${SisRoute.SISMEDIA}`,\r\n redirectTo: `:destination/${SisRoute.SISMEDIA}/${SisRoute.Lift}`,\r\n },\r\n {\r\n path: `:destination/${SisRoute.PARKING}`,\r\n loadChildren: () => ParkingPageModule,\r\n canActivate: [() => inject(CanActivateGuard).canActivate()],\r\n resolve: {\r\n hasDestination: AppResolver,\r\n },\r\n },\r\n {\r\n path: `:destination/${SisRoute.LASTSLOPECONTROL}`,\r\n loadChildren: () => LastSlopeControlPageModule,\r\n canActivate: [() => inject(CanActivateGuard).canActivate()],\r\n resolve: {\r\n hasDestination: AppResolver,\r\n },\r\n },\r\n {\r\n path: `:destination/${SisRoute.BREAKDOWNINFO}`,\r\n loadChildren: () => BreakdownInfoPageModule,\r\n canActivate: [() => inject(CanActivateGuard).canActivate()],\r\n resolve: {\r\n hasDestination: AppResolver,\r\n },\r\n },\r\n {\r\n path: `:destination/${SisRoute.OPERATINGINFO}`,\r\n loadChildren: () => OperatingInfoPageModule,\r\n canActivate: [() => inject(CanActivateGuard).canActivate()],\r\n resolve: {\r\n hasDestination: AppResolver,\r\n },\r\n },\r\n {\r\n path: `:destination/${SisRoute.MEDIACENTER}`,\r\n loadChildren: () => MediaCenterPageModule,\r\n canActivate: [() => inject(CanActivateGuard).canActivate()],\r\n resolve: {\r\n hasDestination: AppResolver,\r\n },\r\n },\r\n {\r\n path: `:destination/${SisRoute.GLOBAL}`,\r\n loadChildren: () => GeoMapPageModule,\r\n canActivate: [() => inject(CanActivateGuard).canActivate()],\r\n resolve: {\r\n hasDestination: AppResolver,\r\n },\r\n },\r\n {\r\n path: `:destination/${SisRoute.INFOTEXT}`,\r\n loadChildren: () => InfotextPageModule,\r\n canActivate: [() => inject(CanActivateGuard).canActivate()],\r\n resolve: {\r\n hasDestination: AppResolver,\r\n },\r\n },\r\n {\r\n path: `:destination/${SisRoute.METEOINFO}`,\r\n loadChildren: () => MeteoInfoPageModule,\r\n canActivate: [() => inject(CanActivateGuard).canActivate()],\r\n resolve: {\r\n hasDestination: AppResolver,\r\n },\r\n },\r\n {\r\n path: `:destination/${SisRoute.STNET}`,\r\n loadChildren: () => STnetPageModule,\r\n canActivate: [() => inject(CanActivateGuard).canActivate()],\r\n resolve: {\r\n hasDestination: AppResolver,\r\n },\r\n },\r\n {\r\n path: `:destination/${SisRoute.USERMANAGEMENT}`,\r\n loadChildren: () => UserManagementPageModule,\r\n canActivate: [() => inject(CanActivateGuard).canActivate()],\r\n resolve: {\r\n hasDestination: AppResolver,\r\n },\r\n },\r\n {\r\n path: `:destination/${SisRoute.WEBLINKCOLLECTION}`,\r\n loadChildren: () => WebLinkCollectionModule,\r\n canActivate: [() => inject(CanActivateGuard).canActivate()],\r\n resolve: {\r\n hasDestination: AppResolver,\r\n },\r\n },\r\n {\r\n path: `:destination/${SisRoute.TIMETABLE}`,\r\n loadChildren: () => TimetableModule,\r\n canActivate: [() => inject(CanActivateGuard).canActivate()],\r\n resolve: {\r\n hasDestination: AppResolver,\r\n },\r\n },\r\n {\r\n path: `:destination/${SisRoute.LEDTICKER}`,\r\n loadChildren: () => LedTickerPageModule,\r\n canActivate: [() => inject(CanActivateGuard).canActivate()],\r\n resolve: {\r\n hasDestination: AppResolver,\r\n },\r\n },\r\n {\r\n path: `:destination/${SisRoute.EMAILDELIVERY}`,\r\n loadChildren: () => EmailDeliveryPageModule,\r\n canActivate: [() => inject(CanActivateGuard).canActivate()],\r\n resolve: {\r\n hasDestination: AppResolver,\r\n },\r\n },\r\n {\r\n path: `:destination/${SisRoute.SLOPESOPERATINGTIMES}`,\r\n loadChildren: () => SlopesOperatingTimesPageModule,\r\n canActivate: [() => inject(CanActivateGuard).canActivate()],\r\n resolve: {\r\n hasDestination: AppResolver,\r\n },\r\n },\r\n {\r\n path: `:destination/${SisRoute.FEATUREMANAGEMENT}`,\r\n loadChildren: () => FeatureManagementPageModule,\r\n canActivate: [() => inject(CanActivateGuard).canActivate(), () => inject(CanActivateGuard).isAdministrator()],\r\n resolve: {\r\n hasDestination: AppResolver,\r\n },\r\n },\r\n {\r\n path: `:destination/${SisRoute.SISAGADMIN}`,\r\n loadChildren: () => SisagAdminPageModule,\r\n canActivate: [() => inject(CanActivateGuard).canActivate(), () => inject(CanActivateGuard).isAdministrator()],\r\n resolve: {\r\n hasDestination: AppResolver,\r\n },\r\n },\r\n {\r\n path: `${SisRoute.ERROR}`,\r\n component: ErrorPage,\r\n },\r\n {\r\n path: `:destination/${SisRoute.ERROR}`,\r\n redirectTo: `${SisRoute.ERROR}`,\r\n },\r\n {\r\n path: `:destination`,\r\n redirectTo: `:destination/${SisRoute.MAPS}`,\r\n },\r\n {\r\n path: '**',\r\n redirectTo: `default/${SisRoute.MAPS}`,\r\n },\r\n];\r\n\r\n@NgModule({\r\n imports: [\r\n RouterModule.forRoot(routes, {\r\n useHash: false,\r\n }),\r\n ],\r\n exports: [RouterModule],\r\n})\r\nexport class AppRoutingModule {}\r\n","import { Component } from '@angular/core';\r\nimport { LiveMessageService } from 'src/app/core/live-message/live-message.service';\r\nimport { UserMessageService } from 'src/app/user-message/user-message.service';\r\nimport { VersionService } from 'src/app/version.service';\r\n\r\n@Component({\r\n selector: 'sis-app-service-loader',\r\n template: '',\r\n standalone: false\r\n})\r\nexport class AppServiceLoader {\r\n constructor(\r\n public messageService: LiveMessageService,\r\n public userMessageService: UserMessageService,\r\n public versionService: VersionService\r\n ) {}\r\n}\r\n","import { Component, HostListener, OnDestroy, OnInit } from '@angular/core';\r\nimport { Title } from '@angular/platform-browser';\r\nimport { MsalBroadcastService, MsalService } from '@azure/msal-angular';\r\nimport { AccountInfo, InteractionStatus } from '@azure/msal-browser';\r\nimport { ModalController } from '@ionic/angular';\r\nimport { TranslateService } from '@ngx-translate/core';\r\nimport { BehaviorSubject, Subject } from 'rxjs';\r\nimport { delay, filter, takeUntil } from 'rxjs/operators';\r\nimport { AppService } from 'src/app/app.service';\r\nimport { Unsubscriber } from 'src/app/core/unsubscriber';\r\nimport { environment } from 'src/environments/environment';\r\nimport { register } from 'swiper/element/bundle';\r\n\r\nregister();\r\n\r\n@Component({\r\n selector: 'sis-app-root',\r\n templateUrl: 'app.component.html',\r\n styleUrls: ['app.component.scss'],\r\n standalone: false,\r\n})\r\nexport class AppComponent extends Unsubscriber implements OnDestroy, OnInit {\r\n isIframe = true;\r\n isLoggedIn = false;\r\n loginInProgress = false;\r\n\r\n private isInitialized = false;\r\n\r\n constructor(\r\n private msalService: MsalService,\r\n private msalBroadcastService: MsalBroadcastService,\r\n private translateService: TranslateService,\r\n private appService: AppService,\r\n private modalCtrl: ModalController,\r\n titleService: Title\r\n ) {\r\n super();\r\n\r\n this.translateService.setDefaultLang('de');\r\n\r\n if (environment.isUiTest) {\r\n this.mockLoginForUiTests();\r\n this.translateService.use('de');\r\n } else {\r\n const browserLanguage = this.translateService.getBrowserLang();\r\n this.translateService.use(browserLanguage.match(/de|en|fr|it/) ? browserLanguage : 'en');\r\n }\r\n\r\n titleService.setTitle(environment.pageTitle);\r\n }\r\n\r\n ngOnInit() {\r\n this.isIframe = this.isInIframe();\r\n this.appService.cleanUpLocalStorage();\r\n this.setLoggedIn();\r\n\r\n this.msalBroadcastService.inProgress$\r\n .pipe(\r\n filter((status) => status === InteractionStatus.None),\r\n takeUntil(this.onDestroy$)\r\n )\r\n .subscribe(() => {\r\n this.setLoggedIn();\r\n this.checkAndSetActiveAccount();\r\n this.initializeApp();\r\n });\r\n\r\n this.msalBroadcastService.inProgress$.pipe(delay(0), takeUntil(this.onDestroy$)).subscribe((status) => {\r\n this.loginInProgress =\r\n status === InteractionStatus.Login ||\r\n status === InteractionStatus.Logout ||\r\n status === InteractionStatus.HandleRedirect;\r\n });\r\n }\r\n\r\n reloadApp(): void {\r\n window.location.reload();\r\n }\r\n\r\n isInIframe(): boolean {\r\n return window !== window.parent && !window.opener;\r\n }\r\n\r\n @HostListener('document:keydown', ['$event'])\r\n async handleKeyDownEvent(event: KeyboardEvent) {\r\n if (event.key === 'Escape' || event.key === 'Esc') {\r\n const modal = await this.modalCtrl.getTop();\r\n if (modal) {\r\n await this.modalCtrl.dismiss();\r\n }\r\n }\r\n }\r\n\r\n private setLoggedIn() {\r\n this.isLoggedIn = this.msalService.instance.getAllAccounts().length > 0;\r\n }\r\n\r\n private checkAndSetActiveAccount() {\r\n const activeAccount = this.msalService.instance.getActiveAccount();\r\n\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 private initializeApp() {\r\n if (this.isIframe || !this.isLoggedIn || this.isInitialized) {\r\n return;\r\n }\r\n\r\n this.isInitialized = true;\r\n }\r\n\r\n private mockLoginForUiTests(): void {\r\n const uiTestAccountInfo: AccountInfo = {\r\n homeAccountId: 'sis',\r\n environment: 'test',\r\n tenantId: 'uitest',\r\n username: 'UI Test User',\r\n localAccountId: 'sis-local',\r\n name: 'UI Test User',\r\n };\r\n\r\n this.msalBroadcastService['inProgress$'] = new BehaviorSubject(\r\n InteractionStatus.None\r\n ).asObservable();\r\n this.msalService.instance.getAllAccounts = () => [uiTestAccountInfo];\r\n this.msalService.instance.getActiveAccount = () => uiTestAccountInfo;\r\n this.msalService.instance.setActiveAccount = () => {};\r\n\r\n window['uiTestSignalRMessage$'] = new Subject();\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 { PortalModule } from '@angular/cdk/portal';\r\nimport { ScrollingModule } from '@angular/cdk/scrolling';\r\nimport {\r\n HTTP_INTERCEPTORS,\r\n HttpBackend,\r\n HttpClient,\r\n provideHttpClient,\r\n withInterceptorsFromDi,\r\n} from '@angular/common/http';\r\nimport { NgModule } from '@angular/core';\r\nimport { AngularFireModule } from '@angular/fire/compat';\r\nimport { AngularFireAuth } from '@angular/fire/compat/auth';\r\nimport { AngularFireDatabase, AngularFireDatabaseModule } from '@angular/fire/compat/database';\r\nimport { AngularFireMessaging, AngularFireMessagingModule } from '@angular/fire/compat/messaging';\r\nimport { ReactiveFormsModule } from '@angular/forms';\r\nimport { MAT_TOOLTIP_DEFAULT_OPTIONS, MatTooltipModule } from '@angular/material/tooltip';\r\nimport { BrowserModule, HAMMER_GESTURE_CONFIG, HammerModule } from '@angular/platform-browser';\r\nimport { BrowserAnimationsModule } from '@angular/platform-browser/animations';\r\nimport { RouteReuseStrategy } from '@angular/router';\r\nimport { LeafletModule } from '@bluehalo/ngx-leaflet';\r\nimport {\r\n MSAL_INSTANCE,\r\n MSAL_INTERCEPTOR_CONFIG,\r\n MsalBroadcastService,\r\n MsalInterceptor,\r\n MsalInterceptorConfiguration,\r\n MsalModule,\r\n MsalRedirectComponent,\r\n MsalService,\r\n} from '@azure/msal-angular';\r\nimport {\r\n BrowserCacheLocation,\r\n InteractionType,\r\n IPublicClientApplication,\r\n LogLevel,\r\n PublicClientApplication,\r\n} from '@azure/msal-browser';\r\nimport { IonicModule, IonicRouteStrategy } from '@ionic/angular';\r\nimport { IonicStorageModule } from '@ionic/storage-angular';\r\nimport { TranslateLoader, TranslateModule } from '@ngx-translate/core';\r\nimport { TranslateHttpLoader } from '@ngx-translate/http-loader';\r\nimport { NgcCookieConsentConfig, NgcCookieConsentModule } from 'ngx-cookieconsent';\r\nimport { AppComponent } from 'src/app/app.component';\r\nimport { AppRoutingModule } from 'src/app/app-routing.module';\r\nimport { AppServiceLoader } from 'src/app/app-service-loader.component';\r\nimport { BottomDrawerModule } from 'src/app/bottom-drawer/bottom-drawer.module';\r\nimport { CoreModule } from 'src/app/core/core.module';\r\nimport { ErrorPage } from 'src/app/error/error.page';\r\nimport { IonicGestureConfig } from 'src/app/hammerguesture.config';\r\nimport { HeaderComponent } from 'src/app/header/header.component';\r\nimport { MaintenanceBannerComponent } from 'src/app/header/maintenance-banner/maintenance-banner.component';\r\nimport { ApiConnectionInterceptor } from 'src/app/interceptor/api-connection.interceptor';\r\nimport { HttpCurrentTenantInterceptor } from 'src/app/interceptor/http-current-tenant.interceptor';\r\nimport { LoginComponent } from 'src/app/login/login.component';\r\nimport { MainMenuComponent } from 'src/app/main-menu/main-menu.component';\r\nimport { MainMenuListComponent } from 'src/app/main-menu/main-menu-list/main-menu-list.component';\r\nimport { MainMenuNewsComponent } from 'src/app/main-menu/main-menu-news/main-menu-news.component';\r\nimport { MainMenuNewsItemComponent } from 'src/app/main-menu/main-menu-news/main-menu-news-item/main-menu-news-item.component';\r\nimport { SelectDestinationModal } from 'src/app/main-menu/select-destination/select-destination.component';\r\nimport { SelectDestinationItemComponent } from 'src/app/main-menu/select-destination/select-destination-item/select-destination-item.component';\r\nimport { SelectLanguageModal } from 'src/app/main-menu/select-language/select-language.component';\r\nimport { TenantEditModal } from 'src/app/main-menu/tenant-edit-modal/tenant-edit.component';\r\nimport { AlarmLibraryModal } from 'src/app/maps/alarmlibrary/alarmlibrary.component';\r\nimport { AlarmLibraryItemIconComponent } from 'src/app/maps/alarmlibrary/alarmlibrary-item-icon/alarmlibrary-item-icon.component';\r\nimport { OperatingInfoPageModule } from 'src/app/operating-info/operating-info.page.module';\r\nimport { RemoteAccessComponent } from 'src/app/remote-access/remote-access.component';\r\nimport { ENV_PROVIDERS, environment } from 'src/environments/environment';\r\n\r\ndeclare const VERSION: string;\r\n\r\nconst cookieConfig: NgcCookieConsentConfig = {\r\n cookie: {\r\n domain: 'cockpit.siscontrol.ch',\r\n },\r\n palette: {\r\n popup: {\r\n background: '#6b6b6b',\r\n },\r\n button: {\r\n background: '#0fafa9',\r\n },\r\n },\r\n theme: 'edgeless',\r\n position: 'bottom',\r\n type: 'info',\r\n showLink: false,\r\n content: {},\r\n};\r\n\r\nexport function loggerCallback() {}\r\n\r\nexport function TranslateHttpLoaderFactory(httpBackend: HttpBackend): TranslateHttpLoader {\r\n return new TranslateHttpLoader(new HttpClient(httpBackend), './assets/translations/', `.json?version=${VERSION}`);\r\n}\r\n\r\nexport function MSALInstanceFactory(): IPublicClientApplication {\r\n return new PublicClientApplication({\r\n auth: {\r\n clientId: environment.clientId,\r\n authority: environment.msalAuthority,\r\n redirectUri: '/',\r\n postLogoutRedirectUri: '/',\r\n },\r\n cache: {\r\n cacheLocation: BrowserCacheLocation.LocalStorage,\r\n storeAuthStateInCookie: false,\r\n },\r\n system: {\r\n loggerOptions: {\r\n loggerCallback,\r\n logLevel: LogLevel.Info,\r\n piiLoggingEnabled: false,\r\n },\r\n },\r\n });\r\n}\r\n\r\nexport function MSALInterceptorConfigFactory(): MsalInterceptorConfiguration {\r\n const protectedResourceMap = new Map();\r\n\r\n if (!environment.isUiTest) {\r\n protectedResourceMap.set(environment.msalProtectedResource, environment.msalScopes);\r\n protectedResourceMap.set(environment.baseUrlApi, environment.msalScopes);\r\n }\r\n\r\n return {\r\n interactionType: InteractionType.Redirect,\r\n protectedResourceMap,\r\n };\r\n}\r\n\r\n@NgModule({\r\n declarations: [\r\n AppComponent,\r\n AppServiceLoader,\r\n LoginComponent,\r\n SelectDestinationModal,\r\n TenantEditModal,\r\n SelectDestinationItemComponent,\r\n SelectLanguageModal,\r\n MainMenuComponent,\r\n HeaderComponent,\r\n AlarmLibraryModal,\r\n AlarmLibraryItemIconComponent,\r\n MaintenanceBannerComponent,\r\n MainMenuListComponent,\r\n MainMenuNewsComponent,\r\n MainMenuNewsItemComponent,\r\n RemoteAccessComponent,\r\n ErrorPage,\r\n ],\r\n bootstrap: [AppComponent, MsalRedirectComponent],\r\n imports: [\r\n BrowserModule,\r\n IonicModule.forRoot({\r\n mode: 'md',\r\n innerHTMLTemplatesEnabled: true,\r\n }),\r\n IonicStorageModule.forRoot({\r\n driverOrder: ['localstorage'],\r\n }),\r\n AppRoutingModule,\r\n HammerModule,\r\n ReactiveFormsModule,\r\n BottomDrawerModule,\r\n MsalModule,\r\n AngularFireModule.initializeApp(environment.firebase),\r\n AngularFireDatabaseModule,\r\n AngularFireMessagingModule,\r\n LeafletModule,\r\n PortalModule,\r\n BrowserAnimationsModule,\r\n TranslateModule.forRoot({\r\n loader: {\r\n provide: TranslateLoader,\r\n useFactory: TranslateHttpLoaderFactory,\r\n deps: [HttpBackend],\r\n },\r\n }),\r\n CoreModule,\r\n OperatingInfoPageModule,\r\n NgcCookieConsentModule.forRoot(cookieConfig),\r\n MatTooltipModule,\r\n ScrollingModule,\r\n ],\r\n providers: [\r\n AngularFireDatabase,\r\n AngularFireAuth,\r\n AngularFireMessaging,\r\n {\r\n provide: RouteReuseStrategy,\r\n useClass: IonicRouteStrategy,\r\n },\r\n MsalService,\r\n MsalBroadcastService,\r\n ENV_PROVIDERS,\r\n {\r\n provide: HAMMER_GESTURE_CONFIG,\r\n useClass: IonicGestureConfig,\r\n },\r\n {\r\n provide: HTTP_INTERCEPTORS,\r\n useClass: MsalInterceptor,\r\n multi: true,\r\n },\r\n {\r\n provide: MSAL_INSTANCE,\r\n useFactory: MSALInstanceFactory,\r\n },\r\n {\r\n provide: MSAL_INTERCEPTOR_CONFIG,\r\n useFactory: MSALInterceptorConfigFactory,\r\n },\r\n {\r\n provide: HTTP_INTERCEPTORS,\r\n useClass: HttpCurrentTenantInterceptor,\r\n multi: true,\r\n },\r\n {\r\n provide: HTTP_INTERCEPTORS,\r\n useClass: ApiConnectionInterceptor,\r\n multi: true,\r\n },\r\n {\r\n provide: MAT_TOOLTIP_DEFAULT_OPTIONS,\r\n useValue: {\r\n disableTooltipInteractivity: true,\r\n },\r\n },\r\n provideHttpClient(withInterceptorsFromDi()),\r\n ],\r\n})\r\nexport class AppModule {}\r\n","import { Injectable } from '@angular/core';\r\nimport { ActivatedRouteSnapshot, Router, UrlSegment } from '@angular/router';\r\nimport { combineLatest, firstValueFrom } from 'rxjs';\r\nimport { DestinationService } from 'src/app/domain/destination/destination.service';\r\nimport { Feature } from 'src/app/domain/feature/feature.model';\r\nimport { FeatureId } from 'src/app/domain/feature/feature-id.model';\r\nimport { SisRoute } from 'src/app/domain/sis-route.model';\r\nimport { Tenant } from 'src/app/domain/tenant/tenant.model';\r\nimport { TenantService } from 'src/app/domain/tenant/tenant.service';\r\nimport { UserSettings } from 'src/app/domain/user-settings/user-settings.model';\r\nimport { UserSettingsService } from 'src/app/domain/user-settings/user-settings.service';\r\n\r\n@Injectable({\r\n providedIn: 'root',\r\n})\r\nexport class AppResolver {\r\n private static Routes: SisRoute[] = [];\r\n\r\n private static _initialize = (() => {\r\n AppResolver.Routes = [\r\n new SisRoute([SisRoute.MAPS], FeatureId.COCKPIT),\r\n new SisRoute([SisRoute.ALARMLIST], FeatureId.COCKPIT),\r\n new SisRoute([SisRoute.MEDIACENTER], FeatureId.SISMEDIA_MEDIACENTER),\r\n new SisRoute([SisRoute.EDITOR], FeatureId.SISMEDIA_MEDIACENTER),\r\n new SisRoute([SisRoute.SISMEDIA, SisRoute.Lift], FeatureId.SISMEDIA_LIFT),\r\n new SisRoute([SisRoute.SISMEDIA, SisRoute.Slope], FeatureId.SISMEDIA_SLOPE),\r\n new SisRoute([SisRoute.SISMEDIA, SisRoute.CrossCountry], FeatureId.SISMEDIA_CROSSCOUNTRY),\r\n new SisRoute([SisRoute.SISMEDIA, SisRoute.Sledging], FeatureId.SISMEDIA_SLEDGING),\r\n new SisRoute([SisRoute.SISMEDIA, SisRoute.Gastro], FeatureId.SISMEDIA_GASTRO),\r\n new SisRoute([SisRoute.SISMEDIA, SisRoute.Trail], FeatureId.SISMEDIA_TRAIL),\r\n new SisRoute([SisRoute.SISMEDIA, SisRoute.Bike], FeatureId.SISMEDIA_BIKE),\r\n new SisRoute([SisRoute.SISMEDIA, SisRoute.Poi], FeatureId.SISMEDIA_POI),\r\n new SisRoute([SisRoute.SISMEDIASETTING], FeatureId.SISMEDIA_ASSET_EDIT),\r\n new SisRoute([SisRoute.PARKING], FeatureId.PARKING),\r\n new SisRoute([SisRoute.LASTSLOPECONTROL], FeatureId.SISMEDIA_LASTSLOPECONTROL),\r\n new SisRoute([SisRoute.INFOTEXT], FeatureId.SISMEDIA_INFOTEXT),\r\n new SisRoute([SisRoute.METEOINFO], FeatureId.SISMEDIA_METEOINFO),\r\n new SisRoute([SisRoute.STNET], FeatureId.SISMEDIA_STNET),\r\n new SisRoute([SisRoute.SISITSERVICES], FeatureId.SISITSERVICES),\r\n new SisRoute([SisRoute.GLOBAL], FeatureId.GLOBALVIEW),\r\n new SisRoute([SisRoute.BREAKDOWNINFO], FeatureId.BREAKDOWNINFO),\r\n new SisRoute([SisRoute.OPERATINGINFO], FeatureId.OPERATINGINFO),\r\n new SisRoute([SisRoute.USERMANAGEMENT], FeatureId.USERMANAGEMENT),\r\n new SisRoute([SisRoute.WEBLINKCOLLECTION], FeatureId.WEBLINKCOLLECTION),\r\n new SisRoute([SisRoute.TIMETABLE], FeatureId.SISMEDIA_TIMETABLE),\r\n new SisRoute([SisRoute.LEDTICKER], FeatureId.SISMEDIA_LEDTICKER),\r\n new SisRoute([SisRoute.EMAILDELIVERY], FeatureId.SISMEDIA_EMAILDELIVERY),\r\n new SisRoute([SisRoute.SLOPESOPERATINGTIMES], FeatureId.SISMEDIA_SLOPESOPERATINGTIMES),\r\n new SisRoute([SisRoute.SISAGADMIN], null),\r\n new SisRoute([SisRoute.FEATUREMANAGEMENT], null),\r\n ];\r\n })();\r\n\r\n constructor(\r\n private userSettingService: UserSettingsService,\r\n private tenantService: TenantService,\r\n private destinationService: DestinationService,\r\n private router: Router\r\n ) {}\r\n\r\n async resolve(route: ActivatedRouteSnapshot): Promise {\r\n const [userSettings, tenants] = await firstValueFrom(\r\n combineLatest([this.userSettingService.userSettings$, this.tenantService.tenants$])\r\n );\r\n\r\n return this.handleIt(userSettings, tenants, route);\r\n }\r\n\r\n private async handleIt(\r\n userSettings: UserSettings,\r\n tenants: Tenant[],\r\n route: ActivatedRouteSnapshot\r\n ): Promise {\r\n let featureUrlPart = route.url.slice(1);\r\n if (featureUrlPart) {\r\n const destination: string = route.params['destination'];\r\n\r\n const currentTenant = await firstValueFrom(this.destinationService.selectedTenant$);\r\n\r\n /* 3 outcomes:\r\n * If in the url is not \"default\", we find the tenant\r\n * If is \"default\", or we find no tenant with this sisid, we use the current tenant\r\n * If current tenant is undefined, we use the default tenant\r\n */\r\n const targetTenant = tenants.find((t) => t.sisId === destination);\r\n const tenant = targetTenant || currentTenant || userSettings.defaultTenant;\r\n\r\n const features = await firstValueFrom(tenant.features$);\r\n\r\n if (this.isTargetFeatureAllowed(featureUrlPart, features)) {\r\n if (targetTenant) {\r\n if (!currentTenant || currentTenant.sisId !== targetTenant.sisId) {\r\n // If current tenant not equals target tenant\r\n this.changeDestinationTo(targetTenant);\r\n }\r\n\r\n // If we have a targetTenant and it has the feature we want to route to, we are done routing\r\n return true;\r\n }\r\n } else {\r\n // If the feature is not allowed, route to the first allowed feature\r\n featureUrlPart = this.getFirstAllowedFeatureUrlSegments(features);\r\n }\r\n\r\n // Else, we route again with the selected tenant and an allowed feature of that tenant\r\n this.routeWithTenant(tenant, featureUrlPart);\r\n return false;\r\n }\r\n\r\n return false;\r\n }\r\n\r\n private changeDestinationTo(tenant: Tenant): void {\r\n this.destinationService.changeDestination(tenant);\r\n }\r\n\r\n private routeWithTenant(tenant: Tenant, path: UrlSegment[]): void {\r\n if (path.some((p) => p.path == null)) {\r\n this.router.navigate(['error']);\r\n return;\r\n }\r\n\r\n const lastSegment = path[path.length - 1];\r\n const [urlPart, queryParams] = lastSegment.path.split('?');\r\n lastSegment.path = urlPart;\r\n\r\n const url = [tenant.sisId];\r\n path.forEach((s) => url.push(s.path));\r\n\r\n if (queryParams) {\r\n const params = queryParams.split('&');\r\n\r\n const queryParamObj = params.reduce((p, c) => {\r\n const [key, value] = c.split('=');\r\n p[key] = value;\r\n return p;\r\n }, {});\r\n\r\n this.router.navigate(url, { queryParams: queryParamObj });\r\n } else {\r\n this.router.navigate(url);\r\n }\r\n }\r\n\r\n private isTargetFeatureAllowed(featureUrlPart: UrlSegment[], allowedFeatures: Feature[]): boolean {\r\n if (!featureUrlPart || featureUrlPart.length === 0) {\r\n return true;\r\n }\r\n\r\n const featureUrl = featureUrlPart.reduce((p, c) => `${p}/${c.path.split('?')[0]}`, '');\r\n\r\n const route = AppResolver.Routes.find((route) => route.featureUrl === featureUrl);\r\n\r\n return (\r\n route &&\r\n (!route.requiredFeatureId ||\r\n allowedFeatures.some((f) => f.featureId === route.requiredFeatureId && f.featureAccessLevel > 0))\r\n );\r\n }\r\n\r\n private getFirstAllowedFeatureUrlSegments(features: Feature[]): UrlSegment[] {\r\n for (const [, route] of AppResolver.Routes.entries()) {\r\n if (features.some((f) => f.featureId === route.requiredFeatureId && f.featureAccessLevel > 0)) {\r\n return route.urlSegments;\r\n }\r\n }\r\n\r\n return [new UrlSegment(null, {})];\r\n }\r\n}\r\n","import { Injectable } from '@angular/core';\r\nimport { TranslateService } from '@ngx-translate/core';\r\nimport { NgcCookieConsentService } from 'ngx-cookieconsent';\r\nimport { ReplaySubject } from 'rxjs';\r\nimport { take, takeUntil } from 'rxjs/operators';\r\nimport { NavigatorService } from 'src/app/core/navigator/navigator.service';\r\nimport { Unsubscriber } from 'src/app/core/unsubscriber';\r\n\r\n@Injectable({\r\n providedIn: 'root',\r\n})\r\nexport class AppService extends Unsubscriber {\r\n private readonly cookieAccepted = 'cookieAccepted';\r\n\r\n readonly loggedIn$ = new ReplaySubject(1);\r\n readonly acquireTokenSilentReady$ = new ReplaySubject(1);\r\n\r\n constructor(\r\n private cookieService: NgcCookieConsentService,\r\n private translateService: TranslateService,\r\n private navigatorService: NavigatorService\r\n ) {\r\n super();\r\n\r\n this.cookieService.popupClose$.pipe(take(1)).subscribe(() => {\r\n localStorage.setItem(this.cookieAccepted, 'true');\r\n });\r\n this.setupCookieBanner();\r\n\r\n this.translateService.onLangChange.pipe(takeUntil(this.onDestroy$), takeUntil(this.cookieService.popupClose$)).subscribe(() => {\r\n this.setupCookieBanner();\r\n });\r\n }\r\n\r\n deleteLocalStorage(): void {\r\n [...Object.keys(localStorage)].filter((key) => key !== this.cookieAccepted).forEach((key) => localStorage.removeItem(key));\r\n }\r\n\r\n cleanUpLocalStorage(): void {\r\n // remove old invalid msal tokens from localstorage\r\n const keys = [...Object.keys(localStorage)];\r\n const msalEntries = keys.filter((key) => key.includes('-login.windows.net-'));\r\n if (msalEntries.length > 4) {\r\n msalEntries.forEach((key) => localStorage.removeItem(key));\r\n\r\n const k = keys.find((key) => key.includes('active-account'));\r\n if (k) {\r\n localStorage.removeItem(k);\r\n }\r\n }\r\n }\r\n\r\n private setupCookieBanner() {\r\n try {\r\n this.cookieService?.destroy();\r\n } catch {\r\n // do nothing\r\n }\r\n\r\n if (localStorage.getItem(this.cookieAccepted) !== 'true') {\r\n const cookieTextTranslationString = 'general.phrase.cookies';\r\n const cookieUnderstoodTranslationString = 'general.term.understood';\r\n\r\n const cookieConfig = this.cookieService.getConfig();\r\n\r\n this.translateService\r\n .get([cookieTextTranslationString, cookieUnderstoodTranslationString])\r\n .pipe(take(1))\r\n .subscribe((translations) => {\r\n cookieConfig.content.message = translations[cookieTextTranslationString];\r\n cookieConfig.content.dismiss = translations[cookieUnderstoodTranslationString];\r\n cookieConfig.cookie.domain = this.navigatorService.baseUrl;\r\n\r\n this.cookieService.init(cookieConfig);\r\n });\r\n }\r\n }\r\n}\r\n","import { CommonModule } from '@angular/common';\r\nimport { NgModule } from '@angular/core';\r\nimport { IonicModule } from '@ionic/angular';\r\nimport { SisBottomDrawerComponent } from 'src/app/bottom-drawer/bottom-drawer';\r\n\r\n@NgModule({\r\n declarations: [SisBottomDrawerComponent],\r\n imports: [CommonModule, IonicModule],\r\n exports: [SisBottomDrawerComponent]\r\n})\r\nexport class BottomDrawerModule {}\r\n","import {\r\n AfterViewChecked,\r\n AfterViewInit,\r\n Component,\r\n ElementRef,\r\n EventEmitter,\r\n Input,\r\n OnChanges,\r\n Output,\r\n Renderer2,\r\n SimpleChanges,\r\n} from '@angular/core';\r\nimport { DomController, Platform } from '@ionic/angular';\r\nimport { DrawerState } from 'src/app/bottom-drawer/drawer-state';\r\n\r\n@Component({\r\n selector: 'sis-bottom-drawer',\r\n templateUrl: 'bottom-drawer.html',\r\n styleUrls: ['bottom-drawer.scss'],\r\n standalone: false\r\n})\r\nexport class SisBottomDrawerComponent implements AfterViewInit, AfterViewChecked, OnChanges {\r\n private readonly BOUNCE_DELTA = 30;\r\n private readonly TITLE_BAR_HEIGHT = 48;\r\n\r\n @Input() dockedHeight = 50;\r\n @Input() shouldBounce = true;\r\n @Input() distanceTop = 0;\r\n @Input() transition = '0.25s ease-in-out';\r\n @Input() minimumHeight = 0;\r\n @Input() disableDrag: boolean;\r\n @Input() state: DrawerState;\r\n\r\n @Output() onDrawerStateChange: EventEmitter = new EventEmitter();\r\n\r\n private startPositionTop: number;\r\n private hammer: HammerManager;\r\n private innerScrollElement: any;\r\n\r\n constructor(\r\n private elementRef: ElementRef,\r\n private renderer2: Renderer2,\r\n private domCtrl: DomController,\r\n private platform: Platform\r\n ) {}\r\n\r\n ngOnChanges(changes: SimpleChanges): void {\r\n if (changes.state?.currentValue != null) {\r\n this.setDrawerState(changes.state.currentValue);\r\n }\r\n\r\n const disableDrag = changes.disableDrag?.currentValue;\r\n if (disableDrag === true) {\r\n this.removePanEvents(this.hammer);\r\n }\r\n if (disableDrag === false) {\r\n this.addPanEvents(this.hammer);\r\n }\r\n }\r\n\r\n ngAfterViewChecked(): void {\r\n this.styleInnerScrollElementForSwipeActions();\r\n }\r\n\r\n ngAfterViewInit() {\r\n this.styleInnerScrollElementForSwipeActions();\r\n this.setDrawerState(this.state);\r\n\r\n this.hammer = new Hammer(this.elementRef.nativeElement);\r\n this.addPanEvents(this.hammer);\r\n }\r\n\r\n private styleInnerScrollElementForSwipeActions() {\r\n if (!this.innerScrollElement) {\r\n const shadowRoot = this.elementRef.nativeElement.querySelector(\r\n '.sis-bottom-drawer-scrollable-content'\r\n ).shadowRoot;\r\n if (!shadowRoot) {\r\n return;\r\n }\r\n this.innerScrollElement = shadowRoot.querySelector('.inner-scroll ');\r\n if (this.innerScrollElement) {\r\n this.renderer2.setStyle(\r\n this.innerScrollElement, // .scroll-content\r\n 'touch-action',\r\n 'none'\r\n );\r\n }\r\n }\r\n }\r\n\r\n private addPanEvents(hammer: HammerManager) {\r\n if (!hammer) {\r\n return;\r\n }\r\n hammer.get('pan').set({ enable: true, direction: Hammer.DIRECTION_VERTICAL });\r\n hammer.on('pan panstart panend', (ev: HammerInput) => {\r\n switch (ev.type) {\r\n case 'panstart':\r\n this.handlePanStart();\r\n break;\r\n case 'panend':\r\n this.handlePanEnd(ev);\r\n break;\r\n default:\r\n this.handlePan(ev);\r\n }\r\n });\r\n }\r\n\r\n private removePanEvents(hammer: HammerManager) {\r\n hammer.get('pan').set({ enable: false, direction: Hammer.DIRECTION_VERTICAL });\r\n hammer.off('pan panstart panend');\r\n }\r\n\r\n private setDrawerState(state: DrawerState) {\r\n this.renderer2.setStyle(this.elementRef.nativeElement, 'transition', this.transition);\r\n switch (state) {\r\n case DrawerState.Bottom:\r\n this.setTranslateY('calc(100vh - ' + this.minimumHeight + 'px)');\r\n break;\r\n case DrawerState.Docked:\r\n this.setTranslateY(this.platform.height() - this.dockedHeight + 'px');\r\n break;\r\n default:\r\n this.setTranslateY(this.distanceTop + 'px');\r\n }\r\n }\r\n\r\n private handlePanStart() {\r\n this.startPositionTop = this.elementRef.nativeElement.getBoundingClientRect().top;\r\n }\r\n\r\n private handlePanEnd(ev: HammerInput) {\r\n if (this.shouldBounce && ev.isFinal) {\r\n this.renderer2.setStyle(this.elementRef.nativeElement, 'transition', this.transition);\r\n\r\n switch (this.state) {\r\n case DrawerState.Docked:\r\n this.handleDockedPanEnd(ev);\r\n break;\r\n case DrawerState.Top:\r\n this.handleTopPanEnd(ev);\r\n break;\r\n default:\r\n this.handleBottomPanEnd(ev);\r\n }\r\n }\r\n this.onDrawerStateChange.emit(this.state);\r\n }\r\n\r\n private handleTopPanEnd(ev: HammerInput) {\r\n if (ev.deltaY > this.BOUNCE_DELTA) {\r\n this.state = DrawerState.Docked;\r\n } else {\r\n this.setTranslateY(this.distanceTop + 'px');\r\n }\r\n }\r\n\r\n private handleDockedPanEnd(ev: HammerInput) {\r\n const absDeltaY = Math.abs(ev.deltaY);\r\n if (absDeltaY > this.BOUNCE_DELTA && ev.deltaY < 0) {\r\n this.state = DrawerState.Top;\r\n } else if (absDeltaY > this.BOUNCE_DELTA && ev.deltaY > 0) {\r\n this.state = DrawerState.Bottom;\r\n } else {\r\n this.setTranslateY('calc(100vh - ' + this.dockedHeight + 'px');\r\n }\r\n }\r\n\r\n private handleBottomPanEnd(ev: HammerInput) {\r\n if (-ev.deltaY > this.BOUNCE_DELTA) {\r\n this.state = DrawerState.Docked;\r\n } else {\r\n this.setTranslateY('calc(100vh - ' + this.minimumHeight + 'px)');\r\n }\r\n }\r\n\r\n private handlePan(ev: any) {\r\n const pointerY = ev.center.y;\r\n const actualHeight = this.platform.height();\r\n this.renderer2.setStyle(this.elementRef.nativeElement, 'transition', 'none');\r\n if (pointerY > 0 && pointerY < actualHeight) {\r\n if (ev.additionalEvent === 'panup' || ev.additionalEvent === 'pandown') {\r\n const newTop = this.startPositionTop + ev.deltaY - this.TITLE_BAR_HEIGHT;\r\n\r\n if (newTop > actualHeight - this.minimumHeight) {\r\n this.setTranslateY(actualHeight - this.minimumHeight + 'px');\r\n } else {\r\n if (newTop >= this.distanceTop) {\r\n this.setTranslateY(newTop + 'px');\r\n } else if (newTop < this.distanceTop) {\r\n this.setTranslateY(this.distanceTop + 'px');\r\n }\r\n }\r\n }\r\n }\r\n }\r\n\r\n private setTranslateY(value: string) {\r\n this.domCtrl.write(() => {\r\n this.renderer2.setStyle(this.elementRef.nativeElement, 'transform', 'translateY(' + value + ')');\r\n });\r\n }\r\n}\r\n","\r\n \r\n\r\n","export enum DrawerState {\r\n Bottom,\r\n Docked,\r\n Top\r\n}\r\n","import { Component } from '@angular/core';\r\nimport { ModalController } from '@ionic/angular';\r\nimport { BreakdownInfo } from 'src/app/breakdowninfo/domain/breakdowninfo.model';\r\n\r\n@Component({\r\n templateUrl: './breakdowninfo-infoscreen.component.html',\r\n styleUrls: ['./breakdowninfo-infoscreen.component.scss'],\r\n standalone: false\r\n})\r\nexport class BreakdownInfoInfoScreenComponent {\r\n breakdownInfo: BreakdownInfo;\r\n safeInfoLink: string;\r\n iconName: string;\r\n\r\n constructor(private modalCtrl: ModalController) {}\r\n\r\n done(): void {\r\n this.modalCtrl.dismiss();\r\n }\r\n}\r\n","\r\n \r\n \r\n \r\n {{ breakdownInfo.name }}\r\n \r\n \r\n \r\n \r\n\r\n\r\n \r\n\r\n","import { Component, Input, OnChanges, OnInit } from '@angular/core';\r\nimport { TranslateService } from '@ngx-translate/core';\r\nimport { takeUntil } from 'rxjs/operators';\r\nimport { BreakdownInfoActiveText } from 'src/app/breakdowninfo/domain/breakdowninfo-activetext.model';\r\nimport { BreakdownInfoLibraryService } from 'src/app/breakdowninfo/domain/breakdowninfo-library.service';\r\nimport { BreakdownInfoLibraryEntry } from 'src/app/breakdowninfo/domain/breakdowninfo-library-entry.model';\r\nimport { Unsubscriber } from 'src/app/core/unsubscriber';\r\n\r\n@Component({\r\n selector: 'sis-breakdowninfo-item',\r\n templateUrl: './breakdowninfo-item.component.html',\r\n styleUrls: ['./breakdowninfo-item.component.scss'],\r\n standalone: false\r\n})\r\nexport class BreakdownInfoItemComponent extends Unsubscriber implements OnChanges, OnInit {\r\n @Input() entry: BreakdownInfoLibraryEntry | BreakdownInfoActiveText;\r\n\r\n color: string;\r\n title: string;\r\n text: string;\r\n\r\n constructor(\r\n private translateService: TranslateService,\r\n private breakdownInfoLibraryService: BreakdownInfoLibraryService\r\n ) {\r\n super();\r\n }\r\n\r\n ngOnInit(): void {\r\n this.breakdownInfoLibraryService.library$.pipe(takeUntil(this.onDestroy$)).subscribe(() => this.update());\r\n this.translateService.onLangChange.pipe(takeUntil(this.onDestroy$)).subscribe(() => this.update());\r\n }\r\n\r\n ngOnChanges(): void {\r\n this.update();\r\n }\r\n\r\n private update() {\r\n if (!this.entry) {\r\n return;\r\n }\r\n\r\n const langKey = this.translateService.currentLang;\r\n const entry = this.entry.languageMap.get(langKey);\r\n\r\n this.color = this.entry.color;\r\n this.title = entry.title;\r\n this.text = entry.text;\r\n }\r\n}\r\n","
\r\n
\r\n {{ this.title }}\r\n
\r\n{{ this.text }}\r\n","import { Component, Input, OnInit } from '@angular/core';\r\nimport { ModalController } from '@ionic/angular';\r\nimport { takeUntil } from 'rxjs/operators';\r\nimport { BreakdownInfoLibraryService } from 'src/app/breakdowninfo/domain/breakdowninfo-library.service';\r\nimport { BreakdownInfoLibraryEntry } from 'src/app/breakdowninfo/domain/breakdowninfo-library-entry.model';\r\nimport { Unsubscriber } from 'src/app/core/unsubscriber';\r\nimport { ScreenSizeService } from 'src/app/core/utils/screen-size.service';\r\nimport { v4 as v4guid } from 'uuid';\r\n\r\n@Component({\r\n selector: 'sis-breakdowninfo-library-item',\r\n templateUrl: './breakdowninfo-library-item.component.html',\r\n styleUrls: ['./breakdowninfo-library-item.component.scss'],\r\n standalone: false\r\n})\r\nexport class BreakdownInfoLibraryItemComponent extends Unsubscriber implements OnInit {\r\n readonly green = BreakdownInfoLibraryEntry.colorGreen;\r\n readonly yellow = BreakdownInfoLibraryEntry.colorYellow;\r\n\r\n oldItem: BreakdownInfoLibraryEntry;\r\n libraryItem: BreakdownInfoLibraryEntry;\r\n bigScreenMode: boolean;\r\n\r\n @Input() breakdownInfoLibraryEntry: BreakdownInfoLibraryEntry;\r\n\r\n constructor(\r\n private breakdownInfoLibraryService: BreakdownInfoLibraryService,\r\n private modalCtrl: ModalController,\r\n private screenSizeService: ScreenSizeService\r\n ) {\r\n super();\r\n }\r\n\r\n ngOnInit(): void {\r\n this.setItem(this.breakdownInfoLibraryEntry);\r\n\r\n this.screenSizeService.bigScreenMode$\r\n .pipe(takeUntil(this.onDestroy$))\r\n .subscribe((bigScreenMode) => (this.bigScreenMode = bigScreenMode));\r\n }\r\n\r\n async insert(): Promise {\r\n if (this.validate()) {\r\n await this.breakdownInfoLibraryService.updateLibrary(\r\n this.libraryItem,\r\n false,\r\n BreakdownInfoLibraryService.insertOperation\r\n );\r\n this.close();\r\n }\r\n }\r\n\r\n async update(): Promise {\r\n if (this.validate()) {\r\n await this.breakdownInfoLibraryService.updateLibrary(\r\n this.libraryItem,\r\n false,\r\n BreakdownInfoLibraryService.updateOperation\r\n );\r\n this.close();\r\n }\r\n }\r\n\r\n async delete(): Promise {\r\n await this.breakdownInfoLibraryService.updateLibrary(\r\n this.oldItem,\r\n false,\r\n BreakdownInfoLibraryService.deleteOperation\r\n );\r\n this.close();\r\n }\r\n\r\n validate(): boolean {\r\n if (\r\n this.libraryItem &&\r\n this.libraryItem.titleDe &&\r\n this.libraryItem.titleEn &&\r\n this.libraryItem.titleFr &&\r\n this.libraryItem.titleIt &&\r\n this.libraryItem.textDe &&\r\n this.libraryItem.textEn &&\r\n this.libraryItem.textFr &&\r\n this.libraryItem.textIt\r\n ) {\r\n return true;\r\n }\r\n return false;\r\n }\r\n\r\n private setItem(item: BreakdownInfoLibraryEntry): void {\r\n this.oldItem = item;\r\n this.libraryItem =\r\n this.oldItem != null\r\n ? new BreakdownInfoLibraryEntry(item)\r\n : new BreakdownInfoLibraryEntry({\r\n guid: v4guid(),\r\n color: BreakdownInfoLibraryEntry.colorGreen,\r\n });\r\n }\r\n\r\n close(): void {\r\n this.modalCtrl.dismiss();\r\n }\r\n}\r\n","\r\n \r\n {{ 'breakdowninfo.phrase.editLibraryEntry' | translate }}\r\n {{ 'breakdowninfo.phrase.newEntry' | translate }}\r\n \r\n \r\n\r\n\r\n\r\n \r\n
{{ 'breakdowninfo.term.infoText' | translate }}
\r\n \r\n \r\n Deutsch\r\n \r\n \r\n \r\n\r\n \r\n English\r\n \r\n \r\n \r\n\r\n \r\n Français\r\n \r\n \r\n \r\n\r\n \r\n Italiano\r\n \r\n \r\n \r\n\r\n
{{ 'breakdowninfo.term.faultLevel' | translate }}
\r\n \r\n \r\n \r\n
\r\n {{ 'breakdowninfo.term.operationOk' | translate }}\r\n
\r\n \r\n \r\n
\r\n {{ 'breakdowninfo.term.breakdown' | translate }}\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 } from '@angular/core';\r\nimport { ModalController } from '@ionic/angular';\r\nimport { takeUntil } from 'rxjs/operators';\r\nimport { BreakdownInfoLibraryItemComponent } from 'src/app/breakdowninfo/breakdowninfo-library/breakdowninfo-library-item/breakdowninfo-library-item.component';\r\nimport { BreakdownInfoLibraryService } from 'src/app/breakdowninfo/domain/breakdowninfo-library.service';\r\nimport { BreakdownInfoLibraryEntry } from 'src/app/breakdowninfo/domain/breakdowninfo-library-entry.model';\r\nimport { Unsubscriber } from 'src/app/core/unsubscriber';\r\nimport { ScreenSizeService } from 'src/app/core/utils/screen-size.service';\r\n\r\n@Component({\r\n selector: 'sis-breakdowninfo-library',\r\n templateUrl: './breakdowninfo-library.component.html',\r\n styleUrls: ['./breakdowninfo-library.component.scss'],\r\n standalone: false\r\n})\r\nexport class BreakdownInfoLibraryComponent extends Unsubscriber implements OnInit {\r\n library: BreakdownInfoLibraryEntry[];\r\n bigScreenMode: boolean;\r\n\r\n constructor(\r\n private breakdownInfoLibraryService: BreakdownInfoLibraryService,\r\n private modalCtrl: ModalController,\r\n private screenSizeService: ScreenSizeService\r\n ) {\r\n super();\r\n }\r\n\r\n ngOnInit(): void {\r\n this.breakdownInfoLibraryService.library$.pipe(takeUntil(this.onDestroy$)).subscribe((library) => {\r\n this.library = library.sort((a, b) => (a.color < b.color ? -1 : 1));\r\n });\r\n\r\n this.screenSizeService.bigScreenMode$\r\n .pipe(takeUntil(this.onDestroy$))\r\n .subscribe((bigScreenMode) => (this.bigScreenMode = bigScreenMode));\r\n }\r\n\r\n close(): void {\r\n this.modalCtrl.dismiss();\r\n }\r\n\r\n async showLibraryItem(selectedBreakdownInfoLibraryEntry: BreakdownInfoLibraryEntry): Promise {\r\n const modal = await this.modalCtrl.create({\r\n component: BreakdownInfoLibraryItemComponent,\r\n componentProps: {\r\n breakdownInfoLibraryEntry: selectedBreakdownInfoLibraryEntry,\r\n },\r\n cssClass: 'sis-breakdown-library-item-modal',\r\n });\r\n\r\n return modal.present();\r\n }\r\n}\r\n","\r\n \r\n \r\n \r\n \r\n breakdowninfo.phrase.breakdownInfoLibrary\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, OnInit } from '@angular/core';\r\nimport { DomSanitizer } from '@angular/platform-browser';\r\nimport { ModalController } from '@ionic/angular';\r\nimport { combineLatest } from 'rxjs';\r\nimport { takeUntil } from 'rxjs/operators';\r\nimport { BreakdownInfoInfoScreenComponent } from 'src/app/breakdowninfo/breakdowninfo-infoscreen/breakdowninfo-infoscreen.component';\r\nimport { BreakdownInfo } from 'src/app/breakdowninfo/domain/breakdowninfo.model';\r\nimport { BreakdownInfoActiveTextService } from 'src/app/breakdowninfo/domain/breakdowninfo-activetext.service';\r\nimport { BreakdownInfoLibraryService } from 'src/app/breakdowninfo/domain/breakdowninfo-library.service';\r\nimport { BreakdownInfoLibraryEntry } from 'src/app/breakdowninfo/domain/breakdowninfo-library-entry.model';\r\nimport { IconHelper } from 'src/app/core/icon-helper/icon-helper';\r\nimport { Unsubscriber } from 'src/app/core/unsubscriber';\r\nimport { ScreenSizeService } from 'src/app/core/utils/screen-size.service';\r\nimport { environment } from 'src/environments/environment';\r\n\r\n@Component({\r\n selector: 'sis-breakdowninfo-text-selector',\r\n templateUrl: './breakdowninfo-text-selector.component.html',\r\n styleUrls: ['./breakdowninfo-text-selector.component.scss'],\r\n standalone: false,\r\n})\r\nexport class BreakdownInfoTextSelectorComponent extends Unsubscriber implements OnInit {\r\n library: BreakdownInfoLibraryEntry[];\r\n breakdownInfo: BreakdownInfo;\r\n selectedLibraryItem: BreakdownInfoLibraryEntry;\r\n infoLinkString: string;\r\n iconName: string;\r\n bigScreenMode: boolean;\r\n\r\n constructor(\r\n private breakdownInfoActiveTextService: BreakdownInfoActiveTextService,\r\n private breakdownInfoLibraryService: BreakdownInfoLibraryService,\r\n private modalCtrl: ModalController,\r\n private sanitizer: DomSanitizer,\r\n private screenSizeService: ScreenSizeService\r\n ) {\r\n super();\r\n }\r\n\r\n ngOnInit() {\r\n combineLatest([this.breakdownInfoLibraryService.library$, this.breakdownInfoActiveTextService.activeTexts$])\r\n .pipe(takeUntil(this.onDestroy$))\r\n .subscribe(([library, activeTexts]) => {\r\n this.library = library;\r\n const activeText = activeTexts.find((d) => d.breakdownInfoGuid === this.breakdownInfo.guid);\r\n this.selectedLibraryItem = this.library?.find((e) => e.titleDe === activeText?.titleDe);\r\n });\r\n\r\n this.screenSizeService.bigScreenMode$\r\n .pipe(takeUntil(this.onDestroy$))\r\n .subscribe((bigScreenMode) => (this.bigScreenMode = bigScreenMode));\r\n\r\n this.infoLinkString = this.generateInfoLink();\r\n const breakdownInfoIconName = this.breakdownInfo ? this.breakdownInfo.iconName : null;\r\n this.iconName = IconHelper.getIconName(breakdownInfoIconName);\r\n }\r\n\r\n done(closeModal: boolean): void {\r\n if (closeModal) {\r\n this.modalCtrl.dismiss();\r\n }\r\n }\r\n\r\n async update(all: boolean): Promise {\r\n if (this.selectedLibraryItem) {\r\n await this.breakdownInfoActiveTextService.updateActiveText(\r\n this.selectedLibraryItem.guid,\r\n this.breakdownInfo.guid,\r\n all\r\n );\r\n this.breakdownInfo.isUpdating = true;\r\n this.done(true);\r\n }\r\n }\r\n\r\n generateInfoLink(): string {\r\n this.infoLinkString =\r\n environment.publicWebApp + '/breakdowninfo/' + this.breakdownInfo.guid.toString().toUpperCase();\r\n return this.infoLinkString;\r\n }\r\n\r\n async openBreakdownInfo(): Promise {\r\n const safeInfoLink = this.sanitizer.bypassSecurityTrustResourceUrl(this.infoLinkString);\r\n\r\n const modal = await this.modalCtrl.create({\r\n component: BreakdownInfoInfoScreenComponent,\r\n cssClass: 'sis-mobile-size-modal',\r\n componentProps: {\r\n breakdownInfo: this.breakdownInfo,\r\n iconName: this.iconName,\r\n safeInfoLink,\r\n },\r\n });\r\n\r\n return modal.present();\r\n }\r\n}\r\n","\r\n \r\n \r\n {{ this.breakdownInfo.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 \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 { CommonModule } from '@angular/common';\r\nimport { NgModule } from '@angular/core';\r\nimport { FormsModule, ReactiveFormsModule } from '@angular/forms';\r\nimport { RouterModule } from '@angular/router';\r\nimport { IonicModule } from '@ionic/angular';\r\nimport { TranslateModule } from '@ngx-translate/core';\r\nimport { BreakdownInfoPage } from 'src/app/breakdowninfo/breakdowninfo.page';\r\nimport { BreakdownInfoInfoScreenComponent } from 'src/app/breakdowninfo/breakdowninfo-infoscreen/breakdowninfo-infoscreen.component';\r\nimport { BreakdownInfoItemComponent } from 'src/app/breakdowninfo/breakdowninfo-item/breakdowninfo-item.component';\r\nimport { BreakdownInfoLibraryComponent } from 'src/app/breakdowninfo/breakdowninfo-library/breakdowninfo-library.component';\r\nimport { BreakdownInfoLibraryItemComponent } from 'src/app/breakdowninfo/breakdowninfo-library/breakdowninfo-library-item/breakdowninfo-library-item.component';\r\nimport { BreakdownInfoTextSelectorComponent } from 'src/app/breakdowninfo/breakdowninfo-text-selector/breakdowninfo-text-selector.component';\r\nimport { CoreModule } from 'src/app/core/core.module';\r\nimport { QRCodeComponent } from 'angularx-qrcode';\r\n\r\n@NgModule({\r\n imports: [\r\n CommonModule,\r\n FormsModule,\r\n IonicModule,\r\n RouterModule.forChild([\r\n {\r\n path: '',\r\n component: BreakdownInfoPage,\r\n },\r\n ]),\r\n TranslateModule,\r\n ReactiveFormsModule,\r\n CoreModule,\r\n QRCodeComponent,\r\n ],\r\n declarations: [\r\n BreakdownInfoPage,\r\n BreakdownInfoTextSelectorComponent,\r\n BreakdownInfoLibraryComponent,\r\n BreakdownInfoLibraryItemComponent,\r\n BreakdownInfoItemComponent,\r\n BreakdownInfoInfoScreenComponent,\r\n ],\r\n})\r\nexport class BreakdownInfoPageModule {}\r\n","import { Component, OnInit } from '@angular/core';\r\nimport { ModalController } from '@ionic/angular';\r\nimport { combineLatest } from 'rxjs';\r\nimport { takeUntil } from 'rxjs/operators';\r\nimport { BreakdownInfoLibraryComponent } from 'src/app/breakdowninfo/breakdowninfo-library/breakdowninfo-library.component';\r\nimport { BreakdownInfoTextSelectorComponent } from 'src/app/breakdowninfo/breakdowninfo-text-selector/breakdowninfo-text-selector.component';\r\nimport { BreakdownInfo } from 'src/app/breakdowninfo/domain/breakdowninfo.model';\r\nimport { BreakdownInfoService } from 'src/app/breakdowninfo/domain/breakdowninfo.service';\r\nimport { BreakdownInfoActiveText } from 'src/app/breakdowninfo/domain/breakdowninfo-activetext.model';\r\nimport { BreakdownInfoActiveTextService } from 'src/app/breakdowninfo/domain/breakdowninfo-activetext.service';\r\nimport { LogbookModalService } from 'src/app/core/components/logbook/logbook-modal/logbook-modal.service';\r\nimport { Unsubscriber } from 'src/app/core/unsubscriber';\r\nimport { ScreenSizeService } from 'src/app/core/utils/screen-size.service';\r\nimport { DestinationService } from 'src/app/domain/destination/destination.service';\r\nimport { Feature } from 'src/app/domain/feature/feature.model';\r\nimport { FeatureAccessLevel } from 'src/app/domain/feature/feature-access-level.model';\r\nimport { FeatureId } from 'src/app/domain/feature/feature-id.model';\r\nimport { environment } from 'src/environments/environment';\r\n\r\n@Component({\r\n templateUrl: './breakdowninfo.page.html',\r\n styleUrls: ['./breakdowninfo.page.scss'],\r\n standalone: false\r\n})\r\nexport class BreakdownInfoPage extends Unsubscriber implements OnInit {\r\n private static readonly requiredFeature = new Feature(FeatureId.BREAKDOWNINFO, FeatureAccessLevel.WRITE);\r\n\r\n readonly logbookAvailable$ = this.logbookModalService.logbookAvailable$;\r\n readonly baseUrlPublicAssets = environment.baseUrlCockpitBlobStorage + '/public-assets';\r\n\r\n breakdownInfos: BreakdownInfo[] = [];\r\n activeTexts: BreakdownInfoActiveText[];\r\n writePermission: boolean;\r\n bigScreenMode: boolean;\r\n featureId = FeatureId.BREAKDOWNINFO;\r\n\r\n constructor(\r\n private breakdownInfoService: BreakdownInfoService,\r\n private breakdownInfoActiveTextService: BreakdownInfoActiveTextService,\r\n private modalCtrl: ModalController,\r\n private destinationService: DestinationService,\r\n private logbookModalService: LogbookModalService,\r\n private screenSizeService: ScreenSizeService\r\n ) {\r\n super();\r\n }\r\n\r\n ngOnInit() {\r\n this.breakdownInfoService.breakdownInfos$.pipe(takeUntil(this.onDestroy$)).subscribe((breakdownInfos) => {\r\n this.breakdownInfos = breakdownInfos.sort((a, b) => (a.name > b.name ? 1 : -1));\r\n this.breakdownInfos.forEach((breakdownInfo) => {\r\n breakdownInfo.iconName = `${this.baseUrlPublicAssets}/icons/sismedia/${breakdownInfo.iconName}`;\r\n });\r\n });\r\n\r\n this.breakdownInfoActiveTextService.activeTexts$.pipe(takeUntil(this.onDestroy$)).subscribe((activeTexts) => {\r\n this.activeTexts = activeTexts;\r\n for (const breakdownInfo of this.breakdownInfos) {\r\n breakdownInfo.isUpdating = false;\r\n }\r\n });\r\n\r\n this.screenSizeService.bigScreenMode$\r\n .pipe(takeUntil(this.onDestroy$))\r\n .subscribe((bigScreenMode) => (this.bigScreenMode = bigScreenMode));\r\n\r\n this.destinationService.selectedTenantFeatures$.pipe(takeUntil(this.onDestroy$)).subscribe((features) => {\r\n this.writePermission =\r\n features.some((f) => f.hasMinimumRequirementFor(BreakdownInfoPage.requiredFeature)) ?? false;\r\n });\r\n\r\n combineLatest([this.breakdownInfoService.breakdownInfos$, this.breakdownInfoActiveTextService.activeTexts$])\r\n .pipe(takeUntil(this.onDestroy$))\r\n .subscribe(([breakdownInfos, activeTexts]) => {\r\n breakdownInfos.forEach(\r\n (breakdownInfo) =>\r\n (breakdownInfo.activeText = activeTexts.find(\r\n (activeText) => activeText.breakdownInfoGuid === breakdownInfo.guid\r\n ))\r\n );\r\n });\r\n }\r\n\r\n async showBreakdownInfoLibrary(): Promise {\r\n if (!this.writePermission) {\r\n return Promise.resolve();\r\n }\r\n\r\n const modal = await this.modalCtrl.create({\r\n component: BreakdownInfoLibraryComponent,\r\n cssClass: 'sis-breakdown-library-modal',\r\n });\r\n\r\n return modal.present();\r\n }\r\n\r\n async showTextSelector(selectedBreakdownInfoItem: BreakdownInfo): Promise {\r\n if (!this.writePermission) {\r\n return Promise.resolve();\r\n }\r\n\r\n const modal = await this.modalCtrl.create({\r\n component: BreakdownInfoTextSelectorComponent,\r\n componentProps: {\r\n breakdownInfo: selectedBreakdownInfoItem,\r\n },\r\n backdropDismiss: false,\r\n });\r\n\r\n return modal.present();\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
{{ breakdownInfo.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 \r\n \r\n
{{ breakdownInfo.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","import { BreakdownInfoActiveText } from 'src/app/breakdowninfo/domain/breakdowninfo-activetext.model';\r\n\r\nexport class BreakdownInfoActiveTextAdapter {\r\n static adapt(item: any): BreakdownInfoActiveText[] {\r\n const activetext: BreakdownInfoActiveText[] = [];\r\n\r\n item.forEach((e: any) => {\r\n activetext.push(\r\n new BreakdownInfoActiveText({\r\n breakdownInfoGuid: e.breakdownInfoGuid,\r\n color: e.color,\r\n titleDe: e.titleDe,\r\n titleEn: e.titleEn,\r\n titleFr: e.titleFr,\r\n titleIt: e.titleIt,\r\n textDe: e.textDe,\r\n textEn: e.textEn,\r\n textFr: e.textFr,\r\n textIt: e.textIt,\r\n timestamp: e.timestamp,\r\n })\r\n );\r\n });\r\n\r\n return activetext;\r\n }\r\n}\r\n","import { BreakdownInfoText } from 'src/app/breakdowninfo/domain/breakdowninfo-text.model';\r\nimport { WritablePart } from 'src/app/core/utils/type-helper';\r\n\r\nexport class BreakdownInfoActiveText {\r\n readonly languageMap = new Map();\r\n\r\n breakdownInfoGuid: string;\r\n color: string;\r\n titleDe: string;\r\n titleEn: string;\r\n titleFr: string;\r\n titleIt: string;\r\n textDe: string;\r\n textEn: string;\r\n textFr: string;\r\n textIt: string;\r\n timestamp: string;\r\n isUpdating: boolean;\r\n\r\n constructor(init?: Partial>) {\r\n Object.assign(this, init);\r\n\r\n if (init.titleDe != null) {\r\n this.languageMap.set('de', { title: this.titleDe, text: this.textDe });\r\n }\r\n if (init.titleEn != null) {\r\n this.languageMap.set('en', { title: this.titleEn, text: this.textEn });\r\n }\r\n if (init.titleFr != null) {\r\n this.languageMap.set('fr', { title: this.titleFr, text: this.textFr });\r\n }\r\n if (init.titleIt != null) {\r\n this.languageMap.set('it', { title: this.titleIt, text: this.textIt });\r\n }\r\n }\r\n}\r\n","import { HttpClient } from '@angular/common/http';\r\nimport { Injectable } from '@angular/core';\r\nimport { firstValueFrom, merge, Observable, of } from 'rxjs';\r\nimport { catchError, filter, map, shareReplay, switchMap, withLatestFrom } from 'rxjs/operators';\r\nimport { BreakdownInfoActiveTextAdapter } from 'src/app/breakdowninfo/domain/breakdowninfo-activetext.adapter';\r\nimport { BreakdownInfoActiveText } from 'src/app/breakdowninfo/domain/breakdowninfo-activetext.model';\r\nimport { EventBusService } from 'src/app/core/eventbus/event-bus.service';\r\nimport { BreakdownInfoActiveTextUpdatedEvent } from 'src/app/core/eventbus/events';\r\nimport { DestinationService } from 'src/app/domain/destination/destination.service';\r\nimport { Feature } from 'src/app/domain/feature/feature.model';\r\nimport { FeatureAccessLevel } from 'src/app/domain/feature/feature-access-level.model';\r\nimport { FeatureId } from 'src/app/domain/feature/feature-id.model';\r\nimport { environment } from 'src/environments/environment';\r\n\r\n@Injectable({\r\n providedIn: 'root',\r\n})\r\nexport class BreakdownInfoActiveTextService {\r\n private static readonly activeTextsRequestUrl = '/breakdowninfo/activetexts';\r\n private static readonly useActiveTextPostUrl = '/breakdowninfo/useactivetext';\r\n\r\n private readonly requiredFeature = new Feature(FeatureId.BREAKDOWNINFO, FeatureAccessLevel.READ);\r\n\r\n readonly activeTextsRequest$: Observable =\r\n this.destinationService.selectedTenantFeatures$.pipe(\r\n switchMap((features) => {\r\n if (features.some((feature) => feature.hasMinimumRequirementFor(this.requiredFeature))) {\r\n return this.http\r\n .get(`${environment.baseUrlApi}${BreakdownInfoActiveTextService.activeTextsRequestUrl}`)\r\n .pipe(map((breakdownInfo: any) => BreakdownInfoActiveTextAdapter.adapt(breakdownInfo)));\r\n } else {\r\n return of([]);\r\n }\r\n }),\r\n shareReplay({\r\n bufferSize: 1,\r\n refCount: true,\r\n })\r\n );\r\n\r\n readonly activeTextsUpdate$: Observable = this.eventBus\r\n .observe(BreakdownInfoActiveTextUpdatedEvent)\r\n .pipe(\r\n filter((event) => event?.updateSuccessful),\r\n withLatestFrom(this.activeTextsRequest$),\r\n map(([event, activeTexts]) => {\r\n event.breakdownInfoActiveTexts.forEach((newText) => {\r\n const oldText = activeTexts.find((at) => at.breakdownInfoGuid === newText.breakdownInfoGuid);\r\n if (oldText) {\r\n Object.assign(oldText, newText);\r\n } else {\r\n activeTexts.push(newText);\r\n }\r\n });\r\n return activeTexts;\r\n })\r\n );\r\n\r\n readonly activeTexts$ = merge(this.activeTextsRequest$, this.activeTextsUpdate$).pipe(\r\n shareReplay({\r\n bufferSize: 1,\r\n refCount: true,\r\n })\r\n );\r\n\r\n constructor(\r\n private http: HttpClient,\r\n private destinationService: DestinationService,\r\n private eventBus: EventBusService\r\n ) {}\r\n\r\n async updateActiveText(libraryGuid: string, breakdownInfoGuid: string, updateAll: boolean): Promise {\r\n const url = `${environment.baseUrlApi}${BreakdownInfoActiveTextService.useActiveTextPostUrl}`;\r\n await firstValueFrom(\r\n this.http\r\n .post(url, { BreakdownInfoGuid: breakdownInfoGuid, ActiveLibraryEntryGuid: libraryGuid, UpdateAll: updateAll })\r\n .pipe(catchError(() => of()))\r\n );\r\n }\r\n}\r\n","import { BreakdownInfoLibraryEntry } from 'src/app/breakdowninfo/domain/breakdowninfo-library-entry.model';\r\n\r\nexport class BreakdownInfoLibraryEntryAdapter {\r\n static adapt(item: any): BreakdownInfoLibraryEntry[] {\r\n const library: BreakdownInfoLibraryEntry[] = [];\r\n\r\n item.forEach((e: any) => {\r\n library.push(\r\n new BreakdownInfoLibraryEntry({\r\n guid: e.guid,\r\n tenantGuid: e.tenantGuid,\r\n color: e.color,\r\n titleDe: e.titleDe,\r\n titleEn: e.titleEn,\r\n titleFr: e.titleFr,\r\n titleIt: e.titleIt,\r\n textDe: e.textDe,\r\n textEn: e.textEn,\r\n textFr: e.textFr,\r\n textIt: e.textIt,\r\n })\r\n );\r\n });\r\n\r\n return library;\r\n }\r\n}\r\n","import { BreakdownInfoText } from 'src/app/breakdowninfo/domain/breakdowninfo-text.model';\r\nimport { WritablePart } from 'src/app/core/utils/type-helper';\r\n\r\nexport class BreakdownInfoLibraryEntry {\r\n static readonly colorGreen = '#00b050';\r\n static readonly colorYellow = '#ffc000';\r\n\r\n readonly languageMap = new Map();\r\n\r\n guid: string;\r\n tenantGuid: string;\r\n color: string;\r\n titleDe: string = '';\r\n titleEn: string = '';\r\n titleFr: string = '';\r\n titleIt: string = '';\r\n textDe: string = '';\r\n textEn: string = '';\r\n textFr: string = '';\r\n textIt: string = '';\r\n\r\n constructor(init?: Partial>) {\r\n Object.assign(this, init);\r\n\r\n if (init.titleDe != null) {\r\n this.languageMap.set('de', { title: this.titleDe, text: this.textDe });\r\n }\r\n if (init.titleEn != null) {\r\n this.languageMap.set('en', { title: this.titleEn, text: this.textEn });\r\n }\r\n if (init.titleFr != null) {\r\n this.languageMap.set('fr', { title: this.titleFr, text: this.textFr });\r\n }\r\n if (init.titleIt != null) {\r\n this.languageMap.set('it', { title: this.titleIt, text: this.textIt });\r\n }\r\n }\r\n}\r\n","import { HttpClient } from '@angular/common/http';\r\nimport { Injectable } from '@angular/core';\r\nimport { firstValueFrom, merge, Observable, of } from 'rxjs';\r\nimport { catchError, map, shareReplay, switchMap, withLatestFrom } from 'rxjs/operators';\r\nimport { BreakdownInfoLibraryEntryAdapter } from 'src/app/breakdowninfo/domain/breakdowninfo-library-entry.adapter';\r\nimport { BreakdownInfoLibraryEntry } from 'src/app/breakdowninfo/domain/breakdowninfo-library-entry.model';\r\nimport { EventBusService } from 'src/app/core/eventbus/event-bus.service';\r\nimport { BreakdownInfoLibraryUpdatedEvent } from 'src/app/core/eventbus/events';\r\nimport { DestinationService } from 'src/app/domain/destination/destination.service';\r\nimport { Feature } from 'src/app/domain/feature/feature.model';\r\nimport { FeatureAccessLevel } from 'src/app/domain/feature/feature-access-level.model';\r\nimport { FeatureId } from 'src/app/domain/feature/feature-id.model';\r\nimport { environment } from 'src/environments/environment';\r\n\r\n@Injectable({\r\n providedIn: 'root',\r\n})\r\nexport class BreakdownInfoLibraryService {\r\n static readonly insertOperation = 'insert';\r\n static readonly updateOperation = 'update';\r\n static readonly deleteOperation = 'delete';\r\n\r\n private static readonly requestLibraryUrl: string = '/breakdowninfo/library';\r\n private static readonly updateLibraryPostUrl: string = '/breakdowninfo/updatelibraryitem';\r\n\r\n private readonly requiredFeature = new Feature(FeatureId.BREAKDOWNINFO, FeatureAccessLevel.READ);\r\n\r\n readonly libraryRequest$: Observable =\r\n this.destinationService.selectedTenantFeatures$.pipe(\r\n switchMap((features) => {\r\n if (features.some((feature) => feature.hasMinimumRequirementFor(this.requiredFeature))) {\r\n return this.http\r\n .get(`${environment.baseUrlApi}${BreakdownInfoLibraryService.requestLibraryUrl}`)\r\n .pipe(map((breakdownInfo: any) => BreakdownInfoLibraryEntryAdapter.adapt(breakdownInfo)));\r\n } else {\r\n return of([]);\r\n }\r\n }),\r\n shareReplay({\r\n bufferSize: 1,\r\n refCount: true,\r\n })\r\n );\r\n\r\n readonly libraryUpdate$: Observable = this.eventBus\r\n .observe(BreakdownInfoLibraryUpdatedEvent)\r\n .pipe(\r\n withLatestFrom(this.libraryRequest$),\r\n map(([event, library]) => {\r\n const oldEntry = library.find((l) => l.guid === event.breakdownInfo.guid);\r\n if (oldEntry) {\r\n if (!event.removed) {\r\n Object.assign(oldEntry, event.breakdownInfo);\r\n } else {\r\n library.splice(library.indexOf(oldEntry), 1);\r\n }\r\n } else {\r\n library.push(event.breakdownInfo);\r\n }\r\n return library;\r\n })\r\n );\r\n\r\n readonly library$ = merge(this.libraryRequest$, this.libraryUpdate$).pipe(\r\n shareReplay({\r\n bufferSize: 1,\r\n refCount: true,\r\n })\r\n );\r\n\r\n constructor(\r\n private http: HttpClient,\r\n private destinationService: DestinationService,\r\n private eventBus: EventBusService\r\n ) {}\r\n\r\n async updateLibrary(\r\n breakdownInfoLibraryEntry: BreakdownInfoLibraryEntry,\r\n updateAll: boolean,\r\n operation: string\r\n ): Promise {\r\n const url = `${environment.baseUrlApi}${BreakdownInfoLibraryService.updateLibraryPostUrl}`;\r\n await firstValueFrom(\r\n this.http\r\n .post(url, {\r\n BreakdownInfo: breakdownInfoLibraryEntry,\r\n UpdateAll: updateAll,\r\n Operation: operation,\r\n })\r\n .pipe(catchError(() => of()))\r\n );\r\n }\r\n}\r\n","import { BreakdownInfo } from 'src/app/breakdowninfo/domain/breakdowninfo.model';\r\n\r\nexport class BreakdownInfoAdapter {\r\n static adapt(items: any): BreakdownInfo[] {\r\n const result: BreakdownInfo[] = [];\r\n\r\n if (items) {\r\n items.forEach((e: any) => {\r\n result.push({ name: e.name, iconName: e.iconName, guid: e.guid, isUpdating: false });\r\n });\r\n }\r\n\r\n return result;\r\n }\r\n}\r\n","import { HttpClient } from '@angular/common/http';\r\nimport { Injectable } from '@angular/core';\r\nimport { Observable, of } from 'rxjs';\r\nimport { map, shareReplay, switchMap } from 'rxjs/operators';\r\nimport { BreakdownInfoAdapter } from 'src/app/breakdowninfo/domain/breakdowninfo.adapter';\r\nimport { BreakdownInfo } from 'src/app/breakdowninfo/domain/breakdowninfo.model';\r\nimport { DestinationService } from 'src/app/domain/destination/destination.service';\r\nimport { Feature } from 'src/app/domain/feature/feature.model';\r\nimport { FeatureAccessLevel } from 'src/app/domain/feature/feature-access-level.model';\r\nimport { FeatureId } from 'src/app/domain/feature/feature-id.model';\r\nimport { environment } from 'src/environments/environment';\r\n\r\n@Injectable({\r\n providedIn: 'root',\r\n})\r\nexport class BreakdownInfoService {\r\n private readonly baseUrl: string = '/breakdowninfo';\r\n\r\n private readonly requiredFeature = new Feature(FeatureId.BREAKDOWNINFO, FeatureAccessLevel.READ);\r\n\r\n readonly breakdownInfos$: Observable = this.destinationService.selectedTenantFeatures$.pipe(\r\n switchMap((features) => {\r\n if (features.some((feature) => feature.hasMinimumRequirementFor(this.requiredFeature))) {\r\n return this.http\r\n .get(`${environment.baseUrlApi}${this.baseUrl}`)\r\n .pipe(map((breakdownInfo: any) => BreakdownInfoAdapter.adapt(breakdownInfo)));\r\n } else {\r\n return of([]);\r\n }\r\n }),\r\n shareReplay({\r\n bufferSize: 1,\r\n refCount: true,\r\n })\r\n );\r\n\r\n constructor(private http: HttpClient, private destinationService: DestinationService) {}\r\n}\r\n","import { Injectable } from '@angular/core';\r\nimport { MsalBroadcastService, MsalService } from '@azure/msal-angular';\r\nimport { InteractionStatus } from '@azure/msal-browser';\r\nimport { Observable } from 'rxjs';\r\nimport { filter, map } from 'rxjs/operators';\r\nimport { UserSettingsService } from 'src/app/domain/user-settings/user-settings.service';\r\n\r\n@Injectable({ providedIn: 'root' })\r\nexport class CanActivateGuard {\r\n constructor(\r\n private msalService: MsalService,\r\n private msalBroadcastService: MsalBroadcastService,\r\n private userSettingsService: UserSettingsService\r\n ) {}\r\n\r\n canActivate(): Observable {\r\n return this.msalBroadcastService.inProgress$.pipe(\r\n filter((status: InteractionStatus) => status === InteractionStatus.None || status === InteractionStatus.Startup),\r\n map(() => this.msalService.instance.getAllAccounts().length > 0)\r\n );\r\n }\r\n\r\n isAdministrator(): Observable {\r\n return this.userSettingsService.userSettings$.pipe(map((u) => u.isAdministrator));\r\n }\r\n}\r\n","import { Component, Input, OnInit } from '@angular/core';\r\nimport { takeUntil } from 'rxjs/operators';\r\nimport { AlarmlistService } from 'src/app/alarmlist/alarmlist.service';\r\nimport { Unsubscriber } from 'src/app/core/unsubscriber';\r\nimport { Alarm, AlarmLevel } from 'src/app/domain/alarm.model';\r\n\r\n@Component({\r\n selector: 'sis-alarm-icon',\r\n templateUrl: './alarm-icon.component.html',\r\n styleUrls: ['./alarm-icon.component.scss'],\r\n standalone: false\r\n})\r\nexport class AlarmIconComponent extends Unsubscriber implements OnInit {\r\n static readonly ALARM_COLOR: string = 'sis-alarm-color';\r\n static readonly NORMAL_COLOR: string = 'sis-normal-color';\r\n static readonly INFO_COLOR: string = 'sis-info-color';\r\n static readonly WARNING_COLOR: string = 'sis-warning-color';\r\n\r\n static readonly BLACK: 'sis-black-text-color';\r\n static readonly WHITE: 'sis-white-text-color';\r\n\r\n @Input() iconSize: string;\r\n @Input() componentClass: string;\r\n @Input() displayedAlarmLevels: AlarmLevel[];\r\n @Input() hideNumber = false;\r\n @Input() showIfNoAlarm = false;\r\n\r\n displayNumber = false;\r\n activeAlarmCount: number;\r\n textClass: string;\r\n alarmClass: string;\r\n iconClasses: string;\r\n\r\n private hasActiveAlarms = false;\r\n private activeAlarms: Alarm[];\r\n\r\n constructor(private alarmlistService: AlarmlistService) {\r\n super();\r\n }\r\n\r\n ngOnInit() {\r\n this.updateDisplayValues([]);\r\n this.alarmlistService.alarms$.pipe(takeUntil(this.onDestroy$)).subscribe((alarms) => {\r\n if (this.displayedAlarmLevels?.length) {\r\n alarms = alarms.filter((a) => this.displayedAlarmLevels.includes(a.level));\r\n }\r\n\r\n this.updateDisplayValues(alarms);\r\n });\r\n }\r\n\r\n private getColorClass(): string {\r\n if (!this.activeAlarms) {\r\n return AlarmIconComponent.NORMAL_COLOR;\r\n }\r\n\r\n if (\r\n this.activeAlarms.find(\r\n (a) => a.level === AlarmLevel.ALARM || a.level === AlarmLevel.FAULT || a.level === AlarmLevel.SYSTEM\r\n )\r\n ) {\r\n return AlarmIconComponent.ALARM_COLOR;\r\n }\r\n\r\n if (this.activeAlarms.find((a) => a.level === AlarmLevel.WARNING)) {\r\n return AlarmIconComponent.WARNING_COLOR;\r\n }\r\n\r\n return AlarmIconComponent.INFO_COLOR;\r\n }\r\n\r\n private getTextColor(): string {\r\n if (\r\n this.activeAlarms &&\r\n this.activeAlarms.find((a) => a.level === AlarmLevel.ALARM || a.level === AlarmLevel.FAULT)\r\n ) {\r\n return AlarmIconComponent.WHITE;\r\n }\r\n\r\n return AlarmIconComponent.BLACK;\r\n }\r\n\r\n private getTextClass(): string {\r\n if (this.hasActiveAlarms && this.componentClass === 'sis-sidepane-alarm-text') {\r\n return `${this.componentClass} ${this.getTextColor()}`;\r\n }\r\n return `${this.componentClass} ${this.hasActiveAlarms ? this.getColorClass() : AlarmIconComponent.NORMAL_COLOR}`;\r\n }\r\n\r\n private getAlarmClass(): string {\r\n if (this.hasActiveAlarms && this.componentClass?.includes('sis-header-alarm-text')) {\r\n return this.getColorClass();\r\n }\r\n if (this.hasActiveAlarms) {\r\n return '';\r\n }\r\n return AlarmIconComponent.NORMAL_COLOR;\r\n }\r\n\r\n private updateDisplayValues(alarms: Alarm[]) {\r\n this.activeAlarms = alarms.filter((a) => a.active);\r\n this.activeAlarmCount = this.activeAlarms.length;\r\n this.hasActiveAlarms = this.activeAlarmCount > 0;\r\n\r\n this.textClass = this.getTextClass();\r\n const alarmClass = this.getAlarmClass();\r\n const iconClass = this.componentClass?.includes('-mobile') ? 'sis-alarm-icon-mobile' : 'sis-alarm-icon';\r\n this.iconClasses = `${alarmClass} ${iconClass}`;\r\n this.displayNumber = !this.hideNumber && (this.hasActiveAlarms || this.componentClass !== 'sis-header-alarm-text');\r\n }\r\n}\r\n","{{\r\n this.activeAlarmCount\r\n}}\r\n\r\n","import { Injectable } from '@angular/core';\r\nimport { BlobItem, ContainerItem } from '@azure/storage-blob';\r\nimport { combineLatest, EMPTY, MonoTypeOperatorFunction, Observable, of, Subject } from 'rxjs';\r\nimport { filter, finalize, map, startWith, switchMap, withLatestFrom } from 'rxjs/operators';\r\nimport { BlobStorageService } from 'src/app/core/blob-storage/blob-storage.service';\r\nimport { SisBlobContainerRequestParameters, SisBlobStorageRequestParameters } from 'src/app/core/blob-storage/blob-storage.types';\r\nimport { EventBusService } from 'src/app/core/eventbus/event-bus.service';\r\nimport { MediaCenterBlobStorageUpdatedEvent } from 'src/app/core/eventbus/events';\r\nimport { DestinationService } from 'src/app/domain/destination/destination.service';\r\nimport { UserSettingsService } from 'src/app/domain/user-settings/user-settings.service';\r\nimport { UserMessage } from 'src/app/user-message/user-message.model';\r\nimport { UserMessageService } from 'src/app/user-message/user-message.service';\r\nimport { UserMessageColor } from 'src/app/user-message/user-message-color';\r\nimport { UserMessageIcon } from 'src/app/user-message/user-message-icon';\r\nimport { environment } from 'src/environments/environment';\r\n\r\n@Injectable({\r\n providedIn: 'root',\r\n})\r\nexport class BlobStorageContainerService {\r\n private readonly refreshContainer$ = new Subject();\r\n private readonly refreshTrigger$ = this.refreshContainer$.pipe(\r\n withLatestFrom(this.destinationService.selectedTenant$.pipe(map((t) => t.sisId))),\r\n switchMap(([containerName, tenantSisId]) => {\r\n // only refresh if it is the currently selected container (no refresh for images/videos of another tenant)\r\n if (containerName === tenantSisId) {\r\n return of(1);\r\n } else {\r\n return EMPTY;\r\n }\r\n })\r\n );\r\n\r\n private readonly selectedContainer$: Observable = this.destinationService.selectedTenant$.pipe(map((tenant) => tenant?.sisId ?? undefined));\r\n\r\n readonly containers$: Observable = this.getStorageRequestParameters().pipe(\r\n switchMap((options) => this.blobStorageService.getContainers(options))\r\n );\r\n\r\n readonly mediaCenterBlobStorageUpdatedEvent$ = this.eventBus.observe(MediaCenterBlobStorageUpdatedEvent).pipe(\r\n withLatestFrom(this.userSettingsService.userSettings$),\r\n map(([event, userSettings]) => {\r\n if (event?.uploadedBy && event.uploadedBy === userSettings.userGuid) {\r\n if (event.successful) {\r\n const translateKey = ['mediacenter.phrase.videoConversionSuccess', `: ${event.fileName}`];\r\n const userMessage = new UserMessage({\r\n message: translateKey,\r\n icon: UserMessageIcon.success,\r\n durationMs: 2000,\r\n position: 'top',\r\n color: UserMessageColor.green,\r\n });\r\n this.userMessageService.presentToast(userMessage);\r\n } else {\r\n const translateKey = ['mediacenter.phrase.videoConversionFailed', `: ${event.fileName}`];\r\n const userMessage = new UserMessage({\r\n message: translateKey,\r\n icon: UserMessageIcon.failed,\r\n durationMs: 10000,\r\n position: 'top',\r\n color: UserMessageColor.red,\r\n });\r\n this.userMessageService.presentToast(userMessage);\r\n }\r\n }\r\n })\r\n );\r\n\r\n readonly itemsInContainer$: Observable = combineLatest([\r\n this.selectedContainer$,\r\n this.mediaCenterBlobStorageUpdatedEvent$.pipe(startWith(null)),\r\n this.refreshTrigger$.pipe(startWith(1)),\r\n ]).pipe(\r\n map(([containerName]) => containerName),\r\n filter((containerName) => !!containerName),\r\n switchMap((containerName) =>\r\n this.getStorageRequestParameters().pipe(\r\n switchMap((options) =>\r\n this.blobStorageService.listBlobsInContainer({\r\n storageUri: options.storageUri,\r\n storageAccessToken: options.storageAccessToken,\r\n containerName,\r\n })\r\n )\r\n )\r\n )\r\n );\r\n\r\n readonly blobStorageUrl$: Observable = this.selectedContainer$.pipe(\r\n filter((containerId) => !!containerId),\r\n map((containerId) => `${environment.baseUrlMediaCenterBlobStorage}/${containerId}`)\r\n );\r\n\r\n constructor(\r\n private eventBus: EventBusService,\r\n private blobStorageService: BlobStorageService,\r\n private destinationService: DestinationService,\r\n private userSettingsService: UserSettingsService,\r\n private userMessageService: UserMessageService\r\n ) {}\r\n\r\n refreshSelectedContainer(containerName: string): MonoTypeOperatorFunction {\r\n return (source) =>\r\n source.pipe(\r\n finalize(() => {\r\n this.refreshContainer$.next(containerName);\r\n })\r\n );\r\n }\r\n\r\n getStorageOptionsWithContainer(): Observable {\r\n return this.getStorageRequestParameters().pipe(\r\n withLatestFrom(this.selectedContainer$),\r\n map(([options, containerName]) => ({\r\n storageUri: options.storageUri,\r\n storageAccessToken: options.storageAccessToken,\r\n containerName,\r\n }))\r\n );\r\n }\r\n\r\n private getStorageRequestParameters(): Observable {\r\n return this.blobStorageService.getBlobStorageRequestParameters();\r\n }\r\n}\r\n","import { Injectable } from '@angular/core';\r\nimport { BlobDeleteResponse } from '@azure/storage-blob';\r\nimport { Observable, OperatorFunction, Subject } from 'rxjs';\r\nimport { map, mergeMap, share, startWith, switchMap } from 'rxjs/operators';\r\nimport { BlobStorageService } from 'src/app/core/blob-storage/blob-storage.service';\r\nimport { SisBlobItem } from 'src/app/core/blob-storage/blob-storage.types';\r\nimport { BlobStorageContainerService } from 'src/app/core/blob-storage/blob-storage-container.service';\r\n\r\n@Injectable({\r\n providedIn: 'root',\r\n})\r\nexport class BlobDeleteService {\r\n private readonly deleteQueueInner$ = new Subject();\r\n\r\n readonly deleteItemResponse$: Observable = this.deleteQueueInner$.pipe(\r\n mergeMap((filePath) => this.deleteFile(filePath)),\r\n share()\r\n );\r\n\r\n constructor(\r\n private blobStorageService: BlobStorageService,\r\n private blobStorageContainerService: BlobStorageContainerService\r\n ) {}\r\n\r\n deleteItem(filePath: string): void {\r\n this.deleteQueueInner$.next(filePath);\r\n }\r\n\r\n private deleteFile(filePath: string): Observable {\r\n return this.blobStorageContainerService.getStorageOptionsWithContainer().pipe(\r\n switchMap((options) =>\r\n this.blobStorageService\r\n .deleteBlobItem({\r\n storageUri: options.storageUri,\r\n storageAccessToken: options.storageAccessToken,\r\n containerName: options.containerName,\r\n filePath,\r\n })\r\n .pipe(\r\n this.mapDeleteResponse(filePath),\r\n this.blobStorageContainerService.refreshSelectedContainer(options.containerName)\r\n )\r\n )\r\n );\r\n }\r\n\r\n private mapDeleteResponse(filePath: string): OperatorFunction {\r\n return (source) =>\r\n source.pipe(\r\n map(() => ({ filePath, url: undefined, fileSize: null })),\r\n startWith({ filePath, url: undefined, fileSize: null })\r\n );\r\n }\r\n}\r\n","import { Injectable } from '@angular/core';\r\nimport { BlobItem } from '@azure/storage-blob';\r\nimport { Observable, of, OperatorFunction, Subject } from 'rxjs';\r\nimport { map, mergeAll, mergeMap, scan, startWith, switchMap, withLatestFrom } from 'rxjs/operators';\r\nimport { BlobStorageService } from 'src/app/core/blob-storage/blob-storage.service';\r\nimport {\r\n FilesSource,\r\n SisBlobFileRequestParameters,\r\n SisBlobItemsUpdate,\r\n SisBlobItemUpload,\r\n UploadCommand,\r\n} from 'src/app/core/blob-storage/blob-storage.types';\r\nimport { BlobStorageContainerService } from 'src/app/core/blob-storage/blob-storage-container.service';\r\n\r\n@Injectable({\r\n providedIn: 'root',\r\n})\r\nexport class BlobStorageUploadService {\r\n private readonly uploadQueueInner$ = new Subject();\r\n\r\n readonly uploadProgress$: Observable = this.uploadQueueInner$.pipe(\r\n mergeMap((uploadCommand) =>\r\n this.uploadFile(uploadCommand.file, uploadCommand.folder, uploadCommand.fileNamePrefix, uploadCommand.metadata)\r\n )\r\n );\r\n\r\n readonly itemsInContainerWithUpload$: Observable = this.getItemsInContainerWithUploadProgress();\r\n\r\n constructor(\r\n private blobStorageService: BlobStorageService,\r\n private blobStorageContainerService: BlobStorageContainerService\r\n ) {}\r\n\r\n uploadItems(uploadCommand: UploadCommand): void {\r\n this.uploadQueueInner$.next(uploadCommand);\r\n }\r\n\r\n private uploadFile(\r\n file: File,\r\n folderName: string,\r\n fileNamePrefix: string,\r\n metadata?: {\r\n [propertyName: string]: string;\r\n }\r\n ): Observable {\r\n return this.blobStorageContainerService.getStorageOptionsWithContainer().pipe(\r\n switchMap((options) => {\r\n const fileRequestOptions: SisBlobFileRequestParameters = {\r\n storageUri: options.storageUri,\r\n storageAccessToken: options.storageAccessToken,\r\n containerName: options.containerName,\r\n filePath: `${folderName}/${fileNamePrefix ?? ''}${file.name}`,\r\n };\r\n\r\n return this.blobStorageService\r\n .uploadToBlobStorage(file, fileRequestOptions, metadata)\r\n .pipe(\r\n this.mapUploadResponse(file, fileRequestOptions, metadata),\r\n this.blobStorageContainerService.refreshSelectedContainer(options.containerName)\r\n );\r\n })\r\n );\r\n }\r\n\r\n private mapUploadResponse(\r\n file: File,\r\n options: SisBlobFileRequestParameters,\r\n metadata?: {\r\n [propertyName: string]: string;\r\n }\r\n ): OperatorFunction {\r\n return (source) =>\r\n source.pipe(\r\n map((progress) => ({\r\n filePath: options.filePath,\r\n fileSize: file.size,\r\n progress: (progress / file.size) * 100,\r\n width: metadata?.width,\r\n height: metadata?.height,\r\n })),\r\n startWith({\r\n filePath: options.filePath,\r\n fileSize: file.size,\r\n progress: 0,\r\n width: metadata?.width,\r\n height: metadata?.height,\r\n })\r\n );\r\n }\r\n\r\n private getItemsInContainerWithUploadProgress(): Observable {\r\n return of(\r\n this.blobStorageContainerService.itemsInContainer$.pipe(\r\n map((blobs) => {\r\n const sisBlobItems: SisBlobItemUpload[] = blobs.map((blob) => ({\r\n filePath: blob.name,\r\n fileSize: blob.properties.contentLength,\r\n width: blob.metadata?.width,\r\n height: blob.metadata?.height,\r\n }));\r\n return { filesSource: FilesSource.container, blobs: sisBlobItems };\r\n })\r\n ),\r\n this.uploadProgress$.pipe(map((item) => ({ filesSource: FilesSource.upload, blobs: [item] })))\r\n ).pipe(\r\n mergeAll(),\r\n withLatestFrom(this.blobStorageContainerService.blobStorageUrl$),\r\n map(([update, url]) => {\r\n update.blobs.forEach((file) => (file.url = `${url}/${file.filePath}`));\r\n return update;\r\n }),\r\n scan((fileMap, update) => {\r\n update.blobs.forEach((item) => {\r\n const key = item.url;\r\n const uploading = item.progress != null && item.progress <= 100;\r\n const currentFile = fileMap.get(key);\r\n\r\n if (currentFile) {\r\n currentFile.progress = uploading ? item.progress : null;\r\n currentFile.height = item.height;\r\n currentFile.width = item.width;\r\n } else {\r\n fileMap.set(key, item);\r\n }\r\n });\r\n\r\n if (update.filesSource === FilesSource.container) {\r\n for (const file of fileMap.values()) {\r\n if (file.progress == null) {\r\n const newFile = update.blobs.find((item) => item.url === file.url);\r\n if (!newFile) {\r\n fileMap.delete(file.url);\r\n }\r\n }\r\n }\r\n }\r\n\r\n return fileMap;\r\n }, new Map()),\r\n map((fileMap) => [...fileMap.values()])\r\n );\r\n }\r\n}\r\n","import { HttpClient } from '@angular/common/http';\r\nimport { Injectable } from '@angular/core';\r\nimport { TransferProgressEvent } from '@azure/core-http';\r\nimport { PagedAsyncIterableIterator } from '@azure/core-paging';\r\nimport {\r\n BlobDeleteResponse,\r\n BlobDownloadResponseParsed,\r\n BlobItem,\r\n BlobServiceClient,\r\n BlockBlobClient,\r\n ContainerClient,\r\n ContainerItem,\r\n} from '@azure/storage-blob';\r\nimport { from, Observable } from 'rxjs';\r\nimport { distinctUntilChanged, map } from 'rxjs/operators';\r\nimport {\r\n SisBlobContainerRequestParameters,\r\n SisBlobFileRequestParameters,\r\n SisBlobStorageRequestParameters,\r\n} from 'src/app/core/blob-storage/blob-storage.types';\r\nimport { environment } from 'src/environments/environment';\r\n\r\n@Injectable({\r\n providedIn: 'root',\r\n})\r\nexport class BlobStorageService {\r\n constructor(private httpClient: HttpClient) {}\r\n\r\n getContainers(request: SisBlobStorageRequestParameters): Observable {\r\n const blobServiceClient = this.buildBlobServiceClient(request);\r\n return this.asyncToObservable(blobServiceClient.listContainers());\r\n }\r\n\r\n listBlobsInContainer(request: SisBlobContainerRequestParameters): Observable {\r\n const containerClient = this.getContainerClient(request);\r\n return this.asyncToObservable(containerClient.listBlobsFlat({ includeMetadata: true }));\r\n }\r\n\r\n downloadBlobItem(request: SisBlobFileRequestParameters): Observable {\r\n const blockBlobClient = this.getBlockBlobClient(request);\r\n return from(blockBlobClient.download());\r\n }\r\n\r\n deleteBlobItem(request: SisBlobFileRequestParameters): Observable {\r\n const blockBlobClient = this.getBlockBlobClient(request);\r\n return from(blockBlobClient.delete());\r\n }\r\n\r\n uploadToBlobStorage(\r\n file: File,\r\n request: SisBlobFileRequestParameters,\r\n metadata?: {\r\n [propertyName: string]: string;\r\n }\r\n ): Observable {\r\n const blockBlobClient = this.getBlockBlobClient(request);\r\n return this.uploadFile(blockBlobClient, file, metadata);\r\n }\r\n\r\n getBlobStorageRequestParameters(): Observable {\r\n return this.httpClient.get(`${environment.baseUrlApi}/mediacenter/blobstorage`).pipe(\r\n map((sasToken) => ({\r\n storageUri: environment.baseUrlMediaCenterBlobStorage,\r\n storageAccessToken: sasToken,\r\n }))\r\n );\r\n }\r\n\r\n private getBlockBlobClient(request: SisBlobFileRequestParameters): BlockBlobClient {\r\n const containerClient = this.getContainerClient(request);\r\n return containerClient.getBlockBlobClient(request.filePath);\r\n }\r\n\r\n private getContainerClient(request: SisBlobContainerRequestParameters): ContainerClient {\r\n const blobServiceClient = this.buildBlobServiceClient(request);\r\n return blobServiceClient.getContainerClient(request.containerName);\r\n }\r\n\r\n private buildBlobServiceClient(options: SisBlobStorageRequestParameters): BlobServiceClient {\r\n const connectionString = `BlobEndpoint=${options.storageUri};SharedAccessSignature=${options.storageAccessToken}`;\r\n return BlobServiceClient.fromConnectionString(connectionString);\r\n }\r\n\r\n private uploadFile(\r\n blockBlobClient: BlockBlobClient,\r\n file: File,\r\n metadata?: {\r\n [propertyName: string]: string;\r\n }\r\n ): Observable {\r\n return new Observable((subscriber) => {\r\n blockBlobClient\r\n .uploadData(file, {\r\n onProgress: (progress: TransferProgressEvent) => subscriber.next(progress.loadedBytes),\r\n blobHTTPHeaders: {\r\n blobContentType: file.type,\r\n },\r\n metadata,\r\n })\r\n .then(\r\n () => {\r\n subscriber.next(file.size);\r\n subscriber.complete();\r\n },\r\n (error: any) => subscriber.error(error)\r\n );\r\n }).pipe(distinctUntilChanged());\r\n }\r\n\r\n private asyncToObservable(iterable: PagedAsyncIterableIterator): Observable {\r\n return new Observable(\r\n (subscriber) =>\r\n void (async () => {\r\n try {\r\n const items: T[] = [];\r\n for await (const item of iterable as AsyncIterable) {\r\n if (subscriber.closed) {\r\n return;\r\n }\r\n items.push(item);\r\n }\r\n subscriber.next(items);\r\n subscriber.complete();\r\n } catch (e) {\r\n subscriber.error(e);\r\n }\r\n })()\r\n );\r\n }\r\n}\r\n","/* eslint-disable max-classes-per-file */\r\nexport interface SisBlobItem {\r\n filePath?: string;\r\n url?: string;\r\n fileSize?: number;\r\n width?: string;\r\n height?: string;\r\n}\r\n\r\nexport interface SisBlobItemUpload extends SisBlobItem {\r\n progress?: number;\r\n}\r\n\r\nexport interface SisBlobStorageRequestParameters {\r\n storageUri: string;\r\n storageAccessToken: string;\r\n}\r\n\r\nexport interface SisBlobContainerRequestParameters extends SisBlobStorageRequestParameters {\r\n containerName: string;\r\n}\r\n\r\nexport interface SisBlobFileRequestParameters extends SisBlobContainerRequestParameters {\r\n filePath: string;\r\n}\r\n\r\nexport interface SisBlobItemsUpdate {\r\n filesSource: FilesSource;\r\n blobs: SisBlobItemUpload[];\r\n}\r\n\r\nexport interface UploadCommand {\r\n file: File;\r\n folder: string;\r\n fileNamePrefix?: string;\r\n metadata?: {\r\n [propertyName: string]: string;\r\n };\r\n}\r\n\r\nexport enum FilesSource {\r\n container,\r\n upload,\r\n}\r\n","import { Component, EventEmitter, Input, OnInit, Output } from '@angular/core';\r\nimport { takeUntil } from 'rxjs/operators';\r\nimport { ContextMenuItem } from 'src/app/core/components/context-menu/context-menu-item.model';\r\nimport { Unsubscriber } from 'src/app/core/unsubscriber';\r\nimport { DestinationService } from 'src/app/domain/destination/destination.service';\r\n\r\n@Component({\r\n selector: 'sis-context-menu',\r\n templateUrl: './context-menu.component.html',\r\n styleUrls: ['./context-menu.component.scss'],\r\n standalone: false\r\n})\r\nexport class ContextMenuComponent extends Unsubscriber implements OnInit {\r\n @Input() x = 0;\r\n @Input() y = 0;\r\n @Input() menuItems: ContextMenuItem[];\r\n @Input() title: string;\r\n\r\n @Output() menuItemSelected = new EventEmitter();\r\n\r\n constructor(private destinationService: DestinationService) {\r\n super();\r\n }\r\n\r\n ngOnInit() {\r\n this.destinationService.selectedTenantFeatures$.pipe(takeUntil(this.onDestroy$)).subscribe((features) => {\r\n this.menuItems.forEach((menuItem) => {\r\n menuItem.disabled = !features.some((f) => f.hasMinimumRequirementFor(menuItem.requiredFeature));\r\n });\r\n });\r\n }\r\n\r\n emitSelectedItem(menuitem: ContextMenuItem) {\r\n this.menuItemSelected.emit(menuitem);\r\n }\r\n\r\n close() {\r\n this.emitSelectedItem(null);\r\n }\r\n}\r\n","
\r\n \r\n {{ this.title }}\r\n \r\n \r\n \r\n {{ item.translationString | translate }}\r\n \r\n \r\n
\r\n","import { Component, EventEmitter, Input, OnChanges, Output } from '@angular/core';\r\n\r\nenum ButtonType {\r\n Primary = 'Primary',\r\n Secondary = 'Secondary',\r\n Medium = 'Medium',\r\n Red = 'Red',\r\n}\r\n\r\nenum ButtonAlign {\r\n Left = 'Left',\r\n Right = 'Right',\r\n}\r\n\r\n@Component({\r\n selector: 'sis-general-button',\r\n templateUrl: './general-button.component.html',\r\n styleUrls: ['./general-button.component.scss'],\r\n standalone: false\r\n})\r\nexport class GeneralButtonComponent implements OnChanges {\r\n @Input() text: string;\r\n @Input() disabled: boolean;\r\n @Input() btnAlign: string;\r\n @Input() btnType: string;\r\n @Input() showSpinner: boolean;\r\n @Input() width: string;\r\n @Input() icon: string;\r\n @Input() sisTooltip: string;\r\n\r\n @Output() sisClick = new EventEmitter();\r\n\r\n buttonType: string;\r\n buttonAlign: string;\r\n\r\n ngOnChanges() {\r\n switch (this.btnType) {\r\n case ButtonType.Primary:\r\n this.buttonType = 'sis-primary-btn';\r\n break;\r\n case ButtonType.Secondary:\r\n this.buttonType = 'sis-secondary-btn';\r\n break;\r\n case ButtonType.Red:\r\n this.buttonType = 'sis-red-btn';\r\n break;\r\n }\r\n\r\n switch (this.btnAlign) {\r\n case ButtonAlign.Left:\r\n this.buttonAlign = 'sis-align-btn-left';\r\n break;\r\n case ButtonAlign.Right:\r\n this.buttonAlign = 'sis-align-btn-right';\r\n break;\r\n }\r\n }\r\n\r\n onClick(): void {\r\n if (!this.disabled) {\r\n this.sisClick.emit();\r\n }\r\n }\r\n}\r\n","\r\n \r\n {{ text | translate }}\r\n \r\n \r\n \r\n\r\n","import { Component, Input } from '@angular/core';\r\n\r\n@Component({\r\n selector: 'sis-logbook-button',\r\n templateUrl: './logbook-button.component.html',\r\n styleUrls: ['./logbook-button.component.scss'],\r\n standalone: false\r\n})\r\nexport class LogbookButtonComponent {\r\n @Input() disabled: boolean;\r\n @Input() showText: boolean;\r\n}\r\n","\r\n \r\n {{ 'logbook.term.logbook' | translate }}\r\n\r\n","import moment from 'moment';\r\nimport { LogbookEntry } from 'src/app/core/components/logbook/domain/logbook-entry.model';\r\n\r\nexport class LogbookEntryAdapter {\r\n static adapt(item: any): LogbookEntry[] {\r\n const result: LogbookEntry[] = [];\r\n\r\n if (item && item.length > 0) {\r\n item.forEach((element: any) => {\r\n const entry = new LogbookEntry({\r\n id: element.id,\r\n userGuid: element.userGuid,\r\n email: element.email,\r\n tenantGuid: element.tenantGuid,\r\n timestamp: new Date(element.timestamp),\r\n featureIds: element.featureIds ?? [],\r\n action: element.action,\r\n value: element.value,\r\n formattedTimestamp: moment.utc(element.timestamp).local().format('DD.MM.YYYY HH:mm:ss'),\r\n });\r\n result.push(entry);\r\n });\r\n }\r\n\r\n return result;\r\n }\r\n}\r\n","import { WritablePart } from 'src/app/core/utils/type-helper';\r\nimport { FeatureId } from 'src/app/domain/feature/feature-id.model';\r\n\r\nexport class LogbookEntry {\r\n private static readonly separator = new RegExp('[{|}]', 'g');\r\n\r\n readonly actions: string[];\r\n readonly values: string[];\r\n\r\n translatedFeature: string;\r\n translatedAction: string;\r\n translatedValue: string;\r\n\r\n id: number;\r\n userGuid: string;\r\n email: string;\r\n tenantGuid: string;\r\n timestamp: Date;\r\n featureIds: FeatureId[];\r\n action: string;\r\n value: string;\r\n formattedTimestamp: string;\r\n\r\n constructor(init?: Partial>) {\r\n Object.assign(this, init);\r\n\r\n this.actions = init.action?.split(LogbookEntry.separator) ?? [];\r\n this.values = init.value?.split(LogbookEntry.separator) ?? [];\r\n }\r\n}\r\n","import { HttpClient } from '@angular/common/http';\r\nimport { Injectable } from '@angular/core';\r\nimport { merge, Subject } from 'rxjs';\r\nimport { filter, map, scan, shareReplay, switchMap } from 'rxjs/operators';\r\nimport { LogbookEntryAdapter } from 'src/app/core/components/logbook/domain/logbook-entry.adapter';\r\nimport { LogbookEntry } from 'src/app/core/components/logbook/domain/logbook-entry.model';\r\nimport { EventBusService } from 'src/app/core/eventbus/event-bus.service';\r\nimport { LogbookUpdatedEvent } from 'src/app/core/eventbus/events';\r\nimport { DestinationService } from 'src/app/domain/destination/destination.service';\r\nimport { FeatureId } from 'src/app/domain/feature/feature-id.model';\r\nimport { environment } from 'src/environments/environment';\r\n\r\n@Injectable({\r\n providedIn: 'root',\r\n})\r\nexport class LogbookService {\r\n private readonly logbookApiUrl = 'logbook';\r\n private readonly request$ = new Subject();\r\n\r\n readonly logbookEntries$ = this.destinationService.selectedTenant$.pipe(\r\n filter((tenant) => !!tenant),\r\n map((tenant) => tenant.guid),\r\n switchMap((tenantGuid) =>\r\n merge(\r\n this.request$.pipe(\r\n scan(\r\n (acc: { all: FeatureId[]; new: FeatureId[] }, requestedFeatures) => {\r\n acc.new = requestedFeatures.filter((feature) => !acc.all.includes(feature));\r\n acc.new.forEach((n) => acc.all.push(n));\r\n return acc;\r\n },\r\n { all: [], new: [] }\r\n ),\r\n map((acc) => acc.new),\r\n filter((requestedFeatures) => requestedFeatures.length > 0),\r\n switchMap((requestedFeatures) =>\r\n this.http\r\n .get(`${environment.baseUrlApi}/${this.logbookApiUrl}?features=${requestedFeatures.join(',')}`)\r\n .pipe(map((requestedEntries) => LogbookEntryAdapter.adapt(requestedEntries)))\r\n )\r\n ),\r\n this.eventBus.observe(LogbookUpdatedEvent).pipe(\r\n filter((event) => event.logbookEntry.tenantGuid === tenantGuid),\r\n map((event) => [event.logbookEntry])\r\n )\r\n ).pipe(\r\n scan((acc: LogbookEntry[], entries) => {\r\n const newEntries = entries.filter((entry) => !acc.some((a) => a.id === entry.id));\r\n newEntries.forEach((entry) => acc.push(entry));\r\n return acc;\r\n }, [])\r\n )\r\n ),\r\n shareReplay({\r\n bufferSize: 1,\r\n refCount: true,\r\n })\r\n );\r\n\r\n constructor(\r\n private http: HttpClient,\r\n private eventBus: EventBusService,\r\n private destinationService: DestinationService\r\n ) {}\r\n\r\n requestLogbookEntries(features: FeatureId[]): void {\r\n this.request$.next(features);\r\n }\r\n}\r\n","import { Component, Input, OnInit } from '@angular/core';\r\nimport { FormControl } from '@angular/forms';\r\nimport { ModalController } from '@ionic/angular';\r\nimport { TranslateService } from '@ngx-translate/core';\r\nimport { combineLatest, forkJoin } from 'rxjs';\r\nimport {\r\n debounceTime,\r\n defaultIfEmpty,\r\n distinctUntilChanged,\r\n map,\r\n startWith,\r\n switchMap,\r\n takeUntil,\r\n} from 'rxjs/operators';\r\nimport { LogbookService } from 'src/app/core/components/logbook/domain/logbook.service';\r\nimport { LogbookEntry } from 'src/app/core/components/logbook/domain/logbook-entry.model';\r\nimport { Unsubscriber } from 'src/app/core/unsubscriber';\r\nimport { ScreenSizeService } from 'src/app/core/utils/screen-size.service';\r\nimport { FeatureId } from 'src/app/domain/feature/feature-id.model';\r\n\r\n@Component({\r\n templateUrl: './logbook-modal.component.html',\r\n styleUrls: ['./logbook-modal.component.scss'],\r\n standalone: false\r\n})\r\nexport class LogbookModalComponent extends Unsubscriber implements OnInit {\r\n @Input() featureFilters: FeatureId[][] = [];\r\n\r\n bigScreenMode: boolean;\r\n filtering: boolean;\r\n filterControl = new FormControl('');\r\n logbookEntriesFiltered: LogbookEntry[];\r\n\r\n constructor(\r\n private modalCtrl: ModalController,\r\n private logbookService: LogbookService,\r\n private translateService: TranslateService,\r\n private screenSizeService: ScreenSizeService\r\n ) {\r\n super();\r\n }\r\n\r\n ngOnInit(): void {\r\n this.screenSizeService.bigScreenMode$\r\n .pipe(takeUntil(this.onDestroy$))\r\n .subscribe((bigScreenMode) => (this.bigScreenMode = bigScreenMode));\r\n\r\n combineLatest([\r\n this.logbookService.logbookEntries$.pipe(\r\n map((entries) =>\r\n entries.filter((entry) =>\r\n this.featureFilters.some((requiredFeatures) =>\r\n requiredFeatures.every((entryFeature) => entry.featureIds.includes(entryFeature))\r\n )\r\n )\r\n ),\r\n distinctUntilChanged(this.arraysEqual),\r\n switchMap((logbookEntries) =>\r\n this.translateService.onLangChange.pipe(\r\n startWith({}),\r\n switchMap(() =>\r\n forkJoin(\r\n logbookEntries.map((logbookEntry) => {\r\n const translateKey = 'logbook.feature.' + FeatureId[logbookEntry.featureIds[0]].toLowerCase();\r\n return this.translateService\r\n .get([translateKey, ...logbookEntry.actions, ...logbookEntry.values])\r\n .pipe(\r\n map((translations) => {\r\n logbookEntry.translatedFeature = translations[translateKey];\r\n logbookEntry.translatedAction = logbookEntry.actions\r\n .map((action) => translations[action])\r\n .join('');\r\n logbookEntry.translatedValue = logbookEntry.values.map((value) => translations[value]).join('');\r\n\r\n return logbookEntry;\r\n })\r\n );\r\n })\r\n ).pipe(\r\n defaultIfEmpty([]),\r\n map(() => logbookEntries)\r\n )\r\n )\r\n )\r\n )\r\n ),\r\n this.filterControl.valueChanges.pipe(debounceTime(300), startWith('')),\r\n ])\r\n .pipe(\r\n takeUntil(this.onDestroy$),\r\n map((data) => this.filterLogbookEntries(data[0], data[1])),\r\n map((data) => data.sort((a, b) => b.timestamp.getTime() - a.timestamp.getTime())),\r\n debounceTime(10)\r\n )\r\n .subscribe((logbookEntriesFiltered) => {\r\n this.logbookEntriesFiltered = logbookEntriesFiltered;\r\n });\r\n\r\n const uniqueFeaturesToRequest = [].concat(...this.featureFilters).filter((value, index, array) => {\r\n return array.indexOf(value) === index;\r\n });\r\n this.logbookService.requestLogbookEntries(uniqueFeaturesToRequest);\r\n }\r\n\r\n closeModal(): void {\r\n this.modalCtrl.dismiss();\r\n }\r\n\r\n itemId(_: number, item: LogbookEntry): string {\r\n return item.id.toString();\r\n }\r\n\r\n private filterLogbookEntries(logbookEntries: LogbookEntry[], filter: string): LogbookEntry[] {\r\n this.filtering = false;\r\n if (filter == null || filter.length === 0) {\r\n return logbookEntries;\r\n }\r\n\r\n filter = filter.trim().toLowerCase();\r\n return logbookEntries.filter(\r\n (entry) =>\r\n entry.email?.toLowerCase().includes(filter) ||\r\n entry.translatedAction.toLowerCase().includes(filter) ||\r\n entry.translatedValue.toLowerCase().includes(filter) ||\r\n entry.translatedFeature.toLowerCase().includes(filter) ||\r\n entry.formattedTimestamp.includes(filter)\r\n );\r\n }\r\n\r\n private arraysEqual(a: LogbookEntry[], b: LogbookEntry[]): boolean {\r\n if (a.length !== b.length) {\r\n return false;\r\n }\r\n\r\n for (let i = 0; i < a.length; i++) {\r\n if (a[i] !== b[i]) {\r\n return false;\r\n }\r\n }\r\n return true;\r\n }\r\n}\r\n","\r\n \r\n \r\n \r\n \r\n {{ 'logbook.term.logbook' | translate }}\r\n \r\n\r\n\r\n\r\n \r\n \r\n \r\n \r\n \r\n \r\n {{ 'general.term.datetime' | translate }}\r\n {{ 'general.term.feature' | translate }}\r\n {{ 'logbook.term.action' | translate }}\r\n {{ 'logbook.term.value' | translate }}\r\n {{ 'general.term.user' | translate }}\r\n \r\n \r\n\r\n \r\n \r\n \r\n \r\n \r\n {{ item.formattedTimestamp }}\r\n \r\n \r\n {{ item.translatedFeature }}\r\n \r\n \r\n
\r\n
\r\n \r\n
\r\n
\r\n \r\n {{ item.email }}\r\n \r\n \r\n
\r\n
\r\n\r\n \r\n \r\n \r\n \r\n \r\n \r\n {{ 'general.term.datetime' | translate }}:\r\n {{ item.formattedTimestamp }}\r\n \r\n\r\n \r\n {{ 'general.term.feature' | translate }}:\r\n {{ item.translatedFeature }}\r\n \r\n\r\n \r\n {{ 'logbook.term.action' | translate }}:\r\n \r\n \r\n\r\n \r\n {{ 'logbook.term.value' | translate }}:\r\n \r\n \r\n\r\n \r\n {{ 'general.term.user' | translate }}:\r\n {{ item.email }}\r\n \r\n \r\n \r\n \r\n \r\n\r\n \r\n \r\n \r\n \r\n

{{ 'analytics.phrase.dataLoading' | translate }}

\r\n
\r\n
\r\n
\r\n
\r\n","import { Injectable } from '@angular/core';\r\nimport { ModalController } from '@ionic/angular';\r\nimport { map } from 'rxjs/operators';\r\nimport { LogbookModalComponent } from 'src/app/core/components/logbook/logbook-modal/logbook-modal.component';\r\nimport { DestinationService } from 'src/app/domain/destination/destination.service';\r\nimport { Feature } from 'src/app/domain/feature/feature.model';\r\nimport { FeatureAccessLevel } from 'src/app/domain/feature/feature-access-level.model';\r\nimport { FeatureId } from 'src/app/domain/feature/feature-id.model';\r\n\r\n@Injectable({\r\n providedIn: 'root',\r\n})\r\nexport class LogbookModalService {\r\n private readonly requiredFeature = new Feature(FeatureId.LOGBOOK, FeatureAccessLevel.READ);\r\n\r\n readonly logbookAvailable$ = this.destinationService.selectedTenantFeatures$.pipe(\r\n map((features) => features.some((feature) => feature.hasMinimumRequirementFor(this.requiredFeature)))\r\n );\r\n\r\n constructor(private modalCtrl: ModalController, private destinationService: DestinationService) {}\r\n\r\n async presentLogbookModal(featureFilters: FeatureId[][]): Promise {\r\n const modal = await this.modalCtrl.create({\r\n component: LogbookModalComponent,\r\n componentProps: {\r\n featureFilters,\r\n },\r\n });\r\n await modal.present();\r\n }\r\n}\r\n","import { Component, Input, OnChanges } from '@angular/core';\r\nimport { TranslatePipe, TranslateService } from '@ngx-translate/core';\r\nimport { takeUntil } from 'rxjs/operators';\r\nimport { Unsubscriber } from 'src/app/core/unsubscriber';\r\nimport { DateTimeFormatPipe } from 'src/app/core/utils/date-time-format.pipe';\r\n\r\n@Component({\r\n selector: 'sis-outdated-icon',\r\n templateUrl: './outdated-icon.component.html',\r\n styleUrls: ['./outdated-icon.component.scss'],\r\n standalone: false\r\n})\r\nexport class OutdatedIconComponent extends Unsubscriber implements OnChanges {\r\n @Input() color: string;\r\n @Input() timestamp: Date;\r\n\r\n displayedTooltip: string;\r\n\r\n constructor(\r\n private dateTimeFormatPipe: DateTimeFormatPipe,\r\n private translate: TranslatePipe,\r\n private translateService: TranslateService\r\n ) {\r\n super();\r\n }\r\n\r\n ngOnInit() {\r\n this.translateService.onLangChange.pipe(takeUntil(this.onDestroy$)).subscribe(() => {\r\n this.ngOnChanges();\r\n });\r\n }\r\n\r\n ngOnChanges() {\r\n const formattedDate = this.dateTimeFormatPipe.transform(this.timestamp, true, false);\r\n const translatedTooltip = `${this.translate.transform('general.phrase.outdatedDataSince')}`;\r\n\r\n this.displayedTooltip = `${translatedTooltip}: ${formattedDate}`;\r\n }\r\n}\r\n","\r\n
\r\n","import { Component, EventEmitter, Input, Output } from '@angular/core';\r\nimport { FormControl } from '@angular/forms';\r\nimport { map } from 'rxjs/operators';\r\nimport { LogbookModalService } from 'src/app/core/components/logbook/logbook-modal/logbook-modal.service';\r\nimport { ScreenSizeService } from 'src/app/core/utils/screen-size.service';\r\nimport { FeatureId } from 'src/app/domain/feature/feature-id.model';\r\nimport { UserSettingsService } from 'src/app/domain/user-settings/user-settings.service';\r\n\r\n@Component({\r\n selector: 'sis-page-title',\r\n templateUrl: './page-title.component.html',\r\n styleUrls: ['./page-title.component.scss'],\r\n standalone: false\r\n})\r\nexport class PageTitleComponent {\r\n @Input() title: string;\r\n @Input() featureId: FeatureId[][];\r\n @Input() reorderingEnabled: boolean;\r\n @Input() ignoreAdminRequirement: boolean;\r\n @Input() showAddButton: boolean;\r\n @Input() showReorderButton: boolean;\r\n @Input() filterControl: FormControl;\r\n\r\n @Output() onReorderClick: EventEmitter = new EventEmitter();\r\n @Output() onReorderCancelClick: EventEmitter = new EventEmitter();\r\n @Output() openEditModal: EventEmitter = new EventEmitter();\r\n\r\n readonly logbookAvailable$ = this.logbookModalService.logbookAvailable$;\r\n readonly bigScreenMode$ = this.screenSizeService.bigScreenMode$;\r\n readonly isAdministrator$ = this.userSettingsService.userSettings$.pipe(map((settings) => settings.isAdministrator));\r\n\r\n constructor(\r\n private logbookModalService: LogbookModalService,\r\n private userSettingsService: UserSettingsService,\r\n private screenSizeService: ScreenSizeService\r\n ) {}\r\n\r\n async openLogbook(): Promise {\r\n await this.logbookModalService.presentLogbookModal(this.featureId);\r\n }\r\n\r\n _onReorderClick(): void {\r\n this.filterControl?.disable();\r\n this.onReorderClick.emit();\r\n }\r\n\r\n _onReorderCancelClick(): void {\r\n this.filterControl?.enable();\r\n this.onReorderCancelClick.emit();\r\n }\r\n\r\n _onReorderSaveClick(): void {\r\n this.filterControl?.enable();\r\n this.onReorderClick.emit();\r\n }\r\n\r\n _openEditModal(): void {\r\n this.openEditModal.emit();\r\n }\r\n}\r\n","\r\n {{ this.title | translate }}\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 {{ 'general.term.save' | translate }}\r\n \r\n \r\n {{ 'general.term.cancel' | translate }}\r\n \r\n \r\n
\r\n
\r\n\r\n\r\n {{ this.title | translate }}\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 { takeUntil } from 'rxjs/operators';\r\nimport { Unsubscriber } from 'src/app/core/unsubscriber';\r\nimport { Feature } from 'src/app/domain/feature/feature.model';\r\nimport { FeatureId } from 'src/app/domain/feature/feature-id.model';\r\nimport { Tenant } from 'src/app/domain/tenant/tenant.model';\r\nimport { ManagedTenant } from 'src/app/user-management/domain/managed-tenant.model';\r\nimport { UserManagementService } from 'src/app/user-management/user-management.service';\r\n\r\n@Component({\n selector: 'sis-tenant-feature-icon-component',\n templateUrl: './tenant-feature-icon.component.html',\n styleUrls: ['./tenant-feature-icon.component.scss'],\n standalone: false\n})\r\nexport class TenantFeatureIconComponent extends Unsubscriber implements OnInit {\r\n @Input() tenant: ManagedTenant | Tenant;\r\n\r\n featureTranslationMap: Map;\r\n sisMediaTooltip: string;\r\n cockpitTooltip: string;\r\n\r\n constructor(private userManagementService: UserManagementService) {\r\n super();\r\n }\r\n\r\n ngOnInit() {\r\n this.userManagementService.featureTranslationMap$\r\n .pipe(takeUntil(this.onDestroy$))\r\n .subscribe((featureTranslationMap) => {\r\n const tooltips = this.getTooltips(this.tenant, featureTranslationMap);\r\n this.cockpitTooltip = tooltips[0];\r\n this.sisMediaTooltip = tooltips[1];\r\n });\r\n }\r\n\r\n private getTooltips(\r\n tenant: ManagedTenant | Tenant,\r\n featureTranslationMap: Map\r\n ): [string, string] {\r\n const [cockpitFeatures, sismediaFeatures] = this.validateFeatures(tenant);\r\n\r\n const translatedCockpitFeatures = cockpitFeatures\r\n .sort((a, b) => a.featureOrder - b.featureOrder)\r\n .map((feature) => featureTranslationMap.get(feature.featureId))\r\n .join('\\n');\r\n\r\n const translatedSismediaFeatures = sismediaFeatures\r\n .sort((a, b) => a.featureOrder - b.featureOrder)\r\n .map((feature) => featureTranslationMap.get(feature.featureId))\r\n .join('\\n');\r\n\r\n return [translatedCockpitFeatures, translatedSismediaFeatures];\r\n }\r\n\r\n private validateFeatures(tenant: ManagedTenant | Tenant): [Feature[], Feature[]] {\r\n let features: Feature[];\r\n\r\n if ('features$' in tenant && tenant.features$) {\r\n features = tenant.features$.value;\r\n } else {\r\n features = (tenant as ManagedTenant).features;\r\n }\r\n\r\n const cockpitFeatures = features.filter(\r\n (f) => f.featureId >= 1000 && f.featureId <= 1999\r\n );\r\n const sismediaFeatures = features.filter(\r\n (f) => f.featureId >= 2000 && f.featureId < 3000\r\n );\r\n\r\n return [cockpitFeatures, sismediaFeatures];\r\n }\r\n}\r\n","
\r\n \r\n \r\n \r\n
\r\n","import { Component } from '@angular/core';\r\nimport { takeUntil } from 'rxjs/operators';\r\nimport { Unsubscriber } from 'src/app/core/unsubscriber';\r\nimport { UserSettingsService } from 'src/app/domain/user-settings/user-settings.service';\r\n\r\n@Component({\r\n selector: 'sis-timeformat-button',\r\n templateUrl: './timeformat-button.component.html',\r\n styleUrls: ['./timeformat-button.component.scss'],\r\n standalone: false\r\n})\r\nexport class TimeformatButtonComponent extends Unsubscriber {\r\n private timeFormat: number;\r\n\r\n constructor(private userSettingService: UserSettingsService) {\r\n super();\r\n this.userSettingService.userSettings$.pipe(takeUntil(this.onDestroy$)).subscribe((userSettings) => {\r\n this.timeFormat = userSettings.timeFormat;\r\n });\r\n }\r\n\r\n async switchTimeFormat(): Promise {\r\n await this.userSettingService.updateUserSettings({\r\n timeFormat: (this.timeFormat % 2) + 1,\r\n });\r\n }\r\n}\r\n","\r\n","import { ScrollingModule } from '@angular/cdk/scrolling';\r\nimport { CommonModule } from '@angular/common';\r\nimport { NgModule } from '@angular/core';\r\nimport { ReactiveFormsModule } from '@angular/forms';\r\nimport { MatTooltipModule } from '@angular/material/tooltip';\r\nimport { IonicModule } from '@ionic/angular';\r\nimport { TranslateModule, TranslatePipe } from '@ngx-translate/core';\r\nimport { AlarmlistComponent } from 'src/app/alarmlist/alarmlist.component';\r\nimport { AlarmlistItemComponent } from 'src/app/alarmlist/alarmlist-item/alarmlist-item.component';\r\nimport { AlarmlistModalComponent } from 'src/app/alarmlist/alarmlist-modal/alarmlist-modal.component';\r\nimport { AlarmIconComponent } from 'src/app/core/alarm-icon/alarm-icon.component';\r\nimport { ContextMenuComponent } from 'src/app/core/components/context-menu/context-menu.component';\r\nimport { GeneralButtonComponent } from 'src/app/core/components/general-button/general-button.component';\r\nimport { LogbookModalComponent } from 'src/app/core/components/logbook/logbook-modal/logbook-modal.component';\r\nimport { LogbookButtonComponent } from 'src/app/core/components/logbook-button/logbook-button.component';\r\nimport { OutdatedIconComponent } from 'src/app/core/components/outdated-icon/outdated-icon.component';\r\nimport { PageTitleComponent } from 'src/app/core/components/page-title/page-title.component';\r\nimport { TenantFeatureIconComponent } from 'src/app/core/components/tenant-feature-icon/tenant-feature-icon.component';\r\nimport { TimeformatButtonComponent } from 'src/app/core/components/timeformat-button/timeformat-button.component';\r\nimport { SisIonContentScrollbar } from 'src/app/core/scrollbar/sis-ion-content-scrollbar';\r\nimport { DateFormatPipe } from 'src/app/core/utils/date-format.pipe';\r\nimport { DateTimeFormatPipe } from 'src/app/core/utils/date-time-format.pipe';\r\nimport { InputIntegerOnlyDirective } from 'src/app/core/utils/input-integer-only.directive';\r\nimport { MarkdownPipe } from 'src/app/core/utils/markdown.pipe';\r\nimport { WeekdayPipe } from 'src/app/core/utils/weekday.pipe';\r\n\r\n@NgModule({\r\n imports: [CommonModule, IonicModule, TranslateModule, MatTooltipModule, ReactiveFormsModule, ScrollingModule],\r\n declarations: [\r\n InputIntegerOnlyDirective,\r\n DateFormatPipe,\r\n DateTimeFormatPipe,\r\n AlarmIconComponent,\r\n ContextMenuComponent,\r\n AlarmlistComponent,\r\n AlarmlistItemComponent,\r\n AlarmlistModalComponent,\r\n TimeformatButtonComponent,\r\n GeneralButtonComponent,\r\n LogbookButtonComponent,\r\n LogbookModalComponent,\r\n OutdatedIconComponent,\r\n SisIonContentScrollbar,\r\n MarkdownPipe,\r\n PageTitleComponent,\r\n WeekdayPipe,\r\n TenantFeatureIconComponent,\r\n ],\r\n exports: [\r\n InputIntegerOnlyDirective,\r\n DateFormatPipe,\r\n DateTimeFormatPipe,\r\n AlarmIconComponent,\r\n ContextMenuComponent,\r\n AlarmlistComponent,\r\n AlarmlistItemComponent,\r\n AlarmlistModalComponent,\r\n TimeformatButtonComponent,\r\n GeneralButtonComponent,\r\n LogbookButtonComponent,\r\n LogbookModalComponent,\r\n OutdatedIconComponent,\r\n SisIonContentScrollbar,\r\n MarkdownPipe,\r\n PageTitleComponent,\r\n WeekdayPipe,\r\n TenantFeatureIconComponent,\r\n ],\r\n providers: [TranslatePipe],\r\n})\r\nexport class CoreModule { }\r\n","import { Directive, Type } from '@angular/core';\r\nimport { takeUntil } from 'rxjs/operators';\r\nimport { EventBusService } from 'src/app/core/eventbus/event-bus.service';\r\nimport { BusEvent } from 'src/app/core/eventbus/events';\r\nimport { Unsubscriber } from 'src/app/core/unsubscriber';\r\n\r\n@Directive()\r\nexport class EventBusSubscriberBase extends Unsubscriber {\r\n constructor(public eventBus: EventBusService) {\r\n super();\r\n }\r\n\r\n observe(typeProvider: Type, callback: (ev: T) => void) {\r\n this.eventBus\r\n .observe(typeProvider)\r\n .pipe(takeUntil(this.onDestroy$))\r\n .subscribe((ev: T) => callback(ev as T));\r\n }\r\n}\r\n","import { Injectable, Type } from '@angular/core';\r\nimport { Observable, Subject } from 'rxjs';\r\nimport { map } from 'rxjs/operators';\r\nimport { BusEvent } from 'src/app/core/eventbus/events';\r\n\r\n@Injectable({\r\n providedIn: 'root',\r\n})\r\nexport class EventBusService {\r\n private subjects$ = new Map>();\r\n\r\n publish(event: T): void {\r\n const className = this.getInstanceName(event);\r\n\r\n this.getSubject(className).next(event);\r\n }\r\n\r\n observe(typeProvider: Type): Observable {\r\n const instance = new typeProvider();\r\n\r\n const className = this.getInstanceName(instance);\r\n\r\n const subject$ = this.getSubject(className);\r\n\r\n return subject$.pipe(map((event) => event as T));\r\n }\r\n\r\n private getSubject(typeId: string): Subject {\r\n let subject$: Subject = this.subjects$[typeId];\r\n if (!subject$) {\r\n subject$ = new Subject();\r\n this.subjects$[typeId] = subject$;\r\n }\r\n return subject$;\r\n }\r\n\r\n private getInstanceName(instance: object): string {\r\n return Reflect.getMetadata(BusEvent.nameSymbol, instance);\r\n }\r\n}\r\n","/* eslint-disable max-classes-per-file */\r\nimport 'reflect-metadata';\r\n\r\nimport { BreakdownInfoActiveText } from 'src/app/breakdowninfo/domain/breakdowninfo-activetext.model';\r\nimport { BreakdownInfoLibraryEntry } from 'src/app/breakdowninfo/domain/breakdowninfo-library-entry.model';\r\nimport { LogbookEntry } from 'src/app/core/components/logbook/domain/logbook-entry.model';\r\nimport { STnetStatus } from 'src/app/core/stnet/stnet-status.model';\r\nimport { Alarm } from 'src/app/domain/alarm.model';\r\nimport { FeatureAccessLevel } from 'src/app/domain/feature/feature-access-level.model';\r\nimport { FeatureId } from 'src/app/domain/feature/feature-id.model';\r\nimport { Tenant } from 'src/app/domain/tenant/tenant.model';\r\nimport { UserSettings } from 'src/app/domain/user-settings/user-settings.model';\r\nimport { FeatureManagementFeature } from 'src/app/feature-management/domain/feature.model';\r\nimport { LedTicker } from 'src/app/led-ticker/domain/led-ticker.model';\r\nimport { AlarmLibraryItem } from 'src/app/maps/alarmlibrary/domain/alarmlibrary-item.model';\r\nimport { UserAlarmConfig } from 'src/app/maps/alarmlibrary/domain/useralarmconfig.model';\r\nimport { CustomMarker } from 'src/app/maps/domain/custom-marker.model';\r\nimport { MeteoStation } from 'src/app/maps/domain/meteostation.model';\r\nimport { Ropeway } from 'src/app/maps/domain/ropeway.model';\r\nimport { RopewayEcoModeSettings } from 'src/app/maps/domain/ropeway-ecomode/ropeway-ecomode-settings.model';\r\nimport { RopewaySettings } from 'src/app/maps/domain/ropeway-settings/ropeway-settings.model';\r\nimport { Playlist } from 'src/app/media-center/playlists/domain/playlist.model';\r\nimport { Screen } from 'src/app/media-center/screens/domain/screen.model';\r\nimport { InfoBanner } from 'src/app/media-center/screens/infobanner-modal/domain/infobanner.model';\r\nimport { InfoBannerMapping } from 'src/app/media-center/screens/infobanner-modal/domain/infobanner-mapping.model';\r\nimport { Slide } from 'src/app/media-center/slides/domain/slide.model';\r\nimport { MeteoInfoItem } from 'src/app/meteo-info/domain/meteo-info-item.model';\r\nimport { OperatingInfoEntry } from 'src/app/operating-info/domain/operating-info-entry.model';\r\nimport { Parking } from 'src/app/parking/domain/parking.model';\r\nimport { ParkingStatus } from 'src/app/parking/domain/parking-status.enum';\r\nimport { EditToken } from 'src/app/sisag-admin/domain/edit-token.model';\r\nimport { SisMediaAssetCategory } from 'src/app/sismedia/domain/sismedia-asset-category.enum';\r\nimport { SisMediaAssetEdit } from 'src/app/sismedia/domain/sismedia-asset-edit.model';\r\nimport { SisMediaAssetStatus } from 'src/app/sismedia/domain/sismedia-asset-status.enum';\r\nimport { SisMediaAssetSubStatus } from 'src/app/sismedia/domain/sismedia-asset-substatus.enum';\r\nimport { SisMediaItemOrder } from 'src/app/sismedia/domain/sismedia-item-order.model';\r\nimport { SisMediaAssetOverrideEntry } from 'src/app/sismedia/sismedia-asset-override/domain/sismedia-asset-override-entry.model';\r\nimport { SisMediaOperatingHoursEntry } from 'src/app/sismedia/sismedia-operating-hours-modal/domain/sismedia-operating-hours-entry.model';\r\nimport { SisMediaSetting } from 'src/app/sismedia-setting/sismedia-setting.model';\r\nimport { STnetItem } from 'src/app/stnet/domain/stnet-item.model';\r\nimport { TimetableIntervalDay } from 'src/app/timetable/domain/timetable-interval-day.model';\r\nimport { TimetableJourney } from 'src/app/timetable/domain/timetable-journey.model';\r\nimport { TimeTableRealTimeData } from 'src/app/timetable/domain/timetable-real-time-data.model';\r\nimport { TimetableSeason } from 'src/app/timetable/domain/timetable-season.model';\r\nimport { ManagedTenant } from 'src/app/user-management/domain/managed-tenant.model';\r\nimport { User } from 'src/app/user-management/domain/user.model';\r\nimport { WebLink } from 'src/app/weblink-collection/domain/weblink-item.model';\r\n\r\nexport const ClassName = (className: string): ClassDecorator => {\r\n return (target) => Reflect.defineMetadata(BusEvent.nameSymbol, className, target.prototype);\r\n};\r\n\r\nexport abstract class BusEvent {\r\n static nameSymbol = Symbol('name');\r\n}\r\n\r\n@ClassName('MapIconClickedEvent')\r\nexport class MapIconClickedEvent extends BusEvent {\r\n ropeway: Ropeway;\r\n meteoStation: MeteoStation;\r\n customMarker: CustomMarker;\r\n codeTriggered: boolean;\r\n}\r\n\r\n@ClassName('MapIconHoveredEvent')\r\nexport class MapIconHoveredEvent extends BusEvent {\r\n ropeway: Ropeway;\r\n customMarker: CustomMarker;\r\n hover: boolean;\r\n}\r\n\r\n@ClassName('ApiConnectionEvent')\r\nexport class ApiConnectionEvent extends BusEvent {\r\n apiConnected: boolean;\r\n}\r\n\r\n@ClassName('InternetConnectionEvent')\r\nexport class InternetConnectionEvent extends BusEvent {\r\n internetConnected: boolean;\r\n}\r\n\r\n@ClassName('WidgetSelectedEvent')\r\nexport class WidgetSelectedEvent extends BusEvent {\r\n expandable: boolean;\r\n codeTriggered: boolean;\r\n}\r\n\r\n@ClassName('UserAlarmEvent')\r\nexport class UserAlarmEvent extends BusEvent {\r\n alarm: Alarm;\r\n}\r\n\r\n@ClassName('UserSettingsUpdatedEvent')\r\nexport class UserSettingsUpdatedEvent extends BusEvent {\r\n userSettings: UserSettings;\r\n updateSuccessful: boolean;\r\n updaterId: string;\r\n}\r\n\r\n@ClassName('UserAlarmConfigUpdatedEvent')\r\nexport class UserAlarmConfigUpdatedEvent extends BusEvent {\r\n userAlarmConfig: UserAlarmConfig;\r\n}\r\n\r\n@ClassName('DeviceListHoverEvent')\r\nexport class DeviceListHoverEvent extends BusEvent {\r\n hover: boolean;\r\n deviceSisId: string;\r\n}\r\n\r\n@ClassName('BreakdownInfoActiveTextUpdatedEvent')\r\nexport class BreakdownInfoActiveTextUpdatedEvent extends BusEvent {\r\n breakdownInfoActiveTexts: BreakdownInfoActiveText[];\r\n updateSuccessful: boolean;\r\n}\r\n\r\n@ClassName('BreakdownInfoLibraryUpdatedEvent')\r\nexport class BreakdownInfoLibraryUpdatedEvent extends BusEvent {\r\n breakdownInfo: BreakdownInfoLibraryEntry;\r\n removed = false;\r\n}\r\n\r\n@ClassName('OperatingInfoActiveTextUpdatedEvent')\r\nexport class OperatingInfoActiveTextUpdatedEvent extends BusEvent {\r\n operatingInfoEntries: OperatingInfoEntry[];\r\n changedBy: string;\r\n updateSuccessful: boolean;\r\n tenantGuid: string;\r\n}\r\n\r\n@ClassName('OperatingInfoLibraryUpdatedEvent')\r\nexport class OperatingInfoLibraryUpdatedEvent extends BusEvent {\r\n operatingInfoLibraryEntry: OperatingInfoEntry;\r\n removed = false;\r\n changedBy: string;\r\n tenantGuid: string;\r\n}\r\n\r\n@ClassName('MaintenanceUpdatedEvent')\r\nexport class MaintenanceUpdatedEvent extends BusEvent {\r\n tenantSisIdsUnderMaintenance: string[];\r\n}\r\n\r\n@ClassName('AlarmLibraryOverrideUpdatedEvent')\r\nexport class AlarmLibraryOverrideUpdatedEvent extends BusEvent {\r\n tenantGuid: string;\r\n alarmLibraryEntry: AlarmLibraryItem;\r\n successful: boolean;\r\n}\r\n\r\n@ClassName('SisMediaStatusUpdatedEvent')\r\nexport class SisMediaStatusUpdatedEvent extends BusEvent {\r\n guid: string;\r\n tenantGuid: string;\r\n status: SisMediaAssetStatus;\r\n subStatus: SisMediaAssetSubStatus;\r\n activeStatus: SisMediaAssetStatus;\r\n statusOverrideActive: boolean;\r\n lastStatusChange: Date;\r\n updateSuccessful: boolean;\r\n failReason: string;\r\n assetCategory: SisMediaAssetCategory;\r\n changedBy: string;\r\n}\r\n\r\n@ClassName('SisMediaPlsUpdatedEvent')\r\nexport class SisMediaPlsUpdatedEvent extends BusEvent {\r\n assetGuid: string;\r\n assetStatus: SisMediaAssetStatus;\r\n successfullyUpdatedDisplays: string[];\r\n unsuccessfullyUpdatedDisplays: string[];\r\n displaysInSimulationMode: string[];\r\n}\r\n\r\n@ClassName('MediaCenterSlideUpdatedEvent')\r\nexport class MediaCenterSlideUpdatedEvent extends BusEvent {\r\n slide: Slide;\r\n removed: boolean;\r\n success: boolean;\r\n settings: boolean;\r\n changedBy: string;\r\n tenantGuid: string;\r\n}\r\n\r\n@ClassName('MediaCenterScreenUpdatedEvent')\r\nexport class MediaCenterScreenUpdatedEvent extends BusEvent {\r\n screens: Screen[];\r\n removed: boolean;\r\n success: boolean;\r\n changedBy: string;\r\n tenantGuid: string;\r\n}\r\n\r\n@ClassName('MediaCenterPlaylistUpdatedEvent')\r\nexport class MediaCenterPlaylistUpdatedEvent extends BusEvent {\r\n playlist: Playlist;\r\n removed: boolean;\r\n success: boolean;\r\n changedBy: string;\r\n tenantGuid: string;\r\n}\r\n\r\n@ClassName('MediaCenterThumbnailUpdatedEvent')\r\nexport class MediaCenterThumbnailUpdatedEvent extends BusEvent {\r\n url: string;\r\n thumbnailUrl: string;\r\n}\r\n\r\n@ClassName('MediaCenterBlobStorageUpdatedEvent')\r\nexport class MediaCenterBlobStorageUpdatedEvent extends BusEvent {\r\n uploadedBy?: string;\r\n fileName: string;\r\n successful: boolean;\r\n}\r\n\r\n@ClassName('InfoBannerUpdatedEvent')\r\nexport class InfoBannerUpdatedEvent extends BusEvent {\r\n infoBanner: InfoBanner;\r\n updateSuccessful: boolean;\r\n removed: boolean;\r\n}\r\n\r\n@ClassName('InfoBannerMappingUpdatedEvent')\r\nexport class InfoBannerMappingUpdatedEvent extends BusEvent {\r\n infoBannerMappings: InfoBannerMapping[];\r\n infoBanners: InfoBanner[];\r\n tenantGuid: string;\r\n updateSuccessful: boolean;\r\n}\r\n\r\n@ClassName('InfotextUpdatedEvent')\r\nexport class InfotextUpdatedEvent extends BusEvent {\r\n guid: string;\r\n categoryId: number;\r\n textDe: string;\r\n textEn: string;\r\n textFr: string;\r\n textIt: string;\r\n updateSuccessful: boolean;\r\n changedBy: string;\r\n failReason: string;\r\n}\r\n\r\n@ClassName('TimetableJourneyUpdatedEvent')\r\nexport class TimetableJourneyUpdatedEvent extends BusEvent {\r\n timetableJourney: TimetableJourney;\r\n tenantGuid: string;\r\n changedBy: string;\r\n deleted: boolean;\r\n updateSuccessful: boolean;\r\n}\r\n\r\n@ClassName('TimetableSeasonUpdatedEvent')\r\nexport class TimetableSeasonUpdatedEvent extends BusEvent {\r\n timetableSeason: TimetableSeason;\r\n tenantGuid: string;\r\n changedBy: string;\r\n updateSuccessful: boolean;\r\n}\r\n\r\n@ClassName('TimetableImportUpdatedEvent')\r\nexport class TimetableImportUpdatedEvent extends BusEvent {\r\n trackGuid: string;\r\n tenantGuid: string;\r\n changedBy: string;\r\n updateSuccessful: boolean;\r\n}\r\n\r\n@ClassName('TimetableIntervalDayUpdatedEvent')\r\nexport class TimetableIntervalDayUpdatedEvent extends BusEvent {\r\n timetableIntervalDay: TimetableIntervalDay;\r\n tenantGuid: string;\r\n changedBy: string;\r\n updateSuccessful: boolean;\r\n}\r\n\r\n@ClassName('LastSlopeControlUpdatedEvent')\r\nexport class LastSlopeControlUpdatedEvent extends BusEvent {\r\n guid: string;\r\n zone: number;\r\n times: string[];\r\n activeTime: number;\r\n changedBy: string;\r\n updateSuccessful: boolean;\r\n}\r\n\r\n@ClassName('SisMediaAssetOverrideUpdatedEvent')\r\nexport class SisMediaAssetOverrideUpdatedEvent extends BusEvent {\r\n sisMediaAssetOverrideEntry: SisMediaAssetOverrideEntry;\r\n operation: string;\r\n changedBy: string;\r\n lastChanged: Date;\r\n updateSuccessful: boolean;\r\n}\r\n\r\n@ClassName('SisMediaAssetEditUpdatedEvent')\r\nexport class SisMediaAssetEditUpdatedEvent extends BusEvent {\r\n assetEdits: SisMediaAssetEdit[];\r\n updateSuccessful: boolean;\r\n tenantGuid: string;\r\n operation: string;\r\n changedBy: string;\r\n}\r\n\r\n@ClassName('SisMediaAssetCockpitOrderUpdatedEvent')\r\nexport class SisMediaAssetCockpitOrderUpdatedEvent extends BusEvent {\r\n assetOrders: SisMediaItemOrder[];\r\n updateSuccessful: boolean;\r\n tenantGuid: string;\r\n changedBy: string;\r\n}\r\n\r\n@ClassName('UserPermissionUpdatedEvent')\r\nexport class UserPermissionUpdatedEvent extends BusEvent {\r\n userGuid: string;\r\n tenantGuid: string;\r\n featureId: FeatureId;\r\n featureAccessLevel: FeatureAccessLevel;\r\n adminOnly: boolean;\r\n changedBy: string;\r\n}\r\n\r\n@ClassName('MeteoInfoUpdatedEvent')\r\nexport class MeteoInfoUpdatedEvent extends BusEvent {\r\n meteoInfoItems: MeteoInfoItem[];\r\n updateSuccessful: boolean;\r\n tenantGuid: string;\r\n changedBy: string;\r\n}\r\n\r\n@ClassName('STnetUpdatedEvent')\r\nexport class STnetUpdatedEvent extends BusEvent {\r\n stnetItem: STnetItem;\r\n}\r\n\r\n@ClassName('STnetStatusUpdatedEvent')\r\nexport class STnetStatusUpdatedEvent extends BusEvent {\r\n tenantGuid: string;\r\n status: STnetStatus;\r\n}\r\n\r\n@ClassName('LogbookUpdatedEvent')\r\nexport class LogbookUpdatedEvent extends BusEvent {\r\n logbookEntry: LogbookEntry;\r\n}\r\n\r\n@ClassName('LedTickerUpdatedEvent')\r\nexport class LedTickerUpdatedEvent extends BusEvent {\r\n ledTicker: LedTicker;\r\n tenantGuid: string;\r\n changedBy: string;\r\n updateSuccessful: boolean;\r\n}\r\n\r\n@ClassName('SisMediaOperatingHoursUpdatedEvent')\r\nexport class SisMediaOperatingHoursUpdatedEvent extends BusEvent {\r\n assetGuid: string;\r\n assetCategory: number;\r\n operatingHoursEnabled: boolean;\r\n operatingHours: SisMediaOperatingHoursEntry[];\r\n tenantGuid: string;\r\n changedBy: string;\r\n updateSuccessful: boolean;\r\n}\r\n\r\n@ClassName('SisMediaAssetExportMappingUpdatedEvent')\r\nexport class SisMediaAssetExportMappingUpdatedEvent extends BusEvent {\r\n assetGuid: string;\r\n assetCategory: SisMediaAssetCategory;\r\n exportGuids: string[];\r\n tenantGuid: string;\r\n changedBy: string;\r\n updateSuccessful: boolean;\r\n}\r\n\r\n@ClassName('HtmlToPdfGeneratedEvent')\r\nexport class HtmlToPdfGeneratedEvent extends BusEvent {\r\n tenantGuid: string;\r\n pdfName: string;\r\n pdfUrl: string;\r\n successful: boolean;\r\n changedBy: string;\r\n}\r\n\r\n@ClassName('EmailDeliverySentEvent')\r\nexport class EmailDeliverySentEvent extends BusEvent {\r\n tenantGuid: string;\r\n emailText: string;\r\n subjectText: string;\r\n attachmentGuid: string;\r\n changedBy: string;\r\n successful: boolean;\r\n}\r\n\r\n@ClassName('EmailDeliveryRecipientUpsertedEvent')\r\nexport class EmailDeliveryRecipientUpsertedEvent extends BusEvent {\r\n tenantGuid: string;\r\n recipientGuid: string;\r\n name: string;\r\n email: string;\r\n location: string;\r\n deleted: boolean;\r\n changedBy: string;\r\n successful: boolean;\r\n}\r\n\r\n@ClassName('EcoModeSettingsUpdatedEvent')\r\nexport class EcoModeSettingsUpdatedEvent extends BusEvent {\r\n tenantGuid: string;\r\n ropewayEcoModeSettings: RopewayEcoModeSettings;\r\n changedBy: string;\r\n moduleUpdateSuccessful: boolean;\r\n updateSuccessful: boolean;\r\n}\r\n\r\n@ClassName('RopewaySettingsUpdatedEvent')\r\nexport class RopewaySettingsUpdatedEvent extends BusEvent {\r\n ropewaySettings: RopewaySettings;\r\n changedBy: string;\r\n updateSuccessful: boolean;\r\n}\r\n\r\n@ClassName('UserManagementUserUpdatedEvent')\r\nexport class UserManagementUserUpdatedEvent extends BusEvent {\r\n user: User;\r\n managedTenants: ManagedTenant[];\r\n changedBy: string;\r\n tenantGuid: string;\r\n updateSuccessful: boolean;\r\n}\r\n\r\n@ClassName('SambesiWhatsUpMessagesUpdatedEvent')\r\nexport class SambesiWhatsUpMessagesUpdatedEvent extends BusEvent {\r\n tenantGuid: string;\r\n changedBy: string;\r\n updateSuccessful: boolean;\r\n ropewaySisIds: string[];\r\n}\r\n\r\n@ClassName('MarkerPositionUpdatedEvent')\r\nexport class MarkerPositionUpdatedEvent extends BusEvent {\r\n tenantGuid: string;\r\n changedBy: string;\r\n markerGuid: string;\r\n successful: boolean;\r\n}\r\n\r\n@ClassName('TimetableRealTimeDataUpdatedEvent')\r\nexport class TimetableRealTimeDataUpdatedEvent extends BusEvent {\r\n tenantGuid: string;\r\n trackGuid: string;\r\n seasonGuid: string;\r\n realTimeDatas: TimeTableRealTimeData[];\r\n lastSuccessfulRealTimeImport: Date;\r\n}\r\n\r\n@ClassName('SlopesOperatingTimesUpdatedEvent')\r\nexport class SlopesOperatingTimesUpdatedEvent extends BusEvent {\r\n guid: string;\r\n tenantGuid: string;\r\n location: string;\r\n firstRide: string;\r\n lastRide: string;\r\n lastSlopeControl: string;\r\n changedBy: string;\r\n updateSuccessful: boolean;\r\n}\r\n\r\n@ClassName('WebLinkCollectionUpdatedEvent')\r\nexport class WebLinkCollectionUpdatedEvent extends BusEvent {\r\n webLinks: WebLink[];\r\n tenantGuid: string;\r\n operation: string;\r\n changedBy: string;\r\n updateSuccessful: boolean;\r\n}\r\n\r\n@ClassName('SisMapEditTokenUpdatedEvent')\r\nexport class SisMapEditTokenUpdatedEvent extends BusEvent {\r\n editToken: EditToken;\r\n tenantGuid: string;\r\n operation: string;\r\n changedBy: string;\r\n updateSuccessful: boolean;\r\n}\r\n\r\n@ClassName('TenantUpdatedEvent')\r\nexport class TenantUpdatedEvent extends BusEvent {\r\n tenant: Tenant;\r\n changedBy: string;\r\n updateSuccessful: boolean;\r\n}\r\n\r\n@ClassName('FeatureUpdatedEvent')\r\nexport class FeatureUpdatedEvent extends BusEvent {\r\n tenantGuid: string;\r\n changedBy: string;\r\n updateSuccessful: boolean;\r\n features: FeatureManagementFeature[];\r\n}\r\n\r\n@ClassName('RopewayAvailabilityTrendUpdatedEvent')\r\nexport class RopewayAvailabilityTrendUpdatedEvent extends BusEvent {\r\n tenantGuid: string;\r\n tenantSisId: string;\r\n ropewaySisId: string;\r\n date: string;\r\n ignore: boolean;\r\n changedBy: string;\r\n updateSuccessful: boolean;\r\n}\r\n\r\n@ClassName('ClampingCountResetedEvent')\r\nexport class ClampingCountResetedEvent extends BusEvent {\r\n tenantGuid: string;\r\n ropewayGuid: string;\r\n vehicleId: number;\r\n totalValueOnReset: number;\r\n lastReset: string;\r\n email: string;\r\n changedBy: string;\r\n resetSuccessful: boolean;\r\n}\r\n\r\n@ClassName('ParkingStatusUpdatedEvent')\r\nexport class ParkingStatusUpdatedEvent extends BusEvent {\r\n tenantGuid: string;\r\n parkingGuid: string;\r\n status: ParkingStatus;\r\n lastStatusChange: Date;\r\n changedBy: string;\r\n updateSuccessful: boolean;\r\n}\r\n\r\n@ClassName('ParkingEditedEvent')\r\nexport class ParkingEditedEvent extends BusEvent {\r\n tenantGuid: string;\r\n parkings: Parking[];\r\n changedBy: string;\r\n updateSuccessful: boolean;\r\n}\r\n\r\n@ClassName('ParkingExportMappingUpdatedEvent')\r\nexport class ParkingExportMappingUpdatedEvent extends BusEvent {\r\n tenantGuid: string;\r\n parkingGuid: string;\r\n exportGuids: string[];\r\n changedBy: string;\r\n updateSuccessful: boolean;\r\n}\r\n\r\n@ClassName('ParkingCockpitOrderUpdatedEvent')\r\nexport class ParkingCockpitOrderUpdatedEvent extends BusEvent {\r\n tenantGuid: string;\r\n parkings: Parking[];\r\n changedBy: string;\r\n updateSuccessful: boolean;\r\n}\r\n\r\n@ClassName('ParkingCurrentOccupancyUpdatedEvent')\r\nexport class ParkingCurrentOccupancyUpdatedEvent extends BusEvent {\r\n parkingGuid: string;\r\n tenantGuid: string;\r\n currentOccupancy: number;\r\n occupancyTimestamp: Date;\r\n status: ParkingStatus;\r\n changedBy: string;\r\n}\r\n\r\n@ClassName('SisMediaSettingUpdatedEvent')\r\nexport class SisMediaSettingUpdatedEvent extends BusEvent {\r\n sisMediaSetting: SisMediaSetting;\r\n updateSuccessful: boolean;\r\n changedBy: string;\r\n}\r\n\r\n@ClassName('WebcamImageUpdatedEvent')\r\nexport class WebcamImageUpdatedEvent extends BusEvent {\r\n tenantGuid: string;\r\n deviceSisId: string;\r\n url: string;\r\n}\r\n\r\nexport class RopewayBrakeReportUpdatedEvent extends BusEvent {\r\n tenantGuid: string;\r\n deviceSisId: string;\r\n}\r\n","import { Injectable } from '@angular/core';\r\nimport { Router } from '@angular/router';\r\nimport { from, isObservable, Observable, of } from 'rxjs';\r\nimport { switchMap } from 'rxjs/operators';\r\nimport { ConfirmationDialogService } from 'src/app/core/utils/confirmation-dialog.service';\r\n\r\nexport interface ComponentCanDeactivate {\r\n canDeactivate: () => boolean | Observable;\r\n}\r\n\r\n@Injectable({\r\n providedIn: 'root',\r\n})\r\nexport class PendingChangesGuard {\r\n constructor(private confirmationDialogService: ConfirmationDialogService, private router: Router) {}\r\n\r\n canDeactivate(component: ComponentCanDeactivate): Observable {\r\n // if there are no pending changes, just allow deactivation; else confirm first\r\n // or if we route a second time via app.resolver.ts (from :default to )\r\n if (\r\n !component ||\r\n this.router.getCurrentNavigation().finalUrl.root.children['primary'].segments[0].path !== 'default'\r\n ) {\r\n return of(true);\r\n }\r\n\r\n const canDeactivate = component.canDeactivate();\r\n\r\n if (isObservable(canDeactivate)) {\r\n return canDeactivate.pipe(switchMap((cD) => this.getCanDeactivateObservable(cD)));\r\n }\r\n\r\n return this.getCanDeactivateObservable(canDeactivate);\r\n }\r\n\r\n private getCanDeactivateObservable(cD: boolean): Observable {\r\n return cD\r\n ? of(true)\r\n : // NOTE: this warning message will only be shown when navigating elsewhere within your angular app;\r\n // when navigating away from your angular app, the browser will show a generic warning message\r\n // see http://stackoverflow.com/a/42207299/7307355\r\n from(this.confirmationDialogService.presentAlert('general.phrase.unsavedChanges', 'OK'));\r\n }\r\n}\r\n","import { Ropeway } from 'src/app/maps/domain/ropeway.model';\r\n\r\nexport class IconHelper {\r\n static readonly meteoStationIconName = 'sis-meteostation';\r\n\r\n static getRopewayIconName(ropeway: Ropeway): string {\r\n if (ropeway && ropeway.ropewayType) {\r\n let type = ropeway.ropewayType.substring(0, 2);\r\n type = type === 'ft' ? 'pb' : type === 'sf' ? 'sk' : type;\r\n return `sis-${type}`;\r\n }\r\n return 'sis-pb';\r\n }\r\n\r\n static getIconName(type: string): string {\r\n if (type != null && typeof type === 'string') {\r\n switch (type.toLowerCase()) {\r\n case 'pendelbahn':\r\n return 'sis-pb';\r\n case 'gondelbahn':\r\n return 'sis-kb';\r\n case 'sesselbahn2':\r\n case 'sesselbahn3':\r\n case 'sesselbahn4':\r\n case 'sesselbahn6':\r\n return 'sis-sk';\r\n case 'standseilbahn':\r\n return 'sis-st';\r\n case 'pisteleicht':\r\n return 'sis-piste-leicht';\r\n case 'pistemittel':\r\n return 'sis-piste-mittel';\r\n case 'pisteschwer':\r\n return 'sis-piste-schwer';\r\n case 'pistefreeride':\r\n return 'sis-piste-freeride';\r\n case 'langlaufklassisch':\r\n return 'sis-langlauf-klassisch';\r\n case 'langlaufskating':\r\n return 'sis-langlauf-skating';\r\n }\r\n\r\n return `sis-${type}`;\r\n }\r\n\r\n return 'sis-placeholder';\r\n }\r\n}\r\n","import { CurveLatLngExpression, CurvePathData, CurveSVGCommand } from '@elfalem/leaflet-curve';\r\nconst curveParams: CurveSVGCommand[] = ['M', 'L', 'H', 'V', 'C', 'S', 'Q', 'T', 'Z']; // should be the same as CurveSVGCommand\r\n\r\nexport function parseCurveCoords(svgCoords: string | undefined): CurvePathData | null {\r\n if (!svgCoords || svgCoords === '') {\r\n return null;\r\n }\r\n\r\n const coords: Array = [];\r\n\r\n let cs = svgCoords;\r\n curveParams.forEach((letter) => {\r\n cs = cs.replace(new RegExp(letter, 'g'), ` ${letter} `);\r\n });\r\n cs = cs.replace(/[ ]{2,}/g, ' ').trim();\r\n\r\n const parts = cs.split(' ');\r\n parts.forEach((part) => {\r\n if (part.length === 1) {\r\n coords.push(`${part[0]}` as CurveSVGCommand);\r\n } else {\r\n const ns = part.split(',');\r\n if (ns.length === 1) {\r\n coords.push([Number(ns[0])]);\r\n } else {\r\n coords.push([Number(ns[0]), Number(ns[1])]);\r\n }\r\n }\r\n });\r\n return coords;\r\n}\r\n","import * as originalL from 'leaflet';\r\n\r\n// eslint-disable-next-line @typescript-eslint/no-namespace\r\ndeclare namespace extendedL {\r\n class Curve extends originalL.Path {\r\n /*\r\n * Return path\r\n */\r\n getPath(): Array>;\r\n /*\r\n * Set path\r\n */\r\n setPath(): Curve;\r\n /*\r\n * Get bounds\r\n */\r\n getBounds(): originalL.LatLngBounds;\r\n /*\r\n * Get center\r\n */\r\n getCenter(): originalL.LatLng;\r\n }\r\n /*\r\n * Drawing Bezier curves and other complex shapes.\r\n */\r\n function curve(path: any[], options?: originalL.PathOptions): Curve;\r\n}\r\n\r\nexport const L: typeof extendedL & typeof originalL = originalL as any;\r\n","import { HttpClient } from '@angular/common/http';\r\nimport { Injectable } from '@angular/core';\r\nimport { AngularFireAuth } from '@angular/fire/compat/auth';\r\nimport { AngularFireDatabase } from '@angular/fire/compat/database';\r\nimport { AngularFireMessaging } from '@angular/fire/compat/messaging';\r\nimport firebase from 'firebase/compat';\r\nimport { firstValueFrom } from 'rxjs';\r\nimport { takeUntil } from 'rxjs/operators';\r\nimport { Unsubscriber } from 'src/app/core/unsubscriber';\r\nimport { environment } from 'src/environments/environment';\r\n\r\n@Injectable({\r\n providedIn: 'root',\r\n})\r\nexport class FirebaseMessageAdapter extends Unsubscriber {\r\n private readonly firebaseApiUrl = '/firebasetoken';\r\n\r\n constructor(\r\n private httpClient: HttpClient,\r\n private afDatabase: AngularFireDatabase,\r\n private afAuth: AngularFireAuth,\r\n private afMessaging: AngularFireMessaging\r\n ) {\r\n super();\r\n\r\n if (!environment.isUiTest) {\r\n this.initialise();\r\n }\r\n }\r\n\r\n private initialise(): void {\r\n this.afMessaging.messages\r\n .pipe(takeUntil(this.onDestroy$))\r\n .subscribe((message) => this.handleForegroundMessage(message));\r\n\r\n this.setupServiceWorkerRegistration();\r\n\r\n this.connect();\r\n }\r\n\r\n private connect(): void {\r\n this.afMessaging.requestToken.pipe(takeUntil(this.onDestroy$)).subscribe({\r\n next: (token) => {\r\n if (token) {\r\n console.log('Notification permission granted.');\r\n console.log('Firebase token: ' + token);\r\n this.postTokenToCockpitApi(token);\r\n } else {\r\n console.log('Notification permission denied');\r\n }\r\n },\r\n error: (err) => {\r\n console.log('Unable to get permission to notify.', err.message);\r\n },\r\n });\r\n }\r\n\r\n private async postTokenToCockpitApi(token: string): Promise {\r\n const url = environment.baseUrlApi + this.firebaseApiUrl;\r\n await firstValueFrom(this.httpClient.post(url, { token }));\r\n\r\n await this.updateToken(token);\r\n }\r\n\r\n private async updateToken(token: any): Promise {\r\n const user = await firstValueFrom(this.afAuth.authState);\r\n if (!user) {\r\n return;\r\n }\r\n\r\n const data = { [user.uid]: token };\r\n await this.afDatabase.object('fcmTokens/').update(data);\r\n\r\n console.log('Run updateToken: ' + data);\r\n }\r\n\r\n private setupServiceWorkerRegistration() {\r\n navigator.serviceWorker.register('../../../firebase-messaging-sw.js');\r\n }\r\n\r\n private handleForegroundMessage(payload: firebase.messaging.MessagePayload) {\r\n // console.log('Foreground Message');\r\n // Message while app in foreground\r\n // TODO: toast? flashing icons? NO NOTIFICATION (bad design)\r\n }\r\n}\r\n","import { Injectable } from '@angular/core';\r\nimport { MsalBroadcastService, MsalService } from '@azure/msal-angular';\r\nimport { InteractionStatus } from '@azure/msal-browser';\r\nimport * as signalR from '@microsoft/signalr';\r\nimport { firstValueFrom, Subject } from 'rxjs';\r\nimport { filter, map, switchMap, take, takeUntil } from 'rxjs/operators';\r\nimport { Unsubscriber } from 'src/app/core/unsubscriber';\r\nimport { environment } from 'src/environments/environment';\r\n\r\n@Injectable({\r\n providedIn: 'root',\r\n})\r\nexport class SignalrMessageAdapter extends Unsubscriber {\r\n private readonly _messageReceived$ = new Subject();\r\n\r\n readonly messageReceived$ = this._messageReceived$.asObservable();\r\n\r\n constructor(private msalBroadcastService: MsalBroadcastService, private msalService: MsalService) {\r\n super();\r\n\r\n if (environment.isUiTest) {\r\n this.mockSignalRConnectionForUiTests();\r\n } else {\r\n this.msalBroadcastService.msalSubject$.pipe(take(1)).subscribe(() => {\r\n this.connect();\r\n });\r\n }\r\n }\r\n\r\n private connect(): void {\r\n const connection = new signalR.HubConnectionBuilder()\r\n .withUrl(environment.webapp + '/messagehub', {\r\n accessTokenFactory: () =>\r\n firstValueFrom(\r\n this.msalBroadcastService.inProgress$.pipe(\r\n filter((status) => status === InteractionStatus.None),\r\n switchMap(() =>\r\n this.msalService.acquireTokenSilent({\r\n scopes: environment.msalScopes,\r\n })\r\n ),\r\n map((token) => token.accessToken)\r\n )\r\n ),\r\n })\r\n .withAutomaticReconnect()\r\n .build();\r\n\r\n this.addHubConnectionListeners(connection);\r\n this.startConnection(connection);\r\n }\r\n\r\n private addHubConnectionListeners(hubConnection: signalR.HubConnection) {\r\n hubConnection.on('NewMessage', (data: any) => {\r\n this._messageReceived$.next(data);\r\n });\r\n }\r\n\r\n private startConnection(hubConnection: signalR.HubConnection) {\r\n if (hubConnection.state === signalR.HubConnectionState.Connected) {\r\n return;\r\n }\r\n console.log('Connecting to SignalR Hub...');\r\n\r\n hubConnection\r\n .start()\r\n .then(() => {\r\n console.log('SignalR connected.');\r\n })\r\n .catch((err) => {\r\n console.log('Error while starting connection: ' + err);\r\n });\r\n }\r\n\r\n private mockSignalRConnectionForUiTests(): void {\r\n window['uiTestSignalRMessage$']\r\n .pipe(takeUntil(this.onDestroy$))\r\n .subscribe((event: any) => this._messageReceived$.next(event));\r\n }\r\n}\r\n","/* eslint-disable max-classes-per-file */\r\nimport { BreakdownInfoActiveTextAdapter } from 'src/app/breakdowninfo/domain/breakdowninfo-activetext.adapter';\r\nimport { BreakdownInfoLibraryEntryAdapter } from 'src/app/breakdowninfo/domain/breakdowninfo-library-entry.adapter';\r\nimport { LogbookEntryAdapter } from 'src/app/core/components/logbook/domain/logbook-entry.adapter';\r\nimport {\r\n AlarmLibraryOverrideUpdatedEvent,\r\n BreakdownInfoActiveTextUpdatedEvent,\r\n BreakdownInfoLibraryUpdatedEvent,\r\n BusEvent,\r\n ClampingCountResetedEvent,\r\n EcoModeSettingsUpdatedEvent,\r\n EmailDeliveryRecipientUpsertedEvent,\r\n EmailDeliverySentEvent,\r\n FeatureUpdatedEvent,\r\n HtmlToPdfGeneratedEvent,\r\n InfoBannerMappingUpdatedEvent,\r\n InfoBannerUpdatedEvent,\r\n InfotextUpdatedEvent,\r\n LastSlopeControlUpdatedEvent,\r\n LedTickerUpdatedEvent,\r\n LogbookUpdatedEvent,\r\n MaintenanceUpdatedEvent,\r\n MarkerPositionUpdatedEvent,\r\n MediaCenterBlobStorageUpdatedEvent,\r\n MediaCenterPlaylistUpdatedEvent,\r\n MediaCenterScreenUpdatedEvent,\r\n MediaCenterSlideUpdatedEvent,\r\n MediaCenterThumbnailUpdatedEvent,\r\n MeteoInfoUpdatedEvent,\r\n OperatingInfoActiveTextUpdatedEvent,\r\n OperatingInfoLibraryUpdatedEvent,\r\n ParkingCockpitOrderUpdatedEvent,\r\n ParkingCurrentOccupancyUpdatedEvent,\r\n ParkingEditedEvent,\r\n ParkingExportMappingUpdatedEvent,\r\n ParkingStatusUpdatedEvent,\r\n RopewayAvailabilityTrendUpdatedEvent,\r\n RopewayBrakeReportUpdatedEvent,\r\n RopewaySettingsUpdatedEvent,\r\n SambesiWhatsUpMessagesUpdatedEvent,\r\n SisMapEditTokenUpdatedEvent,\r\n SisMediaAssetCockpitOrderUpdatedEvent,\r\n SisMediaAssetEditUpdatedEvent,\r\n SisMediaAssetExportMappingUpdatedEvent,\r\n SisMediaAssetOverrideUpdatedEvent,\r\n SisMediaOperatingHoursUpdatedEvent,\r\n SisMediaPlsUpdatedEvent,\r\n SisMediaSettingUpdatedEvent,\r\n SisMediaStatusUpdatedEvent,\r\n SlopesOperatingTimesUpdatedEvent,\r\n STnetStatusUpdatedEvent,\r\n STnetUpdatedEvent,\r\n TenantUpdatedEvent,\r\n TimetableImportUpdatedEvent,\r\n TimetableIntervalDayUpdatedEvent,\r\n TimetableJourneyUpdatedEvent,\r\n TimetableRealTimeDataUpdatedEvent,\r\n TimetableSeasonUpdatedEvent,\r\n UserAlarmConfigUpdatedEvent,\r\n UserAlarmEvent,\r\n UserManagementUserUpdatedEvent,\r\n UserPermissionUpdatedEvent,\r\n UserSettingsUpdatedEvent,\r\n WebcamImageUpdatedEvent,\r\n WebLinkCollectionUpdatedEvent,\r\n} from 'src/app/core/eventbus/events';\r\nimport { STnetStatusAdapter as STnetStatusAdapter } from 'src/app/core/stnet/stnet-status.adapter';\r\nimport { SisConverter } from 'src/app/core/utils/sis-converter';\r\nimport { TenantAdapter } from 'src/app/domain/tenant/tenant.adapter';\r\nimport { FeatureAdapter as FeatureManagementFeatureAdapter } from 'src/app/feature-management/domain/feature.adapter';\r\nimport { LedTickerAdapter } from 'src/app/led-ticker/domain/led-ticker.adapter';\r\nimport { AlarmLibraryItemAdapter } from 'src/app/maps/alarmlibrary/domain/alarmlibrary-item.adapter';\r\nimport { UserAlarmConfigAdapter } from 'src/app/maps/alarmlibrary/domain/useralarmconfig.adapter';\r\nimport { RopewayEcoModeSettingsAdapter } from 'src/app/maps/domain/ropeway-ecomode/ropeway-ecomode-settings.adapter';\r\nimport { RopewaySettingsAdapter } from 'src/app/maps/domain/ropeway-settings/ropeway-settings.adapter';\r\nimport { UserAlarmAdapter } from 'src/app/maps/livedata/user-alarm.adapter';\r\nimport { PlaylistAdapter } from 'src/app/media-center/playlists/domain/playlist.adapter';\r\nimport { ScreenAdapter } from 'src/app/media-center/screens/domain/screen.adapter';\r\nimport { SlideAdapter } from 'src/app/media-center/slides/domain/slide.adapter';\r\nimport { MeteoInfoItemAdapter } from 'src/app/meteo-info/domain/meteo-info-item.adapter';\r\nimport { OperatingInfoEntryAdapter } from 'src/app/operating-info/domain/operating-info-entry.adapter';\r\nimport { SisMediaAssetOverrideEntryAdapter } from 'src/app/sismedia/sismedia-asset-override/domain/sismedia-asset-override-entry.adapter';\r\nimport { SisMediaSettingAdapter } from 'src/app/sismedia-setting/sismedia-setting.adapter';\r\nimport { STnetItemAdapter } from 'src/app/stnet/domain/stnet-item.adapter';\r\nimport { TimetableIntervalDayAdapter } from 'src/app/timetable/domain/timetable-interval-day.adapter';\r\nimport { TimetableSeasonAdapter } from 'src/app/timetable/domain/timetable-season.adapter';\r\nimport { UserAdapter } from 'src/app/user-management/domain/user.adapter';\r\n\r\nexport const EventAdapterRegistry = new Map BusEvent>();\r\n\r\nexport class UserAlarmEventAdapter {\r\n static adapt(payload: string): UserAlarmEvent {\r\n const event = new UserAlarmEvent();\r\n const parsed = JSON.parse(payload);\r\n event.alarm = UserAlarmAdapter.adapt([parsed])[0];\r\n return event;\r\n }\r\n}\r\nEventAdapterRegistry.set('UserAlarmEvent', UserAlarmEventAdapter.adapt);\r\n\r\nexport class UserSettingsUpdatedEventAdapter {\r\n static adapt(payload: string): UserSettingsUpdatedEvent {\r\n const event = new UserSettingsUpdatedEvent();\r\n const parsed = JSON.parse(payload);\r\n event.userSettings = parsed;\r\n event.userSettings.lastNewsViewed = parsed.lastNewsViewed != null ? new Date(parsed.lastNewsViewed) : null;\r\n event.updateSuccessful = parsed.updateSuccessful;\r\n event.updaterId = parsed.updaterId;\r\n return event;\r\n }\r\n}\r\nEventAdapterRegistry.set('UserSettingsUpdatedEvent', UserSettingsUpdatedEventAdapter.adapt);\r\n\r\nexport class UserAlarmConfigUpdatedEventAdapter {\r\n static adapt(payload: string): UserAlarmConfigUpdatedEvent {\r\n const event = new UserAlarmConfigUpdatedEvent();\r\n event.userAlarmConfig = UserAlarmConfigAdapter.adapt([JSON.parse(payload)])[0];\r\n return event;\r\n }\r\n}\r\nEventAdapterRegistry.set('UserAlarmConfigUpdatedEvent', UserAlarmConfigUpdatedEventAdapter.adapt);\r\n\r\nexport class BreakdownInfoActiveTextUpdatedEventAdapter {\r\n static adapt(payload: string): BreakdownInfoActiveTextUpdatedEvent {\r\n const event = new BreakdownInfoActiveTextUpdatedEvent();\r\n const parsed = JSON.parse(payload);\r\n event.breakdownInfoActiveTexts = BreakdownInfoActiveTextAdapter.adapt(parsed.changedActiveTexts);\r\n event.updateSuccessful = parsed.updateSuccessful;\r\n return event;\r\n }\r\n}\r\nEventAdapterRegistry.set('BreakdownInfoActiveTextUpdatedEvent', BreakdownInfoActiveTextUpdatedEventAdapter.adapt);\r\n\r\nexport class BreakdownInfoLibraryUpdatedEventAdapter {\r\n static adapt(payload: string): BreakdownInfoLibraryUpdatedEvent {\r\n const event = new BreakdownInfoLibraryUpdatedEvent();\r\n const parsed = JSON.parse(payload);\r\n event.breakdownInfo = BreakdownInfoLibraryEntryAdapter.adapt([parsed.breakdownInfo])[0];\r\n event.removed = parsed.removed;\r\n return event;\r\n }\r\n}\r\nEventAdapterRegistry.set('BreakdownInfoLibraryUpdatedEvent', BreakdownInfoLibraryUpdatedEventAdapter.adapt);\r\n\r\nexport class OperatingInfoActiveTextUpdatedEventAdapter {\r\n static adapt(payload: string): OperatingInfoActiveTextUpdatedEvent {\r\n const event = new OperatingInfoActiveTextUpdatedEvent();\r\n const parsed = JSON.parse(payload);\r\n event.operatingInfoEntries = OperatingInfoEntryAdapter.adapt(parsed.operatingInfoEntries);\r\n event.changedBy = parsed.changedBy;\r\n event.updateSuccessful = parsed.updateSuccessful;\r\n event.tenantGuid = parsed.tenantGuid;\r\n return event;\r\n }\r\n}\r\nEventAdapterRegistry.set('OperatingInfoActiveTextUpdatedEvent', OperatingInfoActiveTextUpdatedEventAdapter.adapt);\r\n\r\nexport class OperatingInfoLibraryUpdatedEventAdapter {\r\n static adapt(payload: string): OperatingInfoLibraryUpdatedEvent {\r\n const event = new OperatingInfoLibraryUpdatedEvent();\r\n const parsed = JSON.parse(payload);\r\n event.operatingInfoLibraryEntry = OperatingInfoEntryAdapter.adapt([parsed.operatingInfoEntry])[0];\r\n event.removed = parsed.removed;\r\n event.changedBy = parsed.changedBy;\r\n event.tenantGuid = parsed.tenantGuid;\r\n return event;\r\n }\r\n}\r\nEventAdapterRegistry.set('OperatingInfoLibraryUpdatedEvent', OperatingInfoLibraryUpdatedEventAdapter.adapt);\r\n\r\nexport class MaintenanceUpdatedEventAdapter {\r\n static adapt(payload: string): MaintenanceUpdatedEvent {\r\n const event = new MaintenanceUpdatedEvent();\r\n const parsed = JSON.parse(payload);\r\n event.tenantSisIdsUnderMaintenance = parsed;\r\n return event;\r\n }\r\n}\r\nEventAdapterRegistry.set('MaintenanceUpdatedEvent', MaintenanceUpdatedEventAdapter.adapt);\r\n\r\nexport class AlarmLibraryOverrideUpdatedEventAdapter {\r\n static adapt(payload: string): AlarmLibraryOverrideUpdatedEvent {\r\n const event = new AlarmLibraryOverrideUpdatedEvent();\r\n const parsed = JSON.parse(payload);\r\n event.alarmLibraryEntry = AlarmLibraryItemAdapter.adapt([parsed.alarmLibraryOverrideEntry])[0];\r\n event.tenantGuid = parsed.tenantGuid;\r\n event.successful = parsed.updateSuccessful;\r\n return event;\r\n }\r\n}\r\nEventAdapterRegistry.set('AlarmLibraryOverrideUpdatedEvent', AlarmLibraryOverrideUpdatedEventAdapter.adapt);\r\n\r\nexport class SisMediaStatusUpdatedEventAdapter {\r\n static adapt(payload: string): SisMediaStatusUpdatedEvent {\r\n const event = new SisMediaStatusUpdatedEvent();\r\n const parsed = JSON.parse(payload);\r\n event.guid = parsed.assetGuid;\r\n event.tenantGuid = parsed.tenantGuid;\r\n event.status = parsed.status;\r\n event.subStatus = parsed.subStatus;\r\n event.activeStatus = parsed.activeStatus;\r\n event.statusOverrideActive = parsed.statusOverrideActive;\r\n event.lastStatusChange = new Date(parsed.lastStatusChange);\r\n event.updateSuccessful = parsed.updateSuccessful;\r\n event.failReason = parsed.failReason;\r\n event.assetCategory = parsed.assetCategory;\r\n event.changedBy = parsed.changedBy;\r\n return event;\r\n }\r\n}\r\nEventAdapterRegistry.set('SisMediaStatusUpdatedEvent', SisMediaStatusUpdatedEventAdapter.adapt);\r\n\r\nexport class SisMediaPlsUpdatedEventAdapter {\r\n static adapt(payload: string): SisMediaPlsUpdatedEvent {\r\n const event = new SisMediaPlsUpdatedEvent();\r\n const parsed = JSON.parse(payload);\r\n event.assetGuid = parsed.AssetGuid;\r\n event.assetStatus = parsed.AssetStatus;\r\n event.successfullyUpdatedDisplays = parsed.SuccessfullyUpdatedDisplays;\r\n event.unsuccessfullyUpdatedDisplays = parsed.UnsuccessfullyUpdatedDisplays;\r\n event.displaysInSimulationMode = parsed.DisplaysInSimulationMode;\r\n return event;\r\n }\r\n}\r\nEventAdapterRegistry.set('SisMediaPlsUpdatedEvent', SisMediaPlsUpdatedEventAdapter.adapt);\r\n\r\nexport class MediaCenterSlideUpdatedEventAdapter {\r\n static adapt(payload: string): MediaCenterSlideUpdatedEvent {\r\n const event = new MediaCenterSlideUpdatedEvent();\r\n const parsed = JSON.parse(payload);\r\n event.slide = parsed.slide ? SlideAdapter.adapt([parsed.slide])[0] : undefined;\r\n event.removed = parsed.removed;\r\n event.success = parsed.success;\r\n event.settings = parsed.slideSettingsUpdated;\r\n event.changedBy = parsed.changedBy;\r\n event.tenantGuid = parsed.tenantGuid;\r\n return event;\r\n }\r\n}\r\nEventAdapterRegistry.set('MediaCenterSlideUpdatedEvent', MediaCenterSlideUpdatedEventAdapter.adapt);\r\n\r\nexport class MediaCenterScreenUpdatedEventAdapter {\r\n static adapt(payload: string): MediaCenterScreenUpdatedEvent {\r\n const event = new MediaCenterScreenUpdatedEvent();\r\n const parsed = JSON.parse(payload);\r\n event.screens = parsed.screens ? ScreenAdapter.adapt(parsed.screens) : [];\r\n event.removed = parsed.removed;\r\n event.success = parsed.success;\r\n event.changedBy = parsed.changedBy;\r\n event.tenantGuid = parsed.tenantGuid;\r\n return event;\r\n }\r\n}\r\nEventAdapterRegistry.set('MediaCenterScreenUpdatedEvent', MediaCenterScreenUpdatedEventAdapter.adapt);\r\n\r\nexport class MediaCenterPlaylistUpdatedEventAdapter {\r\n static adapt(payload: string): MediaCenterPlaylistUpdatedEvent {\r\n const event = new MediaCenterPlaylistUpdatedEvent();\r\n const parsed = JSON.parse(payload);\r\n event.playlist = parsed.playlist ? PlaylistAdapter.adapt([parsed.playlist])[0] : undefined;\r\n event.removed = parsed.removed;\r\n event.success = parsed.success;\r\n event.changedBy = parsed.changedBy;\r\n event.tenantGuid = parsed.tenantGuid;\r\n return event;\r\n }\r\n}\r\nEventAdapterRegistry.set('MediaCenterPlaylistUpdatedEvent', MediaCenterPlaylistUpdatedEventAdapter.adapt);\r\n\r\nexport class MediaCenterThumbnailUpdatedEventAdapter {\r\n static adapt(payload: string): MediaCenterThumbnailUpdatedEvent {\r\n const event = new MediaCenterThumbnailUpdatedEvent();\r\n const parsed = JSON.parse(payload);\r\n event.url = parsed.url;\r\n event.thumbnailUrl = parsed.thumbnailUrl;\r\n return event;\r\n }\r\n}\r\nEventAdapterRegistry.set('MediaCenterThumbnailUpdatedEvent', MediaCenterThumbnailUpdatedEventAdapter.adapt);\r\n\r\nexport class MediaCenterBlobStorageUpdatedEventAdapter {\r\n static adapt(payload: string): MediaCenterBlobStorageUpdatedEvent {\r\n const event = new MediaCenterBlobStorageUpdatedEvent();\r\n const parsed = JSON.parse(payload);\r\n event.fileName = parsed.fileName;\r\n event.successful = parsed.successful;\r\n event.uploadedBy = parsed.uploadedBy;\r\n return event;\r\n }\r\n}\r\nEventAdapterRegistry.set('MediaCenterBlobStorageUpdatedEvent', MediaCenterBlobStorageUpdatedEventAdapter.adapt);\r\n\r\nexport class InfoBannerUpdatedEventAdapter {\r\n static adapt(payload: string): InfoBannerUpdatedEvent {\r\n const event = new InfoBannerUpdatedEvent();\r\n const parsed = JSON.parse(payload);\r\n event.infoBanner = parsed.infoBanner;\r\n event.updateSuccessful = parsed.updateSuccessful;\r\n event.removed = parsed.removed;\r\n return event;\r\n }\r\n}\r\nEventAdapterRegistry.set('InfoBannerUpdatedEvent', InfoBannerUpdatedEventAdapter.adapt);\r\n\r\nexport class InfoBannerMappingUpdatedEventAdapter {\r\n static adapt(payload: string): InfoBannerMappingUpdatedEvent {\r\n const event = new InfoBannerMappingUpdatedEvent();\r\n const parsed = JSON.parse(payload);\r\n event.infoBannerMappings = parsed.infoBannerMappings;\r\n event.infoBanners = parsed.infoBanners;\r\n event.tenantGuid = parsed.tenantGuid;\r\n event.updateSuccessful = parsed.updateSuccessful;\r\n return event;\r\n }\r\n}\r\nEventAdapterRegistry.set('InfoBannerMappingUpdatedEvent', InfoBannerMappingUpdatedEventAdapter.adapt);\r\n\r\nexport class InfotextUpdatedEventAdapter {\r\n static adapt(payload: string): InfotextUpdatedEvent {\r\n const event = new InfotextUpdatedEvent();\r\n const parsed = JSON.parse(payload);\r\n event.guid = parsed.infotextEntry.guid;\r\n event.categoryId = parsed.infotextEntry.categoryId;\r\n event.textDe = parsed.infotextEntry.textDe;\r\n event.textEn = parsed.infotextEntry.textEn;\r\n event.textFr = parsed.infotextEntry.textFr;\r\n event.textIt = parsed.infotextEntry.textIt;\r\n event.updateSuccessful = parsed.updateSuccessful;\r\n event.changedBy = parsed.infotextEntry.changedBy;\r\n event.failReason = parsed.failReason;\r\n return event;\r\n }\r\n}\r\nEventAdapterRegistry.set('InfotextUpdatedEvent', InfotextUpdatedEventAdapter.adapt);\r\n\r\nexport class LastSlopeControlEventAdapter {\r\n static adapt(payload: string): LastSlopeControlUpdatedEvent {\r\n const event = new LastSlopeControlUpdatedEvent();\r\n const parsed = JSON.parse(payload);\r\n event.guid = parsed.guid;\r\n event.zone = parsed.zone;\r\n event.times = parsed.times;\r\n event.activeTime = parsed.activeTime;\r\n event.changedBy = parsed.changedBy;\r\n event.updateSuccessful = parsed.updateSuccessful;\r\n return event;\r\n }\r\n}\r\nEventAdapterRegistry.set('LastSlopeControlUpdatedEvent', LastSlopeControlEventAdapter.adapt);\r\n\r\nexport class TimetableJourneyUpdatedEventAdapter {\r\n static adapt(payload: string): TimetableJourneyUpdatedEvent {\r\n const event = new TimetableJourneyUpdatedEvent();\r\n const parsed = JSON.parse(payload);\r\n event.timetableJourney = parsed.timetableJourney;\r\n event.tenantGuid = parsed.tenantGuid;\r\n event.deleted = parsed.deleted;\r\n event.changedBy = parsed.changedBy;\r\n event.updateSuccessful = parsed.updateSuccessful;\r\n return event;\r\n }\r\n}\r\nEventAdapterRegistry.set('TimetableJourneyUpdatedEvent', TimetableJourneyUpdatedEventAdapter.adapt);\r\n\r\nexport class TimetableSeasonUpdatedEventAdapter {\r\n static adapt(payload: string): TimetableSeasonUpdatedEvent {\r\n const event = new TimetableSeasonUpdatedEvent();\r\n const parsed = JSON.parse(payload);\r\n event.timetableSeason = TimetableSeasonAdapter.adapt([parsed.timetableSeason])[0];\r\n event.tenantGuid = parsed.tenantGuid;\r\n event.changedBy = parsed.changedBy;\r\n event.updateSuccessful = parsed.updateSuccessful;\r\n return event;\r\n }\r\n}\r\nEventAdapterRegistry.set('TimetableSeasonUpdatedEvent', TimetableSeasonUpdatedEventAdapter.adapt);\r\n\r\nexport class TimetableImportUpdatedEventAdapter {\r\n static adapt(payload: string): TimetableImportUpdatedEvent {\r\n const event = new TimetableImportUpdatedEvent();\r\n const parsed = JSON.parse(payload);\r\n event.trackGuid = parsed.trackGuid;\r\n event.tenantGuid = parsed.tenantGuid;\r\n event.changedBy = parsed.changedBy;\r\n event.updateSuccessful = parsed.updateSuccessful;\r\n return event;\r\n }\r\n}\r\nEventAdapterRegistry.set('TimetableImportUpdatedEvent', TimetableImportUpdatedEventAdapter.adapt);\r\n\r\nexport class TimetableIntervalDayUpdatedEventAdapter {\r\n static adapt(payload: string): TimetableIntervalDayUpdatedEvent {\r\n const event = new TimetableIntervalDayUpdatedEvent();\r\n const parsed = JSON.parse(payload);\r\n event.timetableIntervalDay = TimetableIntervalDayAdapter.adapt(parsed.timetableIntervalDay);\r\n event.tenantGuid = parsed.tenantGuid;\r\n event.changedBy = parsed.changedBy;\r\n event.updateSuccessful = parsed.updateSuccessful;\r\n return event;\r\n }\r\n}\r\nEventAdapterRegistry.set('TimetableIntervalDayUpdatedEvent', TimetableIntervalDayUpdatedEventAdapter.adapt);\r\n\r\nexport class SisMediaAssetOverrideEventAdapter {\r\n static adapt(payload: string): SisMediaAssetOverrideUpdatedEvent {\r\n const event = new SisMediaAssetOverrideUpdatedEvent();\r\n const parsed = JSON.parse(payload);\r\n event.sisMediaAssetOverrideEntry = SisMediaAssetOverrideEntryAdapter.adapt([parsed.sisMediaAssetOverrideEntry])[0];\r\n event.operation = parsed.operation;\r\n event.changedBy = parsed.changedBy;\r\n event.lastChanged = parsed.lastChanged;\r\n event.updateSuccessful = parsed.updateSuccessful;\r\n return event;\r\n }\r\n}\r\nEventAdapterRegistry.set('SisMediaAssetOverrideUpdatedEvent', SisMediaAssetOverrideEventAdapter.adapt);\r\n\r\nexport class SisMediaAssetEditUpdatedEventAdapter {\r\n static adapt(payload: string): SisMediaAssetEditUpdatedEvent {\r\n const event = new SisMediaAssetEditUpdatedEvent();\r\n Object.assign(event, JSON.parse(payload));\r\n return event;\r\n }\r\n}\r\nEventAdapterRegistry.set('SisMediaAssetEditUpdatedEvent', SisMediaAssetEditUpdatedEventAdapter.adapt);\r\n\r\nexport class SisMediaAssetCockpitOrderUpdatedEventAdapter {\r\n static adapt(payload: string): SisMediaAssetCockpitOrderUpdatedEvent {\r\n const event = new SisMediaAssetCockpitOrderUpdatedEvent();\r\n Object.assign(event, JSON.parse(payload));\r\n return event;\r\n }\r\n}\r\nEventAdapterRegistry.set('SisMediaAssetCockpitOrderUpdatedEvent', SisMediaAssetCockpitOrderUpdatedEventAdapter.adapt);\r\n\r\nexport class SisMediaAssetExportMappingEventAdapter {\r\n static adapt(payload: string): SisMediaAssetExportMappingUpdatedEvent {\r\n const event = new SisMediaAssetExportMappingUpdatedEvent();\r\n const parsed = JSON.parse(payload);\r\n event.assetCategory = parsed.assetCategory;\r\n event.assetGuid = parsed.assetGuid;\r\n event.exportGuids = parsed.exportGuids;\r\n event.changedBy = parsed.changedBy;\r\n event.updateSuccessful = parsed.updateSuccessful;\r\n event.tenantGuid = parsed.tenantGuid;\r\n return event;\r\n }\r\n}\r\nEventAdapterRegistry.set('SisMediaAssetExportMappingUpdatedEvent', SisMediaAssetExportMappingEventAdapter.adapt);\r\n\r\nexport class UserPermissionUpdatedEventAdapter {\r\n static adapt(payload: string): UserPermissionUpdatedEvent {\r\n const event = new UserPermissionUpdatedEvent();\r\n const parsed = JSON.parse(payload);\r\n event.userGuid = parsed.userGuid;\r\n event.tenantGuid = parsed.tenantGuid;\r\n event.featureId = parsed.featureId;\r\n event.featureAccessLevel = parsed.featureAccessLevel;\r\n event.adminOnly = parsed.adminOnly;\r\n event.changedBy = parsed.changedBy;\r\n return event;\r\n }\r\n}\r\nEventAdapterRegistry.set('UserPermissionUpdatedEvent', UserPermissionUpdatedEventAdapter.adapt);\r\n\r\nexport class MeteoInfoUpdatedEventAdapter {\r\n static adapt(payload: string): MeteoInfoUpdatedEvent {\r\n const event = new MeteoInfoUpdatedEvent();\r\n const parsed = JSON.parse(payload);\r\n event.meteoInfoItems = MeteoInfoItemAdapter.adapt(parsed.updatedMeteoInfos);\r\n event.updateSuccessful = parsed.updateSuccessful;\r\n event.tenantGuid = parsed.tenantGuid;\r\n event.changedBy = parsed.changedBy;\r\n event.meteoInfoItems.forEach((m) => {\r\n m.changedBy = parsed.changedBy;\r\n m.changedByEmail = parsed.changedByEmail;\r\n m.lastChange = SisConverter.toDateOrUndefined(parsed.lastChange);\r\n });\r\n return event;\r\n }\r\n}\r\nEventAdapterRegistry.set('MeteoInfoUpdatedEvent', MeteoInfoUpdatedEventAdapter.adapt);\r\n\r\nexport class STnetDataUpdatedEventAdapter {\r\n static adapt(payload: string): STnetUpdatedEvent {\r\n const event = new STnetUpdatedEvent();\r\n const parsed = JSON.parse(payload);\r\n event.stnetItem = STnetItemAdapter.adapt(parsed.sTnetData);\r\n return event;\r\n }\r\n}\r\nEventAdapterRegistry.set('STnetDataUpdatedEvent', STnetDataUpdatedEventAdapter.adapt);\r\n\r\nexport class STnetStatusUpdatedEventAdapter {\r\n static adapt(payload: string): STnetStatusUpdatedEvent {\r\n const event = new STnetStatusUpdatedEvent();\r\n const parsed = JSON.parse(payload);\r\n event.tenantGuid = parsed.tenantGuid;\r\n event.status = STnetStatusAdapter.adapt(parsed.status);\r\n return event;\r\n }\r\n}\r\nEventAdapterRegistry.set('STnetStatusUpdatedEvent', STnetStatusUpdatedEventAdapter.adapt);\r\n\r\nexport class LogbookUpdatedEventAdapter {\r\n static adapt(payload: string): LogbookUpdatedEvent {\r\n const event = new LogbookUpdatedEvent();\r\n const parsed = JSON.parse(payload);\r\n event.logbookEntry = LogbookEntryAdapter.adapt([parsed])[0];\r\n return event;\r\n }\r\n}\r\nEventAdapterRegistry.set('LogbookUpdatedEvent', LogbookUpdatedEventAdapter.adapt);\r\n\r\nexport class LedTickerUpdatedEventAdapter {\r\n static adapt(payload: string): LedTickerUpdatedEvent {\r\n const event = new LedTickerUpdatedEvent();\r\n const parsed = JSON.parse(payload);\r\n event.ledTicker = LedTickerAdapter.adapt(parsed)[0];\r\n event.tenantGuid = parsed.tenantGuid;\r\n event.changedBy = parsed.changedBy;\r\n event.updateSuccessful = parsed.updateSuccessful;\r\n return event;\r\n }\r\n}\r\nEventAdapterRegistry.set('LedTickerUpdatedEvent', LedTickerUpdatedEventAdapter.adapt);\r\n\r\nexport class SisMediaOperatingHoursUpdatedEventAdapter {\r\n static adapt(payload: string): SisMediaOperatingHoursUpdatedEvent {\r\n const event = new SisMediaOperatingHoursUpdatedEvent();\r\n const parsed = JSON.parse(payload);\r\n event.operatingHoursEnabled = parsed.operatingHoursEnabled;\r\n event.operatingHours = parsed.operatingHours;\r\n event.assetGuid = parsed.assetGuid;\r\n event.assetCategory = parsed.assetCategory;\r\n event.tenantGuid = parsed.tenantGuid;\r\n event.changedBy = parsed.changedBy;\r\n event.updateSuccessful = parsed.updateSuccessful;\r\n return event;\r\n }\r\n}\r\nEventAdapterRegistry.set('SisMediaOperatingHoursUpdatedEvent', SisMediaOperatingHoursUpdatedEventAdapter.adapt);\r\n\r\nexport class HtmlToPdfGeneratedEventAdapter {\r\n static adapt(payload: string): HtmlToPdfGeneratedEvent {\r\n const event = new HtmlToPdfGeneratedEvent();\r\n const parsed = JSON.parse(payload);\r\n event.tenantGuid = parsed.tenantGuid;\r\n event.pdfName = parsed.pdfName;\r\n event.pdfUrl = decodeURI(parsed.pdfUrl);\r\n event.successful = parsed.successful;\r\n event.changedBy = parsed.changedBy;\r\n return event;\r\n }\r\n}\r\nEventAdapterRegistry.set('HtmlToPdfGeneratedEvent', HtmlToPdfGeneratedEventAdapter.adapt);\r\n\r\nexport class EmailDeliverySentEventAdapter {\r\n static adapt(payload: string): EmailDeliverySentEvent {\r\n const event = new EmailDeliverySentEvent();\r\n const parsed = JSON.parse(payload);\r\n event.tenantGuid = parsed.tenantGuid;\r\n event.emailText = parsed.emailText;\r\n event.subjectText = parsed.subjectText;\r\n event.attachmentGuid = parsed.attachmentGuid;\r\n event.changedBy = parsed.changedBy;\r\n event.successful = parsed.successful;\r\n return event;\r\n }\r\n}\r\nEventAdapterRegistry.set('EmailDeliverySentEvent', EmailDeliverySentEventAdapter.adapt);\r\n\r\nexport class EmailDeliveryRecipientUpsertedEventAdapter {\r\n static adapt(payload: string): EmailDeliveryRecipientUpsertedEvent {\r\n const event = new EmailDeliveryRecipientUpsertedEvent();\r\n const parsed = JSON.parse(payload);\r\n event.tenantGuid = parsed.tenantGuid;\r\n event.recipientGuid = parsed.recipientGuid;\r\n event.name = parsed.name;\r\n event.email = parsed.email;\r\n event.location = parsed.location;\r\n event.deleted = parsed.deleted;\r\n event.changedBy = parsed.changedBy;\r\n event.successful = parsed.successful;\r\n return event;\r\n }\r\n}\r\nEventAdapterRegistry.set('EmailDeliveryRecipientUpsertedEvent', EmailDeliveryRecipientUpsertedEventAdapter.adapt);\r\n\r\nexport class EcoModeSettingsUpdatedEventAdapter {\r\n static adapt(payload: string): EcoModeSettingsUpdatedEvent {\r\n const event = new EcoModeSettingsUpdatedEvent();\r\n const parsed = JSON.parse(payload);\r\n event.tenantGuid = parsed.tenantGuid;\r\n event.ropewayEcoModeSettings = RopewayEcoModeSettingsAdapter.adapt([parsed.ropewayEcoModeSettings])[0];\r\n event.changedBy = parsed.changedBy;\r\n event.moduleUpdateSuccessful = parsed.moduleUpdateSuccessful;\r\n event.updateSuccessful = parsed.updateSuccessful;\r\n return event;\r\n }\r\n}\r\nEventAdapterRegistry.set('EcoModeSettingsUpdatedEvent', EcoModeSettingsUpdatedEventAdapter.adapt);\r\n\r\nexport class RopewaySettingsUpdatedEventAdapter {\r\n static adapt(payload: string): RopewaySettingsUpdatedEvent {\r\n const event = new RopewaySettingsUpdatedEvent();\r\n const parsed = JSON.parse(payload);\r\n event.ropewaySettings = RopewaySettingsAdapter.adapt(parsed.ropewaySettings);\r\n event.changedBy = parsed.changedBy;\r\n event.updateSuccessful = parsed.updateSuccessful;\r\n return event;\r\n }\r\n}\r\nEventAdapterRegistry.set('RopewaySettingsUpdatedEvent', RopewaySettingsUpdatedEventAdapter.adapt);\r\n\r\nexport class UserManagementUserUpdatedEventAdapter {\r\n static adapt(payload: string): UserManagementUserUpdatedEvent {\r\n const event = new UserManagementUserUpdatedEvent();\r\n const parsed = JSON.parse(payload);\r\n event.user = UserAdapter.adapt([parsed.user])[0];\r\n event.managedTenants = parsed.managedTenants;\r\n event.changedBy = parsed.changedBy;\r\n event.tenantGuid = parsed.tenantGuid;\r\n event.updateSuccessful = parsed.updateSuccessful;\r\n return event;\r\n }\r\n}\r\nEventAdapterRegistry.set('UserManagementUserUpdatedEvent', UserManagementUserUpdatedEventAdapter.adapt);\r\n\r\nexport class SambesiWhatsUpMessagesUpdatedEventAdapter {\r\n constructor() {}\r\n static adapt(payload: string): SambesiWhatsUpMessagesUpdatedEvent {\r\n const event = new SambesiWhatsUpMessagesUpdatedEvent();\r\n const parsed = JSON.parse(payload);\r\n event.tenantGuid = parsed.tenantGuid;\r\n event.updateSuccessful = parsed.updateSuccessful;\r\n event.ropewaySisIds = parsed.ropewaySisIds;\r\n event.changedBy = parsed.changedBy;\r\n return event;\r\n }\r\n}\r\nEventAdapterRegistry.set('SambesiWhatsUpUpdatedEvent', SambesiWhatsUpMessagesUpdatedEventAdapter.adapt);\r\n\r\nexport class MarkerPositionUpdatedEventAdapter {\r\n static adapt(payload: string): MarkerPositionUpdatedEvent {\r\n const event = new MarkerPositionUpdatedEvent();\r\n const parsed = JSON.parse(payload);\r\n event.changedBy = parsed.changedBy;\r\n event.tenantGuid = parsed.tenantGuid;\r\n event.markerGuid = parsed.markerGuid;\r\n event.successful = parsed.successful;\r\n return event;\r\n }\r\n}\r\nEventAdapterRegistry.set('MarkerPositionUpdatedEvent', MarkerPositionUpdatedEventAdapter.adapt);\r\n\r\nexport class TimetableRealTimeDataUpdatedEventAdapter {\r\n static adapt(payload: string): TimetableRealTimeDataUpdatedEvent {\r\n const event = new TimetableRealTimeDataUpdatedEvent();\r\n const parsed = JSON.parse(payload);\r\n event.tenantGuid = parsed.tenantGuid;\r\n event.trackGuid = parsed.trackGuid;\r\n event.seasonGuid = parsed.seasonGuid;\r\n event.realTimeDatas = parsed.realTimeDatas;\r\n event.lastSuccessfulRealTimeImport = new Date(parsed.lastSuccessfulRealTimeImport);\r\n return event;\r\n }\r\n}\r\nEventAdapterRegistry.set('TimetableRealTimeDataUpdatedEvent', TimetableRealTimeDataUpdatedEventAdapter.adapt);\r\n\r\nexport class SlopesOperatingTimesUpdatedEventAdapter {\r\n static adapt(payload: string): SlopesOperatingTimesUpdatedEvent {\r\n const event = new SlopesOperatingTimesUpdatedEvent();\r\n const parsed = JSON.parse(payload);\r\n Object.assign(event, parsed);\r\n return event;\r\n }\r\n}\r\nEventAdapterRegistry.set('SlopesOperatingTimesUpdatedEvent', SlopesOperatingTimesUpdatedEventAdapter.adapt);\r\n\r\nexport class WebLinkCollectionUpdatedEventAdapter {\r\n static adapt(payload: string): WebLinkCollectionUpdatedEvent {\r\n const event = new WebLinkCollectionUpdatedEvent();\r\n Object.assign(event, JSON.parse(payload));\r\n return event;\r\n }\r\n}\r\nEventAdapterRegistry.set('WebLinkCollectionUpdatedEvent', WebLinkCollectionUpdatedEventAdapter.adapt);\r\n\r\nexport class SisMapEditTokenUpdatedEventAdapter {\r\n static adapt(payload: string): SisMapEditTokenUpdatedEvent {\r\n const event = new SisMapEditTokenUpdatedEvent();\r\n Object.assign(event, JSON.parse(payload));\r\n return event;\r\n }\r\n}\r\nEventAdapterRegistry.set('SisMapEditTokenUpdatedEvent', SisMapEditTokenUpdatedEventAdapter.adapt);\r\n\r\nexport class TenantUpdatedEventAdapter {\r\n static adapt(payload: string): TenantUpdatedEvent {\r\n const event = new TenantUpdatedEvent();\r\n const parsed = JSON.parse(payload);\r\n event.changedBy = parsed.changedBy;\r\n event.updateSuccessful = parsed.updateSuccessful;\r\n event.tenant = TenantAdapter.adapt([parsed.tenant])[0];\r\n return event;\r\n }\r\n}\r\nEventAdapterRegistry.set('TenantUpdatedEvent', TenantUpdatedEventAdapter.adapt);\r\n\r\nexport class FeatureUpdatedEventAdapter {\r\n static adapt(payload: string): FeatureUpdatedEvent {\r\n const event = new FeatureUpdatedEvent();\r\n const parsed = JSON.parse(payload);\r\n event.changedBy = parsed.changedBy;\r\n event.tenantGuid = parsed.tenantGuid;\r\n event.updateSuccessful = parsed.updateSuccessful;\r\n event.features = FeatureManagementFeatureAdapter.adapt(parsed.features);\r\n return event;\r\n }\r\n}\r\nEventAdapterRegistry.set('FeatureUpdatedEvent', FeatureUpdatedEventAdapter.adapt);\r\n\r\nexport class RopewayAvailabilityTrendUpdatedEventAdapter {\r\n static adapt(payload: string): RopewayAvailabilityTrendUpdatedEvent {\r\n const event = new RopewayAvailabilityTrendUpdatedEvent();\r\n const parsed = JSON.parse(payload);\r\n Object.assign(event, parsed);\r\n return event;\r\n }\r\n}\r\nEventAdapterRegistry.set('RopewayAvailabilityTrendUpdatedEvent', RopewayAvailabilityTrendUpdatedEventAdapter.adapt);\r\n\r\nexport class ClampingCountResetedEventAdapter {\r\n static adapt(payload: string): ClampingCountResetedEvent {\r\n const event = new ClampingCountResetedEvent();\r\n const parsed = JSON.parse(payload);\r\n event.changedBy = parsed.changedBy;\r\n event.ropewayGuid = parsed.ropewayGuid;\r\n event.tenantGuid = parsed.tenantGuid;\r\n event.resetSuccessful = parsed.resetSuccessful;\r\n event.email = parsed.email;\r\n event.lastReset = parsed.lastReset;\r\n event.vehicleId = parsed.vehicleId;\r\n event.totalValueOnReset = parsed.totalValueOnReset;\r\n return event;\r\n }\r\n}\r\nEventAdapterRegistry.set('ClampingCountResetedEvent', ClampingCountResetedEventAdapter.adapt);\r\n\r\nexport class ParkingStatusUpdatedEventAdapter {\r\n static adapt(payload: string): ParkingStatusUpdatedEvent {\r\n const event = new ParkingStatusUpdatedEvent();\r\n const parsed = JSON.parse(payload);\r\n Object.assign(event, parsed);\r\n event.lastStatusChange = new Date(parsed.lastStatusChange);\r\n return event;\r\n }\r\n}\r\nEventAdapterRegistry.set('ParkingStatusUpdatedEvent', ParkingStatusUpdatedEventAdapter.adapt);\r\n\r\nexport class ParkingEditedEventAdapter {\r\n static adapt(payload: string): ParkingEditedEvent {\r\n const event = new ParkingEditedEvent();\r\n const parsed = JSON.parse(payload);\r\n Object.assign(event, parsed);\r\n return event;\r\n }\r\n}\r\nEventAdapterRegistry.set('ParkingEditedEvent', ParkingEditedEventAdapter.adapt);\r\n\r\nexport class ParkingExportMappingUpdatedEventAdapter {\r\n static adapt(payload: string): ParkingExportMappingUpdatedEvent {\r\n const event = new ParkingExportMappingUpdatedEvent();\r\n const parsed = JSON.parse(payload);\r\n Object.assign(event, parsed);\r\n return event;\r\n }\r\n}\r\nEventAdapterRegistry.set('ParkingExportMappingUpdatedEvent', ParkingExportMappingUpdatedEventAdapter.adapt);\r\n\r\nexport class ParkingCockpitOrderUpdatedEventAdapter {\r\n static adapt(payload: string): ParkingCockpitOrderUpdatedEvent {\r\n const event = new ParkingCockpitOrderUpdatedEvent();\r\n const parsed = JSON.parse(payload);\r\n Object.assign(event, parsed);\r\n return event;\r\n }\r\n}\r\nEventAdapterRegistry.set('ParkingCockpitOrderUpdatedEvent', ParkingCockpitOrderUpdatedEventAdapter.adapt);\r\n\r\nexport class ParkingCurrentOccupancyUpdatedEventAdapter {\r\n static adapt(payload: string): ParkingCurrentOccupancyUpdatedEvent {\r\n const event = new ParkingCurrentOccupancyUpdatedEvent();\r\n const parsed = JSON.parse(payload);\r\n event.changedBy = parsed.changedBy;\r\n event.tenantGuid = parsed.tenantGuid;\r\n event.parkingGuid = parsed.parkingGuid;\r\n event.currentOccupancy = parsed.currentOccupancy;\r\n event.status = parsed.status;\r\n event.occupancyTimestamp = new Date(parsed.occupancyTimestamp);\r\n return event;\r\n }\r\n}\r\nEventAdapterRegistry.set('ParkingCurrentOccupancyUpdatedEvent', ParkingCurrentOccupancyUpdatedEventAdapter.adapt);\r\n\r\nexport class SisMediaSettingUpdatedEventAdapter {\r\n static adapt(payload: string): SisMediaSettingUpdatedEvent {\r\n const event = new SisMediaSettingUpdatedEvent();\r\n const parsed = JSON.parse(payload);\r\n event.changedBy = parsed.changedBy;\r\n event.updateSuccessful = parsed.updateSuccessful;\r\n event.sisMediaSetting = SisMediaSettingAdapter.adapt(parsed.sisMediaSetting);\r\n return event;\r\n }\r\n}\r\nEventAdapterRegistry.set('SisMediaSettingUpdatedEvent', SisMediaSettingUpdatedEventAdapter.adapt);\r\n\r\nexport class WebcamImageUpdatedEventAdapter {\r\n static adapt(payload: string): WebcamImageUpdatedEvent {\r\n const event = new WebcamImageUpdatedEvent();\r\n const parsed = JSON.parse(payload);\r\n event.tenantGuid = parsed.tenantGuid;\r\n event.deviceSisId = parsed.deviceSisId;\r\n event.url = parsed.url;\r\n return event;\r\n }\r\n}\r\nEventAdapterRegistry.set('WebcamImageUpdatedEvent', WebcamImageUpdatedEventAdapter.adapt);\r\n\r\nexport class RopewayBrakeReportUpdatedEventAdapter {\r\n static adapt(payload: string): RopewayBrakeReportUpdatedEvent {\r\n const event = new RopewayBrakeReportUpdatedEvent();\r\n const parsed = JSON.parse(payload);\r\n event.tenantGuid = parsed.tenantGuid;\r\n event.deviceSisId = parsed.deviceSisId;\r\n return event;\r\n }\r\n}\r\nEventAdapterRegistry.set('RopewayBrakeReportUpdatedEvent', RopewayBrakeReportUpdatedEventAdapter.adapt);\r\n","import { Injectable } from '@angular/core';\r\nimport { takeUntil } from 'rxjs/operators';\r\nimport { EventBusService } from 'src/app/core/eventbus/event-bus.service';\r\nimport { FirebaseMessageAdapter } from 'src/app/core/live-message/adapter/firebase-message.adapter';\r\nimport { SignalrMessageAdapter } from 'src/app/core/live-message/adapter/signalr-message.adapter';\r\nimport { LiveMessage } from 'src/app/core/live-message/domain/live-message.model';\r\nimport { EventAdapterRegistry } from 'src/app/core/live-message/event.adapter';\r\nimport { Unsubscriber } from 'src/app/core/unsubscriber';\r\n\r\n@Injectable({\r\n providedIn: 'root',\r\n})\r\nexport class LiveMessageService extends Unsubscriber {\r\n constructor(\r\n private signalrAdapter: SignalrMessageAdapter,\r\n private eventBus: EventBusService,\r\n public firebaseAdapter: FirebaseMessageAdapter\r\n ) {\r\n super();\r\n\r\n this.setupSubscriptions();\r\n }\r\n\r\n private setupSubscriptions(): void {\r\n this.signalrAdapter.messageReceived$.pipe(takeUntil(this.onDestroy$)).subscribe((message: string) => {\r\n try {\r\n const messageData = JSON.parse(message);\r\n this.publishMessageEvent(messageData);\r\n } catch (ex) {\r\n console.error(`Live message with wrong format received: ${ex} (${message})`);\r\n }\r\n });\r\n }\r\n\r\n private publishMessageEvent(liveMessage: LiveMessage): void {\r\n const type = liveMessage.messageType;\r\n const adaptFunction = EventAdapterRegistry.get(type);\r\n const event = adaptFunction(liveMessage.payload);\r\n this.eventBus.publish(event);\r\n }\r\n}\r\n","import { HttpClient } from '@angular/common/http';\r\nimport { Directive } from '@angular/core';\r\nimport { BehaviorSubject, EMPTY, merge, Observable, of, Subject, timer } from 'rxjs';\r\nimport {\r\n catchError,\r\n distinctUntilChanged,\r\n exhaustMap,\r\n filter,\r\n map,\r\n shareReplay,\r\n switchMap,\r\n take,\r\n takeUntil,\r\n} from 'rxjs/operators';\r\nimport { DestinationService } from 'src/app/domain/destination/destination.service';\r\nimport { Feature } from 'src/app/domain/feature/feature.model';\r\nimport { environment } from 'src/environments/environment';\r\n\r\n@Directive()\r\nexport abstract class LivedataServiceBase {\r\n private readonly updateInterval$ = new BehaviorSubject(10000);\r\n private readonly updateTrigger$ = new Subject();\r\n\r\n protected abstract readonly requiredFeatures: Feature[];\r\n protected abstract readonly endpointUri: string;\r\n\r\n protected liveData$: Observable = this.destinationService.selectedTenant$.pipe(\r\n filter((tenant) => !!tenant),\r\n switchMap((tenant) =>\r\n tenant.features$.pipe(\r\n map((allowedFeatures) => ({\r\n tenant,\r\n hasRequiredFeature: this.requiredFeatures.every((f) =>\r\n allowedFeatures.some((a) => a.hasMinimumRequirementFor(f))\r\n ),\r\n }))\r\n )\r\n ),\r\n distinctUntilChanged((x, y) => x.tenant === y.tenant && x.hasRequiredFeature === y.hasRequiredFeature),\r\n switchMap(({ hasRequiredFeature }) => {\r\n if (hasRequiredFeature) {\r\n return timer(0, 1000).pipe(\r\n exhaustMap(() =>\r\n this.requestSasToken().pipe(\r\n map((sasToken) => {\r\n let expiryDuration: number;\r\n if (!sasToken) {\r\n expiryDuration = 0;\r\n } else {\r\n const expiryParam = new URLSearchParams(sasToken).get('se');\r\n const expiryDate = new Date(expiryParam).valueOf();\r\n expiryDuration = expiryDate - Date.now() - 10000;\r\n }\r\n\r\n return { sasToken, expiryDuration };\r\n }),\r\n switchMap(({ sasToken, expiryDuration }) => {\r\n const killTimer = timer(expiryDuration);\r\n\r\n return merge(\r\n this.updateInterval$.pipe(\r\n switchMap((updateInterval) => this.getLiveDataRepeatedly(sasToken, updateInterval))\r\n ),\r\n this.updateTrigger$.pipe(switchMap(() => this.getLiveDataRepeatedly(sasToken, 0)))\r\n ).pipe(takeUntil(killTimer));\r\n })\r\n )\r\n )\r\n );\r\n } else {\r\n return of([]);\r\n }\r\n }),\r\n shareReplay({\r\n bufferSize: 1,\r\n refCount: true,\r\n })\r\n );\r\n\r\n constructor(\r\n private http: HttpClient,\r\n private adapt: (items: any) => S[],\r\n protected destinationService: DestinationService\r\n ) {}\r\n\r\n setInterval(updateInterval: number): void {\r\n this.updateInterval$.next(updateInterval);\r\n }\r\n\r\n forceLiveDataUpdate(): void {\r\n this.updateTrigger$.next();\r\n }\r\n\r\n private requestSasToken(): Observable {\r\n const url = `${environment.baseUrlApi}/${this.endpointUri}`;\r\n return this.http.get(url).pipe(\r\n catchError(() => of(null)),\r\n map((sas) => sas?.toString()),\r\n take(1)\r\n );\r\n }\r\n\r\n private getLiveDataRepeatedly(sasToken: string, updateInterval: number): Observable {\r\n if (!sasToken || updateInterval == null) {\r\n return of([]);\r\n }\r\n\r\n const timerObservable = updateInterval > 0 ? timer(0, updateInterval) : of(0);\r\n\r\n return timerObservable.pipe(\r\n switchMap(() => this.http.get(sasToken).pipe(catchError(() => EMPTY))),\r\n map((data: any) => (data == null ? [] : this.adapt(data.value)))\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 NavigatorService {\r\n isOnline(): boolean {\r\n return window.navigator.onLine;\r\n }\r\n\r\n get baseUrl(): string {\r\n return window.location.origin.replace('4200', '5005');\r\n }\r\n\r\n onWindowUnload(callback: () => {}) {\r\n window.onbeforeunload = callback;\r\n }\r\n\r\n openInNewTab(url: string, properties: string = '') {\r\n window.open(url, '_system', ['location=yes', properties].join(','));\r\n }\r\n\r\n isIphone(): boolean {\r\n const userAgent = navigator.userAgent || navigator.vendor;\r\n\r\n return /iPhone/.test(userAgent);\r\n }\r\n\r\n isMac(): boolean {\r\n return navigator.platform.toUpperCase().indexOf('MAC') >= 0;\r\n }\r\n}\r\n","import { Directive, ElementRef } from '@angular/core';\r\n@Directive({\r\n selector: '[sis-ion-content-scrollbar]',\r\n standalone: false\r\n})\r\nexport class SisIonContentScrollbar {\r\n constructor(el: ElementRef) {\r\n const stylesheet = `\r\n ::-webkit-scrollbar {\r\n width: 2px;\r\n }\r\n ::-webkit-scrollbar-track {\r\n background: var(--ion-color-primary);\r\n }\r\n ::-webkit-scrollbar-thumb {\r\n background: var(--ion-color-secondary);\r\n }\r\n `;\r\n\r\n const styleElmt = el.nativeElement.shadowRoot.querySelector('style');\r\n\r\n if (styleElmt) {\r\n styleElmt.append(stylesheet);\r\n } else {\r\n const barStyle = document.createElement('style');\r\n barStyle.append(stylesheet);\r\n el.nativeElement.shadowRoot.appendChild(barStyle);\r\n }\r\n }\r\n}\r\n","import { STnetStatus as STnetStatus } from 'src/app/core/stnet/stnet-status.model';\r\n\r\nexport class STnetStatusAdapter {\r\n static adapt(item: any): STnetStatus | null {\r\n if (!item) {\r\n return null;\r\n }\r\n\r\n return {\r\n stationId: item.stationId,\r\n responseId: item.responseId?.toLowerCase(),\r\n statusCode: item.statusCode,\r\n statusMessage: item.statusMessage,\r\n featureId: item.featureId,\r\n snowReportUrl: item.snowReportUrl,\r\n };\r\n }\r\n}\r\n","import { Directive, OnDestroy } from '@angular/core';\r\nimport { Subject } from 'rxjs';\r\n\r\n@Directive()\r\nexport class Unsubscriber implements OnDestroy {\r\n private readonly _onDestroy$ = new Subject();\r\n\r\n readonly onDestroy$ = this._onDestroy$.asObservable();\r\n\r\n ngOnDestroy() {\r\n // Unsubscribe from whatever used takeUntil(this.onDestroy$)\r\n this._onDestroy$.next();\r\n this._onDestroy$.complete();\r\n }\r\n}\r\n","import { Injectable } from '@angular/core';\r\nimport { AlertController } from '@ionic/angular';\r\nimport { TranslateService } from '@ngx-translate/core';\r\nimport { firstValueFrom } from 'rxjs';\r\n\r\n@Injectable({\r\n providedIn: 'root',\r\n})\r\nexport class ConfirmationDialogService {\r\n constructor(private translateService: TranslateService, private alertCtrl: AlertController) {}\r\n\r\n presentAlert(confirmationText: string, confirmationButton: string): Promise {\r\n return new Promise(async (resolve) => {\r\n this.alertCtrl\r\n .create({\r\n header: await this.getTranslatedString(confirmationText),\r\n buttons: [\r\n {\r\n text: await this.getTranslatedString(confirmationButton),\r\n handler: () => {\r\n resolve(true);\r\n },\r\n },\r\n {\r\n text: await this.getTranslatedString('general.term.cancel'),\r\n role: 'cancel',\r\n },\r\n ],\r\n cssClass: 'sis-ion-alert',\r\n backdropDismiss: false,\r\n })\r\n .then((alert) => {\r\n alert.present();\r\n });\r\n });\r\n }\r\n\r\n private getTranslatedString(translateKey: string): Promise {\r\n return firstValueFrom(this.translateService.get(translateKey));\r\n }\r\n}\r\n","import { Injectable, Pipe, PipeTransform } from '@angular/core';\r\nimport moment from 'moment';\r\n\r\n@Pipe({\r\n name: 'dateFormat',\r\n pure: false,\r\n standalone: false\r\n})\r\n@Injectable({ providedIn: 'root' })\r\nexport class DateFormatPipe implements PipeTransform {\r\n transform(date: Date): string {\r\n return moment(date).local().format('DD.MM.YYYY');\r\n }\r\n}\r\n","import { Injectable, Pipe, PipeTransform } from '@angular/core';\r\nimport moment from 'moment';\r\n\r\n@Pipe({\r\n name: 'dateTimeFormat',\r\n pure: false,\r\n standalone: false\r\n})\r\n@Injectable({ providedIn: 'root' })\r\nexport class DateTimeFormatPipe implements PipeTransform {\r\n transform(date: Date, time: boolean = true, seconds: boolean = true): string {\r\n return moment(date)\r\n .local()\r\n .format(`${time ? 'DD.MM.YYYY ' : ''}HH:mm${seconds ? ':ss' : ''}`);\r\n }\r\n}\r\n","import { TranslateService } from '@ngx-translate/core';\r\nimport { combineLatest, Observable, timer } from 'rxjs';\r\nimport { startWith, switchMap } from 'rxjs/operators';\r\nimport { TimeFormatService } from 'src/app/core/utils/time-format.service';\r\nimport { UserSettingsService } from 'src/app/domain/user-settings/user-settings.service';\r\n\r\nexport class FormattedTimestamp {\r\n readonly formattedTimestamp$: Observable = combineLatest([\r\n this.userSettingService.userSettings$,\r\n this.translateService.onLangChange.pipe(startWith(this.translateService.currentLang)),\r\n ]).pipe(\r\n switchMap(([userSettings]) => {\r\n if (userSettings.timeFormat === 1) {\r\n return this.timeFormatService.format(this.timestamp, userSettings.timeFormat);\r\n }\r\n\r\n return timer(0, 1000).pipe(\r\n switchMap(() => this.timeFormatService.format(this.timestamp, userSettings.timeFormat))\r\n );\r\n })\r\n );\r\n\r\n constructor(\r\n private userSettingService: UserSettingsService,\r\n private translateService: TranslateService,\r\n private timeFormatService: TimeFormatService,\r\n private timestamp: Date\r\n ) {}\r\n}\r\n","import { Directive, HostListener } from '@angular/core';\r\n\r\n@Directive({\r\n selector: '[sis-integer-input]',\r\n standalone: false\r\n})\r\nexport class InputIntegerOnlyDirective {\r\n @HostListener('keypress', ['$event'])\r\n onInput(event: any) {\r\n const pattern = /[0-9]/;\r\n const inputChar = String.fromCharCode(event.which ? event.which : event.keyCode);\r\n\r\n if (!pattern.test(inputChar)) {\r\n event.preventDefault();\r\n return false;\r\n }\r\n return true;\r\n }\r\n}\r\n","import { Pipe, PipeTransform } from '@angular/core';\r\nimport { marked } from 'marked';\r\nimport markedImages from 'marked-images';\r\n\r\n@Pipe({\r\n name: 'markdown',\r\n standalone: false\r\n})\r\nexport class MarkdownPipe implements PipeTransform {\r\n transform(value: any): any {\r\n if (value && value.length > 0) {\r\n marked.use(markedImages());\r\n return marked(value);\r\n }\r\n return value;\r\n }\r\n}\r\n","export class MathUtils {\r\n static roundTo(value: number, decimals: number): string {\r\n const factor = Math.pow(10, decimals);\r\n return (Math.round(value * factor) / factor).toString();\r\n }\r\n}\r\n","import { Injectable } from '@angular/core';\r\nimport { Platform } from '@ionic/angular';\r\nimport { fromEvent } from 'rxjs';\r\nimport { distinctUntilChanged, map, shareReplay, startWith } from 'rxjs/operators';\r\n\r\n@Injectable({\r\n providedIn: 'root',\r\n})\r\nexport class ScreenSizeService {\r\n private readonly bigScreenThreshold = 992; // ionic lg\r\n\r\n private readonly screenMode$ = fromEvent(window, 'resize').pipe(\r\n startWith(null),\r\n map(() => {\r\n const bigScreenMode = this.platform.width() > this.bigScreenThreshold;\r\n const landscapeMode = this.platform.isLandscape() && !bigScreenMode;\r\n\r\n return { bigScreenMode, landscapeMode };\r\n }),\r\n shareReplay(1)\r\n );\r\n\r\n readonly bigScreenMode$ = this.screenMode$.pipe(\r\n map(({ bigScreenMode }) => bigScreenMode),\r\n distinctUntilChanged(),\r\n shareReplay(1)\r\n );\r\n\r\n readonly landscapeMode$ = this.screenMode$.pipe(\r\n map(({ landscapeMode }) => landscapeMode),\r\n distinctUntilChanged(),\r\n shareReplay(1)\r\n );\r\n\r\n constructor(private platform: Platform) {}\r\n}\r\n","export class SisConverter {\r\n static toNumberOrUndefined(value: any): number | undefined {\r\n return isNaN(Number(value)) ? undefined : Number(value);\r\n }\r\n\r\n static toBoolean(input: string): boolean {\r\n try {\r\n return Boolean(JSON.parse(input));\r\n } catch (e) {\r\n return false;\r\n }\r\n }\r\n\r\n static toDateOrUndefined(value: any): Date | undefined {\r\n if (value == null) {\r\n return undefined;\r\n }\r\n\r\n const date = new Date(value);\r\n\r\n if (isNaN(date.getTime())) {\r\n return undefined;\r\n }\r\n\r\n return date;\r\n }\r\n}\r\n","/* eslint-disable */\r\ninterface String {\r\n format(...replacements: string[]): string;\r\n}\r\nif (!String.prototype.format) {\r\n String.prototype.format = function() {\r\n const args = arguments;\r\n return this.replace(/{(\\d+)}/g, (match: string, number: number) =>\r\n typeof (args[number] !== 'undefined') ? args[number] : match\r\n );\r\n };\r\n}\r\n","import 'src/app/core/utils/string-format';\r\n\r\nimport { Injectable } from '@angular/core';\r\nimport { TranslateService } from '@ngx-translate/core';\r\nimport { Observable, of } from 'rxjs';\r\nimport { map, shareReplay } from 'rxjs/operators';\r\nimport { DateTimeFormatPipe } from 'src/app/core/utils/date-time-format.pipe';\r\n\r\n@Injectable({\r\n providedIn: 'root',\r\n})\r\nexport class TimeFormatService {\r\n private static readonly shortTimeTranslateString = 'alarming.phrase.shortTime';\r\n private static readonly shortTimeHoursTranslateString = 'alarming.phrase.shortTime';\r\n private static readonly minTranslateString = 'alarming.abbr.minute';\r\n private static readonly hourTranslateString = 'alarming.abbr.hour';\r\n private static readonly dayTranslateString = 'alarming.term.day';\r\n private static readonly weekTranslateString = 'alarming.term.week';\r\n private static readonly monthTranslateString = 'alarming.term.month';\r\n private static readonly yearTranslateString = 'alarming.term.year';\r\n private static readonly daysTranslateString = 'alarming.term.days';\r\n private static readonly weeksTranslateString = 'alarming.term.weeks';\r\n private static readonly monthsTranslateString = 'alarming.term.months';\r\n private static readonly yearsTranslateString = 'alarming.term.years';\r\n\r\n private readonly msPerMinute = 60 * 1000;\r\n private readonly msPerHour = this.msPerMinute * 60;\r\n private readonly msPerDay = this.msPerHour * 24;\r\n private readonly msPerWeek = this.msPerDay * 7;\r\n private readonly msPerMonth = this.msPerDay * 30;\r\n private readonly msPerYear = this.msPerDay * 365;\r\n\r\n private readonly translatedStrings$ = this.translateService\r\n .stream([\r\n TimeFormatService.shortTimeTranslateString,\r\n TimeFormatService.shortTimeHoursTranslateString,\r\n TimeFormatService.minTranslateString,\r\n TimeFormatService.hourTranslateString,\r\n TimeFormatService.dayTranslateString,\r\n TimeFormatService.daysTranslateString,\r\n TimeFormatService.weekTranslateString,\r\n TimeFormatService.weeksTranslateString,\r\n TimeFormatService.monthTranslateString,\r\n TimeFormatService.monthsTranslateString,\r\n TimeFormatService.yearTranslateString,\r\n TimeFormatService.yearsTranslateString,\r\n ])\r\n .pipe(\r\n map((res) => ({\r\n shortTimeText: res[TimeFormatService.shortTimeTranslateString],\r\n shortTimeHoursText: res[TimeFormatService.shortTimeHoursTranslateString],\r\n minText: res[TimeFormatService.minTranslateString],\r\n hourText: res[TimeFormatService.hourTranslateString],\r\n dayText: res[TimeFormatService.dayTranslateString],\r\n daysText: res[TimeFormatService.daysTranslateString],\r\n weekText: res[TimeFormatService.weekTranslateString],\r\n weeksText: res[TimeFormatService.weeksTranslateString],\r\n monthText: res[TimeFormatService.monthTranslateString],\r\n monthsText: res[TimeFormatService.monthsTranslateString],\r\n yearText: res[TimeFormatService.yearTranslateString],\r\n yearsText: res[TimeFormatService.yearsTranslateString],\r\n })),\r\n shareReplay({ bufferSize: 1, refCount: true })\r\n );\r\n\r\n constructor(private dateTimeFormatPipe: DateTimeFormatPipe, private translateService: TranslateService) {}\r\n\r\n private transformToRelativeTime(\r\n date: Date,\r\n translatedStrings: {\r\n shortTimeText: string;\r\n shortTimeHoursText: string;\r\n minText: string;\r\n hourText: string;\r\n dayText: string;\r\n daysText: string;\r\n weekText: string;\r\n weeksText: string;\r\n monthText: string;\r\n monthsText: string;\r\n yearText: string;\r\n yearsText: string;\r\n }\r\n ): string {\r\n if (date) {\r\n const current = new Date().valueOf();\r\n const inputMs = date.valueOf();\r\n\r\n const elapsed = current - inputMs;\r\n\r\n let retValue: number;\r\n let retValueHH = 0;\r\n let retValueMin = 0;\r\n let retText: string;\r\n let retTextHH: string;\r\n let retTextMin: string;\r\n\r\n let isHours = false;\r\n\r\n if (elapsed < this.msPerMinute) {\r\n retValue = 0;\r\n retText = translatedStrings.minText;\r\n } else if (elapsed < this.msPerHour) {\r\n retValue = Math.floor(elapsed / this.msPerMinute);\r\n retText = translatedStrings.minText;\r\n } else if (elapsed < this.msPerDay) {\r\n isHours = true;\r\n retValueHH = Math.floor(elapsed / this.msPerHour);\r\n retValueMin = Math.floor(elapsed / this.msPerMinute) - retValueHH * 60;\r\n retTextMin = translatedStrings.minText;\r\n retTextHH = translatedStrings.hourText;\r\n } else if (elapsed < this.msPerWeek) {\r\n const value = Math.floor(elapsed / this.msPerDay);\r\n retValue = value;\r\n retText = retValue > 1 ? translatedStrings.daysText : translatedStrings.dayText;\r\n } else if (elapsed < this.msPerMonth) {\r\n const value = Math.floor(elapsed / this.msPerWeek);\r\n retValue = value;\r\n retText = retValue > 1 ? translatedStrings.weeksText : translatedStrings.weekText;\r\n } else if (elapsed < this.msPerYear) {\r\n const value = Math.floor(elapsed / this.msPerMonth);\r\n retValue = value;\r\n retText = retValue > 1 ? translatedStrings.monthsText : translatedStrings.monthText;\r\n } else {\r\n const value = Math.floor(elapsed / this.msPerYear);\r\n retValue = value;\r\n retText = retValue > 1 ? translatedStrings.yearsText : translatedStrings.yearText;\r\n }\r\n\r\n if (!isHours) {\r\n return translatedStrings.shortTimeText.format(retValue.toString(), retText);\r\n } else {\r\n return translatedStrings.shortTimeHoursText.format(\r\n retValueHH.toString(),\r\n retTextHH,\r\n retValueMin.toString(),\r\n retTextMin\r\n );\r\n }\r\n }\r\n }\r\n\r\n format(date: Date, timeFormat: number): Observable {\r\n if (timeFormat === 2) {\r\n return this.translatedStrings$.pipe(\r\n map((translatedStrings) => this.transformToRelativeTime(date, translatedStrings))\r\n );\r\n }\r\n\r\n return of(this.dateTimeFormatPipe.transform(date));\r\n }\r\n}\r\n","import { Pipe, PipeTransform } from '@angular/core';\r\n\r\n@Pipe({\r\n name: 'weekday',\r\n standalone: false\r\n})\r\nexport class WeekdayPipe implements PipeTransform {\r\n transform(value: Date): string {\r\n if (!value) {\r\n return '';\r\n }\r\n\r\n const daysOfWeek = [\r\n 'general.term.weekday.7',\r\n 'general.term.weekday.1',\r\n 'general.term.weekday.2',\r\n 'general.term.weekday.3',\r\n 'general.term.weekday.4',\r\n 'general.term.weekday.5',\r\n 'general.term.weekday.6',\r\n ];\r\n\r\n const dayIndex = value.getDay();\r\n\r\n return daysOfWeek[dayIndex];\r\n }\r\n}\r\n","export class WidgetUtils {\r\n static calculateDegreeWithLimit(value: number, maxValue: number, minDegree: number, maxDegree: number): number {\r\n let ratio = value / maxValue;\r\n if (ratio > 1) {\r\n ratio = 1;\r\n } else {\r\n if (ratio < 0) {\r\n ratio = 0;\r\n }\r\n }\r\n\r\n const range = Math.abs(maxDegree - minDegree);\r\n\r\n const filled = range * ratio;\r\n\r\n if (minDegree < maxDegree) {\r\n return minDegree + filled;\r\n }\r\n\r\n return minDegree - filled;\r\n }\r\n}\r\n","import { WritablePart } from 'src/app/core/utils/type-helper';\r\n\r\nexport enum AlarmLevel {\r\n SYSTEM = 'system',\r\n FAULT = 'fault',\r\n ALARM = 'alarm',\r\n WARNING = 'warning',\r\n INFO = 'info',\r\n BYPASS = 'bypass',\r\n CHECK = 'check',\r\n}\r\n\r\nexport class Alarm {\r\n static alarmLevelOrder = Object.values(AlarmLevel);\r\n\r\n static getLevel(level: string): AlarmLevel {\r\n let alarmLevel: AlarmLevel;\r\n\r\n try {\r\n alarmLevel = AlarmLevel[level.toUpperCase()];\r\n } catch (ex) {\r\n alarmLevel = AlarmLevel.FAULT;\r\n console.error(`No Alarmlevel for ${alarmLevel}`);\r\n }\r\n\r\n return alarmLevel;\r\n }\r\n\r\n static includesSisId(alarm: Alarm, sisId: string): boolean {\r\n const regex = new RegExp(sisId + '(_.*)?$');\r\n\r\n return regex.test(alarm.sisId);\r\n }\r\n\r\n readonly timestampMs: number;\r\n readonly timestamp: Date;\r\n\r\n sisId: string;\r\n tenantSisId: string;\r\n active: boolean;\r\n code: string;\r\n info: string;\r\n level: AlarmLevel;\r\n text: string;\r\n\r\n constructor(init: Partial> & { timestamp?: Date }) {\r\n Object.assign(this, init);\r\n this.timestamp = init.timestamp;\r\n this.timestampMs = init.timestamp?.getTime();\r\n }\r\n}\r\n","import { Injectable } from '@angular/core';\r\nimport { BehaviorSubject, Observable } from 'rxjs';\r\nimport { distinctUntilChanged, filter, switchMap } from 'rxjs/operators';\r\nimport { Feature } from 'src/app/domain/feature/feature.model';\r\nimport { Tenant } from 'src/app/domain/tenant/tenant.model';\r\n\r\n@Injectable({\r\n providedIn: 'root',\r\n})\r\nexport class DestinationService {\r\n private readonly selectedTenant = new BehaviorSubject(undefined);\r\n\r\n readonly selectedTenant$ = this.selectedTenant.pipe(distinctUntilChanged());\r\n\r\n readonly selectedTenantFeatures$: Observable = this.selectedTenant$.pipe(\r\n filter((tenant) => !!tenant),\r\n switchMap((tenant) => tenant.features$.asObservable())\r\n );\r\n\r\n changeDestination(to: Tenant): void {\r\n this.selectedTenant.next(to);\r\n }\r\n}\r\n","export enum ExportType {\r\n Xml = 1,\r\n Json = 2,\r\n STnet = 3,\r\n WebReport = 4,\r\n OperatingHours = 5,\r\n}\r\n","import { Export } from 'src/app/domain/export/export.model';\r\n\r\nexport class ExportAdapter {\r\n static adapt(item: any): Export[] {\r\n const exports: Export[] =\r\n item?.map((e: any) => ({\r\n guid: e.guid,\r\n name: e.name,\r\n type: e.type,\r\n })) || [];\r\n\r\n exports.sort((a, b) => a.name.localeCompare(b.name));\r\n\r\n return exports;\r\n }\r\n}\r\n","import { HttpClient } from '@angular/common/http';\r\nimport { Injectable } from '@angular/core';\r\nimport { Observable } from 'rxjs';\r\nimport { map, shareReplay, switchMap } from 'rxjs/operators';\r\nimport { DestinationService } from 'src/app/domain/destination/destination.service';\r\nimport { ExportAdapter } from 'src/app/domain/export/export.adapter';\r\nimport { Export } from 'src/app/domain/export/export.model';\r\nimport { environment } from 'src/environments/environment';\r\n\r\n@Injectable({\r\n providedIn: 'root',\r\n})\r\nexport class ExportService {\r\n readonly exports$: Observable = this.destinationService.selectedTenant$.pipe(\r\n switchMap(() => this.httpClient.get(`${environment.baseUrlApi}/export/all`)),\r\n map((data) => ExportAdapter.adapt(data)),\r\n shareReplay({\r\n bufferSize: 1,\r\n refCount: true,\r\n })\r\n );\r\n\r\n constructor(private destinationService: DestinationService, private httpClient: HttpClient) {}\r\n}\r\n","export enum FeatureAccessLevel {\r\n NONE = 0,\r\n READ = 1,\r\n WRITE = 2\r\n}\r\n","export enum FeatureId {\r\n COCKPIT = 1000,\r\n COCKPIT_TELEMETRY = 1001,\r\n COCKPIT_WEBCAM = 1002,\r\n COCKPIT_REMOTEACCESS = 1003,\r\n COCKPIT_ENERGY = 1004,\r\n COCKPIT_FIRSTENTRIES = 1005,\r\n COCKPIT_FREQUENCIES = 1006,\r\n COCKPIT_KASSANDRA = 1007,\r\n COCKPIT_SNOWMAKING = 1008,\r\n COCKPIT_ABBSMARTSENSOR = 1009,\r\n COCKPIT_ECOMODE = 1010,\r\n COCKPIT_SAMBESI_WHATSUP = 1011,\r\n COCKPIT_TRUSCAN = 1012,\r\n COCKPIT_ROPEWAY_SETTINGS = 1013,\r\n COCKPIT_ROPEWAY_AVAILABILITY = 1014,\r\n COCKPIT_ROPEWAY_CLAMPINGCOUNT_RESET = 1015,\r\n COCKPIT_ROPEWAY_BRAKEREPORT = 1016,\r\n\r\n SISMEDIA_GASTRO = 2000,\r\n SISMEDIA_LIFT = 2001,\r\n SISMEDIA_POI = 2002,\r\n SISMEDIA_SLEDGING = 2003,\r\n SISMEDIA_SLOPE = 2004,\r\n SISMEDIA_TRAIL = 2005,\r\n SISMEDIA_PARKING = 2006,\r\n SISMEDIA_CROSSCOUNTRY = 2007,\r\n SISMEDIA_BIKE = 2008,\r\n\r\n SISMEDIA_ASSET_EDIT = 2100,\r\n SISMEDIA_ASSETOVERRIDE = 2101,\r\n SISMEDIA_INFOTEXT = 2102,\r\n SISMEDIA_LASTSLOPECONTROL = 2103,\r\n SISMEDIA_MEDIACENTER = 2104,\r\n SISMEDIA_METEOINFO = 2105,\r\n SISMEDIA_STNET = 2106,\r\n SISMEDIA_TIMETABLE = 2107,\r\n SISMEDIA_LEDTICKER = 2108,\r\n SISMEDIA_EMAILDELIVERY = 2109,\r\n SISMEDIA_OPERATINGHOURS = 2110,\r\n SISMEDIA_MEDIACENTER_INFOBANNER = 2111,\r\n SISMEDIA_SLOPESOPERATINGTIMES = 2112,\r\n\r\n BREAKDOWNINFO = 3000,\r\n OPERATINGINFO = 3001,\r\n GLOBALVIEW = 3002,\r\n SISITSERVICES = 3003,\r\n WEBLINKCOLLECTION = 3004,\r\n LOGBOOK = 3005,\r\n USERMANAGEMENT = 3006,\r\n PARKING = 3007,\r\n\r\n WINDMONITOR = 4000,\r\n}\r\n","import { Feature } from 'src/app/domain/feature/feature.model';\r\nimport { FeatureAccessLevel } from 'src/app/domain/feature/feature-access-level.model';\r\nimport { FeatureId } from 'src/app/domain/feature/feature-id.model';\r\n\r\nexport class FeatureAdapter {\r\n static adapt(item: any): Feature[] {\r\n if (!item) {\r\n return [];\r\n }\r\n\r\n const features = [];\r\n\r\n item.forEach((element: { featureId: FeatureId; featureAccessLevel: FeatureAccessLevel; featureOrder: number; adminOnly: boolean }) => {\r\n const feature: FeatureId = element.featureId;\r\n const featureAccessLevel: FeatureAccessLevel = element.featureAccessLevel;\r\n const featureOrder: number = element.featureOrder;\r\n const adminOnly: boolean = element.adminOnly;\r\n\r\n features.push(new Feature(feature, featureAccessLevel, adminOnly, featureOrder));\r\n });\r\n\r\n return features;\r\n }\r\n}\r\n","import { FeatureAccessLevel } from 'src/app/domain/feature/feature-access-level.model';\r\nimport { FeatureId } from 'src/app/domain/feature/feature-id.model';\r\n\r\nexport class Feature {\r\n static readonly SISMEDIA_PREFIX = 'SISMEDIA';\r\n\r\n constructor(\r\n public readonly featureId: FeatureId,\r\n public featureAccessLevel: FeatureAccessLevel,\r\n public adminOnly?: boolean,\r\n public featureOrder?: number\r\n ) {}\r\n\r\n hasMinimumRequirementFor(feature: Feature): boolean {\r\n return this.featureId === feature.featureId && this.featureAccessLevel >= feature.featureAccessLevel;\r\n }\r\n}\r\n","import { HttpClient } from '@angular/common/http';\r\nimport { Injectable } from '@angular/core';\r\nimport { PagedAsyncIterableIterator } from '@azure/core-paging';\r\nimport { BlobServiceClient } from '@azure/storage-blob';\r\nimport { combineLatest, Observable } from 'rxjs';\r\nimport { distinctUntilChanged, map, shareReplay } from 'rxjs/operators';\r\nimport { UserSettingsService } from 'src/app/domain/user-settings/user-settings.service';\r\nimport { environment } from 'src/environments/environment';\r\n\r\n@Injectable({\r\n providedIn: 'root',\r\n})\r\nexport class NewsService {\r\n private readonly blobServiceClient = new BlobServiceClient(environment.baseUrlCockpitBlobStorage);\r\n private readonly containerClient = this.blobServiceClient.getContainerClient('news');\r\n private readonly prefix = 'newsFiles/';\r\n\r\n private newsViewedUpdated = false;\r\n\r\n readonly newsFileNames$: Observable = this.asyncToObservable(\r\n this.containerClient.listBlobsFlat({ prefix: 'newsFiles/' })\r\n ).pipe(\r\n map((blobItems) =>\r\n blobItems.map((blobItem) => blobItem.name.replace(this.prefix, '')).sort((a, b) => -a.localeCompare(b))\r\n ),\r\n shareReplay(1)\r\n );\r\n\r\n readonly unreadNewsFileNames$: Observable = combineLatest([\r\n this.newsFileNames$,\r\n this.userSettingsService.userSettings$,\r\n ]).pipe(\r\n map(([fileNames, userSettings]) => {\r\n if (userSettings.lastNewsViewed == null) {\r\n return fileNames;\r\n }\r\n\r\n const year = userSettings.lastNewsViewed.getFullYear();\r\n const month = (userSettings.lastNewsViewed.getMonth() + 1).toString().padStart(2, '0');\r\n const day = userSettings.lastNewsViewed.getDate().toString().padStart(2, '0');\r\n const lastNewsViewed = `${year}-${month}-${day}`;\r\n\r\n return fileNames.filter((fileName) => fileName.split('_')[0].localeCompare(lastNewsViewed) > 0);\r\n }),\r\n distinctUntilChanged(),\r\n shareReplay({\r\n bufferSize: 1,\r\n refCount: true,\r\n })\r\n );\r\n\r\n readonly hasUnreadNews$: Observable = this.unreadNewsFileNames$.pipe(\r\n map((fileNames) => fileNames.length > 0)\r\n );\r\n\r\n constructor(private userSettingsService: UserSettingsService, private httpClient: HttpClient) {}\r\n\r\n getFileText(fileName: string): Observable {\r\n return this.httpClient.get(`${environment.baseUrlCockpitBlobStorage}/news/${this.prefix}${fileName}`, {\r\n responseType: 'text',\r\n });\r\n }\r\n\r\n async updateNewsViewed(): Promise {\r\n if (!this.newsViewedUpdated) {\r\n await this.userSettingsService.updateUserSettings({ newsViewed: true });\r\n this.newsViewedUpdated = true;\r\n }\r\n }\r\n\r\n private asyncToObservable(iterable: PagedAsyncIterableIterator): Observable {\r\n return new Observable(\r\n (subscriber) =>\r\n void (async () => {\r\n try {\r\n const items: T[] = [];\r\n for await (const item of iterable as AsyncIterable) {\r\n if (subscriber.closed) {\r\n return;\r\n }\r\n items.push(item);\r\n }\r\n subscriber.next(items);\r\n subscriber.complete();\r\n } catch (e) {\r\n subscriber.error(e);\r\n }\r\n })()\r\n );\r\n }\r\n}\r\n","import { UrlSegment } from '@angular/router';\r\nimport { FeatureId } from 'src/app/domain/feature/feature-id.model';\r\n\r\nexport class SisRoute {\r\n static readonly Lift = 'lift';\r\n static readonly Slope = 'slope';\r\n static readonly CrossCountry = 'crosscountry';\r\n static readonly Gastro = 'gastro';\r\n static readonly Trail = 'trail';\r\n static readonly Bike = 'bike';\r\n static readonly Poi = 'poi';\r\n static readonly Sledging = 'sledging';\r\n\r\n static readonly MAPS = 'maps';\r\n static readonly ALARMLIST = 'alarmlist';\r\n static readonly SISITSERVICES = 'sisitservices';\r\n static readonly SISMEDIA = 'sismedia';\r\n static readonly SISMEDIASETTING = 'sismediasetting';\r\n static readonly PARKING = 'parking';\r\n static readonly BREAKDOWNINFO = 'breakdowninfo';\r\n static readonly OPERATINGINFO = 'operatinginfo';\r\n static readonly MEDIACENTER = 'mediacenter';\r\n static readonly INFOTEXT = 'infotext';\r\n static readonly EDITOR = 'editor';\r\n static readonly LASTSLOPECONTROL = 'lastslopecontrol';\r\n static readonly GLOBAL = 'global';\r\n static readonly USERMANAGEMENT = 'usermanagement';\r\n static readonly ERROR = 'error';\r\n static readonly METEOINFO = 'meteoinfo';\r\n static readonly STNET = 'stnet';\r\n static readonly SLOPESOPERATINGTIMES = 'slopesoperatingtimes';\r\n static readonly WEBLINKCOLLECTION = 'weblinkcollection';\r\n static readonly TIMETABLE = 'timetable';\r\n static readonly LEDTICKER = 'ledticker';\r\n static readonly EMAILDELIVERY = 'emaildelivery';\r\n static readonly SISAGADMIN = 'admin';\r\n static readonly FEATUREMANAGEMENT = 'featuremanagement';\r\n\r\n featureUrl: string;\r\n urlSegments: UrlSegment[] = [];\r\n\r\n constructor(urlSegments: string[], public requiredFeatureId: FeatureId) {\r\n this.featureUrl = '/' + urlSegments.join('/');\r\n\r\n urlSegments.forEach((urlSegment) => {\r\n this.urlSegments.push(new UrlSegment(urlSegment, {}));\r\n });\r\n }\r\n}\r\n","import { FeatureAdapter } from 'src/app/domain/feature/feature.adapter';\r\nimport { Tenant } from 'src/app/domain/tenant/tenant.model';\r\nimport { Coords } from 'src/app/maps/domain/coords.model';\r\n\r\nexport class TenantAdapter {\r\n static adapt(item: any): Tenant[] {\r\n const tenants: Tenant[] = [];\r\n\r\n if (item) {\r\n item.forEach((element: any) => {\r\n const tenant = this.adaptTenant(element);\r\n\r\n if (tenant) {\r\n tenants.push(tenant);\r\n }\r\n });\r\n }\r\n return tenants;\r\n }\r\n\r\n static adaptTenant(item: any): Tenant | null {\r\n if (item) {\r\n let positionGeoMap: Coords = { x: -1000, y: -1000 };\r\n if (item.positionGeoMap && item.positionGeoMap !== '') {\r\n try {\r\n const coordArray: number[] = JSON.parse(item.positionGeoMap);\r\n positionGeoMap = { x: coordArray[0], y: coordArray[1] };\r\n } catch (ex) {\r\n console.error(`Unable to parse geomap coordinates: ${item.positionGeoMap}`);\r\n }\r\n }\r\n\r\n const features = FeatureAdapter.adapt(item.features);\r\n\r\n return new Tenant(\r\n {\r\n guid: item.guid,\r\n sisId: item.sisId,\r\n alias: item.alias,\r\n fullname: item.fullname,\r\n gatewayId: item.gatewayId,\r\n panoMapFilename: item.panoMapFilename,\r\n logoFilename: item.logoFilename,\r\n positionGeoMap,\r\n weatherTrendLink: item.weatherTrendLink,\r\n maxUsers: item.maxUsers,\r\n hasRopewaysOrLifts: item.hasRopeways,\r\n hasMySqlRouter: item.mySqlRouter,\r\n underMaintenance: item.underMaintenance,\r\n timeZoneId: item.timeZoneId,\r\n },\r\n features\r\n );\r\n }\r\n\r\n return null;\r\n }\r\n}\r\n","import { BehaviorSubject } from 'rxjs';\r\nimport { WritablePart } from 'src/app/core/utils/type-helper';\r\nimport { Feature } from 'src/app/domain/feature/feature.model';\r\nimport { Coords } from 'src/app/maps/domain/coords.model';\r\nimport { v4 as v4guid } from 'uuid';\r\n\r\nexport class Tenant {\r\n readonly features$ = new BehaviorSubject([]);\r\n\r\n guid: string = v4guid();\r\n sisId: string;\r\n alias: string;\r\n fullname: string;\r\n gatewayId: string;\r\n panoMapFilename: string;\r\n logoFilename: string;\r\n weatherTrendLink: string;\r\n positionGeoMap: Coords = { x: 0, y: 0 };\r\n maxUsers: number;\r\n hasRopewaysOrLifts: boolean;\r\n hasMySqlRouter: boolean;\r\n underMaintenance: boolean;\r\n timeZoneId: string;\r\n\r\n constructor(init?: Partial>, features: Feature[] = []) {\r\n Object.assign(this, init);\r\n this.features$.next(features);\r\n }\r\n}\r\n","import { HttpClient } from '@angular/common/http';\r\nimport { Injectable } from '@angular/core';\r\nimport { Observable } from 'rxjs';\r\nimport { filter, map, shareReplay, switchMap, take, takeUntil, tap, withLatestFrom } from 'rxjs/operators';\r\nimport { EventBusService } from 'src/app/core/eventbus/event-bus.service';\r\nimport { FeatureUpdatedEvent, MaintenanceUpdatedEvent, UserPermissionUpdatedEvent } from 'src/app/core/eventbus/events';\r\nimport { Unsubscriber } from 'src/app/core/unsubscriber';\r\nimport { Feature } from 'src/app/domain/feature/feature.model';\r\nimport { TenantAdapter } from 'src/app/domain/tenant/tenant.adapter';\r\nimport { Tenant } from 'src/app/domain/tenant/tenant.model';\r\nimport { UserSettingsService } from 'src/app/domain/user-settings/user-settings.service';\r\nimport { environment } from 'src/environments/environment';\r\n\r\n@Injectable({\r\n providedIn: 'root',\r\n})\r\nexport class TenantService extends Unsubscriber {\r\n private readonly urlPathAllTenants = '/tenant';\r\n\r\n readonly tenants$: Observable = this.http.get(environment.baseUrlApi + this.urlPathAllTenants).pipe(\r\n map((data: any) => TenantAdapter.adapt(data)),\r\n shareReplay(1)\r\n );\r\n\r\n constructor(private http: HttpClient, eventBusService: EventBusService, userSettingsService: UserSettingsService) {\r\n super();\r\n\r\n eventBusService\r\n .observe(UserPermissionUpdatedEvent)\r\n .pipe(\r\n withLatestFrom(userSettingsService.userSettings$),\r\n filter(([event, userSettings]) => event.userGuid === userSettings.userGuid),\r\n withLatestFrom(this.tenants$),\r\n map(([[event], tenants]) => ({\r\n event,\r\n updatedTenant: tenants.find((tenant) => tenant.guid === event.tenantGuid),\r\n })),\r\n filter(({ updatedTenant }) => !!updatedTenant),\r\n switchMap(({ event, updatedTenant }) =>\r\n updatedTenant.features$.pipe(\r\n take(1),\r\n tap((features) => {\r\n const feature = features.find((f) => f.featureId === event.featureId);\r\n if (feature) {\r\n feature.featureAccessLevel = event.featureAccessLevel;\r\n } else {\r\n features.push(new Feature(event.featureId, event.featureAccessLevel));\r\n }\r\n updatedTenant.features$.next(features);\r\n })\r\n )\r\n ),\r\n takeUntil(this.onDestroy$)\r\n )\r\n .subscribe();\r\n\r\n eventBusService\r\n .observe(FeatureUpdatedEvent)\r\n .pipe(\r\n withLatestFrom(this.tenants$),\r\n map(([event, tenants]) => ({\r\n event,\r\n updatedTenant: tenants.find((tenant) => tenant.guid === event.tenantGuid),\r\n })),\r\n filter(({ updatedTenant }) => !!updatedTenant),\r\n switchMap(({ event, updatedTenant }) =>\r\n updatedTenant.features$.pipe(\r\n take(1),\r\n tap((features) => {\r\n const activeFeatures = event.features.filter((e) => e.active);\r\n features = features.filter((f) => activeFeatures.find((a) => a.id === f.featureId));\r\n updatedTenant.features$.next(features);\r\n })\r\n )\r\n ),\r\n takeUntil(this.onDestroy$)\r\n )\r\n .subscribe();\r\n\r\n eventBusService\r\n .observe(MaintenanceUpdatedEvent)\r\n .pipe(withLatestFrom(this.tenants$), takeUntil(this.onDestroy$))\r\n .subscribe(([event, tenants]) => {\r\n tenants.forEach((tenant) => {\r\n tenant.underMaintenance = event.tenantSisIdsUnderMaintenance.includes(tenant.sisId);\r\n });\r\n });\r\n }\r\n\r\n // todo ensure proper interface of positionGeoMap\r\n}\r\n","import { TenantAdapter } from 'src/app/domain/tenant/tenant.adapter';\r\nimport { UserSettings } from 'src/app/domain/user-settings/user-settings.model';\r\n\r\nexport class UserSettingsAdapter {\r\n static adapt(item: any): UserSettings | null {\r\n if (item) {\r\n let timeFormat = item.timeFormat;\r\n if (!timeFormat) {\r\n timeFormat = 1;\r\n }\r\n return {\r\n userGuid: item.userGuid,\r\n defaultTenant: TenantAdapter.adaptTenant(item.defaultTenant),\r\n guiLanguage: item.guiLanguage,\r\n timeFormat,\r\n selectedSeason: item.selectedSeason,\r\n isAdministrator: item.isAdministrator,\r\n lastNewsViewed: item.lastNewsViewed != null ? new Date(item.lastNewsViewed) : null,\r\n };\r\n }\r\n return null;\r\n }\r\n}\r\n","import { HttpClient } from '@angular/common/http';\r\nimport { Injectable } from '@angular/core';\r\nimport { firstValueFrom, merge, Observable, Subject } from 'rxjs';\r\nimport { filter, map, shareReplay, tap, withLatestFrom } from 'rxjs/operators';\r\nimport { EventBusService } from 'src/app/core/eventbus/event-bus.service';\r\nimport { UserSettingsUpdatedEvent } from 'src/app/core/eventbus/events';\r\nimport { UserSettingsAdapter } from 'src/app/domain/user-settings/user-settings.adapter';\r\nimport { UserSettings } from 'src/app/domain/user-settings/user-settings.model';\r\nimport { UserSettingsPost } from 'src/app/domain/user-settings/user-settings-post.model';\r\nimport { UserMessage } from 'src/app/user-message/user-message.model';\r\nimport { UserMessageService } from 'src/app/user-message/user-message.service';\r\nimport { UserMessageColor } from 'src/app/user-message/user-message-color';\r\nimport { UserMessageIcon } from 'src/app/user-message/user-message-icon';\r\nimport { environment } from 'src/environments/environment';\r\nimport { v4 as v4guid } from 'uuid';\r\n\r\n@Injectable({\r\n providedIn: 'root',\r\n})\r\nexport class UserSettingsService {\r\n private readonly userSettingsUrl = '/user/settings';\r\n private readonly updaterId = v4guid();\r\n private readonly immediateUpdate$ = new Subject();\r\n\r\n private readonly userSettingsRequest$: Observable = this.http\r\n .get(environment.baseUrlApi + this.userSettingsUrl)\r\n .pipe(\r\n map((data: any) => UserSettingsAdapter.adapt(data)),\r\n shareReplay(1)\r\n );\r\n\r\n private readonly userSettingsUpdated$: Observable = merge(\r\n this.eventBus.observe(UserSettingsUpdatedEvent).pipe(\r\n tap((event) => {\r\n if (event.updateSuccessful) {\r\n if (event.userSettings.guiLanguage) {\r\n this.userMessageService.presentToast(\r\n new UserMessage({\r\n message: 'user.message.languagePersistSuccess',\r\n icon: UserMessageIcon.success,\r\n durationMs: 2000,\r\n position: 'top',\r\n color: UserMessageColor.green,\r\n })\r\n );\r\n }\r\n } else {\r\n this.displayErrorMessage(event.userSettings);\r\n }\r\n })\r\n ),\r\n this.immediateUpdate$\r\n ).pipe(\r\n filter((event) => event.updateSuccessful && event.updaterId !== this.updaterId),\r\n withLatestFrom(this.userSettingsRequest$),\r\n map(([event, settings]) => {\r\n const updatedSettings = event.userSettings;\r\n if (updatedSettings.guiLanguage != null) {\r\n settings.guiLanguage = updatedSettings.guiLanguage;\r\n }\r\n if (updatedSettings.selectedSeason != null) {\r\n settings.selectedSeason = updatedSettings.selectedSeason;\r\n }\r\n if (updatedSettings.timeFormat != null) {\r\n settings.timeFormat = updatedSettings.timeFormat;\r\n }\r\n if (updatedSettings.lastNewsViewed != null) {\r\n settings.lastNewsViewed = updatedSettings.lastNewsViewed;\r\n }\r\n return settings;\r\n })\r\n );\r\n\r\n readonly userSettings$ = merge(this.userSettingsRequest$, this.userSettingsUpdated$).pipe(shareReplay(1));\r\n\r\n constructor(\r\n private http: HttpClient,\r\n private userMessageService: UserMessageService,\r\n private eventBus: EventBusService\r\n ) {}\r\n\r\n async updateUserSettings(userSettings: UserSettingsPost): Promise {\r\n userSettings.updaterId = this.updaterId;\r\n this.doImmediateUpdate(userSettings);\r\n try {\r\n await firstValueFrom(this.http.post(`${environment.baseUrlApi}${this.userSettingsUrl}`, userSettings));\r\n } catch {\r\n this.displayErrorMessage(userSettings);\r\n }\r\n }\r\n\r\n /*\r\n We don't want to wait for the update from the API before changing the settings in the SPA, even if the API fails\r\n */\r\n private doImmediateUpdate(userSettings: UserSettingsPost): void {\r\n const event = new UserSettingsUpdatedEvent();\r\n event.userSettings = {\r\n timeFormat: userSettings.timeFormat,\r\n guiLanguage: userSettings.guiLanguage,\r\n selectedSeason: userSettings.selectedSeason,\r\n lastNewsViewed: userSettings.newsViewed ? new Date() : null,\r\n };\r\n event.updateSuccessful = true;\r\n this.immediateUpdate$.next(event);\r\n }\r\n\r\n private displayErrorMessage(userSettings?: UserSettings): void {\r\n this.userMessageService.presentToast(\r\n new UserMessage({\r\n color: UserMessageColor.red,\r\n icon: UserMessageIcon.failed,\r\n message: this.getErrorMessage(userSettings),\r\n position: 'top',\r\n })\r\n );\r\n }\r\n\r\n private getErrorMessage(userSettings?: UserSettings): string {\r\n if (!userSettings) {\r\n return 'general.phrase.saveFailed';\r\n } else {\r\n if (userSettings.guiLanguage != null) {\r\n return 'user.message.languagePersistFailed';\r\n }\r\n if (userSettings.timeFormat != null) {\r\n return 'user.message.timeFormatPersistFailed';\r\n }\r\n }\r\n return 'general.phrase.saveFailed';\r\n }\r\n}\r\n","import { Injectable } from '@angular/core';\r\nimport { MsalBroadcastService, MsalService } from '@azure/msal-angular';\r\nimport { InteractionStatus } from '@azure/msal-browser';\r\nimport { TranslateService } from '@ngx-translate/core';\r\nimport { filter, map, shareReplay, takeUntil } from 'rxjs/operators';\r\nimport { Unsubscriber } from 'src/app/core/unsubscriber';\r\nimport { UserSettings } from 'src/app/domain/user-settings/user-settings.model';\r\nimport { UserSettingsService } from 'src/app/domain/user-settings/user-settings.service';\r\n\r\n@Injectable({\r\n providedIn: 'root',\r\n})\r\nexport class UserService extends Unsubscriber {\r\n static readonly supportedLanguages = ['en', 'de', 'fr', 'it'];\r\n static readonly urlLanguage = '/user/language';\r\n static readonly urlTimeFormat = '/user/timeformat';\r\n\r\n readonly userName$ = this.msalBroadcastService.inProgress$.pipe(\r\n filter((interactionStatus) => interactionStatus === InteractionStatus.None),\r\n map(() => this.msalService.instance.getActiveAccount()?.name),\r\n shareReplay(1)\r\n );\r\n\r\n readonly isAuthenticated$ = this.msalBroadcastService.inProgress$.pipe(\r\n filter((interactionStatus) => interactionStatus === InteractionStatus.None),\r\n map(() => this.msalService.instance.getActiveAccount() != null),\r\n shareReplay(1)\r\n );\r\n\r\n constructor(\r\n private userSettingsService: UserSettingsService,\r\n private msalService: MsalService,\r\n private msalBroadcastService: MsalBroadcastService,\r\n private translateService: TranslateService\r\n ) {\r\n super();\r\n\r\n this.userSettingsService.userSettings$\r\n .pipe(takeUntil(this.onDestroy$))\r\n .subscribe((userSettings) => this.loadDefaultSettings(userSettings));\r\n }\r\n\r\n logout(): void {\r\n if (this.msalService.instance.getActiveAccount() != null) {\r\n this.msalService.logout();\r\n }\r\n }\r\n\r\n private loadDefaultSettings(userSettings: UserSettings) {\r\n if (userSettings && userSettings.defaultTenant) {\r\n if (userSettings.guiLanguage && UserService.supportedLanguages.includes(userSettings.guiLanguage)) {\r\n this.translateService.use(userSettings.guiLanguage);\r\n } else {\r\n this.translateService.use('de');\r\n }\r\n }\r\n }\r\n}\r\n","import { Attachment } from 'src/app/email-delivery/domain/attachment.model';\r\nimport { EmailDelivery } from 'src/app/email-delivery/domain/email-delivery.model';\r\nimport { Recipient } from 'src/app/email-delivery/domain/recipient.model';\r\n\r\nexport class EmailDeliveryAdapter {\r\n static adapt(item: any): EmailDelivery | null {\r\n if (!item) {\r\n return null;\r\n }\r\n\r\n const attachments: Attachment[] = [\r\n { guid: null, name: 'emaildelivery.phrase.noAttachment', pdfName: null, pdfUrl: null, outdated: false },\r\n ];\r\n if (item.attachments) {\r\n item.attachments.forEach((attachment: any) => {\r\n attachments.push({\r\n guid: attachment.guid,\r\n name: `${attachment.name} (${attachment.pdfName})`,\r\n pdfName: attachment.pdfName,\r\n pdfUrl: attachment.pdfUrl,\r\n });\r\n });\r\n }\r\n\r\n const recipients: Recipient[] = [];\r\n if (item.recipients) {\r\n item.recipients.forEach((recipient: any) => {\r\n recipients.push({\r\n guid: recipient.guid,\r\n name: recipient.name,\r\n email: recipient.email,\r\n location: recipient.location ?? '',\r\n });\r\n });\r\n }\r\n\r\n recipients.sort((a, b) => a.name.localeCompare(b.name));\r\n\r\n const lastSentAttachment = attachments.find((a) => a.guid == item.lastSentAttachmentGuid) || attachments[0];\r\n\r\n return {\r\n guid: item.guid,\r\n text: item.text,\r\n subject: item.subject,\r\n attachments,\r\n recipients,\r\n lastSentAttachment,\r\n };\r\n }\r\n}\r\n","import { CommonModule } from '@angular/common';\r\nimport { NgModule } from '@angular/core';\r\nimport { FormsModule, ReactiveFormsModule } from '@angular/forms';\r\nimport { MatTooltipModule } from '@angular/material/tooltip';\r\nimport { RouterModule } from '@angular/router';\r\nimport { IonicModule } from '@ionic/angular';\r\nimport { TranslateModule } from '@ngx-translate/core';\r\nimport { CoreModule } from 'src/app/core/core.module';\r\nimport { PendingChangesGuard } from 'src/app/core/guards/pending-changes.guard';\r\nimport { EmailDeliveryPage } from 'src/app/email-delivery/email-delivery.page';\r\nimport { RecipientItemComponent } from 'src/app/email-delivery/recipient-item/recipient-item.component';\r\n\r\n@NgModule({\r\n imports: [\r\n CommonModule,\r\n FormsModule,\r\n IonicModule,\r\n RouterModule.forChild([\r\n {\r\n path: '',\r\n component: EmailDeliveryPage,\r\n canDeactivate: [PendingChangesGuard],\r\n },\r\n ]),\r\n TranslateModule,\r\n MatTooltipModule,\r\n CoreModule,\r\n ReactiveFormsModule,\r\n ],\r\n declarations: [EmailDeliveryPage, RecipientItemComponent],\r\n})\r\nexport class EmailDeliveryPageModule {}\r\n","import { Component, HostListener } from '@angular/core';\r\nimport { FormControl } from '@angular/forms';\r\nimport { MsalService } from '@azure/msal-angular';\r\nimport { AlertController } from '@ionic/angular';\r\nimport { TranslateService } from '@ngx-translate/core';\r\nimport { firstValueFrom, Observable } from 'rxjs';\r\nimport { debounceTime, filter, map, shareReplay, startWith, switchMap, takeUntil } from 'rxjs/operators';\r\nimport { FeatureId } from 'src/app//domain/feature/feature-id.model';\r\nimport { LogbookModalService } from 'src/app/core/components/logbook/logbook-modal/logbook-modal.service';\r\nimport { Unsubscriber } from 'src/app/core/unsubscriber';\r\nimport { ScreenSizeService } from 'src/app/core/utils/screen-size.service';\r\nimport { DestinationService } from 'src/app/domain/destination/destination.service';\r\nimport { Feature } from 'src/app/domain/feature/feature.model';\r\nimport { FeatureAccessLevel } from 'src/app/domain/feature/feature-access-level.model';\r\nimport { Attachment } from 'src/app/email-delivery/domain/attachment.model';\r\nimport { EmailDelivery } from 'src/app/email-delivery/domain/email-delivery.model';\r\nimport { Recipient } from 'src/app/email-delivery/domain/recipient.model';\r\nimport { EmailDeliveryService } from 'src/app/email-delivery/email-delivery.service';\r\n\r\n@Component({\r\n selector: 'sis-email-delivery',\r\n templateUrl: './email-delivery.page.html',\r\n styleUrls: ['./email-delivery.page.scss'],\r\n standalone: false\r\n})\r\nexport class EmailDeliveryPage extends Unsubscriber {\r\n readonly logbookAvailable$ = this.logbookModalService.logbookAvailable$;\r\n readonly recipients$: Observable = this.emailDeliveryService.recipients$.pipe(\r\n filter((recipients) => !!recipients),\r\n switchMap((recipients) =>\r\n this.searchControl.valueChanges.pipe(\r\n startWith(this.searchControl.value ?? ''),\r\n debounceTime(200),\r\n map((searchString) => searchString.toLowerCase()),\r\n map((searchString) =>\r\n recipients.filter((recipient) =>\r\n Object.values(recipient).some((key) => key?.toLowerCase().includes(searchString))\r\n )\r\n )\r\n )\r\n ),\r\n shareReplay({\r\n bufferSize: 1,\r\n refCount: true,\r\n })\r\n );\r\n\r\n private testEmailRecipient: string;\r\n\r\n bigScreenMode: boolean;\r\n writePermission: boolean;\r\n rerender: boolean = false;\r\n controlsEnabled: boolean = true;\r\n\r\n isPdfCreating: boolean;\r\n isSending: boolean;\r\n\r\n emailDelivery: EmailDelivery;\r\n emailText: string;\r\n subjectText: string;\r\n emptyText: boolean;\r\n emptySubject: boolean;\r\n\r\n attachments: Attachment[];\r\n selectedAttachment: Attachment;\r\n\r\n selectedTab = '0';\r\n searchControl = new FormControl('');\r\n\r\n newRecipient: Recipient;\r\n\r\n featureId = FeatureId.SISMEDIA_EMAILDELIVERY;\r\n\r\n constructor(\r\n private translateService: TranslateService,\r\n private screenSizeService: ScreenSizeService,\r\n private destinationService: DestinationService,\r\n private emailDeliveryService: EmailDeliveryService,\r\n private logbookModalService: LogbookModalService,\r\n private msalService: MsalService,\r\n private alertController: AlertController\r\n ) {\r\n super();\r\n }\r\n\r\n ngOnInit(): void {\r\n this.destinationService.selectedTenantFeatures$.pipe(takeUntil(this.onDestroy$)).subscribe((features) => {\r\n this.writePermission =\r\n features?.some((f) =>\r\n f.hasMinimumRequirementFor(new Feature(this.featureId, FeatureAccessLevel.WRITE))\r\n ) ?? false;\r\n });\r\n\r\n this.screenSizeService.bigScreenMode$.pipe(takeUntil(this.onDestroy$)).subscribe((bigScreenMode) => {\r\n this.bigScreenMode = bigScreenMode;\r\n });\r\n\r\n this.emailDeliveryService.pdfGenerated$.pipe(takeUntil(this.onDestroy$)).subscribe(() => {\r\n this.isPdfCreating = false;\r\n });\r\n\r\n this.emailDeliveryService.emailDelivery$\r\n .pipe(\r\n filter((emailDelivery) => !!emailDelivery),\r\n takeUntil(this.onDestroy$)\r\n )\r\n .subscribe((emailDelivery) => {\r\n this.isSending = false;\r\n this.emailDelivery = emailDelivery;\r\n this.emailText = emailDelivery.text;\r\n this.subjectText = emailDelivery.subject;\r\n this.attachments = emailDelivery.attachments;\r\n this.attachmentChanged(emailDelivery.lastSentAttachment);\r\n });\r\n\r\n this.translateService.onLangChange.pipe(takeUntil(this.onDestroy$)).subscribe(() => {\r\n this.rerender = true;\r\n setTimeout(() => {\r\n this.rerender = false;\r\n }, 50);\r\n });\r\n\r\n this.testEmailRecipient = this.msalService.instance.getActiveAccount().username;\r\n }\r\n\r\n downloadPdf(): void {\r\n if (!this.selectedAttachment?.outdated) {\r\n const link = document.createElement('a');\r\n link.href = this.selectedAttachment.pdfUrl + '?' + (Math.random() * 10000).toString();\r\n link.click();\r\n }\r\n }\r\n\r\n selectionChanged(index: string): void {\r\n this.selectedTab = index;\r\n }\r\n\r\n emailTextChanged(text: string): void {\r\n this.emailText = text;\r\n this.emptyText = this.isEmpty(text);\r\n }\r\n\r\n subjectTextChanged(text: string): void {\r\n this.subjectText = text;\r\n this.emptySubject = this.isEmpty(text);\r\n }\r\n\r\n attachmentChanged(item: Attachment): void {\r\n this.selectedAttachment = item;\r\n\r\n if (item.pdfUrl != null) {\r\n this.emailDeliveryService.checkAttachmentOutdated(item.pdfUrl).subscribe((outdated) => {\r\n item.outdated = outdated;\r\n });\r\n }\r\n }\r\n\r\n async createPdf(): Promise {\r\n if (this.writePermission && !this.isPdfCreating && this.selectedAttachment?.pdfUrl != null) {\r\n this.isPdfCreating = true;\r\n const success = await this.emailDeliveryService.postGeneratePdf(this.selectedAttachment.guid);\r\n if (!success) {\r\n this.isPdfCreating = false;\r\n }\r\n }\r\n }\r\n\r\n openTestEmailDialog(): Promise {\r\n return new Promise(async (resolve) => {\r\n this.alertController\r\n .create({\r\n header: await this.getTranslatedString('emaildelivery.phrase.sendTestEmailTo'),\r\n subHeader: '',\r\n inputs: [\r\n {\r\n name: 'email',\r\n type: 'text',\r\n value: `${this.testEmailRecipient}`,\r\n },\r\n ],\r\n buttons: [\r\n {\r\n text: await this.getTranslatedString('emaildelivery.phrase.sendEmail'),\r\n handler: async (data: { email: string }) => {\r\n if (data?.email?.length) {\r\n await this.sendEmail(data.email);\r\n this.testEmailRecipient = data.email;\r\n resolve();\r\n return true;\r\n }\r\n return false;\r\n },\r\n },\r\n {\r\n text: await this.getTranslatedString('general.term.cancel'),\r\n role: 'cancel',\r\n },\r\n ],\r\n backdropDismiss: false,\r\n })\r\n .then((modal) => {\r\n modal.present();\r\n });\r\n });\r\n }\r\n\r\n async sendEmail(recipient?: string): Promise {\r\n if (\r\n this.writePermission &&\r\n !this.isSending &&\r\n !this.emptySubject &&\r\n !this.emptyText &&\r\n !this.selectedAttachment?.outdated\r\n ) {\r\n this.isSending = true;\r\n const success = await this.emailDeliveryService.postSendEmail(\r\n this.selectedAttachment?.guid,\r\n this.emailText,\r\n this.subjectText,\r\n recipient\r\n );\r\n if (!success) {\r\n this.isSending = false;\r\n }\r\n }\r\n }\r\n\r\n editItem(editing: boolean) {\r\n this.controlsEnabled = !editing;\r\n\r\n if (!editing && this.newRecipient) {\r\n this.newRecipient = null;\r\n }\r\n }\r\n\r\n addRecipient() {\r\n this.controlsEnabled = false;\r\n this.newRecipient = {\r\n email: null,\r\n guid: null,\r\n location: null,\r\n name: null,\r\n };\r\n }\r\n\r\n private isEmpty(str: string): boolean {\r\n return !str || str.length === 0;\r\n }\r\n\r\n @HostListener('window:beforeunload')\r\n canDeactivate(): boolean | Observable {\r\n return this.controlsEnabled;\r\n }\r\n\r\n private getTranslatedString(translateKey: string): Promise {\r\n return firstValueFrom(this.translateService.get(translateKey));\r\n }\r\n}\r\n","\r\n \r\n\r\n \r\n \r\n {{'emaildelivery.phrase.createEmail' | translate}}\r\n \r\n \r\n {{'emaildelivery.term.addressManagement' | translate}}\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 {{item.name | translate}}\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 {{item.name | translate}}\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 {{ 'emaildelivery.phrase.pdfGenerating' | translate }}\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 {{ 'general.term.name' | translate }}\r\n {{ 'destination.term.location' | translate }}\r\n {{ 'general.term.email' | translate }}\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 {{ 'emaildelivery.phrase.createEmail' | translate }}\r\n \r\n \r\n \r\n {{ 'emaildelivery.term.addressManagement' | translate }}\r\n \r\n \r\n \r\n\r\n","import { HttpClient } from '@angular/common/http';\r\nimport { Injectable } from '@angular/core';\r\nimport { firstValueFrom, merge, Observable, of } from 'rxjs';\r\nimport { catchError, filter, map, shareReplay, switchMap, take, withLatestFrom } from 'rxjs/operators';\r\nimport { EventBusService } from 'src/app/core/eventbus/event-bus.service';\r\nimport {\r\n EmailDeliveryRecipientUpsertedEvent,\r\n EmailDeliverySentEvent,\r\n HtmlToPdfGeneratedEvent,\r\n} from 'src/app/core/eventbus/events';\r\nimport { DestinationService } from 'src/app/domain/destination/destination.service';\r\nimport { Feature } from 'src/app/domain/feature/feature.model';\r\nimport { FeatureAccessLevel } from 'src/app/domain/feature/feature-access-level.model';\r\nimport { FeatureId } from 'src/app/domain/feature/feature-id.model';\r\nimport { UserSettingsService } from 'src/app/domain/user-settings/user-settings.service';\r\nimport { Attachment } from 'src/app/email-delivery/domain/attachment.model';\r\nimport { EmailDeliveryAdapter } from 'src/app/email-delivery/domain/email-delivery.adapter';\r\nimport { EmailDelivery } from 'src/app/email-delivery/domain/email-delivery.model';\r\nimport { Recipient } from 'src/app/email-delivery/domain/recipient.model';\r\nimport { UserMessage } from 'src/app/user-message/user-message.model';\r\nimport { UserMessageService } from 'src/app/user-message/user-message.service';\r\nimport { UserMessageColor } from 'src/app/user-message/user-message-color';\r\nimport { UserMessageIcon } from 'src/app/user-message/user-message-icon';\r\nimport { environment } from 'src/environments/environment';\r\n\r\n@Injectable({\r\n providedIn: 'root',\r\n})\r\nexport class EmailDeliveryService {\r\n private readonly postGeneratePdfUrl: string = '/emaildelivery/pdfcreator';\r\n private readonly postSendEmailUrl: string = '/emaildelivery/post';\r\n private readonly postRecipientUpsertUrl: string = '/emaildelivery/receipientupsert';\r\n private readonly getUrl: string = '/emaildelivery/get';\r\n private readonly requiredFeature = new Feature(FeatureId.SISMEDIA_EMAILDELIVERY, FeatureAccessLevel.READ);\r\n\r\n private readonly emailDeliveryRequest$: Observable =\r\n this.destinationService.selectedTenantFeatures$.pipe(\r\n filter((features) => features.some((f) => f.hasMinimumRequirementFor(this.requiredFeature))),\r\n switchMap(() => this.httpClient.get(`${environment.baseUrlApi}${this.getUrl}`)),\r\n map((data) => EmailDeliveryAdapter.adapt(data)),\r\n shareReplay({\r\n bufferSize: 1,\r\n refCount: true,\r\n })\r\n );\r\n\r\n private readonly emailUpdate$: Observable = this.eventBus.observe(EmailDeliverySentEvent).pipe(\r\n withLatestFrom(this.destinationService.selectedTenant$),\r\n filter(([event, tenant]) => event.tenantGuid === tenant.guid),\r\n withLatestFrom(this.emailDeliveryRequest$),\r\n map(([[event], data]) => {\r\n this.presentEmailDeliveryToast(event.successful);\r\n if (event.successful) {\r\n data.text = event.emailText;\r\n data.subject = event.subjectText;\r\n data.lastSentAttachment = data.attachments.find((attachment) => attachment.guid === event.attachmentGuid);\r\n }\r\n return data;\r\n })\r\n );\r\n\r\n readonly emailDelivery$ = merge(this.emailDeliveryRequest$, this.emailUpdate$).pipe(\r\n shareReplay({\r\n bufferSize: 1,\r\n refCount: true,\r\n })\r\n );\r\n\r\n private readonly recipientsUpdate$: Observable = this.eventBus\r\n .observe(EmailDeliveryRecipientUpsertedEvent)\r\n .pipe(\r\n withLatestFrom(this.emailDelivery$.pipe(map((emailDelivery) => emailDelivery?.recipients))),\r\n withLatestFrom(this.userSettingsService.userSettings$),\r\n map(([[updatedEvent, data], userSettings]) => {\r\n if (updatedEvent.changedBy === userSettings.userGuid) {\r\n this.presentEmailRecipientUpdateToast(updatedEvent.successful);\r\n }\r\n if (updatedEvent.successful) {\r\n const updatedRecipient = data.find((d) => d.guid === updatedEvent.recipientGuid);\r\n if (updatedEvent.deleted) {\r\n data.splice(data.indexOf(updatedRecipient), 1);\r\n return data;\r\n }\r\n\r\n if (updatedRecipient) {\r\n updatedRecipient.email = updatedEvent.email;\r\n updatedRecipient.location = updatedEvent.location;\r\n updatedRecipient.name = updatedEvent.name;\r\n } else {\r\n data.push({\r\n guid: updatedEvent.recipientGuid,\r\n name: updatedEvent.name,\r\n location: updatedEvent.location,\r\n email: updatedEvent.email,\r\n });\r\n }\r\n }\r\n return data;\r\n })\r\n );\r\n\r\n readonly recipients$ = merge(\r\n this.emailDelivery$.pipe(map((emailDelivery) => emailDelivery?.recipients)),\r\n this.recipientsUpdate$\r\n ).pipe(\r\n map((recipient) => recipient.sort((a, b) => (a.name.toUpperCase() > b.name.toUpperCase() ? 1 : -1))),\r\n shareReplay({\r\n bufferSize: 1,\r\n refCount: true,\r\n })\r\n );\r\n\r\n readonly pdfGenerated$: Observable = this.eventBus.observe(HtmlToPdfGeneratedEvent).pipe(\r\n withLatestFrom(this.destinationService.selectedTenant$, this.userSettingsService.userSettings$),\r\n filter(\r\n ([event, tenant, user]) => !!tenant && event.tenantGuid === tenant.guid && event.changedBy === user.userGuid\r\n ),\r\n map(([event]) => {\r\n this.presentPdfGeneratedToast(event.successful);\r\n return event;\r\n }),\r\n switchMap((event) => {\r\n if (!event.successful) {\r\n return of(null);\r\n }\r\n return this.emailDelivery$.pipe(\r\n take(1),\r\n map((emailDelivery) => emailDelivery?.attachments?.find((attachment) => attachment.pdfUrl === event.pdfUrl)),\r\n switchMap((attachment) => {\r\n if (!attachment) {\r\n return of(null);\r\n }\r\n return this.checkAttachmentOutdated(attachment.pdfUrl).pipe(\r\n map((outdated) => {\r\n attachment.outdated = outdated;\r\n return attachment;\r\n })\r\n );\r\n })\r\n );\r\n })\r\n );\r\n\r\n constructor(\r\n private httpClient: HttpClient,\r\n private destinationService: DestinationService,\r\n private userSettingsService: UserSettingsService,\r\n private userMessageService: UserMessageService,\r\n private eventBus: EventBusService\r\n ) {}\r\n\r\n async postGeneratePdf(attachmentGuid: string): Promise {\r\n return firstValueFrom(\r\n this.httpClient\r\n .post(\r\n `${environment.baseUrlApi}${this.postGeneratePdfUrl}`,\r\n { attachmentGuid },\r\n { headers: { 'Content-Type': 'application/json' } }\r\n )\r\n .pipe(\r\n map(() => true),\r\n catchError(() => {\r\n this.presentPdfGeneratedToast(false);\r\n return of(false);\r\n })\r\n )\r\n );\r\n }\r\n\r\n async postSendEmail(\r\n attachmentGuid: string,\r\n emailText: string,\r\n subjectText: string,\r\n recipient?: string\r\n ): Promise {\r\n return firstValueFrom(\r\n this.httpClient\r\n .post(\r\n `${environment.baseUrlApi}${this.postSendEmailUrl}`,\r\n { attachmentGuid, text: emailText, subject: subjectText, testMailRecipient: recipient },\r\n {\r\n headers: { 'Content-Type': 'application/json' },\r\n }\r\n )\r\n .pipe(\r\n map(() => true),\r\n catchError(() => {\r\n this.presentEmailDeliveryToast(false);\r\n return of(false);\r\n })\r\n )\r\n );\r\n }\r\n\r\n async postRecipientUpsert(recipient: Recipient, deleteRecipient: boolean): Promise {\r\n return firstValueFrom(\r\n this.httpClient\r\n .post(\r\n `${environment.baseUrlApi}${this.postRecipientUpsertUrl}`,\r\n {\r\n recipientGuid: recipient.guid,\r\n name: recipient.name,\r\n email: recipient.email,\r\n location: recipient.location,\r\n delete: deleteRecipient,\r\n },\r\n {\r\n headers: { 'Content-Type': 'application/json' },\r\n }\r\n )\r\n .pipe(\r\n map(() => true),\r\n catchError(() => {\r\n this.presentEmailRecipientUpdateToast(false);\r\n return of(false);\r\n })\r\n )\r\n );\r\n }\r\n\r\n checkAttachmentOutdated(url: string): Observable {\r\n return this.httpClient.head(url, { observe: 'response' }).pipe(\r\n map((response) => {\r\n const lastModified = response.headers.get('Last-Modified');\r\n if (lastModified != null) {\r\n return Date.parse(lastModified) + 24 * 60 * 60 * 1000 < Date.now();\r\n }\r\n return true;\r\n }),\r\n catchError(() => of(true))\r\n );\r\n }\r\n\r\n private presentEmailDeliveryToast(success: boolean): void {\r\n const message = success\r\n ? 'emaildelivery.phrase.emailDeliverySuccessful'\r\n : 'emaildelivery.phrase.emailDeliveryFailed';\r\n this.presentToast(success, message);\r\n }\r\n\r\n private presentPdfGeneratedToast(success: boolean): void {\r\n const message = success\r\n ? 'emaildelivery.phrase.pdfGenerationSuccessful'\r\n : 'emaildelivery.phrase.pdfGenerationFailed';\r\n this.presentToast(success, message);\r\n }\r\n\r\n private presentEmailRecipientUpdateToast(success: boolean): void {\r\n const message = success ? 'general.phrase.saved' : 'general.phrase.saveFailed';\r\n this.presentToast(success, message);\r\n }\r\n\r\n private presentToast(success: boolean, message: string): void {\r\n const color = success ? UserMessageColor.green : UserMessageColor.red;\r\n const icon = success ? UserMessageIcon.success : UserMessageIcon.failed;\r\n this.userMessageService.presentToast(new UserMessage({ message, icon, durationMs: 2000, position: 'top', color }));\r\n }\r\n}\r\n","import { Component, EventEmitter, Input, OnInit, Output } from '@angular/core';\r\nimport { FormControl, FormGroup, Validators } from '@angular/forms';\r\nimport { TranslateService } from '@ngx-translate/core';\r\nimport { takeUntil } from 'rxjs/operators';\r\nimport { Unsubscriber } from 'src/app/core/unsubscriber';\r\nimport { ConfirmationDialogService } from 'src/app/core/utils/confirmation-dialog.service';\r\nimport { ScreenSizeService } from 'src/app/core/utils/screen-size.service';\r\nimport { Recipient } from 'src/app/email-delivery/domain/recipient.model';\r\nimport { EmailDeliveryService } from 'src/app/email-delivery/email-delivery.service';\r\n\r\n@Component({\r\n selector: 'sis-recipient-item',\r\n templateUrl: './recipient-item.component.html',\r\n styleUrls: ['./recipient-item.component.scss'],\r\n standalone: false\r\n})\r\nexport class RecipientItemComponent extends Unsubscriber implements OnInit {\r\n @Input() recipient: Recipient;\r\n @Input() controlsEnabled: boolean;\r\n @Input() isEditing: boolean;\r\n\r\n @Output() editing = new EventEmitter();\r\n\r\n bigScreenMode: boolean;\r\n formGroup: FormGroup;\r\n locationTranslation: string;\r\n showSpinner = false;\r\n edited = false;\r\n\r\n constructor(\r\n private emailDeliveryService: EmailDeliveryService,\r\n private translateService: TranslateService,\r\n private screenSizeService: ScreenSizeService,\r\n private confirmationDialogService: ConfirmationDialogService\r\n ) {\r\n super();\r\n }\r\n\r\n ngOnInit(): void {\r\n this.formGroup = new FormGroup({\r\n name: new FormControl(this.recipient?.name, [Validators.required]),\r\n location: new FormControl(this.recipient?.location),\r\n email: new FormControl(this.recipient?.email, [Validators.required, Validators.email]),\r\n });\r\n\r\n this.formGroup.disable({ emitEvent: false });\r\n\r\n this.formGroup.valueChanges.pipe(takeUntil(this.onDestroy$)).subscribe(() => {\r\n this.edited = this.anyValueChanged();\r\n });\r\n\r\n this.screenSizeService.bigScreenMode$.pipe(takeUntil(this.onDestroy$)).subscribe((bigScreenMode) => {\r\n this.bigScreenMode = bigScreenMode;\r\n });\r\n\r\n if (this.isEditing) {\r\n this.edit();\r\n }\r\n\r\n this.translateService\r\n .get('destination.term.location')\r\n .pipe(takeUntil(this.onDestroy$))\r\n .subscribe((translation) => (this.locationTranslation = translation));\r\n }\r\n\r\n private anyValueChanged(): boolean {\r\n return (\r\n this.formGroup.controls.name.value !== this.recipient?.name ||\r\n this.formGroup.controls.email.value !== this.recipient?.email ||\r\n this.formGroup.controls.location.value !== this.recipient?.location\r\n );\r\n }\r\n\r\n edit() {\r\n this.formGroup.enable({ emitEvent: false });\r\n this.editing.emit(true);\r\n }\r\n\r\n async deleteRecipient(): Promise {\r\n const confirmed = await this.confirmationDialogService.presentAlert('general.phrase.delete', 'general.term.delete');\r\n if (confirmed) {\r\n this.showSpinner = true;\r\n await this.emailDeliveryService.postRecipientUpsert(this.recipient, true);\r\n this.showSpinner = false;\r\n }\r\n }\r\n\r\n async upsertRecipient(): Promise {\r\n if (!this.edited || this.formGroup.invalid) {\r\n return;\r\n }\r\n\r\n this.showSpinner = true;\r\n\r\n const recipient = {\r\n guid: this.recipient?.guid,\r\n name: this.formGroup.controls.name.value,\r\n location: this.formGroup.controls.location.value,\r\n email: this.formGroup.controls.email.value,\r\n };\r\n\r\n const success = await this.emailDeliveryService.postRecipientUpsert(recipient, false);\r\n if (success) {\r\n this.formGroup.disable({ emitEvent: false });\r\n this.editing.emit(false);\r\n this.recipient = recipient;\r\n }\r\n\r\n this.showSpinner = false;\r\n }\r\n\r\n cancelRecipientEdit() {\r\n this.formGroup.disable({ emitEvent: false });\r\n this.formGroup.reset({\r\n name: this.recipient?.name,\r\n location: this.recipient?.location,\r\n email: this.recipient?.email,\r\n });\r\n this.editing.emit(false);\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 {{ 'general.term.name' | translate }}: \r\n \r\n \r\n \r\n \r\n \r\n {{ 'general.term.email' | translate }}: \r\n \r\n \r\n \r\n \r\n \r\n {{ 'destination.term.location' | translate }}: \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 } from '@angular/core';\r\n\r\n@Component({\r\n selector: 'sis-error-page',\r\n templateUrl: './error.page.html',\r\n styleUrls: ['./error.page.scss'],\r\n standalone: false\r\n})\r\nexport class ErrorPage {}\r\n","\r\n \r\n \r\n {{ \"error.title\" | translate }} \r\n \r\n \r\n \r\n \r\n \r\n {{ \"error.text\" | translate}}\r\n \r\n \r\n \r\n\r\n","import { FeatureManagementFeature } from 'src/app/feature-management/domain/feature.model';\r\n\r\nexport class FeatureAdapter {\r\n static adapt(item: any): FeatureManagementFeature[] {\r\n const features: FeatureManagementFeature[] = [];\r\n\r\n if (!item) {\r\n return features;\r\n }\r\n\r\n item.forEach((item) => {\r\n features.push({\r\n id: item.id,\r\n order: item.order,\r\n active: item.active,\r\n adminOnly: item.adminOnly,\r\n });\r\n });\r\n\r\n return features;\r\n }\r\n}\r\n","import { Component, EventEmitter, Input, OnInit, Output } from '@angular/core';\r\nimport { FeatureId } from 'src/app/domain/feature/feature-id.model';\r\n\r\n@Component({\r\n selector: 'sis-feature-management-item',\r\n templateUrl: './feature-management-item.component.html',\r\n styleUrls: ['./feature-management-item.component.scss'],\r\n standalone: false\r\n})\r\nexport class FeatureManagementItemComponent implements OnInit {\r\n @Input() feature: any;\r\n @Output() featureChanged = new EventEmitter();\r\n\r\n activeDisabled: boolean;\r\n\r\n ngOnInit(): void {\r\n this.activeDisabled = this.feature.id === FeatureId.USERMANAGEMENT && this.feature.active;\r\n }\r\n\r\n onChanged() {\r\n this.featureChanged.emit();\r\n }\r\n}\r\n","\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n ({{ feature.id }})\r\n {{ feature.nameTranslationString | translate }}\r\n \r\n \r\n\r\n","import { ScrollingModule } from '@angular/cdk/scrolling';\r\nimport { CommonModule } from '@angular/common';\r\nimport { NgModule } from '@angular/core';\r\nimport { FormsModule, ReactiveFormsModule } from '@angular/forms';\r\nimport { MatTooltipModule } from '@angular/material/tooltip';\r\nimport { RouterModule } from '@angular/router';\r\nimport { IonicModule } from '@ionic/angular';\r\nimport { TranslateModule } from '@ngx-translate/core';\r\nimport { CoreModule } from 'src/app/core/core.module';\r\nimport { FeatureManagementPage } from 'src/app/feature-management/feature-management.page';\r\nimport { FeatureManagementItemComponent } from 'src/app/feature-management/feature-management-item/feature-management-item.component';\r\n\r\n@NgModule({\r\n imports: [\r\n CommonModule,\r\n IonicModule,\r\n FormsModule,\r\n ReactiveFormsModule,\r\n CoreModule,\r\n MatTooltipModule,\r\n RouterModule.forChild([\r\n {\r\n path: '',\r\n component: FeatureManagementPage,\r\n },\r\n ]),\r\n TranslateModule,\r\n ScrollingModule,\r\n ],\r\n declarations: [FeatureManagementPage, FeatureManagementItemComponent],\r\n})\r\nexport class FeatureManagementPageModule {}\r\n","import { HttpClient } from '@angular/common/http';\r\nimport { Component, OnInit } from '@angular/core';\r\nimport { AlertController } from '@ionic/angular';\r\nimport { TranslateService } from '@ngx-translate/core';\r\nimport { combineLatest, filter, firstValueFrom, map, merge, takeUntil, withLatestFrom } from 'rxjs';\r\nimport { EventBusService } from 'src/app/core/eventbus/event-bus.service';\r\nimport { FeatureUpdatedEvent } from 'src/app/core/eventbus/events';\r\nimport { Unsubscriber } from 'src/app/core/unsubscriber';\r\nimport { DestinationService } from 'src/app/domain/destination/destination.service';\r\nimport { UserSettingsService } from 'src/app/domain/user-settings/user-settings.service';\r\nimport { FeatureAdapter } from 'src/app/feature-management/domain/feature.adapter';\r\nimport { FeatureManagementFeature } from 'src/app/feature-management/domain/feature.model';\r\nimport { UserManagementService } from 'src/app/user-management/user-management.service';\r\nimport { UserMessage } from 'src/app/user-message/user-message.model';\r\nimport { UserMessageService } from 'src/app/user-message/user-message.service';\r\nimport { UserMessageColor } from 'src/app/user-message/user-message-color';\r\nimport { UserMessageIcon } from 'src/app/user-message/user-message-icon';\r\nimport { environment } from 'src/environments/environment';\r\n\r\n@Component({\r\n selector: 'sis-feature-management',\r\n templateUrl: './feature-management.page.html',\r\n styleUrls: ['./feature-management.page.scss'],\r\n standalone: false\r\n})\r\nexport class FeatureManagementPage extends Unsubscriber implements OnInit {\r\n headers = [\r\n { size: '2', label: 'featuremanagement.term.active' },\r\n { size: '2', label: 'featuremanagement.term.admin' },\r\n { size: '8', label: 'featuremanagement.term.feature' },\r\n ];\r\n\r\n featureRanges = [\r\n { min: 0, max: 2000 },\r\n { min: 2000, max: 3000 },\r\n { min: 3000, max: Infinity },\r\n ];\r\n\r\n private readonly baseUrl: string = '/features';\r\n private readonly allFeatures$ = merge(\r\n this.http.get(`${environment.baseUrlApi}${this.baseUrl}`),\r\n this.eventBus.observe(FeatureUpdatedEvent).pipe(\r\n filter((e) => e.updateSuccessful && e.tenantGuid === this.tenantGuid),\r\n map((e) => e.features)\r\n )\r\n ).pipe(map((data) => FeatureAdapter.adapt(data)));\r\n\r\n private features: FeatureManagementFeature[];\r\n private tenantGuid: string;\r\n editedFeatures: FeatureManagementFeature[];\r\n isSaving: boolean;\r\n unsavedChanges: boolean;\r\n\r\n constructor(\r\n private userManagementService: UserManagementService,\r\n private userMessageService: UserMessageService,\r\n private userSettingsService: UserSettingsService,\r\n private destinationService: DestinationService,\r\n private http: HttpClient,\r\n private alertController: AlertController,\r\n private eventBus: EventBusService,\r\n private translateService: TranslateService\r\n ) {\r\n super();\r\n }\r\n\r\n async ngOnInit() {\r\n combineLatest([this.allFeatures$, this.userManagementService.featureTranslationMap$])\r\n .pipe(takeUntil(this.onDestroy$))\r\n .subscribe(([features, featureTranslationMap]) => {\r\n this.features = features;\r\n this.features.forEach((feature) => (feature.nameTranslationString = featureTranslationMap.get(feature.id)));\r\n this.editedFeatures = JSON.parse(JSON.stringify(features));\r\n });\r\n\r\n this.tenantGuid = (await firstValueFrom(this.destinationService.selectedTenant$)).guid;\r\n\r\n this.eventBus\r\n .observe(FeatureUpdatedEvent)\r\n .pipe(\r\n takeUntil(this.onDestroy$),\r\n withLatestFrom(this.userSettingsService.userSettings$),\r\n filter(([event, userSettings]) => event.changedBy === userSettings.userGuid)\r\n )\r\n .subscribe(([event]) => {\r\n this.isSaving = false;\r\n\r\n if (event.updateSuccessful) {\r\n const translateKey = 'general.phrase.saved';\r\n const userMessage = new UserMessage({\r\n message: translateKey,\r\n icon: UserMessageIcon.success,\r\n durationMs: 2000,\r\n position: 'top',\r\n color: UserMessageColor.green,\r\n });\r\n this.userMessageService.presentToast(userMessage);\r\n } else {\r\n const translateKey = 'general.phrase.saveFailed';\r\n const userMessage = new UserMessage({\r\n message: translateKey,\r\n icon: UserMessageIcon.failed,\r\n durationMs: 2000,\r\n position: 'top',\r\n color: UserMessageColor.red,\r\n });\r\n this.userMessageService.presentToast(userMessage);\r\n }\r\n });\r\n }\r\n\r\n async save(): Promise {\r\n this.isSaving = true;\r\n\r\n const removedFeatures = this.editedFeatures.filter(\r\n (editedFeature) => this.features.find((feature) => feature.id === editedFeature.id).active && !editedFeature.active\r\n );\r\n\r\n if (removedFeatures.length > 0) {\r\n await this.presentAlert(removedFeatures);\r\n return;\r\n }\r\n\r\n await this.postData();\r\n }\r\n\r\n reset(): void {\r\n this.editedFeatures = JSON.parse(JSON.stringify(this.features));\r\n }\r\n\r\n onChanged(): void {\r\n this.unsavedChanges = JSON.stringify(this.features) !== JSON.stringify(this.editedFeatures);\r\n }\r\n\r\n private async presentAlert(removedFeatures: FeatureManagementFeature[]): Promise {\r\n const message = '- ' + removedFeatures.map((f) => f.nameTranslationString).join('
- ');\r\n\r\n const alert = await this.alertController.create({\r\n header: this.translateService.instant('general.term.danger'),\r\n subHeader: this.translateService.instant('user.message.featureManagement.delete'),\r\n message: message,\r\n htmlAttributes: {\r\n 'data-test': 'feature-management-delete-alert',\r\n },\r\n buttons: [\r\n {\r\n text: this.translateService.instant('general.term.cancel'),\r\n id: 'data-test-feature-management-cancel-button',\r\n handler: () => {\r\n this.isSaving = false;\r\n },\r\n },\r\n {\r\n text: this.translateService.instant('general.term.delete'),\r\n id: 'data-test-feature-management-delete-button',\r\n handler: async () => {\r\n await this.postData();\r\n },\r\n },\r\n ],\r\n backdropDismiss: false,\r\n cssClass: 'sis-ion-alert',\r\n });\r\n\r\n await alert.present();\r\n }\r\n\r\n private async postData() {\r\n try {\r\n await firstValueFrom(\r\n this.http.post(`${environment.baseUrlApi}${this.baseUrl}`, {\r\n Features: this.editedFeatures.filter((feature) => feature.active).map((feature) => feature),\r\n })\r\n );\r\n } catch {\r\n const translateKey = 'general.phrase.saveFailed';\r\n const userMessage = new UserMessage({\r\n message: translateKey,\r\n icon: UserMessageIcon.failed,\r\n durationMs: 2000,\r\n position: 'top',\r\n color: UserMessageColor.red,\r\n });\r\n this.userMessageService.presentToast(userMessage);\r\n this.isSaving = false;\r\n }\r\n }\r\n}\r\n","\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n {{ header.label | translate }}\r\n \r\n \r\n \r\n = range.min && feature.id < range.max\">\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 { CommonModule } from '@angular/common';\r\nimport { NgModule } from '@angular/core';\r\nimport { FormsModule } from '@angular/forms';\r\nimport { MatTooltipModule } from '@angular/material/tooltip';\r\nimport { RouterModule, Routes } from '@angular/router';\r\nimport { LeafletModule } from '@bluehalo/ngx-leaflet';\r\nimport { IonicModule } from '@ionic/angular';\r\nimport { TranslateModule } from '@ngx-translate/core';\r\nimport { CoreModule } from 'src/app/core/core.module';\r\nimport { GeoMapPage } from 'src/app/geomap/geomap.page';\r\nimport { GeoMapComponent } from 'src/app/geomap/map/geomap.component';\r\nimport { TenantLayerComponent } from 'src/app/geomap/map/tenant-layer/tenant-layer.component';\r\nimport { TenantMarkerComponent } from 'src/app/geomap/map/tenant-layer/tenant-marker/tenant-marker.component';\r\n\r\nconst routes: Routes = [\r\n {\r\n path: '',\r\n component: GeoMapPage,\r\n },\r\n];\r\n\r\n@NgModule({\r\n imports: [\r\n CommonModule,\r\n FormsModule,\r\n IonicModule,\r\n RouterModule.forChild(routes),\r\n LeafletModule,\r\n MatTooltipModule,\r\n CoreModule,\r\n TranslateModule,\r\n ],\r\n declarations: [GeoMapPage, GeoMapComponent, TenantLayerComponent, TenantMarkerComponent],\r\n})\r\nexport class GeoMapPageModule {}\r\n","import { Component } from '@angular/core';\r\n\r\n@Component({\r\n selector: 'sis-global',\r\n templateUrl: './geomap.page.html',\r\n styleUrls: ['./geomap.page.scss'],\r\n standalone: false\r\n})\r\nexport class GeoMapPage {}\r\n","\r\n","import { SisConverter } from 'src/app/core/utils/sis-converter';\r\nimport { AlarmLevel } from 'src/app/domain/alarm.model';\r\nimport { GlobalAlarm } from 'src/app/geomap/livedata/globalalarm.model';\r\n\r\nexport class GlobalAlarmAdapter {\r\n static adapt(item: any): GlobalAlarm[] {\r\n const globalAlarms: GlobalAlarm[] = [];\r\n\r\n item.forEach((e: any) => {\r\n const alarmCounts = new Map();\r\n\r\n alarmCounts.set(AlarmLevel.FAULT, SisConverter.toNumberOrUndefined(e.fault));\r\n alarmCounts.set(AlarmLevel.INFO, SisConverter.toNumberOrUndefined(e.info));\r\n alarmCounts.set(AlarmLevel.ALARM, SisConverter.toNumberOrUndefined(e.alarm));\r\n alarmCounts.set(AlarmLevel.WARNING, SisConverter.toNumberOrUndefined(e.warning));\r\n alarmCounts.set(AlarmLevel.BYPASS, SisConverter.toNumberOrUndefined(e.bypass));\r\n alarmCounts.set(AlarmLevel.CHECK, SisConverter.toNumberOrUndefined(e.check));\r\n alarmCounts.set(AlarmLevel.SYSTEM, SisConverter.toNumberOrUndefined(e.system));\r\n\r\n globalAlarms.push({ tenantSisId: e.tenantSisId, alarms: alarmCounts });\r\n });\r\n\r\n return globalAlarms;\r\n }\r\n}\r\n","import { HttpClient } from '@angular/common/http';\r\nimport { Injectable } from '@angular/core';\r\nimport { timer } from 'rxjs';\r\nimport { map, shareReplay, switchMap } from 'rxjs/operators';\r\nimport { GlobalAlarmAdapter } from 'src/app/geomap/livedata/globalalarm.adapter';\r\nimport { environment } from 'src/environments/environment';\r\n\r\n@Injectable({\r\n providedIn: 'root',\r\n})\r\nexport class GlobalAlarmService {\r\n private readonly url = environment.baseUrlApi + '/globalalarm';\r\n private readonly intervalMs = 10000;\r\n\r\n readonly alarms$ = timer(0, this.intervalMs).pipe(\r\n switchMap(() => this.http.get(this.url).pipe(map((data: any) => GlobalAlarmAdapter.adapt(data)))),\r\n shareReplay({\r\n bufferSize: 1,\r\n refCount: true,\r\n })\r\n );\r\n\r\n constructor(private http: HttpClient) {}\r\n}\r\n","import 'leaflet.fullscreen';\r\n\r\nimport { Component, NgZone, OnInit } from '@angular/core';\r\nimport { TranslateService } from '@ngx-translate/core';\r\nimport { LatLngBoundsExpression, LatLngExpression, Layer, LayerGroup, layerGroup, Map, MapOptions } from 'leaflet';\r\nimport { timer } from 'rxjs';\r\nimport { takeUntil } from 'rxjs/operators';\r\nimport { Unsubscriber } from 'src/app/core/unsubscriber';\r\nimport { ScreenSizeService } from 'src/app/core/utils/screen-size.service';\r\nimport { Tenant } from 'src/app/domain/tenant/tenant.model';\r\nimport { TenantService } from 'src/app/domain/tenant/tenant.service';\r\n\r\ndeclare let L: any;\r\n@Component({\r\n selector: 'sis-geo-map',\r\n templateUrl: './geomap.component.html',\r\n styleUrls: ['./geomap.component.scss'],\r\n standalone: false\r\n})\r\nexport class GeoMapComponent extends Unsubscriber implements OnInit {\r\n private defaultBounds: LatLngBoundsExpression = [\r\n [47.8819, 5.73742],\r\n [45.70702, 10.58819],\r\n ]; // Switzerland\r\n private defaultCenter: LatLngExpression = [46.798268, 8.231462];\r\n\r\n fullScreenControl: any;\r\n map: Map;\r\n tenantGroup: LayerGroup = layerGroup();\r\n tenants: Tenant[] = [];\r\n options: MapOptions;\r\n layers: Layer[];\r\n layersControl: any;\r\n bigScreenMode: boolean;\r\n\r\n constructor(\r\n private zone: NgZone,\r\n private translateService: TranslateService,\r\n private tenantService: TenantService,\r\n private screenSizeService: ScreenSizeService\r\n ) {\r\n super();\r\n\r\n this.initLeafletConfigureOptions();\r\n this.initLayers();\r\n this.initLayerControl();\r\n }\r\n\r\n private initLayers() {\r\n // https://github.com/Asymmetrik/ngx-leaflet#add-custom-layers-base-layers-markers-shapes-etc\r\n this.layers = [layerGroup([this.tenantGroup])];\r\n }\r\n\r\n private initLayerControl() {\r\n // https://github.com/Asymmetrik/ngx-leaflet#add-a-layers-control\r\n this.updateLayerControl();\r\n this.translateService.onLangChange.pipe(takeUntil(this.onDestroy$)).subscribe(() => {\r\n this.updateLayerControl();\r\n });\r\n }\r\n\r\n private updateLayerControl() {\r\n this.translateService\r\n .get(['general.term.destinations'])\r\n .pipe(takeUntil(this.onDestroy$))\r\n .subscribe((res) => {\r\n this.layersControl = {\r\n overlays: {\r\n [res['general.term.destinations']]: this.tenantGroup,\r\n },\r\n };\r\n });\r\n }\r\n\r\n private initLeafletConfigureOptions() {\r\n // https://github.com/Asymmetrik/ngx-leaflet#create-and-configure-a-map\r\n this.options = {\r\n zoomControl: false,\r\n zoom: 8.6,\r\n center: this.defaultCenter,\r\n minZoom: 8.6,\r\n maxZoom: 11,\r\n zoomSnap: 0.1,\r\n zoomDelta: 0.1,\r\n maxBoundsViscosity: 0.5,\r\n maxBounds: this.defaultBounds,\r\n };\r\n }\r\n\r\n ngOnInit() {\r\n this.screenSizeService.bigScreenMode$\r\n .pipe(takeUntil(this.onDestroy$))\r\n .subscribe((bigScreenMode) => (this.bigScreenMode = bigScreenMode));\r\n\r\n this.tenantService.tenants$.pipe(takeUntil(this.onDestroy$)).subscribe((tenants) => (this.tenants = tenants));\r\n }\r\n\r\n async onMapReady(map: Map) {\r\n this.map = map;\r\n this.setupMap();\r\n }\r\n\r\n private setupMap() {\r\n const tileLayer = L.tileLayer(\r\n 'https://api.mapbox.com/styles/v1/{userId}/{styleId}/tiles/{z}/{x}/{y}?access_token={accessToken}',\r\n {\r\n attribution:\r\n 'Map data © OpenStreetMap contributors, CC-BY-SA, Imagery © Mapbox',\r\n userId: 'siscontrol',\r\n styleId: 'ck56fb86x0awv1cp3f9tt8xn1',\r\n accessToken: 'pk.eyJ1Ijoic2lzY29udHJvbCIsImEiOiJjazRueTRhOTEwanpiM2RzM2pzcXM1c3dvIn0.0panxf8Dw_Skci3gdY5uuw',\r\n }\r\n );\r\n this.layers.push(tileLayer);\r\n this.addFullScreenControl();\r\n this.fitBounds();\r\n }\r\n\r\n onMapFullscreenToggle() {\r\n timer(50)\r\n .pipe(takeUntil(this.onDestroy$))\r\n .subscribe(() =>\r\n this.zone.run(() => {\r\n this.fitBounds();\r\n })\r\n );\r\n }\r\n\r\n onFitBounds(event: Event) {\r\n event.stopPropagation();\r\n this.fitBounds();\r\n }\r\n\r\n fitBounds() {\r\n this.map.fitBounds(this.defaultBounds);\r\n }\r\n\r\n onZoomIn(event: Event) {\r\n event.stopPropagation();\r\n this.zoomIn();\r\n }\r\n\r\n zoomIn() {\r\n this.map.setZoom(this.map.getZoom() + 0.5);\r\n }\r\n\r\n onZoomOut(event: Event) {\r\n event.stopPropagation();\r\n this.zoomOut();\r\n }\r\n\r\n zoomOut() {\r\n this.map.setZoom(this.map.getZoom() - 0.5);\r\n }\r\n\r\n onFullscreen(event: Event) {\r\n event.stopPropagation();\r\n this.fullscreen();\r\n }\r\n\r\n fullscreen() {\r\n this.fullScreenControl.toggleFullScreen();\r\n this.fitBounds();\r\n }\r\n\r\n private addFullScreenControl() {\r\n if (this.fullScreenControl) {\r\n return;\r\n }\r\n this.fullScreenControl = L.control\r\n .fullscreen({\r\n forceSeparateButton: true,\r\n })\r\n .addTo(this.map);\r\n this.map.on('enterFullscreen exitFullscreen', () => this.onMapFullscreenToggle());\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 { LayerGroup } from 'leaflet';\r\nimport { Tenant } from 'src/app/domain/tenant/tenant.model';\r\n\r\n@Component({\r\n selector: 'sis-tenant-layer',\r\n templateUrl: './tenant-layer.component.html',\r\n styleUrls: ['./tenant-layer.component.scss'],\r\n standalone: false\r\n})\r\nexport class TenantLayerComponent {\r\n @Input() tenantGroup: LayerGroup;\r\n @Input() tenants: Tenant[] = [];\r\n}\r\n","
\r\n
\r\n \r\n
\r\n","import { Component, Input, NgZone, OnInit } from '@angular/core';\r\nimport { Router } from '@angular/router';\r\nimport { divIcon, latLng, LayerGroup, Marker, marker } from 'leaflet';\r\nimport { take, takeUntil } from 'rxjs/operators';\r\nimport { Unsubscriber } from 'src/app/core/unsubscriber';\r\nimport { AlarmLevel } from 'src/app/domain/alarm.model';\r\nimport { Tenant } from 'src/app/domain/tenant/tenant.model';\r\nimport { GlobalAlarmService } from 'src/app/geomap/livedata/globalalarm.service';\r\nimport { TenantMarkerService } from 'src/app/geomap/map/tenant-layer/tenant-marker/tenant-marker.service';\r\n\r\n@Component({\r\n selector: 'sis-tenant-marker',\r\n templateUrl: './tenant-marker.component.html',\r\n styleUrls: ['./tenant-marker.component.scss'],\r\n standalone: false\r\n})\r\nexport class TenantMarkerComponent extends Unsubscriber implements OnInit {\r\n private readonly noDataColor = 'var(--sis-color-ropewayoffline)';\r\n private readonly okColor = 'var(--ion-color-primary)';\r\n private readonly alarmColor = 'var(--ion-color-danger)';\r\n private readonly warningColor = 'var(--ion-color-warning)';\r\n private readonly infoColor = 'var(--ion-color-primary)';\r\n\r\n tenantMarker: Marker;\r\n\r\n @Input() tenantGroup: LayerGroup;\r\n @Input() tenant: Tenant;\r\n\r\n constructor(\r\n private zone: NgZone,\r\n private router: Router,\r\n private tenantMarkerService: TenantMarkerService,\r\n private globalAlarmService: GlobalAlarmService\r\n ) {\r\n super();\r\n }\r\n\r\n ngOnInit(): void {\r\n this.initMarker();\r\n }\r\n\r\n private initMarker() {\r\n if (!this.tenant?.positionGeoMap || !this.tenantGroup) {\r\n return;\r\n }\r\n\r\n this.tenantMarkerService.svgAsHtml$.pipe(take(1)).subscribe((svg) => {\r\n const iconWidth = 70;\r\n const iconHeight = 85;\r\n const iconZoom = 0.5;\r\n const tenantIcon = divIcon({\r\n html: svg,\r\n iconSize: [iconWidth * iconZoom, iconHeight * iconZoom],\r\n iconAnchor: [(iconWidth * iconZoom) / 2, iconHeight * iconZoom],\r\n tooltipAnchor: [0, -(iconHeight * iconZoom)],\r\n className: this.tenant.hasRopewaysOrLifts ? 'pointer' : 'default',\r\n });\r\n this.tenantMarker = marker(latLng(this.tenant.positionGeoMap.x, this.tenant.positionGeoMap.y), {\r\n icon: tenantIcon,\r\n });\r\n this.tenantMarker.bindTooltip(`${this.tenant.alias}
(${this.tenant.sisId.toUpperCase()})`, {\r\n direction: 'top',\r\n });\r\n this.tenantMarker.on('click', () => this.zone.run(() => this.onIconClick()));\r\n this.tenantMarker.on('add', () => {\r\n this.onMarkerAdded();\r\n });\r\n this.tenantGroup.addLayer(this.tenantMarker);\r\n });\r\n }\r\n\r\n private onMarkerAdded(): void {\r\n this.tenantMarker.removeEventListener('add');\r\n\r\n this.setIconColor(this.tenantMarker, this.tenant.hasRopewaysOrLifts ? this.okColor : this.noDataColor);\r\n this.setTestAttribute(this.tenantMarker, this.tenant.sisId);\r\n\r\n this.globalAlarmService.alarms$.pipe(takeUntil(this.onDestroy$)).subscribe((alarms) => {\r\n const globalAlarm = alarms.find((a) => a.tenantSisId === this.tenant.sisId);\r\n if (globalAlarm) {\r\n this.setIconColor(this.tenantMarker, this.getColor(globalAlarm.alarms));\r\n\r\n if (globalAlarm.alarms.get(AlarmLevel.SYSTEM)) {\r\n this.tenantMarker.getElement().classList.add('blinking');\r\n } else {\r\n this.tenantMarker.getElement().classList.remove('blinking');\r\n }\r\n }\r\n });\r\n }\r\n\r\n private onIconClick(): void {\r\n if (this.tenant.hasRopewaysOrLifts) {\r\n this.router.navigate([this.tenant.sisId, 'maps']);\r\n }\r\n }\r\n\r\n private setTestAttribute(icon: Marker, sisId: string): void {\r\n const e = icon.getElement();\r\n e.setAttribute('data-test', 'sis-globalmap-tenant-marker-' + sisId);\r\n }\r\n\r\n private setIconColor(icon: Marker, color: string): void {\r\n const e = icon.getElement().querySelectorAll('path')[0];\r\n e.setAttribute('fill', color);\r\n }\r\n\r\n private getColor(alarmCounts: Map): string {\r\n if (\r\n alarmCounts.get(AlarmLevel.FAULT) > 0 ||\r\n alarmCounts.get(AlarmLevel.ALARM) > 0 ||\r\n alarmCounts.get(AlarmLevel.SYSTEM) > 0\r\n ) {\r\n return this.alarmColor;\r\n }\r\n if (alarmCounts.get(AlarmLevel.WARNING) > 0) {\r\n return this.warningColor;\r\n }\r\n if (\r\n alarmCounts.get(AlarmLevel.INFO) > 0 ||\r\n alarmCounts.get(AlarmLevel.BYPASS) > 0 ||\r\n alarmCounts.get(AlarmLevel.CHECK) > 0\r\n ) {\r\n return this.infoColor;\r\n }\r\n return this.okColor;\r\n }\r\n}\r\n","import { HttpClient } from '@angular/common/http';\r\nimport { Injectable } from '@angular/core';\r\nimport { shareReplay } from 'rxjs/operators';\r\nimport { environment } from 'src/environments/environment';\r\n\r\n@Injectable({\r\n providedIn: 'root',\r\n})\r\nexport class TenantMarkerService {\r\n private readonly url = `${environment.baseUrlCockpitBlobStorage}/public-assets/icons/sis-marker-tenant.svg`;\r\n\r\n readonly svgAsHtml$ = this.httpClient.get(this.url, { responseType: 'text' }).pipe(shareReplay(1));\r\n\r\n constructor(private httpClient: HttpClient) {}\r\n}\r\n","import { Injectable } from '@angular/core';\r\nimport { HammerGestureConfig } from '@angular/platform-browser';\r\n\r\n/**\r\n * @hidden\r\n * This class overrides the default Angular gesture config.\r\n */\r\n@Injectable()\r\nexport class IonicGestureConfig extends HammerGestureConfig {\r\n buildHammer(element: HTMLElement) {\r\n const mc = new (window as any).Hammer(element);\r\n\r\n for (const eventName in this.overrides) {\r\n if (eventName) {\r\n mc.get(eventName).set(this.overrides[eventName]);\r\n }\r\n }\r\n\r\n return mc;\r\n }\r\n}\r\n","import { Component, OnInit } from '@angular/core';\r\nimport { NavigationEnd, Router } from '@angular/router';\r\nimport { ModalController } from '@ionic/angular';\r\nimport { filter, takeUntil } from 'rxjs/operators';\r\nimport { AlarmlistService } from 'src/app/alarmlist/alarmlist.service';\r\nimport { AlarmlistModalComponent } from 'src/app/alarmlist/alarmlist-modal/alarmlist-modal.component';\r\nimport { EventBusService } from 'src/app/core/eventbus/event-bus.service';\r\nimport { EventBusSubscriberBase } from 'src/app/core/eventbus/event-bus-subscriber-base';\r\nimport { ApiConnectionEvent, InternetConnectionEvent, MaintenanceUpdatedEvent } from 'src/app/core/eventbus/events';\r\nimport { ScreenSizeService } from 'src/app/core/utils/screen-size.service';\r\nimport { AlarmLevel } from 'src/app/domain/alarm.model';\r\nimport { DestinationService } from 'src/app/domain/destination/destination.service';\r\nimport { NewsService } from 'src/app/domain/news/news.service';\r\nimport { SisRoute } from 'src/app/domain/sis-route.model';\r\nimport { Tenant } from 'src/app/domain/tenant/tenant.model';\r\nimport { UserService } from 'src/app/domain/user/user.service';\r\n\r\n@Component({\r\n selector: 'sis-header',\r\n templateUrl: './header.component.html',\r\n styleUrls: ['./header.component.scss'],\r\n standalone: false\r\n})\r\nexport class HeaderComponent extends EventBusSubscriberBase implements OnInit {\r\n title: string;\r\n apiConnected = true;\r\n internetConnected = true;\r\n isAlarmlistPage = false;\r\n isGlobalPage = false;\r\n activeAlarmCount: number;\r\n underMaintenance = false;\r\n maintenanceBannerHidden = false;\r\n isUserAuthenticated = false;\r\n hasAlarmsAndWarnings: boolean;\r\n\r\n readonly hasUnreadNews$ = this.newsService.hasUnreadNews$;\r\n readonly bigScreenMode$ = this.screenSizeService.bigScreenMode$;\r\n\r\n readonly alarmIconLevels = [AlarmLevel.ALARM, AlarmLevel.FAULT, AlarmLevel.SYSTEM];\r\n readonly warningIconLevels = [AlarmLevel.WARNING];\r\n\r\n private alarmlistModal: HTMLIonModalElement;\r\n private selectedTenant: Tenant;\r\n\r\n constructor(\r\n private userService: UserService,\r\n private destinationService: DestinationService,\r\n private modalCtrl: ModalController,\r\n private router: Router,\r\n private alarmListService: AlarmlistService,\r\n private newsService: NewsService,\r\n private screenSizeService: ScreenSizeService,\r\n eventBus: EventBusService\r\n ) {\r\n super(eventBus);\r\n }\r\n\r\n ngOnInit() {\r\n this.router.events\r\n .pipe(filter((event) => event instanceof NavigationEnd))\r\n .pipe(takeUntil(this.onDestroy$))\r\n .subscribe((event: NavigationEnd) => {\r\n this.isGlobalPage = event.url.endsWith(SisRoute.GLOBAL);\r\n this.isAlarmlistPage = event.url.endsWith(SisRoute.ALARMLIST);\r\n });\r\n\r\n this.observe(ApiConnectionEvent, (event: ApiConnectionEvent) => {\r\n this.apiConnected = event.apiConnected;\r\n });\r\n\r\n this.observe(InternetConnectionEvent, (event: InternetConnectionEvent) => {\r\n this.internetConnected = event.internetConnected;\r\n });\r\n\r\n this.observe(MaintenanceUpdatedEvent, (event) => {\r\n const wasUnderMaintenance = this.underMaintenance;\r\n this.underMaintenance =\r\n event && this.selectedTenant && event.tenantSisIdsUnderMaintenance.includes(this.selectedTenant.gatewayId);\r\n\r\n if (this.underMaintenance && wasUnderMaintenance != this.underMaintenance) {\r\n this.maintenanceBannerHidden = false;\r\n }\r\n });\r\n\r\n this.destinationService.selectedTenant$.pipe(takeUntil(this.onDestroy$)).subscribe((selectedTenant) => {\r\n this.selectedTenant = selectedTenant;\r\n this.title = selectedTenant?.alias;\r\n this.maintenanceBannerHidden = false;\r\n this.underMaintenance = selectedTenant?.underMaintenance ?? false;\r\n });\r\n\r\n this.userService.isAuthenticated$\r\n .pipe(takeUntil(this.onDestroy$))\r\n .subscribe((authenticated) => (this.isUserAuthenticated = authenticated));\r\n\r\n this.alarmListService.alarms$.pipe(takeUntil(this.onDestroy$)).subscribe((alarms) => {\r\n const activeAlarms = AlarmlistService.filterActive(alarms);\r\n const filteredAlarms = activeAlarms.filter(\r\n (a) => this.alarmIconLevels.includes(a.level) || this.warningIconLevels.includes(a.level)\r\n );\r\n\r\n this.hasAlarmsAndWarnings =\r\n activeAlarms.some((a) => this.alarmIconLevels.includes(a.level)) &&\r\n activeAlarms.some((a) => this.warningIconLevels.includes(a.level));\r\n this.activeAlarmCount = filteredAlarms.length;\r\n });\r\n }\r\n\r\n hideMaintenanceBanner(): void {\r\n this.maintenanceBannerHidden = true;\r\n }\r\n\r\n async alarmListIconOnClick(event: Event): Promise {\r\n event.stopPropagation();\r\n if (this.isAlarmlistPage) {\r\n return Promise.resolve();\r\n }\r\n\r\n if (this.alarmlistModal) {\r\n this.dismissAlarmlistModal();\r\n return Promise.resolve();\r\n }\r\n\r\n this.alarmlistModal = await this.modalCtrl.create({\r\n component: AlarmlistModalComponent,\r\n cssClass: 'sis-alarmlist-modal',\r\n });\r\n\r\n return this.alarmlistModal.present();\r\n }\r\n\r\n hideModals(): void {\r\n if (this.alarmlistModal) {\r\n this.dismissAlarmlistModal();\r\n }\r\n }\r\n\r\n reloadApp(): void {\r\n window.location.reload();\r\n }\r\n\r\n private dismissAlarmlistModal(): void {\r\n this.alarmlistModal.dismiss();\r\n this.alarmlistModal = undefined;\r\n }\r\n}\r\n","\r\n \r\n \r\n \r\n \r\n \r\n \r\n {{ title }}\r\n \r\n {{ 'global.title' | translate }}\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, EventEmitter, Output } from '@angular/core';\r\nimport { Unsubscriber } from 'src/app/core/unsubscriber';\r\nimport { ScreenSizeService } from 'src/app/core/utils/screen-size.service';\r\n\r\n@Component({\r\n selector: 'sis-maintenance-banner',\r\n templateUrl: './maintenance-banner.component.html',\r\n styleUrls: ['./maintenance-banner.component.scss'],\r\n standalone: false\r\n})\r\nexport class MaintenanceBannerComponent extends Unsubscriber {\r\n @Output() hide: EventEmitter;\r\n\r\n bigScreenMode$ = this.screenSizeService.bigScreenMode$;\r\n\r\n constructor(private screenSizeService: ScreenSizeService) {\r\n super();\r\n\r\n this.hide = new EventEmitter();\r\n }\r\n\r\n onclick() {\r\n this.hide.emit();\r\n }\r\n}\r\n","
\r\n \r\n
\r\n
{{ 'general.phrase.maintenance' | translate }}
\r\n
\r\n
\r\n
{{ 'general.phrase.maintenance1' | translate }}
\r\n
{{ 'general.phrase.maintenance2' | translate }}
\r\n
\r\n
\r\n","import { Category } from 'src/app/infotext/domain/category.model';\r\nimport { Infotext } from 'src/app/infotext/domain/infotext.model';\r\n\r\nexport class InfotextAdapter {\r\n static adapt(items: any): Category[] {\r\n const infotextsMap = new Map();\r\n const categoriesMap = new Map();\r\n if (items) {\r\n items.forEach((e: any) => {\r\n const infotext: Infotext = {\r\n guid: e.guid,\r\n categoryId: e.categoryId,\r\n titleDe: e.titleDe,\r\n titleEn: e.titleEn,\r\n titleFr: e.titleFr,\r\n titleIt: e.titleIt,\r\n textDe: e.textDe,\r\n textEn: e.textEn,\r\n textFr: e.textFr,\r\n textIt: e.textIt,\r\n textOrder: e.textOrder ?? 999,\r\n };\r\n\r\n categoriesMap.set(e.categoryId, {\r\n id: e.categoryId,\r\n categoryDe: e.categoryDe,\r\n categoryEn: e.categoryEn,\r\n categoryFr: e.categoryFr,\r\n categoryIt: e.categoryIt,\r\n infotexts: [],\r\n });\r\n\r\n if (infotextsMap.get(e.categoryId)) {\r\n infotextsMap.get(e.categoryId).push(infotext);\r\n } else {\r\n infotextsMap.set(e.categoryId, [infotext]);\r\n }\r\n });\r\n infotextsMap.forEach((infotexts, categoryId) => (categoriesMap.get(categoryId).infotexts = infotexts));\r\n }\r\n return [...categoriesMap.values()];\r\n }\r\n}\r\n","import { CommonModule } from '@angular/common';\r\nimport { NgModule } from '@angular/core';\r\nimport { FormsModule } from '@angular/forms';\r\nimport { RouterModule } from '@angular/router';\r\nimport { IonicModule } from '@ionic/angular';\r\nimport { TranslateModule } from '@ngx-translate/core';\r\nimport { CoreModule } from 'src/app/core/core.module';\r\nimport { InfotextPage } from 'src/app/infotext/infotext.page';\r\nimport { TexteditorModal } from 'src/app/infotext/texteditor-modal/texteditor-modal';\r\n\r\n@NgModule({\r\n imports: [\r\n CommonModule,\r\n FormsModule,\r\n IonicModule,\r\n RouterModule.forChild([\r\n {\r\n path: '',\r\n component: InfotextPage,\r\n },\r\n ]),\r\n TranslateModule,\r\n CoreModule,\r\n ],\r\n declarations: [InfotextPage, TexteditorModal],\r\n})\r\nexport class InfotextPageModule {}\r\n","import { Component, OnInit } from '@angular/core';\r\nimport { ModalController } from '@ionic/angular';\r\nimport { TranslateService } from '@ngx-translate/core';\r\nimport { map, startWith, switchMap, takeUntil } from 'rxjs/operators';\r\nimport { LogbookModalService } from 'src/app/core/components/logbook/logbook-modal/logbook-modal.service';\r\nimport { Unsubscriber } from 'src/app/core/unsubscriber';\r\nimport { ScreenSizeService } from 'src/app/core/utils/screen-size.service';\r\nimport { DestinationService } from 'src/app/domain/destination/destination.service';\r\nimport { Feature } from 'src/app/domain/feature/feature.model';\r\nimport { FeatureAccessLevel } from 'src/app/domain/feature/feature-access-level.model';\r\nimport { FeatureId } from 'src/app/domain/feature/feature-id.model';\r\nimport { Category } from 'src/app/infotext/domain/category.model';\r\nimport { Infotext } from 'src/app/infotext/domain/infotext.model';\r\nimport { InfotextService } from 'src/app/infotext/infotext.service';\r\nimport { TexteditorModal } from 'src/app/infotext/texteditor-modal/texteditor-modal';\r\n\r\n@Component({\r\n templateUrl: './infotext.page.html',\r\n styleUrls: ['./infotext.page.scss'],\r\n standalone: false\r\n})\r\nexport class InfotextPage extends Unsubscriber implements OnInit {\r\n private static readonly requiredFeature = new Feature(FeatureId.SISMEDIA_INFOTEXT, FeatureAccessLevel.WRITE);\r\n\r\n infotexts: Infotext[];\r\n categories: Category[] = [];\r\n selectedTab: Category;\r\n writePermission: boolean;\r\n bigScreenMode: boolean;\r\n featureId = FeatureId.SISMEDIA_INFOTEXT;\r\n\r\n constructor(\r\n private screenSizeService: ScreenSizeService,\r\n private modalCtrl: ModalController,\r\n private infotextService: InfotextService,\r\n private destinationService: DestinationService,\r\n private logbookModalService: LogbookModalService,\r\n private translateService: TranslateService\r\n ) {\r\n super();\r\n }\r\n\r\n ngOnInit() {\r\n this.infotextService.categories$\r\n .pipe(\r\n switchMap((categories) =>\r\n this.translateService.onLangChange.pipe(\r\n startWith([]),\r\n map(() => {\r\n categories.forEach((category) => {\r\n category.translatedCategory = this.infotextService.getValueByLang(category, 'category');\r\n category.infotexts.forEach((infotext) => {\r\n infotext.translatedText = this.infotextService.getValueByLang(infotext, 'text');\r\n infotext.translatedTitle = this.infotextService.getValueByLang(infotext, 'title');\r\n });\r\n });\r\n return categories;\r\n })\r\n )\r\n ),\r\n takeUntil(this.onDestroy$)\r\n )\r\n .subscribe((categories) => {\r\n this.categories = categories.sort((a, b) => a.id - b.id);\r\n if (this.categories && this.categories.length > 0) {\r\n if (!this.categories.includes(this.selectedTab)) {\r\n this.selectedTab = this.categories[0];\r\n }\r\n this.infotexts = this.selectedTab.infotexts.sort((a, b) => a.textOrder - b.textOrder);\r\n }\r\n });\r\n\r\n this.destinationService.selectedTenantFeatures$.pipe(takeUntil(this.onDestroy$)).subscribe((features) => {\r\n this.writePermission = features.some((f) => f.hasMinimumRequirementFor(InfotextPage.requiredFeature)) ?? false;\r\n });\r\n\r\n this.screenSizeService.bigScreenMode$\r\n .pipe(takeUntil(this.onDestroy$))\r\n .subscribe((bigScreenMode) => (this.bigScreenMode = bigScreenMode));\r\n }\r\n\r\n selectionChanged(category: Category): void {\r\n this.infotexts = category.infotexts;\r\n this.selectedTab = category;\r\n }\r\n\r\n showTextEditor(selectedText: Infotext): void {\r\n if (!this.writePermission) {\r\n return;\r\n }\r\n\r\n this.modalCtrl\r\n .create({\r\n component: TexteditorModal,\r\n cssClass: 'sis-infotext-modal',\r\n backdropDismiss: false,\r\n componentProps: {\r\n infotext: selectedText,\r\n },\r\n })\r\n .then((modal) => {\r\n modal.present();\r\n });\r\n }\r\n}\r\n","\r\n \r\n\r\n \r\n \r\n {{category.translatedCategory}}\r\n \r\n \r\n\r\n \r\n \r\n {{infotext.translatedTitle}}\r\n
{{infotext.translatedText}}
\r\n \r\n \r\n\r\n\r\n\r\n\r\n \r\n \r\n {{category.translatedCategory}}\r\n \r\n \r\n\r\n","import { HttpClient } from '@angular/common/http';\r\nimport { Injectable } from '@angular/core';\r\nimport { TranslateService } from '@ngx-translate/core';\r\nimport { firstValueFrom, merge, Observable, of } from 'rxjs';\r\nimport { map, shareReplay, switchMap, withLatestFrom } from 'rxjs/operators';\r\nimport { EventBusService } from 'src/app/core/eventbus/event-bus.service';\r\nimport { InfotextUpdatedEvent } from 'src/app/core/eventbus/events';\r\nimport { DestinationService } from 'src/app/domain/destination/destination.service';\r\nimport { Feature } from 'src/app/domain/feature/feature.model';\r\nimport { FeatureAccessLevel } from 'src/app/domain/feature/feature-access-level.model';\r\nimport { FeatureId } from 'src/app/domain/feature/feature-id.model';\r\nimport { UserSettingsService } from 'src/app/domain/user-settings/user-settings.service';\r\nimport { Category } from 'src/app/infotext/domain/category.model';\r\nimport { InfotextAdapter } from 'src/app/infotext/domain/infotext.adapter';\r\nimport { Infotext } from 'src/app/infotext/domain/infotext.model';\r\nimport { InfotextPostData } from 'src/app/infotext/domain/infotext-postdata.model';\r\nimport { UserMessage } from 'src/app/user-message/user-message.model';\r\nimport { UserMessageService } from 'src/app/user-message/user-message.service';\r\nimport { UserMessageColor } from 'src/app/user-message/user-message-color';\r\nimport { UserMessageIcon } from 'src/app/user-message/user-message-icon';\r\nimport { environment } from 'src/environments/environment';\r\n\r\n@Injectable({\r\n providedIn: 'root',\r\n})\r\nexport class InfotextService {\r\n private readonly requiredFeature = new Feature(FeatureId.SISMEDIA_INFOTEXT, FeatureAccessLevel.READ);\r\n\r\n private readonly baseRequestUrl: string = '/sismedia/infotext';\r\n private readonly basePostUrl: string = '/sismedia/infotext/update';\r\n\r\n private readonly categoriesRequest$: Observable = this.destinationService.selectedTenantFeatures$.pipe(\r\n switchMap((features) => {\r\n if (features.some((feature) => feature.hasMinimumRequirementFor(this.requiredFeature))) {\r\n return this.http\r\n .get(`${environment.baseUrlApi}${this.baseRequestUrl}`)\r\n .pipe(map((data: any) => InfotextAdapter.adapt(data)));\r\n } else {\r\n return of([]);\r\n }\r\n }),\r\n shareReplay({\r\n bufferSize: 1,\r\n refCount: true,\r\n })\r\n );\r\n\r\n private readonly categoriesUpdate$: Observable = this.eventBus.observe(InfotextUpdatedEvent).pipe(\r\n withLatestFrom(this.categoriesRequest$, this.userSettingsService.userSettings$),\r\n map(([event, categories, userSettings]) => {\r\n const category = categories.find((c) => c.id === event.categoryId);\r\n if (category) {\r\n const infotextData = category.infotexts.find((i) => i.guid === event.guid);\r\n if (infotextData) {\r\n infotextData.textDe = event.textDe;\r\n infotextData.textEn = event.textEn;\r\n infotextData.textFr = event.textFr;\r\n infotextData.textIt = event.textIt;\r\n\r\n infotextData.translatedText = this.getValueByLang(infotextData, 'text');\r\n }\r\n }\r\n if (event.changedBy === userSettings.userGuid.toString()) {\r\n this.presentToast(event.updateSuccessful, event.failReason);\r\n }\r\n return categories;\r\n })\r\n );\r\n\r\n readonly categories$ = merge(this.categoriesRequest$, this.categoriesUpdate$).pipe(\r\n shareReplay({\r\n bufferSize: 1,\r\n refCount: true,\r\n })\r\n );\r\n\r\n constructor(\r\n private eventBus: EventBusService,\r\n private userSettingsService: UserSettingsService,\r\n private http: HttpClient,\r\n private translateService: TranslateService,\r\n private userMessageService: UserMessageService,\r\n private destinationService: DestinationService\r\n ) {}\r\n\r\n async updateInfotext(updatedInfotext: InfotextPostData): Promise {\r\n try {\r\n await firstValueFrom(\r\n this.http.post(`${environment.baseUrlApi}${this.basePostUrl}`, {\r\n infotextEntry: updatedInfotext,\r\n })\r\n );\r\n } catch {\r\n return false;\r\n }\r\n\r\n return true;\r\n }\r\n\r\n getValueByLang(obj: Category | Infotext, property: 'category' | 'text' | 'title'): string {\r\n return obj[property + this.translateService.currentLang.replace(/^\\w/g, (c) => c.toUpperCase())];\r\n }\r\n\r\n private presentToast(success: boolean, failReason?: string): void {\r\n const message = success\r\n ? 'general.phrase.saved'\r\n : failReason\r\n ? ['general.phrase.saveFailed', ' (', failReason, ')']\r\n : 'general.phrase.saveFailed';\r\n const icon = success ? UserMessageIcon.success : UserMessageIcon.failed;\r\n const color = success ? UserMessageColor.green : UserMessageColor.red;\r\n this.userMessageService.presentToast(new UserMessage({ message, icon, durationMs: 2000, position: 'top', color }));\r\n }\r\n}\r\n","import { Component, Input, OnInit } from '@angular/core';\r\nimport { ModalController } from '@ionic/angular';\r\nimport { TranslateService } from '@ngx-translate/core';\r\nimport { filter, map, startWith, takeUntil, withLatestFrom } from 'rxjs/operators';\r\nimport { EventBusService } from 'src/app/core/eventbus/event-bus.service';\r\nimport { InfotextUpdatedEvent } from 'src/app/core/eventbus/events';\r\nimport { Unsubscriber } from 'src/app/core/unsubscriber';\r\nimport { ScreenSizeService } from 'src/app/core/utils/screen-size.service';\r\nimport { UserSettingsService } from 'src/app/domain/user-settings/user-settings.service';\r\nimport { Category } from 'src/app/infotext/domain/category.model';\r\nimport { Infotext } from 'src/app/infotext/domain/infotext.model';\r\nimport { InfotextPostData } from 'src/app/infotext/domain/infotext-postdata.model';\r\nimport { InfotextService } from 'src/app/infotext/infotext.service';\r\n\r\n@Component({\r\n templateUrl: './texteditor-modal.html',\r\n styleUrls: ['./texteditor-modal.scss'],\r\n standalone: false\r\n})\r\nexport class TexteditorModal extends Unsubscriber implements OnInit {\r\n edited = false;\r\n saving = false;\r\n title: string;\r\n bigScreenMode: boolean;\r\n editableData: InfotextPostData;\r\n\r\n @Input() infotext: Infotext;\r\n\r\n constructor(\r\n private modalCtrl: ModalController,\r\n private infotextService: InfotextService,\r\n private translateService: TranslateService,\r\n private screenSizeService: ScreenSizeService,\r\n private eventBus: EventBusService,\r\n private userSettingsService: UserSettingsService\r\n ) {\r\n super();\r\n }\r\n\r\n ngOnInit() {\r\n this.init();\r\n\r\n this.translateService.onLangChange\r\n .pipe(takeUntil(this.onDestroy$), startWith([]))\r\n .subscribe(() => (this.title = this.infotextService.getValueByLang(this.infotext, 'title')));\r\n\r\n this.eventBus\r\n .observe(InfotextUpdatedEvent)\r\n .pipe(\r\n withLatestFrom(this.userSettingsService.userSettings$),\r\n filter(([event, userSettings]) => event.changedBy === userSettings.userGuid),\r\n takeUntil(this.onDestroy$)\r\n )\r\n .subscribe(([event]) => {\r\n if (event.guid === this.infotext.guid && this.saving && event.updateSuccessful) {\r\n this.close();\r\n }\r\n this.saving = false;\r\n });\r\n\r\n this.infotextService.categories$\r\n .pipe(\r\n takeUntil(this.onDestroy$),\r\n map((categories) =>\r\n categories.reduce((p, c) => {\r\n p.push(...c.infotexts);\r\n return p;\r\n }, [])\r\n )\r\n )\r\n .subscribe((infotexts) => {\r\n const infotext = infotexts.find((i) => i.guid === this.infotext.guid);\r\n if (infotext && !this.edited) {\r\n this.infotext = infotext;\r\n this.edited = this.isEdited(infotext);\r\n }\r\n });\r\n\r\n this.screenSizeService.bigScreenMode$\r\n .pipe(takeUntil(this.onDestroy$))\r\n .subscribe((bigScreenMode) => (this.bigScreenMode = bigScreenMode));\r\n }\r\n\r\n close(): void {\r\n this.modalCtrl.dismiss();\r\n }\r\n\r\n async save(): Promise {\r\n if (!this.saving) {\r\n if (!this.edited) {\r\n this.close();\r\n } else {\r\n this.saving = true;\r\n this.saving = await this.infotextService.updateInfotext(this.editableData);\r\n }\r\n }\r\n }\r\n\r\n clear(): void {\r\n this.editableData.textDe = '';\r\n this.editableData.textEn = '';\r\n this.editableData.textFr = '';\r\n this.editableData.textIt = '';\r\n\r\n this.edited = this.isEdited(this.infotext);\r\n }\r\n\r\n inputChanged(): void {\r\n this.edited = this.isEdited(this.infotext);\r\n }\r\n\r\n private init(): void {\r\n this.editableData = {\r\n guid: this.infotext.guid,\r\n categoryId: this.infotext.categoryId,\r\n textDe: this.infotext.textDe,\r\n textEn: this.infotext.textEn,\r\n textFr: this.infotext.textFr,\r\n textIt: this.infotext.textIt,\r\n };\r\n\r\n this.edited = false;\r\n }\r\n\r\n private isEdited(infotext: Infotext): boolean {\r\n return (\r\n this.editableData.guid !== infotext.guid ||\r\n this.editableData.textDe !== infotext.textDe ||\r\n this.editableData.textEn !== infotext.textEn ||\r\n this.editableData.textFr !== infotext.textFr ||\r\n this.editableData.textIt !== infotext.textIt\r\n );\r\n }\r\n}\r\n","\r\n \r\n {{ title }} \r\n
\r\n \r\n\r\n\r\n\r\n
\r\n Deutsch\r\n \r\n
\r\n
\r\n English\r\n \r\n
\r\n
\r\n Français\r\n \r\n
\r\n
\r\n Italiano\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 { HttpErrorResponse, HttpEvent, HttpHandler, HttpInterceptor, HttpRequest } from '@angular/common/http';\r\nimport { Injectable } from '@angular/core';\r\nimport { Observable, throwError } from 'rxjs';\r\nimport { catchError, tap } from 'rxjs/operators';\r\nimport { EventBusService } from 'src/app/core/eventbus/event-bus.service';\r\nimport { ApiConnectionEvent, InternetConnectionEvent } from 'src/app/core/eventbus/events';\r\nimport { NavigatorService } from 'src/app/core/navigator/navigator.service';\r\n\r\n@Injectable({\r\n providedIn: 'root',\r\n})\r\nexport class ApiConnectionInterceptor implements HttpInterceptor {\r\n private readonly apiExceptionCodes = [400, 401, 500];\r\n\r\n constructor(private eventBusService: EventBusService, private navigator: NavigatorService) {}\r\n\r\n intercept(request: HttpRequest, next: HttpHandler): Observable> {\r\n if (!request.url.includes('/api/')) {\r\n return next.handle(request);\r\n }\r\n return next.handle(request).pipe(\r\n catchError((err: HttpErrorResponse) => {\r\n if (!this.apiExceptionCodes.includes(err?.status)) {\r\n this.notifyApiConnection(false);\r\n }\r\n this.notifyInternetConnection();\r\n return throwError('Connection error');\r\n }),\r\n tap(\r\n () => {},\r\n () => {},\r\n () => {\r\n this.notifyInternetConnection();\r\n this.notifyApiConnection(true);\r\n }\r\n )\r\n );\r\n }\r\n\r\n private notifyApiConnection(connected: boolean): void {\r\n const event: ApiConnectionEvent = new ApiConnectionEvent();\r\n event.apiConnected = connected;\r\n this.eventBusService.publish(event);\r\n }\r\n\r\n private notifyInternetConnection(): void {\r\n const event: InternetConnectionEvent = new InternetConnectionEvent();\r\n event.internetConnected = this.navigator.isOnline();\r\n this.eventBusService.publish(event);\r\n }\r\n}\r\n","import { HttpEvent, HttpHandler, HttpInterceptor, HttpRequest } from '@angular/common/http';\r\nimport { Injectable } from '@angular/core';\r\nimport { Observable } from 'rxjs';\r\nimport { switchMap, take } from 'rxjs/operators';\r\nimport { DestinationService } from 'src/app/domain/destination/destination.service';\r\n\r\n@Injectable()\r\nexport class HttpCurrentTenantInterceptor implements HttpInterceptor {\r\n private readonly TenantGuidHeaderKey: string = 'CurrentTenantGuid';\r\n\r\n constructor(private destinationService: DestinationService) {}\r\n\r\n intercept(request: HttpRequest, next: HttpHandler): Observable> {\r\n return this.destinationService.selectedTenant$.pipe(\r\n take(1),\r\n switchMap((tenant) => {\r\n if (tenant?.guid && !request.headers.has(this.TenantGuidHeaderKey)) {\r\n request = request.clone({ headers: request.headers.set(this.TenantGuidHeaderKey, tenant.guid.toString()) });\r\n }\r\n\r\n return next.handle(request);\r\n })\r\n );\r\n }\r\n}\r\n","import { NmsData } from 'src/app/it-services/livedata/nms-data.model';\r\n\r\nexport class NmsDataAdapter {\r\n static adapt(item: any): NmsData[] {\r\n const nmsDatas: NmsData[] =\r\n item?.map((e: any) => ({\r\n deviceType: e.DeviceType,\r\n deviceName: e.DeviceName,\r\n deviceIp: e.DeviceIp,\r\n status: e.Status,\r\n timestamp: new Date(e.NmsTimestamp),\r\n })) || [];\r\n\r\n return nmsDatas;\r\n }\r\n}\r\n","import { HttpClient } from '@angular/common/http';\r\nimport { Injectable } from '@angular/core';\r\nimport { LivedataServiceBase } from 'src/app/core/livedata/livedata-base.service';\r\nimport { DestinationService } from 'src/app/domain/destination/destination.service';\r\nimport { Feature } from 'src/app/domain/feature/feature.model';\r\nimport { FeatureAccessLevel } from 'src/app/domain/feature/feature-access-level.model';\r\nimport { FeatureId } from 'src/app/domain/feature/feature-id.model';\r\nimport { NmsDataAdapter } from 'src/app/it-services/livedata/nms-data.adapter';\r\nimport { NmsData } from 'src/app/it-services/livedata/nms-data.model';\r\n\r\n@Injectable({\r\n providedIn: 'root',\r\n})\r\nexport class NmsDataService extends LivedataServiceBase {\r\n protected readonly requiredFeatures = [new Feature(FeatureId.SISITSERVICES, FeatureAccessLevel.READ)];\r\n protected readonly endpointUri = 'nms';\r\n\r\n readonly nmsDatas$ = this.liveData$;\r\n\r\n constructor(http: HttpClient, destinationService: DestinationService) {\r\n super(http, NmsDataAdapter.adapt, destinationService);\r\n }\r\n}\r\n","import { Component, Input, OnInit } from '@angular/core';\r\nimport { NmsData } from 'src/app/it-services/livedata/nms-data.model';\r\n\r\n@Component({\r\n selector: 'sis-nms-item',\r\n templateUrl: './nms-item.component.html',\r\n styleUrls: ['./nms-item.component.scss'],\r\n standalone: false\r\n})\r\nexport class NmsItemComponent implements OnInit {\r\n @Input() item: NmsData;\r\n @Input() bigScreenMode: boolean;\r\n\r\n deviceIconName: string;\r\n statusIconName: string;\r\n statusClass: string;\r\n isDateValid: boolean;\r\n\r\n ngOnInit(): void {\r\n this.deviceIconName = `sis-${this.item.deviceType}`;\r\n this.statusIconName = this.getStatusIconName();\r\n this.statusClass = this.getStatusClass();\r\n this.isDateValid = this.item.timestamp instanceof Date && !isNaN(this.item.timestamp.getTime());\r\n }\r\n\r\n private getStatusIconName(): string {\r\n switch (this.item.status) {\r\n case 'online':\r\n return 'checkmark-circle';\r\n case 'offline':\r\n return 'close-circle';\r\n default:\r\n return 'help-circle';\r\n }\r\n }\r\n\r\n private getStatusClass(): string {\r\n switch (this.item.status) {\r\n case 'online':\r\n return 'sis-online';\r\n case 'offline':\r\n return 'sis-offline';\r\n default:\r\n return 'sis-unknown';\r\n }\r\n }\r\n}\r\n","\r\n \r\n \r\n \r\n {{ item.deviceName }} ({{ item.deviceIp }})\r\n \r\n \r\n \r\n {{ item.status }}\r\n \r\n \r\n {{ item.timestamp | dateTimeFormat }}\r\n \r\n \r\n\r\n\r\n\r\n \r\n \r\n \r\n \r\n \r\n
{{ item.deviceName }}
\r\n
{{ item.deviceIp }}
\r\n
\r\n
\r\n \r\n \r\n \r\n \r\n \r\n
{{ item.timestamp | date : 'dd.MM.yyyy' }}
\r\n
{{ item.timestamp | date : 'HH:mm:ss' }}
\r\n
\r\n
\r\n
\r\n","import { CommonModule } from '@angular/common';\r\nimport { NgModule } from '@angular/core';\r\nimport { FormsModule } from '@angular/forms';\r\nimport { RouterModule } from '@angular/router';\r\nimport { IonicModule } from '@ionic/angular';\r\nimport { TranslateModule } from '@ngx-translate/core';\r\nimport { CoreModule } from 'src/app/core/core.module';\r\nimport { NmsItemComponent } from 'src/app/it-services/nms-item/nms-item.component';\r\nimport { SisItServicesPage } from 'src/app/it-services/sis-it-services.page';\r\n\r\n@NgModule({\r\n imports: [\r\n CommonModule,\r\n FormsModule,\r\n IonicModule,\r\n CoreModule,\r\n RouterModule.forChild([\r\n {\r\n path: '',\r\n component: SisItServicesPage\r\n }\r\n ]),\r\n TranslateModule\r\n ],\r\n declarations: [SisItServicesPage, NmsItemComponent]\r\n})\r\nexport class SisItServicesPageModule {}\r\n","import { Component, OnInit } from '@angular/core';\r\nimport { takeUntil } from 'rxjs/operators';\r\nimport { Unsubscriber } from 'src/app/core/unsubscriber';\r\nimport { ScreenSizeService } from 'src/app/core/utils/screen-size.service';\r\nimport { NmsData } from 'src/app/it-services/livedata/nms-data.model';\r\nimport { NmsDataService } from 'src/app/it-services/livedata/nms-data.service';\r\n\r\n@Component({\r\n selector: 'sis-sis-it-services',\r\n templateUrl: './sis-it-services.page.html',\r\n styleUrls: ['./sis-it-services.page.scss'],\r\n standalone: false\r\n})\r\nexport class SisItServicesPage extends Unsubscriber implements OnInit {\r\n nmsDatas: NmsData[] = [];\r\n bigScreenMode: boolean;\r\n\r\n constructor(private nmsDataService: NmsDataService, private screenSizeService: ScreenSizeService) {\r\n super();\r\n }\r\n\r\n ngOnInit(): void {\r\n this.nmsDataService.nmsDatas$.pipe(takeUntil(this.onDestroy$)).subscribe((data) => {\r\n this.nmsDatas = data?.sort(this.sortNmsData.bind(this)) ?? [];\r\n });\r\n\r\n this.screenSizeService.bigScreenMode$\r\n .pipe(takeUntil(this.onDestroy$))\r\n .subscribe((bigScreenMode) => (this.bigScreenMode = bigScreenMode));\r\n }\r\n\r\n private sortNmsData(a: NmsData, b: NmsData): number {\r\n const statusOrder = this.getOrderByStatus(a) - this.getOrderByStatus(b);\r\n if (statusOrder !== 0) {\r\n return statusOrder;\r\n }\r\n\r\n if (a.deviceType === b.deviceType) {\r\n return a.deviceName < b.deviceName ? -1 : 1;\r\n }\r\n\r\n return a.deviceType < b.deviceType ? -1 : 1;\r\n }\r\n\r\n private getOrderByStatus(nmsData: NmsData): number {\r\n switch (nmsData.status) {\r\n case 'online':\r\n return 1;\r\n case 'offline':\r\n return 2;\r\n default:\r\n return 3;\r\n }\r\n }\r\n}\r\n","\r\n \r\n \r\n\r\n \r\n {{ \"general.term.device\" | translate }}\r\n {{ \"general.term.status\" | translate }}\r\n {{ \"general.term.lastUpdate\" | translate }}\r\n \r\n\r\n \r\n {{ \"general.term.device\" | translate }}\r\n {{ \"general.term.status\" | translate }}\r\n {{ \"general.term.lastUpdate\" | translate }}\r\n \r\n \r\n \r\n\r\n","import { LastSlopeControl } from 'src/app/last-slope-control/domain/last-slope-control.model';\r\n\r\nexport class LastSlopeControlAdapter {\r\n static adapt(items: any): LastSlopeControl[] {\r\n const lastSlopeControlDatas: LastSlopeControl[] = [];\r\n\r\n if (items) {\r\n items.forEach((item) => {\r\n lastSlopeControlDatas.push({\r\n guid: item.guid,\r\n zone: item.zone,\r\n times: item.times,\r\n activeTime: item.activeTime,\r\n });\r\n });\r\n }\r\n\r\n return lastSlopeControlDatas;\r\n }\r\n}\r\n","import { CommonModule } from '@angular/common';\r\nimport { NgModule } from '@angular/core';\r\nimport { FormsModule } from '@angular/forms';\r\nimport { RouterModule } from '@angular/router';\r\nimport { IonicModule } from '@ionic/angular';\r\nimport { TranslateModule } from '@ngx-translate/core';\r\nimport { CoreModule } from 'src/app/core/core.module';\r\nimport { LastSlopeControlPage } from 'src/app/last-slope-control/last-slope-control.page';\r\nimport { ZoneItemComponent } from 'src/app/last-slope-control/zone-item/zone-item.component';\r\n\r\n@NgModule({\r\n imports: [\r\n CommonModule,\r\n FormsModule,\r\n IonicModule,\r\n RouterModule.forChild([\r\n {\r\n path: '',\r\n component: LastSlopeControlPage,\r\n },\r\n ]),\r\n TranslateModule,\r\n CoreModule\r\n ],\r\n declarations: [LastSlopeControlPage, ZoneItemComponent],\r\n})\r\nexport class LastSlopeControlPageModule {}\r\n","import { Component, OnInit } from '@angular/core';\r\nimport { takeUntil } from 'rxjs/operators';\r\nimport { LogbookModalService } from 'src/app/core/components/logbook/logbook-modal/logbook-modal.service';\r\nimport { Unsubscriber } from 'src/app/core/unsubscriber';\r\nimport { ScreenSizeService } from 'src/app/core/utils/screen-size.service';\r\nimport { FeatureId } from 'src/app/domain/feature/feature-id.model';\r\nimport { LastSlopeControl } from 'src/app/last-slope-control/domain/last-slope-control.model';\r\nimport { LastSlopeControlService } from 'src/app/last-slope-control/last-slope-control.service';\r\n\r\n@Component({\r\n templateUrl: './last-slope-control.page.html',\r\n styleUrls: ['./last-slope-control.page.scss'],\r\n standalone: false\r\n})\r\nexport class LastSlopeControlPage extends Unsubscriber implements OnInit {\r\n readonly logbookAvailable$ = this.logbookModalService.logbookAvailable$;\r\n\r\n lastSlopeControls: LastSlopeControl[];\r\n bigScreenMode: boolean;\r\n featureId = FeatureId.SISMEDIA_LASTSLOPECONTROL;\r\n\r\n constructor(\r\n private lastSlopeControlService: LastSlopeControlService,\r\n private logbookModalService: LogbookModalService,\r\n private screenSizeService: ScreenSizeService\r\n ) {\r\n super();\r\n }\r\n\r\n ngOnInit() {\r\n this.lastSlopeControlService.lastSlopeControls$.pipe(takeUntil(this.onDestroy$)).subscribe((data) => {\r\n this.lastSlopeControls = data.sort((a, b) => a.zone - b.zone);\r\n });\r\n\r\n this.screenSizeService.bigScreenMode$\r\n .pipe(takeUntil(this.onDestroy$))\r\n .subscribe((bigScreenMode) => (this.bigScreenMode = bigScreenMode));\r\n }\r\n}\r\n","\r\n \r\n \r\n\r\n \r\n\r\n","import { HttpClient, HttpErrorResponse } from '@angular/common/http';\r\nimport { Injectable } from '@angular/core';\r\nimport { firstValueFrom, merge, Observable } from 'rxjs';\r\nimport { catchError, filter, map, shareReplay, switchMap, withLatestFrom } from 'rxjs/operators';\r\nimport { EventBusService } from 'src/app/core/eventbus/event-bus.service';\r\nimport { LastSlopeControlUpdatedEvent } from 'src/app/core/eventbus/events';\r\nimport { DestinationService } from 'src/app/domain/destination/destination.service';\r\nimport { Feature } from 'src/app/domain/feature/feature.model';\r\nimport { FeatureAccessLevel } from 'src/app/domain/feature/feature-access-level.model';\r\nimport { FeatureId } from 'src/app/domain/feature/feature-id.model';\r\nimport { UserSettingsService } from 'src/app/domain/user-settings/user-settings.service';\r\nimport { LastSlopeControlAdapter } from 'src/app/last-slope-control/domain/last-slope-control.adapter';\r\nimport { LastSlopeControl } from 'src/app/last-slope-control/domain/last-slope-control.model';\r\nimport { UserMessage } from 'src/app/user-message/user-message.model';\r\nimport { UserMessageService } from 'src/app/user-message/user-message.service';\r\nimport { UserMessageColor } from 'src/app/user-message/user-message-color';\r\nimport { UserMessageIcon } from 'src/app/user-message/user-message-icon';\r\nimport { environment } from 'src/environments/environment';\r\n\r\n@Injectable({\r\n providedIn: 'root',\r\n})\r\nexport class LastSlopeControlService {\r\n private readonly baseRequestUrl: string = '/lastslopecontrol';\r\n private readonly basePostUrl: string = '/lastslopecontrol/update';\r\n private readonly requiredFeature = new Feature(FeatureId.SISMEDIA_LASTSLOPECONTROL, FeatureAccessLevel.READ);\r\n\r\n private readonly lastSlopeControlRequest$: Observable =\r\n this.destinationService.selectedTenantFeatures$.pipe(\r\n filter((features) => features.some((f) => f.hasMinimumRequirementFor(this.requiredFeature))),\r\n switchMap(() => this.http.get(`${environment.baseUrlApi}${this.baseRequestUrl}`)),\r\n map((data) => LastSlopeControlAdapter.adapt(data)),\r\n shareReplay({\r\n bufferSize: 1,\r\n refCount: true,\r\n })\r\n );\r\n\r\n private readonly lastSlopeControlUpdate$: Observable = this.eventBus\r\n .observe(LastSlopeControlUpdatedEvent)\r\n .pipe(\r\n withLatestFrom(this.lastSlopeControlRequest$),\r\n filter(([event, data]) => data.some((d) => d.guid === event.guid)),\r\n withLatestFrom(this.userSettingsService.userSettings$),\r\n map(([[event, data], userSettings]) => {\r\n if (event.updateSuccessful) {\r\n const updatedEntry = data.find((d) => d.guid === event.guid);\r\n updatedEntry.times = event.times;\r\n updatedEntry.activeTime = event.activeTime;\r\n }\r\n if (event.changedBy === userSettings.userGuid) {\r\n this.displayUserMessage(event.updateSuccessful);\r\n }\r\n\r\n return data;\r\n })\r\n );\r\n\r\n readonly lastSlopeControls$ = merge(this.lastSlopeControlRequest$, this.lastSlopeControlUpdate$).pipe(\r\n shareReplay({\r\n bufferSize: 1,\r\n refCount: true,\r\n })\r\n );\r\n\r\n constructor(\r\n private eventBus: EventBusService,\r\n private http: HttpClient,\r\n private userMessageService: UserMessageService,\r\n private userSettingsService: UserSettingsService,\r\n private destinationService: DestinationService\r\n ) {}\r\n\r\n async updateLastSlopeControl(updatedLastSlopeControl: LastSlopeControl): Promise {\r\n await firstValueFrom(\r\n this.http\r\n .post(`${environment.baseUrlApi}${this.basePostUrl}`, {\r\n guid: updatedLastSlopeControl.guid,\r\n zone: updatedLastSlopeControl.zone,\r\n times: updatedLastSlopeControl.times,\r\n activeTime: updatedLastSlopeControl.activeTime,\r\n })\r\n .pipe(\r\n catchError((error: HttpErrorResponse) => {\r\n this.displayUserMessage(false);\r\n throw error;\r\n })\r\n )\r\n );\r\n }\r\n\r\n private displayUserMessage(updateSuccessful: boolean): void {\r\n const message = updateSuccessful ? 'general.phrase.saved' : 'general.phrase.saveFailed';\r\n const icon = updateSuccessful ? UserMessageIcon.success : UserMessageIcon.failed;\r\n const color = updateSuccessful ? UserMessageColor.green : UserMessageColor.red;\r\n const userMessage = new UserMessage({\r\n message,\r\n icon,\r\n durationMs: 2000,\r\n position: 'top',\r\n color,\r\n });\r\n this.userMessageService.presentToast(userMessage);\r\n }\r\n}\r\n","import { Component, Input, OnInit } from '@angular/core';\r\nimport { takeUntil } from 'rxjs/operators';\r\nimport { Unsubscriber } from 'src/app/core/unsubscriber';\r\nimport { ScreenSizeService } from 'src/app/core/utils/screen-size.service';\r\nimport { DestinationService } from 'src/app/domain/destination/destination.service';\r\nimport { Feature } from 'src/app/domain/feature/feature.model';\r\nimport { FeatureAccessLevel } from 'src/app/domain/feature/feature-access-level.model';\r\nimport { FeatureId } from 'src/app/domain/feature/feature-id.model';\r\nimport { LastSlopeControl } from 'src/app/last-slope-control/domain/last-slope-control.model';\r\nimport { LastSlopeControlService } from 'src/app/last-slope-control/last-slope-control.service';\r\n\r\n@Component({\r\n selector: 'sis-zone-item',\r\n templateUrl: './zone-item.component.html',\r\n styleUrls: ['./zone-item.component.scss'],\r\n standalone: false\r\n})\r\nexport class ZoneItemComponent extends Unsubscriber implements OnInit {\r\n private static readonly requiredFeature = new Feature(FeatureId.SISMEDIA_LASTSLOPECONTROL, FeatureAccessLevel.WRITE);\r\n\r\n @Input() guid: string;\r\n\r\n editItem: LastSlopeControl;\r\n writePermission: boolean;\r\n bigScreenMode: boolean;\r\n hasChanged: boolean = false;\r\n\r\n private item: LastSlopeControl;\r\n\r\n constructor(\r\n private screenSizeService: ScreenSizeService,\r\n private lastSlopeControlService: LastSlopeControlService,\r\n private destinationService: DestinationService\r\n ) {\r\n super();\r\n }\r\n\r\n ngOnInit() {\r\n this.lastSlopeControlService.lastSlopeControls$.pipe(takeUntil(this.onDestroy$)).subscribe((data) => {\r\n this.item = data.find((d) => d.guid === this.guid);\r\n this.editItem = JSON.parse(JSON.stringify(this.item));\r\n });\r\n\r\n this.destinationService.selectedTenantFeatures$.pipe(takeUntil(this.onDestroy$)).subscribe((features) => {\r\n this.writePermission =\r\n features.some((f) => f.hasMinimumRequirementFor(ZoneItemComponent.requiredFeature)) ?? false;\r\n });\r\n\r\n this.screenSizeService.bigScreenMode$\r\n .pipe(takeUntil(this.onDestroy$))\r\n .subscribe((bigScreenMode) => (this.bigScreenMode = bigScreenMode));\r\n }\r\n\r\n timeChanged(event: any, timeIndex: number): void {\r\n const newTime = event.target.value;\r\n if (!this.writePermission || this.editItem.times[timeIndex] === newTime) {\r\n return;\r\n }\r\n\r\n this.editItem.times[timeIndex] = newTime;\r\n\r\n this.hasChanged = this.hasUnsavedChanges();\r\n }\r\n\r\n radioGroupChange(): void {\r\n this.hasChanged = this.hasUnsavedChanges();\r\n }\r\n\r\n reset() {\r\n this.editItem = JSON.parse(JSON.stringify(this.item));\r\n this.hasChanged = false;\r\n }\r\n\r\n async saveEntry(): Promise {\r\n if (this.writePermission) {\r\n this.hasChanged = false;\r\n await this.lastSlopeControlService.updateLastSlopeControl(this.editItem);\r\n }\r\n }\r\n\r\n private hasUnsavedChanges(): boolean {\r\n return (\r\n this.item.activeTime !== this.editItem.activeTime || this.item.times.some((t) => !this.editItem.times.includes(t))\r\n );\r\n }\r\n}\r\n","\r\n\r\n \r\n \r\n \r\n {{ 'lastSlopeControl.term.zone' | translate }} {{ editItem.zone }}\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 {{ 'lastSlopeControl.term.zone' | translate }} {{ editItem.zone }}\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 { LedTickerItem } from 'src/app/led-ticker/domain/led-ticker-item.model';\r\n\r\nexport class LedTickerItemAdapter {\r\n static adapt(item: any): LedTickerItem | null {\r\n if (!item) {\r\n return null;\r\n }\r\n\r\n return {\r\n active: item.active,\r\n alignment: item.alignment,\r\n duration: item.duration,\r\n ledTickerGuid: item.ledTickerGuid,\r\n ledTickerPageGuid: item.ledTickerPageGuid,\r\n ledTickerTextGuid: item.ledTickerTextGuid,\r\n pageNr: item.pageNr,\r\n rowNr: item.rowNr,\r\n text: item.text,\r\n };\r\n }\r\n}\r\n","import { LedTicker } from 'src/app/led-ticker/domain/led-ticker.model';\r\nimport { LedTickerItemAdapter } from 'src/app/led-ticker/domain/led-ticker-item.adapter';\r\nimport { LedTickerItem } from 'src/app/led-ticker/domain/led-ticker-item.model';\r\n\r\nexport class LedTickerAdapter {\r\n private static readonly maxRows = 20;\r\n\r\n static adapt(item: any): LedTicker[] {\r\n if (!item || !item.ledTickers) {\r\n return [];\r\n }\r\n\r\n const tickerMap = new Map();\r\n\r\n item.ledTickers.forEach((item) => {\r\n if (!tickerMap.has(item.ledTickerGuid)) {\r\n tickerMap.set(item.ledTickerGuid, {\r\n guid: item.ledTickerGuid,\r\n groupCount: this.maxRows / Number.parseInt(item.rows),\r\n itemsPerGroup: Number.parseInt(item.rows),\r\n maxTextLength: Number.parseInt(item.cols),\r\n name: item.name,\r\n items: [],\r\n groupedItems: new Map(),\r\n });\r\n }\r\n\r\n const ledTicker = tickerMap.get(item.ledTickerGuid);\r\n\r\n const ledTickerItem = LedTickerItemAdapter.adapt(item);\r\n\r\n if (!ledTicker.groupedItems.has(ledTickerItem.ledTickerPageGuid)) {\r\n ledTicker.groupedItems.set(ledTickerItem.ledTickerPageGuid, []);\r\n }\r\n\r\n ledTicker.groupedItems.get(ledTickerItem.ledTickerPageGuid).push(ledTickerItem);\r\n\r\n ledTicker.items.push(ledTickerItem);\r\n });\r\n\r\n return [...tickerMap.values()];\r\n }\r\n}\r\n","import { Component, EventEmitter, Input, OnInit, Output } from '@angular/core';\r\nimport { FormControl, FormGroup } from '@angular/forms';\r\nimport { Observable } from 'rxjs';\r\nimport { filter, map, takeUntil } from 'rxjs/operators';\r\nimport { Unsubscriber } from 'src/app/core/unsubscriber';\r\nimport { DestinationService } from 'src/app/domain/destination/destination.service';\r\nimport { Feature } from 'src/app/domain/feature/feature.model';\r\nimport { FeatureAccessLevel } from 'src/app/domain/feature/feature-access-level.model';\r\nimport { FeatureId } from 'src/app/domain/feature/feature-id.model';\r\nimport { LedTickerDisplayed } from 'src/app/led-ticker/domain/led-ticker-displayed.model';\r\nimport { LedTickerItem } from 'src/app/led-ticker/domain/led-ticker-item.model';\r\n\r\n@Component({\r\n selector: 'sis-led-ticker-group',\r\n templateUrl: './led-ticker-group.component.html',\r\n styleUrls: ['./led-ticker-group.component.scss'],\r\n standalone: false\r\n})\r\nexport class LedTickerGroupComponent extends Unsubscriber implements OnInit {\r\n @Input() ledTickerPageGuid: string;\r\n @Input() ledTickerDisplayed$: Observable;\r\n\r\n @Output() formDataModified: EventEmitter = new EventEmitter();\r\n\r\n editableLedTickerItems: LedTickerItem[];\r\n pageNr: number;\r\n alignment: 'left' | 'middle' | 'right';\r\n active: boolean;\r\n duration: number;\r\n maxTextLength: number;\r\n writePermission: boolean;\r\n formGroup: FormGroup;\r\n\r\n constructor(private destinationService: DestinationService) {\r\n super();\r\n }\r\n\r\n ngOnInit(): void {\r\n this.ledTickerDisplayed$\r\n .pipe(\r\n map((ledTickerPages) => ledTickerPages.find((page) => page.ledTickerPageGuid === this.ledTickerPageGuid)),\r\n filter((item) => !!item),\r\n takeUntil(this.onDestroy$)\r\n )\r\n .subscribe((item) => {\r\n this.updateValues(item);\r\n });\r\n\r\n this.destinationService.selectedTenantFeatures$.pipe(takeUntil(this.onDestroy$)).subscribe((features) => {\r\n this.writePermission = features.some((f) =>\r\n f.hasMinimumRequirementFor(new Feature(FeatureId.SISMEDIA_LEDTICKER, FeatureAccessLevel.WRITE))\r\n );\r\n\r\n this.setDisabled(this.writePermission);\r\n });\r\n }\r\n\r\n private updateValues(item: LedTickerDisplayed) {\r\n this.editableLedTickerItems = item.clonedItems.sort((a, b) => a.rowNr - b.rowNr);\r\n this.maxTextLength = item.maxTextLength;\r\n\r\n const firstItem = this.editableLedTickerItems[0];\r\n\r\n if (firstItem) {\r\n this.pageNr = firstItem.pageNr;\r\n this.alignment = firstItem.alignment;\r\n this.active = firstItem.active;\r\n this.duration = firstItem.duration;\r\n }\r\n\r\n this.formGroup = new FormGroup({\r\n alignment: new FormControl<'left' | 'middle' | 'right'>(this.alignment),\r\n active: new FormControl(this.active),\r\n duration: new FormControl(this.duration),\r\n });\r\n\r\n this.editableLedTickerItems.forEach((item, i) =>\r\n this.formGroup.addControl('text' + i, new FormControl(item.text))\r\n );\r\n\r\n this.setValues();\r\n\r\n this.formGroup.valueChanges.pipe(takeUntil(this.onDestroy$)).subscribe(() => {\r\n const changedItem = this.formGroup.getRawValue();\r\n this.editableLedTickerItems.forEach((item, i) => {\r\n item.active = changedItem.active;\r\n item.alignment = changedItem.alignment;\r\n item.duration = this.getNumberOrNull(changedItem.duration);\r\n item.text = changedItem['text' + i];\r\n });\r\n\r\n this.formDataModified.emit();\r\n });\r\n }\r\n\r\n private setValues(): void {\r\n const values = {\r\n alignment: this.alignment,\r\n active: this.active,\r\n duration: this.duration,\r\n };\r\n\r\n this.editableLedTickerItems.forEach((item, i) => {\r\n const key = 'text' + i;\r\n values[key] = item.text;\r\n });\r\n this.formGroup?.setValue(values, { emitEvent: false });\r\n }\r\n\r\n private setDisabled(writePermission: boolean): void {\r\n if (writePermission) {\r\n Object.values(this.formGroup.controls).forEach((control) => control.enable({ emitEvent: false }));\r\n } else {\r\n Object.values(this.formGroup.controls).forEach((control) => control.disable({ emitEvent: false }));\r\n }\r\n }\r\n\r\n private getNumberOrNull(item: string | number): number {\r\n return Number.parseInt(item + '');\r\n }\r\n}\r\n","\r\n \r\n {{ 'ledticker.term.page' | translate }}: {{ this.pageNr }} \r\n \r\n
\r\n \r\n \r\n {{ 'ledticker.term.active' | translate }}\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n {{ 'ledticker.term.duration' | translate }}\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n s \r\n \r\n \r\n \r\n \r\n \r\n \r\n {{ 'ledticker.term.alignment' | translate }}\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 {{ 'ledticker.term.texts' | translate }}\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n
\r\n","import { CommonModule } from '@angular/common';\r\nimport { NgModule } from '@angular/core';\r\nimport { FormsModule, ReactiveFormsModule } from '@angular/forms';\r\nimport { MatTooltipModule } from '@angular/material/tooltip';\r\nimport { RouterModule } from '@angular/router';\r\nimport { IonicModule } from '@ionic/angular';\r\nimport { TranslateModule } from '@ngx-translate/core';\r\nimport { CoreModule } from 'src/app/core/core.module';\r\nimport { PendingChangesGuard } from 'src/app/core/guards/pending-changes.guard';\r\nimport { LedTickerPage } from 'src/app/led-ticker/led-ticker.page';\r\nimport { LedTickerGroupComponent } from 'src/app/led-ticker/led-ticker-group/led-ticker-group.component';\r\n\r\n@NgModule({\r\n imports: [\r\n CommonModule,\r\n FormsModule,\r\n ReactiveFormsModule,\r\n IonicModule,\r\n RouterModule.forChild([\r\n {\r\n path: '',\r\n component: LedTickerPage,\r\n canDeactivate: [PendingChangesGuard],\r\n },\r\n ]),\r\n TranslateModule,\r\n MatTooltipModule,\r\n CoreModule,\r\n ],\r\n declarations: [LedTickerPage, LedTickerGroupComponent],\r\n})\r\nexport class LedTickerPageModule {}\r\n","import { Component, HostListener, OnInit } from '@angular/core';\r\nimport { BehaviorSubject, firstValueFrom, Observable, ReplaySubject } from 'rxjs';\r\nimport { distinctUntilChanged, map, shareReplay, switchMap, takeUntil } from 'rxjs/operators';\r\nimport { LogbookModalService } from 'src/app/core/components/logbook/logbook-modal/logbook-modal.service';\r\nimport { Unsubscriber } from 'src/app/core/unsubscriber';\r\nimport { ScreenSizeService } from 'src/app/core/utils/screen-size.service';\r\nimport { DestinationService } from 'src/app/domain/destination/destination.service';\r\nimport { Feature } from 'src/app/domain/feature/feature.model';\r\nimport { FeatureAccessLevel } from 'src/app/domain/feature/feature-access-level.model';\r\nimport { FeatureId } from 'src/app/domain/feature/feature-id.model';\r\nimport { LedTicker } from 'src/app/led-ticker/domain/led-ticker.model';\r\nimport { LedTickerDisplayed } from 'src/app/led-ticker/domain/led-ticker-displayed.model';\r\nimport { LedTickerItem } from 'src/app/led-ticker/domain/led-ticker-item.model';\r\nimport { LedTickerService } from 'src/app/led-ticker/led-ticker.service';\r\n\r\n@Component({\r\n selector: 'sis-led-ticker',\r\n templateUrl: './led-ticker.page.html',\r\n styleUrls: ['./led-ticker.page.scss'],\r\n standalone: false\r\n})\r\nexport class LedTickerPage extends Unsubscriber implements OnInit {\r\n private readonly selectedLedTicker$ = new ReplaySubject(1);\r\n private readonly reset$ = new BehaviorSubject(null);\r\n\r\n readonly logbookAvailable$ = this.logbookModalService.logbookAvailable$;\r\n\r\n readonly displayedItems$ = this.selectedLedTicker$.pipe(\r\n distinctUntilChanged((a, b) => a.guid === b.guid),\r\n switchMap((ledTicker) => this.reset$.pipe(map(() => ledTicker))),\r\n takeUntil(this.onDestroy$),\r\n map((ledTicker) => {\r\n this.isSaving = false;\r\n this.isModified = false;\r\n this.selectedLedTicker = ledTicker;\r\n\r\n if (!ledTicker) {\r\n return [];\r\n }\r\n\r\n const groups = [...ledTicker.groupedItems.values()].sort((a, b) => a[0].pageNr - b[0].pageNr);\r\n\r\n return groups.map((group) => ({\r\n originalItems: group,\r\n clonedItems: group.map(this.copyLedTickerItem),\r\n maxTextLength: ledTicker.maxTextLength,\r\n ledTickerGuid: ledTicker.guid,\r\n ledTickerPageGuid: group[0].ledTickerPageGuid,\r\n }));\r\n }),\r\n shareReplay({\r\n bufferSize: 1,\r\n refCount: true,\r\n })\r\n );\r\n\r\n readonly displayConfig$ = this.displayedItems$.pipe(\r\n distinctUntilChanged((prev, curr) => prev[0]?.ledTickerGuid === curr[0]?.ledTickerGuid),\r\n switchMap((displayedItems: LedTickerDisplayed[]) =>\r\n this.screenSizeService.bigScreenMode$.pipe(\r\n map((bigScreenMode) => {\r\n const columns = bigScreenMode ? 2 : 1;\r\n const groupCount = displayedItems.length;\r\n const rows = groupCount / columns;\r\n\r\n const displayConfig: string[][] = [];\r\n\r\n for (let i = 0; i < rows; i++) {\r\n displayConfig.push([]);\r\n for (let j = i * columns; j < i * columns + columns; j++) {\r\n if (displayedItems[j]) {\r\n displayConfig[i].push(displayedItems[j].ledTickerPageGuid);\r\n displayConfig[i]['colSize'] = 12 / columns;\r\n }\r\n }\r\n }\r\n\r\n return displayConfig;\r\n })\r\n )\r\n ),\r\n shareReplay({\r\n bufferSize: 1,\r\n refCount: true,\r\n })\r\n );\r\n\r\n ledTickers: LedTicker[];\r\n selectedLedTicker: LedTicker;\r\n\r\n bigScreenMode: boolean;\r\n isModified: boolean;\r\n isSaving: boolean;\r\n writePermission: boolean;\r\n\r\n constructor(\r\n private screenSizeService: ScreenSizeService,\r\n private logbookModalService: LogbookModalService,\r\n private ledTickerService: LedTickerService,\r\n private destinationService: DestinationService\r\n ) {\r\n super();\r\n }\r\n\r\n ngOnInit() {\r\n this.screenSizeService.bigScreenMode$\r\n .pipe(takeUntil(this.onDestroy$))\r\n .subscribe((bigScreenMode) => (this.bigScreenMode = bigScreenMode));\r\n\r\n this.destinationService.selectedTenantFeatures$.pipe(takeUntil(this.onDestroy$)).subscribe((features) => {\r\n this.writePermission = features.some((f) =>\r\n f.hasMinimumRequirementFor(new Feature(FeatureId.SISMEDIA_LEDTICKER, FeatureAccessLevel.WRITE))\r\n );\r\n });\r\n\r\n this.ledTickerService.ledTickers$.pipe(takeUntil(this.onDestroy$)).subscribe((ledTickers) => {\r\n this.ledTickers = ledTickers;\r\n if (this.selectedLedTicker == null || !this.ledTickers.includes(this.selectedLedTicker)) {\r\n this.selectedLedTicker = ledTickers[0];\r\n this.selectedLedTicker$.next(ledTickers[0]);\r\n } else {\r\n if (ledTickers['updated'] === this.selectedLedTicker.guid) {\r\n this.reset();\r\n }\r\n }\r\n });\r\n }\r\n\r\n ledTickerSelected(event: any): void {\r\n this.selectedLedTicker$.next(event.target.value);\r\n }\r\n\r\n async save(): Promise {\r\n this.isSaving = true;\r\n const displayedItems = await firstValueFrom(this.displayedItems$);\r\n\r\n const items = new Array().concat(...displayedItems.map((item) => item.clonedItems));\r\n\r\n await this.ledTickerService.postLedTicker(items);\r\n }\r\n\r\n reset(): void {\r\n this.reset$.next();\r\n }\r\n\r\n async onFormDataModified(): Promise {\r\n const displayedItems = await firstValueFrom(this.displayedItems$);\r\n const editedItems = new Array().concat(...displayedItems.map((item) => item.clonedItems));\r\n\r\n const originalItems = new Array().concat(...displayedItems.map((item) => item.originalItems));\r\n\r\n this.isModified = this.isDifferent(originalItems, editedItems);\r\n }\r\n\r\n private isDifferent(items1: LedTickerItem[], items2: LedTickerItem[]): boolean {\r\n return items1.some((i1) => {\r\n const og = items2.find((i2) => i2.ledTickerTextGuid === i1.ledTickerTextGuid);\r\n if (!og) {\r\n return undefined;\r\n }\r\n return i1.active != og.active || i1.alignment != og.alignment || i1.duration != og.duration || i1.text != og.text;\r\n });\r\n }\r\n\r\n private copyLedTickerItem(item: LedTickerItem): LedTickerItem {\r\n return { ...item };\r\n }\r\n\r\n @HostListener('window:beforeunload')\r\n canDeactivate(): boolean | Observable {\r\n return !this.isModified;\r\n }\r\n}\r\n","\r\n \r\n\r\n \r\n \r\n \r\n {{ ticker.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 \r\n\r\n","import { HttpClient } from '@angular/common/http';\r\nimport { Injectable } from '@angular/core';\r\nimport { firstValueFrom, merge, Observable, of } from 'rxjs';\r\nimport { catchError, distinctUntilChanged, filter, map, shareReplay, switchMap, withLatestFrom } from 'rxjs/operators';\r\nimport { EventBusService } from 'src/app/core/eventbus/event-bus.service';\r\nimport { LedTickerUpdatedEvent } from 'src/app/core/eventbus/events';\r\nimport { DestinationService } from 'src/app/domain/destination/destination.service';\r\nimport { Feature } from 'src/app/domain/feature/feature.model';\r\nimport { FeatureAccessLevel } from 'src/app/domain/feature/feature-access-level.model';\r\nimport { FeatureId } from 'src/app/domain/feature/feature-id.model';\r\nimport { UserSettingsService } from 'src/app/domain/user-settings/user-settings.service';\r\nimport { LedTickerAdapter } from 'src/app/led-ticker/domain/led-ticker.adapter';\r\nimport { LedTicker } from 'src/app/led-ticker/domain/led-ticker.model';\r\nimport { LedTickerItem } from 'src/app/led-ticker/domain/led-ticker-item.model';\r\nimport { UserMessage } from 'src/app/user-message/user-message.model';\r\nimport { UserMessageService } from 'src/app/user-message/user-message.service';\r\nimport { UserMessageColor } from 'src/app/user-message/user-message-color';\r\nimport { UserMessageIcon } from 'src/app/user-message/user-message-icon';\r\nimport { environment } from 'src/environments/environment';\r\n\r\n@Injectable({\r\n providedIn: 'root',\r\n})\r\nexport class LedTickerService {\r\n private readonly requiredFeature = new Feature(FeatureId.SISMEDIA_LEDTICKER, FeatureAccessLevel.READ);\r\n private readonly baseRequestUrl: string = '/ledticker/get';\r\n private readonly basePostUrl: string = '/ledticker/post';\r\n\r\n private readonly ledTickerRequest$: Observable = this.destinationService.selectedTenantFeatures$.pipe(\r\n distinctUntilChanged(),\r\n filter((features) => features.some((feature) => feature.hasMinimumRequirementFor(this.requiredFeature))),\r\n switchMap(() => this.http.get(`${environment.baseUrlApi}${this.baseRequestUrl}`)),\r\n map((data) => {\r\n const ledTickers = LedTickerAdapter.adapt(data);\r\n ledTickers['updated'] = undefined;\r\n return ledTickers;\r\n }),\r\n shareReplay({\r\n bufferSize: 1,\r\n refCount: true,\r\n })\r\n );\r\n\r\n private readonly updatedLedTickers$: Observable = this.eventBus.observe(LedTickerUpdatedEvent).pipe(\r\n withLatestFrom(this.destinationService.selectedTenant$),\r\n filter(([updatedEvent, tenant]) => updatedEvent?.tenantGuid === tenant?.guid),\r\n withLatestFrom(this.ledTickerRequest$, this.userSettingsService.userSettings$),\r\n map(([[updatedEvent], ledTickers, userSettings]) => {\r\n if (updatedEvent.changedBy === userSettings.userGuid) {\r\n if (!updatedEvent.updateSuccessful) {\r\n const userMessage = new UserMessage({\r\n message: 'general.phrase.saveFailed',\r\n icon: UserMessageIcon.failed,\r\n durationMs: 2000,\r\n position: 'top',\r\n color: UserMessageColor.red,\r\n });\r\n this.userMessageService.presentToast(userMessage);\r\n } else {\r\n const userMessage = new UserMessage({\r\n message: 'general.phrase.saved',\r\n icon: UserMessageIcon.success,\r\n durationMs: 2000,\r\n position: 'top',\r\n color: UserMessageColor.green,\r\n });\r\n this.userMessageService.presentToast(userMessage);\r\n }\r\n }\r\n\r\n const updatedLedTicker = ledTickers.find((ticker) => ticker.guid === updatedEvent.ledTicker.guid);\r\n\r\n if (updatedEvent.updateSuccessful && updatedLedTicker) {\r\n updatedLedTicker.groupedItems = updatedEvent.ledTicker.groupedItems;\r\n updatedLedTicker.items = updatedEvent.ledTicker.items;\r\n }\r\n\r\n ledTickers['updated'] = updatedLedTicker?.guid;\r\n\r\n return ledTickers;\r\n })\r\n );\r\n\r\n readonly ledTickers$: Observable = merge(this.ledTickerRequest$, this.updatedLedTickers$).pipe(\r\n map((ledTickers) => ledTickers.sort((a, b) => a.name.localeCompare(b.name))),\r\n shareReplay({\r\n bufferSize: 1,\r\n refCount: true,\r\n })\r\n );\r\n\r\n constructor(\r\n private destinationService: DestinationService,\r\n private http: HttpClient,\r\n private eventBus: EventBusService,\r\n private userSettingsService: UserSettingsService,\r\n private userMessageService: UserMessageService\r\n ) {}\r\n\r\n async postLedTicker(ledTickerItems: LedTickerItem[]): Promise {\r\n return firstValueFrom(\r\n this.http.post(`${environment.baseUrlApi}${this.basePostUrl}`, ledTickerItems).pipe(\r\n map(() => true),\r\n catchError(() => {\r\n const translateKey = 'general.phrase.saveFailed';\r\n const userMessage = new UserMessage({\r\n message: translateKey,\r\n icon: UserMessageIcon.failed,\r\n durationMs: 2000,\r\n position: 'top',\r\n color: UserMessageColor.red,\r\n });\r\n this.userMessageService.presentToast(userMessage);\r\n\r\n return of(false);\r\n })\r\n )\r\n );\r\n }\r\n}\r\n","import { Component, OnInit } from '@angular/core';\r\nimport { MsalBroadcastService, MsalService } from '@azure/msal-angular';\r\nimport { InteractionStatus } from '@azure/msal-browser';\r\nimport { delay, takeUntil } from 'rxjs/operators';\r\nimport { AppService } from 'src/app/app.service';\r\nimport { Unsubscriber } from 'src/app/core/unsubscriber';\r\nimport { environment } from 'src/environments/environment';\r\n@Component({\r\n selector: 'sis-login',\r\n templateUrl: './login.component.html',\r\n styleUrls: ['./login.component.scss'],\r\n standalone: false\r\n})\r\nexport class LoginComponent extends Unsubscriber implements OnInit {\r\n msalLoginReady = false;\r\n\r\n constructor(\r\n private msalBroadcastService: MsalBroadcastService,\r\n private msalService: MsalService,\r\n private appService: AppService\r\n ) {\r\n super();\r\n }\r\n\r\n ngOnInit(): void {\r\n this.msalBroadcastService.inProgress$.pipe(delay(0), takeUntil(this.onDestroy$)).subscribe((status) => {\r\n this.msalLoginReady = status === InteractionStatus.None || status === InteractionStatus.Startup;\r\n });\r\n }\r\n\r\n login(): void {\r\n this.appService.deleteLocalStorage();\r\n this.msalService.loginRedirect({\r\n scopes: environment.msalScopes,\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, EventEmitter, Input, Output } from '@angular/core';\r\nimport { Router } from '@angular/router';\r\nimport { MenuController } from '@ionic/angular';\r\nimport { MainMenuEntry } from 'src/app/main-menu/main-menu-entry.model';\r\nimport { UserMessage } from 'src/app/user-message/user-message.model';\r\nimport { UserMessageService } from 'src/app/user-message/user-message.service';\r\nimport { UserMessageColor } from 'src/app/user-message/user-message-color';\r\nimport { UserMessageIcon } from 'src/app/user-message/user-message-icon';\r\n\r\n@Component({\r\n selector: 'sis-main-menu-list',\r\n templateUrl: './main-menu-list.component.html',\r\n styleUrls: ['./main-menu-list.component.scss'],\r\n standalone: false\r\n})\r\nexport class MainMenuListComponent {\r\n @Input() menuCtrl: MenuController;\r\n @Input() appPages: MainMenuEntry[] = [];\r\n @Output() menuItemClicked = new EventEmitter();\r\n\r\n constructor(private router: Router, private userMessageService: UserMessageService) {}\r\n\r\n menuItemClick(mainMenuEntry: MainMenuEntry) {\r\n this.toggleSubmenu(mainMenuEntry);\r\n\r\n this.menuItemClicked.emit();\r\n\r\n if (mainMenuEntry.url) {\r\n this.menuCtrl.close('mainMenu');\r\n this.navigatePage(mainMenuEntry.url);\r\n }\r\n }\r\n\r\n private toggleSubmenu(mainMenuEntry: MainMenuEntry) {\r\n if (mainMenuEntry.submenu?.length > 0) {\r\n mainMenuEntry.open = !mainMenuEntry.open;\r\n }\r\n\r\n this.appPages.forEach((menuEntry) => {\r\n if (mainMenuEntry !== menuEntry && !menuEntry.submenu?.includes(mainMenuEntry)) {\r\n menuEntry.open = false;\r\n }\r\n });\r\n }\r\n\r\n private navigatePage(url: string) {\r\n this.router.navigate([url]);\r\n }\r\n\r\n private presentToast() {\r\n this.userMessageService.presentToast(\r\n new UserMessage({\r\n message: 'user.message.mobilePageNotAvailable',\r\n icon: UserMessageIcon.info,\r\n durationMs: 2000,\r\n position: 'bottom',\r\n color: UserMessageColor.blue,\r\n })\r\n );\r\n }\r\n}\r\n","\r\n \r\n \r\n {{ p.title | translate }}\r\n 0\"\r\n slot=\"end\"\r\n [name]=\"p.open ? 'chevron-down-outline' : 'chevron-forward-outline'\"\r\n >\r\n \r\n 0 && p.open && p.enabled\">\r\n \r\n \r\n \r\n {{ s.title | translate }}\r\n \r\n \r\n \r\n\r\n","import { Component, Input, OnInit } from '@angular/core';\r\nimport { take } from 'rxjs/operators';\r\nimport { NewsService } from 'src/app/domain/news/news.service';\r\n\r\n@Component({\r\n selector: 'sis-main-menu-news-item',\r\n templateUrl: './main-menu-news-item.component.html',\r\n styleUrls: ['./main-menu-news-item.component.scss'],\r\n standalone: false\r\n})\r\nexport class MainMenuNewsItemComponent implements OnInit {\r\n @Input() fileName: string;\r\n\r\n mdText: string;\r\n\r\n constructor(private newsService: NewsService) {}\r\n\r\n ngOnInit(): void {\r\n this.newsService\r\n .getFileText(this.fileName)\r\n .pipe(take(1))\r\n .subscribe((text) => (this.mdText = text));\r\n }\r\n}\r\n","\r\n \r\n
\r\n
\r\n
\r\n","import { Component, ViewChild } from '@angular/core';\r\nimport { TranslateService } from '@ngx-translate/core';\r\nimport { BehaviorSubject, combineLatest } from 'rxjs';\r\nimport { map, startWith, switchMap, take } from 'rxjs/operators';\r\nimport { Unsubscriber } from 'src/app/core/unsubscriber';\r\nimport { NewsService } from 'src/app/domain/news/news.service';\r\n\r\n@Component({\r\n selector: 'sis-main-menu-news',\r\n templateUrl: './main-menu-news.component.html',\r\n styleUrls: ['./main-menu-news.component.scss'],\r\n standalone: false\r\n})\r\nexport class MainMenuNewsComponent extends Unsubscriber {\r\n private readonly requestAllNewsFiles$ = new BehaviorSubject(false);\r\n\r\n readonly hasUnreadNews$ = this.newsService.hasUnreadNews$;\r\n\r\n readonly loadAllNewsFiles$ = combineLatest([\r\n this.requestAllNewsFiles$,\r\n this.newsService.unreadNewsFileNames$.pipe(take(1)),\r\n this.newsService.newsFileNames$.pipe(take(1)),\r\n ]).pipe(\r\n map(\r\n ([requestAllNewsFiles, unreadFileNames, allFileNames]) =>\r\n requestAllNewsFiles || !unreadFileNames.length || unreadFileNames.length === allFileNames.length\r\n )\r\n );\r\n\r\n readonly fileNames$ = this.loadAllNewsFiles$.pipe(\r\n switchMap((loadAllNewsFiles) => {\r\n if (loadAllNewsFiles) {\r\n return this.newsService.newsFileNames$.pipe(take(1));\r\n } else {\r\n return this.newsService.unreadNewsFileNames$.pipe(take(1));\r\n }\r\n }),\r\n switchMap((fileNames) =>\r\n this.translateService.onLangChange.pipe(\r\n map((langChangeEvent) => langChangeEvent.lang),\r\n startWith(this.translateService.currentLang),\r\n map((lang) => fileNames.filter((fileName) => fileName.includes(`_${lang}_`)))\r\n )\r\n )\r\n );\r\n\r\n @ViewChild('newsGrid') newsGrid: any;\r\n @ViewChild('newsTopRow') newsTopRow: any;\r\n\r\n open = false;\r\n\r\n constructor(private newsService: NewsService, private translateService: TranslateService) {\r\n super();\r\n }\r\n\r\n requestAllNewsFiles(): void {\r\n this.requestAllNewsFiles$.next(true);\r\n }\r\n\r\n onMenuItemClick(): void {\r\n this.newsService.updateNewsViewed();\r\n this.open = !this.open;\r\n\r\n setTimeout(() => {\r\n this.newsGrid.el.scrollIntoView();\r\n if (this.open) {\r\n this.newsTopRow.el.scrollIntoView();\r\n }\r\n });\r\n }\r\n}\r\n","\r\n
\r\n \r\n \r\n
\r\n {{ 'general.term.news' | translate }}\r\n \r\n
\r\n\r\n \r\n \r\n \r\n \r\n {{ 'news.phrase.loadReadNews' | translate }}\r\n \r\n\r\n","import { Component, OnInit, ViewChild } from '@angular/core';\r\nimport { MenuController, ModalController } from '@ionic/angular';\r\nimport { combineLatest, firstValueFrom } from 'rxjs';\r\nimport { distinctUntilChanged, take, takeUntil } from 'rxjs/operators';\r\nimport { Unsubscriber } from 'src/app/core/unsubscriber';\r\nimport { DestinationService } from 'src/app/domain/destination/destination.service';\r\nimport { Feature } from 'src/app/domain/feature/feature.model';\r\nimport { FeatureAccessLevel } from 'src/app/domain/feature/feature-access-level.model';\r\nimport { FeatureId } from 'src/app/domain/feature/feature-id.model';\r\nimport { NewsService } from 'src/app/domain/news/news.service';\r\nimport { SisRoute } from 'src/app/domain/sis-route.model';\r\nimport { Tenant } from 'src/app/domain/tenant/tenant.model';\r\nimport { TenantService } from 'src/app/domain/tenant/tenant.service';\r\nimport { UserService } from 'src/app/domain/user/user.service';\r\nimport { UserSettingsService } from 'src/app/domain/user-settings/user-settings.service';\r\nimport { MainMenuEntry } from 'src/app/main-menu/main-menu-entry.model';\r\nimport { MainMenuNewsComponent } from 'src/app/main-menu/main-menu-news/main-menu-news.component';\r\nimport { SelectDestinationModal } from 'src/app/main-menu/select-destination/select-destination.component';\r\nimport { SelectLanguageModal } from 'src/app/main-menu/select-language/select-language.component';\r\nimport { TenantEditModal } from 'src/app/main-menu/tenant-edit-modal/tenant-edit.component';\r\n\r\n@Component({\r\n selector: 'sis-main-menu',\r\n templateUrl: './main-menu.component.html',\r\n styleUrls: ['./main-menu.component.scss'],\r\n standalone: false\r\n})\r\nexport class MainMenuComponent extends Unsubscriber implements OnInit {\r\n private menuEntries: MainMenuEntry[] = [];\r\n\r\n @ViewChild(MainMenuNewsComponent) newsComponent: MainMenuNewsComponent;\r\n\r\n userActions = [\r\n {\r\n title: 'general.term.destination',\r\n icon: 'swap-horizontal-outline',\r\n dataTest: 'destination-select-button',\r\n action: () => this.onUserActionDestination(),\r\n subActions: [\r\n {\r\n tooltip: 'general.term.edit',\r\n icon: 'create-outline',\r\n dataTest: 'edit-tenant-button',\r\n action: () => this.onTenantEdit(false),\r\n },\r\n {\r\n tooltip: 'general.term.add',\r\n icon: 'add-circle-outline',\r\n dataTest: 'add-tenant-button',\r\n action: () => this.onTenantEdit(true),\r\n },\r\n ],\r\n },\r\n {\r\n title: 'general.term.language',\r\n icon: 'globe-outline',\r\n dataTest: 'language-select-button',\r\n action: () => this.onUserActionLanguage(),\r\n },\r\n {\r\n title: 'general.term.logout',\r\n icon: 'log-out-outline',\r\n dataTest: 'logout-button',\r\n action: () => this.onUserActionLogout(),\r\n },\r\n ];\r\n\r\n tenant: Tenant;\r\n hasTenants: boolean;\r\n pages: MainMenuEntry[] = [];\r\n userName: string;\r\n newsOnTop: boolean;\r\n userIsAdministrator: boolean;\r\n\r\n constructor(\r\n private modalCtrl: ModalController,\r\n private userService: UserService,\r\n public menuCtrl: MenuController,\r\n private destinationService: DestinationService,\r\n private tenantdataService: TenantService,\r\n private userSettingsService: UserSettingsService,\r\n private newsService: NewsService\r\n ) {\r\n super();\r\n }\r\n\r\n ngOnInit() {\r\n this.destinationService.selectedTenant$.pipe(takeUntil(this.onDestroy$)).subscribe((tenant) => {\r\n this.tenant = tenant;\r\n });\r\n\r\n this.userService.userName$.pipe(takeUntil(this.onDestroy$)).subscribe((userName) => (this.userName = userName));\r\n\r\n combineLatest([\r\n this.destinationService.selectedTenantFeatures$,\r\n this.userSettingsService.userSettings$.pipe(\r\n distinctUntilChanged((x, y) => x.isAdministrator === y.isAdministrator)\r\n ),\r\n ])\r\n .pipe(takeUntil(this.onDestroy$))\r\n .subscribe(([features, userSettings]) => {\r\n this.userIsAdministrator = userSettings.isAdministrator;\r\n if (!features) {\r\n return;\r\n }\r\n\r\n const menuEntries = [\r\n {\r\n title: 'general.term.cockpit',\r\n iconName: 'sis-icon-menu-map',\r\n enabled: true,\r\n url: 'default/maps',\r\n order: 0,\r\n requiredFeatures: [new Feature(FeatureId.COCKPIT, FeatureAccessLevel.READ)],\r\n },\r\n {\r\n title: 'alarming.term.alarms',\r\n iconName: 'sis-icon-menu-notifications',\r\n enabled: true,\r\n url: 'default/alarmlist',\r\n order: 1,\r\n requiredFeatures: [new Feature(FeatureId.COCKPIT, FeatureAccessLevel.READ)],\r\n },\r\n {\r\n title: 'SisMedia',\r\n iconName: 'sis-icon-menu-sismedia',\r\n enabled: true,\r\n url: '',\r\n order: 2,\r\n requiredFeatures: [],\r\n submenu: [\r\n {\r\n title: 'general.term.mediacenter',\r\n iconName: 'sis-icon-menu-mediacenter',\r\n enabled: true,\r\n url: `default/${SisRoute.MEDIACENTER}`,\r\n order: 1,\r\n requiredFeatures: [new Feature(FeatureId.SISMEDIA_MEDIACENTER, FeatureAccessLevel.READ)],\r\n },\r\n {\r\n title: 'general.term.lifts',\r\n iconName: 'sis-icon-menu-ropeways',\r\n enabled: true,\r\n url: `default/sismedia/${SisRoute.Lift}`,\r\n order: 2,\r\n requiredFeatures: [new Feature(FeatureId.SISMEDIA_LIFT, FeatureAccessLevel.READ)],\r\n },\r\n {\r\n title: 'general.term.slopes',\r\n iconName: 'sis-icon-menu-slope',\r\n enabled: true,\r\n url: `default/sismedia/${SisRoute.Slope}`,\r\n order: 3,\r\n requiredFeatures: [new Feature(FeatureId.SISMEDIA_SLOPE, FeatureAccessLevel.READ)],\r\n },\r\n {\r\n title: 'general.term.crossCountry',\r\n iconName: 'sis-icon-menu-crosscountry',\r\n enabled: true,\r\n url: `default/sismedia/${SisRoute.CrossCountry}`,\r\n order: 4,\r\n requiredFeatures: [new Feature(FeatureId.SISMEDIA_CROSSCOUNTRY, FeatureAccessLevel.READ)],\r\n },\r\n {\r\n title: 'general.term.sledging',\r\n iconName: 'sis-icon-menu-sledge',\r\n enabled: true,\r\n url: `default/sismedia/${SisRoute.Sledging}`,\r\n order: 5,\r\n requiredFeatures: [new Feature(FeatureId.SISMEDIA_SLEDGING, FeatureAccessLevel.READ)],\r\n },\r\n {\r\n title: 'general.term.gastro',\r\n iconName: 'sis-icon-menu-gastro',\r\n enabled: true,\r\n url: `default/sismedia/${SisRoute.Gastro}`,\r\n order: 6,\r\n requiredFeatures: [new Feature(FeatureId.SISMEDIA_GASTRO, FeatureAccessLevel.READ)],\r\n },\r\n {\r\n title: 'general.term.trails',\r\n iconName: 'sis-icon-menu-trail',\r\n enabled: true,\r\n url: `default/sismedia/${SisRoute.Trail}`,\r\n order: 7,\r\n requiredFeatures: [new Feature(FeatureId.SISMEDIA_TRAIL, FeatureAccessLevel.READ)],\r\n },\r\n {\r\n title: 'general.term.bike',\r\n iconName: 'sis-icon-menu-bike',\r\n enabled: true,\r\n url: `default/sismedia/${SisRoute.Bike}`,\r\n order: 8,\r\n requiredFeatures: [new Feature(FeatureId.SISMEDIA_BIKE, FeatureAccessLevel.READ)],\r\n },\r\n {\r\n title: 'general.term.pois',\r\n iconName: 'sis-icon-menu-poi',\r\n enabled: true,\r\n url: `default/sismedia/${SisRoute.Poi}`,\r\n order: 9,\r\n requiredFeatures: [new Feature(FeatureId.SISMEDIA_POI, FeatureAccessLevel.READ)],\r\n },\r\n {\r\n title: 'general.term.parking',\r\n iconName: 'sis-icon-menu-parking',\r\n enabled: true,\r\n url: `default/${SisRoute.PARKING}`,\r\n order: 10,\r\n requiredFeatures: [new Feature(FeatureId.PARKING, FeatureAccessLevel.READ)],\r\n },\r\n {\r\n title: 'general.term.lastSlopeControl',\r\n iconName: 'sis-icon-menu-lastslopecontrol',\r\n enabled: true,\r\n url: `default/${SisRoute.LASTSLOPECONTROL}`,\r\n order: 11,\r\n requiredFeatures: [new Feature(FeatureId.SISMEDIA_LASTSLOPECONTROL, FeatureAccessLevel.READ)],\r\n },\r\n {\r\n title: 'general.term.slopesOperatingTimes',\r\n iconName: 'sis-icon-menu-slopes-operating-times',\r\n enabled: true,\r\n url: `default/${SisRoute.SLOPESOPERATINGTIMES}`,\r\n order: 12,\r\n requiredFeatures: [new Feature(FeatureId.SISMEDIA_SLOPESOPERATINGTIMES, FeatureAccessLevel.READ)],\r\n },\r\n {\r\n title: 'general.term.infotext',\r\n iconName: 'sis-icon-menu-infotext',\r\n enabled: true,\r\n url: `default/${SisRoute.INFOTEXT}`,\r\n order: 13,\r\n requiredFeatures: [new Feature(FeatureId.SISMEDIA_INFOTEXT, FeatureAccessLevel.READ)],\r\n },\r\n {\r\n title: 'general.term.meteoinfo',\r\n iconName: 'sis-icon-menu-meteoinfo',\r\n enabled: true,\r\n url: `default/${SisRoute.METEOINFO}`,\r\n order: 14,\r\n requiredFeatures: [new Feature(FeatureId.SISMEDIA_METEOINFO, FeatureAccessLevel.READ)],\r\n },\r\n {\r\n title: 'general.term.stnet',\r\n iconName: 'sis-icon-menu-stnet',\r\n enabled: true,\r\n url: `default/${SisRoute.STNET}`,\r\n order: 15,\r\n requiredFeatures: [new Feature(FeatureId.SISMEDIA_STNET, FeatureAccessLevel.READ)],\r\n },\r\n {\r\n title: 'general.term.timetable',\r\n iconName: 'sis-icon-menu-timetable',\r\n enabled: true,\r\n url: `default/${SisRoute.TIMETABLE}`,\r\n order: 16,\r\n requiredFeatures: [new Feature(FeatureId.SISMEDIA_TIMETABLE, FeatureAccessLevel.READ)],\r\n },\r\n {\r\n title: 'general.term.ledticker',\r\n iconName: 'sis-icon-menu-ledticker',\r\n enabled: true,\r\n url: `default/${SisRoute.LEDTICKER}`,\r\n order: 17,\r\n requiredFeatures: [new Feature(FeatureId.SISMEDIA_LEDTICKER, FeatureAccessLevel.READ)],\r\n },\r\n {\r\n title: 'general.term.emaildelivery',\r\n iconName: 'sis-icon-menu-emaildelivery',\r\n enabled: true,\r\n url: `default/${SisRoute.EMAILDELIVERY}`,\r\n order: 18,\r\n requiredFeatures: [new Feature(FeatureId.SISMEDIA_EMAILDELIVERY, FeatureAccessLevel.READ)],\r\n },\r\n {\r\n title: 'general.term.sismediaSetting',\r\n iconName: 'sis-icon-menu-sismedia-setting',\r\n enabled: true,\r\n url: `default/${SisRoute.SISMEDIASETTING}`,\r\n order: 17,\r\n requiredFeatures: [new Feature(FeatureId.SISMEDIA_ASSET_EDIT, FeatureAccessLevel.READ)],\r\n },\r\n ],\r\n },\r\n {\r\n title: 'general.term.sisitservices',\r\n iconName: 'sis-icon-menu-itservices',\r\n enabled: true,\r\n url: 'default/sisitservices',\r\n order: 3,\r\n requiredFeatures: [new Feature(FeatureId.SISITSERVICES, FeatureAccessLevel.READ)],\r\n },\r\n {\r\n title: 'general.term.global',\r\n iconName: 'sis-icon-menu-map',\r\n enabled: true,\r\n url: 'default/global',\r\n order: 4,\r\n requiredFeatures: [new Feature(FeatureId.GLOBALVIEW, FeatureAccessLevel.READ)],\r\n },\r\n {\r\n title: 'general.term.breakdowninfo',\r\n iconName: 'sis-icon-menu-breakdowninfo',\r\n enabled: true,\r\n url: 'default/breakdowninfo',\r\n order: 5,\r\n requiredFeatures: [new Feature(FeatureId.BREAKDOWNINFO, FeatureAccessLevel.READ)],\r\n },\r\n {\r\n title: 'general.term.operatinginfo',\r\n iconName: 'sis-icon-menu-operating-info',\r\n enabled: true,\r\n url: 'default/operatinginfo',\r\n order: 6,\r\n requiredFeatures: [new Feature(FeatureId.OPERATINGINFO, FeatureAccessLevel.READ)],\r\n },\r\n {\r\n title: 'general.term.weblinkcollection',\r\n iconName: 'sis-icon-menu-weblink-collection',\r\n enabled: true,\r\n url: 'default/weblinkcollection',\r\n order: 7,\r\n requiredFeatures: [new Feature(FeatureId.WEBLINKCOLLECTION, FeatureAccessLevel.READ)],\r\n },\r\n {\r\n title: 'general.term.usermanagement',\r\n iconName: 'sis-icon-menu-user-management',\r\n enabled: true,\r\n url: 'default/usermanagement',\r\n order: 9,\r\n requiredFeatures: [new Feature(FeatureId.USERMANAGEMENT, FeatureAccessLevel.READ)],\r\n },\r\n ];\r\n\r\n if (userSettings.isAdministrator) {\r\n menuEntries.push({\r\n title: 'general.term.featuremanagement',\r\n iconName: 'sis-icon-menu-feature-management',\r\n enabled: true,\r\n url: 'default/featuremanagement',\r\n order: 8,\r\n requiredFeatures: [],\r\n });\r\n menuEntries.push({\r\n title: 'Sisag Admin',\r\n iconName: 'sis-icon-menu-sisag-admin',\r\n enabled: true,\r\n url: 'default/admin',\r\n order: 10,\r\n requiredFeatures: [],\r\n });\r\n }\r\n\r\n this.menuEntries = menuEntries;\r\n\r\n this.setMenuEntriesVisibleState(this.menuEntries, features);\r\n\r\n this.pages = this.menuEntries.sort((a, b) => a.order - b.order);\r\n });\r\n\r\n this.tenantdataService.tenants$.pipe(take(1)).subscribe((tenants) => {\r\n this.hasTenants = tenants.length > 1;\r\n if (!this.hasTenants) {\r\n this.userActions.splice(\r\n this.userActions.findIndex((u) => u.title === 'general.term.destination'),\r\n 1\r\n );\r\n }\r\n });\r\n }\r\n\r\n onUserActionDestination() {\r\n this.modalCtrl\r\n .create({\r\n component: SelectDestinationModal,\r\n cssClass: 'sis-main-menu-destination-selection-modal',\r\n })\r\n .then((modal) => modal.present());\r\n }\r\n\r\n onUserActionLanguage() {\r\n this.modalCtrl\r\n .create({\r\n component: SelectLanguageModal,\r\n cssClass: 'sis-main-menu-selection-modal',\r\n })\r\n .then((modal) => modal.present());\r\n }\r\n\r\n onTenantEdit(createNew: boolean) {\r\n this.modalCtrl\r\n .create({\r\n component: TenantEditModal,\r\n cssClass: 'sis-tenant-edit-modal',\r\n componentProps: {\r\n title: createNew ? 'Tenant erstellen' : 'Tenant editieren',\r\n tenant: createNew ? null : this.tenant,\r\n },\r\n })\r\n .then((modal) => modal.present());\r\n }\r\n\r\n onUserActionLogout() {\r\n this.userService.logout();\r\n }\r\n\r\n onUserActionPreferences() {}\r\n\r\n onMenuItemClick(): void {\r\n this.newsComponent.open = false;\r\n }\r\n\r\n async onMenuOpen(): Promise {\r\n this.newsComponent.open = false;\r\n this.newsOnTop = await firstValueFrom(this.newsService.hasUnreadNews$);\r\n }\r\n\r\n private setMenuEntriesVisibleState(menuEntries: MainMenuEntry[], allowedFeatures: Feature[]): void {\r\n menuEntries.forEach((menuEntry) => {\r\n if (menuEntry.submenu?.length > 0) {\r\n this.setMenuEntriesVisibleState(menuEntry.submenu, allowedFeatures);\r\n\r\n menuEntry.visible = menuEntry.submenu.some((submenu) => submenu.visible);\r\n } else {\r\n menuEntry.visible = menuEntry.requiredFeatures.every((r) =>\r\n allowedFeatures.some((a) => a.hasMinimumRequirementFor(r))\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

{{ userName }}

\r\n

{{ tenant?.alias }}

\r\n
\r\n
\r\n \r\n \r\n \r\n {{ u.title | translate }} \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n\r\n \r\n \r\n {{ 'general.term.pages' | translate }}\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 { Unsubscriber } from 'src/app/core/unsubscriber';\r\nimport { Tenant } from 'src/app/domain/tenant/tenant.model';\r\nimport { environment } from 'src/environments/environment';\r\n\r\n@Component({\r\n selector: 'sis-select-destination-item',\r\n templateUrl: './select-destination-item.component.html',\r\n styleUrls: ['./select-destination-item.component.scss'],\r\n standalone: false\r\n})\r\nexport class SelectDestinationItemComponent extends Unsubscriber implements OnInit {\r\n @Input() tenant: Tenant;\r\n @Input() selectedTenantGuid: string;\r\n @Input() isSelected: boolean;\r\n\r\n logoUrl: string;\r\n\r\n\r\n constructor() {\r\n super();\r\n }\r\n\r\n ngOnInit() {\r\n this.logoUrl = this.tenant.logoFilename ? environment.baseUrlCockpitBlobStorage + '/public-assets/logo/' + this.tenant.logoFilename : '';\r\n }\r\n}\r\n","\r\n \r\n {{ this.tenant.alias }}\r\n \r\n \r\n\r\n","import { Component, HostListener, OnInit, ViewChild } from '@angular/core';\r\nimport { FormControl } from '@angular/forms';\r\nimport { Router } from '@angular/router';\r\nimport { IonSearchbar, MenuController, ModalController } from '@ionic/angular';\r\nimport { debounceTime, take, takeUntil } from 'rxjs/operators';\r\nimport { Unsubscriber } from 'src/app/core/unsubscriber';\r\nimport { DestinationService } from 'src/app/domain/destination/destination.service';\r\nimport { SisRoute } from 'src/app/domain/sis-route.model';\r\nimport { Tenant } from 'src/app/domain/tenant/tenant.model';\r\nimport { TenantService } from 'src/app/domain/tenant/tenant.service';\r\n\r\n@Component({\r\n selector: 'sis-select-destination',\r\n templateUrl: 'select-destination.component.html',\r\n styleUrls: ['select-destination.component.scss'],\r\n standalone: false\r\n})\r\nexport class SelectDestinationModal extends Unsubscriber implements OnInit {\r\n tenants: Tenant[];\r\n filteredTenants: Tenant[];\r\n searchControl: FormControl;\r\n\r\n searching = false;\r\n selectedTenantGuid: string;\r\n selectedIndex: number | null = 0;\r\n\r\n @ViewChild('searchBar', { static: false }) searchBar: IonSearchbar;\r\n\r\n constructor(\r\n private modalCtrl: ModalController,\r\n private tenantdataService: TenantService,\r\n private destinationService: DestinationService,\r\n private menuCtrl: MenuController,\r\n private router: Router\r\n ) {\r\n super();\r\n\r\n this.tenantdataService.tenants$.pipe(take(1)).subscribe((tenants) => this.updateTenants(tenants));\r\n\r\n this.destinationService.selectedTenant$.pipe(takeUntil(this.onDestroy$)).subscribe((tenant) => {\r\n this.selectedTenantGuid = tenant ? tenant.guid : null;\r\n });\r\n\r\n this.searchControl = new FormControl('');\r\n }\r\n\r\n ngOnInit() {\r\n this.searchControl.valueChanges.pipe(debounceTime(300), takeUntil(this.onDestroy$)).subscribe((search: string) => {\r\n this.searching = false;\r\n this.filterTenantList(search);\r\n });\r\n\r\n setTimeout(() => this.searchBar.setFocus(), 400);\r\n }\r\n\r\n @HostListener('document:keydown', ['$event'])\r\n handleKeyDown(event: KeyboardEvent) {\r\n switch (event.key) {\r\n case 'ArrowDown':\r\n case 'Tab':\r\n this.selectedIndex =\r\n this.selectedIndex === null || this.selectedIndex >= this.filteredTenants.length - 1\r\n ? 0\r\n : this.selectedIndex + 1;\r\n event.preventDefault();\r\n break;\r\n case 'ArrowUp':\r\n this.selectedIndex =\r\n this.selectedIndex === null || this.selectedIndex <= 0\r\n ? this.filteredTenants.length - 1\r\n : this.selectedIndex - 1;\r\n event.preventDefault();\r\n break;\r\n case 'Enter':\r\n if (this.selectedIndex !== null) {\r\n this.selectTenant();\r\n }\r\n event.preventDefault();\r\n break;\r\n }\r\n }\r\n\r\n handleMouseEnter(index: number) {\r\n this.selectedIndex = index;\r\n }\r\n\r\n handleMouseLeave() {\r\n this.selectedIndex = null;\r\n }\r\n\r\n handleMouseClick() {\r\n if (this.selectedIndex !== null) {\r\n this.selectTenant();\r\n }\r\n }\r\n\r\n clearSelection() {\r\n this.selectedIndex = 0;\r\n }\r\n\r\n selectTenant() {\r\n if (this.selectedIndex !== null && this.filteredTenants.length > 0) {\r\n const selectedTenant = this.filteredTenants[this.selectedIndex];\r\n const route = this.router.url.split('/').filter((entry) => entry !== SisRoute.ERROR);\r\n const spliceCount = route.length > 2 ? 2 : 1;\r\n route.splice(0, spliceCount);\r\n route.unshift(selectedTenant.sisId);\r\n this.router.navigate(route);\r\n\r\n this.closeModal();\r\n }\r\n }\r\n\r\n updateTenantList(ev: any) {\r\n const val: string = ev.target.value;\r\n this.filterTenantList(val);\r\n }\r\n\r\n closeModal() {\r\n this.modalCtrl.dismiss();\r\n this.menuCtrl.close('mainMenu');\r\n }\r\n\r\n private filterTenantList(searchTerm: string): void {\r\n this.filteredTenants = this.tenants.filter((d) => d.alias.toLowerCase().includes(searchTerm.toLowerCase()));\r\n this.clearSelection();\r\n }\r\n\r\n private updateTenants(tenants: Tenant[]): void {\r\n this.tenants = tenants;\r\n this.filteredTenants = this.tenants.sort((a, b) => (a.alias > b.alias ? 1 : -1));\r\n }\r\n}\r\n","\r\n \r\n \r\n \r\n \r\n {{ 'destination.phrase.select' | translate }}\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, OnInit } from '@angular/core';\r\nimport { MenuController, ModalController } from '@ionic/angular';\r\nimport { TranslateService } from '@ngx-translate/core';\r\nimport { UserSettingsService } from 'src/app/domain/user-settings/user-settings.service';\r\n\r\n@Component({\r\n selector: 'sis-select-language',\r\n templateUrl: 'select-language.component.html',\r\n styleUrls: ['select-language.component.scss'],\r\n standalone: false\r\n})\r\nexport class SelectLanguageModal implements OnInit {\r\n readonly languages = [\r\n { name: 'Deutsch', key: 'de' },\r\n { name: 'Français', key: 'fr' },\r\n { name: 'Italiano', key: 'it' },\r\n { name: 'English', key: 'en' },\r\n ];\r\n\r\n selectedLanguage: string;\r\n\r\n constructor(\r\n private modalCtrl: ModalController,\r\n private translateService: TranslateService,\r\n private userSettingsService: UserSettingsService,\r\n private menuCtrl: MenuController\r\n ) {}\r\n\r\n ngOnInit(): void {\r\n this.selectedLanguage = this.translateService.currentLang;\r\n }\r\n\r\n closeModal(): void {\r\n this.modalCtrl.dismiss();\r\n this.menuCtrl.close('mainMenu');\r\n }\r\n\r\n async swapLanguage(languageKey: string): Promise {\r\n if (this.selectedLanguage !== languageKey) {\r\n this.translateService.use(languageKey);\r\n await this.userSettingsService.updateUserSettings({\r\n guiLanguage: languageKey,\r\n });\r\n }\r\n this.closeModal();\r\n }\r\n}\r\n","\r\n \r\n \r\n \r\n \r\n {{ 'general.phrase.selectLanguage' | translate }}\r\n \r\n\r\n\r\n\r\n \r\n \r\n {{ l.name }}\r\n \r\n \r\n\r\n","import { HttpClient } from '@angular/common/http';\r\nimport { Component, OnInit } from '@angular/core';\r\nimport { FormControl, FormGroup, Validators } from '@angular/forms';\r\nimport { MenuController, ModalController } from '@ionic/angular';\r\nimport { debounceTime, filter, firstValueFrom, takeUntil, withLatestFrom } from 'rxjs';\r\nimport { EventBusService } from 'src/app/core/eventbus/event-bus.service';\r\nimport { TenantUpdatedEvent } from 'src/app/core/eventbus/events';\r\nimport { Unsubscriber } from 'src/app/core/unsubscriber';\r\nimport { Tenant } from 'src/app/domain/tenant/tenant.model';\r\nimport { UserSettingsService } from 'src/app/domain/user-settings/user-settings.service';\r\nimport { UserMessage } from 'src/app/user-message/user-message.model';\r\nimport { UserMessageService } from 'src/app/user-message/user-message.service';\r\nimport { UserMessageColor } from 'src/app/user-message/user-message-color';\r\nimport { UserMessageIcon } from 'src/app/user-message/user-message-icon';\r\nimport { environment } from 'src/environments/environment';\r\n\r\n@Component({\r\n selector: 'sis-tenant-edit',\r\n templateUrl: 'tenant-edit.component.html',\r\n styleUrls: ['tenant-edit.component.scss'],\r\n standalone: false\r\n})\r\nexport class TenantEditModal extends Unsubscriber implements OnInit {\r\n private readonly basePostUrl: string = '/tenant';\r\n title: string;\r\n tenant: Tenant;\r\n editedTenant: Tenant = new Tenant({});\r\n formGroup: FormGroup;\r\n isSaving: boolean;\r\n\r\n constructor(\r\n private modalCtrl: ModalController,\r\n private menuCtrl: MenuController,\r\n private eventBus: EventBusService,\r\n private userMessageService: UserMessageService,\r\n private userSettingsService: UserSettingsService,\r\n private http: HttpClient\r\n ) {\r\n super();\r\n }\r\n\r\n ngOnInit(): void {\r\n this.formGroup = new FormGroup({\r\n sisId: new FormControl(this.tenant?.sisId ?? '', [Validators.required]),\r\n alias: new FormControl(this.tenant?.alias ?? '', [Validators.required]),\r\n fullname: new FormControl(this.tenant?.fullname ?? '', [Validators.required]),\r\n gatewayId: new FormControl(this.tenant?.gatewayId ?? null),\r\n panoMapFilename: new FormControl(this.tenant?.panoMapFilename ?? null),\r\n logoFilename: new FormControl(this.tenant?.logoFilename ?? '', [Validators.required]),\r\n weatherTrendLink: new FormControl(this.tenant?.weatherTrendLink ?? null),\r\n lat: new FormControl(this.tenant?.positionGeoMap?.x ?? null),\r\n lon: new FormControl(this.tenant?.positionGeoMap?.y ?? null),\r\n maxUsers: new FormControl(this.tenant?.maxUsers ?? 10, [Validators.required]),\r\n timeZoneId: new FormControl(this.tenant?.timeZoneId ?? 'W. Europe Standard Time', [Validators.required]),\r\n });\r\n\r\n this.formGroup.valueChanges.pipe(debounceTime(100), takeUntil(this.onDestroy$)).subscribe((changes) => {\r\n this.editedTenant.sisId = changes.sisId;\r\n this.editedTenant.alias = changes.alias;\r\n this.editedTenant.fullname = changes.fullname;\r\n this.editedTenant.gatewayId = changes.gatewayId;\r\n this.editedTenant.panoMapFilename = changes.panoMapFilename;\r\n this.editedTenant.logoFilename = changes.logoFilename;\r\n this.editedTenant.weatherTrendLink = changes.weatherTrendLink;\r\n this.editedTenant.positionGeoMap.x = Number.parseFloat(changes.lat) ?? null;\r\n this.editedTenant.positionGeoMap.y = Number.parseFloat(changes.lon) ?? null;\r\n this.editedTenant.maxUsers = Number.parseInt(changes.maxUsers);\r\n this.editedTenant.timeZoneId = changes.timeZoneId;\r\n });\r\n\r\n this.eventBus\r\n .observe(TenantUpdatedEvent)\r\n .pipe(\r\n takeUntil(this.onDestroy$),\r\n withLatestFrom(this.userSettingsService.userSettings$),\r\n filter(([event, userSettings]) => event.changedBy === userSettings.userGuid)\r\n )\r\n .subscribe(([event]) => {\r\n this.isSaving = false;\r\n\r\n if (event.updateSuccessful) {\r\n this.closeModal();\r\n\r\n const translateKey = 'general.phrase.saved';\r\n const userMessage = new UserMessage({\r\n message: translateKey,\r\n icon: UserMessageIcon.success,\r\n durationMs: 2000,\r\n position: 'top',\r\n color: UserMessageColor.green,\r\n });\r\n this.userMessageService.presentToast(userMessage);\r\n } else {\r\n const translateKey = 'general.phrase.saveFailed';\r\n const userMessage = new UserMessage({\r\n message: translateKey,\r\n icon: UserMessageIcon.failed,\r\n durationMs: 2000,\r\n position: 'top',\r\n color: UserMessageColor.red,\r\n });\r\n this.userMessageService.presentToast(userMessage);\r\n }\r\n });\r\n }\r\n\r\n async save(): Promise {\r\n this.isSaving = true;\r\n\r\n try {\r\n await firstValueFrom(\r\n this.http.post(`${environment.baseUrlApi}${this.basePostUrl}`, {\r\n tenantGuid: this.tenant?.guid,\r\n sisId: this.editedTenant.sisId,\r\n alias: this.editedTenant.alias,\r\n fullname: this.editedTenant.fullname,\r\n gatewayId: this.editedTenant.gatewayId,\r\n panoMapFilename: this.editedTenant.panoMapFilename,\r\n logoFilename: this.editedTenant.logoFilename,\r\n weatherTrendLink: this.editedTenant.weatherTrendLink,\r\n positionGeoMap:\r\n this.editedTenant.positionGeoMap.x && this.editedTenant.positionGeoMap.y\r\n ? `[${this.editedTenant.positionGeoMap.x},${this.editedTenant.positionGeoMap.y}]`\r\n : null,\r\n maxUsers: this.editedTenant.maxUsers,\r\n timeZoneId: this.editedTenant.timeZoneId,\r\n })\r\n );\r\n } catch {\r\n const translateKey = 'general.phrase.saveFailed';\r\n const userMessage = new UserMessage({\r\n message: translateKey,\r\n icon: UserMessageIcon.failed,\r\n durationMs: 2000,\r\n position: 'top',\r\n color: UserMessageColor.red,\r\n });\r\n this.userMessageService.presentToast(userMessage);\r\n }\r\n }\r\n\r\n async copyToClipboard(text: string): Promise {\r\n await navigator.clipboard.writeText(text);\r\n const toast = await this.userMessageService.createSingleToast(\r\n new UserMessage({\r\n message: 'general.phrase.copiedToClipboard',\r\n icon: UserMessageIcon.info,\r\n durationMs: 2000,\r\n position: 'top',\r\n color: UserMessageColor.white,\r\n })\r\n );\r\n await toast.present();\r\n }\r\n\r\n closeModal() {\r\n this.modalCtrl.dismiss();\r\n this.menuCtrl.close('mainMenu');\r\n }\r\n}\r\n","\r\n \r\n \r\n \r\n \r\n {{ this.title | translate }}\r\n \r\n\r\n\r\n\r\n \r\n
\r\n \r\n SisId\r\n \r\n \r\n \r\n \r\n \r\n Alias\r\n \r\n \r\n \r\n \r\n \r\n Fullname\r\n \r\n \r\n \r\n \r\n \r\n GatewayId\r\n \r\n \r\n \r\n \r\n \r\n PanoMapFilename\r\n \r\n \r\n \r\n \r\n \r\n LogoFilename\r\n \r\n \r\n \r\n \r\n \r\n WeatherTrendLink\r\n \r\n \r\n \r\n \r\n \r\n PositionGeoMap\r\n \r\n \r\n \r\n \r\n \r\n \r\n MaxUsers\r\n \r\n \r\n \r\n \r\n \r\n TimeZoneId\r\n \r\n \r\n \r\n \r\n \r\n Guid\r\n \r\n \r\n {{ this.tenant.guid }}\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 { AlarmLibraryService } from 'src/app/maps/alarmlibrary/alarmlibrary.service';\r\nimport { AlarmLibraryItem } from 'src/app/maps/alarmlibrary/domain/alarmlibrary-item.model';\r\n\r\n@Component({\r\n selector: 'sis-alarmlibrary-item-icon',\r\n templateUrl: './alarmlibrary-item-icon.component.html',\r\n styleUrls: ['./alarmlibrary-item-icon.component.scss'],\r\n standalone: false\r\n})\r\nexport class AlarmLibraryItemIconComponent {\r\n @Input() alarm: AlarmLibraryItem;\r\n @Input() setting: string;\r\n @Input() icon: string;\r\n @Input() disabledIcon: string;\r\n\r\n constructor(private alarmLibraryService: AlarmLibraryService) {}\r\n\r\n showSpinner(): boolean {\r\n return this.alarm.getUpdating(this.setting);\r\n }\r\n\r\n getIcon(): string {\r\n return this.alarm.getSetting(this.setting) ? this.icon : this.disabledIcon;\r\n }\r\n\r\n toggleSetting() {\r\n this.alarm.setUpdating(this.setting, true);\r\n this.alarmLibraryService.updateSetting(\r\n this.alarm.sisId,\r\n this.alarm.code,\r\n this.setting,\r\n !this.alarm.getSetting(this.setting)\r\n );\r\n }\r\n}\r\n","\r\n\r\n","import { Component, Input, OnInit } from '@angular/core';\r\nimport { FormControl } from '@angular/forms';\r\nimport { ModalController } from '@ionic/angular';\r\nimport { combineLatest } from 'rxjs';\r\nimport { debounceTime, takeUntil } from 'rxjs/operators';\r\nimport { LogbookModalService } from 'src/app/core/components/logbook/logbook-modal/logbook-modal.service';\r\nimport { EventBusService } from 'src/app/core/eventbus/event-bus.service';\r\nimport { EventBusSubscriberBase } from 'src/app/core/eventbus/event-bus-subscriber-base';\r\nimport { AlarmLibraryOverrideUpdatedEvent, UserAlarmConfigUpdatedEvent } from 'src/app/core/eventbus/events';\r\nimport { ScreenSizeService } from 'src/app/core/utils/screen-size.service';\r\nimport { DestinationService } from 'src/app/domain/destination/destination.service';\r\nimport { Feature } from 'src/app/domain/feature/feature.model';\r\nimport { FeatureAccessLevel } from 'src/app/domain/feature/feature-access-level.model';\r\nimport { FeatureId } from 'src/app/domain/feature/feature-id.model';\r\nimport { AlarmLibraryService } from 'src/app/maps/alarmlibrary/alarmlibrary.service';\r\nimport { AlarmLibraryItem } from 'src/app/maps/alarmlibrary/domain/alarmlibrary-item.model';\r\nimport { AlarmLibraryOverride } from 'src/app/maps/alarmlibrary/domain/alarmlibraryoverride.model';\r\n\r\n@Component({\r\n selector: 'sis-alarmlibrary',\r\n templateUrl: './alarmlibrary.component.html',\r\n styleUrls: ['./alarmlibrary.component.scss'],\r\n standalone: false\r\n})\r\nexport class AlarmLibraryModal extends EventBusSubscriberBase implements OnInit {\r\n readonly logbookAvailable$ = this.logbookModalService.logbookAvailable$;\r\n\r\n @Input() sisId: string;\r\n @Input() alias: string;\r\n @Input() searchString: string;\r\n\r\n alarms: AlarmLibraryItem[];\r\n alarmsFiltered: AlarmLibraryItem[];\r\n searchControl = new FormControl('');\r\n notification = AlarmLibraryItem.notification;\r\n selectableLevels: string[];\r\n selectableLevelsWithoutFault: string[];\r\n levelSwitchAllowed: boolean;\r\n bigScreenMode: boolean;\r\n\r\n constructor(\r\n eventBus: EventBusService,\r\n private modalCtrl: ModalController,\r\n private alarmLibraryService: AlarmLibraryService,\r\n private screenSizeService: ScreenSizeService,\r\n private logbookModalService: LogbookModalService,\r\n private destinationService: DestinationService\r\n ) {\r\n super(eventBus);\r\n\r\n this.selectableLevels = [\r\n AlarmLibraryService.LevelFault,\r\n AlarmLibraryService.LevelAlarm,\r\n AlarmLibraryService.LevelWarning,\r\n AlarmLibraryService.LevelInfo,\r\n ];\r\n this.selectableLevelsWithoutFault = [\r\n AlarmLibraryService.LevelAlarm,\r\n AlarmLibraryService.LevelWarning,\r\n AlarmLibraryService.LevelInfo,\r\n ];\r\n }\r\n\r\n ngOnInit() {\r\n this.observe(UserAlarmConfigUpdatedEvent, (event) => {\r\n this.updateListElement(event);\r\n });\r\n\r\n this.screenSizeService.bigScreenMode$\r\n .pipe(takeUntil(this.onDestroy$))\r\n .subscribe((bigScreenMode) => (this.bigScreenMode = bigScreenMode));\r\n\r\n this.searchControl.valueChanges.pipe(debounceTime(300), takeUntil(this.onDestroy$)).subscribe((search: string) => {\r\n this.filterAlarmLibraryList(search);\r\n });\r\n\r\n combineLatest([\r\n this.alarmLibraryService.getAlarmLibrary(this.sisId),\r\n this.destinationService.selectedTenant$,\r\n ]).subscribe(([alarms, tenant]) => {\r\n this.loadAlarms(alarms);\r\n\r\n this.observe(AlarmLibraryOverrideUpdatedEvent, (event) => {\r\n if (event.tenantGuid !== tenant.guid) {\r\n return;\r\n }\r\n const updatedEntry = event.alarmLibraryEntry;\r\n if (updatedEntry) {\r\n const item = this.alarms.find((a) => a.sisId === updatedEntry.sisId && a.code === updatedEntry.code);\r\n\r\n if (item) {\r\n if (updatedEntry.level) {\r\n item.level = updatedEntry.level;\r\n\r\n item.setUpdating(AlarmLibraryItem.level, false);\r\n }\r\n if (updatedEntry.info) {\r\n item.info = updatedEntry.info;\r\n }\r\n if (updatedEntry.message) {\r\n item.message = updatedEntry.message;\r\n }\r\n }\r\n }\r\n });\r\n\r\n this.searchControl.setValue(this.searchString);\r\n });\r\n\r\n this.destinationService.selectedTenantFeatures$.pipe(takeUntil(this.onDestroy$)).subscribe((features) => {\r\n this.levelSwitchAllowed = features.some((feature) =>\r\n feature.hasMinimumRequirementFor(new Feature(FeatureId.COCKPIT, FeatureAccessLevel.WRITE))\r\n );\r\n });\r\n }\r\n\r\n closeModal(): void {\r\n this.modalCtrl.dismiss();\r\n }\r\n\r\n getLevels(alarmLibraryEntry: AlarmLibraryItem) {\r\n if (alarmLibraryEntry.defaultLevel !== AlarmLibraryService.LevelFault) {\r\n return this.selectableLevelsWithoutFault;\r\n }\r\n\r\n return this.selectableLevels;\r\n }\r\n\r\n getLevelTranslateString(level: string): string {\r\n return `alarming.term.${level}`;\r\n }\r\n\r\n isLevelUpdating(alarmLibraryEntry: AlarmLibraryItem): boolean {\r\n return alarmLibraryEntry.getUpdating(AlarmLibraryItem.level);\r\n }\r\n\r\n isSwitchableLevel(alarmLibraryEntry: AlarmLibraryItem): boolean {\r\n return this.levelSwitchAllowed && this.selectableLevels.includes(alarmLibraryEntry.level);\r\n }\r\n\r\n override(event: any, alarmLibraryEntry: AlarmLibraryItem): void {\r\n const level = event.detail.value;\r\n\r\n if (alarmLibraryEntry.level !== level && level != null) {\r\n const overrideSettings: AlarmLibraryOverride = {\r\n sisId: alarmLibraryEntry.sisId,\r\n code: alarmLibraryEntry.code,\r\n level,\r\n };\r\n\r\n alarmLibraryEntry.setUpdating(AlarmLibraryItem.level, true);\r\n this.alarmLibraryService.updateAlarmLibraryOverride(overrideSettings);\r\n }\r\n }\r\n\r\n private loadAlarms(alarms: AlarmLibraryItem[]): void {\r\n this.alarms = alarms.sort((a, b) => {\r\n if (a.code < b.code) {\r\n return -1;\r\n }\r\n if (a.code > b.code) {\r\n return 1;\r\n }\r\n return 0;\r\n });\r\n\r\n this.alarmsFiltered = this.alarms;\r\n }\r\n\r\n private filterAlarmLibraryList(searchTerm: string): void {\r\n if (searchTerm == null) {\r\n return;\r\n }\r\n\r\n searchTerm = searchTerm.trim();\r\n this.alarmsFiltered = this.alarms.filter(\r\n (a) =>\r\n a.sisId.toLowerCase().indexOf(searchTerm.toLowerCase()) > -1 ||\r\n a.code.toLowerCase().indexOf(searchTerm.toLowerCase()) > -1 ||\r\n (a.message && a.message.toLowerCase().indexOf(searchTerm.toLowerCase()) > -1)\r\n // a.info.toLowerCase().indexOf(searchTerm.toLowerCase()) > -1 ||\r\n // a.level.toLowerCase().indexOf(searchTerm.toLowerCase()) > -1\r\n );\r\n }\r\n\r\n async openLogbook(): Promise {\r\n await this.logbookModalService.presentLogbookModal([[FeatureId.COCKPIT]]);\r\n }\r\n\r\n private updateListElement(event: UserAlarmConfigUpdatedEvent): void {\r\n if (!this.alarmsFiltered) {\r\n return;\r\n }\r\n\r\n const data = event.userAlarmConfig;\r\n if (data) {\r\n const listEntry = this.alarmsFiltered.find(\r\n (a) => a.sisId.toLowerCase() === data.sisId && a.code.toLowerCase() === data.alarmCode\r\n );\r\n if (listEntry) {\r\n listEntry.setSetting(data.setting, data.enabled);\r\n listEntry.setUpdating(data.setting, false);\r\n }\r\n }\r\n }\r\n}\r\n","\r\n \r\n \r\n \r\n \r\n {{ alias }}\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 {{ 'alarming.term.alarmCode' | translate }}\r\n {{ 'alarming.term.description' | translate }}\r\n {{ 'alarming.term.level' | translate }}\r\n \r\n \r\n \r\n\r\n \r\n \r\n \r\n {{ item.code }}\r\n {{ item.message }}\r\n\r\n \r\n \r\n \r\n \r\n \r\n {{\r\n this.getLevelTranslateString(level) | translate\r\n }}\r\n \r\n {{ this.getLevelTranslateString(item.level) | translate }}\r\n \r\n \r\n \r\n \r\n
{{ item.message }}
\r\n \r\n
\r\n
\r\n
\r\n","import { HttpClient } from '@angular/common/http';\r\nimport { Injectable } from '@angular/core';\r\nimport { forkJoin, Observable, of } from 'rxjs';\r\nimport { catchError, map, switchMap, take } from 'rxjs/operators';\r\nimport { UserSettingsService } from 'src/app/domain/user-settings/user-settings.service';\r\nimport { AlarmLibraryItemAdapter } from 'src/app/maps/alarmlibrary/domain/alarmlibrary-item.adapter';\r\nimport { AlarmLibraryItem } from 'src/app/maps/alarmlibrary/domain/alarmlibrary-item.model';\r\nimport { AlarmLibraryOverride } from 'src/app/maps/alarmlibrary/domain/alarmlibraryoverride.model';\r\nimport { UserAlarmConfigAdapter } from 'src/app/maps/alarmlibrary/domain/useralarmconfig.adapter';\r\nimport { UserAlarmConfig } from 'src/app/maps/alarmlibrary/domain/useralarmconfig.model';\r\nimport { environment } from 'src/environments/environment';\r\n\r\n@Injectable({\r\n providedIn: 'root',\r\n})\r\nexport class AlarmLibraryService {\r\n static readonly LevelFault = 'fault';\r\n static readonly LevelWarning = 'warning';\r\n static readonly LevelAlarm = 'alarm';\r\n static readonly LevelInfo = 'info';\r\n static readonly LevelCheck = 'check';\r\n static readonly LevelBypass = 'bypass';\r\n\r\n constructor(private http: HttpClient, private userSettingService: UserSettingsService) {}\r\n\r\n getAlarmLibrary(sisId: string): Observable {\r\n return forkJoin([\r\n this.requestAlarmLibraryData(sisId, environment.baseUrlApi),\r\n this.requestUserAlarmConfigData(sisId, environment.baseUrlApi),\r\n ]).pipe(\r\n take(1),\r\n map(([alarmLibraryData, userAlarmConfigData]) => {\r\n alarmLibraryData.forEach((alarmLibraryEntry) => {\r\n const userAlarmConfigs = userAlarmConfigData.filter(\r\n (config) => config.alarmCode === alarmLibraryEntry.code.toLowerCase()\r\n );\r\n if (userAlarmConfigs) {\r\n userAlarmConfigs.forEach((userAlarmConfig) => {\r\n alarmLibraryEntry.setSetting(userAlarmConfig.setting, userAlarmConfig.enabled);\r\n });\r\n }\r\n });\r\n return alarmLibraryData;\r\n })\r\n );\r\n }\r\n\r\n updateSetting(sisId: string, alarmCode: string, setting: string, enabled: boolean): void {\r\n const url = `${environment.baseUrlApi}/user/alarmconfig`;\r\n this.userSettingService.userSettings$\r\n .pipe(\r\n take(1),\r\n switchMap((userSettings) =>\r\n this.http\r\n .post(url, { sisId, alarmCode, setting, enabled, userGuid: userSettings.userGuid })\r\n .pipe(catchError(() => of()))\r\n )\r\n )\r\n .subscribe();\r\n }\r\n\r\n updateAlarmLibraryOverride(overrideSettings: AlarmLibraryOverride): void {\r\n const url = `${environment.baseUrlApi}/alarmlibrary/override`;\r\n this.userSettingService.userSettings$\r\n .pipe(\r\n take(1),\r\n switchMap((userSettings) => {\r\n overrideSettings.userGuid = userSettings.userGuid;\r\n return this.http.post(url, overrideSettings).pipe(catchError(() => of()));\r\n })\r\n )\r\n .subscribe();\r\n }\r\n\r\n private requestAlarmLibraryData(deviceSisId: string, baseUrlApi: string): Observable {\r\n const url = `${baseUrlApi}/alarmlibrary/${deviceSisId}`;\r\n return this.http.get(url).pipe(map((data: any) => AlarmLibraryItemAdapter.adapt(data)));\r\n }\r\n\r\n private requestUserAlarmConfigData(deviceSisId: string, baseUrlApi: string): Observable {\r\n const url = `${baseUrlApi}/user/alarmconfig/${deviceSisId}`;\r\n return this.http.get(url).pipe(map((data) => UserAlarmConfigAdapter.adapt(data)));\r\n }\r\n}\r\n","import { AlarmLibraryItem } from 'src/app/maps/alarmlibrary/domain/alarmlibrary-item.model';\r\n\r\nexport class AlarmLibraryItemAdapter {\r\n static adapt(item: any): AlarmLibraryItem[] {\r\n const alarms: AlarmLibraryItem[] = [];\r\n\r\n if (item) {\r\n item.forEach((a: any) => {\r\n alarms.push(\r\n new AlarmLibraryItem({\r\n sisId: a.sisId.toUpperCase(),\r\n code: a.code,\r\n message: a.message,\r\n level: a.level,\r\n defaultLevel: a.defaultLevel,\r\n info: a.info,\r\n })\r\n );\r\n });\r\n }\r\n return alarms;\r\n }\r\n}\r\n","import { WritablePart } from 'src/app/core/utils/type-helper';\r\n\r\nexport class AlarmLibraryItem {\r\n static readonly notification = 'notification';\r\n static readonly level = 'level';\r\n static readonly allowedSettings: string[] = [AlarmLibraryItem.notification, AlarmLibraryItem.level];\r\n\r\n private readonly settings = new Map();\r\n private readonly updating = new Map();\r\n\r\n sisId: string;\r\n code: string;\r\n message: string;\r\n level: string;\r\n defaultLevel: string;\r\n info: string;\r\n\r\n constructor(init?: Partial>) {\r\n Object.assign(this, init);\r\n\r\n AlarmLibraryItem.allowedSettings.forEach((s) => {\r\n this.settings.set(s, false);\r\n this.updating.set(s, false);\r\n });\r\n }\r\n\r\n getSetting(setting: string): boolean {\r\n return this.settings.get(setting);\r\n }\r\n\r\n setSetting(setting: string, value: boolean): void {\r\n this.settings.set(setting, value);\r\n }\r\n\r\n getUpdating(setting: string): boolean {\r\n return this.updating.get(setting);\r\n }\r\n\r\n setUpdating(setting: string, value: boolean): void {\r\n this.updating.set(setting, value);\r\n }\r\n}\r\n","import { UserAlarmConfig } from 'src/app/maps/alarmlibrary/domain/useralarmconfig.model';\r\n\r\nexport class UserAlarmConfigAdapter {\r\n static adapt(item: any): UserAlarmConfig[] {\r\n const userAlarmConfigs: UserAlarmConfig[] = [];\r\n\r\n if (item) {\r\n item.forEach((e: any) => {\r\n userAlarmConfigs.push({\r\n userGuid: e.userGuid,\r\n sisId: e.sisId,\r\n alarmCode: e.alarmCode,\r\n setting: e.setting,\r\n enabled: e.enabled,\r\n });\r\n });\r\n }\r\n\r\n return userAlarmConfigs;\r\n }\r\n}\r\n","import { Component, ElementRef, OnInit, Renderer2, ViewChild } from '@angular/core';\r\nimport { Platform } from '@ionic/angular';\r\nimport { combineLatest } from 'rxjs';\r\nimport { distinctUntilChanged, startWith, takeUntil } from 'rxjs/operators';\r\nimport { DrawerState } from 'src/app/bottom-drawer/drawer-state';\r\nimport { EventBusService } from 'src/app/core/eventbus/event-bus.service';\r\nimport { MapIconClickedEvent, WidgetSelectedEvent } from 'src/app/core/eventbus/events';\r\nimport { IconHelper } from 'src/app/core/icon-helper/icon-helper';\r\nimport { NavigatorService } from 'src/app/core/navigator/navigator.service';\r\nimport { Unsubscriber } from 'src/app/core/unsubscriber';\r\nimport { ScreenSizeService } from 'src/app/core/utils/screen-size.service';\r\nimport { DestinationService } from 'src/app/domain/destination/destination.service';\r\nimport { MeteoStation } from 'src/app/maps/domain/meteostation.model';\r\nimport { Ropeway } from 'src/app/maps/domain/ropeway.model';\r\nimport { UserMessage } from 'src/app/user-message/user-message.model';\r\nimport { UserMessageService } from 'src/app/user-message/user-message.service';\r\nimport { UserMessageColor } from 'src/app/user-message/user-message-color';\r\nimport { UserMessageIcon } from 'src/app/user-message/user-message-icon';\r\n\r\n@Component({\r\n selector: 'sis-details-drawer',\r\n templateUrl: './details-drawer.component.html',\r\n styleUrls: ['./details-drawer.component.scss'],\r\n standalone: false\r\n})\r\nexport class DetailsDrawerComponent extends Unsubscriber implements OnInit {\r\n private readonly arrowUp = 'chevron-up-outline';\r\n private readonly arrowDown = 'chevron-down-outline';\r\n private readonly drawerBorderWidth = 2;\r\n private readonly drawerColumns = 4;\r\n private readonly widgetAspectRatio = 0.8;\r\n\r\n arrowIconName = this.arrowUp;\r\n ropeway: Ropeway;\r\n scrollable: boolean;\r\n disableDrag: boolean;\r\n drawerMinimumHeight = 0;\r\n drawerDistanceTop = 80;\r\n drawerDockedHeight =\r\n (this.platform.width() - (this.drawerColumns + 1) * this.drawerBorderWidth) /\r\n this.drawerColumns /\r\n this.widgetAspectRatio +\r\n (this.navigator.isIphone() ? 99 : 109);\r\n\r\n showControllerContextMenu: boolean;\r\n controllerContextMenuX: number;\r\n controllerContextMenuY: number;\r\n\r\n label: string;\r\n iconName: string;\r\n drawerState = DrawerState.Bottom;\r\n\r\n private empiricalDrawerContentHeightFitReducer = this.navigator.isIphone() ? 56 : 66;\r\n private destinationName: string;\r\n private meteoStation: MeteoStation;\r\n\r\n @ViewChild('drawerContent', { static: false }) drawerContent: ElementRef;\r\n\r\n constructor(\r\n private eventBus: EventBusService,\r\n private renderer: Renderer2,\r\n private platform: Platform,\r\n private userMessageService: UserMessageService,\r\n private screenSizeService: ScreenSizeService,\r\n private navigator: NavigatorService,\r\n private destinationService: DestinationService\r\n ) {\r\n super();\r\n }\r\n\r\n ngOnInit(): void {\r\n combineLatest([\r\n this.eventBus.observe(MapIconClickedEvent).pipe(\r\n distinctUntilChanged(\r\n (prev, curr) =>\r\n prev.ropeway === curr.ropeway &&\r\n prev.meteoStation === curr.meteoStation &&\r\n prev.customMarker === curr.customMarker &&\r\n !(!curr.ropeway && !curr.meteoStation && !curr.customMarker)\r\n ),\r\n startWith(new MapIconClickedEvent())\r\n ),\r\n this.screenSizeService.landscapeMode$,\r\n ])\r\n .pipe(takeUntil(this.onDestroy$))\r\n .subscribe(([event, landscapeMode]) => this.onMapClicked(event, landscapeMode));\r\n\r\n combineLatest([this.eventBus.observe(WidgetSelectedEvent), this.screenSizeService.landscapeMode$])\r\n .pipe(takeUntil(this.onDestroy$))\r\n .subscribe(([event, landscapeMode]) => this.onWidgetSelected(event, landscapeMode));\r\n\r\n this.destinationService.selectedTenant$.pipe(takeUntil(this.onDestroy$)).subscribe((tenant) => {\r\n {\r\n this.destinationName = tenant.fullname;\r\n this.setLabel();\r\n }\r\n });\r\n\r\n this.screenSizeService.landscapeMode$.pipe(takeUntil(this.onDestroy$)).subscribe((landscapeMode) => {\r\n if (landscapeMode) {\r\n this.closeDrawer();\r\n }\r\n });\r\n }\r\n\r\n onDrawerStateChange(drawerState: DrawerState): void {\r\n switch (drawerState) {\r\n case DrawerState.Top:\r\n this.openDrawer();\r\n break;\r\n case DrawerState.Docked:\r\n this.dockDrawer(true);\r\n break;\r\n case DrawerState.Bottom:\r\n this.closeDrawer();\r\n break;\r\n }\r\n }\r\n\r\n showControllerSelector(div: any): void {\r\n this.showControllerContextMenu = this.ropeway && this.ropeway.hasRedundantControllers;\r\n this.controllerContextMenuX = div.offsetLeft + 65;\r\n this.controllerContextMenuY = div.offsetTop + 20;\r\n }\r\n\r\n hideControllerContextMenu(): void {\r\n this.showControllerContextMenu = false;\r\n }\r\n\r\n touchStart() {\r\n this.disableDrag = this.scrollable;\r\n }\r\n\r\n touchEnd() {\r\n this.disableDrag = false;\r\n }\r\n\r\n titleClicked(): void {\r\n if (this.drawerState === DrawerState.Docked) {\r\n this.openDrawer();\r\n return;\r\n }\r\n this.dockDrawer(true);\r\n }\r\n\r\n private setIconName(ropeway: Ropeway, meteoStation: MeteoStation): void {\r\n if (ropeway) {\r\n this.iconName = IconHelper.getRopewayIconName(this.ropeway);\r\n } else {\r\n if (meteoStation) {\r\n this.iconName = IconHelper.meteoStationIconName;\r\n } else {\r\n this.iconName = undefined;\r\n }\r\n }\r\n }\r\n\r\n private setMaxHeight(): void {\r\n if (!this.drawerContent) {\r\n return;\r\n }\r\n if (this.drawerState === DrawerState.Top) {\r\n this.renderer.setStyle(\r\n this.drawerContent.nativeElement,\r\n 'max-height',\r\n this.platform.height() - this.drawerDistanceTop - this.empiricalDrawerContentHeightFitReducer + 'px'\r\n );\r\n }\r\n if (this.drawerState === DrawerState.Docked) {\r\n this.renderer.setStyle(this.drawerContent.nativeElement, 'max-height', this.drawerDockedHeight + 'px');\r\n }\r\n }\r\n\r\n private setArrowIcon(): void {\r\n this.arrowIconName = this.drawerState === DrawerState.Top ? this.arrowDown : this.arrowUp;\r\n }\r\n\r\n private onWidgetSelected(event: WidgetSelectedEvent, landscapeMode: boolean): void {\r\n if (!landscapeMode) {\r\n if (event.expandable) {\r\n this.openDrawer();\r\n } else {\r\n if (!event.codeTriggered) {\r\n this.dockDrawer(false);\r\n }\r\n }\r\n } else {\r\n this.presentToast();\r\n }\r\n }\r\n\r\n private onMapClicked(event: MapIconClickedEvent, landscapeMode: boolean): void {\r\n this.ropeway = event.ropeway;\r\n this.meteoStation = event.meteoStation;\r\n this.setIconName(this.ropeway, this.meteoStation);\r\n this.setLabel();\r\n if (!landscapeMode) {\r\n if (event.meteoStation || event.customMarker) {\r\n this.openDrawer();\r\n } else {\r\n if (!event.codeTriggered) {\r\n this.dockDrawer(false);\r\n }\r\n }\r\n } else if (event.ropeway !== undefined) {\r\n this.presentToast();\r\n }\r\n }\r\n\r\n private setLabel(): void {\r\n this.label = this.ropeway ? this.ropeway.alias : this.meteoStation ? this.meteoStation.alias : this.destinationName;\r\n }\r\n\r\n private closeDrawer() {\r\n this.drawerState = DrawerState.Bottom;\r\n this.setArrowIcon();\r\n this.scrollable = false;\r\n const event = new MapIconClickedEvent();\r\n event.codeTriggered = true;\r\n this.eventBus.publish(event);\r\n }\r\n\r\n private dockDrawer(sendEvent: boolean) {\r\n this.drawerState = DrawerState.Docked;\r\n this.setMaxHeight();\r\n this.setArrowIcon();\r\n this.scrollable = false;\r\n if (sendEvent) {\r\n const event = new WidgetSelectedEvent();\r\n event.codeTriggered = true;\r\n this.eventBus.publish(event);\r\n }\r\n }\r\n\r\n private openDrawer() {\r\n this.drawerState = DrawerState.Top;\r\n this.setMaxHeight();\r\n this.setArrowIcon();\r\n this.scrollable = true;\r\n }\r\n\r\n private presentToast() {\r\n this.userMessageService.presentToast(\r\n new UserMessage({\r\n message: 'map.message.BottomDrawerNotAvailable',\r\n icon: UserMessageIcon.info,\r\n durationMs: 2000,\r\n position: 'bottom',\r\n color: UserMessageColor.blue,\r\n })\r\n );\r\n }\r\n}\r\n","\r\n
\r\n \r\n \r\n {{ this.label }}\r\n
\r\n {{ this.ropeway.fullname }} ({{ this.ropeway.sisId | uppercase }})\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 { WritablePart } from 'src/app/core/utils/type-helper';\r\n\r\nexport class Configuration {\r\n static readonly driveTorqueNmKey = 'driveTorqueNm';\r\n static readonly driveMotorCurrentAmpereKey = 'driveMotorCurrentAmpere';\r\n static readonly actualSpeedMps = 'actualSpeedMps';\r\n static readonly icingIntensity = 'icingIntensity';\r\n\r\n id: number;\r\n configKey: string;\r\n nominalValue: number;\r\n warnRangeLow: number;\r\n warnRangeHigh: number;\r\n alarmRangeLow: number;\r\n alarmRangeHigh: number;\r\n negativeValues: boolean;\r\n\r\n constructor(init?: Partial>) {\r\n Object.assign(this, init);\r\n }\r\n}\r\n","export enum CustomMarkerType {\r\n Camera = 1,\r\n}\r\n","import { AbbSmartSensor } from 'src/app/maps/domain/abbsmartsensor.model';\r\nimport { Configuration } from 'src/app/maps/domain/configuration.model';\r\nimport { Coords } from 'src/app/maps/domain/coords.model';\r\nimport { CustomMarker } from 'src/app/maps/domain/custom-marker.model';\r\nimport { GinConfiguration } from 'src/app/maps/domain/gin-configuration.model';\r\nimport { MasterData } from 'src/app/maps/domain/masterdata.model';\r\nimport { MeteoStation } from 'src/app/maps/domain/meteostation.model';\r\nimport { RemoteAccess } from 'src/app/maps/domain/remote-access.model';\r\nimport { Ropeway } from 'src/app/maps/domain/ropeway.model';\r\nimport { TruScan } from 'src/app/maps/domain/truscan.model';\r\nimport { Webcam } from 'src/app/maps/domain/webcam.model';\r\n\r\nexport class MasterdataAdapter {\r\n private static controllerTypeWithoutAvailability = ['connect', 'leitcontrol', 'alptronic'];\r\n private static pendelbahnRegexp = new RegExp(/\\d{3}[ps]/);\r\n\r\n static isAvailabilityAvailable(sisId: string, controllerType: string): boolean {\r\n return (\r\n !MasterdataAdapter.isPendelbahn(sisId) &&\r\n !MasterdataAdapter.controllerTypeWithoutAvailability.some((c) => c === controllerType?.toLowerCase())\r\n );\r\n }\r\n\r\n static isPendelbahn(sisId: string): boolean {\r\n return MasterdataAdapter.pendelbahnRegexp.test(sisId);\r\n }\r\n\r\n static adapt(item: any): MasterData {\r\n if (!item) {\r\n return { sisId: '', gatewayId: '' };\r\n }\r\n\r\n // create list of ropeways\r\n const ropeways: Ropeway[] = this.createRopewayList(item);\r\n\r\n // create list of meteostations\r\n const meteoStations: MeteoStation[] = this.createMeteoStationList(item, ropeways);\r\n\r\n const remoteAccesses: RemoteAccess[] = this.getRemoteAccesses(item);\r\n const abbSmartSensors: AbbSmartSensor[] = this.getAbbSmartSensors(item);\r\n\r\n this.setMeteoStations(ropeways, meteoStations);\r\n\r\n const offsetSpaToApiMilliseconds = Date.now() - new Date(item.timestamp).getTime();\r\n\r\n const customMarkers = this.createCustomMarkerList(item);\r\n\r\n const ginConfigurations = this.createGinConfigurationList(item);\r\n\r\n return {\r\n guid: item.guid,\r\n sisId: item.sisId,\r\n alias: item.alias,\r\n fullname: item.fullname,\r\n gatewayId: item.gatewayId,\r\n panoMapFilename: item.panoMapFilename,\r\n logoFilename: item.logoFilename,\r\n weatherTrendLink: item.weatherTrendLink,\r\n mySqlRouter: item.mySqlRouter,\r\n ropeways,\r\n meteoStations,\r\n remoteAccesses,\r\n offsetSpaToApiMilliseconds,\r\n firstEntriesGroups: item.firstEntriesGroups,\r\n abbSmartSensors,\r\n customMarkers,\r\n ginConfigurations,\r\n };\r\n }\r\n\r\n private static createRopewayList(item: any): Ropeway[] {\r\n const ropeways: Ropeway[] = [];\r\n\r\n if (item && item.ropeways != null) {\r\n item.ropeways.forEach((r: any) => {\r\n // create list of configurations\r\n const configurations = this.getConfigurations(r);\r\n const webcams = this.getWebcams(r);\r\n const remoteAccesses = this.getRemoteAccesses(r);\r\n const abbSmartSensors = this.getAbbSmartSensors(r);\r\n const truScanInstallations = this.getTruScan(r);\r\n const hasRedundantControllers = r.sisId && r.sisId.includes('.');\r\n\r\n ropeways.push({\r\n guid: r.guid,\r\n sisId: r.sisId,\r\n alias: r.alias,\r\n fullname: r.fullname,\r\n ropewayType: r.ropewayType,\r\n pathPanoMap: r.pathPanoMap,\r\n controllerType: r.controllerType,\r\n constructedBy: r.constructedBy,\r\n maxTransportQuantityPerHour: r.maxTransportQuantityPerHour,\r\n operatingTimeFrom: r.operatingTimeFrom,\r\n operatingTimeUntil: r.operatingTimeUntil,\r\n availability: r.availability,\r\n availabilityIsAvailable: MasterdataAdapter.isAvailabilityAvailable(r.sisId, r.controllerType),\r\n isPendelbahn: MasterdataAdapter.isPendelbahn(r.sisId),\r\n configurations,\r\n webcams,\r\n remoteAccesses,\r\n abbSmartSensors,\r\n hasRedundantControllers,\r\n truScanInstallations: truScanInstallations,\r\n isRopewayOwner: r.tenantGuid === item.guid,\r\n });\r\n });\r\n }\r\n return ropeways;\r\n }\r\n\r\n private static getRemoteAccesses(item: any): RemoteAccess[] {\r\n const remoteAccesses: RemoteAccess[] = [];\r\n if (item && item.remoteAccesses != null) {\r\n item.remoteAccesses.forEach((r: any) => {\r\n remoteAccesses.push({\r\n guid: r.guid,\r\n name: r.name,\r\n type: r.type,\r\n accessType: r.accessType,\r\n agentId: r.agentId,\r\n windowDimensions: r.windowDimensions,\r\n parentAlias: item.ropeways ? item.alias : item.sisId.toUpperCase(),\r\n administratorsOnly: r.administratorsOnly,\r\n });\r\n });\r\n }\r\n\r\n return remoteAccesses;\r\n }\r\n\r\n private static getAbbSmartSensors(item: any): AbbSmartSensor[] {\r\n const abbSmartSensors: AbbSmartSensor[] = [];\r\n if (item && item.abbSmartSensors != null) {\r\n item.abbSmartSensors.forEach((abbSmartSensor: any) => {\r\n abbSmartSensors.push({\r\n assetName: abbSmartSensor.assetName,\r\n assetId: abbSmartSensor.assetId,\r\n assetType: abbSmartSensor.assetType,\r\n });\r\n });\r\n }\r\n\r\n return abbSmartSensors;\r\n }\r\n\r\n private static getTruScan(item: any): TruScan[] {\r\n const truScan: TruScan[] = [];\r\n if (item && item.truScanInstallations != null) {\r\n item.truScanInstallations.forEach((truScanInstallation: any) => {\r\n truScan.push({\r\n ropewayGuid: truScanInstallation.ropewayGuid,\r\n installationId: truScanInstallation.installationId,\r\n });\r\n });\r\n }\r\n\r\n return truScan;\r\n }\r\n\r\n private static createMeteoStationList(item: any, ropeways: Ropeway[]): MeteoStation[] {\r\n const meteostations: MeteoStation[] = [];\r\n if (item && item.meteoStations != null) {\r\n item.meteoStations.forEach((m: any) => {\r\n // parse positionPanoMap string to Coords object (e.g. \"{\"x\":300,\"y\":200}\")\r\n const coords = JSON.parse(m.positionPanoMap) as Coords;\r\n\r\n // create list of configurations\r\n const configurations = this.getConfigurations(m);\r\n\r\n const webcams = this.getWebcams(m);\r\n\r\n const ropeway = ropeways.find((r) => r.guid === m.ropewayGuid);\r\n const ropewaySisId = (ropeway && ropeway.sisId) || undefined;\r\n\r\n meteostations.push(\r\n new MeteoStation({\r\n guid: m.guid,\r\n ropewaySisId,\r\n tenantSisId: item.sisId,\r\n alias: m.alias,\r\n directionOffsetPanoMap: m.directionOffsetPanoMap,\r\n directionOffsetNorth: m.directionOffsetNorth,\r\n positionPanoMap: coords,\r\n meteoStationIndex: m.meteoStationIndex,\r\n configuration: configurations,\r\n ropeway,\r\n webcams,\r\n windDirection: m.windDirectionType,\r\n hasForecast: m.hasForecast,\r\n snowmakingWidgetOrder: m.snowmakingWidgetOrder,\r\n dataProvider: m.dataProvider,\r\n forecastTestActive: m.forecastTestActive,\r\n panoMapIconZoomFactor: m.panoMapIconZoomFactor,\r\n })\r\n );\r\n });\r\n }\r\n return meteostations;\r\n }\r\n\r\n private static createCustomMarkerList(item: any): CustomMarker[] {\r\n const customMarkers: CustomMarker[] = [];\r\n\r\n item.customMarkers?.forEach((element: any) =>\r\n customMarkers.push({\r\n guid: element.guid,\r\n sisId: element.sisId,\r\n alias: element.alias,\r\n fullname: element.fullname,\r\n iconName: element.iconName,\r\n webcams: this.getWebcams(element),\r\n positionPanoMap: JSON.parse(element.positionPanoMap) as Coords,\r\n type: element.type,\r\n })\r\n );\r\n\r\n return customMarkers;\r\n }\r\n\r\n private static setMeteoStations(ropeways: Ropeway[], meteoStations: MeteoStation[]): void {\r\n ropeways.forEach((ropeway) => {\r\n ropeway.meteoStations = meteoStations.filter((m) => m.ropewaySisId === ropeway.sisId);\r\n });\r\n }\r\n\r\n private static getConfigurations(e: any): Configuration[] {\r\n const configurations: Configuration[] = [];\r\n if (e && e.configuration != null) {\r\n e.configuration.forEach((c: any) => {\r\n configurations.push(\r\n new Configuration({\r\n id: c.id,\r\n configKey: c.configKey,\r\n nominalValue: Number(c.nominalValue),\r\n warnRangeLow: c.warnRangeLow,\r\n warnRangeHigh: c.warnRangeHigh,\r\n alarmRangeLow: c.alarmRangeLow,\r\n alarmRangeHigh: c.alarmRangeHigh,\r\n negativeValues: c.negativeValues,\r\n })\r\n );\r\n });\r\n }\r\n return configurations;\r\n }\r\n\r\n private static getWebcams(e: any): Webcam[] {\r\n const webcams: Webcam[] = [];\r\n if (e && e.webcams != null) {\r\n e.webcams.forEach((webcam: any) => {\r\n webcams.push(new Webcam(webcam.id, webcam.url, webcam.title, webcam.displayOrder));\r\n });\r\n }\r\n return webcams.sort((a, b) => a.displayOrder - b.displayOrder);\r\n }\r\n\r\n private static createGinConfigurationList(e: any): GinConfiguration[] {\r\n const configurations: GinConfiguration[] = [];\r\n if (e && e.ginConfigurations != null) {\r\n e.ginConfigurations.forEach((c: any) => {\r\n configurations.push({\r\n id: c.id,\r\n warnRangeHigh: c.warnRangeHigh,\r\n alarmRangeHigh: c.alarmRangeHigh,\r\n externalLink: c.externalLink,\r\n detailViewOrder: c.detailViewOrder,\r\n });\r\n });\r\n }\r\n return configurations;\r\n }\r\n}\r\n","import { HttpClient } from '@angular/common/http';\r\nimport { Injectable } from '@angular/core';\r\nimport { merge, Observable, of } from 'rxjs';\r\nimport { distinctUntilChanged, filter, map, shareReplay, switchMap, withLatestFrom } from 'rxjs/operators';\r\nimport { EventBusService } from 'src/app/core/eventbus/event-bus.service';\r\nimport { RopewaySettingsUpdatedEvent, TenantUpdatedEvent } from 'src/app/core/eventbus/events';\r\nimport { DestinationService } from 'src/app/domain/destination/destination.service';\r\nimport { Feature } from 'src/app/domain/feature/feature.model';\r\nimport { FeatureAccessLevel } from 'src/app/domain/feature/feature-access-level.model';\r\nimport { FeatureId } from 'src/app/domain/feature/feature-id.model';\r\nimport { MasterdataAdapter } from 'src/app/maps/domain/masterdata.adapter';\r\nimport { MasterData } from 'src/app/maps/domain/masterdata.model';\r\nimport { environment } from 'src/environments/environment';\r\n\r\n@Injectable({\r\n providedIn: 'root',\r\n})\r\nexport class MasterdataService {\r\n static readonly urlPath = '/masterdata';\r\n\r\n private readonly requiredFeature = new Feature(FeatureId.COCKPIT, FeatureAccessLevel.READ);\r\n\r\n private readonly emptyMasterData: MasterData = {\r\n sisId: '',\r\n gatewayId: '',\r\n firstEntriesGroups: [],\r\n meteoStations: [],\r\n ropeways: [],\r\n customMarkers: [],\r\n };\r\n\r\n private readonly masterDataRequest$: Observable = this.destinationService.selectedTenantFeatures$.pipe(\r\n distinctUntilChanged((pre, curr) => pre === curr),\r\n switchMap((features) => {\r\n if (features == null || !this.hasCockpitFeature(features)) {\r\n return of(this.emptyMasterData);\r\n } else {\r\n return merge(\r\n of(this.emptyMasterData),\r\n this.http.get(environment.baseUrlApi + MasterdataService.urlPath).pipe(map((data: any) => MasterdataAdapter.adapt(data)))\r\n );\r\n }\r\n }),\r\n shareReplay({\r\n bufferSize: 1,\r\n refCount: true,\r\n })\r\n );\r\n\r\n private readonly ropewaySettingsUpdate$: Observable = this.eventBus.observe(RopewaySettingsUpdatedEvent).pipe(\r\n filter((event) => event.updateSuccessful),\r\n map((event) => event.ropewaySettings),\r\n withLatestFrom(this.masterDataRequest$),\r\n map(([ropewaySettingsUpdate, masterData]) => {\r\n const updatedRopeway = masterData.ropeways.find((r) => r.guid === ropewaySettingsUpdate.guid);\r\n if (!updatedRopeway) {\r\n return masterData;\r\n }\r\n updatedRopeway.alias = ropewaySettingsUpdate.alias;\r\n updatedRopeway.fullname = ropewaySettingsUpdate.fullname;\r\n updatedRopeway.constructedBy = ropewaySettingsUpdate.constructedBy;\r\n updatedRopeway.controllerType = ropewaySettingsUpdate.controllerType;\r\n updatedRopeway.maxTransportQuantityPerHour = ropewaySettingsUpdate.maxTransportQuantityPerHour;\r\n updatedRopeway.availability = ropewaySettingsUpdate.availability;\r\n updatedRopeway.availabilityIsAvailable = ropewaySettingsUpdate.availabilityIsAvailable;\r\n\r\n return masterData;\r\n })\r\n );\r\n\r\n private readonly tenantUpdate$: Observable = this.eventBus.observe(TenantUpdatedEvent).pipe(\r\n filter((event) => event.updateSuccessful),\r\n map((event) => event.tenant),\r\n withLatestFrom(this.masterDataRequest$),\r\n map(([tenantUpdatedEvent, masterData]) => {\r\n if (tenantUpdatedEvent.guid === masterData.guid) {\r\n masterData.alias = tenantUpdatedEvent.alias;\r\n masterData.fullname = tenantUpdatedEvent.fullname;\r\n masterData.gatewayId = tenantUpdatedEvent.gatewayId;\r\n masterData.logoFilename = tenantUpdatedEvent.logoFilename;\r\n masterData.panoMapFilename = tenantUpdatedEvent.panoMapFilename;\r\n masterData.sisId = tenantUpdatedEvent.sisId;\r\n\r\n return masterData;\r\n }\r\n })\r\n );\r\n\r\n readonly masterData$: Observable = merge(this.masterDataRequest$, this.ropewaySettingsUpdate$, this.tenantUpdate$).pipe(\r\n shareReplay({\r\n bufferSize: 1,\r\n refCount: true,\r\n })\r\n );\r\n\r\n constructor(private http: HttpClient, private destinationService: DestinationService, private eventBus: EventBusService) {}\r\n\r\n private hasCockpitFeature(features: Feature[]): boolean {\r\n return features.some((feature) => feature.hasMinimumRequirementFor(this.requiredFeature));\r\n }\r\n}\r\n","import { Configuration } from 'src/app/maps/domain/configuration.model';\r\nimport { Coords } from 'src/app/maps/domain/coords.model';\r\nimport { Ropeway } from 'src/app/maps/domain/ropeway.model';\r\nimport { Webcam } from 'src/app/maps/domain/webcam.model';\r\n\r\nexport class MeteoStation {\r\n guid: string;\r\n ropewaySisId: string;\r\n tenantSisId: string;\r\n alias: string;\r\n directionOffsetPanoMap: number;\r\n directionOffsetNorth: number;\r\n positionPanoMap: Coords;\r\n meteoStationIndex: number = 0;\r\n configuration: Configuration[] = [];\r\n ropeway: Ropeway;\r\n webcams: Webcam[] = [];\r\n windDirection: string;\r\n hasForecast: boolean = false;\r\n snowmakingWidgetOrder: number;\r\n dataProvider: string;\r\n forecastTestActive: boolean = false;\r\n panoMapIconZoomFactor: number;\r\n\r\n get meteoDeviceSisId(): string {\r\n if (this.ropewaySisId) {\r\n return `${this.ropewaySisId}_meteo${this.meteoStationIndex}`;\r\n }\r\n\r\n if (this.tenantSisId) {\r\n return `${this.tenantSisId}_meteo${this.meteoStationIndex}`;\r\n }\r\n\r\n return undefined;\r\n }\r\n\r\n constructor(init?: Partial) {\r\n Object.assign(this, init);\r\n }\r\n}\r\n","import { RopewayBrakeReport } from 'src/app/maps/domain/ropeway-brakereport/ropeway-brakereport.model';\r\n\r\nexport class RopewayBrakeReportAdapter {\r\n static adapt(items: any): RopewayBrakeReport[] {\r\n if (!items) {\r\n return [];\r\n }\r\n\r\n const result: RopewayBrakeReport[] = items.map((e: any) => ({\r\n ropewaySisId: e.ropewaySisId,\r\n gatewayTimestamp: new Date(e.gatewayTimestamp),\r\n pdfFileName: e.pdfFileName,\r\n recording: e.recording,\r\n }));\r\n\r\n return result;\r\n }\r\n}\r\n","import { HttpClient } from '@angular/common/http';\r\nimport { Injectable } from '@angular/core';\r\nimport { filter, map, Observable, of, share, startWith, switchMap } from 'rxjs';\r\nimport { EventBusService } from 'src/app/core/eventbus/event-bus.service';\r\nimport { RopewayBrakeReportUpdatedEvent } from 'src/app/core/eventbus/events';\r\nimport { DestinationService } from 'src/app/domain/destination/destination.service';\r\nimport { Feature } from 'src/app/domain/feature/feature.model';\r\nimport { FeatureAccessLevel } from 'src/app/domain/feature/feature-access-level.model';\r\nimport { FeatureId } from 'src/app/domain/feature/feature-id.model';\r\nimport { RopewayBrakeReportAdapter } from 'src/app/maps/domain/ropeway-brakereport/ropeway-brakereport.adapter';\r\nimport { RopewayBrakeReport } from 'src/app/maps/domain/ropeway-brakereport/ropeway-brakereport.model';\r\nimport { SelectedMapElementService } from 'src/app/maps/selected-map-element.service';\r\nimport { environment } from 'src/environments/environment';\r\n\r\n@Injectable({\r\n providedIn: 'root',\r\n})\r\nexport class RopewayBrakeReportService {\r\n private readonly url = environment.baseUrlApi + '/ropewayBrakeReport';\r\n private readonly requiredFeature = new Feature(FeatureId.COCKPIT_ROPEWAY_BRAKEREPORT, FeatureAccessLevel.READ);\r\n\r\n readonly ropewayBrakeReports$: Observable =\r\n this.destinationService.selectedTenantFeatures$.pipe(\r\n switchMap((features) => {\r\n if (features.some((feature) => feature.hasMinimumRequirementFor(this.requiredFeature))) {\r\n return this.selectedMapElementService.selectedRopeway$.pipe(\r\n switchMap((ropeway) =>\r\n this.eventBus.observe(RopewayBrakeReportUpdatedEvent).pipe(\r\n filter((event) => event.deviceSisId === ropeway.sisId),\r\n startWith(null),\r\n map(() => ropeway)\r\n )\r\n ),\r\n switchMap((ropeway) => {\r\n if (!ropeway) {\r\n return of([]);\r\n }\r\n\r\n return this.http\r\n .get(`${this.url}/${ropeway.sisId}`)\r\n .pipe(\r\n map((data: any) =>\r\n RopewayBrakeReportAdapter.adapt(data).sort(\r\n (a, b) => b.gatewayTimestamp.getTime() - a.gatewayTimestamp.getTime()\r\n )\r\n )\r\n );\r\n })\r\n );\r\n } else {\r\n return of([]);\r\n }\r\n }),\r\n\r\n share()\r\n );\r\n\r\n constructor(\r\n private http: HttpClient,\r\n private selectedMapElementService: SelectedMapElementService,\r\n private destinationService: DestinationService,\r\n private eventBus: EventBusService\r\n ) {}\r\n}\r\n","import { RopewayEcoModeSettings } from 'src/app/maps/domain/ropeway-ecomode/ropeway-ecomode-settings.model';\r\n\r\nexport class RopewayEcoModeSettingsAdapter {\r\n static adapt(items: any): RopewayEcoModeSettings[] {\r\n const ecoModeSettings: RopewayEcoModeSettings[] = [];\r\n\r\n if (items) {\r\n items.forEach((element) => {\r\n ecoModeSettings.push({\r\n ropewayGuid: element.ropewayGuid,\r\n ropewaySisId: element.ropewaySisId,\r\n ecoModeEnabledCockpit: element.ecoModeEnabledCockpit,\r\n maxTransportQuantityPerHour: element.maxTransportQuantityPerHour,\r\n speedEmpty: element.speedEmpty,\r\n speedLow: element.speedLow,\r\n speedMedium: element.speedMedium,\r\n speedHigh: element.speedHigh,\r\n thresholdLow: element.thresholdLow,\r\n thresholdMedium: element.thresholdMedium,\r\n });\r\n });\r\n }\r\n\r\n return ecoModeSettings;\r\n }\r\n}\r\n","import { HttpClient } from '@angular/common/http';\r\nimport { Injectable } from '@angular/core';\r\nimport { catchError, filter, map, merge, Observable, of, shareReplay, switchMap, withLatestFrom } from 'rxjs';\r\nimport { EventBusService } from 'src/app/core/eventbus/event-bus.service';\r\nimport { EcoModeSettingsUpdatedEvent, RopewaySettingsUpdatedEvent } from 'src/app/core/eventbus/events';\r\nimport { DestinationService } from 'src/app/domain/destination/destination.service';\r\nimport { Feature } from 'src/app/domain/feature/feature.model';\r\nimport { FeatureAccessLevel } from 'src/app/domain/feature/feature-access-level.model';\r\nimport { FeatureId } from 'src/app/domain/feature/feature-id.model';\r\nimport { UserSettingsService } from 'src/app/domain/user-settings/user-settings.service';\r\nimport { RopewayEcoModeSettingsAdapter } from 'src/app/maps/domain/ropeway-ecomode/ropeway-ecomode-settings.adapter';\r\nimport { RopewayEcoModeSettings } from 'src/app/maps/domain/ropeway-ecomode/ropeway-ecomode-settings.model';\r\nimport { UserMessage } from 'src/app/user-message/user-message.model';\r\nimport { UserMessageService } from 'src/app/user-message/user-message.service';\r\nimport { UserMessageColor } from 'src/app/user-message/user-message-color';\r\nimport { UserMessageIcon } from 'src/app/user-message/user-message-icon';\r\nimport { environment } from 'src/environments/environment';\r\n\r\n@Injectable({\r\n providedIn: 'root',\r\n})\r\nexport class RopewayEcoModeSettingsService {\r\n private readonly baseRequestUrl: string = '/ropeway/ecomodesettings';\r\n private readonly basePostUrl: string = '/ropeway/ecomodesettings';\r\n private readonly requiredFeature = new Feature(FeatureId.COCKPIT_ECOMODE, FeatureAccessLevel.READ);\r\n\r\n private readonly ropewayEcoModeSettingsRequest$: Observable =\r\n this.destinationService.selectedTenantFeatures$.pipe(\r\n switchMap((features) => {\r\n if (features.some((f) => f.hasMinimumRequirementFor(this.requiredFeature))) {\r\n return this.http.get(`${environment.baseUrlApi}${this.baseRequestUrl}`);\r\n }\r\n return of([]);\r\n }),\r\n map((data) => RopewayEcoModeSettingsAdapter.adapt(data)),\r\n shareReplay({\r\n bufferSize: 1,\r\n refCount: true,\r\n })\r\n );\r\n\r\n private readonly ropewayEcoModeSettingsUpdate$: Observable = this.eventBus\r\n .observe(EcoModeSettingsUpdatedEvent)\r\n .pipe(\r\n withLatestFrom(this.ropewayEcoModeSettingsRequest$),\r\n filter(([event, ropewayEcoModeSettings]) =>\r\n ropewayEcoModeSettings.some((d) => d.ropewayGuid === event.ropewayEcoModeSettings.ropewayGuid)\r\n ),\r\n withLatestFrom(this.userSettingsService.userSettings$),\r\n map(([[event, ropewayEcoModeSettings], userSettings]) => {\r\n if (event.moduleUpdateSuccessful) {\r\n const updatedEntry = ropewayEcoModeSettings.find(\r\n (d) => d.ropewayGuid === event.ropewayEcoModeSettings.ropewayGuid\r\n );\r\n Object.assign(updatedEntry, event.ropewayEcoModeSettings);\r\n }\r\n if (event.changedBy === userSettings.userGuid) {\r\n this.displayUserMessage(event.updateSuccessful, event.moduleUpdateSuccessful);\r\n }\r\n\r\n return ropewayEcoModeSettings;\r\n })\r\n );\r\n\r\n private readonly ropewaySettingsUpdate$: Observable = this.eventBus\r\n .observe(RopewaySettingsUpdatedEvent)\r\n .pipe(\r\n withLatestFrom(this.ropewayEcoModeSettingsRequest$),\r\n filter(([event, ropewayEcoModeSettings]) =>\r\n ropewayEcoModeSettings.some((d) => d.ropewayGuid === event.ropewaySettings.guid)\r\n ),\r\n map(([event, ropewayEcoModeSettings]) => {\r\n ropewayEcoModeSettings.find((r) => r.ropewayGuid === event.ropewaySettings.guid).maxTransportQuantityPerHour =\r\n event.ropewaySettings.maxTransportQuantityPerHour;\r\n return ropewayEcoModeSettings;\r\n })\r\n );\r\n\r\n readonly ropewayEcoModeSettings$ = merge(\r\n this.ropewayEcoModeSettingsRequest$,\r\n this.ropewayEcoModeSettingsUpdate$,\r\n this.ropewaySettingsUpdate$\r\n ).pipe(\r\n shareReplay({\r\n bufferSize: 1,\r\n refCount: true,\r\n })\r\n );\r\n\r\n constructor(\r\n private destinationService: DestinationService,\r\n private http: HttpClient,\r\n private eventBus: EventBusService,\r\n private userSettingsService: UserSettingsService,\r\n private userMessageService: UserMessageService\r\n ) {}\r\n\r\n saveRopewayEcoModeSettings(settings: RopewayEcoModeSettings): Observable {\r\n return this.http.post(`${environment.baseUrlApi}${this.basePostUrl}`, settings).pipe(\r\n map(() => true),\r\n catchError(() => {\r\n this.displayUserMessage(false, false);\r\n return of(false);\r\n })\r\n );\r\n }\r\n\r\n private displayUserMessage(updateSuccessful: boolean, moduleUpdateSuccessful: boolean): void {\r\n const message = updateSuccessful\r\n ? moduleUpdateSuccessful\r\n ? 'general.phrase.saved'\r\n : 'ecomode.message.moduleUpdateFailed'\r\n : 'general.phrase.saveFailed';\r\n const icon = updateSuccessful\r\n ? moduleUpdateSuccessful\r\n ? UserMessageIcon.success\r\n : UserMessageIcon.info\r\n : UserMessageIcon.failed;\r\n const color = updateSuccessful\r\n ? moduleUpdateSuccessful\r\n ? UserMessageColor.green\r\n : UserMessageColor.orange\r\n : UserMessageColor.red;\r\n const durationMs = moduleUpdateSuccessful ? 2000 : 5000;\r\n const userMessage = new UserMessage({\r\n message,\r\n icon,\r\n durationMs,\r\n position: 'top',\r\n color,\r\n });\r\n this.userMessageService.presentToast(userMessage);\r\n }\r\n}\r\n","import { MasterdataAdapter } from 'src/app/maps/domain/masterdata.adapter';\r\nimport { RopewaySettings } from 'src/app/maps/domain/ropeway-settings/ropeway-settings.model';\r\n\r\nexport class RopewaySettingsAdapter {\r\n static adapt(item: any): RopewaySettings {\r\n if (!item) {\r\n return null;\r\n }\r\n\r\n return {\r\n sisId: item.sisId,\r\n guid: item.guid,\r\n tenantGuid: item.tenantGuid,\r\n alias: item.alias,\r\n fullname: item.fullname,\r\n ropewayType: item.ropewayType,\r\n constructedBy: item.constructedBy,\r\n controllerType: item.controllerType,\r\n maxTransportQuantityPerHour: item.maxTransportQuantityPerHour,\r\n operatingTimeFrom: item.operatingTimeFrom,\r\n operatingTimeUntil: item.operatingTimeUntil,\r\n availability: item.availability,\r\n availabilityIsAvailable: MasterdataAdapter.isAvailabilityAvailable(item.sisId, item.controllerType),\r\n };\r\n }\r\n}\r\n","import { HttpClient } from '@angular/common/http';\r\nimport { Injectable } from '@angular/core';\r\nimport { catchError, map, Observable, of, withLatestFrom } from 'rxjs';\r\nimport { EventBusService } from 'src/app/core/eventbus/event-bus.service';\r\nimport { RopewaySettingsUpdatedEvent } from 'src/app/core/eventbus/events';\r\nimport { UserSettingsService } from 'src/app/domain/user-settings/user-settings.service';\r\nimport { RopewaySettings } from 'src/app/maps/domain/ropeway-settings/ropeway-settings.model';\r\nimport { UserMessage } from 'src/app/user-message/user-message.model';\r\nimport { UserMessageService } from 'src/app/user-message/user-message.service';\r\nimport { UserMessageColor } from 'src/app/user-message/user-message-color';\r\nimport { UserMessageIcon } from 'src/app/user-message/user-message-icon';\r\nimport { environment } from 'src/environments/environment';\r\n\r\n@Injectable({\r\n providedIn: 'root',\r\n})\r\nexport class RopewaySettingsService {\r\n private readonly basePostUrl: string = '/ropeway/settings';\r\n\r\n constructor(\r\n private http: HttpClient,\r\n private eventBus: EventBusService,\r\n private userSettingsService: UserSettingsService,\r\n private userMessageService: UserMessageService\r\n ) {\r\n this.eventBus\r\n .observe(RopewaySettingsUpdatedEvent)\r\n .pipe(withLatestFrom(this.userSettingsService.userSettings$))\r\n .subscribe(([event, userSettings]) => {\r\n if (event.changedBy === userSettings.userGuid) {\r\n this.displayUserMessage(event.updateSuccessful);\r\n }\r\n });\r\n }\r\n\r\n saveRopewaySettings(ropewaySettings: RopewaySettings): Observable {\r\n ropewaySettings.availability = ropewaySettings.availability && ropewaySettings.availabilityIsAvailable;\r\n\r\n return this.http.post(`${environment.baseUrlApi}${this.basePostUrl}`, ropewaySettings).pipe(\r\n map(() => true),\r\n catchError(() => {\r\n this.displayUserMessage(false);\r\n return of(false);\r\n })\r\n );\r\n }\r\n\r\n private displayUserMessage(updateSuccessful: boolean): void {\r\n const message = updateSuccessful ? 'general.phrase.saved' : 'general.phrase.saveFailed';\r\n const icon = updateSuccessful ? UserMessageIcon.success : UserMessageIcon.failed;\r\n const color = updateSuccessful ? UserMessageColor.green : UserMessageColor.red;\r\n const userMessage = new UserMessage({\r\n message,\r\n icon,\r\n durationMs: 2000,\r\n position: 'top',\r\n color,\r\n });\r\n this.userMessageService.presentToast(userMessage);\r\n }\r\n}\r\n","export class Webcam {\r\n readonly isPublic: boolean;\r\n\r\n constructor(public id: number, public readonly url: string, public title: string, public displayOrder: number) {\r\n this.isPublic = !url || !url.includes('blob.core.windows.net');\r\n }\r\n}\r\n","import { AbbSmartSensorData } from 'src/app/maps/livedata/abbsmartsensor-data.model';\r\n\r\nexport class AbbSmartSensorDataAdapter {\r\n static adapt(item: any): AbbSmartSensorData[] {\r\n const livedata: AbbSmartSensorData[] = [];\r\n\r\n if (item) {\r\n item.forEach((e: any) => {\r\n livedata.push({\r\n timestamp: e.Timestamp,\r\n assetId: Number.parseInt(e.AssetId),\r\n deviceSisId: e.DeviceSisId,\r\n tenantSisId: e.TenantSisId,\r\n conditionIndexForAvailability: e.ConditionIndexForAvailability,\r\n conditionIndexForEnvironment: e.ConditionIndexForEnvironment,\r\n conditionIndexForReliability: e.ConditionIndexForReliability,\r\n conditionIndexForStress: e.ConditionIndexForStress,\r\n overallConditionIndex: e.OverallConditionIndex,\r\n });\r\n });\r\n }\r\n\r\n return livedata;\r\n }\r\n}\r\n","export interface AbbSmartSensorData {\r\n timestamp: Date;\r\n assetId: number;\r\n deviceSisId: string;\r\n tenantSisId: string;\r\n conditionIndexForAvailability: AbbSmartSensorConditionStatus;\r\n conditionIndexForEnvironment: AbbSmartSensorConditionStatus;\r\n conditionIndexForReliability: AbbSmartSensorConditionStatus;\r\n conditionIndexForStress: AbbSmartSensorConditionStatus;\r\n overallConditionIndex: AbbSmartSensorConditionStatus;\r\n}\r\n\r\nexport enum AbbSmartSensorConditionStatus {\r\n Poor = 0,\r\n Tolerable = 1,\r\n Good = 2,\r\n NotApplicable = 3,\r\n Unknown = 4,\r\n}\r\n","import { HttpClient } from '@angular/common/http';\r\nimport { Injectable } from '@angular/core';\r\nimport { LivedataServiceBase } from 'src/app/core/livedata/livedata-base.service';\r\nimport { DestinationService } from 'src/app/domain/destination/destination.service';\r\nimport { Feature } from 'src/app/domain/feature/feature.model';\r\nimport { FeatureAccessLevel } from 'src/app/domain/feature/feature-access-level.model';\r\nimport { FeatureId } from 'src/app/domain/feature/feature-id.model';\r\nimport { AbbSmartSensorDataAdapter } from 'src/app/maps/livedata/abbsmartsensor-data.adapter';\r\nimport { AbbSmartSensorData } from 'src/app/maps/livedata/abbsmartsensor-data.model';\r\n\r\n@Injectable({\r\n providedIn: 'root',\r\n})\r\nexport class AbbSmartSensorDataService extends LivedataServiceBase {\r\n protected readonly endpointUri = 'livedata/abbsmartsensor';\r\n protected readonly requiredFeatures = [\r\n new Feature(FeatureId.COCKPIT, FeatureAccessLevel.READ),\r\n new Feature(FeatureId.COCKPIT_ABBSMARTSENSOR, FeatureAccessLevel.READ),\r\n ];\r\n\r\n readonly abbSmartSensorDatas$ = this.liveData$;\r\n\r\n constructor(http: HttpClient, destinationService: DestinationService) {\r\n super(http, AbbSmartSensorDataAdapter.adapt, destinationService);\r\n }\r\n}\r\n","import { Alarm } from 'src/app/domain/alarm.model';\r\n\r\nexport class DestinationAlarmAdapter {\r\n static adapt(item: any): Alarm[] {\r\n const alarms: Alarm[] = [];\r\n\r\n if (item) {\r\n item.forEach((e: any) => {\r\n alarms.push(\r\n new Alarm({\r\n sisId: e.TenantSisId ?? e.PartitionKey,\r\n tenantSisId: e.TenantSisId ?? e.PartitionKey,\r\n timestamp: new Date(e.GatewayTimestamp),\r\n active: e.Active,\r\n code: e.Code,\r\n level: Alarm.getLevel(e.Level),\r\n text: e.Text,\r\n })\r\n );\r\n });\r\n }\r\n\r\n return alarms;\r\n }\r\n}\r\n","import { HttpClient } from '@angular/common/http';\r\nimport { Injectable } from '@angular/core';\r\nimport { merge } from 'rxjs';\r\nimport { map, shareReplay, withLatestFrom } from 'rxjs/operators';\r\nimport { EventBusService } from 'src/app/core/eventbus/event-bus.service';\r\nimport { UserAlarmEvent } from 'src/app/core/eventbus/events';\r\nimport { LivedataServiceBase } from 'src/app/core/livedata/livedata-base.service';\r\nimport { Alarm } from 'src/app/domain/alarm.model';\r\nimport { DestinationService } from 'src/app/domain/destination/destination.service';\r\nimport { Feature } from 'src/app/domain/feature/feature.model';\r\nimport { FeatureAccessLevel } from 'src/app/domain/feature/feature-access-level.model';\r\nimport { FeatureId } from 'src/app/domain/feature/feature-id.model';\r\nimport { DestinationAlarmAdapter } from 'src/app/maps/livedata/destination-alarm.adapter';\r\n\r\n@Injectable({\r\n providedIn: 'root',\r\n})\r\nexport class DestinationAlarmService extends LivedataServiceBase {\r\n protected readonly endpointUri = 'livedata/destinationalarm';\r\n protected readonly requiredFeatures = [\r\n new Feature(FeatureId.COCKPIT, FeatureAccessLevel.READ),\r\n new Feature(FeatureId.COCKPIT_TELEMETRY, FeatureAccessLevel.READ),\r\n ];\r\n\r\n private readonly alarmUpdate$ = this.eventBusService.observe(UserAlarmEvent).pipe(\r\n withLatestFrom(this.liveData$, this.destinationService.selectedTenant$),\r\n map(([event, alarms, tenant]) => {\r\n if (event.alarm && tenant?.sisId === event.alarm.tenantSisId && event.alarm.sisId === event.alarm.tenantSisId) {\r\n const updatedAlarm = alarms.find((a) => a.code === event.alarm.code);\r\n\r\n if (updatedAlarm) {\r\n Object.assign(updatedAlarm, event.alarm);\r\n } else {\r\n alarms.push(event.alarm);\r\n }\r\n }\r\n return alarms;\r\n })\r\n );\r\n\r\n readonly alarms$ = merge(this.liveData$, this.alarmUpdate$).pipe(\r\n shareReplay({\r\n bufferSize: 1,\r\n refCount: true,\r\n })\r\n );\r\n\r\n constructor(http: HttpClient, private eventBusService: EventBusService, destinationService: DestinationService) {\r\n super(http, DestinationAlarmAdapter.adapt, destinationService);\r\n }\r\n}\r\n","import { SisConverter } from 'src/app/core/utils/sis-converter';\r\nimport { EnergyLiveData } from 'src/app/maps/livedata/energy-livedata.model';\r\nimport { SisOutdatedHelper } from 'src/app/maps/livedata/sis-outdated-helper';\r\n\r\nexport class EnergyLiveDataAdapter {\r\n static adapt(item: any): EnergyLiveData[] {\r\n const livedata: EnergyLiveData[] = [];\r\n\r\n if (item) {\r\n item.forEach((e: any) => {\r\n livedata.push({\r\n deviceSisId: e.DeviceSisId,\r\n parentSisId: e.ParentSisId,\r\n timestamp: e.GatewayTimestamp,\r\n category: e.Category,\r\n powerW: SisConverter.toNumberOrUndefined(e.PowerW),\r\n energyWh10Sec: SisConverter.toNumberOrUndefined(e.EnergyWh10Sec),\r\n outdated: SisOutdatedHelper.isOutdated(e.GatewayTimestamp),\r\n displayName: e.DisplayName,\r\n });\r\n });\r\n }\r\n\r\n return livedata;\r\n }\r\n}\r\n","import { HttpClient } from '@angular/common/http';\r\nimport { Injectable } from '@angular/core';\r\nimport { LivedataServiceBase } from 'src/app/core/livedata/livedata-base.service';\r\nimport { DestinationService } from 'src/app/domain/destination/destination.service';\r\nimport { Feature } from 'src/app/domain/feature/feature.model';\r\nimport { FeatureAccessLevel } from 'src/app/domain/feature/feature-access-level.model';\r\nimport { FeatureId } from 'src/app/domain/feature/feature-id.model';\r\nimport { EnergyLiveDataAdapter } from 'src/app/maps/livedata/energy-livedata.adapter';\r\nimport { EnergyLiveData } from 'src/app/maps/livedata/energy-livedata.model';\r\n\r\n@Injectable({\r\n providedIn: 'root',\r\n})\r\nexport class EnergyLiveDataService extends LivedataServiceBase {\r\n protected readonly endpointUri = 'livedata/energy';\r\n protected readonly requiredFeatures = [\r\n new Feature(FeatureId.COCKPIT, FeatureAccessLevel.READ),\r\n new Feature(FeatureId.COCKPIT_ENERGY, FeatureAccessLevel.READ),\r\n ];\r\n\r\n readonly energy$ = this.liveData$;\r\n\r\n constructor(http: HttpClient, destinationService: DestinationService) {\r\n super(http, EnergyLiveDataAdapter.adapt, destinationService);\r\n }\r\n}\r\n","import { FirstEntriesData } from 'src/app/maps/livedata/first-entries.model';\r\n\r\nexport class FirstEntriesAdapter {\r\n static adapt(item: any): FirstEntriesData[] {\r\n const entries: FirstEntriesData[] = [];\r\n\r\n if (item) {\r\n item.forEach((e: any) => {\r\n entries.push({\r\n rowKey: e.RowKey,\r\n measuredValue: e.MeasuredValue,\r\n frequenciesValue: e.FrequenciesValue,\r\n measuredAt: new Date(e.MeasuredAt),\r\n timeoutInSeconds: e.Timeout,\r\n });\r\n });\r\n }\r\n\r\n return entries;\r\n }\r\n}\r\n","import { HttpClient } from '@angular/common/http';\r\nimport { Injectable } from '@angular/core';\r\nimport { LivedataServiceBase } from 'src/app/core/livedata/livedata-base.service';\r\nimport { DestinationService } from 'src/app/domain/destination/destination.service';\r\nimport { Feature } from 'src/app/domain/feature/feature.model';\r\nimport { FeatureAccessLevel } from 'src/app/domain/feature/feature-access-level.model';\r\nimport { FeatureId } from 'src/app/domain/feature/feature-id.model';\r\nimport { FirstEntriesAdapter } from 'src/app/maps/livedata/first-entries.adapter';\r\nimport { FirstEntriesData } from 'src/app/maps/livedata/first-entries.model';\r\n\r\n@Injectable({\r\n providedIn: 'root',\r\n})\r\nexport class FirstEntriesService extends LivedataServiceBase {\r\n protected readonly endpointUri = 'livedata/firstEntries';\r\n protected readonly requiredFeatures = [\r\n new Feature(FeatureId.COCKPIT, FeatureAccessLevel.READ),\r\n new Feature(FeatureId.COCKPIT_FIRSTENTRIES, FeatureAccessLevel.READ),\r\n ];\r\n\r\n readonly firstEntries$ = this.liveData$;\r\n\r\n constructor(http: HttpClient, destinationService: DestinationService) {\r\n super(http, FirstEntriesAdapter.adapt, destinationService);\r\n }\r\n}\r\n","import { SisConverter } from 'src/app/core/utils/sis-converter';\r\nimport { Alarm } from 'src/app/domain/alarm.model';\r\n\r\nexport class GinAlarmAdapter {\r\n static adapt(item: any): Alarm[] {\r\n const alarms: Alarm[] = [];\r\n\r\n if (item) {\r\n item.forEach((e: any) => {\r\n alarms.push(\r\n new Alarm({\r\n sisId: e.TenantSisId ?? e.PartitionKey,\r\n tenantSisId: e.TenantSisId,\r\n timestamp: new Date(e.DataTimestamp),\r\n active: SisConverter.toBoolean(e.Active),\r\n code: e.Code,\r\n info: e.StationName,\r\n level: Alarm.getLevel(e.Level),\r\n text: e.Text,\r\n })\r\n );\r\n });\r\n }\r\n\r\n return alarms;\r\n }\r\n}\r\n","import { HttpClient } from '@angular/common/http';\r\nimport { Injectable } from '@angular/core';\r\nimport { LivedataServiceBase } from 'src/app/core/livedata/livedata-base.service';\r\nimport { Alarm } from 'src/app/domain/alarm.model';\r\nimport { DestinationService } from 'src/app/domain/destination/destination.service';\r\nimport { Feature } from 'src/app/domain/feature/feature.model';\r\nimport { FeatureAccessLevel } from 'src/app/domain/feature/feature-access-level.model';\r\nimport { FeatureId } from 'src/app/domain/feature/feature-id.model';\r\nimport { GinAlarmAdapter } from 'src/app/maps/livedata/gin-alarm.adapter';\r\n\r\n@Injectable({\r\n providedIn: 'root',\r\n})\r\nexport class GinAlarmService extends LivedataServiceBase {\r\n protected readonly endpointUri = 'livedata/ginalarm';\r\n protected readonly requiredFeatures = [new Feature(FeatureId.COCKPIT, FeatureAccessLevel.READ)];\r\n\r\n readonly alarms$ = this.liveData$;\r\n\r\n constructor(http: HttpClient, destinationService: DestinationService) {\r\n super(http, GinAlarmAdapter.adapt, destinationService);\r\n }\r\n}\r\n","// import { SisConverter } from 'src/app/core/utils/sis-converter';\r\nimport { GinLivedata } from 'src/app/maps/livedata/gin-livedata.model';\r\nimport { SisOutdatedHelper } from 'src/app/maps/livedata/sis-outdated-helper';\r\n\r\nexport class GinLivedataAdapter {\r\n static adapt(item: any): GinLivedata[] {\r\n const livedata: GinLivedata[] = [];\r\n\r\n if (item) {\r\n item.forEach((e: any) => {\r\n livedata.push({\r\n id: e.Id,\r\n ginName: e.Name,\r\n timestamp: e.Timestamp,\r\n dataTimestamp: GinLivedataAdapter.formatDate(e.DataTimestamp),\r\n value: e.Value.toFixed(1),\r\n unit: e.Unit,\r\n outdated: SisOutdatedHelper.isOutdated(e.DataTimestamp, 3600000),\r\n });\r\n });\r\n }\r\n\r\n return livedata;\r\n }\r\n\r\n private static formatDate(date: string): string {\r\n const d = new Date(date);\r\n return `${d.toLocaleDateString('de-DE', {\r\n day: '2-digit',\r\n month: '2-digit',\r\n year: 'numeric',\r\n })} ${d.toLocaleTimeString('de-DE')}`;\r\n }\r\n}\r\n","import { HttpClient } from '@angular/common/http';\r\nimport { Injectable } from '@angular/core';\r\nimport { LivedataServiceBase } from 'src/app/core/livedata/livedata-base.service';\r\nimport { DestinationService } from 'src/app/domain/destination/destination.service';\r\nimport { Feature } from 'src/app/domain/feature/feature.model';\r\nimport { FeatureAccessLevel } from 'src/app/domain/feature/feature-access-level.model';\r\nimport { FeatureId } from 'src/app/domain/feature/feature-id.model';\r\nimport { GinLivedataAdapter } from 'src/app/maps/livedata/gin-livedata.apdapter';\r\nimport { GinLivedata } from 'src/app/maps/livedata/gin-livedata.model';\r\n\r\n@Injectable({\r\n providedIn: 'root',\r\n})\r\nexport class GinLivedataService extends LivedataServiceBase {\r\n protected readonly endpointUri = 'livedata/gin';\r\n protected readonly requiredFeatures = [new Feature(FeatureId.COCKPIT, FeatureAccessLevel.READ)];\r\n\r\n readonly ginLiveDatas$ = this.liveData$;\r\n\r\n constructor(http: HttpClient, destinationService: DestinationService) {\r\n super(http, GinLivedataAdapter.adapt, destinationService);\r\n }\r\n}\r\n","import { KassandraForecastData } from 'src/app/maps/livedata/kassandra-forecast.model';\r\n\r\nexport class KassandraForecastAdapter {\r\n static adapt(item: any): KassandraForecastData[] {\r\n const entries: KassandraForecastData[] = [];\r\n\r\n if (item) {\r\n item.forEach((e: any) => {\r\n entries.push({ rowKey: e.RowKey, forecastValue: e.ForecastValue, forecastAt: new Date(e.ForecastAt) });\r\n });\r\n }\r\n\r\n return entries;\r\n }\r\n}\r\n","import { HttpClient } from '@angular/common/http';\r\nimport { Injectable } from '@angular/core';\r\nimport { LivedataServiceBase } from 'src/app/core/livedata/livedata-base.service';\r\nimport { DestinationService } from 'src/app/domain/destination/destination.service';\r\nimport { Feature } from 'src/app/domain/feature/feature.model';\r\nimport { FeatureAccessLevel } from 'src/app/domain/feature/feature-access-level.model';\r\nimport { FeatureId } from 'src/app/domain/feature/feature-id.model';\r\nimport { KassandraForecastAdapter } from 'src/app/maps/livedata/kassandra-forecast.adapter';\r\nimport { KassandraForecastData } from 'src/app/maps/livedata/kassandra-forecast.model';\r\n\r\n@Injectable({\r\n providedIn: 'root',\r\n})\r\nexport class KassandraForecastService extends LivedataServiceBase {\r\n protected readonly endpointUri = 'livedata/kassandra';\r\n protected readonly requiredFeatures = [\r\n new Feature(FeatureId.COCKPIT, FeatureAccessLevel.READ),\r\n new Feature(FeatureId.COCKPIT_KASSANDRA, FeatureAccessLevel.READ),\r\n ];\r\n\r\n readonly kassandra$ = this.liveData$;\r\n\r\n constructor(http: HttpClient, destinationService: DestinationService) {\r\n super(http, KassandraForecastAdapter.adapt, destinationService);\r\n }\r\n}\r\n","import { SisConverter } from 'src/app/core/utils/sis-converter';\r\nimport { Alarm } from 'src/app/domain/alarm.model';\r\n\r\nexport class MeteoForecastAlarmAdapter {\r\n static adapt(item: any): Alarm[] {\r\n const alarms: Alarm[] = [];\r\n\r\n if (item) {\r\n item.forEach((e: any) => {\r\n alarms.push(\r\n new Alarm({\r\n sisId: e.DeviceSisId,\r\n tenantSisId: e.TenantSisId ?? e.PartitionKey,\r\n timestamp: new Date(e.GatewayTimestamp),\r\n active: SisConverter.toBoolean(e.Active),\r\n code: e.Code,\r\n info: e.Info,\r\n level: Alarm.getLevel(e.Level),\r\n text: e.Text,\r\n })\r\n );\r\n });\r\n }\r\n\r\n return alarms;\r\n }\r\n}\r\n","import { HttpClient } from '@angular/common/http';\r\nimport { Injectable } from '@angular/core';\r\nimport { LivedataServiceBase } from 'src/app/core/livedata/livedata-base.service';\r\nimport { Alarm } from 'src/app/domain/alarm.model';\r\nimport { DestinationService } from 'src/app/domain/destination/destination.service';\r\nimport { Feature } from 'src/app/domain/feature/feature.model';\r\nimport { FeatureAccessLevel } from 'src/app/domain/feature/feature-access-level.model';\r\nimport { FeatureId } from 'src/app/domain/feature/feature-id.model';\r\nimport { MeteoForecastAlarmAdapter } from 'src/app/maps/livedata/meteo-forecast-alarm.adapter';\r\n\r\n@Injectable({\r\n providedIn: 'root',\r\n})\r\nexport class MeteoForecastAlarmService extends LivedataServiceBase {\r\n protected readonly endpointUri = 'livedata/forecastalarm';\r\n protected readonly requiredFeatures = [new Feature(FeatureId.COCKPIT, FeatureAccessLevel.READ)];\r\n\r\n readonly alarms$ = this.liveData$;\r\n\r\n constructor(http: HttpClient, destinationService: DestinationService) {\r\n super(http, MeteoForecastAlarmAdapter.adapt, destinationService);\r\n }\r\n}\r\n","import { SisConverter } from 'src/app/core/utils/sis-converter';\r\nimport { MeteoForecast } from 'src/app/maps/livedata/meteo-forecast.model';\r\nimport { SisOutdatedHelper } from 'src/app/maps/livedata/sis-outdated-helper';\r\n\r\nconst timeoutInMs = 1 * 60 * 60 * 1000; // 1 hour\r\n\r\nexport class MeteoForecastAdapter {\r\n static adapt(item: any): MeteoForecast[] {\r\n const forecastdata: MeteoForecast[] = [];\r\n\r\n if (item) {\r\n item.forEach((e: any) => {\r\n forecastdata.push({\r\n deviceSisId: e.RowKey,\r\n icingIntensity: SisConverter.toNumberOrUndefined(e.IcingIntensity),\r\n iceMass: SisConverter.toNumberOrUndefined(e.IceMass),\r\n windSpeedKmh: SisConverter.toNumberOrUndefined(e.WindSpeedKmh),\r\n temperatureCelsius: SisConverter.toNumberOrUndefined(e.TemperatureCelsius),\r\n wetBulbTemperatureCelsius: SisConverter.toNumberOrUndefined(e.WetBulbTemperatureCelsius),\r\n outdated: SisOutdatedHelper.isOutdated(e.Timestamp, timeoutInMs),\r\n });\r\n });\r\n }\r\n\r\n return forecastdata;\r\n }\r\n}\r\n","import { HttpClient } from '@angular/common/http';\r\nimport { Injectable } from '@angular/core';\r\nimport { LivedataServiceBase } from 'src/app/core/livedata/livedata-base.service';\r\nimport { DestinationService } from 'src/app/domain/destination/destination.service';\r\nimport { Feature } from 'src/app/domain/feature/feature.model';\r\nimport { FeatureAccessLevel } from 'src/app/domain/feature/feature-access-level.model';\r\nimport { FeatureId } from 'src/app/domain/feature/feature-id.model';\r\nimport { MeteoForecastAdapter } from 'src/app/maps/livedata/meteo-forecast.adapter';\r\nimport { MeteoForecast } from 'src/app/maps/livedata/meteo-forecast.model';\r\n\r\n@Injectable({\r\n providedIn: 'root',\r\n})\r\nexport class MeteoForecastService extends LivedataServiceBase {\r\n protected readonly endpointUri = 'livedata/forecast';\r\n protected readonly requiredFeatures = [new Feature(FeatureId.COCKPIT, FeatureAccessLevel.READ)];\r\n\r\n readonly forecasts$ = this.liveData$;\r\n\r\n constructor(http: HttpClient, destinationService: DestinationService) {\r\n super(http, MeteoForecastAdapter.adapt, destinationService);\r\n }\r\n}\r\n","import { SisConverter } from 'src/app/core/utils/sis-converter';\r\nimport { MeteoLivedata } from 'src/app/maps/livedata/meteo-livedata.model';\r\nimport { SisOutdatedHelper } from 'src/app/maps/livedata/sis-outdated-helper';\r\n\r\nexport class MeteoLivedataAdapter {\r\n static adapt(item: any): MeteoLivedata[] {\r\n const livedata: MeteoLivedata[] = [];\r\n\r\n if (item) {\r\n item.forEach((e: any) => {\r\n livedata.push({\r\n meteoDeviceSisId: e.MeteoDeviceSisId,\r\n deviceTimestamp: e.DeviceTimestamp,\r\n gatewayTimestamp: e.GatewayTimestamp,\r\n windDirectionDegreeAxis: SisConverter.toNumberOrUndefined(e.WindDirectionDegreeAxis),\r\n windDirectionDegreeNorth: SisConverter.toNumberOrUndefined(e.WindDirectionDegreeNorth),\r\n windSpeedKmh: SisConverter.toNumberOrUndefined(e.WindSpeedKmh),\r\n temperatureCelsius: SisConverter.toNumberOrUndefined(e.TemperatureCelsius),\r\n wetBulbTemperatureCelsius: SisConverter.toNumberOrUndefined(e.WetBulbTemperatureCelsius),\r\n outdated: SisOutdatedHelper.isOutdated(e.DeviceTimestamp),\r\n });\r\n });\r\n }\r\n\r\n return livedata;\r\n }\r\n}\r\n","import { HttpClient } from '@angular/common/http';\r\nimport { Injectable } from '@angular/core';\r\nimport { LivedataServiceBase } from 'src/app/core/livedata/livedata-base.service';\r\nimport { DestinationService } from 'src/app/domain/destination/destination.service';\r\nimport { Feature } from 'src/app/domain/feature/feature.model';\r\nimport { FeatureAccessLevel } from 'src/app/domain/feature/feature-access-level.model';\r\nimport { FeatureId } from 'src/app/domain/feature/feature-id.model';\r\nimport { MeteoLivedataAdapter } from 'src/app/maps/livedata/meteo-livedata.adapter';\r\nimport { MeteoLivedata } from 'src/app/maps/livedata/meteo-livedata.model';\r\n\r\n@Injectable({\r\n providedIn: 'root',\r\n})\r\nexport class MeteoLivedataService extends LivedataServiceBase {\r\n protected readonly endpointUri = 'livedata/meteo';\r\n protected readonly requiredFeatures = [new Feature(FeatureId.COCKPIT, FeatureAccessLevel.READ)];\r\n\r\n readonly meteoLiveDatas$ = this.liveData$;\r\n\r\n constructor(http: HttpClient, destinationService: DestinationService) {\r\n super(http, MeteoLivedataAdapter.adapt, destinationService);\r\n }\r\n}\r\n","import { RemoteAccessStatus } from 'src/app/maps/livedata/remote-access-status.model';\r\n\r\nexport class RemoteAccessStatusAdapter {\r\n static adapt(item: any): RemoteAccessStatus[] {\r\n const remoteAccessStatuses: RemoteAccessStatus[] = [];\r\n\r\n if (item) {\r\n item.forEach((e: any) => {\r\n remoteAccessStatuses.push({ guid: e.Guid, online: e.Online });\r\n });\r\n }\r\n\r\n return remoteAccessStatuses;\r\n }\r\n}\r\n","import { HttpClient } from '@angular/common/http';\r\nimport { Injectable } from '@angular/core';\r\nimport { LivedataServiceBase } from 'src/app/core/livedata/livedata-base.service';\r\nimport { DestinationService } from 'src/app/domain/destination/destination.service';\r\nimport { Feature } from 'src/app/domain/feature/feature.model';\r\nimport { FeatureAccessLevel } from 'src/app/domain/feature/feature-access-level.model';\r\nimport { FeatureId } from 'src/app/domain/feature/feature-id.model';\r\nimport { RemoteAccessStatusAdapter } from 'src/app/maps/livedata/remote-access-status.adapter';\r\nimport { RemoteAccessStatus } from 'src/app/maps/livedata/remote-access-status.model';\r\n\r\n@Injectable({\r\n providedIn: 'root',\r\n})\r\nexport class RemoteAccessStatusService extends LivedataServiceBase {\r\n protected readonly endpointUri = 'remoteaccess/status';\r\n protected readonly requiredFeatures = [new Feature(FeatureId.COCKPIT_REMOTEACCESS, FeatureAccessLevel.READ)];\r\n\r\n readonly remoteAccessStatuses$ = this.liveData$;\r\n\r\n constructor(http: HttpClient, destinationService: DestinationService) {\r\n super(http, RemoteAccessStatusAdapter.adapt, destinationService);\r\n }\r\n}\r\n","import { SisConverter } from 'src/app/core/utils/sis-converter';\r\nimport { Alarm } from 'src/app/domain/alarm.model';\r\n\r\nexport class RopewayAlarmAdapter {\r\n static adapt(item: any): Alarm[] {\r\n const alarms: Alarm[] = [];\r\n\r\n if (item) {\r\n item.forEach((e: any) => {\r\n alarms.push(\r\n new Alarm({\r\n sisId: e.DeviceSisId,\r\n tenantSisId: e.TenantSisId ?? e.PartitionKey,\r\n timestamp: new Date(e.DeviceTimestamp),\r\n active: SisConverter.toBoolean(e.Active),\r\n code: e.Code,\r\n info: e.Info,\r\n level: Alarm.getLevel(e.Level),\r\n text: e.Text,\r\n })\r\n );\r\n });\r\n }\r\n\r\n return alarms;\r\n }\r\n}\r\n","import { HttpClient } from '@angular/common/http';\r\nimport { Injectable } from '@angular/core';\r\nimport { merge } from 'rxjs';\r\nimport { map, shareReplay, withLatestFrom } from 'rxjs/operators';\r\nimport { EventBusService } from 'src/app/core/eventbus/event-bus.service';\r\nimport { UserAlarmEvent } from 'src/app/core/eventbus/events';\r\nimport { LivedataServiceBase } from 'src/app/core/livedata/livedata-base.service';\r\nimport { Alarm, AlarmLevel } from 'src/app/domain/alarm.model';\r\nimport { DestinationService } from 'src/app/domain/destination/destination.service';\r\nimport { Feature } from 'src/app/domain/feature/feature.model';\r\nimport { FeatureAccessLevel } from 'src/app/domain/feature/feature-access-level.model';\r\nimport { FeatureId } from 'src/app/domain/feature/feature-id.model';\r\nimport { RopewayAlarmAdapter } from 'src/app/maps/livedata/ropeway-alarm.adapter';\r\n\r\n@Injectable({\r\n providedIn: 'root',\r\n})\r\nexport class RopewayAlarmService extends LivedataServiceBase {\r\n protected readonly endpointUri = 'livedata/ropewayalarm';\r\n protected readonly requiredFeatures = [\r\n new Feature(FeatureId.COCKPIT, FeatureAccessLevel.READ),\r\n new Feature(FeatureId.COCKPIT_TELEMETRY, FeatureAccessLevel.READ),\r\n ];\r\n\r\n private readonly alarmUpdate$ = this.eventBusService.observe(UserAlarmEvent).pipe(\r\n withLatestFrom(this.liveData$, this.destinationService.selectedTenant$),\r\n map(([event, alarms, tenant]) => {\r\n if (event.alarm && tenant?.sisId === event.alarm.tenantSisId && event.alarm.level !== AlarmLevel.FAULT) {\r\n const updatedAlarm = alarms.find((a) => a.code === event.alarm.code);\r\n\r\n if (updatedAlarm) {\r\n Object.assign(updatedAlarm, event.alarm);\r\n } else {\r\n alarms.push(event.alarm);\r\n }\r\n }\r\n return alarms;\r\n })\r\n );\r\n\r\n readonly alarms$ = merge(this.liveData$, this.alarmUpdate$).pipe(\r\n shareReplay({\r\n bufferSize: 1,\r\n refCount: true,\r\n })\r\n );\r\n\r\n constructor(http: HttpClient, private eventBusService: EventBusService, destinationService: DestinationService) {\r\n super(http, RopewayAlarmAdapter.adapt, destinationService);\r\n }\r\n}\r\n","import { RopewayAvailability } from 'src/app/maps/livedata/ropeway-availability.model';\r\n\r\nexport class RopewayAvailabilityAdapter {\r\n static adapt(items: any): RopewayAvailability[] {\r\n const livedata: RopewayAvailability[] = [];\r\n\r\n if (items) {\r\n items.forEach((element) => {\r\n livedata.push({\r\n tenantSisId: element.TenantSisId,\r\n ropewaySisId: element.RopewaySisId,\r\n availability: element.Availability,\r\n });\r\n });\r\n }\r\n\r\n return livedata;\r\n }\r\n}\r\n","import { HttpClient } from '@angular/common/http';\r\nimport { Injectable } from '@angular/core';\r\nimport { LivedataServiceBase } from 'src/app/core/livedata/livedata-base.service';\r\nimport { DestinationService } from 'src/app/domain/destination/destination.service';\r\nimport { Feature } from 'src/app/domain/feature/feature.model';\r\nimport { FeatureAccessLevel } from 'src/app/domain/feature/feature-access-level.model';\r\nimport { FeatureId } from 'src/app/domain/feature/feature-id.model';\r\nimport { RopewayAvailabilityAdapter } from 'src/app/maps/livedata/ropeway-availability.adapter';\r\nimport { RopewayAvailability } from 'src/app/maps/livedata/ropeway-availability.model';\r\n\r\n@Injectable({\r\n providedIn: 'root',\r\n})\r\nexport class RopewayAvailabilityService extends LivedataServiceBase {\r\n protected readonly endpointUri = 'livedata/ropewayavailability';\r\n protected readonly requiredFeatures = [\r\n new Feature(FeatureId.COCKPIT, FeatureAccessLevel.READ),\r\n new Feature(FeatureId.COCKPIT_ROPEWAY_AVAILABILITY, FeatureAccessLevel.READ),\r\n ];\r\n\r\n readonly ropewayAvailability$ = this.liveData$;\r\n\r\n constructor(http: HttpClient, destinationService: DestinationService) {\r\n super(http, RopewayAvailabilityAdapter.adapt, destinationService);\r\n }\r\n}\r\n","import { RopewayEcoModeLivedata } from 'src/app/maps/livedata/ropeway-ecomode-livedata.model';\r\nimport { SisOutdatedHelper } from 'src/app/maps/livedata/sis-outdated-helper';\r\n\r\nexport class RopewayEcoModeLivedataAdapter {\r\n static adapt(items: any): RopewayEcoModeLivedata[] {\r\n const livedata: RopewayEcoModeLivedata[] = [];\r\n\r\n if (items) {\r\n items.forEach((element) => {\r\n livedata.push({\r\n deviceSisId: element.RowKey,\r\n ecoModeEnabledPLC: element.EcoModeEnabledPLC,\r\n peoplePerMinute: element.PeoplePerMinute,\r\n targetSpeedMps: element.TargetSpeedMps,\r\n workloadPercent: Math.min(element.WorkloadPercent, 100),\r\n outdated: SisOutdatedHelper.isOutdated(element.DeviceTimestamp),\r\n });\r\n });\r\n }\r\n\r\n return livedata;\r\n }\r\n}\r\n","import { HttpClient } from '@angular/common/http';\r\nimport { Injectable } from '@angular/core';\r\nimport { LivedataServiceBase } from 'src/app/core/livedata/livedata-base.service';\r\nimport { DestinationService } from 'src/app/domain/destination/destination.service';\r\nimport { Feature } from 'src/app/domain/feature/feature.model';\r\nimport { FeatureAccessLevel } from 'src/app/domain/feature/feature-access-level.model';\r\nimport { FeatureId } from 'src/app/domain/feature/feature-id.model';\r\nimport { RopewayEcoModeLivedataAdapter } from 'src/app/maps/livedata/ropeway-ecomode-livedata.adapter';\r\nimport { RopewayEcoModeLivedata } from 'src/app/maps/livedata/ropeway-ecomode-livedata.model';\r\n\r\n@Injectable({\r\n providedIn: 'root',\r\n})\r\nexport class RopewayEcoModeLivedataService extends LivedataServiceBase {\r\n protected readonly endpointUri = 'livedata/ropewayecomode';\r\n protected readonly requiredFeatures = [\r\n new Feature(FeatureId.COCKPIT, FeatureAccessLevel.READ),\r\n new Feature(FeatureId.COCKPIT_ECOMODE, FeatureAccessLevel.READ),\r\n ];\r\n\r\n readonly ropewayEcoModeLiveData$ = this.liveData$;\r\n\r\n constructor(http: HttpClient, destinationService: DestinationService) {\r\n super(http, RopewayEcoModeLivedataAdapter.adapt, destinationService);\r\n }\r\n}\r\n","import { HttpClient } from '@angular/common/http';\r\nimport { Injectable } from '@angular/core';\r\nimport { merge } from 'rxjs';\r\nimport { map, shareReplay, withLatestFrom } from 'rxjs/operators';\r\nimport { EventBusService } from 'src/app/core/eventbus/event-bus.service';\r\nimport { UserAlarmEvent } from 'src/app/core/eventbus/events';\r\nimport { LivedataServiceBase } from 'src/app/core/livedata/livedata-base.service';\r\nimport { Alarm, AlarmLevel } from 'src/app/domain/alarm.model';\r\nimport { DestinationService } from 'src/app/domain/destination/destination.service';\r\nimport { Feature } from 'src/app/domain/feature/feature.model';\r\nimport { FeatureAccessLevel } from 'src/app/domain/feature/feature-access-level.model';\r\nimport { FeatureId } from 'src/app/domain/feature/feature-id.model';\r\nimport { RopewayAlarmAdapter } from 'src/app/maps/livedata/ropeway-alarm.adapter';\r\n\r\n@Injectable({\r\n providedIn: 'root',\r\n})\r\nexport class RopewayEfaService extends LivedataServiceBase {\r\n protected readonly endpointUri = 'livedata/ropewayefa';\r\n protected readonly requiredFeatures = [\r\n new Feature(FeatureId.COCKPIT, FeatureAccessLevel.READ),\r\n new Feature(FeatureId.COCKPIT_TELEMETRY, FeatureAccessLevel.READ),\r\n ];\r\n\r\n private readonly alarmUpdate$ = this.eventBusService.observe(UserAlarmEvent).pipe(\r\n withLatestFrom(this.liveData$, this.destinationService.selectedTenant$),\r\n map(([event, alarms, tenant]) => {\r\n if (event.alarm && tenant?.sisId === event.alarm.tenantSisId && event.alarm.level === AlarmLevel.FAULT) {\r\n const updatedAlarm = alarms.find((a) => a.code === event.alarm.code);\r\n\r\n if (updatedAlarm) {\r\n Object.assign(updatedAlarm, event.alarm);\r\n } else {\r\n alarms.push(event.alarm);\r\n }\r\n }\r\n return alarms;\r\n })\r\n );\r\n\r\n readonly efas$ = merge(this.liveData$, this.alarmUpdate$).pipe(\r\n shareReplay({\r\n bufferSize: 1,\r\n refCount: true,\r\n })\r\n );\r\n\r\n constructor(http: HttpClient, private eventBusService: EventBusService, destinationService: DestinationService) {\r\n super(http, RopewayAlarmAdapter.adapt, destinationService);\r\n }\r\n}\r\n","import { SisConverter } from 'src/app/core/utils/sis-converter';\r\nimport { RopewayLivedata } from 'src/app/maps/livedata/ropeway-livedata.model';\r\nimport { SisOutdatedHelper } from 'src/app/maps/livedata/sis-outdated-helper';\r\n\r\nexport class RopewayLivedataAdapter {\r\n static adapt(item: any): RopewayLivedata[] {\r\n const livedata: RopewayLivedata[] = [];\r\n\r\n if (item) {\r\n item.forEach((e: any) => {\r\n let vehicleData: Map;\r\n\r\n if (e.Vehicle) {\r\n vehicleData = JSON.parse(e.Vehicle);\r\n }\r\n\r\n livedata.push({\r\n deviceSisId: e.DeviceSisId,\r\n deviceTimestamp: e.DeviceTimestamp,\r\n gatewayTimestamp: e.GatewayTimestamp,\r\n actualSpeedMps: SisConverter.toNumberOrUndefined(e.ActualSpeedMps),\r\n targetSpeedMps: SisConverter.toNumberOrUndefined(e.TargetSpeedMps),\r\n ropeTensionForceKn: SisConverter.toNumberOrUndefined(e.RopeTensionForceKn),\r\n ropeTensionPressureHpa: SisConverter.toNumberOrUndefined(e.RopeTensionPressureHpa),\r\n vehicleCount: SisConverter.toNumberOrUndefined(e.VehicleCount),\r\n vehicleCountPercent: SisConverter.toNumberOrUndefined(e.VehicleCountPercent),\r\n vehicleOnTrackCount: SisConverter.toNumberOrUndefined(e.VehicleOnTrackCount),\r\n vehicleOnTrackCountPercent: SisConverter.toNumberOrUndefined(e.VehicleOnTrackCountPercent),\r\n driveMotorTorqueNm: SisConverter.toNumberOrUndefined(e.DriveMotorTorqueNm),\r\n driveMotorTorquePercent: SisConverter.toNumberOrUndefined(e.DriveMotorTorquePercent),\r\n driveMotorCurrentAmpere: SisConverter.toNumberOrUndefined(e.DriveMotorCurrentAmpere),\r\n drivePowerKw: SisConverter.toNumberOrUndefined(e.DrivePowerKw),\r\n driveGearTemperatureDegree: SisConverter.toNumberOrUndefined(e.DriveGearTemperatureDegree),\r\n ropeKm: SisConverter.toNumberOrUndefined(e.RopeKm),\r\n operatingHours: SisConverter.toNumberOrUndefined(e.OperatingHours),\r\n tripCount: SisConverter.toNumberOrUndefined(e.TripCount),\r\n vehicleData,\r\n cabinPositionMeter: SisConverter.toNumberOrUndefined(e.CabinPositionMeter),\r\n outdated: SisOutdatedHelper.isOutdated(e.GatewayTimestamp),\r\n });\r\n });\r\n }\r\n\r\n return livedata;\r\n }\r\n}\r\n","import { HttpClient } from '@angular/common/http';\r\nimport { Injectable } from '@angular/core';\r\nimport { LivedataServiceBase } from 'src/app/core/livedata/livedata-base.service';\r\nimport { DestinationService } from 'src/app/domain/destination/destination.service';\r\nimport { Feature } from 'src/app/domain/feature/feature.model';\r\nimport { FeatureAccessLevel } from 'src/app/domain/feature/feature-access-level.model';\r\nimport { FeatureId } from 'src/app/domain/feature/feature-id.model';\r\nimport { RopewayLivedataAdapter } from 'src/app/maps/livedata/ropeway-livedata.adapter';\r\nimport { RopewayLivedata } from 'src/app/maps/livedata/ropeway-livedata.model';\r\n\r\n@Injectable({\r\n providedIn: 'root',\r\n})\r\nexport class RopewayLivedataService extends LivedataServiceBase {\r\n protected readonly endpointUri = 'livedata/ropeway';\r\n protected readonly requiredFeatures = [\r\n new Feature(FeatureId.COCKPIT, FeatureAccessLevel.READ),\r\n new Feature(FeatureId.COCKPIT_TELEMETRY, FeatureAccessLevel.READ),\r\n ];\r\n\r\n readonly ropewayLiveData$ = this.liveData$;\r\n\r\n constructor(http: HttpClient, destinationService: DestinationService) {\r\n super(http, RopewayLivedataAdapter.adapt, destinationService);\r\n }\r\n}\r\n","import { SisConverter } from 'src/app/core/utils/sis-converter';\r\nimport { RopewayStatusTime } from 'src/app/maps/livedata/ropeway-status-time.model';\r\n\r\nexport class RopewayStatusTimeAdapter {\r\n static adapt(item: any): RopewayStatusTime[] {\r\n const data: RopewayStatusTime[] = [];\r\n\r\n if (item) {\r\n item.forEach((e: any) => {\r\n data.push({\r\n deviceSisId: e.DeviceSisId,\r\n startTime: SisConverter.toDateOrUndefined(e.StartTimestamp),\r\n initialStopTime: SisConverter.toDateOrUndefined(e.InitialStopTimestamp),\r\n code: e.Code,\r\n });\r\n });\r\n }\r\n\r\n return data;\r\n }\r\n}\r\n","import { HttpClient } from '@angular/common/http';\r\nimport { Injectable } from '@angular/core';\r\nimport { LivedataServiceBase } from 'src/app/core/livedata/livedata-base.service';\r\nimport { DestinationService } from 'src/app/domain/destination/destination.service';\r\nimport { Feature } from 'src/app/domain/feature/feature.model';\r\nimport { FeatureAccessLevel } from 'src/app/domain/feature/feature-access-level.model';\r\nimport { FeatureId } from 'src/app/domain/feature/feature-id.model';\r\nimport { RopewayStatusTimeAdapter } from 'src/app/maps/livedata/ropeway-status-time.adapter';\r\nimport { RopewayStatusTime } from 'src/app/maps/livedata/ropeway-status-time.model';\r\n\r\n@Injectable({\r\n providedIn: 'root',\r\n})\r\nexport class RopewayStatusTimeService extends LivedataServiceBase {\r\n protected readonly endpointUri = 'livedata/ropewaystatustime';\r\n protected readonly requiredFeatures = [new Feature(FeatureId.COCKPIT, FeatureAccessLevel.READ)];\r\n\r\n readonly ropewayStatusTimes$ = this.liveData$;\r\n\r\n constructor(http: HttpClient, destinationService: DestinationService) {\r\n super(http, RopewayStatusTimeAdapter.adapt, destinationService);\r\n }\r\n}\r\n","import { SisConverter } from 'src/app/core/utils/sis-converter';\r\nimport { RopewayStatus } from 'src/app/maps/livedata/ropeway-status.model';\r\nimport { SisOutdatedHelper } from 'src/app/maps/livedata/sis-outdated-helper';\r\n\r\nexport class RopewayStatusAdapter {\r\n static adapt(item: any): RopewayStatus[] {\r\n const livedata: RopewayStatus[] = [];\r\n\r\n if (item) {\r\n item.forEach((e: any) => {\r\n livedata.push(\r\n new RopewayStatus({\r\n deviceSisId: e.DeviceSisId,\r\n deviceTimestamp: e.DeviceTimestamp,\r\n gatewayTimestamp: e.GatewayTimestamp,\r\n status: RopewayStatus.getStatus(e.Status),\r\n active: SisConverter.toBoolean(e.Active),\r\n outdated: SisOutdatedHelper.isOutdated(e.Timestamp, 75000),\r\n })\r\n );\r\n });\r\n }\r\n\r\n return livedata;\r\n }\r\n}\r\n","import { WritablePart } from 'src/app/core/utils/type-helper';\r\n\r\nexport enum RopewayStatusType {\r\n FAULT = 'fault',\r\n ALARM = 'alarm',\r\n WARNING = 'warning',\r\n INFO = 'info',\r\n OUTDATED = 'outdated',\r\n DRIVERUNS = 'driveRuns',\r\n DRIVEREADY = 'driveReady',\r\n DRIVE_DIRECTION_FORWARD = 'driveDirectionFwd',\r\n CONTROLLERENABLED = 'controllerEnabled',\r\n CONTROLLERACTIVE = 'controllerActive',\r\n OFFLINE = 'offline',\r\n}\r\n\r\nexport class RopewayStatus {\r\n static getStatus(level: string): RopewayStatusType {\r\n switch (level) {\r\n case RopewayStatusType.ALARM:\r\n return RopewayStatusType.ALARM;\r\n case RopewayStatusType.FAULT:\r\n return RopewayStatusType.FAULT;\r\n case RopewayStatusType.INFO:\r\n return RopewayStatusType.INFO;\r\n case RopewayStatusType.WARNING:\r\n return RopewayStatusType.WARNING;\r\n case RopewayStatusType.OUTDATED:\r\n return RopewayStatusType.OUTDATED;\r\n case RopewayStatusType.DRIVERUNS:\r\n return RopewayStatusType.DRIVERUNS;\r\n case RopewayStatusType.DRIVEREADY:\r\n return RopewayStatusType.DRIVEREADY;\r\n case RopewayStatusType.DRIVE_DIRECTION_FORWARD:\r\n return RopewayStatusType.DRIVE_DIRECTION_FORWARD;\r\n case RopewayStatusType.CONTROLLERENABLED:\r\n return RopewayStatusType.CONTROLLERENABLED;\r\n default:\r\n console.error(`No RopewayStatus for ${level}`);\r\n return RopewayStatusType.ALARM;\r\n }\r\n }\r\n\r\n deviceSisId: string;\r\n deviceTimestamp: Date;\r\n gatewayTimestamp: Date;\r\n status: RopewayStatusType;\r\n active: boolean = false;\r\n outdated: boolean = false;\r\n\r\n constructor(init?: Partial>) {\r\n Object.assign(this, init);\r\n }\r\n}\r\n","import { HttpClient } from '@angular/common/http';\r\nimport { Injectable } from '@angular/core';\r\nimport { merge, Observable } from 'rxjs';\r\nimport { map, scan, shareReplay, withLatestFrom } from 'rxjs/operators';\r\nimport { LivedataServiceBase } from 'src/app/core/livedata/livedata-base.service';\r\nimport { DestinationService } from 'src/app/domain/destination/destination.service';\r\nimport { Feature } from 'src/app/domain/feature/feature.model';\r\nimport { FeatureAccessLevel } from 'src/app/domain/feature/feature-access-level.model';\r\nimport { FeatureId } from 'src/app/domain/feature/feature-id.model';\r\nimport { MasterdataService } from 'src/app/maps/domain/masterdata.service';\r\nimport { RopewayAlarmService } from 'src/app/maps/livedata/ropeway-alarm.service';\r\nimport { RopewayEfaService } from 'src/app/maps/livedata/ropeway-efa.service';\r\nimport { RopewayStatusAdapter } from 'src/app/maps/livedata/ropeway-status.adapter';\r\nimport { RopewayStatus, RopewayStatusType } from 'src/app/maps/livedata/ropeway-status.model';\r\n\r\n@Injectable({\r\n providedIn: 'root',\r\n})\r\nexport class RopewayStatusService extends LivedataServiceBase {\r\n protected readonly endpointUri = 'livedata/ropewaystatus';\r\n protected readonly requiredFeatures = [new Feature(FeatureId.COCKPIT, FeatureAccessLevel.READ)];\r\n\r\n private readonly alarmUpdate$: Observable> =\r\n this.ropewayAlarmService.alarms$.pipe(\r\n map((alarms) =>\r\n alarms.map((alarm) => {\r\n const active = alarms.some((a) => a.sisId === alarm.sisId && a.level === alarm.level && a.active === true); // ???\r\n\r\n return { sisId: alarm.sisId, statusType: alarm.level as unknown as RopewayStatusType, active };\r\n })\r\n )\r\n );\r\n\r\n private readonly efaUpdate$: Observable> =\r\n this.ropewayEfaService.efas$.pipe(\r\n map((efas) =>\r\n efas.map((efa) => ({\r\n sisId: efa.sisId,\r\n statusType: efa.level as unknown as RopewayStatusType,\r\n active: efa.active,\r\n }))\r\n )\r\n );\r\n\r\n private readonly statusUpdate$: Observable> =\r\n this.liveData$.pipe(\r\n withLatestFrom(this.masterDataService.masterData$),\r\n map(([ropewayStatusLivedata, masterData]) => {\r\n const ropewayStatuses: Array<{ sisId: string; statusType: RopewayStatusType; active: boolean }> = [];\r\n const redundantControllerStatusDatas = ropewayStatusLivedata.filter(\r\n (s) => s.status === RopewayStatusType.CONTROLLERENABLED && s.deviceSisId.includes('.')\r\n );\r\n ropewayStatusLivedata.forEach((data) => {\r\n ropewayStatuses.push({ sisId: data.deviceSisId, statusType: data.status, active: data.active });\r\n ropewayStatuses.push({\r\n sisId: data.deviceSisId,\r\n statusType: RopewayStatusType.OUTDATED,\r\n active: data.outdated,\r\n });\r\n\r\n const otherControllerStatusData = redundantControllerStatusDatas.find(\r\n (s) => s.deviceSisId === this.getDeviceSisIdFromOtherController(data.deviceSisId)\r\n );\r\n if (data.status === RopewayStatusType.CONTROLLERENABLED && otherControllerStatusData) {\r\n const controllerActiveStatus = this.getControllerActiveStatus(data, otherControllerStatusData);\r\n ropewayStatuses.push({\r\n sisId: data.deviceSisId,\r\n statusType: RopewayStatusType.CONTROLLERACTIVE,\r\n active: controllerActiveStatus,\r\n });\r\n }\r\n });\r\n if (masterData.ropeways) {\r\n masterData.ropeways.forEach((r) => {\r\n const statusData = ropewayStatusLivedata.find((l) => l.deviceSisId === r.sisId);\r\n ropewayStatuses.push({ sisId: r.sisId, statusType: RopewayStatusType.OFFLINE, active: statusData == null });\r\n });\r\n }\r\n\r\n return ropewayStatuses;\r\n })\r\n );\r\n\r\n readonly ropewayStatus$: Observable>> = merge(\r\n this.alarmUpdate$,\r\n this.efaUpdate$,\r\n this.statusUpdate$\r\n ).pipe(\r\n scan((acc, value) => {\r\n value.forEach((v) => {\r\n if (!acc.has(v.sisId)) {\r\n acc.set(v.sisId, new Map([[v.statusType, v.active]]));\r\n } else {\r\n acc.get(v.sisId).set(v.statusType, v.active);\r\n }\r\n });\r\n return acc;\r\n }, new Map>()),\r\n shareReplay({\r\n bufferSize: 1,\r\n refCount: true,\r\n })\r\n );\r\n\r\n constructor(\r\n http: HttpClient,\r\n private masterDataService: MasterdataService,\r\n destinationService: DestinationService,\r\n private ropewayAlarmService: RopewayAlarmService,\r\n private ropewayEfaService: RopewayEfaService\r\n ) {\r\n super(http, RopewayStatusAdapter.adapt, destinationService);\r\n }\r\n\r\n private getControllerActiveStatus(status: RopewayStatus, otherStatus: RopewayStatus): boolean {\r\n const isPrimaryController = status && status.deviceSisId.includes('.1');\r\n const controllerIsActive = status && status.active;\r\n const otherControllerIsActive = otherStatus && otherStatus.active;\r\n\r\n return isPrimaryController\r\n ? controllerIsActive || !otherControllerIsActive\r\n : controllerIsActive && !otherControllerIsActive;\r\n }\r\n\r\n private getDeviceSisIdFromOtherController(deviceSisId: string): string {\r\n const controllerNumber = deviceSisId.includes('.') ? Number(deviceSisId.split('.')[1]) : 0;\r\n return deviceSisId.replace(/\\..*/, `.${(controllerNumber % 2) + 1}`);\r\n }\r\n}\r\n","import { SambesiWhatsUpMessage } from 'src/app/maps/livedata/sambesi-whatsup-message.model';\r\n\r\nexport class SambesiWhatsUpMessageAdapter {\r\n static adapt(items: any): SambesiWhatsUpMessage[] {\r\n if (!items) {\r\n return [];\r\n }\r\n if (!Array.isArray(items)) {\r\n throw new Error('Error parsing Sambesi Whats Up Messages');\r\n }\r\n return items.map((item) => ({\r\n assignedPerson: item.AssignedPerson,\r\n changeType: item.ChangeType,\r\n date: new Date(item.Date),\r\n installationAbbreviation: item.InstallationAbbreviation,\r\n installationName: item.InstallationName,\r\n installationType: item.InstallationType,\r\n jobName: item.JobName,\r\n nodeName: item.NodeName,\r\n ropewaySisId: item.RopewaySisId,\r\n tenant: item.Tenant,\r\n additionalInformation: item.AdditionalInformation,\r\n timestamp: new Date(item.Timestamp),\r\n }));\r\n }\r\n}\r\n","import { HttpClient } from '@angular/common/http';\r\nimport { Injectable } from '@angular/core';\r\nimport { map, merge, Observable, shareReplay, switchMap, withLatestFrom } from 'rxjs';\r\nimport { EventBusService } from 'src/app/core/eventbus/event-bus.service';\r\nimport { SambesiWhatsUpMessagesUpdatedEvent } from 'src/app/core/eventbus/events';\r\nimport { LivedataServiceBase } from 'src/app/core/livedata/livedata-base.service';\r\nimport { DestinationService } from 'src/app/domain/destination/destination.service';\r\nimport { Feature } from 'src/app/domain/feature/feature.model';\r\nimport { FeatureAccessLevel } from 'src/app/domain/feature/feature-access-level.model';\r\nimport { FeatureId } from 'src/app/domain/feature/feature-id.model';\r\nimport { UserSettingsService } from 'src/app/domain/user-settings/user-settings.service';\r\nimport { SambesiWhatsUpMessageAdapter } from 'src/app/maps/livedata/sambesi-whatsup-message.adapter';\r\nimport { SambesiWhatsUpMessage } from 'src/app/maps/livedata/sambesi-whatsup-message.model';\r\nimport { UserMessage } from 'src/app/user-message/user-message.model';\r\nimport { UserMessageService } from 'src/app/user-message/user-message.service';\r\nimport { UserMessageColor } from 'src/app/user-message/user-message-color';\r\nimport { UserMessageIcon } from 'src/app/user-message/user-message-icon';\r\nimport { environment } from 'src/environments/environment';\r\n\r\n@Injectable({\r\n providedIn: 'root',\r\n})\r\nexport class SambesiWhatsUpService extends LivedataServiceBase {\r\n private readonly baseEndpointUrl = 'sambesi/whatsup';\r\n protected readonly requiredFeatures: Feature[] = [\r\n new Feature(FeatureId.COCKPIT, FeatureAccessLevel.READ),\r\n new Feature(FeatureId.COCKPIT_SAMBESI_WHATSUP, FeatureAccessLevel.READ),\r\n ];\r\n protected readonly endpointUri = `${this.baseEndpointUrl}/messages`;\r\n\r\n private readonly messagesLive$ = this.liveData$.pipe(\r\n map((messages) => {\r\n messages.sort(\r\n (m1, m2) => -(m1.date.getTime() - m2.date.getTime() || m1.ropewaySisId.localeCompare(m2.ropewaySisId))\r\n );\r\n return messages;\r\n })\r\n );\r\n\r\n private readonly messagesUpdated$ = this.eventBus.observe(SambesiWhatsUpMessagesUpdatedEvent).pipe(\r\n withLatestFrom(this.destinationService.selectedTenant$, this.userSettingsService.userSettings$),\r\n switchMap(([event, tenant, userSettings]) => {\r\n if (event.updateSuccessful) {\r\n if (event.changedBy === userSettings.userGuid) {\r\n const translateKey = 'sambesi.message.success';\r\n const userMessage = new UserMessage({\r\n message: translateKey,\r\n icon: UserMessageIcon.success,\r\n durationMs: 2000,\r\n position: 'top',\r\n color: UserMessageColor.green,\r\n });\r\n\r\n this.userMessageService.presentToast(userMessage);\r\n }\r\n if (event.tenantGuid === tenant.guid) {\r\n this.forceLiveDataUpdate();\r\n }\r\n } else if (event.changedBy === userSettings.userGuid) {\r\n const translateKey = 'sambesi.message.failed';\r\n const userMessage = new UserMessage({\r\n message: translateKey,\r\n icon: UserMessageIcon.failed,\r\n durationMs: 2000,\r\n position: 'top',\r\n color: UserMessageColor.red,\r\n });\r\n\r\n this.userMessageService.presentToast(userMessage);\r\n }\r\n\r\n return this.messagesLive$;\r\n })\r\n );\r\n\r\n readonly messages$ = merge(this.messagesLive$, this.messagesUpdated$).pipe(\r\n shareReplay({ bufferSize: 1, refCount: true })\r\n );\r\n\r\n readonly citrixLink$ = this.destinationService.selectedTenant$.pipe(\r\n switchMap((tenant) =>\r\n this.httpClient\r\n .get(`${environment.baseUrlApi}/${this.baseEndpointUrl}/citrix/${tenant.guid}`, { responseType: 'json' })\r\n .pipe(\r\n map((data) => {\r\n if (data == null) {\r\n return null;\r\n }\r\n if (typeof data !== 'string') {\r\n throw new Error('Expected citrix link to be string but was not');\r\n }\r\n return data;\r\n })\r\n )\r\n ),\r\n shareReplay({ bufferSize: 1, refCount: true })\r\n );\r\n\r\n constructor(\r\n private httpClient: HttpClient,\r\n destinationService: DestinationService,\r\n private eventBus: EventBusService,\r\n private userSettingsService: UserSettingsService,\r\n private userMessageService: UserMessageService\r\n ) {\r\n super(httpClient, SambesiWhatsUpMessageAdapter.adapt, destinationService);\r\n this.setInterval(3600000);\r\n }\r\n\r\n updateSambesiMessages(tenantGuid: string, ropewayGuid: string | null): Observable {\r\n return this.httpClient\r\n .post(`${environment.baseUrlApi}/${this.baseEndpointUrl}/update`, { tenantGuid, ropewayGuid })\r\n .pipe(map(() => {}));\r\n }\r\n}\r\n","import { environment } from 'src/environments/environment';\r\n\r\nexport class SisOutdatedHelper {\r\n static isOutdated(timestamp: Date, timeoutMs: number = environment.oldDataTimeout): boolean {\r\n if (timestamp == null) {\r\n return true;\r\n }\r\n\r\n const timeNowMs: number = new Date().getTime();\r\n const timestampMs: number = new Date(timestamp).getTime();\r\n\r\n return timeNowMs - timestampMs > timeoutMs;\r\n }\r\n\r\n static dateIsToday(timestamp: Date): boolean {\r\n if (timestamp == null) {\r\n return false;\r\n }\r\n\r\n const now = new Date();\r\n const isToday =\r\n timestamp.getFullYear() === now.getFullYear() &&\r\n timestamp.getMonth() === now.getMonth() &&\r\n timestamp.getDate() === now.getDate();\r\n\r\n return isToday;\r\n }\r\n}\r\n","import { TruScanData } from 'src/app/maps/livedata/truscan-data.model';\r\n\r\nexport class TruScanDataAdapter {\r\n static adapt(item: any): TruScanData[] {\r\n const livedata: TruScanData[] = [];\r\n\r\n if (item) {\r\n item.forEach((e: any) => {\r\n livedata.push({\r\n timestamp: e.Timestamp,\r\n ropeTimestamp: e.RopeTimestamp,\r\n ropeId: Number.parseInt(e.RopeId),\r\n health: e.Health,\r\n installationId: e.InstallationId,\r\n name: e.Name,\r\n ropewaySisId: e.RopewaySisId,\r\n tenantSisId: e.TenantSisId,\r\n });\r\n });\r\n }\r\n\r\n return livedata;\r\n }\r\n}\r\n","import { HttpClient } from '@angular/common/http';\r\nimport { Injectable } from '@angular/core';\r\nimport { LivedataServiceBase } from 'src/app/core/livedata/livedata-base.service';\r\nimport { DestinationService } from 'src/app/domain/destination/destination.service';\r\nimport { Feature } from 'src/app/domain/feature/feature.model';\r\nimport { FeatureAccessLevel } from 'src/app/domain/feature/feature-access-level.model';\r\nimport { FeatureId } from 'src/app/domain/feature/feature-id.model';\r\nimport { TruScanDataAdapter } from 'src/app/maps/livedata/truscan-data.adapter';\r\nimport { TruScanData } from 'src/app/maps/livedata/truscan-data.model';\r\n\r\n@Injectable({\r\n providedIn: 'root',\r\n})\r\nexport class TruScanDataService extends LivedataServiceBase {\r\n protected readonly endpointUri = 'livedata/truscan';\r\n protected readonly requiredFeatures = [\r\n new Feature(FeatureId.COCKPIT, FeatureAccessLevel.READ),\r\n new Feature(FeatureId.COCKPIT_TRUSCAN, FeatureAccessLevel.READ),\r\n ];\r\n\r\n readonly truScanDatas$ = this.liveData$;\r\n\r\n constructor(http: HttpClient, destinationService: DestinationService) {\r\n super(http, TruScanDataAdapter.adapt, destinationService);\r\n }\r\n}\r\n","import { SisConverter } from 'src/app/core/utils/sis-converter';\r\nimport { Alarm } from 'src/app/domain/alarm.model';\r\n\r\nexport class UserAlarmAdapter {\r\n static adapt(item: any): Alarm[] {\r\n const alarms: Alarm[] = [];\r\n\r\n item.forEach((e: any) => {\r\n const timestamp = e.DeviceTimestamp != null ? new Date(e.DeviceTimestamp) : new Date(e.GatewayTimestamp);\r\n alarms.push(\r\n new Alarm({\r\n sisId: e.SisId,\r\n tenantSisId: e.TenantSisId ?? e.PartitionKey,\r\n timestamp,\r\n active: SisConverter.toBoolean(e.Active),\r\n code: e.Code,\r\n info: e.Info,\r\n level: Alarm.getLevel(e.Level),\r\n text: e.Text,\r\n })\r\n );\r\n });\r\n\r\n return alarms;\r\n }\r\n}\r\n","import { Component, Input, NgZone, OnChanges, OnInit } from '@angular/core';\r\nimport { divIcon, DomUtil, latLng, LatLngExpression, LayerGroup, Marker, marker } from 'leaflet';\r\nimport { combineLatest } from 'rxjs';\r\nimport { map, take, takeUntil } from 'rxjs/operators';\r\nimport { EventBusService } from 'src/app/core/eventbus/event-bus.service';\r\nimport { MapIconClickedEvent, MapIconHoveredEvent } from 'src/app/core/eventbus/events';\r\nimport { Unsubscriber } from 'src/app/core/unsubscriber';\r\nimport { ScreenSizeService } from 'src/app/core/utils/screen-size.service';\r\nimport { DestinationService } from 'src/app/domain/destination/destination.service';\r\nimport { Feature } from 'src/app/domain/feature/feature.model';\r\nimport { FeatureAccessLevel } from 'src/app/domain/feature/feature-access-level.model';\r\nimport { FeatureId } from 'src/app/domain/feature/feature-id.model';\r\nimport { CustomMarker } from 'src/app/maps/domain/custom-marker.model';\r\nimport { CustomMarkerType } from 'src/app/maps/domain/custom-marker-type.model';\r\nimport { CustomMarkerIconService } from 'src/app/maps/map/custom-marker-layer/custom-marker-icon/custom-marker-icon.service';\r\nimport { MarkerType } from 'src/app/maps/map/marker-edit/domain/marker-type.enum';\r\nimport { MarkerEditService } from 'src/app/maps/map/marker-edit/marker-edit.service';\r\nimport { SelectedMapElementService } from 'src/app/maps/selected-map-element.service';\r\n\r\n@Component({\r\n selector: 'sis-custom-marker-icon',\r\n template: '',\r\n styleUrls: ['./custom-marker-icon.component.scss'],\r\n standalone: false\r\n})\r\nexport class CustomMarkerIconComponent extends Unsubscriber implements OnInit, OnChanges {\r\n private static readonly cssClass = 'sis-custom-marker';\r\n\r\n private readonly requiredFeature = new Feature(FeatureId.COCKPIT_WEBCAM, FeatureAccessLevel.READ);\r\n\r\n readonly camerasAvailable$ = combineLatest([this.destinationService.selectedTenantFeatures$]).pipe(\r\n map(([features]) => features.some((feature) => feature.hasMinimumRequirementFor(this.requiredFeature)))\r\n );\r\n private marker: Marker;\r\n\r\n private selected = false;\r\n private highlighted = false;\r\n\r\n @Input() layerGroup: LayerGroup;\r\n @Input() customMarker: CustomMarker;\r\n @Input() editMode: boolean;\r\n\r\n constructor(\r\n private eventBus: EventBusService,\r\n private zone: NgZone,\r\n private customMarkerIconService: CustomMarkerIconService,\r\n private screenSizeService: ScreenSizeService,\r\n private markerEditService: MarkerEditService,\r\n private selectedMapElementService: SelectedMapElementService,\r\n private destinationService: DestinationService\r\n ) {\r\n super();\r\n }\r\n\r\n ngOnInit(): void {\r\n this.camerasAvailable$.pipe(take(1)).subscribe((cameraAvailable) => {\r\n if (cameraAvailable && this.customMarker.type === CustomMarkerType.Camera) {\r\n this.loadMarkerIcon();\r\n }\r\n });\r\n }\r\n\r\n ngOnChanges(): void {\r\n if (this.marker) {\r\n this.editMode ? this.marker.dragging.enable() : this.marker.dragging.disable();\r\n }\r\n }\r\n\r\n private loadMarkerIcon(): void {\r\n this.customMarkerIconService\r\n .getIconSvgAsHtml(this.customMarker.iconName)\r\n .pipe(take(1))\r\n .subscribe((svg) => {\r\n if (this.customMarker.positionPanoMap) {\r\n const latLngMarker = latLng(this.customMarker.positionPanoMap.y, this.customMarker.positionPanoMap.x);\r\n this.marker = this.createIconMarker(latLngMarker, svg);\r\n\r\n this.layerGroup.addLayer(this.marker);\r\n\r\n this.markerEditService.register(\r\n this.marker,\r\n MarkerType.CustomMarker,\r\n this.customMarker.guid,\r\n (pos) => (this.customMarker.positionPanoMap = pos),\r\n () => this.customMarker.positionPanoMap\r\n );\r\n }\r\n });\r\n\r\n combineLatest([this.selectedMapElementService.selectedMapElement$, this.screenSizeService.landscapeMode$])\r\n .pipe(takeUntil(this.onDestroy$))\r\n .subscribe(([event, landscapeMode]) => {\r\n this.selected = event.customMarker === this.customMarker && !landscapeMode;\r\n this.setHighlight();\r\n });\r\n }\r\n\r\n private createIconMarker(latLngExpression: LatLngExpression, svgHtmlContent: string): Marker {\r\n const icon = divIcon({\r\n html: svgHtmlContent,\r\n iconSize: [44, 44],\r\n popupAnchor: [44, 44],\r\n iconAnchor: [22, 22],\r\n className: 'customMarkerIcon',\r\n });\r\n const iconMarker: Marker = marker(latLngExpression, { icon: icon });\r\n iconMarker.on('click', () => this.zone.run(() => this.onIconClick()));\r\n iconMarker.on('mouseover', () => this.zone.run(() => this.onIconHover(true)));\r\n iconMarker.on('mouseout', () => this.zone.run(() => this.onIconHover(false)));\r\n return iconMarker;\r\n }\r\n\r\n private onIconClick(): void {\r\n const clickEvent = new MapIconClickedEvent();\r\n clickEvent.customMarker = this.customMarker;\r\n this.eventBus.publish(clickEvent);\r\n }\r\n\r\n private onIconHover(hover: boolean): void {\r\n if (!this.customMarker) {\r\n return;\r\n }\r\n\r\n const event = new MapIconHoveredEvent();\r\n event.customMarker = this.customMarker;\r\n event.hover = hover;\r\n this.eventBus.publish(event);\r\n }\r\n\r\n private setHighlight(): void {\r\n const element = this.getIconMarkerElement();\r\n if (!element) {\r\n return;\r\n }\r\n\r\n const cssHighlight = '-highlight';\r\n const path = element.getElementsByClassName(CustomMarkerIconComponent.cssClass)[0];\r\n\r\n if (this.highlighted || this.selected) {\r\n path.classList.add(CustomMarkerIconComponent.cssClass + cssHighlight);\r\n } else {\r\n path.classList.remove(CustomMarkerIconComponent.cssClass + cssHighlight);\r\n }\r\n }\r\n\r\n private getIconMarkerElement(): HTMLElement {\r\n if (this.marker) {\r\n return DomUtil.get(this.marker.getElement());\r\n }\r\n\r\n return null;\r\n }\r\n}\r\n","import { HttpClient } from '@angular/common/http';\r\nimport { Injectable } from '@angular/core';\r\nimport { Observable } from 'rxjs';\r\nimport { shareReplay } from 'rxjs/operators';\r\nimport { environment } from 'src/environments/environment';\r\n\r\n@Injectable({\r\n providedIn: 'root',\r\n})\r\nexport class CustomMarkerIconService {\r\n private readonly icons = new Map>();\r\n\r\n constructor(private httpClient: HttpClient) {}\r\n\r\n getIconSvgAsHtml(iconName: string): Observable {\r\n let iconObservable = this.icons.get(iconName);\r\n\r\n if (!iconObservable) {\r\n const url = `${environment.baseUrlCockpitBlobStorage}/public-assets/icons/${iconName}.svg`;\r\n iconObservable = this.httpClient.get(url, { responseType: 'text' }).pipe(shareReplay(1));\r\n this.icons.set(iconName, iconObservable);\r\n }\r\n\r\n return iconObservable;\r\n }\r\n}\r\n","import { Component, Input } from '@angular/core';\r\nimport { LayerGroup } from 'leaflet';\r\nimport { CustomMarker } from 'src/app/maps/domain/custom-marker.model';\r\n\r\n@Component({\r\n selector: 'sis-custom-marker-layer',\r\n templateUrl: './custom-marker-layer.component.html',\r\n standalone: false\r\n})\r\nexport class CustomMarkerLayerComponent {\r\n @Input() layerGroup: LayerGroup;\r\n @Input() customMarkers: CustomMarker[];\r\n @Input() editMode: boolean;\r\n}\r\n","
\r\n
\r\n \r\n
\r\n","import { AfterViewInit, Directive, ElementRef, EventEmitter, Host, OnDestroy, Output } from '@angular/core';\r\n\r\n@Directive({\r\n selector: '[sis-enter-viewport-notifier]',\r\n standalone: false\r\n})\r\nexport class EnterTheViewportNotifierDirective implements AfterViewInit, OnDestroy {\r\n @Output() visibilityChange: EventEmitter = new EventEmitter();\r\n\r\n private observer: IntersectionObserver;\r\n\r\n constructor(@Host() private _elementRef: ElementRef) {}\r\n\r\n ngAfterViewInit(): void {\r\n const options = {\r\n root: null,\r\n rootMargin: '0px',\r\n threshold: 0.0,\r\n };\r\n\r\n this.observer = new IntersectionObserver(this.callback, options);\r\n\r\n this.observer.observe(this._elementRef.nativeElement);\r\n }\r\n\r\n ngOnDestroy() {\r\n this.observer.disconnect();\r\n }\r\n\r\n private callback = (entries: IntersectionObserverEntry[]) => {\r\n entries.forEach((entry) => {\r\n this.visibilityChange.emit(entry.isIntersecting);\r\n });\r\n };\r\n}\r\n","import 'leaflet.fullscreen';\r\n\r\nimport { Component, HostListener, NgZone, OnInit } from '@angular/core';\r\nimport { TranslateService } from '@ngx-translate/core';\r\nimport {\r\n CRS,\r\n ImageOverlay,\r\n imageOverlay,\r\n LatLng,\r\n latLng,\r\n LatLngBoundsExpression,\r\n Layer,\r\n LayerGroup,\r\n layerGroup,\r\n Map,\r\n MapOptions,\r\n} from 'leaflet';\r\nimport { combineLatest, firstValueFrom } from 'rxjs';\r\nimport { delay, map, takeUntil } from 'rxjs/operators';\r\nimport { EventBusService } from 'src/app/core/eventbus/event-bus.service';\r\nimport { MapIconClickedEvent, MapIconHoveredEvent } from 'src/app/core/eventbus/events';\r\nimport { Unsubscriber } from 'src/app/core/unsubscriber';\r\nimport { ScreenSizeService } from 'src/app/core/utils/screen-size.service';\r\nimport { DestinationService } from 'src/app/domain/destination/destination.service';\r\nimport { Feature } from 'src/app/domain/feature/feature.model';\r\nimport { FeatureAccessLevel } from 'src/app/domain/feature/feature-access-level.model';\r\nimport { FeatureId } from 'src/app/domain/feature/feature-id.model';\r\nimport { UserSettingsService } from 'src/app/domain/user-settings/user-settings.service';\r\nimport { CustomMarker } from 'src/app/maps/domain/custom-marker.model';\r\nimport { MasterData } from 'src/app/maps/domain/masterdata.model';\r\nimport { MasterdataService } from 'src/app/maps/domain/masterdata.service';\r\nimport { MeteoStation } from 'src/app/maps/domain/meteostation.model';\r\nimport { Ropeway } from 'src/app/maps/domain/ropeway.model';\r\nimport { SelectedMapElementService } from 'src/app/maps/selected-map-element.service';\r\nimport { environment } from 'src/environments/environment';\r\n\r\ndeclare let L: any;\r\n@Component({\r\n selector: 'sis-map',\r\n templateUrl: './map.component.html',\r\n styleUrls: ['./map.component.scss'],\r\n standalone: false\r\n})\r\nexport class MapComponent extends Unsubscriber implements OnInit {\r\n static readonly defaultOpacity: number = 0.9;\r\n static readonly selectedOpacity: number = 0.6;\r\n static readonly maxZoom: number = 2;\r\n\r\n private readonly requiredFeatureForMapEdit = new Feature(FeatureId.COCKPIT, FeatureAccessLevel.WRITE);\r\n\r\n private imageResX: number;\r\n private imageResY: number;\r\n private imageBounds: LatLngBoundsExpression;\r\n private masterData: MasterData;\r\n\r\n readonly canEditMap$ = combineLatest([\r\n this.userSettingsService.userSettings$,\r\n this.destinationService.selectedTenantFeatures$,\r\n ]).pipe(\r\n map(\r\n ([userSettings, features]) =>\r\n userSettings.isAdministrator &&\r\n features.some((feature) => feature.hasMinimumRequirementFor(this.requiredFeatureForMapEdit))\r\n )\r\n );\r\n\r\n drawReady = false;\r\n editMode = false;\r\n\r\n fullScreenControl: any;\r\n map: Map;\r\n ropewayLayerGroup: LayerGroup = layerGroup();\r\n meteoLayerGroup: LayerGroup = layerGroup();\r\n customMarkerLayerGroup: LayerGroup = layerGroup();\r\n ropeways: Ropeway[] = [];\r\n meteoStations: MeteoStation[] = [];\r\n customMarkers: CustomMarker[] = [];\r\n options: MapOptions;\r\n layers: Layer[];\r\n layersControl: any;\r\n center: LatLng;\r\n panomapLoaded = false;\r\n panomapOverlay: ImageOverlay;\r\n wasVisibleAtLeastOnce = false;\r\n bigScreenMode: boolean;\r\n tooltipText: string;\r\n popupVisible: boolean;\r\n\r\n constructor(\r\n private eventBus: EventBusService,\r\n private zone: NgZone,\r\n private masterdataService: MasterdataService,\r\n private translateService: TranslateService,\r\n private screenSizeService: ScreenSizeService,\r\n private userSettingsService: UserSettingsService,\r\n private destinationService: DestinationService,\r\n private selectedMapElementService: SelectedMapElementService\r\n ) {\r\n super();\r\n\r\n this.panomapOverlay = imageOverlay(\r\n '',\r\n [\r\n [0, 0],\r\n [0, 0],\r\n ],\r\n {}\r\n );\r\n\r\n this.initLeafletConfigureOptions();\r\n this.initLayers();\r\n this.initLayerControl();\r\n }\r\n\r\n ngOnInit(): void {\r\n combineLatest([this.selectedMapElementService.selectedMapElement$, this.screenSizeService.landscapeMode$])\r\n .pipe(takeUntil(this.onDestroy$))\r\n .subscribe(([event, landscapeMode]) => {\r\n if (this.map && (event.ropeway || event.meteoStation) && !landscapeMode) {\r\n this.panomapOverlay.setOpacity(MapComponent.selectedOpacity);\r\n } else {\r\n this.panomapOverlay.setOpacity(MapComponent.defaultOpacity);\r\n }\r\n });\r\n\r\n this.eventBus\r\n .observe(MapIconHoveredEvent)\r\n .pipe(\r\n map((event) => {\r\n if (event.hover) {\r\n const { ropeway, customMarker } = event;\r\n if (ropeway) {\r\n this.tooltipText = `${ropeway.fullname} (${ropeway.sisId.toUpperCase()})`;\r\n return true;\r\n }\r\n if (customMarker) {\r\n this.tooltipText = customMarker.alias;\r\n return true;\r\n }\r\n }\r\n return false;\r\n }),\r\n delay(50),\r\n takeUntil(this.onDestroy$)\r\n )\r\n .subscribe((isVisible) => {\r\n this.popupVisible = isVisible;\r\n });\r\n\r\n this.screenSizeService.bigScreenMode$\r\n .pipe(takeUntil(this.onDestroy$))\r\n .subscribe((bigScreenMode) => (this.bigScreenMode = bigScreenMode));\r\n\r\n this.onDestroy$.subscribe(() => {\r\n this.eventBus.publish(new MapIconClickedEvent());\r\n });\r\n\r\n this.masterdataService.masterData$.pipe(takeUntil(this.onDestroy$)).subscribe((masterData) => {\r\n this.masterData = masterData;\r\n if (this.masterData?.panoMapFilename?.length) {\r\n this.meteoStations = this.masterData.meteoStations;\r\n this.ropeways = this.masterData.ropeways;\r\n this.customMarkers = this.masterData.customMarkers;\r\n this.drawReady = true;\r\n } else {\r\n this.drawReady = false;\r\n }\r\n });\r\n }\r\n\r\n setMapVisibility($event: boolean): void {\r\n if ($event) {\r\n this.wasVisibleAtLeastOnce = true;\r\n }\r\n }\r\n\r\n onMapReady(map: Map): void {\r\n // https://github.com/Asymmetrik/ngx-leaflet#getting-a-reference-to-the-map\r\n this.map = map;\r\n this.setupMap();\r\n }\r\n onFitMapToView(event: MouseEvent): void {\r\n event.stopPropagation();\r\n this.fitMapToView();\r\n }\r\n onFitMapToHeight(event: MouseEvent): void {\r\n event.stopPropagation();\r\n this.fitMapToHeight();\r\n }\r\n onZoomIn(event: MouseEvent): void {\r\n event.stopPropagation();\r\n this.zoomIn();\r\n }\r\n onZoomOut(event: MouseEvent): void {\r\n event.stopPropagation();\r\n this.zoomOut();\r\n }\r\n onFullscreen(event: MouseEvent): void {\r\n event.stopPropagation();\r\n this.fullscreen();\r\n }\r\n async onEditMap(event: MouseEvent): Promise {\r\n event.stopPropagation();\r\n const canEditMap = await firstValueFrom(this.canEditMap$);\r\n if (canEditMap) {\r\n this.editMode = !this.editMode;\r\n if (this.editMode) {\r\n this.map.setMaxZoom(4);\r\n } else {\r\n this.map.setMaxZoom(MapComponent.maxZoom);\r\n }\r\n }\r\n }\r\n\r\n @HostListener('window:resize', ['$event'])\r\n onResize(e: Event) {\r\n if (e.target === window) {\r\n setTimeout(() => {\r\n this.zone.run(() => {\r\n this.adjustMinZoomToWindowSize();\r\n });\r\n }, 25);\r\n }\r\n }\r\n\r\n private adjustMinZoomToWindowSize() {\r\n const bounds: LatLngBoundsExpression = [\r\n [0, 0],\r\n [this.imageResY, 0],\r\n ];\r\n this.map.setMinZoom(-20);\r\n this.map.setMinZoom(this.map.getBoundsZoom(bounds, false));\r\n }\r\n private fitMapToView(): void {\r\n setTimeout(() => {\r\n this.zone.run(() => {\r\n this.map.fitBounds(this.imageBounds);\r\n });\r\n }, 25);\r\n }\r\n private fitMapToHeight(): void {\r\n setTimeout(() => {\r\n this.zone.run(() => {\r\n const bounds: LatLngBoundsExpression = [\r\n [0, 0],\r\n [this.imageResY, 0],\r\n ];\r\n this.adjustMinZoomToWindowSize();\r\n this.map.fitBounds(bounds);\r\n });\r\n }, 25);\r\n }\r\n private fitMapToNoBorder(): void {\r\n if (this.map.getSize().x > this.imageResX) {\r\n this.map.setView(this.center, 0.2);\r\n }\r\n }\r\n private zoomIn(): void {\r\n this.map.setZoom(this.map.getZoom() + 0.5);\r\n }\r\n private zoomOut(): void {\r\n this.map.setZoom(this.map.getZoom() - 0.5);\r\n }\r\n private fullscreen(): void {\r\n this.fullScreenControl.toggleFullScreen();\r\n this.fitMapToHeight();\r\n }\r\n private onMapClicked(): void {\r\n this.eventBus.publish(new MapIconClickedEvent());\r\n }\r\n\r\n private async setupMap(): Promise {\r\n const panoMapUrl = `${environment.baseUrlCockpitBlobStorage}/public-assets/map/${this.masterData.panoMapFilename}`;\r\n\r\n const imageDimension = await this.getImageDimension(panoMapUrl);\r\n this.imageResY = imageDimension.heigth;\r\n this.imageResX = imageDimension.width;\r\n\r\n this.imageBounds = [\r\n [0, 0],\r\n [this.imageResY, this.imageResX],\r\n ];\r\n // add the static Panorama Destination Image to the map with the bounds given by the dimension (height and width) of the image.\r\n this.panomapOverlay = imageOverlay(panoMapUrl, this.imageBounds, { opacity: MapComponent.defaultOpacity });\r\n this.layers.push(this.panomapOverlay);\r\n\r\n if (this.bigScreenMode) {\r\n this.addFullScreenControl();\r\n }\r\n\r\n this.map.setMaxBounds(this.imageBounds);\r\n this.center = latLng([this.imageResY / 2, this.imageResX / 2]);\r\n this.fitMapToHeight();\r\n\r\n this.map.addEventListener('click', () => this.zone.run(() => this.onMapClicked()));\r\n\r\n this.map.addEventListener('drag', () => this.map.panInsideBounds(this.imageBounds, { animate: false }));\r\n }\r\n\r\n private addFullScreenControl(): void {\r\n if (this.fullScreenControl) {\r\n return;\r\n }\r\n this.fullScreenControl = L.control\r\n .fullscreen({\r\n forceSeparateButton: true,\r\n })\r\n .addTo(this.map);\r\n }\r\n\r\n private initLayers(): void {\r\n // https://github.com/Asymmetrik/ngx-leaflet#add-custom-layers-base-layers-markers-shapes-etc\r\n this.layers = [layerGroup([this.ropewayLayerGroup, this.meteoLayerGroup, this.customMarkerLayerGroup])];\r\n }\r\n\r\n private initLayerControl(): void {\r\n // https://github.com/Asymmetrik/ngx-leaflet#add-a-layers-control\r\n this.updateLayerControl();\r\n this.translateService.onLangChange.pipe(takeUntil(this.onDestroy$)).subscribe(() => {\r\n this.updateLayerControl();\r\n });\r\n }\r\n\r\n private updateLayerControl(): void {\r\n this.translateService\r\n .get(['general.term.ropeways', 'map.term.meteoStations'])\r\n .pipe(takeUntil(this.onDestroy$))\r\n .subscribe((res) => {\r\n this.layersControl = {\r\n overlays: {\r\n [res['general.term.ropeways']]: this.ropewayLayerGroup,\r\n [res['map.term.meteoStations']]: this.meteoLayerGroup,\r\n },\r\n };\r\n });\r\n }\r\n\r\n private initLeafletConfigureOptions(): void {\r\n // https://github.com/Asymmetrik/ngx-leaflet#create-and-configure-a-map\r\n this.options = {\r\n crs: CRS.Simple,\r\n wheelPxPerZoomLevel: 200,\r\n zoomControl: false,\r\n zoom: 0,\r\n minZoom: -1,\r\n maxZoom: MapComponent.maxZoom,\r\n zoomSnap: 0,\r\n zoomDelta: 0.1,\r\n maxBoundsViscosity: 0.5,\r\n attributionControl: false,\r\n };\r\n }\r\n\r\n private async getImageDimension(imageUrl: string): Promise<{ heigth: number; width: number }> {\r\n return new Promise((resolve) => {\r\n if (imageUrl.split('/').pop() !== '') {\r\n const img = new Image();\r\n img.onload = (event) => {\r\n const loadedImage: any = event.currentTarget;\r\n resolve({ width: loadedImage.width, heigth: loadedImage.height });\r\n };\r\n\r\n img.src = imageUrl;\r\n } else {\r\n resolve({ width: 0, heigth: 0 });\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 {{ tooltipText }}\r\n
\r\n
\r\n\r\n","export enum MarkerType {\r\n MeteoStation = 0,\r\n CustomMarker = 1,\r\n}\r\n","import { HttpClient } from '@angular/common/http';\r\nimport { Injectable } from '@angular/core';\r\nimport { LatLng, LeafletKeyboardEvent, Marker } from 'leaflet';\r\nimport { firstValueFrom, map, Observable, withLatestFrom } from 'rxjs';\r\nimport { EventBusService } from 'src/app/core/eventbus/event-bus.service';\r\nimport { MarkerPositionUpdatedEvent } from 'src/app/core/eventbus/events';\r\nimport { UserSettingsService } from 'src/app/domain/user-settings/user-settings.service';\r\nimport { Coords } from 'src/app/maps/domain/coords.model';\r\nimport { MarkerPositionUpdatePost as MarkerPositionUpdatePost } from 'src/app/maps/map/marker-edit/domain/marker-position-update-post.model';\r\nimport { MarkerType as MarkerType } from 'src/app/maps/map/marker-edit/domain/marker-type.enum';\r\nimport { UserMessage } from 'src/app/user-message/user-message.model';\r\nimport { UserMessageService } from 'src/app/user-message/user-message.service';\r\nimport { UserMessageColor } from 'src/app/user-message/user-message-color';\r\nimport { UserMessageIcon } from 'src/app/user-message/user-message-icon';\r\nimport { environment } from 'src/environments/environment';\r\n\r\n@Injectable({\r\n providedIn: 'root',\r\n})\r\nexport class MarkerEditService {\r\n constructor(\r\n private http: HttpClient,\r\n private userSettingsService: UserSettingsService,\r\n private eventBus: EventBusService,\r\n private userMessageService: UserMessageService\r\n ) {\r\n this.eventBus\r\n .observe(MarkerPositionUpdatedEvent)\r\n .pipe(withLatestFrom(this.userSettingsService.userSettings$))\r\n .subscribe(([markerPositionUpdatedEvent, userSettings]) => {\r\n if (markerPositionUpdatedEvent.changedBy !== userSettings.userGuid) {\r\n return;\r\n }\r\n if (markerPositionUpdatedEvent.successful) {\r\n this.userMessageService.presentToast(\r\n new UserMessage({\r\n message: 'map.phrase.markerPosition.changed',\r\n icon: UserMessageIcon.success,\r\n durationMs: 3000,\r\n position: 'top',\r\n color: UserMessageColor.green,\r\n showCloseButton: false,\r\n })\r\n );\r\n } else {\r\n this.userMessageService.presentToast(\r\n new UserMessage({\r\n message: 'general.phrase.saveFailed',\r\n icon: UserMessageIcon.failed,\r\n durationMs: 3000,\r\n position: 'top',\r\n color: UserMessageColor.red,\r\n showCloseButton: false,\r\n })\r\n );\r\n }\r\n });\r\n }\r\n\r\n register(\r\n marker: Marker,\r\n markerType: MarkerType,\r\n iconGuid: string,\r\n positionUpdateCallback: (position: Coords) => void,\r\n getOldPosition: () => Coords\r\n ) {\r\n marker.addEventListener('drag', () => {\r\n const markerPos = marker.getLatLng();\r\n marker.setLatLng(new LatLng(markerPos.lat, markerPos.lng));\r\n });\r\n marker.addEventListener('keydown', (e: LeafletKeyboardEvent) => {\r\n if (e.originalEvent.key === 'Escape') {\r\n const oldPositon = getOldPosition();\r\n marker.setLatLng(new LatLng(oldPositon.y, oldPositon.x));\r\n // Reset dragging\r\n marker.dragging?.disable();\r\n marker.dragging?.enable();\r\n }\r\n });\r\n marker.addEventListener('dragend', () => {\r\n const markerPos = marker.getLatLng();\r\n marker.setLatLng(new LatLng(markerPos.lat, markerPos.lng));\r\n this.saveMarkerPosition(marker, markerType, iconGuid, positionUpdateCallback, getOldPosition);\r\n });\r\n }\r\n\r\n private async saveMarkerPosition(\r\n marker: Marker,\r\n markerType: MarkerType,\r\n markerGuid: string,\r\n positionUpdateCallback: (position: Coords) => void,\r\n getOldPosition: () => Coords\r\n ) {\r\n const isAdministrator = await firstValueFrom(\r\n this.userSettingsService.userSettings$.pipe(map((userSettings) => userSettings.isAdministrator))\r\n );\r\n\r\n if (!isAdministrator) {\r\n const oldPositon = getOldPosition();\r\n marker.setLatLng(new LatLng(oldPositon.y, oldPositon.x));\r\n return;\r\n }\r\n\r\n const markerPos = marker.getLatLng();\r\n\r\n const position: Coords = {\r\n x: markerPos.lng,\r\n y: markerPos.lat\r\n };\r\n const postData: MarkerPositionUpdatePost = {\r\n guid: markerGuid,\r\n position: `{\"x\":${position.x.toFixed(2)},\"y\":${position.y.toFixed(2)}}`,\r\n markerType: markerType,\r\n };\r\n\r\n try {\r\n await firstValueFrom(this.updateMarkerPosition(postData));\r\n positionUpdateCallback({ x: markerPos.lng, y: markerPos.lat });\r\n } catch {\r\n const oldPositon = getOldPosition();\r\n marker.setLatLng(new LatLng(oldPositon.y, oldPositon.x));\r\n\r\n this.userMessageService.presentToast(\r\n new UserMessage({\r\n message: 'general.phrase.saveFailed',\r\n icon: UserMessageIcon.failed,\r\n durationMs: 3000,\r\n position: 'top',\r\n color: UserMessageColor.red,\r\n showCloseButton: false,\r\n })\r\n );\r\n }\r\n }\r\n\r\n private updateMarkerPosition(postData: MarkerPositionUpdatePost): Observable {\r\n return this.http.post(`${environment.baseUrlApi}/marker/edit`, postData).pipe(map(() => { }));\r\n }\r\n}\r\n","import { Component, Input } from '@angular/core';\r\nimport { LayerGroup } from 'leaflet';\r\nimport { MeteoStation } from 'src/app/maps/domain/meteostation.model';\r\n\r\n@Component({\r\n selector: 'sis-meteo-layer',\r\n templateUrl: './meteo-layer.component.html',\r\n standalone: false\r\n})\r\nexport class MeteoLayerComponent {\r\n @Input() layerGroup: LayerGroup;\r\n @Input() meteoStations: MeteoStation[];\r\n @Input() editMode: boolean;\r\n}\r\n","
\r\n
\r\n \r\n
\r\n","import { Component, Input, NgZone, OnChanges, OnInit } from '@angular/core';\r\nimport { DivIcon, divIcon, DomUtil, latLng, LatLngExpression, LayerGroup, Marker, marker } from 'leaflet';\r\nimport { combineLatest, ReplaySubject } from 'rxjs';\r\nimport { map, switchMap, take, takeUntil } from 'rxjs/operators';\r\nimport { EventBusService } from 'src/app/core/eventbus/event-bus.service';\r\nimport { MapIconClickedEvent, MapIconHoveredEvent } from 'src/app/core/eventbus/events';\r\nimport { Unsubscriber } from 'src/app/core/unsubscriber';\r\nimport { ScreenSizeService } from 'src/app/core/utils/screen-size.service';\r\nimport { Alarm } from 'src/app/domain/alarm.model';\r\nimport { Coords } from 'src/app/maps/domain/coords.model';\r\nimport { MeteoStation } from 'src/app/maps/domain/meteostation.model';\r\nimport { MeteoForecastAlarmService } from 'src/app/maps/livedata/meteo-forecast-alarm.service';\r\nimport { MeteoLivedata } from 'src/app/maps/livedata/meteo-livedata.model';\r\nimport { MeteoLivedataService } from 'src/app/maps/livedata/meteo-livedata.service';\r\nimport { RopewayStatusType } from 'src/app/maps/livedata/ropeway-status.model';\r\nimport { RopewayStatusService } from 'src/app/maps/livedata/ropeway-status.service';\r\nimport { MarkerType } from 'src/app/maps/map/marker-edit/domain/marker-type.enum';\r\nimport { MarkerEditService } from 'src/app/maps/map/marker-edit/marker-edit.service';\r\nimport { WindIconService } from 'src/app/maps/map/meteo-layer/wind-icon/wind-icon.service';\r\nimport { SelectedMapElementService } from 'src/app/maps/selected-map-element.service';\r\nimport {\r\n ArrowStyle,\r\n WindDisplayCalculatorService,\r\n} from 'src/app/maps/wind-display-calculator/wind-display-calculator.service';\r\n\r\n@Component({\r\n selector: 'sis-wind-icon',\r\n template: '',\r\n styleUrls: ['./wind-icon.component.scss'],\r\n standalone: false\r\n})\r\nexport class WindIconComponent extends Unsubscriber implements OnInit, OnChanges {\r\n static readonly windMarkerPivotPoint: Coords = { x: 35, y: 35 };\r\n static readonly colorForecastNone = '#1c232a';\r\n static readonly colorForecastNormal = 'var(--ion-color-secondary)';\r\n static readonly colorForecastWarning = 'var(--ion-color-warning-shade)';\r\n\r\n windMarker: Marker;\r\n\r\n private readonly cssMeteostationColorNormal = 'sis-meteostation-normal';\r\n private readonly cssMeteostationColorWarning = 'sis-meteostation-warning';\r\n private readonly cssMeteostationColorAlarm = 'sis-meteostation-alarm';\r\n private readonly cssMeteostationColorOffline = 'sis-meteostation-offline';\r\n private readonly cssMeteostationInactive = 'sis-meteostation-inactive';\r\n\r\n private readonly markerAdded$ = new ReplaySubject(1);\r\n\r\n private selected = false;\r\n private highlighted = false;\r\n private isBig = false;\r\n private iconSize = 44;\r\n private iconSizeBig = 66;\r\n private alarms: Alarm[] = [];\r\n\r\n @Input() layerGroup: LayerGroup;\r\n @Input() meteoStation: MeteoStation;\r\n @Input() editMode: boolean;\r\n\r\n constructor(\r\n private eventBus: EventBusService,\r\n private windDisplayService: WindDisplayCalculatorService,\r\n private ropewayStatusService: RopewayStatusService,\r\n private zone: NgZone,\r\n private windIconService: WindIconService,\r\n private screenSizeService: ScreenSizeService,\r\n private meteoForecastAlarmService: MeteoForecastAlarmService,\r\n private meteoLivedataService: MeteoLivedataService,\r\n private markerEditService: MarkerEditService,\r\n private selectedMapElementService: SelectedMapElementService\r\n ) {\r\n super();\r\n }\r\n\r\n ngOnChanges(): void {\r\n if (this.windMarker) {\r\n if (this.editMode) {\r\n this.resetToDefault();\r\n this.windMarker.dragging.enable();\r\n } else {\r\n this.windMarker.dragging.disable();\r\n }\r\n }\r\n }\r\n\r\n ngOnInit(): void {\r\n this.windIconService.windIconSvgAsHtml$.pipe(take(1)).subscribe((svg) => {\r\n if (this.meteoStation.positionPanoMap) {\r\n const latLngWindMarker = latLng(this.meteoStation.positionPanoMap.y, this.meteoStation.positionPanoMap.x);\r\n\r\n const panoMapIconZoomFactor = this.meteoStation.panoMapIconZoomFactor ?? 1;\r\n this.iconSize = this.iconSize * panoMapIconZoomFactor;\r\n this.iconSizeBig = this.iconSizeBig * panoMapIconZoomFactor;\r\n\r\n this.windMarker = this.createWindMarkerIcon(latLngWindMarker, svg);\r\n this.windMarker.addEventListener('add', () => {\r\n this.setForecastColorDefault();\r\n\r\n this.markerAdded$.next();\r\n });\r\n\r\n this.layerGroup.addLayer(this.windMarker);\r\n\r\n this.markerEditService.register(\r\n this.windMarker,\r\n MarkerType.MeteoStation,\r\n this.meteoStation.guid,\r\n (pos) => (this.meteoStation.positionPanoMap = pos),\r\n () => this.meteoStation.positionPanoMap\r\n );\r\n }\r\n });\r\n\r\n combineLatest([this.selectedMapElementService.selectedMapElement$, this.screenSizeService.landscapeMode$])\r\n .pipe(takeUntil(this.onDestroy$))\r\n .subscribe(([event, landscapeMode]) => {\r\n this.selected = event.meteoStation === this.meteoStation && !landscapeMode;\r\n this.setHighlight();\r\n });\r\n\r\n this.markerAdded$\r\n .pipe(\r\n switchMap(() =>\r\n combineLatest([\r\n this.meteoLivedataService.meteoLiveDatas$,\r\n this.ropewayStatusService.ropewayStatus$.pipe(\r\n map((statusMap) => statusMap.get(this.meteoStation.ropewaySisId))\r\n ),\r\n ])\r\n ),\r\n takeUntil(this.onDestroy$)\r\n )\r\n .subscribe(([meteoLiveDatas, statusMap]) => {\r\n this.updateMeteoData(meteoLiveDatas, statusMap);\r\n });\r\n\r\n this.markerAdded$\r\n .pipe(\r\n switchMap(() => this.meteoForecastAlarmService.alarms$),\r\n takeUntil(this.onDestroy$)\r\n )\r\n .subscribe((alarms) => {\r\n this.alarms = alarms;\r\n this.updateForecastColor(alarms);\r\n });\r\n }\r\n\r\n private createWindMarkerIcon(latLngWindMarker: LatLngExpression, svgHtmlContent: string): Marker {\r\n const windIcon = divIcon({\r\n html: svgHtmlContent.replace(/width=\"[^\"]*\"/, `width=\"${this.iconSize}\"`),\r\n iconSize: [this.iconSize, this.iconSize],\r\n popupAnchor: [this.iconSize, this.iconSize],\r\n iconAnchor: [this.iconSize / 2, this.iconSize / 2],\r\n className: 'windIcon',\r\n });\r\n const windMarker: Marker = marker(latLngWindMarker, { icon: windIcon });\r\n windMarker.on('click', () => this.zone.run(() => this.onIconClick()));\r\n windMarker.on('mouseover', () => this.zone.run(() => this.createHoverEvent(true)));\r\n windMarker.on('mouseout', () => this.zone.run(() => this.createHoverEvent(false)));\r\n return windMarker;\r\n }\r\n\r\n private onIconClick(): void {\r\n const clickEvent = new MapIconClickedEvent();\r\n clickEvent.ropeway = this.meteoStation.ropeway;\r\n clickEvent.meteoStation = this.meteoStation;\r\n this.eventBus.publish(clickEvent);\r\n }\r\n\r\n private createHoverEvent(hover: boolean): void {\r\n if (!this.meteoStation?.ropeway) {\r\n return;\r\n }\r\n\r\n const event = new MapIconHoveredEvent();\r\n event.ropeway = this.meteoStation.ropeway;\r\n event.hover = hover;\r\n this.eventBus.publish(event);\r\n }\r\n\r\n private updateMeteoData(meteoLiveDatas: MeteoLivedata[], ropewayStatusMap: Map): void {\r\n if (!meteoLiveDatas || this.editMode) {\r\n this.resetToDefault();\r\n return;\r\n }\r\n\r\n const liveData = meteoLiveDatas.find((f) => f.meteoDeviceSisId === this.meteoStation.meteoDeviceSisId);\r\n if (!liveData || liveData.outdated) {\r\n this.resetToDefault();\r\n this.setVisibility(ropewayStatusMap);\r\n return;\r\n }\r\n\r\n const iconSizeUpdated = this.updateIconSize(liveData);\r\n if (iconSizeUpdated) {\r\n this.updateForecastColor(this.alarms);\r\n }\r\n\r\n const element = this.getWindMarkerElement();\r\n if (element) {\r\n this.updateWindText(liveData, element);\r\n this.updateWindDirection(liveData, element);\r\n this.updateWindWarning(liveData, element);\r\n this.updateArrows(liveData, element);\r\n this.setVisibility(ropewayStatusMap);\r\n }\r\n }\r\n\r\n private setHighlight(cssClass?: string): void {\r\n const element = this.getWindMarkerElement();\r\n if (!element) {\r\n return;\r\n }\r\n if (this.highlighted || this.selected) {\r\n const cssHighlight = '-highlight';\r\n const status = cssClass ? cssClass : element.getElementsByClassName('wind-warning')[0].classList.item(1);\r\n const windDirectionLayers: Element[] = [\r\n element.getElementsByClassName('wind-direction-none')[0],\r\n element.getElementsByClassName('wind-direction')[0],\r\n element.getElementsByClassName('wind-direction-cross')[0],\r\n ];\r\n if (this.highlighted) {\r\n windDirectionLayers.forEach((windDirectionLayer) => {\r\n windDirectionLayer.classList.remove(\r\n this.cssMeteostationColorNormal + cssHighlight,\r\n this.cssMeteostationColorWarning + cssHighlight,\r\n this.cssMeteostationColorAlarm + cssHighlight,\r\n this.cssMeteostationColorOffline + cssHighlight\r\n );\r\n });\r\n this.highlighted = !this.highlighted;\r\n }\r\n if (this.selected) {\r\n windDirectionLayers.forEach((windDirectionLayer) => {\r\n windDirectionLayer.classList.add(status + cssHighlight);\r\n });\r\n this.highlighted = !this.highlighted;\r\n }\r\n }\r\n }\r\n\r\n private updateWindText(liveData: MeteoLivedata, element: HTMLElement): void {\r\n const windSpeed = this.windDisplayService.getWindSpeed(liveData);\r\n element.getElementsByClassName('wind-speed')[0].innerHTML = windSpeed;\r\n element.style.zIndex = liveData.windSpeedKmh === undefined ? '0' : windSpeed;\r\n }\r\n\r\n private updateWindDirection(liveData: MeteoLivedata, element: HTMLElement): void {\r\n const rotationElements = element.querySelectorAll('.wind-direction-cross,.wind-direction');\r\n rotationElements.forEach((rotationElement: Element) => {\r\n rotationElement.setAttribute(\r\n 'transform',\r\n this.windDisplayService.getRotationTransform(\r\n liveData,\r\n this.meteoStation.directionOffsetPanoMap,\r\n this.meteoStation.directionOffsetNorth,\r\n WindIconComponent.windMarkerPivotPoint\r\n )\r\n ); // transform svg\r\n });\r\n }\r\n\r\n private updateWindWarning(liveData: MeteoLivedata, element: HTMLElement): void {\r\n const windWarningElement = element.getElementsByClassName('wind-warning')[0];\r\n const config = this.meteoStation.configuration?.find((f) => f.configKey === 'windSpeedKmh');\r\n const windWarnColor = this.windDisplayService.getColor(liveData, config);\r\n this.removeOldCssClass(windWarningElement);\r\n this.setNewClass(windWarningElement, windWarnColor);\r\n }\r\n\r\n private removeOldCssClass(element: Element): void {\r\n element.classList.remove(\r\n this.cssMeteostationColorNormal,\r\n this.cssMeteostationColorWarning,\r\n this.cssMeteostationColorAlarm,\r\n this.cssMeteostationColorOffline\r\n );\r\n }\r\n\r\n private setNewClass(element: Element, cssClass: string): void {\r\n this.setHighlight(cssClass);\r\n element.classList.add(cssClass);\r\n }\r\n\r\n private updateArrows(liveData: MeteoLivedata, element: Element): void {\r\n const arrowStyle = this.windDisplayService.getArrowStyle(liveData, this.meteoStation);\r\n this.applyArrowStyle(arrowStyle, element);\r\n }\r\n\r\n private updateIconSize(liveData: MeteoLivedata): boolean {\r\n const windSpeed = liveData.windSpeedKmh;\r\n const icon: DivIcon = this.windMarker.getIcon();\r\n const html = icon.options.html.toString();\r\n\r\n const windThreshold =\r\n this.meteoStation.configuration?.find((f) => f.configKey === 'windSpeedKmh')?.warnRangeHigh ??\r\n WindDisplayCalculatorService.defaultWarnRangeHigh;\r\n\r\n if ((windSpeed < windThreshold || windSpeed === undefined) && this.isBig) {\r\n this.isBig = false;\r\n this.windMarker.setIcon(\r\n divIcon({\r\n html: html.replace(/width=\"[^\"]*\"/, `width=\"${this.iconSize}\"`),\r\n iconAnchor: [this.iconSize / 2, this.iconSize / 2],\r\n iconSize: [this.iconSize, this.iconSize],\r\n className: 'windIcon',\r\n })\r\n );\r\n\r\n return true;\r\n }\r\n if (windSpeed >= windThreshold && !this.isBig) {\r\n this.isBig = true;\r\n this.windMarker.setIcon(\r\n divIcon({\r\n html: html.replace(/width=\"[^\"]*\"/, `width=\"${this.iconSize + 16}\"`),\r\n iconAnchor: [(this.iconSize + 16) / 2, (this.iconSize + 16) / 2],\r\n iconSize: [this.iconSize + 16, this.iconSize + 16],\r\n className: 'windIcon',\r\n })\r\n );\r\n return true;\r\n }\r\n\r\n return false;\r\n }\r\n\r\n private applyArrowStyle(arrowStyle: ArrowStyle, element: Element): void {\r\n const elemDirCross = element.getElementsByClassName('wind-direction-cross')[0];\r\n const elemDir = element.getElementsByClassName('wind-direction')[0];\r\n const elemNone = element.getElementsByClassName('wind-direction-none')[0];\r\n switch (arrowStyle) {\r\n case ArrowStyle.ONE:\r\n elemDirCross.setAttribute('display', 'none');\r\n elemDir.setAttribute('display', 'inline');\r\n elemNone.setAttribute('display', 'none');\r\n return;\r\n case ArrowStyle.TWO:\r\n elemDirCross.setAttribute('display', 'inline');\r\n elemDir.setAttribute('display', 'none');\r\n elemNone.setAttribute('display', 'none');\r\n return;\r\n default:\r\n elemDirCross.setAttribute('display', 'none');\r\n elemDir.setAttribute('display', 'none');\r\n elemNone.setAttribute('display', 'inline');\r\n return;\r\n }\r\n }\r\n\r\n private updateForecastColor(meteoForecastAlarms: Alarm[]): void {\r\n if (meteoForecastAlarms && this.meteoStation) {\r\n const alarmsForThisMeteoStation = meteoForecastAlarms.filter(\r\n (a) => a.sisId === this.meteoStation.meteoDeviceSisId\r\n );\r\n if (alarmsForThisMeteoStation) {\r\n if (alarmsForThisMeteoStation.find((a) => a.active)) {\r\n this.setForecastColor(WindIconComponent.colorForecastWarning, this.getWindMarkerElement());\r\n } else {\r\n this.setForecastColorDefault();\r\n }\r\n }\r\n }\r\n }\r\n\r\n private setForecastColor(color: string, element: Element): void {\r\n if (element) {\r\n const colorElements = element.querySelectorAll('.wind-direction-cross,.wind-direction,.wind-direction-none');\r\n if (colorElements) {\r\n colorElements.forEach((c) => c.setAttribute('fill', color));\r\n }\r\n }\r\n }\r\n\r\n private setForecastColorDefault(): void {\r\n const element = this.getWindMarkerElement();\r\n const color =\r\n this.meteoStation && this.meteoStation.hasForecast\r\n ? WindIconComponent.colorForecastNormal\r\n : WindIconComponent.colorForecastNone;\r\n\r\n this.setForecastColor(color, element);\r\n }\r\n\r\n private getWindMarkerElement(): HTMLElement {\r\n if (this.windMarker) {\r\n return DomUtil.get(this.windMarker.getElement());\r\n }\r\n\r\n return null;\r\n }\r\n\r\n private resetToDefault(): void {\r\n const element = this.getWindMarkerElement();\r\n if (!element) {\r\n return;\r\n }\r\n\r\n const windWarningElement = element.getElementsByClassName('wind-warning')[0];\r\n this.removeOldCssClass(windWarningElement);\r\n this.setNewClass(windWarningElement, this.cssMeteostationColorOffline);\r\n\r\n const rotationElements = element.querySelectorAll('.wind-direction-cross,.wind-direction');\r\n rotationElements.forEach((rotationElement: Element) => {\r\n rotationElement.setAttribute('transform', '');\r\n });\r\n element.style.zIndex = '0';\r\n element.getElementsByClassName('wind-speed')[0].innerHTML = WindDisplayCalculatorService.windSpeedUnknown;\r\n this.applyArrowStyle(ArrowStyle.NONE, element);\r\n }\r\n\r\n private isControllerActive(ropewayStatusMap: Map): boolean {\r\n return !(ropewayStatusMap && ropewayStatusMap.get(RopewayStatusType.CONTROLLERACTIVE) === false);\r\n }\r\n\r\n private setVisibility(ropewayStatusMap: Map): void {\r\n const element = this.getWindMarkerElement();\r\n const active = this.isControllerActive(ropewayStatusMap);\r\n if (!element?.classList) {\r\n return;\r\n }\r\n if (active) {\r\n element.classList.remove(this.cssMeteostationInactive);\r\n } else {\r\n element.classList.add(this.cssMeteostationInactive);\r\n }\r\n }\r\n}\r\n","import { HttpClient } from '@angular/common/http';\r\nimport { Injectable } from '@angular/core';\r\nimport { Observable } from 'rxjs';\r\nimport { shareReplay } from 'rxjs/operators';\r\nimport { environment } from 'src/environments/environment';\r\n\r\n@Injectable({\r\n providedIn: 'root',\r\n})\r\nexport class WindIconService {\r\n readonly windIconSvgAsHtml$: Observable = this.httpClient\r\n .get(`${environment.baseUrlCockpitBlobStorage}/public-assets/icons/sis-wind-icon.svg`, { responseType: 'text' })\r\n .pipe(shareReplay(1));\r\n \r\n constructor(private httpClient: HttpClient) {}\r\n}\r\n","import { Component, Input } from '@angular/core';\r\nimport { LayerGroup } from 'leaflet';\r\nimport { Unsubscriber } from 'src/app/core/unsubscriber';\r\nimport { Ropeway } from 'src/app/maps/domain/ropeway.model';\r\n\r\n@Component({\r\n selector: 'sis-ropeway-layer',\r\n templateUrl: './ropeway-layer.component.html',\r\n styleUrls: ['./ropeway-layer.component.scss'],\r\n standalone: false\r\n})\r\nexport class RopewayLayerComponent extends Unsubscriber {\r\n @Input() layerGroup: LayerGroup;\r\n @Input() ropeways: Ropeway[] = [];\r\n}\r\n","
\r\n\r\n","export class RopewayCssClassNames {\r\n static readonly cssRopewayRunning = 'sis-ropeway-running';\r\n static readonly cssRopewayDriveReady = 'sis-ropeway-driveready';\r\n static readonly cssRopewayDefault = 'sis-ropeway-default';\r\n static readonly cssRopewayOutdated = 'sis-ropeway-outdated';\r\n static readonly cssRopewayOffline = 'sis-ropeway-offline';\r\n static readonly cssRopewayAlarm = 'sis-ropeway-alarm';\r\n static readonly cssRopewayInvisible = 'sis-ropeway-invisible';\r\n static readonly cssRopewayClickable = 'sis-ropeway-clickable';\r\n\r\n static readonly cssRopewayInactive = 'sis-ropeway-inactive';\r\n\r\n static readonly cssBorder = '-border';\r\n static readonly cssHighlight = '-highlight';\r\n}\r\n","import '@elfalem/leaflet-curve';\r\n\r\nimport { parseCurveCoords } from 'src/app/core/leaflet-helper/curve-coords';\r\nimport { L } from 'src/app/core/leaflet-helper/leaflet-curve-declaration';\r\nimport { Ropeway } from 'src/app/maps/domain/ropeway.model';\r\nimport { RopewayCssClassNames } from 'src/app/maps/map/ropeway-layer/ropeway-line/ropeway-css-classnames';\r\n\r\nexport class RopewayCurve {\r\n line: any;\r\n highlight: any;\r\n border: any;\r\n clickable: any;\r\n\r\n private defaultWeight = 6;\r\n\r\n constructor(private ropeway: Ropeway) {}\r\n\r\n create(ropewayGroup: L.LayerGroup): void {\r\n const coords = parseCurveCoords(this.ropeway.pathPanoMap);\r\n\r\n // ropeway itself\r\n this.line = L.curve(coords, {\r\n interactive: true,\r\n weight: this.defaultWeight,\r\n className: RopewayCssClassNames.cssRopewayDefault,\r\n });\r\n\r\n // ropeway highlight behind border one for increased visibility when selected\r\n this.highlight = L.curve(coords, {\r\n interactive: true,\r\n weight: this.line.options.weight * 2.5,\r\n opacity: 0,\r\n className: RopewayCssClassNames.cssRopewayInvisible,\r\n });\r\n\r\n // Bigger invisible ropeway line on top of visible one for increased click tolerance\r\n this.clickable = L.curve(coords, {\r\n interactive: true,\r\n bubblingMouseEvents: false,\r\n fill: false,\r\n weight: this.line.options.weight * 6,\r\n opacity: 0,\r\n className: RopewayCssClassNames.cssRopewayClickable,\r\n });\r\n\r\n // ropeway border behind visible one for increased visibility\r\n this.border = L.curve(coords, {\r\n interactive: true,\r\n weight: this.line.options.weight + 5,\r\n className: RopewayCssClassNames.cssRopewayDefault + RopewayCssClassNames.cssBorder,\r\n });\r\n\r\n ropewayGroup.addLayer(this.highlight);\r\n ropewayGroup.addLayer(this.border);\r\n ropewayGroup.addLayer(this.line);\r\n ropewayGroup.addLayer(this.clickable);\r\n }\r\n\r\n getRopewayElements(): any[] {\r\n return [this.highlight.getElement(), this.border.getElement(), this.line.getElement(), this.clickable.getElement()];\r\n }\r\n}\r\n","import { Component, Input, NgZone, OnInit } from '@angular/core';\r\nimport { LayerGroup } from 'leaflet';\r\nimport { combineLatest } from 'rxjs';\r\nimport { filter, map, startWith, takeUntil } from 'rxjs/operators';\r\nimport { EventBusService } from 'src/app/core/eventbus/event-bus.service';\r\nimport { DeviceListHoverEvent, MapIconClickedEvent, MapIconHoveredEvent } from 'src/app/core/eventbus/events';\r\nimport { Unsubscriber } from 'src/app/core/unsubscriber';\r\nimport { ScreenSizeService } from 'src/app/core/utils/screen-size.service';\r\nimport { Ropeway } from 'src/app/maps/domain/ropeway.model';\r\nimport { RopewayStatusType } from 'src/app/maps/livedata/ropeway-status.model';\r\nimport { RopewayStatusService } from 'src/app/maps/livedata/ropeway-status.service';\r\nimport { RopewayCssClassNames } from 'src/app/maps/map/ropeway-layer/ropeway-line/ropeway-css-classnames';\r\nimport { RopewayCurve } from 'src/app/maps/map/ropeway-layer/ropeway-line/ropeway-curve';\r\nimport { RopewayPolyLine } from 'src/app/maps/map/ropeway-layer/ropeway-line/ropeway-polyline';\r\nimport { SelectedMapElementService } from 'src/app/maps/selected-map-element.service';\r\n\r\n@Component({\r\n selector: 'sis-ropeway-line',\r\n template: '',\r\n styleUrls: ['./ropeway-line.component.scss'],\r\n standalone: false\r\n})\r\nexport class RopewayLineComponent extends Unsubscriber implements OnInit {\r\n static readonly ropewayLines: Map = new Map();\r\n\r\n lineOrCurve: RopewayPolyLine | RopewayCurve;\r\n bigScreenMode: boolean;\r\n\r\n @Input() layerGroup: LayerGroup;\r\n @Input() ropeway: Ropeway;\r\n\r\n constructor(\r\n private eventBus: EventBusService,\r\n private ropewayStatusService: RopewayStatusService,\r\n private zone: NgZone,\r\n private screenSizeService: ScreenSizeService,\r\n private selectedMapElementService: SelectedMapElementService\r\n ) {\r\n super();\r\n }\r\n\r\n ngOnInit(): void {\r\n this.screenSizeService.bigScreenMode$\r\n .pipe(takeUntil(this.onDestroy$))\r\n .subscribe((bigScreenMode) => (this.bigScreenMode = bigScreenMode));\r\n\r\n if (this.ropeway) {\r\n RopewayLineComponent.ropewayLines.set(this.ropeway.sisId, this);\r\n this.initRopewayLayer();\r\n }\r\n }\r\n\r\n private initRopewayLayer() {\r\n if (!this.ropeway?.pathPanoMap?.length) {\r\n return;\r\n }\r\n\r\n this.drawLineOrCurve(this.ropeway);\r\n this.lineOrCurve.line.addEventListener('add', () => {\r\n this.observeUpdateEvents();\r\n });\r\n }\r\n\r\n private observeUpdateEvents() {\r\n combineLatest([\r\n this.ropewayStatusService.ropewayStatus$.pipe(map((statusMap) => statusMap.get(this.ropeway.sisId))),\r\n this.eventBus.observe(DeviceListHoverEvent).pipe(\r\n filter((event) => this.getShortSisId() === event.deviceSisId.split('.')[0]),\r\n map((event) => event.hover),\r\n startWith(false)\r\n ),\r\n combineLatest([this.selectedMapElementService.selectedMapElement$, this.screenSizeService.landscapeMode$]).pipe(\r\n map(([event, landScapeMode]) => {\r\n const shortSisId = this.getShortSisId();\r\n const clickedRopewayWithShortSisId = event.ropeway?.sisId?.split('.')[0] === shortSisId;\r\n const clickedMeteoStationOnRopewayWithShortSisId =\r\n event.meteoStation?.ropewaySisId?.split('.')[0] === shortSisId;\r\n\r\n return !landScapeMode && (clickedRopewayWithShortSisId || clickedMeteoStationOnRopewayWithShortSisId);\r\n }),\r\n startWith(false)\r\n ),\r\n ])\r\n .pipe(takeUntil(this.onDestroy$))\r\n .subscribe(([ropewayStatusTypeMap, hover, selected]) => {\r\n this.updateRopewayLine(ropewayStatusTypeMap, hover || selected);\r\n });\r\n }\r\n\r\n private drawLineOrCurve(ropeway: Ropeway) {\r\n this.lineOrCurve = ropeway.pathPanoMap[0] === 'M' ? new RopewayCurve(ropeway) : new RopewayPolyLine(ropeway);\r\n\r\n this.lineOrCurve.create(this.layerGroup);\r\n\r\n this.lineOrCurve.clickable.options.bubblingMouseEvents = false;\r\n this.lineOrCurve.clickable.on('click', () => this.zone.run(() => this.onClick()));\r\n this.lineOrCurve.clickable.on('mouseover', () => this.zone.run(() => this.createHoverEvent(true)));\r\n this.lineOrCurve.clickable.on('mouseout', () => this.zone.run(() => this.createHoverEvent(false)));\r\n }\r\n\r\n private onClick(): void {\r\n const clickEvent = new MapIconClickedEvent();\r\n clickEvent.ropeway = this.ropeway;\r\n this.eventBus.publish(clickEvent);\r\n }\r\n\r\n private createHoverEvent(hover: boolean): void {\r\n if (!this.ropeway) {\r\n return;\r\n }\r\n\r\n const event = new MapIconHoveredEvent();\r\n event.ropeway = this.ropeway;\r\n event.hover = hover;\r\n this.eventBus.publish(event);\r\n }\r\n\r\n private updateRopewayLine(ropewayStatusTypeMap: Map, highlight: boolean): void {\r\n const cssClass = this.getColorClass(ropewayStatusTypeMap);\r\n if (this.lineOrCurve.line.getElement()) {\r\n this.lineOrCurve.line.getElement().setAttribute('class', cssClass);\r\n }\r\n if (this.lineOrCurve.border.getElement()) {\r\n this.lineOrCurve.border.getElement().setAttribute('class', cssClass + RopewayCssClassNames.cssBorder);\r\n }\r\n\r\n const active = this.isControllerActive(ropewayStatusTypeMap);\r\n\r\n this.setHighlight(active, cssClass, highlight);\r\n this.setVisibility(active);\r\n }\r\n\r\n private getColorClass(ropewayStatusTypeMap: Map): string {\r\n if (!ropewayStatusTypeMap) {\r\n return RopewayCssClassNames.cssRopewayDefault;\r\n }\r\n if (ropewayStatusTypeMap.get(RopewayStatusType.OFFLINE)) {\r\n return RopewayCssClassNames.cssRopewayOffline;\r\n }\r\n if (ropewayStatusTypeMap.get(RopewayStatusType.OUTDATED) || !ropewayStatusTypeMap.has(RopewayStatusType.OUTDATED)) {\r\n return RopewayCssClassNames.cssRopewayOutdated;\r\n }\r\n if (ropewayStatusTypeMap.get(RopewayStatusType.FAULT)) {\r\n return RopewayCssClassNames.cssRopewayAlarm;\r\n }\r\n if (ropewayStatusTypeMap.get(RopewayStatusType.DRIVERUNS)) {\r\n return RopewayCssClassNames.cssRopewayRunning;\r\n }\r\n return RopewayCssClassNames.cssRopewayDriveReady;\r\n }\r\n\r\n private setHighlight(controllerActive: boolean, cssClass: string, highlight: boolean): void {\r\n if (!controllerActive) {\r\n return;\r\n }\r\n const highlightDiv = this.lineOrCurve.highlight.getElement();\r\n if (!highlightDiv) {\r\n return;\r\n }\r\n if (highlight) {\r\n highlightDiv.setAttribute('class', cssClass + RopewayCssClassNames.cssHighlight);\r\n } else {\r\n highlightDiv.setAttribute('class', RopewayCssClassNames.cssRopewayInvisible);\r\n }\r\n }\r\n\r\n private isControllerActive(ropewayStatusTypeMap: Map): boolean {\r\n return !(ropewayStatusTypeMap && ropewayStatusTypeMap.get(RopewayStatusType.CONTROLLERACTIVE) === false);\r\n }\r\n\r\n private setVisibility(controllerActive: boolean): void {\r\n const elements = this.lineOrCurve.getRopewayElements();\r\n elements.forEach((el) => {\r\n if (el) {\r\n if (controllerActive) {\r\n el.classList.remove(RopewayCssClassNames.cssRopewayInactive);\r\n } else {\r\n el.classList.add(RopewayCssClassNames.cssRopewayInactive);\r\n }\r\n }\r\n });\r\n }\r\n\r\n private getShortSisId(): string {\r\n return this.ropeway.sisId?.split('.')[0];\r\n }\r\n}\r\n","import { LayerGroup, Polyline } from 'leaflet';\r\nimport { Ropeway } from 'src/app/maps/domain/ropeway.model';\r\nimport { RopewayCssClassNames } from 'src/app/maps/map/ropeway-layer/ropeway-line/ropeway-css-classnames';\r\n\r\nexport class RopewayPolyLine {\r\n line: Polyline;\r\n highlight: Polyline;\r\n border: Polyline;\r\n clickable: Polyline;\r\n\r\n constructor(private ropeway: Ropeway) {}\r\n\r\n create(ropewayGroup: LayerGroup): void {\r\n const coords = this.getCoordsOfRopewayPolyline(this.ropeway);\r\n\r\n // ropeway highlight behind border one for increased visibility when selected\r\n this.highlight = this.createPolyline(coords, RopewayCssClassNames.cssRopewayInvisible);\r\n\r\n // ropeway border behind visible one for increased visibility\r\n this.border = this.createPolyline(coords, RopewayCssClassNames.cssRopewayDefault + RopewayCssClassNames.cssBorder);\r\n\r\n // ropeway itself\r\n this.line = this.createPolyline(coords, RopewayCssClassNames.cssRopewayDefault);\r\n\r\n // Bigger invisible ropeway line on top of visible one for increased click tolerance\r\n this.clickable = this.createPolyline(coords, RopewayCssClassNames.cssRopewayClickable);\r\n\r\n ropewayGroup.addLayer(this.highlight);\r\n ropewayGroup.addLayer(this.border);\r\n ropewayGroup.addLayer(this.line);\r\n ropewayGroup.addLayer(this.clickable);\r\n }\r\n\r\n private createPolyline(coords: any[], cssClassName: string) {\r\n const polyline = new Polyline(coords, {\r\n interactive: true,\r\n className: cssClassName,\r\n });\r\n return polyline;\r\n }\r\n\r\n // Get coords of the ropeway polyline (\"y1,x1|y2,x2|...\") from the ropeway masterdata to an array ([\"y1\",\"x1\"] [\"y2\",\"x2\"] [...])\r\n private getCoordsOfRopewayPolyline(ropeway: Ropeway) {\r\n const coords = [];\r\n const splittedCoords = ropeway.pathPanoMap.split('|');\r\n for (const i of splittedCoords) {\r\n coords.push(i.split(','));\r\n }\r\n return coords;\r\n }\r\n\r\n getRopewayElements(): Element[] {\r\n return [this.line.getElement(), this.border.getElement(), this.highlight.getElement(), this.clickable.getElement()];\r\n }\r\n}\r\n","import { ScrollingModule } from '@angular/cdk/scrolling';\r\nimport { CommonModule } from '@angular/common';\r\nimport { CUSTOM_ELEMENTS_SCHEMA, NgModule } from '@angular/core';\r\nimport { FormsModule, ReactiveFormsModule } from '@angular/forms';\r\nimport { MatIconModule } from '@angular/material/icon';\r\nimport { MatTooltipModule } from '@angular/material/tooltip';\r\nimport { RouterModule, Routes } from '@angular/router';\r\nimport { LeafletModule } from '@bluehalo/ngx-leaflet';\r\nimport { IonicModule } from '@ionic/angular';\r\nimport { TranslateModule } from '@ngx-translate/core';\r\nimport { ChartModule, HIGHCHARTS_MODULES } from 'angular-highcharts';\r\nimport * as more from 'highcharts/highcharts-more.src';\r\nimport * as exporting from 'highcharts/modules/exporting.src';\r\nimport * as nodata from 'highcharts/modules/no-data-to-display.src';\r\nimport { BottomDrawerModule } from 'src/app/bottom-drawer/bottom-drawer.module';\r\nimport { CoreModule } from 'src/app/core/core.module';\r\nimport { DetailsDrawerComponent } from 'src/app/maps/details-drawer/details-drawer.component';\r\nimport { CustomMarkerIconComponent } from 'src/app/maps/map/custom-marker-layer/custom-marker-icon/custom-marker-icon.component';\r\nimport { CustomMarkerLayerComponent } from 'src/app/maps/map/custom-marker-layer/custom-marker-layer.component';\r\nimport { EnterTheViewportNotifierDirective } from 'src/app/maps/map/enter-viewport-notifier.directive';\r\nimport { MapComponent } from 'src/app/maps/map/map.component';\r\nimport { MeteoLayerComponent } from 'src/app/maps/map/meteo-layer/meteo-layer.component';\r\nimport { WindIconComponent } from 'src/app/maps/map/meteo-layer/wind-icon/wind-icon.component';\r\nimport { RopewayLayerComponent } from 'src/app/maps/map/ropeway-layer/ropeway-layer.component';\r\nimport { RopewayLineComponent } from 'src/app/maps/map/ropeway-layer/ropeway-line/ropeway-line.component';\r\nimport { MapsPage } from 'src/app/maps/maps.page';\r\nimport { ModalPopupComponent } from 'src/app/maps/modal-popup/modal-popup.component';\r\nimport { WidgetListComponent } from 'src/app/maps/widget-list/widget-list.component';\r\nimport { ControllerSelectorComponent } from 'src/app/maps/widget-sidepane/controller-selector/controller-selector.component';\r\nimport { SidepaneAlarmlistComponent } from 'src/app/maps/widget-sidepane/sidepane-alarmlist/sidepane-alarmlist.component';\r\nimport { SidepaneAlarmlistItemComponent } from 'src/app/maps/widget-sidepane/sidepane-alarmlist/sidepane-alarmlist-item/sidepane-alarmlist-item.component';\r\nimport { WebcamComponent } from 'src/app/maps/widget-sidepane/webcam/webcam.component';\r\nimport { WebcamModalComponent } from 'src/app/maps/widget-sidepane/webcam/webcam-modal/webcam-modal.component';\r\nimport { WidgetSidepaneComponent } from 'src/app/maps/widget-sidepane/widget-sidepane.component';\r\nimport { AbbSmartSensorWidgetComponent } from 'src/app/maps/widgets/abbsmartsensor-widget/abbsmartsensor-widget.component';\r\nimport { AlarmWidgetComponent } from 'src/app/maps/widgets/alarm-widget/alarm-widget.component';\r\nimport { CabinPositionWidgetComponent } from 'src/app/maps/widgets/cabinposition-widget/cabinposition-widget.component';\r\nimport { CarriagetiltWidgetComponent } from 'src/app/maps/widgets/carriagetilt-widget/carriagetilt-widget.component';\r\nimport { ChartSettings } from 'src/app/maps/widgets/charts/chart-settings.model';\r\nimport { IcingChartComponent } from 'src/app/maps/widgets/charts/icing-chart/icing-chart.component';\r\nimport { RopewayChartComponent } from 'src/app/maps/widgets/charts/ropeway-chart/ropeway-chart.component';\r\nimport { RopewayEnergyChartComponent } from 'src/app/maps/widgets/charts/ropeway-energy-chart/ropeway-energy-chart.component';\r\nimport { SpeedChartComponent } from 'src/app/maps/widgets/charts/speed-chart/speed-chart.component';\r\nimport { TemperatureChartComponent } from 'src/app/maps/widgets/charts/temperature-chart/temperature-chart.component';\r\nimport { TorqueChartComponent } from 'src/app/maps/widgets/charts/torque-chart/torque-chart.component';\r\nimport { WetBulbChartComponent } from 'src/app/maps/widgets/charts/wet-bulb-chart/wet-bulb-chart.component';\r\nimport { WindChartComponent } from 'src/app/maps/widgets/charts/wind-chart/wind-chart.component';\r\nimport { ClampingCountWidgetComponent } from 'src/app/maps/widgets/clampingcount-widget/clampingcount-widget.component';\r\nimport { DestinationAlarmWidgetComponent } from 'src/app/maps/widgets/destination-alarm-widget/destination-alarm-widget.component';\r\nimport { AbbSmartSensorDetailViewComponent } from 'src/app/maps/widgets/detailviews/abbsmartsensor-detailview/abbsmartsensor-detailview.component';\r\nimport { AbbSmartSensorItemComponent } from 'src/app/maps/widgets/detailviews/abbsmartsensor-detailview/abbsmartsensor-item/abbsmartsensor-item.component';\r\nimport { AlarmDetailViewComponent } from 'src/app/maps/widgets/detailviews/alarm-detailview/alarm-detailview.component';\r\nimport { ClampingCountDetailViewComponent } from 'src/app/maps/widgets/detailviews/clampingcount-detailview/clampingcount-detailview.component';\r\nimport { DestinationAlarmDetailViewComponent } from 'src/app/maps/widgets/detailviews/destination-alarm-detailview/destination-alarm-detailview.component';\r\nimport { DevicesOnDetailViewComponent } from 'src/app/maps/widgets/detailviews/devices-on-detailview/devices-on-detailview.component';\r\nimport { DevicesOnDetailViewItemComponent } from 'src/app/maps/widgets/detailviews/devices-on-detailview/devices-on-detailview-item/devices-on-detailview-item.component';\r\nimport { EfaDetailViewComponent } from 'src/app/maps/widgets/detailviews/efa-detailview/efa-detailview.component';\r\nimport { EnergyDetailViewComponent } from 'src/app/maps/widgets/detailviews/energy-detailview/energy-detailview.component';\r\nimport { FirstEntriesDetailViewComponent } from 'src/app/maps/widgets/detailviews/first-entries-detailview/first-entries-detailview.component';\r\nimport { GINDetailViewComponent } from 'src/app/maps/widgets/detailviews/gin-detailview/gin-detailview.component';\r\nimport { RemoteAccessDetailViewComponent } from 'src/app/maps/widgets/detailviews/remote-access-detailview/remote-access-detailview.component';\r\nimport { RemoteAccessDetailViewItemComponent } from 'src/app/maps/widgets/detailviews/remote-access-detailview/remote-access-detailview-item/remote-access-detailview-item.component';\r\nimport { RopewayAvailabilityDetailViewComponent } from 'src/app/maps/widgets/detailviews/ropeway-availability-detailview/ropeway-availability-detailview.component';\r\nimport { RopewayBrakeReportDetailViewComponent } from 'src/app/maps/widgets/detailviews/ropeway-brakereport-detailview/ropeway-brakereport-detailview.component';\r\nimport { RopewayBrakeReportRowComponent } from 'src/app/maps/widgets/detailviews/ropeway-brakereport-detailview/ropeway-brakereport-detailview-row/ropeway-brakereport-detailview-row.component';\r\nimport { RopewayBrakeReportPdfModal } from 'src/app/maps/widgets/detailviews/ropeway-brakereport-detailview/ropeway-brakereport-pdf-modal/ropeway-brakereport-pdf-modal.component';\r\nimport { EcoModeChartComponent } from 'src/app/maps/widgets/detailviews/ropeway-ecomode-detailview/modal/ecomode-chart/ecomode-chart.component';\r\nimport { RopewayEcoModeSettingsModal } from 'src/app/maps/widgets/detailviews/ropeway-ecomode-detailview/modal/ropeway-ecomode-settings-modal.component';\r\nimport { RopewayEcoModeDetailViewComponent } from 'src/app/maps/widgets/detailviews/ropeway-ecomode-detailview/ropeway-ecomode-detailview.component';\r\nimport { RopewayEnergyDetailViewComponent } from 'src/app/maps/widgets/detailviews/ropeway-energy-detailview/ropeway-energy-detailview.component';\r\nimport { RopewaySettingsModal } from 'src/app/maps/widgets/detailviews/ropeway-settings-detailview/modal/ropeway-settings-modal.component';\r\nimport { RopewaySettingsDetailViewComponent } from 'src/app/maps/widgets/detailviews/ropeway-settings-detailview/ropeway-settings-detailview.component';\r\nimport { SambesiWhatsUpDetailViewComponent } from 'src/app/maps/widgets/detailviews/sambesi-whatsup-detailview/sambesi-whatsup-detailview.component';\r\nimport { SambesiWhatsUpMessageComponent } from 'src/app/maps/widgets/detailviews/sambesi-whatsup-detailview/sambesi-whatsup-message/sambesi-whatsup-message.component';\r\nimport { SnowmakingDetailViewComponent } from 'src/app/maps/widgets/detailviews/snowmaking-detailview/snowmaking-detailview.component';\r\nimport { StoptimeDetailViewComponent } from 'src/app/maps/widgets/detailviews/stoptime-detailview/stoptime-detailview.component';\r\nimport { TransportWeightDetailViewComponent } from 'src/app/maps/widgets/detailviews/transport-weight-detailview/transport-weight-detailview.component';\r\nimport { TruScanDetailViewComponent } from 'src/app/maps/widgets/detailviews/truscan-detailview/truscan-detailview.component';\r\nimport { TruScanItemComponent } from 'src/app/maps/widgets/detailviews/truscan-detailview/truscan-item/truscan-item.component';\r\nimport { WebcamDetailViewComponent } from 'src/app/maps/widgets/detailviews/webcam-detailview/webcam-detailview.component';\r\nimport { DevicesonWidgetComponent } from 'src/app/maps/widgets/deviceson-widget/deviceson-widget.component';\r\nimport { EfaWidgetComponent } from 'src/app/maps/widgets/efa-widget/efa-widget.component';\r\nimport { EnergyWidgetComponent } from 'src/app/maps/widgets/energy-widget/energy-widget.component';\r\nimport { FirstEntriesWidgetComponent } from 'src/app/maps/widgets/first-entries-widget/first-entries-widget.component';\r\nimport { GeartempWidgetComponent } from 'src/app/maps/widgets/geartemp-widget/geartemp-widget.component';\r\nimport { GINWidgetComponent } from 'src/app/maps/widgets/gin-widget/gin-widget.component';\r\nimport { IcingWidgetComponent } from 'src/app/maps/widgets/icing-widget/icing-widget.component';\r\nimport { KassandraWidgetComponent } from 'src/app/maps/widgets/kassandra-widget/kassandra-widget.component';\r\nimport { OpHoursWidgetComponent } from 'src/app/maps/widgets/ophours-widget/ophours-widget.component';\r\nimport { PassengerCountWidgetComponent } from 'src/app/maps/widgets/passengercount-widget/passengercount-widget.component';\r\nimport { RemoteAccessWidgetComponent } from 'src/app/maps/widgets/remote-access-widget/remote-access-widget.component';\r\nimport { RopekmWidgetComponent } from 'src/app/maps/widgets/ropekm-widget/ropekm-widget.component';\r\nimport { RopewayBrakeReportWidgetComponent } from 'src/app/maps/widgets/ropeway-brakereport-widget/ropeway-brakereport-widget.component';\r\nimport { RopewayChartWidgetComponent } from 'src/app/maps/widgets/ropeway-chart-widget/ropeway-chart-widget.component';\r\nimport { RopewayEcoModeWidgetComponent } from 'src/app/maps/widgets/ropeway-ecomode-widget/ropeway-ecomode-widget.component';\r\nimport { RopewaySettingsWidgetComponent } from 'src/app/maps/widgets/ropeway-settings-widget/ropeway-settings-widget.component';\r\nimport { SambesiWhatsUpWidgetComponent } from 'src/app/maps/widgets/sambesi-whatsup-widget/sambesi-whatsup-widget.component';\r\nimport { SnowmakingWidgetComponent } from 'src/app/maps/widgets/snowmaking-widget/snowmaking-widget.component';\r\nimport { SpeedWidgetComponent } from 'src/app/maps/widgets/speed-widget/speed-widget.component';\r\nimport { StoptimeWidgetComponent } from 'src/app/maps/widgets/stoptime-widget/stoptime-widget.component';\r\nimport { TemperatureWidgetComponent } from 'src/app/maps/widgets/temperature-widget/temperature-widget.component';\r\nimport { TorqueWidgetComponent } from 'src/app/maps/widgets/torque-widget/torque-widget.component';\r\nimport { TransportWeightWidgetComponent } from 'src/app/maps/widgets/transportweight-widget/transportweight-widget.component';\r\nimport { TripsWidgetComponent } from 'src/app/maps/widgets/trips-widget/trips-widget.component';\r\nimport { TruScanWidgetComponent } from 'src/app/maps/widgets/truscan-widget/truscan-widget.component';\r\nimport { UtilizationWidgetComponent } from 'src/app/maps/widgets/utilization-widget/utilization-widget.component';\r\nimport { WeathertrendWidgetComponent } from 'src/app/maps/widgets/weathertrend-widget/weathertrend-widget.component';\r\nimport { WebcamWidgetComponent } from 'src/app/maps/widgets/webcam-widget/webcam-widget.component';\r\nimport { WetBulbWidgetComponent } from 'src/app/maps/widgets/wet-bulb-widget/wet-bulb-widget.component';\r\nimport { WindWidgetComponent } from 'src/app/maps/widgets/wind-widget/wind-widget.component';\r\nimport { WindtendencyWidgetComponent } from 'src/app/maps/widgets/windtendency-widget/windtendency-widget.component';\r\nimport { ZonesWidgetComponent } from 'src/app/maps/widgets/zones-widget/zones-widget.component';\r\n\r\nconst routes: Routes = [\r\n {\r\n path: '',\r\n component: MapsPage,\r\n },\r\n];\r\n\r\n@NgModule({\r\n imports: [\r\n BottomDrawerModule,\r\n ChartModule,\r\n CommonModule,\r\n CoreModule,\r\n FormsModule,\r\n IonicModule,\r\n LeafletModule,\r\n MatIconModule,\r\n MatTooltipModule,\r\n ReactiveFormsModule,\r\n RouterModule.forChild(routes),\r\n ScrollingModule,\r\n TranslateModule,\r\n ],\r\n declarations: [\r\n AbbSmartSensorDetailViewComponent,\r\n AbbSmartSensorItemComponent,\r\n AbbSmartSensorWidgetComponent,\r\n AlarmDetailViewComponent,\r\n AlarmWidgetComponent,\r\n CabinPositionWidgetComponent,\r\n CarriagetiltWidgetComponent,\r\n ClampingCountDetailViewComponent,\r\n ClampingCountWidgetComponent,\r\n ControllerSelectorComponent,\r\n CustomMarkerIconComponent,\r\n CustomMarkerLayerComponent,\r\n DestinationAlarmDetailViewComponent,\r\n DestinationAlarmWidgetComponent,\r\n DetailsDrawerComponent,\r\n DevicesOnDetailViewComponent,\r\n DevicesOnDetailViewItemComponent,\r\n DevicesonWidgetComponent,\r\n EcoModeChartComponent,\r\n EfaDetailViewComponent,\r\n EfaWidgetComponent,\r\n EnergyDetailViewComponent,\r\n EnergyWidgetComponent,\r\n EnterTheViewportNotifierDirective,\r\n FirstEntriesDetailViewComponent,\r\n FirstEntriesWidgetComponent,\r\n GeartempWidgetComponent,\r\n GINWidgetComponent,\r\n GINDetailViewComponent,\r\n IcingChartComponent,\r\n IcingWidgetComponent,\r\n KassandraWidgetComponent,\r\n MapComponent,\r\n MapsPage,\r\n MeteoLayerComponent,\r\n ModalPopupComponent,\r\n OpHoursWidgetComponent,\r\n PassengerCountWidgetComponent,\r\n RemoteAccessDetailViewComponent,\r\n RemoteAccessDetailViewItemComponent,\r\n RemoteAccessWidgetComponent,\r\n RopekmWidgetComponent,\r\n RopewayAvailabilityDetailViewComponent,\r\n RopewayBrakeReportWidgetComponent,\r\n RopewayBrakeReportDetailViewComponent,\r\n RopewayBrakeReportRowComponent,\r\n RopewayBrakeReportPdfModal,\r\n RopewayChartComponent,\r\n RopewayChartWidgetComponent,\r\n RopewayEcoModeDetailViewComponent,\r\n RopewayEcoModeSettingsModal,\r\n RopewayEcoModeWidgetComponent,\r\n RopewayEnergyChartComponent,\r\n RopewayEnergyDetailViewComponent,\r\n RopewayLayerComponent,\r\n RopewayLineComponent,\r\n RopewaySettingsDetailViewComponent,\r\n RopewaySettingsModal,\r\n RopewaySettingsWidgetComponent,\r\n SambesiWhatsUpDetailViewComponent,\r\n SambesiWhatsUpMessageComponent,\r\n SambesiWhatsUpWidgetComponent,\r\n SidepaneAlarmlistComponent,\r\n SidepaneAlarmlistItemComponent,\r\n SnowmakingDetailViewComponent,\r\n SnowmakingWidgetComponent,\r\n SpeedChartComponent,\r\n SpeedWidgetComponent,\r\n StoptimeDetailViewComponent,\r\n StoptimeWidgetComponent,\r\n TemperatureChartComponent,\r\n TemperatureWidgetComponent,\r\n TorqueChartComponent,\r\n TorqueWidgetComponent,\r\n TransportWeightDetailViewComponent,\r\n TransportWeightWidgetComponent,\r\n TripsWidgetComponent,\r\n TruScanItemComponent,\r\n TruScanDetailViewComponent,\r\n TruScanWidgetComponent,\r\n UtilizationWidgetComponent,\r\n WeathertrendWidgetComponent,\r\n WebcamComponent,\r\n WebcamDetailViewComponent,\r\n WebcamModalComponent,\r\n WebcamWidgetComponent,\r\n WetBulbChartComponent,\r\n WetBulbWidgetComponent,\r\n WidgetListComponent,\r\n WidgetSidepaneComponent,\r\n WindChartComponent,\r\n WindIconComponent,\r\n WindtendencyWidgetComponent,\r\n WindWidgetComponent,\r\n ZonesWidgetComponent,\r\n ],\r\n providers: [\r\n { provide: HIGHCHARTS_MODULES, useFactory: () => [more, exporting, nodata] }, // add as factory to your providers,\r\n { provide: ChartSettings, useValue: new ChartSettings() },\r\n ],\r\n schemas: [CUSTOM_ELEMENTS_SCHEMA],\r\n})\r\nexport class MapsPageModule {}\r\n","import { Component, OnDestroy, OnInit } from '@angular/core';\r\nimport { combineLatest } from 'rxjs';\r\nimport { takeUntil } from 'rxjs/operators';\r\nimport { Unsubscriber } from 'src/app/core/unsubscriber';\r\nimport { ScreenSizeService } from 'src/app/core/utils/screen-size.service';\r\nimport { DestinationService } from 'src/app/domain/destination/destination.service';\r\nimport { EnergyLiveDataService } from 'src/app/maps/livedata/energy-livedata.service';\r\nimport { MeteoForecastService } from 'src/app/maps/livedata/meteo-forecast.service';\r\nimport { MeteoLivedataService } from 'src/app/maps/livedata/meteo-livedata.service';\r\nimport { RopewayLivedataService } from 'src/app/maps/livedata/ropeway-livedata.service';\r\n\r\n@Component({\r\n selector: 'sis-maps',\r\n templateUrl: './maps.page.html',\r\n styleUrls: ['./maps.page.scss'],\r\n standalone: false\r\n})\r\nexport class MapsPage extends Unsubscriber implements OnInit, OnDestroy {\r\n hasDestination: boolean;\r\n bigScreenMode: boolean;\r\n\r\n constructor(\r\n private screenSizeService: ScreenSizeService,\r\n private destinationService: DestinationService,\r\n private energyLiveDataService: EnergyLiveDataService,\r\n private meteoForecastService: MeteoForecastService,\r\n private meteoLiveDataService: MeteoLivedataService,\r\n private ropewayLiveDataService: RopewayLivedataService\r\n ) {\r\n super();\r\n\r\n this.hasDestination = false;\r\n }\r\n\r\n ngOnInit(): void {\r\n this.destinationService.selectedTenant$.pipe(takeUntil(this.onDestroy$)).subscribe(() => {\r\n this.hasDestination = false;\r\n\r\n setTimeout(() => {\r\n this.hasDestination = true;\r\n });\r\n });\r\n\r\n this.screenSizeService.bigScreenMode$\r\n .pipe(takeUntil(this.onDestroy$))\r\n .subscribe((bigScreenMode) => (this.bigScreenMode = bigScreenMode));\r\n\r\n // keep an active subscription on the livedata services needed for the widgetlist\r\n combineLatest([\r\n this.ropewayLiveDataService.ropewayLiveData$,\r\n this.meteoLiveDataService.meteoLiveDatas$,\r\n this.meteoForecastService.forecasts$,\r\n this.energyLiveDataService.energy$,\r\n ])\r\n .pipe(takeUntil(this.onDestroy$))\r\n .subscribe();\r\n }\r\n}\r\n","\r\n
\r\n \r\n \r\n
\r\n","import { Injectable } from '@angular/core';\r\nimport { Observable } from 'rxjs';\r\nimport { distinctUntilChanged, map, shareReplay, startWith, withLatestFrom } from 'rxjs/operators';\r\nimport { MeteoStation } from 'src/app/maps/domain/meteostation.model';\r\nimport { Ropeway } from 'src/app/maps/domain/ropeway.model';\r\nimport { MeteoLivedata } from 'src/app/maps/livedata/meteo-livedata.model';\r\nimport { MeteoLivedataService } from 'src/app/maps/livedata/meteo-livedata.service';\r\nimport { SelectedMapElementService } from 'src/app/maps/selected-map-element.service';\r\n\r\n@Injectable({\r\n providedIn: 'root',\r\n})\r\nexport class MeteoStationService {\r\n private selectedMeteoData$: Observable<[MeteoStation, MeteoStation[], MeteoLivedata[]]> =\r\n this.selectedMapElementService.selectedMapElement$.pipe(\r\n withLatestFrom(this.meteoLiveDataService.meteoLiveDatas$.pipe(startWith([]))),\r\n map(([clickedEvent, liveDatas]) => {\r\n const relevantMeteoStations = this.getRelevantMeteoStations(clickedEvent.ropeway, clickedEvent.meteoStation);\r\n\r\n return [\r\n clickedEvent.meteoStation,\r\n relevantMeteoStations,\r\n this.getLivedatasForMeteoStations(liveDatas, relevantMeteoStations),\r\n ];\r\n }),\r\n shareReplay<[MeteoStation, MeteoStation[], MeteoLivedata[]]>({\r\n bufferSize: 1,\r\n refCount: true,\r\n })\r\n );\r\n\r\n readonly activeMeteoStation$: Observable = this.selectedMeteoData$.pipe(\r\n map(\r\n ([clickedMeteoStation, meteoStations, liveDatas]) =>\r\n clickedMeteoStation ?? this.findMeteoStationWithHighestWindSpeed(meteoStations, liveDatas)\r\n ),\r\n distinctUntilChanged(),\r\n shareReplay({\r\n bufferSize: 1,\r\n refCount: true,\r\n })\r\n );\r\n\r\n readonly relevantMeteoStationWithWetBulbTemperature$: Observable = this.selectedMeteoData$.pipe(\r\n map(([clickedMeteoStation, meteoStations, liveDatas]) => {\r\n if (clickedMeteoStation && this.meteoStationHasWetBulbTemperature(clickedMeteoStation, liveDatas)) {\r\n return clickedMeteoStation;\r\n }\r\n\r\n return (\r\n this.findMeteoStationWithForecast(meteoStations) ??\r\n this.findMeteoStationWithLowestWetBulbTemperature(meteoStations, liveDatas) ??\r\n meteoStations[0]\r\n );\r\n }),\r\n distinctUntilChanged(),\r\n shareReplay({\r\n bufferSize: 1,\r\n refCount: true,\r\n })\r\n );\r\n\r\n readonly meteoStationWithLowestTemperature$: Observable = this.selectedMeteoData$.pipe(\r\n map(([, meteoStations, liveDatas]) => this.findMeteoStationWithLowestTemperature(meteoStations, liveDatas)),\r\n distinctUntilChanged(),\r\n shareReplay({\r\n bufferSize: 1,\r\n refCount: true,\r\n })\r\n );\r\n\r\n readonly allMeteoStationsWithTemperature$: Observable = this.selectedMeteoData$.pipe(\r\n map(([, meteoStations, liveDatas]) => this.findMeteoStationsWithTemperature(meteoStations, liveDatas)),\r\n distinctUntilChanged(),\r\n shareReplay({\r\n bufferSize: 1,\r\n refCount: true,\r\n })\r\n );\r\n\r\n readonly meteoStationWithForecast$: Observable = this.selectedMeteoData$.pipe(\r\n map(([, meteoStations]) => this.findMeteoStationWithForecast(meteoStations)),\r\n distinctUntilChanged(),\r\n shareReplay({\r\n bufferSize: 1,\r\n refCount: true,\r\n })\r\n );\r\n\r\n constructor(\r\n private meteoLiveDataService: MeteoLivedataService,\r\n private selectedMapElementService: SelectedMapElementService\r\n ) {}\r\n\r\n private getRelevantMeteoStations(ropeway: Ropeway, meteoStation: MeteoStation): MeteoStation[] {\r\n return (ropeway?.meteoStations ?? [meteoStation]).filter((m) => !!m);\r\n }\r\n\r\n private getLivedatasForMeteoStations(liveDatas: MeteoLivedata[], meteoStations: MeteoStation[]): MeteoLivedata[] {\r\n return liveDatas.filter((d) => meteoStations.some((m) => m.meteoDeviceSisId === d.meteoDeviceSisId));\r\n }\r\n\r\n private findMeteoStationWithHighestWindSpeed(\r\n meteoStations: MeteoStation[],\r\n liveDatas: MeteoLivedata[]\r\n ): MeteoStation {\r\n let highestWindSpeedStationSisId: string;\r\n let highestWindSpeed = -1;\r\n liveDatas\r\n .filter((d) => !d.outdated)\r\n .forEach((d) => {\r\n if (d.windSpeedKmh > highestWindSpeed) {\r\n highestWindSpeed = d.windSpeedKmh;\r\n highestWindSpeedStationSisId = d.meteoDeviceSisId;\r\n }\r\n });\r\n\r\n return (\r\n meteoStations.find((m) => m.meteoDeviceSisId === highestWindSpeedStationSisId) ??\r\n meteoStations.find((m) => m.meteoDeviceSisId === liveDatas[0]?.meteoDeviceSisId) ??\r\n meteoStations[0]\r\n );\r\n }\r\n\r\n private findMeteoStationWithLowestWetBulbTemperature(\r\n meteoStations: MeteoStation[],\r\n liveDatas: MeteoLivedata[]\r\n ): MeteoStation {\r\n let lowestWetBulbTemperatureStationSisId: string;\r\n let lowestWetBulbTemperature = 100;\r\n liveDatas\r\n .filter((d) => !d.outdated && d.wetBulbTemperatureCelsius !== null)\r\n .forEach((d) => {\r\n if (d.wetBulbTemperatureCelsius < lowestWetBulbTemperature) {\r\n lowestWetBulbTemperature = d.wetBulbTemperatureCelsius;\r\n lowestWetBulbTemperatureStationSisId = d.meteoDeviceSisId;\r\n }\r\n });\r\n\r\n return meteoStations.find((m) => m.meteoDeviceSisId === lowestWetBulbTemperatureStationSisId) ?? null;\r\n }\r\n\r\n private findMeteoStationsWithTemperature(meteoStations: MeteoStation[], liveDatas: MeteoLivedata[]): MeteoStation[] {\r\n const liveDatasWithTemperature = liveDatas.filter((d) => d.temperatureCelsius != null);\r\n\r\n return meteoStations.filter((m) => liveDatasWithTemperature.some((d) => d.meteoDeviceSisId === m.meteoDeviceSisId));\r\n }\r\n\r\n private findMeteoStationWithLowestTemperature(\r\n meteoStations: MeteoStation[],\r\n liveDatas: MeteoLivedata[]\r\n ): MeteoStation {\r\n let lowestTemperatureStationSisId: string;\r\n let lowestTemperature = 100;\r\n\r\n const liveDatasWithTemperature = liveDatas.filter((d) => d.temperatureCelsius != null);\r\n\r\n liveDatasWithTemperature\r\n .filter((d) => !d.outdated)\r\n .forEach((d) => {\r\n if (d.temperatureCelsius < lowestTemperature) {\r\n lowestTemperature = d.temperatureCelsius;\r\n lowestTemperatureStationSisId = d.meteoDeviceSisId;\r\n }\r\n });\r\n\r\n return (\r\n meteoStations.find((m) => m.meteoDeviceSisId === lowestTemperatureStationSisId) ??\r\n meteoStations.find((m) => m.meteoDeviceSisId === liveDatasWithTemperature[0]?.meteoDeviceSisId)\r\n );\r\n }\r\n\r\n private meteoStationHasWetBulbTemperature(meteoStation: MeteoStation, liveDatas: MeteoLivedata[]): boolean {\r\n return liveDatas.some(\r\n (l) => l.meteoDeviceSisId === meteoStation.meteoDeviceSisId && l.wetBulbTemperatureCelsius != null\r\n );\r\n }\r\n\r\n private findMeteoStationWithForecast(meteoStations: MeteoStation[]): MeteoStation {\r\n return meteoStations.find((m) => m.hasForecast);\r\n }\r\n}\r\n","import { Component, Injector, Input } from '@angular/core';\r\nimport { ModalController } from '@ionic/angular';\r\nimport { ChartSettings } from 'src/app/maps/widgets/charts/chart-settings.model';\r\n\r\n@Component({\r\n selector: 'sis-modal-popup',\r\n templateUrl: './modal-popup.component.html',\r\n styleUrls: ['./modal-popup.component.scss'],\r\n standalone: false\r\n})\r\nexport class ModalPopupComponent {\r\n @Input() component: any;\r\n\r\n isInModalInjector: Injector;\r\n\r\n constructor(private modalCtrl: ModalController, injector: Injector) {\r\n const settings = new ChartSettings({ inModal: true });\r\n\r\n this.isInModalInjector = Injector.create({\r\n providers: [{ provide: ChartSettings, useValue: settings }],\r\n parent: injector,\r\n });\r\n }\r\n\r\n dismiss() {\r\n this.modalCtrl.dismiss();\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 { Injectable } from '@angular/core';\r\nimport { Observable } from 'rxjs';\r\nimport { distinctUntilChanged, map, shareReplay, startWith } from 'rxjs/operators';\r\nimport { EventBusService } from 'src/app/core/eventbus/event-bus.service';\r\nimport { MapIconClickedEvent } from 'src/app/core/eventbus/events';\r\n\r\n@Injectable({\r\n providedIn: 'root',\r\n})\r\nexport class SelectedMapElementService {\r\n readonly selectedMapElement$: Observable = this.eventBus.observe(MapIconClickedEvent).pipe(\r\n startWith(new MapIconClickedEvent()),\r\n distinctUntilChanged(\r\n (prev, curr) =>\r\n prev.ropeway === curr.ropeway &&\r\n prev.meteoStation === curr.meteoStation &&\r\n prev.customMarker === curr.customMarker\r\n ),\r\n shareReplay({\r\n bufferSize: 1,\r\n refCount: true,\r\n })\r\n );\r\n\r\n readonly selectedRopeway$ = this.selectedMapElement$.pipe(map((event) => event.ropeway));\r\n\r\n constructor(private eventBus: EventBusService) {}\r\n}\r\n","import { EnergyTrend } from 'src/app/maps/trenddata/energy-trend.model';\r\n\r\nexport class EnergyTrendAdapter {\r\n static adapt(items: any): EnergyTrend[] {\r\n const trends: EnergyTrend[] = [];\r\n\r\n if (items && items.length > 0) {\r\n let lastTimestampMs = new Date(items[0].timestamp).getTime();\r\n items.forEach((e: any) => {\r\n const timestampMsMaxExpectedValue = lastTimestampMs + 121_000;\r\n const timestampMs = new Date(e.timestamp).getTime();\r\n if (timestampMs > timestampMsMaxExpectedValue) {\r\n trends.push({ timestamp: new Date(timestampMsMaxExpectedValue) });\r\n }\r\n lastTimestampMs = timestampMs;\r\n\r\n trends.push({ energyKwInterval: e.energyKwInterval, timestamp: new Date(e.timestamp) });\r\n });\r\n }\r\n\r\n return trends;\r\n }\r\n}\r\n","import { HttpClient } from '@angular/common/http';\r\nimport { Injectable } from '@angular/core';\r\nimport { Observable } from 'rxjs';\r\nimport { map } from 'rxjs/operators';\r\nimport { EnergyTrendAdapter } from 'src/app/maps/trenddata/energy-trend.adapter';\r\nimport { EnergyTrend } from 'src/app/maps/trenddata/energy-trend.model';\r\nimport { environment } from 'src/environments/environment';\r\n\r\n@Injectable({\r\n providedIn: 'root',\r\n})\r\nexport class EnergyTrendService {\r\n constructor(private http: HttpClient) {}\r\n\r\n requestEnergyTrend(energyDeviceId: string): Observable {\r\n const url = environment.baseUrlApi + `/trenddata/energy/` + energyDeviceId;\r\n return this.http.get(url).pipe(map((data) => EnergyTrendAdapter.adapt(data)));\r\n }\r\n}\r\n","import { ForecastTrend } from 'src/app/maps/trenddata/forecast-trend.model';\r\n\r\nexport class ForecastTrendAdapter {\r\n static adapt(items: any): ForecastTrend[] {\r\n const forecastTrends: ForecastTrend[] = [];\r\n\r\n if (items && items.length > 0) {\r\n items.forEach((e: any) => {\r\n forecastTrends.push({\r\n windSpeedKmhMax: e.windSpeedKmhMax,\r\n windSpeedKmh: e.windSpeedKmh,\r\n temperatureCelsius: e.temperatureCelsius,\r\n icingIntensity: e.icingIntensity,\r\n wetBulbTemperatureCelsius: e.wetBulbTemperatureCelsius,\r\n timestamp: new Date(e.forecastTime),\r\n });\r\n });\r\n }\r\n\r\n return forecastTrends;\r\n }\r\n}\r\n","import { HttpClient } from '@angular/common/http';\r\nimport { Injectable } from '@angular/core';\r\nimport { Observable } from 'rxjs';\r\nimport { map } from 'rxjs/operators';\r\nimport { ForecastTrendAdapter } from 'src/app/maps/trenddata/forecast-trend.adapter';\r\nimport { ForecastTrend } from 'src/app/maps/trenddata/forecast-trend.model';\r\nimport { TemperatureTrendAdapter } from 'src/app/maps/trenddata/temperature-trend.adapter';\r\nimport { TemperatureTrend } from 'src/app/maps/trenddata/temperature-trend.model';\r\nimport { WetBulbTrendAdapter } from 'src/app/maps/trenddata/wet-bulb-trend.adapter';\r\nimport { WetBulbTrend } from 'src/app/maps/trenddata/wet-bulb-trend.model';\r\nimport { WindTrendAdapter } from 'src/app/maps/trenddata/wind-trend.adapter';\r\nimport { WindTrend } from 'src/app/maps/trenddata/wind-trend.model';\r\nimport { environment } from 'src/environments/environment';\r\n\r\n@Injectable({\r\n providedIn: 'root',\r\n})\r\nexport class MeteoTrendService {\r\n constructor(private http: HttpClient) {}\r\n\r\n getWindTrends(meteoStationGuid: string): Observable {\r\n const url = environment.baseUrlApi + `/trenddata/meteo/trend/` + meteoStationGuid;\r\n return this.http.get(url).pipe(map((data) => WindTrendAdapter.adapt(data)));\r\n }\r\n\r\n getForecastTrends(meteoStationGuid: string): Observable {\r\n const url = environment.baseUrlApi + `/trenddata/meteo/forecast/` + meteoStationGuid;\r\n return this.http.get(url).pipe(map((data) => ForecastTrendAdapter.adapt(data)));\r\n }\r\n\r\n getTemperatureTrends(meteoStationGuid: string): Observable {\r\n const url = environment.baseUrlApi + `/trenddata/meteo/trend/` + meteoStationGuid;\r\n return this.http.get(url).pipe(map((data) => TemperatureTrendAdapter.adapt(data)));\r\n }\r\n\r\n getWetBulbTemperatureTrends(meteoStationGuid: string): Observable {\r\n const url = environment.baseUrlApi + `/trenddata/meteo/trend/` + meteoStationGuid;\r\n return this.http.get(url).pipe(map((data) => WetBulbTrendAdapter.adapt(data)));\r\n }\r\n}\r\n","import { RopewayAvailabilityTrend } from 'src/app/maps/trenddata/ropeway-availability-trend.model';\r\n\r\nexport class RopewayAvailabilityTrendAdapter {\r\n static adapt(items: any): RopewayAvailabilityTrend[] {\r\n const trends: RopewayAvailabilityTrend[] = [];\r\n\r\n if (items && items.length > 0) {\r\n items.forEach((e: any) => {\r\n trends.push({\r\n tenantSisId: e.tenantSisId,\r\n ropewaySisId: e.ropewaySisId,\r\n availability: e.availability,\r\n year: e.year,\r\n month: e.month,\r\n week: e.week,\r\n day: e.day,\r\n date: new Date(e.date),\r\n ignore: e.ignore,\r\n });\r\n });\r\n }\r\n\r\n return trends;\r\n }\r\n}\r\n","import { HttpClient } from '@angular/common/http';\r\nimport { Injectable } from '@angular/core';\r\nimport { EMPTY, firstValueFrom, Observable } from 'rxjs';\r\nimport { catchError, map } from 'rxjs/operators';\r\nimport { RopewayAvailabilityTrendAdapter } from 'src/app/maps/trenddata/ropeway-availability-trend.adapter';\r\nimport { RopewayAvailabilityTrend } from 'src/app/maps/trenddata/ropeway-availability-trend.model';\r\nimport { environment } from 'src/environments/environment';\r\n\r\n@Injectable({\r\n providedIn: 'root',\r\n})\r\nexport class RopewayAvailabilityTrendService {\r\n constructor(private http: HttpClient) {}\r\n\r\n getAvailabilityTrendData(ropewaySisId: string): Observable {\r\n const url = environment.baseUrlApi + `/trenddata/availability/` + ropewaySisId;\r\n return this.http.get(url).pipe(\r\n catchError(() => EMPTY),\r\n map((data) => RopewayAvailabilityTrendAdapter.adapt(data))\r\n );\r\n }\r\n\r\n getAvailabilityLongtermTrendData(ropewaySisId: string, timespan: string): Observable {\r\n const url = environment.baseUrlApi + `/ropewayavailability/${ropewaySisId}/${timespan}`;\r\n return this.http.get(url).pipe(\r\n catchError(() => EMPTY),\r\n map((data) => RopewayAvailabilityTrendAdapter.adapt(data))\r\n );\r\n }\r\n\r\n async postIgnore(tenantSisId: string, ropewaySisId: string, date: string, ignore: boolean): Promise {\r\n const url = `${environment.baseUrlApi}/trenddata/availability/ignore`;\r\n await firstValueFrom(this.http.post(url, { tenantSisId, ropewaySisId, date, ignore }));\r\n }\r\n}\r\n","import { RopewayEcoModeTrend } from 'src/app/maps/trenddata/ropeway-ecomode-trend.model';\r\n\r\nexport class RopewayEcoModeTrendAdapter {\r\n static adapt(items: any): RopewayEcoModeTrend[] {\r\n const trends: RopewayEcoModeTrend[] = [];\r\n\r\n if (items && items.length > 0) {\r\n items.forEach((e: any) => {\r\n trends.push({\r\n actualSpeedMps: e.actualSpeedMps,\r\n targetSpeedMps: e.targetSpeedMps,\r\n driveEnergyWh: e.driveEnergyWh,\r\n ecoModeActivatedCockpit: e.ecoModeActivatedCockpit,\r\n ecoModeEnabledPLC: e.ecoModeEnabledPLC,\r\n peoplePerMinute: e.peoplePerMinute,\r\n vehicleCountPercent: e.vehicleCountPercent,\r\n workloadPercent: e.workloadPercent,\r\n timestamp: new Date(e.timestamp),\r\n });\r\n });\r\n }\r\n\r\n return trends;\r\n }\r\n}\r\n","import { HttpClient } from '@angular/common/http';\r\nimport { Injectable } from '@angular/core';\r\nimport { Observable } from 'rxjs';\r\nimport { map } from 'rxjs/operators';\r\nimport { RopewayEcoModeTrendAdapter } from 'src/app/maps/trenddata/ropeway-ecomode-trend.adapter';\r\nimport { RopewayEcoModeTrend } from 'src/app/maps/trenddata/ropeway-ecomode-trend.model';\r\nimport { environment } from 'src/environments/environment';\r\n\r\n@Injectable({\r\n providedIn: 'root',\r\n})\r\nexport class RopewayEcoModeTrendService {\r\n constructor(private http: HttpClient) {}\r\n\r\n getEcoModeData(ropewaySisId: string): Observable {\r\n const url = environment.baseUrlApi + `/trenddata/ecomode/` + ropewaySisId;\r\n return this.http.get(url).pipe(map((data) => RopewayEcoModeTrendAdapter.adapt(data)));\r\n }\r\n}\r\n","import { RopewaySpeedTrend } from 'src/app/maps/trenddata/ropeway-speed-trend.model';\r\n\r\nexport class RopewaySpeedTrendAdapter {\r\n static adapt(items: any): RopewaySpeedTrend[] {\r\n const trends: RopewaySpeedTrend[] = [];\r\n\r\n if (items && items.length > 0) {\r\n let lastTimestampMs = new Date(items[0].timestamp).getTime();\r\n items.forEach((e: any) => {\r\n const timestampMs = new Date(e.timestamp).getTime();\r\n const timestampMsMaxExpectedValue = lastTimestampMs + 21_000;\r\n if (timestampMs > timestampMsMaxExpectedValue) {\r\n trends.push({ timestamp: new Date(timestampMsMaxExpectedValue) });\r\n }\r\n lastTimestampMs = timestampMs;\r\n\r\n trends.push({ speed: e.actualSpeedMps, timestamp: new Date(e.timestamp) });\r\n });\r\n }\r\n\r\n return trends;\r\n }\r\n}\r\n","import { HttpClient } from '@angular/common/http';\r\nimport { Injectable } from '@angular/core';\r\nimport { Observable } from 'rxjs';\r\nimport { map } from 'rxjs/operators';\r\nimport { RopewaySpeedTrendAdapter } from 'src/app/maps/trenddata/ropeway-speed-trend.adapter';\r\nimport { RopewaySpeedTrend } from 'src/app/maps/trenddata/ropeway-speed-trend.model';\r\nimport { environment } from 'src/environments/environment';\r\n\r\n@Injectable({\r\n providedIn: 'root',\r\n})\r\nexport class RopewaySpeedTrendService {\r\n constructor(private http: HttpClient) {}\r\n\r\n getSpeedData(ropewaySisId: string): Observable {\r\n const url = environment.baseUrlApi + `/trenddata/speed/` + ropewaySisId;\r\n return this.http.get(url).pipe(map((data) => RopewaySpeedTrendAdapter.adapt(data)));\r\n }\r\n}\r\n","import { Configuration } from 'src/app/maps/domain/configuration.model';\r\nimport { RopewayTorqueTrend } from 'src/app/maps/trenddata/ropeway-torque-trend.model';\r\n\r\nexport class RopewayTorqueTrendAdapter {\r\n static adapt(items: any, configurations: Configuration[]): RopewayTorqueTrend[] {\r\n const trends: RopewayTorqueTrend[] = [];\r\n let percentConfig: Configuration = null;\r\n let ampereConfig: Configuration = null;\r\n\r\n let hasAmpereValue = false;\r\n let hasPercentValue = false;\r\n\r\n let hasAmpereConfig = false;\r\n let hasPercentConfig = false;\r\n\r\n let lastTimestampMs = null;\r\n\r\n if (configurations) {\r\n percentConfig = configurations.find((c) => c.configKey === Configuration.driveTorqueNmKey);\r\n hasPercentConfig = percentConfig != null;\r\n ampereConfig = configurations.find((c) => c.configKey === Configuration.driveMotorCurrentAmpereKey);\r\n hasAmpereConfig = ampereConfig != null;\r\n }\r\n\r\n if (items && items.length > 0) {\r\n hasAmpereValue = items[0].driveMotorCurrentAmpere != null;\r\n hasPercentValue = items[0].driveMotorTorquePercent != null;\r\n lastTimestampMs = new Date(items[0].timestamp).getTime();\r\n\r\n items.forEach((e: any) => {\r\n const timestampMs = new Date(e.timestamp).getTime();\r\n const timestampMsMaxExpectedValue = lastTimestampMs + 21_000;\r\n if (timestampMs > timestampMsMaxExpectedValue) {\r\n trends.push(new RopewayTorqueTrend({ timestamp: new Date(timestampMsMaxExpectedValue) }));\r\n }\r\n lastTimestampMs = timestampMs;\r\n\r\n trends.push(\r\n new RopewayTorqueTrend({\r\n torqueAbsolute: e.driveMotorCurrentAmpere,\r\n torquePercent: e.driveMotorTorquePercent,\r\n timestamp: new Date(e.timestamp),\r\n })\r\n );\r\n });\r\n }\r\n\r\n if (hasPercentValue && hasPercentConfig) {\r\n return this.updateAbsoluteValue(trends, percentConfig.nominalValue);\r\n }\r\n\r\n if (hasAmpereValue && hasAmpereConfig) {\r\n return this.updateTorquePercent(trends, ampereConfig.nominalValue);\r\n }\r\n\r\n if (hasPercentValue && !hasPercentConfig) {\r\n return this.onlyPercent(trends);\r\n }\r\n\r\n if (hasAmpereValue && !hasAmpereConfig) {\r\n return this.onlyAmpere(trends);\r\n }\r\n }\r\n\r\n private static onlyPercent(trends: RopewayTorqueTrend[]): RopewayTorqueTrend[] {\r\n trends.forEach((data) => {\r\n data.unit = RopewayTorqueTrend.unitPercent;\r\n data.torqueAbsolute = null;\r\n });\r\n return trends;\r\n }\r\n\r\n private static onlyAmpere(trends: RopewayTorqueTrend[]): RopewayTorqueTrend[] {\r\n trends.forEach((data) => {\r\n data.unit = RopewayTorqueTrend.unitAmpere;\r\n data.torquePercent = data.torqueAbsolute;\r\n data.torqueAbsolute = null;\r\n });\r\n return trends;\r\n }\r\n\r\n private static updateAbsoluteValue(trends: RopewayTorqueTrend[], nominalValue: number): RopewayTorqueTrend[] {\r\n trends.forEach((data) => {\r\n data.unit = RopewayTorqueTrend.unitNewton;\r\n data.torqueAbsolute = (nominalValue * data.torquePercent) / 100;\r\n });\r\n return trends;\r\n }\r\n\r\n private static updateTorquePercent(trends: RopewayTorqueTrend[], nominalValue: number): RopewayTorqueTrend[] {\r\n trends.forEach((data) => {\r\n data.unit = RopewayTorqueTrend.unitAmpere;\r\n data.torquePercent = (data.torqueAbsolute / nominalValue) * 100;\r\n });\r\n return trends;\r\n }\r\n}\r\n","import { WritablePart } from 'src/app/core/utils/type-helper';\r\n\r\nexport class RopewayTorqueTrend {\r\n static unitNewton = 'Nm';\r\n static unitAmpere = 'A';\r\n static unitPercent = '%';\r\n static unitNone = '';\r\n\r\n case: number;\r\n\r\n torqueAbsolute: number = null;\r\n torquePercent: number = null;\r\n timestamp: Date = null;\r\n unit: string = RopewayTorqueTrend.unitNone;\r\n\r\n constructor(init?: Partial>) {\r\n Object.assign(this, init);\r\n }\r\n}\r\n","import { HttpClient } from '@angular/common/http';\r\nimport { Injectable } from '@angular/core';\r\nimport { Observable } from 'rxjs';\r\nimport { map } from 'rxjs/operators';\r\nimport { Ropeway } from 'src/app/maps/domain/ropeway.model';\r\nimport { RopewayTorqueTrendAdapter } from 'src/app/maps/trenddata/ropeway-torque-trend.adapter';\r\nimport { RopewayTorqueTrend } from 'src/app/maps/trenddata/ropeway-torque-trend.model';\r\nimport { environment } from 'src/environments/environment';\r\n\r\n@Injectable({\r\n providedIn: 'root',\r\n})\r\nexport class RopewayTorqueTrendService {\r\n constructor(private http: HttpClient) {}\r\n\r\n getTorqueData(ropeway: Ropeway): Observable {\r\n const url = environment.baseUrlApi + `/trenddata/torque/` + ropeway.sisId;\r\n return this.http.get(url).pipe(map((data) => RopewayTorqueTrendAdapter.adapt(data, ropeway.configurations)));\r\n }\r\n}\r\n","import { TemperatureTrend } from 'src/app/maps/trenddata/temperature-trend.model';\r\n\r\nexport class TemperatureTrendAdapter {\r\n static adapt(items: any): TemperatureTrend[] {\r\n const trends: TemperatureTrend[] = [];\r\n\r\n if (items && items.length > 0) {\r\n let lastTimestampMs = new Date(items[0].timestamp).getTime();\r\n items.forEach((e: any) => {\r\n const timestampMs = new Date(e.timestamp).getTime();\r\n const timestampMsMaxExpectedValue = lastTimestampMs + 600_000;\r\n if (timestampMs > timestampMsMaxExpectedValue) {\r\n trends.push({ timestamp: new Date(timestampMsMaxExpectedValue) });\r\n }\r\n lastTimestampMs = timestampMs;\r\n\r\n trends.push({\r\n temperatureCelsiusAverage: e.temperatureCelsiusAverage != null ? Number(e.temperatureCelsiusAverage) : null,\r\n timestamp: new Date(e.timestamp),\r\n });\r\n });\r\n }\r\n\r\n return trends;\r\n }\r\n}\r\n","import { WetBulbTrend } from 'src/app/maps/trenddata/wet-bulb-trend.model';\r\n\r\nexport class WetBulbTrendAdapter {\r\n static adapt(items: any): WetBulbTrend[] {\r\n const trends: WetBulbTrend[] = [];\r\n\r\n if (items && items.length > 0) {\r\n let lastTimestampMs = new Date(items[0].timestamp).getTime();\r\n items.forEach((e: any) => {\r\n const timestampMs = new Date(e.timestamp).getTime();\r\n const timestampMsMaxExpectedValue = lastTimestampMs + 600_000;\r\n if (timestampMs > timestampMsMaxExpectedValue) {\r\n trends.push({ timestamp: new Date(timestampMsMaxExpectedValue) });\r\n }\r\n lastTimestampMs = timestampMs;\r\n\r\n trends.push({\r\n wetBulbTemperatureCelsius:\r\n e.wetBulbTemperatureCelsiusAverage != null ? Number(e.wetBulbTemperatureCelsiusAverage) : null,\r\n timestamp: new Date(e.timestamp),\r\n });\r\n });\r\n }\r\n\r\n return trends;\r\n }\r\n}\r\n","import { WindTrend } from 'src/app/maps/trenddata/wind-trend.model';\r\n\r\nexport class WindTrendAdapter {\r\n static adapt(items: any): WindTrend[] {\r\n const trends: WindTrend[] = [];\r\n if (items && items.length > 0) {\r\n let lastTimestampMs = new Date(items[0].timestamp).getTime();\r\n items.forEach((e: any) => {\r\n const timestampMs = new Date(e.timestamp).getTime();\r\n const timestampMsMaxExpectedValue = lastTimestampMs + 600_000;\r\n if (timestampMs > timestampMsMaxExpectedValue) {\r\n trends.push({ timestamp: new Date(timestampMsMaxExpectedValue) });\r\n }\r\n lastTimestampMs = timestampMs;\r\n\r\n trends.push({\r\n maxValue: e.windSpeedKmhMax != null ? Number(e.windSpeedKmhMax) : null,\r\n meanValue: e.windSpeedKmhAverage != null ? Number(e.windSpeedKmhAverage) : null,\r\n timestamp: new Date(e.timestamp),\r\n });\r\n });\r\n }\r\n\r\n return trends;\r\n }\r\n}\r\n","import { Injectable } from '@angular/core';\r\nimport { Observable, of } from 'rxjs';\r\nimport { EventBusService } from 'src/app/core/eventbus/event-bus.service';\r\nimport { MapIconClickedEvent } from 'src/app/core/eventbus/events';\r\nimport { Feature } from 'src/app/domain/feature/feature.model';\r\nimport { FeatureId } from 'src/app/domain/feature/feature-id.model';\r\nimport { DetailView } from 'src/app/maps/widget-list/widget-list-services/domain/detailview.model';\r\nimport { Widget } from 'src/app/maps/widget-list/widget-list-services/domain/widget.model';\r\nimport { WidgetName } from 'src/app/maps/widget-list/widget-list-services/domain/widgetname.enum';\r\nimport { WebcamDetailViewComponent } from 'src/app/maps/widgets/detailviews/webcam-detailview/webcam-detailview.component';\r\nimport { WebcamWidgetComponent } from 'src/app/maps/widgets/webcam-widget/webcam-widget.component';\r\n\r\n@Injectable({\r\n providedIn: 'root',\r\n})\r\nexport class CustomMarkerWidgetListService {\r\n constructor(private eventBus: EventBusService) {}\r\n\r\n buildWidgetList(\r\n mapIconClickedEvent: MapIconClickedEvent,\r\n userFeatures: Feature[],\r\n bigScreenMode: boolean\r\n ): Observable {\r\n if (!userFeatures) {\r\n return of([]);\r\n }\r\n\r\n const customMarker = mapIconClickedEvent.customMarker;\r\n\r\n const widgetsToRemove: WidgetName[] = [];\r\n if (\r\n bigScreenMode ||\r\n !userFeatures.some((f) => f.featureId === FeatureId.COCKPIT_WEBCAM) ||\r\n !customMarker?.webcams?.length\r\n ) {\r\n widgetsToRemove.push(WidgetName.Webcam);\r\n }\r\n\r\n const widgets = this.getWidgets(this.eventBus);\r\n\r\n const filteredWidgets = widgets.filter((widget) => !widgetsToRemove.includes(widget.name));\r\n\r\n if (filteredWidgets.length === 1 && filteredWidgets[0].expandable) {\r\n filteredWidgets[0].expand();\r\n }\r\n\r\n return of(filteredWidgets);\r\n }\r\n\r\n private getWidgets(eventBus: EventBusService): Widget[] {\r\n return [\r\n new Widget({\r\n name: WidgetName.Webcam,\r\n component: WebcamWidgetComponent,\r\n detailView: new DetailView({ component: WebcamDetailViewComponent, height: 212 }),\r\n tooltip: 'Webcam',\r\n eventBus,\r\n }),\r\n ];\r\n }\r\n}\r\n","import { Injectable } from '@angular/core';\r\nimport { Observable, of } from 'rxjs';\r\nimport { EventBusService } from 'src/app/core/eventbus/event-bus.service';\r\nimport { Feature } from 'src/app/domain/feature/feature.model';\r\nimport { FeatureAccessLevel } from 'src/app/domain/feature/feature-access-level.model';\r\nimport { FeatureId } from 'src/app/domain/feature/feature-id.model';\r\nimport { MasterData } from 'src/app/maps/domain/masterdata.model';\r\nimport { DetailView } from 'src/app/maps/widget-list/widget-list-services/domain/detailview.model';\r\nimport { Widget } from 'src/app/maps/widget-list/widget-list-services/domain/widget.model';\r\nimport { WidgetAction } from 'src/app/maps/widget-list/widget-list-services/domain/widget-action.enum';\r\nimport { WidgetName } from 'src/app/maps/widget-list/widget-list-services/domain/widgetname.enum';\r\nimport { AbbSmartSensorWidgetComponent } from 'src/app/maps/widgets/abbsmartsensor-widget/abbsmartsensor-widget.component';\r\nimport { DestinationAlarmWidgetComponent } from 'src/app/maps/widgets/destination-alarm-widget/destination-alarm-widget.component';\r\nimport { AbbSmartSensorDetailViewComponent } from 'src/app/maps/widgets/detailviews/abbsmartsensor-detailview/abbsmartsensor-detailview.component';\r\nimport { DestinationAlarmDetailViewComponent } from 'src/app/maps/widgets/detailviews/destination-alarm-detailview/destination-alarm-detailview.component';\r\nimport { DevicesOnDetailViewComponent } from 'src/app/maps/widgets/detailviews/devices-on-detailview/devices-on-detailview.component';\r\nimport { EnergyDetailViewComponent } from 'src/app/maps/widgets/detailviews/energy-detailview/energy-detailview.component';\r\nimport { FirstEntriesDetailViewComponent } from 'src/app/maps/widgets/detailviews/first-entries-detailview/first-entries-detailview.component';\r\nimport { GINDetailViewComponent } from 'src/app/maps/widgets/detailviews/gin-detailview/gin-detailview.component';\r\nimport { RemoteAccessDetailViewComponent } from 'src/app/maps/widgets/detailviews/remote-access-detailview/remote-access-detailview.component';\r\nimport { SambesiWhatsUpDetailViewComponent } from 'src/app/maps/widgets/detailviews/sambesi-whatsup-detailview/sambesi-whatsup-detailview.component';\r\nimport { SnowmakingDetailViewComponent } from 'src/app/maps/widgets/detailviews/snowmaking-detailview/snowmaking-detailview.component';\r\nimport { DevicesonWidgetComponent } from 'src/app/maps/widgets/deviceson-widget/deviceson-widget.component';\r\nimport { EnergyWidgetComponent } from 'src/app/maps/widgets/energy-widget/energy-widget.component';\r\nimport { FirstEntriesWidgetComponent } from 'src/app/maps/widgets/first-entries-widget/first-entries-widget.component';\r\nimport { GINWidgetComponent } from 'src/app/maps/widgets/gin-widget/gin-widget.component';\r\nimport { KassandraWidgetComponent } from 'src/app/maps/widgets/kassandra-widget/kassandra-widget.component';\r\nimport { RemoteAccessWidgetComponent } from 'src/app/maps/widgets/remote-access-widget/remote-access-widget.component';\r\nimport { SambesiWhatsUpWidgetComponent } from 'src/app/maps/widgets/sambesi-whatsup-widget/sambesi-whatsup-widget.component';\r\nimport { SnowmakingWidgetComponent } from 'src/app/maps/widgets/snowmaking-widget/snowmaking-widget.component';\r\nimport { WeathertrendWidgetComponent } from 'src/app/maps/widgets/weathertrend-widget/weathertrend-widget.component';\r\n\r\n@Injectable({\r\n providedIn: 'root',\r\n})\r\nexport class DestinationWidgetListService {\r\n constructor(private eventBus: EventBusService) {}\r\n\r\n buildWidgetList(masterdata: MasterData, userFeatures: Feature[]): Observable {\r\n if (!userFeatures) {\r\n return of([]);\r\n }\r\n\r\n const widgetsToRemove: WidgetName[] = [];\r\n if (!userFeatures.some((f) => f.featureId === FeatureId.COCKPIT_FIRSTENTRIES)) {\r\n widgetsToRemove.push(WidgetName.FirstEntries);\r\n }\r\n if (!userFeatures.some((f) => f.featureId === FeatureId.COCKPIT_KASSANDRA)) {\r\n widgetsToRemove.push(WidgetName.Kassandra);\r\n }\r\n if (!userFeatures.some((f) => f.featureId === FeatureId.COCKPIT_ENERGY)) {\r\n widgetsToRemove.push(WidgetName.Energy);\r\n }\r\n if (!userFeatures.some((f) => f.featureId === FeatureId.COCKPIT_SNOWMAKING)) {\r\n widgetsToRemove.push(WidgetName.Snowmaking);\r\n }\r\n if (\r\n !userFeatures.some((f) => f.featureId === FeatureId.COCKPIT_REMOTEACCESS) ||\r\n !masterdata?.remoteAccesses?.length\r\n ) {\r\n widgetsToRemove.push(WidgetName.RemoteAccess);\r\n }\r\n if (\r\n !userFeatures.find((feature) =>\r\n feature.hasMinimumRequirementFor(new Feature(FeatureId.COCKPIT_ABBSMARTSENSOR, FeatureAccessLevel.READ))\r\n )\r\n ) {\r\n widgetsToRemove.push(WidgetName.AbbSmartSensor);\r\n }\r\n\r\n if (!userFeatures.some((f) => f.featureId === FeatureId.COCKPIT_SAMBESI_WHATSUP)) {\r\n widgetsToRemove.push(WidgetName.SambesiWhatsUp);\r\n }\r\n\r\n if (!masterdata?.ginConfigurations?.length) {\r\n widgetsToRemove.push(WidgetName.GIN);\r\n }\r\n\r\n const widgets = this.getWidgets(this.eventBus);\r\n\r\n return of(widgets.filter((widget) => !widgetsToRemove.includes(widget.name)));\r\n }\r\n\r\n private getWidgets(eventBus: EventBusService): Widget[] {\r\n return [\r\n new Widget({\r\n name: WidgetName.DevicesOn,\r\n component: DevicesonWidgetComponent,\r\n detailView: new DetailView({ component: DevicesOnDetailViewComponent }),\r\n tooltip: 'ropeway.term.devicesOn',\r\n eventBus,\r\n }),\r\n new Widget({\r\n name: WidgetName.DestinationAlarm,\r\n component: DestinationAlarmWidgetComponent,\r\n detailView: new DetailView({ component: DestinationAlarmDetailViewComponent }),\r\n tooltip: 'alarming.term.alarms',\r\n eventBus,\r\n }),\r\n new Widget({\r\n name: WidgetName.FirstEntries,\r\n component: FirstEntriesWidgetComponent,\r\n detailView: new DetailView({ component: FirstEntriesDetailViewComponent }),\r\n tooltip: 'ropeway.term.personFrequency',\r\n eventBus,\r\n }),\r\n new Widget({\r\n name: WidgetName.Kassandra,\r\n component: KassandraWidgetComponent,\r\n detailView: new DetailView({ component: FirstEntriesDetailViewComponent }),\r\n tooltip: 'Kassandra',\r\n eventBus,\r\n action: WidgetAction.ExternalLink,\r\n }),\r\n new Widget({\r\n name: WidgetName.WeatherTrend,\r\n component: WeathertrendWidgetComponent,\r\n tooltip: 'ropeway.term.weatherTrend',\r\n eventBus,\r\n action: WidgetAction.ExternalLink,\r\n }),\r\n new Widget({\r\n name: WidgetName.Energy,\r\n component: EnergyWidgetComponent,\r\n detailView: new DetailView({ component: EnergyDetailViewComponent }),\r\n tooltip: 'energy.term.power',\r\n eventBus,\r\n }),\r\n new Widget({\r\n name: WidgetName.Snowmaking,\r\n component: SnowmakingWidgetComponent,\r\n detailView: new DetailView({ component: SnowmakingDetailViewComponent }),\r\n tooltip: 'destination.term.snowmaking',\r\n eventBus,\r\n }),\r\n new Widget({\r\n name: WidgetName.AbbSmartSensor,\r\n component: AbbSmartSensorWidgetComponent,\r\n detailView: new DetailView({ component: AbbSmartSensorDetailViewComponent }),\r\n tooltip: 'general.term.abbSmartSensor',\r\n eventBus,\r\n }),\r\n new Widget({\r\n name: WidgetName.SambesiWhatsUp,\r\n component: SambesiWhatsUpWidgetComponent,\r\n detailView: new DetailView({ component: SambesiWhatsUpDetailViewComponent }),\r\n tooltip: 'general.term.sambesiWhatsUp',\r\n eventBus,\r\n }),\r\n new Widget({\r\n name: WidgetName.RemoteAccess,\r\n component: RemoteAccessWidgetComponent,\r\n detailView: new DetailView({ component: RemoteAccessDetailViewComponent }),\r\n tooltip: 'general.term.remoteaccess',\r\n eventBus,\r\n }),\r\n new Widget({\r\n name: WidgetName.GIN,\r\n component: GINWidgetComponent,\r\n detailView: new DetailView({ component: GINDetailViewComponent }),\r\n tooltip: 'general.term.gin',\r\n eventBus,\r\n }),\r\n // new Widget({\r\n // name: WidgetName.WindTendency,\r\n // component: WindtendencyWidgetComponent,\r\n // tooltip: 'ropeway.term.windTendency',\r\n // eventBus,\r\n // }),\r\n ];\r\n }\r\n}\r\n","import { WritablePart } from 'src/app/core/utils/type-helper';\r\n\r\nexport class DetailView {\r\n component: any;\r\n modal: boolean = false;\r\n height: number = 300;\r\n\r\n constructor(init?: Partial>) {\r\n Object.assign(this, init);\r\n }\r\n}\r\n","export enum WidgetAction {\r\n ExternalLink,\r\n None,\r\n Expandable\r\n}\r\n","import { EventBusService } from 'src/app/core/eventbus/event-bus.service';\r\nimport { WidgetSelectedEvent } from 'src/app/core/eventbus/events';\r\nimport { WritablePart } from 'src/app/core/utils/type-helper';\r\nimport { DetailView } from 'src/app/maps/widget-list/widget-list-services/domain/detailview.model';\r\nimport { WidgetAction } from 'src/app/maps/widget-list/widget-list-services/domain/widget-action.enum';\r\nimport { v4 as v4guid } from 'uuid';\r\n\r\nexport class Widget {\r\n expandable: boolean;\r\n css: string;\r\n name: any;\r\n expanded: boolean = false;\r\n\r\n component: any;\r\n detailView: DetailView;\r\n tooltip: any;\r\n eventBus: EventBusService;\r\n action: WidgetAction = WidgetAction.None;\r\n\r\n constructor(init?: Partial>) {\r\n Object.assign(this, init);\r\n this.expandable = this.detailView != null;\r\n this.name = this.name ?? v4guid();\r\n if (this.expandable) {\r\n this.action = WidgetAction.Expandable;\r\n }\r\n }\r\n\r\n toggleExpanded(): void {\r\n this.expanded = this.expandable && !this.expanded;\r\n if (this.expanded) {\r\n this.publishExpandedEvent(true);\r\n }\r\n }\r\n\r\n expand(): void {\r\n this.expanded = this.expandable;\r\n if (this.expanded) {\r\n this.publishExpandedEvent(true);\r\n }\r\n }\r\n\r\n close(): void {\r\n this.expanded = false;\r\n }\r\n\r\n private publishExpandedEvent(expanded: boolean) {\r\n const event = new WidgetSelectedEvent();\r\n event.expandable = expanded;\r\n this.eventBus.publish(event);\r\n }\r\n}\r\n","export enum WidgetName {\r\n // Destination\r\n Energy,\r\n FirstEntries,\r\n DevicesOn,\r\n WindTendency,\r\n WeatherTrend,\r\n Kassandra,\r\n DestinationAlarm,\r\n Snowmaking,\r\n GIN,\r\n\r\n // Ropeway\r\n Wind,\r\n Speed,\r\n Torque,\r\n Efa,\r\n RopeKm,\r\n TripCount,\r\n OperatingHours,\r\n Stoptime,\r\n Temperature,\r\n Icing,\r\n WetBulb,\r\n PassengerCount,\r\n Utilization,\r\n Alarm,\r\n CabinPosition,\r\n CarriageTilt,\r\n GearTemperature,\r\n Zones,\r\n Webcam,\r\n TransportWeight,\r\n ClampingCount,\r\n RemoteAccess,\r\n RopewayBrakeReport,\r\n RopewayEcoMode,\r\n SambesiWhatsUp,\r\n RopewayChart,\r\n TruScan,\r\n RopewaySettings,\r\n RopewayAvailability,\r\n\r\n // Destination & Ropeway\r\n AbbSmartSensor,\r\n}\r\n","import { Injectable } from '@angular/core';\r\nimport { combineLatest, Observable } from 'rxjs';\r\nimport { map, take } from 'rxjs/operators';\r\nimport { EventBusService } from 'src/app/core/eventbus/event-bus.service';\r\nimport { MapIconClickedEvent } from 'src/app/core/eventbus/events';\r\nimport { MeteoForecastService } from 'src/app/maps/livedata/meteo-forecast.service';\r\nimport { MeteoLivedataService } from 'src/app/maps/livedata/meteo-livedata.service';\r\nimport { DetailView } from 'src/app/maps/widget-list/widget-list-services/domain/detailview.model';\r\nimport { Widget } from 'src/app/maps/widget-list/widget-list-services/domain/widget.model';\r\nimport { WidgetName } from 'src/app/maps/widget-list/widget-list-services/domain/widgetname.enum';\r\nimport { AlarmWidgetComponent } from 'src/app/maps/widgets/alarm-widget/alarm-widget.component';\r\nimport { TemperatureChartComponent } from 'src/app/maps/widgets/charts/temperature-chart/temperature-chart.component';\r\nimport { WetBulbChartComponent } from 'src/app/maps/widgets/charts/wet-bulb-chart/wet-bulb-chart.component';\r\nimport { WindChartComponent } from 'src/app/maps/widgets/charts/wind-chart/wind-chart.component';\r\nimport { AlarmDetailViewComponent } from 'src/app/maps/widgets/detailviews/alarm-detailview/alarm-detailview.component';\r\nimport { TemperatureWidgetComponent } from 'src/app/maps/widgets/temperature-widget/temperature-widget.component';\r\nimport { WetBulbWidgetComponent } from 'src/app/maps/widgets/wet-bulb-widget/wet-bulb-widget.component';\r\nimport { WindWidgetComponent } from 'src/app/maps/widgets/wind-widget/wind-widget.component';\r\n\r\n@Injectable({\r\n providedIn: 'root',\r\n})\r\nexport class MeteoStationWidgetListService {\r\n constructor(\r\n private eventBus: EventBusService,\r\n private meteoForecastService: MeteoForecastService,\r\n private meteoLiveDataService: MeteoLivedataService\r\n ) {}\r\n\r\n buildWidgetList(mapIconClickedEvent: MapIconClickedEvent): Observable {\r\n return combineLatest([this.meteoLiveDataService.meteoLiveDatas$, this.meteoForecastService.forecasts$]).pipe(\r\n map(([meteoLiveDatas, meteoForecasts]) => {\r\n const widgetsToRemove: WidgetName[] = [];\r\n\r\n const clickedMeteoStationLiveData = meteoLiveDatas?.find(\r\n (liveData) => liveData.meteoDeviceSisId === mapIconClickedEvent.meteoStation.meteoDeviceSisId\r\n );\r\n const clickedMeteoStationForecastData = meteoForecasts?.find(\r\n (forecastData) => forecastData.deviceSisId === mapIconClickedEvent.meteoStation.meteoDeviceSisId\r\n );\r\n\r\n const hasIcingIntensityForecastData = clickedMeteoStationForecastData?.icingIntensity != null;\r\n const hasWetBulbTemperatureCelsiusForecast = clickedMeteoStationForecastData?.wetBulbTemperatureCelsius != null;\r\n const hasWetBulbTemperatureCelsiusLiveData = clickedMeteoStationLiveData?.wetBulbTemperatureCelsius != null;\r\n const hasTemperatureCelsiusLiveData = clickedMeteoStationLiveData?.temperatureCelsius != null;\r\n\r\n if (!hasIcingIntensityForecastData) {\r\n widgetsToRemove.push(WidgetName.Icing);\r\n }\r\n\r\n if (!hasWetBulbTemperatureCelsiusForecast && !hasWetBulbTemperatureCelsiusLiveData) {\r\n widgetsToRemove.push(WidgetName.WetBulb);\r\n }\r\n\r\n if (!hasTemperatureCelsiusLiveData) {\r\n widgetsToRemove.push(WidgetName.Temperature);\r\n }\r\n\r\n const widgets = this.getWidgets(this.eventBus);\r\n\r\n const windWidget = widgets.find((widget) => widget.name === WidgetName.Wind);\r\n\r\n windWidget.expandable =\r\n mapIconClickedEvent.meteoStation != null || mapIconClickedEvent?.ropeway?.meteoStations?.length > 0;\r\n if (mapIconClickedEvent.meteoStation != null) {\r\n windWidget.expand();\r\n } else {\r\n windWidget.close();\r\n }\r\n\r\n return widgets.filter((widget) => !widgetsToRemove.includes(widget.name));\r\n }),\r\n take(1)\r\n );\r\n }\r\n\r\n private getWidgets(eventBus: EventBusService): Widget[] {\r\n return [\r\n new Widget({\r\n name: WidgetName.Alarm,\r\n component: AlarmWidgetComponent,\r\n detailView: new DetailView({ component: AlarmDetailViewComponent }),\r\n tooltip: 'alarming.term.alarms',\r\n eventBus,\r\n }),\r\n new Widget({\r\n name: WidgetName.Wind,\r\n component: WindWidgetComponent,\r\n detailView: new DetailView({ component: WindChartComponent, modal: true }),\r\n tooltip: 'ropeway.term.wind',\r\n eventBus,\r\n }),\r\n new Widget({\r\n name: WidgetName.Temperature,\r\n component: TemperatureWidgetComponent,\r\n detailView: new DetailView({ component: TemperatureChartComponent, modal: true }),\r\n tooltip: 'ropeway.term.temperature',\r\n eventBus,\r\n }),\r\n new Widget({\r\n name: WidgetName.WetBulb,\r\n component: WetBulbWidgetComponent,\r\n detailView: new DetailView({ component: WetBulbChartComponent, modal: true }),\r\n tooltip: 'ropeway.term.wetBulbTemp',\r\n eventBus,\r\n }),\r\n ];\r\n }\r\n}\r\n","import { Injectable } from '@angular/core';\r\nimport { combineLatest, Observable, of } from 'rxjs';\r\nimport { map, take } from 'rxjs/operators';\r\nimport { EventBusService } from 'src/app/core/eventbus/event-bus.service';\r\nimport { MapIconClickedEvent } from 'src/app/core/eventbus/events';\r\nimport { Feature } from 'src/app/domain/feature/feature.model';\r\nimport { FeatureAccessLevel } from 'src/app/domain/feature/feature-access-level.model';\r\nimport { FeatureId } from 'src/app/domain/feature/feature-id.model';\r\nimport { Configuration } from 'src/app/maps/domain/configuration.model';\r\nimport { RopewayBrakeReportService } from 'src/app/maps/domain/ropeway-brakereport/ropeway-brakereport.service';\r\nimport { RopewayEcoModeSettingsService } from 'src/app/maps/domain/ropeway-ecomode/ropeway-ecomode-settings.service';\r\nimport { EnergyLiveDataService } from 'src/app/maps/livedata/energy-livedata.service';\r\nimport { MeteoForecast } from 'src/app/maps/livedata/meteo-forecast.model';\r\nimport { MeteoForecastService } from 'src/app/maps/livedata/meteo-forecast.service';\r\nimport { MeteoLivedata } from 'src/app/maps/livedata/meteo-livedata.model';\r\nimport { MeteoLivedataService } from 'src/app/maps/livedata/meteo-livedata.service';\r\nimport { RopewayAvailabilityService } from 'src/app/maps/livedata/ropeway-availability.service';\r\nimport { RopewayEfaService } from 'src/app/maps/livedata/ropeway-efa.service';\r\nimport { RopewayLivedata } from 'src/app/maps/livedata/ropeway-livedata.model';\r\nimport { RopewayLivedataService } from 'src/app/maps/livedata/ropeway-livedata.service';\r\nimport { SambesiWhatsUpService } from 'src/app/maps/livedata/sambesi-whatsup.service';\r\nimport { DetailView } from 'src/app/maps/widget-list/widget-list-services/domain/detailview.model';\r\nimport { Widget } from 'src/app/maps/widget-list/widget-list-services/domain/widget.model';\r\nimport { WidgetName } from 'src/app/maps/widget-list/widget-list-services/domain/widgetname.enum';\r\nimport { AbbSmartSensorWidgetComponent } from 'src/app/maps/widgets/abbsmartsensor-widget/abbsmartsensor-widget.component';\r\nimport { AlarmWidgetComponent } from 'src/app/maps/widgets/alarm-widget/alarm-widget.component';\r\nimport { CabinPositionWidgetComponent } from 'src/app/maps/widgets/cabinposition-widget/cabinposition-widget.component';\r\nimport { IcingChartComponent } from 'src/app/maps/widgets/charts/icing-chart/icing-chart.component';\r\nimport { SpeedChartComponent } from 'src/app/maps/widgets/charts/speed-chart/speed-chart.component';\r\nimport { TemperatureChartComponent } from 'src/app/maps/widgets/charts/temperature-chart/temperature-chart.component';\r\nimport { TorqueChartComponent } from 'src/app/maps/widgets/charts/torque-chart/torque-chart.component';\r\nimport { WetBulbChartComponent } from 'src/app/maps/widgets/charts/wet-bulb-chart/wet-bulb-chart.component';\r\nimport { WindChartComponent } from 'src/app/maps/widgets/charts/wind-chart/wind-chart.component';\r\nimport { ClampingCountWidgetComponent } from 'src/app/maps/widgets/clampingcount-widget/clampingcount-widget.component';\r\nimport { AbbSmartSensorDetailViewComponent } from 'src/app/maps/widgets/detailviews/abbsmartsensor-detailview/abbsmartsensor-detailview.component';\r\nimport { AlarmDetailViewComponent } from 'src/app/maps/widgets/detailviews/alarm-detailview/alarm-detailview.component';\r\nimport { ClampingCountDetailViewComponent } from 'src/app/maps/widgets/detailviews/clampingcount-detailview/clampingcount-detailview.component';\r\nimport { EfaDetailViewComponent } from 'src/app/maps/widgets/detailviews/efa-detailview/efa-detailview.component';\r\nimport { RemoteAccessDetailViewComponent } from 'src/app/maps/widgets/detailviews/remote-access-detailview/remote-access-detailview.component';\r\nimport { RopewayAvailabilityDetailViewComponent } from 'src/app/maps/widgets/detailviews/ropeway-availability-detailview/ropeway-availability-detailview.component';\r\nimport { RopewayBrakeReportDetailViewComponent } from 'src/app/maps/widgets/detailviews/ropeway-brakereport-detailview/ropeway-brakereport-detailview.component';\r\nimport { RopewayEcoModeDetailViewComponent } from 'src/app/maps/widgets/detailviews/ropeway-ecomode-detailview/ropeway-ecomode-detailview.component';\r\nimport { RopewayEnergyDetailViewComponent } from 'src/app/maps/widgets/detailviews/ropeway-energy-detailview/ropeway-energy-detailview.component';\r\nimport { RopewaySettingsDetailViewComponent } from 'src/app/maps/widgets/detailviews/ropeway-settings-detailview/ropeway-settings-detailview.component';\r\nimport { SambesiWhatsUpDetailViewComponent } from 'src/app/maps/widgets/detailviews/sambesi-whatsup-detailview/sambesi-whatsup-detailview.component';\r\nimport { StoptimeDetailViewComponent } from 'src/app/maps/widgets/detailviews/stoptime-detailview/stoptime-detailview.component';\r\nimport { TransportWeightDetailViewComponent } from 'src/app/maps/widgets/detailviews/transport-weight-detailview/transport-weight-detailview.component';\r\nimport { TruScanDetailViewComponent } from 'src/app/maps/widgets/detailviews/truscan-detailview/truscan-detailview.component';\r\nimport { WebcamDetailViewComponent } from 'src/app/maps/widgets/detailviews/webcam-detailview/webcam-detailview.component';\r\nimport { EfaWidgetComponent } from 'src/app/maps/widgets/efa-widget/efa-widget.component';\r\nimport { EnergyWidgetComponent } from 'src/app/maps/widgets/energy-widget/energy-widget.component';\r\nimport { IcingWidgetComponent } from 'src/app/maps/widgets/icing-widget/icing-widget.component';\r\nimport { OpHoursWidgetComponent } from 'src/app/maps/widgets/ophours-widget/ophours-widget.component';\r\nimport { RemoteAccessWidgetComponent } from 'src/app/maps/widgets/remote-access-widget/remote-access-widget.component';\r\nimport { RopekmWidgetComponent } from 'src/app/maps/widgets/ropekm-widget/ropekm-widget.component';\r\nimport { RopewayAvailabilityWidgetComponent } from 'src/app/maps/widgets/ropeway-availability-widget/ropeway-availability-widget.component';\r\nimport { RopewayBrakeReportWidgetComponent } from 'src/app/maps/widgets/ropeway-brakereport-widget/ropeway-brakereport-widget.component';\r\nimport { RopewayChartWidgetComponent } from 'src/app/maps/widgets/ropeway-chart-widget/ropeway-chart-widget.component';\r\nimport { RopewayEcoModeWidgetComponent } from 'src/app/maps/widgets/ropeway-ecomode-widget/ropeway-ecomode-widget.component';\r\nimport { RopewaySettingsWidgetComponent } from 'src/app/maps/widgets/ropeway-settings-widget/ropeway-settings-widget.component';\r\nimport { SambesiWhatsUpWidgetComponent } from 'src/app/maps/widgets/sambesi-whatsup-widget/sambesi-whatsup-widget.component';\r\nimport { SpeedWidgetComponent } from 'src/app/maps/widgets/speed-widget/speed-widget.component';\r\nimport { StoptimeWidgetComponent } from 'src/app/maps/widgets/stoptime-widget/stoptime-widget.component';\r\nimport { TemperatureWidgetComponent } from 'src/app/maps/widgets/temperature-widget/temperature-widget.component';\r\nimport { TorqueWidgetComponent } from 'src/app/maps/widgets/torque-widget/torque-widget.component';\r\nimport { TransportWeightWidgetComponent } from 'src/app/maps/widgets/transportweight-widget/transportweight-widget.component';\r\nimport { TripsWidgetComponent } from 'src/app/maps/widgets/trips-widget/trips-widget.component';\r\nimport { TruScanWidgetComponent } from 'src/app/maps/widgets/truscan-widget/truscan-widget.component';\r\nimport { UtilizationWidgetComponent } from 'src/app/maps/widgets/utilization-widget/utilization-widget.component';\r\nimport { WebcamWidgetComponent } from 'src/app/maps/widgets/webcam-widget/webcam-widget.component';\r\nimport { WetBulbWidgetComponent } from 'src/app/maps/widgets/wet-bulb-widget/wet-bulb-widget.component';\r\nimport { WindWidgetComponent } from 'src/app/maps/widgets/wind-widget/wind-widget.component';\r\n\r\n@Injectable({\r\n providedIn: 'root',\r\n})\r\nexport class RopewayWidgetListService {\r\n constructor(\r\n private eventBus: EventBusService,\r\n private energyLiveDataService: EnergyLiveDataService,\r\n private meteoForecastService: MeteoForecastService,\r\n private meteoLiveDataService: MeteoLivedataService,\r\n private ropewayLiveDataService: RopewayLivedataService,\r\n private ropewayEcoModeSettingsService: RopewayEcoModeSettingsService,\r\n private ropewayEfaService: RopewayEfaService,\r\n private sambesiWhatsUpService: SambesiWhatsUpService,\r\n private ropewayAvailabilityService: RopewayAvailabilityService,\r\n private ropewayBrakeReportService: RopewayBrakeReportService\r\n ) {}\r\n\r\n buildWidgetList(\r\n mapIconClickedEvent: MapIconClickedEvent,\r\n userFeatures: Feature[],\r\n bigScreenMode: boolean\r\n ): Observable {\r\n if (!userFeatures) {\r\n return of([]);\r\n }\r\n\r\n return combineLatest([\r\n this.ropewayLiveDataService.ropewayLiveData$,\r\n this.meteoLiveDataService.meteoLiveDatas$,\r\n this.meteoForecastService.forecasts$,\r\n this.energyLiveDataService.energy$,\r\n this.ropewayEcoModeSettingsService.ropewayEcoModeSettings$.pipe(\r\n map((settings) => settings.find((d) => d.ropewaySisId === mapIconClickedEvent?.ropeway.sisId))\r\n ),\r\n this.ropewayEfaService.efas$,\r\n this.sambesiWhatsUpService.messages$,\r\n this.ropewayAvailabilityService.ropewayAvailability$,\r\n this.ropewayBrakeReportService.ropewayBrakeReports$,\r\n ]).pipe(\r\n map(\r\n ([\r\n ropewayLiveDatas,\r\n meteoLiveDatas,\r\n meteoForecasts,\r\n energyLiveDatas,\r\n ropewayEcoModeSettings,\r\n efas,\r\n sambesiWhatsUpMessages,\r\n ropewayAvailability,\r\n ropewayBrakeReports,\r\n ]) => {\r\n const event = mapIconClickedEvent;\r\n const ropeway = event?.ropeway;\r\n const ropewayMeteoStations = ropeway?.meteoStations;\r\n const ropewayEfas = efas.filter((a) => a.sisId === ropeway.sisId);\r\n\r\n let ropewayLiveData: RopewayLivedata;\r\n if (ropewayLiveDatas && ropeway) {\r\n ropewayLiveData = ropewayLiveDatas.find((d) => d.deviceSisId === ropeway.sisId);\r\n }\r\n\r\n const widgetsToRemove: WidgetName[] = [];\r\n\r\n let clickedRopewayMeteoLiveData: MeteoLivedata[] = [];\r\n let clickedRopewayMeteoForecastData: MeteoForecast[];\r\n\r\n if (ropewayMeteoStations) {\r\n if (meteoLiveDatas) {\r\n clickedRopewayMeteoLiveData = meteoLiveDatas.filter((liveData) =>\r\n ropewayMeteoStations.find((ms) => ms.meteoDeviceSisId === liveData.meteoDeviceSisId)\r\n );\r\n }\r\n if (meteoForecasts) {\r\n clickedRopewayMeteoForecastData = meteoForecasts.filter((forecastData) =>\r\n ropewayMeteoStations.find((ms) => ms.meteoDeviceSisId === forecastData.deviceSisId)\r\n );\r\n }\r\n }\r\n\r\n if (\r\n ropeway == null ||\r\n !(\r\n ropewayEfas.length > 0 &&\r\n userFeatures.some((f) =>\r\n f.hasMinimumRequirementFor(new Feature(FeatureId.COCKPIT_TELEMETRY, FeatureAccessLevel.READ))\r\n )\r\n )\r\n ) {\r\n widgetsToRemove.push(WidgetName.Efa);\r\n }\r\n if (\r\n !(ropeway.meteoStations?.length > 0) &&\r\n !(\r\n ropewayEfas.length > 0 &&\r\n userFeatures.some((f) =>\r\n f.hasMinimumRequirementFor(new Feature(FeatureId.COCKPIT_TELEMETRY, FeatureAccessLevel.READ))\r\n )\r\n )\r\n ) {\r\n widgetsToRemove.push(WidgetName.Alarm);\r\n }\r\n if (ropewayLiveData?.actualSpeedMps == null) {\r\n widgetsToRemove.push(WidgetName.Speed);\r\n }\r\n if (ropewayLiveData?.driveMotorCurrentAmpere == null && ropewayLiveData?.driveMotorTorquePercent == null) {\r\n widgetsToRemove.push(WidgetName.Torque);\r\n }\r\n if (ropewayLiveData?.ropeKm == null) {\r\n widgetsToRemove.push(WidgetName.RopeKm);\r\n }\r\n if (ropewayLiveData?.tripCount == null) {\r\n widgetsToRemove.push(WidgetName.TripCount);\r\n }\r\n if (ropewayLiveData?.operatingHours == null) {\r\n widgetsToRemove.push(WidgetName.OperatingHours);\r\n }\r\n if (ropewayLiveData?.vehicleOnTrackCountPercent == null && ropewayLiveData?.vehicleCountPercent == null) {\r\n widgetsToRemove.push(WidgetName.Utilization);\r\n }\r\n if (ropewayLiveData?.cabinPositionMeter == null) {\r\n widgetsToRemove.push(WidgetName.CabinPosition);\r\n }\r\n if (!ropewayLiveData) {\r\n widgetsToRemove.push(WidgetName.Stoptime);\r\n }\r\n\r\n if (!clickedRopewayMeteoLiveData?.find((liveData) => liveData.temperatureCelsius != null)) {\r\n widgetsToRemove.push(WidgetName.Temperature);\r\n }\r\n if (!event.meteoStation && !ropewayMeteoStations?.length) {\r\n widgetsToRemove.push(WidgetName.Wind);\r\n }\r\n\r\n if (!clickedRopewayMeteoForecastData?.find((forecastData) => forecastData.icingIntensity != null)) {\r\n widgetsToRemove.push(WidgetName.Icing);\r\n }\r\n\r\n const hasWetBulbTemperatureCelsiusForecast = clickedRopewayMeteoForecastData?.find(\r\n (forecastData) => forecastData.wetBulbTemperatureCelsius != null\r\n );\r\n const hasWetBulbTemperatureCelsiusLiveData = clickedRopewayMeteoLiveData?.find(\r\n (meteoData) => meteoData.wetBulbTemperatureCelsius != null\r\n );\r\n\r\n if (!hasWetBulbTemperatureCelsiusForecast && !hasWetBulbTemperatureCelsiusLiveData) {\r\n widgetsToRemove.push(WidgetName.WetBulb);\r\n }\r\n\r\n if (!ropewayLiveData?.vehicleData || !ropewayLiveData.vehicleData['transportWeightKg']) {\r\n widgetsToRemove.push(WidgetName.TransportWeight);\r\n }\r\n\r\n if (!ropewayLiveData?.vehicleData || !ropewayLiveData.vehicleData['clampingCount']) {\r\n widgetsToRemove.push(WidgetName.ClampingCount);\r\n }\r\n\r\n if (\r\n !ropeway?.abbSmartSensors?.length ||\r\n !userFeatures.some((f) => f.featureId === FeatureId.COCKPIT_ABBSMARTSENSOR)\r\n ) {\r\n widgetsToRemove.push(WidgetName.AbbSmartSensor);\r\n }\r\n\r\n if (\r\n !ropeway?.truScanInstallations?.length ||\r\n !userFeatures.some((f) => f.featureId === FeatureId.COCKPIT_TRUSCAN)\r\n ) {\r\n widgetsToRemove.push(WidgetName.TruScan);\r\n }\r\n\r\n if (\r\n bigScreenMode ||\r\n !userFeatures.some((f) => f.featureId === FeatureId.COCKPIT_WEBCAM) ||\r\n !ropeway?.webcams?.length\r\n ) {\r\n widgetsToRemove.push(WidgetName.Webcam);\r\n }\r\n\r\n if (\r\n !userFeatures.some((f) => f.featureId === FeatureId.COCKPIT_REMOTEACCESS) ||\r\n !ropeway?.remoteAccesses?.length\r\n ) {\r\n widgetsToRemove.push(WidgetName.RemoteAccess);\r\n }\r\n\r\n if (\r\n !userFeatures.some((f) => f.featureId === FeatureId.COCKPIT_SAMBESI_WHATSUP) ||\r\n !sambesiWhatsUpMessages.some((m) => m.ropewaySisId === ropeway.sisId)\r\n ) {\r\n widgetsToRemove.push(WidgetName.SambesiWhatsUp);\r\n }\r\n\r\n const widgets = this.getWidgets(this.eventBus);\r\n\r\n const ropewayConfig = ropeway?.configurations?.find(\r\n (c) =>\r\n c.configKey === Configuration.driveTorqueNmKey || c.configKey === Configuration.driveMotorCurrentAmpereKey\r\n );\r\n\r\n const torqueWidget = widgets.find((widget) => widget.name === WidgetName.Torque);\r\n if (torqueWidget && ropewayConfig) {\r\n torqueWidget.tooltip =\r\n ropewayConfig.configKey === Configuration.driveMotorCurrentAmpereKey\r\n ? 'ropeway.term.motorcurrent'\r\n : 'ropeway.term.torque';\r\n }\r\n\r\n const windWidget = widgets.find((widget) => widget.name === WidgetName.Wind);\r\n\r\n windWidget.expandable =\r\n mapIconClickedEvent.meteoStation != null || mapIconClickedEvent?.ropeway?.meteoStations?.length > 0;\r\n if (mapIconClickedEvent.meteoStation != null) {\r\n windWidget.expand();\r\n } else {\r\n windWidget.close();\r\n }\r\n\r\n if (\r\n !userFeatures.some((f) => f.featureId === FeatureId.COCKPIT_ENERGY) ||\r\n !energyLiveDatas.some((e) => ropeway.sisId === e.parentSisId)\r\n ) {\r\n widgetsToRemove.push(WidgetName.Energy);\r\n }\r\n\r\n if (!ropewayEcoModeSettings || !userFeatures.some((f) => f.featureId === FeatureId.COCKPIT_ECOMODE)) {\r\n widgetsToRemove.push(WidgetName.RopewayEcoMode);\r\n }\r\n\r\n if (!userFeatures.some((f) => f.featureId === FeatureId.COCKPIT_ROPEWAY_SETTINGS)) {\r\n widgetsToRemove.push(WidgetName.RopewaySettings);\r\n }\r\n\r\n if (\r\n !ropewayBrakeReports?.length ||\r\n !userFeatures.some((f) => f.featureId === FeatureId.COCKPIT_ROPEWAY_BRAKEREPORT)\r\n ) {\r\n widgetsToRemove.push(WidgetName.RopewayBrakeReport);\r\n }\r\n\r\n if (\r\n !ropewayAvailability ||\r\n !ropeway.availability ||\r\n !userFeatures.some((f) =>\r\n f.hasMinimumRequirementFor(new Feature(FeatureId.COCKPIT_ROPEWAY_AVAILABILITY, FeatureAccessLevel.READ))\r\n )\r\n ) {\r\n widgetsToRemove.push(WidgetName.RopewayAvailability);\r\n }\r\n\r\n if (\r\n widgetsToRemove.includes(WidgetName.Wind) &&\r\n widgetsToRemove.includes(WidgetName.Torque) &&\r\n widgetsToRemove.includes(WidgetName.Speed)\r\n ) {\r\n widgetsToRemove.push(WidgetName.RopewayChart);\r\n }\r\n\r\n return widgets.filter((widget) => !widgetsToRemove.includes(widget.name));\r\n }\r\n ),\r\n take(1)\r\n );\r\n }\r\n\r\n private getWidgets(eventBus: EventBusService): Widget[] {\r\n return [\r\n new Widget({\r\n name: WidgetName.Speed,\r\n component: SpeedWidgetComponent,\r\n detailView: new DetailView({ component: SpeedChartComponent, modal: true }),\r\n tooltip: 'ropeway.term.speed',\r\n eventBus,\r\n }),\r\n new Widget({\r\n name: WidgetName.Alarm,\r\n component: AlarmWidgetComponent,\r\n detailView: new DetailView({ component: AlarmDetailViewComponent }),\r\n tooltip: 'alarming.term.alarms',\r\n eventBus,\r\n }),\r\n new Widget({\r\n name: WidgetName.Efa,\r\n component: EfaWidgetComponent,\r\n detailView: new DetailView({ component: EfaDetailViewComponent }),\r\n tooltip: 'general.term.efa',\r\n eventBus,\r\n }),\r\n new Widget({\r\n name: WidgetName.Wind,\r\n component: WindWidgetComponent,\r\n detailView: new DetailView({ component: WindChartComponent, modal: true }),\r\n tooltip: 'ropeway.term.wind',\r\n eventBus,\r\n }),\r\n new Widget({\r\n name: WidgetName.Torque,\r\n component: TorqueWidgetComponent,\r\n detailView: new DetailView({ component: TorqueChartComponent, modal: true }),\r\n tooltip: 'ropeway.term.torque',\r\n eventBus,\r\n }),\r\n new Widget({\r\n name: WidgetName.RopeKm,\r\n component: RopekmWidgetComponent,\r\n tooltip: 'ropeway.term.ropeKm',\r\n eventBus,\r\n }),\r\n new Widget({\r\n name: WidgetName.TripCount,\r\n component: TripsWidgetComponent,\r\n tooltip: 'ropeway.term.tripCount',\r\n eventBus,\r\n }),\r\n new Widget({\r\n name: WidgetName.OperatingHours,\r\n component: OpHoursWidgetComponent,\r\n tooltip: 'ropeway.term.operatingHours',\r\n eventBus,\r\n }),\r\n new Widget({\r\n name: WidgetName.TransportWeight,\r\n component: TransportWeightWidgetComponent,\r\n detailView: new DetailView({ component: TransportWeightDetailViewComponent }),\r\n tooltip: 'ropeway.term.transportweight',\r\n eventBus,\r\n }),\r\n new Widget({\r\n name: WidgetName.ClampingCount,\r\n component: ClampingCountWidgetComponent,\r\n detailView: new DetailView({ component: ClampingCountDetailViewComponent }),\r\n tooltip: 'ropeway.term.clampingCount',\r\n eventBus,\r\n }),\r\n new Widget({\r\n name: WidgetName.Stoptime,\r\n component: StoptimeWidgetComponent,\r\n detailView: new DetailView({ component: StoptimeDetailViewComponent }),\r\n tooltip: 'ropeway.term.stopTime',\r\n eventBus,\r\n }),\r\n new Widget({\r\n name: WidgetName.Utilization,\r\n component: UtilizationWidgetComponent,\r\n tooltip: 'ropeway.term.utilization',\r\n eventBus,\r\n }),\r\n new Widget({\r\n name: WidgetName.CabinPosition,\r\n component: CabinPositionWidgetComponent,\r\n tooltip: 'ropeway.term.cabinPosition',\r\n eventBus,\r\n }),\r\n new Widget({\r\n name: WidgetName.Temperature,\r\n component: TemperatureWidgetComponent,\r\n detailView: new DetailView({ component: TemperatureChartComponent, modal: true }),\r\n tooltip: 'ropeway.term.temperature',\r\n eventBus,\r\n }),\r\n new Widget({\r\n name: WidgetName.Icing,\r\n component: IcingWidgetComponent,\r\n detailView: new DetailView({ component: IcingChartComponent, modal: true }),\r\n tooltip: 'ropeway.term.icing',\r\n eventBus,\r\n }),\r\n new Widget({\r\n name: WidgetName.WetBulb,\r\n component: WetBulbWidgetComponent,\r\n detailView: new DetailView({ component: WetBulbChartComponent, modal: true }),\r\n tooltip: 'ropeway.term.wetBulbTemp',\r\n eventBus,\r\n }),\r\n new Widget({\r\n name: WidgetName.Webcam,\r\n component: WebcamWidgetComponent,\r\n detailView: new DetailView({ component: WebcamDetailViewComponent, height: 212 }),\r\n tooltip: 'Webcam',\r\n eventBus,\r\n }),\r\n new Widget({\r\n name: WidgetName.AbbSmartSensor,\r\n component: AbbSmartSensorWidgetComponent,\r\n detailView: new DetailView({ component: AbbSmartSensorDetailViewComponent }),\r\n tooltip: 'general.term.abbSmartSensor',\r\n eventBus,\r\n }),\r\n new Widget({\r\n name: WidgetName.TruScan,\r\n component: TruScanWidgetComponent,\r\n detailView: new DetailView({ component: TruScanDetailViewComponent }),\r\n tooltip: 'general.term.truScan',\r\n eventBus,\r\n }),\r\n new Widget({\r\n name: WidgetName.Energy,\r\n component: EnergyWidgetComponent,\r\n detailView: new DetailView({ component: RopewayEnergyDetailViewComponent }),\r\n tooltip: 'energy.term.power',\r\n eventBus,\r\n }),\r\n new Widget({\r\n name: WidgetName.RopewayEcoMode,\r\n component: RopewayEcoModeWidgetComponent,\r\n detailView: new DetailView({ component: RopewayEcoModeDetailViewComponent }),\r\n tooltip: 'general.term.ropewayEcoMode',\r\n eventBus,\r\n }),\r\n new Widget({\r\n name: WidgetName.SambesiWhatsUp,\r\n component: SambesiWhatsUpWidgetComponent,\r\n detailView: new DetailView({ component: SambesiWhatsUpDetailViewComponent }),\r\n tooltip: 'general.term.sambesiWhatsUp',\r\n eventBus,\r\n }),\r\n new Widget({\r\n name: WidgetName.RopewaySettings,\r\n component: RopewaySettingsWidgetComponent,\r\n detailView: new DetailView({ component: RopewaySettingsDetailViewComponent }),\r\n tooltip: 'general.term.settings',\r\n eventBus,\r\n }),\r\n new Widget({\r\n name: WidgetName.RopewayAvailability,\r\n component: RopewayAvailabilityWidgetComponent,\r\n detailView: new DetailView({ component: RopewayAvailabilityDetailViewComponent }),\r\n tooltip: 'general.term.ropewayAvailability',\r\n eventBus,\r\n }),\r\n new Widget({\r\n name: WidgetName.RopewayChart,\r\n component: RopewayChartWidgetComponent,\r\n tooltip: 'general.term.multiChart',\r\n eventBus,\r\n }),\r\n new Widget({\r\n name: WidgetName.RemoteAccess,\r\n component: RemoteAccessWidgetComponent,\r\n detailView: new DetailView({ component: RemoteAccessDetailViewComponent }),\r\n tooltip: 'general.term.remoteaccess',\r\n eventBus,\r\n }),\r\n new Widget({\r\n name: WidgetName.RopewayBrakeReport,\r\n component: RopewayBrakeReportWidgetComponent,\r\n detailView: new DetailView({ component: RopewayBrakeReportDetailViewComponent }),\r\n tooltip: 'ropewayBrakeReport.term.brakeReports',\r\n eventBus,\r\n }),\r\n // Not used yet\r\n // new Widget({\r\n // name: WidgetName.PassengerCount,\r\n // component: PassengerCountWidgetComponent,\r\n // tooltip: 'ropeway.term.passengerCount',\r\n // eventBus,\r\n // }),\r\n // new Widget({\r\n // name: WidgetName.CarriageTilt,\r\n // component: CarriagetiltWidgetComponent,\r\n // tooltip: 'ropeway.term.cabinTilt',\r\n // eventBus,\r\n // }),\r\n // new Widget({\r\n // name: WidgetName.GearTemperature,\r\n // component: GeartempWidgetComponent,\r\n // tooltip: 'ropeway.term.gearTemperature',\r\n // eventBus,\r\n // }),\r\n // new Widget({\r\n // name: WidgetName.Zones,\r\n // component: ZonesWidgetComponent,\r\n // tooltip: 'ropeway.term.zoneMonitoring',\r\n // eventBus,\r\n // }),\r\n ];\r\n }\r\n}\r\n","import { Injectable } from '@angular/core';\r\nimport { combineLatest, Observable } from 'rxjs';\r\nimport { distinctUntilChanged, filter, map, startWith, switchMap } from 'rxjs/operators';\r\nimport { EventBusService } from 'src/app/core/eventbus/event-bus.service';\r\nimport { MapIconClickedEvent, RopewaySettingsUpdatedEvent } from 'src/app/core/eventbus/events';\r\nimport { ScreenSizeService } from 'src/app/core/utils/screen-size.service';\r\nimport { DestinationService } from 'src/app/domain/destination/destination.service';\r\nimport { Feature } from 'src/app/domain/feature/feature.model';\r\nimport { MasterData } from 'src/app/maps/domain/masterdata.model';\r\nimport { MasterdataService } from 'src/app/maps/domain/masterdata.service';\r\nimport { SelectedMapElementService } from 'src/app/maps/selected-map-element.service';\r\nimport { CustomMarkerWidgetListService } from 'src/app/maps/widget-list/widget-list-services/custom-marker-widget-list.service';\r\nimport { DestinationWidgetListService } from 'src/app/maps/widget-list/widget-list-services/destination-widget-list.service';\r\nimport { Widget } from 'src/app/maps/widget-list/widget-list-services/domain/widget.model';\r\nimport { WidgetList } from 'src/app/maps/widget-list/widget-list-services/domain/widget-list.model';\r\nimport { MeteoStationWidgetListService } from 'src/app/maps/widget-list/widget-list-services/meteo-station-widget-list.service';\r\nimport { RopewayWidgetListService } from 'src/app/maps/widget-list/widget-list-services/ropeway-widget-list.service';\r\n\r\n@Injectable({\r\n providedIn: 'root',\r\n})\r\nexport class WidgetListService {\r\n private columns = 4;\r\n\r\n readonly widgetList$: Observable = combineLatest([\r\n this.destinationService.selectedTenantFeatures$.pipe(distinctUntilChanged()),\r\n this.screenSizeService.bigScreenMode$,\r\n this.selectedMapElementService.selectedMapElement$,\r\n this.masterDataService.masterData$.pipe(\r\n distinctUntilChanged((prev, curr) => curr.sisId === prev.sisId),\r\n filter((masterData) => masterData?.sisId?.length > 0),\r\n switchMap((masterData) =>\r\n this.eventBus.observe(RopewaySettingsUpdatedEvent).pipe(\r\n distinctUntilChanged(\r\n (prev, curr) => prev?.ropewaySettings.availability === curr?.ropewaySettings.availability\r\n ),\r\n startWith(null),\r\n map(() => masterData)\r\n )\r\n )\r\n ),\r\n ]).pipe(\r\n switchMap(([userFeatures, bigScreenMode, mapIconClickedEvent, masterData]) =>\r\n this.buildWidgetList(userFeatures, bigScreenMode, mapIconClickedEvent, masterData)\r\n ),\r\n map((widgets) => ({\r\n widgets,\r\n columns: this.columns,\r\n }))\r\n );\r\n\r\n constructor(\r\n private ropewayWidgetListService: RopewayWidgetListService,\r\n private destinationWidgetListService: DestinationWidgetListService,\r\n private meteoStationWidgetListService: MeteoStationWidgetListService,\r\n private customMarkerWidgetListService: CustomMarkerWidgetListService,\r\n private screenSizeService: ScreenSizeService,\r\n private destinationService: DestinationService,\r\n private masterDataService: MasterdataService,\r\n private selectedMapElementService: SelectedMapElementService,\r\n private eventBus: EventBusService\r\n ) {}\r\n\r\n private buildWidgetList(\r\n userFeatures: Feature[],\r\n bigScreenMode: boolean,\r\n mapIconClickedEvent: MapIconClickedEvent,\r\n masterData: MasterData\r\n ): Observable {\r\n if (mapIconClickedEvent.ropeway) {\r\n return this.ropewayWidgetListService.buildWidgetList(mapIconClickedEvent, userFeatures, bigScreenMode);\r\n }\r\n\r\n if (mapIconClickedEvent.meteoStation) {\r\n return this.meteoStationWidgetListService.buildWidgetList(mapIconClickedEvent);\r\n }\r\n\r\n if (mapIconClickedEvent.customMarker) {\r\n return this.customMarkerWidgetListService.buildWidgetList(mapIconClickedEvent, userFeatures, bigScreenMode);\r\n }\r\n\r\n return this.destinationWidgetListService.buildWidgetList(masterData, userFeatures);\r\n }\r\n}\r\n","import { Component, ElementRef, OnInit, QueryList, ViewChild, ViewChildren } from '@angular/core';\r\nimport { IonContent, ModalController } from '@ionic/angular';\r\nimport { take, takeUntil } from 'rxjs/operators';\r\nimport { EventBusService } from 'src/app/core/eventbus/event-bus.service';\r\nimport { EventBusSubscriberBase } from 'src/app/core/eventbus/event-bus-subscriber-base';\r\nimport { WidgetSelectedEvent } from 'src/app/core/eventbus/events';\r\nimport { NavigatorService } from 'src/app/core/navigator/navigator.service';\r\nimport { ScreenSizeService } from 'src/app/core/utils/screen-size.service';\r\nimport { DestinationService } from 'src/app/domain/destination/destination.service';\r\nimport { ModalPopupComponent } from 'src/app/maps/modal-popup/modal-popup.component';\r\nimport { WidgetDisplay } from 'src/app/maps/widget-list/widget-display.model';\r\nimport { Widget } from 'src/app/maps/widget-list/widget-list-services/domain/widget.model';\r\nimport { WidgetAction } from 'src/app/maps/widget-list/widget-list-services/domain/widget-action.enum';\r\nimport { WidgetList } from 'src/app/maps/widget-list/widget-list-services/domain/widget-list.model';\r\nimport { WidgetName } from 'src/app/maps/widget-list/widget-list-services/domain/widgetname.enum';\r\nimport { WidgetListService } from 'src/app/maps/widget-list/widget-list-services/widget-list.service';\r\n\r\n@Component({\r\n selector: 'sis-widget-list',\r\n templateUrl: './widget-list.component.html',\r\n styleUrls: ['./widget-list.component.scss'],\r\n standalone: false\r\n})\r\nexport class WidgetListComponent extends EventBusSubscriberBase implements OnInit {\r\n readonly GRID_L = 'sis-grid-left';\r\n readonly GRID_M = 'sis-grid-mid';\r\n readonly GRID_R = 'sis-grid-right';\r\n readonly NO_BOTTOM_BORDER = 'sis-grid-selected-bottom';\r\n readonly MUTED_LEFT_BORDER = 'sis-grid-notselected';\r\n readonly MUTED_BORDER = 'sis-grid-not-expanded-rows';\r\n readonly MUTED_SVG = 'sis-svg-not-expanded';\r\n\r\n private borders: string[] = [];\r\n private template: WidgetList;\r\n private widgetDisplayMap: Map;\r\n\r\n widgets: Widget[][];\r\n isIphone: boolean;\r\n bigScreenMode: boolean;\r\n\r\n @ViewChild('ionContent', { static: false }) ionContent: IonContent;\r\n @ViewChildren('widgetCol') widgetCols: QueryList;\r\n\r\n constructor(\r\n private mapElementSelectedService: WidgetListService,\r\n private modalController: ModalController,\r\n private screenSizeService: ScreenSizeService,\r\n private navigatorService: NavigatorService,\r\n private destinationService: DestinationService,\r\n eventBus: EventBusService\r\n ) {\r\n super(eventBus);\r\n\r\n this.isIphone = this.navigatorService.isIphone();\r\n }\r\n\r\n ngOnInit() {\r\n this.mapElementSelectedService.widgetList$.pipe(takeUntil(this.onDestroy$)).subscribe((widgetList) => {\r\n this.widgetDisplayMap = this.setupWidgetMap(widgetList);\r\n });\r\n\r\n this.destinationService.selectedTenant$.pipe(takeUntil(this.onDestroy$)).subscribe(() => this.closeAllCharts());\r\n\r\n this.observe(WidgetSelectedEvent, (event) => {\r\n if (!event.expandable) {\r\n this.closeAllCharts();\r\n }\r\n });\r\n\r\n this.screenSizeService.bigScreenMode$.pipe(takeUntil(this.onDestroy$)).subscribe((bigScreenMode) => {\r\n this.bigScreenMode = bigScreenMode;\r\n this.doScrollMagic(this.bigScreenMode);\r\n });\r\n\r\n this.onDestroy$.pipe(take(1)).subscribe(() => {\r\n this.eventBus.publish(new WidgetSelectedEvent());\r\n });\r\n }\r\n\r\n onClick(widget: Widget): void {\r\n if (!widget) {\r\n return;\r\n }\r\n\r\n this.closeAllChartsBut(widget.name);\r\n widget.toggleExpanded();\r\n\r\n if (widget.expanded) {\r\n this.scrollToDetailView();\r\n }\r\n }\r\n\r\n hasLink(widget: Widget): boolean {\r\n return widget && widget.action === WidgetAction.ExternalLink;\r\n }\r\n\r\n widgetCursor(widget: Widget): string {\r\n return this.hasLink(widget) || widget.expandable ? 'pointer' : 'default';\r\n }\r\n\r\n detailCursor(widget: Widget): string {\r\n return this.bigScreenMode && widget && widget.detailView && widget.detailView.modal ? 'pointer' : 'default';\r\n }\r\n\r\n getWidgetClass(widget: Widget): string {\r\n if (!widget) {\r\n return;\r\n }\r\n\r\n const widgetDisplay = this.widgetDisplayMap.get(widget.name);\r\n let classes: string = widget.css;\r\n\r\n // No widget is expanded\r\n const expandedWidget = this.getExpandedWidget();\r\n if (!expandedWidget) {\r\n return classes;\r\n }\r\n\r\n const expandedRow = expandedWidget.row;\r\n const expandedCol = expandedWidget.col;\r\n\r\n // If this is the expanded widget, remove its bottom border\r\n if (widget.expanded) {\r\n return classes.concat(` ${this.NO_BOTTOM_BORDER}`);\r\n }\r\n\r\n classes = classes.concat(` ${this.MUTED_SVG}`);\r\n\r\n // If this widget is one position to the right of the expanded widget, leave it default\r\n if (widgetDisplay.row === expandedRow && widgetDisplay.col === expandedCol + 1) {\r\n return classes;\r\n }\r\n\r\n // If this widget is on the same row as the expanded widget, mute its left border\r\n if (widgetDisplay.row === expandedRow) {\r\n return classes.concat(` ${this.MUTED_LEFT_BORDER}`);\r\n }\r\n\r\n // If this widget is directly above the expanded widget, only mute its left border\r\n if (widgetDisplay.row === expandedRow - 1 && widgetDisplay.col === expandedCol) {\r\n return classes.concat(` ${this.MUTED_LEFT_BORDER}`);\r\n }\r\n\r\n // Mute the left and bottom borders of any other widget\r\n return classes.concat(` ${this.MUTED_BORDER}`);\r\n }\r\n\r\n async presentModal(template: Widget): Promise {\r\n const detailView = template.detailView;\r\n if (!(detailView && detailView.modal && detailView.component) || !this.bigScreenMode) {\r\n return;\r\n }\r\n const modal = await this.modalController.create({\r\n component: ModalPopupComponent,\r\n componentProps: { component: detailView.component },\r\n });\r\n return modal.present();\r\n }\r\n\r\n private setupWidgetMap(template: WidgetList): Map {\r\n const widgetMap = new Map();\r\n\r\n if (!template || template.columns === 0) {\r\n this.widgets = this.setUpWidgetArray(widgetMap);\r\n return widgetMap;\r\n }\r\n\r\n this.template = template;\r\n const widgets = template.widgets;\r\n const columns = template.columns;\r\n\r\n this.borders[0] = this.GRID_L;\r\n for (let k = 1; k < columns; k++) {\r\n this.borders[k] = k === columns - 1 ? this.GRID_R : this.GRID_M;\r\n }\r\n\r\n let i: number;\r\n for (i = 0; i < widgets.length; i++) {\r\n this.setUpWidget(i, columns, widgetMap, widgets[i]);\r\n }\r\n this.setUpPlaceholderWidgets(i, columns, widgetMap);\r\n\r\n this.widgets = this.setUpWidgetArray(widgetMap);\r\n\r\n return widgetMap;\r\n }\r\n\r\n private setUpWidget(i: number, columns: number, widgetMap: Map, widget: Widget): void {\r\n const row = Math.floor(i / columns);\r\n const col = i % columns;\r\n\r\n if (!widget) {\r\n return;\r\n }\r\n\r\n widget.css = this.borders[col];\r\n\r\n widgetMap.set(widget.name, { widget, row, col });\r\n }\r\n\r\n private setUpPlaceholderWidgets(i: number, columns: number, widgetMap: Map): void {\r\n const remaining = columns - (i % columns);\r\n if (remaining !== columns) {\r\n for (let e = 0; e < remaining; e++, i++) {\r\n const row = Math.floor(i / columns);\r\n const col = i % columns;\r\n const emptyWidget = this.getPlaceholderWidget(this.borders[col]);\r\n\r\n widgetMap.set(emptyWidget.name, { widget: emptyWidget, row, col });\r\n }\r\n }\r\n }\r\n\r\n private getPlaceholderWidget(css: string): Widget {\r\n return new Widget({ css });\r\n }\r\n\r\n private setUpWidgetArray(widgetMap: Map): Widget[][] {\r\n const result: Widget[][] = [];\r\n widgetMap.forEach((value) => {\r\n if (!result[value.row]) {\r\n result[value.row] = [];\r\n }\r\n result[value.row][value.col] = value.widget;\r\n });\r\n return result;\r\n }\r\n\r\n private closeAllCharts(): void {\r\n this.closeAllChartsBut(null);\r\n }\r\n\r\n private closeAllChartsBut(widgetName: WidgetName): void {\r\n if (!this.template) {\r\n return;\r\n }\r\n this.template.widgets.forEach((widget: Widget) => {\r\n if (widget.name !== widgetName) {\r\n widget.close();\r\n }\r\n });\r\n }\r\n\r\n private getExpandedWidget(): WidgetDisplay {\r\n let expandedWidget: WidgetDisplay;\r\n this.widgetDisplayMap.forEach((v) => {\r\n if (v.widget.expanded) {\r\n expandedWidget = v;\r\n return;\r\n }\r\n });\r\n return expandedWidget;\r\n }\r\n\r\n private doScrollMagic(bigScreenMode: boolean) {\r\n if (this.isIphone) {\r\n return;\r\n }\r\n\r\n const checkExist = setInterval(() => {\r\n const contents = document.querySelectorAll('#ion-content-widget-list');\r\n\r\n if (contents) {\r\n contents.forEach((content) => {\r\n const inner = content.shadowRoot.querySelector('main');\r\n\r\n if (inner) {\r\n clearInterval(checkExist);\r\n\r\n if (bigScreenMode && !this.navigatorService.isMac()) {\r\n inner.style.marginRight = '-16.5px';\r\n inner.style.overflowY = 'scroll';\r\n inner.style.overflowX = 'hidden';\r\n } else {\r\n inner.style.marginRight = '0px';\r\n inner.style.overflowY = 'var(--overflow)';\r\n }\r\n }\r\n });\r\n }\r\n }, 50);\r\n }\r\n\r\n private scrollToDetailView() {\r\n if (this.isIphone) {\r\n return;\r\n }\r\n\r\n let detailViewContainer: HTMLElement;\r\n const checkExist = setInterval(() => {\r\n detailViewContainer = document.getElementById('detailview-container');\r\n if (detailViewContainer && detailViewContainer.offsetParent && this.ionContent) {\r\n clearInterval(checkExist);\r\n const height = this.widgetCols.first.nativeElement.offsetHeight;\r\n const offset = (detailViewContainer.offsetParent as HTMLElement).offsetTop - height - 2;\r\n this.ionContent.scrollToPoint(0, offset, 500);\r\n }\r\n }, 50);\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 \r\n \r\n \r\n
\r\n \r\n
\r\n","import { Component, EventEmitter, Input, OnInit, Output } from '@angular/core';\r\nimport { take } from 'rxjs/operators';\r\nimport { EventBusService } from 'src/app/core/eventbus/event-bus.service';\r\nimport { MapIconClickedEvent } from 'src/app/core/eventbus/events';\r\nimport { MasterdataService } from 'src/app/maps/domain/masterdata.service';\r\nimport { Ropeway } from 'src/app/maps/domain/ropeway.model';\r\n\r\n@Component({\r\n selector: 'sis-controller-selector',\r\n templateUrl: './controller-selector.component.html',\r\n styleUrls: ['./controller-selector.component.scss'],\r\n standalone: false\r\n})\r\nexport class ControllerSelectorComponent implements OnInit {\r\n @Input() x: number;\r\n @Input() y: number;\r\n @Input() ropeway: Ropeway;\r\n\r\n @Output() done = new EventEmitter();\r\n\r\n selectableRopeways: Ropeway[];\r\n\r\n constructor(private eventBus: EventBusService, private masterdataService: MasterdataService) {}\r\n\r\n ngOnInit(): void {\r\n this.setSelectableRopeways(this.ropeway);\r\n }\r\n\r\n selectRopeway(ropeway: Ropeway) {\r\n const event = new MapIconClickedEvent();\r\n event.ropeway = ropeway;\r\n this.eventBus.publish(event);\r\n\r\n this.close();\r\n }\r\n\r\n close() {\r\n this.done.emit(null);\r\n }\r\n\r\n private setSelectableRopeways(ropeway: Ropeway): void {\r\n this.masterdataService.masterData$.pipe(take(1)).subscribe((masterdata) => {\r\n const controllerNumber = +ropeway.sisId.split('.', 2)[1];\r\n const deviceSisId = this.getDeviceSisIdFromOtherController(ropeway, controllerNumber);\r\n\r\n this.selectableRopeways = [ropeway, masterdata.ropeways.find((r) => r.sisId === deviceSisId)].sort((a, b) =>\r\n a.sisId.localeCompare(b.sisId)\r\n );\r\n });\r\n }\r\n\r\n private getDeviceSisIdFromOtherController(ropeway: Ropeway, controllerNumber: number): string {\r\n return ropeway.sisId.replace(/\\..*/, `.${(controllerNumber % 2) + 1}`);\r\n }\r\n}\r\n","
\r\n \r\n \r\n {{ ropeway.alias }}\r\n \r\n \r\n
\r\n","import { Component, Input, OnDestroy, OnInit } from '@angular/core';\r\nimport { ModalController } from '@ionic/angular';\r\nimport { TranslateService } from '@ngx-translate/core';\r\nimport { combineLatest } from 'rxjs';\r\nimport { take, takeUntil } from 'rxjs/operators';\r\nimport { ContextMenuItem } from 'src/app/core/components/context-menu/context-menu-item.model';\r\nimport { EventBusService } from 'src/app/core/eventbus/event-bus.service';\r\nimport { DeviceListHoverEvent, MapIconClickedEvent } from 'src/app/core/eventbus/events';\r\nimport { Unsubscriber } from 'src/app/core/unsubscriber';\r\nimport { FormattedTimestamp } from 'src/app/core/utils/formatted-timestamp';\r\nimport { TimeFormatService } from 'src/app/core/utils/time-format.service';\r\nimport { Alarm, AlarmLevel } from 'src/app/domain/alarm.model';\r\nimport { DestinationService } from 'src/app/domain/destination/destination.service';\r\nimport { Feature } from 'src/app/domain/feature/feature.model';\r\nimport { FeatureAccessLevel } from 'src/app/domain/feature/feature-access-level.model';\r\nimport { FeatureId } from 'src/app/domain/feature/feature-id.model';\r\nimport { UserSettingsService } from 'src/app/domain/user-settings/user-settings.service';\r\nimport { AlarmLibraryModal } from 'src/app/maps/alarmlibrary/alarmlibrary.component';\r\nimport { CustomMarker } from 'src/app/maps/domain/custom-marker.model';\r\nimport { MasterData } from 'src/app/maps/domain/masterdata.model';\r\nimport { MasterdataService } from 'src/app/maps/domain/masterdata.service';\r\nimport { MeteoStation } from 'src/app/maps/domain/meteostation.model';\r\nimport { Ropeway } from 'src/app/maps/domain/ropeway.model';\r\n\r\n@Component({\n selector: 'sis-sidepane-alarmlist-item',\n templateUrl: './sidepane-alarmlist-item.component.html',\n styleUrls: ['./sidepane-alarmlist-item.component.scss'],\n standalone: false\n})\r\nexport class SidepaneAlarmlistItemComponent extends Unsubscriber implements OnInit, OnDestroy {\r\n private static readonly alarmClass = 'sis-alarm-item';\r\n private static readonly infoClass = 'sis-info-item';\r\n private static readonly warningClass = 'sis-warning-item';\r\n private static readonly pointerClass = 'sis-pointer-class';\r\n private static readonly defaultClass = 'sis-default-class';\r\n private static readonly ContextMenuItemSettings = 'general.term.settings';\r\n\r\n readonly contextMenuItems: ContextMenuItem[] = [\r\n {\r\n translationString: SidepaneAlarmlistItemComponent.ContextMenuItemSettings,\r\n requiredFeature: new Feature(FeatureId.COCKPIT_TELEMETRY, FeatureAccessLevel.READ),\r\n },\r\n ];\r\n\r\n contextMenuX: number;\r\n contextMenuY: number;\r\n showContextMenu: boolean = false;\r\n formattedTimestamp: FormattedTimestamp;\r\n cssClass: string;\r\n canAccessAlarmLibrary: boolean;\r\n\r\n displayedTitle: string;\r\n displayedText: string;\r\n\r\n private ropeway: Ropeway;\r\n private meteoStation: MeteoStation;\r\n private customMarker: CustomMarker;\r\n\r\n @Input() clickable: boolean;\r\n @Input() contextMenuDisabled: boolean = false;\r\n @Input() cssStyle: any;\r\n @Input() alarm: Alarm;\r\n @Input() showAliasInTitle = false;\r\n\r\n constructor(\r\n private eventBus: EventBusService,\r\n private masterDataService: MasterdataService,\r\n private userSettingService: UserSettingsService,\r\n private timeFormatService: TimeFormatService,\r\n private translateService: TranslateService,\r\n private modalCtrl: ModalController,\r\n private destinationService: DestinationService\r\n ) {\r\n super();\r\n }\r\n\r\n ngOnInit(): void {\r\n this.destinationService.selectedTenantFeatures$.pipe(takeUntil(this.onDestroy$)).subscribe((features) => {\r\n this.canAccessAlarmLibrary = features.some((f) =>\r\n f.hasMinimumRequirementFor(new Feature(FeatureId.COCKPIT_TELEMETRY, FeatureAccessLevel.READ))\r\n );\r\n });\r\n }\r\n\r\n ngOnChanges() {\r\n if (!this.alarm) {\r\n return;\r\n }\r\n\r\n this.masterDataService.masterData$.pipe(take(1)).subscribe((masterData) => {\r\n this.setValues(this.alarm, masterData);\r\n });\r\n }\r\n\r\n mouseEnter() {\r\n this.createHoverEvent(true);\r\n }\r\n\r\n mouseLeave() {\r\n this.createHoverEvent(false);\r\n }\r\n\r\n mouseClick() {\r\n if (this.clickable) {\r\n const event = new MapIconClickedEvent();\r\n event.ropeway = this.ropeway;\r\n event.meteoStation = this.meteoStation;\r\n event.customMarker = this.customMarker;\r\n this.eventBus.publish(event);\r\n }\r\n }\r\n\r\n ngOnDestroy() {\r\n this.createHoverEvent(false);\r\n }\r\n\r\n openContextMenu(event: any): void {\r\n if (this.contextMenuDisabled) {\r\n return;\r\n }\r\n\r\n const bounds = event.target.getBoundingClientRect();\r\n const alarmItemWidth = document.getElementsByClassName('sis-alarm-row')[0].clientWidth;\r\n const contextMenuWidth = 200;\r\n const eventPositionX = event.clientX ? event.clientX : event.center.x;\r\n const eventPositionY = event.clientY ? event.clientY : event.center.y;\r\n this.contextMenuX = eventPositionX > alarmItemWidth - contextMenuWidth ? alarmItemWidth - contextMenuWidth : eventPositionX;\r\n this.contextMenuX = this.contextMenuX < 0 ? 0 : this.contextMenuX;\r\n this.contextMenuY = eventPositionY - bounds.top;\r\n this.showContextMenu = true;\r\n }\r\n\r\n contextMenuItemSelected(selectedItem: ContextMenuItem): void {\r\n this.showContextMenu = false;\r\n\r\n if (selectedItem?.translationString === SidepaneAlarmlistItemComponent.ContextMenuItemSettings) {\r\n this.openAlarmLibrary();\r\n }\r\n }\r\n\r\n private async openAlarmLibrary() {\r\n if (!this.canAccessAlarmLibrary) {\r\n return;\r\n }\r\n\r\n combineLatest([this.destinationService.selectedTenantFeatures$, this.masterDataService.masterData$])\r\n .pipe(take(1))\r\n .subscribe(async ([features, masterData]) => {\r\n if (this.alarm && features.some((f) => f.hasMinimumRequirementFor(new Feature(FeatureId.COCKPIT_TELEMETRY, FeatureAccessLevel.READ)))) {\r\n const alarm = this.alarm;\r\n\r\n const underscorePos = alarm?.sisId.indexOf('_');\r\n const sisId = underscorePos > -1 ? alarm.sisId.substring(0, underscorePos) : alarm.sisId;\r\n\r\n const ropeway = masterData.ropeways.find((r) => r.sisId === sisId);\r\n\r\n const modalSisId = ropeway != null ? ropeway.sisId : masterData.gatewayId;\r\n const modalAlias = ropeway != null ? ropeway.alias : masterData.alias;\r\n\r\n const alarmCode = alarm.code.replace(new RegExp('^[A-Z]{2}[0-9]?_'), '');\r\n\r\n const modal = await this.modalCtrl.create({\r\n component: AlarmLibraryModal,\r\n componentProps: {\r\n sisId: modalSisId,\r\n alias: modalAlias,\r\n searchString: alarmCode,\r\n },\r\n });\r\n\r\n return modal.present();\r\n }\r\n });\r\n }\r\n\r\n private createHoverEvent(hover: boolean): void {\r\n if (!this.ropeway) {\r\n return;\r\n }\r\n\r\n const event = new DeviceListHoverEvent();\r\n event.deviceSisId = this.ropeway.sisId;\r\n event.hover = hover;\r\n this.eventBus.publish(event);\r\n }\r\n\r\n private setValues(alarm: Alarm, masterData: MasterData) {\r\n const underscorePosition = alarm?.sisId.indexOf('_');\r\n const deviceSisId = underscorePosition > -1 ? alarm.sisId.substring(0, underscorePosition) : alarm.sisId;\r\n\r\n if (this.cssStyle == null) {\r\n this.cssClass = this.getCssClass(alarm);\r\n }\r\n\r\n this.formattedTimestamp = new FormattedTimestamp(this.userSettingService, this.translateService, this.timeFormatService, alarm.timestamp);\r\n\r\n this.ropeway = masterData.ropeways.find((r) => r.sisId === deviceSisId);\r\n this.meteoStation = masterData.meteoStations.find((m) => m.meteoDeviceSisId === alarm.sisId);\r\n this.customMarker = masterData.customMarkers.find((c) => c.sisId === alarm.sisId);\r\n const ginStationName = alarm.code.startsWith('GIN') ? alarm.info : null;\r\n\r\n const alias = this.ropeway?.alias ?? this.meteoStation?.alias ?? this.customMarker?.alias ?? ginStationName ?? masterData.alias;\r\n\r\n if (alias && this.showAliasInTitle) {\r\n this.displayedTitle = alias;\r\n this.displayedText = `${alarm.code} ${alarm.text}`;\r\n } else {\r\n this.displayedTitle = alarm.code;\r\n this.displayedText = alarm.text;\r\n }\r\n }\r\n\r\n private getCssClass(alarm: Alarm): string {\r\n const cssClass = this.ropeway && this.clickable ? SidepaneAlarmlistItemComponent.pointerClass : SidepaneAlarmlistItemComponent.defaultClass;\r\n\r\n if (!alarm) {\r\n return cssClass;\r\n }\r\n\r\n if (alarm.level === AlarmLevel.WARNING) {\r\n return `${cssClass} ${SidepaneAlarmlistItemComponent.warningClass}`;\r\n }\r\n\r\n if (alarm.level === AlarmLevel.INFO || alarm.level === AlarmLevel.BYPASS || alarm.level === AlarmLevel.CHECK) {\r\n return `${cssClass} ${SidepaneAlarmlistItemComponent.infoClass}`;\r\n }\r\n\r\n return `${cssClass} ${SidepaneAlarmlistItemComponent.alarmClass}`;\r\n }\r\n}\r\n","\r\n \r\n {{ this.displayedTitle }}\r\n \r\n \r\n {{ this.formattedTimestamp.formattedTimestamp$ | async }}\r\n \r\n
\r\n {{ this.displayedText }}\r\n
\r\n
\r\n \r\n
\r\n\r\n","import { Component, OnInit } from '@angular/core';\r\nimport { takeUntil } from 'rxjs/operators';\r\nimport { AlarmlistService } from 'src/app/alarmlist/alarmlist.service';\r\nimport { Unsubscriber } from 'src/app/core/unsubscriber';\r\nimport { Alarm, AlarmLevel } from 'src/app/domain/alarm.model';\r\n\r\n@Component({\r\n selector: 'sis-sidepane-alarmlist',\r\n templateUrl: './sidepane-alarmlist.component.html',\r\n styleUrls: ['./sidepane-alarmlist.component.scss'],\r\n standalone: false\r\n})\r\nexport class SidepaneAlarmlistComponent extends Unsubscriber implements OnInit {\r\n static readonly GRID_PADDING = 0;\r\n static readonly ITEM_HEIGHT = 49;\r\n static readonly MAX_VISIBLE_ITEMS = 4;\r\n\r\n static readonly ALARM_TITLE_EMPTY = 'sis-alarm-title-empty';\r\n static readonly ALARM_TITLE_ALARM = 'sis-alarm-title';\r\n static readonly ALARM_TITLE_WARNING = 'sis-warning-title';\r\n static readonly ALARM_TITLE_INFO = 'sis-info-title';\r\n\r\n readonly alarmIconLevels = [AlarmLevel.ALARM, AlarmLevel.FAULT, AlarmLevel.SYSTEM, AlarmLevel.WARNING];\r\n\r\n class: string;\r\n activeAlarms: Alarm[];\r\n hasAlarms = false;\r\n activeAlarmCount: number;\r\n gridHeight: number;\r\n\r\n constructor(private alarmListService: AlarmlistService) {\r\n super();\r\n }\r\n\r\n ngOnInit() {\r\n this.alarmListService.alarms$.pipe(takeUntil(this.onDestroy$)).subscribe((alarms) => {\r\n this.updateValues(alarms);\r\n });\r\n }\r\n\r\n private getColorClass(): string {\r\n if (!this.activeAlarms) {\r\n return SidepaneAlarmlistComponent.ALARM_TITLE_EMPTY;\r\n }\r\n\r\n if (this.activeAlarms.find((a) => a.level === AlarmLevel.ALARM || a.level === AlarmLevel.FAULT || a.level === AlarmLevel.SYSTEM)) {\r\n return SidepaneAlarmlistComponent.ALARM_TITLE_ALARM;\r\n }\r\n\r\n if (this.activeAlarms.find((a) => a.level === AlarmLevel.WARNING)) {\r\n return SidepaneAlarmlistComponent.ALARM_TITLE_WARNING;\r\n }\r\n\r\n return SidepaneAlarmlistComponent.ALARM_TITLE_ALARM;\r\n }\r\n\r\n private getGridHeight(activeAlarmCount: number): number {\r\n return (\r\n Math.min(activeAlarmCount, SidepaneAlarmlistComponent.MAX_VISIBLE_ITEMS) * SidepaneAlarmlistComponent.ITEM_HEIGHT +\r\n SidepaneAlarmlistComponent.GRID_PADDING\r\n );\r\n }\r\n\r\n private updateValues(alarms: Alarm[]): void {\r\n const activeAlarms = AlarmlistService.filterActive(alarms);\r\n const filteredAlarms = activeAlarms.filter(\r\n (a) => a.level === AlarmLevel.FAULT || a.level === AlarmLevel.ALARM || a.level === AlarmLevel.WARNING || a.level === AlarmLevel.SYSTEM\r\n );\r\n\r\n this.activeAlarms = AlarmlistService.sortByTypeAndTimestamp(filteredAlarms);\r\n\r\n this.activeAlarmCount = this.activeAlarms.length;\r\n this.hasAlarms = this.activeAlarmCount > 0;\r\n this.class = this.activeAlarmCount > 0 ? this.getColorClass() : SidepaneAlarmlistComponent.ALARM_TITLE_EMPTY;\r\n this.gridHeight = this.getGridHeight(this.activeAlarmCount);\r\n }\r\n\r\n itemId(_: number, alarm: Alarm): string {\r\n return alarm.code;\r\n }\r\n}\r\n","\r\n {{ 'alarming.term.currentAlarms' | translate }}\r\n \r\n \r\n \r\n \r\n \r\n\r\n\r\n\r\n \r\n\r\n","import { HttpClient } from '@angular/common/http';\r\nimport { Injectable } from '@angular/core';\r\nimport { EMPTY, Observable, ReplaySubject, timer } from 'rxjs';\r\nimport { distinctUntilChanged, map, share, switchMap, tap } from 'rxjs/operators';\r\nimport { DestinationService } from 'src/app/domain/destination/destination.service';\r\nimport { Feature } from 'src/app/domain/feature/feature.model';\r\nimport { FeatureAccessLevel } from 'src/app/domain/feature/feature-access-level.model';\r\nimport { FeatureId } from 'src/app/domain/feature/feature-id.model';\r\nimport { environment } from 'src/environments/environment';\r\n\r\n@Injectable({\r\n providedIn: 'root',\r\n})\r\nexport class WebcamImageRequestService {\r\n private static readonly requestOutdatedTime = 1.5 * 60 * 1000;\r\n private static readonly requiredFeature = new Feature(FeatureId.COCKPIT_WEBCAM, FeatureAccessLevel.READ);\r\n private static readonly requestUploadRenewalIntervalMs = 10000;\r\n\r\n private lastImageUploadRequest: Date;\r\n private lastPeriodicRequestStart: Date;\r\n\r\n private readonly imageUploadRequestedRopewaySisId$ = new ReplaySubject(1);\r\n private readonly url = `${environment.baseUrlApi}/imageupload/requestupload`;\r\n\r\n readonly imageUploadRequests$: Observable = this.destinationService.selectedTenantFeatures$.pipe(\r\n switchMap((features) => {\r\n this.lastImageUploadRequest = undefined;\r\n if (features.some((f) => f.hasMinimumRequirementFor(WebcamImageRequestService.requiredFeature))) {\r\n return this.imageUploadRequestedRopewaySisId$.pipe(\r\n distinctUntilChanged(),\r\n tap(() => (this.lastPeriodicRequestStart = new Date())),\r\n switchMap((deviceSisId) =>\r\n timer(0, WebcamImageRequestService.requestUploadRenewalIntervalMs).pipe(\r\n switchMap(() => this.httpClient.get(`${this.url}/${deviceSisId}`))\r\n )\r\n ),\r\n map((response) => {\r\n if (response === 200) {\r\n this.lastImageUploadRequest = new Date();\r\n }\r\n return null;\r\n })\r\n );\r\n } else {\r\n return EMPTY;\r\n }\r\n }),\r\n share()\r\n );\r\n\r\n constructor(private httpClient: HttpClient, private destinationService: DestinationService) {}\r\n\r\n periodicallyRequestImageUploads(ropewaySisId: string | 'none'): Observable {\r\n this.imageUploadRequestedRopewaySisId$.next(ropewaySisId);\r\n return this.imageUploadRequests$;\r\n }\r\n\r\n isImageRequestOutdated(): boolean {\r\n return (\r\n !this.lastImageUploadRequest ||\r\n Date.now() - this.lastImageUploadRequest.getTime() > WebcamImageRequestService.requestOutdatedTime\r\n );\r\n }\r\n\r\n didRecentlyStartUploadRequests(): boolean {\r\n return this.lastPeriodicRequestStart && Date.now() - this.lastPeriodicRequestStart.getTime() < 20000;\r\n }\r\n}\r\n","import { ChangeDetectorRef, Component, ElementRef, Input, OnInit, ViewChild } from '@angular/core';\r\nimport { ModalController } from '@ionic/angular';\r\nimport panzoom from '@panzoom/panzoom';\r\nimport { firstValueFrom, Observable, of, Subject, timer } from 'rxjs';\r\nimport { ajax } from 'rxjs/ajax';\r\nimport { filter, map, startWith, switchMap, take, takeUntil, withLatestFrom } from 'rxjs/operators';\r\nimport { EventBusService } from 'src/app/core/eventbus/event-bus.service';\r\nimport { WebcamImageUpdatedEvent } from 'src/app/core/eventbus/events';\r\nimport { Unsubscriber } from 'src/app/core/unsubscriber';\r\nimport { ScreenSizeService } from 'src/app/core/utils/screen-size.service';\r\nimport { DestinationService } from 'src/app/domain/destination/destination.service';\r\nimport { Webcam } from 'src/app/maps/domain/webcam.model';\r\nimport { WebcamService } from 'src/app/maps/widget-sidepane/webcam/webcam.service';\r\nimport { WebcamConfig } from 'src/app/maps/widget-sidepane/webcam/webcam-config.model';\r\nimport { WebcamImageRequestService } from 'src/app/maps/widget-sidepane/webcam/webcam-image-request.service';\r\nimport { Swiper } from 'swiper';\r\n\r\n@Component({\r\n selector: 'sis-webcam-modal',\r\n templateUrl: './webcam-modal.component.html',\r\n styleUrls: ['./webcam-modal.component.scss'],\r\n standalone: false\r\n})\r\nexport class WebcamModalComponent extends Unsubscriber implements OnInit {\r\n private static readonly imageOutdatedTime = 2 * 60 * 1000;\r\n private static readonly publicImageRefreshTimeMs = 5000;\r\n\r\n @Input() updateInterval = 5000;\r\n @Input() webcams: Webcam[];\r\n @Input() startIndex = 0;\r\n\r\n @ViewChild('swipertop', { static: false }) topSwiperRef: ElementRef;\r\n @ViewChild('onecam', { static: false }) oneCamRef: ElementRef;\r\n @ViewChild('swiperbottom', { static: false }) bottomSwiperRef: ElementRef;\r\n\r\n title: string;\r\n showExternalImageOverlay: boolean;\r\n canShowLoadingOverlay: boolean;\r\n webcamDisplayConfigs: WebcamConfig[] = [];\r\n\r\n isPrevThumbnailButtonDisabled = true;\r\n isNextThumbnailButtonDisabled = false;\r\n isPrevImageButtonDisabled = true;\r\n isNextImageButtonDisabled = false;\r\n showTopButtons = false;\r\n showBottomButtons = false;\r\n\r\n readonly bigScreenMode$ = this.screenSizeService.bigScreenMode$;\r\n\r\n private stopTimer$ = new Subject();\r\n private topSwiper: Swiper | undefined;\r\n private bottomSwiper: Swiper | undefined;\r\n private panzoomInstances: Map> = new Map();\r\n\r\n get isOneCam(): boolean {\r\n return this.webcams && this.webcams.length === 1;\r\n }\r\n\r\n private readonly webcamImageUpdated$ = this.eventBusService.observe(WebcamImageUpdatedEvent).pipe(\r\n withLatestFrom(this.destinationService.selectedTenant$),\r\n filter(([event, tenant]) => event.tenantGuid === tenant.guid),\r\n map(([event]) => event)\r\n );\r\n\r\n constructor(\r\n private changeDetector: ChangeDetectorRef,\r\n private modalCtrl: ModalController,\r\n private webcamImageRequestService: WebcamImageRequestService,\r\n private webcamService: WebcamService,\r\n private screenSizeService: ScreenSizeService,\r\n private destinationService: DestinationService,\r\n private eventBusService: EventBusService\r\n ) {\r\n super();\r\n }\r\n\r\n async ngOnInit(): Promise {\r\n this.initWebcamConfigs();\r\n this.setImageIndex(this.startIndex);\r\n if (!(await firstValueFrom(this.bigScreenMode$))) {\r\n this.showButtons(\"bottom\");\r\n }\r\n }\r\n\r\n ngAfterViewInit() {\r\n this.initializeSwipers();\r\n }\r\n\r\n onThumbnailClick(index: number) {\r\n this.startIndex = index;\r\n this.setImageIndex(index);\r\n\r\n if (this.bottomSwiper) {\r\n this.bottomSwiper.slideTo(index);\r\n }\r\n }\r\n\r\n showButtons(area: 'top' | 'bottom') {\r\n if (area === 'top' && !this.topSwiper?.isLocked) {\r\n this.showTopButtons = true;\r\n } else if (area === 'bottom') {\r\n this.showBottomButtons = true;\r\n }\r\n }\r\n\r\n hideButtons(area: 'top' | 'bottom') {\r\n if (area === 'top') {\r\n this.showTopButtons = false;\r\n } else if (area === 'bottom') {\r\n this.showBottomButtons = false;\r\n }\r\n }\r\n\r\n closeModal() {\r\n this.modalCtrl.dismiss();\r\n }\r\n\r\n setImageIndex(index: number) {\r\n if (this.webcams && this.webcams.length > index) {\r\n const webcam = this.webcams[index];\r\n this.title = webcam.title;\r\n this.showExternalImageOverlay = webcam.isPublic;\r\n } else {\r\n this.title = '';\r\n this.showExternalImageOverlay = false;\r\n }\r\n }\r\n\r\n prevThumbnail(): void {\r\n if (this.topSwiper && !this.topSwiper.isBeginning) {\r\n this.topSwiper.slidePrev();\r\n }\r\n }\r\n\r\n nextThumbnail(): void {\r\n if (this.topSwiper && !this.topSwiper.isEnd) {\r\n this.topSwiper.slideNext();\r\n }\r\n }\r\n\r\n prevImage(): void {\r\n if (this.bottomSwiper && !this.bottomSwiper.isBeginning) {\r\n this.resetSwiperZoom();\r\n this.bottomSwiper.slidePrev();\r\n }\r\n }\r\n\r\n nextImage(): void {\r\n if (this.bottomSwiper && !this.bottomSwiper.isEnd) {\r\n this.resetSwiperZoom();\r\n this.bottomSwiper.slideNext();\r\n }\r\n }\r\n\r\n onImageLoad(webcamDisplayConfig: WebcamConfig): void {\r\n webcamDisplayConfig.showNotFoundOverlay = false;\r\n webcamDisplayConfig.showOutdatedOverlay = false;\r\n if (webcamDisplayConfig.webcam.isPublic) {\r\n this.setLoadingOverlay(false, webcamDisplayConfig);\r\n this.setOutdatedOverlay(false, webcamDisplayConfig);\r\n return;\r\n }\r\n webcamDisplayConfig.url$\r\n .pipe(\r\n switchMap((url) =>\r\n ajax({\r\n url,\r\n method: 'HEAD',\r\n responseType: 'json',\r\n })\r\n ),\r\n take(1)\r\n )\r\n .subscribe({\r\n next: (res) => {\r\n const lastModified = res.xhr.getResponseHeader('last-modified');\r\n const parsedDate = Date.parse(lastModified);\r\n\r\n const now = Date.now();\r\n const outdated = now - parsedDate > WebcamModalComponent.imageOutdatedTime;\r\n const imageRequestOutdated = this.webcamImageRequestService.isImageRequestOutdated();\r\n\r\n this.setOutdatedOverlay(outdated && !imageRequestOutdated, webcamDisplayConfig);\r\n this.setLoadingOverlay(outdated && (imageRequestOutdated || this.webcamImageRequestService.didRecentlyStartUploadRequests()), webcamDisplayConfig);\r\n },\r\n error: () => {\r\n this.setLoadingOverlay(false, webcamDisplayConfig);\r\n },\r\n });\r\n }\r\n\r\n onImageError(event: any, index: number): void {\r\n event.target.style.visibility = 'hidden';\r\n this.webcamDisplayConfigs[index].showLoadingOverlay = false;\r\n this.canShowLoadingOverlay = false;\r\n this.webcamDisplayConfigs[index].showNotFoundOverlay = true;\r\n this.webcamDisplayConfigs[index].showOutdatedOverlay = false;\r\n this.changeDetector.detectChanges();\r\n }\r\n\r\n private setLoadingOverlay(visible: boolean, config: WebcamConfig): void {\r\n config.showLoadingOverlay = visible;\r\n this.canShowLoadingOverlay = false;\r\n timer(750)\r\n .pipe(takeUntil(this.stopTimer$))\r\n .subscribe(() => (this.canShowLoadingOverlay = true));\r\n }\r\n\r\n private setOutdatedOverlay(visible: boolean, config: WebcamConfig): void {\r\n config.showOutdatedOverlay = visible;\r\n }\r\n\r\n private initializePanzoom(swiper: Swiper | null) {\r\n this.cleanupPanzoomInstances();\r\n const slides = Array.from(swiper.slides) as HTMLElement[];\r\n slides.forEach((slide, index) => {\r\n const imageElement = slide.querySelector('.panzoom') as HTMLElement;\r\n const panzoomInstance = this.setupPanzoomInstance(imageElement);\r\n this.panzoomInstances.set(index, panzoomInstance);\r\n });\r\n }\r\n\r\n private setupPanzoomInstance(imageElement: HTMLElement): any {\r\n if (imageElement) {\r\n const minScale = 1;\r\n const maxScale = 10;\r\n const panzoomInstance = panzoom(imageElement, {\r\n contain: 'outside',\r\n maxScale: maxScale,\r\n minScale: minScale,\r\n panOnlyWhenZoomed: true,\r\n });\r\n\r\n let currentScale = minScale;\r\n let x: number;\r\n let y: number;\r\n\r\n imageElement.addEventListener('mousemove', (event) => {\r\n x = event.clientX;\r\n y = event.clientY;\r\n })\r\n\r\n imageElement.addEventListener('wheel', (event) => {\r\n event.preventDefault();\r\n\r\n const zoomingIn = event.deltaY < 0;\r\n const scaleDelta = zoomingIn ? 0.1 : -0.1;\r\n const newScale = Math.min(Math.max(currentScale + scaleDelta, minScale), maxScale);\r\n\r\n const rect = imageElement.getBoundingClientRect();\r\n const clientX = this.bigScreenMode$ ? x : event.clientX - rect.left;\r\n const clientY = this.bigScreenMode$ ? y : event.clientY - rect.top;\r\n const point = {\r\n clientX,\r\n clientY\r\n }\r\n\r\n panzoomInstance.zoomToPoint(newScale, point);\r\n currentScale = newScale;\r\n\r\n if (!zoomingIn && newScale === minScale) {\r\n panzoomInstance.pan(0, 0);\r\n panzoomInstance.zoom(minScale);\r\n currentScale = minScale;\r\n }\r\n })\r\n return panzoomInstance;\r\n }\r\n }\r\n\r\n private resetSwiperZoom() {\r\n const currentIndex = this.bottomSwiper?.activeIndex ?? 0;\r\n const panzoomInstance = this.panzoomInstances.get(currentIndex);\r\n if (panzoomInstance) {\r\n panzoomInstance.reset();\r\n panzoomInstance.zoom(1);\r\n panzoomInstance.pan(0, 0);\r\n }\r\n }\r\n\r\n private updateButtons() {\r\n this.isPrevThumbnailButtonDisabled = this.topSwiper?.isBeginning;\r\n this.isNextThumbnailButtonDisabled = this.topSwiper?.isEnd;\r\n\r\n this.isPrevImageButtonDisabled = this.bottomSwiper?.isBeginning;\r\n this.isNextImageButtonDisabled = this.bottomSwiper?.isEnd;\r\n\r\n this.changeDetector.detectChanges();\r\n }\r\n\r\n private initializeSwipers() {\r\n setTimeout(() => {\r\n if (this.topSwiperRef?.nativeElement) {\r\n this.topSwiper = this.topSwiperRef.nativeElement.swiper;\r\n this.topSwiper.on('slideChange', () => this.updateButtons());\r\n }\r\n\r\n if (this.bottomSwiperRef?.nativeElement) {\r\n this.bottomSwiper = this.bottomSwiperRef.nativeElement.swiper;\r\n this.bottomSwiper.on('slideChange', () => {\r\n this.resetSwiperZoom();\r\n this.updateButtons();\r\n });\r\n this.initializePanzoom(this.bottomSwiper);\r\n }\r\n\r\n this.updateButtons();\r\n this.bottomSwiper.slideTo(this.startIndex, 0);\r\n }, 100);\r\n }\r\n\r\n private initWebcamConfigs() {\r\n this.webcamDisplayConfigs = this.webcams.map((webcam) => {\r\n const sasToken$ = webcam.isPublic ? of('?') : this.webcamService.sasToken$;\r\n const url$ = sasToken$.pipe(\r\n map((sasToken) => `${webcam.url}${sasToken}`)\r\n );\r\n\r\n return {\r\n webcam,\r\n url$,\r\n urlWithRandomString$: this.getUrlWithRandomString$(url$, webcam.isPublic),\r\n showImage$: of(true),\r\n showLoadingOverlay: true,\r\n showNotFoundOverlay: false,\r\n showOutdatedOverlay: false\r\n };\r\n });\r\n }\r\n\r\n private getUrlWithRandomString$(url$: Observable, isPublic: boolean): Observable {\r\n return url$.pipe(\r\n switchMap((url) => {\r\n if (!url) {\r\n return of(null);\r\n }\r\n\r\n if (isPublic) {\r\n return timer(0, WebcamModalComponent.publicImageRefreshTimeMs).pipe(\r\n map(() => `${url}?${(Math.random() * 10000).toString()}`)\r\n );\r\n }\r\n\r\n return this.webcamImageUpdated$.pipe(\r\n filter((event) => url.startsWith(event.url)),\r\n startWith(url),\r\n map(() => `${url}&${(Math.random() * 10000).toString()}`)\r\n );\r\n })\r\n );\r\n }\r\n\r\n private cleanupPanzoomInstances() {\r\n this.panzoomInstances.forEach((instance) => {\r\n instance.destroy();\r\n });\r\n this.panzoomInstances.clear();\r\n }\r\n}\r\n","\r\n \r\n {{ 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 \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 {{ webcamDisplayConfig.webcam.title }}\r\n
\r\n \r\n {{ 'webcam.image.outdated' | translate }}\r\n \r\n \r\n {{ 'webcam.image.loading' | translate }}\r\n \r\n
\r\n {{ 'webcam.image.notfound' | translate }}\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 {{ 'webcam.image.notfound' | translate }}\r\n
\r\n \r\n {{ 'webcam.image.loading' | translate }}\r\n
\r\n \r\n {{ 'webcam.image.outdated' | translate }}\r\n
\r\n \r\n \r\n \r\n \r\n
\r\n","import {\r\n AfterViewInit,\r\n ChangeDetectorRef,\r\n Component,\r\n ElementRef,\r\n EventEmitter,\r\n Input,\r\n OnChanges,\r\n OnInit,\r\n Output,\r\n SimpleChanges,\r\n ViewChild,\r\n} from '@angular/core';\r\nimport { ModalController } from '@ionic/angular';\r\nimport { BehaviorSubject, Observable, of, Subject, timer } from 'rxjs';\r\nimport { ajax } from 'rxjs/ajax';\r\nimport { filter, map, startWith, switchMap, take, takeUntil, withLatestFrom } from 'rxjs/operators';\r\nimport { EventBusService } from 'src/app/core/eventbus/event-bus.service';\r\nimport { WebcamImageUpdatedEvent } from 'src/app/core/eventbus/events';\r\nimport { Unsubscriber } from 'src/app/core/unsubscriber';\r\nimport { DestinationService } from 'src/app/domain/destination/destination.service';\r\nimport { Webcam } from 'src/app/maps/domain/webcam.model';\r\nimport { SelectedMapElementService } from 'src/app/maps/selected-map-element.service';\r\nimport { WebcamService } from 'src/app/maps/widget-sidepane/webcam/webcam.service';\r\nimport { WebcamConfig } from 'src/app/maps/widget-sidepane/webcam/webcam-config.model';\r\nimport { WebcamImageRequestService } from 'src/app/maps/widget-sidepane/webcam/webcam-image-request.service';\r\nimport { WebcamModalComponent } from 'src/app/maps/widget-sidepane/webcam/webcam-modal/webcam-modal.component';\r\nimport { Swiper } from 'swiper';\r\n\r\n@Component({\r\n selector: 'sis-webcam',\r\n templateUrl: './webcam.component.html',\r\n styleUrls: ['./webcam.component.scss'],\r\n standalone: false\r\n})\r\nexport class WebcamComponent extends Unsubscriber implements AfterViewInit, OnInit, OnChanges {\r\n private static readonly imageOutdatedTime = 2 * 60 * 1000;\r\n private static readonly publicImageRefreshTimeMs = 5000;\r\n\r\n @Input() startIndex = 0;\r\n @Input() isModal: boolean;\r\n\r\n @Output() imageIndex = new EventEmitter();\r\n\r\n @ViewChild('swiper') swiperRef: ElementRef;\r\n\r\n end: boolean;\r\n start = true;\r\n imageCssClasses: string;\r\n showOutdatedOverlay: boolean;\r\n showNotFoundOverlay: boolean;\r\n showLoadingOverlay: boolean;\r\n canShowLoadingOverlay: boolean;\r\n webcamDisplayConfigs: WebcamConfig[] = [];\r\n\r\n sliderOptions = {\r\n zoom: {\r\n maxRatio: 5,\r\n },\r\n };\r\n\r\n private webcams: Webcam[] = [];\r\n private activeIndex = 0;\r\n private stopTimer$ = new Subject();\r\n private activeIndex$ = new BehaviorSubject(0);\r\n private swiper: Swiper;\r\n\r\n private readonly webcamImageUpdated$ = this.eventBusService.observe(WebcamImageUpdatedEvent).pipe(\r\n withLatestFrom(this.destinationService.selectedTenant$),\r\n filter(([event, tenant]) => event.tenantGuid === tenant.guid),\r\n map(([event]) => event)\r\n );\r\n\r\n constructor(\r\n private modalCtrl: ModalController,\r\n private webcamImageRequestService: WebcamImageRequestService,\r\n private webcamService: WebcamService,\r\n private changeDetector: ChangeDetectorRef,\r\n private selectedMapElementService: SelectedMapElementService,\r\n private eventBusService: EventBusService,\r\n private destinationService: DestinationService\r\n ) {\r\n super();\r\n }\r\n\r\n ngOnInit(): void {\r\n this.onDestroy$.pipe(take(1)).subscribe(() => {\r\n this.stopTimer$.next();\r\n this.stopTimer$.complete();\r\n });\r\n\r\n this.selectedMapElementService.selectedMapElement$.pipe(takeUntil(this.onDestroy$)).subscribe((event) => {\r\n if (event.codeTriggered) {\r\n return;\r\n }\r\n\r\n const webcams = event.ropeway?.webcams?.length\r\n ? event.ropeway.webcams\r\n : event.meteoStation?.webcams?.length\r\n ? event.meteoStation.webcams\r\n : event.customMarker?.webcams;\r\n\r\n if (this.webcams === webcams) {\r\n return;\r\n }\r\n\r\n const ropewaySisId = event.ropeway?.sisId ?? 'none';\r\n this.webcamImageRequestService.periodicallyRequestImageUploads(ropewaySisId);\r\n\r\n if (!webcams?.length) {\r\n this.webcams = [];\r\n this.webcamDisplayConfigs = [];\r\n this.stopTimer$.next();\r\n } else {\r\n this.setOutdatedOverlay(this.showOutdatedOverlay);\r\n this.setLoadingOverlay(true);\r\n this.setNotFoundOverlay(false);\r\n this.canShowLoadingOverlay = false;\r\n\r\n this.webcams = webcams;\r\n this.webcamDisplayConfigs = webcams.map((webcam, index) => {\r\n const url$ = this.activeIndex$.pipe(\r\n switchMap((activeIndex) => {\r\n if (index !== activeIndex) {\r\n return of(null);\r\n }\r\n if (webcam.isPublic) {\r\n return of(webcam.url);\r\n }\r\n return this.webcamService.sasToken$.pipe(\r\n map((sasToken) => (sasToken != null ? `${webcam.url}${sasToken}` : null))\r\n );\r\n })\r\n );\r\n\r\n return {\r\n webcam,\r\n url$,\r\n urlWithRandomString$: this.getUrlWithRandomString$(url$, webcam.isPublic),\r\n };\r\n });\r\n\r\n this.setActiveIndex(0);\r\n\r\n if (this.swiper) {\r\n this.swiper.slideTo(this.startIndex, 0);\r\n }\r\n }\r\n });\r\n\r\n this.webcamImageRequestService.imageUploadRequests$.pipe(takeUntil(this.onDestroy$)).subscribe();\r\n }\r\n\r\n ngAfterViewInit() {\r\n this.swiper = this.swiperRef.nativeElement.swiper;\r\n\r\n this.swiper.on('slideChange', () => this.updateButtons());\r\n this.swiper.on('click', () => this.showModal());\r\n\r\n if (this.startIndex >= this.webcams.length || this.startIndex < 0) {\r\n this.startIndex = 0;\r\n this.start = true;\r\n } else {\r\n if (this.startIndex > 0) {\r\n this.swiper.slideTo(this.startIndex, 0);\r\n }\r\n }\r\n }\r\n\r\n async ngOnChanges(simpleChanges: SimpleChanges) {\r\n if (simpleChanges.webcams?.currentValue || simpleChanges.slides?.currentValue) {\r\n if (this.webcams && this.swiper) {\r\n this.swiper.update();\r\n this.swiper.slideTo(0, 0);\r\n }\r\n }\r\n }\r\n\r\n prevSlide(): void {\r\n this.resetValuesForNewImage();\r\n this.setActiveIndex(this.activeIndex === 0 ? 0 : --this.activeIndex);\r\n this.swiper.slidePrev();\r\n }\r\n\r\n nextSlide(): void {\r\n this.resetValuesForNewImage();\r\n this.setActiveIndex(this.activeIndex === this.webcams.length - 1 ? this.activeIndex : ++this.activeIndex);\r\n this.swiper.slideNext();\r\n }\r\n\r\n onImageLoad(webcamDisplayConfig: WebcamConfig): void {\r\n if (webcamDisplayConfig.webcam.isPublic) {\r\n this.setLoadingOverlay(false);\r\n this.setOutdatedOverlay(false);\r\n return;\r\n }\r\n webcamDisplayConfig.url$\r\n .pipe(\r\n switchMap((url) =>\r\n ajax({\r\n url,\r\n method: 'HEAD',\r\n responseType: 'json',\r\n })\r\n ),\r\n take(1)\r\n )\r\n .subscribe({\r\n next: (res) => {\r\n const lastModified = res.xhr.getResponseHeader('last-modified');\r\n const parsedDate = Date.parse(lastModified);\r\n\r\n const now = Date.now();\r\n const outdated = now - parsedDate > WebcamComponent.imageOutdatedTime;\r\n const imageRequestOutdated = this.webcamImageRequestService.isImageRequestOutdated();\r\n\r\n // display outdated only if the image is outdated and the upload request is not outdated\r\n this.setOutdatedOverlay(outdated && !imageRequestOutdated);\r\n\r\n // display loading if the image is outdated and either the upload request is outdated or was started recently\r\n this.setLoadingOverlay(\r\n outdated && (imageRequestOutdated || this.webcamImageRequestService.didRecentlyStartUploadRequests())\r\n );\r\n },\r\n error: () => {\r\n this.setLoadingOverlay(false);\r\n },\r\n });\r\n }\r\n\r\n onImageError(event: any): void {\r\n event.target.style.visibility = 'hidden';\r\n this.setNotFoundOverlay(true);\r\n }\r\n\r\n async showModal(): Promise {\r\n if (!this.isModal) {\r\n const startIndex = this.swiper.activeIndex;\r\n const cssClass = this.swiper.slides.length <= 1 ? 'sis-one-cam-modal' : 'sis-webcam-modal';\r\n const modal = await this.modalCtrl.create({\r\n component: WebcamModalComponent,\r\n componentProps: {\r\n startIndex,\r\n webcams: this.webcams,\r\n isModal: true,\r\n },\r\n cssClass: cssClass,\r\n });\r\n\r\n return modal.present();\r\n }\r\n }\r\n\r\n private updateButtons() {\r\n const index = this.swiper.activeIndex;\r\n this.setActiveIndex(index);\r\n this.imageIndex.emit(index);\r\n this.start = index === 0;\r\n this.end = index === this.webcams.length - 1;\r\n this.changeDetector.detectChanges();\r\n }\r\n\r\n private setOutdatedOverlay(visible: boolean): void {\r\n this.showOutdatedOverlay = visible;\r\n this.setImageCssClass();\r\n }\r\n\r\n private setLoadingOverlay(visible: boolean): void {\r\n this.showLoadingOverlay = visible;\r\n this.canShowLoadingOverlay = false;\r\n timer(750)\r\n .pipe(takeUntil(this.stopTimer$))\r\n .subscribe(() => (this.canShowLoadingOverlay = true));\r\n this.setImageCssClass();\r\n }\r\n\r\n private setNotFoundOverlay(visible: boolean): void {\r\n this.showNotFoundOverlay = visible;\r\n this.setImageCssClass();\r\n }\r\n\r\n private setImageCssClass(): void {\r\n let cssClasses = 'sis-image';\r\n\r\n cssClasses = cssClasses.concat(this.isModal ? ' sis-image-modal' : ' sis-image-sidepane');\r\n\r\n if (this.showOutdatedOverlay || this.showLoadingOverlay || this.showNotFoundOverlay) {\r\n cssClasses = cssClasses.concat(' sis-image-overlay');\r\n }\r\n\r\n this.imageCssClasses = cssClasses;\r\n }\r\n\r\n private resetValuesForNewImage(): void {\r\n this.stopTimer$.next();\r\n this.setOutdatedOverlay(false);\r\n this.setLoadingOverlay(true);\r\n this.setNotFoundOverlay(false);\r\n }\r\n\r\n private setActiveIndex(index: number): void {\r\n this.activeIndex = index;\r\n this.activeIndex$.next(index);\r\n }\r\n\r\n private getUrlWithRandomString$(url$: Observable, isPublic: boolean): Observable {\r\n return url$.pipe(\r\n switchMap((url) => {\r\n if (!url) {\r\n return of(null);\r\n }\r\n\r\n if (isPublic) {\r\n return timer(0, WebcamComponent.publicImageRefreshTimeMs).pipe(\r\n map(() => `${url}?${(Math.random() * 10000).toString()}`)\r\n );\r\n }\r\n\r\n return this.webcamImageUpdated$.pipe(\r\n filter((event) => url.startsWith(event.url)),\r\n startWith(url),\r\n map(() => `${url}&${(Math.random() * 10000).toString()}`)\r\n );\r\n })\r\n );\r\n }\r\n}\r\n","
\r\n 1\"\r\n vertical=\"center\"\r\n horizontal=\"start\"\r\n slot=\"fixed\"\r\n >\r\n \r\n \r\n \r\n \r\n\r\n 1\"\r\n vertical=\"center\"\r\n horizontal=\"end\"\r\n slot=\"fixed\"\r\n >\r\n \r\n \r\n \r\n \r\n\r\n \r\n \r\n \r\n
\r\n {{ webcamDisplayConfig.webcam.title }} \r\n \r\n
\r\n
\r\n
\r\n \r\n
\r\n
\r\n {{ 'webcam.image.outdated' | translate }}\r\n
\r\n \r\n {{ 'webcam.image.loading' | translate }}\r\n
\r\n
\r\n {{ 'webcam.image.notfound' | translate }}\r\n
\r\n
\r\n \r\n \r\n \r\n\r\n","import { HttpClient } from '@angular/common/http';\r\nimport { Injectable } from '@angular/core';\r\nimport { Observable, of, ReplaySubject, timer } from 'rxjs';\r\nimport { catchError, map, repeat, shareReplay, switchMap, take, tap } from 'rxjs/operators';\r\nimport { DestinationService } from 'src/app/domain/destination/destination.service';\r\nimport { Feature } from 'src/app/domain/feature/feature.model';\r\nimport { FeatureAccessLevel } from 'src/app/domain/feature/feature-access-level.model';\r\nimport { FeatureId } from 'src/app/domain/feature/feature-id.model';\r\nimport { environment } from 'src/environments/environment';\r\n\r\n@Injectable({\r\n providedIn: 'root',\r\n})\r\nexport class WebcamService {\r\n private static readonly requiredFeature = new Feature(FeatureId.COCKPIT_WEBCAM, FeatureAccessLevel.READ);\r\n\r\n private expiryDuration$ = new ReplaySubject(1);\r\n\r\n private repeatTimer$ = this.expiryDuration$.pipe(\r\n switchMap((d) => timer(d)),\r\n shareReplay({\r\n bufferSize: 1,\r\n refCount: true,\r\n })\r\n );\r\n\r\n readonly sasToken$: Observable = this.destinationService.selectedTenantFeatures$.pipe(\r\n switchMap((features) => {\r\n if (features.some((f) => f.hasMinimumRequirementFor(WebcamService.requiredFeature))) {\r\n return this.requestSasToken().pipe(\r\n map((sasToken) => {\r\n let expiryDuration: number;\r\n if (!sasToken) {\r\n expiryDuration = 0;\r\n } else {\r\n const expiryParam = new URLSearchParams(sasToken).get('se');\r\n const expiryDate = new Date(expiryParam).valueOf();\r\n expiryDuration = expiryDate - Date.now() - 10000;\r\n }\r\n\r\n return { sasToken, expiryDuration };\r\n }),\r\n catchError(() => of({ sasToken: null, expiryDuration: 3000 })),\r\n tap(({ expiryDuration }) => this.expiryDuration$.next(expiryDuration)),\r\n repeat({ delay: () => this.repeatTimer$ }),\r\n map(({ sasToken }) => sasToken)\r\n );\r\n } else {\r\n return of(null);\r\n }\r\n }),\r\n shareReplay({\r\n bufferSize: 1,\r\n refCount: true,\r\n })\r\n );\r\n\r\n constructor(private http: HttpClient, private destinationService: DestinationService) {}\r\n\r\n requestSasToken(): Observable {\r\n const url = `${environment.baseUrlApi}/webcam/blobstorage`;\r\n return this.http.get(url).pipe(\r\n catchError(() => of(null)),\r\n map((sas) => (sas ? sas.toString() : null)),\r\n take(1)\r\n );\r\n }\r\n}\r\n","import { Component, OnInit } from '@angular/core';\r\nimport { take, takeUntil, withLatestFrom } from 'rxjs/operators';\r\nimport { AlarmlistService } from 'src/app/alarmlist/alarmlist.service';\r\nimport { EventBusService } from 'src/app/core/eventbus/event-bus.service';\r\nimport { MapIconClickedEvent, RopewaySettingsUpdatedEvent } from 'src/app/core/eventbus/events';\r\nimport { IconHelper } from 'src/app/core/icon-helper/icon-helper';\r\nimport { Unsubscriber } from 'src/app/core/unsubscriber';\r\nimport { DestinationService } from 'src/app/domain/destination/destination.service';\r\nimport { FeatureId } from 'src/app/domain/feature/feature-id.model';\r\nimport { CustomMarker } from 'src/app/maps/domain/custom-marker.model';\r\nimport { MeteoStation } from 'src/app/maps/domain/meteostation.model';\r\nimport { Ropeway } from 'src/app/maps/domain/ropeway.model';\r\nimport { SelectedMapElementService } from 'src/app/maps/selected-map-element.service';\r\nimport { environment } from 'src/environments/environment';\r\n\r\n@Component({\r\n selector: 'sis-widget-sidepane',\r\n templateUrl: './widget-sidepane.component.html',\r\n styleUrls: ['./widget-sidepane.component.scss'],\r\n standalone: false\r\n})\r\nexport class WidgetSidepaneComponent extends Unsubscriber implements OnInit {\r\n showWebcams: boolean;\r\n showControllerContextMenu: boolean;\r\n controllerContextMenuX: number;\r\n controllerContextMenuY: number;\r\n tenantLogoUrl: string;\r\n ropeway: Ropeway;\r\n hasRemoteControl = false;\r\n hasRedundantControllers = false;\r\n showPlaceHolder = true;\r\n destinationView = true;\r\n iconName: string;\r\n cssClass: string;\r\n alias: string;\r\n fullNameWithSisId: string;\r\n controllerTypeWithConstructor: string;\r\n dataProvider: string;\r\n\r\n constructor(\r\n private destinationService: DestinationService,\r\n private alarmListService: AlarmlistService,\r\n private selectedMapElementService: SelectedMapElementService,\r\n private eventBus: EventBusService\r\n ) {\r\n super();\r\n\r\n this.alarmListService.alarms$.pipe(takeUntil(this.onDestroy$)).subscribe(() => {\r\n setTimeout(() => (this.cssClass = Math.random().toString()), 50);\r\n });\r\n }\r\n\r\n ngOnInit() {\r\n this.selectedMapElementService.selectedMapElement$.pipe(takeUntil(this.onDestroy$)).subscribe((event) => {\r\n this.setSelectedElementValues(event.ropeway, event.meteoStation, event.customMarker);\r\n this.selectActiveWebcams(event);\r\n });\r\n\r\n this.destinationService.selectedTenantFeatures$.pipe(takeUntil(this.onDestroy$)).subscribe((features) => {\r\n this.hasRemoteControl = features.some((f) => f.featureId === FeatureId.COCKPIT_REMOTEACCESS);\r\n });\r\n\r\n this.destinationService.selectedTenant$.pipe(takeUntil(this.onDestroy$)).subscribe(() => {\r\n this.showDestinationView();\r\n });\r\n\r\n this.eventBus\r\n .observe(RopewaySettingsUpdatedEvent)\r\n .pipe(takeUntil(this.onDestroy$), withLatestFrom(this.selectedMapElementService.selectedMapElement$))\r\n .subscribe(([updatedEvent, selectedMapElement]) => {\r\n if (selectedMapElement.ropeway && selectedMapElement.ropeway.guid == updatedEvent.ropewaySettings.guid) {\r\n const selectedRopeway = selectedMapElement.ropeway;\r\n selectedRopeway.alias = updatedEvent.ropewaySettings.alias;\r\n selectedRopeway.fullname = updatedEvent.ropewaySettings.fullname;\r\n selectedRopeway.constructedBy = updatedEvent.ropewaySettings.constructedBy;\r\n selectedRopeway.controllerType = updatedEvent.ropewaySettings.controllerType;\r\n\r\n this.setSelectedElementValues(selectedRopeway, null, null);\r\n }\r\n });\r\n }\r\n\r\n showControllerSelector(div: any): void {\r\n this.showControllerContextMenu = this.ropeway && this.ropeway.hasRedundantControllers;\r\n this.controllerContextMenuX = div.offsetLeft + 65;\r\n this.controllerContextMenuY = div.offsetTop + 10;\r\n }\r\n\r\n hideControllerContextMenu(): void {\r\n this.showControllerContextMenu = false;\r\n }\r\n\r\n private setSelectedElementValues(ropeway: Ropeway, meteoStation: MeteoStation, customMarker: CustomMarker): void {\r\n this.ropeway = ropeway || meteoStation?.ropeway;\r\n\r\n if (ropeway) {\r\n this.fullNameWithSisId = `${ropeway.fullname} (${ropeway.sisId.toUpperCase()})`;\r\n this.controllerTypeWithConstructor = [ropeway.controllerType, ropeway.constructedBy].filter((t) => t).join(' | ');\r\n if (!this.controllerTypeWithConstructor) {\r\n this.controllerTypeWithConstructor = null;\r\n }\r\n\r\n this.alias = ropeway.alias;\r\n this.iconName = IconHelper.getRopewayIconName(this.ropeway);\r\n } else if (meteoStation) {\r\n this.iconName = IconHelper.meteoStationIconName;\r\n this.fullNameWithSisId = undefined;\r\n this.controllerTypeWithConstructor = undefined;\r\n this.alias = meteoStation.alias;\r\n this.dataProvider = meteoStation.dataProvider ?? '';\r\n } else if (customMarker) {\r\n this.iconName = customMarker.iconName;\r\n this.fullNameWithSisId = undefined;\r\n this.alias = customMarker.alias;\r\n this.dataProvider = undefined;\r\n } else {\r\n this.iconName = undefined;\r\n }\r\n\r\n this.showPlaceHolder = this.destinationView = !(ropeway || meteoStation || customMarker);\r\n this.hasRedundantControllers = this.ropeway && this.ropeway.hasRedundantControllers;\r\n }\r\n\r\n private selectActiveWebcams(event: MapIconClickedEvent): void {\r\n this.showWebcams = event.ropeway != null || event.meteoStation != null || event.customMarker != null;\r\n if (this.showWebcams) {\r\n this.tenantLogoUrl = undefined;\r\n } else {\r\n this.showDestinationView();\r\n }\r\n }\r\n\r\n private showDestinationView(): void {\r\n this.setSelectedElementValues(null, null, null);\r\n this.showWebcams = false;\r\n\r\n this.destinationService.selectedTenant$.pipe(take(1)).subscribe((tenant) => {\r\n if (tenant && tenant.logoFilename) {\r\n this.tenantLogoUrl = environment.baseUrlCockpitBlobStorage + '/public-assets/logo/' + tenant.logoFilename;\r\n } else {\r\n this.tenantLogoUrl = undefined;\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
{{ this.alias }}
\r\n
\r\n {{ this.fullNameWithSisId }}\r\n
\r\n
{{ this.controllerTypeWithConstructor ?? ' ' }}
\r\n
\r\n \r\n
{{ this.alias }}
\r\n
{{ this.dataProvider }}
\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, OnInit } from '@angular/core';\r\nimport { combineLatest } from 'rxjs';\r\nimport { filter, takeUntil } from 'rxjs/operators';\r\nimport { Unsubscriber } from 'src/app/core/unsubscriber';\r\nimport { AbbSmartSensorConditionStatus, AbbSmartSensorData } from 'src/app/maps/livedata/abbsmartsensor-data.model';\r\nimport { AbbSmartSensorDataService } from 'src/app/maps/livedata/abbsmartsensor-data.service';\r\nimport { SelectedMapElementService } from 'src/app/maps/selected-map-element.service';\r\n\r\n@Component({\r\n selector: 'sis-abbsmartsensor-widget',\r\n templateUrl: './abbsmartsensor-widget.component.html',\r\n styleUrls: ['./abbsmartsensor-widget.component.scss'],\r\n standalone: false\r\n})\r\nexport class AbbSmartSensorWidgetComponent extends Unsubscriber implements OnInit {\r\n static readonly cssClassGood = 'sis-abbsmartsensor-good';\r\n static readonly cssClassTolerable = 'sis-abbsmartsensor-tolerable';\r\n static readonly cssClassPoor = 'sis-abbsmartsensor-poor';\r\n static readonly cssClassUnknown = 'sis-abbsmartsensor-unknown';\r\n\r\n class: string = AbbSmartSensorWidgetComponent.cssClassGood;\r\n\r\n constructor(\r\n private abbSmartSensorDataService: AbbSmartSensorDataService,\r\n private selectedMapElementService: SelectedMapElementService\r\n ) {\r\n super();\r\n }\r\n\r\n ngOnInit(): void {\r\n combineLatest([\r\n this.abbSmartSensorDataService.abbSmartSensorDatas$.pipe(filter((abbSmartSensorDatas) => !!abbSmartSensorDatas)),\r\n this.selectedMapElementService.selectedRopeway$,\r\n ])\r\n .pipe(takeUntil(this.onDestroy$))\r\n .subscribe(([abbSmartSensorDatas, ropeway]) => {\r\n this.class = this.getCssClass(abbSmartSensorDatas, ropeway?.sisId);\r\n });\r\n }\r\n\r\n private getCssClass(abbSmartSensorDatas: AbbSmartSensorData[], selectedRopewaySisId: string): string {\r\n let cssClass = AbbSmartSensorWidgetComponent.cssClassGood;\r\n\r\n let sensorData = abbSmartSensorDatas;\r\n\r\n if (selectedRopewaySisId) {\r\n sensorData = sensorData.filter((data) => data.deviceSisId === selectedRopewaySisId);\r\n }\r\n\r\n if (sensorData.some((data) => data.overallConditionIndex <= AbbSmartSensorConditionStatus.Unknown)) {\r\n cssClass = AbbSmartSensorWidgetComponent.cssClassUnknown;\r\n }\r\n\r\n if (sensorData.some((data) => data.overallConditionIndex <= AbbSmartSensorConditionStatus.NotApplicable)) {\r\n cssClass = AbbSmartSensorWidgetComponent.cssClassGood;\r\n }\r\n\r\n if (sensorData.some((data) => data.overallConditionIndex < AbbSmartSensorConditionStatus.Good)) {\r\n cssClass = AbbSmartSensorWidgetComponent.cssClassTolerable;\r\n }\r\n\r\n if (sensorData.some((data) => data.overallConditionIndex < AbbSmartSensorConditionStatus.Tolerable)) {\r\n cssClass = AbbSmartSensorWidgetComponent.cssClassPoor;\r\n }\r\n\r\n return cssClass;\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, OnInit } from '@angular/core';\r\nimport { combineLatest } from 'rxjs';\r\nimport { startWith, takeUntil } from 'rxjs/operators';\r\nimport { Alarm, AlarmLevel } from 'src/app/domain/alarm.model';\r\nimport { MeteoStation } from 'src/app/maps/domain/meteostation.model';\r\nimport { Ropeway } from 'src/app/maps/domain/ropeway.model';\r\nimport { MeteoForecastAlarmService } from 'src/app/maps/livedata/meteo-forecast-alarm.service';\r\nimport { RopewayAlarmService } from 'src/app/maps/livedata/ropeway-alarm.service';\r\nimport { MeteoStationService } from 'src/app/maps/meteostation-service/meteostation.service';\r\nimport { SelectedMapElementService } from 'src/app/maps/selected-map-element.service';\r\nimport { WidgetBase } from 'src/app/maps/widgets/widget-base';\r\n\r\n@Component({\r\n selector: 'sis-alarm-widget',\r\n templateUrl: './alarm-widget.component.html',\r\n styleUrls: ['./alarm-widget.component.scss'],\r\n standalone: false\r\n})\r\nexport class AlarmWidgetComponent extends WidgetBase implements OnInit {\r\n static readonly defaultValue = 0;\r\n static readonly normalCssClass = 'sis-normal';\r\n static readonly warningCssClass = 'sis-warning';\r\n static readonly alarmCssClass = 'sis-alarm';\r\n\r\n count: number = AlarmWidgetComponent.defaultValue;\r\n cssClass: string = AlarmWidgetComponent.normalCssClass;\r\n\r\n constructor(\r\n private meteoStationService: MeteoStationService,\r\n private meteoForecastAlarmService: MeteoForecastAlarmService,\r\n private ropewayAlarmService: RopewayAlarmService,\r\n private selectedMapElementService: SelectedMapElementService\r\n ) {\r\n super();\r\n }\r\n\r\n ngOnInit(): void {\r\n combineLatest([\r\n this.selectedMapElementService.selectedRopeway$,\r\n this.meteoStationService.activeMeteoStation$.pipe(startWith(null)),\r\n this.ropewayAlarmService.alarms$.pipe(startWith([])),\r\n this.meteoForecastAlarmService.alarms$.pipe(startWith([])),\r\n ])\r\n .pipe(takeUntil(this.onDestroy$))\r\n .subscribe(([ropeway, meteoStation, ropewayAlarms, forecastAlarms]) =>\r\n this.update(ropeway, meteoStation, ropewayAlarms, forecastAlarms)\r\n );\r\n }\r\n\r\n private update(ropeway: Ropeway, meteoStation: MeteoStation, ropewayAlarms: Alarm[], forecastAlarms: Alarm[]): void {\r\n const sisId = ropeway?.sisId ?? meteoStation?.meteoDeviceSisId ?? null;\r\n if (!sisId) {\r\n return;\r\n }\r\n\r\n const alarms: Alarm[] = [\r\n ...(ropewayAlarms?.filter((a) => a.active && a.sisId === sisId) ?? []),\r\n ...(forecastAlarms?.filter((a) => a.active && Alarm.includesSisId(a, sisId)) ?? []),\r\n ];\r\n\r\n if (!alarms?.length) {\r\n this.resetToDefault();\r\n return;\r\n }\r\n\r\n const highestLevelAlarmsPerCode = alarms.reduce((p: Map, c: Alarm) => {\r\n const alarm: Alarm = p.get(c.code);\r\n if (!alarm || (alarm.level === AlarmLevel.WARNING && c.level === AlarmLevel.ALARM)) {\r\n p.set(c.code, c);\r\n }\r\n return p;\r\n }, new Map());\r\n\r\n const uniqueAlarms = Array.from(highestLevelAlarmsPerCode.values());\r\n\r\n this.count = uniqueAlarms.length;\r\n this.cssClass = this.getCssClass(uniqueAlarms);\r\n }\r\n\r\n private resetToDefault(): void {\r\n this.count = AlarmWidgetComponent.defaultValue;\r\n this.cssClass = AlarmWidgetComponent.normalCssClass;\r\n }\r\n\r\n private getCssClass(alarms: Alarm[]): string {\r\n if (alarms.find((d) => d.level === AlarmLevel.ALARM)) {\r\n return AlarmWidgetComponent.alarmCssClass;\r\n }\r\n if (alarms.find((d) => d.level === AlarmLevel.WARNING)) {\r\n return AlarmWidgetComponent.warningCssClass;\r\n }\r\n\r\n return AlarmWidgetComponent.normalCssClass;\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 {{ this.count }}\r\n \r\n \r\n \r\n\r\n","import { Component, OnInit } from '@angular/core';\r\nimport { takeUntil } from 'rxjs/operators';\r\nimport { RopewayLivedataService } from 'src/app/maps/livedata/ropeway-livedata.service';\r\nimport { SelectedMapElementService } from 'src/app/maps/selected-map-element.service';\r\nimport { RopewayOperationWidgetBase } from 'src/app/maps/widgets/ropeway-operation-widget-base';\r\nimport { WidgetBase } from 'src/app/maps/widgets/widget-base';\r\n\r\n@Component({\r\n selector: 'sis-cabinposition-widget',\r\n templateUrl: './cabinposition-widget.component.html',\r\n styleUrls: ['./cabinposition-widget.component.scss'],\r\n standalone: false\r\n})\r\nexport class CabinPositionWidgetComponent extends RopewayOperationWidgetBase implements OnInit {\r\n cabinPositionMeter: string;\r\n\r\n constructor(ropewayLiveDataService: RopewayLivedataService, selectedMapElementService: SelectedMapElementService) {\r\n super(ropewayLiveDataService, selectedMapElementService);\r\n }\r\n\r\n ngOnInit(): void {\r\n this.ropewayLiveData$.pipe(takeUntil(this.onDestroy$)).subscribe((d) => {\r\n if (d.liveData?.cabinPositionMeter == null) {\r\n this.cabinPositionMeter = WidgetBase.valueUnknown;\r\n return;\r\n }\r\n\r\n this.cabinPositionMeter = d.liveData.cabinPositionMeter.toString();\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 {{ cabinPositionMeter }}\r\n m\r\n \r\n \r\n \r\n\r\n","import { Component } from '@angular/core';\r\nimport { WidgetBase } from 'src/app/maps/widgets/widget-base';\r\n\r\n@Component({\r\n selector: 'sis-carriagetilt-widget',\r\n templateUrl: './carriagetilt-widget.component.html',\r\n styleUrls: ['./carriagetilt-widget.component.scss'],\r\n standalone: false\r\n})\r\nexport class CarriagetiltWidgetComponent extends WidgetBase {}\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 { Chart } from 'angular-highcharts';\r\nimport Highcharts, { AxisPlotBandsOptions, Options, SeriesOptionsType, XAxisPlotLinesOptions } from 'highcharts';\r\nimport exporting from 'highcharts/modules/exporting';\r\nimport offline from 'highcharts/modules/offline-exporting';\r\nimport { forkJoin, Observable, timer } from 'rxjs';\r\nimport { map, switchMap, take, takeUntil } from 'rxjs/operators';\r\nexporting(Highcharts);\r\noffline(Highcharts);\r\n\r\nexport class ChartAdapter {\r\n private static readonly intervalMs = 30000;\r\n\r\n static create(options: Options): ChartAdapter {\r\n return new ChartAdapter(options);\r\n }\r\n\r\n private chartRef: Highcharts.Chart;\r\n\r\n readonly chart: Chart;\r\n readonly chartReady$: Observable;\r\n\r\n readonly series = new Map();\r\n\r\n constructor(options: Options) {\r\n this.chart = new Chart(options);\r\n this.chartReady$ = this.chart.ref$.pipe(map(() => null)); // this is a workaround to use the external highcharts module 'no-data-to-display'\r\n\r\n this.chart.ref$.pipe(take(1)).subscribe((chartRef) => {\r\n this.chartRef = chartRef;\r\n });\r\n }\r\n\r\n loadData(observables: Array>): Observable {\r\n return timer(0, ChartAdapter.intervalMs).pipe(switchMap(() => forkJoin(observables)));\r\n }\r\n\r\n addSeries(seriesName: string, options: SeriesOptionsType): void {\r\n this.series.set(seriesName, this.chartRef.addSeries(options));\r\n }\r\n\r\n removeSeries(seriesName: string): void {\r\n this.chartRef.get(seriesName)?.remove();\r\n this.series.delete(seriesName);\r\n }\r\n\r\n removeAllSeries(): void {\r\n while (this.chartRef.series.length) {\r\n this.chartRef.series[0].remove();\r\n }\r\n\r\n this.series.clear();\r\n }\r\n\r\n clearAllSeriesData(): void {\r\n this.chartRef.series.forEach((series) => series.setData(null));\r\n }\r\n\r\n showLoading(): void {\r\n this.chartRef.showLoading();\r\n }\r\n\r\n hideLoading(): void {\r\n this.chartRef.hideLoading();\r\n }\r\n\r\n showNoData(): void {\r\n (this.chartRef as any).showNoData();\r\n }\r\n\r\n exportData(title: string, subtitle: string): void {\r\n this.chartRef.exportChartLocal(\r\n {\r\n type: 'application/pdf',\r\n scale: 1,\r\n filename: title + '_' + subtitle,\r\n fallbackToExportServer: false,\r\n sourceHeight: 700,\r\n sourceWidth: 1400,\r\n },\r\n {\r\n chart: {\r\n type: 'spline',\r\n style: {\r\n fontFamily: 'Arial',\r\n },\r\n },\r\n title: {\r\n text: title,\r\n style: {\r\n fontSize: '14px',\r\n },\r\n },\r\n subtitle: {\r\n text: subtitle,\r\n style: {\r\n fontSize: '10px',\r\n },\r\n },\r\n xAxis: {\r\n labels: {\r\n style: {\r\n fontSize: '8px',\r\n },\r\n },\r\n },\r\n yAxis: {\r\n title: {\r\n style: {\r\n fontSize: '8px',\r\n },\r\n },\r\n labels: {\r\n style: {\r\n fontSize: '8px',\r\n },\r\n },\r\n },\r\n colors: ['#91cddb', '#32849a'],\r\n plotOptions: {\r\n spline: {\r\n lineWidth: 1,\r\n marker: {\r\n enabled: false,\r\n },\r\n },\r\n },\r\n }\r\n );\r\n }\r\n\r\n setSeriesData(seriesName: string, data: number[][]): void {\r\n this.series.get(seriesName)?.setData(data);\r\n }\r\n\r\n setSeriesOptions(seriesName: string, options: Highcharts.SeriesOptionsType): void {\r\n this.series.get(seriesName)?.update(options);\r\n }\r\n\r\n setYAxisExtremes(axis: number, min: number, max: number): void {\r\n this.chartRef.yAxis[axis]?.setExtremes(min, max);\r\n }\r\n setXAxisExtremes(axis: number, min: number, max: number): void {\r\n this.chartRef.xAxis[axis]?.setExtremes(min, max);\r\n }\r\n\r\n removeYPlotBand(axis: number, id: string): void {\r\n this.chartRef.yAxis[axis]?.removePlotBand(id);\r\n }\r\n\r\n addYPlotBand(axis: number, options: AxisPlotBandsOptions): void {\r\n this.chartRef.yAxis[axis]?.addPlotBand(options);\r\n }\r\n\r\n updateDateXPlotLine(axis: number, options: XAxisPlotLinesOptions): void {\r\n this.chartRef.xAxis[axis]?.removePlotLine(options.id);\r\n this.chartRef.xAxis[axis]?.addPlotLine(options);\r\n }\r\n\r\n getTimeInMsDaysAgo(days: number): number {\r\n const result = new Date();\r\n result.setDate(result.getDate() - days);\r\n return result.getTime();\r\n }\r\n\r\n getTimeInMsHoursAgo(hours: number): number {\r\n const result = new Date();\r\n result.setHours(result.getHours() - hours);\r\n return result.getTime();\r\n }\r\n\r\n setTitle(title: string): void {\r\n this.chartRef.setTitle({ text: title }, null, false);\r\n }\r\n\r\n reflowChart(onDestroy$: Observable): void {\r\n timer(100)\r\n .pipe(takeUntil(onDestroy$))\r\n .subscribe(() => {\r\n this.chartRef.reflow();\r\n });\r\n }\r\n\r\n updateOptions(options: Options, redraw = false): void {\r\n this.chartRef.update(options, redraw);\r\n }\r\n\r\n zoomOut(): void {\r\n this.chartRef.zoomOut();\r\n }\r\n}\r\n","import { Directive } from '@angular/core';\r\nimport { TranslateService } from '@ngx-translate/core';\r\nimport { Chart } from 'angular-highcharts';\r\nimport { AxisSetExtremesEventObject, Options } from 'highcharts';\r\nimport { firstValueFrom } from 'rxjs';\r\nimport { startWith, takeUntil } from 'rxjs/operators';\r\nimport { ContextMenuItem } from 'src/app/core/components/context-menu/context-menu-item.model';\r\nimport { Unsubscriber } from 'src/app/core/unsubscriber';\r\nimport { TimeFormatService } from 'src/app/core/utils/time-format.service';\r\nimport { Feature } from 'src/app/domain/feature/feature.model';\r\nimport { FeatureAccessLevel } from 'src/app/domain/feature/feature-access-level.model';\r\nimport { FeatureId } from 'src/app/domain/feature/feature-id.model';\r\nimport { ChartAdapter } from 'src/app/maps/widgets/charts/chart-adapter';\r\n\r\n@Directive()\r\nexport abstract class ChartBase extends Unsubscriber {\r\n private static readonly noDataTranslateString = 'analytics.phrase.dataNone';\r\n private static readonly loadingTranslateString = 'analytics.phrase.dataLoading';\r\n\r\n static readonly ContextMenuItemSave = 'general.term.save';\r\n\r\n private readonly trendLineColor = ['#32849a', '#91cddb', 'black'];\r\n private readonly forecastLineColor = ['#949499', '#636366', 'black'];\r\n\r\n protected readonly chartAdapter: ChartAdapter;\r\n protected deviceAlias: string;\r\n protected minY = 0;\r\n protected maxY = null;\r\n protected noDataText: string;\r\n protected loadingText: string;\r\n\r\n private clickStarted: boolean;\r\n\r\n readonly chart: Chart;\r\n\r\n title: string;\r\n mouseMoved: boolean;\r\n isZoomed: boolean;\r\n isZoomedToEnd: boolean;\r\n zoomMin: number;\r\n\r\n readonly contextMenuItems: ContextMenuItem[] = [\r\n {\r\n translationString: ChartBase.ContextMenuItemSave,\r\n requiredFeature: new Feature(FeatureId.COCKPIT_TELEMETRY, FeatureAccessLevel.READ),\r\n },\r\n ];\r\n\r\n showContextMenu: boolean;\r\n contextMenuX: number;\r\n contextMenuY: number;\r\n\r\n constructor(\r\n translateService: TranslateService,\r\n public isModal: boolean,\r\n private timeFormatService: TimeFormatService\r\n ) {\r\n super();\r\n\r\n translateService.onLangChange\r\n .pipe(startWith(translateService.currentLang), takeUntil(this.onDestroy$))\r\n .subscribe(() => {\r\n this.noDataText = translateService.instant(ChartBase.noDataTranslateString);\r\n this.loadingText = translateService.instant(ChartBase.loadingTranslateString);\r\n\r\n if (this.chartAdapter) {\r\n this.chartAdapter.updateOptions({\r\n lang: {\r\n noData: this.noDataText,\r\n loading: this.loadingText,\r\n },\r\n });\r\n }\r\n\r\n this.translateTexts(translateService);\r\n });\r\n\r\n const chartOptions = this.getChartOptions();\r\n if (this.isModal) {\r\n chartOptions.chart.spacingTop = 50;\r\n }\r\n this.chartAdapter = ChartAdapter.create(chartOptions);\r\n this.chart = this.chartAdapter.chart;\r\n }\r\n\r\n contextMenuItemSelected(selectedItem: ContextMenuItem): void {\r\n this.showContextMenu = false;\r\n\r\n if (selectedItem?.translationString === ChartBase.ContextMenuItemSave) {\r\n this.exportChartPdf();\r\n }\r\n }\r\n\r\n chartClicked(e: PointerEvent): void {\r\n if (\r\n this.mouseMoved ||\r\n (e.target as SVGRectElement).getAttribute('class') === 'highcharts-button-box' ||\r\n e.target['localName'] === 'text'\r\n ) {\r\n e.stopPropagation();\r\n }\r\n\r\n this.clickStarted = false;\r\n }\r\n\r\n onMouseDown(): void {\r\n this.clickStarted = true;\r\n }\r\n\r\n onMouseUp(): void {\r\n this.clickStarted = false;\r\n }\r\n\r\n onMouseMove(): void {\r\n this.mouseMoved = this.clickStarted;\r\n }\r\n\r\n async exportChartPdf(): Promise {\r\n const timeString = await firstValueFrom(this.timeFormatService.format(new Date(Date.now()), 1));\r\n const subTitle = this.deviceAlias ? `${this.deviceAlias} - ${timeString}` : timeString;\r\n\r\n this.chartAdapter.exportData(this.title, subTitle);\r\n }\r\n\r\n protected updateModalTitle() {\r\n const titleElement = document.getElementById('modal-popup-title');\r\n\r\n if (titleElement) {\r\n titleElement.innerText = this.title;\r\n }\r\n }\r\n\r\n protected getTrendLineColor(index = 0): string {\r\n if (index < this.trendLineColor.length) {\r\n return this.trendLineColor[index];\r\n }\r\n return this.trendLineColor[0];\r\n }\r\n\r\n protected getForecastLineColor(index = 0): string {\r\n if (index < this.forecastLineColor.length) {\r\n return this.forecastLineColor[index];\r\n }\r\n return this.forecastLineColor[0];\r\n }\r\n\r\n protected updateTitle() {\r\n this.chartAdapter.setTitle(this.isModal ? '' : this.title);\r\n }\r\n\r\n protected handleSetExtremesEvent(event: AxisSetExtremesEventObject) {\r\n if (event.trigger == 'zoom') {\r\n this.isZoomed = event.min != undefined || event.max != undefined;\r\n\r\n setTimeout(() => {\r\n this.isZoomedToEnd = event.max === event.dataMax;\r\n this.zoomMin = event.min;\r\n\r\n if (!this.isZoomed) {\r\n this.chartAdapter.setYAxisExtremes(0, this.minY, this.maxY);\r\n }\r\n });\r\n }\r\n }\r\n\r\n protected abstract translateTexts(translateService: TranslateService): void;\r\n protected abstract getChartOptions(): Options;\r\n}\r\n","export class ChartSettings {\r\n inModal = false;\r\n\r\n constructor(init?: Partial) {\r\n Object.assign(this, init);\r\n }\r\n}\r\n","import { Injectable } from '@angular/core';\r\nimport { BehaviorSubject, firstValueFrom, Observable } from 'rxjs';\r\n\r\n@Injectable({\r\n providedIn: 'root',\r\n})\r\nexport class ChartSettingsService {\r\n private readonly ropewayChartSettings = new Map>>();\r\n\r\n private readonly _forecastEnabled$ = new BehaviorSubject(true);\r\n\r\n readonly forecastEnabled$ = this._forecastEnabled$.asObservable();\r\n\r\n async toggleForecast(): Promise {\r\n const forecastEnabled = await firstValueFrom(this.forecastEnabled$);\r\n this._forecastEnabled$.next(!forecastEnabled);\r\n }\r\n\r\n async toggleRopewaySetting(ropewaySisId: string, setting: string): Promise {\r\n const ropewaySettings = this.getRopewaySettings(ropewaySisId);\r\n const subject = this.getSetting(ropewaySettings, setting);\r\n\r\n const enabled = await firstValueFrom(subject);\r\n subject.next(!enabled);\r\n }\r\n\r\n getRopewaySetting(ropewaySisId: string, setting: string): Observable {\r\n const ropewaySettings = this.getRopewaySettings(ropewaySisId);\r\n return this.getSetting(ropewaySettings, setting).asObservable();\r\n }\r\n\r\n private getRopewaySettings(ropewaySisId: string): Map> {\r\n if (!this.ropewayChartSettings.has(ropewaySisId)) {\r\n this.ropewayChartSettings.set(ropewaySisId, new Map>());\r\n }\r\n\r\n return this.ropewayChartSettings.get(ropewaySisId);\r\n }\r\n\r\n private getSetting(\r\n ropewaySettings: Map>,\r\n setting: string\r\n ): BehaviorSubject {\r\n if (!ropewaySettings.has(setting)) {\r\n ropewaySettings.set(setting, new BehaviorSubject(true));\r\n }\r\n\r\n return ropewaySettings.get(setting);\r\n }\r\n}\r\n","import { Component, OnInit } from '@angular/core';\r\nimport { TranslateService } from '@ngx-translate/core';\r\nimport { Options } from 'highcharts';\r\nimport moment from 'moment';\r\nimport { distinctUntilChanged, filter, map, switchMap, take, takeUntil } from 'rxjs/operators';\r\nimport { TimeFormatService } from 'src/app/core/utils/time-format.service';\r\nimport { MeteoStation } from 'src/app/maps/domain/meteostation.model';\r\nimport { MeteoStationService } from 'src/app/maps/meteostation-service/meteostation.service';\r\nimport { ForecastTrend } from 'src/app/maps/trenddata/forecast-trend.model';\r\nimport { MeteoTrendService } from 'src/app/maps/trenddata/meteo-trend.service';\r\nimport { ChartBase } from 'src/app/maps/widgets/charts/chart-base';\r\nimport { ChartSettings } from 'src/app/maps/widgets/charts/chart-settings.model';\r\n\r\n@Component({\r\n selector: 'sis-icing-chart',\r\n templateUrl: './icing-chart.component.html',\r\n styleUrls: ['./icing-chart.component.scss'],\r\n standalone: false\r\n})\r\nexport class IcingChartComponent extends ChartBase implements OnInit {\r\n static readonly icingForecastSeries = 'icingForecastSeries';\r\n static readonly plotlineWarn = 'PLOT1';\r\n\r\n private static readonly titleTranslateString = 'ropeway.term.icing';\r\n private static readonly intensityHighTranslateString = 'icing.term.intensityHigh';\r\n private static readonly intensityMediumTranslateString = 'icing.term.intensityMedium';\r\n private static readonly intensityLowTranslateString = 'icing.term.intensityLow';\r\n private static readonly intensityNoneTranslateString = 'icing.term.intensityNone';\r\n\r\n private readonly defaultMaxY = 3.2;\r\n private readonly defaultMinY = 0;\r\n private readonly lineWidth = 2;\r\n private readonly meteoStation$ = this.chartAdapter.chartReady$.pipe(\r\n take(1),\r\n switchMap(() => this.meteoStationService.meteoStationWithForecast$)\r\n );\r\n\r\n private intensityHighText: string;\r\n private intensityMediumText: string;\r\n private intensityLowText: string;\r\n private intensityNoneText: string;\r\n\r\n constructor(\r\n private meteoForecastDataService: MeteoTrendService,\r\n private meteoStationService: MeteoStationService,\r\n timeFormatService: TimeFormatService,\r\n translateService: TranslateService,\r\n chartSettings: ChartSettings\r\n ) {\r\n super(translateService, chartSettings?.inModal, timeFormatService);\r\n\r\n this.maxY = this.defaultMaxY;\r\n this.minY = this.defaultMinY;\r\n }\r\n\r\n ngOnInit(): void {\r\n this.meteoStation$\r\n .pipe(\r\n distinctUntilChanged(),\r\n filter((meteoStation) => !!meteoStation),\r\n switchMap((meteoStation) => {\r\n this.initChart(meteoStation);\r\n this.chartAdapter.showLoading();\r\n\r\n const observables = [this.meteoForecastDataService.getForecastTrends(meteoStation.guid)];\r\n\r\n return this.chartAdapter.loadData(observables);\r\n }),\r\n map((data: [ForecastTrend[]]) => data[0]),\r\n takeUntil(this.onDestroy$)\r\n )\r\n .subscribe((data: ForecastTrend[]) => {\r\n this.updateChartData(data);\r\n this.chartAdapter.hideLoading();\r\n });\r\n }\r\n\r\n private initChart(meteoStation: MeteoStation) {\r\n this.deviceAlias = meteoStation.ropeway?.alias;\r\n this.updateTitle();\r\n\r\n this.chartAdapter.showLoading();\r\n this.chartAdapter.removeAllSeries();\r\n this.chartAdapter.addSeries(IcingChartComponent.icingForecastSeries, {\r\n name: this.title,\r\n id: IcingChartComponent.icingForecastSeries,\r\n type: 'spline' as any,\r\n lineWidth: this.lineWidth,\r\n className: 'line-forecast',\r\n color: this.getTrendLineColor(),\r\n });\r\n\r\n this.chartAdapter.reflowChart(this.onDestroy$);\r\n }\r\n\r\n private updateChartData(forecasts: ForecastTrend[]): void {\r\n if (!forecasts) {\r\n this.resetChart();\r\n return;\r\n }\r\n\r\n const minX = Date.now();\r\n const maxX = this.chartAdapter.getTimeInMsDaysAgo(-1);\r\n\r\n forecasts = forecasts.filter((t) => t.timestamp.getTime() >= minX && t.timestamp.getTime() <= maxX);\r\n\r\n if (forecasts.length === 0) {\r\n this.resetChart();\r\n this.chartAdapter.showNoData();\r\n return;\r\n }\r\n\r\n const colorZones = this.getZones();\r\n const icingData = this.getData(forecasts).sort((i1, i2) => i1[0] - i2[0]);\r\n\r\n this.chartAdapter.setSeriesOptions(IcingChartComponent.icingForecastSeries, { zones: colorZones } as any);\r\n this.chartAdapter.setSeriesData(IcingChartComponent.icingForecastSeries, icingData);\r\n\r\n if (!this.isZoomed) {\r\n this.chartAdapter.setYAxisExtremes(0, this.minY, this.maxY);\r\n this.chartAdapter.setXAxisExtremes(0, minX, maxX);\r\n }\r\n\r\n if (this.isZoomed && this.isZoomedToEnd) {\r\n this.chartAdapter.setXAxisExtremes(0, this.zoomMin, null);\r\n }\r\n }\r\n\r\n private getZones(): any[] {\r\n const zones = [];\r\n zones.push({\r\n value: 0.1,\r\n className: 'zone-nominal',\r\n });\r\n zones.push({\r\n value: 2.1,\r\n className: 'zone-warn',\r\n });\r\n zones.push({\r\n value: 3.2,\r\n className: 'zone-alarm',\r\n });\r\n return zones;\r\n }\r\n\r\n private getData(data: ForecastTrend[]): number[][] {\r\n return data.map((item) => {\r\n const timeStampInMs = item.timestamp.getTime();\r\n return [timeStampInMs, item.icingIntensity];\r\n });\r\n }\r\n\r\n private resetChart(): void {\r\n this.chartAdapter.clearAllSeriesData();\r\n }\r\n\r\n protected translateTexts(translateService: TranslateService): void {\r\n translateService\r\n .get([\r\n IcingChartComponent.titleTranslateString,\r\n IcingChartComponent.intensityHighTranslateString,\r\n IcingChartComponent.intensityMediumTranslateString,\r\n IcingChartComponent.intensityLowTranslateString,\r\n IcingChartComponent.intensityNoneTranslateString,\r\n ])\r\n .pipe(take(1))\r\n .subscribe((res) => {\r\n this.title = res[IcingChartComponent.titleTranslateString];\r\n this.intensityHighText = res[IcingChartComponent.intensityHighTranslateString];\r\n this.intensityMediumText = res[IcingChartComponent.intensityMediumTranslateString];\r\n this.intensityLowText = res[IcingChartComponent.intensityLowTranslateString];\r\n this.intensityNoneText = res[IcingChartComponent.intensityNoneTranslateString];\r\n\r\n if (this.chartAdapter) {\r\n this.chartAdapter.updateOptions({\r\n title: {\r\n text: this.isModal ? '' : this.title,\r\n },\r\n });\r\n }\r\n\r\n if (this.isModal) {\r\n this.updateModalTitle();\r\n }\r\n });\r\n }\r\n\r\n protected getChartOptions(): Options {\r\n const intensityHighText = this.intensityHighText;\r\n const intensityMediumText = this.intensityMediumText;\r\n const intensityLowText = this.intensityLowText;\r\n const intensityNoneText = this.intensityNoneText;\r\n return {\r\n time: {\r\n useUTC: false,\r\n timezoneOffset: new Date().getTimezoneOffset(),\r\n },\r\n legend: {\r\n enabled: this.isModal,\r\n },\r\n navigation: {\r\n buttonOptions: {\r\n enabled: false,\r\n },\r\n },\r\n xAxis: {\r\n type: 'datetime',\r\n crosshair: this.isModal,\r\n tickInterval: this.isModal ? 60 * 60 * 1000 : 4 * 60 * 60 * 1000, // 1 hour in modal, otherwise 4 hours (in ms)\r\n events: {\r\n setExtremes: (event) => this.handleSetExtremesEvent(event),\r\n },\r\n },\r\n chart: {\r\n zoomType: 'xy',\r\n panKey: 'ctrl',\r\n panning: {\r\n enabled: true,\r\n },\r\n animation: false,\r\n style: {\r\n fontFamily: 'Myriad Pro',\r\n },\r\n resetZoomButton: {\r\n theme: {\r\n stroke: 'var(--ion-color-primary)',\r\n height: 8,\r\n },\r\n },\r\n },\r\n yAxis: {\r\n title: {\r\n text: '',\r\n align: 'high',\r\n offset: 0,\r\n rotation: 0,\r\n y: -15,\r\n style: {\r\n fontSize: '12px',\r\n },\r\n },\r\n lineWidth: 1,\r\n tickInterval: 1,\r\n endOnTick: false,\r\n labels: {\r\n style: {\r\n fontSize: '12px',\r\n },\r\n formatter() {\r\n switch (this.value) {\r\n case 1:\r\n return intensityLowText;\r\n case 2:\r\n return intensityMediumText;\r\n case 3:\r\n return intensityHighText;\r\n default:\r\n return intensityNoneText;\r\n }\r\n },\r\n rotation: -90,\r\n },\r\n },\r\n credits: {\r\n enabled: false,\r\n },\r\n tooltip: {\r\n enabled: this.isModal,\r\n split: true,\r\n formatter() {\r\n const bottomText = `${moment(new Date(this.x)).format(\r\n 'DD.MM.YYYY / HH:mm:ss'\r\n )}`;\r\n switch (this.y) {\r\n case 1:\r\n return [bottomText, intensityLowText];\r\n case 2:\r\n return [bottomText, intensityMediumText];\r\n case 3:\r\n return [bottomText, intensityHighText];\r\n default:\r\n return [bottomText, intensityNoneText];\r\n }\r\n },\r\n },\r\n lang: {\r\n noData: this.noDataText,\r\n loading: this.loadingText,\r\n },\r\n noData: {\r\n style: {\r\n fontWeight: 'normal',\r\n fontSize: '12px',\r\n color: '#666666',\r\n },\r\n },\r\n loading: {\r\n style: {\r\n fontWeight: 'normal',\r\n fontSize: '12px',\r\n color: '#666666',\r\n },\r\n },\r\n plotOptions: {\r\n spline: {\r\n marker: {\r\n enabled: false,\r\n },\r\n },\r\n series: {\r\n states: {\r\n hover: {\r\n enabled: false,\r\n },\r\n inactive: {\r\n opacity: 1,\r\n },\r\n },\r\n },\r\n },\r\n };\r\n }\r\n}\r\n","\r\n\r\n
\r\n PDF\r\n \r\n
\r\n\r\n
\r\n \r\n
\r\n","import { TranslateService } from '@ngx-translate/core';\r\nimport { map, merge, Observable, of, switchMap } from 'rxjs';\r\nimport { MeteoStation } from 'src/app/maps/domain/meteostation.model';\r\nimport { Ropeway } from 'src/app/maps/domain/ropeway.model';\r\nimport { ForecastTrend } from 'src/app/maps/trenddata/forecast-trend.model';\r\nimport { MeteoTrendService } from 'src/app/maps/trenddata/meteo-trend.service';\r\nimport { WindTrend } from 'src/app/maps/trenddata/wind-trend.model';\r\nimport { ChartAdapter } from 'src/app/maps/widgets/charts/chart-adapter';\r\nimport { ChartSettingsService } from 'src/app/maps/widgets/charts/chart-settings.service';\r\nimport { ChartSelector } from 'src/app/maps/widgets/charts/ropeway-chart/chart-selector.model';\r\nimport { RopewayChartHandler } from 'src/app/maps/widgets/charts/ropeway-chart/ropeway-chart-handler';\r\n\r\nexport class MeteoHandler extends RopewayChartHandler {\r\n private static readonly maxTranslateString = 'analytics.term.max';\r\n private static readonly avgTranslateString = 'analytics.term.avg';\r\n private static readonly forecastAvgTranslateString = 'analytics.term.forecastAvg';\r\n private static readonly forecastMaxTranslateString = 'analytics.term.forecastMax';\r\n\r\n private readonly trendLineColor = ['#0013ccff', '#efb700ff', '#cc00bcff'];\r\n private readonly forecastLineColor = ['#1395b9ff', '#8b774aff', '#ff3f82ff'];\r\n\r\n private meteoStationIndex: number;\r\n private meteoStationSetting: string;\r\n private meteoStationForecastSetting: string;\r\n private seriesIdAvg: string;\r\n private seriesIdMax: string;\r\n private seriesIdForecastAvg: string;\r\n private seriesIdForecastMax: string;\r\n\r\n private seriesNameAvg: string;\r\n private seriesNameMax: string;\r\n private seriesNameForecastAvg: string;\r\n private seriesNameForecastMax: string;\r\n\r\n constructor(\r\n protected chartSettingsService: ChartSettingsService,\r\n protected chartAdapter: ChartAdapter,\r\n private meteoTrendService: MeteoTrendService,\r\n private meteoStation: MeteoStation,\r\n translateService: TranslateService,\r\n ropeway: Ropeway,\r\n yAxisUnits: string[]\r\n ) {\r\n super(chartSettingsService, chartAdapter, translateService, ropeway, yAxisUnits);\r\n\r\n this.meteoStationIndex = ropeway.meteoStations.indexOf(this.meteoStation);\r\n this.meteoStationSetting = this.meteoStation.meteoDeviceSisId;\r\n this.meteoStationForecastSetting = this.meteoStation.meteoDeviceSisId + 'forecast';\r\n this.seriesIdAvg = this.meteoStationSetting + 'avg';\r\n this.seriesIdMax = this.meteoStationSetting + 'max';\r\n this.seriesIdForecastAvg = this.meteoStationForecastSetting + 'avg';\r\n this.seriesIdForecastMax = this.meteoStationForecastSetting + 'max';\r\n\r\n this.seriesNameAvg = this.meteoStation.alias + ' ' + translateService.instant(MeteoHandler.avgTranslateString);\r\n this.seriesNameMax = this.meteoStation.alias + ' ' + translateService.instant(MeteoHandler.maxTranslateString);\r\n this.seriesNameForecastAvg =\r\n this.meteoStation.alias + ' ' + translateService.instant(MeteoHandler.forecastAvgTranslateString);\r\n this.seriesNameForecastMax =\r\n this.meteoStation.alias + ' ' + translateService.instant(MeteoHandler.forecastMaxTranslateString);\r\n }\r\n\r\n seriesObservable(): Observable> {\r\n return merge(this.getTrendObservable(), this.getForecastObservable());\r\n }\r\n\r\n getChartSelectors(): ChartSelector[] {\r\n const selectors = [\r\n {\r\n setting: this.meteoStation.meteoDeviceSisId,\r\n titleStrings: ['ropeway.term.wind', this.meteoStation.alias],\r\n ropewaySisId: this.ropeway.sisId,\r\n selected$: this.chartSettingsService.getRopewaySetting(this.ropeway.sisId, this.meteoStation.meteoDeviceSisId),\r\n },\r\n ];\r\n\r\n if (this.meteoStation.hasForecast) {\r\n selectors.push({\r\n setting: this.meteoStation.meteoDeviceSisId + 'forecast',\r\n titleStrings: ['ropeway.term.wind', this.meteoStation.alias, 'general.term.forecast'],\r\n ropewaySisId: this.ropeway.sisId,\r\n selected$: this.chartSettingsService.getRopewaySetting(\r\n this.ropeway.sisId,\r\n this.meteoStation.meteoDeviceSisId + 'forecast'\r\n ),\r\n });\r\n }\r\n\r\n return selectors;\r\n }\r\n\r\n private getTrendObservable(): Observable> {\r\n return this.chartSettingsService.getRopewaySetting(this.ropeway.sisId, this.meteoStationSetting).pipe(\r\n switchMap((enabled) => {\r\n if (enabled) {\r\n this.chartAdapter.addSeries(this.seriesIdAvg, {\r\n name: this.seriesNameAvg,\r\n id: this.seriesIdAvg,\r\n type: 'spline' as any,\r\n lineWidth: 1,\r\n tooltip: {\r\n valueSuffix: ' km/h',\r\n },\r\n color: this.trendLineColor[this.meteoStationIndex % this.trendLineColor.length],\r\n yAxis: this.yAxisUnits.indexOf('km/h'),\r\n });\r\n this.chartAdapter.addSeries(this.seriesIdMax, {\r\n name: this.seriesNameMax,\r\n id: this.seriesIdMax,\r\n type: 'spline' as any,\r\n lineWidth: 2,\r\n tooltip: {\r\n valueSuffix: ' km/h',\r\n },\r\n color: this.trendLineColor[this.meteoStationIndex % this.trendLineColor.length],\r\n yAxis: this.yAxisUnits.indexOf('km/h'),\r\n });\r\n\r\n return this.chartAdapter.loadData([this.meteoTrendService.getWindTrends(this.meteoStation.guid)]).pipe(\r\n map((data) => [\r\n { seriesId: this.seriesIdAvg, data: this.getAverageTrends(data[0]) },\r\n { seriesId: this.seriesIdMax, data: this.getMaxTrends(data[0]) },\r\n ])\r\n );\r\n } else {\r\n this.chartAdapter.removeSeries(this.seriesIdAvg);\r\n this.chartAdapter.removeSeries(this.seriesIdMax);\r\n return of([\r\n { seriesId: this.seriesIdAvg, data: null },\r\n { seriesId: this.seriesIdMax, data: null },\r\n ]);\r\n }\r\n })\r\n );\r\n }\r\n\r\n private getForecastObservable(): Observable> {\r\n if (!this.meteoStation.hasForecast) {\r\n return of([]);\r\n }\r\n\r\n return this.chartSettingsService.getRopewaySetting(this.ropeway.sisId, this.meteoStationForecastSetting).pipe(\r\n switchMap((enabled) => {\r\n if (enabled) {\r\n this.chartAdapter.addSeries(this.seriesIdForecastAvg, {\r\n name: this.seriesNameForecastAvg,\r\n id: this.seriesIdForecastAvg,\r\n type: 'spline' as any,\r\n className: 'line-forecast',\r\n tooltip: {\r\n valueSuffix: ' km/h',\r\n },\r\n lineWidth: 1,\r\n color: this.forecastLineColor[this.meteoStationIndex % this.forecastLineColor.length],\r\n yAxis: this.yAxisUnits.indexOf('km/h'),\r\n });\r\n this.chartAdapter.addSeries(this.seriesIdForecastMax, {\r\n name: this.seriesNameForecastMax,\r\n id: this.seriesIdForecastMax,\r\n type: 'spline' as any,\r\n className: 'line-forecast',\r\n tooltip: {\r\n valueSuffix: ' km/h',\r\n },\r\n lineWidth: 2,\r\n color: this.forecastLineColor[this.meteoStationIndex % this.forecastLineColor.length],\r\n yAxis: this.yAxisUnits.indexOf('km/h'),\r\n });\r\n\r\n return this.chartAdapter.loadData([this.meteoTrendService.getForecastTrends(this.meteoStation.guid)]).pipe(\r\n map((data) => [\r\n { seriesId: this.seriesIdForecastAvg, data: this.getAverageTrends(this.adaptForecast(data[0])) },\r\n { seriesId: this.seriesIdForecastMax, data: this.getMaxTrends(this.adaptForecast(data[0])) },\r\n ])\r\n );\r\n } else {\r\n this.chartAdapter.removeSeries(this.seriesIdForecastAvg);\r\n this.chartAdapter.removeSeries(this.seriesIdForecastMax);\r\n return of([\r\n { seriesId: this.seriesIdForecastAvg, data: null },\r\n { seriesId: this.seriesIdForecastMax, data: null },\r\n ]);\r\n }\r\n })\r\n );\r\n }\r\n\r\n private adaptForecast(forecasts: ForecastTrend[]): WindTrend[] {\r\n return forecasts.map((item) => ({\r\n maxValue: item.windSpeedKmhMax,\r\n meanValue: item.windSpeedKmh,\r\n timestamp: item.timestamp,\r\n }));\r\n }\r\n\r\n // returns an array with index 0 = Timestamp in ms, 1 = Average-Value\r\n private getAverageTrends(trends: WindTrend[]): number[][] {\r\n return trends\r\n .map((item) => {\r\n const timeStampInMs = item.timestamp.getTime();\r\n return [timeStampInMs, item.meanValue];\r\n })\r\n .sort((i1, i2) => i1[0] - i2[0]);\r\n }\r\n\r\n // returns an array with index 0 = Timestamp in ms, 1 = Max-Value\r\n private getMaxTrends(trends: WindTrend[]): number[][] {\r\n return trends\r\n .map((item) => {\r\n const timeStampInMs = item.timestamp.getTime();\r\n return [timeStampInMs, item.maxValue];\r\n })\r\n .sort((i1, i2) => i1[0] - i2[0]);\r\n }\r\n}\r\n","import { TranslateService } from '@ngx-translate/core';\r\nimport { Observable } from 'rxjs';\r\nimport { Ropeway } from 'src/app/maps/domain/ropeway.model';\r\nimport { ChartAdapter } from 'src/app/maps/widgets/charts/chart-adapter';\r\nimport { ChartSettingsService } from 'src/app/maps/widgets/charts/chart-settings.service';\r\nimport { ChartSelector } from 'src/app/maps/widgets/charts/ropeway-chart/chart-selector.model';\r\n\r\nexport abstract class RopewayChartHandler {\r\n seriesId: string;\r\n\r\n abstract seriesObservable(): Observable>;\r\n\r\n abstract getChartSelectors(): ChartSelector[];\r\n\r\n constructor(\r\n protected chartSettingsService: ChartSettingsService,\r\n protected chartAdapter: ChartAdapter,\r\n protected translateService: TranslateService,\r\n protected ropeway: Ropeway,\r\n protected yAxisUnits: string[]\r\n ) {}\r\n}\r\n","import { Component, OnInit } from '@angular/core';\r\nimport { TranslateService } from '@ngx-translate/core';\r\nimport { Options } from 'highcharts';\r\nimport { combineLatest, merge } from 'rxjs';\r\nimport { distinctUntilChanged, filter, map, switchMap, take, takeUntil } from 'rxjs/operators';\r\nimport { TimeFormatService } from 'src/app/core/utils/time-format.service';\r\nimport { Ropeway } from 'src/app/maps/domain/ropeway.model';\r\nimport { SelectedMapElementService } from 'src/app/maps/selected-map-element.service';\r\nimport { MeteoTrendService } from 'src/app/maps/trenddata/meteo-trend.service';\r\nimport { RopewaySpeedTrendService } from 'src/app/maps/trenddata/ropeway-speed-trend.service';\r\nimport { RopewayTorqueTrendService } from 'src/app/maps/trenddata/ropeway-torque-trend.service';\r\nimport { ChartBase } from 'src/app/maps/widgets/charts/chart-base';\r\nimport { ChartSettings } from 'src/app/maps/widgets/charts/chart-settings.model';\r\nimport { ChartSettingsService } from 'src/app/maps/widgets/charts/chart-settings.service';\r\nimport { ChartSelector } from 'src/app/maps/widgets/charts/ropeway-chart/chart-selector.model';\r\nimport { MeteoHandler } from 'src/app/maps/widgets/charts/ropeway-chart/meteo-handler';\r\nimport { RopewayChartHandler } from 'src/app/maps/widgets/charts/ropeway-chart/ropeway-chart-handler';\r\nimport { SpeedHandler } from 'src/app/maps/widgets/charts/ropeway-chart/speed-handler';\r\nimport { TorqueHandler } from 'src/app/maps/widgets/charts/ropeway-chart/torque-handler';\r\n\r\n@Component({\r\n selector: 'sis-ropeway-chart',\r\n templateUrl: './ropeway-chart.component.html',\r\n styleUrls: ['./ropeway-chart.component.scss'],\r\n standalone: false\r\n})\r\nexport class RopewayChartComponent extends ChartBase implements OnInit {\r\n private readonly ropeway$ = this.chartAdapter.chartReady$.pipe(\r\n take(1),\r\n switchMap(() => this.selectedMapElementService.selectedRopeway$)\r\n );\r\n\r\n private readonly yAxisUnits = ['m/s', '%', 'km/h'];\r\n\r\n dataSelectionOpen: boolean = true;\r\n chartSelectors: ChartSelector[] = [];\r\n private availableCharts: RopewayChartHandler[] = [];\r\n\r\n readonly forecastEnabled$ = this.chartSettingsService.forecastEnabled$;\r\n readonly forecastTestActive$ = this.ropeway$.pipe(\r\n switchMap((ropeway) =>\r\n combineLatest(\r\n ropeway.meteoStations\r\n .filter((m) => m.hasForecast && m.forecastTestActive)\r\n .map((meteoStation) => this.chartSettingsService.getRopewaySetting(ropeway.sisId, meteoStation.guid))\r\n )\r\n ),\r\n map((bools) => bools.length && bools.some((b) => b))\r\n );\r\n\r\n constructor(\r\n private meteoTrendService: MeteoTrendService,\r\n private chartSettingsService: ChartSettingsService,\r\n private selectedMapElementService: SelectedMapElementService,\r\n private ropewaySpeedTrendService: RopewaySpeedTrendService,\r\n private ropewayTorqueTrendService: RopewayTorqueTrendService,\r\n timeFormatService: TimeFormatService,\r\n private translateService: TranslateService,\r\n chartSettings: ChartSettings\r\n ) {\r\n super(translateService, chartSettings?.inModal, timeFormatService);\r\n\r\n this.minY = null;\r\n }\r\n\r\n ngOnInit(): void {\r\n this.ropeway$\r\n .pipe(\r\n distinctUntilChanged(),\r\n filter((ropeway) => !!ropeway),\r\n switchMap((ropeway) => {\r\n this.title = ropeway.alias;\r\n this.initChart(ropeway);\r\n this.chartAdapter.showLoading();\r\n\r\n this.availableCharts = [\r\n new SpeedHandler(\r\n this.chartSettingsService,\r\n this.chartAdapter,\r\n this.ropewaySpeedTrendService,\r\n this.translateService,\r\n ropeway,\r\n this.yAxisUnits\r\n ),\r\n new TorqueHandler(\r\n this.chartSettingsService,\r\n this.chartAdapter,\r\n this.ropewayTorqueTrendService,\r\n this.translateService,\r\n ropeway,\r\n this.yAxisUnits\r\n ),\r\n ];\r\n\r\n ropeway.meteoStations.forEach((meteoStation) => {\r\n this.availableCharts.push(\r\n new MeteoHandler(\r\n this.chartSettingsService,\r\n this.chartAdapter,\r\n this.meteoTrendService,\r\n meteoStation,\r\n this.translateService,\r\n ropeway,\r\n this.yAxisUnits\r\n )\r\n );\r\n });\r\n this.chartSelectors = this.availableCharts.map((c) => c.getChartSelectors()).flat(1);\r\n\r\n return merge(...this.availableCharts.map((c) => c.seriesObservable()));\r\n }),\r\n takeUntil(this.onDestroy$)\r\n )\r\n .subscribe((seriesDatas: Array<{ seriesId: string; data: number[][] }>) => {\r\n seriesDatas.forEach((series) => {\r\n this.updateChart(series.seriesId, series.data);\r\n });\r\n });\r\n }\r\n\r\n async toggleSetting(ropewaySisId: string, setting: string): Promise {\r\n await this.chartSettingsService.toggleRopewaySetting(ropewaySisId, setting);\r\n }\r\n\r\n private initChart(ropeway: Ropeway): void {\r\n this.deviceAlias = ropeway.alias;\r\n this.updateTitle();\r\n\r\n if (this.isModal) {\r\n this.updateModalTitle();\r\n }\r\n\r\n this.chartAdapter.showLoading();\r\n this.chartAdapter.removeAllSeries();\r\n this.chartAdapter.reflowChart(this.onDestroy$);\r\n }\r\n\r\n private updateChart(seriesId: string, data: number[][]): void {\r\n this.chartAdapter.hideLoading();\r\n this.chartAdapter.setSeriesData(seriesId, data);\r\n\r\n if (!this.isZoomed) {\r\n this.chartAdapter.setXAxisExtremes(0, null, null);\r\n }\r\n\r\n if (this.isZoomed && this.isZoomedToEnd) {\r\n this.chartAdapter.setXAxisExtremes(0, this.zoomMin, null);\r\n }\r\n }\r\n\r\n async toggleForecast(e: PointerEvent): Promise {\r\n e.stopPropagation();\r\n this.chartSettingsService.toggleForecast();\r\n }\r\n\r\n resetZoom(): void {\r\n this.chartAdapter.zoomOut();\r\n }\r\n\r\n // eslint-disable-next-line @typescript-eslint/no-unused-vars\r\n protected override translateTexts(translateService: TranslateService): void {}\r\n\r\n protected getChartOptions(): Options {\r\n return {\r\n time: {\r\n useUTC: false,\r\n timezoneOffset: new Date().getTimezoneOffset(),\r\n },\r\n legend: {\r\n enabled: this.isModal,\r\n },\r\n navigation: {\r\n buttonOptions: {\r\n enabled: false,\r\n },\r\n },\r\n xAxis: {\r\n type: 'datetime',\r\n crosshair: this.isModal,\r\n tickInterval: 1 * 60 * 60 * 1000, // 1 hours in ms\r\n events: {\r\n setExtremes: this.handleSetExtremesEvent.bind(this),\r\n },\r\n },\r\n chart: {\r\n zoomType: 'xy',\r\n panKey: 'ctrl',\r\n alignTicks: false,\r\n panning: {\r\n enabled: true,\r\n },\r\n animation: false,\r\n style: {\r\n fontFamily: 'Myriad Pro',\r\n },\r\n resetZoomButton: {\r\n theme: {\r\n stroke: 'var(--ion-color-primary)',\r\n height: 8,\r\n },\r\n position: {\r\n y: -10000,\r\n },\r\n },\r\n },\r\n yAxis: [\r\n {\r\n title: {\r\n text: `[m/s]`,\r\n align: 'high',\r\n offset: 10,\r\n rotation: 0,\r\n y: -15,\r\n style: {\r\n fontSize: '12px',\r\n },\r\n },\r\n lineWidth: 1,\r\n tickInterval: 1,\r\n labels: {\r\n style: {\r\n fontSize: '12px',\r\n },\r\n },\r\n min: 0,\r\n softMax: 6,\r\n gridLineWidth: 0,\r\n showEmpty: false,\r\n },\r\n {\r\n title: {\r\n text: `[%]`,\r\n align: 'high',\r\n offset: 12,\r\n rotation: 0,\r\n y: -15,\r\n style: {\r\n fontSize: '12px',\r\n },\r\n },\r\n lineWidth: 1,\r\n labels: {\r\n style: {\r\n fontSize: '12px',\r\n },\r\n },\r\n softMin: 0,\r\n softMax: 100,\r\n gridLineWidth: 0,\r\n tickInterval: 20,\r\n showEmpty: false,\r\n },\r\n {\r\n title: {\r\n text: `[km/h]`,\r\n align: 'high',\r\n offset: 10,\r\n rotation: 0,\r\n y: -15,\r\n style: {\r\n fontSize: '12px',\r\n },\r\n },\r\n lineWidth: 1,\r\n tickInterval: 20,\r\n labels: {\r\n style: {\r\n fontSize: '12px',\r\n },\r\n },\r\n min: 0,\r\n softMax: 80,\r\n gridLineWidth: 0,\r\n showEmpty: false,\r\n },\r\n ],\r\n credits: {\r\n enabled: false,\r\n },\r\n tooltip: {\r\n enabled: this.isModal,\r\n split: true,\r\n valueSuffix: '',\r\n xDateFormat: '%d.%m.%y / %H:%M:%S',\r\n },\r\n lang: {\r\n noData: this.noDataText,\r\n loading: this.loadingText,\r\n },\r\n noData: {\r\n style: {\r\n fontWeight: 'normal',\r\n fontSize: '12px',\r\n color: '#666666',\r\n },\r\n },\r\n loading: {\r\n style: {\r\n fontWeight: 'normal',\r\n fontSize: '12px',\r\n color: '#666666',\r\n },\r\n },\r\n plotOptions: {\r\n spline: {\r\n marker: {\r\n enabled: false,\r\n },\r\n },\r\n series: {\r\n states: {\r\n hover: {\r\n enabled: false,\r\n },\r\n inactive: {\r\n opacity: 1,\r\n },\r\n },\r\n },\r\n },\r\n };\r\n }\r\n}\r\n","\r\n\r\n
\r\n
\r\n {{ 'analytics.phrase.resetZoom' | translate }}\r\n
\r\n\r\n
\r\n PDF\r\n
\r\n\r\n
\r\n \r\n {{\r\n this.dataSelectionOpen\r\n ? ('analytics.phrase.hideDataSelectors' | translate)\r\n : ('analytics.phrase.showDataSelectors' | translate)\r\n }}\r\n \r\n
\r\n
\r\n\r\n\r\n \r\n \r\n \r\n \r\n \r\n {{ s | translate }} \r\n \r\n \r\n\r\n\r\n
\r\n \r\n
\r\n","import { TranslateService } from '@ngx-translate/core';\r\nimport { map, Observable, of, switchMap } from 'rxjs';\r\nimport { Ropeway } from 'src/app/maps/domain/ropeway.model';\r\nimport { RopewaySpeedTrend } from 'src/app/maps/trenddata/ropeway-speed-trend.model';\r\nimport { RopewaySpeedTrendService } from 'src/app/maps/trenddata/ropeway-speed-trend.service';\r\nimport { ChartAdapter } from 'src/app/maps/widgets/charts/chart-adapter';\r\nimport { ChartSettingsService } from 'src/app/maps/widgets/charts/chart-settings.service';\r\nimport { ChartSelector } from 'src/app/maps/widgets/charts/ropeway-chart/chart-selector.model';\r\nimport { RopewayChartHandler } from 'src/app/maps/widgets/charts/ropeway-chart/ropeway-chart-handler';\r\n\r\nexport class SpeedHandler extends RopewayChartHandler {\r\n private static readonly speedTranslateString = 'ropeway.term.speed';\r\n private static readonly trendColor = '#d30000ff';\r\n\r\n private seriesName: string;\r\n\r\n constructor(\r\n protected chartSettingsService: ChartSettingsService,\r\n protected chartAdapter: ChartAdapter,\r\n private ropewaySpeedTrendService: RopewaySpeedTrendService,\r\n translateService: TranslateService,\r\n ropeway: Ropeway,\r\n yAxisUnits: string[]\r\n ) {\r\n super(chartSettingsService, chartAdapter, translateService, ropeway, yAxisUnits);\r\n\r\n this.seriesId = ropeway.sisId + 'speed';\r\n this.seriesName = translateService.instant(SpeedHandler.speedTranslateString);\r\n }\r\n\r\n seriesObservable(): Observable> {\r\n return this.chartSettingsService.getRopewaySetting(this.ropeway.sisId, this.seriesId).pipe(\r\n switchMap((enabled) => {\r\n if (enabled) {\r\n this.chartAdapter.addSeries(this.seriesId, {\r\n name: this.seriesName,\r\n id: this.seriesId,\r\n type: 'spline' as any,\r\n lineWidth: 1,\r\n className: '',\r\n tooltip: {\r\n valueSuffix: ' m/s',\r\n },\r\n color: SpeedHandler.trendColor,\r\n yAxis: this.yAxisUnits.indexOf('m/s'),\r\n });\r\n\r\n return this.chartAdapter\r\n .loadData([this.ropewaySpeedTrendService.getSpeedData(this.ropeway.sisId)])\r\n .pipe(map((data) => [{ seriesId: this.seriesId, data: this.getData(data[0]) }]));\r\n } else {\r\n this.chartAdapter.removeSeries(this.seriesId);\r\n return of([{ seriesId: this.seriesId, data: null }]);\r\n }\r\n })\r\n );\r\n }\r\n\r\n getChartSelectors(): ChartSelector[] {\r\n return [\r\n {\r\n setting: this.seriesId,\r\n titleStrings: [SpeedHandler.speedTranslateString],\r\n ropewaySisId: this.ropeway.sisId,\r\n selected$: this.chartSettingsService.getRopewaySetting(this.ropeway.sisId, this.seriesId),\r\n },\r\n ];\r\n }\r\n\r\n private getData(data: RopewaySpeedTrend[]): number[][] {\r\n return (\r\n data\r\n ?.map((item) => {\r\n const timeStampInMs = item.timestamp.getTime();\r\n return [timeStampInMs, item.speed];\r\n })\r\n .sort((i1, i2) => i1[0] - i2[0]) ?? []\r\n );\r\n }\r\n}\r\n","import { TranslateService } from '@ngx-translate/core';\r\nimport { map, Observable, of, switchMap } from 'rxjs';\r\nimport { Configuration } from 'src/app/maps/domain/configuration.model';\r\nimport { Ropeway } from 'src/app/maps/domain/ropeway.model';\r\nimport { RopewayTorqueTrend } from 'src/app/maps/trenddata/ropeway-torque-trend.model';\r\nimport { RopewayTorqueTrendService } from 'src/app/maps/trenddata/ropeway-torque-trend.service';\r\nimport { ChartAdapter } from 'src/app/maps/widgets/charts/chart-adapter';\r\nimport { ChartSettingsService } from 'src/app/maps/widgets/charts/chart-settings.service';\r\nimport { ChartSelector } from 'src/app/maps/widgets/charts/ropeway-chart/chart-selector.model';\r\nimport { RopewayChartHandler } from 'src/app/maps/widgets/charts/ropeway-chart/ropeway-chart-handler';\r\n\r\nexport class TorqueHandler extends RopewayChartHandler {\r\n static readonly torqueTranslateString = 'ropeway.term.torque';\r\n static readonly motorCurrentTranslateString = 'ropeway.term.motorcurrent';\r\n static readonly trendColor = '#009f10ff';\r\n\r\n private seriesName: string;\r\n private torqueTrends: RopewayTorqueTrend[];\r\n\r\n constructor(\r\n protected chartSettingsService: ChartSettingsService,\r\n protected chartAdapter: ChartAdapter,\r\n private ropewayTorqueTrendService: RopewayTorqueTrendService,\r\n translateService: TranslateService,\r\n ropeway: Ropeway,\r\n yAxisUnits: string[]\r\n ) {\r\n super(chartSettingsService, chartAdapter, translateService, ropeway, yAxisUnits);\r\n\r\n this.seriesId = ropeway.sisId + 'torque';\r\n const translateString = this.ropeway.configurations.some((c) => c.configKey === Configuration.driveTorqueNmKey)\r\n ? TorqueHandler.torqueTranslateString\r\n : TorqueHandler.motorCurrentTranslateString;\r\n this.seriesName = translateService.instant(translateString);\r\n }\r\n\r\n seriesObservable(): Observable> {\r\n return this.chartSettingsService.getRopewaySetting(this.ropeway.sisId, this.seriesId).pipe(\r\n switchMap((enabled) => {\r\n if (enabled) {\r\n const self = this;\r\n this.chartAdapter.addSeries(this.seriesId, {\r\n name: this.seriesName,\r\n id: this.seriesId,\r\n type: 'spline' as any,\r\n lineWidth: 1,\r\n className: '',\r\n tooltip: {\r\n pointFormatter() {\r\n const data = self.torqueTrends.find((d) => d.timestamp.getTime() === this.x);\r\n const yText =\r\n data.torqueAbsolute != null\r\n ? `${data.torqueAbsolute} ${data.unit} (${Math.round(this.y)}%)`\r\n : `${Math.round(this.y)} ${data.unit}`;\r\n return `\\u25CF ${self.seriesName}: ${yText}`;\r\n },\r\n },\r\n color: TorqueHandler.trendColor,\r\n yAxis: this.yAxisUnits.indexOf('%'),\r\n });\r\n\r\n return this.chartAdapter.loadData([this.ropewayTorqueTrendService.getTorqueData(this.ropeway)]).pipe(\r\n map((data) => {\r\n this.torqueTrends = data[0];\r\n return [{ seriesId: this.seriesId, data: this.getData(data[0]) }];\r\n })\r\n );\r\n } else {\r\n this.chartAdapter.removeSeries(this.seriesId);\r\n return of([{ seriesId: this.seriesId, data: null }]);\r\n }\r\n })\r\n );\r\n }\r\n\r\n getChartSelectors(): ChartSelector[] {\r\n return [\r\n {\r\n setting: this.seriesId,\r\n titleStrings: this.ropeway.configurations.some((c) => c.configKey === Configuration.driveTorqueNmKey)\r\n ? [TorqueHandler.torqueTranslateString]\r\n : [TorqueHandler.motorCurrentTranslateString],\r\n ropewaySisId: this.ropeway.sisId,\r\n selected$: this.chartSettingsService.getRopewaySetting(this.ropeway.sisId, this.seriesId),\r\n },\r\n ];\r\n }\r\n\r\n private getData(trends: RopewayTorqueTrend[]): number[][] {\r\n return (\r\n trends\r\n ?.map((item) => {\r\n const timeStampInMs = item.timestamp.getTime();\r\n return [timeStampInMs, item.torquePercent];\r\n })\r\n .sort((i1, i2) => i1[0] - i2[0]) ?? []\r\n );\r\n }\r\n}\r\n","import { Component, OnInit } from '@angular/core';\r\nimport { ModalController } from '@ionic/angular';\r\nimport { TranslateService } from '@ngx-translate/core';\r\nimport { Options } from 'highcharts';\r\nimport { combineLatest, distinctUntilChanged, filter, map, Observable, switchMap, take, takeUntil } from 'rxjs';\r\nimport { TimeFormatService } from 'src/app/core/utils/time-format.service';\r\nimport { EnergyLiveDataService } from 'src/app/maps/livedata/energy-livedata.service';\r\nimport { ModalPopupComponent } from 'src/app/maps/modal-popup/modal-popup.component';\r\nimport { SelectedMapElementService } from 'src/app/maps/selected-map-element.service';\r\nimport { EnergyTrend } from 'src/app/maps/trenddata/energy-trend.model';\r\nimport { EnergyTrendService } from 'src/app/maps/trenddata/energy-trend.service';\r\nimport { ChartBase } from 'src/app/maps/widgets/charts/chart-base';\r\nimport { ChartSettings } from 'src/app/maps/widgets/charts/chart-settings.model';\r\n\r\ninterface EnergyDevice {\r\n deviceSisId: string;\r\n displayName: string;\r\n}\r\n\r\n@Component({\r\n selector: 'sis-ropeway-energy-chart',\r\n templateUrl: './ropeway-energy-chart.component.html',\r\n styleUrls: ['./ropeway-energy-chart.component.scss'],\r\n standalone: false\r\n})\r\nexport class RopewayEnergyChartComponent extends ChartBase implements OnInit {\r\n private readonly chartData$: Observable<{\r\n energyDevices: EnergyDevice[];\r\n ropewayAlias: string;\r\n }> = combineLatest([\r\n this.energyLiveDataService.energy$,\r\n this.selectedMapElementService.selectedRopeway$,\r\n this.chartAdapter.chartReady$,\r\n ]).pipe(\r\n map(([energyLiveDatas, ropeway]) => {\r\n if (ropeway) {\r\n return {\r\n energyDevices: energyLiveDatas\r\n .filter((d) => d.parentSisId === ropeway.sisId)\r\n .map((d) => ({ deviceSisId: d.deviceSisId, displayName: d.displayName })),\r\n ropewayAlias: ropeway?.alias,\r\n };\r\n }\r\n return null;\r\n })\r\n );\r\n\r\n private energyText: string;\r\n\r\n constructor(\r\n private energyTrendService: EnergyTrendService,\r\n private energyLiveDataService: EnergyLiveDataService,\r\n private selectedMapElementService: SelectedMapElementService,\r\n private modalController: ModalController,\r\n timeFormatService: TimeFormatService,\r\n translateService: TranslateService,\r\n chartSettings: ChartSettings\r\n ) {\r\n super(translateService, chartSettings?.inModal, timeFormatService);\r\n }\r\n\r\n ngOnInit(): void {\r\n this.chartData$\r\n .pipe(\r\n distinctUntilChanged((x, y) => JSON.stringify(x) === JSON.stringify(y)),\r\n filter((d) => !!d),\r\n switchMap(({ energyDevices, ropewayAlias }) => {\r\n this.initChart(energyDevices, ropewayAlias);\r\n\r\n const trendObservables = energyDevices.map((d) => this.energyTrendService.requestEnergyTrend(d.deviceSisId));\r\n\r\n return this.chartAdapter.loadData(trendObservables).pipe(\r\n map((energyTrends: EnergyTrend[][]) => ({\r\n energyDevices,\r\n energyTrends,\r\n }))\r\n );\r\n }),\r\n takeUntil(this.onDestroy$)\r\n )\r\n .subscribe(({ energyDevices, energyTrends }) => {\r\n this.updateChartData(energyDevices, energyTrends);\r\n this.chartAdapter.hideLoading();\r\n });\r\n }\r\n\r\n async openInModal(e: PointerEvent): Promise {\r\n if (\r\n this.mouseMoved ||\r\n (e.target as SVGRectElement).getAttribute('class') === 'highcharts-button-box' ||\r\n e.target['localName'] === 'text'\r\n ) {\r\n e.stopPropagation();\r\n return;\r\n }\r\n\r\n if (!this.isModal) {\r\n const modal = await this.modalController.create({\r\n component: ModalPopupComponent,\r\n componentProps: { component: RopewayEnergyChartComponent },\r\n });\r\n return modal.present();\r\n }\r\n }\r\n\r\n private initChart(energyDevices: EnergyDevice[], ropewayAlias: string): void {\r\n this.deviceAlias = ropewayAlias;\r\n\r\n this.title = `${this.energyText} «${ropewayAlias}»`;\r\n\r\n this.updateTitle();\r\n\r\n if (this.isModal) {\r\n this.updateModalTitle();\r\n }\r\n\r\n this.chartAdapter.showLoading();\r\n this.chartAdapter.removeAllSeries();\r\n\r\n energyDevices.forEach((device, index) => {\r\n this.chartAdapter.addSeries(device.deviceSisId, {\r\n name: device.displayName,\r\n id: device.deviceSisId,\r\n type: 'area' as any,\r\n lineWidth: 1,\r\n className: '',\r\n color: this.getTrendLineColor(index),\r\n });\r\n });\r\n\r\n this.chartAdapter.reflowChart(this.onDestroy$);\r\n }\r\n\r\n private updateChartData(energyDevices: EnergyDevice[], energyTrends: EnergyTrend[][]): void {\r\n if (!energyTrends) {\r\n this.resetChart();\r\n return;\r\n }\r\n\r\n if (!energyTrends.length || energyTrends.every((t) => !t.length)) {\r\n this.resetChart();\r\n this.chartAdapter.showNoData();\r\n return;\r\n }\r\n\r\n energyTrends.forEach((trend, index) => {\r\n const chartData = this.getData(trend).sort((i1, i2) => i1[0] - i2[0]);\r\n\r\n this.chartAdapter.setSeriesData(energyDevices[index].deviceSisId, chartData);\r\n });\r\n\r\n this.maxY = this.getMaxYAxisValue(energyTrends);\r\n\r\n if (!this.isZoomed) {\r\n this.chartAdapter.setYAxisExtremes(0, this.minY, this.maxY);\r\n this.chartAdapter.setXAxisExtremes(0, null, null);\r\n }\r\n\r\n if (this.isZoomed && this.isZoomedToEnd) {\r\n this.chartAdapter.setXAxisExtremes(0, this.zoomMin, null);\r\n }\r\n }\r\n\r\n private getData(trend: EnergyTrend[]): number[][] {\r\n return trend.map((item) => {\r\n const timestampMs = item.timestamp.getTime();\r\n return [timestampMs, item.energyKwInterval];\r\n });\r\n }\r\n\r\n private getMaxYAxisValue(trends: EnergyTrend[][]): number {\r\n return Math.max(...trends.map((trend) => Math.max(...trend.map((t) => t.energyKwInterval ?? null)) ?? null));\r\n }\r\n\r\n private resetChart(): void {\r\n this.chartAdapter.clearAllSeriesData();\r\n }\r\n\r\n protected translateTexts(translateService: TranslateService): void {\r\n translateService\r\n .get(['ropeway.term.energy'])\r\n .pipe(take(1))\r\n .subscribe((res) => {\r\n this.energyText = res['ropeway.term.energy'];\r\n\r\n this.chartAdapter?.updateOptions({\r\n title: {\r\n text: this.isModal ? '' : this.title,\r\n },\r\n });\r\n\r\n if (this.isModal) {\r\n this.updateModalTitle();\r\n }\r\n });\r\n }\r\n\r\n protected getChartOptions(): Options {\r\n return {\r\n time: {\r\n useUTC: false,\r\n timezoneOffset: new Date().getTimezoneOffset(),\r\n },\r\n legend: {\r\n enabled: this.isModal,\r\n },\r\n navigation: {\r\n buttonOptions: {\r\n enabled: false,\r\n },\r\n },\r\n xAxis: {\r\n type: 'datetime',\r\n crosshair: this.isModal,\r\n tickInterval: 1 * 60 * 60 * 1000, // 1 hours in ms\r\n events: {\r\n setExtremes: (event) => this.handleSetExtremesEvent(event),\r\n },\r\n },\r\n chart: {\r\n zoomType: 'xy',\r\n panKey: 'ctrl',\r\n panning: {\r\n enabled: true,\r\n },\r\n animation: false,\r\n style: {\r\n fontFamily: 'Myriad Pro',\r\n },\r\n resetZoomButton: {\r\n theme: {\r\n stroke: 'var(--ion-color-primary)',\r\n height: 8,\r\n },\r\n },\r\n },\r\n yAxis: {\r\n title: {\r\n text: '[kW]',\r\n align: 'high',\r\n offset: 0,\r\n rotation: 0,\r\n y: -15,\r\n x: -15,\r\n style: {\r\n fontSize: '12px',\r\n },\r\n },\r\n lineWidth: 1,\r\n tickInterval: 100,\r\n labels: {\r\n style: {\r\n fontSize: '12px',\r\n },\r\n },\r\n },\r\n credits: {\r\n enabled: false,\r\n },\r\n tooltip: {\r\n enabled: this.isModal,\r\n split: true,\r\n valueSuffix: 'kW',\r\n xDateFormat: '%d.%m.%y / %H:%M:%S',\r\n },\r\n lang: {\r\n noData: this.noDataText,\r\n loading: this.loadingText,\r\n },\r\n noData: {\r\n style: {\r\n fontWeight: 'normal',\r\n fontSize: '12px',\r\n color: '#666666',\r\n },\r\n },\r\n loading: {\r\n style: {\r\n fontWeight: 'normal',\r\n fontSize: '12px',\r\n color: '#666666',\r\n },\r\n },\r\n plotOptions: {\r\n series: {\r\n states: {\r\n hover: {\r\n enabled: false,\r\n },\r\n inactive: {\r\n opacity: 1,\r\n },\r\n },\r\n },\r\n area: {\r\n fillOpacity: 0.7,\r\n },\r\n },\r\n };\r\n }\r\n}\r\n","\r\n\r\n
\r\n PDF\r\n \r\n
\r\n\r\n
\r\n \r\n
\r\n","import { Component, OnInit } from '@angular/core';\r\nimport { TranslateService } from '@ngx-translate/core';\r\nimport { Options } from 'highcharts';\r\nimport { distinctUntilChanged, filter, map, switchMap, take, takeUntil } from 'rxjs/operators';\r\nimport { TimeFormatService } from 'src/app/core/utils/time-format.service';\r\nimport { Configuration } from 'src/app/maps/domain/configuration.model';\r\nimport { Ropeway } from 'src/app/maps/domain/ropeway.model';\r\nimport { SelectedMapElementService } from 'src/app/maps/selected-map-element.service';\r\nimport { RopewaySpeedTrend } from 'src/app/maps/trenddata/ropeway-speed-trend.model';\r\nimport { RopewaySpeedTrendService } from 'src/app/maps/trenddata/ropeway-speed-trend.service';\r\nimport { ChartBase } from 'src/app/maps/widgets/charts/chart-base';\r\nimport { ChartSettings } from 'src/app/maps/widgets/charts/chart-settings.model';\r\n\r\n@Component({\r\n selector: 'sis-speed-chart',\r\n templateUrl: './speed-chart.component.html',\r\n styleUrls: ['./speed-chart.component.scss'],\r\n standalone: false\r\n})\r\nexport class SpeedChartComponent extends ChartBase implements OnInit {\r\n static readonly speedSeries = 'speedSeries';\r\n\r\n private static readonly titleTranslateString = 'ropeway.term.speed';\r\n\r\n private readonly plotlineAlarm = 'PLOT1';\r\n private readonly ropeway$ = this.chartAdapter.chartReady$.pipe(\r\n take(1),\r\n switchMap(() => this.selectedMapElementService.selectedRopeway$)\r\n );\r\n\r\n constructor(\r\n private ropewaySpeedTrendService: RopewaySpeedTrendService,\r\n private selectedMapElementService: SelectedMapElementService,\r\n timeFormatService: TimeFormatService,\r\n translateService: TranslateService,\r\n chartSettings: ChartSettings\r\n ) {\r\n super(translateService, chartSettings?.inModal, timeFormatService);\r\n }\r\n\r\n ngOnInit(): void {\r\n this.ropeway$\r\n .pipe(\r\n distinctUntilChanged(),\r\n filter((ropeway) => !!ropeway),\r\n switchMap((ropeway) => {\r\n this.initChart(ropeway);\r\n this.chartAdapter.showLoading();\r\n\r\n return this.chartAdapter\r\n .loadData([this.ropewaySpeedTrendService.getSpeedData(ropeway.sisId)])\r\n .pipe(map((data: [RopewaySpeedTrend[]]) => ({ ropeway, data: data[0] })));\r\n }),\r\n takeUntil(this.onDestroy$)\r\n )\r\n .subscribe(({ ropeway, data }) => {\r\n this.updateChartData(ropeway, data);\r\n this.chartAdapter.hideLoading();\r\n });\r\n }\r\n\r\n private initChart(ropeway: Ropeway): void {\r\n this.deviceAlias = ropeway.alias;\r\n this.updateTitle();\r\n\r\n if (this.isModal) {\r\n this.updateModalTitle();\r\n }\r\n\r\n this.chartAdapter.showLoading();\r\n this.chartAdapter.removeAllSeries();\r\n this.chartAdapter.addSeries(SpeedChartComponent.speedSeries, {\r\n name: this.title,\r\n id: 'speed',\r\n type: 'spline' as any,\r\n lineWidth: 1,\r\n className: '',\r\n color: this.getTrendLineColor(),\r\n });\r\n\r\n this.chartAdapter.reflowChart(this.onDestroy$);\r\n }\r\n\r\n private updateChartData(ropeway: Ropeway, trendDatas: RopewaySpeedTrend[]): void {\r\n if (!trendDatas) {\r\n this.resetChart();\r\n return;\r\n }\r\n\r\n const minX = this.chartAdapter.getTimeInMsHoursAgo(4);\r\n trendDatas = trendDatas.filter((t) => t.timestamp.getTime() >= minX);\r\n\r\n if (trendDatas.length === 0) {\r\n this.resetChart();\r\n this.chartAdapter.showNoData();\r\n return;\r\n }\r\n\r\n const config = this.getConfiguration(ropeway);\r\n const colorZones = this.getZones(config);\r\n const speedData = this.getData(trendDatas).sort((i1, i2) => i1[0] - i2[0]);\r\n\r\n this.setPlotLines(config);\r\n this.chartAdapter.setSeriesOptions(SpeedChartComponent.speedSeries, { zones: colorZones } as any);\r\n this.chartAdapter.setSeriesData(SpeedChartComponent.speedSeries, speedData);\r\n\r\n this.maxY = this.getMaxYAxisValue(config, trendDatas);\r\n\r\n if (!this.isZoomed) {\r\n this.chartAdapter.setYAxisExtremes(0, this.minY, this.maxY);\r\n this.chartAdapter.setXAxisExtremes(0, null, null);\r\n }\r\n\r\n if (this.isZoomed && this.isZoomedToEnd) {\r\n this.chartAdapter.setXAxisExtremes(0, this.zoomMin, null);\r\n }\r\n }\r\n\r\n private getMaxYAxisValue(config: Configuration, data: RopewaySpeedTrend[]): number {\r\n const maxSpeed = Math.max(...data.map((d) => d.speed ?? null));\r\n\r\n const nominalSpeed = config ? config.nominalValue : 0;\r\n\r\n return Math.ceil(Math.max(nominalSpeed, maxSpeed) + 0.1);\r\n }\r\n\r\n private getConfiguration(ropeway: Ropeway): Configuration {\r\n return ropeway?.configurations?.find((f) => f.configKey === 'actualSpeedMps');\r\n }\r\n\r\n private getZones(config: Configuration): any[] {\r\n const zones = [];\r\n if (!config) {\r\n return zones;\r\n }\r\n if (config.nominalValue) {\r\n zones.push({\r\n value: config.nominalValue,\r\n className: 'zone-nominal',\r\n });\r\n }\r\n zones.push({\r\n value: 400,\r\n className: 'zone-alarm',\r\n });\r\n return zones;\r\n }\r\n\r\n private setPlotLines(config: Configuration): void {\r\n this.chartAdapter.removeYPlotBand(0, this.plotlineAlarm);\r\n\r\n if (config && config.nominalValue) {\r\n this.chartAdapter.addYPlotBand(0, {\r\n from: config.nominalValue,\r\n to: 400,\r\n className: 'zone-medium',\r\n id: this.plotlineAlarm,\r\n });\r\n }\r\n }\r\n\r\n private getData(data: RopewaySpeedTrend[]): number[][] {\r\n return data.map((item) => {\r\n const timeStampInMs = item.timestamp.getTime();\r\n return [timeStampInMs, item.speed];\r\n });\r\n }\r\n\r\n private resetChart(): void {\r\n this.chartAdapter.clearAllSeriesData();\r\n }\r\n\r\n protected translateTexts(translateService: TranslateService): void {\r\n translateService\r\n .get([SpeedChartComponent.titleTranslateString])\r\n .pipe(take(1))\r\n .subscribe((res) => {\r\n this.title = res[SpeedChartComponent.titleTranslateString];\r\n\r\n this.chartAdapter?.updateOptions({\r\n title: {\r\n text: this.isModal ? '' : this.title,\r\n },\r\n });\r\n\r\n if (this.isModal) {\r\n this.updateModalTitle();\r\n }\r\n });\r\n }\r\n\r\n protected getChartOptions(): Options {\r\n return {\r\n time: {\r\n useUTC: false,\r\n timezoneOffset: new Date().getTimezoneOffset(),\r\n },\r\n legend: {\r\n enabled: this.isModal,\r\n },\r\n navigation: {\r\n buttonOptions: {\r\n enabled: false,\r\n },\r\n },\r\n xAxis: {\r\n type: 'datetime',\r\n crosshair: this.isModal,\r\n tickInterval: 1 * 60 * 60 * 1000, // 1 hours in ms\r\n events: {\r\n setExtremes: (event) => this.handleSetExtremesEvent(event),\r\n },\r\n },\r\n chart: {\r\n zoomType: 'xy',\r\n panKey: 'ctrl',\r\n panning: {\r\n enabled: true,\r\n },\r\n animation: false,\r\n style: {\r\n fontFamily: 'Myriad Pro',\r\n },\r\n resetZoomButton: {\r\n theme: {\r\n stroke: 'var(--ion-color-primary)',\r\n height: 8,\r\n },\r\n },\r\n },\r\n yAxis: {\r\n title: {\r\n text: '[m/s]',\r\n align: 'high',\r\n offset: 0,\r\n rotation: 0,\r\n y: -15,\r\n style: {\r\n fontSize: '12px',\r\n },\r\n },\r\n lineWidth: 1,\r\n tickInterval: 2,\r\n labels: {\r\n style: {\r\n fontSize: '12px',\r\n },\r\n },\r\n },\r\n credits: {\r\n enabled: false,\r\n },\r\n tooltip: {\r\n enabled: this.isModal,\r\n split: true,\r\n valueSuffix: 'm/s',\r\n xDateFormat: '%d.%m.%y / %H:%M:%S',\r\n },\r\n lang: {\r\n noData: this.noDataText,\r\n loading: this.loadingText,\r\n },\r\n noData: {\r\n style: {\r\n fontWeight: 'normal',\r\n fontSize: '12px',\r\n color: '#666666',\r\n },\r\n },\r\n loading: {\r\n style: {\r\n fontWeight: 'normal',\r\n fontSize: '12px',\r\n color: '#666666',\r\n },\r\n },\r\n plotOptions: {\r\n spline: {\r\n marker: {\r\n enabled: false,\r\n },\r\n },\r\n series: {\r\n states: {\r\n hover: {\r\n enabled: false,\r\n },\r\n inactive: {\r\n opacity: 1,\r\n },\r\n },\r\n },\r\n },\r\n };\r\n }\r\n}\r\n","\r\n\r\n
\r\n PDF\r\n \r\n
\r\n\r\n
\r\n \r\n
\r\n","import { Component, OnInit } from '@angular/core';\r\nimport { TranslateService } from '@ngx-translate/core';\r\nimport { Options, XAxisPlotLinesOptions } from 'highcharts';\r\nimport { distinctUntilChanged, filter, map, switchMap, take, takeUntil, tap } from 'rxjs/operators';\r\nimport { TimeFormatService } from 'src/app/core/utils/time-format.service';\r\nimport { MeteoStation } from 'src/app/maps/domain/meteostation.model';\r\nimport { MeteoStationService } from 'src/app/maps/meteostation-service/meteostation.service';\r\nimport { ForecastTrend } from 'src/app/maps/trenddata/forecast-trend.model';\r\nimport { MeteoTrendService } from 'src/app/maps/trenddata/meteo-trend.service';\r\nimport { TemperatureTrend } from 'src/app/maps/trenddata/temperature-trend.model';\r\nimport { ChartBase } from 'src/app/maps/widgets/charts/chart-base';\r\nimport { ChartSettings } from 'src/app/maps/widgets/charts/chart-settings.model';\r\n\r\n@Component({\r\n selector: 'sis-temperature-chart',\r\n templateUrl: './temperature-chart.component.html',\r\n styleUrls: ['./temperature-chart.component.scss'],\r\n standalone: false\r\n})\r\nexport class TemperatureChartComponent extends ChartBase implements OnInit {\r\n static readonly plotlineWarn = 'PLOT1';\r\n static readonly trendSeriesId = 'trendSeries';\r\n static readonly forecastSeriesId: 'forecastSeries';\r\n\r\n private static readonly titleTranslateString = 'ropeway.term.temperature';\r\n private static readonly maxTranslateString = 'analytics.term.max';\r\n private static readonly avgTranslateString = 'analytics.term.avg';\r\n private static readonly forecastTranslateString = 'analytics.term.forecast';\r\n\r\n private readonly defaultYAxisMax = 20;\r\n private readonly defaultYAxisMin = 0;\r\n private readonly trendLineWidth = 2;\r\n private readonly forecastLineWidth = 1;\r\n private readonly xAxisPlotlineNowId = 'xAxisPlotNow';\r\n private readonly meteoStations$ = this.chartAdapter.chartReady$.pipe(\r\n take(1),\r\n switchMap(() => this.meteoStationService.allMeteoStationsWithTemperature$)\r\n );\r\n\r\n private forecastText: string;\r\n\r\n constructor(\r\n private meteoTrendDataService: MeteoTrendService,\r\n private meteoStationService: MeteoStationService,\r\n timeFormatService: TimeFormatService,\r\n translateService: TranslateService,\r\n chartSettings: ChartSettings\r\n ) {\r\n super(translateService, chartSettings?.inModal, timeFormatService);\r\n\r\n this.minY = this.defaultYAxisMin;\r\n this.maxY = this.defaultYAxisMax;\r\n }\r\n\r\n ngOnInit(): void {\r\n this.meteoStations$\r\n .pipe(\r\n distinctUntilChanged(),\r\n filter((meteoStations) => meteoStations?.length > 0),\r\n tap((meteoStations) => this.initChart(meteoStations)),\r\n switchMap((meteoStations) => {\r\n this.chartAdapter.showLoading();\r\n\r\n const observables = [];\r\n meteoStations.forEach((m) => {\r\n observables.push(this.meteoTrendDataService.getTemperatureTrends(m.guid));\r\n observables.push(this.meteoTrendDataService.getForecastTrends(m.guid));\r\n });\r\n\r\n return this.chartAdapter.loadData(observables).pipe(map((data) => ({ meteoStations, data })));\r\n }),\r\n takeUntil(this.onDestroy$)\r\n )\r\n .subscribe(({ meteoStations, data }) => {\r\n for (let i = 0, d = 0; i < meteoStations.length; i++, d += 2) {\r\n this.updateChartData(data[d], data[d + 1], meteoStations[i].meteoStationIndex.toString());\r\n }\r\n this.chartAdapter.hideLoading();\r\n });\r\n }\r\n\r\n private initChart(meteoStations: MeteoStation[]) {\r\n this.deviceAlias = meteoStations[0].ropeway?.alias;\r\n this.updateTitle();\r\n\r\n this.chartAdapter.showLoading();\r\n this.chartAdapter.removeAllSeries();\r\n\r\n meteoStations.forEach((m, index) => {\r\n const meteostationIndex = m.meteoStationIndex.toString();\r\n\r\n this.chartAdapter.addSeries(TemperatureChartComponent.trendSeriesId + meteostationIndex, {\r\n name: m.alias,\r\n id: meteostationIndex,\r\n type: 'spline' as any,\r\n lineWidth: this.trendLineWidth,\r\n className: 'line-trend-' + meteostationIndex,\r\n color: this.getTrendLineColor(index),\r\n });\r\n\r\n if (meteoStations.find((m) => m.hasForecast)) {\r\n this.chartAdapter.addSeries(TemperatureChartComponent.forecastSeriesId + meteostationIndex, {\r\n name: `${this.forecastText} ${m.alias}`,\r\n id: meteostationIndex + 'forecast',\r\n type: 'spline' as any,\r\n lineWidth: this.forecastLineWidth,\r\n className: 'line-forecast',\r\n color: this.getForecastLineColor(index),\r\n });\r\n }\r\n });\r\n\r\n this.chartAdapter.reflowChart(this.onDestroy$);\r\n }\r\n\r\n private updateChartData(temperatureTrends: TemperatureTrend[], forecastTrend: ForecastTrend[], index: string): void {\r\n if (!temperatureTrends && !forecastTrend) {\r\n this.resetChart();\r\n return;\r\n }\r\n\r\n const minX = this.chartAdapter.getTimeInMsDaysAgo(1);\r\n const forecastTrends: TemperatureTrend[] = this.adaptForecast(forecastTrend, minX);\r\n\r\n if (temperatureTrends.length === 0 && forecastTrends.length === 0) {\r\n this.resetChart();\r\n this.chartAdapter.showNoData();\r\n return;\r\n }\r\n\r\n const temperatureCelsiusAverageData = this.getAverageData(temperatureTrends);\r\n const averageForecastData = this.getAverageData(forecastTrends).sort((i1, i2) => i1[0] - i2[0]);\r\n\r\n this.setPlotLines();\r\n this.chartAdapter.setSeriesData(TemperatureChartComponent.trendSeriesId + index, temperatureCelsiusAverageData);\r\n this.chartAdapter.setSeriesData(TemperatureChartComponent.forecastSeriesId + index, averageForecastData);\r\n\r\n this.minY = Math.min(\r\n this.defaultYAxisMin,\r\n this.getMinYAxisValue(temperatureTrends),\r\n this.getMinYAxisValue(forecastTrends),\r\n this.minY\r\n );\r\n this.maxY = Math.max(\r\n this.defaultYAxisMax,\r\n this.getMaxYAxisValue(temperatureTrends),\r\n this.getMaxYAxisValue(forecastTrends),\r\n this.maxY\r\n );\r\n\r\n if (!this.isZoomed) {\r\n this.chartAdapter.setYAxisExtremes(0, this.minY, this.maxY);\r\n this.chartAdapter.setXAxisExtremes(0, null, null);\r\n }\r\n\r\n if (this.isZoomed && this.isZoomedToEnd) {\r\n this.chartAdapter.setXAxisExtremes(0, this.zoomMin, null);\r\n }\r\n\r\n this.chartAdapter.updateDateXPlotLine(0, this.getXAxisDatePlotline());\r\n }\r\n\r\n private adaptForecast(forecastTrends: ForecastTrend[], minTimestamp: number): TemperatureTrend[] {\r\n return forecastTrends\r\n ? forecastTrends\r\n .filter((item) => item.timestamp.getTime() >= minTimestamp)\r\n .map((item) => ({\r\n temperatureCelsiusAverage: item.temperatureCelsius,\r\n timestamp: item.timestamp,\r\n }))\r\n : [];\r\n }\r\n\r\n private getMaxYAxisValue(trends: TemperatureTrend[]): number {\r\n const maxValue = Math.max(...trends.map((d) => d.temperatureCelsiusAverage ?? null));\r\n\r\n if (isNaN(maxValue)) {\r\n return 0;\r\n }\r\n\r\n return maxValue;\r\n }\r\n\r\n private getMinYAxisValue(trends: TemperatureTrend[]): number {\r\n const minValue = Math.min(...trends.map((d) => d.temperatureCelsiusAverage ?? null));\r\n\r\n if (isNaN(minValue)) {\r\n return 0;\r\n }\r\n\r\n return minValue;\r\n }\r\n\r\n private setPlotLines(): void {\r\n this.chartAdapter.removeYPlotBand(0, TemperatureChartComponent.plotlineWarn);\r\n }\r\n\r\n // returns an array with index 0 = Timestamp in ms, 1 = Average-Value\r\n private getAverageData(trends: TemperatureTrend[]): number[][] {\r\n return trends.map((item) => {\r\n const timeStampInMs = item.timestamp.getTime();\r\n return [timeStampInMs, item.temperatureCelsiusAverage];\r\n });\r\n }\r\n\r\n private resetChart(): void {\r\n this.chartAdapter.clearAllSeriesData();\r\n }\r\n\r\n private getXAxisDatePlotline(): XAxisPlotLinesOptions {\r\n return {\r\n id: this.xAxisPlotlineNowId,\r\n width: 1,\r\n value: new Date().getTime(),\r\n className: 'plot-line-x',\r\n };\r\n }\r\n\r\n protected translateTexts(translateService: TranslateService): void {\r\n translateService\r\n .get([\r\n TemperatureChartComponent.titleTranslateString,\r\n TemperatureChartComponent.maxTranslateString,\r\n TemperatureChartComponent.avgTranslateString,\r\n TemperatureChartComponent.forecastTranslateString,\r\n ])\r\n .pipe(take(1))\r\n .subscribe((res) => {\r\n this.title = res[TemperatureChartComponent.titleTranslateString];\r\n this.forecastText = res[TemperatureChartComponent.forecastTranslateString];\r\n\r\n if (this.chartAdapter) {\r\n this.chartAdapter.updateOptions({\r\n title: {\r\n text: this.isModal ? '' : this.title,\r\n },\r\n });\r\n }\r\n\r\n if (this.isModal) {\r\n this.updateModalTitle();\r\n }\r\n });\r\n }\r\n\r\n protected getChartOptions(): Options {\r\n return {\r\n time: {\r\n useUTC: false,\r\n timezoneOffset: new Date().getTimezoneOffset(),\r\n },\r\n legend: {\r\n enabled: this.isModal,\r\n },\r\n navigation: {\r\n buttonOptions: {\r\n enabled: false,\r\n },\r\n },\r\n xAxis: {\r\n type: 'datetime',\r\n crosshair: this.isModal,\r\n tickInterval: this.isModal ? 60 * 60 * 1000 : 4 * 60 * 60 * 1000, // 1 hour in modal, otherwise 4 hours (in ms)\r\n events: {\r\n setExtremes: (event) => this.handleSetExtremesEvent(event),\r\n },\r\n },\r\n chart: {\r\n zoomType: 'xy',\r\n panKey: 'ctrl',\r\n panning: {\r\n enabled: true,\r\n },\r\n animation: false,\r\n style: {\r\n fontFamily: 'Myriad Pro',\r\n },\r\n resetZoomButton: {\r\n theme: {\r\n stroke: 'var(--ion-color-primary)',\r\n height: 8,\r\n },\r\n },\r\n },\r\n yAxis: {\r\n title: {\r\n text: '[°C]',\r\n align: 'high',\r\n offset: 0,\r\n rotation: 0,\r\n y: -15,\r\n style: {\r\n fontSize: '12px',\r\n },\r\n },\r\n lineWidth: 1,\r\n tickInterval: 10,\r\n labels: {\r\n style: {\r\n fontSize: '12px',\r\n },\r\n },\r\n },\r\n credits: {\r\n enabled: false,\r\n },\r\n tooltip: {\r\n enabled: this.isModal,\r\n split: true,\r\n valueSuffix: '°C',\r\n xDateFormat: '%d.%m.%y / %H:%M:%S',\r\n },\r\n lang: {\r\n noData: this.noDataText,\r\n loading: this.loadingText,\r\n },\r\n noData: {\r\n style: {\r\n fontWeight: 'normal',\r\n fontSize: '12px',\r\n color: '#666666',\r\n },\r\n },\r\n loading: {\r\n style: {\r\n fontWeight: 'normal',\r\n fontSize: '12px',\r\n color: '#666666',\r\n },\r\n },\r\n colors: ['#434348', '#1c232a80', '#7cb5ec', '#1c232a80', '#7ce8ec', '#1c232a80'], // every second is for forecast series\r\n plotOptions: {\r\n spline: {\r\n marker: {\r\n enabled: false,\r\n },\r\n },\r\n series: {\r\n states: {\r\n hover: {\r\n enabled: false,\r\n },\r\n inactive: {\r\n opacity: 1,\r\n },\r\n },\r\n },\r\n },\r\n };\r\n }\r\n}\r\n","\r\n\r\n
\r\n PDF\r\n \r\n
\r\n\r\n
\r\n \r\n
\r\n","import { Component, OnInit } from '@angular/core';\r\nimport { TranslateService } from '@ngx-translate/core';\r\nimport { Options } from 'highcharts';\r\nimport moment from 'moment';\r\nimport { distinctUntilChanged, filter, map, switchMap, take, takeUntil, tap } from 'rxjs/operators';\r\nimport { TimeFormatService } from 'src/app/core/utils/time-format.service';\r\nimport { Configuration } from 'src/app/maps/domain/configuration.model';\r\nimport { Ropeway } from 'src/app/maps/domain/ropeway.model';\r\nimport { SelectedMapElementService } from 'src/app/maps/selected-map-element.service';\r\nimport { RopewayTorqueTrend } from 'src/app/maps/trenddata/ropeway-torque-trend.model';\r\nimport { RopewayTorqueTrendService } from 'src/app/maps/trenddata/ropeway-torque-trend.service';\r\nimport { ChartBase } from 'src/app/maps/widgets/charts/chart-base';\r\nimport { ChartSettings } from 'src/app/maps/widgets/charts/chart-settings.model';\r\n\r\n@Component({\r\n selector: 'sis-torque-chart',\r\n templateUrl: './torque-chart.component.html',\r\n styleUrls: ['./torque-chart.component.scss'],\r\n standalone: false\r\n})\r\nexport class TorqueChartComponent extends ChartBase implements OnInit {\r\n static readonly torqueSeries = 'torqueSeries';\r\n\r\n static readonly motorCurrentTranslateString = 'ropeway.term.motorcurrent';\r\n static readonly torqueTranslateString = 'ropeway.term.torque';\r\n\r\n private readonly plotlineAlarm = 'PLOT1';\r\n private readonly ropeway$ = this.chartAdapter.chartReady$.pipe(\r\n take(1),\r\n switchMap(() => this.selectedMapElementService.selectedRopeway$)\r\n );\r\n\r\n private motorCurrentText: string;\r\n private torqueText: string;\r\n private torqueTrends: RopewayTorqueTrend[];\r\n\r\n constructor(\r\n private ropewayTorqueTrendService: RopewayTorqueTrendService,\r\n private selectedMapElementService: SelectedMapElementService,\r\n timeFormatService: TimeFormatService,\r\n translateService: TranslateService,\r\n chartSettings: ChartSettings\r\n ) {\r\n super(translateService, chartSettings?.inModal, timeFormatService);\r\n }\r\n\r\n ngOnInit(): void {\r\n this.ropeway$\r\n .pipe(\r\n distinctUntilChanged(),\r\n filter((ropeway) => !!ropeway),\r\n tap((ropeway) => this.initChart(ropeway)),\r\n switchMap((ropeway) => {\r\n this.chartAdapter.showLoading();\r\n return this.chartAdapter.loadData([this.ropewayTorqueTrendService.getTorqueData(ropeway)]).pipe(\r\n map((data: [RopewayTorqueTrend[]]) => ({\r\n ropeway,\r\n data: data[0],\r\n }))\r\n );\r\n }),\r\n takeUntil(this.onDestroy$)\r\n )\r\n .subscribe(({ ropeway, data }) => {\r\n this.updateChartData(ropeway, data);\r\n this.chartAdapter.hideLoading();\r\n });\r\n }\r\n\r\n private initChart(ropeway: Ropeway): void {\r\n this.title = this.getTitle(ropeway);\r\n this.deviceAlias = ropeway?.alias;\r\n\r\n this.updateTitle();\r\n\r\n if (this.isModal) {\r\n this.updateModalTitle();\r\n }\r\n\r\n this.chartAdapter.showLoading();\r\n this.chartAdapter.removeAllSeries();\r\n this.chartAdapter.addSeries(TorqueChartComponent.torqueSeries, {\r\n name: this.title,\r\n id: 'torque',\r\n type: 'spline' as any,\r\n lineWidth: 1,\r\n className: '',\r\n color: this.getTrendLineColor(),\r\n });\r\n\r\n this.chartAdapter.reflowChart(this.onDestroy$);\r\n }\r\n\r\n private updateChartData(ropeway: Ropeway, torqueTrends: RopewayTorqueTrend[]): void {\r\n this.torqueTrends = torqueTrends;\r\n\r\n if (!torqueTrends) {\r\n this.resetChart();\r\n return;\r\n }\r\n\r\n const minX = this.chartAdapter.getTimeInMsHoursAgo(4);\r\n\r\n this.torqueTrends = torqueTrends.filter((t) => t.timestamp.getTime() >= minX);\r\n\r\n if (this.torqueTrends.length === 0) {\r\n this.resetChart();\r\n this.chartAdapter.showNoData();\r\n return;\r\n }\r\n\r\n const colorZones = this.getZones();\r\n const torqueData = this.getData(this.torqueTrends).sort((i1, i2) => i1[0] - i2[0]);\r\n\r\n this.setPlotLines();\r\n this.chartAdapter.setSeriesOptions(TorqueChartComponent.torqueSeries, { zones: colorZones } as any);\r\n this.chartAdapter.setSeriesData(TorqueChartComponent.torqueSeries, torqueData);\r\n\r\n this.minY = ropeway.configurations?.find(\r\n (c) => c.configKey === Configuration.driveTorqueNmKey || c.configKey === Configuration.driveMotorCurrentAmpereKey\r\n )?.negativeValues\r\n ? Math.min(0, this.getMinYAxisValue(this.torqueTrends))\r\n : 0;\r\n this.maxY = Math.max(100, this.getMaxYAxisValue(this.torqueTrends));\r\n\r\n if (!this.isZoomed) {\r\n this.chartAdapter.setYAxisExtremes(0, this.minY, this.maxY);\r\n this.chartAdapter.setXAxisExtremes(0, null, null);\r\n }\r\n\r\n if (this.isZoomed && this.isZoomedToEnd) {\r\n this.chartAdapter.setXAxisExtremes(0, this.zoomMin, null);\r\n }\r\n }\r\n\r\n private getMaxYAxisValue(trends: RopewayTorqueTrend[]): number {\r\n return Math.max(...trends.map((d) => d.torquePercent ?? null));\r\n }\r\n\r\n private getMinYAxisValue(trends: RopewayTorqueTrend[]): number {\r\n return Math.min(...trends.map((d) => d.torquePercent ?? null));\r\n }\r\n\r\n private getZones(): any[] {\r\n const zones = [];\r\n\r\n zones.push({\r\n value: 100,\r\n className: 'zone-nominal',\r\n });\r\n zones.push({\r\n value: 400,\r\n className: 'zone-alarm',\r\n });\r\n\r\n return zones;\r\n }\r\n\r\n private setPlotLines(): void {\r\n this.chartAdapter.removeYPlotBand(0, this.plotlineAlarm);\r\n\r\n this.chartAdapter.addYPlotBand(0, {\r\n from: 100,\r\n to: 400,\r\n className: 'zone-medium',\r\n id: this.plotlineAlarm,\r\n });\r\n }\r\n\r\n private getData(trends: RopewayTorqueTrend[]): number[][] {\r\n return trends.map((item) => {\r\n const timeStampInMs = item.timestamp.getTime();\r\n return [timeStampInMs, item.torquePercent];\r\n });\r\n }\r\n\r\n private resetChart(): void {\r\n this.chartAdapter.clearAllSeriesData();\r\n }\r\n\r\n private getTitle(ropeway: Ropeway): string {\r\n return ropeway\r\n ? ropeway.configurations &&\r\n ropeway.configurations.find((c) => c.configKey === Configuration.driveMotorCurrentAmpereKey)\r\n ? this.motorCurrentText\r\n : this.torqueText\r\n : '';\r\n }\r\n\r\n protected translateTexts(translateService: TranslateService): void {\r\n translateService\r\n .get([TorqueChartComponent.motorCurrentTranslateString, TorqueChartComponent.torqueTranslateString])\r\n .pipe(take(1))\r\n .subscribe((res) => {\r\n this.motorCurrentText = res[TorqueChartComponent.motorCurrentTranslateString];\r\n this.torqueText = res[TorqueChartComponent.torqueTranslateString];\r\n\r\n if (this.chartAdapter) {\r\n this.chartAdapter.updateOptions({\r\n title: {\r\n text: this.isModal ? '' : this.title,\r\n },\r\n });\r\n }\r\n\r\n if (this.isModal) {\r\n this.updateModalTitle();\r\n }\r\n });\r\n }\r\n\r\n protected getChartOptions(): Options {\r\n const self = this;\r\n return {\r\n time: {\r\n useUTC: false,\r\n timezoneOffset: new Date().getTimezoneOffset(),\r\n },\r\n legend: {\r\n enabled: this.isModal,\r\n },\r\n navigation: {\r\n buttonOptions: {\r\n enabled: false,\r\n },\r\n },\r\n xAxis: {\r\n type: 'datetime',\r\n crosshair: this.isModal,\r\n tickInterval: 1 * 60 * 60 * 1000, // 1 hours in ms\r\n events: {\r\n setExtremes: (event) => this.handleSetExtremesEvent(event),\r\n },\r\n },\r\n chart: {\r\n zoomType: 'xy',\r\n panKey: 'ctrl',\r\n panning: {\r\n enabled: true,\r\n },\r\n animation: false,\r\n style: {\r\n fontFamily: 'Myriad Pro',\r\n },\r\n resetZoomButton: {\r\n theme: {\r\n stroke: 'var(--ion-color-primary)',\r\n height: 8,\r\n },\r\n },\r\n },\r\n yAxis: {\r\n title: {\r\n text: '[%]',\r\n align: 'high',\r\n offset: 15,\r\n rotation: 0,\r\n y: -15,\r\n style: {\r\n fontSize: '12px',\r\n },\r\n },\r\n lineWidth: 1,\r\n tickInterval: 20,\r\n labels: {\r\n style: {\r\n fontSize: '12px',\r\n },\r\n },\r\n },\r\n credits: {\r\n enabled: false,\r\n },\r\n tooltip: {\r\n enabled: this.isModal,\r\n split: true,\r\n formatter() {\r\n const data = self.torqueTrends.find((d) => d.timestamp.getTime() === this.x);\r\n const yText =\r\n data.torqueAbsolute != null\r\n ? `${data.torqueAbsolute} ${data.unit} (${Math.round(this.y)}%)`\r\n : `${Math.round(this.y)} ${data.unit}`;\r\n const bottomText = `${moment(new Date(this.x)).format(\r\n 'DD.MM.YYYY / HH:mm:ss'\r\n )}`;\r\n return [bottomText, `\\u25CF ${yText}`];\r\n },\r\n },\r\n lang: {\r\n noData: this.noDataText,\r\n loading: this.loadingText,\r\n },\r\n noData: {\r\n style: {\r\n fontWeight: 'normal',\r\n fontSize: '12px',\r\n color: '#666666',\r\n },\r\n },\r\n loading: {\r\n style: {\r\n fontWeight: 'normal',\r\n fontSize: '12px',\r\n color: '#666666',\r\n },\r\n },\r\n plotOptions: {\r\n spline: {\r\n marker: {\r\n enabled: false,\r\n },\r\n },\r\n series: {\r\n states: {\r\n hover: {\r\n enabled: false,\r\n },\r\n inactive: {\r\n opacity: 1,\r\n },\r\n },\r\n },\r\n },\r\n };\r\n }\r\n}\r\n","\r\n\r\n
\r\n PDF\r\n \r\n
\r\n\r\n
\r\n \r\n
\r\n","import { Component, OnInit } from '@angular/core';\r\nimport { TranslateService } from '@ngx-translate/core';\r\nimport { Options, XAxisPlotLinesOptions } from 'highcharts';\r\nimport { distinctUntilChanged, filter, map, switchMap, take, takeUntil, tap } from 'rxjs/operators';\r\nimport { TimeFormatService } from 'src/app/core/utils/time-format.service';\r\nimport { MeteoStation } from 'src/app/maps/domain/meteostation.model';\r\nimport { MeteoStationService } from 'src/app/maps/meteostation-service/meteostation.service';\r\nimport { ForecastTrend } from 'src/app/maps/trenddata/forecast-trend.model';\r\nimport { MeteoTrendService } from 'src/app/maps/trenddata/meteo-trend.service';\r\nimport { WetBulbTrend } from 'src/app/maps/trenddata/wet-bulb-trend.model';\r\nimport { ChartBase } from 'src/app/maps/widgets/charts/chart-base';\r\nimport { ChartSettings } from 'src/app/maps/widgets/charts/chart-settings.model';\r\n\r\n@Component({\r\n selector: 'sis-wet-bulb-chart',\r\n templateUrl: './wet-bulb-chart.component.html',\r\n styleUrls: ['./wet-bulb-chart.component.scss'],\r\n standalone: false\r\n})\r\nexport class WetBulbChartComponent extends ChartBase implements OnInit {\r\n static readonly forecastTrendSeries = 'wetBulbForecastSeries';\r\n static readonly trendSeries = 'wetBulbSeries';\r\n\r\n private static readonly trendTranslateString = 'analytics.term.measuredValue';\r\n private static readonly forecastTrendTranslateString = 'analytics.term.forecastTrend';\r\n private static readonly unknownTranslateString = 'analytics.term.unknown';\r\n private static readonly titleTranslateString = 'ropeway.term.wetBulbTemp';\r\n\r\n private readonly defaultMaxY = 20;\r\n private readonly defaultMinY = 0;\r\n private readonly xAxisPlotlineNowId = 'xAxisPlotNow';\r\n private readonly meteoStation$ = this.chartAdapter.chartReady$.pipe(\r\n take(1),\r\n switchMap(() => this.meteoStationService.relevantMeteoStationWithWetBulbTemperature$)\r\n );\r\n\r\n private trendText: string;\r\n private forecastTrendText: string;\r\n private unknownText: string;\r\n private titleText: string;\r\n\r\n constructor(\r\n private meteoTrendService: MeteoTrendService,\r\n private meteoStationService: MeteoStationService,\r\n timeFormatService: TimeFormatService,\r\n translateService: TranslateService,\r\n chartSettings: ChartSettings\r\n ) {\r\n super(translateService, chartSettings?.inModal, timeFormatService);\r\n }\r\n\r\n ngOnInit(): void {\r\n this.meteoStation$\r\n .pipe(\r\n distinctUntilChanged(),\r\n filter((meteoStation) => !!meteoStation),\r\n tap((meteoStation) => this.initChart(meteoStation)),\r\n switchMap((meteoStation) => {\r\n const observables = [\r\n this.meteoTrendService.getWetBulbTemperatureTrends(meteoStation.guid),\r\n this.meteoTrendService.getForecastTrends(meteoStation.guid),\r\n ];\r\n\r\n return this.chartAdapter\r\n .loadData(observables)\r\n .pipe(map(([wetBulbTrend, forecastTrend]) => ({ meteoStation, wetBulbTrend, forecastTrend })));\r\n }),\r\n takeUntil(this.onDestroy$)\r\n )\r\n .subscribe(({ wetBulbTrend, forecastTrend }) => {\r\n this.updateChartData(wetBulbTrend, forecastTrend);\r\n this.chartAdapter.hideLoading();\r\n });\r\n }\r\n\r\n private initChart(meteoStation: MeteoStation): void {\r\n this.title = this.getTitle(meteoStation);\r\n this.deviceAlias = meteoStation.ropeway?.alias;\r\n this.updateTitle();\r\n\r\n if (this.isModal) {\r\n this.updateModalTitle();\r\n }\r\n\r\n this.chartAdapter.showLoading();\r\n this.chartAdapter.removeAllSeries();\r\n this.chartAdapter.addSeries(WetBulbChartComponent.trendSeries, {\r\n name: this.trendText,\r\n id: WetBulbChartComponent.trendSeries,\r\n type: 'spline' as any,\r\n lineWidth: 2,\r\n className: '',\r\n color: this.getTrendLineColor(0),\r\n });\r\n\r\n if (meteoStation.hasForecast) {\r\n this.chartAdapter.addSeries(WetBulbChartComponent.forecastTrendSeries, {\r\n name: this.forecastTrendText,\r\n id: WetBulbChartComponent.forecastTrendSeries,\r\n type: 'spline' as any,\r\n className: 'line-forecast',\r\n lineWidth: 2,\r\n color: this.getForecastLineColor(1),\r\n });\r\n }\r\n\r\n this.chartAdapter.reflowChart(this.onDestroy$);\r\n }\r\n\r\n private updateChartData(trend: WetBulbTrend[], forecast: ForecastTrend[]): void {\r\n if (!trend || !forecast) {\r\n this.resetChart();\r\n this.chartAdapter.showNoData();\r\n return;\r\n }\r\n\r\n const minX = this.chartAdapter.getTimeInMsDaysAgo(1);\r\n const trends: WetBulbTrend[] = trend.filter((t) => t.timestamp.getTime() > minX);\r\n const forecasts: WetBulbTrend[] = this.adaptForecast(forecast, minX);\r\n\r\n if (trends.length === 0 && forecasts.length === 0) {\r\n this.resetChart();\r\n this.chartAdapter.showNoData();\r\n return;\r\n }\r\n\r\n const wetBulbForecasts = this.getRoundedTemperaturesWithTimestamp(forecasts).sort((i1, i2) => i1[0] - i2[0]);\r\n const wetBulbTrends = this.getRoundedTemperaturesWithTimestamp(trends).sort((i1, i2) => i1[0] - i2[0]);\r\n\r\n this.chartAdapter.setSeriesData(WetBulbChartComponent.forecastTrendSeries, wetBulbForecasts);\r\n this.chartAdapter.setSeriesData(WetBulbChartComponent.trendSeries, wetBulbTrends);\r\n\r\n this.minY = Math.min(this.defaultMinY, this.getMinYAxisValue(trends), this.getMinYAxisValue(forecasts));\r\n this.maxY = Math.max(this.defaultMaxY, this.getMaxYAxisValue(trends), this.getMaxYAxisValue(forecasts));\r\n\r\n if (!this.isZoomed) {\r\n this.chartAdapter.setYAxisExtremes(0, this.minY, this.maxY);\r\n this.chartAdapter.setXAxisExtremes(0, null, null);\r\n }\r\n\r\n if (this.isZoomed && this.isZoomedToEnd) {\r\n this.chartAdapter.setXAxisExtremes(0, this.zoomMin, null);\r\n }\r\n\r\n this.chartAdapter.updateDateXPlotLine(0, this.getXAxisDatePlotline());\r\n }\r\n\r\n private getRoundedTemperaturesWithTimestamp(trends: WetBulbTrend[] | ForecastTrend[]): number[][] {\r\n return trends.map((item: WetBulbTrend | ForecastTrend) => {\r\n const timeStampInMs = item.timestamp.getTime();\r\n const wetBulbTemperatureCelsius =\r\n item.wetBulbTemperatureCelsius != null ? Math.round(item.wetBulbTemperatureCelsius * 10) / 10 : null;\r\n return [timeStampInMs, wetBulbTemperatureCelsius];\r\n });\r\n }\r\n\r\n private resetChart(): void {\r\n this.chartAdapter.clearAllSeriesData();\r\n }\r\n\r\n private getTitle(meteoStation: MeteoStation): string {\r\n const alias = meteoStation?.alias ?? this.unknownText;\r\n return `${this.titleText} «${alias}»`;\r\n }\r\n\r\n private getXAxisDatePlotline(): XAxisPlotLinesOptions {\r\n return {\r\n id: this.xAxisPlotlineNowId,\r\n width: 1,\r\n value: new Date().getTime(),\r\n className: 'plot-line-x',\r\n };\r\n }\r\n\r\n private getMaxYAxisValue(trends: ForecastTrend[]): number {\r\n if (trends.length === 0) {\r\n return 0;\r\n }\r\n return Math.max(...trends.map((d) => d.wetBulbTemperatureCelsius ?? null));\r\n }\r\n\r\n private getMinYAxisValue(trends: ForecastTrend[]): number {\r\n if (trends.length === 0) {\r\n return 0;\r\n }\r\n return Math.min(...trends.map((d) => d.wetBulbTemperatureCelsius ?? null));\r\n }\r\n\r\n private adaptForecast(forecasts: ForecastTrend[], minTimestamp: number): WetBulbTrend[] {\r\n return forecasts\r\n .filter((item) => item.timestamp.getTime() >= minTimestamp)\r\n .map((item) => ({\r\n timestamp: item.timestamp,\r\n wetBulbTemperatureCelsius: item.wetBulbTemperatureCelsius,\r\n }));\r\n }\r\n\r\n protected translateTexts(translateService: TranslateService): void {\r\n translateService\r\n .get([\r\n WetBulbChartComponent.titleTranslateString,\r\n WetBulbChartComponent.trendTranslateString,\r\n WetBulbChartComponent.unknownTranslateString,\r\n WetBulbChartComponent.forecastTrendTranslateString,\r\n ])\r\n .pipe(take(1))\r\n .subscribe((res) => {\r\n this.titleText = res[WetBulbChartComponent.titleTranslateString];\r\n this.trendText = res[WetBulbChartComponent.trendTranslateString];\r\n this.unknownText = res[WetBulbChartComponent.unknownTranslateString];\r\n this.forecastTrendText = res[WetBulbChartComponent.forecastTrendTranslateString];\r\n\r\n if (this.chartAdapter) {\r\n this.chartAdapter.updateOptions({\r\n title: {\r\n text: this.isModal ? '' : this.title,\r\n },\r\n lang: {\r\n noData: this.noDataText,\r\n loading: this.loadingText,\r\n },\r\n });\r\n }\r\n\r\n if (this.isModal) {\r\n this.updateModalTitle();\r\n }\r\n });\r\n }\r\n\r\n protected getChartOptions(): Options {\r\n return {\r\n time: {\r\n useUTC: false,\r\n timezoneOffset: new Date().getTimezoneOffset(),\r\n },\r\n legend: {\r\n enabled: this.isModal,\r\n },\r\n navigation: {\r\n buttonOptions: {\r\n enabled: false,\r\n },\r\n },\r\n xAxis: {\r\n type: 'datetime',\r\n crosshair: this.isModal,\r\n tickInterval: this.isModal ? 60 * 60 * 1000 : 4 * 60 * 60 * 1000, // 1 hour in modal, otherwise 4 hours (in ms)\r\n events: {\r\n setExtremes: (event) => this.handleSetExtremesEvent(event),\r\n },\r\n },\r\n chart: {\r\n zoomType: 'xy',\r\n panKey: 'ctrl',\r\n panning: {\r\n enabled: true,\r\n },\r\n animation: false,\r\n style: {\r\n fontFamily: 'Myriad Pro',\r\n },\r\n resetZoomButton: {\r\n theme: {\r\n stroke: 'var(--ion-color-primary)',\r\n height: 8,\r\n },\r\n },\r\n },\r\n yAxis: {\r\n title: {\r\n text: '[°C]',\r\n align: 'high',\r\n offset: 0,\r\n rotation: 0,\r\n y: -15,\r\n style: {\r\n fontSize: '12px',\r\n },\r\n },\r\n lineWidth: 1,\r\n tickInterval: 10,\r\n labels: {\r\n style: {\r\n fontSize: '12px',\r\n },\r\n },\r\n },\r\n credits: {\r\n enabled: false,\r\n },\r\n tooltip: {\r\n enabled: this.isModal,\r\n split: true,\r\n valueSuffix: '°C',\r\n xDateFormat: '%d.%m.%y / %H:%M:%S',\r\n },\r\n lang: {\r\n noData: this.noDataText,\r\n loading: this.loadingText,\r\n },\r\n noData: {\r\n style: {\r\n fontWeight: 'normal',\r\n fontSize: '12px',\r\n color: '#666666',\r\n },\r\n },\r\n loading: {\r\n style: {\r\n fontWeight: 'normal',\r\n fontSize: '12px',\r\n color: '#666666',\r\n },\r\n },\r\n colors: ['#434348', '#1c232a80', '#7cb5ec', '#1c232a80', '#7ce8ec', '#1c232a80'], // every second is for forecast series\r\n plotOptions: {\r\n spline: {\r\n marker: {\r\n enabled: false,\r\n },\r\n },\r\n series: {\r\n states: {\r\n hover: {\r\n enabled: false,\r\n },\r\n inactive: {\r\n opacity: 1,\r\n },\r\n },\r\n },\r\n },\r\n };\r\n }\r\n}\r\n","\r\n\r\n
\r\n PDF\r\n \r\n
\r\n\r\n
\r\n \r\n
\r\n","import { Component, OnInit } from '@angular/core';\r\nimport { TranslateService } from '@ngx-translate/core';\r\nimport { Options, XAxisPlotLinesOptions } from 'highcharts';\r\nimport { combineLatest } from 'rxjs';\r\nimport { distinctUntilChanged, filter, map, switchMap, take, takeUntil, tap } from 'rxjs/operators';\r\nimport { TimeFormatService } from 'src/app/core/utils/time-format.service';\r\nimport { Configuration } from 'src/app/maps/domain/configuration.model';\r\nimport { MeteoStation } from 'src/app/maps/domain/meteostation.model';\r\nimport { MeteoStationService } from 'src/app/maps/meteostation-service/meteostation.service';\r\nimport { ForecastTrend } from 'src/app/maps/trenddata/forecast-trend.model';\r\nimport { MeteoTrendService } from 'src/app/maps/trenddata/meteo-trend.service';\r\nimport { WindTrend } from 'src/app/maps/trenddata/wind-trend.model';\r\nimport { ChartBase } from 'src/app/maps/widgets/charts/chart-base';\r\nimport { ChartSettings } from 'src/app/maps/widgets/charts/chart-settings.model';\r\nimport { ChartSettingsService } from 'src/app/maps/widgets/charts/chart-settings.service';\r\n\r\n@Component({\r\n selector: 'sis-wind-chart',\r\n templateUrl: './wind-chart.component.html',\r\n styleUrls: ['./wind-chart.component.scss'],\r\n standalone: false\r\n})\r\nexport class WindChartComponent extends ChartBase implements OnInit {\r\n static readonly averageTrendSeries = 'averageTrendSeries';\r\n static readonly maxTrendSeries = 'maxTrendSerie';\r\n static readonly averageForecastSeries = 'averageForecastSerie';\r\n static readonly maxForecastSeries = 'maxForecastSerie';\r\n static readonly plotlineWarn = 'PLOT1';\r\n\r\n static readonly defaultWarnRangeHigh = 40;\r\n static readonly defaultAlarmRangeHigh = 60;\r\n\r\n private static readonly titleTranslateString = 'ropeway.term.wind';\r\n private static readonly unknownTranslateString = 'analytics.term.unknown';\r\n private static readonly maxTranslateString = 'analytics.term.max';\r\n private static readonly avgTranslateString = 'analytics.term.avg';\r\n private static readonly forecastAvgTranslateString = 'analytics.term.forecastAvg';\r\n private static readonly forecastMaxTranslateString = 'analytics.term.forecastMax';\r\n private static readonly xAxisPlotlineNowId = 'xAxisPlotNow';\r\n\r\n private readonly defaultMaxY = 80;\r\n private readonly meteoStation$ = this.chartAdapter.chartReady$.pipe(\r\n take(1),\r\n switchMap(() => this.meteoStationService.activeMeteoStation$)\r\n );\r\n\r\n private maxText: string;\r\n private averageText: string;\r\n private forecastAvgText: string;\r\n private forecastMaxText: string;\r\n private unknownText: string;\r\n private titleText: string;\r\n\r\n forecastTestActive: boolean;\r\n meteoStationHasForecast: boolean;\r\n\r\n readonly forecastEnabled$ = this.chartSettingsService.forecastEnabled$;\r\n\r\n constructor(\r\n private meteoTrendService: MeteoTrendService,\r\n private meteoStationService: MeteoStationService,\r\n private chartSettingsService: ChartSettingsService,\r\n timeFormatService: TimeFormatService,\r\n translateService: TranslateService,\r\n chartSettings: ChartSettings\r\n ) {\r\n super(translateService, chartSettings?.inModal, timeFormatService);\r\n }\r\n\r\n ngOnInit(): void {\r\n this.meteoStation$\r\n .pipe(\r\n distinctUntilChanged(),\r\n filter((meteoStation) => !!meteoStation),\r\n switchMap((meteoStation) => {\r\n this.meteoStationHasForecast = meteoStation.hasForecast;\r\n const observables = [\r\n this.meteoTrendService.getWindTrends(meteoStation.guid),\r\n this.meteoTrendService.getForecastTrends(meteoStation.guid),\r\n ];\r\n\r\n return combineLatest([\r\n this.chartAdapter\r\n .loadData(observables)\r\n .pipe(map(([windTrends, forecastTrends]) => ({ meteoStation, windTrends, forecastTrends }))),\r\n this.chartSettingsService.forecastEnabled$.pipe(\r\n tap((forecastEnabled) => this.initChart(meteoStation, forecastEnabled))\r\n ),\r\n ]);\r\n }),\r\n takeUntil(this.onDestroy$)\r\n )\r\n .subscribe(([{ meteoStation, windTrends, forecastTrends }, forecastEnabled]) => {\r\n this.updateChartData(meteoStation, windTrends, forecastEnabled ? forecastTrends : []);\r\n this.chartAdapter.hideLoading();\r\n });\r\n }\r\n\r\n async toggleForecast(e: PointerEvent): Promise {\r\n e.stopPropagation();\r\n this.chartSettingsService.toggleForecast();\r\n }\r\n\r\n private initChart(meteoStation: MeteoStation, forecastEnabled: boolean): void {\r\n forecastEnabled = forecastEnabled && meteoStation.hasForecast;\r\n\r\n this.title = this.getTitle(meteoStation);\r\n this.deviceAlias = meteoStation.ropeway?.alias;\r\n this.forecastTestActive = meteoStation.forecastTestActive;\r\n this.updateTitle();\r\n\r\n if (this.isModal) {\r\n this.updateModalTitle();\r\n }\r\n\r\n this.chartAdapter.showLoading();\r\n this.chartAdapter.removeAllSeries();\r\n this.chartAdapter.addSeries(WindChartComponent.averageTrendSeries, {\r\n name: this.averageText,\r\n id: 'average',\r\n type: 'spline' as any,\r\n lineWidth: 1,\r\n className: '',\r\n color: this.getTrendLineColor(0),\r\n });\r\n this.chartAdapter.addSeries(WindChartComponent.maxTrendSeries, {\r\n name: this.maxText,\r\n id: 'max',\r\n type: 'spline' as any,\r\n lineWidth: 2,\r\n className: '',\r\n color: this.getTrendLineColor(1),\r\n });\r\n\r\n if (forecastEnabled) {\r\n this.chartAdapter.addSeries(WindChartComponent.averageForecastSeries, {\r\n name: this.forecastAvgText,\r\n id: 'forecastAvg',\r\n type: 'spline' as any,\r\n className: 'line-forecast',\r\n lineWidth: 1,\r\n color: this.getForecastLineColor(1),\r\n });\r\n this.chartAdapter.addSeries(WindChartComponent.maxForecastSeries, {\r\n name: this.forecastMaxText,\r\n id: 'forecastMax',\r\n type: 'spline' as any,\r\n className: 'line-forecast',\r\n lineWidth: 2,\r\n color: this.getForecastLineColor(0),\r\n });\r\n }\r\n\r\n this.chartAdapter.zoomOut();\r\n this.chartAdapter.reflowChart(this.onDestroy$);\r\n }\r\n\r\n private updateChartData(meteoStation: MeteoStation, trends: WindTrend[], forecast: ForecastTrend[]): void {\r\n if (!trends || !forecast) {\r\n this.resetChart();\r\n return;\r\n }\r\n\r\n const minX = this.chartAdapter.getTimeInMsDaysAgo(1);\r\n const forecasts: WindTrend[] = this.adaptForecast(forecast, minX);\r\n\r\n if (trends.length === 0 && forecasts.length === 0) {\r\n this.resetChart();\r\n this.chartAdapter.showNoData();\r\n return;\r\n }\r\n\r\n const config = this.getConfiguration(meteoStation);\r\n const colorZones = this.getZones(config);\r\n const averageTrends = this.getAverageTrends(trends);\r\n const maxTrends = this.getMaxTrends(trends);\r\n const averageForecasts = this.getAverageTrends(forecasts).sort((i1, i2) => i1[0] - i2[0]);\r\n const maxForecasts = this.getMaxTrends(forecasts).sort((i1, i2) => i1[0] - i2[0]);\r\n\r\n this.setPlotLines(config);\r\n this.chartAdapter.setSeriesOptions(WindChartComponent.averageTrendSeries, { zones: colorZones } as any);\r\n this.chartAdapter.setSeriesData(WindChartComponent.averageTrendSeries, averageTrends);\r\n this.chartAdapter.setSeriesOptions(WindChartComponent.maxTrendSeries, { zones: colorZones } as any);\r\n this.chartAdapter.setSeriesData(WindChartComponent.maxTrendSeries, maxTrends);\r\n this.chartAdapter.setSeriesData(WindChartComponent.averageForecastSeries, averageForecasts);\r\n this.chartAdapter.setSeriesData(WindChartComponent.maxForecastSeries, maxForecasts);\r\n\r\n this.maxY = Math.max(this.defaultMaxY, this.getMaxYAxisValue(trends), this.getMaxYAxisValue(forecasts));\r\n\r\n if (!this.isZoomed) {\r\n this.chartAdapter.setYAxisExtremes(0, this.minY, this.maxY);\r\n this.chartAdapter.setXAxisExtremes(0, null, null);\r\n }\r\n\r\n if (this.isZoomed && this.isZoomedToEnd) {\r\n this.chartAdapter.setXAxisExtremes(0, this.zoomMin, null);\r\n }\r\n\r\n this.chartAdapter.updateDateXPlotLine(0, this.getXAxisDatePlotline());\r\n }\r\n\r\n private adaptForecast(forecasts: ForecastTrend[], minTimestamp: number): WindTrend[] {\r\n return forecasts\r\n .filter((item) => item.timestamp.getTime() >= minTimestamp)\r\n .map((item) => ({\r\n maxValue: item.windSpeedKmhMax,\r\n meanValue: item.windSpeedKmh,\r\n timestamp: item.timestamp,\r\n }));\r\n }\r\n\r\n private getMaxYAxisValue(trends: WindTrend[]): number {\r\n return Math.max(...trends.map((d) => d.maxValue ?? null));\r\n }\r\n\r\n private getConfiguration(meteoStation: MeteoStation): Configuration {\r\n return meteoStation?.configuration?.find((f) => f.configKey === 'windSpeedKmh');\r\n }\r\n\r\n private getZones(config: Configuration): any[] {\r\n const zones = [];\r\n zones.push({\r\n value: config && config.warnRangeHigh ? config.warnRangeHigh : WindChartComponent.defaultWarnRangeHigh,\r\n className: 'zone-nominal',\r\n });\r\n zones.push({\r\n value: config && config.alarmRangeHigh ? config.alarmRangeHigh : WindChartComponent.defaultAlarmRangeHigh,\r\n className: 'zone-warn',\r\n });\r\n zones.push({\r\n value: 400,\r\n className: 'zone-alarm',\r\n });\r\n return zones;\r\n }\r\n\r\n private setPlotLines(config: Configuration): void {\r\n this.chartAdapter.removeYPlotBand(0, WindChartComponent.plotlineWarn);\r\n\r\n this.chartAdapter.addYPlotBand(0, {\r\n from: config && config.warnRangeHigh ? config.warnRangeHigh : WindChartComponent.defaultWarnRangeHigh,\r\n to: config && config.alarmRangeHigh ? config.alarmRangeHigh : WindChartComponent.defaultAlarmRangeHigh,\r\n className: 'zone-medium',\r\n id: WindChartComponent.plotlineWarn,\r\n });\r\n }\r\n\r\n // returns an array with index 0 = Timestamp in ms, 1 = Average-Value\r\n private getAverageTrends(trends: WindTrend[]): number[][] {\r\n return trends.map((item) => {\r\n const timeStampInMs = item.timestamp.getTime();\r\n return [timeStampInMs, item.meanValue];\r\n });\r\n }\r\n\r\n // returns an array with index 0 = Timestamp in ms, 1 = Max-Value\r\n private getMaxTrends(trends: WindTrend[]): number[][] {\r\n return trends.map((item) => {\r\n const timeStampInMs = item.timestamp.getTime();\r\n return [timeStampInMs, item.maxValue];\r\n });\r\n }\r\n\r\n private resetChart(): void {\r\n this.chartAdapter.clearAllSeriesData();\r\n }\r\n\r\n private getTitle(meteoStation: MeteoStation): string {\r\n const alias = meteoStation?.alias ?? this.unknownText;\r\n return `${this.titleText} «${alias}»`;\r\n }\r\n\r\n private getXAxisDatePlotline(): XAxisPlotLinesOptions {\r\n return {\r\n id: WindChartComponent.xAxisPlotlineNowId,\r\n width: 1,\r\n value: new Date().getTime(),\r\n className: 'plot-line-x',\r\n };\r\n }\r\n\r\n protected translateTexts(translateService: TranslateService): void {\r\n translateService\r\n .get([\r\n WindChartComponent.titleTranslateString,\r\n WindChartComponent.unknownTranslateString,\r\n WindChartComponent.maxTranslateString,\r\n WindChartComponent.avgTranslateString,\r\n WindChartComponent.forecastMaxTranslateString,\r\n WindChartComponent.forecastAvgTranslateString,\r\n ])\r\n .pipe(take(1))\r\n .subscribe((res) => {\r\n this.titleText = res[WindChartComponent.titleTranslateString];\r\n this.unknownText = res[WindChartComponent.unknownTranslateString];\r\n this.maxText = res[WindChartComponent.maxTranslateString];\r\n this.averageText = res[WindChartComponent.avgTranslateString];\r\n this.forecastMaxText = res[WindChartComponent.forecastMaxTranslateString];\r\n this.forecastAvgText = res[WindChartComponent.forecastAvgTranslateString];\r\n\r\n if (this.chartAdapter) {\r\n this.chartAdapter.updateOptions({\r\n title: {\r\n text: this.isModal ? '' : this.title,\r\n },\r\n });\r\n }\r\n\r\n if (this.isModal) {\r\n this.updateModalTitle();\r\n }\r\n });\r\n }\r\n\r\n protected getChartOptions(): Options {\r\n return {\r\n time: {\r\n useUTC: false,\r\n timezoneOffset: new Date().getTimezoneOffset(),\r\n },\r\n legend: {\r\n enabled: this.isModal,\r\n },\r\n navigation: {\r\n buttonOptions: {\r\n enabled: false,\r\n },\r\n },\r\n xAxis: {\r\n type: 'datetime',\r\n crosshair: this.isModal,\r\n tickInterval: this.isModal ? 60 * 60 * 1000 : 4 * 60 * 60 * 1000, // 1 hour in modal, otherwise 4 hours (in ms)\r\n events: {\r\n setExtremes: (event) => this.handleSetExtremesEvent(event),\r\n },\r\n },\r\n chart: {\r\n zoomType: 'xy',\r\n panKey: 'ctrl',\r\n panning: {\r\n enabled: true,\r\n },\r\n animation: false,\r\n style: {\r\n fontFamily: 'Myriad Pro',\r\n },\r\n resetZoomButton: {\r\n theme: {\r\n stroke: 'var(--ion-color-primary)',\r\n height: 8,\r\n },\r\n },\r\n },\r\n yAxis: {\r\n title: {\r\n text: '[km/h]',\r\n align: 'high',\r\n offset: 0,\r\n rotation: 0,\r\n y: -15,\r\n style: {\r\n fontSize: '12px',\r\n },\r\n },\r\n lineWidth: 1,\r\n tickInterval: 20,\r\n labels: {\r\n style: {\r\n fontSize: '12px',\r\n },\r\n },\r\n },\r\n credits: {\r\n enabled: false,\r\n },\r\n tooltip: {\r\n enabled: this.isModal,\r\n split: true,\r\n valueSuffix: 'km/h',\r\n xDateFormat: '%d.%m.%y / %H:%M:%S',\r\n },\r\n lang: {\r\n noData: this.noDataText,\r\n loading: this.loadingText,\r\n },\r\n noData: {\r\n style: {\r\n fontWeight: 'normal',\r\n fontSize: '12px',\r\n color: '#666666',\r\n },\r\n },\r\n loading: {\r\n style: {\r\n fontWeight: 'normal',\r\n fontSize: '12px',\r\n color: '#666666',\r\n },\r\n },\r\n colors: ['#7cb5ec', '#434348', '#1c232a80', '#1c232a80'],\r\n plotOptions: {\r\n spline: {\r\n marker: {\r\n enabled: false,\r\n },\r\n },\r\n series: {\r\n states: {\r\n hover: {\r\n enabled: false,\r\n },\r\n inactive: {\r\n opacity: 1,\r\n },\r\n },\r\n crisp: true,\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 'analytics.term.forecast' | translate\r\n }}\r\n \r\n\r\n\r\n
\r\n PDF\r\n \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: 'sis-clampingcount-widget',\r\n templateUrl: './clampingcount-widget.component.html',\r\n styleUrls: ['./clampingcount-widget.component.scss'],\r\n standalone: false\r\n})\r\nexport class ClampingCountWidgetComponent {}\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, OnInit } from '@angular/core';\r\nimport { takeUntil } from 'rxjs/operators';\r\nimport { Alarm, AlarmLevel } from 'src/app/domain/alarm.model';\r\nimport { DestinationAlarmService } from 'src/app/maps/livedata/destination-alarm.service';\r\nimport { WidgetBase } from 'src/app/maps/widgets/widget-base';\r\n\r\n@Component({\r\n selector: 'sis-destination-alarm-widget',\r\n templateUrl: './destination-alarm-widget.component.html',\r\n styleUrls: ['./destination-alarm-widget.component.scss'],\r\n standalone: false\r\n})\r\nexport class DestinationAlarmWidgetComponent extends WidgetBase implements OnInit {\r\n static readonly defaultValue = 0;\r\n static readonly normalClass = 'sis-normal';\r\n static readonly warningClass = 'sis-warning';\r\n static readonly alarmClass = 'sis-alarm';\r\n\r\n count: number = DestinationAlarmWidgetComponent.defaultValue;\r\n class: string = DestinationAlarmWidgetComponent.normalClass;\r\n\r\n constructor(private destinationAlarmService: DestinationAlarmService) {\r\n super();\r\n }\r\n\r\n ngOnInit(): void {\r\n this.destinationAlarmService.alarms$.pipe(takeUntil(this.onDestroy$)).subscribe((alarms) => {\r\n const activeAlarms = alarms?.filter((a) => a.active) ?? [];\r\n\r\n this.class = this.getClass(activeAlarms);\r\n this.count = activeAlarms.length;\r\n });\r\n }\r\n\r\n private getClass(alarms: Alarm[]): string {\r\n if (alarms.find((d) => d.level === AlarmLevel.ALARM)) {\r\n return DestinationAlarmWidgetComponent.alarmClass;\r\n }\r\n if (alarms.find((d) => d.level === AlarmLevel.WARNING)) {\r\n return DestinationAlarmWidgetComponent.warningClass;\r\n }\r\n\r\n return DestinationAlarmWidgetComponent.normalClass;\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 {{ this.count }}\r\n \r\n \r\n \r\n\r\n","import { Component, OnInit } from '@angular/core';\r\nimport { combineLatest } from 'rxjs';\r\nimport { takeUntil } from 'rxjs/operators';\r\nimport { Unsubscriber } from 'src/app/core/unsubscriber';\r\nimport { AbbSmartSensor } from 'src/app/maps/domain/abbsmartsensor.model';\r\nimport { MasterdataService } from 'src/app/maps/domain/masterdata.service';\r\nimport { AbbSmartSensorDataService } from 'src/app/maps/livedata/abbsmartsensor-data.service';\r\nimport { SelectedMapElementService } from 'src/app/maps/selected-map-element.service';\r\n\r\n@Component({\r\n selector: 'sis-abbsmartsensor-detailview',\r\n templateUrl: './abbsmartsensor-detailview.component.html',\r\n styleUrls: ['./abbsmartsensor-detailview.component.scss'],\r\n standalone: false\r\n})\r\nexport class AbbSmartSensorDetailViewComponent extends Unsubscriber implements OnInit {\r\n abbSmartSensors: AbbSmartSensor[];\r\n timestamp: Date;\r\n\r\n constructor(\r\n private masterDataService: MasterdataService,\r\n private abbSmartSensorDataService: AbbSmartSensorDataService,\r\n private selectedMapElementService: SelectedMapElementService\r\n ) {\r\n super();\r\n }\r\n\r\n ngOnInit(): void {\r\n combineLatest([this.selectedMapElementService.selectedRopeway$, this.masterDataService.masterData$])\r\n .pipe(takeUntil(this.onDestroy$))\r\n .subscribe(([ropeway, masterData]) => {\r\n if (ropeway) {\r\n const abbSmartSensors = ropeway.abbSmartSensors;\r\n this.abbSmartSensors = abbSmartSensors?.sort((a, b) => (a.assetName < b.assetName ? -1 : 1));\r\n return;\r\n }\r\n\r\n this.abbSmartSensors = masterData?.abbSmartSensors?.sort((a, b) => (a.assetName < b.assetName ? -1 : 1));\r\n });\r\n\r\n this.abbSmartSensorDataService.abbSmartSensorDatas$\r\n .pipe(takeUntil(this.onDestroy$))\r\n .subscribe((abbSmartSensorDatas) => {\r\n this.timestamp = abbSmartSensorDatas?.sort((a, b) => (a.timestamp > b.timestamp ? -1 : 1))[0].timestamp;\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 {{ 'general.phrase.lastUpdate' | translate }}\r\n \r\n \r\n \r\n {{\r\n timestamp | date: 'dd.MM.yyyy HH:mm'\r\n }}\r\n \r\n \r\n \r\n \r\n ABB Smart Sensor
\r\n \r\n \r\n\r\n","import { Component, Input, OnInit } from '@angular/core';\r\nimport { takeUntil } from 'rxjs/operators';\r\nimport { Unsubscriber } from 'src/app/core/unsubscriber';\r\nimport { AbbSmartSensor } from 'src/app/maps/domain/abbsmartsensor.model';\r\nimport { AbbSmartSensorConditionStatus, AbbSmartSensorData } from 'src/app/maps/livedata/abbsmartsensor-data.model';\r\nimport { AbbSmartSensorDataService } from 'src/app/maps/livedata/abbsmartsensor-data.service';\r\n\r\n@Component({\r\n selector: 'sis-abbsmartsensor-item',\r\n templateUrl: './abbsmartsensor-item.component.html',\r\n styleUrls: ['./abbsmartsensor-item.component.scss'],\r\n standalone: false\r\n})\r\nexport class AbbSmartSensorItemComponent extends Unsubscriber implements OnInit {\r\n static readonly cssClassGood = 'sis-abbsmartsensor-good';\r\n static readonly cssClassTolerable = 'sis-abbsmartsensor-tolerable';\r\n static readonly cssClassPoor = 'sis-abbsmartsensor-poor';\r\n static readonly cssClassUnknown = 'sis-abbsmartsensor-unknown';\r\n\r\n private abbSmartSensorData: AbbSmartSensorData;\r\n\r\n cssclassForAvailability: string = AbbSmartSensorItemComponent.cssClassUnknown;\r\n cssClassForEnvironment: string = AbbSmartSensorItemComponent.cssClassUnknown;\r\n cssClassForReliability: string = AbbSmartSensorItemComponent.cssClassUnknown;\r\n cssClassForStress: string = AbbSmartSensorItemComponent.cssClassUnknown;\r\n\r\n @Input() abbSmartSensor: AbbSmartSensor;\r\n\r\n constructor(private abbSmartSensorDataService: AbbSmartSensorDataService) {\r\n super();\r\n }\r\n\r\n ngOnInit() {\r\n this.abbSmartSensorDataService.abbSmartSensorDatas$\r\n .pipe(takeUntil(this.onDestroy$))\r\n .subscribe((abbSmartSensorDatas) => {\r\n this.abbSmartSensorData = abbSmartSensorDatas.find(\r\n (sensorData) => sensorData.assetId === this.abbSmartSensor.assetId\r\n );\r\n\r\n if (this.abbSmartSensorData) {\r\n this.cssclassForAvailability = this.getCssClass(this.abbSmartSensorData.conditionIndexForAvailability);\r\n this.cssClassForEnvironment = this.getCssClass(this.abbSmartSensorData.conditionIndexForEnvironment);\r\n this.cssClassForReliability = this.getCssClass(this.abbSmartSensorData.conditionIndexForReliability);\r\n this.cssClassForStress = this.getCssClass(this.abbSmartSensorData.conditionIndexForStress);\r\n }\r\n });\r\n }\r\n\r\n private getCssClass(conditionStatus: AbbSmartSensorConditionStatus): string {\r\n switch (conditionStatus) {\r\n case AbbSmartSensorConditionStatus.Good:\r\n return AbbSmartSensorItemComponent.cssClassGood;\r\n case AbbSmartSensorConditionStatus.Tolerable:\r\n return AbbSmartSensorItemComponent.cssClassTolerable;\r\n case AbbSmartSensorConditionStatus.Poor:\r\n return AbbSmartSensorItemComponent.cssClassPoor;\r\n default:\r\n return AbbSmartSensorItemComponent.cssClassUnknown;\r\n }\r\n }\r\n}\r\n","\r\n \r\n \r\n \r\n \r\n {{ this.abbSmartSensor.assetType }}\r\n \r\n \r\n \r\n \r\n {{ this.abbSmartSensor.assetName }}\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, OnInit } from '@angular/core';\r\nimport { ModalController } from '@ionic/angular';\r\nimport { combineLatest } from 'rxjs';\r\nimport { startWith, takeUntil } from 'rxjs/operators';\r\nimport { AlarmlistService } from 'src/app/alarmlist/alarmlist.service';\r\nimport { Unsubscriber } from 'src/app/core/unsubscriber';\r\nimport { Alarm, AlarmLevel } from 'src/app/domain/alarm.model';\r\nimport { DestinationService } from 'src/app/domain/destination/destination.service';\r\nimport { Feature } from 'src/app/domain/feature/feature.model';\r\nimport { FeatureAccessLevel } from 'src/app/domain/feature/feature-access-level.model';\r\nimport { FeatureId } from 'src/app/domain/feature/feature-id.model';\r\nimport { AlarmLibraryModal } from 'src/app/maps/alarmlibrary/alarmlibrary.component';\r\nimport { MeteoStation } from 'src/app/maps/domain/meteostation.model';\r\nimport { Ropeway } from 'src/app/maps/domain/ropeway.model';\r\nimport { MeteoForecastAlarmService } from 'src/app/maps/livedata/meteo-forecast-alarm.service';\r\nimport { RopewayAlarmService } from 'src/app/maps/livedata/ropeway-alarm.service';\r\nimport { MeteoStationService } from 'src/app/maps/meteostation-service/meteostation.service';\r\nimport { SelectedMapElementService } from 'src/app/maps/selected-map-element.service';\r\n\r\n@Component({\r\n selector: 'sis-alarm-detailview',\r\n templateUrl: './alarm-detailview.component.html',\r\n styleUrls: ['./alarm-detailview.component.scss'],\r\n standalone: false\r\n})\r\nexport class AlarmDetailViewComponent extends Unsubscriber implements OnInit {\r\n private ropeway: Ropeway;\r\n private meteoStation: MeteoStation;\r\n\r\n activeAlarms: Alarm[];\r\n hasAlarm = false;\r\n canAccessAlarmLibrary: boolean;\r\n\r\n constructor(\r\n private modalCtrl: ModalController,\r\n private meteoStationService: MeteoStationService,\r\n private destinationService: DestinationService,\r\n private meteoForecastAlarmService: MeteoForecastAlarmService,\r\n private ropewayAlarmService: RopewayAlarmService,\r\n private selectedMapElementService: SelectedMapElementService\r\n ) {\r\n super();\r\n }\r\n\r\n ngOnInit(): void {\r\n this.destinationService.selectedTenantFeatures$.pipe(takeUntil(this.onDestroy$)).subscribe((features) => {\r\n this.canAccessAlarmLibrary = features.some((f) =>\r\n f.hasMinimumRequirementFor(new Feature(FeatureId.COCKPIT_TELEMETRY, FeatureAccessLevel.READ))\r\n );\r\n });\r\n\r\n combineLatest([\r\n this.selectedMapElementService.selectedRopeway$,\r\n this.meteoStationService.activeMeteoStation$.pipe(startWith(null)),\r\n this.ropewayAlarmService.alarms$.pipe(startWith([])),\r\n this.meteoForecastAlarmService.alarms$.pipe(startWith([])),\r\n ])\r\n .pipe(takeUntil(this.onDestroy$))\r\n .subscribe(([ropeway, meteoStation, ropewayAlarms, forecastAlarms]) =>\r\n this.update(ropeway, meteoStation, ropewayAlarms, forecastAlarms)\r\n );\r\n }\r\n\r\n private update(ropeway: Ropeway, meteoStation: MeteoStation, ropewayAlarms: Alarm[], forecastAlarms: Alarm[]): void {\r\n this.ropeway = ropeway;\r\n this.meteoStation = meteoStation;\r\n\r\n const sisId = ropeway?.sisId ?? meteoStation?.meteoDeviceSisId ?? null;\r\n if (!sisId) {\r\n return;\r\n }\r\n\r\n const alarms: Alarm[] = [\r\n ...(ropewayAlarms?.filter((a) => a.active && a.sisId === sisId) ?? []),\r\n ...(forecastAlarms?.filter((a) => a.active && Alarm.includesSisId(a, sisId)) ?? []),\r\n ];\r\n\r\n if (!alarms?.length) {\r\n this.resetToDefault();\r\n return;\r\n }\r\n\r\n const highestLevelAlarmsPerCode = alarms.reduce((p: Map, c: Alarm) => {\r\n const alarm: Alarm = p.get(c.code);\r\n if (!alarm || (alarm.level === AlarmLevel.WARNING && c.level === AlarmLevel.ALARM)) {\r\n p.set(c.code, c);\r\n }\r\n return p;\r\n }, new Map());\r\n\r\n this.activeAlarms = AlarmlistService.sortByTypeAndTimestamp(Array.from(highestLevelAlarmsPerCode.values()));\r\n this.hasAlarm = this.activeAlarms.length > 0;\r\n }\r\n\r\n private resetToDefault(): void {\r\n this.activeAlarms = undefined;\r\n this.hasAlarm = false;\r\n }\r\n\r\n async openAlarmLibrary() {\r\n if (!(this.ropeway && this.ropeway.sisId) && !this.meteoStation) {\r\n return;\r\n }\r\n\r\n const sisId = this.ropeway ? this.ropeway.sisId : this.meteoStation.meteoDeviceSisId;\r\n const alias = this.ropeway ? this.ropeway.alias : this.meteoStation.alias;\r\n\r\n const modal = await this.modalCtrl.create({\r\n component: AlarmLibraryModal,\r\n componentProps: {\r\n sisId,\r\n alias,\r\n },\r\n });\r\n return modal.present();\r\n }\r\n}\r\n","
\r\n {{ 'alarming.phrase.noAlarms' | translate }}\r\n
\r\n\r\n \r\n \r\n\r\n\r\n {{ 'alarming.term.alarmLibrary' | translate }}\r\n\r\n","import { Component, OnInit } from '@angular/core';\r\nimport { combineLatest, Observable, of } from 'rxjs';\r\nimport { map, switchMap, takeUntil } from 'rxjs/operators';\r\nimport { LogbookModalService } from 'src/app/core/components/logbook/logbook-modal/logbook-modal.service';\r\nimport { Unsubscriber } from 'src/app/core/unsubscriber';\r\nimport { DestinationService } from 'src/app/domain/destination/destination.service';\r\nimport { Feature } from 'src/app/domain/feature/feature.model';\r\nimport { FeatureAccessLevel } from 'src/app/domain/feature/feature-access-level.model';\r\nimport { FeatureId } from 'src/app/domain/feature/feature-id.model';\r\nimport { Ropeway } from 'src/app/maps/domain/ropeway.model';\r\nimport { RopewayLivedata } from 'src/app/maps/livedata/ropeway-livedata.model';\r\nimport { RopewayLivedataService } from 'src/app/maps/livedata/ropeway-livedata.service';\r\nimport { SelectedMapElementService } from 'src/app/maps/selected-map-element.service';\r\nimport { ClampingCountResetService } from 'src/app/maps/widgets/detailviews/clampingcount-detailview/clampingcount-reset.service';\r\nimport { ClampingCount } from 'src/app/maps/widgets/detailviews/clampingcount-detailview/domain/clampingcount.model';\r\nimport { ClampingCountResetMetadata } from 'src/app/maps/widgets/detailviews/clampingcount-detailview/domain/clampingcount-reset-metadata.model';\r\n\r\n@Component({\r\n selector: 'sis-clampingcount-detailview',\r\n templateUrl: './clampingcount-detailview.component.html',\r\n styleUrls: ['./clampingcount-detailview.component.scss'],\r\n standalone: false\r\n})\r\nexport class ClampingCountDetailViewComponent extends Unsubscriber implements OnInit {\r\n private readonly clampingCountKey = 'clampingCount';\r\n private readonly vehicleIdKey = 'id';\r\n\r\n writePermission: boolean;\r\n clampingCounts: ClampingCount[] = [];\r\n clampingCountResetMetadata: Map = new Map();\r\n loadingData: boolean = true;\r\n\r\n hasClampingCountResetFeature$: Observable = this.destinationService.selectedTenantFeatures$.pipe(\r\n map((features) => {\r\n return (\r\n features?.some((f) => f.hasMinimumRequirementFor(new Feature(FeatureId.COCKPIT_ROPEWAY_CLAMPINGCOUNT_RESET, FeatureAccessLevel.READ))) ??\r\n false\r\n );\r\n })\r\n );\r\n\r\n readonly logbookAvailable$ = this.logbookModalService.logbookAvailable$;\r\n\r\n private clampingCountResetMetaData$: Observable = this.hasClampingCountResetFeature$.pipe(\r\n switchMap((hasClampingCountFeature) => (hasClampingCountFeature ? this.clampingCountResetService.clampingCountMetadata$ : of([])))\r\n );\r\n\r\n constructor(\r\n private ropewayLiveDataService: RopewayLivedataService,\r\n private selectedMapElementService: SelectedMapElementService,\r\n private destinationService: DestinationService,\r\n private clampingCountResetService: ClampingCountResetService,\r\n private logbookModalService: LogbookModalService\r\n ) {\r\n super();\r\n }\r\n\r\n ngOnInit() {\r\n this.clampingCountResetMetaData$.pipe(takeUntil(this.onDestroy$)).subscribe((metadata) => {\r\n metadata.forEach((m) => {\r\n this.clampingCountResetMetadata.set(m.vehicleId, m);\r\n });\r\n });\r\n\r\n combineLatest([this.selectedMapElementService.selectedRopeway$, this.ropewayLiveDataService.ropewayLiveData$, this.clampingCountResetMetaData$])\r\n .pipe(takeUntil(this.onDestroy$))\r\n .subscribe(([ropeway, ropewayLiveDatas]) => {\r\n this.update(ropeway, ropewayLiveDatas);\r\n this.loadingData = false;\r\n });\r\n\r\n this.destinationService.selectedTenantFeatures$.pipe(takeUntil(this.onDestroy$)).subscribe((features) => {\r\n this.writePermission =\r\n features?.some((f) => f.hasMinimumRequirementFor(new Feature(FeatureId.COCKPIT_ROPEWAY_CLAMPINGCOUNT_RESET, FeatureAccessLevel.WRITE))) ??\r\n false;\r\n });\r\n }\r\n\r\n async resetClampingCount(clampingCount: ClampingCount) {\r\n await this.clampingCountResetService.resetClampingCount(clampingCount);\r\n }\r\n\r\n async openLogbook(): Promise {\r\n await this.logbookModalService.presentLogbookModal([[FeatureId.COCKPIT_ROPEWAY_CLAMPINGCOUNT_RESET]]);\r\n }\r\n\r\n itemId(_: number, clampingCount: ClampingCount): number {\r\n return clampingCount.vehicleId;\r\n }\r\n\r\n private async update(ropeway: Ropeway, ropewayLiveDatas: RopewayLivedata[]): Promise {\r\n if (!ropewayLiveDatas) {\r\n return;\r\n }\r\n\r\n if (!ropeway) {\r\n this.resetToDefault();\r\n return;\r\n }\r\n\r\n const ropewayLiveData = ropewayLiveDatas?.find((data: RopewayLivedata) => data.deviceSisId === ropeway.sisId);\r\n\r\n if (ropewayLiveData == null || ropewayLiveData.vehicleData == null || !ropewayLiveData.vehicleData[this.clampingCountKey]) {\r\n return;\r\n }\r\n\r\n const vehicleData = ropewayLiveData.vehicleData;\r\n const vehicleIds: number[] = vehicleData[this.vehicleIdKey];\r\n const clampingCounts: ClampingCount[] = [];\r\n\r\n for (let i = 0; i < vehicleIds.length; i++) {\r\n const vehicleId = vehicleIds[i];\r\n clampingCounts.push({\r\n clampingCount: vehicleData[this.clampingCountKey][i],\r\n vehicleId: vehicleId,\r\n metadata: this.clampingCountResetMetadata.get(vehicleId),\r\n });\r\n }\r\n\r\n Object.assign(this.clampingCounts, clampingCounts);\r\n }\r\n\r\n private resetToDefault(): void {\r\n this.clampingCounts = [];\r\n this.loadingData = true;\r\n }\r\n}\r\n","
\r\n \r\n \r\n \r\n Id\r\n \r\n {{ 'ropewayClampingCount.term.sinceReset' | translate }}\r\n \r\n \r\n {{ 'general.term.total' | translate }}\r\n \r\n \r\n
\r\n
\r\n \r\n \r\n \r\n \r\n \r\n {{ clampingCount.vehicleId }}\r\n \r\n {{ clampingCount.clampingCount - (clampingCount.metadata?.totalValueOnReset ?? 0) }}\r\n \r\n \r\n \r\n \r\n \r\n {{ clampingCount.clampingCount }}\r\n \r\n \r\n \r\n \r\n
\r\n\r\n \r\n \r\n\r\n","import { HttpClient, HttpErrorResponse } from '@angular/common/http';\r\nimport { Injectable } from '@angular/core';\r\nimport { AlertController } from '@ionic/angular';\r\nimport { TranslateService } from '@ngx-translate/core';\r\nimport { firstValueFrom, merge, Observable } from 'rxjs';\r\nimport { catchError, filter, map, shareReplay, switchMap, withLatestFrom } from 'rxjs/operators';\r\nimport { EventBusService } from 'src/app/core/eventbus/event-bus.service';\r\nimport { ClampingCountResetedEvent } from 'src/app/core/eventbus/events';\r\nimport { UserSettingsService } from 'src/app/domain/user-settings/user-settings.service';\r\nimport { SelectedMapElementService } from 'src/app/maps/selected-map-element.service';\r\nimport { ClampingCount } from 'src/app/maps/widgets/detailviews/clampingcount-detailview/domain/clampingcount.model';\r\nimport { ClampingCountResetMetaDataAdapter } from 'src/app/maps/widgets/detailviews/clampingcount-detailview/domain/clampingcount-reset-metadata.adapter';\r\nimport { ClampingCountResetMetadata } from 'src/app/maps/widgets/detailviews/clampingcount-detailview/domain/clampingcount-reset-metadata.model';\r\nimport { UserMessage } from 'src/app/user-message/user-message.model';\r\nimport { UserMessageService } from 'src/app/user-message/user-message.service';\r\nimport { UserMessageColor } from 'src/app/user-message/user-message-color';\r\nimport { UserMessageIcon } from 'src/app/user-message/user-message-icon';\r\nimport { environment } from 'src/environments/environment';\r\n\r\n@Injectable({\r\n providedIn: 'root',\r\n})\r\nexport class ClampingCountResetService {\r\n private readonly clampingCountMetadataRequest$: Observable = this.selectedMapElementService.selectedRopeway$.pipe(\r\n filter((selectedRopeway) => !!selectedRopeway),\r\n switchMap((selectedRopeway) =>\r\n this.http\r\n .get(`${environment.baseUrlApi}/ropeway/clampingcount/metadata/${selectedRopeway.guid}`)\r\n .pipe(map((clampingCountResetMetaData: any) => ClampingCountResetMetaDataAdapter.adapt(clampingCountResetMetaData)))\r\n ),\r\n shareReplay({\r\n bufferSize: 1,\r\n refCount: true,\r\n })\r\n );\r\n\r\n private readonly clampingCountResetedEvent$: Observable = this.eventBus.observe(ClampingCountResetedEvent).pipe(\r\n withLatestFrom(this.selectedMapElementService.selectedRopeway$),\r\n filter(([event, selectedRopeway]) => event.ropewayGuid === selectedRopeway.guid),\r\n map(([event]) => event),\r\n withLatestFrom(this.clampingCountMetadataRequest$),\r\n withLatestFrom(this.userSettingsService.userSettings$),\r\n map(([[event, requestData], userSettings]) => {\r\n if (event.changedBy === userSettings.userGuid) {\r\n this.displayUserMessage(event.resetSuccessful);\r\n }\r\n\r\n if (event.resetSuccessful) {\r\n const changedVehicle = requestData.find((r) => r.vehicleId === event.vehicleId);\r\n\r\n if (changedVehicle) {\r\n changedVehicle.email = event.email;\r\n changedVehicle.lastReset = new Date(event.lastReset);\r\n changedVehicle.totalValueOnReset = event.totalValueOnReset;\r\n changedVehicle.isResetting = false;\r\n } else {\r\n requestData.push({\r\n email: event.email,\r\n lastReset: new Date(event.lastReset),\r\n totalValueOnReset: event.totalValueOnReset,\r\n vehicleId: event.vehicleId,\r\n });\r\n }\r\n }\r\n\r\n return requestData;\r\n }),\r\n shareReplay({\r\n bufferSize: 1,\r\n refCount: true,\r\n })\r\n );\r\n\r\n readonly clampingCountMetadata$ = merge(this.clampingCountMetadataRequest$, this.clampingCountResetedEvent$).pipe(\r\n shareReplay({\r\n bufferSize: 1,\r\n refCount: true,\r\n })\r\n );\r\n\r\n constructor(\r\n private http: HttpClient,\r\n private selectedMapElementService: SelectedMapElementService,\r\n private userMessageService: UserMessageService,\r\n private eventBus: EventBusService,\r\n private translateService: TranslateService,\r\n private alertController: AlertController,\r\n private userSettingsService: UserSettingsService\r\n ) {}\r\n\r\n async postResetClampingCount(vehicleId: number): Promise {\r\n const url = `${environment.baseUrlApi}/ropeway/clampingcount/reset`;\r\n const ropewayGuid = (await firstValueFrom(this.selectedMapElementService.selectedRopeway$))?.guid;\r\n\r\n await firstValueFrom(\r\n this.http.post(url, { ropewayGuid, vehicleId }).pipe(\r\n catchError((error: HttpErrorResponse) => {\r\n this.displayUserMessage(false);\r\n throw error;\r\n })\r\n )\r\n );\r\n }\r\n\r\n async resetClampingCount(clampingCount: ClampingCount): Promise {\r\n const alert = await this.alertController.create({\r\n header: this.translateService.instant('general.term.danger'),\r\n subHeader: this.translateService.instant('ropewayClampingCount.phrase.reset'),\r\n message: `${this.translateService.instant('ropeway.term.vehicleId')}: ${clampingCount.vehicleId}
${this.translateService.instant(\r\n 'general.term.currentCount'\r\n )}: ${clampingCount.clampingCount - (clampingCount.metadata?.totalValueOnReset ?? 0)}
${this.translateService.instant(\r\n 'general.term.lastReset'\r\n )}: ${clampingCount.metadata?.lastReset.toLocaleString() ?? this.translateService.instant('general.term.never')}`,\r\n htmlAttributes: {\r\n 'data-test': 'clampingCount-reset-alert',\r\n },\r\n buttons: [\r\n {\r\n text: this.translateService.instant('general.term.cancel'),\r\n handler: () => {},\r\n },\r\n {\r\n text: this.translateService.instant('general.term.reset'),\r\n handler: async () => {\r\n if (!clampingCount.metadata) {\r\n clampingCount.metadata = {};\r\n }\r\n clampingCount.metadata.isResetting = true;\r\n await this.postResetClampingCount(clampingCount.vehicleId);\r\n },\r\n },\r\n ],\r\n backdropDismiss: false,\r\n cssClass: 'sis-ion-alert',\r\n });\r\n\r\n await alert.present();\r\n }\r\n\r\n private displayUserMessage(updateSuccessful: boolean): void {\r\n const message = updateSuccessful ? 'general.phrase.resetSuccess' : 'general.phrase.resetFailed';\r\n\r\n const icon = updateSuccessful ? UserMessageIcon.success : UserMessageIcon.failed;\r\n const color = updateSuccessful ? UserMessageColor.green : UserMessageColor.red;\r\n const userMessage = new UserMessage({\r\n message,\r\n icon,\r\n durationMs: 2000,\r\n position: 'top',\r\n color,\r\n });\r\n this.userMessageService.presentToast(userMessage);\r\n }\r\n}\r\n","import { ClampingCountResetMetadata } from 'src/app/maps/widgets/detailviews/clampingcount-detailview/domain/clampingcount-reset-metadata.model';\r\n\r\nexport class ClampingCountResetMetaDataAdapter {\r\n static adapt(item: any): ClampingCountResetMetadata[] {\r\n const metadata: ClampingCountResetMetadata[] = [];\r\n\r\n item.forEach((e: any) => {\r\n metadata.push({\r\n vehicleId: e.vehicleId,\r\n email: e.email,\r\n lastReset: new Date(e.lastReset),\r\n totalValueOnReset: e.totalValueOnReset,\r\n });\r\n });\r\n\r\n return metadata;\r\n }\r\n}\r\n","import { Component, OnInit } from '@angular/core';\r\nimport { ModalController } from '@ionic/angular';\r\nimport { take, takeUntil } from 'rxjs/operators';\r\nimport { AlarmlistService } from 'src/app/alarmlist/alarmlist.service';\r\nimport { Unsubscriber } from 'src/app/core/unsubscriber';\r\nimport { Alarm, AlarmLevel } from 'src/app/domain/alarm.model';\r\nimport { DestinationService } from 'src/app/domain/destination/destination.service';\r\nimport { Feature } from 'src/app/domain/feature/feature.model';\r\nimport { FeatureAccessLevel } from 'src/app/domain/feature/feature-access-level.model';\r\nimport { FeatureId } from 'src/app/domain/feature/feature-id.model';\r\nimport { AlarmLibraryModal } from 'src/app/maps/alarmlibrary/alarmlibrary.component';\r\nimport { MasterdataService } from 'src/app/maps/domain/masterdata.service';\r\nimport { DestinationAlarmService } from 'src/app/maps/livedata/destination-alarm.service';\r\n\r\n@Component({\r\n selector: 'sis-destination-alarm-detailview',\r\n templateUrl: './destination-alarm-detailview.component.html',\r\n styleUrls: ['./destination-alarm-detailview.component.scss'],\r\n standalone: false\r\n})\r\nexport class DestinationAlarmDetailViewComponent extends Unsubscriber implements OnInit {\r\n private gatewaySisId: string;\r\n private destinationAlias: string;\r\n\r\n canAccessAlarmLibrary: boolean;\r\n activeAlarms: Alarm[];\r\n hasAlarm: boolean;\r\n\r\n constructor(\r\n private modalCtrl: ModalController,\r\n private masterdataService: MasterdataService,\r\n private destinationService: DestinationService,\r\n private destinationAlarmService: DestinationAlarmService\r\n ) {\r\n super();\r\n }\r\n\r\n async openAlarmLibrary() {\r\n if (!this.gatewaySisId) {\r\n return;\r\n }\r\n\r\n const modal = await this.modalCtrl.create({\r\n component: AlarmLibraryModal,\r\n componentProps: {\r\n sisId: this.gatewaySisId,\r\n alias: this.destinationAlias,\r\n },\r\n });\r\n return modal.present();\r\n }\r\n\r\n ngOnInit(): void {\r\n this.masterdataService.masterData$.pipe(take(1)).subscribe((data) => {\r\n this.gatewaySisId = data.gatewayId;\r\n this.destinationAlias = data.alias;\r\n });\r\n\r\n this.destinationService.selectedTenantFeatures$.pipe(takeUntil(this.onDestroy$)).subscribe((features) => {\r\n this.canAccessAlarmLibrary = features.some((f) =>\r\n f.hasMinimumRequirementFor(new Feature(FeatureId.COCKPIT_TELEMETRY, FeatureAccessLevel.READ))\r\n );\r\n });\r\n\r\n this.destinationAlarmService.alarms$.pipe(takeUntil(this.onDestroy$)).subscribe((alarms) => {\r\n this.update(alarms);\r\n });\r\n }\r\n\r\n private update(destinationAlarms: Alarm[]): void {\r\n const alarms: Alarm[] = destinationAlarms?.filter((a) => a.active) ?? [];\r\n\r\n const uniques = alarms.reduce((p: Map, c: Alarm) => {\r\n const alarm: Alarm = p.get(c.code);\r\n if (!alarm || (alarm.level === AlarmLevel.WARNING && c.level === AlarmLevel.ALARM)) {\r\n p.set(c.code, c);\r\n }\r\n return p;\r\n }, new Map());\r\n\r\n this.activeAlarms = AlarmlistService.sortByTypeAndTimestamp(Array.from(uniques.values()));\r\n this.hasAlarm = this.activeAlarms?.length > 0;\r\n }\r\n}\r\n","
\r\n {{ 'alarming.phrase.noAlarms' | translate }}\r\n
\r\n\r\n \r\n \r\n\r\n\r\n {{ 'alarming.term.alarmLibrary' | translate }}\r\n\r\n","import { Component, Input, OnDestroy, OnInit } from '@angular/core';\r\nimport { takeUntil } from 'rxjs/operators';\r\nimport { EventBusService } from 'src/app/core/eventbus/event-bus.service';\r\nimport { DeviceListHoverEvent, MapIconClickedEvent } from 'src/app/core/eventbus/events';\r\nimport { IconHelper } from 'src/app/core/icon-helper/icon-helper';\r\nimport { Unsubscriber } from 'src/app/core/unsubscriber';\r\nimport { Ropeway } from 'src/app/maps/domain/ropeway.model';\r\nimport { RopewayStatusType } from 'src/app/maps/livedata/ropeway-status.model';\r\nimport { RopewayStatusService } from 'src/app/maps/livedata/ropeway-status.service';\r\n\r\n@Component({\r\n selector: 'sis-devices-on-detailview-item',\r\n templateUrl: './devices-on-detailview-item.component.html',\r\n styleUrls: ['./devices-on-detailview-item.component.scss'],\r\n standalone: false\r\n})\r\nexport class DevicesOnDetailViewItemComponent extends Unsubscriber implements OnInit, OnDestroy {\r\n @Input() ropeway: Ropeway;\r\n\r\n cssClass: string;\r\n\r\n constructor(private eventBus: EventBusService, private ropewayStatusService: RopewayStatusService) {\r\n super();\r\n }\r\n\r\n ngOnInit(): void {\r\n this.ropewayStatusService.ropewayStatus$.pipe(takeUntil(this.onDestroy$)).subscribe((statusMap) => {\r\n this.cssClass = this.getCssClass(statusMap.get(this.ropeway.sisId));\r\n });\r\n }\r\n\r\n private getCssClass(ropewayStatusTypeMap: Map): string {\r\n if (ropewayStatusTypeMap) {\r\n if (\r\n ropewayStatusTypeMap.get(RopewayStatusType.OUTDATED) ||\r\n !ropewayStatusTypeMap.has(RopewayStatusType.OUTDATED)\r\n ) {\r\n return 'sis-alarmlevel-outdated';\r\n }\r\n if (ropewayStatusTypeMap.get(RopewayStatusType.ALARM) || ropewayStatusTypeMap.get(RopewayStatusType.FAULT)) {\r\n return 'sis-alarmlevel-alarm';\r\n }\r\n if (ropewayStatusTypeMap.get(RopewayStatusType.WARNING)) {\r\n return 'sis-alarmlevel-warning';\r\n }\r\n return 'sis-alarmlevel-none';\r\n }\r\n\r\n return 'sis-alarmlevel-outdated';\r\n }\r\n\r\n mouseEnter() {\r\n this.createHoverEvent(true);\r\n }\r\n\r\n mouseLeave() {\r\n this.createHoverEvent(false);\r\n }\r\n\r\n click() {\r\n const event = new MapIconClickedEvent();\r\n event.ropeway = this.ropeway;\r\n this.eventBus.publish(event);\r\n }\r\n\r\n ngOnDestroy() {\r\n this.createHoverEvent(false);\r\n }\r\n\r\n getIconName(): string {\r\n return IconHelper.getRopewayIconName(this.ropeway);\r\n }\r\n\r\n private createHoverEvent(hover: boolean): void {\r\n if (this.ropeway) {\r\n const event = new DeviceListHoverEvent();\r\n event.deviceSisId = this.ropeway.sisId;\r\n event.hover = hover;\r\n this.eventBus.publish(event);\r\n }\r\n }\r\n}\r\n","\r\n \r\n \r\n \r\n \r\n {{ ropeway.alias }}\r\n
{{ ropeway.fullname }} ({{ ropeway.sisId | uppercase }})
\r\n
\r\n \r\n \r\n \r\n
\r\n","import { Component, OnInit } from '@angular/core';\r\nimport { take } from 'rxjs/operators';\r\nimport { MasterdataService } from 'src/app/maps/domain/masterdata.service';\r\nimport { Ropeway } from 'src/app/maps/domain/ropeway.model';\r\n\r\n@Component({\r\n selector: 'sis-devices-on-detailview',\r\n templateUrl: './devices-on-detailview.component.html',\r\n styleUrls: ['./devices-on-detailview.component.scss'],\r\n standalone: false\r\n})\r\nexport class DevicesOnDetailViewComponent implements OnInit {\r\n ropeways: Ropeway[];\r\n\r\n constructor(private masterDataService: MasterdataService) {}\r\n\r\n ngOnInit() {\r\n this.masterDataService.masterData$.pipe(take(1)).subscribe((data) => {\r\n this.ropeways = data.ropeways.sort((a, b) => (a.alias < b.alias ? -1 : 1));\r\n });\r\n }\r\n}\r\n","\r\n \r\n\r\n","import { Alarm } from 'src/app/domain/alarm.model';\r\n\r\nexport class EfaHistoryAdapter {\r\n static adapt(items: any): Alarm[] {\r\n if (!items) {\r\n return [];\r\n }\r\n\r\n const alarms: Alarm[] = [];\r\n\r\n items.forEach((e: any) => {\r\n alarms.push(\r\n new Alarm({\r\n sisId: e.sisId,\r\n tenantSisId: e.tenantSisId,\r\n timestamp: new Date(e.timestamp),\r\n code: e.code,\r\n info: e.info,\r\n text: e.text,\r\n })\r\n );\r\n });\r\n\r\n return alarms;\r\n }\r\n}\r\n","import { Component, OnInit } from '@angular/core';\r\nimport { ModalController } from '@ionic/angular';\r\nimport { combineLatest } from 'rxjs';\r\nimport { startWith, takeUntil } from 'rxjs/operators';\r\nimport { Unsubscriber } from 'src/app/core/unsubscriber';\r\nimport { Alarm, AlarmLevel } from 'src/app/domain/alarm.model';\r\nimport { DestinationService } from 'src/app/domain/destination/destination.service';\r\nimport { Feature } from 'src/app/domain/feature/feature.model';\r\nimport { FeatureAccessLevel } from 'src/app/domain/feature/feature-access-level.model';\r\nimport { FeatureId } from 'src/app/domain/feature/feature-id.model';\r\nimport { AlarmLibraryModal } from 'src/app/maps/alarmlibrary/alarmlibrary.component';\r\nimport { Ropeway } from 'src/app/maps/domain/ropeway.model';\r\nimport { RopewayEfaService } from 'src/app/maps/livedata/ropeway-efa.service';\r\nimport { SelectedMapElementService } from 'src/app/maps/selected-map-element.service';\r\nimport { RopewayEfaHistoryService } from 'src/app/maps/widgets/detailviews/efa-detailview/efa-history.service';\r\n\r\n@Component({\r\n selector: 'sis-efa-detailview',\r\n templateUrl: './efa-detailview.component.html',\r\n styleUrls: ['./efa-detailview.component.scss'],\r\n standalone: false\r\n})\r\nexport class EfaDetailViewComponent extends Unsubscriber implements OnInit {\r\n private ropeway: Ropeway;\r\n\r\n efa: Alarm;\r\n efaHistory: Alarm[] = [];\r\n canAccessAlarmLibrary: boolean;\r\n hasActiveAlarm: boolean = false;\r\n hasHistoryItems: boolean;\r\n\r\n constructor(\r\n private modalCtrl: ModalController,\r\n private destinationService: DestinationService,\r\n private efaHistoryService: RopewayEfaHistoryService,\r\n private ropewayEfaService: RopewayEfaService,\r\n private selectedMapElementService: SelectedMapElementService\r\n ) {\r\n super();\r\n }\r\n\r\n ngOnInit(): void {\r\n this.selectedMapElementService.selectedRopeway$.pipe(takeUntil(this.onDestroy$)).subscribe((ropeway) => {\r\n this.ropeway = ropeway;\r\n });\r\n\r\n this.destinationService.selectedTenantFeatures$.pipe(takeUntil(this.onDestroy$)).subscribe((features) => {\r\n this.canAccessAlarmLibrary = features.some((f) =>\r\n f.hasMinimumRequirementFor(new Feature(FeatureId.COCKPIT_TELEMETRY, FeatureAccessLevel.READ))\r\n );\r\n });\r\n\r\n combineLatest([\r\n this.efaHistoryService.ropewayEfaHistory$.pipe(startWith([])),\r\n this.ropewayEfaService.efas$,\r\n this.selectedMapElementService.selectedRopeway$,\r\n ])\r\n .pipe(takeUntil(this.onDestroy$))\r\n .subscribe(([efaHistory, alarms, ropeway]) => {\r\n this.update(ropeway, alarms);\r\n\r\n if (this.efa) {\r\n this.efaHistory = efaHistory.filter((historyItem) => historyItem.timestampMs < this.efa.timestampMs);\r\n } else {\r\n this.efaHistory = efaHistory;\r\n }\r\n\r\n this.hasHistoryItems = this.efaHistory.length > 0;\r\n });\r\n }\r\n\r\n private update(ropeway: Ropeway, efas: Alarm[]): void {\r\n if (!efas) {\r\n return;\r\n }\r\n\r\n if (!ropeway) {\r\n this.resetToDefault();\r\n return;\r\n }\r\n\r\n const activeEfas = efas.filter((efa: Alarm) => efa.active && efa.sisId === ropeway.sisId);\r\n\r\n if (activeEfas && activeEfas.length > 0) {\r\n const fault = activeEfas.find((a) => a.level === AlarmLevel.FAULT);\r\n this.efa = fault ? fault : activeEfas[0];\r\n this.hasActiveAlarm = true;\r\n } else {\r\n this.resetToDefault();\r\n }\r\n }\r\n\r\n private resetToDefault(): void {\r\n this.efa = null;\r\n this.hasActiveAlarm = false;\r\n }\r\n\r\n async openAlarmLibrary() {\r\n if (!this.ropeway || !this.ropeway.sisId || !this.canAccessAlarmLibrary) {\r\n return;\r\n }\r\n\r\n const modal = await this.modalCtrl.create({\r\n component: AlarmLibraryModal,\r\n componentProps: {\r\n sisId: this.ropeway.sisId,\r\n alias: this.ropeway.alias,\r\n },\r\n });\r\n return modal.present();\r\n }\r\n\r\n itemId(_: number, alarm: Alarm): number {\r\n return alarm.timestampMs;\r\n }\r\n}\r\n","\r\n
\r\n \r\n \r\n \r\n {{ 'alarming.phrase.noAlarms' | translate }}\r\n \r\n \r\n \r\n \r\n {{ 'alarming.term.history' | translate }}\r\n \r\n \r\n
\r\n
\r\n
\r\n \r\n
\r\n
\r\n \r\n
\r\n\r\n {{ 'alarming.term.alarmLibrary' | translate }}\r\n\r\n","import { HttpClient } from '@angular/common/http';\r\nimport { Injectable } from '@angular/core';\r\nimport { Observable, of, timer } from 'rxjs';\r\nimport { map, share, switchMap } from 'rxjs/operators';\r\nimport { Alarm } from 'src/app/domain/alarm.model';\r\nimport { SelectedMapElementService } from 'src/app/maps/selected-map-element.service';\r\nimport { EfaHistoryAdapter } from 'src/app/maps/widgets/detailviews/efa-detailview/domain/efa-history.adapter';\r\nimport { environment } from 'src/environments/environment';\r\n\r\n@Injectable({\r\n providedIn: 'root',\r\n})\r\nexport class RopewayEfaHistoryService {\r\n private readonly url = environment.baseUrlApi + '/ropewayefahistory';\r\n\r\n readonly ropewayEfaHistory$: Observable = this.selectedMapElementService.selectedRopeway$.pipe(\r\n switchMap((ropeway) => {\r\n if (!ropeway) {\r\n return of([]);\r\n }\r\n\r\n return timer(0, 10000).pipe(\r\n switchMap(() =>\r\n this.http\r\n .get(`${this.url}/${ropeway.sisId}`)\r\n .pipe(\r\n map((data: any) =>\r\n EfaHistoryAdapter.adapt(data).sort((a, b) => b.timestamp.getTime() - a.timestamp.getTime())\r\n )\r\n )\r\n )\r\n );\r\n }),\r\n share()\r\n );\r\n\r\n constructor(private http: HttpClient, private selectedMapElementService: SelectedMapElementService) {}\r\n}\r\n","import { Component, OnInit } from '@angular/core';\r\nimport { takeUntil } from 'rxjs/operators';\r\nimport { Unsubscriber } from 'src/app/core/unsubscriber';\r\nimport { EnergyLiveData } from 'src/app/maps/livedata/energy-livedata.model';\r\nimport { EnergyLiveDataService } from 'src/app/maps/livedata/energy-livedata.service';\r\n\r\n@Component({\r\n selector: 'sis-energy-detailview',\r\n templateUrl: './energy-detailview.component.html',\r\n styleUrls: ['./energy-detailview.component.scss'],\r\n standalone: false\r\n})\r\nexport class EnergyDetailViewComponent extends Unsubscriber implements OnInit {\r\n private production = 'energy.term.production';\r\n private consumption = 'energy.term.consumption';\r\n\r\n missing: EnergyLiveData[] = [];\r\n categories = new Map();\r\n allMissing: boolean;\r\n\r\n constructor(private energyLiveDataService: EnergyLiveDataService) {\r\n super();\r\n }\r\n\r\n ngOnInit() {\r\n this.update([]);\r\n this.energyLiveDataService.energy$.pipe(takeUntil(this.onDestroy$)).subscribe((energyLiveDatas) => {\r\n this.update(energyLiveDatas);\r\n });\r\n }\r\n\r\n private update(liveDatas: EnergyLiveData[]): void {\r\n const sumProd = liveDatas.reduce(\r\n (sum: number, current: EnergyLiveData) =>\r\n (sum += !current.outdated && current.powerW < 0 ? current.powerW / 1000 : 0),\r\n 0\r\n );\r\n this.categories.set(this.production, Math.round(Math.abs(sumProd)));\r\n\r\n const sumCons = liveDatas.reduce(\r\n (sum: number, current: EnergyLiveData) =>\r\n (sum += !current.outdated && current.powerW > 0 ? current.powerW / 1000 : 0),\r\n 0\r\n );\r\n this.categories.set(this.consumption, Math.round(Math.abs(sumCons)));\r\n\r\n this.missing = liveDatas.filter((d) => d.outdated || d.powerW == null);\r\n this.allMissing = liveDatas.length === this.missing.length;\r\n }\r\n}\r\n","\r\n \r\n {{ 'general.term.category' | translate }}\r\n {{ 'energy.term.power' | translate }}\r\n \r\n\r\n
\r\n\r\n \r\n {{ category.key | translate }}\r\n {{ this.allMissing ? '?' : category.value }} kW\r\n \r\n\r\n
\r\n\r\n
0\" data-test=\"missing-devices\">\r\n \r\n \r\n \r\n \r\n \r\n {{ 'energy.phrase.missingDevices' | translate }}\r\n \r\n \r\n {{ this.missing.length }}\r\n \r\n \r\n \r\n \r\n \r\n {{ item.displayName }}\r\n \r\n \r\n
\r\n
\r\n","import { Component, OnInit } from '@angular/core';\r\nimport { takeUntil } from 'rxjs/operators';\r\nimport { Unsubscriber } from 'src/app/core/unsubscriber';\r\nimport { DestinationService } from 'src/app/domain/destination/destination.service';\r\nimport { Feature } from 'src/app/domain/feature/feature.model';\r\nimport { FeatureAccessLevel } from 'src/app/domain/feature/feature-access-level.model';\r\nimport { FeatureId } from 'src/app/domain/feature/feature-id.model';\r\nimport { FirstEntriesGroup } from 'src/app/maps/domain/firstentriesgroup.model';\r\nimport { MasterdataService } from 'src/app/maps/domain/masterdata.service';\r\nimport { FirstEntriesData } from 'src/app/maps/livedata/first-entries.model';\r\nimport { FirstEntriesService } from 'src/app/maps/livedata/first-entries.service';\r\nimport { KassandraForecastData } from 'src/app/maps/livedata/kassandra-forecast.model';\r\nimport { KassandraForecastService } from 'src/app/maps/livedata/kassandra-forecast.service';\r\nimport { SisOutdatedHelper } from 'src/app/maps/livedata/sis-outdated-helper';\r\nimport { FirstEntriesDetailViewModel } from 'src/app/maps/widgets/detailviews/first-entries-detailview/first-entries-detailview.model';\r\n\r\n@Component({\r\n selector: 'sis-first-entries-detailview',\r\n templateUrl: './first-entries-detailview.component.html',\r\n styleUrls: ['./first-entries-detailview.component.scss'],\r\n standalone: false\r\n})\r\nexport class FirstEntriesDetailViewComponent extends Unsubscriber implements OnInit {\r\n private firstEntriesDatas: FirstEntriesData[];\r\n private forecastDatas: KassandraForecastData[];\r\n private firstEntriesGroups: FirstEntriesGroup[];\r\n\r\n timestamp: Date;\r\n firstEntriesAvailable: boolean;\r\n forecastAvailable: boolean;\r\n frequenciesAvailable: boolean;\r\n dataForDetailView: FirstEntriesDetailViewModel[];\r\n\r\n constructor(\r\n private destinationService: DestinationService,\r\n private masterdataService: MasterdataService,\r\n private firstEntriesService: FirstEntriesService,\r\n private kassandraService: KassandraForecastService\r\n ) {\r\n super();\r\n }\r\n\r\n ngOnInit() {\r\n this.destinationService.selectedTenantFeatures$.pipe(takeUntil(this.onDestroy$)).subscribe((features) => {\r\n this.firstEntriesAvailable = features.some((f) =>\r\n f.hasMinimumRequirementFor(new Feature(FeatureId.COCKPIT_FIRSTENTRIES, FeatureAccessLevel.READ))\r\n );\r\n this.forecastAvailable = features.some((f) =>\r\n f.hasMinimumRequirementFor(new Feature(FeatureId.COCKPIT_KASSANDRA, FeatureAccessLevel.READ))\r\n );\r\n this.frequenciesAvailable = features.some((f) =>\r\n f.hasMinimumRequirementFor(new Feature(FeatureId.COCKPIT_FREQUENCIES, FeatureAccessLevel.READ))\r\n );\r\n });\r\n\r\n this.masterdataService.masterData$.pipe(takeUntil(this.onDestroy$)).subscribe((data) => {\r\n this.firstEntriesGroups = data.firstEntriesGroups;\r\n });\r\n\r\n this.firstEntriesService.firstEntries$.pipe(takeUntil(this.onDestroy$)).subscribe((firstEntries) => {\r\n this.firstEntriesDatas = firstEntries ?? [];\r\n this.dataForDetailView = this.getDataForDetailView();\r\n });\r\n\r\n this.kassandraService.kassandra$.pipe(takeUntil(this.onDestroy$)).subscribe((kassandra) => {\r\n this.forecastDatas = kassandra ?? [];\r\n this.dataForDetailView = this.getDataForDetailView();\r\n });\r\n }\r\n\r\n private getDataForDetailView(): FirstEntriesDetailViewModel[] {\r\n const firstEntriesDetailViewDatas: FirstEntriesDetailViewModel[] = [];\r\n this.firstEntriesGroups.forEach((g) => {\r\n const data: FirstEntriesDetailViewModel = {\r\n measuredValue: null,\r\n frequenciesValue: null,\r\n forecastValue: null,\r\n measuredAt: new Date(),\r\n forecastAt: new Date(),\r\n name: g.name,\r\n timeoutInSeconds: 0,\r\n detailViewOrder: g.detailViewOrder,\r\n wholeDestination: g.wholeDestination,\r\n hasForecast: false,\r\n };\r\n g.rowKeys.forEach((rowKey: string) => {\r\n if (this.firstEntriesDatas) {\r\n const firstEntries = this.firstEntriesDatas.find((f) => f.rowKey === rowKey);\r\n if (firstEntries) {\r\n data.measuredValue += firstEntries.measuredValue;\r\n data.frequenciesValue += firstEntries.frequenciesValue;\r\n data.measuredAt = firstEntries.measuredAt < data.measuredAt ? firstEntries.measuredAt : data.measuredAt;\r\n data.timeoutInSeconds =\r\n firstEntries.timeoutInSeconds > data.timeoutInSeconds\r\n ? firstEntries.timeoutInSeconds\r\n : data.timeoutInSeconds;\r\n }\r\n }\r\n\r\n if (this.forecastDatas) {\r\n const forecast = this.forecastDatas.find((f) => f.rowKey === rowKey);\r\n if (forecast) {\r\n data.hasForecast = true;\r\n data.forecastValue += forecast.forecastValue;\r\n data.forecastAt = forecast.forecastAt < data.forecastAt ? forecast.forecastAt : data.forecastAt;\r\n }\r\n }\r\n });\r\n\r\n this.timestamp = data.measuredAt;\r\n\r\n if (SisOutdatedHelper.isOutdated(data.measuredAt, data.timeoutInSeconds * 1000)) {\r\n data.measuredValue = null;\r\n data.frequenciesValue = null;\r\n }\r\n if (!SisOutdatedHelper.dateIsToday(data.forecastAt)) {\r\n data.forecastValue = null;\r\n }\r\n\r\n firstEntriesDetailViewDatas.push(data);\r\n });\r\n\r\n firstEntriesDetailViewDatas.sort((a, b) => a.detailViewOrder - b.detailViewOrder);\r\n return firstEntriesDetailViewDatas;\r\n }\r\n}\r\n","\r\n
\r\n \r\n {{ 'destination.term.location' | translate }}\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 entries.name\r\n }}\r\n {{ entries.measuredValue == null ? '?' : entries.measuredValue }}\r\n {{ entries.frequenciesValue == null ? '?' : entries.frequenciesValue }}\r\n {{ entries.forecastValue == null ? '' : entries.forecastValue }}\r\n \r\n \r\n
\r\n\r\n\r\n \r\n \r\n \r\n \r\n \r\n {{ 'general.phrase.lastUpdate' | translate }}\r\n \r\n \r\n \r\n {{\r\n this.timestamp | date: 'dd.MM.yyyy HH:mm'\r\n }}\r\n \r\n \r\n \r\n \r\n Kassandra\r\n \r\n \r\n\r\n","import { GinConfiguration } from 'src/app/maps/domain/gin-configuration.model';\r\nimport { GinLivedata } from 'src/app/maps/livedata/gin-livedata.model';\r\n\r\nexport class GinDetailViewDisplayData {\r\n readonly ginName: string;\r\n readonly dataTimestamp: string;\r\n readonly timestamp: Date;\r\n readonly value: string;\r\n readonly valueFormat: string;\r\n readonly unit: string;\r\n\r\n readonly externalLink: string;\r\n readonly order: number;\r\n\r\n constructor(configuration: GinConfiguration, liveData: GinLivedata) {\r\n if (liveData) {\r\n this.ginName = liveData.ginName;\r\n this.dataTimestamp = liveData.dataTimestamp;\r\n this.timestamp = liveData.timestamp;\r\n this.value = liveData.value.toString();\r\n this.unit = liveData.unit;\r\n\r\n if (liveData.outdated) {\r\n this.valueFormat = 'sis-gin-data-outdated';\r\n } else if (configuration?.alarmRangeHigh !== null && liveData.value >= configuration.alarmRangeHigh) {\r\n this.valueFormat = 'sis-gin-data-alarm';\r\n } else if (configuration?.warnRangeHigh !== null && liveData.value >= configuration.warnRangeHigh) {\r\n this.valueFormat = 'sis-gin-data-warning';\r\n } else {\r\n this.valueFormat = '';\r\n }\r\n\r\n if (configuration) {\r\n this.externalLink = configuration.externalLink;\r\n this.order = configuration.detailViewOrder;\r\n }\r\n }\r\n }\r\n}\r\n","import { Component, OnInit } from '@angular/core';\r\nimport { map, switchMap, takeUntil } from 'rxjs';\r\nimport { Unsubscriber } from 'src/app/core/unsubscriber';\r\nimport { MasterdataService } from 'src/app/maps/domain/masterdata.service';\r\nimport { GinLivedataService } from 'src/app/maps/livedata/gin-livedata.service';\r\nimport { GinDetailViewDisplayData } from 'src/app/maps/widgets/detailviews/gin-detailview/gin-detailview-displaydata.model';\r\n\r\n@Component({\r\n selector: 'sis-gin-detailview',\r\n templateUrl: './gin-detailview.component.html',\r\n styleUrls: ['./gin-detailview.component.scss'],\r\n standalone: false\r\n})\r\nexport class GINDetailViewComponent extends Unsubscriber implements OnInit {\r\n displayDatas: GinDetailViewDisplayData[] = [];\r\n\r\n constructor(private masterDataService: MasterdataService, private ginLiveDataService: GinLivedataService) {\r\n super();\r\n }\r\n\r\n ngOnInit(): void {\r\n this.masterDataService.masterData$\r\n .pipe(\r\n switchMap((masterData) =>\r\n this.ginLiveDataService.ginLiveDatas$.pipe(map((ginLiveDatas) => ({ masterData, ginLiveDatas })))\r\n ),\r\n takeUntil(this.onDestroy$)\r\n )\r\n .subscribe(({ masterData, ginLiveDatas }) => {\r\n if (!masterData || !ginLiveDatas) {\r\n this.displayDatas = [];\r\n return;\r\n }\r\n\r\n const ginConfigurations = masterData.ginConfigurations.filter((m) => m.detailViewOrder != null);\r\n\r\n const ginIds = ginConfigurations.map((m) => m.id);\r\n\r\n const ginLiveData = ginLiveDatas.filter((l) => ginIds.includes(l.id));\r\n\r\n this.displayDatas = ginConfigurations\r\n .map(\r\n (m) =>\r\n new GinDetailViewDisplayData(\r\n m,\r\n ginLiveData.find((l) => l.id === m.id)\r\n )\r\n )\r\n .sort((a, b) => a.order - b.order);\r\n });\r\n }\r\n\r\n trackByGinName(ginDatay: GinDetailViewDisplayData): string {\r\n return ginDatay.ginName;\r\n }\r\n}\r\n","\r\n
\r\n \r\n {{ 'general.term.measurementPoint' | translate }}\r\n \r\n
\r\n
\r\n\r\n \r\n \r\n {{ data.ginName }}\r\n {{ data.value }} \r\n {{ data.unit }}\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n {{ 'gin.term.platformName' | translate }}\r\n \r\n \r\n \r\n \r\n
\r\n","import { Component, Input, OnInit } from '@angular/core';\r\nimport { merge, of, Subject } from 'rxjs';\r\nimport { delay, switchMap, takeUntil } from 'rxjs/operators';\r\nimport { Unsubscriber } from 'src/app/core/unsubscriber';\r\nimport { Feature } from 'src/app/domain/feature/feature.model';\r\nimport { FeatureAccessLevel } from 'src/app/domain/feature/feature-access-level.model';\r\nimport { FeatureId } from 'src/app/domain/feature/feature-id.model';\r\nimport { RemoteAccess } from 'src/app/maps/domain/remote-access.model';\r\nimport { RemoteAccessStatusService } from 'src/app/maps/livedata/remote-access-status.service';\r\nimport { RemoteAccessService } from 'src/app/remote-access/remote-access.service';\r\n\r\n@Component({\r\n selector: 'sis-remote-access-detailview-item',\r\n templateUrl: './remote-access-detailview-item.component.html',\r\n styleUrls: ['./remote-access-detailview-item.component.scss'],\r\n standalone: false\r\n})\r\nexport class RemoteAccessDetailViewItemComponent extends Unsubscriber implements OnInit {\r\n private readonly blockedDuration: number = 5000;\r\n private blockStatus$ = new Subject();\r\n\r\n ready: boolean;\r\n blocked = false;\r\n statusIconName: string;\r\n statusClass: string;\r\n status: string;\r\n typeIconName: string;\r\n\r\n @Input() remoteAccess: RemoteAccess;\r\n\r\n constructor(\r\n private remoteAccessService: RemoteAccessService,\r\n private readonly remoteAccessStatusService: RemoteAccessStatusService\r\n ) {\r\n super();\r\n }\r\n\r\n ngOnInit(): void {\r\n this.blockStatus$\r\n .pipe(\r\n takeUntil(this.onDestroy$),\r\n switchMap((blocked) => {\r\n if (blocked) {\r\n return merge(of(true), of(false).pipe(delay(this.blockedDuration)));\r\n }\r\n return of(false);\r\n })\r\n )\r\n .subscribe((blocked) => (this.blocked = blocked));\r\n\r\n this.remoteAccessStatusService.remoteAccessStatuses$\r\n .pipe(takeUntil(this.onDestroy$))\r\n .subscribe((remoteAccessStatuses) => {\r\n if (remoteAccessStatuses?.find((d) => d.guid === this.remoteAccess.guid)?.online) {\r\n this.statusIconName = 'checkmark-circle';\r\n this.statusClass = 'sis-online';\r\n this.status = 'online';\r\n } else {\r\n this.statusIconName = 'close-circle';\r\n this.statusClass = 'sis-offline';\r\n this.status = 'offline';\r\n }\r\n\r\n this.ready = true;\r\n });\r\n\r\n switch (this.remoteAccess.type) {\r\n case 'PC':\r\n this.typeIconName = 'sis-computer';\r\n break;\r\n case 'Display':\r\n this.typeIconName = 'sis-screen';\r\n break;\r\n default:\r\n this.typeIconName = 'help-outline';\r\n }\r\n }\r\n\r\n async openRemoteAccess(remoteAccess: RemoteAccess): Promise {\r\n if (!this.blocked) {\r\n this.blockStatus$.next(true);\r\n const status = await this.remoteAccessService.openSession(\r\n remoteAccess,\r\n new Feature(FeatureId.COCKPIT_REMOTEACCESS, FeatureAccessLevel.WRITE)\r\n );\r\n this.blockStatus$.next(!status);\r\n }\r\n }\r\n}\r\n","\r\n \r\n \r\n \r\n \r\n \r\n {{ remoteAccess.name }}\r\n
Admin Only
\r\n
\r\n \r\n \r\n \r\n \r\n {{ this.status }}\r\n \r\n
\r\n","import { Component } from '@angular/core';\r\nimport { combineLatest, Observable } from 'rxjs';\r\nimport { map, startWith } from 'rxjs/operators';\r\nimport { LogbookModalService } from 'src/app/core/components/logbook/logbook-modal/logbook-modal.service';\r\nimport { FeatureId } from 'src/app/domain/feature/feature-id.model';\r\nimport { MasterdataService } from 'src/app/maps/domain/masterdata.service';\r\nimport { RemoteAccess } from 'src/app/maps/domain/remote-access.model';\r\nimport { SelectedMapElementService } from 'src/app/maps/selected-map-element.service';\r\n\r\n@Component({\r\n selector: 'sis-remote-access-detailview',\r\n templateUrl: './remote-access-detailview.component.html',\r\n styleUrls: ['./remote-access-detailview.component.scss'],\r\n standalone: false\r\n})\r\nexport class RemoteAccessDetailViewComponent {\r\n readonly logbookAvailable$ = this.logbookModalService.logbookAvailable$;\r\n\r\n readonly remoteAccesses$: Observable = combineLatest([\r\n this.selectedMapElementService.selectedRopeway$,\r\n this.masterDataService.masterData$,\r\n ]).pipe(\r\n map(([ropeway, masterData]) => {\r\n if (ropeway) {\r\n return ropeway.remoteAccesses.sort((a, b) => (a.name < b.name ? -1 : 1));\r\n } else {\r\n return masterData.remoteAccesses;\r\n }\r\n }),\r\n startWith([])\r\n );\r\n\r\n constructor(\r\n private logbookModalService: LogbookModalService,\r\n private masterDataService: MasterdataService,\r\n private selectedMapElementService: SelectedMapElementService\r\n ) {}\r\n\r\n async openLogbook(): Promise {\r\n await this.logbookModalService.presentLogbookModal([[FeatureId.COCKPIT_REMOTEACCESS]]);\r\n }\r\n}\r\n","\r\n \r\n \r\n \r\n\r\n","import { Component, OnInit } from '@angular/core';\r\nimport { TranslateService } from '@ngx-translate/core';\r\nimport moment from 'moment';\r\nimport {\r\n distinctUntilChanged,\r\n filter,\r\n map,\r\n Observable,\r\n ReplaySubject,\r\n switchMap,\r\n takeUntil,\r\n timer,\r\n withLatestFrom,\r\n} from 'rxjs';\r\nimport { EventBusService } from 'src/app/core/eventbus/event-bus.service';\r\nimport { RopewayAvailabilityTrendUpdatedEvent } from 'src/app/core/eventbus/events';\r\nimport { Unsubscriber } from 'src/app/core/unsubscriber';\r\nimport { ConfirmationDialogService } from 'src/app/core/utils/confirmation-dialog.service';\r\nimport { DestinationService } from 'src/app/domain/destination/destination.service';\r\nimport { Feature } from 'src/app/domain/feature/feature.model';\r\nimport { FeatureAccessLevel } from 'src/app/domain/feature/feature-access-level.model';\r\nimport { FeatureId } from 'src/app/domain/feature/feature-id.model';\r\nimport { UserSettingsService } from 'src/app/domain/user-settings/user-settings.service';\r\nimport { SelectedMapElementService } from 'src/app/maps/selected-map-element.service';\r\nimport { RopewayAvailabilityTrend } from 'src/app/maps/trenddata/ropeway-availability-trend.model';\r\nimport { RopewayAvailabilityTrendService } from 'src/app/maps/trenddata/ropeway-availability-trend.service';\r\nimport { RopewayAvailabilityTrendChartItem } from 'src/app/maps/widgets/detailviews/ropeway-availability-detailview/ropeway-availability-trend-chart-item.model';\r\nimport { UserMessage } from 'src/app/user-message/user-message.model';\r\nimport { UserMessageService } from 'src/app/user-message/user-message.service';\r\nimport { UserMessageColor } from 'src/app/user-message/user-message-color';\r\nimport { UserMessageIcon } from 'src/app/user-message/user-message-icon';\r\n\r\n@Component({\r\n selector: 'sis-ropeway-availability-detailview',\r\n templateUrl: './ropeway-availability-detailview.component.html',\r\n styleUrls: ['./ropeway-availability-detailview.component.scss'],\r\n standalone: false\r\n})\r\nexport class RopewayAvailabilityDetailViewComponent extends Unsubscriber implements OnInit {\r\n private static readonly requiredWriteFeature = new Feature(\r\n FeatureId.COCKPIT_ROPEWAY_AVAILABILITY,\r\n FeatureAccessLevel.WRITE\r\n );\r\n private readonly selectedTimespan$: ReplaySubject = new ReplaySubject(1);\r\n\r\n private readonly trendDataMonth$ = this.selectedMapElementService.selectedRopeway$.pipe(\r\n distinctUntilChanged(),\r\n filter((ropeway) => !!ropeway),\r\n switchMap((ropeway) =>\r\n this.ropewayAvailabilityTrendService.getAvailabilityLongtermTrendData(ropeway.sisId, 'month')\r\n ),\r\n map((data: RopewayAvailabilityTrend[]) => {\r\n this.loadingData = false;\r\n const trends: RopewayAvailabilityTrendChartItem[] = data.map((d) => {\r\n const tooltip = this.toRoundedString(d.availability * 100, 1) + '%';\r\n\r\n return {\r\n availability: d.availability,\r\n barHeightPercent: tooltip,\r\n barTooltip: tooltip,\r\n dateTooltip: `${this.translateService.instant('general.term.week')} ${d.week} ${d.year}`,\r\n shownDate: `${d.week}`,\r\n ignore: d.ignore,\r\n ignorable: false,\r\n date: d.date,\r\n };\r\n });\r\n\r\n return trends.sort((a, b) => (a.date < b.date ? -1 : 1));\r\n })\r\n );\r\n\r\n private readonly trendDataYear$ = this.selectedMapElementService.selectedRopeway$.pipe(\r\n distinctUntilChanged(),\r\n filter((ropeway) => !!ropeway),\r\n switchMap((ropeway) =>\r\n this.ropewayAvailabilityTrendService.getAvailabilityLongtermTrendData(ropeway.sisId, 'year')\r\n ),\r\n map((data: RopewayAvailabilityTrend[]) => {\r\n this.loadingData = false;\r\n\r\n const trends: RopewayAvailabilityTrendChartItem[] = data.map((d) => {\r\n const tooltip = this.toRoundedString(d.availability * 100, 1) + '%';\r\n\r\n return {\r\n availability: d.availability,\r\n barHeightPercent: tooltip,\r\n barTooltip: tooltip,\r\n dateTooltip: `${d.month}.${d.year}`,\r\n shownDate: `${d.month}`,\r\n ignore: d.ignore,\r\n ignorable: false,\r\n date: d.date,\r\n };\r\n });\r\n\r\n return trends.sort((a, b) => (a.date < b.date ? -1 : 1));\r\n })\r\n );\r\n\r\n private readonly trendDataWeek$ = this.selectedMapElementService.selectedRopeway$.pipe(\r\n distinctUntilChanged(),\r\n filter((ropeway) => !!ropeway),\r\n switchMap((ropeway) =>\r\n timer(0, 10000).pipe(\r\n switchMap(() => this.ropewayAvailabilityTrendService.getAvailabilityTrendData(ropeway.sisId)),\r\n map((data) => ({ data, ropeway }))\r\n )\r\n ),\r\n takeUntil(this.onDestroy$),\r\n map(({ data, ropeway }) => {\r\n this.loadingData = false;\r\n const trends: RopewayAvailabilityTrendChartItem[] = [];\r\n\r\n const today = new Date();\r\n\r\n for (let i = 6; i >= 0; i--) {\r\n const d = new Date();\r\n d.setDate(today.getDate() - i);\r\n const timezoneOffset = d.getTimezoneOffset();\r\n\r\n const day = new Date(\r\n Date.UTC(today.getUTCFullYear(), today.getUTCMonth(), today.getUTCDate() - i, 0, timezoneOffset)\r\n );\r\n\r\n const dataForDay = data?.find((d) => this.isSameDay(d.date, day));\r\n if (dataForDay) {\r\n const availabilityPercent = this.toRoundedString(dataForDay.availability * 100, 1) + '%';\r\n let tooltip = availabilityPercent;\r\n if (dataForDay.ignore) {\r\n tooltip += ` [${this.translateService.instant('ropewayAvailability.phrase.ignored')}]`;\r\n }\r\n\r\n trends.push({\r\n ropewaySisId: dataForDay.ropewaySisId,\r\n tenantSisId: dataForDay.tenantSisId,\r\n availability: dataForDay.availability,\r\n barHeightPercent: availabilityPercent,\r\n barTooltip: tooltip,\r\n dateTooltip: moment(dataForDay.date).format('DD.MM.YYYY'),\r\n shownDate: moment(dataForDay.date).format('DD.MM.'),\r\n ignore: dataForDay.ignore,\r\n ignorable: ropeway.isRopewayOwner,\r\n date: dataForDay.date,\r\n });\r\n } else {\r\n trends.push({\r\n availability: null,\r\n barHeightPercent: '100%',\r\n barTooltip: '?',\r\n dateTooltip: moment(day).format('DD.MM.YYYY'),\r\n shownDate: moment(day).format('DD.MM.'),\r\n ignore: true,\r\n ignorable: ropeway.isRopewayOwner,\r\n date: day,\r\n });\r\n }\r\n }\r\n\r\n return trends;\r\n })\r\n );\r\n\r\n private readonly shownTrendData$: Observable = this.selectedTimespan$.pipe(\r\n switchMap((timespan) => {\r\n if (timespan === 'week') {\r\n return this.trendDataWeek$;\r\n }\r\n if (timespan === 'month') {\r\n return this.trendDataMonth$;\r\n }\r\n if (timespan === 'year') {\r\n return this.trendDataYear$;\r\n }\r\n })\r\n );\r\n\r\n readonly timespanSelectors = [\r\n { value: 'week', translationString: 'general.term.week' },\r\n { value: 'month', translationString: 'general.term.month' },\r\n { value: 'year', translationString: 'general.term.year' },\r\n ];\r\n\r\n loadingData: boolean = true;\r\n noData: boolean = false;\r\n meanValue: number;\r\n meanValuePercent: string;\r\n chartBarWidth: number;\r\n\r\n trends: RopewayAvailabilityTrendChartItem[] = [];\r\n writePermission: boolean;\r\n\r\n constructor(\r\n private ropewayAvailabilityTrendService: RopewayAvailabilityTrendService,\r\n private selectedMapElementService: SelectedMapElementService,\r\n private confirmationDialogService: ConfirmationDialogService,\r\n private eventBusService: EventBusService,\r\n private userSettingsService: UserSettingsService,\r\n private userMessageService: UserMessageService,\r\n private destinationService: DestinationService,\r\n private translateService: TranslateService\r\n ) {\r\n super();\r\n }\r\n\r\n ngOnInit(): void {\r\n this.selectedTimespan$.next('week');\r\n\r\n this.shownTrendData$.pipe(takeUntil(this.onDestroy$)).subscribe((data) => {\r\n if (!data || data.length === 0) {\r\n this.noData = true;\r\n } else {\r\n this.noData = false;\r\n this.trends = data;\r\n this.chartBarWidth = (320 - (this.trends.length + 1) * 5) / this.trends.length;\r\n }\r\n\r\n this.calculateMeanValue();\r\n });\r\n\r\n this.eventBusService\r\n .observe(RopewayAvailabilityTrendUpdatedEvent)\r\n .pipe(withLatestFrom(this.userSettingsService.userSettings$), takeUntil(this.onDestroy$))\r\n .subscribe(async ([updatedEvent, userSettings]) => {\r\n if (userSettings.userGuid === updatedEvent.changedBy) {\r\n const message = updatedEvent.updateSuccessful ? 'general.phrase.saved' : 'general.phrase.saveFailed';\r\n const icon = updatedEvent.updateSuccessful ? UserMessageIcon.success : UserMessageIcon.failed;\r\n const color = updatedEvent.updateSuccessful ? UserMessageColor.green : UserMessageColor.red;\r\n this.userMessageService.presentToast(\r\n new UserMessage({ message, icon, durationMs: 2000, position: 'top', color })\r\n );\r\n }\r\n\r\n if (updatedEvent.updateSuccessful) {\r\n const updatedTrend = this.trends.find(\r\n (t) =>\r\n t.ropewaySisId === updatedEvent.ropewaySisId &&\r\n t.tenantSisId === updatedEvent.tenantSisId &&\r\n t.date.toISOString() === updatedEvent.date\r\n );\r\n if (updatedTrend) {\r\n updatedTrend.ignore = updatedEvent.ignore;\r\n let tooltip = this.toRoundedString(updatedTrend.availability * 100, 1) + '%';\r\n if (updatedTrend.ignore) {\r\n tooltip += ` [${this.translateService.instant('ropewayAvailability.phrase.ignored')}]`;\r\n }\r\n updatedTrend.barTooltip = tooltip;\r\n\r\n this.calculateMeanValue();\r\n }\r\n }\r\n });\r\n\r\n this.destinationService.selectedTenantFeatures$.pipe(takeUntil(this.onDestroy$)).subscribe((features) => {\r\n this.writePermission =\r\n features.some((f) => f.hasMinimumRequirementFor(RopewayAvailabilityDetailViewComponent.requiredWriteFeature)) ??\r\n false;\r\n });\r\n }\r\n\r\n async openIgnoreDialog(trend: RopewayAvailabilityTrendChartItem): Promise {\r\n if (trend.availability !== null && this.writePermission) {\r\n const confirmText = trend.ignore\r\n ? 'ropewayAvailability.phrase.includeTrend'\r\n : 'ropewayAvailability.phrase.ignoreTrend';\r\n const confirmed = await this.confirmationDialogService.presentAlert(confirmText, 'general.term.yes');\r\n\r\n if (confirmed) {\r\n trend.ignore = !trend.ignore;\r\n\r\n await this.ropewayAvailabilityTrendService.postIgnore(\r\n trend.tenantSisId,\r\n trend.ropewaySisId,\r\n trend.date.toISOString(),\r\n trend.ignore\r\n );\r\n }\r\n }\r\n }\r\n\r\n selectTimespan(timespan: string): void {\r\n this.trends = [];\r\n this.noData = false;\r\n this.loadingData = true;\r\n this.selectedTimespan$.next(timespan);\r\n }\r\n\r\n private calculateMeanValue(): void {\r\n const relevantTrendData = this.trends.filter((a) => !a.ignore);\r\n this.meanValue =\r\n relevantTrendData.reduce((sum, current) => (sum += current.availability), 0) / relevantTrendData.length;\r\n this.meanValuePercent = this.toRoundedString(this.meanValue * 100, 1) + '%';\r\n }\r\n\r\n private isSameDay(d1: Date, d2: Date): boolean {\r\n return (\r\n d1.getUTCDate() === d2.getUTCDate() &&\r\n d1.getUTCMonth() === d2.getUTCMonth() &&\r\n d1.getUTCFullYear() === d2.getUTCFullYear()\r\n );\r\n }\r\n\r\n private toRoundedString(value: number, decimals: number): string {\r\n return Number.parseFloat(value.toFixed(decimals)).toString();\r\n }\r\n}\r\n","
{{ 'general.term.ropewayAvailability' | translate }}
\r\n\r\n {{\r\n timespan.translationString | translate\r\n }}\r\n\r\n\r\n
\r\n
{{ 'analytics.phrase.dataLoading' | translate }}
\r\n
{{ 'analytics.phrase.dataNone' | translate }}
\r\n
\r\n
\r\n
100%
\r\n
\r\n
3 ? 'block' : 'none'\" class=\"sis-y-item\">0%
\r\n
\r\n\r\n
\r\n
\r\n
\r\n \r\n
{{ this.meanValuePercent }}
\r\n
\r\n
\r\n
\r\n {{ trend.shownDate }}\r\n \r\n
\r\n
\r\n \r\n\r\n","import { Component, Input } from '@angular/core';\r\nimport { ModalController } from '@ionic/angular';\r\nimport { map, Observable } from 'rxjs';\r\nimport { DestinationService } from 'src/app/domain/destination/destination.service';\r\nimport { Feature } from 'src/app/domain/feature/feature.model';\r\nimport { FeatureAccessLevel } from 'src/app/domain/feature/feature-access-level.model';\r\nimport { FeatureId } from 'src/app/domain/feature/feature-id.model';\r\nimport { RopewayBrakeReport } from 'src/app/maps/domain/ropeway-brakereport/ropeway-brakereport.model';\r\nimport { RopewayBrakeReportPdfModal } from 'src/app/maps/widgets/detailviews/ropeway-brakereport-detailview/ropeway-brakereport-pdf-modal/ropeway-brakereport-pdf-modal.component';\r\n\r\n@Component({\r\n selector: 'sis-ropeway-brakereport-detailview-row',\r\n templateUrl: './ropeway-brakereport-detailview-row.component.html',\r\n styleUrls: ['./ropeway-brakereport-detailview-row.component.scss'],\r\n standalone: false,\r\n})\r\nexport class RopewayBrakeReportRowComponent {\r\n private readonly requiredWriteFeature = new Feature(FeatureId.COCKPIT_ROPEWAY_BRAKEREPORT, FeatureAccessLevel.WRITE);\r\n\r\n @Input() ropewayBrakeReport: RopewayBrakeReport;\r\n\r\n showUploadIcon: boolean;\r\n\r\n readonly hasWritePermission$: Observable = this.destinationService.selectedTenantFeatures$.pipe(\r\n map((features) => features.some((feature) => feature.hasMinimumRequirementFor(this.requiredWriteFeature)))\r\n );\r\n\r\n constructor(private modalCtrl: ModalController, private destinationService: DestinationService) {}\r\n\r\n async openPdfModal(): Promise {\r\n const modal = await this.modalCtrl.create({\r\n component: RopewayBrakeReportPdfModal,\r\n componentProps: {\r\n brakeReport: this.ropewayBrakeReport,\r\n },\r\n cssClass: 'sis-ropeway-brakereport-pdf-modal',\r\n });\r\n await modal.present();\r\n }\r\n}\r\n","\r\n \r\n
\r\n \r\n {{ ropewayBrakeReport.recording }}\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 } from '@angular/core';\r\nimport { map } from 'rxjs';\r\nimport { RopewayBrakeReportService } from 'src/app/maps/domain/ropeway-brakereport/ropeway-brakereport.service';\r\n\r\n@Component({\r\n selector: 'sis-ropeway-brakereport-detailview',\r\n templateUrl: './ropeway-brakereport-detailview.component.html',\r\n styleUrls: ['./ropeway-brakereport-detailview.component.scss'],\r\n standalone: false,\r\n})\r\nexport class RopewayBrakeReportDetailViewComponent {\r\n readonly ropewayBrakeReports$ = this.brakeReportService.ropewayBrakeReports$;\r\n\r\n readonly timestamp$ = this.ropewayBrakeReports$.pipe(\r\n map((brakeReports) =>\r\n brakeReports.length > 0\r\n ? new Date(brakeReports.map((m) => m.gatewayTimestamp.getTime()).reduce((a, b) => Math.max(a, b), 0))\r\n : undefined\r\n )\r\n );\r\n\r\n constructor(private brakeReportService: RopewayBrakeReportService) {}\r\n}\r\n","
\r\n \r\n \r\n

{{ 'ropewayBrakeReport.term.brakeReports' | translate }}

\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 {{ 'general.phrase.lastUpdate' | translate }}\r\n \r\n \r\n \r\n {{ timestamp | date : 'dd.MM.yyyy HH:mm' }}\r\n \r\n \r\n \r\n \r\n Sambesi \r\n \r\n \r\n \r\n
\r\n","// eslint-disable-next-line simple-import-sort/imports\r\nimport { Buffer } from 'buffer';\r\nimport { HttpClient } from '@angular/common/http';\r\nimport { Component, Input, OnInit } from '@angular/core';\r\nimport { ModalController } from '@ionic/angular';\r\nimport { catchError, map, Observable, of, take, takeUntil } from 'rxjs';\r\nimport { Unsubscriber } from 'src/app/core/unsubscriber';\r\nimport { RopewayBrakeReport } from 'src/app/maps/domain/ropeway-brakereport/ropeway-brakereport.model';\r\nimport { environment } from 'src/environments/environment';\r\nimport { DomSanitizer, SafeResourceUrl } from '@angular/platform-browser';\r\n\r\n@Component({\r\n selector: 'sis-ropeway-brakereport-pdf-modal',\r\n templateUrl: './ropeway-brakereport-pdf-modal.component.html',\r\n standalone: false,\r\n})\r\nexport class RopewayBrakeReportPdfModal extends Unsubscriber implements OnInit {\r\n @Input() brakeReport: RopewayBrakeReport;\r\n\r\n pdfUrl: SafeResourceUrl;\r\n\r\n constructor(private modalCtrl: ModalController, private http: HttpClient, private sanitizer: DomSanitizer) {\r\n super();\r\n }\r\n\r\n ngOnInit(): void {\r\n this.requestSasToken()\r\n .pipe(\r\n map(\r\n (sasToken) =>\r\n `${environment.baseUrlRopewayReportBlobStorage}/brakereport/${this.brakeReport.pdfFileName}${sasToken}&response-content-disposition=inline`\r\n ),\r\n take(1),\r\n takeUntil(this.onDestroy$)\r\n )\r\n .subscribe((url) => (this.pdfUrl = this.sanitizer.bypassSecurityTrustResourceUrl(url)));\r\n }\r\n\r\n close(): void {\r\n this.modalCtrl.dismiss();\r\n }\r\n\r\n private requestSasToken(): Observable {\r\n const pdfFileNameEncoded = Buffer.from(this.brakeReport.pdfFileName, 'utf8').toString('base64');\r\n const cacheBuster = Math.random() * 10000;\r\n const url = `${environment.baseUrlApi}/ropewaybrakereport/blobstorage/${pdfFileNameEncoded}?${cacheBuster}`;\r\n return this.http.get(url).pipe(\r\n catchError(() => of(null)),\r\n map((sas) => (sas ? sas.toString() : null)),\r\n take(1)\r\n );\r\n }\r\n}\r\n","\r\n \r\n \r\n {{ brakeReport.fileName }}\r\n \r\n \r\n \r\n\r\n\r\n\r\n
\r\n \r\n
\r\n
\r\n","import { TranslateService } from '@ngx-translate/core';\r\nimport { map, Observable, of, switchMap } from 'rxjs';\r\nimport { Ropeway } from 'src/app/maps/domain/ropeway.model';\r\nimport { RopewayEcoModeTrend } from 'src/app/maps/trenddata/ropeway-ecomode-trend.model';\r\nimport { RopewayEcoModeTrendService } from 'src/app/maps/trenddata/ropeway-ecomode-trend.service';\r\nimport { ChartAdapter } from 'src/app/maps/widgets/charts/chart-adapter';\r\nimport { ChartSettingsService } from 'src/app/maps/widgets/charts/chart-settings.service';\r\nimport { ChartSelector } from 'src/app/maps/widgets/detailviews/ropeway-ecomode-detailview/modal/ecomode-chart/chart-selector.model';\r\nimport { EcoModeChartHandler } from 'src/app/maps/widgets/detailviews/ropeway-ecomode-detailview/modal/ecomode-chart/ecomode-chart-handler';\r\n\r\nexport class EcoModeActivatedCockpitHandler extends EcoModeChartHandler {\r\n private static readonly speedTranslateString = 'ecomode.term.ecoModeActivatedCockpit';\r\n private static readonly onTranslateString = 'general.term.on';\r\n private static readonly offTranslateString = 'general.term.off';\r\n private static readonly trendColor = '#1395b9ff';\r\n\r\n private seriesName: string;\r\n private offText: string;\r\n private onText: string;\r\n\r\n constructor(\r\n protected chartSettingsService: ChartSettingsService,\r\n protected chartAdapter: ChartAdapter,\r\n private ropewayEcoModeTrendService: RopewayEcoModeTrendService,\r\n translateService: TranslateService,\r\n ropeway: Ropeway,\r\n yAxisUnits: string[]\r\n ) {\r\n super(chartSettingsService, chartAdapter, translateService, ropeway, yAxisUnits);\r\n\r\n this.seriesId = ropeway.sisId + 'ecoModeActivatedCockpit';\r\n this.seriesName = translateService.instant(EcoModeActivatedCockpitHandler.speedTranslateString);\r\n this.offText = translateService.instant(EcoModeActivatedCockpitHandler.offTranslateString);\r\n this.onText = translateService.instant(EcoModeActivatedCockpitHandler.onTranslateString);\r\n }\r\n\r\n seriesObservable(): Observable> {\r\n return this.chartSettingsService.getRopewaySetting(this.ropeway.sisId, this.seriesId).pipe(\r\n switchMap((enabled) => {\r\n if (enabled) {\r\n const offText = this.offText;\r\n const onText = this.onText;\r\n this.chartAdapter.addSeries(this.seriesId, {\r\n name: this.seriesName,\r\n id: this.seriesId,\r\n type: 'line' as any,\r\n step: 'left',\r\n lineWidth: 1,\r\n className: '',\r\n tooltip: {\r\n pointFormatter() {\r\n const marker = `\\u25CF`;\r\n const valueText = this.y === 0 ? offText : onText;\r\n return `${marker} ${this.series.name}: ${valueText}`;\r\n },\r\n },\r\n color: EcoModeActivatedCockpitHandler.trendColor,\r\n yAxis: this.yAxisUnits.indexOf('bool'),\r\n });\r\n\r\n return this.chartAdapter\r\n .loadData([this.ropewayEcoModeTrendService.getEcoModeData(this.ropeway.sisId)])\r\n .pipe(map((data) => [{ seriesId: this.seriesId, data: this.getData(data[0]) }]));\r\n } else {\r\n this.chartAdapter.removeSeries(this.seriesId);\r\n return of([{ seriesId: this.seriesId, data: null }]);\r\n }\r\n })\r\n );\r\n }\r\n\r\n getChartSelectors(): ChartSelector[] {\r\n return [\r\n {\r\n setting: this.seriesId,\r\n titleStrings: [EcoModeActivatedCockpitHandler.speedTranslateString],\r\n ropewaySisId: this.ropeway.sisId,\r\n selected$: this.chartSettingsService.getRopewaySetting(this.ropeway.sisId, this.seriesId),\r\n },\r\n ];\r\n }\r\n\r\n private getData(data: RopewayEcoModeTrend[]): number[][] {\r\n return (\r\n data\r\n ?.map((item) => {\r\n const timeStampInMs = item.timestamp.getTime();\r\n return [timeStampInMs, item.ecoModeActivatedCockpit ? 1 : 0];\r\n })\r\n .sort((i1, i2) => i1[0] - i2[0]) ?? []\r\n );\r\n }\r\n}\r\n","import { TranslateService } from '@ngx-translate/core';\r\nimport { map, Observable, of, switchMap } from 'rxjs';\r\nimport { Ropeway } from 'src/app/maps/domain/ropeway.model';\r\nimport { RopewayEcoModeTrend } from 'src/app/maps/trenddata/ropeway-ecomode-trend.model';\r\nimport { RopewayEcoModeTrendService } from 'src/app/maps/trenddata/ropeway-ecomode-trend.service';\r\nimport { ChartAdapter } from 'src/app/maps/widgets/charts/chart-adapter';\r\nimport { ChartSettingsService } from 'src/app/maps/widgets/charts/chart-settings.service';\r\nimport { ChartSelector } from 'src/app/maps/widgets/detailviews/ropeway-ecomode-detailview/modal/ecomode-chart/chart-selector.model';\r\nimport { EcoModeChartHandler } from 'src/app/maps/widgets/detailviews/ropeway-ecomode-detailview/modal/ecomode-chart/ecomode-chart-handler';\r\n\r\nexport class EcoModeActualSpeedHandler extends EcoModeChartHandler {\r\n private static readonly speedTranslateString = 'ecomode.term.actualSpeed';\r\n private static readonly trendColor = '#d30000ff';\r\n\r\n private seriesName: string;\r\n\r\n constructor(\r\n protected chartSettingsService: ChartSettingsService,\r\n protected chartAdapter: ChartAdapter,\r\n private ropewayEcoModeTrendService: RopewayEcoModeTrendService,\r\n translateService: TranslateService,\r\n ropeway: Ropeway,\r\n yAxisUnits: string[]\r\n ) {\r\n super(chartSettingsService, chartAdapter, translateService, ropeway, yAxisUnits);\r\n\r\n this.seriesId = ropeway.sisId + 'actualSpeedMps';\r\n this.seriesName = translateService.instant(EcoModeActualSpeedHandler.speedTranslateString);\r\n }\r\n\r\n seriesObservable(): Observable> {\r\n return this.chartSettingsService.getRopewaySetting(this.ropeway.sisId, this.seriesId).pipe(\r\n switchMap((enabled) => {\r\n if (enabled) {\r\n this.chartAdapter.addSeries(this.seriesId, {\r\n name: this.seriesName,\r\n id: this.seriesId,\r\n type: 'line' as any,\r\n step: 'left',\r\n lineWidth: 1,\r\n className: '',\r\n tooltip: {\r\n valueSuffix: ' m/s',\r\n },\r\n color: EcoModeActualSpeedHandler.trendColor,\r\n yAxis: this.yAxisUnits.indexOf('m/s'),\r\n });\r\n\r\n return this.chartAdapter\r\n .loadData([this.ropewayEcoModeTrendService.getEcoModeData(this.ropeway.sisId)])\r\n .pipe(map((data) => [{ seriesId: this.seriesId, data: this.getData(data[0]) }]));\r\n } else {\r\n this.chartAdapter.removeSeries(this.seriesId);\r\n return of([{ seriesId: this.seriesId, data: null }]);\r\n }\r\n })\r\n );\r\n }\r\n\r\n getChartSelectors(): ChartSelector[] {\r\n return [\r\n {\r\n setting: this.seriesId,\r\n titleStrings: [EcoModeActualSpeedHandler.speedTranslateString],\r\n ropewaySisId: this.ropeway.sisId,\r\n selected$: this.chartSettingsService.getRopewaySetting(this.ropeway.sisId, this.seriesId),\r\n },\r\n ];\r\n }\r\n\r\n private getData(data: RopewayEcoModeTrend[]): number[][] {\r\n return (\r\n data\r\n ?.map((item) => {\r\n const timeStampInMs = item.timestamp.getTime();\r\n return [timeStampInMs, Math.round(item.actualSpeedMps * 10) / 10];\r\n })\r\n .sort((i1, i2) => i1[0] - i2[0]) ?? []\r\n );\r\n }\r\n}\r\n","import { TranslateService } from '@ngx-translate/core';\r\nimport { Observable } from 'rxjs';\r\nimport { Ropeway } from 'src/app/maps/domain/ropeway.model';\r\nimport { ChartAdapter } from 'src/app/maps/widgets/charts/chart-adapter';\r\nimport { ChartSettingsService } from 'src/app/maps/widgets/charts/chart-settings.service';\r\nimport { ChartSelector } from 'src/app/maps/widgets/detailviews/ropeway-ecomode-detailview/modal/ecomode-chart/chart-selector.model';\r\n\r\nexport abstract class EcoModeChartHandler {\r\n seriesId: string;\r\n\r\n abstract seriesObservable(): Observable>;\r\n\r\n abstract getChartSelectors(): ChartSelector[];\r\n\r\n constructor(\r\n protected chartSettingsService: ChartSettingsService,\r\n protected chartAdapter: ChartAdapter,\r\n protected translateService: TranslateService,\r\n protected ropeway: Ropeway,\r\n protected yAxisUnits: string[]\r\n ) {}\r\n}\r\n","import { ChangeDetectorRef, Component, OnInit } from '@angular/core';\r\nimport { ModalController } from '@ionic/angular';\r\nimport { TranslateService } from '@ngx-translate/core';\r\nimport { Options } from 'highcharts';\r\nimport { merge } from 'rxjs';\r\nimport { distinctUntilChanged, filter, switchMap, take, takeUntil } from 'rxjs/operators';\r\nimport { TimeFormatService } from 'src/app/core/utils/time-format.service';\r\nimport { Ropeway } from 'src/app/maps/domain/ropeway.model';\r\nimport { SelectedMapElementService } from 'src/app/maps/selected-map-element.service';\r\nimport { RopewayEcoModeTrendService } from 'src/app/maps/trenddata/ropeway-ecomode-trend.service';\r\nimport { ChartBase } from 'src/app/maps/widgets/charts/chart-base';\r\nimport { ChartSettings } from 'src/app/maps/widgets/charts/chart-settings.model';\r\nimport { ChartSettingsService } from 'src/app/maps/widgets/charts/chart-settings.service';\r\nimport { ChartSelector } from 'src/app/maps/widgets/charts/ropeway-chart/chart-selector.model';\r\nimport { EcoModeActivatedCockpitHandler } from 'src/app/maps/widgets/detailviews/ropeway-ecomode-detailview/modal/ecomode-chart/ecomode-activated-cockpit-handler';\r\nimport { EcoModeActualSpeedHandler } from 'src/app/maps/widgets/detailviews/ropeway-ecomode-detailview/modal/ecomode-chart/ecomode-actual-speed-handler';\r\nimport { EcoModeChartHandler } from 'src/app/maps/widgets/detailviews/ropeway-ecomode-detailview/modal/ecomode-chart/ecomode-chart-handler';\r\nimport { EcoModeEnabledPLCHandler } from 'src/app/maps/widgets/detailviews/ropeway-ecomode-detailview/modal/ecomode-chart/ecomode-enabled-plc-handler';\r\nimport { EcoModeEnergyHandler } from 'src/app/maps/widgets/detailviews/ropeway-ecomode-detailview/modal/ecomode-chart/ecomode-energy-handler';\r\nimport { EcoModePeoplePerMinuteHandler } from 'src/app/maps/widgets/detailviews/ropeway-ecomode-detailview/modal/ecomode-chart/ecomode-people-per-minute-handler';\r\nimport { EcoModeTargetSpeedHandler } from 'src/app/maps/widgets/detailviews/ropeway-ecomode-detailview/modal/ecomode-chart/ecomode-target-speed-handler';\r\nimport { EcoModeVehicleCountHandler } from 'src/app/maps/widgets/detailviews/ropeway-ecomode-detailview/modal/ecomode-chart/ecomode-vehicle-count-handler';\r\nimport { EcoModeWorkloadHandler } from 'src/app/maps/widgets/detailviews/ropeway-ecomode-detailview/modal/ecomode-chart/ecomode-workload-handler';\r\n\r\n@Component({\r\n selector: 'sis-ecomode-chart',\r\n templateUrl: './ecomode-chart.component.html',\r\n styleUrls: ['./ecomode-chart.component.scss'],\r\n standalone: false\r\n})\r\nexport class EcoModeChartComponent extends ChartBase implements OnInit {\r\n private static readonly onTranslateString = 'general.term.on';\r\n private static readonly offTranslateString = 'general.term.off';\r\n\r\n private readonly ropeway$ = this.chartAdapter.chartReady$.pipe(\r\n take(1),\r\n switchMap(() => this.selectedMapElementService.selectedRopeway$)\r\n );\r\n\r\n private readonly yAxisUnits = ['m/s', '%', 'kw', 'ppm', 'bool'];\r\n private onText: string;\r\n private offText: string;\r\n\r\n dataSelectionOpen: boolean = true;\r\n chartSelectors: ChartSelector[] = [];\r\n private availableCharts: EcoModeChartHandler[] = [];\r\n\r\n constructor(\r\n private modalCtrl: ModalController,\r\n private chartSettingsService: ChartSettingsService,\r\n private selectedMapElementService: SelectedMapElementService,\r\n private ropewayEcoModeTrendService: RopewayEcoModeTrendService,\r\n timeFormatService: TimeFormatService,\r\n private translateService: TranslateService,\r\n chartSettings: ChartSettings,\r\n private cdr: ChangeDetectorRef\r\n ) {\r\n super(translateService, chartSettings?.inModal, timeFormatService);\r\n\r\n this.minY = null;\r\n }\r\n\r\n ngOnInit(): void {\r\n this.ropeway$\r\n .pipe(\r\n distinctUntilChanged(),\r\n filter((ropeway) => !!ropeway),\r\n switchMap((ropeway) => {\r\n this.title = ropeway.alias;\r\n this.initChart(ropeway);\r\n this.chartAdapter.showLoading();\r\n\r\n this.availableCharts = [\r\n new EcoModeActualSpeedHandler(\r\n this.chartSettingsService,\r\n this.chartAdapter,\r\n this.ropewayEcoModeTrendService,\r\n this.translateService,\r\n ropeway,\r\n this.yAxisUnits\r\n ),\r\n new EcoModeTargetSpeedHandler(\r\n this.chartSettingsService,\r\n this.chartAdapter,\r\n this.ropewayEcoModeTrendService,\r\n this.translateService,\r\n ropeway,\r\n this.yAxisUnits\r\n ),\r\n new EcoModeEnergyHandler(\r\n this.chartSettingsService,\r\n this.chartAdapter,\r\n this.ropewayEcoModeTrendService,\r\n this.translateService,\r\n ropeway,\r\n this.yAxisUnits\r\n ),\r\n new EcoModeActivatedCockpitHandler(\r\n this.chartSettingsService,\r\n this.chartAdapter,\r\n this.ropewayEcoModeTrendService,\r\n this.translateService,\r\n ropeway,\r\n this.yAxisUnits\r\n ),\r\n new EcoModeEnabledPLCHandler(\r\n this.chartSettingsService,\r\n this.chartAdapter,\r\n this.ropewayEcoModeTrendService,\r\n this.translateService,\r\n ropeway,\r\n this.yAxisUnits\r\n ),\r\n new EcoModePeoplePerMinuteHandler(\r\n this.chartSettingsService,\r\n this.chartAdapter,\r\n this.ropewayEcoModeTrendService,\r\n this.translateService,\r\n ropeway,\r\n this.yAxisUnits\r\n ),\r\n new EcoModeVehicleCountHandler(\r\n this.chartSettingsService,\r\n this.chartAdapter,\r\n this.ropewayEcoModeTrendService,\r\n this.translateService,\r\n ropeway,\r\n this.yAxisUnits\r\n ),\r\n new EcoModeWorkloadHandler(\r\n this.chartSettingsService,\r\n this.chartAdapter,\r\n this.ropewayEcoModeTrendService,\r\n this.translateService,\r\n ropeway,\r\n this.yAxisUnits\r\n ),\r\n ];\r\n this.chartSelectors = this.availableCharts.map((c) => c.getChartSelectors()).flat(1);\r\n\r\n return merge(...this.availableCharts.map((c) => c.seriesObservable()));\r\n }),\r\n takeUntil(this.onDestroy$)\r\n )\r\n .subscribe((seriesDatas: Array<{ seriesId: string; data: number[][] }>) => {\r\n seriesDatas.forEach((series) => {\r\n this.updateChart(series.seriesId, series.data);\r\n });\r\n });\r\n }\r\n\r\n async toggleSetting(ropewaySisId: string, setting: string): Promise {\r\n await this.chartSettingsService.toggleRopewaySetting(ropewaySisId, setting);\r\n }\r\n\r\n private initChart(ropeway: Ropeway): void {\r\n this.deviceAlias = ropeway.alias;\r\n this.updateTitle();\r\n\r\n this.updateModalTitle();\r\n\r\n this.chartAdapter.showLoading();\r\n this.chartAdapter.removeAllSeries();\r\n this.chartAdapter.reflowChart(this.onDestroy$);\r\n this.cdr.detectChanges();\r\n }\r\n\r\n private updateChart(seriesId: string, data: number[][]): void {\r\n this.chartAdapter.hideLoading();\r\n this.chartAdapter.setSeriesData(seriesId, data);\r\n\r\n if (!this.isZoomed) {\r\n this.chartAdapter.setXAxisExtremes(0, null, null);\r\n }\r\n\r\n if (this.isZoomed && this.isZoomedToEnd) {\r\n this.chartAdapter.setXAxisExtremes(0, this.zoomMin, null);\r\n }\r\n }\r\n\r\n async toggleForecast(e: PointerEvent): Promise {\r\n e.stopPropagation();\r\n this.chartSettingsService.toggleForecast();\r\n }\r\n\r\n resetZoom(): void {\r\n this.chartAdapter.zoomOut();\r\n }\r\n\r\n close(): void {\r\n this.modalCtrl.dismiss();\r\n }\r\n\r\n // eslint-disable-next-line @typescript-eslint/no-unused-vars\r\n protected override translateTexts(translateService: TranslateService): void {\r\n translateService\r\n .get([EcoModeChartComponent.onTranslateString, EcoModeChartComponent.offTranslateString])\r\n .pipe(take(1))\r\n .subscribe((res) => {\r\n this.onText = res[EcoModeChartComponent.onTranslateString];\r\n this.offText = res[EcoModeChartComponent.offTranslateString];\r\n });\r\n }\r\n\r\n protected getChartOptions(): Options {\r\n const onText = this.onText;\r\n const offText = this.offText;\r\n return {\r\n time: {\r\n useUTC: false,\r\n timezoneOffset: new Date().getTimezoneOffset(),\r\n },\r\n legend: {\r\n enabled: true,\r\n },\r\n navigation: {\r\n buttonOptions: {\r\n enabled: false,\r\n },\r\n },\r\n xAxis: {\r\n type: 'datetime',\r\n crosshair: true,\r\n tickInterval: 1 * 60 * 60 * 1000, // 1 hours in ms\r\n events: {\r\n setExtremes: this.handleSetExtremesEvent.bind(this),\r\n },\r\n },\r\n chart: {\r\n zoomType: 'xy',\r\n panKey: 'ctrl',\r\n alignTicks: false,\r\n panning: {\r\n enabled: true,\r\n },\r\n animation: false,\r\n style: {\r\n fontFamily: 'Myriad Pro',\r\n },\r\n resetZoomButton: {\r\n theme: {\r\n stroke: 'var(--ion-color-primary)',\r\n height: 8,\r\n },\r\n position: {\r\n y: -10000,\r\n },\r\n },\r\n },\r\n yAxis: [\r\n {\r\n title: {\r\n text: `[m/s]`,\r\n align: 'high',\r\n offset: 10,\r\n rotation: 0,\r\n y: -15,\r\n style: {\r\n fontSize: '12px',\r\n },\r\n },\r\n lineWidth: 1,\r\n tickInterval: 1,\r\n labels: {\r\n style: {\r\n fontSize: '12px',\r\n },\r\n },\r\n min: 0,\r\n softMax: 6,\r\n gridLineWidth: 0,\r\n showEmpty: false,\r\n },\r\n {\r\n title: {\r\n text: `[%]`,\r\n align: 'high',\r\n offset: 25,\r\n rotation: 0,\r\n y: -15,\r\n x: 10,\r\n style: {\r\n fontSize: '12px',\r\n },\r\n },\r\n lineWidth: 1,\r\n labels: {\r\n y: 5,\r\n style: {\r\n fontSize: '12px',\r\n },\r\n },\r\n softMin: 0,\r\n softMax: 100,\r\n maxPadding: 0.08,\r\n endOnTick: false,\r\n gridLineWidth: 0,\r\n tickInterval: 20,\r\n showEmpty: false,\r\n },\r\n {\r\n title: {\r\n text: `[kW]`,\r\n align: 'high',\r\n offset: 15,\r\n rotation: 0,\r\n y: -15,\r\n x: 7,\r\n style: {\r\n fontSize: '12px',\r\n },\r\n },\r\n lineWidth: 1,\r\n tickInterval: 20,\r\n labels: {\r\n style: {\r\n fontSize: '12px',\r\n },\r\n },\r\n min: 0,\r\n softMax: 100,\r\n gridLineWidth: 0,\r\n showEmpty: false,\r\n },\r\n {\r\n title: {\r\n text: `[ppm]`,\r\n align: 'high',\r\n offset: 10,\r\n rotation: 0,\r\n y: -15,\r\n x: 7,\r\n style: {\r\n fontSize: '12px',\r\n },\r\n },\r\n lineWidth: 1,\r\n tickInterval: 5,\r\n labels: {\r\n style: {\r\n fontSize: '12px',\r\n },\r\n },\r\n min: 0,\r\n softMax: 30,\r\n gridLineWidth: 0,\r\n showEmpty: false,\r\n },\r\n {\r\n title: {\r\n text: ``,\r\n align: 'high',\r\n offset: 20,\r\n rotation: 0,\r\n y: -15,\r\n style: {\r\n fontSize: '12px',\r\n },\r\n },\r\n lineWidth: 1,\r\n tickInterval: 1,\r\n labels: {\r\n style: {\r\n fontSize: '12px',\r\n },\r\n formatter() {\r\n switch (this.value) {\r\n case 0:\r\n return offText;\r\n case 1:\r\n return onText;\r\n }\r\n },\r\n rotation: -90,\r\n },\r\n min: 0,\r\n softMax: 1,\r\n maxPadding: 0.08,\r\n endOnTick: false,\r\n gridLineWidth: 0,\r\n showEmpty: false,\r\n },\r\n ],\r\n credits: {\r\n enabled: false,\r\n },\r\n tooltip: {\r\n enabled: true,\r\n split: true,\r\n valueSuffix: '',\r\n xDateFormat: '%d.%m.%y / %H:%M:%S',\r\n },\r\n lang: {\r\n noData: this.noDataText,\r\n loading: this.loadingText,\r\n },\r\n noData: {\r\n style: {\r\n fontWeight: 'normal',\r\n fontSize: '12px',\r\n color: '#666666',\r\n },\r\n },\r\n loading: {\r\n style: {\r\n fontWeight: 'normal',\r\n fontSize: '12px',\r\n color: '#666666',\r\n },\r\n },\r\n plotOptions: {\r\n spline: {\r\n marker: {\r\n enabled: false,\r\n },\r\n },\r\n series: {\r\n states: {\r\n hover: {\r\n enabled: false,\r\n },\r\n inactive: {\r\n opacity: 1,\r\n },\r\n },\r\n },\r\n },\r\n };\r\n }\r\n}\r\n","\r\n \r\n \r\n {{ this.deviceAlias }}\r\n \r\n \r\n \r\n\r\n\r\n\r\n\r\n
\r\n
\r\n {{ 'analytics.phrase.resetZoom' | translate }}\r\n
\r\n\r\n
\r\n PDF\r\n
\r\n\r\n
\r\n \r\n {{\r\n this.dataSelectionOpen\r\n ? ('analytics.phrase.hideDataSelectors' | translate)\r\n : ('analytics.phrase.showDataSelectors' | translate)\r\n }}\r\n \r\n
\r\n
\r\n\r\n\r\n \r\n \r\n \r\n \r\n \r\n {{ s | translate }} \r\n \r\n \r\n\r\n\r\n
\r\n \r\n
\r\n","import { TranslateService } from '@ngx-translate/core';\r\nimport { map, Observable, of, switchMap } from 'rxjs';\r\nimport { Ropeway } from 'src/app/maps/domain/ropeway.model';\r\nimport { RopewayEcoModeTrend } from 'src/app/maps/trenddata/ropeway-ecomode-trend.model';\r\nimport { RopewayEcoModeTrendService } from 'src/app/maps/trenddata/ropeway-ecomode-trend.service';\r\nimport { ChartAdapter } from 'src/app/maps/widgets/charts/chart-adapter';\r\nimport { ChartSettingsService } from 'src/app/maps/widgets/charts/chart-settings.service';\r\nimport { ChartSelector } from 'src/app/maps/widgets/detailviews/ropeway-ecomode-detailview/modal/ecomode-chart/chart-selector.model';\r\nimport { EcoModeChartHandler } from 'src/app/maps/widgets/detailviews/ropeway-ecomode-detailview/modal/ecomode-chart/ecomode-chart-handler';\r\n\r\nexport class EcoModeEnabledPLCHandler extends EcoModeChartHandler {\r\n private static readonly speedTranslateString = 'ecomode.term.ecoModeEnabledPLC';\r\n private static readonly onTranslateString = 'general.term.on';\r\n private static readonly offTranslateString = 'general.term.off';\r\n private static readonly trendColor = '#ea25ddff';\r\n\r\n private seriesName: string;\r\n private offText: string;\r\n private onText: string;\r\n\r\n constructor(\r\n protected chartSettingsService: ChartSettingsService,\r\n protected chartAdapter: ChartAdapter,\r\n private ropewayEcoModeTrendService: RopewayEcoModeTrendService,\r\n translateService: TranslateService,\r\n ropeway: Ropeway,\r\n yAxisUnits: string[]\r\n ) {\r\n super(chartSettingsService, chartAdapter, translateService, ropeway, yAxisUnits);\r\n\r\n this.seriesId = ropeway.sisId + 'ecoModeEnabledPLC';\r\n this.seriesName = translateService.instant(EcoModeEnabledPLCHandler.speedTranslateString);\r\n this.offText = translateService.instant(EcoModeEnabledPLCHandler.offTranslateString);\r\n this.onText = translateService.instant(EcoModeEnabledPLCHandler.onTranslateString);\r\n }\r\n\r\n seriesObservable(): Observable> {\r\n return this.chartSettingsService.getRopewaySetting(this.ropeway.sisId, this.seriesId).pipe(\r\n switchMap((enabled) => {\r\n if (enabled) {\r\n const offText = this.offText;\r\n const onText = this.onText;\r\n this.chartAdapter.addSeries(this.seriesId, {\r\n name: this.seriesName,\r\n id: this.seriesId,\r\n type: 'line' as any,\r\n step: 'left',\r\n lineWidth: 1,\r\n className: '',\r\n tooltip: {\r\n pointFormatter() {\r\n const marker = `\\u25CF`;\r\n const valueText = this.y === 0 ? offText : onText;\r\n return `${marker} ${this.series.name}: ${valueText}`;\r\n },\r\n },\r\n color: EcoModeEnabledPLCHandler.trendColor,\r\n yAxis: this.yAxisUnits.indexOf('bool'),\r\n });\r\n\r\n return this.chartAdapter\r\n .loadData([this.ropewayEcoModeTrendService.getEcoModeData(this.ropeway.sisId)])\r\n .pipe(map((data) => [{ seriesId: this.seriesId, data: this.getData(data[0]) }]));\r\n } else {\r\n this.chartAdapter.removeSeries(this.seriesId);\r\n return of([{ seriesId: this.seriesId, data: null }]);\r\n }\r\n })\r\n );\r\n }\r\n\r\n getChartSelectors(): ChartSelector[] {\r\n return [\r\n {\r\n setting: this.seriesId,\r\n titleStrings: [EcoModeEnabledPLCHandler.speedTranslateString],\r\n ropewaySisId: this.ropeway.sisId,\r\n selected$: this.chartSettingsService.getRopewaySetting(this.ropeway.sisId, this.seriesId),\r\n },\r\n ];\r\n }\r\n\r\n private getData(data: RopewayEcoModeTrend[]): number[][] {\r\n return (\r\n data\r\n ?.map((item) => {\r\n const timeStampInMs = item.timestamp.getTime();\r\n return [timeStampInMs, item.ecoModeEnabledPLC ? 1 : 0];\r\n })\r\n .sort((i1, i2) => i1[0] - i2[0]) ?? []\r\n );\r\n }\r\n}\r\n","import { TranslateService } from '@ngx-translate/core';\r\nimport { map, Observable, of, switchMap } from 'rxjs';\r\nimport { Ropeway } from 'src/app/maps/domain/ropeway.model';\r\nimport { RopewayEcoModeTrend } from 'src/app/maps/trenddata/ropeway-ecomode-trend.model';\r\nimport { RopewayEcoModeTrendService } from 'src/app/maps/trenddata/ropeway-ecomode-trend.service';\r\nimport { ChartAdapter } from 'src/app/maps/widgets/charts/chart-adapter';\r\nimport { ChartSettingsService } from 'src/app/maps/widgets/charts/chart-settings.service';\r\nimport { ChartSelector } from 'src/app/maps/widgets/detailviews/ropeway-ecomode-detailview/modal/ecomode-chart/chart-selector.model';\r\nimport { EcoModeChartHandler } from 'src/app/maps/widgets/detailviews/ropeway-ecomode-detailview/modal/ecomode-chart/ecomode-chart-handler';\r\n\r\nexport class EcoModeEnergyHandler extends EcoModeChartHandler {\r\n private static readonly speedTranslateString = 'ecomode.term.driveEnergy';\r\n private static readonly trendColor = '#20eacc';\r\n\r\n private seriesName: string;\r\n\r\n constructor(\r\n protected chartSettingsService: ChartSettingsService,\r\n protected chartAdapter: ChartAdapter,\r\n private ropewayEcoModeTrendService: RopewayEcoModeTrendService,\r\n translateService: TranslateService,\r\n ropeway: Ropeway,\r\n yAxisUnits: string[]\r\n ) {\r\n super(chartSettingsService, chartAdapter, translateService, ropeway, yAxisUnits);\r\n\r\n this.seriesId = ropeway.sisId + 'driveEnergyWh';\r\n this.seriesName = translateService.instant(EcoModeEnergyHandler.speedTranslateString);\r\n }\r\n\r\n seriesObservable(): Observable> {\r\n return this.chartSettingsService.getRopewaySetting(this.ropeway.sisId, this.seriesId).pipe(\r\n switchMap((enabled) => {\r\n if (enabled) {\r\n this.chartAdapter.addSeries(this.seriesId, {\r\n name: this.seriesName,\r\n id: this.seriesId,\r\n type: 'area' as any,\r\n step: 'left',\r\n lineWidth: 1,\r\n className: '',\r\n tooltip: {\r\n valueSuffix: ' kW',\r\n },\r\n fillOpacity: 0.3,\r\n color: EcoModeEnergyHandler.trendColor,\r\n yAxis: this.yAxisUnits.indexOf('kw'),\r\n });\r\n\r\n return this.chartAdapter\r\n .loadData([this.ropewayEcoModeTrendService.getEcoModeData(this.ropeway.sisId)])\r\n .pipe(map((data) => [{ seriesId: this.seriesId, data: this.getData(data[0]) }]));\r\n } else {\r\n this.chartAdapter.removeSeries(this.seriesId);\r\n return of([{ seriesId: this.seriesId, data: null }]);\r\n }\r\n })\r\n );\r\n }\r\n\r\n getChartSelectors(): ChartSelector[] {\r\n return [\r\n {\r\n setting: this.seriesId,\r\n titleStrings: [EcoModeEnergyHandler.speedTranslateString],\r\n ropewaySisId: this.ropeway.sisId,\r\n selected$: this.chartSettingsService.getRopewaySetting(this.ropeway.sisId, this.seriesId),\r\n },\r\n ];\r\n }\r\n\r\n private getData(data: RopewayEcoModeTrend[]): number[][] {\r\n if (!data || data.length === 0) return [];\r\n const sortedData = data\r\n .filter((item) => item.timestamp && item.driveEnergyWh !== undefined)\r\n .map((item) => ({\r\n timestamp: item.timestamp?.getTime(),\r\n driveEnergyWh: item.driveEnergyWh,\r\n }))\r\n .sort((a, b) => a.timestamp - b.timestamp);\r\n\r\n const result: number[][] = [];\r\n for (let i = 1; i < sortedData.length; i++) {\r\n const previous = sortedData[i - 1];\r\n const current = sortedData[i];\r\n\r\n const timeDiffHours = (current.timestamp - previous.timestamp) / 3600000;\r\n\r\n const powerW = current.driveEnergyWh / timeDiffHours;\r\n const powerKw = powerW / 1000;\r\n const roundedPowerKw = Math.round(powerKw * 100) / 100;\r\n\r\n result.push([current.timestamp, roundedPowerKw]);\r\n }\r\n\r\n return result;\r\n }\r\n}\r\n","import { TranslateService } from '@ngx-translate/core';\r\nimport { map, Observable, of, switchMap } from 'rxjs';\r\nimport { Ropeway } from 'src/app/maps/domain/ropeway.model';\r\nimport { RopewayEcoModeTrend } from 'src/app/maps/trenddata/ropeway-ecomode-trend.model';\r\nimport { RopewayEcoModeTrendService } from 'src/app/maps/trenddata/ropeway-ecomode-trend.service';\r\nimport { ChartAdapter } from 'src/app/maps/widgets/charts/chart-adapter';\r\nimport { ChartSettingsService } from 'src/app/maps/widgets/charts/chart-settings.service';\r\nimport { ChartSelector } from 'src/app/maps/widgets/detailviews/ropeway-ecomode-detailview/modal/ecomode-chart/chart-selector.model';\r\nimport { EcoModeChartHandler } from 'src/app/maps/widgets/detailviews/ropeway-ecomode-detailview/modal/ecomode-chart/ecomode-chart-handler';\r\n\r\nexport class EcoModePeoplePerMinuteHandler extends EcoModeChartHandler {\r\n private static readonly speedTranslateString = 'ecomode.term.peoplePerMinute';\r\n private static readonly trendColor = '#ffb600ff';\r\n\r\n private seriesName: string;\r\n\r\n constructor(\r\n protected chartSettingsService: ChartSettingsService,\r\n protected chartAdapter: ChartAdapter,\r\n private ropewayEcoModeTrendService: RopewayEcoModeTrendService,\r\n translateService: TranslateService,\r\n ropeway: Ropeway,\r\n yAxisUnits: string[]\r\n ) {\r\n super(chartSettingsService, chartAdapter, translateService, ropeway, yAxisUnits);\r\n\r\n this.seriesId = ropeway.sisId + 'peoplePerMinute';\r\n this.seriesName = translateService.instant(EcoModePeoplePerMinuteHandler.speedTranslateString);\r\n }\r\n\r\n seriesObservable(): Observable> {\r\n return this.chartSettingsService.getRopewaySetting(this.ropeway.sisId, this.seriesId).pipe(\r\n switchMap((enabled) => {\r\n if (enabled) {\r\n this.chartAdapter.addSeries(this.seriesId, {\r\n name: this.seriesName,\r\n id: this.seriesId,\r\n type: 'line' as any,\r\n step: 'left',\r\n lineWidth: 1,\r\n className: '',\r\n tooltip: {\r\n valueSuffix: ' ppm',\r\n },\r\n color: EcoModePeoplePerMinuteHandler.trendColor,\r\n yAxis: this.yAxisUnits.indexOf('ppm'),\r\n });\r\n\r\n return this.chartAdapter\r\n .loadData([this.ropewayEcoModeTrendService.getEcoModeData(this.ropeway.sisId)])\r\n .pipe(map((data) => [{ seriesId: this.seriesId, data: this.getData(data[0]) }]));\r\n } else {\r\n this.chartAdapter.removeSeries(this.seriesId);\r\n return of([{ seriesId: this.seriesId, data: null }]);\r\n }\r\n })\r\n );\r\n }\r\n\r\n getChartSelectors(): ChartSelector[] {\r\n return [\r\n {\r\n setting: this.seriesId,\r\n titleStrings: [EcoModePeoplePerMinuteHandler.speedTranslateString],\r\n ropewaySisId: this.ropeway.sisId,\r\n selected$: this.chartSettingsService.getRopewaySetting(this.ropeway.sisId, this.seriesId),\r\n },\r\n ];\r\n }\r\n\r\n private getData(data: RopewayEcoModeTrend[]): number[][] {\r\n return (\r\n data\r\n ?.map((item) => {\r\n const timeStampInMs = item.timestamp.getTime();\r\n return [timeStampInMs, item.peoplePerMinute];\r\n })\r\n .sort((i1, i2) => i1[0] - i2[0]) ?? []\r\n );\r\n }\r\n}\r\n","import { TranslateService } from '@ngx-translate/core';\r\nimport { map, Observable, of, switchMap } from 'rxjs';\r\nimport { Ropeway } from 'src/app/maps/domain/ropeway.model';\r\nimport { RopewayEcoModeTrend } from 'src/app/maps/trenddata/ropeway-ecomode-trend.model';\r\nimport { RopewayEcoModeTrendService } from 'src/app/maps/trenddata/ropeway-ecomode-trend.service';\r\nimport { ChartAdapter } from 'src/app/maps/widgets/charts/chart-adapter';\r\nimport { ChartSettingsService } from 'src/app/maps/widgets/charts/chart-settings.service';\r\nimport { ChartSelector } from 'src/app/maps/widgets/detailviews/ropeway-ecomode-detailview/modal/ecomode-chart/chart-selector.model';\r\nimport { EcoModeChartHandler } from 'src/app/maps/widgets/detailviews/ropeway-ecomode-detailview/modal/ecomode-chart/ecomode-chart-handler';\r\n\r\nexport class EcoModeTargetSpeedHandler extends EcoModeChartHandler {\r\n private static readonly speedTranslateString = 'ecomode.term.targetSpeed';\r\n private static readonly trendColor = '#10f254ff';\r\n\r\n private seriesName: string;\r\n\r\n constructor(\r\n protected chartSettingsService: ChartSettingsService,\r\n protected chartAdapter: ChartAdapter,\r\n private ropewayEcoModeTrendService: RopewayEcoModeTrendService,\r\n translateService: TranslateService,\r\n ropeway: Ropeway,\r\n yAxisUnits: string[]\r\n ) {\r\n super(chartSettingsService, chartAdapter, translateService, ropeway, yAxisUnits);\r\n\r\n this.seriesId = ropeway.sisId + 'targetSpeedMps';\r\n this.seriesName = translateService.instant(EcoModeTargetSpeedHandler.speedTranslateString);\r\n }\r\n\r\n seriesObservable(): Observable> {\r\n return this.chartSettingsService.getRopewaySetting(this.ropeway.sisId, this.seriesId).pipe(\r\n switchMap((enabled) => {\r\n if (enabled) {\r\n this.chartAdapter.addSeries(this.seriesId, {\r\n name: this.seriesName,\r\n id: this.seriesId,\r\n type: 'line' as any,\r\n step: 'left',\r\n lineWidth: 1,\r\n className: '',\r\n tooltip: {\r\n valueSuffix: ' m/s',\r\n },\r\n color: EcoModeTargetSpeedHandler.trendColor,\r\n yAxis: this.yAxisUnits.indexOf('m/s'),\r\n });\r\n\r\n return this.chartAdapter\r\n .loadData([this.ropewayEcoModeTrendService.getEcoModeData(this.ropeway.sisId)])\r\n .pipe(map((data) => [{ seriesId: this.seriesId, data: this.getData(data[0]) }]));\r\n } else {\r\n this.chartAdapter.removeSeries(this.seriesId);\r\n return of([{ seriesId: this.seriesId, data: null }]);\r\n }\r\n })\r\n );\r\n }\r\n\r\n getChartSelectors(): ChartSelector[] {\r\n return [\r\n {\r\n setting: this.seriesId,\r\n titleStrings: [EcoModeTargetSpeedHandler.speedTranslateString],\r\n ropewaySisId: this.ropeway.sisId,\r\n selected$: this.chartSettingsService.getRopewaySetting(this.ropeway.sisId, this.seriesId),\r\n },\r\n ];\r\n }\r\n\r\n private getData(data: RopewayEcoModeTrend[]): number[][] {\r\n return (\r\n data\r\n ?.map((item) => {\r\n const timeStampInMs = item.timestamp.getTime();\r\n return [timeStampInMs, Math.round(item.targetSpeedMps * 10) / 10];\r\n })\r\n .sort((i1, i2) => i1[0] - i2[0]) ?? []\r\n );\r\n }\r\n}\r\n","import { TranslateService } from '@ngx-translate/core';\r\nimport { map, Observable, of, switchMap } from 'rxjs';\r\nimport { Ropeway } from 'src/app/maps/domain/ropeway.model';\r\nimport { RopewayEcoModeTrend } from 'src/app/maps/trenddata/ropeway-ecomode-trend.model';\r\nimport { RopewayEcoModeTrendService } from 'src/app/maps/trenddata/ropeway-ecomode-trend.service';\r\nimport { ChartAdapter } from 'src/app/maps/widgets/charts/chart-adapter';\r\nimport { ChartSettingsService } from 'src/app/maps/widgets/charts/chart-settings.service';\r\nimport { ChartSelector } from 'src/app/maps/widgets/detailviews/ropeway-ecomode-detailview/modal/ecomode-chart/chart-selector.model';\r\nimport { EcoModeChartHandler } from 'src/app/maps/widgets/detailviews/ropeway-ecomode-detailview/modal/ecomode-chart/ecomode-chart-handler';\r\n\r\nexport class EcoModeVehicleCountHandler extends EcoModeChartHandler {\r\n private static readonly speedTranslateString = 'ecomode.term.vehicleCount';\r\n private static readonly trendColor = 'black';\r\n\r\n private seriesName: string;\r\n\r\n constructor(\r\n protected chartSettingsService: ChartSettingsService,\r\n protected chartAdapter: ChartAdapter,\r\n private ropewayEcoModeTrendService: RopewayEcoModeTrendService,\r\n translateService: TranslateService,\r\n ropeway: Ropeway,\r\n yAxisUnits: string[]\r\n ) {\r\n super(chartSettingsService, chartAdapter, translateService, ropeway, yAxisUnits);\r\n\r\n this.seriesId = ropeway.sisId + 'vehicleCountPercent';\r\n this.seriesName = translateService.instant(EcoModeVehicleCountHandler.speedTranslateString);\r\n }\r\n\r\n seriesObservable(): Observable> {\r\n return this.chartSettingsService.getRopewaySetting(this.ropeway.sisId, this.seriesId).pipe(\r\n switchMap((enabled) => {\r\n if (enabled) {\r\n this.chartAdapter.addSeries(this.seriesId, {\r\n name: this.seriesName,\r\n id: this.seriesId,\r\n type: 'line' as any,\r\n step: 'left',\r\n lineWidth: 1,\r\n className: '',\r\n tooltip: {\r\n valueSuffix: ' %',\r\n },\r\n color: EcoModeVehicleCountHandler.trendColor,\r\n yAxis: this.yAxisUnits.indexOf('%'),\r\n });\r\n\r\n return this.chartAdapter\r\n .loadData([this.ropewayEcoModeTrendService.getEcoModeData(this.ropeway.sisId)])\r\n .pipe(map((data) => [{ seriesId: this.seriesId, data: this.getData(data[0]) }]));\r\n } else {\r\n this.chartAdapter.removeSeries(this.seriesId);\r\n return of([{ seriesId: this.seriesId, data: null }]);\r\n }\r\n })\r\n );\r\n }\r\n\r\n getChartSelectors(): ChartSelector[] {\r\n return [\r\n {\r\n setting: this.seriesId,\r\n titleStrings: [EcoModeVehicleCountHandler.speedTranslateString],\r\n ropewaySisId: this.ropeway.sisId,\r\n selected$: this.chartSettingsService.getRopewaySetting(this.ropeway.sisId, this.seriesId),\r\n },\r\n ];\r\n }\r\n\r\n private getData(data: RopewayEcoModeTrend[]): number[][] {\r\n return (\r\n data\r\n ?.map((item) => {\r\n const timeStampInMs = item.timestamp.getTime();\r\n return [timeStampInMs, item.vehicleCountPercent];\r\n })\r\n .sort((i1, i2) => i1[0] - i2[0]) ?? []\r\n );\r\n }\r\n}\r\n","import { TranslateService } from '@ngx-translate/core';\r\nimport { map, Observable, of, switchMap } from 'rxjs';\r\nimport { Ropeway } from 'src/app/maps/domain/ropeway.model';\r\nimport { RopewayEcoModeTrend } from 'src/app/maps/trenddata/ropeway-ecomode-trend.model';\r\nimport { RopewayEcoModeTrendService } from 'src/app/maps/trenddata/ropeway-ecomode-trend.service';\r\nimport { ChartAdapter } from 'src/app/maps/widgets/charts/chart-adapter';\r\nimport { ChartSettingsService } from 'src/app/maps/widgets/charts/chart-settings.service';\r\nimport { ChartSelector } from 'src/app/maps/widgets/detailviews/ropeway-ecomode-detailview/modal/ecomode-chart/chart-selector.model';\r\nimport { EcoModeChartHandler } from 'src/app/maps/widgets/detailviews/ropeway-ecomode-detailview/modal/ecomode-chart/ecomode-chart-handler';\r\n\r\nexport class EcoModeWorkloadHandler extends EcoModeChartHandler {\r\n private static readonly speedTranslateString = 'ecomode.term.workload';\r\n private static readonly trendColor = 'green';\r\n\r\n private seriesName: string;\r\n\r\n constructor(\r\n protected chartSettingsService: ChartSettingsService,\r\n protected chartAdapter: ChartAdapter,\r\n private ropewayEcoModeTrendService: RopewayEcoModeTrendService,\r\n translateService: TranslateService,\r\n ropeway: Ropeway,\r\n yAxisUnits: string[]\r\n ) {\r\n super(chartSettingsService, chartAdapter, translateService, ropeway, yAxisUnits);\r\n\r\n this.seriesId = ropeway.sisId + 'workloadPercent';\r\n this.seriesName = translateService.instant(EcoModeWorkloadHandler.speedTranslateString);\r\n }\r\n\r\n seriesObservable(): Observable> {\r\n return this.chartSettingsService.getRopewaySetting(this.ropeway.sisId, this.seriesId).pipe(\r\n switchMap((enabled) => {\r\n if (enabled) {\r\n this.chartAdapter.addSeries(this.seriesId, {\r\n name: this.seriesName,\r\n id: this.seriesId,\r\n type: 'line' as any,\r\n step: 'left',\r\n lineWidth: 1,\r\n className: '',\r\n tooltip: {\r\n valueSuffix: ' %',\r\n },\r\n color: EcoModeWorkloadHandler.trendColor,\r\n yAxis: this.yAxisUnits.indexOf('%'),\r\n });\r\n\r\n return this.chartAdapter\r\n .loadData([this.ropewayEcoModeTrendService.getEcoModeData(this.ropeway.sisId)])\r\n .pipe(map((data) => [{ seriesId: this.seriesId, data: this.getData(data[0]) }]));\r\n } else {\r\n this.chartAdapter.removeSeries(this.seriesId);\r\n return of([{ seriesId: this.seriesId, data: null }]);\r\n }\r\n })\r\n );\r\n }\r\n\r\n getChartSelectors(): ChartSelector[] {\r\n return [\r\n {\r\n setting: this.seriesId,\r\n titleStrings: [EcoModeWorkloadHandler.speedTranslateString],\r\n ropewaySisId: this.ropeway.sisId,\r\n selected$: this.chartSettingsService.getRopewaySetting(this.ropeway.sisId, this.seriesId),\r\n },\r\n ];\r\n }\r\n\r\n private getData(data: RopewayEcoModeTrend[]): number[][] {\r\n return (\r\n data\r\n ?.map((item) => {\r\n const timeStampInMs = item.timestamp.getTime();\r\n return [timeStampInMs, Math.round(item.workloadPercent * 10) / 10];\r\n })\r\n .sort((i1, i2) => i1[0] - i2[0]) ?? []\r\n );\r\n }\r\n}\r\n","import { Component, Input, OnInit } from '@angular/core';\r\nimport { AbstractControl, FormControl, FormGroup, ValidationErrors, ValidatorFn, Validators } from '@angular/forms';\r\nimport { ModalController } from '@ionic/angular';\r\nimport { filter, takeUntil, withLatestFrom } from 'rxjs';\r\nimport { EventBusService } from 'src/app/core/eventbus/event-bus.service';\r\nimport { EcoModeSettingsUpdatedEvent, RopewaySettingsUpdatedEvent } from 'src/app/core/eventbus/events';\r\nimport { Unsubscriber } from 'src/app/core/unsubscriber';\r\nimport { MathUtils } from 'src/app/core/utils/mathUtils';\r\nimport { ScreenSizeService } from 'src/app/core/utils/screen-size.service';\r\nimport { UserSettingsService } from 'src/app/domain/user-settings/user-settings.service';\r\nimport { RopewayEcoModeSettings } from 'src/app/maps/domain/ropeway-ecomode/ropeway-ecomode-settings.model';\r\nimport { RopewayEcoModeSettingsService } from 'src/app/maps/domain/ropeway-ecomode/ropeway-ecomode-settings.service';\r\n\r\n@Component({\r\n selector: 'sis-ecomode-settings-modal',\r\n templateUrl: './ropeway-ecomode-settings-modal.component.html',\r\n styleUrls: ['./ropeway-ecomode-settings-modal.component.scss'],\r\n standalone: false\r\n})\r\nexport class RopewayEcoModeSettingsModal extends Unsubscriber implements OnInit {\r\n readonly bigScreenMode$ = this.screenSizeService.bigScreenMode$;\r\n\r\n editableSettings: RopewayEcoModeSettings;\r\n edited = false;\r\n saving = false;\r\n formGroup: FormGroup;\r\n thresholdLowText: string;\r\n thresholdMediumText: string;\r\n maxQuantityPerMinute: string;\r\n\r\n @Input() ropewayEcoModeSettings: RopewayEcoModeSettings;\r\n\r\n constructor(\r\n private modalCtrl: ModalController,\r\n private screenSizeService: ScreenSizeService,\r\n private ropewayEcoModeSettingsService: RopewayEcoModeSettingsService,\r\n private eventBus: EventBusService,\r\n private userSettingsService: UserSettingsService\r\n ) {\r\n super();\r\n }\r\n\r\n ngOnInit(): void {\r\n this.formGroup = new FormGroup(\r\n {\r\n speedEmpty: new FormControl(this.ropewayEcoModeSettings.speedEmpty, [Validators.required]),\r\n speedLow: new FormControl(this.ropewayEcoModeSettings.speedLow, [Validators.required]),\r\n speedMedium: new FormControl(this.ropewayEcoModeSettings.speedMedium, [Validators.required]),\r\n speedHigh: new FormControl(this.ropewayEcoModeSettings.speedHigh, [Validators.required]),\r\n thresholds: new FormControl<{ lower: number; upper: number }>(\r\n { lower: this.ropewayEcoModeSettings.thresholdLow, upper: this.ropewayEcoModeSettings.thresholdMedium },\r\n [Validators.required]\r\n ),\r\n },\r\n {\r\n validators: [this.validateSpeedInputs()],\r\n }\r\n );\r\n\r\n this.formGroup.valueChanges.pipe(takeUntil(this.onDestroy$)).subscribe((values) => {\r\n this.editableSettings.speedEmpty = Number.parseFloat(values.speedEmpty);\r\n this.editableSettings.speedLow = Number.parseFloat(values.speedLow);\r\n this.editableSettings.speedMedium = Number.parseFloat(values.speedMedium);\r\n this.editableSettings.speedHigh = Number.parseFloat(values.speedHigh);\r\n this.editableSettings.thresholdLow = Number.parseFloat(values.thresholds.lower);\r\n this.editableSettings.thresholdMedium = Number.parseFloat(values.thresholds.upper);\r\n this.edited = this.isEdited();\r\n this.setText();\r\n });\r\n\r\n this.eventBus\r\n .observe(EcoModeSettingsUpdatedEvent)\r\n .pipe(\r\n withLatestFrom(this.userSettingsService.userSettings$),\r\n filter(([event, userSettings]) => event.changedBy === userSettings.userGuid),\r\n takeUntil(this.onDestroy$)\r\n )\r\n .subscribe(([event]) => {\r\n if (\r\n event.ropewayEcoModeSettings.ropewayGuid === this.ropewayEcoModeSettings.ropewayGuid &&\r\n this.saving &&\r\n event.updateSuccessful\r\n ) {\r\n this.close();\r\n }\r\n this.saving = false;\r\n });\r\n\r\n this.eventBus\r\n .observe(RopewaySettingsUpdatedEvent)\r\n .pipe(\r\n filter((event) => event.ropewaySettings.guid === this.ropewayEcoModeSettings.ropewayGuid),\r\n takeUntil(this.onDestroy$)\r\n )\r\n .subscribe((event) => {\r\n this.editableSettings.maxTransportQuantityPerHour = event.ropewaySettings.maxTransportQuantityPerHour;\r\n this.setText();\r\n });\r\n\r\n this.reset();\r\n }\r\n\r\n reset(): void {\r\n this.editableSettings = { ...this.ropewayEcoModeSettings };\r\n\r\n this.formGroup.controls.thresholds.setValue(\r\n {\r\n lower: this.ropewayEcoModeSettings.thresholdLow,\r\n upper: this.ropewayEcoModeSettings.thresholdMedium,\r\n },\r\n { emitEvent: false }\r\n );\r\n\r\n this.formGroup.controls.speedEmpty.setValue(this.ropewayEcoModeSettings.speedEmpty, { emitEvent: false });\r\n this.formGroup.controls.speedLow.setValue(this.ropewayEcoModeSettings.speedLow, { emitEvent: false });\r\n this.formGroup.controls.speedMedium.setValue(this.ropewayEcoModeSettings.speedMedium, { emitEvent: false });\r\n this.formGroup.controls.speedHigh.setValue(this.ropewayEcoModeSettings.speedHigh, { emitEvent: false });\r\n\r\n this.edited = false;\r\n this.setText();\r\n }\r\n\r\n save(): void {\r\n if (!this.saving) {\r\n if (!this.edited) {\r\n this.close();\r\n } else {\r\n this.ropewayEcoModeSettingsService.saveRopewayEcoModeSettings(this.editableSettings).subscribe();\r\n\r\n this.saving = true;\r\n }\r\n }\r\n }\r\n\r\n close(): void {\r\n this.modalCtrl.dismiss();\r\n }\r\n\r\n pinFormatter(value: number) {\r\n return `${value}%`;\r\n }\r\n\r\n private setText(): void {\r\n this.thresholdLowText = `${MathUtils.roundTo(\r\n ((this.editableSettings.maxTransportQuantityPerHour / 60) * this.editableSettings.thresholdLow) / 100,\r\n 1\r\n )} Pers/min`;\r\n this.thresholdMediumText = `${MathUtils.roundTo(\r\n ((this.editableSettings.maxTransportQuantityPerHour / 60) * this.editableSettings.thresholdMedium) / 100,\r\n 1\r\n )} Pers/min`;\r\n this.maxQuantityPerMinute = MathUtils.roundTo(this.editableSettings.maxTransportQuantityPerHour / 60, 1);\r\n }\r\n\r\n private isEdited(): boolean {\r\n return (\r\n this.editableSettings.speedEmpty !== this.ropewayEcoModeSettings.speedEmpty ||\r\n this.editableSettings.speedLow !== this.ropewayEcoModeSettings.speedLow ||\r\n this.editableSettings.speedMedium !== this.ropewayEcoModeSettings.speedMedium ||\r\n this.editableSettings.speedHigh !== this.ropewayEcoModeSettings.speedHigh ||\r\n this.editableSettings.thresholdLow !== this.ropewayEcoModeSettings.thresholdLow ||\r\n this.editableSettings.thresholdMedium !== this.ropewayEcoModeSettings.thresholdMedium\r\n );\r\n }\r\n\r\n private validateSpeedInputs(): ValidatorFn {\r\n return (control: AbstractControl): ValidationErrors | null => {\r\n const speedEmptyControl = control.get('speedEmpty');\r\n const speedLowControl = control.get('speedLow');\r\n const speedMediumControl = control.get('speedMedium');\r\n const speedHighControl = control.get('speedHigh');\r\n\r\n const speedEmpty = Number.parseFloat(speedEmptyControl.value);\r\n const speedLow = Number.parseFloat(speedLowControl.value);\r\n const speedMedium = Number.parseFloat(speedMediumControl.value);\r\n const speedHigh = Number.parseFloat(speedHighControl.value);\r\n\r\n const valid =\r\n !isNaN(speedEmpty) &&\r\n !isNaN(speedLow) &&\r\n !isNaN(speedMedium) &&\r\n !isNaN(speedHigh) &&\r\n speedEmpty <= speedLow &&\r\n speedLow <= speedMedium &&\r\n speedMedium <= speedHigh;\r\n\r\n return valid ? null : { speed: true };\r\n };\r\n }\r\n}\r\n","\r\n \r\n \r\n {{ 'ecomode.term.settings' | translate }}\r\n \r\n \r\n \r\n\r\n\r\n\r\n \r\n
\r\n \r\n \r\n {{ 'ecomode.phrase.thresholdSliderText' | translate }}\r\n (max. {{ this.maxQuantityPerMinute }} Pers/min.)\r\n \r\n \r\n \r\n \r\n \r\n 0%\r\n 100%\r\n {{ this.thresholdLowText }}\r\n {{ this.thresholdMediumText }}\r\n \r\n \r\n\r\n \r\n \r\n \r\n \r\n {{ 'ecomode.term.empty' | translate }} \r\n \r\n \r\n \r\n \r\n m/s \r\n \r\n \r\n\r\n \r\n \r\n {{ 'ecomode.term.threshold' | translate }} 1 \r\n \r\n {{ 'general.term.from' | translate }}\r\n \r\n 0 % \r\n {{ 'general.term.to' | translate }} \r\n {{ this.editableSettings.thresholdLow }} %:\r\n \r\n \r\n \r\n \r\n m/s \r\n \r\n \r\n\r\n \r\n \r\n {{ 'ecomode.term.threshold' | translate }} 2 \r\n \r\n {{ 'general.term.from' | translate }}\r\n \r\n {{ this.editableSettings.thresholdLow }} % \r\n {{ 'general.term.to' | translate }} \r\n {{ this.editableSettings.thresholdMedium }} %:\r\n \r\n \r\n \r\n \r\n m/s \r\n \r\n \r\n\r\n \r\n \r\n {{ 'ecomode.term.threshold' | translate }} 3 \r\n \r\n {{ 'general.term.from' | translate }}\r\n \r\n {{ this.editableSettings.thresholdMedium }} % \r\n {{ 'general.term.to' | translate }} \r\n 100 %:\r\n \r\n \r\n \r\n \r\n m/s \r\n \r\n \r\n \r\n\r\n \r\n \r\n \r\n \r\n {{ 'ecomode.term.empty' | translate }}\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n m/s \r\n \r\n\r\n \r\n {{ 'ecomode.term.threshold' | translate }} 1 \r\n \r\n {{ 'general.term.from' | translate }}\r\n \r\n 0 % \r\n {{ 'general.term.to' | translate }} \r\n \r\n {{ this.editableSettings.thresholdLow }} %:\r\n \r\n \r\n \r\n \r\n \r\n m/s \r\n \r\n\r\n \r\n {{ 'ecomode.term.threshold' | translate }} 2 \r\n \r\n {{ 'general.term.from' | translate }}\r\n \r\n \r\n {{ this.editableSettings.thresholdLow }} %\r\n \r\n {{ 'general.term.to' | translate }} \r\n \r\n {{ this.editableSettings.thresholdMedium }} %:\r\n \r\n \r\n \r\n \r\n \r\n m/s \r\n \r\n\r\n \r\n {{ 'ecomode.term.threshold' | translate }} 3 \r\n \r\n {{ 'general.term.from' | translate }}\r\n \r\n \r\n {{ this.editableSettings.thresholdMedium }} %\r\n \r\n {{ 'general.term.to' | translate }} \r\n 100 %: \r\n \r\n \r\n \r\n \r\n m/s \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 } from '@angular/core';\r\nimport { ModalController } from '@ionic/angular';\r\nimport { combineLatest, filter, firstValueFrom, map, switchMap, takeUntil, tap } from 'rxjs';\r\nimport { LogbookModalService } from 'src/app/core/components/logbook/logbook-modal/logbook-modal.service';\r\nimport { Unsubscriber } from 'src/app/core/unsubscriber';\r\nimport { ConfirmationDialogService } from 'src/app/core/utils/confirmation-dialog.service';\r\nimport { MathUtils } from 'src/app/core/utils/mathUtils';\r\nimport { DestinationService } from 'src/app/domain/destination/destination.service';\r\nimport { Feature } from 'src/app/domain/feature/feature.model';\r\nimport { FeatureAccessLevel } from 'src/app/domain/feature/feature-access-level.model';\r\nimport { FeatureId } from 'src/app/domain/feature/feature-id.model';\r\nimport { RopewayEcoModeSettings } from 'src/app/maps/domain/ropeway-ecomode/ropeway-ecomode-settings.model';\r\nimport { RopewayEcoModeSettingsService } from 'src/app/maps/domain/ropeway-ecomode/ropeway-ecomode-settings.service';\r\nimport { RopewayEcoModeLivedataService } from 'src/app/maps/livedata/ropeway-ecomode-livedata.service';\r\nimport { SelectedMapElementService } from 'src/app/maps/selected-map-element.service';\r\nimport { EcoModeChartComponent } from 'src/app/maps/widgets/detailviews/ropeway-ecomode-detailview/modal/ecomode-chart/ecomode-chart.component';\r\nimport { RopewayEcoModeSettingsModal } from 'src/app/maps/widgets/detailviews/ropeway-ecomode-detailview/modal/ropeway-ecomode-settings-modal.component';\r\n\r\n@Component({\r\n selector: 'sis-ropeway-ecomode-detailview',\r\n templateUrl: './ropeway-ecomode-detailview.component.html',\r\n styleUrls: ['./ropeway-ecomode-detailview.component.scss'],\r\n standalone: false\r\n})\r\nexport class RopewayEcoModeDetailViewComponent extends Unsubscriber implements OnInit {\r\n private readonly requiredFeatureWrite = new Feature(FeatureId.COCKPIT_ECOMODE, FeatureAccessLevel.WRITE);\r\n\r\n readonly logbookAvailable$ = this.logbookModalService.logbookAvailable$;\r\n\r\n readonly hasWritePermission$ = this.destinationService.selectedTenantFeatures$.pipe(\r\n map((features) => features.some((feature) => feature.hasMinimumRequirementFor(this.requiredFeatureWrite)))\r\n );\r\n\r\n percent: number;\r\n percentText: string;\r\n currentPeopleFrequencyText: string;\r\n\r\n ecoModeEnabledPLC: boolean;\r\n ecoModeEnabledCockpit: boolean;\r\n speedEmpty: number;\r\n speedLow: number;\r\n speedMedium: number;\r\n speedHigh: number;\r\n thresholdLow: number;\r\n thresholdLowPercent: number;\r\n thresholdLowText: string;\r\n thresholdMedium: number;\r\n thresholdMediumPercent: number;\r\n thresholdMediumText: string;\r\n thresholdHighText: string;\r\n\r\n livedataAvailable: boolean;\r\n ecoModePLCDisabledText: string;\r\n outdated: boolean;\r\n\r\n ropewayEcoModeSettings: RopewayEcoModeSettings;\r\n isRopewayOwner: boolean;\r\n\r\n activeThreshold: number = -1;\r\n\r\n constructor(\r\n private ropewayEcoModeSettingsService: RopewayEcoModeSettingsService,\r\n private ropewayEcoModeLivedataService: RopewayEcoModeLivedataService,\r\n private selectedMapElementService: SelectedMapElementService,\r\n private modalCtrl: ModalController,\r\n private logbookModalService: LogbookModalService,\r\n private destinationService: DestinationService,\r\n private confirmationDialogService: ConfirmationDialogService\r\n ) {\r\n super();\r\n }\r\n\r\n ngOnInit(): void {\r\n this.selectedMapElementService.selectedRopeway$\r\n .pipe(\r\n filter((ropeway) => !!ropeway),\r\n tap((ropeway) => (this.isRopewayOwner = ropeway.isRopewayOwner)),\r\n switchMap((ropeway) =>\r\n combineLatest([\r\n this.ropewayEcoModeSettingsService.ropewayEcoModeSettings$.pipe(\r\n map((settings) => settings.find((d) => d.ropewayGuid === ropeway.guid))\r\n ),\r\n this.ropewayEcoModeLivedataService.ropewayEcoModeLiveData$.pipe(\r\n map((livedata) => livedata.find((d) => d.deviceSisId === ropeway.sisId))\r\n ),\r\n ])\r\n ),\r\n filter(\r\n ([settings, livedata]) =>\r\n settings != null && (livedata == null || settings.ropewaySisId === livedata.deviceSisId)\r\n ),\r\n takeUntil(this.onDestroy$)\r\n )\r\n .subscribe(([settings, livedata]) => {\r\n const maxTransportQuantityPerMinute = settings.maxTransportQuantityPerHour / 60;\r\n\r\n this.livedataAvailable = livedata != null;\r\n this.ecoModeEnabledCockpit = settings.ecoModeEnabledCockpit;\r\n this.speedEmpty = +MathUtils.roundTo(settings.speedEmpty, 1);\r\n this.speedLow = +MathUtils.roundTo(settings.speedLow, 1);\r\n this.speedMedium = +MathUtils.roundTo(settings.speedMedium, 1);\r\n this.speedHigh = +MathUtils.roundTo(settings.speedHigh, 1);\r\n this.thresholdLow = settings.thresholdLow;\r\n this.thresholdLowPercent = this.thresholdLow / 100;\r\n this.thresholdMedium = settings.thresholdMedium;\r\n this.thresholdMediumPercent = this.thresholdMedium / 100;\r\n\r\n this.thresholdLowText = this.getThresholdText(0, this.thresholdLowPercent, maxTransportQuantityPerMinute);\r\n\r\n this.thresholdMediumText = this.getThresholdText(\r\n this.thresholdLowPercent,\r\n this.thresholdMediumPercent,\r\n maxTransportQuantityPerMinute\r\n );\r\n\r\n this.thresholdHighText = this.getThresholdText(this.thresholdMediumPercent, 1, maxTransportQuantityPerMinute);\r\n\r\n if (this.livedataAvailable) {\r\n this.ecoModeEnabledPLC = livedata.ecoModeEnabledPLC;\r\n this.currentPeopleFrequencyText = `${MathUtils.roundTo(livedata.peoplePerMinute, 1)} Pers/min`;\r\n this.percent = livedata.workloadPercent / 100;\r\n this.percentText = `${MathUtils.roundTo(livedata.workloadPercent, 1)}%`;\r\n this.ecoModePLCDisabledText = this.ecoModeEnabledPLC ? '' : 'ecomode.phrase.ecoModePLCDisabled';\r\n\r\n this.activeThreshold = this.getActiveThreshold(this.percent);\r\n this.outdated = livedata.outdated;\r\n }\r\n\r\n this.ropewayEcoModeSettings = settings;\r\n });\r\n }\r\n\r\n async toggleEcoMode(event: Event): Promise {\r\n if (!this.isRopewayOwner) {\r\n return;\r\n }\r\n\r\n event.stopPropagation();\r\n const hasWritePermission = await firstValueFrom(this.hasWritePermission$);\r\n const currentState = this.ecoModeEnabledCockpit;\r\n\r\n if (hasWritePermission) {\r\n const confirmationText = currentState ? 'ecomode.phrase.turnOff' : 'ecomode.phrase.turnOn';\r\n const confirmed = await this.confirmationDialogService.presentAlert(confirmationText, 'general.term.confirm');\r\n\r\n if (confirmed) {\r\n this.ecoModeEnabledCockpit = !currentState;\r\n this.ropewayEcoModeSettings.ecoModeEnabledCockpit = !currentState;\r\n this.ropewayEcoModeSettingsService\r\n .saveRopewayEcoModeSettings(this.ropewayEcoModeSettings)\r\n .pipe(takeUntil(this.onDestroy$))\r\n .subscribe((success) => {\r\n if (!success) {\r\n this.ecoModeEnabledCockpit = currentState;\r\n this.ropewayEcoModeSettings.ecoModeEnabledCockpit = currentState;\r\n }\r\n });\r\n }\r\n }\r\n }\r\n\r\n async openEcoModeSettings(): Promise {\r\n const hasWritePermission = await firstValueFrom(this.hasWritePermission$);\r\n\r\n if (hasWritePermission) {\r\n const modal = await this.modalCtrl.create({\r\n component: RopewayEcoModeSettingsModal,\r\n componentProps: {\r\n ropewayEcoModeSettings: this.ropewayEcoModeSettings,\r\n },\r\n cssClass: 'sis-ropeway-ecomode-settings-modal',\r\n });\r\n await modal.present();\r\n }\r\n }\r\n\r\n async openEcoModeChart(): Promise {\r\n const modal = await this.modalCtrl.create({\r\n component: EcoModeChartComponent,\r\n\r\n cssClass: 'sis-ropeway-ecomode-chart-modal',\r\n });\r\n await modal.present();\r\n }\r\n\r\n async openLogbook(): Promise {\r\n await this.logbookModalService.presentLogbookModal([[FeatureId.COCKPIT_ECOMODE]]);\r\n }\r\n\r\n private getActiveThreshold(percent: number): number {\r\n if (percent >= this.thresholdMediumPercent) {\r\n return 3;\r\n }\r\n if (percent >= this.thresholdLowPercent) {\r\n return 2;\r\n }\r\n if (percent > 0) {\r\n return 1;\r\n }\r\n return 0;\r\n }\r\n\r\n private getThresholdText(\r\n lowerLimitPercent: number,\r\n upperLimitPercent: number,\r\n maxTransportQuantityPerMinute: number\r\n ): string {\r\n if (upperLimitPercent === 1) {\r\n const lowerPersMin = MathUtils.roundTo(maxTransportQuantityPerMinute * lowerLimitPercent, 1);\r\n\r\n return `≥ ${lowerPersMin} Pers/min`;\r\n }\r\n\r\n const upperLimitPersMin = MathUtils.roundTo(maxTransportQuantityPerMinute * upperLimitPercent, 1);\r\n\r\n return `< ${upperLimitPersMin} Pers/min`;\r\n }\r\n}\r\n","\r\n \r\n \r\n \r\n 0%\r\n 100%\r\n {{ this.currentPeopleFrequencyText }}\r\n {{ this.percentText }}\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n {{ 'ecomode.term.empty' | translate }}\r\n \r\n {{ this.speedEmpty }} m/s \r\n \r\n \r\n \r\n {{ this.thresholdLowText }}\r\n \r\n {{ this.speedLow }} m/s \r\n \r\n \r\n \r\n {{ this.thresholdMediumText }}\r\n \r\n {{ this.speedMedium }} m/s \r\n \r\n \r\n \r\n {{ this.thresholdHighText }}\r\n \r\n {{ this.speedHigh }} m/s \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 {{ 'ecomode.phrase.onOff' | translate }}\r\n \r\n \r\n \r\n \r\n {{ this.ecoModePLCDisabledText | translate }}\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 {{ 'general.term.settings' | translate }}\r\n \r\n
\r\n","import { Component, OnInit } from '@angular/core';\r\nimport { combineLatest } from 'rxjs';\r\nimport { takeUntil } from 'rxjs/operators';\r\nimport { Unsubscriber } from 'src/app/core/unsubscriber';\r\nimport { EnergyLiveData } from 'src/app/maps/livedata/energy-livedata.model';\r\nimport { EnergyLiveDataService } from 'src/app/maps/livedata/energy-livedata.service';\r\nimport { SelectedMapElementService } from 'src/app/maps/selected-map-element.service';\r\n\r\n@Component({\r\n selector: 'sis-ropeway-energy-detailview',\r\n templateUrl: './ropeway-energy-detailview.component.html',\r\n styleUrls: ['./ropeway-energy-detailview.component.scss'],\r\n standalone: false\r\n})\r\nexport class RopewayEnergyDetailViewComponent extends Unsubscriber implements OnInit {\r\n devices: Array<{ displayName: string; power: string }> = [];\r\n totalPower: string;\r\n hasEnergyWh10Sec: boolean;\r\n\r\n constructor(\r\n private energyLiveDataService: EnergyLiveDataService,\r\n private selectedMapElementService: SelectedMapElementService\r\n ) {\r\n super();\r\n }\r\n\r\n ngOnInit() {\r\n combineLatest([this.energyLiveDataService.energy$, this.selectedMapElementService.selectedRopeway$])\r\n .pipe(takeUntil(this.onDestroy$))\r\n .subscribe(([energyLiveDatas, ropeway]) => {\r\n if (ropeway) {\r\n energyLiveDatas = energyLiveDatas.filter((d) => d.parentSisId === ropeway.sisId);\r\n }\r\n\r\n this.update(energyLiveDatas);\r\n });\r\n }\r\n\r\n trackByDisplayName(device: { displayName: string; power: string }): string {\r\n return device.displayName;\r\n }\r\n\r\n private update(liveDatas: EnergyLiveData[]): void {\r\n this.totalPower =\r\n !liveDatas.length || liveDatas.every((e) => e.outdated)\r\n ? '?'\r\n : Math.round(\r\n liveDatas\r\n .filter((e) => !e.outdated && e.powerW != null)\r\n .reduce((sum: number, current: EnergyLiveData) => (sum += current.powerW / 1000), 0)\r\n ) + ' kW';\r\n\r\n this.devices = liveDatas\r\n .map((e) => ({\r\n displayName: e.displayName,\r\n power: e.outdated || e.powerW == null ? '?' : Math.round(e.powerW / 1000) + ' kW',\r\n }))\r\n .sort((a, b) => a.displayName?.localeCompare(b.displayName));\r\n\r\n this.hasEnergyWh10Sec = liveDatas.some((d) => d.energyWh10Sec != null);\r\n }\r\n}\r\n","\r\n \r\n {{ 'energy.term.devices' | translate }}\r\n {{ 'energy.term.power' | translate }}\r\n \r\n\r\n
\r\n\r\n \r\n {{ device.displayName }}\r\n {{ device.power }}\r\n \r\n\r\n
\r\n\r\n \r\n {{ 'general.term.total' | translate }}\r\n {{ this.totalPower }}\r\n \r\n\r\n \r\n \r\n \r\n
\r\n","import { Component, Input, OnInit } from '@angular/core';\r\nimport { AbstractControl, FormControl, FormGroup, ValidationErrors, ValidatorFn, Validators } from '@angular/forms';\r\nimport { ModalController } from '@ionic/angular';\r\nimport { combineLatest, filter, map, take, takeUntil, withLatestFrom } from 'rxjs';\r\nimport { EventBusService } from 'src/app/core/eventbus/event-bus.service';\r\nimport { RopewaySettingsUpdatedEvent } from 'src/app/core/eventbus/events';\r\nimport { Unsubscriber } from 'src/app/core/unsubscriber';\r\nimport { ScreenSizeService } from 'src/app/core/utils/screen-size.service';\r\nimport { DestinationService } from 'src/app/domain/destination/destination.service';\r\nimport { Feature } from 'src/app/domain/feature/feature.model';\r\nimport { FeatureAccessLevel } from 'src/app/domain/feature/feature-access-level.model';\r\nimport { FeatureId } from 'src/app/domain/feature/feature-id.model';\r\nimport { UserSettingsService } from 'src/app/domain/user-settings/user-settings.service';\r\nimport { Ropeway } from 'src/app/maps/domain/ropeway.model';\r\nimport { RopewaySettingsService } from 'src/app/maps/domain/ropeway-settings/ropeway-settings.service';\r\n\r\n@Component({\r\n selector: 'sis-settings-modal',\r\n templateUrl: './ropeway-settings-modal.component.html',\r\n styleUrls: ['./ropeway-settings-modal.component.scss'],\r\n standalone: false\r\n})\r\nexport class RopewaySettingsModal extends Unsubscriber implements OnInit {\r\n readonly bigScreenMode$ = this.screenSizeService.bigScreenMode$;\r\n readonly isAdministrator$ = this.userSettingsService.userSettings$.pipe(map((settings) => settings.isAdministrator));\r\n readonly hasAvailabilityFeatureWritePermission$ = this.destinationService.selectedTenantFeatures$.pipe(\r\n map((features) =>\r\n features.some((f) =>\r\n f.hasMinimumRequirementFor(new Feature(FeatureId.COCKPIT_ROPEWAY_AVAILABILITY, FeatureAccessLevel.WRITE))\r\n )\r\n )\r\n );\r\n readonly hasAvailabilityFeatureReadPermission$ = this.destinationService.selectedTenantFeatures$.pipe(\r\n map((features) =>\r\n features.some((f) =>\r\n f.hasMinimumRequirementFor(new Feature(FeatureId.COCKPIT_ROPEWAY_AVAILABILITY, FeatureAccessLevel.READ))\r\n )\r\n )\r\n );\r\n\r\n @Input() ropeway: Ropeway;\r\n @Input() tenantGuid: string;\r\n\r\n formGroup: FormGroup;\r\n editedSettings: Ropeway;\r\n edited: boolean = false;\r\n saving: boolean = false;\r\n propertyColSize: number = 4;\r\n private isAdministrator: boolean;\r\n\r\n constructor(\r\n private modalCtrl: ModalController,\r\n private screenSizeService: ScreenSizeService,\r\n private eventBus: EventBusService,\r\n private userSettingsService: UserSettingsService,\r\n private ropewaySettingsService: RopewaySettingsService,\r\n private destinationService: DestinationService\r\n ) {\r\n super();\r\n }\r\n\r\n async ngOnInit(): Promise {\r\n combineLatest([\r\n this.hasAvailabilityFeatureReadPermission$,\r\n this.hasAvailabilityFeatureWritePermission$,\r\n this.isAdministrator$,\r\n ])\r\n .pipe(take(1), takeUntil(this.onDestroy$))\r\n .subscribe(([availabilityReadPermission, availabilityWritePermission, isAdmin]) => {\r\n this.formGroup = new FormGroup(\r\n {\r\n fullname: new FormControl(this.ropeway.fullname, { validators: [Validators.required] }),\r\n alias: new FormControl(this.ropeway.alias, [Validators.required]),\r\n constructedBy: new FormControl(this.ropeway.constructedBy, [Validators.required]),\r\n controllerType: new FormControl(this.ropeway.controllerType, [Validators.required]),\r\n maxTransportQuantityPerHour: new FormControl(this.ropeway.maxTransportQuantityPerHour),\r\n operatingTimeFrom: new FormControl(this.ropeway.operatingTimeFrom),\r\n operatingTimeUntil: new FormControl(this.ropeway.operatingTimeUntil),\r\n },\r\n {\r\n validators: [this.validateDatetime()],\r\n }\r\n );\r\n\r\n if (availabilityReadPermission) {\r\n this.formGroup.addControl('availability', new FormControl(this.ropeway.availability));\r\n\r\n if (!availabilityWritePermission) {\r\n this.formGroup.controls.availability.disable();\r\n }\r\n }\r\n\r\n this.isAdministrator = isAdmin;\r\n if (!this.isAdministrator) {\r\n this.formGroup.controls.fullname.disable({ emitEvent: false });\r\n this.formGroup.controls.alias.disable({ emitEvent: false });\r\n this.formGroup.controls.constructedBy.disable({ emitEvent: false });\r\n this.formGroup.controls.controllerType.disable({ emitEvent: false });\r\n this.formGroup.controls.maxTransportQuantityPerHour.disable({ emitEvent: false });\r\n }\r\n\r\n this.formGroup.valueChanges.pipe(takeUntil(this.onDestroy$)).subscribe((values) => {\r\n this.editedSettings.fullname = values.fullname;\r\n this.editedSettings.alias = values.alias;\r\n this.editedSettings.constructedBy = values.constructedBy;\r\n this.editedSettings.controllerType = values.controllerType;\r\n if (values.maxTransportQuantityPerHour != null) {\r\n this.editedSettings.maxTransportQuantityPerHour = Number.parseInt(values.maxTransportQuantityPerHour);\r\n }\r\n this.editedSettings.operatingTimeFrom = values.operatingTimeFrom;\r\n this.editedSettings.operatingTimeUntil = values.operatingTimeUntil;\r\n if (values.availability != null) {\r\n this.editedSettings.availability = values.availability;\r\n }\r\n\r\n this.edited = this.isEdited();\r\n });\r\n });\r\n\r\n this.eventBus\r\n .observe(RopewaySettingsUpdatedEvent)\r\n .pipe(\r\n withLatestFrom(this.userSettingsService.userSettings$),\r\n filter(([event, userSettings]) => event.changedBy === userSettings.userGuid),\r\n takeUntil(this.onDestroy$)\r\n )\r\n .subscribe(([event]) => {\r\n if (event.ropewaySettings.guid === this.ropeway.guid && event.updateSuccessful) {\r\n this.close();\r\n }\r\n this.saving = false;\r\n });\r\n\r\n this.reset();\r\n }\r\n\r\n isEdited(): boolean {\r\n let edited = false;\r\n\r\n if (this.isAdministrator) {\r\n edited =\r\n this.editedSettings.fullname !== this.ropeway.fullname ||\r\n this.editedSettings.alias !== this.ropeway.alias ||\r\n this.editedSettings.controllerType !== this.ropeway.controllerType ||\r\n this.editedSettings.constructedBy !== this.ropeway.constructedBy ||\r\n this.editedSettings.maxTransportQuantityPerHour !== this.ropeway.maxTransportQuantityPerHour;\r\n }\r\n return (\r\n edited ||\r\n this.editedSettings.operatingTimeFrom !== this.ropeway.operatingTimeFrom ||\r\n this.editedSettings.operatingTimeUntil !== this.ropeway.operatingTimeUntil ||\r\n this.editedSettings.availability !== this.ropeway.availability\r\n );\r\n }\r\n\r\n save(): void {\r\n if (!this.saving) {\r\n if (!this.edited) {\r\n this.close();\r\n } else {\r\n this.ropewaySettingsService\r\n .saveRopewaySettings({\r\n fullname: this.editedSettings.fullname,\r\n alias: this.editedSettings.alias,\r\n guid: this.editedSettings.guid,\r\n constructedBy: this.editedSettings.constructedBy,\r\n controllerType: this.editedSettings.controllerType,\r\n maxTransportQuantityPerHour: this.editedSettings.maxTransportQuantityPerHour,\r\n operatingTimeFrom: this.editedSettings.operatingTimeFrom,\r\n operatingTimeUntil: this.editedSettings.operatingTimeUntil,\r\n availability: this.editedSettings.availability,\r\n sisId: this.editedSettings.sisId,\r\n tenantGuid: this.tenantGuid,\r\n availabilityIsAvailable: this.editedSettings.availabilityIsAvailable,\r\n })\r\n .subscribe(() => (this.saving = false));\r\n\r\n this.saving = true;\r\n }\r\n }\r\n }\r\n\r\n validateDatetime(): ValidatorFn {\r\n return (control: AbstractControl): ValidationErrors | null => {\r\n const availability = control.get('availability')?.value as boolean;\r\n\r\n if (availability === undefined || availability === false) {\r\n return null;\r\n }\r\n\r\n const operatingTimeFrom = control.get('operatingTimeFrom');\r\n const operatingTimeUntil = control.get('operatingTimeUntil');\r\n\r\n const errors: ValidationErrors = {};\r\n\r\n if (!operatingTimeFrom.value || operatingTimeFrom.value === '') {\r\n errors.operatingTimeFrom = true;\r\n }\r\n\r\n if (!operatingTimeUntil.value || operatingTimeUntil.value === '') {\r\n errors.operatingTimeUntil = true;\r\n }\r\n\r\n return errors;\r\n };\r\n }\r\n\r\n reset(): void {\r\n this.editedSettings = { ...this.ropeway };\r\n\r\n this.formGroup.controls.fullname.setValue(this.ropeway.fullname, { emitEvent: false });\r\n this.formGroup.controls.alias.setValue(this.ropeway.alias, { emitEvent: false });\r\n this.formGroup.controls.controllerType.setValue(this.ropeway.controllerType, { emitEvent: false });\r\n this.formGroup.controls.constructedBy.setValue(this.ropeway.constructedBy, { emitEvent: false });\r\n this.formGroup.controls.maxTransportQuantityPerHour.setValue(this.ropeway.maxTransportQuantityPerHour, {\r\n emitEvent: false,\r\n });\r\n this.formGroup.controls.operatingTimeFrom.setValue(this.ropeway.operatingTimeFrom, { emitEvent: false });\r\n this.formGroup.controls.operatingTimeUntil.setValue(this.ropeway.operatingTimeUntil, { emitEvent: false });\r\n this.formGroup.controls.availability?.setValue(this.ropeway.availability, { emitEvent: false });\r\n\r\n this.edited = false;\r\n }\r\n\r\n close(): void {\r\n this.modalCtrl.dismiss();\r\n }\r\n}\r\n","\r\n \r\n \r\n {{ 'general.term.ropewaySettings' | translate }}\r\n \r\n \r\n \r\n\r\n\r\n\r\n\r\n \r\n \r\n
\r\n \r\n {{ 'general.term.fullname' | translate }}\r\n \r\n \r\n \r\n \r\n \r\n {{ 'general.term.alias' | translate }}\r\n \r\n \r\n \r\n \r\n \r\n {{ 'general.term.constructedBy' | translate }}\r\n \r\n \r\n \r\n \r\n \r\n {{ 'general.term.controllerType' | translate }}\r\n \r\n \r\n \r\n \r\n \r\n \r\n {{ 'general.term.transportQuantity' | translate }}\r\n \r\n \r\n \r\n \r\n \r\n {{ 'general.term.operatingTime' | translate }}\r\n \r\n \r\n {{ 'general.term.toTimeOnly' | translate }}\r\n \r\n \r\n \r\n \r\n \r\n {{ 'general.term.availability' | translate }}\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 {{ 'general.term.fullname' | translate }}\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n {{ 'general.term.alias' | translate }}\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n {{ 'general.term.constructedBy' | translate }}\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n {{ 'general.term.controllerType' | translate }}\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n {{ 'general.term.transportQuantity' | translate }}\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n {{ 'general.term.operatingTime' | translate }}\r\n \r\n \r\n \r\n \r\n {{ 'general.term.toTimeOnly' | translate }}\r\n \r\n \r\n \r\n \r\n \r\n \r\n {{ 'general.term.availability' | translate }}\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, OnInit } from '@angular/core';\r\nimport { ModalController } from '@ionic/angular';\r\nimport { filter, firstValueFrom, map, takeUntil } from 'rxjs';\r\nimport { EventBusService } from 'src/app/core/eventbus/event-bus.service';\r\nimport { RopewaySettingsUpdatedEvent } from 'src/app/core/eventbus/events';\r\nimport { Unsubscriber } from 'src/app/core/unsubscriber';\r\nimport { DestinationService } from 'src/app/domain/destination/destination.service';\r\nimport { Feature } from 'src/app/domain/feature/feature.model';\r\nimport { FeatureAccessLevel } from 'src/app/domain/feature/feature-access-level.model';\r\nimport { FeatureId } from 'src/app/domain/feature/feature-id.model';\r\nimport { Ropeway } from 'src/app/maps/domain/ropeway.model';\r\nimport { SelectedMapElementService } from 'src/app/maps/selected-map-element.service';\r\nimport { RopewaySettingsModal } from 'src/app/maps/widgets/detailviews/ropeway-settings-detailview/modal/ropeway-settings-modal.component';\r\n\r\n@Component({\r\n selector: 'sis-ropeway-settings-detailview',\r\n templateUrl: './ropeway-settings-detailview.component.html',\r\n styleUrls: ['./ropeway-settings-detailview.component.scss'],\r\n standalone: false\r\n})\r\nexport class RopewaySettingsDetailViewComponent extends Unsubscriber implements OnInit {\r\n private readonly requiredFeatureWrite = new Feature(FeatureId.COCKPIT_ROPEWAY_SETTINGS, FeatureAccessLevel.WRITE);\r\n readonly hasWritePermission$ = this.destinationService.selectedTenantFeatures$.pipe(\r\n map((features) => features.some((feature) => feature.hasMinimumRequirementFor(this.requiredFeatureWrite)))\r\n );\r\n readonly hasAvailabilityFeatureReadPermission$ = this.destinationService.selectedTenantFeatures$.pipe(\r\n map((features) => features.some((f) => f.hasMinimumRequirementFor(new Feature(FeatureId.COCKPIT_ROPEWAY_AVAILABILITY, FeatureAccessLevel.READ))))\r\n );\r\n\r\n ropeway: Ropeway;\r\n operatingTimeFromFormatted: string;\r\n operatingTimeUntilFormatted: string;\r\n\r\n constructor(\r\n private destinationService: DestinationService,\r\n private selectedMapElementService: SelectedMapElementService,\r\n private modalCtrl: ModalController,\r\n private eventBus: EventBusService\r\n ) {\r\n super();\r\n }\r\n ngOnInit(): void {\r\n this.selectedMapElementService.selectedRopeway$\r\n .pipe(\r\n filter((ropeway) => !!ropeway),\r\n takeUntil(this.onDestroy$)\r\n )\r\n .subscribe((ropeway) => {\r\n this.ropeway = ropeway;\r\n this.operatingTimeFromFormatted = this.formatTime(this.ropeway.operatingTimeFrom);\r\n this.operatingTimeUntilFormatted = this.formatTime(this.ropeway.operatingTimeUntil);\r\n });\r\n\r\n this.eventBus\r\n .observe(RopewaySettingsUpdatedEvent)\r\n .pipe(\r\n takeUntil(this.onDestroy$),\r\n filter((event) => event.ropewaySettings.guid == this.ropeway.guid)\r\n )\r\n .subscribe((event) => {\r\n Object.assign(this.ropeway, event.ropewaySettings);\r\n this.operatingTimeFromFormatted = this.formatTime(this.ropeway.operatingTimeFrom);\r\n this.operatingTimeUntilFormatted = this.formatTime(this.ropeway.operatingTimeUntil);\r\n });\r\n }\r\n\r\n async openSettingsModal(): Promise {\r\n const hasWritePermission = await firstValueFrom(this.hasWritePermission$);\r\n\r\n if (hasWritePermission) {\r\n const modal = await this.modalCtrl.create({\r\n component: RopewaySettingsModal,\r\n componentProps: {\r\n ropeway: this.ropeway,\r\n tenantGuid: (await firstValueFrom(this.destinationService.selectedTenant$)).guid,\r\n },\r\n cssClass: 'sis-ropeway-settings-modal',\r\n });\r\n await modal.present();\r\n }\r\n }\r\n\r\n private formatTime(time: string): string {\r\n if (!time || time === '') {\r\n return '';\r\n }\r\n\r\n const timeParts = time.split(':', 2);\r\n\r\n if (timeParts.length != 2) {\r\n return '';\r\n }\r\n\r\n return `${timeParts[0]}:${timeParts[1]}`;\r\n }\r\n}\r\n","\r\n \r\n \r\n {{ 'general.term.constructedBy' | translate }}\r\n \r\n {{ this.ropeway.constructedBy }}\r\n \r\n \r\n \r\n {{ 'general.term.controllerType' | translate }}\r\n \r\n {{ this.ropeway.controllerType }}\r\n \r\n \r\n \r\n \r\n {{ 'general.term.transportQuantity' | translate }}\r\n \r\n {{ this.ropeway.maxTransportQuantityPerHour }}\r\n \r\n \r\n \r\n {{ 'general.term.operatingTime' | translate }}\r\n \r\n \r\n {{ this.operatingTimeFromFormatted }}\r\n {{ 'general.term.toTimeOnly' | translate }}\r\n {{ this.operatingTimeUntilFormatted }}\r\n \r\n \r\n \r\n \r\n \r\n {{ 'general.term.availability' | translate }}\r\n \r\n \r\n \r\n \r\n \r\n\r\n
\r\n \r\n {{ 'general.term.settings' | translate }}\r\n \r\n
\r\n","import { Component } from '@angular/core';\r\nimport { SelectChangeEventDetail } from '@ionic/angular';\r\nimport { BehaviorSubject, combineLatest, firstValueFrom, map, takeUntil } from 'rxjs';\r\nimport { EventBusService } from 'src/app/core/eventbus/event-bus.service';\r\nimport { SambesiWhatsUpMessagesUpdatedEvent } from 'src/app/core/eventbus/events';\r\nimport { Unsubscriber } from 'src/app/core/unsubscriber';\r\nimport { DestinationService } from 'src/app/domain/destination/destination.service';\r\nimport { MasterdataService } from 'src/app/maps/domain/masterdata.service';\r\nimport { SambesiWhatsUpService } from 'src/app/maps/livedata/sambesi-whatsup.service';\r\nimport { SelectedMapElementService } from 'src/app/maps/selected-map-element.service';\r\nimport { UserMessage } from 'src/app/user-message/user-message.model';\r\nimport { UserMessageService } from 'src/app/user-message/user-message.service';\r\nimport { UserMessageColor } from 'src/app/user-message/user-message-color';\r\nimport { UserMessageIcon } from 'src/app/user-message/user-message-icon';\r\n\r\n@Component({\r\n selector: 'sis-sambesi-whatsup-detailview',\r\n templateUrl: './sambesi-whatsup-detailview.component.html',\r\n styleUrls: ['./sambesi-whatsup-detailview.component.scss'],\r\n standalone: false\r\n})\r\nexport class SambesiWhatsUpDetailViewComponent extends Unsubscriber {\r\n private readonly ropewayFilter$ = new BehaviorSubject(undefined);\r\n\r\n isLoadingMessages = false;\r\n\r\n readonly messages$ = combineLatest([\r\n this.sambesiWhatsUpService.messages$,\r\n this.selectedMapElementService.selectedRopeway$,\r\n this.ropewayFilter$,\r\n ]).pipe(\r\n map(([messages, selectedRopeway, ropewayFilter]) =>\r\n selectedRopeway == null\r\n ? ropewayFilter == null\r\n ? messages\r\n : messages.filter((m) => m.ropewaySisId === ropewayFilter)\r\n : messages.filter((m) => m.ropewaySisId === selectedRopeway.sisId)\r\n )\r\n );\r\n\r\n readonly timestamp$ = this.messages$.pipe(\r\n map((messages) =>\r\n messages.length > 0\r\n ? new Date(messages.map((m) => m.timestamp.getTime()).reduce((a, b) => Math.max(a, b), 0))\r\n : undefined\r\n )\r\n );\r\n\r\n readonly ropeways$ = this.masterDataService.masterData$.pipe(map((masterData) => masterData.ropeways));\r\n\r\n constructor(\r\n private eventBus: EventBusService,\r\n public selectedMapElementService: SelectedMapElementService,\r\n public sambesiWhatsUpService: SambesiWhatsUpService,\r\n private destinationService: DestinationService,\r\n private masterDataService: MasterdataService,\r\n private userMessageService: UserMessageService\r\n ) {\r\n super();\r\n }\r\n\r\n ngOnInit() {\r\n this.eventBus\r\n .observe(SambesiWhatsUpMessagesUpdatedEvent)\r\n .pipe(takeUntil(this.onDestroy$))\r\n .subscribe(() => {\r\n this.isLoadingMessages = false;\r\n });\r\n }\r\n\r\n async updateSambesiMessages() {\r\n this.isLoadingMessages = true;\r\n const selectedRopeway = await firstValueFrom(this.selectedMapElementService.selectedRopeway$);\r\n const selectedTenant = await firstValueFrom(this.destinationService.selectedTenant$);\r\n this.sambesiWhatsUpService.updateSambesiMessages(selectedTenant.guid, selectedRopeway?.sisId).subscribe({\r\n error: () => {\r\n this.isLoadingMessages = false;\r\n const translateKey = 'sambesi.message.failed';\r\n const userMessage = new UserMessage({\r\n message: translateKey,\r\n icon: UserMessageIcon.failed,\r\n durationMs: 2000,\r\n position: 'top',\r\n color: UserMessageColor.red,\r\n });\r\n\r\n this.userMessageService.presentToast(userMessage);\r\n },\r\n });\r\n }\r\n\r\n setRopewayFilter(sisId: CustomEvent) {\r\n this.ropewayFilter$.next(sisId.detail.value);\r\n }\r\n\r\n clearRopewayFilter() {\r\n this.ropewayFilter$.next(undefined);\r\n }\r\n}\r\n","
\r\n \r\n \r\n

{{ 'sambesi.term.filter' | translate }}

\r\n
\r\n \r\n \r\n \r\n {{ ropeway.sisId }}\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 {{ 'general.phrase.lastUpdate' | translate }}\r\n \r\n \r\n \r\n {{ timestamp | date : 'dd.MM.yyyy HH:mm' }}\r\n \r\n \r\n \r\n \r\n \r\n Sambesi Citrix \r\n \r\n \r\n \r\n \r\n
\r\n","import { Component, Input } from '@angular/core';\r\nimport { Unsubscriber } from 'src/app/core/unsubscriber';\r\nimport { SambesiWhatsUpMessage } from 'src/app/maps/livedata/sambesi-whatsup-message.model';\r\n\r\ninterface DisabledToolTips {\r\n messageTitle: boolean;\r\n nodeName: boolean;\r\n jobName: boolean;\r\n assignedPerson: boolean;\r\n}\r\n\r\n@Component({\r\n selector: 'sis-sambesi-whatsup-message',\r\n templateUrl: './sambesi-whatsup-message.component.html',\r\n styleUrls: ['./sambesi-whatsup-message.component.scss'],\r\n standalone: false\r\n})\r\nexport class SambesiWhatsUpMessageComponent extends Unsubscriber {\r\n @Input() sambesiWhatsUpMessage: SambesiWhatsUpMessage;\r\n disabledTooltips: DisabledToolTips = {\r\n messageTitle: false,\r\n nodeName: false,\r\n jobName: false,\r\n assignedPerson: false,\r\n };\r\n\r\n constructor() {\r\n super();\r\n }\r\n\r\n updateTooltipDisabled(element: HTMLElement, name: keyof DisabledToolTips) {\r\n this.disabledTooltips[name] = element.scrollWidth <= element.clientWidth;\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 {{ sambesiWhatsUpMessage.ropewaySisId }} -\r\n {{ sambesiWhatsUpMessage.installationName }}\r\n
\r\n
\r\n \r\n {{ sambesiWhatsUpMessage.nodeName }}\r\n
\r\n \r\n {{ sambesiWhatsUpMessage.jobName }}\r\n \r\n \r\n
\r\n
{{ sambesiWhatsUpMessage.date | date : 'dd.MM.yy' }}
\r\n \r\n {{ sambesiWhatsUpMessage.assignedPerson }}\r\n
\r\n \r\n\r\n","import { MeteoStation } from 'src/app/maps/domain/meteostation.model';\r\nimport { MeteoLivedata } from 'src/app/maps/livedata/meteo-livedata.model';\r\n\r\nexport class SnowmakingDetailViewDisplayData {\r\n readonly alias: string;\r\n\r\n readonly windSpeed: string = '';\r\n readonly temperature: string = '';\r\n readonly wetBulbTemperature: string = '';\r\n readonly order: number;\r\n\r\n constructor(meteoStation: MeteoStation, liveData: MeteoLivedata) {\r\n if (meteoStation) {\r\n this.alias = meteoStation.alias;\r\n this.order = meteoStation.snowmakingWidgetOrder;\r\n }\r\n\r\n if (liveData) {\r\n this.windSpeed = liveData.windSpeedKmh == null ? '' : liveData.outdated ? '?' : liveData.windSpeedKmh.toString();\r\n this.temperature =\r\n liveData.temperatureCelsius == null ? '' : liveData.outdated ? '?' : liveData.temperatureCelsius.toString();\r\n this.wetBulbTemperature =\r\n liveData.wetBulbTemperatureCelsius == null\r\n ? ''\r\n : liveData.outdated\r\n ? '?'\r\n : liveData.wetBulbTemperatureCelsius.toString();\r\n }\r\n }\r\n}\r\n","import { Component, OnInit } from '@angular/core';\r\nimport { map, switchMap, takeUntil } from 'rxjs/operators';\r\nimport { Unsubscriber } from 'src/app/core/unsubscriber';\r\nimport { MasterdataService } from 'src/app/maps/domain/masterdata.service';\r\nimport { MeteoLivedataService } from 'src/app/maps/livedata/meteo-livedata.service';\r\nimport { SnowmakingDetailViewDisplayData } from 'src/app/maps/widgets/detailviews/snowmaking-detailview/snowmaking-detailview-displaydata.model';\r\n\r\n@Component({\r\n selector: 'sis-snowmaking-detailview',\r\n templateUrl: './snowmaking-detailview.component.html',\r\n styleUrls: ['./snowmaking-detailview.component.scss'],\r\n standalone: false\r\n})\r\nexport class SnowmakingDetailViewComponent extends Unsubscriber implements OnInit {\r\n readonly temperatureUnit = '°C';\r\n readonly windSpeedUnit = 'km/h';\r\n\r\n displayData: SnowmakingDetailViewDisplayData[] = [];\r\n\r\n constructor(private masterDataService: MasterdataService, private meteoLiveDataService: MeteoLivedataService) {\r\n super();\r\n }\r\n\r\n ngOnInit(): void {\r\n this.masterDataService.masterData$\r\n .pipe(\r\n switchMap((masterData) =>\r\n this.meteoLiveDataService.meteoLiveDatas$.pipe(map((meteoLiveDatas) => ({ masterData, meteoLiveDatas })))\r\n ),\r\n takeUntil(this.onDestroy$)\r\n )\r\n .subscribe(({ masterData, meteoLiveDatas }) => {\r\n if (!masterData || !meteoLiveDatas) {\r\n this.displayData = [];\r\n return;\r\n }\r\n\r\n const meteoStations = masterData.meteoStations.filter((m) => m.snowmakingWidgetOrder != null);\r\n\r\n const meteoDeviceSisIds = meteoStations.map((m) => m.meteoDeviceSisId);\r\n\r\n const meteoLiveData = meteoLiveDatas.filter((l) => meteoDeviceSisIds.includes(l.meteoDeviceSisId));\r\n\r\n this.displayData = meteoStations\r\n .map(\r\n (m) =>\r\n new SnowmakingDetailViewDisplayData(\r\n m,\r\n meteoLiveData.find((l) => l.meteoDeviceSisId === m.meteoDeviceSisId)\r\n )\r\n )\r\n .sort((a, b) => a.order - b.order);\r\n });\r\n }\r\n}\r\n","\r\n
\r\n \r\n {{ 'destination.term.location' | translate }}\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 {{ data.alias }}\r\n {{ data.wetBulbTemperature }}\r\n {{ data.temperature }}\r\n {{ data.windSpeed }}\r\n \r\n
\r\n","import { SisConverter } from 'src/app/core/utils/sis-converter';\r\nimport { RopewayTripLog } from 'src/app/maps/widgets/detailviews/stoptime-detailview/ropeway-triplog.model';\r\n\r\nexport class RopewayTripLogAdapter {\r\n static adapt(item: any): RopewayTripLog[] {\r\n const tripLogs: RopewayTripLog[] = [];\r\n\r\n if (item) {\r\n item.forEach((e: any) => {\r\n tripLogs.push({\r\n startTime: SisConverter.toDateOrUndefined(e.startTime),\r\n stopTime: SisConverter.toDateOrUndefined(e.stopTime),\r\n deviceSisId: e.deviceSisId,\r\n code: e.code,\r\n level: e.level,\r\n message: e.message,\r\n });\r\n });\r\n }\r\n\r\n return tripLogs;\r\n }\r\n}\r\n","import { HttpClient } from '@angular/common/http';\r\nimport { Injectable } from '@angular/core';\r\nimport { Observable, of, timer } from 'rxjs';\r\nimport { map, share, switchMap } from 'rxjs/operators';\r\nimport { SelectedMapElementService } from 'src/app/maps/selected-map-element.service';\r\nimport { RopewayTripLogAdapter } from 'src/app/maps/widgets/detailviews/stoptime-detailview/ropeway-triplog.adapter';\r\nimport { RopewayTripLog } from 'src/app/maps/widgets/detailviews/stoptime-detailview/ropeway-triplog.model';\r\nimport { environment } from 'src/environments/environment';\r\n\r\n@Injectable({\r\n providedIn: 'root',\r\n})\r\nexport class RopewayTripLogService {\r\n private readonly url = environment.baseUrlApi + '/ropewaytriplog';\r\n\r\n readonly ropewayTripLogs$: Observable = this.selectedMapElementService.selectedRopeway$.pipe(\r\n switchMap((ropeway) => {\r\n if (!ropeway) {\r\n return of([]);\r\n }\r\n\r\n return timer(0, 10000).pipe(\r\n switchMap(() =>\r\n this.http.get(`${this.url}/${ropeway.sisId}`).pipe(map((data: any) => RopewayTripLogAdapter.adapt(data)))\r\n )\r\n );\r\n }),\r\n share()\r\n );\r\n\r\n constructor(private http: HttpClient, private selectedMapElementService: SelectedMapElementService) {}\r\n}\r\n","import { DateTimeFormatPipe } from 'src/app/core/utils/date-time-format.pipe';\r\n\r\nexport class StoptimeDetailViewItem {\r\n private readonly hoursUnit = 'h';\r\n private readonly minutesUnit = 'min';\r\n private readonly secondsUnit = 's';\r\n\r\n readonly displayedBeginTime: string;\r\n readonly displayedEndTime: string;\r\n readonly displayedCode: string;\r\n\r\n displayedTime: string;\r\n displayedUnit: string;\r\n\r\n constructor(\r\n private offsetSpaToApiMilliseconds: number,\r\n private dateTimeFormatPipe: DateTimeFormatPipe,\r\n private beginTime: Date,\r\n private endTime: Date,\r\n private code: string,\r\n private level: string,\r\n public displayedMessage: string,\r\n public stopped: boolean\r\n ) {\r\n this.displayedBeginTime = this.dateTimeFormatPipe.transform(this.beginTime, false, false);\r\n this.displayedEndTime = this.dateTimeFormatPipe.transform(this.endTime, false, false);\r\n this.displayedCode = this.code;\r\n if (this.level && this.level != 'fault') {\r\n this.displayedCode += ` (${this.level[0].toUpperCase()})`;\r\n }\r\n\r\n this.updateDisplayValues();\r\n }\r\n\r\n updateDisplayValues(): void {\r\n if (!this.beginTime || !this.offsetSpaToApiMilliseconds) {\r\n return;\r\n }\r\n\r\n const startTimeMs = this.beginTime.getTime();\r\n\r\n const end = this.endTime ? this.endTime.getTime() : Date.now() - this.offsetSpaToApiMilliseconds;\r\n const milliseconds = end - startTimeMs;\r\n const seconds = milliseconds / 1000;\r\n\r\n const hours = Math.floor(seconds / 3600);\r\n if (hours > 0) {\r\n this.displayedTime = hours.toString();\r\n this.displayedUnit = this.hoursUnit;\r\n return;\r\n }\r\n\r\n const minutes = Math.floor(seconds / 60);\r\n if (minutes > 0) {\r\n this.displayedTime = minutes.toString();\r\n this.displayedUnit = this.minutesUnit;\r\n return;\r\n }\r\n\r\n this.displayedTime = Math.floor(seconds).toString();\r\n this.displayedUnit = this.secondsUnit;\r\n }\r\n}\r\n","import { Component, OnInit } from '@angular/core';\r\nimport * as moment from 'moment';\r\nimport { interval } from 'rxjs';\r\nimport { filter, map, switchMap, take, takeUntil } from 'rxjs/operators';\r\nimport { NavigatorService } from 'src/app/core/navigator/navigator.service';\r\nimport { Unsubscriber } from 'src/app/core/unsubscriber';\r\nimport { DateTimeFormatPipe } from 'src/app/core/utils/date-time-format.pipe';\r\nimport { ScreenSizeService } from 'src/app/core/utils/screen-size.service';\r\nimport { MasterdataService } from 'src/app/maps/domain/masterdata.service';\r\nimport { Ropeway } from 'src/app/maps/domain/ropeway.model';\r\nimport { RopewayStatusTime } from 'src/app/maps/livedata/ropeway-status-time.model';\r\nimport { RopewayStatusTimeService } from 'src/app/maps/livedata/ropeway-status-time.service';\r\nimport { SelectedMapElementService } from 'src/app/maps/selected-map-element.service';\r\nimport { RopewayTripLog } from 'src/app/maps/widgets/detailviews/stoptime-detailview/ropeway-triplog.model';\r\nimport { RopewayTripLogService } from 'src/app/maps/widgets/detailviews/stoptime-detailview/ropeway-triplog.service';\r\nimport { StoptimeDetailViewItem } from 'src/app/maps/widgets/detailviews/stoptime-detailview/stoptime-detailview-item';\r\n\r\n@Component({\r\n selector: 'sis-stoptime-detailview',\r\n templateUrl: './stoptime-detailview.component.html',\r\n styleUrls: ['./stoptime-detailview.component.scss'],\r\n standalone: false\r\n})\r\nexport class StoptimeDetailViewComponent extends Unsubscriber implements OnInit {\r\n private readonly startThresholdMilliseconds = 2 * 60 * 1000;\r\n\r\n private statusTime: RopewayStatusTime;\r\n private isIphone: boolean;\r\n\r\n displayedLogs: StoptimeDetailViewItem[];\r\n offsetSpaToApiMilliseconds: number;\r\n\r\n constructor(\r\n private tripLogService: RopewayTripLogService,\r\n private masterdataService: MasterdataService,\r\n private screenSizeService: ScreenSizeService,\r\n private navigatorService: NavigatorService,\r\n private dateFormatPipe: DateTimeFormatPipe,\r\n private ropewayStatusTimeService: RopewayStatusTimeService,\r\n private selectedMapElementService: SelectedMapElementService\r\n ) {\r\n super();\r\n this.isIphone = this.navigatorService.isIphone();\r\n }\r\n\r\n ngOnInit(): void {\r\n interval(1000)\r\n .pipe(takeUntil(this.onDestroy$))\r\n .subscribe(() => {\r\n if (this.displayedLogs?.length > 0) {\r\n this.displayedLogs[0].updateDisplayValues();\r\n }\r\n });\r\n\r\n this.selectedMapElementService.selectedRopeway$\r\n .pipe(\r\n filter((ropeway) => !!ropeway),\r\n switchMap((ropeway) =>\r\n this.ropewayStatusTimeService.ropewayStatusTimes$.pipe(\r\n filter((ropewayStatusTimes) => ropewayStatusTimes != null),\r\n map((ropewayStatusTimes) => ropewayStatusTimes.find((d) => d.deviceSisId === ropeway.sisId))\r\n )\r\n ),\r\n takeUntil(this.onDestroy$)\r\n )\r\n .subscribe((statusTime) => {\r\n this.statusTime = statusTime;\r\n });\r\n\r\n this.masterdataService.masterData$\r\n .pipe(\r\n filter((masterData) => !!masterData),\r\n takeUntil(this.onDestroy$)\r\n )\r\n .subscribe((masterData) => {\r\n this.offsetSpaToApiMilliseconds = masterData.offsetSpaToApiMilliseconds;\r\n });\r\n\r\n this.selectedMapElementService.selectedRopeway$\r\n .pipe(\r\n filter((ropeway) => !!ropeway),\r\n switchMap((ropeway) => this.tripLogService.ropewayTripLogs$.pipe(map((tripLogs) => ({ ropeway, tripLogs })))),\r\n takeUntil(this.onDestroy$)\r\n )\r\n .subscribe(({ ropeway, tripLogs }) => {\r\n this.updateDisplayData(ropeway, tripLogs);\r\n this.doScrollMagic();\r\n });\r\n }\r\n\r\n private updateDisplayData(ropeway: Ropeway, ropewayTripLogs: RopewayTripLog[]): void {\r\n if (!ropewayTripLogs || !ropeway) {\r\n return;\r\n }\r\n\r\n const tripLogs = ropewayTripLogs\r\n .filter((d) => d.deviceSisId === ropeway.sisId && this.isTodayLocalTime(d.startTime))\r\n .sort((a, b) => a.startTime.getTime() - b.startTime.getTime());\r\n\r\n if (tripLogs.length === 0) {\r\n return;\r\n }\r\n\r\n const newDisplayedLogs = [];\r\n\r\n for (let i = 0; i < tripLogs.length - 1; i++) {\r\n const tripLogEntry = tripLogs[i];\r\n const nextTripLogEntry = tripLogs[i + 1];\r\n\r\n const displayedTripEntry = new StoptimeDetailViewItem(\r\n this.offsetSpaToApiMilliseconds,\r\n this.dateFormatPipe,\r\n tripLogEntry.startTime,\r\n tripLogEntry.stopTime,\r\n null,\r\n null,\r\n null,\r\n false\r\n );\r\n\r\n const displayedStopEntry = new StoptimeDetailViewItem(\r\n this.offsetSpaToApiMilliseconds,\r\n this.dateFormatPipe,\r\n tripLogEntry.stopTime,\r\n nextTripLogEntry.startTime,\r\n tripLogEntry.code,\r\n tripLogEntry.level,\r\n tripLogEntry.message,\r\n true\r\n );\r\n\r\n newDisplayedLogs.push(displayedTripEntry, displayedStopEntry);\r\n }\r\n\r\n const lastTripLogEntry = tripLogs[tripLogs.length - 1];\r\n newDisplayedLogs.push(\r\n new StoptimeDetailViewItem(\r\n this.offsetSpaToApiMilliseconds,\r\n this.dateFormatPipe,\r\n lastTripLogEntry.startTime,\r\n lastTripLogEntry.stopTime,\r\n null,\r\n null,\r\n null,\r\n false\r\n )\r\n );\r\n\r\n if (this.statusTime && this.statusTime.initialStopTime && this.isTodayLocalTime(this.statusTime.initialStopTime)) {\r\n const lastTripLogEntry = tripLogs[tripLogs.length - 1];\r\n const currentStoptimeDisplayData = new StoptimeDetailViewItem(\r\n this.offsetSpaToApiMilliseconds,\r\n this.dateFormatPipe,\r\n this.statusTime.initialStopTime,\r\n null,\r\n lastTripLogEntry.code,\r\n lastTripLogEntry.level,\r\n lastTripLogEntry.message,\r\n true\r\n );\r\n\r\n const lastItemIndex = newDisplayedLogs.push(currentStoptimeDisplayData) - 1;\r\n\r\n if (this.statusTime.startTime) {\r\n const initialStartTime = this.statusTime.startTime.getTime();\r\n const now = Date.now() - this.offsetSpaToApiMilliseconds;\r\n\r\n if (initialStartTime + this.startThresholdMilliseconds < now) {\r\n newDisplayedLogs[lastItemIndex] = new StoptimeDetailViewItem(\r\n this.offsetSpaToApiMilliseconds,\r\n this.dateFormatPipe,\r\n this.statusTime.initialStopTime,\r\n this.statusTime.startTime,\r\n lastTripLogEntry.code,\r\n lastTripLogEntry.level,\r\n lastTripLogEntry.message,\r\n true\r\n );\r\n\r\n newDisplayedLogs.push(\r\n new StoptimeDetailViewItem(\r\n this.offsetSpaToApiMilliseconds,\r\n this.dateFormatPipe,\r\n this.statusTime.startTime,\r\n null,\r\n null,\r\n null,\r\n null,\r\n false\r\n )\r\n );\r\n }\r\n }\r\n }\r\n\r\n this.displayedLogs = newDisplayedLogs.reverse();\r\n }\r\n\r\n private isTodayLocalTime(date: Date): boolean {\r\n if (!date) {\r\n return false;\r\n }\r\n\r\n const localDate = moment.parseZone(date);\r\n const localNow = moment.parseZone(new Date());\r\n\r\n return localDate.isSame(localNow, 'day');\r\n }\r\n\r\n private doScrollMagic() {\r\n if (this.isIphone) {\r\n return;\r\n }\r\n\r\n const checkExist = setInterval(() => {\r\n const content = document.getElementById('ion-content-stoptime-list');\r\n if (content) {\r\n const inner = content.shadowRoot.querySelector('main');\r\n if (inner) {\r\n clearInterval(checkExist);\r\n\r\n this.screenSizeService.bigScreenMode$.pipe(take(1)).subscribe((bigScreenMode) => {\r\n if (bigScreenMode && !this.navigatorService.isMac()) {\r\n inner.style.marginRight = '-16.5px';\r\n inner.style.overflowY = 'scroll';\r\n inner.style.overflowX = 'hidden';\r\n } else {\r\n inner.style.marginRight = '0px';\r\n inner.style.overflowY = 'var(--overflow)';\r\n }\r\n });\r\n }\r\n }\r\n }, 50);\r\n }\r\n\r\n itemId(_: number, item: StoptimeDetailViewItem) {\r\n return item.displayedBeginTime;\r\n }\r\n}\r\n","\r\n \r\n
\r\n \r\n \r\n \r\n \r\n \r\n {{ item.displayedBeginTime }}\r\n \r\n \r\n ⟼\r\n \r\n \r\n {{ item.displayedEndTime }}\r\n \r\n \r\n {{ item.displayedCode }}\r\n \r\n \r\n {{ (item.stopped ? 'general.term.stop' : 'general.term.trip') | translate }}\r\n \r\n {{ item.displayedTime }} {{ item.displayedUnit }}\r\n \r\n \r\n
\r\n
\r\n\r\n","import { Component, OnInit } from '@angular/core';\r\nimport { combineLatest } from 'rxjs';\r\nimport { takeUntil } from 'rxjs/operators';\r\nimport { Unsubscriber } from 'src/app/core/unsubscriber';\r\nimport { Ropeway } from 'src/app/maps/domain/ropeway.model';\r\nimport { RopewayLivedata } from 'src/app/maps/livedata/ropeway-livedata.model';\r\nimport { RopewayLivedataService } from 'src/app/maps/livedata/ropeway-livedata.service';\r\nimport { SelectedMapElementService } from 'src/app/maps/selected-map-element.service';\r\n\r\n@Component({\r\n selector: 'sis-transport-weight-detailview',\r\n templateUrl: './transport-weight-detailview.component.html',\r\n styleUrls: ['./transport-weight-detailview.component.scss'],\r\n standalone: false\r\n})\r\nexport class TransportWeightDetailViewComponent extends Unsubscriber implements OnInit {\r\n transportWeightTons: string[];\r\n vehicleId: number[];\r\n\r\n constructor(\r\n private ropewayLiveDataService: RopewayLivedataService,\r\n private selectedMapElementService: SelectedMapElementService\r\n ) {\r\n super();\r\n this.transportWeightTons = [];\r\n this.vehicleId = [];\r\n }\r\n\r\n ngOnInit(): void {\r\n combineLatest([this.selectedMapElementService.selectedRopeway$, this.ropewayLiveDataService.ropewayLiveData$])\r\n .pipe(takeUntil(this.onDestroy$))\r\n .subscribe(([ropeway, ropewayLiveDatas]) => {\r\n this.update(ropeway, ropewayLiveDatas);\r\n });\r\n }\r\n\r\n private update(ropeway: Ropeway, ropewayLiveDatas: RopewayLivedata[]): void {\r\n if (!ropewayLiveDatas) {\r\n return;\r\n }\r\n\r\n if (!ropeway) {\r\n this.resetToDefault();\r\n return;\r\n }\r\n\r\n const ropewayLiveData = ropewayLiveDatas?.find((data: RopewayLivedata) => data.deviceSisId === ropeway.sisId);\r\n\r\n if (\r\n ropewayLiveData == null ||\r\n ropewayLiveData.vehicleData == null ||\r\n !ropewayLiveData.vehicleData['transportWeightKg']\r\n ) {\r\n return;\r\n }\r\n\r\n const transportWeightKg = ropewayLiveData.vehicleData['transportWeightKg'];\r\n this.transportWeightTons = this.convertToTons(transportWeightKg);\r\n this.vehicleId = ropewayLiveData.vehicleData['id'];\r\n }\r\n\r\n private resetToDefault(): void {\r\n this.transportWeightTons = [];\r\n this.vehicleId = [];\r\n }\r\n\r\n private convertToTons(transportWeightKg: number[]): string[] {\r\n const transportWeightTons: string[] = [];\r\n transportWeightKg.forEach((value) => {\r\n transportWeightTons.push((value / 1000).toFixed(2));\r\n });\r\n\r\n return transportWeightTons;\r\n }\r\n}\r\n","\r\n \r\n \r\n Id\r\n {{ 'ropeway.term.transportWeightTonne' | translate }}\r\n \r\n \r\n
\r\n \r\n \r\n {{ id }}\r\n \r\n {{ transportWeightTons[i] }}\r\n \r\n \r\n \r\n
\r\n","import { Component, OnInit } from '@angular/core';\r\nimport { combineLatest } from 'rxjs';\r\nimport { takeUntil } from 'rxjs/operators';\r\nimport { Unsubscriber } from 'src/app/core/unsubscriber';\r\nimport { TruScan } from 'src/app/maps/domain/truscan.model';\r\nimport { TruScanData } from 'src/app/maps/livedata/truscan-data.model';\r\nimport { TruScanDataService } from 'src/app/maps/livedata/truscan-data.service';\r\nimport { SelectedMapElementService } from 'src/app/maps/selected-map-element.service';\r\n\r\n@Component({\r\n selector: 'sis-truscan-detailview',\r\n templateUrl: './truscan-detailview.component.html',\r\n styleUrls: ['./truscan-detailview.component.scss'],\r\n standalone: false\r\n})\r\nexport class TruScanDetailViewComponent extends Unsubscriber implements OnInit {\r\n truScanInstallations: TruScan[];\r\n truScanDatas: TruScanData[];\r\n timestamp: Date;\r\n\r\n constructor(\r\n private truScanDataService: TruScanDataService,\r\n private selectedMapElementService: SelectedMapElementService\r\n ) {\r\n super();\r\n }\r\n\r\n ngOnInit(): void {\r\n combineLatest([this.selectedMapElementService.selectedRopeway$, this.truScanDataService.truScanDatas$])\r\n .pipe(takeUntil(this.onDestroy$))\r\n .subscribe(([ropeway, truScanData]) => {\r\n if (ropeway) {\r\n const truScans = ropeway.truScanInstallations;\r\n this.truScanDatas = truScanData\r\n .filter((t) => t.installationId == truScans[0].installationId)\r\n .sort((a, b) => (a.ropeTimestamp > b.ropeTimestamp ? -1 : 1));\r\n this.timestamp = this.truScanDatas.reduce((a, b) => (b.timestamp > a.timestamp ? b : a)).timestamp;\r\n }\r\n });\r\n }\r\n\r\n itemId(_: number, data: TruScanData): number {\r\n return data.ropeId;\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 {{ 'general.phrase.lastUpdate' | translate }}\r\n \r\n \r\n \r\n {{\r\n timestamp | date : 'dd.MM.yyyy HH:mm'\r\n }}\r\n \r\n \r\n \r\n \r\n TRUcockpit \r\n \r\n \r\n\r\n","import { Component, Input, OnInit } from '@angular/core';\r\nimport { Chart } from 'angular-highcharts';\r\nimport Highcharts, { Options } from 'highcharts';\r\nimport { Observable, timer } from 'rxjs';\r\nimport { take, takeUntil } from 'rxjs/operators';\r\nimport { Unsubscriber } from 'src/app/core/unsubscriber';\r\nimport { TruScanData } from 'src/app/maps/livedata/truscan-data.model';\r\nimport { TruScanDataService } from 'src/app/maps/livedata/truscan-data.service';\r\n\r\n@Component({\r\n selector: 'sis-truscan-item',\r\n templateUrl: './truscan-item.component.html',\r\n styleUrls: ['./truscan-item.component.scss'],\r\n standalone: false\r\n})\r\nexport class TruScanItemComponent extends Unsubscriber implements OnInit {\r\n @Input() truScan: TruScanData;\r\n\r\n chart: Chart;\r\n private chartRef: Highcharts.Chart;\r\n\r\n chartOptions: Options = {\r\n chart: {\r\n type: 'gauge',\r\n backgroundColor: 'transparent',\r\n plotBackgroundColor: null,\r\n plotBackgroundImage: null,\r\n plotBorderWidth: 0,\r\n plotShadow: false,\r\n height: '45px',\r\n },\r\n title: undefined,\r\n pane: {\r\n startAngle: -90,\r\n endAngle: 90,\r\n background: null,\r\n center: ['50%', '80%'],\r\n size: '40px',\r\n },\r\n yAxis: {\r\n min: 0,\r\n max: 100,\r\n tickPosition: 'inside',\r\n tickColor: Highcharts.defaultOptions.chart.backgroundColor || '#FFFFFF',\r\n tickLength: 0,\r\n tickWidth: 2,\r\n minorTickInterval: null,\r\n labels: {\r\n enabled: false,\r\n },\r\n lineWidth: 0,\r\n plotBands: [\r\n {\r\n from: 0,\r\n to: 10,\r\n\r\n color: 'var(--ion-color-danger)',\r\n thickness: 7,\r\n },\r\n {\r\n from: 10,\r\n to: 50,\r\n color: 'var(--ion-color-yellow)',\r\n thickness: 7,\r\n },\r\n {\r\n from: 50,\r\n to: 100,\r\n color: 'var(--ion-color-success)',\r\n thickness: 7,\r\n },\r\n ],\r\n },\r\n credits: {\r\n enabled: false,\r\n },\r\n navigation: {\r\n buttonOptions: {\r\n enabled: false,\r\n },\r\n },\r\n tooltip: {\r\n enabled: false,\r\n },\r\n series: [\r\n {\r\n type: 'gauge',\r\n dataLabels: {\r\n enabled: false,\r\n },\r\n dial: {\r\n radius: '60%',\r\n backgroundColor: 'var(--ion-color-tertiary)',\r\n baseWidth: 4,\r\n baseLength: '0%',\r\n rearLength: '0%',\r\n },\r\n pivot: {\r\n backgroundColor: 'var(--ion-color-tertiary)',\r\n radius: 3,\r\n },\r\n data: [0],\r\n },\r\n ],\r\n };\r\n\r\n constructor(private truScanDataService: TruScanDataService) {\r\n super();\r\n }\r\n\r\n ngOnInit() {\r\n this.chart = new Chart(this.chartOptions);\r\n\r\n this.chart.ref$.pipe(take(1)).subscribe((chartRef) => {\r\n this.chartRef = chartRef;\r\n this.reflowChart(this.onDestroy$);\r\n });\r\n\r\n this.truScanDataService.truScanDatas$.pipe(takeUntil(this.onDestroy$)).subscribe((truScanDatas) => {\r\n this.truScan = truScanDatas.find((data) => data.ropeId === this.truScan.ropeId);\r\n this.setSeriesData(this.truScan.health);\r\n });\r\n }\r\n\r\n reflowChart(onDestroy$: Observable): void {\r\n timer(100)\r\n .pipe(takeUntil(onDestroy$))\r\n .subscribe(() => {\r\n this.chartRef.reflow();\r\n });\r\n }\r\n\r\n setSeriesData(ropeHealth: number): void {\r\n if (this.chart) {\r\n this.chart.removePoint(0);\r\n this.chart.addPoint(ropeHealth);\r\n }\r\n }\r\n}\r\n","\r\n \r\n \r\n \r\n {{ 'ropeway.term.rope' | translate }}\r\n \r\n \r\n \r\n {{ this.truScan.name }}\r\n \r\n \r\n {{ this.truScan.ropeTimestamp | date : 'dd.MM.yyyy HH:mm' }}\r\n \r\n \r\n \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: 'sis-webcam-detailview',\r\n templateUrl: './webcam-detailview.component.html',\r\n styleUrls: ['./webcam-detailview.component.scss'],\r\n standalone: false\r\n})\r\nexport class WebcamDetailViewComponent {}\r\n","
\r\n \r\n
\r\n","import { Component, OnInit } from '@angular/core';\r\nimport { takeUntil } from 'rxjs/operators';\r\nimport { MasterdataService } from 'src/app/maps/domain/masterdata.service';\r\nimport { WidgetBase } from 'src/app/maps/widgets/widget-base';\r\n\r\n@Component({\r\n selector: 'sis-deviceson-widget',\r\n templateUrl: './deviceson-widget.component.html',\r\n styleUrls: ['./deviceson-widget.component.scss'],\r\n standalone: false\r\n})\r\nexport class DevicesonWidgetComponent extends WidgetBase implements OnInit {\r\n totalDevices: string;\r\n\r\n constructor(private masterdataService: MasterdataService) {\r\n super();\r\n }\r\n\r\n ngOnInit(): void {\r\n this.masterdataService.masterData$.pipe(takeUntil(this.onDestroy$)).subscribe((masterdata) => {\r\n if (masterdata?.ropeways) {\r\n this.totalDevices = masterdata.ropeways.length.toString();\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 {{ totalDevices }}\r\n \r\n \r\n \r\n\r\n","import { Component, OnInit } from '@angular/core';\r\nimport { combineLatest, takeUntil } from 'rxjs';\r\nimport { Alarm, AlarmLevel } from 'src/app/domain/alarm.model';\r\nimport { Ropeway } from 'src/app/maps/domain/ropeway.model';\r\nimport { RopewayEfaService } from 'src/app/maps/livedata/ropeway-efa.service';\r\nimport { SelectedMapElementService } from 'src/app/maps/selected-map-element.service';\r\nimport { WidgetBase } from 'src/app/maps/widgets/widget-base';\r\n\r\n@Component({\r\n selector: 'sis-efa-widget',\r\n templateUrl: './efa-widget.component.html',\r\n styleUrls: ['./efa-widget.component.scss'],\r\n standalone: false\r\n})\r\nexport class EfaWidgetComponent extends WidgetBase implements OnInit {\r\n static readonly efaCodeDefault = '0';\r\n static readonly normalClass = 'sis-efa-normal';\r\n static readonly alarmClass = 'sis-efa-alarm';\r\n static readonly fontFamilyMyriadPro = 'Myriad Pro';\r\n static readonly fontFamilyMyriadProCond = 'Myriad Pro Condensed';\r\n\r\n cssClass = EfaWidgetComponent.normalClass;\r\n fontFamily = EfaWidgetComponent.fontFamilyMyriadPro;\r\n efacode = EfaWidgetComponent.efaCodeDefault;\r\n\r\n constructor(\r\n private ropewayEfaService: RopewayEfaService,\r\n private selectedMapElementService: SelectedMapElementService\r\n ) {\r\n super();\r\n }\r\n\r\n ngOnInit(): void {\r\n combineLatest([this.selectedMapElementService.selectedRopeway$, this.ropewayEfaService.efas$])\r\n .pipe(takeUntil(this.onDestroy$))\r\n .subscribe(([ropeway, efas]) => this.update(ropeway, efas));\r\n }\r\n\r\n private update(ropeway: Ropeway, efas: Alarm[]): void {\r\n if (!efas) {\r\n return;\r\n }\r\n\r\n if (!ropeway) {\r\n this.resetToDefault();\r\n return;\r\n }\r\n\r\n const d = efas.filter((efa: Alarm) => efa.active && efa.sisId === ropeway.sisId);\r\n\r\n let efa: Alarm;\r\n if (d && d.length > 0) {\r\n const fault = d.find((a) => a.level === AlarmLevel.FAULT);\r\n efa = fault ? fault : d[0];\r\n } else {\r\n this.resetToDefault();\r\n return;\r\n }\r\n\r\n this.setClass(efa);\r\n this.setFontFamily(efa);\r\n this.efacode = efa.code.toUpperCase().replace(/EFA_|IFI_/g, '');\r\n }\r\n\r\n private resetToDefault(): void {\r\n this.efacode = EfaWidgetComponent.efaCodeDefault;\r\n this.cssClass = EfaWidgetComponent.normalClass;\r\n this.fontFamily = EfaWidgetComponent.fontFamilyMyriadPro;\r\n }\r\n\r\n private setClass(alarm: Alarm): void {\r\n this.cssClass = alarm.level === AlarmLevel.FAULT ? EfaWidgetComponent.alarmClass : EfaWidgetComponent.normalClass;\r\n }\r\n\r\n private setFontFamily(alarm: Alarm): void {\r\n this.fontFamily =\r\n alarm.code.length > 10 ? EfaWidgetComponent.fontFamilyMyriadProCond : EfaWidgetComponent.fontFamilyMyriadPro;\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 {{ 'general.term.efa' | translate }}\r\n \r\n \r\n {{ efacode }}\r\n \r\n \r\n \r\n \r\n \r\n \r\n\r\n","import { Component, OnInit } from '@angular/core';\r\nimport { combineLatest } from 'rxjs';\r\nimport { takeUntil } from 'rxjs/operators';\r\nimport { Ropeway } from 'src/app/maps/domain/ropeway.model';\r\nimport { EnergyLiveData } from 'src/app/maps/livedata/energy-livedata.model';\r\nimport { EnergyLiveDataService } from 'src/app/maps/livedata/energy-livedata.service';\r\nimport { SelectedMapElementService } from 'src/app/maps/selected-map-element.service';\r\nimport { WidgetBase } from 'src/app/maps/widgets/widget-base';\r\n\r\n@Component({\r\n selector: 'sis-energy-widget',\r\n templateUrl: './energy-widget.component.html',\r\n styleUrls: ['./energy-widget.component.scss'],\r\n standalone: false\r\n})\r\nexport class EnergyWidgetComponent extends WidgetBase implements OnInit {\r\n displayedValue: string = WidgetBase.valueUnknown;\r\n\r\n constructor(\r\n private energyLiveDataService: EnergyLiveDataService,\r\n private selectedMapElementService: SelectedMapElementService\r\n ) {\r\n super();\r\n }\r\n\r\n ngOnInit(): void {\r\n combineLatest([this.selectedMapElementService.selectedRopeway$, this.energyLiveDataService.energy$])\r\n .pipe(takeUntil(this.onDestroy$))\r\n .subscribe(([ropeway, energyLiveDatas]) => {\r\n this.update(ropeway, energyLiveDatas);\r\n });\r\n }\r\n\r\n private update(ropeway: Ropeway, liveDatas: EnergyLiveData[]): void {\r\n if (ropeway) {\r\n liveDatas = liveDatas?.filter((d) => d.parentSisId === ropeway.sisId);\r\n }\r\n\r\n if (!liveDatas?.length || liveDatas.every((d) => d.outdated || d.powerW == null)) {\r\n this.resetToDefault();\r\n return;\r\n }\r\n\r\n const total = liveDatas\r\n .filter((d) => !d.outdated && d.powerW != null)\r\n .reduce((sum: number, current: EnergyLiveData) => sum + current.powerW / 1000, 0);\r\n\r\n this.displayedValue = Math.round(total).toString();\r\n }\r\n\r\n private resetToDefault(): void {\r\n this.displayedValue = WidgetBase.valueUnknown;\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 {{ displayedValue }}\r\n kW\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 } from '@angular/core';\r\nimport { takeUntil } from 'rxjs/operators';\r\nimport { FirstEntriesGroup } from 'src/app/maps/domain/firstentriesgroup.model';\r\nimport { MasterdataService } from 'src/app/maps/domain/masterdata.service';\r\nimport { FirstEntriesData } from 'src/app/maps/livedata/first-entries.model';\r\nimport { FirstEntriesService } from 'src/app/maps/livedata/first-entries.service';\r\nimport { SisOutdatedHelper } from 'src/app/maps/livedata/sis-outdated-helper';\r\nimport { WidgetBase } from 'src/app/maps/widgets/widget-base';\r\n\r\n@Component({\r\n selector: 'sis-first-entries-widget',\r\n templateUrl: './first-entries-widget.component.html',\r\n styleUrls: ['./first-entries-widget.component.scss'],\r\n standalone: false\r\n})\r\nexport class FirstEntriesWidgetComponent extends WidgetBase implements OnInit {\r\n private groups: FirstEntriesGroup[] = [];\r\n\r\n firstEntriesTotal = WidgetBase.valueUnknown;\r\n\r\n constructor(private masterdataService: MasterdataService, private firstEntriesService: FirstEntriesService) {\r\n super();\r\n }\r\n\r\n ngOnInit() {\r\n this.masterdataService.masterData$.pipe(takeUntil(this.onDestroy$)).subscribe((data) => {\r\n this.groups = data.firstEntriesGroups;\r\n });\r\n\r\n this.firstEntriesService.firstEntries$.pipe(takeUntil(this.onDestroy$)).subscribe((firstEntries) => {\r\n this.firstEntriesTotal = this.getFirstEntriesTotal(firstEntries);\r\n });\r\n }\r\n\r\n private getFirstEntriesTotal(firstEntriesDatas: FirstEntriesData[]): string {\r\n const data: FirstEntriesData = {\r\n measuredValue: 0,\r\n frequenciesValue: 0,\r\n measuredAt: new Date(),\r\n timeoutInSeconds: 0,\r\n };\r\n const group = this.groups.find((g) => g.wholeDestination === true);\r\n if (!group) {\r\n return WidgetBase.valueUnknown;\r\n }\r\n\r\n group.rowKeys.forEach((rowKey: string) => {\r\n const firstEntries = firstEntriesDatas.find((f) => f.rowKey === rowKey);\r\n if (firstEntries) {\r\n data.measuredValue += firstEntries.measuredValue;\r\n data.measuredAt = firstEntries.measuredAt < data.measuredAt ? firstEntries.measuredAt : data.measuredAt;\r\n data.timeoutInSeconds =\r\n firstEntries.timeoutInSeconds > data.timeoutInSeconds ? firstEntries.timeoutInSeconds : data.timeoutInSeconds;\r\n }\r\n });\r\n\r\n return SisOutdatedHelper.isOutdated(data.measuredAt, data.timeoutInSeconds * 1000)\r\n ? WidgetBase.valueUnknown\r\n : data.measuredValue.toString();\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 {{ firstEntriesTotal }}\r\n Pers\r\n \r\n \r\n \r\n\r\n","import { Component } from '@angular/core';\r\nimport { WidgetBase } from 'src/app/maps/widgets/widget-base';\r\n\r\n@Component({\r\n selector: 'sis-geartemp-widget',\r\n templateUrl: './geartemp-widget.component.html',\r\n styleUrls: ['./geartemp-widget.component.scss'],\r\n standalone: false\r\n})\r\nexport class GeartempWidgetComponent extends WidgetBase {}\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 °C\r\n \r\n \r\n \r\n\r\n","import { Component } from '@angular/core';\r\n\r\n@Component({\r\n selector: 'sis-gin-widget',\r\n templateUrl: './gin-widget.component.html',\r\n styleUrls: ['./gin-widget.component.scss'],\r\n standalone: false\r\n})\r\nexport class GINWidgetComponent {\r\n constructor() {}\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, OnInit } from '@angular/core';\r\nimport { TranslateService } from '@ngx-translate/core';\r\nimport { BehaviorSubject, firstValueFrom, Observable } from 'rxjs';\r\nimport { switchMap, takeUntil } from 'rxjs/operators';\r\nimport { MeteoForecast } from 'src/app/maps/livedata/meteo-forecast.model';\r\nimport { MeteoForecastService } from 'src/app/maps/livedata/meteo-forecast.service';\r\nimport { WidgetBase } from 'src/app/maps/widgets/widget-base';\r\n\r\n@Component({\r\n selector: 'sis-icing-widget',\r\n templateUrl: './icing-widget.component.html',\r\n styleUrls: ['./icing-widget.component.scss'],\r\n standalone: false\r\n})\r\nexport class IcingWidgetComponent extends WidgetBase implements OnInit {\r\n private readonly dangerColor = 'var(--ion-color-danger)';\r\n private readonly warningColor = 'var(--ion-color-warning)';\r\n private readonly defaultColor = 'var(--ion-color-primary)';\r\n\r\n private readonly intensityHighTranslateString = 'icing.term.intensityHigh';\r\n private readonly intensityMediumTranslateString = 'icing.term.intensityMedium';\r\n private readonly intensityLowTranslateString = 'icing.term.intensityLow';\r\n private readonly intensityNoneTranslateString = 'icing.term.intensityNone';\r\n\r\n private readonly icingIntensityTranslateString$ = new BehaviorSubject(WidgetBase.valueUnknown);\r\n\r\n readonly icingIntensity$: Observable = this.icingIntensityTranslateString$.pipe(\r\n switchMap((s) => this.translateService.stream(s))\r\n );\r\n icingColor = this.defaultColor;\r\n\r\n constructor(private translateService: TranslateService, private meteoForecastService: MeteoForecastService) {\r\n super();\r\n }\r\n\r\n ngOnInit(): void {\r\n this.resetToDefault();\r\n\r\n this.meteoForecastService.forecasts$.pipe(takeUntil(this.onDestroy$)).subscribe((forecasts) => {\r\n this.update(forecasts);\r\n });\r\n }\r\n\r\n private getTranslatedString(translateKey: string): Promise {\r\n return firstValueFrom(this.translateService.get(translateKey));\r\n }\r\n\r\n private update(forecasts: MeteoForecast[]): Promise {\r\n if (!forecasts) {\r\n this.resetToDefault();\r\n return;\r\n }\r\n\r\n const icingIntensity = Math.max(-1, ...forecasts.filter((m) => !m.outdated).map((m) => m.icingIntensity));\r\n let translateString: string;\r\n\r\n switch (icingIntensity) {\r\n case 0:\r\n translateString = this.intensityNoneTranslateString;\r\n this.icingColor = this.defaultColor;\r\n break;\r\n case 1:\r\n translateString = this.intensityLowTranslateString;\r\n this.icingColor = this.warningColor;\r\n break;\r\n case 2:\r\n translateString = this.intensityMediumTranslateString;\r\n this.icingColor = this.warningColor;\r\n break;\r\n case 3:\r\n translateString = this.intensityHighTranslateString;\r\n this.icingColor = this.dangerColor;\r\n break;\r\n default:\r\n translateString = WidgetBase.valueUnknown;\r\n WidgetBase.valueUnknown;\r\n break;\r\n }\r\n\r\n this.icingIntensityTranslateString$.next(translateString);\r\n }\r\n\r\n private resetToDefault(): void {\r\n this.icingIntensityTranslateString$.next(WidgetBase.valueUnknown);\r\n this.icingColor = this.defaultColor;\r\n }\r\n}\r\n","\r\n \r\n \r\n \r\n \r\n {{ this.icingIntensity$ | async }}\r\n \r\n \r\n\r\n","import { Component, OnInit } from '@angular/core';\r\nimport { takeUntil } from 'rxjs/operators';\r\nimport { FirstEntriesGroup } from 'src/app/maps/domain/firstentriesgroup.model';\r\nimport { MasterdataService } from 'src/app/maps/domain/masterdata.service';\r\nimport { KassandraForecastData } from 'src/app/maps/livedata/kassandra-forecast.model';\r\nimport { KassandraForecastService } from 'src/app/maps/livedata/kassandra-forecast.service';\r\nimport { SisOutdatedHelper } from 'src/app/maps/livedata/sis-outdated-helper';\r\nimport { WidgetBase } from 'src/app/maps/widgets/widget-base';\r\n\r\n@Component({\r\n selector: 'sis-kassandra-widget',\r\n templateUrl: './kassandra-widget.component.html',\r\n styleUrls: ['./kassandra-widget.component.scss'],\r\n standalone: false\r\n})\r\nexport class KassandraWidgetComponent extends WidgetBase implements OnInit {\r\n private groups: FirstEntriesGroup[] = [];\r\n\r\n kassandraTotal: string;\r\n\r\n constructor(private masterdataService: MasterdataService, private kassandraService: KassandraForecastService) {\r\n super();\r\n }\r\n\r\n ngOnInit() {\r\n this.masterdataService.masterData$.pipe(takeUntil(this.onDestroy$)).subscribe((data) => {\r\n this.groups = data.firstEntriesGroups;\r\n });\r\n\r\n this.kassandraService.kassandra$.pipe(takeUntil(this.onDestroy$)).subscribe((kassandra) => {\r\n this.kassandraTotal = this.getKassandraTotal(kassandra);\r\n });\r\n }\r\n\r\n private getKassandraTotal(forecastDatas: KassandraForecastData[]): string {\r\n const data: KassandraForecastData = { forecastValue: null, forecastAt: new Date() };\r\n const group = this.groups.find((g) => g.wholeDestination === true);\r\n if (!group) {\r\n return '?';\r\n }\r\n group.rowKeys.forEach((rowKey: string) => {\r\n const forecast = forecastDatas.find((f) => f.rowKey === rowKey);\r\n if (forecast) {\r\n data.forecastValue += forecast.forecastValue;\r\n data.forecastAt = forecast.forecastAt < data.forecastAt ? forecast.forecastAt : data.forecastAt;\r\n }\r\n });\r\n\r\n return data && data.forecastValue && SisOutdatedHelper.dateIsToday(data.forecastAt)\r\n ? data.forecastValue.toString()\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 {{ kassandraTotal }}\r\n Pers\r\n \r\n \r\n \r\n \r\n \r\n \r\n\r\n","import { Component, OnInit } from '@angular/core';\r\nimport { takeUntil } from 'rxjs/operators';\r\nimport { RopewayLivedataService } from 'src/app/maps/livedata/ropeway-livedata.service';\r\nimport { SelectedMapElementService } from 'src/app/maps/selected-map-element.service';\r\nimport { RopewayOperationWidgetBase } from 'src/app/maps/widgets/ropeway-operation-widget-base';\r\nimport { WidgetBase } from 'src/app/maps/widgets/widget-base';\r\n\r\n@Component({\r\n selector: 'sis-ophours-widget',\r\n templateUrl: './ophours-widget.component.html',\r\n styleUrls: ['./ophours-widget.component.scss'],\r\n standalone: false\r\n})\r\nexport class OpHoursWidgetComponent extends RopewayOperationWidgetBase implements OnInit {\r\n operatingHours: string;\r\n\r\n constructor(ropewayLiveDataService: RopewayLivedataService, selectedMapElementService: SelectedMapElementService) {\r\n super(ropewayLiveDataService, selectedMapElementService);\r\n this.showOutdatedData = true;\r\n }\r\n\r\n ngOnInit(): void {\r\n this.ropewayLiveData$.pipe(takeUntil(this.onDestroy$)).subscribe((d) => {\r\n if (d.liveData?.operatingHours == null) {\r\n this.resetToDefault();\r\n return;\r\n }\r\n\r\n this.operatingHours = (Math.round(d.liveData.operatingHours * 10) / 10).toString();\r\n });\r\n }\r\n\r\n private resetToDefault(): void {\r\n this.operatingHours = WidgetBase.valueUnknown;\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 {{ operatingHours }}\r\n h\r\n \r\n \r\n \r\n\r\n","import { Component } from '@angular/core';\r\nimport { WidgetBase } from 'src/app/maps/widgets/widget-base';\r\n\r\n@Component({\r\n selector: 'sis-passengercount-widget',\r\n templateUrl: './passengercount-widget.component.html',\r\n styleUrls: ['./passengercount-widget.component.scss'],\r\n standalone: false\r\n})\r\nexport class PassengerCountWidgetComponent extends WidgetBase {}\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 Pers\r\n \r\n \r\n \r\n\r\n","import { Component } from '@angular/core';\r\n\r\n@Component({\r\n selector: 'sis-remote-access-widget',\r\n templateUrl: './remote-access-widget.component.html',\r\n styleUrls: ['./remote-access-widget.component.scss'],\r\n standalone: false\r\n})\r\nexport class RemoteAccessWidgetComponent {}\r\n","\r\n \r\n \r\n\r\n","import { Component, OnInit } from '@angular/core';\r\nimport { takeUntil } from 'rxjs/operators';\r\nimport { MathUtils } from 'src/app/core/utils/mathUtils';\r\nimport { RopewayLivedataService } from 'src/app/maps/livedata/ropeway-livedata.service';\r\nimport { SelectedMapElementService } from 'src/app/maps/selected-map-element.service';\r\nimport { RopewayOperationWidgetBase } from 'src/app/maps/widgets/ropeway-operation-widget-base';\r\nimport { WidgetBase } from 'src/app/maps/widgets/widget-base';\r\n\r\n@Component({\r\n selector: 'sis-ropekm-widget',\r\n templateUrl: './ropekm-widget.component.html',\r\n styleUrls: ['./ropekm-widget.component.scss'],\r\n standalone: false\r\n})\r\nexport class RopekmWidgetComponent extends RopewayOperationWidgetBase implements OnInit {\r\n ropeKm: string;\r\n\r\n constructor(ropewayLiveDataService: RopewayLivedataService, selectedMapElementService: SelectedMapElementService) {\r\n super(ropewayLiveDataService, selectedMapElementService);\r\n this.showOutdatedData = true;\r\n }\r\n\r\n ngOnInit(): void {\r\n this.ropewayLiveData$.pipe(takeUntil(this.onDestroy$)).subscribe((d) => {\r\n if (d.liveData?.ropeKm == null) {\r\n this.resetToDefault();\r\n return;\r\n }\r\n\r\n this.ropeKm = MathUtils.roundTo(d.liveData.ropeKm, 1);\r\n });\r\n }\r\n\r\n private resetToDefault(): void {\r\n this.ropeKm = WidgetBase.valueUnknown;\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 {{ ropeKm }}\r\n km\r\n \r\n \r\n \r\n\r\n","import { Component, OnInit } from '@angular/core';\r\nimport { filter, map, switchMap, takeUntil } from 'rxjs';\r\nimport { MathUtils } from 'src/app/core/utils/mathUtils';\r\nimport { RopewayAvailabilityService } from 'src/app/maps/livedata/ropeway-availability.service';\r\nimport { SelectedMapElementService } from 'src/app/maps/selected-map-element.service';\r\nimport { WidgetBase } from 'src/app/maps/widgets/widget-base';\r\n\r\n@Component({\r\n selector: 'sis-ropeway-availability-widget',\r\n templateUrl: './ropeway-availability-widget.component.html',\r\n standalone: false\r\n})\r\nexport class RopewayAvailabilityWidgetComponent extends WidgetBase implements OnInit {\r\n availability: string;\r\n\r\n constructor(\r\n private ropewayAvailabilityService: RopewayAvailabilityService,\r\n private selectedMapElementService: SelectedMapElementService\r\n ) {\r\n super();\r\n }\r\n\r\n ngOnInit(): void {\r\n this.selectedMapElementService.selectedRopeway$\r\n .pipe(\r\n filter((ropeway) => !!ropeway),\r\n switchMap((ropeway) =>\r\n this.ropewayAvailabilityService.ropewayAvailability$.pipe(\r\n map((livedata) => livedata.find((d) => d.ropewaySisId === ropeway.sisId))\r\n )\r\n ),\r\n takeUntil(this.onDestroy$)\r\n )\r\n .subscribe((livedata) => {\r\n if (!livedata) {\r\n this.availability = '?';\r\n return;\r\n }\r\n\r\n this.availability = `${MathUtils.roundTo(livedata.availability * 100, 1)} %`;\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 {{ this.availability }}\r\n \r\n \r\n\r\n","import { Component } from '@angular/core';\r\nimport { WidgetBase } from 'src/app/maps/widgets/widget-base';\r\n\r\n@Component({\r\n selector: 'sis-ropeway-brakereport-widget',\r\n templateUrl: './ropeway-brakereport-widget.component.html',\r\n standalone: false,\r\n})\r\nexport class RopewayBrakeReportWidgetComponent extends WidgetBase {}\r\n","\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n\r\n","import { Component } from '@angular/core';\r\nimport { ModalController } from '@ionic/angular';\r\nimport { firstValueFrom } from 'rxjs';\r\nimport { ScreenSizeService } from 'src/app/core/utils/screen-size.service';\r\nimport { ModalPopupComponent } from 'src/app/maps/modal-popup/modal-popup.component';\r\nimport { RopewayChartComponent } from 'src/app/maps/widgets/charts/ropeway-chart/ropeway-chart.component';\r\nimport { WidgetBase } from 'src/app/maps/widgets/widget-base';\r\nimport { UserMessage } from 'src/app/user-message/user-message.model';\r\nimport { UserMessageService } from 'src/app/user-message/user-message.service';\r\nimport { UserMessageColor } from 'src/app/user-message/user-message-color';\r\nimport { UserMessageIcon } from 'src/app/user-message/user-message-icon';\r\n\r\n@Component({\r\n selector: 'sis-ropeway-chart-widget',\r\n templateUrl: './ropeway-chart-widget.component.html',\r\n standalone: false\r\n})\r\nexport class RopewayChartWidgetComponent extends WidgetBase {\r\n constructor(\r\n private modalController: ModalController,\r\n private screenSizeService: ScreenSizeService,\r\n private userMessageService: UserMessageService\r\n ) {\r\n super();\r\n }\r\n\r\n async openChartModal(): Promise {\r\n const bigScreenMode = await firstValueFrom(this.screenSizeService.bigScreenMode$);\r\n if (!bigScreenMode) {\r\n this.userMessageService.presentToast(\r\n new UserMessage({\r\n message: 'general.phrase.bigScreenExclusiveFeature',\r\n icon: UserMessageIcon.info,\r\n durationMs: 2000,\r\n position: 'bottom',\r\n color: UserMessageColor.blue,\r\n })\r\n );\r\n return;\r\n }\r\n\r\n const modal = await this.modalController.create({\r\n component: ModalPopupComponent,\r\n componentProps: { component: RopewayChartComponent },\r\n cssClass: 'sis-ropeway-chart-modal',\r\n });\r\n return modal.present();\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, OnInit } from '@angular/core';\r\nimport { combineLatest, filter, map, switchMap, takeUntil } from 'rxjs';\r\nimport { MathUtils } from 'src/app/core/utils/mathUtils';\r\nimport { RopewayEcoModeSettingsService } from 'src/app/maps/domain/ropeway-ecomode/ropeway-ecomode-settings.service';\r\nimport { RopewayEcoModeLivedataService } from 'src/app/maps/livedata/ropeway-ecomode-livedata.service';\r\nimport { SelectedMapElementService } from 'src/app/maps/selected-map-element.service';\r\nimport { WidgetBase } from 'src/app/maps/widgets/widget-base';\r\n\r\n@Component({\r\n selector: 'sis-ropeway-ecomode-widget',\r\n templateUrl: './ropeway-ecomode-widget.component.html',\r\n styleUrls: ['./ropeway-ecomode-widget.component.scss'],\r\n standalone: false\r\n})\r\nexport class RopewayEcoModeWidgetComponent extends WidgetBase implements OnInit {\r\n private readonly colorEnabled = 'var(--ion-color-primary)';\r\n private readonly colorDisabled = 'var(--ion-color-danger)';\r\n private readonly colorNoData = 'var(--ion-color-medium)';\r\n\r\n color: string = this.colorNoData;\r\n targetSpeed: string;\r\n\r\n constructor(\r\n private ropewayEcoModeLivedataService: RopewayEcoModeLivedataService,\r\n private ropewayEcoModeSettingsService: RopewayEcoModeSettingsService,\r\n private selectedMapElementService: SelectedMapElementService\r\n ) {\r\n super();\r\n }\r\n\r\n ngOnInit(): void {\r\n this.selectedMapElementService.selectedRopeway$\r\n .pipe(\r\n filter((ropeway) => !!ropeway),\r\n switchMap((ropeway) =>\r\n combineLatest([\r\n this.ropewayEcoModeLivedataService.ropewayEcoModeLiveData$.pipe(\r\n map((livedata) => livedata.find((d) => d.deviceSisId === ropeway.sisId))\r\n ),\r\n this.ropewayEcoModeSettingsService.ropewayEcoModeSettings$.pipe(\r\n map((settings) => settings.find((d) => d.ropewaySisId === ropeway.sisId))\r\n ),\r\n ])\r\n ),\r\n takeUntil(this.onDestroy$)\r\n )\r\n .subscribe(([livedata, ecoModeSettings]) => {\r\n if (livedata?.outdated) {\r\n this.color = this.colorNoData;\r\n this.targetSpeed = WidgetBase.valueUnknown;\r\n return;\r\n }\r\n\r\n if (!livedata || !ecoModeSettings.ecoModeEnabledCockpit) {\r\n this.color = this.colorNoData;\r\n this.targetSpeed = '';\r\n return;\r\n }\r\n\r\n this.color = livedata.ecoModeEnabledPLC ? this.colorEnabled : this.colorDisabled;\r\n this.targetSpeed = `${MathUtils.roundTo(livedata.targetSpeedMps, 1)} m/s`;\r\n });\r\n }\r\n}\r\n","\r\n \r\n \r\n \r\n {{ this.targetSpeed }}\r\n \r\n \r\n\r\n","import { Directive } from '@angular/core';\r\nimport { Observable, of } from 'rxjs';\r\nimport { map, switchMap } from 'rxjs/operators';\r\nimport { Ropeway } from 'src/app/maps/domain/ropeway.model';\r\nimport { RopewayLivedata } from 'src/app/maps/livedata/ropeway-livedata.model';\r\nimport { RopewayLivedataService } from 'src/app/maps/livedata/ropeway-livedata.service';\r\nimport { SelectedMapElementService } from 'src/app/maps/selected-map-element.service';\r\nimport { WidgetBase } from 'src/app/maps/widgets/widget-base';\r\n\r\n@Directive()\r\nexport abstract class RopewayOperationWidgetBase extends WidgetBase {\r\n protected showOutdatedData = false;\r\n\r\n outdated: boolean;\r\n dataTimestamp: Date;\r\n\r\n ropewayLiveData$: Observable<{ ropeway?: Ropeway; liveData?: RopewayLivedata }> =\r\n this.selectedMapElementService.selectedRopeway$.pipe(\r\n switchMap((ropeway) => {\r\n if (!ropeway) {\r\n return of({});\r\n } else {\r\n return this.ropewayLiveDataService.ropewayLiveData$.pipe(\r\n map((ropewayLiveDatas) => {\r\n if (!ropewayLiveDatas) {\r\n return { ropeway };\r\n }\r\n const liveData = ropewayLiveDatas.find((data: RopewayLivedata) => data.deviceSisId === ropeway.sisId);\r\n\r\n this.outdated = liveData?.outdated;\r\n this.dataTimestamp = liveData?.deviceTimestamp;\r\n\r\n if (!liveData || (this.outdated && !this.showOutdatedData)) {\r\n return { ropeway };\r\n }\r\n\r\n return { ropeway, liveData };\r\n })\r\n );\r\n }\r\n })\r\n );\r\n\r\n constructor(\r\n private ropewayLiveDataService: RopewayLivedataService,\r\n private selectedMapElementService: SelectedMapElementService\r\n ) {\r\n super();\r\n }\r\n}\r\n","import { Component } from '@angular/core';\r\nimport { WidgetBase } from 'src/app/maps/widgets/widget-base';\r\n\r\n@Component({\r\n selector: 'sis-ropeway-settings-widget',\r\n templateUrl: './ropeway-settings-widget.component.html',\r\n styleUrls: ['./ropeway-settings-widget.component.scss'],\r\n standalone: false\r\n})\r\nexport class RopewaySettingsWidgetComponent extends WidgetBase {}\r\n","\r\n \r\n\r\n","import { Component } from '@angular/core';\r\nimport { WidgetBase } from 'src/app/maps/widgets/widget-base';\r\n\r\n@Component({\r\n selector: 'sis-sambesi-whatsup-widget',\r\n templateUrl: './sambesi-whatsup-widget.component.html',\r\n styleUrls: ['./sambesi-whatsup-widget.component.scss'],\r\n standalone: false\r\n})\r\nexport class SambesiWhatsUpWidgetComponent extends WidgetBase {}\r\n","\r\n \r\n \r\n \r\n","import { Component } from '@angular/core';\r\n\r\n@Component({\r\n selector: 'sis-snowmaking-widget',\r\n templateUrl: './snowmaking-widget.component.html',\r\n styleUrls: ['./snowmaking-widget.component.scss'],\r\n standalone: false\r\n})\r\nexport class SnowmakingWidgetComponent {}\r\n","\r\n \r\n \r\n \r\n \r\n\r\n","import { Component, OnInit } from '@angular/core';\r\nimport { takeUntil } from 'rxjs/operators';\r\nimport { MathUtils } from 'src/app/core/utils/mathUtils';\r\nimport { WidgetUtils } from 'src/app/core/utils/widgetUtils';\r\nimport { Configuration } from 'src/app/maps/domain/configuration.model';\r\nimport { Ropeway } from 'src/app/maps/domain/ropeway.model';\r\nimport { RopewayLivedataService } from 'src/app/maps/livedata/ropeway-livedata.service';\r\nimport { SelectedMapElementService } from 'src/app/maps/selected-map-element.service';\r\nimport { RopewayOperationWidgetBase } from 'src/app/maps/widgets/ropeway-operation-widget-base';\r\nimport { WidgetBase } from 'src/app/maps/widgets/widget-base';\r\n\r\n@Component({\r\n selector: 'sis-speed-widget',\r\n templateUrl: './speed-widget.component.html',\r\n styleUrls: ['./speed-widget.component.scss'],\r\n standalone: false\r\n})\r\nexport class SpeedWidgetComponent extends RopewayOperationWidgetBase implements OnInit {\r\n static rotationUnknown = 0;\r\n\r\n actualSpeedMps: string;\r\n rotationDeg = 0;\r\n background = '';\r\n\r\n constructor(ropewayLiveDataService: RopewayLivedataService, selectedMapElementService: SelectedMapElementService) {\r\n super(ropewayLiveDataService, selectedMapElementService);\r\n }\r\n\r\n ngOnInit(): void {\r\n this.ropewayLiveData$.pipe(takeUntil(this.onDestroy$)).subscribe((d) => {\r\n if (d.liveData?.actualSpeedMps == null) {\r\n this.resetToDefault();\r\n return;\r\n }\r\n\r\n const speed = d.liveData.actualSpeedMps;\r\n this.actualSpeedMps = Number(MathUtils.roundTo(speed, 1)).toFixed(1);\r\n this.rotateWidget(d.ropeway, speed);\r\n });\r\n }\r\n\r\n private rotateWidget(ropeway: Ropeway, actualSpeedMps: number): void {\r\n const configuration: Configuration = ropeway?.configurations?.find(\r\n (c) => c.configKey === Configuration.actualSpeedMps\r\n );\r\n\r\n if (!configuration) {\r\n this.noConfigError();\r\n return;\r\n }\r\n\r\n this.rotationDeg = Math.abs(\r\n WidgetUtils.calculateDegreeWithLimit(actualSpeedMps, configuration.nominalValue, 0, -180)\r\n );\r\n this.background = '';\r\n }\r\n\r\n private noConfigError(): void {\r\n this.rotationDeg = SpeedWidgetComponent.rotationUnknown;\r\n this.background = 'sis-error-bg';\r\n }\r\n\r\n private resetToDefault(): void {\r\n this.actualSpeedMps = WidgetBase.valueUnknown;\r\n this.rotationDeg = SpeedWidgetComponent.rotationUnknown;\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 {{ actualSpeedMps }}\r\n m/s\r\n \r\n \r\n \r\n \r\n \r\n \r\n\r\n","import { Component, OnInit } from '@angular/core';\r\nimport { interval } from 'rxjs';\r\nimport { map, switchMap, takeUntil } from 'rxjs/operators';\r\nimport { MasterdataService } from 'src/app/maps/domain/masterdata.service';\r\nimport { Ropeway } from 'src/app/maps/domain/ropeway.model';\r\nimport { RopewayStatusTime } from 'src/app/maps/livedata/ropeway-status-time.model';\r\nimport { RopewayStatusTimeService } from 'src/app/maps/livedata/ropeway-status-time.service';\r\nimport { SelectedMapElementService } from 'src/app/maps/selected-map-element.service';\r\nimport { WidgetBase } from 'src/app/maps/widgets/widget-base';\r\n\r\n@Component({\r\n selector: 'sis-stoptime-widget',\r\n templateUrl: './stoptime-widget.component.html',\r\n styleUrls: ['./stoptime-widget.component.scss'],\r\n standalone: false\r\n})\r\nexport class StoptimeWidgetComponent extends WidgetBase implements OnInit {\r\n private readonly stopColor = 'var(--ion-color-danger)';\r\n private readonly runColor = 'var(--ion-color-primary)';\r\n private readonly hoursUnit = 'h';\r\n private readonly minutesUnit = 'min';\r\n private readonly secondsUnit = 's';\r\n private readonly startThresholdMilliseconds = 2 * 60 * 1000;\r\n\r\n statusColor = this.runColor;\r\n displayedTime: string;\r\n displayedUnit: string;\r\n\r\n private startTimeMs: number;\r\n private initialStopTimeMs: number;\r\n private offsetSpaToApiMilliseconds: number;\r\n\r\n constructor(\r\n private masterdataService: MasterdataService,\r\n private ropewayStatusTimeService: RopewayStatusTimeService,\r\n private selectedMapElementService: SelectedMapElementService\r\n ) {\r\n super();\r\n }\r\n\r\n ngOnInit(): void {\r\n this.masterdataService.masterData$.pipe(takeUntil(this.onDestroy$)).subscribe((data) => {\r\n this.offsetSpaToApiMilliseconds = data.offsetSpaToApiMilliseconds;\r\n });\r\n\r\n interval(1000)\r\n .pipe(takeUntil(this.onDestroy$))\r\n .subscribe(() => {\r\n this.updateDisplay();\r\n });\r\n\r\n this.selectedMapElementService.selectedRopeway$\r\n .pipe(\r\n switchMap((ropeway) =>\r\n this.ropewayStatusTimeService.ropewayStatusTimes$.pipe(\r\n map((ropewayStatusTimes) => ({ ropeway, ropewayStatusTimes }))\r\n )\r\n ),\r\n takeUntil(this.onDestroy$)\r\n )\r\n .subscribe(({ ropeway, ropewayStatusTimes }) => this.update(ropeway, ropewayStatusTimes));\r\n }\r\n\r\n private update(ropeway: Ropeway, ropewayStatusTimes: RopewayStatusTime[]) {\r\n if (!ropeway) {\r\n return;\r\n }\r\n\r\n const statusTimeData = ropewayStatusTimes.find((st) => st.deviceSisId === ropeway.sisId);\r\n if (statusTimeData) {\r\n this.startTimeMs = statusTimeData.startTime ? statusTimeData.startTime.getTime() : undefined;\r\n this.initialStopTimeMs = statusTimeData.initialStopTime ? statusTimeData.initialStopTime.getTime() : undefined;\r\n\r\n this.updateDisplay();\r\n }\r\n }\r\n\r\n private updateDisplay(): void {\r\n const now = Date.now() - this.offsetSpaToApiMilliseconds;\r\n\r\n const hasNoStartTimeAndNoStopTime = !this.startTimeMs && !this.initialStopTimeMs;\r\n const hasStartTime = this.startTimeMs != null;\r\n const hasStopTime = this.initialStopTimeMs != null;\r\n const isRunningForMoreThanThreshold = hasStartTime && this.startTimeMs + this.startThresholdMilliseconds < now;\r\n const startTimeIsAfterStopTime = !hasStopTime || (hasStartTime && this.initialStopTimeMs < this.startTimeMs);\r\n\r\n if (hasNoStartTimeAndNoStopTime || (startTimeIsAfterStopTime && isRunningForMoreThanThreshold)) {\r\n this.resetToDefault();\r\n return;\r\n }\r\n\r\n this.statusColor = this.stopColor;\r\n const milliseconds = now - this.initialStopTimeMs;\r\n const seconds = milliseconds / 1000;\r\n\r\n const hours = Math.floor(seconds / 3600);\r\n if (hours > 0) {\r\n this.displayedTime = hours.toString();\r\n this.displayedUnit = this.hoursUnit;\r\n return;\r\n }\r\n\r\n const minutes = Math.floor(seconds / 60);\r\n if (minutes > 0) {\r\n this.displayedTime = minutes.toString();\r\n this.displayedUnit = this.minutesUnit;\r\n return;\r\n }\r\n\r\n this.displayedTime = Math.floor(seconds).toString();\r\n this.displayedUnit = this.secondsUnit;\r\n }\r\n\r\n private resetToDefault(): void {\r\n this.displayedTime = undefined;\r\n this.displayedUnit = undefined;\r\n this.statusColor = this.runColor;\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 {{ this.displayedTime }}\r\n {{ this.displayedUnit }}\r\n \r\n \r\n \r\n\r\n","import { Component, OnInit } from '@angular/core';\r\nimport { combineLatest } from 'rxjs';\r\nimport { takeUntil } from 'rxjs/operators';\r\nimport { MeteoStation } from 'src/app/maps/domain/meteostation.model';\r\nimport { MeteoLivedata } from 'src/app/maps/livedata/meteo-livedata.model';\r\nimport { MeteoLivedataService } from 'src/app/maps/livedata/meteo-livedata.service';\r\nimport { MeteoStationService } from 'src/app/maps/meteostation-service/meteostation.service';\r\nimport { WidgetBase } from 'src/app/maps/widgets/widget-base';\r\n\r\n@Component({\r\n selector: 'sis-temperature-widget',\r\n templateUrl: './temperature-widget.component.html',\r\n styleUrls: ['./temperature-widget.component.scss'],\r\n standalone: false\r\n})\r\nexport class TemperatureWidgetComponent extends WidgetBase implements OnInit {\r\n private readonly maxTemperatureCelsius: number = 40;\r\n private readonly minTemperatureCelsius: number = -25;\r\n private readonly barMaxHeight = 93;\r\n private readonly barStartYValue = 116.3;\r\n\r\n temperatureCelsius: string;\r\n innerBarHeight: string;\r\n innerBarYValue: string;\r\n\r\n constructor(private meteoStationService: MeteoStationService, private meteoLiveDataService: MeteoLivedataService) {\r\n super();\r\n }\r\n\r\n ngOnInit(): void {\r\n combineLatest([\r\n this.meteoLiveDataService.meteoLiveDatas$,\r\n this.meteoStationService.meteoStationWithLowestTemperature$,\r\n ])\r\n .pipe(takeUntil(this.onDestroy$))\r\n .subscribe(([meteoLiveDatas, meteoStation]) => {\r\n this.update(meteoLiveDatas, meteoStation);\r\n });\r\n }\r\n\r\n private update(meteoLiveDatas: MeteoLivedata[], meteoStation: MeteoStation): void {\r\n if (!meteoLiveDatas || !meteoStation) {\r\n this.resetToDefault();\r\n return;\r\n }\r\n\r\n const meteoLiveData = this.findDataForStation(meteoStation, meteoLiveDatas);\r\n if (!meteoLiveData || meteoLiveData.outdated) {\r\n this.resetToDefault();\r\n return;\r\n }\r\n\r\n this.calcAndSetDisplayValues(meteoLiveData.temperatureCelsius);\r\n }\r\n\r\n private resetToDefault(): void {\r\n this.calcAndSetDisplayValues(null);\r\n }\r\n\r\n private findDataForStation(meteoStation: MeteoStation, liveDatas: MeteoLivedata[]): MeteoLivedata {\r\n return liveDatas.find((d) => d.meteoDeviceSisId === meteoStation.meteoDeviceSisId);\r\n }\r\n\r\n private calcAndSetDisplayValues(temperatureCelsiusValue: number) {\r\n this.temperatureCelsius =\r\n temperatureCelsiusValue != null ? temperatureCelsiusValue.toString() : WidgetBase.valueUnknown;\r\n let innerHeight =\r\n (this.barMaxHeight / (this.maxTemperatureCelsius + Math.abs(this.minTemperatureCelsius))) *\r\n (temperatureCelsiusValue ? temperatureCelsiusValue + Math.abs(this.minTemperatureCelsius) : 0);\r\n\r\n innerHeight =\r\n innerHeight <= this.barMaxHeight && innerHeight >= 0\r\n ? innerHeight\r\n : innerHeight > this.barMaxHeight\r\n ? this.barMaxHeight\r\n : 0;\r\n this.innerBarHeight = innerHeight + 'px';\r\n this.innerBarYValue = this.barStartYValue - innerHeight + 'px';\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 {{ this.temperatureCelsius }}\r\n °C\r\n \r\n \r\n \r\n\r\n","import { Component, OnInit } from '@angular/core';\r\nimport { takeUntil } from 'rxjs/operators';\r\nimport { WidgetUtils } from 'src/app/core/utils/widgetUtils';\r\nimport { Configuration } from 'src/app/maps/domain/configuration.model';\r\nimport { Ropeway } from 'src/app/maps/domain/ropeway.model';\r\nimport { RopewayLivedata } from 'src/app/maps/livedata/ropeway-livedata.model';\r\nimport { RopewayLivedataService } from 'src/app/maps/livedata/ropeway-livedata.service';\r\nimport { SelectedMapElementService } from 'src/app/maps/selected-map-element.service';\r\nimport { RopewayOperationWidgetBase } from 'src/app/maps/widgets/ropeway-operation-widget-base';\r\nimport { WidgetBase } from 'src/app/maps/widgets/widget-base';\r\n\r\n@Component({\r\n selector: 'sis-torque-widget',\r\n templateUrl: './torque-widget.component.html',\r\n styleUrls: ['./torque-widget.component.scss'],\r\n standalone: false\r\n})\r\nexport class TorqueWidgetComponent extends RopewayOperationWidgetBase implements OnInit {\r\n static rotationUnknown = 0;\r\n static unitNone = '';\r\n static unitAmps = 'A';\r\n static unitNewtonM = 'Nm';\r\n static unitPercent = '%';\r\n\r\n displayedValue: string;\r\n displayedUnit: string;\r\n rotationDeg = 0;\r\n showRotation = true;\r\n\r\n private config: Configuration;\r\n\r\n constructor(ropewayLiveDataService: RopewayLivedataService, selectedMapElementService: SelectedMapElementService) {\r\n super(ropewayLiveDataService, selectedMapElementService);\r\n }\r\n\r\n ngOnInit(): void {\r\n this.ropewayLiveData$.pipe(takeUntil(this.onDestroy$)).subscribe((d) => {\r\n this.config = this.findConfig(d.ropeway);\r\n this.update(d.ropeway, d.liveData);\r\n });\r\n }\r\n\r\n private update(ropeway: Ropeway, liveData: RopewayLivedata): void {\r\n let percentConfig: Configuration = null;\r\n let ampereConfig: Configuration = null;\r\n\r\n let hasAmpereValue = false;\r\n let hasPercentValue = false;\r\n\r\n let hasAmpereConfig = false;\r\n let hasPercentConfig = false;\r\n\r\n if (ropeway?.configurations) {\r\n percentConfig = ropeway.configurations.find((c) => c.configKey === Configuration.driveTorqueNmKey);\r\n hasPercentConfig = percentConfig != null;\r\n ampereConfig = ropeway.configurations.find((c) => c.configKey === Configuration.driveMotorCurrentAmpereKey);\r\n hasAmpereConfig = ampereConfig != null;\r\n }\r\n\r\n if (liveData) {\r\n hasAmpereValue = liveData.driveMotorCurrentAmpere != null;\r\n hasPercentValue = liveData.driveMotorTorquePercent != null;\r\n }\r\n\r\n if (hasPercentValue && hasPercentConfig) {\r\n const percent = liveData.driveMotorTorquePercent;\r\n this.updateWidget(\r\n TorqueWidgetComponent.unitNewtonM,\r\n Math.round(percentConfig.nominalValue * (percent / 100)).toString(),\r\n percent\r\n );\r\n return;\r\n }\r\n\r\n if (hasAmpereValue && hasAmpereConfig) {\r\n const percent = (liveData.driveMotorCurrentAmpere / ampereConfig.nominalValue) * 100;\r\n this.updateWidget(TorqueWidgetComponent.unitAmps, liveData.driveMotorCurrentAmpere.toString(), percent);\r\n return;\r\n }\r\n\r\n if (hasPercentValue && !hasPercentConfig) {\r\n this.updateWidget(\r\n TorqueWidgetComponent.unitPercent,\r\n liveData.driveMotorTorquePercent.toString(),\r\n liveData.driveMotorTorquePercent\r\n );\r\n return;\r\n }\r\n\r\n if (hasAmpereValue && !hasAmpereConfig) {\r\n this.updateWidget(TorqueWidgetComponent.unitAmps, liveData.driveMotorCurrentAmpere.toString());\r\n return;\r\n }\r\n\r\n this.resetToDefault();\r\n }\r\n\r\n private updateWidget(unit: string, value: string, rotation?: number): void {\r\n this.showRotation = rotation != null;\r\n this.rotateWidget(rotation ? rotation : 0);\r\n this.displayedValue = value;\r\n this.displayedUnit = unit;\r\n }\r\n\r\n private rotateWidget(driveMotorTorquePercent: number): void {\r\n this.rotationDeg = Math.abs(WidgetUtils.calculateDegreeWithLimit(driveMotorTorquePercent, 100, 0, -180));\r\n }\r\n\r\n private findConfig(ropeway: Ropeway): Configuration {\r\n return ropeway?.configurations?.find(\r\n (c) => c.configKey === Configuration.driveTorqueNmKey || c.configKey === Configuration.driveMotorCurrentAmpereKey\r\n );\r\n }\r\n\r\n private resetToDefault(): void {\r\n this.displayedValue = WidgetBase.valueUnknown;\r\n this.rotationDeg = TorqueWidgetComponent.rotationUnknown;\r\n this.displayedUnit = this.config\r\n ? this.config.configKey === Configuration.driveTorqueNmKey\r\n ? TorqueWidgetComponent.unitNewtonM\r\n : TorqueWidgetComponent.unitAmps\r\n : TorqueWidgetComponent.unitNone;\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 {{ displayedValue }}\r\n {{ displayedUnit }}\r\n \r\n \r\n \r\n\r\n","import { Component, OnInit } from '@angular/core';\r\nimport { takeUntil } from 'rxjs/operators';\r\nimport { RopewayLivedataService } from 'src/app/maps/livedata/ropeway-livedata.service';\r\nimport { SelectedMapElementService } from 'src/app/maps/selected-map-element.service';\r\nimport { RopewayOperationWidgetBase } from 'src/app/maps/widgets/ropeway-operation-widget-base';\r\nimport { WidgetBase } from 'src/app/maps/widgets/widget-base';\r\n\r\n@Component({\r\n selector: 'sis-transportweight-widget',\r\n templateUrl: './transportweight-widget.component.html',\r\n styleUrls: ['./transportweight-widget.component.scss'],\r\n standalone: false\r\n})\r\nexport class TransportWeightWidgetComponent extends RopewayOperationWidgetBase implements OnInit {\r\n transportWeightTons: string;\r\n\r\n constructor(ropewayLiveDataService: RopewayLivedataService, selectedMapElementService: SelectedMapElementService) {\r\n super(ropewayLiveDataService, selectedMapElementService);\r\n }\r\n\r\n ngOnInit(): void {\r\n this.ropewayLiveData$.pipe(takeUntil(this.onDestroy$)).subscribe((d) => {\r\n if (!d.liveData?.vehicleData['transportWeightKg']?.length) {\r\n this.resetToDefault();\r\n return;\r\n }\r\n\r\n this.transportWeightTons = this.calculateTransportWeightTons(d.liveData.vehicleData['transportWeightKg']).toFixed(\r\n 0\r\n );\r\n });\r\n }\r\n\r\n private resetToDefault(): void {\r\n this.transportWeightTons = WidgetBase.valueUnknown;\r\n }\r\n\r\n private calculateTransportWeightTons(transportWeightKg: number[]): number {\r\n return transportWeightKg.reduce((sum, current) => sum + current, 0) / 1000;\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 {{ transportWeightTons }}\r\n t\r\n \r\n\r\n","import { Component, OnInit } from '@angular/core';\r\nimport { takeUntil } from 'rxjs/operators';\r\nimport { MathUtils } from 'src/app/core/utils/mathUtils';\r\nimport { RopewayLivedataService } from 'src/app/maps/livedata/ropeway-livedata.service';\r\nimport { SelectedMapElementService } from 'src/app/maps/selected-map-element.service';\r\nimport { RopewayOperationWidgetBase } from 'src/app/maps/widgets/ropeway-operation-widget-base';\r\nimport { WidgetBase } from 'src/app/maps/widgets/widget-base';\r\n\r\n@Component({\r\n selector: 'sis-trips-widget',\r\n templateUrl: './trips-widget.component.html',\r\n styleUrls: ['./trips-widget.component.scss'],\r\n standalone: false\r\n})\r\nexport class TripsWidgetComponent extends RopewayOperationWidgetBase implements OnInit {\r\n tripCount: string;\r\n\r\n constructor(ropewayLiveDataService: RopewayLivedataService, selectedMapElementService: SelectedMapElementService) {\r\n super(ropewayLiveDataService, selectedMapElementService);\r\n this.showOutdatedData = true;\r\n }\r\n\r\n ngOnInit(): void {\r\n this.ropewayLiveData$.pipe(takeUntil(this.onDestroy$)).subscribe((d) => {\r\n if (d.liveData?.tripCount == null) {\r\n this.tripCount = WidgetBase.valueUnknown;\r\n return;\r\n }\r\n\r\n this.tripCount = MathUtils.roundTo(d.liveData.tripCount, 1);\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 {{ tripCount }}\r\n \r\n \r\n \r\n\r\n","import { Component, OnInit } from '@angular/core';\r\nimport { combineLatest } from 'rxjs';\r\nimport { filter, takeUntil } from 'rxjs/operators';\r\nimport { TruScanData } from 'src/app/maps/livedata/truscan-data.model';\r\nimport { TruScanDataService } from 'src/app/maps/livedata/truscan-data.service';\r\nimport { SelectedMapElementService } from 'src/app/maps/selected-map-element.service';\r\nimport { WidgetBase } from 'src/app/maps/widgets/widget-base';\r\n\r\n@Component({\r\n selector: 'sis-truscan-widget',\r\n templateUrl: './truscan-widget.component.html',\r\n styleUrls: ['./truscan-widget.component.scss'],\r\n standalone: false\r\n})\r\nexport class TruScanWidgetComponent extends WidgetBase implements OnInit {\r\n static readonly cssClassGood = 'sis-truscan-good';\r\n static readonly cssClassTolerable = 'sis-truscan-tolerable';\r\n static readonly cssClassPoor = 'sis-truscan-poor';\r\n static readonly cssClassUnknown = 'sis-truscan-unknown';\r\n\r\n displayedValue: string = WidgetBase.valueUnknown;\r\n class: string = TruScanWidgetComponent.cssClassGood;\r\n\r\n constructor(\r\n private truScanDataService: TruScanDataService,\r\n private selectedMapElementService: SelectedMapElementService\r\n ) {\r\n super();\r\n }\r\n\r\n ngOnInit(): void {\r\n combineLatest([\r\n this.truScanDataService.truScanDatas$.pipe(filter((truScanDatas) => !!truScanDatas)),\r\n this.selectedMapElementService.selectedRopeway$,\r\n ])\r\n .pipe(takeUntil(this.onDestroy$))\r\n .subscribe(([truScanDatas, ropeway]) => {\r\n this.class = this.getCssClass(truScanDatas, ropeway?.sisId);\r\n this.displayedValue = Math.min(\r\n ...truScanDatas.filter((data) => data.ropewaySisId == ropeway?.sisId).map((item) => item.health)\r\n ).toString();\r\n });\r\n }\r\n\r\n private getCssClass(truScanDatas: TruScanData[], selectedRopewaySisId: string): string {\r\n let cssClass = TruScanWidgetComponent.cssClassGood;\r\n\r\n let data = truScanDatas;\r\n\r\n if (selectedRopewaySisId) {\r\n data = data.filter((data) => data.ropewaySisId === selectedRopewaySisId);\r\n }\r\n\r\n const smallestRopeHealth = Math.min(\r\n ...data.filter((d) => d.ropewaySisId == selectedRopewaySisId).map((item) => item.health)\r\n );\r\n\r\n if (smallestRopeHealth >= 50) {\r\n cssClass = TruScanWidgetComponent.cssClassGood;\r\n } else if (smallestRopeHealth <= 10) {\r\n cssClass = TruScanWidgetComponent.cssClassPoor;\r\n } else {\r\n cssClass = TruScanWidgetComponent.cssClassTolerable;\r\n }\r\n\r\n return cssClass;\r\n }\r\n}\r\n","\r\n \r\n \r\n \r\n {{ displayedValue }}\r\n %\r\n \r\n \r\n\r\n","import { Component, OnInit } from '@angular/core';\r\nimport { takeUntil } from 'rxjs/operators';\r\nimport { RopewayLivedataService } from 'src/app/maps/livedata/ropeway-livedata.service';\r\nimport { SelectedMapElementService } from 'src/app/maps/selected-map-element.service';\r\nimport { RopewayOperationWidgetBase } from 'src/app/maps/widgets/ropeway-operation-widget-base';\r\nimport { WidgetBase } from 'src/app/maps/widgets/widget-base';\r\n\r\n@Component({\r\n selector: 'sis-utilization-widget',\r\n templateUrl: './utilization-widget.component.html',\r\n styleUrls: ['./utilization-widget.component.scss'],\r\n standalone: false\r\n})\r\nexport class UtilizationWidgetComponent extends RopewayOperationWidgetBase implements OnInit {\r\n private readonly barMaxHeight = 137.5;\r\n private readonly barStartYValue = 18.75;\r\n\r\n percent: string;\r\n innerBarHeight: string;\r\n innerBarYValue: string;\r\n\r\n constructor(ropewayLiveDataService: RopewayLivedataService, selectedMapElementService: SelectedMapElementService) {\r\n super(ropewayLiveDataService, selectedMapElementService);\r\n }\r\n\r\n ngOnInit(): void {\r\n this.ropewayLiveData$.pipe(takeUntil(this.onDestroy$)).subscribe((d) => {\r\n if (d.liveData?.vehicleOnTrackCountPercent == null && d.liveData?.vehicleCountPercent == null) {\r\n this.calcAndSetDisplayValues(null);\r\n return;\r\n }\r\n\r\n const vehicleCountPercentValue = d.liveData.vehicleOnTrackCountPercent ?? d.liveData.vehicleCountPercent;\r\n this.calcAndSetDisplayValues(vehicleCountPercentValue);\r\n });\r\n }\r\n\r\n private calcAndSetDisplayValues(vehicleCountPercentValue: number) {\r\n this.percent = vehicleCountPercentValue ? vehicleCountPercentValue.toString() : WidgetBase.valueUnknown;\r\n const innerHeight = (this.barMaxHeight / 100) * (vehicleCountPercentValue ? vehicleCountPercentValue : 0);\r\n this.innerBarHeight = innerHeight + 'px';\r\n this.innerBarYValue = this.barStartYValue + this.barMaxHeight - innerHeight + 'px';\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 {{ this.percent }}\r\n %\r\n \r\n \r\n \r\n\r\n","import { Component, OnInit } from '@angular/core';\r\nimport { takeUntil } from 'rxjs/operators';\r\nimport { NavigatorService } from 'src/app/core/navigator/navigator.service';\r\nimport { Unsubscriber } from 'src/app/core/unsubscriber';\r\nimport { MasterData } from 'src/app/maps/domain/masterdata.model';\r\nimport { MasterdataService } from 'src/app/maps/domain/masterdata.service';\r\n\r\n@Component({\r\n selector: 'sis-weathertrend-widget',\r\n templateUrl: './weathertrend-widget.component.html',\r\n styleUrls: ['./weathertrend-widget.component.scss'],\r\n standalone: false\r\n})\r\nexport class WeathertrendWidgetComponent extends Unsubscriber implements OnInit {\r\n private masterdata: MasterData;\r\n\r\n constructor(private masterdataService: MasterdataService, private navigator: NavigatorService) {\r\n super();\r\n }\r\n\r\n ngOnInit(): void {\r\n this.masterdataService.masterData$.pipe(takeUntil(this.onDestroy$)).subscribe((data) => (this.masterdata = data));\r\n }\r\n\r\n openLink(): void {\r\n if (this.masterdata) {\r\n this.navigator.openInNewTab(this.masterdata.weatherTrendLink);\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 } from '@angular/core';\r\n\r\n@Component({\r\n selector: 'sis-webcam-widget',\r\n templateUrl: './webcam-widget.component.html',\r\n standalone: false\r\n})\r\nexport class WebcamWidgetComponent {}\r\n","\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n\r\n","import { Component, OnInit } from '@angular/core';\r\nimport { combineLatest, Observable } from 'rxjs';\r\nimport { filter, map, startWith, takeUntil, withLatestFrom } from 'rxjs/operators';\r\nimport { MeteoForecast } from 'src/app/maps/livedata/meteo-forecast.model';\r\nimport { MeteoForecastService } from 'src/app/maps/livedata/meteo-forecast.service';\r\nimport { MeteoLivedata } from 'src/app/maps/livedata/meteo-livedata.model';\r\nimport { MeteoLivedataService } from 'src/app/maps/livedata/meteo-livedata.service';\r\nimport { MeteoStationService } from 'src/app/maps/meteostation-service/meteostation.service';\r\nimport { WidgetBase } from 'src/app/maps/widgets/widget-base';\r\n\r\n@Component({\r\n selector: 'sis-wet-bulb-widget',\r\n templateUrl: './wet-bulb-widget.component.html',\r\n styleUrls: ['./wet-bulb-widget.component.scss'],\r\n standalone: false\r\n})\r\nexport class WetBulbWidgetComponent extends WidgetBase implements OnInit {\r\n private readonly wetBulbTemperatureCelsius$: Observable = combineLatest([\r\n this.meteoLiveDataService.meteoLiveDatas$.pipe(startWith([])),\r\n this.meteoForecastService.forecasts$.pipe(startWith([])),\r\n ]).pipe(\r\n withLatestFrom(\r\n this.meteoStationService.relevantMeteoStationWithWetBulbTemperature$.pipe(\r\n filter((meteoStation) => !!meteoStation),\r\n map((meteoStation) => meteoStation.meteoDeviceSisId)\r\n )\r\n ),\r\n map(([[meteoLiveDatas, meteoForecastDatas], meteoDeviceSisId]) => {\r\n const meteoLiveData = meteoLiveDatas?.find((d) => d.meteoDeviceSisId === meteoDeviceSisId);\r\n const meteoForecastData = meteoForecastDatas?.find((d) => d.deviceSisId === meteoDeviceSisId);\r\n\r\n const wetBulbLiveData = meteoLiveData\r\n ? meteoLiveData.outdated\r\n ? null\r\n : meteoLiveData.wetBulbTemperatureCelsius\r\n : null;\r\n\r\n const wetBulbForecastTemperatureCelsius = meteoForecastData\r\n ? meteoForecastData.outdated\r\n ? null\r\n : meteoForecastData.wetBulbTemperatureCelsius\r\n : null;\r\n\r\n this.isForecastValue = wetBulbLiveData == null && wetBulbForecastTemperatureCelsius != null;\r\n\r\n return wetBulbLiveData ?? wetBulbForecastTemperatureCelsius;\r\n })\r\n );\r\n\r\n wetBulbTemperatureCelsius: string = WidgetBase.valueUnknown;\r\n isForecastValue: boolean = false;\r\n\r\n constructor(\r\n private meteoStationService: MeteoStationService,\r\n private meteoForecastService: MeteoForecastService,\r\n private meteoLiveDataService: MeteoLivedataService\r\n ) {\r\n super();\r\n }\r\n\r\n ngOnInit(): void {\r\n this.wetBulbTemperatureCelsius$.pipe(takeUntil(this.onDestroy$)).subscribe((wetBulbTemperatureCelsius) => {\r\n this.calcAndSetDisplayValues(wetBulbTemperatureCelsius);\r\n });\r\n }\r\n\r\n private calcAndSetDisplayValues(wetBulbValue: number) {\r\n this.wetBulbTemperatureCelsius =\r\n wetBulbValue != null ? Math.round(wetBulbValue).toString() : WidgetBase.valueUnknown;\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 {{ this.wetBulbTemperatureCelsius }}\r\n °C\r\n \r\n \r\n\r\n","import { Directive } from '@angular/core';\r\nimport { Unsubscriber } from 'src/app/core/unsubscriber';\r\n\r\n@Directive()\r\nexport abstract class WidgetBase extends Unsubscriber {\r\n static valueUnknown = '?';\r\n\r\n textPositionX = '50%';\r\n textPositionY = '90%';\r\n fontSize = '40px';\r\n}\r\n","import { Component, OnInit } from '@angular/core';\r\nimport { takeUntil } from 'rxjs/operators';\r\nimport { Unsubscriber } from 'src/app/core/unsubscriber';\r\nimport { Alarm } from 'src/app/domain/alarm.model';\r\nimport { Configuration } from 'src/app/maps/domain/configuration.model';\r\nimport { Coords } from 'src/app/maps/domain/coords.model';\r\nimport { MeteoStation } from 'src/app/maps/domain/meteostation.model';\r\nimport { MeteoForecastAlarmService } from 'src/app/maps/livedata/meteo-forecast-alarm.service';\r\nimport { MeteoLivedata } from 'src/app/maps/livedata/meteo-livedata.model';\r\nimport { MeteoLivedataService } from 'src/app/maps/livedata/meteo-livedata.service';\r\nimport { WindIconComponent } from 'src/app/maps/map/meteo-layer/wind-icon/wind-icon.component';\r\nimport { MeteoStationService } from 'src/app/maps/meteostation-service/meteostation.service';\r\nimport { WidgetBase } from 'src/app/maps/widgets/widget-base';\r\nimport {\r\n ArrowStyle,\r\n WindDisplayCalculatorService,\r\n} from 'src/app/maps/wind-display-calculator/wind-display-calculator.service';\r\n\r\n@Component({\r\n selector: 'sis-wind-widget',\r\n templateUrl: './wind-widget.component.html',\r\n styleUrls: ['./wind-widget.component.scss'],\r\n standalone: false\r\n})\r\nexport class WindWidgetComponent extends Unsubscriber implements OnInit {\r\n static cssMeteostationColorOffline = 'sis-meteostation-offline';\r\n static windMarkerPivotPoint: Coords = { x: 93.75, y: 112.54 };\r\n static TYPE = 'wind';\r\n\r\n windSpeedKmh: string = WidgetBase.valueUnknown;\r\n colorClass = WindWidgetComponent.cssMeteostationColorOffline;\r\n background = '';\r\n updatedRotationTransform: string;\r\n directionWind: boolean;\r\n crossWind: boolean;\r\n isMeteostationOfRopeway: boolean;\r\n forecastColor = WindIconComponent.colorForecastNone;\r\n\r\n meteoStation: MeteoStation;\r\n\r\n private liveData: MeteoLivedata;\r\n private config: Configuration;\r\n private liveDatas: MeteoLivedata[];\r\n private forecastWarnings: Alarm[];\r\n\r\n constructor(\r\n private windDisplayService: WindDisplayCalculatorService,\r\n private meteoStationService: MeteoStationService,\r\n private meteoForecastAlarmService: MeteoForecastAlarmService,\r\n private meteoLiveDataService: MeteoLivedataService\r\n ) {\r\n super();\r\n }\r\n\r\n ngOnInit(): void {\r\n this.meteoLiveDataService.meteoLiveDatas$.pipe(takeUntil(this.onDestroy$)).subscribe((meteoLiveDatas) => {\r\n this.liveDatas = meteoLiveDatas;\r\n this.updateLiveData();\r\n });\r\n\r\n this.meteoForecastAlarmService.alarms$.pipe(takeUntil(this.onDestroy$)).subscribe((alarms) => {\r\n this.forecastWarnings = alarms;\r\n if (this.meteoStation && this.meteoStation.hasForecast) {\r\n this.updateForecastWarning();\r\n }\r\n });\r\n\r\n this.meteoStationService.activeMeteoStation$\r\n .pipe(takeUntil(this.onDestroy$))\r\n .subscribe((meteoStation: MeteoStation) => {\r\n this.meteoStation = meteoStation;\r\n if (this.meteoStation == null) {\r\n return;\r\n }\r\n this.updateLiveData();\r\n this.isMeteostationOfRopeway = this.meteoStation.ropewaySisId != null;\r\n this.updateForecastWarning();\r\n });\r\n }\r\n\r\n private updateLiveData() {\r\n if (!this.liveDatas) {\r\n this.resetToDefault();\r\n return;\r\n }\r\n\r\n if (!this.meteoStation) {\r\n this.resetToDefault();\r\n return;\r\n }\r\n\r\n this.liveData = this.findDataForStation(this.meteoStation, this.liveDatas);\r\n if (!this.liveData || this.liveData.outdated) {\r\n this.resetToDefault();\r\n return;\r\n }\r\n\r\n this.config = this.findConfigurationForStation(this.meteoStation, 'windSpeedKmh');\r\n this.updateColor();\r\n this.updateTransform();\r\n this.updateText();\r\n this.updateWindArrows();\r\n }\r\n\r\n private updateColor(): void {\r\n this.colorClass = this.windDisplayService.getColor(this.liveData, this.config);\r\n this.background = '';\r\n }\r\n\r\n private updateTransform(): void {\r\n this.updatedRotationTransform = this.windDisplayService.getRotationTransform(\r\n this.liveData,\r\n 0,\r\n this.meteoStation.directionOffsetNorth,\r\n WindWidgetComponent.windMarkerPivotPoint\r\n );\r\n }\r\n\r\n private updateText(): void {\r\n this.windSpeedKmh = this.windDisplayService.getWindSpeed(this.liveData);\r\n }\r\n\r\n private updateWindArrows(): void {\r\n const arrowStyle = this.windDisplayService.getArrowStyle(this.liveData, this.meteoStation);\r\n switch (arrowStyle) {\r\n case ArrowStyle.NONE:\r\n this.crossWind = false;\r\n this.directionWind = false;\r\n return;\r\n case ArrowStyle.ONE:\r\n this.crossWind = false;\r\n this.directionWind = true;\r\n return;\r\n case ArrowStyle.TWO:\r\n this.crossWind = true;\r\n this.directionWind = false;\r\n return;\r\n default:\r\n return;\r\n }\r\n }\r\n\r\n private updateForecastWarning(): void {\r\n if (this.meteoStation && this.meteoStation.hasForecast) {\r\n const hasForecastWarning =\r\n this.forecastWarnings &&\r\n this.meteoStation &&\r\n this.forecastWarnings.find((a) => a.sisId === this.meteoStation.meteoDeviceSisId && a.active) != null;\r\n\r\n this.forecastColor = hasForecastWarning\r\n ? WindIconComponent.colorForecastWarning\r\n : WindIconComponent.colorForecastNormal;\r\n return;\r\n }\r\n\r\n this.forecastColor = WindIconComponent.colorForecastNone;\r\n }\r\n\r\n private resetToDefault(): void {\r\n this.liveData = null;\r\n this.windSpeedKmh = WidgetBase.valueUnknown;\r\n this.colorClass = WindWidgetComponent.cssMeteostationColorOffline;\r\n this.background = '';\r\n this.updatedRotationTransform = '';\r\n this.directionWind = false;\r\n this.crossWind = false;\r\n }\r\n\r\n private findDataForStation(meteoStation: MeteoStation, liveDatas: MeteoLivedata[]): MeteoLivedata {\r\n return liveDatas.find((d) => d.meteoDeviceSisId === meteoStation.meteoDeviceSisId);\r\n }\r\n\r\n private findConfigurationForStation(meteoStation: MeteoStation, configKey: string): Configuration {\r\n return meteoStation.configuration.find((f) => f.configKey === configKey);\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 {{ windSpeedKmh }}\r\n \r\n \r\n \r\n \r\n \r\n\r\n","import { Component } from '@angular/core';\r\nimport { WidgetBase } from 'src/app/maps/widgets/widget-base';\r\n\r\n@Component({\r\n selector: 'sis-windtendency-widget',\r\n templateUrl: './windtendency-widget.component.html',\r\n styleUrls: ['./windtendency-widget.component.scss'],\r\n standalone: false\r\n})\r\nexport class WindtendencyWidgetComponent extends WidgetBase {\r\n windTendency: number;\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 0\">\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n windTendency\">\r\n \r\n \r\n \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: 'sis-zones-widget',\r\n templateUrl: './zones-widget.component.html',\r\n styleUrls: ['./zones-widget.component.scss'],\r\n standalone: false\r\n})\r\nexport class ZonesWidgetComponent {}\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","import { Injectable } from '@angular/core';\r\nimport { Configuration } from 'src/app/maps/domain/configuration.model';\r\nimport { Coords } from 'src/app/maps/domain/coords.model';\r\nimport { MeteoStation } from 'src/app/maps/domain/meteostation.model';\r\nimport { MeteoLivedata } from 'src/app/maps/livedata/meteo-livedata.model';\r\n\r\nexport enum ArrowStyle {\r\n NONE,\r\n ONE,\r\n TWO,\r\n}\r\n\r\n@Injectable({\r\n providedIn: 'root',\r\n})\r\nexport class WindDisplayCalculatorService {\r\n static cssMeteostationColorNormal = 'sis-meteostation-normal';\r\n static cssMeteostationColorWarning = 'sis-meteostation-warning';\r\n static cssMeteostationColorAlarm = 'sis-meteostation-alarm';\r\n static cssMeteostationColorOffline = 'sis-meteostation-offline';\r\n static windSpeedUnknown = '?';\r\n\r\n static readonly defaultWarnRangeHigh = 40;\r\n static readonly defaultAlarmRangeHigh = 60;\r\n\r\n getColor(liveData: MeteoLivedata, config: Configuration): string {\r\n return this.getWindWarnColor(liveData.windSpeedKmh, config);\r\n }\r\n\r\n getRotationTransform(\r\n liveData: MeteoLivedata,\r\n directionOffsetPanomap: number,\r\n directionOffsetNorth: number,\r\n pivotPoint: Coords\r\n ): string {\r\n if (this.hasValue(liveData.windDirectionDegreeNorth) && this.hasValue(directionOffsetNorth)) {\r\n return `rotate(${liveData.windDirectionDegreeNorth - directionOffsetNorth + directionOffsetPanomap},${\r\n pivotPoint.x\r\n },${pivotPoint.y})`;\r\n } else if (this.hasValue(liveData.windDirectionDegreeAxis)) {\r\n return `rotate(${liveData.windDirectionDegreeAxis + directionOffsetPanomap},${pivotPoint.x},${pivotPoint.y})`;\r\n } else {\r\n return '';\r\n }\r\n }\r\n\r\n getWindSpeed(liveData: MeteoLivedata): string {\r\n return liveData.windSpeedKmh?.toString() ?? WindDisplayCalculatorService.windSpeedUnknown;\r\n }\r\n\r\n getArrowStyle(liveData: MeteoLivedata, meteoStation: MeteoStation): ArrowStyle {\r\n if (liveData.windSpeedKmh === 0) {\r\n return ArrowStyle.NONE;\r\n }\r\n\r\n switch (meteoStation.windDirection) {\r\n case 'none':\r\n return ArrowStyle.NONE;\r\n case 'directional':\r\n return ArrowStyle.ONE;\r\n case 'across':\r\n return ArrowStyle.TWO;\r\n default:\r\n return ArrowStyle.ONE;\r\n }\r\n }\r\n\r\n private hasValue(data: number): boolean {\r\n return !(data == null || isNaN(data));\r\n }\r\n\r\n private getWindWarnColor(windValue: number, config: Configuration): string {\r\n const warnRangeHigh = config?.warnRangeHigh ?? WindDisplayCalculatorService.defaultWarnRangeHigh;\r\n const alarmRangeHigh = config?.alarmRangeHigh ?? WindDisplayCalculatorService.defaultAlarmRangeHigh;\r\n\r\n if (windValue < warnRangeHigh) {\r\n return WindDisplayCalculatorService.cssMeteostationColorNormal;\r\n }\r\n if (windValue >= warnRangeHigh && windValue < alarmRangeHigh) {\r\n return WindDisplayCalculatorService.cssMeteostationColorWarning;\r\n }\r\n if (windValue >= alarmRangeHigh) {\r\n return WindDisplayCalculatorService.cssMeteostationColorAlarm;\r\n }\r\n\r\n return WindDisplayCalculatorService.cssMeteostationColorOffline;\r\n }\r\n}\r\n","/// \r\nimport { Component, OnInit, ViewChild } from '@angular/core';\r\nimport { ActivatedRoute, Router } from '@angular/router';\r\nimport { AlertController, IonInput, ModalController } from '@ionic/angular';\r\nimport { TranslateService } from '@ngx-translate/core';\r\nimport { combineLatest, firstValueFrom } from 'rxjs';\r\nimport { takeUntil } from 'rxjs/operators';\r\nimport { BlobStorageContainerService } from 'src/app/core/blob-storage/blob-storage-container.service';\r\nimport { EventBusService } from 'src/app/core/eventbus/event-bus.service';\r\nimport { EventBusSubscriberBase } from 'src/app/core/eventbus/event-bus-subscriber-base';\r\nimport { MediaCenterSlideUpdatedEvent } from 'src/app/core/eventbus/events';\r\nimport { ConfirmationDialogService } from 'src/app/core/utils/confirmation-dialog.service';\r\nimport { DestinationService } from 'src/app/domain/destination/destination.service';\r\nimport { VideoBrowseModal } from 'src/app/media-center//video-browse/video-browse.component';\r\nimport { CKEditorService } from 'src/app/media-center/ckeditor/ckeditor.service';\r\nimport { CKEditorQueryParams } from 'src/app/media-center/ckeditor/ckeditor-queryparams.model';\r\nimport { ImageBrowseModal } from 'src/app/media-center/image-browse/image-browse.component';\r\nimport { Slide } from 'src/app/media-center/slides/domain/slide.model';\r\nimport { MediaCenterSlidesService } from 'src/app/media-center/slides/media-center-slides.service';\r\nimport { environment } from 'src/environments/environment';\r\nimport { v4 as v4guid } from 'uuid';\r\n\r\n@Component({\r\n selector: 'sis-media',\r\n templateUrl: './ckeditor.page.html',\r\n styleUrls: ['./ckeditor.page.scss'],\r\n standalone: false\r\n})\r\nexport class CKEditorPage extends EventBusSubscriberBase implements OnInit {\r\n slide: Slide;\r\n ckEditorData: string;\r\n templateUrl: string;\r\n\r\n @ViewChild('nameInput', { static: false }) nameInput: IonInput;\r\n\r\n slideExists = false;\r\n slideNameIsEmpty = true;\r\n slideChanged = false;\r\n\r\n private slides: Slide[] = [];\r\n private editor: CKEDITOR.editor;\r\n private maxZoom: number = 2;\r\n private minZoom: number = 0.3;\r\n private scale: number = 1;\r\n private iframe: HTMLIFrameElement;\r\n\r\n constructor(\r\n private router: Router,\r\n private modalCtrl: ModalController,\r\n private destinationService: DestinationService,\r\n private confirmationDialogService: ConfirmationDialogService,\r\n private ckEditorService: CKEditorService,\r\n private slidesService: MediaCenterSlidesService,\r\n private activatedRoute: ActivatedRoute,\r\n private translateService: TranslateService,\r\n private alertCtrl: AlertController,\r\n private blobStorageContainerService: BlobStorageContainerService,\r\n eventBus: EventBusService\r\n ) {\r\n super(eventBus);\r\n\r\n this.slide = new Slide();\r\n }\r\n\r\n ngOnInit(): void {\r\n this.observe(MediaCenterSlideUpdatedEvent, (event) => {\r\n if (event.slide && event.slide.guid === this.slide.guid && !event.removed) {\r\n this.slideChanged = !event.success;\r\n }\r\n });\r\n\r\n setTimeout(() => this.nameInput.setFocus(), 100);\r\n\r\n // Subscribe to \"mediaCenterBlobStorageUpdatedEvent\" to display a toast about successful or failed video conversion without staying in upload mode.\r\n this.blobStorageContainerService.mediaCenterBlobStorageUpdatedEvent$.pipe(takeUntil(this.onDestroy$)).subscribe();\r\n\r\n CKEDITOR.replace('editorMediaCenter', {\r\n customConfig: '/assets/ckeditor/config-mediacenter.js',\r\n });\r\n\r\n CKEDITOR.once('instanceReady', (event) => {\r\n this.setEditor(event);\r\n\r\n combineLatest([\r\n this.destinationService.selectedTenant$,\r\n this.slidesService.slides$,\r\n this.activatedRoute.queryParams,\r\n ])\r\n .pipe(takeUntil(this.onDestroy$))\r\n .subscribe(async ([tenant, slides, queryParams]) => {\r\n this.slides = slides;\r\n this.slide.guid = (queryParams as CKEditorQueryParams).slide ?? this.slide.guid;\r\n this.templateUrl = `${environment.baseUrlMediaCenterBlobStorage}/${tenant.sisId}/template.js`;\r\n\r\n await this.setSlideData();\r\n this.editor.config.templates_files = [this.templateUrl];\r\n });\r\n });\r\n }\r\n\r\n async setEditor(event: CKEDITOR.eventInfo): Promise {\r\n this.editor = event.editor;\r\n this.editor.on('change', () => this.slideChangedEvent());\r\n\r\n this.iframe = document.getElementsByClassName('cke_wysiwyg_frame')[0] as HTMLIFrameElement;\r\n\r\n const imgElements = document.getElementsByClassName('cke_button__image');\r\n if (imgElements) {\r\n (imgElements[0] as HTMLElement).onclick = () => {\r\n this.showImageBrowseModal();\r\n };\r\n }\r\n\r\n const videoElements = document.getElementsByClassName('cke_button__video');\r\n if (videoElements) {\r\n (videoElements[0] as HTMLElement).onclick = () => {\r\n this.showVideoBrowseModal();\r\n };\r\n }\r\n\r\n const zoomInElements = document.getElementsByClassName('cke_button__zoom-in');\r\n if (zoomInElements) {\r\n (zoomInElements[0] as HTMLElement).onclick = () => this.zoomIn();\r\n }\r\n\r\n const zoomOutElements = document.getElementsByClassName('cke_button__zoom-out');\r\n if (zoomOutElements) {\r\n (zoomOutElements[0] as HTMLElement).onclick = () => this.zoomOut();\r\n }\r\n\r\n const zoomDefaultElements = document.getElementsByClassName('cke_button__zoom-default');\r\n if (zoomDefaultElements) {\r\n (zoomDefaultElements[0] as HTMLElement).onclick = () => this.zoomDefault();\r\n }\r\n\r\n const contentDiv = document.getElementById('cke_1_contents');\r\n if (contentDiv) {\r\n const changeObserver = new MutationObserver(() => setTimeout(() => this.updateZoom(), 100));\r\n const changeObserverConfig: MutationObserverInit = { childList: true };\r\n\r\n changeObserver.observe(contentDiv, changeObserverConfig);\r\n }\r\n\r\n if (this.iframe) {\r\n this.iframe.style.border = '4px solid #32849a';\r\n this.iframe.style.width = '1920px';\r\n this.iframe.style.height = '1080px';\r\n }\r\n }\r\n\r\n save(slideName: string): void {\r\n if (!this.slide.guid) {\r\n this.slide.guid = v4guid();\r\n }\r\n\r\n this.saveSlide(slideName, this.slide.guid);\r\n this.slide.name = slideName;\r\n this.slideChanged = false;\r\n }\r\n\r\n close(): void {\r\n if (this.slideChanged) {\r\n this.confirmationDialogService\r\n .presentAlert('mediacenter.phrase.exitWithoutSaving', 'mediacenter.term.exit')\r\n .then((confirm) => {\r\n if (confirm) {\r\n this.navigateToMediaCenter();\r\n }\r\n });\r\n } else {\r\n this.navigateToMediaCenter();\r\n }\r\n }\r\n\r\n zoomIn(): void {\r\n if (this.scale < this.maxZoom) {\r\n this.scale += 0.1;\r\n this.updateZoom();\r\n }\r\n }\r\n\r\n zoomDefault(): void {\r\n this.scale = 1;\r\n this.updateZoom();\r\n }\r\n\r\n zoomOut(): void {\r\n if (this.scale > this.minZoom) {\r\n this.scale -= 0.1;\r\n this.updateZoom();\r\n }\r\n }\r\n\r\n updateZoom(): void {\r\n this.iframe = document.getElementsByClassName('cke_wysiwyg_frame')[0] as HTMLIFrameElement;\r\n if (this.iframe) {\r\n const iframeStyle = this.iframe.style;\r\n iframeStyle.transform = `scale(${this.scale})`;\r\n iframeStyle.transformOrigin = '0 0';\r\n iframeStyle.overflow = 'auto';\r\n iframeStyle.border = `${4 / this.scale}px solid #32849a`;\r\n }\r\n }\r\n\r\n slideChangedEvent(): void {\r\n this.slideChanged = '' + this.editor.getData() !== this.slide.data;\r\n }\r\n\r\n slideNameChangedEvent(slideName: string): void {\r\n this.slideChanged = true;\r\n this.slideExists = this.slides.find((s) => s.name === slideName && s.guid != this.slide.guid) != null;\r\n this.slideNameIsEmpty = slideName.trim().length === 0;\r\n }\r\n\r\n showSaveAsCopyModal(slideName: string): Promise {\r\n return new Promise(async (resolve) => {\r\n this.alertCtrl\r\n .create({\r\n header: await this.getTranslatedString('general.term.saveAs'),\r\n subHeader: '',\r\n inputs: [\r\n {\r\n name: 'slideName',\r\n type: 'text',\r\n value: `${slideName} ${await this.getTranslatedString('general.term.copy')}`,\r\n },\r\n ],\r\n buttons: [\r\n {\r\n text: await this.getTranslatedString('general.term.save'),\r\n handler: (data) => {\r\n const slideExists = this.slides.find((s) => s.name === data.slideName) != null;\r\n if (slideExists) {\r\n this.showSlideAlreadyExistsAlert(slideName);\r\n } else {\r\n this.saveSlide(data.slideName, v4guid());\r\n }\r\n resolve();\r\n },\r\n },\r\n {\r\n text: await this.getTranslatedString('general.term.cancel'),\r\n role: 'cancel',\r\n },\r\n ],\r\n backdropDismiss: false,\r\n })\r\n .then((modal) => {\r\n modal.present();\r\n });\r\n });\r\n }\r\n\r\n private async setSlideData(): Promise {\r\n if (!this.slide.guid || !this.slides) {\r\n const defaultStyle = `\r\n\r\n

 

\r\n`;\r\n this.ckEditorData = defaultStyle;\r\n this.slide.data = '' + this.ckEditorData;\r\n\r\n this.editor.setData(this.ckEditorData);\r\n\r\n return;\r\n }\r\n\r\n const slide = this.slides.find((s) => s.guid === this.slide.guid);\r\n\r\n if (!slide?.canEdit) {\r\n this.navigateToMediaCenter();\r\n return;\r\n }\r\n\r\n if (slide) {\r\n this.slide.url = slide.url;\r\n this.slide.name = slide.name;\r\n this.slideNameIsEmpty = slide.name.trim().length === 0;\r\n const data = await firstValueFrom(\r\n this.ckEditorService.requestHtmlFile(`${this.slide.url}?${Math.random() * 10000}`)\r\n );\r\n this.ckEditorData = data;\r\n this.slide.data = data;\r\n\r\n this.editor.setData(this.ckEditorData);\r\n }\r\n }\r\n\r\n private saveSlide(slideName: string, slideGuid: string): void {\r\n const data = '' + this.editor.getData();\r\n const contentType = this.embeddedContentType(data);\r\n\r\n this.slidesService.uploadSlide(slideName, slideGuid, data, contentType);\r\n }\r\n\r\n private embeddedContentType(data: string) {\r\n const parser = new DOMParser();\r\n const html = parser.parseFromString(data, 'text/html');\r\n if (html.getElementById('youtube') != null) {\r\n return 'youtube';\r\n }\r\n if (html.getElementById('video') != null) {\r\n return 'video';\r\n }\r\n return 'html';\r\n }\r\n\r\n private navigateToMediaCenter(): void {\r\n this.router.navigate(['slides'], {\r\n relativeTo: this.activatedRoute.parent,\r\n queryParams: {\r\n slide: null,\r\n },\r\n queryParamsHandling: 'merge',\r\n });\r\n }\r\n\r\n private showImageBrowseModal(): void {\r\n this.modalCtrl\r\n .create({\r\n component: ImageBrowseModal,\r\n cssClass: 'sis-image-browse-modal',\r\n })\r\n .then((modal) => {\r\n modal.onDidDismiss().then((url) => {\r\n if (url && url.data != null && url.data.indexOf('.mp4') === -1) {\r\n this.editor.insertHtml(``);\r\n }\r\n });\r\n modal.present();\r\n });\r\n }\r\n\r\n private showVideoBrowseModal(): void {\r\n this.modalCtrl\r\n .create({\r\n component: VideoBrowseModal,\r\n cssClass: 'sis-video-browse-modal',\r\n })\r\n .then((modal) => {\r\n modal.onDidDismiss().then((url) => {\r\n if (url && url.data?.videoUrl != null && url.data?.videoUrl.indexOf('.mp4') !== -1) {\r\n this.editor.insertHtml(\r\n ``\r\n );\r\n }\r\n });\r\n modal.present();\r\n });\r\n }\r\n\r\n private showSlideAlreadyExistsAlert(slideName: string): Promise {\r\n return new Promise(async (resolve) => {\r\n this.alertCtrl\r\n .create({\r\n header: await this.getTranslatedString('mediacenter.phrase.slideExists'),\r\n subHeader: '',\r\n buttons: [\r\n {\r\n text: 'OK',\r\n handler: () => {\r\n this.showSaveAsCopyModal(slideName);\r\n resolve();\r\n },\r\n },\r\n ],\r\n })\r\n .then((alert) => {\r\n alert.present();\r\n });\r\n });\r\n }\r\n\r\n private getTranslatedString(translateKey: string): Promise {\r\n return firstValueFrom(this.translateService.get(translateKey));\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 {{ \"mediacenter.phrase.slideExists\" | translate }} \r\n \r\n \r\n\r\n\r\n
\r\n \r\n
\r\n","import { HttpClient } from '@angular/common/http';\r\nimport { Injectable } from '@angular/core';\r\nimport { firstValueFrom, from, interval, merge, Observable } from 'rxjs';\r\nimport { debounceTime, delayWhen, filter, map, takeUntil } from 'rxjs/operators';\r\nimport { BlobStorageContainerService } from 'src/app/core/blob-storage/blob-storage-container.service';\r\nimport { BlobDeleteService } from 'src/app/core/blob-storage/blob-storage-delete.service';\r\nimport { BlobStorageUploadService } from 'src/app/core/blob-storage/blob-storage-upload.service';\r\nimport { Unsubscriber } from 'src/app/core/unsubscriber';\r\nimport { UserSettingsService } from 'src/app/domain/user-settings/user-settings.service';\r\nimport { FileSettings } from 'src/app/media-center/ckeditor/file-settings.model';\r\nimport { UserMessage } from 'src/app/user-message/user-message.model';\r\nimport { UserMessageService } from 'src/app/user-message/user-message.service';\r\nimport { UserMessageColor } from 'src/app/user-message/user-message-color';\r\nimport { UserMessageIcon } from 'src/app/user-message/user-message-icon';\r\n\r\n@Injectable({\r\n providedIn: 'root',\r\n})\r\nexport class CKEditorService extends Unsubscriber {\r\n private static readonly images = 'images';\r\n private static readonly videos = 'videos';\r\n private static readonly imageThumbnails = 'images/thumbnails';\r\n\r\n static readonly convertingPrefix = '_converting_';\r\n static readonly failedPrefix = '_failed_';\r\n\r\n readonly images$: Observable = this.blobUploadService.itemsInContainerWithUpload$.pipe(\r\n map((blobs) => {\r\n const images = blobs.filter(\r\n (b) => b.filePath.startsWith(`${CKEditorService.images}/`) && !b.filePath.startsWith(`${CKEditorService.imageThumbnails}/`)\r\n );\r\n return images.map((item) => ({\r\n name: item.filePath.replace(`${CKEditorService.images}/`, ''),\r\n path: item.filePath,\r\n url: item.url,\r\n thumbnailUrl: this.getThumbnailFilePath(item.url),\r\n type: CKEditorService.images,\r\n size: item.fileSize,\r\n progress: item.progress,\r\n width: item.width,\r\n height: item.height,\r\n }));\r\n })\r\n );\r\n\r\n readonly videos$: Observable = this.blobUploadService.itemsInContainerWithUpload$.pipe(\r\n map((blobs) => {\r\n const videos = blobs\r\n .filter((b) => b.filePath.startsWith(`${CKEditorService.videos}/`))\r\n .filter((v) => v.filePath.endsWith('.mp4') || v.filePath.includes(CKEditorService.convertingPrefix));\r\n\r\n return videos.map((item) => ({\r\n name: item.filePath\r\n .replace(`${CKEditorService.videos}/`, '')\r\n .replace(CKEditorService.convertingPrefix, '')\r\n .replace(CKEditorService.failedPrefix, '')\r\n .split('/')\r\n .slice(-1)[0],\r\n path: item.filePath,\r\n url: item.url,\r\n height: item.height,\r\n width: item.width,\r\n thumbnailUrl: item.url.includes(CKEditorService.convertingPrefix) ? null : item.url.replace('.mp4', '.jpg'),\r\n type: CKEditorService.videos,\r\n size: item.fileSize,\r\n progress: item.progress,\r\n converting: item.filePath.includes(CKEditorService.convertingPrefix),\r\n conversionFailed: item.filePath.includes(CKEditorService.failedPrefix),\r\n }));\r\n })\r\n );\r\n\r\n readonly deletedImageResponse$: Observable = this.blobDeleteService.deleteItemResponse$.pipe(\r\n filter((item) => item.filePath.startsWith(CKEditorService.images)),\r\n map((item) => ({\r\n name: item.filePath.replace(`${CKEditorService.images}/`, ''),\r\n path: item.filePath,\r\n url: item.url,\r\n type: CKEditorService.images,\r\n size: item.fileSize,\r\n }))\r\n );\r\n\r\n readonly deletedVideoResponse$: Observable = this.blobDeleteService.deleteItemResponse$.pipe(\r\n filter((item) => item.filePath.startsWith(CKEditorService.videos)),\r\n map((item) => ({\r\n name: item.filePath.replace(`${CKEditorService.videos}/`, ''),\r\n path: item.filePath,\r\n url: item.url,\r\n type: CKEditorService.videos,\r\n size: item.fileSize,\r\n }))\r\n );\r\n\r\n constructor(\r\n private blobContainerService: BlobStorageContainerService,\r\n private blobUploadService: BlobStorageUploadService,\r\n private blobDeleteService: BlobDeleteService,\r\n private http: HttpClient,\r\n userMessageService: UserMessageService,\r\n private userSettingsService: UserSettingsService\r\n ) {\r\n super();\r\n\r\n merge(this.deletedImageResponse$, this.deletedVideoResponse$)\r\n .pipe(debounceTime(500), takeUntil(this.onDestroy$))\r\n .subscribe(() => {\r\n userMessageService.presentToast(\r\n new UserMessage({\r\n message: 'general.phrase.fileDeleted',\r\n icon: UserMessageIcon.success,\r\n durationMs: 2000,\r\n position: 'top',\r\n color: UserMessageColor.green,\r\n })\r\n );\r\n });\r\n }\r\n\r\n async deleteFile(fileSettings: FileSettings): Promise {\r\n const parentFolder = fileSettings.path.split('/').slice(-2)[0];\r\n\r\n if (fileSettings.conversionFailed) {\r\n this.deleteSingleFile(fileSettings.path);\r\n return;\r\n }\r\n\r\n if (parentFolder === fileSettings.type) {\r\n this.deleteSingleFile(`${fileSettings.type}/${fileSettings.name}`);\r\n\r\n if (fileSettings.type === CKEditorService.images && !fileSettings.name.includes('.svg')) {\r\n this.deleteSingleFile(`${CKEditorService.imageThumbnails}/${this.getThumbnailFileName(fileSettings.name)}`);\r\n }\r\n } else {\r\n await this.deleteFolder(`${fileSettings.type}/${parentFolder}/`);\r\n }\r\n }\r\n\r\n async uploadImage(\r\n file: File,\r\n metadata?: {\r\n [propertyName: string]: string;\r\n }\r\n ): Promise {\r\n this.blobUploadService.uploadItems({ file, folder: CKEditorService.images, metadata });\r\n\r\n if (!file.name.includes('.svg')) {\r\n const thumbnailFile = await this.generateThumbnail(this.getThumbnailFileName(file.name), URL.createObjectURL(file), [160, 90]);\r\n\r\n this.blobUploadService.uploadItems({ file: thumbnailFile, folder: CKEditorService.imageThumbnails });\r\n }\r\n }\r\n\r\n async uploadVideo(file: File): Promise {\r\n const userGuid = (await firstValueFrom(this.userSettingsService.userSettings$)).userGuid;\r\n this.blobUploadService.uploadItems({\r\n file,\r\n folder: CKEditorService.videos,\r\n fileNamePrefix: CKEditorService.convertingPrefix,\r\n metadata: {\r\n uploadedBy: userGuid,\r\n },\r\n });\r\n }\r\n\r\n requestHtmlFile(url: string): Observable {\r\n return this.http.get(url, {\r\n responseType: 'text',\r\n });\r\n }\r\n\r\n async uploadAllThumbnails(): Promise {\r\n const images = await firstValueFrom(this.images$.pipe(map((images) => images.filter((image) => !image.url.includes('.svg')))));\r\n\r\n from(images)\r\n .pipe(delayWhen((_, index) => interval(index * 500)))\r\n .subscribe(async (image) => {\r\n console.log('Creating thumbnail for: ' + image.name);\r\n\r\n const thumbnailFile = await this.generateThumbnail(this.getThumbnailFileName(image.name), image.url, [160, 90]);\r\n\r\n this.blobUploadService.uploadItems({ file: thumbnailFile, folder: CKEditorService.imageThumbnails });\r\n\r\n console.log('Creating metadata for: ' + image.name);\r\n\r\n const file = await this.createFile(image);\r\n const dimensions = await this.getHeightAndWidthFromUrl(image.url);\r\n\r\n const metadata: {\r\n [propertyName: string]: string;\r\n } = {\r\n ['height']: dimensions.height.toString(),\r\n ['width']: dimensions.width.toString(),\r\n };\r\n\r\n this.blobUploadService.uploadItems({ file, folder: CKEditorService.images, metadata });\r\n });\r\n }\r\n\r\n async getMetadata(file: File): Promise<{\r\n [propertyName: string]: string;\r\n }> {\r\n const dimensions = await this.getHeightAndWidthFromFile(file);\r\n\r\n const metadata: {\r\n [propertyName: string]: string;\r\n } = {\r\n ['height']: dimensions.height.toString(),\r\n ['width']: dimensions.width.toString(),\r\n };\r\n\r\n return metadata;\r\n }\r\n\r\n private async generateThumbnail(fileName: string, url: string, boundBox: number[]): Promise {\r\n if (!boundBox || boundBox.length != 2) {\r\n throw 'You need to give the boundBox';\r\n }\r\n\r\n const canvas = document.createElement('canvas');\r\n const ctx = canvas.getContext('2d');\r\n if (!ctx) {\r\n throw new Error('Context not available');\r\n }\r\n\r\n return new Promise((resolve, reject) => {\r\n const img = new Image();\r\n img.onerror = reject;\r\n img.setAttribute('crossorigin', 'anonymous');\r\n img.crossOrigin = '*';\r\n img.onload = () => {\r\n const scaleRatio = Math.max(...boundBox) / Math.max(img.width, img.height);\r\n const w = img.width * scaleRatio;\r\n const h = img.height * scaleRatio;\r\n canvas.width = w;\r\n canvas.height = h;\r\n ctx.drawImage(img, 0, 0, w, h);\r\n const dataUrl = canvas.toDataURL('image/jpeg');\r\n const blob = this.dataURLtoBlob(dataUrl);\r\n const thumbnailFile = new File([blob], fileName, { type: 'image/jpeg' });\r\n img.remove();\r\n return resolve(thumbnailFile);\r\n };\r\n img.src = url;\r\n });\r\n }\r\n\r\n private deleteSingleFile(filePath: string): void {\r\n this.blobDeleteService.deleteItem(filePath);\r\n }\r\n\r\n private async deleteFolder(path: string): Promise {\r\n const blobs = await firstValueFrom(this.blobContainerService.itemsInContainer$);\r\n const filteredBlobs = blobs.filter((blob) => blob.name.includes(path));\r\n filteredBlobs.forEach((blob) => this.blobDeleteService.deleteItem(blob.name));\r\n }\r\n\r\n private dataURLtoBlob(dataurl: string): Blob {\r\n const arr = dataurl.split(',');\r\n const mime = arr[0].match(/:(.*?);/)[1];\r\n const bstr = window.atob(arr[1]);\r\n let n = bstr.length;\r\n const u8arr = new Uint8Array(n);\r\n while (n--) {\r\n u8arr[n] = bstr.charCodeAt(n);\r\n }\r\n return new Blob([u8arr], { type: mime });\r\n }\r\n\r\n private getThumbnailFilePath(filePath: string): string {\r\n if (filePath.includes('.svg')) {\r\n return filePath;\r\n }\r\n\r\n return this.getThumbnailFileName(filePath).replace(`/${CKEditorService.images}/`, `/${CKEditorService.imageThumbnails}/`);\r\n }\r\n\r\n private getThumbnailFileName(fileName: string): string {\r\n if (fileName.includes('.svg')) {\r\n return fileName;\r\n }\r\n\r\n return fileName.replace(/\\.([^.]*)$/g, '-$1') + '.jpg';\r\n }\r\n\r\n private getHeightAndWidthFromFile(file: File): Promise<{ height: number; width: number }> {\r\n const dataUrl = window.URL.createObjectURL(file);\r\n return this.getHeightAndWidthFromUrl(dataUrl);\r\n }\r\n\r\n private getHeightAndWidthFromUrl(url: string): Promise<{ height: number; width: number }> {\r\n return new Promise((resolve, reject) => {\r\n const img = new Image();\r\n img.onerror = reject;\r\n img.setAttribute('crossorigin', 'anonymous');\r\n img.crossOrigin = '*';\r\n img.onload = () => {\r\n resolve({\r\n height: img.height,\r\n width: img.width,\r\n });\r\n };\r\n img.src = url;\r\n });\r\n }\r\n\r\n private async createFile(fileSettings: FileSettings): Promise {\r\n const response = await fetch(fileSettings.url);\r\n const data = await response.blob();\r\n return new File([data], fileSettings.name);\r\n }\r\n}\r\n","import { MediaCenterConfiguration } from 'src/app/media-center/domain/mediacenter-configuration.model';\r\n\r\nexport class MediaCenterConfigurationAdapter {\r\n static adapt(item: any): MediaCenterConfiguration {\r\n if (!item) {\r\n return null;\r\n }\r\n\r\n return {\r\n infoBannerType: item.infoBannerType,\r\n languages: item.languages?.map((l: string) => l.toLowerCase()) ?? [],\r\n infoBannerMaxCharacters: item.infoBannerMaxCharacters,\r\n };\r\n }\r\n}\r\n","export interface MediaCenterConfiguration {\r\n infoBannerType: MediaCenterInfoBannerType;\r\n languages: string[];\r\n infoBannerMaxCharacters: number;\r\n}\r\n\r\nexport enum MediaCenterInfoBannerType {\r\n WYSIWYG = 0,\r\n PlainText = 1,\r\n}\r\n","import { Component, OnInit } from '@angular/core';\r\nimport { ModalController } from '@ionic/angular';\r\nimport { map, takeUntil } from 'rxjs/operators';\r\nimport { Unsubscriber } from 'src/app/core/unsubscriber';\r\nimport { ConfirmationDialogService } from 'src/app/core/utils/confirmation-dialog.service';\r\nimport { CKEditorService } from 'src/app/media-center/ckeditor/ckeditor.service';\r\nimport { FileSettings } from 'src/app/media-center/ckeditor/file-settings.model';\r\n\r\n@Component({\r\n templateUrl: './image-browse.component.html',\r\n styleUrls: ['./image-browse.component.scss'],\r\n standalone: false\r\n})\r\nexport class ImageBrowseModal extends Unsubscriber implements OnInit {\r\n readonly acceptedFileFormats = '.jpg, .jpeg, .png, .gif, .svg';\r\n\r\n images: FileSettings[];\r\n\r\n constructor(\r\n private modalCtrl: ModalController,\r\n private ckEditorService: CKEditorService,\r\n private confirmationDialogService: ConfirmationDialogService\r\n ) {\r\n super();\r\n }\r\n\r\n ngOnInit() {\r\n this.ckEditorService.images$\r\n .pipe(\r\n takeUntil(this.onDestroy$),\r\n map((fileSettings) => fileSettings.sort((a, b) => a.name.localeCompare(b.name)))\r\n )\r\n .subscribe((fileSettings) => {\r\n this.images = fileSettings;\r\n });\r\n }\r\n\r\n closeModal(): void {\r\n this.modalCtrl.dismiss();\r\n }\r\n\r\n imageSelected(imageUrl: string): void {\r\n if (imageUrl) {\r\n this.modalCtrl.dismiss(imageUrl);\r\n }\r\n }\r\n\r\n async handleFileInput(event: any): Promise {\r\n const files: FileList = event.target.files;\r\n\r\n if (!files?.length) {\r\n return;\r\n }\r\n\r\n const file = files.item(0);\r\n event.target.value = '';\r\n\r\n if (!this.acceptedFileFormats.includes(file.type.replace('image/', '').replace('+xml', '').toLocaleLowerCase())) {\r\n return;\r\n }\r\n\r\n let confirmed = true;\r\n\r\n if (this.images.find((image) => image.name.includes(file.name))) {\r\n confirmed = await this.confirmationDialogService.presentAlert(\r\n 'mediacenter.phrase.overwriteFile',\r\n 'mediacenter.term.overwrite'\r\n );\r\n }\r\n\r\n if (confirmed) {\r\n const metadata = await this.ckEditorService.getMetadata(file);\r\n\r\n await this.ckEditorService.uploadImage(file, metadata);\r\n }\r\n }\r\n\r\n itemId(_: number, item: FileSettings): string {\r\n return `${item.url}${item.progress}`;\r\n }\r\n\r\n async createAllThumbnails() {\r\n await this.ckEditorService.uploadAllThumbnails();\r\n }\r\n}\r\n","\r\n \r\n \r\n {{ 'mediacenter.term.images' | translate }}\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, EventEmitter, Input, OnInit, Output } from '@angular/core';\r\nimport { ConfirmationDialogService } from 'src/app/core/utils/confirmation-dialog.service';\r\nimport { CKEditorService } from 'src/app/media-center/ckeditor/ckeditor.service';\r\nimport { FileSettings } from 'src/app/media-center/ckeditor/file-settings.model';\r\n\r\n@Component({\r\n selector: 'sis-media-center-image-container',\r\n templateUrl: './image-container.component.html',\r\n styleUrls: ['./image-container.component.scss'],\r\n standalone: false\r\n})\r\nexport class ImageContainerComponent implements OnInit {\r\n @Input() image: FileSettings;\r\n\r\n @Output() imageSelected = new EventEmitter();\r\n\r\n resolution: string;\r\n\r\n constructor(private confirmationDialogService: ConfirmationDialogService, private ckEditorService: CKEditorService) {}\r\n\r\n ngOnInit(): void {\r\n if (this.image.width && this.image.height) {\r\n this.resolution = `${this.image.width} x ${this.image.height}px`;\r\n }\r\n }\r\n\r\n onImageSelected(url: string): void {\r\n this.imageSelected.emit(url);\r\n }\r\n\r\n deleteFile(file: FileSettings, event: Event): void {\r\n event.stopPropagation();\r\n this.confirmationDialogService\r\n .presentAlert('mediacenter.phrase.deleteFile', 'mediacenter.term.delete')\r\n .then((confirm) => {\r\n if (confirm) {\r\n file.deleted = true;\r\n this.ckEditorService.deleteFile(file);\r\n }\r\n });\r\n }\r\n}\r\n","\r\n \r\n \r\n \r\n \r\n \r\n
{{ this.image.name }}
\r\n {{\r\n this.resolution\r\n }}\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n
\r\n\r\n","import { ScrollingModule } from '@angular/cdk/scrolling';\r\nimport { CommonModule } from '@angular/common';\r\nimport { provideHttpClient, withInterceptorsFromDi } from '@angular/common/http';\r\nimport { NgModule } from '@angular/core';\r\nimport { FormsModule, ReactiveFormsModule } from '@angular/forms';\r\nimport { MatAutocompleteModule } from '@angular/material/autocomplete';\r\nimport { MatTooltipModule } from '@angular/material/tooltip';\r\nimport { RouterModule } from '@angular/router';\r\nimport { IonicModule } from '@ionic/angular';\r\nimport { TranslateModule } from '@ngx-translate/core';\r\nimport { CoreModule } from 'src/app/core/core.module';\r\nimport { PendingChangesGuard } from 'src/app/core/guards/pending-changes.guard';\r\nimport { SisRoute } from 'src/app/domain/sis-route.model';\r\nimport { CKEditorPage } from 'src/app/media-center/ckeditor/ckeditor.page';\r\nimport { ImageBrowseModal } from 'src/app/media-center/image-browse/image-browse.component';\r\nimport { ImageContainerComponent } from 'src/app/media-center/image-browse/image-container/image-container.component';\r\nimport { MediaCenterPage } from 'src/app/media-center/media-center.page';\r\nimport { MediaCenterPlaylistsComponent } from 'src/app/media-center/playlists/media-center-playlists.component';\r\nimport { PlaylistItemComponent } from 'src/app/media-center/playlists/playlist-item/playlist-item.component';\r\nimport { InfoBannerComponent } from 'src/app/media-center/screens/infobanner-modal/infobanner.component';\r\nimport { InfoBannerScreensSelectorComponent } from 'src/app/media-center/screens/infobanner-modal/infobanner-screen-selector-modal/infobanner-screen-selector.component';\r\nimport { InfoBannerTextComponent } from 'src/app/media-center/screens/infobanner-modal/infobanner-text-modal/infobanner-text.component';\r\nimport { MediaCenterScreensComponent } from 'src/app/media-center/screens/media-center-screens.component';\r\nimport { OperatinghourComponent } from 'src/app/media-center/screens/operatinghour-modal/operatinghour.component';\r\nimport { MediaCenterScreenGoupComponent } from 'src/app/media-center/screens/screen-group/screen-group.component';\r\nimport { ScreeneditorComponent } from 'src/app/media-center/screens/screeneditor-modal/screeneditor.component';\r\nimport { MediaCenterSlidesComponent } from 'src/app/media-center/slides/media-center-slides.component';\r\nimport { TimeControlModalComponent } from 'src/app/media-center/slides/time-control-modal/time-control-modal.component';\r\nimport { VideoBrowseModal } from 'src/app/media-center/video-browse/video-browse.component';\r\n\r\n@NgModule({\r\n declarations: [\r\n MediaCenterPage,\r\n MediaCenterSlidesComponent,\r\n CKEditorPage,\r\n ImageBrowseModal,\r\n VideoBrowseModal,\r\n MediaCenterScreensComponent,\r\n MediaCenterPlaylistsComponent,\r\n ScreeneditorComponent,\r\n PlaylistItemComponent,\r\n TimeControlModalComponent,\r\n ImageContainerComponent,\r\n InfoBannerComponent,\r\n InfoBannerTextComponent,\r\n OperatinghourComponent,\r\n MediaCenterScreenGoupComponent,\r\n InfoBannerScreensSelectorComponent,\r\n ],\r\n imports: [\r\n CommonModule,\r\n FormsModule,\r\n IonicModule,\r\n TranslateModule,\r\n MatTooltipModule,\r\n MatAutocompleteModule,\r\n ReactiveFormsModule,\r\n ScrollingModule,\r\n RouterModule.forChild([\r\n {\r\n path: SisRoute.EDITOR,\r\n component: CKEditorPage,\r\n },\r\n {\r\n path: '',\r\n component: MediaCenterPage,\r\n canDeactivate: [PendingChangesGuard],\r\n children: [\r\n {\r\n path: '',\r\n pathMatch: 'full',\r\n redirectTo: 'screens',\r\n },\r\n {\r\n path: 'screens',\r\n component: MediaCenterScreensComponent,\r\n },\r\n {\r\n path: 'playlists',\r\n component: MediaCenterPlaylistsComponent,\r\n },\r\n {\r\n path: 'slides',\r\n component: MediaCenterSlidesComponent,\r\n },\r\n ],\r\n },\r\n ]),\r\n CoreModule,\r\n ],\r\n providers: [provideHttpClient(withInterceptorsFromDi())],\r\n})\r\nexport class MediaCenterPageModule {}\r\n","import { Component, HostListener, OnInit } from '@angular/core';\r\nimport { ActivatedRoute, NavigationEnd, Router } from '@angular/router';\r\nimport { Observable } from 'rxjs';\r\nimport { filter, map, shareReplay, takeUntil } from 'rxjs/operators';\r\nimport { BlobStorageContainerService } from 'src/app/core/blob-storage/blob-storage-container.service';\r\nimport { ComponentCanDeactivate } from 'src/app/core/guards/pending-changes.guard';\r\nimport { Unsubscriber } from 'src/app/core/unsubscriber';\r\nimport { ScreenSizeService } from 'src/app/core/utils/screen-size.service';\r\nimport { MediaCenterPlaylistsService } from 'src/app/media-center/playlists/media-center-playlists.service';\r\nimport { MediaCenterScreenService } from 'src/app/media-center/screens/media-center-screens.service';\r\nimport { MediaCenterSlidesService } from 'src/app/media-center/slides/media-center-slides.service';\r\n\r\n@Component({\r\n templateUrl: './media-center.page.html',\r\n styleUrls: ['./media-center.page.scss'],\r\n standalone: false\r\n})\r\nexport class MediaCenterPage extends Unsubscriber implements OnInit, ComponentCanDeactivate {\r\n readonly screens = 'screens';\r\n readonly playlists = 'playlists';\r\n readonly slides = 'slides';\r\n\r\n readonly bigScreenMode$ = this.screenSizeService.bigScreenMode$;\r\n\r\n tabs: Array<{ name: string; count$: Observable }> = [];\r\n selectedTab: string;\r\n unsavedChanges: boolean;\r\n\r\n private readonly screensCount$ = this.screensService.screens$.pipe(\r\n map((p) => (p != null ? ` (${p.length})` : '')),\r\n shareReplay({\r\n bufferSize: 1,\r\n refCount: true,\r\n })\r\n );\r\n private readonly playlistCount$ = this.playlistsService.playlists$.pipe(\r\n map((p) => (p != null ? ` (${p.length})` : '')),\r\n shareReplay({\r\n bufferSize: 1,\r\n refCount: true,\r\n })\r\n );\r\n private readonly slidesCount$ = this.slidesService.slides$.pipe(\r\n map((p) => (p != null ? ` (${p.length})` : '')),\r\n shareReplay({\r\n bufferSize: 1,\r\n refCount: true,\r\n })\r\n );\r\n\r\n private bigScreenTabs: Array<{ name: string; count$: Observable }> = [\r\n { name: this.screens, count$: this.screensCount$ },\r\n { name: this.playlists, count$: this.playlistCount$ },\r\n { name: this.slides, count$: this.slidesCount$ },\r\n ];\r\n private mobileScreenTabs: Array<{ name: string; count$: Observable }> = [\r\n { name: this.screens, count$: this.screensCount$ },\r\n { name: this.slides, count$: this.slidesCount$ },\r\n ];\r\n\r\n constructor(\r\n private screenSizeService: ScreenSizeService,\r\n private activatedRoute: ActivatedRoute,\r\n private router: Router,\r\n private playlistsService: MediaCenterPlaylistsService,\r\n private screensService: MediaCenterScreenService,\r\n private slidesService: MediaCenterSlidesService,\r\n private blobStorageContainerService: BlobStorageContainerService\r\n ) {\r\n super();\r\n }\r\n\r\n ngOnInit(): void {\r\n this.screenSizeService.bigScreenMode$.pipe(takeUntil(this.onDestroy$)).subscribe((bigScreenMode) => {\r\n if (bigScreenMode) {\r\n this.tabs = this.bigScreenTabs;\r\n } else {\r\n this.tabs = this.mobileScreenTabs;\r\n }\r\n });\r\n\r\n this.playlistsService.unsavedChanges$.pipe(takeUntil(this.onDestroy$)).subscribe((changes) => (this.unsavedChanges = changes));\r\n\r\n this.router.events\r\n .pipe(\r\n takeUntil(this.onDestroy$),\r\n filter((event) => event instanceof NavigationEnd)\r\n )\r\n .subscribe((event: NavigationEnd) => {\r\n this.setSelectedTab(event.urlAfterRedirects);\r\n });\r\n this.setSelectedTab(this.router.url);\r\n\r\n // Subscribe to \"mediaCenterBlobStorageUpdatedEvent\" to display a toast about successful or failed video conversion without staying in upload mode.\r\n this.blobStorageContainerService.mediaCenterBlobStorageUpdatedEvent$.pipe(takeUntil(this.onDestroy$)).subscribe();\r\n }\r\n\r\n selectionChanged(selectedTab: string) {\r\n if (!this.unsavedChanges) {\r\n this.selectedTab = selectedTab;\r\n this.router.navigate([selectedTab], { relativeTo: this.activatedRoute.parent, queryParamsHandling: 'preserve' });\r\n }\r\n }\r\n\r\n @HostListener('window:beforeunload')\r\n canDeactivate(): boolean | Observable {\r\n return !this.unsavedChanges;\r\n }\r\n\r\n private setSelectedTab(url: string): void {\r\n const lastUrlPart = url?.split('?')[0].split('/').pop();\r\n if (this.tabs.some((t) => t.name.includes(lastUrlPart))) {\r\n this.selectedTab = lastUrlPart;\r\n }\r\n }\r\n}\r\n","
\r\n \r\n \r\n {{ 'mediacenter.term.' + tab.name | translate }}{{ tab.count$ | async }}\r\n \r\n \r\n\r\n \r\n
\r\n\r\n\r\n \r\n \r\n {{ 'mediacenter.term.' + tab.name | translate }}{{ tab.count$ | async }}\r\n \r\n \r\n\r\n","import { HttpClient } from '@angular/common/http';\r\nimport { Injectable } from '@angular/core';\r\nimport { filter, firstValueFrom, map, Observable, shareReplay, switchMap } from 'rxjs';\r\nimport { DestinationService } from 'src/app/domain/destination/destination.service';\r\nimport { Feature } from 'src/app/domain/feature/feature.model';\r\nimport { FeatureAccessLevel } from 'src/app/domain/feature/feature-access-level.model';\r\nimport { FeatureId } from 'src/app/domain/feature/feature-id.model';\r\nimport { MediaCenterConfigurationAdapter } from 'src/app/media-center/domain/mediacenter-configuration.adapter';\r\nimport { MediaCenterConfiguration } from 'src/app/media-center/domain/mediacenter-configuration.model';\r\nimport { environment } from 'src/environments/environment';\r\n\r\n@Injectable({\r\n providedIn: 'root',\r\n})\r\nexport class MediaCenterService {\r\n private readonly requestConfigurationUrl = '/mediacenter/configuration';\r\n private readonly requiredFeature = new Feature(FeatureId.SISMEDIA_MEDIACENTER, FeatureAccessLevel.READ);\r\n\r\n readonly configuration$: Observable = this.destinationService.selectedTenantFeatures$.pipe(\r\n filter((features) => features.some((feature) => feature.hasMinimumRequirementFor(this.requiredFeature))),\r\n switchMap(() => this.httpClient.get(`${environment.baseUrlApi}${this.requestConfigurationUrl}`)),\r\n map((data) => MediaCenterConfigurationAdapter.adapt(data)),\r\n shareReplay({\r\n refCount: true,\r\n bufferSize: 1,\r\n })\r\n );\r\n\r\n constructor(private destinationService: DestinationService, private httpClient: HttpClient) {}\r\n\r\n async openSlideShowScreenPreview(\r\n screenLabel: string,\r\n screenWidth: number,\r\n screenHeight: number,\r\n previewUrl?: string,\r\n infoBannerGuid?: string\r\n ): Promise {\r\n await this.openSlideShowPreview('screen', screenLabel, screenWidth, screenHeight, previewUrl, infoBannerGuid);\r\n }\r\n\r\n async openSlideShowPlaylistPreview(playlistName: string): Promise {\r\n await this.openSlideShowPreview('playlist', playlistName);\r\n }\r\n\r\n private async openSlideShowPreview(\r\n contentType: string,\r\n contentId: string,\r\n screenWidth?: number,\r\n screenHeight?: number,\r\n previewUrl?: string,\r\n infoBannerGuid?: string\r\n ): Promise {\r\n const windowDimensions = this.getScaledWindowDimensions(screenWidth, screenHeight);\r\n if (previewUrl) {\r\n window.open(\r\n previewUrl,\r\n '_blank',\r\n windowDimensions + ', toolbar=no, location=no, status=no, menubar=no, scrollbars=no'\r\n );\r\n } else {\r\n const tenant = await firstValueFrom(this.destinationService.selectedTenant$);\r\n if (tenant) {\r\n let slideshowUrl = `${environment.slideshowPlayerWebApp}/slideshow/${tenant.sisId}/${contentType}/${contentId}?showinfo=true&nightMode=off`;\r\n if (infoBannerGuid) {\r\n slideshowUrl += `&infobanner=${infoBannerGuid}`;\r\n }\r\n window.open(\r\n slideshowUrl,\r\n '_blank',\r\n windowDimensions + ', toolbar=no, location=no, status=no, menubar=no, scrollbars=no'\r\n );\r\n }\r\n }\r\n }\r\n\r\n private getScaledWindowDimensions(configWidth = 1920, configHeight = 1080): string {\r\n const { width: screenWidth, height: screenHeight } = window.screen;\r\n\r\n let windowWidth = configWidth ?? 1920;\r\n let windowHeight = configHeight ?? 1080;\r\n\r\n if (configWidth >= screenWidth || configHeight >= screenHeight) {\r\n const configRatio = configWidth / configHeight;\r\n const screenRatio = screenWidth / screenHeight;\r\n\r\n if (screenRatio > configRatio) {\r\n windowHeight = Math.round(screenHeight * 0.9);\r\n const scale = windowHeight / configHeight;\r\n windowWidth = Math.round(configWidth * scale);\r\n } else {\r\n windowWidth = Math.round(screenWidth * 0.9);\r\n const scale = windowWidth / configWidth;\r\n windowHeight = Math.round(configHeight * scale);\r\n }\r\n }\r\n return `width=${windowWidth},height=${windowHeight}`;\r\n }\r\n}\r\n","import { MediaCenterNetworkState } from 'src/app/media-center/network-state/network-state.model';\r\n\r\nexport class MediaCenterNetworkStateAdapter {\r\n static adapt(item: any): MediaCenterNetworkState[] {\r\n const networkStates: MediaCenterNetworkState[] =\r\n item?.map((e: any) => ({\r\n deviceType: e.DeviceType,\r\n deviceName: e.DeviceName,\r\n deviceIp: e.DeviceIp,\r\n status: e.Status,\r\n timestamp: new Date(e.NmsTimestamp),\r\n })) || [];\r\n\r\n return networkStates;\r\n }\r\n}\r\n","import { HttpClient } from '@angular/common/http';\r\nimport { Injectable } from '@angular/core';\r\nimport { LivedataServiceBase } from 'src/app/core/livedata/livedata-base.service';\r\nimport { DestinationService } from 'src/app/domain/destination/destination.service';\r\nimport { Feature } from 'src/app/domain/feature/feature.model';\r\nimport { FeatureAccessLevel } from 'src/app/domain/feature/feature-access-level.model';\r\nimport { FeatureId } from 'src/app/domain/feature/feature-id.model';\r\nimport { MediaCenterNetworkStateAdapter } from 'src/app/media-center/network-state/network-state.adapter';\r\nimport { MediaCenterNetworkState } from 'src/app/media-center/network-state/network-state.model';\r\n\r\n@Injectable({\r\n providedIn: 'root',\r\n})\r\nexport class MediaCenterNetworkStateService extends LivedataServiceBase {\r\n protected readonly requiredFeatures = [new Feature(FeatureId.SISMEDIA_MEDIACENTER, FeatureAccessLevel.READ)];\r\n protected readonly endpointUri = 'mediacenter/network';\r\n\r\n readonly networkStates$ = this.liveData$;\r\n\r\n constructor(http: HttpClient, destinationService: DestinationService) {\r\n super(http, MediaCenterNetworkStateAdapter.adapt, destinationService);\r\n }\r\n}\r\n","import { Playlist } from 'src/app/media-center/playlists/domain/playlist.model';\r\nimport { SlideMappingAdapter } from 'src/app/media-center/playlists/domain/slide-mapping.adapter';\r\n\r\nexport class PlaylistAdapter {\r\n static adapt(items: any): Playlist[] {\r\n const result: Playlist[] = [];\r\n\r\n if (items) {\r\n items.forEach((e: any) => {\r\n const playlist = new Playlist(e.guid, e.name, e.fadeInEnabled, e.backgroundColor);\r\n\r\n playlist.slideMappings = SlideMappingAdapter.adapt(e.slideMappings);\r\n playlist.slideMappings = playlist.slideMappings.sort((a, b) => a.order - b.order);\r\n\r\n result.push(playlist);\r\n });\r\n }\r\n\r\n return result;\r\n }\r\n}\r\n","import { SlideMapping } from 'src/app/media-center/playlists/domain/slide-mapping.model';\r\n\r\nexport class Playlist {\r\n slideMappings: SlideMapping[] = [];\r\n updating: boolean = false;\r\n assignedToScreen: boolean;\r\n edited: boolean;\r\n isNew: boolean;\r\n\r\n constructor(\r\n public guid: string,\r\n public name: string,\r\n public fadeInEnabled: boolean,\r\n public backgroundColor: string\r\n ) {}\r\n\r\n isEqual(playlist: Playlist): boolean {\r\n let result = this.guid === playlist.guid && this.name === playlist.name;\r\n\r\n if (result) {\r\n result = this.slideMappings.every((s) =>\r\n playlist.slideMappings.find(\r\n (p) => p.duration === s.duration && p.order === s.order && p.slideGuid === s.slideGuid\r\n )\r\n );\r\n }\r\n\r\n return result;\r\n }\r\n}\r\n","import { SlideMapping } from 'src/app/media-center/playlists/domain/slide-mapping.model';\r\n\r\nexport class SlideMappingAdapter {\r\n static adapt(items: any): SlideMapping[] {\r\n const result: SlideMapping[] = [];\r\n\r\n if (items) {\r\n items.forEach((e: any) => {\r\n result.push({\r\n slideGuid: e.slideGuid,\r\n duration: e.duration,\r\n order: e.order,\r\n });\r\n });\r\n }\r\n\r\n return result;\r\n }\r\n}\r\n","import { Component, OnDestroy, OnInit, ViewChild } from '@angular/core';\r\nimport { FormControl } from '@angular/forms';\r\nimport { ActivatedRoute, Router } from '@angular/router';\r\nimport { IonContent } from '@ionic/angular';\r\nimport { debounceTime, takeUntil } from 'rxjs/operators';\r\nimport { LogbookModalService } from 'src/app/core/components/logbook/logbook-modal/logbook-modal.service';\r\nimport { Unsubscriber } from 'src/app/core/unsubscriber';\r\nimport { ScreenSizeService } from 'src/app/core/utils/screen-size.service';\r\nimport { DestinationService } from 'src/app/domain/destination/destination.service';\r\nimport { Feature } from 'src/app/domain/feature/feature.model';\r\nimport { FeatureAccessLevel } from 'src/app/domain/feature/feature-access-level.model';\r\nimport { FeatureId } from 'src/app/domain/feature/feature-id.model';\r\nimport { Playlist } from 'src/app/media-center/playlists/domain/playlist.model';\r\nimport { MediaCenterPlaylistsService } from 'src/app/media-center/playlists/media-center-playlists.service';\r\nimport { v4 as v4guid } from 'uuid';\r\n\r\n@Component({\r\n selector: 'sis-media-center-playlists',\r\n templateUrl: './media-center-playlists.component.html',\r\n styleUrls: ['./media-center-playlists.component.scss', '../media-center-global.scss'],\r\n standalone: false,\r\n})\r\nexport class MediaCenterPlaylistsComponent extends Unsubscriber implements OnInit, OnDestroy {\r\n readonly logbookAvailable$ = this.logbookModalService.logbookAvailable$;\r\n writePermission: boolean;\r\n readPermission: boolean;\r\n bigScreenMode: boolean;\r\n searching = false;\r\n playlists: Playlist[];\r\n playlistsFiltered: Playlist[];\r\n searchControl = new FormControl('');\r\n searchTerm: string;\r\n expandedPlaylistGuid: string;\r\n anyPlaylistEditedAndUnsaved: boolean = false;\r\n newPlaylist: Playlist;\r\n\r\n @ViewChild('itemGridContent') itemGridContent: IonContent;\r\n\r\n constructor(\r\n private playlistService: MediaCenterPlaylistsService,\r\n private screenSizeService: ScreenSizeService,\r\n private destinationService: DestinationService,\r\n private logbookModalService: LogbookModalService,\r\n private activatedRoute: ActivatedRoute,\r\n private router: Router\r\n ) {\r\n super();\r\n }\r\n\r\n ngOnInit(): void {\r\n this.screenSizeService.bigScreenMode$\r\n .pipe(takeUntil(this.onDestroy$))\r\n .subscribe((bigScreenMode) => (this.bigScreenMode = bigScreenMode));\r\n\r\n this.playlistService.playlists$.pipe(takeUntil(this.onDestroy$)).subscribe((playlists) => {\r\n this.playlists = playlists.sort((a, b) => a.name.localeCompare(b.name));\r\n this.checkEdited();\r\n if (!this.playlists.some((p) => p.guid === this.expandedPlaylistGuid)) {\r\n this.expandedPlaylistGuid = undefined;\r\n }\r\n this.filterPlaylists();\r\n });\r\n\r\n this.searchControl.valueChanges.pipe(debounceTime(300), takeUntil(this.onDestroy$)).subscribe((search: string) => {\r\n this.searching = false;\r\n this.router.navigate([], {\r\n relativeTo: this.activatedRoute,\r\n queryParams: { playlistSearch: search?.toLowerCase() },\r\n queryParamsHandling: 'merge',\r\n replaceUrl: true,\r\n });\r\n });\r\n\r\n this.destinationService.selectedTenantFeatures$.pipe(takeUntil(this.onDestroy$)).subscribe((features) => {\r\n this.writePermission = features.some((f) =>\r\n f.hasMinimumRequirementFor(new Feature(FeatureId.SISMEDIA_MEDIACENTER, FeatureAccessLevel.WRITE))\r\n );\r\n this.readPermission = features.some((f) =>\r\n f.hasMinimumRequirementFor(new Feature(FeatureId.SISMEDIA_MEDIACENTER, FeatureAccessLevel.READ))\r\n );\r\n });\r\n\r\n this.playlistService.ownUpdateCompleted.pipe(takeUntil(this.onDestroy$)).subscribe(([playlist, success]) => {\r\n if (success && playlist.guid === this.newPlaylist?.guid) {\r\n this.newPlaylist = undefined;\r\n }\r\n });\r\n\r\n this.activatedRoute.queryParams.pipe(takeUntil(this.onDestroy$)).subscribe((params) => {\r\n this.searchTerm = params.playlistSearch?.toLowerCase();\r\n\r\n if (this.searchControl.value !== this.searchTerm) {\r\n this.searchControl.setValue(this.searchTerm);\r\n }\r\n\r\n this.filterPlaylists();\r\n });\r\n }\r\n\r\n ngOnDestroy(): void {\r\n this.playlistService.unsavedChanges$.next(false);\r\n }\r\n\r\n toggleExpanded(guid: string, scrollToElement: any): void {\r\n this.checkEdited();\r\n if (!this.anyPlaylistEditedAndUnsaved) {\r\n if (guid === this.expandedPlaylistGuid) {\r\n this.expandedPlaylistGuid = undefined;\r\n } else {\r\n this.expandedPlaylistGuid = guid;\r\n\r\n let element = scrollToElement;\r\n while ((element.tagName as string)?.toLowerCase() !== 'ion-row') {\r\n element = element.parentElement;\r\n }\r\n\r\n this.itemGridContent.scrollToPoint(0, (element?.offsetTop ?? 1) - 1, 100);\r\n }\r\n }\r\n }\r\n\r\n insertNewPlaylist(): void {\r\n if (!this.anyPlaylistEditedAndUnsaved) {\r\n const newPlaylist = new Playlist(v4guid(), '', true, '#000000');\r\n newPlaylist.isNew = true;\r\n this.newPlaylist = newPlaylist;\r\n this.expandedPlaylistGuid = undefined;\r\n this.toggleExpanded(newPlaylist.guid, null);\r\n }\r\n }\r\n\r\n removeNewPlaylist(): void {\r\n this.newPlaylist = undefined;\r\n this.checkEdited();\r\n }\r\n\r\n checkEdited(): void {\r\n this.anyPlaylistEditedAndUnsaved = this.newPlaylist != null || this.playlists.some((p) => p.edited);\r\n this.playlistService.unsavedChanges$.next(this.anyPlaylistEditedAndUnsaved);\r\n }\r\n\r\n async openLogbook(): Promise {\r\n await this.logbookModalService.presentLogbookModal([[FeatureId.SISMEDIA_MEDIACENTER]]);\r\n }\r\n\r\n trackByPlaylistName(_: number, playlist: Playlist): string {\r\n return playlist.name;\r\n }\r\n\r\n private filterPlaylists(): void {\r\n let filteredPlaylists = this.playlists;\r\n\r\n if (this.searchTerm) {\r\n filteredPlaylists = this.playlists.filter((d) => d.name.toLowerCase().includes(this.searchTerm));\r\n }\r\n\r\n this.playlistsFiltered = filteredPlaylists;\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 {{ 'general.term.name' | translate }}\r\n {{ 'mediacenter.term.slideshow' | translate }}\r\n {{ 'mediacenter.phrase.numberOfSlides' | translate }}\r\n {{ 'general.term.delete' | translate }}\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 { HttpClient } from '@angular/common/http';\r\nimport { Injectable } from '@angular/core';\r\nimport { BehaviorSubject, firstValueFrom, merge, Observable, of, Subject } from 'rxjs';\r\nimport { filter, map, shareReplay, switchMap, withLatestFrom } from 'rxjs/operators';\r\nimport { EventBusService } from 'src/app/core/eventbus/event-bus.service';\r\nimport { MediaCenterPlaylistUpdatedEvent } from 'src/app/core/eventbus/events';\r\nimport { ConfirmationDialogService } from 'src/app/core/utils/confirmation-dialog.service';\r\nimport { DestinationService } from 'src/app/domain/destination/destination.service';\r\nimport { Feature } from 'src/app/domain/feature/feature.model';\r\nimport { FeatureAccessLevel } from 'src/app/domain/feature/feature-access-level.model';\r\nimport { FeatureId } from 'src/app/domain/feature/feature-id.model';\r\nimport { UserSettingsService } from 'src/app/domain/user-settings/user-settings.service';\r\nimport { PlaylistAdapter } from 'src/app/media-center/playlists/domain/playlist.adapter';\r\nimport { Playlist } from 'src/app/media-center/playlists/domain/playlist.model';\r\nimport { Slide } from 'src/app/media-center/slides/domain/slide.model';\r\nimport { MediaCenterSlidesService } from 'src/app/media-center/slides/media-center-slides.service';\r\nimport { UserMessage } from 'src/app/user-message/user-message.model';\r\nimport { UserMessageService } from 'src/app/user-message/user-message.service';\r\nimport { UserMessageColor } from 'src/app/user-message/user-message-color';\r\nimport { UserMessageIcon } from 'src/app/user-message/user-message-icon';\r\nimport { environment } from 'src/environments/environment';\r\n\r\n@Injectable({\r\n providedIn: 'root',\r\n})\r\nexport class MediaCenterPlaylistsService {\r\n private static readonly requestPlaylistUrl = '/mediacenter/playlists';\r\n private static readonly updatePlaylistUrl = '/mediacenter/playlist';\r\n\r\n private readonly requiredFeature = new Feature(FeatureId.SISMEDIA_MEDIACENTER, FeatureAccessLevel.READ);\r\n private readonly ownUpdateCompleted$ = new Subject<[Playlist, boolean]>();\r\n\r\n private readonly playlistsRequest$: Observable = this.destinationService.selectedTenantFeatures$.pipe(\r\n switchMap((features) => {\r\n if (features.some((feature) => feature.hasMinimumRequirementFor(this.requiredFeature))) {\r\n return this.http.get(`${environment.baseUrlApi}${MediaCenterPlaylistsService.requestPlaylistUrl}`);\r\n }\r\n return of([]);\r\n }),\r\n map((data) => PlaylistAdapter.adapt(data)),\r\n switchMap((playlists) =>\r\n this.slideService.slides$.pipe(\r\n map((slides) => {\r\n slides.forEach((slide) => (slide.inPlaylist = false));\r\n playlists\r\n .filter((playlist) => playlist.slideMappings != null)\r\n .forEach((playlist) => {\r\n playlist.slideMappings.forEach((slideMapping) => {\r\n const slide = slides.find((s) => s.guid === slideMapping.slideGuid);\r\n slideMapping.slide = slide;\r\n if (slide) {\r\n slide.inPlaylist = true;\r\n }\r\n });\r\n });\r\n return playlists;\r\n })\r\n )\r\n ),\r\n shareReplay({\r\n refCount: true,\r\n bufferSize: 1,\r\n })\r\n );\r\n\r\n private readonly playlistUpdate$: Observable = this.eventBus\r\n .observe(MediaCenterPlaylistUpdatedEvent)\r\n .pipe(\r\n withLatestFrom(this.destinationService.selectedTenant$),\r\n filter(([updatedEvent, tenant]) => updatedEvent?.tenantGuid === tenant?.guid),\r\n withLatestFrom(this.userSettingsService.userSettings$, this.playlistsRequest$, this.slideService.slides$),\r\n map(([[updatedEvent], userSettings, playlists, slides]) => {\r\n if (updatedEvent.changedBy === userSettings.userGuid) {\r\n this.presentToast(updatedEvent.success);\r\n }\r\n\r\n return this.handlePlaylistUpdate(updatedEvent, playlists, userSettings.userGuid, slides);\r\n })\r\n );\r\n\r\n readonly playlists$: Observable = merge(this.playlistsRequest$, this.playlistUpdate$).pipe(\r\n shareReplay({\r\n bufferSize: 1,\r\n refCount: true,\r\n })\r\n );\r\n\r\n readonly ownUpdateCompleted: Observable<[Playlist, boolean]> = this.ownUpdateCompleted$.asObservable();\r\n\r\n readonly unsavedChanges$ = new BehaviorSubject(false);\r\n\r\n constructor(\r\n private eventBus: EventBusService,\r\n private http: HttpClient,\r\n private destinationService: DestinationService,\r\n private userMessageService: UserMessageService,\r\n private userSettingsService: UserSettingsService,\r\n private slideService: MediaCenterSlidesService,\r\n private confirmationDialogService: ConfirmationDialogService\r\n ) {}\r\n\r\n updatePlaylist(playlist: Playlist): void {\r\n this.update(playlist, false);\r\n }\r\n\r\n async deletePlaylist(playlist: Playlist): Promise {\r\n let confirmed = await this.confirmationDialogService.presentAlert(\r\n 'mediacenter.phrase.deletePlaylist',\r\n 'mediacenter.term.delete'\r\n );\r\n\r\n if (confirmed) {\r\n if (playlist.assignedToScreen) {\r\n confirmed = await this.confirmationDialogService.presentAlert(\r\n 'mediacenter.phrase.playlistInUse',\r\n 'mediacenter.phrase.deleteAnyway'\r\n );\r\n\r\n if (confirmed) {\r\n this.update(playlist, true);\r\n }\r\n } else {\r\n this.update(playlist, true);\r\n }\r\n }\r\n }\r\n\r\n private async update(playlist: Playlist, deleting: boolean): Promise {\r\n try {\r\n await firstValueFrom(\r\n this.http.post(`${environment.baseUrlApi}${MediaCenterPlaylistsService.updatePlaylistUrl}`, {\r\n playlist,\r\n delete: deleting,\r\n })\r\n );\r\n } catch {\r\n playlist.updating = false;\r\n await this.presentToast(false);\r\n }\r\n }\r\n\r\n private handlePlaylistUpdate(\r\n updatedEvent: MediaCenterPlaylistUpdatedEvent,\r\n playlists: Playlist[],\r\n userGuid: string,\r\n slides: Slide[]\r\n ): Playlist[] {\r\n const playlist = updatedEvent.playlist;\r\n const success = updatedEvent.success;\r\n const removed = updatedEvent.removed;\r\n const updatedPlaylist = playlists.find((p) => p.guid === playlist.guid);\r\n\r\n if (playlist.slideMappings != null) {\r\n playlist.slideMappings.forEach((slideMapping) => {\r\n const slide = slides.find((s) => s.guid === slideMapping.slideGuid);\r\n slideMapping.slide = slide;\r\n if (slide) {\r\n slide.inPlaylist = true;\r\n }\r\n });\r\n }\r\n\r\n if (updatedPlaylist) {\r\n updatedPlaylist.updating = false;\r\n\r\n if (success) {\r\n if (removed) {\r\n playlists.splice(\r\n playlists.findIndex((p) => p.guid === updatedPlaylist.guid),\r\n 1\r\n );\r\n } else {\r\n updatedPlaylist.name = playlist.name;\r\n updatedPlaylist.slideMappings = playlist.slideMappings;\r\n updatedPlaylist.isNew = false;\r\n updatedPlaylist.fadeInEnabled = playlist.fadeInEnabled;\r\n updatedPlaylist.backgroundColor = playlist.backgroundColor;\r\n }\r\n }\r\n } else {\r\n if (!removed && success) {\r\n playlists.push(playlist);\r\n }\r\n }\r\n\r\n if (userGuid === updatedEvent.changedBy) {\r\n this.ownUpdateCompleted$.next([playlist, success]);\r\n }\r\n\r\n return playlists;\r\n }\r\n\r\n private async presentToast(success: boolean): Promise {\r\n const message = success ? 'mediacenter.phrase.settingsSaved' : 'general.phrase.saveFailed';\r\n const color = success ? UserMessageColor.green : UserMessageColor.red;\r\n const icon = success ? UserMessageIcon.success : UserMessageIcon.failed;\r\n await this.userMessageService.presentToast(\r\n new UserMessage({ message, icon, durationMs: 2000, position: 'top', color })\r\n );\r\n }\r\n}\r\n","import {\r\n Component,\r\n ElementRef,\r\n EventEmitter,\r\n Input,\r\n OnChanges,\r\n OnDestroy,\r\n OnInit,\r\n Output,\r\n ViewChild,\r\n} from '@angular/core';\r\nimport { FormControl } from '@angular/forms';\r\nimport { debounceTime, takeUntil } from 'rxjs/operators';\r\nimport { Unsubscriber } from 'src/app/core/unsubscriber';\r\nimport { ScreenSizeService } from 'src/app/core/utils/screen-size.service';\r\nimport { DestinationService } from 'src/app/domain/destination/destination.service';\r\nimport { Feature } from 'src/app/domain/feature/feature.model';\r\nimport { FeatureAccessLevel } from 'src/app/domain/feature/feature-access-level.model';\r\nimport { FeatureId } from 'src/app/domain/feature/feature-id.model';\r\nimport { MediaCenterService } from 'src/app/media-center/media-center.service';\r\nimport { Playlist } from 'src/app/media-center/playlists/domain/playlist.model';\r\nimport { SlideMapping } from 'src/app/media-center/playlists/domain/slide-mapping.model';\r\nimport { MediaCenterPlaylistsService } from 'src/app/media-center/playlists/media-center-playlists.service';\r\nimport { Slide } from 'src/app/media-center/slides/domain/slide.model';\r\nimport { MediaCenterSlidesService } from 'src/app/media-center/slides/media-center-slides.service';\r\n\r\n@Component({\r\n selector: 'sis-media-center-playlist-item',\r\n templateUrl: './playlist-item.component.html',\r\n styleUrls: ['./playlist-item.component.scss', '../../media-center-global.scss'],\r\n standalone: false\r\n})\r\nexport class PlaylistItemComponent extends Unsubscriber implements OnInit, OnChanges, OnDestroy {\r\n @ViewChild('playlistScrollElement') playlistScrollElement: ElementRef;\r\n\r\n @Input() playlist: Playlist;\r\n @Input() expanded: boolean;\r\n @Input() otherExpanded: boolean;\r\n\r\n @Output() toggleExpanded = new EventEmitter();\r\n @Output() edited = new EventEmitter(true);\r\n @Output() removeNewPlaylist = new EventEmitter(true);\r\n\r\n searching: boolean = false;\r\n searchTerm: string;\r\n writePermission: boolean;\r\n readPermission: boolean;\r\n searchControl = new FormControl('');\r\n slidesFiltered: Slide[];\r\n playlistRowClass = 'sis-playlist-row';\r\n playlistEditCopy: Playlist;\r\n editPlaylistNameDisabled: boolean = true;\r\n bigScreenMode: boolean;\r\n invalidName: boolean;\r\n inputSelected: boolean;\r\n\r\n daysArray: string[] = ['sun', 'mon', 'tue', 'wed', 'thu', 'fri', 'sat'];\r\n\r\n private slides: Slide[];\r\n private playlists: Playlist[];\r\n\r\n constructor(\r\n private destinationService: DestinationService,\r\n private slidesService: MediaCenterSlidesService,\r\n private playlistService: MediaCenterPlaylistsService,\r\n private mediaCenterService: MediaCenterService,\r\n private screenSizeService: ScreenSizeService\r\n ) {\r\n super();\r\n }\r\n\r\n ngOnInit(): void {\r\n this.initialiseEditData();\r\n\r\n this.screenSizeService.bigScreenMode$.pipe(takeUntil(this.onDestroy$)).subscribe((bigScreenMode) => {\r\n this.bigScreenMode = bigScreenMode;\r\n });\r\n\r\n this.destinationService.selectedTenantFeatures$.pipe(takeUntil(this.onDestroy$)).subscribe((features) => {\r\n this.writePermission = features.some((f) =>\r\n f.hasMinimumRequirementFor(new Feature(FeatureId.SISMEDIA_MEDIACENTER, FeatureAccessLevel.WRITE))\r\n );\r\n this.readPermission = features.some((f) =>\r\n f.hasMinimumRequirementFor(new Feature(FeatureId.SISMEDIA_MEDIACENTER, FeatureAccessLevel.READ))\r\n );\r\n });\r\n\r\n this.searchControl.valueChanges.pipe(debounceTime(300), takeUntil(this.onDestroy$)).subscribe((search: string) => {\r\n this.searching = false;\r\n this.searchTerm = search ? search.toLowerCase() : undefined;\r\n this.filterSlides();\r\n });\r\n\r\n this.slidesService.slides$.pipe(takeUntil(this.onDestroy$)).subscribe((slides) => {\r\n this.slides = slides.sort((a, b) => a.name?.localeCompare(b.name));\r\n this.filterSlides();\r\n });\r\n\r\n this.playlistService.ownUpdateCompleted.pipe(takeUntil(this.onDestroy$)).subscribe(([playlist, success]) => {\r\n if (success && playlist.guid === this.playlist.guid) {\r\n this.initialiseEditData();\r\n }\r\n });\r\n\r\n this.playlistService.playlists$.pipe(takeUntil(this.onDestroy$)).subscribe((playlists) => {\r\n this.playlists = playlists;\r\n this.checkPlaylistName(this.playlistEditCopy.name);\r\n\r\n if (!this.playlist.edited) {\r\n this.initialiseEditData();\r\n }\r\n });\r\n }\r\n\r\n ngOnChanges(): void {\r\n this.playlistRowClass = this.expanded\r\n ? 'sis-playlist-highlight-background sis-playlist-row-expanded'\r\n : 'sis-playlist-row';\r\n }\r\n\r\n ngOnDestroy(): void {\r\n this.cancel();\r\n }\r\n\r\n doReorder(ev: any) {\r\n this.setEdited(true);\r\n this.playlistEditCopy.slideMappings = ev.detail.complete(this.playlistEditCopy.slideMappings);\r\n this.playlistEditCopy.slideMappings.forEach((slideMapping, index) => (slideMapping.order = index));\r\n }\r\n\r\n removeSlideFromPlaylist(slideMapping: SlideMapping): void {\r\n this.setEdited(true);\r\n this.playlistEditCopy.slideMappings = this.playlistEditCopy.slideMappings.filter(\r\n (mapping) => mapping !== slideMapping\r\n );\r\n }\r\n\r\n editPlaylistName(event: any): void {\r\n if (this.expanded) {\r\n event.stopPropagation();\r\n }\r\n }\r\n\r\n playlistNameChanged(name: string): void {\r\n this.checkPlaylistName(name);\r\n this.setEdited(true);\r\n }\r\n\r\n addSlideToPlaylist(slide: Slide): void {\r\n this.setEdited(true);\r\n let order = 0;\r\n\r\n if (this.playlistEditCopy.slideMappings?.length > 0) {\r\n const highestOrder = this.playlistEditCopy.slideMappings.reduce((prev, curr) =>\r\n prev?.order > curr.order ? prev : curr\r\n ).order;\r\n order = highestOrder + 1;\r\n }\r\n const slideMappingToAdd: SlideMapping = { slideGuid: slide.guid, duration: slide.duration, order };\r\n slideMappingToAdd.slide = slide;\r\n this.playlistEditCopy.slideMappings.push(slideMappingToAdd);\r\n\r\n setTimeout(() => {\r\n this.scrollPlaylistToBottom();\r\n });\r\n }\r\n\r\n durationInput(event: any, slideMapping: SlideMapping): void {\r\n this.setEdited(true);\r\n const duration = Number.parseInt(event.target.value, 10);\r\n\r\n if (\r\n this.writePermission &&\r\n duration &&\r\n !Number.isNaN(duration) &&\r\n duration >= 0 &&\r\n duration !== slideMapping.duration\r\n ) {\r\n slideMapping.duration = duration;\r\n }\r\n }\r\n\r\n savePlaylist(): void {\r\n if (this.writePermission && !this.invalidName && this.playlist.edited) {\r\n this.playlistService.updatePlaylist(this.playlistEditCopy);\r\n }\r\n }\r\n\r\n async deletePlaylist(event: any, playlist: Playlist): Promise {\r\n event.stopPropagation();\r\n if (this.writePermission && !this.playlist.isNew) {\r\n await this.playlistService.deletePlaylist(playlist);\r\n }\r\n }\r\n\r\n cancel(): void {\r\n if (this.playlist.isNew) {\r\n this.removeNewPlaylist.emit();\r\n } else {\r\n this.initialiseEditData();\r\n this.checkPlaylistName(this.playlistEditCopy.name);\r\n }\r\n }\r\n\r\n openSlideShowPreview(): void {\r\n this.mediaCenterService.openSlideShowPlaylistPreview(this.playlist.name);\r\n }\r\n\r\n itemId(_: number, slide: Slide): string {\r\n return slide.url;\r\n }\r\n\r\n stopPropagation(event: MouseEvent): void {\r\n event.stopPropagation();\r\n }\r\n\r\n private checkPlaylistName(name: string): void {\r\n this.invalidName =\r\n !name || name.length === 0 || this.playlists.some((p) => p.name === name && p.guid !== this.playlist.guid);\r\n }\r\n\r\n private initialiseEditData(): void {\r\n this.playlistEditCopy = new Playlist(\r\n this.playlist.guid,\r\n this.playlist.name,\r\n this.playlist.fadeInEnabled,\r\n this.playlist.backgroundColor\r\n );\r\n this.playlistEditCopy.assignedToScreen = this.playlist.assignedToScreen;\r\n this.playlistEditCopy.slideMappings = this.playlist.slideMappings\r\n .filter((mapping) => !!mapping.slide)\r\n .map((mapping) => ({\r\n slideGuid: mapping.slideGuid,\r\n duration: mapping.duration,\r\n order: mapping.order,\r\n slide: mapping.slide,\r\n }));\r\n\r\n this.setEdited(this.playlist.isNew);\r\n }\r\n\r\n private filterSlides(): void {\r\n let filteredSlides = this.slides;\r\n\r\n if (this.searchTerm) {\r\n filteredSlides = this.slides.filter((d) => d.name.toLowerCase().includes(this.searchTerm));\r\n }\r\n\r\n this.slidesFiltered = filteredSlides;\r\n }\r\n\r\n private scrollPlaylistToBottom(): void {\r\n this.playlistScrollElement.nativeElement.scrollTop = this.playlistScrollElement.nativeElement.scrollHeight;\r\n }\r\n\r\n private setEdited(edited: boolean): void {\r\n this.playlist.edited = edited;\r\n this.edited.emit();\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 {{ 'mediacenter.phrase.slideTransitionEnabled' | translate }}\r\n \r\n \r\n {{\r\n 'mediacenter.term.backgroundColor' | translate\r\n }}\r\n \r\n
\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n {{ playlistEditCopy.slideMappings.length }}\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 {{ 'mediacenter.phrase.availableSlides' | translate }}\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n {{ 'mediacenter.phrase.slideOnPlaylist' | translate }}\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n {{ slide.name }}\r\n \r\n\r\n \r\n {{ slide.fileType }}\r\n \r\n {{ slide.duration }}s \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 {{ slideMapping.slide.name }}\r\n \r\n \r\n = 48 && event.charCode <= 57\"\r\n (keyup)=\"durationInput($event, slideMapping)\"\r\n [disabled]=\"!this.writePermission\"\r\n />\r\n s\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 { MediaCenterRemoteAccessStatus } from 'src/app/media-center/remote-access/remote-access-status.model';\r\n\r\nexport class MediaCenterRemoteAccessStatusAdapter {\r\n static adapt(items: any): MediaCenterRemoteAccessStatus[] {\r\n const remoteAccessStatuses: MediaCenterRemoteAccessStatus[] =\r\n (items as any[])?.map((e: any) => ({ guid: e.Guid, online: e.Online })) ?? [];\r\n\r\n return remoteAccessStatuses;\r\n }\r\n}\r\n","import { HttpClient } from '@angular/common/http';\r\nimport { Injectable } from '@angular/core';\r\nimport { LivedataServiceBase } from 'src/app/core/livedata/livedata-base.service';\r\nimport { DestinationService } from 'src/app/domain/destination/destination.service';\r\nimport { Feature } from 'src/app/domain/feature/feature.model';\r\nimport { FeatureAccessLevel } from 'src/app/domain/feature/feature-access-level.model';\r\nimport { FeatureId } from 'src/app/domain/feature/feature-id.model';\r\nimport { MediaCenterRemoteAccessStatusAdapter } from 'src/app/media-center/remote-access/remote-access-status.adapter';\r\nimport { MediaCenterRemoteAccessStatus } from 'src/app/media-center/remote-access/remote-access-status.model';\r\n\r\n@Injectable({\r\n providedIn: 'root',\r\n})\r\nexport class MediaCenterRemoteAccessStatusService extends LivedataServiceBase {\r\n protected readonly endpointUri = 'mediacenter/remoteaccess/status';\r\n protected readonly requiredFeatures = [new Feature(FeatureId.SISMEDIA_MEDIACENTER, FeatureAccessLevel.READ)];\r\n\r\n readonly remoteAccessStatuses$ = this.liveData$;\r\n\r\n constructor(http: HttpClient, destinationService: DestinationService) {\r\n super(http, MediaCenterRemoteAccessStatusAdapter.adapt, destinationService);\r\n }\r\n}\r\n","import { ScreenGroup } from 'src/app/media-center/screens/domain/screen-group.model';\r\n\r\nexport class ScreenGroupAdapter {\r\n static adapt(items: any): ScreenGroup[] {\r\n const result: ScreenGroup[] =\r\n (items as any[])?.map((e: any) => ({\r\n guid: e.guid,\r\n name: e.name,\r\n order: e.order,\r\n screens: [],\r\n })) || [];\r\n\r\n return result;\r\n }\r\n}\r\n","import { ScreenType } from \"src/app/media-center/screens/domain/screen-type.model\";\r\n\r\nexport class ScreenTypeAdapter {\r\n static adapt(items: any): ScreenType[] {\r\n const result: ScreenType[] =\r\n (items as any[])?.map((e: any) => ({\r\n id: e.id,\r\n type: e.type,\r\n })) || [];\r\n\r\n return result;\r\n }\r\n}\r\n","import moment from 'moment';\r\nimport { SisConverter } from 'src/app/core/utils/sis-converter';\r\nimport { RemoteAccess } from 'src/app/maps/domain/remote-access.model';\r\nimport { Screen } from 'src/app/media-center/screens/domain/screen.model';\r\n\r\nexport class ScreenAdapter {\r\n static adapt(items: any): Screen[] {\r\n const result: Screen[] =\r\n (items as any[])?.map((e: any) => ({\r\n guid: e.guid,\r\n location: e.location,\r\n label: e.label,\r\n startTime: e.startTime ? moment(e.startTime, 'HH:mm:ss').format('HH:mm') : null,\r\n endTime: e.endTime ? moment(e.endTime, 'HH:mm:ss').format('HH:mm') : null,\r\n screenHeight: SisConverter.toNumberOrUndefined(e.screenHeight),\r\n screenWidth: SisConverter.toNumberOrUndefined(e.screenWidth),\r\n slideshowWidth: SisConverter.toNumberOrUndefined(e.slideshowWidth),\r\n slideshowHeight: SisConverter.toNumberOrUndefined(e.slideshowHeight),\r\n infoBannerAllowed: e.infoBannerAllowed,\r\n infoBannerGuid: e.infoBannerGuid,\r\n updating: false,\r\n playlistGuid: e.playlistGuid,\r\n ip: e.ip,\r\n remoteAccess: this.adaptRemoteAccess(e.remoteAccess),\r\n continuousOperation: e.startTime === '00:00:00' && e.endTime === '00:00:00',\r\n order: e.order,\r\n groupGuid: e.groupGuid,\r\n previewUrl: e.previewUrl,\r\n type: e.type,\r\n })) || [];\r\n\r\n return result;\r\n }\r\n\r\n private static adaptRemoteAccess(e: any): RemoteAccess {\r\n if (!e) {\r\n return null;\r\n }\r\n\r\n return {\r\n guid: e.guid,\r\n name: e.name,\r\n type: e.type,\r\n accessType: e.accessType,\r\n agentId: e.agentId,\r\n parentAlias: e.parentAlias,\r\n windowDimensions: e.windowDimensions,\r\n };\r\n }\r\n}\r\n","export enum InfoBannerTextCategory {\r\n Warning = 0,\r\n Info = 1,\r\n}\r\n","import { InfoBanner } from 'src/app/media-center/screens/infobanner-modal/domain/infobanner.model';\r\n\r\nexport class InfoBannerAdapter {\r\n static adapt(items: any): InfoBanner[] {\r\n const result: InfoBanner[] = [];\r\n\r\n if (items) {\r\n items.forEach((e: any) => {\r\n result.push({\r\n guid: e.guid,\r\n tenantGuid: e.tenantGuid,\r\n position: e.position,\r\n name: e.name,\r\n background: e.background,\r\n content: e.content,\r\n height: e.height,\r\n screenGuids: e.screenGuids,\r\n textDe: e.textDe,\r\n textEn: e.textEn,\r\n textFr: e.textFr,\r\n textIt: e.textIt,\r\n textCategory: e.textCategory,\r\n });\r\n });\r\n }\r\n\r\n return result;\r\n }\r\n}\r\n","export enum Position {\r\n Full = 1,\r\n Top = 2,\r\n Bottom = 3,\r\n}\r\n","import { InfoBannerScreen } from 'src/app/media-center/screens/infobanner-modal/infobanner-screen-selector-modal/domain/infobanner-screen.model';\r\n\r\nexport class InfoBannerScreenGroup {\r\n guid: string;\r\n name: string;\r\n screens: InfoBannerScreen[];\r\n\r\n constructor(guid: string, name: string) {\r\n this.guid = guid;\r\n this.name = name;\r\n this.screens = [];\r\n }\r\n\r\n get groupActive(): boolean {\r\n return this.screens?.every((screen) => screen.newInfoBannerActive);\r\n }\r\n}\r\n","import { Component, OnInit } from '@angular/core';\r\nimport { ModalController } from '@ionic/angular';\r\nimport { combineLatest, take } from 'rxjs';\r\nimport { Unsubscriber } from 'src/app/core/unsubscriber';\r\nimport { ScreenSizeService } from 'src/app/core/utils/screen-size.service';\r\nimport { Screen } from 'src/app/media-center/screens/domain/screen.model';\r\nimport { InfoBanner } from 'src/app/media-center/screens/infobanner-modal/domain/infobanner.model';\r\nimport { InfoBannerMapping } from 'src/app/media-center/screens/infobanner-modal/domain/infobanner-mapping.model';\r\nimport { InfoBannerService } from 'src/app/media-center/screens/infobanner-modal/infobanner.service';\r\nimport { InfoBannerScreen } from 'src/app/media-center/screens/infobanner-modal/infobanner-screen-selector-modal/domain/infobanner-screen.model';\r\nimport { InfoBannerScreenGroup } from 'src/app/media-center/screens/infobanner-modal/infobanner-screen-selector-modal/domain/infobanner-screen-group.model';\r\nimport { MediaCenterScreenService } from 'src/app/media-center/screens/media-center-screens.service';\r\n\r\n@Component({\r\n templateUrl: './infobanner-screen-selector.component.html',\r\n styleUrls: ['./infobanner-screen-selector.component.scss', '../../../media-center-global.scss'],\r\n standalone: false\r\n})\r\nexport class InfoBannerScreensSelectorComponent extends Unsubscriber implements OnInit {\r\n infoBanner: InfoBanner;\r\n entryScreen: Screen;\r\n screenGroups: InfoBannerScreenGroup[] = [];\r\n ready: boolean;\r\n\r\n allScreensOfTenantWithInfobannerAllowed: Screen[];\r\n ignoreIonChangeEvent: boolean;\r\n allGroupsSelected: boolean;\r\n\r\n readonly bigScreenMode$ = this.screenSizeService.bigScreenMode$;\r\n\r\n constructor(\r\n private modalCtrl: ModalController,\r\n private infoBannerService: InfoBannerService,\r\n private screensService: MediaCenterScreenService,\r\n private screenSizeService: ScreenSizeService\r\n ) {\r\n super();\r\n }\r\n\r\n ngOnInit(): void {\r\n combineLatest([this.screensService.screenGroups$, this.screensService.screens$, this.infoBannerService.infoBanner$])\r\n .pipe(take(1))\r\n .subscribe(([screenGroups, screens, infoBanners]) => {\r\n screenGroups.forEach((screenGroup) => {\r\n screenGroup.screens = screens\r\n .filter((screen) => screen.groupGuid == screenGroup.guid)\r\n .sort((a, b) => a.order - b.order);\r\n });\r\n\r\n const groupsWithScreens = screenGroups.filter(\r\n (screenGroups) =>\r\n screenGroups.screens.length > 0 && screenGroups.screens.some((screen) => screen.infoBannerAllowed)\r\n );\r\n\r\n groupsWithScreens.forEach((group) => {\r\n const infoBannerScreenGroup = new InfoBannerScreenGroup(group.guid, group.name);\r\n\r\n group.screens.forEach((screen) => {\r\n if (screen.infoBannerAllowed) {\r\n const activeInfoBanner = infoBanners.find((infoBanner) => infoBanner.screenGuids?.includes(screen.guid));\r\n\r\n infoBannerScreenGroup.screens.push({\r\n guid: screen.guid,\r\n label: screen.label,\r\n location: screen.location,\r\n activeInfoBannerGuid: activeInfoBanner?.guid,\r\n activeInfoBannerName: activeInfoBanner?.name,\r\n newInfoBannerActive:\r\n screen.guid === this.entryScreen.guid || activeInfoBanner?.guid === this.infoBanner.guid,\r\n });\r\n }\r\n });\r\n\r\n this.screenGroups.push(infoBannerScreenGroup);\r\n });\r\n });\r\n\r\n this.ready = true;\r\n }\r\n\r\n selectAllScreens(event: CustomEvent): void {\r\n this.screenGroups.forEach((screenGroup) => this.selectAllScreensOfGroup(screenGroup, event));\r\n }\r\n\r\n selectAllScreensOfGroup(group: InfoBannerScreenGroup, event: CustomEvent) {\r\n group.screens.forEach((screen) => this.selectScreen(screen, event));\r\n }\r\n\r\n selectScreen(screen: InfoBannerScreen, event: CustomEvent) {\r\n this.ignoreIonChange();\r\n screen.newInfoBannerActive = event.detail.checked;\r\n\r\n this.allGroupsSelected = this.screenGroups.every((screenGroup) => screenGroup.groupActive);\r\n }\r\n\r\n save() {\r\n const activatedInfoBannerMapping: InfoBannerMapping = {\r\n infoBannerGuid: this.infoBanner.guid,\r\n screenGuids: this.screenGroups.flatMap((group) =>\r\n group.screens.filter((screen) => screen.newInfoBannerActive).flatMap((screen) => screen.guid)\r\n ),\r\n };\r\n\r\n const deactivatedInfoBannerMapping: InfoBannerMapping = {\r\n infoBannerGuid: null,\r\n screenGuids: this.screenGroups.flatMap((group) =>\r\n group.screens\r\n .filter((screen) => screen.activeInfoBannerGuid === this.infoBanner.guid && !screen.newInfoBannerActive)\r\n .flatMap((screen) => screen.guid)\r\n ),\r\n };\r\n\r\n this.infoBannerService\r\n .updateInfoBannerMapping([activatedInfoBannerMapping, deactivatedInfoBannerMapping])\r\n .subscribe({\r\n next: () => {\r\n this.close(true);\r\n },\r\n error: () => {\r\n this.infoBannerService.presentToast(false, 'mapping', false);\r\n },\r\n });\r\n }\r\n\r\n close(closeInfoBannerModal: boolean) {\r\n this.modalCtrl.dismiss(closeInfoBannerModal);\r\n }\r\n\r\n // To prevent the \"ionChange\" event from being triggered when the checked property is set programmatically, we ignore the events for 100 ms.\r\n // On ionic v7 only user action such as a click will emit ionChange event.\r\n private ignoreIonChange() {\r\n if (!this.ignoreIonChangeEvent) {\r\n this.ignoreIonChangeEvent = true;\r\n setTimeout(() => (this.ignoreIonChangeEvent = false), 100);\r\n }\r\n }\r\n}\r\n","\r\n \r\n \r\n {{ 'mediacenter.term.infoBanner' | translate }} \"{{ this.infoBanner?.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 \r\n {{ 'mediacenter.term.all' | translate }}\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n {{ group.name }}\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n {{ screen.location }}
\r\n {{ screen.label }}\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, OnInit } from '@angular/core';\r\nimport { AbstractControl, FormControl, FormGroup, ValidationErrors, ValidatorFn, Validators } from '@angular/forms';\r\nimport { ModalController } from '@ionic/angular';\r\nimport { firstValueFrom } from 'rxjs';\r\nimport { debounceTime, map, takeUntil } from 'rxjs/operators';\r\nimport { Unsubscriber } from 'src/app/core/unsubscriber';\r\nimport { DestinationService } from 'src/app/domain/destination/destination.service';\r\nimport { MediaCenterInfoBannerType } from 'src/app/media-center/domain/mediacenter-configuration.model';\r\nimport { MediaCenterService } from 'src/app/media-center/media-center.service';\r\nimport { InfoBanner } from 'src/app/media-center/screens/infobanner-modal/domain/infobanner.model';\r\nimport { InfoBannerTextCategory } from 'src/app/media-center/screens/infobanner-modal/domain/infobanner-textcategory.enum';\r\nimport { Position } from 'src/app/media-center/screens/infobanner-modal/domain/position.enum';\r\nimport { InfoBannerService } from 'src/app/media-center/screens/infobanner-modal/infobanner.service';\r\nimport { v4 as v4guid } from 'uuid';\r\n\r\n@Component({\r\n templateUrl: './infobanner-text.component.html',\r\n styleUrls: ['./infobanner-text.component.scss', '../../../media-center-global.scss'],\r\n standalone: false\r\n})\r\nexport class InfoBannerTextComponent extends Unsubscriber implements OnInit {\r\n btnIsDisabled = false;\r\n fullscreenMode: boolean;\r\n infoBannerTextSettingsForm: FormGroup;\r\n editedInfoBanner: InfoBanner;\r\n editorType: number = undefined;\r\n textCategories: Array<{ translateKey: string; id: number }>;\r\n languageTextControls: Array<{ translateKey: string; formControlName: string; textCounter: string }>;\r\n editor: any;\r\n ckEditorData: string = '';\r\n scale: number = 1;\r\n maxZoom: number = 2;\r\n minZoom: number = 0.3;\r\n\r\n private maxLengthValidatorFn: ValidatorFn;\r\n private infoBannerMaxCharacters: number;\r\n private iframe: HTMLIFrameElement;\r\n\r\n @Input() screenLocation: string;\r\n @Input() screenWidth: number;\r\n @Input() screenHeight: number;\r\n @Input() infoBanner: InfoBanner;\r\n\r\n constructor(\r\n private modalCtrl: ModalController,\r\n private infoBannerService: InfoBannerService,\r\n private destinationService: DestinationService,\r\n private mediaCenterService: MediaCenterService\r\n ) {\r\n super();\r\n\r\n const textCategoryKeys = Object.values(InfoBannerTextCategory).filter((v) => isNaN(Number(v)));\r\n this.textCategories = textCategoryKeys.map((k: string) => ({\r\n translateKey: `alarming.term.${k.toLowerCase()}`,\r\n id: InfoBannerTextCategory[k] as number,\r\n }));\r\n }\r\n\r\n ngOnInit() {\r\n if (!this.infoBanner) {\r\n this.infoBanner = {\r\n guid: v4guid(),\r\n height: '100%',\r\n background: '#ffffff',\r\n content: '',\r\n position: Position.Full,\r\n textCategory: InfoBannerTextCategory.Info,\r\n };\r\n }\r\n\r\n this.editedInfoBanner = JSON.parse(JSON.stringify(this.infoBanner));\r\n this.ckEditorData = this.editedInfoBanner.content;\r\n this.fullscreenMode = this.editedInfoBanner.position === Position.Full;\r\n\r\n setTimeout(() => {\r\n CKEDITOR.replace('editorInfobanner', {\r\n customConfig: '/assets/ckeditor/config-infobanner.js',\r\n });\r\n }, 0);\r\n\r\n CKEDITOR.once('instanceReady', (event) => {\r\n this.setEditor(event);\r\n });\r\n\r\n this.infoBannerTextSettingsForm = new FormGroup({\r\n fullscreenMode: new FormControl(this.fullscreenMode),\r\n htmlContent: new FormControl(this.editedInfoBanner.content, [], this.htmlContentValidator.bind(this)),\r\n position: new FormControl(this.editedInfoBanner.position),\r\n height: new FormControl(this.editedInfoBanner.height, [Validators.minLength(2)]),\r\n name: new FormControl(this.editedInfoBanner.name, [Validators.minLength(1), Validators.required]),\r\n textCategory: new FormControl(this.editedInfoBanner.textCategory),\r\n backgroundColorChecked: new FormControl(this.editedInfoBanner.background !== null),\r\n colorPicker: new FormControl(this.editedInfoBanner.background),\r\n });\r\n\r\n this.infoBannerTextSettingsForm.valueChanges\r\n .pipe(debounceTime(100), takeUntil(this.onDestroy$))\r\n .subscribe((value) => {\r\n this.editedInfoBanner.name = value.name;\r\n this.editedInfoBanner.position = this.fullscreenMode ? Position.Full : value.position;\r\n this.editedInfoBanner.height = this.fullscreenMode ? '100%' : value.height;\r\n this.editedInfoBanner.background = value.backgroundColorChecked ? value.colorPicker : null;\r\n this.editedInfoBanner.content = value.htmlContent;\r\n\r\n this.fullscreenMode = value.fullscreenMode;\r\n\r\n this.languageTextControls.forEach((t) => {\r\n this.editedInfoBanner[t.formControlName] = value[t.formControlName];\r\n t.textCounter = `(${this.editedInfoBanner[t.formControlName]?.length ?? 0}/${this.infoBannerMaxCharacters})`;\r\n });\r\n\r\n if (this.editedInfoBanner !== this.infoBanner) {\r\n this.btnIsDisabled = this.infoBannerTextSettingsForm.invalid;\r\n }\r\n\r\n if (this.iframe) {\r\n this.iframe.contentDocument.body.style.background = this.editedInfoBanner.background;\r\n this.iframe.style.height = this.editedInfoBanner.height;\r\n }\r\n });\r\n\r\n this.mediaCenterService.configuration$.pipe(takeUntil(this.onDestroy$)).subscribe((configuration) => {\r\n this.editorType = configuration.infoBannerType;\r\n this.infoBannerMaxCharacters = configuration.infoBannerMaxCharacters;\r\n this.languageTextControls = configuration.languages.map((l) => {\r\n const formControlName = `text${l[0].toUpperCase()}${l[1].toLowerCase()}`;\r\n return {\r\n translateKey: `general.term.${l}`,\r\n formControlName,\r\n textCounter: `(${this.editedInfoBanner[formControlName]?.length ?? 0}/${\r\n configuration.infoBannerMaxCharacters\r\n })`,\r\n };\r\n });\r\n\r\n this.languageTextControls.forEach((t) => {\r\n this.infoBannerTextSettingsForm.addControl(\r\n t.formControlName,\r\n new FormControl(this.editedInfoBanner[t.formControlName])\r\n );\r\n if (this.maxLengthValidatorFn) {\r\n this.infoBannerTextSettingsForm.controls[t.formControlName].removeValidators(this.maxLengthValidatorFn);\r\n }\r\n });\r\n\r\n this.maxLengthValidatorFn = Validators.maxLength(configuration.infoBannerMaxCharacters);\r\n this.languageTextControls.forEach((t) => {\r\n if (this.maxLengthValidatorFn) {\r\n this.infoBannerTextSettingsForm.controls[t.formControlName].addValidators(this.maxLengthValidatorFn);\r\n }\r\n });\r\n\r\n this.infoBannerTextSettingsForm.updateValueAndValidity();\r\n });\r\n }\r\n\r\n close() {\r\n this.modalCtrl.dismiss();\r\n }\r\n\r\n async setEditor(event: CKEDITOR.eventInfo): Promise {\r\n this.editor = event.editor;\r\n this.editor.setData(this.editedInfoBanner.content);\r\n this.editor.on('change', () => this.infobannerChangedEvent());\r\n\r\n this.iframe = document.getElementsByClassName('cke_wysiwyg_frame')[0] as HTMLIFrameElement;\r\n if (this.iframe) {\r\n this.iframe.contentDocument.body.style.background = this.editedInfoBanner.background;\r\n this.iframe.style.height = this.editedInfoBanner.height;\r\n }\r\n\r\n const zoomInElements = document.getElementsByClassName('cke_button__zoom-in');\r\n if (zoomInElements) {\r\n (zoomInElements[0] as HTMLElement).onclick = () => this.zoomIn();\r\n }\r\n\r\n const zoomOutElements = document.getElementsByClassName('cke_button__zoom-out');\r\n if (zoomOutElements) {\r\n (zoomOutElements[0] as HTMLElement).onclick = () => this.zoomOut();\r\n }\r\n\r\n const zoomDefaultElements = document.getElementsByClassName('cke_button__zoom-default');\r\n if (zoomDefaultElements) {\r\n (zoomDefaultElements[0] as HTMLElement).onclick = () => this.zoomDefault();\r\n }\r\n }\r\n\r\n zoomIn(): void {\r\n if (this.scale < this.maxZoom) {\r\n this.scale += 0.1;\r\n this.updateZoom();\r\n }\r\n }\r\n\r\n zoomDefault(): void {\r\n this.scale = 1;\r\n this.updateZoom();\r\n }\r\n\r\n zoomOut(): void {\r\n if (this.scale > this.minZoom) {\r\n this.scale -= 0.1;\r\n this.updateZoom();\r\n }\r\n }\r\n\r\n updateZoom(): void {\r\n if (this.iframe) {\r\n const bodyStyle = this.iframe.contentDocument.body.style;\r\n bodyStyle.transform = `scale(${this.scale})`;\r\n bodyStyle.transformOrigin = '0 0';\r\n bodyStyle.overflow = 'auto';\r\n }\r\n }\r\n\r\n infobannerChangedEvent(): void {\r\n const data = '' + this.editor.getData();\r\n this.infoBannerTextSettingsForm.controls.htmlContent.setValue(data);\r\n\r\n if (this.iframe) {\r\n this.iframe.contentDocument.body.style.background = this.editedInfoBanner.background;\r\n this.iframe.style.height = this.editedInfoBanner.height;\r\n }\r\n }\r\n\r\n checkboxValueChangedScreenMode() {\r\n this.fullscreenMode = this.infoBannerTextSettingsForm.controls.fullscreenMode.value;\r\n if (!this.fullscreenMode) {\r\n this.infoBannerTextSettingsForm.controls.position.setValue(Position.Top);\r\n }\r\n }\r\n\r\n onColorChange(event: Event) {\r\n const input = event.target as HTMLInputElement;\r\n const color = input.value;\r\n\r\n this.infoBannerTextSettingsForm.controls.colorPicker.setValue(color);\r\n\r\n if (this.iframe) {\r\n this.iframe.contentDocument.body.style.background = color;\r\n }\r\n }\r\n\r\n async save(): Promise {\r\n try {\r\n if (!this.editedInfoBanner.tenantGuid) {\r\n const tenantGuid = await firstValueFrom(this.destinationService.selectedTenant$.pipe(map((t) => t.guid)));\r\n this.editedInfoBanner.tenantGuid = tenantGuid;\r\n }\r\n\r\n await firstValueFrom(this.infoBannerService.updateInfoBanner(this.editedInfoBanner));\r\n this.close();\r\n } catch {\r\n this.infoBannerService.presentToast(false, 'infobannerNew', false);\r\n }\r\n }\r\n\r\n private async htmlContentValidator(control: AbstractControl): Promise {\r\n const configuration = await firstValueFrom(this.mediaCenterService.configuration$);\r\n const bannerType = configuration?.infoBannerType ?? MediaCenterInfoBannerType.WYSIWYG;\r\n\r\n if (bannerType === MediaCenterInfoBannerType.WYSIWYG) {\r\n if (!control.value || control.value.trim() === '') {\r\n return { htmlContent: true };\r\n }\r\n }\r\n return null;\r\n }\r\n}\r\n","\r\n \r\n \r\n {{ this.screenLocation }}\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 {{ 'infobanner.term.bannerName' | translate }}:\r\n \r\n \r\n \r\n \r\n \r\n \r\n {{ 'infobanner.term.bannerBackgroundColor' | translate }}:\r\n \r\n \r\n \r\n \r\n \r\n \r\n {{ 'infobanner.term.fullscreen' | translate }}\r\n \r\n \r\n \r\n {{ 'infobanner.term.bannerPosition' | translate }}:\r\n \r\n \r\n {{ 'infobanner.term.top' | translate }}\r\n \r\n {{ 'infobanner.term.bottom' | translate }}\r\n \r\n \r\n \r\n {{ 'infobanner.term.bannerHeight' | translate }}:\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 {{ 'infobanner.term.bannerName' | translate }}:\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n {{ 'general.term.category' | translate }}: \r\n \r\n \r\n \r\n {{ item.translateKey | translate }}\r\n \r\n \r\n \r\n\r\n \r\n \r\n {{ control.translateKey | translate }}: \r\n \r\n \r\n \r\n\r\n
\r\n {{ control.textCounter }}\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, OnInit } from '@angular/core';\r\nimport { FormControl } from '@angular/forms';\r\nimport { ModalController } from '@ionic/angular';\r\nimport { combineLatest, firstValueFrom } from 'rxjs';\r\nimport { debounceTime, startWith, takeUntil } from 'rxjs/operators';\r\nimport { Unsubscriber } from 'src/app/core/unsubscriber';\r\nimport { ConfirmationDialogService } from 'src/app/core/utils/confirmation-dialog.service';\r\nimport { ScreenSizeService } from 'src/app/core/utils/screen-size.service';\r\nimport { DestinationService } from 'src/app/domain/destination/destination.service';\r\nimport { Feature } from 'src/app/domain/feature/feature.model';\r\nimport { FeatureAccessLevel } from 'src/app/domain/feature/feature-access-level.model';\r\nimport { FeatureId } from 'src/app/domain/feature/feature-id.model';\r\nimport { MediaCenterInfoBannerType } from 'src/app/media-center/domain/mediacenter-configuration.model';\r\nimport { MediaCenterService } from 'src/app/media-center/media-center.service';\r\nimport { Screen } from 'src/app/media-center/screens/domain/screen.model';\r\nimport { InfoBanner } from 'src/app/media-center/screens/infobanner-modal/domain/infobanner.model';\r\nimport { InfoBannerService } from 'src/app/media-center/screens/infobanner-modal/infobanner.service';\r\nimport { InfoBannerScreensSelectorComponent } from 'src/app/media-center/screens/infobanner-modal/infobanner-screen-selector-modal/infobanner-screen-selector.component';\r\nimport { InfoBannerTextComponent } from 'src/app/media-center/screens/infobanner-modal/infobanner-text-modal/infobanner-text.component';\r\nimport { MediaCenterScreenService } from 'src/app/media-center/screens/media-center-screens.service';\r\n\r\n@Component({\r\n templateUrl: './infobanner.component.html',\r\n styleUrls: ['./infobanner.component.scss', '../../media-center-global.scss'],\r\n standalone: false\r\n})\r\nexport class InfoBannerComponent extends Unsubscriber implements OnInit {\r\n readonly searchControl = new FormControl('');\r\n\r\n searching = false;\r\n screen: Screen;\r\n isNewInfoBanner: boolean;\r\n infoBannerWritePermission: boolean;\r\n btnIsDisabled = true;\r\n bigScreenMode: boolean;\r\n allScreensOfTenant: Screen[];\r\n infoBanners: InfoBanner[];\r\n selectedInfoBanner?: InfoBanner;\r\n showPreviewButton: boolean;\r\n showBannerPosition: boolean;\r\n\r\n constructor(\r\n private modalCtrl: ModalController,\r\n private screenSizeService: ScreenSizeService,\r\n private mediaCenterService: MediaCenterService,\r\n private infoBannerService: InfoBannerService,\r\n private destinationService: DestinationService,\r\n private confirmationDialogService: ConfirmationDialogService,\r\n private screensService: MediaCenterScreenService\r\n ) {\r\n super();\r\n }\r\n\r\n ngOnInit() {\r\n this.screenSizeService.bigScreenMode$\r\n .pipe(takeUntil(this.onDestroy$))\r\n .subscribe((bigScreenMode) => (this.bigScreenMode = bigScreenMode));\r\n\r\n this.destinationService.selectedTenantFeatures$.pipe(takeUntil(this.onDestroy$)).subscribe((features) => {\r\n this.infoBannerWritePermission = features.some((f) =>\r\n f.hasMinimumRequirementFor(new Feature(FeatureId.SISMEDIA_MEDIACENTER_INFOBANNER, FeatureAccessLevel.WRITE))\r\n );\r\n });\r\n\r\n this.screensService.screens$.pipe(takeUntil(this.onDestroy$)).subscribe((screens) => {\r\n this.allScreensOfTenant = screens.filter((screen) => screen.infoBannerAllowed);\r\n });\r\n\r\n combineLatest([\r\n this.infoBannerService.infoBanner$,\r\n this.searchControl.valueChanges.pipe(debounceTime(200), startWith('')),\r\n ])\r\n .pipe(takeUntil(this.onDestroy$))\r\n .subscribe(([infoBanners, searchTerm]) => {\r\n this.searching = false;\r\n\r\n this.selectedInfoBanner = infoBanners.find((i) => i.screenGuids.find((i) => i == this.screen.guid));\r\n if (searchTerm != '') {\r\n infoBanners = infoBanners.filter((infoBanner) =>\r\n infoBanner.name?.toLowerCase().includes(searchTerm.toLocaleLowerCase())\r\n );\r\n }\r\n\r\n this.infoBanners = infoBanners.sort((a, b) => (a.name < b.name ? -1 : 1));\r\n this.infoBanners.forEach((infoBanner) => (infoBanner.screenLocations = this.joinScreenLocations(infoBanner)));\r\n });\r\n\r\n this.mediaCenterService.configuration$.pipe(takeUntil(this.onDestroy$)).subscribe((configuration) => {\r\n this.showPreviewButton = configuration?.infoBannerType !== MediaCenterInfoBannerType.PlainText;\r\n this.showBannerPosition = configuration?.infoBannerType !== MediaCenterInfoBannerType.PlainText;\r\n });\r\n }\r\n\r\n close() {\r\n this.modalCtrl.dismiss();\r\n }\r\n\r\n selectInfoBanner(infoBanner?: InfoBanner) {\r\n this.selectedInfoBanner = infoBanner;\r\n }\r\n\r\n itemId(_: number, playlist: any): string {\r\n return playlist.name;\r\n }\r\n\r\n async openTextModal(infoBanner: InfoBanner): Promise {\r\n if (!this.infoBannerWritePermission) {\r\n return;\r\n }\r\n\r\n const configuration = await firstValueFrom(this.mediaCenterService.configuration$);\r\n\r\n const cssClass =\r\n configuration?.infoBannerType === MediaCenterInfoBannerType.PlainText ? 'sis-infobanner-plaintext-modal' : 'sis-infobanner-wysiwyg-modal';\r\n\r\n const modal = await this.modalCtrl.create({\r\n component: InfoBannerTextComponent,\r\n cssClass,\r\n backdropDismiss: false,\r\n componentProps: {\r\n screenLocation: this.screen.location,\r\n screenWidth: this.screen.screenWidth,\r\n screenHeight: this.screen.screenHeight,\r\n infoBanner,\r\n },\r\n });\r\n\r\n await modal.present();\r\n }\r\n\r\n openSlideShowPreview(screenLabel: string, infoBannerGuid: string): void {\r\n this.mediaCenterService.openSlideShowScreenPreview(screenLabel, null, null, null, infoBannerGuid);\r\n }\r\n\r\n joinScreenLocations(infoBanner: InfoBanner) {\r\n if (infoBanner.screenGuids?.length > 0) {\r\n const screenLocations = [];\r\n infoBanner.screenGuids.forEach((screenGuid) => {\r\n const screenWithInfoBanner = this.allScreensOfTenant.find((screen) => screen.guid === screenGuid);\r\n if (screenWithInfoBanner) {\r\n screenLocations.push(screenWithInfoBanner?.location);\r\n }\r\n });\r\n return ':\\n\\n' + screenLocations.map((x) => `- ${x}`).join('\\n');\r\n }\r\n }\r\n\r\n async openScreensSelectorModal(infoBanner: InfoBanner, screen: Screen): Promise {\r\n if (!this.infoBannerWritePermission || !infoBanner) {\r\n return;\r\n }\r\n\r\n const modal = await this.modalCtrl.create({\r\n component: InfoBannerScreensSelectorComponent,\r\n cssClass: 'sis-infobanner-screen-selector-modal',\r\n backdropDismiss: false,\r\n componentProps: {\r\n infoBanner,\r\n entryScreen: screen,\r\n },\r\n });\r\n\r\n modal.onDidDismiss().then((event) => {\r\n if (event.data) {\r\n this.close();\r\n }\r\n });\r\n\r\n await modal.present();\r\n }\r\n\r\n deleteInfoBanner(infoBanner: InfoBanner) {\r\n if (infoBanner.screenGuids?.length > 0) {\r\n this.confirmationDialogService.presentAlert(\r\n 'infobanner.phrase.removeInfoBannerMappings',\r\n 'general.term.understood'\r\n );\r\n return;\r\n }\r\n\r\n this.confirmationDialogService\r\n .presentAlert('infobanner.phrase.deleteInfoBanner', 'mediacenter.term.delete')\r\n .then((confirmed) => {\r\n if (confirmed) {\r\n this.infoBannerService.deleteInfoBanner(infoBanner).subscribe({\r\n next: () => { },\r\n error: () => {\r\n this.infoBannerService.presentToast(false, 'mapping', true);\r\n },\r\n });\r\n }\r\n });\r\n }\r\n}\r\n","\r\n \r\n \r\n {{ 'mediacenter.term.infoBanner' | translate }}\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 {{ infoBanner.name }}\r\n \r\n \r\n \r\n \r\n \r\n {{\r\n infoBanner.position === 1\r\n ? ('infobanner.term.fullscreen' | translate)\r\n : ('infobanner.term.banner' | translate)\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 {{ infoBanner.name }}\r\n \r\n \r\n \r\n \r\n \r\n {{\r\n infoBanner.position === 1\r\n ? ('infobanner.term.fullscreen' | translate)\r\n : ('infobanner.term.banner' | translate)\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 { HttpClient } from '@angular/common/http';\r\nimport { Injectable } from '@angular/core';\r\nimport { merge, Observable } from 'rxjs';\r\nimport { filter, map, shareReplay, switchMap, withLatestFrom } from 'rxjs/operators';\r\nimport { EventBusService } from 'src/app/core/eventbus/event-bus.service';\r\nimport { InfoBannerMappingUpdatedEvent, InfoBannerUpdatedEvent } from 'src/app/core/eventbus/events';\r\nimport { DestinationService } from 'src/app/domain/destination/destination.service';\r\nimport { Feature } from 'src/app/domain/feature/feature.model';\r\nimport { FeatureAccessLevel } from 'src/app/domain/feature/feature-access-level.model';\r\nimport { FeatureId } from 'src/app/domain/feature/feature-id.model';\r\nimport { InfoBannerAdapter } from 'src/app/media-center/screens/infobanner-modal/domain/infobanner.adapter';\r\nimport { InfoBanner } from 'src/app/media-center/screens/infobanner-modal/domain/infobanner.model';\r\nimport { InfoBannerMapping } from 'src/app/media-center/screens/infobanner-modal/domain/infobanner-mapping.model';\r\nimport { UserMessage } from 'src/app/user-message/user-message.model';\r\nimport { UserMessageService } from 'src/app/user-message/user-message.service';\r\nimport { UserMessageColor } from 'src/app/user-message/user-message-color';\r\nimport { UserMessageIcon } from 'src/app/user-message/user-message-icon';\r\nimport { environment } from 'src/environments/environment';\r\n\r\n@Injectable({\r\n providedIn: 'root',\r\n})\r\nexport class InfoBannerService {\r\n private static readonly requestInfoBannersUrl = '/sismedia/infobanner';\r\n private static readonly updateInfoBannerUrl = '/sismedia/infobanner/update';\r\n private static readonly updateInfoBannerMappingUrl = '/sismedia/infobanner/mapping/update';\r\n\r\n private readonly requiredFeature = new Feature(FeatureId.SISMEDIA_MEDIACENTER_INFOBANNER, FeatureAccessLevel.READ);\r\n\r\n private readonly infoBannerRequest$: Observable = this.destinationService.selectedTenantFeatures$.pipe(\r\n filter((features) => features.some((feature) => feature.hasMinimumRequirementFor(this.requiredFeature))),\r\n switchMap(() => this.http.get(`${environment.baseUrlApi}${InfoBannerService.requestInfoBannersUrl}`)),\r\n map((data) => InfoBannerAdapter.adapt(data)),\r\n shareReplay({\r\n bufferSize: 1,\r\n refCount: true,\r\n })\r\n );\r\n\r\n private readonly infoBannerUpdate$: Observable = this.eventBus.observe(InfoBannerUpdatedEvent).pipe(\r\n withLatestFrom(this.destinationService.selectedTenant$),\r\n filter(([updatedEvent, tenant]) => updatedEvent?.infoBanner.tenantGuid === tenant?.guid),\r\n withLatestFrom(this.infoBannerRequest$),\r\n map(([[updatedEvent], infoBanner]) => {\r\n const updatedInfoBanner = infoBanner.find((s) => s.guid === updatedEvent.infoBanner.guid);\r\n\r\n if (updatedInfoBanner) {\r\n if (updatedEvent.updateSuccessful) {\r\n if (updatedEvent.removed) {\r\n infoBanner.splice(infoBanner.indexOf(updatedInfoBanner), 1);\r\n } else {\r\n Object.assign(updatedInfoBanner, updatedEvent.infoBanner);\r\n }\r\n }\r\n } else {\r\n if (updatedEvent.updateSuccessful) {\r\n infoBanner.push(updatedEvent.infoBanner);\r\n }\r\n }\r\n this.presentToast(updatedEvent.updateSuccessful, 'infobannerUpdate', updatedEvent.removed);\r\n\r\n return infoBanner;\r\n })\r\n );\r\n\r\n private readonly infoBannerMappingUpdate$: Observable = this.eventBus\r\n .observe(InfoBannerMappingUpdatedEvent)\r\n .pipe(\r\n withLatestFrom(this.destinationService.selectedTenant$),\r\n filter(([updatedEvent, tenant]) => updatedEvent?.tenantGuid === tenant?.guid),\r\n withLatestFrom(this.infoBannerRequest$),\r\n map(([[updatedEvent], infoBanners]) => {\r\n updatedEvent.infoBannerMappings.forEach((infoBannerMaping) => {\r\n const updatedInfoBanner = infoBanners.find((s) => s.guid === infoBannerMaping.infoBannerGuid);\r\n\r\n if (updatedInfoBanner) {\r\n if (updatedEvent.updateSuccessful) {\r\n updatedInfoBanner.screenGuids = infoBannerMaping.screenGuids;\r\n Object.assign(infoBanners, updatedEvent.infoBanners);\r\n }\r\n } else {\r\n if (updatedEvent.updateSuccessful) {\r\n Object.assign(infoBanners, updatedEvent.infoBanners);\r\n }\r\n }\r\n });\r\n this.presentToast(updatedEvent.updateSuccessful, 'mapping', false);\r\n\r\n return infoBanners;\r\n })\r\n );\r\n\r\n readonly infoBanner$ = merge(this.infoBannerRequest$, this.infoBannerUpdate$, this.infoBannerMappingUpdate$).pipe(\r\n shareReplay({\r\n bufferSize: 1,\r\n refCount: true,\r\n })\r\n );\r\n\r\n constructor(\r\n private eventBus: EventBusService,\r\n private http: HttpClient,\r\n private userMessageService: UserMessageService,\r\n private destinationService: DestinationService\r\n ) { }\r\n\r\n updateInfoBanner(infoBanner: InfoBanner): Observable {\r\n return this.update(infoBanner, false);\r\n }\r\n\r\n updateInfoBannerMapping(infoBannerMappings: InfoBannerMapping[]): Observable {\r\n return this.updateMappings(infoBannerMappings);\r\n }\r\n\r\n deleteInfoBanner(infoBanner: InfoBanner): Observable {\r\n return this.update(infoBanner, true);\r\n }\r\n\r\n private update(infoBanner: InfoBanner, deleting: boolean): Observable {\r\n return this.http\r\n .post(`${environment.baseUrlApi}${InfoBannerService.updateInfoBannerUrl}`, {\r\n infoBanner,\r\n delete: deleting,\r\n })\r\n .pipe(map(() => infoBanner));\r\n }\r\n\r\n private updateMappings(infoBannerMappings: InfoBannerMapping[]): Observable {\r\n return this.http\r\n .post(`${environment.baseUrlApi}${InfoBannerService.updateInfoBannerMappingUrl}`, {\r\n infoBannerMappings: infoBannerMappings,\r\n })\r\n .pipe(map(() => infoBannerMappings));\r\n }\r\n\r\n presentToast(success: boolean, operation: string, deleted: boolean): void {\r\n let message = '';\r\n\r\n switch (operation) {\r\n case 'mapping':\r\n message = success ? 'infobanner.phrase.infoBannerUpdated' : 'infobanner.phrase.infoBannerUpdateFailed';\r\n break;\r\n case 'infobannerUpdate':\r\n message = success\r\n ? deleted\r\n ? 'infobanner.phrase.infoBannerTextDeleted'\r\n : 'infobanner.phrase.infoBannerTextUpdated'\r\n : deleted\r\n ? 'infobanner.phrase.infoBannerTextDeleteFailed'\r\n : 'infobanner.phrase.infoBannerTextUpdateFailed';\r\n break;\r\n case 'infobannerNew':\r\n message = success ? 'infobanner.phrase.newInfoBannerCreated' : 'infobanner.phrase.newInfoBannerFailed';\r\n break;\r\n default:\r\n return;\r\n }\r\n\r\n const color = success ? UserMessageColor.green : UserMessageColor.red;\r\n const icon = success ? UserMessageIcon.success : UserMessageIcon.failed;\r\n this.userMessageService.presentToast(new UserMessage({ message, icon, durationMs: 2000, position: 'top', color }));\r\n }\r\n}\r\n","import { Component, OnInit } from '@angular/core';\r\nimport { FormControl } from '@angular/forms';\r\nimport { ActivatedRoute, Router } from '@angular/router';\r\nimport { ModalController } from '@ionic/angular';\r\nimport { firstValueFrom } from 'rxjs';\r\nimport { debounceTime, takeUntil } from 'rxjs/operators';\r\nimport { LogbookModalService } from 'src/app/core/components/logbook/logbook-modal/logbook-modal.service';\r\nimport { Unsubscriber } from 'src/app/core/unsubscriber';\r\nimport { ScreenSizeService } from 'src/app/core/utils/screen-size.service';\r\nimport { DestinationService } from 'src/app/domain/destination/destination.service';\r\nimport { Feature } from 'src/app/domain/feature/feature.model';\r\nimport { FeatureAccessLevel } from 'src/app/domain/feature/feature-access-level.model';\r\nimport { FeatureId } from 'src/app/domain/feature/feature-id.model';\r\nimport { Screen } from 'src/app/media-center/screens/domain/screen.model';\r\nimport { MediaCenterScreenService } from 'src/app/media-center/screens/media-center-screens.service';\r\nimport { ScreeneditorComponent } from 'src/app/media-center/screens/screeneditor-modal/screeneditor.component';\r\nimport { v4 as v4guid } from 'uuid';\r\n\r\n@Component({\r\n selector: 'sis-media-center-screens',\r\n templateUrl: './media-center-screens.component.html',\r\n styleUrls: ['./media-center-screens.component.scss', '../media-center-global.scss'],\r\n standalone: false\r\n})\r\nexport class MediaCenterScreensComponent extends Unsubscriber implements OnInit {\r\n private screenOrders: Map;\r\n\r\n searchControl = new FormControl('');\r\n searching = false;\r\n writePermission: boolean;\r\n infoBannerReadPermission: boolean;\r\n reorderingEnabled: boolean = false;\r\n\r\n readonly bigScreenMode$ = this.screenSizeService.bigScreenMode$;\r\n readonly screenGroups$ = this.screensService.screenGroups$;\r\n readonly filteredScreens$ = this.screensService.filteredScreens$;\r\n readonly logbookAvailable$ = this.logbookModalService.logbookAvailable$;\r\n\r\n constructor(\r\n private destinationService: DestinationService,\r\n private screensService: MediaCenterScreenService,\r\n private screenSizeService: ScreenSizeService,\r\n private modalCtrl: ModalController,\r\n private logbookModalService: LogbookModalService,\r\n private activatedRoute: ActivatedRoute,\r\n private router: Router\r\n ) {\r\n super();\r\n }\r\n\r\n ngOnInit() {\r\n this.destinationService.selectedTenantFeatures$.pipe(takeUntil(this.onDestroy$)).subscribe((features) => {\r\n this.writePermission = features.some((f) =>\r\n f.hasMinimumRequirementFor(new Feature(FeatureId.SISMEDIA_MEDIACENTER, FeatureAccessLevel.WRITE))\r\n );\r\n this.infoBannerReadPermission = features.some((f) =>\r\n f.hasMinimumRequirementFor(new Feature(FeatureId.SISMEDIA_MEDIACENTER_INFOBANNER, FeatureAccessLevel.READ))\r\n );\r\n });\r\n\r\n this.searchControl.valueChanges.pipe(debounceTime(200), takeUntil(this.onDestroy$)).subscribe((search) => {\r\n this.searching = false;\r\n this.router.navigate([], {\r\n relativeTo: this.activatedRoute,\r\n queryParams: { screenSearch: search !== '' && search != null ? search.toLowerCase() : null },\r\n queryParamsHandling: 'merge',\r\n replaceUrl: true,\r\n });\r\n });\r\n\r\n this.activatedRoute.queryParams.pipe(takeUntil(this.onDestroy$)).subscribe((params) => {\r\n const searchTerm = params.screenSearch?.toLowerCase();\r\n\r\n if (this.searchControl.value !== searchTerm) {\r\n this.searchControl.setValue(searchTerm);\r\n }\r\n\r\n this.screensService.filterScreens(searchTerm);\r\n });\r\n }\r\n\r\n async onReorderClick() {\r\n this.reorderingEnabled = true;\r\n this.searchControl.disable({ emitEvent: false });\r\n this.screensService.filterScreens('');\r\n const screens = await firstValueFrom(this.screensService.screens$);\r\n this.screenOrders = new Map(screens.map((screen) => [screen.guid, screen.order]));\r\n }\r\n\r\n async onReorderSaveClick() {\r\n this.reorderingEnabled = false;\r\n const screens = await firstValueFrom(this.screensService.filteredScreens$);\r\n const reorderedScreens = screens.filter((screen) => this.screenOrders.get(screen.guid) !== screen.order);\r\n this.screensService.updateScreens(reorderedScreens);\r\n this.searchControl.enable();\r\n this.screensService.filterScreens(this.searchControl.value);\r\n }\r\n\r\n async onReorderCancelClick() {\r\n this.reorderingEnabled = false;\r\n const screens = await firstValueFrom(this.screensService.filteredScreens$);\r\n screens.forEach((screen) => (screen.order = this.screenOrders.get(screen.guid)));\r\n\r\n this.searchControl.enable();\r\n this.screensService.filterScreens(this.searchControl.value);\r\n }\r\n\r\n async openEditscreen(screen?: Screen): Promise {\r\n if (!this.writePermission) {\r\n return;\r\n }\r\n\r\n const screens = await firstValueFrom(this.screensService.screens$);\r\n\r\n if (!screen) {\r\n screen = {\r\n guid: v4guid(),\r\n infoBannerAllowed: false,\r\n };\r\n }\r\n\r\n const screenLabels: string[] = [];\r\n const screenNames: string[] = [];\r\n screens\r\n .filter((screens) => screens.guid !== screen.guid)\r\n .forEach((screen) => {\r\n screenLabels.push(screen.label);\r\n screenNames.push(screen.location);\r\n });\r\n\r\n const modal = await this.modalCtrl.create({\r\n component: ScreeneditorComponent,\r\n cssClass: 'sis-screeneditor-modal',\r\n backdropDismiss: false,\r\n componentProps: {\r\n screen: screen,\r\n allScreenLabels: screenLabels,\r\n allScreenNames: screenNames,\r\n },\r\n });\r\n await modal.present();\r\n }\r\n\r\n async openLogbook(): Promise {\r\n await this.logbookModalService.presentLogbookModal([[FeatureId.SISMEDIA_MEDIACENTER]]);\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 {{ 'general.term.save' | translate }}\r\n \r\n \r\n {{ 'general.term.cancel' | translate }}\r\n
\r\n \r\n \r\n \r\n \r\n \r\n {{ 'general.term.name' | translate }} / {{ 'mediacenter.term.label' | translate }}\r\n {{ 'mediacenter.term.screenSize' | translate }}\r\n {{ 'mediacenter.term.playlist' | translate }}\r\n {{\r\n 'mediacenter.term.operatinghour' | translate\r\n }}\r\n {{\r\n 'mediacenter.term.network' | translate\r\n }}\r\n {{\r\n 'general.term.remoteaccess' | translate\r\n }}\r\n {{\r\n 'mediacenter.term.infoBanner' | translate\r\n }}\r\n {{\r\n 'mediacenter.term.slideshow' | translate\r\n }}\r\n {{ 'mediacenter.term.url' | translate }}\r\n {{ 'general.term.edit' | translate }}\r\n \r\n \r\n {{ 'general.term.name' | translate }} / {{ 'mediacenter.term.label' | translate }}\r\n {{ 'mediacenter.term.screenSize' | translate }}\r\n {{ 'mediacenter.term.playlist' | translate }}\r\n \r\n {{ 'general.term.edit' | translate }}\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","import { HttpClient } from '@angular/common/http';\r\nimport { Injectable } from '@angular/core';\r\nimport { combineLatest, firstValueFrom, merge, Observable, ReplaySubject } from 'rxjs';\r\nimport { distinctUntilChanged, filter, map, shareReplay, startWith, switchMap, withLatestFrom } from 'rxjs/operators';\r\nimport { EventBusService } from 'src/app/core/eventbus/event-bus.service';\r\nimport { MediaCenterScreenUpdatedEvent } from 'src/app/core/eventbus/events';\r\nimport { DestinationService } from 'src/app/domain/destination/destination.service';\r\nimport { Feature } from 'src/app/domain/feature/feature.model';\r\nimport { FeatureAccessLevel } from 'src/app/domain/feature/feature-access-level.model';\r\nimport { FeatureId } from 'src/app/domain/feature/feature-id.model';\r\nimport { MediaCenterNetworkStateService } from 'src/app/media-center/network-state/network-state.service';\r\nimport { MediaCenterPlaylistsService } from 'src/app/media-center/playlists/media-center-playlists.service';\r\nimport { MediaCenterRemoteAccessStatusService } from 'src/app/media-center/remote-access/remote-access-status.service';\r\nimport { ScreenAdapter } from 'src/app/media-center/screens/domain/screen.adapter';\r\nimport { Screen } from 'src/app/media-center/screens/domain/screen.model';\r\nimport { ScreenGroupAdapter } from 'src/app/media-center/screens/domain/screen-group.adapter';\r\nimport { ScreenGroup } from 'src/app/media-center/screens/domain/screen-group.model';\r\nimport { ScreenTypeAdapter } from 'src/app/media-center/screens/domain/screen-type.adapter';\r\nimport { ScreenType } from 'src/app/media-center/screens/domain/screen-type.model';\r\nimport { InfoBannerService } from 'src/app/media-center/screens/infobanner-modal/infobanner.service';\r\nimport { UserMessage } from 'src/app/user-message/user-message.model';\r\nimport { UserMessageService } from 'src/app/user-message/user-message.service';\r\nimport { UserMessageColor } from 'src/app/user-message/user-message-color';\r\nimport { UserMessageIcon } from 'src/app/user-message/user-message-icon';\r\nimport { environment } from 'src/environments/environment';\r\n\r\n@Injectable({\r\n providedIn: 'root',\r\n})\r\nexport class MediaCenterScreenService {\r\n private static readonly requestScreensUrl = '/mediacenter/screens';\r\n private static readonly updateScreenUrl = '/mediacenter/screen';\r\n private static readonly requestScreenTypesUrl = '/mediacenter/screentypes';\r\n private static readonly requestScreenGroupsUrl = '/mediacenter/screengroups';\r\n\r\n private readonly searchTerm$: ReplaySubject = new ReplaySubject(1);\r\n\r\n private readonly requiredFeature = new Feature(FeatureId.SISMEDIA_MEDIACENTER, FeatureAccessLevel.READ);\r\n\r\n readonly screenTypes$: Observable = this.destinationService.selectedTenantFeatures$.pipe(\r\n filter((features) => features.some((feature) => feature.hasMinimumRequirementFor(this.requiredFeature))),\r\n switchMap(() => this.http.get(`${environment.baseUrlApi}${MediaCenterScreenService.requestScreenTypesUrl}`)),\r\n map((data) => ScreenTypeAdapter.adapt(data)),\r\n map((types) => {\r\n types.sort((a, b) => a.type.localeCompare(b.type));\r\n return types;\r\n }),\r\n shareReplay({\r\n bufferSize: 1,\r\n refCount: true,\r\n })\r\n );\r\n\r\n private readonly screensRequest$: Observable = this.destinationService.selectedTenantFeatures$.pipe(\r\n filter((features) => features.some((feature) => feature.hasMinimumRequirementFor(this.requiredFeature))),\r\n switchMap(() => this.http.get(`${environment.baseUrlApi}${MediaCenterScreenService.requestScreensUrl}`)),\r\n map((data) => ScreenAdapter.adapt(data)),\r\n switchMap((screens) =>\r\n this.screenTypes$.pipe(\r\n map((screenTypes) => {\r\n screens.forEach((screen) => {\r\n screen.screenTypeName = screenTypes.find((type) => type.id === screen.type)?.type;\r\n });\r\n return screens;\r\n })\r\n )\r\n ),\r\n switchMap((screens) =>\r\n merge(\r\n this.networkStateService.networkStates$.pipe(\r\n distinctUntilChanged((x, y) => JSON.stringify(x) === JSON.stringify(y)),\r\n map((networkStates) => {\r\n screens.forEach((screen) => {\r\n const status = networkStates.find((n) => n.deviceIp === screen.ip)?.status;\r\n\r\n screen.connectionStatus = status;\r\n });\r\n return screens;\r\n })\r\n ),\r\n this.remoteAccessStatusService.remoteAccessStatuses$.pipe(\r\n distinctUntilChanged(),\r\n map((statuses) => {\r\n screens\r\n .filter((screen) => !!screen.remoteAccess)\r\n .forEach((screen) => {\r\n const status = statuses.find((s) => s.guid === screen.remoteAccess.guid);\r\n if (status) {\r\n screen.remoteAccessOnline = status.online;\r\n }\r\n });\r\n return screens;\r\n })\r\n )\r\n )\r\n ),\r\n shareReplay({\r\n bufferSize: 1,\r\n refCount: true,\r\n })\r\n );\r\n\r\n private readonly screenUpdate$: Observable = this.eventBus.observe(MediaCenterScreenUpdatedEvent).pipe(\r\n withLatestFrom(this.destinationService.selectedTenant$),\r\n filter(([updatedEvent, tenant]) => updatedEvent?.tenantGuid === tenant?.guid),\r\n withLatestFrom(this.screensRequest$, this.screenTypes$),\r\n map(([[updatedEvent], screens, screenTypes]) => {\r\n updatedEvent.screens.forEach((screen) => {\r\n const updatedScreen = screens.find((s) => s.guid === screen.guid);\r\n const screenType = screenTypes.find((type) => type.id === screen.type);\r\n screen.screenTypeName = screenType ? screenType.type : null;\r\n\r\n if (updatedScreen) {\r\n updatedScreen.updating = false;\r\n\r\n if (updatedEvent.success) {\r\n if (updatedEvent.removed) {\r\n this.presentToast(true, 'mediacenter.phrase.deleteSuccess');\r\n screens.splice(screens.indexOf(updatedScreen), 1);\r\n } else {\r\n this.presentToast(true, 'general.phrase.saved');\r\n const remoteAccess = updatedScreen.remoteAccess;\r\n const remoteAccessOnline = updatedScreen.remoteAccessOnline;\r\n Object.assign(updatedScreen, screen);\r\n updatedScreen.remoteAccess = remoteAccess;\r\n updatedScreen.remoteAccessOnline = remoteAccessOnline;\r\n }\r\n }\r\n } else {\r\n if (!updatedEvent.removed && updatedEvent.success) {\r\n screens.push(screen);\r\n this.presentToast(true, 'mediacenter.phrase.screenCreated');\r\n }\r\n }\r\n });\r\n\r\n return screens;\r\n })\r\n );\r\n\r\n readonly screens$ = combineLatest([\r\n merge(this.screensRequest$, this.screenUpdate$),\r\n this.playlistService.playlists$.pipe(startWith([])),\r\n this.infoBannerService.infoBanner$.pipe(startWith([])),\r\n ]).pipe(\r\n map(([screens, playlists, infoBanners]) => {\r\n playlists.forEach((playlist) => (playlist.assignedToScreen = false));\r\n screens.forEach((screen) => {\r\n if (screen.playlistGuid != null) {\r\n const playlist = playlists.find((playlist) => playlist.guid === screen.playlistGuid);\r\n screen.playlistName = playlist?.name;\r\n if (playlist) {\r\n playlist.assignedToScreen = true;\r\n }\r\n } else {\r\n screen.playlistName = null;\r\n }\r\n const infoBanner = infoBanners.find((i) => i.screenGuids.some((g: string) => g == screen.guid));\r\n screen.hasInfoBannerMapping = infoBanner != null;\r\n screen.infoBannerName = infoBanner?.name;\r\n });\r\n return screens;\r\n }),\r\n shareReplay({\r\n bufferSize: 1,\r\n refCount: true,\r\n })\r\n );\r\n\r\n readonly filteredScreens$ = combineLatest([this.screens$, this.searchTerm$]).pipe(\r\n map(([screens, searchTerm]) => {\r\n screens.sort((a, b) => a.location.localeCompare(b.location));\r\n if (searchTerm) {\r\n searchTerm = searchTerm.toLocaleLowerCase();\r\n screens = screens.filter(\r\n (d) =>\r\n d.location.toLowerCase().includes(searchTerm) ||\r\n d.label.toLowerCase().includes(searchTerm) ||\r\n d.playlistName?.toLowerCase().includes(searchTerm)\r\n );\r\n }\r\n\r\n return screens;\r\n })\r\n );\r\n\r\n private readonly screenGroupsRequest$: Observable =\r\n this.destinationService.selectedTenantFeatures$.pipe(\r\n filter((features) => features.some((feature) => feature.hasMinimumRequirementFor(this.requiredFeature))),\r\n switchMap(() => this.http.get(`${environment.baseUrlApi}${MediaCenterScreenService.requestScreenGroupsUrl}`)),\r\n map((data) => ScreenGroupAdapter.adapt(data))\r\n );\r\n\r\n readonly screenGroups$ = this.screenGroupsRequest$.pipe(\r\n map((groups) => {\r\n const defaultGroup: ScreenGroup = { order: -1 };\r\n groups.push(defaultGroup);\r\n groups.sort((a, b) => a.order - b.order);\r\n return groups;\r\n })\r\n );\r\n\r\n constructor(\r\n private eventBus: EventBusService,\r\n private http: HttpClient,\r\n private destinationService: DestinationService,\r\n private playlistService: MediaCenterPlaylistsService,\r\n private infoBannerService: InfoBannerService,\r\n private networkStateService: MediaCenterNetworkStateService,\r\n private remoteAccessStatusService: MediaCenterRemoteAccessStatusService,\r\n private userMessageService: UserMessageService\r\n ) {}\r\n\r\n async updateScreens(screens: Screen[]): Promise {\r\n return this.update(screens, false);\r\n }\r\n\r\n async deleteScreen(screen: Screen): Promise {\r\n return this.update([screen], true);\r\n }\r\n\r\n private async update(screens: Screen[], deleting: boolean): Promise {\r\n try {\r\n await firstValueFrom(\r\n this.http.post(`${environment.baseUrlApi}${MediaCenterScreenService.updateScreenUrl}`, {\r\n screens: screens,\r\n delete: deleting,\r\n })\r\n );\r\n return true;\r\n } catch {\r\n this.presentToast(false, 'general.phrase.saveFailed');\r\n return false;\r\n }\r\n }\r\n\r\n private presentToast(success: boolean, message: string): void {\r\n const color = success ? UserMessageColor.green : UserMessageColor.red;\r\n const icon = success ? UserMessageIcon.success : UserMessageIcon.failed;\r\n this.userMessageService.presentToast(new UserMessage({ message, icon, durationMs: 2000, position: 'top', color }));\r\n }\r\n\r\n filterScreens(searchTerm: string) {\r\n this.searchTerm$.next(searchTerm);\r\n }\r\n}\r\n","import { Component, OnInit } from '@angular/core';\r\nimport { FormControl, FormGroup, Validators } from '@angular/forms';\r\nimport { ModalController } from '@ionic/angular';\r\nimport { takeUntil } from 'rxjs';\r\nimport { Unsubscriber } from 'src/app/core/unsubscriber';\r\nimport { ScreenSizeService } from 'src/app/core/utils/screen-size.service';\r\nimport { Screen } from 'src/app/media-center/screens/domain/screen.model';\r\nimport { MediaCenterScreenService } from 'src/app/media-center/screens/media-center-screens.service';\r\nimport { UserMessage } from 'src/app/user-message/user-message.model';\r\nimport { UserMessageService } from 'src/app/user-message/user-message.service';\r\nimport { UserMessageColor } from 'src/app/user-message/user-message-color';\r\nimport { UserMessageIcon } from 'src/app/user-message/user-message-icon';\r\n\r\n@Component({\r\n templateUrl: './operatinghour.component.html',\r\n styleUrls: ['./operatinghour.component.scss', '../../media-center-global.scss'],\r\n standalone: false\r\n})\r\nexport class OperatinghourComponent extends Unsubscriber implements OnInit {\r\n screen: Screen;\r\n formGroup: FormGroup;\r\n initStartTime: string;\r\n initEndTime: string;\r\n\r\n readonly bigScreenMode$ = this.screenSizeService.bigScreenMode$;\r\n\r\n private editedScreen: Screen;\r\n\r\n constructor(\r\n private modalCtrl: ModalController,\r\n private userMessageService: UserMessageService,\r\n private screensService: MediaCenterScreenService,\r\n private screenSizeService: ScreenSizeService\r\n ) {\r\n super();\r\n }\r\n\r\n ngOnInit() {\r\n this.editedScreen = JSON.parse(JSON.stringify(this.screen));\r\n\r\n this.formGroup = new FormGroup({\r\n startTime: new FormControl(this.editedScreen?.startTime || '00:00', [Validators.required]),\r\n endTime: new FormControl(this.editedScreen?.endTime || '00:00', [Validators.required]),\r\n continuousOperation: new FormControl(this.editedScreen?.continuousOperation),\r\n });\r\n\r\n if (this.editedScreen?.continuousOperation) {\r\n this.formGroup.controls.startTime.disable({ emitEvent: false });\r\n this.formGroup.controls.endTime.disable({ emitEvent: false });\r\n } else {\r\n this.formGroup.controls.startTime.enable({ emitEvent: false });\r\n this.formGroup.controls.endTime.enable({ emitEvent: false });\r\n }\r\n\r\n this.initStartTime = this.editedScreen.startTime;\r\n this.initEndTime = this.editedScreen.endTime;\r\n\r\n this.formGroup.valueChanges.pipe(takeUntil(this.onDestroy$)).subscribe((value) => {\r\n this.editedScreen.startTime = value.continuousOperation ? '00:00' : value.startTime;\r\n this.editedScreen.endTime = value.continuousOperation ? '00:00' : value.endTime;\r\n });\r\n }\r\n\r\n continuousOperationChanged(event: any): void {\r\n if (event.detail.checked) {\r\n this.formGroup.controls.startTime.setValue('00:00', { emitEvent: false });\r\n this.formGroup.controls.endTime.setValue('00:00', { emitEvent: false });\r\n this.formGroup.controls.startTime.disable({ emitEvent: false });\r\n this.formGroup.controls.endTime.disable({ emitEvent: false });\r\n } else {\r\n this.formGroup.controls.startTime.enable({ emitEvent: false });\r\n this.formGroup.controls.endTime.enable({ emitEvent: false });\r\n this.formGroup.controls.startTime.setValue(this.initStartTime, { emitEvent: false });\r\n this.formGroup.controls.endTime.setValue(this.initEndTime, { emitEvent: false });\r\n }\r\n }\r\n\r\n close() {\r\n this.modalCtrl.dismiss();\r\n }\r\n\r\n async save(): Promise {\r\n this.screen.updating = true;\r\n\r\n try {\r\n await this.screensService.updateScreens([this.editedScreen]);\r\n this.presentToast(true);\r\n this.screen.updating = false;\r\n this.initStartTime = this.editedScreen.startTime;\r\n this.initEndTime = this.editedScreen.endTime;\r\n } catch {\r\n this.screen.updating = false;\r\n this.presentToast(false);\r\n }\r\n\r\n this.close();\r\n }\r\n\r\n private presentToast(success: boolean): void {\r\n const message = success ? 'general.phrase.saved' : 'general.phrase.saveFailed';\r\n const color = success ? UserMessageColor.green : UserMessageColor.red;\r\n const icon = success ? UserMessageIcon.success : UserMessageIcon.failed;\r\n this.userMessageService.presentToast(new UserMessage({ message, icon, durationMs: 2000, position: 'top', color }));\r\n }\r\n}\r\n","\r\n \r\n \r\n {{ this.screen.location }}\r\n \r\n \r\n \r\n\r\n\r\n\r\n \r\n
\r\n \r\n {{ 'mediacenter.term.operatingThroughout' | translate }}: \r\n \r\n \r\n \r\n \r\n \r\n {{ 'mediacenter.term.operatinghour' | translate }}: \r\n \r\n \r\n \r\n bis\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 { ModalController } from '@ionic/angular';\r\nimport { firstValueFrom, switchMap, takeUntil, tap } from 'rxjs';\r\nimport { Unsubscriber } from 'src/app/core/unsubscriber';\r\nimport { ConfirmationDialogService } from 'src/app/core/utils/confirmation-dialog.service';\r\nimport { ScreenSizeService } from 'src/app/core/utils/screen-size.service';\r\nimport { DestinationService } from 'src/app/domain/destination/destination.service';\r\nimport { Feature } from 'src/app/domain/feature/feature.model';\r\nimport { FeatureAccessLevel } from 'src/app/domain/feature/feature-access-level.model';\r\nimport { FeatureId } from 'src/app/domain/feature/feature-id.model';\r\nimport { MediaCenterService } from 'src/app/media-center/media-center.service';\r\nimport { Playlist } from 'src/app/media-center/playlists/domain/playlist.model';\r\nimport { MediaCenterPlaylistsService } from 'src/app/media-center/playlists/media-center-playlists.service';\r\nimport { Screen } from 'src/app/media-center/screens/domain/screen.model';\r\nimport { ScreenGroup } from 'src/app/media-center/screens/domain/screen-group.model';\r\nimport { InfoBannerComponent } from 'src/app/media-center/screens/infobanner-modal/infobanner.component';\r\nimport { MediaCenterScreenService } from 'src/app/media-center/screens/media-center-screens.service';\r\nimport { OperatinghourComponent } from 'src/app/media-center/screens/operatinghour-modal/operatinghour.component';\r\nimport { RemoteAccessService } from 'src/app/remote-access/remote-access.service';\r\nimport { UserMessage } from 'src/app/user-message/user-message.model';\r\nimport { UserMessageService } from 'src/app/user-message/user-message.service';\r\nimport { UserMessageColor } from 'src/app/user-message/user-message-color';\r\nimport { UserMessageIcon } from 'src/app/user-message/user-message-icon';\r\nimport { environment } from 'src/environments/environment';\r\n\r\n\r\n@Component({\r\n selector: 'sis-media-center-screen-group',\r\n templateUrl: './screen-group.component.html',\r\n styleUrls: ['./screen-group.component.scss', '../../media-center-global.scss'],\r\n standalone: false\r\n})\r\nexport class MediaCenterScreenGoupComponent extends Unsubscriber {\r\n readonly bigScreenMode$ = this.screenSizeService.bigScreenMode$;\r\n\r\n screens: Screen[];\r\n screensPlaylist: Playlist[];\r\n playlists: any[];\r\n\r\n\r\n @Input() group: ScreenGroup;\r\n @Input() filter: string;\r\n @Input() infoBannerReadPermission: boolean;\r\n @Input() writePermission: boolean;\r\n @Input() openEditscreen: () => void;\r\n @Input() reorderingEnabled: boolean;\r\n\r\n constructor(\r\n private mediaCenterService: MediaCenterService,\r\n private destinationService: DestinationService,\r\n private userMessageService: UserMessageService,\r\n private screensService: MediaCenterScreenService,\r\n private confirmationDialogService: ConfirmationDialogService,\r\n private screenSizeService: ScreenSizeService,\r\n private remoteAccessService: RemoteAccessService,\r\n private playlistService: MediaCenterPlaylistsService,\r\n private modalCtrl: ModalController\r\n ) {\r\n super();\r\n }\r\n\r\n ngOnInit() {\r\n this.screensService.filteredScreens$\r\n .pipe(\r\n tap((screens) => {\r\n this.screens = screens.filter((screen) =>\r\n screen.groupGuid === this.group.guid || (this.group.guid == null && screen.groupGuid == null)\r\n );\r\n this.screens = this.screens.sort((a, b) => a.order - b.order);\r\n }),\r\n switchMap(() => this.playlistService.playlists$),\r\n takeUntil(this.onDestroy$)\r\n )\r\n .subscribe((playlists) => {\r\n this.playlists = [...playlists.sort((a, b) => a.name.localeCompare(b.name))];\r\n this.playlists.unshift({ guid: null, name: '' });\r\n });\r\n }\r\n\r\n\r\n doReorder(ev: any) {\r\n ev.detail.complete(this.screens);\r\n this.screens.forEach((item, index) => (item.order = index));\r\n }\r\n\r\n async deleteScreen(screen: Screen): Promise {\r\n if (!this.writePermission) {\r\n return;\r\n }\r\n\r\n const confirmed = await this.confirmationDialogService.presentAlert('mediacenter.phrase.deleteScreen', 'mediacenter.term.delete');\r\n if (confirmed) {\r\n screen.updating = true;\r\n await this.screensService.deleteScreen(screen);\r\n screen.updating = false;\r\n }\r\n }\r\n\r\n async openSlideShowPreview(screenLabel: string, screenWidth: number, screenHeight: number, previewUrl: string | null): Promise {\r\n await this.mediaCenterService.openSlideShowScreenPreview(screenLabel, screenWidth, screenHeight, previewUrl);\r\n }\r\n\r\n async copyUrl(screenLabel: string, previewUrl: string | null): Promise {\r\n const tenant = await firstValueFrom(this.destinationService.selectedTenant$);\r\n const url = previewUrl || (tenant ? `${environment.slideshowPlayerWebApp}/slideshow/${tenant.sisId}/screen/${screenLabel}` : undefined);\r\n\r\n navigator.clipboard.writeText(url);\r\n const toast = await this.userMessageService.createSingleToast(\r\n new UserMessage({\r\n message: 'mediacenter.phrase.copiedToClipboard',\r\n icon: UserMessageIcon.info,\r\n durationMs: 2000,\r\n position: 'top',\r\n color: UserMessageColor.white,\r\n })\r\n );\r\n await toast.present();\r\n }\r\n\r\n async openOperatinghourModal(screen?: Screen): Promise {\r\n if (!this.writePermission) {\r\n return;\r\n }\r\n\r\n const modal = await this.modalCtrl.create({\r\n component: OperatinghourComponent,\r\n cssClass: 'sis-operatinghour-modal',\r\n backdropDismiss: false,\r\n componentProps: {\r\n screen,\r\n },\r\n });\r\n await modal.present();\r\n }\r\n\r\n async openInfoBannerModal(screen: Screen): Promise {\r\n const modal = await this.modalCtrl.create({\r\n component: InfoBannerComponent,\r\n cssClass: 'sis-infobanner-modal',\r\n backdropDismiss: false,\r\n componentProps: {\r\n screen: screen,\r\n },\r\n });\r\n await modal.present();\r\n }\r\n\r\n async openRemoteAccess(screen: Screen): Promise {\r\n await this.remoteAccessService.openSession(screen.remoteAccess, new Feature(FeatureId.SISMEDIA_MEDIACENTER, FeatureAccessLevel.WRITE));\r\n }\r\n\r\n itemId(_: number, screen: Screen): string {\r\n return screen.guid;\r\n }\r\n\r\n async selectPlaylist(playlistGuid: string, screen: Screen): Promise {\r\n screen.playlistGuid = playlistGuid;\r\n\r\n await this.screensService.updateScreens([screen]);\r\n }\r\n}\r\n","\r\n {{ group.name }}\r\n\r\n\r\n\r\n\r\n \r\n \r\n \r\n \r\n \r\n {{ screen.location }}\r\n {{\r\n screen.screenTypeName\r\n }}
\r\n {{ screen.label }}\r\n
\r\n \r\n {{ screen.screenWidth }}x{{ screen.screenHeight }}\r\n -\r\n \r\n \r\n \r\n {{\r\n item?.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 \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 {{ screen.location }}\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, OnInit, ViewChild } from '@angular/core';\r\nimport { AbstractControl, FormControl, FormGroup, ValidationErrors, ValidatorFn, Validators } from '@angular/forms';\r\nimport { MatAutocompleteTrigger } from '@angular/material/autocomplete';\r\nimport { MatOption } from '@angular/material/core';\r\nimport { ModalController } from '@ionic/angular';\r\nimport { takeUntil } from 'rxjs/operators';\r\nimport { Unsubscriber } from 'src/app/core/unsubscriber';\r\nimport { ScreenSizeService } from 'src/app/core/utils/screen-size.service';\r\nimport { DestinationService } from 'src/app/domain/destination/destination.service';\r\nimport { FeatureAccessLevel } from 'src/app/domain/feature/feature-access-level.model';\r\nimport { FeatureId } from 'src/app/domain/feature/feature-id.model';\r\nimport { UserSettingsService } from 'src/app/domain/user-settings/user-settings.service';\r\nimport { Playlist } from 'src/app/media-center/playlists/domain/playlist.model';\r\nimport { MediaCenterPlaylistsService } from 'src/app/media-center/playlists/media-center-playlists.service';\r\nimport { Screen } from 'src/app/media-center/screens/domain/screen.model';\r\nimport { ScreenGroup } from 'src/app/media-center/screens/domain/screen-group.model';\r\nimport { ScreenType } from 'src/app/media-center/screens/domain/screen-type.model';\r\nimport { MediaCenterScreenService } from 'src/app/media-center/screens/media-center-screens.service';\r\nimport { UserMessage } from 'src/app/user-message/user-message.model';\r\nimport { UserMessageService } from 'src/app/user-message/user-message.service';\r\nimport { UserMessageColor } from 'src/app/user-message/user-message-color';\r\nimport { UserMessageIcon } from 'src/app/user-message/user-message-icon';\r\n\r\n@Component({\r\n templateUrl: './screeneditor.component.html',\r\n styleUrls: ['./screeneditor.component.scss', '../../media-center-global.scss'],\r\n standalone: false\r\n})\r\nexport class ScreeneditorComponent extends Unsubscriber implements OnInit {\r\n @ViewChild(MatAutocompleteTrigger) private autocompleteTrigger: MatAutocompleteTrigger;\r\n\r\n readonly bigScreenMode$ = this.screenSizeService.bigScreenMode$;\r\n\r\n screen: Screen;\r\n formGroup: FormGroup;\r\n allScreenLabels: string[];\r\n allScreenNames: string[];\r\n playlistsFiltered: Playlist[];\r\n groupsFiltered: ScreenGroup[];\r\n screenTypesFiltered: ScreenType[];\r\n showInfoBannerAllowedCheckbox: boolean = false;\r\n isNewScreen: boolean = false;\r\n\r\n private editedScreen: Screen;\r\n private infoBannerFeatureAccessLevel: FeatureAccessLevel;\r\n private playlists: Playlist[];\r\n private screens: Screen[];\r\n private groups: ScreenGroup[];\r\n private screenTypes: ScreenType[];\r\n\r\n constructor(\r\n private modalCtrl: ModalController,\r\n private userMessageService: UserMessageService,\r\n private screensService: MediaCenterScreenService,\r\n private userSettingsService: UserSettingsService,\r\n private playlistService: MediaCenterPlaylistsService,\r\n private screenSizeService: ScreenSizeService,\r\n private destinationService: DestinationService\r\n ) {\r\n super();\r\n }\r\n\r\n ngOnInit() {\r\n this.editedScreen = JSON.parse(JSON.stringify(this.screen));\r\n this.isNewScreen = this.screen.location == null;\r\n\r\n this.screensService.screens$.pipe(takeUntil(this.onDestroy$)).subscribe((screens) => {\r\n this.screens = screens;\r\n });\r\n\r\n this.formGroup = new FormGroup({\r\n location: new FormControl(this.editedScreen?.location, [\r\n Validators.required,\r\n Validators.pattern('^[a-zA-Z0-9äÄöÖüÜ\\\\s-&+()_]*$'),\r\n Validators.minLength(2),\r\n this.validate('location'),\r\n ]),\r\n label: new FormControl(this.editedScreen?.label, [\r\n Validators.required,\r\n Validators.pattern('^[a-zA-Z0-9\\\\-]*$'),\r\n this.validate('label'),\r\n ]),\r\n screenHeight: new FormControl(this.editedScreen?.screenHeight || null, [\r\n Validators.pattern('^\\\\d+$'),\r\n Validators.required,\r\n ]),\r\n screenWidth: new FormControl(this.editedScreen?.screenWidth || null, [\r\n Validators.pattern('^\\\\d+$'),\r\n Validators.required,\r\n ]),\r\n slideshowWidth: new FormControl(\r\n {\r\n value: this.editedScreen.slideshowWidth,\r\n disabled: this.editedScreen.previewUrl != null,\r\n },\r\n [Validators.pattern('^\\\\d+$'), Validators.required]\r\n ),\r\n slideshowHeight: new FormControl(\r\n {\r\n value: this.editedScreen.slideshowHeight,\r\n disabled: this.editedScreen.previewUrl != null,\r\n },\r\n [Validators.pattern('^\\\\d+$'), Validators.required]\r\n ),\r\n ip: new FormControl(this.editedScreen?.ip || null, [\r\n Validators.pattern(/^((25[0-5]|(2[0-4]|1\\d|[1-9]|)\\d)\\.?\\b){4}$/),\r\n ]),\r\n group: new FormControl(null),\r\n previewUrl: new FormControl(this.editedScreen?.previewUrl !== '' ? this.editedScreen?.previewUrl : null, [\r\n Validators.pattern(/^(https?:\\/\\/)([\\w-]+\\.)+[\\w-]+(\\/[\\w-./?%&=+]*)?(#.*)?$/),\r\n ]),\r\n playlist: new FormControl(null),\r\n screenType: new FormControl(null),\r\n infoBannerAllowed: new FormControl(this.editedScreen?.infoBannerAllowed),\r\n });\r\n\r\n this.formGroup.controls['previewUrl'].valueChanges.pipe(takeUntil(this.onDestroy$)).subscribe((previewUrl) => {\r\n if (!previewUrl) {\r\n this.formGroup.controls['slideshowWidth'].disable({ emitEvent: false });\r\n this.formGroup.controls['slideshowHeight'].disable({ emitEvent: false });\r\n this.formGroup.controls['slideshowWidth'].setValue(this.editedScreen.screenWidth, { emitEvent: false });\r\n this.formGroup.controls['slideshowHeight'].setValue(this.editedScreen.screenHeight, { emitEvent: false });\r\n this.formGroup.controls['previewUrl'].setValue(null, { emitEvent: false });\r\n } else {\r\n this.formGroup.controls['slideshowWidth'].enable({ emitEvent: false });\r\n this.formGroup.controls['slideshowHeight'].enable({ emitEvent: false });\r\n this.formGroup.controls['slideshowWidth'].setValue(this.editedScreen.slideshowWidth, { emitEvent: false });\r\n this.formGroup.controls['slideshowHeight'].setValue(this.editedScreen.slideshowHeight, { emitEvent: false });\r\n }\r\n });\r\n\r\n this.userSettingsService.userSettings$.pipe(takeUntil(this.onDestroy$)).subscribe((userSettings) => {\r\n if (!userSettings.isAdministrator && !this.isNewScreen) {\r\n this.formGroup.controls['label'].disable({ emitEvent: false });\r\n }\r\n });\r\n\r\n if (!this.formGroup.controls['previewUrl'].value) {\r\n this.formGroup.controls['slideshowWidth'].disable({ emitEvent: false });\r\n this.formGroup.controls['slideshowHeight'].disable({ emitEvent: false });\r\n this.formGroup.controls['slideshowWidth'].setValue(this.editedScreen.screenWidth, { emitEvent: false });\r\n this.formGroup.controls['slideshowHeight'].setValue(this.editedScreen.screenHeight, { emitEvent: false });\r\n this.formGroup.controls['previewUrl'].setValue(null);\r\n } else {\r\n this.formGroup.controls['slideshowWidth'].enable({ emitEvent: false });\r\n this.formGroup.controls['slideshowHeight'].enable({ emitEvent: false });\r\n this.formGroup.controls['slideshowWidth'].setValue(this.editedScreen.slideshowWidth, { emitEvent: false });\r\n this.formGroup.controls['slideshowHeight'].setValue(this.editedScreen.slideshowHeight, { emitEvent: false });\r\n }\r\n\r\n this.playlistService.playlists$.pipe(takeUntil(this.onDestroy$)).subscribe((playlists) => {\r\n this.playlists = playlists.sort((a, b) => a.name.localeCompare(b.name));\r\n this.playlistsFiltered = this.playlists;\r\n\r\n this.formGroup?.controls['playlist'].setValue(\r\n this.playlists.find((p) => p.guid === this.editedScreen?.playlistGuid),\r\n { emitEvent: false }\r\n );\r\n });\r\n\r\n this.screensService.screenGroups$.pipe(takeUntil(this.onDestroy$)).subscribe((groups) => {\r\n this.groups = groups.sort((a, b) => a.order - b.order);\r\n this.groupsFiltered = this.groups;\r\n\r\n this.formGroup?.controls['group'].setValue(\r\n this.groups.find((g) => g.guid === this.editedScreen?.groupGuid),\r\n { emitEvent: false }\r\n );\r\n });\r\n\r\n this.screensService.screenTypes$.pipe(takeUntil(this.onDestroy$)).subscribe((screenTypes) => {\r\n this.screenTypes = screenTypes.sort((a, b) => a.type.localeCompare(b.type));\r\n this.screenTypesFiltered = this.screenTypes;\r\n\r\n this.formGroup?.controls['screenType'].setValue(\r\n this.screenTypes.find((st) => st.id === this.editedScreen?.type),\r\n { emitEvent: false }\r\n );\r\n });\r\n\r\n this.destinationService.selectedTenantFeatures$.pipe(takeUntil(this.onDestroy$)).subscribe((features) => {\r\n this.infoBannerFeatureAccessLevel =\r\n features.find((feature) => feature.featureId === FeatureId.SISMEDIA_MEDIACENTER_INFOBANNER)\r\n ?.featureAccessLevel ?? FeatureAccessLevel.NONE;\r\n this.showInfoBannerAllowedCheckbox = this.infoBannerFeatureAccessLevel > FeatureAccessLevel.NONE;\r\n\r\n this.infoBannerFeatureAccessLevel === FeatureAccessLevel.READ\r\n ? this.formGroup.controls['infoBannerAllowed'].disable({ emitEvent: false })\r\n : this.formGroup.controls['infoBannerAllowed'].enable({ emitEvent: false });\r\n });\r\n\r\n this.formGroup.valueChanges.pipe(takeUntil(this.onDestroy$)).subscribe((value) => {\r\n if (value.label != null && value.label !== '') {\r\n this.editedScreen.label = value.label;\r\n }\r\n\r\n this.editedScreen.location = value.location;\r\n this.editedScreen.screenHeight = value.screenHeight;\r\n this.editedScreen.screenWidth = value.screenWidth;\r\n\r\n if (this.editedScreen.previewUrl == null || this.editedScreen.previewUrl == '') {\r\n this.editedScreen.slideshowHeight = value.screenHeight;\r\n this.editedScreen.slideshowWidth = value.screenWidth;\r\n } else {\r\n this.editedScreen.slideshowWidth = value.slideshowWidth;\r\n this.editedScreen.slideshowHeight = value.slideshowHeight;\r\n }\r\n\r\n if (this.editedScreen.slideshowHeight == 0 && this.editedScreen.slideshowWidth == 0) {\r\n this.editedScreen.slideshowHeight = this.editedScreen.screenHeight;\r\n this.editedScreen.slideshowWidth = this.editedScreen.screenWidth;\r\n }\r\n\r\n this.editedScreen.ip = value.ip;\r\n this.editedScreen.playlistGuid = value.playlist?.guid;\r\n this.editedScreen.playlistName = value.playlist?.name;\r\n this.editedScreen.groupGuid = value.group?.guid;\r\n this.editedScreen.previewUrl = value.previewUrl;\r\n this.editedScreen.type = value.screenType?.id;\r\n this.editedScreen.infoBannerAllowed = value.infoBannerAllowed;\r\n });\r\n }\r\n\r\n private validate(property: string): ValidatorFn {\r\n return (control: AbstractControl): ValidationErrors | null => {\r\n const invalid = this.screens.some(\r\n (s) => s.guid !== this.screen.guid && s[property]?.toLocaleLowerCase() === control?.value?.toLocaleLowerCase()\r\n );\r\n\r\n return invalid ? { tooltip: 'mediacenter.phrase.duplicateName' } : null;\r\n };\r\n }\r\n\r\n selectPlaylist(event: { option: MatOption; source: MatOption }) {\r\n if (event.option.selected) {\r\n this.playlistsFiltered = this.playlists;\r\n }\r\n }\r\n\r\n selectGroup(event: { option: MatOption; source: MatOption }) {\r\n if (event.option.selected) {\r\n this.groupsFiltered = this.groups;\r\n }\r\n }\r\n\r\n selectScreenType(event: { option: MatOption; source: MatOption }) {\r\n if (event.option.selected) {\r\n this.screenTypesFiltered = this.screenTypes;\r\n }\r\n }\r\n\r\n close() {\r\n this.modalCtrl.dismiss();\r\n }\r\n\r\n async save(): Promise {\r\n if (\r\n this.allScreenLabels?.includes(this.formGroup.value.label) ||\r\n this.allScreenNames?.includes(this.formGroup.value.location)\r\n ) {\r\n return this.userMessageService.presentToast(\r\n new UserMessage({\r\n message: 'mediacenter.phrase.labelExists',\r\n icon: UserMessageIcon.failed,\r\n durationMs: 4000,\r\n position: 'top',\r\n color: UserMessageColor.red,\r\n })\r\n );\r\n }\r\n this.screen.updating = true;\r\n\r\n if (!this.editedScreen.startTime) {\r\n this.editedScreen.startTime = '00:00:00';\r\n }\r\n\r\n if (!this.editedScreen.endTime) {\r\n this.editedScreen.endTime = '00:00:00';\r\n }\r\n\r\n if (await this.screensService.updateScreens([this.editedScreen])) {\r\n this.close();\r\n }\r\n this.screen.updating = false;\r\n }\r\n\r\n updateFilter(filterString: string, controlName: 'playlist' | 'group' | 'screenType'): void {\r\n if (typeof filterString === 'string') {\r\n if (controlName === 'playlist') {\r\n this.playlistsFiltered = this.playlists.filter((p) =>\r\n p.name.toLocaleLowerCase().includes(filterString?.toLocaleLowerCase())\r\n );\r\n }\r\n\r\n if (controlName === 'group') {\r\n this.groupsFiltered = this.groups.filter((g) =>\r\n g.name?.toLocaleLowerCase().includes(filterString?.toLocaleLowerCase())\r\n );\r\n }\r\n\r\n if (controlName === 'screenType') {\r\n this.screenTypesFiltered = this.screenTypes.filter((st) =>\r\n st.type?.toLocaleLowerCase().includes(filterString?.toLocaleLowerCase())\r\n );\r\n }\r\n\r\n if (filterString === '') {\r\n this.removeSelection(controlName);\r\n }\r\n }\r\n }\r\n\r\n removeSelection(controlName: 'playlist' | 'group' | 'screenType'): void {\r\n this.autocompleteTrigger.autocomplete.options.forEach((o) => o.deselect());\r\n this.formGroup.controls[controlName].setValue(null);\r\n this.formGroup.markAsDirty();\r\n }\r\n\r\n formatInputValue(inputValue: Playlist | ScreenGroup | ScreenType): string {\r\n if (inputValue == null) {\r\n return '';\r\n }\r\n\r\n if ('name' in inputValue) {\r\n return inputValue.name;\r\n } else if ('type' in inputValue) {\r\n return inputValue.type;\r\n }\r\n\r\n return '';\r\n }\r\n}\r\n","\r\n \r\n \r\n \r\n {{ this.isNewScreen ? ('mediacenter.phrase.newScreen' | translate) : this.screen.location }}\r\n \r\n \r\n \r\n\r\n\r\n\r\n \r\n
\r\n \r\n {{ 'general.term.name' | translate }}: \r\n \r\n \r\n \r\n \r\n \r\n {{ 'mediacenter.term.label' | translate }}: \r\n \r\n \r\n \r\n \r\n \r\n {{ 'mediacenter.term.screenSize' | translate }}: \r\n \r\n \r\n \r\n x\r\n \r\n \r\n \r\n \r\n\r\n \r\n {{ 'mediacenter.term.slideshowSize' | translate }}: \r\n \r\n \r\n \r\n x\r\n \r\n \r\n \r\n \r\n\r\n \r\n {{ 'IPv4' | translate }}: \r\n \r\n \r\n \r\n \r\n \r\n {{ 'mediacenter.term.group' | translate }}:\r\n \r\n \r\n \r\n \r\n {{ group.name }}\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n {{ 'mediacenter.term.playlist' | translate }}:\r\n \r\n \r\n \r\n \r\n {{ playlist.name }}\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n {{ 'mediacenter.term.previewUrl' | translate }}: \r\n \r\n \r\n \r\n \r\n \r\n {{ 'mediacenter.term.screen.type' | translate }}:\r\n \r\n \r\n \r\n \r\n {{ screenType.type }}\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n {{ 'mediacenter.term.infoBannerAllowed' | translate }}:\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 { Slide } from 'src/app/media-center/slides/domain/slide.model';\r\n\r\nexport class SlideAdapter {\r\n static adapt(items: any): Slide[] {\r\n const result: Slide[] = [];\r\n\r\n if (items) {\r\n items.forEach((e: any) => {\r\n const slide = new Slide({\r\n guid: e.guid,\r\n name: e.slideName,\r\n filePath: e.filePath,\r\n url: e.url,\r\n fileType: e.fileType,\r\n duration: e.duration ? e.duration : 0,\r\n canEdit: e.canEdit,\r\n startDate: e.startDate,\r\n endDate: e.endDate,\r\n startTime: e.startTime ?? '00:00',\r\n endTime: e.endTime ?? '23:59',\r\n enabled: e.enabled,\r\n timeControlEnabled: e.timeControlEnabled,\r\n mon: e.mon,\r\n tue: e.tue,\r\n wed: e.wed,\r\n thu: e.thu,\r\n fri: e.fri,\r\n sat: e.sat,\r\n sun: e.sun,\r\n });\r\n\r\n slide.thumbnailUrl = e.thumbnailUrl;\r\n\r\n result.push(slide);\r\n });\r\n }\r\n\r\n return result;\r\n }\r\n}\r\n","import { WritablePart } from 'src/app/core/utils/type-helper';\r\n\r\nexport class Slide {\r\n static readonly daysArray: string[] = ['mon', 'tue', 'wed', 'thu', 'fri', 'sat', 'sun'];\r\n private internalThumbnailUrl: string;\r\n\r\n guid: string;\r\n name: string;\r\n filePath: string;\r\n data: string;\r\n url: string;\r\n fileType: string;\r\n duration: number;\r\n canEdit: boolean;\r\n timeControlEnabled: boolean;\r\n mon: boolean;\r\n tue: boolean;\r\n wed: boolean;\r\n thu: boolean;\r\n fri: boolean;\r\n sat: boolean;\r\n sun: boolean;\r\n startDate: string;\r\n endDate: string;\r\n startTime: string;\r\n endTime: string;\r\n enabled: boolean;\r\n thumbnail: string;\r\n deleted: boolean;\r\n updating: boolean;\r\n inPlaylist: boolean;\r\n\r\n disabledByTimeControl: boolean;\r\n\r\n static areSlidesEqual(s1: Slide, s2: Slide): boolean {\r\n for (const key of Object.keys(s1)) {\r\n if (s2[key] !== s1[key] && key !== 'disabledByTimeControl' && key !== 'daysArray') {\r\n return false;\r\n }\r\n }\r\n return true;\r\n }\r\n\r\n set thumbnailUrl(thumbnailUrl: string) {\r\n this.internalThumbnailUrl = thumbnailUrl;\r\n\r\n if (this.fileType === 'video') {\r\n this.thumbnail = 'assets/images/video-dummy-large.svg';\r\n return;\r\n }\r\n\r\n if (thumbnailUrl === null) {\r\n this.thumbnail = 'assets/images/image-dummy-large.svg';\r\n return;\r\n }\r\n\r\n this.thumbnail = thumbnailUrl;\r\n }\r\n\r\n get thumbnailUrl() {\r\n return this.internalThumbnailUrl;\r\n }\r\n\r\n constructor(init?: Partial>) {\r\n Object.assign(this, init);\r\n }\r\n}\r\n","import { Component, OnInit } from '@angular/core';\r\nimport { FormControl } from '@angular/forms';\r\nimport { ActivatedRoute, Router } from '@angular/router';\r\nimport { ModalController } from '@ionic/angular';\r\nimport { TranslateService } from '@ngx-translate/core';\r\nimport { Subject } from 'rxjs';\r\nimport { debounceTime, takeUntil } from 'rxjs/operators';\r\nimport { LogbookModalService } from 'src/app/core/components/logbook/logbook-modal/logbook-modal.service';\r\nimport { Unsubscriber } from 'src/app/core/unsubscriber';\r\nimport { ScreenSizeService } from 'src/app/core/utils/screen-size.service';\r\nimport { DestinationService } from 'src/app/domain/destination/destination.service';\r\nimport { Feature } from 'src/app/domain/feature/feature.model';\r\nimport { FeatureAccessLevel } from 'src/app/domain/feature/feature-access-level.model';\r\nimport { FeatureId } from 'src/app/domain/feature/feature-id.model';\r\nimport { SisRoute } from 'src/app/domain/sis-route.model';\r\nimport { CKEditorQueryParams } from 'src/app/media-center/ckeditor/ckeditor-queryparams.model';\r\nimport { MediaCenterQueryParams } from 'src/app/media-center/domain/mediacenter-queryparams.model';\r\nimport { Screen } from 'src/app/media-center/screens/domain/screen.model';\r\nimport { Slide } from 'src/app/media-center/slides/domain/slide.model';\r\nimport { MediaCenterSlidesService } from 'src/app/media-center/slides/media-center-slides.service';\r\nimport { TimeControlModalComponent } from 'src/app/media-center/slides/time-control-modal/time-control-modal.component';\r\nimport { UserMessage } from 'src/app/user-message/user-message.model';\r\nimport { UserMessageService } from 'src/app/user-message/user-message.service';\r\nimport { UserMessageColor } from 'src/app/user-message/user-message-color';\r\nimport { UserMessageIcon } from 'src/app/user-message/user-message-icon';\r\n\r\n@Component({\r\n selector: 'sis-media-center-slides',\r\n templateUrl: './media-center-slides.component.html',\r\n styleUrls: ['./media-center-slides.component.scss', '../media-center-global.scss'],\r\n standalone: false\r\n})\r\nexport class MediaCenterSlidesComponent extends Unsubscriber implements OnInit {\r\n private readonly inputValuesChanged$ = new Subject();\r\n readonly logbookAvailable$ = this.logbookModalService.logbookAvailable$;\r\n\r\n searchControl = new FormControl('');\r\n slides: Slide[];\r\n slidesFiltered: Slide[];\r\n searching = false;\r\n searchTerm: string;\r\n writePermission: boolean;\r\n readPermission: boolean;\r\n bigScreenMode: boolean;\r\n selectedActivity: string = 'all';\r\n selectedType: string = 'all';\r\n rerender: boolean = false;\r\n\r\n daysArray: string[] = ['sun', 'mon', 'tue', 'wed', 'thu', 'fri', 'sat'];\r\n\r\n private queryParams: MediaCenterQueryParams;\r\n\r\n constructor(\r\n private router: Router,\r\n private activatedRoute: ActivatedRoute,\r\n private screenSizeService: ScreenSizeService,\r\n private userMessageService: UserMessageService,\r\n private destinationService: DestinationService,\r\n private slidesService: MediaCenterSlidesService,\r\n private translateService: TranslateService,\r\n private modalCtrl: ModalController,\r\n private logbookModalService: LogbookModalService\r\n ) {\r\n super();\r\n }\r\n\r\n ngOnInit() {\r\n this.screenSizeService.bigScreenMode$\r\n .pipe(takeUntil(this.onDestroy$))\r\n .subscribe((bigScreenMode) => (this.bigScreenMode = bigScreenMode));\r\n\r\n this.slidesService.slides$.pipe(takeUntil(this.onDestroy$)).subscribe((slides) => {\r\n this.slides = [...slides.sort((a, b) => a.name?.localeCompare(b.name))];\r\n this.filterSlides();\r\n });\r\n\r\n this.inputValuesChanged$.pipe(takeUntil(this.onDestroy$), debounceTime(1000)).subscribe((updatedFileSettings) => {\r\n this.saveSlideUpdate(updatedFileSettings);\r\n });\r\n\r\n this.searchControl.valueChanges.pipe(debounceTime(300), takeUntil(this.onDestroy$)).subscribe((search: string) => {\r\n this.searching = false;\r\n this.updateQueryParam('slideSearch', search?.toLowerCase());\r\n });\r\n\r\n this.destinationService.selectedTenantFeatures$.pipe(takeUntil(this.onDestroy$)).subscribe((features) => {\r\n this.writePermission = features.some((f) =>\r\n f.hasMinimumRequirementFor(new Feature(FeatureId.SISMEDIA_MEDIACENTER, FeatureAccessLevel.WRITE))\r\n );\r\n this.readPermission = features.some((f) =>\r\n f.hasMinimumRequirementFor(new Feature(FeatureId.SISMEDIA_MEDIACENTER, FeatureAccessLevel.READ))\r\n );\r\n });\r\n\r\n this.translateService.onLangChange.pipe(takeUntil(this.onDestroy$)).subscribe(() => {\r\n this.rerender = true;\r\n setTimeout(() => {\r\n this.rerender = false;\r\n }, 50);\r\n });\r\n\r\n this.activatedRoute.queryParams.pipe(takeUntil(this.onDestroy$)).subscribe((params) => {\r\n this.queryParams = params as MediaCenterQueryParams;\r\n this.searchTerm = this.queryParams.slideSearch?.toLowerCase();\r\n this.selectedType = this.queryParams.type ?? 'all';\r\n this.selectedActivity = this.queryParams.active ?? 'all';\r\n\r\n if (this.searchControl.value !== this.searchTerm) {\r\n this.searchControl.setValue(this.searchTerm);\r\n }\r\n\r\n this.filterSlides();\r\n });\r\n }\r\n\r\n deleteSlide(slide: Slide) {\r\n this.slidesService.deleteSlide(slide);\r\n }\r\n\r\n openEditor(slideGuid: string) {\r\n if (!this.writePermission) {\r\n return;\r\n }\r\n\r\n if (this.bigScreenMode) {\r\n const queryParams: CKEditorQueryParams = {};\r\n\r\n Object.assign(queryParams, this.queryParams);\r\n\r\n if (slideGuid) {\r\n queryParams.slide = slideGuid;\r\n }\r\n\r\n this.router.navigate([SisRoute.EDITOR], { relativeTo: this.activatedRoute.parent, queryParams });\r\n } else {\r\n this.userMessageService.presentToast(\r\n new UserMessage({\r\n message: 'mediacenter.phrase.notAvailableOnMobile',\r\n icon: UserMessageIcon.info,\r\n durationMs: 1000,\r\n position: 'top',\r\n color: UserMessageColor.blue,\r\n })\r\n );\r\n }\r\n }\r\n\r\n async openTimeControlModal(slide: Slide) {\r\n const modal = await this.modalCtrl.create({\r\n component: TimeControlModalComponent,\r\n componentProps: {\r\n slide: slide,\r\n },\r\n cssClass: 'sis-time-control-modal',\r\n backdropDismiss: false,\r\n });\r\n\r\n return modal.present();\r\n }\r\n\r\n async openLogbook(): Promise {\r\n await this.logbookModalService.presentLogbookModal([[FeatureId.SISMEDIA_MEDIACENTER]]);\r\n }\r\n\r\n durationInput(event: any, slide: Slide): void {\r\n const duration = Number.parseInt(event.target.value, 10);\r\n\r\n if (this.writePermission && duration && !Number.isNaN(duration) && duration >= 0 && duration !== slide.duration) {\r\n slide.duration = duration;\r\n this.inputValuesChanged$.next(slide);\r\n }\r\n }\r\n\r\n enabledInput(event: any, slide: Slide): void {\r\n if (this.writePermission) {\r\n const enabled = !event.target.checked;\r\n\r\n slide.enabled = enabled;\r\n\r\n this.saveSlideUpdate(slide);\r\n }\r\n }\r\n\r\n compareWith(s1: Screen, s2: Screen): boolean {\r\n return s1 && s2 ? s1.label === s2.label : s1 === s2;\r\n }\r\n\r\n itemId(_: number, slide: Slide): string {\r\n return slide.url;\r\n }\r\n\r\n openInNewTab(url: string): void {\r\n const separator = url.includes('?') ? '&' : '?';\r\n window.open(`${url}${separator}${Math.round(Math.random() * 10000)}`, '_blank');\r\n }\r\n\r\n updateQueryParam(param: string, value: any) {\r\n this.router.navigate([], {\r\n relativeTo: this.activatedRoute,\r\n queryParams: { [param]: value },\r\n queryParamsHandling: 'merge',\r\n replaceUrl: true,\r\n });\r\n }\r\n\r\n private saveSlideUpdate(updatedSlide: Slide): void {\r\n if (updatedSlide && this.writePermission) {\r\n updatedSlide.updating = true;\r\n this.slidesService.updateSlide(updatedSlide);\r\n }\r\n }\r\n\r\n private filterSlides(): void {\r\n let filteredSlides = this.slides;\r\n\r\n if (this.searchTerm) {\r\n filteredSlides = this.slides.filter((d) => d.name.toLowerCase().includes(this.searchTerm));\r\n }\r\n\r\n if (this.selectedActivity === 'active') {\r\n filteredSlides = filteredSlides.filter((p) => p.enabled);\r\n } else if (this.selectedActivity === 'inactive') {\r\n filteredSlides = filteredSlides.filter((p) => !p.enabled);\r\n }\r\n\r\n if (this.selectedType === 'html') {\r\n filteredSlides = filteredSlides.filter((p) => p.fileType == 'html');\r\n } else if (this.selectedType === 'video') {\r\n filteredSlides = filteredSlides.filter((p) => p.fileType == 'video');\r\n } else if (this.selectedType === 'dynamic') {\r\n filteredSlides = filteredSlides.filter((p) => p.fileType == 'dynamic');\r\n }\r\n\r\n this.slidesFiltered = filteredSlides;\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 {{ 'mediacenter.term.all' | translate }}\r\n {{ 'mediacenter.term.active' | translate }}\r\n {{ 'mediacenter.term.inactive' | translate }}\r\n \r\n \r\n {{ 'general.term.thumbnail' | translate }}\r\n {{ 'general.term.name' | translate }}\r\n \r\n \r\n {{ 'mediacenter.term.all' | translate }}\r\n html\r\n video\r\n dynamic\r\n \r\n \r\n {{ 'mediacenter.term.timeControl' | translate }}\r\n {{ 'mediacenter.term.displayDuration' | translate }}\r\n {{\r\n 'general.term.edit' | translate\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 {{ slide.name }}\r\n \r\n \r\n {{ slide.fileType }}\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n

\r\n = 48 && event.charCode <= 57\"\r\n (keyup)=\"durationInput($event, slide)\"\r\n [disabled]=\"slide.updating || !this.writePermission\"\r\n />\r\n s\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 {{ slide.name }}\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n {{ 'mediacenter.term.active' | translate }}\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n {{ 'mediacenter.term.displayDuration' | translate }}\r\n \r\n \r\n

\r\n = 48 && event.charCode <= 57\"\r\n (keyup)=\"durationInput($event, slide)\"\r\n [disabled]=\"slide.updating || !this.writePermission\"\r\n />\r\n s\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 { HttpClient } from '@angular/common/http';\r\nimport { Injectable } from '@angular/core';\r\nimport { NavigationEnd, Router } from '@angular/router';\r\nimport moment from 'moment-timezone';\r\nimport { firstValueFrom, merge, NEVER, Observable, of, timer } from 'rxjs';\r\nimport { distinctUntilChanged, filter, map, shareReplay, switchMap, withLatestFrom } from 'rxjs/operators';\r\nimport { EventBusService } from 'src/app/core/eventbus/event-bus.service';\r\nimport { MediaCenterSlideUpdatedEvent, MediaCenterThumbnailUpdatedEvent } from 'src/app/core/eventbus/events';\r\nimport { ConfirmationDialogService } from 'src/app/core/utils/confirmation-dialog.service';\r\nimport { DestinationService } from 'src/app/domain/destination/destination.service';\r\nimport { Feature } from 'src/app/domain/feature/feature.model';\r\nimport { FeatureAccessLevel } from 'src/app/domain/feature/feature-access-level.model';\r\nimport { FeatureId } from 'src/app/domain/feature/feature-id.model';\r\nimport { SisRoute } from 'src/app/domain/sis-route.model';\r\nimport { UserSettingsService } from 'src/app/domain/user-settings/user-settings.service';\r\nimport { SlideAdapter } from 'src/app/media-center/slides/domain/slide.adapter';\r\nimport { Slide } from 'src/app/media-center/slides/domain/slide.model';\r\nimport { UserMessage } from 'src/app/user-message/user-message.model';\r\nimport { UserMessageService } from 'src/app/user-message/user-message.service';\r\nimport { UserMessageColor } from 'src/app/user-message/user-message-color';\r\nimport { UserMessageIcon } from 'src/app/user-message/user-message-icon';\r\nimport { environment } from 'src/environments/environment';\r\nimport { findIana } from 'windows-iana';\r\n\r\n@Injectable({\r\n providedIn: 'root',\r\n})\r\nexport class MediaCenterSlidesService {\r\n private static readonly requestSlidesUrl = '/mediacenter/slides';\r\n private static readonly settingsSlideUrl = '/mediacenter/slide/settings';\r\n private static readonly uploadSlideUrl = '/mediacenter/slide/upload';\r\n private static readonly deleteSlideUrl = '/mediacenter/slide/delete';\r\n\r\n private readonly requiredFeature = new Feature(FeatureId.SISMEDIA_MEDIACENTER, FeatureAccessLevel.READ);\r\n\r\n private readonly slidesRequest$: Observable = this.destinationService.selectedTenantFeatures$.pipe(\r\n filter((features) => features.some((feature) => feature.hasMinimumRequirementFor(this.requiredFeature))),\r\n switchMap(() => this.http.get(`${environment.baseUrlApi}${MediaCenterSlidesService.requestSlidesUrl}`)),\r\n map((data) => SlideAdapter.adapt(data)),\r\n shareReplay({\r\n refCount: true,\r\n bufferSize: 1,\r\n })\r\n );\r\n\r\n private readonly slideUpdate$: Observable = this.eventBus.observe(MediaCenterSlideUpdatedEvent).pipe(\r\n withLatestFrom(this.destinationService.selectedTenant$),\r\n filter(([updatedEvent, tenant]) => updatedEvent?.tenantGuid === tenant?.guid),\r\n withLatestFrom(this.userSettingsService.userSettings$, this.slidesRequest$),\r\n map(([[updatedEvent], userSettings, slides]) => {\r\n if (updatedEvent.changedBy === userSettings.userGuid) {\r\n this.presentToast(updatedEvent.success, updatedEvent.removed, updatedEvent.settings);\r\n }\r\n\r\n const updatedSlide = slides.find((s) => s.guid === updatedEvent.slide.guid);\r\n\r\n if (updatedSlide) {\r\n updatedSlide.updating = false;\r\n\r\n if (updatedEvent.success) {\r\n if (updatedEvent.removed) {\r\n slides.splice(slides.indexOf(updatedSlide), 1);\r\n } else {\r\n if (updatedSlide.thumbnailUrl != null) {\r\n updatedEvent.slide.thumbnailUrl = updatedSlide.thumbnailUrl;\r\n }\r\n Object.assign(updatedSlide, updatedEvent.slide);\r\n }\r\n }\r\n } else {\r\n if (!updatedEvent.removed && updatedEvent.success) {\r\n slides.push(updatedEvent.slide);\r\n }\r\n }\r\n\r\n return slides;\r\n })\r\n );\r\n\r\n private readonly thumbnailUpdate$: Observable = this.eventBus.observe(MediaCenterThumbnailUpdatedEvent).pipe(\r\n withLatestFrom(this.slidesRequest$),\r\n map(([updatedEvent, slides]) => {\r\n const updatedSlide = slides.find((slide) => slide.url === updatedEvent.url);\r\n if (updatedSlide) {\r\n updatedSlide.thumbnailUrl = this.addRandomString(updatedEvent.thumbnailUrl);\r\n }\r\n\r\n return slides;\r\n })\r\n );\r\n\r\n private readonly slidesMerged$ = merge(this.slidesRequest$, this.slideUpdate$).pipe(\r\n shareReplay({\r\n refCount: true,\r\n bufferSize: 1,\r\n })\r\n );\r\n\r\n private readonly slidesTimeControlEnabledUpdate$: Observable = timer(1000, 5000).pipe(\r\n withLatestFrom(this.slidesMerged$, this.destinationService.selectedTenant$),\r\n switchMap(([, slides, tenant]) => {\r\n const timeZoneIANA = findIana(tenant.timeZoneId)[0];\r\n const now = moment().tz(timeZoneIANA);\r\n const currentDay = now.isoWeekday() - 1; // isoWeekDay: mon = 1, sun = 7\r\n const dateNow = now.format('YYYY-MM-DDTHH:mm:ss');\r\n const timeNow = now.format('HH:mm');\r\n\r\n slides.forEach((slide) => {\r\n if (slide.timeControlEnabled) {\r\n const slideActiveThisWeekday = slide[Slide.daysArray[currentDay]];\r\n const slideActiveToday = dateNow >= slide.startDate && dateNow < slide.endDate;\r\n const slideActiveTimeOfDay = this.isTimeActive(slide.startTime, slide.endTime, timeNow);\r\n\r\n slide.disabledByTimeControl = !slideActiveThisWeekday || !slideActiveToday || !slideActiveTimeOfDay;\r\n return;\r\n }\r\n\r\n slide.disabledByTimeControl = false;\r\n });\r\n\r\n return NEVER; // this observable does not emit a value, so that it doesn't cause an update for subscribers\r\n }),\r\n shareReplay({\r\n bufferSize: 1,\r\n refCount: true,\r\n })\r\n );\r\n\r\n readonly slides$ = merge(this.slidesMerged$, this.thumbnailUpdate$, this.slidesTimeControlEnabledUpdate$).pipe(\r\n shareReplay({\r\n refCount: true,\r\n bufferSize: 1,\r\n })\r\n );\r\n\r\n constructor(\r\n private eventBus: EventBusService,\r\n private http: HttpClient,\r\n private destinationService: DestinationService,\r\n private userMessageService: UserMessageService,\r\n private userSettingsService: UserSettingsService,\r\n private confirmationDialogService: ConfirmationDialogService,\r\n router: Router\r\n ) {\r\n // Workaround to always keep a subscription on slidesRequest$ while on a mediacenter page\r\n // Prevents unnecessary requests to the api\r\n router.events\r\n .pipe(\r\n filter((event) => event instanceof NavigationEnd),\r\n map((event: NavigationEnd) => event.url.includes(`/${SisRoute.MEDIACENTER}`)),\r\n distinctUntilChanged(),\r\n switchMap((isMediaCenterPage) => {\r\n if (isMediaCenterPage) {\r\n return this.slidesRequest$;\r\n } else {\r\n return of([]);\r\n }\r\n })\r\n )\r\n .subscribe();\r\n }\r\n\r\n updateSlide(slide: Slide): void {\r\n this.update(slide, false);\r\n }\r\n\r\n deleteSlide(slide: Slide): void {\r\n this.confirmationDialogService\r\n .presentAlert('mediacenter.phrase.deleteFile', 'mediacenter.term.delete')\r\n .then((confirmed) => {\r\n if (confirmed) {\r\n if (slide.inPlaylist) {\r\n this.confirmationDialogService\r\n .presentAlert('mediacenter.phrase.slideInUse', 'mediacenter.phrase.deleteAnyway')\r\n .then((confirmed) => {\r\n if (confirmed) {\r\n this.update(slide, true);\r\n }\r\n });\r\n } else {\r\n this.update(slide, true);\r\n }\r\n }\r\n });\r\n }\r\n\r\n async uploadSlide(slideName: string, slideGuid: string, data: string, type: string): Promise {\r\n try {\r\n const url = `${environment.baseUrlApi}${MediaCenterSlidesService.uploadSlideUrl}`;\r\n await firstValueFrom(this.http.post(url, { html: data, slideName, slideGuid, contentType: type }));\r\n } catch {\r\n const event = new MediaCenterSlideUpdatedEvent();\r\n event.slide = new Slide({ name: slideName });\r\n event.removed = false;\r\n event.success = false;\r\n this.eventBus.publish(event);\r\n this.presentToast(false);\r\n }\r\n }\r\n\r\n private async update(slide: Slide, deleting: boolean): Promise {\r\n try {\r\n const url = deleting ? MediaCenterSlidesService.deleteSlideUrl : MediaCenterSlidesService.settingsSlideUrl;\r\n await firstValueFrom(this.http.post(`${environment.baseUrlApi}${url}`, slide));\r\n } catch {\r\n slide.updating = false;\r\n this.presentToast(false);\r\n }\r\n }\r\n\r\n private addRandomString(url: string): string {\r\n return `${url}?${Math.random() * 10000}`;\r\n }\r\n\r\n private presentToast(success: boolean, removed: boolean = false, settings: boolean = false): void {\r\n const message = success\r\n ? removed\r\n ? 'general.phrase.fileDeleted'\r\n : settings\r\n ? 'mediacenter.phrase.settingsSaved'\r\n : 'mediacenter.phrase.saved'\r\n : 'mediacenter.phrase.failed';\r\n const color = success ? UserMessageColor.green : UserMessageColor.red;\r\n const icon = success ? UserMessageIcon.success : UserMessageIcon.failed;\r\n this.userMessageService.presentToast(new UserMessage({ message, icon, durationMs: 2000, position: 'top', color }));\r\n }\r\n\r\n private isTimeActive(startTime: string, endTime: string, timeNow: string): boolean {\r\n if (startTime === endTime) {\r\n return true;\r\n }\r\n\r\n if (startTime < endTime) {\r\n return timeNow >= startTime && timeNow < endTime;\r\n }\r\n\r\n return timeNow >= startTime || timeNow < endTime;\r\n }\r\n}\r\n","import { Component, Input, OnInit } from '@angular/core';\r\nimport { AbstractControl, FormControl, FormGroup, ValidationErrors, ValidatorFn, Validators } from '@angular/forms';\r\nimport { ModalController } from '@ionic/angular';\r\nimport moment from 'moment';\r\nimport { takeUntil } from 'rxjs/operators';\r\nimport { EventBusService } from 'src/app/core/eventbus/event-bus.service';\r\nimport { EventBusSubscriberBase } from 'src/app/core/eventbus/event-bus-subscriber-base';\r\nimport { MediaCenterSlideUpdatedEvent } from 'src/app/core/eventbus/events';\r\nimport { ScreenSizeService } from 'src/app/core/utils/screen-size.service';\r\nimport { DestinationService } from 'src/app/domain/destination/destination.service';\r\nimport { Feature } from 'src/app/domain/feature/feature.model';\r\nimport { FeatureAccessLevel } from 'src/app/domain/feature/feature-access-level.model';\r\nimport { FeatureId } from 'src/app/domain/feature/feature-id.model';\r\nimport { Slide } from 'src/app/media-center/slides/domain/slide.model';\r\nimport { MediaCenterSlidesService } from 'src/app/media-center/slides/media-center-slides.service';\r\n\r\n@Component({\r\n selector: 'sis-time-control-modal',\r\n templateUrl: './time-control-modal.component.html',\r\n styleUrls: ['./time-control-modal.component.scss'],\r\n standalone: false\r\n})\r\nexport class TimeControlModalComponent extends EventBusSubscriberBase implements OnInit {\r\n @Input() slide: Slide;\r\n\r\n bigScreenMode: boolean;\r\n\r\n writePermission: boolean;\r\n\r\n isSaving: boolean = false;\r\n hasUnsavedChanges: boolean;\r\n isResetable: boolean;\r\n slideEdit: Slide;\r\n\r\n formGroup: FormGroup;\r\n\r\n private requiredFeatureWrite: Feature;\r\n\r\n constructor(\r\n eventBus: EventBusService,\r\n private modalCtrl: ModalController,\r\n private destinationService: DestinationService,\r\n private screenSizeService: ScreenSizeService,\r\n private slidesService: MediaCenterSlidesService\r\n ) {\r\n super(eventBus);\r\n }\r\n\r\n ngOnInit() {\r\n this.setDateTime();\r\n this.slideEdit = JSON.parse(JSON.stringify(this.slide));\r\n\r\n this.formGroup = new FormGroup(\r\n {\r\n timeControlEnabled: new FormControl(this.slideEdit.timeControlEnabled),\r\n startDate: new FormControl(this.slide.startDate, [Validators.required]),\r\n endDate: new FormControl(this.slide.endDate, [Validators.required]),\r\n startTime: new FormControl(this.slide.startTime, [Validators.required]),\r\n endTime: new FormControl(this.slide.endTime, [Validators.required]),\r\n mon: new FormControl(this.slideEdit.mon),\r\n tue: new FormControl(this.slideEdit.tue),\r\n wed: new FormControl(this.slideEdit.wed),\r\n thu: new FormControl(this.slideEdit.thu),\r\n fri: new FormControl(this.slideEdit.fri),\r\n sat: new FormControl(this.slideEdit.sat),\r\n sun: new FormControl(this.slideEdit.sun),\r\n },\r\n {\r\n validators: [this.validateDatetime()],\r\n }\r\n );\r\n\r\n this.formGroup.valueChanges.pipe(takeUntil(this.onDestroy$)).subscribe((values) => {\r\n Object.assign(this.slideEdit, values);\r\n this.checkForChanges();\r\n });\r\n\r\n this.screenSizeService.bigScreenMode$\r\n .pipe(takeUntil(this.onDestroy$))\r\n .subscribe((bigScreenMode) => (this.bigScreenMode = bigScreenMode));\r\n\r\n this.requiredFeatureWrite = new Feature(FeatureId.SISMEDIA_MEDIACENTER, FeatureAccessLevel.WRITE);\r\n\r\n this.destinationService.selectedTenantFeatures$.pipe(takeUntil(this.onDestroy$)).subscribe((features) => {\r\n this.writePermission = features.some((f) => f.hasMinimumRequirementFor(this.requiredFeatureWrite));\r\n if (!this.writePermission) {\r\n this.formGroup.disable({ emitEvent: false });\r\n } else {\r\n this.formGroup.enable({ emitEvent: false });\r\n }\r\n });\r\n\r\n this.observe(MediaCenterSlideUpdatedEvent, (event) => {\r\n if (event.slide && event.slide.guid === this.slide.guid && !event.removed) {\r\n this.isSaving = false;\r\n this.reset();\r\n\r\n if (event.success) {\r\n this.close();\r\n }\r\n }\r\n });\r\n\r\n this.setEnabledStates(false);\r\n }\r\n\r\n validateDatetime(): ValidatorFn {\r\n return (control: AbstractControl): ValidationErrors | null => {\r\n const timeControlEnabled = control.get('timeControlEnabled').value;\r\n const startControl = control.get('startDate');\r\n const endControl = control.get('endDate');\r\n\r\n const start = startControl.value;\r\n const end = endControl.value;\r\n\r\n const now = moment(new Date()).format('YYYY-MM-DD[T]HH:mm:ss');\r\n\r\n if (!timeControlEnabled || (end > now && start < end)) {\r\n return null;\r\n }\r\n\r\n if (start >= end) {\r\n return { dateTimesInvalid: true };\r\n }\r\n\r\n return { endDateTimeInvalid: true };\r\n };\r\n }\r\n\r\n save(): void {\r\n this.isSaving = true;\r\n this.slidesService.updateSlide(this.slideEdit);\r\n }\r\n\r\n reset(): void {\r\n this.formGroup.reset({\r\n timeControlEnabled: this.slide.timeControlEnabled,\r\n startDate: moment(this.slide.startDate).format('YYYY-MM-DD[T]HH:mm:ss'),\r\n endDate: moment(this.slide.endDate).format('YYYY-MM-DD[T]HH:mm:ss'),\r\n startTime: this.slide.startTime,\r\n endTime: this.slide.endTime,\r\n mon: this.slide.mon,\r\n tue: this.slide.tue,\r\n wed: this.slide.wed,\r\n thu: this.slide.thu,\r\n fri: this.slide.fri,\r\n sat: this.slide.sat,\r\n sun: this.slide.sun,\r\n });\r\n this.setEnabledStates(true);\r\n }\r\n\r\n close(): void {\r\n this.modalCtrl.dismiss();\r\n }\r\n\r\n private setDateTime() {\r\n if (this.slide.startDate && this.slide.endDate) {\r\n this.slide.startDate = moment(this.slide.startDate).format('YYYY-MM-DD[T]HH:mm:ss');\r\n this.slide.endDate = moment(this.slide.endDate).format('YYYY-MM-DD[T]HH:mm:ss');\r\n } else {\r\n const startDate = new Date();\r\n startDate.setHours(0, 0, 0, 0);\r\n this.slide.startDate = moment(startDate).format('YYYY-MM-DD[T]HH:mm:ss');\r\n const endDate = new Date();\r\n endDate.setFullYear(2099);\r\n endDate.setHours(0, 0, 0, 0);\r\n this.slide.endDate = moment(endDate).format('YYYY-MM-DD[T]HH:mm:ss');\r\n }\r\n }\r\n\r\n private atLeastOneWeekdayEnabled() {\r\n return (\r\n this.slideEdit.mon ||\r\n this.slideEdit.tue ||\r\n this.slideEdit.wed ||\r\n this.slideEdit.thu ||\r\n this.slideEdit.fri ||\r\n this.slideEdit.sat ||\r\n this.slideEdit.sun\r\n );\r\n }\r\n\r\n private checkForChanges(): void {\r\n this.setEnabledStates(false);\r\n this.hasUnsavedChanges =\r\n !Slide.areSlidesEqual(this.slideEdit, this.slide) &&\r\n this.atLeastOneWeekdayEnabled() &&\r\n !this.formGroup.errors?.dateTimesInvalid;\r\n this.isResetable = !Slide.areSlidesEqual(this.slideEdit, this.slide);\r\n }\r\n\r\n private setEnabledStates(emitEvent: boolean) {\r\n if (this.slideEdit.timeControlEnabled) {\r\n this.formGroup.enable({ emitEvent: emitEvent });\r\n } else {\r\n this.formGroup.disable({ emitEvent: emitEvent });\r\n this.formGroup.controls.timeControlEnabled.enable({ emitEvent: emitEvent });\r\n }\r\n }\r\n}\r\n","\r\n \r\n \r\n \r\n \r\n {{ 'mediacenter.term.timeControl' | translate }} - {{ slide.name }}\r\n \r\n\r\n\r\n\r\n \r\n \r\n
\r\n \r\n \r\n {{ 'general.term.active' | translate }}\r\n \r\n \r\n \r\n \r\n \r\n\r\n \r\n \r\n \r\n \r\n \r\n {{ 'mediacenter.term.startDate' | translate }}\r\n \r\n \r\n \r\n \r\n \r\n\r\n \r\n \r\n {{ 'mediacenter.term.endDate' | translate }}\r\n \r\n \r\n \r\n \r\n \r\n\r\n \r\n \r\n {{ 'mediacenter.term.displayTime' | translate }}\r\n \r\n \r\n {{ 'general.term.fromTime' | translate }}\r\n \r\n \r\n \r\n \r\n \r\n {{ 'general.term.toTime' | translate }}\r\n \r\n \r\n \r\n \r\n \r\n\r\n \r\n \r\n {{ 'general.term.weekdays' | translate }}\r\n \r\n \r\n\r\n \r\n \r\n \r\n \r\n {{ 'general.term.weekday.1' | translate }} \r\n \r\n\r\n \r\n \r\n \r\n \r\n {{ 'general.term.weekday.2' | translate }} \r\n \r\n\r\n \r\n \r\n \r\n \r\n {{ 'general.term.weekday.3' | translate }} \r\n \r\n\r\n \r\n \r\n \r\n \r\n {{ 'general.term.weekday.4' | translate }} \r\n \r\n\r\n \r\n \r\n \r\n \r\n {{ 'general.term.weekday.5' | translate }} \r\n \r\n\r\n \r\n \r\n \r\n \r\n {{ 'general.term.weekday.6' | translate }} \r\n \r\n\r\n \r\n \r\n \r\n \r\n {{ 'general.term.weekday.7' | translate }} \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, OnInit } from '@angular/core';\r\nimport { AlertController, ModalController } from '@ionic/angular';\r\nimport { TranslateService } from '@ngx-translate/core';\r\nimport { firstValueFrom } from 'rxjs';\r\nimport { map, takeUntil } from 'rxjs/operators';\r\nimport { Unsubscriber } from 'src/app/core/unsubscriber';\r\nimport { CKEditorService } from 'src/app/media-center/ckeditor/ckeditor.service';\r\nimport { FileSettings } from 'src/app/media-center/ckeditor/file-settings.model';\r\n\r\n@Component({\r\n templateUrl: './video-browse.component.html',\r\n styleUrls: ['./video-browse.component.scss'],\r\n standalone: false\r\n})\r\nexport class VideoBrowseModal extends Unsubscriber implements OnInit {\r\n readonly acceptedFileFormats = '.mp4, .avi, .mov, .webm';\r\n readonly maxDisplayedFileSizeBytes = 5 * Math.pow(2, 20);\r\n\r\n videos: FileSettings[];\r\n\r\n constructor(\r\n private modalCtrl: ModalController,\r\n private alertCtrl: AlertController,\r\n private translateService: TranslateService,\r\n private ckEditorService: CKEditorService\r\n ) {\r\n super();\r\n }\r\n\r\n ngOnInit() {\r\n this.ckEditorService.videos$\r\n .pipe(\r\n takeUntil(this.onDestroy$),\r\n map((fileSettings) => fileSettings.sort((a, b) => a.name.localeCompare(b.name)))\r\n )\r\n .subscribe((fileSettings) => {\r\n this.videos = fileSettings;\r\n });\r\n }\r\n\r\n closeModal(): void {\r\n this.modalCtrl.dismiss();\r\n }\r\n\r\n videoSelected(fileSettings: FileSettings): void {\r\n if (fileSettings.url) {\r\n this.modalCtrl.dismiss({\r\n videoUrl: fileSettings.url,\r\n videoWidth: fileSettings.width,\r\n videoHeight: fileSettings.height,\r\n });\r\n }\r\n }\r\n\r\n deleteFile(file: FileSettings, event: any): void {\r\n event.stopPropagation();\r\n this.presentConfirmationDialog('mediacenter.phrase.deleteFile', 'mediacenter.term.delete').then((confirm) => {\r\n if (confirm) {\r\n file.deleted = true;\r\n this.ckEditorService.deleteFile(file);\r\n }\r\n });\r\n }\r\n\r\n handleFileInput(event: any): void {\r\n const files: FileList = event.target.files;\r\n const file = files.item(0);\r\n event.target.value = '';\r\n\r\n const fileNamePattern = /^[a-zA-Z0-9_.-]+$/;\r\n if (!fileNamePattern.test(file.name)) {\r\n this.presentAlert();\r\n return;\r\n }\r\n\r\n if (\r\n !this.acceptedFileFormats.includes(\r\n file.type.replace('video/', '').replace('+xml', '').replace('quicktime', '.mov').toLocaleLowerCase()\r\n )\r\n ) {\r\n return;\r\n }\r\n\r\n if (\r\n this.videos.find(\r\n (video) => video.name.slice(0, -4).replace(CKEditorService.convertingPrefix, '') === file.name.slice(0, -4)\r\n )\r\n ) {\r\n this.presentConfirmationDialog('mediacenter.phrase.overwriteFile', 'mediacenter.term.overwrite').then(\r\n (confirm) => {\r\n if (confirm) {\r\n this.ckEditorService.uploadVideo(file);\r\n }\r\n }\r\n );\r\n } else {\r\n this.ckEditorService.uploadVideo(file);\r\n }\r\n }\r\n\r\n itemId(_: number, item: FileSettings): string {\r\n return `${item.url}${item.progress}`;\r\n }\r\n\r\n private presentConfirmationDialog(confirmationText: string, confirmationButton: string): Promise {\r\n return new Promise(async (resolve) => {\r\n this.alertCtrl\r\n .create({\r\n header: await this.getTranslatedString(confirmationText),\r\n buttons: [\r\n {\r\n text: await this.getTranslatedString(confirmationButton),\r\n handler: () => {\r\n resolve(true);\r\n },\r\n },\r\n {\r\n text: await this.getTranslatedString('general.term.cancel'),\r\n role: 'cancel',\r\n handler: () => {\r\n resolve(false);\r\n },\r\n },\r\n ],\r\n })\r\n .then((alert) => {\r\n alert.present();\r\n });\r\n });\r\n }\r\n\r\n private async presentAlert(): Promise {\r\n return new Promise(async (resolve) => {\r\n const alert = await this.alertCtrl.create({\r\n header: await this.getTranslatedString('mediacenter.phrase.videoInvalidFilename'),\r\n buttons: [\r\n {\r\n text: 'OK',\r\n handler: () => {\r\n document.getElementById('file').click();\r\n resolve();\r\n },\r\n },\r\n ],\r\n });\r\n await alert.present();\r\n });\r\n }\r\n\r\n private getTranslatedString(translateKey: string): Promise {\r\n return firstValueFrom(this.translateService.get(translateKey));\r\n }\r\n}\r\n","\r\n \r\n mediacenter.term.videos \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 {{ 'mediacenter.phrase.converting' | translate }}\r\n \r\n \r\n \r\n \r\n \r\n \r\n {{ 'mediacenter.phrase.conversionFailed' | translate }}\r\n \r\n \r\n \r\n \r\n
\r\n \r\n {{ i.name }}\r\n
\r\n {{ i.width }} x {{ i.height }}\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 { SisConverter } from 'src/app/core/utils/sis-converter';\r\nimport { MeteoInfoItem } from 'src/app/meteo-info/domain/meteo-info-item.model';\r\n\r\nexport class MeteoInfoItemAdapter {\r\n static adapt(items: any[]): MeteoInfoItem[] {\r\n if (!items) {\r\n return [];\r\n }\r\n\r\n return items\r\n .map((i) => ({\r\n guid: i.guid,\r\n tenantGuid: i.tenantGuid,\r\n location: i.location,\r\n altitude: i.altitude,\r\n temperature: SisConverter.toNumberOrUndefined(i.temperature),\r\n windSpeed: i.windSpeed == null ? null : SisConverter.toNumberOrUndefined(i.windSpeed),\r\n latestSnowfallUtc: SisConverter.toDateOrUndefined(i.latestSnowfall),\r\n snowDepth: SisConverter.toNumberOrUndefined(i.snowDepth),\r\n freshSnow: SisConverter.toNumberOrUndefined(i.freshSnow),\r\n avalancheDangerLevel: SisConverter.toNumberOrUndefined(i.avalancheDangerLevel),\r\n snowConditionId: SisConverter.toNumberOrUndefined(i.snowConditionId),\r\n slopeConditionId: SisConverter.toNumberOrUndefined(i.slopeConditionId),\r\n hasSTnetExport: i.hasSTnetExport,\r\n hasWeatherImport: i.hasWeatherImport,\r\n weather: i.weather,\r\n lastChange: SisConverter.toDateOrUndefined(i.lastChange),\r\n changedBy: i.changedBy,\r\n changedByEmail: i.changedByEmail,\r\n }))\r\n .sort((a, b) => a.altitude - b.altitude);\r\n }\r\n}\r\n","import { STnetStatusAdapter } from 'src/app/core/stnet/stnet-status.adapter';\r\nimport { MeteoInfo } from 'src/app/meteo-info/domain/meteo-info.model';\r\nimport { MeteoInfoItemAdapter } from 'src/app/meteo-info/domain/meteo-info-item.adapter';\r\n\r\nexport class MeteoInfoAdapter {\r\n static adapt(item: any): MeteoInfo {\r\n if (!item) {\r\n return {\r\n meteoInfoItems: [],\r\n stnetStatusArray: null,\r\n };\r\n }\r\n\r\n return {\r\n meteoInfoItems: MeteoInfoItemAdapter.adapt(item.meteoInfos),\r\n stnetStatusArray:\r\n item.sTnetStatusList?.filter((v: any) => v).map((status: any) => STnetStatusAdapter.adapt(status)) ?? [],\r\n };\r\n }\r\n}\r\n","import { Component, Input, OnInit } from '@angular/core';\r\nimport { MeteoInfoItem } from 'src/app/meteo-info/domain/meteo-info-item.model';\r\n\r\n@Component({\r\n selector: 'sis-meteo-info-field-names',\r\n templateUrl: './meteo-info-field-names.component.html',\r\n styleUrls: ['./meteo-info-field-names.component.scss'],\r\n standalone: false\r\n})\r\nexport class MeteoInfoFieldNames implements OnInit {\r\n @Input() hasSTnetExport: boolean;\r\n @Input() meteoInfoItemsInRow: MeteoInfoItem[];\r\n\r\n showWeatherImportRows: boolean;\r\n\r\n ngOnInit(): void {\r\n this.showWeatherImportRows = this.meteoInfoItemsInRow.some((m) => m.hasWeatherImport);\r\n }\r\n}\r\n","\r\n \r\n \r\n {{ 'meteoinfo.term.weather' | translate }}\r\n \r\n \r\n {{ 'meteoinfo.term.temperature' | translate }}\r\n \r\n \r\n {{ 'meteoinfo.term.windSpeed' | translate }}\r\n \r\n \r\n \r\n {{ 'meteoinfo.term.snowDepth' | translate }}\r\n STnet\r\n \r\n \r\n \r\n {{ 'meteoinfo.term.freshSnow' | translate }}\r\n STnet\r\n \r\n \r\n \r\n {{ 'meteoinfo.term.latestSnowfall' | translate }}\r\n STnet\r\n \r\n \r\n \r\n {{ 'meteoinfo.term.avalancheDangerLevel' | translate }}\r\n \r\n \r\n {{ 'meteoinfo.term.slopeCondition' | translate }}\r\n \r\n \r\n {{ 'meteoinfo.term.snowCondition' | translate }}\r\n \r\n\r\n","import { Component, EventEmitter, Input, OnChanges, OnInit, Output } from '@angular/core';\r\nimport { AbstractControl, FormControl, FormGroup, Validators } from '@angular/forms';\r\nimport { TranslateService } from '@ngx-translate/core';\r\nimport moment from 'moment';\r\nimport { skip, takeUntil } from 'rxjs/operators';\r\nimport { Unsubscriber } from 'src/app/core/unsubscriber';\r\nimport { ScreenSizeService } from 'src/app/core/utils/screen-size.service';\r\nimport { DestinationService } from 'src/app/domain/destination/destination.service';\r\nimport { Feature } from 'src/app/domain/feature/feature.model';\r\nimport { FeatureAccessLevel } from 'src/app/domain/feature/feature-access-level.model';\r\nimport { FeatureId } from 'src/app/domain/feature/feature-id.model';\r\nimport { MeteoInfoItem } from 'src/app/meteo-info/domain/meteo-info-item.model';\r\n\r\n@Component({\r\n selector: 'sis-meteo-info-item',\r\n templateUrl: './meteo-info-item.component.html',\r\n styleUrls: ['./meteo-info-item.component.scss'],\r\n standalone: false\r\n})\r\nexport class MeteoInfoItemComponent extends Unsubscriber implements OnChanges, OnInit {\r\n readonly slopeCondition: Array<{ value: number; translationString: string }> = [\r\n { value: 800, translationString: 'stnet.phrase.condition.noInfo' },\r\n { value: 801, translationString: 'stnet.phrase.condition.good' },\r\n { value: 802, translationString: 'stnet.phrase.condition.goodFair' },\r\n { value: 803, translationString: 'stnet.phrase.condition.fairGood' },\r\n { value: 804, translationString: 'stnet.phrase.condition.fair' },\r\n { value: 805, translationString: 'stnet.phrase.condition.closed' },\r\n { value: 806, translationString: 'stnet.phrase.condition.eos' },\r\n ];\r\n\r\n readonly snowCondition: Array<{ value: number; translationString: string }> = [\r\n { value: 900, translationString: 'stnet.phrase.condition.noInfo' },\r\n { value: 901, translationString: 'stnet.phrase.condition.powder' },\r\n { value: 905, translationString: 'stnet.phrase.condition.hard' },\r\n { value: 909, translationString: 'stnet.phrase.condition.sulz' },\r\n { value: 913, translationString: 'stnet.phrase.condition.wet' },\r\n ];\r\n\r\n readonly avalancheLevel: Array<{ value: number; translationString: string }> = [\r\n { value: 0, translationString: 'meteoinfo.term.dangerlevel.noInfo' },\r\n { value: 1, translationString: 'meteoinfo.term.dangerlevel.low' },\r\n { value: 2, translationString: 'meteoinfo.term.dangerlevel.moderate' },\r\n { value: 3, translationString: 'meteoinfo.term.dangerlevel.considerable' },\r\n { value: 4, translationString: 'meteoinfo.term.dangerlevel.high' },\r\n { value: 5, translationString: 'meteoinfo.term.dangerlevel.veryHigh' },\r\n ];\r\n\r\n @Input() meteoInfoItem: MeteoInfoItem;\r\n @Input() meteoInfoDisplayedItem: MeteoInfoItem;\r\n @Input() meteoInfoItemsInRow: MeteoInfoItem[];\r\n\r\n @Output() formDataValid: EventEmitter = new EventEmitter();\r\n @Output() formDataModified: EventEmitter = new EventEmitter();\r\n\r\n bigScreenMode: boolean;\r\n writePermission: boolean;\r\n formGroup: FormGroup<{\r\n temperature: FormControl;\r\n windSpeed: FormControl;\r\n snowDepth: FormControl;\r\n freshSnow: FormControl;\r\n latestSnowfall: FormControl;\r\n slopeConditionId: FormControl;\r\n snowConditionId: FormControl;\r\n avalancheDangerLevel: FormControl;\r\n }>;\r\n formControls: {\r\n [key: string]: AbstractControl;\r\n };\r\n rerender: boolean = false;\r\n weatherIconUrl: string;\r\n title: string;\r\n showWeatherImportRows: boolean;\r\n hasWeatherImport: boolean;\r\n\r\n constructor(\r\n private destinationService: DestinationService,\r\n private screenSizeService: ScreenSizeService,\r\n private translateService: TranslateService\r\n ) {\r\n super();\r\n }\r\n\r\n ngOnInit(): void {\r\n if (this.meteoInfoItem.weather) {\r\n this.weatherIconUrl = `/assets/meteoinfo/${this.meteoInfoItem.weather}.png`;\r\n }\r\n\r\n this.showWeatherImportRows = this.meteoInfoItemsInRow.some((m) => m.hasWeatherImport);\r\n this.hasWeatherImport = this.meteoInfoItem.hasWeatherImport;\r\n\r\n this.formGroup = new FormGroup({\r\n temperature: new FormControl(\r\n null,\r\n this.hasWeatherImport ? [] : [Validators.pattern(/^-?\\d+$/), Validators.required]\r\n ),\r\n windSpeed: new FormControl(null, [Validators.min(0), Validators.pattern(/^\\d+$/)]),\r\n snowDepth: new FormControl(null, [Validators.min(0), Validators.pattern(/^\\d+$/), Validators.required]),\r\n freshSnow: new FormControl(null, [Validators.min(0), Validators.pattern(/^\\d+$/), Validators.required]),\r\n latestSnowfall: new FormControl(null, [Validators.required]),\r\n slopeConditionId: new FormControl(null),\r\n snowConditionId: new FormControl(null),\r\n avalancheDangerLevel: new FormControl(null),\r\n });\r\n\r\n this.formControls = this.formGroup.controls;\r\n\r\n this.formGroup.valueChanges.pipe(skip(1), takeUntil(this.onDestroy$)).subscribe(() => {\r\n const changedItem = this.formGroup.getRawValue();\r\n if (this.meteoInfoDisplayedItem) {\r\n this.meteoInfoDisplayedItem.snowDepth = this.getNumberOrNull(changedItem.snowDepth);\r\n this.meteoInfoDisplayedItem.freshSnow = this.getNumberOrNull(changedItem.freshSnow);\r\n this.meteoInfoDisplayedItem.temperature = this.getNumberOrNull(changedItem.temperature);\r\n this.meteoInfoDisplayedItem.windSpeed = this.getNumberOrNull(changedItem.windSpeed);\r\n this.meteoInfoDisplayedItem.latestSnowfallUtc = new Date(changedItem.latestSnowfall);\r\n this.meteoInfoDisplayedItem.slopeConditionId = this.getNumberOrNull(changedItem.slopeConditionId);\r\n this.meteoInfoDisplayedItem.snowConditionId = this.getNumberOrNull(changedItem.snowConditionId);\r\n this.meteoInfoDisplayedItem.avalancheDangerLevel = this.getNumberOrNull(changedItem.avalancheDangerLevel);\r\n\r\n this.formDataValid.emit(this.formGroup.valid);\r\n this.formDataModified.emit(this.isEdited(this.meteoInfoItem, this.meteoInfoDisplayedItem));\r\n }\r\n });\r\n\r\n this.screenSizeService.bigScreenMode$\r\n .pipe(takeUntil(this.onDestroy$))\r\n .subscribe((screenMode) => (this.bigScreenMode = screenMode));\r\n\r\n this.destinationService.selectedTenantFeatures$.pipe(takeUntil(this.onDestroy$)).subscribe((features) => {\r\n this.writePermission = features.some((f) =>\r\n f.hasMinimumRequirementFor(new Feature(FeatureId.SISMEDIA_METEOINFO, FeatureAccessLevel.WRITE))\r\n );\r\n\r\n if (this.writePermission) {\r\n this.formGroup.enable();\r\n } else {\r\n this.formGroup.disable();\r\n }\r\n\r\n if (this.meteoInfoItem) {\r\n this.setValues(this.meteoInfoItem);\r\n }\r\n });\r\n\r\n this.translateService.onLangChange.pipe(takeUntil(this.onDestroy$)).subscribe(() => {\r\n this.rerender = true;\r\n setTimeout(() => {\r\n this.rerender = false;\r\n }, 50);\r\n });\r\n }\r\n\r\n ngOnChanges(): void {\r\n if (this.meteoInfoItem) {\r\n this.setValues(this.meteoInfoItem);\r\n this.title = `${this.meteoInfoItem.location.toUpperCase()} - ${this.meteoInfoItem.altitude}`;\r\n }\r\n }\r\n\r\n setValues(meteoInfoItem: MeteoInfoItem): void {\r\n this.formGroup?.setValue(\r\n {\r\n snowDepth: meteoInfoItem.snowDepth,\r\n freshSnow: meteoInfoItem.freshSnow,\r\n temperature: meteoInfoItem.temperature,\r\n windSpeed: meteoInfoItem.windSpeed,\r\n latestSnowfall: moment(meteoInfoItem.latestSnowfallUtc).format('YYYY-MM-DD'),\r\n slopeConditionId: meteoInfoItem.slopeConditionId,\r\n snowConditionId: meteoInfoItem.snowConditionId,\r\n avalancheDangerLevel: meteoInfoItem.avalancheDangerLevel,\r\n },\r\n { emitEvent: false }\r\n );\r\n\r\n if (this.meteoInfoItem && this.hasWeatherImport) {\r\n this.formGroup.controls.temperature.disable({ emitEvent: false });\r\n }\r\n }\r\n\r\n private isEdited(item: MeteoInfoItem, otherItem: MeteoInfoItem): boolean {\r\n const different =\r\n item.snowDepth !== otherItem.snowDepth ||\r\n item.freshSnow !== otherItem.freshSnow ||\r\n item.temperature !== otherItem.temperature ||\r\n item.windSpeed !== otherItem.windSpeed ||\r\n moment(item.latestSnowfallUtc).format('YYYY-MM-DD') !==\r\n moment(otherItem.latestSnowfallUtc).format('YYYY-MM-DD') ||\r\n item.slopeConditionId !== otherItem.slopeConditionId ||\r\n item.avalancheDangerLevel !== otherItem.avalancheDangerLevel ||\r\n item.snowConditionId !== otherItem.snowConditionId;\r\n\r\n return different;\r\n }\r\n\r\n private getNumberOrNull(item: string | number): number {\r\n return Number.parseInt(item + '');\r\n }\r\n}\r\n","\r\n {{ title }}\r\n\r\n
\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n °C\r\n \r\n \r\n \r\n km/h\r\n \r\n \r\n \r\n cm\r\n \r\n \r\n \r\n cm\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n {{ item.translationString | translate }}\r\n \r\n \r\n \r\n \r\n \r\n \r\n {{ item.translationString | translate }}\r\n \r\n \r\n \r\n \r\n \r\n \r\n {{ item.translationString | translate }}\r\n \r\n \r\n \r\n\r\n","import { CommonModule } from '@angular/common';\r\nimport { NgModule } from '@angular/core';\r\nimport { FormsModule, ReactiveFormsModule } from '@angular/forms';\r\nimport { MatTooltipModule } from '@angular/material/tooltip';\r\nimport { RouterModule } from '@angular/router';\r\nimport { IonicModule } from '@ionic/angular';\r\nimport { TranslateModule } from '@ngx-translate/core';\r\nimport { CoreModule } from 'src/app/core/core.module';\r\nimport { MeteoInfoPage } from 'src/app/meteo-info/meteo-info.page';\r\nimport { MeteoInfoFieldNames } from 'src/app/meteo-info/meteo-info-field-names/meteo-info-field-names.component';\r\nimport { MeteoInfoItemComponent } from 'src/app/meteo-info/meteo-info-item/meteo-info-item.component';\r\n\r\n@NgModule({\r\n imports: [\r\n CommonModule,\r\n IonicModule,\r\n FormsModule,\r\n ReactiveFormsModule,\r\n CoreModule,\r\n MatTooltipModule,\r\n RouterModule.forChild([\r\n {\r\n path: '',\r\n component: MeteoInfoPage,\r\n },\r\n ]),\r\n TranslateModule,\r\n ],\r\n declarations: [MeteoInfoPage, MeteoInfoFieldNames, MeteoInfoItemComponent],\r\n})\r\nexport class MeteoInfoPageModule {}\r\n","import { Component } from '@angular/core';\r\nimport { combineLatest, Subject } from 'rxjs';\r\nimport { Observable } from 'rxjs/internal/Observable';\r\nimport { debounceTime, map, takeUntil } from 'rxjs/operators';\r\nimport { STnetStatus } from 'src/app/core/stnet/stnet-status.model';\r\nimport { Unsubscriber } from 'src/app/core/unsubscriber';\r\nimport { ScreenSizeService } from 'src/app/core/utils/screen-size.service';\r\nimport { DestinationService } from 'src/app/domain/destination/destination.service';\r\nimport { Feature } from 'src/app/domain/feature/feature.model';\r\nimport { FeatureAccessLevel } from 'src/app/domain/feature/feature-access-level.model';\r\nimport { FeatureId } from 'src/app/domain/feature/feature-id.model';\r\nimport { MeteoInfoItem } from 'src/app/meteo-info/domain/meteo-info-item.model';\r\nimport { MeteoInfoService } from 'src/app/meteo-info/meteo-info.service';\r\n\r\n@Component({\r\n selector: 'sis-meteo-info-page',\r\n templateUrl: './meteo-info.page.html',\r\n styleUrls: ['./meteo-info.page.scss'],\r\n standalone: false\r\n})\r\nexport class MeteoInfoPage extends Unsubscriber {\r\n private readonly displayedMeteoInfoItems$: Observable = combineLatest([\r\n this.meteoInfoService.meteoInfoItems,\r\n this.screenSizeService.bigScreenMode$,\r\n ]).pipe(\r\n takeUntil(this.onDestroy$),\r\n map(([meteoInfoItems, bigScreenMode]) => {\r\n if (!meteoInfoItems?.length) {\r\n return [];\r\n }\r\n\r\n const columns = bigScreenMode ? 4 : 1;\r\n const rows = meteoInfoItems.length / columns;\r\n const displayedItems: MeteoInfoItem[][] = [];\r\n\r\n for (let i = 0; i < rows; i++) {\r\n displayedItems.push([]);\r\n for (let j = i * columns; j < i * columns + columns; j++) {\r\n if (meteoInfoItems[j]) {\r\n displayedItems[i].push(meteoInfoItems[j]);\r\n }\r\n }\r\n }\r\n\r\n return displayedItems;\r\n })\r\n );\r\n\r\n private readonly validIds: boolean[] = [];\r\n private readonly modifiedIds: boolean[] = [];\r\n private readonly allItemsValid$ = new Subject();\r\n private readonly anyItemEdited$ = new Subject();\r\n\r\n bigScreenMode: boolean;\r\n lastChanged: MeteoInfoItem;\r\n displayedMeteoInfoItems: { source: MeteoInfoItem[][]; editable: MeteoInfoItem[][] };\r\n writePermission: boolean;\r\n anyItemEdited: boolean;\r\n allItemsValid: boolean;\r\n stnetStatusArray: STnetStatus[] = [];\r\n isSaving: boolean;\r\n hasSTnetExport: boolean;\r\n showSTnetButton: boolean;\r\n\r\n constructor(\r\n private meteoInfoService: MeteoInfoService,\r\n private screenSizeService: ScreenSizeService,\r\n private destinationService: DestinationService\r\n ) {\r\n super();\r\n\r\n this.allItemsValid$.pipe(debounceTime(1), takeUntil(this.onDestroy$)).subscribe((b) => (this.allItemsValid = b));\r\n this.anyItemEdited$.pipe(debounceTime(1), takeUntil(this.onDestroy$)).subscribe((b) => (this.anyItemEdited = b));\r\n }\r\n\r\n ngOnInit(): void {\r\n this.screenSizeService.bigScreenMode$\r\n .pipe(takeUntil(this.onDestroy$))\r\n .subscribe((screenMode) => (this.bigScreenMode = screenMode));\r\n\r\n combineLatest([this.displayedMeteoInfoItems$, this.destinationService.selectedTenantFeatures$])\r\n .pipe(takeUntil(this.onDestroy$))\r\n .subscribe(([meteoInfoItems, features]) => {\r\n this.resetDisplayedMeteoInfoItems(meteoInfoItems);\r\n\r\n const allItems = meteoInfoItems.reduce((accumulator, value) => accumulator.concat(value), []);\r\n const lastChange = new Date(Math.max(...allItems.map((e) => new Date(e.lastChange)?.getTime())));\r\n\r\n this.lastChanged = allItems.find((item) => item.lastChange?.getTime() === lastChange?.getTime());\r\n this.isSaving = false;\r\n\r\n this.writePermission = features.some((f) =>\r\n f.hasMinimumRequirementFor(new Feature(FeatureId.SISMEDIA_METEOINFO, FeatureAccessLevel.WRITE))\r\n );\r\n\r\n this.hasSTnetExport = meteoInfoItems.some((items) => items.some((item) => !!item.hasSTnetExport));\r\n\r\n this.showSTnetButton =\r\n this.hasSTnetExport &&\r\n features.some((f) =>\r\n f.hasMinimumRequirementFor(new Feature(FeatureId.SISMEDIA_STNET, FeatureAccessLevel.WRITE))\r\n );\r\n });\r\n\r\n this.meteoInfoService.stnetStatusArray$.pipe(takeUntil(this.onDestroy$)).subscribe((stnetStatusArray) => {\r\n this.stnetStatusArray = stnetStatusArray;\r\n });\r\n }\r\n\r\n reset(): void {\r\n if (!this.isSaving) {\r\n this.resetDisplayedMeteoInfoItems(this.displayedMeteoInfoItems.source);\r\n }\r\n }\r\n\r\n async save(): Promise {\r\n if (this.writePermission && this.allItemsValid && !this.isSaving) {\r\n const meteoInfoItems = [];\r\n for (const c of this.displayedMeteoInfoItems.editable) {\r\n for (const m of c) {\r\n if (m != null) {\r\n meteoInfoItems.push(m);\r\n }\r\n }\r\n }\r\n\r\n if (meteoInfoItems.length > 0) {\r\n this.isSaving = true;\r\n\r\n const success = await this.meteoInfoService.saveMeteoInfoItems(meteoInfoItems);\r\n if (!success) {\r\n this.isSaving = false;\r\n }\r\n }\r\n }\r\n }\r\n\r\n async exportSTnetData(): Promise {\r\n await this.meteoInfoService.exportSTnetMeteoInfoItems();\r\n }\r\n\r\n onFormDataValid(event: boolean, index: number): void {\r\n this.validIds[index] = event;\r\n this.allItemsValid$.next(!this.validIds.some((b) => !b));\r\n }\r\n\r\n onFormDataModified(event: boolean, index: number): void {\r\n this.modifiedIds[index] = event;\r\n this.anyItemEdited$.next(this.modifiedIds.some((b) => b));\r\n }\r\n\r\n resetDisplayedMeteoInfoItems(source: MeteoInfoItem[][]): void {\r\n const editable: MeteoInfoItem[][] = [];\r\n\r\n for (const row of source) {\r\n const copies: MeteoInfoItem[] = [];\r\n editable.push(copies);\r\n for (const meteoInfo of row) {\r\n copies.push({\r\n altitude: meteoInfo.altitude,\r\n avalancheDangerLevel: meteoInfo.avalancheDangerLevel,\r\n changedBy: meteoInfo.changedBy,\r\n changedByEmail: meteoInfo.changedByEmail,\r\n freshSnow: meteoInfo.freshSnow,\r\n guid: meteoInfo.guid,\r\n lastChange: meteoInfo.lastChange,\r\n latestSnowfallUtc: meteoInfo.latestSnowfallUtc,\r\n location: meteoInfo.location,\r\n slopeConditionId: meteoInfo.slopeConditionId,\r\n snowConditionId: meteoInfo.snowConditionId,\r\n hasSTnetExport: meteoInfo.hasSTnetExport,\r\n hasWeatherImport: meteoInfo.hasWeatherImport,\r\n snowDepth: meteoInfo.snowDepth,\r\n temperature: meteoInfo.temperature,\r\n windSpeed: meteoInfo.windSpeed,\r\n weather: meteoInfo.weather,\r\n tenantGuid: meteoInfo.tenantGuid,\r\n });\r\n }\r\n }\r\n\r\n this.displayedMeteoInfoItems = { source, editable };\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 {{ \"general.phrase.lastChange\" | translate }}: {{ this.lastChanged.changedByEmail }} ({{\r\n this.lastChanged.lastChange | dateTimeFormat }})\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n\r\n \r\n {{ 'stnet.phrase.response' | translate }}:{{ status.statusMessage }}({{status.stationId}})
\r\n snow.myswitzerland.com \r\n \r\n \r\n","import { HttpClient } from '@angular/common/http';\r\nimport { Injectable } from '@angular/core';\r\nimport { firstValueFrom, merge, Observable, of, Subject } from 'rxjs';\r\nimport { catchError, distinctUntilChanged, filter, map, shareReplay, switchMap, withLatestFrom } from 'rxjs/operators';\r\nimport { EventBusService } from 'src/app/core/eventbus/event-bus.service';\r\nimport { MeteoInfoUpdatedEvent, STnetStatusUpdatedEvent } from 'src/app/core/eventbus/events';\r\nimport { STnetExportResponse } from 'src/app/core/stnet/stnet-export-response.model';\r\nimport { STnetStatus } from 'src/app/core/stnet/stnet-status.model';\r\nimport { DestinationService } from 'src/app/domain/destination/destination.service';\r\nimport { Feature } from 'src/app/domain/feature/feature.model';\r\nimport { FeatureAccessLevel } from 'src/app/domain/feature/feature-access-level.model';\r\nimport { FeatureId } from 'src/app/domain/feature/feature-id.model';\r\nimport { UserSettingsService } from 'src/app/domain/user-settings/user-settings.service';\r\nimport { MeteoInfoAdapter } from 'src/app/meteo-info/domain/meteo-info.adapter';\r\nimport { MeteoInfo } from 'src/app/meteo-info/domain/meteo-info.model';\r\nimport { MeteoInfoItem } from 'src/app/meteo-info/domain/meteo-info-item.model';\r\nimport { UserMessage } from 'src/app/user-message/user-message.model';\r\nimport { UserMessageService } from 'src/app/user-message/user-message.service';\r\nimport { UserMessageColor } from 'src/app/user-message/user-message-color';\r\nimport { UserMessageIcon } from 'src/app/user-message/user-message-icon';\r\nimport { environment } from 'src/environments/environment';\r\n\r\n@Injectable({\r\n providedIn: 'root',\r\n})\r\nexport class MeteoInfoService {\r\n private readonly baseRequestUrl: string = '/meteoinfo/get';\r\n private readonly basePostUrl: string = '/meteoinfo/post';\r\n private readonly baseSTnetUrl: string = '/stnet/export/snowdata';\r\n private readonly requiredFeature = new Feature(FeatureId.SISMEDIA_METEOINFO, FeatureAccessLevel.READ);\r\n\r\n private readonly stnetStatusArrayUpdate$ = new Subject();\r\n\r\n private readonly meteoInfo$: Observable = this.destinationService.selectedTenantFeatures$.pipe(\r\n distinctUntilChanged(),\r\n filter((features) => features.some((feature) => feature.hasMinimumRequirementFor(this.requiredFeature))),\r\n switchMap(() => this.http.get(`${environment.baseUrlApi}${this.baseRequestUrl}`)),\r\n map((data) => MeteoInfoAdapter.adapt(data)),\r\n shareReplay({\r\n bufferSize: 1,\r\n refCount: true,\r\n })\r\n );\r\n\r\n readonly meteoInfoItems: Observable = merge(\r\n this.meteoInfo$.pipe(map((meteoInfo) => meteoInfo.meteoInfoItems)),\r\n this.eventBus.observe(MeteoInfoUpdatedEvent).pipe(\r\n withLatestFrom(this.destinationService.selectedTenant$),\r\n filter(([updatedEvent, tenant]) => updatedEvent?.tenantGuid === tenant?.guid.toString()),\r\n withLatestFrom(this.meteoInfo$, this.userSettingsService.userSettings$),\r\n map(([[updatedEvent], meteoInfo, userSettings]) => {\r\n meteoInfo.meteoInfoItems.forEach((meteoInfoItem) => {\r\n const updatedEventItem = updatedEvent.meteoInfoItems.find((u) => u.guid === meteoInfoItem.guid);\r\n if (updatedEventItem) {\r\n meteoInfoItem.freshSnow = updatedEventItem.freshSnow;\r\n meteoInfoItem.latestSnowfallUtc = updatedEventItem.latestSnowfallUtc;\r\n meteoInfoItem.lastChange = updatedEventItem.lastChange;\r\n meteoInfoItem.temperature = updatedEventItem.temperature;\r\n meteoInfoItem.windSpeed = updatedEventItem.windSpeed;\r\n meteoInfoItem.snowDepth = updatedEventItem.snowDepth;\r\n meteoInfoItem.avalancheDangerLevel = updatedEventItem.avalancheDangerLevel;\r\n meteoInfoItem.snowConditionId = updatedEventItem.snowConditionId;\r\n meteoInfoItem.slopeConditionId = updatedEventItem.slopeConditionId;\r\n meteoInfoItem.changedByEmail = updatedEventItem.changedByEmail;\r\n }\r\n });\r\n\r\n if (updatedEvent?.changedBy === userSettings.userGuid) {\r\n const userMessage = updatedEvent.updateSuccessful\r\n ? new UserMessage({\r\n message: 'general.phrase.saved',\r\n icon: UserMessageIcon.success,\r\n durationMs: 2000,\r\n position: 'top',\r\n color: UserMessageColor.green,\r\n })\r\n : new UserMessage({\r\n message: 'general.phrase.saveFailed',\r\n icon: UserMessageIcon.failed,\r\n durationMs: 2000,\r\n position: 'top',\r\n color: UserMessageColor.red,\r\n });\r\n\r\n this.userMessageService.presentToast(userMessage);\r\n }\r\n\r\n return meteoInfo.meteoInfoItems;\r\n })\r\n )\r\n ).pipe(\r\n shareReplay({\r\n bufferSize: 1,\r\n refCount: true,\r\n })\r\n );\r\n\r\n readonly stnetStatusArray$: Observable = merge(\r\n this.meteoInfo$.pipe(map((meteoInfo) => meteoInfo.stnetStatusArray)),\r\n this.stnetStatusArrayUpdate$,\r\n this.eventBus.observe(STnetStatusUpdatedEvent).pipe(\r\n withLatestFrom(\r\n this.destinationService.selectedTenant$,\r\n this.meteoInfo$.pipe(map((meteoInfo) => meteoInfo.stnetStatusArray))\r\n ),\r\n filter(\r\n ([stnetUpdate, tenant]) =>\r\n stnetUpdate?.status?.featureId === FeatureId.SISMEDIA_METEOINFO && stnetUpdate?.tenantGuid === tenant?.guid\r\n ),\r\n map(([stnetUpdate, , stnetStatusArray]) => {\r\n const updatedStatus = stnetStatusArray.find((status) => status.stationId === stnetUpdate.status.stationId);\r\n if (updatedStatus) {\r\n Object.assign(updatedStatus, stnetUpdate.status);\r\n } else {\r\n stnetStatusArray.push(stnetUpdate.status);\r\n }\r\n return stnetStatusArray;\r\n })\r\n )\r\n ).pipe(\r\n shareReplay({\r\n bufferSize: 1,\r\n refCount: true,\r\n })\r\n );\r\n\r\n constructor(\r\n private eventBus: EventBusService,\r\n private http: HttpClient,\r\n private userMessageService: UserMessageService,\r\n private destinationService: DestinationService,\r\n private userSettingsService: UserSettingsService\r\n ) {}\r\n\r\n async saveMeteoInfoItems(meteoInfoItems: MeteoInfoItem[]): Promise {\r\n const postData = meteoInfoItems.map((item) => ({\r\n guid: item.guid,\r\n temperature: item.temperature,\r\n windSpeed: item.windSpeed,\r\n latestSnowfallUtc: item.latestSnowfallUtc,\r\n snowDepth: item.snowDepth,\r\n freshSnow: item.freshSnow,\r\n avalancheDangerLevel: item.avalancheDangerLevel,\r\n snowConditionId: item.snowConditionId,\r\n slopeConditionId: item.slopeConditionId,\r\n }));\r\n\r\n return firstValueFrom(\r\n this.http.post(`${environment.baseUrlApi}${this.basePostUrl}`, postData).pipe(\r\n map(() => true),\r\n catchError(() => {\r\n const translateKey = 'general.phrase.saveFailed';\r\n const userMessage = new UserMessage({\r\n message: translateKey,\r\n icon: UserMessageIcon.failed,\r\n durationMs: 2000,\r\n position: 'top',\r\n color: UserMessageColor.red,\r\n });\r\n this.userMessageService.presentToast(userMessage);\r\n return of(false);\r\n })\r\n )\r\n );\r\n }\r\n\r\n async exportSTnetMeteoInfoItems(): Promise {\r\n const exportResponses = await firstValueFrom(\r\n this.http.get(`${environment.baseUrlApi}${this.baseSTnetUrl}`).pipe(\r\n catchError(() => {\r\n const translateKey = 'meteoInfo.phrase.stnet.export.unsuccessful';\r\n const userMessage = new UserMessage({\r\n message: translateKey,\r\n icon: UserMessageIcon.failed,\r\n durationMs: 2000,\r\n position: 'top',\r\n color: UserMessageColor.red,\r\n });\r\n this.userMessageService.presentToast(userMessage);\r\n return of([]);\r\n })\r\n )\r\n );\r\n\r\n const successResponses = exportResponses?.filter((response) => response.success);\r\n\r\n if (successResponses?.length && exportResponses.every((response) => response.success)) {\r\n const translateKey = 'stnet.phrase.export.successful';\r\n const userMessage = new UserMessage({\r\n message: translateKey,\r\n icon: UserMessageIcon.success,\r\n durationMs: 2000,\r\n position: 'top',\r\n color: UserMessageColor.green,\r\n });\r\n this.userMessageService.presentToast(userMessage);\r\n } else {\r\n const translateKey = 'meteoInfo.phrase.stnet.export.unsuccessful';\r\n const userMessage = new UserMessage({\r\n message: translateKey,\r\n icon: UserMessageIcon.failed,\r\n durationMs: 2000,\r\n position: 'top',\r\n color: UserMessageColor.red,\r\n });\r\n this.userMessageService.presentToast(userMessage);\r\n }\r\n\r\n if (successResponses) {\r\n this.stnetStatusArrayUpdate$.next(successResponses.map((response) => response.requestStatus));\r\n }\r\n }\r\n}\r\n","import { OperatingInfoEntry } from 'src/app/operating-info/domain/operating-info-entry.model';\r\nimport { OperatingInfoTextAdapter as OperatingInfoTextAdapter } from 'src/app/operating-info/domain/operating-info-text.adapter';\r\n\r\nexport class OperatingInfoEntryAdapter {\r\n static adapt(item: any): OperatingInfoEntry[] {\r\n const library: OperatingInfoEntry[] = [];\r\n\r\n if (item) {\r\n item.forEach((e: any) => {\r\n if (e) {\r\n library.push({\r\n guid: e.guid,\r\n priority: e.priority,\r\n color: e.color,\r\n text: OperatingInfoTextAdapter.adapt(e.text),\r\n active: e.active,\r\n });\r\n }\r\n });\r\n }\r\n\r\n return library;\r\n }\r\n}\r\n","import { OperatingInfoDefaultTitle } from 'src/app/operating-info/domain/operating-info-default-title.model';\r\nimport { OperatingInfoEntryAdapter } from 'src/app/operating-info/domain/operating-info-entry.adapter';\r\nimport { OperatingInfoPriority } from 'src/app/operating-info/domain/operating-info-priority';\r\nimport { OperatingInfoRequestData } from 'src/app/operating-info/domain/operating-info-request-data.model';\r\n\r\nexport class OperatingInfoRequestDataAdapter {\r\n static adapt(item: any): OperatingInfoRequestData | null {\r\n if (!item) {\r\n return null;\r\n }\r\n\r\n return {\r\n libraryEntries: OperatingInfoEntryAdapter.adapt(item.libraryEntries),\r\n priorities: this.getPriorities(item),\r\n defaultTitles: this.getDefaultTitles(item),\r\n url: item.url,\r\n };\r\n }\r\n\r\n private static getPriorities(item: any): OperatingInfoPriority[] {\r\n const result: OperatingInfoPriority[] = [];\r\n\r\n if (item && item.priorities) {\r\n item.priorities.forEach((priority) => {\r\n result.push({\r\n color: priority.color,\r\n description: priority.description,\r\n priority: priority.priority,\r\n });\r\n });\r\n }\r\n\r\n result.sort((a, b) => a.priority - b.priority);\r\n\r\n return result;\r\n }\r\n\r\n private static getDefaultTitles(item: any): OperatingInfoDefaultTitle[] {\r\n const result: OperatingInfoDefaultTitle[] = [];\r\n\r\n if (item && item.defaultTitles) {\r\n item.defaultTitles.forEach((defaultTitle) => {\r\n result.push({\r\n language: defaultTitle.language,\r\n title: defaultTitle.title,\r\n });\r\n });\r\n }\r\n\r\n return result;\r\n }\r\n}\r\n","import { OperatingInfoText } from 'src/app/operating-info/domain/operating-info-text.model';\r\n\r\nexport class OperatingInfoTextAdapter {\r\n static adapt(item: any): OperatingInfoText[] {\r\n const texts: OperatingInfoText[] = [];\r\n\r\n item.forEach((e: any) => {\r\n texts.push({\r\n language: e.language,\r\n text: e.text,\r\n title: e.title,\r\n description: e.description,\r\n });\r\n });\r\n\r\n return texts;\r\n }\r\n}\r\n","import { Component } from '@angular/core';\r\nimport { ModalController } from '@ionic/angular';\r\n\r\n@Component({\r\n templateUrl: './operating-info-infoscreen.component.html',\r\n styleUrls: ['./operating-info-infoscreen.component.scss'],\r\n standalone: false\r\n})\r\nexport class OperatingInfoInfoScreenComponent {\r\n safeInfoLink: string;\r\n iconName: string;\r\n\r\n constructor(private modalCtrl: ModalController) {}\r\n\r\n done(): void {\r\n this.modalCtrl.dismiss();\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, OnChanges } from '@angular/core';\r\nimport { ModalController } from '@ionic/angular';\r\nimport { TranslateService } from '@ngx-translate/core';\r\nimport { takeUntil } from 'rxjs/operators';\r\nimport { Unsubscriber } from 'src/app/core/unsubscriber';\r\nimport { ConfirmationDialogService } from 'src/app/core/utils/confirmation-dialog.service';\r\nimport { OperatingInfoEntry } from 'src/app/operating-info/domain/operating-info-entry.model';\r\nimport { OperatingInfoService } from 'src/app/operating-info/operating-info.service';\r\nimport { OperatingInfoEntryEditComponent } from 'src/app/operating-info/sis-operating-info-entry-edit/sis-operating-info-entry-edit.component';\r\n\r\n@Component({\r\n selector: 'sis-operating-info-item',\r\n templateUrl: './operating-info-item.component.html',\r\n styleUrls: ['./operating-info-item.component.scss'],\r\n standalone: false\r\n})\r\nexport class OperatingInfoItemComponent extends Unsubscriber implements OnChanges {\r\n @Input() entry: OperatingInfoEntry;\r\n @Input() editable: boolean;\r\n\r\n color: string;\r\n description: string;\r\n text: string;\r\n\r\n constructor(\r\n private translateService: TranslateService,\r\n private operatingInfoService: OperatingInfoService,\r\n private modalCtrl: ModalController,\r\n private confirmationDialogService: ConfirmationDialogService\r\n ) {\r\n super();\r\n this.translateService.onLangChange.pipe(takeUntil(this.onDestroy$)).subscribe(() => this.update());\r\n this.operatingInfoService.library$.pipe(takeUntil(this.onDestroy$)).subscribe(() => this.update());\r\n }\r\n\r\n ngOnChanges(): void {\r\n this.update();\r\n }\r\n\r\n private update() {\r\n if (!this.entry) {\r\n return;\r\n }\r\n\r\n const langKey = this.translateService.currentLang;\r\n const text = this.entry.text.find((text) => text.language === langKey) ?? this.entry.text[0];\r\n\r\n this.color = this.entry.color;\r\n this.description = text.description;\r\n this.text = text.text;\r\n }\r\n\r\n async showLibraryItem(): Promise {\r\n const modal = await this.modalCtrl.create({\r\n component: OperatingInfoEntryEditComponent,\r\n cssClass: 'sis-operatinginfo-edit-modal',\r\n componentProps: {\r\n operatingInfoLibraryEntry: this.entry,\r\n },\r\n backdropDismiss: false,\r\n });\r\n\r\n return modal.present();\r\n }\r\n\r\n async delete(): Promise {\r\n const confirmed = await this.confirmationDialogService.presentAlert(\r\n 'mediacenter.phrase.deleteFile',\r\n 'general.term.delete'\r\n );\r\n\r\n if (confirmed) {\r\n await this.operatingInfoService.updateLibrary(this.entry, OperatingInfoService.deleteOperation);\r\n }\r\n }\r\n}\r\n","
\r\n\r\n \r\n \r\n \r\n \r\n \r\n {{ this.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 \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 { CommonModule } from '@angular/common';\r\nimport { NgModule } from '@angular/core';\r\nimport { FormsModule, ReactiveFormsModule } from '@angular/forms';\r\nimport { MatTooltipModule } from '@angular/material/tooltip';\r\nimport { RouterModule } from '@angular/router';\r\nimport { IonicModule } from '@ionic/angular';\r\nimport { TranslateModule } from '@ngx-translate/core';\r\nimport { CoreModule } from 'src/app/core/core.module';\r\nimport { OperatingInfoPage } from 'src/app/operating-info/operating-info.page';\r\nimport { OperatingInfoInfoScreenComponent } from 'src/app/operating-info/operating-info-infoscreen/operating-info-infoscreen.component';\r\nimport { OperatingInfoItemComponent } from 'src/app/operating-info/operating-info-item/operating-info-item.component';\r\nimport { OperatingInfoEntryEditComponent } from 'src/app/operating-info/sis-operating-info-entry-edit/sis-operating-info-entry-edit.component';\r\nimport { QRCodeComponent } from 'angularx-qrcode';\r\n\r\n@NgModule({\r\n declarations: [\r\n OperatingInfoPage,\r\n OperatingInfoItemComponent,\r\n OperatingInfoEntryEditComponent,\r\n OperatingInfoInfoScreenComponent,\r\n ],\r\n imports: [\r\n CommonModule,\r\n FormsModule,\r\n IonicModule,\r\n CoreModule,\r\n MatTooltipModule,\r\n RouterModule.forChild([\r\n {\r\n path: '',\r\n component: OperatingInfoPage,\r\n },\r\n ]),\r\n TranslateModule,\r\n ReactiveFormsModule,\r\n QRCodeComponent,\r\n ],\r\n})\r\nexport class OperatingInfoPageModule {}\r\n","import { Component, OnInit } from '@angular/core';\r\nimport { DomSanitizer } from '@angular/platform-browser';\r\nimport { ModalController } from '@ionic/angular';\r\nimport { takeUntil } from 'rxjs/operators';\r\nimport { LogbookModalService } from 'src/app/core/components/logbook/logbook-modal/logbook-modal.service';\r\nimport { Unsubscriber } from 'src/app/core/unsubscriber';\r\nimport { ScreenSizeService } from 'src/app/core/utils/screen-size.service';\r\nimport { DestinationService } from 'src/app/domain/destination/destination.service';\r\nimport { Feature } from 'src/app/domain/feature/feature.model';\r\nimport { FeatureAccessLevel } from 'src/app/domain/feature/feature-access-level.model';\r\nimport { FeatureId } from 'src/app/domain/feature/feature-id.model';\r\nimport { OperatingInfoEntry } from 'src/app/operating-info/domain/operating-info-entry.model';\r\nimport { OperatingInfoService } from 'src/app/operating-info/operating-info.service';\r\nimport { OperatingInfoInfoScreenComponent } from 'src/app/operating-info/operating-info-infoscreen/operating-info-infoscreen.component';\r\nimport { OperatingInfoEntryEditComponent } from 'src/app/operating-info/sis-operating-info-entry-edit/sis-operating-info-entry-edit.component';\r\nimport { environment } from 'src/environments/environment';\r\n\r\n@Component({\r\n templateUrl: './operating-info.page.html',\r\n styleUrls: ['./operating-info.page.scss'],\r\n standalone: false\r\n})\r\nexport class OperatingInfoPage extends Unsubscriber implements OnInit {\r\n private static readonly requiredFeature = new Feature(FeatureId.OPERATINGINFO, FeatureAccessLevel.WRITE);\r\n\r\n readonly logbookAvailable$ = this.logbookModalService.logbookAvailable$;\r\n\r\n infoLinkString: string;\r\n library: OperatingInfoEntry[];\r\n selectedLibraryItem: OperatingInfoEntry;\r\n isActiveTextInLibrary: boolean;\r\n writePermission: boolean;\r\n bigScreenMode: boolean;\r\n activeText: OperatingInfoEntry;\r\n updating: boolean = false;\r\n featureId = FeatureId.OPERATINGINFO;\r\n\r\n get changed(): boolean {\r\n return this.activeText !== this.selectedLibraryItem;\r\n }\r\n\r\n constructor(\r\n private modalCtrl: ModalController,\r\n private destinationService: DestinationService,\r\n private logbookModalService: LogbookModalService,\r\n private operatingInfoService: OperatingInfoService,\r\n private sanitizer: DomSanitizer,\r\n private screenSizeService: ScreenSizeService\r\n ) {\r\n super();\r\n }\r\n\r\n ngOnInit() {\r\n this.screenSizeService.bigScreenMode$\r\n .pipe(takeUntil(this.onDestroy$))\r\n .subscribe((bigScreenMode) => (this.bigScreenMode = bigScreenMode));\r\n\r\n this.operatingInfoService.updating\r\n .pipe(takeUntil(this.onDestroy$))\r\n .subscribe((updating) => (this.updating = updating));\r\n this.destinationService.selectedTenantFeatures$.pipe(takeUntil(this.onDestroy$)).subscribe((features) => {\r\n this.writePermission =\r\n features.some((f) => f.hasMinimumRequirementFor(OperatingInfoPage.requiredFeature)) ?? false;\r\n });\r\n\r\n this.operatingInfoService.library$.pipe(takeUntil(this.onDestroy$)).subscribe((library) => {\r\n this.library = library.sort((a, b) => a.priority - b.priority);\r\n this.activeText = library.find((e) => e.active);\r\n this.reset();\r\n });\r\n\r\n this.generateInfoLink();\r\n }\r\n\r\n async updateActiveText(): Promise {\r\n this.library.forEach((libraryEntry) => {\r\n libraryEntry.active = false;\r\n\r\n if (libraryEntry.guid === this.selectedLibraryItem.guid) {\r\n libraryEntry.active = true;\r\n }\r\n });\r\n await this.operatingInfoService.updateActiveText(this.library);\r\n }\r\n\r\n private generateInfoLink(): void {\r\n this.operatingInfoService.subUrl$.pipe(takeUntil(this.onDestroy$)).subscribe((subUrl) => {\r\n this.infoLinkString = environment.publicWebApp + '/operatinginfo/' + subUrl;\r\n });\r\n }\r\n\r\n async showLibraryItem(selectedOperatingInfoLibraryEntry: OperatingInfoEntry): Promise {\r\n const modal = await this.modalCtrl.create({\r\n component: OperatingInfoEntryEditComponent,\r\n cssClass: 'sis-operatinginfo-edit-modal',\r\n componentProps: {\r\n operatingInfoLibraryEntry: selectedOperatingInfoLibraryEntry,\r\n },\r\n backdropDismiss: false,\r\n });\r\n\r\n return modal.present();\r\n }\r\n\r\n async openOperatingInfo(externalWindow: boolean = false): Promise {\r\n const safeInfoLink = this.sanitizer.bypassSecurityTrustResourceUrl(this.infoLinkString);\r\n\r\n if (!externalWindow && this.bigScreenMode) {\r\n const modal = await this.modalCtrl.create({\r\n component: OperatingInfoInfoScreenComponent,\r\n cssClass: 'sis-mobile-size-modal',\r\n componentProps: {\r\n safeInfoLink,\r\n },\r\n });\r\n\r\n return modal.present();\r\n }\r\n\r\n window.open(this.infoLinkString, '_blank');\r\n }\r\n\r\n reset() {\r\n this.selectedLibraryItem = this.library?.find((e) => e.active);\r\n }\r\n\r\n itemId(_: number, item: OperatingInfoEntry) {\r\n return item.guid;\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 {{\"general.term.operatinginfo\" | translate}}\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 { HttpClient } from '@angular/common/http';\r\nimport { Injectable } from '@angular/core';\r\nimport { firstValueFrom, merge, Observable, of, ReplaySubject } from 'rxjs';\r\nimport { distinctUntilChanged, filter, map, shareReplay, switchMap, withLatestFrom } from 'rxjs/operators';\r\nimport { EventBusService } from 'src/app/core/eventbus/event-bus.service';\r\nimport { OperatingInfoActiveTextUpdatedEvent, OperatingInfoLibraryUpdatedEvent } from 'src/app/core/eventbus/events';\r\nimport { DestinationService } from 'src/app/domain/destination/destination.service';\r\nimport { Feature } from 'src/app/domain/feature/feature.model';\r\nimport { FeatureAccessLevel } from 'src/app/domain/feature/feature-access-level.model';\r\nimport { FeatureId } from 'src/app/domain/feature/feature-id.model';\r\nimport { UserSettingsService } from 'src/app/domain/user-settings/user-settings.service';\r\nimport { OperatingInfoEntry } from 'src/app/operating-info/domain/operating-info-entry.model';\r\nimport { OperatingInfoRequestDataAdapter } from 'src/app/operating-info/domain/operating-info-request-data.adapter';\r\nimport { OperatingInfoRequestData } from 'src/app/operating-info/domain/operating-info-request-data.model';\r\nimport { UserMessage } from 'src/app/user-message/user-message.model';\r\nimport { UserMessageService } from 'src/app/user-message/user-message.service';\r\nimport { UserMessageColor } from 'src/app/user-message/user-message-color';\r\nimport { UserMessageIcon } from 'src/app/user-message/user-message-icon';\r\nimport { environment } from 'src/environments/environment';\r\n\r\n@Injectable({\r\n providedIn: 'root',\r\n})\r\nexport class OperatingInfoService {\r\n static readonly insertOperation = 'insert';\r\n static readonly updateOperation = 'update';\r\n static readonly deleteOperation = 'delete';\r\n\r\n private static readonly dataRequestUrl: string = '/operatinginfo/getdata';\r\n private static readonly updateLibraryPostUrl: string = '/operatinginfo/updatelibraryitem';\r\n private static readonly useActiveTextPostUrl = '/operatinginfo/useactivetext';\r\n\r\n private readonly requiredFeature = new Feature(FeatureId.OPERATINGINFO, FeatureAccessLevel.READ);\r\n private readonly updating$ = new ReplaySubject(1);\r\n\r\n readonly operatingInfoRequestData$: Observable =\r\n this.destinationService.selectedTenantFeatures$.pipe(\r\n switchMap((features) => {\r\n if (!features.some((feature) => feature.hasMinimumRequirementFor(this.requiredFeature))) {\r\n return of({ libraryEntries: [], priorities: [], url: null });\r\n } else {\r\n return this.http\r\n .get(`${environment.baseUrlApi}${OperatingInfoService.dataRequestUrl}`)\r\n .pipe(map((data: any) => OperatingInfoRequestDataAdapter.adapt(data)));\r\n }\r\n }),\r\n shareReplay({\r\n bufferSize: 1,\r\n refCount: true,\r\n })\r\n );\r\n\r\n private readonly libraryRequest$: Observable = this.operatingInfoRequestData$.pipe(\r\n map((data) => data.libraryEntries)\r\n );\r\n\r\n private readonly activeTextUpdate$: Observable = this.eventBus\r\n .observe(OperatingInfoActiveTextUpdatedEvent)\r\n .pipe(\r\n withLatestFrom(this.destinationService.selectedTenant$),\r\n filter(([event, tenant]) => event?.updateSuccessful && event?.tenantGuid === tenant.guid),\r\n withLatestFrom(this.operatingInfoRequestData$, this.userSettingService.userSettings$),\r\n map(([[event], operatingInfo, userSettings]) => {\r\n if (event && event.changedBy === userSettings.userGuid) {\r\n this.presentToast(event.updateSuccessful);\r\n this.updating$.next(false);\r\n }\r\n\r\n operatingInfo.libraryEntries = event.operatingInfoEntries;\r\n\r\n return operatingInfo.libraryEntries;\r\n })\r\n );\r\n\r\n private readonly libraryUpdate$: Observable = this.eventBus\r\n .observe(OperatingInfoLibraryUpdatedEvent)\r\n .pipe(\r\n withLatestFrom(this.destinationService.selectedTenant$),\r\n filter(([event, tenant]) => event?.tenantGuid === tenant.guid),\r\n withLatestFrom(this.operatingInfoRequestData$, this.userSettingService.userSettings$),\r\n map(([[event], operatingInfo, userSettings]) => {\r\n const library = operatingInfo.libraryEntries;\r\n const oldEntry = library.find((l) => l.guid === event.operatingInfoLibraryEntry.guid);\r\n if (oldEntry) {\r\n if (!event.removed) {\r\n Object.assign(oldEntry, event.operatingInfoLibraryEntry);\r\n } else {\r\n library.splice(library.indexOf(oldEntry), 1);\r\n }\r\n } else {\r\n library.push(event.operatingInfoLibraryEntry);\r\n }\r\n\r\n if (event && event.changedBy === userSettings.userGuid) {\r\n this.presentToast(true);\r\n }\r\n\r\n this.updating$.next(false);\r\n return library;\r\n })\r\n );\r\n\r\n readonly subUrl$ = this.operatingInfoRequestData$.pipe(map((data) => data.url));\r\n\r\n readonly library$: Observable = merge(\r\n this.libraryRequest$,\r\n this.libraryUpdate$,\r\n this.activeTextUpdate$\r\n ).pipe(\r\n shareReplay({\r\n bufferSize: 1,\r\n refCount: true,\r\n })\r\n );\r\n\r\n readonly updating: Observable = this.updating$.pipe(\r\n distinctUntilChanged(),\r\n shareReplay({\r\n bufferSize: 1,\r\n refCount: true,\r\n })\r\n );\r\n\r\n constructor(\r\n private http: HttpClient,\r\n private userSettingService: UserSettingsService,\r\n private userMessageService: UserMessageService,\r\n private destinationService: DestinationService,\r\n private eventBus: EventBusService\r\n ) {}\r\n\r\n async updateLibrary(operatingInfoLibraryEntry: OperatingInfoEntry, operation: string): Promise {\r\n this.updating$.next(true);\r\n\r\n const url = `${environment.baseUrlApi}${OperatingInfoService.updateLibraryPostUrl}`;\r\n\r\n try {\r\n await firstValueFrom(\r\n this.http.post(url, {\r\n OperatingInfoLibraryEntry: operatingInfoLibraryEntry,\r\n Operation: operation,\r\n })\r\n );\r\n } catch {\r\n await this.presentToast(false);\r\n this.updating$.next(false);\r\n return false;\r\n }\r\n\r\n return true;\r\n }\r\n\r\n async updateActiveText(operatingInfoEntries: OperatingInfoEntry[]): Promise {\r\n this.updating$.next(true);\r\n\r\n const url = `${environment.baseUrlApi}${OperatingInfoService.useActiveTextPostUrl}`;\r\n\r\n try {\r\n await firstValueFrom(this.http.post(url, { OperatingInfoEntries: operatingInfoEntries }));\r\n } catch {\r\n await this.presentToast(false);\r\n this.updating$.next(false);\r\n }\r\n }\r\n\r\n private async presentToast(successful: boolean): Promise {\r\n const translateKey = successful ? 'general.phrase.saved' : 'general.phrase.saveFailed';\r\n const userMessage = new UserMessage({\r\n message: translateKey,\r\n icon: successful ? UserMessageIcon.success : UserMessageIcon.failed,\r\n durationMs: 2000,\r\n position: 'top',\r\n color: successful ? UserMessageColor.green : UserMessageColor.red,\r\n showCloseButton: false,\r\n });\r\n await this.userMessageService.presentToast(userMessage);\r\n }\r\n}\r\n","import { Component, Input, OnInit } from '@angular/core';\r\nimport { AbstractControl, FormControl, FormGroup, Validators } from '@angular/forms';\r\nimport { ModalController } from '@ionic/angular';\r\nimport { TranslateService } from '@ngx-translate/core';\r\nimport { takeUntil } from 'rxjs/operators';\r\nimport { Unsubscriber } from 'src/app/core/unsubscriber';\r\nimport { ScreenSizeService } from 'src/app/core/utils/screen-size.service';\r\nimport { OperatingInfoDefaultTitle } from 'src/app/operating-info/domain/operating-info-default-title.model';\r\nimport { OperatingInfoEntry } from 'src/app/operating-info/domain/operating-info-entry.model';\r\nimport { OperatingInfoPriority } from 'src/app/operating-info/domain/operating-info-priority';\r\nimport { OperatingInfoText } from 'src/app/operating-info/domain/operating-info-text.model';\r\nimport { OperatingInfoService } from 'src/app/operating-info/operating-info.service';\r\n\r\n@Component({\r\n selector: 'sis-operating-info-entry-edit',\r\n templateUrl: './sis-operating-info-entry-edit.component.html',\r\n styleUrls: ['./sis-operating-info-entry-edit.component.scss'],\r\n standalone: false\r\n})\r\nexport class OperatingInfoEntryEditComponent extends Unsubscriber implements OnInit {\r\n oldItem: OperatingInfoEntry;\r\n libraryItem: OperatingInfoEntry;\r\n bigScreenMode: boolean;\r\n defaultTitles: OperatingInfoDefaultTitle[];\r\n hasDefaultTitle: boolean;\r\n priorities: OperatingInfoPriority[];\r\n formGroup: FormGroup;\r\n formControls: {\r\n [key: string]: AbstractControl;\r\n };\r\n\r\n @Input('operatingInfoLibraryEntry') operatingInfoLibraryEntry: OperatingInfoEntry;\r\n\r\n constructor(\r\n private operatingInfoService: OperatingInfoService,\r\n private translateService: TranslateService,\r\n private modalCtrl: ModalController,\r\n private screenSizeService: ScreenSizeService\r\n ) {\r\n super();\r\n\r\n this.formGroup = new FormGroup({\r\n descriptionDe: new FormControl('', Validators.required),\r\n titleDe: new FormControl({ value: '', disabled: true }, Validators.required),\r\n textDe: new FormControl('', Validators.required),\r\n });\r\n\r\n this.formControls = this.formGroup.controls;\r\n\r\n this.formGroup.valueChanges.pipe(takeUntil(this.onDestroy$)).subscribe(() => {\r\n const changedItem = this.formGroup.getRawValue();\r\n if (this.libraryItem) {\r\n const textDe = this.libraryItem.text?.find((t) => t.language === 'de');\r\n if (textDe) {\r\n textDe.description = changedItem.descriptionDe;\r\n textDe.text = changedItem.textDe;\r\n textDe.title = changedItem.titleDe;\r\n }\r\n }\r\n });\r\n }\r\n\r\n ngOnInit(): void {\r\n this.screenSizeService.bigScreenMode$\r\n .pipe(takeUntil(this.onDestroy$))\r\n .subscribe((bigScreenMode) => (this.bigScreenMode = bigScreenMode));\r\n\r\n this.operatingInfoService.operatingInfoRequestData$.pipe(takeUntil(this.onDestroy$)).subscribe((data) => {\r\n this.defaultTitles = data.defaultTitles;\r\n this.hasDefaultTitle = data.defaultTitles?.length > 0;\r\n this.priorities = data.priorities.filter((p) => p.priority != 0);\r\n\r\n if (this.hasDefaultTitle) {\r\n this.formGroup.controls['titleDe'].disable({ emitEvent: false });\r\n } else {\r\n this.formGroup.controls['titleDe'].enable({ emitEvent: false });\r\n }\r\n\r\n this.setItem(this.operatingInfoLibraryEntry);\r\n });\r\n }\r\n\r\n async insert(): Promise {\r\n if (this.formGroup.valid) {\r\n this.libraryItem.color = this.priorities.find((p) => p.priority === this.libraryItem.priority).color;\r\n const success = await this.operatingInfoService.updateLibrary(\r\n this.libraryItem,\r\n OperatingInfoService.insertOperation\r\n );\r\n if (success) {\r\n this.close();\r\n }\r\n }\r\n }\r\n\r\n async update(): Promise {\r\n if (this.formGroup.valid) {\r\n this.libraryItem.color = this.priorities.find((p) => p.priority === this.libraryItem.priority).color;\r\n const success = await this.operatingInfoService.updateLibrary(\r\n this.libraryItem,\r\n OperatingInfoService.updateOperation\r\n );\r\n if (success) {\r\n this.close();\r\n }\r\n }\r\n }\r\n\r\n close(): void {\r\n this.modalCtrl.dismiss();\r\n }\r\n\r\n private setItem(item: OperatingInfoEntry): void {\r\n this.oldItem = item;\r\n\r\n if (this.oldItem) {\r\n const text: OperatingInfoText[] = [];\r\n this.oldItem.text.forEach((t) => {\r\n text.push({\r\n language: t.language,\r\n text: t.text,\r\n title: t.title,\r\n description: t.description,\r\n });\r\n });\r\n\r\n this.libraryItem = {\r\n color: this.oldItem.color,\r\n guid: this.oldItem.guid,\r\n priority: this.oldItem.priority,\r\n text: text,\r\n active: this.oldItem.active,\r\n };\r\n } else {\r\n const language = this.translateService.currentLang;\r\n let defaultTitle: OperatingInfoDefaultTitle;\r\n\r\n if (this.defaultTitles) {\r\n defaultTitle = this.defaultTitles.find((t) => t.language === language) ?? this.defaultTitles[0];\r\n }\r\n\r\n this.libraryItem = {\r\n priority: 1,\r\n active: false,\r\n text: [\r\n {\r\n language: defaultTitle?.language ?? 'de',\r\n title: defaultTitle?.title ?? '',\r\n },\r\n ],\r\n };\r\n }\r\n this.setFormValues(this.libraryItem);\r\n }\r\n\r\n private setFormValues(operatingInfoEntry: OperatingInfoEntry): void {\r\n const textDe = operatingInfoEntry.text.find((t) => t.language === 'de');\r\n\r\n if (textDe) {\r\n this.formGroup?.setValue(\r\n {\r\n titleDe: textDe.title ?? '',\r\n textDe: textDe.text ?? '',\r\n descriptionDe: textDe.description ?? '',\r\n },\r\n { emitEvent: false }\r\n );\r\n }\r\n }\r\n}\r\n","\r\n \r\n \r\n \r\n \r\n {{\r\n 'general.term.edit' | translate\r\n }}\r\n {{\r\n 'general.term.newEntry' | translate\r\n }}\r\n \r\n\r\n\r\n\r\n \r\n \r\n
\r\n \r\n {{ 'general.term.title' | translate }} \r\n \r\n \r\n \r\n \r\n \r\n {{ 'general.term.description' | translate }} \r\n \r\n \r\n \r\n \r\n \r\n \r\n {{ 'general.term.text' | translate }}\r\n \r\n \r\n \r\n \r\n \r\n
\r\n\r\n \r\n \r\n
{{ 'general.term.priority' | translate }}
\r\n \r\n \r\n \r\n
\r\n {{ priority.description | translate }}\r\n \r\n
\r\n
\r\n
\r\n
\r\n\r\n \r\n \r\n
\r\n
\r\n \r\n {{ 'general.term.title' | translate }} \r\n \r\n \r\n \r\n \r\n \r\n \r\n
\r\n \r\n {{ 'general.term.description' | translate }} \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n {{ 'general.term.text' | translate }} \r\n \r\n \r\n \r\n \r\n \r\n \r\n
\r\n\r\n \r\n \r\n
{{ 'general.term.priority' | translate }}
\r\n \r\n \r\n \r\n
\r\n {{ priority.description | translate }}\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 enum ParkingSetting {\r\n status,\r\n edit,\r\n exportMappings,\r\n occupancy,\r\n}\r\n","export enum ParkingStatus {\r\n Disabled = 0,\r\n Closed = 1,\r\n Free = 7,\r\n Full = 8,\r\n}\r\n","import { ExportAdapter } from 'src/app/domain/export/export.adapter';\r\nimport { Parking } from 'src/app/parking/domain/parking.model';\r\n\r\nexport class ParkingAdapter {\r\n static adapt(items: any): Parking[] {\r\n const result: Parking[] = [];\r\n\r\n if (items) {\r\n items.forEach((e: any) => {\r\n result.push(\r\n new Parking({\r\n id: e.id,\r\n guid: e.guid,\r\n name: e.name,\r\n label: e.label,\r\n status: e.status,\r\n lastStatusChange: new Date(e.lastStatusChange),\r\n cockpitOrder: e.cockpitOrder == null ? 999 : e.cockpitOrder,\r\n nameEn: e.nameEn,\r\n info: e.info,\r\n custom: e.custom,\r\n currentOccupancy: e.currentOccupancy,\r\n occupancyOffset: e.occupancyOffset,\r\n occupancyTimestamp: new Date(e.occupancyTimestamp),\r\n maxCapacity: e.maxCapacity,\r\n autoUpdate: e.autoUpdate,\r\n autoStatus: e.autoStatus,\r\n exports: ExportAdapter.adapt(e.exports),\r\n })\r\n );\r\n });\r\n }\r\n\r\n return result;\r\n }\r\n}\r\n","import { BehaviorSubject, Observable } from 'rxjs';\r\nimport { WritablePart } from 'src/app/core/utils/type-helper';\r\nimport { Export } from 'src/app/domain/export/export.model';\r\nimport { ParkingIconOptions } from 'src/app/parking/domain/parking-icon-options.model';\r\nimport { ParkingSetting } from 'src/app/parking/domain/parking-setting.enum';\r\nimport { ParkingStatus } from 'src/app/parking/domain/parking-status.enum';\r\n\r\nexport class Parking {\r\n private updating$: Map> = new Map<\r\n ParkingSetting,\r\n BehaviorSubject\r\n >();\r\n\r\n readonly iconOptions: ParkingIconOptions[] = [\r\n {\r\n parkingStatus: ParkingStatus.Disabled,\r\n iconName: 'sis-status-disabled',\r\n colorDisabledClassName: 'sis-disabled-black',\r\n colorEnabledClassName: 'sis-black',\r\n tooltipTranslationString: 'parking.term.disabled',\r\n dataTestString: 'parking-state-disabled',\r\n },\r\n {\r\n parkingStatus: ParkingStatus.Closed,\r\n iconName: 'sis-status-closed',\r\n colorDisabledClassName: 'sis-disabled-red',\r\n colorEnabledClassName: 'sis-red',\r\n tooltipTranslationString: 'parking.term.closed',\r\n dataTestString: 'parking-state-closed',\r\n },\r\n {\r\n parkingStatus: ParkingStatus.Full,\r\n iconName: 'sis-status-full',\r\n colorDisabledClassName: 'sis-disabled-red',\r\n colorEnabledClassName: 'sis-red',\r\n tooltipTranslationString: 'parking.term.full',\r\n dataTestString: 'parking-state-full',\r\n },\r\n {\r\n parkingStatus: ParkingStatus.Free,\r\n iconName: 'sis-status-open',\r\n colorDisabledClassName: 'sis-disabled-green',\r\n colorEnabledClassName: 'sis-green',\r\n tooltipTranslationString: 'parking.term.free',\r\n dataTestString: 'parking-state-free',\r\n },\r\n ];\r\n\r\n guid: string;\r\n id: number;\r\n name: string;\r\n nameEn: string;\r\n label: string;\r\n info: string;\r\n custom: string;\r\n status?: ParkingStatus;\r\n currentOccupancy: number;\r\n maxCapacity: number;\r\n occupancyOffset: number;\r\n autoUpdate: boolean;\r\n autoStatus: boolean;\r\n lastStatusChange: Date;\r\n cockpitOrder: number;\r\n occupancyTimestamp: Date;\r\n\r\n exports: Export[];\r\n\r\n constructor(init?: Partial>) {\r\n Object.assign(this, init);\r\n\r\n [ParkingSetting.status, ParkingSetting.edit, ParkingSetting.exportMappings, ParkingSetting.occupancy].forEach(\r\n (s) => {\r\n const updating = new BehaviorSubject(false);\r\n this.updating$.set(s, updating);\r\n }\r\n );\r\n }\r\n\r\n getUpdating(setting: ParkingSetting): Observable {\r\n return this.updating$.get(setting).asObservable();\r\n }\r\n\r\n setUpdating(setting: ParkingSetting, value: boolean): void {\r\n this.updating$.get(setting).next(value);\r\n }\r\n}\r\n","import { HttpClient } from '@angular/common/http';\r\nimport { Injectable } from '@angular/core';\r\nimport { firstValueFrom, merge, Observable, of } from 'rxjs';\r\nimport { catchError, filter, map, shareReplay, switchMap, withLatestFrom } from 'rxjs/operators';\r\nimport { EventBusService } from 'src/app/core/eventbus/event-bus.service';\r\nimport {\r\n ParkingCockpitOrderUpdatedEvent,\r\n ParkingCurrentOccupancyUpdatedEvent,\r\n ParkingEditedEvent,\r\n ParkingExportMappingUpdatedEvent,\r\n ParkingStatusUpdatedEvent,\r\n} from 'src/app/core/eventbus/events';\r\nimport { DestinationService } from 'src/app/domain/destination/destination.service';\r\nimport { Export } from 'src/app/domain/export/export.model';\r\nimport { ExportService } from 'src/app/domain/export/export.service';\r\nimport { UserSettings } from 'src/app/domain/user-settings/user-settings.model';\r\nimport { UserSettingsService } from 'src/app/domain/user-settings/user-settings.service';\r\nimport { ParkingAdapter } from 'src/app/parking/domain/parking.adapter';\r\nimport { Parking } from 'src/app/parking/domain/parking.model';\r\nimport { ParkingExportMappingPostData } from 'src/app/parking/domain/parking-export-mapping-postdata.model';\r\nimport { ParkingSetting } from 'src/app/parking/domain/parking-setting.enum';\r\nimport { ParkingStatus } from 'src/app/parking/domain/parking-status.enum';\r\nimport { UserMessage } from 'src/app/user-message/user-message.model';\r\nimport { UserMessageService } from 'src/app/user-message/user-message.service';\r\nimport { UserMessageColor } from 'src/app/user-message/user-message-color';\r\nimport { UserMessageIcon } from 'src/app/user-message/user-message-icon';\r\nimport { environment } from 'src/environments/environment';\r\n\r\n@Injectable({\r\n providedIn: 'root',\r\n})\r\nexport class ParkingService {\r\n private static readonly url: string = '/parking';\r\n\r\n private readonly parkingsRequest$: Observable = this.destinationService.selectedTenantFeatures$.pipe(\r\n filter((tenant) => !!tenant),\r\n switchMap(() =>\r\n this.http\r\n .get(`${environment.baseUrlApi}${ParkingService.url}`)\r\n .pipe(map((data) => ParkingAdapter.adapt(data)))\r\n ),\r\n shareReplay({\r\n bufferSize: 1,\r\n refCount: true,\r\n })\r\n );\r\n\r\n private readonly parkingStatusUpdated$: Observable = this.eventBus.observe(ParkingStatusUpdatedEvent).pipe(\r\n withLatestFrom(this.userSettingService.userSettings$, this.destinationService.selectedTenant$),\r\n filter(([event, , tenant]) => event.tenantGuid === tenant.guid),\r\n withLatestFrom(this.parkingsRequest$),\r\n map(([[event, user], parkings]) => this.handleStatusUpdatedEvent(event, parkings, user))\r\n );\r\n\r\n private readonly parkingUpdated$: Observable = this.eventBus.observe(ParkingEditedEvent).pipe(\r\n filter((event) => event.updateSuccessful),\r\n withLatestFrom(this.userSettingService.userSettings$, this.destinationService.selectedTenant$),\r\n filter(([event, , tenant]) => event.tenantGuid === tenant.guid),\r\n withLatestFrom(this.parkingsRequest$),\r\n map(([[event, user], parkings]) => this.handleEditedEvent(event, parkings, user))\r\n );\r\n\r\n private readonly exportMappingUpdated$: Observable = this.eventBus\r\n .observe(ParkingExportMappingUpdatedEvent)\r\n .pipe(\r\n filter((event) => event.updateSuccessful),\r\n withLatestFrom(this.destinationService.selectedTenant$, this.exportService.exports$),\r\n filter(([event, tenant]) => event.tenantGuid === tenant.guid),\r\n withLatestFrom(this.parkingsRequest$),\r\n map(([[event, , exports], parkings]) => this.handleExportMappingUpdatedEvent(event, parkings, exports))\r\n );\r\n\r\n private readonly parkingCockpitOrderUpdated$: Observable = this.eventBus\r\n .observe(ParkingCockpitOrderUpdatedEvent)\r\n .pipe(\r\n filter((event) => event.updateSuccessful),\r\n withLatestFrom(this.destinationService.selectedTenant$),\r\n filter(([event, tenant]) => event.tenantGuid === tenant.guid),\r\n withLatestFrom(this.parkingsRequest$),\r\n map(([[event], parkings]) => this.handleCockpitOrderUpdatedEvent(event, parkings))\r\n );\r\n\r\n private readonly parkingCurrentOccupancyUpdated$: Observable = this.eventBus\r\n .observe(ParkingCurrentOccupancyUpdatedEvent)\r\n .pipe(\r\n withLatestFrom(this.destinationService.selectedTenant$),\r\n filter(([event, tenant]) => event.tenantGuid === tenant.guid),\r\n withLatestFrom(this.parkingsRequest$),\r\n map(([[event], parkings]) => this.handleCurrentOccupancyUpdatedEvent(event, parkings))\r\n );\r\n\r\n readonly parkings$: Observable = merge(\r\n this.parkingsRequest$,\r\n this.parkingStatusUpdated$,\r\n this.parkingUpdated$,\r\n this.exportMappingUpdated$,\r\n this.parkingCockpitOrderUpdated$,\r\n this.parkingCurrentOccupancyUpdated$\r\n ).pipe(\r\n shareReplay({\r\n bufferSize: 1,\r\n refCount: true,\r\n })\r\n );\r\n\r\n constructor(\r\n private userSettingService: UserSettingsService,\r\n private http: HttpClient,\r\n private eventBus: EventBusService,\r\n private userMessageService: UserMessageService,\r\n private destinationService: DestinationService,\r\n private exportService: ExportService\r\n ) {}\r\n\r\n async updateStatus(parkingGuid: string, status: ParkingStatus): Promise {\r\n try {\r\n await firstValueFrom(\r\n this.http.post(`${environment.baseUrlApi}${ParkingService.url}/status`, {\r\n parkingGuid,\r\n status,\r\n })\r\n );\r\n } catch {\r\n const userGuid = (await firstValueFrom(this.userSettingService.userSettings$)).userGuid.toString();\r\n this.eventBus.publish(this.createErrorEvent(parkingGuid, userGuid));\r\n }\r\n }\r\n\r\n async editParking(parkings: Parking[]): Promise {\r\n if (!parkings) {\r\n return;\r\n }\r\n\r\n try {\r\n await firstValueFrom(this.http.post(`${environment.baseUrlApi}${ParkingService.url}/edit`, parkings));\r\n } catch {\r\n this.presentToast(false);\r\n }\r\n }\r\n\r\n async postExportMappings(postData: ParkingExportMappingPostData, parking: Parking): Promise {\r\n parking.setUpdating(ParkingSetting.exportMappings, true);\r\n\r\n await firstValueFrom(\r\n this.http.post(`${environment.baseUrlApi}/parking/export`, postData).pipe(\r\n catchError(() => {\r\n parking.setUpdating(ParkingSetting.exportMappings, false);\r\n const translateKey = 'general.phrase.saveFailed';\r\n const userMessage = new UserMessage({\r\n message: translateKey,\r\n icon: UserMessageIcon.failed,\r\n durationMs: 2000,\r\n position: 'top',\r\n color: UserMessageColor.red,\r\n });\r\n this.userMessageService.presentToast(userMessage);\r\n return of(null);\r\n })\r\n )\r\n );\r\n }\r\n\r\n private presentToast(success: boolean): void {\r\n const message = success ? 'general.phrase.saved' : 'general.phrase.saveFailed';\r\n const color = success ? UserMessageColor.green : UserMessageColor.red;\r\n const icon = success ? UserMessageIcon.success : UserMessageIcon.failed;\r\n this.userMessageService.presentToast(new UserMessage({ message, icon, durationMs: 2000, position: 'top', color }));\r\n }\r\n\r\n private createErrorEvent(parkingGuid: string, changedby: string): ParkingStatusUpdatedEvent {\r\n const event = new ParkingStatusUpdatedEvent();\r\n event.parkingGuid = parkingGuid;\r\n event.changedBy = changedby;\r\n return event;\r\n }\r\n\r\n // Update handler methods\r\n\r\n private handleStatusUpdatedEvent(\r\n event: ParkingStatusUpdatedEvent,\r\n parkings: Parking[],\r\n user: UserSettings\r\n ): Parking[] {\r\n const updatedItem = parkings.find((item) => item.guid === event.parkingGuid);\r\n if (updatedItem) {\r\n if (event.updateSuccessful) {\r\n updatedItem.status = event.status;\r\n updatedItem.lastStatusChange = event.lastStatusChange;\r\n }\r\n\r\n if (event.changedBy === user.userGuid) {\r\n const message = event.updateSuccessful ? 'sismedia.phrase.statusUpdated' : 'sismedia.phrase.updateFailed';\r\n const icon = event.updateSuccessful ? UserMessageIcon.success : UserMessageIcon.failed;\r\n const color = event.updateSuccessful ? UserMessageColor.green : UserMessageColor.red;\r\n\r\n this.userMessageService.presentToast(\r\n new UserMessage({\r\n message,\r\n icon,\r\n durationMs: 2000,\r\n position: 'top',\r\n color,\r\n })\r\n );\r\n }\r\n\r\n updatedItem.setUpdating(ParkingSetting.status, false);\r\n }\r\n\r\n return parkings;\r\n }\r\n\r\n private handleEditedEvent(event: ParkingEditedEvent, parkings: Parking[], user: UserSettings): Parking[] {\r\n event.parkings.forEach((eventParking) => {\r\n const updatedParking = parkings.find((parking) => parking.guid === eventParking.guid);\r\n if (updatedParking) {\r\n updatedParking.name = eventParking.name;\r\n updatedParking.nameEn = eventParking.nameEn;\r\n updatedParking.label = eventParking.label;\r\n updatedParking.info = eventParking.info;\r\n updatedParking.custom = eventParking.custom;\r\n updatedParking.cockpitOrder = eventParking.cockpitOrder;\r\n updatedParking.currentOccupancy = eventParking.currentOccupancy;\r\n updatedParking.occupancyOffset = eventParking.occupancyOffset;\r\n updatedParking.maxCapacity = eventParking.maxCapacity;\r\n updatedParking.autoStatus = eventParking.autoStatus;\r\n updatedParking.status = eventParking.status;\r\n\r\n updatedParking.setUpdating(ParkingSetting.edit, false);\r\n updatedParking.setUpdating(ParkingSetting.status, false);\r\n }\r\n });\r\n\r\n if (event.changedBy === user.userGuid) {\r\n this.presentToast(event.updateSuccessful);\r\n }\r\n\r\n return parkings;\r\n }\r\n\r\n private handleCockpitOrderUpdatedEvent(event: ParkingCockpitOrderUpdatedEvent, parkings: Parking[]) {\r\n event.parkings.forEach((p) => {\r\n const updatedParking = parkings.find((i) => i.guid == p.guid);\r\n if (updatedParking) {\r\n updatedParking.cockpitOrder = p.cockpitOrder;\r\n }\r\n });\r\n\r\n return parkings;\r\n }\r\n\r\n private handleExportMappingUpdatedEvent(\r\n event: ParkingExportMappingUpdatedEvent,\r\n parkings: Parking[],\r\n exports: Export[]\r\n ): Parking[] {\r\n const updatedItem = parkings.find((p) => p.guid === event.parkingGuid);\r\n if (updatedItem) {\r\n updatedItem.exports = exports.filter((e) => event.exportGuids.includes(e.guid));\r\n updatedItem.setUpdating(ParkingSetting.exportMappings, false);\r\n }\r\n return parkings;\r\n }\r\n\r\n private handleCurrentOccupancyUpdatedEvent(\r\n event: ParkingCurrentOccupancyUpdatedEvent,\r\n parkings: Parking[]\r\n ): Parking[] {\r\n const updatedItem = parkings.find((p) => p.guid === event.parkingGuid);\r\n if (updatedItem) {\r\n updatedItem.currentOccupancy = event.currentOccupancy;\r\n updatedItem.status = event.status;\r\n updatedItem.occupancyTimestamp = event.occupancyTimestamp;\r\n updatedItem.setUpdating(ParkingSetting.status, false);\r\n updatedItem.setUpdating(ParkingSetting.occupancy, false);\r\n }\r\n return parkings;\r\n }\r\n}\r\n","import { Component, Input, OnInit } from '@angular/core';\r\nimport { FormControl, FormGroup, Validators } from '@angular/forms';\r\nimport { ModalController } from '@ionic/angular';\r\nimport { debounceTime, takeUntil } from 'rxjs/operators';\r\nimport { Unsubscriber } from 'src/app/core/unsubscriber';\r\nimport { ScreenSizeService } from 'src/app/core/utils/screen-size.service';\r\nimport { DestinationService } from 'src/app/domain/destination/destination.service';\r\nimport { Feature } from 'src/app/domain/feature/feature.model';\r\nimport { FeatureAccessLevel } from 'src/app/domain/feature/feature-access-level.model';\r\nimport { FeatureId } from 'src/app/domain/feature/feature-id.model';\r\nimport { Parking } from 'src/app/parking/domain/parking.model';\r\nimport { ParkingService } from 'src/app/parking/domain/parking.service';\r\nimport { UserMessage } from 'src/app/user-message/user-message.model';\r\nimport { UserMessageService } from 'src/app/user-message/user-message.service';\r\nimport { UserMessageColor } from 'src/app/user-message/user-message-color';\r\nimport { UserMessageIcon } from 'src/app/user-message/user-message-icon';\r\n\r\n@Component({\r\n selector: 'sis-parking-edit-modal',\r\n templateUrl: './parking-edit-modal.component.html',\r\n styleUrls: ['./parking-edit-modal.component.scss'],\r\n standalone: false\r\n})\r\nexport class ParkingEditModalComponent extends Unsubscriber implements OnInit {\r\n @Input() parking: Parking;\r\n\r\n editedParking: Parking;\r\n\r\n writePermission = false;\r\n isSaving = false;\r\n hasUnsavedChanges = false;\r\n\r\n formGroup: FormGroup;\r\n\r\n readonly bigScreenMode$ = this.screenSizeService.bigScreenMode$;\r\n\r\n constructor(\r\n private modalCtrl: ModalController,\r\n private parkingService: ParkingService,\r\n private destinationService: DestinationService,\r\n private screenSizeService: ScreenSizeService,\r\n private userMessageService: UserMessageService\r\n ) {\r\n super();\r\n }\r\n\r\n ngOnInit(): void {\r\n this.editedParking = JSON.parse(JSON.stringify(this.parking));\r\n\r\n this.formGroup = new FormGroup({\r\n name: new FormControl(this.editedParking.name, [Validators.required]),\r\n nameEn: new FormControl(this.editedParking.nameEn),\r\n label: new FormControl(this.editedParking.label),\r\n custom: new FormControl(this.editedParking.custom),\r\n info: new FormControl(this.editedParking.info),\r\n });\r\n\r\n this.setValues();\r\n\r\n this.formGroup.valueChanges.pipe(debounceTime(50), takeUntil(this.onDestroy$)).subscribe((value) => {\r\n this.editedParking.name = value.name === '' || value.name == null ? null : value.name;\r\n this.editedParking.nameEn = value.nameEn === '' || value.nameEn == null ? null : value.nameEn;\r\n this.editedParking.label = value.label === '' || value.label == null ? null : value.label;\r\n this.editedParking.custom = value.custom === '' || value.custom == null ? null : value.custom;\r\n this.editedParking.info = value.info === '' || value.info == null ? null : value.info;\r\n\r\n this.checkForChanges();\r\n });\r\n\r\n this.destinationService.selectedTenantFeatures$.pipe(takeUntil(this.onDestroy$)).subscribe((features) => {\r\n this.writePermission = features.some((f) =>\r\n f.hasMinimumRequirementFor(new Feature(FeatureId.PARKING, FeatureAccessLevel.WRITE))\r\n );\r\n this.setDisabled();\r\n });\r\n }\r\n\r\n async save(): Promise {\r\n if (this.formGroup.invalid || !this.hasUnsavedChanges) {\r\n return;\r\n }\r\n\r\n this.isSaving = true;\r\n\r\n this.setDisabled();\r\n\r\n await this.parkingService.editParking([this.editedParking]);\r\n\r\n await this.modalCtrl.dismiss();\r\n }\r\n\r\n async cancel(): Promise {\r\n await this.modalCtrl.dismiss();\r\n }\r\n\r\n async copyToClipboard(text: string): Promise {\r\n await navigator.clipboard.writeText(text);\r\n const toast = await this.userMessageService.createSingleToast(\r\n new UserMessage({\r\n message: 'general.phrase.copiedToClipboard',\r\n icon: UserMessageIcon.info,\r\n durationMs: 2000,\r\n position: 'top',\r\n color: UserMessageColor.white,\r\n })\r\n );\r\n await toast.present();\r\n }\r\n\r\n private checkForChanges(): void {\r\n this.hasUnsavedChanges = JSON.stringify(this.parking) !== JSON.stringify(this.editedParking);\r\n }\r\n\r\n private setValues(): void {\r\n this.formGroup.controls.name.setValue(this.editedParking.name, { emitEvent: false });\r\n this.formGroup.controls.nameEn.setValue(this.editedParking.nameEn, { emitEvent: false });\r\n this.formGroup.controls.label.setValue(this.editedParking.label, { emitEvent: false });\r\n this.formGroup.controls.custom.setValue(this.editedParking.custom, { emitEvent: false });\r\n this.formGroup.controls.info.setValue(this.editedParking.info, { emitEvent: false });\r\n }\r\n\r\n private setDisabled(): void {\r\n if (!this.writePermission || this.isSaving) {\r\n this.formGroup.controls.name.disable({ emitEvent: false });\r\n this.formGroup.controls.nameEn.disable({ emitEvent: false });\r\n this.formGroup.controls.label.disable({ emitEvent: false });\r\n this.formGroup.controls.custom.disable({ emitEvent: false });\r\n this.formGroup.controls.info.disable({ emitEvent: false });\r\n } else {\r\n this.formGroup.controls.name.enable({ emitEvent: false });\r\n this.formGroup.controls.nameEn.enable({ emitEvent: false });\r\n this.formGroup.controls.label.enable({ emitEvent: false });\r\n this.formGroup.controls.custom.enable({ emitEvent: false });\r\n this.formGroup.controls.info.enable({ emitEvent: false });\r\n }\r\n }\r\n}\r\n","\r\n \r\n \r\n \r\n \r\n {{ 'parking.term.edit' | translate }}\r\n \r\n\r\n\r\n\r\n
\r\n \r\n \r\n \r\n \r\n {{ 'parking.term.nameDe' | translate }}\r\n \r\n \r\n \r\n \r\n \r\n\r\n \r\n \r\n {{ 'parking.term.nameEn' | translate }}\r\n \r\n \r\n \r\n \r\n \r\n\r\n \r\n \r\n {{ 'parking.term.label' | translate }}\r\n \r\n \r\n \r\n \r\n \r\n\r\n \r\n \r\n {{ 'parking.term.info' | translate }}\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n {{ 'parking.term.custom' | translate }}\r\n \r\n \r\n \r\n \r\n \r\n\r\n \r\n ID\r\n \r\n {{ this.parking.id }}\r\n \r\n \r\n \r\n Guid\r\n \r\n \r\n {{ this.parking.guid }}\r\n \r\n \r\n \r\n \r\n\r\n \r\n \r\n \r\n \r\n {{ 'parking.term.nameDe' | translate }}\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n\r\n \r\n \r\n {{ 'parking.term.nameEn' | translate }}\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n\r\n \r\n \r\n {{ 'parking.term.label' | translate }}\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n\r\n \r\n \r\n {{ 'parking.term.info' | translate }}\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n\r\n \r\n \r\n {{ 'parking.term.custom' | translate }}\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n\r\n \r\n ID\r\n \r\n {{ this.parking.id }}\r\n \r\n \r\n\r\n \r\n Guid\r\n \r\n \r\n {{ this.parking.guid }}\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, OnInit } from '@angular/core';\r\nimport { ModalController } from '@ionic/angular';\r\nimport { Subject } from 'rxjs';\r\nimport { switchMap, takeUntil } from 'rxjs/operators';\r\nimport { Unsubscriber } from 'src/app/core/unsubscriber';\r\nimport { ScreenSizeService } from 'src/app/core/utils/screen-size.service';\r\nimport { Export } from 'src/app/domain/export/export.model';\r\nimport { ExportService } from 'src/app/domain/export/export.service';\r\nimport { Parking } from 'src/app/parking/domain/parking.model';\r\nimport { ParkingService } from 'src/app/parking/domain/parking.service';\r\nimport { ParkingExportMapping } from 'src/app/parking/domain/parking-export-mapping.model';\r\nimport { ParkingExportMappingPostData } from 'src/app/parking/domain/parking-export-mapping-postdata.model';\r\nimport { ParkingSetting } from 'src/app/parking/domain/parking-setting.enum';\r\n\r\n@Component({\r\n selector: 'sis-parking-exports-edit-modal',\r\n templateUrl: './parking-exports-edit-modal.component.html',\r\n styleUrls: ['./parking-exports-edit-modal.component.scss'],\r\n standalone: false\r\n})\r\nexport class ParkingExportsEditModalComponent extends Unsubscriber implements OnInit {\r\n private readonly reset$ = new Subject();\r\n\r\n @Input() parking: Parking;\r\n\r\n bigScreenMode: boolean;\r\n\r\n selectableExports: ParkingExportMapping[] = [];\r\n\r\n isUpdating: boolean;\r\n isEdited: boolean[] = [];\r\n hasUnsavedChanges: boolean;\r\n\r\n constructor(\r\n private modalCtrl: ModalController,\r\n private screenSizeService: ScreenSizeService,\r\n private parkingService: ParkingService,\r\n private exportService: ExportService\r\n ) {\r\n super();\r\n }\r\n\r\n ngOnInit() {\r\n this.screenSizeService.bigScreenMode$.pipe(takeUntil(this.onDestroy$)).subscribe((bigScreenMode) => (this.bigScreenMode = bigScreenMode));\r\n\r\n this.reset$\r\n .pipe(\r\n switchMap(() => this.exportService.exports$),\r\n takeUntil(this.onDestroy$)\r\n )\r\n .subscribe((tenantExports) => {\r\n const selectableExports: ParkingExportMapping[] = [];\r\n tenantExports.forEach((e) => selectableExports.push({ export: e, enabled: false }));\r\n\r\n this.parking.exports.forEach((e) => {\r\n const mapping = selectableExports.find((s) => s.export.guid === e.guid);\r\n if (mapping != null) {\r\n mapping.enabled = true;\r\n }\r\n });\r\n\r\n this.selectableExports = selectableExports;\r\n this.checkForChanges();\r\n });\r\n\r\n this.parking\r\n .getUpdating(ParkingSetting.exportMappings)\r\n .pipe(takeUntil(this.onDestroy$))\r\n .subscribe((updating) => {\r\n this.isUpdating = updating;\r\n if (!updating) {\r\n this.reset();\r\n }\r\n });\r\n }\r\n\r\n checkForChanges(): void {\r\n this.hasUnsavedChanges = this.selectableExports.some(\r\n (e) =>\r\n (e.enabled && !this.parking.exports.find((i) => i.guid === e.export.guid)) ||\r\n (!e.enabled && this.parking.exports.find((i) => i.guid === e.export.guid))\r\n );\r\n }\r\n\r\n toggleExport(value: { export: Export; enabled: boolean }): void {\r\n value.enabled = !value.enabled;\r\n this.checkForChanges();\r\n }\r\n\r\n async save(): Promise {\r\n const postData: ParkingExportMappingPostData = {\r\n parkingGuid: this.parking.guid,\r\n exportGuids: this.selectableExports.filter((e) => e.enabled).map((e) => e.export.guid),\r\n };\r\n\r\n await this.parkingService.postExportMappings(postData, this.parking);\r\n await this.modalCtrl.dismiss();\r\n }\r\n\r\n reset(): void {\r\n this.reset$.next();\r\n }\r\n\r\n cancel(): void {\r\n this.reset();\r\n this.modalCtrl.dismiss();\r\n }\r\n}\r\n","\r\n \r\n {{ 'parking.term.exportSettings' | translate }} - {{ this.parking.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 {{ 'parking.phrase.exportTargets' | translate }}\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n {{ item.export.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","import { Component, Input, OnChanges, OnInit } from '@angular/core';\r\nimport { ModalController } from '@ionic/angular';\r\nimport { TranslateService } from '@ngx-translate/core';\r\nimport moment from 'moment';\r\nimport { filter, takeUntil } from 'rxjs/operators';\r\nimport { IconHelper } from 'src/app/core/icon-helper/icon-helper';\r\nimport { Unsubscriber } from 'src/app/core/unsubscriber';\r\nimport { DestinationService } from 'src/app/domain/destination/destination.service';\r\nimport { Feature } from 'src/app/domain/feature/feature.model';\r\nimport { FeatureAccessLevel } from 'src/app/domain/feature/feature-access-level.model';\r\nimport { FeatureId } from 'src/app/domain/feature/feature-id.model';\r\nimport { UserSettingsService } from 'src/app/domain/user-settings/user-settings.service';\r\nimport { Parking } from 'src/app/parking/domain/parking.model';\r\nimport { ParkingService } from 'src/app/parking/domain/parking.service';\r\nimport { ParkingIconOptions } from 'src/app/parking/domain/parking-icon-options.model';\r\nimport { ParkingSetting } from 'src/app/parking/domain/parking-setting.enum';\r\nimport { ParkingStatus } from 'src/app/parking/domain/parking-status.enum';\r\nimport { ParkingEditModalComponent } from 'src/app/parking/parking-item/parking-edit-modal/parking-edit-modal.component';\r\nimport { ParkingExportsEditModalComponent } from 'src/app/parking/parking-item/parking-exports-edit-modal/parking-exports-edit-modal.component';\r\nimport { ParkingOccupancyModalComponent } from 'src/app/parking/parking-item/parking-occupancy-modal/parking-occupancy-modal.component';\r\nimport { UserMessage } from 'src/app/user-message/user-message.model';\r\nimport { UserMessageService } from 'src/app/user-message/user-message.service';\r\nimport { UserMessageColor } from 'src/app/user-message/user-message-color';\r\nimport { UserMessageIcon } from 'src/app/user-message/user-message-icon';\r\nimport { environment } from 'src/environments/environment';\r\n\r\n@Component({\r\n selector: 'sis-parking-item',\r\n templateUrl: './parking-item.component.html',\r\n styleUrls: ['./parking-item.component.scss'],\r\n standalone: false\r\n})\r\nexport class ParkingItemComponent extends Unsubscriber implements OnInit, OnChanges {\r\n static readonly letterWidthMobileView = 11;\r\n static readonly letterWidthDesktopView = 23;\r\n\r\n @Input() item: Parking;\r\n @Input() bigScreenMode: boolean;\r\n @Input() showInfoCol: boolean;\r\n @Input() showButtons: boolean = true;\r\n @Input() labelLength: number;\r\n\r\n color: string;\r\n icon: string;\r\n writePermission: boolean;\r\n isStatusUpdating: boolean;\r\n hasExportsEditPermission: boolean = false;\r\n hasExports: boolean;\r\n exportTooltipText: string;\r\n showingLabelLength: string;\r\n currentOccupancyTooltipText: string;\r\n\r\n private readonly requiredFeature = new Feature(FeatureId.PARKING, FeatureAccessLevel.WRITE);\r\n\r\n constructor(\r\n private parkingService: ParkingService,\r\n private modalCtrl: ModalController,\r\n private destinationService: DestinationService,\r\n private userMessageService: UserMessageService,\r\n private userSettingsService: UserSettingsService,\r\n private translationService: TranslateService\r\n ) {\r\n super();\r\n }\r\n\r\n ngOnInit() {\r\n if (this.item) {\r\n this.item\r\n .getUpdating(ParkingSetting.edit)\r\n .pipe(takeUntil(this.onDestroy$))\r\n .subscribe(() => {\r\n const iconName = IconHelper.getIconName('parkleitsystem');\r\n this.icon = `${\r\n environment.baseUrlPublicBlobStorage\r\n }/public-assets/icons/sismedia/styles/sisag/${iconName.substring(4)}.svg`;\r\n\r\n this.item.iconOptions.forEach((option) => {\r\n option.activeClasses = this.getStatusIconClasses(this.item, option);\r\n });\r\n });\r\n\r\n this.item\r\n .getUpdating(ParkingSetting.status)\r\n .pipe(takeUntil(this.onDestroy$))\r\n .subscribe((isUpdating) => {\r\n this.isStatusUpdating = isUpdating;\r\n this.item.iconOptions.forEach((option) => {\r\n option.activeClasses = this.getStatusIconClasses(this.item, option);\r\n });\r\n });\r\n\r\n this.item\r\n .getUpdating(ParkingSetting.exportMappings)\r\n .pipe(\r\n takeUntil(this.onDestroy$),\r\n filter((updating) => !updating)\r\n )\r\n .subscribe(() => {\r\n this.hasExports = this.item.exports.length > 0;\r\n this.exportTooltipText = ':\\n\\n' + this.item.exports.map((x) => `- ${x.name}`).join('\\n');\r\n });\r\n\r\n this.item\r\n .getUpdating(ParkingSetting.occupancy)\r\n .pipe(\r\n takeUntil(this.onDestroy$),\r\n filter((updating) => !updating)\r\n )\r\n .subscribe(() => {\r\n this.buildOccupancyTooltipText();\r\n });\r\n\r\n this.translationService.onLangChange\r\n .pipe(takeUntil(this.onDestroy$))\r\n .subscribe(() => this.buildOccupancyTooltipText());\r\n }\r\n\r\n this.destinationService.selectedTenantFeatures$.pipe(takeUntil(this.onDestroy$)).subscribe((features) => {\r\n this.writePermission = features.some((f) => f.hasMinimumRequirementFor(this.requiredFeature));\r\n\r\n this.userSettingsService.userSettings$.pipe(takeUntil(this.onDestroy$)).subscribe((userSettings) => {\r\n this.hasExportsEditPermission = userSettings.isAdministrator;\r\n });\r\n\r\n this.item.iconOptions.forEach((option) => {\r\n option.activeClasses = this.getStatusIconClasses(this.item, option);\r\n });\r\n });\r\n }\r\n\r\n ngOnChanges() {\r\n this.item.iconOptions.forEach((option) => {\r\n option.activeClasses = this.getStatusIconClasses(this.item, option);\r\n });\r\n\r\n this.showingLabelLength = this.bigScreenMode\r\n ? `${this.labelLength * ParkingItemComponent.letterWidthDesktopView}px`\r\n : `${Math.min(3, this.labelLength) * ParkingItemComponent.letterWidthMobileView}px`;\r\n }\r\n\r\n iconClick(status: ParkingStatus): void {\r\n if (!this.writePermission || this.item.status === null || !this.showButtons || this.item.autoStatus) {\r\n return;\r\n }\r\n\r\n if (this.item.status != status) {\r\n this.item.setUpdating(ParkingSetting.status, true);\r\n this.parkingService.updateStatus(this.item.guid, status);\r\n }\r\n }\r\n\r\n async openEditModal(): Promise {\r\n if (this.writePermission) {\r\n const modal = await this.modalCtrl.create({\r\n component: ParkingEditModalComponent,\r\n componentProps: {\r\n parking: this.item,\r\n },\r\n cssClass: 'sis-parking-edit-modal',\r\n backdropDismiss: false,\r\n });\r\n\r\n return modal.present();\r\n }\r\n }\r\n\r\n async openExportsEditModal() {\r\n if (this.hasExportsEditPermission) {\r\n const modal = await this.modalCtrl.create({\r\n component: ParkingExportsEditModalComponent,\r\n componentProps: {\r\n parking: this.item,\r\n },\r\n cssClass: 'sis-parking-exports-edit-modal',\r\n backdropDismiss: false,\r\n });\r\n\r\n return modal.present();\r\n }\r\n }\r\n\r\n async openOccupancyEditModal() {\r\n if (this.writePermission) {\r\n const modal = await this.modalCtrl.create({\r\n component: ParkingOccupancyModalComponent,\r\n componentProps: {\r\n parking: this.item,\r\n },\r\n cssClass: 'sis-parking-occupancy-edit-modal',\r\n backdropDismiss: false,\r\n });\r\n\r\n return modal.present();\r\n }\r\n }\r\n\r\n private getStatusIconClasses(item: Parking, option: ParkingIconOptions): string[] {\r\n const statusIconClasses: string[] = [];\r\n if (item.status == null) {\r\n statusIconClasses.push('sis-no-status');\r\n return statusIconClasses;\r\n }\r\n\r\n item.status === option.parkingStatus\r\n ? statusIconClasses.push(option.colorEnabledClassName)\r\n : this.writePermission && this.showButtons && !item.autoStatus\r\n ? statusIconClasses.push(option.colorDisabledClassName)\r\n : statusIconClasses.push('sis-disabled');\r\n\r\n if (this.writePermission && !item.autoStatus && item.status === option.parkingStatus) {\r\n statusIconClasses.push('sis-global-default-cursor');\r\n }\r\n\r\n if (!this.writePermission || this.item.autoStatus) {\r\n statusIconClasses.push('sis-not-allowed');\r\n\r\n if (item.status !== option.parkingStatus) {\r\n statusIconClasses.push('sis-reduced-opacity');\r\n }\r\n }\r\n\r\n if (!this.showButtons) {\r\n statusIconClasses.push('sis-reduced-opacity');\r\n statusIconClasses.push('sis-global-default-cursor');\r\n }\r\n\r\n return statusIconClasses;\r\n }\r\n\r\n private buildOccupancyTooltipText() {\r\n if (this.item.autoUpdate) {\r\n this.currentOccupancyTooltipText = `${this.translationService.instant(\r\n 'parking.term.currentOccupancy'\r\n )} (${this.translationService.instant('general.phrase.imported')}: ${moment(this.item.occupancyTimestamp).format(\r\n 'DD.MM.yyy HH:mm:ss'\r\n )})`;\r\n } else {\r\n this.currentOccupancyTooltipText = `${this.translationService.instant('parking.term.currentOccupancy')}`;\r\n }\r\n }\r\n\r\n presentToast() {\r\n this.userMessageService.presentToast(\r\n new UserMessage({\r\n message: 'sismedia.term.noManualSwitching',\r\n icon: UserMessageIcon.info,\r\n durationMs: 2000,\r\n position: 'bottom',\r\n color: UserMessageColor.blue,\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 {{ this.item.currentOccupancy }} / {{ this.item.maxCapacity - this.item.occupancyOffset }}\r\n \r\n \r\n \r\n \r\n \r\n \r\n {{ this.item.label }}\r\n \r\n \r\n {{ this.item.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 \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 {{ this.item.currentOccupancy }} / {{ this.item.maxCapacity - this.item.occupancyOffset }}\r\n \r\n \r\n \r\n \r\n \r\n \r\n {{ this.item.label }}\r\n \r\n \r\n {{ this.item.name }}\r\n \r\n \r\n \r\n \r\n\r\n","import { Component, Input, OnInit } from '@angular/core';\r\nimport { FormControl, FormGroup, Validators } from '@angular/forms';\r\nimport { ModalController } from '@ionic/angular';\r\nimport { debounceTime, takeUntil } from 'rxjs/operators';\r\nimport { Unsubscriber } from 'src/app/core/unsubscriber';\r\nimport { ScreenSizeService } from 'src/app/core/utils/screen-size.service';\r\nimport { DestinationService } from 'src/app/domain/destination/destination.service';\r\nimport { Feature } from 'src/app/domain/feature/feature.model';\r\nimport { FeatureAccessLevel } from 'src/app/domain/feature/feature-access-level.model';\r\nimport { FeatureId } from 'src/app/domain/feature/feature-id.model';\r\nimport { Parking } from 'src/app/parking/domain/parking.model';\r\nimport { ParkingService } from 'src/app/parking/domain/parking.service';\r\n\r\n@Component({\r\n selector: 'sis-parking-occupancy-modal',\r\n templateUrl: './parking-occupancy-modal.component.html',\r\n styleUrls: ['./parking-occupancy-modal.component.scss'],\r\n standalone: false\r\n})\r\nexport class ParkingOccupancyModalComponent extends Unsubscriber implements OnInit {\r\n @Input() parking: Parking;\r\n\r\n editedParking: Parking;\r\n\r\n writePermission = false;\r\n isSaving = false;\r\n hasUnsavedChanges = false;\r\n\r\n formGroup: FormGroup;\r\n\r\n readonly bigScreenMode$ = this.screenSizeService.bigScreenMode$;\r\n\r\n constructor(\r\n private modalCtrl: ModalController,\r\n private parkingService: ParkingService,\r\n private destinationService: DestinationService,\r\n private screenSizeService: ScreenSizeService\r\n ) {\r\n super();\r\n }\r\n\r\n ngOnInit(): void {\r\n this.editedParking = JSON.parse(JSON.stringify(this.parking));\r\n\r\n this.formGroup = new FormGroup({\r\n currentOccupancy: new FormControl(this.editedParking.currentOccupancy, [Validators.required]),\r\n occupancyOffset: new FormControl(this.editedParking.occupancyOffset, [Validators.required]),\r\n maxCapacity: new FormControl(this.editedParking.maxCapacity, [Validators.required]),\r\n autoStatus: new FormControl(this.editedParking.autoStatus),\r\n });\r\n\r\n this.setValues();\r\n\r\n this.formGroup.valueChanges.pipe(debounceTime(50), takeUntil(this.onDestroy$)).subscribe((value) => {\r\n if (value.currentOccupancy != null) {\r\n this.editedParking.currentOccupancy = Number.parseInt(value.currentOccupancy);\r\n }\r\n this.editedParking.occupancyOffset = Number.parseInt(value.occupancyOffset);\r\n this.editedParking.maxCapacity = Number.parseInt(value.maxCapacity);\r\n this.editedParking.autoStatus = value.autoStatus;\r\n\r\n if (this.editedParking.occupancyOffset > this.editedParking.maxCapacity) {\r\n this.formGroup.controls.occupancyOffset.setErrors({ error: true });\r\n } else {\r\n this.formGroup.controls.occupancyOffset.setErrors(null);\r\n }\r\n\r\n this.checkForChanges();\r\n });\r\n\r\n this.destinationService.selectedTenantFeatures$.pipe(takeUntil(this.onDestroy$)).subscribe((features) => {\r\n this.writePermission = features.some((f) =>\r\n f.hasMinimumRequirementFor(new Feature(FeatureId.PARKING, FeatureAccessLevel.WRITE))\r\n );\r\n this.setDisabled();\r\n });\r\n }\r\n\r\n async save(): Promise {\r\n if (this.formGroup.invalid || !this.hasUnsavedChanges) {\r\n return;\r\n }\r\n\r\n this.isSaving = true;\r\n\r\n this.setDisabled();\r\n\r\n await this.parkingService.editParking([this.editedParking]);\r\n\r\n await this.modalCtrl.dismiss();\r\n }\r\n\r\n async cancel(): Promise {\r\n await this.modalCtrl.dismiss();\r\n }\r\n\r\n private checkForChanges(): void {\r\n this.hasUnsavedChanges = JSON.stringify(this.parking) !== JSON.stringify(this.editedParking);\r\n }\r\n\r\n private setValues(): void {\r\n this.formGroup.controls.currentOccupancy.setValue(this.editedParking.currentOccupancy, { emitEvent: false });\r\n this.formGroup.controls.occupancyOffset.setValue(this.editedParking.occupancyOffset, { emitEvent: false });\r\n this.formGroup.controls.maxCapacity.setValue(this.editedParking.maxCapacity, { emitEvent: false });\r\n this.formGroup.controls.autoStatus.setValue(this.editedParking.autoStatus, { emitEvent: false });\r\n }\r\n\r\n private setDisabled(): void {\r\n if (!this.writePermission || this.isSaving) {\r\n this.formGroup.controls.currentOccupancy.disable({ emitEvent: false });\r\n this.formGroup.controls.occupancyOffset.disable({ emitEvent: false });\r\n this.formGroup.controls.maxCapacity.disable({ emitEvent: false });\r\n } else {\r\n if (this.parking.autoUpdate) {\r\n this.formGroup.controls.currentOccupancy.disable({ emitEvent: false });\r\n } else {\r\n this.formGroup.controls.currentOccupancy.enable({ emitEvent: false });\r\n }\r\n this.formGroup.controls.occupancyOffset.enable({ emitEvent: false });\r\n this.formGroup.controls.maxCapacity.enable({ emitEvent: false });\r\n }\r\n }\r\n}\r\n","\r\n \r\n \r\n \r\n \r\n {{ this.parking.label }} {{ this.parking.name }}\r\n \r\n\r\n\r\n\r\n
\r\n \r\n \r\n \r\n \r\n {{ 'parking.term.currentOccupancy' | translate }}\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n {{ 'parking.term.occupancyOffset' | translate }}\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n {{ 'parking.term.maxCapacity' | translate }}\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n {{ 'parking.term.autoStatus' | translate }}\r\n \r\n \r\n \r\n \r\n \r\n \r\n\r\n \r\n \r\n \r\n \r\n {{ 'parking.term.currentOccupancy' | translate }}\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n\r\n \r\n \r\n {{ 'parking.term.occupancyOffset' | translate }}\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n\r\n \r\n \r\n {{ 'parking.term.maxCapacity' | translate }}\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n {{ 'parking.term.autoStatus' | translate }}\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 { CommonModule } from '@angular/common';\r\nimport { NgModule } from '@angular/core';\r\nimport { FormsModule, ReactiveFormsModule } from '@angular/forms';\r\nimport { MatTooltipModule } from '@angular/material/tooltip';\r\nimport { RouterModule } from '@angular/router';\r\nimport { IonicModule } from '@ionic/angular';\r\nimport { TranslateModule } from '@ngx-translate/core';\r\nimport { CoreModule } from 'src/app/core/core.module';\r\nimport { ParkingPage } from 'src/app/parking/parking.page';\r\nimport { ParkingEditModalComponent } from 'src/app/parking/parking-item/parking-edit-modal/parking-edit-modal.component';\r\nimport { ParkingExportsEditModalComponent } from 'src/app/parking/parking-item/parking-exports-edit-modal/parking-exports-edit-modal.component';\r\nimport { ParkingItemComponent } from 'src/app/parking/parking-item/parking-item.component';\r\nimport { ParkingOccupancyModalComponent } from 'src/app/parking/parking-item/parking-occupancy-modal/parking-occupancy-modal.component';\r\n\r\n@NgModule({\r\n imports: [\r\n CommonModule,\r\n FormsModule,\r\n ReactiveFormsModule,\r\n IonicModule,\r\n RouterModule.forChild([\r\n {\r\n path: '',\r\n component: ParkingPage,\r\n },\r\n ]),\r\n TranslateModule,\r\n MatTooltipModule,\r\n CoreModule,\r\n ],\r\n declarations: [ParkingPage, ParkingItemComponent, ParkingEditModalComponent, ParkingExportsEditModalComponent, ParkingOccupancyModalComponent],\r\n})\r\nexport class ParkingPageModule {}\r\n","import { Component, OnInit } from '@angular/core';\r\nimport { FormControl } from '@angular/forms';\r\nimport { BehaviorSubject, combineLatest } from 'rxjs';\r\nimport { debounceTime, map, startWith, takeUntil } from 'rxjs/operators';\r\nimport { LogbookModalService } from 'src/app/core/components/logbook/logbook-modal/logbook-modal.service';\r\nimport { Unsubscriber } from 'src/app/core/unsubscriber';\r\nimport { ScreenSizeService } from 'src/app/core/utils/screen-size.service';\r\nimport { DestinationService } from 'src/app/domain/destination/destination.service';\r\nimport { Feature } from 'src/app/domain/feature/feature.model';\r\nimport { FeatureAccessLevel } from 'src/app/domain/feature/feature-access-level.model';\r\nimport { FeatureId } from 'src/app/domain/feature/feature-id.model';\r\nimport { UserSettingsService } from 'src/app/domain/user-settings/user-settings.service';\r\nimport { Parking } from 'src/app/parking/domain/parking.model';\r\nimport { ParkingService } from 'src/app/parking/domain/parking.service';\r\n\r\n@Component({\r\n selector: 'sis-parking',\r\n templateUrl: './parking.page.html',\r\n styleUrls: ['./parking.page.scss'],\r\n standalone: false\r\n})\r\nexport class ParkingPage extends Unsubscriber implements OnInit {\r\n readonly logbookAvailable$ = this.logbookModalService.logbookAvailable$;\r\n readonly bigScreenMode$ = this.screenSizeService.bigScreenMode$;\r\n readonly isAdministrator$ = this.userSettingsService.userSettings$.pipe(map((settings) => settings.isAdministrator));\r\n readonly featureIds: FeatureId[][] = [[FeatureId.PARKING]];\r\n\r\n filterControl = new FormControl('');\r\n featureId = FeatureId.PARKING;\r\n\r\n displayedItems: Parking[];\r\n lastChange: { date: Date; name: string };\r\n\r\n anyItemHasInfo: boolean;\r\n\r\n hasEditPermission: boolean;\r\n reorderingEnabled: boolean;\r\n labelMaxLength: number;\r\n\r\n private readonly parkings$ = this.parkingService.parkings$.pipe(map((items) => items.sort(this.sortItems)));\r\n private readonly reorderEnabled$ = new BehaviorSubject(false);\r\n private readonly editWriteFeature = new Feature(FeatureId.PARKING, FeatureAccessLevel.WRITE);\r\n\r\n private itemOrders: Map;\r\n private parkings: Parking[];\r\n\r\n constructor(\r\n private parkingService: ParkingService,\r\n private logbookModalService: LogbookModalService,\r\n private userSettingsService: UserSettingsService,\r\n private screenSizeService: ScreenSizeService,\r\n private destinationService: DestinationService\r\n ) {\r\n super();\r\n }\r\n\r\n ngOnInit(): void {\r\n combineLatest([\r\n this.parkings$,\r\n this.reorderEnabled$,\r\n this.filterControl.valueChanges.pipe(debounceTime(300), startWith('')),\r\n ])\r\n .pipe(\r\n map(([items, reorderEnabled, search]) =>\r\n reorderEnabled ? items : items.filter((item) => this.containsSearchStringInNameOrLabel(item, search))\r\n ),\r\n takeUntil(this.onDestroy$)\r\n )\r\n .subscribe((items) => {\r\n this.displayedItems = items;\r\n this.updateLabelMaxLength(items.map((i) => i.label));\r\n this.anyItemHasInfo = this.containsItemsWithInfo(this.displayedItems);\r\n });\r\n\r\n this.parkings$.pipe(takeUntil(this.onDestroy$)).subscribe((items) => {\r\n this.parkings = items;\r\n this.setLastChange(items);\r\n });\r\n\r\n this.destinationService.selectedTenantFeatures$.pipe(takeUntil(this.onDestroy$)).subscribe((features) => {\r\n this.hasEditPermission = features.some((f) => f.hasMinimumRequirementFor(this.editWriteFeature));\r\n });\r\n }\r\n\r\n private updateLabelMaxLength(labels: string[]) {\r\n this.labelMaxLength = Math.max(0, ...labels.filter((l) => !!l).map((l) => l.length));\r\n }\r\n\r\n async onReorderClick(): Promise {\r\n if (this.reorderingEnabled) {\r\n const reorderedItems: Parking[] = this.parkings.filter(\r\n (item) => this.itemOrders.get(item.guid) !== item.cockpitOrder\r\n );\r\n\r\n await this.parkingService.editParking(reorderedItems);\r\n } else {\r\n this.itemOrders = new Map(this.parkings.map((item) => [item.guid, item.cockpitOrder]));\r\n }\r\n\r\n this.reorderEnabled$.next(!this.reorderingEnabled);\r\n this.reorderingEnabled = !this.reorderingEnabled;\r\n }\r\n\r\n async onReorderCancelClick(): Promise {\r\n this.displayedItems.forEach((item) => (item.cockpitOrder = this.itemOrders.get(item.guid)));\r\n this.displayedItems.sort(this.sortItems);\r\n this.reorderEnabled$.next(false);\r\n this.reorderingEnabled = false;\r\n }\r\n\r\n doReorder(ev: any) {\r\n this.parkings = ev.detail.complete(this.displayedItems);\r\n this.parkings.forEach((item, index) => (item.cockpitOrder = index));\r\n }\r\n\r\n private setLastChange(items: Parking[]): void {\r\n if (!items || items.length === 0) {\r\n return null;\r\n }\r\n\r\n const lastChangedItem = items.reduce((p, c) => (c.lastStatusChange > p.lastStatusChange ? c : p));\r\n\r\n this.lastChange = { date: lastChangedItem.lastStatusChange, name: lastChangedItem.name };\r\n }\r\n\r\n private sortItems(a: Parking, b: Parking): number {\r\n const order = a.cockpitOrder - b.cockpitOrder;\r\n if (order !== 0) {\r\n return order;\r\n }\r\n\r\n if (a.label && b.label) {\r\n const label = a.label.localeCompare(b.label);\r\n if (label !== 0) {\r\n return label;\r\n }\r\n }\r\n\r\n return a.name.localeCompare(b.name);\r\n }\r\n\r\n private containsItemsWithInfo(items: Parking[]): boolean {\r\n return items.some((item) => item.info?.length > 0);\r\n }\r\n\r\n private containsSearchStringInNameOrLabel(item: Parking, search: string): boolean {\r\n const searchString = search ? search.toLowerCase() : undefined;\r\n if (searchString != null) {\r\n return item.name.toLowerCase().includes(searchString) || item.label?.toLowerCase()?.includes(searchString);\r\n }\r\n\r\n return true;\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 {{ 'general.phrase.lastChange' | translate }}: {{ this.lastChange.name }} ({{ this.lastChange.date |\r\n dateTimeFormat }})\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 {{ 'general.phrase.lastChange' | translate }}: {{ this.lastChange.date | dateTimeFormat }}\r\n \r\n \r\n\r\n","export enum AccessType {\r\n VNC = 0,\r\n HTTP = 1,\r\n}\r\n","import { WritablePart } from 'src/app/core/utils/type-helper';\r\nimport { Feature } from 'src/app/domain/feature/feature.model';\r\nimport { AccessType } from 'src/app/remote-access/access-type.enum';\r\n\r\nexport class ConnectionParameter {\r\n static readonly STATUS_OK: string = 'Ok';\r\n static readonly STATUS_ERROR: string = 'Error';\r\n\r\n status: string;\r\n host: string;\r\n port: string;\r\n path: string;\r\n url: string;\r\n siscose: string;\r\n accessType: AccessType;\r\n requiredFeatureForWriteAccess: Feature;\r\n\r\n constructor(init?: Partial>) {\r\n Object.assign(this, init);\r\n }\r\n}\r\n","import { CdkPortal, DomPortalOutlet } from '@angular/cdk/portal';\r\nimport { ApplicationRef, Component, ComponentFactoryResolver, Injector, OnInit, ViewChild } from '@angular/core';\r\nimport { filter, map, switchMap, take, takeUntil } from 'rxjs/operators';\r\nimport { Unsubscriber } from 'src/app/core/unsubscriber';\r\nimport { ScreenSizeService } from 'src/app/core/utils/screen-size.service';\r\nimport { DestinationService } from 'src/app/domain/destination/destination.service';\r\nimport { Feature } from 'src/app/domain/feature/feature.model';\r\nimport { RemoteAccess } from 'src/app/maps/domain/remote-access.model';\r\nimport { AccessType } from 'src/app/remote-access/access-type.enum';\r\nimport { ConnectionParameter } from 'src/app/remote-access/connection-parameter.model';\r\nimport RFB from 'src/app/remote-access/noVNC/core/rfb.js';\r\nimport { RemoteAccessService } from 'src/app/remote-access/remote-access.service';\r\n\r\n@Component({\r\n selector: 'sis-remote-access',\r\n templateUrl: './remote-access.component.html',\r\n standalone: false\r\n})\r\nexport class RemoteAccessComponent extends Unsubscriber implements OnInit {\r\n static readonly remoteAccessDivId = 'remoteAccessContent';\r\n\r\n readonly remoteAccessDivId = RemoteAccessComponent.remoteAccessDivId;\r\n\r\n private readonly defaultExternalWindowWidth = 1200;\r\n private readonly defaultExternalWindowHeight = 900;\r\n\r\n private readonly onWindowUnloadFn = this.onWindowUnload.bind(this);\r\n private rfb: RFB;\r\n private externalWindowNoVncAccess: Window = null;\r\n private externalWindowHttpAccess: Window = null;\r\n private remoteAccessAgentId: string;\r\n private bigScreenMode: boolean;\r\n\r\n connecting = false;\r\n\r\n constructor(\r\n private componentFactoryResolver: ComponentFactoryResolver,\r\n private applicationRef: ApplicationRef,\r\n private injector: Injector,\r\n private remoteAccessService: RemoteAccessService,\r\n private screenSizeService: ScreenSizeService,\r\n private destinationService: DestinationService\r\n ) {\r\n super();\r\n }\r\n\r\n @ViewChild(CdkPortal) portal: CdkPortal;\r\n\r\n ngOnInit() {\r\n this.remoteAccessService.remoteAccessConnectionParameter$\r\n .pipe(\r\n filter((connection) => !!connection),\r\n takeUntil(this.onDestroy$),\r\n switchMap((connection) =>\r\n this.destinationService.selectedTenantFeatures$.pipe(\r\n take(1),\r\n map((features) => [\r\n connection,\r\n !features.some((feature) => feature.hasMinimumRequirementFor(connection.requiredFeatureForWriteAccess)),\r\n ])\r\n )\r\n )\r\n )\r\n .subscribe(([connectionParameter, viewOnly]) => {\r\n if (connectionParameter?.status === ConnectionParameter.STATUS_OK) {\r\n switch (connectionParameter.accessType) {\r\n case AccessType.VNC:\r\n this.startVNCClient(\r\n connectionParameter.host,\r\n connectionParameter.port,\r\n connectionParameter.siscose,\r\n connectionParameter.path,\r\n viewOnly\r\n );\r\n break;\r\n case AccessType.HTTP:\r\n this.startHTTPClient(connectionParameter.host);\r\n }\r\n }\r\n });\r\n\r\n this.screenSizeService.bigScreenMode$\r\n .pipe(takeUntil(this.onDestroy$))\r\n .subscribe((bigScreenMode) => (this.bigScreenMode = bigScreenMode));\r\n\r\n this.remoteAccessService.showRemoteAccessWindow$.pipe(takeUntil(this.onDestroy$)).subscribe((data) => {\r\n if (!data) {\r\n return;\r\n }\r\n\r\n if (!data.show) {\r\n this.remoteAccessAgentId = null;\r\n this.externalWindowNoVncAccess?.close();\r\n return;\r\n }\r\n\r\n if (data.remoteAccess?.accessType === AccessType.VNC) {\r\n if (this.remoteAccessAgentId != null) {\r\n this.externalWindowNoVncAccess?.focus();\r\n } else {\r\n this.createAndAttachExternalWindowNoVnc(data.remoteAccess);\r\n this.externalWindowNoVncAccess?.focus();\r\n this.connecting = true;\r\n this.remoteAccessAgentId = data.remoteAccess.agentId;\r\n }\r\n }\r\n\r\n if (data.remoteAccess?.accessType === AccessType.HTTP) {\r\n const externalWindowDimensions = this.getAvailableWindowDimensions(data.remoteAccess.windowDimensions);\r\n this.externalWindowHttpAccess = window.open('', '', externalWindowDimensions);\r\n this.externalWindowHttpAccess.addEventListener('unload', this.onWindowUnloadFn);\r\n }\r\n });\r\n }\r\n\r\n private startVNCClient(host: string, port: string, encodedPassword: string, path: string, viewOnly: boolean) {\r\n const url = 'wss://' + host + (port ? ':' + port : '') + '/' + path;\r\n const password = atob(encodedPassword);\r\n\r\n const target = this.getTarget();\r\n if (target == null) {\r\n this.remoteAccessService.closeSession();\r\n return;\r\n }\r\n\r\n this.rfb = new RFB(target, this.externalWindowNoVncAccess?.document, url, {\r\n credentials: { password },\r\n });\r\n\r\n this.rfb.viewOnly = viewOnly;\r\n\r\n this.rfb.addEventListener('connect', () => {\r\n this.scaleWindowContent();\r\n this.connecting = false;\r\n });\r\n\r\n this.rfb.addEventListener('disconnect', (event) => {\r\n this.remoteAccessService.closeSession();\r\n\r\n if (event?.detail && !event.detail.clean) {\r\n this.remoteAccessService.pushConnectionErrorUserMessage();\r\n }\r\n });\r\n\r\n if (this.externalWindowNoVncAccess == null) {\r\n this.rfb?.disconnect();\r\n this.rfb = null;\r\n }\r\n }\r\n\r\n private startHTTPClient(url: string) {\r\n this.externalWindowHttpAccess.top.location.href = url;\r\n }\r\n\r\n private createAndAttachExternalWindowNoVnc(remoteAccess: RemoteAccess): void {\r\n const externalWindowDimensions = this.getAvailableWindowDimensions(remoteAccess.windowDimensions);\r\n this.externalWindowNoVncAccess = this.bigScreenMode\r\n ? window.open('', '', externalWindowDimensions)\r\n : window.open('', '_blank');\r\n this.externalWindowNoVncAccess.document.body.style.margin = '0';\r\n this.externalWindowNoVncAccess.document.body.style.overflow = 'hidden';\r\n this.externalWindowNoVncAccess.document.title = `${remoteAccess.parentAlias} - ${remoteAccess.name}`;\r\n this.externalWindowNoVncAccess.addEventListener('unload', this.onWindowUnloadFn);\r\n this.externalWindowNoVncAccess.addEventListener('resize', () => {\r\n this.scaleWindowContent();\r\n });\r\n\r\n const host = new DomPortalOutlet(\r\n this.externalWindowNoVncAccess.document.body,\r\n this.componentFactoryResolver,\r\n this.applicationRef,\r\n this.injector\r\n );\r\n\r\n host.attach(this.portal);\r\n }\r\n\r\n private getTarget(): HTMLElement {\r\n return this.externalWindowNoVncAccess?.document.getElementById(RemoteAccessComponent.remoteAccessDivId);\r\n }\r\n\r\n private scaleWindowContent() {\r\n const windowContent: HTMLCanvasElement = this.externalWindowNoVncAccess.document.getElementsByTagName('canvas')[0];\r\n if (windowContent) {\r\n const scale = Math.min(\r\n this.externalWindowNoVncAccess.innerHeight / windowContent.height,\r\n this.externalWindowNoVncAccess.innerWidth / windowContent.width\r\n );\r\n this.rfb.scaleViewport = scale;\r\n }\r\n }\r\n\r\n private onWindowUnload(): void {\r\n this.externalWindowNoVncAccess?.removeEventListener('unload', this.onWindowUnloadFn);\r\n this.externalWindowNoVncAccess = null;\r\n this.externalWindowHttpAccess?.removeEventListener('unload', this.onWindowUnloadFn);\r\n this.externalWindowHttpAccess = null;\r\n this.rfb?.disconnect();\r\n this.rfb = null;\r\n this.remoteAccessService.closeSession();\r\n }\r\n\r\n private getAvailableWindowDimensions(windowDimensions: string): string {\r\n const browserTitleBarHeight = 70;\r\n const screenWidth = window.screen.width;\r\n const screenHeight = window.screen.height - browserTitleBarHeight;\r\n\r\n const [configWidth, configHeight] = windowDimensions?.split(',').map((n) => Number.parseInt(n)) ?? [\r\n this.defaultExternalWindowWidth,\r\n this.defaultExternalWindowHeight,\r\n ];\r\n\r\n let windowWidth = configWidth;\r\n let windowHeight = configHeight;\r\n\r\n if (configWidth > screenWidth || configHeight > screenHeight) {\r\n const configRatio = configWidth / configHeight;\r\n const screenRatio = screenWidth / screenHeight;\r\n\r\n if (screenRatio > configRatio) {\r\n windowHeight = Math.round(screenHeight * 0.8);\r\n const scale = windowHeight / configHeight;\r\n windowWidth = Math.round(configWidth * scale);\r\n } else {\r\n windowWidth = Math.round(screenWidth * 0.8);\r\n const scale = windowWidth / configWidth;\r\n windowHeight = Math.round(configHeight * scale);\r\n }\r\n }\r\n\r\n return `width=${windowWidth},height=${windowHeight}`;\r\n }\r\n}\r\n","\r\n\r\n
\r\n user.message.remoteAccessConnection.establish\r\n
\r\n\r\n
\r\n \r\n
\r\n
\r\n","import { HttpClient } from '@angular/common/http';\r\nimport { Injectable } from '@angular/core';\r\nimport { AlertController } from '@ionic/angular';\r\nimport { TranslateService } from '@ngx-translate/core';\r\nimport { firstValueFrom, lastValueFrom, of, ReplaySubject, Subject } from 'rxjs';\r\nimport { catchError } from 'rxjs/operators';\r\nimport { Feature } from 'src/app/domain/feature/feature.model';\r\nimport { RemoteAccess } from 'src/app/maps/domain/remote-access.model';\r\nimport { AccessType } from 'src/app/remote-access/access-type.enum';\r\nimport { ConnectionParameter } from 'src/app/remote-access/connection-parameter.model';\r\nimport { UserMessage } from 'src/app/user-message/user-message.model';\r\nimport { UserMessageService } from 'src/app/user-message/user-message.service';\r\nimport { UserMessageColor } from 'src/app/user-message/user-message-color';\r\nimport { UserMessageIcon } from 'src/app/user-message/user-message-icon';\r\nimport { environment } from 'src/environments/environment';\r\n\r\n@Injectable({\r\n providedIn: 'root',\r\n})\r\nexport class RemoteAccessService {\r\n private readonly _showRemoteAccessWindow$ = new Subject<{\r\n show: boolean;\r\n remoteAccess?: RemoteAccess;\r\n }>();\r\n private readonly _remoteAccessConnectionParameter$ = new ReplaySubject(1);\r\n private readonly blockedDuration: number = 5000;\r\n\r\n private connectedAgentId: string;\r\n private lastToast: HTMLIonToastElement;\r\n\r\n readonly showRemoteAccessWindow$ = this._showRemoteAccessWindow$.asObservable();\r\n readonly remoteAccessConnectionParameter$ = this._remoteAccessConnectionParameter$.asObservable();\r\n\r\n constructor(\r\n private http: HttpClient,\r\n private userMessageService: UserMessageService,\r\n private alertController: AlertController,\r\n private translateService: TranslateService\r\n ) {}\r\n\r\n async openSession(remoteAccess: RemoteAccess, requiredFeatureForWriteAccess: Feature): Promise {\r\n if (remoteAccess.accessType === AccessType.VNC) {\r\n if (remoteAccess.agentId === this.connectedAgentId) {\r\n this.showRemoteAccess(remoteAccess);\r\n return true;\r\n }\r\n\r\n if (this.connectedAgentId) {\r\n const alertMessageResolved = await this.presentAlert();\r\n\r\n if (alertMessageResolved === 'show') {\r\n this.showRemoteAccess(remoteAccess);\r\n return true;\r\n }\r\n\r\n if (alertMessageResolved === 'close') {\r\n return true;\r\n }\r\n }\r\n }\r\n\r\n this.showRemoteAccess(remoteAccess);\r\n\r\n const connectionParameter = await firstValueFrom(\r\n this.http\r\n .get([environment.baseUrlApi, 'remoteaccess/connect', remoteAccess.agentId].join('/'))\r\n .pipe(\r\n catchError(() => {\r\n const statusError = new ConnectionParameter({\r\n status: ConnectionParameter.STATUS_ERROR,\r\n });\r\n return of(statusError);\r\n })\r\n )\r\n );\r\n\r\n if (connectionParameter.status === ConnectionParameter.STATUS_OK) {\r\n this.lastToast?.dismiss();\r\n this.connectedAgentId = remoteAccess.agentId;\r\n connectionParameter.requiredFeatureForWriteAccess = requiredFeatureForWriteAccess;\r\n this._remoteAccessConnectionParameter$.next(connectionParameter);\r\n return true;\r\n } else {\r\n this.pushConnectionErrorUserMessage();\r\n await this.closeSession(remoteAccess.agentId);\r\n return false;\r\n }\r\n }\r\n\r\n async closeSession(agentId?: string): Promise {\r\n if (this.connectedAgentId || agentId) {\r\n const id = this.connectedAgentId || agentId;\r\n this.connectedAgentId = null;\r\n await this.insertRemoteAccessDisconnectedLog(id);\r\n }\r\n this._showRemoteAccessWindow$.next({ show: false });\r\n this._remoteAccessConnectionParameter$.next(null);\r\n }\r\n\r\n pushConnectionErrorUserMessage(): void {\r\n const userMessage = new UserMessage({\r\n message: 'user.message.remoteAccessConnection.error',\r\n icon: UserMessageIcon.failed,\r\n durationMs: this.blockedDuration,\r\n position: 'middle',\r\n color: UserMessageColor.red,\r\n });\r\n this.userMessageService.createSingleToast(userMessage).then((toast) => {\r\n this.lastToast?.dismiss();\r\n this.lastToast = toast;\r\n toast.present();\r\n });\r\n }\r\n\r\n private showRemoteAccess(remoteAccess: RemoteAccess): void {\r\n this._showRemoteAccessWindow$.next({ show: true, remoteAccess });\r\n }\r\n\r\n private async presentAlert(): Promise<'show' | 'replace' | 'close'> {\r\n return new Promise<'show' | 'replace' | 'close'>(async (resolve) => {\r\n const alert = await this.alertController.create({\r\n header: await this.getTranslatedString('user.message.remoteAccessConnection.alreadyRunning'),\r\n buttons: [\r\n {\r\n text: await this.getTranslatedString('general.term.show'),\r\n handler: () => {\r\n resolve('show');\r\n },\r\n },\r\n {\r\n text: await this.getTranslatedString('general.term.replace'),\r\n handler: () => {\r\n this.closeSession();\r\n setTimeout(() => resolve('replace'), 200);\r\n },\r\n },\r\n {\r\n text: await this.getTranslatedString('general.term.cancel'),\r\n role: 'cancel',\r\n handler: () => {\r\n resolve('close');\r\n },\r\n },\r\n ],\r\n });\r\n await alert.present();\r\n });\r\n }\r\n\r\n private async getTranslatedString(translateKey: string): Promise {\r\n return lastValueFrom(this.translateService.get(translateKey));\r\n }\r\n\r\n private async insertRemoteAccessDisconnectedLog(agentId: string): Promise {\r\n await firstValueFrom(this.http.post(`${environment.baseUrlApi}/remoteaccess/disconnect`, { agentId }));\r\n }\r\n}\r\n","import { EditToken } from 'src/app/sisag-admin/domain/edit-token.model';\r\nexport class EditTokenAdapter {\r\n static adapt(items: any): EditToken[] {\r\n const editTokens: EditToken[] = [];\r\n\r\n if (items) {\r\n items.forEach((item: any) => {\r\n editTokens.push({\r\n guid: item.guid,\r\n tenantSisId: item.tenantSisId,\r\n name: item.name,\r\n areaUrlName: item.areaUrlName,\r\n season: item.season,\r\n editToken: item.editToken,\r\n });\r\n });\r\n }\r\n\r\n return editTokens;\r\n }\r\n}\r\n","import { Component, Input, OnChanges, OnInit } from '@angular/core';\r\nimport { takeUntil } from 'rxjs';\r\nimport { Unsubscriber } from 'src/app/core/unsubscriber';\r\nimport { ScreenSizeService } from 'src/app/core/utils/screen-size.service';\r\nimport { GatewayResponse } from 'src/app/sisag-admin/gateway-response-box/gateway-response.model';\r\n\r\n@Component({\r\n selector: 'sis-gateway-response-box',\r\n templateUrl: './gateway-response-box.component.html',\r\n styleUrls: ['./gateway-response-box.component.scss'],\r\n standalone: false\r\n})\r\nexport class GatewayResponseBoxComponent extends Unsubscriber implements OnChanges, OnInit {\r\n private numberOfRows: number;\r\n colSize: string;\r\n rowsOfResponses: GatewayResponse[][] = [];\r\n\r\n @Input() gatewayResponses: GatewayResponse[] = [];\r\n\r\n constructor(public screenSizeService: ScreenSizeService) {\r\n super();\r\n }\r\n\r\n ngOnInit(): void {\r\n this.screenSizeService.bigScreenMode$.pipe(takeUntil(this.onDestroy$)).subscribe((bigScreenMode) => {\r\n this.numberOfRows = bigScreenMode ? 8 : 3;\r\n this.colSize = (12 / this.numberOfRows).toString();\r\n });\r\n }\r\n\r\n ngOnChanges(): void {\r\n if (this.gatewayResponses) {\r\n this.gatewayResponses.sort((a, b) => (a.success > b.success ? 1 : -1));\r\n let row = 0;\r\n this.rowsOfResponses[row] = [];\r\n\r\n this.gatewayResponses.forEach((r, index) => {\r\n this.rowsOfResponses[row].push(r);\r\n if (index % this.numberOfRows === this.numberOfRows - 1) {\r\n row++;\r\n this.rowsOfResponses[row] = [];\r\n }\r\n });\r\n }\r\n }\r\n}\r\n","\r\n \r\n Antwort:\r\n \r\n \r\n \r\n \r\n {{ response.gatewayId }}\r\n \r\n \r\n \r\n \r\n\r\n","import { CommonModule } from '@angular/common';\r\nimport { NgModule } from '@angular/core';\r\nimport { FormsModule, ReactiveFormsModule } from '@angular/forms';\r\nimport { MatTooltipModule } from '@angular/material/tooltip';\r\nimport { RouterModule } from '@angular/router';\r\nimport { IonicModule } from '@ionic/angular';\r\nimport { TranslateModule } from '@ngx-translate/core';\r\nimport { CoreModule } from 'src/app/core/core.module';\r\nimport { GatewayResponseBoxComponent } from 'src/app/sisag-admin/gateway-response-box/gateway-response-box.component';\r\nimport { SisagAdminPage } from 'src/app/sisag-admin/sisag-admin.page';\r\nimport { SisMapEditTokenComponent } from 'src/app/sisag-admin/sismap-edit-token/sismap-edit-token.component';\r\n\r\n@NgModule({\r\n imports: [\r\n CommonModule,\r\n IonicModule,\r\n FormsModule,\r\n ReactiveFormsModule,\r\n CoreModule,\r\n MatTooltipModule,\r\n RouterModule.forChild([\r\n {\r\n path: '',\r\n component: SisagAdminPage,\r\n },\r\n ]),\r\n TranslateModule,\r\n ],\r\n declarations: [SisagAdminPage, GatewayResponseBoxComponent, SisMapEditTokenComponent],\r\n})\r\nexport class SisagAdminPageModule {}\r\n","import { HttpClient } from '@angular/common/http';\r\nimport { Component, OnInit } from '@angular/core';\r\nimport { FormControl } from '@angular/forms';\r\nimport { firstValueFrom, map, startWith, takeUntil } from 'rxjs';\r\nimport { Unsubscriber } from 'src/app/core/unsubscriber';\r\nimport { ScreenSizeService } from 'src/app/core/utils/screen-size.service';\r\nimport { environment } from 'src/environments/environment';\r\n\r\n@Component({\r\n selector: 'sis-sisag-admin',\r\n templateUrl: './sisag-admin.page.html',\r\n styleUrls: ['./sisag-admin.page.scss'],\r\n standalone: false,\r\n})\r\nexport class SisagAdminPage extends Unsubscriber implements OnInit {\r\n mapGuid = new FormControl(null);\r\n gatewayId = new FormControl(null);\r\n\r\n updateGatewayUpdateScriptResponses: Array<{ gatewayId: string; success: boolean }>;\r\n restartGatewaysResponses: Array<{ gatewayId: string; success: boolean }>;\r\n bigScreenMode: boolean;\r\n\r\n readonly gatewayIdsInvalid$ = this.gatewayId.valueChanges.pipe(\r\n startWith(''),\r\n map((value) => !this.getGatewayIdsString(value))\r\n );\r\n\r\n readonly canManageGateways = ['local', 'development', 'production'].includes(environment.environment);\r\n\r\n constructor(private httpClient: HttpClient, private screenSizeService: ScreenSizeService) {\r\n super();\r\n }\r\n\r\n ngOnInit(): void {\r\n this.screenSizeService.bigScreenMode$\r\n .pipe(takeUntil(this.onDestroy$))\r\n .subscribe((bigScreenMode) => (this.bigScreenMode = bigScreenMode));\r\n }\r\n\r\n async initializeSisMapAssetStatus(): Promise {\r\n const guid = this.mapGuid.value;\r\n const url = `${environment.baseUrlApi}/sismapassetstatus`;\r\n\r\n await firstValueFrom(this.httpClient.post(url, { MapGuid: guid }));\r\n }\r\n\r\n async restartGateway(): Promise {\r\n const gatewayIdsString = this.getGatewayIdsString(this.gatewayId.value);\r\n\r\n const url = `${environment.baseUrlApi}/sisadmin/restartgateway/${gatewayIdsString}`;\r\n\r\n try {\r\n this.restartGatewaysResponses = await firstValueFrom(\r\n this.httpClient.get>(url)\r\n );\r\n this.restartGatewaysResponses.sort((a, b) => a.gatewayId.localeCompare(b.gatewayId));\r\n } catch (e) {\r\n this.restartGatewaysResponses = [{ gatewayId: e, success: false }];\r\n }\r\n }\r\n\r\n async uploadGatewayUpdateScript(): Promise {\r\n const url = `${environment.baseUrlApi}/sisadmin/updatescriptmoduleupload`;\r\n\r\n try {\r\n this.updateGatewayUpdateScriptResponses = await firstValueFrom(\r\n this.httpClient.get>(url)\r\n );\r\n this.updateGatewayUpdateScriptResponses.sort((a, b) => a.gatewayId.localeCompare(b.gatewayId));\r\n } catch (e) {\r\n this.updateGatewayUpdateScriptResponses = [{ gatewayId: e, success: false }];\r\n }\r\n }\r\n\r\n private getGatewayIdsString(gatewayIds: string): string {\r\n return gatewayIds\r\n ?.trim()\r\n .replace(/\\s/g, '')\r\n .split(',')\r\n .filter((s) => s.length)\r\n .join(',');\r\n }\r\n}\r\n","\r\n \r\n \r\n \r\n \r\n \r\n SisMap - Status initialisieren\r\n \r\n\r\n \r\n \r\n \r\n \r\n Hier kann das Kopieren des aktuellen Status von allen SisMedia Assets auf einer SisMap in den\r\n TableStorage ausgelöst werden. Wenn keine mapGuid angegeben wird, wird dies für alle SisMaps gemacht.\r\n \r\n \r\n \r\n MapGuid:\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 Gateway - Updatescript aktualisieren\r\n Diese Funktion ist auf Staging nicht verfügbar\r\n \r\n\r\n \r\n \r\n \r\n \r\n Hier können die Gateway Update Skripts auf den Gateways aktualisiert werden. Das Update Skript wird auf\r\n allen erreichbaren Gateways aktualisiert.
Zuerst muss das gateway-update Skript in den Blobstorage\r\n hochgeladen werden.\r\n
\r\n
\r\n \r\n BlobStorage Pfad:
DEV: devcockpit/admin
PROD: prodcockpit/admin\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 Gateway - Neustart\r\n Diese Funktion ist auf Staging nicht verfügbar\r\n \r\n\r\n \r\n \r\n \r\n Hier können einzelne oder mehrere Gateways neu gestartet werden. Bei mehreren Gateways sind die\r\n GatewayIds durch ein Komma zu trennen (z.B.: dev000, dev001)\r\n \r\n \r\n \r\n GatewayId(s):\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 { HttpClient } from '@angular/common/http';\r\nimport { Injectable } from '@angular/core';\r\nimport { firstValueFrom, merge, Observable } from 'rxjs';\r\nimport { filter, map, shareReplay, switchMap, withLatestFrom } from 'rxjs/operators';\r\nimport { EventBusService } from 'src/app/core/eventbus/event-bus.service';\r\nimport { SisMapEditTokenUpdatedEvent } from 'src/app/core/eventbus/events';\r\nimport { DestinationService } from 'src/app/domain/destination/destination.service';\r\nimport { UserSettingsService } from 'src/app/domain/user-settings/user-settings.service';\r\nimport { EditTokenAdapter } from 'src/app/sisag-admin/domain/edit-token.adapter';\r\nimport { EditToken } from 'src/app/sisag-admin/domain/edit-token.model';\r\nimport { UserMessage } from 'src/app/user-message/user-message.model';\r\nimport { UserMessageService } from 'src/app/user-message/user-message.service';\r\nimport { UserMessageColor } from 'src/app/user-message/user-message-color';\r\nimport { UserMessageIcon } from 'src/app/user-message/user-message-icon';\r\nimport { environment } from 'src/environments/environment';\r\n\r\n@Injectable({\r\n providedIn: 'root',\r\n})\r\nexport class SisagAdminService {\r\n private readonly editTokenRequest$: Observable = this.destinationService.selectedTenantFeatures$.pipe(\r\n switchMap(() => this.httpClient.get(`${environment.baseUrlApi}/sismapedittoken`)),\r\n map((items) => EditTokenAdapter.adapt(items)),\r\n shareReplay({\r\n bufferSize: 1,\r\n refCount: true,\r\n })\r\n );\r\n\r\n private readonly editTokenUpdated$: Observable = this.eventBus.observe(SisMapEditTokenUpdatedEvent).pipe(\r\n withLatestFrom(this.destinationService.selectedTenant$),\r\n filter(([event, tenant]) => event.tenantGuid === tenant.guid),\r\n withLatestFrom(this.editTokenRequest$, this.userSettingsService.userSettings$),\r\n map(([[event], currentEditTokens, userSettings]) => {\r\n if (event.updateSuccessful) {\r\n const oldEditToken = currentEditTokens.find((token) => token.guid === event.editToken.guid);\r\n oldEditToken ? Object.assign(oldEditToken, event.editToken) : currentEditTokens.push(event.editToken);\r\n }\r\n\r\n if (event.changedBy === userSettings.userGuid) {\r\n this.displayUserMessage(event.updateSuccessful, event.operation);\r\n }\r\n return currentEditTokens;\r\n })\r\n );\r\n\r\n readonly editTokens$ = merge(this.editTokenRequest$, this.editTokenUpdated$).pipe(\r\n shareReplay({\r\n bufferSize: 1,\r\n refCount: true,\r\n })\r\n );\r\n\r\n constructor(\r\n private httpClient: HttpClient,\r\n private destinationService: DestinationService,\r\n private http: HttpClient,\r\n private userMessageService: UserMessageService,\r\n private eventBus: EventBusService,\r\n private userSettingsService: UserSettingsService\r\n ) {}\r\n\r\n async insertOrDeleteEditToken(editTokenPost: EditToken, operation: string): Promise {\r\n if (!editTokenPost == null) {\r\n return;\r\n }\r\n\r\n try {\r\n await firstValueFrom(\r\n this.http.post(`${environment.baseUrlApi}/edittoken`, {\r\n editToken: editTokenPost,\r\n operation,\r\n })\r\n );\r\n } catch {\r\n this.presentToast(false);\r\n }\r\n }\r\n\r\n private presentToast(success: boolean, deleted: boolean = false, mapName: string = null): void {\r\n const message = success\r\n ? deleted\r\n ? [\"'\", mapName, \"' \", 'sisagadmin.phrase.tokenDeletedSuccess']\r\n : 'general.phrase.saved'\r\n : 'general.phrase.saveFailed';\r\n const color = success ? UserMessageColor.green : UserMessageColor.red;\r\n const icon = success ? UserMessageIcon.success : UserMessageIcon.failed;\r\n this.userMessageService.presentToast(new UserMessage({ message, icon, durationMs: 2000, position: 'top', color }));\r\n }\r\n\r\n private displayUserMessage(updateSuccessful: boolean, operation: string): void {\r\n const message =\r\n operation === 'insert' && updateSuccessful\r\n ? 'sisagadmin.phrase.tokenCreatedSuccess'\r\n : operation === 'delete' && updateSuccessful\r\n ? 'sisagadmin.phrase.tokenDeletedSuccess'\r\n : operation === 'insert'\r\n ? 'sisagadmin.phrase.tokenCreatedFailed'\r\n : operation === 'delete'\r\n ? 'sisagadmin.phrase.tokenDeletedFailed'\r\n : 'general.phrase.apiError';\r\n\r\n const icon = updateSuccessful ? UserMessageIcon.success : UserMessageIcon.failed;\r\n const color = updateSuccessful ? UserMessageColor.green : UserMessageColor.red;\r\n const userMessage = new UserMessage({\r\n message,\r\n icon,\r\n durationMs: 2000,\r\n position: 'top',\r\n color,\r\n });\r\n this.userMessageService.presentToast(userMessage);\r\n }\r\n}\r\n","import { Component, OnInit } from '@angular/core';\r\nimport { takeUntil } from 'rxjs';\r\nimport { Unsubscriber } from 'src/app/core/unsubscriber';\r\nimport { EditToken } from 'src/app/sisag-admin/domain/edit-token.model';\r\nimport { SisagAdminService } from 'src/app/sisag-admin/sisag-admin.service';\r\nimport { environment } from 'src/environments/environment';\r\nimport { v4 as v4guid } from 'uuid';\r\n\r\n@Component({\r\n selector: 'sis-sismap-edit-token',\r\n templateUrl: './sismap-edit-token.component.html',\r\n styleUrls: ['./sismap-edit-token.component.scss'],\r\n standalone: false\r\n})\r\nexport class SisMapEditTokenComponent extends Unsubscriber implements OnInit {\r\n editTokenItems: EditToken[];\r\n itemsWithEditToken: EditToken[];\r\n itemsWithoutEditToken: EditToken[];\r\n selectedEditToken: EditToken;\r\n\r\n constructor(private editTokenService: SisagAdminService) {\r\n super();\r\n }\r\n\r\n ngOnInit(): void {\r\n this.editTokenService.editTokens$.pipe(takeUntil(this.onDestroy$)).subscribe((editTokens) => {\r\n this.editTokenItems = editTokens.sort((a, b) => a.name.localeCompare(b.name));\r\n this.splitEditTokenItems();\r\n });\r\n }\r\n\r\n private splitEditTokenItems(): void {\r\n this.itemsWithEditToken = this.editTokenItems.filter((item) => item.editToken != null);\r\n this.itemsWithoutEditToken = this.editTokenItems.filter((item) => item.editToken == null);\r\n }\r\n\r\n async updateEditToken(insert: boolean, editToken: EditToken): Promise {\r\n const postData: EditToken = {\r\n guid: editToken.guid,\r\n tenantSisId: editToken.tenantSisId,\r\n name: editToken.name,\r\n areaUrlName: editToken.areaUrlName,\r\n season: editToken.season,\r\n editToken: insert ? v4guid() : null,\r\n };\r\n const operation = insert ? 'insert' : 'delete';\r\n\r\n await this.editTokenService.insertOrDeleteEditToken(postData, operation);\r\n\r\n this.selectedEditToken = null;\r\n }\r\n\r\n async openUrl(editToken: EditToken): Promise {\r\n const url =\r\n editToken.season == 0\r\n ? `${environment.publicWebApp}/${editToken.tenantSisId}/sismap/${editToken.areaUrlName}/${editToken.season}?season=1&edit=${editToken.editToken}`\r\n : `${environment.publicWebApp}/${editToken.tenantSisId}/sismap/${editToken.areaUrlName}/${editToken.season}?edit=${editToken.editToken}`;\r\n\r\n const newWindow = window.open(url, '_blank');\r\n if (newWindow) {\r\n newWindow.focus();\r\n } else {\r\n alert('Bitte erlauben Sie Pop-ups für diese Website.');\r\n }\r\n }\r\n}\r\n","\r\n \r\n \r\n \r\n SisMap - Edit Token verwalten\r\n \r\n\r\n \r\n \r\n \r\n \r\n \r\n {{ item.name }}\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n {{ item.name }}: {{ item.editToken }}\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 moment from 'moment';\r\nimport { SisMediaSetting } from 'src/app/sismedia-setting/sismedia-setting.model';\r\n\r\nexport class SisMediaSettingAdapter {\r\n static adapt(item: any): SisMediaSetting | null {\r\n if (!item) {\r\n return null;\r\n }\r\n\r\n return {\r\n tenantGuid: item.tenantGuid,\r\n winterSeasonStartDate: new Date(moment(item.winterSeasonStartDate).format('YYYY-MM-DD')),\r\n winterSeasonEndDate: new Date(moment(item.winterSeasonEndDate).format('YYYY-MM-DD')),\r\n liftsOpenFrom: item.liftsOpenFrom,\r\n liftsOpenTo: item.liftsOpenTo,\r\n };\r\n }\r\n}\r\n","import { CommonModule } from '@angular/common';\r\nimport { NgModule } from '@angular/core';\r\nimport { FormsModule, ReactiveFormsModule } from '@angular/forms';\r\nimport { RouterModule } from '@angular/router';\r\nimport { IonicModule } from '@ionic/angular';\r\nimport { TranslateModule } from '@ngx-translate/core';\r\nimport { CoreModule } from 'src/app/core/core.module';\r\nimport { SisMediaSettingPage } from 'src/app/sismedia-setting/sismedia-setting.page';\r\n\r\n@NgModule({\r\n imports: [\r\n CommonModule,\r\n FormsModule,\r\n ReactiveFormsModule,\r\n IonicModule,\r\n RouterModule.forChild([\r\n {\r\n path: '',\r\n component: SisMediaSettingPage,\r\n },\r\n ]),\r\n TranslateModule,\r\n CoreModule,\r\n ],\r\n declarations: [SisMediaSettingPage],\r\n})\r\nexport class SisMediaSettingPageModule {}\r\n","import { Component, OnInit } from '@angular/core';\r\nimport { AbstractControl, FormControl, FormGroup, ValidationErrors, ValidatorFn, Validators } from '@angular/forms';\r\nimport moment from 'moment';\r\nimport { map, takeUntil } from 'rxjs';\r\nimport { Unsubscriber } from 'src/app/core/unsubscriber';\r\nimport { ScreenSizeService } from 'src/app/core/utils/screen-size.service';\r\nimport { DestinationService } from 'src/app/domain/destination/destination.service';\r\nimport { Feature } from 'src/app/domain/feature/feature.model';\r\nimport { FeatureAccessLevel } from 'src/app/domain/feature/feature-access-level.model';\r\nimport { FeatureId } from 'src/app/domain/feature/feature-id.model';\r\nimport { SisMediaSetting } from 'src/app/sismedia-setting/sismedia-setting.model';\r\nimport { SisMediaSettingService } from 'src/app/sismedia-setting/sismedia-setting.service';\r\n\r\n@Component({\r\n selector: 'sis-media-setting',\r\n templateUrl: './sismedia-setting.page.html',\r\n styleUrls: ['./sismedia-setting.page.scss'],\r\n standalone: false\r\n})\r\nexport class SisMediaSettingPage extends Unsubscriber implements OnInit {\r\n private readonly requiredWriteFeature = new Feature(FeatureId.SISMEDIA_ASSET_EDIT, FeatureAccessLevel.WRITE);\r\n\r\n readonly bigScreenMode$ = this.screenSizeService.bigScreenMode$;\r\n readonly writePermission$ = this.destinationService.selectedTenantFeatures$.pipe(\r\n map((features) => {\r\n return features?.some((f) => f.hasMinimumRequirementFor(this.requiredWriteFeature)) ?? false;\r\n })\r\n );\r\n\r\n private sisMediaSetting: SisMediaSetting;\r\n\r\n sisMediaSettingEdited: SisMediaSetting;\r\n formGroup: FormGroup;\r\n edited: boolean;\r\n saving: boolean;\r\n\r\n constructor(\r\n private sisMediaSettingService: SisMediaSettingService,\r\n private screenSizeService: ScreenSizeService,\r\n private destinationService: DestinationService\r\n ) {\r\n super();\r\n }\r\n\r\n ngOnInit(): void {\r\n this.formGroup = new FormGroup(\r\n {\r\n winterSeasonStartDate: new FormControl(null, [Validators.required]),\r\n winterSeasonEndDate: new FormControl(null, [Validators.required]),\r\n liftsOpenFrom: new FormControl(null, [Validators.required]),\r\n liftsOpenTo: new FormControl(null, [Validators.required]),\r\n },\r\n {\r\n validators: [this.validateSeasonDates(), this.validateLiftOpenTimes()],\r\n }\r\n );\r\n\r\n this.sisMediaSettingService.sisMediaSetting$.pipe(takeUntil(this.onDestroy$)).subscribe((sisMediaSetting) => {\r\n this.sisMediaSetting = sisMediaSetting ?? {\r\n tenantGuid: null,\r\n liftsOpenFrom: null,\r\n liftsOpenTo: null,\r\n winterSeasonEndDate: null,\r\n winterSeasonStartDate: null,\r\n };\r\n\r\n this.reset();\r\n this.saving = false;\r\n });\r\n\r\n this.formGroup.valueChanges.pipe(takeUntil(this.onDestroy$)).subscribe((values) => {\r\n if (this.sisMediaSettingEdited) {\r\n this.sisMediaSettingEdited.winterSeasonStartDate = new Date(values.winterSeasonStartDate);\r\n this.sisMediaSettingEdited.winterSeasonEndDate = new Date(values.winterSeasonEndDate);\r\n this.sisMediaSettingEdited.liftsOpenFrom = values.liftsOpenFrom;\r\n this.sisMediaSettingEdited.liftsOpenTo = values.liftsOpenTo;\r\n }\r\n\r\n this.edited = this.isEdited();\r\n });\r\n\r\n this.writePermission$.pipe(takeUntil(this.onDestroy$)).subscribe((writePermission) => {\r\n if (writePermission) {\r\n this.formGroup.enable();\r\n } else {\r\n this.formGroup.disable();\r\n }\r\n });\r\n }\r\n\r\n reset(): void {\r\n this.sisMediaSettingEdited = { ...this.sisMediaSetting };\r\n\r\n this.formGroup.controls.winterSeasonStartDate.setValue(\r\n moment(this.sisMediaSetting.winterSeasonStartDate).format('YYYY-MM-DD')\r\n );\r\n this.formGroup.controls.winterSeasonEndDate.setValue(\r\n moment(this.sisMediaSetting.winterSeasonEndDate).format('YYYY-MM-DD')\r\n );\r\n this.formGroup.controls.liftsOpenFrom.setValue(this.sisMediaSetting.liftsOpenFrom);\r\n this.formGroup.controls.liftsOpenTo.setValue(this.sisMediaSetting.liftsOpenTo);\r\n\r\n this.edited = false;\r\n }\r\n\r\n async save(): Promise {\r\n if (!this.saving) {\r\n this.saving = true;\r\n this.saving = await this.sisMediaSettingService.postSisMediaSetting(this.sisMediaSettingEdited);\r\n }\r\n }\r\n\r\n private validateSeasonDates(): ValidatorFn {\r\n return (control: AbstractControl): ValidationErrors | null => {\r\n const startControl = control.get('winterSeasonStartDate');\r\n const endControl = control.get('winterSeasonEndDate');\r\n\r\n const start = startControl.value as Date;\r\n const end = endControl.value as Date;\r\n\r\n if (start == null || end == null) {\r\n return { seasonDatesInvalid: true };\r\n }\r\n\r\n return start < end ? null : { seasonDatesInvalid: true };\r\n };\r\n }\r\n\r\n private validateLiftOpenTimes(): ValidatorFn {\r\n return (control: AbstractControl): ValidationErrors | null => {\r\n const fromControl = control.get('liftsOpenFrom');\r\n const toControl = control.get('liftsOpenTo');\r\n\r\n const from = fromControl.value as string;\r\n const to = toControl.value as string;\r\n\r\n const regex = /^\\d{2}:\\d{2}$/g;\r\n\r\n return from?.match(regex) != null && to?.match(regex) != null && from < to\r\n ? null\r\n : { operatingTimesInvalid: true };\r\n };\r\n }\r\n\r\n private isEdited(): boolean {\r\n return (\r\n this.sisMediaSettingEdited != null &&\r\n (this.sisMediaSettingEdited.winterSeasonStartDate !== this.sisMediaSetting.winterSeasonStartDate ||\r\n this.sisMediaSettingEdited.winterSeasonEndDate !== this.sisMediaSetting.winterSeasonEndDate ||\r\n this.sisMediaSettingEdited.liftsOpenFrom !== this.sisMediaSetting.liftsOpenFrom ||\r\n this.sisMediaSettingEdited.liftsOpenTo !== this.sisMediaSetting.liftsOpenTo)\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 {{ 'stnet.term.winterSeason' | translate }}\r\n \r\n
{{ 'general.term.fromDate' | translate }}
\r\n
\r\n \r\n \r\n \r\n\r\n \r\n \r\n
{{ 'general.term.toDate' | translate }}
\r\n
\r\n \r\n \r\n \r\n
\r\n\r\n \r\n \r\n {{ 'stnet.term.operatingTimes' | translate }}\r\n \r\n
{{ 'general.term.fromTime' | translate }}
\r\n
\r\n \r\n \r\n \r\n \r\n \r\n
{{ 'general.term.toTimeOnly' | translate }}
\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 {{ 'stnet.term.winterSeason' | translate }}\r\n \r\n \r\n \r\n
{{ 'general.term.fromDate' | translate }}
\r\n
\r\n \r\n \r\n \r\n
{{ 'general.term.toDate' | translate }}
\r\n
\r\n \r\n \r\n
\r\n\r\n \r\n \r\n {{ 'stnet.term.operatingTimes' | translate }}\r\n \r\n \r\n \r\n
{{ 'general.term.fromTime' | translate }}
\r\n
\r\n \r\n \r\n \r\n
{{ 'general.term.toTimeOnly' | translate }}
\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 { HttpClient } from '@angular/common/http';\r\nimport { Injectable } from '@angular/core';\r\nimport {\r\n catchError,\r\n distinctUntilChanged,\r\n filter,\r\n firstValueFrom,\r\n map,\r\n merge,\r\n Observable,\r\n of,\r\n shareReplay,\r\n switchMap,\r\n withLatestFrom,\r\n} from 'rxjs';\r\nimport { EventBusService } from 'src/app/core/eventbus/event-bus.service';\r\nimport { SisMediaSettingUpdatedEvent } from 'src/app/core/eventbus/events';\r\nimport { DestinationService } from 'src/app/domain/destination/destination.service';\r\nimport { UserSettingsService } from 'src/app/domain/user-settings/user-settings.service';\r\nimport { SisMediaSettingAdapter } from 'src/app/sismedia-setting/sismedia-setting.adapter';\r\nimport { SisMediaSetting } from 'src/app/sismedia-setting/sismedia-setting.model';\r\nimport { UserMessage } from 'src/app/user-message/user-message.model';\r\nimport { UserMessageService } from 'src/app/user-message/user-message.service';\r\nimport { UserMessageColor } from 'src/app/user-message/user-message-color';\r\nimport { UserMessageIcon } from 'src/app/user-message/user-message-icon';\r\nimport { environment } from 'src/environments/environment';\r\n\r\n@Injectable({\r\n providedIn: 'root',\r\n})\r\nexport class SisMediaSettingService {\r\n private readonly baseRequestUrl: string = '/sismedia/settings';\r\n private readonly basePostUrl: string = '/sismedia/settings';\r\n\r\n private readonly sisMediaSettingRequest$: Observable =\r\n this.destinationService.selectedTenantFeatures$.pipe(\r\n distinctUntilChanged(),\r\n switchMap(() => this.http.get(`${environment.baseUrlApi}${this.baseRequestUrl}`)),\r\n map((data) => SisMediaSettingAdapter.adapt(data)),\r\n shareReplay({\r\n bufferSize: 1,\r\n refCount: true,\r\n })\r\n );\r\n\r\n private readonly sisMediaSettingUpdate$: Observable = this.eventBus\r\n .observe(SisMediaSettingUpdatedEvent)\r\n .pipe(\r\n withLatestFrom(this.destinationService.selectedTenant$),\r\n filter(([updatedEvent, tenant]) => updatedEvent?.sisMediaSetting.tenantGuid === tenant?.guid),\r\n withLatestFrom(this.sisMediaSettingRequest$, this.userSettingsService.userSettings$),\r\n map(([[updatedEvent], sisMediaSetting, userSettings]) => {\r\n if (updatedEvent.changedBy === userSettings.userGuid) {\r\n const translateKey = updatedEvent.updateSuccessful ? 'general.phrase.saved' : 'general.phrase.saveFailed';\r\n const icon = updatedEvent.updateSuccessful ? UserMessageIcon.success : UserMessageIcon.failed;\r\n const color = updatedEvent.updateSuccessful ? UserMessageColor.green : UserMessageColor.red;\r\n const userMessage = new UserMessage({\r\n message: translateKey,\r\n icon,\r\n durationMs: 2000,\r\n position: 'top',\r\n color,\r\n });\r\n this.userMessageService.presentToast(userMessage);\r\n }\r\n\r\n if (updatedEvent.updateSuccessful) {\r\n return updatedEvent.sisMediaSetting;\r\n }\r\n\r\n return sisMediaSetting;\r\n })\r\n );\r\n\r\n readonly sisMediaSetting$: Observable = merge(\r\n this.sisMediaSettingRequest$,\r\n this.sisMediaSettingUpdate$\r\n ).pipe(shareReplay({ bufferSize: 1, refCount: true }));\r\n\r\n constructor(\r\n private destinationService: DestinationService,\r\n private http: HttpClient,\r\n private eventBus: EventBusService,\r\n private userSettingsService: UserSettingsService,\r\n private userMessageService: UserMessageService\r\n ) {}\r\n\r\n async postSisMediaSetting(sisMediaSetting: SisMediaSetting): Promise {\r\n const tenant = await firstValueFrom(this.destinationService.selectedTenant$);\r\n sisMediaSetting.tenantGuid = tenant.guid;\r\n\r\n return firstValueFrom(\r\n this.http.post(`${environment.baseUrlApi}${this.basePostUrl}`, sisMediaSetting).pipe(\r\n map(() => true),\r\n catchError(() => {\r\n const translateKey = 'general.phrase.saveFailed';\r\n const userMessage = new UserMessage({\r\n message: translateKey,\r\n icon: UserMessageIcon.failed,\r\n durationMs: 2000,\r\n position: 'top',\r\n color: UserMessageColor.red,\r\n });\r\n this.userMessageService.presentToast(userMessage);\r\n return of(false);\r\n })\r\n )\r\n );\r\n }\r\n}\r\n","export enum SisMediaAssetCategory {\r\n Lift = 1,\r\n Slope = 2,\r\n Trail = 3,\r\n Gastro = 4,\r\n Poi = 5,\r\n}\r\n","export enum SisMediaAssetImportType {\r\n Toubiz = 0,\r\n}\r\n","export enum SisMediaAssetStatus {\r\n NoStatus = null,\r\n Disabled = 0,\r\n Closed = 1,\r\n Open = 2,\r\n Preparation = 3,\r\n}\r\n","export enum SisMediaAssetSubStatus {\r\n Disabled = null,\r\n NoSubStatus = 0,\r\n Revision = 101,\r\n Storm = 102,\r\n Malfunction = 103,\r\n Circulation = 201,\r\n Convoy = 202,\r\n}\r\n","import { ExportAdapter } from 'src/app/domain/export/export.adapter';\r\nimport { SisMediaItem } from 'src/app/sismedia/domain/sismedia-item.model';\r\n\r\nexport class SisMediaItemAdapter {\r\n static adapt(items: any): SisMediaItem[] {\r\n const result: SisMediaItem[] = [];\r\n\r\n if (items) {\r\n items.forEach((e: any) => {\r\n result.push(\r\n new SisMediaItem({\r\n id: e.id,\r\n assetGuid: e.assetGuid,\r\n name: e.name,\r\n label: e.label,\r\n type: e.type?.toLowerCase(),\r\n status: e.status,\r\n subStatus: e.subStatus,\r\n activeStatus: e.activeStatus,\r\n hasActiveOverride: e.hasActiveOverride,\r\n statusOverrideActive: e.statusOverrideActive,\r\n lastStatusChange: new Date(e.lastStatusChange),\r\n cockpitOrder: e.cockpitOrder == null ? 999 : e.cockpitOrder,\r\n assetCategory: e.assetCategory,\r\n nameEn: e.nameEn,\r\n contact: e.contact,\r\n location: e.location,\r\n phone: e.phone,\r\n email: e.email,\r\n website: e.website,\r\n info: e.info,\r\n custom: e.custom,\r\n lengthMeter: e.lengthMeter,\r\n throughput: e.throughput,\r\n firstRide: e.firstRide,\r\n lastRide: e.lastRide,\r\n travelTime: e.travelTime,\r\n elevation: e.elevation,\r\n duration: e.duration,\r\n season: e.season,\r\n exports: ExportAdapter.adapt(e.exports),\r\n operatingHoursEnabled: e.operatingHoursEnabled,\r\n sisMapNames: e.sisMaps?.map((s) => s.name) ?? [],\r\n sisMapInfo: e.sisMaps ?? [],\r\n importType: e.importType,\r\n })\r\n );\r\n });\r\n }\r\n\r\n return result;\r\n }\r\n}\r\n","import { BehaviorSubject, Observable } from 'rxjs';\r\nimport { WritablePart } from 'src/app/core/utils/type-helper';\r\nimport { Export } from 'src/app/domain/export/export.model';\r\nimport { SisMediaAssetCategory } from 'src/app/sismedia/domain/sismedia-asset-category.enum';\r\nimport { SisMediaAssetImportType } from 'src/app/sismedia/domain/sismedia-asset-import-type.enum';\r\nimport { SisMediaAssetStatus } from 'src/app/sismedia/domain/sismedia-asset-status.enum';\r\nimport { SisMediaAssetSubStatus } from 'src/app/sismedia/domain/sismedia-asset-substatus.enum';\r\nimport { SisMediaItemIconOptions } from 'src/app/sismedia/domain/sismedia-item-icon-options.model';\r\nimport { SisMediaSeason } from 'src/app/sismedia/domain/sismedia-season.enum';\r\nimport { SisMediaSisMapInfo } from 'src/app/sismedia/domain/sismedia-sismap-info.model';\r\n\r\nexport class SisMediaItem {\r\n static readonly Status = 'status';\r\n static readonly SubStatus = 'subStatus';\r\n static readonly AssetEdit = 'assetEdit';\r\n static readonly OperatingHours = 'operatingHours';\r\n static readonly ExportMappings = 'exportMappings';\r\n static readonly settings: string[] = [\r\n SisMediaItem.SubStatus,\r\n SisMediaItem.Status,\r\n SisMediaItem.AssetEdit,\r\n SisMediaItem.OperatingHours,\r\n SisMediaItem.ExportMappings,\r\n ];\r\n\r\n private updating$: Map> = new Map>();\r\n\r\n readonly iconOptions: SisMediaItemIconOptions[] = [\r\n {\r\n sisMediaStatus: SisMediaAssetStatus.Disabled,\r\n iconName: 'sis-status-disabled',\r\n colorDisabledClassName: 'sis-disabled-black',\r\n colorEnabledClassName: 'sis-black',\r\n tooltipTranslationString: 'sismedia.term.disabled',\r\n dataTestString: 'sismedia-state-disabled',\r\n dataTestOverrideString: 'sismedia-asset-override-state-disabled',\r\n },\r\n {\r\n sisMediaStatus: SisMediaAssetStatus.Closed,\r\n iconName: 'sis-status-closed',\r\n colorDisabledClassName: 'sis-disabled-red',\r\n colorEnabledClassName: 'sis-red',\r\n tooltipTranslationString: 'sismedia.term.closed',\r\n dataTestString: 'sismedia-state-closed',\r\n dataTestOverrideString: 'sismedia-asset-override-state-closed',\r\n },\r\n {\r\n sisMediaStatus: SisMediaAssetStatus.Preparation,\r\n iconName: 'sis-status-preparation',\r\n colorDisabledClassName: 'sis-disabled-yellow',\r\n colorEnabledClassName: 'sis-yellow',\r\n tooltipTranslationString: 'sismedia.term.preparation',\r\n dataTestString: 'sismedia-state-preparation',\r\n dataTestOverrideString: 'sismedia-asset-override-state-preparation',\r\n },\r\n {\r\n sisMediaStatus: SisMediaAssetStatus.Open,\r\n iconName: 'sis-status-open',\r\n colorDisabledClassName: 'sis-disabled-green',\r\n colorEnabledClassName: 'sis-green',\r\n tooltipTranslationString: 'sismedia.term.open',\r\n dataTestString: 'sismedia-state-open',\r\n dataTestOverrideString: 'sismedia-asset-override-state-open',\r\n },\r\n ];\r\n\r\n assetGuid: string;\r\n id: number;\r\n name: string;\r\n nameEn: string;\r\n contact: string;\r\n location: string;\r\n phone: string;\r\n email: string;\r\n website: string;\r\n label: string;\r\n type: string;\r\n lengthMeter: number;\r\n info: string;\r\n custom: string;\r\n throughput: number;\r\n firstRide: string;\r\n lastRide: string;\r\n travelTime: number;\r\n elevation: number;\r\n duration: number;\r\n status?: SisMediaAssetStatus;\r\n subStatus?: SisMediaAssetSubStatus;\r\n activeStatus: SisMediaAssetStatus;\r\n hasActiveOverride: boolean;\r\n statusOverrideActive: boolean;\r\n lastStatusChange: Date;\r\n cockpitOrder: number;\r\n assetCategory: SisMediaAssetCategory;\r\n season: SisMediaSeason;\r\n operatingHoursEnabled: boolean;\r\n importType?: SisMediaAssetImportType;\r\n\r\n exports: Export[];\r\n sisMapNames: string[];\r\n\r\n sisMapInfo: SisMediaSisMapInfo[];\r\n\r\n constructor(init?: Partial>) {\r\n Object.assign(this, init);\r\n\r\n SisMediaItem.settings.forEach((s) => {\r\n const updating = new BehaviorSubject(false);\r\n this.updating$.set(s, updating);\r\n });\r\n\r\n if (this.assetCategory === SisMediaAssetCategory.Lift && this.type == 'gondelbahn' && this.subStatus != null) {\r\n this.iconOptions[3] = {\r\n sisMediaStatus: SisMediaAssetStatus.Open,\r\n iconName: 'sis-status-open',\r\n colorDisabledClassName: 'sis-disabled-green',\r\n colorEnabledClassName: 'sis-green',\r\n tooltipTranslationString: 'sismedia.term.open',\r\n dataTestString: 'sismedia-state-open',\r\n dataTestOverrideString: 'sismedia-asset-override-state-open',\r\n subStatusOptions: [\r\n {\r\n sisMediaSubStatus: SisMediaAssetSubStatus.Convoy,\r\n iconName: 'sis-status-convoy',\r\n tooltipTranslationString: 'sismedia.term.convoy',\r\n },\r\n {\r\n sisMediaSubStatus: SisMediaAssetSubStatus.Circulation,\r\n iconName: 'sis-status-circulation',\r\n tooltipTranslationString: 'sismedia.term.circulation',\r\n },\r\n ],\r\n };\r\n }\r\n\r\n if (this.assetCategory === SisMediaAssetCategory.Lift && this.subStatus != null) {\r\n this.iconOptions[1] = {\r\n sisMediaStatus: SisMediaAssetStatus.Closed,\r\n iconName: 'sis-status-closed',\r\n colorDisabledClassName: 'sis-disabled-red',\r\n colorEnabledClassName: 'sis-red',\r\n tooltipTranslationString: 'sismedia.term.closed',\r\n dataTestString: 'sismedia-state-closed',\r\n dataTestOverrideString: 'sismedia-asset-override-state-closed',\r\n subStatusOptions: [\r\n {\r\n sisMediaSubStatus: SisMediaAssetSubStatus.Revision,\r\n iconName: 'sis-status-revision',\r\n tooltipTranslationString: 'sismedia.term.revision',\r\n },\r\n {\r\n sisMediaSubStatus: SisMediaAssetSubStatus.Storm,\r\n iconName: 'sis-status-storm',\r\n tooltipTranslationString: 'sismedia.term.storm',\r\n },\r\n {\r\n sisMediaSubStatus: SisMediaAssetSubStatus.Malfunction,\r\n iconName: 'sis-status-malfunction',\r\n tooltipTranslationString: 'sismedia.term.malfunction',\r\n },\r\n ],\r\n };\r\n }\r\n }\r\n\r\n getUpdating(setting: string): Observable {\r\n return this.updating$.get(setting).asObservable();\r\n }\r\n\r\n setUpdating(setting: string, value: boolean): void {\r\n this.updating$.get(setting).next(value);\r\n }\r\n}\r\n","export enum SisMediaSeason {\r\n SummerAndWinter = 0,\r\n Summer = 1,\r\n Winter = 2,\r\n}\r\n","import { Component, EventEmitter, Input, OnInit, Output } from '@angular/core';\r\nimport { Subject } from 'rxjs';\r\nimport { debounceTime, takeUntil } from 'rxjs/operators';\r\nimport { EventBusService } from 'src/app/core/eventbus/event-bus.service';\r\nimport { SisMediaAssetOverrideUpdatedEvent } from 'src/app/core/eventbus/events';\r\nimport { Unsubscriber } from 'src/app/core/unsubscriber';\r\nimport { ConfirmationDialogService } from 'src/app/core/utils/confirmation-dialog.service';\r\nimport { ScreenSizeService } from 'src/app/core/utils/screen-size.service';\r\nimport { SisMediaAssetStatus } from 'src/app/sismedia/domain/sismedia-asset-status.enum';\r\nimport { SisMediaItem } from 'src/app/sismedia/domain/sismedia-item.model';\r\nimport { SisMediaAssetOverrideEntry } from 'src/app/sismedia/sismedia-asset-override/domain/sismedia-asset-override-entry.model';\r\nimport { SisMediaAssetOverrideService } from 'src/app/sismedia/sismedia-asset-override/sismedia-asset-override.service';\r\nimport { UserMessage } from 'src/app/user-message/user-message.model';\r\nimport { UserMessageService } from 'src/app/user-message/user-message.service';\r\nimport { UserMessageColor } from 'src/app/user-message/user-message-color';\r\nimport { UserMessageIcon } from 'src/app/user-message/user-message-icon';\r\n\r\n@Component({\r\n selector: 'sis-sismedia-asset-override-item',\r\n templateUrl: './asset-override-item.component.html',\r\n styleUrls: ['./asset-override-item.component.scss'],\r\n standalone: false\r\n})\r\nexport class AssetOverrideItemComponent extends Unsubscriber implements OnInit {\r\n @Input() assetOverrideItem: SisMediaAssetOverrideEntry;\r\n @Input() assetOverrideItems: SisMediaAssetOverrideEntry[];\r\n @Input() sisMediaItem: SisMediaItem;\r\n @Input() showHeader: boolean;\r\n @Input() writePermission: boolean;\r\n @Output() hasChangedEmitter = new EventEmitter<{\r\n guid: string;\r\n changed: boolean;\r\n }>();\r\n\r\n private readonly dataChanged$ = new Subject();\r\n\r\n priorityInputCss: string;\r\n descriptionInputCss: string;\r\n isDeleting = false;\r\n isSaving = false;\r\n hasChanged = false;\r\n bigScreenMode: boolean;\r\n oldItem: SisMediaAssetOverrideEntry;\r\n\r\n constructor(\r\n private sisMediaAssetOverrideService: SisMediaAssetOverrideService,\r\n private screenSizeService: ScreenSizeService,\r\n private userMessageService: UserMessageService,\r\n private confirmationDialogService: ConfirmationDialogService,\r\n private eventBus: EventBusService\r\n ) {\r\n super();\r\n }\r\n\r\n ngOnInit(): void {\r\n this.dataChanged$.pipe(debounceTime(300), takeUntil(this.onDestroy$)).subscribe(async (data) => {\r\n await this.sisMediaAssetOverrideService.updateAssetOverride(data, SisMediaAssetOverrideService.updateOperation);\r\n this.isSaving = false;\r\n });\r\n\r\n this.screenSizeService.bigScreenMode$\r\n .pipe(takeUntil(this.onDestroy$))\r\n .subscribe((bigScreenMode) => (this.bigScreenMode = bigScreenMode));\r\n\r\n this.eventBus\r\n .observe(SisMediaAssetOverrideUpdatedEvent)\r\n .pipe(takeUntil(this.onDestroy$))\r\n .subscribe(() => this.checkChanges());\r\n\r\n this.oldItem = JSON.parse(JSON.stringify(this.assetOverrideItem));\r\n\r\n this.checkChanges();\r\n }\r\n\r\n startTimeChanged(event: any): void {\r\n const newTime = event.target.value;\r\n if (this.assetOverrideItem.startTime === newTime || !this.writePermission) {\r\n return;\r\n }\r\n this.assetOverrideItem.startTime = newTime;\r\n\r\n this.checkChanges();\r\n }\r\n\r\n endTimeChanged(event: any): void {\r\n const newTime = event.target.value;\r\n if (this.assetOverrideItem.endTime === newTime || !this.writePermission) {\r\n return;\r\n }\r\n this.assetOverrideItem.endTime = newTime;\r\n\r\n this.checkChanges();\r\n }\r\n\r\n overrideStatusChanged(overrideStatus: SisMediaAssetStatus): void {\r\n if (this.assetOverrideItem.overrideStatus === overrideStatus || !this.writePermission) {\r\n return;\r\n }\r\n this.assetOverrideItem.overrideStatus = overrideStatus;\r\n\r\n this.checkChanges();\r\n }\r\n\r\n activeChanged(event: any): void {\r\n if (this.writePermission) {\r\n this.assetOverrideItem.active = event.detail.checked;\r\n\r\n this.checkChanges();\r\n }\r\n }\r\n\r\n descriptionChanged(event: any): void {\r\n const newDescription = event.target.value;\r\n\r\n if (this.assetOverrideItem.description === newDescription) {\r\n return;\r\n }\r\n\r\n if (!newDescription) {\r\n this.descriptionInputCss = 'sis-input-invalid';\r\n this.presentErrorToast('user.message.assetOverrideInvalidDescription');\r\n return;\r\n }\r\n this.assetOverrideItem.description = newDescription;\r\n this.descriptionInputCss = '';\r\n\r\n this.checkChanges();\r\n }\r\n\r\n priorityChanged(event: any): void {\r\n const newPriority = event.target.value;\r\n\r\n if (this.assetOverrideItem.priority === newPriority || !this.writePermission) {\r\n return;\r\n }\r\n\r\n if (\r\n this.assetOverrideItems.find(\r\n (override) => override.priority === Number(newPriority) && override.guid !== this.assetOverrideItem.guid\r\n )\r\n ) {\r\n this.priorityInputCss = 'sis-input-invalid';\r\n this.presentErrorToast('user.message.assetOverrideDuplicatedPriority');\r\n return;\r\n }\r\n\r\n if (!newPriority || newPriority < 0 || newPriority > 100) {\r\n this.priorityInputCss = 'sis-input-invalid';\r\n this.presentErrorToast('user.message.assetOverridePriorityOutOfRange');\r\n return;\r\n }\r\n this.assetOverrideItem.priority = +newPriority;\r\n this.priorityInputCss = '';\r\n\r\n this.checkChanges();\r\n }\r\n\r\n reset() {\r\n this.assetOverrideItem = JSON.parse(JSON.stringify(this.oldItem));\r\n\r\n this.checkChanges();\r\n }\r\n\r\n async deleteEntry(): Promise {\r\n if (this.writePermission) {\r\n const confirmed = await this.confirmationDialogService.presentAlert(\r\n 'general.phrase.delete',\r\n 'general.term.delete'\r\n );\r\n if (confirmed) {\r\n this.isDeleting = true;\r\n await this.sisMediaAssetOverrideService.updateAssetOverride(\r\n this.assetOverrideItem,\r\n SisMediaAssetOverrideService.deleteOperation\r\n );\r\n }\r\n }\r\n }\r\n\r\n saveEntry(): void {\r\n if (this.writePermission) {\r\n this.isSaving = true;\r\n this.oldItem = JSON.parse(JSON.stringify(this.assetOverrideItem));\r\n this.dataChanged$.next(this.assetOverrideItem);\r\n\r\n this.checkChanges();\r\n }\r\n }\r\n\r\n private presentErrorToast(translateKey: string) {\r\n const userMessage = new UserMessage({\r\n message: translateKey,\r\n icon: UserMessageIcon.failed,\r\n durationMs: 3000,\r\n position: 'top',\r\n color: UserMessageColor.red,\r\n });\r\n this.userMessageService.presentToast(userMessage);\r\n }\r\n\r\n private checkChanges(): void {\r\n const changed = JSON.stringify(this.assetOverrideItem) !== JSON.stringify(this.oldItem);\r\n\r\n this.hasChanged = changed;\r\n this.hasChangedEmitter.emit({ guid: this.assetOverrideItem.guid, changed });\r\n }\r\n}\r\n","\r\n\r\n \r\n {{ 'general.term.description' | translate }}\r\n {{ 'general.term.active' | translate }}\r\n {{ 'general.term.on' | translate }}\r\n {{ 'general.term.off' | translate }}\r\n {{ 'general.term.priorityShort' | translate }}\r\n {{ 'general.term.status' | translate }}\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 {{ 'general.term.active' | translate }}\r\n \r\n \r\n \r\n {{ 'general.term.priorityShort' | translate }}\r\n \r\n \r\n \r\n \r\n \r\n {{ 'general.term.on' | translate }}\r\n \r\n \r\n \r\n {{ 'general.term.off' | translate }}\r\n \r\n \r\n \r\n \r\n \r\n {{ 'general.term.status' | translate }}\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 { SisMediaAssetOverrideEntry } from 'src/app/sismedia/sismedia-asset-override/domain/sismedia-asset-override-entry.model';\r\n\r\nexport class SisMediaAssetOverrideEntryAdapter {\r\n static adapt(items: any): SisMediaAssetOverrideEntry[] {\r\n const assetOverrideDatas: SisMediaAssetOverrideEntry[] = [];\r\n\r\n if (items) {\r\n items.forEach((item) => {\r\n const assetOverrideData: SisMediaAssetOverrideEntry = {\r\n guid: item.guid,\r\n assetGuid: item.assetGuid,\r\n description: item.description,\r\n overrideStatus: item.overrideStatus,\r\n startTime: item.startTime,\r\n endTime: item.endTime,\r\n active: item.active,\r\n priority: item.priority,\r\n };\r\n\r\n assetOverrideDatas.push(assetOverrideData);\r\n });\r\n }\r\n\r\n return assetOverrideDatas;\r\n }\r\n}\r\n","import { Component, OnInit } from '@angular/core';\r\nimport { ModalController } from '@ionic/angular';\r\nimport { TranslateService } from '@ngx-translate/core';\r\nimport { firstValueFrom } from 'rxjs';\r\nimport { takeUntil } from 'rxjs/operators';\r\nimport { LogbookModalService } from 'src/app/core/components/logbook/logbook-modal/logbook-modal.service';\r\nimport { Unsubscriber } from 'src/app/core/unsubscriber';\r\nimport { ConfirmationDialogService } from 'src/app/core/utils/confirmation-dialog.service';\r\nimport { ScreenSizeService } from 'src/app/core/utils/screen-size.service';\r\nimport { DestinationService } from 'src/app/domain/destination/destination.service';\r\nimport { Feature } from 'src/app/domain/feature/feature.model';\r\nimport { FeatureAccessLevel } from 'src/app/domain/feature/feature-access-level.model';\r\nimport { FeatureId } from 'src/app/domain/feature/feature-id.model';\r\nimport { SisMediaAssetStatus } from 'src/app/sismedia/domain/sismedia-asset-status.enum';\r\nimport { SisMediaItem } from 'src/app/sismedia/domain/sismedia-item.model';\r\nimport { SisMediaAssetOverrideEntry } from 'src/app/sismedia/sismedia-asset-override/domain/sismedia-asset-override-entry.model';\r\nimport { SisMediaAssetOverrideService } from 'src/app/sismedia/sismedia-asset-override/sismedia-asset-override.service';\r\nimport { NIL as emptyGuid } from 'uuid';\r\n\r\n@Component({\r\n selector: 'sis-sismedia-asset-override',\r\n templateUrl: './sismedia-asset-override.page.html',\r\n styleUrls: ['./sismedia-asset-override.page.scss'],\r\n standalone: false\r\n})\r\nexport class SisMediaAssetOverrideComponent extends Unsubscriber implements OnInit {\r\n private static readonly requiredFeature = new Feature(FeatureId.SISMEDIA_ASSETOVERRIDE, FeatureAccessLevel.WRITE);\r\n\r\n private readonly changesMap = new Map();\r\n\r\n readonly logbookAvailable$ = this.logbookModalService.logbookAvailable$;\r\n readonly insertingEntry$ = this.sisMediaAssetOverrideService.insertingEntry$;\r\n\r\n item: SisMediaItem;\r\n featureId: FeatureId;\r\n assetOverrideDatas: SisMediaAssetOverrideEntry[];\r\n hasEntries = false;\r\n writePermission: boolean;\r\n bigScreenMode: boolean;\r\n hasChanges: boolean = false;\r\n\r\n constructor(\r\n private modalCtrl: ModalController,\r\n private sisMediaAssetOverrideService: SisMediaAssetOverrideService,\r\n private screenSizeService: ScreenSizeService,\r\n private destinationService: DestinationService,\r\n private logbookModalService: LogbookModalService,\r\n private translateService: TranslateService,\r\n private confirmationDialogService: ConfirmationDialogService\r\n ) {\r\n super();\r\n }\r\n\r\n ngOnInit(): void {\r\n this.screenSizeService.bigScreenMode$\r\n .pipe(takeUntil(this.onDestroy$))\r\n .subscribe((bigScreenMode) => (this.bigScreenMode = bigScreenMode));\r\n\r\n this.sisMediaAssetOverrideService\r\n .requestAssetOverrideData(this.item)\r\n .pipe(takeUntil(this.onDestroy$))\r\n .subscribe((data) => {\r\n this.item.hasActiveOverride = data.some((o) => o.active);\r\n this.hasEntries = data && data.length > 0;\r\n this.assetOverrideDatas = data;\r\n });\r\n\r\n this.destinationService.selectedTenantFeatures$.pipe(takeUntil(this.onDestroy$)).subscribe((features) => {\r\n this.writePermission = features.some((f) =>\r\n f.hasMinimumRequirementFor(SisMediaAssetOverrideComponent.requiredFeature)\r\n );\r\n });\r\n }\r\n\r\n closeModal(): void {\r\n this.modalCtrl.dismiss();\r\n }\r\n\r\n changed({ guid, changed }): void {\r\n this.changesMap.set(guid, changed);\r\n\r\n this.hasChanges = [...this.changesMap.values()].some((v) => v);\r\n }\r\n\r\n cancel(): void {\r\n if (this.hasChanges) {\r\n this.confirmationDialogService\r\n .presentAlert('mediacenter.phrase.exitWithoutSaving', 'mediacenter.term.exit')\r\n .then((confirm) => {\r\n if (confirm) {\r\n this.closeModal();\r\n }\r\n });\r\n } else {\r\n this.closeModal();\r\n }\r\n }\r\n\r\n async openLogbook(): Promise {\r\n await this.logbookModalService.presentLogbookModal([[FeatureId.SISMEDIA_ASSETOVERRIDE, this.featureId]]);\r\n }\r\n\r\n async addEntry(): Promise {\r\n if (this.writePermission) {\r\n const description = await firstValueFrom(this.translateService.get('assetoverride.phrase.newEntry'));\r\n const newEntry: SisMediaAssetOverrideEntry = {\r\n guid: emptyGuid,\r\n assetGuid: this.item.assetGuid,\r\n description,\r\n overrideStatus: SisMediaAssetStatus.Closed,\r\n startTime: '00:00',\r\n endTime: '00:00',\r\n active: false,\r\n priority: this.assetOverrideDatas.reduce((acc, value) => Math.max(acc, value.priority), 0) + 1,\r\n };\r\n\r\n await this.sisMediaAssetOverrideService.updateAssetOverride(\r\n newEntry,\r\n SisMediaAssetOverrideService.insertOperation\r\n );\r\n }\r\n }\r\n}\r\n","\r\n \r\n \r\n \r\n \r\n {{ 'sismedia.phrase.assetoverride' | translate }}\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 {{ 'assetoverride.phrase.noEntry' | translate }} \r\n \r\n \r\n\r\n","import { HttpClient, HttpErrorResponse } from '@angular/common/http';\r\nimport { Injectable } from '@angular/core';\r\nimport { firstValueFrom, merge, Observable, Subject } from 'rxjs';\r\nimport { catchError, map, shareReplay, withLatestFrom } from 'rxjs/operators';\r\nimport { EventBusService } from 'src/app/core/eventbus/event-bus.service';\r\nimport { SisMediaAssetOverrideUpdatedEvent } from 'src/app/core/eventbus/events';\r\nimport { ScreenSizeService } from 'src/app/core/utils/screen-size.service';\r\nimport { UserSettingsService } from 'src/app/domain/user-settings/user-settings.service';\r\nimport { SisMediaItem } from 'src/app/sismedia/domain/sismedia-item.model';\r\nimport { SisMediaAssetOverrideEntryAdapter } from 'src/app/sismedia/sismedia-asset-override/domain/sismedia-asset-override-entry.adapter';\r\nimport { SisMediaAssetOverrideEntry } from 'src/app/sismedia/sismedia-asset-override/domain/sismedia-asset-override-entry.model';\r\nimport { UserMessage } from 'src/app/user-message/user-message.model';\r\nimport { UserMessageService } from 'src/app/user-message/user-message.service';\r\nimport { UserMessageColor } from 'src/app/user-message/user-message-color';\r\nimport { UserMessageIcon } from 'src/app/user-message/user-message-icon';\r\nimport { environment } from 'src/environments/environment';\r\n\r\n@Injectable({\r\n providedIn: 'root',\r\n})\r\nexport class SisMediaAssetOverrideService {\r\n static readonly insertOperation = 'insert';\r\n static readonly updateOperation = 'update';\r\n static readonly deleteOperation = 'delete';\r\n\r\n private readonly _insertingEntry$ = new Subject();\r\n private readonly baseRequestUrl: string = '/sismedia/assetoverride/';\r\n private readonly basePostUrl: string = '/sismedia/assetoverride/update/';\r\n\r\n readonly insertingEntry$ = this._insertingEntry$.asObservable();\r\n\r\n constructor(\r\n private eventBus: EventBusService,\r\n private http: HttpClient,\r\n private screenSizeService: ScreenSizeService,\r\n private userMessageService: UserMessageService,\r\n private userSettingService: UserSettingsService\r\n ) {}\r\n\r\n requestAssetOverrideData(sisMediaItem: SisMediaItem): Observable {\r\n const assetOverrideRequest$: Observable = this.http\r\n .get(`${environment.baseUrlApi}${this.baseRequestUrl}${sisMediaItem.assetGuid}`)\r\n .pipe(\r\n map((data) => SisMediaAssetOverrideEntryAdapter.adapt(data).sort((a, b) => a.priority - b.priority)),\r\n shareReplay({\r\n refCount: true,\r\n bufferSize: 1,\r\n })\r\n );\r\n\r\n const assetOverrideUpdate$: Observable = this.eventBus\r\n .observe(SisMediaAssetOverrideUpdatedEvent)\r\n .pipe(\r\n withLatestFrom(\r\n assetOverrideRequest$,\r\n this.userSettingService.userSettings$,\r\n this.screenSizeService.bigScreenMode$\r\n ),\r\n map(([event, assetOverrideData, userSettings, bigScreenMode]) => {\r\n const updatedEntry = assetOverrideData.find((d) => d.guid === event.sisMediaAssetOverrideEntry.guid);\r\n\r\n if (event.operation === SisMediaAssetOverrideService.updateOperation) {\r\n Object.assign(updatedEntry, event.sisMediaAssetOverrideEntry);\r\n\r\n if (event.updateSuccessful && event.changedBy === userSettings.userGuid) {\r\n const translateKey = 'general.phrase.saved';\r\n const toastPosition = bigScreenMode ? 'top' : 'bottom';\r\n const userMessage = new UserMessage({\r\n message: translateKey,\r\n icon: UserMessageIcon.success,\r\n durationMs: 2000,\r\n position: toastPosition,\r\n color: UserMessageColor.green,\r\n });\r\n\r\n this.userMessageService.presentToast(userMessage);\r\n }\r\n }\r\n\r\n if (event.operation === SisMediaAssetOverrideService.insertOperation) {\r\n assetOverrideData.push(event.sisMediaAssetOverrideEntry);\r\n this._insertingEntry$.next(false);\r\n }\r\n\r\n if (event.operation === SisMediaAssetOverrideService.deleteOperation) {\r\n assetOverrideData.splice(assetOverrideData.indexOf(updatedEntry), 1);\r\n }\r\n\r\n assetOverrideData.sort((a, b) => a.priority - b.priority);\r\n\r\n return assetOverrideData;\r\n })\r\n );\r\n\r\n return merge(assetOverrideRequest$, assetOverrideUpdate$);\r\n }\r\n\r\n async updateAssetOverride(assetOverrideData: SisMediaAssetOverrideEntry, operation: string): Promise {\r\n if (operation === SisMediaAssetOverrideService.insertOperation) {\r\n this._insertingEntry$.next(true);\r\n }\r\n\r\n await firstValueFrom(\r\n this.http\r\n .post(`${environment.baseUrlApi}${this.basePostUrl}`, {\r\n SisMediaAssetOverrideEntry: assetOverrideData,\r\n Operation: operation,\r\n })\r\n .pipe(\r\n withLatestFrom(this.screenSizeService.bigScreenMode$),\r\n catchError((error: HttpErrorResponse, obs$) =>\r\n obs$.pipe(\r\n map(([, bigScreenMode]) => {\r\n const translateKey = 'general.phrase.saveFailed';\r\n const toastPosition = bigScreenMode ? 'top' : 'bottom';\r\n const userMessage = new UserMessage({\r\n message: translateKey,\r\n icon: UserMessageIcon.failed,\r\n durationMs: 2000,\r\n position: toastPosition,\r\n color: UserMessageColor.red,\r\n });\r\n this.userMessageService.presentToast(userMessage);\r\n this._insertingEntry$.next(false);\r\n\r\n return error.status;\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 { FormControl } from '@angular/forms';\r\nimport { ModalController } from '@ionic/angular';\r\nimport { BehaviorSubject, combineLatest } from 'rxjs';\r\nimport { debounceTime, filter, map, startWith, switchMap, takeUntil } from 'rxjs/operators';\r\nimport { LogbookModalService } from 'src/app/core/components/logbook/logbook-modal/logbook-modal.service';\r\nimport { EventBusService } from 'src/app/core/eventbus/event-bus.service';\r\nimport { SisMediaAssetEditUpdatedEvent } from 'src/app/core/eventbus/events';\r\nimport { Unsubscriber } from 'src/app/core/unsubscriber';\r\nimport { ScreenSizeService } from 'src/app/core/utils/screen-size.service';\r\nimport { DestinationService } from 'src/app/domain/destination/destination.service';\r\nimport { Feature } from 'src/app/domain/feature/feature.model';\r\nimport { FeatureAccessLevel } from 'src/app/domain/feature/feature-access-level.model';\r\nimport { FeatureId } from 'src/app/domain/feature/feature-id.model';\r\nimport { UserSettingsService } from 'src/app/domain/user-settings/user-settings.service';\r\nimport { SisMediaAssetCategory } from 'src/app/sismedia/domain/sismedia-asset-category.enum';\r\nimport { SisMediaItem } from 'src/app/sismedia/domain/sismedia-item.model';\r\nimport { SisMediaItemOrder } from 'src/app/sismedia/domain/sismedia-item-order.model';\r\nimport { SisMediaRouteParams } from 'src/app/sismedia/domain/sismedia-route-params.model';\r\nimport { SisMediaSeason } from 'src/app/sismedia/domain/sismedia-season.enum';\r\nimport { SisMediaEditModalComponent } from 'src/app/sismedia/sismedia-edit-modal/sismedia-edit-modal.component';\r\nimport { SisMediaItemService } from 'src/app/sismedia/sismedia-item/sismedia-item.service';\r\nimport { v4 as v4guid } from 'uuid';\r\n\r\n@Component({\r\n selector: 'sis-sismedia-category',\r\n templateUrl: './sismedia-category.component.html',\r\n styleUrls: ['./sismedia-category.component.scss'],\r\n standalone: false\r\n})\r\nexport class SismediaCategoryComponent extends Unsubscriber implements OnInit {\r\n @Input() options: SisMediaRouteParams;\r\n\r\n readonly seasonIcons = [\r\n {\r\n season: SisMediaSeason.SummerAndWinter,\r\n iconName: 'sis-summer-and-winter-grey',\r\n iconNameSelected: 'sis-summer-and-winter-secondary',\r\n translateKey: 'general.term.summerAndWinter',\r\n },\r\n {\r\n season: SisMediaSeason.Summer,\r\n iconName: 'sis-summer-grey',\r\n iconNameSelected: 'sis-summer-secondary',\r\n translateKey: 'general.term.summer',\r\n },\r\n {\r\n season: SisMediaSeason.Winter,\r\n iconName: 'sis-winter-grey',\r\n iconNameSelected: 'sis-winter-secondary',\r\n translateKey: 'general.term.winter',\r\n },\r\n ];\r\n\r\n readonly logbookAvailable$ = this.logbookModalService.logbookAvailable$;\r\n readonly bigScreenMode$ = this.screenSizeService.bigScreenMode$;\r\n readonly isAdministrator$ = this.userSettingsService.userSettings$.pipe(map((settings) => settings.isAdministrator));\r\n readonly selectedSeason$ = this.userSettingsService.userSettings$.pipe(map((settings) => settings.selectedSeason));\r\n\r\n filterControl = new FormControl('');\r\n\r\n displayedItems: SisMediaItem[];\r\n lastChange: { date: Date; name: string };\r\n\r\n anyItemHasInfo: boolean;\r\n anyItemHasSisMaps: boolean;\r\n\r\n hasAssetEditPermission: boolean;\r\n reorderingEnabled: boolean;\r\n labelMaxLength: number;\r\n featureId: FeatureId[][];\r\n\r\n private readonly sisMediaItems$ = this.sisMediaItemService.sisMediaItems$.pipe(\r\n map((items) => items.get(this.options.assetCategory)),\r\n map((items) => this.filterByItemType(items, this.options.includedItemTypes, this.options.excludedItemTypes)),\r\n map((items) => items.sort(this.sortItems))\r\n );\r\n\r\n private readonly reorderEnabled$ = new BehaviorSubject(false);\r\n private readonly assetEditWriteFeature = new Feature(FeatureId.SISMEDIA_ASSET_EDIT, FeatureAccessLevel.WRITE);\r\n private assetCategoryWriteFeature: Feature;\r\n private sisMediaItemOrders: Map;\r\n private allItems: SisMediaItem[];\r\n\r\n constructor(\r\n private sisMediaItemService: SisMediaItemService,\r\n private logbookModalService: LogbookModalService,\r\n private userSettingsService: UserSettingsService,\r\n private screenSizeService: ScreenSizeService,\r\n private destinationService: DestinationService,\r\n private eventBus: EventBusService,\r\n private modalCtrl: ModalController\r\n ) {\r\n super();\r\n }\r\n\r\n ngOnInit(): void {\r\n this.assetCategoryWriteFeature = new Feature(this.options.featureId, FeatureAccessLevel.WRITE);\r\n\r\n combineLatest([\r\n this.sisMediaItems$,\r\n this.userSettingsService.userSettings$,\r\n this.reorderEnabled$,\r\n this.filterControl.valueChanges.pipe(debounceTime(300), startWith('')),\r\n ])\r\n .pipe(\r\n map(([items, settings, reorderEnabled, search]) =>\r\n reorderEnabled\r\n ? items\r\n : items.filter(\r\n (item) =>\r\n (settings.selectedSeason === SisMediaSeason.SummerAndWinter ||\r\n item.season === SisMediaSeason.SummerAndWinter ||\r\n item.season === settings.selectedSeason) &&\r\n this.containsSearchStringInItemNameOrLabel(item, search)\r\n )\r\n ),\r\n takeUntil(this.onDestroy$)\r\n )\r\n .subscribe((items) => {\r\n this.displayedItems = items;\r\n this.updateLabelSize(items.map((i) => i.label));\r\n this.anyItemHasInfo = this.containsItemsWithInfo(this.displayedItems);\r\n this.anyItemHasSisMaps = this.containsItemsWithSisMaps(this.displayedItems);\r\n });\r\n\r\n this.sisMediaItems$.pipe(takeUntil(this.onDestroy$)).subscribe((items) => {\r\n this.allItems = items;\r\n this.setLastChange(items);\r\n });\r\n\r\n this.eventBus\r\n .observe(SisMediaAssetEditUpdatedEvent)\r\n .pipe(\r\n filter((event) => event.updateSuccessful),\r\n takeUntil(this.onDestroy$)\r\n )\r\n .subscribe((event) => {\r\n this.anyItemHasInfo = this.containsItemsWithInfo(this.displayedItems);\r\n this.anyItemHasSisMaps = this.containsItemsWithSisMaps(this.displayedItems);\r\n this.updateLabelSize(this.displayedItems.map((i) => i.label).concat(event.assetEdits.map((a) => a.label)));\r\n });\r\n\r\n this.destinationService.selectedTenantFeatures$.pipe(takeUntil(this.onDestroy$)).subscribe((features) => {\r\n this.hasAssetEditPermission =\r\n features.some((f) => f.hasMinimumRequirementFor(this.assetCategoryWriteFeature)) &&\r\n features.some((f) => f.hasMinimumRequirementFor(this.assetEditWriteFeature));\r\n });\r\n\r\n this.sisMediaItems$\r\n .pipe(\r\n switchMap(() =>\r\n this.sisMediaItemService.sisMediaCategoryItemOrderUpdated$.pipe(\r\n filter((updatedCategories) => updatedCategories.includes(this.options.assetCategory))\r\n )\r\n ),\r\n takeUntil(this.onDestroy$)\r\n )\r\n .subscribe(() => this.displayedItems.sort(this.sortItems));\r\n\r\n this.featureId = [\r\n [this.options.featureId],\r\n [FeatureId.SISMEDIA_ASSET_EDIT, this.options.featureId],\r\n [FeatureId.SISMEDIA_OPERATINGHOURS, this.options.featureId],\r\n ];\r\n }\r\n\r\n private updateLabelSize(labels: string[]) {\r\n this.labelMaxLength = Math.max(0, ...labels.filter((l) => !!l).map((l) => l.length));\r\n }\r\n\r\n async seasonSelected(season: SisMediaSeason): Promise {\r\n await this.userSettingsService.updateUserSettings({\r\n selectedSeason: season,\r\n });\r\n }\r\n\r\n async onReorderClick(): Promise {\r\n if (this.reorderingEnabled) {\r\n const reorderedItems: SisMediaItemOrder[] = this.allItems\r\n .filter((item) => this.sisMediaItemOrders.get(item.assetGuid) !== item.cockpitOrder)\r\n .map((item) => ({\r\n assetGuid: item.assetGuid,\r\n assetCategory: item.assetCategory,\r\n cockpitOrder: item.cockpitOrder,\r\n }));\r\n\r\n await this.sisMediaItemService.reorderItems(reorderedItems);\r\n } else {\r\n this.sisMediaItemOrders = new Map(this.allItems.map((item) => [item.assetGuid, item.cockpitOrder]));\r\n }\r\n\r\n this.reorderEnabled$.next(!this.reorderingEnabled);\r\n this.reorderingEnabled = !this.reorderingEnabled;\r\n }\r\n\r\n async onReorderCancelClick() {\r\n this.displayedItems.forEach((item) => (item.cockpitOrder = this.sisMediaItemOrders.get(item.assetGuid)));\r\n this.displayedItems.sort(this.sortItems);\r\n this.reorderEnabled$.next(false);\r\n this.reorderingEnabled = false;\r\n }\r\n\r\n async openEditModal() {\r\n if (this.hasAssetEditPermission) {\r\n const sisMediaItem: any = {\r\n assetGuid: v4guid(),\r\n assetCategory: this.options.assetCategory,\r\n };\r\n const modal = await this.modalCtrl.create({\r\n component: SisMediaEditModalComponent,\r\n componentProps: {\r\n isNewItem: true,\r\n sisMediaItem: sisMediaItem,\r\n category: this.options.titleTranslationString.split('.')[2],\r\n },\r\n cssClass: `sis-sismedia-edit-modal-${SisMediaAssetCategory[sisMediaItem.assetCategory].toLowerCase()}`,\r\n backdropDismiss: false,\r\n });\r\n\r\n return modal.present();\r\n }\r\n }\r\n\r\n doReorder(ev: any) {\r\n this.allItems = ev.detail.complete(this.displayedItems);\r\n this.allItems.forEach((item, index) => (item.cockpitOrder = index));\r\n }\r\n\r\n private setLastChange(items: SisMediaItem[]): void {\r\n if (!items || items.length === 0) {\r\n return null;\r\n }\r\n\r\n const lastChangedItem = items.reduce((p, c) => (c.lastStatusChange > p.lastStatusChange ? c : p));\r\n\r\n this.lastChange = { date: lastChangedItem.lastStatusChange, name: lastChangedItem.name };\r\n }\r\n\r\n private sortItems(a: SisMediaItem, b: SisMediaItem): number {\r\n const order = a.cockpitOrder - b.cockpitOrder;\r\n if (order !== 0) {\r\n return order;\r\n }\r\n\r\n if (a.label && b.label) {\r\n const label = a.label.localeCompare(b.label);\r\n if (label !== 0) {\r\n return label;\r\n }\r\n }\r\n\r\n return a.name.localeCompare(b.name);\r\n }\r\n\r\n private filterByItemType(items: SisMediaItem[], includedItemTypes: string[], excludedItemTypes: string[]): SisMediaItem[] {\r\n if (includedItemTypes && includedItemTypes.length > 0) {\r\n items = items.filter((item) => includedItemTypes.includes(item.type));\r\n }\r\n\r\n if (excludedItemTypes && excludedItemTypes.length > 0) {\r\n items = items.filter((item) => !excludedItemTypes.includes(item.type));\r\n }\r\n\r\n return items;\r\n }\r\n\r\n private containsItemsWithInfo(items: SisMediaItem[]): boolean {\r\n return items.some((item) => item.info?.length > 0);\r\n }\r\n\r\n private containsItemsWithSisMaps(items: SisMediaItem[]): boolean {\r\n return items.some((item) => item.sisMapNames?.length > 0);\r\n }\r\n\r\n private containsSearchStringInItemNameOrLabel(item: SisMediaItem, search: string): boolean {\r\n const searchString = search ? search.toLowerCase() : undefined;\r\n if (searchString != null) {\r\n return item.name.toLowerCase().includes(searchString) || item.label?.toLowerCase()?.includes(searchString);\r\n }\r\n\r\n return true;\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 {{ 'general.phrase.lastChange' | translate }}: {{ this.lastChange.name }} ({{\r\n this.lastChange.date | dateTimeFormat\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 {{ 'general.phrase.lastChange' | translate }}: {{ this.lastChange.date | dateTimeFormat }}\r\n \r\n \r\n\r\n\r\n\r\n \r\n \r\n \r\n {{ seasonIcon.translateKey | translate }}\r\n \r\n \r\n\r\n","import { Component, Input, OnInit } from '@angular/core';\r\nimport { FormControl, FormGroup, Validators } from '@angular/forms';\r\nimport { ModalController } from '@ionic/angular';\r\nimport { TranslateService } from '@ngx-translate/core';\r\nimport { debounceTime, map, takeUntil } from 'rxjs/operators';\r\nimport { IconHelper } from 'src/app/core/icon-helper/icon-helper';\r\nimport { Unsubscriber } from 'src/app/core/unsubscriber';\r\nimport { ConfirmationDialogService } from 'src/app/core/utils/confirmation-dialog.service';\r\nimport { ScreenSizeService } from 'src/app/core/utils/screen-size.service';\r\nimport { DestinationService } from 'src/app/domain/destination/destination.service';\r\nimport { Feature } from 'src/app/domain/feature/feature.model';\r\nimport { FeatureAccessLevel } from 'src/app/domain/feature/feature-access-level.model';\r\nimport { FeatureId } from 'src/app/domain/feature/feature-id.model';\r\nimport { SisMediaAssetCategory } from 'src/app/sismedia/domain/sismedia-asset-category.enum';\r\nimport { SisMediaAssetEdit } from 'src/app/sismedia/domain/sismedia-asset-edit.model';\r\nimport { SisMediaAssetImportType } from 'src/app/sismedia/domain/sismedia-asset-import-type.enum';\r\nimport { SisMediaAssetStatus } from 'src/app/sismedia/domain/sismedia-asset-status.enum';\r\nimport { SisMediaItem } from 'src/app/sismedia/domain/sismedia-item.model';\r\nimport { SisMediaSeason } from 'src/app/sismedia/domain/sismedia-season.enum';\r\nimport { SisMediaEditModalFieldOptions } from 'src/app/sismedia/sismedia-edit-modal/sismedia-edit-modal-field-options.model';\r\nimport { SisMediaItemService } from 'src/app/sismedia/sismedia-item/sismedia-item.service';\r\nimport { UserMessage } from 'src/app/user-message/user-message.model';\r\nimport { UserMessageService } from 'src/app/user-message/user-message.service';\r\nimport { UserMessageColor } from 'src/app/user-message/user-message-color';\r\nimport { UserMessageIcon } from 'src/app/user-message/user-message-icon';\r\nimport { environment } from 'src/environments/environment';\r\n\r\n@Component({\r\n selector: 'sis-sismedia-edit-modal',\r\n templateUrl: './sismedia-edit-modal.component.html',\r\n styleUrls: ['./sismedia-edit-modal.component.scss'],\r\n standalone: false\r\n})\r\nexport class SisMediaEditModalComponent extends Unsubscriber implements OnInit {\r\n private static readonly defaultFieldOptions = [\r\n {\r\n propertyName: 'name',\r\n maxLength: 100,\r\n inputType: 'text',\r\n inputLabelTranslateKey: 'sismediaEdit.term.nameDe',\r\n dataTestKey: 'sismedia-edit-name-de-input',\r\n required: true,\r\n includedInImports: [SisMediaAssetImportType.Toubiz],\r\n },\r\n {\r\n propertyName: 'nameEn',\r\n maxLength: 100,\r\n inputType: 'text',\r\n inputLabelTranslateKey: 'sismediaEdit.term.nameEn',\r\n dataTestKey: 'sismedia-edit-name-en-input',\r\n },\r\n {\r\n propertyName: 'info',\r\n maxLength: 300,\r\n inputType: 'textarea',\r\n inputLabelTranslateKey: 'sismediaEdit.term.info',\r\n dataTestKey: 'sismedia-edit-info-input',\r\n includedInImports: [SisMediaAssetImportType.Toubiz],\r\n },\r\n {\r\n propertyName: 'custom',\r\n maxLength: 100,\r\n inputType: 'text',\r\n inputLabelTranslateKey: 'sismediaEdit.term.custom',\r\n dataTestKey: 'sismedia-edit-custom-input',\r\n },\r\n ];\r\n\r\n private static readonly inputFieldOptionsMap: Map = new Map([\r\n [\r\n SisMediaAssetCategory.Lift,\r\n [\r\n ...SisMediaEditModalComponent.defaultFieldOptions,\r\n {\r\n propertyName: 'label',\r\n maxLength: 5,\r\n inputType: 'text',\r\n inputLabelTranslateKey: 'sismediaEdit.term.label',\r\n dataTestKey: 'sismedia-edit-label-input',\r\n },\r\n {\r\n propertyName: 'firstRide',\r\n maxLength: 5,\r\n inputType: 'time',\r\n inputLabelTranslateKey: 'sismediaEdit.term.firstRide',\r\n },\r\n {\r\n propertyName: 'lastRide',\r\n maxLength: 5,\r\n inputType: 'time',\r\n inputLabelTranslateKey: 'sismediaEdit.term.lastRide',\r\n },\r\n {\r\n propertyName: 'travelTime',\r\n maxLength: 5,\r\n inputType: 'number',\r\n inputLabelTranslateKey: 'sismediaEdit.term.travelTime',\r\n },\r\n {\r\n propertyName: 'throughput',\r\n maxLength: 6,\r\n inputType: 'number',\r\n inputLabelTranslateKey: 'sismediaEdit.term.throughput',\r\n },\r\n {\r\n propertyName: 'website',\r\n maxLength: 0,\r\n inputType: 'website',\r\n inputLabelTranslateKey: 'sismedia.term.website',\r\n },\r\n ],\r\n ],\r\n [\r\n SisMediaAssetCategory.Slope,\r\n [\r\n ...SisMediaEditModalComponent.defaultFieldOptions,\r\n {\r\n propertyName: 'label',\r\n maxLength: 5,\r\n inputType: 'text',\r\n inputLabelTranslateKey: 'sismediaEdit.term.label',\r\n dataTestKey: 'sismedia-edit-label-input',\r\n },\r\n {\r\n propertyName: 'lengthMeter',\r\n maxLength: 6,\r\n inputType: 'number',\r\n inputLabelTranslateKey: 'sismediaEdit.term.lengthMeter',\r\n },\r\n {\r\n propertyName: 'website',\r\n maxLength: 0,\r\n inputType: 'website',\r\n inputLabelTranslateKey: 'sismedia.term.website',\r\n },\r\n ],\r\n ],\r\n [\r\n SisMediaAssetCategory.Poi,\r\n [\r\n ...SisMediaEditModalComponent.defaultFieldOptions,\r\n {\r\n propertyName: 'website',\r\n maxLength: 0,\r\n inputType: 'website',\r\n inputLabelTranslateKey: 'sismedia.term.website',\r\n },\r\n ],\r\n ],\r\n [\r\n SisMediaAssetCategory.Gastro,\r\n [\r\n ...SisMediaEditModalComponent.defaultFieldOptions,\r\n {\r\n propertyName: 'contact',\r\n maxLength: 100,\r\n inputType: 'text',\r\n inputLabelTranslateKey: 'sismedia.term.contact',\r\n dataTestKey: 'sismedia-edit-contact-input',\r\n includedInImports: [SisMediaAssetImportType.Toubiz],\r\n },\r\n {\r\n propertyName: 'location',\r\n maxLength: 100,\r\n inputType: 'text',\r\n inputLabelTranslateKey: 'sismedia.term.location',\r\n dataTestKey: 'sismedia-edit-location-input',\r\n includedInImports: [SisMediaAssetImportType.Toubiz],\r\n },\r\n {\r\n propertyName: 'phone',\r\n maxLength: 0,\r\n inputType: 'tel',\r\n inputLabelTranslateKey: 'sismedia.term.phone',\r\n dataTestKey: 'sismedia-edit-phone-input',\r\n includedInImports: [SisMediaAssetImportType.Toubiz],\r\n },\r\n {\r\n propertyName: 'email',\r\n maxLength: 0,\r\n inputType: 'email',\r\n inputLabelTranslateKey: 'sismedia.term.email',\r\n dataTestKey: 'sismedia-edit-email-input',\r\n includedInImports: [SisMediaAssetImportType.Toubiz],\r\n },\r\n {\r\n propertyName: 'website',\r\n maxLength: 0,\r\n inputType: 'website',\r\n inputLabelTranslateKey: 'sismedia.term.website',\r\n dataTestKey: 'sismedia-edit-website-input',\r\n includedInImports: [SisMediaAssetImportType.Toubiz],\r\n },\r\n ],\r\n ],\r\n [\r\n SisMediaAssetCategory.Trail,\r\n [\r\n ...SisMediaEditModalComponent.defaultFieldOptions,\r\n {\r\n propertyName: 'label',\r\n maxLength: 5,\r\n inputType: 'text',\r\n inputLabelTranslateKey: 'sismediaEdit.term.label',\r\n dataTestKey: 'sismedia-edit-label-input',\r\n },\r\n {\r\n propertyName: 'lengthMeter',\r\n maxLength: 6,\r\n inputType: 'number',\r\n inputLabelTranslateKey: 'sismediaEdit.term.lengthMeter',\r\n },\r\n {\r\n propertyName: 'elevation',\r\n maxLength: 5,\r\n inputType: 'number',\r\n inputLabelTranslateKey: 'sismediaEdit.term.elevation',\r\n },\r\n {\r\n propertyName: 'duration',\r\n maxLength: 5,\r\n inputType: 'number',\r\n inputLabelTranslateKey: 'sismediaEdit.term.duration',\r\n },\r\n {\r\n propertyName: 'website',\r\n maxLength: 0,\r\n inputType: 'website',\r\n inputLabelTranslateKey: 'sismedia.term.website',\r\n },\r\n ],\r\n ],\r\n ]);\r\n\r\n private static readonly seasonIcons = new Map<\r\n SisMediaSeason,\r\n { iconName: string; iconNameDisabled: string; translateKey: string }\r\n >([\r\n [\r\n SisMediaSeason.SummerAndWinter,\r\n {\r\n iconName: 'sis-summer-and-winter-black',\r\n iconNameDisabled: 'sis-summer-and-winter-grey',\r\n translateKey: 'sismediaEdit.term.summerAndWinter',\r\n },\r\n ],\r\n [\r\n SisMediaSeason.Summer,\r\n {\r\n iconName: 'sis-summer-black',\r\n iconNameDisabled: 'sis-summer-grey',\r\n translateKey: 'sismediaEdit.term.summer',\r\n },\r\n ],\r\n [\r\n SisMediaSeason.Winter,\r\n {\r\n iconName: 'sis-winter-black',\r\n iconNameDisabled: 'sis-winter-grey',\r\n translateKey: 'sismediaEdit.term.winter',\r\n },\r\n ],\r\n ]);\r\n\r\n @Input() isNewItem: boolean;\r\n @Input() sisMediaItem: SisMediaItem;\r\n @Input() category: string;\r\n\r\n inputFieldOptions: SisMediaEditModalFieldOptions[];\r\n sisMediaItemEdit: SisMediaItem;\r\n seasonIcon: { iconName: string; iconNameDisabled: string; translateKey: string };\r\n\r\n writePermission = false;\r\n isSaving = false;\r\n hasUnsavedChanges = false;\r\n deleteAllowed = false;\r\n deleteAllowedTooltip: string;\r\n\r\n hasStatus: boolean;\r\n typeIcon: string;\r\n\r\n titleTranslationString: string;\r\n formGroup: FormGroup;\r\n\r\n importType?: SisMediaAssetImportType;\r\n importTypeNameTranslationString: string;\r\n\r\n private hasMySqlRouter: boolean;\r\n\r\n readonly sisMediaAssetTypes$ = this.sisMediaItemService.sisMediaTypes$.pipe(\r\n map((types) => types.get(this.sisMediaItem.assetCategory))\r\n );\r\n readonly bigScreenMode$ = this.screenSizeService.bigScreenMode$;\r\n readonly hasMySqlRouter$ = this.destinationService.selectedTenant$.pipe(map((tenant) => tenant.hasMySqlRouter));\r\n\r\n constructor(\r\n private modalCtrl: ModalController,\r\n private sisMediaItemService: SisMediaItemService,\r\n private destinationService: DestinationService,\r\n private screenSizeService: ScreenSizeService,\r\n private confirmationDialogService: ConfirmationDialogService,\r\n private userMessageService: UserMessageService,\r\n private translateService: TranslateService\r\n ) {\r\n super();\r\n }\r\n\r\n ngOnInit(): void {\r\n if (this.sisMediaItem) {\r\n this.importType = this.sisMediaItem.importType;\r\n if (this.importType != null) {\r\n this.importTypeNameTranslationString =\r\n 'sismedia.phrase.imported.' + SisMediaAssetImportType[this.importType].toLowerCase();\r\n }\r\n\r\n this.sisMediaItemEdit = JSON.parse(JSON.stringify(this.sisMediaItem));\r\n\r\n this.hasStatus = this.sisMediaItemEdit.status != SisMediaAssetStatus.NoStatus;\r\n this.seasonIcon = SisMediaEditModalComponent.seasonIcons.get(this.sisMediaItemEdit.season);\r\n\r\n this.inputFieldOptions = SisMediaEditModalComponent.inputFieldOptionsMap.get(this.sisMediaItemEdit.assetCategory);\r\n\r\n this.formGroup = new FormGroup({\r\n hasStatus: new FormControl(this.hasStatus),\r\n season: new FormControl(this.sisMediaItemEdit.season, [Validators.required]),\r\n type: new FormControl(this.sisMediaItemEdit.type, [Validators.required]),\r\n });\r\n\r\n this.inputFieldOptions.forEach((option) => {\r\n const formControl = new FormControl(\r\n this.sisMediaItemEdit[option.propertyName],\r\n option.required ? [Validators.required] : []\r\n );\r\n\r\n this.formGroup.addControl(option.propertyName, formControl);\r\n });\r\n\r\n this.updateTypeIcon();\r\n\r\n this.deleteAllowed =\r\n this.sisMediaItemEdit.exports?.length === 0 && this.sisMediaItemEdit.sisMapNames?.length === 0;\r\n\r\n if (this.deleteAllowed) {\r\n this.deleteAllowedTooltip = '';\r\n } else {\r\n this.deleteAllowedTooltip = this.translateService.instant('sismediaEdit.phrase.cannotDelete') + ':';\r\n if (this.sisMediaItemEdit.exports?.length > 0) {\r\n this.deleteAllowedTooltip += '\\n - ' + this.translateService.instant('sismediaEdit.phrase.partOfExport');\r\n }\r\n if (this.sisMediaItem.sisMapNames?.length > 0) {\r\n this.deleteAllowedTooltip += '\\n - ' + this.translateService.instant('sismediaEdit.phrase.shownOnSisMap');\r\n }\r\n }\r\n\r\n this.titleTranslationString = this.sisMediaItemEdit.id\r\n ? `sismediaEdit.term.${this.category}.edit`\r\n : `sismediaEdit.term.${this.category}.new`;\r\n\r\n this.setValues();\r\n\r\n this.formGroup.valueChanges.pipe(debounceTime(50), takeUntil(this.onDestroy$)).subscribe((value) => {\r\n if (value.hasStatus === true) {\r\n if (this.sisMediaItemEdit.status === SisMediaAssetStatus.NoStatus) {\r\n this.sisMediaItemEdit.status = SisMediaAssetStatus.Disabled;\r\n }\r\n } else {\r\n if (value.hasStatus === false) {\r\n this.sisMediaItemEdit.status = SisMediaAssetStatus.NoStatus;\r\n }\r\n }\r\n\r\n this.hasStatus = this.sisMediaItemEdit.status != SisMediaAssetStatus.NoStatus;\r\n\r\n this.seasonIcon = SisMediaEditModalComponent.seasonIcons.get(value.season) ?? {\r\n iconName: '',\r\n iconNameDisabled: '',\r\n translateKey: '',\r\n };\r\n\r\n this.sisMediaItemEdit.type = value.type;\r\n this.sisMediaItemEdit.season = value.season;\r\n\r\n this.inputFieldOptions\r\n .filter((o) => o.includedInImports == null || !o.includedInImports.includes(this.importType))\r\n .forEach((option) => {\r\n let newValue = value[option.propertyName];\r\n\r\n if (newValue === '' || newValue == null) {\r\n newValue = null;\r\n } else {\r\n if (option.inputType === 'number') {\r\n newValue = Number.parseInt(newValue);\r\n }\r\n if (option.inputType === 'time') {\r\n newValue = newValue.padEnd(8, ':00');\r\n }\r\n }\r\n\r\n this.sisMediaItemEdit[option.propertyName] = newValue;\r\n });\r\n\r\n this.updateTypeIcon();\r\n\r\n this.checkForChanges();\r\n });\r\n }\r\n\r\n this.destinationService.selectedTenantFeatures$.pipe(takeUntil(this.onDestroy$)).subscribe((features) => {\r\n this.writePermission = features.some((f) =>\r\n f.hasMinimumRequirementFor(new Feature(FeatureId.SISMEDIA_ASSET_EDIT, FeatureAccessLevel.WRITE))\r\n );\r\n this.setDisabled();\r\n });\r\n\r\n this.destinationService.selectedTenant$\r\n .pipe(\r\n map((tenant) => tenant.hasMySqlRouter),\r\n takeUntil(this.onDestroy$)\r\n )\r\n .subscribe((hasMySqlRouter) => {\r\n this.hasMySqlRouter = hasMySqlRouter;\r\n this.setDisabled();\r\n });\r\n }\r\n\r\n async save(): Promise {\r\n if (this.formGroup.invalid || !this.hasUnsavedChanges) {\r\n return;\r\n }\r\n\r\n this.isSaving = true;\r\n\r\n this.setDisabled();\r\n\r\n // update status for existing assets\r\n if (!this.isNewItem && this.sisMediaItemEdit.status !== this.sisMediaItem.status) {\r\n await this.sisMediaItemService.updateStatus(\r\n this.sisMediaItemEdit.assetGuid,\r\n this.sisMediaItemEdit.assetCategory,\r\n this.sisMediaItemEdit.status,\r\n this.sisMediaItemEdit.subStatus\r\n );\r\n }\r\n\r\n // insert new or update existing item except status\r\n await this.sisMediaItemService.insertOrUpdateItems(\r\n [this.sisMediaItemEdit],\r\n SisMediaItemService.insertOrUpdateOperation\r\n );\r\n\r\n await this.modalCtrl.dismiss();\r\n }\r\n\r\n async delete(): Promise {\r\n const confirmed = await this.confirmationDialogService.presentAlert(\r\n 'sismediaEdit.phrase.deleteAsset',\r\n 'general.term.delete'\r\n );\r\n if (confirmed) {\r\n const postData: SisMediaAssetEdit = {\r\n assetGuid: this.sisMediaItemEdit.assetGuid,\r\n name: this.sisMediaItemEdit.name,\r\n assetCategory: this.sisMediaItemEdit.assetCategory,\r\n };\r\n await this.sisMediaItemService.insertOrUpdateItems([postData], SisMediaItemService.deleteOperation);\r\n await this.modalCtrl.dismiss();\r\n }\r\n }\r\n\r\n async cancel(): Promise {\r\n await this.modalCtrl.dismiss();\r\n }\r\n\r\n async copyToClipboard(text: string): Promise {\r\n await navigator.clipboard.writeText(text);\r\n const toast = await this.userMessageService.createSingleToast(\r\n new UserMessage({\r\n message: 'general.phrase.copiedToClipboard',\r\n icon: UserMessageIcon.info,\r\n durationMs: 2000,\r\n position: 'top',\r\n color: UserMessageColor.white,\r\n })\r\n );\r\n await toast.present();\r\n }\r\n\r\n private checkForChanges(): void {\r\n this.hasUnsavedChanges = JSON.stringify(this.sisMediaItem) !== JSON.stringify(this.sisMediaItemEdit);\r\n }\r\n\r\n private updateTypeIcon(): void {\r\n const typeIconName = IconHelper.getIconName(this.sisMediaItemEdit.type);\r\n this.typeIcon =\r\n this.sisMediaItemEdit.assetCategory === SisMediaAssetCategory.Poi\r\n ? `${environment.baseUrlPublicBlobStorage}/public-assets/icons/sismedia/styles/sisag/${typeIconName.substring(\r\n 4\r\n )}.svg`\r\n : `${environment.baseUrlCockpitBlobStorage}/public-assets/icons/sismedia/${typeIconName}.svg`;\r\n }\r\n\r\n private setValues(): void {\r\n this.formGroup.controls.season.setValue(this.sisMediaItemEdit.season);\r\n this.formGroup.controls.type.setValue(this.sisMediaItemEdit.type);\r\n\r\n this.inputFieldOptions.forEach((option) => {\r\n this.formGroup.controls[option.propertyName].setValue(this.sisMediaItemEdit[option.propertyName]);\r\n });\r\n }\r\n\r\n private setDisabled(): void {\r\n if (!this.writePermission || this.isSaving) {\r\n this.formGroup.controls.type.disable();\r\n this.inputFieldOptions.forEach((option) => {\r\n this.formGroup.controls[option.propertyName].disable({ emitEvent: false });\r\n });\r\n } else {\r\n this.formGroup.controls.type.enable();\r\n this.inputFieldOptions.forEach((option) => {\r\n this.formGroup.controls[option.propertyName].enable({ emitEvent: false });\r\n });\r\n }\r\n\r\n if (!this.writePermission || this.isSaving || (this.hasMySqlRouter && !this.isNewItem)) {\r\n this.formGroup.controls.hasStatus.disable({ emitEvent: false });\r\n } else {\r\n this.formGroup.controls.hasStatus.enable({ emitEvent: false });\r\n }\r\n\r\n if (!this.writePermission || this.isSaving) {\r\n this.formGroup.controls.season.disable({ emitEvent: false });\r\n } else {\r\n this.formGroup.controls.season.enable({ emitEvent: false });\r\n }\r\n\r\n this.inputFieldOptions.forEach((option) => {\r\n if (option.includedInImports != null && option.includedInImports.includes(this.importType)) {\r\n this.formGroup.controls[option.propertyName].disable({ emitEvent: false });\r\n }\r\n });\r\n }\r\n}\r\n","\r\n \r\n \r\n \r\n \r\n {{ this.titleTranslationString | translate }}\r\n \r\n\r\n\r\n\r\n
\r\n \r\n \r\n \r\n \r\n {{ 'sismediaEdit.term.season' | translate }}\r\n \r\n \r\n \r\n \r\n {{ 'sismediaEdit.term.summerAndWinter' | translate }}\r\n {{ 'sismediaEdit.term.summer' | translate }}\r\n {{ 'sismediaEdit.term.winter' | translate }}\r\n \r\n \r\n \r\n\r\n \r\n \r\n {{ 'sismediaEdit.term.type' | translate }}\r\n \r\n \r\n \r\n \r\n {{\r\n type.description\r\n }}\r\n \r\n \r\n \r\n \r\n \r\n {{ fieldOptions.inputLabelTranslateKey | translate }}\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 {{ 'sismedia.term.status' | translate }}\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n\r\n \r\n ID\r\n \r\n {{ this.sisMediaItem.id }}\r\n \r\n \r\n \r\n Guid\r\n \r\n \r\n {{ this.sisMediaItem.assetGuid }}\r\n \r\n \r\n \r\n \r\n\r\n \r\n \r\n \r\n \r\n {{ 'sismediaEdit.term.season' | translate }}\r\n \r\n \r\n \r\n \r\n \r\n \r\n {{ 'sismediaEdit.term.summerAndWinter' | translate }}\r\n {{ 'sismediaEdit.term.summer' | translate }}\r\n {{ 'sismediaEdit.term.winter' | translate }}\r\n \r\n \r\n \r\n\r\n \r\n \r\n {{ 'sismediaEdit.term.type' | translate }}\r\n \r\n \r\n \r\n \r\n \r\n \r\n {{\r\n type.description\r\n }}\r\n \r\n \r\n \r\n \r\n \r\n \r\n {{ fieldOptions.inputLabelTranslateKey | translate }}\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 {{ 'sismedia.term.status' | translate }}\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n\r\n \r\n ID\r\n \r\n {{ this.sisMediaItem.id }}\r\n \r\n \r\n \r\n Guid\r\n \r\n \r\n {{ this.sisMediaItem.assetGuid }}\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, OnInit } from '@angular/core';\r\nimport { ModalController } from '@ionic/angular';\r\nimport { Subject } from 'rxjs';\r\nimport { switchMap, takeUntil } from 'rxjs/operators';\r\nimport { Unsubscriber } from 'src/app/core/unsubscriber';\r\nimport { ScreenSizeService } from 'src/app/core/utils/screen-size.service';\r\nimport { Export } from 'src/app/domain/export/export.model';\r\nimport { ExportService } from 'src/app/domain/export/export.service';\r\nimport { ExportType } from 'src/app/domain/export/export-type.enum';\r\nimport { SisMediaAssetCategory } from 'src/app/sismedia/domain/sismedia-asset-category.enum';\r\nimport { SisMediaItem } from 'src/app/sismedia/domain/sismedia-item.model';\r\nimport { SisMediaExportsEditService } from 'src/app/sismedia/sismedia-exports-edit-modal/sismedia-exports-edit.service';\r\nimport { SisMediaExportsEditPostData } from 'src/app/sismedia/sismedia-exports-edit-modal/sismedia-exports-edit-postdata.model';\r\nimport { SisMediaExportsMapping } from 'src/app/sismedia/sismedia-exports-edit-modal/sismedia-exports-mapping.model';\r\n\r\n@Component({\r\n selector: 'sis-sismedia-exports-edit-modal',\r\n templateUrl: './sismedia-exports-edit-modal.component.html',\r\n styleUrls: ['./sismedia-exports-edit-modal.component.scss'],\r\n standalone: false\r\n})\r\nexport class SisMediaExportsEditModalComponent extends Unsubscriber implements OnInit {\r\n private readonly reset$ = new Subject();\r\n\r\n @Input() sisMediaItem: SisMediaItem;\r\n\r\n bigScreenMode: boolean;\r\n\r\n selectableExports: SisMediaExportsMapping[] = [];\r\n\r\n isUpdating: boolean;\r\n isEdited: boolean[] = [];\r\n hasUnsavedChanges: boolean;\r\n\r\n constructor(\r\n private modalCtrl: ModalController,\r\n private screenSizeService: ScreenSizeService,\r\n private exportsEditModalService: SisMediaExportsEditService,\r\n private exportService: ExportService\r\n ) {\r\n super();\r\n }\r\n\r\n ngOnInit() {\r\n this.screenSizeService.bigScreenMode$\r\n .pipe(takeUntil(this.onDestroy$))\r\n .subscribe((bigScreenMode) => (this.bigScreenMode = bigScreenMode));\r\n\r\n this.reset$\r\n .pipe(\r\n switchMap(() => this.exportService.exports$),\r\n takeUntil(this.onDestroy$)\r\n )\r\n .subscribe((tenantExports) => {\r\n const selectableExports: SisMediaExportsMapping[] = tenantExports\r\n .filter(\r\n (e) => !(this.sisMediaItem.assetCategory === SisMediaAssetCategory.Gastro && e.type === ExportType.STnet)\r\n )\r\n .map((e) => ({ export: e, enabled: false }));\r\n\r\n this.sisMediaItem.exports.forEach((e) => {\r\n const mapping = selectableExports.find((s) => s.export.guid === e.guid);\r\n if (mapping != null) {\r\n mapping.enabled = true;\r\n }\r\n });\r\n\r\n this.selectableExports = selectableExports;\r\n this.checkForChanges();\r\n });\r\n\r\n this.sisMediaItem\r\n .getUpdating(SisMediaItem.ExportMappings)\r\n .pipe(takeUntil(this.onDestroy$))\r\n .subscribe((updating) => {\r\n this.isUpdating = updating;\r\n if (!updating) {\r\n this.reset();\r\n }\r\n });\r\n }\r\n\r\n checkForChanges(): void {\r\n this.hasUnsavedChanges = this.selectableExports.some(\r\n (e) =>\r\n (e.enabled && !this.sisMediaItem.exports.find((i) => i.guid === e.export.guid)) ||\r\n (!e.enabled && this.sisMediaItem.exports.find((i) => i.guid === e.export.guid))\r\n );\r\n }\r\n\r\n toggleExport(value: { export: Export; enabled: boolean }): void {\r\n value.enabled = !value.enabled;\r\n this.checkForChanges();\r\n }\r\n\r\n save(): void {\r\n const postData: SisMediaExportsEditPostData = {\r\n exportGuids: this.selectableExports.filter((e) => e.enabled).map((e) => e.export.guid),\r\n assetCategory: this.sisMediaItem.assetCategory,\r\n assetGuid: this.sisMediaItem.assetGuid,\r\n };\r\n\r\n this.exportsEditModalService.postExportMappings(postData, this.sisMediaItem).subscribe();\r\n this.modalCtrl.dismiss();\r\n }\r\n\r\n reset(): void {\r\n this.reset$.next();\r\n }\r\n\r\n cancel(): void {\r\n this.reset();\r\n this.modalCtrl.dismiss();\r\n }\r\n}\r\n","\r\n \r\n {{ 'sismedia.term.exportSettings' | translate }} - {{ sisMediaItem.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 {{ 'sismedia.phrase.exportTargets' | translate }}\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n {{ item.export.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","import { HttpClient } from '@angular/common/http';\r\nimport { Injectable } from '@angular/core';\r\nimport { Observable, of } from 'rxjs';\r\nimport { catchError, map, take } from 'rxjs/operators';\r\nimport { SisMediaItem } from 'src/app/sismedia/domain/sismedia-item.model';\r\nimport { SisMediaExportsEditPostData } from 'src/app/sismedia/sismedia-exports-edit-modal/sismedia-exports-edit-postdata.model';\r\nimport { UserMessage } from 'src/app/user-message/user-message.model';\r\nimport { UserMessageService } from 'src/app/user-message/user-message.service';\r\nimport { UserMessageColor } from 'src/app/user-message/user-message-color';\r\nimport { UserMessageIcon } from 'src/app/user-message/user-message-icon';\r\nimport { environment } from 'src/environments/environment';\r\n\r\n@Injectable({\r\n providedIn: 'root',\r\n})\r\nexport class SisMediaExportsEditService {\r\n private readonly basePostUrl: string = '/export/mapping';\r\n\r\n constructor(private http: HttpClient, private userMessageService: UserMessageService) {}\r\n\r\n postExportMappings(postData: SisMediaExportsEditPostData, sisMediaItem: SisMediaItem): Observable {\r\n sisMediaItem.setUpdating(SisMediaItem.ExportMappings, true);\r\n return this.http.post(`${environment.baseUrlApi}${this.basePostUrl}`, postData).pipe(\r\n take(1),\r\n map(() => true),\r\n catchError(() => {\r\n sisMediaItem.setUpdating(SisMediaItem.ExportMappings, false);\r\n const translateKey = 'general.phrase.saveFailed';\r\n const userMessage = new UserMessage({\r\n message: translateKey,\r\n icon: UserMessageIcon.failed,\r\n durationMs: 2000,\r\n position: 'top',\r\n color: UserMessageColor.red,\r\n });\r\n this.userMessageService.presentToast(userMessage);\r\n\r\n return of(false);\r\n })\r\n );\r\n }\r\n}\r\n","import { Component, Input, OnChanges, OnInit } from '@angular/core';\r\nimport { ActionSheetController, ModalController, PopoverController } from '@ionic/angular';\r\nimport { TranslateService } from '@ngx-translate/core';\r\nimport { firstValueFrom } from 'rxjs';\r\nimport { filter, startWith, takeUntil } from 'rxjs/operators';\r\nimport { IconHelper } from 'src/app/core/icon-helper/icon-helper';\r\nimport { Unsubscriber } from 'src/app/core/unsubscriber';\r\nimport { DestinationService } from 'src/app/domain/destination/destination.service';\r\nimport { Feature } from 'src/app/domain/feature/feature.model';\r\nimport { FeatureAccessLevel } from 'src/app/domain/feature/feature-access-level.model';\r\nimport { FeatureId } from 'src/app/domain/feature/feature-id.model';\r\nimport { UserSettingsService } from 'src/app/domain/user-settings/user-settings.service';\r\nimport { SisMediaAssetCategory } from 'src/app/sismedia/domain/sismedia-asset-category.enum';\r\nimport { SisMediaAssetStatus } from 'src/app/sismedia/domain/sismedia-asset-status.enum';\r\nimport { SisMediaAssetSubStatus } from 'src/app/sismedia/domain/sismedia-asset-substatus.enum';\r\nimport { SisMediaItem } from 'src/app/sismedia/domain/sismedia-item.model';\r\nimport { SisMediaItemIconOptions } from 'src/app/sismedia/domain/sismedia-item-icon-options.model';\r\nimport { SisMediaRouteParams } from 'src/app/sismedia/domain/sismedia-route-params.model';\r\nimport { SisMediaAssetOverrideComponent } from 'src/app/sismedia/sismedia-asset-override/sismedia-asset-override.page';\r\nimport { SisMediaEditModalComponent } from 'src/app/sismedia/sismedia-edit-modal/sismedia-edit-modal.component';\r\nimport { SisMediaExportsEditModalComponent } from 'src/app/sismedia/sismedia-exports-edit-modal/sismedia-exports-edit-modal.component';\r\nimport { SisMediaItemService } from 'src/app/sismedia/sismedia-item/sismedia-item.service';\r\nimport { SisMediaOperatingHoursModalComponent } from 'src/app/sismedia/sismedia-operating-hours-modal/sismedia-operating-hours-modal.component';\r\nimport { SisMediaSubstatusPopoverComponent } from 'src/app/sismedia/sismedia-substatus/sismedia-substatus.component';\r\nimport { UserMessage } from 'src/app/user-message/user-message.model';\r\nimport { UserMessageService } from 'src/app/user-message/user-message.service';\r\nimport { UserMessageColor } from 'src/app/user-message/user-message-color';\r\nimport { UserMessageIcon } from 'src/app/user-message/user-message-icon';\r\nimport { environment } from 'src/environments/environment';\r\n\r\n@Component({\r\n selector: 'sis-sismedia-item',\r\n templateUrl: './sismedia-item.component.html',\r\n styleUrls: ['./sismedia-item.component.scss'],\r\n standalone: false\r\n})\r\nexport class SisMediaItemComponent extends Unsubscriber implements OnInit, OnChanges {\r\n static readonly letterWidthMobileView = 11;\r\n static readonly letterWidthDesktopView = 23;\r\n\r\n @Input() item: SisMediaItem;\r\n @Input() options: SisMediaRouteParams;\r\n @Input() bigScreenMode: boolean;\r\n @Input() showInfoCol: boolean;\r\n @Input() showSisMapsCol: boolean;\r\n @Input() showButtons: boolean = true;\r\n @Input() labelLength: number;\r\n @Input() hasMySqlRouter: boolean;\r\n\r\n color: string;\r\n icon: string;\r\n writePermission: boolean;\r\n assetOverrideReadPermission: boolean;\r\n operatingHoursReadPermission: boolean;\r\n assetEditPermission: boolean;\r\n isStatusUpdating: boolean;\r\n hasAssetOverride: boolean;\r\n hasOperatingHours: boolean;\r\n hasExportsEditPermission: boolean = false;\r\n hasExports: boolean;\r\n exportTooltipText: string;\r\n hasSisMaps: boolean;\r\n sisMapsTooltipText: string;\r\n showingLabelLength: string;\r\n\r\n sisMapIconClass: string;\r\n\r\n private requiredFeature: Feature;\r\n\r\n constructor(\r\n private popoverController: PopoverController,\r\n private sisMediaItemService: SisMediaItemService,\r\n private modalCtrl: ModalController,\r\n private destinationService: DestinationService,\r\n private userMessageService: UserMessageService,\r\n private translateService: TranslateService,\r\n private actionSheetCtrl: ActionSheetController,\r\n private userSettingsService: UserSettingsService\r\n ) {\r\n super();\r\n }\r\n\r\n ngOnInit() {\r\n if (this.item) {\r\n this.item\r\n .getUpdating(SisMediaItem.AssetEdit)\r\n .pipe(takeUntil(this.onDestroy$))\r\n .subscribe(() => {\r\n const iconName = IconHelper.getIconName(this.item.type);\r\n this.icon =\r\n this.item.assetCategory === SisMediaAssetCategory.Poi\r\n ? `${environment.baseUrlPublicBlobStorage}/public-assets/icons/sismedia/styles/sisag/${iconName.substring(\r\n 4\r\n )}.svg`\r\n : `${environment.baseUrlCockpitBlobStorage}/public-assets/icons/sismedia/${iconName}.svg`;\r\n this.setSisMapIconClassAndTooltip();\r\n });\r\n\r\n this.item\r\n .getUpdating(SisMediaItem.Status)\r\n .pipe(takeUntil(this.onDestroy$))\r\n .subscribe((isUpdating) => {\r\n this.isStatusUpdating = isUpdating;\r\n this.item.iconOptions.forEach((option) => {\r\n option.activeClasses = this.getStatusIconClasses(this.item, option);\r\n option.activeIconName = this.getIconName(option);\r\n option.activeTooltip = this.getTooltip(option);\r\n });\r\n });\r\n\r\n this.item\r\n .getUpdating(SisMediaItem.OperatingHours)\r\n .pipe(takeUntil(this.onDestroy$))\r\n .subscribe(() => {\r\n this.item.iconOptions.forEach((option) => {\r\n option.activeClasses = this.getStatusIconClasses(this.item, option);\r\n option.activeIconName = this.getIconName(option);\r\n option.activeTooltip = this.getTooltip(option);\r\n });\r\n });\r\n\r\n this.item\r\n .getUpdating(SisMediaItem.ExportMappings)\r\n .pipe(\r\n takeUntil(this.onDestroy$),\r\n filter((updating) => !updating)\r\n )\r\n .subscribe(() => {\r\n this.hasExports = this.item.exports.length > 0;\r\n this.exportTooltipText = ':\\n\\n' + this.item.exports.map((x) => `- ${x.name}`).join('\\n');\r\n });\r\n\r\n this.setSisMapIconClassAndTooltip();\r\n this.hasSisMaps = this.item.sisMapNames.length > 0;\r\n }\r\n\r\n this.requiredFeature = new Feature(this.options.featureId, FeatureAccessLevel.WRITE);\r\n\r\n this.destinationService.selectedTenantFeatures$.pipe(takeUntil(this.onDestroy$)).subscribe((features) => {\r\n this.writePermission = features.some((f) => f.hasMinimumRequirementFor(this.requiredFeature));\r\n this.assetOverrideReadPermission =\r\n features.some((f) =>\r\n f.hasMinimumRequirementFor(new Feature(this.requiredFeature.featureId, FeatureAccessLevel.READ))\r\n ) &&\r\n features.some((f) =>\r\n f.hasMinimumRequirementFor(new Feature(FeatureId.SISMEDIA_ASSETOVERRIDE, FeatureAccessLevel.READ))\r\n );\r\n\r\n this.assetEditPermission =\r\n features.some((f) =>\r\n f.hasMinimumRequirementFor(new Feature(this.requiredFeature.featureId, FeatureAccessLevel.READ))\r\n ) &&\r\n features.some((f) =>\r\n f.hasMinimumRequirementFor(new Feature(FeatureId.SISMEDIA_ASSET_EDIT, FeatureAccessLevel.READ))\r\n );\r\n\r\n this.operatingHoursReadPermission =\r\n features.some((f) =>\r\n f.hasMinimumRequirementFor(new Feature(this.requiredFeature.featureId, FeatureAccessLevel.READ))\r\n ) &&\r\n features.some((f) =>\r\n f.hasMinimumRequirementFor(new Feature(FeatureId.SISMEDIA_OPERATINGHOURS, FeatureAccessLevel.READ))\r\n );\r\n\r\n this.userSettingsService.userSettings$.pipe(takeUntil(this.onDestroy$)).subscribe((userSettings) => {\r\n this.hasExportsEditPermission = userSettings.isAdministrator;\r\n });\r\n\r\n this.item.iconOptions.forEach((option) => {\r\n option.activeClasses = this.getStatusIconClasses(this.item, option);\r\n option.activeIconName = this.getIconName(option);\r\n option.activeTooltip = this.getTooltip(option);\r\n });\r\n });\r\n\r\n this.hasAssetOverride =\r\n this.item.assetCategory === SisMediaAssetCategory.Lift ||\r\n this.item.assetCategory === SisMediaAssetCategory.Slope ||\r\n this.item.assetCategory === SisMediaAssetCategory.Trail;\r\n\r\n this.hasOperatingHours =\r\n this.item.assetCategory === SisMediaAssetCategory.Gastro || this.item.assetCategory === SisMediaAssetCategory.Poi;\r\n }\r\n\r\n private setSisMapIconClassAndTooltip(): void {\r\n if (!this.item || this.item.sisMapInfo.length === 0 || !Array.isArray(this.item.sisMapInfo)) {\r\n return;\r\n }\r\n\r\n const sisMapInfo = this.item.sisMapInfo;\r\n const itemSeason = this.item.season;\r\n\r\n const isSeasonMatching =\r\n itemSeason === 0 || sisMapInfo.every((mapInfo) => mapInfo.season === 0 || mapInfo.season === itemSeason);\r\n\r\n this.sisMapIconClass = isSeasonMatching ? 'sis-sismap-icon-default' : 'sis-sismap-icon-warning';\r\n\r\n this.translateService.onLangChange\r\n .pipe(startWith(this.translateService.currentLang), takeUntil(this.onDestroy$))\r\n .subscribe(async () => this.updateSisMapTooltipText());\r\n }\r\n\r\n private async updateSisMapTooltipText(): Promise {\r\n const sisMapInfo = this.item.sisMapInfo;\r\n const itemSeason = this.item.season;\r\n\r\n const titleText = await firstValueFrom(this.translateService.get('sismedia.phrase.sisMapsTooltipTitle'));\r\n const missingText = await firstValueFrom(this.translateService.get('sismedia.phrase.missingSeasonMapping'));\r\n\r\n const mapNamesWithCorrectSeason: string[] = [];\r\n const mapNamesWithMismatchedSeason: string[] = [];\r\n\r\n let tooltipText = '';\r\n\r\n this.item.sisMapNames.forEach((name, index) => {\r\n const mapInfo = sisMapInfo[index];\r\n if (itemSeason !== 0 && mapInfo.season !== 0 && mapInfo.season !== itemSeason) {\r\n mapNamesWithMismatchedSeason.push(name);\r\n } else {\r\n mapNamesWithCorrectSeason.push(name);\r\n }\r\n });\r\n\r\n if (mapNamesWithCorrectSeason.length) {\r\n tooltipText += titleText + ':\\n' + mapNamesWithCorrectSeason.join('\\n');\r\n\r\n if (mapNamesWithMismatchedSeason.length) {\r\n tooltipText += '\\n';\r\n }\r\n }\r\n\r\n if (mapNamesWithMismatchedSeason.length) {\r\n tooltipText += missingText + ':\\n' + mapNamesWithMismatchedSeason.join('\\n');\r\n }\r\n\r\n this.sisMapsTooltipText = tooltipText;\r\n }\r\n\r\n ngOnChanges() {\r\n this.item.iconOptions.forEach((option) => {\r\n option.activeClasses = this.getStatusIconClasses(this.item, option);\r\n option.activeIconName = this.getIconName(option);\r\n option.activeTooltip = this.getTooltip(option);\r\n });\r\n\r\n this.showingLabelLength = this.bigScreenMode\r\n ? `${this.labelLength * SisMediaItemComponent.letterWidthDesktopView}px`\r\n : `${Math.min(3, this.labelLength) * SisMediaItemComponent.letterWidthMobileView}px`;\r\n }\r\n\r\n iconClick(status: SisMediaAssetStatus, subStatus: SisMediaAssetSubStatus) {\r\n if (!this.item.operatingHoursEnabled) {\r\n if (!this.writePermission || this.item.status === null || this.item.operatingHoursEnabled || !this.showButtons) {\r\n return;\r\n }\r\n if (this.item.subStatus != null) {\r\n subStatus = 0;\r\n }\r\n this.setStatus(subStatus, status);\r\n return;\r\n }\r\n this.presentToast('sismedia.term.noManualSwitching');\r\n }\r\n\r\n async iconRightClick(event: Event, options: SisMediaItemIconOptions): Promise {\r\n event.preventDefault();\r\n if (this.item.hasActiveOverride) {\r\n this.presentToast('sismedia.term.noSubstatusPossible');\r\n return;\r\n }\r\n\r\n if (!options.subStatusOptions) {\r\n return;\r\n }\r\n\r\n const status = options.sisMediaStatus;\r\n const popover = await this.popoverController.create({\r\n component: SisMediaSubstatusPopoverComponent,\r\n event: event,\r\n componentProps: {\r\n status,\r\n },\r\n });\r\n\r\n await popover.present();\r\n const { data } = await popover.onDidDismiss();\r\n if (data) {\r\n this.setStatus(data, status);\r\n }\r\n return;\r\n }\r\n\r\n async presentSubStatusActionSheet(event: Event, options: SisMediaItemIconOptions): Promise {\r\n event.preventDefault();\r\n if (!options.subStatusOptions) {\r\n return;\r\n }\r\n if (!this.item.hasActiveOverride) {\r\n const buttons = [];\r\n if (options.sisMediaStatus == 1) {\r\n const revisionText = await firstValueFrom(this.translateService.get('sismedia.term.revision'));\r\n buttons.push({\r\n text: revisionText,\r\n icon: 'sis-status-revision',\r\n handler: () => {\r\n this.setStatus(SisMediaAssetSubStatus.Revision, options.sisMediaStatus);\r\n },\r\n });\r\n const stormText = await firstValueFrom(this.translateService.get('sismedia.term.storm'));\r\n buttons.push({\r\n text: stormText,\r\n icon: 'sis-status-storm',\r\n handler: () => {\r\n this.setStatus(SisMediaAssetSubStatus.Storm, options.sisMediaStatus);\r\n },\r\n });\r\n\r\n const malfunctionText = await firstValueFrom(this.translateService.get('sismedia.term.malfunction'));\r\n buttons.push({\r\n text: malfunctionText,\r\n icon: 'sis-status-malfunction',\r\n handler: () => {\r\n this.setStatus(SisMediaAssetSubStatus.Malfunction, options.sisMediaStatus);\r\n },\r\n });\r\n }\r\n\r\n if (options.sisMediaStatus == 2) {\r\n const convoyText = await firstValueFrom(this.translateService.get('sismedia.term.convoy'));\r\n buttons.push({\r\n text: convoyText,\r\n icon: 'sis-status-convoy',\r\n handler: () => {\r\n this.setStatus(SisMediaAssetSubStatus.Convoy, options.sisMediaStatus);\r\n },\r\n });\r\n const circulationText = await firstValueFrom(this.translateService.get('sismedia.term.circulation'));\r\n buttons.push({\r\n text: circulationText,\r\n icon: 'sis-status-circulation',\r\n handler: () => {\r\n this.setStatus(SisMediaAssetSubStatus.Circulation, options.sisMediaStatus);\r\n },\r\n });\r\n }\r\n\r\n const cancelText = await firstValueFrom(this.translateService.get('general.term.cancel'));\r\n buttons.push({\r\n text: cancelText,\r\n icon: 'close',\r\n role: 'cancel',\r\n });\r\n\r\n const actionSheet = await this.actionSheetCtrl.create({\r\n header: this.item.name,\r\n buttons,\r\n cssClass: 'sis-action-sheet-header',\r\n });\r\n\r\n await actionSheet.present();\r\n return;\r\n }\r\n this.presentToast('sismedia.term.noSubstatusPossible');\r\n }\r\n\r\n setStatus(subStatus: SisMediaAssetSubStatus, status: SisMediaAssetStatus) {\r\n this.item.setUpdating(SisMediaItem.Status, true);\r\n this.sisMediaItemService.updateStatus(this.item.assetGuid, this.options.assetCategory, status, subStatus);\r\n }\r\n\r\n async openOverrideModal() {\r\n if (this.assetOverrideReadPermission && (this.item.subStatus == 0 || this.item.subStatus == null)) {\r\n const modal = await this.modalCtrl.create({\r\n component: SisMediaAssetOverrideComponent,\r\n componentProps: {\r\n item: this.item,\r\n featureId: this.options.featureId,\r\n },\r\n cssClass: 'sis-sismedia-asset-override-modal',\r\n backdropDismiss: false,\r\n });\r\n\r\n return modal.present();\r\n }\r\n this.presentToast('sismedia.term.noAssetOverridePossible');\r\n }\r\n\r\n async openEditModal() {\r\n if (this.assetEditPermission) {\r\n const modal = await this.modalCtrl.create({\r\n component: SisMediaEditModalComponent,\r\n componentProps: {\r\n isNewItem: false,\r\n sisMediaItem: this.item,\r\n category: this.options.titleTranslationString.split('.')[2],\r\n },\r\n cssClass: `sis-sismedia-edit-modal-${SisMediaAssetCategory[this.item.assetCategory].toLowerCase()}`,\r\n backdropDismiss: false,\r\n });\r\n\r\n return modal.present();\r\n }\r\n }\r\n\r\n async openOperatingHoursModal() {\r\n if (this.operatingHoursReadPermission) {\r\n const modal = await this.modalCtrl.create({\r\n component: SisMediaOperatingHoursModalComponent,\r\n componentProps: {\r\n sisMediaItem: this.item,\r\n },\r\n cssClass: 'sis-sismedia-operating-hours-modal',\r\n backdropDismiss: false,\r\n });\r\n\r\n return modal.present();\r\n }\r\n }\r\n\r\n async openExportsEditModal() {\r\n if (this.hasExportsEditPermission) {\r\n const modal = await this.modalCtrl.create({\r\n component: SisMediaExportsEditModalComponent,\r\n componentProps: {\r\n sisMediaItem: this.item,\r\n },\r\n cssClass: 'sis-sismedia-exports-edit-modal',\r\n backdropDismiss: false,\r\n });\r\n\r\n return modal.present();\r\n }\r\n }\r\n\r\n async presentActionSheet(): Promise {\r\n const buttons = [];\r\n\r\n if (this.hasOperatingHours && this.operatingHoursReadPermission) {\r\n const operatingHoursText = await firstValueFrom(this.translateService.get('general.term.operatingTime'));\r\n buttons.push({\r\n text: operatingHoursText,\r\n icon: 'sis-operating-hours',\r\n handler: () => {\r\n this.openOperatingHoursModal();\r\n },\r\n });\r\n }\r\n\r\n if (this.assetEditPermission) {\r\n const editText = await firstValueFrom(this.translateService.get('general.term.edit'));\r\n buttons.push({\r\n text: editText,\r\n icon: 'create-outline',\r\n handler: () => {\r\n this.openEditModal();\r\n },\r\n });\r\n }\r\n\r\n const cancelText = await firstValueFrom(this.translateService.get('general.term.cancel'));\r\n buttons.push({\r\n text: cancelText,\r\n icon: 'close',\r\n role: 'cancel',\r\n });\r\n\r\n const actionSheet = await this.actionSheetCtrl.create({\r\n header: this.item.name,\r\n buttons,\r\n cssClass: 'sis-action-sheet-header',\r\n });\r\n\r\n await actionSheet.present();\r\n }\r\n\r\n private getStatusIconClasses(item: SisMediaItem, option: SisMediaItemIconOptions): string[] {\r\n const statusIconClasses: string[] = [];\r\n if (item.status == null) {\r\n statusIconClasses.push('sis-no-status');\r\n return statusIconClasses;\r\n }\r\n\r\n if (item.operatingHoursEnabled) {\r\n statusIconClasses.push('sis-not-allowed');\r\n\r\n if (item.status === option.sisMediaStatus) {\r\n statusIconClasses.push(option.colorEnabledClassName);\r\n } else {\r\n statusIconClasses.push('sis-no-status');\r\n }\r\n\r\n return statusIconClasses;\r\n }\r\n\r\n item.status === option.sisMediaStatus\r\n ? statusIconClasses.push(option.colorEnabledClassName)\r\n : this.writePermission && this.showButtons\r\n ? statusIconClasses.push(option.colorDisabledClassName)\r\n : statusIconClasses.push('sis-disabled');\r\n\r\n item.statusOverrideActive && item.activeStatus === option.sisMediaStatus\r\n ? statusIconClasses.push('sis-active-override-status')\r\n : '';\r\n\r\n this.writePermission && item.status === option.sisMediaStatus\r\n ? statusIconClasses.push('sis-global-default-cursor')\r\n : '';\r\n\r\n !this.writePermission ? statusIconClasses.push('sis-not-allowed') : '';\r\n\r\n if (!this.showButtons) {\r\n statusIconClasses.push('sis-reduced-opacity');\r\n statusIconClasses.push('sis-global-default-cursor');\r\n }\r\n\r\n return statusIconClasses;\r\n }\r\n\r\n private presentToast(message: string) {\r\n this.userMessageService.presentToast(\r\n new UserMessage({\r\n message: message,\r\n icon: UserMessageIcon.info,\r\n durationMs: 2500,\r\n position: 'bottom',\r\n color: UserMessageColor.blue,\r\n })\r\n );\r\n }\r\n\r\n private getIconName(options: SisMediaItemIconOptions): string {\r\n if (options.subStatusOptions && this.item.subStatus) {\r\n const activeSubStatus = options.subStatusOptions.find(\r\n (subOption) => subOption.sisMediaSubStatus === this.item.subStatus\r\n );\r\n return activeSubStatus ? activeSubStatus.iconName : options.iconName;\r\n }\r\n return options.iconName;\r\n }\r\n\r\n private getTooltip(options: SisMediaItemIconOptions): string {\r\n const activeSubStatus = options.subStatusOptions\r\n ? options.subStatusOptions.find((subOption) => subOption.sisMediaSubStatus === this.item.subStatus)\r\n : null;\r\n\r\n return this.item.status != null\r\n ? this.item.operatingHoursEnabled\r\n ? this.translateService.instant('sismedia.term.noManualSwitching')\r\n : this.item.subStatus > 0 && options.subStatusOptions && options.sisMediaStatus === this.item.status\r\n ? `${this.translateService.instant(options.tooltipTranslationString)} (${this.translateService.instant(\r\n activeSubStatus.tooltipTranslationString\r\n )})`\r\n : this.translateService.instant(options.tooltipTranslationString)\r\n : this.translateService.instant('sismedia.term.noStatus');\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 {{ this.item.label }}\r\n \r\n \r\n {{ this.item.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 \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 {{ this.item.label }}\r\n \r\n \r\n {{ this.item.name }}\r\n \r\n \r\n \r\n \r\n\r\n","import { HttpClient } from '@angular/common/http';\r\nimport { Injectable } from '@angular/core';\r\nimport { firstValueFrom, merge, Observable, Subject } from 'rxjs';\r\nimport { filter, map, shareReplay, switchMap, withLatestFrom } from 'rxjs/operators';\r\nimport { EventBusService } from 'src/app/core/eventbus/event-bus.service';\r\nimport {\r\n SisMediaAssetCockpitOrderUpdatedEvent,\r\n SisMediaAssetEditUpdatedEvent,\r\n SisMediaAssetExportMappingUpdatedEvent,\r\n SisMediaOperatingHoursUpdatedEvent,\r\n SisMediaStatusUpdatedEvent,\r\n} from 'src/app/core/eventbus/events';\r\nimport { DestinationService } from 'src/app/domain/destination/destination.service';\r\nimport { Export } from 'src/app/domain/export/export.model';\r\nimport { ExportService } from 'src/app/domain/export/export.service';\r\nimport { UserSettings } from 'src/app/domain/user-settings/user-settings.model';\r\nimport { UserSettingsService } from 'src/app/domain/user-settings/user-settings.service';\r\nimport { SisMediaAssetSubStatus } from 'src/app/sismedia//domain/sismedia-asset-substatus.enum';\r\nimport { SisMediaAssetCategory } from 'src/app/sismedia/domain/sismedia-asset-category.enum';\r\nimport { SisMediaAssetEdit } from 'src/app/sismedia/domain/sismedia-asset-edit.model';\r\nimport { SisMediaAssetRequest } from 'src/app/sismedia/domain/sismedia-asset-request.model';\r\nimport { SisMediaAssetStatus } from 'src/app/sismedia/domain/sismedia-asset-status.enum';\r\nimport { SisMediaAssetType } from 'src/app/sismedia/domain/sismedia-asset-type.model';\r\nimport { SisMediaItemAdapter } from 'src/app/sismedia/domain/sismedia-item.adapter';\r\nimport { SisMediaItem } from 'src/app/sismedia/domain/sismedia-item.model';\r\nimport { SisMediaItemOrder } from 'src/app/sismedia/domain/sismedia-item-order.model';\r\nimport { UserMessage } from 'src/app/user-message/user-message.model';\r\nimport { UserMessageService } from 'src/app/user-message/user-message.service';\r\nimport { UserMessageColor } from 'src/app/user-message/user-message-color';\r\nimport { UserMessageIcon } from 'src/app/user-message/user-message-icon';\r\nimport { environment } from 'src/environments/environment';\r\n\r\n@Injectable({\r\n providedIn: 'root',\r\n})\r\nexport class SisMediaItemService {\r\n private static readonly url: string = '/sismedia';\r\n\r\n static readonly insertOrUpdateOperation = 'insertOrUpdate';\r\n static readonly deleteOperation = 'delete';\r\n\r\n private readonly _sisMediaAssetOrderUpdated$ = new Subject();\r\n\r\n private readonly sisMediaAssetsAndTypes$: Observable<{\r\n items: Map;\r\n types: Map;\r\n }> = this.destinationService.selectedTenantFeatures$.pipe(\r\n filter((tenant) => !!tenant),\r\n switchMap(() =>\r\n this.http.get(`${environment.baseUrlApi}${SisMediaItemService.url}/assets`).pipe(\r\n map((data) => {\r\n const types = data.reduce(\r\n (p, c) =>\r\n p.set(\r\n c.assetCategory,\r\n c.assetTypes?.sort((a, b) => a.description.localeCompare(b.description))\r\n ),\r\n new Map()\r\n );\r\n\r\n const items = data.reduce(\r\n (p, c) => p.set(c.assetCategory, SisMediaItemAdapter.adapt(c.assets)),\r\n new Map()\r\n );\r\n\r\n return { items, types };\r\n })\r\n )\r\n ),\r\n shareReplay({\r\n bufferSize: 1,\r\n refCount: true,\r\n })\r\n );\r\n\r\n private readonly _sisMediaItems$: Observable> =\r\n this.sisMediaAssetsAndTypes$.pipe(map(({ items: assets }) => assets));\r\n\r\n private readonly sisMediaStatusUpdated$: Observable> = this.eventBus\r\n .observe(SisMediaStatusUpdatedEvent)\r\n .pipe(\r\n withLatestFrom(this.userSettingService.userSettings$, this.destinationService.selectedTenant$),\r\n filter(([event, , tenant]) => event.tenantGuid === tenant.guid),\r\n withLatestFrom(this._sisMediaItems$),\r\n map(([[event, user], itemMap]) => this.handleStatusUpdatedEvent(event, itemMap, user))\r\n );\r\n\r\n private readonly sisMediaItemsUpdated$: Observable> = this.eventBus\r\n .observe(SisMediaAssetEditUpdatedEvent)\r\n .pipe(\r\n filter((event) => event.updateSuccessful),\r\n withLatestFrom(this.userSettingService.userSettings$, this.destinationService.selectedTenant$),\r\n filter(([event, , tenant]) => event.tenantGuid === tenant.guid),\r\n withLatestFrom(this._sisMediaItems$),\r\n map(([[event, user], itemMap]) => this.handleAssetEditUpdatedEvent(event, itemMap, user))\r\n );\r\n\r\n private readonly sisMediaOperatingHoursUpdated$: Observable> =\r\n this.eventBus.observe(SisMediaOperatingHoursUpdatedEvent).pipe(\r\n filter((event) => event.updateSuccessful),\r\n withLatestFrom(this.destinationService.selectedTenant$),\r\n filter(([event, tenant]) => event.updateSuccessful && event.tenantGuid === tenant.guid),\r\n withLatestFrom(this._sisMediaItems$),\r\n map(([[event], itemMap]) => this.handleOperatingHoursUpdatedEvent(event, itemMap))\r\n );\r\n\r\n private readonly sisMediaAssetExportMappingUpdated$: Observable> =\r\n this.eventBus.observe(SisMediaAssetExportMappingUpdatedEvent).pipe(\r\n filter((event) => event.updateSuccessful),\r\n withLatestFrom(this.destinationService.selectedTenant$, this.exportService.exports$),\r\n filter(([event, tenant]) => event.tenantGuid === tenant.guid),\r\n withLatestFrom(this._sisMediaItems$),\r\n map(([[event, , exports], itemMap]) => this.handleExportMappingUpdatedEvent(event, itemMap, exports))\r\n );\r\n\r\n private readonly sisMediaAssetCockpitOrderUpdated$: Observable> =\r\n this.eventBus.observe(SisMediaAssetCockpitOrderUpdatedEvent).pipe(\r\n filter((event) => event.updateSuccessful),\r\n withLatestFrom(this.destinationService.selectedTenant$),\r\n filter(([event, tenant]) => event.updateSuccessful && event.tenantGuid === tenant.guid),\r\n withLatestFrom(this._sisMediaItems$),\r\n map(([[event], itemMap]) => this.handleOrderUpdateEvent(event, itemMap))\r\n );\r\n\r\n readonly sisMediaItems$: Observable> = merge(\r\n this._sisMediaItems$,\r\n this.sisMediaItemsUpdated$,\r\n this.sisMediaStatusUpdated$,\r\n this.sisMediaOperatingHoursUpdated$,\r\n this.sisMediaAssetExportMappingUpdated$,\r\n this.sisMediaAssetCockpitOrderUpdated$\r\n ).pipe(\r\n shareReplay({\r\n bufferSize: 1,\r\n refCount: true,\r\n })\r\n );\r\n\r\n readonly sisMediaTypes$: Observable> =\r\n this.sisMediaAssetsAndTypes$.pipe(map(({ types }) => types));\r\n\r\n readonly sisMediaCategoryItemOrderUpdated$ = this._sisMediaAssetOrderUpdated$.asObservable();\r\n\r\n constructor(\r\n private userSettingService: UserSettingsService,\r\n private http: HttpClient,\r\n private eventBus: EventBusService,\r\n private userMessageService: UserMessageService,\r\n private destinationService: DestinationService,\r\n private exportService: ExportService\r\n ) {}\r\n\r\n async updateStatus(\r\n assetGuid: string,\r\n assetCategory: SisMediaAssetCategory,\r\n value: SisMediaAssetStatus,\r\n subStatus: SisMediaAssetSubStatus\r\n ): Promise {\r\n try {\r\n await firstValueFrom(\r\n this.http.post(`${environment.baseUrlApi}${SisMediaItemService.url}/status`, {\r\n assetGuid: assetGuid,\r\n assetCategory,\r\n status: value,\r\n subStatus: subStatus,\r\n })\r\n );\r\n } catch {\r\n const userGuid = (await firstValueFrom(this.userSettingService.userSettings$)).userGuid.toString();\r\n this.eventBus.publish(this.createErrorEvent(assetGuid, assetCategory, userGuid));\r\n }\r\n }\r\n\r\n async insertOrUpdateItems(sisMediaAssetEdits: SisMediaAssetEdit[], operation: string): Promise {\r\n if (!sisMediaAssetEdits?.length) {\r\n return;\r\n }\r\n\r\n try {\r\n await firstValueFrom(\r\n this.http.post(`${environment.baseUrlApi}${SisMediaItemService.url}/asset/update`, {\r\n Assets: sisMediaAssetEdits,\r\n Operation: operation,\r\n })\r\n );\r\n } catch {\r\n this.presentToast(false);\r\n }\r\n }\r\n\r\n async reorderItems(reorderPostDatas: SisMediaItemOrder[]): Promise {\r\n try {\r\n await firstValueFrom(\r\n this.http.post(`${environment.baseUrlApi}${SisMediaItemService.url}/asset/reorder`, reorderPostDatas)\r\n );\r\n } catch {\r\n this.presentToast(false);\r\n }\r\n }\r\n\r\n private presentToast(success: boolean, deleted: boolean = false, assetName: string = null): void {\r\n const message = success\r\n ? deleted\r\n ? [\"'\", assetName, \"' \", 'sismedia.phrase.assetDeleted']\r\n : 'general.phrase.saved'\r\n : 'general.phrase.saveFailed';\r\n const color = success ? UserMessageColor.green : UserMessageColor.red;\r\n const icon = success ? UserMessageIcon.success : UserMessageIcon.failed;\r\n this.userMessageService.presentToast(new UserMessage({ message, icon, durationMs: 2000, position: 'top', color }));\r\n }\r\n\r\n private createErrorEvent(\r\n assetGuid: string,\r\n assetCategory: SisMediaAssetCategory,\r\n changedby: string\r\n ): SisMediaStatusUpdatedEvent {\r\n const event = new SisMediaStatusUpdatedEvent();\r\n event.assetCategory = assetCategory;\r\n event.guid = assetGuid;\r\n event.changedBy = changedby;\r\n return event;\r\n }\r\n\r\n // Update handler methods\r\n\r\n private handleStatusUpdatedEvent(\r\n event: SisMediaStatusUpdatedEvent,\r\n itemMap: Map,\r\n user: UserSettings\r\n ): Map {\r\n const updatedItem = itemMap.get(event?.assetCategory)?.find((item) => item.assetGuid === event.guid);\r\n if (updatedItem) {\r\n if (event.updateSuccessful) {\r\n updatedItem.status = event.status;\r\n updatedItem.subStatus = event.subStatus;\r\n updatedItem.activeStatus = event.activeStatus;\r\n updatedItem.statusOverrideActive = event.statusOverrideActive;\r\n updatedItem.lastStatusChange = event.lastStatusChange;\r\n }\r\n\r\n if (event.changedBy === user.userGuid) {\r\n const message = event.updateSuccessful ? 'sismedia.phrase.statusUpdated' : event.failReason;\r\n const icon = event.updateSuccessful ? UserMessageIcon.success : UserMessageIcon.failed;\r\n const color = event.updateSuccessful ? UserMessageColor.green : UserMessageColor.red;\r\n\r\n this.userMessageService.presentToast(\r\n new UserMessage({\r\n message,\r\n icon,\r\n durationMs: 2000,\r\n position: 'top',\r\n color,\r\n })\r\n );\r\n }\r\n\r\n updatedItem.setUpdating(SisMediaItem.Status, false);\r\n }\r\n\r\n return itemMap;\r\n }\r\n\r\n private handleAssetEditUpdatedEvent(\r\n event: SisMediaAssetEditUpdatedEvent,\r\n itemMap: Map,\r\n user: UserSettings\r\n ): Map {\r\n const items: SisMediaItem[] = [].concat(...[...itemMap.values()]);\r\n\r\n if (event.operation === SisMediaItemService.insertOrUpdateOperation) {\r\n let assetUpdated = false;\r\n items.forEach((item: SisMediaItem) => {\r\n const updatedAsset = event.assetEdits.find((asset) => asset.assetGuid === item.assetGuid);\r\n if (updatedAsset) {\r\n Object.assign(item, updatedAsset);\r\n assetUpdated = true;\r\n\r\n item.setUpdating(SisMediaItem.AssetEdit, false);\r\n }\r\n });\r\n\r\n if (event.changedBy === user.userGuid && assetUpdated) {\r\n this.presentToast(true);\r\n }\r\n\r\n if (!assetUpdated) {\r\n const items = SisMediaItemAdapter.adapt(event.assetEdits);\r\n items.forEach((item) => {\r\n itemMap.set(item.assetCategory, [...itemMap.get(item.assetCategory), item]);\r\n if (event.changedBy === user.userGuid) {\r\n this.userMessageService.presentToast(\r\n new UserMessage({\r\n message: [\"'\", item.name, \"' \", 'sismedia.phrase.assetCreated'],\r\n icon: UserMessageIcon.success,\r\n durationMs: 2000,\r\n position: 'top',\r\n color: UserMessageColor.green,\r\n })\r\n );\r\n }\r\n });\r\n }\r\n }\r\n\r\n if (event.operation === SisMediaItemService.deleteOperation) {\r\n const asset = event.assetEdits[0];\r\n const items = itemMap.get(asset.assetCategory);\r\n const index = items.findIndex((i) => i.assetGuid === asset.assetGuid);\r\n if (index > -1) {\r\n items.splice(index, 1);\r\n if (event.changedBy === user.userGuid) {\r\n this.userMessageService.presentToast(\r\n new UserMessage({\r\n message: [\"'\", asset.name, \"' \", 'sismedia.phrase.assetDeleted'],\r\n icon: UserMessageIcon.success,\r\n durationMs: 2000,\r\n position: 'top',\r\n color: UserMessageColor.green,\r\n })\r\n );\r\n }\r\n }\r\n }\r\n return itemMap;\r\n }\r\n\r\n private handleOperatingHoursUpdatedEvent(\r\n event: SisMediaOperatingHoursUpdatedEvent,\r\n itemMap: Map\r\n ): Map {\r\n const items = [].concat(...[...itemMap.values()]);\r\n items.forEach((item: SisMediaItem) => {\r\n if (item.assetGuid === event.assetGuid) {\r\n if (event.operatingHoursEnabled != null) {\r\n item.operatingHoursEnabled = event.operatingHoursEnabled;\r\n }\r\n item.setUpdating(SisMediaItem.OperatingHours, false);\r\n }\r\n });\r\n return itemMap;\r\n }\r\n\r\n private handleOrderUpdateEvent(\r\n event: SisMediaAssetCockpitOrderUpdatedEvent,\r\n itemMap: Map\r\n ) {\r\n const ordersUpdated = new Set();\r\n event.assetOrders.forEach((assetOrder) => {\r\n const updatedItem = itemMap.get(assetOrder.assetCategory).find((i) => i.assetGuid == assetOrder.assetGuid);\r\n if (updatedItem) {\r\n updatedItem.cockpitOrder = assetOrder.cockpitOrder;\r\n ordersUpdated.add(assetOrder.assetCategory);\r\n }\r\n });\r\n\r\n if (ordersUpdated.size > 0) {\r\n this._sisMediaAssetOrderUpdated$.next([...ordersUpdated.values()]);\r\n }\r\n\r\n return itemMap;\r\n }\r\n\r\n private handleExportMappingUpdatedEvent(\r\n event: SisMediaAssetExportMappingUpdatedEvent,\r\n itemMap: Map,\r\n exports: Export[]\r\n ): Map {\r\n const items = itemMap.get(event.assetCategory);\r\n items.forEach((item: SisMediaItem) => {\r\n if (item.assetGuid === event.assetGuid) {\r\n item.exports = exports.filter((e) => event.exportGuids.includes(e.guid));\r\n item.setUpdating(SisMediaItem.ExportMappings, false);\r\n }\r\n });\r\n return itemMap;\r\n }\r\n}\r\n","import { SisMediaOperatingHours } from 'src/app/sismedia/sismedia-operating-hours-modal/domain/sismedia-operating-hours.model';\r\nimport { SisMediaOperatingHoursEntry } from 'src/app/sismedia/sismedia-operating-hours-modal/domain/sismedia-operating-hours-entry.model';\r\n\r\nexport class SisMediaOperatingHoursEntryAdapter {\r\n static adapt(item: any): SisMediaOperatingHours | null {\r\n if (!item) {\r\n return null;\r\n }\r\n\r\n const operatingHoursEntries: SisMediaOperatingHoursEntry[] = [];\r\n\r\n item.operatingHours?.forEach((operatingHoursEntry: any) => {\r\n const operatingHoursData: SisMediaOperatingHoursEntry = {\r\n assetGuid: operatingHoursEntry.assetGuid,\r\n weekday: operatingHoursEntry.weekday,\r\n status: operatingHoursEntry.status,\r\n from1: operatingHoursEntry.from1 ?? '',\r\n until1: operatingHoursEntry.until1 ?? '',\r\n from2: operatingHoursEntry.from2 ?? '',\r\n until2: operatingHoursEntry.until2 ?? '',\r\n };\r\n\r\n operatingHoursEntries.push(operatingHoursData);\r\n });\r\n\r\n operatingHoursEntries.sort((a, b) => a.weekday - b.weekday);\r\n\r\n return {\r\n enabled: item.enabled,\r\n entries: operatingHoursEntries,\r\n };\r\n }\r\n}\r\n","import { Component, EventEmitter, Input, OnInit, Output } from '@angular/core';\r\nimport { SisMediaOperatingHoursEntry } from 'src/app/sismedia/sismedia-operating-hours-modal/domain/sismedia-operating-hours-entry.model';\r\n\r\n@Component({\r\n selector: 'sis-sismedia-operating-hours-item',\r\n templateUrl: './sismedia-operating-hours-item.component.html',\r\n styleUrls: ['./sismedia-operating-hours-item.component.scss'],\r\n standalone: false\r\n})\r\nexport class SisMediaOperatingHoursItemComponent implements OnInit {\r\n readonly statusTranslatingMapping: Array<{ value: number; translationString: string }> = [\r\n { value: 0, translationString: 'operatinghours.term.status.closed' },\r\n { value: 1, translationString: 'operatinghours.term.status.open' },\r\n { value: 2, translationString: 'operatinghours.term.status.openThroughout' },\r\n ];\r\n\r\n @Output() isEdited = new EventEmitter();\r\n @Input() disabled: boolean;\r\n @Input() bigScreenMode: boolean;\r\n @Input() operatingHoursEntry: SisMediaOperatingHoursEntry;\r\n\r\n weekdayTranslationString: string;\r\n\r\n ngOnInit() {\r\n if (this.operatingHoursEntry) {\r\n this.weekdayTranslationString = `general.term.weekday.${this.operatingHoursEntry.weekday}`;\r\n }\r\n }\r\n\r\n statusSelected(event: any): void {\r\n this.operatingHoursEntry.status = event.target.value;\r\n this.isEdited.emit(this.operatingHoursEntry.weekday);\r\n }\r\n\r\n timeChanged(event: any, property: string): void {\r\n this.operatingHoursEntry[property] = event.target.value;\r\n this.isEdited.emit(this.operatingHoursEntry.weekday);\r\n }\r\n}\r\n","\r\n\r\n {{ weekdayTranslationString | translate }}\r\n \r\n \r\n {{ status.translationString | translate }}\r\n \r\n \r\n \r\n
\r\n \r\n \r\n {{ 'general.term.fromTime' | translate }}:\r\n \r\n \r\n \r\n \r\n \r\n {{ 'general.term.toTime' | translate }}:\r\n \r\n \r\n \r\n \r\n \r\n {{ 'general.term.fromTime' | translate }}:\r\n \r\n \r\n \r\n \r\n \r\n {{ 'general.term.toTime' | translate }}:\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 {{ weekdayTranslationString | translate }}\r\n \r\n \r\n {{ status.translationString | translate }}\r\n \r\n \r\n \r\n \r\n \r\n
\r\n \r\n \r\n {{ 'general.term.fromDate' | translate }}:\r\n \r\n \r\n \r\n \r\n \r\n {{ 'general.term.toDate' | translate }}:\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n {{ 'general.term.fromDate' | translate }}:\r\n \r\n \r\n \r\n \r\n \r\n {{ 'general.term.toDate' | translate }}:\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n {{ 'general.term.fromDate' | translate }}:\r\n \r\n \r\n \r\n \r\n \r\n {{ 'general.term.toDate' | translate }}:\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, OnInit } from '@angular/core';\r\nimport { ModalController } from '@ionic/angular';\r\nimport { takeUntil } from 'rxjs/operators';\r\nimport { Unsubscriber } from 'src/app/core/unsubscriber';\r\nimport { ScreenSizeService } from 'src/app/core/utils/screen-size.service';\r\nimport { DestinationService } from 'src/app/domain/destination/destination.service';\r\nimport { Feature } from 'src/app/domain/feature/feature.model';\r\nimport { FeatureAccessLevel } from 'src/app/domain/feature/feature-access-level.model';\r\nimport { FeatureId } from 'src/app/domain/feature/feature-id.model';\r\nimport { SisMediaAssetImportType } from 'src/app/sismedia/domain/sismedia-asset-import-type.enum';\r\nimport { SisMediaItem } from 'src/app/sismedia/domain/sismedia-item.model';\r\nimport { SisMediaOperatingHoursEntry } from 'src/app/sismedia/sismedia-operating-hours-modal/domain/sismedia-operating-hours-entry.model';\r\nimport { SisMediaOperatingHoursPostData } from 'src/app/sismedia/sismedia-operating-hours-modal/domain/sismedia-operating-hours-postdata.model';\r\nimport { SisMediaOperatingHoursService } from 'src/app/sismedia/sismedia-operating-hours-modal/sismedia-operating-hours-modal.service';\r\n\r\n@Component({\r\n selector: 'sis-sismedia-operating-hours-modal',\r\n templateUrl: './sismedia-operating-hours-modal.component.html',\r\n styleUrls: ['./sismedia-operating-hours-modal.component.scss'],\r\n standalone: false\r\n})\r\nexport class SisMediaOperatingHoursModalComponent extends Unsubscriber implements OnInit {\r\n @Input() sisMediaItem: SisMediaItem;\r\n\r\n bigScreenMode: boolean;\r\n\r\n writePermission: boolean;\r\n readPermission: boolean;\r\n\r\n isSaving: boolean = false;\r\n isEdited: boolean[] = [];\r\n hasUnsavedChanges: boolean;\r\n operatingHoursEntries: SisMediaOperatingHoursEntry[];\r\n operatingHoursEntriesEdit: SisMediaOperatingHoursEntry[];\r\n operatingHoursEnabled: boolean;\r\n\r\n isAutoImported: boolean;\r\n importTypeNameTranslationString: string;\r\n\r\n private requiredFeatureWrite: Feature;\r\n private requiredFeatureRead: Feature;\r\n\r\n constructor(\r\n private modalCtrl: ModalController,\r\n private destinationService: DestinationService,\r\n private operatingHoursService: SisMediaOperatingHoursService,\r\n private screenSizeService: ScreenSizeService\r\n ) {\r\n super();\r\n }\r\n\r\n ngOnInit() {\r\n this.screenSizeService.bigScreenMode$\r\n .pipe(takeUntil(this.onDestroy$))\r\n .subscribe((bigScreenMode) => (this.bigScreenMode = bigScreenMode));\r\n\r\n this.isEdited.fill(false);\r\n this.requiredFeatureWrite = new Feature(FeatureId.SISMEDIA_OPERATINGHOURS, FeatureAccessLevel.WRITE);\r\n this.requiredFeatureRead = new Feature(FeatureId.SISMEDIA_OPERATINGHOURS, FeatureAccessLevel.READ);\r\n\r\n this.destinationService.selectedTenantFeatures$.pipe(takeUntil(this.onDestroy$)).subscribe((features) => {\r\n this.writePermission = features.some((f) => f.hasMinimumRequirementFor(this.requiredFeatureWrite));\r\n this.readPermission = features.some((f) => f.hasMinimumRequirementFor(this.requiredFeatureRead));\r\n });\r\n\r\n this.operatingHoursService\r\n .getOperatingHours(this.sisMediaItem.assetGuid, this.sisMediaItem.assetCategory)\r\n .pipe(takeUntil(this.onDestroy$))\r\n .subscribe((operatingHours) => {\r\n this.operatingHoursEntries = operatingHours.entries;\r\n this.operatingHoursEntriesEdit = operatingHours.entries;\r\n this.sisMediaItem.operatingHoursEnabled = operatingHours.enabled;\r\n\r\n this.reset();\r\n this.isSaving = false;\r\n });\r\n\r\n this.isAutoImported = this.sisMediaItem.importType != null;\r\n if (this.isAutoImported) {\r\n this.importTypeNameTranslationString =\r\n 'sismedia.phrase.imported.' + SisMediaAssetImportType[this.sisMediaItem.importType].toLowerCase();\r\n }\r\n }\r\n\r\n setIsEdited(weekday: number) {\r\n this.isEdited[weekday] = true;\r\n this.checkForChanges();\r\n }\r\n\r\n checkForChanges(): void {\r\n this.hasUnsavedChanges = this.isEdited.includes(true);\r\n }\r\n\r\n toggleChanged(value: boolean): void {\r\n this.operatingHoursEnabled = value;\r\n this.isEdited[7] = true;\r\n this.checkForChanges();\r\n }\r\n\r\n save(): void {\r\n this.isSaving = true;\r\n\r\n const postData: SisMediaOperatingHoursPostData = {\r\n assetGuid: this.sisMediaItem.assetGuid,\r\n assetCategory: this.sisMediaItem.assetCategory,\r\n operatingHoursEnabled: this.operatingHoursEnabled,\r\n operatingHours: this.operatingHoursEntriesEdit,\r\n };\r\n\r\n this.operatingHoursService.postOperatingHours(postData).subscribe();\r\n }\r\n\r\n reset(): void {\r\n this.operatingHoursEntriesEdit = JSON.parse(JSON.stringify(this.operatingHoursEntries));\r\n this.operatingHoursEnabled = this.sisMediaItem.operatingHoursEnabled;\r\n this.isEdited.fill(false);\r\n this.checkForChanges();\r\n }\r\n\r\n cancel(): void {\r\n this.reset();\r\n this.modalCtrl.dismiss();\r\n }\r\n}\r\n","\r\n \r\n \r\n \r\n \r\n {{ sisMediaItem.name }}\r\n \r\n\r\n\r\n\r\n \r\n \r\n \r\n {{ 'operatinghours.term.active' | translate }}\r\n \r\n \r\n \r\n \r\n {{\r\n (this.isAutoImported ? this.importTypeNameTranslationString : '') | translate\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 { HttpClient } from '@angular/common/http';\r\nimport { Injectable } from '@angular/core';\r\nimport { Observable, of } from 'rxjs';\r\nimport { catchError, distinctUntilChanged, filter, map, startWith, switchMap, withLatestFrom } from 'rxjs/operators';\r\nimport { EventBusService } from 'src/app/core/eventbus/event-bus.service';\r\nimport { SisMediaOperatingHoursUpdatedEvent } from 'src/app/core/eventbus/events';\r\nimport { DestinationService } from 'src/app/domain/destination/destination.service';\r\nimport { Feature } from 'src/app/domain/feature/feature.model';\r\nimport { FeatureAccessLevel } from 'src/app/domain/feature/feature-access-level.model';\r\nimport { FeatureId } from 'src/app/domain/feature/feature-id.model';\r\nimport { UserSettingsService } from 'src/app/domain/user-settings/user-settings.service';\r\nimport { SisMediaOperatingHours } from 'src/app/sismedia/sismedia-operating-hours-modal/domain/sismedia-operating-hours.model';\r\nimport { SisMediaOperatingHoursEntryAdapter } from 'src/app/sismedia/sismedia-operating-hours-modal/domain/sismedia-operating-hours-entry.adapter';\r\nimport { SisMediaOperatingHoursPostData } from 'src/app/sismedia/sismedia-operating-hours-modal/domain/sismedia-operating-hours-postdata.model';\r\nimport { UserMessage } from 'src/app/user-message/user-message.model';\r\nimport { UserMessageService } from 'src/app/user-message/user-message.service';\r\nimport { UserMessageColor } from 'src/app/user-message/user-message-color';\r\nimport { UserMessageIcon } from 'src/app/user-message/user-message-icon';\r\nimport { environment } from 'src/environments/environment';\r\n\r\n@Injectable({\r\n providedIn: 'root',\r\n})\r\nexport class SisMediaOperatingHoursService {\r\n private readonly requiredFeature = new Feature(FeatureId.SISMEDIA_OPERATINGHOURS, FeatureAccessLevel.READ);\r\n private readonly baseRequestUrl: string = '/sismedia/operatinghours';\r\n private readonly basePostUrl: string = '/sismedia/operatinghours';\r\n\r\n constructor(\r\n private destinationService: DestinationService,\r\n private http: HttpClient,\r\n private eventBus: EventBusService,\r\n private userSettingsService: UserSettingsService,\r\n private userMessageService: UserMessageService\r\n ) {}\r\n\r\n getOperatingHours(assetGuid: string, assetCategory: number): Observable {\r\n return this.destinationService.selectedTenantFeatures$.pipe(\r\n filter((features) => features.some((feature) => feature.hasMinimumRequirementFor(this.requiredFeature))),\r\n distinctUntilChanged(),\r\n switchMap(() => this.http.get(`${environment.baseUrlApi}${this.baseRequestUrl}/${assetGuid}/${assetCategory}`)),\r\n map((data) => SisMediaOperatingHoursEntryAdapter.adapt(data)),\r\n switchMap((data) =>\r\n this.eventBus.observe(SisMediaOperatingHoursUpdatedEvent).pipe(\r\n filter(\r\n (updatedEvent) =>\r\n updatedEvent?.assetGuid === assetGuid &&\r\n (JSON.stringify(data.entries) !== JSON.stringify(updatedEvent.operatingHours) ||\r\n data.enabled !== updatedEvent.operatingHoursEnabled)\r\n ),\r\n withLatestFrom(this.destinationService.selectedTenant$),\r\n filter(([updatedEvent, tenant]) => updatedEvent?.tenantGuid === tenant?.guid),\r\n withLatestFrom(this.userSettingsService.userSettings$),\r\n map(([[updatedEvent], userSettings]) => {\r\n if (updatedEvent.changedBy === userSettings.userGuid) {\r\n const translateKey = 'general.phrase.saved';\r\n const userMessage = new UserMessage({\r\n message: translateKey,\r\n icon: UserMessageIcon.success,\r\n durationMs: 2000,\r\n position: 'top',\r\n color: UserMessageColor.green,\r\n });\r\n this.userMessageService.presentToast(userMessage);\r\n }\r\n data = {\r\n enabled: updatedEvent.operatingHoursEnabled,\r\n entries: updatedEvent.operatingHours,\r\n };\r\n return data;\r\n }),\r\n startWith(data)\r\n )\r\n )\r\n );\r\n }\r\n\r\n postOperatingHours(operatingHoursPostData: SisMediaOperatingHoursPostData): Observable {\r\n return this.http.post(`${environment.baseUrlApi}${this.basePostUrl}`, operatingHoursPostData).pipe(\r\n map(() => true),\r\n catchError(() => {\r\n const translateKey = 'general.phrase.saveFailed';\r\n const userMessage = new UserMessage({\r\n message: translateKey,\r\n icon: UserMessageIcon.failed,\r\n durationMs: 2000,\r\n position: 'top',\r\n color: UserMessageColor.red,\r\n });\r\n this.userMessageService.presentToast(userMessage);\r\n\r\n return of(false);\r\n })\r\n );\r\n }\r\n}\r\n","import { Component, Input } from '@angular/core';\r\nimport { PopoverController } from '@ionic/angular';\r\nimport { SisMediaAssetSubStatus } from 'src/app/sismedia/domain/sismedia-asset-substatus.enum';\r\n\r\n@Component({\r\n selector: 'sis-sismedia-substatus',\r\n templateUrl: './sismedia-substatus.component.html',\r\n styleUrls: ['./sismedia-substatus.component.scss'],\r\n standalone: false\r\n})\r\nexport class SisMediaSubstatusPopoverComponent {\r\n @Input() status: number;\r\n openSubstatuses = [\r\n { label: 'sismedia.term.convoy', icon: 'sis-status-convoy', value: SisMediaAssetSubStatus.Convoy },\r\n { label: 'sismedia.term.circulation', icon: 'sis-status-circulation', value: SisMediaAssetSubStatus.Circulation },\r\n ];\r\n closedSubstatuses = [\r\n { label: 'sismedia.term.revision', icon: 'sis-status-revision', value: SisMediaAssetSubStatus.Revision },\r\n { label: 'sismedia.term.storm', icon: 'sis-status-storm', value: SisMediaAssetSubStatus.Storm },\r\n { label: 'sismedia.term.malfunction', icon: 'sis-status-malfunction', value: SisMediaAssetSubStatus.Malfunction },\r\n ];\r\n\r\n constructor(private popoverController: PopoverController) {}\r\n\r\n selectSubstatus(substatus: SisMediaAssetSubStatus) {\r\n this.popoverController.dismiss(substatus);\r\n }\r\n}\r\n","\r\n \r\n \r\n {{ substatus.label | translate }}\r\n \r\n\r\n\r\n\r\n \r\n \r\n {{ substatus.label | translate }}\r\n \r\n\r\n","import { CommonModule } from '@angular/common';\r\nimport { NgModule } from '@angular/core';\r\nimport { FormsModule, ReactiveFormsModule } from '@angular/forms';\r\nimport { MatTooltipModule } from '@angular/material/tooltip';\r\nimport { RouterModule } from '@angular/router';\r\nimport { IonicModule } from '@ionic/angular';\r\nimport { TranslateModule } from '@ngx-translate/core';\r\nimport { CoreModule } from 'src/app/core/core.module';\r\nimport { SisMediaPage } from 'src/app/sismedia/sismedia.page';\r\nimport { AssetOverrideItemComponent } from 'src/app/sismedia/sismedia-asset-override/asset-override-item/asset-override-item.component';\r\nimport { SisMediaAssetOverrideComponent } from 'src/app/sismedia/sismedia-asset-override/sismedia-asset-override.page';\r\nimport { SismediaCategoryComponent } from 'src/app/sismedia/sismedia-category/sismedia-category.component';\r\nimport { SisMediaEditModalComponent } from 'src/app/sismedia/sismedia-edit-modal/sismedia-edit-modal.component';\r\nimport { SisMediaExportsEditModalComponent } from 'src/app/sismedia/sismedia-exports-edit-modal/sismedia-exports-edit-modal.component';\r\nimport { SisMediaItemComponent } from 'src/app/sismedia/sismedia-item/sismedia-item.component';\r\nimport { SisMediaOperatingHoursItemComponent } from 'src/app/sismedia/sismedia-operating-hours-modal/sismedia-operating-hours-item/sismedia-operating-hours-item.component';\r\nimport { SisMediaOperatingHoursModalComponent } from 'src/app/sismedia/sismedia-operating-hours-modal/sismedia-operating-hours-modal.component';\r\nimport { SisMediaSubstatusPopoverComponent } from 'src/app/sismedia/sismedia-substatus/sismedia-substatus.component';\r\n\r\n@NgModule({\r\n imports: [\r\n CommonModule,\r\n FormsModule,\r\n ReactiveFormsModule,\r\n IonicModule,\r\n RouterModule.forChild([\r\n {\r\n path: '',\r\n component: SisMediaPage,\r\n },\r\n ]),\r\n TranslateModule,\r\n MatTooltipModule,\r\n CoreModule,\r\n ],\r\n declarations: [\r\n SisMediaPage,\r\n SisMediaItemComponent,\r\n SisMediaAssetOverrideComponent,\r\n AssetOverrideItemComponent,\r\n SismediaCategoryComponent,\r\n SisMediaEditModalComponent,\r\n SisMediaOperatingHoursModalComponent,\r\n SisMediaOperatingHoursItemComponent,\r\n SisMediaExportsEditModalComponent,\r\n SisMediaSubstatusPopoverComponent,\r\n ],\r\n})\r\nexport class SisMediaPageModule {}\r\n","import { Component, OnInit } from '@angular/core';\r\nimport { ActivatedRoute, Router } from '@angular/router';\r\nimport { takeUntil } from 'rxjs/operators';\r\nimport { Unsubscriber } from 'src/app/core/unsubscriber';\r\nimport { FeatureId } from 'src/app/domain/feature/feature-id.model';\r\nimport { SisRoute } from 'src/app/domain/sis-route.model';\r\nimport { SisMediaAssetCategory } from 'src/app/sismedia/domain/sismedia-asset-category.enum';\r\nimport { SisMediaRouteParams } from 'src/app/sismedia/domain/sismedia-route-params.model';\r\nimport { SisMediaItemService } from 'src/app/sismedia/sismedia-item/sismedia-item.service';\r\n\r\n@Component({\r\n selector: 'sis-media',\r\n templateUrl: './sismedia.page.html',\r\n styleUrls: ['./sismedia.page.scss'],\r\n standalone: false\r\n})\r\nexport class SisMediaPage extends Unsubscriber implements OnInit {\r\n private static readonly routeOptions: Map = new Map([\r\n [\r\n SisRoute.Lift,\r\n {\r\n excludedItemTypes: [],\r\n includedItemTypes: [],\r\n assetCategory: SisMediaAssetCategory.Lift,\r\n featureId: FeatureId.SISMEDIA_LIFT,\r\n titleTranslationString: 'general.term.lifts',\r\n },\r\n ],\r\n [\r\n SisRoute.Gastro,\r\n {\r\n excludedItemTypes: [],\r\n includedItemTypes: [],\r\n assetCategory: SisMediaAssetCategory.Gastro,\r\n featureId: FeatureId.SISMEDIA_GASTRO,\r\n titleTranslationString: 'general.term.gastro',\r\n },\r\n ],\r\n [\r\n SisRoute.Slope,\r\n {\r\n excludedItemTypes: ['airboard', 'rodeln', 'schlitteln', 'langlauf', 'langlaufklassisch', 'langlaufskating'],\r\n includedItemTypes: [],\r\n assetCategory: SisMediaAssetCategory.Slope,\r\n featureId: FeatureId.SISMEDIA_SLOPE,\r\n titleTranslationString: 'general.term.slopes',\r\n },\r\n ],\r\n [\r\n SisRoute.CrossCountry,\r\n {\r\n excludedItemTypes: [],\r\n includedItemTypes: ['langlauf', 'langlaufklassisch', 'langlaufskating'],\r\n assetCategory: SisMediaAssetCategory.Slope,\r\n featureId: FeatureId.SISMEDIA_CROSSCOUNTRY,\r\n titleTranslationString: 'general.term.crossCountry',\r\n },\r\n ],\r\n [\r\n SisRoute.Sledging,\r\n {\r\n excludedItemTypes: [],\r\n includedItemTypes: ['airboard', 'rodeln', 'schlitteln'],\r\n assetCategory: SisMediaAssetCategory.Slope,\r\n featureId: FeatureId.SISMEDIA_SLEDGING,\r\n titleTranslationString: 'general.term.sledging',\r\n },\r\n ],\r\n [\r\n SisRoute.Poi,\r\n {\r\n excludedItemTypes: [],\r\n includedItemTypes: [],\r\n assetCategory: SisMediaAssetCategory.Poi,\r\n featureId: FeatureId.SISMEDIA_POI,\r\n titleTranslationString: 'general.term.pois',\r\n },\r\n ],\r\n [\r\n SisRoute.Trail,\r\n {\r\n excludedItemTypes: ['bike', 'downhill'],\r\n includedItemTypes: [],\r\n assetCategory: SisMediaAssetCategory.Trail,\r\n featureId: FeatureId.SISMEDIA_TRAIL,\r\n titleTranslationString: 'general.term.trails',\r\n },\r\n ],\r\n [\r\n SisRoute.Bike,\r\n {\r\n excludedItemTypes: [],\r\n includedItemTypes: ['bike', 'downhill'],\r\n assetCategory: SisMediaAssetCategory.Trail,\r\n featureId: FeatureId.SISMEDIA_BIKE,\r\n titleTranslationString: 'general.term.bike',\r\n },\r\n ],\r\n ]);\r\n\r\n options: SisMediaRouteParams;\r\n\r\n constructor(private activatedRoute: ActivatedRoute, private router: Router, private sisMediaItemService: SisMediaItemService) {\r\n super();\r\n }\r\n\r\n ngOnInit() {\r\n this.activatedRoute.params.pipe(takeUntil(this.onDestroy$)).subscribe((params) => {\r\n const category: string = params['category'];\r\n\r\n const options = SisMediaPage.routeOptions.get(category);\r\n\r\n this.options = options;\r\n\r\n if (!options) {\r\n this.router.navigate([params['destination'], 'sismedia', SisRoute.Lift]);\r\n }\r\n });\r\n }\r\n}\r\n","\r\n","import { SlopesOperatingTimes } from 'src/app/slopes-operating-times/domain/slopes-operating-times.model';\r\n\r\nexport class SlopesOperatingTimesAdapter {\r\n static adapt(items: any): SlopesOperatingTimes[] {\r\n const slopesOperatingTimes: SlopesOperatingTimes[] = [];\r\n\r\n if (items) {\r\n items.forEach((item) => {\r\n slopesOperatingTimes.push({\r\n guid: item.guid,\r\n location: item.location,\r\n firstRide: item.firstRide,\r\n lastRide: item.lastRide,\r\n lastSlopeControl: item.lastSlopeControl,\r\n order: item.order,\r\n });\r\n });\r\n }\r\n\r\n return slopesOperatingTimes;\r\n }\r\n}\r\n","import { Component, Input, OnInit } from '@angular/core';\r\nimport { FormControl, FormGroup } from '@angular/forms';\r\nimport { takeUntil } from 'rxjs';\r\nimport { Unsubscriber } from 'src/app/core/unsubscriber';\r\nimport { ScreenSizeService } from 'src/app/core/utils/screen-size.service';\r\nimport { SlopesOperatingTimes } from 'src/app/slopes-operating-times/domain/slopes-operating-times.model';\r\nimport { SlopesOperatingTimesService } from 'src/app/slopes-operating-times/slopes-operating-times.service';\r\n\r\n@Component({\r\n selector: 'sis-slopes-operating-times-item',\r\n templateUrl: './slopes-operating-times-item.component.html',\r\n styleUrls: ['./slopes-operating-times-item.component.scss'],\r\n standalone: false\r\n})\r\nexport class SlopesOperatingTimesItemComponent extends Unsubscriber implements OnInit {\r\n @Input() guid: string;\r\n\r\n readonly bigScreenMode$ = this.screenSizeService.bigScreenMode$;\r\n\r\n private originalItem: SlopesOperatingTimes;\r\n editableItem: SlopesOperatingTimes;\r\n formGroup: FormGroup;\r\n\r\n constructor(\r\n private slopesOperatingTimesService: SlopesOperatingTimesService,\r\n private screenSizeService: ScreenSizeService\r\n ) {\r\n super();\r\n }\r\n\r\n ngOnInit(): void {\r\n this.formGroup = new FormGroup({\r\n firstRide: new FormControl(),\r\n lastRide: new FormControl(),\r\n lastSlopeControl: new FormControl(),\r\n });\r\n\r\n this.formGroup.valueChanges.pipe(takeUntil(this.onDestroy$)).subscribe((value) => {\r\n this.editableItem.firstRide = value.firstRide;\r\n this.editableItem.lastRide = value.lastRide;\r\n this.editableItem.lastSlopeControl = value.lastSlopeControl;\r\n\r\n this.setEdited();\r\n });\r\n\r\n this.slopesOperatingTimesService.slopesOperatingTimes$\r\n .pipe(takeUntil(this.onDestroy$))\r\n .subscribe((slopesOperatingTimes) => {\r\n this.originalItem = slopesOperatingTimes.find((s) => s.guid === this.guid);\r\n this.reset();\r\n });\r\n\r\n this.slopesOperatingTimesService.requestReset$.pipe(takeUntil(this.onDestroy$)).subscribe(() => this.reset());\r\n }\r\n\r\n reset(): void {\r\n this.editableItem = JSON.parse(JSON.stringify(this.originalItem));\r\n this.setValues(this.editableItem);\r\n }\r\n\r\n private setValues(item: SlopesOperatingTimes): void {\r\n this.formGroup.setValue(\r\n {\r\n firstRide: item.firstRide,\r\n lastRide: item.lastRide,\r\n lastSlopeControl: item.lastSlopeControl,\r\n },\r\n { emitEvent: false }\r\n );\r\n this.setEdited();\r\n }\r\n\r\n private setEdited(): void {\r\n const item = this.hasChanges() ? this.editableItem : null;\r\n this.slopesOperatingTimesService.setEdited(this.guid, item);\r\n }\r\n\r\n private hasChanges(): boolean {\r\n return (\r\n this.editableItem.firstRide !== this.originalItem.firstRide ||\r\n this.editableItem.lastRide !== this.originalItem.lastRide ||\r\n this.editableItem.lastSlopeControl !== this.originalItem.lastSlopeControl\r\n );\r\n }\r\n}\r\n","\r\n\r\n \r\n {{ this.editableItem.location }}\r\n \r\n
\r\n \r\n \r\n {{ 'slopesOperatingTimes.term.firstRide' | translate }}\r\n \r\n \r\n \r\n \r\n \r\n {{ 'slopesOperatingTimes.term.lastRide' | translate }}\r\n \r\n \r\n \r\n \r\n \r\n {{\r\n 'slopesOperatingTimes.term.lastSlopeControl' | translate\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 {{ this.editableItem.location }}\r\n \r\n
\r\n \r\n {{ 'slopesOperatingTimes.term.firstRide' | translate }}\r\n \r\n \r\n \r\n \r\n \r\n {{ 'slopesOperatingTimes.term.lastRide' | translate }}\r\n \r\n \r\n \r\n \r\n \r\n {{ 'slopesOperatingTimes.term.lastSlopeControl' | translate }}\r\n \r\n \r\n \r\n \r\n
\r\n
\r\n","import { CommonModule } from '@angular/common';\r\nimport { NgModule } from '@angular/core';\r\nimport { FormsModule, ReactiveFormsModule } from '@angular/forms';\r\nimport { MatTooltipModule } from '@angular/material/tooltip';\r\nimport { RouterModule } from '@angular/router';\r\nimport { IonicModule } from '@ionic/angular';\r\nimport { TranslateModule } from '@ngx-translate/core';\r\nimport { CoreModule } from 'src/app/core/core.module';\r\nimport { SlopesOperatingTimesPage } from 'src/app/slopes-operating-times/slopes-operating-times.page';\r\nimport { SlopesOperatingTimesItemComponent } from 'src/app/slopes-operating-times/slopes-operating-times-item/slopes-operating-times-item.component';\r\n\r\n@NgModule({\r\n imports: [\r\n CommonModule,\r\n IonicModule,\r\n FormsModule,\r\n ReactiveFormsModule,\r\n CoreModule,\r\n MatTooltipModule,\r\n RouterModule.forChild([\r\n {\r\n path: '',\r\n component: SlopesOperatingTimesPage,\r\n },\r\n ]),\r\n TranslateModule,\r\n ],\r\n declarations: [SlopesOperatingTimesPage, SlopesOperatingTimesItemComponent],\r\n})\r\nexport class SlopesOperatingTimesPageModule {}\r\n","import { Component, OnInit } from '@angular/core';\r\nimport { map, Observable, takeUntil } from 'rxjs';\r\nimport { LogbookModalService } from 'src/app/core/components/logbook/logbook-modal/logbook-modal.service';\r\nimport { Unsubscriber } from 'src/app/core/unsubscriber';\r\nimport { ScreenSizeService } from 'src/app/core/utils/screen-size.service';\r\nimport { DestinationService } from 'src/app/domain/destination/destination.service';\r\nimport { Feature } from 'src/app/domain/feature/feature.model';\r\nimport { FeatureAccessLevel } from 'src/app/domain/feature/feature-access-level.model';\r\nimport { FeatureId } from 'src/app/domain/feature/feature-id.model';\r\nimport { SlopesOperatingTimesService } from 'src/app/slopes-operating-times/slopes-operating-times.service';\r\n\r\n@Component({\r\n selector: 'sis-slopes-operating-times-page',\r\n templateUrl: './slopes-operating-times.page.html',\r\n styleUrls: ['./slopes-operating-times.page.scss'],\r\n standalone: false\r\n})\r\nexport class SlopesOperatingTimesPage extends Unsubscriber implements OnInit {\r\n private readonly requiredWriteFeature = new Feature(\r\n FeatureId.SISMEDIA_SLOPESOPERATINGTIMES,\r\n FeatureAccessLevel.WRITE\r\n );\r\n\r\n readonly slopesOperatingTimesGuids$: Observable =\r\n this.slopesOperatingTimesService.slopesOperatingTimes$.pipe(\r\n map((slopesOperatingTimes) => slopesOperatingTimes.sort((a, b) => a.order - b.order).map((s) => s.guid))\r\n );\r\n\r\n readonly logbookAvailable$ = this.logbookModalService.logbookAvailable$;\r\n\r\n readonly hasChanges$ = this.slopesOperatingTimesService.unsavedChanges$.pipe(\r\n map((m) => [...m.values()].some((v) => v != null))\r\n );\r\n\r\n bigScreenMode: boolean;\r\n writePermission: boolean;\r\n isSaving: boolean;\r\n featureId = FeatureId.SISMEDIA_SLOPESOPERATINGTIMES;\r\n\r\n constructor(\r\n private slopesOperatingTimesService: SlopesOperatingTimesService,\r\n private screenSizeService: ScreenSizeService,\r\n private logbookModalService: LogbookModalService,\r\n private destinationService: DestinationService\r\n ) {\r\n super();\r\n }\r\n\r\n ngOnInit(): void {\r\n this.screenSizeService.bigScreenMode$\r\n .pipe(takeUntil(this.onDestroy$))\r\n .subscribe((bigScreenMode) => (this.bigScreenMode = bigScreenMode));\r\n\r\n this.destinationService.selectedTenantFeatures$.pipe(takeUntil(this.onDestroy$)).subscribe((features) => {\r\n this.writePermission = features?.some((f) => f.hasMinimumRequirementFor(this.requiredWriteFeature)) ?? false;\r\n });\r\n\r\n this.slopesOperatingTimesService.updated$.pipe(takeUntil(this.onDestroy$)).subscribe(() => (this.isSaving = false));\r\n }\r\n\r\n async save(): Promise {\r\n this.isSaving = true;\r\n this.isSaving = await this.slopesOperatingTimesService.saveChanges();\r\n }\r\n\r\n reset(): void {\r\n this.slopesOperatingTimesService.requestReset$.next();\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 { HttpClient } from '@angular/common/http';\r\nimport { Injectable } from '@angular/core';\r\nimport {\r\n catchError,\r\n distinctUntilChanged,\r\n filter,\r\n firstValueFrom,\r\n map,\r\n merge,\r\n Observable,\r\n of,\r\n scan,\r\n shareReplay,\r\n Subject,\r\n switchMap,\r\n withLatestFrom,\r\n} from 'rxjs';\r\nimport { EventBusService } from 'src/app/core/eventbus/event-bus.service';\r\nimport { SlopesOperatingTimesUpdatedEvent } from 'src/app/core/eventbus/events';\r\nimport { DestinationService } from 'src/app/domain/destination/destination.service';\r\nimport { Feature } from 'src/app/domain/feature/feature.model';\r\nimport { FeatureAccessLevel } from 'src/app/domain/feature/feature-access-level.model';\r\nimport { FeatureId } from 'src/app/domain/feature/feature-id.model';\r\nimport { UserSettingsService } from 'src/app/domain/user-settings/user-settings.service';\r\nimport { SlopesOperatingTimesAdapter } from 'src/app/slopes-operating-times/domain/slopes-operating-times.adapter';\r\nimport { SlopesOperatingTimes } from 'src/app/slopes-operating-times/domain/slopes-operating-times.model';\r\nimport { UserMessage } from 'src/app/user-message/user-message.model';\r\nimport { UserMessageService } from 'src/app/user-message/user-message.service';\r\nimport { UserMessageColor } from 'src/app/user-message/user-message-color';\r\nimport { UserMessageIcon } from 'src/app/user-message/user-message-icon';\r\nimport { environment } from 'src/environments/environment';\r\n\r\n@Injectable({\r\n providedIn: 'root',\r\n})\r\nexport class SlopesOperatingTimesService {\r\n private readonly baseRequestUrl: string = '/slopesoperatingtimes';\r\n private readonly basePostUrl: string = '/slopesoperatingtimes/update';\r\n private readonly requiredFeature = new Feature(FeatureId.SISMEDIA_SLOPESOPERATINGTIMES, FeatureAccessLevel.READ);\r\n\r\n private readonly changes$ = new Subject<{ guid: string; editedSlopesOperatingTimes: SlopesOperatingTimes | null }>();\r\n\r\n private readonly slopesOperatingTimesRequest$: Observable =\r\n this.destinationService.selectedTenantFeatures$.pipe(\r\n distinctUntilChanged(),\r\n filter((features) => features.some((feature) => feature.hasMinimumRequirementFor(this.requiredFeature))),\r\n switchMap(() => this.httpClient.get(`${environment.baseUrlApi}${this.baseRequestUrl}`)),\r\n map((data) => SlopesOperatingTimesAdapter.adapt(data)),\r\n shareReplay({\r\n bufferSize: 1,\r\n refCount: true,\r\n })\r\n );\r\n\r\n private readonly slopesOperatingTimesUpdate$: Observable = this.eventBus\r\n .observe(SlopesOperatingTimesUpdatedEvent)\r\n .pipe(\r\n withLatestFrom(this.destinationService.selectedTenant$),\r\n filter(([updatedEvent, tenant]) => updatedEvent?.tenantGuid === tenant?.guid),\r\n withLatestFrom(this.slopesOperatingTimesRequest$, this.userSettingsService.userSettings$),\r\n map(([[updatedEvent], slopeOperatingTimes, userSettings]) => {\r\n if (updatedEvent.changedBy === userSettings.userGuid) {\r\n const translateKey = updatedEvent.updateSuccessful ? 'general.phrase.saved' : 'general.phrase.saveFailed';\r\n const icon = updatedEvent.updateSuccessful ? UserMessageIcon.success : UserMessageIcon.failed;\r\n const color = updatedEvent.updateSuccessful ? UserMessageColor.green : UserMessageColor.red;\r\n const userMessage = new UserMessage({\r\n message: translateKey,\r\n icon,\r\n durationMs: 2000,\r\n position: 'top',\r\n color,\r\n });\r\n this.userMessageService.presentToast(userMessage);\r\n }\r\n\r\n if (updatedEvent.updateSuccessful) {\r\n const updatedSlopesOperatingTimesItem = slopeOperatingTimes.find((s) => s.guid === updatedEvent.guid);\r\n if (updatedSlopesOperatingTimesItem) {\r\n updatedSlopesOperatingTimesItem.firstRide = updatedEvent.firstRide;\r\n updatedSlopesOperatingTimesItem.lastRide = updatedEvent.lastRide;\r\n updatedSlopesOperatingTimesItem.lastSlopeControl = updatedEvent.lastSlopeControl;\r\n }\r\n }\r\n\r\n return slopeOperatingTimes;\r\n })\r\n );\r\n\r\n readonly slopesOperatingTimes$: Observable = merge(\r\n this.slopesOperatingTimesRequest$,\r\n this.slopesOperatingTimesUpdate$\r\n ).pipe(shareReplay({ bufferSize: 1, refCount: true }));\r\n\r\n readonly unsavedChanges$ = this.changes$.pipe(\r\n scan((acc, curr) => {\r\n acc.set(curr.guid, curr.editedSlopesOperatingTimes);\r\n\r\n return acc;\r\n }, new Map()),\r\n shareReplay({ bufferSize: 1, refCount: true })\r\n );\r\n\r\n readonly updated$ = this.eventBus.observe(SlopesOperatingTimesUpdatedEvent).pipe(\r\n withLatestFrom(this.destinationService.selectedTenant$, this.userSettingsService.userSettings$),\r\n filter(\r\n ([updatedEvent, tenant, userSettings]) =>\r\n updatedEvent.tenantGuid === tenant?.guid && updatedEvent.changedBy === userSettings.userGuid\r\n )\r\n );\r\n\r\n readonly requestReset$ = new Subject();\r\n\r\n constructor(\r\n private httpClient: HttpClient,\r\n private destinationService: DestinationService,\r\n private eventBus: EventBusService,\r\n private userSettingsService: UserSettingsService,\r\n private userMessageService: UserMessageService\r\n ) {}\r\n\r\n async saveChanges(): Promise {\r\n const unsavedChanges = await firstValueFrom(this.unsavedChanges$);\r\n\r\n const itemsToSave = [...unsavedChanges.values()].filter((v) => !!v);\r\n if (itemsToSave.length) {\r\n return firstValueFrom(\r\n this.httpClient.post(`${environment.baseUrlApi}${this.basePostUrl}`, itemsToSave).pipe(\r\n map(() => true),\r\n catchError(() => of(false))\r\n )\r\n );\r\n }\r\n\r\n return true;\r\n }\r\n\r\n setEdited(guid: string, editedSlopesOperatingTimes: SlopesOperatingTimes | null): void {\r\n this.changes$.next({ guid, editedSlopesOperatingTimes });\r\n }\r\n}\r\n","import { STnetCalculatedData } from 'src/app/stnet/domain/stnet-calculated-data.model';\r\n\r\nexport class STnetCalculatedDataAdapter {\r\n static adapt(item: any): STnetCalculatedData | null {\r\n if (!item) {\r\n return null;\r\n }\r\n\r\n return {\r\n stationId: item.stationId,\r\n liftsToday: item.liftsToday,\r\n liftsTotal: item.liftsTotal,\r\n slopesToday: item.slopesToday,\r\n slopesTotal: item.slopesTotal,\r\n slopesLengthMeterToday: item.slopesLengthMeterToday,\r\n slopesLengthMeterTotal: item.slopesLengthMeterTotal,\r\n valleyRunsToday: item.valleyRunsToday,\r\n valleyRunsTotal: item.valleyRunsTotal,\r\n classicTracksLengthMeterToday: item.classicTracksLengthMeterToday,\r\n classicTracksLengthMeterTotal: item.classicTracksLengthMeterTotal,\r\n skatingTracksLengthMeterToday: item.skatingTracksLengthMeterToday,\r\n skatingTracksLengthMeterTotal: item.skatingTracksLengthMeterTotal,\r\n halfpipesToday: item.halfpipesToday,\r\n halfpipesTotal: item.halfpipesTotal,\r\n snowcrossTracksToday: item.snowcrossTracksToday,\r\n snowcrossTracksTotal: item.snowcrossTracksTotal,\r\n snowparksToday: item.snowparksToday,\r\n snowparksTotal: item.snowparksTotal,\r\n airboardSlopesToday: item.airboardSlopesToday,\r\n airboardSlopesTotal: item.airboardSlopesTotal,\r\n snowtubeTracksToday: item.snowtubeTracksToday,\r\n snowtubeTracksTotal: item.snowtubeTracksTotal,\r\n tobogganRunsToday: item.tobogganRunsToday,\r\n tobogganRunsTotal: item.tobogganRunsTotal,\r\n tobogganRunsLengthMeterToday: item.tobogganRunsLengthMeterToday,\r\n tobogganRunsLengthMeterTotal: item.tobogganRunsLengthMeterTotal,\r\n winterHikingTrailsLengthMeterToday: item.winterHikingTrailsLengthMeterToday,\r\n winterHikingTrailsLengthMeterTotal: item.winterHikingTrailsLengthMeterTotal,\r\n snowshoeTrailsToday: item.snowshoeTrailsToday,\r\n snowshoeTrailsTotal: item.snowshoeTrailsTotal,\r\n snowshoeTrailsLengthMeterToday: item.snowshoeTrailsLengthMeterToday,\r\n snowshoeTrailsLengthMeterTotal: item.snowshoeTrailsLengthMeterTotal,\r\n };\r\n }\r\n}\r\n","import { STnetItem } from 'src/app/stnet/domain/stnet-item.model';\r\n\r\nexport class STnetItemAdapter {\r\n static adapt(item: any): STnetItem | null {\r\n if (!item) {\r\n return null;\r\n }\r\n\r\n return {\r\n tenantGuid: item.tenantGuid,\r\n stationId: item.stationId,\r\n stationName: item.stationName,\r\n // snow\r\n snowConditionMainId: item.snowConditionMainId,\r\n snowConditionPartialId: item.snowConditionPartialId,\r\n // slope\r\n slopeConditionId: item.slopeConditionId,\r\n slopesSnowedLengthMeterToday: item.slopesSnowedLengthMeterToday,\r\n snowHeightMeasurementMethodId: item.snowHeightMeasurementMethodId,\r\n // valley run\r\n valleyRunMainConditionId: item.valleyRunMainConditionId,\r\n valleyRunPartialConditionId: item.valleyRunPartialConditionId,\r\n valleyRunLowestAltitudeToday: item.valleyRunLowestAltitudeToday,\r\n // cross country\r\n classicTrackConditionId: item.classicTrackConditionId,\r\n skatingTrackConditionId: item.skatingTrackConditionId,\r\n crossCountryTracksLowestAltitudeToday: item.crossCountryTracksLowestAltitudeToday,\r\n crossCountryTracksHighestAltitudeToday: item.crossCountryTracksHighestAltitudeToday,\r\n // snow park\r\n snowparkConditionId: item.snowparkConditionId,\r\n // toboggan\r\n tobogganRunConditionId: item.tobogganRunConditionId,\r\n tobogganRunSkillTypeId: item.tobogganRunSkillTypeId,\r\n // winter hiking\r\n winterHikingTrailConditionId: item.winterHikingTrailConditionId,\r\n winterHikingTrailsLowestAltitudeTotal: item.winterHikingTrailsLowestAltitudeTotal,\r\n // flood light\r\n slopesFloodlightEnabled: item.slopesFloodlightEnabled,\r\n slopesFloodlightUntil: item.slopesFloodlightUntil,\r\n slopesWithFloodlightLengthMeterToday: item.slopesWithFloodlightLengthMeterToday,\r\n crossCountryFloodlightEnabled: item.crossCountryFloodlightEnabled,\r\n crossCountryFloodlightUntil: item.crossCountryFloodlightUntil,\r\n crossCountryTracksWithFloodlightLengthMeterToday: item.crossCountryTracksWithFloodlightLengthMeterToday,\r\n snowparkFloodlightEnabled: item.snowparkFloodlightEnabled,\r\n snowparkFloodlightUntil: item.snowparkFloodlightUntil,\r\n tobogganFloodlightEnabled: item.tobogganFloodlightEnabled,\r\n tobogganRunsWithFloodlightLengthMeterToday: item.tobogganRunsWithFloodlightLengthMeterToday,\r\n // changes\r\n lastChange: new Date(item.lastChange),\r\n changedBy: item.changedBy,\r\n changedByEmail: item.changedByEmail,\r\n };\r\n }\r\n}\r\n","// eslint-disable-next-line simple-import-sort/imports\r\nimport { STnetStatusAdapter } from 'src/app/core/stnet/stnet-status.adapter';\r\nimport { STnetCalculatedDataAdapter } from 'src/app/stnet/domain/stnet-calculated-data.adapter';\r\nimport { STnetItemAdapter } from 'src/app/stnet/domain/stnet-item.adapter';\r\nimport { STnet } from 'src/app/stnet/domain/stnet.model';\r\n\r\nexport class STnetAdapter {\r\n static adapt(item: any): STnet {\r\n if (!item) {\r\n return {\r\n stnetItem: null,\r\n calculatedData: null,\r\n stnetStatusArray: [],\r\n };\r\n }\r\n\r\n return {\r\n stnetItem: STnetItemAdapter.adapt(item.sTnetData),\r\n calculatedData: STnetCalculatedDataAdapter.adapt(item.sTnetCalculatedData),\r\n stnetStatusArray:\r\n item.sTnetStatusList?.filter((v: any) => v).map((status: any) => STnetStatusAdapter.adapt(status)) ?? [],\r\n };\r\n }\r\n}\r\n","import { Component, Input } from '@angular/core';\r\n\r\n@Component({\r\n selector: 'sis-stnet-calculated-item',\r\n templateUrl: './stnet-calculated-item.component.html',\r\n styleUrls: ['./stnet-calculated-item.component.scss'],\r\n standalone: false\r\n})\r\nexport class STnetCalculatedItemComponent {\r\n @Input() bigScreenMode: boolean;\r\n @Input() name: string;\r\n @Input() today: number;\r\n @Input() total: number;\r\n @Input() lengthMeterToday: number;\r\n @Input() lengthMeterTotal: number;\r\n}\r\n","\r\n\r\n {{ this.name | translate }}\r\n \r\n {{ this.today }} / {{ this.total }} \r\n \r\n\r\n \r\n \r\n {{ (this.lengthMeterToday / 1000).toFixed(1) }} / {{ (this.lengthMeterTotal / 1000).toFixed(1) }} km\r\n \r\n \r\n\r\n\r\n\r\n\r\n {{ this.name | translate }}\r\n \r\n {{ this.today }} / {{ this.total }} \r\n \r\n\r\n \r\n \r\n {{ (this.lengthMeterToday / 1000).toFixed(1) }} / {{ (this.lengthMeterTotal / 1000).toFixed(1) }} km\r\n \r\n \r\n\r\n","import { Component, Input } from '@angular/core';\r\nimport { takeUntil } from 'rxjs/operators';\r\nimport { Unsubscriber } from 'src/app/core/unsubscriber';\r\nimport { ScreenSizeService } from 'src/app/core/utils/screen-size.service';\r\nimport { STnetCalculatedData } from 'src/app/stnet/domain/stnet-calculated-data.model';\r\n\r\n@Component({\r\n selector: 'sis-stnet-calculated',\r\n templateUrl: './stnet-calculated.component.html',\r\n styleUrls: ['./stnet-calculated.component.scss'],\r\n standalone: false\r\n})\r\nexport class STnetCalculatedComponent extends Unsubscriber {\r\n @Input() calculatedData: STnetCalculatedData;\r\n\r\n bigScreenMode: boolean;\r\n readPermission: boolean;\r\n\r\n constructor(private screenSizeService: ScreenSizeService) {\r\n super();\r\n\r\n this.screenSizeService.bigScreenMode$\r\n .pipe(takeUntil(this.onDestroy$))\r\n .subscribe((bigScreenMode) => (this.bigScreenMode = bigScreenMode));\r\n }\r\n}\r\n","\r\n
\r\n {{ 'stnet.term.calculatedValues' | translate }}\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","import { Component, EventEmitter, Input, OnChanges, Output } from '@angular/core';\r\nimport { AbstractControl, FormControl, FormGroup, ValidationErrors, ValidatorFn, Validators } from '@angular/forms';\r\nimport { TranslateService } from '@ngx-translate/core';\r\nimport { takeUntil } from 'rxjs/operators';\r\nimport { Unsubscriber } from 'src/app/core/unsubscriber';\r\nimport { ScreenSizeService } from 'src/app/core/utils/screen-size.service';\r\nimport { DestinationService } from 'src/app/domain/destination/destination.service';\r\nimport { Feature } from 'src/app/domain/feature/feature.model';\r\nimport { FeatureAccessLevel } from 'src/app/domain/feature/feature-access-level.model';\r\nimport { FeatureId } from 'src/app/domain/feature/feature-id.model';\r\nimport { SisMediaSetting } from 'src/app/sismedia-setting/sismedia-setting.model';\r\nimport { SisMediaSettingService } from 'src/app/sismedia-setting/sismedia-setting.service';\r\nimport { STnetCalculatedData } from 'src/app/stnet/domain/stnet-calculated-data.model';\r\nimport { STnetItem } from 'src/app/stnet/domain/stnet-item.model';\r\nimport { environment } from 'src/environments/environment';\r\n\r\n@Component({\r\n selector: 'sis-stnet-editable',\r\n templateUrl: './stnet-editable.component.html',\r\n styleUrls: ['./stnet-editable.component.scss'],\r\n standalone: false\r\n})\r\nexport class STnetEditableComponent extends Unsubscriber implements OnChanges {\r\n private readonly tobogganRunsWithFloodlightLengthMeterTodayFormControl = new FormControl('', [\r\n Validators.min(0),\r\n Validators.max(1000000),\r\n Validators.pattern(/^\\d+$/),\r\n ]);\r\n private readonly crossCountryFloodlightUntilFormControl = new FormControl(null);\r\n private readonly crossCountryTracksWithFloodlightLengthMeterTodayFormControl = new FormControl('', [\r\n Validators.min(0),\r\n Validators.max(1000000),\r\n Validators.pattern(/^\\d+$/),\r\n ]);\r\n private readonly slopesFloodlightUntilFormControl = new FormControl(null);\r\n private readonly slopesWithFloodlightLengthMeterTodayFormControl = new FormControl('', [\r\n Validators.min(0),\r\n Validators.max(1000000),\r\n Validators.pattern(/^\\d+$/),\r\n ]);\r\n private readonly snowparkFloodlightUntilFormControl = new FormControl(null);\r\n\r\n readonly slopeConditions: Array<{ value: number; translationString: string }> = [\r\n { value: 801, translationString: 'stnet.phrase.condition.good' },\r\n { value: 802, translationString: 'stnet.phrase.condition.goodFair' },\r\n { value: 803, translationString: 'stnet.phrase.condition.fairGood' },\r\n { value: 804, translationString: 'stnet.phrase.condition.fair' },\r\n { value: 805, translationString: 'stnet.phrase.condition.closed' },\r\n { value: 806, translationString: 'stnet.phrase.condition.eos' },\r\n { value: 808, translationString: 'stnet.phrase.condition.satAndSunOnly' },\r\n ];\r\n\r\n readonly snowHeightMeasurementMethods: Array<{\r\n value: number;\r\n translationString: string;\r\n }> = [\r\n { value: 0, translationString: 'stnet.phrase.snowHeightMeasurementMethod.noInfo' },\r\n { value: 1, translationString: 'stnet.phrase.snowHeightMeasurementMethod.measuringField' },\r\n { value: 2, translationString: 'stnet.phrase.snowHeightMeasurementMethod.slf' },\r\n { value: 3, translationString: 'stnet.phrase.snowHeightMeasurementMethod.estimated' },\r\n ];\r\n\r\n readonly valleyRunConditions: Array<{ value: number; translationString: string }> = [\r\n { value: 701, translationString: 'stnet.phrase.condition.good' },\r\n { value: 702, translationString: 'stnet.phrase.condition.fair' },\r\n { value: 703, translationString: 'stnet.phrase.condition.closed' },\r\n ];\r\n\r\n readonly snowConditions: Array<{ value: number; translationString: string }> = [\r\n { value: 900, translationString: 'stnet.phrase.condition.noInfo' },\r\n { value: 901, translationString: 'stnet.phrase.condition.powder' },\r\n { value: 905, translationString: 'stnet.phrase.condition.hard' },\r\n { value: 909, translationString: 'stnet.phrase.condition.sulz' },\r\n { value: 913, translationString: 'stnet.phrase.condition.wet' },\r\n ];\r\n\r\n readonly trailConditions: Array<{ value: number; translationString: string }> = [\r\n { value: 1201, translationString: 'stnet.phrase.condition.good' },\r\n { value: 1202, translationString: 'stnet.phrase.condition.accessible' },\r\n { value: 1203, translationString: 'stnet.phrase.condition.closed' },\r\n { value: 1204, translationString: 'stnet.phrase.condition.eos' },\r\n ];\r\n\r\n readonly snowparkConditions: Array<{ value: number; translationString: string }> = [\r\n { value: 1100, translationString: 'stnet.phrase.condition.prepared' },\r\n { value: 1101, translationString: 'stnet.phrase.condition.closed' },\r\n { value: 1102, translationString: 'stnet.phrase.condition.eos' },\r\n { value: 1104, translationString: 'stnet.phrase.condition.open' },\r\n { value: 1105, translationString: 'stnet.phrase.condition.notPrepared' },\r\n ];\r\n\r\n readonly tobogganRunSkills: Array<{ value: number; translationString: string }> = [\r\n { value: 1007, translationString: 'stnet.phrase.skills.noInfo' },\r\n { value: 1000, translationString: 'stnet.phrase.skills.novice' },\r\n { value: 1001, translationString: 'stnet.phrase.skills.noviceAndIntermediate' },\r\n { value: 1002, translationString: 'stnet.phrase.skills.noviceAndAdvanced' },\r\n { value: 1003, translationString: 'stnet.phrase.skills.intermediate' },\r\n { value: 1004, translationString: 'stnet.phrase.skills.intermediateAndAdvanced' },\r\n { value: 1005, translationString: 'stnet.phrase.skills.advanced' },\r\n ];\r\n\r\n @Input() stnetItem: STnetItem;\r\n @Input() stnetDisplayedItem: STnetItem;\r\n @Input() calculatedData: STnetCalculatedData;\r\n @Output() formDataValid: EventEmitter = new EventEmitter();\r\n @Output() formDataModified: EventEmitter = new EventEmitter();\r\n\r\n writePermission: boolean;\r\n bigScreenMode: boolean;\r\n formGroup: FormGroup;\r\n formControls: {\r\n [key: string]: AbstractControl;\r\n };\r\n rerender: boolean = false;\r\n iconPath: string;\r\n nightLightEnabled: boolean;\r\n sisMediaSetting: SisMediaSetting;\r\n\r\n constructor(\r\n private destinationService: DestinationService,\r\n private screenSizeService: ScreenSizeService,\r\n private translateService: TranslateService,\r\n private sisMediaSettingService: SisMediaSettingService\r\n ) {\r\n super();\r\n }\r\n\r\n ngOnInit() {\r\n this.iconPath = `${environment.baseUrlCockpitBlobStorage}/public-assets/icons/sismedia/`;\r\n\r\n this.screenSizeService.bigScreenMode$\r\n .pipe(takeUntil(this.onDestroy$))\r\n .subscribe((screenMode) => (this.bigScreenMode = screenMode));\r\n\r\n this.sisMediaSettingService.sisMediaSetting$\r\n .pipe(takeUntil(this.onDestroy$))\r\n .subscribe((sisMediaSetting) => (this.sisMediaSetting = sisMediaSetting));\r\n\r\n this.nightLightEnabled =\r\n this.calculatedData.slopesTotal > 0 ||\r\n this.calculatedData.classicTracksLengthMeterTotal > 0 ||\r\n this.calculatedData.skatingTracksLengthMeterTotal > 0 ||\r\n this.calculatedData.halfpipesTotal > 0 ||\r\n this.calculatedData.snowcrossTracksTotal > 0 ||\r\n this.calculatedData.snowparksTotal > 0 ||\r\n this.calculatedData.airboardSlopesTotal > 0 ||\r\n this.calculatedData.snowtubeTracksTotal > 0 ||\r\n this.calculatedData.tobogganRunsTotal > 0;\r\n\r\n this.formGroup = new FormGroup(\r\n {\r\n // snow\r\n snowConditionMainId: new FormControl(),\r\n snowConditionPartialId: new FormControl(),\r\n // slope\r\n slopeConditionId: new FormControl(),\r\n slopesSnowedLengthMeterToday: new FormControl('', [\r\n Validators.min(0),\r\n Validators.max(1000000),\r\n Validators.pattern(/^\\d*$/),\r\n ]),\r\n snowHeightMeasurementMethodId: new FormControl(),\r\n // valley run\r\n valleyRunMainConditionId: new FormControl(),\r\n valleyRunPartialConditionId: new FormControl(),\r\n valleyRunLowestAltitudeToday: new FormControl('', [\r\n Validators.min(0),\r\n Validators.max(5000),\r\n Validators.pattern(/^\\d*$/),\r\n ]),\r\n // cross country\r\n classicTrackConditionId: new FormControl(),\r\n skatingTrackConditionId: new FormControl(),\r\n crossCountryTracksLowestAltitudeToday: new FormControl('', [\r\n Validators.min(0),\r\n Validators.max(5000),\r\n Validators.pattern(/^\\d*$/),\r\n ]),\r\n crossCountryTracksHighestAltitudeToday: new FormControl('', [\r\n Validators.min(0),\r\n Validators.max(5000),\r\n Validators.pattern(/^\\d*$/),\r\n ]),\r\n // snow park\r\n snowparkConditionId: new FormControl(),\r\n // toboggan\r\n tobogganRunConditionId: new FormControl(),\r\n tobogganRunSkillTypeId: new FormControl(),\r\n // winter hiking\r\n winterHikingTrailConditionId: new FormControl(),\r\n winterHikingTrailsLowestAltitudeTotal: new FormControl('', [\r\n Validators.min(0),\r\n Validators.max(5000),\r\n Validators.pattern(/^\\d*$/),\r\n ]),\r\n // flood lighting\r\n slopesFloodlightEnabled: new FormControl(),\r\n slopesFloodlightUntil: this.slopesFloodlightUntilFormControl,\r\n slopesWithFloodlightLengthMeterToday: this.slopesWithFloodlightLengthMeterTodayFormControl,\r\n crossCountryFloodlightEnabled: new FormControl(),\r\n crossCountryFloodlightUntil: this.crossCountryFloodlightUntilFormControl,\r\n crossCountryTracksWithFloodlightLengthMeterToday:\r\n this.crossCountryTracksWithFloodlightLengthMeterTodayFormControl,\r\n snowparkFloodlightEnabled: new FormControl(),\r\n snowparkFloodlightUntil: this.snowparkFloodlightUntilFormControl,\r\n tobogganFloodlightEnabled: new FormControl(),\r\n tobogganRunsWithFloodlightLengthMeterToday: this.tobogganRunsWithFloodlightLengthMeterTodayFormControl,\r\n },\r\n {\r\n validators: [this.validateCrossCountryTracksAltitudeToday()],\r\n }\r\n );\r\n\r\n this.destinationService.selectedTenantFeatures$.pipe(takeUntil(this.onDestroy$)).subscribe((features) => {\r\n this.writePermission = features.some((f) =>\r\n f.hasMinimumRequirementFor(new Feature(FeatureId.SISMEDIA_STNET, FeatureAccessLevel.WRITE))\r\n );\r\n\r\n if (this.writePermission) {\r\n this.formGroup.enable();\r\n } else {\r\n this.formGroup.disable();\r\n }\r\n\r\n if (this.stnetDisplayedItem) {\r\n this.setValues(this.stnetDisplayedItem);\r\n }\r\n });\r\n\r\n this.formControls = this.formGroup.controls;\r\n\r\n this.formGroup.valueChanges.pipe(takeUntil(this.onDestroy$)).subscribe(() => {\r\n const changedSTnetItem: STnetItem = this.formGroup.getRawValue();\r\n if (this.stnetDisplayedItem) {\r\n // snow\r\n this.stnetDisplayedItem.snowConditionMainId = changedSTnetItem.snowConditionMainId;\r\n this.stnetDisplayedItem.snowConditionPartialId = changedSTnetItem.snowConditionPartialId;\r\n // slope\r\n this.stnetDisplayedItem.slopeConditionId = changedSTnetItem.slopeConditionId;\r\n this.stnetDisplayedItem.slopesSnowedLengthMeterToday = this.getNumberOrNull(\r\n changedSTnetItem.slopesSnowedLengthMeterToday\r\n );\r\n this.stnetDisplayedItem.snowHeightMeasurementMethodId = changedSTnetItem.snowHeightMeasurementMethodId;\r\n // valley run\r\n this.stnetDisplayedItem.valleyRunMainConditionId = changedSTnetItem.valleyRunMainConditionId;\r\n this.stnetDisplayedItem.valleyRunPartialConditionId = changedSTnetItem.valleyRunPartialConditionId;\r\n this.stnetDisplayedItem.valleyRunLowestAltitudeToday = this.getNumberOrNull(\r\n changedSTnetItem.valleyRunLowestAltitudeToday\r\n );\r\n // cross country\r\n this.stnetDisplayedItem.classicTrackConditionId = changedSTnetItem.classicTrackConditionId;\r\n this.stnetDisplayedItem.skatingTrackConditionId = changedSTnetItem.skatingTrackConditionId;\r\n this.stnetDisplayedItem.crossCountryTracksLowestAltitudeToday = this.getNumberOrNull(\r\n changedSTnetItem.crossCountryTracksLowestAltitudeToday\r\n );\r\n this.stnetDisplayedItem.crossCountryTracksHighestAltitudeToday = this.getNumberOrNull(\r\n changedSTnetItem.crossCountryTracksHighestAltitudeToday\r\n );\r\n // snow park\r\n this.stnetDisplayedItem.snowparkConditionId = changedSTnetItem.snowparkConditionId;\r\n // toboggan\r\n this.stnetDisplayedItem.tobogganRunConditionId = changedSTnetItem.tobogganRunConditionId;\r\n this.stnetDisplayedItem.tobogganRunSkillTypeId = changedSTnetItem.tobogganRunSkillTypeId;\r\n // winter hiking\r\n this.stnetDisplayedItem.winterHikingTrailConditionId = changedSTnetItem.winterHikingTrailConditionId;\r\n this.stnetDisplayedItem.winterHikingTrailsLowestAltitudeTotal = this.getNumberOrNull(\r\n changedSTnetItem.winterHikingTrailsLowestAltitudeTotal\r\n );\r\n // flood light\r\n this.stnetDisplayedItem.slopesFloodlightEnabled = changedSTnetItem.slopesFloodlightEnabled;\r\n this.stnetDisplayedItem.slopesFloodlightUntil = changedSTnetItem.slopesFloodlightUntil ?? null;\r\n this.stnetDisplayedItem.slopesWithFloodlightLengthMeterToday = this.getNumberOrNull(\r\n changedSTnetItem.slopesWithFloodlightLengthMeterToday\r\n );\r\n this.stnetDisplayedItem.crossCountryFloodlightEnabled = changedSTnetItem.crossCountryFloodlightEnabled;\r\n this.stnetDisplayedItem.crossCountryFloodlightUntil = changedSTnetItem.crossCountryFloodlightUntil ?? null;\r\n this.stnetDisplayedItem.crossCountryTracksWithFloodlightLengthMeterToday = this.getNumberOrNull(\r\n changedSTnetItem.crossCountryTracksWithFloodlightLengthMeterToday\r\n );\r\n this.stnetDisplayedItem.snowparkFloodlightEnabled = changedSTnetItem.snowparkFloodlightEnabled;\r\n this.stnetDisplayedItem.snowparkFloodlightUntil = changedSTnetItem.snowparkFloodlightUntil ?? null;\r\n this.stnetDisplayedItem.tobogganFloodlightEnabled = changedSTnetItem.tobogganFloodlightEnabled;\r\n this.stnetDisplayedItem.tobogganRunsWithFloodlightLengthMeterToday = this.getNumberOrNull(\r\n changedSTnetItem.tobogganRunsWithFloodlightLengthMeterToday\r\n );\r\n\r\n this.formDataValid.emit(this.formGroup.valid);\r\n this.formDataModified.emit(!this.stNetItemsEquals(this.stnetItem, this.stnetDisplayedItem));\r\n }\r\n });\r\n\r\n this.translateService.onLangChange.pipe(takeUntil(this.onDestroy$)).subscribe(() => {\r\n this.rerender = true;\r\n setTimeout(() => {\r\n this.rerender = false;\r\n }, 50);\r\n });\r\n }\r\n\r\n ngOnChanges(): void {\r\n if (this.stnetDisplayedItem) {\r\n this.setValues(this.stnetDisplayedItem);\r\n }\r\n }\r\n\r\n validateCrossCountryTracksAltitudeToday(): ValidatorFn {\r\n return (control: AbstractControl): ValidationErrors | null => {\r\n const fromControl = control.get('crossCountryTracksLowestAltitudeToday');\r\n const toControl = control.get('crossCountryTracksHighestAltitudeToday');\r\n\r\n const from = Number.parseInt(fromControl.value);\r\n const to = Number.parseInt(toControl.value);\r\n\r\n return !isNaN(from) && !isNaN(to) && from >= to ? { crossCountryTracksAltitudeToday: true } : null;\r\n };\r\n }\r\n\r\n private setValues(stnetItem: STnetItem): void {\r\n this.formGroup?.setValue(\r\n {\r\n // snow\r\n snowConditionMainId: stnetItem.snowConditionMainId,\r\n snowConditionPartialId: stnetItem.snowConditionPartialId,\r\n // slope\r\n slopeConditionId: stnetItem.slopeConditionId,\r\n slopesSnowedLengthMeterToday: stnetItem.slopesSnowedLengthMeterToday,\r\n snowHeightMeasurementMethodId: stnetItem.snowHeightMeasurementMethodId,\r\n // valley run\r\n valleyRunMainConditionId: stnetItem.valleyRunMainConditionId,\r\n valleyRunPartialConditionId: stnetItem.valleyRunPartialConditionId,\r\n valleyRunLowestAltitudeToday: stnetItem.valleyRunLowestAltitudeToday,\r\n // cross country\r\n classicTrackConditionId: stnetItem.classicTrackConditionId,\r\n skatingTrackConditionId: stnetItem.skatingTrackConditionId,\r\n crossCountryTracksLowestAltitudeToday: stnetItem.crossCountryTracksLowestAltitudeToday,\r\n crossCountryTracksHighestAltitudeToday: stnetItem.crossCountryTracksHighestAltitudeToday,\r\n // snow park\r\n snowparkConditionId: stnetItem.snowparkConditionId,\r\n // toboggan\r\n tobogganRunConditionId: stnetItem.tobogganRunConditionId,\r\n tobogganRunSkillTypeId: stnetItem.tobogganRunSkillTypeId,\r\n // winter hiking\r\n winterHikingTrailConditionId: stnetItem.winterHikingTrailConditionId,\r\n winterHikingTrailsLowestAltitudeTotal: stnetItem.winterHikingTrailsLowestAltitudeTotal,\r\n // flood light\r\n slopesFloodlightEnabled: stnetItem.slopesFloodlightEnabled,\r\n slopesFloodlightUntil: stnetItem.slopesFloodlightUntil ?? null,\r\n slopesWithFloodlightLengthMeterToday: stnetItem.slopesWithFloodlightLengthMeterToday,\r\n crossCountryFloodlightEnabled: stnetItem.crossCountryFloodlightEnabled,\r\n crossCountryFloodlightUntil: stnetItem.crossCountryFloodlightUntil ?? null,\r\n crossCountryTracksWithFloodlightLengthMeterToday: stnetItem.crossCountryTracksWithFloodlightLengthMeterToday,\r\n snowparkFloodlightEnabled: stnetItem.snowparkFloodlightEnabled,\r\n snowparkFloodlightUntil: stnetItem.snowparkFloodlightUntil ?? null,\r\n tobogganFloodlightEnabled: stnetItem.tobogganFloodlightEnabled,\r\n tobogganRunsWithFloodlightLengthMeterToday: stnetItem.tobogganRunsWithFloodlightLengthMeterToday,\r\n },\r\n { emitEvent: false }\r\n );\r\n\r\n this.tobogganFloodlightEnabled(stnetItem.tobogganFloodlightEnabled);\r\n this.crossCountryFloodlightEnabled(stnetItem.crossCountryFloodlightEnabled);\r\n this.slopesFloodlightEnabled(stnetItem.slopesFloodlightEnabled);\r\n this.snowparkFloodlightEnabled(stnetItem.snowparkFloodlightEnabled);\r\n }\r\n\r\n crossCountryFloodlightEnabled(enabled: boolean) {\r\n if (enabled && this.writePermission) {\r\n this.crossCountryTracksWithFloodlightLengthMeterTodayFormControl.enable();\r\n this.crossCountryFloodlightUntilFormControl.enable();\r\n } else {\r\n this.crossCountryTracksWithFloodlightLengthMeterTodayFormControl.disable();\r\n this.crossCountryFloodlightUntilFormControl.disable();\r\n }\r\n }\r\n\r\n tobogganFloodlightEnabled(enabled: boolean) {\r\n if (enabled && this.writePermission) {\r\n this.tobogganRunsWithFloodlightLengthMeterTodayFormControl.enable();\r\n } else {\r\n this.tobogganRunsWithFloodlightLengthMeterTodayFormControl.disable();\r\n }\r\n }\r\n\r\n slopesFloodlightEnabled(enabled: boolean) {\r\n if (enabled && this.writePermission) {\r\n this.slopesFloodlightUntilFormControl.enable();\r\n this.slopesWithFloodlightLengthMeterTodayFormControl.enable();\r\n } else {\r\n this.slopesFloodlightUntilFormControl.disable();\r\n this.slopesWithFloodlightLengthMeterTodayFormControl.disable();\r\n }\r\n }\r\n\r\n snowparkFloodlightEnabled(enabled: boolean) {\r\n if (enabled && this.writePermission) {\r\n this.snowparkFloodlightUntilFormControl.enable();\r\n } else {\r\n this.snowparkFloodlightUntilFormControl.disable();\r\n }\r\n }\r\n\r\n private getNumberOrNull(item: string | number): number {\r\n if (item == null) {\r\n return null;\r\n }\r\n\r\n if (typeof item === 'number') {\r\n return item;\r\n }\r\n\r\n if (!item?.match(/^\\d+$/)) {\r\n return NaN;\r\n }\r\n\r\n return Number.parseInt(item);\r\n }\r\n\r\n private stNetItemsEquals(item: STnetItem, otherItem: STnetItem): boolean {\r\n return (\r\n // snow\r\n item.snowConditionMainId === otherItem.snowConditionMainId &&\r\n item.snowConditionPartialId === otherItem.snowConditionPartialId &&\r\n // slope\r\n item.slopeConditionId === otherItem.slopeConditionId &&\r\n item.slopesSnowedLengthMeterToday === otherItem.slopesSnowedLengthMeterToday &&\r\n item.snowHeightMeasurementMethodId === otherItem.snowHeightMeasurementMethodId &&\r\n // valley run\r\n item.valleyRunMainConditionId === otherItem.valleyRunMainConditionId &&\r\n item.valleyRunPartialConditionId === otherItem.valleyRunPartialConditionId &&\r\n item.valleyRunLowestAltitudeToday === otherItem.valleyRunLowestAltitudeToday &&\r\n // cross country\r\n item.classicTrackConditionId === otherItem.classicTrackConditionId &&\r\n item.skatingTrackConditionId === otherItem.skatingTrackConditionId &&\r\n item.crossCountryTracksLowestAltitudeToday === otherItem.crossCountryTracksLowestAltitudeToday &&\r\n item.crossCountryTracksHighestAltitudeToday === otherItem.crossCountryTracksHighestAltitudeToday &&\r\n // snow park\r\n item.snowparkConditionId === otherItem.snowparkConditionId &&\r\n // toboggan\r\n item.tobogganRunConditionId === otherItem.tobogganRunConditionId &&\r\n item.tobogganRunSkillTypeId === otherItem.tobogganRunSkillTypeId &&\r\n // winter hiking\r\n item.winterHikingTrailConditionId === otherItem.winterHikingTrailConditionId &&\r\n item.winterHikingTrailsLowestAltitudeTotal === otherItem.winterHikingTrailsLowestAltitudeTotal &&\r\n // flood light\r\n item.slopesFloodlightEnabled === otherItem.slopesFloodlightEnabled &&\r\n item.slopesFloodlightUntil === otherItem.slopesFloodlightUntil &&\r\n item.slopesWithFloodlightLengthMeterToday === otherItem.slopesWithFloodlightLengthMeterToday &&\r\n item.crossCountryFloodlightEnabled === otherItem.crossCountryFloodlightEnabled &&\r\n item.crossCountryFloodlightUntil === otherItem.crossCountryFloodlightUntil &&\r\n item.crossCountryTracksWithFloodlightLengthMeterToday ===\r\n otherItem.crossCountryTracksWithFloodlightLengthMeterToday &&\r\n item.snowparkFloodlightEnabled === otherItem.snowparkFloodlightEnabled &&\r\n item.snowparkFloodlightUntil === otherItem.snowparkFloodlightUntil &&\r\n item.tobogganFloodlightEnabled === otherItem.tobogganFloodlightEnabled &&\r\n item.tobogganRunsWithFloodlightLengthMeterToday === otherItem.tobogganRunsWithFloodlightLengthMeterToday\r\n );\r\n }\r\n}\r\n","\r\n\r\n \r\n \r\n
\r\n \r\n \r\n \r\n {{ 'stnet.term.snowReport' | translate }}\r\n \r\n\r\n \r\n \r\n {{ 'stnet.term.snowType' | translate }}\r\n \r\n \r\n {{\r\n item.translationString | translate\r\n }}\r\n \r\n \r\n \r\n \r\n {{ 'stnet.term.snowTypePartial' | translate }}\r\n \r\n \r\n {{\r\n item.translationString | translate\r\n }}\r\n \r\n \r\n \r\n \r\n\r\n \r\n \r\n \r\n {{ 'general.term.lifts' | translate }}\r\n \r\n\r\n \r\n \r\n {{ 'stnet.term.winterSeason' | translate\r\n }}\r\n \r\n
\r\n {{ 'general.term.fromDate' | translate }}\r\n
\r\n
\r\n \r\n
\r\n {{ this.sisMediaSetting.winterSeasonStartDate | dateFormat }}\r\n
\r\n
\r\n\r\n \r\n
\r\n {{ 'general.term.toDate' | translate }}\r\n
\r\n
\r\n \r\n
\r\n {{ this.sisMediaSetting.winterSeasonEndDate | dateFormat }}\r\n
\r\n
\r\n
\r\n\r\n \r\n \r\n {{ 'stnet.term.operatingTimes' | translate\r\n }}\r\n \r\n
\r\n {{ 'general.term.fromTime' | translate }}\r\n
\r\n
\r\n \r\n
\r\n {{ this.sisMediaSetting.liftsOpenFrom }}\r\n
\r\n
\r\n \r\n
\r\n {{ 'general.term.toTimeOnly' | translate }}\r\n
\r\n
\r\n \r\n
\r\n {{ this.sisMediaSetting.liftsOpenTo }}\r\n
\r\n
\r\n
\r\n\r\n \r\n 0\">\r\n \r\n \r\n {{ 'general.term.slopes' | translate }}\r\n \r\n\r\n \r\n \r\n {{ 'stnet.term.slopeCondition' | translate }}\r\n \r\n \r\n {{ item.translationString | translate }}\r\n \r\n \r\n \r\n \r\n {{ 'stnet.term.artificiallySnowed' | translate }}\r\n \r\n \r\n
\r\n {{ 'stnet.term.meter' | translate }}\r\n
\r\n
\r\n
\r\n\r\n \r\n \r\n {{\r\n 'stnet.term.snowHeightMeasurementMethod' | translate\r\n }}\r\n \r\n \r\n {{ item.translationString | translate }}\r\n \r\n \r\n \r\n
\r\n\r\n \r\n 0\">\r\n \r\n \r\n {{ 'stnet.term.valleyRun' | translate }}\r\n \r\n\r\n \r\n \r\n {{\r\n 'stnet.term.valleyRunMainCondition' | translate\r\n }}\r\n \r\n \r\n {{\r\n item.translationString | translate\r\n }}\r\n \r\n \r\n \r\n {{\r\n 'stnet.term.valleyRunPartialCondition' | translate\r\n }}\r\n \r\n \r\n {{\r\n item.translationString | translate\r\n }}\r\n \r\n \r\n \r\n \r\n\r\n \r\n \r\n {{ 'stnet.term.valleyRunTo' | translate }}\r\n \r\n \r\n
\r\n {{ 'general.term.masl' | translate }}\r\n
\r\n
\r\n \r\n
\r\n
\r\n\r\n \r\n 0 ||\r\n this.calculatedData.skatingTracksLengthMeterTotal > 0\r\n \"\r\n >\r\n \r\n \r\n {{ 'stnet.term.crossCountry' | translate }}\r\n \r\n\r\n \r\n \r\n 0\">\r\n {{\r\n 'stnet.term.crossCountryClassicCondition' | translate\r\n }}\r\n \r\n \r\n {{\r\n item.translationString | translate\r\n }}\r\n \r\n \r\n \r\n \r\n\r\n \r\n 0\">\r\n {{\r\n 'stnet.term.crossCountrySkatingCondition' | translate\r\n }}\r\n \r\n \r\n {{\r\n item.translationString | translate\r\n }}\r\n \r\n \r\n \r\n \r\n \r\n\r\n \r\n \r\n {{\r\n 'stnet.term.altitudeCrossCountryNet' | translate\r\n }}\r\n \r\n
\r\n {{ 'general.term.fromDate' | translate }}\r\n
\r\n
\r\n \r\n \r\n \r\n
\r\n {{ 'general.term.toDate' | translate }}\r\n
\r\n
\r\n \r\n \r\n
\r\n {{ 'general.term.masl' | translate }}\r\n
\r\n
\r\n
\r\n \r\n\r\n \r\n 0 ||\r\n this.calculatedData.snowcrossTracksTotal > 0 ||\r\n this.calculatedData.snowparksTotal > 0 ||\r\n this.calculatedData.snowtubeTracksTotal > 0 ||\r\n this.calculatedData.airboardSlopesTotal > 0\r\n \"\r\n >\r\n \r\n \r\n {{ 'stnet.term.snowpark' | translate\r\n }}\r\n \r\n\r\n \r\n \r\n {{ 'stnet.term.snowparkCondition' | translate }}\r\n \r\n \r\n {{\r\n item.translationString | translate\r\n }}\r\n \r\n \r\n \r\n \r\n \r\n\r\n \r\n 0\">\r\n \r\n \r\n {{ 'stnet.term.tobogganRun' | translate }}\r\n \r\n\r\n \r\n \r\n {{ 'stnet.term.tobogganRunCondition' | translate }}\r\n \r\n \r\n {{\r\n item.translationString | translate\r\n }}\r\n \r\n \r\n \r\n \r\n {{ 'stnet.term.tobogganRunSkillType' | translate }}\r\n \r\n \r\n {{\r\n item.translationString | translate\r\n }}\r\n \r\n \r\n \r\n \r\n \r\n\r\n \r\n 0\">\r\n \r\n \r\n {{ 'stnet.term.winterHiking' | translate }}\r\n \r\n\r\n \r\n \r\n {{ 'stnet.term.winterHikingCondition' | translate }}\r\n \r\n \r\n {{\r\n item.translationString | translate\r\n }}\r\n \r\n \r\n \r\n \r\n {{ 'stnet.term.winterHikingFrom' | translate }}\r\n \r\n \r\n \r\n \r\n
\r\n {{ 'general.term.masl' | translate }}\r\n
\r\n
\r\n
\r\n
\r\n\r\n \r\n \r\n \r\n \r\n {{ 'stnet.term.nightLighting' | translate }}\r\n \r\n\r\n \r\n \r\n \r\n \r\n \r\n 0\"\r\n data-test=\"floodlight-slopes\"\r\n >\r\n \r\n \r\n \r\n \r\n
\r\n {{ 'general.term.slopes' | translate }}\r\n
\r\n
\r\n \r\n
\r\n {{ 'general.term.toTimeOnly' | translate }}\r\n
\r\n
\r\n \r\n \r\n \r\n \r\n \r\n
\r\n {{ 'general.term.length' | translate }}\r\n
\r\n
\r\n \r\n \r\n \r\n
\r\n {{ 'stnet.term.meter' | translate }}\r\n
\r\n
\r\n
\r\n\r\n \r\n 0 ||\r\n this.calculatedData.skatingTracksLengthMeterTotal > 0\r\n \"\r\n data-test=\"floodlight-cross-country\"\r\n >\r\n \r\n \r\n \r\n \r\n
\r\n {{ 'stnet.term.crossCountry' | translate }}\r\n
\r\n
\r\n \r\n
\r\n {{ 'general.term.toTimeOnly' | translate }}\r\n
\r\n
\r\n \r\n \r\n \r\n \r\n
\r\n {{ 'general.term.length' | translate }}\r\n
\r\n
\r\n \r\n \r\n
\r\n {{ 'stnet.term.meter' | translate }}\r\n
\r\n
\r\n \r\n\r\n \r\n 0 ||\r\n this.calculatedData.snowcrossTracksTotal > 0 ||\r\n this.calculatedData.snowparksTotal > 0 ||\r\n this.calculatedData.airboardSlopesTotal > 0 ||\r\n this.calculatedData.snowtubeTracksTotal > 0\r\n \"\r\n data-test=\"floodlight-snowpark\"\r\n >\r\n \r\n \r\n \r\n \r\n
\r\n {{ 'stnet.term.snowpark' | translate }}\r\n
\r\n
\r\n \r\n
\r\n {{ 'general.term.toTimeOnly' | translate }}\r\n
\r\n
\r\n \r\n \r\n \r\n \r\n\r\n \r\n 0\"\r\n data-test=\"floodlight-boboggan\"\r\n >\r\n \r\n \r\n \r\n \r\n
\r\n {{ 'stnet.term.tobogganRun' | translate }}\r\n
\r\n
\r\n \r\n \r\n
\r\n {{ 'general.term.length' | translate }}\r\n
\r\n
\r\n \r\n \r\n \r\n
\r\n {{ 'stnet.term.meter' | translate }}\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 {{ 'stnet.term.snowReport' | translate }}\r\n \r\n\r\n \r\n \r\n {{ 'stnet.term.snowType' | translate }}\r\n \r\n \r\n {{\r\n item.translationString | translate\r\n }}\r\n \r\n \r\n \r\n \r\n \r\n {{ 'stnet.term.snowTypePartial' | translate }}\r\n \r\n \r\n {{\r\n item.translationString | translate\r\n }}\r\n \r\n \r\n \r\n\r\n \r\n \r\n \r\n {{ 'general.term.lifts' | translate }}\r\n \r\n\r\n \r\n {{ 'stnet.term.winterSeason' | translate\r\n }}\r\n \r\n \r\n \r\n {{ 'general.term.fromDate' | translate }}\r\n \r\n \r\n {{ this.sisMediaSetting.winterSeasonFromDate | dateFormat }}\r\n \r\n \r\n \r\n \r\n {{ 'general.term.toDate' | translate }}\r\n \r\n \r\n {{ this.sisMediaSetting.winterSeasonEndDate | dateFormat }}\r\n \r\n \r\n\r\n \r\n \r\n {{ 'stnet.term.operatingTimes' | translate\r\n }}\r\n \r\n \r\n \r\n {{ 'general.term.fromTime' | translate }}\r\n \r\n \r\n {{ this.sisMediaSetting.liftsOpenFrom }}\r\n \r\n \r\n \r\n \r\n {{ 'general.term.toTimeOnly' | translate }}\r\n \r\n \r\n {{ this.sisMediaSetting.liftsOpenTo }}\r\n \r\n \r\n\r\n \r\n \r\n \r\n {{ 'general.term.slopes' | translate }}\r\n \r\n\r\n \r\n 0\">\r\n \r\n {{ 'stnet.term.slopeCondition' | translate }}\r\n \r\n \r\n {{\r\n item.translationString | translate\r\n }}\r\n \r\n \r\n \r\n \r\n \r\n {{ 'stnet.term.artificiallySnowed' | translate }}\r\n \r\n \r\n
\r\n {{ 'stnet.term.meter' | translate }}\r\n
\r\n
\r\n
\r\n \r\n \r\n {{\r\n 'stnet.term.snowHeightMeasurementMethod' | translate\r\n }}\r\n \r\n \r\n {{\r\n item.translationString | translate\r\n }}\r\n \r\n \r\n \r\n
\r\n\r\n \r\n 0\">\r\n \r\n \r\n {{ 'stnet.term.valleyRun' | translate }}\r\n \r\n\r\n \r\n \r\n {{ 'stnet.term.valleyRunMainCondition' | translate }}\r\n \r\n \r\n {{\r\n item.translationString | translate\r\n }}\r\n \r\n \r\n \r\n \r\n {{\r\n 'stnet.term.valleyRunPartialCondition' | translate\r\n }}\r\n \r\n \r\n {{\r\n item.translationString | translate\r\n }}\r\n \r\n \r\n \r\n \r\n \r\n {{ 'stnet.term.valleyRunTo' | translate }}\r\n \r\n \r\n
\r\n {{ 'general.term.masl' | translate }}\r\n
\r\n
\r\n
\r\n
\r\n\r\n \r\n 0 ||\r\n this.calculatedData.skatingTracksLengthMeterTotal > 0\r\n \"\r\n >\r\n \r\n \r\n {{ 'stnet.term.crossCountry' | translate }}\r\n \r\n\r\n \r\n 0\">\r\n {{\r\n 'stnet.term.crossCountryClassicCondition' | translate\r\n }}\r\n \r\n \r\n {{\r\n item.translationString | translate\r\n }}\r\n \r\n \r\n \r\n\r\n \r\n 0\">\r\n {{\r\n 'stnet.term.crossCountrySkatingCondition' | translate\r\n }}\r\n \r\n \r\n {{\r\n item.translationString | translate\r\n }}\r\n \r\n \r\n \r\n \r\n \r\n {{ 'stnet.term.altitudeCrossCountryNet' | translate }}\r\n \r\n \r\n \r\n
\r\n {{ 'general.term.fromDate' | translate }}\r\n
\r\n
\r\n \r\n \r\n
\r\n {{ 'general.term.toDate' | translate }}\r\n
\r\n
\r\n \r\n \r\n
\r\n {{ 'general.term.masl' | translate }}\r\n
\r\n
\r\n
\r\n \r\n\r\n \r\n 0 ||\r\n this.calculatedData.snowcrossTracksTotal > 0 ||\r\n this.calculatedData.snowparksTotal > 0 ||\r\n this.calculatedData.snowtubeTracksTotal > 0 ||\r\n this.calculatedData.airboardSlopesTotal > 0\r\n \"\r\n >\r\n \r\n \r\n {{ 'stnet.term.snowpark' | translate\r\n }}\r\n \r\n\r\n \r\n \r\n {{ 'stnet.term.snowparkCondition' | translate }}\r\n \r\n \r\n {{\r\n item.translationString | translate\r\n }}\r\n \r\n \r\n \r\n \r\n\r\n \r\n 0\">\r\n \r\n \r\n {{ 'stnet.term.tobogganRun' | translate }}\r\n \r\n\r\n \r\n \r\n {{ 'stnet.term.tobogganRunCondition' | translate }}\r\n \r\n \r\n {{\r\n item.translationString | translate\r\n }}\r\n \r\n \r\n \r\n \r\n \r\n {{ 'stnet.term.tobogganRunSkillType' | translate }}\r\n \r\n \r\n {{\r\n item.translationString | translate\r\n }}\r\n \r\n \r\n \r\n \r\n\r\n \r\n 0\">\r\n \r\n \r\n {{ 'stnet.term.winterHiking' | translate }}\r\n \r\n\r\n \r\n \r\n {{ 'stnet.term.winterHikingCondition' | translate }}\r\n \r\n \r\n {{\r\n item.translationString | translate\r\n }}\r\n \r\n \r\n \r\n \r\n \r\n {{ 'stnet.term.winterHikingFrom' | translate }}\r\n \r\n \r\n \r\n
\r\n {{ 'general.term.masl' | translate }}\r\n
\r\n
\r\n
\r\n
\r\n\r\n \r\n \r\n \r\n \r\n {{ 'stnet.term.nightLighting' | translate }}\r\n \r\n\r\n \r\n 0\">\r\n \r\n \r\n \r\n \r\n \r\n
\r\n {{ 'general.term.slopes' | translate }}\r\n
\r\n
\r\n
\r\n \r\n \r\n \r\n
\r\n {{ 'general.term.toTimeOnly' | translate }}\r\n
\r\n
\r\n \r\n \r\n \r\n
\r\n \r\n \r\n \r\n
\r\n {{ 'general.term.length' | translate }}\r\n
\r\n
\r\n \r\n \r\n \r\n
\r\n {{ 'stnet.term.meter' | translate }}\r\n
\r\n
\r\n
\r\n\r\n \r\n
\r\n\r\n \r\n 0 ||\r\n this.calculatedData.skatingTracksLengthMeterTotal > 0\r\n \"\r\n >\r\n \r\n \r\n \r\n \r\n \r\n
\r\n {{ 'stnet.term.crossCountry' | translate }}\r\n
\r\n
\r\n
\r\n \r\n \r\n \r\n
\r\n {{ 'general.term.toTimeOnly' | translate }}\r\n
\r\n
\r\n \r\n \r\n \r\n
\r\n \r\n \r\n \r\n
\r\n {{ 'general.term.length' | translate }}\r\n
\r\n
\r\n \r\n \r\n \r\n
\r\n {{ 'stnet.term.meter' | translate }}\r\n
\r\n
\r\n
\r\n\r\n \r\n
\r\n\r\n \r\n 0 ||\r\n this.calculatedData.snowcrossTracksTotal > 0 ||\r\n this.calculatedData.snowparksTotal > 0 ||\r\n this.calculatedData.snowtubeTracksTotal > 0 ||\r\n this.calculatedData.airboardSlopesTotal > 0\r\n \"\r\n >\r\n \r\n \r\n \r\n \r\n {{ 'stnet.term.snowpark' | translate }}\r\n \r\n \r\n \r\n \r\n
\r\n {{ 'general.term.toTimeOnly' | translate }}\r\n
\r\n
\r\n \r\n \r\n \r\n
\r\n\r\n \r\n \r\n\r\n \r\n 0\">\r\n \r\n \r\n \r\n \r\n {{ 'stnet.term.tobogganRun' | translate }}\r\n \r\n \r\n \r\n \r\n
\r\n {{ 'general.term.length' | translate }}\r\n
\r\n
\r\n \r\n \r\n \r\n
\r\n {{ 'stnet.term.meter' | translate }}\r\n
\r\n
\r\n
\r\n
\r\n \r\n \r\n
\r\n
\r\n
\r\n","import { CommonModule } from '@angular/common';\r\nimport { NgModule } from '@angular/core';\r\nimport { FormsModule, ReactiveFormsModule } from '@angular/forms';\r\nimport { MatTooltipModule } from '@angular/material/tooltip';\r\nimport { RouterModule } from '@angular/router';\r\nimport { IonicModule } from '@ionic/angular';\r\nimport { TranslateModule } from '@ngx-translate/core';\r\nimport { CoreModule } from 'src/app/core/core.module';\r\nimport { STnetPage } from 'src/app/stnet/stnet.page';\r\nimport { STnetCalculatedComponent } from 'src/app/stnet/stnet-calculated/stnet-calculated.component';\r\nimport { STnetCalculatedItemComponent } from 'src/app/stnet/stnet-calculated/stnet-calculated-item/stnet-calculated-item.component';\r\nimport { STnetEditableComponent } from 'src/app/stnet/stnet-editable/stnet-editable.component';\r\n\r\n@NgModule({\r\n imports: [\r\n CommonModule,\r\n IonicModule,\r\n FormsModule,\r\n ReactiveFormsModule,\r\n CoreModule,\r\n MatTooltipModule,\r\n RouterModule.forChild([\r\n {\r\n path: '',\r\n component: STnetPage,\r\n },\r\n ]),\r\n TranslateModule,\r\n ],\r\n declarations: [STnetPage, STnetCalculatedComponent, STnetCalculatedItemComponent, STnetEditableComponent],\r\n})\r\nexport class STnetPageModule {}\r\n","import { Component, OnInit } from '@angular/core';\r\nimport { takeUntil } from 'rxjs/operators';\r\nimport { STnetStatus } from 'src/app/core/stnet/stnet-status.model';\r\nimport { Unsubscriber } from 'src/app/core/unsubscriber';\r\nimport { ScreenSizeService } from 'src/app/core/utils/screen-size.service';\r\nimport { DestinationService } from 'src/app/domain/destination/destination.service';\r\nimport { Feature } from 'src/app/domain/feature/feature.model';\r\nimport { FeatureAccessLevel } from 'src/app/domain/feature/feature-access-level.model';\r\nimport { FeatureId } from 'src/app/domain/feature/feature-id.model';\r\nimport { STnetCalculatedData } from 'src/app/stnet/domain/stnet-calculated-data.model';\r\nimport { STnetItemAdapter } from 'src/app/stnet/domain/stnet-item.adapter';\r\nimport { STnetItem } from 'src/app/stnet/domain/stnet-item.model';\r\nimport { STnetService } from 'src/app/stnet/stnet.service';\r\n\r\n@Component({\r\n selector: 'sis-stnet-page',\r\n templateUrl: './stnet.page.html',\r\n styleUrls: ['./stnet.page.scss'],\r\n standalone: false\r\n})\r\nexport class STnetPage extends Unsubscriber implements OnInit {\r\n bigScreenMode: boolean;\r\n stnetItem: STnetItem;\r\n stnetDisplayedItem: STnetItem;\r\n writePermission: boolean;\r\n stnetStatusArray: STnetStatus[] = [];\r\n formDataValid: boolean;\r\n formDataModified: boolean;\r\n isSaving: boolean;\r\n\r\n // show only one set of calculated data on the page, even if there are multiple exports (stationIds)\r\n calculatedData: STnetCalculatedData;\r\n\r\n constructor(\r\n private destinationService: DestinationService,\r\n private stnetService: STnetService,\r\n private screenSizeService: ScreenSizeService\r\n ) {\r\n super();\r\n }\r\n\r\n ngOnInit() {\r\n this.screenSizeService.bigScreenMode$\r\n .pipe(takeUntil(this.onDestroy$))\r\n .subscribe((screenMode) => (this.bigScreenMode = screenMode));\r\n\r\n this.destinationService.selectedTenantFeatures$.pipe(takeUntil(this.onDestroy$)).subscribe((features) => {\r\n this.writePermission =\r\n features?.some((f) =>\r\n f.hasMinimumRequirementFor(new Feature(FeatureId.SISMEDIA_STNET, FeatureAccessLevel.WRITE))\r\n ) ?? false;\r\n });\r\n\r\n this.stnetService.stnetCalculatedData$.pipe(takeUntil(this.onDestroy$)).subscribe((calculatedData) => {\r\n this.calculatedData = calculatedData;\r\n });\r\n\r\n this.stnetService.stnetStatusArray$.pipe(takeUntil(this.onDestroy$)).subscribe((stnetStatusArray) => {\r\n this.stnetStatusArray = stnetStatusArray;\r\n });\r\n\r\n this.stnetService.stnetItems$.pipe(takeUntil(this.onDestroy$)).subscribe((stnetItem) => {\r\n this.isSaving = false;\r\n this.stnetItem = stnetItem;\r\n this.reset();\r\n });\r\n }\r\n\r\n async save(): Promise {\r\n if (this.writePermission && !this.isSaving) {\r\n this.isSaving = true;\r\n const success = await this.stnetService.saveSTnetItems(this.stnetDisplayedItem);\r\n if (!success) {\r\n this.isSaving = false;\r\n }\r\n }\r\n }\r\n\r\n reset(): void {\r\n if (!this.isSaving) {\r\n this.stnetDisplayedItem = STnetItemAdapter.adapt(JSON.parse(JSON.stringify(this.stnetItem)));\r\n }\r\n }\r\n\r\n async exportSTnetData(): Promise {\r\n if (this.writePermission) {\r\n await this.stnetService.exportSTnetItems();\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 {{ \"general.phrase.lastChange\" | translate }}: {{ this.stnetDisplayedItem.changedByEmail }} ({{\r\n this.stnetDisplayedItem.lastChange | dateTimeFormat }})\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n\r\n \r\n {{ 'stnet.phrase.response' | translate }}:{{ status.statusMessage }}({{status.stationId}})
\r\n snow.myswitzerland.com \r\n \r\n\r\n","import { HttpClient } from '@angular/common/http';\r\nimport { Injectable } from '@angular/core';\r\nimport { firstValueFrom, merge, Observable, of, Subject } from 'rxjs';\r\nimport {\r\n catchError,\r\n distinctUntilChanged,\r\n filter,\r\n map,\r\n shareReplay,\r\n switchMap,\r\n tap,\r\n withLatestFrom,\r\n} from 'rxjs/operators';\r\nimport { EventBusService } from 'src/app/core/eventbus/event-bus.service';\r\nimport { SisMediaStatusUpdatedEvent, STnetStatusUpdatedEvent, STnetUpdatedEvent } from 'src/app/core/eventbus/events';\r\nimport { STnetExportResponse } from 'src/app/core/stnet/stnet-export-response.model';\r\nimport { STnetStatus } from 'src/app/core/stnet/stnet-status.model';\r\nimport { DestinationService } from 'src/app/domain/destination/destination.service';\r\nimport { Feature } from 'src/app/domain/feature/feature.model';\r\nimport { FeatureAccessLevel } from 'src/app/domain/feature/feature-access-level.model';\r\nimport { FeatureId } from 'src/app/domain/feature/feature-id.model';\r\nimport { UserSettingsService } from 'src/app/domain/user-settings/user-settings.service';\r\nimport { STnetAdapter } from 'src/app/stnet/domain/stnet.adapter';\r\nimport { STnet } from 'src/app/stnet/domain/stnet.model';\r\nimport { STnetCalculatedDataAdapter } from 'src/app/stnet/domain/stnet-calculated-data.adapter';\r\nimport { STnetCalculatedData } from 'src/app/stnet/domain/stnet-calculated-data.model';\r\nimport { STnetItem } from 'src/app/stnet/domain/stnet-item.model';\r\nimport { UserMessage } from 'src/app/user-message/user-message.model';\r\nimport { UserMessageService } from 'src/app/user-message/user-message.service';\r\nimport { UserMessageColor } from 'src/app/user-message/user-message-color';\r\nimport { UserMessageIcon } from 'src/app/user-message/user-message-icon';\r\nimport { environment } from 'src/environments/environment';\r\n\r\n@Injectable({\r\n providedIn: 'root',\r\n})\r\nexport class STnetService {\r\n private readonly baseRequestUrl: string = '/stnet/get';\r\n private readonly basePostUrl: string = '/stnet/post';\r\n private readonly baseStnetExportUrl: string = '/stnet/export';\r\n\r\n private readonly stnetStatusArrayResponse$ = new Subject();\r\n private readonly requiredFeature = new Feature(FeatureId.SISMEDIA_STNET, FeatureAccessLevel.READ);\r\n\r\n private readonly stnet$: Observable = this.destinationService.selectedTenantFeatures$.pipe(\r\n filter((features) => features.some((feature) => feature.hasMinimumRequirementFor(this.requiredFeature))),\r\n distinctUntilChanged(),\r\n switchMap(() => this.http.get(`${environment.baseUrlApi}${this.baseRequestUrl}`)),\r\n map((data) => STnetAdapter.adapt(data)),\r\n shareReplay({\r\n bufferSize: 1,\r\n refCount: true,\r\n })\r\n );\r\n\r\n private readonly stnetStatusArrayUpdate$: Observable = merge(\r\n this.eventBus.observe(STnetStatusUpdatedEvent).pipe(\r\n withLatestFrom(this.destinationService.selectedTenant$),\r\n filter(\r\n ([updatedEvent, tenant]) =>\r\n updatedEvent?.status?.featureId === FeatureId.SISMEDIA_STNET && updatedEvent?.tenantGuid === tenant?.guid\r\n ),\r\n map(([updatedEvent]) => [updatedEvent.status])\r\n ),\r\n this.stnetStatusArrayResponse$\r\n ).pipe(\r\n withLatestFrom(this.stnet$),\r\n map(([updatedStatusArray, stnet]) => {\r\n updatedStatusArray.forEach((updatedStatus) => {\r\n const currentStatus = stnet.stnetStatusArray.find((status) => status.stationId === updatedStatus.stationId);\r\n if (currentStatus) {\r\n Object.assign(currentStatus, updatedStatus);\r\n } else {\r\n stnet.stnetStatusArray.push(updatedStatus);\r\n }\r\n });\r\n\r\n return stnet.stnetStatusArray;\r\n })\r\n );\r\n\r\n private readonly stnetCalculatedDataUpdate$: Observable = merge(\r\n this.eventBus.observe(SisMediaStatusUpdatedEvent),\r\n this.eventBus.observe(STnetUpdatedEvent)\r\n ).pipe(\r\n withLatestFrom(this.stnet$),\r\n switchMap(([, stnet]) =>\r\n this.http.get(`${environment.baseUrlApi}${this.baseRequestUrl}/calculated`).pipe(\r\n map((data: any) => {\r\n const updatedData = STnetCalculatedDataAdapter.adapt(data);\r\n\r\n if (stnet.calculatedData.stationId === updatedData.stationId) {\r\n Object.assign(stnet.calculatedData, updatedData);\r\n }\r\n\r\n return stnet.calculatedData;\r\n })\r\n )\r\n )\r\n );\r\n\r\n readonly stnetItems$: Observable = merge(\r\n this.stnet$.pipe(map((stnet) => stnet.stnetItem)),\r\n this.eventBus\r\n .observe(STnetUpdatedEvent)\r\n .pipe(\r\n withLatestFrom(this.destinationService.selectedTenant$),\r\n filter(([updatedEvent, tenant]) => updatedEvent?.stnetItem?.tenantGuid === tenant?.guid.toString()),\r\n withLatestFrom(this.userSettingsService.userSettings$),\r\n tap(([[updatedEvent], userSettings]) => {\r\n if (updatedEvent?.stnetItem?.changedBy === userSettings.userGuid.toString()) {\r\n const translateKey = 'general.phrase.saved';\r\n const userMessage = new UserMessage({\r\n message: translateKey,\r\n icon: UserMessageIcon.success,\r\n durationMs: 2000,\r\n position: 'top',\r\n color: UserMessageColor.green,\r\n });\r\n this.userMessageService.presentToast(userMessage);\r\n }\r\n }),\r\n map(([[updatedEvent]]) => updatedEvent.stnetItem)\r\n )\r\n .pipe(\r\n shareReplay({\r\n bufferSize: 1,\r\n refCount: true,\r\n })\r\n )\r\n );\r\n\r\n readonly stnetCalculatedData$: Observable = merge(\r\n this.stnet$.pipe(map((stnet) => stnet.calculatedData)),\r\n this.stnetCalculatedDataUpdate$\r\n ).pipe(\r\n shareReplay({\r\n bufferSize: 1,\r\n refCount: true,\r\n })\r\n );\r\n\r\n readonly stnetStatusArray$: Observable = merge(\r\n this.stnet$.pipe(map((stnet) => stnet.stnetStatusArray)),\r\n this.stnetStatusArrayUpdate$\r\n ).pipe(\r\n shareReplay({\r\n bufferSize: 1,\r\n refCount: true,\r\n })\r\n );\r\n\r\n constructor(\r\n private eventBus: EventBusService,\r\n private http: HttpClient,\r\n private userMessageService: UserMessageService,\r\n private destinationService: DestinationService,\r\n private userSettingsService: UserSettingsService\r\n ) {}\r\n\r\n async saveSTnetItems(stnetItem: STnetItem): Promise {\r\n const postData = {\r\n stationId: stnetItem.stationId,\r\n slopeConditionId: stnetItem.slopeConditionId,\r\n valleyRunMainConditionId: stnetItem.valleyRunMainConditionId,\r\n valleyRunPartialConditionId: stnetItem.valleyRunPartialConditionId,\r\n snowConditionMainId: stnetItem.snowConditionMainId,\r\n snowConditionPartialId: stnetItem.snowConditionPartialId,\r\n snowHeightMeasurementMethodId: stnetItem.snowHeightMeasurementMethodId,\r\n classicTrackConditionId: stnetItem.classicTrackConditionId,\r\n skatingTrackConditionId: stnetItem.skatingTrackConditionId,\r\n tobogganRunConditionId: stnetItem.tobogganRunConditionId,\r\n tobogganRunSkillTypeId: stnetItem.tobogganRunSkillTypeId,\r\n snowparkConditionId: stnetItem.snowparkConditionId,\r\n crossCountryTracksLowestAltitudeToday: stnetItem.crossCountryTracksLowestAltitudeToday,\r\n crossCountryTracksHighestAltitudeToday: stnetItem.crossCountryTracksHighestAltitudeToday,\r\n valleyRunLowestAltitudeToday: stnetItem.valleyRunLowestAltitudeToday,\r\n slopesSnowedLengthMeterToday: stnetItem.slopesSnowedLengthMeterToday,\r\n winterHikingTrailConditionId: stnetItem.winterHikingTrailConditionId,\r\n winterHikingTrailsLowestAltitudeTotal: stnetItem.winterHikingTrailsLowestAltitudeTotal,\r\n tobogganRunsWithFloodlightLengthMeterToday: stnetItem.tobogganRunsWithFloodlightLengthMeterToday,\r\n crossCountryTracksWithFloodlightLengthMeterToday: stnetItem.crossCountryTracksWithFloodlightLengthMeterToday,\r\n crossCountryFloodlightUntil: stnetItem.crossCountryFloodlightUntil,\r\n slopesFloodlightUntil: stnetItem.slopesFloodlightUntil,\r\n snowparkFloodlightUntil: stnetItem.snowparkFloodlightUntil,\r\n slopesFloodlightEnabled: stnetItem.slopesFloodlightEnabled,\r\n slopesWithFloodlightLengthMeterToday: stnetItem.slopesWithFloodlightLengthMeterToday,\r\n tobogganFloodlightEnabled: stnetItem.tobogganFloodlightEnabled,\r\n crossCountryFloodlightEnabled: stnetItem.crossCountryFloodlightEnabled,\r\n snowparkFloodlightEnabled: stnetItem.snowparkFloodlightEnabled,\r\n };\r\n\r\n return firstValueFrom(\r\n this.http.post(`${environment.baseUrlApi}${this.basePostUrl}`, postData).pipe(\r\n map(() => true),\r\n catchError(() => {\r\n const translateKey = 'general.phrase.saveFailed';\r\n const userMessage = new UserMessage({\r\n message: translateKey,\r\n icon: UserMessageIcon.failed,\r\n durationMs: 2000,\r\n position: 'top',\r\n color: UserMessageColor.red,\r\n });\r\n this.userMessageService.presentToast(userMessage);\r\n return of(false);\r\n })\r\n )\r\n );\r\n }\r\n\r\n async exportSTnetItems(): Promise {\r\n const exportResponses = await firstValueFrom(\r\n this.http.get(`${environment.baseUrlApi}${this.baseStnetExportUrl}`).pipe(\r\n catchError(() => {\r\n const translateKey = 'stnet.phrase.export.unsuccessful';\r\n const userMessage = new UserMessage({\r\n message: translateKey,\r\n icon: UserMessageIcon.failed,\r\n durationMs: 2000,\r\n position: 'top',\r\n color: UserMessageColor.red,\r\n });\r\n this.userMessageService.presentToast(userMessage);\r\n return of([]);\r\n })\r\n )\r\n );\r\n\r\n const successResponses = exportResponses?.filter((response) => response.success);\r\n\r\n if (successResponses?.length && exportResponses.every((response) => response.success)) {\r\n const translateKey = 'stnet.phrase.export.successful';\r\n const userMessage = new UserMessage({\r\n message: translateKey,\r\n icon: UserMessageIcon.success,\r\n durationMs: 2000,\r\n position: 'top',\r\n color: UserMessageColor.green,\r\n });\r\n await this.userMessageService.presentToast(userMessage);\r\n } else {\r\n const translateKey = 'stnet.phrase.export.unsuccessful';\r\n const userMessage = new UserMessage({\r\n message: translateKey,\r\n icon: UserMessageIcon.failed,\r\n durationMs: 2000,\r\n position: 'top',\r\n color: UserMessageColor.red,\r\n });\r\n await this.userMessageService.presentToast(userMessage);\r\n }\r\n\r\n if (successResponses) {\r\n this.stnetStatusArrayResponse$.next(successResponses.map((response) => response.requestStatus));\r\n }\r\n }\r\n}\r\n","export enum TimetableDirection {\r\n both,\r\n up,\r\n down\r\n }","import moment from 'moment';\r\nimport { TimetableIntervalDay } from 'src/app/timetable/domain/timetable-interval-day.model';\r\n\r\nexport class TimetableIntervalDayAdapter {\r\n static adapt(day: any): TimetableIntervalDay {\r\n if (day) {\r\n return {\r\n guid: day.guid,\r\n intervalGuid: day.intervalGuid,\r\n date: new Date(day.date),\r\n operatingStart: TimetableIntervalDayAdapter.formatTime(day.operatingStart),\r\n operatingEnd: TimetableIntervalDayAdapter.formatTime(day.operatingEnd),\r\n journeys: (day.journeys as any[]).map((journey: any) => ({\r\n guid: journey.guid,\r\n intervalDayGuid: journey.intervalDayGuid,\r\n direction: journey.direction,\r\n items: (journey.items as any[]).map((item: any) => ({\r\n guid: item.guid,\r\n intervalJourneyGuid: item.intervalJourneyGuid,\r\n stationGuid: item.stationGuid,\r\n departureDateTimeLocal: new Date(item.departureDateTimeLocal),\r\n })),\r\n })),\r\n };\r\n }\r\n\r\n return null;\r\n }\r\n\r\n private static formatTime(time: string) {\r\n return moment(time, 'HH:mm:ss').format('HH:mm');\r\n }\r\n}\r\n","import moment from 'moment';\r\nimport { TimetableInterval } from 'src/app/timetable/domain/timetable-interval.model';\r\nimport { TimetableIntervalDayAdapter } from 'src/app/timetable/domain/timetable-interval-day.adapter';\r\n\r\nexport class TimetableIntervalAdapter {\r\n static adapt(items: any): TimetableInterval[] {\r\n if (items) {\r\n return (items as any[]).map((interval: any) => ({\r\n guid: interval.guid,\r\n trackGuid: interval.trackGuid,\r\n name: interval.name,\r\n interval: interval.interval,\r\n operatingStart: TimetableIntervalAdapter.formatTime(interval.operatingStart),\r\n operatingEnd: TimetableIntervalAdapter.formatTime(interval.operatingEnd),\r\n intervalDays: (interval.days as any[]).map((day: any) => TimetableIntervalDayAdapter.adapt(day)),\r\n }));\r\n }\r\n\r\n return [];\r\n }\r\n\r\n private static formatTime(time: string) {\r\n return moment(time, 'HH:mm:ss').format('HH:mm');\r\n }\r\n}\r\n","import { TimetableJourney } from 'src/app/timetable/domain/timetable-journey.model';\r\nimport { TimetableSeason } from 'src/app/timetable/domain/timetable-season.model';\r\n\r\nexport class TimetableSeasonAdapter {\r\n static adapt(items: any): TimetableSeason[] {\r\n const seasons: TimetableSeason[] = [];\r\n\r\n if (items) {\r\n items.forEach((item: any) => {\r\n const journeys: TimetableJourney[] = item.journeys;\r\n seasons.push({\r\n guid: item.guid,\r\n tenantGuid: item.tenantGuid,\r\n name: item.name,\r\n journeys,\r\n isEmergencyTimetable: item.isEmergencyTimetable,\r\n isImportTimetable: item.isImportTimetable,\r\n lastImportDate: item.lastImportDateTime ? new Date(item.lastImportDateTime) : null,\r\n lastSuccessfulRealTimeImport: item.lastSuccessfulRealTimeImport\r\n ? new Date(item.lastSuccessfulRealTimeImport)\r\n : null,\r\n lastImportSuccessful: item.lastImportSuccessful,\r\n trackGuid: item.trackGuid,\r\n validFrom: item.isImportTimetable ? null : item.validFrom,\r\n validUntil: item.isImportTimetable ? null : item.validUntil,\r\n });\r\n });\r\n }\r\n\r\n return seasons;\r\n }\r\n}\r\n","import { TimetableIntervalAdapter } from 'src/app/timetable/domain/timetable-interval.adapter';\r\nimport { TimetableSeasonAdapter } from 'src/app/timetable/domain/timetable-season.adapter';\r\nimport { TimetableTrack } from 'src/app/timetable/domain/timetable-track.model';\r\n\r\nexport class TimetableTrackAdapter {\r\n static adapt(items: any): TimetableTrack[] {\r\n const tracks: TimetableTrack[] = [];\r\n\r\n if (items) {\r\n items.forEach((item: any) => {\r\n const seasons = TimetableSeasonAdapter.adapt(item.seasons);\r\n seasons.sort((a, b) => new Date(a.validFrom).getTime() - new Date(b.validFrom).getTime());\r\n\r\n const intervals = TimetableIntervalAdapter.adapt(item.intervals);\r\n intervals.sort((a, b) => a.interval - b.interval);\r\n intervals.forEach((interval) => interval.intervalDays.sort((a, b) => a.date.getTime() - b.date.getTime()));\r\n\r\n tracks.push({\r\n guid: item.guid,\r\n tenantGuid: item.tenantGuid,\r\n name: item.name,\r\n displayOrder: item.displayOrder,\r\n type: item.type,\r\n seasons,\r\n intervals,\r\n stations: item.stations,\r\n });\r\n });\r\n }\r\n\r\n return tracks;\r\n }\r\n}\r\n","export enum TimetableType {\r\n Default = 0,\r\n Interval = 1,\r\n}\r\n","import { Component, Input, OnInit } from '@angular/core';\r\nimport { FormControl, FormGroup, Validators } from '@angular/forms';\r\nimport { ModalController } from '@ionic/angular';\r\nimport { filter, takeUntil, withLatestFrom } from 'rxjs';\r\nimport { EventBusService } from 'src/app/core/eventbus/event-bus.service';\r\nimport { TimetableIntervalDayUpdatedEvent } from 'src/app/core/eventbus/events';\r\nimport { Unsubscriber } from 'src/app/core/unsubscriber';\r\nimport { UserSettingsService } from 'src/app/domain/user-settings/user-settings.service';\r\nimport { TimetableInterval } from 'src/app/timetable/domain/timetable-interval.model';\r\nimport { TimetableIntervalDay } from 'src/app/timetable/domain/timetable-interval-day.model';\r\nimport { TimetableService } from 'src/app/timetable/timetable.service';\r\n\r\n@Component({\r\n templateUrl: './interval-day-editor.component.html',\r\n styleUrls: ['./interval-day-editor.component.scss'],\r\n standalone: false\r\n})\r\nexport class IntervalDayEditorComponent extends Unsubscriber implements OnInit {\r\n @Input() interval: TimetableInterval;\r\n @Input() day: TimetableIntervalDay;\r\n\r\n editedDay: TimetableIntervalDay;\r\n formGroup: FormGroup;\r\n isSaving = false;\r\n isEdited = false;\r\n\r\n constructor(\r\n private modalCtrl: ModalController,\r\n private timetableService: TimetableService,\r\n private eventBus: EventBusService,\r\n private userSettingsService: UserSettingsService\r\n ) {\r\n super();\r\n }\r\n\r\n ngOnInit(): void {\r\n this.reset();\r\n\r\n this.formGroup = new FormGroup({\r\n operatingStart: new FormControl(this.editedDay.operatingStart, [Validators.required]),\r\n operatingEnd: new FormControl(this.editedDay.operatingEnd, [Validators.required]),\r\n });\r\n\r\n this.formGroup.valueChanges.pipe(takeUntil(this.onDestroy$)).subscribe((values) => {\r\n this.editedDay.operatingStart = values.operatingStart;\r\n this.editedDay.operatingEnd = values.operatingEnd;\r\n\r\n this.isEdited = JSON.stringify(this.day) !== JSON.stringify(this.editedDay);\r\n });\r\n\r\n this.eventBus\r\n .observe(TimetableIntervalDayUpdatedEvent)\r\n .pipe(\r\n withLatestFrom(this.userSettingsService.userSettings$),\r\n filter(([event, user]) => event.changedBy === user.userGuid),\r\n takeUntil(this.onDestroy$)\r\n )\r\n .subscribe(() => {\r\n if (this.isSaving) {\r\n this.close();\r\n }\r\n });\r\n }\r\n\r\n async save(): Promise {\r\n this.isSaving = true;\r\n\r\n await this.timetableService.updateIntervalDay({\r\n guid: this.editedDay.guid,\r\n intervalGuid: this.editedDay.intervalGuid,\r\n date: this.editedDay.date,\r\n journeys: [],\r\n operatingStart: this.editedDay.operatingStart,\r\n operatingEnd: this.editedDay.operatingEnd,\r\n });\r\n }\r\n\r\n async close(): Promise {\r\n await this.modalCtrl.dismiss();\r\n }\r\n\r\n reset(): void {\r\n this.editedDay = JSON.parse(JSON.stringify(this.day));\r\n this.isEdited = false;\r\n }\r\n}\r\n","\r\n \r\n \r\n {{ 'timetable.phrase.editIntervalDay' | translate }}\r\n \r\n
\r\n \r\n\r\n\r\n\r\n
\r\n \r\n \r\n \r\n {{ 'timetable.term.date' | translate }}\r\n \r\n \r\n {{ this.day.date | weekday | translate }}, {{ this.day.date | date : 'dd.MM.yy' }}\r\n \r\n \r\n\r\n \r\n \r\n {{ 'timetable.term.operatingStart' | translate }}\r\n \r\n \r\n \r\n \r\n \r\n \r\n\r\n \r\n \r\n {{ 'timetable.term.operatingEnd' | translate }}\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, OnInit } from '@angular/core';\r\nimport { AbstractControl, FormControl, FormGroup, ValidationErrors, ValidatorFn, Validators } from '@angular/forms';\r\nimport { ModalController } from '@ionic/angular';\r\nimport moment from 'moment';\r\nimport { Unsubscriber } from 'src/app/core/unsubscriber';\r\nimport { TimetableDirection } from 'src/app/timetable/domain/timetable-direction.enum';\r\nimport { TimetableJourney } from 'src/app/timetable/domain/timetable-journey.model';\r\nimport { TimetableSeason } from 'src/app/timetable/domain/timetable-season.model';\r\nimport { TimetableStation } from 'src/app/timetable/domain/timetable-station.model';\r\nimport { TimetableService } from 'src/app/timetable/timetable.service';\r\n\r\n@Component({\r\n templateUrl: './journey-editor.component.html',\r\n styleUrls: ['./journey-editor.component.scss'],\r\n standalone: false\r\n})\r\nexport class JourneyEditorComponent extends Unsubscriber implements OnInit {\r\n journey: TimetableJourney;\r\n stations: TimetableStation[];\r\n season: TimetableSeason;\r\n formGroup: FormGroup;\r\n hasMoreThanTwoStations: boolean;\r\n isNewJourney: boolean;\r\n dateIsEnabled: boolean;\r\n isSaving: boolean;\r\n\r\n constructor(private modalCtrl: ModalController, private timetableService: TimetableService) {\r\n super();\r\n }\r\n\r\n ngOnInit() {\r\n this.stations = this.stations.sort((a, b) => a.stationOrder - b.stationOrder);\r\n this.hasMoreThanTwoStations = this.stations.length > 2;\r\n this.dateIsEnabled = !!this.journey?.date;\r\n\r\n this.formGroup = new FormGroup(\r\n {\r\n vehicleNumber: new FormControl(this.journey?.vehicleNumber, [\r\n Validators.pattern('^[a-zA-Z0-9äÄöÖüÜ\\\\s-&+]*$'),\r\n Validators.maxLength(10),\r\n ]),\r\n direction: new FormControl(\r\n this.hasMoreThanTwoStations ? this.journey?.direction ?? TimetableDirection.up : this.journey?.direction\r\n ),\r\n date: new FormControl(this.journey?.date ? moment(new Date(this.journey?.date)).format('YYYY-MM-DD') : null),\r\n mo: new FormControl({ value: this.journey?.mo, disabled: true }),\r\n tu: new FormControl({ value: this.journey?.tu, disabled: true }),\r\n we: new FormControl({ value: this.journey?.we, disabled: true }),\r\n th: new FormControl({ value: this.journey?.th, disabled: true }),\r\n fr: new FormControl({ value: this.journey?.fr, disabled: true }),\r\n sa: new FormControl({ value: this.journey?.sa, disabled: true }),\r\n su: new FormControl({ value: this.journey?.su, disabled: true }),\r\n },\r\n {\r\n validators: [this.validateDepartureTime()],\r\n }\r\n );\r\n\r\n this.setUsabilityWeekdays(this.dateIsEnabled);\r\n\r\n if (this.hasMoreThanTwoStations) {\r\n this.stations.forEach((station) => {\r\n this.formGroup.addControl(\r\n `departureTime_${station.guid}`,\r\n new FormControl(\r\n this.journey?.items?.find((i) => i.stationGuids.some((g) => g === station.guid))?.departureTime\r\n )\r\n );\r\n });\r\n } else {\r\n this.formGroup.addControl(\r\n 'departureTime',\r\n new FormControl(this.journey?.items ? this.journey.items[0]?.departureTime : null)\r\n );\r\n }\r\n }\r\n\r\n setUsabilityWeekdays(dateIsEnabled: boolean): void {\r\n if (dateIsEnabled) {\r\n this.formGroup.controls.mo.disable();\r\n this.formGroup.controls.tu.disable();\r\n this.formGroup.controls.we.disable();\r\n this.formGroup.controls.th.disable();\r\n this.formGroup.controls.fr.disable();\r\n this.formGroup.controls.sa.disable();\r\n this.formGroup.controls.su.disable();\r\n } else {\r\n this.formGroup.controls.mo.enable();\r\n this.formGroup.controls.tu.enable();\r\n this.formGroup.controls.we.enable();\r\n this.formGroup.controls.th.enable();\r\n this.formGroup.controls.fr.enable();\r\n this.formGroup.controls.sa.enable();\r\n this.formGroup.controls.su.enable();\r\n }\r\n }\r\n\r\n clearDate(): void {\r\n this.formGroup.controls.date.setValue(null, { emitEvent: true });\r\n this.formGroup.updateValueAndValidity();\r\n\r\n if (!this.formGroup.dirty) {\r\n this.formGroup.markAsDirty();\r\n }\r\n\r\n this.onDateChanged();\r\n }\r\n\r\n onDateChanged(): void {\r\n this.dateIsEnabled = !!this.formGroup.value.date;\r\n this.setUsabilityWeekdays(this.dateIsEnabled);\r\n }\r\n\r\n validateDepartureTime(): ValidatorFn {\r\n return (control: AbstractControl): ValidationErrors | null => {\r\n const regex1 = /^\\d{2}:\\d{2}:\\d{2}$/g;\r\n const regex2 = /^\\d{2}:\\d{2}$/g;\r\n const departureTimes = [];\r\n if (this.hasMoreThanTwoStations) {\r\n this.stations.forEach((station) => {\r\n departureTimes.push(control.get(`departureTime_${station.guid}`)?.value);\r\n });\r\n return departureTimes.every(\r\n (entry) => entry?.match(regex1) != null || entry?.match(regex2) != null || entry == null || entry == ''\r\n )\r\n ? null\r\n : { departureTimesInvalid: true };\r\n } else {\r\n departureTimes.push(control.get('departureTime')?.value);\r\n return departureTimes.every((entry) => entry?.match(regex1) != null || entry?.match(regex2) != null)\r\n ? null\r\n : { departureTimesInvalid: true };\r\n }\r\n };\r\n }\r\n\r\n close() {\r\n this.modalCtrl.dismiss();\r\n }\r\n\r\n onCheckBoxAreaClick(checkBoxName: string): void {\r\n const control = this.formGroup.controls[checkBoxName];\r\n control.setValue(!control.value);\r\n if (this.journey[checkBoxName] != control.value) {\r\n control.markAsDirty();\r\n } else {\r\n control.markAsPristine();\r\n }\r\n }\r\n\r\n async save(): Promise {\r\n this.isSaving = true;\r\n await this.timetableService.updateJourney(this.rejoinJourneyData());\r\n this.close();\r\n }\r\n\r\n private rejoinJourneyData() {\r\n const journeyPostData: TimetableJourney = {\r\n guid: this.isNewJourney ? undefined : this.journey.guid,\r\n seasonGuid: this.isNewJourney ? this.season.guid : this.journey.seasonGuid,\r\n direction: this.formGroup.value.direction,\r\n vehicleNumber: this.formGroup.value.vehicleNumber,\r\n date: this.formGroup.value.date ? this.formGroup.value.date : null,\r\n mo: this.formGroup.getRawValue().mo,\r\n tu: this.formGroup.getRawValue().tu,\r\n we: this.formGroup.getRawValue().we,\r\n th: this.formGroup.getRawValue().th,\r\n fr: this.formGroup.getRawValue().fr,\r\n sa: this.formGroup.getRawValue().sa,\r\n su: this.formGroup.getRawValue().su,\r\n imported: false,\r\n items: [],\r\n };\r\n\r\n if (this.hasMoreThanTwoStations) {\r\n journeyPostData.direction = TimetableDirection.up;\r\n\r\n this.stations.forEach((station) => {\r\n const departureTime = this.formGroup.value[`departureTime_${station.guid}`];\r\n\r\n if (departureTime) {\r\n journeyPostData.items.push({\r\n guid: this.isNewJourney\r\n ? undefined\r\n : this.journey.items.find((i) => i.stationGuids[0] === station.guid)?.guid,\r\n journeyGuid: this.isNewJourney ? undefined : this.journey.guid,\r\n departureTime: departureTime,\r\n stationGuids: [station.guid],\r\n });\r\n }\r\n });\r\n } else {\r\n let stationGuids = this.stations.map((s) => s.guid);\r\n\r\n if (this.formGroup.value.direction === TimetableDirection.up) {\r\n stationGuids = [stationGuids[0]];\r\n }\r\n\r\n if (this.formGroup.value.direction === TimetableDirection.down) {\r\n stationGuids = [stationGuids[1]];\r\n }\r\n\r\n journeyPostData.items.push({\r\n guid: this.isNewJourney ? undefined : this.journey.items[0].guid,\r\n journeyGuid: this.isNewJourney ? undefined : this.journey.guid,\r\n departureTime: this.formGroup.value.departureTime,\r\n stationGuids: stationGuids,\r\n });\r\n }\r\n\r\n return journeyPostData;\r\n }\r\n}\r\n","\r\n \r\n \r\n {{ (this.journey.items == null ? 'timetable.phrase.newJourney' : 'timetable.phrase.editJourney') | translate }}\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 'timetable.term.vehicleNumberAbbr' | translate\r\n }}\r\n \r\n \r\n \r\n \r\n \r\n\r\n \r\n \r\n {{ 'timetable.term.direction' | translate }}\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 'timetable.term.departureTime' | translate\r\n }}\r\n \r\n \r\n \r\n \r\n {{ this.stations[0].name }} / {{ this.stations[1].name }}\r\n \r\n \r\n {{ this.stations[0].name }}\r\n \r\n \r\n {{ this.stations[1].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 'timetable.term.departureTime' | translate\r\n }}\r\n \r\n \r\n \r\n {{ station.name }}\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n {{ 'timetable.term.validity' | translate }}\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
{{ 'general.abbr.weekday.1' | translate }}
\r\n
\r\n \r\n \r\n
\r\n {{ 'general.abbr.weekday.2' | translate }}\r\n
\r\n
\r\n \r\n \r\n
\r\n {{ 'general.abbr.weekday.3' | translate }}\r\n
\r\n
\r\n \r\n \r\n
\r\n {{ 'general.abbr.weekday.4' | translate }}\r\n
\r\n
\r\n \r\n \r\n
\r\n {{ 'general.abbr.weekday.5' | translate }}\r\n
\r\n
\r\n \r\n \r\n
\r\n {{ 'general.abbr.weekday.6' | translate }}\r\n
\r\n
\r\n \r\n \r\n
\r\n {{ 'general.abbr.weekday.0' | translate }}\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 { TimetableItem } from 'src/app/timetable/domain/timetable-item.model';\r\nimport { TimetableJourney } from 'src/app/timetable/domain/timetable-journey.model';\r\nimport { TimetableStation } from 'src/app/timetable/domain/timetable-station.model';\r\n\r\n@Component({\r\n selector: 'sis-timetable-journey-row-mobile',\r\n templateUrl: './journey-row-mobile.component.html',\r\n styleUrls: ['./journey-row-mobile.component.scss'],\r\n standalone: false\r\n})\r\nexport class JourneyRowMobileComponent {\r\n @Input() journey: TimetableJourney;\r\n @Input() stations: TimetableStation[] = [];\r\n\r\n stationTimetableItemMapping = new Map();\r\n\r\n ngOnChanges(): void {\r\n if (this.journey && this.stations) {\r\n this.stationTimetableItemMapping.clear();\r\n this.stations.forEach((s) => {\r\n this.stationTimetableItemMapping.set(\r\n s.guid,\r\n this.journey.items?.find((i) => i.stationGuids.includes(s.guid))\r\n );\r\n });\r\n }\r\n }\r\n}\r\n","\r\n \r\n \r\n {{\r\n 'timetable.term.vehicleNumberAbbr' | translate\r\n }}\r\n {{ journey.vehicleNumber ?? '-' }} \r\n \r\n\r\n \r\n {{\r\n 'timetable.term.direction' | translate\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 {{ this.stations[0].name }} / {{ this.stations[1].name }}\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n {{ station.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 this.journey.vehicleNumber == 'day-separator'\r\n ? ('timetable.term.tomorrow' | translate)\r\n : ('timetable.term.upcomingAndPassed' | translate)\r\n }}\r\n
\r\n
\r\n
\r\n
\r\n","import { Component, EventEmitter, Input, OnChanges, OnInit, Output } from '@angular/core';\r\nimport { TranslateService } from '@ngx-translate/core';\r\nimport moment from 'moment';\r\nimport { filter, firstValueFrom, map, takeUntil } from 'rxjs';\r\nimport { EventBusService } from 'src/app/core/eventbus/event-bus.service';\r\nimport { TimetableJourneyUpdatedEvent } from 'src/app/core/eventbus/events';\r\nimport { Unsubscriber } from 'src/app/core/unsubscriber';\r\nimport { ConfirmationDialogService } from 'src/app/core/utils/confirmation-dialog.service';\r\nimport { DestinationService } from 'src/app/domain/destination/destination.service';\r\nimport { Feature } from 'src/app/domain/feature/feature.model';\r\nimport { FeatureAccessLevel } from 'src/app/domain/feature/feature-access-level.model';\r\nimport { FeatureId } from 'src/app/domain/feature/feature-id.model';\r\nimport { TimetableItem } from 'src/app/timetable/domain/timetable-item.model';\r\nimport { TimetableJourney } from 'src/app/timetable/domain/timetable-journey.model';\r\nimport { TimetableStation } from 'src/app/timetable/domain/timetable-station.model';\r\nimport { TimetableService } from 'src/app/timetable/timetable.service';\r\n\r\n@Component({\r\n selector: 'sis-timetable-journey-row',\r\n templateUrl: './journey-row.component.html',\r\n styleUrls: ['./journey-row.component.scss'],\r\n standalone: false\r\n})\r\nexport class JourneyRowComponent extends Unsubscriber implements OnInit, OnChanges {\r\n @Input() journey: TimetableJourney;\r\n @Input() stations: TimetableStation[];\r\n\r\n @Output() openJourneyModalClick = new EventEmitter();\r\n\r\n timetableItems: TimetableItem[] = [];\r\n hasValidity: boolean = false;\r\n\r\n readonly writePermission$ = this.destinationService.selectedTenantFeatures$.pipe(\r\n map((features) =>\r\n features.some((f) =>\r\n f.hasMinimumRequirementFor(new Feature(FeatureId.SISMEDIA_TIMETABLE, FeatureAccessLevel.WRITE))\r\n )\r\n )\r\n );\r\n\r\n constructor(\r\n private destinationService: DestinationService,\r\n private confirmationDialogService: ConfirmationDialogService,\r\n private timetableService: TimetableService,\r\n private eventBus: EventBusService,\r\n private translateService: TranslateService\r\n ) {\r\n super();\r\n }\r\n\r\n ngOnInit(): void {\r\n this.eventBus\r\n .observe(TimetableJourneyUpdatedEvent)\r\n .pipe(\r\n takeUntil(this.onDestroy$),\r\n filter((event) => event.timetableJourney.guid === this.journey.guid)\r\n )\r\n .subscribe((event) => {\r\n Object.assign(this.journey, event.timetableJourney);\r\n\r\n this.ngOnChanges();\r\n });\r\n }\r\n\r\n ngOnChanges(): void {\r\n if (this.journey && this.stations) {\r\n this.timetableItems = this.stations.map((s) => this.journey.items?.find((i) => i.stationGuids.includes(s.guid)));\r\n\r\n this.journey.isValid =\r\n (!this.journey.displayedForTomorrow &&\r\n this.timetableService.isValidJourneyOfTodayOrTomorrow(this.journey, 'today')) ||\r\n (this.journey.displayedForTomorrow &&\r\n this.timetableService.isValidJourneyOfTodayOrTomorrow(this.journey, 'tomorrow'));\r\n this.hasValidity = this.hasJourneyValidity();\r\n }\r\n }\r\n\r\n hasJourneyValidity(): boolean {\r\n const date = this.journey.date;\r\n const weekdaysValidity = {\r\n 1: this.journey.mo,\r\n 2: this.journey.tu,\r\n 3: this.journey.we,\r\n 4: this.journey.th,\r\n 5: this.journey.fr,\r\n 6: this.journey.sa,\r\n 0: this.journey.su,\r\n };\r\n\r\n const today = moment().startOf('day');\r\n const tomorrow = moment().add(1, 'day').startOf('day');\r\n const currentWeekday = today.day();\r\n const tomorrowWeekday = tomorrow.day();\r\n\r\n if (date) {\r\n const journeyDate = moment(new Date(date)).startOf('day');\r\n\r\n if (this.journey.imported && (journeyDate.isSame(today) || journeyDate.isSame(tomorrow))) {\r\n return false;\r\n }\r\n\r\n this.journey.validityTooltip = journeyDate.format('DD.MM.yyyy');\r\n return true;\r\n }\r\n\r\n const allWeekdaysValid = Object.values(weekdaysValidity).every((valid) => valid === true);\r\n\r\n if (allWeekdaysValid && (weekdaysValidity[currentWeekday] || weekdaysValidity[tomorrowWeekday])) {\r\n return false;\r\n }\r\n\r\n const validWeekdays = [1, 2, 3, 4, 5, 6, 0].filter((day) => weekdaysValidity[day]);\r\n\r\n if (validWeekdays.length > 0) {\r\n this.journey.validityTooltip = validWeekdays\r\n .map((day) => this.translateService.instant(`general.abbr.weekday.${day}`))\r\n .join(', ');\r\n }\r\n\r\n return validWeekdays.length > 0;\r\n }\r\n\r\n async openJourneyModal(journey: TimetableJourney): Promise {\r\n const writePermission = await firstValueFrom(this.writePermission$);\r\n if (writePermission) {\r\n this.openJourneyModalClick.emit(journey);\r\n }\r\n }\r\n\r\n async deleteJourney(journey: TimetableJourney): Promise {\r\n const writePermission = await firstValueFrom(this.writePermission$);\r\n if (writePermission) {\r\n const confirmed = await this.confirmationDialogService.presentAlert(\r\n 'timetable.phrase.deleteJourney',\r\n 'general.term.delete'\r\n );\r\n\r\n if (confirmed) {\r\n await this.timetableService.deleteJourney(journey.guid);\r\n }\r\n }\r\n }\r\n}\r\n","\r\n {{ journey.vehicleNumber }} \r\n 5 ? 1 : 1.5\"\r\n class=\"sis-timetable-padding-left\"\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 2\">\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 this.journey.vehicleNumber == 'day-separator'\r\n ? ('timetable.term.tomorrow' | translate)\r\n : ('timetable.term.upcomingAndPassed' | translate)\r\n }}\r\n
\r\n
\r\n
\r\n
\r\n","import { Component, OnInit } from '@angular/core';\r\nimport { AbstractControl, FormControl, FormGroup, ValidationErrors, ValidatorFn, Validators } from '@angular/forms';\r\nimport { ModalController } from '@ionic/angular';\r\nimport moment from 'moment';\r\nimport { takeUntil } from 'rxjs/operators';\r\nimport { Unsubscriber } from 'src/app/core/unsubscriber';\r\nimport { TimetableSeason } from 'src/app/timetable/domain/timetable-season.model';\r\nimport { TimetableService } from 'src/app/timetable/timetable.service';\r\n\r\n@Component({\r\n templateUrl: './season-editor.component.html',\r\n styleUrls: ['./season-editor.component.scss'],\r\n standalone: false\r\n})\r\nexport class SeasonEditorComponent extends Unsubscriber implements OnInit {\r\n season: TimetableSeason;\r\n seasons: TimetableSeason[];\r\n formGroup: FormGroup;\r\n canSave = false;\r\n edited = false;\r\n\r\n private editedSeason: TimetableSeason;\r\n\r\n constructor(private modalCtrl: ModalController, private timetableService: TimetableService) {\r\n super();\r\n }\r\n\r\n ngOnInit() {\r\n this.editedSeason = JSON.parse(JSON.stringify(this.season));\r\n\r\n this.formGroup = new FormGroup(\r\n {\r\n name: new FormControl(this.editedSeason?.name, [Validators.required, this.validateName()]),\r\n validFrom: new FormControl(this.editedSeason?.validFrom),\r\n validUntil: new FormControl(this.editedSeason?.validUntil),\r\n },\r\n { validators: [this.validateDates()] }\r\n );\r\n\r\n this.formGroup.valueChanges.pipe(takeUntil(this.onDestroy$)).subscribe((values) => {\r\n Object.assign(this.editedSeason, values);\r\n this.edited = !this.isEqual(this.season, this.editedSeason);\r\n this.canSave = !this.formGroup.invalid && this.edited;\r\n });\r\n }\r\n\r\n close() {\r\n this.modalCtrl.dismiss();\r\n }\r\n\r\n async save(): Promise {\r\n if (!this.formGroup.invalid && !this.isEqual(this.season, this.editedSeason)) {\r\n await this.timetableService.updateSeason(this.editedSeason);\r\n this.close();\r\n }\r\n }\r\n\r\n private isEqual(s1: TimetableSeason, s2: TimetableSeason): boolean {\r\n return s1.name === s2.name && s1.validFrom === s2.validFrom && s1.validUntil === s2.validUntil;\r\n }\r\n\r\n private validateName(): ValidatorFn {\r\n return (control: AbstractControl): ValidationErrors | null => {\r\n const name = control.value?.toLowerCase();\r\n\r\n if (this.seasons.filter((s) => s.guid !== this.season.guid).some((s) => s.name.toLowerCase() === name)) {\r\n return { nameInvalid: 'timetable.phrase.nameExists' };\r\n }\r\n\r\n return null;\r\n };\r\n }\r\n\r\n private validateDates(): ValidatorFn {\r\n return (control: AbstractControl): ValidationErrors | null => {\r\n const startControl = control.get('validFrom');\r\n const endControl = control.get('validUntil');\r\n\r\n const start = startControl.value;\r\n const end = endControl.value;\r\n\r\n const now = moment(new Date()).format('YYYY-MM-DD');\r\n\r\n const datesInvalid = end < now || start >= end;\r\n\r\n const seasonsOverlap = this.seasons\r\n .filter((s) => s.guid !== this.season.guid && !s.isEmergencyTimetable)\r\n .map((season) => start <= season.validUntil && end >= season.validFrom)\r\n .some((s) => s);\r\n\r\n const errorMessage = datesInvalid\r\n ? 'timetable.phrase.datesInvalid'\r\n : seasonsOverlap\r\n ? 'timetable.phrase.overlappingSeasons'\r\n : null;\r\n\r\n return datesInvalid || seasonsOverlap ? { dateTimesInvalid: errorMessage } : null;\r\n };\r\n }\r\n}\r\n","\r\n \r\n \r\n {{ 'timetable.phrase.editSeason' | translate }}\r\n \r\n \r\n \r\n\r\n\r\n\r\n \r\n
\r\n \r\n \r\n {{ 'timetable.term.timetableName' | translate }}\r\n \r\n \r\n \r\n \r\n \r\n\r\n \r\n \r\n {{ 'timetable.term.validity' | translate }}\r\n \r\n \r\n {{ 'timetable.term.validFrom' | translate }}\r\n \r\n \r\n \r\n \r\n \r\n\r\n \r\n \r\n \r\n {{ 'timetable.term.validUntil' | translate }}\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, OnChanges, OnInit } from '@angular/core';\r\nimport moment from 'moment';\r\nimport { filter, takeUntil } from 'rxjs';\r\nimport { EventBusService } from 'src/app/core/eventbus/event-bus.service';\r\nimport { TimetableJourneyUpdatedEvent, TimetableRealTimeDataUpdatedEvent } from 'src/app/core/eventbus/events';\r\nimport { Unsubscriber } from 'src/app/core/unsubscriber';\r\nimport { TimetableItem } from 'src/app/timetable/domain/timetable-item.model';\r\n\r\n@Component({\r\n selector: 'sis-timetable-time-item',\r\n templateUrl: './time-item.component.html',\r\n styleUrls: ['./time-item.component.scss'],\r\n standalone: false\r\n})\r\nexport class TimetableTimeItemComponent extends Unsubscriber implements OnChanges, OnInit {\r\n @Input() timetableItem: TimetableItem;\r\n\r\n time: string;\r\n delay: string;\r\n\r\n constructor(private eventBus: EventBusService) {\r\n super();\r\n }\r\n\r\n ngOnInit(): void {\r\n this.eventBus\r\n .observe(TimetableRealTimeDataUpdatedEvent)\r\n .pipe(\r\n takeUntil(this.onDestroy$),\r\n filter(\r\n (event) =>\r\n this.timetableItem && event.realTimeDatas.find((r) => r.itemGuid === this.timetableItem.guid) != null\r\n )\r\n )\r\n .subscribe((event) => {\r\n this.timetableItem.estimatedTime = event.realTimeDatas.find(\r\n (r) => r.itemGuid === this.timetableItem.guid\r\n ).estimatedTime;\r\n\r\n this.delay = this.calculateDelay(this.timetableItem);\r\n });\r\n\r\n this.eventBus\r\n .observe(TimetableJourneyUpdatedEvent)\r\n .pipe(takeUntil(this.onDestroy$))\r\n .subscribe((event) => {\r\n if (this.timetableItem) {\r\n const updatedItem = event.timetableJourney.items.find((i) => i.guid === this.timetableItem.guid);\r\n\r\n if (updatedItem) {\r\n this.timetableItem = updatedItem;\r\n this.ngOnChanges();\r\n }\r\n }\r\n });\r\n }\r\n\r\n ngOnChanges(): void {\r\n this.time = this.timetableItem ? this.formatTime(this.timetableItem.departureTime) : '-';\r\n this.delay = this.calculateDelay(this.timetableItem);\r\n }\r\n\r\n private calculateDelay(timetableItem: TimetableItem): string {\r\n if (timetableItem?.estimatedTime == null) {\r\n return '';\r\n }\r\n\r\n const delayMinutes = Math.round(\r\n moment(this.timetableItem.estimatedTime, 'HH:mm:ss').diff(moment(this.timetableItem.departureTime, 'HH:mm:ss')) /\r\n 60000\r\n );\r\n\r\n if (delayMinutes <= 0) {\r\n return '';\r\n }\r\n\r\n return `+${delayMinutes}'`;\r\n }\r\n\r\n private formatTime(time: string) {\r\n return moment(time, 'HH:mm:ss').format('HH:mm');\r\n }\r\n}\r\n","{{ this.time }} {{ this.delay }}\r\n","import { Component, Input, OnChanges } from '@angular/core';\r\nimport { ModalController } from '@ionic/angular';\r\nimport { firstValueFrom, map, Observable, ReplaySubject, switchMap } from 'rxjs';\r\nimport { ScreenSizeService } from 'src/app/core/utils/screen-size.service';\r\nimport { DestinationService } from 'src/app/domain/destination/destination.service';\r\nimport { Feature } from 'src/app/domain/feature/feature.model';\r\nimport { FeatureAccessLevel } from 'src/app/domain/feature/feature-access-level.model';\r\nimport { FeatureId } from 'src/app/domain/feature/feature-id.model';\r\nimport { TimetableInterval } from 'src/app/timetable/domain/timetable-interval.model';\r\nimport { TimetableIntervalDay } from 'src/app/timetable/domain/timetable-interval-day.model';\r\nimport { IntervalDayEditorComponent } from 'src/app/timetable/interval-day-editor-modal/interval-day-editor.component';\r\nimport { TimetableService } from 'src/app/timetable/timetable.service';\r\n\r\n@Component({\r\n selector: 'sis-timetable-interval',\r\n templateUrl: './timetable-interval.component.html',\r\n styleUrls: ['./timetable-interval.component.scss'],\r\n standalone: false\r\n})\r\nexport class TimetableIntervalComponent implements OnChanges {\r\n @Input() interval: TimetableInterval;\r\n\r\n private readonly activeInterval$ = new ReplaySubject(1);\r\n\r\n readonly intervalDays$: Observable = this.activeInterval$.pipe(\r\n switchMap((activeInterval) =>\r\n this.timetableService.timetables$.pipe(\r\n map(\r\n (tracks) =>\r\n tracks.find((track) => track.guid === activeInterval.trackGuid).intervals.find((interval) => interval.guid === activeInterval.guid)\r\n .intervalDays\r\n )\r\n )\r\n )\r\n );\r\n\r\n readonly bigScreenMode$ = this.screenSizeService.bigScreenMode$;\r\n\r\n constructor(\r\n private destinationService: DestinationService,\r\n private modalCtrl: ModalController,\r\n private timetableService: TimetableService,\r\n private screenSizeService: ScreenSizeService\r\n ) {}\r\n\r\n ngOnChanges(): void {\r\n this.activeInterval$.next(this.interval);\r\n }\r\n\r\n readonly writePermission$ = this.destinationService.selectedTenantFeatures$.pipe(\r\n map((features) => features.some((f) => f.hasMinimumRequirementFor(new Feature(FeatureId.SISMEDIA_TIMETABLE, FeatureAccessLevel.WRITE))))\r\n );\r\n\r\n async openIntervalDayModal(day: TimetableIntervalDay): Promise {\r\n const writePermission = await firstValueFrom(this.writePermission$);\r\n if (writePermission) {\r\n const modal = await this.modalCtrl.create({\r\n component: IntervalDayEditorComponent,\r\n cssClass: 'sis-interval-day-editor-modal',\r\n componentProps: {\r\n day,\r\n interval: this.interval,\r\n },\r\n });\r\n await modal.present();\r\n }\r\n }\r\n}\r\n","\r\n \r\n {{ 'timetable.term.date' | translate }}\r\n {{ 'timetable.term.operatingStart' | translate }}\r\n {{ 'timetable.term.operatingEnd' | translate }}\r\n {{ 'general.term.edit' | translate }}\r\n \r\n\r\n \r\n {{ day.date | weekday | translate }}\r\n {{ day.date | date : 'dd.MM.yy' }}\r\n {{ day.operatingStart }}\r\n {{ day.operatingEnd }}\r\n \r\n \r\n \r\n \r\n \r\n \r\n\r\n","import { ScrollingModule } from '@angular/cdk/scrolling';\r\nimport { CommonModule } from '@angular/common';\r\nimport { NgModule } from '@angular/core';\r\nimport { FormsModule, ReactiveFormsModule } from '@angular/forms';\r\nimport { MatTooltipModule } from '@angular/material/tooltip';\r\nimport { RouterModule } from '@angular/router';\r\nimport { IonicModule } from '@ionic/angular';\r\nimport { TranslateModule } from '@ngx-translate/core';\r\nimport { CoreModule } from 'src/app/core/core.module';\r\nimport { IntervalDayEditorComponent } from 'src/app/timetable/interval-day-editor-modal/interval-day-editor.component';\r\nimport { JourneyEditorComponent } from 'src/app/timetable/journey-editor-modal/journey-editor.component';\r\nimport { JourneyRowComponent } from 'src/app/timetable/journey-row/journey-row.component';\r\nimport { JourneyRowMobileComponent } from 'src/app/timetable/journey-row-mobile/journey-row-mobile.component';\r\nimport { SeasonEditorComponent } from 'src/app/timetable/season-editor/season-editor.component';\r\nimport { TimetableTimeItemComponent } from 'src/app/timetable/time-item/time-item.component';\r\nimport { TimetablePage } from 'src/app/timetable/timetable.page';\r\nimport { TimetableIntervalComponent } from 'src/app/timetable/timetable-interval/timetable-interval.component';\r\n\r\n@NgModule({\r\n imports: [\r\n CommonModule,\r\n IonicModule,\r\n FormsModule,\r\n ReactiveFormsModule,\r\n CoreModule,\r\n MatTooltipModule,\r\n RouterModule.forChild([\r\n {\r\n path: '',\r\n component: TimetablePage,\r\n },\r\n ]),\r\n ScrollingModule,\r\n TranslateModule,\r\n ],\r\n declarations: [\r\n TimetablePage,\r\n JourneyEditorComponent,\r\n SeasonEditorComponent,\r\n JourneyRowComponent,\r\n JourneyRowMobileComponent,\r\n TimetableIntervalComponent,\r\n TimetableTimeItemComponent,\r\n IntervalDayEditorComponent,\r\n ],\r\n})\r\nexport class TimetableModule {}\r\n","import { Component, OnInit } from '@angular/core';\r\nimport { ModalController } from '@ionic/angular';\r\nimport { TranslateService } from '@ngx-translate/core';\r\nimport moment from 'moment';\r\nimport { ReplaySubject } from 'rxjs';\r\nimport { map, switchMap, takeUntil } from 'rxjs/operators';\r\nimport { LogbookModalService } from 'src/app/core/components/logbook/logbook-modal/logbook-modal.service';\r\nimport { Unsubscriber } from 'src/app/core/unsubscriber';\r\nimport { ConfirmationDialogService } from 'src/app/core/utils/confirmation-dialog.service';\r\nimport { ScreenSizeService } from 'src/app/core/utils/screen-size.service';\r\nimport { DestinationService } from 'src/app/domain/destination/destination.service';\r\nimport { Feature } from 'src/app/domain/feature/feature.model';\r\nimport { FeatureAccessLevel } from 'src/app/domain/feature/feature-access-level.model';\r\nimport { FeatureId } from 'src/app/domain/feature/feature-id.model';\r\nimport { TimetableDirection } from 'src/app/timetable/domain/timetable-direction.enum';\r\nimport { TimetableInterval } from 'src/app/timetable/domain/timetable-interval.model';\r\nimport { TimetableJourney } from 'src/app/timetable/domain/timetable-journey.model';\r\nimport { TimetableSeason } from 'src/app/timetable/domain/timetable-season.model';\r\nimport { TimetableStation } from 'src/app/timetable/domain/timetable-station.model';\r\nimport { TimetableTrack } from 'src/app/timetable/domain/timetable-track.model';\r\nimport { TimetableType } from 'src/app/timetable/domain/timetable-type.enum';\r\nimport { JourneyEditorComponent } from 'src/app/timetable/journey-editor-modal/journey-editor.component';\r\nimport { SeasonEditorComponent } from 'src/app/timetable/season-editor/season-editor.component';\r\nimport { TimetableService } from 'src/app/timetable/timetable.service';\r\n\r\n@Component({\r\n templateUrl: './timetable.page.html',\r\n styleUrls: ['./timetable.page.scss'],\r\n standalone: false\r\n})\r\nexport class TimetablePage extends Unsubscriber implements OnInit {\r\n private readonly thirtyDaysInMs: number = 30 * 24 * 60 * 60 * 1000;\r\n\r\n private readonly seasonWarning$ = new ReplaySubject<{ from: Date; until: Date }>(1);\r\n readonly logbookAvailable$ = this.logbookModalService.logbookAvailable$;\r\n\r\n bigScreenMode: boolean;\r\n tracks: TimetableTrack[];\r\n activeTrack: TimetableTrack;\r\n activeSeason: TimetableSeason;\r\n activeInterval: TimetableInterval;\r\n activeStations: TimetableStation[] = [];\r\n writePermission: boolean;\r\n readPermission: boolean;\r\n showSeasonWarning: boolean = false;\r\n showSeasonWarningColor: boolean = true;\r\n seasonWarningText: string;\r\n refreshed = true;\r\n\r\n featureId = FeatureId.SISMEDIA_TIMETABLE;\r\n\r\n displayedJourneyElements: TimetableJourney[] = [];\r\n showDaySeparator: boolean;\r\n isImporting: boolean;\r\n\r\n constructor(\r\n private screenSizeService: ScreenSizeService,\r\n private timetableService: TimetableService,\r\n private destinationService: DestinationService,\r\n private modalCtrl: ModalController,\r\n private confirmationDialogService: ConfirmationDialogService,\r\n private translateService: TranslateService,\r\n private logbookModalService: LogbookModalService\r\n ) {\r\n super();\r\n }\r\n\r\n ngOnInit(): void {\r\n this.screenSizeService.bigScreenMode$.pipe(takeUntil(this.onDestroy$)).subscribe((bigScreenMode) => {\r\n this.bigScreenMode = bigScreenMode;\r\n });\r\n\r\n this.timetableService.timetables$.pipe(takeUntil(this.onDestroy$)).subscribe((tracks) => {\r\n this.tracks = tracks.sort((a, b) => a.displayOrder - b.displayOrder);\r\n if (!this.activeTrack) {\r\n this.activeTrack = tracks[0];\r\n this.onTrackSelected();\r\n this.activeTrack.seasons.sort((a, b) => Number(a.isEmergencyTimetable) - Number(b.isEmergencyTimetable));\r\n } else {\r\n this.activeTrack = tracks.find((t) => t.guid === this.activeTrack.guid);\r\n this.onSeasonSelected();\r\n }\r\n\r\n this.refreshed = false;\r\n setTimeout(() => (this.refreshed = true));\r\n });\r\n\r\n this.destinationService.selectedTenantFeatures$.pipe(takeUntil(this.onDestroy$)).subscribe((features) => {\r\n this.writePermission = features.some((f) =>\r\n f.hasMinimumRequirementFor(new Feature(FeatureId.SISMEDIA_TIMETABLE, FeatureAccessLevel.WRITE))\r\n );\r\n this.readPermission = features.some((f) =>\r\n f.hasMinimumRequirementFor(new Feature(FeatureId.SISMEDIA_TIMETABLE, FeatureAccessLevel.READ))\r\n );\r\n });\r\n\r\n this.translateService\r\n .stream([\r\n 'timetable.phrase.seasonWarningFrom',\r\n 'timetable.phrase.seasonWarningFromUntil',\r\n 'timetable.phrase.seasonWarning',\r\n ])\r\n .pipe(\r\n switchMap((translations: string[]) =>\r\n this.seasonWarning$.pipe(map((warningDates) => ({ translations, warningDates })))\r\n ),\r\n takeUntil(this.onDestroy$)\r\n )\r\n .subscribe(({ translations, warningDates }) => {\r\n const today = new Date();\r\n today.setHours(0, 0, 0, 0);\r\n if (warningDates.until == null) {\r\n if (warningDates.from < today) {\r\n this.seasonWarningText = translations['timetable.phrase.seasonWarning'].format(\r\n moment(warningDates.from).format('DD.MM.YYYY')\r\n );\r\n } else {\r\n this.seasonWarningText = translations['timetable.phrase.seasonWarningFrom'].format(\r\n moment(warningDates.from).format('DD.MM.YYYY')\r\n );\r\n }\r\n } else {\r\n this.seasonWarningText = translations['timetable.phrase.seasonWarningFromUntil'].format(\r\n moment(warningDates.from).format('DD.MM.YYYY'),\r\n moment(warningDates.until).format('DD.MM.YYYY')\r\n );\r\n }\r\n });\r\n\r\n this.timetableService.timetables$\r\n .pipe(\r\n switchMap(() => this.timetableService.isImportingMap$),\r\n takeUntil(this.onDestroy$)\r\n )\r\n .subscribe((isImportingMap) => {\r\n if (this.activeTrack) {\r\n const isImporting = isImportingMap.get(this.activeTrack.guid);\r\n this.isImporting = isImporting == null ? false : isImporting;\r\n }\r\n });\r\n }\r\n\r\n onTrackSelected() {\r\n const now = new Date();\r\n this.activeStations = this.activeTrack.stations.sort((a, b) => a.stationOrder - b.stationOrder);\r\n this.activeSeason =\r\n this.activeTrack.seasons.find((s) => now >= new Date(s.validFrom) && now <= new Date(s.validUntil)) ||\r\n this.activeTrack.seasons[0];\r\n this.activeInterval = this.activeTrack.intervals[0];\r\n this.onSeasonSelected();\r\n this.onIntervalSelected();\r\n }\r\n\r\n onSeasonSelected() {\r\n if (this.activeSeason) {\r\n this.sortJourneys(this.activeSeason.journeys);\r\n\r\n let journeysTodayAndOthers: TimetableJourney[] = [];\r\n let journeysTomorrow: TimetableJourney[] = [];\r\n\r\n if (this.activeSeason.isImportTimetable) {\r\n journeysTodayAndOthers = this.activeSeason.journeys.filter(\r\n (journey) =>\r\n this.timetableService.isValidJourneyOfTodayOrTomorrow(journey, 'today') ||\r\n !this.timetableService.isValidJourneyOfTodayOrTomorrow(journey, 'tomorrow')\r\n );\r\n journeysTodayAndOthers.forEach((j) => {\r\n j.datatest = 'journey-row-today';\r\n j.displayedForTomorrow = false;\r\n });\r\n journeysTomorrow = this.activeSeason.journeys.filter((journey) =>\r\n this.timetableService.isValidJourneyOfTodayOrTomorrow(journey, 'tomorrow')\r\n );\r\n journeysTomorrow.forEach((j) => {\r\n j.datatest = 'journey-row-tomorrow';\r\n j.displayedForTomorrow = true;\r\n });\r\n } else {\r\n journeysTodayAndOthers = this.activeSeason.journeys;\r\n journeysTomorrow = [];\r\n }\r\n\r\n this.showDaySeparator = journeysTomorrow.length > 0;\r\n\r\n const displayedJourneyElements = [...journeysTodayAndOthers];\r\n if (this.showDaySeparator) {\r\n displayedJourneyElements.push({ guid: null, vehicleNumber: 'day-separator' });\r\n displayedJourneyElements.push(...journeysTomorrow);\r\n }\r\n\r\n this.displayedJourneyElements = displayedJourneyElements;\r\n }\r\n\r\n this.updateSeasonWarning(this.activeTrack);\r\n }\r\n\r\n onIntervalSelected() {\r\n if (this.activeInterval) {\r\n this.updateSeasonWarning(this.activeTrack);\r\n }\r\n }\r\n\r\n async deleteJourney(journey: TimetableJourney): Promise {\r\n if (!this.writePermission) {\r\n return;\r\n }\r\n\r\n const confirmed = await this.confirmationDialogService.presentAlert(\r\n 'timetable.phrase.deleteJourney',\r\n 'general.term.delete'\r\n );\r\n\r\n if (confirmed) {\r\n await this.timetableService.deleteJourney(journey.guid);\r\n }\r\n }\r\n\r\n openJourneyModal(journey?: TimetableJourney): void {\r\n if (!this.writePermission) {\r\n return;\r\n }\r\n let isNewJourney = false;\r\n if (!journey) {\r\n isNewJourney = true;\r\n journey = {\r\n seasonGuid: this.activeSeason.guid,\r\n direction: TimetableDirection.both,\r\n vehicleNumber: '',\r\n items: null,\r\n date: null,\r\n mo: true,\r\n tu: true,\r\n we: true,\r\n th: true,\r\n fr: true,\r\n sa: true,\r\n su: true,\r\n imported: false,\r\n };\r\n }\r\n\r\n const stations = this.activeTrack.stations.sort((a, b) => a.stationOrder - b.stationOrder);\r\n const season = this.activeSeason;\r\n\r\n this.modalCtrl\r\n .create({\r\n component: JourneyEditorComponent,\r\n cssClass: stations.length > 5 ? 'sis-journey-many-stations-editor-modal' : 'sis-journey-editor-modal',\r\n backdropDismiss: false,\r\n componentProps: {\r\n journey: journey,\r\n stations: stations,\r\n season: season,\r\n isNewJourney: isNewJourney,\r\n },\r\n })\r\n .then((modal) => {\r\n modal.present();\r\n });\r\n }\r\n\r\n openSeasonModal(): void {\r\n this.modalCtrl\r\n .create({\r\n component: SeasonEditorComponent,\r\n cssClass: 'sis-season-editor-modal',\r\n backdropDismiss: false,\r\n componentProps: {\r\n season: this.activeSeason,\r\n seasons: this.activeTrack.seasons,\r\n },\r\n })\r\n .then((modal) => {\r\n modal.present();\r\n });\r\n }\r\n\r\n async requestTimetableImport(): Promise {\r\n if (this.writePermission) {\r\n await this.timetableService.requestTimetableImport(this.activeTrack.guid);\r\n }\r\n }\r\n\r\n async openLogbook(): Promise {\r\n await this.logbookModalService.presentLogbookModal([[FeatureId.SISMEDIA_TIMETABLE]]);\r\n }\r\n\r\n private updateSeasonWarning(timetableTrack: TimetableTrack): void {\r\n if (timetableTrack.type !== TimetableType.Default) {\r\n this.showSeasonWarning = false;\r\n return;\r\n }\r\n\r\n const seasons = timetableTrack.seasons;\r\n let noActiveSeason = true;\r\n\r\n if (seasons.length == 0 || seasons.some((s) => s.isImportTimetable)) {\r\n this.showSeasonWarning = false;\r\n return;\r\n }\r\n\r\n const today = new Date();\r\n today.setHours(0, 0, 0, 0);\r\n const activeSeason = this.activeTrack.seasons.find((s) => {\r\n const from = new Date(s.validFrom);\r\n from.setHours(0, 0, 0, 0);\r\n const until = new Date(s.validUntil);\r\n until.setHours(0, 0, 0, 0);\r\n return today.getTime() >= from.getTime() && today.getTime() <= until.getTime();\r\n });\r\n\r\n let nextGap = activeSeason ? undefined : today;\r\n\r\n if (!nextGap) {\r\n noActiveSeason = false;\r\n let currentSeason = activeSeason;\r\n const nextSeasons = this.activeTrack.seasons.filter((s) => new Date(s.validFrom).getTime() > today.getTime());\r\n\r\n while (!nextGap) {\r\n const nextFrom = new Date(currentSeason.validUntil);\r\n nextFrom.setDate(nextFrom.getDate() + 1);\r\n nextFrom.setHours(0, 0, 0, 0);\r\n currentSeason = nextSeasons.find((s) => {\r\n const seasonValidFrom = new Date(s.validFrom);\r\n seasonValidFrom.setHours(0, 0, 0, 0);\r\n return seasonValidFrom.getTime() === nextFrom.getTime();\r\n });\r\n\r\n if (!currentSeason) {\r\n nextGap = nextFrom;\r\n }\r\n }\r\n }\r\n\r\n if (nextGap.getTime() - today.getTime() > this.thirtyDaysInMs) {\r\n this.showSeasonWarning = false;\r\n return;\r\n }\r\n\r\n this.showSeasonWarning = true;\r\n this.showSeasonWarningColor = true;\r\n\r\n const firstSeasonAfterGap = [...this.activeTrack.seasons]\r\n .filter((s) => !s.isEmergencyTimetable)\r\n .sort((a, b) => new Date(a.validFrom).getTime() - new Date(b.validFrom).getTime())\r\n .find((s) => new Date(s.validFrom).getTime() > nextGap.getTime());\r\n const firstSeasonAfterGapValidFrom = firstSeasonAfterGap ? new Date(firstSeasonAfterGap.validFrom) : undefined;\r\n\r\n if (noActiveSeason) {\r\n if (!firstSeasonAfterGap && !firstSeasonAfterGapValidFrom) {\r\n const sortedSeasons = [...this.activeTrack.seasons]\r\n .filter((s) => !s.isEmergencyTimetable)\r\n .sort((a, b) => new Date(a.validUntil).getTime() - new Date(b.validUntil).getTime());\r\n const latestSeasonInThePast = sortedSeasons[sortedSeasons.length - 1];\r\n nextGap = new Date(latestSeasonInThePast.validUntil);\r\n nextGap.setHours(0, 0, 0, 0);\r\n nextGap.setDate(nextGap.getDate() + 1);\r\n } else {\r\n const closestSeasonInThePast = [...this.activeTrack.seasons]\r\n .filter((s) => !s.isEmergencyTimetable)\r\n .sort((a, b) => new Date(b.validUntil).getTime() - new Date(a.validUntil).getTime())\r\n .find((s) => new Date(s.validFrom).getTime() < nextGap.getTime());\r\n nextGap = new Date(closestSeasonInThePast.validUntil);\r\n nextGap.setHours(0, 0, 0, 0);\r\n nextGap.setDate(nextGap.getDate() + 1);\r\n }\r\n this.showSeasonWarningColor = false;\r\n }\r\n\r\n this.seasonWarning$.next({ from: nextGap, until: firstSeasonAfterGapValidFrom });\r\n }\r\n\r\n private sortJourneys(journeys: TimetableJourney[]): void {\r\n journeys.forEach((journey) => {\r\n journey.items.sort((a, b) => (a.departureTime > b.departureTime ? 1 : -1));\r\n });\r\n journeys.sort((a, b) => (a.items[0].departureTime.trim() > b.items[0].departureTime.trim() ? 1 : -1));\r\n }\r\n}\r\n","\r\n \r\n \r\n \r\n \r\n \r\n \r\n {{ track.name }}\r\n \r\n \r\n \r\n\r\n \r\n \r\n \r\n \r\n
\r\n {{ season.name }}: {{ season.validFrom | dateFormat }} - {{ season.validUntil | dateFormat }}\r\n
\r\n
{{ season.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 {{ \"timetable.phrase.lastImport\" | translate }}: {{ this.activeSeason.lastImportDate | dateTimeFormat }}\r\n \r\n \r\n \r\n \r\n {{ \"timetable.phrase.lastSuccessfulRealTimeImport\" | translate }}: {{\r\n this.activeSeason.lastSuccessfulRealTimeImport | dateTimeFormat}}\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 {{ \"timetable.term.vehicleNumberAbbr\" | translate }}\r\n 5 ? 1 : 1.5\"\r\n class=\"sis-global-text-overflow-ellipsis\"\r\n >{{ station.name }}\r\n {{ \"timetable.term.direction\" | translate }}\r\n 2\">\r\n {{ \"general.term.edit\" | translate }}\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
{{ interval.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 \r\n \r\n \r\n \r\n {{ track.name }}\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n
\r\n {{ season.name }}: {{ season.validFrom | dateFormat }} - {{ season.validUntil | dateFormat }}\r\n
\r\n
\r\n {{ season.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 \r\n \r\n {{ \"timetable.phrase.lastImport\" | translate }}: \r\n \r\n \r\n \r\n \r\n {{ this.activeSeason.lastImportDate | dateTimeFormat }} \r\n \r\n \r\n {{ \"timetable.phrase.lastSuccessfulRealTimeImport\" | translate }}: \r\n \r\n {{ this.activeSeason.lastSuccessfulRealTimeImport | dateTimeFormat}} \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
{{ interval.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","import { HttpClient, HttpErrorResponse } from '@angular/common/http';\r\nimport { Injectable } from '@angular/core';\r\nimport moment from 'moment';\r\nimport { firstValueFrom, merge, Observable, of, Subject } from 'rxjs';\r\nimport { catchError, filter, map, scan, shareReplay, startWith, switchMap, withLatestFrom } from 'rxjs/operators';\r\nimport { EventBusService } from 'src/app/core/eventbus/event-bus.service';\r\nimport {\r\n TimetableImportUpdatedEvent,\r\n TimetableIntervalDayUpdatedEvent,\r\n TimetableJourneyUpdatedEvent,\r\n TimetableRealTimeDataUpdatedEvent,\r\n TimetableSeasonUpdatedEvent,\r\n} from 'src/app/core/eventbus/events';\r\nimport { DestinationService } from 'src/app/domain/destination/destination.service';\r\nimport { Feature } from 'src/app/domain/feature/feature.model';\r\nimport { FeatureAccessLevel } from 'src/app/domain/feature/feature-access-level.model';\r\nimport { FeatureId } from 'src/app/domain/feature/feature-id.model';\r\nimport { UserSettingsService } from 'src/app/domain/user-settings/user-settings.service';\r\nimport { TimetableIntervalDay } from 'src/app/timetable/domain/timetable-interval-day.model';\r\nimport { TimetableJourney } from 'src/app/timetable/domain/timetable-journey.model';\r\nimport { TimetableSeason } from 'src/app/timetable/domain/timetable-season.model';\r\nimport { TimetableTrackAdapter } from 'src/app/timetable/domain/timetable-track.adapter';\r\nimport { TimetableTrack } from 'src/app/timetable/domain/timetable-track.model';\r\nimport { UserMessage } from 'src/app/user-message/user-message.model';\r\nimport { UserMessageService } from 'src/app/user-message/user-message.service';\r\nimport { UserMessageColor } from 'src/app/user-message/user-message-color';\r\nimport { UserMessageIcon } from 'src/app/user-message/user-message-icon';\r\nimport { environment } from 'src/environments/environment';\r\n\r\n@Injectable({\r\n providedIn: 'root',\r\n})\r\nexport class TimetableService {\r\n private readonly baseRequestUrl: string = '/timetable';\r\n private readonly intervalDayBasePostUrl: string = '/timetable/journey';\r\n private readonly seasonBasePostUrl: string = '/timetable/season';\r\n private readonly seasonImportBaseUrl: string = '/timetable/import';\r\n private readonly intervalDayPostBaseUrl: string = '/timetable/intervalday';\r\n private readonly requiredFeature = new Feature(FeatureId.SISMEDIA_TIMETABLE, FeatureAccessLevel.READ);\r\n private readonly isImporting$ = new Subject<{ trackGuid: string; isImporting: boolean }>();\r\n\r\n private readonly timetableTracksRequest$: Observable =\r\n this.destinationService.selectedTenantFeatures$.pipe(\r\n filter((features) => features.some((f) => f.hasMinimumRequirementFor(this.requiredFeature))),\r\n switchMap(() => this.http.get(`${environment.baseUrlApi}${this.baseRequestUrl}`)),\r\n map((items) => TimetableTrackAdapter.adapt(items)),\r\n shareReplay({\r\n bufferSize: 1,\r\n refCount: true,\r\n })\r\n );\r\n\r\n private readonly timetableImportUpdate$: Observable = this.eventBus\r\n .observe(TimetableImportUpdatedEvent)\r\n .pipe(\r\n switchMap((event) =>\r\n this.http\r\n .get(`${environment.baseUrlApi}${this.baseRequestUrl}`)\r\n .pipe(map((items) => [event, items]))\r\n ),\r\n withLatestFrom(this.userSettingsService.userSettings$),\r\n map(([[event, items], userSettings]) => {\r\n const tracks = TimetableTrackAdapter.adapt(items);\r\n\r\n if (event.changedBy === userSettings.userGuid) {\r\n this.displayUserMessage(event.updateSuccessful, false, true);\r\n }\r\n this.isImporting$.next({ trackGuid: event.trackGuid, isImporting: false });\r\n\r\n return tracks;\r\n })\r\n );\r\n\r\n private readonly timetableTracks$: Observable = merge(\r\n this.timetableTracksRequest$,\r\n this.timetableImportUpdate$\r\n ).pipe(\r\n shareReplay({\r\n bufferSize: 1,\r\n refCount: true,\r\n })\r\n );\r\n\r\n private readonly timetableJourneyUpdate$: Observable = this.eventBus\r\n .observe(TimetableJourneyUpdatedEvent)\r\n .pipe(\r\n withLatestFrom(this.timetableTracks$),\r\n filter(([event, tracks]) => tracks.some((d) => d.tenantGuid === event.tenantGuid)),\r\n withLatestFrom(this.userSettingsService.userSettings$),\r\n map(([[event, tracks], userSettings]) => {\r\n if (event.updateSuccessful) {\r\n const updatedTrack = tracks.find((d) => d.seasons.some((s) => s.guid === event.timetableJourney.seasonGuid));\r\n const updatedSeason = updatedTrack?.seasons.find((s) => s.guid === event.timetableJourney.seasonGuid);\r\n if (updatedSeason) {\r\n if (event.deleted) {\r\n const deletedJourney = updatedSeason.journeys.find((j) => j.guid === event.timetableJourney.guid);\r\n updatedSeason.journeys.splice(updatedSeason.journeys.indexOf(deletedJourney), 1);\r\n } else {\r\n const updatedJourney = updatedSeason.journeys.find((j) => j.guid === event.timetableJourney.guid);\r\n if (!updatedJourney) {\r\n updatedSeason.journeys.push(event.timetableJourney);\r\n } else {\r\n updatedJourney.vehicleNumber = event.timetableJourney.vehicleNumber;\r\n updatedJourney.date = event.timetableJourney.date;\r\n updatedJourney.mo = event.timetableJourney.mo;\r\n updatedJourney.tu = event.timetableJourney.tu;\r\n updatedJourney.we = event.timetableJourney.we;\r\n updatedJourney.th = event.timetableJourney.th;\r\n updatedJourney.fr = event.timetableJourney.fr;\r\n updatedJourney.sa = event.timetableJourney.sa;\r\n updatedJourney.su = event.timetableJourney.su;\r\n updatedJourney.items = event.timetableJourney.items;\r\n }\r\n }\r\n }\r\n }\r\n if (event.changedBy === userSettings.userGuid) {\r\n this.displayUserMessage(event.updateSuccessful, event.deleted);\r\n }\r\n\r\n return tracks;\r\n })\r\n );\r\n\r\n private readonly timetableWithJourneyUpdates$: Observable = merge(\r\n this.timetableTracks$,\r\n this.timetableJourneyUpdate$\r\n ).pipe(\r\n shareReplay({\r\n bufferSize: 1,\r\n refCount: true,\r\n })\r\n );\r\n\r\n private readonly timetableSeasonUpdate$: Observable = this.eventBus\r\n .observe(TimetableSeasonUpdatedEvent)\r\n .pipe(\r\n withLatestFrom(this.timetableWithJourneyUpdates$),\r\n filter(([event, tracks]) => tracks.some((d) => d.tenantGuid === event.tenantGuid)),\r\n withLatestFrom(this.userSettingsService.userSettings$),\r\n map(([[event, tracks], userSettings]) => {\r\n const updatedTrack = tracks.find((d) => d.seasons.some((s) => s.guid === event.timetableSeason.guid));\r\n if (event.updateSuccessful) {\r\n const updatedSeason = updatedTrack?.seasons.find((s) => s.guid === event.timetableSeason.guid);\r\n if (updatedSeason) {\r\n Object.assign(updatedSeason, event.timetableSeason);\r\n }\r\n }\r\n if (event.changedBy === userSettings.userGuid) {\r\n this.displayUserMessage(event.updateSuccessful, false, event.timetableSeason.isImportTimetable);\r\n }\r\n if (event.timetableSeason.isImportTimetable) {\r\n this.isImporting$.next({ trackGuid: updatedTrack.guid, isImporting: false });\r\n }\r\n\r\n return tracks;\r\n })\r\n );\r\n\r\n private readonly timetableWithJourneyAndSeasonUpdates$: Observable = merge(\r\n this.timetableWithJourneyUpdates$,\r\n this.timetableSeasonUpdate$\r\n ).pipe(\r\n shareReplay({\r\n bufferSize: 1,\r\n refCount: true,\r\n })\r\n );\r\n\r\n private readonly timetableRealTimeUpdate$: Observable = this.eventBus\r\n .observe(TimetableRealTimeDataUpdatedEvent)\r\n .pipe(\r\n withLatestFrom(this.timetableWithJourneyAndSeasonUpdates$),\r\n filter(([event, tracks]) => tracks.some((track) => track.guid === event.trackGuid)),\r\n map(([event, tracks]) => {\r\n const updatedTrack = tracks.find((d) => d.guid === event.trackGuid);\r\n updatedTrack.seasons.find((s) => s.guid === event.seasonGuid).lastSuccessfulRealTimeImport =\r\n event.lastSuccessfulRealTimeImport;\r\n\r\n return tracks;\r\n })\r\n );\r\n\r\n private readonly timetableWithJourneyAndSeasonAndRealTimeUpdates$: Observable = merge(\r\n this.timetableWithJourneyAndSeasonUpdates$,\r\n this.timetableRealTimeUpdate$\r\n ).pipe(\r\n shareReplay({\r\n bufferSize: 1,\r\n refCount: true,\r\n })\r\n );\r\n\r\n private readonly timetableIntervalDayUpdate$: Observable = this.eventBus\r\n .observe(TimetableIntervalDayUpdatedEvent)\r\n .pipe(\r\n withLatestFrom(this.timetableWithJourneyAndSeasonAndRealTimeUpdates$),\r\n filter(([event, tracks]) => tracks.some((track) => track.tenantGuid === event.tenantGuid)),\r\n withLatestFrom(this.userSettingsService.userSettings$),\r\n map(([[event, tracks], userSettings]) => {\r\n if (event.updateSuccessful) {\r\n tracks.some((track) => {\r\n const updatedInterval = track.intervals.find(\r\n (interval) => interval.guid === event.timetableIntervalDay.intervalGuid\r\n );\r\n if (updatedInterval) {\r\n const updatedIntervalDay = updatedInterval.intervalDays.find(\r\n (day) => day.guid === event.timetableIntervalDay.guid\r\n );\r\n if (updatedIntervalDay) {\r\n Object.assign(updatedIntervalDay, event.timetableIntervalDay);\r\n }\r\n\r\n return true;\r\n }\r\n\r\n return false;\r\n });\r\n }\r\n\r\n if (event.changedBy === userSettings.userGuid) {\r\n this.displayUserMessage(event.updateSuccessful, false);\r\n }\r\n\r\n return tracks;\r\n })\r\n );\r\n\r\n readonly timetables$ = merge(\r\n this.timetableWithJourneyAndSeasonAndRealTimeUpdates$,\r\n this.timetableIntervalDayUpdate$\r\n ).pipe(\r\n shareReplay({\r\n bufferSize: 1,\r\n refCount: true,\r\n })\r\n );\r\n\r\n readonly isImportingMap$ = this.isImporting$.pipe(\r\n scan((acc, value) => {\r\n if (value != null) {\r\n acc.set(value.trackGuid, value.isImporting);\r\n }\r\n return acc;\r\n }, new Map()),\r\n startWith(new Map()),\r\n shareReplay(1)\r\n );\r\n\r\n constructor(\r\n private eventBus: EventBusService,\r\n private http: HttpClient,\r\n private userMessageService: UserMessageService,\r\n private userSettingsService: UserSettingsService,\r\n private destinationService: DestinationService\r\n ) {}\r\n\r\n async updateJourney(updatedTimetableJourneyData: TimetableJourney): Promise {\r\n await firstValueFrom(\r\n this.http.post(`${environment.baseUrlApi}${this.intervalDayBasePostUrl}`, updatedTimetableJourneyData).pipe(\r\n catchError((error: HttpErrorResponse) => {\r\n this.displayUserMessage(false, false);\r\n throw error;\r\n })\r\n )\r\n );\r\n }\r\n\r\n async updateSeason(updatedSeason: TimetableSeason): Promise {\r\n await firstValueFrom(\r\n this.http.post(`${environment.baseUrlApi}${this.seasonBasePostUrl}`, updatedSeason).pipe(\r\n catchError((error: HttpErrorResponse) => {\r\n this.displayUserMessage(false, false);\r\n throw error;\r\n })\r\n )\r\n );\r\n }\r\n\r\n async deleteJourney(journeyGuid: string): Promise {\r\n await firstValueFrom(\r\n this.http.delete(`${environment.baseUrlApi}${this.intervalDayBasePostUrl}/${journeyGuid}`).pipe(\r\n catchError((error: HttpErrorResponse) => {\r\n this.displayUserMessage(false, true);\r\n throw error;\r\n })\r\n )\r\n );\r\n }\r\n\r\n async updateIntervalDay(updatedIntervalDay: TimetableIntervalDay): Promise {\r\n await firstValueFrom(\r\n this.http.post(`${environment.baseUrlApi}${this.intervalDayPostBaseUrl}`, updatedIntervalDay).pipe(\r\n catchError((error: HttpErrorResponse) => {\r\n this.displayUserMessage(false, false);\r\n throw error;\r\n })\r\n )\r\n );\r\n }\r\n\r\n async requestTimetableImport(trackGuid: string): Promise {\r\n this.isImporting$.next({ trackGuid, isImporting: true });\r\n\r\n const success = await firstValueFrom(\r\n this.http.get(`${environment.baseUrlApi}${this.seasonImportBaseUrl}/${trackGuid}`).pipe(\r\n map(() => true),\r\n catchError(() => {\r\n const userMessage = new UserMessage({\r\n message: 'timetable.phrase.importFailed',\r\n icon: UserMessageIcon.failed,\r\n durationMs: 2000,\r\n position: 'top',\r\n color: UserMessageColor.red,\r\n });\r\n this.userMessageService.presentToast(userMessage);\r\n return of(false);\r\n })\r\n )\r\n );\r\n\r\n this.isImporting$.next({ trackGuid, isImporting: success });\r\n }\r\n\r\n isValidJourneyOfTodayOrTomorrow(journey: TimetableJourney, todayOrTomorrow: 'today' | 'tomorrow'): boolean {\r\n const today = new Date();\r\n const todayDate = moment(today).format('YYYY-MM-DD');\r\n const todayDayOfWeek = today.getDay();\r\n\r\n const tomorrow = new Date(today);\r\n tomorrow.setDate(today.getDate() + 1);\r\n\r\n const tomorrowDate = moment(tomorrow).format('YYYY-MM-DD');\r\n const tomorrowDayOfWeek = tomorrow.getDay();\r\n\r\n const date = journey.date;\r\n const weekdaysValidity = {\r\n 1: journey.mo,\r\n 2: journey.tu,\r\n 3: journey.we,\r\n 4: journey.th,\r\n 5: journey.fr,\r\n 6: journey.sa,\r\n 0: journey.su,\r\n };\r\n\r\n const selectedDate = todayOrTomorrow === 'today' ? todayDate : tomorrowDate;\r\n const selectedDayOfWeek = todayOrTomorrow === 'today' ? todayDayOfWeek : tomorrowDayOfWeek;\r\n\r\n if (date) {\r\n const formDate = moment(new Date(date)).format('YYYY-MM-DD');\r\n return formDate === selectedDate;\r\n }\r\n\r\n return weekdaysValidity[selectedDayOfWeek] || false;\r\n }\r\n\r\n private displayUserMessage(updateSuccessful: boolean, deleted: boolean, imported = false): void {\r\n const message = deleted\r\n ? updateSuccessful\r\n ? 'timetable.phrase.entryDeletedSuccess'\r\n : 'timetable.phrase.entryDeletedFailed'\r\n : imported\r\n ? updateSuccessful\r\n ? 'timetable.phrase.importSuccessful'\r\n : 'timetable.phrase.importFailed'\r\n : updateSuccessful\r\n ? 'timetable.phrase.entrySavedSuccess'\r\n : 'timetable.phrase.entrySavedFailed';\r\n\r\n const icon = updateSuccessful ? UserMessageIcon.success : UserMessageIcon.failed;\r\n const color = updateSuccessful ? UserMessageColor.green : UserMessageColor.red;\r\n const userMessage = new UserMessage({\r\n message,\r\n icon,\r\n durationMs: 2000,\r\n position: 'top',\r\n color,\r\n });\r\n this.userMessageService.presentToast(userMessage);\r\n }\r\n}\r\n","import { Component, Input } from '@angular/core';\r\nimport { PopoverController } from '@ionic/angular';\r\nimport { FeatureAccessLevel } from 'src/app/domain/feature/feature-access-level.model';\r\n\r\n@Component({\r\n selector: 'sis-access-level-popover',\r\n templateUrl: './access-level-popover.component.html',\r\n styleUrls: ['./access-level-popover.component.scss'],\r\n standalone: false,\r\n})\r\nexport class AccessLevelPopover {\r\n @Input() header: string;\r\n @Input() subHeader: string;\r\n @Input() accessLevels: Map;\r\n @Input() selectedAccessLevel: FeatureAccessLevel;\r\n\r\n constructor(private popoverController: PopoverController) {}\r\n\r\n async selectOption(value: FeatureAccessLevel): Promise {\r\n await this.popoverController.dismiss(value);\r\n }\r\n}\r\n","\r\n \r\n {{ header }}\r\n \r\n \r\n

{{ subHeader }}

\r\n
\r\n
\r\n \r\n \r\n {{ item.value.translateString | translate }}\r\n \r\n \r\n
\r\n
\r\n","import { Component, Input, OnInit } from '@angular/core';\r\nimport { combineLatest } from 'rxjs';\r\nimport { filter, map, take, takeUntil } from 'rxjs/operators';\r\nimport { Unsubscriber } from 'src/app/core/unsubscriber';\r\nimport { Feature } from 'src/app/domain/feature/feature.model';\r\nimport { FeatureAccessLevel } from 'src/app/domain/feature/feature-access-level.model';\r\nimport { FeatureId } from 'src/app/domain/feature/feature-id.model';\r\nimport { UserSettingsService } from 'src/app/domain/user-settings/user-settings.service';\r\nimport { UserManagementService } from 'src/app/user-management/user-management.service';\r\nimport { UserPermissionUpdateData } from 'src/app/user-management/user-permission-update-data.model';\r\nimport { PopoverController } from '@ionic/angular';\r\nimport { AccessLevelPopover } from 'src/app/user-management/access-level-selector/access-level-popover/access-level-popover.component';\r\n\r\n@Component({\r\n selector: 'sis-access-level-selector',\r\n templateUrl: './access-level-selector.component.html',\r\n styleUrls: ['./access-level-selector.component.scss'],\r\n standalone: false,\r\n})\r\nexport class AccessLevelSelector extends Unsubscriber implements OnInit {\r\n private readonly user$ = this.userManagementService.userManagementData$.pipe(\r\n map((data) => data.users.find((p) => p.userGuid === this.userGuid)),\r\n filter((user) => !!user)\r\n );\r\n\r\n @Input() tenantFeature: Feature;\r\n @Input() userGuid: string;\r\n @Input() writePermission: boolean;\r\n\r\n private updateData: UserPermissionUpdateData;\r\n private feature: Feature;\r\n private popoverSubHeader: string;\r\n\r\n accessLevels = new Map();\r\n accessLevelClass: string;\r\n translatedFeatureName: string;\r\n disabled: boolean;\r\n label: string;\r\n selectedAccessLevel: FeatureAccessLevel;\r\n\r\n constructor(\r\n private userManagementService: UserManagementService,\r\n private userSettingService: UserSettingsService,\r\n private popoverController: PopoverController\r\n ) {\r\n super();\r\n }\r\n\r\n ngOnInit() {\r\n this.user$.pipe(takeUntil(this.onDestroy$)).subscribe((user) => {\r\n this.feature =\r\n user.features.find((f) => f.featureId === this.tenantFeature.featureId) ??\r\n new Feature(this.tenantFeature.featureId, FeatureAccessLevel.NONE);\r\n\r\n if (this.tenantFeature.featureAccessLevel >= FeatureAccessLevel.NONE) {\r\n this.accessLevels.set(FeatureAccessLevel.NONE, {\r\n label: '-',\r\n translateString: 'usermanagement.accesslevel.none',\r\n });\r\n }\r\n\r\n if (this.tenantFeature.featureAccessLevel >= FeatureAccessLevel.READ) {\r\n this.accessLevels.set(FeatureAccessLevel.READ, {\r\n label: 'R',\r\n translateString: 'usermanagement.accesslevel.read',\r\n });\r\n }\r\n\r\n if (this.tenantFeature.featureAccessLevel >= FeatureAccessLevel.WRITE) {\r\n this.accessLevels.set(FeatureAccessLevel.WRITE, {\r\n label: 'W',\r\n translateString: 'usermanagement.accesslevel.write',\r\n });\r\n }\r\n\r\n this.updateValues();\r\n });\r\n\r\n this.updatePopoverOptions();\r\n\r\n this.userSettingService.userSettings$.pipe(take(1)).subscribe((userSettings) => {\r\n this.disabled =\r\n !this.writePermission ||\r\n (userSettings.userGuid === this.userGuid && this.tenantFeature.featureId === FeatureId.USERMANAGEMENT);\r\n\r\n this.updateValues();\r\n });\r\n }\r\n\r\n async changeAccessLevel(featureAccessLevel: FeatureAccessLevel): Promise {\r\n if (this.feature.featureAccessLevel === featureAccessLevel) {\r\n return;\r\n }\r\n\r\n this.feature.featureAccessLevel = featureAccessLevel;\r\n\r\n this.updateValues();\r\n\r\n this.updateData = {\r\n userGuid: this.userGuid,\r\n featureId: this.tenantFeature.featureId,\r\n featureAccessLevel: this.feature.featureAccessLevel,\r\n };\r\n await this.userManagementService.updateUserPermission(this.updateData);\r\n }\r\n\r\n async presentPopover(e: Event): Promise {\r\n const popover = await this.popoverController.create({\r\n component: AccessLevelPopover,\r\n event: e,\r\n backdropDismiss: true,\r\n cssClass: 'sis-global-popover sis-global-access-level-popover',\r\n componentProps: {\r\n header: this.translatedFeatureName,\r\n subHeader: this.popoverSubHeader,\r\n accessLevels: this.accessLevels,\r\n selectedAccessLevel: this.selectedAccessLevel,\r\n },\r\n alignment: 'center',\r\n });\r\n\r\n await popover.present();\r\n\r\n const dismissResult = await popover.onDidDismiss();\r\n if (dismissResult.data != null) {\r\n await this.changeAccessLevel(dismissResult.data);\r\n }\r\n }\r\n\r\n private updatePopoverOptions(): void {\r\n combineLatest([this.userManagementService.featureTranslationMap$, this.user$])\r\n .pipe(takeUntil(this.onDestroy$))\r\n .subscribe(([featureTranslationMap, user]) => {\r\n this.translatedFeatureName = featureTranslationMap.get(this.tenantFeature.featureId);\r\n this.popoverSubHeader = user.displayName;\r\n });\r\n }\r\n\r\n private updateValues(): void {\r\n this.selectedAccessLevel = this.feature.featureAccessLevel;\r\n this.label = this.accessLevels.get(this.selectedAccessLevel)?.label;\r\n this.accessLevelClass = 'sis-access-level-' + FeatureAccessLevel[this.feature.featureAccessLevel].toLowerCase();\r\n\r\n if (this.disabled) {\r\n this.accessLevelClass += ' sis-disabled';\r\n }\r\n }\r\n}\r\n","\r\n
\r\n {{ label }}\r\n
\r\n\r\n","import { FeatureAdapter } from 'src/app/domain/feature/feature.adapter';\r\nimport { ManagedTenant } from 'src/app/user-management/domain/managed-tenant.model';\r\n\r\nexport class ManagedTenantAdapter {\r\n static adapt(items: any): ManagedTenant[] {\r\n const tenants: ManagedTenant[] = [];\r\n if (!items) {\r\n return [];\r\n }\r\n\r\n items.forEach((e: any) => {\r\n tenants.push({\r\n guid: e.guid,\r\n alias: e.alias,\r\n activeUsers: e.activeUsers,\r\n maxUsers: e.maxUsers,\r\n hasWritePermission: e.hasWritePermission,\r\n features: FeatureAdapter.adapt(e.features).sort((a, b) => a.featureId - b.featureId),\r\n });\r\n });\r\n\r\n return tenants;\r\n }\r\n}\r\n","\r\nimport { ManagedTenantAdapter } from 'src/app/user-management/domain/managed-tenant.adapter';\r\nimport { UserAdapter } from 'src/app/user-management/domain/user.adapter';\r\nimport { UserManagementData as UserManagementRequestData } from 'src/app/user-management/domain/user-management-data.model';\r\n\r\nexport class UserManagementDataAdapter {\r\n static adapt(item: any): UserManagementRequestData | null {\r\n if (!item) {\r\n return null;\r\n }\r\n\r\n return {\r\n users: UserAdapter.adapt(item.users),\r\n managedTenants: ManagedTenantAdapter.adapt(item.tenantInfos),\r\n };\r\n }\r\n}\r\n","import { FeatureAdapter } from 'src/app/domain/feature/feature.adapter';\r\nimport { User } from 'src/app/user-management/domain/user.model';\r\n\r\nexport class UserAdapter {\r\n static adapt(items: any): User[] {\r\n const users: User[] = [];\r\n if (!items) {\r\n return [];\r\n }\r\n\r\n items.forEach((e: any) => {\r\n users.push({\r\n userGuid: e.userGuid,\r\n email: e.email,\r\n displayName: e.displayName,\r\n invitationAccepted: e.invitationAccepted,\r\n isSisag: e.isSisag,\r\n features: FeatureAdapter.adapt(e.features).sort((a, b) => a.featureId - b.featureId),\r\n tenantGuids: e.tenantGuids,\r\n });\r\n });\r\n\r\n return users;\r\n }\r\n}\r\n","import { Component, Input, OnInit, ViewChild } from '@angular/core';\r\nimport { FormControl, FormGroup, Validators } from '@angular/forms';\r\nimport { IonInput, ModalController } from '@ionic/angular';\r\nimport { debounceTime, takeUntil } from 'rxjs/operators';\r\nimport { Unsubscriber } from 'src/app/core/unsubscriber';\r\nimport { ConfirmationDialogService } from 'src/app/core/utils/confirmation-dialog.service';\r\nimport { ScreenSizeService } from 'src/app/core/utils/screen-size.service';\r\nimport { DestinationService } from 'src/app/domain/destination/destination.service';\r\nimport { UserSettingsService } from 'src/app/domain/user-settings/user-settings.service';\r\nimport { ManagedTenant } from 'src/app/user-management/domain/managed-tenant.model';\r\nimport { User } from 'src/app/user-management/domain/user.model';\r\nimport { UserManagementService } from 'src/app/user-management/user-management.service';\r\nimport { NIL as emptyGuid } from 'uuid';\r\n\r\n@Component({\r\n selector: 'sis-user-management-edit-modal',\r\n templateUrl: './user-management-edit-modal.component.html',\r\n styleUrls: ['./user-management-edit-modal.component.scss'],\r\n standalone: false\r\n})\r\nexport class UserManagementEditModalComponent extends Unsubscriber implements OnInit {\r\n @Input() user: User;\r\n @Input() managedTenants: ManagedTenant[];\r\n @Input() isAdministrator: boolean;\r\n\r\n @ViewChild('emailInput', { static: false }) emailInput: IonInput;\r\n @ViewChild('displayNameInput', { static: false }) displayNameInput: IonInput;\r\n\r\n isLoggedInUser: boolean;\r\n isSaving = false;\r\n isDeleting = false;\r\n showSpinner = false;\r\n modifiedAndValid = false;\r\n\r\n activeTenantGuid: string;\r\n editedUser: User;\r\n formGroup: FormGroup;\r\n\r\n private loggedInUserGuid: string;\r\n\r\n bigScreenMode: boolean;\r\n\r\n constructor(\r\n private modalCtrl: ModalController,\r\n private userManagementService: UserManagementService,\r\n private userSettingsService: UserSettingsService,\r\n private destinationService: DestinationService,\r\n private confirmationDialogService: ConfirmationDialogService,\r\n private screenSizeService: ScreenSizeService\r\n ) {\r\n super();\r\n }\r\n\r\n ngOnInit() {\r\n this.screenSizeService.bigScreenMode$\r\n .pipe(takeUntil(this.onDestroy$))\r\n .subscribe((screenMode) => (this.bigScreenMode = screenMode));\r\n\r\n this.userSettingsService.userSettings$.pipe(takeUntil(this.onDestroy$)).subscribe((userSettings) => {\r\n this.loggedInUserGuid = userSettings.userGuid;\r\n this.isLoggedInUser = this.user?.userGuid === this.loggedInUserGuid;\r\n });\r\n\r\n this.destinationService.selectedTenant$\r\n .pipe(takeUntil(this.onDestroy$))\r\n .subscribe((tenant) => (this.activeTenantGuid = tenant.guid));\r\n\r\n this.formGroup = new FormGroup({\r\n email: new FormControl({ value: this.user?.email, disabled: this.user != null }, [\r\n Validators.required,\r\n Validators.email,\r\n ]),\r\n displayName: new FormControl({ value: this.user?.displayName, disabled: true }, [\r\n Validators.required,\r\n Validators.minLength(2),\r\n ]),\r\n });\r\n\r\n this.formGroup.valueChanges.pipe(debounceTime(200), takeUntil(this.onDestroy$)).subscribe(() => {\r\n if (this.editedUser) {\r\n this.editedUser.displayName = this.formGroup.controls.displayName.value;\r\n this.editedUser.email = this.formGroup.controls.email.value;\r\n }\r\n this.checkModifiedAndValid();\r\n });\r\n\r\n this.initEditedUser(this.user);\r\n\r\n if (!this.user) {\r\n this.editUserTenantMapping(this.activeTenantGuid, true);\r\n }\r\n\r\n this.managedTenants.sort((a, b) => {\r\n const includesA = this.user?.tenantGuids.includes(a.guid);\r\n const includesB = this.user?.tenantGuids.includes(b.guid);\r\n\r\n return includesA === includesB ? 0 : includesA ? -1 : 1;\r\n });\r\n\r\n setTimeout(() => this.emailInput.setFocus(), 200);\r\n }\r\n\r\n checkExistingUser(event: any): void {\r\n if (this.formGroup.controls.email.invalid) {\r\n return;\r\n }\r\n\r\n this.formGroup.controls.displayName.setValue(null, { emitEvent: false });\r\n this.formGroup.controls.displayName.disable({ emitEvent: false });\r\n this.showSpinner = true;\r\n\r\n const email = event.target.value;\r\n this.userManagementService\r\n .getUserInfoRequest(email)\r\n .pipe(takeUntil(this.onDestroy$))\r\n .subscribe((user) => {\r\n this.user = user;\r\n if (user) {\r\n this.initEditedUser(user);\r\n this.formGroup.controls.displayName.disable({ emitEvent: false });\r\n } else {\r\n this.formGroup.controls.displayName.enable({ emitEvent: false });\r\n setTimeout(() => this.displayNameInput.setFocus(), 200);\r\n }\r\n\r\n this.isLoggedInUser = this.user?.userGuid === this.loggedInUserGuid;\r\n this.showSpinner = false;\r\n });\r\n }\r\n\r\n close(): void {\r\n this.modalCtrl.dismiss();\r\n }\r\n\r\n async onSave(): Promise {\r\n if (this.editedUser.tenantGuids?.length === 0) {\r\n this.userManagementService.showFailureToast('usermanagement.phrase.userWithoutTenant');\r\n return;\r\n }\r\n\r\n this.isSaving = true;\r\n\r\n if (this.user) {\r\n this.editedUser.tenantGuids = this.editedUser.tenantGuids.filter((t) =>\r\n this.managedTenants.some((tenant) => tenant.guid === t && tenant.hasWritePermission)\r\n );\r\n\r\n const success = await this.userManagementService.updateUser(this.editedUser);\r\n if (success) {\r\n this.close();\r\n } else {\r\n this.isSaving = false;\r\n }\r\n } else {\r\n const success = await this.userManagementService.addUser(this.editedUser);\r\n if (success) {\r\n this.close();\r\n } else {\r\n this.isSaving = false;\r\n }\r\n }\r\n }\r\n\r\n async onDelete(): Promise {\r\n const confirmed = await this.confirmationDialogService.presentAlert(\r\n 'usermanagement.phrase.deleteUser',\r\n 'general.term.yes'\r\n );\r\n\r\n if (confirmed && this.user) {\r\n this.isDeleting = true;\r\n const success = await this.userManagementService.deleteUser(this.user);\r\n if (success) {\r\n this.close();\r\n } else {\r\n this.isDeleting = false;\r\n }\r\n }\r\n }\r\n\r\n tenantAlias(_: number, tenant: ManagedTenant): string {\r\n return tenant.alias;\r\n }\r\n\r\n editUserTenantMapping(tenant: string, enable: boolean): void {\r\n if (enable) {\r\n this.editedUser.tenantGuids.push(tenant);\r\n } else {\r\n this.editedUser.tenantGuids = this.editedUser.tenantGuids.filter((t) => t !== tenant);\r\n }\r\n this.checkModifiedAndValid();\r\n }\r\n\r\n private initEditedUser(user: User | null): void {\r\n this.editedUser = {\r\n userGuid: user?.userGuid ?? emptyGuid,\r\n email: user?.email ?? null,\r\n displayName: user?.displayName ?? null,\r\n tenantGuids: user ? [...this.user.tenantGuids] : [],\r\n features: user ? [...this.user.features] : [],\r\n invitationAccepted: user?.invitationAccepted ?? false,\r\n isSisag: user?.isSisag,\r\n };\r\n\r\n this.formGroup.setValue(\r\n {\r\n email: this.editedUser.email,\r\n displayName: this.editedUser.displayName,\r\n },\r\n { emitEvent: false }\r\n );\r\n }\r\n\r\n private isEqualUser(user1: User, user2: User): boolean {\r\n return (\r\n user1 !== null &&\r\n user2 !== null &&\r\n user1?.displayName === user2?.displayName &&\r\n user1?.email === user2?.email &&\r\n user1?.tenantGuids.length === user2?.tenantGuids.length &&\r\n user1?.tenantGuids.every((x, index) => x === user2?.tenantGuids[index])\r\n );\r\n }\r\n\r\n private checkModifiedAndValid(): void {\r\n this.modifiedAndValid =\r\n !this.formGroup.invalid &&\r\n !this.isEqualUser(this.user, this.editedUser) &&\r\n this.editedUser.displayName?.length > 0 &&\r\n this.editedUser.tenantGuids?.length > 0;\r\n }\r\n}\r\n","\r\n \r\n \r\n \r\n \r\n {{\r\n this.user ? ('usermanagement.phrase.editUser' | translate) : ('usermanagement.phrase.addUser' | translate)\r\n }}\r\n \r\n\r\n\r\n\r\n \r\n \r\n
\r\n \r\n {{ 'general.term.email' | translate }}:\r\n \r\n \r\n \r\n {{ 'usermanagement.term.displayName' | translate }}:\r\n \r\n \r\n \r\n\r\n \r\n {{ 'general.term.destinations' | translate }}:\r\n \r\n\r\n
\r\n \r\n \r\n \r\n \r\n = tenant.maxUsers &&\r\n !this.user?.tenantGuids.includes(tenant.guid) &&\r\n !this.isAdministrator) ||\r\n (this.isLoggedInUser && tenant.guid === this.activeTenantGuid) ||\r\n !tenant.hasWritePermission\r\n \"\r\n data-test=\"tenant-checkbox\"\r\n color=\"secondary\"\r\n >\r\n \r\n {{ tenant.alias }}\r\n
\r\n = tenant.maxUsers\"\r\n class=\"sis-maxusers-reached-icon\"\r\n name=\"warning-outline\"\r\n data-test=\"usermanagement-warning-icon\"\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","import { Component, Input } from '@angular/core';\r\nimport { ModalController } from '@ionic/angular';\r\n\r\n@Component({\r\n selector: 'sis-user-management-filter',\r\n templateUrl: './user-management-filter.component.html',\r\n standalone: false\r\n})\r\nexport class UserManagementFilterComponent {\r\n @Input() isCockpitChecked: boolean;\r\n @Input() isSisMediaChecked: boolean;\r\n @Input() isGeneralChecked: boolean;\r\n\r\n constructor(private modalController: ModalController) {}\r\n\r\n dismiss() {\r\n this.modalController.dismiss();\r\n }\r\n\r\n apply() {\r\n this.modalController.dismiss({\r\n isCockpitChecked: this.isCockpitChecked,\r\n isSisMediaChecked: this.isSisMediaChecked,\r\n isGeneralChecked: this.isGeneralChecked,\r\n });\r\n }\r\n}\r\n","\r\n \r\n {{ 'sambesi.term.filter' | translate }}\r\n \r\n \r\n \r\n \r\n\r\n\r\n\r\n \r\n \r\n {{ 'general.term.cockpit' | translate }}\r\n \r\n \r\n \r\n {{ 'general.term.sismedia' | translate }}\r\n \r\n \r\n \r\n {{ 'general.term.general' | translate }}\r\n \r\n \r\n \r\n\r\n\r\n\r\n
\r\n \r\n
\r\n
\r\n","import { Component, EventEmitter, Input, OnInit, Output } from '@angular/core';\r\nimport { ModalController } from '@ionic/angular';\r\nimport { takeUntil } from 'rxjs';\r\nimport { Unsubscriber } from 'src/app/core/unsubscriber';\r\nimport { ConfirmationDialogService } from 'src/app/core/utils/confirmation-dialog.service';\r\nimport { ScreenSizeService } from 'src/app/core/utils/screen-size.service';\r\nimport { Feature } from 'src/app/domain/feature/feature.model';\r\nimport { ManagedTenant } from 'src/app/user-management/domain/managed-tenant.model';\r\nimport { User } from 'src/app/user-management/domain/user.model';\r\nimport { UserManagementService } from 'src/app/user-management/user-management.service';\r\nimport { UserManagementEditModalComponent } from 'src/app/user-management/user-management-edit-modal/user-management-edit-modal.component';\r\n\r\n@Component({\r\n selector: 'sis-user-management-item',\r\n templateUrl: './user-management-item.component.html',\r\n styleUrls: ['./user-management-item.component.scss'],\r\n standalone: false\r\n})\r\nexport class UserManagementItemComponent extends Unsubscriber implements OnInit {\r\n @Input() user: User;\r\n @Input() tenantFeatures: Feature[];\r\n @Input() hasBatchPermission: boolean;\r\n @Input() writePermission: boolean;\r\n @Input() usersLoaded: boolean;\r\n @Input() isAdministrator: boolean;\r\n @Input() managedTenants: ManagedTenant[];\r\n\r\n @Output() contextMenuOnUser = new EventEmitter<{ user: User; event: any }>();\r\n\r\n bigScreenMode: boolean;\r\n\r\n constructor(\r\n private confirmationDialogService: ConfirmationDialogService,\r\n private userManagementService: UserManagementService,\r\n private modalCtrl: ModalController,\r\n private screenSizeService: ScreenSizeService\r\n ) {\r\n super();\r\n }\r\n ngOnInit(): void {\r\n this.screenSizeService.bigScreenMode$\r\n .pipe(takeUntil(this.onDestroy$))\r\n .subscribe((screenMode) => (this.bigScreenMode = screenMode));\r\n }\r\n trackFeatureIds(_: any, item: Feature) {\r\n return item.featureId;\r\n }\r\n\r\n async batchSetFeaturePermissions(): Promise {\r\n if (this.hasBatchPermission) {\r\n const confirmed = await this.confirmationDialogService.presentAlert(\r\n 'usermanagement.phrase.resetAllUserPermissionsDefault',\r\n 'general.term.yes'\r\n );\r\n\r\n if (confirmed) {\r\n await this.userManagementService.setBatchPermissions(this.tenantFeatures, [this.user.userGuid]);\r\n }\r\n }\r\n }\r\n\r\n openEditModal(user: User, managedTenants: ManagedTenant[], isAdministrator: boolean): void {\r\n this.modalCtrl\r\n .create({\r\n component: UserManagementEditModalComponent,\r\n cssClass: 'sis-user-management-edit-modal',\r\n componentProps: {\r\n user,\r\n managedTenants,\r\n isAdministrator,\r\n },\r\n backdropDismiss: false,\r\n })\r\n .then((modal) => {\r\n modal.present();\r\n modal.onDidDismiss().then((overlayEventDetail) => (this.usersLoaded = !overlayEventDetail.data));\r\n });\r\n }\r\n\r\n emitContextMenuOnUser(event: any): void {\r\n this.contextMenuOnUser.emit({ user: this.user, event });\r\n }\r\n}\r\n","
\r\n
\r\n
{{ this.user.displayName }}
\r\n
{{ this.user.email }}
\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
{{ this.user.displayName }}
\r\n
{{ this.user.email }}
\r\n
\r\n
\r\n","import { ScrollingModule } from '@angular/cdk/scrolling';\r\nimport { CommonModule } from '@angular/common';\r\nimport { NgModule } from '@angular/core';\r\nimport { FormsModule, ReactiveFormsModule } from '@angular/forms';\r\nimport { MatTableModule } from '@angular/material/table';\r\nimport { MatTooltipModule } from '@angular/material/tooltip';\r\nimport { RouterModule } from '@angular/router';\r\nimport { IonicModule } from '@ionic/angular';\r\nimport { TranslateModule } from '@ngx-translate/core';\r\nimport { CoreModule } from 'src/app/core/core.module';\r\nimport { AccessLevelSelector } from 'src/app/user-management/access-level-selector/access-level-selector.component';\r\nimport { UserManagementPage } from 'src/app/user-management/user-management.page';\r\nimport { UserManagementEditModalComponent } from 'src/app/user-management/user-management-edit-modal/user-management-edit-modal.component';\r\nimport { UserManagementFilterComponent } from 'src/app/user-management/user-management-filter/user-management-filter.component';\r\nimport { UserManagementItemComponent } from 'src/app/user-management/user-management-item/user-management-item.component';\r\nimport { AccessLevelPopover } from 'src/app/user-management/access-level-selector/access-level-popover/access-level-popover.component';\r\n\r\n@NgModule({\r\n imports: [\r\n CommonModule,\r\n IonicModule,\r\n FormsModule,\r\n ReactiveFormsModule,\r\n CoreModule,\r\n MatTooltipModule,\r\n MatTableModule,\r\n RouterModule.forChild([\r\n {\r\n path: '',\r\n component: UserManagementPage,\r\n },\r\n ]),\r\n TranslateModule,\r\n ScrollingModule,\r\n ],\r\n declarations: [\r\n UserManagementPage,\r\n UserManagementItemComponent,\r\n AccessLevelSelector,\r\n AccessLevelPopover,\r\n UserManagementEditModalComponent,\r\n UserManagementFilterComponent,\r\n ],\r\n})\r\nexport class UserManagementPageModule {}\r\n","import { Component, OnInit } from '@angular/core';\r\nimport { FormControl } from '@angular/forms';\r\nimport { ModalController, Platform } from '@ionic/angular';\r\nimport { combineLatest } from 'rxjs';\r\nimport { debounceTime, takeUntil } from 'rxjs/operators';\r\nimport { ContextMenuItem } from 'src/app/core/components/context-menu/context-menu-item.model';\r\nimport { LogbookModalService } from 'src/app/core/components/logbook/logbook-modal/logbook-modal.service';\r\nimport { Unsubscriber } from 'src/app/core/unsubscriber';\r\nimport { ConfirmationDialogService } from 'src/app/core/utils/confirmation-dialog.service';\r\nimport { ScreenSizeService } from 'src/app/core/utils/screen-size.service';\r\nimport { DestinationService } from 'src/app/domain/destination/destination.service';\r\nimport { Feature } from 'src/app/domain/feature/feature.model';\r\nimport { FeatureAccessLevel } from 'src/app/domain/feature/feature-access-level.model';\r\nimport { FeatureId } from 'src/app/domain/feature/feature-id.model';\r\nimport { UserSettingsService } from 'src/app/domain/user-settings/user-settings.service';\r\nimport { ManagedTenant } from 'src/app/user-management/domain/managed-tenant.model';\r\nimport { User } from 'src/app/user-management/domain/user.model';\r\nimport { UserManagementService } from 'src/app/user-management/user-management.service';\r\nimport { UserManagementEditModalComponent } from 'src/app/user-management/user-management-edit-modal/user-management-edit-modal.component';\r\nimport { UserManagementFilterComponent } from 'src/app/user-management/user-management-filter/user-management-filter.component';\r\n\r\n@Component({\n selector: 'sis-user-management',\n templateUrl: './user-management.page.html',\n styleUrls: ['./user-management.page.scss'],\n standalone: false\n})\r\nexport class UserManagementPage extends Unsubscriber implements OnInit {\r\n private static readonly requiredFeature = new Feature(FeatureId.USERMANAGEMENT, FeatureAccessLevel.WRITE);\r\n\r\n featureId = FeatureId.USERMANAGEMENT;\r\n\r\n users: User[] = [];\r\n\r\n selectedTenant: ManagedTenant;\r\n managedTenants: ManagedTenant[];\r\n\r\n tenantFeatures: Feature[];\r\n private featureTranslationMap: Map;\r\n featureIdTranslatedFeatureNameMapping: Map = new Map();\r\n\r\n searchControl: FormControl;\r\n searching: boolean = false;\r\n searchTerm: string;\r\n\r\n writePermission: boolean;\r\n isAdministrator: boolean;\r\n usersLoaded: boolean = false;\r\n maxUsersReached: boolean = false;\r\n\r\n contextMenuX: number;\r\n contextMenuY: number;\r\n showContextMenu: boolean;\r\n contextMenuItems: ContextMenuItem[];\r\n contextMenuTitle: string;\r\n displayedColumns: string[] = [];\r\n\r\n bigScreenMode: boolean;\r\n\r\n isCockpitChecked: boolean = true;\r\n isSisMediaChecked: boolean = true;\r\n isGeneralChecked: boolean = true;\r\n private usersFiltered: User[] = [];\r\n\r\n constructor(\r\n private userManagementService: UserManagementService,\r\n private logbookModalService: LogbookModalService,\r\n private userSettingsService: UserSettingsService,\r\n private destinationService: DestinationService,\r\n private confirmationDialogService: ConfirmationDialogService,\r\n private modalCtrl: ModalController,\r\n private platform: Platform,\r\n private screenSizeService: ScreenSizeService,\r\n private modalController: ModalController\r\n ) {\r\n super();\r\n\r\n this.searchControl = new FormControl();\r\n }\r\n async openCheckboxModal() {\r\n const modal = await this.modalController.create({\r\n component: UserManagementFilterComponent,\r\n componentProps: {\r\n isCockpitChecked: this.isCockpitChecked,\r\n isSisMediaChecked: this.isSisMediaChecked,\r\n isGeneralChecked: this.isGeneralChecked,\r\n },\r\n });\r\n\r\n await modal.present();\r\n\r\n await modal.onWillDismiss().then((result) => {\r\n if (result.data) {\r\n this.isCockpitChecked = result.data.isCockpitChecked;\r\n this.isSisMediaChecked = result.data.isSisMediaChecked;\r\n this.isGeneralChecked = result.data.isGeneralChecked;\r\n }\r\n this.updateFilteredFeatures();\r\n });\r\n }\r\n ngOnInit() {\r\n this.destinationService.selectedTenantFeatures$.pipe(takeUntil(this.onDestroy$)).subscribe((features) => {\r\n this.writePermission =\r\n features.some((f) => f.hasMinimumRequirementFor(UserManagementPage.requiredFeature)) ?? false;\r\n this.screenSizeService.bigScreenMode$\r\n .pipe(takeUntil(this.onDestroy$))\r\n .subscribe((bigScreenMode) => (this.bigScreenMode = bigScreenMode));\r\n });\r\n combineLatest([\r\n this.userManagementService.tenantFeatures$,\r\n this.userManagementService.featureTranslationMap$,\r\n this.userSettingsService.userSettings$,\r\n ])\r\n .pipe(takeUntil(this.onDestroy$))\r\n .subscribe(([features, featureTranslationMap, userSettings]) => {\r\n this.tenantFeatures = features.sort((a, b) => a.featureId - b.featureId);\r\n if (!userSettings.isAdministrator) {\r\n this.tenantFeatures = this.tenantFeatures.filter((f) => !f.adminOnly);\r\n }\r\n this.featureTranslationMap = featureTranslationMap;\r\n this.updateFilteredFeatures();\r\n });\r\n\r\n combineLatest([\r\n this.destinationService.selectedTenant$,\r\n this.userManagementService.userManagementData$,\r\n this.userSettingsService.userSettings$,\r\n ])\r\n .pipe(takeUntil(this.onDestroy$))\r\n .subscribe(([tenant, userManagementData, userSettings]) => {\r\n this.users = userManagementData.users.sort((a, b) => a.displayName?.localeCompare(b.displayName));\r\n this.managedTenants = userManagementData.managedTenants.sort((a, b) => {\r\n return a.guid === tenant.guid ? -1 : a.alias?.localeCompare(b.alias);\r\n });\r\n\r\n this.selectedTenant = this.managedTenants.find((t) => t.guid === tenant.guid);\r\n this.maxUsersReached = this.selectedTenant?.activeUsers >= this.selectedTenant?.maxUsers;\r\n this.isAdministrator = userSettings.isAdministrator;\r\n this.filterUserList();\r\n this.usersLoaded = true;\r\n });\r\n\r\n this.searchControl.valueChanges.pipe(debounceTime(300), takeUntil(this.onDestroy$)).subscribe((search: string) => {\r\n this.searching = false;\r\n this.searchTerm = search.toLowerCase();\r\n this.filterUserList();\r\n });\r\n }\r\n\r\n trackUsers(_: any, item: User) {\r\n return item.userGuid.toString();\r\n }\r\n\r\n openBatchFeaturePermissionContextMenu(event: any, index: number): void {\r\n const tenantFeature = this.tenantFeatures[index];\r\n if (tenantFeature.featureId === FeatureId.USERMANAGEMENT) {\r\n return;\r\n }\r\n\r\n const contextMenuItems: ContextMenuItem[] = [];\r\n const requiredFeature = new Feature(FeatureId.USERMANAGEMENT, FeatureAccessLevel.WRITE);\r\n\r\n if (tenantFeature.featureAccessLevel >= FeatureAccessLevel.NONE) {\r\n contextMenuItems.push({\r\n translationString: 'usermanagement.accesslevel.none',\r\n action: 'batch',\r\n requiredFeature,\r\n item: new Feature(tenantFeature.featureId, FeatureAccessLevel.NONE),\r\n });\r\n }\r\n\r\n if (tenantFeature.featureAccessLevel >= FeatureAccessLevel.READ) {\r\n contextMenuItems.push({\r\n translationString: 'usermanagement.accesslevel.read',\r\n action: 'batch',\r\n requiredFeature,\r\n item: new Feature(tenantFeature.featureId, FeatureAccessLevel.READ),\r\n });\r\n }\r\n\r\n if (tenantFeature.featureAccessLevel >= FeatureAccessLevel.WRITE) {\r\n contextMenuItems.push({\r\n translationString: 'usermanagement.accesslevel.write',\r\n action: 'batch',\r\n requiredFeature,\r\n item: new Feature(tenantFeature.featureId, FeatureAccessLevel.WRITE),\r\n });\r\n }\r\n\r\n this.contextMenuItems = contextMenuItems;\r\n\r\n this.contextMenuX = event.x - 70;\r\n this.contextMenuY = event.y - 50;\r\n this.contextMenuTitle = this.featureIdTranslatedFeatureNameMapping[index];\r\n this.showContextMenu = true;\r\n }\r\n\r\n async contextMenuItemSelected(selectedItem: ContextMenuItem): Promise {\r\n this.showContextMenu = false;\r\n\r\n if (selectedItem?.action == 'batch') {\r\n await this.setBatchFeaturePermissions(selectedItem.item);\r\n }\r\n if (\r\n selectedItem?.action == 'cockpitRead' ||\r\n selectedItem?.action == 'cockpitWrite' ||\r\n selectedItem?.action == 'sismediaRead' ||\r\n selectedItem?.action == 'sismediaWrite' ||\r\n selectedItem?.action == 'allNone'\r\n ) {\r\n this.setBatchUserPermissions(selectedItem.item, selectedItem.action);\r\n }\r\n if (selectedItem?.action == 'allMax') {\r\n await this.setAllUserPermissionsMax(selectedItem.item);\r\n }\r\n }\r\n\r\n async openLogbook(): Promise {\r\n await this.logbookModalService.presentLogbookModal([[FeatureId.USERMANAGEMENT]]);\r\n }\r\n\r\n openUserContextMenu(user: User, event: any): void {\r\n const requiredFeature = new Feature(FeatureId.USERMANAGEMENT, FeatureAccessLevel.WRITE);\r\n const contextMenuItems: ContextMenuItem[] = [];\r\n\r\n contextMenuItems.push({\r\n translationString: 'usermanagement.term.cockpitRead',\r\n requiredFeature,\r\n action: 'cockpitRead',\r\n item: user,\r\n });\r\n\r\n contextMenuItems.push({\r\n translationString: 'usermanagement.term.cockpitWrite',\r\n requiredFeature,\r\n action: 'cockpitWrite',\r\n item: user,\r\n });\r\n\r\n contextMenuItems.push({\r\n translationString: 'usermanagement.term.sismediaRead',\r\n requiredFeature,\r\n action: 'sismediaRead',\r\n item: user,\r\n });\r\n\r\n contextMenuItems.push({\r\n translationString: 'usermanagement.term.sismediaWrite',\r\n requiredFeature,\r\n action: 'sismediaWrite',\r\n item: user,\r\n });\r\n\r\n contextMenuItems.push({\r\n translationString: 'usermanagement.term.allMax',\r\n requiredFeature,\r\n action: 'allMax',\r\n item: user,\r\n });\r\n\r\n contextMenuItems.push({\r\n translationString: 'usermanagement.term.allNone',\r\n requiredFeature,\r\n action: 'allNone',\r\n item: user,\r\n });\r\n\r\n this.contextMenuItems = contextMenuItems;\r\n\r\n this.contextMenuX = event.x - 70;\r\n this.contextMenuY = event.y - 50;\r\n if (this.contextMenuY + 200 > this.platform.height()) {\r\n this.contextMenuY = this.platform.height() - 210;\r\n }\r\n this.contextMenuTitle = '';\r\n this.showContextMenu = true;\r\n }\r\n\r\n async addUser(managedTenants: ManagedTenant[]): Promise {\r\n await this.openEditModal(null, managedTenants, this.isAdministrator);\r\n }\r\n\r\n isAdminOnly(index: number): boolean {\r\n return this.tenantFeatures[index].adminOnly;\r\n }\r\n\r\n private async setAllUserPermissionsMax(user: User): Promise {\r\n const confirmed = await this.confirmationDialogService.presentAlert(\r\n 'usermanagement.phrase.maxAllUserPermissionsDefault',\r\n 'general.term.yes'\r\n );\r\n\r\n if (confirmed && user) {\r\n await this.userManagementService.setBatchPermissions(\r\n this.tenantFeatures.filter((f) => f.featureId != 3006),\r\n [user.userGuid]\r\n );\r\n }\r\n }\r\n\r\n private async setBatchFeaturePermissions(feature: Feature): Promise {\r\n if (!feature) {\r\n return;\r\n }\r\n\r\n const usersToUpdate = this.usersFiltered.map((u) => u.userGuid);\r\n const featuresToUpdate = this.tenantFeatures\r\n .filter((f) => f.featureId == feature.featureId)\r\n .map((f) => new Feature(f.featureId, feature.featureAccessLevel));\r\n\r\n this.userManagementService.setBatchPermissions(featuresToUpdate, usersToUpdate);\r\n }\r\n\r\n private setBatchUserPermissions(user: User, action: string): void {\r\n if (!user) {\r\n return;\r\n }\r\n const filterFunc =\r\n action == 'allNone'\r\n ? (f: Feature) => f.featureId != 3006\r\n : action == 'cockpitRead' || action == 'cockpitWrite'\r\n ? (f: Feature) => f.featureId < 2000\r\n : (f: Feature) => f.featureId >= 2000 && f.featureId < 3000;\r\n const accessLevel =\r\n action == 'allNone'\r\n ? FeatureAccessLevel.NONE\r\n : action == 'cockpitRead' || action == 'sismediaRead'\r\n ? FeatureAccessLevel.READ\r\n : FeatureAccessLevel.WRITE;\r\n const featuresToUpdate = this.tenantFeatures.filter(filterFunc).map((f) => new Feature(f.featureId, accessLevel));\r\n const usersToUpdate = this.usersFiltered.filter((u) => u.userGuid == user.userGuid).map((u) => u.userGuid);\r\n\r\n this.userManagementService.setBatchPermissions(featuresToUpdate, usersToUpdate);\r\n }\r\n\r\n private async openEditModal(user: User, managedTenants: ManagedTenant[], isAdministrator: boolean): Promise {\r\n const modal = await this.modalCtrl.create({\r\n component: UserManagementEditModalComponent,\r\n cssClass: 'sis-user-management-edit-modal',\r\n componentProps: {\r\n user,\r\n managedTenants,\r\n isAdministrator,\r\n },\r\n backdropDismiss: false,\r\n });\r\n\r\n modal.onDidDismiss().then((overlayEventDetail) => (this.usersLoaded = !overlayEventDetail.data));\r\n await modal.present();\r\n }\r\n\r\n private filterUserList(): void {\r\n this.usersFiltered = this.users\r\n .filter(\r\n (u) =>\r\n !this.searchTerm ||\r\n u.email?.toLowerCase().indexOf(this.searchTerm) > -1 ||\r\n u.displayName?.toLowerCase().indexOf(this.searchTerm) > -1\r\n )\r\n .sort((a) => (a.isSisag ? -1 : 1));\r\n }\r\n\r\n onCheckboxChange(option: string, value: boolean) {\r\n this[option] = value;\r\n this.updateFilteredFeatures();\r\n }\r\n\r\n updateFilteredFeatures() {\r\n const filteredtenantFeatures = [];\r\n if (this.isCockpitChecked) {\r\n filteredtenantFeatures.push(...this.tenantFeatures.filter((f) => f.featureId >= 1000 && f.featureId < 2000));\r\n }\r\n if (this.isSisMediaChecked) {\r\n filteredtenantFeatures.push(...this.tenantFeatures.filter((f) => f.featureId >= 2000 && f.featureId < 3000));\r\n }\r\n if (this.isGeneralChecked) {\r\n filteredtenantFeatures.push(...this.tenantFeatures.filter((f) => f.featureId >= 3000));\r\n }\r\n this.featureIdTranslatedFeatureNameMapping = new Map(\r\n filteredtenantFeatures\r\n .sort((a, b) => a.featureOrder - b.featureOrder)\r\n .map((feature) => [feature.featureId, this.featureTranslationMap.get(feature.featureId)])\r\n );\r\n\r\n this.displayedColumns = ['displayName'].concat(filteredtenantFeatures.map((f) => f.featureId.toString()));\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 {{'general.term.cockpit' | translate}}\r\n\r\n \r\n {{'general.term.sismedia' | translate}}\r\n\r\n \r\n {{'general.term.general' | translate}}\r\n
\r\n\r\n \r\n \r\n
\r\n {{ 'usermanagement.phrase.userCount' | translate }}:\r\n {{ this.selectedTenant.activeUsers }}\r\n / {{ this.selectedTenant.maxUsers }}\r\n
\r\n
\r\n
\r\n \r\n \r\n
\r\n \r\n {{this.featureIdTranslatedFeatureNameMapping.get(tenantFeature.featureId)}}\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 {{ 'usermanagement.phrase.userCount' | translate }}:\r\n {{ this.selectedTenant.activeUsers }}\r\n / {{ this.selectedTenant.maxUsers }}\r\n
\r\n
\r\n
\r\n \r\n \r\n
\r\n \r\n {{this.featureIdTranslatedFeatureNameMapping.get(tenantFeature.featureId)}}\r\n \r\n \r\n
\r\n
\r\n \r\n
\r\n
\r\n\r\n","// eslint-disable-next-line simple-import-sort/imports\r\nimport { Buffer } from 'buffer';\r\nimport { HttpClient } from '@angular/common/http';\r\nimport { Injectable } from '@angular/core';\r\nimport { TranslateService } from '@ngx-translate/core';\r\nimport { BehaviorSubject, combineLatest, EMPTY, firstValueFrom, merge, Observable, of } from 'rxjs';\r\nimport { catchError, map, shareReplay, switchMap, withLatestFrom } from 'rxjs/operators';\r\nimport { EventBusService } from 'src/app/core/eventbus/event-bus.service';\r\nimport { UserManagementUserUpdatedEvent, UserPermissionUpdatedEvent } from 'src/app/core/eventbus/events';\r\nimport { DestinationService } from 'src/app/domain/destination/destination.service';\r\nimport { FeatureAdapter } from 'src/app/domain/feature/feature.adapter';\r\nimport { Feature } from 'src/app/domain/feature/feature.model';\r\nimport { FeatureAccessLevel } from 'src/app/domain/feature/feature-access-level.model';\r\nimport { FeatureId } from 'src/app/domain/feature/feature-id.model';\r\nimport { UserSettingsService } from 'src/app/domain/user-settings/user-settings.service';\r\nimport { UserAdapter } from 'src/app/user-management/domain/user.adapter';\r\nimport { User } from 'src/app/user-management/domain/user.model';\r\nimport { UserManagementDataAdapter } from 'src/app/user-management/domain/user-management-data.adapter';\r\nimport { UserManagementData } from 'src/app/user-management/domain/user-management-data.model';\r\nimport { UserPermissionUpdateData } from 'src/app/user-management/user-permission-update-data.model';\r\nimport { UserMessage } from 'src/app/user-message/user-message.model';\r\nimport { UserMessageService } from 'src/app/user-message/user-message.service';\r\nimport { UserMessageColor } from 'src/app/user-message/user-message-color';\r\nimport { UserMessageIcon } from 'src/app/user-message/user-message-icon';\r\nimport { environment } from 'src/environments/environment';\r\nimport { NIL as emptyGuid } from 'uuid';\r\n\r\n@Injectable({\r\n providedIn: 'root',\r\n})\r\nexport class UserManagementService {\r\n private readonly featureTranslationMap: Map = new Map([\r\n ['general.term.cockpit', FeatureId.COCKPIT],\r\n ['general.term.energy', FeatureId.COCKPIT_ENERGY],\r\n ['destination.term.firstEntries', FeatureId.COCKPIT_FIRSTENTRIES],\r\n ['destination.term.personFrequencies', FeatureId.COCKPIT_FREQUENCIES],\r\n ['destination.term.kassandraForecast', FeatureId.COCKPIT_KASSANDRA],\r\n ['destination.term.snowmaking', FeatureId.COCKPIT_SNOWMAKING],\r\n ['general.term.webcam', FeatureId.COCKPIT_WEBCAM],\r\n ['ropeway.term.remoteAccess', FeatureId.COCKPIT_REMOTEACCESS],\r\n ['general.term.abbSmartSensor', FeatureId.COCKPIT_ABBSMARTSENSOR],\r\n ['general.term.truScan', FeatureId.COCKPIT_TRUSCAN],\r\n ['general.term.telemetry', FeatureId.COCKPIT_TELEMETRY],\r\n ['general.term.ropewaySettings', FeatureId.COCKPIT_ROPEWAY_SETTINGS],\r\n ['general.term.mediacenter', FeatureId.SISMEDIA_MEDIACENTER],\r\n ['general.term.mediacenter.infoBanner', FeatureId.SISMEDIA_MEDIACENTER_INFOBANNER],\r\n ['general.term.infotext', FeatureId.SISMEDIA_INFOTEXT],\r\n ['general.term.lastSlopeControl', FeatureId.SISMEDIA_LASTSLOPECONTROL],\r\n ['general.term.slopesOperatingTimes', FeatureId.SISMEDIA_SLOPESOPERATINGTIMES],\r\n ['sismedia.phrase.assetoverride', FeatureId.SISMEDIA_ASSETOVERRIDE],\r\n ['general.term.lifts', FeatureId.SISMEDIA_LIFT],\r\n ['general.term.slopes', FeatureId.SISMEDIA_SLOPE],\r\n ['general.term.crossCountry', FeatureId.SISMEDIA_CROSSCOUNTRY],\r\n ['general.term.sledging', FeatureId.SISMEDIA_SLEDGING],\r\n ['general.term.trails', FeatureId.SISMEDIA_TRAIL],\r\n ['general.term.bike', FeatureId.SISMEDIA_BIKE],\r\n ['general.term.gastro', FeatureId.SISMEDIA_GASTRO],\r\n ['general.term.pois', FeatureId.SISMEDIA_POI],\r\n ['general.term.parking', FeatureId.PARKING],\r\n ['sismediaEdit.term.editAsset', FeatureId.SISMEDIA_ASSET_EDIT],\r\n ['general.term.meteoinfo', FeatureId.SISMEDIA_METEOINFO],\r\n ['general.term.stnet', FeatureId.SISMEDIA_STNET],\r\n ['general.term.timetable', FeatureId.SISMEDIA_TIMETABLE],\r\n ['general.term.breakdowninfo', FeatureId.BREAKDOWNINFO],\r\n ['general.term.operatinginfo', FeatureId.OPERATINGINFO],\r\n ['global.title', FeatureId.GLOBALVIEW],\r\n ['general.term.sisitservices', FeatureId.SISITSERVICES],\r\n ['general.term.usermanagement', FeatureId.USERMANAGEMENT],\r\n ['logbook.term.logbook', FeatureId.LOGBOOK],\r\n ['general.term.weblinkcollection', FeatureId.WEBLINKCOLLECTION],\r\n ['general.term.ledticker', FeatureId.SISMEDIA_LEDTICKER],\r\n ['general.term.emaildelivery', FeatureId.SISMEDIA_EMAILDELIVERY],\r\n ['general.term.operatinghours', FeatureId.SISMEDIA_OPERATINGHOURS],\r\n ['general.term.ropewayEcoMode', FeatureId.COCKPIT_ECOMODE],\r\n ['general.term.sambesiWhatsUp', FeatureId.COCKPIT_SAMBESI_WHATSUP],\r\n ['general.term.ropewayAvailability', FeatureId.COCKPIT_ROPEWAY_AVAILABILITY],\r\n ['general.term.ropewayClampingCountReset', FeatureId.COCKPIT_ROPEWAY_CLAMPINGCOUNT_RESET],\r\n ['general.term.windmonitor', FeatureId.WINDMONITOR],\r\n ['ropewayBrakeReport.term.brakeReports', FeatureId.COCKPIT_ROPEWAY_BRAKEREPORT],\r\n ]);\r\n\r\n private readonly baseUsersRequestUrl: string = '/usermanagement/users';\r\n private readonly basePermissionPostUrl: string = '/usermanagement/permission';\r\n private readonly baseFeaturesRequestUrl: string = '/usermanagement/features';\r\n private readonly baseBatchPermissionPostUrl: string = '/usermanagement/batchpermission';\r\n private readonly baseUserInfoRequestUrl: string = '/usermanagement/userinfo';\r\n\r\n private readonly updateRequest$ = new BehaviorSubject(null);\r\n\r\n private readonly requiredFeature = new Feature(FeatureId.USERMANAGEMENT, FeatureAccessLevel.READ);\r\n\r\n private readonly userManagementDataRequest$: Observable =\r\n this.destinationService.selectedTenantFeatures$.pipe(\r\n switchMap((features) => {\r\n if (features.some((feature) => feature.hasMinimumRequirementFor(this.requiredFeature))) {\r\n return this.http.get(`${environment.baseUrlApi}${this.baseUsersRequestUrl}`).pipe(\r\n map((data) => UserManagementDataAdapter.adapt(data)),\r\n catchError(() => {\r\n this.showFailureToast('general.phrase.dataFetchingError');\r\n return EMPTY;\r\n })\r\n );\r\n } else {\r\n return EMPTY;\r\n }\r\n }),\r\n shareReplay({\r\n bufferSize: 1,\r\n refCount: true,\r\n })\r\n );\r\n\r\n private readonly userManagementDataUpdated$: Observable = merge(\r\n this.eventBus.observe(UserPermissionUpdatedEvent).pipe(\r\n withLatestFrom(\r\n this.userManagementDataRequest$,\r\n this.destinationService.selectedTenant$,\r\n this.userSettingService.userSettings$\r\n ),\r\n map(([event, userManagementData, tenant, userSettings]) => {\r\n if (tenant.guid === event?.tenantGuid) {\r\n const user = userManagementData.users.find((u) => u.userGuid === event.userGuid);\r\n if (user) {\r\n const feature = user.features.find((f) => f.featureId === event.featureId);\r\n if (feature) {\r\n feature.featureAccessLevel = event.featureAccessLevel;\r\n } else {\r\n user.features.push(new Feature(event.featureId, event.featureAccessLevel));\r\n }\r\n }\r\n }\r\n\r\n if (event.changedBy === userSettings.userGuid) {\r\n const translateKey = 'usermanagement.message.accesslevel.updated';\r\n const userMessage = new UserMessage({\r\n message: translateKey,\r\n icon: UserMessageIcon.success,\r\n durationMs: 2000,\r\n position: 'top',\r\n color: UserMessageColor.green,\r\n });\r\n this.userMessageService.presentToast(userMessage);\r\n }\r\n\r\n return userManagementData;\r\n })\r\n ),\r\n this.eventBus.observe(UserManagementUserUpdatedEvent).pipe(\r\n withLatestFrom(\r\n this.userManagementDataRequest$,\r\n this.destinationService.selectedTenant$,\r\n this.userSettingService.userSettings$\r\n ),\r\n map(([event, userManagementData, tenant, userSettings]) => {\r\n if (!event.updateSuccessful && event.user.userGuid === emptyGuid) {\r\n this.showFailureToast('usermanagement.phrase.userAddError');\r\n return userManagementData;\r\n }\r\n if (!event.updateSuccessful) {\r\n this.showFailureToast('usermanagement.phrase.userUpdateError');\r\n return userManagementData;\r\n }\r\n\r\n userManagementData.managedTenants = event.managedTenants;\r\n\r\n const user = userManagementData.users.find((u) => u.userGuid === event.user.userGuid);\r\n if (user) {\r\n // User existed on current tenant\r\n if (event.user.tenantGuids.includes(tenant.guid)) {\r\n // update an existing user\r\n Object.assign(user, event.user);\r\n this.showSuccessToast(event.user.displayName, event.user.email, 'usermanagement.phrase.userUpdated');\r\n } else {\r\n // user is not mapped anymore to this tenant\r\n const users = userManagementData.users;\r\n const index = users.findIndex((u) => u.userGuid === event.user.userGuid);\r\n if (index > -1) {\r\n users.splice(index, 1);\r\n this.showSuccessToast(event.user.displayName, event.user.email, 'usermanagement.phrase.userDeleted');\r\n }\r\n }\r\n } else {\r\n // User did not exist on current tenant\r\n if (event.user.tenantGuids.includes(tenant.guid)) {\r\n // user is added to this tenant\r\n userManagementData.users.push(event.user);\r\n if (event.changedBy === userSettings.userGuid) {\r\n this.showSuccessToast(event.user.displayName, event.user.email, 'usermanagement.phrase.userCreated');\r\n } else {\r\n this.showSuccessToast(event.user.displayName, event.user.email, 'usermanagement.phrase.userAdded');\r\n }\r\n } else {\r\n // User created, added, updated or deleted (basically any change) in other tenant and was and is not set in current tenant\r\n if (event.changedBy === userSettings.userGuid) {\r\n if (event.user.tenantGuids.length === 0) {\r\n this.showSuccessToast(event.user.displayName, event.user.email, 'usermanagement.phrase.userDeleted');\r\n } else {\r\n this.showSuccessToast(event.user.displayName, event.user.email, 'usermanagement.phrase.userUpdated');\r\n }\r\n }\r\n }\r\n }\r\n return userManagementData;\r\n })\r\n )\r\n );\r\n\r\n readonly userManagementData$ = merge(this.userManagementDataRequest$, this.userManagementDataUpdated$).pipe(\r\n shareReplay({\r\n bufferSize: 1,\r\n refCount: true,\r\n })\r\n );\r\n\r\n readonly tenantFeatures$: Observable = combineLatest([\r\n this.destinationService.selectedTenant$,\r\n this.updateRequest$,\r\n ]).pipe(\r\n switchMap(() => this.http.get(`${environment.baseUrlApi}${this.baseFeaturesRequestUrl}`)),\r\n map((data) => FeatureAdapter.adapt(data)),\r\n shareReplay({\r\n bufferSize: 1,\r\n refCount: true,\r\n })\r\n );\r\n\r\n readonly featureTranslationMap$: Observable> = this.translateService\r\n .stream(Array.from(this.featureTranslationMap.keys()))\r\n .pipe(\r\n map((res) => {\r\n const translatedFeaturesMap = new Map();\r\n Object.entries(res).forEach((translation) => {\r\n translatedFeaturesMap.set(this.featureTranslationMap.get(translation[0]), translation[1].toString());\r\n });\r\n\r\n return translatedFeaturesMap;\r\n }),\r\n shareReplay({\r\n bufferSize: 1,\r\n refCount: true,\r\n })\r\n );\r\n\r\n private activeUserToast: HTMLIonToastElement;\r\n\r\n constructor(\r\n private eventBus: EventBusService,\r\n private http: HttpClient,\r\n private userMessageService: UserMessageService,\r\n private userSettingService: UserSettingsService,\r\n private translateService: TranslateService,\r\n private destinationService: DestinationService,\r\n private toastService: UserMessageService\r\n ) {}\r\n\r\n requestData(): void {\r\n this.updateRequest$.next();\r\n }\r\n\r\n async updateUserPermission(userPermissionUpdateData: UserPermissionUpdateData): Promise {\r\n await firstValueFrom(\r\n this.http.post(`${environment.baseUrlApi}${this.basePermissionPostUrl}`, userPermissionUpdateData).pipe(\r\n catchError(() => {\r\n this.showFailureToast('usermanagement.message.accesslevel.failed');\r\n return of();\r\n })\r\n )\r\n );\r\n }\r\n\r\n async setBatchPermissions(featuresToUpdate: Feature[], userGuids: string[]): Promise {\r\n if (featuresToUpdate.length > 0 && userGuids.length > 0) {\r\n await firstValueFrom(\r\n this.http\r\n .post(`${environment.baseUrlApi}${this.baseBatchPermissionPostUrl}`, {\r\n userGuids: userGuids,\r\n features: featuresToUpdate,\r\n })\r\n .pipe(\r\n catchError(() => {\r\n this.showFailureToast('usermanagement.message.accesslevel.failed');\r\n return of();\r\n })\r\n )\r\n );\r\n }\r\n }\r\n\r\n async updateUser(user: User): Promise {\r\n return firstValueFrom(\r\n this.http.post(`${environment.baseUrlApi}/usermanagement/user/update`, user).pipe(\r\n map(() => true),\r\n catchError(() => {\r\n this.showFailureToast('usermanagement.phrase.userUpdateError');\r\n return of(false);\r\n })\r\n )\r\n );\r\n }\r\n\r\n async deleteUser(user: User): Promise {\r\n user.tenantGuids = [];\r\n return firstValueFrom(\r\n this.http.post(`${environment.baseUrlApi}/usermanagement/user/update`, user).pipe(\r\n map(() => true),\r\n catchError(() => {\r\n this.showFailureToast('usermanagement.phrase.userDeleteError');\r\n return of(false);\r\n })\r\n )\r\n );\r\n }\r\n\r\n async addUser(user: User): Promise {\r\n return firstValueFrom(\r\n this.http.post(`${environment.baseUrlApi}/usermanagement/user/update`, user).pipe(\r\n map(() => true),\r\n catchError(() => {\r\n this.showFailureToast('usermanagement.phrase.userAddError');\r\n return of(false);\r\n })\r\n )\r\n );\r\n }\r\n\r\n getUserInfoRequest(email: string): Observable {\r\n const emailEncoded = Buffer.from(email, 'utf8').toString('base64');\r\n const url = `${environment.baseUrlApi}${this.baseUserInfoRequestUrl}/${emailEncoded}`;\r\n return this.http.get(url).pipe(\r\n map((user) => {\r\n if (user) {\r\n this.showInfoToast('usermanagement.phrase.emailAlreadyExists');\r\n return UserAdapter.adapt([user])[0];\r\n }\r\n return null;\r\n }),\r\n catchError(() => {\r\n this.showFailureToast('general.phrase.dataFetchingError');\r\n return EMPTY;\r\n })\r\n );\r\n }\r\n\r\n async showFailureToast(message: string): Promise {\r\n await this.showUserMessageToast(\r\n new UserMessage({\r\n message: message,\r\n icon: UserMessageIcon.failed,\r\n durationMs: 4000,\r\n position: 'top',\r\n color: UserMessageColor.red,\r\n showCloseButton: false,\r\n })\r\n );\r\n }\r\n\r\n private async showInfoToast(message: string): Promise {\r\n await this.showUserMessageToast(\r\n new UserMessage({\r\n message: message,\r\n icon: UserMessageIcon.info,\r\n durationMs: 4000,\r\n position: 'top',\r\n color: UserMessageColor.blue,\r\n showCloseButton: false,\r\n })\r\n );\r\n }\r\n\r\n private async showSuccessToast(displayName: string, email: string, message: string): Promise {\r\n await this.showUserMessageToast(\r\n new UserMessage({\r\n message: [`${displayName} <${email}>
`, message],\r\n icon: UserMessageIcon.success,\r\n durationMs: 3000,\r\n position: 'top',\r\n color: UserMessageColor.green,\r\n showCloseButton: false,\r\n })\r\n );\r\n }\r\n\r\n private async showUserMessageToast(message: UserMessage): Promise {\r\n const toast = await this.toastService.createSingleToast(message);\r\n\r\n await this.activeUserToast?.dismiss();\r\n await toast.present();\r\n this.activeUserToast = toast;\r\n }\r\n}\r\n","export enum UserMessageColor {\r\n blue = 'primary',\r\n orange = 'warning',\r\n green = 'green',\r\n red = 'red',\r\n white = 'light'\r\n}\r\n","export enum UserMessageIcon {\r\n success = 'checkmark-circle-outline',\r\n failed = 'close-circle-outline',\r\n info = 'information-circle-outline',\r\n waiting = 'hourglass-outline',\r\n reload = 'reload-outline'\r\n}\r\n","import { WritablePart } from 'src/app/core/utils/type-helper';\r\nimport { UserMessageColor } from 'src/app/user-message/user-message-color';\r\nimport { UserMessageIcon } from 'src/app/user-message/user-message-icon';\r\n\r\nexport class UserMessage {\r\n readonly timestamp: number;\r\n readonly messageParts: string[];\r\n\r\n message: string | string[];\r\n icon: UserMessageIcon;\r\n durationMs: number;\r\n position: 'top' | 'middle' | 'bottom';\r\n color: UserMessageColor;\r\n showCloseButton: boolean = false;\r\n\r\n constructor(init?: Partial>) {\r\n Object.assign(this, init);\r\n this.timestamp = Date.now();\r\n\r\n if (Array.isArray(this.message)) {\r\n this.messageParts = this.message;\r\n } else {\r\n this.messageParts = [this.message];\r\n }\r\n }\r\n}\r\n","import { Injectable } from '@angular/core';\r\nimport { ToastController } from '@ionic/angular';\r\nimport { ToastButton } from '@ionic/core';\r\nimport { TranslateService } from '@ngx-translate/core';\r\nimport { firstValueFrom } from 'rxjs';\r\nimport { map } from 'rxjs/operators';\r\nimport { EventBusService } from 'src/app/core/eventbus/event-bus.service';\r\nimport { EventBusSubscriberBase } from 'src/app/core/eventbus/event-bus-subscriber-base';\r\nimport { AlarmLibraryOverrideUpdatedEvent, SisMediaPlsUpdatedEvent } from 'src/app/core/eventbus/events';\r\nimport { UserMessage } from 'src/app/user-message/user-message.model';\r\nimport { UserMessageColor } from 'src/app/user-message/user-message-color';\r\nimport { UserMessageIcon } from 'src/app/user-message/user-message-icon';\r\n\r\n@Injectable({\r\n providedIn: 'root',\r\n})\r\nexport class UserMessageService extends EventBusSubscriberBase {\r\n static readonly toastCssClass = 'sis-global-toast';\r\n\r\n private readonly minTimeBetweenSameMessageMs = 5000;\r\n private readonly messageOutdatedAfterMs = 20000;\r\n\r\n private userMessages: UserMessage[] = [];\r\n private toastActive: boolean;\r\n private messageTimeMap: Map;\r\n\r\n constructor(\r\n eventBus: EventBusService,\r\n private toastController: ToastController,\r\n private translateService: TranslateService\r\n ) {\r\n super(eventBus);\r\n\r\n this.messageTimeMap = new Map();\r\n\r\n this.setupSubscriptions();\r\n }\r\n\r\n async createToast(userMessage: UserMessage): Promise {\r\n const toastButtons: Array = [];\r\n const translatedMessage = await this.getTranslatedString(userMessage.messageParts);\r\n if (userMessage.showCloseButton) {\r\n toastButtons.push({ side: 'end', icon: 'close' });\r\n }\r\n if (userMessage.icon) {\r\n toastButtons.push({ side: 'start', icon: userMessage.icon });\r\n }\r\n return this.toastController.create({\r\n message: translatedMessage,\r\n duration: userMessage.durationMs,\r\n position: userMessage.position,\r\n color: userMessage.color,\r\n cssClass: UserMessageService.toastCssClass,\r\n animated: true,\r\n buttons: toastButtons,\r\n });\r\n }\r\n\r\n async presentToast(userMessage: UserMessage): Promise {\r\n if (!document.hasFocus()) {\r\n return;\r\n }\r\n\r\n const now = Date.now();\r\n const lastTimeSent = this.messageTimeMap.get(userMessage.messageParts.join(''));\r\n if (lastTimeSent && now < lastTimeSent + this.minTimeBetweenSameMessageMs) {\r\n return;\r\n }\r\n\r\n this.userMessages.push(userMessage);\r\n this.presentAllToasts();\r\n }\r\n\r\n async createSingleToast(userMessage: UserMessage): Promise {\r\n const toastButtons: Array = [];\r\n const translatedMessage = await this.getTranslatedString(userMessage.messageParts);\r\n if (userMessage.showCloseButton) {\r\n toastButtons.push({ side: 'end', icon: 'close' });\r\n }\r\n if (userMessage.icon) {\r\n toastButtons.push({ side: 'start', icon: userMessage.icon });\r\n }\r\n return this.toastController.create({\r\n message: translatedMessage,\r\n duration: userMessage.durationMs,\r\n position: userMessage.position,\r\n color: userMessage.color,\r\n cssClass: UserMessageService.toastCssClass,\r\n animated: true,\r\n buttons: toastButtons,\r\n });\r\n }\r\n\r\n private setupSubscriptions(): void {\r\n this.observe(AlarmLibraryOverrideUpdatedEvent, (event) => {\r\n if (event && !event.successful) {\r\n const translateKey = 'general.phrase.saveFailed';\r\n this.presentToast(\r\n new UserMessage({\r\n message: translateKey,\r\n icon: UserMessageIcon.failed,\r\n durationMs: 2500,\r\n position: 'top',\r\n color: UserMessageColor.red,\r\n })\r\n );\r\n }\r\n });\r\n\r\n this.observe(SisMediaPlsUpdatedEvent, (event) => {\r\n if (event.successfullyUpdatedDisplays.length > 0) {\r\n const toastMessage = [\r\n 'userMessage.phrase.deviceSuccessfullyUpdated',\r\n '
- ',\r\n event.successfullyUpdatedDisplays.join('
- '),\r\n ];\r\n this.presentToast(\r\n new UserMessage({\r\n message: toastMessage,\r\n icon: UserMessageIcon.success,\r\n durationMs: 2500,\r\n position: 'top',\r\n color: UserMessageColor.green,\r\n showCloseButton: true,\r\n })\r\n );\r\n }\r\n if (event.unsuccessfullyUpdatedDisplays.length > 0) {\r\n const toastMessage = [\r\n 'userMessage.phrase.deviceNotReachable',\r\n '
- ',\r\n event.unsuccessfullyUpdatedDisplays.join('
- '),\r\n ];\r\n this.presentToast(\r\n new UserMessage({\r\n message: toastMessage,\r\n icon: UserMessageIcon.failed,\r\n durationMs: 5000,\r\n position: 'top',\r\n color: UserMessageColor.red,\r\n showCloseButton: true,\r\n })\r\n );\r\n }\r\n if (event.displaysInSimulationMode && event.displaysInSimulationMode.length > 0) {\r\n const toastMessage = [\r\n 'userMessage.phrase.deviceInSimulationMode',\r\n '
- ',\r\n event.displaysInSimulationMode.join('
- '),\r\n ];\r\n this.presentToast(\r\n new UserMessage({\r\n message: toastMessage,\r\n durationMs: 5000,\r\n position: 'top',\r\n color: UserMessageColor.blue,\r\n showCloseButton: true,\r\n })\r\n );\r\n }\r\n });\r\n }\r\n\r\n private getTranslatedString(translateKeys: string[]): Promise {\r\n return firstValueFrom(\r\n this.translateService.get(translateKeys).pipe(map((translation) => Object.values(translation).join('')))\r\n );\r\n }\r\n\r\n private presentAllToasts(): void {\r\n if (!this.toastActive && this.userMessages.length > 0) {\r\n const userMessage = this.userMessages.shift();\r\n if (!userMessage || userMessage.timestamp + this.messageOutdatedAfterMs < Date.now()) {\r\n this.presentAllToasts();\r\n return;\r\n }\r\n\r\n const now = Date.now();\r\n const lastTimeSent = this.messageTimeMap.get(userMessage.messageParts.join(''));\r\n if (lastTimeSent && now < lastTimeSent + this.minTimeBetweenSameMessageMs) {\r\n this.presentAllToasts();\r\n return;\r\n }\r\n\r\n this.messageTimeMap.set(userMessage.messageParts.join(), Date.now());\r\n\r\n this.toastActive = true;\r\n this.createSingleToast(userMessage).then((toast) => {\r\n toast.onDidDismiss().then(() => {\r\n this.toastActive = false;\r\n this.presentAllToasts();\r\n });\r\n toast.present();\r\n });\r\n }\r\n }\r\n}\r\n","import { HttpClient } from '@angular/common/http';\r\nimport { Injectable } from '@angular/core';\r\nimport { of, timer } from 'rxjs';\r\nimport { catchError, filter, switchMap, takeUntil } from 'rxjs/operators';\r\nimport { Unsubscriber } from 'src/app/core/unsubscriber';\r\nimport { UserMessage } from 'src/app/user-message/user-message.model';\r\nimport { UserMessageService } from 'src/app/user-message/user-message.service';\r\nimport { UserMessageColor } from 'src/app/user-message/user-message-color';\r\nimport { UserMessageIcon } from 'src/app/user-message/user-message-icon';\r\n\r\ndeclare const VERSION: string;\r\n\r\n@Injectable({\r\n providedIn: 'root',\r\n})\r\nexport class VersionService extends Unsubscriber {\r\n private readonly checkInterval = 60 * 60 * 1000;\r\n private toastDisplayed = false;\r\n\r\n constructor(httpClient: HttpClient, userMessageService: UserMessageService) {\r\n super();\r\n\r\n if (window.location.origin !== 'http://localhost:4200') {\r\n const webAppUrl = window.location.origin.includes('://localhost')\r\n ? 'http://localhost:5005'\r\n : window.location.origin;\r\n\r\n timer(0, this.checkInterval)\r\n .pipe(\r\n switchMap(() =>\r\n httpClient.get<{ version: string }>(`${webAppUrl}/controller/version`).pipe(\r\n catchError(() => {\r\n console.log('No connection to webapp server');\r\n return of(null);\r\n })\r\n )\r\n ),\r\n filter((data) => data != null),\r\n takeUntil(this.onDestroy$)\r\n )\r\n .subscribe((data) => {\r\n console.log('Current Version: ' + String(VERSION));\r\n console.log('Server version: ' + data.version);\r\n\r\n if (String(VERSION) !== data.version && !this.toastDisplayed) {\r\n userMessageService\r\n .createToast(\r\n new UserMessage({\r\n message: 'versioning.phrase.update',\r\n icon: UserMessageIcon.reload,\r\n durationMs: 0,\r\n position: 'top',\r\n color: UserMessageColor.blue,\r\n })\r\n )\r\n .then((toast) => {\r\n toast.onDidDismiss().then(() => {\r\n this.toastDisplayed = false;\r\n window.location.reload();\r\n });\r\n toast.present();\r\n });\r\n }\r\n });\r\n } else {\r\n console.log('Started with ng serve: no version checking');\r\n }\r\n }\r\n}\r\n","export enum WebLinkItemCategory {\r\n tenant = 1,\r\n private = 2,\r\n}\r\n","import { WebLink } from 'src/app/weblink-collection/domain/weblink-item.model';\r\nimport { WebLinkItemCategory } from 'src/app/weblink-collection/domain/weblink-item-category.enum';\r\nexport class WebLinkAdapter {\r\n static adapt(items: any): WebLink[] {\r\n const webLinks: WebLink[] = [];\r\n\r\n if (items) {\r\n items.forEach((item: any) => {\r\n webLinks.push({\r\n guid: item.guid,\r\n displayOrder: item.displayOrder,\r\n category: item.category as WebLinkItemCategory,\r\n iconName: item.iconName,\r\n url: item.url,\r\n description: item.description,\r\n ownerGuid: item.ownerGuid,\r\n });\r\n });\r\n }\r\n\r\n return webLinks;\r\n }\r\n}\r\n","import { CommonModule } from '@angular/common';\r\nimport { NgModule } from '@angular/core';\r\nimport { FormsModule, ReactiveFormsModule } from '@angular/forms';\r\nimport { MatTooltipModule } from '@angular/material/tooltip';\r\nimport { RouterModule } from '@angular/router';\r\nimport { IonicModule } from '@ionic/angular';\r\nimport { TranslateModule } from '@ngx-translate/core';\r\nimport { CoreModule } from 'src/app/core/core.module';\r\nimport { WebLinkCollectionPage } from 'src/app/weblink-collection/weblink-collection.page';\r\nimport { WeblinkEditModalComponent } from 'src/app/weblink-collection/weblink-edit-modal/weblink-edit-modal.component';\r\nimport { WeblinkGroupComponent } from 'src/app/weblink-collection/weblink-group/weblink-group.component';\r\nimport { WebLinkItemComponent } from 'src/app/weblink-collection/weblink-item/weblink-item.component';\r\n\r\n@NgModule({\r\n imports: [\r\n CommonModule,\r\n IonicModule,\r\n FormsModule,\r\n ReactiveFormsModule,\r\n CoreModule,\r\n MatTooltipModule,\r\n RouterModule.forChild([\r\n {\r\n path: '',\r\n component: WebLinkCollectionPage,\r\n },\r\n ]),\r\n TranslateModule,\r\n ],\r\n declarations: [WebLinkCollectionPage, WebLinkItemComponent, WeblinkEditModalComponent, WeblinkGroupComponent],\r\n})\r\nexport class WebLinkCollectionModule {}\r\n","import { Component, OnInit } from '@angular/core';\r\nimport { ModalController } from '@ionic/angular';\r\nimport { takeUntil } from 'rxjs/operators';\r\nimport { Unsubscriber } from 'src/app/core/unsubscriber';\r\nimport { ScreenSizeService } from 'src/app/core/utils/screen-size.service';\r\nimport { DestinationService } from 'src/app/domain/destination/destination.service';\r\nimport { Feature } from 'src/app/domain/feature/feature.model';\r\nimport { FeatureAccessLevel } from 'src/app/domain/feature/feature-access-level.model';\r\nimport { FeatureId } from 'src/app/domain/feature/feature-id.model';\r\nimport { WebLink } from 'src/app/weblink-collection/domain/weblink-item.model';\r\nimport { WebLinkItemCategory } from 'src/app/weblink-collection/domain/weblink-item-category.enum';\r\nimport { WebLinkCollectionService } from 'src/app/weblink-collection/weblink-collection.service';\r\nimport { WeblinkEditModalComponent } from 'src/app/weblink-collection/weblink-edit-modal/weblink-edit-modal.component';\r\n\r\n@Component({\r\n templateUrl: './weblink-collection.page.html',\r\n styleUrls: ['./weblink-collection.page.scss'],\r\n standalone: false\r\n})\r\nexport class WebLinkCollectionPage extends Unsubscriber implements OnInit {\r\n bigScreenMode: boolean;\r\n writePermission: boolean;\r\n readPermission: boolean;\r\n reorderingEnabled: boolean = false;\r\n tenantAlias: string;\r\n items: WebLink[];\r\n\r\n private webLinkItemOrders: Map;\r\n\r\n categories = Object.values(WebLinkItemCategory).filter((value) => !isNaN(Number(value)));\r\n\r\n constructor(\r\n private screenSizeService: ScreenSizeService,\r\n private modalCtrl: ModalController,\r\n private destinationService: DestinationService,\r\n private webLinkCollectionService: WebLinkCollectionService\r\n ) {\r\n super();\r\n }\r\n\r\n ngOnInit(): void {\r\n this.webLinkCollectionService.webLinks$.pipe(takeUntil(this.onDestroy$)).subscribe((webLinks) => {\r\n this.items = webLinks;\r\n });\r\n\r\n this.screenSizeService.bigScreenMode$.pipe(takeUntil(this.onDestroy$)).subscribe((bigScreenMode) => {\r\n this.bigScreenMode = bigScreenMode;\r\n });\r\n\r\n this.destinationService.selectedTenantFeatures$.pipe(takeUntil(this.onDestroy$)).subscribe((features) => {\r\n this.writePermission = features.some((f) =>\r\n f.hasMinimumRequirementFor(new Feature(FeatureId.WEBLINKCOLLECTION, FeatureAccessLevel.WRITE))\r\n );\r\n\r\n this.readPermission = features.some((f) =>\r\n f.hasMinimumRequirementFor(new Feature(FeatureId.WEBLINKCOLLECTION, FeatureAccessLevel.READ))\r\n );\r\n });\r\n\r\n this.destinationService.selectedTenant$.pipe(takeUntil(this.onDestroy$)).subscribe((selectedTenant) => {\r\n this.tenantAlias = selectedTenant?.alias;\r\n });\r\n }\r\n\r\n async openEditModal(): Promise {\r\n if (this.writePermission || this.readPermission) {\r\n const modal = await this.modalCtrl.create({\r\n component: WeblinkEditModalComponent,\r\n cssClass: 'sis-weblink-edit-modal',\r\n componentProps: {\r\n writePermission: this.writePermission,\r\n },\r\n });\r\n await modal.present();\r\n }\r\n }\r\n\r\n async onReorderClick(): Promise {\r\n if (this.reorderingEnabled) {\r\n const reorderedItems: WebLink[] = this.items\r\n .filter((item) => this.webLinkItemOrders.get(item.guid) !== item.displayOrder)\r\n .map((item) => ({\r\n guid: item.guid,\r\n displayOrder: item.displayOrder,\r\n category: item.category,\r\n ownerGuid: item.ownerGuid,\r\n }));\r\n await this.webLinkCollectionService.insertOrUpdateItems(reorderedItems, 'update');\r\n } else {\r\n this.webLinkItemOrders = new Map(this.items.map((item) => [item.guid, item.displayOrder]));\r\n }\r\n this.reorderingEnabled = !this.reorderingEnabled;\r\n }\r\n\r\n onReorderCancelClick(): void {\r\n this.items.forEach((item) => {\r\n item.displayOrder = this.webLinkItemOrders.get(item.guid);\r\n });\r\n this.webLinkCollectionService.resetWebLinks(this.items);\r\n this.reorderingEnabled = false;\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 { HttpClient } from '@angular/common/http';\r\nimport { Injectable } from '@angular/core';\r\nimport { firstValueFrom, merge, Observable, Subject } from 'rxjs';\r\nimport { filter, map, shareReplay, switchMap, withLatestFrom } from 'rxjs/operators';\r\nimport { EventBusService } from 'src/app/core/eventbus/event-bus.service';\r\nimport { WebLinkCollectionUpdatedEvent } from 'src/app/core/eventbus/events';\r\nimport { DestinationService } from 'src/app/domain/destination/destination.service';\r\nimport { Feature } from 'src/app/domain/feature/feature.model';\r\nimport { FeatureAccessLevel } from 'src/app/domain/feature/feature-access-level.model';\r\nimport { FeatureId } from 'src/app/domain/feature/feature-id.model';\r\nimport { UserSettingsService } from 'src/app/domain/user-settings/user-settings.service';\r\nimport { UserMessage } from 'src/app/user-message/user-message.model';\r\nimport { UserMessageService } from 'src/app/user-message/user-message.service';\r\nimport { UserMessageColor } from 'src/app/user-message/user-message-color';\r\nimport { UserMessageIcon } from 'src/app/user-message/user-message-icon';\r\nimport { WebLinkAdapter } from 'src/app/weblink-collection/domain/weblink-item.adapter';\r\nimport { WebLink } from 'src/app/weblink-collection/domain/weblink-item.model';\r\nimport { environment } from 'src/environments/environment';\r\n\r\n@Injectable({\r\n providedIn: 'root',\r\n})\r\nexport class WebLinkCollectionService {\r\n private readonly requiredFeature = new Feature(FeatureId.WEBLINKCOLLECTION, FeatureAccessLevel.READ);\r\n private readonly resetSubject = new Subject();\r\n\r\n private readonly webLinkRequest$: Observable = this.destinationService.selectedTenantFeatures$.pipe(\r\n filter((features) => features.some((feature) => feature.hasMinimumRequirementFor(this.requiredFeature))),\r\n switchMap(() => this.httpClient.get(`${environment.baseUrlApi}/weblinks`)),\r\n map((items) => WebLinkAdapter.adapt(items)),\r\n shareReplay({\r\n bufferSize: 1,\r\n refCount: true,\r\n })\r\n );\r\n\r\n private readonly webLinkCollectionUpdated$: Observable = this.eventBus\r\n .observe(WebLinkCollectionUpdatedEvent)\r\n .pipe(\r\n withLatestFrom(this.destinationService.selectedTenant$),\r\n filter(([event, tenant]) => event.tenantGuid === tenant.guid),\r\n withLatestFrom(this.webLinkRequest$, this.userSettingsService.userSettings$),\r\n map(([[event], currentWebLinks, userSettings]) => {\r\n if (event.updateSuccessful) {\r\n if (event.operation === 'insert') {\r\n const newWebLinks = WebLinkAdapter.adapt(event.webLinks);\r\n currentWebLinks.push(newWebLinks[0]);\r\n } else if (event.operation === 'update') {\r\n event.webLinks.forEach((updatedWebLink) => {\r\n const oldWebLink = currentWebLinks.find((webLink) => webLink.guid === updatedWebLink.guid);\r\n oldWebLink ? Object.assign(oldWebLink, updatedWebLink) : currentWebLinks.push(updatedWebLink);\r\n });\r\n } else if (event.operation === 'delete') {\r\n const webLinkToBeDeleted = currentWebLinks.find((webLink) => webLink.guid === event.webLinks[0].guid);\r\n currentWebLinks.splice(currentWebLinks.indexOf(webLinkToBeDeleted), 1);\r\n }\r\n }\r\n\r\n if (event.changedBy === userSettings.userGuid) {\r\n this.displayUserMessage(event.updateSuccessful, event.operation);\r\n }\r\n return currentWebLinks;\r\n })\r\n );\r\n\r\n readonly webLinks$ = merge(this.webLinkRequest$, this.webLinkCollectionUpdated$, this.resetSubject).pipe(\r\n shareReplay({\r\n bufferSize: 1,\r\n refCount: true,\r\n })\r\n );\r\n\r\n constructor(\r\n private httpClient: HttpClient,\r\n private destinationService: DestinationService,\r\n private http: HttpClient,\r\n private userMessageService: UserMessageService,\r\n private eventBus: EventBusService,\r\n private userSettingsService: UserSettingsService\r\n ) {}\r\n\r\n async insertOrUpdateItems(webLinkPost: WebLink[], operation: string): Promise {\r\n if (!webLinkPost?.length) {\r\n return;\r\n }\r\n\r\n try {\r\n await firstValueFrom(\r\n this.http.post(`${environment.baseUrlApi}/weblinks`, {\r\n webLinks: webLinkPost,\r\n operation,\r\n })\r\n );\r\n } catch {\r\n this.presentToast(false);\r\n }\r\n }\r\n\r\n private presentToast(success: boolean, deleted: boolean = false, assetName: string = null): void {\r\n const message = success\r\n ? deleted\r\n ? [\"'\", assetName, \"' \", 'sismedia.phrase.assetDeleted']\r\n : 'general.phrase.saved'\r\n : 'general.phrase.saveFailed';\r\n const color = success ? UserMessageColor.green : UserMessageColor.red;\r\n const icon = success ? UserMessageIcon.success : UserMessageIcon.failed;\r\n this.userMessageService.presentToast(new UserMessage({ message, icon, durationMs: 2000, position: 'top', color }));\r\n }\r\n\r\n private displayUserMessage(updateSuccessful: boolean, operation: string): void {\r\n const message =\r\n operation === 'insert' && updateSuccessful\r\n ? 'weblinkcollection.phrase.entrySavedSuccess'\r\n : operation === 'update' && updateSuccessful\r\n ? 'weblinkcollection.phrase.entryUpdatedSucess'\r\n : operation === 'delete' && updateSuccessful\r\n ? 'weblinkcollection.phrase.entryDeletedSuccess'\r\n : operation === 'insert'\r\n ? 'weblinkcollection.phrase.entrySavedFailed'\r\n : operation === 'update'\r\n ? 'weblinkcollection.phrase.entryUpdatedFailed'\r\n : operation === 'delete'\r\n ? 'weblinkcollection.phrase.entryDeletedFailed'\r\n : 'general.phrase.apiError';\r\n\r\n const icon = updateSuccessful ? UserMessageIcon.success : UserMessageIcon.failed;\r\n const color = updateSuccessful ? UserMessageColor.green : UserMessageColor.red;\r\n const userMessage = new UserMessage({\r\n message,\r\n icon,\r\n durationMs: 2000,\r\n position: 'top',\r\n color,\r\n });\r\n this.userMessageService.presentToast(userMessage);\r\n }\r\n\r\n resetWebLinks(weblinks: WebLink[]): void {\r\n this.resetSubject.next(weblinks);\r\n }\r\n}\r\n","import { HttpClient } from '@angular/common/http';\r\nimport { Component, Input, OnInit } from '@angular/core';\r\nimport { AbstractControl, FormControl, FormGroup, ValidationErrors, Validators } from '@angular/forms';\r\nimport { ModalController } from '@ionic/angular';\r\nimport { catchError, map, Observable, of, takeUntil } from 'rxjs';\r\nimport { Unsubscriber } from 'src/app/core/unsubscriber';\r\nimport { ConfirmationDialogService } from 'src/app/core/utils/confirmation-dialog.service';\r\nimport { ScreenSizeService } from 'src/app/core/utils/screen-size.service';\r\nimport { DestinationService } from 'src/app/domain/destination/destination.service';\r\nimport { UserSettingsService } from 'src/app/domain/user-settings/user-settings.service';\r\nimport { WebLink } from 'src/app/weblink-collection/domain/weblink-item.model';\r\nimport { WebLinkItemCategory } from 'src/app/weblink-collection/domain/weblink-item-category.enum';\r\nimport { WebLinkCollectionService } from 'src/app/weblink-collection/weblink-collection.service';\r\nimport { NIL as emptyGuid } from 'uuid';\r\n\r\n@Component({\r\n templateUrl: './weblink-edit-modal.component.html',\r\n styleUrls: ['./weblink-edit-modal.component.scss'],\r\n standalone: false\r\n})\r\nexport class WeblinkEditModalComponent extends Unsubscriber implements OnInit {\r\n @Input() webLinkItem: WebLink;\r\n @Input() writePermission: boolean;\r\n\r\n icons: string[] = [\r\n 'link-outline',\r\n 'code-slash-outline',\r\n 'desktop-outline',\r\n 'document-text-outline',\r\n 'enter-outline',\r\n 'map-outline',\r\n 'partly-sunny-outline',\r\n 'stats-chart-outline',\r\n 'warning-outline',\r\n ];\r\n\r\n ioniconsUrl = 'https://ionic.io/ionicons';\r\n isNewItem: boolean;\r\n isExistingPublicItem: boolean;\r\n webLinkItemEdit: WebLink;\r\n formGroup: FormGroup;\r\n bigScreenMode: boolean;\r\n showExtraIcon: boolean;\r\n isSaving = false;\r\n userGuid: string;\r\n tenantAlias: string;\r\n enumWebLinkCategoryItem = WebLinkItemCategory;\r\n\r\n private initialCategory: WebLinkItemCategory;\r\n\r\n constructor(\r\n private modalCtrl: ModalController,\r\n private screenSizeService: ScreenSizeService,\r\n private webLinkCollectionService: WebLinkCollectionService,\r\n private confirmationDialogService: ConfirmationDialogService,\r\n private http: HttpClient,\r\n private userSettingsService: UserSettingsService,\r\n private destinationService: DestinationService\r\n ) {\r\n super();\r\n }\r\n\r\n ngOnInit(): void {\r\n if (!this.webLinkItem) {\r\n this.webLinkItem = {\r\n guid: emptyGuid,\r\n iconName: 'link-outline',\r\n category: this.writePermission ? WebLinkItemCategory.tenant : WebLinkItemCategory.private,\r\n };\r\n this.isNewItem = true;\r\n } else {\r\n this.isExistingPublicItem = this.webLinkItem.category === WebLinkItemCategory.tenant;\r\n }\r\n\r\n const copy = JSON.parse(JSON.stringify(this.webLinkItem));\r\n this.webLinkItemEdit = copy;\r\n\r\n if (this.icons.includes(this.webLinkItemEdit.iconName)) {\r\n this.webLinkItemEdit.extraIcon = '';\r\n this.showExtraIcon = false;\r\n } else {\r\n this.webLinkItemEdit.extraIcon = this.webLinkItemEdit.iconName;\r\n this.webLinkItemEdit.iconName = 'link-outline';\r\n this.showExtraIcon = true;\r\n }\r\n this.initialCategory = this.webLinkItemEdit.category;\r\n\r\n this.formGroup = new FormGroup({\r\n category: new FormControl(\r\n {\r\n value: this.webLinkItemEdit.category,\r\n disabled: !this.isNewItem && this.webLinkItemEdit.category === WebLinkItemCategory.tenant,\r\n },\r\n Validators.required\r\n ),\r\n extraIcon: new FormControl(this.webLinkItemEdit.extraIcon, [], (c) => this.ionIconValidator(c)),\r\n url: new FormControl(this.webLinkItemEdit.url, [\r\n Validators.required,\r\n Validators.pattern(/^(https?:\\/\\/)([\\w-]+\\.)+[\\w-]+(\\/[\\w-./?%&=+]*)?(#.*)?$/),\r\n ]),\r\n description: new FormControl(this.webLinkItemEdit.description, Validators.required),\r\n });\r\n\r\n this.formGroup.valueChanges.pipe(takeUntil(this.onDestroy$)).subscribe((value) => {\r\n this.webLinkItemEdit.category = value.category;\r\n this.webLinkItemEdit.extraIcon = value.extraIcon;\r\n this.webLinkItemEdit.url = value.url;\r\n this.webLinkItemEdit.description = value.description;\r\n this.showExtraIcon = value.extraIcon !== '';\r\n });\r\n\r\n this.screenSizeService.bigScreenMode$\r\n .pipe(takeUntil(this.onDestroy$))\r\n .subscribe((bigScreenMode) => (this.bigScreenMode = bigScreenMode));\r\n\r\n this.userSettingsService.userSettings$.pipe(takeUntil(this.onDestroy$)).subscribe((userSettings) => {\r\n this.userGuid = userSettings.userGuid;\r\n });\r\n\r\n this.destinationService.selectedTenant$.pipe(takeUntil(this.onDestroy$)).subscribe((selectedTenant) => {\r\n this.tenantAlias = selectedTenant?.alias;\r\n });\r\n }\r\n\r\n ionIconValidator(control: AbstractControl): Observable {\r\n const iconValue = control.value;\r\n const url = `${window.location.origin}/svg/${iconValue}.svg`;\r\n if (iconValue === '') {\r\n return of(null);\r\n }\r\n\r\n return this.http.get(url, { responseType: 'text' }).pipe(\r\n map((res) => {\r\n //if svg not valid whole index html is sent by webserver\r\n if (res.startsWith(' of({ invalidIonIcon: true }))\r\n );\r\n }\r\n\r\n async save(): Promise {\r\n this.isSaving = true;\r\n\r\n this.webLinkItemEdit.category = this.webLinkItemEdit.category || WebLinkItemCategory.tenant;\r\n this.webLinkItemEdit.displayOrder =\r\n this.webLinkItemEdit.category === this.initialCategory && !this.isNewItem\r\n ? this.webLinkItemEdit.displayOrder\r\n : 999;\r\n this.webLinkItemEdit.iconName = this.webLinkItemEdit.extraIcon || this.webLinkItemEdit.iconName;\r\n this.webLinkItemEdit.ownerGuid =\r\n this.webLinkItemEdit.category === WebLinkItemCategory.private ? this.userGuid : null;\r\n\r\n const postData: WebLink = {\r\n guid: this.webLinkItemEdit.guid,\r\n displayOrder: this.webLinkItemEdit.displayOrder,\r\n category: this.webLinkItemEdit.category,\r\n iconName: this.webLinkItemEdit.iconName,\r\n url: this.webLinkItemEdit.url,\r\n description: this.webLinkItemEdit.description,\r\n ownerGuid: this.webLinkItemEdit.ownerGuid,\r\n };\r\n\r\n this.formGroup.get('category').disable({ emitEvent: false });\r\n this.formGroup.get('extraIcon').disable({ emitEvent: false });\r\n this.formGroup.get('url').disable({ emitEvent: false });\r\n this.formGroup.get('description').disable({ emitEvent: false });\r\n\r\n if (this.isNewItem) {\r\n await this.webLinkCollectionService.insertOrUpdateItems([postData], 'insert');\r\n } else {\r\n await this.webLinkCollectionService.insertOrUpdateItems([postData], 'update');\r\n }\r\n this.modalCtrl.dismiss();\r\n }\r\n\r\n async delete(): Promise {\r\n const confirmed = await this.confirmationDialogService.presentAlert(\r\n 'weblinkcollection.phrase.deleteWeblink',\r\n 'general.term.delete'\r\n );\r\n\r\n if (confirmed) {\r\n const postData: WebLink = {\r\n guid: this.webLinkItemEdit.guid,\r\n };\r\n await this.webLinkCollectionService.insertOrUpdateItems([postData], 'delete');\r\n this.modalCtrl.dismiss();\r\n }\r\n }\r\n\r\n cancel(): void {\r\n this.modalCtrl.dismiss();\r\n }\r\n\r\n selectIcon(icon: string): void {\r\n this.webLinkItemEdit.iconName = icon;\r\n this.formGroup.get('extraIcon').patchValue('');\r\n this.showExtraIcon = false;\r\n }\r\n\r\n openMoreIcons(): void {\r\n window.open(this.ioniconsUrl, '_blank');\r\n }\r\n}\r\n","\r\n \r\n \r\n \r\n \r\n \r\n {{ (isNewItem ? 'weblinkcollection.term.new' : 'weblinkcollection.term.edit') | translate }}\r\n \r\n\r\n\r\n\r\n \r\n \r\n
\r\n \r\n \r\n {{ 'weblinkcollection.term.category' | translate }}\r\n \r\n \r\n \r\n {{\r\n tenantAlias\r\n }}\r\n {{\r\n 'weblinkcollection.term.private' | translate\r\n }}\r\n \r\n \r\n \r\n\r\n \r\n \r\n {{ 'weblinkcollection.term.type' | translate }}\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n {{ 'weblinkcollection.term.extraIcons' | translate }}\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 URL \r\n \r\n \r\n \r\n \r\n \r\n \r\n {{ 'weblinkcollection.term.description' | translate }}\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 {{ 'weblinkcollection.term.category' | translate }}\r\n \r\n \r\n \r\n \r\n \r\n {{\r\n tenantAlias\r\n }}\r\n {{\r\n 'weblinkcollection.term.private' | translate\r\n }}\r\n \r\n \r\n \r\n \r\n \r\n {{ 'weblinkcollection.term.type' | translate }}\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n\r\n \r\n \r\n {{ 'weblinkcollection.term.extraIcons' | translate }}\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 URL\r\n \r\n \r\n \r\n \r\n \r\n \r\n\r\n \r\n \r\n {{ 'weblinkcollection.term.description' | translate }}\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, OnChanges, OnInit } from '@angular/core';\r\nimport { ItemReorderEventDetail } from '@ionic/angular';\r\nimport { takeUntil } from 'rxjs';\r\nimport { Unsubscriber } from 'src/app/core/unsubscriber';\r\nimport { WebLink } from 'src/app/weblink-collection/domain/weblink-item.model';\r\nimport { WebLinkItemCategory } from 'src/app/weblink-collection/domain/weblink-item-category.enum';\r\nimport { WebLinkCollectionService } from 'src/app/weblink-collection/weblink-collection.service';\r\n\r\n@Component({\r\n selector: 'sis-weblink-group',\r\n templateUrl: './weblink-group.component.html',\r\n styleUrls: ['./weblink-group.component.scss'],\r\n standalone: false\r\n})\r\nexport class WeblinkGroupComponent extends Unsubscriber implements OnInit, OnChanges {\r\n @Input() category: WebLinkItemCategory;\r\n @Input() writePermission: boolean;\r\n @Input() readPermission: boolean;\r\n @Input() reorderingEnabled: boolean;\r\n @Input() tenantAlias: string;\r\n\r\n items: WebLink[] = [];\r\n eWebLinkItemCategory = WebLinkItemCategory;\r\n canReorder: boolean;\r\n\r\n constructor(private webLinkCollectionService: WebLinkCollectionService) {\r\n super();\r\n }\r\n\r\n ngOnInit() {\r\n this.webLinkCollectionService.webLinks$.pipe(takeUntil(this.onDestroy$)).subscribe((webLinks) => {\r\n this.items = webLinks\r\n .filter((weblink) => weblink.category === this.category)\r\n .sort((a, b) => a.displayOrder - b.displayOrder);\r\n });\r\n }\r\n\r\n ngOnChanges() {\r\n this.canReorder =\r\n this.reorderingEnabled &&\r\n ((this.category === WebLinkItemCategory.tenant && this.writePermission) ||\r\n (this.category === WebLinkItemCategory.private && this.readPermission));\r\n }\r\n\r\n doReorder(ev: CustomEvent): void {\r\n ev.detail.complete(this.items);\r\n this.items.forEach((item, index) => (item.displayOrder = index));\r\n }\r\n}\r\n","
\r\n \r\n {{\r\n this.category === eWebLinkItemCategory.tenant ? this.tenantAlias : ('weblinkcollection.term.private' | translate)\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, OnInit } from '@angular/core';\r\nimport { ModalController } from '@ionic/angular';\r\nimport { takeUntil } from 'rxjs/operators';\r\nimport { Unsubscriber } from 'src/app/core/unsubscriber';\r\nimport { ScreenSizeService } from 'src/app/core/utils/screen-size.service';\r\nimport { DestinationService } from 'src/app/domain/destination/destination.service';\r\nimport { Feature } from 'src/app/domain/feature/feature.model';\r\nimport { FeatureAccessLevel } from 'src/app/domain/feature/feature-access-level.model';\r\nimport { FeatureId } from 'src/app/domain/feature/feature-id.model';\r\nimport { UserMessage } from 'src/app/user-message/user-message.model';\r\nimport { UserMessageService } from 'src/app/user-message/user-message.service';\r\nimport { UserMessageColor } from 'src/app/user-message/user-message-color';\r\nimport { UserMessageIcon } from 'src/app/user-message/user-message-icon';\r\nimport { WebLink } from 'src/app/weblink-collection/domain/weblink-item.model';\r\nimport { WebLinkItemCategory } from 'src/app/weblink-collection/domain/weblink-item-category.enum';\r\nimport { WeblinkEditModalComponent } from 'src/app/weblink-collection/weblink-edit-modal/weblink-edit-modal.component';\r\n\r\n@Component({\r\n selector: 'sis-weblink-item',\r\n templateUrl: './weblink-item.component.html',\r\n styleUrls: ['./weblink-item.component.scss'],\r\n standalone: false\r\n})\r\nexport class WebLinkItemComponent extends Unsubscriber implements OnInit {\r\n @Input() item: WebLink;\r\n @Input() showButtons: boolean = true;\r\n\r\n bigScreenMode: boolean;\r\n editPermission: boolean = false;\r\n\r\n private writePermission: boolean;\r\n\r\n constructor(\r\n private screenSizeService: ScreenSizeService,\r\n private userMessageService: UserMessageService,\r\n private modalCtrl: ModalController,\r\n private destinationService: DestinationService\r\n ) {\r\n super();\r\n }\r\n\r\n ngOnInit(): void {\r\n this.screenSizeService.bigScreenMode$.pipe(takeUntil(this.onDestroy$)).subscribe((bigScreenMode) => {\r\n this.bigScreenMode = bigScreenMode;\r\n });\r\n\r\n this.destinationService.selectedTenantFeatures$.pipe(takeUntil(this.onDestroy$)).subscribe((features) => {\r\n this.writePermission = features.some((f) =>\r\n f.hasMinimumRequirementFor(new Feature(FeatureId.WEBLINKCOLLECTION, FeatureAccessLevel.WRITE))\r\n );\r\n\r\n const readPermission = features.some((f) =>\r\n f.hasMinimumRequirementFor(new Feature(FeatureId.WEBLINKCOLLECTION, FeatureAccessLevel.READ))\r\n );\r\n this.editPermission =\r\n (this.item.category === WebLinkItemCategory.tenant && this.writePermission) ||\r\n (this.item.category === WebLinkItemCategory.private && readPermission);\r\n });\r\n }\r\n\r\n openLink(): void {\r\n window.open(this.item.url, '_blank');\r\n }\r\n\r\n copyUrl(): void {\r\n navigator.clipboard.writeText(this.item.url).then(() => {\r\n this.userMessageService.presentToast(\r\n new UserMessage({\r\n color: UserMessageColor.blue,\r\n durationMs: 500,\r\n icon: UserMessageIcon.info,\r\n message: 'general.phrase.copiedToClipboard',\r\n position: 'top',\r\n })\r\n );\r\n });\r\n }\r\n\r\n async openEditModal(): Promise {\r\n if (this.editPermission) {\r\n const modal = await this.modalCtrl.create({\r\n component: WeblinkEditModalComponent,\r\n componentProps: {\r\n webLinkItem: this.item,\r\n writePermission: this.writePermission,\r\n },\r\n cssClass: 'sis-weblink-edit-modal',\r\n backdropDismiss: false,\r\n });\r\n await modal.present();\r\n }\r\n }\r\n}\r\n","\r\n\r\n \r\n \r\n \r\n \r\n
\r\n {{ this.item.description }}\r\n
\r\n \r\n \r\n
\r\n {{ this.item.url }}\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 {{ this.item.description }}\r\n \r\n \r\n \r\n \r\n {{ this.item.url }}\r\n \r\n \r\n \r\n \r\n\r\n","const providers: any[] = [\r\n { provide: 'environment', useValue: 'Development' },\r\n { provide: 'baseUrl', useValue: 'http://localhost:3000' },\r\n];\r\n\r\nexport const ENV_PROVIDERS = providers;\r\n\r\nexport const environment = {\r\n production: false,\r\n baseUrlApi: 'https://api-dev-cockpit.siscontrol.ch/api',\r\n baseUrlCockpitBlobStorage: 'https://devcockpit.blob.core.windows.net',\r\n baseUrlPublicBlobStorage: 'https://devsiscontrolpublic.blob.core.windows.net',\r\n baseUrlMediaCenterBlobStorage: 'https://devmediacenter.blob.core.windows.net',\r\n baseUrlRopewayReportBlobStorage: 'https://devropewayreport.blob.core.windows.net',\r\n clientId: 'b009400b-ab97-4c72-8ac6-cd5827cf9013',\r\n msalScopes: ['https://siscontrol-api-dev.azurewebsites.net/user_impersonation'],\r\n msalProtectedResource: 'https://api-dev-cockpit.siscontrol.ch/api',\r\n msalAuthority: 'https://login.microsoftonline.com/4a9d9297-bd6c-4ce3-b82e-9f52b306646e',\r\n postLogoutRedirectUri: 'https://dev.siscontrol.ch/',\r\n webapp: 'https://dev-cockpit.siscontrol.ch',\r\n publicWebApp: 'https://dev.siscontrol.ch',\r\n slideshowPlayerWebApp: 'https://dev-player.siscontrol.ch',\r\n oldDataTimeout: 60000,\r\n firebase: {\r\n apiKey: 'AIzaSyAfjGWSEN4tGNMAGm2q2c-IksNMIIfp4a8',\r\n authDomain: 'siscontrolalarm.firebaseapp.com',\r\n databaseURL: 'https://siscontrolalarm.firebaseio.com',\r\n projectId: 'siscontrolalarm',\r\n storageBucket: '',\r\n messagingSenderId: '541428824865',\r\n appId: '1:541428824865:web:aa49b49670545bcc',\r\n },\r\n pageTitle: '(DEV) SisControl Cockpit',\r\n isUiTest: false,\r\n environment: 'development',\r\n // eslint-disable-next-line @typescript-eslint/no-var-requires\r\n appVersion: require('../version.json').version,\r\n};\r\n","import 'hammerjs';\r\nimport '@angular/compiler';\r\n\r\nimport { enableProdMode } from '@angular/core';\r\nimport { platformBrowserDynamic } from '@angular/platform-browser-dynamic';\r\nimport { AppModule } from 'src/app/app.module';\r\nimport { environment } from 'src/environments/environment';\r\n\r\nif (window['supported'] && !window['outdated']) {\r\n if (environment.production) {\r\n enableProdMode();\r\n if (window) {\r\n // eslint-disable-next-line @typescript-eslint/no-empty-function\r\n window.console.log = () => {};\r\n }\r\n }\r\n\r\n platformBrowserDynamic()\r\n .bootstrapModule(AppModule)\r\n .catch((err) => console.log(err));\r\n}\r\n","/*\r\n * - This file is used to overwrite original implementation of \"Websock\", which did not send the required close reason code.\r\n * - 'pinch' and 'drag' gestures are disabled in this file. (comment in line 1131 - 1134, 1145 - 1149, 1159, 1189 - 1209, 1218, 1221 - 1224)\r\n */\r\n\r\n/*\r\n * noVNC: HTML5 VNC client\r\n * Copyright (C) 2020 The noVNC Authors\r\n * Licensed under MPL 2.0 (see LICENSE.txt)\r\n *\r\n * See README.md for usage and integration instructions.\r\n *\r\n */\r\n\r\nimport { toUnsigned32bit, toSigned32bit } from '@novnc/novnc/core/util/int.js';\r\nimport * as Log from '@novnc/novnc/core/util/logging.js';\r\nimport { encodeUTF8, decodeUTF8 } from '@novnc/novnc/core/util/strings.js';\r\nimport { dragThreshold } from '@novnc/novnc/core/util/browser.js';\r\nimport { clientToElement } from '@novnc/novnc/core/util/element.js';\r\nimport { setCapture } from '@novnc/novnc/core/util/events.js';\r\nimport EventTargetMixin from '@novnc/novnc/core/util/eventtarget.js';\r\nimport Display from '@novnc/novnc/core/display.js';\r\nimport Inflator from '@novnc/novnc/core/inflator.js';\r\nimport Deflator from '@novnc/novnc/core/deflator.js';\r\nimport Keyboard from '@novnc/novnc/core/input/keyboard.js';\r\nimport GestureHandler from '@novnc/novnc/core/input/gesturehandler.js';\r\nimport Cursor from 'src/app/remote-access/noVNC/core/util/cursor.js';\r\nimport Websock from 'src/app/remote-access/noVNC/core/websock.js';\r\nimport DES from '@novnc/novnc/core/des.js';\r\nimport KeyTable from '@novnc/novnc/core/input/keysym.js';\r\nimport XtScancode from '@novnc/novnc/core/input/xtscancodes.js';\r\nimport { encodings } from '@novnc/novnc/core/encodings.js';\r\n\r\nimport RawDecoder from '@novnc/novnc/core/decoders/raw.js';\r\nimport CopyRectDecoder from '@novnc/novnc/core/decoders/copyrect.js';\r\nimport RREDecoder from '@novnc/novnc/core/decoders/rre.js';\r\nimport HextileDecoder from '@novnc/novnc/core/decoders/hextile.js';\r\nimport TightDecoder from '@novnc/novnc/core/decoders/tight.js';\r\nimport TightPNGDecoder from '@novnc/novnc/core/decoders/tightpng.js';\r\n\r\n// How many seconds to wait for a disconnect to finish\r\nconst DISCONNECT_TIMEOUT = 3;\r\nconst DEFAULT_BACKGROUND = 'rgb(40, 40, 40)';\r\n\r\n// Minimum wait (ms) between two mouse moves\r\nconst MOUSE_MOVE_DELAY = 17;\r\n\r\n// Wheel thresholds\r\nconst WHEEL_STEP = 50; // Pixels needed for one step\r\nconst WHEEL_LINE_HEIGHT = 19; // Assumed pixels for one line step\r\n\r\n// Gesture thresholds\r\nconst GESTURE_ZOOMSENS = 75;\r\nconst GESTURE_SCRLSENS = 50;\r\nconst DOUBLE_TAP_TIMEOUT = 1000;\r\nconst DOUBLE_TAP_THRESHOLD = 50;\r\n\r\n// Extended clipboard pseudo-encoding formats\r\nconst extendedClipboardFormatText = 1;\r\n/*eslint-disable no-unused-vars */\r\nconst extendedClipboardFormatRtf = 1 << 1;\r\nconst extendedClipboardFormatHtml = 1 << 2;\r\nconst extendedClipboardFormatDib = 1 << 3;\r\nconst extendedClipboardFormatFiles = 1 << 4;\r\n/*eslint-enable */\r\n\r\n// Extended clipboard pseudo-encoding actions\r\nconst extendedClipboardActionCaps = 1 << 24;\r\nconst extendedClipboardActionRequest = 1 << 25;\r\nconst extendedClipboardActionPeek = 1 << 26;\r\nconst extendedClipboardActionNotify = 1 << 27;\r\nconst extendedClipboardActionProvide = 1 << 28;\r\n\r\nexport default class RFB extends EventTargetMixin {\r\n constructor(target, targetDocument, urlOrChannel, options) {\r\n if (!target) {\r\n throw new Error('Must specify target');\r\n }\r\n if (!urlOrChannel) {\r\n throw new Error('Must specify URL, WebSocket or RTCDataChannel');\r\n }\r\n\r\n super();\r\n\r\n this._target = target;\r\n\r\n if (typeof urlOrChannel === 'string') {\r\n this._url = urlOrChannel;\r\n } else {\r\n this._url = null;\r\n this._rawChannel = urlOrChannel;\r\n }\r\n\r\n // Connection details\r\n options = options || {};\r\n this._rfbCredentials = options.credentials || {};\r\n this._shared = 'shared' in options ? !!options.shared : true;\r\n this._repeaterID = options.repeaterID || '';\r\n this._wsProtocols = options.wsProtocols || [];\r\n\r\n // Internal state\r\n this._rfbConnectionState = '';\r\n this._rfbInitState = '';\r\n this._rfbAuthScheme = -1;\r\n this._rfbCleanDisconnect = true;\r\n\r\n // Server capabilities\r\n this._rfbVersion = 0;\r\n this._rfbMaxVersion = 3.8;\r\n this._rfbTightVNC = false;\r\n this._rfbVeNCryptState = 0;\r\n this._rfbXvpVer = 0;\r\n\r\n this._fbWidth = 0;\r\n this._fbHeight = 0;\r\n\r\n this._fbName = '';\r\n\r\n this._capabilities = { power: false };\r\n\r\n this._supportsFence = false;\r\n\r\n this._supportsContinuousUpdates = false;\r\n this._enabledContinuousUpdates = false;\r\n\r\n this._supportsSetDesktopSize = false;\r\n this._screenID = 0;\r\n this._screenFlags = 0;\r\n\r\n this._qemuExtKeyEventSupported = false;\r\n\r\n this._clipboardText = null;\r\n this._clipboardServerCapabilitiesActions = {};\r\n this._clipboardServerCapabilitiesFormats = {};\r\n\r\n // Internal objects\r\n this._sock = null; // Websock object\r\n this._display = null; // Display object\r\n this._flushing = false; // Display flushing state\r\n this._keyboard = null; // Keyboard input handler object\r\n this._gestures = null; // Gesture input handler object\r\n this._resizeObserver = null; // Resize observer object\r\n\r\n // Timers\r\n this._disconnTimer = null; // disconnection timer\r\n this._resizeTimeout = null; // resize rate limiting\r\n this._mouseMoveTimer = null;\r\n\r\n // Decoder states\r\n this._decoders = {};\r\n\r\n this._FBU = {\r\n rects: 0,\r\n x: 0,\r\n y: 0,\r\n width: 0,\r\n height: 0,\r\n encoding: null,\r\n };\r\n\r\n // Mouse state\r\n this._mousePos = {};\r\n this._mouseButtonMask = 0;\r\n this._mouseLastMoveTime = 0;\r\n this._viewportDragging = false;\r\n this._viewportDragPos = {};\r\n this._viewportHasMoved = false;\r\n this._accumulatedWheelDeltaX = 0;\r\n this._accumulatedWheelDeltaY = 0;\r\n\r\n // Gesture state\r\n this._gestureLastTapTime = null;\r\n this._gestureFirstDoubleTapEv = null;\r\n this._gestureLastMagnitudeX = 0;\r\n this._gestureLastMagnitudeY = 0;\r\n\r\n // Bound event handlers\r\n this._eventHandlers = {\r\n focusCanvas: this._focusCanvas.bind(this),\r\n handleResize: this._handleResize.bind(this),\r\n handleMouse: this._handleMouse.bind(this),\r\n handleWheel: this._handleWheel.bind(this),\r\n handleGesture: this._handleGesture.bind(this),\r\n };\r\n\r\n // main setup\r\n Log.Debug('>> RFB.constructor');\r\n\r\n // Create DOM elements\r\n this._screen = document.createElement('div');\r\n this._screen.style.display = 'flex';\r\n this._screen.style.width = '100%';\r\n this._screen.style.height = '100%';\r\n this._screen.style.overflow = 'auto';\r\n this._screen.style.background = DEFAULT_BACKGROUND;\r\n this._canvas = document.createElement('canvas');\r\n this._canvas.style.margin = 'auto';\r\n // Some browsers add an outline on focus\r\n this._canvas.style.outline = 'none';\r\n this._canvas.width = 0;\r\n this._canvas.height = 0;\r\n this._canvas.tabIndex = -1;\r\n this._screen.appendChild(this._canvas);\r\n\r\n // Cursor\r\n this._cursor = new Cursor(targetDocument);\r\n\r\n // XXX: TightVNC 2.8.11 sends no cursor at all until Windows changes\r\n // it. Result: no cursor at all until a window border or an edit field\r\n // is hit blindly. But there are also VNC servers that draw the cursor\r\n // in the framebuffer and don't send the empty local cursor. There is\r\n // no way to satisfy both sides.\r\n //\r\n // The spec is unclear on this \"initial cursor\" issue. Many other\r\n // viewers (TigerVNC, RealVNC, Remmina) display an arrow as the\r\n // initial cursor instead.\r\n this._cursorImage = RFB.cursors.sis;\r\n\r\n // populate decoder array with objects\r\n this._decoders[encodings.encodingRaw] = new RawDecoder();\r\n this._decoders[encodings.encodingCopyRect] = new CopyRectDecoder();\r\n this._decoders[encodings.encodingRRE] = new RREDecoder();\r\n this._decoders[encodings.encodingHextile] = new HextileDecoder();\r\n this._decoders[encodings.encodingTight] = new TightDecoder();\r\n this._decoders[encodings.encodingTightPNG] = new TightPNGDecoder();\r\n\r\n // NB: nothing that needs explicit teardown should be done\r\n // before this point, since this can throw an exception\r\n try {\r\n this._display = new Display(this._canvas);\r\n } catch (exc) {\r\n Log.Error('Display exception: ' + exc);\r\n throw exc;\r\n }\r\n this._display.onflush = this._onFlush.bind(this);\r\n\r\n this._keyboard = new Keyboard(this._canvas);\r\n this._keyboard.onkeyevent = this._handleKeyEvent.bind(this);\r\n\r\n this._gestures = new GestureHandler();\r\n\r\n this._sock = new Websock();\r\n this._sock.on('open', this._socketOpen.bind(this));\r\n this._sock.on('close', this._socketClose.bind(this));\r\n this._sock.on('message', this._handleMessage.bind(this));\r\n this._sock.on('error', this._socketError.bind(this));\r\n\r\n this._resizeObserver = new ResizeObserver(this._eventHandlers.handleResize);\r\n\r\n // All prepared, kick off the connection\r\n this._updateConnectionState('connecting');\r\n\r\n Log.Debug('<< RFB.constructor');\r\n\r\n // ===== PROPERTIES =====\r\n\r\n this.dragViewport = false;\r\n this.focusOnClick = true;\r\n\r\n this._viewOnly = false;\r\n this._clipViewport = false;\r\n this._scaleViewport = false;\r\n this._resizeSession = false;\r\n\r\n this._showDotCursor = false;\r\n if (options.showDotCursor !== undefined) {\r\n Log.Warn('Specifying showDotCursor as a RFB constructor argument is deprecated');\r\n this._showDotCursor = options.showDotCursor;\r\n }\r\n\r\n this._qualityLevel = 6;\r\n this._compressionLevel = 2;\r\n }\r\n\r\n // ===== PROPERTIES =====\r\n\r\n get viewOnly() {\r\n return this._viewOnly;\r\n }\r\n set viewOnly(viewOnly) {\r\n this._viewOnly = viewOnly;\r\n\r\n if (this._rfbConnectionState === 'connecting' || this._rfbConnectionState === 'connected') {\r\n if (viewOnly) {\r\n this._keyboard.ungrab();\r\n } else {\r\n this._keyboard.grab();\r\n }\r\n }\r\n }\r\n\r\n get capabilities() {\r\n return this._capabilities;\r\n }\r\n\r\n get touchButton() {\r\n return 0;\r\n }\r\n set touchButton(button) {\r\n Log.Warn('Using old API!');\r\n }\r\n\r\n get clipViewport() {\r\n return this._clipViewport;\r\n }\r\n set clipViewport(viewport) {\r\n this._clipViewport = viewport;\r\n this._updateClip();\r\n }\r\n\r\n get scaleViewport() {\r\n return this._scaleViewport;\r\n }\r\n set scaleViewport(scale) {\r\n this._scaleViewport = scale;\r\n // Scaling trumps clipping, so we may need to adjust\r\n // clipping when enabling or disabling scaling\r\n if (scale && this._clipViewport) {\r\n this._updateClip();\r\n }\r\n this._updateScale();\r\n if (!scale && this._clipViewport) {\r\n this._updateClip();\r\n }\r\n }\r\n\r\n get resizeSession() {\r\n return this._resizeSession;\r\n }\r\n set resizeSession(resize) {\r\n this._resizeSession = resize;\r\n if (resize) {\r\n this._requestRemoteResize();\r\n }\r\n }\r\n\r\n get showDotCursor() {\r\n return this._showDotCursor;\r\n }\r\n set showDotCursor(show) {\r\n this._showDotCursor = show;\r\n this._refreshCursor();\r\n }\r\n\r\n get background() {\r\n return this._screen.style.background;\r\n }\r\n set background(cssValue) {\r\n this._screen.style.background = cssValue;\r\n }\r\n\r\n get qualityLevel() {\r\n return this._qualityLevel;\r\n }\r\n set qualityLevel(qualityLevel) {\r\n if (!Number.isInteger(qualityLevel) || qualityLevel < 0 || qualityLevel > 9) {\r\n Log.Error('qualityLevel must be an integer between 0 and 9');\r\n return;\r\n }\r\n\r\n if (this._qualityLevel === qualityLevel) {\r\n return;\r\n }\r\n\r\n this._qualityLevel = qualityLevel;\r\n\r\n if (this._rfbConnectionState === 'connected') {\r\n this._sendEncodings();\r\n }\r\n }\r\n\r\n get compressionLevel() {\r\n return this._compressionLevel;\r\n }\r\n set compressionLevel(compressionLevel) {\r\n if (!Number.isInteger(compressionLevel) || compressionLevel < 0 || compressionLevel > 9) {\r\n Log.Error('compressionLevel must be an integer between 0 and 9');\r\n return;\r\n }\r\n\r\n if (this._compressionLevel === compressionLevel) {\r\n return;\r\n }\r\n\r\n this._compressionLevel = compressionLevel;\r\n\r\n if (this._rfbConnectionState === 'connected') {\r\n this._sendEncodings();\r\n }\r\n }\r\n\r\n // ===== PUBLIC METHODS =====\r\n\r\n disconnect() {\r\n this._updateConnectionState('disconnecting');\r\n this._sock.off('error');\r\n this._sock.off('message');\r\n this._sock.off('open');\r\n }\r\n\r\n sendCredentials(creds) {\r\n this._rfbCredentials = creds;\r\n setTimeout(this._initMsg.bind(this), 0);\r\n }\r\n\r\n sendCtrlAltDel() {\r\n if (this._rfbConnectionState !== 'connected' || this._viewOnly) {\r\n return;\r\n }\r\n Log.Info('Sending Ctrl-Alt-Del');\r\n\r\n this.sendKey(KeyTable.XK_Control_L, 'ControlLeft', true);\r\n this.sendKey(KeyTable.XK_Alt_L, 'AltLeft', true);\r\n this.sendKey(KeyTable.XK_Delete, 'Delete', true);\r\n this.sendKey(KeyTable.XK_Delete, 'Delete', false);\r\n this.sendKey(KeyTable.XK_Alt_L, 'AltLeft', false);\r\n this.sendKey(KeyTable.XK_Control_L, 'ControlLeft', false);\r\n }\r\n\r\n machineShutdown() {\r\n this._xvpOp(1, 2);\r\n }\r\n\r\n machineReboot() {\r\n this._xvpOp(1, 3);\r\n }\r\n\r\n machineReset() {\r\n this._xvpOp(1, 4);\r\n }\r\n\r\n // Send a key press. If 'down' is not specified then send a down key\r\n // followed by an up key.\r\n sendKey(keysym, code, down) {\r\n if (this._rfbConnectionState !== 'connected' || this._viewOnly) {\r\n return;\r\n }\r\n\r\n if (down === undefined) {\r\n this.sendKey(keysym, code, true);\r\n this.sendKey(keysym, code, false);\r\n return;\r\n }\r\n\r\n const scancode = XtScancode[code];\r\n\r\n if (this._qemuExtKeyEventSupported && scancode) {\r\n // 0 is NoSymbol\r\n keysym = keysym || 0;\r\n\r\n Log.Info('Sending key (' + (down ? 'down' : 'up') + '): keysym ' + keysym + ', scancode ' + scancode);\r\n\r\n RFB.messages.QEMUExtendedKeyEvent(this._sock, keysym, down, scancode);\r\n } else {\r\n if (!keysym) {\r\n return;\r\n }\r\n Log.Info('Sending keysym (' + (down ? 'down' : 'up') + '): ' + keysym);\r\n RFB.messages.keyEvent(this._sock, keysym, down ? 1 : 0);\r\n }\r\n }\r\n\r\n focus() {\r\n this._canvas.focus();\r\n }\r\n\r\n blur() {\r\n this._canvas.blur();\r\n }\r\n\r\n clipboardPasteFrom(text) {\r\n if (this._rfbConnectionState !== 'connected' || this._viewOnly) {\r\n return;\r\n }\r\n\r\n if (\r\n this._clipboardServerCapabilitiesFormats[extendedClipboardFormatText] &&\r\n this._clipboardServerCapabilitiesActions[extendedClipboardActionNotify]\r\n ) {\r\n this._clipboardText = text;\r\n RFB.messages.extendedClipboardNotify(this._sock, [extendedClipboardFormatText]);\r\n } else {\r\n let data = new Uint8Array(text.length);\r\n for (let i = 0; i < text.length; i++) {\r\n // FIXME: text can have values outside of Latin1/Uint8\r\n data[i] = text.charCodeAt(i);\r\n }\r\n\r\n RFB.messages.clientCutText(this._sock, data);\r\n }\r\n }\r\n\r\n // ===== PRIVATE METHODS =====\r\n\r\n _connect() {\r\n Log.Debug('>> RFB.connect');\r\n\r\n if (this._url) {\r\n Log.Info(`connecting to ${this._url}`);\r\n this._sock.open(this._url, this._wsProtocols);\r\n } else {\r\n Log.Info(`attaching ${this._rawChannel} to Websock`);\r\n this._sock.attach(this._rawChannel);\r\n\r\n if (this._sock.readyState === 'closed') {\r\n throw Error('Cannot use already closed WebSocket/RTCDataChannel');\r\n }\r\n\r\n if (this._sock.readyState === 'open') {\r\n // FIXME: _socketOpen() can in theory call _fail(), which\r\n // isn't allowed this early, but I'm not sure that can\r\n // happen without a bug messing up our state variables\r\n this._socketOpen();\r\n }\r\n }\r\n\r\n // Make our elements part of the page\r\n this._target.appendChild(this._screen);\r\n\r\n this._gestures.attach(this._canvas);\r\n\r\n this._cursor.attach(this._canvas);\r\n this._refreshCursor();\r\n\r\n // Monitor size changes of the screen element\r\n this._resizeObserver.observe(this._screen);\r\n\r\n // Always grab focus on some kind of click event\r\n this._canvas.addEventListener('mousedown', this._eventHandlers.focusCanvas);\r\n this._canvas.addEventListener('touchstart', this._eventHandlers.focusCanvas);\r\n\r\n // Mouse events\r\n this._canvas.addEventListener('mousedown', this._eventHandlers.handleMouse);\r\n this._canvas.addEventListener('mouseup', this._eventHandlers.handleMouse);\r\n this._canvas.addEventListener('mousemove', this._eventHandlers.handleMouse);\r\n // Prevent middle-click pasting (see handler for why we bind to document)\r\n this._canvas.addEventListener('click', this._eventHandlers.handleMouse);\r\n // preventDefault() on mousedown doesn't stop this event for some\r\n // reason so we have to explicitly block it\r\n this._canvas.addEventListener('contextmenu', this._eventHandlers.handleMouse);\r\n\r\n // Wheel events\r\n this._canvas.addEventListener('wheel', this._eventHandlers.handleWheel);\r\n\r\n // Gesture events\r\n this._canvas.addEventListener('gesturestart', this._eventHandlers.handleGesture);\r\n this._canvas.addEventListener('gesturemove', this._eventHandlers.handleGesture);\r\n this._canvas.addEventListener('gestureend', this._eventHandlers.handleGesture);\r\n\r\n Log.Debug('<< RFB.connect');\r\n }\r\n\r\n _disconnect() {\r\n Log.Debug('>> RFB.disconnect');\r\n this._cursor.detach();\r\n this._canvas.removeEventListener('gesturestart', this._eventHandlers.handleGesture);\r\n this._canvas.removeEventListener('gesturemove', this._eventHandlers.handleGesture);\r\n this._canvas.removeEventListener('gestureend', this._eventHandlers.handleGesture);\r\n this._canvas.removeEventListener('wheel', this._eventHandlers.handleWheel);\r\n this._canvas.removeEventListener('mousedown', this._eventHandlers.handleMouse);\r\n this._canvas.removeEventListener('mouseup', this._eventHandlers.handleMouse);\r\n this._canvas.removeEventListener('mousemove', this._eventHandlers.handleMouse);\r\n this._canvas.removeEventListener('click', this._eventHandlers.handleMouse);\r\n this._canvas.removeEventListener('contextmenu', this._eventHandlers.handleMouse);\r\n this._canvas.removeEventListener('mousedown', this._eventHandlers.focusCanvas);\r\n this._canvas.removeEventListener('touchstart', this._eventHandlers.focusCanvas);\r\n this._resizeObserver.disconnect();\r\n this._keyboard.ungrab();\r\n this._gestures.detach();\r\n this._sock.close();\r\n try {\r\n this._target.removeChild(this._screen);\r\n } catch (e) {\r\n if (e.name === 'NotFoundError') {\r\n // Some cases where the initial connection fails\r\n // can disconnect before the _screen is created\r\n } else {\r\n throw e;\r\n }\r\n }\r\n clearTimeout(this._resizeTimeout);\r\n clearTimeout(this._mouseMoveTimer);\r\n Log.Debug('<< RFB.disconnect');\r\n }\r\n\r\n _socketOpen() {\r\n if (this._rfbConnectionState === 'connecting' && this._rfbInitState === '') {\r\n this._rfbInitState = 'ProtocolVersion';\r\n Log.Debug('Starting VNC handshake');\r\n } else {\r\n this._fail('Unexpected server connection while ' + this._rfbConnectionState);\r\n }\r\n }\r\n\r\n _socketClose(e) {\r\n Log.Debug('WebSocket on-close event');\r\n let msg = '';\r\n if (e.code) {\r\n msg = '(code: ' + e.code;\r\n if (e.reason) {\r\n msg += ', reason: ' + e.reason;\r\n }\r\n msg += ')';\r\n }\r\n switch (this._rfbConnectionState) {\r\n case 'connecting':\r\n this._fail('Connection closed ' + msg);\r\n break;\r\n case 'connected':\r\n // Handle disconnects that were initiated server-side\r\n this._updateConnectionState('disconnecting');\r\n this._updateConnectionState('disconnected');\r\n break;\r\n case 'disconnecting':\r\n // Normal disconnection path\r\n this._updateConnectionState('disconnected');\r\n break;\r\n case 'disconnected':\r\n this._fail('Unexpected server disconnect ' + 'when already disconnected ' + msg);\r\n break;\r\n default:\r\n this._fail('Unexpected server disconnect before connecting ' + msg);\r\n break;\r\n }\r\n this._sock.off('close');\r\n // Delete reference to raw channel to allow cleanup.\r\n this._rawChannel = null;\r\n }\r\n\r\n _socketError(e) {\r\n Log.Warn('WebSocket on-error event');\r\n }\r\n\r\n _focusCanvas(event) {\r\n if (!this.focusOnClick) {\r\n return;\r\n }\r\n\r\n this.focus();\r\n }\r\n\r\n _setDesktopName(name) {\r\n this._fbName = name;\r\n this.dispatchEvent(new CustomEvent('desktopname', { detail: { name: this._fbName } }));\r\n }\r\n\r\n _handleResize() {\r\n // If the window resized then our screen element might have\r\n // as well. Update the viewport dimensions.\r\n window.requestAnimationFrame(() => {\r\n this._updateClip();\r\n this._updateScale();\r\n });\r\n\r\n if (this._resizeSession) {\r\n // Request changing the resolution of the remote display to\r\n // the size of the local browser viewport.\r\n\r\n // In order to not send multiple requests before the browser-resize\r\n // is finished we wait 0.5 seconds before sending the request.\r\n clearTimeout(this._resizeTimeout);\r\n this._resizeTimeout = setTimeout(this._requestRemoteResize.bind(this), 500);\r\n }\r\n }\r\n\r\n // Update state of clipping in Display object, and make sure the\r\n // configured viewport matches the current screen size\r\n _updateClip() {\r\n const curClip = this._display.clipViewport;\r\n let newClip = this._clipViewport;\r\n\r\n if (this._scaleViewport) {\r\n // Disable viewport clipping if we are scaling\r\n newClip = false;\r\n }\r\n\r\n if (curClip !== newClip) {\r\n this._display.clipViewport = newClip;\r\n }\r\n\r\n if (newClip) {\r\n // When clipping is enabled, the screen is limited to\r\n // the size of the container.\r\n const size = this._screenSize();\r\n this._display.viewportChangeSize(size.w, size.h);\r\n this._fixScrollbars();\r\n }\r\n }\r\n\r\n _updateScale() {\r\n if (!this._scaleViewport) {\r\n this._display.scale = 1.0;\r\n } else {\r\n const size = this._screenSize();\r\n this._display.autoscale(size.w, size.h);\r\n }\r\n this._fixScrollbars();\r\n }\r\n\r\n // Requests a change of remote desktop size. This message is an extension\r\n // and may only be sent if we have received an ExtendedDesktopSize message\r\n _requestRemoteResize() {\r\n clearTimeout(this._resizeTimeout);\r\n this._resizeTimeout = null;\r\n\r\n if (!this._resizeSession || this._viewOnly || !this._supportsSetDesktopSize) {\r\n return;\r\n }\r\n\r\n const size = this._screenSize();\r\n RFB.messages.setDesktopSize(this._sock, Math.floor(size.w), Math.floor(size.h), this._screenID, this._screenFlags);\r\n\r\n Log.Debug('Requested new desktop size: ' + size.w + 'x' + size.h);\r\n }\r\n\r\n // Gets the the size of the available screen\r\n _screenSize() {\r\n let r = this._screen.getBoundingClientRect();\r\n return { w: r.width, h: r.height };\r\n }\r\n\r\n _fixScrollbars() {\r\n // This is a hack because Chrome screws up the calculation\r\n // for when scrollbars are needed. So to fix it we temporarily\r\n // toggle them off and on.\r\n const orig = this._screen.style.overflow;\r\n this._screen.style.overflow = 'hidden';\r\n // Force Chrome to recalculate the layout by asking for\r\n // an element's dimensions\r\n this._screen.getBoundingClientRect();\r\n this._screen.style.overflow = orig;\r\n }\r\n\r\n /*\r\n * Connection states:\r\n * connecting\r\n * connected\r\n * disconnecting\r\n * disconnected - permanent state\r\n */\r\n _updateConnectionState(state) {\r\n const oldstate = this._rfbConnectionState;\r\n\r\n if (state === oldstate) {\r\n Log.Debug(\"Already in state '\" + state + \"', ignoring\");\r\n return;\r\n }\r\n\r\n // The 'disconnected' state is permanent for each RFB object\r\n if (oldstate === 'disconnected') {\r\n Log.Error('Tried changing state of a disconnected RFB object');\r\n return;\r\n }\r\n\r\n // Ensure proper transitions before doing anything\r\n switch (state) {\r\n case 'connected':\r\n if (oldstate !== 'connecting') {\r\n Log.Error('Bad transition to connected state, ' + 'previous connection state: ' + oldstate);\r\n return;\r\n }\r\n break;\r\n\r\n case 'disconnected':\r\n if (oldstate !== 'disconnecting') {\r\n Log.Error('Bad transition to disconnected state, ' + 'previous connection state: ' + oldstate);\r\n return;\r\n }\r\n break;\r\n\r\n case 'connecting':\r\n if (oldstate !== '') {\r\n Log.Error('Bad transition to connecting state, ' + 'previous connection state: ' + oldstate);\r\n return;\r\n }\r\n break;\r\n\r\n case 'disconnecting':\r\n if (oldstate !== 'connected' && oldstate !== 'connecting') {\r\n Log.Error('Bad transition to disconnecting state, ' + 'previous connection state: ' + oldstate);\r\n return;\r\n }\r\n break;\r\n\r\n default:\r\n Log.Error('Unknown connection state: ' + state);\r\n return;\r\n }\r\n\r\n // State change actions\r\n\r\n this._rfbConnectionState = state;\r\n\r\n Log.Debug(\"New state '\" + state + \"', was '\" + oldstate + \"'.\");\r\n\r\n if (this._disconnTimer && state !== 'disconnecting') {\r\n Log.Debug('Clearing disconnect timer');\r\n clearTimeout(this._disconnTimer);\r\n this._disconnTimer = null;\r\n\r\n // make sure we don't get a double event\r\n this._sock.off('close');\r\n }\r\n\r\n switch (state) {\r\n case 'connecting':\r\n this._connect();\r\n break;\r\n\r\n case 'connected':\r\n this.dispatchEvent(new CustomEvent('connect', { detail: {} }));\r\n break;\r\n\r\n case 'disconnecting':\r\n this._disconnect();\r\n\r\n this._disconnTimer = setTimeout(() => {\r\n Log.Error('Disconnection timed out.');\r\n this._updateConnectionState('disconnected');\r\n }, DISCONNECT_TIMEOUT * 1000);\r\n break;\r\n\r\n case 'disconnected':\r\n this.dispatchEvent(new CustomEvent('disconnect', { detail: { clean: this._rfbCleanDisconnect } }));\r\n break;\r\n }\r\n }\r\n\r\n /* Print errors and disconnect\r\n *\r\n * The parameter 'details' is used for information that\r\n * should be logged but not sent to the user interface.\r\n */\r\n _fail(details) {\r\n switch (this._rfbConnectionState) {\r\n case 'disconnecting':\r\n Log.Error('Failed when disconnecting: ' + details);\r\n break;\r\n case 'connected':\r\n Log.Error('Failed while connected: ' + details);\r\n break;\r\n case 'connecting':\r\n Log.Error('Failed when connecting: ' + details);\r\n break;\r\n default:\r\n Log.Error('RFB failure: ' + details);\r\n break;\r\n }\r\n this._rfbCleanDisconnect = false; //This is sent to the UI\r\n\r\n // Transition to disconnected without waiting for socket to close\r\n this._updateConnectionState('disconnecting');\r\n this._updateConnectionState('disconnected');\r\n\r\n return false;\r\n }\r\n\r\n _setCapability(cap, val) {\r\n this._capabilities[cap] = val;\r\n this.dispatchEvent(new CustomEvent('capabilities', { detail: { capabilities: this._capabilities } }));\r\n }\r\n\r\n _handleMessage() {\r\n if (this._sock.rQlen === 0) {\r\n Log.Warn('handleMessage called on an empty receive queue');\r\n return;\r\n }\r\n\r\n switch (this._rfbConnectionState) {\r\n case 'disconnected':\r\n Log.Error('Got data while disconnected');\r\n break;\r\n case 'connected':\r\n while (true) {\r\n if (this._flushing) {\r\n break;\r\n }\r\n if (!this._normalMsg()) {\r\n break;\r\n }\r\n if (this._sock.rQlen === 0) {\r\n break;\r\n }\r\n }\r\n break;\r\n default:\r\n this._initMsg();\r\n break;\r\n }\r\n }\r\n\r\n _handleKeyEvent(keysym, code, down) {\r\n this.sendKey(keysym, code, down);\r\n }\r\n\r\n _handleMouse(ev) {\r\n /*\r\n * We don't check connection status or viewOnly here as the\r\n * mouse events might be used to control the viewport\r\n */\r\n\r\n if (ev.type === 'click') {\r\n /*\r\n * Note: This is only needed for the 'click' event as it fails\r\n * to fire properly for the target element so we have\r\n * to listen on the document element instead.\r\n */\r\n if (ev.target !== this._canvas) {\r\n return;\r\n }\r\n }\r\n\r\n // FIXME: if we're in view-only and not dragging,\r\n // should we stop events?\r\n ev.stopPropagation();\r\n ev.preventDefault();\r\n\r\n if (ev.type === 'click' || ev.type === 'contextmenu') {\r\n return;\r\n }\r\n\r\n let pos = clientToElement(ev.clientX, ev.clientY, this._canvas);\r\n\r\n switch (ev.type) {\r\n case 'mousedown':\r\n setCapture(this._canvas);\r\n this._handleMouseButton(pos.x, pos.y, true, 1 << ev.button);\r\n break;\r\n case 'mouseup':\r\n this._handleMouseButton(pos.x, pos.y, false, 1 << ev.button);\r\n break;\r\n case 'mousemove':\r\n this._handleMouseMove(pos.x, pos.y);\r\n break;\r\n }\r\n }\r\n\r\n _handleMouseButton(x, y, down, bmask) {\r\n if (this.dragViewport) {\r\n if (down && !this._viewportDragging) {\r\n this._viewportDragging = true;\r\n this._viewportDragPos = { x: x, y: y };\r\n this._viewportHasMoved = false;\r\n\r\n // Skip sending mouse events\r\n return;\r\n } else {\r\n this._viewportDragging = false;\r\n\r\n // If we actually performed a drag then we are done\r\n // here and should not send any mouse events\r\n if (this._viewportHasMoved) {\r\n return;\r\n }\r\n\r\n // Otherwise we treat this as a mouse click event.\r\n // Send the button down event here, as the button up\r\n // event is sent at the end of this function.\r\n this._sendMouse(x, y, bmask);\r\n }\r\n }\r\n\r\n // Flush waiting move event first\r\n if (this._mouseMoveTimer !== null) {\r\n clearTimeout(this._mouseMoveTimer);\r\n this._mouseMoveTimer = null;\r\n this._sendMouse(x, y, this._mouseButtonMask);\r\n }\r\n\r\n if (down) {\r\n this._mouseButtonMask |= bmask;\r\n } else {\r\n this._mouseButtonMask &= ~bmask;\r\n }\r\n\r\n this._sendMouse(x, y, this._mouseButtonMask);\r\n }\r\n\r\n _handleMouseMove(x, y) {\r\n if (this._viewportDragging) {\r\n const deltaX = this._viewportDragPos.x - x;\r\n const deltaY = this._viewportDragPos.y - y;\r\n\r\n if (this._viewportHasMoved || Math.abs(deltaX) > dragThreshold || Math.abs(deltaY) > dragThreshold) {\r\n this._viewportHasMoved = true;\r\n\r\n this._viewportDragPos = { x: x, y: y };\r\n this._display.viewportChangePos(deltaX, deltaY);\r\n }\r\n\r\n // Skip sending mouse events\r\n return;\r\n }\r\n\r\n this._mousePos = { x: x, y: y };\r\n\r\n // Limit many mouse move events to one every MOUSE_MOVE_DELAY ms\r\n if (this._mouseMoveTimer == null) {\r\n const timeSinceLastMove = Date.now() - this._mouseLastMoveTime;\r\n if (timeSinceLastMove > MOUSE_MOVE_DELAY) {\r\n this._sendMouse(x, y, this._mouseButtonMask);\r\n this._mouseLastMoveTime = Date.now();\r\n } else {\r\n // Too soon since the latest move, wait the remaining time\r\n this._mouseMoveTimer = setTimeout(() => {\r\n this._handleDelayedMouseMove();\r\n }, MOUSE_MOVE_DELAY - timeSinceLastMove);\r\n }\r\n }\r\n }\r\n\r\n _handleDelayedMouseMove() {\r\n this._mouseMoveTimer = null;\r\n this._sendMouse(this._mousePos.x, this._mousePos.y, this._mouseButtonMask);\r\n this._mouseLastMoveTime = Date.now();\r\n }\r\n\r\n _sendMouse(x, y, mask) {\r\n if (this._rfbConnectionState !== 'connected') {\r\n return;\r\n }\r\n if (this._viewOnly) {\r\n return;\r\n } // View only, skip mouse events\r\n\r\n RFB.messages.pointerEvent(this._sock, this._display.absX(x), this._display.absY(y), mask);\r\n }\r\n\r\n _handleWheel(ev) {\r\n if (this._rfbConnectionState !== 'connected') {\r\n return;\r\n }\r\n if (this._viewOnly) {\r\n return;\r\n } // View only, skip mouse events\r\n\r\n ev.stopPropagation();\r\n ev.preventDefault();\r\n\r\n let pos = clientToElement(ev.clientX, ev.clientY, this._canvas);\r\n\r\n let dX = ev.deltaX;\r\n let dY = ev.deltaY;\r\n\r\n // Pixel units unless it's non-zero.\r\n // Note that if deltamode is line or page won't matter since we aren't\r\n // sending the mouse wheel delta to the server anyway.\r\n // The difference between pixel and line can be important however since\r\n // we have a threshold that can be smaller than the line height.\r\n if (ev.deltaMode !== 0) {\r\n dX *= WHEEL_LINE_HEIGHT;\r\n dY *= WHEEL_LINE_HEIGHT;\r\n }\r\n\r\n // Mouse wheel events are sent in steps over VNC. This means that the VNC\r\n // protocol can't handle a wheel event with specific distance or speed.\r\n // Therefor, if we get a lot of small mouse wheel events we combine them.\r\n this._accumulatedWheelDeltaX += dX;\r\n this._accumulatedWheelDeltaY += dY;\r\n\r\n // Generate a mouse wheel step event when the accumulated delta\r\n // for one of the axes is large enough.\r\n if (Math.abs(this._accumulatedWheelDeltaX) >= WHEEL_STEP) {\r\n if (this._accumulatedWheelDeltaX < 0) {\r\n this._handleMouseButton(pos.x, pos.y, true, 1 << 5);\r\n this._handleMouseButton(pos.x, pos.y, false, 1 << 5);\r\n } else if (this._accumulatedWheelDeltaX > 0) {\r\n this._handleMouseButton(pos.x, pos.y, true, 1 << 6);\r\n this._handleMouseButton(pos.x, pos.y, false, 1 << 6);\r\n }\r\n\r\n this._accumulatedWheelDeltaX = 0;\r\n }\r\n if (Math.abs(this._accumulatedWheelDeltaY) >= WHEEL_STEP) {\r\n if (this._accumulatedWheelDeltaY < 0) {\r\n this._handleMouseButton(pos.x, pos.y, true, 1 << 3);\r\n this._handleMouseButton(pos.x, pos.y, false, 1 << 3);\r\n } else if (this._accumulatedWheelDeltaY > 0) {\r\n this._handleMouseButton(pos.x, pos.y, true, 1 << 4);\r\n this._handleMouseButton(pos.x, pos.y, false, 1 << 4);\r\n }\r\n\r\n this._accumulatedWheelDeltaY = 0;\r\n }\r\n }\r\n\r\n _fakeMouseMove(ev, elementX, elementY) {\r\n this._handleMouseMove(elementX, elementY);\r\n this._cursor.move(ev.detail.clientX, ev.detail.clientY);\r\n }\r\n\r\n _handleTapEvent(ev, bmask) {\r\n let pos = clientToElement(ev.detail.clientX, ev.detail.clientY, this._canvas);\r\n\r\n // If the user quickly taps multiple times we assume they meant to\r\n // hit the same spot, so slightly adjust coordinates\r\n\r\n if (\r\n this._gestureLastTapTime !== null &&\r\n Date.now() - this._gestureLastTapTime < DOUBLE_TAP_TIMEOUT &&\r\n this._gestureFirstDoubleTapEv.detail.type === ev.detail.type\r\n ) {\r\n let dx = this._gestureFirstDoubleTapEv.detail.clientX - ev.detail.clientX;\r\n let dy = this._gestureFirstDoubleTapEv.detail.clientY - ev.detail.clientY;\r\n let distance = Math.hypot(dx, dy);\r\n\r\n if (distance < DOUBLE_TAP_THRESHOLD) {\r\n pos = clientToElement(\r\n this._gestureFirstDoubleTapEv.detail.clientX,\r\n this._gestureFirstDoubleTapEv.detail.clientY,\r\n this._canvas\r\n );\r\n } else {\r\n this._gestureFirstDoubleTapEv = ev;\r\n }\r\n } else {\r\n this._gestureFirstDoubleTapEv = ev;\r\n }\r\n this._gestureLastTapTime = Date.now();\r\n\r\n this._fakeMouseMove(this._gestureFirstDoubleTapEv, pos.x, pos.y);\r\n this._handleMouseButton(pos.x, pos.y, true, bmask);\r\n this._handleMouseButton(pos.x, pos.y, false, bmask);\r\n }\r\n\r\n _handleGesture(ev) {\r\n let magnitude;\r\n\r\n let pos = clientToElement(ev.detail.clientX, ev.detail.clientY, this._canvas);\r\n switch (ev.type) {\r\n case 'gesturestart':\r\n switch (ev.detail.type) {\r\n case 'onetap':\r\n this._handleTapEvent(ev, 0x1);\r\n break;\r\n case 'twotap':\r\n this._handleTapEvent(ev, 0x4);\r\n break;\r\n case 'threetap':\r\n this._handleTapEvent(ev, 0x2);\r\n break;\r\n // case 'drag':\r\n // this._fakeMouseMove(ev, pos.x, pos.y);\r\n // this._handleMouseButton(pos.x, pos.y, true, 0x1);\r\n // break;\r\n case 'longpress':\r\n this._fakeMouseMove(ev, pos.x, pos.y);\r\n this._handleMouseButton(pos.x, pos.y, true, 0x4);\r\n break;\r\n\r\n case 'twodrag':\r\n this._gestureLastMagnitudeX = ev.detail.magnitudeX;\r\n this._gestureLastMagnitudeY = ev.detail.magnitudeY;\r\n this._fakeMouseMove(ev, pos.x, pos.y);\r\n break;\r\n // case 'pinch':\r\n // this._gestureLastMagnitudeX = Math.hypot(ev.detail.magnitudeX,\r\n // ev.detail.magnitudeY);\r\n // this._fakeMouseMove(ev, pos.x, pos.y);\r\n // break;\r\n }\r\n break;\r\n\r\n case 'gesturemove':\r\n switch (ev.detail.type) {\r\n case 'onetap':\r\n case 'twotap':\r\n case 'threetap':\r\n break;\r\n // case 'drag':\r\n case 'longpress':\r\n this._fakeMouseMove(ev, pos.x, pos.y);\r\n break;\r\n case 'twodrag':\r\n // Always scroll in the same position.\r\n // We don't know if the mouse was moved so we need to move it\r\n // every update.\r\n this._fakeMouseMove(ev, pos.x, pos.y);\r\n while (ev.detail.magnitudeY - this._gestureLastMagnitudeY > GESTURE_SCRLSENS) {\r\n this._handleMouseButton(pos.x, pos.y, true, 0x8);\r\n this._handleMouseButton(pos.x, pos.y, false, 0x8);\r\n this._gestureLastMagnitudeY += GESTURE_SCRLSENS;\r\n }\r\n while (ev.detail.magnitudeY - this._gestureLastMagnitudeY < -GESTURE_SCRLSENS) {\r\n this._handleMouseButton(pos.x, pos.y, true, 0x10);\r\n this._handleMouseButton(pos.x, pos.y, false, 0x10);\r\n this._gestureLastMagnitudeY -= GESTURE_SCRLSENS;\r\n }\r\n while (ev.detail.magnitudeX - this._gestureLastMagnitudeX > GESTURE_SCRLSENS) {\r\n this._handleMouseButton(pos.x, pos.y, true, 0x20);\r\n this._handleMouseButton(pos.x, pos.y, false, 0x20);\r\n this._gestureLastMagnitudeX += GESTURE_SCRLSENS;\r\n }\r\n while (ev.detail.magnitudeX - this._gestureLastMagnitudeX < -GESTURE_SCRLSENS) {\r\n this._handleMouseButton(pos.x, pos.y, true, 0x40);\r\n this._handleMouseButton(pos.x, pos.y, false, 0x40);\r\n this._gestureLastMagnitudeX -= GESTURE_SCRLSENS;\r\n }\r\n break;\r\n // case 'pinch':\r\n // // Always scroll in the same position.\r\n // // We don't know if the mouse was moved so we need to move it\r\n // // every update.\r\n // this._fakeMouseMove(ev, pos.x, pos.y);\r\n // magnitude = Math.hypot(ev.detail.magnitudeX, ev.detail.magnitudeY);\r\n // if (Math.abs(magnitude - this._gestureLastMagnitudeX) > GESTURE_ZOOMSENS) {\r\n // this._handleKeyEvent(KeyTable.XK_Control_L, \"ControlLeft\", true);\r\n // while ((magnitude - this._gestureLastMagnitudeX) > GESTURE_ZOOMSENS) {\r\n // this._handleMouseButton(pos.x, pos.y, true, 0x8);\r\n // this._handleMouseButton(pos.x, pos.y, false, 0x8);\r\n // this._gestureLastMagnitudeX += GESTURE_ZOOMSENS;\r\n // }\r\n // while ((magnitude - this._gestureLastMagnitudeX) < -GESTURE_ZOOMSENS) {\r\n // this._handleMouseButton(pos.x, pos.y, true, 0x10);\r\n // this._handleMouseButton(pos.x, pos.y, false, 0x10);\r\n // this._gestureLastMagnitudeX -= GESTURE_ZOOMSENS;\r\n // }\r\n // }\r\n // this._handleKeyEvent(KeyTable.XK_Control_L, \"ControlLeft\", false);\r\n // break;\r\n }\r\n break;\r\n\r\n case 'gestureend':\r\n switch (ev.detail.type) {\r\n case 'onetap':\r\n case 'twotap':\r\n case 'threetap':\r\n // case 'pinch':\r\n case 'twodrag':\r\n break;\r\n // case 'drag':\r\n // this._fakeMouseMove(ev, pos.x, pos.y);\r\n // this._handleMouseButton(pos.x, pos.y, false, 0x1);\r\n // break;\r\n case 'longpress':\r\n this._fakeMouseMove(ev, pos.x, pos.y);\r\n this._handleMouseButton(pos.x, pos.y, false, 0x4);\r\n break;\r\n }\r\n break;\r\n }\r\n }\r\n\r\n // Message Handlers\r\n\r\n _negotiateProtocolVersion() {\r\n if (this._sock.rQwait('version', 12)) {\r\n return false;\r\n }\r\n\r\n const sversion = this._sock.rQshiftStr(12).substr(4, 7);\r\n Log.Info('Server ProtocolVersion: ' + sversion);\r\n let isRepeater = 0;\r\n switch (sversion) {\r\n case '000.000': // UltraVNC repeater\r\n isRepeater = 1;\r\n break;\r\n case '003.003':\r\n case '003.006': // UltraVNC\r\n case '003.889': // Apple Remote Desktop\r\n this._rfbVersion = 3.3;\r\n break;\r\n case '003.007':\r\n this._rfbVersion = 3.7;\r\n break;\r\n case '003.008':\r\n case '004.000': // Intel AMT KVM\r\n case '004.001': // RealVNC 4.6\r\n case '005.000': // RealVNC 5.3\r\n this._rfbVersion = 3.8;\r\n break;\r\n default:\r\n return this._fail('Invalid server version ' + sversion);\r\n }\r\n\r\n if (isRepeater) {\r\n let repeaterID = 'ID:' + this._repeaterID;\r\n while (repeaterID.length < 250) {\r\n repeaterID += '\\0';\r\n }\r\n this._sock.sendString(repeaterID);\r\n return true;\r\n }\r\n\r\n if (this._rfbVersion > this._rfbMaxVersion) {\r\n this._rfbVersion = this._rfbMaxVersion;\r\n }\r\n\r\n const cversion = '00' + parseInt(this._rfbVersion, 10) + '.00' + ((this._rfbVersion * 10) % 10);\r\n this._sock.sendString('RFB ' + cversion + '\\n');\r\n Log.Debug('Sent ProtocolVersion: ' + cversion);\r\n\r\n this._rfbInitState = 'Security';\r\n }\r\n\r\n _negotiateSecurity() {\r\n if (this._rfbVersion >= 3.7) {\r\n // Server sends supported list, client decides\r\n const numTypes = this._sock.rQshift8();\r\n if (this._sock.rQwait('security type', numTypes, 1)) {\r\n return false;\r\n }\r\n\r\n if (numTypes === 0) {\r\n this._rfbInitState = 'SecurityReason';\r\n this._securityContext = 'no security types';\r\n this._securityStatus = 1;\r\n return this._initMsg();\r\n }\r\n\r\n const types = this._sock.rQshiftBytes(numTypes);\r\n Log.Debug('Server security types: ' + types);\r\n\r\n // Look for each auth in preferred order\r\n if (types.includes(1)) {\r\n this._rfbAuthScheme = 1; // None\r\n } else if (types.includes(22)) {\r\n this._rfbAuthScheme = 22; // XVP\r\n } else if (types.includes(16)) {\r\n this._rfbAuthScheme = 16; // Tight\r\n } else if (types.includes(2)) {\r\n this._rfbAuthScheme = 2; // VNC Auth\r\n } else if (types.includes(19)) {\r\n this._rfbAuthScheme = 19; // VeNCrypt Auth\r\n } else {\r\n return this._fail('Unsupported security types (types: ' + types + ')');\r\n }\r\n\r\n this._sock.send([this._rfbAuthScheme]);\r\n } else {\r\n // Server decides\r\n if (this._sock.rQwait('security scheme', 4)) {\r\n return false;\r\n }\r\n this._rfbAuthScheme = this._sock.rQshift32();\r\n\r\n if (this._rfbAuthScheme == 0) {\r\n this._rfbInitState = 'SecurityReason';\r\n this._securityContext = 'authentication scheme';\r\n this._securityStatus = 1;\r\n return this._initMsg();\r\n }\r\n }\r\n\r\n this._rfbInitState = 'Authentication';\r\n Log.Debug('Authenticating using scheme: ' + this._rfbAuthScheme);\r\n\r\n return this._initMsg(); // jump to authentication\r\n }\r\n\r\n _handleSecurityReason() {\r\n if (this._sock.rQwait('reason length', 4)) {\r\n return false;\r\n }\r\n const strlen = this._sock.rQshift32();\r\n let reason = '';\r\n\r\n if (strlen > 0) {\r\n if (this._sock.rQwait('reason', strlen, 4)) {\r\n return false;\r\n }\r\n reason = this._sock.rQshiftStr(strlen);\r\n }\r\n\r\n if (reason !== '') {\r\n this.dispatchEvent(\r\n new CustomEvent('securityfailure', { detail: { status: this._securityStatus, reason: reason } })\r\n );\r\n\r\n return this._fail('Security negotiation failed on ' + this._securityContext + ' (reason: ' + reason + ')');\r\n } else {\r\n this.dispatchEvent(new CustomEvent('securityfailure', { detail: { status: this._securityStatus } }));\r\n\r\n return this._fail('Security negotiation failed on ' + this._securityContext);\r\n }\r\n }\r\n\r\n // authentication\r\n _negotiateXvpAuth() {\r\n if (\r\n this._rfbCredentials.username === undefined ||\r\n this._rfbCredentials.password === undefined ||\r\n this._rfbCredentials.target === undefined\r\n ) {\r\n this.dispatchEvent(\r\n new CustomEvent('credentialsrequired', { detail: { types: ['username', 'password', 'target'] } })\r\n );\r\n return false;\r\n }\r\n\r\n const xvpAuthStr =\r\n String.fromCharCode(this._rfbCredentials.username.length) +\r\n String.fromCharCode(this._rfbCredentials.target.length) +\r\n this._rfbCredentials.username +\r\n this._rfbCredentials.target;\r\n this._sock.sendString(xvpAuthStr);\r\n this._rfbAuthScheme = 2;\r\n return this._negotiateAuthentication();\r\n }\r\n\r\n // VeNCrypt authentication, currently only supports version 0.2 and only Plain subtype\r\n _negotiateVeNCryptAuth() {\r\n // waiting for VeNCrypt version\r\n if (this._rfbVeNCryptState == 0) {\r\n if (this._sock.rQwait('vencrypt version', 2)) {\r\n return false;\r\n }\r\n\r\n const major = this._sock.rQshift8();\r\n const minor = this._sock.rQshift8();\r\n\r\n if (!(major == 0 && minor == 2)) {\r\n return this._fail('Unsupported VeNCrypt version ' + major + '.' + minor);\r\n }\r\n\r\n this._sock.send([0, 2]);\r\n this._rfbVeNCryptState = 1;\r\n }\r\n\r\n // waiting for ACK\r\n if (this._rfbVeNCryptState == 1) {\r\n if (this._sock.rQwait('vencrypt ack', 1)) {\r\n return false;\r\n }\r\n\r\n const res = this._sock.rQshift8();\r\n\r\n if (res != 0) {\r\n return this._fail('VeNCrypt failure ' + res);\r\n }\r\n\r\n this._rfbVeNCryptState = 2;\r\n }\r\n // must fall through here (i.e. no \"else if\"), beacause we may have already received\r\n // the subtypes length and won't be called again\r\n\r\n if (this._rfbVeNCryptState == 2) {\r\n // waiting for subtypes length\r\n if (this._sock.rQwait('vencrypt subtypes length', 1)) {\r\n return false;\r\n }\r\n\r\n const subtypesLength = this._sock.rQshift8();\r\n if (subtypesLength < 1) {\r\n return this._fail('VeNCrypt subtypes empty');\r\n }\r\n\r\n this._rfbVeNCryptSubtypesLength = subtypesLength;\r\n this._rfbVeNCryptState = 3;\r\n }\r\n\r\n // waiting for subtypes list\r\n if (this._rfbVeNCryptState == 3) {\r\n if (this._sock.rQwait('vencrypt subtypes', 4 * this._rfbVeNCryptSubtypesLength)) {\r\n return false;\r\n }\r\n\r\n const subtypes = [];\r\n for (let i = 0; i < this._rfbVeNCryptSubtypesLength; i++) {\r\n subtypes.push(this._sock.rQshift32());\r\n }\r\n\r\n // 256 = Plain subtype\r\n if (subtypes.indexOf(256) != -1) {\r\n // 0x100 = 256\r\n this._sock.send([0, 0, 1, 0]);\r\n this._rfbVeNCryptState = 4;\r\n } else {\r\n return this._fail('VeNCrypt Plain subtype not offered by server');\r\n }\r\n }\r\n\r\n // negotiated Plain subtype, server waits for password\r\n if (this._rfbVeNCryptState == 4) {\r\n if (this._rfbCredentials.username === undefined || this._rfbCredentials.password === undefined) {\r\n this.dispatchEvent(new CustomEvent('credentialsrequired', { detail: { types: ['username', 'password'] } }));\r\n return false;\r\n }\r\n\r\n const user = encodeUTF8(this._rfbCredentials.username);\r\n const pass = encodeUTF8(this._rfbCredentials.password);\r\n\r\n this._sock.send([\r\n (user.length >> 24) & 0xff,\r\n (user.length >> 16) & 0xff,\r\n (user.length >> 8) & 0xff,\r\n user.length & 0xff,\r\n ]);\r\n this._sock.send([\r\n (pass.length >> 24) & 0xff,\r\n (pass.length >> 16) & 0xff,\r\n (pass.length >> 8) & 0xff,\r\n pass.length & 0xff,\r\n ]);\r\n this._sock.sendString(user);\r\n this._sock.sendString(pass);\r\n\r\n this._rfbInitState = 'SecurityResult';\r\n return true;\r\n }\r\n }\r\n\r\n _negotiateStdVNCAuth() {\r\n if (this._sock.rQwait('auth challenge', 16)) {\r\n return false;\r\n }\r\n\r\n if (this._rfbCredentials.password === undefined) {\r\n this.dispatchEvent(new CustomEvent('credentialsrequired', { detail: { types: ['password'] } }));\r\n return false;\r\n }\r\n\r\n // TODO(directxman12): make genDES not require an Array\r\n const challenge = Array.prototype.slice.call(this._sock.rQshiftBytes(16));\r\n const response = RFB.genDES(this._rfbCredentials.password, challenge);\r\n this._sock.send(response);\r\n this._rfbInitState = 'SecurityResult';\r\n return true;\r\n }\r\n\r\n _negotiateTightUnixAuth() {\r\n if (this._rfbCredentials.username === undefined || this._rfbCredentials.password === undefined) {\r\n this.dispatchEvent(new CustomEvent('credentialsrequired', { detail: { types: ['username', 'password'] } }));\r\n return false;\r\n }\r\n\r\n this._sock.send([0, 0, 0, this._rfbCredentials.username.length]);\r\n this._sock.send([0, 0, 0, this._rfbCredentials.password.length]);\r\n this._sock.sendString(this._rfbCredentials.username);\r\n this._sock.sendString(this._rfbCredentials.password);\r\n this._rfbInitState = 'SecurityResult';\r\n return true;\r\n }\r\n\r\n _negotiateTightTunnels(numTunnels) {\r\n const clientSupportedTunnelTypes = {\r\n 0: { vendor: 'TGHT', signature: 'NOTUNNEL' },\r\n };\r\n const serverSupportedTunnelTypes = {};\r\n // receive tunnel capabilities\r\n for (let i = 0; i < numTunnels; i++) {\r\n const capCode = this._sock.rQshift32();\r\n const capVendor = this._sock.rQshiftStr(4);\r\n const capSignature = this._sock.rQshiftStr(8);\r\n serverSupportedTunnelTypes[capCode] = { vendor: capVendor, signature: capSignature };\r\n }\r\n\r\n Log.Debug('Server Tight tunnel types: ' + serverSupportedTunnelTypes);\r\n\r\n // Siemens touch panels have a VNC server that supports NOTUNNEL,\r\n // but forgets to advertise it. Try to detect such servers by\r\n // looking for their custom tunnel type.\r\n if (\r\n serverSupportedTunnelTypes[1] &&\r\n serverSupportedTunnelTypes[1].vendor === 'SICR' &&\r\n serverSupportedTunnelTypes[1].signature === 'SCHANNEL'\r\n ) {\r\n Log.Debug('Detected Siemens server. Assuming NOTUNNEL support.');\r\n serverSupportedTunnelTypes[0] = { vendor: 'TGHT', signature: 'NOTUNNEL' };\r\n }\r\n\r\n // choose the notunnel type\r\n if (serverSupportedTunnelTypes[0]) {\r\n if (\r\n serverSupportedTunnelTypes[0].vendor != clientSupportedTunnelTypes[0].vendor ||\r\n serverSupportedTunnelTypes[0].signature != clientSupportedTunnelTypes[0].signature\r\n ) {\r\n return this._fail(\"Client's tunnel type had the incorrect \" + 'vendor or signature');\r\n }\r\n Log.Debug('Selected tunnel type: ' + clientSupportedTunnelTypes[0]);\r\n this._sock.send([0, 0, 0, 0]); // use NOTUNNEL\r\n return false; // wait until we receive the sub auth count to continue\r\n } else {\r\n return this._fail(\"Server wanted tunnels, but doesn't support \" + 'the notunnel type');\r\n }\r\n }\r\n\r\n _negotiateTightAuth() {\r\n if (!this._rfbTightVNC) {\r\n // first pass, do the tunnel negotiation\r\n if (this._sock.rQwait('num tunnels', 4)) {\r\n return false;\r\n }\r\n const numTunnels = this._sock.rQshift32();\r\n if (numTunnels > 0 && this._sock.rQwait('tunnel capabilities', 16 * numTunnels, 4)) {\r\n return false;\r\n }\r\n\r\n this._rfbTightVNC = true;\r\n\r\n if (numTunnels > 0) {\r\n this._negotiateTightTunnels(numTunnels);\r\n return false; // wait until we receive the sub auth to continue\r\n }\r\n }\r\n\r\n // second pass, do the sub-auth negotiation\r\n if (this._sock.rQwait('sub auth count', 4)) {\r\n return false;\r\n }\r\n const subAuthCount = this._sock.rQshift32();\r\n if (subAuthCount === 0) {\r\n // empty sub-auth list received means 'no auth' subtype selected\r\n this._rfbInitState = 'SecurityResult';\r\n return true;\r\n }\r\n\r\n if (this._sock.rQwait('sub auth capabilities', 16 * subAuthCount, 4)) {\r\n return false;\r\n }\r\n\r\n const clientSupportedTypes = {\r\n STDVNOAUTH__: 1,\r\n STDVVNCAUTH_: 2,\r\n TGHTULGNAUTH: 129,\r\n };\r\n\r\n const serverSupportedTypes = [];\r\n\r\n for (let i = 0; i < subAuthCount; i++) {\r\n this._sock.rQshift32(); // capNum\r\n const capabilities = this._sock.rQshiftStr(12);\r\n serverSupportedTypes.push(capabilities);\r\n }\r\n\r\n Log.Debug('Server Tight authentication types: ' + serverSupportedTypes);\r\n\r\n for (let authType in clientSupportedTypes) {\r\n if (serverSupportedTypes.indexOf(authType) != -1) {\r\n this._sock.send([0, 0, 0, clientSupportedTypes[authType]]);\r\n Log.Debug('Selected authentication type: ' + authType);\r\n\r\n switch (authType) {\r\n case 'STDVNOAUTH__': // no auth\r\n this._rfbInitState = 'SecurityResult';\r\n return true;\r\n case 'STDVVNCAUTH_': // VNC auth\r\n this._rfbAuthScheme = 2;\r\n return this._initMsg();\r\n case 'TGHTULGNAUTH': // UNIX auth\r\n this._rfbAuthScheme = 129;\r\n return this._initMsg();\r\n default:\r\n return this._fail('Unsupported tiny auth scheme ' + '(scheme: ' + authType + ')');\r\n }\r\n }\r\n }\r\n\r\n return this._fail('No supported sub-auth types!');\r\n }\r\n\r\n _negotiateAuthentication() {\r\n switch (this._rfbAuthScheme) {\r\n case 1: // no auth\r\n if (this._rfbVersion >= 3.8) {\r\n this._rfbInitState = 'SecurityResult';\r\n return true;\r\n }\r\n this._rfbInitState = 'ClientInitialisation';\r\n return this._initMsg();\r\n\r\n case 22: // XVP auth\r\n return this._negotiateXvpAuth();\r\n\r\n case 2: // VNC authentication\r\n return this._negotiateStdVNCAuth();\r\n\r\n case 16: // TightVNC Security Type\r\n return this._negotiateTightAuth();\r\n\r\n case 19: // VeNCrypt Security Type\r\n return this._negotiateVeNCryptAuth();\r\n\r\n case 129: // TightVNC UNIX Security Type\r\n return this._negotiateTightUnixAuth();\r\n\r\n default:\r\n return this._fail('Unsupported auth scheme (scheme: ' + this._rfbAuthScheme + ')');\r\n }\r\n }\r\n\r\n _handleSecurityResult() {\r\n if (this._sock.rQwait('VNC auth response ', 4)) {\r\n return false;\r\n }\r\n\r\n const status = this._sock.rQshift32();\r\n\r\n if (status === 0) {\r\n // OK\r\n this._rfbInitState = 'ClientInitialisation';\r\n Log.Debug('Authentication OK');\r\n return this._initMsg();\r\n } else {\r\n if (this._rfbVersion >= 3.8) {\r\n this._rfbInitState = 'SecurityReason';\r\n this._securityContext = 'security result';\r\n this._securityStatus = status;\r\n return this._initMsg();\r\n } else {\r\n this.dispatchEvent(new CustomEvent('securityfailure', { detail: { status: status } }));\r\n\r\n return this._fail('Security handshake failed');\r\n }\r\n }\r\n }\r\n\r\n _negotiateServerInit() {\r\n if (this._sock.rQwait('server initialization', 24)) {\r\n return false;\r\n }\r\n\r\n /* Screen size */\r\n const width = this._sock.rQshift16();\r\n const height = this._sock.rQshift16();\r\n\r\n /* PIXEL_FORMAT */\r\n const bpp = this._sock.rQshift8();\r\n const depth = this._sock.rQshift8();\r\n const bigEndian = this._sock.rQshift8();\r\n const trueColor = this._sock.rQshift8();\r\n\r\n const redMax = this._sock.rQshift16();\r\n const greenMax = this._sock.rQshift16();\r\n const blueMax = this._sock.rQshift16();\r\n const redShift = this._sock.rQshift8();\r\n const greenShift = this._sock.rQshift8();\r\n const blueShift = this._sock.rQshift8();\r\n this._sock.rQskipBytes(3); // padding\r\n\r\n // NB(directxman12): we don't want to call any callbacks or print messages until\r\n // *after* we're past the point where we could backtrack\r\n\r\n /* Connection name/title */\r\n const nameLength = this._sock.rQshift32();\r\n if (this._sock.rQwait('server init name', nameLength, 24)) {\r\n return false;\r\n }\r\n let name = this._sock.rQshiftStr(nameLength);\r\n name = decodeUTF8(name, true);\r\n\r\n if (this._rfbTightVNC) {\r\n if (this._sock.rQwait('TightVNC extended server init header', 8, 24 + nameLength)) {\r\n return false;\r\n }\r\n // In TightVNC mode, ServerInit message is extended\r\n const numServerMessages = this._sock.rQshift16();\r\n const numClientMessages = this._sock.rQshift16();\r\n const numEncodings = this._sock.rQshift16();\r\n this._sock.rQskipBytes(2); // padding\r\n\r\n const totalMessagesLength = (numServerMessages + numClientMessages + numEncodings) * 16;\r\n if (this._sock.rQwait('TightVNC extended server init header', totalMessagesLength, 32 + nameLength)) {\r\n return false;\r\n }\r\n\r\n // we don't actually do anything with the capability information that TIGHT sends,\r\n // so we just skip the all of this.\r\n\r\n // TIGHT server message capabilities\r\n this._sock.rQskipBytes(16 * numServerMessages);\r\n\r\n // TIGHT client message capabilities\r\n this._sock.rQskipBytes(16 * numClientMessages);\r\n\r\n // TIGHT encoding capabilities\r\n this._sock.rQskipBytes(16 * numEncodings);\r\n }\r\n\r\n // NB(directxman12): these are down here so that we don't run them multiple times\r\n // if we backtrack\r\n Log.Info(\r\n 'Screen: ' +\r\n width +\r\n 'x' +\r\n height +\r\n ', bpp: ' +\r\n bpp +\r\n ', depth: ' +\r\n depth +\r\n ', bigEndian: ' +\r\n bigEndian +\r\n ', trueColor: ' +\r\n trueColor +\r\n ', redMax: ' +\r\n redMax +\r\n ', greenMax: ' +\r\n greenMax +\r\n ', blueMax: ' +\r\n blueMax +\r\n ', redShift: ' +\r\n redShift +\r\n ', greenShift: ' +\r\n greenShift +\r\n ', blueShift: ' +\r\n blueShift\r\n );\r\n\r\n this._fbDepth = 24;\r\n\r\n var eightBit = ((redMax << redShift) | (greenMax << greenShift) | (blueMax << blueShift)) == 255; // B&R PowerPannel\r\n if (eightBit) {\r\n Log.Warn('Using 8 bpp mode');\r\n this._fbDepth = 8;\r\n }\r\n\r\n // we're past the point where we could backtrack, so it's safe to call this\r\n this._setDesktopName(name);\r\n this._resize(width, height);\r\n\r\n if (!this._viewOnly) {\r\n this._keyboard.grab();\r\n }\r\n\r\n if (this._fbName === 'Intel(r) AMT KVM') {\r\n Log.Warn('Intel AMT KVM only supports 8/16 bit depths. Using low color mode.');\r\n this._fbDepth = 8;\r\n }\r\n\r\n RFB.messages.pixelFormat(this._sock, this._fbDepth, true);\r\n this._sendEncodings();\r\n RFB.messages.fbUpdateRequest(this._sock, false, 0, 0, this._fbWidth, this._fbHeight);\r\n\r\n this._updateConnectionState('connected');\r\n return true;\r\n }\r\n\r\n _sendEncodings() {\r\n const encs = [];\r\n\r\n // In preference order\r\n encs.push(encodings.encodingCopyRect);\r\n // Only supported with full depth support\r\n if (this._fbDepth == 24) {\r\n encs.push(encodings.encodingTight);\r\n encs.push(encodings.encodingTightPNG);\r\n encs.push(encodings.encodingHextile);\r\n encs.push(encodings.encodingRRE);\r\n }\r\n encs.push(encodings.encodingRaw);\r\n\r\n // Psuedo-encoding settings\r\n encs.push(encodings.pseudoEncodingQualityLevel0 + this._qualityLevel);\r\n encs.push(encodings.pseudoEncodingCompressLevel0 + this._compressionLevel);\r\n\r\n encs.push(encodings.pseudoEncodingDesktopSize);\r\n encs.push(encodings.pseudoEncodingLastRect);\r\n encs.push(encodings.pseudoEncodingQEMUExtendedKeyEvent);\r\n encs.push(encodings.pseudoEncodingExtendedDesktopSize);\r\n encs.push(encodings.pseudoEncodingXvp);\r\n encs.push(encodings.pseudoEncodingFence);\r\n encs.push(encodings.pseudoEncodingContinuousUpdates);\r\n encs.push(encodings.pseudoEncodingDesktopName);\r\n encs.push(encodings.pseudoEncodingExtendedClipboard);\r\n\r\n if (this._fbDepth == 24) {\r\n encs.push(encodings.pseudoEncodingVMwareCursor);\r\n encs.push(encodings.pseudoEncodingCursor);\r\n }\r\n\r\n RFB.messages.clientEncodings(this._sock, encs);\r\n }\r\n\r\n /* RFB protocol initialization states:\r\n * ProtocolVersion\r\n * Security\r\n * Authentication\r\n * SecurityResult\r\n * ClientInitialization - not triggered by server message\r\n * ServerInitialization\r\n */\r\n _initMsg() {\r\n switch (this._rfbInitState) {\r\n case 'ProtocolVersion':\r\n return this._negotiateProtocolVersion();\r\n\r\n case 'Security':\r\n return this._negotiateSecurity();\r\n\r\n case 'Authentication':\r\n return this._negotiateAuthentication();\r\n\r\n case 'SecurityResult':\r\n return this._handleSecurityResult();\r\n\r\n case 'SecurityReason':\r\n return this._handleSecurityReason();\r\n\r\n case 'ClientInitialisation':\r\n this._sock.send([this._shared ? 1 : 0]); // ClientInitialisation\r\n this._rfbInitState = 'ServerInitialisation';\r\n return true;\r\n\r\n case 'ServerInitialisation':\r\n return this._negotiateServerInit();\r\n\r\n default:\r\n return this._fail('Unknown init state (state: ' + this._rfbInitState + ')');\r\n }\r\n }\r\n\r\n _handleSetColourMapMsg() {\r\n Log.Debug('SetColorMapEntries');\r\n\r\n return this._fail('Unexpected SetColorMapEntries message');\r\n }\r\n\r\n _handleServerCutText() {\r\n Log.Debug('ServerCutText');\r\n\r\n if (this._sock.rQwait('ServerCutText header', 7, 1)) {\r\n return false;\r\n }\r\n\r\n this._sock.rQskipBytes(3); // Padding\r\n\r\n let length = this._sock.rQshift32();\r\n length = toSigned32bit(length);\r\n\r\n if (this._sock.rQwait('ServerCutText content', Math.abs(length), 8)) {\r\n return false;\r\n }\r\n\r\n if (length >= 0) {\r\n //Standard msg\r\n const text = this._sock.rQshiftStr(length);\r\n if (this._viewOnly) {\r\n return true;\r\n }\r\n\r\n this.dispatchEvent(new CustomEvent('clipboard', { detail: { text: text } }));\r\n } else {\r\n //Extended msg.\r\n length = Math.abs(length);\r\n const flags = this._sock.rQshift32();\r\n let formats = flags & 0x0000ffff;\r\n let actions = flags & 0xff000000;\r\n\r\n let isCaps = !!(actions & extendedClipboardActionCaps);\r\n if (isCaps) {\r\n this._clipboardServerCapabilitiesFormats = {};\r\n this._clipboardServerCapabilitiesActions = {};\r\n\r\n // Update our server capabilities for Formats\r\n for (let i = 0; i <= 15; i++) {\r\n let index = 1 << i;\r\n\r\n // Check if format flag is set.\r\n if (formats & index) {\r\n this._clipboardServerCapabilitiesFormats[index] = true;\r\n // We don't send unsolicited clipboard, so we\r\n // ignore the size\r\n this._sock.rQshift32();\r\n }\r\n }\r\n\r\n // Update our server capabilities for Actions\r\n for (let i = 24; i <= 31; i++) {\r\n let index = 1 << i;\r\n this._clipboardServerCapabilitiesActions[index] = !!(actions & index);\r\n }\r\n\r\n /* Caps handling done, send caps with the clients\r\n capabilities set as a response */\r\n let clientActions = [\r\n extendedClipboardActionCaps,\r\n extendedClipboardActionRequest,\r\n extendedClipboardActionPeek,\r\n extendedClipboardActionNotify,\r\n extendedClipboardActionProvide,\r\n ];\r\n RFB.messages.extendedClipboardCaps(this._sock, clientActions, { extendedClipboardFormatText: 0 });\r\n } else if (actions === extendedClipboardActionRequest) {\r\n if (this._viewOnly) {\r\n return true;\r\n }\r\n\r\n // Check if server has told us it can handle Provide and there is clipboard data to send.\r\n if (this._clipboardText != null && this._clipboardServerCapabilitiesActions[extendedClipboardActionProvide]) {\r\n if (formats & extendedClipboardFormatText) {\r\n RFB.messages.extendedClipboardProvide(this._sock, [extendedClipboardFormatText], [this._clipboardText]);\r\n }\r\n }\r\n } else if (actions === extendedClipboardActionPeek) {\r\n if (this._viewOnly) {\r\n return true;\r\n }\r\n\r\n if (this._clipboardServerCapabilitiesActions[extendedClipboardActionNotify]) {\r\n if (this._clipboardText != null) {\r\n RFB.messages.extendedClipboardNotify(this._sock, [extendedClipboardFormatText]);\r\n } else {\r\n RFB.messages.extendedClipboardNotify(this._sock, []);\r\n }\r\n }\r\n } else if (actions === extendedClipboardActionNotify) {\r\n if (this._viewOnly) {\r\n return true;\r\n }\r\n\r\n if (this._clipboardServerCapabilitiesActions[extendedClipboardActionRequest]) {\r\n if (formats & extendedClipboardFormatText) {\r\n RFB.messages.extendedClipboardRequest(this._sock, [extendedClipboardFormatText]);\r\n }\r\n }\r\n } else if (actions === extendedClipboardActionProvide) {\r\n if (this._viewOnly) {\r\n return true;\r\n }\r\n\r\n if (!(formats & extendedClipboardFormatText)) {\r\n return true;\r\n }\r\n // Ignore what we had in our clipboard client side.\r\n this._clipboardText = null;\r\n\r\n // FIXME: Should probably verify that this data was actually requested\r\n let zlibStream = this._sock.rQshiftBytes(length - 4);\r\n let streamInflator = new Inflator();\r\n let textData = null;\r\n\r\n streamInflator.setInput(zlibStream);\r\n for (let i = 0; i <= 15; i++) {\r\n let format = 1 << i;\r\n\r\n if (formats & format) {\r\n let size = 0x00;\r\n let sizeArray = streamInflator.inflate(4);\r\n\r\n size |= sizeArray[0] << 24;\r\n size |= sizeArray[1] << 16;\r\n size |= sizeArray[2] << 8;\r\n size |= sizeArray[3];\r\n let chunk = streamInflator.inflate(size);\r\n\r\n if (format === extendedClipboardFormatText) {\r\n textData = chunk;\r\n }\r\n }\r\n }\r\n streamInflator.setInput(null);\r\n\r\n if (textData !== null) {\r\n let tmpText = '';\r\n for (let i = 0; i < textData.length; i++) {\r\n tmpText += String.fromCharCode(textData[i]);\r\n }\r\n textData = tmpText;\r\n\r\n textData = decodeUTF8(textData);\r\n if (textData.length > 0 && '\\0' === textData.charAt(textData.length - 1)) {\r\n textData = textData.slice(0, -1);\r\n }\r\n\r\n textData = textData.replace('\\r\\n', '\\n');\r\n\r\n this.dispatchEvent(new CustomEvent('clipboard', { detail: { text: textData } }));\r\n }\r\n } else {\r\n return this._fail('Unexpected action in extended clipboard message: ' + actions);\r\n }\r\n }\r\n return true;\r\n }\r\n\r\n _handleServerFenceMsg() {\r\n if (this._sock.rQwait('ServerFence header', 8, 1)) {\r\n return false;\r\n }\r\n this._sock.rQskipBytes(3); // Padding\r\n let flags = this._sock.rQshift32();\r\n let length = this._sock.rQshift8();\r\n\r\n if (this._sock.rQwait('ServerFence payload', length, 9)) {\r\n return false;\r\n }\r\n\r\n if (length > 64) {\r\n Log.Warn('Bad payload length (' + length + ') in fence response');\r\n length = 64;\r\n }\r\n\r\n const payload = this._sock.rQshiftStr(length);\r\n\r\n this._supportsFence = true;\r\n\r\n /*\r\n * Fence flags\r\n *\r\n * (1<<0) - BlockBefore\r\n * (1<<1) - BlockAfter\r\n * (1<<2) - SyncNext\r\n * (1<<31) - Request\r\n */\r\n\r\n if (!(flags & (1 << 31))) {\r\n return this._fail('Unexpected fence response');\r\n }\r\n\r\n // Filter out unsupported flags\r\n // FIXME: support syncNext\r\n flags &= (1 << 0) | (1 << 1);\r\n\r\n // BlockBefore and BlockAfter are automatically handled by\r\n // the fact that we process each incoming message\r\n // synchronuosly.\r\n RFB.messages.clientFence(this._sock, flags, payload);\r\n\r\n return true;\r\n }\r\n\r\n _handleXvpMsg() {\r\n if (this._sock.rQwait('XVP version and message', 3, 1)) {\r\n return false;\r\n }\r\n this._sock.rQskipBytes(1); // Padding\r\n const xvpVer = this._sock.rQshift8();\r\n const xvpMsg = this._sock.rQshift8();\r\n\r\n switch (xvpMsg) {\r\n case 0: // XVP_FAIL\r\n Log.Error('XVP Operation Failed');\r\n break;\r\n case 1: // XVP_INIT\r\n this._rfbXvpVer = xvpVer;\r\n Log.Info('XVP extensions enabled (version ' + this._rfbXvpVer + ')');\r\n this._setCapability('power', true);\r\n break;\r\n default:\r\n this._fail('Illegal server XVP message (msg: ' + xvpMsg + ')');\r\n break;\r\n }\r\n\r\n return true;\r\n }\r\n\r\n _normalMsg() {\r\n let msgType;\r\n if (this._FBU.rects > 0) {\r\n msgType = 0;\r\n } else {\r\n msgType = this._sock.rQshift8();\r\n }\r\n\r\n let first, ret;\r\n switch (msgType) {\r\n case 0: // FramebufferUpdate\r\n ret = this._framebufferUpdate();\r\n if (ret && !this._enabledContinuousUpdates) {\r\n RFB.messages.fbUpdateRequest(this._sock, true, 0, 0, this._fbWidth, this._fbHeight);\r\n }\r\n return ret;\r\n\r\n case 1: // SetColorMapEntries\r\n return this._handleSetColourMapMsg();\r\n\r\n case 2: // Bell\r\n Log.Debug('Bell');\r\n this.dispatchEvent(new CustomEvent('bell', { detail: {} }));\r\n return true;\r\n\r\n case 3: // ServerCutText\r\n return this._handleServerCutText();\r\n\r\n case 150: // EndOfContinuousUpdates\r\n first = !this._supportsContinuousUpdates;\r\n this._supportsContinuousUpdates = true;\r\n this._enabledContinuousUpdates = false;\r\n if (first) {\r\n this._enabledContinuousUpdates = true;\r\n this._updateContinuousUpdates();\r\n Log.Info('Enabling continuous updates.');\r\n } else {\r\n // FIXME: We need to send a framebufferupdaterequest here\r\n // if we add support for turning off continuous updates\r\n }\r\n return true;\r\n\r\n case 248: // ServerFence\r\n return this._handleServerFenceMsg();\r\n\r\n case 250: // XVP\r\n return this._handleXvpMsg();\r\n\r\n default:\r\n this._fail('Unexpected server message (type ' + msgType + ')');\r\n Log.Debug('sock.rQslice(0, 30): ' + this._sock.rQslice(0, 30));\r\n return true;\r\n }\r\n }\r\n\r\n _onFlush() {\r\n this._flushing = false;\r\n // Resume processing\r\n if (this._sock.rQlen > 0) {\r\n this._handleMessage();\r\n }\r\n }\r\n\r\n _framebufferUpdate() {\r\n if (this._FBU.rects === 0) {\r\n if (this._sock.rQwait('FBU header', 3, 1)) {\r\n return false;\r\n }\r\n this._sock.rQskipBytes(1); // Padding\r\n this._FBU.rects = this._sock.rQshift16();\r\n\r\n // Make sure the previous frame is fully rendered first\r\n // to avoid building up an excessive queue\r\n if (this._display.pending()) {\r\n this._flushing = true;\r\n this._display.flush();\r\n return false;\r\n }\r\n }\r\n\r\n while (this._FBU.rects > 0) {\r\n if (this._FBU.encoding === null) {\r\n if (this._sock.rQwait('rect header', 12)) {\r\n return false;\r\n }\r\n /* New FramebufferUpdate */\r\n\r\n const hdr = this._sock.rQshiftBytes(12);\r\n this._FBU.x = (hdr[0] << 8) + hdr[1];\r\n this._FBU.y = (hdr[2] << 8) + hdr[3];\r\n this._FBU.width = (hdr[4] << 8) + hdr[5];\r\n this._FBU.height = (hdr[6] << 8) + hdr[7];\r\n this._FBU.encoding = parseInt((hdr[8] << 24) + (hdr[9] << 16) + (hdr[10] << 8) + hdr[11], 10);\r\n }\r\n\r\n if (!this._handleRect()) {\r\n return false;\r\n }\r\n\r\n this._FBU.rects--;\r\n this._FBU.encoding = null;\r\n }\r\n\r\n this._display.flip();\r\n\r\n return true; // We finished this FBU\r\n }\r\n\r\n _handleRect() {\r\n switch (this._FBU.encoding) {\r\n case encodings.pseudoEncodingLastRect:\r\n this._FBU.rects = 1; // Will be decreased when we return\r\n return true;\r\n\r\n case encodings.pseudoEncodingVMwareCursor:\r\n return this._handleVMwareCursor();\r\n\r\n case encodings.pseudoEncodingCursor:\r\n return this._handleCursor();\r\n\r\n case encodings.pseudoEncodingQEMUExtendedKeyEvent:\r\n this._qemuExtKeyEventSupported = true;\r\n return true;\r\n\r\n case encodings.pseudoEncodingDesktopName:\r\n return this._handleDesktopName();\r\n\r\n case encodings.pseudoEncodingDesktopSize:\r\n this._resize(this._FBU.width, this._FBU.height);\r\n return true;\r\n\r\n case encodings.pseudoEncodingExtendedDesktopSize:\r\n return this._handleExtendedDesktopSize();\r\n\r\n default:\r\n return this._handleDataRect();\r\n }\r\n }\r\n\r\n _handleVMwareCursor() {\r\n const hotx = this._FBU.x; // hotspot-x\r\n const hoty = this._FBU.y; // hotspot-y\r\n const w = this._FBU.width;\r\n const h = this._FBU.height;\r\n if (this._sock.rQwait('VMware cursor encoding', 1)) {\r\n return false;\r\n }\r\n\r\n const cursorType = this._sock.rQshift8();\r\n\r\n this._sock.rQshift8(); //Padding\r\n\r\n let rgba;\r\n const bytesPerPixel = 4;\r\n\r\n //Classic cursor\r\n if (cursorType == 0) {\r\n //Used to filter away unimportant bits.\r\n //OR is used for correct conversion in js.\r\n const PIXEL_MASK = 0xffffff00 | 0;\r\n rgba = new Array(w * h * bytesPerPixel);\r\n\r\n if (this._sock.rQwait('VMware cursor classic encoding', w * h * bytesPerPixel * 2, 2)) {\r\n return false;\r\n }\r\n\r\n let andMask = new Array(w * h);\r\n for (let pixel = 0; pixel < w * h; pixel++) {\r\n andMask[pixel] = this._sock.rQshift32();\r\n }\r\n\r\n let xorMask = new Array(w * h);\r\n for (let pixel = 0; pixel < w * h; pixel++) {\r\n xorMask[pixel] = this._sock.rQshift32();\r\n }\r\n\r\n for (let pixel = 0; pixel < w * h; pixel++) {\r\n if (andMask[pixel] == 0) {\r\n //Fully opaque pixel\r\n let bgr = xorMask[pixel];\r\n let r = (bgr >> 8) & 0xff;\r\n let g = (bgr >> 16) & 0xff;\r\n let b = (bgr >> 24) & 0xff;\r\n\r\n rgba[pixel * bytesPerPixel] = r; //r\r\n rgba[pixel * bytesPerPixel + 1] = g; //g\r\n rgba[pixel * bytesPerPixel + 2] = b; //b\r\n rgba[pixel * bytesPerPixel + 3] = 0xff; //a\r\n } else if ((andMask[pixel] & PIXEL_MASK) == PIXEL_MASK) {\r\n //Only screen value matters, no mouse colouring\r\n if (xorMask[pixel] == 0) {\r\n //Transparent pixel\r\n rgba[pixel * bytesPerPixel] = 0x00;\r\n rgba[pixel * bytesPerPixel + 1] = 0x00;\r\n rgba[pixel * bytesPerPixel + 2] = 0x00;\r\n rgba[pixel * bytesPerPixel + 3] = 0x00;\r\n } else if ((xorMask[pixel] & PIXEL_MASK) == PIXEL_MASK) {\r\n //Inverted pixel, not supported in browsers.\r\n //Fully opaque instead.\r\n rgba[pixel * bytesPerPixel] = 0x00;\r\n rgba[pixel * bytesPerPixel + 1] = 0x00;\r\n rgba[pixel * bytesPerPixel + 2] = 0x00;\r\n rgba[pixel * bytesPerPixel + 3] = 0xff;\r\n } else {\r\n //Unhandled xorMask\r\n rgba[pixel * bytesPerPixel] = 0x00;\r\n rgba[pixel * bytesPerPixel + 1] = 0x00;\r\n rgba[pixel * bytesPerPixel + 2] = 0x00;\r\n rgba[pixel * bytesPerPixel + 3] = 0xff;\r\n }\r\n } else {\r\n //Unhandled andMask\r\n rgba[pixel * bytesPerPixel] = 0x00;\r\n rgba[pixel * bytesPerPixel + 1] = 0x00;\r\n rgba[pixel * bytesPerPixel + 2] = 0x00;\r\n rgba[pixel * bytesPerPixel + 3] = 0xff;\r\n }\r\n }\r\n\r\n //Alpha cursor.\r\n } else if (cursorType == 1) {\r\n if (this._sock.rQwait('VMware cursor alpha encoding', w * h * 4, 2)) {\r\n return false;\r\n }\r\n\r\n rgba = new Array(w * h * bytesPerPixel);\r\n\r\n for (let pixel = 0; pixel < w * h; pixel++) {\r\n let data = this._sock.rQshift32();\r\n\r\n rgba[pixel * 4] = (data >> 24) & 0xff; //r\r\n rgba[pixel * 4 + 1] = (data >> 16) & 0xff; //g\r\n rgba[pixel * 4 + 2] = (data >> 8) & 0xff; //b\r\n rgba[pixel * 4 + 3] = data & 0xff; //a\r\n }\r\n } else {\r\n Log.Warn('The given cursor type is not supported: ' + cursorType + ' given.');\r\n return false;\r\n }\r\n\r\n this._updateCursor(rgba, hotx, hoty, w, h);\r\n\r\n return true;\r\n }\r\n\r\n _handleCursor() {\r\n const hotx = this._FBU.x; // hotspot-x\r\n const hoty = this._FBU.y; // hotspot-y\r\n const w = this._FBU.width;\r\n const h = this._FBU.height;\r\n\r\n const pixelslength = w * h * 4;\r\n const masklength = Math.ceil(w / 8) * h;\r\n\r\n let bytes = pixelslength + masklength;\r\n if (this._sock.rQwait('cursor encoding', bytes)) {\r\n return false;\r\n }\r\n\r\n // Decode from BGRX pixels + bit mask to RGBA\r\n const pixels = this._sock.rQshiftBytes(pixelslength);\r\n const mask = this._sock.rQshiftBytes(masklength);\r\n let rgba = new Uint8Array(w * h * 4);\r\n\r\n let pixIdx = 0;\r\n for (let y = 0; y < h; y++) {\r\n for (let x = 0; x < w; x++) {\r\n let maskIdx = y * Math.ceil(w / 8) + Math.floor(x / 8);\r\n let alpha = (mask[maskIdx] << x % 8) & 0x80 ? 255 : 0;\r\n rgba[pixIdx] = pixels[pixIdx + 2];\r\n rgba[pixIdx + 1] = pixels[pixIdx + 1];\r\n rgba[pixIdx + 2] = pixels[pixIdx];\r\n rgba[pixIdx + 3] = alpha;\r\n pixIdx += 4;\r\n }\r\n }\r\n\r\n this._updateCursor(rgba, hotx, hoty, w, h);\r\n\r\n return true;\r\n }\r\n\r\n _handleDesktopName() {\r\n if (this._sock.rQwait('DesktopName', 4)) {\r\n return false;\r\n }\r\n\r\n let length = this._sock.rQshift32();\r\n\r\n if (this._sock.rQwait('DesktopName', length, 4)) {\r\n return false;\r\n }\r\n\r\n let name = this._sock.rQshiftStr(length);\r\n name = decodeUTF8(name, true);\r\n\r\n this._setDesktopName(name);\r\n\r\n return true;\r\n }\r\n\r\n _handleExtendedDesktopSize() {\r\n if (this._sock.rQwait('ExtendedDesktopSize', 4)) {\r\n return false;\r\n }\r\n\r\n const numberOfScreens = this._sock.rQpeek8();\r\n\r\n let bytes = 4 + numberOfScreens * 16;\r\n if (this._sock.rQwait('ExtendedDesktopSize', bytes)) {\r\n return false;\r\n }\r\n\r\n const firstUpdate = !this._supportsSetDesktopSize;\r\n this._supportsSetDesktopSize = true;\r\n\r\n // Normally we only apply the current resize mode after a\r\n // window resize event. However there is no such trigger on the\r\n // initial connect. And we don't know if the server supports\r\n // resizing until we've gotten here.\r\n if (firstUpdate) {\r\n this._requestRemoteResize();\r\n }\r\n\r\n this._sock.rQskipBytes(1); // number-of-screens\r\n this._sock.rQskipBytes(3); // padding\r\n\r\n for (let i = 0; i < numberOfScreens; i += 1) {\r\n // Save the id and flags of the first screen\r\n if (i === 0) {\r\n this._screenID = this._sock.rQshiftBytes(4); // id\r\n this._sock.rQskipBytes(2); // x-position\r\n this._sock.rQskipBytes(2); // y-position\r\n this._sock.rQskipBytes(2); // width\r\n this._sock.rQskipBytes(2); // height\r\n this._screenFlags = this._sock.rQshiftBytes(4); // flags\r\n } else {\r\n this._sock.rQskipBytes(16);\r\n }\r\n }\r\n\r\n /*\r\n * The x-position indicates the reason for the change:\r\n *\r\n * 0 - server resized on its own\r\n * 1 - this client requested the resize\r\n * 2 - another client requested the resize\r\n */\r\n\r\n // We need to handle errors when we requested the resize.\r\n if (this._FBU.x === 1 && this._FBU.y !== 0) {\r\n let msg = '';\r\n // The y-position indicates the status code from the server\r\n switch (this._FBU.y) {\r\n case 1:\r\n msg = 'Resize is administratively prohibited';\r\n break;\r\n case 2:\r\n msg = 'Out of resources';\r\n break;\r\n case 3:\r\n msg = 'Invalid screen layout';\r\n break;\r\n default:\r\n msg = 'Unknown reason';\r\n break;\r\n }\r\n Log.Warn('Server did not accept the resize request: ' + msg);\r\n } else {\r\n this._resize(this._FBU.width, this._FBU.height);\r\n }\r\n\r\n return true;\r\n }\r\n\r\n _handleDataRect() {\r\n let decoder = this._decoders[this._FBU.encoding];\r\n if (!decoder) {\r\n this._fail('Unsupported encoding (encoding: ' + this._FBU.encoding + ')');\r\n return false;\r\n }\r\n\r\n try {\r\n return decoder.decodeRect(\r\n this._FBU.x,\r\n this._FBU.y,\r\n this._FBU.width,\r\n this._FBU.height,\r\n this._sock,\r\n this._display,\r\n this._fbDepth\r\n );\r\n } catch (err) {\r\n this._fail('Error decoding rect: ' + err);\r\n return false;\r\n }\r\n }\r\n\r\n _updateContinuousUpdates() {\r\n if (!this._enabledContinuousUpdates) {\r\n return;\r\n }\r\n\r\n RFB.messages.enableContinuousUpdates(this._sock, true, 0, 0, this._fbWidth, this._fbHeight);\r\n }\r\n\r\n _resize(width, height) {\r\n this._fbWidth = width;\r\n this._fbHeight = height;\r\n\r\n this._display.resize(this._fbWidth, this._fbHeight);\r\n\r\n // Adjust the visible viewport based on the new dimensions\r\n this._updateClip();\r\n this._updateScale();\r\n\r\n this._updateContinuousUpdates();\r\n }\r\n\r\n _xvpOp(ver, op) {\r\n if (this._rfbXvpVer < ver) {\r\n return;\r\n }\r\n Log.Info('Sending XVP operation ' + op + ' (version ' + ver + ')');\r\n RFB.messages.xvpOp(this._sock, ver, op);\r\n }\r\n\r\n _updateCursor(rgba, hotx, hoty, w, h) {\r\n this._cursorImage = {\r\n rgbaPixels: rgba,\r\n hotx: hotx,\r\n hoty: hoty,\r\n w: w,\r\n h: h,\r\n };\r\n this._refreshCursor();\r\n }\r\n\r\n _shouldShowDotCursor() {\r\n // Called when this._cursorImage is updated\r\n if (!this._showDotCursor) {\r\n // User does not want to see the dot, so...\r\n return false;\r\n }\r\n\r\n // The dot should not be shown if the cursor is already visible,\r\n // i.e. contains at least one not-fully-transparent pixel.\r\n // So iterate through all alpha bytes in rgba and stop at the\r\n // first non-zero.\r\n for (let i = 3; i < this._cursorImage.rgbaPixels.length; i += 4) {\r\n if (this._cursorImage.rgbaPixels[i]) {\r\n return false;\r\n }\r\n }\r\n\r\n // At this point, we know that the cursor is fully transparent, and\r\n // the user wants to see the dot instead of this.\r\n return true;\r\n }\r\n\r\n _refreshCursor() {\r\n if (this._rfbConnectionState !== 'connecting' && this._rfbConnectionState !== 'connected') {\r\n return;\r\n }\r\n const image = this._shouldShowDotCursor() ? RFB.cursors.dot : this._cursorImage;\r\n this._cursor.change(image.rgbaPixels, image.hotx, image.hoty, image.w, image.h);\r\n }\r\n\r\n static genDES(password, challenge) {\r\n const passwordChars = password.split('').map((c) => c.charCodeAt(0));\r\n return new DES(passwordChars).encrypt(challenge);\r\n }\r\n}\r\n\r\n// Class Methods\r\nRFB.messages = {\r\n keyEvent(sock, keysym, down) {\r\n const buff = sock._sQ;\r\n const offset = sock._sQlen;\r\n\r\n buff[offset] = 4; // msg-type\r\n buff[offset + 1] = down;\r\n\r\n buff[offset + 2] = 0;\r\n buff[offset + 3] = 0;\r\n\r\n buff[offset + 4] = keysym >> 24;\r\n buff[offset + 5] = keysym >> 16;\r\n buff[offset + 6] = keysym >> 8;\r\n buff[offset + 7] = keysym;\r\n\r\n sock._sQlen += 8;\r\n sock.flush();\r\n },\r\n\r\n QEMUExtendedKeyEvent(sock, keysym, down, keycode) {\r\n function getRFBkeycode(xtScanCode) {\r\n const upperByte = keycode >> 8;\r\n const lowerByte = keycode & 0x00ff;\r\n if (upperByte === 0xe0 && lowerByte < 0x7f) {\r\n return lowerByte | 0x80;\r\n }\r\n return xtScanCode;\r\n }\r\n\r\n const buff = sock._sQ;\r\n const offset = sock._sQlen;\r\n\r\n buff[offset] = 255; // msg-type\r\n buff[offset + 1] = 0; // sub msg-type\r\n\r\n buff[offset + 2] = down >> 8;\r\n buff[offset + 3] = down;\r\n\r\n buff[offset + 4] = keysym >> 24;\r\n buff[offset + 5] = keysym >> 16;\r\n buff[offset + 6] = keysym >> 8;\r\n buff[offset + 7] = keysym;\r\n\r\n const RFBkeycode = getRFBkeycode(keycode);\r\n\r\n buff[offset + 8] = RFBkeycode >> 24;\r\n buff[offset + 9] = RFBkeycode >> 16;\r\n buff[offset + 10] = RFBkeycode >> 8;\r\n buff[offset + 11] = RFBkeycode;\r\n\r\n sock._sQlen += 12;\r\n sock.flush();\r\n },\r\n\r\n pointerEvent(sock, x, y, mask) {\r\n const buff = sock._sQ;\r\n const offset = sock._sQlen;\r\n\r\n buff[offset] = 5; // msg-type\r\n\r\n buff[offset + 1] = mask;\r\n\r\n buff[offset + 2] = x >> 8;\r\n buff[offset + 3] = x;\r\n\r\n buff[offset + 4] = y >> 8;\r\n buff[offset + 5] = y;\r\n\r\n sock._sQlen += 6;\r\n sock.flush();\r\n },\r\n\r\n // Used to build Notify and Request data.\r\n _buildExtendedClipboardFlags(actions, formats) {\r\n let data = new Uint8Array(4);\r\n let formatFlag = 0x00000000;\r\n let actionFlag = 0x00000000;\r\n\r\n for (let i = 0; i < actions.length; i++) {\r\n actionFlag |= actions[i];\r\n }\r\n\r\n for (let i = 0; i < formats.length; i++) {\r\n formatFlag |= formats[i];\r\n }\r\n\r\n data[0] = actionFlag >> 24; // Actions\r\n data[1] = 0x00; // Reserved\r\n data[2] = 0x00; // Reserved\r\n data[3] = formatFlag; // Formats\r\n\r\n return data;\r\n },\r\n\r\n extendedClipboardProvide(sock, formats, inData) {\r\n // Deflate incomming data and their sizes\r\n let deflator = new Deflator();\r\n let dataToDeflate = [];\r\n\r\n for (let i = 0; i < formats.length; i++) {\r\n // We only support the format Text at this time\r\n if (formats[i] != extendedClipboardFormatText) {\r\n throw new Error('Unsupported extended clipboard format for Provide message.');\r\n }\r\n\r\n // Change lone \\r or \\n into \\r\\n as defined in rfbproto\r\n inData[i] = inData[i].replace(/\\r\\n|\\r|\\n/gm, '\\r\\n');\r\n\r\n // Check if it already has \\0\r\n let text = encodeUTF8(inData[i] + '\\0');\r\n\r\n dataToDeflate.push(\r\n (text.length >> 24) & 0xff,\r\n (text.length >> 16) & 0xff,\r\n (text.length >> 8) & 0xff,\r\n text.length & 0xff\r\n );\r\n\r\n for (let j = 0; j < text.length; j++) {\r\n dataToDeflate.push(text.charCodeAt(j));\r\n }\r\n }\r\n\r\n let deflatedData = deflator.deflate(new Uint8Array(dataToDeflate));\r\n\r\n // Build data to send\r\n let data = new Uint8Array(4 + deflatedData.length);\r\n data.set(RFB.messages._buildExtendedClipboardFlags([extendedClipboardActionProvide], formats));\r\n data.set(deflatedData, 4);\r\n\r\n RFB.messages.clientCutText(sock, data, true);\r\n },\r\n\r\n extendedClipboardNotify(sock, formats) {\r\n let flags = RFB.messages._buildExtendedClipboardFlags([extendedClipboardActionNotify], formats);\r\n RFB.messages.clientCutText(sock, flags, true);\r\n },\r\n\r\n extendedClipboardRequest(sock, formats) {\r\n let flags = RFB.messages._buildExtendedClipboardFlags([extendedClipboardActionRequest], formats);\r\n RFB.messages.clientCutText(sock, flags, true);\r\n },\r\n\r\n extendedClipboardCaps(sock, actions, formats) {\r\n let formatKeys = Object.keys(formats);\r\n let data = new Uint8Array(4 + 4 * formatKeys.length);\r\n\r\n formatKeys.map((x) => parseInt(x));\r\n formatKeys.sort((a, b) => a - b);\r\n\r\n data.set(RFB.messages._buildExtendedClipboardFlags(actions, []));\r\n\r\n let loopOffset = 4;\r\n for (let i = 0; i < formatKeys.length; i++) {\r\n data[loopOffset] = formats[formatKeys[i]] >> 24;\r\n data[loopOffset + 1] = formats[formatKeys[i]] >> 16;\r\n data[loopOffset + 2] = formats[formatKeys[i]] >> 8;\r\n data[loopOffset + 3] = formats[formatKeys[i]] >> 0;\r\n\r\n loopOffset += 4;\r\n data[3] |= 1 << formatKeys[i]; // Update our format flags\r\n }\r\n\r\n RFB.messages.clientCutText(sock, data, true);\r\n },\r\n\r\n clientCutText(sock, data, extended = false) {\r\n const buff = sock._sQ;\r\n const offset = sock._sQlen;\r\n\r\n buff[offset] = 6; // msg-type\r\n\r\n buff[offset + 1] = 0; // padding\r\n buff[offset + 2] = 0; // padding\r\n buff[offset + 3] = 0; // padding\r\n\r\n let length;\r\n if (extended) {\r\n length = toUnsigned32bit(-data.length);\r\n } else {\r\n length = data.length;\r\n }\r\n\r\n buff[offset + 4] = length >> 24;\r\n buff[offset + 5] = length >> 16;\r\n buff[offset + 6] = length >> 8;\r\n buff[offset + 7] = length;\r\n\r\n sock._sQlen += 8;\r\n\r\n // We have to keep track of from where in the data we begin creating the\r\n // buffer for the flush in the next iteration.\r\n let dataOffset = 0;\r\n\r\n let remaining = data.length;\r\n while (remaining > 0) {\r\n let flushSize = Math.min(remaining, sock._sQbufferSize - sock._sQlen);\r\n for (let i = 0; i < flushSize; i++) {\r\n buff[sock._sQlen + i] = data[dataOffset + i];\r\n }\r\n\r\n sock._sQlen += flushSize;\r\n sock.flush();\r\n\r\n remaining -= flushSize;\r\n dataOffset += flushSize;\r\n }\r\n },\r\n\r\n setDesktopSize(sock, width, height, id, flags) {\r\n const buff = sock._sQ;\r\n const offset = sock._sQlen;\r\n\r\n buff[offset] = 251; // msg-type\r\n buff[offset + 1] = 0; // padding\r\n buff[offset + 2] = width >> 8; // width\r\n buff[offset + 3] = width;\r\n buff[offset + 4] = height >> 8; // height\r\n buff[offset + 5] = height;\r\n\r\n buff[offset + 6] = 1; // number-of-screens\r\n buff[offset + 7] = 0; // padding\r\n\r\n // screen array\r\n buff[offset + 8] = id >> 24; // id\r\n buff[offset + 9] = id >> 16;\r\n buff[offset + 10] = id >> 8;\r\n buff[offset + 11] = id;\r\n buff[offset + 12] = 0; // x-position\r\n buff[offset + 13] = 0;\r\n buff[offset + 14] = 0; // y-position\r\n buff[offset + 15] = 0;\r\n buff[offset + 16] = width >> 8; // width\r\n buff[offset + 17] = width;\r\n buff[offset + 18] = height >> 8; // height\r\n buff[offset + 19] = height;\r\n buff[offset + 20] = flags >> 24; // flags\r\n buff[offset + 21] = flags >> 16;\r\n buff[offset + 22] = flags >> 8;\r\n buff[offset + 23] = flags;\r\n\r\n sock._sQlen += 24;\r\n sock.flush();\r\n },\r\n\r\n clientFence(sock, flags, payload) {\r\n const buff = sock._sQ;\r\n const offset = sock._sQlen;\r\n\r\n buff[offset] = 248; // msg-type\r\n\r\n buff[offset + 1] = 0; // padding\r\n buff[offset + 2] = 0; // padding\r\n buff[offset + 3] = 0; // padding\r\n\r\n buff[offset + 4] = flags >> 24; // flags\r\n buff[offset + 5] = flags >> 16;\r\n buff[offset + 6] = flags >> 8;\r\n buff[offset + 7] = flags;\r\n\r\n const n = payload.length;\r\n\r\n buff[offset + 8] = n; // length\r\n\r\n for (let i = 0; i < n; i++) {\r\n buff[offset + 9 + i] = payload.charCodeAt(i);\r\n }\r\n\r\n sock._sQlen += 9 + n;\r\n sock.flush();\r\n },\r\n\r\n enableContinuousUpdates(sock, enable, x, y, width, height) {\r\n const buff = sock._sQ;\r\n const offset = sock._sQlen;\r\n\r\n buff[offset] = 150; // msg-type\r\n buff[offset + 1] = enable; // enable-flag\r\n\r\n buff[offset + 2] = x >> 8; // x\r\n buff[offset + 3] = x;\r\n buff[offset + 4] = y >> 8; // y\r\n buff[offset + 5] = y;\r\n buff[offset + 6] = width >> 8; // width\r\n buff[offset + 7] = width;\r\n buff[offset + 8] = height >> 8; // height\r\n buff[offset + 9] = height;\r\n\r\n sock._sQlen += 10;\r\n sock.flush();\r\n },\r\n\r\n pixelFormat(sock, depth, trueColor) {\r\n const buff = sock._sQ;\r\n const offset = sock._sQlen;\r\n\r\n let bpp;\r\n\r\n if (depth > 16) {\r\n bpp = 32;\r\n } else if (depth > 8) {\r\n bpp = 16;\r\n } else {\r\n bpp = 8;\r\n }\r\n\r\n const bits = Math.floor(depth / 3);\r\n\r\n const redMax = bpp === 8 ? 7 : (1 << bits) - 1;\r\n const greenMax = bpp === 8 ? 7 : (1 << bits) - 1;\r\n const blueMax = bpp === 8 ? 3 : (1 << bits) - 1;\r\n\r\n const redShift = bits * 0;\r\n const greenShift = bpp === 8 ? 3 : bits * 1;\r\n const blueShift = bpp === 8 ? 6 : bits * 2;\r\n\r\n Log.Debug(\r\n `SetPixelFormat: bpp: ${bpp}, depth: ${depth}, bigEndian: 0, trueColor: ${trueColor ? 1 : 0\r\n }, redMax: ${redMax}, greenMax: ${greenMax}, blueMax: ${blueMax}, redShift: ${redShift}, greenShift: ${greenShift}, blueShift: ${blueShift}`\r\n );\r\n\r\n buff[offset] = 0; // msg-type\r\n\r\n buff[offset + 1] = 0; // padding\r\n buff[offset + 2] = 0; // padding\r\n buff[offset + 3] = 0; // padding\r\n\r\n buff[offset + 4] = bpp; // bits-per-pixel\r\n buff[offset + 5] = depth; // depth\r\n buff[offset + 6] = 0; // little-endian\r\n buff[offset + 7] = trueColor ? 1 : 0; // true-color\r\n\r\n buff[offset + 8] = 0; // red-max\r\n buff[offset + 9] = redMax; // red-max\r\n\r\n buff[offset + 10] = 0; // green-max\r\n buff[offset + 11] = greenMax; // green-max\r\n\r\n buff[offset + 12] = 0; // blue-max\r\n buff[offset + 13] = blueMax; // blue-max\r\n\r\n buff[offset + 14] = redShift; // red-shift\r\n buff[offset + 15] = greenShift; // green-shift\r\n buff[offset + 16] = blueShift; // blue-shift\r\n\r\n buff[offset + 17] = 0; // padding\r\n buff[offset + 18] = 0; // padding\r\n buff[offset + 19] = 0; // padding\r\n\r\n sock._sQlen += 20;\r\n sock.flush();\r\n },\r\n\r\n clientEncodings(sock, encodings) {\r\n const buff = sock._sQ;\r\n const offset = sock._sQlen;\r\n\r\n buff[offset] = 2; // msg-type\r\n buff[offset + 1] = 0; // padding\r\n\r\n buff[offset + 2] = encodings.length >> 8;\r\n buff[offset + 3] = encodings.length;\r\n\r\n let j = offset + 4;\r\n for (let i = 0; i < encodings.length; i++) {\r\n const enc = encodings[i];\r\n buff[j] = enc >> 24;\r\n buff[j + 1] = enc >> 16;\r\n buff[j + 2] = enc >> 8;\r\n buff[j + 3] = enc;\r\n\r\n j += 4;\r\n }\r\n\r\n sock._sQlen += j - offset;\r\n sock.flush();\r\n },\r\n\r\n fbUpdateRequest(sock, incremental, x, y, w, h) {\r\n const buff = sock._sQ;\r\n const offset = sock._sQlen;\r\n\r\n if (typeof x === 'undefined') {\r\n x = 0;\r\n }\r\n if (typeof y === 'undefined') {\r\n y = 0;\r\n }\r\n\r\n buff[offset] = 3; // msg-type\r\n buff[offset + 1] = incremental ? 1 : 0;\r\n\r\n buff[offset + 2] = (x >> 8) & 0xff;\r\n buff[offset + 3] = x & 0xff;\r\n\r\n buff[offset + 4] = (y >> 8) & 0xff;\r\n buff[offset + 5] = y & 0xff;\r\n\r\n buff[offset + 6] = (w >> 8) & 0xff;\r\n buff[offset + 7] = w & 0xff;\r\n\r\n buff[offset + 8] = (h >> 8) & 0xff;\r\n buff[offset + 9] = h & 0xff;\r\n\r\n sock._sQlen += 10;\r\n sock.flush();\r\n },\r\n\r\n xvpOp(sock, ver, op) {\r\n const buff = sock._sQ;\r\n const offset = sock._sQlen;\r\n\r\n buff[offset] = 250; // msg-type\r\n buff[offset + 1] = 0; // padding\r\n\r\n buff[offset + 2] = ver;\r\n buff[offset + 3] = op;\r\n\r\n sock._sQlen += 4;\r\n sock.flush();\r\n },\r\n};\r\n\r\nRFB.cursors = {\r\n none: {\r\n rgbaPixels: new Uint8Array(),\r\n w: 0,\r\n h: 0,\r\n hotx: 0,\r\n hoty: 0,\r\n },\r\n\r\n dot: {\r\n /* eslint-disable indent */\r\n rgbaPixels: new Uint8Array([\r\n 255, 255, 255, 255, 0, 0, 0, 255, 255, 255, 255, 255, 0, 0, 0, 255, 0, 0, 0, 0, 0, 0, 0, 255, 255, 255, 255, 255,\r\n 0, 0, 0, 255, 255, 255, 255, 255,\r\n ]),\r\n /* eslint-enable indent */\r\n w: 3,\r\n h: 3,\r\n hotx: 1,\r\n hoty: 1,\r\n },\r\n\r\n sis: {\r\n /* eslint-disable indent */\r\n rgbaPixels: new Uint8Array([\r\n 0, 0, 0, 255, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,\r\n 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,\r\n 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 255, 255, 255, 255, 255, 0, 0, 0, 255,\r\n 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,\r\n 0, 255, 255, 255, 255, 255, 255, 255, 255, 255, 0, 0, 0, 255, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,\r\n 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255,\r\n 255, 0, 0, 0, 255, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,\r\n 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 0, 0, 0, 255, 0, 0, 0, 0, 0,\r\n 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 255, 255, 255, 255, 255, 255, 255, 255, 255,\r\n 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 0, 0, 0, 255, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,\r\n 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255,\r\n 255, 255, 255, 255, 255, 255, 255, 255, 0, 0, 0, 255, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,\r\n 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255,\r\n 255, 255, 255, 255, 255, 255, 0, 0, 0, 255, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 255, 255, 255, 255, 255,\r\n 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255,\r\n 255, 255, 255, 255, 255, 0, 0, 0, 255, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 255, 255, 255, 255, 255, 255, 255, 255,\r\n 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255,\r\n 255, 255, 255, 255, 255, 255, 0, 0, 0, 255, 0, 0, 0, 0, 0, 0, 0, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255,\r\n 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255,\r\n 255, 255, 255, 255, 255, 255, 255, 255, 0, 0, 0, 255, 0, 0, 0, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255,\r\n 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0,\r\n 255, 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 0, 0,\r\n 0, 255, 255, 255, 255, 255, 255, 255, 255, 255, 0, 0, 0, 255, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,\r\n 0, 0, 255, 255, 255, 255, 255, 255, 255, 255, 255, 0, 0, 0, 255, 0, 0, 0, 0, 0, 0, 0, 255, 255, 255, 255, 255,\r\n 255, 255, 255, 255, 0, 0, 0, 255, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 255, 255, 255, 255, 255, 0, 0, 0,\r\n 255, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 255, 255, 255, 255, 255, 255, 255, 255, 255, 0, 0, 0, 255, 0, 0, 0, 0, 0, 0,\r\n 0, 0, 0, 0, 0, 0, 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 255, 255,\r\n 255, 255, 255, 255, 255, 255, 255, 0, 0, 0, 255, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,\r\n 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 255, 255, 255, 255, 255, 255, 255, 255, 255, 0, 0, 0, 255, 0, 0, 0, 0, 0,\r\n 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 255, 0, 0,\r\n 0, 255, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,\r\n ]),\r\n /* eslint-enable indent */\r\n w: 12,\r\n h: 19,\r\n hotx: 0,\r\n hoty: 0,\r\n },\r\n};","/*\r\n * noVNC: HTML5 VNC client\r\n * Copyright (C) 2019 The noVNC Authors\r\n * Licensed under MPL 2.0 or any later version (see LICENSE.txt)\r\n */\r\n\r\nimport { supportsCursorURIs, isTouchDevice } from '@novnc/novnc/core/util/browser.js';\r\n\r\nconst useFallback = !supportsCursorURIs || isTouchDevice;\r\n\r\nexport default class Cursor {\r\n constructor(targetDocument) {\r\n this._targetDocument = targetDocument;\r\n this._target = null;\r\n\r\n this._canvas = this._targetDocument.createElement('canvas');\r\n\r\n if (useFallback) {\r\n this._canvas.style.position = 'fixed';\r\n this._canvas.style.zIndex = '65535';\r\n this._canvas.style.pointerEvents = 'none';\r\n // Safari on iOS can select the cursor image\r\n // https://bugs.webkit.org/show_bug.cgi?id=249223\r\n this._canvas.style.userSelect = 'none';\r\n this._canvas.style.WebkitUserSelect = 'none';\r\n // Can't use \"display\" because of Firefox bug #1445997\r\n this._canvas.style.visibility = 'hidden';\r\n }\r\n\r\n this._position = { x: 0, y: 0 };\r\n this._hotSpot = { x: 0, y: 0 };\r\n\r\n this._eventHandlers = {\r\n mouseover: this._handleMouseOver.bind(this),\r\n mouseleave: this._handleMouseLeave.bind(this),\r\n mousemove: this._handleMouseMove.bind(this),\r\n mouseup: this._handleMouseUp.bind(this),\r\n };\r\n }\r\n\r\n attach(target) {\r\n if (this._target) {\r\n this.detach();\r\n }\r\n\r\n this._target = target;\r\n\r\n if (useFallback) {\r\n this._targetDocument.body.appendChild(this._canvas);\r\n\r\n const options = { capture: true, passive: true };\r\n this._target.addEventListener('mouseover', this._eventHandlers.mouseover, options);\r\n this._target.addEventListener('mouseleave', this._eventHandlers.mouseleave, options);\r\n this._target.addEventListener('mousemove', this._eventHandlers.mousemove, options);\r\n this._target.addEventListener('mouseup', this._eventHandlers.mouseup, options);\r\n }\r\n\r\n this.clear();\r\n }\r\n\r\n detach() {\r\n if (!this._target) {\r\n return;\r\n }\r\n\r\n if (useFallback) {\r\n const options = { capture: true, passive: true };\r\n this._target.removeEventListener('mouseover', this._eventHandlers.mouseover, options);\r\n this._target.removeEventListener('mouseleave', this._eventHandlers.mouseleave, options);\r\n this._target.removeEventListener('mousemove', this._eventHandlers.mousemove, options);\r\n this._target.removeEventListener('mouseup', this._eventHandlers.mouseup, options);\r\n\r\n this._targetDocument.body.removeChild(this._canvas);\r\n }\r\n\r\n this._target = null;\r\n }\r\n\r\n change(rgba, hotx, hoty, w, h) {\r\n if (w === 0 || h === 0) {\r\n this.clear();\r\n return;\r\n }\r\n\r\n this._position.x = this._position.x + this._hotSpot.x - hotx;\r\n this._position.y = this._position.y + this._hotSpot.y - hoty;\r\n this._hotSpot.x = hotx;\r\n this._hotSpot.y = hoty;\r\n\r\n let ctx = this._canvas.getContext('2d');\r\n\r\n this._canvas.width = w;\r\n this._canvas.height = h;\r\n\r\n let img = new ImageData(new Uint8ClampedArray(rgba), w, h);\r\n ctx.clearRect(0, 0, w, h);\r\n ctx.putImageData(img, 0, 0);\r\n\r\n if (useFallback) {\r\n this._updatePosition();\r\n } else {\r\n let url = this._canvas.toDataURL();\r\n this._target.style.cursor = 'url(' + url + ')' + hotx + ' ' + hoty + ', default';\r\n }\r\n }\r\n\r\n clear() {\r\n this._target.style.cursor = 'none';\r\n this._canvas.width = 0;\r\n this._canvas.height = 0;\r\n this._position.x = this._position.x + this._hotSpot.x;\r\n this._position.y = this._position.y + this._hotSpot.y;\r\n this._hotSpot.x = 0;\r\n this._hotSpot.y = 0;\r\n }\r\n\r\n // Mouse events might be emulated, this allows\r\n // moving the cursor in such cases\r\n move(clientX, clientY) {\r\n if (!useFallback) {\r\n return;\r\n }\r\n // clientX/clientY are relative the _visual viewport_,\r\n // but our position is relative the _layout viewport_,\r\n // so try to compensate when we can\r\n if (window.visualViewport) {\r\n this._position.x = clientX + window.visualViewport.offsetLeft;\r\n this._position.y = clientY + window.visualViewport.offsetTop;\r\n } else {\r\n this._position.x = clientX;\r\n this._position.y = clientY;\r\n }\r\n this._updatePosition();\r\n let target = this._targetDocument.elementFromPoint(clientX, clientY);\r\n this._updateVisibility(target);\r\n }\r\n\r\n _handleMouseOver(event) {\r\n // This event could be because we're entering the target, or\r\n // moving around amongst its sub elements. Let the move handler\r\n // sort things out.\r\n this._handleMouseMove(event);\r\n }\r\n\r\n _handleMouseLeave(event) {\r\n // Check if we should show the cursor on the element we are leaving to\r\n this._updateVisibility(event.relatedTarget);\r\n }\r\n\r\n _handleMouseMove(event) {\r\n this._updateVisibility(event.target);\r\n\r\n this._position.x = event.clientX - this._hotSpot.x;\r\n this._position.y = event.clientY - this._hotSpot.y;\r\n\r\n this._updatePosition();\r\n }\r\n\r\n _handleMouseUp(event) {\r\n // We might get this event because of a drag operation that\r\n // moved outside of the target. Check what's under the cursor\r\n // now and adjust visibility based on that.\r\n let target = this._targetDocument.elementFromPoint(event.clientX, event.clientY);\r\n this._updateVisibility(target);\r\n\r\n // Captures end with a mouseup but we can't know the event order of\r\n // mouseup vs releaseCapture.\r\n //\r\n // In the cases when releaseCapture comes first, the code above is\r\n // enough.\r\n //\r\n // In the cases when the mouseup comes first, we need wait for the\r\n // browser to flush all events and then check again if the cursor\r\n // should be visible.\r\n if (this._captureIsActive()) {\r\n window.setTimeout(() => {\r\n // We might have detached at this point\r\n if (!this._target) {\r\n return;\r\n }\r\n // Refresh the target from elementFromPoint since queued events\r\n // might have altered the DOM\r\n target = this._targetDocument.elementFromPoint(event.clientX, event.clientY);\r\n this._updateVisibility(target);\r\n }, 0);\r\n }\r\n }\r\n\r\n _showCursor() {\r\n if (this._canvas.style.visibility === 'hidden') {\r\n this._canvas.style.visibility = '';\r\n }\r\n }\r\n\r\n _hideCursor() {\r\n if (this._canvas.style.visibility !== 'hidden') {\r\n this._canvas.style.visibility = 'hidden';\r\n }\r\n }\r\n\r\n // Should we currently display the cursor?\r\n // (i.e. are we over the target, or a child of the target without a\r\n // different cursor set)\r\n _shouldShowCursor(target) {\r\n if (!target) {\r\n return false;\r\n }\r\n // Easy case\r\n if (target === this._target) {\r\n return true;\r\n }\r\n // Other part of the DOM?\r\n if (!this._target.contains(target)) {\r\n return false;\r\n }\r\n // Has the child its own cursor?\r\n // FIXME: How can we tell that a sub element has an\r\n // explicit \"cursor: none;\"?\r\n if (window.getComputedStyle(target).cursor !== 'none') {\r\n return false;\r\n }\r\n return true;\r\n }\r\n\r\n _updateVisibility(target) {\r\n // When the cursor target has capture we want to show the cursor.\r\n // So, if a capture is active - look at the captured element instead.\r\n if (this._captureIsActive()) {\r\n target = this._targetDocument.captureElement;\r\n }\r\n if (this._shouldShowCursor(target)) {\r\n this._showCursor();\r\n } else {\r\n this._hideCursor();\r\n }\r\n }\r\n\r\n _updatePosition() {\r\n this._canvas.style.left = this._position.x + 'px';\r\n this._canvas.style.top = this._position.y + 'px';\r\n }\r\n\r\n _captureIsActive() {\r\n return (\r\n this._targetDocument.captureElement &&\r\n this._targetDocument.documentElement.contains(this._targetDocument.captureElement)\r\n );\r\n }\r\n}\r\n","/* This file is used to overwrite original implementation of \"Websock\", which did not send the required close reason code.\r\n* Reason code \"1000\" means \"Normal Closure\"\r\n*/\r\n\r\n/*\r\n * Websock: high-performance buffering wrapper\r\n * Copyright (C) 2019 The noVNC Authors\r\n * Licensed under MPL 2.0 (see LICENSE.txt)\r\n *\r\n * Websock is similar to the standard WebSocket / RTCDataChannel object\r\n * but with extra buffer handling.\r\n *\r\n * Websock has built-in receive queue buffering; the message event\r\n * does not contain actual data but is simply a notification that\r\n * there is new data available. Several rQ* methods are available to\r\n * read binary data off of the receive queue.\r\n */\r\n\r\nimport * as Log from '@novnc/novnc/core/util/logging.js';\r\n\r\n// this has performance issues in some versions Chromium, and\r\n// doesn't gain a tremendous amount of performance increase in Firefox\r\n// at the moment. It may be valuable to turn it on in the future.\r\nconst MAX_RQ_GROW_SIZE = 40 * 1024 * 1024; // 40 MiB\r\n\r\n// Constants pulled from RTCDataChannelState enum\r\n// https://developer.mozilla.org/en-US/docs/Web/API/RTCDataChannel/readyState#RTCDataChannelState_enum\r\nconst DataChannel = {\r\n CONNECTING: \"connecting\",\r\n OPEN: \"open\",\r\n CLOSING: \"closing\",\r\n CLOSED: \"closed\"\r\n};\r\n\r\nconst ReadyStates = {\r\n CONNECTING: [WebSocket.CONNECTING, DataChannel.CONNECTING],\r\n OPEN: [WebSocket.OPEN, DataChannel.OPEN],\r\n CLOSING: [WebSocket.CLOSING, DataChannel.CLOSING],\r\n CLOSED: [WebSocket.CLOSED, DataChannel.CLOSED],\r\n};\r\n\r\n// Properties a raw channel must have, WebSocket and RTCDataChannel are two examples\r\nconst rawChannelProps = [\r\n \"send\",\r\n \"close\",\r\n \"binaryType\",\r\n \"onerror\",\r\n \"onmessage\",\r\n \"onopen\",\r\n \"protocol\",\r\n \"readyState\",\r\n];\r\n\r\nexport default class Websock {\r\n constructor() {\r\n this._websocket = null; // WebSocket or RTCDataChannel object\r\n\r\n this._rQi = 0; // Receive queue index\r\n this._rQlen = 0; // Next write position in the receive queue\r\n this._rQbufferSize = 1024 * 1024 * 4; // Receive queue buffer size (4 MiB)\r\n // called in init: this._rQ = new Uint8Array(this._rQbufferSize);\r\n this._rQ = null; // Receive queue\r\n\r\n this._sQbufferSize = 1024 * 10; // 10 KiB\r\n // called in init: this._sQ = new Uint8Array(this._sQbufferSize);\r\n this._sQlen = 0;\r\n this._sQ = null; // Send queue\r\n\r\n this._eventHandlers = {\r\n message: () => {},\r\n open: () => {},\r\n close: () => {},\r\n error: () => {}\r\n };\r\n }\r\n\r\n // Getters and Setters\r\n\r\n get readyState() {\r\n let subState;\r\n\r\n if (this._websocket === null) {\r\n return \"unused\";\r\n }\r\n\r\n subState = this._websocket.readyState;\r\n\r\n if (ReadyStates.CONNECTING.includes(subState)) {\r\n return \"connecting\";\r\n } else if (ReadyStates.OPEN.includes(subState)) {\r\n return \"open\";\r\n } else if (ReadyStates.CLOSING.includes(subState)) {\r\n return \"closing\";\r\n } else if (ReadyStates.CLOSED.includes(subState)) {\r\n return \"closed\";\r\n }\r\n\r\n return \"unknown\";\r\n }\r\n\r\n get sQ() {\r\n return this._sQ;\r\n }\r\n\r\n get rQ() {\r\n return this._rQ;\r\n }\r\n\r\n get rQi() {\r\n return this._rQi;\r\n }\r\n\r\n set rQi(val) {\r\n this._rQi = val;\r\n }\r\n\r\n // Receive Queue\r\n get rQlen() {\r\n return this._rQlen - this._rQi;\r\n }\r\n\r\n rQpeek8() {\r\n return this._rQ[this._rQi];\r\n }\r\n\r\n rQskipBytes(bytes) {\r\n this._rQi += bytes;\r\n }\r\n\r\n rQshift8() {\r\n return this._rQshift(1);\r\n }\r\n\r\n rQshift16() {\r\n return this._rQshift(2);\r\n }\r\n\r\n rQshift32() {\r\n return this._rQshift(4);\r\n }\r\n\r\n // TODO(directxman12): test performance with these vs a DataView\r\n _rQshift(bytes) {\r\n let res = 0;\r\n for (let byte = bytes - 1; byte >= 0; byte--) {\r\n res += this._rQ[this._rQi++] << (byte * 8);\r\n }\r\n return res;\r\n }\r\n\r\n rQshiftStr(len) {\r\n if (typeof(len) === 'undefined') { len = this.rQlen; }\r\n let str = \"\";\r\n // Handle large arrays in steps to avoid long strings on the stack\r\n for (let i = 0; i < len; i += 4096) {\r\n let part = this.rQshiftBytes(Math.min(4096, len - i));\r\n str += String.fromCharCode.apply(null, part);\r\n }\r\n return str;\r\n }\r\n\r\n rQshiftBytes(len) {\r\n if (typeof(len) === 'undefined') { len = this.rQlen; }\r\n this._rQi += len;\r\n return new Uint8Array(this._rQ.buffer, this._rQi - len, len);\r\n }\r\n\r\n rQshiftTo(target, len) {\r\n if (len === undefined) { len = this.rQlen; }\r\n // TODO: make this just use set with views when using a ArrayBuffer to store the rQ\r\n target.set(new Uint8Array(this._rQ.buffer, this._rQi, len));\r\n this._rQi += len;\r\n }\r\n\r\n rQslice(start, end = this.rQlen) {\r\n return new Uint8Array(this._rQ.buffer, this._rQi + start, end - start);\r\n }\r\n\r\n // Check to see if we must wait for 'num' bytes (default to FBU.bytes)\r\n // to be available in the receive queue. Return true if we need to\r\n // wait (and possibly print a debug message), otherwise false.\r\n rQwait(msg, num, goback) {\r\n if (this.rQlen < num) {\r\n if (goback) {\r\n if (this._rQi < goback) {\r\n throw new Error(\"rQwait cannot backup \" + goback + \" bytes\");\r\n }\r\n this._rQi -= goback;\r\n }\r\n return true; // true means need more data\r\n }\r\n return false;\r\n }\r\n\r\n // Send Queue\r\n\r\n flush() {\r\n if (this._sQlen > 0 && this.readyState === 'open') {\r\n this._websocket.send(this._encodeMessage());\r\n this._sQlen = 0;\r\n }\r\n }\r\n\r\n send(arr) {\r\n this._sQ.set(arr, this._sQlen);\r\n this._sQlen += arr.length;\r\n this.flush();\r\n }\r\n\r\n sendString(str) {\r\n this.send(str.split('').map(chr => chr.charCodeAt(0)));\r\n }\r\n\r\n // Event Handlers\r\n off(evt) {\r\n this._eventHandlers[evt] = () => {};\r\n }\r\n\r\n on(evt, handler) {\r\n this._eventHandlers[evt] = handler;\r\n }\r\n\r\n _allocateBuffers() {\r\n this._rQ = new Uint8Array(this._rQbufferSize);\r\n this._sQ = new Uint8Array(this._sQbufferSize);\r\n }\r\n\r\n init() {\r\n this._allocateBuffers();\r\n this._rQi = 0;\r\n this._websocket = null;\r\n }\r\n\r\n open(uri, protocols) {\r\n this.attach(new WebSocket(uri, protocols));\r\n }\r\n\r\n attach(rawChannel) {\r\n this.init();\r\n\r\n // Must get object and class methods to be compatible with the tests.\r\n const channelProps = [...Object.keys(rawChannel), ...Object.getOwnPropertyNames(Object.getPrototypeOf(rawChannel))];\r\n for (let i = 0; i < rawChannelProps.length; i++) {\r\n const prop = rawChannelProps[i];\r\n if (channelProps.indexOf(prop) < 0) {\r\n throw new Error('Raw channel missing property: ' + prop);\r\n }\r\n }\r\n\r\n this._websocket = rawChannel;\r\n this._websocket.binaryType = \"arraybuffer\";\r\n this._websocket.onmessage = this._recvMessage.bind(this);\r\n\r\n this._websocket.onopen = () => {\r\n Log.Debug('>> WebSock.onopen');\r\n if (this._websocket.protocol) {\r\n Log.Info(\"Server choose sub-protocol: \" + this._websocket.protocol);\r\n }\r\n\r\n this._eventHandlers.open();\r\n Log.Debug(\"<< WebSock.onopen\");\r\n };\r\n\r\n this._websocket.onclose = (e) => {\r\n Log.Debug(\">> WebSock.onclose\");\r\n this._eventHandlers.close(e);\r\n Log.Debug(\"<< WebSock.onclose\");\r\n };\r\n\r\n this._websocket.onerror = (e) => {\r\n Log.Debug(\">> WebSock.onerror: \" + e);\r\n this._eventHandlers.error(e);\r\n Log.Debug(\"<< WebSock.onerror: \" + e);\r\n };\r\n }\r\n\r\n close() {\r\n if (this._websocket) {\r\n if (this.readyState === 'connecting' ||\r\n this.readyState === 'open') {\r\n Log.Info(\"Closing WebSocket connection\");\r\n this._websocket.close(1000);\r\n }\r\n\r\n this._websocket.onmessage = () => {};\r\n }\r\n }\r\n\r\n // private methods\r\n _encodeMessage() {\r\n // Put in a binary arraybuffer\r\n // according to the spec, you can send ArrayBufferViews with the send method\r\n return new Uint8Array(this._sQ.buffer, 0, this._sQlen);\r\n }\r\n\r\n // We want to move all the unread data to the start of the queue,\r\n // e.g. compacting.\r\n // The function also expands the receive que if needed, and for\r\n // performance reasons we combine these two actions to avoid\r\n // unneccessary copying.\r\n _expandCompactRQ(minFit) {\r\n // if we're using less than 1/8th of the buffer even with the incoming bytes, compact in place\r\n // instead of resizing\r\n const requiredBufferSize = (this._rQlen - this._rQi + minFit) * 8;\r\n const resizeNeeded = this._rQbufferSize < requiredBufferSize;\r\n\r\n if (resizeNeeded) {\r\n // Make sure we always *at least* double the buffer size, and have at least space for 8x\r\n // the current amount of data\r\n this._rQbufferSize = Math.max(this._rQbufferSize * 2, requiredBufferSize);\r\n }\r\n\r\n // we don't want to grow unboundedly\r\n if (this._rQbufferSize > MAX_RQ_GROW_SIZE) {\r\n this._rQbufferSize = MAX_RQ_GROW_SIZE;\r\n if (this._rQbufferSize - this.rQlen < minFit) {\r\n throw new Error(\"Receive Queue buffer exceeded \" + MAX_RQ_GROW_SIZE + \" bytes, and the new message could not fit\");\r\n }\r\n }\r\n\r\n if (resizeNeeded) {\r\n const oldRQbuffer = this._rQ.buffer;\r\n this._rQ = new Uint8Array(this._rQbufferSize);\r\n this._rQ.set(new Uint8Array(oldRQbuffer, this._rQi, this._rQlen - this._rQi));\r\n } else {\r\n this._rQ.copyWithin(0, this._rQi, this._rQlen);\r\n }\r\n\r\n this._rQlen = this._rQlen - this._rQi;\r\n this._rQi = 0;\r\n }\r\n\r\n // push arraybuffer values onto the end of the receive que\r\n _DecodeMessage(data) {\r\n const u8 = new Uint8Array(data);\r\n if (u8.length > this._rQbufferSize - this._rQlen) {\r\n this._expandCompactRQ(u8.length);\r\n }\r\n this._rQ.set(u8, this._rQlen);\r\n this._rQlen += u8.length;\r\n }\r\n\r\n _recvMessage(e) {\r\n this._DecodeMessage(e.data);\r\n if (this.rQlen > 0) {\r\n this._eventHandlers.message();\r\n if (this._rQlen == this._rQi) {\r\n // All data has now been processed, this means we\r\n // can reset the receive queue.\r\n this._rQlen = 0;\r\n this._rQi = 0;\r\n }\r\n } else {\r\n Log.Debug(\"Ignoring empty message\");\r\n }\r\n }\r\n}\r\n","var map = {\n\t\"./ion-accordion_2.entry.js\": [\n\t\t37518,\n\t\t2076,\n\t\t7518\n\t],\n\t\"./ion-action-sheet.entry.js\": [\n\t\t41981,\n\t\t2076,\n\t\t1981\n\t],\n\t\"./ion-alert.entry.js\": [\n\t\t71603,\n\t\t2076,\n\t\t1603\n\t],\n\t\"./ion-app_8.entry.js\": [\n\t\t82273,\n\t\t2076,\n\t\t2273\n\t],\n\t\"./ion-avatar_3.entry.js\": [\n\t\t19642,\n\t\t9642\n\t],\n\t\"./ion-back-button.entry.js\": [\n\t\t32095,\n\t\t2076,\n\t\t2095\n\t],\n\t\"./ion-backdrop.entry.js\": [\n\t\t72335,\n\t\t2335\n\t],\n\t\"./ion-breadcrumb_2.entry.js\": [\n\t\t78221,\n\t\t2076,\n\t\t8221\n\t],\n\t\"./ion-button_2.entry.js\": [\n\t\t47184,\n\t\t7184\n\t],\n\t\"./ion-card_5.entry.js\": [\n\t\t38759,\n\t\t8759\n\t],\n\t\"./ion-checkbox.entry.js\": [\n\t\t24248,\n\t\t4248\n\t],\n\t\"./ion-chip.entry.js\": [\n\t\t69863,\n\t\t9863\n\t],\n\t\"./ion-col_3.entry.js\": [\n\t\t51769,\n\t\t1769\n\t],\n\t\"./ion-datetime-button.entry.js\": [\n\t\t2569,\n\t\t900,\n\t\t2569\n\t],\n\t\"./ion-datetime_3.entry.js\": [\n\t\t76534,\n\t\t900,\n\t\t2076,\n\t\t6534\n\t],\n\t\"./ion-fab_3.entry.js\": [\n\t\t25458,\n\t\t2076,\n\t\t5458\n\t],\n\t\"./ion-img.entry.js\": [\n\t\t70654,\n\t\t654\n\t],\n\t\"./ion-infinite-scroll_2.entry.js\": [\n\t\t36034,\n\t\t2076,\n\t\t6034\n\t],\n\t\"./ion-input.entry.js\": [\n\t\t20761,\n\t\t9627,\n\t\t2076,\n\t\t761\n\t],\n\t\"./ion-item-option_3.entry.js\": [\n\t\t6492,\n\t\t2076,\n\t\t6492\n\t],\n\t\"./ion-item_8.entry.js\": [\n\t\t29557,\n\t\t2076,\n\t\t9557\n\t],\n\t\"./ion-loading.entry.js\": [\n\t\t68353,\n\t\t2076,\n\t\t8353\n\t],\n\t\"./ion-menu_3.entry.js\": [\n\t\t51024,\n\t\t2076,\n\t\t1024\n\t],\n\t\"./ion-modal.entry.js\": [\n\t\t29160,\n\t\t2076,\n\t\t9160\n\t],\n\t\"./ion-nav_2.entry.js\": [\n\t\t60393,\n\t\t393\n\t],\n\t\"./ion-picker-column-internal.entry.js\": [\n\t\t23970,\n\t\t2076,\n\t\t3970\n\t],\n\t\"./ion-picker-internal.entry.js\": [\n\t\t20437,\n\t\t437\n\t],\n\t\"./ion-popover.entry.js\": [\n\t\t16772,\n\t\t2076,\n\t\t6772\n\t],\n\t\"./ion-progress-bar.entry.js\": [\n\t\t34810,\n\t\t4810\n\t],\n\t\"./ion-radio_2.entry.js\": [\n\t\t14639,\n\t\t4639\n\t],\n\t\"./ion-range.entry.js\": [\n\t\t90628,\n\t\t2076,\n\t\t628\n\t],\n\t\"./ion-refresher_2.entry.js\": [\n\t\t10852,\n\t\t2076,\n\t\t852\n\t],\n\t\"./ion-reorder_2.entry.js\": [\n\t\t61479,\n\t\t2076,\n\t\t1479\n\t],\n\t\"./ion-ripple-effect.entry.js\": [\n\t\t24065,\n\t\t4065\n\t],\n\t\"./ion-route_4.entry.js\": [\n\t\t57971,\n\t\t7971\n\t],\n\t\"./ion-searchbar.entry.js\": [\n\t\t93184,\n\t\t2076,\n\t\t3184\n\t],\n\t\"./ion-segment_2.entry.js\": [\n\t\t469,\n\t\t2076,\n\t\t469\n\t],\n\t\"./ion-select_3.entry.js\": [\n\t\t78471,\n\t\t2076,\n\t\t8471\n\t],\n\t\"./ion-spinner.entry.js\": [\n\t\t40388,\n\t\t2076,\n\t\t388\n\t],\n\t\"./ion-split-pane.entry.js\": [\n\t\t42392,\n\t\t2392\n\t],\n\t\"./ion-tab-bar_2.entry.js\": [\n\t\t36059,\n\t\t2076,\n\t\t6059\n\t],\n\t\"./ion-tab_2.entry.js\": [\n\t\t5427,\n\t\t5427\n\t],\n\t\"./ion-text.entry.js\": [\n\t\t50198,\n\t\t198\n\t],\n\t\"./ion-textarea.entry.js\": [\n\t\t1735,\n\t\t9627,\n\t\t1735\n\t],\n\t\"./ion-toast.entry.js\": [\n\t\t7510,\n\t\t2076,\n\t\t7510\n\t],\n\t\"./ion-toggle.entry.js\": [\n\t\t45297,\n\t\t2076,\n\t\t5297\n\t]\n};\nfunction webpackAsyncContext(req) {\n\tif(!__webpack_require__.o(map, req)) {\n\t\treturn Promise.resolve().then(() => {\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}\n\n\tvar ids = map[req], id = ids[0];\n\treturn Promise.all(ids.slice(1).map(__webpack_require__.e)).then(() => {\n\t\treturn __webpack_require__(id);\n\t});\n}\nwebpackAsyncContext.keys = () => (Object.keys(map));\nwebpackAsyncContext.id = 88996;\nmodule.exports = webpackAsyncContext;","function webpackEmptyAsyncContext(req) {\n\t// Here Promise.resolve().then() is used instead of new Promise() to prevent\n\t// uncaught exception popping up in devtools\n\treturn Promise.resolve().then(() => {\n\t\tvar e = new Error(\"Cannot find module '\" + req + \"'\");\n\t\te.code = 'MODULE_NOT_FOUND';\n\t\tthrow e;\n\t});\n}\nwebpackEmptyAsyncContext.keys = () => ([]);\nwebpackEmptyAsyncContext.resolve = webpackEmptyAsyncContext;\nwebpackEmptyAsyncContext.id = 54140;\nmodule.exports = webpackEmptyAsyncContext;","var map = {\n\t\"./af\": 85637,\n\t\"./af.js\": 85637,\n\t\"./ar\": 6777,\n\t\"./ar-dz\": 74508,\n\t\"./ar-dz.js\": 74508,\n\t\"./ar-kw\": 67504,\n\t\"./ar-kw.js\": 67504,\n\t\"./ar-ly\": 95373,\n\t\"./ar-ly.js\": 95373,\n\t\"./ar-ma\": 92412,\n\t\"./ar-ma.js\": 92412,\n\t\"./ar-ps\": 78823,\n\t\"./ar-ps.js\": 78823,\n\t\"./ar-sa\": 36670,\n\t\"./ar-sa.js\": 36670,\n\t\"./ar-tn\": 36448,\n\t\"./ar-tn.js\": 36448,\n\t\"./ar.js\": 6777,\n\t\"./az\": 23009,\n\t\"./az.js\": 23009,\n\t\"./be\": 28299,\n\t\"./be.js\": 28299,\n\t\"./bg\": 4685,\n\t\"./bg.js\": 4685,\n\t\"./bm\": 11171,\n\t\"./bm.js\": 11171,\n\t\"./bn\": 23590,\n\t\"./bn-bd\": 5841,\n\t\"./bn-bd.js\": 5841,\n\t\"./bn.js\": 23590,\n\t\"./bo\": 54309,\n\t\"./bo.js\": 54309,\n\t\"./br\": 54130,\n\t\"./br.js\": 54130,\n\t\"./bs\": 8033,\n\t\"./bs.js\": 8033,\n\t\"./ca\": 55294,\n\t\"./ca.js\": 55294,\n\t\"./cs\": 53028,\n\t\"./cs.js\": 53028,\n\t\"./cv\": 5807,\n\t\"./cv.js\": 5807,\n\t\"./cy\": 70342,\n\t\"./cy.js\": 70342,\n\t\"./da\": 38269,\n\t\"./da.js\": 38269,\n\t\"./de\": 11489,\n\t\"./de-at\": 42123,\n\t\"./de-at.js\": 42123,\n\t\"./de-ch\": 17757,\n\t\"./de-ch.js\": 17757,\n\t\"./de.js\": 11489,\n\t\"./dv\": 28152,\n\t\"./dv.js\": 28152,\n\t\"./el\": 7687,\n\t\"./el.js\": 7687,\n\t\"./en-au\": 46668,\n\t\"./en-au.js\": 46668,\n\t\"./en-ca\": 76798,\n\t\"./en-ca.js\": 76798,\n\t\"./en-gb\": 53615,\n\t\"./en-gb.js\": 53615,\n\t\"./en-ie\": 91364,\n\t\"./en-ie.js\": 91364,\n\t\"./en-il\": 79907,\n\t\"./en-il.js\": 79907,\n\t\"./en-in\": 70533,\n\t\"./en-in.js\": 70533,\n\t\"./en-nz\": 33190,\n\t\"./en-nz.js\": 33190,\n\t\"./en-sg\": 51096,\n\t\"./en-sg.js\": 51096,\n\t\"./eo\": 3962,\n\t\"./eo.js\": 3962,\n\t\"./es\": 37726,\n\t\"./es-do\": 65010,\n\t\"./es-do.js\": 65010,\n\t\"./es-mx\": 63654,\n\t\"./es-mx.js\": 63654,\n\t\"./es-us\": 59043,\n\t\"./es-us.js\": 59043,\n\t\"./es.js\": 37726,\n\t\"./et\": 25343,\n\t\"./et.js\": 25343,\n\t\"./eu\": 90728,\n\t\"./eu.js\": 90728,\n\t\"./fa\": 60787,\n\t\"./fa.js\": 60787,\n\t\"./fi\": 71771,\n\t\"./fi.js\": 71771,\n\t\"./fil\": 45335,\n\t\"./fil.js\": 45335,\n\t\"./fo\": 69761,\n\t\"./fo.js\": 69761,\n\t\"./fr\": 1670,\n\t\"./fr-ca\": 28991,\n\t\"./fr-ca.js\": 28991,\n\t\"./fr-ch\": 97280,\n\t\"./fr-ch.js\": 97280,\n\t\"./fr.js\": 1670,\n\t\"./fy\": 24203,\n\t\"./fy.js\": 24203,\n\t\"./ga\": 69858,\n\t\"./ga.js\": 69858,\n\t\"./gd\": 38605,\n\t\"./gd.js\": 38605,\n\t\"./gl\": 27365,\n\t\"./gl.js\": 27365,\n\t\"./gom-deva\": 33896,\n\t\"./gom-deva.js\": 33896,\n\t\"./gom-latn\": 95587,\n\t\"./gom-latn.js\": 95587,\n\t\"./gu\": 97950,\n\t\"./gu.js\": 97950,\n\t\"./he\": 92029,\n\t\"./he.js\": 92029,\n\t\"./hi\": 51897,\n\t\"./hi.js\": 51897,\n\t\"./hr\": 29816,\n\t\"./hr.js\": 29816,\n\t\"./hu\": 22253,\n\t\"./hu.js\": 22253,\n\t\"./hy-am\": 28196,\n\t\"./hy-am.js\": 28196,\n\t\"./id\": 51307,\n\t\"./id.js\": 51307,\n\t\"./is\": 95474,\n\t\"./is.js\": 95474,\n\t\"./it\": 23099,\n\t\"./it-ch\": 45807,\n\t\"./it-ch.js\": 45807,\n\t\"./it.js\": 23099,\n\t\"./ja\": 19127,\n\t\"./ja.js\": 19127,\n\t\"./jv\": 30182,\n\t\"./jv.js\": 30182,\n\t\"./ka\": 10758,\n\t\"./ka.js\": 10758,\n\t\"./kk\": 93444,\n\t\"./kk.js\": 93444,\n\t\"./km\": 72034,\n\t\"./km.js\": 72034,\n\t\"./kn\": 46223,\n\t\"./kn.js\": 46223,\n\t\"./ko\": 83064,\n\t\"./ko.js\": 83064,\n\t\"./ku\": 8714,\n\t\"./ku-kmr\": 10961,\n\t\"./ku-kmr.js\": 10961,\n\t\"./ku.js\": 8714,\n\t\"./ky\": 12062,\n\t\"./ky.js\": 12062,\n\t\"./lb\": 84796,\n\t\"./lb.js\": 84796,\n\t\"./lo\": 19279,\n\t\"./lo.js\": 19279,\n\t\"./lt\": 106,\n\t\"./lt.js\": 106,\n\t\"./lv\": 11840,\n\t\"./lv.js\": 11840,\n\t\"./me\": 42240,\n\t\"./me.js\": 42240,\n\t\"./mi\": 13588,\n\t\"./mi.js\": 13588,\n\t\"./mk\": 15518,\n\t\"./mk.js\": 15518,\n\t\"./ml\": 37823,\n\t\"./ml.js\": 37823,\n\t\"./mn\": 98657,\n\t\"./mn.js\": 98657,\n\t\"./mr\": 61285,\n\t\"./mr.js\": 61285,\n\t\"./ms\": 43014,\n\t\"./ms-my\": 86253,\n\t\"./ms-my.js\": 86253,\n\t\"./ms.js\": 43014,\n\t\"./mt\": 20167,\n\t\"./mt.js\": 20167,\n\t\"./my\": 47940,\n\t\"./my.js\": 47940,\n\t\"./nb\": 50014,\n\t\"./nb.js\": 50014,\n\t\"./ne\": 49023,\n\t\"./ne.js\": 49023,\n\t\"./nl\": 34208,\n\t\"./nl-be\": 71412,\n\t\"./nl-be.js\": 71412,\n\t\"./nl.js\": 34208,\n\t\"./nn\": 81354,\n\t\"./nn.js\": 81354,\n\t\"./oc-lnc\": 40870,\n\t\"./oc-lnc.js\": 40870,\n\t\"./pa-in\": 80389,\n\t\"./pa-in.js\": 80389,\n\t\"./pl\": 7342,\n\t\"./pl.js\": 7342,\n\t\"./pt\": 34774,\n\t\"./pt-br\": 73003,\n\t\"./pt-br.js\": 73003,\n\t\"./pt.js\": 34774,\n\t\"./ro\": 85333,\n\t\"./ro.js\": 85333,\n\t\"./ru\": 73451,\n\t\"./ru.js\": 73451,\n\t\"./sd\": 43921,\n\t\"./sd.js\": 43921,\n\t\"./se\": 59682,\n\t\"./se.js\": 59682,\n\t\"./si\": 80582,\n\t\"./si.js\": 80582,\n\t\"./sk\": 4348,\n\t\"./sk.js\": 4348,\n\t\"./sl\": 95337,\n\t\"./sl.js\": 95337,\n\t\"./sq\": 39358,\n\t\"./sq.js\": 39358,\n\t\"./sr\": 50683,\n\t\"./sr-cyrl\": 69382,\n\t\"./sr-cyrl.js\": 69382,\n\t\"./sr.js\": 50683,\n\t\"./ss\": 51156,\n\t\"./ss.js\": 51156,\n\t\"./sv\": 29855,\n\t\"./sv.js\": 29855,\n\t\"./sw\": 18536,\n\t\"./sw.js\": 18536,\n\t\"./ta\": 15373,\n\t\"./ta.js\": 15373,\n\t\"./te\": 37809,\n\t\"./te.js\": 37809,\n\t\"./tet\": 61297,\n\t\"./tet.js\": 61297,\n\t\"./tg\": 92527,\n\t\"./tg.js\": 92527,\n\t\"./th\": 85862,\n\t\"./th.js\": 85862,\n\t\"./tk\": 79331,\n\t\"./tk.js\": 79331,\n\t\"./tl-ph\": 44387,\n\t\"./tl-ph.js\": 44387,\n\t\"./tlh\": 3592,\n\t\"./tlh.js\": 3592,\n\t\"./tr\": 79732,\n\t\"./tr.js\": 79732,\n\t\"./tzl\": 99570,\n\t\"./tzl.js\": 99570,\n\t\"./tzm\": 83553,\n\t\"./tzm-latn\": 7699,\n\t\"./tzm-latn.js\": 7699,\n\t\"./tzm.js\": 83553,\n\t\"./ug-cn\": 25674,\n\t\"./ug-cn.js\": 25674,\n\t\"./uk\": 69974,\n\t\"./uk.js\": 69974,\n\t\"./ur\": 45773,\n\t\"./ur.js\": 45773,\n\t\"./uz\": 357,\n\t\"./uz-latn\": 77135,\n\t\"./uz-latn.js\": 77135,\n\t\"./uz.js\": 357,\n\t\"./vi\": 20043,\n\t\"./vi.js\": 20043,\n\t\"./x-pseudo\": 40767,\n\t\"./x-pseudo.js\": 40767,\n\t\"./yo\": 80150,\n\t\"./yo.js\": 80150,\n\t\"./zh-cn\": 21828,\n\t\"./zh-cn.js\": 21828,\n\t\"./zh-hk\": 86644,\n\t\"./zh-hk.js\": 86644,\n\t\"./zh-mo\": 79305,\n\t\"./zh-mo.js\": 79305,\n\t\"./zh-tw\": 31860,\n\t\"./zh-tw.js\": 31860\n};\n\n\nfunction webpackContext(req) {\n\tvar id = webpackContextResolve(req);\n\treturn __webpack_require__(id);\n}\nfunction webpackContextResolve(req) {\n\tif(!__webpack_require__.o(map, req)) {\n\t\tvar e = new Error(\"Cannot find module '\" + req + \"'\");\n\t\te.code = 'MODULE_NOT_FOUND';\n\t\tthrow e;\n\t}\n\treturn map[req];\n}\nwebpackContext.keys = function webpackContextKeys() {\n\treturn Object.keys(map);\n};\nwebpackContext.resolve = webpackContextResolve;\nmodule.exports = webpackContext;\nwebpackContext.id = 35358;","/* (ignored) */"],"names":["TranslateService","takeUntil","Unsubscriber","FormattedTimestamp","TimeFormatService","Alarm","AlarmLevel","UserSettingsService","MasterdataService","i0","ɵɵelementStart","ɵɵtext","ɵɵelementEnd","ɵɵproperty","ctx_r0","cssClass","ɵɵadvance","ɵɵtextInterpolate","ɵɵpipeBind1","timestamp","formattedTimestamp$","alias","alarm","code","levelTranslateString","text","ɵɵtextInterpolate1","AlarmlistItemComponent","alarmClass","warningClass","infoClass","constructor","userSettingService","timeFormatService","translateService","masterdataService","ngOnInit","masterData$","pipe","onDestroy$","subscribe","masterData","ginStationName","startsWith","info","ropeways","find","r","includesSisId","sisId","getCssClass","getLevelTranslateString","level","WARNING","ALARM","FAULT","SYSTEM","ɵɵdirectiveInject","i1","i2","i3","i4","selectors","inputs","index","bigScreenMode","standalone","features","ɵɵInheritDefinitionFeature","decls","vars","consts","template","AlarmlistItemComponent_Template","rf","ctx","ɵɵtemplate","AlarmlistItemComponent_ion_row_0_Template","AlarmlistItemComponent_ion_row_1_Template","ModalController","ScreenSizeService","ɵɵelement","AlarmlistModalComponent","modalCtrl","screenSizeService","closeModal","dismiss","AlarmlistModalComponent_Template","ɵɵlistener","AlarmlistModalComponent_Template_ion_button_click_2_listener","AlarmlistModalComponent_sis_timeformat_button_4_Template","bigScreenMode$","AlarmlistService","i_r2","item_r1","ctx_r2","AlarmlistComponent","alarmListService","showTitle","alarms","alarms$","sortByTypeAndTimestamp","filterActive","itemId","_","timestampMs","AlarmlistComponent_Template","AlarmlistComponent_ion_row_2_Template","AlarmlistComponent_sis_alarmlist_item_3_Template","CommonModule","FormsModule","RouterModule","IonicModule","TranslateModule","CoreModule","AlarmlistPageModule","forChild","path","component","imports","combineLatest","map","shareReplay","DestinationAlarmService","GinAlarmService","MeteoForecastAlarmService","RopewayAlarmService","RopewayEfaService","filter","a","active","sort","b","alarmLevelOrder","indexOf","meteoForecastAlarmService","destinationAlarmService","ropewayAlarmService","ropewayEfaService","ginAlarmService","efas$","destinationAlarms","ropewayAlarms","ropewayEfas","meteoForecastAlarms","ginAlarms","bufferSize","refCount","ɵɵinject","i5","factory","ɵfac","providedIn","inject","AppResolver","BreakdownInfoPageModule","CanActivateGuard","SisRoute","EmailDeliveryPageModule","ErrorPage","FeatureManagementPageModule","GeoMapPageModule","InfotextPageModule","SisItServicesPageModule","LastSlopeControlPageModule","LedTickerPageModule","MapsPageModule","MediaCenterPageModule","MeteoInfoPageModule","OperatingInfoPageModule","ParkingPageModule","SisagAdminPageModule","SisMediaPageModule","SisMediaSettingPageModule","SlopesOperatingTimesPageModule","STnetPageModule","TimetableModule","UserManagementPageModule","WebLinkCollectionModule","routes","redirectTo","MAPS","pathMatch","loadChildren","canActivate","resolve","hasDestination","ALARMLIST","SISITSERVICES","SISMEDIASETTING","SISMEDIA","Lift","PARKING","LASTSLOPECONTROL","BREAKDOWNINFO","OPERATINGINFO","MEDIACENTER","GLOBAL","INFOTEXT","METEOINFO","STNET","USERMANAGEMENT","WEBLINKCOLLECTION","TIMETABLE","LEDTICKER","EMAILDELIVERY","SLOPESOPERATINGTIMES","FEATUREMANAGEMENT","isAdministrator","SISAGADMIN","ERROR","AppRoutingModule","forRoot","useHash","exports","LiveMessageService","UserMessageService","VersionService","AppServiceLoader","messageService","userMessageService","versionService","AppServiceLoader_Template","encapsulation","Title","MsalBroadcastService","MsalService","InteractionStatus","BehaviorSubject","Subject","delay","AppService","environment","register","AppComponent","msalService","msalBroadcastService","appService","titleService","isIframe","isLoggedIn","loginInProgress","isInitialized","setDefaultLang","isUiTest","mockLoginForUiTests","use","browserLanguage","getBrowserLang","match","setTitle","pageTitle","isInIframe","cleanUpLocalStorage","setLoggedIn","inProgress$","status","None","checkAndSetActiveAccount","initializeApp","Login","Logout","HandleRedirect","reloadApp","window","location","reload","parent","opener","handleKeyDownEvent","event","_this","_asyncToGenerator","key","modal","getTop","instance","getAllAccounts","length","activeAccount","getActiveAccount","accounts","setActiveAccount","uiTestAccountInfo","homeAccountId","tenantId","username","localAccountId","name","asObservable","hostBindings","AppComponent_HostBindings","AppComponent_keydown_HostBindingHandler","$event","ɵɵresolveDocument","AppComponent_sis_app_service_loader_1_Template","AppComponent_sis_login_3_Template","AppComponent_sis_main_menu_4_Template","AppComponent_ion_content_5_Template","AppComponent_sis_remote_access_6_Template","AppComponent_ion_spinner_7_Template","PortalModule","ScrollingModule","HTTP_INTERCEPTORS","HttpBackend","HttpClient","provideHttpClient","withInterceptorsFromDi","AngularFireModule","AngularFireAuth","AngularFireDatabase","AngularFireDatabaseModule","AngularFireMessaging","AngularFireMessagingModule","ReactiveFormsModule","MAT_TOOLTIP_DEFAULT_OPTIONS","MatTooltipModule","BrowserModule","HAMMER_GESTURE_CONFIG","HammerModule","BrowserAnimationsModule","RouteReuseStrategy","LeafletModule","MSAL_INSTANCE","MSAL_INTERCEPTOR_CONFIG","MsalInterceptor","MsalModule","MsalRedirectComponent","BrowserCacheLocation","InteractionType","LogLevel","PublicClientApplication","IonicRouteStrategy","IonicStorageModule","TranslateLoader","TranslateHttpLoader","NgcCookieConsentModule","BottomDrawerModule","IonicGestureConfig","HeaderComponent","MaintenanceBannerComponent","ApiConnectionInterceptor","HttpCurrentTenantInterceptor","LoginComponent","MainMenuComponent","MainMenuListComponent","MainMenuNewsComponent","MainMenuNewsItemComponent","SelectDestinationModal","SelectDestinationItemComponent","SelectLanguageModal","TenantEditModal","AlarmLibraryModal","AlarmLibraryItemIconComponent","RemoteAccessComponent","ENV_PROVIDERS","cookieConfig","cookie","domain","palette","popup","background","button","theme","position","type","showLink","content","loggerCallback","TranslateHttpLoaderFactory","httpBackend","VERSION","MSALInstanceFactory","auth","clientId","authority","msalAuthority","redirectUri","postLogoutRedirectUri","cache","cacheLocation","LocalStorage","storeAuthStateInCookie","system","loggerOptions","logLevel","Info","piiLoggingEnabled","MSALInterceptorConfigFactory","protectedResourceMap","Map","set","msalProtectedResource","msalScopes","baseUrlApi","interactionType","Redirect","AppModule","bootstrap","provide","useClass","multi","useFactory","useValue","disableTooltipInteractivity","mode","innerHTMLTemplatesEnabled","driverOrder","firebase","loader","deps","declarations","Router","UrlSegment","firstValueFrom","DestinationService","FeatureId","TenantService","Routes","_initialize","COCKPIT","SISMEDIA_MEDIACENTER","EDITOR","SISMEDIA_LIFT","Slope","SISMEDIA_SLOPE","CrossCountry","SISMEDIA_CROSSCOUNTRY","Sledging","SISMEDIA_SLEDGING","Gastro","SISMEDIA_GASTRO","Trail","SISMEDIA_TRAIL","Bike","SISMEDIA_BIKE","Poi","SISMEDIA_POI","SISMEDIA_ASSET_EDIT","SISMEDIA_LASTSLOPECONTROL","SISMEDIA_INFOTEXT","SISMEDIA_METEOINFO","SISMEDIA_STNET","GLOBALVIEW","SISMEDIA_TIMETABLE","SISMEDIA_LEDTICKER","SISMEDIA_EMAILDELIVERY","SISMEDIA_SLOPESOPERATINGTIMES","tenantService","destinationService","router","route","userSettings","tenants","userSettings$","tenants$","handleIt","_this2","featureUrlPart","url","slice","destination","params","currentTenant","selectedTenant$","targetTenant","t","tenant","defaultTenant","features$","isTargetFeatureAllowed","changeDestinationTo","getFirstAllowedFeatureUrlSegments","routeWithTenant","changeDestination","some","p","navigate","lastSegment","urlPart","queryParams","split","forEach","s","push","queryParamObj","reduce","c","value","allowedFeatures","featureUrl","requiredFeatureId","f","featureId","featureAccessLevel","entries","urlSegments","NgcCookieConsentService","ReplaySubject","take","NavigatorService","cookieService","navigatorService","cookieAccepted","loggedIn$","acquireTokenSilentReady$","popupClose$","localStorage","setItem","setupCookieBanner","onLangChange","deleteLocalStorage","Object","keys","removeItem","msalEntries","includes","k","destroy","getItem","cookieTextTranslationString","cookieUnderstoodTranslationString","getConfig","get","translations","message","baseUrl","init","SisBottomDrawerComponent","ElementRef","EventEmitter","Renderer2","SimpleChanges","DomController","Platform","DrawerState","elementRef","renderer2","domCtrl","platform","BOUNCE_DELTA","TITLE_BAR_HEIGHT","dockedHeight","shouldBounce","distanceTop","transition","minimumHeight","onDrawerStateChange","ngOnChanges","changes","state","currentValue","setDrawerState","disableDrag","removePanEvents","hammer","addPanEvents","ngAfterViewChecked","styleInnerScrollElementForSwipeActions","ngAfterViewInit","Hammer","nativeElement","innerScrollElement","shadowRoot","querySelector","setStyle","enable","direction","DIRECTION_VERTICAL","on","ev","handlePanStart","handlePanEnd","handlePan","off","Bottom","setTranslateY","Docked","height","startPositionTop","getBoundingClientRect","top","isFinal","handleDockedPanEnd","Top","handleTopPanEnd","handleBottomPanEnd","emit","deltaY","absDeltaY","Math","abs","pointerY","center","y","actualHeight","additionalEvent","newTop","write","outputs","ɵɵNgOnChangesFeature","ngContentSelectors","_c0","SisBottomDrawerComponent_Template","ɵɵprojection","BreakdownInfoInfoScreenComponent","done","BreakdownInfoInfoScreenComponent_Template","BreakdownInfoInfoScreenComponent_Template_ion_button_click_6_listener","iconName","breakdownInfo","safeInfoLink","ɵɵsanitizeResourceUrl","BreakdownInfoLibraryService","BreakdownInfoItemComponent","breakdownInfoLibraryService","library$","update","entry","langKey","currentLang","languageMap","color","title","BreakdownInfoItemComponent_Template","ɵɵstyleProp","BreakdownInfoLibraryEntry","v4","v4guid","ɵɵtwoWayListener","BreakdownInfoLibraryItemComponent_ion_list_11_Template_ion_input_ngModelChange_4_listener","ɵɵrestoreView","_r1","ctx_r1","ɵɵnextContext","ɵɵtwoWayBindingSet","libraryItem","titleDe","ɵɵresetView","BreakdownInfoLibraryItemComponent_ion_list_11_Template_ion_input_ngModelChange_5_listener","textDe","BreakdownInfoLibraryItemComponent_ion_list_11_Template_ion_input_ngModelChange_9_listener","titleEn","BreakdownInfoLibraryItemComponent_ion_list_11_Template_ion_input_ngModelChange_10_listener","textEn","BreakdownInfoLibraryItemComponent_ion_list_11_Template_ion_input_ngModelChange_14_listener","titleFr","BreakdownInfoLibraryItemComponent_ion_list_11_Template_ion_input_ngModelChange_15_listener","textFr","BreakdownInfoLibraryItemComponent_ion_list_11_Template_ion_input_ngModelChange_19_listener","titleIt","BreakdownInfoLibraryItemComponent_ion_list_11_Template_ion_input_ngModelChange_20_listener","textIt","BreakdownInfoLibraryItemComponent_ion_list_11_Template_ion_radio_group_ngModelChange_24_listener","ɵɵtwoWayProperty","green","yellow","BreakdownInfoLibraryItemComponent_sis_general_button_16_Template_sis_general_button_sisClick_0_listener","_r3","delete","BreakdownInfoLibraryItemComponent","colorGreen","colorYellow","breakdownInfoLibraryEntry","insert","validate","updateLibrary","insertOperation","close","updateOperation","_this3","oldItem","deleteOperation","item","guid","BreakdownInfoLibraryItemComponent_Template","BreakdownInfoLibraryItemComponent_ion_title_2_Template","BreakdownInfoLibraryItemComponent_ion_title_3_Template","BreakdownInfoLibraryItemComponent_Template_ion_button_click_4_listener","BreakdownInfoLibraryItemComponent_ion_list_11_Template","BreakdownInfoLibraryItemComponent_Template_sis_general_button_sisClick_14_listener","BreakdownInfoLibraryItemComponent_Template_sis_general_button_sisClick_15_listener","BreakdownInfoLibraryItemComponent_sis_general_button_16_Template","ɵɵpureFunction1","BreakdownInfoLibraryComponent_ion_item_10_Template_sis_breakdowninfo_item_click_2_listener","item_r2","$implicit","showLibraryItem","BreakdownInfoLibraryComponent","library","selectedBreakdownInfoLibraryEntry","create","componentProps","present","BreakdownInfoLibraryComponent_Template","BreakdownInfoLibraryComponent_Template_ion_button_click_2_listener","BreakdownInfoLibraryComponent_ion_item_10_Template","BreakdownInfoLibraryComponent_Template_sis_general_button_sisClick_13_listener","DomSanitizer","BreakdownInfoActiveTextService","IconHelper","BreakdownInfoTextSelectorComponent_ion_fab_11_Template_ion_item_click_1_listener","_r2","openBreakdownInfo","infoLinkString","BreakdownInfoTextSelectorComponent_ion_item_12_Template_ion_item_click_0_listener","_r4","BreakdownInfoTextSelectorComponent","breakdownInfoActiveTextService","sanitizer","activeTexts$","activeTexts","activeText","d","breakdownInfoGuid","selectedLibraryItem","e","generateInfoLink","breakdownInfoIconName","getIconName","all","updateActiveText","isUpdating","publicWebApp","toString","toUpperCase","bypassSecurityTrustResourceUrl","BreakdownInfoTextSelectorComponent_Template","BreakdownInfoTextSelectorComponent_Template_ion_button_click_4_listener","BreakdownInfoTextSelectorComponent_Template_ion_radio_group_ngModelChange_9_listener","BreakdownInfoTextSelectorComponent_ion_item_10_Template","BreakdownInfoTextSelectorComponent_ion_fab_11_Template","BreakdownInfoTextSelectorComponent_ion_item_12_Template","BreakdownInfoTextSelectorComponent_Template_sis_general_button_sisClick_15_listener","BreakdownInfoPage","QRCodeComponent","BreakdownInfoService","LogbookModalService","Feature","FeatureAccessLevel","breakdownInfo_r2","BreakdownInfoPage_ion_list_2_ion_item_1_Template_ion_item_click_0_listener","showTextSelector","BreakdownInfoPage_ion_list_2_ion_item_1_ion_spinner_6_Template","BreakdownInfoPage_ion_list_2_ion_item_1_div_7_Template","_c1","writePermission","ɵɵsanitizeUrl","BreakdownInfoPage_ion_list_2_ion_item_1_Template","breakdownInfos","breakdownInfo_r5","BreakdownInfoPage_ion_list_3_div_1_Template_ion_list_click_1_listener","BreakdownInfoPage_ion_list_3_div_1_ion_spinner_7_Template","BreakdownInfoPage_ion_list_3_div_1_div_8_Template","BreakdownInfoPage_ion_list_3_div_1_Template","requiredFeature","WRITE","breakdownInfoService","logbookModalService","logbookAvailable$","baseUrlPublicAssets","baseUrlCockpitBlobStorage","breakdownInfos$","selectedTenantFeatures$","hasMinimumRequirementFor","showBreakdownInfoLibrary","Promise","selectedBreakdownInfoItem","backdropDismiss","i6","BreakdownInfoPage_Template","BreakdownInfoPage_ion_list_2_Template","BreakdownInfoPage_ion_list_3_Template","BreakdownInfoPage_Template_sis_general_button_sisClick_4_listener","BreakdownInfoActiveText","BreakdownInfoActiveTextAdapter","adapt","activetext","assign","merge","of","catchError","switchMap","withLatestFrom","EventBusService","BreakdownInfoActiveTextUpdatedEvent","activeTextsRequestUrl","useActiveTextPostUrl","http","eventBus","READ","activeTextsRequest$","feature","activeTextsUpdate$","observe","updateSuccessful","breakdownInfoActiveTexts","newText","oldText","at","libraryGuid","updateAll","post","BreakdownInfoGuid","ActiveLibraryEntryGuid","UpdateAll","BreakdownInfoLibraryEntryAdapter","tenantGuid","BreakdownInfoLibraryUpdatedEvent","requestLibraryUrl","updateLibraryPostUrl","libraryRequest$","libraryUpdate$","oldEntry","l","removed","splice","operation","BreakdownInfo","Operation","BreakdownInfoAdapter","items","result","userSettingsService","Startup","u","textClass","activeAlarmCount","iconSize","iconClasses","AlarmIconComponent","ALARM_COLOR","NORMAL_COLOR","INFO_COLOR","WARNING_COLOR","alarmlistService","hideNumber","showIfNoAlarm","displayNumber","hasActiveAlarms","updateDisplayValues","displayedAlarmLevels","getColorClass","activeAlarms","getTextColor","WHITE","BLACK","getTextClass","componentClass","getAlarmClass","iconClass","AlarmIconComponent_Template","AlarmIconComponent_span_0_Template","AlarmIconComponent_ion_icon_1_Template","EMPTY","finalize","startWith","BlobStorageService","MediaCenterBlobStorageUpdatedEvent","UserMessage","UserMessageColor","UserMessageIcon","BlobStorageContainerService","blobStorageService","refreshContainer$","refreshTrigger$","containerName","tenantSisId","selectedContainer$","undefined","containers$","getStorageRequestParameters","options","getContainers","mediaCenterBlobStorageUpdatedEvent$","uploadedBy","userGuid","successful","translateKey","fileName","userMessage","icon","success","durationMs","presentToast","failed","red","itemsInContainer$","listBlobsInContainer","storageUri","storageAccessToken","blobStorageUrl$","containerId","baseUrlMediaCenterBlobStorage","refreshSelectedContainer","source","next","getStorageOptionsWithContainer","getBlobStorageRequestParameters","mergeMap","share","BlobDeleteService","blobStorageContainerService","deleteQueueInner$","deleteItemResponse$","filePath","deleteFile","deleteItem","deleteBlobItem","mapDeleteResponse","fileSize","mergeAll","scan","FilesSource","BlobStorageUploadService","uploadQueueInner$","uploadProgress$","uploadCommand","uploadFile","file","folder","fileNamePrefix","metadata","itemsInContainerWithUpload$","getItemsInContainerWithUploadProgress","uploadItems","folderName","fileRequestOptions","uploadToBlobStorage","mapUploadResponse","progress","size","width","blobs","sisBlobItems","blob","properties","contentLength","filesSource","container","upload","fileMap","uploading","currentFile","values","newFile","BlobServiceClient","from","Observable","distinctUntilChanged","httpClient","request","blobServiceClient","buildBlobServiceClient","asyncToObservable","listContainers","containerClient","getContainerClient","listBlobsFlat","includeMetadata","downloadBlobItem","blockBlobClient","getBlockBlobClient","download","sasToken","connectionString","fromConnectionString","subscriber","uploadData","onProgress","loadedBytes","blobHTTPHeaders","blobContentType","then","complete","error","iterable","_iteratorAbruptCompletion","_didIteratorError","_iteratorError","_iterator","_asyncIterator","_step","closed","err","return","ContextMenuComponent_ion_item_3_Template_ion_item_click_0_listener","item_r3","emitSelectedItem","stopPropagation","disabled","translationString","ContextMenuComponent","x","menuItemSelected","menuItems","menuItem","menuitem","ContextMenuComponent_Template","ContextMenuComponent_Template_div_mouseleave_0_listener","ContextMenuComponent_ion_item_1_Template","ContextMenuComponent_ion_item_3_Template","ButtonType","ButtonAlign","GeneralButtonComponent","sisClick","btnType","Primary","buttonType","Secondary","Red","btnAlign","Left","buttonAlign","Right","onClick","showSpinner","sisTooltip","GeneralButtonComponent_Template","GeneralButtonComponent_Template_ion_button_click_2_listener","GeneralButtonComponent_ion_label_3_Template","GeneralButtonComponent_ion_icon_4_Template","GeneralButtonComponent_ion_spinner_5_Template","ɵɵclassMapInterpolate1","ɵɵclassMap","LogbookButtonComponent","showText","LogbookButtonComponent_Template","LogbookButtonComponent_ion_label_2_Template","moment","LogbookEntry","LogbookEntryAdapter","element","id","email","Date","featureIds","action","formattedTimestamp","utc","local","format","separator","RegExp","actions","LogbookUpdatedEvent","LogbookService","logbookApiUrl","request$","logbookEntries$","acc","requestedFeatures","new","n","join","requestedEntries","logbookEntry","newEntries","requestLogbookEntries","FormControl","forkJoin","debounceTime","defaultIfEmpty","translatedFeature","translatedAction","ɵɵsanitizeHtml","translatedValue","LogbookModalComponent_ion_grid_12_ion_row_2_Template","logbookEntriesFiltered","LogbookModalComponent_ion_grid_13_div_2_Template","LogbookModalComponent","logbookService","featureFilters","filterControl","requiredFeatures","every","entryFeature","arraysEqual","logbookEntries","toLowerCase","valueChanges","data","filterLogbookEntries","getTime","uniqueFeaturesToRequest","concat","array","filtering","trim","i","LogbookModalComponent_Template","LogbookModalComponent_Template_ion_button_click_2_listener","LogbookModalComponent_Template_ion_searchbar_ionChange_10_listener","LogbookModalComponent_ion_row_11_Template","LogbookModalComponent_ion_grid_12_Template","LogbookModalComponent_ion_grid_13_Template","LogbookModalComponent_ion_grid_14_Template","LOGBOOK","presentLogbookModal","TranslatePipe","DateTimeFormatPipe","OutdatedIconComponent","dateTimeFormatPipe","translate","formattedDate","transform","translatedTooltip","displayedTooltip","OutdatedIconComponent_Template","ɵɵpropertyInterpolate","PageTitleComponent_ion_row_0_ng_container_7_ion_chip_1_Template_ion_chip_click_0_listener","_openEditModal","PageTitleComponent_ion_row_0_ng_container_7_ion_chip_3_Template_ion_chip_click_0_listener","_onReorderClick","PageTitleComponent_ion_row_0_ng_container_7_sis_logbook_button_4_Template_sis_logbook_button_click_0_listener","openLogbook","ɵɵelementContainerStart","PageTitleComponent_ion_row_0_ng_container_7_ion_chip_1_Template","PageTitleComponent_ion_row_0_ng_container_7_ion_chip_3_Template","PageTitleComponent_ion_row_0_ng_container_7_sis_logbook_button_4_Template","showAddButton","ignoreAdminRequirement","isAdministrator$","showReorderButton","PageTitleComponent_ion_row_0_ng_container_8_Template_ion_chip_click_1_listener","_r5","_onReorderSaveClick","PageTitleComponent_ion_row_0_ng_container_8_Template_ion_chip_click_5_listener","_onReorderCancelClick","PageTitleComponent_ion_row_0_ion_searchbar_5_Template","PageTitleComponent_ion_row_0_ng_container_7_Template","PageTitleComponent_ion_row_0_ng_container_8_Template","reorderingEnabled","PageTitleComponent_ion_row_2_ion_chip_5_Template_ion_chip_click_0_listener","_r6","PageTitleComponent_ion_row_2_sis_logbook_button_7_Template_sis_logbook_button_click_0_listener","_r7","PageTitleComponent_ion_row_2_ion_chip_5_Template","PageTitleComponent_ion_row_2_sis_logbook_button_7_Template","PageTitleComponent","onReorderClick","onReorderCancelClick","openEditModal","settings","disable","PageTitleComponent_Template","PageTitleComponent_ion_row_0_Template","PageTitleComponent_ion_row_2_Template","UserManagementService","TenantFeatureIconComponent","userManagementService","featureTranslationMap$","featureTranslationMap","tooltips","getTooltips","cockpitTooltip","sisMediaTooltip","cockpitFeatures","sismediaFeatures","validateFeatures","translatedCockpitFeatures","featureOrder","translatedSismediaFeatures","TenantFeatureIconComponent_Template","ɵɵclassProp","TimeformatButtonComponent","timeFormat","switchTimeFormat","updateUserSettings","TimeformatButtonComponent_Template","TimeformatButtonComponent_Template_ion_icon_click_0_listener","SisIonContentScrollbar","DateFormatPipe","InputIntegerOnlyDirective","MarkdownPipe","WeekdayPipe","Type","EventBusSubscriberBase","typeProvider","callback","BusEvent","subjects$","publish","className","getInstanceName","getSubject","subject$","typeId","Reflect","getMetadata","nameSymbol","ClassName","target","defineMetadata","prototype","Symbol","MapIconClickedEvent","__decorate","MapIconHoveredEvent","ApiConnectionEvent","InternetConnectionEvent","WidgetSelectedEvent","UserAlarmEvent","UserSettingsUpdatedEvent","UserAlarmConfigUpdatedEvent","DeviceListHoverEvent","OperatingInfoActiveTextUpdatedEvent","OperatingInfoLibraryUpdatedEvent","MaintenanceUpdatedEvent","AlarmLibraryOverrideUpdatedEvent","SisMediaStatusUpdatedEvent","SisMediaPlsUpdatedEvent","MediaCenterSlideUpdatedEvent","MediaCenterScreenUpdatedEvent","MediaCenterPlaylistUpdatedEvent","MediaCenterThumbnailUpdatedEvent","InfoBannerUpdatedEvent","InfoBannerMappingUpdatedEvent","InfotextUpdatedEvent","TimetableJourneyUpdatedEvent","TimetableSeasonUpdatedEvent","TimetableImportUpdatedEvent","TimetableIntervalDayUpdatedEvent","LastSlopeControlUpdatedEvent","SisMediaAssetOverrideUpdatedEvent","SisMediaAssetEditUpdatedEvent","SisMediaAssetCockpitOrderUpdatedEvent","UserPermissionUpdatedEvent","MeteoInfoUpdatedEvent","STnetUpdatedEvent","STnetStatusUpdatedEvent","LedTickerUpdatedEvent","SisMediaOperatingHoursUpdatedEvent","SisMediaAssetExportMappingUpdatedEvent","HtmlToPdfGeneratedEvent","EmailDeliverySentEvent","EmailDeliveryRecipientUpsertedEvent","EcoModeSettingsUpdatedEvent","RopewaySettingsUpdatedEvent","UserManagementUserUpdatedEvent","SambesiWhatsUpMessagesUpdatedEvent","MarkerPositionUpdatedEvent","TimetableRealTimeDataUpdatedEvent","SlopesOperatingTimesUpdatedEvent","WebLinkCollectionUpdatedEvent","SisMapEditTokenUpdatedEvent","TenantUpdatedEvent","FeatureUpdatedEvent","RopewayAvailabilityTrendUpdatedEvent","ClampingCountResetedEvent","ParkingStatusUpdatedEvent","ParkingEditedEvent","ParkingExportMappingUpdatedEvent","ParkingCockpitOrderUpdatedEvent","ParkingCurrentOccupancyUpdatedEvent","SisMediaSettingUpdatedEvent","WebcamImageUpdatedEvent","RopewayBrakeReportUpdatedEvent","isObservable","ConfirmationDialogService","PendingChangesGuard","confirmationDialogService","canDeactivate","getCurrentNavigation","finalUrl","root","children","segments","cD","getCanDeactivateObservable","presentAlert","meteoStationIconName","getRopewayIconName","ropeway","ropewayType","substring","curveParams","parseCurveCoords","svgCoords","coords","cs","letter","replace","parts","part","ns","Number","originalL","L","FirebaseMessageAdapter","afDatabase","afAuth","afMessaging","firebaseApiUrl","initialise","messages","handleForegroundMessage","setupServiceWorkerRegistration","connect","requestToken","token","console","log","postTokenToCockpitApi","updateToken","user","authState","uid","object","navigator","serviceWorker","payload","signalR","SignalrMessageAdapter","_messageReceived$","messageReceived$","mockSignalRConnectionForUiTests","msalSubject$","connection","HubConnectionBuilder","withUrl","webapp","accessTokenFactory","acquireTokenSilent","scopes","accessToken","withAutomaticReconnect","build","addHubConnectionListeners","startConnection","hubConnection","HubConnectionState","Connected","start","catch","STnetStatusAdapter","SisConverter","TenantAdapter","FeatureAdapter","FeatureManagementFeatureAdapter","LedTickerAdapter","AlarmLibraryItemAdapter","UserAlarmConfigAdapter","RopewayEcoModeSettingsAdapter","RopewaySettingsAdapter","UserAlarmAdapter","PlaylistAdapter","ScreenAdapter","SlideAdapter","MeteoInfoItemAdapter","OperatingInfoEntryAdapter","SisMediaAssetOverrideEntryAdapter","SisMediaSettingAdapter","STnetItemAdapter","TimetableIntervalDayAdapter","TimetableSeasonAdapter","UserAdapter","EventAdapterRegistry","UserAlarmEventAdapter","parsed","JSON","parse","UserSettingsUpdatedEventAdapter","lastNewsViewed","updaterId","UserAlarmConfigUpdatedEventAdapter","userAlarmConfig","BreakdownInfoActiveTextUpdatedEventAdapter","changedActiveTexts","BreakdownInfoLibraryUpdatedEventAdapter","OperatingInfoActiveTextUpdatedEventAdapter","operatingInfoEntries","changedBy","OperatingInfoLibraryUpdatedEventAdapter","operatingInfoLibraryEntry","operatingInfoEntry","MaintenanceUpdatedEventAdapter","tenantSisIdsUnderMaintenance","AlarmLibraryOverrideUpdatedEventAdapter","alarmLibraryEntry","alarmLibraryOverrideEntry","SisMediaStatusUpdatedEventAdapter","assetGuid","subStatus","activeStatus","statusOverrideActive","lastStatusChange","failReason","assetCategory","SisMediaPlsUpdatedEventAdapter","AssetGuid","assetStatus","AssetStatus","successfullyUpdatedDisplays","SuccessfullyUpdatedDisplays","unsuccessfullyUpdatedDisplays","UnsuccessfullyUpdatedDisplays","displaysInSimulationMode","DisplaysInSimulationMode","MediaCenterSlideUpdatedEventAdapter","slide","slideSettingsUpdated","MediaCenterScreenUpdatedEventAdapter","screens","MediaCenterPlaylistUpdatedEventAdapter","playlist","MediaCenterThumbnailUpdatedEventAdapter","thumbnailUrl","MediaCenterBlobStorageUpdatedEventAdapter","InfoBannerUpdatedEventAdapter","infoBanner","InfoBannerMappingUpdatedEventAdapter","infoBannerMappings","infoBanners","InfotextUpdatedEventAdapter","infotextEntry","categoryId","LastSlopeControlEventAdapter","zone","times","activeTime","TimetableJourneyUpdatedEventAdapter","timetableJourney","deleted","TimetableSeasonUpdatedEventAdapter","timetableSeason","TimetableImportUpdatedEventAdapter","trackGuid","TimetableIntervalDayUpdatedEventAdapter","timetableIntervalDay","SisMediaAssetOverrideEventAdapter","sisMediaAssetOverrideEntry","lastChanged","SisMediaAssetEditUpdatedEventAdapter","SisMediaAssetCockpitOrderUpdatedEventAdapter","SisMediaAssetExportMappingEventAdapter","exportGuids","UserPermissionUpdatedEventAdapter","adminOnly","MeteoInfoUpdatedEventAdapter","meteoInfoItems","updatedMeteoInfos","m","changedByEmail","lastChange","toDateOrUndefined","STnetDataUpdatedEventAdapter","stnetItem","sTnetData","STnetStatusUpdatedEventAdapter","LogbookUpdatedEventAdapter","LedTickerUpdatedEventAdapter","ledTicker","SisMediaOperatingHoursUpdatedEventAdapter","operatingHoursEnabled","operatingHours","HtmlToPdfGeneratedEventAdapter","pdfName","pdfUrl","decodeURI","EmailDeliverySentEventAdapter","emailText","subjectText","attachmentGuid","EmailDeliveryRecipientUpsertedEventAdapter","recipientGuid","EcoModeSettingsUpdatedEventAdapter","ropewayEcoModeSettings","moduleUpdateSuccessful","RopewaySettingsUpdatedEventAdapter","ropewaySettings","UserManagementUserUpdatedEventAdapter","managedTenants","SambesiWhatsUpMessagesUpdatedEventAdapter","ropewaySisIds","MarkerPositionUpdatedEventAdapter","markerGuid","TimetableRealTimeDataUpdatedEventAdapter","seasonGuid","realTimeDatas","lastSuccessfulRealTimeImport","SlopesOperatingTimesUpdatedEventAdapter","WebLinkCollectionUpdatedEventAdapter","SisMapEditTokenUpdatedEventAdapter","TenantUpdatedEventAdapter","FeatureUpdatedEventAdapter","RopewayAvailabilityTrendUpdatedEventAdapter","ClampingCountResetedEventAdapter","ropewayGuid","resetSuccessful","lastReset","vehicleId","totalValueOnReset","ParkingStatusUpdatedEventAdapter","ParkingEditedEventAdapter","ParkingExportMappingUpdatedEventAdapter","ParkingCockpitOrderUpdatedEventAdapter","ParkingCurrentOccupancyUpdatedEventAdapter","parkingGuid","currentOccupancy","occupancyTimestamp","SisMediaSettingUpdatedEventAdapter","sisMediaSetting","WebcamImageUpdatedEventAdapter","deviceSisId","RopewayBrakeReportUpdatedEventAdapter","signalrAdapter","firebaseAdapter","setupSubscriptions","messageData","publishMessageEvent","ex","liveMessage","messageType","adaptFunction","timer","exhaustMap","LivedataServiceBase","updateInterval$","updateTrigger$","liveData$","hasRequiredFeature","requestSasToken","expiryDuration","expiryParam","URLSearchParams","expiryDate","valueOf","now","killTimer","updateInterval","getLiveDataRepeatedly","setInterval","forceLiveDataUpdate","endpointUri","sas","timerObservable","isOnline","onLine","origin","onWindowUnload","onbeforeunload","openInNewTab","open","isIphone","userAgent","vendor","test","isMac","el","stylesheet","styleElmt","append","barStyle","document","createElement","appendChild","stationId","responseId","statusCode","statusMessage","snowReportUrl","_onDestroy$","ngOnDestroy","AlertController","alertCtrl","confirmationText","confirmationButton","_ref","header","getTranslatedString","buttons","handler","role","alert","_x","apply","arguments","date","pure","time","seconds","onInput","pattern","inputChar","String","fromCharCode","which","keyCode","preventDefault","InputIntegerOnlyDirective_HostBindings","InputIntegerOnlyDirective_keypress_HostBindingHandler","marked","markedImages","MathUtils","roundTo","decimals","factor","pow","round","fromEvent","bigScreenThreshold","screenMode$","landscapeMode","isLandscape","landscapeMode$","toNumberOrUndefined","isNaN","toBoolean","input","Boolean","args","number","shortTimeTranslateString","shortTimeHoursTranslateString","minTranslateString","hourTranslateString","dayTranslateString","weekTranslateString","monthTranslateString","yearTranslateString","daysTranslateString","weeksTranslateString","monthsTranslateString","yearsTranslateString","msPerMinute","msPerHour","msPerDay","msPerWeek","msPerMonth","msPerYear","translatedStrings$","stream","res","shortTimeText","shortTimeHoursText","minText","hourText","dayText","daysText","weekText","weeksText","monthText","monthsText","yearText","yearsText","transformToRelativeTime","translatedStrings","current","inputMs","elapsed","retValue","retValueHH","retValueMin","retText","retTextHH","retTextMin","isHours","floor","daysOfWeek","dayIndex","getDay","WidgetUtils","calculateDegreeWithLimit","maxValue","minDegree","maxDegree","ratio","range","filled","getLevel","alarmLevel","regex","selectedTenant","to","ExportType","ExportAdapter","localeCompare","ExportService","exports$","SISMEDIA_PREFIX","NewsService","prefix","newsViewedUpdated","newsFileNames$","blobItems","blobItem","unreadNewsFileNames$","fileNames","year","getFullYear","month","getMonth","padStart","day","getDate","hasUnreadNews$","getFileText","responseType","updateNewsViewed","newsViewed","urlSegment","Tenant","adaptTenant","positionGeoMap","coordArray","fullname","gatewayId","panoMapFilename","logoFilename","weatherTrendLink","maxUsers","hasRopewaysOrLifts","hasRopeways","hasMySqlRouter","mySqlRouter","underMaintenance","timeZoneId","tap","eventBusService","urlPathAllTenants","updatedTenant","activeFeatures","UserSettingsAdapter","guiLanguage","selectedSeason","userSettingsUrl","immediateUpdate$","userSettingsRequest$","userSettingsUpdated$","displayErrorMessage","updatedSettings","doImmediateUpdate","getErrorMessage","UserService","supportedLanguages","urlLanguage","urlTimeFormat","userName$","interactionStatus","isAuthenticated$","loadDefaultSettings","logout","EmailDeliveryAdapter","attachments","outdated","attachment","recipients","recipient","lastSentAttachment","lastSentAttachmentGuid","subject","EmailDeliveryPage","RecipientItemComponent","EmailDeliveryService","EmailDeliveryPage_ion_segment_2_Template_ion_segment_ionChange_0_listener","selectionChanged","detail","selectedTab","controlsEnabled","item_r6","EmailDeliveryPage_ng_container_4_ion_row_9_ion_select_2_Template_ion_select_ngModelChange_0_listener","selectedAttachment","EmailDeliveryPage_ng_container_4_ion_row_9_ion_select_2_Template_ion_select_ionChange_0_listener","attachmentChanged","EmailDeliveryPage_ng_container_4_ion_row_9_ion_select_2_ion_select_option_1_Template","ɵɵpureFunction0","_c3","EmailDeliveryPage_ng_container_4_ion_row_9_ion_select_2_Template","EmailDeliveryPage_ng_container_4_ion_row_9_ion_icon_5_Template","EmailDeliveryPage_ng_container_4_ion_row_9_Template_sis_general_button_click_7_listener","createPdf","EmailDeliveryPage_ng_container_4_ion_row_9_Template_sis_general_button_click_8_listener","downloadPdf","EmailDeliveryPage_ng_container_4_ion_row_9_Template_sis_general_button_click_10_listener","openTestEmailDialog","EmailDeliveryPage_ng_container_4_ion_row_9_Template_sis_general_button_click_12_listener","sendEmail","rerender","isPdfCreating","isSending","emptySubject","emptyText","item_r9","EmailDeliveryPage_ng_container_4_ion_grid_10_ion_select_3_Template_ion_select_ngModelChange_0_listener","_r8","EmailDeliveryPage_ng_container_4_ion_grid_10_ion_select_3_Template_ion_select_ionChange_0_listener","EmailDeliveryPage_ng_container_4_ion_grid_10_ion_select_3_ion_select_option_1_Template","EmailDeliveryPage_ng_container_4_ion_grid_10_ion_select_3_Template","EmailDeliveryPage_ng_container_4_ion_grid_10_ion_icon_6_Template","EmailDeliveryPage_ng_container_4_ion_grid_10_Template_sis_general_button_click_9_listener","EmailDeliveryPage_ng_container_4_ion_grid_10_Template_sis_general_button_click_11_listener","EmailDeliveryPage_ng_container_4_ion_grid_10_Template_sis_general_button_click_14_listener","EmailDeliveryPage_ng_container_4_ion_grid_10_Template_sis_general_button_click_17_listener","EmailDeliveryPage_ng_container_4_Template_ion_input_ionChange_3_listener","subjectTextChanged","EmailDeliveryPage_ng_container_4_Template_ion_textarea_ionChange_7_listener","emailTextChanged","EmailDeliveryPage_ng_container_4_ion_row_9_Template","EmailDeliveryPage_ng_container_4_ion_grid_10_Template","EmailDeliveryPage_ng_container_4_ion_row_11_Template","_c2","isEmpty","EmailDeliveryPage_ng_container_5_div_1_Template_sis_general_button_sisClick_7_listener","_r10","addRecipient","searchControl","EmailDeliveryPage_ng_container_5_div_2_Template_sis_general_button_sisClick_3_listener","_r11","EmailDeliveryPage_ng_container_5_ion_item_3_Template_sis_recipient_item_editing_2_listener","_r12","editItem","EmailDeliveryPage_ng_container_5_ng_container_4_ion_item_1_Template_sis_recipient_item_editing_2_listener","_r13","odd_r15","recipient_r14","EmailDeliveryPage_ng_container_5_ng_container_4_ion_item_1_Template","recipients$","EmailDeliveryPage_ng_container_5_div_1_Template","EmailDeliveryPage_ng_container_5_div_2_Template","EmailDeliveryPage_ng_container_5_ion_item_3_Template","EmailDeliveryPage_ng_container_5_ng_container_4_Template","EmailDeliveryPage_ng_container_5_ng_template_6_Template","ɵɵtemplateRefExtractor","newRecipient","loading_r16","EmailDeliveryPage_ion_grid_6_Template_ion_col_click_2_listener","_r17","EmailDeliveryPage_ion_grid_6_Template_ion_col_click_7_listener","_c4","emailDeliveryService","alertController","searchString","pdfGenerated$","emailDelivery$","emailDelivery","setTimeout","testEmailRecipient","link","href","random","click","checkAttachmentOutdated","postGeneratePdf","subHeader","_ref2","_x2","postSendEmail","editing","str","i7","EmailDeliveryPage_HostBindings","EmailDeliveryPage_beforeunload_HostBindingHandler","ɵɵresolveWindow","EmailDeliveryPage_ion_segment_2_Template","EmailDeliveryPage_div_3_Template","EmailDeliveryPage_ng_container_4_Template","EmailDeliveryPage_ng_container_5_Template","EmailDeliveryPage_ion_grid_6_Template","postGeneratePdfUrl","postSendEmailUrl","postRecipientUpsertUrl","getUrl","emailDeliveryRequest$","emailUpdate$","presentEmailDeliveryToast","recipientsUpdate$","updatedEvent","presentEmailRecipientUpdateToast","updatedRecipient","presentPdfGeneratedToast","headers","testMailRecipient","postRecipientUpsert","deleteRecipient","head","response","lastModified","FormGroup","Validators","RecipientItemComponent_div_0_ion_col_12_Template_ion_icon_click_1_listener","edit","RecipientItemComponent_div_0_ion_col_12_Template_ion_icon_click_3_listener","RecipientItemComponent_div_0_ion_col_13_Template_ion_icon_click_1_listener","upsertRecipient","RecipientItemComponent_div_0_ion_col_13_Template_ion_icon_click_3_listener","cancelRecipientEdit","ɵɵpureFunction2","edited","formGroup","invalid","RecipientItemComponent_div_0_Template_input_onselectstart_4_listener","enabled","RecipientItemComponent_div_0_ion_col_12_Template","RecipientItemComponent_div_0_ion_col_13_Template","RecipientItemComponent_div_0_ion_col_14_Template","controls","errors","locationTranslation","RecipientItemComponent_div_1_ion_col_22_Template_ion_icon_click_1_listener","RecipientItemComponent_div_1_ion_col_22_Template_ion_icon_click_3_listener","RecipientItemComponent_div_1_ion_col_23_Template_ion_icon_click_1_listener","RecipientItemComponent_div_1_ion_col_23_Template_ion_icon_click_3_listener","RecipientItemComponent_div_1_ion_col_22_Template","RecipientItemComponent_div_1_ion_col_23_Template","RecipientItemComponent_div_1_ion_col_24_Template","required","emitEvent","anyValueChanged","isEditing","translation","confirmed","reset","RecipientItemComponent_Template","RecipientItemComponent_div_0_Template","RecipientItemComponent_div_1_Template","ErrorPage_Template","order","FeatureManagementItemComponent","featureChanged","activeDisabled","onChanged","FeatureManagementItemComponent_Template","FeatureManagementItemComponent_Template_ion_checkbox_ngModelChange_2_listener","FeatureManagementItemComponent_Template_ion_checkbox_ionChange_2_listener","FeatureManagementItemComponent_Template_ion_checkbox_ngModelChange_4_listener","FeatureManagementItemComponent_Template_ion_checkbox_ionChange_4_listener","nameTranslationString","FeatureManagementPage","header_r1","label","FeatureManagementPage_ng_container_5_ng_container_4_ng_container_1_Template_sis_feature_management_item_featureChanged_1_listener","feature_r4","FeatureManagementPage_ng_container_5_ng_container_4_ng_container_1_Template","range_r5","min","max","FeatureManagementPage_ng_container_5_ng_container_3_Template","FeatureManagementPage_ng_container_5_ng_container_4_Template","editedFeatures","featureRanges","Infinity","allFeatures$","stringify","isSaving","save","removedFeatures","editedFeature","postData","unsavedChanges","instant","htmlAttributes","_this4","Features","i8","FeatureManagementPage_Template","FeatureManagementPage_ng_container_5_Template","FeatureManagementPage_Template_sis_general_button_sisClick_8_listener","FeatureManagementPage_Template_sis_general_button_sisClick_9_listener","GeoMapPage","GeoMapComponent","TenantLayerComponent","TenantMarkerComponent","GeoMapPage_Template","GlobalAlarmAdapter","globalAlarms","alarmCounts","fault","INFO","warning","BYPASS","bypass","CHECK","check","GlobalAlarmService","intervalMs","NgZone","layerGroup","GeoMapComponent_div_0_ion_img_2_Template_ion_img_click_0_listener","onZoomIn","GeoMapComponent_div_0_ion_img_3_Template_ion_img_click_0_listener","onZoomOut","GeoMapComponent_div_0_ion_img_4_Template_ion_img_click_0_listener","onFullscreen","GeoMapComponent_div_0_ion_img_5_Template_ion_img_click_0_listener","onFitBounds","GeoMapComponent_div_0_Template_div_leafletMapReady_0_listener","onMapReady","GeoMapComponent_div_0_ion_img_2_Template","GeoMapComponent_div_0_ion_img_3_Template","GeoMapComponent_div_0_ion_img_4_Template","GeoMapComponent_div_0_ion_img_5_Template","layers","layersControl","tenantGroup","defaultBounds","defaultCenter","initLeafletConfigureOptions","initLayers","initLayerControl","updateLayerControl","overlays","zoomControl","zoom","minZoom","maxZoom","zoomSnap","zoomDelta","maxBoundsViscosity","maxBounds","setupMap","tileLayer","attribution","userId","styleId","addFullScreenControl","fitBounds","onMapFullscreenToggle","run","zoomIn","setZoom","getZoom","zoomOut","fullscreen","fullScreenControl","toggleFullScreen","control","forceSeparateButton","addTo","GeoMapComponent_Template","GeoMapComponent_div_0_Template","LayerGroup","tenant_r2","TenantLayerComponent_Template","TenantLayerComponent_div_0_Template","TenantLayerComponent_sis_tenant_marker_2_Template","divIcon","latLng","marker","TenantMarkerService","tenantMarkerService","globalAlarmService","noDataColor","okColor","alarmColor","warningColor","infoColor","initMarker","svgAsHtml$","svg","iconWidth","iconHeight","iconZoom","tenantIcon","html","iconAnchor","tooltipAnchor","tenantMarker","bindTooltip","onIconClick","onMarkerAdded","addLayer","removeEventListener","setIconColor","setTestAttribute","globalAlarm","getColor","getElement","classList","add","remove","setAttribute","querySelectorAll","TenantMarkerComponent_Template","styles","HammerGestureConfig","buildHammer","mc","eventName","overrides","__ngFactoryType__","NavigationEnd","HeaderComponent_ion_chip_8_Template_ion_chip_click_0_listener","alarmListIconOnClick","isAlarmlistPage","warningIconLevels","hasAlarmsAndWarnings","alarmIconLevels","HeaderComponent_ion_chip_10_Template_ion_chip_click_0_listener","HeaderComponent_sis_maintenance_banner_21_Template_sis_maintenance_banner_hide_0_listener","hideMaintenanceBanner","userService","newsService","apiConnected","internetConnected","isGlobalPage","maintenanceBannerHidden","isUserAuthenticated","events","endsWith","wasUnderMaintenance","authenticated","filteredAlarms","alarmlistModal","dismissAlarmlistModal","hideModals","HeaderComponent_Template","HeaderComponent_Template_ion_header_click_0_listener","HeaderComponent_ion_menu_button_3_Template","HeaderComponent_ion_icon_4_Template","HeaderComponent_ion_title_6_Template","HeaderComponent_ion_title_7_Template","HeaderComponent_ion_chip_8_Template","HeaderComponent_ion_chip_10_Template","HeaderComponent_Template_a_click_18_listener","HeaderComponent_sis_maintenance_banner_21_Template","hide","onclick","MaintenanceBannerComponent_Template","MaintenanceBannerComponent_Template_div_click_0_listener","MaintenanceBannerComponent_div_2_Template","MaintenanceBannerComponent_div_4_Template","InfotextAdapter","infotextsMap","categoriesMap","infotext","textOrder","categoryDe","categoryEn","categoryFr","categoryIt","infotexts","InfotextPage","TexteditorModal","InfotextService","category_r3","translatedCategory","InfotextPage_ion_segment_2_Template_ion_segment_ionChange_0_listener","InfotextPage_ion_segment_2_ion_segment_button_1_Template","categories","InfotextPage_div_4_Template_div_click_0_listener","infotext_r5","showTextEditor","translatedTitle","translatedText","InfotextPage_ion_toolbar_5_ion_tab_button_3_Template_ion_tab_button_click_0_listener","category_r7","i_r8","InfotextPage_ion_toolbar_5_ion_tab_button_3_Template","infotextService","categories$","category","getValueByLang","selectedText","InfotextPage_Template","InfotextPage_ion_segment_2_Template","InfotextPage_div_4_Template","InfotextPage_ion_toolbar_5_Template","baseRequestUrl","basePostUrl","categoriesRequest$","categoriesUpdate$","infotextData","updateInfotext","updatedInfotext","obj","property","saving","isEdited","editableData","clear","inputChanged","TexteditorModal_Template","TexteditorModal_Template_ion_button_click_4_listener","TexteditorModal_Template_ion_textarea_ngModelChange_10_listener","TexteditorModal_Template_ion_textarea_ionChange_10_listener","TexteditorModal_Template_ion_textarea_ngModelChange_14_listener","TexteditorModal_Template_ion_textarea_ionChange_14_listener","TexteditorModal_Template_ion_textarea_ngModelChange_18_listener","TexteditorModal_Template_ion_textarea_ionChange_18_listener","TexteditorModal_Template_ion_textarea_ngModelChange_22_listener","TexteditorModal_Template_ion_textarea_ionChange_22_listener","TexteditorModal_Template_sis_general_button_sisClick_25_listener","TexteditorModal_Template_sis_general_button_sisClick_26_listener","TexteditorModal_Template_sis_general_button_sisClick_27_listener","HttpErrorResponse","HttpEvent","HttpHandler","HttpRequest","throwError","apiExceptionCodes","intercept","handle","notifyApiConnection","notifyInternetConnection","connected","TenantGuidHeaderKey","has","clone","NmsDataAdapter","nmsDatas","deviceType","DeviceType","deviceName","DeviceName","deviceIp","DeviceIp","Status","NmsTimestamp","NmsDataService","nmsDatas$","NmsItemComponent_ion_row_0_ion_col_10_Template","NmsItemComponent_ion_row_0_ion_col_11_Template","deviceIconName","statusClass","statusIconName","isDateValid","ɵɵpipeBind2","NmsItemComponent_ion_row_1_span_12_Template","NmsItemComponent","getStatusIconName","getStatusClass","NmsItemComponent_Template","NmsItemComponent_ion_row_0_Template","NmsItemComponent_ion_row_1_Template","SisItServicesPage","nmsDataService","sortNmsData","bind","statusOrder","getOrderByStatus","nmsData","SisItServicesPage_Template","SisItServicesPage_ion_row_2_Template","SisItServicesPage_ion_row_3_Template","SisItServicesPage_sis_nms_item_4_Template","LastSlopeControlAdapter","lastSlopeControlDatas","LastSlopeControlPage","ZoneItemComponent","LastSlopeControlService","lastSlopeControlService","lastSlopeControls$","lastSlopeControls","LastSlopeControlPage_Template","LastSlopeControlPage_sis_zone_item_2_Template","lastSlopeControlRequest$","lastSlopeControlUpdate$","updatedEntry","displayUserMessage","updateLastSlopeControl","updatedLastSlopeControl","ZoneItemComponent_ion_radio_group_0_div_7_Template_input_blur_4_listener","i_r4","timeChanged","ZoneItemComponent_ion_radio_group_0_a_9_Template_a_click_0_listener","saveEntry","ZoneItemComponent_ion_radio_group_0_a_9_ion_label_2_Template","ZoneItemComponent_ion_radio_group_0_a_10_Template_a_click_0_listener","ZoneItemComponent_ion_radio_group_0_a_10_ion_label_2_Template","ZoneItemComponent_ion_radio_group_0_Template_ion_radio_group_ionChange_0_listener","radioGroupChange","ZoneItemComponent_ion_radio_group_0_Template_ion_radio_group_ngModelChange_0_listener","ZoneItemComponent_ion_radio_group_0_div_7_Template","ZoneItemComponent_ion_radio_group_0_a_9_Template","ZoneItemComponent_ion_radio_group_0_a_10_Template","ɵɵtextInterpolate2","hasChanged","ZoneItemComponent_ion_row_1_ion_grid_3_span_3_Template","ZoneItemComponent_ion_row_1_ion_grid_3_Template_ion_input_ionChange_7_listener","i_r9","ZoneItemComponent_ion_row_1_a_8_Template_a_click_0_listener","ZoneItemComponent_ion_row_1_a_8_ion_label_2_Template","ZoneItemComponent_ion_row_1_a_10_Template_a_click_0_listener","ZoneItemComponent_ion_row_1_a_10_ion_label_2_Template","ZoneItemComponent_ion_row_1_Template_ion_radio_group_ionChange_2_listener","ZoneItemComponent_ion_row_1_Template_ion_radio_group_ngModelChange_2_listener","ZoneItemComponent_ion_row_1_ion_grid_3_Template","ZoneItemComponent_ion_row_1_a_8_Template","ZoneItemComponent_ion_row_1_a_10_Template","timeIndex","newTime","hasUnsavedChanges","ZoneItemComponent_Template","ZoneItemComponent_ion_radio_group_0_Template","ZoneItemComponent_ion_row_1_Template","LedTickerItemAdapter","alignment","duration","ledTickerGuid","ledTickerPageGuid","ledTickerTextGuid","pageNr","rowNr","maxRows","ledTickers","tickerMap","groupCount","parseInt","rows","itemsPerGroup","maxTextLength","cols","groupedItems","ledTickerItem","i_r1","LedTickerGroupComponent","formDataModified","ledTickerDisplayed$","ledTickerPages","page","updateValues","setDisabled","editableLedTickerItems","clonedItems","firstItem","addControl","setValues","changedItem","getRawValue","getNumberOrNull","setValue","LedTickerGroupComponent_Template","LedTickerGroupComponent_ion_row_47_Template","LedTickerPage","LedTickerService","ticker_r1","LedTickerPage_ion_row_6_ion_col_1_Template_sis_led_ticker_group_formDataModified_1_listener","onFormDataModified","row_r5","colSize","col_r4","displayedItems$","LedTickerPage_ion_row_6_ion_col_1_Template","ledTickerService","selectedLedTicker$","reset$","isModified","selectedLedTicker","groups","group","originalItems","copyLedTickerItem","displayConfig$","prev","curr","displayedItems","columns","displayConfig","j","ledTickers$","ledTickerSelected","Array","postLedTicker","editedItems","isDifferent","items1","items2","og","i1_1","i2_1","LedTickerPage_HostBindings","LedTickerPage_beforeunload_HostBindingHandler","LedTickerPage_Template_ion_select_ionChange_4_listener","LedTickerPage_ion_select_option_5_Template","LedTickerPage_ion_row_6_Template","LedTickerPage_Template_sis_general_button_sisClick_10_listener","LedTickerPage_Template_sis_general_button_sisClick_11_listener","ledTickerRequest$","updatedLedTickers$","updatedLedTicker","ticker","ledTickerItems","msalLoginReady","login","loginRedirect","LoginComponent_Template","LoginComponent_Template_ion_button_click_13_listener","MenuController","p_r2","MainMenuListComponent_ng_container_0_ion_item_1_Template_ion_item_click_0_listener","menuItemClick","MainMenuListComponent_ng_container_0_ion_item_1_ion_icon_5_Template","submenu","MainMenuListComponent_ng_container_0_ng_container_2_ng_container_1_ion_item_1_Template_ion_item_click_0_listener","s_r5","MainMenuListComponent_ng_container_0_ng_container_2_ng_container_1_ion_item_1_Template","visible","MainMenuListComponent_ng_container_0_ng_container_2_ng_container_1_Template","MainMenuListComponent_ng_container_0_ion_item_1_Template","MainMenuListComponent_ng_container_0_ng_container_2_Template","appPages","menuItemClicked","mainMenuEntry","toggleSubmenu","menuCtrl","navigatePage","menuEntry","blue","MainMenuListComponent_Template","MainMenuListComponent_ng_container_0_Template","mdText","MainMenuNewsItemComponent_Template","fileName_r2","MainMenuNewsComponent_ion_chip_16_Template_ion_chip_click_0_listener","ctx_r3","requestAllNewsFiles","requestAllNewsFiles$","loadAllNewsFiles$","unreadFileNames","allFileNames","fileNames$","loadAllNewsFiles","langChangeEvent","lang","onMenuItemClick","newsGrid","scrollIntoView","newsTopRow","viewQuery","MainMenuNewsComponent_Query","MainMenuNewsComponent_Template_ion_item_click_0_listener","MainMenuNewsComponent_ion_icon_3_Template","MainMenuNewsComponent_sis_main_menu_news_item_13_Template","MainMenuNewsComponent_ion_chip_16_Template","MainMenuComponent_ion_row_14_ng_container_6_ion_col_1_Template_ion_icon_click_1_listener","subAction_r4","tooltip","MainMenuComponent_ion_row_14_ng_container_6_ion_col_1_Template","u_r2","subActions","MainMenuComponent_ion_row_14_Template_ion_col_click_1_listener","MainMenuComponent_ion_row_14_Template_ion_col_click_3_listener","MainMenuComponent_ion_row_14_ng_container_6_Template","ctx_r4","userIsAdministrator","tenantdataService","menuEntries","userActions","dataTest","onUserActionDestination","onTenantEdit","onUserActionLanguage","onUserActionLogout","pages","userName","setMenuEntriesVisibleState","hasTenants","findIndex","createNew","onUserActionPreferences","newsComponent","onMenuOpen","newsOnTop","MainMenuComponent_Query","MainMenuComponent_Template_ion_menu_ionWillOpen_0_listener","MainMenuComponent_ion_row_14_Template","MainMenuComponent_sis_main_menu_news_20_Template","MainMenuComponent_Template_sis_main_menu_list_menuItemClicked_21_listener","MainMenuComponent_sis_main_menu_news_22_Template","logoUrl","selectedTenantGuid","isSelected","SelectDestinationItemComponent_Template","IonSearchbar","SelectDestinationModal_sis_select_destination_item_18_Template_sis_select_destination_item_mouseenter_0_listener","i_r3","handleMouseEnter","SelectDestinationModal_sis_select_destination_item_18_Template_sis_select_destination_item_mouseleave_0_listener","handleMouseLeave","SelectDestinationModal_sis_select_destination_item_18_Template_sis_select_destination_item_click_0_listener","handleMouseClick","tenant_r5","selectedIndex","searching","updateTenants","search","filterTenantList","searchBar","setFocus","handleKeyDown","filteredTenants","selectTenant","clearSelection","spliceCount","unshift","updateTenantList","val","searchTerm","SelectDestinationModal_Query","SelectDestinationModal_keydown_HostBindingHandler","SelectDestinationModal_Template_ion_button_click_2_listener","SelectDestinationModal_Template_ion_searchbar_ionChange_11_listener","SelectDestinationModal_ion_row_14_Template","SelectDestinationModal_sis_select_destination_item_18_Template","SelectLanguageModal_ion_item_9_Template_ion_item_click_0_listener","l_r2","swapLanguage","selectedLanguage","languages","languageKey","SelectLanguageModal_Template","SelectLanguageModal_Template_ion_button_click_2_listener","SelectLanguageModal_ion_item_9_Template","TenantEditModal_form_9_ion_row_53_Template_span_click_4_listener","copyToClipboard","TenantEditModal_form_9_ion_row_53_Template","lat","lon","editedTenant","parseFloat","clipboard","writeText","toast","createSingleToast","white","TenantEditModal_Template","TenantEditModal_Template_ion_button_click_2_listener","TenantEditModal_form_9_Template","TenantEditModal_Template_sis_general_button_sisClick_12_listener","TenantEditModal_Template_sis_general_button_sisClick_13_listener","dirty","AlarmLibraryService","AlarmLibraryItem","AlarmLibraryItemIconComponent_ion_icon_0_Template_ion_icon_click_0_listener","toggleSetting","getIcon","alarmLibraryService","getUpdating","setting","getSetting","disabledIcon","setUpdating","updateSetting","AlarmLibraryItemIconComponent_Template","AlarmLibraryItemIconComponent_ion_icon_0_Template","AlarmLibraryItemIconComponent_ion_spinner_1_Template","AlarmLibraryModal_sis_logbook_button_12_Template_sis_logbook_button_click_0_listener","level_r5","AlarmLibraryModal_ion_row_17_ion_col_5_ion_select_1_Template_ion_select_ionChange_0_listener","override","AlarmLibraryModal_ion_row_17_ion_col_5_ion_select_1_ion_select_option_1_Template","getLevels","AlarmLibraryModal_ion_row_17_ion_col_5_ion_select_1_Template","AlarmLibraryModal_ion_row_17_ion_col_5_span_2_Template","isSwitchableLevel","AlarmLibraryModal_ion_row_17_ion_col_3_Template","AlarmLibraryModal_ion_row_17_ion_col_4_Template","AlarmLibraryModal_ion_row_17_ion_col_5_Template","AlarmLibraryModal_ion_row_17_div_8_Template","isLevelUpdating","notification","selectableLevels","LevelFault","LevelAlarm","LevelWarning","LevelInfo","selectableLevelsWithoutFault","updateListElement","filterAlarmLibraryList","getAlarmLibrary","loadAlarms","levelSwitchAllowed","defaultLevel","overrideSettings","updateAlarmLibraryOverride","alarmsFiltered","listEntry","alarmCode","setSetting","AlarmLibraryModal_Template","AlarmLibraryModal_Template_ion_button_click_2_listener","AlarmLibraryModal_sis_logbook_button_12_Template","AlarmLibraryModal_ion_row_14_Template","AlarmLibraryModal_ion_row_17_Template","LevelCheck","LevelBypass","requestAlarmLibraryData","requestUserAlarmConfigData","alarmLibraryData","userAlarmConfigData","userAlarmConfigs","config","allowedSettings","updating","DetailsDrawerComponent_div_10_Template_sis_controller_selector_done_1_listener","hideControllerContextMenu","controllerContextMenuX","controllerContextMenuY","DetailsDrawerComponent","renderer","arrowUp","arrowDown","drawerBorderWidth","drawerColumns","widgetAspectRatio","arrowIconName","drawerMinimumHeight","drawerDistanceTop","drawerDockedHeight","drawerState","empiricalDrawerContentHeightFitReducer","meteoStation","customMarker","onMapClicked","onWidgetSelected","destinationName","setLabel","closeDrawer","openDrawer","dockDrawer","showControllerSelector","div","showControllerContextMenu","hasRedundantControllers","offsetLeft","offsetTop","touchStart","scrollable","touchEnd","titleClicked","setIconName","setMaxHeight","drawerContent","setArrowIcon","expandable","codeTriggered","sendEvent","DetailsDrawerComponent_Query","DetailsDrawerComponent_Template_sis_bottom_drawer_onDrawerStateChange_0_listener","DetailsDrawerComponent_Template_div_click_3_listener","DetailsDrawerComponent_Template_div_press_3_listener","t_r2","ɵɵreference","DetailsDrawerComponent_ion_icon_5_Template","DetailsDrawerComponent_div_8_Template","DetailsDrawerComponent_div_10_Template","DetailsDrawerComponent_Template_div_touchstart_11_listener","DetailsDrawerComponent_Template_div_touchend_11_listener","Configuration","driveTorqueNmKey","driveMotorCurrentAmpereKey","actualSpeedMps","icingIntensity","CustomMarkerType","MeteoStation","Webcam","MasterdataAdapter","controllerTypeWithoutAvailability","pendelbahnRegexp","isAvailabilityAvailable","controllerType","isPendelbahn","createRopewayList","meteoStations","createMeteoStationList","remoteAccesses","getRemoteAccesses","abbSmartSensors","getAbbSmartSensors","setMeteoStations","offsetSpaToApiMilliseconds","customMarkers","createCustomMarkerList","ginConfigurations","createGinConfigurationList","firstEntriesGroups","configurations","getConfigurations","webcams","getWebcams","truScanInstallations","getTruScan","pathPanoMap","constructedBy","maxTransportQuantityPerHour","operatingTimeFrom","operatingTimeUntil","availability","availabilityIsAvailable","isRopewayOwner","accessType","agentId","windowDimensions","parentAlias","administratorsOnly","abbSmartSensor","assetName","assetId","assetType","truScan","truScanInstallation","installationId","meteostations","positionPanoMap","ropewaySisId","directionOffsetPanoMap","directionOffsetNorth","meteoStationIndex","configuration","windDirection","windDirectionType","hasForecast","snowmakingWidgetOrder","dataProvider","forecastTestActive","panoMapIconZoomFactor","configKey","nominalValue","warnRangeLow","warnRangeHigh","alarmRangeLow","alarmRangeHigh","negativeValues","webcam","displayOrder","externalLink","detailViewOrder","urlPath","emptyMasterData","masterDataRequest$","pre","hasCockpitFeature","ropewaySettingsUpdate$","ropewaySettingsUpdate","updatedRopeway","tenantUpdate$","tenantUpdatedEvent","meteoDeviceSisId","RopewayBrakeReportAdapter","gatewayTimestamp","pdfFileName","recording","SelectedMapElementService","RopewayBrakeReportService","selectedMapElementService","COCKPIT_ROPEWAY_BRAKEREPORT","ropewayBrakeReports$","selectedRopeway$","ecoModeSettings","ecoModeEnabledCockpit","speedEmpty","speedLow","speedMedium","speedHigh","thresholdLow","thresholdMedium","RopewayEcoModeSettingsService","COCKPIT_ECOMODE","ropewayEcoModeSettingsRequest$","ropewayEcoModeSettingsUpdate$","ropewayEcoModeSettings$","saveRopewayEcoModeSettings","orange","RopewaySettingsService","saveRopewaySettings","isPublic","AbbSmartSensorDataAdapter","livedata","Timestamp","AssetId","DeviceSisId","TenantSisId","conditionIndexForAvailability","ConditionIndexForAvailability","conditionIndexForEnvironment","ConditionIndexForEnvironment","conditionIndexForReliability","ConditionIndexForReliability","conditionIndexForStress","ConditionIndexForStress","overallConditionIndex","OverallConditionIndex","AbbSmartSensorConditionStatus","AbbSmartSensorDataService","COCKPIT_ABBSMARTSENSOR","abbSmartSensorDatas$","DestinationAlarmAdapter","PartitionKey","GatewayTimestamp","Active","Code","Level","Text","COCKPIT_TELEMETRY","alarmUpdate$","updatedAlarm","SisOutdatedHelper","EnergyLiveDataAdapter","parentSisId","ParentSisId","Category","powerW","PowerW","energyWh10Sec","EnergyWh10Sec","isOutdated","displayName","DisplayName","EnergyLiveDataService","COCKPIT_ENERGY","energy$","FirstEntriesAdapter","rowKey","RowKey","measuredValue","MeasuredValue","frequenciesValue","FrequenciesValue","measuredAt","MeasuredAt","timeoutInSeconds","Timeout","FirstEntriesService","COCKPIT_FIRSTENTRIES","firstEntries$","GinAlarmAdapter","DataTimestamp","StationName","GinLivedataAdapter","Id","ginName","Name","dataTimestamp","formatDate","Value","toFixed","unit","Unit","toLocaleDateString","toLocaleTimeString","GinLivedataService","ginLiveDatas$","KassandraForecastAdapter","forecastValue","ForecastValue","forecastAt","ForecastAt","KassandraForecastService","COCKPIT_KASSANDRA","kassandra$","MeteoForecastAlarmAdapter","timeoutInMs","MeteoForecastAdapter","forecastdata","IcingIntensity","iceMass","IceMass","windSpeedKmh","WindSpeedKmh","temperatureCelsius","TemperatureCelsius","wetBulbTemperatureCelsius","WetBulbTemperatureCelsius","MeteoForecastService","forecasts$","MeteoLivedataAdapter","MeteoDeviceSisId","deviceTimestamp","DeviceTimestamp","windDirectionDegreeAxis","WindDirectionDegreeAxis","windDirectionDegreeNorth","WindDirectionDegreeNorth","MeteoLivedataService","meteoLiveDatas$","RemoteAccessStatusAdapter","remoteAccessStatuses","Guid","online","Online","RemoteAccessStatusService","COCKPIT_REMOTEACCESS","remoteAccessStatuses$","RopewayAlarmAdapter","RopewayAvailabilityAdapter","RopewaySisId","Availability","RopewayAvailabilityService","COCKPIT_ROPEWAY_AVAILABILITY","ropewayAvailability$","RopewayEcoModeLivedataAdapter","ecoModeEnabledPLC","EcoModeEnabledPLC","peoplePerMinute","PeoplePerMinute","targetSpeedMps","TargetSpeedMps","workloadPercent","WorkloadPercent","RopewayEcoModeLivedataService","ropewayEcoModeLiveData$","RopewayLivedataAdapter","vehicleData","Vehicle","ActualSpeedMps","ropeTensionForceKn","RopeTensionForceKn","ropeTensionPressureHpa","RopeTensionPressureHpa","vehicleCount","VehicleCount","vehicleCountPercent","VehicleCountPercent","vehicleOnTrackCount","VehicleOnTrackCount","vehicleOnTrackCountPercent","VehicleOnTrackCountPercent","driveMotorTorqueNm","DriveMotorTorqueNm","driveMotorTorquePercent","DriveMotorTorquePercent","driveMotorCurrentAmpere","DriveMotorCurrentAmpere","drivePowerKw","DrivePowerKw","driveGearTemperatureDegree","DriveGearTemperatureDegree","ropeKm","RopeKm","OperatingHours","tripCount","TripCount","cabinPositionMeter","CabinPositionMeter","RopewayLivedataService","ropewayLiveData$","RopewayStatusTimeAdapter","startTime","StartTimestamp","initialStopTime","InitialStopTimestamp","RopewayStatusTimeService","ropewayStatusTimes$","RopewayStatus","RopewayStatusAdapter","getStatus","RopewayStatusType","OUTDATED","DRIVERUNS","DRIVEREADY","DRIVE_DIRECTION_FORWARD","CONTROLLERENABLED","RopewayStatusService","masterDataService","statusType","efaUpdate$","efas","efa","statusUpdate$","ropewayStatusLivedata","ropewayStatuses","redundantControllerStatusDatas","otherControllerStatusData","getDeviceSisIdFromOtherController","controllerActiveStatus","getControllerActiveStatus","CONTROLLERACTIVE","statusData","OFFLINE","ropewayStatus$","v","otherStatus","isPrimaryController","controllerIsActive","otherControllerIsActive","controllerNumber","SambesiWhatsUpMessageAdapter","isArray","Error","assignedPerson","AssignedPerson","changeType","ChangeType","installationAbbreviation","InstallationAbbreviation","installationName","InstallationName","installationType","InstallationType","jobName","JobName","nodeName","NodeName","additionalInformation","AdditionalInformation","SambesiWhatsUpService","baseEndpointUrl","COCKPIT_SAMBESI_WHATSUP","messagesLive$","m1","m2","messagesUpdated$","messages$","citrixLink$","updateSambesiMessages","timeoutMs","oldDataTimeout","timeNowMs","dateIsToday","isToday","TruScanDataAdapter","ropeTimestamp","RopeTimestamp","ropeId","RopeId","health","Health","InstallationId","TruScanDataService","COCKPIT_TRUSCAN","truScanDatas$","SisId","DomUtil","CustomMarkerIconService","MarkerType","MarkerEditService","CustomMarkerIconComponent","customMarkerIconService","markerEditService","COCKPIT_WEBCAM","camerasAvailable$","selected","highlighted","cameraAvailable","Camera","loadMarkerIcon","editMode","dragging","getIconSvgAsHtml","latLngMarker","createIconMarker","CustomMarker","pos","selectedMapElement$","setHighlight","latLngExpression","svgHtmlContent","popupAnchor","iconMarker","onIconHover","clickEvent","hover","getIconMarkerElement","cssHighlight","getElementsByClassName","CustomMarkerIconComponent_Template","icons","iconObservable","customMarkerGroup","customMarker_r2","CustomMarkerLayerComponent","CustomMarkerLayerComponent_Template","CustomMarkerLayerComponent_div_0_Template","CustomMarkerLayerComponent_sis_custom_marker_icon_2_Template","EnterTheViewportNotifierDirective","_elementRef","visibilityChange","isIntersecting","rootMargin","threshold","observer","IntersectionObserver","disconnect","CRS","imageOverlay","MapComponent_div_0_Template_div_visibilityChange_0_listener","setMapVisibility","MapComponent_div_1_ion_img_4_Template_ion_img_click_0_listener","MapComponent_div_1_ion_img_5_Template_ion_img_click_0_listener","MapComponent_div_1_ion_img_6_Template_ion_img_click_0_listener","MapComponent_div_1_ion_img_7_Template_ion_img_click_0_listener","onFitMapToView","MapComponent_div_1_ion_img_8_Template_ion_img_click_0_listener","onFitMapToHeight","MapComponent_div_1_ion_img_9_Template_ion_img_click_0_listener","_r9","onEditMap","tooltipText","MapComponent_div_1_Template_div_leafletMapReady_0_listener","MapComponent_div_1_Template_div_leafletCenterChange_0_listener","MapComponent_div_1_ion_img_4_Template","MapComponent_div_1_ion_img_5_Template","MapComponent_div_1_ion_img_6_Template","MapComponent_div_1_ion_img_7_Template","MapComponent_div_1_ion_img_8_Template","MapComponent_div_1_ion_img_9_Template","MapComponent_div_1_div_11_Template","meteoLayerGroup","ropewayLayerGroup","customMarkerLayerGroup","canEditMap$","popupVisible","MapComponent","defaultOpacity","selectedOpacity","requiredFeatureForMapEdit","drawReady","panomapLoaded","wasVisibleAtLeastOnce","panomapOverlay","setOpacity","isVisible","fitMapToView","fitMapToHeight","canEditMap","setMaxZoom","onResize","adjustMinZoomToWindowSize","bounds","imageResY","setMinZoom","getBoundsZoom","imageBounds","fitMapToNoBorder","getSize","imageResX","setView","panoMapUrl","imageDimension","getImageDimension","heigth","opacity","setMaxBounds","addEventListener","panInsideBounds","animate","crs","Simple","wheelPxPerZoomLevel","attributionControl","imageUrl","pop","img","Image","onload","loadedImage","currentTarget","src","MapComponent_HostBindings","MapComponent_resize_HostBindingHandler","MapComponent_div_0_Template","MapComponent_div_1_Template","LatLng","markerPositionUpdatedEvent","showCloseButton","markerType","iconGuid","positionUpdateCallback","getOldPosition","markerPos","getLatLng","setLatLng","lng","originalEvent","oldPositon","saveMarkerPosition","updateMarkerPosition","meteoStation_r2","MeteoLayerComponent","MeteoLayerComponent_Template","MeteoLayerComponent_div_0_Template","MeteoLayerComponent_sis_wind_icon_2_Template","WindIconService","ArrowStyle","WindDisplayCalculatorService","WindIconComponent","windMarkerPivotPoint","colorForecastNone","colorForecastNormal","colorForecastWarning","windDisplayService","ropewayStatusService","windIconService","meteoLivedataService","cssMeteostationColorNormal","cssMeteostationColorWarning","cssMeteostationColorAlarm","cssMeteostationColorOffline","cssMeteostationInactive","markerAdded$","isBig","iconSizeBig","windMarker","resetToDefault","windIconSvgAsHtml$","latLngWindMarker","createWindMarkerIcon","setForecastColorDefault","statusMap","meteoLiveDatas","updateMeteoData","updateForecastColor","windIcon","createHoverEvent","ropewayStatusMap","liveData","setVisibility","iconSizeUpdated","updateIconSize","getWindMarkerElement","updateWindText","updateWindDirection","updateWindWarning","updateArrows","windDirectionLayers","windDirectionLayer","windSpeed","getWindSpeed","innerHTML","style","zIndex","rotationElements","rotationElement","getRotationTransform","windWarningElement","windWarnColor","removeOldCssClass","setNewClass","arrowStyle","getArrowStyle","applyArrowStyle","windThreshold","defaultWarnRangeHigh","setIcon","elemDirCross","elemDir","elemNone","ONE","TWO","alarmsForThisMeteoStation","setForecastColor","colorElements","windSpeedUnknown","NONE","isControllerActive","i9","WindIconComponent_Template","ropeway_r2","RopewayLayerComponent","RopewayLayerComponent_Template","RopewayLayerComponent_div_0_Template","RopewayLayerComponent_sis_ropeway_line_1_Template","RopewayCssClassNames","cssRopewayRunning","cssRopewayDriveReady","cssRopewayDefault","cssRopewayOutdated","cssRopewayOffline","cssRopewayAlarm","cssRopewayInvisible","cssRopewayClickable","cssRopewayInactive","cssBorder","RopewayCurve","defaultWeight","ropewayGroup","line","curve","interactive","weight","highlight","clickable","bubblingMouseEvents","fill","border","getRopewayElements","RopewayPolyLine","RopewayLineComponent","ropewayLines","initRopewayLayer","drawLineOrCurve","lineOrCurve","observeUpdateEvents","getShortSisId","landScapeMode","shortSisId","clickedRopewayWithShortSisId","clickedMeteoStationOnRopewayWithShortSisId","ropewayStatusTypeMap","updateRopewayLine","controllerActive","highlightDiv","elements","RopewayLineComponent_Template","Polyline","getCoordsOfRopewayPolyline","createPolyline","cssClassName","polyline","splittedCoords","MatIconModule","ChartModule","HIGHCHARTS_MODULES","more","exporting","nodata","MapsPage","ModalPopupComponent","WidgetListComponent","ControllerSelectorComponent","SidepaneAlarmlistComponent","SidepaneAlarmlistItemComponent","WebcamComponent","WebcamModalComponent","WidgetSidepaneComponent","AbbSmartSensorWidgetComponent","AlarmWidgetComponent","CabinPositionWidgetComponent","CarriagetiltWidgetComponent","ChartSettings","IcingChartComponent","RopewayChartComponent","RopewayEnergyChartComponent","SpeedChartComponent","TemperatureChartComponent","TorqueChartComponent","WetBulbChartComponent","WindChartComponent","ClampingCountWidgetComponent","DestinationAlarmWidgetComponent","AbbSmartSensorDetailViewComponent","AbbSmartSensorItemComponent","AlarmDetailViewComponent","ClampingCountDetailViewComponent","DestinationAlarmDetailViewComponent","DevicesOnDetailViewComponent","DevicesOnDetailViewItemComponent","EfaDetailViewComponent","EnergyDetailViewComponent","FirstEntriesDetailViewComponent","GINDetailViewComponent","RemoteAccessDetailViewComponent","RemoteAccessDetailViewItemComponent","RopewayAvailabilityDetailViewComponent","RopewayBrakeReportDetailViewComponent","RopewayBrakeReportRowComponent","RopewayBrakeReportPdfModal","EcoModeChartComponent","RopewayEcoModeSettingsModal","RopewayEcoModeDetailViewComponent","RopewayEnergyDetailViewComponent","RopewaySettingsModal","RopewaySettingsDetailViewComponent","SambesiWhatsUpDetailViewComponent","SambesiWhatsUpMessageComponent","SnowmakingDetailViewComponent","StoptimeDetailViewComponent","TransportWeightDetailViewComponent","TruScanDetailViewComponent","TruScanItemComponent","WebcamDetailViewComponent","DevicesonWidgetComponent","EfaWidgetComponent","EnergyWidgetComponent","FirstEntriesWidgetComponent","GeartempWidgetComponent","GINWidgetComponent","IcingWidgetComponent","KassandraWidgetComponent","OpHoursWidgetComponent","PassengerCountWidgetComponent","RemoteAccessWidgetComponent","RopekmWidgetComponent","RopewayBrakeReportWidgetComponent","RopewayChartWidgetComponent","RopewayEcoModeWidgetComponent","RopewaySettingsWidgetComponent","SambesiWhatsUpWidgetComponent","SnowmakingWidgetComponent","SpeedWidgetComponent","StoptimeWidgetComponent","TemperatureWidgetComponent","TorqueWidgetComponent","TransportWeightWidgetComponent","TripsWidgetComponent","TruScanWidgetComponent","UtilizationWidgetComponent","WeathertrendWidgetComponent","WebcamWidgetComponent","WetBulbWidgetComponent","WindWidgetComponent","WindtendencyWidgetComponent","ZonesWidgetComponent","energyLiveDataService","meteoForecastService","meteoLiveDataService","ropewayLiveDataService","MapsPage_Template","MapsPage_sis_details_drawer_0_Template","MapsPage_sis_widget_sidepane_2_Template","MapsPage_sis_map_3_Template","MeteoStationService","selectedMeteoData$","clickedEvent","liveDatas","relevantMeteoStations","getRelevantMeteoStations","getLivedatasForMeteoStations","activeMeteoStation$","clickedMeteoStation","findMeteoStationWithHighestWindSpeed","relevantMeteoStationWithWetBulbTemperature$","meteoStationHasWetBulbTemperature","findMeteoStationWithForecast","findMeteoStationWithLowestWetBulbTemperature","meteoStationWithLowestTemperature$","findMeteoStationWithLowestTemperature","allMeteoStationsWithTemperature$","findMeteoStationsWithTemperature","meteoStationWithForecast$","highestWindSpeedStationSisId","highestWindSpeed","lowestWetBulbTemperatureStationSisId","lowestWetBulbTemperature","liveDatasWithTemperature","lowestTemperatureStationSisId","lowestTemperature","Injector","ɵɵelementContainer","injector","inModal","isInModalInjector","providers","ModalPopupComponent_Template","ModalPopupComponent_Template_ion_button_click_2_listener","ModalPopupComponent_ng_container_6_Template","EnergyTrendAdapter","trends","lastTimestampMs","timestampMsMaxExpectedValue","energyKwInterval","EnergyTrendService","requestEnergyTrend","energyDeviceId","ForecastTrendAdapter","forecastTrends","windSpeedKmhMax","forecastTime","TemperatureTrendAdapter","WetBulbTrendAdapter","WindTrendAdapter","MeteoTrendService","getWindTrends","meteoStationGuid","getForecastTrends","getTemperatureTrends","getWetBulbTemperatureTrends","RopewayAvailabilityTrendAdapter","week","ignore","RopewayAvailabilityTrendService","getAvailabilityTrendData","getAvailabilityLongtermTrendData","timespan","postIgnore","RopewayEcoModeTrendAdapter","driveEnergyWh","ecoModeActivatedCockpit","RopewayEcoModeTrendService","getEcoModeData","RopewaySpeedTrendAdapter","speed","RopewaySpeedTrendService","getSpeedData","RopewayTorqueTrend","RopewayTorqueTrendAdapter","percentConfig","ampereConfig","hasAmpereValue","hasPercentValue","hasAmpereConfig","hasPercentConfig","torqueAbsolute","torquePercent","updateAbsoluteValue","updateTorquePercent","onlyPercent","onlyAmpere","unitPercent","unitAmpere","unitNewton","unitNone","RopewayTorqueTrendService","getTorqueData","temperatureCelsiusAverage","wetBulbTemperatureCelsiusAverage","meanValue","windSpeedKmhAverage","DetailView","Widget","WidgetName","CustomMarkerWidgetListService","buildWidgetList","mapIconClickedEvent","userFeatures","widgetsToRemove","widgets","getWidgets","filteredWidgets","widget","expand","detailView","WidgetAction","DestinationWidgetListService","masterdata","FirstEntries","Kassandra","Energy","COCKPIT_SNOWMAKING","Snowmaking","RemoteAccess","AbbSmartSensor","SambesiWhatsUp","GIN","DevicesOn","DestinationAlarm","ExternalLink","WeatherTrend","expanded","Expandable","toggleExpanded","publishExpandedEvent","MeteoStationWidgetListService","meteoForecasts","clickedMeteoStationLiveData","clickedMeteoStationForecastData","forecastData","hasIcingIntensityForecastData","hasWetBulbTemperatureCelsiusForecast","hasWetBulbTemperatureCelsiusLiveData","hasTemperatureCelsiusLiveData","Icing","WetBulb","Temperature","windWidget","Wind","RopewayAvailabilityWidgetComponent","RopewayWidgetListService","ropewayEcoModeSettingsService","sambesiWhatsUpService","ropewayAvailabilityService","ropewayBrakeReportService","ropewayLiveDatas","energyLiveDatas","sambesiWhatsUpMessages","ropewayAvailability","ropewayBrakeReports","ropewayMeteoStations","ropewayLiveData","clickedRopewayMeteoLiveData","clickedRopewayMeteoForecastData","ms","Efa","Speed","Torque","Utilization","CabinPosition","Stoptime","meteoData","TransportWeight","ClampingCount","TruScan","ropewayConfig","torqueWidget","RopewayEcoMode","COCKPIT_ROPEWAY_SETTINGS","RopewaySettings","RopewayBrakeReport","RopewayAvailability","RopewayChart","i10","WidgetListService","ropewayWidgetListService","destinationWidgetListService","meteoStationWidgetListService","customMarkerWidgetListService","widgetList$","QueryList","IonContent","WidgetListComponent_ion_content_0_div_4_ion_col_2_div_2__svg_svg_2_Template","WidgetListComponent_ion_content_0_div_4_ion_col_2_div_2__svg_svg_3_Template","WidgetListComponent_ion_content_0_div_4_ion_col_2_div_2_ng_container_4_Template","widgetCursor","widget_r2","hasLink","WidgetListComponent_ion_content_0_div_4_ion_col_2_Template_ion_col_click_0_listener","WidgetListComponent_ion_content_0_div_4_ion_col_2_div_2_Template","getWidgetClass","WidgetListComponent_ion_content_0_div_4_div_3_ion_row_1_Template_ion_row_click_0_listener","widget_r5","presentModal","WidgetListComponent_ion_content_0_div_4_div_3_ion_row_1_ng_container_3_Template","detailCursor","WidgetListComponent_ion_content_0_div_4_div_3_ion_row_1_Template","WidgetListComponent_ion_content_0_div_4_div_3_ion_row_2_Template","WidgetListComponent_ion_content_0_div_4_ion_col_2_Template","WidgetListComponent_ion_content_0_div_4_div_3_Template","row_r6","WidgetListComponent_ion_content_0_div_4_Template","WidgetListComponent_ion_grid_1_div_2_ion_col_2_div_1__svg_svg_2_Template","WidgetListComponent_ion_grid_1_div_2_ion_col_2_div_1__svg_svg_3_Template","WidgetListComponent_ion_grid_1_div_2_ion_col_2_div_1_ng_container_5_Template","widget_r8","WidgetListComponent_ion_grid_1_div_2_ion_col_2_Template_ion_col_click_0_listener","WidgetListComponent_ion_grid_1_div_2_ion_col_2_div_1_Template","WidgetListComponent_ion_grid_1_div_2_div_3_ion_row_1_Template_ion_row_click_0_listener","widget_r10","WidgetListComponent_ion_grid_1_div_2_div_3_ion_row_1_ng_container_3_Template","WidgetListComponent_ion_grid_1_div_2_div_3_ion_row_1_Template","WidgetListComponent_ion_grid_1_div_2_div_3_ion_row_2_Template","WidgetListComponent_ion_grid_1_div_2_ion_col_2_Template","WidgetListComponent_ion_grid_1_div_2_div_3_Template","rows_r11","WidgetListComponent_ion_grid_1_div_2_Template","mapElementSelectedService","modalController","GRID_L","GRID_M","GRID_R","NO_BOTTOM_BORDER","MUTED_LEFT_BORDER","MUTED_BORDER","MUTED_SVG","borders","widgetList","widgetDisplayMap","setupWidgetMap","closeAllCharts","doScrollMagic","closeAllChartsBut","scrollToDetailView","widgetDisplay","classes","css","expandedWidget","getExpandedWidget","expandedRow","row","expandedCol","col","widgetMap","setUpWidgetArray","setUpWidget","setUpPlaceholderWidgets","remaining","emptyWidget","getPlaceholderWidget","widgetName","checkExist","contents","inner","clearInterval","marginRight","overflowY","overflowX","detailViewContainer","getElementById","offsetParent","ionContent","widgetCols","first","offsetHeight","offset","scrollToPoint","WidgetListComponent_Query","WidgetListComponent_ion_content_0_Template","WidgetListComponent_ion_grid_1_Template","ControllerSelectorComponent_ion_item_2_Template_ion_item_click_0_listener","selectRopeway","setSelectableRopeways","selectableRopeways","ControllerSelectorComponent_Template","ControllerSelectorComponent_Template_div_mouseleave_0_listener","ControllerSelectorComponent_ion_item_2_Template","SidepaneAlarmlistItemComponent_div_10_Template_sis_context_menu_menuItemSelected_1_listener","contextMenuItemSelected","contextMenuX","contextMenuY","contextMenuItems","pointerClass","defaultClass","ContextMenuItemSettings","showContextMenu","contextMenuDisabled","showAliasInTitle","canAccessAlarmLibrary","mouseEnter","mouseLeave","mouseClick","openContextMenu","alarmItemWidth","clientWidth","contextMenuWidth","eventPositionX","clientX","eventPositionY","clientY","selectedItem","openAlarmLibrary","underscorePos","modalSisId","modalAlias","underscorePosition","cssStyle","displayedTitle","displayedText","SidepaneAlarmlistItemComponent_Template","SidepaneAlarmlistItemComponent_Template_ion_row_mouseenter_0_listener","SidepaneAlarmlistItemComponent_Template_ion_row_mouseleave_0_listener","SidepaneAlarmlistItemComponent_Template_ion_row_click_0_listener","SidepaneAlarmlistItemComponent_Template_ion_row_contextmenu_0_listener","SidepaneAlarmlistItemComponent_Template_ion_row_press_0_listener","SidepaneAlarmlistItemComponent_div_10_Template","GRID_PADDING","ITEM_HEIGHT","MAX_VISIBLE_ITEMS","ALARM_TITLE_EMPTY","ALARM_TITLE_ALARM","ALARM_TITLE_WARNING","ALARM_TITLE_INFO","hasAlarms","getGridHeight","class","gridHeight","SidepaneAlarmlistComponent_Template","SidepaneAlarmlistComponent_sis_sidepane_alarmlist_item_8_Template","WebcamImageRequestService","requestOutdatedTime","requestUploadRenewalIntervalMs","imageUploadRequestedRopewaySisId$","imageUploadRequests$","lastImageUploadRequest","lastPeriodicRequestStart","periodicallyRequestImageUploads","isImageRequestOutdated","didRecentlyStartUploadRequests","ChangeDetectorRef","panzoom","ajax","WebcamService","WebcamModalComponent_div_8_swiper_slide_9_img_2_Template_img_error_0_listener","i_r5","onImageError","WebcamModalComponent_div_8_swiper_slide_9_img_2_Template_img_load_0_listener","webcamDisplayConfig_r7","onImageLoad","showNotFoundOverlay","imageSrc_r8","showLoadingOverlay","showOutdatedOverlay","WebcamModalComponent_div_8_swiper_slide_9_Template_swiper_slide_click_0_listener","onThumbnailClick","WebcamModalComponent_div_8_swiper_slide_9_img_2_Template","WebcamModalComponent_div_8_swiper_slide_9_div_7_Template","WebcamModalComponent_div_8_swiper_slide_9_div_8_Template","WebcamModalComponent_div_8_swiper_slide_9_div_9_Template","urlWithRandomString$","canShowLoadingOverlay","WebcamModalComponent_div_8_Template_div_mouseenter_0_listener","showButtons","WebcamModalComponent_div_8_Template_div_mouseleave_0_listener","hideButtons","WebcamModalComponent_div_8_Template_ion_fab_button_click_2_listener","prevThumbnail","WebcamModalComponent_div_8_Template_ion_fab_button_click_5_listener","nextThumbnail","WebcamModalComponent_div_8_swiper_slide_9_Template","showTopButtons","isPrevThumbnailButtonDisabled","isNextThumbnailButtonDisabled","webcamDisplayConfigs","WebcamModalComponent_ion_fab_11_Template_ion_fab_button_click_1_listener","prevImage","showBottomButtons","isPrevImageButtonDisabled","WebcamModalComponent_ion_fab_12_Template_ion_fab_button_click_1_listener","nextImage","isNextImageButtonDisabled","WebcamModalComponent_swiper_slide_16_img_2_Template_img_error_0_listener","i_r12","WebcamModalComponent_swiper_slide_16_img_2_Template_img_load_0_listener","webcamDisplayConfig_r13","imageSrc_r14","WebcamModalComponent_swiper_slide_16_img_2_Template","WebcamModalComponent_swiper_slide_16_div_4_Template","WebcamModalComponent_swiper_slide_16_div_5_Template","WebcamModalComponent_swiper_slide_16_div_6_Template","imageOutdatedTime","publicImageRefreshTimeMs","isOneCam","changeDetector","webcamImageRequestService","webcamService","startIndex","stopTimer$","panzoomInstances","webcamImageUpdated$","initWebcamConfigs","setImageIndex","initializeSwipers","bottomSwiper","slideTo","area","topSwiper","isLocked","showExternalImageOverlay","isBeginning","slidePrev","isEnd","slideNext","resetSwiperZoom","webcamDisplayConfig","setLoadingOverlay","setOutdatedOverlay","url$","method","xhr","getResponseHeader","parsedDate","imageRequestOutdated","visibility","detectChanges","initializePanzoom","swiper","cleanupPanzoomInstances","slides","imageElement","panzoomInstance","setupPanzoomInstance","minScale","maxScale","contain","panOnlyWhenZoomed","currentScale","zoomingIn","scaleDelta","newScale","rect","left","point","zoomToPoint","pan","currentIndex","activeIndex","updateButtons","topSwiperRef","bottomSwiperRef","sasToken$","getUrlWithRandomString$","showImage$","WebcamModalComponent_Query","WebcamModalComponent_img_4_Template","WebcamModalComponent_Template_ion_button_click_5_listener","WebcamModalComponent_div_8_Template","WebcamModalComponent_Template_div_mouseenter_10_listener","WebcamModalComponent_Template_div_mouseleave_10_listener","WebcamModalComponent_ion_fab_11_Template","WebcamModalComponent_ion_fab_12_Template","WebcamModalComponent_swiper_slide_16_Template","WebcamComponent_ion_fab_1_Template_ion_fab_button_click_1_listener","prevSlide","WebcamComponent_ion_fab_2_Template_ion_fab_button_click_1_listener","nextSlide","end","WebcamComponent_swiper_slide_5_div_2_img_3_Template","webcamDisplayConfig_r4","WebcamComponent_swiper_slide_5_img_5_Template_img_load_0_listener","WebcamComponent_swiper_slide_5_img_5_Template_img_error_0_listener","imageCssClasses","imageSrc_r6","WebcamComponent_swiper_slide_5_div_2_Template","WebcamComponent_swiper_slide_5_img_5_Template","WebcamComponent_swiper_slide_5_div_7_Template","WebcamComponent_swiper_slide_5_div_8_Template","WebcamComponent_swiper_slide_5_div_9_Template","isModal","imageIndex","sliderOptions","maxRatio","activeIndex$","setNotFoundOverlay","setActiveIndex","swiperRef","showModal","simpleChanges","resetValuesForNewImage","setImageCssClass","cssClasses","WebcamComponent_Query","WebcamComponent_ion_fab_1_Template","WebcamComponent_ion_fab_2_Template","WebcamComponent_swiper_slide_5_Template","repeat","expiryDuration$","repeatTimer$","tenantLogoUrl","fullNameWithSisId","tmp_5_0","controllerTypeWithConstructor","WidgetSidepaneComponent_div_3_div_8_Template_sis_controller_selector_done_1_listener","WidgetSidepaneComponent_div_3_Template_div_click_0_listener","t_r3","WidgetSidepaneComponent_div_3_Template_div_contextmenu_0_listener","WidgetSidepaneComponent_div_3_ion_icon_5_Template","WidgetSidepaneComponent_div_3_ion_col_6_Template","WidgetSidepaneComponent_div_3_ion_col_7_Template","WidgetSidepaneComponent_div_3_div_8_Template","hasRemoteControl","showPlaceHolder","destinationView","setSelectedElementValues","selectActiveWebcams","showDestinationView","selectedMapElement","selectedRopeway","showWebcams","WidgetSidepaneComponent_Template","WidgetSidepaneComponent_div_1_Template","WidgetSidepaneComponent_div_2_Template","WidgetSidepaneComponent_div_3_Template","WidgetSidepaneComponent_div_4_Template","WidgetSidepaneComponent_sis_sidepane_alarmlist_7_Template","cssClassGood","cssClassTolerable","cssClassPoor","cssClassUnknown","abbSmartSensorDataService","abbSmartSensorDatas","selectedRopewaySisId","sensorData","Unknown","NotApplicable","Good","Tolerable","AbbSmartSensorWidgetComponent_Template","WidgetBase","defaultValue","normalCssClass","warningCssClass","alarmCssClass","meteoStationService","count","forecastAlarms","highestLevelAlarmsPerCode","uniqueAlarms","AlarmWidgetComponent_Template","fontSize","RopewayOperationWidgetBase","valueUnknown","CabinPositionWidgetComponent_Template","CarriagetiltWidgetComponent_Template","Chart","Highcharts","offline","ChartAdapter","series","chart","chartReady$","ref$","chartRef","loadData","observables","addSeries","seriesName","removeSeries","removeAllSeries","clearAllSeriesData","setData","showLoading","hideLoading","showNoData","exportData","subtitle","exportChartLocal","scale","filename","fallbackToExportServer","sourceHeight","sourceWidth","fontFamily","xAxis","labels","yAxis","colors","plotOptions","spline","lineWidth","setSeriesData","setSeriesOptions","setYAxisExtremes","axis","setExtremes","setXAxisExtremes","removeYPlotBand","removePlotBand","addYPlotBand","addPlotBand","updateDateXPlotLine","removePlotLine","addPlotLine","getTimeInMsDaysAgo","days","setDate","getTimeInMsHoursAgo","hours","setHours","getHours","reflowChart","reflow","updateOptions","redraw","ChartBase","noDataTranslateString","loadingTranslateString","ContextMenuItemSave","trendLineColor","forecastLineColor","minY","maxY","noDataText","loadingText","chartAdapter","noData","loading","translateTexts","chartOptions","getChartOptions","spacingTop","exportChartPdf","chartClicked","mouseMoved","getAttribute","clickStarted","onMouseDown","onMouseUp","onMouseMove","timeString","subTitle","deviceAlias","updateModalTitle","titleElement","innerText","getTrendLineColor","getForecastLineColor","updateTitle","handleSetExtremesEvent","trigger","isZoomed","isZoomedToEnd","dataMax","zoomMin","ChartSettingsService","ropewayChartSettings","_forecastEnabled$","forecastEnabled$","toggleForecast","forecastEnabled","toggleRopewaySetting","getRopewaySettings","getRopewaySetting","IcingChartComponent_div_1_Template_div_click_0_listener","IcingChartComponent_div_2_Template_sis_context_menu_menuItemSelected_1_listener","icingForecastSeries","plotlineWarn","titleTranslateString","intensityHighTranslateString","intensityMediumTranslateString","intensityLowTranslateString","intensityNoneTranslateString","meteoForecastDataService","chartSettings","defaultMaxY","defaultMinY","meteoStation$","initChart","updateChartData","forecasts","resetChart","minX","maxX","colorZones","getZones","icingData","getData","zones","timeStampInMs","intensityHighText","intensityMediumText","intensityLowText","intensityNoneText","useUTC","timezoneOffset","getTimezoneOffset","legend","navigation","buttonOptions","crosshair","tickInterval","zoomType","panKey","panning","animation","resetZoomButton","stroke","align","rotation","endOnTick","formatter","credits","bottomText","fontWeight","states","inactive","IcingChartComponent_Template","IcingChartComponent_Template_div_mousedown_0_listener","IcingChartComponent_Template_div_click_0_listener","IcingChartComponent_Template_div_mouseup_0_listener","IcingChartComponent_Template_div_mousemove_0_listener","IcingChartComponent_div_1_Template","IcingChartComponent_div_2_Template","RopewayChartHandler","MeteoHandler","maxTranslateString","avgTranslateString","forecastAvgTranslateString","forecastMaxTranslateString","chartSettingsService","meteoTrendService","yAxisUnits","meteoStationSetting","meteoStationForecastSetting","seriesIdAvg","seriesIdMax","seriesIdForecastAvg","seriesIdForecastMax","seriesNameAvg","seriesNameMax","seriesNameForecastAvg","seriesNameForecastMax","seriesObservable","getTrendObservable","getForecastObservable","getChartSelectors","titleStrings","selected$","valueSuffix","seriesId","getAverageTrends","getMaxTrends","adaptForecast","SpeedHandler","TorqueHandler","RopewayChartComponent_div_2_Template_div_click_0_listener","resetZoom","RopewayChartComponent_div_3_Template_div_click_0_listener","s_r6","RopewayChartComponent_ion_grid_9_ion_row_1_Template_ion_row_click_0_listener","selector_r5","RopewayChartComponent_ion_grid_9_ion_row_1_span_5_Template","RopewayChartComponent_ion_grid_9_ion_row_1_Template","chartSelectors","RopewayChartComponent_div_10_Template_sis_context_menu_menuItemSelected_1_listener","ropewaySpeedTrendService","ropewayTorqueTrendService","ropeway$","dataSelectionOpen","availableCharts","forecastTestActive$","bools","flat","seriesDatas","updateChart","alignTicks","softMax","gridLineWidth","showEmpty","softMin","xDateFormat","RopewayChartComponent_Template","RopewayChartComponent_Template_div_mousedown_0_listener","RopewayChartComponent_Template_div_click_0_listener","RopewayChartComponent_Template_div_mouseup_0_listener","RopewayChartComponent_Template_div_mousemove_0_listener","RopewayChartComponent_div_2_Template","RopewayChartComponent_div_3_Template","RopewayChartComponent_Template_div_click_4_listener","RopewayChartComponent_ion_grid_9_Template","RopewayChartComponent_div_10_Template","speedTranslateString","trendColor","torqueTranslateString","motorCurrentTranslateString","translateString","self","pointFormatter","torqueTrends","yText","RopewayEnergyChartComponent_div_1_Template_div_click_0_listener","RopewayEnergyChartComponent_div_2_Template_sis_context_menu_menuItemSelected_1_listener","energyTrendService","chartData$","energyDevices","ropewayAlias","trendObservables","energyTrends","openInModal","energyText","device","trend","chartData","getMaxYAxisValue","fillOpacity","RopewayEnergyChartComponent_Template","RopewayEnergyChartComponent_Template_div_click_0_listener","RopewayEnergyChartComponent_Template_div_mousedown_0_listener","RopewayEnergyChartComponent_Template_div_mouseup_0_listener","RopewayEnergyChartComponent_Template_div_mousemove_0_listener","RopewayEnergyChartComponent_div_1_Template","RopewayEnergyChartComponent_div_2_Template","SpeedChartComponent_div_1_Template_div_click_0_listener","SpeedChartComponent_div_2_Template_sis_context_menu_menuItemSelected_1_listener","speedSeries","plotlineAlarm","trendDatas","getConfiguration","speedData","setPlotLines","maxSpeed","nominalSpeed","ceil","SpeedChartComponent_Template","SpeedChartComponent_Template_div_mousedown_0_listener","SpeedChartComponent_Template_div_click_0_listener","SpeedChartComponent_Template_div_mouseup_0_listener","SpeedChartComponent_Template_div_mousemove_0_listener","SpeedChartComponent_div_1_Template","SpeedChartComponent_div_2_Template","TemperatureChartComponent_div_1_Template_div_click_0_listener","TemperatureChartComponent_div_2_Template_sis_context_menu_menuItemSelected_1_listener","trendSeriesId","forecastTranslateString","meteoTrendDataService","defaultYAxisMax","defaultYAxisMin","trendLineWidth","forecastLineWidth","xAxisPlotlineNowId","meteoStations$","meteostationIndex","forecastSeriesId","forecastText","temperatureTrends","forecastTrend","temperatureCelsiusAverageData","getAverageData","averageForecastData","getMinYAxisValue","getXAxisDatePlotline","minTimestamp","minValue","TemperatureChartComponent_Template","TemperatureChartComponent_Template_div_mousedown_0_listener","TemperatureChartComponent_Template_div_click_0_listener","TemperatureChartComponent_Template_div_mouseup_0_listener","TemperatureChartComponent_Template_div_mousemove_0_listener","TemperatureChartComponent_div_1_Template","TemperatureChartComponent_div_2_Template","TorqueChartComponent_div_1_Template_div_click_0_listener","TorqueChartComponent_div_2_Template_sis_context_menu_menuItemSelected_1_listener","torqueSeries","getTitle","torqueData","motorCurrentText","torqueText","TorqueChartComponent_Template","TorqueChartComponent_Template_div_mousedown_0_listener","TorqueChartComponent_Template_div_click_0_listener","TorqueChartComponent_Template_div_mouseup_0_listener","TorqueChartComponent_Template_div_mousemove_0_listener","TorqueChartComponent_div_1_Template","TorqueChartComponent_div_2_Template","WetBulbChartComponent_div_1_Template_div_click_0_listener","WetBulbChartComponent_div_2_Template_sis_context_menu_menuItemSelected_1_listener","forecastTrendSeries","trendSeries","trendTranslateString","forecastTrendTranslateString","unknownTranslateString","wetBulbTrend","trendText","forecastTrendText","forecast","wetBulbForecasts","getRoundedTemperaturesWithTimestamp","wetBulbTrends","unknownText","titleText","WetBulbChartComponent_Template","WetBulbChartComponent_Template_div_mousedown_0_listener","WetBulbChartComponent_Template_div_click_0_listener","WetBulbChartComponent_Template_div_mouseup_0_listener","WetBulbChartComponent_Template_div_mousemove_0_listener","WetBulbChartComponent_div_1_Template","WetBulbChartComponent_div_2_Template","WindChartComponent_div_1_Template_div_click_0_listener","WindChartComponent_div_1_div_1_Template","WindChartComponent_div_2_Template_div_click_0_listener","WindChartComponent_div_3_Template_sis_context_menu_menuItemSelected_1_listener","averageTrendSeries","maxTrendSeries","averageForecastSeries","maxForecastSeries","defaultAlarmRangeHigh","meteoStationHasForecast","windTrends","averageText","maxText","forecastAvgText","forecastMaxText","averageTrends","maxTrends","averageForecasts","maxForecasts","crisp","WindChartComponent_Template","WindChartComponent_Template_div_mousedown_0_listener","WindChartComponent_Template_div_click_0_listener","WindChartComponent_Template_div_mouseup_0_listener","WindChartComponent_Template_div_mousemove_0_listener","WindChartComponent_div_1_Template","WindChartComponent_div_2_Template","WindChartComponent_div_3_Template","ClampingCountWidgetComponent_Template","normalClass","getClass","DestinationAlarmWidgetComponent_Template","abbSmartSensor_r1","AbbSmartSensorDetailViewComponent_Template","AbbSmartSensorDetailViewComponent_sis_abbsmartsensor_item_1_Template","AbbSmartSensorDetailViewComponent_ion_grid_5_Template","cssclassForAvailability","cssClassForEnvironment","cssClassForReliability","cssClassForStress","abbSmartSensorData","conditionStatus","Poor","AbbSmartSensorItemComponent_Template","alarm_r1","AlarmDetailViewComponent_ion_chip_4_Template_ion_chip_click_0_listener","hasAlarm","AlarmDetailViewComponent_Template","AlarmDetailViewComponent_div_0_Template","AlarmDetailViewComponent_sis_sidepane_alarmlist_item_2_Template","AlarmDetailViewComponent_ion_chip_4_Template","ClampingCountResetService","ClampingCountDetailViewComponent_ng_container_6_ion_col_4_Template","ClampingCountDetailViewComponent_ion_grid_17_ion_row_1_ng_container_4_ion_col_5_ion_icon_2_Template_ion_icon_click_0_listener","clampingCount_r3","resetClampingCount","ClampingCountDetailViewComponent_ion_grid_17_ion_row_1_ng_container_4_ion_col_5_ion_spinner_1_Template","ClampingCountDetailViewComponent_ion_grid_17_ion_row_1_ng_container_4_ion_col_5_ion_icon_2_Template","isResetting","ClampingCountDetailViewComponent_ion_grid_17_ion_row_1_ng_container_4_ion_col_5_Template","ɵɵpropertyInterpolate3","toLocaleString","clampingCount","tmp_6_0","ClampingCountDetailViewComponent_ion_grid_17_ion_row_1_ng_container_4_Template","hasClampingCountResetFeature$","ClampingCountDetailViewComponent_ion_grid_17_ion_row_1_Template","clampingCounts","ClampingCountDetailViewComponent_sis_logbook_button_18_Template_sis_logbook_button_click_0_listener","clampingCountResetService","clampingCountKey","vehicleIdKey","clampingCountResetMetadata","loadingData","COCKPIT_ROPEWAY_CLAMPINGCOUNT_RESET","clampingCountResetMetaData$","hasClampingCountFeature","clampingCountMetadata$","vehicleIds","ClampingCountDetailViewComponent_Template","ClampingCountDetailViewComponent_ng_container_6_Template","ClampingCountDetailViewComponent_ion_spinner_16_Template","ClampingCountDetailViewComponent_ion_grid_17_Template","ClampingCountDetailViewComponent_sis_logbook_button_18_Template","ClampingCountResetMetaDataAdapter","clampingCountMetadataRequest$","clampingCountResetMetaData","clampingCountResetedEvent$","requestData","changedVehicle","postResetClampingCount","DestinationAlarmDetailViewComponent_ion_chip_4_Template_ion_chip_click_0_listener","gatewaySisId","destinationAlias","uniques","DestinationAlarmDetailViewComponent_Template","DestinationAlarmDetailViewComponent_div_0_Template","DestinationAlarmDetailViewComponent_sis_sidepane_alarmlist_item_2_Template","DestinationAlarmDetailViewComponent_ion_chip_4_Template","DevicesOnDetailViewItemComponent_ion_row_0_Template_ion_row_mouseenter_0_listener","DevicesOnDetailViewItemComponent_ion_row_0_Template_ion_row_mouseleave_0_listener","DevicesOnDetailViewItemComponent_ion_row_0_Template_ion_row_click_0_listener","DevicesOnDetailViewItemComponent_Template","DevicesOnDetailViewItemComponent_ion_row_0_Template","ropeway_r1","DevicesOnDetailViewComponent_Template","DevicesOnDetailViewComponent_sis_devices_on_detailview_item_1_Template","EfaHistoryAdapter","RopewayEfaHistoryService","efa_r2","EfaDetailViewComponent_div_6_div_1_Template","efaHistory","EfaDetailViewComponent_ion_chip_8_Template_ion_chip_click_0_listener","efaHistoryService","hasActiveAlarm","ropewayEfaHistory$","historyItem","hasHistoryItems","activeEfas","EfaDetailViewComponent_Template","EfaDetailViewComponent_sis_sidepane_alarmlist_item_2_Template","EfaDetailViewComponent_ion_row_3_Template","EfaDetailViewComponent_ion_col_5_Template","EfaDetailViewComponent_div_6_Template","EfaDetailViewComponent_ion_chip_8_Template","odd_r2","category_r1","allMissing","odd_r5","item_r4","EnergyDetailViewComponent_div_12_ion_row_9_Template","missing","production","consumption","sumProd","sum","sumCons","EnergyDetailViewComponent_Template","EnergyDetailViewComponent_ion_row_9_Template","EnergyDetailViewComponent_div_12_Template","entries_r1","wholeDestination","FirstEntriesDetailViewComponent_ion_row_11_ion_col_3_Template","FirstEntriesDetailViewComponent_ion_row_11_ion_col_4_Template","FirstEntriesDetailViewComponent_ion_row_11_ion_col_5_Template","firstEntriesAvailable","frequenciesAvailable","forecastAvailable","firstEntriesService","kassandraService","COCKPIT_FREQUENCIES","firstEntries","firstEntriesDatas","dataForDetailView","getDataForDetailView","kassandra","forecastDatas","firstEntriesDetailViewDatas","g","rowKeys","FirstEntriesDetailViewComponent_Template","FirstEntriesDetailViewComponent_ion_col_6_Template","FirstEntriesDetailViewComponent_ion_col_7_Template","FirstEntriesDetailViewComponent_ion_col_8_Template","FirstEntriesDetailViewComponent_ion_row_11_Template","FirstEntriesDetailViewComponent_ion_grid_15_Template","FirstEntriesDetailViewComponent_ion_col_16_Template","GinDetailViewDisplayData","valueFormat","odd_r3","data_r2","GINDetailViewComponent_ng_container_7_ion_row_1_Template","ginLiveDataService","displayDatas","ginLiveDatas","ginIds","ginLiveData","trackByGinName","ginDatay","GINDetailViewComponent_Template","GINDetailViewComponent_ng_container_7_Template","RemoteAccessService","typeIconName","RemoteAccessDetailViewItemComponent_ion_row_0_Template_ion_row_click_0_listener","openRemoteAccess","remoteAccess","RemoteAccessDetailViewItemComponent_ion_row_0_ion_icon_2_Template","RemoteAccessDetailViewItemComponent_ion_row_0_ion_spinner_3_Template","RemoteAccessDetailViewItemComponent_ion_row_0_div_7_Template","blocked","remoteAccessService","remoteAccessStatusService","blockedDuration","blockStatus$","ready","openSession","RemoteAccessDetailViewItemComponent_Template","RemoteAccessDetailViewItemComponent_ion_row_0_Template","remoteItem_r1","RemoteAccessDetailViewComponent_sis_logbook_button_3_Template_sis_logbook_button_click_0_listener","remoteAccesses$","RemoteAccessDetailViewComponent_Template","RemoteAccessDetailViewComponent_sis_remote_access_detailview_item_1_Template","RemoteAccessDetailViewComponent_sis_logbook_button_3_Template","timespan_r1","RopewayAvailabilityDetailViewComponent_div_17_Template_div_contextmenu_0_listener","trend_r3","ignorable","openIgnoreDialog","barHeightPercent","chartBarWidth","barTooltip","meanValuePercent","trend_r5","dateTooltip","shownDate","requiredWriteFeature","ropewayAvailabilityTrendService","selectedTimespan$","trendDataMonth$","toRoundedString","trendDataYear$","trendDataWeek$","today","UTC","getUTCFullYear","getUTCMonth","getUTCDate","dataForDay","isSameDay","availabilityPercent","shownTrendData$","timespanSelectors","calculateMeanValue","updatedTrend","toISOString","confirmText","selectTimespan","relevantTrendData","d1","d2","RopewayAvailabilityDetailViewComponent_Template","RopewayAvailabilityDetailViewComponent_Template_ion_select_ionChange_3_listener","RopewayAvailabilityDetailViewComponent_ion_select_option_4_Template","RopewayAvailabilityDetailViewComponent_div_6_Template","RopewayAvailabilityDetailViewComponent_div_7_Template","RopewayAvailabilityDetailViewComponent_div_17_Template","RopewayAvailabilityDetailViewComponent_div_18_Template","RopewayAvailabilityDetailViewComponent_span_20_Template","hasWritePermission$","openPdfModal","brakeReport","ropewayBrakeReport","RopewayBrakeReportRowComponent_Template","RopewayBrakeReportRowComponent_Template_ion_row_mouseenter_0_listener","showUploadIcon","RopewayBrakeReportRowComponent_Template_ion_row_mouseleave_0_listener","RopewayBrakeReportRowComponent_Template_ion_col_click_1_listener","RopewayBrakeReportRowComponent_ion_icon_6_Template","ropewayBrakeReport_r1","timestamp_r2","brakeReportService","timestamp$","brakeReports","RopewayBrakeReportDetailViewComponent_Template","RopewayBrakeReportDetailViewComponent_sis_ropeway_brakereport_detailview_row_11_Template","RopewayBrakeReportDetailViewComponent_ion_grid_16_Template","Buffer","baseUrlRopewayReportBlobStorage","pdfFileNameEncoded","cacheBuster","RopewayBrakeReportPdfModal_Template","RopewayBrakeReportPdfModal_ion_title_2_Template","RopewayBrakeReportPdfModal_Template_ion_button_click_3_listener","RopewayBrakeReportPdfModal_iframe_7_Template","EcoModeChartHandler","EcoModeActivatedCockpitHandler","onTranslateString","offTranslateString","ropewayEcoModeTrendService","offText","onText","step","valueText","EcoModeActualSpeedHandler","EcoModeEnabledPLCHandler","EcoModeEnergyHandler","EcoModePeoplePerMinuteHandler","EcoModeTargetSpeedHandler","EcoModeVehicleCountHandler","EcoModeWorkloadHandler","EcoModeChartComponent_div_8_Template_div_click_0_listener","EcoModeChartComponent_ion_grid_18_ion_row_1_Template_ion_row_click_0_listener","selector_r4","EcoModeChartComponent_ion_grid_18_ion_row_1_span_5_Template","EcoModeChartComponent_ion_grid_18_ion_row_1_Template","EcoModeChartComponent_div_19_Template_sis_context_menu_menuItemSelected_1_listener","cdr","maxPadding","EcoModeChartComponent_Template","EcoModeChartComponent_Template_ion_button_click_4_listener","EcoModeChartComponent_Template_div_mousedown_6_listener","EcoModeChartComponent_Template_div_click_6_listener","EcoModeChartComponent_Template_div_mouseup_6_listener","EcoModeChartComponent_Template_div_mousemove_6_listener","EcoModeChartComponent_div_8_Template","EcoModeChartComponent_Template_div_click_9_listener","EcoModeChartComponent_Template_div_click_13_listener","EcoModeChartComponent_ion_grid_18_Template","EcoModeChartComponent_div_19_Template","sortedData","previous","timeDiffHours","powerKw","roundedPowerKw","editableSettings","RopewayEcoModeSettingsModal_ion_grid_8_ng_container_17_Template","RopewayEcoModeSettingsModal_ion_grid_8_ng_container_19_Template","maxQuantityPerMinute","pinFormatter","thresholdLowText","thresholdMediumText","thresholds","lower","upper","validators","validateSpeedInputs","setText","speedEmptyControl","speedLowControl","speedMediumControl","speedHighControl","valid","RopewayEcoModeSettingsModal_Template","RopewayEcoModeSettingsModal_Template_ion_button_click_5_listener","RopewayEcoModeSettingsModal_ion_grid_8_Template","RopewayEcoModeSettingsModal_Template_sis_general_button_sisClick_11_listener","RopewayEcoModeSettingsModal_Template_sis_general_button_sisClick_13_listener","percent","currentPeopleFrequencyText","percentText","activeThreshold","thresholdHighText","RopewayEcoModeDetailViewComponent_sis_logbook_button_44_Template_sis_logbook_button_click_0_listener","RopewayEcoModeDetailViewComponent_ion_chip_46_Template_ion_chip_click_0_listener","openEcoModeSettings","ropewayEcoModeLivedataService","requiredFeatureWrite","maxTransportQuantityPerMinute","livedataAvailable","thresholdLowPercent","thresholdMediumPercent","getThresholdText","ecoModePLCDisabledText","getActiveThreshold","toggleEcoMode","hasWritePermission","currentState","openEcoModeChart","lowerLimitPercent","upperLimitPercent","lowerPersMin","upperLimitPersMin","RopewayEcoModeDetailViewComponent_Template","RopewayEcoModeDetailViewComponent_ion_label_8_Template","RopewayEcoModeDetailViewComponent_ion_label_9_Template","RopewayEcoModeDetailViewComponent_ion_row_21_Template","RopewayEcoModeDetailViewComponent_ion_row_22_Template","RopewayEcoModeDetailViewComponent_ion_row_23_Template","RopewayEcoModeDetailViewComponent_Template_div_click_29_listener","RopewayEcoModeDetailViewComponent_Template_ion_chip_click_41_listener","RopewayEcoModeDetailViewComponent_sis_logbook_button_44_Template","RopewayEcoModeDetailViewComponent_ion_chip_46_Template","device_r1","power","devices","trackByDisplayName","totalPower","hasEnergyWh10Sec","RopewayEnergyDetailViewComponent_Template","RopewayEnergyDetailViewComponent_ion_row_9_Template","RopewayEnergyDetailViewComponent_ion_row_17_Template","RopewaySettingsModal_ng_container_8_ng_container_27_Template","RopewaySettingsModal_ng_container_8_ion_row_28_Template","hasAvailabilityFeatureReadPermission$","RopewaySettingsModal_ng_container_10_ng_container_31_Template","RopewaySettingsModal_ng_container_10_ion_row_32_Template","ropewaySettingsService","hasAvailabilityFeatureWritePermission$","propertyColSize","availabilityReadPermission","availabilityWritePermission","isAdmin","validateDatetime","editedSettings","RopewaySettingsModal_Template","RopewaySettingsModal_Template_ion_button_click_5_listener","RopewaySettingsModal_ng_container_8_Template","RopewaySettingsModal_ng_container_10_Template","RopewaySettingsModal_Template_sis_general_button_sisClick_14_listener","RopewaySettingsModal_Template_sis_general_button_sisClick_16_listener","ɵɵtextInterpolate3","operatingTimeFromFormatted","operatingTimeUntilFormatted","RopewaySettingsDetailViewComponent_ng_container_1_ng_container_13_ng_container_12_Template","RopewaySettingsDetailViewComponent_ng_container_1_ng_container_13_Template","RopewaySettingsDetailViewComponent_ng_container_1_ion_row_14_Template","RopewaySettingsDetailViewComponent_ion_chip_3_Template_ion_chip_click_0_listener","openSettingsModal","formatTime","timeParts","RopewaySettingsDetailViewComponent_Template","RopewaySettingsDetailViewComponent_ng_container_1_Template","RopewaySettingsDetailViewComponent_ion_chip_3_Template","ropeway_r3","SambesiWhatsUpDetailViewComponent_ion_row_1_ion_col_11_Template_ion_button_click_1_listener","clearRopewayFilter","SambesiWhatsUpDetailViewComponent_ion_row_1_Template_ion_select_ionChange_6_listener","setRopewayFilter","SambesiWhatsUpDetailViewComponent_ion_row_1_ion_select_option_9_Template","SambesiWhatsUpDetailViewComponent_ion_row_1_ion_col_11_Template","ropewayFilter$","ropeways$","select_r5","message_r6","timestamp_r7","citrixLink_r8","isLoadingMessages","ropewayFilter","SambesiWhatsUpDetailViewComponent_Template","SambesiWhatsUpDetailViewComponent_ion_row_1_Template","SambesiWhatsUpDetailViewComponent_sis_sambesi_whatsup_message_4_Template","SambesiWhatsUpDetailViewComponent_Template_ion_button_click_9_listener","SambesiWhatsUpDetailViewComponent_mat_icon_10_Template","SambesiWhatsUpDetailViewComponent_ion_spinner_11_Template","SambesiWhatsUpDetailViewComponent_ion_grid_13_Template","SambesiWhatsUpDetailViewComponent_a_16_Template","disabledTooltips","messageTitle","updateTooltipDisabled","scrollWidth","sambesiWhatsUpMessage","SambesiWhatsUpMessageComponent_Template","SambesiWhatsUpMessageComponent_Template_div_mouseenter_5_listener","messageTitle_r2","SambesiWhatsUpMessageComponent_Template_div_mouseenter_11_listener","nodeName_r3","SambesiWhatsUpMessageComponent_Template_div_mouseenter_14_listener","jobName_r4","SambesiWhatsUpMessageComponent_Template_div_mouseenter_21_listener","assignedPerson_r5","ɵɵpropertyInterpolate1","SnowmakingDetailViewDisplayData","temperature","wetBulbTemperature","data_r1","temperatureUnit","windSpeedUnit","displayData","meteoDeviceSisIds","meteoLiveData","SnowmakingDetailViewComponent_Template","SnowmakingDetailViewComponent_ion_row_19_Template","ɵɵpropertyInterpolate2","RopewayTripLogAdapter","tripLogs","stopTime","RopewayTripLogService","ropewayTripLogs$","StoptimeDetailViewItem","beginTime","endTime","displayedMessage","stopped","hoursUnit","minutesUnit","secondsUnit","displayedBeginTime","displayedEndTime","displayedCode","startTimeMs","milliseconds","displayedTime","displayedUnit","minutes","interval","StoptimeDetailViewComponent_div_2_span_8_Template","StoptimeDetailViewComponent_div_2_span_10_Template","StoptimeDetailViewComponent_div_2_span_12_Template","tripLogService","dateFormatPipe","ropewayStatusTimeService","startThresholdMilliseconds","displayedLogs","ropewayStatusTimes","statusTime","updateDisplayData","ropewayTripLogs","isTodayLocalTime","newDisplayedLogs","tripLogEntry","nextTripLogEntry","displayedTripEntry","displayedStopEntry","lastTripLogEntry","currentStoptimeDisplayData","lastItemIndex","initialStartTime","reverse","localDate","parseZone","localNow","isSame","StoptimeDetailViewComponent_Template","StoptimeDetailViewComponent_div_2_Template","id_r1","transportWeightTons","transportWeightKg","convertToTons","TransportWeightDetailViewComponent_Template","TransportWeightDetailViewComponent_ion_row_10_Template","truScanDataService","truScanData","truScans","truScanDatas","TruScanDetailViewComponent_Template","TruScanDetailViewComponent_sis_truscan_item_1_Template","TruScanDetailViewComponent_ion_grid_5_Template","backgroundColor","plotBackgroundColor","plotBackgroundImage","plotBorderWidth","plotShadow","pane","startAngle","endAngle","tickPosition","tickColor","defaultOptions","tickLength","tickWidth","minorTickInterval","plotBands","thickness","dataLabels","dial","radius","baseWidth","baseLength","rearLength","pivot","ropeHealth","removePoint","addPoint","TruScanItemComponent_Template","WebcamDetailViewComponent_Template","totalDevices","DevicesonWidgetComponent_Template","efaCodeDefault","fontFamilyMyriadPro","fontFamilyMyriadProCond","efacode","setClass","setFontFamily","EfaWidgetComponent_Template","displayedValue","total","EnergyWidgetComponent_Template","firstEntriesTotal","getFirstEntriesTotal","FirstEntriesWidgetComponent_Template","GeartempWidgetComponent_Template","GINWidgetComponent_Template","dangerColor","defaultColor","icingIntensityTranslateString$","icingIntensity$","icingColor","IcingWidgetComponent_Template","kassandraTotal","getKassandraTotal","KassandraWidgetComponent_Template","showOutdatedData","OpHoursWidgetComponent_Template","OpHoursWidgetComponent_sis_outdated_icon_0_Template","PassengerCountWidgetComponent_Template","RemoteAccessWidgetComponent_Template","RopekmWidgetComponent_Template","RopekmWidgetComponent_sis_outdated_icon_0_Template","RopewayAvailabilityWidgetComponent_Template","RopewayBrakeReportWidgetComponent_Template","openChartModal","RopewayChartWidgetComponent_Template","RopewayChartWidgetComponent_Template_svg_click_0_listener","colorEnabled","colorDisabled","colorNoData","targetSpeed","RopewayEcoModeWidgetComponent_Template","RopewaySettingsWidgetComponent_Template","SambesiWhatsUpWidgetComponent_Template","SnowmakingWidgetComponent_Template","rotationUnknown","rotationDeg","rotateWidget","noConfigError","SpeedWidgetComponent_Template","stopColor","runColor","statusColor","updateDisplay","statusTimeData","st","initialStopTimeMs","hasNoStartTimeAndNoStopTime","hasStartTime","hasStopTime","isRunningForMoreThanThreshold","startTimeIsAfterStopTime","StoptimeWidgetComponent_Template","maxTemperatureCelsius","minTemperatureCelsius","barMaxHeight","barStartYValue","findDataForStation","calcAndSetDisplayValues","temperatureCelsiusValue","innerHeight","innerBarHeight","innerBarYValue","TemperatureWidgetComponent_Template","unitAmps","unitNewtonM","showRotation","findConfig","updateWidget","TorqueWidgetComponent_Template","calculateTransportWeightTons","TransportWeightWidgetComponent_Template","TripsWidgetComponent_Template","TripsWidgetComponent_sis_outdated_icon_0_Template","smallestRopeHealth","TruScanWidgetComponent_Template","vehicleCountPercentValue","UtilizationWidgetComponent_Template","openLink","WeathertrendWidgetComponent_Template","WeathertrendWidgetComponent_Template_svg_click_0_listener","WebcamWidgetComponent_Template","wetBulbTemperatureCelsius$","meteoForecastDatas","meteoForecastData","wetBulbLiveData","wetBulbForecastTemperatureCelsius","isForecastValue","wetBulbValue","WetBulbWidgetComponent_Template","WetBulbWidgetComponent__svg_g_12_Template","textPositionX","textPositionY","TYPE","colorClass","forecastColor","updateLiveData","forecastWarnings","updateForecastWarning","isMeteostationOfRopeway","findConfigurationForStation","updateColor","updateTransform","updateText","updateWindArrows","updatedRotationTransform","crossWind","directionWind","hasForecastWarning","WindWidgetComponent_Template","WindWidgetComponent__svg_path_8_Template","WindWidgetComponent__svg_g_9_Template","WindtendencyWidgetComponent_Template","WindtendencyWidgetComponent__svg_g_11_Template","WindtendencyWidgetComponent__svg_g_12_Template","WindtendencyWidgetComponent__svg_g_13_Template","windTendency","ZonesWidgetComponent_Template","getWindWarnColor","directionOffsetPanomap","pivotPoint","hasValue","windValue","ActivatedRoute","IonInput","VideoBrowseModal","CKEditorService","ImageBrowseModal","Slide","MediaCenterSlidesService","CKEditorPage","ckEditorService","slidesService","activatedRoute","slideExists","slideNameIsEmpty","slideChanged","nameInput","CKEDITOR","customConfig","once","setEditor","slides$","templateUrl","setSlideData","editor","templates_files","slideChangedEvent","iframe","imgElements","showImageBrowseModal","videoElements","showVideoBrowseModal","zoomInElements","zoomOutElements","zoomDefaultElements","zoomDefault","contentDiv","changeObserver","MutationObserver","updateZoom","changeObserverConfig","childList","slideName","saveSlide","confirm","navigateToMediaCenter","iframeStyle","transformOrigin","overflow","slideNameChangedEvent","showSaveAsCopyModal","showSlideAlreadyExistsAlert","defaultStyle","ckEditorData","canEdit","requestHtmlFile","slideGuid","contentType","embeddedContentType","uploadSlide","parser","DOMParser","parseFromString","relativeTo","queryParamsHandling","onDidDismiss","insertHtml","encodeURI","videoUrl","videoWidth","videoHeight","_this5","_ref3","_x3","CKEditorPage_Query","CKEditorPage_Template_ion_input_keyup_3_listener","nameInput_r2","CKEditorPage_Template_sis_general_button_sisClick_7_listener","CKEditorPage_Template_sis_general_button_sisClick_9_listener","CKEditorPage_Template_sis_general_button_sisClick_11_listener","CKEditorPage_ng_container_14_Template","delayWhen","images","videos","imageThumbnails","convertingPrefix","failedPrefix","blobContainerService","blobUploadService","blobDeleteService","images$","getThumbnailFilePath","videos$","converting","conversionFailed","deletedImageResponse$","deletedVideoResponse$","fileSettings","parentFolder","deleteSingleFile","getThumbnailFileName","deleteFolder","uploadImage","thumbnailFile","generateThumbnail","URL","createObjectURL","uploadVideo","uploadAllThumbnails","image","createFile","dimensions","getHeightAndWidthFromUrl","getHeightAndWidthFromFile","boundBox","_this6","canvas","getContext","reject","onerror","crossOrigin","scaleRatio","w","h","drawImage","dataUrl","toDataURL","dataURLtoBlob","File","_this7","filteredBlobs","dataurl","arr","mime","bstr","atob","u8arr","Uint8Array","charCodeAt","Blob","fetch","MediaCenterConfigurationAdapter","infoBannerType","infoBannerMaxCharacters","MediaCenterInfoBannerType","ImageBrowseModal_ion_grid_9_sis_media_center_image_container_1_Template_sis_media_center_image_container_imageSelected_0_listener","imageSelected","image_r3","ImageBrowseModal_ion_grid_9_sis_media_center_image_container_1_Template","acceptedFileFormats","handleFileInput","files","toLocaleLowerCase","createAllThumbnails","ImageBrowseModal_Template","ImageBrowseModal_Template_ion_button_click_5_listener","ImageBrowseModal_div_8_Template","ImageBrowseModal_ion_grid_9_Template","ImageBrowseModal_Template_input_change_15_listener","resolution","ImageContainerComponent_ion_fab_8_Template_ion_button_click_1_listener","ImageContainerComponent","onImageSelected","ImageContainerComponent_Template","ImageContainerComponent_Template_ion_col_click_1_listener","ImageContainerComponent_img_2_Template","ImageContainerComponent_progress_3_Template","ImageContainerComponent_Template_ion_col_click_4_listener","ImageContainerComponent_ion_fab_7_Template","ImageContainerComponent_ion_fab_8_Template","MatAutocompleteModule","MediaCenterPage","MediaCenterPlaylistsComponent","PlaylistItemComponent","InfoBannerComponent","InfoBannerScreensSelectorComponent","InfoBannerTextComponent","MediaCenterScreensComponent","OperatinghourComponent","MediaCenterScreenGoupComponent","ScreeneditorComponent","MediaCenterSlidesComponent","TimeControlModalComponent","MediaCenterPlaylistsService","MediaCenterScreenService","tab_r3","count$","MediaCenterPage_ion_segment_1_Template_ion_segment_ionChange_0_listener","MediaCenterPage_ion_segment_1_ion_segment_button_1_Template","tabs","MediaCenterPage_ion_toolbar_4_ion_tab_button_2_Template_ion_tab_button_click_0_listener","tab_r5","i_r6","MediaCenterPage_ion_toolbar_4_ion_tab_button_2_Template","playlistsService","screensService","playlists","screensCount$","screens$","playlistCount$","playlists$","slidesCount$","bigScreenTabs","mobileScreenTabs","unsavedChanges$","setSelectedTab","urlAfterRedirects","lastUrlPart","MediaCenterPage_HostBindings","MediaCenterPage_beforeunload_HostBindingHandler","MediaCenterPage_ion_segment_1_Template","MediaCenterPage_ion_toolbar_4_Template","MediaCenterService","requestConfigurationUrl","configuration$","openSlideShowScreenPreview","screenLabel","screenWidth","screenHeight","previewUrl","infoBannerGuid","openSlideShowPreview","openSlideShowPlaylistPreview","playlistName","contentId","getScaledWindowDimensions","slideshowUrl","slideshowPlayerWebApp","configWidth","configHeight","screen","windowWidth","windowHeight","configRatio","screenRatio","MediaCenterNetworkStateAdapter","networkStates","MediaCenterNetworkStateService","networkStates$","Playlist","SlideMappingAdapter","fadeInEnabled","slideMappings","isEqual","MediaCenterPlaylistsComponent_ion_searchbar_4_Template_ion_searchbar_ionChange_0_listener","MediaCenterPlaylistsComponent_sis_logbook_button_8_Template_sis_logbook_button_click_0_listener","MediaCenterPlaylistsComponent_sis_general_button_11_Template_sis_general_button_sisClick_0_listener","insertNewPlaylist","expandedPlaylistGuid","newPlaylist","MediaCenterPlaylistsComponent_sis_media_center_playlist_item_16_Template_sis_media_center_playlist_item_removeNewPlaylist_0_listener","removeNewPlaylist","MediaCenterPlaylistsComponent_sis_media_center_playlist_item_17_Template_sis_media_center_playlist_item_toggleExpanded_0_listener","playlist_r7","MediaCenterPlaylistsComponent_sis_media_center_playlist_item_17_Template_sis_media_center_playlist_item_edited_0_listener","checkEdited","playlistService","anyPlaylistEditedAndUnsaved","filterPlaylists","playlistSearch","replaceUrl","readPermission","ownUpdateCompleted","scrollToElement","tagName","parentElement","itemGridContent","isNew","trackByPlaylistName","filteredPlaylists","playlistsFiltered","MediaCenterPlaylistsComponent_Query","MediaCenterPlaylistsComponent_ion_searchbar_4_Template","MediaCenterPlaylistsComponent_ion_spinner_6_Template","MediaCenterPlaylistsComponent_sis_logbook_button_8_Template","MediaCenterPlaylistsComponent_sis_general_button_11_Template","MediaCenterPlaylistsComponent_ion_row_12_Template","MediaCenterPlaylistsComponent_sis_media_center_playlist_item_16_Template","MediaCenterPlaylistsComponent_sis_media_center_playlist_item_17_Template","requestPlaylistUrl","updatePlaylistUrl","slideService","ownUpdateCompleted$","playlistsRequest$","inPlaylist","slideMapping","playlistUpdate$","handlePlaylistUpdate","updatePlaylist","deletePlaylist","assignedToScreen","deleting","updatedPlaylist","playlistEditCopy","PlaylistItemComponent_div_7_input_6_Template_input_ngModelChange_0_listener","PlaylistItemComponent_div_7_input_6_Template_input_click_0_listener","setEdited","PlaylistItemComponent_div_7_Template_div_click_0_listener","PlaylistItemComponent_div_7_Template_ion_checkbox_ngModelChange_4_listener","PlaylistItemComponent_div_7_Template_ion_checkbox_click_4_listener","PlaylistItemComponent_div_7_span_5_Template","PlaylistItemComponent_div_7_input_6_Template","PlaylistItemComponent_ion_col_8_Template_a_click_1_listener","PlaylistItemComponent_a_12_Template_a_click_0_listener","slide_r8","thumbnail","PlaylistItemComponent_ion_row_16_ion_row_21_ion_col_1_Template","PlaylistItemComponent_ion_row_16_ion_row_21_span_6_Template","PlaylistItemComponent_ion_row_16_ion_row_21_span_7_Template","PlaylistItemComponent_ion_row_16_ion_row_21_Template_a_click_13_listener","addSlideToPlaylist","disabledByTimeControl","fileType","PlaylistItemComponent_ion_row_16_ion_item_27_span_10_Template","PlaylistItemComponent_ion_row_16_ion_item_27_span_11_Template","PlaylistItemComponent_ion_row_16_ion_item_27_Template_input_keyup_13_listener","slideMapping_r10","durationInput","PlaylistItemComponent_ion_row_16_ion_item_27_Template_a_click_17_listener","removeSlideFromPlaylist","PlaylistItemComponent_ion_row_16_ion_item_27_ion_reorder_20_Template","PlaylistItemComponent_ion_row_16_ion_spinner_8_Template","PlaylistItemComponent_ion_row_16_Template_ion_searchbar_ionChange_10_listener","PlaylistItemComponent_ion_row_16_ion_row_21_Template","PlaylistItemComponent_ion_row_16_Template_ion_reorder_group_ionItemReorder_26_listener","doReorder","PlaylistItemComponent_ion_row_16_ion_item_27_Template","PlaylistItemComponent_ion_row_16_Template_sis_general_button_sisClick_31_listener","savePlaylist","PlaylistItemComponent_ion_row_16_Template_sis_general_button_sisClick_33_listener","cancel","slidesFiltered","invalidName","mediaCenterService","playlistRowClass","editPlaylistNameDisabled","daysArray","initialiseEditData","filterSlides","checkPlaylistName","mapping","editPlaylistName","playlistNameChanged","highestOrder","slideMappingToAdd","scrollPlaylistToBottom","filteredSlides","playlistScrollElement","scrollTop","scrollHeight","PlaylistItemComponent_Query","PlaylistItemComponent_Template_ion_row_click_1_listener","inputSelected","PlaylistItemComponent_Template_input_click_4_listener","PlaylistItemComponent_Template_input_focus_4_listener","PlaylistItemComponent_Template_input_blur_4_listener","PlaylistItemComponent_Template_input_ngModelChange_4_listener","PlaylistItemComponent_div_6_Template","PlaylistItemComponent_div_7_Template","PlaylistItemComponent_ion_col_8_Template","PlaylistItemComponent_a_12_Template","PlaylistItemComponent_ion_spinner_13_Template","PlaylistItemComponent_ion_row_16_Template","otherExpanded","MediaCenterRemoteAccessStatusAdapter","MediaCenterRemoteAccessStatusService","ScreenGroupAdapter","ScreenTypeAdapter","slideshowWidth","slideshowHeight","infoBannerAllowed","playlistGuid","ip","adaptRemoteAccess","continuousOperation","groupGuid","InfoBannerTextCategory","InfoBannerAdapter","screenGuids","textCategory","Position","InfoBannerScreenGroup","groupActive","newInfoBannerActive","InfoBannerService","InfoBannerScreensSelectorComponent_div_10_ng_container_7_ion_row_1_Template_ion_checkbox_ionChange_2_listener","group_r4","ignoreIonChangeEvent","selectAllScreensOfGroup","screen_r6","activeInfoBannerName","InfoBannerScreensSelectorComponent_div_10_ng_container_7_ng_container_2_Template_ion_checkbox_ionChange_3_listener","selectScreen","InfoBannerScreensSelectorComponent_div_10_ng_container_7_ng_container_2_ion_col_9_Template","activeInfoBannerGuid","InfoBannerScreensSelectorComponent_div_10_ng_container_7_ion_row_1_Template","InfoBannerScreensSelectorComponent_div_10_ng_container_7_ng_container_2_Template","InfoBannerScreensSelectorComponent_div_10_Template_ion_checkbox_ionChange_3_listener","selectAllScreens","InfoBannerScreensSelectorComponent_div_10_ng_container_7_Template","allGroupsSelected","screenGroups","infoBannerService","screenGroups$","infoBanner$","screenGroup","groupsWithScreens","infoBannerScreenGroup","activeInfoBanner","entryScreen","ignoreIonChange","checked","activatedInfoBannerMapping","flatMap","deactivatedInfoBannerMapping","updateInfoBannerMapping","closeInfoBannerModal","InfoBannerScreensSelectorComponent_Template","InfoBannerScreensSelectorComponent_Template_ion_button_click_5_listener","InfoBannerScreensSelectorComponent_div_9_Template","InfoBannerScreensSelectorComponent_div_10_Template","InfoBannerScreensSelectorComponent_Template_sis_general_button_sisClick_13_listener","InfoBannerScreensSelectorComponent_Template_sis_general_button_sisClick_15_listener","colorPicker","InfoBannerTextComponent_ion_grid_7_form_1_ng_container_1_input_13_Template_input_input_0_listener","onColorChange","tmp_4_0","editedInfoBanner","InfoBannerTextComponent_ion_grid_7_form_1_ng_container_1_ion_checkbox_9_Template","InfoBannerTextComponent_ion_grid_7_form_1_ng_container_1_input_13_Template","InfoBannerTextComponent_ion_grid_7_form_1_ng_container_1_Template_ion_checkbox_ionChange_16_listener","checkboxValueChangedScreenMode","InfoBannerTextComponent_ion_grid_7_form_1_ng_container_1_ng_container_20_Template","infoBannerTextSettingsForm","backgroundColorChecked","fullscreenMode","control_r5","formControlName","textCounter","InfoBannerTextComponent_ion_grid_7_form_1_ng_container_2_ion_col_9_Template","InfoBannerTextComponent_ion_grid_7_form_1_ng_container_2_ion_select_option_12_Template","InfoBannerTextComponent_ion_grid_7_form_1_ng_container_2_ion_row_13_Template","editorType","textCategories","languageTextControls","InfoBannerTextComponent_ion_grid_7_form_1_ng_container_1_Template","InfoBannerTextComponent_ion_grid_7_form_1_ng_container_2_Template","InfoBannerTextComponent_ion_grid_7_form_1_Template","btnIsDisabled","textCategoryKeys","Full","htmlContent","htmlContentValidator","minLength","contentDocument","body","maxLengthValidatorFn","removeValidators","maxLength","addValidators","updateValueAndValidity","infobannerChangedEvent","bodyStyle","updateInfoBanner","bannerType","WYSIWYG","screenLocation","InfoBannerTextComponent_Template","InfoBannerTextComponent_Template_ion_button_click_4_listener","InfoBannerTextComponent_ion_grid_7_Template","InfoBannerTextComponent_Template_sis_general_button_sisClick_10_listener","InfoBannerTextComponent_Template_sis_general_button_sisClick_11_listener","infoBanner_r4","screenLocations","InfoBannerComponent_ion_grid_8_ion_row_16_a_10_Template_a_click_0_listener","InfoBannerComponent_ion_grid_8_ion_row_16_a_12_Template_a_click_0_listener","openTextModal","infoBannerWritePermission","InfoBannerComponent_ion_grid_8_ion_row_16_a_14_Template_a_click_0_listener","deleteInfoBanner","InfoBannerComponent_ion_grid_8_ion_row_16_Template_span_click_4_listener","selectInfoBanner","InfoBannerComponent_ion_grid_8_ion_row_16_a_6_Template","InfoBannerComponent_ion_grid_8_ion_row_16_span_8_Template","InfoBannerComponent_ion_grid_8_ion_row_16_a_10_Template","InfoBannerComponent_ion_grid_8_ion_row_16_a_12_Template","InfoBannerComponent_ion_grid_8_ion_row_16_a_14_Template","showBannerPosition","showPreviewButton","InfoBannerComponent_ion_grid_8_Template_ion_searchbar_ionChange_3_listener","InfoBannerComponent_ion_grid_8_ion_spinner_6_Template","InfoBannerComponent_ion_grid_8_Template_sis_general_button_sisClick_8_listener","InfoBannerComponent_ion_grid_8_Template_ion_radio_group_ngModelChange_11_listener","selectedInfoBanner","InfoBannerComponent_ion_grid_8_ion_spinner_15_Template","InfoBannerComponent_ion_grid_8_ion_row_16_Template","InfoBannerComponent_ion_grid_9_Template_ion_searchbar_ionChange_3_listener","InfoBannerComponent_ion_grid_9_ion_col_5_Template","infoBanner_r11","InfoBannerComponent_ion_grid_10_ion_row_6_Template_span_click_4_listener","InfoBannerComponent_ion_grid_10_ion_row_6_a_6_Template","InfoBannerComponent_ion_grid_10_ion_row_6_span_8_Template","InfoBannerComponent_ion_grid_10_Template_ion_radio_group_ngModelChange_2_listener","InfoBannerComponent_ion_grid_10_ion_spinner_5_Template","InfoBannerComponent_ion_grid_10_ion_row_6_Template","SISMEDIA_MEDIACENTER_INFOBANNER","allScreensOfTenant","joinScreenLocations","PlainText","screenGuid","screenWithInfoBanner","openScreensSelectorModal","InfoBannerComponent_Template","InfoBannerComponent_Template_ion_button_click_5_listener","InfoBannerComponent_ion_grid_8_Template","InfoBannerComponent_ion_grid_9_Template","InfoBannerComponent_ion_grid_10_Template","InfoBannerComponent_Template_sis_general_button_sisClick_13_listener","InfoBannerComponent_Template_sis_general_button_sisClick_14_listener","requestInfoBannersUrl","updateInfoBannerUrl","updateInfoBannerMappingUrl","infoBannerRequest$","infoBannerUpdate$","updatedInfoBanner","infoBannerMappingUpdate$","infoBannerMaping","updateMappings","MediaCenterScreensComponent_ng_container_1_sis_logbook_button_10_Template_sis_logbook_button_click_0_listener","MediaCenterScreensComponent_ng_container_1_ion_col_12_ion_chip_1_Template_ion_chip_click_0_listener","MediaCenterScreensComponent_ng_container_1_ion_col_12_ion_chip_2_Template_ion_chip_click_0_listener","onReorderSaveClick","MediaCenterScreensComponent_ng_container_1_ion_col_12_ion_chip_3_Template_ion_chip_click_0_listener","MediaCenterScreensComponent_ng_container_1_ion_col_12_ion_chip_1_Template","MediaCenterScreensComponent_ng_container_1_ion_col_12_ion_chip_2_Template","MediaCenterScreensComponent_ng_container_1_ion_col_12_ion_chip_3_Template","MediaCenterScreensComponent_ng_container_1_ion_row_15_ion_col_20_Template","infoBannerReadPermission","screenGroup_r7","openEditscreen","MediaCenterScreensComponent_ng_container_1_ion_grid_17_sis_media_center_screen_group_1_Template","MediaCenterScreensComponent_ng_container_1_Template_ion_searchbar_ionChange_4_listener","MediaCenterScreensComponent_ng_container_1_ion_spinner_7_Template","MediaCenterScreensComponent_ng_container_1_sis_logbook_button_10_Template","MediaCenterScreensComponent_ng_container_1_ion_col_12_Template","MediaCenterScreensComponent_ng_container_1_Template_sis_general_button_sisClick_14_listener","MediaCenterScreensComponent_ng_container_1_ion_row_15_Template","MediaCenterScreensComponent_ng_container_1_ion_row_16_Template","MediaCenterScreensComponent_ng_container_1_ion_grid_17_Template","filteredScreens$","MediaCenterScreensComponent_ng_container_3_sis_logbook_button_12_Template_sis_logbook_button_click_0_listener","screenGroup_r10","MediaCenterScreensComponent_ng_container_3_ion_grid_14_sis_media_center_screen_group_2_Template","MediaCenterScreensComponent_ng_container_3_Template_sis_general_button_sisClick_4_listener","MediaCenterScreensComponent_ng_container_3_Template_ion_searchbar_ionChange_7_listener","MediaCenterScreensComponent_ng_container_3_ion_spinner_10_Template","MediaCenterScreensComponent_ng_container_3_sis_logbook_button_12_Template","MediaCenterScreensComponent_ng_container_3_ion_grid_14_Template","screenSearch","filterScreens","screenOrders","reorderedScreens","updateScreens","screenLabels","screenNames","allScreenLabels","allScreenNames","MediaCenterScreensComponent_Template","MediaCenterScreensComponent_ng_container_1_Template","MediaCenterScreensComponent_ng_container_3_Template","requestScreensUrl","updateScreenUrl","requestScreenTypesUrl","requestScreenGroupsUrl","networkStateService","searchTerm$","screenTypes$","types","screensRequest$","screenTypes","screenTypeName","connectionStatus","statuses","remoteAccessOnline","screenUpdate$","updatedScreen","screenType","hasInfoBannerMapping","infoBannerName","screenGroupsRequest$","defaultGroup","deleteScreen","editedScreen","initStartTime","initEndTime","continuousOperationChanged","OperatinghourComponent_Template","OperatinghourComponent_Template_ion_button_click_5_listener","OperatinghourComponent_Template_ion_checkbox_ionChange_15_listener","OperatinghourComponent_Template_sis_general_button_sisClick_28_listener","OperatinghourComponent_Template_sis_general_button_sisClick_30_listener","screen_r4","item_r5","MediaCenterScreenGoupComponent_ng_container_1_ion_reorder_2_ng_container_19_a_2_Template_a_click_0_listener","openOperatinghourModal","MediaCenterScreenGoupComponent_ng_container_1_ion_reorder_2_ng_container_19_a_8_Template_a_click_0_listener","MediaCenterScreenGoupComponent_ng_container_1_ion_reorder_2_ng_container_19_a_10_Template_a_click_0_listener","openInfoBannerModal","MediaCenterScreenGoupComponent_ng_container_1_ion_reorder_2_ng_container_19_a_13_Template_a_click_0_listener","MediaCenterScreenGoupComponent_ng_container_1_ion_reorder_2_ng_container_19_a_16_Template_a_click_0_listener","copyUrl","MediaCenterScreenGoupComponent_ng_container_1_ion_reorder_2_ng_container_19_a_19_Template_a_click_0_listener","MediaCenterScreenGoupComponent_ng_container_1_ion_reorder_2_ng_container_19_a_20_Template_a_click_0_listener","MediaCenterScreenGoupComponent_ng_container_1_ion_reorder_2_ng_container_19_a_2_Template","MediaCenterScreenGoupComponent_ng_container_1_ion_reorder_2_ng_container_19_ion_icon_4_Template","MediaCenterScreenGoupComponent_ng_container_1_ion_reorder_2_ng_container_19_ion_icon_5_Template","MediaCenterScreenGoupComponent_ng_container_1_ion_reorder_2_ng_container_19_div_6_Template","MediaCenterScreenGoupComponent_ng_container_1_ion_reorder_2_ng_container_19_a_8_Template","MediaCenterScreenGoupComponent_ng_container_1_ion_reorder_2_ng_container_19_a_10_Template","MediaCenterScreenGoupComponent_ng_container_1_ion_reorder_2_ng_container_19_ion_spinner_11_Template","MediaCenterScreenGoupComponent_ng_container_1_ion_reorder_2_ng_container_19_a_13_Template","MediaCenterScreenGoupComponent_ng_container_1_ion_reorder_2_ng_container_19_ion_spinner_14_Template","MediaCenterScreenGoupComponent_ng_container_1_ion_reorder_2_ng_container_19_a_16_Template","MediaCenterScreenGoupComponent_ng_container_1_ion_reorder_2_ng_container_19_ion_spinner_17_Template","MediaCenterScreenGoupComponent_ng_container_1_ion_reorder_2_ng_container_19_a_19_Template","MediaCenterScreenGoupComponent_ng_container_1_ion_reorder_2_ng_container_19_a_20_Template","MediaCenterScreenGoupComponent_ng_container_1_ion_reorder_2_ng_container_19_ion_spinner_21_Template","MediaCenterScreenGoupComponent_ng_container_1_ion_reorder_2_span_12_Template","MediaCenterScreenGoupComponent_ng_container_1_ion_reorder_2_ng_template_13_Template","MediaCenterScreenGoupComponent_ng_container_1_ion_reorder_2_Template_ion_select_ngModelChange_16_listener","selectPlaylist","MediaCenterScreenGoupComponent_ng_container_1_ion_reorder_2_ion_select_option_18_Template","MediaCenterScreenGoupComponent_ng_container_1_ion_reorder_2_ng_container_19_Template","MediaCenterScreenGoupComponent_ng_container_1_ion_reorder_2_ng_container_20_Template","noResolution_r13","MediaCenterScreenGoupComponent_ng_container_1_Template_ion_reorder_group_ionItemReorder_1_listener","MediaCenterScreenGoupComponent_ng_container_1_ion_reorder_2_Template","MediaCenterScreenGoupComponent_ng_container_3_ion_row_1_a_4_Template_a_click_0_listener","_r16","screen_r15","MediaCenterScreenGoupComponent_ng_container_3_ion_row_1_a_6_Template_a_click_0_listener","MediaCenterScreenGoupComponent_ng_container_3_ion_row_1_a_8_Template_a_click_0_listener","_r18","MediaCenterScreenGoupComponent_ng_container_3_ion_row_1_Template_ion_col_click_1_listener","_r14","MediaCenterScreenGoupComponent_ng_container_3_ion_row_1_a_4_Template","MediaCenterScreenGoupComponent_ng_container_3_ion_row_1_a_6_Template","MediaCenterScreenGoupComponent_ng_container_3_ion_row_1_a_8_Template","MediaCenterScreenGoupComponent_ng_container_3_ion_row_1_Template","MediaCenterScreenGoupComponent_Template","MediaCenterScreenGoupComponent_ion_row_0_Template","MediaCenterScreenGoupComponent_ng_container_1_Template","MediaCenterScreenGoupComponent_ng_container_3_Template","MatAutocompleteTrigger","group_r2","playlist_r3","screenType_r4","showInfoBannerAllowedCheckbox","isNewScreen","groupsFiltered","screenTypesFiltered","infoBannerFeatureAccessLevel","option","selectGroup","selectScreenType","updateFilter","filterString","controlName","removeSelection","autocompleteTrigger","autocomplete","o","deselect","markAsDirty","formatInputValue","inputValue","ScreeneditorComponent_Query","ScreeneditorComponent_Template_ion_button_click_6_listener","ScreeneditorComponent_Template_input_ngModelChange_56_listener","ScreeneditorComponent_Template_mat_autocomplete_optionSelected_57_listener","ScreeneditorComponent_mat_option_59_Template","ScreeneditorComponent_Template_ion_col_click_60_listener","ScreeneditorComponent_Template_input_ngModelChange_67_listener","ScreeneditorComponent_Template_mat_autocomplete_optionSelected_68_listener","ScreeneditorComponent_mat_option_70_Template","ScreeneditorComponent_Template_ion_col_click_71_listener","ScreeneditorComponent_Template_input_ngModelChange_84_listener","ScreeneditorComponent_Template_mat_autocomplete_optionSelected_85_listener","ScreeneditorComponent_mat_option_87_Template","ScreeneditorComponent_Template_ion_col_click_88_listener","ScreeneditorComponent_ion_row_90_Template","ScreeneditorComponent_Template_sis_general_button_sisClick_93_listener","ScreeneditorComponent_Template_sis_general_button_sisClick_95_listener","autoGroup_r5","autoPlaylist_r6","autoScreenType_r7","startDate","endDate","timeControlEnabled","mon","tue","wed","thu","fri","sat","sun","areSlidesEqual","s1","s2","internalThumbnailUrl","MediaCenterSlidesComponent_ion_grid_1_sis_logbook_button_8_Template_sis_logbook_button_click_0_listener","MediaCenterSlidesComponent_ion_grid_1_ion_select_14_Template_ion_select_ionChange_0_listener","updateQueryParam","MediaCenterSlidesComponent_ion_grid_1_ion_select_14_Template_ion_select_ngModelChange_0_listener","selectedActivity","MediaCenterSlidesComponent_ion_grid_1_ion_select_22_Template_ion_select_ionChange_0_listener","MediaCenterSlidesComponent_ion_grid_1_ion_select_22_Template_ion_select_ngModelChange_0_listener","selectedType","MediaCenterSlidesComponent_ion_grid_1_Template_ion_searchbar_ionChange_3_listener","MediaCenterSlidesComponent_ion_grid_1_ion_spinner_6_Template","MediaCenterSlidesComponent_ion_grid_1_sis_logbook_button_8_Template","MediaCenterSlidesComponent_ion_grid_1_Template_sis_general_button_sisClick_11_listener","openEditor","MediaCenterSlidesComponent_ion_grid_1_ion_select_14_Template","MediaCenterSlidesComponent_ion_grid_1_ion_select_22_Template","MediaCenterSlidesComponent_ion_grid_2_ion_row_2_ion_checkbox_2_Template_ion_checkbox_click_0_listener","enabledInput","MediaCenterSlidesComponent_ion_grid_2_ion_row_2_a_19_Template_a_click_0_listener","MediaCenterSlidesComponent_ion_grid_2_ion_row_2_a_20_Template_a_click_0_listener","deleteSlide","MediaCenterSlidesComponent_ion_grid_2_ion_row_2_ion_checkbox_2_Template","MediaCenterSlidesComponent_ion_grid_2_ion_row_2_ion_spinner_3_Template","MediaCenterSlidesComponent_ion_grid_2_ion_row_2_Template_ion_col_click_4_listener","MediaCenterSlidesComponent_ion_grid_2_ion_row_2_Template_ion_col_click_6_listener","MediaCenterSlidesComponent_ion_grid_2_ion_row_2_Template_a_click_11_listener","openTimeControlModal","MediaCenterSlidesComponent_ion_grid_2_ion_row_2_Template_input_keyup_16_listener","MediaCenterSlidesComponent_ion_grid_2_ion_row_2_a_19_Template","MediaCenterSlidesComponent_ion_grid_2_ion_row_2_a_20_Template","MediaCenterSlidesComponent_ion_grid_2_ion_row_2_ion_spinner_21_Template","ɵɵpureFunction4","MediaCenterSlidesComponent_ion_grid_2_ion_row_2_Template","MediaCenterSlidesComponent_ion_grid_3_sis_logbook_button_8_Template_sis_logbook_button_click_0_listener","MediaCenterSlidesComponent_ion_grid_3_Template_ion_searchbar_ionChange_3_listener","MediaCenterSlidesComponent_ion_grid_3_ion_spinner_6_Template","MediaCenterSlidesComponent_ion_grid_3_sis_logbook_button_8_Template","MediaCenterSlidesComponent_ion_grid_4_ion_row_2_ion_checkbox_17_Template_ion_checkbox_click_0_listener","_r15","slide_r14","MediaCenterSlidesComponent_ion_grid_4_ion_row_2_Template_ion_col_click_4_listener","MediaCenterSlidesComponent_ion_grid_4_ion_row_2_Template_ion_col_click_8_listener","MediaCenterSlidesComponent_ion_grid_4_ion_row_2_ion_checkbox_17_Template","MediaCenterSlidesComponent_ion_grid_4_ion_row_2_ion_spinner_18_Template","MediaCenterSlidesComponent_ion_grid_4_ion_row_2_Template_input_keyup_25_listener","MediaCenterSlidesComponent_ion_grid_4_ion_row_2_Template","inputValuesChanged$","updatedFileSettings","saveSlideUpdate","slideSearch","compareWith","param","updatedSlide","updateSlide","MediaCenterSlidesComponent_Template","MediaCenterSlidesComponent_ion_grid_1_Template","MediaCenterSlidesComponent_ion_grid_2_Template","MediaCenterSlidesComponent_ion_grid_3_Template","MediaCenterSlidesComponent_ion_grid_4_Template","NEVER","findIana","requestSlidesUrl","settingsSlideUrl","uploadSlideUrl","deleteSlideUrl","slidesRequest$","slideUpdate$","thumbnailUpdate$","addRandomString","slidesMerged$","slidesTimeControlEnabledUpdate$","timeZoneIANA","tz","currentDay","isoWeekday","dateNow","timeNow","slideActiveThisWeekday","slideActiveToday","slideActiveTimeOfDay","isTimeActive","isMediaCenterPage","dateTimesInvalid","endDateTimeInvalid","setDateTime","slideEdit","checkForChanges","setEnabledStates","startControl","endControl","setFullYear","atLeastOneWeekdayEnabled","isResetable","TimeControlModalComponent_Template","TimeControlModalComponent_Template_ion_button_click_2_listener","TimeControlModalComponent_ion_grid_8_Template","TimeControlModalComponent_Template_sis_general_button_sisClick_11_listener","TimeControlModalComponent_Template_sis_general_button_sisClick_12_listener","VideoBrowseModal_ion_item_8_div_3_ion_grid_1_Template","VideoBrowseModal_ion_item_8_div_3_ion_grid_2_Template","VideoBrowseModal_ion_item_8_ion_fab_8_Template_ion_button_click_1_listener","VideoBrowseModal_ion_item_8_Template_ion_item_click_0_listener","videoSelected","VideoBrowseModal_ion_item_8_div_1_Template","VideoBrowseModal_ion_item_8_div_2_Template","VideoBrowseModal_ion_item_8_div_3_Template","VideoBrowseModal_ion_item_8_ion_fab_7_Template","VideoBrowseModal_ion_item_8_ion_fab_8_Template","maxDisplayedFileSizeBytes","presentConfirmationDialog","fileNamePattern","video","VideoBrowseModal_Template","VideoBrowseModal_Template_ion_button_click_4_listener","VideoBrowseModal_div_7_Template","VideoBrowseModal_ion_item_8_Template","VideoBrowseModal_Template_input_change_13_listener","altitude","latestSnowfallUtc","latestSnowfall","snowDepth","freshSnow","avalancheDangerLevel","snowConditionId","slopeConditionId","hasSTnetExport","hasWeatherImport","weather","MeteoInfoAdapter","stnetStatusArray","meteoInfos","sTnetStatusList","MeteoInfoFieldNames","showWeatherImportRows","meteoInfoItemsInRow","MeteoInfoFieldNames_Template","MeteoInfoFieldNames_ion_row_3_Template","MeteoInfoFieldNames_span_16_Template","MeteoInfoFieldNames_span_21_Template","MeteoInfoFieldNames_span_26_Template","skip","weatherIconUrl","MeteoInfoItemComponent_ion_select_31_ion_select_option_1_Template","avalancheLevel","MeteoInfoItemComponent_ion_select_34_ion_select_option_1_Template","slopeCondition","MeteoInfoItemComponent_ion_select_37_ion_select_option_1_Template","snowCondition","MeteoInfoItemComponent","formDataValid","meteoInfoItem","formControls","meteoInfoDisplayedItem","screenMode","otherItem","different","MeteoInfoItemComponent_Template","MeteoInfoItemComponent_ion_row_4_Template","MeteoInfoItemComponent_ion_select_31_Template","MeteoInfoItemComponent_ion_select_34_Template","MeteoInfoItemComponent_ion_select_37_Template","MeteoInfoPage","MeteoInfoService","MeteoInfoPage_ng_container_3_ion_row_1_ion_col_3_Template_sis_meteo_info_item_formDataValid_1_listener","n_r6","ctx_r6","onFormDataValid","MeteoInfoPage_ng_container_3_ion_row_1_ion_col_3_Template_sis_meteo_info_item_formDataModified_1_listener","displayedMeteoInfoItems","editable","MeteoInfoPage_ng_container_3_ion_row_1_ion_col_3_Template","MeteoInfoPage_ng_container_3_sis_general_button_11_Template_sis_general_button_sisClick_0_listener","exportSTnetData","status_r9","MeteoInfoPage_ng_container_3_ion_row_12_span_5_Template","MeteoInfoPage_ng_container_3_ion_row_12_ion_spinner_6_Template","MeteoInfoPage_ng_container_3_ion_row_1_Template","MeteoInfoPage_ng_container_3_ion_col_6_Template","MeteoInfoPage_ng_container_3_Template_sis_general_button_sisClick_9_listener","MeteoInfoPage_ng_container_3_Template_sis_general_button_sisClick_10_listener","MeteoInfoPage_ng_container_3_sis_general_button_11_Template","MeteoInfoPage_ng_container_3_ion_row_12_Template","allItemsValid","anyItemEdited","showSTnetButton","meteoInfoService","displayedMeteoInfoItems$","validIds","modifiedIds","allItemsValid$","anyItemEdited$","resetDisplayedMeteoInfoItems","allItems","accumulator","stnetStatusArray$","saveMeteoInfoItems","exportSTnetMeteoInfoItems","copies","meteoInfo","MeteoInfoPage_Template","MeteoInfoPage_div_2_Template","MeteoInfoPage_ng_container_3_Template","baseSTnetUrl","stnetStatusArrayUpdate$","meteoInfo$","updatedEventItem","stnetUpdate","updatedStatus","exportResponses","successResponses","requestStatus","OperatingInfoTextAdapter","priority","OperatingInfoRequestDataAdapter","libraryEntries","priorities","getPriorities","defaultTitles","getDefaultTitles","description","defaultTitle","language","texts","OperatingInfoInfoScreenComponent","OperatingInfoInfoScreenComponent_Template","OperatingInfoInfoScreenComponent_Template_ion_button_click_2_listener","OperatingInfoService","OperatingInfoEntryEditComponent","OperatingInfoItemComponent_ion_col_11_Template_a_click_4_listener","OperatingInfoItemComponent_ion_col_11_Template_a_click_9_listener","OperatingInfoItemComponent","operatingInfoService","OperatingInfoItemComponent_Template","OperatingInfoItemComponent_ion_col_11_Template","OperatingInfoPage","OperatingInfoPage_qrcode_10_Template_qrcode_click_0_listener","openOperatingInfo","OperatingInfoPage_ion_col_11_Template_a_click_1_listener","changed","libraryEntry","subUrl$","subUrl","selectedOperatingInfoLibraryEntry","externalWindow","OperatingInfoPage_Template","OperatingInfoPage_Template_ion_radio_group_ngModelChange_5_listener","OperatingInfoPage_ion_item_6_Template","OperatingInfoPage_qrcode_10_Template","OperatingInfoPage_ion_col_11_Template","OperatingInfoPage_Template_sis_general_button_sisClick_14_listener","OperatingInfoPage_Template_sis_general_button_sisClick_15_listener","OperatingInfoPage_Template_sis_general_button_sisClick_16_listener","dataRequestUrl","updating$","operatingInfoRequestData$","activeTextUpdate$","operatingInfo","OperatingInfoLibraryEntry","OperatingInfoEntries","priority_r3","OperatingInfoEntryEditComponent_ion_grid_7_Template_ion_radio_group_ngModelChange_25_listener","OperatingInfoEntryEditComponent_ion_grid_7_ion_item_26_Template","priority_r5","OperatingInfoEntryEditComponent_ion_grid_8_Template_ion_radio_group_ngModelChange_29_listener","OperatingInfoEntryEditComponent_ion_grid_8_ion_item_30_Template","descriptionDe","hasDefaultTitle","setFormValues","OperatingInfoEntryEditComponent_Template","OperatingInfoEntryEditComponent_Template_ion_button_click_2_listener","OperatingInfoEntryEditComponent_ion_title_4_Template","OperatingInfoEntryEditComponent_ion_title_5_Template","OperatingInfoEntryEditComponent_ion_grid_7_Template","OperatingInfoEntryEditComponent_ion_grid_8_Template","OperatingInfoEntryEditComponent_Template_sis_general_button_sisClick_11_listener","OperatingInfoEntryEditComponent_Template_sis_general_button_sisClick_12_listener","ParkingSetting","ParkingStatus","Parking","ParkingAdapter","cockpitOrder","nameEn","custom","occupancyOffset","maxCapacity","autoUpdate","autoStatus","iconOptions","parkingStatus","Disabled","colorDisabledClassName","colorEnabledClassName","tooltipTranslationString","dataTestString","Closed","Free","exportMappings","occupancy","ParkingService","exportService","parkingsRequest$","parkingStatusUpdated$","parkings","handleStatusUpdatedEvent","parkingUpdated$","handleEditedEvent","exportMappingUpdated$","handleExportMappingUpdatedEvent","parkingCockpitOrderUpdated$","handleCockpitOrderUpdatedEvent","parkingCurrentOccupancyUpdated$","handleCurrentOccupancyUpdatedEvent","parkings$","updateStatus","createErrorEvent","editParking","postExportMappings","parking","changedby","updatedItem","eventParking","updatedParking","ParkingEditModalComponent_form_8_ion_grid_1_Template_span_click_40_listener","ParkingEditModalComponent_form_8_ion_grid_3_Template_span_click_45_listener","ParkingEditModalComponent_form_8_ion_grid_1_Template","ParkingEditModalComponent_form_8_ion_grid_3_Template","ParkingEditModalComponent","parkingService","editedParking","ParkingEditModalComponent_Template","ParkingEditModalComponent_Template_ion_button_click_2_listener","ParkingEditModalComponent_form_8_Template","ParkingEditModalComponent_Template_sis_general_button_sisClick_11_listener","ParkingEditModalComponent_Template_sis_general_button_sisClick_13_listener","ParkingExportsEditModalComponent_ion_grid_8_ion_row_5_Template_ion_row_click_0_listener","toggleExport","export","ParkingExportsEditModalComponent_ion_grid_8_ion_row_5_Template","selectableExports","ParkingExportsEditModalComponent","tenantExports","ParkingExportsEditModalComponent_Template","ParkingExportsEditModalComponent_Template_ion_button_click_5_listener","ParkingExportsEditModalComponent_ion_grid_8_Template","ParkingExportsEditModalComponent_Template_sis_general_button_sisClick_11_listener","ParkingExportsEditModalComponent_Template_sis_general_button_sisClick_12_listener","ParkingOccupancyModalComponent","ParkingItemComponent_ion_row_0_ion_col_3_ion_icon_1_Template_ion_icon_click_0_listener","options_r2","iconClick","activeClasses","ParkingItemComponent_ion_row_0_ion_col_3_ion_icon_1_Template","ParkingItemComponent_ion_row_0_ion_col_4_ion_spinner_1_Template","ParkingItemComponent_ion_row_0_ion_col_5_Template_ion_col_click_0_listener","openOccupancyEditModal","currentOccupancyTooltipText","ParkingItemComponent_ion_row_0_ion_col_14_ion_icon_1_Template","ParkingItemComponent_ion_row_0_ion_col_15_Template_ion_icon_click_1_listener","openExportsEditModal","hasExportsEditPermission","hasExports","exportTooltipText","ParkingItemComponent_ion_row_0_ion_col_16_Template_ion_icon_click_1_listener","ParkingItemComponent_ion_row_0_ion_col_3_Template","ParkingItemComponent_ion_row_0_ion_col_4_Template","ParkingItemComponent_ion_row_0_ion_col_5_Template","ParkingItemComponent_ion_row_0_ion_col_6_Template","ParkingItemComponent_ion_row_0_ion_col_14_Template","ParkingItemComponent_ion_row_0_ion_col_15_Template","ParkingItemComponent_ion_row_0_ion_col_16_Template","isStatusUpdating","showingLabelLength","showInfoCol","ParkingItemComponent_ion_row_1_ion_col_3_ion_icon_1_Template_ion_icon_click_0_listener","options_r9","getStatusIconClasses","ParkingItemComponent_ion_row_1_ion_col_3_ion_icon_1_Template","ParkingItemComponent_ion_row_1_ion_col_5_Template_ion_col_click_0_listener","ParkingItemComponent_ion_row_1_Template_ion_row_press_0_listener","ParkingItemComponent_ion_row_1_ion_col_3_Template","ParkingItemComponent_ion_row_1_ion_col_4_Template","ParkingItemComponent_ion_row_1_ion_col_5_Template","ParkingItemComponent_ion_row_1_ion_col_6_Template","ParkingItemComponent_ion_row_1_Template_ion_row_click_9_listener","ParkingItemComponent","letterWidthMobileView","letterWidthDesktopView","translationService","baseUrlPublicBlobStorage","buildOccupancyTooltipText","labelLength","statusIconClasses","ParkingItemComponent_Template","ParkingItemComponent_ion_row_0_Template","ParkingItemComponent_ion_row_1_Template","ParkingOccupancyModalComponent_form_7_ion_grid_1_ion_row_20_Template","ParkingOccupancyModalComponent_form_7_ion_grid_3_ion_row_24_Template","ParkingOccupancyModalComponent_form_7_ion_grid_3_ion_row_25_Template","ParkingOccupancyModalComponent_form_7_ion_grid_1_Template","ParkingOccupancyModalComponent_form_7_ion_grid_3_Template","setErrors","ParkingOccupancyModalComponent_Template","ParkingOccupancyModalComponent_Template_ion_button_click_2_listener","ParkingOccupancyModalComponent_form_7_Template","ParkingOccupancyModalComponent_Template_sis_general_button_sisClick_10_listener","ParkingOccupancyModalComponent_Template_sis_general_button_sisClick_12_listener","ParkingPage","ParkingPage_ion_grid_0_ion_item_7_Template_sis_parking_item_lastChange_2_listener","anyItemHasInfo","labelMaxLength","ParkingPage_ion_grid_0_Template_sis_page_title_onReorderClick_1_listener","ParkingPage_ion_grid_0_Template_sis_page_title_onReorderCancelClick_1_listener","ParkingPage_ion_grid_0_Template_ion_reorder_group_ionItemReorder_6_listener","ParkingPage_ion_grid_0_ion_item_7_Template","ParkingPage_ion_grid_0_ion_col_9_Template","hasEditPermission","ParkingPage_ion_grid_2_sis_parking_item_3_Template_sis_parking_item_lastChange_0_listener","item_r8","ParkingPage_ion_grid_2_Template_sis_page_title_onReorderClick_1_listener","ParkingPage_ion_grid_2_Template_sis_page_title_onReorderCancelClick_1_listener","ParkingPage_ion_grid_2_Template_sis_page_title_openEditModal_1_listener","ParkingPage_ion_grid_2_sis_parking_item_3_Template","ParkingPage_ion_grid_2_ion_col_5_Template","sortItems","reorderEnabled$","editWriteFeature","reorderEnabled","containsSearchStringInNameOrLabel","updateLabelMaxLength","containsItemsWithInfo","setLastChange","reorderedItems","itemOrders","lastChangedItem","ParkingPage_Template","ParkingPage_ion_grid_0_Template","ParkingPage_ion_grid_2_Template","AccessType","ConnectionParameter","STATUS_OK","STATUS_ERROR","CdkPortal","DomPortalOutlet","ApplicationRef","ComponentFactoryResolver","RFB","RemoteAccessComponent_ng_container_0_div_1_Template","connecting","remoteAccessDivId","componentFactoryResolver","applicationRef","defaultExternalWindowWidth","defaultExternalWindowHeight","onWindowUnloadFn","externalWindowNoVncAccess","externalWindowHttpAccess","remoteAccessConnectionParameter$","requiredFeatureForWriteAccess","connectionParameter","viewOnly","VNC","startVNCClient","host","port","siscose","HTTP","startHTTPClient","showRemoteAccessWindow$","show","remoteAccessAgentId","focus","createAndAttachExternalWindowNoVnc","externalWindowDimensions","getAvailableWindowDimensions","encodedPassword","password","getTarget","closeSession","rfb","credentials","scaleWindowContent","clean","pushConnectionErrorUserMessage","margin","attach","portal","windowContent","getElementsByTagName","innerWidth","scaleViewport","browserTitleBarHeight","RemoteAccessComponent_Query","RemoteAccessComponent_ng_container_0_Template","lastValueFrom","_showRemoteAccessWindow$","_remoteAccessConnectionParameter$","connectedAgentId","showRemoteAccess","alertMessageResolved","statusError","lastToast","insertRemoteAccessDisconnectedLog","EditTokenAdapter","editTokens","areaUrlName","season","editToken","response_r1","GatewayResponseBoxComponent_ion_row_0_ion_row_4_ion_col_1_Template","row_r3","GatewayResponseBoxComponent_ion_row_0_ion_row_4_Template","rowsOfResponses","GatewayResponseBoxComponent","gatewayResponses","numberOfRows","GatewayResponseBoxComponent_Template","GatewayResponseBoxComponent_ion_row_0_Template","SisagAdminPage","SisMapEditTokenComponent","SisagAdminPage_ion_card_content_29_Template_sis_general_button_sisClick_20_listener","uploadGatewayUpdateScript","updateGatewayUpdateScriptResponses","restartGatewaysResponses","SisagAdminPage_ion_card_content_37_Template_sis_general_button_sisClick_13_listener","restartGateway","SisagAdminPage_ion_card_content_37_sis_gateway_response_box_15_Template","gatewayIdsInvalid$","canRestartGateways","mapGuid","getGatewayIdsString","canManageGateways","initializeSisMapAssetStatus","MapGuid","gatewayIdsString","gatewayIds","SisagAdminPage_Template","SisagAdminPage_sis_sismap_edit_token_1_Template","SisagAdminPage_Template_sis_general_button_sisClick_21_listener","SisagAdminPage_ion_card_subtitle_28_Template","SisagAdminPage_ion_card_content_29_Template","SisagAdminPage_ion_card_subtitle_36_Template","SisagAdminPage_ion_card_content_37_Template","SisagAdminService","editTokenRequest$","editTokenUpdated$","currentEditTokens","oldEditToken","editTokens$","insertOrDeleteEditToken","editTokenPost","mapName","SisMapEditTokenComponent_ion_row_15_Template_a_click_4_listener","openUrl","SisMapEditTokenComponent_ion_row_15_Template_a_click_8_listener","updateEditToken","editTokenService","editTokenItems","splitEditTokenItems","itemsWithEditToken","itemsWithoutEditToken","selectedEditToken","newWindow","SisMapEditTokenComponent_Template","SisMapEditTokenComponent_Template_ion_select_ngModelChange_10_listener","SisMapEditTokenComponent_ion_select_option_11_Template","SisMapEditTokenComponent_Template_sis_general_button_sisClick_13_listener","SisMapEditTokenComponent_ion_row_15_Template","winterSeasonStartDate","winterSeasonEndDate","liftsOpenFrom","liftsOpenTo","SisMediaSettingPage","SisMediaSettingService","seasonDatesInvalid","operatingTimesInvalid","SisMediaSettingPage_ion_row_7_Template_sis_general_button_sisClick_2_listener","SisMediaSettingPage_ion_row_7_Template_sis_general_button_sisClick_6_listener","writePermission$","sisMediaSettingService","validateSeasonDates","validateLiftOpenTimes","sisMediaSetting$","sisMediaSettingEdited","postSisMediaSetting","fromControl","toControl","SisMediaSettingPage_Template","SisMediaSettingPage_div_0_Template","SisMediaSettingPage_ion_row_3_Template","SisMediaSettingPage_ion_row_5_Template","SisMediaSettingPage_ion_row_7_Template","sisMediaSettingRequest$","sisMediaSettingUpdate$","SisMediaAssetCategory","SisMediaAssetImportType","SisMediaAssetStatus","SisMediaAssetSubStatus","SisMediaItem","SisMediaItemAdapter","hasActiveOverride","contact","phone","website","lengthMeter","throughput","firstRide","lastRide","travelTime","elevation","sisMapNames","sisMaps","sisMapInfo","importType","SubStatus","AssetEdit","ExportMappings","sisMediaStatus","dataTestOverrideString","Preparation","Open","subStatusOptions","sisMediaSubStatus","Convoy","Circulation","Revision","Storm","Malfunction","SisMediaSeason","SisMediaAssetOverrideService","AssetOverrideItemComponent_ng_container_0_ion_icon_14_Template_ion_icon_click_0_listener","options_r4","overrideStatusChanged","assetOverrideItem","overrideStatus","AssetOverrideItemComponent_ng_container_0_a_16_Template_a_click_0_listener","deleteEntry","AssetOverrideItemComponent_ng_container_0_a_17_Template_a_click_0_listener","AssetOverrideItemComponent_ng_container_0_a_18_Template_a_click_0_listener","AssetOverrideItemComponent_ng_container_0_ion_row_1_Template","AssetOverrideItemComponent_ng_container_0_Template_ion_input_ionBlur_4_listener","descriptionChanged","AssetOverrideItemComponent_ng_container_0_Template_ion_checkbox_ionChange_6_listener","activeChanged","AssetOverrideItemComponent_ng_container_0_Template_ion_input_ionBlur_8_listener","startTimeChanged","AssetOverrideItemComponent_ng_container_0_Template_ion_input_ionBlur_10_listener","endTimeChanged","AssetOverrideItemComponent_ng_container_0_Template_ion_input_ionBlur_12_listener","priorityChanged","AssetOverrideItemComponent_ng_container_0_ion_icon_14_Template","AssetOverrideItemComponent_ng_container_0_a_16_Template","AssetOverrideItemComponent_ng_container_0_a_17_Template","AssetOverrideItemComponent_ng_container_0_a_18_Template","AssetOverrideItemComponent_ng_container_0_ion_spinner_19_Template","showHeader","descriptionInputCss","priorityInputCss","sisMediaItem","isDeleting","AssetOverrideItemComponent_ng_container_1_ion_icon_31_Template_ion_icon_click_0_listener","options_r10","AssetOverrideItemComponent_ng_container_1_Template_ion_input_ionBlur_3_listener","AssetOverrideItemComponent_ng_container_1_Template_ion_checkbox_ionChange_9_listener","AssetOverrideItemComponent_ng_container_1_Template_ion_input_ionBlur_14_listener","AssetOverrideItemComponent_ng_container_1_Template_ion_input_ionBlur_20_listener","AssetOverrideItemComponent_ng_container_1_Template_ion_input_ionBlur_25_listener","AssetOverrideItemComponent_ng_container_1_ion_icon_31_Template","AssetOverrideItemComponent_ng_container_1_Template_ion_chip_click_33_listener","AssetOverrideItemComponent_ng_container_1_ion_label_34_Template","AssetOverrideItemComponent_ng_container_1_ion_spinner_35_Template","AssetOverrideItemComponent_ng_container_1_Template_ion_chip_click_36_listener","AssetOverrideItemComponent_ng_container_1_ion_label_37_Template","AssetOverrideItemComponent_ng_container_1_Template_ion_chip_click_38_listener","AssetOverrideItemComponent_ng_container_1_ion_label_39_Template","AssetOverrideItemComponent_ng_container_1_ion_spinner_40_Template","AssetOverrideItemComponent","sisMediaAssetOverrideService","hasChangedEmitter","dataChanged$","updateAssetOverride","checkChanges","newDescription","presentErrorToast","newPriority","assetOverrideItems","AssetOverrideItemComponent_Template","AssetOverrideItemComponent_ng_container_0_Template","AssetOverrideItemComponent_ng_container_1_Template","assetOverrideDatas","assetOverrideData","NIL","emptyGuid","SisMediaAssetOverrideComponent_sis_logbook_button_14_Template_sis_logbook_button_click_0_listener","SisMediaAssetOverrideComponent_sis_sismedia_asset_override_item_16_Template_sis_sismedia_asset_override_item_hasChangedEmitter_0_listener","assetOverrideItem_r4","SisMediaAssetOverrideComponent","SISMEDIA_ASSETOVERRIDE","changesMap","insertingEntry$","hasEntries","hasChanges","requestAssetOverrideData","addEntry","newEntry","SisMediaAssetOverrideComponent_Template","SisMediaAssetOverrideComponent_Template_ion_button_click_2_listener","SisMediaAssetOverrideComponent_Template_sis_general_button_sisClick_11_listener","SisMediaAssetOverrideComponent_sis_logbook_button_14_Template","SisMediaAssetOverrideComponent_sis_sismedia_asset_override_item_16_Template","SisMediaAssetOverrideComponent_ion_row_17_Template","SisMediaAssetOverrideComponent_ion_row_19_Template","_insertingEntry$","assetOverrideRequest$","assetOverrideUpdate$","toastPosition","SisMediaAssetOverrideEntry","obs$","SisMediaEditModalComponent","SisMediaItemService","SismediaCategoryComponent_ion_grid_0_ion_item_6_Template_sis_sismedia_item_lastChange_2_listener","anyItemHasSisMaps","SismediaCategoryComponent_ion_grid_0_Template_sis_page_title_onReorderClick_1_listener","SismediaCategoryComponent_ion_grid_0_Template_sis_page_title_onReorderCancelClick_1_listener","SismediaCategoryComponent_ion_grid_0_Template_sis_page_title_openEditModal_1_listener","SismediaCategoryComponent_ion_grid_0_Template_ion_reorder_group_ionItemReorder_5_listener","SismediaCategoryComponent_ion_grid_0_ion_item_6_Template","SismediaCategoryComponent_ion_grid_0_ion_col_8_Template","titleTranslationString","hasAssetEditPermission","SismediaCategoryComponent_nav_2_ion_row_2_ion_col_1_Template_ion_col_click_0_listener","seasonIcon_r7","seasonSelected","selectedSeason$","iconNameSelected","SismediaCategoryComponent_nav_2_ion_row_2_ion_col_1_Template","SismediaCategoryComponent_nav_2_ion_row_2_ion_col_2_Template","SismediaCategoryComponent_nav_2_ion_row_2_Template","seasonIcons","SismediaCategoryComponent_ion_grid_4_sis_sismedia_item_2_Template_sis_sismedia_item_lastChange_0_listener","item_r10","SismediaCategoryComponent_ion_grid_4_Template_sis_page_title_onReorderClick_1_listener","SismediaCategoryComponent_ion_grid_4_Template_sis_page_title_onReorderCancelClick_1_listener","SismediaCategoryComponent_ion_grid_4_Template_sis_page_title_openEditModal_1_listener","SismediaCategoryComponent_ion_grid_4_sis_sismedia_item_2_Template","SismediaCategoryComponent_ion_grid_4_ion_col_4_Template","SismediaCategoryComponent_ion_grid_6_ion_col_2_Template_ion_col_click_0_listener","seasonIcon_r12","SismediaCategoryComponent_ion_grid_6_ion_col_2_Template","SismediaCategoryComponent","sisMediaItemService","SummerAndWinter","Summer","Winter","sisMediaItems$","filterByItemType","includedItemTypes","excludedItemTypes","assetEditWriteFeature","assetCategoryWriteFeature","containsSearchStringInItemNameOrLabel","updateLabelSize","containsItemsWithSisMaps","assetEdits","sisMediaCategoryItemOrderUpdated$","updatedCategories","SISMEDIA_OPERATINGHOURS","sisMediaItemOrders","reorderItems","isNewItem","SismediaCategoryComponent_Template","SismediaCategoryComponent_ion_grid_0_Template","SismediaCategoryComponent_nav_2_Template","SismediaCategoryComponent_ion_grid_4_Template","SismediaCategoryComponent_ion_grid_6_Template","seasonIcon","iconNameDisabled","type_r3","fieldOptions_r4","propertyName","SisMediaEditModalComponent_form_8_ion_grid_1_ion_row_26_ion_input_6_Template","SisMediaEditModalComponent_form_8_ion_grid_1_ion_row_26_ion_input_7_Template","SisMediaEditModalComponent_form_8_ion_grid_1_ion_row_26_ion_input_8_Template","SisMediaEditModalComponent_form_8_ion_grid_1_ion_row_26_ion_input_9_Template","SisMediaEditModalComponent_form_8_ion_grid_1_ion_row_26_ion_input_10_Template","SisMediaEditModalComponent_form_8_ion_grid_1_ion_row_26_ion_input_11_Template","SisMediaEditModalComponent_form_8_ion_grid_1_ion_row_26_ion_textarea_12_Template","inputType","inputLabelTranslateKey","includedInImports","importTypeNameTranslationString","SisMediaEditModalComponent_form_8_ion_grid_1_ion_icon_6_Template","SisMediaEditModalComponent_form_8_ion_grid_1_ion_select_option_24_Template","SisMediaEditModalComponent_form_8_ion_grid_1_ion_row_26_Template","SisMediaEditModalComponent_form_8_ion_grid_1_Template_span_click_45_listener","typeIcon","sisMediaAssetTypes$","inputFieldOptions","hasMySqlRouter$","hasStatus","type_r6","fieldOptions_r7","SisMediaEditModalComponent_form_8_ion_grid_3_ng_container_29_ion_input_8_Template","SisMediaEditModalComponent_form_8_ion_grid_3_ng_container_29_ion_input_9_Template","SisMediaEditModalComponent_form_8_ion_grid_3_ng_container_29_ion_input_10_Template","SisMediaEditModalComponent_form_8_ion_grid_3_ng_container_29_ion_input_11_Template","SisMediaEditModalComponent_form_8_ion_grid_3_ng_container_29_ion_input_12_Template","SisMediaEditModalComponent_form_8_ion_grid_3_ng_container_29_ion_input_13_Template","SisMediaEditModalComponent_form_8_ion_grid_3_ng_container_29_ion_textarea_14_Template","SisMediaEditModalComponent_form_8_ion_grid_3_ion_select_option_27_Template","SisMediaEditModalComponent_form_8_ion_grid_3_ng_container_29_Template","SisMediaEditModalComponent_form_8_ion_grid_3_Template_span_click_48_listener","SisMediaEditModalComponent_form_8_ion_grid_1_Template","SisMediaEditModalComponent_form_8_ion_grid_3_Template","SisMediaEditModalComponent_sis_general_button_15_Template_sis_general_button_sisClick_0_listener","deleteAllowed","deleteAllowedTooltip","defaultFieldOptions","dataTestKey","Toubiz","inputFieldOptionsMap","sisMediaTypes$","sisMediaItemEdit","NoStatus","formControl","updateTypeIcon","newValue","padEnd","insertOrUpdateItems","insertOrUpdateOperation","SisMediaEditModalComponent_Template","SisMediaEditModalComponent_Template_ion_button_click_2_listener","SisMediaEditModalComponent_form_8_Template","SisMediaEditModalComponent_Template_sis_general_button_sisClick_11_listener","SisMediaEditModalComponent_Template_sis_general_button_sisClick_13_listener","SisMediaEditModalComponent_sis_general_button_15_Template","SisMediaExportsEditService","SisMediaExportsEditModalComponent_ion_grid_8_ion_row_5_Template_ion_row_click_0_listener","SisMediaExportsEditModalComponent_ion_grid_8_ion_row_5_Template","SisMediaExportsEditModalComponent","exportsEditModalService","STnet","SisMediaExportsEditModalComponent_Template","SisMediaExportsEditModalComponent_Template_ion_button_click_5_listener","SisMediaExportsEditModalComponent_ion_grid_8_Template","SisMediaExportsEditModalComponent_Template_sis_general_button_sisClick_11_listener","SisMediaExportsEditModalComponent_Template_sis_general_button_sisClick_12_listener","ActionSheetController","PopoverController","SisMediaOperatingHoursModalComponent","SisMediaSubstatusPopoverComponent","SisMediaItemComponent_ion_row_0_ion_col_3_ion_icon_1_Template_ion_icon_click_0_listener","SisMediaItemComponent_ion_row_0_ion_col_3_ion_icon_1_Template_ion_icon_contextmenu_0_listener","iconRightClick","activeTooltip","activeIconName","SisMediaItemComponent_ion_row_0_ion_col_3_ion_icon_1_Template","SisMediaItemComponent_ion_row_0_ion_col_4_ion_spinner_1_Template","SisMediaItemComponent_ion_row_0_ion_col_14_ion_icon_1_Template","sisMapsTooltipText","sisMapIconClass","SisMediaItemComponent_ion_row_0_ion_col_15_ion_icon_1_Template","hasSisMaps","SisMediaItemComponent_ion_row_0_ion_col_16_Template_ion_icon_click_1_listener","SisMediaItemComponent_ion_row_0_ion_col_17_ion_icon_1_Template_ion_icon_click_0_listener","openOverrideModal","SisMediaItemComponent_ion_row_0_ion_col_17_ion_icon_1_Template","SisMediaItemComponent_ion_row_0_ion_col_18_ion_icon_1_Template_ion_icon_click_0_listener","openOperatingHoursModal","SisMediaItemComponent_ion_row_0_ion_col_18_ion_icon_1_Template","SisMediaItemComponent_ion_row_0_ion_col_19_Template_ion_icon_click_1_listener","SisMediaItemComponent_ion_row_0_ion_col_3_Template","SisMediaItemComponent_ion_row_0_ion_col_4_Template","SisMediaItemComponent_ion_row_0_ion_icon_12_Template","SisMediaItemComponent_ion_row_0_ion_icon_13_Template","SisMediaItemComponent_ion_row_0_ion_col_14_Template","SisMediaItemComponent_ion_row_0_ion_col_15_Template","SisMediaItemComponent_ion_row_0_ion_col_16_Template","SisMediaItemComponent_ion_row_0_ion_col_17_Template","SisMediaItemComponent_ion_row_0_ion_col_18_Template","SisMediaItemComponent_ion_row_0_ion_col_19_Template","showSisMapsCol","assetOverrideReadPermission","hasAssetOverride","hasOperatingHours","operatingHoursReadPermission","assetEditPermission","SisMediaItemComponent_ion_row_1_ion_col_3_ion_icon_1_Template_ion_icon_click_0_listener","SisMediaItemComponent_ion_row_1_ion_col_3_ion_icon_1_Template_ion_icon_contextmenu_0_listener","presentSubStatusActionSheet","SisMediaItemComponent_ion_row_1_ion_col_3_ion_icon_1_Template","SisMediaItemComponent_ion_row_1_ion_col_3_Template","SisMediaItemComponent_ion_row_1_ion_col_4_Template","SisMediaItemComponent_ion_row_1_Template_ion_col_click_5_listener","presentActionSheet","SisMediaItemComponent","popoverController","actionSheetCtrl","setSisMapIconClassAndTooltip","getTooltip","itemSeason","isSeasonMatching","mapInfo","updateSisMapTooltipText","missingText","mapNamesWithCorrectSeason","mapNamesWithMismatchedSeason","setStatus","popover","revisionText","stormText","malfunctionText","convoyText","circulationText","cancelText","actionSheet","_this8","_this9","operatingHoursText","editText","activeSubStatus","subOption","SisMediaItemComponent_Template","SisMediaItemComponent_ion_row_0_Template","SisMediaItemComponent_ion_row_1_Template","_sisMediaAssetOrderUpdated$","sisMediaAssetsAndTypes$","assetTypes","assets","_sisMediaItems$","sisMediaStatusUpdated$","itemMap","sisMediaItemsUpdated$","handleAssetEditUpdatedEvent","sisMediaOperatingHoursUpdated$","handleOperatingHoursUpdatedEvent","sisMediaAssetExportMappingUpdated$","sisMediaAssetCockpitOrderUpdated$","handleOrderUpdateEvent","sisMediaAssetEdits","Assets","reorderPostDatas","assetUpdated","updatedAsset","asset","ordersUpdated","Set","assetOrders","assetOrder","SisMediaOperatingHoursEntryAdapter","operatingHoursEntries","operatingHoursEntry","operatingHoursData","weekday","from1","until1","from2","until2","status_r3","SisMediaOperatingHoursItemComponent_ion_row_0_div_8_ion_col_8_Template_ion_input_ionBlur_1_listener","SisMediaOperatingHoursItemComponent_ion_row_0_div_8_ion_col_10_Template_ion_input_ionBlur_1_listener","SisMediaOperatingHoursItemComponent_ion_row_0_div_8_Template_ion_input_ionBlur_6_listener","SisMediaOperatingHoursItemComponent_ion_row_0_div_8_ion_col_7_Template","SisMediaOperatingHoursItemComponent_ion_row_0_div_8_ion_col_8_Template","SisMediaOperatingHoursItemComponent_ion_row_0_div_8_ion_col_9_Template","SisMediaOperatingHoursItemComponent_ion_row_0_div_8_ion_col_10_Template","SisMediaOperatingHoursItemComponent_ion_row_0_div_8_Template_ion_input_ionBlur_15_listener","SisMediaOperatingHoursItemComponent_ion_row_0_Template_ion_select_ionChange_5_listener","statusSelected","SisMediaOperatingHoursItemComponent_ion_row_0_ion_select_option_6_Template","SisMediaOperatingHoursItemComponent_ion_row_0_div_8_Template","weekdayTranslationString","statusTranslatingMapping","status_r8","SisMediaOperatingHoursItemComponent_ion_row_1_ion_row_8_ion_row_3_Template_ion_input_ionBlur_5_listener","SisMediaOperatingHoursItemComponent_ion_row_1_ion_row_8_ion_row_3_Template_ion_input_ionBlur_10_listener","SisMediaOperatingHoursItemComponent_ion_row_1_ion_row_8_ion_row_4_ion_col_8_Template_ion_input_ionBlur_1_listener","SisMediaOperatingHoursItemComponent_ion_row_1_ion_row_8_ion_row_4_ion_col_11_Template_ion_input_ionBlur_1_listener","SisMediaOperatingHoursItemComponent_ion_row_1_ion_row_8_ion_row_4_Template_ion_input_ionBlur_6_listener","SisMediaOperatingHoursItemComponent_ion_row_1_ion_row_8_ion_row_4_ion_col_7_Template","SisMediaOperatingHoursItemComponent_ion_row_1_ion_row_8_ion_row_4_ion_col_8_Template","SisMediaOperatingHoursItemComponent_ion_row_1_ion_row_8_ion_row_4_ion_col_10_Template","SisMediaOperatingHoursItemComponent_ion_row_1_ion_row_8_ion_row_4_ion_col_11_Template","SisMediaOperatingHoursItemComponent_ion_row_1_ion_row_8_ion_row_4_Template_ion_input_ionBlur_16_listener","SisMediaOperatingHoursItemComponent_ion_row_1_ion_row_8_ion_row_3_Template","SisMediaOperatingHoursItemComponent_ion_row_1_ion_row_8_ion_row_4_Template","SisMediaOperatingHoursItemComponent_ion_row_1_Template_ion_select_ionChange_6_listener","SisMediaOperatingHoursItemComponent_ion_row_1_ion_select_option_7_Template","SisMediaOperatingHoursItemComponent_ion_row_1_ion_row_8_Template","SisMediaOperatingHoursItemComponent","SisMediaOperatingHoursItemComponent_Template","SisMediaOperatingHoursItemComponent_ion_row_0_Template","SisMediaOperatingHoursItemComponent_ion_row_1_Template","SisMediaOperatingHoursService","SisMediaOperatingHoursModalComponent_ion_toggle_13_Template_ion_toggle_ngModelChange_0_listener","toggleChanged","isAutoImported","SisMediaOperatingHoursModalComponent_ion_grid_19_sis_sismedia_operating_hours_item_1_Template_sis_sismedia_operating_hours_item_isEdited_0_listener","setIsEdited","operatingHoursEntry_r4","SisMediaOperatingHoursModalComponent_ion_grid_19_sis_sismedia_operating_hours_item_1_Template","operatingHoursEntriesEdit","SisMediaOperatingHoursModalComponent_ion_grid_20_sis_sismedia_operating_hours_item_1_Template_sis_sismedia_operating_hours_item_isEdited_0_listener","operatingHoursEntry_r6","SisMediaOperatingHoursModalComponent_ion_grid_20_sis_sismedia_operating_hours_item_1_Template","operatingHoursService","requiredFeatureRead","getOperatingHours","postOperatingHours","SisMediaOperatingHoursModalComponent_Template","SisMediaOperatingHoursModalComponent_Template_ion_button_click_2_listener","SisMediaOperatingHoursModalComponent_ion_toggle_13_Template","SisMediaOperatingHoursModalComponent_ion_grid_19_Template","SisMediaOperatingHoursModalComponent_ion_grid_20_Template","SisMediaOperatingHoursModalComponent_Template_sis_general_button_sisClick_23_listener","SisMediaOperatingHoursModalComponent_Template_sis_general_button_sisClick_24_listener","operatingHoursPostData","SisMediaSubstatusPopoverComponent_ion_list_0_ion_item_1_Template_ion_item_click_0_listener","substatus_r2","selectSubstatus","SisMediaSubstatusPopoverComponent_ion_list_0_ion_item_1_Template","openSubstatuses","SisMediaSubstatusPopoverComponent_ion_list_1_ion_item_1_Template_ion_item_click_0_listener","substatus_r5","SisMediaSubstatusPopoverComponent_ion_list_1_ion_item_1_Template","closedSubstatuses","substatus","SisMediaSubstatusPopoverComponent_Template","SisMediaSubstatusPopoverComponent_ion_list_0_Template","SisMediaSubstatusPopoverComponent_ion_list_1_Template","SisMediaPage","routeOptions","SisMediaPage_Template","SisMediaPage_sis_sismedia_category_0_Template","SlopesOperatingTimesAdapter","slopesOperatingTimes","lastSlopeControl","SlopesOperatingTimesService","SlopesOperatingTimesItemComponent_ion_row_0_ion_grid_6_Template","editableItem","SlopesOperatingTimesItemComponent","slopesOperatingTimesService","slopesOperatingTimes$","originalItem","requestReset$","SlopesOperatingTimesItemComponent_Template","SlopesOperatingTimesItemComponent_ion_row_0_Template","SlopesOperatingTimesItemComponent_ng_container_2_Template","SlopesOperatingTimesPage","guid_r1","slopesOperatingTimesGuids$","hasChanges$","updated$","saveChanges","SlopesOperatingTimesPage_Template","SlopesOperatingTimesPage_sis_slopes_operating_times_item_5_Template","SlopesOperatingTimesPage_Template_sis_general_button_sisClick_9_listener","SlopesOperatingTimesPage_Template_sis_general_button_sisClick_11_listener","changes$","slopesOperatingTimesRequest$","slopesOperatingTimesUpdate$","slopeOperatingTimes","updatedSlopesOperatingTimesItem","editedSlopesOperatingTimes","itemsToSave","STnetCalculatedDataAdapter","liftsToday","liftsTotal","slopesToday","slopesTotal","slopesLengthMeterToday","slopesLengthMeterTotal","valleyRunsToday","valleyRunsTotal","classicTracksLengthMeterToday","classicTracksLengthMeterTotal","skatingTracksLengthMeterToday","skatingTracksLengthMeterTotal","halfpipesToday","halfpipesTotal","snowcrossTracksToday","snowcrossTracksTotal","snowparksToday","snowparksTotal","airboardSlopesToday","airboardSlopesTotal","snowtubeTracksToday","snowtubeTracksTotal","tobogganRunsToday","tobogganRunsTotal","tobogganRunsLengthMeterToday","tobogganRunsLengthMeterTotal","winterHikingTrailsLengthMeterToday","winterHikingTrailsLengthMeterTotal","snowshoeTrailsToday","snowshoeTrailsTotal","snowshoeTrailsLengthMeterToday","snowshoeTrailsLengthMeterTotal","stationName","snowConditionMainId","snowConditionPartialId","slopesSnowedLengthMeterToday","snowHeightMeasurementMethodId","valleyRunMainConditionId","valleyRunPartialConditionId","valleyRunLowestAltitudeToday","classicTrackConditionId","skatingTrackConditionId","crossCountryTracksLowestAltitudeToday","crossCountryTracksHighestAltitudeToday","snowparkConditionId","tobogganRunConditionId","tobogganRunSkillTypeId","winterHikingTrailConditionId","winterHikingTrailsLowestAltitudeTotal","slopesFloodlightEnabled","slopesFloodlightUntil","slopesWithFloodlightLengthMeterToday","crossCountryFloodlightEnabled","crossCountryFloodlightUntil","crossCountryTracksWithFloodlightLengthMeterToday","snowparkFloodlightEnabled","snowparkFloodlightUntil","tobogganFloodlightEnabled","tobogganRunsWithFloodlightLengthMeterToday","STnetAdapter","calculatedData","sTnetCalculatedData","lengthMeterToday","lengthMeterTotal","STnetCalculatedItemComponent_ion_row_0_ng_container_5_Template","STnetCalculatedItemComponent_ion_row_0_ng_container_7_Template","STnetCalculatedItemComponent_ion_row_1_ng_container_5_Template","STnetCalculatedItemComponent_ion_row_1_ng_container_7_Template","STnetCalculatedItemComponent","STnetCalculatedItemComponent_Template","STnetCalculatedItemComponent_ion_row_0_Template","STnetCalculatedItemComponent_ion_row_1_Template","STnetCalculatedComponent","STnetCalculatedComponent_Template","STnetCalculatedComponent_ion_col_7_Template","STnetCalculatedComponent_ion_grid_9_Template","STnetEditableComponent_ion_row_0_ion_grid_2_ion_select_13_ion_select_option_1_Template","snowConditions","STnetEditableComponent_ion_row_0_ion_grid_2_ion_select_19_ion_select_option_1_Template","iconPath","STnetEditableComponent_ion_row_0_ion_grid_2_ng_container_24_ion_select_12_ion_select_option_1_Template","slopeConditions","STnetEditableComponent_ion_row_0_ion_grid_2_ng_container_24_ion_select_28_ion_select_option_1_Template","snowHeightMeasurementMethods","STnetEditableComponent_ion_row_0_ion_grid_2_ng_container_24_ion_select_12_Template","STnetEditableComponent_ion_row_0_ion_grid_2_ng_container_24_ion_select_28_Template","STnetEditableComponent_ion_row_0_ion_grid_2_ng_container_25_ion_select_12_ion_select_option_1_Template","valleyRunConditions","item_r7","STnetEditableComponent_ion_row_0_ion_grid_2_ng_container_25_ion_select_18_ion_select_option_1_Template","STnetEditableComponent_ion_row_0_ion_grid_2_ng_container_25_ion_select_12_Template","STnetEditableComponent_ion_row_0_ion_grid_2_ng_container_25_ion_select_18_Template","STnetEditableComponent_ion_row_0_ion_grid_2_ng_container_26_ng_container_8_ion_select_5_ion_select_option_1_Template","STnetEditableComponent_ion_row_0_ion_grid_2_ng_container_26_ng_container_8_ion_select_5_Template","STnetEditableComponent_ion_row_0_ion_grid_2_ng_container_26_ng_container_9_ion_select_5_ion_select_option_1_Template","STnetEditableComponent_ion_row_0_ion_grid_2_ng_container_26_ng_container_9_ion_select_5_Template","STnetEditableComponent_ion_row_0_ion_grid_2_ng_container_26_ng_container_8_Template","STnetEditableComponent_ion_row_0_ion_grid_2_ng_container_26_ng_container_9_Template","crossCountryTracksAltitudeToday","STnetEditableComponent_ion_row_0_ion_grid_2_ng_container_27_ion_select_14_ion_select_option_1_Template","snowparkConditions","STnetEditableComponent_ion_row_0_ion_grid_2_ng_container_27_ion_select_14_Template","item_r11","STnetEditableComponent_ion_row_0_ion_grid_2_ng_container_28_ion_select_12_ion_select_option_1_Template","item_r12","STnetEditableComponent_ion_row_0_ion_grid_2_ng_container_28_ion_select_18_ion_select_option_1_Template","tobogganRunSkills","STnetEditableComponent_ion_row_0_ion_grid_2_ng_container_28_ion_select_12_Template","STnetEditableComponent_ion_row_0_ion_grid_2_ng_container_28_ion_select_18_Template","item_r13","STnetEditableComponent_ion_row_0_ion_grid_2_ng_container_29_ion_select_12_ion_select_option_1_Template","trailConditions","STnetEditableComponent_ion_row_0_ion_grid_2_ng_container_29_ion_select_12_Template","STnetEditableComponent_ion_row_0_ion_grid_2_ng_container_30_ion_row_11_Template_ion_checkbox_ionChange_2_listener","STnetEditableComponent_ion_row_0_ion_grid_2_ng_container_30_ion_row_12_Template_ion_checkbox_ionChange_2_listener","STnetEditableComponent_ion_row_0_ion_grid_2_ng_container_30_ion_row_13_Template_ion_checkbox_ionChange_2_listener","STnetEditableComponent_ion_row_0_ion_grid_2_ng_container_30_ion_row_14_Template_ion_checkbox_ionChange_2_listener","STnetEditableComponent_ion_row_0_ion_grid_2_ng_container_30_ion_row_11_Template","STnetEditableComponent_ion_row_0_ion_grid_2_ng_container_30_ion_row_12_Template","STnetEditableComponent_ion_row_0_ion_grid_2_ng_container_30_ion_row_13_Template","STnetEditableComponent_ion_row_0_ion_grid_2_ng_container_30_ion_row_14_Template","STnetEditableComponent_ion_row_0_ion_grid_2_ion_select_13_Template","STnetEditableComponent_ion_row_0_ion_grid_2_ion_select_19_Template","STnetEditableComponent_ion_row_0_ion_grid_2_ion_row_21_Template","STnetEditableComponent_ion_row_0_ion_grid_2_ion_row_22_Template","STnetEditableComponent_ion_row_0_ion_grid_2_ion_row_23_Template","STnetEditableComponent_ion_row_0_ion_grid_2_ng_container_24_Template","STnetEditableComponent_ion_row_0_ion_grid_2_ng_container_25_Template","STnetEditableComponent_ion_row_0_ion_grid_2_ng_container_26_Template","STnetEditableComponent_ion_row_0_ion_grid_2_ng_container_27_Template","STnetEditableComponent_ion_row_0_ion_grid_2_ng_container_28_Template","STnetEditableComponent_ion_row_0_ion_grid_2_ng_container_29_Template","STnetEditableComponent_ion_row_0_ion_grid_2_ng_container_30_Template","nightLightEnabled","STnetEditableComponent_ion_row_0_ion_grid_2_Template","item_r18","STnetEditableComponent_ion_row_1_ion_grid_2_ion_select_13_ion_select_option_1_Template","item_r19","STnetEditableComponent_ion_row_1_ion_grid_2_ion_select_19_ion_select_option_1_Template","winterSeasonFromDate","item_r20","STnetEditableComponent_ion_row_1_ion_grid_2_ng_container_33_ion_select_6_ion_select_option_1_Template","item_r21","STnetEditableComponent_ion_row_1_ion_grid_2_ng_container_33_ion_select_22_ion_select_option_1_Template","STnetEditableComponent_ion_row_1_ion_grid_2_ng_container_33_ion_select_6_Template","STnetEditableComponent_ion_row_1_ion_grid_2_ng_container_33_ion_select_22_Template","item_r22","STnetEditableComponent_ion_row_1_ion_grid_2_ng_container_34_ion_select_12_ion_select_option_1_Template","item_r23","STnetEditableComponent_ion_row_1_ion_grid_2_ng_container_34_ion_select_18_ion_select_option_1_Template","STnetEditableComponent_ion_row_1_ion_grid_2_ng_container_34_ion_select_12_Template","STnetEditableComponent_ion_row_1_ion_grid_2_ng_container_34_ion_select_18_Template","item_r24","STnetEditableComponent_ion_row_1_ion_grid_2_ng_container_35_ion_row_7_ion_select_5_ion_select_option_1_Template","STnetEditableComponent_ion_row_1_ion_grid_2_ng_container_35_ion_row_7_ion_select_5_Template","item_r25","STnetEditableComponent_ion_row_1_ion_grid_2_ng_container_35_ion_row_8_ion_select_5_ion_select_option_1_Template","STnetEditableComponent_ion_row_1_ion_grid_2_ng_container_35_ion_row_8_ion_select_5_Template","STnetEditableComponent_ion_row_1_ion_grid_2_ng_container_35_ion_row_7_Template","STnetEditableComponent_ion_row_1_ion_grid_2_ng_container_35_ion_row_8_Template","item_r26","STnetEditableComponent_ion_row_1_ion_grid_2_ng_container_36_ion_select_14_ion_select_option_1_Template","STnetEditableComponent_ion_row_1_ion_grid_2_ng_container_36_ion_select_14_Template","item_r27","STnetEditableComponent_ion_row_1_ion_grid_2_ng_container_37_ion_select_12_ion_select_option_1_Template","item_r28","STnetEditableComponent_ion_row_1_ion_grid_2_ng_container_37_ion_select_18_ion_select_option_1_Template","STnetEditableComponent_ion_row_1_ion_grid_2_ng_container_37_ion_select_12_Template","STnetEditableComponent_ion_row_1_ion_grid_2_ng_container_37_ion_select_18_Template","item_r29","STnetEditableComponent_ion_row_1_ion_grid_2_ng_container_38_ion_select_12_ion_select_option_1_Template","STnetEditableComponent_ion_row_1_ion_grid_2_ng_container_38_ion_select_12_Template","STnetEditableComponent_ion_row_1_ion_grid_2_ng_container_39_ng_container_7_Template_ion_checkbox_ionChange_3_listener","_r30","STnetEditableComponent_ion_row_1_ion_grid_2_ng_container_39_ng_container_8_Template_ion_checkbox_ionChange_3_listener","_r31","crossCountrylightUntil","STnetEditableComponent_ion_row_1_ion_grid_2_ng_container_39_ng_container_9_Template_ion_checkbox_ionChange_3_listener","_r32","STnetEditableComponent_ion_row_1_ion_grid_2_ng_container_39_ng_container_10_Template_ion_checkbox_ionChange_3_listener","_r33","STnetEditableComponent_ion_row_1_ion_grid_2_ng_container_39_ng_container_7_Template","STnetEditableComponent_ion_row_1_ion_grid_2_ng_container_39_ng_container_8_Template","STnetEditableComponent_ion_row_1_ion_grid_2_ng_container_39_ng_container_9_Template","STnetEditableComponent_ion_row_1_ion_grid_2_ng_container_39_ng_container_10_Template","STnetEditableComponent_ion_row_1_ion_grid_2_ion_select_13_Template","STnetEditableComponent_ion_row_1_ion_grid_2_ion_select_19_Template","STnetEditableComponent_ion_row_1_ion_grid_2_ion_row_20_Template","STnetEditableComponent_ion_row_1_ion_grid_2_ion_row_21_Template","STnetEditableComponent_ion_row_1_ion_grid_2_ion_row_22_Template","STnetEditableComponent_ion_row_1_ion_grid_2_ion_row_23_Template","STnetEditableComponent_ion_row_1_ion_grid_2_ion_row_24_Template","STnetEditableComponent_ion_row_1_ion_grid_2_ion_row_25_Template","STnetEditableComponent_ion_row_1_ion_grid_2_ion_row_26_Template","STnetEditableComponent_ion_row_1_ion_grid_2_ng_container_33_Template","STnetEditableComponent_ion_row_1_ion_grid_2_ng_container_34_Template","STnetEditableComponent_ion_row_1_ion_grid_2_ng_container_35_Template","STnetEditableComponent_ion_row_1_ion_grid_2_ng_container_36_Template","STnetEditableComponent_ion_row_1_ion_grid_2_ng_container_37_Template","STnetEditableComponent_ion_row_1_ion_grid_2_ng_container_38_Template","STnetEditableComponent_ion_row_1_ion_grid_2_ng_container_39_Template","STnetEditableComponent_ion_row_1_ion_grid_2_Template","STnetEditableComponent","tobogganRunsWithFloodlightLengthMeterTodayFormControl","crossCountryFloodlightUntilFormControl","crossCountryTracksWithFloodlightLengthMeterTodayFormControl","slopesFloodlightUntilFormControl","slopesWithFloodlightLengthMeterTodayFormControl","snowparkFloodlightUntilFormControl","validateCrossCountryTracksAltitudeToday","stnetDisplayedItem","changedSTnetItem","stNetItemsEquals","NaN","STnetEditableComponent_Template","STnetEditableComponent_ion_row_0_Template","STnetEditableComponent_ion_row_1_Template","STnetPage","STnetService","STnetPage_sis_stnet_editable_3_Template_sis_stnet_editable_formDataValid_0_listener","STnetPage_sis_stnet_editable_3_Template_sis_stnet_editable_formDataModified_0_listener","STnetPage_ion_row_7_Template_sis_general_button_sisClick_2_listener","STnetPage_ion_row_7_Template_sis_general_button_sisClick_3_listener","STnetPage_ion_row_7_Template_sis_general_button_click_4_listener","status_r4","STnetPage_ion_row_8_span_5_Template","STnetPage_ion_row_8_ion_spinner_6_Template","stnetService","stnetCalculatedData$","stnetItems$","saveSTnetItems","exportSTnetItems","STnetPage_Template","STnetPage_div_0_Template","STnetPage_sis_stnet_editable_3_Template","STnetPage_sis_stnet_calculated_4_Template","STnetPage_ion_col_6_Template","STnetPage_ion_row_7_Template","STnetPage_ion_row_8_Template","baseStnetExportUrl","stnetStatusArrayResponse$","stnet$","updatedStatusArray","stnet","currentStatus","stnetCalculatedDataUpdate$","updatedData","TimetableDirection","intervalGuid","operatingStart","operatingEnd","journeys","journey","intervalDayGuid","intervalJourneyGuid","stationGuid","departureDateTimeLocal","TimetableIntervalAdapter","intervalDays","seasons","isEmergencyTimetable","isImportTimetable","lastImportDate","lastImportDateTime","lastImportSuccessful","validFrom","validUntil","TimetableTrackAdapter","tracks","intervals","stations","TimetableType","TimetableService","IntervalDayEditorComponent","timetableService","editedDay","updateIntervalDay","IntervalDayEditorComponent_Template","IntervalDayEditorComponent_Template_ion_button_click_5_listener","IntervalDayEditorComponent_Template_sis_general_button_sisClick_33_listener","IntervalDayEditorComponent_Template_sis_general_button_sisClick_34_listener","isNewJourney","JourneyEditorComponent_ion_row_19_span_7_Template","JourneyEditorComponent_ion_row_19_span_8_Template","JourneyEditorComponent_ion_row_19_span_9_Template","departureTimesInvalid","JourneyEditorComponent_ng_container_20_ion_row_1_ion_label_2_Template","station_r2","JourneyEditorComponent_ng_container_20_ion_row_1_Template","JourneyEditorComponent_a_29_Template_a_click_0_listener","clearDate","JourneyEditorComponent","stationOrder","hasMoreThanTwoStations","dateIsEnabled","vehicleNumber","up","mo","tu","we","th","fr","sa","su","validateDepartureTime","setUsabilityWeekdays","station","stationGuids","departureTime","onDateChanged","regex1","regex2","departureTimes","onCheckBoxAreaClick","checkBoxName","markAsPristine","updateJourney","rejoinJourneyData","journeyPostData","imported","journeyGuid","down","JourneyEditorComponent_Template","JourneyEditorComponent_Template_ion_button_click_5_listener","JourneyEditorComponent_ion_row_18_Template","JourneyEditorComponent_ion_row_19_Template","JourneyEditorComponent_ng_container_20_Template","JourneyEditorComponent_Template_ion_input_ionChange_27_listener","JourneyEditorComponent_a_29_Template","JourneyEditorComponent_Template_ion_col_click_31_listener","JourneyEditorComponent_Template_ion_col_click_36_listener","JourneyEditorComponent_Template_ion_col_click_41_listener","JourneyEditorComponent_Template_ion_col_click_46_listener","JourneyEditorComponent_Template_ion_col_click_51_listener","JourneyEditorComponent_Template_ion_col_click_56_listener","JourneyEditorComponent_Template_ion_col_click_61_listener","JourneyEditorComponent_Template_sis_general_button_sisClick_68_listener","JourneyEditorComponent_Template_sis_general_button_sisClick_69_listener","JourneyRowMobileComponent_ion_row_0_ion_row_8_ion_col_4_Template","JourneyRowMobileComponent_ion_row_0_ion_row_8_ion_col_5_Template","JourneyRowMobileComponent_ion_row_0_ion_row_8_ion_col_6_Template","isValid","stationTimetableItemMapping","JourneyRowMobileComponent_ion_row_0_ng_containter_10_ion_row_1_Template","JourneyRowMobileComponent_ion_row_0_ion_row_8_Template","JourneyRowMobileComponent_ion_row_0_ion_row_9_Template","JourneyRowMobileComponent_ion_row_0_ng_containter_10_Template","tmp_2_0","JourneyRowMobileComponent","JourneyRowMobileComponent_Template","JourneyRowMobileComponent_ion_row_0_Template","JourneyRowMobileComponent_ion_row_1_Template","timetableItems","timetableItem_r1","JourneyRowComponent_ion_row_0_ng_container_4_ion_col_1_Template","JourneyRowComponent_ion_row_0_ng_container_4_ion_col_2_Template","JourneyRowComponent_ion_row_0_ng_container_4_ion_col_3_Template","validityTooltip","JourneyRowComponent_ion_row_0_a_8_Template_a_click_0_listener","openJourneyModal","JourneyRowComponent_ion_row_0_a_9_Template_a_click_0_listener","deleteJourney","JourneyRowComponent_ion_row_0_ion_col_3_Template","JourneyRowComponent_ion_row_0_ng_container_4_Template","JourneyRowComponent_ion_row_0_ion_col_5_Template","JourneyRowComponent_ion_row_0_ion_col_6_Template","JourneyRowComponent_ion_row_0_a_8_Template","JourneyRowComponent_ion_row_0_a_9_Template","hasValidity","JourneyRowComponent","openJourneyModalClick","displayedForTomorrow","isValidJourneyOfTodayOrTomorrow","hasJourneyValidity","weekdaysValidity","startOf","tomorrow","currentWeekday","tomorrowWeekday","journeyDate","allWeekdaysValid","validWeekdays","JourneyRowComponent_Template","JourneyRowComponent_ion_row_0_Template","JourneyRowComponent_ion_row_1_Template","SeasonEditorComponent","canSave","editedSeason","validateName","validateDates","updateSeason","nameInvalid","datesInvalid","seasonsOverlap","errorMessage","SeasonEditorComponent_Template","SeasonEditorComponent_Template_ion_button_click_5_listener","SeasonEditorComponent_Template_sis_general_button_sisClick_41_listener","SeasonEditorComponent_Template_sis_general_button_sisClick_42_listener","TimetableTimeItemComponent","timetableItem","itemGuid","estimatedTime","calculateDelay","delayMinutes","diff","TimetableTimeItemComponent_Template","TimetableTimeItemComponent_span_2_Template","TimetableIntervalComponent_ion_grid_0_ion_row_13_ion_col_12_Template_a_click_1_listener","day_r2","openIntervalDayModal","TimetableIntervalComponent_ion_grid_0_ion_row_13_ion_col_12_Template","TimetableIntervalComponent_ion_grid_0_ion_col_11_Template","TimetableIntervalComponent_ion_grid_0_ion_row_13_Template","intervalDays$","TimetableIntervalComponent","activeInterval$","activeInterval","timetables$","track","TimetableIntervalComponent_Template","TimetableIntervalComponent_ion_grid_0_Template","TimetablePage","track_r3","season_r6","TimetablePage_ion_grid_2_ng_container_5_ion_select_3_ion_select_option_1_div_1_Template","TimetablePage_ion_grid_2_ng_container_5_ion_select_3_ion_select_option_1_div_2_Template","TimetablePage_ion_grid_2_ng_container_5_ion_select_3_Template_ion_select_ngModelChange_0_listener","activeSeason","TimetablePage_ion_grid_2_ng_container_5_ion_select_3_Template_ion_select_ionChange_0_listener","onSeasonSelected","TimetablePage_ion_grid_2_ng_container_5_ion_select_3_ion_select_option_1_Template","activeTrack","TimetablePage_ion_grid_2_ng_container_5_ion_col_4_Template_a_click_1_listener","openSeasonModal","seasonWarningText","showSeasonWarningColor","TimetablePage_ion_grid_2_ng_container_5_ion_col_6_ion_icon_4_Template","TimetablePage_ion_grid_2_ng_container_5_ion_col_6_ion_icon_5_Template","TimetablePage_ion_grid_2_ng_container_5_ion_col_11_Template_sis_general_button_sisClick_1_listener","requestTimetableImport","isImporting","activeStations","station_r9","TimetablePage_ion_grid_2_ng_container_5_sis_timetable_journey_row_23_Template_sis_timetable_journey_row_openJourneyModalClick_0_listener","journey_r11","TimetablePage_ion_grid_2_ng_container_5_ion_select_3_Template","TimetablePage_ion_grid_2_ng_container_5_ion_col_4_Template","TimetablePage_ion_grid_2_ng_container_5_ion_col_5_Template","TimetablePage_ion_grid_2_ng_container_5_ion_col_6_Template","TimetablePage_ion_grid_2_ng_container_5_ion_col_7_Template","TimetablePage_ion_grid_2_ng_container_5_Template_sis_general_button_sisClick_10_listener","TimetablePage_ion_grid_2_ng_container_5_ion_col_11_Template","TimetablePage_ion_grid_2_ng_container_5_ion_col_16_Template","TimetablePage_ion_grid_2_ng_container_5_ion_col_17_Template","TimetablePage_ion_grid_2_ng_container_5_ion_col_18_Template","TimetablePage_ion_grid_2_ng_container_5_sis_timetable_journey_row_23_Template","refreshed","showSeasonWarning","displayedJourneyElements","interval_r13","TimetablePage_ion_grid_2_ng_container_6_ion_select_3_Template_ion_select_ngModelChange_0_listener","TimetablePage_ion_grid_2_ng_container_6_ion_select_3_Template_ion_select_ionChange_0_listener","onIntervalSelected","TimetablePage_ion_grid_2_ng_container_6_ion_select_3_ion_select_option_1_Template","TimetablePage_ion_grid_2_ng_container_6_ion_select_3_Template","TimetablePage_ion_grid_2_Template_ion_select_ngModelChange_3_listener","TimetablePage_ion_grid_2_Template_ion_select_ionChange_3_listener","onTrackSelected","TimetablePage_ion_grid_2_ion_select_option_4_Template","TimetablePage_ion_grid_2_ng_container_5_Template","TimetablePage_ion_grid_2_ng_container_6_Template","track_r15","season_r17","TimetablePage_ion_grid_3_ng_container_5_ion_select_3_ion_select_option_1_div_1_Template","TimetablePage_ion_grid_3_ng_container_5_ion_select_3_ion_select_option_1_div_2_Template","TimetablePage_ion_grid_3_ng_container_5_ion_select_3_Template_ion_select_ngModelChange_0_listener","TimetablePage_ion_grid_3_ng_container_5_ion_select_3_Template_ion_select_ionChange_0_listener","TimetablePage_ion_grid_3_ng_container_5_ion_select_3_ion_select_option_1_Template","TimetablePage_ion_grid_3_ng_container_5_ion_row_5_Template_sis_general_button_sisClick_2_listener","TimetablePage_ion_grid_3_ng_container_5_ng_container_6_ion_icon_6_Template","TimetablePage_ion_grid_3_ng_container_5_ng_container_6_ion_icon_7_Template","TimetablePage_ion_grid_3_ng_container_5_ng_container_6_ion_row_11_Template","journey_r19","TimetablePage_ion_grid_3_ng_container_5_ion_select_3_Template","TimetablePage_ion_grid_3_ng_container_5_ion_col_4_Template","TimetablePage_ion_grid_3_ng_container_5_ion_row_5_Template","TimetablePage_ion_grid_3_ng_container_5_ng_container_6_Template","TimetablePage_ion_grid_3_ng_container_5_sis_timetable_journey_row_mobile_9_Template","interval_r21","TimetablePage_ion_grid_3_ng_container_6_ion_row_1_ion_select_2_Template_ion_select_ngModelChange_0_listener","_r20","TimetablePage_ion_grid_3_ng_container_6_ion_row_1_ion_select_2_Template_ion_select_ionChange_0_listener","TimetablePage_ion_grid_3_ng_container_6_ion_row_1_ion_select_2_ion_select_option_1_Template","TimetablePage_ion_grid_3_ng_container_6_ion_row_1_ion_select_2_Template","TimetablePage_ion_grid_3_ng_container_6_ion_row_1_Template","TimetablePage_ion_grid_3_Template_ion_select_ngModelChange_3_listener","TimetablePage_ion_grid_3_Template_ion_select_ionChange_3_listener","TimetablePage_ion_grid_3_ion_select_option_4_Template","TimetablePage_ion_grid_3_ng_container_5_Template","TimetablePage_ion_grid_3_ng_container_6_Template","thirtyDaysInMs","seasonWarning$","warningDates","until","isImportingMap$","isImportingMap","sortJourneys","journeysTodayAndOthers","journeysTomorrow","datatest","showDaySeparator","updateSeasonWarning","both","timetableTrack","Default","noActiveSeason","nextGap","currentSeason","nextSeasons","nextFrom","seasonValidFrom","firstSeasonAfterGap","firstSeasonAfterGapValidFrom","sortedSeasons","latestSeasonInThePast","closestSeasonInThePast","TimetablePage_Template","TimetablePage_ion_grid_2_Template","TimetablePage_ion_grid_3_Template","intervalDayBasePostUrl","seasonBasePostUrl","seasonImportBaseUrl","intervalDayPostBaseUrl","isImporting$","timetableTracksRequest$","timetableImportUpdate$","timetableTracks$","timetableJourneyUpdate$","updatedTrack","updatedSeason","deletedJourney","updatedJourney","timetableWithJourneyUpdates$","timetableSeasonUpdate$","timetableWithJourneyAndSeasonUpdates$","timetableRealTimeUpdate$","timetableWithJourneyAndSeasonAndRealTimeUpdates$","timetableIntervalDayUpdate$","updatedInterval","updatedIntervalDay","updatedTimetableJourneyData","todayOrTomorrow","todayDate","todayDayOfWeek","tomorrowDate","tomorrowDayOfWeek","selectedDate","selectedDayOfWeek","formDate","AccessLevelPopover_ion_item_9_Template_ion_item_click_0_listener","selectOption","selectedAccessLevel","AccessLevelPopover","accessLevels","AccessLevelPopover_Template","AccessLevelPopover_ion_item_9_Template","AccessLevelSelector","user$","userManagementData$","users","tenantFeature","updatePopoverOptions","changeAccessLevel","updateData","updateUserPermission","presentPopover","translatedFeatureName","popoverSubHeader","dismissResult","accessLevelClass","AccessLevelSelector_Template","AccessLevelSelector_Template_div_click_0_listener","ManagedTenantAdapter","activeUsers","UserManagementDataAdapter","tenantInfos","invitationAccepted","isSisag","tenantGuids","UserManagementEditModalComponent_div_30_Template_ion_checkbox_ionChange_5_listener","tenant_r3","editUserTenantMapping","UserManagementEditModalComponent_div_30_ion_icon_9_Template","editedUser","activeTenantGuid","isLoggedInUser","UserManagementEditModalComponent_div_32_Template_sis_general_button_click_1_listener","onDelete","UserManagementEditModalComponent_div_32_Template_sis_general_button_click_2_listener","onSave","UserManagementEditModalComponent_div_32_Template_sis_general_button_click_3_listener","modifiedAndValid","UserManagementEditModalComponent_div_33_Template_sis_general_button_click_1_listener","UserManagementEditModalComponent_div_33_Template_sis_general_button_click_3_listener","UserManagementEditModalComponent_div_33_Template_sis_general_button_click_5_listener","UserManagementEditModalComponent","loggedInUserGuid","checkModifiedAndValid","initEditedUser","includesA","includesB","emailInput","checkExistingUser","getUserInfoRequest","displayNameInput","showFailureToast","updateUser","addUser","deleteUser","tenantAlias","isEqualUser","user1","user2","UserManagementEditModalComponent_Query","UserManagementEditModalComponent_Template_ion_button_click_2_listener","UserManagementEditModalComponent_Template_ion_input_ionBlur_16_listener","UserManagementEditModalComponent_ion_spinner_22_Template","UserManagementEditModalComponent_div_30_Template","UserManagementEditModalComponent_div_32_Template","UserManagementEditModalComponent_div_33_Template","UserManagementFilterComponent","isCockpitChecked","isSisMediaChecked","isGeneralChecked","UserManagementFilterComponent_Template","UserManagementFilterComponent_Template_ion_button_click_6_listener","UserManagementFilterComponent_Template_ion_checkbox_ngModelChange_14_listener","UserManagementFilterComponent_Template_ion_checkbox_ngModelChange_19_listener","UserManagementFilterComponent_Template_ion_checkbox_ngModelChange_24_listener","UserManagementFilterComponent_Template_sis_general_button_sisClick_27_listener","UserManagementItemComponent_div_0_img_4_Template","UserManagementItemComponent_div_0_Template_ion_icon_click_8_listener","emitContextMenuOnUser","UserManagementItemComponent_div_0_Template_ion_icon_click_10_listener","UserManagementItemComponent_div_0_ion_icon_12_Template","UserManagementItemComponent_div_1_Template_div_contextmenu_1_listener","UserManagementItemComponent_div_1_img_4_Template","UserManagementItemComponent","contextMenuOnUser","trackFeatureIds","batchSetFeaturePermissions","hasBatchPermission","setBatchPermissions","tenantFeatures","overlayEventDetail","usersLoaded","UserManagementItemComponent_Template","UserManagementItemComponent_div_0_Template","UserManagementItemComponent_div_1_Template","MatTableModule","UserManagementPage","UserManagementPage_sis_context_menu_2_Template_sis_context_menu_menuItemSelected_0_listener","contextMenuTitle","UserManagementPage_div_4_table_1_th_2_sis_general_button_17_Template_sis_general_button_sisClick_0_listener","maxUsersReached","UserManagementPage_div_4_table_1_th_2_Template_ion_searchbar_ionChange_2_listener","UserManagementPage_div_4_table_1_th_2_Template_ion_checkbox_ngModelChange_5_listener","onCheckboxChange","UserManagementPage_div_4_table_1_th_2_Template_ion_checkbox_ngModelChange_9_listener","UserManagementPage_div_4_table_1_th_2_Template_ion_checkbox_ngModelChange_13_listener","UserManagementPage_div_4_table_1_th_2_sis_general_button_17_Template","UserManagementPage_div_4_table_1_th_2_div_18_Template","UserManagementPage_div_4_table_1_td_3_Template_sis_user_management_item_contextMenuOnUser_1_listener","openUserContextMenu","user_r6","UserManagementPage_div_4_table_1_ng_container_4_th_1_Template_span_contextmenu_2_listener","openBatchFeaturePermissionContextMenu","UserManagementPage_div_4_table_1_ng_container_4_th_1_ion_icon_4_Template","featureIdTranslatedFeatureNameMapping","tenantFeature_r10","isAdminOnly","user_r11","UserManagementPage_div_4_table_1_ng_container_4_th_1_Template","UserManagementPage_div_4_table_1_ng_container_4_td_2_Template","UserManagementPage_div_4_table_1_th_2_Template","UserManagementPage_div_4_table_1_td_3_Template","UserManagementPage_div_4_table_1_ng_container_4_Template","UserManagementPage_div_4_table_1_tr_5_Template","UserManagementPage_div_4_table_1_tr_6_Template","usersFiltered","displayedColumns","UserManagementPage_div_4_table_1_Template","UserManagementPage_div_5_table_1_th_2_sis_general_button_7_Template_sis_general_button_sisClick_0_listener","UserManagementPage_div_5_table_1_th_2_Template_ion_searchbar_ionChange_3_listener","UserManagementPage_div_5_table_1_th_2_Template_a_click_5_listener","openCheckboxModal","UserManagementPage_div_5_table_1_th_2_sis_general_button_7_Template","UserManagementPage_div_5_table_1_th_2_div_8_Template","UserManagementPage_div_5_table_1_td_3_Template_sis_user_management_item_contextMenuOnUser_1_listener","user_r15","UserManagementPage_div_5_table_1_ng_container_4_th_1_Template_span_contextmenu_2_listener","i_r17","UserManagementPage_div_5_table_1_ng_container_4_th_1_ion_icon_4_Template","tenantFeature_r19","user_r20","UserManagementPage_div_5_table_1_ng_container_4_th_1_Template","UserManagementPage_div_5_table_1_ng_container_4_td_2_Template","UserManagementPage_div_5_table_1_th_2_Template","UserManagementPage_div_5_table_1_td_3_Template","UserManagementPage_div_5_table_1_ng_container_4_Template","UserManagementPage_div_5_table_1_tr_5_Template","UserManagementPage_div_5_table_1_tr_6_Template","UserManagementPage_div_5_table_1_Template","onWillDismiss","updateFilteredFeatures","tenantFeatures$","userManagementData","filterUserList","trackUsers","setBatchFeaturePermissions","setBatchUserPermissions","setAllUserPermissionsMax","usersToUpdate","featuresToUpdate","filterFunc","accessLevel","filteredtenantFeatures","UserManagementPage_Template","UserManagementPage_Template_ion_grid_scroll_0_listener","UserManagementPage_Template_ion_grid_click_0_listener","UserManagementPage_sis_context_menu_2_Template","UserManagementPage_div_3_Template","UserManagementPage_div_4_Template","UserManagementPage_div_5_Template","toastService","WINDMONITOR","baseUsersRequestUrl","basePermissionPostUrl","baseFeaturesRequestUrl","baseBatchPermissionPostUrl","baseUserInfoRequestUrl","updateRequest$","userManagementDataRequest$","userManagementDataUpdated$","showSuccessToast","translatedFeaturesMap","userPermissionUpdateData","userGuids","emailEncoded","showInfoToast","showUserMessageToast","activeUserToast","messageParts","ToastController","toastCssClass","toastController","minTimeBetweenSameMessageMs","messageOutdatedAfterMs","userMessages","messageTimeMap","createToast","toastButtons","translatedMessage","side","animated","hasFocus","lastTimeSent","presentAllToasts","toastMessage","translateKeys","toastActive","shift","checkInterval","toastDisplayed","webAppUrl","version","WebLinkItemCategory","WebLinkAdapter","webLinks","ownerGuid","WebLinkCollectionPage","WeblinkEditModalComponent","WeblinkGroupComponent","WebLinkItemComponent","WebLinkCollectionService","webLinkCollectionService","webLinks$","webLinkItemOrders","resetWebLinks","WebLinkCollectionPage_Template","WebLinkCollectionPage_Template_sis_page_title_onReorderClick_1_listener","WebLinkCollectionPage_Template_sis_page_title_onReorderCancelClick_1_listener","WebLinkCollectionPage_Template_sis_page_title_openEditModal_1_listener","WebLinkCollectionPage_sis_weblink_group_4_Template","resetSubject","webLinkRequest$","webLinkCollectionUpdated$","currentWebLinks","newWebLinks","updatedWebLink","oldWebLink","webLink","webLinkToBeDeleted","webLinkPost","weblinks","enumWebLinkCategoryItem","private","WeblinkEditModalComponent_ion_grid_8_ion_col_15_Template_ion_icon_click_1_listener","icon_r4","selectIcon","webLinkItemEdit","showExtraIcon","extraIcon","WeblinkEditModalComponent_ion_grid_8_ion_select_option_8_Template","WeblinkEditModalComponent_ion_grid_8_ion_select_option_9_Template","WeblinkEditModalComponent_ion_grid_8_ion_col_15_Template","WeblinkEditModalComponent_ion_grid_8_Template_ion_col_click_17_listener","openMoreIcons","WeblinkEditModalComponent_ion_grid_8_ion_col_23_Template","WeblinkEditModalComponent_ion_grid_8_ion_col_24_Template","isExistingPublicItem","WeblinkEditModalComponent_ion_grid_9_ion_col_16_Template_ion_icon_click_1_listener","icon_r7","WeblinkEditModalComponent_ion_grid_9_ion_select_option_9_Template","WeblinkEditModalComponent_ion_grid_9_ion_select_option_10_Template","WeblinkEditModalComponent_ion_grid_9_ion_col_16_Template","WeblinkEditModalComponent_ion_grid_9_Template_ion_col_click_18_listener","WeblinkEditModalComponent_ion_grid_9_ion_col_25_Template","WeblinkEditModalComponent_ion_grid_9_ion_col_26_Template","WeblinkEditModalComponent_sis_general_button_14_Template_sis_general_button_sisClick_0_listener","ioniconsUrl","webLinkItem","copy","initialCategory","ionIconValidator","iconValue","invalidIonIcon","patchValue","WeblinkEditModalComponent_Template","WeblinkEditModalComponent_Template_ion_button_click_2_listener","WeblinkEditModalComponent_ion_grid_8_Template","WeblinkEditModalComponent_ion_grid_9_Template","WeblinkEditModalComponent_Template_sis_general_button_sisClick_12_listener","WeblinkEditModalComponent_Template_sis_general_button_sisClick_13_listener","WeblinkEditModalComponent_sis_general_button_14_Template","eWebLinkItemCategory","canReorder","weblink","WeblinkGroupComponent_Template","WeblinkGroupComponent_ion_row_1_Template","WeblinkGroupComponent_Template_ion_reorder_group_ionItemReorder_2_listener","WeblinkGroupComponent_ion_item_3_Template","WebLinkItemComponent_ion_row_0_ion_col_9_Template_ion_col_click_0_listener","WebLinkItemComponent_ion_row_0_ion_col_10_Template_ion_col_click_0_listener","editPermission","WebLinkItemComponent_ion_row_0_Template_ion_col_click_1_listener","WebLinkItemComponent_ion_row_0_Template_ion_col_click_3_listener","WebLinkItemComponent_ion_row_0_Template_ion_col_click_6_listener","WebLinkItemComponent_ion_row_0_ion_col_9_Template","WebLinkItemComponent_ion_row_0_ion_col_10_Template","WebLinkItemComponent_ion_row_1_Template_ion_row_press_0_listener","WebLinkItemComponent_ion_row_1_Template_ion_col_click_3_listener","WebLinkItemComponent_Template","WebLinkItemComponent_ion_row_0_Template","WebLinkItemComponent_ion_row_1_Template","apiKey","authDomain","databaseURL","projectId","storageBucket","messagingSenderId","appId","appVersion","require","enableProdMode","__NgCli_bootstrap_1","platformBrowser","bootstrapModule","toUnsigned32bit","toSigned32bit","Log","encodeUTF8","decodeUTF8","dragThreshold","clientToElement","setCapture","EventTargetMixin","Display","Inflator","Deflator","Keyboard","GestureHandler","Cursor","Websock","DES","KeyTable","XtScancode","encodings","RawDecoder","CopyRectDecoder","RREDecoder","HextileDecoder","TightDecoder","TightPNGDecoder","DISCONNECT_TIMEOUT","DEFAULT_BACKGROUND","MOUSE_MOVE_DELAY","WHEEL_STEP","WHEEL_LINE_HEIGHT","GESTURE_ZOOMSENS","GESTURE_SCRLSENS","DOUBLE_TAP_TIMEOUT","DOUBLE_TAP_THRESHOLD","extendedClipboardFormatText","extendedClipboardFormatRtf","extendedClipboardFormatHtml","extendedClipboardFormatDib","extendedClipboardFormatFiles","extendedClipboardActionCaps","extendedClipboardActionRequest","extendedClipboardActionPeek","extendedClipboardActionNotify","extendedClipboardActionProvide","targetDocument","urlOrChannel","_target","_url","_rawChannel","_rfbCredentials","_shared","shared","_repeaterID","repeaterID","_wsProtocols","wsProtocols","_rfbConnectionState","_rfbInitState","_rfbAuthScheme","_rfbCleanDisconnect","_rfbVersion","_rfbMaxVersion","_rfbTightVNC","_rfbVeNCryptState","_rfbXvpVer","_fbWidth","_fbHeight","_fbName","_capabilities","_supportsFence","_supportsContinuousUpdates","_enabledContinuousUpdates","_supportsSetDesktopSize","_screenID","_screenFlags","_qemuExtKeyEventSupported","_clipboardText","_clipboardServerCapabilitiesActions","_clipboardServerCapabilitiesFormats","_sock","_display","_flushing","_keyboard","_gestures","_resizeObserver","_disconnTimer","_resizeTimeout","_mouseMoveTimer","_decoders","_FBU","rects","encoding","_mousePos","_mouseButtonMask","_mouseLastMoveTime","_viewportDragging","_viewportDragPos","_viewportHasMoved","_accumulatedWheelDeltaX","_accumulatedWheelDeltaY","_gestureLastTapTime","_gestureFirstDoubleTapEv","_gestureLastMagnitudeX","_gestureLastMagnitudeY","_eventHandlers","focusCanvas","_focusCanvas","handleResize","_handleResize","handleMouse","_handleMouse","handleWheel","_handleWheel","handleGesture","_handleGesture","Debug","_screen","display","_canvas","outline","tabIndex","_cursor","_cursorImage","cursors","sis","encodingRaw","encodingCopyRect","encodingRRE","encodingHextile","encodingTight","encodingTightPNG","exc","onflush","_onFlush","onkeyevent","_handleKeyEvent","_socketOpen","_socketClose","_handleMessage","_socketError","ResizeObserver","_updateConnectionState","dragViewport","focusOnClick","_viewOnly","_clipViewport","_scaleViewport","_resizeSession","_showDotCursor","showDotCursor","Warn","_qualityLevel","_compressionLevel","ungrab","grab","capabilities","touchButton","clipViewport","viewport","_updateClip","_updateScale","resizeSession","resize","_requestRemoteResize","_refreshCursor","cssValue","qualityLevel","isInteger","_sendEncodings","compressionLevel","sendCredentials","creds","_initMsg","sendCtrlAltDel","sendKey","XK_Control_L","XK_Alt_L","XK_Delete","machineShutdown","_xvpOp","machineReboot","machineReset","keysym","scancode","QEMUExtendedKeyEvent","keyEvent","blur","clipboardPasteFrom","extendedClipboardNotify","clientCutText","_connect","readyState","_disconnect","detach","removeChild","clearTimeout","_fail","msg","reason","_setDesktopName","dispatchEvent","CustomEvent","requestAnimationFrame","curClip","newClip","_screenSize","viewportChangeSize","_fixScrollbars","autoscale","setDesktopSize","orig","oldstate","details","_setCapability","cap","rQlen","_normalMsg","_handleMouseButton","_handleMouseMove","bmask","_sendMouse","deltaX","viewportChangePos","timeSinceLastMove","_handleDelayedMouseMove","mask","pointerEvent","absX","absY","dX","dY","deltaMode","_fakeMouseMove","elementX","elementY","move","_handleTapEvent","dx","dy","distance","hypot","magnitude","magnitudeX","magnitudeY","_negotiateProtocolVersion","rQwait","sversion","rQshiftStr","substr","isRepeater","sendString","cversion","_negotiateSecurity","numTypes","rQshift8","_securityContext","_securityStatus","rQshiftBytes","send","rQshift32","_handleSecurityReason","strlen","_negotiateXvpAuth","xvpAuthStr","_negotiateAuthentication","_negotiateVeNCryptAuth","major","minor","subtypesLength","_rfbVeNCryptSubtypesLength","subtypes","pass","_negotiateStdVNCAuth","challenge","call","genDES","_negotiateTightUnixAuth","_negotiateTightTunnels","numTunnels","clientSupportedTunnelTypes","signature","serverSupportedTunnelTypes","capCode","capVendor","capSignature","_negotiateTightAuth","subAuthCount","clientSupportedTypes","STDVNOAUTH__","STDVVNCAUTH_","TGHTULGNAUTH","serverSupportedTypes","authType","_handleSecurityResult","_negotiateServerInit","rQshift16","bpp","depth","bigEndian","trueColor","redMax","greenMax","blueMax","redShift","greenShift","blueShift","rQskipBytes","nameLength","numServerMessages","numClientMessages","numEncodings","totalMessagesLength","_fbDepth","eightBit","_resize","pixelFormat","fbUpdateRequest","encs","pseudoEncodingQualityLevel0","pseudoEncodingCompressLevel0","pseudoEncodingDesktopSize","pseudoEncodingLastRect","pseudoEncodingQEMUExtendedKeyEvent","pseudoEncodingExtendedDesktopSize","pseudoEncodingXvp","pseudoEncodingFence","pseudoEncodingContinuousUpdates","pseudoEncodingDesktopName","pseudoEncodingExtendedClipboard","pseudoEncodingVMwareCursor","pseudoEncodingCursor","clientEncodings","_handleSetColourMapMsg","_handleServerCutText","flags","formats","isCaps","clientActions","extendedClipboardCaps","extendedClipboardProvide","extendedClipboardRequest","zlibStream","streamInflator","textData","setInput","sizeArray","inflate","chunk","tmpText","charAt","_handleServerFenceMsg","clientFence","_handleXvpMsg","xvpVer","xvpMsg","msgType","ret","_framebufferUpdate","_updateContinuousUpdates","rQslice","pending","flush","hdr","_handleRect","flip","_handleVMwareCursor","_handleCursor","_handleDesktopName","_handleExtendedDesktopSize","_handleDataRect","hotx","hoty","cursorType","rgba","bytesPerPixel","PIXEL_MASK","andMask","pixel","xorMask","bgr","_updateCursor","pixelslength","masklength","bytes","pixels","pixIdx","maskIdx","alpha","numberOfScreens","rQpeek8","firstUpdate","decoder","decodeRect","enableContinuousUpdates","ver","op","xvpOp","rgbaPixels","_shouldShowDotCursor","dot","change","passwordChars","encrypt","sock","buff","_sQ","_sQlen","keycode","getRFBkeycode","xtScanCode","upperByte","lowerByte","RFBkeycode","_buildExtendedClipboardFlags","formatFlag","actionFlag","inData","deflator","dataToDeflate","deflatedData","deflate","formatKeys","loopOffset","extended","dataOffset","flushSize","_sQbufferSize","bits","enc","incremental","none","supportsCursorURIs","isTouchDevice","useFallback","_targetDocument","pointerEvents","userSelect","WebkitUserSelect","_position","_hotSpot","mouseover","_handleMouseOver","mouseleave","_handleMouseLeave","mousemove","mouseup","_handleMouseUp","capture","passive","ImageData","Uint8ClampedArray","clearRect","putImageData","_updatePosition","cursor","visualViewport","elementFromPoint","_updateVisibility","relatedTarget","_captureIsActive","_showCursor","_hideCursor","_shouldShowCursor","contains","getComputedStyle","captureElement","documentElement","MAX_RQ_GROW_SIZE","DataChannel","CONNECTING","OPEN","CLOSING","CLOSED","ReadyStates","WebSocket","rawChannelProps","_websocket","_rQi","_rQlen","_rQbufferSize","_rQ","subState","sQ","rQ","rQi","_rQshift","byte","len","buffer","rQshiftTo","num","goback","_encodeMessage","chr","evt","_allocateBuffers","uri","protocols","rawChannel","channelProps","getOwnPropertyNames","getPrototypeOf","prop","binaryType","onmessage","_recvMessage","onopen","protocol","onclose","_expandCompactRQ","minFit","requiredBufferSize","resizeNeeded","oldRQbuffer","copyWithin","_DecodeMessage","u8"],"sourceRoot":"webpack:///","x_google_ignoreList":[744,745,746]}